Extremum Seeking Control

Вычислите параметры контроллера в режиме реального времени путем максимизации целевой функции

  • Библиотека:
  • Simulink Control Design

  • Extremum Seeking Control block

Описание

Блок Extremum Seeking Control настраивает параметры контроллера, чтобы максимизировать целевую функцию. Диспетчеры поиска экстремума являются адаптивными диспетчерами без моделей, которые полезны для адаптации к неизвестной системной динамике и неизвестным отображениям от параметров управления до целевой функции. При поиске нескольких параметров блок Extremum Seeking Control использует отдельный настраивающий цикл для каждого параметра.

Поиски блока Extremum Seeking Control для параметров оптимального управления путем модуляции (беспокойство) параметров с синусоидальными сигналами и демодуляцией получившейся встревоженной целевой функции.

Extremum seeking control diagram showing the high-pass filter, demodulation, low-pass filter, parameter update, and modulation stages.

Чтобы сконфигурировать алгоритм поиска экстремума, установите соответствующие частоты принуждения, демодуляцию и сигналы модуляции, скорости обучения и начальные условия параметра. При конфигурировании блока гарантируйте, что системные движущие силы находятся на самом быстром масштабе времени, частоты принуждения возмущения находятся на среднем масштабе времени, и частоты среза фильтра находятся на самом медленном масштабе времени.

Можно реализовать и контроллеры поиска экстремума непрерывного времени и дискретного времени. Изменение временного интервала контроллера влияет на область времени фильтров высоких частот, фильтров lowpass и интеграторов, используемых в настраивающихся циклах. Чтобы сгенерировать развертываемый на оборудовании код для блока Extremum Seeking Control, используйте контроллер дискретного времени.

Для получения дополнительной информации смотрите, что Экстремум Ищет Управление.

Порты

Входной параметр

развернуть все

Целевая функция от системы управления встревожена в результате отклика системы к встревоженным параметрам theta. Чтобы вычислить обновления параметра, блок фильтрует и демодулирует J.

Вывод

развернуть все

Примените эти встревоженные параметры (θ) к вашей системе управления. Блок использует получившееся возмущение целевой функции J, чтобы вычислить обновления параметра.

Если Number of parameters является 1, theta выводит скалярный сигнал. В противном случае theta выходные параметры векторный сигнал с длиной равняется Number of parameters.

Используйте этот выходной порт, чтобы получить предполагаемые значения параметров (θ^) прежде чем они будут встревожены сигналом модуляции.

Если Number of parameters является 1, theta_hat выводит скалярный сигнал. В противном случае theta_hat выходные параметры векторный сигнал с длиной равняется Number of parameters.

Зависимости

Чтобы включить этот выходной порт, выберите Output estimated parameters.

Параметры

развернуть все

Задайте временной интервал для фильтров высоких частот, фильтров lowpass и интеграторов.

  • Continuous time — Используйте фильтры непрерывного времени и интеграторы.

  • Discrete time — Используйте фильтры дискретного времени и интеграторы. Задайте шаг расчета с помощью параметра Sample time и задайте метод интегрирования с помощью параметра Integration method.

Программируемое использование

Параметры блоков: 'timeDomainStatus'
Ввод: символьный вектор
Значения: 'Continuous Time' | 'Discrete Time'
Значение по умолчанию: 'Continuous Time'

Задайте шаг расчета для фильтров высоких частот дискретного времени, фильтров lowpass и интеграторов.

При настройке нескольких параметров все настраивающие циклы используют тот же шаг расчета.

Зависимости

Чтобы включить этот параметр, установите свойство Time Domain на Discrete time.

Программируемое использование

Параметры блоков: 'SampleTime'
Ввод: символьный вектор
Значения: конечная положительная скалярная величина
Значение по умолчанию: '0.1'

Можно выбрать один из следующих методов интегрирования для интеграторов дискретного времени.

  • Forward Euler:

    y(n)=y(n1)+Tsu(n1)

  • Backward Euler:

    y(n)=y(n1)+Tsu(n)

  • Trapezoidal:

    y(n)=y(n1)+Ts[u(n)+u(n1)]/2

Здесь:

  • y является интегратором выход

  • u является входом

  • n является текущим шагом расчета

  • Ts является шагом расчета

