Моделирование переключения между несколькими неявными контроллерами MPC
Панель инструментов управления прогнозом модели

В каждый момент управления блок Multiple MPC Controllers получает измеренный ток на выходе установки, эталон и измеренное возмущение установки (при наличии). Кроме того, он принимает сигнал переключения, который выбирает активный контроллер из списка возможных MPC контроллеров, сконструированных в различных рабочих точках в пределах рабочего диапазона. Активный контроллер затем решает квадратичную программу для определения оптимальных переменных, управляемых установкой, для текущих входных сигналов.
Блок Multiple MPC Controllers позволяет добиться лучшего управления при изменении рабочих условий. С помощью доступных измерений можно определить текущую рабочую область во время выполнения и выбрать соответствующий активный контроллер через switch входной порт. Переключение контроллеров для различных рабочих областей является общим подходом к решению нелинейных задач управления с использованием методов линейного управления.
Для повышения эффективности неактивные контроллеры не вычисляют оптимальные перемещения управления. Однако для обеспечения безударной передачи между контроллерами неактивные контроллеры продолжают выполнять оценку состояния.
В блоке Multiple MPC Controllers отсутствует несколько дополнительных функций в блоке MPC Controller, а именно:
Нельзя отключить оптимизацию. Один контроллер всегда должен быть активным.
Нельзя инициировать проектирование контроллера из диалогового окна блока; то есть кнопка Design отсутствует. Перед конфигурированием блока «Несколько контроллеров MPC» создайте все контроллеры-кандидаты.
Аналогично, кнопка Review отсутствует. Вместо этого используйте review или приложение MPC Designer.
Невозможно обновить пользовательские ограничения для линейных комбинаций входов и выходов во время выполнения.
Как блок Multiple MPC Controllers, так и блок Adaptive MPC Controller позволяют системе управления адаптироваться к изменяющимся рабочим условиям во время выполнения. В следующей таблице перечислены преимущества использования каждого блока.
| Блок | Адаптивный контроллер MPC | Несколько контроллеров MPC |
|---|---|---|
| Адаптационный подход | Обновление модели прогнозирования для одного контроллера по мере изменения условий эксплуатации | Переключение между несколькими контроллерами, предназначенными для различных рабочих областей |
| Преимущества |
|
|
ref - Исходные значения выходных данных моделиОпорные значения выходного сигнала установки, заданные как сигнал вектора строки или матричный сигнал.
Чтобы использовать одни и те же опорные значения по всему горизонту прогнозирования, соедините ссылку с сигналом вектора строки с элементами NY, где Ny - количество выходных переменных. Каждый элемент указывает ссылку на выходную переменную.
Чтобы изменить привязки по горизонту прогнозирования (предварительный просмотр) от времени k + 1 до времени k + p, подключите ссылку к сигналу матрицы со столбцами Ny и до строк p. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит ссылки для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные привязки используются для оставшихся шагов горизонта прогнозирования.
switch - Выбор контроллераИспользуйте входной порт коммутатора для выбора активного контроллера. Входной сигнал переключателя должен быть скалярным целым числом от 1 в Nc, где Nc - количество указанных контроллеров-кандидатов. В каждый момент управления этот сигнал обозначает активный контроллер. Значение переключателя, равное 1 соответствует первой записи в массиве ячеек контроллеров-кандидатов, значение 2 соответствует второму контроллеру и так далее.
Если switch сигнал находится вне диапазона от 1 до Nc, блок сохраняет предыдущий выход контроллера.
mo - Измеренный выходИзмеренные выходные сигналы, определяемые как векторный сигнал. Контроллеры-кандидаты используют измеренные выходы установки для улучшения своих оценок состояния.
Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния по умолчанию или пользовательский. Если контроллеры-кандидаты используют оценку состояния по умолчанию, необходимо подключить измеренные выходы установки к входному порту mo. Если контроллеры-кандидаты используют пользовательскую оценку состояния, необходимо подключить оценочный сигнал состояния установки к входному порту x [k 'k].
Чтобы включить этот порт, снимите флажок Use custom state easimation вместо использования встроенного параметра фильтра Калмана.
x[k|k] - Оценка пользовательского состоянияПользовательская оценка состояния, заданная как векторный сигнал. Контроллеры-кандидаты используют оценки подключенного состояния вместо оценки состояний с использованием встроенного оценщика. Использовать пользовательские оценки состояния, когда альтернативный метод оценки считается превосходящим встроенный оценщик или когда состояния полностью измеримы.
Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния по умолчанию или пользовательский. Если контроллеры-кандидаты используют пользовательскую оценку состояния, необходимо подключить текущие оценки состояния к входному порту x [k 'k]. Если контроллеры-кандидаты используют оценку состояния по умолчанию, необходимо подключить измеренные выходы к входному порту mo.
При использовании пользовательской оценки состояния все контроллеры-кандидаты должны иметь одинаковые размеры. Все контроллеры-кандидаты должны использовать одни и те же определения состояний (количество и порядок состояний) для своих соответствующих моделей установок, возмущений и шума измерений.
Чтобы включить этот порт, вместо встроенного параметра фильтра Калмана выберите Use custom state assessment.
md - входЕсли в модели прогнозирования контроллера измерены нарушения, необходимо включить этот порт и подключить к нему вектор строки или матричный сигнал.
Чтобы использовать одни и те же измеренные значения возмущений по горизонту прогнозирования, соедините md с сигналом вектора строки с элементами Nmd, где Nmd - количество манипулируемых переменных. Каждый элемент определяет значение измеренного возмущения.
Чтобы изменять возмущения по горизонту прогнозирования (предварительный просмотр) от времени k к времени k + p, подключите md к сигналу матрицы со столбцами Nmd и до p + 1 строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит возмущения для одного шага горизонта прогнозирования. Если указано меньше p + 1 строк, конечные возмущения используются для оставшихся шагов горизонта прогнозирования.
Для активизации этого порта выберите параметр Measured ristances.
ext.mv - Управляющие сигналы, используемые в установке на предыдущем интервале управленияУправляющие сигналы, используемые в установке на предыдущем интервале управления, определяемом как векторный сигнал длиной Nmv, где Nmv - количество манипулируемых переменных. Все контроллеры-кандидаты используют этот сигнал для обновления своих оценок состояния контроллера на каждом интервале управления. Это помогает минимизировать безударный перенос при переключении управляющего контроллера. Использование этого ввода также повышает точность оценки состояния, когда вектор манипулированных переменных (MV), используемый в установке, отличается от вектора MV, вычисленного блоком, например, из-за насыщения сигнала или условия переопределения.
Оценка состояния контроллера предполагает, что вектор MV является кусочно постоянным. Поэтому в момент времени tk значение ext.mv должно быть эффективным вектором MV между временами tk-1 и tk. Например, если MV фактически изменяются в течение этого интервала, можно указать усредненное по времени значение, вычисленное в момент времени tk.
Примечание
Подключите ext.mv к сигналам СН, фактически подаваемым на установку в предыдущем интервале управления. Обычно эти сигналы СН являются значениями, генерируемыми блоком контроллера возбуждения, хотя это не всегда так. Если блок контроллера не приводит в действие установку, то подача фактического управляющего сигнала в ext.mv также может помочь достичь безударной передачи, когда контроллер переключается обратно в оперативный режим.
Использование этой опции, когда контроллер управляет установкой, может вызвать алгебраический цикл в модели Simulink ®, так как имеется прямой проход от входа ext.mv к выходу mv. Чтобы предотвратить такие алгебраические циклы, вставьте блок памяти или блок задержки блока.
Пример использования внешнего управляемого переменного входного порта для бескомпромиссной передачи см. в разделе Переключение контроллера в оперативном и автономном режиме с бескомпромиссной передачей.
Чтобы включить этот порт, выберите параметр внешней управляемой переменной.
ymin - Ограничения минимальной выходной переменнойЧтобы задать ограничения выходной переменной минимального времени выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в OutputVariables.Min собственность его mpc объект контроллера. Если выходная переменная не имеет нижней границы, указанной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы по горизонту прогнозирования от времени k + 1 до времени k + p, соедините ymin с сигналом матрицы со столбцами Ny и до p строк. Здесь Ny - количество выходов установки, k - текущее время, p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, границы в последней строке применяются к оставшейся части горизонта прогнозирования. Если имеется только одна выходная переменная и подключен векторный сигнал с не более чем p входами, то эти входы используются по горизонту прогнозирования.
iтретий столбец сигнала ymin соответствует iна выходе из установки и заменяет OutputVariables(i).Max имущества mpc объект во время выполнения. Поведение замены зависит от размеров обеих переменных.
Скаляр OutputVariables(i).Min в mpc объект (постоянная граница для iВыход из -й установки будет применен ко всем этапам прогнозирования)
| Размер ymin | Поведение при замене |
|---|---|
| Скалярный ymin (одиночный выход, постоянная граница) | ymin заменяет постоянную границу, определенную в OutputVariables(i).Min |
| Вектор столбца ymin (одиночный выход, изменяющаяся во времени граница) | ymin заменяет постоянную границу, определенную в OutputVariables(i).Min с изменяющейся во времени границей. |
| Вектор строки ymin (несколько выходов, постоянные границы) | i-й элемент ymin заменяет постоянную границу, определенную в OutputVariables(i).Min |
| Матрица ymin (несколько выходов, изменяющиеся во времени границы) | 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 (несколько выходов, постоянные границы) | i-й элемент ymin заменяет первую конечную запись в OutputVariables(i).Min и остальные записи в OutputVariables(i).Min перемещение вверх или вниз с той же величиной смещения, чтобы сохранить профиль, определенный оригиналом OutputVariables(i).Min вектор. |
| Матрица ymin (несколько выходов, изменяющиеся во времени границы). | iтретий столбец ymin заменяет изменяющуюся во времени границу, определенную в OutputVariables(i).Min, и исходный связанный профиль отбрасывается. |
Чтобы включить этот порт, выберите параметр Lower OV limits.
ymax - Ограничения максимальной выходной переменнойЧтобы задать ограничения максимальной выходной переменной времени выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в OutputVariables.Max собственность его mpc объект контроллера. Если выходная переменная не имеет верхней границы, указанной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы по горизонту прогнозирования от времени k + 1 до времени k + p, соедините ymax с сигналом матрицы со столбцами Ny и до строк p. Здесь Ny - количество выходов установки, k - текущее время, p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, границы в последней строке применяются к оставшейся части горизонта прогнозирования. Если имеется только одна выходная переменная и подключен векторный сигнал с не более чем p входами, то эти входы используются по горизонту прогнозирования.
iтретий столбец сигнала ymax соответствует iна выходе из установки и заменяет OutputVariables(i).Max имущества mpc объект во время выполнения. Поведение замены зависит от размеров обеих переменных.
Скаляр OutputVariables(i).Max в mpc объект (постоянная граница для iВыход из -й установки будет применен ко всем этапам прогнозирования)
| Измерение ymax | Поведение при замене |
|---|---|
| Скалярный ymax (одиночный выход, постоянная граница) | ymax заменяет постоянную границу, определенную в OutputVariables(i).Max |
| Вектор столбца ymax (одиночный выход, изменяющаяся во времени граница) | ymax заменяет постоянную границу, определенную в OutputVariables(i).Max с изменяющейся во времени границей. |
| Вектор строки ymax (несколько выходов, постоянные границы) | i-й элемент ymax заменяет постоянную границу, определенную в OutputVariables(i).Max |
| Матрица ymax (несколько выходов, изменяющиеся во времени границы) | 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 (несколько выходов, постоянные границы) | i-й элемент ymax заменяет первую конечную запись в OutputVariables(i).Max и остальные записи в OutputVariables(i).Max перемещение вверх или вниз с той же величиной смещения, чтобы сохранить профиль, определенный оригиналом OutputVariables(i).Max вектор. |
| Матрица ymax (несколько выходов, изменяющиеся во времени границы). | iтретий столбец ymax заменяет изменяющуюся во времени границу, определенную в OutputVariables(i).Max, и исходный связанный профиль отбрасывается. |
Для активизации этого порта выберите параметр Upper OV limits.
umin - Минимальные изменяемые ограниченияЧтобы задать минимальное время выполнения, управляемое переменными ограничениями, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в ManipulatedVariables.Min собственность его mpc объект контроллера. Если управляемая переменная не имеет нижней границы, указанной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы по горизонту прогнозирования от времени k к времени k + p-1, подключите umin к сигналу матрицы со столбцами Nmv и до p строк. Здесь Nmv - количество манипулируемых переменных, k - текущее время, p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, границы в последней строке применяются к оставшейся части горизонта прогнозирования. Если имеется только одна управляемая переменная и соединен векторный сигнал с не более чем p входами, то эти входы используются по горизонту прогнозирования.
iтретий столбец сигнала umin соответствует iуправляемая переменная и заменяет ManipulatedVariables(i).Max имущества mpc объект во время выполнения. Поведение замены зависит от размеров обеих переменных.
Скаляр ManipulatedVariables(i).Min в mpc объект (постоянная граница для iуправляемая переменная, применяемая ко всем шагам прогнозирования)
| Размерность umin | Поведение при замене |
|---|---|
| Скалярный умин (одиночный выход, постоянная граница) | umin заменяет постоянную границу, определенную в ManipulatedVariables(i).Min |
| Умин вектора столбца (одиночный выход, изменяющаяся во времени граница) | umin заменяет постоянную границу, определенную в ManipulatedVariables(i).Min с изменяющейся во времени границей. |
| Umin вектора строки (несколько выходов, постоянные границы) | i-й элемент umin заменяет постоянную границу, определенную в ManipulatedVariables(i).Min |
| Матричный умин (несколько выходов, изменяющиеся во времени границы) | iСтолбец umin заменяет постоянную границу, определенную в ManipulatedVariables(i).Min с изменяющейся во времени границей. |
Вектор ManipulatedVariables(i).Min в mpc объект (изменяющаяся во времени граница для iуправляемая переменная с различными значениями на различных этапах прогнозирования)
| Размерность umin | Поведение при замене |
|---|---|
| Скалярный умин (одиночный выход, постоянная граница) | umin заменяет первую конечную запись в ManipulatedVariables.Min и остальные записи в ManipulatedVariables.Min перемещение вверх или вниз с той же величиной смещения, чтобы сохранить профиль, определенный оригиналом ManipulatedVariables.Min вектор. |
| Умин вектора столбца (одиночный выход, изменяющаяся во времени граница) | umin заменяет изменяющуюся во времени границу, определенную в ManipulatedVariables(i).Min, и исходный связанный профиль отбрасывается. |
| Umin вектора строки (несколько выходов, постоянные границы) | i-й компонент umin заменяет первую конечную запись в ManipulatedVariables(i).Min и остальные записи в ManipulatedVariables(i).Min перемещение вверх или вниз с той же величиной смещения, чтобы сохранить профиль, определенный оригиналом ManipulatedVariables(i).Min вектор. |
| Матричный умин (несколько выходов, изменяющиеся во времени границы). | iСтолбец umin заменяет изменяющуюся во времени границу, определенную в ManipulatedVariables(i).Min, и исходный связанный профиль отбрасывается. |
Для активизации этого порта выберите параметр Lower MV limits.
umax - Максимальные переменные ограничения с манипуляциямиЧтобы задать максимальные переменные ограничения времени выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в ManipulatedVariables.Max собственность его mpc объект контроллера. Если управляемая переменная не имеет верхней границы, указанной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.
Чтобы изменить границы по горизонту прогнозирования от времени k к времени k + p-1, подключите umax к сигналу матрицы со столбцами Nmv и до p строк. Здесь Nmv - количество манипулируемых переменных, k - текущее время, p - горизонт прогнозирования. Каждая строка содержит границы для одного шага горизонта прогнозирования. Если указано меньше p строк, границы в последней строке применяются к оставшейся части горизонта прогнозирования. Если имеется только одна управляемая переменная и соединен векторный сигнал с не более чем p входами, то эти входы используются по горизонту прогнозирования.
iтретий столбец сигнала umax соответствует iуправляемая переменная и заменяет ManipulatedVariables(i).Max имущества mpc объект во время выполнения. Поведение замены зависит от размеров обеих переменных.
Скаляр ManipulatedVariables(i).Max в mpc объект (постоянная граница для iуправляемая переменная, применяемая ко всем шагам прогнозирования)
| Измерение umax | Поведение при замене |
|---|---|
| Скалярный умакс (одиночный выход, постоянная граница) | umax заменяет постоянную границу, определенную в ManipulatedVariables(i).Max |
| Вектор столбца umax (одиночный выход, изменяющаяся во времени граница) | umax заменяет постоянную границу, определенную в ManipulatedVariables(i).Max с изменяющейся во времени границей. |
| Вектор строки umax (несколько выходов, постоянные границы) | i-й элемент umax заменяет постоянную границу, определенную в ManipulatedVariables(i).Max |
| Матрица umax (несколько выходов, изменяющиеся во времени границы) | iный столбец umax заменяет постоянную границу, определенную в ManipulatedVariables(i).Max с изменяющейся во времени границей. |
Вектор ManipulatedVariables(i).Max в mpc объект (изменяющаяся во времени граница для iуправляемая переменная с различными значениями на различных этапах прогнозирования)
| Измерение umax | Поведение при замене |
|---|---|
| Скалярный умакс (одиночный выход, постоянная граница) | umax заменяет первую конечную запись в ManipulatedVariables.Max и остальные записи в ManipulatedVariables.Max перемещение вверх или вниз с той же величиной смещения, чтобы сохранить профиль, определенный оригиналом ManipulatedVariables.Max вектор. |
| Вектор столбца umax (одиночный выход, изменяющаяся во времени граница) | umax заменяет изменяющуюся во времени границу, определенную в ManipulatedVariables(i).Max, и исходный связанный профиль отбрасывается. |
| Вектор строки umax (несколько выходов, постоянные границы) | i-й элемент umax заменяет первую конечную запись в ManipulatedVariables(i).Max и остальные записи в ManipulatedVariables(i).Max перемещение вверх или вниз с той же величиной смещения, чтобы сохранить профиль, определенный оригиналом ManipulatedVariables(i).Max вектор. |
| Матрица umax (несколько выходов, изменяющиеся во времени границы). | 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 - Вес переменной настройки SlackЧтобы задать переменный вес настройки провисания времени выполнения, включите этот входной порт и подключите скалярный сигнал. Если этот порт отключен, блок использует вес настройки, указанный в Weights.ECR свойство объекта контроллера.
Вес настройки переменной провисания не имеет эффекта, если объект контроллера не определяет мягкие ограничения, связанные со значениями ECR которых не равны нулю. При наличии мягких ограничений увеличение значения ecr.wt делает эти ограничения относительно более трудными. Затем контроллер придает более высокий приоритет минимизации величины прогнозируемого наихудшего нарушения ограничения.
Чтобы включить этот порт, выберите параметр веса ECR.
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 идентичны.
Для активизации этого порта выберите параметр Optimum control sequence.
x.seq - Оптимальная последовательность состояний модели прогнозированияОптимальная последовательность состояний модели прогнозирования, возвращаемая как сигнал матрицы с p + 1 строками и столбцами Nx, где p - горизонт прогнозирования, а Nx - количество состояний.
Первые p строк x.seq содержат вычисленные оптимальные значения состояния от текущего времени k до времени k + p-1. Первая строка x.seq содержит текущие оценочные значения состояния. Поскольку контроллер не вычисляет оптимальные состояния в момент времени k + p, последние две строки x.seq идентичны.
Для активизации этого порта выберите параметр Optimum state sequence.
y.seq - Оптимальная последовательность выходных переменныхОптимальная последовательность выходных переменных, возвращаемая в виде матричного сигнала с p + 1 строками и столбцами Ny, где p - горизонт прогнозирования, а Ny - количество выходных переменных.
Первые p строк y.seq содержат вычисленные оптимальные выходные значения от текущего времени k до времени k + p-1. Первая строка y.seq вычисляется на основе текущих оцененных состояний и текущих измеренных возмущений (первая строка входного сигнала md). Поскольку контроллер не вычисляет оптимальные выходные значения в момент времени k + p, последние две строки y.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimum 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 - Добавление порта вывода оптимальной стоимостиВыберите этот параметр для добавления порта вывода затрат в блок.
Параметр блока:
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 - Добавить входной порт настройки среднего напряженияВыберите этот параметр для добавления входного порта 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) или Trigggered Subsystem (Simulink). Пример см. в разделе Использование блока контроллера MPC внутри функциональных подсистем вызова и инициирования.
Примечание
Необходимо выполнить блоки Function-Call Subsystem или Triggered Subsystem с частотой дискретизации контроллера. В противном случае можно увидеть неожиданные результаты.
Если этот параметр снят (по умолчанию), время выборки блока наследуется от объекта контроллера.
Чтобы просмотреть образец времени блока, в окне модели Simulink на вкладке Отладка (Debug) в разделе Информационные наложения (Information Overlays) выберите цвета или текст. Дополнительные сведения см. в разделе Просмотр информации о времени образца (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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

