Этот пример показывает, как смоделировать автомобильную пассажирскую систему окна со стеклоподъемником с помощью Модельно-ориентированного проектирования с Simulink®, Stateflow®, Fixed-Point Designer™ и DSP System Toolbox™. Проект Системы управления соответствует набору требований.
Системные модели окна со стеклоподъемником ответ пассажирского окна к драйверу или пассажирских средств управления окном. Чтобы сделать системную низкую стоимость, датчики тока используются, чтобы обеспечить входные параметры датчика. Никакие датчики положения не используются.
Требования к производительности для системы описаны ниже. Система управления использует алгоритмы обнаружения отказа, чтобы защитить оборудование окна и любые препятствия в пути окна. Это также использует логику режима, чтобы решить, когда окно должно быть перемещено и в который направление.
Окно должно быть полностью открыто или закрыться в течение 5 секунд.
Двигатель должен выключиться после 5 секунд непрерывного перемещения в любом направлении, как сбой безопасная защита для механизма окна, двигателя и диска.
Окно должно начать перемещаться не позднее, чем 0,2 секунды после того, как команда будет дана.
Окно должно остановиться, когда оно достигает полностью открытой или полностью закрытой позиции.
Если или вниз команда дается на срок 0,2 секунд к 1 секунде, окно должно быть полностью открыто или закрыться, если не прервано новой командой окна или препятствием. Это требование представляет автоматическую и автоматическую вниз возможность окна со стеклоподъемником.
Окно должно смочь обнаружить препятствие с силой меньше чем 100 Н.
Окно должно быть понижено приблизительно на 10 см, если препятствие обнаруживается.
Обнаружение препятствия имеет приоритет и над водительской стороной и над средствами управления пассажирской стороны.
Средства управления водительской стороны имеют приоритет над средствами управления пассажирской стороны.
Следующие разделы предоставляют описание событийно-управляемого контроллера, реализованного в Stateflow. Следующие данные показывают полную высокоуровневую диаграмму Stateflow.
Система управления графика определяет соответствующее движение окна, основанное на следующих входных значениях и заданных системных требованиях. Вверх и вниз по движению переключателей окна со стеклоподъемником обработаны как отдельные входные параметры контроллеру.
Вход 1: переключатель окна водительской стороны нажимается
Вход 2: переключатель окна водительской стороны придавлен
Вход 3: переключатель окна пассажирской стороны нажимается
Вход 4: переключатель окна пассажирской стороны придавлен
Вход 5: Моторная текущая арматура (вход датчика)
Четыре кнопки управления окна представлены булевыми значениями true
и false
, имеющий значение на и прочь. Моторная текущая арматура представлена значением данных фиксированной точки. С этими входными значениями контроллер определяет, перемещается ли окно вверх, вниз, или нисколько.
Системные мониторы нагрузка на двигатель, чтобы обнаружить препятствия. Когда окно сталкивается с препятствием, приложенная сила на окне увеличивает нагрузку на двигатель и следовательно текущую арматуру. Путем контроля для резких увеличений в текущей арматуре система обнаруживает препятствия в пути окна.
График имеет два родительских элемента, параллельные состояния, названные Switch
и Logic
. Параллельные состояния активны одновременно. Logic
содержит четыре исключительных состояния: Stop
, Move
, EmergencyDown
и EndStop
. Как имена предполагают, эти состояния обрабатывают управляющую логику для окна, чтобы остановиться, переместиться, спуститься в чрезвычайной ситуации или обнаружить endstops. События на основе времени или вводов данных пользователем вызывают изменения в состоянии. Основанные на времени события, названные временными логическими событиями, вызывают критические по отношению к безопасности функции обнаружения препятствия и аппаратной защиты. Управляемые пользователями события следующие.
UP: Окно событие
DOWN: Окно вниз событие
NEUTRAL: Окно проводит мероприятие
ENDSTOP: Конец области значений обнаружил событие, когда окно полностью открыто или закрыто
OBSTACLE: событие препятствия Окна
События в этом контроллере широковещательно передаются из таблицы истинности switches
и графическая функция obstacles
(соответственно в состояниях Switch
и Move
). Цель switches
состоит в том, чтобы широковещательно передать UP
, DOWN
и события NEUTRAL
, основанные на кнопке или комбинации нажатых кнопок. Цель функции obstacles
состоит в том, чтобы решить, присутствует ли препятствие или если окно полностью открыто или полностью закрыто. Это решение основано на значении и скорости изменения текущей арматуры. Если препятствие присутствует, событие OBSTACLE
широковещательно передается, и если окно достигает полностью открытой или полностью закрытой позиции, событие ENDSTOP
широковещательно передается. Схему таблицы истинности показывают в фигуре ниже. Как вы видите, входные параметры от драйвера более приоритетны по сравнению с теми от пассажира. Если драйвер и пассажир оба нажмут их кнопки окна, пассажирский вход будет проигнорирован.
Итоговая графическая функция go
не широковещательно передает событий к диаграмме Stateflow. Цель go
состоит в том, чтобы установить выходные значения графика, которые соответствуют направлению движения окна. Например, если диспетчер решает, что окно должно переместиться вверх, оно передает значение true
первому выходному порту. Аналогично, значение, которое true
отправляется во второй выходной порт, если диспетчер решает, что окно должно спуститься.
Состояние Stop
активно каждый раз, когда окно не перемещается. Stop
является первым состоянием, которое активируется, когда симуляция начинается, поскольку по умолчанию окно не перемещается в начале симуляции. Переход от Stop
до Move
происходит, если подтвержденное событие UP
или DOWN
широковещательно передается. Событие UP
недопустимо, если происходит, когда окно уже полностью закрывается. Аналогично, событие DOWN
недопустимо, если происходит, когда окно полностью открыто.
Состояние Move
активно каждый раз, когда окно находится в движении. Это состояние реализует несколько из требований окна со стеклоподъемником, связанных с обнаружением объектов и автоматизированным перемещением окна. На каждом временном шаге Move
проверяет, столкнулось ли окно с препятствием или достигло полностью открытой или полностью закрытой позиции. Если объект обнаруживается, событие OBSTACLE
широковещательно передается, и изменение состояния от Move
до EmergencyDown
происходит. Если конечное положение обнаруживается, событие ENDSTOP
широковещательно передается, и изменение состояния от Move
до EndStop
происходит.
Move
имеет два параллельных состояния, названные Direction
и Mode
. Состояние Direction
проверяет, находится ли окно в движении и перемещающийся или вниз. Состояние Mode
реализует авто и автовниз возможность окна. Если кнопка окна удерживается на время от 0,2 до 1 секунды или в направлении, окно должно автоматически открыться или закрыться полностью, если не прервано новой командой окна или препятствием. Если пользователь нажимает кнопку окна, в течение какого-то времени заданную выше, состояние Auto
вводится. Если у кнопки требуют длительности, которая не приземляется в этой области значений, состояние Manual
вводится. Если состояние Manual
активно, переход от Move
до Stop
выполняется, когда пользователь отпускает кнопку.
В состоянии EmergencyDown
окно спускает приблизительно 10 см, если препятствие обнаруживается. Когда это состояние активируется, функция go
вызвана, чтобы переместить окно вниз.
EndStop
сначала определяет, открывается ли окно полностью или закрывается, затем управляет, чтобы окно переместилось в противоположное направление для части секунды, чтобы уменьшить силу на окне. Если окно переместило необходимое количество, изменение состояния от EndStop
до Stop
происходит.