有关基于模型的设计(MBD)一些概念和理解
mbd的应用与原理

MBD的应用与原理简介MBD (Model-Based Design)是一种通过建立数学模型、进行设计和验证的方法论,用于开发复杂系统。
它逐渐成为现代软件开发领域的重要工具,被广泛应用于各个领域,例如航空航天、汽车工业、医疗器械等。
本文将介绍MBD的应用场景以及其背后的原理。
MBD的应用场景MBD可以应用于各种系统开发领域,以下列举几个常见的应用场景:汽车工业现在的汽车越来越智能化和复杂化,MBD可以帮助汽车制造商设计和验证各种控制算法和系统。
例如,MBD可以用于设计车辆的动力系统、刹车系统、稳定性控制系统等。
航空航天航空航天领域对系统的可靠性和安全性要求非常高,MBD可以在系统设计阶段就进行模型验证,减少在实际测试中出现的错误和故障。
例如,MBD可以应用于设计飞机的飞行管理系统、导航系统等。
医疗器械医疗器械的设计和开发需要从理论到实际的各个环节进行严格的验证和测试。
MBD可以帮助医疗器械制造商在设计阶段就发现问题,并高效地解决。
例如,MBD可以用于设计和验证心脏起博器、呼吸机等医疗设备。
通信系统通信系统的设计中需要考虑信号传输的可靠性、带宽利用率等因素。
MBD可以帮助通信系统的设计者进行系统建模、性能评估等工作。
例如,MBD可以应用于设计无线通信系统、网络协议等。
MBD的原理MBD的核心原理是通过建立数学模型来描述系统的行为,并在模型基础上进行设计和验证。
以下是MBD的一般原理流程:1.建立数学模型:首先,需要对系统进行建模。
建模可以采用传统的物理建模方法,也可以使用系统的逻辑模型。
模型可以通过数学公式、状态方程、状态转移图等形式来描述系统的行为。
2.设计系统:在得到系统模型后,可以使用各种工具和方法进行系统设计。
设计的目标是满足系统的要求,使系统在特定的条件下正常工作。
3.验证系统:设计完成后,需要对系统进行验证,以确保系统的正确性和可靠性。
验证可以通过模拟、仿真等方式进行。
模拟和仿真可以对系统模型进行各种测试,例如性能测试、功能测试等。
《基于MBD的三维装配工艺信息集成技术研究》

《基于MBD的三维装配工艺信息集成技术研究》一、引言随着制造业的快速发展,三维数字化技术在装配工艺中的应用越来越广泛。
其中,基于模型定义(Model Based Definition,MBD)的技术在三维装配工艺信息集成方面发挥着重要作用。
MBD技术以三维模型为基础,实现了产品定义信息的集成和共享,从而提高了装配工艺的效率和精度。
本文旨在研究基于MBD的三维装配工艺信息集成技术,探讨其应用现状、优势及挑战,并提出相应的解决方案。
二、MBD技术概述MBD技术是一种基于三维模型的产品定义方法,它将产品的设计、制造、装配等信息全部集成在单一的三维模型中。
通过MBD技术,可以实现产品信息的全面共享和快速传递,从而提高产品的研发效率和生产效率。
在三维装配工艺中,MBD技术可以提供丰富的装配信息,如装配顺序、装配路径、装配力等,为装配工艺的优化提供了有力的支持。
三、三维装配工艺信息集成技术研究基于MBD的三维装配工艺信息集成技术,是将产品的三维模型、装配信息、工艺信息等进行集成和共享。
通过该技术,可以实现装配工艺的数字化、智能化和可视化,从而提高装配效率和精度。
1. 集成方式基于MBD的三维装配工艺信息集成方式主要包括模型集成、信息集成和过程集成。
模型集成是将产品的三维模型进行整合和优化,形成完整的产品模型;信息集成是将产品的设计、制造、装配等信息进行集成和共享;过程集成则是将产品的生产过程进行数字化建模和优化,实现生产过程的智能化和可视化。
2. 关键技术在基于MBD的三维装配工艺信息集成技术中,关键技术包括三维建模技术、信息提取技术、工艺规划技术和仿真技术等。
其中,三维建模技术是实现信息集成的基础,信息提取技术可以从三维模型中提取出装配信息、工艺信息等;工艺规划技术则根据产品的特点和要求,制定出合理的装配工艺和生产流程;仿真技术则可以对装配过程进行模拟和优化,提高装配效率和精度。
四、应用现状及优势基于MBD的三维装配工艺信息集成技术已经在许多企业中得到了应用。
基于模型的设计

