Управление объекта с одним входом и одним выходом

В этом примере показано, как управлять объектом с двойным интегратором под входной насыщенностью в Simulink®.

Задайте модель объекта управления

Линейная динамическая модель разомкнутого цикла является двойным интегратором.

plant = tf(1,[1 0 0]);

Спроектируйте контроллер MPC

Создайте объект контроллера с выборкой периода, предсказания и управляйте горизонтами.

Ts = 0.1;
p = 10;
m = 3;
mpcobj = mpc(plant, Ts, p, m);
-->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.

Задайте пределы насыщения привода как ограничения мВ.

mpcobj.MV = struct('Min',-1,'Max',1);

Симулируйте Используя Simulink

Чтобы запустить этот пример, Simulink требуется.

if ~mpcchecktoolboxinstalled('simulink')
    disp('Simulink is required to run this example.')
    return
end

Симулируйте управление с обратной связью линейной модели объекта управления в Simulink. Блок MPC Controller сконфигурирован, чтобы использовать mpcobj возразите как его контроллер.

mdl = 'mpc_doubleint';
open_system(mdl)
sim(mdl)
-->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.

Ответ с обратной связью показывает хорошую производительность отслеживания заданного значения.

bdclose(mdl)

Смотрите также

| |

Похожие темы