仿真与测试:通过Signal Builder模块生成输入信号

本文研究通过Signal Builder模块生成输入信号的方法。

1 生成输入信号

在汽车的电控软件开发中,经常会在Simulink模型内部进行单元测试。单元测试的本质就是对某一单元(可以是模型级别或者子系统级别)给一组特定的输入信号,通过Simulink仿真得到一组对应的输出信号,然后再与自己期望的输出信号进行比较,从而得出该测试用例是否通过的结论。

Signal Builder模块就是一种产生自定义的输入信号的模块。除此之外,Signal Editor、Test Sequence等模块也可以自定义输入信号,但是博主工作中用Signal Builder模块比较顺手,就在这里介绍这一种。

本文会通过简单的例子,来研究Signal Builder模块的用法,从而为以后的单元测试的学习打下基础。

2 仿真过程

2.1 搭建被测模型

1)新建一个Simulink模型,将其配置为离散求解器,仿真步长配置为0.01;

在这里插入图片描述
这里的仿真步长是对应的该模块的调度周期。这里要注意仿真的初始时刻和终止时刻设为0到10秒。

2)在模型中建立一个子系统,用于将车速的mps单位转换为kph单位;
在这里插入图片描述
3)模型内部通过一个Gain模块,将mps单位的车速信号乘以3.6,变成kph单位的信号;
在这里插入图片描述
至此,简单的demo模型就建立完毕了,功能就是将车速单位进行转换。例如当前车速是1m/s,输出就是3.6km/h。

2.2 搭建Signal Builder输入模块

1)新建一个Signal Builder输入模块如下:
在这里插入图片描述
可以观察到模块上有Group1和Signal1的字样。这表示在Signal Builder内部可以设置多个Group,其中每个Group包含多组Signal。在仿真的时候,切换不同的Group就可以达到生成不同的Signal的效果。

2)双击Signal Builder后,可以编辑其中的Group和Signal;
在这里插入图片描述
如果需要生成多个组,或者多个信号,可以在菜单栏的Group或者Signal中添加。

3)关于信号线的定义,只需要选中对应的线段,或者端点,就可以在下方的point中看到它的坐标;
在这里插入图片描述
例如上图中博主选中(4,0)点,就会显示时刻T=4,坐标值Y=0;

4)将T改成2,信号线就会变成一个斜坡;
在这里插入图片描述
这里就用上图的形状作为输入即速度曲线是2到4s为一个匀加速的斜坡,4到6s为1m/s的匀速。

另外,如果要在线上增加端点,操作为按住shift键,点击线段上某一位置。

5)最后,把信号线名字改掉,以及把SignalBuilder的仿真步长也改成0.01;
在这里插入图片描述

在这里插入图片描述

2.3 配置仿真log及仿真

接下来就是配置仿真log记录数据,以及开始仿真。

1)首先,将信号线连接起来;
在这里插入图片描述
2)在输入信号线和输出信号线上右键进行信号线log;
在这里插入图片描述
接着,信号线上就会出现一个类似wifi的图标;
在这里插入图片描述
3)点击上方的仿真按钮,接着点击右边的信号线显示;
在这里插入图片描述
在弹出的信号显示界面就可以选择需要显示的信号线;
在这里插入图片描述
这样就能观察到给定的输入信号,经过仿真后的输出是否为我们期望的输出信号;

3 总结

本文研究通过Signal Builder模块生成输入信号的方法,这种方式比较适合简单的子系统测试,或者一些实际情况下不容易达到的边界条件输入的测试。

>>返回个人博客总目录

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值