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

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

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

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

Модель CSTR

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

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

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

  • Питайте Концентрацию (CAi) — концентрация реагента A в потоке канала (kgmol/m3)

  • Питайте Температуру (Ti) — потоковая температура Канала (K)

  • Температура хладагента (Tc) — Реакторная температура хладагента (K)

Два выходных параметров модели:

  • Температура CSTR (T) — Реакторная температура (K)

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

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

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

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

open_system('CSTR_ClosedLoop')

Соедините измеренное воздействие с блоком MPC Controller

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

В диалоговом окне Block Parameters, на вкладке General, в разделе Additional Inports, проверяют опцию Measured disturbance (md).

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

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

Откройте приложение MPC Designer

В диалоговом окне MPC Controller Block Parameters нажмите Design, чтобы открыть MPC Designer.

Примечание

Этот шаг требует, чтобы программное обеспечение Simulink Control Design линеаризовало модель Simulink. Для получения дополнительной информации смотрите, Линеаризуют Модели Simulink Используя MPC Designer.

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

Задайте структуру MPC

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

В диалоговом окне Define MPC Structure By Linearization, в разделе Controller Sample Time, задают шаг расчета 0.1.

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

В диалоговом окне MPC Block Signal Sizes задайте количество каналов ввода-вывода каждого типа:

Нажмите 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.

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

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

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

Линеаризуйте модель Simulink

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

В окне модели Simulink щелкните правой кнопкой по сигнальной линии, соединенной с CA выходной порт блока CSTR, и выбирает Linear Analysis Points> Trim Output Constraint.

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

В диалоговом окне Define MPC Structure By Linearization, в разделе Simulink Operating Point, в выпадающем списке, под Create New Operating Point, нажимают Trim Model.

В Обрезке диалоговое окно модели, во вкладке 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, почти нулевые производные значения указывают, что вычисленная рабочая точка в установившемся.

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

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

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

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

Закройте диалоговое окно Edit.

В диалоговом окне Define MPC Structure By Linearization нажмите Define and Linearize, чтобы линеаризовать модель.

Линеаризовавшая модель объекта управления добавляется к Data Browser. Кроме того, следующее добавляются к Data Browser:

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

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

Задайте Атрибуты Канала ввода-вывода

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

В диалоговом окне Input and Output Channel Specifications, в столбце Name, задают понятные имена для каждого канала ввода и вывода.

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

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

Нажмите OK.

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

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

В разделе Scenario нажмите Edit Scenario> scenario1.

В диалоговом окне Simulation 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.

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

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

Нажмите OK.

В Data Browser, под Scenarios, переименовывают NewScenario к UD_reject.

Расположите Выходные графики отклика

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

На вкладке View, в разделе Tiles, нажимают Top/Bottom.

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

Перетащите вкладку MD_reject: Output до главного графика.

Настройте производительность контроллера

Во вкладке Tuning, в разделе Horizon, задают Prediction horizon 20 и Control horizon 5.

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

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

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

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

Обновите модель Simulink с настроенным контроллером

В разделе Analysis кликните по стреле Update and Simulate.

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

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

В окне модели Simulink измените длительность симуляции в 5 секунды.

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

Дважды кликните блок Feed Concentration.

В диалоговом окне Block Parameters введите Constant Value 11 чтобы симулировать модуль продвигаются в начальный момент времени.

Нажмите Apply.

В окне модели Simulink нажмите Run.

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

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

В Параметрах блоков: Питайте диалоговое окно Concentration, введите Constant Value 10 возвратить концентрацию канала в ее номинальную стоимость.

Нажмите OK.

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

В Параметрах блоков: Питайте диалоговое окно Temperature, введите Constant Value 310 симулировать ступенчатое изменение размера 10 в начальный момент времени.

Нажмите OK.

В окне модели Simulink нажмите Run.

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

Ссылки

[1] Seborg, D. E. Т. Ф. Эдгар, и Д. А. Мелличамп, Динамика Процесса и Управление, 2-й Выпуск, Вайли, 2004, стр 34–36 и 94–95.

Смотрите также

|

Похожие темы