网站访客记录 是后台做吗,公司让做网站违法,网站遭受攻击,网站建设教程吧本文研究通过Signal Builder模块生成输入信号的方法。 文章目录1 生成输入信号2 仿真过程2.1 搭建被测模型2.2 搭建Signal Builder输入模块2.3 配置仿真log及仿真3 总结1 生成输入信号
在汽车的电控软件开发中#xff0c;经常会在Simulink模型内部进行单元测试。单元测试的本…本文研究通过Signal Builder模块生成输入信号的方法。
文章目录1 生成输入信号2 仿真过程2.1 搭建被测模型2.2 搭建Signal Builder输入模块2.3 配置仿真log及仿真3 总结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)点就会显示时刻T4坐标值Y0
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模块生成输入信号的方法这种方式比较适合简单的子系统测试或者一些实际情况下不容易达到的边界条件输入的测试。
返回个人博客总目录