0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于做SIL测试的原因分析和可行性介绍

MATLAB 来源:djl 作者:董淑成 2019-09-17 11:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

我经常跟做MBD开发的朋友说:

MBD软件开发中一定要做SIL。

为什么这么说?下面我来掰扯掰扯。

MSIL测试的背景

SIL测试的目的是为了验证自动生成的代码和用于代码生成的模型的一致性,做这项测试的初衷是因为代码生成过程可能会引入错误。注意,我这里提到的代码生成过程出错,这里面可能涵盖两方面的错误:

来自于代码生成工具本身:代码生成工具作为一款软件,它和其他所有软件一样,都是可能有bug的,没有哪个软件公司可以承诺自己公司的软件产品没有bug,MathWorks也不例外;

来自于代码生成用户:代码生成过程是一个可以定制化的过程,用户在这个过程中可能做一些自己的定制,如果定制化的内容没有经过严格、充分的验证,那么也是很容易引入bug的。

并且,相比之下,第二种错误发生的概率会更大一些。

既然这个过程可能引入bug,那么,即便是正确的模型,也可能被生成出来不正确的代码。为了防止这类bug,SIL测试是有必要做的。当然,也有人说他们对代码生成过程不做定制,并且,他们也充分信任MathWorks的代码生成工具。

我们选择了代码生成工具,选择了代码生成的开发模式,我们自然是信任代码生成工具的。问题是,信任不能保证代码生成工具就不发生错误,尽管代码生成工具发生错误的概率非常小,小到很多用户可能从来没有遇到过,但概率小不代表没有,咱们中国有句老话,叫做“以防万一”,即便是非常小概率发生的事情,可一旦发生,很可能会带来很严重的后果。如果可以通过增加一个环节,在基本上不增加开发成本的情况下,就可以验证代码和模型的一致性,就可以避免代码生成过程出错导致的最终结果出错,那我们又有什么理由拒绝呢?

没错,SIL就是这样一种测试,基本上不增加你的开发时间,又能够“以防万一”。

M为什么SIL测试能够“以防万一”

关于做SIL测试的原因分析和可行性介绍

如上图所示,SIL测试是对比测试,测试过程中,我们给代码编译成的可执行文件和用于代码生成的模型相同的输入,我们观测它们的输出是否一致,如果输入信号的数据量足够大,能够覆盖各种路径,涵盖各种信号范围,并且两者的输出结果一致,我们可以大致认为代码和模型做行为上是一致的。

M为什么SIL基本上不增加开发时间

测试用例创建

SIL测试发生在代码生成之后,我们知道,代码生成的前提是模型经过充分验证,所以SIL测试阶段,模型的单元测试早已完成,我们可以复用模型单元测试时使用的测试用例,所以,测试过程中耗时最多的测试用例设计环节在SIL测试的时候就不再是问题。

前面我们提到,SIL测试的测试数据越多越好,如果我们认为单元测试的测试用例不够多,没有关系,除了使用单元测试的测试用例之外,还可以通过工具自动产生测试用例,在MathWorks工具链中,Simulink Design Verifier就可以用于自动生成测试用例。注意,我在SIL测试的时候提到自动产生测试用例,这种测试用例不能用于功能测试,因为这种测试用例不能表达功能意义,但却能满足覆盖率要求。我们做SIL测试的时候,验证的就是相同的测试输入条件下,代码和模型产生出相同的输出,所以这个环节没有必要关心功能,这个环节里,我们希望有覆盖各种状况的大量数据。

关于做SIL测试的原因分析和可行性介绍

测试过程的执行

在有了测试用例之后,可以通过几行命令执行测试过程。假如我们使用了如下命令

slvnvmakeharness(‘demo_model’)

创建了测试框架,如下图:

关于做SIL测试的原因分析和可行性介绍

假如测试数据已经导入到SignalBuilder模块,那么,SIL测试只需执行如下命令:

test_frame_name=‘demo_model_harness’;

set_param(test_frame_name,‘SaveOutput’,‘on’);

