exponenta event banner

Проект управления окном питания

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

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

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

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

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

Использование разработки на основе модели и крупномасштабного моделирования

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

  • Блоки модели для разделения иерархии на отдельные модели.

  • Исполнительные подсистемы блокируются для моделирования и переключения между различными вариантами конструкции.

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

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

Открытие проекта управления окном питания

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

slexPowerWindowStart

Изучение проекта

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

  • Папки

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

  • Короткие пути

Папки

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

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

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

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

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

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

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

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

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

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

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

  • Design Config - файлы, определяющие, какая конфигурация модели активна в данный момент времени.

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

  • Design Support - такие файлы, как библиотеки, данные и моделирование модели;

  • Моделирование - файлы, моделирующие модель для определенной конфигурации

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

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

Короткие пути

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

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

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

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

  • Моделирование - файлы, используемые для моделирования конфигураций вариантов модели

Изучение моделей Simulink в проекте

Модели Simulink для этого проекта находятся в папке модели. Представляющими интерес моделями являются:

  • Модель основной системы

  • Модели для тестирования

Модель основной системы

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

Чтобы визуализировать результаты моделирования, инспектор данных моделирования (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 ярлык. Этот ярлык активирует только подсистему вариантов, соответствующую данной конфигурации модели. Поскольку эта модель не учитывает эффекты мощности, единственным зарегистрированным выходом является позиция. Инспектор данных моделирования (SDI) отображает записанные данные позиции.

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

Этот вариант модели показывает более детальную модель установки, которая включает силовые эффекты в электрической и механической областях, используется для проверки того, что сила, оказываемая окном на захваченный объект, никогда не превышает 100 N. Этот вариант модели требует установки продуктов 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 с помощью ярлыка 'SimCANCommunication |.

Модели для тестирования

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

  • InteractiveExample

  • CoverageExample

  • IncreaseCoverageExample

InteractiveExample

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

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

  • Пассажирский ввод

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

  • Конечные окошки оконной рамы

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

Пассажирский ввод

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

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

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

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

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

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

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

  • upУправляющий переключатель драйвера генерирует сигнал «вверх»

  • downУправляющий переключатель драйвера генерирует сигнал «вниз»

Конечные окошки оконной рамы

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

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

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

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

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

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

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

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

CoverageExample

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

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

IncreaseCoverageExample

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

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

  • Logged: Выполнен вход из CovereyExample.

  • LoggedObstacleOffEndStopOn: Выполнен вход из CovereyExample с возможностью перехода к конечной точке.

  • LoggedObstacleOnEndStopOff: Вход из CovereyExample с препятствием в окне.

  • LoggedObstacleOnEndStopOn: Выполнен вход из CovereyExample с препятствием в окне и способностью к попаданию в конечный стоп.

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

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

  • DriverUpPassengerNeutral: Поднимающее окно водителя. Пассажир не предпринимает никаких действий.

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

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

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

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

Ярлык покрытия модели GenerateCoverage использует несколько наборов ввода с помощью инструмента Simulink Coverage Model Coverage для проверки дискретного управления событиями окна и создания отчета о покрытии для нескольких наборов ввода. Инструмент «Покрытие модели» помогает определить степень, в которой в тестовом примере модели выполняются условные ветви контроллера. Это также помогает оценить, были ли учтены все переходы в дискретном управлении событиями, учитывая входные наборы, которые мы выполняем.

Связанные темы