exponenta event banner

Несколько контроллеров MPC

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

  • Библиотека:
  • Панель инструментов управления прогнозом модели

  • Multiple MPC Controllers block

Описание

В каждый момент управления блок 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
Адаптационный подходОбновление модели прогнозирования для одного контроллера по мере изменения условий эксплуатацииПереключение между несколькими контроллерами, предназначенными для различных рабочих областей
Преимущества
  • Необходимо только создать один контроллер в автономном режиме

  • Меньшее время выполнения вычислений и меньший объем памяти

  • Повышение устойчивости к реальным изменениям в условиях установки

  • Нет необходимости в онлайн-оценке модели завода

  • Контроллеры могут иметь различное время выборки, горизонты и веса

  • Модели прогнозирования могут иметь различные порядки или временные области

  • Конечный набор контроллеров-кандидатов может быть тщательно протестирован

Порты

Вход

развернуть все

Необходимые входные данные

Опорные значения выходного сигнала установки, заданные как сигнал вектора строки или матричный сигнал.

Чтобы использовать одни и те же опорные значения по всему горизонту прогнозирования, соедините ссылку с сигналом вектора строки с элементами NY, где Ny - количество выходных переменных. Каждый элемент указывает ссылку на выходную переменную.

Чтобы изменить привязки по горизонту прогнозирования (предварительный просмотр) от времени k + 1 до времени k + p, подключите ссылку к сигналу матрицы со столбцами Ny и до строк p. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит ссылки для одного шага горизонта прогнозирования. Если указано меньше p строк, конечные привязки используются для оставшихся шагов горизонта прогнозирования.

Используйте входной порт коммутатора для выбора активного контроллера. Входной сигнал переключателя должен быть скалярным целым числом от 1 в Nc, где Nc - количество указанных контроллеров-кандидатов. В каждый момент управления этот сигнал обозначает активный контроллер. Значение переключателя, равное 1 соответствует первой записи в массиве ячеек контроллеров-кандидатов, значение 2 соответствует второму контроллеру и так далее.

Если switch сигнал находится вне диапазона от 1 до Nc, блок сохраняет предыдущий выход контроллера.

