白皮书

工程团队如何应用基于模型的设计

无论在大公司还是小公司,基于模型的设计总是始于小型工程团队,目的往往是为了减少开发时间和成本。这本白皮书概述了实践做法和注意事项,旨在帮助小型团队成功采用基于模型的设计。

节

什么是基于模型的设计?

基于模型的设计为系统开发提供了一种数学性的、形象化的方法。它广泛用于各行各业的多种应用,包括运动控制、信号处理、工业设备以及航空航天和汽车应用。基于模型的设计的核心在于开发全程系统地使用模型,包括需求设定和验证、设计、分析、仿真、自动代码生成以及验证和确认。

基于模型的设计

基于模型的设计:在整个开发过程中系统地使用模型。

基于模型的设计可以补充并支持敏捷开发实践。像敏捷开发一样,基于模型的设计使开发者能够在项目的早期阶段发现缺陷和设计问题,适应需求的变化,并交付满足客户需要的系统。例如,用户可以通过连接持续集成 (CI) 系统来执行快速迭代,从而在整个开发生命周期中自动测试和验证模型与代码。

用户还可以将之前开发的模型进一步用于运营中的系统,从而创建数字孪生来优化系统运营,监控系统状态,并向开发团队提供反馈机制以进行持续改进。这种开发运营一体化方法使得预测性维护和实时故障检测等应用成为可能。

开发运营一体化

开发运营一体化:将从开发到运营的过程自动化、集成化的一整套做法。

工程师创建一个模型来指定系统的行为。该模型由模块图及其他图形元素和文本程序组成,它是一个可执行规范,支持工程师运行仿真来测试多种设计概念并在整个开发过程中验证设计。

  • 可以在整个开发过程中测试、细化和重新测试设计。
  • 建模和仿真使工程师能够快速尝试许多想法,而不需要成本高昂的原型。
  • 测试和验证在早期持续进行,而不是在过程结束时进行,以便在硬件测试之前发现并更正错误。
  • 代码可以从系统模型中生成,这就减少了工作量并避免了手写代码错误。这些代码可用于测试实时仿真和部署到硬件。
  • 模型只需稍加调整,即可重用于后续项目。
节

基于模型的设计入门

如果因系统开发方式变化导致开发减缓,未免得不偿失。在实践层面,这意味着引入任何新工具和流程变化时都要格外小心。尝试新方法和设计工具不免带来风险。根据一些团队的成功经验,要降低此类风险,不妨逐步引入基于模型的设计。他们通常从单个项目入手,探索基于模型的设计相对于当前做法可以取得哪些早期优势。

成功引入基于模型的设计往往需要采取渐进步骤,以此推进项目并避免速度减缓:

  1. 使用项目的一小部分进行试验。
  2. 在初始建模成果的基础上推进。
  3. 使用模型解决特定设计问题。
  4. 着重打好基础。
  5. 利用 MathWorks 专家的经验。

使用项目的一小部分进行试验

一种推荐做法是选取系统中一个新的部分,构建软件行为模型,然后基于模型生成代码。团队成员只需投入少量精力来学习,即可实现这项小小的改变。这将证明:

  • 相对于基于桌面动态地测试 C 代码,模型仿真不仅可以更轻松地调试算法,还能获得更为深层的信息。
  • 无需手写代码即可创建高质量的代码。
  • 代码与模型行为一致。

“借助基于模型的设计,我们得以将大多数的时间花在系统开发和优化上,而几乎不用花时间进行 C 代码实现和调试。就性能而言,在笔记本电脑上运行的 Simulink 模型相比产品级代码没有任何差别。”

在初始建模成果的基础上推进

基于模型的设计带来的另一大价值是系统级仿真。通常,一段代码如果能良好运行,开发者就会将它并入应用,然后会发现软硬件集成问题。(这是自动生成代码和纯手写代码都会遇到的问题。)

与此相对,借助系统级仿真,工程师能够以虚拟方式执行系统集成。为此,工程师需要为系统中的硬件和系统周围环境的基本要素创建一个适当的模型。模型应具备适当的保真度,以确保接口信号采用正确的单位并连接适当的通道,且能捕获正确级别的动态行为来测试算法。

根据这些结果,可以及早了解硬件和嵌入式软件的行为。如果硬件尚在开发之中,或是原型成本过高,这种仿真就尤其重要。

“一般说来,开发过程中需要对原型进行大量修改。但在这个项目中,磁悬浮系统的实际硬件性能与 Simulink 模型的仿真结果一致,因此我们不需要修改测试系统。由于不必构建多个原型,我们节省了时间;而且,考虑到每个原型造价 2 万到 3 万美元,我们还大大节省了成本。”

使用模型解决特定设计问题

即使不开发全尺寸被控对象、环境和算法模型,工程师也可以获得有针对性优势。例如,假设团队需要为作动系统使用的螺线管确定所需参数。他们可以开发一个简单模型,在螺线管四周绘制概念性“控制体积”,包括驱动因素和作动因素。团队可以测试各种极端工况并提取基本参数,但不必推导方程。通过仿真,工程师可以确定所需的力,然后将它们反馈给硬件设计活动。之后,团队可以保留此模型,用于今后解决其他设计问题,或用于下一个产品开发项目。

“我们使用 Simulink 和 Simscape 运行仿真,以此评估各种设计概念和参数值,从而降低开发后期重新设计的风险。一旦通过仿真确定了最佳设计,我们就可以付诸实施。这预计可减少 30-50% 的原型开发工作。”

着重打好基础

对于小型团队来说,基于模型的设计能带来的直接优势在于以下功能:

  • 创建组件和系统模型
  • 在整个开发过程中,使用仿真来及早并持续地验证和测试设计
  • 自动生成用于原型和测试的 C 代码

在此基础上,团队可以考虑高级工具和实践,包括建模规范、需求链接、合规性检查和产品级代码生成。

此外,他们可以连接到持续集成 (CI) 系统来自动测试和验证模型与代码,从而采用并遵循敏捷开发实践。他们还可以将系统模型的使用扩展到运营中的系统,以支持预测性维护和数字孪生等应用。

但是,小型团队可以晚些考虑这些功能。

“一个小型工程师团队采用基于模型的设计开发和实现控制算法,并结合现货硬件,成功组装了一辆自动驾驶汽车。尽管该系统尚未投产,但它确实展示了重要的设计概念和相应的实用设计方法。”

利用 MathWorks 专家的经验

MathWorks 工程师与全球大大小小的团队密切合作。这些工程师有多年的经验,可帮助小型团队应用基于模型的设计来达到最终目标。小型团队如果有兴趣采用基于模型的设计,初期不妨与 MathWorks 合作,帮助您的团队快速上手。

“MathWorks Consulting Services 咨询服务帮助我们在 Simulink 中对信号和图像处理管道建模,运行仿真以验证管道能产生高质量图像,然后在 FPGA 上实现设计;同时,他们还确保我们掌握技术方法,以便我们今后独立开展这些工作。”

节

基于模型的设计助力团队成功

无论企业大小,在逐步采用基于模型的设计的过程中,小型工程团队都能取得立竿见影、实实在在的成果:

  • 加快开发,更早投入演示
  • 提高产品质量,加快产品上市
  • 拓展能力,开发复杂系统

小型团队离不开全心投入、行动迅速的工程师。通过渐进方法,这些团队可以顺利地过渡到基于模型的设计,进一步提升其开发速度、开发能力和设计质量。