Моделируйте систему управления температурой взрыва

Этот пример показывает, как смоделировать систему релейного управления, которая регулирует температуру бойлера. Модель имеет два компонента:

  • Модель объекта управления является подсистемой Simulink ®, которая моделирует динамику котла.

  • Bang-Bang Controller является графиком Stateflow ®, которая реализует логику релейного управления.

На графике используются:

  • временная логика реализации сроков релейного цикла

  • 8-битные данные с фиксированной точкой для представления температуры бойлера

Реализуйте логику управления при помощи after Оператор

Контроллер определяет, когда котел включается или отключается. Первоначально котел отключается. Через 40 секунд, если бойлер холодный, котел включается. Через 20 секунд котел отключается, и цикл релейного управления повторяется.

Чтобы управлять переходами между On и Off состояния, график вызывает оператор временной логики в абсолютное время after. Для примера - метка перехода after(20,sec) запускает переход от On на Off после On состояние активно в течение 20 секунд. Область метки after(40,sec)[cold()] вызывает переход от Off на On произойдет, если функция cold возвращает true после Off состояние активно в течение 40 секунд.

The Off состояние также использует временную логику для управления светодиодным индикатором состояния. Потому что диаграммы Stateflow в моделях Simulink не поддерживают оператор every для абсолютной временной логики состояние реализует операцию светодиода с помощью substate Flash с циклическим переходом. Метка перехода after(5,sec) запускает действие входа подсостояния и заставляет светодиодный индикатор мигать каждые 5 секунд.

Обработка данных с плавающей точкой на процессоре 8-Bit

Подсистема Boiler Модель Объекта Управления моделирует температурную реакцию бойлера в периоды нагрева или охлаждения.

В зависимости от выходных данных графика Контроллер, подсистема добавляет или вычитает шаг температуры (+ 1 для нагрева или -0,1 для охлаждения) к предыдущей температуре бойлера и передает результат в подсистему Цифрового Термометра.

Подсистема Цифрового Термометра преобразует полученную температуру в 8-битное представление с фиксированной точкой. Преобразование происходит в три этапа.

  • Блок Sensor преобразует входную температуру бойлера$T_{actual}$ в промежуточный аналоговый выход напряжения.$V_{sensor} = 0.05 \cdot T_{actual} + 0.75$

  • Подсистема аналого-цифровой преобразователь (АЦП) оцифровывает аналоговое напряжение от блока датчика, умножая напряжение на, $\frac{256}{5}$округляя до целого уровня, а затем ограничивая результат максимум 255 (самое большое беззнаковое 8-битное целое значение). Подсистема выводит квантованное целое число.$Q = \lfloor \frac{256}{5} \cdot V_{sensor} \rfloor = \lfloor \frac{256 \times 0.05}{5} \cdot T_{actual} + \frac{256 \times 0.75}{5} \rfloor$

  • Блок Linear Fixed-Point Conversion инвертирует объединенную передаточную функцию блоков Sensor и ADC, чтобы кодировать температуру бойлера как число с фиксированной точкой с наклоном$S = \frac{5}{256 \times 0.05} = 0.390625$ и смещением. $B = -\frac{0.75}{0.05} = -15$Эти параметры с фиксированной точкой преобразуют 8-битное квантованное целое число$Q$ в цифровую закодированную температуру.$T_{digital} = SQ + B = \frac{5}{256 \times 0.05} \cdot \lfloor \frac{256 \times 0.05}{5} \cdot T_{actual} + \frac{256\times 0.75}{5} \rfloor - \frac{0.75}{0.05} \approx T_{actual}$

График Bang-Bang Controller получает эту цифровую закодированную температуру и интерпретирует ее как беззнаковые 8-битные данные с фиксированной точкой temp. График обрабатывает эти данные о температуре в 8-битном окружении без каких-либо явных преобразований.

Исследуйте результаты симуляции

После симуляции осциллограф Simulink показывает, что температура бойлера достигает 20 степеней Цельсия примерно через 450 секунд (7,5 минут). Логика релейного управления эффективно поддерживает эту температуру для остальной части симуляции.

См. также

| | (Simulink)

Похожие темы