При настройке нескольких параметров интеграторы во всех настраивающих циклах используют тот же метод интегрирования.

Зависимости

Чтобы включить этот параметр, установите свойство Time Domain на Discrete time.

Программируемое использование

Параметры блоков: 'IntegratorMethods'
Ввод: символьный вектор
Значения: 'Forward Euler' | 'Backward Euler' | 'Trapezoidal'
Значение по умолчанию: 'Forward Euler'

Можно одновременно настроить до пяти параметров. Блок использует отдельный настраивающий цикл для каждого параметра.

Программируемое использование

Параметры блоков: 'paramCount'
Ввод: символьный вектор
Значения: положительное целое число меньше чем 5
Значение по умолчанию: '1'

Начальные значения параметров, которые соответствуют начальным условиям интеграторов обновления параметра.

Если Number of parameters является 1, задайте Initial condition как конечный скаляр.

Чтобы задать различные начальные условия для нескольких параметров, задайте Initial condition как вектор из конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать то же начальное условие для всех параметров, задайте Initial condition как конечный скаляр.

Программируемое использование

Параметры блоков: 'initialVal'
Ввод: символьный вектор
Значения: конечный скаляр | вектор
Значение по умолчанию: '0'

Задайте частоту сигналов модуляции и демодуляции в радианах в секунду. Для данного настраивающего цикла параметра задайте частоту принуждения, которая ниже, чем частоты важной системной динамики и выше, чем высокая передача и lowpass фильтруют частоты среза.

При настройке одного параметра задайте Forcing frequency как положительный конечный скаляр.

При настройке параметров кратного задайте Forcing frequency как вектор из положительных конечных значений с длиной, равной Number of parameters. Каждая частота принуждения должна быть уникальной, который позволяет сходимость ищущего экстремум алгоритма.

Программируемое использование

Параметры блоков: 'omega'
Ввод: символьный вектор
Значения: положительный конечный скаляр | вектор
Значение по умолчанию: '1'

Скорость обучения является фактором усиления, который управляет уровнем, на котором блок обновляет параметр.

При настройке одного параметра задайте Learning rate как положительный конечный скаляр.

При настройке параметров кратного можно задать различную скорость обучения для каждого настраивающего цикла параметра. Для этого задайте Learning rate как вектор из положительных конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать ту же скорость обучения для всех настраивающих циклов, задайте Learning rate как положительный конечный скаляр.

Программируемое использование

Параметры блоков: 'gain'
Ввод: символьный вектор
Значения: положительный конечный скаляр | вектор
Значение по умолчанию: '1'

Укажите, что амплитуда сигнала раньше демодулировала целевую функцию. Для большинства приложений задайте Demodulation amplitudeModulation amplitude. Продукт этих амплитуд, наряду со скоростью обучения, управляет быстротой сходимости алгоритма.

При настройке одного параметра задайте Demodulation amplitude как положительный конечный скаляр.

При настройке нескольких параметров можно задать различную амплитуду демодуляции для каждого настраивающего цикла параметра. Для этого задайте Demodulation amplitude как вектор из положительных конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать ту же амплитуду для всех настраивающих циклов, задайте Demodulation amplitude как положительный конечный скаляр.

Программируемое использование

Параметры блоков: 'demodAmp'
Ввод: символьный вектор
Значение по умолчанию: '1'

Укажите, что фаза ϕ 1 сигнала раньше демодулировала целевую функцию в радианах.

При настройке одного параметра задайте Demodulation phase как положительный конечный скаляр.

При настройке нескольких параметров можно задать различную фазу демодуляции для каждого настраивающего цикла параметра. Для этого задайте Demodulation phase как вектор из положительных конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать ту же фазу для всех настраивающих циклов, задайте Demodulation phase как положительный конечный скаляр.

Фазы демодуляции и модуляции должны удовлетворить условию because(ϕ 1–ϕ2),> 0.

Программируемое использование

Параметры блоков: 'demodPhase'
Ввод: символьный вектор
Значения: положительный конечный скаляр | вектор
Значение по умолчанию: '0'

