Протестируйте и оптимизируйте физическую систему с помощью тестовой последовательности, тестовой обвязки и менеджера по Тесту.
Этот пример демонстрирует, как протестировать физическую систему, и как оптимизировать параметр с помощью тестовой обвязки, тестовой последовательности и менеджера по тесту. Пример использует уровень системы тепловая модель проектора, который включает 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
testsuite. Переопределения параметра содержат команду, чтобы повторно вычислить поток воздуха вентилятора от скорости вентилятора, и затем заменить параметр тестовой обвязки. Можно просмотреть эти команды в разделе 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));