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

    文章

    6898

    浏览量

    88838
  • 输入信号
    +关注

    关注

    0

    文章

    446

    浏览量

    12540
收藏 人收藏

    评论

    相关推荐

    请问带调零的同相放大电路可行吗?

    实现同相放大的同时有兼顾调零(不想用两个反向放大器实现),后面接的分压电阻是为了缩小电压输出的,请教可行性
    发表于 09-20 15:04

    单CPU 双项目开发实现更好的维护可行性应用说明

    电子发烧友网站提供《单CPU 双项目开发实现更好的维护可行性应用说明.pdf》资料免费下载
    发表于 09-12 09:42 0次下载
    单CPU 双项目开发实现更好的维护<b class='flag-5'>性</b>和<b class='flag-5'>可行性</b>应用说明

    人脸识别技术的可行性在于矛盾具有什么

    矛盾的普遍角度,探讨人脸识别技术的可行性,并分析其在实际应用中所面临的矛盾和问题。 二、人脸识别技术概述 人脸识别技术的定义 人脸识别技术是一种基于人脸特征信息进行身份识别的技术。它通过采集人脸图像,提取人脸
    的头像 发表于 07-04 09:28 460次阅读

    防静电的可行性措施

    静电防护是一种具有系统、站体化、全过程的综合工作,不但需要相当复杂的相关技术措施,而且需要强有力的和健全的治理措施;不但要求工程技术人员参和,理要求操作人员、使用及维护人员参和。
    的头像 发表于 07-03 15:54 244次阅读

    影响气密测试结果的原因分析及解决方案分享

    影响气密测试结果的原因分析及解决方案分享现在的制造业,对产品的气密性能都是要求很高的,通过气密测试
    的头像 发表于 05-30 08:30 1661次阅读
    影响气密<b class='flag-5'>性</b><b class='flag-5'>测试</b>结果的<b class='flag-5'>原因</b><b class='flag-5'>分析</b>及解决方案分享

    振弦采集仪在岩土工程地质灾害监测中的可行性研究

    和演化过程,振弦采集仪作为一种新型地质灾害监测设备,具有可行性。 振弦采集仪在岩土工程地质灾害监测中的可行性研究 一、振弦采集仪简介: 振弦采集仪是一种利用共振原理进行测量的地震仪器,通过对振弦频率信号的分析,可
    的头像 发表于 05-28 14:09 295次阅读
    振弦采集仪在岩土工程地质灾害监测中的<b class='flag-5'>可行性</b>研究

    关于电化学储能的BMS可行性方案

    基于嵌入式ARM核心板实现的BMS可行性方案,希望可帮助相关企业作为参考。 二、电池管理系统(BMS)BMS主要由电池阵列管理单元(BAMS)、电池蔟管理单元(BCMS)以及电池管理单元(BMU)组成
    发表于 05-16 17:08

    绝缘电阻测试仪的常见故障和原因分析

    测试仪可能会出现各种故障,影响测试结果的准确和可靠。本文将对绝缘电阻测试仪的常见故障进行梳理,并深入
    的头像 发表于 05-11 16:29 2831次阅读

    电阻测试仪的常见故障和原因分析

    电阻测试仪作为电子和电气领域的重要测试工具,用于测量电阻值以评估电气元件或电路的工作状态。然而,在实际使用过程中,电阻测试仪可能会遇到各种故障,影响测试结果的准确
    的头像 发表于 05-11 16:28 2076次阅读

    芯片测试和封装包含哪些流程

    测试准备阶段,需要对测试环境、测试数据和测试设备进行准备。同时需要对测试方案进行评估和修订,以确保测试
    的头像 发表于 05-08 16:55 751次阅读

    振弦采集仪在地下水位监测中的可行性研究与实践

    振弦采集仪在地下水位监测中的可行性研究与实践 地下水位的监测对于水资源管理和地下水环境保护具有重要意义。传统的地下水位监测方法主要包括井水位计、压力传感器和雨水入渗监测等。然而,这些方法存在着一些
    的头像 发表于 04-08 13:38 253次阅读
    振弦采集仪在地下水位监测中的<b class='flag-5'>可行性</b>研究与实践

    高压探头测量相间电压的可行性与注意事项

    可行性,并介绍在使用高压探头测量相间电压时需要注意的事项。 高压探头的原理: 高压探头是一种专门设计用于测量高电压的探头。它通常由绝缘材料包围,以确保安全,并具有适当的电气特性来处理高电压。高压探头通过
    的头像 发表于 04-07 14:24 482次阅读
    高压探头测量相间电压的<b class='flag-5'>可行性</b>与注意事项

    七段式SVPWM优化电机电磁噪声的量产可行性验证

    七段式SVPWM优化电机电磁噪声的量产可行性验证
    的头像 发表于 03-21 17:28 1082次阅读
    七段式SVPWM优化电机电磁噪声的量产<b class='flag-5'>可行性</b>验证

    Power Short 怎么测试

    如何测试Power Short,包括测试方法、测试环境、测试流程以及需要关注的安全事项等,旨在帮助读者深入了解Power Short测试的重
    的头像 发表于 01-09 14:11 2781次阅读

    连续测试仪电路原理图

    在建立任何电气连接之前,连续测试仪是电气测试设备的重要组成部分。它用于确定在两点之间创建电气通道或形成电路的可行性。在连接仪器之前,确保待测电路完全断电至关重要。
    的头像 发表于 12-13 17:35 721次阅读
    连续<b class='flag-5'>性</b><b class='flag-5'>测试</b>仪电路原理图