Extremum Seeking Control

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

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

Описание

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

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

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

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

Для получения дополнительной информации смотрите Extremum Searning 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.

Параметры

расширить все

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

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

Параметры блоков: 'paramCount'
Тип: Вектор символов
По умолчанию: '1'

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

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

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

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

Параметры блоков: 'initialVal'
Тип: Вектор символов
По умолчанию: '0'

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

При настройке одинарного параметра задайте 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. В противном случае, чтобы задать ту же амплитуду для всех циклов настройки, задайте Modulation phase как положительный конечный скаляр.

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

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

Задайте фазу сигнала, используемого для демодуляции целевой функции в радианах.

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

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

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

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

Параметры блоков: 'demodPhase'
Тип: Вектор символов
По умолчанию: '0'

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

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

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

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

Параметры блоков: 'modAmp'
Тип: Вектор символов
По умолчанию: '0.1'

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

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

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

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

Параметры блоков: 'modPhase'
Тип: Вектор символов
По умолчанию: '0'

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

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

Параметры блоков: 'highPassEnable'
Тип: Вектор символов
По умолчанию: 'off'

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

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

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

Зависимости

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

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

Параметры блоков: 'highPassCutoff'
Тип: Вектор символов
По умолчанию: '1'

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

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

Параметры блоков: 'lowPassEnable'
Тип: Вектор символов
По умолчанию: 'off'

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

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

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

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

Параметры блоков: 'lowPassCutoff'
Тип: Вектор символов
По умолчанию: '1'

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

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

Параметры блоков: estimatedVarOn
Тип: Вектор символов
По умолчанию: 'off'

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

.

См. также

Введенный в R2021a