В этом примере показано, как смоделировать автомобильную систему окна со стеклоподъемником с помощью Модельно-ориентированного проектирования с 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
перемещение
, 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
происходит.