Проектируйте контроллер MPC в Simulink

Этот пример показывает, как спроектировать прогнозирующий контроллер модели для непрерывного реактора с мешалкой (CSTR) в Simulink® использование MPC Designer.

Этот пример требует, чтобы программное обеспечение Simulink Control Design™ задало структуру MPC путем линеаризации нелинейной модели Simulink.

Если у вас нет программного обеспечения Simulink Control Design, необходимо сначала создать mpc объект в MATLAB® рабочей области. Для получения дополнительной информации смотрите Контроллер Using MPC Designer и Design MPC Controller в командной строке.

Модель CSTR

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

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

Модель CSTR имеет три входа:

  • Концентрация сырья (CAi) - Концентрация реагента A в потоке сырья (кгмоль/м3)

  • Температура сырья (Ti) - Температура потока сырья (K)

  • Температура теплоносителя (Tc) - Температура теплоносителя реактора (K)

Двумя выходами модели являются:

  • Температура CSTR (T) - Температура реактора (K)

  • Концентрация (CA) - Концентрация реагента A в потоке продукта, также называемая residual concentration (кгмоль/м3)

Цель управления состоит в том, чтобы поддерживать остаточную концентрацию, CA, на своей номинальной уставке путем регулировки температуры хладагента, Tc. Изменения в концентрации, CAi и температуре сырья, Ti, вызывают нарушения порядка в реакции CSTR.

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

Откройте модель Simulink.

open_system('CSTR_ClosedLoop')

Соедините измеренный сигнал нарушения порядка

В окне модели Simulink дважды кликните блок MPC Controller.

В диалоговом окне Параметров блоков на вкладке General выберите опцию Measured disturbance (md).

Нажмите Apply, чтобы добавить md входной порт в блок контроллера.

В окне модели Simulink соедините выход блока Feed Temperature с md входной порт.

Линеаризация модели Simulink

В этом примере вы линеаризируете модель Simulink из MPC Designer, которая требует программного обеспечения Simulink Control Design. Для получения дополнительной информации см. «Линеаризация моделей Simulink с использованием MPC Designer».

Если у вас нет программного обеспечения Simulink Control Design, необходимо сначала создать mpc объект в рабочем пространстве MATLAB и укажите этот объект контроллера в блоке MPC Controller.

Чтобы открыть MPC Designer, откройте блок MPC Controller и нажмите Design.

В MPC Designer на вкладке MPC Designer, в разделе Structure, нажмите MPC Structure.

В диалоговом окне «Задайте структуру MPC путем линеаризации» в разделе Controller Sample Time задайте шаг расчета 0.1.

В разделе MPC Structure щелкните Change I/O Sizes, чтобы добавить неизмеренные размеры сигнала возмущения и измеренного сигнала возмущения.

В диалоговом окне «Размеры блочного сигнала MPC» укажите количество входных/выходных каналов каждого типа.

Нажмите OK.

В диалоговом окне Define MPC Structure By Linearization, в разделе Simulink Signals for Plant Inputs, приложение добавляет строку для Unmeasured Disturbances (UD).

Манипулируемая переменная, измеренные нарушения порядка и измеренный выход уже назначены их соответствующим Сигналом Simulink линиям, которые соединяются с блоком MPC Controller.

В Simulink Signals for Plant Inputs разделе выберите строку Unmeasured Disturbances (UD) и нажатие кнопки Select Signals.

В окне модели Simulink щелкните выходной сигнал из блока Feed Concentration.

Сигнал подсвечивается, и его блочный путь добавляется в диалоговое окно Select Signal.

В диалоговом окне Select Signals нажмите Add Signal(s).

В диалоговом окне Define MPC Structure By Linearization (Задайте структуру MPC путем линеаризации) в таблице Simulink Signals for Plant Inputs обновляется Block Path для неизмеренного сигнала нарушения порядка.

В этом примере вы линеаризируете модель Simulink в установившейся равновесной рабочей точке, где остаточная концентрация составляет 2 кгмоль/м3. Чтобы вычислить такую рабочую точку, добавьте CA сигнал как выходное ограничение обрезки и задайте его целевое значение ограничения.

В окне модели Simulink выберите сигнальную линию, соединенную с CA выходной порт блока CSTR.

На вкладке Apps нажмите Linearization Manager. Затем на вкладке Linearization, в галерее Insert Analysis Points, выберите Trim Output Constraint.

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

В диалоговом окне «Определение структуры MPC путем линеаризации», в разделе Simulink Operating Point, в раскрывающемся списке, выберите Trim Model.

При использовании MPC Designer в Online™ MATLAB обрезка не поддерживается. Вы должны линеаризировать модель в начальных условиях модели.

В диалоговом окне «Обрезка модели» на вкладке «Outputs» установите флажок в столбце «Known» для Channel-1 и задайте Value 2.

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

Нажмите Start Trimming.

В диалоговом окне Define MPC Structure By Linearization, в разделе Simulink Operating Point, вычисленная рабочая точка, op_trim1, добавляется в раскрывающийся список и выбирается.

В раскрывающемся списке под View/Edit нажмите Edit op_trim1.

В диалоговом окне Edit, на вкладке State, в столбце Actual dx, значения производной около нуля указывают, что вычисленная рабочая точка находится в установившемся состоянии.

Чтобы задать начальные состояния модели Simulink значения рабочих точек в столбце Actual Values, нажмите Initialize model. Это позволяет вам позже моделировать модель Simulink в вычисленной рабочей точке, а не в начальных условиях модели по умолчанию.

