exponenta event banner

Печать характеристик линейной системы химического реактора

В этом примере показан график линеаризации модели Simulink в определенных условиях во время моделирования. Программное обеспечение Simulink Control Design предоставляет блоки, которые можно добавлять в модели Simulink для вычисления и построения графика линейных систем во время моделирования. В этом примере линейная система химического реактора с непрерывным перемешиванием вычисляется и наносится на график Бода, когда реактор переходит через различные рабочие точки.

Модель химического реактора

Откройте модель химреактора Simulink:

open_system('scdcstr')

Реактор имеет три входа и два выхода:

  • FeedCon0, FeedTemp0 и Coolant Temp блоки моделируют значения концентрации сырья, температуры сырья и температуры хладагента соответственно.

  • T и CA порты CSTR блок моделирует выходы температуры реактора и остаточной концентрации соответственно.

В этом примере основное внимание уделяется реакции от температуры хладагента, Coolant Temp, до остаточной концентрации, CA, когда концентрация сырья и температура сырья постоянны.

Для получения дополнительной информации о моделировании реакторов см. Seborg, D.E. et al., «Process Dynamics and Control», 2nd Ed., Wiley, pp.34-36.

Построение графика линейной реакции реактора

Модель реактора содержит Bode Plot блок из библиотеки графиков линейного анализа Simulink Control Design. Блок конфигурируется следующим образом:

  • Вход линеаризации при температуре хладагента Coolant Temp.

  • Выход линеаризации при остаточной концентрации CA.

Блок также выполнен с возможностью выполнения линеаризаций по нарастающим краям внешнего триггерного сигнала. Сигнал запуска вычисляется в Linearization trigger signal блок, который создает передний край, когда остаточная концентрация составляет:

  • При установившемся значении 2

  • В узком диапазоне около 5

  • При установившемся значении 9

Дважды щелкните значок Bode Plot позволяет просмотреть конфигурацию блока.

При нажатии кнопки Показать график (Show Plot) в диалоговом окне Параметры блока (Block Parameters) открывается окно График мода (Bode Plot), в котором отображается отклик вычисленной линейной системы из Coolant Temp кому CA. Чтобы вычислить линейную систему и просмотреть ее отклик, смоделируйте модель, используя одно из следующих действий.

  • Щелкните значок Run в окне Печать мода (Bode Plot).

  • Выберите «Моделирование» > «Выполнить» в окне модели Simulink.

  • Введите следующую команду:

sim('scdcstr')

График Боде показывает линеаризованный реактор в трех рабочих точках, соответствующих сигналам запуска, определенным в Linearization trigger signal блок:

  • Через 5 секунд линеаризация происходит при низкой остаточной концентрации.

  • Через 38 секунд линеаризация происходит при высокой остаточной концентрации.

  • Через 27 секунд линеаризация происходит при переходе реактора от низкой к высокой остаточной концентрации.

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

Регистрация линейной реакции реактора

Вкладка «Ведение журнала» в Bode Plot указывает, что вычисляемые линейные системы должны быть сохранены как переменная рабочей области.

Линейные системы регистрируются в структуре с time и values поля.

LinearReactor
LinearReactor = 

  struct with fields:

         time: [3x1 double]
       values: [1x1x3x1 ss]
    blockName: 'scdcstr/Bode Plot'

values поле хранит линейные системы в виде массива статусно-пространственных систем LTI. Дополнительные сведения см. в разделе Массивы модели.

Можно извлечь отдельные системы, проиндексировав их в values поле.

P1 = LinearReactor.values(:,:,1);
P2 = LinearReactor.values(:,:,2);
P3 = LinearReactor.values(:,:,3);

График Бода линейной системы в момент времени 27 с, когда реактор переходит от низкой к высокой остаточной концентрации, показывает, что система может быть нестабильной. Отображение линейных систем в полюсно-нулевом формате подтверждает следующее:

zpk(P1)
zpk(P2)
zpk(P3)
ans =
 
  From input "Coolant Temp" to output "CSTR/2":
         -0.1028
  ----------------------
  (s^2 + 2.215s + 2.415)
 
Continuous-time zero/pole/gain model.


ans =
 
  From input "Coolant Temp" to output "CSTR/2":
        -0.07514
  ---------------------
  (s+0.7567) (s-0.3484)
 
Continuous-time zero/pole/gain model.


ans =
 
  From input "Coolant Temp" to output "CSTR/2":
        -0.020462
  ---------------------
  (s+0.8542) (s+0.7528)
 
Continuous-time zero/pole/gain model.

Закройте модель Simulink:

bdclose('scdcstr')
clear('LinearReactor','P1','P2','P3')

Связанные темы