基于模型的设计基于模型的设计 (Model-Based Design, MBD) 是一种软件开发方法,通过使用模型来设计、构建和验证系统。
这些模型可以是数学模型、物理模型或计算机模型,用于描述和预测系统的行为。
基于模型的设计可以应用于各种领域,包括航天、汽车、医疗设备和工业自动化等。
基于模型的设计方法的核心思想是使用模型来代替传统的手动编程方法。
通过使用模型,工程师可以更容易地描述系统的功能和行为,并可以通过仿真和验证来检查设计的正确性。
这减少了错误,加快了开发周期,并提高了系统的可靠性。
2.模型验证:一旦模型创建完成,就可以使用仿真来验证模型的正确性。
通过在模型中输入不同的输入和参数,可以模拟系统的行为,并观察系统的响应。
这允许工程师在实际系统构建之前检查模型的正确性和性能。
3.代码生成:一旦模型验证通过,就可以通过代码生成工具将模型转换成可执行的代码。
这些代码可以是C、C++或其他编程语言。
这些代码可以直接用于系统的实现和部署,减少了手动编程的工作量和错误。
4.部署和测试:生成的代码可以在目标硬件上进行部署和测试。
这包括将代码编译和链接到目标硬件上,然后在硬件上进行测试。
通过在系统的实际硬件上进行测试,可以验证系统的功能和性能,并及时发现和修复问题。
1.提高开发效率:通过使用模型,开发人员可以更快地设计、构建和验证系统。
模型的可视化表示方式使得系统的开发更直观和易于理解。
此外,模型的重复使用性使得开发人员可以更快地修改和更新系统。
2.提高系统可靠性:通过使用模型进行验证和测试,可以减少系统中的错误和缺陷。
模型的仿真和验证功能可以帮助工程师在实际系统构建之前发现和解决问题。
这减少了开发过程中的返工和修复工作。
3.简化系统维护:基于模型的设计方法使得系统的维护更加简单。
通过模型的重复使用性,开发人员可以更容易地理解和修改系统。
此外,生成的代码是自动生成的,减少了手动编程的错误和困难。
基于模型的设计方法在多个领域得到了广泛应用。
浅析MBD技术在飞机制造检验中的应用

浅析MBD技术在飞机制造检验中的应用随着飞机制造技术的不断发展,为了确保飞机的安全性和可靠性,检验工作显得尤为重要。
而随着数字化技术的不断进步,MBD技术在飞机制造检验中的应用也逐渐成为一种趋势。
本文将从MBD技术的基本概念入手,浅析MBD技术在飞机制造检验中的应用,并探讨其未来发展趋势。
一、MBD技术的基本概念MBD(Model Based Definition)是一种基于模型的定义技术,通过三维模型来定义零部件的尺寸、几何特征、表面处理等信息,避免了传统的二维图纸描述方式,实现了数字化的产品定义。
MBD技术主要由三个方面的内容组成:三维模型、几何尺寸与特征控制以及注释信息。
通过MBD技术,可以实现更加清晰、直观和明确的产品定义信息,避免了二维图纸在传统的产品设计和制造中所存在的不足。
1. 提高检验效率传统的飞机制造检验主要依赖于二维图纸进行指导,检验人员需要根据图纸上的尺寸和特征进行测量和验证,这种方式效率低下且容易出现误差。
而采用MBD技术后,所有的产品定义信息都可以直接在三维模型上体现,检验人员可以利用虚拟现实技术进行全面的检验和验证,大大提高了检验效率和准确性。
2. 精准的尺寸控制飞机制造中的零部件尺寸精度要求非常高,传统的二维图纸在描述尺寸信息时存在歧义性,容易引起误解。
而MBD技术可以直接在三维模型上标注具体的尺寸信息,并实现自动检测和校验,确保了零部件尺寸的精准控制,降低了因尺寸偏差引起的质量问题。
3. 智能化的检验过程MBD技术可以实现与检测设备和工具的连接,实现智能化的检验过程。
在进行飞机制造的检验时,可以借助智能检测设备和软件,直接将产品定义信息导入到检测设备中,实现自动化的检测和数据收集,提高了检验的智能化程度。
4. 支持远程协作利用MBD技术,可以将三维模型和产品定义信息通过网络进行共享,支持远程协作。
在飞机制造中,不同部门、不同厂家之间的协作是非常常见的,采用MBD技术可以实现远程的协作和交流,提高了工作效率和沟通效果。
mbd的名词解释

