tf

Преобразуйте контроллер MPC без ограничений в форму линейной передаточной функции

Синтаксис

Описание

Используйте Model Predictive Control Toolbox™ tf функция для преобразования контроллера MPC без ограничений в форму передаточной функции (см. mpc для фона). Возвращенный контроллер эквивалентен исходному контроллеру MPC MPCobj когда никакие ограничения не активны. Затем можно использовать программное обеспечение Control System Toolbox™ для анализа чувствительности и других диагностических вычислений.

Чтобы создать или преобразовать типовую динамическую систему LTI в форму ноль/полюс/усиление, смотрите tf и динамические системные модели.

пример

ktf = tf(MPCobj) возвращает линейный динамический контроллер в дискретном времени ktf, в форме передаточной функции. ktf эквивалентно контроллеру MPC MPCobj когда никакое ограничение не активно.

Примеры

свернуть все

Создайте завод, соответствующий объект MPC и преобразуйте его в форму передаточной функции.

mpcverbosity off;          % turn off mpc messaging
plant=tf(1,[1 1],0.2);     % create plant (0.2 seconds sampling time)
mpcobj=mpc(plant,0.2);     % create mpc object (0.2 second sampling time)

ktf=tf(mpcobj)             % convert mpc to transfer function

ktf =
 
  From input "MO1" to output "MV1":
    0.452 z^3 - 0.6781 z^2 - 1.506e-16 z
  -----------------------------------------
  z^3 - 1.001 z^2 + 0.0002642 z + 0.0006399
 
Sample time: 0.2 seconds
Discrete-time transfer function.

Постройте график отклика на шаг в неизмеренном входе нарушения порядка с помощью обоих sim команда и форма передаточной функции контроллера.

% create a plant and the corresponding mpc object
mpcverbosity off;                  % turn off mpc messaging
plant=tf({1,1},{[1 1],[1 1]},0.2); % create plant (0.2 seconds sampling time)
plant=setmpcsignals(plant,'UD',2); % second input is a disturbance entering at mv
mpcobj=mpc(plant,0.2);             % create mpc object (0.2 second sampling time)

% set input and output disturbance models (remove integrators)
setindist(mpcobj,'model',tf(1))    % set input disturbance model to 1
setoutdist(mpcobj,'model',tf(1))   % set output disturbance model to 1

% closed loop output sensitivity
cloffset(mpcobj)
ans =
    1.4472

% convert the controller and calculate closed loop transfer function
ktf=tf(mpcobj);                    % convert mpc to transfer function
Muy=feedback(plant(:,1),ktf,1);    % closed loop transfer function from mv to y

% closed loop output sensitivity using transfer function
1+dcgain(Muy*ktf)
ans =
    1.4472

% plot closed loop response to a step on the measured input
step(Muy,10);                                     % simulate using step

% create option object to inject disturbance in simulation
SimOptions = mpcsimopt;                           % create object
SimOptions.UnmeasuredDisturbance = ones(50,1);    % specify unmeasured input disturbance

% simulate closed loop for 50 steps with sim and step and plot the response
[y,t,u,xp]=sim(mpcobj,50,0,[],SimOptions);           % simulate using sim

% overlap the sim results on the plot
hold on
stairs(t,y,'r')
hold off

Входные параметры

свернуть все

Моделируйте прогнозирующий контроллер, заданный как объект контроллера MPC. Чтобы создать контроллер MPC, используйте mpc.

Выходные аргументы

свернуть все

Форма передаточной функции контроллера MPC MPCobj когда никакое ограничение не активно. Это также эквивалентно tf (ss (MPCobj))

Представлено до R2006a