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

这篇具有很好参考价值的文章主要介绍了仿真与测试:通过Signal Builder模块生成输入信号。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

1 生成输入信号

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

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

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

2 仿真过程

2.1 搭建被测模型

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

仿真与测试:通过Signal Builder模块生成输入信号
这里的仿真步长是对应的该模块的调度周期。这里要注意仿真的初始时刻和终止时刻设为0到10秒。

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

2.2 搭建Signal Builder输入模块

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

2)双击Signal Builder后,可以编辑其中的Group和Signal;
仿真与测试:通过Signal Builder模块生成输入信号
如果需要生成多个组,或者多个信号,可以在菜单栏的Group或者Signal中添加。

3)关于信号线的定义,只需要选中对应的线段,或者端点,就可以在下方的point中看到它的坐标;
仿真与测试:通过Signal Builder模块生成输入信号
例如上图中博主选中(4,0)点,就会显示时刻T=4,坐标值Y=0;

4)将T改成2,信号线就会变成一个斜坡;
仿真与测试:通过Signal Builder模块生成输入信号
这里就用上图的形状作为输入即速度曲线是2到4s为一个匀加速的斜坡,4到6s为1m/s的匀速。

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

5)最后,把信号线名字改掉,以及把SignalBuilder的仿真步长也改成0.01;
仿真与测试:通过Signal Builder模块生成输入信号

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

2.3 配置仿真log及仿真

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

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

3 总结

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

>>返回个人博客总目录文章来源地址https://www.toymoban.com/news/detail-411617.html

到了这里,关于仿真与测试:通过Signal Builder模块生成输入信号的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ECF机制:信号 (Signal)

        💭 写在前面: ECF (异常控制流) 机制是存在于系统的所有层级中的,所以这一块的知识我们需要系统地去学习。前几章我们探讨过了异常 (Exceptions),由硬件触发,在内核代码中处理。讲解了进程的上下文切换 (Process Context Switch),\\\"异常 + 内核代码\\\"。本章我们将探讨信号

    2023年04月08日
    浏览(37)
  • Golang 中的信号(Signal)机制详解

    目录 信号基础概念 Golang 对信号的处理 信号处理的使用场景和使用示例 信号的局限性 Go 中的特殊信号处理 小结 Signal 是一种操作系统级别的事件通知机制,进程可以响应特定的系统信号。这些信号用于指示进程执行特定的操作,如程序终止、挂起、恢复等。Golang 的标准库

    2024年01月16日
    浏览(39)
  • 多线程下的signal信号处理

    多线程中,信号在哪个线程中处理是不确定的,可能被任意一个线程处理 下边的代码可以验证该结论,多次Ctrl+c,会被不同的线程捕获此信号,并处理,最终每个线程死锁,阻塞在等待锁的状态 结果: main process, 139693373089600 thread process, 139693364594432 lock line 34 thread process, 13

    2024年02月11日
    浏览(39)
  • os.signal golang中的信号处理

    在程序进行重启等操作时,我们需要让程序完成一些重要的任务之后,优雅地退出,Golang为我们提供了signal包,实现信号处理机制,允许Go 程序与传入的信号进行交互。 Go语言标准库中signal包的核心功能主要包含以下几个方面: 1. signal处理的全局状态管理 通过handlers结构体跟

    2024年02月15日
    浏览(50)
  • linux 信号原理 信号处理设置signal, 信号发送kill,信号等待sigsuspend,信号阻塞sigprocmask,一网打尽信号使用

    ​ 专栏内容 : postgresql内核源码分析 手写数据库toadb 并发编程 个人主页 :我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. ================================ 信号是一种软中断的方式,让进程陷入中断处理调用中; linux 下信号也是一种进程间通信的手段;进

    2024年02月13日
    浏览(39)
  • Linux系统调用之signal,sigaction函数 (捕捉指定的信号,自定义/默认处理该信号)

    如果,想要深入的学习Linux系统调用中的signal,sigaction函数,还是需要去自己阅读Linux系统中的帮助文档。 具体输入命令: 即可查阅到完整的资料信息。 signal()是一个用于处理Unix和类Unix操作系统(如Linux)中的信号的系统调用。信号是用于在进程间或者进程内部传递通知或者

    2024年02月02日
    浏览(44)
  • 仿真通过AXI_lite接口读写寄存器时axi_awready信号无法拉高的一种原因

            本人初次接触AXI接口,在了解了AXI接口读写时序后,计划使用AXI接口对BRAM进行读写,并进行仿真测试,AXI接口有三种类型:AXI4、AXI-lite、AXI-stream,我一开始成功对AXI4进行了读写测试,在了解读写时序后这是很简单的,但是在对AXI-lite进行读写测试时,本以为读写

    2024年02月16日
    浏览(53)
  • 【Linux】进程信号篇Ⅰ:信号的产生(signal、kill、raise、abort、alarm)、信号的保存(core dump)

    kill -l 可以查看所有信号: 其中,前面的数字就是信号,后面的大写英文就是信号名称,实际就是宏。 我们需要关注的是 1~31 号普通信号,关注他们有没有产生(可以用 0 或者 1 表示)。 所以,进程的 pcb 中,需要对产生的信号先用 位图 保存起来,再按照一定的顺序去处理

    2024年01月25日
    浏览(37)
  • Linux进程间通信 - 信号(signal) 与 管道(pipe) 与 消息队列

    什么是进程间通信,就是进程与进程之间进行通信,互相发送消息;可以通过 信号 或者 管道 或者 消息队列 或者 信号量 去通信! 目录 一、信号 1. 信号简介  2. 都有那些信号? 3. 注册信号的函数 1). signal 2). sigaction (项目中强烈推荐使用) 4. 信号发送 1). kill 函数 2). alarm 函

    2024年02月01日
    浏览(37)
  • Dora:全新的AI通过输入文字生成3D网站

    ChatGPT云炬学长 公众号:云炬网络 Dora是一个无代码3D动画网站生成AI工具Dora这个全新的AI通过输入文字生成3D网站,让许多技术人员大吃一惊。Dora实现了只需要通过输入文本生成3D可编辑网站和通过Dora 3D交互生成器将静态设计提升到3D效果的功能。Dora还通过AI生成的动画和自动

    2024年02月04日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包