Этот пример показывает, как протестировать чувствительность вашего образцового прогнозирующего контроллера к симуляциям ошибок прогноза.
Это - хорошая практика, чтобы протестировать робастность вашего контроллера к ошибкам прогноза. Классическая фаза и поля усиления являются одним способом определить количество робастности для приложения SISO. Программное обеспечение Robust Control Toolbox™ обеспечивает сложные подходы для систем MIMO. Может также быть полезно запустить симуляции.
В данном примере используйте модель CSTR, описанную в Контроллере Проекта Используя 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)
объекта CSTR изменяет значение ответа реакторной температуры, 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
может потребовать модификаций к проектированию контроллера.