Этот пример показывает, как спроектировать прогнозирующий контроллер модели для непрерывного реактора с мешалкой (CSTR) в Simulink® использование MPC Designer.
Этот пример требует, чтобы программное обеспечение Simulink Control Design™ задало структуру MPC путем линеаризации нелинейной модели Simulink.
Если у вас нет программного обеспечения Simulink Control Design, необходимо сначала создать mpc
объект в MATLAB® рабочей области. Для получения дополнительной информации смотрите Контроллер Using MPC Designer и Design MPC Controller в командной строке.
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 из 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 секунды.
В 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.