[讨论] 电池管理系统(BMS)为什么都在用Simulink做开发呢?

火辣西米秀   2024-3-19 20:55 楼主

首先,不仅是电池管理系统(BMS),很多汽车控制器的开发测试都在用Simulink开发。其次,做出这个决定的,是公司,而不是某个工程师;所以得从公司的角度来分析这个问题,而不是一个精通C代码的工程师的角度。

 

从公司的角度,为什么喜欢用Simulink开发控制器呢?可能有以下几个原因:

 

1、Simulink开发,不但降低了公司的招聘门槛,而且减小了人员流动对团队的不利影响。


毋庸置疑,Simulink的入门难度比C的入门难度低。现在这个年代,但凡汽车专业毕业(甚至可以扩大为理工科毕业),几乎人人都会Simulink,但熟悉C的人就没那么多了,公司在招人的时候,招熟悉Simulink的人比招熟悉C的人就简单太多了,因此招聘难度降低,而且给的工资也可以低一些(毕竟更多的Simulink人在卷)。

汽车行业跳槽是一个很正常的事情,如果用C开发控制器,一个工程师的离开,可能导致团队损失惨重,还得花较长时间来招聘另一个合适的代码工程师;如果用Simulink开发控制器,一个工程师的离开,相对来说对团队的影响比较小,有很多人可以顶他的位置。

 

说白了,Simulink工程师比较容易被替代,这事情对工程师来说不是好事,但对公司来说肯定不是什么坏事。

 

2、Simulink模块信息量大,模型可读性好,比C代码更便于管理和传承


Simulink是图形化建模,大多数情况下,Simulink模型比C代码的可读性更好,因此更便于管理和传承。想象一下,如果你们团队的前辈写了一堆控制器代码,如果代码编写不规范、也没做好注释,读这些代码绝对让你抓耳挠腮。Simulink模型也存在类似的问题,但是相对来说影响小一些,前辈的模型建得再差,只要他把子系统都独立封装,读起来是容易的。

 

而且,一个Simulink模块可能包含了几十、上百甚至更多行的代码,也就意味着Simulink能以更小的体积去传递更大的信息量。所以如果你既懂C代码,也懂Simulink,给你同样的算法对应的C程序和Simulink模型,读懂Simulink所花的时间大概率是比你读懂C程序要少。

 

基于可读性和信息量的两个优点,Simulink模型更便于管理和传承。

 

3、Simulink实现算法的速度比C代码更快


这个其实也是因为Simulink模块包含的信息量更大,你用几百行代码要实现的功能,可能1个或者几个Simulink模块就能实现了。当然也不排除有些功能,用代码实现比Simulink模块方便得多,但绝大多数情况下是反过来的。而且Simulink有S-Function,可以集成代码,也就是你不一定要全部都用Simulink模块建模,也可以使用你手写的代码,模块+代码的形式来实现你的完整算法。

 

当然最终烧写到控制器中的还是代码,这时候Simulink可以用Embeded Coder自动生成代码。

 

4、Simulink可以在多个环节加速控制器的开发和测试


除了第3点提到的算法实现速度更快,Simulink还有一些方式可以加速控制器的开发和测试。比如Simulink控制算法模型可以直接下载到快速控制原型设备(RCP)中,以原型控制器的形式去控制真实的被控对象,快速验证和迭代算法。

 

以上的3和4很关键,Simulink可以加速开发控制器,可以缩短控制器的开发周期,促进新车尽快上市,这对车企来说非常关键。尤其是这几年,各种新势力介入汽车行业,把整个汽车行业的节奏都带起来了,新车的开发周期被要求大大缩短了。

 

总的来说,Simulink是一个比C更简单、门槛更低的工具,用这样的工具,对个人而言未必是好事,但对公司而言不是什么坏事。

回复评论 (2)

BMS主要应用在电动汽车上,而车企普遍采用V流程的开发方式,所以BMS的开发自然也像开发VCU、MCU那样使用基于模型的开发方式。优点:开发速度快,算法易于实现,而且图形化的语言容易理解,有些工具箱可以拿来即用。例如要保留上个周期的状态加一个Delay模块就可以了,如果要用C语言写就要创建一个变量,在合适的位置赋值、合适的位置读取;如果做VCU的上下电逻辑开发、故障处理,用Stateflow就很方便,而用C语言写就麻烦的多。方便进行SIL验证,使用信号激励,算法、逻辑在电脑上就可以仿真验证;设计的SOC、SOH的算法在电脑上就可以运行测试。生成高可靠性的代码,是ISO26262认可的开发方式,也可生成符合AUTOSAR标准的代码。生成A2L文件,基于CCP/XCP的调试标定十分方便。
点赞  2024-3-20 08:30
电池管理系统(BMS)通常使用Simulink进行开发的主要原因包括以下几点:  建模与仿真:Simulink提供了强大的建模和仿真功能,可以方便地建立电池系统的模型,并对系统进行仿真和验证。通过仿真,可以更好地理解系统的行为和性能。  多物理建模:电池管理系统涉及到电池、充电、放电、温度控制等多个物理领域,Simulink具有多物理建模能力,可以集成不同领域的建模组件,并进行跨学科的建模与仿真。  自动生成代码:Simulink可以生成针对不同硬件平台的嵌入式代码,便于将设计转化为实际实现。BMS中的控制算法可以直接在Simulink中设计并生成可用于实时控制硬件的代码。  可视化编程:Simulink提供了直观的图形化编程环境,使控制算法设计更直观、易于理解,同时也方便团队之间的合作和交流。  可调整性与快速原型:Simulink允许用户灵活调整模型参数和算法,便于对系统进行调试和优化。同时,用户可以快速创建原型,快速验证设计概念。  Simulink工具箱支持:Simulink提供了丰富的工具箱和功能模块,包括控制系统设计、信号处理、优化算法等,方便用户设计各种复杂的控制算法和系统。
点赞  2024-3-28 09:16
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复