sim

Симулируйте ответ замкнутого цикла/разомкнутого цикла на произвольную ссылку и сигналы воздействия для неявного или явного MPC

Синтаксис

sim(MPCobj,T,r)
sim(MPCobj,T,r,v)
sim(___,SimOptions)
[y,t,u,xp,xmpc,SimOptions] = sim(___)

Описание

Используйте sim симулировать неявный (традиционный) или явный контроллер MPC в замкнутом цикле с линейной независимой от времени моделью, которая, по умолчанию, является моделью объекта управления, содержавшейся в MPCobj.Model.Plant. Как альтернатива, sim может симулировать поведение разомкнутого цикла модели объекта или поведение с обратной связью в присутствии несоответствия модели, когда модель прогноза диспетчера отличается от фактической модели объекта управления.

sim(MPCobj,T,r) симулирует систему с обратной связью, сформированную моделью объекта управления, заданной в MPCobj.Model.Plant и контроллером MPC, заданным контроллером MPC MPCobj, в ответ на заданный ссылочный сигнал, r. Диспетчер MPC может быть любой традиционным диспетчером MPC (mpc) или явный контроллер MPC (explicitMPC). Симуляция запускается для конкретного количества шагов симуляции, T\sim строит результаты симуляции.

sim(MPCobj,T,r,v) также указывает, что измеренное воздействие сигнализирует о v.

sim(___,SimOptions) задает опции дополнительной симуляции. Этот синтаксис позволяет вам изменять опции симуляции по умолчанию, такие как начальные состояния, ввод/вывод шумовые и неизмеренные воздействия, несоответствие объекта, и т.д. Можно использовать SimOptions с любой из предыдущих входных комбинаций.

[y,t,u,xp,xmpc,SimOptions] = sim(___) подавляет графический вывод и вместо этого возвращает последовательность объекта выходные параметры y, последовательность времени t (равномерно распределенный MPCobj.Ts), переменные u, которыми управляют, сгенерированный контроллером MPC, последовательность xp из состояний модели объекта, используемого в симуляции, последовательность xmpc из состояний контроллера MPC (обеспеченный наблюдателем состояния), и опции симуляции, SimOptions. Можно использовать этот синтаксис с любой из позволенных комбинаций входных аргументов.

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

MPCobj

Контроллер MPC, содержащий параметры Прогнозирующего Закона о надзоре Модели, чтобы симулировать, заданный как любой неявный контроллер MPC (mpc) или явный контроллер MPC (explicitMPC).

T

Количество шагов симуляции, заданных как положительное целое число.

Если вы не используете T, значением по умолчанию является размер строки того, какой бы ни из следующих массивов имеет самый большой размер строки:

  • Входной параметр r

  • Входной параметр v

  • UnmeasuredDisturbance свойство SimOptions, если задано

  • OutputNoise свойство SimOptions, если задано

Значение по умолчанию: самый большой размер строки rV, UnmeasuredDisturbance, и OutputNoise

r

Ссылочный сигнал, заданный как массив. Этот массив имеет ny столбцы, где ny количество объекта выходные параметры. r может иметь где угодно от 1 к T 'Строки' . Если количество строк меньше T, недостающие строки установлены равные последней строке.

Значение по умолчанию: MPCobj.Model.Nominal.Y

v

Измеренный сигнал воздействия, заданный как массив. Этот массив имеет nv столбцы, где nv количество измеренных входных воздействий. v может иметь где угодно от 1 к T 'Строки' . Если количество строк меньше T, недостающие строки установлены равные последней строке.

Значение по умолчанию: Соответствующие записи от MPCobj.Model.Nominal.U

SimOptions

Опции симуляции, заданные как mpcsimopt объект.

Значение по умолчанию: []

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

y

Последовательность управляемого объекта выходные параметры, возвращенные как T- Ny массив, где T количество шагов симуляции и Ny количество объекта выходные параметры. Значения в y не включайте ни аддитивные выходные воздействия, ни аддитивный шум измерения (если таковые имеются).

t

Последовательность времени, возвращенная как T- 1 массив, где T количество шагов симуляции. Значения в t равномерно распределены MPCobj.Ts.

u

Последовательность переменных, которыми управляют, сгенерирована контроллером MPC, возвращенным как T- Nu массив, где T количество шагов симуляции и Nu количество переменных, которыми управляют.

xp

Последовательность состояний модели объекта управления, T- Nxp массив, где T количество шагов симуляции и Nxp количество состояний в модели объекта управления. Моделью объекта управления является любой MPCobj.Model или SimOptions.Model, если последний задан.

xmpc

Последовательность контроллера MPC утверждает оценки, возвращенные как T- 1 массив структур. Каждая запись в массиве структур имеет те же поля как mpcstate объект. Оценки состояния включают объект, воздействие и шумовые состояния модели на каждом временном шаге.

SimOptions

Используемые опции симуляции, возвратились как mpcsimopt объект.

Примеры

свернуть все

Симулируйте MPC управление системой MISO. Система имеет переменную того, которой управляют, одно измеренное воздействие, одно неизмеренное воздействие и один выход.

Создайте модель объекта управления непрерывного времени. Этот объект будет использоваться в качестве модели прогноза для контроллера MPC.

sys = ss(tf({1,1,1},{[1 .5 1],[1 1],[.7 .5 1]}));

Дискретизируйте модель объекта управления с помощью времени выборки 0,2 модулей.

Ts = 0.2;
sysd = c2d(sys,Ts);

Задайте тип сигнала MPC для входных сигналов объекта.

sysd = setmpcsignals(sysd,'MV',1,'MD',2,'UD',3);

Создайте контроллер MPC для sysd модель объекта управления. Используйте значения по умолчанию в весах и горизонтах.

MPCobj = mpc(sysd);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 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.

Ограничьте переменную, которой управляют, к [0 1] область значений.

MPCobj.MV = struct('Min',0,'Max',1);

Задайте время остановки симуляции.

Tstop = 30;

Задайте ссылочный сигнал и измеренный сигнал воздействия.

num_sim_steps = round(Tstop/Ts);
r = ones(num_sim_steps,1);
v = [zeros(num_sim_steps/3,1); ones(2*num_sim_steps/3,1)];

Ссылочный сигнал, r, модульный шаг. Измеренный сигнал воздействия, v, модульный шаг, с 10 единичными задержками.

Симулируйте контроллер.

sim(MPCobj,num_sim_steps,r,v)
-->The "Model.Disturbance" property of "mpc" object is empty:
   Assuming unmeasured input disturbance #3 is integrated white noise.
   Assuming no disturbance added to measured output channel #1.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

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

| |

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