Проект управления окна со степенью

В этом примере показано, как можно использовать программное обеспечение MathWorks ® и процесс разработки на основе модели для перехода от концепции к реализации для системы степени для автомобиля. Этот пример использует Simulink®, Simulink® Coverage™, DSP System Toolbox™, Simscape™ Multibody™, Fixed-Point Designer™, Simscape™ Electrical™, Simscape™ и Simulink® Real-Time™.

Обзор требований проект

В этом примере рассмотрим систему степени стороны пассажира автомобиля. Обратите внимание, что критический аспект этой системы заключается в том, что она никогда не может приложить силу более 100 Н к объекту при закрытии окна, например:

Когда модель обнаруживает такой объект, она должна опустить окно примерно на 10 сантиметров.

Для получения дополнительной информации о требованиях к проекту см. Раздел Степени».метров.о крит

Использование основанных на модели разработок и моделирование больших Шкал

Этот пример использует Модельно-ориентированное проектирование и большие методы шкалы моделирования, такие как,

  • Моделируйте блоки, чтобы разделить иерархию на отдельные модели.

  • Варианты Подсистемы Блоки для моделирования и переключения между различными вариантами проекта.

  • Библиотеки для захвата алгоритмов для повторного использования в вариантных подсистемах.

  • Проекты для управления файлами, необходимыми для разработки системы.

Открытие проекта управления окна со степенью

Выполните следующую команду, чтобы создать и открыть рабочую копию файлов проекта для этого примера.

slexPowerWindowStart

Исследование проекта

После визуального осмотра проекта можно увидеть функции, используемые для организации примера. Этими функциями являются:

  • Папки

  • Классификация файлов

  • Ярлыки

Папки

Проект организован в следующие папки:

  • configureModel - файлы MATLAB ®, управляющие строением варианта основной системной модели

  • данные - Изображения, необходимые для проекта

  • hmi - Файлы, которые анимируют ответ окна со степенью

  • модель - Главная системная модель, модели контроллеров, модели для проверки контроллера и библиотеки, которые поддерживают эти модели

  • task - файлы MATLAB, которые моделируют модель для различных строений модели и генерируют отчеты о покрытии для контроллера

  • утилиты - файлы MATLAB для инициализации модели, для генерации входов электронных таблиц, для добавления данных в сгенерированную электронную таблицу и для управления окружением проекта при запуске и завершении работы

Классификация файлов

Файлы в проектах имеют различные классификации, видимые на панели « Метках». Каждая метка описывает определенную роль, которую файл вносит в тело проекта. В этот проект были добавлены новые классификации, включая:

  • Строение - Файлы, которые конфигурируют проект или модель.

  • PrjConfig - Файлы, которые конфигурируют проект, добавляя его файлы к пути при запуске и удаляя их при завершении работы

  • DesignConfig - Файлы, которые определяют, какое строение модели является активной в установленный момент времени

  • Проект - Главная системная модель и ее ссылочная модель управления

  • DesignSupport - Файлы, такие как библиотеки, данные и симуляция модели

  • Симуляция - Файлы, которые моделируют модель для определенного строения

  • Тест - Управление покрытием, взаимодействием управления и тестовыми моделями тестовой обвязки

  • Визуализация - Файлы, которые анимируют движение степени

Ярлыки

Ярлыки проекта используются для получения быстрого доступа к файлам проекта, которые используются чаще всего. Некоторые ярлыки содержат общие задачи, такие как добавление проекта к пути при запуске и удаление его при завершении работы. В сложение группы ярлыков проекта помогают организовать ярлыки. Новые группы ярлыков:

  • Интерактивная проверка - Файлы, используемые для интерактивной проверки контроллера

  • Главная модель - Файл для модели Simulink верхнего уровня

  • Покрытие модели - Файлы, используемые для покрытия модели контроллера

  • Симуляция - Файлы, используемые для симуляции строений варианта модели

Исследование моделей Simulink в проекте

Модели Simulink для этого проекта расположены в папке модели. Интересными моделями являются:

  • Основные Системные модели

  • Модели для проверки

Основные Системные модели