mbd的名词解释MBD,即Model-Based Design(基于模型的设计),是一种在工程领域广泛应用的设计方法论。
它以模型为中心,通过建立和分析系统的数学模型,实现复杂系统的设计、开发和验证。
MBD集成了建模、仿真、代码生成和自动化测试等环节,帮助工程师在系统设计过程中提高生产力和质量。
本文将对MBD的定义、特点以及应用领域进行解释和分析。
一、MBD的定义MBD可被描述为一种综合利用计算机模型来进行设计和开发的方法。
传统的设计方法往往需要用户手动编写代码,并在实际系统中进行验证。
而MBD则通过使用数学模型来描述系统,代替了繁琐的手写代码过程,从而提高了设计效率和准确性。
MBD常常在各种工程领域中使用,如电子、汽车、航空航天等,以及工业自动化和控制系统等领域。
二、MBD的特点1. 模型驱动:MBD建立在数学模型的基础上,通过建模和仿真来实现系统设计的目标。
用户可以使用各种建模工具,如Simulink等,来构建系统的数学模型,然后进行仿真和验证。
这种模型驱动的设计方法使得工程师能够更加直观地理解系统的行为。
2. 自动化代码生成:MBD不仅可以用于系统设计和仿真,还可以通过自动化代码生成实现系统的实际部署。
通过将数学模型转换为可执行代码,MBD能够大大减少手动编写代码的工作量,确保代码的正确性和一致性。
此外,MBD还可以生成可嵌入式系统使用的代码,如控制器、传感器等,进一步简化系统开发和集成。
3. 紧密集成的工具链:MBD包含了建模、仿真、代码生成和测试等环节,这些环节在一个统一的开发环境中紧密集成。
工程师可以在同一个界面下完成整个设计过程,无需在不同工具之间频繁切换,从而提高了工作效率和可行性。
此外,MBD还支持多人协同工作,使得团队成员之间能够更好地进行沟通和合作。
三、MBD的应用领域1. 汽车工程:MBD在汽车工程领域的应用非常广泛。
通过建立车辆动力学模型,设计师可以对整车性能进行分析和优化,如加速度、转向和刹车等。
依据MBD技术的船舶数据集定义与标注方法

依据MBD技术的船舶数据集定义与标注方法MBD技术(Model-Based Design,基于模型的设计)是一种通过使用实时仿真模型进行系统设计、开发和验证的方法。
在船舶领域,MBD技术可以用于船舶数据集的定义和标注方法。
船舶数据集的定义是指确定需要收集和记录的船舶相关数据的过程。
在MBD技术中,船舶数据集的定义是基于船舶设计和性能要求的。
这些数据可以包括船舶的尺寸、重量、稳性参数、推进系统特性、船舶航行性能等。
通过定义船舶数据集,可以为船舶设计和仿真提供必要的输入和验证。
船舶数据集的标注方法是指对收集到的船舶数据进行注释和标记的过程。
在MBD技术中,船舶数据集的标注方法可以包括以下几个方面:1.标注船舶性能参数:船舶性能参数是船舶数据集中最关键的部分之一、这包括标注船舶的速度、加速度、舵角、推力等信息。
通过标注这些参数,可以准确地模拟船舶在不同情况下的性能。
2.标注船舶航行状态:船舶航行状态包括船舶的位置、航向和姿态等信息。
这些信息是进行船舶运动模拟和控制的基础。
通过标注船舶航行状态,可以为仿真模型提供准确的输入和实时的反馈。
3.标注船舶传感器数据:船舶传感器数据是指通过安装在船舶上的传感器收集到的物理量数据,如温度、压力、湿度等。
通过标注船舶传感器数据,可以为船舶的监测和控制提供实时的信息。
4.标注船舶环境数据:船舶环境数据是指船舶所处环境的相关数据,如海洋环境参数、风速、海浪等。
通过标注船舶环境数据,可以为船舶的设计和运行提供参考和验证。
5.标注船舶系统数据:船舶系统数据是指与船舶相关的系统数据,如推进系统的功率、燃料消耗等。
通过标注船舶系统数据,可以对船舶的性能和效率进行评估和优化。
在使用MBD技术进行船舶数据集的定义和标注时,需要注意以下几个方面:1.数据质量:确保数据的准确性和可靠性,避免数据的误差和偏差对模型和仿真结果的影响。
2.数据一致性:保持数据的一致性,确保各种数据的衔接和关联,以提高模型的准确性和可靠性。
基于模型的设计(MBD)

