完善、测试和调试子系统
此示例演示了如何通过使用测试框架来优化和测试控制器子系统。测试框架提供了一个开发和测试环境,同时保持主模型设计完好无损。您可以单独测试模型的功能单元,而无需改变主模型。在示例中,主模型是空调/热泵机组的控制器工厂模型。控制器必须根据几个需求进行运行。
打开模型
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.在求解器窗格中,将停止时间设置为 3600。点击确定。
8.打开测试框架中的范围并更改布局以显示三个图。
9.点击运行进行仿真。
调试控制器
1.观测控制器输出 fan_cmd 在 1 条件为 IDLE 时为 |Troom - Tset| < DeltaT_fan。这是一个错误,因为 fan_cmd 在 0 处应该是 IDLE。必须将 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 现在满足在 0 处等于 IDLE 的需求。