В этом примере показано, как с помощью MPC Designer разработать модель прогнозирующего контроллера для непрерывного реактора с мешалкой (CSTR) в Simulink ®.
В этом примере требуется программное обеспечение Simulink Control Design™ для определения структуры MPC путем линеаризации нелинейной модели Simulink.
Если у вас нет программного обеспечения Simulink Control Design, необходимо сначала создать mpc в рабочей области MATLAB ®. Дополнительные сведения см. в разделе Контроллер проектирования с помощью конструктора MPC и контроллер MPC в командной строке.
CSTR является неадиабатическим резервуарным реактором с рубашкой, обычно используемым в технологической промышленности.

Входной поток реагента А подается в резервуар с постоянной скоростью. Происходит необратимая экзотермическая реакция первого порядка для получения потока продукта, который выходит из реактора с той же скоростью, что и входной поток.
Модель CSTR имеет три входа:
Концентрация сырья (CAi) - концентрация реагента А в потоке сырья (кгмоль/м3)
Температура сырья (Ti) - температура потока сырья (K)
Температура теплоносителя (Tc) - температура теплоносителя реактора (K)
Двумя выходами модели являются:
Температура CSTR (T) - температура реактора (K)
Концентрация (CA) - концентрация реагента А в потоке продукта, также называемая остаточной концентрацией (кгмоль/м3)
Целью управления является поддержание остаточной концентрации CA на номинальной уставке путем регулирования температуры хладагента Tc. Изменения концентрации сырья, CAi и температуры сырья Ti вызывают нарушения в реакции CSTR.
Температуру реактора Т обычно регулируют. Однако для этого примера следует игнорировать температуру реактора и предположить, что остаточная концентрация измеряется непосредственно.
Откройте модель Simulink.
open_system('CSTR_ClosedLoop')
В окне Simulink model дважды щелкните блок MPC Controller.
В диалоговом окне «Параметры блока» на вкладке «Общие» выберите опцию «Измеренное возмущение (md)».

Нажмите кнопку «Применить», чтобы добавить md входной порт в блок контроллера.
В окне модели Simulink подключите вывод блока «Температура подачи» к md входной порт.

В этом примере линеаризация модели Simulink выполняется в MPC Designer, для чего требуется программное обеспечение Simulink Control Design. Дополнительные сведения см. в разделе Линеаризация моделей Simulink с помощью MPC Designer.
Если у вас нет программного обеспечения Simulink Control Design, необходимо сначала создать mpc в рабочей области MATLAB и укажите этот объект контроллера в блоке контроллера MPC.
Чтобы открыть MPC Designer, откройте блок MPC Controller и нажмите Design.
В конструкторе MPC на вкладке Конструктор MPC в разделе Структура щелкните Структура MPC.
В диалоговом окне «Определение структуры MPC по линеаризации» в разделе «Время образца контроллера» укажите время образца 0.1.
В разделе Структура MPC (MPC Structure) щелкните Изменить размеры ввода/вывода (Change I/O Size), чтобы добавить размеры неизмеренного возмущения и измеренного сигнала возмущения.
В диалоговом окне «Размеры сигналов блока MPC» укажите количество каналов ввода/вывода каждого типа.

Нажмите кнопку ОК.
В диалоговом окне «Определение структуры MPC по линеаризации» в разделе «Simulink Signals for Plant Inputs» приложение добавляет строку для неизмеренных возмущений (UD).

Управляемая переменная, измеренное возмущение и измеренный выход уже назначены соответствующим сигнальным линиям Simulink, которые подключены к блоку контроллера MPC.
В разделе Simulink Signals for Plant Inputs выберите строку Unmeasured Dispressions (UD) и нажмите Select Signals.
В окне Simulink model щелкните выходной сигнал из блока Feed Concentration.
Сигнал подсвечивается, и его путь к блоку добавляется в диалоговое окно «Выбор сигнала».

