mpcsimopt

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

Описание

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

Создание

Синтаксис

Описание

пример

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

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

развернуть все

Контроллер MPC объект, заданный как любой mpc или explicitMPC объект.

Свойства

развернуть все

Начальное состояние модели объекта управления симуляции, заданное как вектор с длиной, равняется состояниям номера в модели объекта управления, используемой в симуляции. Чтобы использовать номинальное состояние по умолчанию модели объекта управления симуляции, установите 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.

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