创作测试序列和测试评估
此示例显示如何使用 Test Sequence模块和 Test Assessment模块为变速器换档逻辑控制器创建测试框架。Test Sequence 模块改变输入到控制器的速度,而 Test Assessment 模块验证速度是否适合齿轮位置。有关更多信息,请参阅 测试序列基础知识。
创建测试序列
1.打开模型。
open_system('TransmissionDownshiftTestSequence')
2.右键单击 shift_controller
子系统并选择测试框架 > 为 ‘shift_controller’ 创建。
3.在“创建测试框架”对话框中的信源和信宿下:
将源下拉菜单设置为
Test Sequence
。选择添加单独的 Test Assessment 模块。
选择创建后打开框架。
有关更多信息,请参阅 创建测试框架。
4.点击确定。shift_controller
子系统的测试框架打开。
5.双击 Test Sequence 模块。测试序列编辑器 打开。
6.将第一步的名称从 Run
更改为 Accelerate
,并添加指定初始节气门设置和速度如何增加的步骤操作:
speed = 10*ramp(et);
throttle = 100;
ramp 函数返回斜率为 1 的斜坡信号在时间 et 时的值,即该步骤的经过时间。对于此示例,步骤开始后的特定时间的速度是当时斜坡值的 10 倍。查看 测试序列编辑器 以了解更多信息。
7.右键单击 Accelerate
步骤并选择在后面添加步骤。将此步骤名称由 step_1
改为 Stop
,并添加当节气门和速度等于 0:
时停止测试的步骤动作
throttle = 0;
speed = 0;
8.在符号窗格中,指向常量并点击添加数据按钮 。输入 Limit
作为常量名称,然后点击添加数据。
9.指向 Limit
并点击编辑按钮 。在常量值字段中,输入 2
。点击确定。
10.右键点击第一步中的转移列,选择添加转移。输入 Accelerate
步骤的转移条件。在此示例中,当系统处于四档至少两秒时,Accelerate
会转移为 Stop
。在 转移 列中,输入:
duration(gear == 4) >= Limit
11.在下一步列中,选择 Stop.
12.保存更改并关闭测试序列编辑器。
创建测试评估
接下来,向Test Assessment模块添加验证。
1.双击 Test Assessment 模块以打开编辑器。编辑器在步骤列中显示默认的 When
分解序列。有关更多信息,请参阅 使用 When 分解评估模型。
2.将第一步的名称从 Run
更改为 Assessments
。
3.右键单击 Assessments
步骤并选择添加子步骤。重复此步骤添加另一个子步骤,因此总共有四个子步骤。
4.更改名称并添加四个子步骤的操作,如图所示。第四步 else
处理前面 when
条件之外的仿真条件。在此步骤中,您无需指定任何操作。
5.保存更改并关闭测试序列编辑器。
6.在测试框架中,添加一个 Scope 模块并将 speed
、throttle
和 gear
信号连接到示波器,如图所示。
7.打开 Scope 模块。在视图 > 布局中,选择三列、一行的布局。
8.在 Simulink 模型中的仿真选项卡中,将停止时间设置为 15,然后点击运行。查看 Scope 模块中的信号数据。速度图显示速度如何增加到最大值 105。节气门图显示,在整个测试过程中节气门值保持在 100。齿轮图显示齿轮以适当的速度换到下一个更高的齿轮。档位等于 4 并持续 2 秒后,速度和节气门归零,档位降低。
9.在仿真数据检查器中查看 verify
语句的结果。
在 Simulink 模型中的 仿真选项卡中,点击Data Inspector。
单击可视化和布局按钮 ,然后在网格下,将行设置为
3
,将列设置为1
。选择一个图,然后从左侧窗格中选择一个评估。对每个其他地模块和评估重复上述操作。
当模型运行时,Test Assessment 模块会验证每个齿轮位置的速度是否在正确的范围内。通过表示速度在正确的范围内。每个 verify
语句都针对特定的档位,因此当控制器处于与被测试档位不同的档位时,速度是未经测试的。Check1st
测试评估有两个通过区域,因为在测试序列的第二步中齿轮位置回到第一位。
另请参阅
Test Sequence | Test Assessment