Графический вывод характеристик линейной системы химического реактора

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

Химическая реакторная модель

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

open_system('scdcstr')

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

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

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

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

Для получения дополнительной информации о моделировании реакторов смотрите Seborg, D.E. и др., "Динамика процесса и Управление", 2-й Эд., Вайли, pp.34-36.

Графический вывод реакторного линейного ответа

Реакторная модель содержит блок Bode Plot от библиотеки Simulink Control Design Linear Analysis Plots. Блок сконфигурирован с:

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

  • Линеаризация вывод при остаточной концентрации CA.

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

  • В значении устойчивого состояния 2

  • В узком диапазоне приблизительно 5

  • В значении устойчивого состояния 9

Двойной клик по блоку Bode Plot позволяет вам просмотреть настройку блока.

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

  • Нажмите кнопку Run в окне Bode Plot.

  • Выберите Simulation> Run в окне модели Simulink.

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

sim('scdcstr')

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

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

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

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

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

Журналирование реакторного линейного ответа

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

В линейные системы входят структура с полями time и values.

LinearReactor
LinearReactor = 

  struct with fields:

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

Поле values хранит линейные системы как массив систем пространства состояний LTI (см. Массивы Моделей LTI) в документации Control System Toolbox для получения дополнительной информации).

Можно получить отдельные системы путем индексации в поле 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')

Похожие темы