Чтобы компенсировать изменение условий работы, можно обновить ограничения на вводы и выводы объекта во время выполнения. Можно обновить пределы насыщения для сигналов ввода и вывода, а также линейных смешанных ограничений ввода/вывода.
Ограничение во время выполнения, обновляющее генерацию кода поддержек.
Можно обновить границы на сигналах ввода и вывода объекта во время выполнения. Для этого сначала задайте начальные границы сигнала при разработке контроллера MPC. Для получения дополнительной информации смотрите, Задают Ограничения. Если вы не задаете начальные границы для данного сигнала, вы не можете ограничить тот сигнал во время выполнения.
Чтобы обновить границы сигнала во время симуляции командной строки, в каждом контрольном интервале, устанавливают соответствующие свойства mpcmoveopt
объект перед вызовом mpcmove
, mpcmoveAdaptive
, или mpcmoveMultiple
. Обновляться:
Переменные нижние и верхние границы, которыми управляют, набор MVMin
и MVMax
свойства, соответственно.
Выходная переменная нижние и верхние границы, набор OutputMin
и OutputMax
свойства, соответственно.
Можно также обновить границы ввода и вывода во времени выполнения в Simulink® для MPC Controller, Adaptive MPC Controller и блоков Multiple MPC Controllers. В следующей таблице перечислены границы, их связанные порты блока и параметры блоков, чтобы выбрать, чтобы включить порты.
Границы | Имя порта | Параметры блоков |
---|---|---|
Нижние границы на переменных, которыми управляют, | umin | Lower MV Limits |
Верхние границы на переменных, которыми управляют, | umax | Upper MV Limits |
Нижние границы на выходных переменных | ymin | Lower OV Limits |
Верхние границы на выходных переменных | ymax | Upper OV Limits |
Соедините сигналы с этими портами, которые задают значения во время выполнения границ для каждой переменной. Если существует больше чем одна переменная или выходная переменная, которой управляют, соедините векторный сигнал с соответствующими портами. Например, если существует три выходные переменные, соединяют трехэлементный векторный сигнал с ymin
и ymax
порты. Если переменная неограничена в объекте контроллера, то связанное значение сигналов проигнорировано.
Совет
Для любого ограничения, которое вы устанавливаете на -Inf
или Inf
, или через целый горизонт предсказания (универсальная форма) или на отдельных (изменяющихся во времени) шагах горизонта предсказания, соответствующая переменная остается неограниченной во время выполнения; то есть, вы не можете изменить его.
Однако можно сохранить переменную неограниченной, чтобы не исказить оффлайновое проектирование контроллера при поддержании способности добавить ограничения онлайн. Для этого установите границу на большое значение, когда вы создадите контроллер. Не используйте realmax
как большое значение, начиная с выполнения так вызывает числовые проблемы во время выполнения. Можно затем изменить ограничение во времени выполнения.
Если вы задаете изменяющиеся во времени ограничения в своем объекте контроллера, новые границы применяются к первым конечным значениям в горизонте предсказания. Все последующие значения горизонта предсказания настраивают, чтобы обеспечить тот же профиль через горизонт предсказания; то есть, они изменяются той же суммой.
Для примера смотрите, Варьируются Границы Ввода и вывода во Время выполнения.
Можно обновить смешанные ограничения ввода/вывода во время выполнения. Для получения дополнительной информации об этих ограничениях смотрите Ограничения на Линейные комбинации Вводов и выводов. Эта функция не поддерживается для запланированных на усиление контроллеров MPC.
Можно обновить следующие ограничительные матрицы во время симуляции:
E
— Переменное, постоянное ограничение, которым управляют
F
— Управляемое выходное постоянное ограничение
G
— Смешанное постоянное ограничение ввода/вывода
S
— Измеренное постоянное ограничение воздействия
Для этого сначала задайте начальные ограничения с помощью setconstraint
команда. Вы не можете добавить дополнительные ограничения во время выполнения.
Чтобы обновить смешанные ограничения ввода/вывода во время симуляции командной строки, в каждом контрольном интервале устанавливает CustomConstraint
свойство mpcmoveopt
объект перед вызовом mpcmove
или mpcmoveAdaptive
. Задайте CustomConstraint
как структура с E
F
G
, и S
поля . Задайте каждое поле как массив с размерностями, которые соответствуют, начальные ограничительные массивы задали использование setconstraint
.
Чтобы обновить смешанные ограничения ввода/вывода во время симуляции Simulink, выберите параметр Custom constraints своего блока MPC Controller или Adaptive MPC Controller. Выполнение так добавляет E
F
G
, и S
входные порты с блоком. S
входной порт добавляется, только если ваш контроллер измерил воздействия.
Соедините матричные сигналы с этими портами, которые задают значения во время выполнения для каждого массива. Если вы задаете E
F
G
, или S
в вашем контроллере MPC необходимо соединить сигнал с соответствующим входным портом, и что сигнал должен иметь те же размерности как массив, заданный в контроллере. Если массив не задан в объекте контроллера, используйте нулевую матрицу с правильным размером.
Для примера, который обновляет смешанные ограничения ввода/вывода для адаптивного контроллера MPC, смотрите, что Предотвращение Препятствия Использует Адаптивную модель Прогнозирующее Управление.
mpcmove
| mpcmoveAdaptive
| mpcmoveExplicit
| setconstraint