В этом примере показано, как смоделировать систему управления скорострельного оружия, которая регулирует температуру бойлера. Модель имеет два компонента:
Модель Котельной установка является подсистемой Simulink® модели динамика бойлера.
Контроллер скорострельного оружия является графиком 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 секунд.
Off
утвердите также использует временную логику, чтобы управлять состоянием LED. Поскольку диаграммы Stateflow в моделях Simulink не поддерживают оператор every
в течение абсолютного времени временная логика состояние реализует операцию Во главе с использованием Flash
подсостояния с переходом самоцикла. Метка
after(5,sec)
перехода инициировал действие входа подсостояния и заставляет LED высвечиваться каждые 5 секунд.
Подсистема модели Котельной установка симулирует температурную реакцию бойлера в периоды нагревания или охлаждения.
В зависимости от выхода Контроллера Скорострельного оружия график подсистема добавляет или вычитает температурный шаг (+1 для нагревания или –0.1 для охлаждения) к предыдущей температуре бойлера и передает результат Цифровой подсистеме Термометра.
Цифровая подсистема Термометра преобразует получившуюся температуру в 8-битное представление фиксированной точки. Преобразование происходит на трех шагах.
Блок Sensor преобразует входную температуру бойлера в промежуточное аналоговое напряжение выход.
Подсистема Аналого-цифрового конвертера (ADC) оцифровывает аналоговое напряжение от блока датчика путем умножения напряжения на, округления на целочисленный пол, и затем ограничения результата максимумом 255 (самое большое 8-битное целочисленное значение без знака). Подсистема выводит квантованное целое число.
Блок Linear Fixed-Point Conversion инвертирует объединенную передаточную функцию блоков Датчика и ADC, чтобы закодировать температуру бойлера как номер фиксированной точки с наклоном и смещением. Эти параметры фиксированной точки преобразуют 8-битное квантованное целое число в цифровую закодированную температуру.
Диспетчер Скорострельного оружия строит диаграмму, получает эту цифровую закодированную температуру и интерпретирует его как 8-битные данные фиксированной точки без знака temp
. График обрабатывает эти температурные данные в 8-битной среде без любых явных преобразований.
После симуляции Осциллограф Simulink показывает, что бойлер достигает температуры 20 градусов Цельсия приблизительно после 450 секунд (7,5 минут). Управляющая логика скорострельного оружия эффективно обеспечивает ту температуру для остальной части симуляции.
after | every | Data Type Conversion (Simulink)