exponenta event banner

tf

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

Синтаксис

Описание

Используйте элемент управления «Прогнозирование модели» 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