Тестирование и оптимизация физической системы с использованием тестовой последовательности, тестового жгута и менеджера тестирования. Авторское право 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)
В ходе испытания исследуются переходные и стационарные тепловые характеристики системы. Последовательность испытаний приводит систему к температуре окружающей среды, а затем включает лампу проектора. Когда система находится в установившемся состоянии, лампа отключается. Этот тест моделируется в тестовом жгуте с использованием блока тестовой последовательности. Выполните следующие действия, чтобы открыть тестовый электрический жгут:
sltest.harness.open(Model,Harness);

Набор тестов содержит ссылки на документ требований. Ссылку на требования можно просмотреть, открыв набор тестов в обозревателе тестов и щелкнув ссылки в разделе Требования.
Дважды щелкните блок тестовой последовательности, чтобы открыть редактор тестовой последовательности.

T0out и T0in сигналы сохраняют начальную температуру проектора на каждом этапе испытания.
PowerOnTime сохраняет время моделирования при активации сигнала лампы. Это облегчает последующий анализ данных.
Состояние перехода определяет состояние устойчивого состояния. В установившемся состоянии изменение температуры системы является небольшой долей (Threshold) разности между текущей температурой проектора и начальной температурой проектора на каждом шаге. Это условие должно сохраняться в течение минимального времени DurationLimit, в данном случае 10 секунд.
Можно связать шаги в блоках последовательности тестирования с предварительно заполненными потребностями в документе потребности. sltestProjectorFanSpeedExampleRequirements.slreqx.
Обратные вызовы перед загрузкой содержат команду для установки скорости вентилятора для каждого тестового случая в соответствии с Fan Speed Parametric Study набор тестов. Переопределения параметров содержат команду для пересчета воздушного потока вентилятора из скорости вентилятора, а затем переопределения параметра тестового электрического жгута. Эти команды можно просмотреть в разделе Callbacks and Parameter Overrides каждого тестового случая.

В обозревателе тестов выберите «Параметрическое исследование скорости вентилятора» и нажмите «Выполнить». После завершения моделирования набора тестов откройте результаты для каждого теста и выберите ProjectorTemp. Просмотрите результаты в диспетчере тестов.

Менеджер тестирования позволяет экспортировать данные для последующей обработки. На панели Результаты и артефакты Диспетчера тестов щелкните правой кнопкой мыши Sim Output для каждого тестового случая и выберите Экспорт.
Этот пример включает экспортированные данные в четырех файлах MAT, расположенных в папке примера:
ProjectorTempFanSpeed800.mat ProjectorTempFanSpeed1300.mat ProjectorTempFanSpeed1800.mat ProjectorTempFanSpeed2300.mat
Поскольку переходы тестовой последовательности выполняются при достижении системой стационарного состояния, а частота вращения вентилятора изменяет отклик системы, лампа активируется в разное время моделирования для каждого из четырех тестовых случаев. Упрощение графического анализа результатов за счет одновременной печати каждого отклика с включением лампы.
Извлеките данные реакции включения лампы и постройте график реакции системы для четырех скоростей вентилятора. Оцените результаты по этим критериям:
Температура не должна превышать 65 ° C.
Лампа излучает видимый свет выше 45 ° C. Минимизируйте время достижения этой температуры.
Загрузите результаты. В командной строке введите
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));
Менеджер тестирования | Последовательность испытаний