MBD: Model-based design河北优控新能源科技有限公司自主研发的发动机控制器(ECU),电动车控制器(VCU),变速箱控制器(TCU),混动动力控制器(HCU)都采用模块化设计,功能多样化,支持不同的需求。
软件模型下面详细介绍下基于模型设计的定义及基本步骤。
基于模型的设计(MBD)是一种用数字化和可视化的方法来解决问题和设计相关复杂控制的算法,是一种信号处理和通信系统。
它被广泛应用在许多动向控制、工业设备、航空航天和汽车应用领域。
基于模型的设计方法应用于嵌入式软件设计。
概述基于模型的设计在整个设计过程中提供了一个有效方法来建立一个共同通信框架,同时支持开发周期(“V”图)。
在基于模型控制系统的设计、开发体现在这四个步骤:模型设计建设;模型控制器的分析和合成;模型和控制器的模拟集成所有这些阶段模型的控制器。
基于模型的设计范式与传统的设计方法有着显著的不同。
设计人员可以使用基于模型的设计来定义模型,采用连续时间和离散时间的建筑块,而不是使用复杂的结构和广泛的软件代码,设计人员可以使用模型为基础的设计。
这些内置的模型与仿真工具,可以导致快速原型,软件测试和验证。
不仅是测试和验证过程增强,而且,在某些情况下,硬件在环仿真可以使用新的设计范例,以执行测试的动态效果更快速,更有效地比传统的设计方法。
历史电时代的曙光带来了许多创新和先进的控制系统,早在20世纪20年代的工程、控制理论与控制系统这两个方面的融合,使大型集成系统成为可能。
在那些早期的控制系统中,通常在工业环境中使用。
大型过程设备开始使用过程控制器,用于调节连续变量,如温度,压力和流量。
内置梯形网络的电气继电器是第一个独立的控制设备,自动化的整个生产过程。
控制系统获得的势头,主要是在汽车和航空航天部门。
在上世纪五十年代和60年代,在嵌入式控制系统中对空间产生了兴趣。
工程师建造的控制系统,如发动机控制单元和飞行模拟器,这可能是部分的最终产品。
MBD技术的定义与运用分析

