完善、测试和调试子系统
此示例显示如何使用测试框架来改进和测试控制器子系统。测试框架提供了一个开发和测试环境,同时保持主模型设计完好无损。您可以单独测试模型的功能单元,而无需改变主模型。在示例中,主模型是空调/热泵机组的控制器工厂模型。控制器必须根据几个需求进行运行。
打开模型
sltestHeatpumpExample
在示例模型中:
控制器接受室温和指定温度的输入。
控制器输出是一条带有信号总线,可以控制风扇、热泵以及热泵的方向(加热或冷却)。
该工厂接受控制总线。热泵和风扇信号是布尔值,热泵方向以+1 表示冷却、-1 表示加热来指定。
温度条件状态
测试涵盖四种温度条件。每种条件对应一个运行状态,具有风扇、泵和泵方向信号输出。
为控制器创建框架
1.右键单击 Controller
子系统并选择测试框架 > 为 ‘Controller’ 创建。
2.在基本属性选项卡中设置框架属性:
姓名:
devel_harness1
清除在外部保存测试框架
信源和信宿:
None
和Scope
清除添加单独的评估模块
选择创建后打开框架
3.单击“确定”创建框架。
检查并完善控制器
1.在测试框架中,双击 Controller 来打开子系统。
2.将图连接到 Inport 模块。
3.在测试框架中,点击保存以保存测试框架和模型。
添加测试输入并测试控制器
1.导航到 devel_harness1
的顶层。
2.使用常数 Tset
和随时间变化的 Troom
为框架创建测试输入。将 Constant 模块连接到 Tset
输入并将值设置为 75
。
3.框架模型中添加一个 Sine Wave 模块来仿真温度信号。将 Sine Wave 模块连接到转换子系统输入 Troom_in
。
4.双击 Sine Wave 模块并设置参数:
振幅:15
偏见:75
频率:2*π/3600
相位(弧度):0
采样时间:1
选择将矢量参数解释为一维
5.将 Inport 模块连接到数据存储写入输入。
6.点击模型设置打开配置参数对话框,在数据导入/导出窗格中,选择输入并输入 u
。u
是 MATLAB 基础工作区中的现有结构体。然后,点击应用。
7.在 Solver 窗格中,将停止时间设置为 3600
。点击确定。
8.打开测试框架中的范围并更改布局以显示三个图。
9.点击运行进行仿真。
调试控制器
1.观测控制器输出 fan_cmd
在 IDLE
条件为 |Troom - Tset| < DeltaT_fan
时为 1
。这是一个错误,因为 fan_cmd
在 IDLE
处应该是 0
。必须将 fan_cmd
控制输出更改为 IDLE
。
2.框架模型中,打开控制器子系统。
3.打开 controller_chart。
4.在 IDLE
状态下,fan_cmd
被设置为返回 1
。将 fan_cmd
改为返回 0
。IDLE
现在是:
IDLE
entry:
fan_cmd = 0;
pump_cmd = 0;
pump_dir = 0;
5.再次仿真框架模型并观测输出。
fan_cmd
现在满足在 IDLE
处等于 0
的需求。