В этом примере показов, как проверить чувствительность вашей модели прогнозирующего контроллера к ошибкам предсказания с помощью симуляций.
Это хорошая практика, чтобы проверить робастность вашего контроллера на ошибки предсказания. Классическая фаза и запасы по амплитуде являются одним из способов количественной оценки робастности для приложения SISO. Программное обеспечение Robust Control Toolbox™ предоставляет сложные подходы для систем MIMO. Также может быть полезно запускать симуляции.
В данном примере используйте модель CSTR, описанную в Контроллер Using MPC Designer.
A = [-0.0285 -0.0014; -0.0371 -0.1476]; B = [-0.0850 0.0238; 0.0802 0.4462]; C = [0 1; 1 0]; D = zeros(2,2); CSTR = ss(A,B,C,D);
Укажите имена сигналов и типы сигналов для объекта.
CSTR.InputName = {'T_c','C_A_i'}; CSTR.OutputName = {'T','C_A'}; CSTR.StateName = {'C_A','T'}; CSTR = setmpcsignals(CSTR,'MV',1,'UD',2,'MO',1,'UO',2);
Откройте MPC Designer и импортируйте модель объекта управления.
mpcDesigner(CSTR)
Приложение импортирует модель объекта управления и добавляет ее в Data Browser. Это также создает контроллер по умолчанию и сценарий симуляции по умолчанию.
Обычно вы проектируете свой контроллер, задавая коэффициенты масштабирования, определяя ограничения и корректируя веса настройки. В данном примере измените шаг расчета контроллера и сохраните настройки других контроллеров на своих значениях по умолчанию.
В MPC Designer на вкладке Tuning, в разделе Horizon, задайте Sample time 0.25
секунд.
Графики Input Response и Output Response обновляются, чтобы отразить новые шаги расчета.
Чтобы протестировать отслеживание уставки контроллера и неизмеренное подавление помех, измените сценарий симуляции по умолчанию.
В Data Browser, в Scenarios разделах, щелкните правой кнопкой мыши scenario1
, и выберите Edit.
В диалоговом окне Simulation Scenario задайте Simulation duration 50
секунд.
В Reference Signals таблице сохраните значение по умолчанию Ref of T
уставка строения, которая имитирует единичное изменение температуры реактора.
Чтобы удерживать уставку концентрации на ее номинальном значении, во второй строке, в выпадающем списке Signal, выберите Constant
.
Симулируйте неотмеренное нарушение порядка с единичным шагом за время 25 секунд. В таблице Unmeasured Disturbances, в раскрывающемся списке Signal, выберите Step
, и задайте Time 25
.
Нажмите OK.
Приложение запускает сценарий симуляции и обновляет графики отклика, чтобы отразить новые настройки симуляции. Для этого сценария внутренняя модель контроллера используется в симуляции. Поэтому результаты симуляции представляют эффективность контроллера, когда нет ошибок предсказания.
Предположим, что вы хотите проверить чувствительность вашего контроллера к изменениям установки, которые изменяют эффект температуры теплоносителя на температуру реактора. Можно симулировать такие изменения, возмущая элемент B(2,1)
матрицы «вход-состояние» CSTR.
В MATLAB® Командное окно, задайте матрицу возмущения.
dB = [0 0;0.05 0];
Создайте две возмущенные модели объекта управления.
perturbUp = CSTR; perturbUp.B = perturbUp.B + dB; perturbDown = CSTR; perturbDown.B = perturbDown.B - dB;
Чтобы изучить эффекты возмущений объекта, постройте график переходных характеристик объекта.
step(CSTR,perturbUp,perturbDown) legend('CSTR','peturbUp','perturbDown')
Возмущающий элемент B(2,1)
Объект величину отклика температуры реактора, T
, к изменениям температуры теплоносителя, Tc
.
В MPC Designer на вкладке MPC Designer, в разделе Import, нажмите Import Plant.
В диалоговом окне Import Plant Model выберите perturbUp
и perturbDown
модели.
Нажмите Import.
Приложение импортирует модели и добавляет их в Data Browser.
Создайте два сценария симуляции, которые используют возмущенные модели объекта управления.
В Data Browser, в Scenarios разделе, дважды кликните мышью scenario1
, и переименовать его accurate
.
Щелкните правой кнопкой мыши accurate
, и нажмите Copy. Переименовать accurate_Copy
на errorUp
.
Щелкните правой кнопкой мыши errorUp
, и выберите Edit.
В диалоговом окне Simulation Scenario, в раскрывающемся списке Plant used in simulation, выберите perturbUp
.
Нажмите OK.
Повторите этот процесс для второго возмущенного объекта.
Скопируйте accurate
сценарий и переименовать его в errorDown
.
Редактирование errorDown
, выбор perturbDown
объект.
errorUp
Реакция симуляцииНа вкладке MPC Designer, в разделе Scenario, нажмите Plot Scenario > errorUp.
Приложение создает errorUp: Input и errorUp: Output вкладки и отображает ответ симуляции.
Чтобы просмотреть accurate
и errorUp
отклики один за другим, перетащите вкладку accurate: Output на левую панель графика.
Возмущение создает объект, perturbUp
, который быстрее реагирует на манипулируемые изменения переменных, чем прогнозирует контроллер. На вкладке errorUp: Output, на графике Output Response, T ответ шага уставки имеет около 10% перерегулирования с более длительным временем установления. Хотя этот ответ хуже, чем ответ accurate
симуляция, она все еще приемлема. Более быстрый ответ объекта приводит к меньшей пиковой ошибке из-за неизмеренного нарушения порядка. В целом контроллер способен управлять perturbUp
объект успешно несмотря на внутреннюю ошибку предсказания модели.
errorDown
Реакция симуляцииНа вкладке MPC Designer, в разделе Scenario, нажмите Plot Scenario > errorDown.
Приложение создает errorDown: Input и errorDown: Output вкладки и отображает ответ симуляции.
Чтобы просмотреть accurate
и errorDown
отклики один за другим, щелкните вкладку accurate: Output на левой панели отображения.
Возмущение создает объект, perturbDown
, который медленнее реагирует на манипулируемые изменения переменных, чем прогнозирует контроллер. На вкладке errorDown: Output, на графике Output Response, отслеживание и подавление помех уставки хуже, чем для невозмущенного объекта.
В зависимости от требований приложения и реального потенциала таких изменений объекта, ухудшенная реакция для perturbDown
объект может потребовать изменений в проектировании контроллера.