Этот пример показывает, как можно использовать программное обеспечение MathWorks® и Основанный на модели Процесс разработки, чтобы пойти от концепции до реализации для системы окна со стеклоподъемником для автомобиля.
В этом примере рассмотрите систему окна со стеклоподъемником пассажирской стороны автомобиля. Обратите внимание, что критический аспект этой системы - то, что она никогда не может проявлять силу больше чем 100 Н на объекте при закрытии окна, например:
Когда модель обнаруживает такой объект, она должна понизить окно приблизительно на 10 сантиметров.
Для получения дополнительной информации о конструктивных требованиях смотрите контроллер окна со стеклоподъемником документация
Этот пример использует Модельно-ориентированное проектирование и крупномасштабные техники моделирования такой как,
Блоки Model, чтобы разделить иерархию на отдельные модели.
Различные Блоки Подсистем к модели и переключателю между различными проектными решениями.
Библиотеки, чтобы получить алгоритмы для повторного использования в различных подсистемах.
Проект Simulink® управлять файлами, требуемыми для разработки системы.
Запустите следующую команду, чтобы создать и открыть рабочую копию файлов проекта для этого примера.
После визуального осмотра проекта вы видите, что функции из Проекта Simulink раньше организовывали пример. Эти функции
Папки
Классификация файлов
Ярлыки
Папки
Проект организован в следующие папки:
configureModel - содержит файлы MATLAB®, управляющие моделью основной системы различная настройка.
данные - содержат изображения, требуемые проектом.
hmi - содержит файлы, чтобы анимировать ответ окна со стеклоподъемником.
модель - содержит модель основной системы, модели контроллеров, модели для тестирования контроллера и библиотек, которые поддерживают эти модели.
задача - содержит файлы MATLAB, которые моделируют модель для различных настроек модели и генерируют отчеты покрытия для контроллера.
утилиты - содержат файлы MATLAB, чтобы инициализировать модель, сгенерировать вход электронной таблицы, добавить данные в сгенерированную электронную таблицу и управлять средой проекта при запуске и завершении работы.
Классификация файлов
Файлы в Проектах Simulink имеют различные классификации, видимые в, Маркирует Pane. Каждая метка описывает определенную роль, которую файл вносит в тело проекта. В этом проекте новые классификации были добавлены, включая:
Настройка - файлы, которые конфигурируют проект или модель.
PrjConfig - файлы, которые конфигурируют проект путем добавления его файлов в путь при запуске и удаления их при завершении работы.
DesignConfig - файлы, которые определяют, какая настройка модели активна в установленный срок.
Проект - модель основной системы и ее модель управления, на которую ссылаются.
DesignSupport - файлы, такие как библиотеки, данные и симуляция модели.
Симуляция - файлы, которые моделируют модель для определенной настройки.
Тест - покрытие управления, взаимодействие управления и модели тестовой обвязки.
Визуализация - файлы, которые анимируют движение окна со стеклоподъемником.
Ярлыки
Ярлыки проекта используются, чтобы получить быстрый доступ к файлам проекта, которые чаще всего используются. Некоторые ярлыки содержат общие задачи, такие как добавление проекта к пути при запуске и удалении его при завершении работы. Кроме того, группы ярлыка проекта помогают организовать ярлыки. Новые группы ярлыка
Интерактивное Тестирование - содержит файлы, используемые для интерактивного тестирования контроллера.
Основная Модель - содержит файл для модели Simulink верхнего уровня.
Покрытие модели - содержит файлы, используемые для покрытия модели контроллера.
Симуляция - содержит файлы, используемые для симуляции различных настроек модели.
Модели Simulink для этого проекта расположены в образцовой папке. Модели интереса
Модель основной системы
Модели для тестирования
Модель основной системы
В этом примере под образцовой папкой моделью основной системы является slexPowerWindowExample
. Эта модель состоит из драйвера и пассажирских блоков switch, которые генерируют входные параметры к системе. Входные параметры затем проходят модель системы управления, которая подтверждает состояния входных параметров драйвера и пассажира. Блок системы управления также определяет, существует ли препятствие, блокирующее окно path. Контроллер, на который ссылаются, производит сигналы команды движения окна, отправленные в активный вариант оконной системы. Оконная система вывод является обратной связью к блоку системы управления.
Чтобы визуализировать результаты симуляции, Инспектор данных моделирования (SDI) регистрирует выходные данные, и Simulink 3D Animation™ анимирует движение окна.
Образцовые варианты
Модель основной системы в этом проекте использует блок Variant Subsystem
, чтобы допускать несколько реализаций в подсистеме. Активная реализация может быть программно изменена до симуляции. В основной модели существует четыре Различных блока Subsystem каждый с вариантами, которые могут быть программно изменены. Те четыре различных подсистемы:
slexPowerWindowExample/driver_switch
slexPowerWindowExample/passenger_switch
slexPowerWindowExample/window_system
slexPowerWindowExample/power_window_control_system/detect_obstacle_endstop
Каждый вариант сопоставлен с различным управлением. Вариант активен, когда его различное управление оценивает к true
.
С тех пор существует четыре программно модифицируемых Различных блока Subsystem в основной модели, существуют файлы MATLAB, чтобы управлять комбинациями вариантов, чтобы создать различные настройки модели, которые найдены под классификацией DesignConfig
. Доступные различные настройки модели
Контроллер окна со стеклоподъемником модель гибридной системы
Контроллер окна со стеклоподъемником и подробная модель объекта управления
Контроллер окна со стеклоподъемником с эффектами сбора данных
Контроллер окна со стеклоподъемником с коммуникацией Сети области контроллера (CAN)
Контроллер окна со стеклоподъемником модель гибридной системы
Этот образцовый вариант использует Stateflow® и Simulink, чтобы смоделировать и дискретное событие реактивное поведение и непрерывное поведение времени. Это использует модель объекта управления низкоуровневую, чтобы подтвердить свертку и скатиться по поведению. Можно моделировать эту различную настройку с помощью ярлыка SimHybridPlantLowOrder
. Этот ярлык активирует только различную подсистему, соответствующую этой настройке модели. Поскольку эта модель не учитывает эффекты степени, единственный регистрируемый вывод является положением. Инспектор данных моделирования (SDI) отображает регистрируемые данные о положении.
Контроллер окна со стеклоподъемником и подробная модель объекта управления
Этот образцовый вариант показывает более подробную модель объекта управления, которая включает эффекты степени в электрические и механические области, используется, чтобы подтвердить это, сила, проявленная окном на захваченном объекте никогда, не превышает 100 Н. Этот образцовый вариант требует, чтобы Simscape™ Multibody™ и Степень Simscape продукты Systems™ были установлены. Можно моделировать эту различную настройку с помощью ярлыка SimHybridPlantPowerEffects
. В отличие от предыдущей различной модели, эта различная настройка учитывает эффекты степени. SDI отображает записанные данные от текущей арматуры, положение и сила, проявленная окном со стеклоподъемником.
Контроллер окна со стеклоподъемником с эффектами сбора данных
Этот образцовый вариант показывает дополнительные эффекты из-за реализации, которые влияют на управление. Включенные явления являются созданием условий сигнала, чтобы измерить текущую арматуру и квантование измерения. Этот образцовый вариант требует, чтобы Simscape Multibody, Simscape Power Systems, DSP System Toolbox™ и продукты Fixed-Point Designer™ были установлены. Можно моделировать эту различную настройку с помощью ярлыка SimHybridPlantPowerEffects+ControlDAQEffects
. Как предыдущая модель, SDI отображает записанные данные от текущей арматуры, положение и сила, проявленная окном со стеклоподъемником.
Контроллер окна со стеклоподъемником с коммуникацией CAN
Этот образцовый вариант показывает использование CAN, чтобы передать команды, чтобы управлять перемещением окна. Переключатели, которые могут быть расположены в центральной консоли автомобиля и которые производят команды, включены в этот образцовый вариант. Этот образцовый вариант требует, чтобы Simscape Multibody, Simscape Power Systems, DSP System Toolbox и продукты Fixed-Point Designer были установлены. Можно моделировать эту различную настройку на машине рабочие окна OS с помощью the|SimCANCommunication | ярлык.
Модели для тестирования
Чтобы протестировать конечный автомат, который управляет окном со стеклоподъемником, можно запустить ярлыки проекта для тестирования. Доступные образцовые ярлыки для тестирования контроллера
InteractiveExample
CoverageExample
IncreaseCoverageExample
InteractiveExample
Этот образцовый ярлык открывает модель, slexPowerWindowCntlInteract. Эта модель содержит контроллер окна со стеклоподъемником, который является конечным автоматом. Эта модель также содержит входные параметры контроллеру, которые выбраны с ручными блоками switch.
У контроллера окна со стеклоподъемником есть четыре внешних входных параметров:
Пассажирский вход
Вход драйвера
Рамка окна Endstops
Существующее препятствие
Пассажирский вход
Этот вход состоит из вектора с тремя элементами:
neutral
: пассажирский переключатель управления не подавлен
up
: пассажирский переключатель управления генерирует сигнал
down
: пассажирский переключатель управления генерирует вниз сигнал
Вход драйвера
Этот вход состоит из вектора с тремя элементами:
neutral
: переключатель управления драйвером не подавлен
up
: переключатель управления драйвером генерирует сигнал
down
: переключатель управления драйвером генерирует вниз сигнал
Рамка окна Endstops
Этот вход состоит из вектора с двумя элементами:
0
: окно перемещается свободно между верхней частью или нижней частью
1
: окно застревает наверху или нижняя часть из-за физических ограничений
Существующее препятствие
Этот вход состоит из вектора с двумя элементами:
0
: окно перемещается свободно между верхней частью или нижней частью
1
: окно имеет препятствие в своем кадре
Можно в интерактивном режиме протестировать контроллер путем симуляции модели и выбора желаемой комбинации входных параметров через ручные блоки switch. После делания выбора входных параметров можно проверить состояние внутреннего контроллера и контроллер вывод против желаемого результата для этого определенного набора входных параметров.
CoverageExample
Этот образцовый ярлык открывает модель, slexPowerWindowCntlCoverage. Эта модель содержит контроллер окна со стеклоподъемником, который является конечным автоматом. Эта модель также содержит входные параметры контроллеру, которые повторяют блоки последовательности.
Можно использовать Инструмент model coverage Simulink Coverage(TM), чтобы подтвердить дискретное управление событием окна. Инструмент model coverage помогает определить степень, до которой образцовый тест осуществляет условные переходы контроллера. Это также помогает оценить, взяты ли все переходы в дискретном управлении событием, учитывая тест, который мы запускаем. Это также оценивает, стали ли все пункты в условии, которое включает конкретный переход, верными. Один переход может быть включен несколькими пунктами, например, переход от чрезвычайной ситуации назад к нейтральному происходит, когда или 100 меток деления произошли или когда endstop достигнут.
IncreaseCoverageExample
Этот образцовый ярлык открывает модель, slexPowerWindowCntlCoverageIncrease. Эта модель содержит контроллер окна со стеклоподъемником, который является конечным автоматом. Эта модель также содержит блок From Spreadsheet, который обеспечивает несколько наборов входных параметров контроллеру. Эти вводит, устанавливает объединение с тем из модели CoverageExample осуществлять больше логики в контроллере окна со стеклоподъемником.
Эти входные наборы:
Logged
: регистрируемый от CoverageExample.
LoggedObstacleOffEndStopOn
: Регистрируемый от CoverageExample со способностью поразить endstop.
LoggedObstacleOnEndStopOff
: Регистрируемый от CoverageExample с препятствием в окне.
LoggedObstacleOnEndStopOn
: Регистрируемый от CoverageExample с препятствием в окне и способности поразить endstop.
DriverLoggedPassengerNeutral
: Регистрируемый от CoverageExample только для драйвера. Пассажир не принимает мер.
DriverDownPassengerNeutral
: окно понижения Драйвера. Пассажир не принимает мер.
DriverUpPassengerNeutral
: окно повышения Драйвера. Пассажир не принимает мер.
DriverAutoDownPassengerNeutral
: окно понижения Драйвера в течение 1 секунды (автовниз). Пассажир не принимает мер.
DriverAutoUpPassengerNeutral
: окно повышения Драйвера в течение 1 секунды (авто). Пассажир не принимает мер.
PassengerAutoDownDriverNeutral
: окно понижения Пассажира в течение 1 секунды (автовниз). Драйвер не принимает мер.
PassengerAutoUpDriverNeutral
: Пассажир, повышающий окно в течение 1 секунды (авто). Драйвер не принимает мер.
Ярлык покрытия модели, GenerateIncreasedCoverage, использует несколько входных наборов с Инструментом model coverage Simulink Coverage, чтобы подтвердить дискретное управление событием окна и сгенерировать отчет покрытия для нескольких входных наборов. Инструмент model coverage помогает определить степень, до которой образцовый тест осуществляет условные переходы контроллера. Это также помогает оценить, если все переходы в дискретном управлении событием были учтены, учитывая входные наборы, мы запускаемся.
Смотрите контроллер окна со стеклоподъемником документация