Тестовые обвязки обеспечивают окружение разработки и проверки, которая оставляет основной проект модели нетронутым. Можно тестировать функциональный модуль вашей модели изолированно, не изменяя основную модель. Этот пример демонстрирует уточнение и проверку подсистемы контроллера с помощью тестовой обвязки. Основная модель является моделью контроллера-завода модуля кондиционирования/теплового насоса. Контроллер должен работать в соответствии с несколькими простыми требованиями.
Получите доступ к модели. Войти
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:
Name: 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
Sample time: 1
Выберите Interpret vector parameters as 1–D.
Соедините Inport блоки с входами Data Store Write.

В диалоговом окне Параметров конфигурации на панели Data Import/Export выберите Input и введите u. u - существующая структура в базовом рабочем пространстве MATLAB.
На панели Solver задайте Stop time 3600.
Откройте возможности в тестовой обвязке и измените размещение, чтобы отобразить три графика.
Нажмите Run для моделирования.
Наблюдайте за контроллер выходом. fan_cmd является 1 во время условия МГ, где |Troom - Tset| < DeltaT_fan.
Это баг. fan_cmd должен равняться 0 при IDLE. The 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.