Main Content

本页采用了机器翻译。点击此处可查看英文原文。

完善、测试和调试子系统

此示例显示如何使用测试框架来改进和测试控制器子系统。测试框架提供了一个开发和测试环境,同时保持主模型设计完好无损。您可以单独测试模型的功能单元,而无需改变主模型。在示例中,主模型是空调/热泵机组的控制器工厂模型。控制器必须根据几个需求进行运行。

打开模型

sltestHeatpumpExample

Heat pump example model

在示例模型中:

  • 控制器接受室温和指定温度的输入。

  • 控制器输出是一条带有信号总线,可以控制风扇、热泵以及热泵的方向(加热或冷却)。

  • 该工厂接受控制总线。热泵和风扇信号是布尔值,热泵方向以+1 表示冷却、-1 表示加热来指定。

温度条件状态

测试涵盖四种温度条件。每种条件对应一个运行状态,具有风扇、泵和泵方向信号输出。

table1.png

为控制器创建框架

1.右键单击 Controller 子系统并选择测试框架 > 为 ‘Controller’ 创建

2.在基本属性选项卡中设置框架属性:

  • 姓名devel_harness1

  • 清除在外部保存测试框架

  • 信源和信宿NoneScope

  • 清除添加单独的评估模块

  • 选择创建后打开框架

Create test harness dialog box

3.单击“确定”创建框架。

Created test harness

检查并完善控制器

1.在测试框架中,双击 Controller 来打开子系统。

2.将图连接到 Inport 模块。

Controller chart with inport block connections

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 模块连接到数据存储写入输入。

Test harness with inport blocks connected to the Data Store Write input

6.点击模型设置打开配置参数对话框,在数据导入/导出窗格中,选择输入并输入 uu 是 MATLAB 基础工作区中的现有结构体。然后,点击应用

7.在 Solver 窗格中,将停止时间设置为 3600。点击确定

8.打开测试框架中的范围并更改布局以显示三个图。

9.点击运行进行仿真。

调试控制器

1.观测控制器输出 fan_cmdIDLE 条件为 |Troom - Tset| < DeltaT_fan 时为 1。这是一个错误,因为 fan_cmdIDLE 处应该是 0。必须将 fan_cmd 控制输出更改为 IDLE

Plots of controller output signals

2.框架模型中,打开控制器子系统。

3.打开 controller_chart。

4.在 IDLE 状态下,fan_cmd 被设置为返回 1。将 fan_cmd 改为返回 0IDLE 现在是:

IDLE

entry:

fan_cmd = 0;

pump_cmd = 0;

pump_dir = 0;

5.再次仿真框架模型并观测输出。

Plots of controller output signals

fan_cmd 现在满足在 IDLE 处等于 0 的需求。