Тестовые обвязки обеспечивают среду разработки и тестовую среду, которая оставляет основной проект модели неповрежденным. Можно протестировать функциональный блок модели в изоляции, не изменяя основную модель. Этот пример демонстрирует совершенствование и тестирование подсистемы контроллера с помощью тестовой обвязки. Основная модель является моделью объекта управления контроллера кондиционера / модуль теплового насоса. Контроллер должен действовать согласно нескольким простым требованиям.
Доступ к модели. Войти
cd(fullfile(docroot,'toolbox','sltest','examples'))
Скопируйте этот файл модели и вспомогательные файлы к перезаписываемому местоположению на пути MATLAB®:
sltestHeatpumpExample.slx sltestHeatpumpBusPostLoadFcn.mat PumpDirection.m
Откройте модель.
open_system('sltestHeatpumpExample')
В модели в качестве примера:
Контроллер принимает комнатную температуру и входные параметры установленной температуры.
Контроллер вывел, шина с сигналами, управляющими вентилятором, тепловым насосом и направлением теплового насоса (тепло или холодный).
Объект принимает шину управления. Тепловой насос и сигналы вентилятора являются булевской переменной, и направление теплового насоса задано +1
для охлаждения и -1
для нагревания.
Тест покрывает четыре температурных условия. Каждое условие соответствует одному операционному состоянию с вентилятором, насосом, и направление насоса сигнализирует о выходных параметрах.
Температурное условие | Системное состояние | Команда вентилятора | Накачайте команду | Накачайте направление |
---|---|---|---|---|
|Troom - Tset| < DeltaT_fan | неактивный | 0
| 0
| 0
|
DeltaT_fan <= |Troom - Tset| < DeltaT_pump | вентилятор только | 1
| 0
| 0
|
|Troom - Tset| >= DeltaT_pump and Tset < Troom | охлаждение | 1
| 1
| -1
|
|Troom - Tset| >= DeltaT_pump and Tset > Troom | нагревание | 1
| 1
| 1
|
Щелкните правой кнопкой по Controller
подсистема и выбирает Test Harness > Create for ‘Controller’.
Установите свойства обвязки:
Во вкладке Basic Properties:
Имя: devel_harness1
Очистите Save test harness externally
Sources and Sinks: None и Scope
Очистите Add separate assessment block
Выберите Open harness after creation
Нажмите OK, чтобы создать тестовую обвязку.
В тестовой обвязке дважды кликните Controller
открыть подсистему.
Соедините график с блоками Inport.
В тестовой обвязке нажмите кнопку Save, чтобы сохранить тестовую обвязку и модель.
Перейдите к верхнему уровню devel_harness1
.
Создайте тестовое воздействие для обвязки с постоянным Tset
и изменяющийся во времени Troom
. Соедините блок Constant с Tset
введите и установите значение к 75
.
Добавьте блок Sine Wave в модель тестовой обвязки, чтобы симулировать температурный сигнал. Соедините блок Sine Wave с входом Troom_in
подсистемы преобразования.
Дважды кликните блок Sine Wave и установите параметры:
Amplitude: 15
Bias: 75
Frequency: 2*pi/3600
Phase (rad): 0
'SampleTime' : 1
Выберите Interpret vector parameters as 1–D.
Соедините блоки Inport с входными параметрами Data Store Write.
В диалоговом окне Configuration Parameters, в панели Data Import/Export, выбирают Input и вводят u
U
существующая структура в базовом рабочем пространстве MATLAB.
В панели Solver, набор Stop time к 3600
.
Откройте осциллограф в тестовой обвязке и измените размещение, чтобы показать три графика.
Нажмите Run, чтобы симулировать.
Заметьте, что контроллер вывел. fan_cmd
1
во время НЕАКТИВНОГО условия, где |Troom - Tset| < DeltaT_fan
.
Это - ошибка. fan_cmd
должен равняться 0
в IDLE
. fan_cmd
управление выход должно быть изменено для IDLE
.
В модели тестовой обвязки откройте Controller
подсистема.
Открытый controller_chart
.
В IDLE
состояние, fan_cmd
набор должен возвратить 1
. Измените fan_cmd
возвратить 0
. IDLE
теперь:
IDLE entry: fan_cmd = 0; pump_cmd = 0; pump_dir = 0;
Симулируйте модель тестовой обвязки снова и наблюдайте выходные сигналы.
fan_cmd
теперь удовлетворяет требование, чтобы равняться 0
в IDLE
.