基于福特自动化系统仿真工具链的MBD敏捷开发

利用先进的处理器功能来促进设计的便利性在近几十年来一直被讨论。如今,更大的设计灵活性使工程师能够利用MATLAB和Simulink的标准基于模型的设计来车辆控制系统的功能,比如新能源整车和电机控制系统开发,ADAS规划控制系统开发,通过基于模型的设计尽量减少整体设计时间。它还使设计工程师能够重复使用仿真模型,以确保系统在其最终市场应用中的正确功能和所需性能。

基于模型的设计(MBD)已经是一个讨论了几十年的话题,但只是在最近几年才发展成为一个完整的设计流程--从模型的创建到完整的实现。在20世纪70年代,模拟计算平台可用于仿真,但控制硬件的实现是在晶体管水平上完成的。仿真工具的发展到2000年代,引入了图形化的控制原理图输入工具和控制设计工具,极大地简化了复杂的控制设计和评估任务。然而,控制系统设计者仍然通过编写C代码来开发硬件控制算法,以反映模拟设计。现在,在这个十年的开始,完整的MBD允许仿真和硬件实施平台的共同控制设计,使复杂的控制算法能够快速部署在硬件平台上。

MBD是一个在整个开发过程中使用系统模型作为可执行规范的过程。与传统的基于硬件原型的设计方法相比,这种基于仿真的方法提供了对设计替代方案和权衡的更好理解,使能够优化设计以满足预定的性能标准。与其使用复杂的结构和大量的软件代码,设计者可以使用连续时间和离散时间构件定义具有高级功能特性的模型。现有的C代码可以与标准的控制库块集成,以最大限度地提高设计效率。这些模型与仿真工具一起使用,可以实现快速原型Demo设计、软件测试(MIL)、硬件在环(HIL)仿真以及整车在环测试(VIL)。仿真使规格差异和建模错误能够立即被发现,而不是在设计周期的后期。自动代码生成消除了在硬件平台上实现相同算法的手动步骤。这简化了设计过程,最大限度地减少了硬件设计实现中的错误,并缩短了整体上市时间。
在MBD内有多个步骤,可以对整个设计中的各个任务进行优化。这些任务可以由不同的设计工程师或设计团队完成,然后组合成整体设计和完整的系统。通过这种方法,可以对单个任务进行更高层次的抽象,从而形成一个为特定的最终应用而优化的整体设计流程。总而言之,MBD允许设计者从更经典的设计方案中扩展出来,并以一种可控的方式直接从模型创建到仿真、代码生成和HIL测试,甚至VIL测试等,允许在不完全重新设计系统的情况下逐渐改变系统行为。
不同的设计阶段和流程中各个步骤的规模是可视化的。这些步骤共同描述了MBD的 "标准 "流程。从电机控制设计的角度来看,它们是:
系统的概念-控制系统的整体功能
仿真平台建模/架构-被控对象,环境场景等算法模型的开发
控制器的建模和要求-系统开发详细需求
软件分析-详细的软件设计需求分析
软件及算法详细设计-基于软件需求的详细软件设计
软件和算法验证-基于软件需求的模型验证MIL
自动代码生成-生成代码,软件集成
验证和测试-基于仿真平台的系统验证和离线标定及实时仿真
嵌入式系统集成-系统架构验证,HIL/VIL测试
这一起形成了一个多步骤的方法来调整整体设计,并允许独立分析各个控制步骤。一旦完成了硬件和软件规范,就可以设置完整的系统结构,以部署整个系统的具体算法和功能。
可以对控制器和平台模型的仿真进行评估。不接触硬件的离线开发算法可以被架构和标定以满足整个系统的性能要求。最初的代码生成,无论是现有的代码 "复用"还是由代码生成工具生成的代码,都可以部署到嵌入式控制器上,以比较PC上的系统仿真和硬件目标上的实际执行数据。在为MBD定义一个正确的平衡结构时,设计者必须考虑模型的复杂性。然而,一旦实现了平衡的概念,就有可能迅速改变设计中的独立模型,并从整个驱动系统中获得更精确的结果。
对于目标平台,现在已经有了一个实时开发环境,用于建模、仿真、评估、部署和优化整体系统性能和能力。这都是基于MBD和系统参数的平衡选择,在需要具体优化的地方产生了一流的灵活性。通过这种方式,一个可扩展的系统模型已经实现,有利于使用和重用代码,无论是基于现有的遗留代码或功能,还是基于标准C或图形功能的完整的新构件(Simulink/MATLAB模型与完整的仿真和部署阶段相一致)。不仅从软件的角度可以改变整体设置,而且一旦为系统开发了合适的设备驱动程序,设计者就可以改变系统资源、硬件元素以及最终应用或系统的整体应用软件。此外,鉴于能够控制整个系统的实时性,系统调度的优化可以直接通过这个环境实现。
上面讨论的每个步骤都与可用的工具和整体实现有直接联系。每个工具链都提供了一系列的价值。在MBD中,设计者必须选择如何平衡这些工具链的使用和独立MBD平台的整体价值创造。
通过MBD设计流程,并通过MathWorks和相应的环境及感知仿真如那件,现在可以实现整体模型的实施和代码的编译。目前国外多数企业的传统控制器算法及智能驾驶的规划控制算法开发等中的每个阶段或元素都由MATLAB和Simulink模型开发,同时也兼容C/C++与MATLAB混合编程的环境,该模型的比例符合最佳设计标准的要求。模型中的多数元素都是基于MathWorks公司的标准工具箱和块组,可以在特定设计中的任何元素中重复使用。通过实时部署方法和在这种混合环境中的编译,还可以将现有的手工编写的C代码与由MATLAB和Simulink的生产代码生成工具Embedded Coder C代码相结合。
(0)

