主要内容

编写测试序列和测试评估

此示例说明如何使用 Test Sequence 模块和 Test Assessment 模块为变速器换档逻辑控制器创建测试框架。Test Sequence 模块改变控制器的速度输入,Test Assessment 模块验证速度是否适合档位。有关详细信息,请参阅测试序列基础知识

创建测试序列

1.打开模型。

open_system("sf_car")

Example model sf_car.

2.右键点击 shift_logic 子系统。要向菜单中添加 Simulink Test 选项,请指向选择 App,然后点击 Simulink Test 按钮 。然后,在 Simulink Test 部分中,点击“添加测试框架”按钮

3.在“创建测试框架”对话框的信源和信宿下:

  • 将信源下拉菜单设置为 Test Sequence

  • 选中添加单独的 Test Assessment 模块

  • 选中创建后打开框架

The Sources and Sinks section of the Create Test Harness dialog box.

有关详细信息,请参阅创建测试框架

4.点击确定shift_logic 子系统的测试框架将会打开。

The shift_logic test harness

5.双击 Test Sequence 模块。测试序列编辑器将会打开。

The Test Sequence Editor. The block has one step titled Run.

6.将第一步的名称从 Run 更改为 Accelerate,并添加指定初始节气门设置和速度增加方式的步骤动作:

speed = 10*ramp(et);

throttle = 100;

ramp 函数返回斜率为 1 的斜坡信号在时间 et(即该步骤的历时)处的值。对于此示例,步骤开始后特定时刻的速度是该时刻斜坡值的 10 倍。有关详细信息,请参阅测试序列编辑器

7.右键点击 Accelerate 步骤,然后选择在后面添加步骤。将此步骤的名称从 step_1 更改为 Stop,并添加在节气门和速度等于 0: 时停止测试的步骤动作

throttle = 0;

speed = 0;

8.在符号窗格中,指向常量,然后点击 The add data button.。输入 Limit 作为常量名称,然后点击添加数据

9.指向 Limit,然后点击编辑按钮 the Edit button。在常量字段中,输入 2。点击确定

The Data Limit dialog box

10.右键点击第一步中的转移列,选择添加转移。输入 Accelerate 步骤的转移条件。在此示例中,当系统处于四档至少两秒时,Accelerate 会转移为 Stop。在转移列中,输入:

duration(gear == 4) >= Limit

11.在下一步列中,选择 Stop

The Test Sequence Editor. There is an Accelerate step and a Stop step.

12.保存更改并关闭测试序列编辑器。

创建测试评估

接下来,向 Test Assessment 模块添加验证。

1.双击 Test Assessment 模块以打开编辑器。编辑器在步骤列中显示默认的 When 分解序列。有关详细信息,请参阅使用信号条件激活 verify 语句

The Test Sequence Editor. There are two substeps in one step.

2.将第一步的名称从 Run 更改为 Assessments

3.更改四个子步骤的名称并为其添加动作:

  • step_1_1 重命名为 Check1st。将 when 条件定义为 gear == 1,并添加一个 verify 语句来计算速度是否小于 45

  • step_1_2 重命名为 Check2nd。将 when 条件定义为 gear == 2,并添加一个 verify 语句来计算速度是否小于 75

  • 右键点击 Check2nd 步骤,然后点击在后面添加步骤。将新添加的步骤重命名为 Check3rd。将 when 条件定义为 gear == 3,并添加一个 verify 语句来计算速度是否小于 105

  • 右键点击 Check3rd 步骤,然后点击在后面添加步骤。将新添加的步骤重命名为 else。此步骤处理前面的 when 条件之外的仿真条件。在此步骤中,您无需指定任何操作。

The Test Sequence Editor. There is one step named Assessments with four substeps.

4.保存更改并关闭测试序列编辑器。

5.在测试框架中,添加一个 Scope 模块,并将 speedthrottlegear 信号连接到示波器。

The shift_logic test harness with a Scope block.

6.打开 Scope 模块。在视图 > 布局中,选择三列单行布局。

7.在 Simulink® 模型中,在仿真选项卡中将 停止时间 设置为 15,然后点击运行。在 Scope 模块中查看信号数据。速度图显示速度如何增加到最大值 105。节气门图显示,在整个测试过程中,节气门值始终保持在 100。档位图显示,档位会在适当的速度下换到下一个更高的档位。档位保持在 4 档 2 秒钟后,速度和节气门降至零,档位降低。

The Scope block with the three subplots. The plots display the throttle, speed, and gear signals.

8.在仿真数据检查器中查看 verify 语句的结果。

  • 在 Simulink 模型中,在仿真选项卡中点击数据检查器

  • 点击“可视化和布局”按钮 VisualizationAndLayoutIcon.png,然后在网格下,将设置为 3,将设置为 1

  • 选择一个绘图,然后从左窗格中选择一个评估。对每个其他绘图和评估重复上述操作。

The Simulation Data Inspector. A plot is displayed for each verify statement which show pass and untested results.

模型运行时,Test Assessment 模块会验证每个档位的速度是否在正确的范围内。“通过”表示速度在正确范围内。每个 verify 语句都对应一个特定档位,因此当控制器处于与在测档位不同的档位时,则表示未测试到速度。Check1st 测试评估有两个通过区域,因为在测试序列的第二步中,档位会回到一档。

另请参阅

|

主题