Амплитуда сигнала возмущения добавляется к предполагаемым параметрам. Для большинства приложений задайте Modulation amplitudeDemodulation amplitude. Продукт этих амплитуд, наряду со скоростью обучения, управляет быстротой сходимости алгоритма.

При настройке одного параметра задайте Modulation amplitude как положительный конечный скаляр.

При настройке нескольких параметров можно задать различную амплитуду модуляции для каждого настраивающего цикла параметра. Для этого задайте Modulation amplitude как вектор из положительных конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать ту же амплитуду для всех настраивающих циклов, задайте Modulation amplitude как положительный конечный скаляр.

Программируемое использование

Параметры блоков: 'modAmp'
Ввод: символьный вектор
Значения: положительный конечный скаляр | вектор
Значение по умолчанию: '0.1'

Фаза ϕ 2 из сигнала возмущения, добавленного к предполагаемым параметрам, заданным в радианах. Необходимо выбрать фазу ϕ 1 демодуляции и фазу ϕ 2 модуляции, таким образом что because(ϕ 1–ϕ2),> 0.

При настройке одного параметра задайте Modulation phase как положительный конечный скаляр.

При настройке нескольких параметров можно задать различную фазу модуляции для каждого настраивающего цикла параметра. Для этого задайте Modulation phase как вектор из положительных конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать ту же фазу для всех настраивающих циклов, задайте Modulation phase как положительный конечный скаляр.

Программируемое использование

Параметры блоков: 'modPhase'
Ввод: символьный вектор
Значения: положительный конечный скаляр | вектор
Значение по умолчанию: '0'

Выберите этот параметр, чтобы включить фильтр высоких частот, который удаляет любое смещение сигнала из сигнала целевой функции перед этапом демодуляции. Чтобы задать частоту среза фильтра, используйте параметр HPF frequency.

Программируемое использование

Параметры блоков: 'highPassEnable'
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Частота среза ωh для высокой передачи, фильтрующей сигнал целевой функции, заданный в радианах в секунду. Для данного настраивающего цикла параметра задайте частоту среза, таким образом, что ωh <ω / (2π), где ω является соответствующей частотой принуждения.

При настройке одного параметра задайте HPF frequency как положительный конечный скаляр.

При настройке нескольких параметров можно задать различную частоту для каждого настраивающего цикла параметра. Для этого задайте HPF frequency как вектор из положительных конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать ту же частоту для всех настраивающих циклов, задайте HPF frequency как положительный конечный скаляр.

Зависимости

Чтобы включить этот параметр, выберите параметр Enable HPF.

Программируемое использование

Параметры блоков: 'highPassCutoff'
Ввод: символьный вектор
Значения: положительный конечный скаляр | вектор
Значение по умолчанию: '1'

Выберите этот параметр, чтобы включить фильтр lowpass, который удаляет высокочастотные компоненты из демодулируемого сигнала перед этапом обновления параметра. Чтобы задать частоту среза фильтра, используйте параметр LPF frequency.

Зависимости

Чтобы включить этот параметр, выберите параметр Enable LPF.

Программируемое использование

Параметры блоков: 'lowPassEnable'
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Частота среза ωl для lowpass, фильтрующего демодулируемый сигнал, заданный в радианах в секунду. Для данного настраивающего цикла параметра задайте частоту среза, таким образом, что ωl> ω / (2π), где ω является соответствующей частотой принуждения.

При настройке одного параметра задайте LPF frequency как положительный конечный скаляр.

При настройке нескольких параметров можно задать различную частоту для каждого настраивающего цикла параметра. Для этого задайте LPF frequency как вектор из положительных конечных значений с длиной, равной Number of parameters. В противном случае, чтобы задать ту же частоту для всех настраивающих циклов, задайте LPF frequency как положительный конечный скаляр.

Зависимости

Чтобы включить этот параметр, выберите параметр Enable LPF.

Программируемое использование

Параметры блоков: 'lowPassCutoff'
Ввод: символьный вектор
Значения: положительный конечный скаляр | вектор
Значение по умолчанию: '1'

Выберите этот параметр, чтобы добавить выходной порт theta_hat.

Программируемое использование

Параметры блоков: estimatedVarOn
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Расширенные возможности

Введенный в R2021a