exponenta event banner

Контроллер MPC

Моделирование прогнозирующего контроллера модели

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

  • MPC Controller block

Описание

Блок контроллера MPC принимает измеренный ток выходного сигнала (mo), опорный сигнал (ref) и необязательный измеренный сигнал возмущения (md). Блок вычисляет оптимальную управляемую переменную (mv) путем решения задачи квадратного программирования с помощью решателя KWIK по умолчанию или пользовательского решателя QP. Дополнительные сведения см. в разделе Решатели QP.

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

Поскольку блок контроллера MPC использует функциональные блоки MATLAB, он требует компиляции при каждом изменении объекта и блока MPC. Кроме того, поскольку MATLAB ® не позволяет скомпилированному коду находиться ни в одной папке продукта MATLAB, необходимо использовать папку, отличную от MATLAB, для работы с моделью Simulink ® при использовании блоков MPC.

Порты

Вход

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

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

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

Зависимости

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

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

Несмотря на то, что состояния шумовой модели (если таковые имеются) не используются при оптимизации MPC, пользовательский вектор состояния должен содержать все состояния, определенные в mpcstate объект контроллера, включая состояние установки, возмущение и шумовую модель.

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

Зависимости

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

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

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

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

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

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

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

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

Зависимости

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

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

  • Вы знаете, что ваш контроллер не всегда управляет заводом.

  • Действительные сигналы СН, подаваемые на установку, потенциально могут отличаться от значений, генерируемых контроллером, например, при насыщении управляющего сигнала.

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

Примечание

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

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

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

Зависимости

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

Чтобы отключить вычисления оптимизации контроллера, подключите переключатель к ненулевому сигналу.

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

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

Зависимости

Чтобы включить этот порт, выберите параметр Use external signal to enable или disable optimization.

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

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

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

Зависимости

Чтобы включить этот порт, выберите параметр Targets for manufulated variables.

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

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

Матрица регулируемых ограничений, заданная как сигнал матрицы Nc-by-Nmv, где Nc - количество смешанных ограничений ввода/вывода, а Nmv - количество обрабатываемых переменных.

При определении E в mpc необходимо подключить сигнал к входному порту E. В противном случае подключите нулевую матрицу с правильным размером.

Чтобы задать смешанные ограничения ввода/вывода во время выполнения, используйте входной порт E вместе с портами F, G и S. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Дополнительные сведения о смешанных ограничениях ввода/вывода см. в разделе Ограничения линейных комбинаций входов и выходов.

Число смешанных ограничений ввода-вывода не может изменяться во время выполнения. Поэтому Nc должен соответствовать количеству строк в E матрица, указанная с помощью setconstraint.

Зависимости

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

Матрица ограничений управляемого выхода, заданная как сигнал матрицы Nc-by-Ny, где Nc - количество смешанных ограничений ввода-вывода, а Ny - количество выходов установки. При определении F в mpc необходимо подключить сигнал к входному порту F с одинаковым количеством строк. В противном случае подключите нулевую матрицу с правильным размером.

Чтобы задать смешанные ограничения ввода/вывода во время выполнения, используйте входной порт F вместе с портами E, G и S. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Дополнительные сведения о смешанных ограничениях ввода/вывода см. в разделе Ограничения линейных комбинаций входов и выходов.

Число смешанных ограничений ввода-вывода не может изменяться во время выполнения. Поэтому Nc должен соответствовать количеству строк в F матрица, указанная с помощью setconstraint.

Зависимости

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

Пользовательский вектор ограничения, заданный как сигнал вектора строки длиной Nc, где Nc - количество смешанных ограничений ввода/вывода. При определении G в mpc необходимо подключить сигнал к входному порту G с одинаковым количеством строк. В противном случае подключите нулевую матрицу с правильным размером.

Чтобы задать смешанные ограничения ввода/вывода времени выполнения, используйте входной порт G вместе с портами E, F и S. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Дополнительные сведения о смешанных ограничениях ввода/вывода см. в разделе Ограничения линейных комбинаций входов и выходов.

Число смешанных ограничений ввода-вывода не может изменяться во время выполнения. Поэтому Nc должен соответствовать количеству строк в G матрица, указанная с помощью setconstraint.

Зависимости

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

Матрица ограничений измеренных возмущений, заданная как сигнал матрицы Nc-на-nN, где Nc - количество смешанных ограничений ввода/вывода, а Nv - количество измеренных возмущений. При определении S в mpc необходимо подключить сигнал к входному порту S с одинаковым количеством строк. В противном случае подключите нулевую матрицу с правильным размером.

Чтобы задать смешанные ограничения ввода/вывода во время выполнения, используйте входной порт S вместе с портами E, F и G. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Дополнительные сведения о смешанных ограничениях ввода/вывода см. в разделе Ограничения линейных комбинаций входов и выходов.

Число смешанных ограничений ввода-вывода не может изменяться во время выполнения. Поэтому Nc должен соответствовать количеству строк в G матрица, указанная с помощью setconstraint.

Зависимости

Чтобы включить этот порт, выберите параметр Custom constraints. Этот порт добавляется только в том случае, если mpc объект имеет измеренные возмущения.

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

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

Онлайн-горизонты

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

Во время выполнения значения p переопределяет горизонт прогнозирования по умолчанию, заданный в объекте контроллера. Дополнительные сведения см. в разделе Корректировка горизонтов во время выполнения.

Зависимости