set_param(test_frame_name,‘OutputSaveName’,’model_output’);

set_param(‘demo_model_harnss/TestUnit’,’SimulationMode’,’Normal’);

sim(test_frame_name);

set_param(test_frame_name,‘OutputSaveName’,’SIL_output’);

set_param(‘demo_model_harnss/TestUnit’,’SimulationMode’,’Software-in-the-Loop(SIL)’);

sim(test_frame_name);

compare_and_report(model_output,SIL_output);

两次仿真的结果被分别保存在model_output和SIL_output里面,对比这两个变量,并给出报告,就算是完成SIL过程了。这里compare_and_report()不是MATLAB内置的函数,需要用户按照自己的要求自行编写,无非是把两次仿真的结果做对比,并生成报告,仅此而已。

现在可以理解我为什么一直强调一定要做SIL的原因了吧?因为:

SIL不增加开发时间,又能够做到“以防万一”。

往期 | 老胡专栏

为什么要基于模型设计?

自动代码生成五大原则

说说代码生成中的数据管理

什么样的模型算正确的模型?

简单说说MIL、SIL、PIL和HIL

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    7314

    浏览量

    93966
  • 输入信号
    +关注

    关注

    0

    文章

    549

    浏览量

    13107
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    快问快答:气密检测到底是怎么的?如何定义气密测试标准

    :气密检测是怎么的?气密测试标准如何定义?并结合国产代表品牌精诚工科(JCGK)的实际应用,为您建立一份系统化理解。Ⅰ.什么是气密
    的头像 发表于 11-11 11:56 296次阅读
    快问快答:气密<b class='flag-5'>性</b>检测到底是怎么<b class='flag-5'>做</b>的?如何定义气密<b class='flag-5'>性</b><b class='flag-5'>测试</b>标准

    新能源无人机风光一体化巡检系统应用的可行性

    对于新能源场站来说,一种可实现风光一体化无人机巡检方式,在运维管理工作中能发挥出很大的作用。这种巡检方式,从技术、效率与成本、系统集成与协同作业以及全生命周期管理等方面来说具有高度的可行性,在风电
    的头像 发表于 10-28 18:04 581次阅读
    新能源无人机风光一体化巡检系统应用的<b class='flag-5'>可行性</b>

    FPGA测试DDR带宽跑不满的常见原因分析方法

    在 FPGA 中测试 DDR 带宽时,带宽无法跑满是常见问题。下面我将从架构、时序、访问模式、工具限制等多个维度,系统梳理导致 DDR 带宽跑不满的常见原因分析方法。
    的头像 发表于 10-15 10:17 540次阅读

    医疗成像设备系统电源芯片国产替代可行性研究

    设备领域所使用的电源芯片大多依赖进口,这不仅限制了我国医疗设备产业的自主发展,也使得医疗设备的成本居高不下。鉴于此,本研究旨在深入探讨国产电源芯片在医疗成像设备系统中的替代可行性,特别是以国科安芯推出的ASP4644S电源芯片为例
    的头像 发表于 09-05 14:36 451次阅读

    ASP4644四通道集成方案在射频通信系统中的可行性分析

    的四通道集成解决方案。本文通过对ASP4644芯片的全面测试报告进行深入分析,结合射频通信系统对电源模块的特殊要求,从多个维度探讨了ASP4644在射频通信领域的应用可行性。研究结果表明,ASP4644具备高效率、低纹波、快速动
    的头像 发表于 08-28 13:51 373次阅读

    什么是数据保护层面的最小可行性

    在当今复杂的商业环境中,企业面临的威胁日益多元,从自然灾害、硬件故障到恶意网络攻击,各类突发事件都可能中断业务运营。据统计,全球数据泄露的平均成本已达488万美元,而勒索软件攻击后的平均恢复时间长达24天。在此背景下,确保业务连续成为企业生存与发展的核心课题。
    的头像 发表于 08-15 17:20 858次阅读

    大模型在半导体行业的应用可行性分析

    有没有这样的半导体专用大模型,能缩短芯片设计时间,提高成功率,还能帮助新工程师更快上手。或者软硬件可以在设计和制造环节确实有实际应用。会不会存在AI缺陷检测。 能否应用在工艺优化和预测维护中
    发表于 06-24 15:10

    求助,关于NXP S32K3xx硬件板的SIL测试问题求解

    我们在尝试使用 恩智浦 S32K3xx 硬件板为我们的模型创建 SIL 测试框架时遇到问题。错误消息“错误:模型配置为创建 SIL 模块,所选硬件板不支持该模块。要解决此问题,请在“配置参数”对话框
    发表于 04-01 08:15

    模型测试全流程实战沙盘,赋能CI/CD及SiL测试 ——TPT Workshop邀请函

    北汇信息将于4月18日在上海市闵行区虹桥镇紫秀路100号4幢3C室举办为期1天的“模型测试全流程实战沙盘,赋能CI/CD及SiL测试”相关内容的交流探讨,诚邀各位新老客户朋友参加!
    的头像 发表于 03-26 15:44 510次阅读
    模型<b class='flag-5'>测试</b>全流程实战沙盘,赋能CI/CD及<b class='flag-5'>SiL</b><b class='flag-5'>测试</b> ——TPT Workshop邀请函

    斯丹麦德电子SIL干簧继电器:专为自动测试设备(ATE)设计

    可靠和持久的干簧继电器与高质量标准。符合IEC61810标准,UL认证。通用型仪表级SIL系列干簧继电器在尺寸、性能和市场可用之间取得了良好的平衡。SIL继电器采用坚固的热固性瞎聊封装,以单列直插式封装形式提供,适用于
    发表于 03-03 13:30 0次下载

    IEC 60947-2用于充电桩漏电流保护标准认证的可行性分析

    欧洲地区对充电桩的标准与认证执行要求较高,本文从欧标IEC不同的漏电流标准角度探讨,如何满足这些标准以降低设计复杂度和成本。通过对标准中机械耦合、电子耦合、漏电流检测及控制电路的详细解读,本文提出了一种符合标准的可行性方案,我们欢迎各位读者参与探讨并提出宝贵的意见和建议。
    的头像 发表于 02-27 17:11 1483次阅读
    IEC 60947-2用于充电桩漏电流保护标准认证的<b class='flag-5'>可行性</b><b class='flag-5'>分析</b>

    多载波CDMA2000可行性

    电子发烧友网站提供《多载波CDMA2000可行性.pdf》资料免费下载
    发表于 01-13 15:17 0次下载
    多载波CDMA2000<b class='flag-5'>可行性</b>

    AN-0974: TD-SCMA多载波系统可行性研究

    电子发烧友网站提供《AN-0974: TD-SCMA多载波系统可行性研究.pdf》资料免费下载
    发表于 01-13 14:12 0次下载
    AN-0974: TD-SCMA多载波系统<b class='flag-5'>可行性</b>研究

    关于电气火灾监控系统与电气火灾防护在实际应用中的可行性分析

    摘要:在社会发展水平不断提升的背景下,人们的用电量逐渐攀升,电气火灾发生率也有所上升,只有做好火灾监控与防护工作才能够保障用电安全。基于此,针对电气火灾监控系统与电气火灾防护进行了分析,以期优化电气
    的头像 发表于 12-18 10:49 794次阅读
    <b class='flag-5'>关于</b>电气火灾监控系统与电气火灾防护在实际应用中的<b class='flag-5'>可行性</b><b class='flag-5'>分析</b>

    基于智能照明系统在民用建筑中的可行性研究分析

    照明系统为主要探讨内容,着重阐述民用建筑电气中智能照明控制系统的工作模式及功能,并对智能照明控制系统的设计要点进行了分析,详细介绍了智能照明控制系统在民用建筑电气中的用。 关键词:民用建筑;电气;智能照明控制
    的头像 发表于 12-16 11:18 822次阅读
    基于智能照明系统在民用建筑中的<b class='flag-5'>可行性</b>研究<b class='flag-5'>分析</b>