随着电子设计不断向高阶发展,验证的复杂度成为各行业所面临的一个共同问题。调查显示,设计者超过50%的精力都花费在了系统的测试和验证方面,这远远超过了系统需求分析和设计时间。如何进行正确的需求分析,成为产品成功的关键问题之一。
随着系统越来越复杂,需求可能不断地变化以满足市场变化,电子产品的功能验证面临着非常大的挑战,也称为验证危机。随着设计复杂度的增加,功能验证成为不可逾越的挑战。如何保证验证的有效性,正在考验着众多设计团队。
设计者目前面临的挑战是,在一些特定领域中,大部分问题都来自于需求阶段。软件设计能够正常工作,但需求本身是否正确?不充分的需求确认,以及从系统需求到软件需求的缺陷流程,这些问题是导致大量错误的根源。据调查显示,大约55%的错误是在最终测试阶段才发现的。而事实上,有60%的错误是在需求设定的阶段引入的。错误的引入与检测之间的鸿沟导致修复错误需要巨大的成本和时间代价。所以尽早发现错误,是设计者们迫切的要求之一。
早期验证 ,是The Mathworks 公司为面临着验证挑战的设计者们提出的新设计理念。The MathWorks公司Fellow(首席研究员) Jim Tung强调,早期验证可以实现在流程中尽可能少地引入错误,尽早地发现错误。这也是早期验证所承诺的设计目标。
早期验证可以将设计和需求紧密结合,特点包括:利用可执行的规范获得精确的需求,其中包括可执行的模型和可仿真的规范;使用模型作为算法和所有组件的系统级测试平台,准确反映每个部件对系统的影响;对系统的设计权衡、组件的交互以及研究系统的集成度进行仿真和评估;从虚拟系统集成到完成系统开发,在整个流程中重复利用相同的测试平台。
在MathWorks看来,基于各个设计者对模型设计的实施程度,用户可分为三大类:
基于模型的设计的高级用户
第一类,针对高级基于模型的设计(MBD)用户。这些用户大都是构建复杂控制系统的大型团队,一般处于航空航天、国防和汽车领域。对于这类用户,设计已经不再是“简单 建模 加设计仿真”的模式了,而是采用了高级的基于模型的设计(MBD)使建模和需求联系在一起。
这类用户通常会在设计流程中发现问题:如何使设计有效地满足系统需求。造成这个困扰的原因是,虽然他们使用了一些仿真技术,但并没有在需求分析阶段中系统化地使用仿真技术,以验证系统分析本身的准确性。关键的问题没有出现在系统实现的细节上面,而是系统本身不符合需求。这就是这类用户面临的最大问题,也是实现一个复杂控制系统所面临的共同问题。
这类问题发生在开发流程的最初阶段,而早期验证相当于对系统进行虚拟集成验证,不仅针对单独的组件部分,还包括系统集成,以保证匹配最初需求。Jim Tung表示,早期验证不需要特殊的测试硬件,或者特殊的实验室,所有仿真都在桌面上进行。将不同组件集成后进行仿真,达成虚拟集成和测试,保证系统在最终实现时运转起来,以及早发现错误并及时更正。
另外的关键因素是确保高度集成的系统里不会出现代价高昂的设计错误。当参与一个单系统设计的团队数量不断跨区域和时区扩展时,在设计流程的早期保持沟通和彻底验证就显得尤其重要。早期验证可以为团队中的工程师共享系统规范和开发观念提供公共的平台,以优化他们的设计并且更好地理解这些复杂的集成系统。
复杂控制系统型用户
第二类,针对正在逐步开始使用基于模型设计的用户,多数处于工业自动化和机械、计算机、办公室设备、消费品、仪器、医疗等领域。这类开发控制系统的中小型团队,尚未使用模型开发系统,要在原型机上手动调节控制器算法,并且系统设计涉及到了多个领域,如控制系统、机械部件、算法开发、电子部件等。他们遇到的问题是,控制系统的复杂性超出现有流程的控制能力,更加关注如何将外部工具整合到系统中。
当系统中的机械部分变得更加复杂,系统需要更复杂的控制器。这类团队会根据系统规范直接对微控制器或者PLC进行编程,在样机或真实系统中手动调节控制器算法,而往往因为系统各部件的独立性、难以描述的系统规范等问题,交付或质量出现问题,导致投资回报率下降。
对于这类用户来说,早期验证就意味着建模,包括环境模型、定时和控制逻辑、电子、机械,甚至算法。准确反映需求细节产生的可执行规范可以代替纸质文档,在早期建模阶段完成测试和迭代。通过早期验证,工程师们就可以在处理硬件或原型之前将建模与仿真应用到他们的系统和控制器中。使用这种方法,用户就可以设计和开发工厂和控制系统的多域模型,运行桌面仿真以尽早发现和修复设计和集成问题,并在生产之前实时测试控制系统,在硬件阶段之前重复试验并且找到潜在设计缺陷。
据Jim Tung介绍,这类设计可以从理想的模型开始,逐次迭代,以满足最终系统需求,逐步细化模型,引入新的参数和外界影响,反映出最终硬件环境特征和系统影响。根据参数估计,可以完全匹配外界环境。
www.55dianzi.com
Jim Tung表示,这并不是一个全新的理念,据2008年Aberdeen Group进行的调查显示,超过50%的一流公司对集成了电子和软件组件的系统进行全面仿真以预测产品行为,而超过60%的一流公司通过系统模型仿真控制进行系统化的仿真。可见,仿真和 建模 是构成公司成功的重要因素之一。
此外,不仅在系统实现方面,工程师还可进行快速实时测试,来检验需求的正确性。通过自动生成代码,进行快速原型,模型可以作为实际微控制器、FPGA和PLC的测试平台,还可以进行硬件再回路仿真和其他支持测试。
算法集中型用户
第三类,针对算法集中型的设计团队。信号处理、图像处理和通信系统设计团队经常开发包括模拟、数字和软件组件的复杂系统,这些组件由处于不同领域的小型团队创建,只有当完整的系统原型完成之后才能测试这些组件。通常,设计者会使用MATLAB 进行基本算法的研究,针对软件、数字硬件以及模拟硬件等不同组件,会使用不同的开发工具和独立的开发流程。
这类设计团队遇到的挑战不在单独的流程中,而在系统级集成上。复杂的环境使验证仿真存在问题,导致验证时间和成本的加剧。设计过程中,问题集中在设计开发和实际结果的脱节,算法并不能按照预期效果工作。由于流程相互独立,系统集成后验证的代价会大大增加,大多数错误也只能在最终测试阶段被发现,因此修复代价异常昂贵。
不同于EDA工具, 早期验证 是一种系统层面的验证,而非集中在单独流程上。对这类公司来说,意味着要在更高级别进行系统抽象,将硬件、模拟设计等整合到更抽象的模型上,进行完整的系统规范,对模型进行仿真。早期验证提供完整的测试环境,系统工程师可以方便的进行系统测试,以及单独组件测试。而单独组件工程师,只需在模型上不断细化模型,混合不同的抽象机制,为系统的其它设计人员提供更多信息,全球团队能跨多专业领域开发、共享和集成设计和规范。
可以通过将开发工具整合在一起,用户可以将MATLAB作为环境参考模型,以此基础上开发测试平台,作为系统测试的基本环境。The Mathworks 提供第三方接口,可以进行联合仿真甚至模拟电路。还可以利用自动代码生成,进行快速系统原型。通过将算法过程与实现联系在一起,可以提高设计验证和原型测试的速度。在设计被交付给硬件和软件实施团队的时候,可以缩短设计周期,并确保准确度。基于模型设计的方法,使系统开发事半功倍,帮助减少在稍后的开发过程中校正软件设计缺陷方面所需的时间和工作量。
本文关键字:模型设计 综合-其它,单片机-工控设备 - 综合-其它