相关推荐

  • 技术干货分享-基于模型设计的HDL代码自动生成技术综述

    轩宇信息 基于模型设计的HDL代码自动生成技术综述 -FPGA验证技术- 作者简介: 尤静,女,西安电子科技大学,计算机科学与技术专业,硕士,工程师.从事FPGA方向开发及验证工作十余年,曾负责探月工 ...

  • 【行业动态】俄推出自主半实物仿真测试平台,协助发动机控制系统研发

    导读:4月1日,在"精密工程:设计和集成技术"年度会议上,俄罗斯Exponenta工程技术与建模中心的首席工程师米克哈尔-佩塞利尼克表示,该公司已经研发了一套系统,可是实现对发动机 ...

  • 【学术论文】基于Sobel算法图像边缘检测的FPGA实现

    摘要: 针对嵌入式软件无法满足数字图像实时处理速度问题,提出用硬件加速器的思想,通过FPGA实现Sobel边缘检测算法.通过乒乓操作.并行处理数据和流水线设计,大大提高算法的处理速度.采用模块的硬件设 ...

  • 仿真、建模、虚拟调试——加速和简化机器设计开发过程

    在自动化的不同层面,仿真.建模和虚拟调试的应用正变得越来越容易.第三方仿真工具的接口也可以内置到开发软件中. 通过仿真调试可以加速和简化调试机器的过程.它可以最大限度地降低风险,确保项目的最后期限和质 ...

  • 基于模型设计(MBD)开发L4级自动驾驶卡车线控制动系统

    线控系统涉及使用CAN通信或者CAN-FD通信和电子元件来控制汽车的主要功能,如转向.驱动控制和制动控制.它是如何工作的,有哪些类型,它是否比传统的机械系统更好?本文一一总结,同时在文章最后附上L4自 ...

  • 基于模型设计(MBD)开发驾驶员状态监视系统

    驾驶员监控系统(DMS)--有时被称为驾驶员状态感应(DSS)系统--是一种先进的车辆主动安全功能,它使用安装在仪表板或者方向盘上的摄像头来跟踪驾驶员的实时状态,比如瞌睡或分心,并发出警告或警报,使驾 ...

  • 基于区块链技术落地应用开发-食品溯源

    由于近几年食品安全问题事件频发,不仅造成了严重的信任危机,而且对人们的身体健康也造成了极大的威胁.也造成了信任危机,食品安全越来越受到国家和人民的关注.在传统的溯源体系中,信息仍然存在不准确,不透明, ...

  • 让开发者相见恨晚?!华为云软件开发云实现云上敏捷开发

    [51CTO.com原创稿件]弗吉尼亚鹿是现存最古老的一种鹿.这并不是偶然的,而是因为350万年来,这门优雅的物种延续了一种有效的生存办法--它们保存了灵活的本性和迅速适应环境的能力.这恰恰佐证了达尔 ...

  • 老曹眼中的敏捷开发

    世界上不存在这样一种方法: 只要套用,就可以写出完美的软件,无论使用的哪种设计模式: 但确实可能存在一种开发方式,可以帮助我们一步步构造出需要的软件和架构--这有可能就是敏捷开发. 相对于软件开发流程 ...

  • 又发现一款牛逼的 API 敏捷开发工具

    小白带你学编程 前天 来源:xie.infoq.cn/article/b5c3a339267e1351c6151b42a 初衷 跟大家分享一个牛逼的 API 敏捷开发工具,用尽可能简单的方式,完成尽可 ...

  • 如何用敏捷开发的12个原则,搞定数据治理?

    作者丨石秀峰    全文共6024个字,建议阅读需15分钟 任何一个企业提出数据要进行数据治理的时候都是满怀期望的,并且常常以为只要实施数据治理,就能实现供应链.生产.销售.物流.财务等业务的打通,就 ...

  • MVP方法:如何通过“敏捷开发”模式开发MVP产品?

    敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行产品开发.在敏捷开发中,产品项目在构建初期被切分成多个子产品,各个子产品的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...

  • MVP方法:如何借助“敏捷开发”快速实现MVP?

    在敏捷实践体系中,迭代交付模式是敏捷开发的核心要素.敏捷开发方法有很多,Scrum提供了迭代管理和持续改进的框架,如图5-15所示.Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护 ...