Этот пример показывает проект обратной связи и усилений прямого распространения для системы, общего метода проектирования контроллера. Здесь, вы используете контроллер поиска экстремума, чтобы отследить данную ссылочную модель объекта управления путем адаптации обратной связи и усилений прямого распространения для неопределенной динамической системы.
В данном примере рассмотрите следующую линейную систему первого порядка.
Здесь, и состояние и управляет входом системы, соответственно. Константы и неизвестны.
Цель этого примера состоит в том, чтобы отследить эффективность следующей ссылочной модели объекта управления, которая задает необходимое переходное и установившееся поведение.
Здесь, состояние ссылочного объекта и опорный сигнал.
Цель управляющего сигнала должен сделать состояния из неопределенной системы отслеживают ссылочные состояния .
Спроектированный контроллер содержит термин обратной связи, , и термин прямого распространения, .
Замените этим управляющим сигналом в неизвестную динамику линейной системы.
Можно переписать это выражение как показано в следующем уравнении.
В идеальном случае, если коэффициенты и из номинальной системы известны движущие силы, затем можно определить усиление контроллера использование методов размещения полюса. Выполнение так производит следующее условие соответствия.
Когда вы используете одно значение усиления и в качестве feedforward и в качестве усиления обратной связи, этому условию соответствия нельзя удовлетворить для всех возможных значений и . Для более общего решения можно настроить два различных значения усиления (настройка мультипараметра).
В данном примере используйте следующую неизвестную систему и ссылочную динамику.
В этом случае идеальное усиление управления .
Чтобы реализовать подход управления поиском экстремума (ESC) к предыдущей проблеме, вы задаете целевую функцию, которую контроллер ESC затем максимизирует, чтобы найти усиление контроллера .
В данном примере используйте следующую целевую функцию.
Следующий рисунок показывает настройку для управления поиском экстремума.
Функция стоимости вычисляется из выходных параметров ссылочной системы и фактической системы.
Экстремум, ища контроллер обновляет параметр усиления.
Действие управления обновляется с помощью нового значения усиления.
Это действие управления применяется к фактической системе.
firstOrderRefTracking_Esc
Модель Simulink реализует эту проблемную настройку.
mdl = 'firstOrderRefTracking_Esc';
open_system(mdl)
В этой модели вы используете Экстремум, Ища Блок управления, чтобы оптимизировать значение усиления.
Системная Динамика и Объективная подсистема содержат образец модели, объект (включая фактическую систему и действие управления), и расчет целевой функции. Эти элементы все реализованы с помощью блоков MATLAB function.
open_system([mdl '/System Dynamics and Objective'])
Задайте исходное предположение для значения усиления.
IC = 0;
Экстремум, Ища Блок управления тревожит значение параметров с помощью сигнала модуляции. Это затем демодулирует получившееся изменение в сигнале целевой функции прежде, чем вычислить обновление параметра. Сконфигурируйте экстремум, ища параметры управления для этого блока.
Сначала задайте количество параметров, которые будут настроены (N
) и скорость обучения (lr
).
N = 1; lr = 0.55;
Сконфигурируйте сигналы демодуляции и модуляции путем определения их частоты (omega
), фазы (phi_1
и phi_2
), и их амплитуды (a
и b
).
omega = 5; % Forcing frequency a = 1; % Demodulation amplitude b = 0.1; % Modulation amplitude phi_1 = 0; % Demodulation phase phi_2 = 0; % Modulation phase
В данном примере Экстремум, Ища Блок управления сконфигурирован, чтобы удалить высокочастотный шум из демодулируемого сигнала. Установите частоту среза для соответствующего фильтра lowpass.
omega_lpf = 1;
Симулируйте модель.
sim(mdl);
Чтобы проверять эффективность отслеживания уставки, просмотрите траектории состояния от симуляции. Фактическая траектория сходится к ссылочной траектории меньше чем за пять секунд.
open_system([mdl '/System Dynamics and Objective/State'])
Чтобы исследовать поведение контроллера ESC, сначала просмотрите целевую функцию, которая достигает ее максимального значения быстро.
open_system([mdl '/System Dynamics and Objective/Cost'])
Путем максимизации целевой функции диспетчер ESC оптимизирует значение усиления управления около его идеального значения –2. Колебания значения усиления происходят из-за сигнала модуляции от Экстремума, Ища Блок управления.
open_system([mdl '/System Dynamics and Objective/Gain K'])
bdclose(mdl)