MBD技术的定义与运用分析作者:祝光旭来源:《科技资讯》2017年第25期DOI:10.16661/ki.1672-3791.2017.25.005摘要:三维模型的定义正在引领全球制造业的一场技术革新。
其影响力不亚于从手工绘图到计算机绘图的变革。
基于模型的定义(MBD)全三维设计技术,是将产品所有相关设计定义、设计属性和加工制造信息等都在产品三维模型中进行数字化三维定义,实现设计到加工无纸化操作。
该技术源于波音公司,目前在中国航空领域得到广泛运用。
为了让广大制造业企业更加深入了解MBD技术,文章针对MBD技术如何在制造业企业运用进行阐述。
关键词:三维模型定义 MBD技术数字化样机无纸化中图分类号:TH122 文献标识码:A 文章编号:1672-3791(2017)09(a)-0005-02随着国产商用大飞机C919试飞成功,中国制造得到了世界认可。
伴随着国内外媒体的深入报道,在C919研制过程中,先进的技术手段和系统被人们所熟知。
MBD技术是目前大家广泛关注的技术之一。
MBD(Model Based Definition)技术作为数字化协同设计制造技术的技术信息载体是数字化协同设计制造技术中的关键应用技术,是设计与制造部门必须紧密协同,实现无纸化制造的必要手段。
1 产品设计定义演变过程产品设计定义需要明白、清晰的表达。
在古代,中国就有物理实体模型和二维绘图法表达工程设计思想。
从1795年法国科学家蒙日系统的提出画法几何原理,以及1840年发明蓝图以来,工程师们一直使用标准手绘二维平面工程视图来表达产品设计,手绘二维工程图代表了第一代工程语言。
在科学技术飞速发展的近百年间,工程技术发生了巨大变化,特别是随着计算机的飞速发展,工程设计手段和工具也产生了颠覆式的演变。
纵观发展演变过程,可以分为三个阶段。
第一阶段。
手工二维图。
基于画法几何原理用标准化的手绘二维图表达三维实体的定义方法。
但是表达的方式对传递设计信息可能存在歧义,手工绘制过程需要设计人员具备较高的绘图能力和三维空间思维能力,设计图纸质量和标准化很难保证。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
有关基于模型的设计(MBD)一些概念和理解先胡乱问几个大问题:1.什么叫基于模型的设计?2.为什么要基于模型的设计?3.基于模型的设计过程中,需要做什么事情?再问几个小问题:1.模型验证是否必要?2.模型验证有哪些工作可以做?3.模型验证是否一定需要被控对象模型?4.代码生成效率如何?5.底层驱动是否要建模?6.Embedded Coder(以前的RTW Embedded Coder)支持哪些芯片?、SIL、PIL、HIL的目的和实现方式?8.如何定点化?9.如何做代码集成?什么叫基于模型的设计?这是一个很大的话题,因为本人能力所限,仅讨论使用Simulink模型开发嵌入式软件的设计过程。
也就是说,我只能聊基于模型的嵌入式软件设计。
我的理解是,通过对算法建模进行软件设计的过程,都可以叫基于模型的设计。
当然,如果仅限于算法建模,把Simulink/Stateflow当做Visio使用,而不去进行其他环节的工作,这样的基于模型设计是不完整的,可能对你的开发效率不会有很大的提升。
如果想通过基于模型的设计提升软件开发团队的开发效率,提高软件品质,我觉得至少有如下几点可以考虑:1.算法建模2.算法模型的验证3.文档自动化4.代码生成5. 代码和模型的等效性验证传统的开发过程中,我们有一个环节,需求捕获,也即,从系统需求分解出软件需求。
在基于模型的设计过程中,我们同样可以通过分析系统需求,获得软件需求。
当然,根据系统需求的详细程度,我们可以考虑是否要写专门的软件需求。
在基于模型的软件设计中,我们主要关心的是系统的功能需求,或者说可以通过软件实现的功能需求。
如果这部分需求在系统需求文档里已经有非常清楚的定义,那么我们可以以系统需求文档作为依据建立模型。
当然,如果系统需求不是足够清楚,那我们有必要编写专门的软件需求文档。
如果不考虑Simulink/Stateflow的应用上的问题,也就是说,如果我们都是熟练的Simulink/Stateflow用户,那么建模过程的主要工作是需求分析,通俗点讲,需求弄清楚了,建模也就是非常简单的事情了。
当然,建模的时候,要考虑未来的验证、实现以及后期维护的问题。
我个人的体会,这个阶段,不要着急建模,一定要先弄清需求,另外,建模的时候,模型架构非常重要。
有了模型之后,接下来要做什么事情?代码生成?这是很多比较初级的用户容易犯的错误,犯这个错误的用户,很大程度上是因为没有弄清楚为什么要做基于模型的设计?为什么要做基于模型的设计?我相信很多用户没有仔细考虑这个问题,很多用户做基于模型的设计的理由是:国外的公司都这么做,同行其他公司都这么做......弄清为什么要基于模型的设计,也就是要弄清楚基于模型的设计到底可以给我们带来哪些好处?很多人会非常自然的想到,代码生成,代码生成可以提高软件开发效率。
没错,代码生成是一个很大的好处,但,代码生成不是唯一的,也不是最大的好处。
最大的好处是,算法的早期验证,之前NASA有研究表明,开发初期引入的bug,如果到了晚期才发现出来,那么修复这一的bug,会产生非常大的费用。
所以,我们期望能够尽早的发现开发过程中引入的bug。
如何尽早的发现设计上的错误?传统的开发模式里,我们使用review的方式去发现错误,在质量体系ISO9001里面有定义,任何一份设计,都必须要评审。
评审的目的,也就是为了发现这个阶段的错误,以防错误被带到后续的开发过程中。
而评审的效率,却是非常低下的。
我想凡是参加评审的网友都会有体会。
比如,我在做完一份设计之后,我会邀请我的同事来评审我的工作,而参加评审的这些同事,往往不能有足够的时间了解我的这份工作,而只能在评审会上听我介绍我做的工作,这样的评审,可能会发现一些非常明显的问题,除此之外的,很难发现问题。
评审作为一种非常传统的验证方式,并不能及时发现设计过程中引入的各种错误。
而仿真,从效率上讲,要远高于评审,仿真更容易发现设计中的问题。
仿真是可以运行的,如果我们设定一些输入,运行模型之后,我们会得到相应的输出,我们很容易观测到此时的输出是否是我们期望的输出。
另外还有好处,仿真的结果是确定的,给定输入,就会得到确定的输出,当然,期望输出也是确定的。
而不像评审,同样的文字,对于不同人,可能理解成不同的含义。
代码生成和早期验证之外,基于模型的设计,还可以给我们带来其他好处,比如文档自动化。
我们经常听到这样的说法:•我们终于把软件发布出去了,现在可以有时间补文档了...•下个月要audit了,所有同事都在补文档....这里我要问:为什么要补文档?补文档,我们可以从中得到两个方面的信息:1.文档很重要,不能没有,至少从质量体系上要求我们必须有文档2.工程师都不愿意写文档,是啊,如果愿意写文档的话,在开发过程中自然会把各类文档写起来的。
好,工程师不愿意写,开发过程中又不能少,如果计算机可以帮我们写,岂不是很美好的事情。
基于模型的设计,可以帮助我们实现文档自动化,至少有相当大的一部分文档可以让计算机替我们写。
其实,基于模型的设计,还有一个天然的优势:图形化设计。
对于工程师来讲,图形化的东西,本身就比文字更容易理解,否则我们在软件开发过程中也不会去画流程图和状态机了所以总结一下,基于模型的设计可以从以下方面给我们提供便利:1. 图形化设计2. 早期验证3. 代码生成4. 文档自动化前面我大概论述了为什么要做基于模型的设计,或者说基于模型的设计可以给我们带来哪些好处。
这些好处,最终会大大提高开发效率,并且改善软件品质。
下面,我在说说基于模型的设计里有哪些事情要做,刘博士说的没错,基于模型的设计,自然模型最重要,如何建模,毫无疑问是最为重要的环节。
在软件产品开发中,建模活动里,耗时最多的,就应该是需求分析了,需求分析不仅包括如何正确理解软件需求,而且要考虑如何通过模型实现,真正的画模型的时间,相比之下并不多,如果Simulink/Stateflow用的熟的话,真正打开MATLAB画模型的时间占建模阶段总时间的1/3都不到。
建模之后,接下来就是模型验证,验证,英文单词Verification,英文里面还有另外一个词Validation,确认,很多人不清楚这两个词之间的区别,通俗点讲:Verification是考察你是否正确的做了一件事,而Validation,则是考察你是否做出了正确的东西。
一个强调的是过程,一个在乎的是结果。
闲话少说,咱们继续回到模型验证上来,通常模型验证包含如下活动:建模标准的检查、评审、单元测试、快速原型。
(如果说的不完善,欢迎大家补充)建模标准的检查,可以通过模型检查工具自动完成,建模标准检查的意义,和传统开发模式里C编码标准的意义一致,这里不展开了。
模型验证之后,接下来就可以做代码生成了,有关代码生成,也专门讨论吧。
1.代码生成之后,需要做代码验证,基于模型的开发过程里面,SIL、PIL都是常用的代码验证方式。
2.在代码做完SIL或者PIL测试之后,要考虑软件集成了,即应用层软件,也就是通过Simulink模型生成的软件,和底层驱动软件之间的集成。
3.软件集成之后,后面的事情,基本上和传统的开发模式差不多了,当然,相对于传统的开发模式,你可以多一个HIL环节出来,不过话又说回来,即便是传统的开发模式,也一样可以有HIL这个环节的。
有关HIL的实现及目的,以后再说。
再说说模型验证的必要性。
我在进入MathWorks之后,接触过很多客户,不少客户在最初引入基于模型设计的时候,根本不在意模型验证工作,他们经常在模型编译通过之后就拿去生成代码,有了代码之后将代码下载到各种快速原型设备上去测试算法,Simulink的仿真功能基本上成了摆设。
并且在这个阶段,不管我如何苦口婆心的给他们介绍模型验证的重要性,在他们那边,却总有各种各样的借口去省略模型验证环节,“项目时间太紧,模型来不及测”,“我们知道规范的开发流程,但是现在人手不够”。
当然,这类用户经常在这样折腾了一段时间之后,还是要回到模型测试上来,他们最终会发现,在HIL设备上测试算法,实在太难,当然,也有坚持的,坚持的结果就是他们所谓的基于模型的设计,开发效率比传统的开发模式高不了多少。
其实,这个问题我们可以这么去看,模型阶段的测试,我们是可以分模块进行的,而HIL上测试,基本上是集成之后的软件。
比如,一个软件有10个模块,在HIL设备上,你很难分离出每个模块的bug,而如果是按模块做单元测试,则就是针对的一个具体的模块。
打一个不算恰当的比方,我们都知道一块2克拉的钻石,价格肯定不是一块1克拉钻石的两倍。
类似的,如果每个软件模块有2个bug,那么你从集成好的软件里去消除这20个bug,耗费的精力肯定不是从每个单元模块里去消除bug所耗精力的总和。
说白了,早期验证是非常重要的,很多软件工程的教材里都有相关的统计数据说明早期验证的重要性,对应到基于模型的开发过程,能在模型级别做的验证,一定不要拖到后续的环节中。
中国有句老话,“心急吃不了热豆腐”,“项目时间紧”或者“人手不够”不能成为我们忽略模型测试的借口。
继续说一下MBD开发过程中都有哪些验证工作要做。
模型出来并且可以编译之后,首先要做建模标准检查,这个过程使用工具(比如MathWorks公司的Simulink Verification & Validation提供的model advisor)自动化的完成,检查过后,修改模型中不符合公司建模规则的项目。
接下来,就可以进行模型评审了,也就是说,评审的模型有两个前提,一是可以编译的,二是符合公司建模规则的。
这两个前提可以帮助我们消除模型中的一些低级错误,避免在评审过程中有太多的时间花费在这些错误上。
因为评审是建模的工程师和其他同事共同参与的活动,做到上述两个前提,也是对其他同事工作时间的一种尊重。
评审之后,建模的工程师会修改评审中发现的问题,问题多的话,一般会要求修改之后再进行“再评审”,直到在评审中不会发现大量问题。
接下来,我们可以使用Simulink Design Verifier进行模型的结构分析,借助于Simulink Design Verifier自动生成测试用例的功能,去检查结构上是否存在问题,比如是否有不合理的逻辑设计,是否有运行不到的分支等。
再往后,就可以进行模型单元级别的功能测试了。
软件开发过程中,对单元测试的要求是很高的,一般会根据应用的安全性、可靠性要求,给出测试的覆盖率要求。
这个过程中工作量最大的应该是测试用例设计以及测试向量的生成。
测试用例设计,我们一般会根据需求去设计测试用例,当然,也会结合模型结构设计测试用例,这样说来,这里的测试,已经包含了黑盒测试和白盒测试。
有了测试用例,如何把测试用例转换为测试向量,这也是非常重要的环节。