Тестовые обвязки обеспечивают среду разработки и тестовую среду, которая оставляет основной проект модели неповрежденным. Можно протестировать функциональный блок модели в изоляции, не изменяя основную модель. Этот пример демонстрирует совершенствование и тестирование подсистемы контроллера с помощью тестовой обвязки. Основная модель является моделью объекта управления контроллера кондиционера / модуль теплового насоса. Контроллер должен действовать согласно нескольким простым требованиям.
Доступ к модели. Войти
cd(fullfile(docroot,'toolbox','sltest','examples'))
Скопируйте этот файл модели и вспомогательные файлы к перезаписываемому местоположению на MATLAB® path:
sltestHeatpumpExample.slx sltestHeatpumpBusPostLoadFcn.mat PumpDirection.m
Откройте модель.
open_system('sltestHeatpumpExample')
В модели в качестве примера:
Контроллер принимает комнатную температуру и входные параметры установленной температуры.
Контроллер выход является шиной с сигналами, управляющими вентилятором, тепловым насосом и направлением теплового насоса (тепло или холодный).
Объект принимает шину управления. Тепловой насос и сигналы вентилятора являются Boolean, и направление теплового насоса задано +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
Размер шага: 1
Выберите Interpret vector parameters as 1–D.
Соедините блоки Inport с входными параметрами Data Store Write.

В диалоговом окне Configuration Parameters, в панели Data Import/Export, выбирают Input и вводят uU существующая структура в базовом рабочем пространстве 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.