mpcsimopt

Опции симуляции MPC

Описание

При симуляции неявного или явного контроллера MPC с помощью sim функция, можно задать дополнительные опции симуляции, используя mpcsimopt объект.

Создание

Синтаксис

Описание

пример

options = mpcsimopt; создает набор опций по умолчанию для задания дополнительных параметров для симуляции контроллера MPC с sim функция. Чтобы задать значения nondefault для свойств, используйте запись через точку.

Свойства

расширить все

Симуляция начального состояния модели объекта управления, заданная как вектор с длиной, равной числовым состояниям в модели объекта управления, используемой для симуляции. Чтобы использовать номинальное состояние по умолчанию модели объекта управления симуляции, установите PlantInitialState на [].

Если вы не задаете Model опция, затем модель объекта управления, используемая для симуляции, является внутренней моделью объекта управления от контроллера. В этом случае начальное состояние контроллера по умолчанию равно mpcobj.Model.Nominal.X.

Если вы задаете Model опция, затем модель объекта управления, используемая для симуляции Model.Plant. В этом случае начальное состояние контроллера по умолчанию равно Model.Nominal.X.

Начальное условие контроллера MPC, заданное как mpcstate объект. Настройка ControllerInitialState = [] эквивалентно установке ControllerInitialState = mpcstate(mpcobj).

Неизмеренный сигнал нарушения порядка для симуляции нарушений порядка, происходящих на неизмеренных входах нарушения порядка модели объекта управления моделирования, заданный как массив с Nud столбцами и до Nt строк, где Nud - количество неизмеренных нарушений порядка, а Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции.

Манипулируемый сигнал переменного шума для симуляции нарушений порядка нагрузки, происходящих на манипулируемых входах переменной в модель объекта управления симуляции, заданный как массив с Nmv столбцами и до Nt строк, где Nmv - количество манипулируемых переменных, и Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции.

Измеренный выходной сигнал шума для симуляции нарушений порядка, происходящих на измеренном выходе модели симуляционного объекта, заданный как массив с Ny столбцами и до Nt строк, где Ny - количество измеренных выходов, и Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции.

Флаг, указывающий, использовать ли предварительный просмотр ссылки во время симуляции, задается как одно из следующего:

  • 'off' - Не используйте предварительный просмотр ссылок.

  • 'on' - Использовать предварительный просмотр ссылок.

При симуляции явного контроллера MPC необходимо задать RefLookAhead на 'off'.

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

  • 'off' - Не используйте предварительный просмотр измеренных нарушений порядка.

  • 'on' - Использовать измеренный предварительный просмотр нарушения порядка.

При симуляции явного контроллера MPC необходимо задать MDLookAhead на 'off'.

Флаг, указывающий, разрешать ли ограничения во время симуляции, задается как одно из следующего:

  • 'on' - Используйте ограничения, заданные в контроллере во время симуляции.

  • 'off' - Моделируйте контроллер без каких-либо ограничений.

Модель объекта управления для симуляции, заданная как одно из следующего:

  • [] - Симулируйте контроллер относительно его внутренней модели объекта управления (mpcobj.Model). В этом случае несоответствия модели объекта управления нет.

  • Системный объект LTI - Моделируйте контроллер относительно заданного объекта LTI. Указанный объект должен иметь то же строение входной и выходной группы, что и mpcobj.Model.Plant. Чтобы задать это строение, используйте setmpcsignals.

  • Структура с полями Plant и Nominal - Моделируйте контроллер с помощью заданного объекта (Plant) и номинальные условия (Nominal).

Model устанавливает фактический объект, с которым моделируется контроллер (а не внутренняя модель предсказания контроллера). Используйте эту опцию, чтобы задать объект, который отличается от внутренней модели объекта контроллера (несоответствие модели).

Если вы не задаете номинальные условия, Model.Nominal.U и Model.Nominal.Y наследуются от mpcobj.Model.Nominal. Model.Nominal.X и Model.Nominal.DX наследуются только, если оба объекта являются объектами пространства состояний с одной и той же размерностью состояний.

Чтобы задать начальное состояние этой модели объекта управления симуляции, используйте PlantInitialState опция.

Флаг, указывающий, отображать ли строку состояния симуляции, заданный как один из следующих:

  • 'off' - Не отображать строку состояния.

  • 'on' - отображение строки состояния.

Последовательность манипулируемых переменных для использования во время симуляции без разомкнутого контура, заданная как массив с Nmv столбцами и до Nt строками, где Nmv - количество манипулируемых переменных, и Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции. Указанные управляемые сигналы переменной должны включать любые манипулируемые смещения переменной.

Если вы задаете MVSignal, тогда контроллер не вычисляет действия управления и опорного сигнала симуляции игнорируется.

Флаг, указывающий, запускать ли симуляцию без разомкнутого контура, заданный как одно из следующего:

  • 'off' - Не отображать строку состояния.

  • 'on' - отображение строки состояния.

Функции объекта

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

Примеры

свернуть все

Симулируйте MPC управление системы с мультивходами, несколькими выходами (MIMO) с несоответствием между предсказанной и фактической моделями объекта управления. Система имеет две манипулированные переменные, два неизмеренных нарушений порядка и два измеренных выхода.

Определите предсказанную модель объекта управления.

p1 = tf(1,[1 2 1])*[1 1;0 1];
plantPredict = ss([p1 p1]);
plantPredict.InputName = {'mv1','mv2','umd3','umd4'};

Задайте типы сигналов MPC.

plantPredict = setmpcsignals(plantPredict,'MV',[1 2],'UD',[3 4]);

Создайте контроллер MPC.

mpcobj = mpc(plantPredict,1,40,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.

Задайте неизмеренную модель входного возмущения, используемую контроллером.

distModel = eye(2,2)*ss(-0.5,1,1,0);
mpcobj.Model.Disturbance = distModel;

Задайте фактическую модель объекта управления, которая отличается от предсказанной модели и имеет непредвиденные неизмеренные входы нарушения порядка.

p2 = tf(1.5,[0.1 1 2 1])*[1 1;0 1];
plantActual = ss([p2 p2 tf(1,[1 1])*[0;1]]);
plantActual = setmpcsignals(plantActual,'MV',[1 2],'UD',[3 4 5]);

Сконфигурируйте неизмеренные нарушения порядка и выходных ссылок.

dist = ones(1,3);
refs = [1 2];

Создайте и сконфигурируйте набор опций симуляции.

options = mpcsimopt(mpcobj);
options.UnmeasuredDisturbance = dist;
options.Model = plantActual;

Моделируйте систему.

sim(mpcobj,20,refs,options)
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->Assuming output disturbance added to measured output channel #2 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
-->Converting model to discrete time.
-->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.

Figure contains 5 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. Axes 4 contains an object of type line. These objects represent Driving inputs, MPC response1. Axes 5 contains an object of type line. These objects represent Driving inputs, MPC response1.

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

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