В этом примере в папке модели основная системная модель slexPowerWindowExample. Эта модель состоит из блоков switch водителя и пассажира, которые генерируют входные параметры для системы. Затем входы проходят через системную модель управления, которая проверяет состояния входов пассажира и драйвера. Блок системы управления также определяет, есть ли препятствие, блокирующее путь окна. Ссылочный контроллер формирует сигналы команды движения окна, посылаемые в активный вариант оконной системы. Выходные выходы оконной системы являются обратной связью с блоком системы управления.

Чтобы визуализировать результаты симуляции, Данные Моделирования Inspector (SDI) регистрируют выходные данные и Simulink 3D Animation™ анимирует движение окна.

Варианты модели

Основная системная модель в этом проекте использует Variant Subsystem блок, позволяющий выполнять несколько реализаций внутри подсистемы. Активная реализация может быть программно изменена перед симуляцией. В основной модели существует четыре блока Variant Subsystem каждый с вариантами выбора, которые могут быть программно изменены. Эти четыре варианта подсистем:

  • slexPowerWindowExample/driver_switch

  • slexPowerWindowExample/passenger_switch

  • slexPowerWindowExample/window_system

  • slexPowerWindowExample/power_window_control_system/detect_obstacle_endstop

Каждый выбор варианта связан с управлением вариантом. Выбор варианта активен, когда его управление вариантом вычисляет true.

Поскольку в основной модели существует четыре программно изменяемых блока Variant Subsystem, существуют файлы MATLAB для управления комбинациями вариантов выбора, чтобы создать строения варианта модели, которые находятся под DesignConfig классификация. Доступные строения варианта модели

  • Степень гибридной Системной модели оконного контроллера

  • Контроллер окна со степенью и подробная модель объекта управления

  • Степень контроллера окна с эффектами сбора данных

  • Степень контроллер окна с коммуникацией сети контроллера (CAN)

Степень гибридной Системной модели оконного контроллера

Этот вариант модели использует Stateflow ® и Simulink, чтобы смоделировать как дискретное реактивное поведение события, так и непрерывное поведение во времени. Он использует модель объекта управления низкого порядка, чтобы подтвердить поведение свертки и свертки. Можно симулировать это строение варианта с помощью SimHybridPlantLowOrder ярлык. Этот ярлык активирует только подсистему вариантов, соответствующую этому строению модели. Поскольку эта модель не учитывает степени эффекты, единственный результат, записанный в журнал, является положением. Simulation Data Inspector (SDI) отображает записанные позиционные данные.

Контроллер окна со степенью и подробная модель объекта управления

Этот вариант модели показывает более подробную модель объекта управления, которая включает эффекты степени в электрическом и механическом областях, используется, чтобы подтвердить, что сила, приложенная окном к захваченному объекту, никогда не превышает 100 Н. Этот вариант модели требует установки Simscape™ продуктов Multibody™ и Simscape Power 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. Можно симулировать это строение варианта на компьютере, работающем под управлением ОС Windows, используя the'SimCANCommunication| ярлык.

Модели для проверки

Чтобы протестировать конечный автомат, который управляет окна со степенью, можно запустить ярлыки проекта для проверки. Доступные ярлыки модели для проверки контроллера

  • InteractiveExample

  • CoverageExample

  • IncreaseCoverageExample

InteractiveExample

Этот ярлык модели открывает модель, slexPowerWindowCntlInteract. Эта модель содержит контроллер окна со степенью, который является конечным автоматом. Эта модель также содержит входы в контроллер, которые выбираются с помощью ручных блоков switch.

Контроллер окна со степенью имеет четыре внешних входа:

  • Вход пассажира

  • Вход драйвера

  • Конечные точки оконной системы координат

  • Препятствия присутствуют

Вход пассажира

Этот вход состоит из вектора с тремя элементами:

  • neutral: переключатель управления пассажирами не нажат

  • up: переключатель управления пассажирами генерирует сигнал «вверх»

  • down: переключатель управления пассажирами генерирует сигнал отключения

Вход драйвера

