Симулируйте переключение между несколькими неявными контроллерами MPC
Model Predictive Control Toolbox
В каждый момент управления блок Multiple MPC Controllers получает ток измеренного выхода объекта, ссылку и измеренное нарушение порядка объекта (если таковое имеется). В сложение он получает сигнал переключения, который выбирает активный контроллер из списка потенциальных контроллеров MPC, разработанных в различных рабочих точках в рабочей области значений. Затем активный контроллер решает квадратичную программу, чтобы определить оптимальные управляемые объектом переменные для входных сигналов тока.
Блок Multiple MPC Controllers позволяет вам достичь лучшего управления при изменении условий работы. Используя доступные измерения, можно обнаружить текущую рабочую область во время исполнения и выбрать соответствующий активный контроллер через switch
входной порт. Коммутационные контроллеры для различных рабочих областей являются общим подходом к решению нелинейных задач управления с помощью линейных методов управления.
Чтобы улучшить эффективность, неактивные контроллеры не вычисляют оптимальные ходы управления. Однако, чтобы обеспечить бесшумную передачу между контроллерами, неактивные контроллеры продолжают выполнять оценку состояния.
Блоку Multiple MPC Controllers не хватает нескольких необязательных функций, найденных в блоке MPC Controller, следующим образом:
Вы не можете отключить оптимизацию. Один контроллер должен быть всегда активен.
Вы не можете инициировать проектирование контроллера из диалогового окна блока; то есть кнопки Design нет. Проектируйте все контроллеры-кандидаты перед конфигурированием блока Multiple MPC Controllers.
Точно так же отсутствует кнопка Review. Вместо этого используйте review
команда или приложение MPC Designer.
Вы не можете обновить пользовательские ограничения на линейные комбинации входов и выходов во время исполнения.
Блок Multiple MPC Controllers и блок Adaptive MPC Controller позволяют вашей системе управления адаптироваться к изменяющимся условиям работы во время исполнения. В следующей таблице перечислены преимущества использования каждого блока.
Блок | Адаптивный контроллер MPC | Несколько контроллеров MPC |
---|---|---|
Адаптационный подход | Обновите модель предсказания для одного контроллера, когда изменяются рабочие условия | Переключение между несколькими контроллерами, предназначенными для различных рабочих областей |
Преимущества |
|
|
ref
- Моделируйте выходные опорные значенияОбъект выходные ссылки значения, заданные как вектор-строка сигнал или матрица сигнал.
Чтобы использовать те же ссылки значения через горизонт предсказания, соедините ref с сигналом вектора-строки с NY элементами, где Ny количество переменных выходов. Каждый элемент задает ссылку для переменного выхода.
Чтобы варьировать ссылки на горизонте предсказания (предварительный просмотр) от времени k + 1 до времени k + p, соедините ref с матричным сигналом с Ny столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ссылки для одного шага горизонта предсказания. Если вы задаете меньше p строк, последние ссылки используются для остальных шагов горизонта предсказания.
switch
- Выбор контроллераИспользуйте switch входной порт, чтобы выбрать активный контроллер. Входной сигнал switch должен быть скаляром целым числом от 1
к N c, где N c - количество заданных контроллеров. В каждый момент управления этот сигнал обозначает активный контроллер. Значение переключателя 1
соответствует первой записи в массиве ячеек контроллеров, значение 2
соответствует второму контроллеру и так далее.
Если на switch
сигнал находится вне области значений от 1 до N c, блок сохраняет выход предыдущего контроллера.
mo
- Измеренный выходИзмеренные выходом сигналы, заданные как вектор сигнал. Кандидат контроллеров использовать измеренные выходы объекта для улучшения своих оценок состояния.
Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния, по умолчанию или пользовательский. Если ваш кандидат контроллеров использовать оценку состояния по умолчанию, необходимо соединить измеренные выходы объекта к порту mo входа. Если ваш кандидат контроллеров использовать пользовательскую оценку состояния, необходимо подключить предполагаемый сигнал состояния объекта к порту x[k|k] входа.
Чтобы включить этот порт, очистите параметр Use custom state estimation instead of using the built-in Kalman filter.
x[k|k]
- Оценка пользовательского состоянияПользовательская оценка состояния, заданная как вектор сигнал. Контроллеры используют связанные оценки состояния вместо оценки состояний с помощью встроенного оценщика. Используйте пользовательские оценки состояния, когда альтернативный метод оценки рассматривается как превосходящий встроенный оценщик или когда состояния полностью измеримы.
Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния, по умолчанию или пользовательский. Если ваш кандидат контроллеров использовать пользовательскую оценку состояния, необходимо подключить текущие оценки состояния к порту x[k|k] входа. Если ваш кандидат контроллеров использовать оценку состояния по умолчанию, необходимо соединить измеренные выходы с портом mo входа.
Когда вы используете пользовательскую оценку состояния, все контроллеры должны иметь одинаковые размерности. Все контроллеры-кандидаты должны использовать одинаковые определения состояний (количество и порядок состояний) для своих соответствующих моделей шума объекта, возмущения и измерения.
Чтобы включить этот порт, выберите параметр Use custom state estimation instead of using the built-in Kalman filter.
md
- входЕсли ваша модель предсказания контроллера имеет измеренные нарушения порядка, вы должны включить этот порт и соединить с ним вектор-строку или матричный сигнал.
Чтобы использовать те же самые измеренные значения нарушения порядка через горизонт предсказания, соедините md с сигналом вектора-строки с Nmd элементами, где Nmd количество манипулируемых переменных. Каждый элемент задает значение для измеренного нарушения порядка.
Чтобы изменять нарушения порядка над горизонтом предсказания (предварительный просмотр) время k время k + p, соедините md с матричным сигналом с Nmd столбцами и до p + 1 строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит нарушения порядка для одного шага горизонта предсказания. Если вы задаете меньше p + 1 строк, конечные нарушения порядка используются для остальных шагов горизонта предсказания.
Чтобы включить этот порт, выберите параметр Measured disturbances.
ext.mv
- Управляющие сигналы, используемые на объекте в предыдущем контрольном интервалеУправляющие сигналы, используемые в объект на предыдущем контрольном интервале, задаются как вектор сигнал длины Nmv, где Nmv - количество манипулируемых переменных. Все контроллеры используют этот сигнал, чтобы обновить свои оценки состояния контроллера на каждом контрольном интервале. Это помогает минимизировать бесшумную передачу при переключении приводного контроллера. Использование этого входа также улучшает точность оценки состояния, когда вектор манипулируемых переменных (MV), используемый в заводе, отличается от вектора MV, вычисленного блоком, для примера, из-за насыщения сигнала или условия переопределения.
Оценка состояния контроллера принимает, что вектор MV является кусочно-постоянным. Поэтому в tk времени ext.mv значение должно быть эффективным вектором MV между временами tk–1 и tk. Для примера, если MV фактически изменяются в течение этого интервала, можно задать усредненное по времени значение, рассчитанное в tk времени.
Примечание
Подключите ext.mv к сигналам СН, фактически примененным к объекту в предыдущем контрольном интервале. Обычно эти сигналы СН являются значениями, генерируемыми блоком ведущего контроллера, хотя это не всегда так. Если блок контроллера не управляет объектом, то подача фактического управляющего сигнала на ext.mv также может помочь достичь бесшумной передачи, когда контроллер переключается назад в оперативном режиме.
Использование этой опции, когда контроллер управляет объектом, может вызвать алгебраический цикл в Simulink® модель, поскольку существует прямое сквозное соединение сигнала от входа ext.mv к выходному порту mv. Чтобы предотвратить такие алгебраические циклы, вставьте Memory блок или Unit Delay блок.
Для примера, который использует внешний управляемый входной порт переменной для бесшумной передачи, смотрите Контроллер Online и Offline с бесшумной передачей.
Чтобы включить этот порт, выберите параметр External manipulated variable.
ymin
- Минимальные ограничения выходной переменнойЧтобы задать минимальные ограничения выходных переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в OutputVariables.Min
свойство своей mpc
объект контроллера. Если переменный выход не имеет нижней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, соедините ymin с матричным сигналом с Ny столбцами и до p строк. Здесь Ny количество выходов на объекте, k текущее время, и p является горизонтом предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только один переменный выход и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.
The i
1й столбец ymin сигнала соответствует i
выход объекта и заменяет OutputVariables(i).Max
свойство mpc
объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.
Скалярные OutputVariables(i).Min
в mpc
объект (постоянная граница для i
выход объекта для применения ко всем этапам предсказания)
ymin размерности | Поведение при замене |
---|---|
Скалярный ymin (один выход, постоянная граница) | ymin заменяет постоянную границу, заданную в OutputVariables(i).Min |
Вектор-столбец ymin (один выход, изменяющаяся во времени граница) | ymin заменяет постоянную границу, заданную в OutputVariables(i).Min с изменяющейся во времени границей. |
Вектор-строка ymin (несколько выходов, постоянные границы) | The i первый элемент ymin заменяет постоянную границу, заданную в OutputVariables(i).Min |
Матричная ymin (несколько выходов, изменяющиеся во времени границы) | The i пятый столбец ymin заменяет постоянную границу, заданную в OutputVariables(i).Min с изменяющейся во времени границей. |
Векторные OutputVariables(i).Min
в mpc
объект (изменяющаяся во времени граница для i
выход объекта с различными значениями на разных шагах предсказания)
ymin размерности | Поведение при замене |
---|---|
Скалярный ymin (один выход, постоянная граница) | ymin заменяет первую конечную запись в OutputVariables.Min и оставшиеся записи в OutputVariables.Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной OutputVariables.Min вектор. |
Вектор-столбец ymin (один выход, изменяющаяся во времени граница) | ymin заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Min , и исходный связанный профиль отбрасывается. |
Вектор-строка ymin (несколько выходов, постоянные границы) | The i первый элемент ymin заменяет первый конечный элемент в OutputVariables(i).Min и оставшиеся записи в OutputVariables(i).Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной OutputVariables(i).Min вектор. |
Матричная ymin (несколько выходов, изменяющиеся во времени границы). | The i пятый столбец ymin заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Min , и исходный связанный профиль отбрасывается. |
Чтобы включить этот порт, выберите параметр Lower OV limits.
ymax
- Максимальный выход переменнойЧтобы задать ограничения максимальной выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в OutputVariables.Max
свойство своей mpc
объект контроллера. Если переменный выход не имеет верхней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, соедините ymax с матричным сигналом с Ny столбцами и до p строк. Здесь Ny количество выходов на объекте, k текущее время, и p является горизонтом предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только один переменный выход и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.
The i
1й столбец ymax сигнала соответствует i
выход объекта и заменяет OutputVariables(i).Max
свойство mpc
объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.
Скалярные OutputVariables(i).Max
в mpc
объект (постоянная граница для i
выход объекта для применения ко всем этапам предсказания)
ymax размерности | Поведение при замене |
---|---|
Скалярный ymax (один выход, постоянная граница) | ymax заменяет постоянную границу, заданную в OutputVariables(i).Max |
Вектор-столбец ymax (один выход, изменяющаяся во времени граница) | ymax заменяет постоянную границу, заданную в OutputVariables(i).Max с изменяющейся во времени границей. |
Вектор-строка ymax (несколько выходов, постоянные границы) | The i первый элемент ymax заменяет постоянную границу, заданную в OutputVariables(i).Max |
Матричная ymax (несколько выходов, изменяющиеся во времени границы) | The i пятый столбец ymax заменяет постоянную границу, заданную в OutputVariables(i).Max с изменяющейся во времени границей. |
Векторные OutputVariables(i).Max
в mpc
объект (изменяющаяся во времени граница для i
выход объекта с различными значениями на разных шагах предсказания)
ymax размерности | Поведение при замене |
---|---|
Скалярный ymax (один выход, постоянная граница) | ymax заменяет первую конечную запись в OutputVariables.Max и оставшиеся записи в OutputVariables.Max сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной OutputVariables.Max вектор. |
Вектор-столбец ymax (один выход, изменяющаяся во времени граница) | ymax заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Max , и исходный связанный профиль отбрасывается. |
Вектор-строка ymax (несколько выходов, постоянные границы) | The i первый элемент ymax заменяет первый конечный элемент в OutputVariables(i).Max и оставшиеся записи в OutputVariables(i).Max сдвиг вверх или вниз с той же величиной перемещения, чтобы сохранить профиль, заданный исходной OutputVariables(i).Max вектор. |
Матричная ymax (несколько выходов, изменяющиеся во времени границы). | The i пятый столбец ymax заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Max , и исходный связанный профиль отбрасывается. |
Чтобы включить этот порт, выберите параметр Upper OV limits.
umin
- Минимальные манипулируемые переменные ограниченияЧтобы задать минимальные ограничения переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в ManipulatedVariables.Min
свойство своей mpc
объект контроллера. Если манипулируемая переменная не имеет нижней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, соедините umin с матричным сигналом с Nmv столбцами и до p строк. Здесь Nmv - количество манипулируемых переменных, k - текущее время и p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только одна манипулируемая переменная и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.
The i
1й столбец umin сигнала соответствует i
вторая манипулированная переменная и заменяет ManipulatedVariables(i).Max
свойство mpc
объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.
Скалярные ManipulatedVariables(i).Min
в mpc
объект (постоянная граница для i
вторая манипулированная переменная, которая будет применена ко всем шагам предсказания)
umin размерности | Поведение при замене |
---|---|
Скалярный umin (один выход, постоянная граница) | umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min |
Вектор-столбец umin (один выход, изменяющаяся во времени граница) | umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min с изменяющейся во времени границей. |
Вектор-строка umin (несколько выходов, постоянные границы) | The i первый элемент umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min |
Матричная umin (несколько выходов, изменяющиеся во времени границы) | The i пятый столбец umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min с изменяющейся во времени границей. |
Векторные ManipulatedVariables(i).Min
в mpc
объект (изменяющаяся во времени граница для i
th-я манипулированная переменная с различными значениями на разных шагах предсказания)
umin размерности | Поведение при замене |
---|---|
Скалярный umin (один выход, постоянная граница) | umin заменяет первую конечную запись в ManipulatedVariables.Min и оставшиеся записи в ManipulatedVariables.Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables.Min вектор. |
Вектор-столбец umin (один выход, изменяющаяся во времени граница) | umin заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Min , и исходный связанный профиль отбрасывается. |
Вектор-строка umin (несколько выходов, постоянные границы) | The i первый компонент umin заменяет первый конечный элемент в ManipulatedVariables(i).Min и оставшиеся записи в ManipulatedVariables(i).Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables(i).Min вектор. |
Матричная umin (несколько выходов, изменяющиеся во времени границы). | The i пятый столбец umin заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Min , и исходный связанный профиль отбрасывается. |
Чтобы включить этот порт, выберите параметр Lower MV limits.
umax
- Максимальное количество манипулируемых переменных ограниченийЧтобы задать максимальное количество управляемых переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в ManipulatedVariables.Max
свойство своей mpc
объект контроллера. Если манипулируемая переменная не имеет верхней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, соедините umax с матричным сигналом с Nmv столбцами и до p строк. Здесь Nmv - количество манипулируемых переменных, k - текущее время и p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только одна манипулируемая переменная и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.
The i
1й столбец umax сигнала соответствует i
вторая манипулированная переменная и заменяет ManipulatedVariables(i).Max
свойство mpc
объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.
Скалярные ManipulatedVariables(i).Max
в mpc
объект (постоянная граница для i
вторая манипулированная переменная, которая будет применена ко всем шагам предсказания)
umax размерности | Поведение при замене |
---|---|
Скалярный umax (один выход, постоянная граница) | umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max |
Вектор-столбец umax (один выход, изменяющаяся во времени граница) | umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max с изменяющейся во времени границей. |
Вектор-строка umax (несколько выходов, постоянные границы) | The i первый элемент umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max |
Матричная umax (несколько выходов, изменяющиеся во времени границы) | The i пятый столбец umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max с изменяющейся во времени границей. |
Векторные ManipulatedVariables(i).Max
в mpc
объект (изменяющаяся во времени граница для i
th-я манипулированная переменная с различными значениями на разных шагах предсказания)
umax размерности | Поведение при замене |
---|---|
Скалярный umax (один выход, постоянная граница) | umax заменяет первую конечную запись в ManipulatedVariables.Max и оставшиеся записи в ManipulatedVariables.Max сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables.Max вектор. |
Вектор-столбец umax (один выход, изменяющаяся во времени граница) | umax заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Max , и исходный связанный профиль отбрасывается. |
Вектор-строка umax (несколько выходов, постоянные границы) | The i первый элемент umax заменяет первый конечный элемент в ManipulatedVariables(i).Max и оставшиеся записи в ManipulatedVariables(i).Max сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables(i).Max вектор. |
Матричная umax (несколько выходов, изменяющиеся во времени границы). | The i пятый столбец umax заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Max , и исходный связанный профиль отбрасывается. |
Чтобы включить этот порт, выберите параметр Upper MV limits.
y.wt
- Выходные переменные веса настройкиЧтобы задать веса настройки выходных переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.OutputVariables
свойство его объекта контроллера. Эти веса настройки штрафуют отклонения от выходных ссылок.
Если объект контроллера MPC использует постоянные веса настройки выхода в горизонте предсказания, можно задать только постоянные веса настройки выхода во время выполнения. Точно так же, если объект контроллера MPC использует веса настройки выхода, которые варьируются в пределах горизонта предсказания, можно задать только изменяющиеся во времени веса настройки выхода во время выполнения
Чтобы использовать постоянные веса настройки над горизонтом предсказания, соедините y.wt с сигналом вектора-строки с Ny элементами, где Ny количество выходов. Каждый элемент задает неотрицательную настройку веса для переменного выхода. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.
Чтобы изменить веса настройки над горизонтом предсказания от времени k + 1 до времени k + p, соедините y.wt с матричным сигналом с Ny столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.
Чтобы включить этот порт, выберите параметр OV weights.
u.wt
- Манипулируемые переменные веса настройкиЧтобы задать управляемые во время выполнения веса настройки переменных, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariables
свойство его объекта контроллера. Эти веса настройки штрафуют отклонения от целей СН.
Если объект контроллера MPC использует постоянные манипулируемые переменные веса настройки в горизонте предсказания, можно задать только постоянные манипулируемые переменные веса настройки во время выполнения. Точно так же, если объект контроллера MPC использует манипулируемые переменные веса настройки, которые варьируются в пределах горизонта предсказания, можно задать только изменяющиеся во времени изменяющиеся переменные веса настройки во время выполнения
Чтобы использовать те же веса настройки над горизонтом предсказания, соедините u.wt с сигналом вектора-строки с Nmv элементами, где Nmv количество манипулируемых переменных. Каждый элемент задает неотрицательную настройку веса для манипулируемой переменной. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.
Чтобы варьировать веса настройки над горизонтом предсказания от времени k времени k + p -1, соедините u.wt с матричным сигналом с Nmv столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.
Чтобы включить этот порт, выберите параметр MV weights.
du.wt
- Манипулируемые веса настройки переменной скоростиЧтобы задать управляемые во время выполнения веса настройки переменной скорости, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariablesRate
свойство его объекта контроллера. Эти веса настройки штрафуют большие изменения в движениях управления.
Если объект контроллера MPC использует постоянные манипулируемые веса настройки переменной скорости в горизонте предсказания, можно задать только постоянные манипулируемые веса регулировки скорости во время выполнения. Точно так же, если объект контроллера MPC использует манипулируемые веса настройки переменной скорости, которые варьируются в пределах горизонта предсказания, можно задать только изменяющиеся во времени изменяющиеся веса настройки переменной скорости во время выполнения
Чтобы использовать те же веса настройки над горизонтом предсказания, соедините du.wt с сигналом вектора-строки с Nmv элементами, где Nmv количество манипулируемых переменных. Каждый элемент задает неотрицательную настройку веса для управляемой переменной скорости. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.
Чтобы варьировать веса настройки над горизонтом предсказания от времени k времени k + p -1, соедините du.wt с матричным сигналом с Nmv столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.
Чтобы включить этот порт, выберите параметр MVRate weights.
ecr.wt
- Шлак переменного веса настройкиЧтобы задать коэффициент настройки переменной задержки во время выполнения, включите этот входной порт и соедините скалярный сигнал. Если этот порт отключен, блок использует настройочный вес, указанный в Weights.ECR
свойство его объекта контроллера.
Вес настройки переменной slack не имеет эффекта, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения ECR не являются нулевыми. Если существуют мягкие ограничения, увеличение значения ecr.wt делает эти ограничения относительно труднее. Контроллер затем помещает более высокий приоритет на минимизацию величины предсказанного нарушения ограничений в худшем случае.
Чтобы включить этот порт, выберите параметр ECR weight.
mv
- Оптимальное манипулируемое переменное действие управленияОптимальное манипулируемое действие управления, выхода как вектор-столбец сигнал длины Nmv, где Nmv - количество манипулируемых переменных. Блок Multiple MPC Controllers передает выход активного контроллера к mv выходному порту.
Если решатель активного контроллера сходится к локальному оптимальному решению (qp.status положительно), то mv содержит оптимальное решение.
Если решатель отказывает (qp.status отрицательно), то mv остается при своем последнем успешном решении; то есть контроллер выход зависает.
Если решатель достигает максимального количества итераций, не найдя оптимального решения (qp.status равно нулю) и Optimization.UseSuboptimalSolution
свойство активного контроллера:
true
, затем mv содержит неоптимальное решение
false
затем mv затем mv остается при своем последнем успешном решении
cost
- Стоимость целевой функцииСтоимость целевой функции, выход как неотрицательный скалярный сигнал. Стоимость определяет степень достижения контроллером своих целей. Значение стоимости вычисляется с помощью масштабированной функции затрат MPC, в которой каждый термин не имеет смещения и не имеет размерностей.
Значение стоимости имеет значение только, когда выход qp.status неотрицателен.
Чтобы включить этот порт, выберите параметр Optimal cost.
qp.status
- Состояние оптимизацииСтатус оптимизации активного контроллера, выводится как целочисленный сигнал.
Если активный контроллер решает задачу QP для заданного контрольного интервала, выход qp.status возвращает количество итераций решателя QP, используемых в расчетах. Это значение является конечным, положительным целым числом и пропорционально времени, необходимому для вычислений. Поэтому большое значение означает относительно медленное выполнение блока для этого временного интервала.
QP- решателя может не найти оптимальное решение по следующим причинам:
qp.status = 0
- Решатель QP не может найти решение в пределах максимального количества итераций, заданных в mpc
объект. В этом случае, если Optimizer.UseSuboptimalSolution
свойство активного контроллера false
блок сохраняет свой mv выход в самом последнем успешном решении. В противном случае он использует неоптимальное решение, найденное во время последней итерации решателя.
qp.status = -1
- Решатель QP обнаруживает недопустимую задачу QP. Смотрите Статус Оптимизации Мониторинга для Обнаружения Отказов Контроллера для примера, где большое устойчивое нарушение порядка управляет переменным выходом за пределами заданных границ. В этом случае блок сохраняет свой mv выход в самом последнем успешном решении.
qp.status = -2
- Решатель QP столкнулся с числовыми трудностями в решении сильно плохо обусловленной задачи QP. В этом случае блок сохраняет свой mv выход в самом последнем успешном решении.
В приложении реального времени можно использовать qp.status, чтобы задать предупреждение или предпринять другие специальные действия.
Чтобы включить этот порт, выберите параметр Optimization status.
est.state
- Предполагаемые состояния контроллераПредполагаемые состояния контроллера активного контроллера, выхода как вектор сигнал. Предполагаемые состояния включают в себя объект, нарушение порядка и состояния модели шума.
Чтобы включить этот порт, выберите параметр Estimated controller states.
mv.seq
- Оптимальная манипулируемая переменная последовательностьОптимальная манипулированная переменная последовательность, возвращаемая как матричный сигнал с p + 1 строками и Nmv столбцами, где p - горизонт предсказания, а Nmv - количество манипулированных переменных.
Первые p строки mv.seq содержат вычисленные оптимальные манипулируемые значения переменных от текущего времени k ко времени k + p -1. Первая строка mv.seq содержит ток, управляемый значениями переменных (выходной mv). Поскольку контроллер не вычисляет оптимальные движения управления в момент времени k + p, последние две строки mv.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal control sequence.
x.seq
- Оптимальная последовательность состояний модели предсказанияОптимальная последовательность состояний модели предсказания, возвращенная как матричный сигнал с p + 1 строками и Nx столбцами, где p - горизонт предсказания, а Nx - количество состояний.
Первые p строки x.seq содержат вычисленные оптимальные значения состояний от текущего времени k до времени k + p -1. Первая строка x.seq содержит текущие оцененные значения состояния. Поскольку контроллер не вычисляет оптимальные состояния в момент времени k + p, последние две строки x.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal state sequence.
y.seq
- Оптимальная выходная переменная последовательностьОптимальный выход переменная последовательность, возвращенная как матричный сигнал с p + 1 строками и Ny столбцами, где p - горизонт предсказания, а Ny - количество выхода переменных.
Первые p строки y.seq содержат вычисленные оптимальные значения выхода от текущего времени k ко времени k + p -1. Первая строка y.seq вычисляется на основе текущих оцененных состояний и измеренных нарушений порядка тока (первая строка входа md). Поскольку контроллер не вычисляет оптимальные значения выхода в момент времени k + p, последние две строки y.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal output sequence.
Cell Array of MPC Controllers
- Кандидаты в контроллерыmpc
объекты | массив ячеек из строк | массив ячеек из векторов символовКандидат контроллеров, заданный как один из следующих:
Указанный массив должен содержать по крайней мере два контроллеров. Первый элемент массива ячеек является контроллером, который соответствует входному значению переключателя 1, второй соответствует входному значению переключателя 2 и так далее.
Параметры блоков:
mpcobjs
|
Тип: строка, вектор символов, массив ячеек из строк, массив ячеек из векторов символов |
По умолчанию:
""
|
Cell Array of Initial Controller States
- Начальное состояниеmpcstate
объекты | массив ячеек из строк | массив ячеек из векторов символовНачальные состояния для контроллеров, заданные как одно из следующих:
Массив ячеек mpcstate
объекты.
Массив ячеек из строк или массив ячеек из векторов символов, где каждый элемент является именем mpcstate
объект в рабочем пространстве MATLAB.
{[],[],...}
, {'[]','[]',...}
, или {"[]","[]",...}
- Используйте номинальное условие, заданное в Model.Nominal
свойство каждого кандидата контроллера как его начальное состояние.
Используйте этот параметр, чтобы состояния контроллера отражали истинный объект окружение в начале вашей симуляции до конца ваших знаний. Эти начальные состояния могут отличаться от номинальных состояний, определенных в mpc
объекты.
Если включена пользовательская оценка состояния, блок игнорирует Cell Array of Initial Controller States параметр.
Параметры блоков:
x0s
|
Тип: строка, вектор символов, массив ячеек из строк, массив ячеек из векторов символов |
По умолчанию:
""
|
Measured disturbances
- Добавьте измеренный входной порт нарушения порядкаon
(по умолчанию) | off
Если ваш контроллер имеет измеренные нарушения порядка, необходимо выбрать этот параметр, чтобы добавить md выходной порт к блоку.
Параметры блоков: md_inport_multiple |
Тип: строка, вектор символов |
Значения: "off" , "on" |
По умолчанию: "on" |
External manipulated variable
- Добавить внешний управляемый входной порт переменнойВыберите этот параметр, чтобы добавить ext.mv входной порт к блоку.
Параметры блоков: mv_inport_multiple |
Тип: строка, вектор символов |
Значения: "off" , "on" |
По умолчанию: "off" |
Targets for manipulated variables
- Добавьте манипулируемый целевой входной порт переменнойВыберите этот параметр, чтобы добавить mv.target входной порт к блоку.
Параметры блоков:
uref_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Optimal cost
- Добавьте оптимальный выходной порт затратВыберите этот параметр, чтобы добавить cost выходной порт к блоку.
Параметры блоков:
return_cost_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Optimization status
- Добавить выходной порт состояния оптимизацииВыберите этот параметр, чтобы добавить qp.status выходной порт к блоку.
Параметры блоков:
return_qpstatus_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Estimated controller states
- Добавить предполагаемые состояния выходного портаВыберите этот параметр, чтобы добавить est.state выходной порт к блоку.
Параметры блоков: return_state_multiple |
Тип: строка, вектор символов |
Значения: "off" , "on" |
По умолчанию: "off" |
Optimal control sequence
- Добавьте оптимальный выходной порт последовательности управленияВыберите этот параметр, чтобы добавить mv.seq выходной порт к блоку.
Параметры блоков:
return_mvseq_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Optimal state sequence
- Добавьте оптимальный выходной порт последовательности состоянийВыберите этот параметр, чтобы добавить x.seq выходной порт к блоку.
Параметры блоков:
return_xseq_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Optimal output sequence
- Добавьте оптимальный выход выходной последовательностиВыберите этот параметр, чтобы добавить y.seq выходной порт к блоку.
Параметры блоков:
return_ovseq_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Use custom state estimation instead of using the built-in Kalman filter
- Используйте пользовательский входной порт оценки состоянияВыберите этот параметр, чтобы удалить mo входной порт и добавить x[k|k] входной порт.
Параметры блоков: state_inport_multiple |
Тип: строка, вектор символов |
Значения: "off" , "on" |
По умолчанию: "off" |
Lower OV limits
- Добавьте минимальный входной порт ограничения OVВыберите этот параметр, чтобы добавить ymin входной порт к блоку.
Параметры блоков:
ymin_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Upper OV limits
- Добавьте максимальный входной порт ограничения OVВыберите этот параметр, чтобы добавить ymax входной порт к блоку.
Параметры блоков:
ymax_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Lower MV limits
- Добавьте минимальный входной порт ограничения СНВыберите этот параметр, чтобы добавить umin входной порт к блоку.
Параметры блоков:
umin_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Upper MV limits
- Добавьте максимальный входной порт ограничения СНВыберите этот параметр, чтобы добавить umax входной порт к блоку.
Параметры блоков:
umax_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Custom constraints
- Добавление пользовательских ограничивающих входных портовВыберите этот параметр, чтобы добавить E, F, G и S входные порты к блоку.
Параметры блоков:
cc_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
OV weights
- Добавьте входной порт настроек OVВыберите этот параметр, чтобы добавить y.wt входной порт к блоку.
Параметры блоков:
ywt_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
MV weights
- Добавьте входной порт масс настройки MVВыберите этот параметр, чтобы добавить u.wt входной порт к блоку.
Параметры блоков:
uwt_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
MVRate weights
- Добавьте входной порт настроек скорости MVВыберите этот параметр, чтобы добавить du.wt входной порт к блоку.
Параметры блоков:
duwt_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Slack variable weight
- Добавьте входной порт настройки ECRВыберите этот параметр, чтобы добавить ecr.wt входной порт к блоку.
Параметры блоков:
rhoeps_inport_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
Block data type
- Задайте тип данных манипулируемых переменныхdouble
(по умолчанию) | single
| data type expression
Задайте блок тип данных манипулируемых переменных как один из следующих:
double
- Плавающая точка двойной точности
single
- Одинарная точность с плавающей точкой
Если вы реализуете блок на цели с одной точностью, задайте тип выходных данных следующим single
.
data type expression
- Выражение, которое вычисляется как double
или single
. Для получения дополнительной информации смотрите Типы данных сигнала управления (Simulink).
Параметры блоков:
BlockDataType_multiple |
Тип: строка, вектор символов |
Значения:
"double" , "single" , data type expression |
По умолчанию: "double" |
Inherit sample time
- Наследование шага расчета блока от родительской подсистемыoff
(по умолчанию) | on
Выберите этот параметр, чтобы наследовать шаг расчета родительской подсистемы в качестве блочного шага расчета. Это позволяет вам условно выполнять этот блок внутри Function-Call Subsystem (Simulink) или Triggered Subsystem (Simulink) блоков. Для получения примера смотрите Использование MPC Контроллера Блока Inside Function-Call и Триггируемых подсистем.
Примечание
Вы должны выполнить Function-Call Subsystem или Triggered Subsystem блоки с частотой дискретизации контроллера. В противном случае можно увидеть неожиданные результаты.
Если вы очистите этот параметр (по умолчанию), шаг расчета блока наследуется от объекта контроллера.
Чтобы просмотреть шаг расчета блока, в окне модели Simulink, на вкладке Debug, под Information Overlays, выберите colors или Text. Для получения дополнительной информации смотрите View Sample Time Information (Simulink).
Параметры блоков:
SampleTimeInherited_multiple |
Тип: строка, вектор символов |
Значения:
"off" , "on" |
По умолчанию:
"off"
|
mv.seq
Выходы размерностей сигнала порта изменилисьПоведение изменено в R2018b
Сигнальные размерности mv.seq
выход блока Multiple MPC Controllers изменился. Ранее этот сигнал был p -by - Nmv матрицей, где p - горизонт предсказания, а Nmv - количество манипулируемых переменных. Теперь, mv.seq
является (p + 1) -by- Nmv матрицей, где p строка + 1 дублирует p строка.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.