Этот пример показывает, как получить представление LTI неограниченного контроллера MPC, использующего ss
. Можно использовать это, чтобы анализировать частотную характеристику и производительность контроллера.
Задайте модель объекта управления. В данном примере используйте модель 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.InputGroup.MV = 1; CSTR.InputGroup.UD = 2; CSTR.OutputGroup.MO = 1; CSTR.OutputGroup.UO = 2;
Создайте контроллер MPC для заданного объекта с помощью того же шага расчета, горизонта прогноза, и настроив веса, описанные в Проекте Контроллер MPC в Командной строке.
MPCobj = mpc(CSTR,1,15);
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2. -->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000. -->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000. -->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000. for output(s) y1 and zero weight for output(s) y2
MPCobj.W.ManipulatedVariablesRate = 0.3; MPCobj.W.OutputVariables = [1 0];
Извлеките представление пространства состояний LTI контроллера.
MPCss = ss(MPCobj);
-->Converting model to discrete time. -->The "Model.Disturbance" property of "mpc" object is empty: Assuming unmeasured input disturbance #2 is integrated white noise. Assuming no disturbance added to measured output channel #1. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
Преобразуйте исходную модель CSTR
в дискретную форму с помощью того же шага расчета в качестве контроллера MPC.
CSTRd = c2d(CSTR,MPCss.Ts);
Создайте модель LTI системы с обратной связью с помощью feedback
. Используйте переменную, которой управляют, и измеренный вывод для обратной связи, указывая на цикл позитивных откликов. Используя отрицательную обратную связь привел бы к нестабильной системе с обратной связью, потому что контроллер MPC разработан, чтобы использовать позитивные отклики.
CLsys = feedback(CSTRd,MPCss,1,1,1);
Можно затем анализировать получившуюся систему с обратной связью. Например, проверьте, что все полюса с обратной связью в модульном кругу.
poles = eig(CLsys)
poles = 6×1 complex
0.5513 + 0.2700i
0.5513 - 0.2700i
0.6131 + 0.1110i
0.6131 - 0.1110i
0.9738 + 0.0000i
0.9359 + 0.0000i
Можно также просмотреть системную частотную характеристику.
bode(CLsys)