В этом примере показано, как протестировать чувствительность вашего прогнозирующего контроллера модели к симуляциям ошибок предсказания.
Это - хорошая практика, чтобы протестировать робастность вашего контроллера к ошибкам предсказания. Классическая фаза и запасы по амплитуде являются одним способом определить количество робастности для приложения 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
объект может потребовать модификаций к проектированию контроллера.