Протестируйте и оптимизируйте физическую систему с помощью тестовой последовательности, тестовой обвязки и менеджера по Тесту.
Этот пример демонстрирует, как протестировать физическую систему, и как оптимизировать параметр с помощью тестовой обвязки, тестовой последовательности и менеджера по тесту. Пример использует уровень системы тепловая модель проектора, который включает Simscape® тепловые блоки. Запустите следующее, чтобы установить пути и имена для примера.
Model = 'sltestProjectorFanSpeedExample'; Harness = 'FanSpeedTestHarness'; Path = fullfile(matlabroot,'toolbox','simulinktest','simulinktestdemos'); TestSuite = 'sltestProjectorFanSpeedTestSuite.mldatx'; open_system(Model);
Этот тест демонстрирует развертку через несколько скоростей вентилятора, чтобы определить оптимальное значение. Короче говоря, оптимальная скорость вентилятора приводит к самому быстрому ответу, не повреждая систему. Подробно, оптимальная скорость вентилятора:
Препятствует тому, чтобы система превысила заданную максимальную температуру.
Минимизирует время для системы, чтобы достигнуть температуры, при которой лампа излучает видимый свет.
Документ sltestProjectorFanSpeedExampleRequirements.txt
получает эти подробные требования и процедуру тестирования. Можно найти документ в папке заданным Path
выше.
Специфичные для теста образцовые элементы находятся в тестовой обвязке, сохраняя основную модель свободной от ненужных блоков, подходящих для генерации кода и подходящих для интеграции с другими моделями.
Откройте менеджера по Тесту, чтобы просмотреть тестовый набор, управляющий разверткой параметра. Из меню нажимают Analysis> Test Manager. На панели инструментов выберите Open и откройте тестовый набор, расположенный на пути в качестве примера.
Можно также войти
open(fullfile(Path,TestSuite))
Тест исследует переходные и установившиеся тепловые характеристики системы. Тестовая последовательность инициализирует систему к температуре окружающей среды, затем приводит в действие лампу проектора. Когда система достигает установившегося условия, лампа выключает. Этот тест моделируется в тестовой обвязке с помощью блока Test Sequence. Запустите следующее, чтобы открыть тестовую обвязку:
sltest.harness.open(Model,Harness);
Тестовый набор содержит ссылки на документ требований. Можно просмотреть ссылку требований путем открытия тестового набора в Тестовом Браузере и щелчка по ссылкам в разделе Requirements.
Дважды кликните блок Test Sequence, чтобы открыть тестовый редактор последовательности.
T0out
и сигналы T0in
хранят начальную температуру проектора на каждом тестовом шаге.
PowerOnTime
хранит время симуляции, когда сигнал лампы активируется. Это упрощает последующий анализ данных.
Условие перехода обнаруживает установившееся условие. В установившемся системное изменение температуры является небольшой частью (Threshold)
различия между текущей температурой проектора и начальной температурой проектора на каждом шаге. Это условие должно содержать в течение минимального времени DurationLimit
, в этом случае 10 секунд.
Коллбэки предварительной нагрузки содержат команду, чтобы установить скорость вентилятора для каждого теста под тестовым набором Fan Speed Parametric Study
. Переопределения параметра содержат команду, чтобы повторно вычислить поток воздуха вентилятора от скорости вентилятора, и затем заменить параметр тестовой обвязки. Можно просмотреть эти команды в разделе Callbacks и Parameter Overrides каждого теста.
В Тестовом Браузере подсветите Скорость вентилятора Параметрическое Исследование и нажмите Run. Когда симуляция тестового набора завершится, откройте результаты для каждого теста и выберите ProjectorTemp
. Просмотрите результаты в менеджере по Тесту.
С менеджером по Тесту можно экспортировать данные для последующей обработки. В панели Результатов и Артефактов менеджера по Тесту щелкните правой кнопкой по Sim Output для каждого теста и выберите Export.
Этот пример включает экспортированные данные в четыре файла MAT, расположенные в папке, заданной Path
:
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
располагает температуру, и включите данные из вывода для каждого выполнения. Можно открыть файл в местоположении, заданном Path
, чтобы видеть детали скрипта.
ArrangeProjectorData
Скрипт PlotProjectorThermalResponse.m
строит тепловой ответ проектора после лампы, активируется для каждой из скоростей вентилятора. Можно открыть файл в местоположении, заданном Path
, чтобы видеть детали скрипта.
PlotProjectorThermalResponse
Результаты показывают, что, в то время как самая высокая скорость вентилятора приводит к самой низкой максимальной температуре, также требуется самое долгое время, чтобы достигнуть температуры активации лампы. Самые низкие результаты скорости вентилятора в самой быстрой активации лампы, но система превышает максимальную заданную температуру значительным полем.
Скорость вентилятора = 1300 сохраняет систему под максимальной температурной спецификацией, и система также достигает температуры активации лампы приблизительно 3 секунды быстрее, чем с самой высокой скоростью вентилятора.
close_system(Model,0);
clear Model; clear Harness; close(figure(1));