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

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

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

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

Задайте параметры номинального объекта, на основе которого контроллер MPC. Системы от мВ до MO и UD к MO идентичны.

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.

Эффективность отслеживания замкнутого цикла приемлема с присутствием неизмеренных воздействий.

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

Похожие темы