Узнайте о функциональном поведении модели в качестве примера.
Узнайте о роли тестовой обвязки в качестве примера и ее компонентов.
Запустите тесты симуляции на модели.
Способность открыться и изменить модели 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
подсистема.
ПИ-контроллеры в модели от библиотеки, группы связанных блоков или моделей для повторного использования. Библиотеки предоставляют один из двух методов для включения и многократного использования моделей. Второй метод, ссылка модели, описан в Тестовой среде Симуляции. Вы не можете отредактировать блок, который вы добавляете в модель от библиотеки. Отредактируйте блок в библиотеке так, чтобы экземпляры блока в различных моделях остались сопоставимыми.
Откройте 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.