Этот вход состоит из вектора с тремя элементами:

  • neutral: переключатель управления драйвером не нажат

  • up: переключатель управления драйвером генерирует сигнал увеличения

  • down: переключатель управления драйвером генерирует сигнал опускания

Конечные точки оконной системы координат

Этот вход состоит из вектора с двумя элементами:

  • 0: окно свободно перемещается между верхней частью или снизу

  • 1: окно застряло сверху или снизу из-за физических ограничений

Препятствия присутствуют

Этот вход состоит из вектора с двумя элементами:

  • 0: окно свободно перемещается между верхней частью или снизу

  • 1: окно имеет препятствие в своей системе координат

Можно интерактивно протестировать контроллер, симулируя модель и выбрав необходимую комбинацию входов через ручные блоки switch. После выбора входов можно проверить состояние внутреннего контроллера и контроллер выход на основе желаемого результата для этого конкретного набора входов.

CoverageExample

Этот ярлык модели открывает модель, slexPowerWindowCntlCoverage. Эта модель содержит контроллер окна со степенью, который является конечным автоматом. Эта модель также содержит входы в контроллер, которые являются повторяющимися блоками последовательности.

Можно использовать инструмент Simulink Coverage(TM) Model Coverage, чтобы подтвердить дискретное управление событиями окна. Инструмент model coverage помогает определить степень, в которой тест модели осуществляет условные ветви контроллера. Это также помогает оценить, все ли переходы в дискретном управлении событиями приняты, учитывая тест, который мы запускаем. Он также оценивает, стали ли все предложения в условии, которое позволяет конкретный переход, истинными. Один переход может быть активирован несколькими предложениями, например, переход от аварийного обратного к нейтральному происходит, когда произошло или 100 такты или когда достигается конечная остановка.

IncreaseCoverageExample

Этот ярлык модели открывает модель, slexPowerWindowCntlCoverageUpdate. Эта модель содержит контроллер окна со степенью, который является конечным автоматом. Эта модель также содержит блок Из Электронной Таблицы, который предоставляет несколько наборов входов контроллеру. Эти входные наборы объединяются с набором из модели CoverageExample, чтобы использовать больше логики в контроллере окна со степенью.

Эти входные наборы:

  • Logged: Зарегистрирован из CoverageExample.

  • LoggedObstacleOffEndStopOn: Зарегистрирован из CoverageExample с возможностью столкновения с конечным стопом.

  • LoggedObstacleOnEndStopOff: Зарегистрирован из CoverageExample с препятствием в окне.

  • LoggedObstacleOnEndStopOn: Зарегистрирован из CoverageExample с препятствием в окне и способностью ударить об конечную остановку.

  • DriverLoggedPassengerNeutral: Зарегистрирован из CoverageExample только для драйвера. Пассажир не принимает никаких мер.

  • DriverDownPassengerNeutral: Опускание окна драйвером. Пассажир не принимает никаких мер.

  • DriverUpPassengerNeutral: Окно подъема драйвера. Пассажир не принимает никаких мер.

  • DriverAutoDownPassengerNeutral: Опускание окна драйвером на 1 секунду (автоматическое отключение). Пассажир не принимает никаких мер.

  • DriverAutoUpPassengerNeutral: Поднять окно драйвера на 1 секунду (автозапуск). Пассажир не принимает никаких мер.

  • PassengerAutoDownDriverNeutral: Окно опускания пассажиров на 1 секунду (авто-вниз). Драйвер не принимает никаких мер.

  • PassengerAutoUpDriverNeutral: Окно подъема пассажиров на 1 секунду (авто-вверх). Драйвер не принимает никаких мер.

Ярлык покрытия модели, GenerateHolledCoverage, использует несколько входных наборов с инструментом покрытия модели Simulink Coverage, чтобы подтвердить дискретное управление событиями окна и сгенерировать отчет о покрытии для нескольких входных наборов. Инструмент model coverage помогает определить степень, в которой тест модели осуществляет условные ветви контроллера. Это также помогает оценить, были ли учтены все переходы в дискретном управлении событиями, учитывая входные наборы, которые мы запускаем.

Похожие темы