В диалоговом окне «Выбор сигналов» нажмите кнопку «Добавить сигналы».
В диалоговом окне «Определение структуры MPC по линеаризации» в таблице «Simulink Signals for Plant Inputs» обновляется путь блокировки для неизмеренного сигнала возмущения.
В этом примере линеаризация модели Simulink выполняется в установившейся рабочей точке равновесия, где остаточная концентрация составляет 2 кгмоль/м3. Чтобы вычислить такую рабочую точку, добавьте CA сигнал в качестве выходного ограничения обрезки и укажите его целевое значение ограничения.
В окне Simulink model выберите сигнальную линию, подключенную к CA выходной порт блока CSTR.
На вкладке Приложения щелкните Диспетчер линеаризации. Затем на вкладке Линеаризация (Linearization) в коллекции Вставить точки анализа (Insert Analysis Points) выберите Обрезать выходное ограничение (Trim Output Constraint).

CA сигнал теперь может использоваться для определения выходных спецификаций для вычисления рабочей точки установившегося состояния модели.
В диалоговом окне «Определение структуры MPC по линеаризации» в разделе «Рабочая точка Simulink» в раскрывающемся списке выберите «Обрезать модель».
При использовании MPC Designer в MATLAB Online™ обрезка не поддерживается. Необходимо линеаризовать модель в начальных условиях модели.
В диалоговом окне Обрезать модель (Trim the model) на вкладке Выходы (Outputs) установите флажок в столбце Известные (Knowledge) для Channel-1 и укажите значение 2.

Эта настройка ограничивает значение выходного сигнала во время поиска рабочей точки известным значением.
Щелкните Начало обрезки (Start Trimming).
В диалоговом окне «Определение структуры MPC по линеаризации» в разделе «Рабочая точка Simulink» вычисленная рабочая точка op_trim1, добавляется в раскрывающийся список и выбирается.
В раскрывающемся списке в разделе «Вид/Редактирование» выберите «Редактировать op_trim1».

В диалоговом окне «Редактирование» на вкладке «Состояние» в столбце «Actual dx» значения производной, близкие к нулю, указывают, что вычисленная рабочая точка находится в установившемся состоянии.
Чтобы задать начальные состояния модели Simulink для значений рабочих точек в столбце Фактические значения (Actual Values), щелкните Инициализировать модель (Initialize model). Это позволяет в дальнейшем моделировать модель Simulink в вычисленной рабочей точке, а не в исходных условиях модели по умолчанию.
В диалоговом окне Инициализация модели (Initialize Model) нажмите кнопку ОК.
При установке начальных условий модели MPC Designer экспортирует рабочую точку в рабочую область MATLAB. Кроме того, в диалоговом окне Параметры конфигурации Simulink (Simulink Configuration Parameters) в разделе Импорт/экспорт данных (Data Import/Export) выбираются параметры состояния Input (Ввод) и Initial (Начальный) и настраиваются для использования состояний и входов в экспортируемой операционной точке.
Чтобы сбросить исходные условия модели, например, при удалении экспортированной рабочей точки, снимите флажки «Входной» и «Начальный».
Закройте диалоговое окно «Редактирование».
В диалоговом окне Определить структуру MPC по линеаризации (Define MPC Structure By Linearization) выполните линеаризацию модели, щелкнув Определить и линеаризировать (Define and Linearize).
В браузере данных приложение добавляет следующие элементы.
Линеаризованная модель установки plant
Контроллер MPC по умолчанию mpc1 создан с использованием линеаризованного растения в качестве внутренней модели прогнозирования
Сценарий моделирования по умолчанию scenario1

На вкладке Конструктор MPC (MPC Designer) в разделе Структура (Structure) щелкните Атрибуты ввода-вывода (I/O Attributes).
В диалоговом окне «Спецификации канала ввода и вывода» в столбце «Имя» укажите значимые имена для каждого канала ввода и вывода.
В столбце «Единица» укажите соответствующие единицы измерения для каждого сигнала.

