exponenta event banner

Extremum Поиск контроля

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

  • Библиотека:
  • Проект управления Simulink

Описание

Блок Extremum Seeking Control настраивает параметры контроллера для максимизации целевой функции. Контроллеры Extremum Seeking являются адаптивными контроллерами без модели, которые полезны для адаптации к неизвестной динамике системы и неизвестным отображениям из управляющих параметров в целевую функцию. При поиске нескольких параметров блок 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 Seeking Control.

Порты

Вход

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

Целевая функция от системы управления возмущается в результате реакции системы на возмущенные параметры тета. Для вычисления обновлений параметров блок фильтрует и демодулирует J.

Продукция

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

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

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

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

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

Зависимости

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

Параметры

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

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

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

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

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

Если количество параметров равно 1, укажите начальное условие как конечный скаляр.

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

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

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

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

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

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

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

Параметр блока: 'omega'
Текст: символьный вектор
По умолчанию: '1'

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

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

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

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

Параметр блока: 'gain'
Текст: символьный вектор
По умолчанию: '1'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

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

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

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

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

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

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

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

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

Выберите этот параметр для добавления порта вывода theta_hat.

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

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

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

.

См. также

Представлен в R2021a