随着设计系统越来越复杂,尤其是验证与确认阶段需要更高的成本和更多的时间,很多情况下甚至比设计本身更复杂,工程师正面临着越来越多的挑战:比如开发的算法如何无缝扩展应用到系统开发中;系统仿真中,如何降低由于物理样机建立过程产生的误差对设计精确度的影响;如何在硬件平台上仿真设计的模型系统。
为了解决这些系统开发瓶颈,MathWorks公司提出了基于模型设计(Model-Based Design, MBD)的系统开发理念。其意义在于——“用虚拟模型描述系统中相对应的每一部分的物理原型,并在一个软件环境中对整个系统进行仿真,以便及时做出设计改进。”
与传统设计方法的区别
“传统开发流程和MBD之间肯定是存在一些本质区别的。“MathWorks全球副总裁 Richard Rovner解释说,首先,MBD将模型视为可执行规范,使得从需求定义到架构设计,再到测试验证,所有步骤都可以在模型层面进行,灵活性大大增强。
MathWorks全球副总裁 Richard Rovner
也就是说,用户可以通过仿真早期验证设计,避免在量产前才发现问题,从而节省大量的人力物力成本,并加速产品开发周期。相比之下,传统的开发流程就欠缺这样的优势——比如要做汽车控制,在传统流程中就必须要先做出一辆整车才能开始测试、仿真和验证工作,而无法在模型层面解决实际问题。
迭代速度和跨学科协作的便利性,是MBD具备的另外两大优势。众所周知,伴随着系统复杂性的不断提高,产品开发过程中会因为新问题或新功能的出现不断产生迭代,在MBD的加持下,任何新的想法都能够快速实现迭代。
与此同时,新系统的开发正越来越多的涉及跨学科协作,在基于模型的设计流程中,以Simulink为基础平台,将其他框架中的算法导入Simulink之中,使之成为整个大系统仿真的一部分,以此来更好地促进不同学科之间的交流,以及整个平台系统级的仿真,正成为行业共识。
在Richard列举的一个实际案例中,西门子调整了传统的“泳道式”开发流程,转而通过组织机构调整实现了“模型共享”。对比之下不难发现,在“泳道式”开发流程中,各个业务部门只专注于自己的产品开发,彼此之间互不干涉,但很有可能会导致故障问题在量产前才能被发现,效率低下且浪费大量成本;而在模型共享模式下,各个事业部可以在基于模型的开发中心基础之上重复利用这些模型,并在早期通过测试仿真发现问题。
所以,“基于模型的设计”核心就是系统模型,可捕获高级系统行为以及详细的子系统。这些模型会连接到系统需求以进行跟踪和早期验证,子系统模型可以重用已自动生成软件或FPGA实现,这些模型也被重用于集成、验证和校验,无论是在模型级别还是在实际代码上运行,包括硬件在环测试、测试用例生成和功能安全认证过程。
数字化转型中的MBD
目前来看,几乎所有的行业都在发生数字化转型:在工业自动化领域,通过使用数字孪生模型进行实时监控和配置;在汽车工业中,有企业采用地理围栏应用程序的全自动驾驶汽车;新能源领域,有使用预测性维护来提高能源效率的例子;医疗行业,使用智能腕带这样的医疗设备来检测情绪变化;航空业中管理整个机队的维修和运行;金融领域,使用实时数据分析进行更具预测性的风险管理和交易优化等等。
Richard指出,软件定义产品、AI在开发流程中的广泛应用,以及数字孪生技术,是MBD在数字化转型过程中的主要应用趋势。
首先,汽车、军工、航空航天、通讯、软件无线电,所有的产品要实现差异化竞争,几乎都要通过软件定义去实现,这是当前最为显著的趋势之一,在这样的大背景下,MBD会得到大量的应用机会以实现各种差异化竞争的软件功能。同时,考虑到软件系统的高度复杂性和集成性,MBD也有能力将功能软件、新的设计流程和系统架构进行有机的整合,进一步提升MBD的性能。
其次,在开发流程的各个环节,从数据采集、处理到大模型的训练,AI正变得“无处不在”,在整个流程开发过程中发挥着越来越重要的作用。
最后,数字孪生技术的应用范畴也走出了传统的运营领域,以更加宏观的面貌“加入”从设计、研发到测试、生产、运维的各个环节中。仅仅在设计阶段,我们就可以通过数字孪生技术将各部门的需求关联成一个大的子系统,无论是测试验证、代码生成、应用部署,所有环节都可以大量运用数字孪生技术。
“对于大部分客户来说,从传统开发流程转换到MBD就是管理模式的转变,因为它涉及各个部门职责功能的重新定义和彼此间协同模式的改变。在各个组互相连接后,就可以挖掘出组织根本没有意识到的未开发价值。”MathWorks中国区行业市场经理李靖远补充说,用户在MBD转变的过程中需要面对的另一个新挑战,“是系统正变得越来越复杂,很多新兴技术和应用的加入,对从业人员的知识储备提出了更高的要求。”
MathWorks中国区行业市场经理李靖远
AI与MBD融合日趋深入
尽管落地速度不尽相同,但人工智能在很多行业中已经处于蓬勃发展的阶段,是不争的事实。在智能家居、自动驾驶、机器人、网络安全、医疗设备等新兴行业中,得益于良好的数字化技术基础,人工智能的发展和落地就相对较为领先。而在数字化基础相对落后一些的传统行业,例如电力、化工等领域,人工智能、大数据、数字化的普及与转型可以说才刚刚开始,还需要大量的数字化积累。
为了更好的让AI赋能千行百业,除了“低代码、无代码的工具在进行建模仿真之后,可以自动地生成代码,然后再被部署到CPU/MCU/GPU/FPGA等多种类型的边缘设备之上”外,在最新的功能更新中,AI训练出来的模型可以被直接导入到Simulink中,并作为整个大模型的一部分进行系统级仿真,类似的案例在全球范围内有将近100余个。
除了AI建模,数据准备是AI算法中另一个关键步骤。但在现实世界中,用户常常面临数据难以获取的窘境,数据多样性也是挑战,Mathwork的做法是与大量客户展开合作,通过模型去训练病获得大量仿真数据,再将其应用于AI模型训练。
李靖远强调称,在做系统仿真时并非时刻都要追求高精度模型,使用一些降阶模型(Reduced Order Model, ROM)去替代高保真仿真模型以加速仿真速度,也是今后的趋势。因为很多非线性系统,包括流体力学中的多维系统,在实际仿真过程中需要的并不是高保真仿真模型,而是整个系统模型的输入、输出要尽量接近真实。
此时,利用人工智能所实现的降阶模型就有了用武之地,可以将其作为系统的一部分来加快仿真速度。尤其是随着LLM大模型使用量的日益增加,设计人员在进行需求分析时可以借助LLM大模型去提取、验证各种需求。
中小企业如何拥抱MBD?
尽管MBD为企业带来了巨大的数字化红利,但对更多的中小企业而言,他们或是没有足够的研发实力,或是对流程改变所带来的风险有所忌惮,也不一定有足够的人力去做验证,那么,他们该如何接纳并拥抱MBD?
Richard给出的建议是首先“从小处做起”,因为从开始的需求分析到最后的模型部署,整个开发流程是一个大系统,中小公司可以先从“小环境”做起,比如先构建Simulink模型,先通过仿真、测试去验证一部分算法,然后再逐步扩展到整个系统。同时,积极参与实际的项目运营,在实践中提升知识和经验储备也十分必要。
MathWorks也同时准备了大量的资源,从免费的公开课程,到Webinar讲解,再到数百个公开的各行各业应用案例、以及社区论坛交流群,都可以很好的帮助新入门用户尽快掌握MBD的开发流程。
资料显示,在MATLAB的生态圈中,无论是MATLAB File Exchange、GitHub上超过20万个的代码库,还是基于各行各业的代码库,都是开源的。当前MathWorks在全球有超过190个国家和地区、超过500万的用户在使用MATLAB来构建其系统设计和控制策略开发产品,同时在全球有超过10万家的企业用户、政府研究机构及大学用户在广泛地使用MATLAB。同时,MathWorks还与超过500家的第三方公司在编译器、模拟仿真、硬件在环测试等领域展开合作,他们都可以基于MATLAB构建属于自己的产品体系。
“我个人还有两点建议:一是多关注行业动态和标准,二是建立良好的沟通能力,这对于尽快构建MBD流程也十分重要。”Richard表示,MBD涉及的行业领域众多,尽管MathWorks在MBD过程中已经集成了相当多的行业规范,但使用者还是要及时了解这些规范和标准的最新进展。
同时,考虑到跨学科之间的研究和合作变得越来越多,MathWorks不但已推出超过100个工具箱,包括各个学科、各个领域的成熟模型和算法,使得客户可以充分利用这些模型和算法进行跨学科研究。同时,还提供了跨学科的平台,可以把客户在机械、电子、液压控制等多域模型统一集成在MATLAB平台上,从而进行系统级的开发仿真。
结语
总体而言,“基于模型的设计”就是要先将算法模型化、物理建模模型化,以及环境模型化,然后基于MATLAB与Simulink平台,在后续的设计中不断进行仿真,再用自动代码生成工具产生实际系统所需的软件代码。这种设计方法可以让工程师在设计初期即能运用实际可行的模型进行系统测试与仿真,实际上是将测试提前到了仿真阶段,力争尽早发现并解决问题,而且可以排除由于人工介入可能导致的错误。
Richard同时指出,随着自主化、互联性和电气化成为智能互联时代的鲜明特征,MBD的未来将继续与上述技术发展同步,并不断扩展到更复杂的系统和持续集成的软件实践之中。