Создание модели системы управления стеклоочистителями и светом фар автомобиля
Рассмотрим функционирование модели системы стеклоочистителей автомобиля. Механизм иерархии позволяет использовать рекурсивный способ описания диаграммы Stateflow и считать, что каждое состояние может быть представлено в виде соответствующей диаграммы. Система имеет два состояния, которые могут быть названы суперсостояниями: On (Включено) и Off (Выключено). Суперсостояние On имеет два подсостояния: Slow (Медленно) и Fast (Быстро). Диаграмма Stateflow модели системы стеклоочистителей представлена на рис. 7.5. Следует заметить, что переход по умолчанию для системы – переход в состояние Off. Как только система переходит в суперсостояние On, данное состояние переходит в подсостояние Slow.
Рис. 7.5. Модель системы стеклоочистителей автомобиля
Для создания рассмотренной модели выполните следующие действия:
1) Создайте новую модель в Simulink, добавив блок Chart из Stateflow.
2) Вызовите редактор Stateflow-диаграмм с помощью двойного нажатия левой кнопки мыши на изображении блока Chart. Вдоль левой границы окна редактора Stateflow-диаграмм расположена панель пиктограмм, которые используются для формирования диаграммы Stateflow. Ниже панели пиктограмм расположен элемент управления масштабом отображения диаграммы.
3) Перейдите на вкладку Tools/Explore. В появившемся окне Model Explorer (рис. 7.6), создайте необходимые переменные (M – выходная переменная; Wswitch, Speed – входные переменные) с помощью иконки «Add Data».
Рис. 7.6. Окно Model Explorer
4) С помощью кнопок панели инструментов редактора диаграмм создайте 2 суперсостояния и 2 подсостояния, как показано на рис. 7.7. Вместо вопросительных знаков запишите названия состояний.
Рис. 7.7. SF-диаграмма
Создайте переходы по умолчанию, переходы между состояниями, добавьте метки к переходам. В итоге должна получиться Stateflow-диаграмма, показанная на рис. 7.5.
Теперь следует воспользоваться механизмом, который позволяет одновременно находиться в нескольких состояниях и называется параллельным функционированием состояний. Рассмотрите модель электрической системы автомобиля (рис. 7.8), которая включает подсистему стеклоочистителей и подсистему фар. Штриховые рамки, которыми выделены данные подсистемы, указывают на параллельное функционирование нескольких состояний в независимых подсистемах.
Рис. 7.8. Модель электрической системы автомобиля, управляющей
стеклоочистителями и светом фар
Подсистема фар создается аналогично подсистеме стеклоочистителей, рассмотренной выше. При этом в качестве подсостояний суперсостояния On вводятся два режима: ближний свет (Normal) и дальний свет (Bright). Для того чтобы эти подсистемы работали параллельно, необходимо нажать на правую кнопку мыши и на вкладке Decomposition выбрать Parallel.
5) После создания Stateflow-диаграммы произведите ее синтаксический анализ и проверьте правильность ее функционирования.
6) Проверку правильности функционирования целесообразно осуществить путем введения в созданную модель блоков формирования входных сигналов и блоков наблюдения за изменением значений выходных сигналов. Для этого перейдите в окно Simulink и выполните соответствующие действия. Пример Simulink-модели, дополненной входными и выходными блоками, представлен на рис. 7.9.
Рис. 7.9. Simulink-модель для проверки правильности функционирования
7) При создании модели, показанной на рис. 7.9, установите в среде Simulink и соответственно в среде Stateflow одинаковые типы сигналов, например, uint8 (по умолчанию устанавливается тип double).
8) Проверьте правильность функционирования модели с разными значениями входных сигналов. Проконтролируйте изменения выходных сигналов в соответствии с логикой работы созданной модели.