В этом примере показано, как управлять установкой двойного интегратора с насыщением входных данных в Simulink ®.
Определите модель завода как двойной интегратор (входным сигналом является управляемая переменная, а выходным сигналом - измеренный выходной сигнал).
plant = tf(1,[1 0 0]);
Создайте объект контроллера с периодом выборки 0,1 секунды, горизонтом прогнозирования 10 шагов и горизонтом управления 3 хода.
mpcobj = mpc(plant, 0.1, 10, 3);
-->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.
Поскольку вы не указали веса квадратичной функции затрат, которые должны быть минимизированы контроллером, предполагается, что их значение является значением по умолчанию (0 для обрабатываемых переменных, 0,1 для обрабатываемых переменных, 1 для выходных переменных). Кроме того, на данном этапе проблема MPC все еще не ограничена, так как еще не указано какое-либо ограничение.
Укажите пределы насыщения привода в качестве ограничений для управляемой переменной.
mpcobj.MV = struct('Min',-1,'Max',1);
Simulink - графическая среда блок-схем для моделирования многооменных систем. Можно подключить блоки, представляющие динамические системы (в данном случае завод и контроллер ПДК), и смоделировать замкнутый контур.
% Check that Simulink is installed, otherwise display a message and return if ~mpcchecktoolboxinstalled('simulink') disp('Simulink is required to run this example.') return end
Откройте уже существующую модель Simulink для моделирования с замкнутым контуром. Модель установки реализована с двумя блоками интеграторов последовательно. Алгоритм интегрирования variable-step ode45 используется для вычисления поведения непрерывного цикла времени. Блок контроллера MPC настроен на использование рабочей области mpcobj объект в качестве контроллера. Управляемые переменные и выходной и опорный сигнал. Выходной сигнал также сохраняется блоком «В рабочее пространство».
mdl = 'mpc_doubleint';
open_system(mdl)



Моделирование управления по замкнутому контуру линейной модели установки в Simulink. Обратите внимание, что перед запуском моделирования модель завода в mpcobj преобразуется в модель пространства дискретного состояния. По умолчанию контроллер использует в качестве наблюдателя конструктора фильтров Калмана, предполагая нарушение белого шума на выходе каждой установки.
sim(mdl) % you can also simulate by pressing the "Run" button.
-->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.


Отклик по замкнутому контуру показывает хорошие характеристики отслеживания уставок, так как выходной сигнал установки отслеживает свою опорную точку примерно через 2,5 секунды. Как и ожидалось, управляемая переменная остается в пределах предопределенных ограничений.
Закройте открытую модель Simulink без сохранения изменений.
bdclose(mdl)
mpc | Контроллер MPC | Разработчик MPC