Чтобы включить этот порт, выберите параметр Adjust prediction horizon and control horizon at run time.

Горизонт управления, указанный как один из следующих:

  • Положительный целочисленный сигнал, меньший или равный горизонту прогнозирования.

  • Векторный сигнал положительных целых чисел, задающий длину интервала блокировки. Дополнительные сведения см. в разделе Блокировка манипулируемых переменных.

Во время выполнения значения m переопределяет горизонт управления по умолчанию, указанный в объекте контроллера. Дополнительные сведения см. в разделе Корректировка горизонтов во время выполнения.

Зависимости

Чтобы включить этот порт, выберите параметр Adjust prediction horizon and control horizon at run time.

Продукция

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

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

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

Если решатель сходится к локальному оптимальному решению (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.

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

Зависимости

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

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

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

Укажите начальное состояние контроллера. Если оставить этот параметр пустым, блок будет использовать номинальные значения, определенные в Model.Nominal имущества mpc объект. Чтобы переопределить значение по умолчанию, создайте mpcstate в рабочей области и введите его имя в поле.

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

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

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

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

Чтобы в интерактивном режиме изменить контроллер, указанный с помощью параметра Контроллер MPC, откройте приложение Конструктор MPC, щелкнув Конструктор. Например, можно:

  • Импорт новой модели прогнозирования.

  • Изменение горизонтов, ограничений и весов.

  • Оценка производительности ПДК на линейном заводе.

  • Экспорт обновленного контроллера в рабочую область MATLAB.

При наличии существующего mpc в рабочей области MATLAB укажите имя этого объекта с помощью параметра MPC Controller.

Если у вас нет существующего mpc в рабочей области MATLAB оставьте параметр MPC Controller пустым. Подключив блок контроллера MPC к установке, откройте MPC Designer, нажав Design. С помощью приложения выполните линеаризацию модели Simulink в указанной рабочей точке и создайте свой контроллер. Для использования этого подхода к проектированию необходимо иметь программное обеспечение Simulink Control Design™. Дополнительные сведения см. в разделе Проектирование MPC-контроллера в моделях Simulink и Linearize Simulink с использованием MPC-конструктора.

После определения контроллера с помощью параметра Контроллер MPC (MPC Controller) можно проверить проект на наличие проблем стабильности и надежности во время выполнения, нажав кнопку Обзор (Review). Дополнительные сведения см. в разделе Обзор прогнозирующего контроллера модели для проблем стабильности и надежности.

Вкладка «Общие»

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, выберите параметр Настроить горизонт прогнозирования и управлять горизонтом во время выполнения.

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

Параметр блока: MaximumP
Тип: строка, символьный вектор
По умолчанию: "10"
Вкладка «Условия по умолчанию»

Время образца блока по умолчанию для моделирования, обрезки или линеаризации с помощью приложения MPC Designer. Необходимо указать время образца, совместимое с конструкцией модели Simulink.

Зависимости

Этот параметр применяется, только если параметр MPC Controller пуст и вы открываете MPC Designer с помощью кнопки Design.

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

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

Горизонт прогнозирования по умолчанию для моделирования, обрезки или линеаризации с помощью приложения MPC Designer. Необходимо указать горизонт прогнозирования, совместимый с конструкцией модели Simulink.

Зависимости

Этот параметр применяется, только если параметр MPC Controller пуст и вы открываете MPC Designer с помощью кнопки Design.

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

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

Число манипулируемых переменных по умолчанию для моделирования, обрезки или линеаризации с помощью приложения MPC Designer. Необходимо указать значение, совместимое с конструкцией модели Simulink.

Зависимости

Этот параметр применяется, только если параметр MPC Controller пуст и вы открываете MPC Designer с помощью кнопки Design.

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

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

Количество измеренных возмущений по умолчанию для моделирования, обрезки или линеаризации с помощью приложения MPC Designer. Необходимо указать значение, совместимое с конструкцией модели Simulink.

Зависимости

  • Этот параметр применяется, только если параметр MPC Controller пуст и вы открываете MPC Designer с помощью кнопки Design.

  • Для использования этого параметра необходимо выбрать параметр Измеренное возмущение.

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

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

Количество неизмеренных возмущений по умолчанию для моделирования, обрезки или линеаризации с помощью приложения MPC Designer. Необходимо указать значение, совместимое с конструкцией модели Simulink.

Зависимости

Этот параметр применяется, только если параметр MPC Controller пуст и вы открываете MPC Designer с помощью кнопки Design.

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

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

Количество измеряемых выходов по умолчанию для моделирования, обрезки или линеаризации с помощью приложения MPC Designer. Необходимо указать значение, совместимое с конструкцией модели Simulink.

Зависимости

Этот параметр применяется, только если параметр MPC Controller пуст и вы открываете MPC Designer с помощью кнопки Design.

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

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

Количество неизмеренных выходных данных по умолчанию для моделирования, обрезки или линеаризации с помощью приложения MPC Designer. Необходимо указать значение, совместимое с конструкцией модели Simulink.

Зависимости

Этот параметр применяется, только если параметр MPC Controller пуст и вы открываете MPC Designer с помощью кнопки Design.

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

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

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

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

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

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

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

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

Параметр блока: BlockDataType
Тип: строка, символьный вектор
Значения: "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
Тип: строка, символьный вектор
Значения: "off", "on"
По умолчанию: "off"

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

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

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

Примеры модели

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

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

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

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

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

.

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

.
Представлен до R2006a