MBD讲解与实践 前言
博主自工作以来一直从事汽车行业嵌入式软件开发相关工作,主要做车载电源和电机控制应用层软件方向。在工作过程中,发现大多数公司的应用层开发都逐步转向模型化开发(MBD, Model base design),但很少有公司能够系统地对员工进行相关的教学和训练。所以,博主总结了这些年来的工作经验,对MBD开发方式进行系统性的讲解,并通过相关的练习,希望能够帮助初入职场或者刚接触MBD开发的朋友们快速掌握这一开发方式。
一、MBD开发方式有哪些优点
MBD开发方式最近十年时间开始流行起来,尤其是在汽车电子领域,时至今日,大半的汽车企业及其供应商或多或少都采用了MBD的开发方式,那么,MBD开发对比于传统的手写代码开发具有哪些优势呢?
- 上手难度:基于C语言的手写代码开发,需要开发者精通C语言、具有良好的编程习惯、满足各种编程规范等,对于刚毕业的小白来说,难度较大。而MBD开发方式具有图形化的设计界面,对于软件设计者的编程能力要求较低,且能够通过简单的建模规范保证模型设计的风格统一。Matlab强大的功能也能够保证通过MBD开发得到的代码满足行业标准(MISRA C、ISO 26262等)。
- 测试便捷性:MBD开发方式能够非常简单地实现单元、组件、系统层级的软件测试。而且全部都是基于Matlab,在工具链层面直接打通。尤其是在单元测试级别,各个公司内部开发或委托外部定制的单元测试工具能够很方便地满足不同公司的个性化需求。
- 集成仿真:Simulink环境能够方便地实现电力电子系统、电机系统等物理层面的原理性仿真。结合基于MBD的开发组件,能够实现模型-控制算法-被控对象的整个系统仿真验证,在设计早期阶段就能在原理上对软件或算法进行验证分析。
- 自动化:基于Matlab脚本,能够实现很多自动化功能,例如持续集成功能中,通过模型变更触发的自动单元测试 -> 代码生成 -> 代码集成 -> 代码编译 -> 模型发布功能。
二、MBD开发需要具备的知识或工具
- C语言基础:几乎所有嵌入式软件开发都是基于C语言,MBD开发最终的产物也是基于C语言的源代码,因此C语言知识必不可少。
- Matlab/Simulink工具:目前主流市场都是基于Matlab软件的MBD开发,大多数理工科同学在本科阶段都已经接触到Matlab,相信大家都已经熟悉。
- 基于Matlab、Python、Bat等脚本知识:熟练掌握这些脚本语言能够帮助你更加方便地进行自动化工具的设计,在后续繁重的工作中大大提升效率。
- 各个行业的开发规范及流程:不同的开发方式最终都是需要结合公司的开发流程和开发规范的,本文以汽车行业为例进行讲解和练习。
三、从哪些方向进行学习
相信从事软件开发的朋友都认同一个观点:软件开发不仅仅是写代码。同样,基于模型开发也不仅仅是搭模型,因此本文将从四个部分对MBD开发进行讲解,认真看完全文的朋友相信你们能够在工作中将MBD轻松拿捏:
- 模型设计之前的工作
- 模型设计过程中的工作
- 模型设计完成后的工作
- 提升模型设计效率的工作
提示:善用Matlab自带的帮助功能,能够帮你快速学习模块或内部函数的用法。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
