Симуляция прогнозирующего контроллера модели с несоответствием модели объекта управления

Этот пример показывает, как моделировать прогнозирующий контроллер модели при несоответствии между прогнозирующей моделью объекта управления и фактическим объектом.

Прогнозирующая модель объекта управления имеет 2 манипулированные переменные, 2 неизмеренных входных нарушения порядка и 2 измеренных выхода. Фактический объект имеет разную динамику.

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

Определите параметры номинального объекта управления, на котором основан контроллер MPC. Системы от СН до СН и УД до СН идентичны.

p1 = tf(1,[1 2 1])*[1 1; 0 1];
plant = ss([p1 p1],'min');
plant.InputName = {'mv1','mv2','ud3','ud4'};

Проектирование контроллера MPC

Задайте входы 1 и 2 как манипулируемые переменные, 3 и 4 как неизмеренные нарушения порядка.

plant = setmpcsignals(plant,'MV',[1 2],'UD',[3 4]);
% Create the controller object with sampling period, prediction and control
% horizons:
mpcobj = mpc(plant,1,40,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.

Для неизмеренных входных нарушений порядка контроллер MPC использует следующую немеризованную модель возмущения.

distModel = eye(2,2)*ss(-.5,1,1,0);
mpcobj.Model.Disturbance = distModel;

Определите реальную модель объекта управления, используемую в симуляции

Определите параметры фактического объекта в закрытом цикле с помощью контроллера MPC.

p2 = tf(1.5,[0.1 1 2 1])*[1 1; 0 1];
psim = ss([p2 p2],'min');
psim = setmpcsignals(psim,'MV',[1 2],'UD',[3 4]);

Симулируйте ответ с обратной связью с помощью команды SIM

Задайте эталонные траектории и неизмеренные нарушения порядка, поступающие на фактический объект.

dist = ones(1,2);   % unmeasured disturbance signal
refs = [1 2];       % output reference signal
Tf = 20;            % total number of simulation steps

Создайте объект симуляции MPC.

options = mpcsimopt(mpcobj);
options.unmeas = dist;  % unmeasured disturbance signal
options.model = psim;   % real plant model

Запустите симуляцию MPC с обратной связью с несоответствием модели и непредвиденными неизмеренными входами нарушения порядка.

sim(mpcobj,Tf,refs,options);
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->Assuming output disturbance added to measured output channel #2 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
-->Converting model to discrete time.

Figure contains 4 axes. Axes 1 contains an object of type line. These objects represent Driving inputs, MPC response1. Axes 2 contains an object of type line. These objects represent Driving inputs, MPC response1. Axes 3 contains an object of type line. These objects represent Driving inputs, MPC response1. Axes 4 contains an object of type line. These objects represent Driving inputs, MPC response1.

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Driving inputs, MPC response1. Axes 2 contains 2 objects of type line. These objects represent Driving inputs, MPC response1.

Закрытый цикл эффективности слежения приемлема при наличии неизмеренных нарушений порядка.

См. также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте