Тестируйте и оптимизируйте физическую систему с помощью тестовой последовательности, тестовой обвязки и менеджера тестирования. Копирайт 2015 The MathWorks, Inc.
Этот пример демонстрирует, как протестировать физическую систему и как оптимизировать параметр с помощью тестовой обвязки, тестовой последовательности и менеджера тестирования. В примере используется системная тепловая модель проектора, которая включает тепловые блоки Simscape ®. Выполните следующее, чтобы задать необходимые переменные для примера.
Model = 'sltestProjectorFanSpeedExample'; Harness = 'FanSpeedTestHarness'; TestSuite = 'sltestProjectorFanSpeedTestSuite.mldatx'; open_system(Model);
Этот тест демонстрирует прохождение нескольких скоростей вращения вентилятора, чтобы определить оптимальное значение. Короче говоря, оптимальная скорость вентилятора приводит к самой быстрой реакции, не повредив систему. В деталях оптимальная скорость вентилятора:
Препятствует превышению системой заданной максимальной температуры.
Минимизирует время достижения системой температуры, при которой лампа излучает видимый свет.
Документ sltestProjectorFanSpeedExampleRequirements.slreqx
описывает эти подробные требования и процедуру тестирования.
Тестовые элементы модели находятся в тестовой обвязке, сохраняя основные модели свободными от ненужных блоков, подходящими для генерации кода и подходящими для интегрирования с другими моделями.
Откройте Test Manager, чтобы просмотреть тестовый набор, управляющий сдвигом параметра. Из модели откройте Simulink Test
приложение и нажмите на Simulink Test Manager
. Откройте файл, на который ссылаются TestSuite
. Можно также ввести
open(TestSuite)
Тест исследует переходные и установившиеся тепловые характеристики системы. Тестовая последовательность инициализирует систему до температуры окружающей среды, затем включает лампу проектора. Когда система достигает установившегося условия, лампа переключается. Этот тест моделируется в тестовую обвязку с использованием блока Test Sequence. Чтобы открыть тестовую обвязку, выполните следующее:
sltest.harness.open(Model,Harness);
Тестовый набор содержит ссылки на документ требований. Для просмотра ссылки на требования откройте тестовый набор в браузере тестов и щелкните по ссылкам в разделе «Требования».
Дважды кликните блок Test Sequence, чтобы открыть редактор тестовых последовательностей.
The T0out
и T0in
сигналы сохраняют начальную температуру проектора на каждом этапе испытания.
PowerOnTime
сохраняет время симуляции при активации сигнала лампы. Это облегчает последующий анализ данных.
Условие перехода определяет установившееся состояние. В установившемся состоянии изменение температуры системы представляет собой небольшую долю (Threshold)
из различия между текущей температурой проектора и начальной температурой проектора на каждом шаге. Это условие должно удерживаться в течение минимального времени DurationLimit
, в данном случае 10 секунд.
Можно связать шаги в блоках тестовой последовательности с предварительно заполненными требованиями в документе требований sltestProjectorFanSpeedExampleRequirements.slreqx
.
Предзагрузочные коллбэки содержат команду задать скорость вентилятора для каждого теста под Fan Speed Parametric Study
тестовый набор. Переопределения параметров содержат команду перерасчета воздушного потока вентилятора из скорости вентилятора, а затем переопределения параметра тестовой обвязки. Можно просмотреть эти команды в разделах «Коллбэки» и «Параметры» каждого теста.
В браузере тестов выделите Fan Speed Parametric Study и нажатие кнопки Запуска. Когда симуляция тестового набора завершится, откройте результаты для каждого теста и выберите ProjectorTemp
. Просмотр результатов в Диспетчере тестов.
С помощью Диспетчера тестов можно экспортировать данные для постобработки. На панели Результаты и программные продукты Диспетчера тестов щелкните правой кнопкой мыши Выход SIM для каждого тестового примера и выберите Экспорт.
Этот пример включает экспортированные данные в четырех файлах MAT, расположенных в папке примера:
ProjectorTempFanSpeed800.mat ProjectorTempFanSpeed1300.mat ProjectorTempFanSpeed1800.mat ProjectorTempFanSpeed2300.mat
Поскольку переходы тестовой последовательности выполняются, когда система достигает установившегося состояния, и скорость вентилятора изменяет отклик системы, лампа активируется в разное времена симуляции для каждого из четырёх тестов. Упростите графический анализ результатов путем построения графика каждого отклика с включением лампы одновременно.
Извлеките данные отклика включения лампы и постройте график отклика системы для четырех скоростей вращения вентилятора. Оцените результаты по этим критериям:
Температура не должна превышать 65 ° C.
Лампа излучает видимый свет выше 45 ° С. Минимизируйте время достижения этой температуры.
Загрузите результаты. В командной строке введите
DataAt800 = load('ProjectorTempFanSpeed800.mat'); DataAt1300 = load('ProjectorTempFanSpeed1300.mat'); DataAt1800 = load('ProjectorTempFanSpeed1800.mat'); DataAt2300 = load('ProjectorTempFanSpeed2300.mat');
Область скрипта ArrangeProjectorData.m
упорядочивает температуру и степень по данным из выходных данных для каждого запуска.
ArrangeProjectorData
Область скрипта PlotProjectorThermalResponse.m
строит график тепловой характеристики проектора после включения лампы для каждой скорости вращения вентилятора.
PlotProjectorThermalResponse
Результаты показывают, что хотя самая высокая скорость вентилятора приводит к самой низкой максимальной температуре, это также занимает самое долгое время, чтобы достичь температуры активации лампы. Самая низкая скорость вентилятора приводит к самой быстрой активации лампы, но система превышает максимальную заданную температуру со значительным запасом.
Скорость вентилятора = 1300 поддерживает максимальную температуру системы, и система также достигает температуры активации лампы приблизительно на 3 секунды быстрее, чем с самой высокой скоростью вращения вентилятора.
close_system(Model,0);
clear Model; clear Harness; clear TestSuite; close(figure(1));
Менеджер тестирования | Test Sequence