Engee documentation

Extremum Seeking Control

Page in progress.

Calculates the parameters of the regulator in real time to find the extremum of the objective function.

blockType: SubSystem

Path in the library:

/Control Systems/Adaptive Control/Extremum Seeking Control

Description

Block Extremum Seeking Control adjusts the parameters of the regulator to find the extremum of the objective function.

To configure the extremum search algorithm, set the appropriate exposure frequencies, demodulation and modulation signals, learning rates, and initial parameter conditions. When setting up the unit, make sure that the system dynamics corresponds to the fastest time scale, the disturbance frequencies correspond to the average time scale, and the filter cutoff frequencies correspond to the slowest time scale. It is possible to implement extreme search controllers in both continuous and discrete time. Changing the time domain of the controller affects the time domain of high-pass filters, low-pass filters and integrators

Ports

Input

# J — objective function
scalar

Details

The objective function of the control system changes as a result of the system’s response to the disturbed parameters.

Data types

Float64

Complex numbers support

I don’t

Output

# theta — perturbed parameters
scalar | vector

Details

Perturbed parameters.

Data types

Float64

Complex numbers support

I don’t

# theta_hat — estimated parameters

+ scalar | vector

Details

Use this output port to obtain estimated parameter values before they are distorted by the modulating signal.

If the parameter value is Number of parameters equal to 1, then theta_hat outputs a scalar signal. Otherwise, theta_hat outputs a vector signal with a length equal to the parameter value Number of parameters.

Dependencies

To use this port, check the box Output estimated parameters.

Data types

Float64

Support for complex numbers

None

Parameters

Time Domain

# Time Domain — time domain of the filter and integrator
Continuous time | Discrete time

Details

Select a time domain for low-pass filters, high-pass filters, and an integrator.

Values

Continuous time | Discrete time

Default value

Continuous time

Program usage name

timeDomainStatus

Tunable

No

Evaluatable

Yes

Discrete-Time Settings

# Sample Time — sampling time

Details

Specify the sampling time for the filters and the integrator.

Dependencies

To use this parameter, specify for the parameter Time Domain meaning Discrete time.

Default value

0.0

Program usage name

SampleTime

Tunable

No

Evaluatable

Yes

# Integrator method — The integration method
Forward Euler | Backward Euler | Trapezoidal

Details

For discrete-time integrators, you can choose one of the following integration methods:

The direct Euler method ,

The inverse Euler method ,

The trapezoid method ,

where

  • — integrator output signal;

  • — input signal;

  • — the current moment in time;

  • — sampling time.

Dependencies

To use this parameter, specify for the parameter Time Domain meaning Discrete time.

Values

Forward Euler | Backward Euler | Trapezoidal

Default value

Forward Euler

Program usage name

IntegratorMethods

Tunable

No

Evaluatable

Yes

Parameters

# Number of parameters — number of parameters

Details

Specify the number of parameters. The block will use separate settings for each parameter.

Default value

1

Program usage name

paramCount

Tunable

No

Evaluatable

Yes

# Forcing frequency omega (rad/s) — frequency of exposure

Details

Specify a frequency of exposure that is lower than the frequencies of important system processes and higher than the cutoff frequencies of the high and low pass filters.

Default value

1.0

Program usage name

omega

Tunable

No

Evaluatable

Yes

# Initial condition x0 — initial parameter values

Details

The initial values of the parameters.

Default value

0.0

Program usage name

initialVal

Tunable

No

Evaluatable

Yes

# Learning rate k — The rate of parameter updates

Details

The gain factor, which determines the rate at which the parameters in the block are updated.

Default value

1.0

Program usage name

gain

Tunable

No

Evaluatable

Yes

Demodulation Signal

# Demodulation amplitude a — amplitude of demodulation

Details

Specify the amplitude of the signal used to demodulate the objective function.

Default value

1.0

Program usage name

demodAmp

Tunable

No

Evaluatable

Yes

# Demodulation phase phi_1 (rad) — demodulation phase

Details

Specify the phase of the signal used to demodulate the objective function. The modulation phase. The \demodulation phase and modulations you should choose so that .

Default value

0.0

Program usage name

demodPhase

Tunable

No

Evaluatable

Yes

Modulation Signal

# Modulation amplitude b — modulation amplitude

Details

The amplitude of the disturbance signal added to the estimated parameters.

Default value

0.1

Program usage name

modAmp

Tunable

No

Evaluatable

Yes

# Modulation phase phi_2 (rad) — The modulation phase

Details

The phase of the disturbance signal added to the estimated parameters. The demodulation phase and modulations you should choose so that .

Default value

0.0

Program usage name

modPhase

Tunable

No

Evaluatable

Yes

High-Pass Filter (HPF)

# Enable HPF — turn on high frequency

Details

Turns on the high-pass filter.

Default value

false (switched off)

Program usage name

highPassEnable

Tunable

No

Evaluatable

Yes

# HPF frequency omega_h (rad/s) — UHF cutoff frequency

Details

The cutoff frequency of the high-pass filter in radians per second.

Dependencies

To use this option, check the box Enable HPF.

Default value

1.0

Program usage name

highPassCutoff

Tunable

No

Evaluatable

Yes

Low-Pass Filter (LPF)

# Enable LPF — turn on the low-pass filter

Details

Turns on the low-pass filter.

Default value

false (switched off)

Program usage name

lowPassEnable

Tunable

No

Evaluatable

Yes

# LPF frequency omega_I (rad/s) — low-pass cutoff frequency

Details

The cutoff frequency of the low-pass filter in radians per second.

Dependencies

To use this option, check the box LPF frequency omega_I (rad/s).

Default value

1.0

Program usage name

lowPassCutoff

Tunable

No

Evaluatable

Yes

Ports

# Output estimated parameters — add output of estimated parameters

Details

Enable this setting to add the theta_hat output port.

Default value

false (switched off)

Program usage name

estimatedVarOn

Tunable

No

Evaluatable

Yes