Номинальное значение для каждого сигнала является соответствующим установившимся значением в вычисленной рабочей точке.
Нажмите кнопку ОК.
Основной задачей контроллера является поддержание остаточной концентрации СА при номинальном значении 2 кгмоль/м3. Для этого контроллер должен отклонить как измеренные, так и неизмеренные возмущения.
На вкладке MPC Designer в разделе Сценарий выберите Изменить сценарий > сценарий 1.
В диалоговом окне Сценарий моделирования (Simulation Screament) в таблице Опорные сигналы (Reference Signals) в выпадающем списке Сигнал (Signal) выберите Константа (Constant), чтобы сохранить выходную уставку на номинальном уровне.
В таблице Измеренные возмущения в раскрывающемся списке Сигнал выберите Шаг.
Укажите размер шага 10 и шаг Время 0.

Нажмите кнопку ОК.
В браузере данных в разделе «Сценарии» щелкните scenario1. Щелкнуть scenario1 второй раз и переименуйте его MD_reject.
В разделе Сценарий выберите График Сценарий > Новый сценарий.
В диалоговом окне «Сценарий моделирования» в таблице «Несмеренные возмущения» в раскрывающемся списке «Сигнал» выберите «Шаг».
Укажите размер шага 1 и шаг Время 0.

Нажмите кнопку ОК.
В браузере данных в разделе «Сценарии» переименуйте NewScenario кому UD_reject.
Чтобы облегчить просмотр результатов настройки, упорядочьте область графика для одновременного отображения графиков ответа на вывод для обоих сценариев.
На вкладке «Вид» в разделе «Плитки» выберите «Сверху/Снизу». Вкладка Вид (View) не поддерживается в MATLAB Online.
Область отображения графика изменяется для отображения графиков «Входной ответ» над графиками «Выходной ответ».
Перетащите и выберите графики так, чтобы вкладка «MD_reject: Вывод» находилась в верхней области печати, а UD_reject: Вывод - в нижней области печати.

На вкладке Настройка в разделе Горизонт укажите горизонт прогнозирования 20 и горизонт контроля 5.
График Ответ на вывод (Output Response) обновляется на основе новых значений горизонта.
Используйте ограничения контроллера по умолчанию и конфигурации веса.
В разделе «Настройка производительности» перетащите ползунок «Производительность замкнутого цикла» вправо, что приводит к более жесткому управлению выходами и более агрессивным перемещениям управления. Перетащите ползунок до тех пор, пока ответ MD_reject: Output не достигнет устойчивого состояния менее чем за две секунды.

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

В разделе «Анализ» выберите «Контроллер экспорта» > «Обновить только блок». Приложение экспортирует настроенный контроллер mpc1 в рабочую область MATLAB. В модели Simulink блок контроллера MPC обновляется для использования экспортированного контроллера.
В окне Модель Simulink на вкладке Моделирование измените значение Остановить время на 5 секунд.
Начальные условия модели устанавливаются в номинальную рабочую точку, используемую для линеаризации.
Чтобы смоделировать единичный шаг в концентрации сырья в нулевое время, откройте блок концентрации сырья и увеличьте его параметр Constant value от 10 кому 11.
В окне Simulink model откройте область Concentration и запустите моделирование.

Выходной отклик аналогичен UD_reject отклику, однако время установки приблизительно на 1 секунду позже. Другой результат связан с несоответствием между линейной установкой, используемой в моделировании MPC Designer, и нелинейной установкой в модели Simulink.
Для моделирования отклонения измеренного возмущения сначала вернуть блоку концентрации сырья номинальное значение 10.
Чтобы смоделировать пошаговое изменение температуры подачи в нулевое время, откройте блок Температура подачи (Feed Temperature) и увеличьте его параметр Постоянное значение (Constant value) с 300 кому 310.
Запустите моделирование.

Выходной отклик аналогичен MD_reject отклику от моделирования MPC Designer.
[1] Себорг, Дейл. Э., Томас. Ф. Эдгар и Дункан. А. Мелликамп, динамика процессов и управление. 2-й ред. Хобокен, N.J.: John Wiley & Sons, Inc, 2004. 34-36 и 94-95.