在Simulink测试中测试实时应用
这个例子展示了如何执行模型的频率响应测试slrt_ex_osc_sltest
.
使用这些信息,在设计阶段,您可以修改模型的内部参数以满足您的频率要求。在生产阶段,可以根据频率响应对制造零件进行分类。
打开模型
要打开模型,在MATLAB®命令窗口中输入:
open_system (fullfile (matlabroot,“工具箱”,“slrealtime”,“例子”,“slrt_ex_osc_sltest”));
该图显示了在目标计算机上运行的实时应用程序的代表性输出。在低频时,Integrator1块的输出与Signal Generator块的输出相同。在高频率下,Integrator1块的输出在每个脉冲结束时仍然振铃。
该测试确定积分器和信号发生器模块的输出值在彼此指定的准则内的最高频率。该测试使用模型本身作为信号源,并使用测试线束来比较积分器和信号发生器模块的输出。
步骤1。设置型号配置参数
开放模式
slrt_ex_osc_sltest
在可写文件夹中。打开配置参数。在实时选项卡上,单击硬件设置.
选择模型参考>每个顶级模型允许的实例总数>一个.
选择数据导入/导出>格式>结构随时间变化.
选择数据导入/导出>时间.
选择数据导入/导出>输出.
所以取消数据导入/导出>州.
所以取消数据导入/导出>最终状态.
所以取消数据导入/导出>信号记录.
所以取消数据导入/导出>数据存储.
所以取消数据导入/导出>日志数据集数据到文件.
步骤2。创建频率参数
创建参数频率
在本例的最后进行了调优。
打开模型浏览器。
创建Simulink®参数
频率
在模型工作区中进行模型slrt_ex_osc_sltest
.将参数标记为模型参数。
步骤3。创建测试工具
关于Simulink应用程序选项卡上,单击仿真软件测试.
在测试选项卡上,单击添加测试带.软件用默认名称创建一个测试工具
slrt_ex_osc_sltest_Harness1
.在基本性质选项卡,用于输入到待测组件中,选择
没有一个
.的输出待测组件中,选择
外港
.选择添加单独的评估块复选框。
选择创建后打开线束复选框。
在其余选项卡中采用默认值。
8.点击好吧.
示例模型slrt_ex_osc_sltest
在模型中存储测试工具。要从示例模型中访问测试工具:
在Simulink编辑器中测试选项卡上,单击管理测试线束.
点击
slrt_ex_osc_sltest_Harness1
.要返回到示例模型,请在测试工具右下角的透视图中选择它。
步骤4。设置测试线束配置参数
开放式测试线束
slrt_ex_osc_sltest_Harness1
.打开配置参数。在实时选项卡上,单击硬件设置.
选择模型参考>每个顶级模型允许的实例总数>一个.
选择数据导入/导出>格式>结构随时间变化.
选择数据导入/导出>时间.
选择数据导入/导出>输出.
所以取消数据导入/导出>州.
所以取消数据导入/导出>最终状态.
所以取消数据导入/导出>信号记录.
所以取消数据导入/导出>数据存储.
所以取消数据导入/导出>日志数据集数据到文件.
第5步。配置测试带
打开Test Assessment块。
要简化测试评估配置,请在输入符号列表,替换输入
外港
与输入Int1
而且SigGen
.在
slrt_ex_osc_sltest_Harness1
,连接一个Demux块到slrt_ex_osc_sltest /外港
.在Demux块对话框中,设置输出数来
2
.为了使Demux输出对Test Assessment块可见,将单个增益块连接到每个Demux块输出。
连接顶部Demux块输出到
测试评估/ Int1
底部输出到测试评估/ SigGen
.
步骤6。配置Simulink参数
打开模型资源管理器。在建模Tab,下拉设计部分,单击模型浏览器.
单击节点slrt_ex_osc_sltest_Harness1 >模型工作区.
在工具栏中,单击添加Simulink参数按钮。
添加如下数据对象:
名称-标准
值- 0
DataType - double
存储类- ExportedGlobal
5.以类似的方式添加Simulink参数w_open和w_close。因为这些参数在slrt_ex_osc_sltest_Harness1
模型工作区作为模型参数,您可以直接通过名称访问它们,而不需要模型层次结构。
6.保存模型。
步骤7。设置频率参数
右击
slrt_ex_osc_sltest_Harness1 / slrt_ex_osc_sltest
.选择
块参数(模型参考)
.选择
实例参数
在弹出窗口。马克
频率
作为一个论证。
步骤8。准备测试评估步骤
1.打开Test Assessment块
2.将这些参数添加到参数符号列表中:
标准
w_open
w_close
3.中添加步骤一步列时,将光标移到最上面一行,单击在后面添加step,并输入:
CheckSetting
4.右键单击步骤CheckSetting
并设置当分解复选框。
5.将子步骤添加到CheckSetting
,点击添加小步,并输入:
Hi when (SigGen > 0)
when表达式选择波形的一半。
6.右击子步骤嗨,当
并设置当分解复选框。
7.对分步嗨,当
,增加子步骤:
HiCheck时((> = w_open) & & (et < = w_close))验证((abs (Int1) > = abs (SigGen) *(1.0 -标准))& &……(abs(Int1) <= abs(SigGen) * (1.0 + Criterion)));
when表达式选择测试验收条件的时间窗口。verify命令测试接受条件。
8.以类似的方式,步进CheckSetting
,增加子步骤:
Lo时(SigGen < 0)
9.对分步瞧,当
,增加子步骤:
LoCheck时((> = w_open) & & (et < = w_close))验证((abs (Int1) > = abs (SigGen) *(1.0 -标准))& &……(abs(Int1) <= abs(SigGen) * (1.0 + Criterion)));
10.右击子步骤瞧,当
并设置当分解复选框。
11.满足…的要求当分解,删除默认运行
步进插入DefaultStep
步骤之后的子步骤CheckSetting
,嗨,当
,瞧,当
.当分解在每一层嵌套中至少需要两个步骤,在每个步骤列表的末尾需要一个不可分解的步骤。
第9步。初始化测试套件
点击
slrt_ex_osc_sltest
子系统。在应用程序选项卡上,单击仿真软件测试.
在测试选项卡上,单击测试经理.
选择新建>测试文件.
命名测试文件
realtimetest
.右键单击测试文件并选择新的>实时测试.
在新建的实时测试对话框中,输入
模拟
在测试类型字段。点击创建.
将新的测试套件重命名为
realtimesuite
.将新的测试用例重命名为
frequencysweep
.
第10步。初始化被测系统
在测试管理器中,选择节点frequencysweep.
选择选项卡测试中的系统.
集模型来
slrt_ex_osc_sltest
.在选项卡测试工具,设置利用来
slrt_ex_osc_sltest_Harness1
.在选项卡模拟设置和释放覆盖,选择停止时间复选框。
其他字段采用默认值。
步骤11。初始化参数覆盖
1.在Test Manager中,选择选项卡参数将覆盖.
2.单击添加按钮。将打开一个包含参数列表的对话框。如果参数不可见,请单击刷新在对话框顶部的行。
刷新将构建模型并上传模型和块参数slrt_ex_osc_sltest_Harness1
而且slrt_ex_osc_sltest
.
3.开放参数集1并选择标准,频率,w_close,w_open复选框。清除其他复选框。
步骤12。创建脚本迭代
为了配置和控制测试工具的迭代运行,许多常量和变量提供了输入。
测试工具常量包括:
cStartFreq = 15.0
参数扫描的开始频率。cStopFreq = 25.0
参数扫描的结束频率。cFreqIncr = 1.0
频率增加。cWOpen = 0.90
开始评估的时间窗口标准
.cWClose = 0.99
计算的时间窗口结束标准
.cCriterion = 0.025
在时间窗口内信号发生器和积分器1之间的最大归一化幅度差。
测试工具变量包括:
vfreq
每次迭代的频率。vw_open
窗口在每个半周期中打开一次。vw_close
窗口在每半个周期关闭一次。
在Test Manager中,选择选项卡迭代>脚本迭代.
在文本框中输入如下代码。要调整脚本化的迭代文本框中,单击并拖动框的右下角。
初始化常数cStartFreq = 15.0;cStopFreq = 25.0;cFreqIncr = 5.0;cWOpen = 0.90;cWClose = 0.99;cCriterion = 0.025;循环vfreq = cStartFreq:cFreqIncr:cStopFreq %创建一个新的迭代testtr = sltest.testmanager. testation ();计算时间窗口half_period = 0.5 * (1.0/vfreq);vw_open = half_period * cWOpen;vw_close = half_period * cWClose; % Set the parameters for the iteration testItr.setVariable('Name','Frequency','Source', ... 'slrt_ex_osc_sltest','Value',vfreq); testItr.setVariable('Name','w_open','Source', ... '','Value', vw_open); testItr.setVariable('Name','w_close','Source', ... '','Value', vw_close); testItr.setVariable('Name','Criterion','Source', ... '','Value', cCriterion); % Name and add the iteration to the testcase str = sprintf('%.0f Hz', vfreq); addIteration(sltest_testCase, testItr, str); end
步骤13。运行测试
构建和下载
slrt_ex_osc_sltest
到目标计算机。在测试管理器中,单击运行按钮。
如需查看测试结果,请在左侧列中单击结果和工件.在这种情况下,测试在迭代中失败了23赫兹.
要查看失败的结果,打开节点23hz >验证语句而且23 Hz > Sim卡输出(slrt_ex_osc_sltest).
步骤14。显示结果
在“模拟数据检查器”窗格中,选择布局按钮。
选择两个水平显示。
在模拟数据检查器顶部显示中,选择这两个
出
复选框和顶部测试评估复选框。这一评估与HiCheck
子步。在底部显示中,选择这两个
出
复选框和底部测试评估复选框。这一评估与LoCheck
子步。单击放大时间按钮并选择范围
4.00 - -4.1
.
在顶部显示,垂直的红线附近4.04
后面的水平绿色线表示HiCheck
测试在成功之前短暂失败。在底部显示,垂直的红色尖刺附近4.02
后面的水平绿色线表示LoCheck
测试在成功之前短暂失败。
另请参阅
相关的话题
- 实时测试模型(仿真软件测试)
- 为实时测试重用桌面测试用例(仿真软件测试)