Узнайте о функциональном поведении примера модели.
Узнайте о роли примера тестовой обвязки и его компонентов.
Запустите симуляционные тесты на модели.
Возможность открытия и изменения 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 |
Маршрутизация сигналов | |
Опускайте блоки, которые изменяют значение сигнала, такие как Sum и Integrator |
В размещение используется базовый архитектурный стиль для моделей:
Отделение вычислений от маршрутизации сигналов (линии и шины)
Разбиение на подсистемы
Можно применить этот стиль к широкой области значений моделей.
Исследуйте две подсистемы в верхней модели.
Если еще не открыть, откройте throttlecntrl
.
Две подсистемы в верхней модели представляют пропорционально-интегральные (PI) контроллеры, PI_ctrl_1
и PI_ctrl_2
. На данном этапе эти идентичные подсистемы используют идентичные данные.
Откройте PI_ctrl_1
подсистема.
ПИ-контроллеры в модели - из библиотеки, группы связанных блоков или моделей для повторного использования. Библиотеки обеспечивают один из двух методов включения и повторного использования моделей. Второй метод, ссылка на модель, описан в Simulation Test Environment. Вы не можете редактировать блок, который вы добавляете в модель из библиотеки. Отредактируйте блок в библиотеке так, чтобы образцы блока в разных моделях оставались непротиворечивыми.
Откройте 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
.
A тестовой обвязки сравнивает результаты симуляции алгоритма управления с результатами golden data-теста, которые показывают желаемое поведение алгоритма управления, сертифицированного экспертом. В Verification
подсистема, блок Assertion сравнивает смоделированное положение значения дросселя от объекта с золотым значением от тестовой обвязки. Если различие между этими двумя сигналами больше 5%, тест прекращает работать, и блок Assertion останавливает симуляцию.
Кроме того, можно вычислить данные моделирования после выполнения симуляции. Выполните оценку с любым из MATLAB® скрипты или сторонние программы. Оценка после поствыполнения обеспечивает большую гибкость в анализе данных. Однако это требует ожидания до завершения выполнения. Объединение двух методов может обеспечить высокогибкое и эффективное тестовое окружение.
Откройте plant or feedback system, реализованный в этой тестовой обвязке как Plant
подсистема.
The Plant
подсистема моделирует динамику дросселя с передаточной функцией в каноническом виде. Можно создавать модели объекта управления с различными уровнями точности. Часто использовать различные модели объекта управления на разных этапах проверки.
Откройте подсистемы input and output scaling, реализованные в этой тестовой обвязке как Input_Signal_Scaling
и Output_Signal_Scaling
.
Подсистемы, которые масштабируют вход и выход, выполняют следующие первичные функции:
Выберите входные сигналы для маршрутизации к тестируемому модулю.
Выберите выходные сигналы для маршрутизации на объект.
Переформулируйте сигналы между инженерными модулями и модулями, которые могут быть записаны для тестируемого модуля.
Переходы скорости указателя между объектом и тестируемым модулем.
Сохраните и закройте throttlecntrl_testharness
.
Проверьте, что ваша рабочая папка задана в папке с возможностью записи, такой как папка, в которую вы поместили копии файлов модели примера.
Откройте копию модели тестовой обвязки, throttlecntrl_testharness
.
Запустите тестовую обвязку симуляции модели. Когда симуляция завершена, появляются следующие результаты.
Правый нижний график показывает различие между ожидаемым (золотым) положением дросселя и положением дросселя, которое вычисляет объект. Если различие между этими двумя значениями больше, чем ± 0,05, симуляция останавливается.
Сохраните и закройте модели дросселя и тестовой обвязки.
Базовая архитектура модели отделяет вычисления от маршрутизации сигнала и разбивает модель на подсистемы
Две опции для повторного использования модели включают библиотеки блоков и ссылки на модели.
Если вы представляете свой алгоритм управления в тестовую обвязку как Model блок, задайте имя модели алгоритма управления в диалоговом окне Модели-ссылки Parameters.
Тестовая обвязка является моделью, которая оценивает алгоритм управления. Обычно обвязка состоит из тестируемого модуля, источника тестовых векторов, оценки и логгирования, объекта или системы обратной связи, а также входа и выхода компонентов масштабирования.
Тестируемым модулем является тестируемый алгоритм управления.
Источник тестового вектора предоставляет данные, которые управляют симуляцией, которая генерирует результаты, используемые для верификации.
Во время верификации тестовая обвязка сравнивает результаты симуляции алгоритма управления с золотыми данными и регистрирует результаты.
Объект или компонент обратной связи тестовой обвязки моделирует окружение, которым управляют.
При разработке тестовой обвязки,
Масштабируйте входные и выходные компоненты.
Выберите входные сигналы для маршрутизации к тестируемому модулю.
Выберите выходные сигналы для маршрутизации на объект.
Переформулируйте сигналы между инженерными модулями и модулями, которые могут быть записаны для тестируемого модуля.
Переходы скорости указателя между объектом и тестируемым модулем.
Прежде чем запускать симуляцию или завершать верификацию, рассмотрите проверку модели с помощью Model Advisor.