Измеренные выходные сигналы, определяемые как векторный сигнал. Контроллеры-кандидаты используют измеренные выходы установки для улучшения своих оценок состояния.

Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния по умолчанию или пользовательский. Если контроллеры-кандидаты используют оценку состояния по умолчанию, необходимо подключить измеренные выходы установки к входному порту mo. Если контроллеры-кандидаты используют пользовательскую оценку состояния, необходимо подключить оценочный сигнал состояния установки к входному порту x [k 'k].

Зависимости

Чтобы включить этот порт, снимите флажок Use custom state easimation вместо использования встроенного параметра фильтра Калмана.

Пользовательская оценка состояния, заданная как векторный сигнал. Контроллеры-кандидаты используют оценки подключенного состояния вместо оценки состояний с использованием встроенного оценщика. Использовать пользовательские оценки состояния, когда альтернативный метод оценки считается превосходящим встроенный оценщик или когда состояния полностью измеримы.

Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния по умолчанию или пользовательский. Если контроллеры-кандидаты используют пользовательскую оценку состояния, необходимо подключить текущие оценки состояния к входному порту x [k 'k]. Если контроллеры-кандидаты используют оценку состояния по умолчанию, необходимо подключить измеренные выходы к входному порту mo.

При использовании пользовательской оценки состояния все контроллеры-кандидаты должны иметь одинаковые размеры. Все контроллеры-кандидаты должны использовать одни и те же определения состояний (количество и порядок состояний) для своих соответствующих моделей установок, возмущений и шума измерений.

Зависимости

Чтобы включить этот порт, вместо встроенного параметра фильтра Калмана выберите Use custom state assessment.

Дополнительные входные данные

Если в модели прогнозирования контроллера измерены нарушения, необходимо включить этот порт и подключить к нему вектор строки или матричный сигнал.

Чтобы использовать одни и те же измеренные значения возмущений по горизонту прогнозирования, соедините md с сигналом вектора строки с элементами Nmd, где Nmd - количество манипулируемых переменных. Каждый элемент определяет значение измеренного возмущения.

Чтобы изменять возмущения по горизонту прогнозирования (предварительный просмотр) от времени k к времени k + p, подключите md к сигналу матрицы со столбцами Nmd и до p + 1 строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит возмущения для одного шага горизонта прогнозирования. Если указано меньше p + 1 строк, конечные возмущения используются для оставшихся шагов горизонта прогнозирования.

Зависимости

Для активизации этого порта выберите параметр Measured ristances.

Управляющие сигналы, используемые в установке на предыдущем интервале управления, определяемом как векторный сигнал длиной Nmv, где Nmv - количество манипулируемых переменных. Все контроллеры-кандидаты используют этот сигнал для обновления своих оценок состояния контроллера на каждом интервале управления. Это помогает минимизировать безударный перенос при переключении управляющего контроллера. Использование этого ввода также повышает точность оценки состояния, когда вектор манипулированных переменных (MV), используемый в установке, отличается от вектора MV, вычисленного блоком, например, из-за насыщения сигнала или условия переопределения.

Оценка состояния контроллера предполагает, что вектор MV является кусочно постоянным. Поэтому в момент времени tk значение ext.mv должно быть эффективным вектором MV между временами tk-1 и tk. Например, если MV фактически изменяются в течение этого интервала, можно указать усредненное по времени значение, вычисленное в момент времени tk.

Примечание

  • Подключите ext.mv к сигналам СН, фактически подаваемым на установку в предыдущем интервале управления. Обычно эти сигналы СН являются значениями, генерируемыми блоком контроллера возбуждения, хотя это не всегда так. Если блок контроллера не приводит в действие установку, то подача фактического управляющего сигнала в ext.mv также может помочь достичь безударной передачи, когда контроллер переключается обратно в оперативный режим.

  • Использование этой опции, когда контроллер управляет установкой, может вызвать алгебраический цикл в модели Simulink ®, так как имеется прямой проход от входа ext.mv к выходу mv. Чтобы предотвратить такие алгебраические циклы, вставьте блок памяти или блок задержки блока.

Пример использования внешнего управляемого переменного входного порта для бескомпромиссной передачи см. в разделе Переключение контроллера в оперативном и автономном режиме с бескомпромиссной передачей.

Зависимости

Чтобы включить этот порт, выберите параметр внешней управляемой переменной.

Ограничения в сети

Чтобы задать ограничения выходной переменной минимального времени выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в 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.

Чтобы задать ограничения максимальной выходной переменной времени выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в 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.

Чтобы задать минимальное время выполнения, управляемое переменными ограничениями, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в 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.

Чтобы задать максимальные переменные ограничения времени выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в 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.

Веса онлайн-настройки

Чтобы задать веса настройки выходных переменных времени выполнения, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.OutputVariables свойство объекта контроллера. Эти веса настройки штрафуют за отклонения от выходных ссылок.

Если объект контроллера MPC использует постоянные веса настройки вывода по горизонту прогнозирования, во время выполнения можно указать только постоянные веса настройки вывода. Аналогично, если объект контроллера MPC использует веса выходной настройки, которые изменяются в пределах горизонта прогнозирования, можно указать только изменяющиеся во времени веса выходной настройки во время выполнения.

Для использования постоянных настроечных весов по горизонту прогнозирования соедините y.wt с сигналом вектора строки с элементами Ny, где Ny - количество выходов. Каждый элемент определяет неотрицательный вес настройки для выходной переменной. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.

Чтобы изменить веса настройки по горизонту прогнозирования от времени k + 1 до времени k + p, подключите y.wt к сигналу матрицы со столбцами Ny и до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит веса настройки для одного шага горизонта прогнозирования. Если указано меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта прогнозирования. Дополнительные сведения об изменении весов на горизонте прогнозирования см. в разделе Изменяющиеся во времени веса и ограничения.

Зависимости

Чтобы включить этот порт, выберите параметр OV weights.

Чтобы задать изменяемые веса настройки во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariables свойство объекта контроллера. Эти настроечные веса штрафуют за отклонения от целей СН.

Если объект контроллера MPC использует постоянные регулируемые веса настройки переменных по горизонту прогнозирования, во время выполнения можно указать только постоянные регулируемые веса настройки переменных. Аналогично, если объект контроллера MPC использует регулируемые веса настройки переменных, которые изменяются в пределах горизонта прогнозирования, можно указать только изменяющиеся во времени изменяемые веса настройки переменных во время выполнения.

Для использования одних и тех же настроечных весов по горизонту прогнозирования соедините u.wt с сигналом вектора строки с элементами Nmv, где Nmv - количество манипулируемых переменных. Каждый элемент определяет неотрицательный вес настройки для управляемой переменной. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.

Чтобы изменять веса настройки по горизонту прогнозирования от времени k до времени k + p-1, соедините u.wt с сигналом матрицы со столбцами Nmv и до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит веса настройки для одного шага горизонта прогнозирования. Если указано меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта прогнозирования. Дополнительные сведения об изменении весов на горизонте прогнозирования см. в разделе Изменяющиеся во времени веса и ограничения.

Зависимости

Чтобы включить этот порт, выберите параметр MV weights.

Чтобы задать веса настройки переменной скорости во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariablesRate свойство объекта контроллера. Эти настроечные веса штрафуют за большие изменения в контрольных ходах.

Если объект контроллера MPC использует постоянные регулируемые веса настройки переменной скорости во время выполнения, можно указать только постоянные регулируемые веса настройки переменной скорости во время выполнения. Аналогично, если объект контроллера MPC использует регулируемые веса настройки переменной скорости, которые изменяются в пределах горизонта прогнозирования, можно указать только изменяющиеся во времени изменяемые веса настройки переменной скорости во время выполнения.

Для использования одних и тех же настроечных весов по горизонту предсказания подключите du.wt к сигналу вектора строки с элементами Nmv, где Nmv - количество манипулируемых переменных. Каждый элемент определяет неотрицательный вес настройки для регулируемой переменной скорости. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.

Чтобы изменять веса настройки по горизонту прогнозирования от времени k до времени k + p-1, подключите du.wt к сигналу матрицы со столбцами Nmv и до p строк. Здесь k - текущее время, а p - горизонт прогнозирования. Каждая строка содержит веса настройки для одного шага горизонта прогнозирования. Если указано меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта прогнозирования. Дополнительные сведения об изменении весов на горизонте прогнозирования см. в разделе Изменяющиеся во времени веса и ограничения.

Зависимости

Для активизации этого порта выберите параметр MVRate weights.

Чтобы задать переменный вес настройки провисания времени выполнения, включите этот входной порт и подключите скалярный сигнал. Если этот порт отключен, блок использует вес настройки, указанный в Weights.ECR свойство объекта контроллера.

Вес настройки переменной провисания не имеет эффекта, если объект контроллера не определяет мягкие ограничения, связанные со значениями ECR которых не равны нулю. При наличии мягких ограничений увеличение значения ecr.wt делает эти ограничения относительно более трудными. Затем контроллер придает более высокий приоритет минимизации величины прогнозируемого наихудшего нарушения ограничения.

Зависимости

Чтобы включить этот порт, выберите параметр веса ECR.

Продукция

развернуть все

Требуемые выходные данные

Оптимальное управляющее действие манипулируемой переменной, выводимое как сигнал вектора столбца длиной Nmv, где Nmv - количество манипулируемых переменных. Блок Multiple MPC Controllers передает выходной сигнал активного контроллера в выходной порт mv.

Если решатель активного контроллера сходится к локальному оптимальному решению (qp.status положительный), то mv содержит оптимальное решение.

Если решатель выходит из строя (qp.status отрицательный), то mv остается в самом последнем успешном решении; то есть выходной сигнал контроллера замерзает.

Если решатель достигает максимального числа итераций без нахождения оптимального решения (qp.status равен нулю) и Optimization.UseSuboptimalSolution свойство активного контроллера:

  • true, то mv содержит неоптимальный раствор

  • false, затем mv, затем mv остается при самом последнем успешном решении

Дополнительные выходы

Стоимость целевой функции, выводимая как неотрицательный скалярный сигнал. Стоимость количественно определяет степень достижения контролером своих целей. Значение стоимости вычисляется с использованием масштабированной функции затрат MPC, в которой каждый член не имеет смещения и размеров.

Значение стоимости имеет значение только в том случае, если выходные данные qp.status являются неотрицательными.

Зависимости

Чтобы включить этот порт, выберите параметр Optimal cost.

Состояние оптимизации активного контроллера, выводимого в виде целочисленного сигнала.

Если активный контроллер решает проблему 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.

Оцененные состояния контроллера активного контроллера, выводимые как векторный сигнал. Расчетные состояния включают в себя состояния модели установки, возмущения и шума.

Зависимости

Чтобы включить этот порт, выберите параметр Estimated controller states.

Оптимальные последовательности

Оптимальная последовательность манипулируемых переменных, возвращаемая в виде матричного сигнала с p + 1 строками и столбцами Nmv, где p - горизонт прогнозирования, а Nmv - количество манипулируемых переменных.

Первые p строк mv.seq содержат вычисленные оптимальные значения манипулируемых переменных от текущего времени k до времени k + p-1. Первая строка mv.seq содержит текущие управляемые значения переменных (выходной mv). Поскольку контроллер не вычисляет оптимальные перемещения управления в момент времени k + p, последние две строки mv.seq идентичны.

Зависимости

Для активизации этого порта выберите параметр Optimum control sequence.

Оптимальная последовательность состояний модели прогнозирования, возвращаемая как сигнал матрицы с p + 1 строками и столбцами Nx, где p - горизонт прогнозирования, а Nx - количество состояний.

Первые p строк x.seq содержат вычисленные оптимальные значения состояния от текущего времени k до времени k + p-1. Первая строка x.seq содержит текущие оценочные значения состояния. Поскольку контроллер не вычисляет оптимальные состояния в момент времени k + p, последние две строки x.seq идентичны.

Зависимости

Для активизации этого порта выберите параметр Optimum state sequence.

Оптимальная последовательность выходных переменных, возвращаемая в виде матричного сигнала с p + 1 строками и столбцами Ny, где p - горизонт прогнозирования, а Ny - количество выходных переменных.

Первые p строк y.seq содержат вычисленные оптимальные выходные значения от текущего времени k до времени k + p-1. Первая строка y.seq вычисляется на основе текущих оцененных состояний и текущих измеренных возмущений (первая строка входного сигнала md). Поскольку контроллер не вычисляет оптимальные выходные значения в момент времени k + p, последние две строки y.seq идентичны.

Зависимости

Чтобы включить этот порт, выберите параметр Optimum output sequence.

Параметры

развернуть все

Контроллеры-кандидаты, указанные как один из следующих:

  • Массив ячеек mpc объекты.

  • Массив ячеек строк или массив ячеек векторов символов, где каждый элемент является именем mpc в рабочей области MATLAB ®.

Указанный массив должен содержать не менее двух возможных контроллеров. Первая запись в массиве ячеек является контроллером, который соответствует входному значению коммутатора 1, вторая соответствует входному значению коммутатора 2 и так далее.

Программное использование

Параметр блока: mpcobjs
Тип: строка, символьный вектор, клеточный массив строк, клеточный массив символьных векторов
По умолчанию: ""

Начальные состояния для контроллеров-кандидатов, указанные как одно из следующих:

  • Массив ячеек mpcstate объекты.

  • Массив ячеек строк или массив ячеек векторов символов, где каждый элемент является именем mpcstate в рабочей области MATLAB.

  • {[],[],...}, {'[]','[]',...}, или {"[]","[]",...} - использовать номинальное условие, определенное в Model.Nominal свойство каждого контроллера-кандидата в качестве его начального состояния.

Используйте этот параметр, чтобы состояния контроллера отражали истинную растительную среду в начале моделирования, насколько вы знаете. Эти начальные состояния могут отличаться от номинальных состояний, определенных в mpc объекты.

Если оценка пользовательского состояния включена, блок игнорирует параметр Cell Array of Initial Controller States.

Программное использование

Параметр блока: x0s
Тип: строка, символьный вектор, клеточный массив строк, клеточный массив символьных векторов
По умолчанию: ""
Вкладка «Общие»

Если контроллер измерил нарушения, необходимо выбрать этот параметр, чтобы добавить выходной порт md в блок.

Программное использование

Параметр блока: md_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "on"

Выберите этот параметр, чтобы добавить ext.mv входной порт в блок.

Программное использование

Параметр блока: mv_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить входной порт mv.target в блок.

Программное использование

Параметр блока: uref_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр для добавления порта вывода затрат в блок.

Программное использование

Параметр блока: return_cost_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить выходной порт qp.status в блок.

Программное использование

Параметр блока: return_qpstatus_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр для добавления выходного порта est.state к блоку.

Программное использование

Параметр блока: return_state_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр для добавления выходного порта mv.seq к блоку.

Программное использование

Параметр блока: return_mvseq_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить выходной порт x.seq в блок.

Программное использование

Параметр блока: return_xseq_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить выходной порт y.seq в блок.

Программное использование

Параметр блока: return_ovseq_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы удалить входной порт mo и добавить входной порт x [k 'k].

Программное использование

Параметр блока: state_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"
Вкладка «Функции в Интернете»

Выберите этот параметр, чтобы добавить входной порт ymin в блок.

Программное использование

Параметр блока: ymin_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить входной порт ymax в блок.

Программное использование

Параметр блока: ymax_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр для добавления входного порта umin к блоку.

Программное использование

Параметр блока: umin_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр для добавления входного порта umax к блоку.

Программное использование

Параметр блока: umax_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить в блок входные порты E, F, G и S.

Программное использование

Параметр блока: cc_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр для добавления входного порта y.wt в блок.

Программное использование

Параметр блока: ywt_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр для добавления входного порта u.wt в блок.

Программное использование

Параметр блока: uwt_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить входной порт du.wt в блок.

Программное использование

Параметр блока: duwt_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить входной порт ecr.wt в блок.

Программное использование

Параметр блока: rhoeps_inport_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"
Вкладка «Другие»

Укажите тип данных блока для обрабатываемых переменных как одно из следующих:

  • double - Плавающая точка с двойной точностью

  • single - Плавающая точка с одинарной точностью

    При реализации блока на целевом объекте с одинарной точностью укажите тип выходных данных как single.

  • data type expression - выражение, которое вычисляет либо double или single. Дополнительные сведения см. в разделе Типы данных управляющих сигналов (Simulink).

Программное использование

Параметр блока: BlockDataType_multiple
Тип: строка, символьный вектор
Значения: "double", "single", data type expression
По умолчанию: "double"

Выберите этот параметр для наследования времени выборки родительской подсистемы в качестве времени выборки блока. Это позволяет условно выполнять этот блок внутри блоков Function-Call Subsystem (Simulink) или Trigggered Subsystem (Simulink). Пример см. в разделе Использование блока контроллера MPC внутри функциональных подсистем вызова и инициирования.

Примечание

Необходимо выполнить блоки Function-Call Subsystem или Triggered Subsystem с частотой дискретизации контроллера. В противном случае можно увидеть неожиданные результаты.

Если этот параметр снят (по умолчанию), время выборки блока наследуется от объекта контроллера.

Чтобы просмотреть образец времени блока, в окне модели Simulink на вкладке Отладка (Debug) в разделе Информационные наложения (Information Overlays) выберите цвета или текст. Дополнительные сведения см. в разделе Просмотр информации о времени образца (Simulink).

Программное использование

Параметр блока: SampleTimeInherited_multiple
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

Вопросы совместимости

развернуть все

В R2018b изменилось поведение

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.

Создание кода ПЛК
Создание структурированного текстового кода с помощью Coder™ Simulink ® PLC

.
Представлен в R2008b