Опции симуляции MPC
При симуляции неявного или явного контроллера MPC с помощью sim
функция, можно задать дополнительные опции симуляции, используя mpcsimopt
объект.
PlantInitialState
- Симуляция начального состояния объекта моделирования[]
(по умолчанию) | векторСимуляция начального состояния модели объекта управления, заданная как вектор с длиной, равной числовым состояниям в модели объекта управления, используемой для симуляции. Чтобы использовать номинальное состояние по умолчанию модели объекта управления симуляции, установите PlantInitialState
на []
.
Если вы не задаете Model
опция, затем модель объекта управления, используемая для симуляции, является внутренней моделью объекта управления от контроллера. В этом случае начальное состояние контроллера по умолчанию равно mpcobj.Model.Nominal.X
.
Если вы задаете Model
опция, затем модель объекта управления, используемая для симуляции Model.Plant
. В этом случае начальное состояние контроллера по умолчанию равно Model.Nominal.X
.
ControllerInitialState
- начальное условие контроллера MPC[]
(по умолчанию) | mpcstate
объектНачальное условие контроллера MPC, заданное как mpcstate
объект. Настройка ControllerInitialState = []
эквивалентно установке ControllerInitialState = mpcstate(mpcobj)
.
UnmeasuredDisturbance
- Неизмеренный сигнал нарушения порядка[]
(по умолчанию) | массивНеизмеренный сигнал нарушения порядка для симуляции нарушений порядка, происходящих на неизмеренных входах нарушения порядка модели объекта управления моделирования, заданный как массив с Nud столбцами и до Nt строк, где Nud - количество неизмеренных нарушений порядка, а Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции.
InputNoise
- Управляемая переменная шума[]
(по умолчанию) | массивМанипулируемый сигнал переменного шума для симуляции нарушений порядка нагрузки, происходящих на манипулируемых входах переменной в модель объекта управления симуляции, заданный как массив с Nmv столбцами и до Nt строк, где Nmv - количество манипулируемых переменных, и Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции.
OutputNoise
- Измеренный выходной сигнал шума[]
(по умолчанию) | массивИзмеренный выходной сигнал шума для симуляции нарушений порядка, происходящих на измеренном выходе модели симуляционного объекта, заданный как массив с Ny столбцами и до Nt строк, где Ny - количество измеренных выходов, и Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции.
RefLookAhead
- Флаг, указывающий, использовать ли предварительный просмотр ссылки'off'
(по умолчанию) | 'on'
Флаг, указывающий, использовать ли предварительный просмотр ссылки во время симуляции, задается как одно из следующего:
'off'
- Не используйте предварительный просмотр ссылок.
'on'
- Использовать предварительный просмотр ссылок.
При симуляции явного контроллера MPC необходимо задать RefLookAhead
на 'off'
.
MDLookAhead
- Флаг, указывающий, использовать ли предварительный просмотр измеренных нарушений порядка'off'
(по умолчанию) | 'on'
Флаг, указывающий, следует ли использовать предварительный просмотр измеренных нарушений порядка во время симуляции, указывается как одно из следующего:
'off'
- Не используйте предварительный просмотр измеренных нарушений порядка.
'on'
- Использовать измеренный предварительный просмотр нарушения порядка.
При симуляции явного контроллера MPC необходимо задать MDLookAhead
на 'off'
.
Constraints
- Флаг, указывающий, разрешать ли ограничения'on'
(по умолчанию) | 'off'
Флаг, указывающий, разрешать ли ограничения во время симуляции, задается как одно из следующего:
'on'
- Используйте ограничения, заданные в контроллере во время симуляции.
'off'
- Моделируйте контроллер без каких-либо ограничений.
Model
- Модель объекта управления для симуляции[]
(по умолчанию) | системный объект LTI | структуруМодель объекта управления для симуляции, заданная как одно из следующего:
[]
- Симулируйте контроллер относительно его внутренней модели объекта управления (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
опция.
StatusBar
- Флаг, указывающий, отображать ли строку состояния симуляции'off'
(по умолчанию) | 'on'
Флаг, указывающий, отображать ли строку состояния симуляции, заданный как один из следующих:
'off'
- Не отображать строку состояния.
'on'
- отображение строки состояния.
MVSignal
- Последовательность манипулируемых переменных[]
(по умолчанию) | массивПоследовательность манипулируемых переменных для использования во время симуляции без разомкнутого контура, заданная как массив с Nmv столбцами и до Nt строками, где Nmv - количество манипулируемых переменных, и Nt - количество шагов симуляции. Если вы задаете меньше Nt строк, то значения в последней строке массива продлеваются до конца симуляции. Указанные управляемые сигналы переменной должны включать любые манипулируемые смещения переменной.
Если вы задаете MVSignal
, тогда контроллер не вычисляет действия управления и опорного сигнала симуляции игнорируется.
OpenLoop
- Флаг, указывающий, запускать ли симуляцию разомкнутого контура'off'
(по умолчанию) | 'on'
Флаг, указывающий, запускать ли симуляцию без разомкнутого контура, заданный как одно из следующего:
'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.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.