Этот пример показывает как модели проекта прогнозирующий контроллер со смешанными ограничениями ввода/вывода.
Основная настройка контроллера MPC включает:
Двойной интегратор как модель прогноза
Горизонт прогноза 20
Управляйте горизонтом 20
Введите ограничения -1 <= u(t) <= 1
plant = tf(1,[1 0 0]); % Prediction model Ts = .1; % Sampling time p = 20; % Prediction horizon m = 20; % Control horizon mpcobj = mpc(plant,Ts,p,m); % MPC object mpcobj.MV = struct('Min',-1,'Max',1); % Input saturation constraints
-->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.
Сумма входа u(t)
и вывода y(t)
должна быть неотрицательной и меньшей, чем 1,2:
0 <= u(t) + y(t) <= 1.2
Чтобы наложить это объединенное (смешанное) ограничение ввода-вывода, сформулируйте его как набор ограничений неравенства, включающих u(t)
и y(t)
:
u(t) + y(t) <= 1.2 -u(t) + -y(t) <= 0
setconstraint(mpcobj,[1;-1],[1;-1],[1.2;0]);
Чтобы запустить этот пример, Simulink® требуется.
if ~mpcchecktoolboxinstalled('simulink') disp('Simulink(R) is required to run this example.') return end
Моделируйте управление с обратной связью линейной модели объекта управления в Simulink. Контроллер "mpcobj" задан в диалоговом окне блока.
mdl = 'mpc_mixedconstraints'; open_system(mdl); % Open Simulink(R) Model sim(mdl); % Start Simulation
-->Converting the "Model.Plant" property of "mpc" object to state-space. -->Converting model to discrete time. 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.
Как вы видите, Контроллер MPC всегда сохраняет сумму u+y
между 0 и 1.2 при отслеживании ссылочного r=1
сигнала.
bdclose(mdl);