В диалоговом окне Initialize Model нажмите OK.

При установке начальных условий модели MPC Designer экспортирует рабочую точку в рабочее пространство MATLAB. Кроме того, в диалоговом окне Параметров конфигурации Simulink, в разделе Data Import/Export, он выбирает параметры Input и Initial state и конфигурирует их, чтобы использовать состояния и входы в экспортированной рабочей точке.

Чтобы сбросить начальные условия модели, например, если вы удалили экспортированную рабочую точку, очистите параметры Input и Initial state.

Закройте диалоговое окно «Редактирование».

В диалоговом окне «Задать структуру MPC путем линеаризации» линеаризируйте модель, нажав Define and Linearize.

В Data Browser приложение добавляет следующие элементы.

  • Линеаризированная модель объекта управления plant

  • Контроллер MPC по умолчанию mpc1 создан с использованием линеаризированного объекта в качестве внутренней модели предсказания

  • Сценарий симуляции по умолчанию scenario1

Задайте атрибуты канала ввода/вывода

На вкладке MPC Designer, в разделе Structure, нажмите I/O Attributes.

В Вход и Выход окнах Channel Спецификаций, в столбце Name, задайте значимые имена для каждого входа и выходного канала.

В Unit столбце укажите соответствующие модули для каждого сигнала.

Nominal Value для каждого сигнала является соответствующим установившимся значением в вычисленной рабочей точке.

Нажмите OK.

Задайте сценарии симуляции подавления помех

Основной целью контроллера является поддержание CA остаточной концентрации на номинальном значении 2 кгмоль/м3. Для этого контроллер должен отклонить как измеренные, так и неизмеренные нарушения порядка.

На вкладке MPC Designer, в разделе Scenario, выберите Edit Scenario > scenario1.

В диалоговом окне Симуляции Scenario, в таблице Reference Signals, в раскрывающемся списке Signal выберите Constant, чтобы удерживать уставку выхода на ее номинальном значении.

В таблице Measured Disturbances, в раскрывающемся списке Signal, выберите Step.

Задайте Size шага 10 и шаговый Time 0.

Нажмите OK.

В Data Browser под Scenarios нажмите scenario1. Нажмите scenario1 второй раз и переименовать его MD_reject.

В Scenario разделе щелкните Plot Scenario > New Scenario.

В диалоговом окне Сценарий симуляции, в таблице Unmeasured Disturbances, в раскрывающемся списке Signal, выберите Step.

Задайте Size шага 1 и шаговый Time 0.

Нажмите OK.

В Data Browser, под Scenarios, переименуйте NewScenario на UD_reject.

Организуйте выходные графики отклика

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

На вкладке View, в разделе Tiles, нажмите Top/Bottom. Вкладка View не поддерживается в MATLAB Online.

Площадь отображения графика изменяется, чтобы отобразить графики входного отклика над графиками выходного отклика.

Перетащите мышью и выберите графики так, чтобы MD_reject: Output вкладка находилась в верхней области графика, а UD_reject: Output график - в нижней области графика.

Настройка эффективности контроллера

На вкладке Tuning, в разделе Horizon, задайте Prediction horizon 20 и Control horizon 5.

Графики Output Response обновляются на основе новых значений горизонта.

Используйте ограничения контроллера по умолчанию и строения веса.

В Performance Tuning разделе перетащите ползунок Closed-Loop Performance вправо, что приводит к более жесткому управлению выходами и более агрессивным движениям управления. Перетащите ползунок, пока реакция MD_reject: Output не достигнет устойчивого состояния менее чем за две секунды.

Перетащите State Estimation ползунок вправо, что приводит к более агрессивному неизмеренному подавлению помех. Перетащите ползунок, пока реакция UD_reject: Output не достигнет устойчивого состояния менее чем за 3 секунды.

Обновите модель Simulink с помощью настроенного контроллера

В Analysis разделе выберите Export Controller > Update Block Only. Приложение экспортирует настроенный контроллер mpc1 в рабочее пространство MATLAB. В модели Simulink MPC Controller блок обновляется, чтобы использовать экспортированный контроллер.

Симулируйте неизмеренное подавление помех

В окне модели Simulink на вкладке Simulation измените Stop Time на 5 секунд.

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

Чтобы симулировать модуль шаг в концентрации сырья в начальный момент времени, откройте блок Feed Concentration и увеличьте его параметр Constant value из 10 на 11.

В окно модели Simulink откройте Concentration возможностей и запустите симуляцию.

Выходной ответ аналогичен UD_reject отклику, однако время урегулирования приблизительно через 1 секунду. Другой результат связан с несоответствием между линейным объектом, используемым в симуляции MPC Designer, и нелинейным объектом в модели Simulink.

Симулируйте измеренные Подавления помех

Чтобы симулировать измеренное подавление помех, сначала верните блоку Feed Concentration его номинальное значение 10.

Чтобы симулировать изменение температуры подачи в начальный момент времени, откройте блок Feed Temperature и увеличьте его параметр Constant value от 300 на 310.

Запустите симуляцию.

Выходной ответ похож на MD_reject ответ от симуляции MPC Designer.

Ссылки

[1] Себорг, Дейл. Э., Томас. Ф. Эдгар и Дункан. А. Меллихамп, динамика процессов и управление. 2nd ed. Hoboken, N.J: John Wiley & Sons, Inc, 2004. 34-36 и 94-95.

См. также

Приложения

Блоки

Похожие темы