Опции симуляции MPC
При симуляции неявного или явного контроллера MPC, использующего sim
функция, можно задать опции дополнительной симуляции с помощью mpcsimopt
объект.
mpcobj
— Контроллер MPC объектmpc
возразите | explicitMPC
объектКонтроллер MPC объект, заданный как любой mpc
или explicitMPC
объект.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.