Первые шаги в конечных автоматах
Данный пример демонстрирует логику конечного автомата и не является исчерпывающим. Для более глубокого понимания конечных автоматов обратитесь к другим статьям в разделе Конечные автоматы. |
Рассмотрите работу с конечным автоматом (КА) на примере модели системы автоматического пожаротушения. Итоговая модель будет включать в себя все основные элементы библиотеки КА :
Допустим, что модель может находиться в следующих состояниях:
-
Rest (покой) — предельная концентрация дыма не превышена;
-
Alarm (тревога) — система включает ороситель;
-
Fault (неисправность) — самодиагностика показала неисправность системы, дальнейшая работа невозможна.
У системы есть один вход — концентрация дыма в воздухе и два выхода — «оросители» и «лампа неисправности». В зависимости от значения входного сигнала система переходит в одно из возможных состояний, и соответственно устанавливаются значения сигналов на выходе:
-
Rest (покой) — оросители выключены, лампа неисправности выключена;
-
Alarm (тревога) — оросители включены, лампа неисправности включена;
-
Fault (неисправность) — оросители выключены, лампа неисправности включена.
Система переходит из одного состояния в другое посредством переходов:
Переходы между состояниями происходят при выполнении определенных условий ([]
), заданных в модели. Условием перехода может быть событие, логическое условие или время. В нашем примере условием перехода от состояния Покой к состоянию Тревога будет превышение предельно допустимой концентрации дыма, а Неисправность возникает, если датчик показывает отрицательное значение концентрации.
Чтобы добавить в модель более сложные условия, можно использовать узлы:
Верхний узел на рисунке обеспечивает переход системы из состояния Покой в состояние Неисправность, если концентрация имеет отрицательное значение. Кроме того, он блокирует переход из состояния Покой в состояние Тревога, если концентрация слишком высокая, так как это не соответствует реальной ситуации. Вместо этого система также переходит в состояние Неисправность.
Пример модели системы автоматического пожаротушения иллюстрирует базовые принципы работы конечного автомата: разделение логики на состояния, определение условий для переходов и использование узлов для обработки более сложных сценариев. Такой подход позволяет разработать надежную и предсказуемую систему, которая корректно реагирует на изменения входных сигналов, минимизируя ошибки при ее воплощении в реальном мире.