В этом примере показано, как можно использовать программное обеспечение MathWorks® и Основанный на модели Процесс разработки, чтобы пойти от концепции до реализации для системы окна со стеклоподъемником для автомобиля. Этот пример использует Simulink®, Simulink® Coverage™, DSP System Toolbox™, Simscape™ Multibody™, Fixed-Point Designer™, Simscape™ Electrical™, Simscape™ и Simulink® Real-Time™.
В этом примере рассмотрите систему окна со стеклоподъемником пассажирской стороны автомобиля. Обратите внимание, что критический аспект этой системы - то, что она никогда не может порождать силу больше чем 100 Н на объекте при закрытии окна, например:
Когда модель обнаруживает такой объект, она должна понизить окно приблизительно на 10 сантиметров.
Для получения дополнительной информации о конструктивных требованиях смотрите Окно со стеклоподъемником.
Этот пример использует Модельно-ориентированное проектирование и крупномасштабные техники моделирования такой как,
Блоки Model, чтобы разделить иерархию на отдельные модели.
Различные Блоки Подсистем к модели и переключателю между различными проектными решениями.
Библиотеки, чтобы получить алгоритмы для повторного использования в различных подсистемах.
Проекты управлять файлами, требуемыми для разработки системы.
Запустите следующую команду, чтобы создать и открыть рабочую копию файлов проекта для этого примера.
После визуального осмотра проекта вы видите, что функции раньше организовывали пример. Эти функции:
Папки
Классификация файлов
Ярлыки
Папки
Проект организован в следующие папки:
configureModel - Файлы MATLAB®, управляющие моделью основной системы различная настройка
данные - Изображения требуются проектом
hmi - Файлы, которые анимируют ответ окна со стеклоподъемником
модель - модель Основной системы, модели контроллеров, модели для тестирования контроллера и библиотек, которые поддерживают эти модели
задача - файлы MATLAB, которые симулируют модель для различных настроек модели и генерируют отчеты покрытия для контроллера
утилиты - файлы MATLAB, чтобы инициализировать модель, сгенерировать вход электронной таблицы, добавить данные в сгенерированную электронную таблицу и управлять средой проекта при запуске и завершении работы
Классификация файлов
Файлы в Проектах имеют различные классификации, видимые в панели Меток. Каждая метка описывает определенную роль, которую файл вносит в тело проекта. В этом проекте новые классификации были добавлены, включая:
Настройка - Файлы, которые конфигурируют проект или модель.
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 помогает определить степень, до которой тест модели осуществляет условные переходы контроллера. Это также помогает оценить, взяты ли все переходы в дискретном управлении событием, учитывая тест, который мы запускаем. Это также оценивает, стали ли все пункты в условии, которое включает конкретный переход, верными. Один переход может быть включен несколькими пунктами, e.g., переход от чрезвычайной ситуации назад к нейтральному происходит, когда или 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 помогает определить степень, до которой тест модели осуществляет условные переходы контроллера. Это также помогает оценить, если все переходы в дискретном управлении событием были учтены, учитывая входные наборы, мы запускаемся.