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