Узнайте о функциональном поведении модели в качестве примера.
Узнайте о роли тестовой обвязки в качестве примера и ее компонентов.
Запустите тесты симуляции на модели.
Способность открыться и изменить модели Simulink® и подсистемы.
Поймите подсистемы и как посмотреть детали подсистемы.
Поймите модели, на которые ссылаются, и как посмотреть образцовые детали, на которые ссылаются.
Способность установить образцовые параметры конфигурации.
Прежде чем вы будете использовать каждый файл модели в качестве примера, будете помещать копию в перезаписываемое местоположение и добавлять его в ваш путь MATLAB.
Файл модели rtwdemo_throttlecntrl
Файл модели rtwdemo_throttlecntrl_testharness
Этот пример использует простое, но функционально завершитесь, модель в качестве примера контроллера дросселя. Особенности модели избыточные алгоритмы управления. Модель подсвечивает стандартную образцовую структуру и набор базисных блоков в проекте алгоритма.
Откройте rtwdemo_throttlecntrl
и сохраните копию как throttlecntrl
в перезаписываемом месте на вашем пути MATLAB.
Эта модель использует программное обеспечение Stateflow®.
Верхний уровень модели состоит из следующих элементов:
Подсистемы | PI_ctrl_1 PI_ctrl_2 Define_Throt_Param Pos_Command_Arbitration |
Вход верхнего уровня | pos_rqst fbk_1 fbk_2 |
Вывод верхнего уровня | pos_cmd_one pos_cmd_two ThrotComm1 |
Маршрутизация сигнала | |
Не используйте блоки, которые изменяют значение сигнала, такого как Сумма и Интегратор |
Размещение использует основной архитектурный стиль для моделей:
Разделение вычислений от маршрутизации сигнала (строки и шины)
Разделение в подсистемы
Можно применить этот стиль к широкому спектру моделей.
Исследуйте две из подсистем в топ-модели.
Если не уже открытый, открытый throttlecntrl
.
Две подсистемы в топ-модели представляют контроллеры пропорционального интеграла (PI), PI_ctrl_1
и PI_ctrl_2
. На данном этапе, эти идентичные подсистемы, используйте идентичные данные.
Откройте подсистему PI_ctrl_1
.
Контроллеры PI в модели от библиотеки, группы связанных блоков или моделей для повторного использования. Библиотеки предоставляют один из двух методов для включения и многократного использования моделей. Второй метод, образцовая ссылка, описан в Тестовой среде Симуляции. Вы не можете отредактировать блок, который вы добавляете в модель от библиотеки. Отредактируйте блок в библиотеке так, чтобы экземпляры блока в различных моделях остались сопоставимыми.
Откройте подсистему Pos_Command_Arbitration
. Эта диаграмма Stateflow выполняет основную проверку ошибок на двух сигналах команды. Если сигналы команды слишком далеко друг от друга, схема Stateflow устанавливает вывод на положение fail_safe
.
Закройте throttlecntrl
.
Чтобы протестировать алгоритм регулятора дросселя, включите его в test harness. Тестовая обвязка является моделью, которая оценивает алгоритм управления и предлагает следующие преимущества:
Разделяет тестовые данные от алгоритма управления.
Разделяет объект или модель обратной связи от алгоритма управления.
Обеспечивает допускающую повторное использование среду для нескольких версий алгоритма управления.
Модель тестовой обвязки для этого примера реализует общую тестовую среду симуляции, состоящую из следующих частей:
Модуль под тестом
Источник тестового вектора
Оценка и журналирование
Объект или система с обратной связью
Масштабирование ввода и вывода
Исследуйте тестовую среду симуляции.
Откройте модель rtwdemo_throttlecntrl_testharness
тестовой обвязки и сохраните копию как throttlecntrl_testharness
в перезаписываемом месте на вашем пути MATLAB.
Настройте свою модель throttlecntrl
как алгоритм управления тестовой обвязки.
Откройте блок Unit_Under_Test
и просмотрите алгоритм управления.
Просмотрите параметры модели - ссылки путем щелчка правой кнопкой по блоку Unit_Under_Test
и выбора Block Parameters (ModelReference).
rtwdemo_throttlecntrl
появляется как имя модели, на которую ссылаются.
Измените значение Model name к throttlecntrl
.
Обновите диаграмму модели тестовой обвязки путем нажатия на Simulation> Update Diagram.
Алгоритмом управления является unit under test, как обозначено под названием блок Model, Unit_Under_Test
.
Блок Model предоставляет метод для многократного использования компонентов. От топ-модели это позволяет вам ссылаться на другие модели (прямо или косвенно) как на compiled functions. По умолчанию программное обеспечение Simulink перекомпилировало модель, когда модели, на которые ссылаются, изменяются. Скомпилированные функции имеют следующие преимущества перед библиотеками:
Время симуляции быстрее для больших моделей.
Можно непосредственно моделировать скомпилированные функции.
Симуляция требует меньшей памяти. Только одна копия скомпилированной модели находится в памяти, даже когда на модель ссылаются многократно.
Откройте test vector source, реализованный в этой тестовой обвязке как подсистема Test_Vectors
.
Подсистема использует блок Signal Builder для источника тестового вектора. Блок имеет данные, которые управляют симуляцией (PosRequest
) и обеспечивают ожидаемые результаты, используемые подсистемой Verification
. Эта тестовая обвязка в качестве примера использует только один набор тестовых данных. Как правило, создайте тестовый набор, который полностью осуществляет систему.
Откройте подсистему evaluation and logging, реализованную в этой тестовой обвязке как подсистема Verification
.
Тестовая обвязка сравнивает результаты симуляции алгоритма управления с golden data — результаты испытаний, которые показывают желаемое поведение для алгоритма управления, как сертифицируется экспертом. В подсистеме Verification
блок Assertion сравнивает моделируемое положение значения дросселя от объекта против золотого значения от тестовой обвязки. Если различие между двумя сигналами больше, чем 5%, тестовые сбои и блок Assertion останавливают симуляцию.
Также можно оценить данные моделирования после того, как симуляция завершит выполнение. Выполните оценку или со скриптами MATLAB® или со сторонними программами. Оценка поствыполнения обеспечивает большую гибкость в анализе данных. Однако это требует ожидания, пока выполнение не завершено. Объединение этих двух методов может обеспечить очень гибкую и эффективную тестовую среду.
Откройте plant or feedback system, реализованный в этой тестовой обвязке как подсистема Plant
.
Подсистема Plant
моделирует динамику дросселя с передаточной функцией в канонической форме. Можно создать модели объекта управления к переменным уровням точности. Распространено использовать различные модели объекта управления на различных этапах тестирования.
Откройте подсистемы input and output scaling, реализованные в этой тестовой обвязке как Input_Signal_Scaling
и Output_Signal_Scaling
.
Подсистемы, которые масштабируют ввод и вывод, выполняют следующие первичные функции:
Выберите входные сигналы, чтобы направить к модулю под тестом.
Выберите выходные сигналы, чтобы направить к объекту.
Повторно масштабируйте сигналы между техническими модулями и модулями, которые перезаписываемы для модуля под тестом.
Обработайте переходы уровня между объектом и модулем под тестом.
Сохраните и закройте throttlecntrl_testharness
.
Проверяйте, что ваша рабочая папка установлена в перезаписываемую папку, такую как папка, в которую вы поместили копии файлов модели в качестве примера.
Откройте свою копию модели тестовой обвязки, throttlecntrl_testharness
.
Запустите симуляцию модели тестовой обвязки. Когда симуляция завершена, следующие результаты появляются.
График нижнего правого угла показывает различие между ожидаемым (золотым) положением дросселя и положением дросселя, что объект вычисляет. Если различие между этими двумя значениями больше, чем ±0.05, остановки симуляции.
Сохраните и закройте контроллер дросселя и модели тестовой обвязки.
Архитектура базовой модели разделяет вычисления от маршрутизации сигнала и делит модель в подсистемы
Две опции для повторного использования модели включают библиотеки блоков и образцовую ссылку.
Если вы представляете свой алгоритм управления в тестовой обвязке как блок Model, задаете имя модели алгоритма управления в диалоговом окне Model Reference Parameters.
Тестовая обвязка является моделью, которая оценивает алгоритм управления. Как правило, обвязка состоит из модуля под тестом, источником тестового вектора, оценкой и журналированием, объектом или системой с обратной связью и компонентами масштабирования ввода и вывода.
Модуль под тестом является протестированным алгоритмом управления.
Источник тестового вектора обеспечивает данные, которые управляют симуляцией, которая генерирует результаты, используемые для верификации.
Во время верификации тестовая обвязка сравнивает результаты симуляции алгоритма управления с золотыми данными и регистрирует результаты.
Компонент объекта или обратной связи тестовой обвязки моделирует среду, которой управляют.
При разработке тестовой обвязки,
Масштабируйте компоненты ввода и вывода.
Выберите входные сигналы, чтобы направить к модулю под тестом.
Выберите выходные сигналы, чтобы направить к объекту.
Повторно масштабируйте сигналы между техническими модулями и модулями, которые перезаписываемы для модуля под тестом.
Обработайте переходы уровня между объектом и модулем под тестом.
Перед рабочей симуляцией или завершающейся верификацией, рассмотрите проверку модели с Model Advisor.