sim

Симулируйте контроллер MPC в замкнутом цикле с линейным объектом

Описание

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

Чтобы запустить модели simulink программно, смотрите sim (Simulink).

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

пример

sim(mpcobj,Ns,r,v) также задает измеренный сигнал нарушения порядка v.

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

[y,t,u,xp,xc,SimOptions] = sim(___) подавляет графическое изображение и вместо этого возвращает:

  • последовательность выходов объекта y,

  • временной последовательности t (с равными интервалами mpcobj.Ts),

  • управляемые переменные u сгенерирован контроллером MPC,

  • последовательность xp состояний модели объекта, используемого для симуляции,

  • последовательность xmpc состояний контроллера MPC (предоставляется наблюдателем состояния),

  • и объект опций симуляции, SimOptions.

Примеры

свернуть все

Симулируйте 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)];

The опорного сигнала, 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.

Figure contains 3 axes. Axes 1 contains an object of type line. These objects represent Driving inputs, MPC response1. Axes 2 contains an object of type line. These objects represent Driving inputs, MPC response1. Axes 3 contains an object of type line. These objects represent Driving inputs, MPC response1.

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Driving inputs, MPC response1.

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

свернуть все

Моделируйте прогнозирующий контроллер, заданный как один из следующих:

  • mpc объект - Неявный контроллер MPC

  • explicitMPC объект - Явный контроллер, созданный с помощью generateExplicitMPC.

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

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

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

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

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

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

Пример: 100

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

Пример: ones(100,1)

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

Пример: [zeros(50,1);ones(50,1)]

Опции симуляции, используемые для задания дополнительной симуляции параметров, а также сигналов шума и нарушения порядка, которые поступают в объект, но неизвестны контроллеру. Можно также использовать этот объект для моделирования объекта управления в разомкнутый контур или для определения модели объекта управления, которая будет использоваться в симуляции, отличной от той, в MPCobj.Model.Plant, что позволяет вам оценить робастность цикла управления ответа на несоответствие модели.

Для получения дополнительной информации смотрите mpcsimopt.

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

свернуть все

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

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

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

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

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

Объекты опций симуляции, используемые для симуляции. Этот объект может задавать сигналы шума и нарушения порядка, которые поступают в объект, но неизвестны контроллеру. Это также может указать, является ли моделируемая система разомкнутого контура или модели объекта управления, используемая в симуляции, отличается от той, в MPCobj.Model.Plant.

Для получения дополнительной информации смотрите mpcsimopt.

См. также

| |

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