搭建ECU 应用层软件模型的一个例子1

文摘   2024-11-17 07:37   上海  

本文直奔主题,分享一个例子:如何搭建ECU应用层软件模型。

假设我们需要计算车辆的滚动阻力,空气阻力和坡道阻力,如下所示:

1 门外汉建模

如果你是在校学生或者没有任何Simulink建模经验的工程人员,在你了解了一些Simulink建模的基础知识后,你搭建的模型通常是下面这样子:

如果你稍微有一点点经验,可能你会注意可读性,比如改善一下信号的命名;可能你还会应用一些工程应用技巧,比如滚阻系数采用查表的方式,如下所示:

这是一个很好的开始,因为在这个过程中,你会逐渐思考一个又一个的问题,虽然有些问题不一定能立马找到答案,我相信能够逐渐解,这个过程中还是存在一个效率问题,如果一个问题其实可以1分钟解决,却花了几天才能解决。本质上是缺乏一个系统性的实践认知和经验,因此不继续列举如何一步一步向着ECU应用层软件模型逼近,本文直接给答案:

2 ECU应用层软件工程师建模

针对汽车ECU应用层软件建模,最基本的要点有:
1)命名规范,目的就是让自己画的模型,别人能够快速看懂,而不是猜谜。
2)建模规范,你不是一个让再战斗,通常ECU应用层软件模型开发由一个团队开发,既然是团队,那么大家就需要对建模有一套共同的认识规范。另外,模型再搭建是用Simulink,那么建模就需要遵守一些Simulink的使用规范,模型最终是为了生成代码,那么建模也需要考虑一些模型会生成怎样的代码的问题。
总结下来,为了保证模型的可读性和可用性,ECU应用层软件建模需要有规范,如下所示:

在信号命名方面,对信号名做一些规定的缩写,比如Vehicle缩写成Veh,Speed缩写成Spd等;添加一些有效的信息,比如Can表示来自于CAN通讯,DYN表示车辆动力学计算相关。

在建模规范方面,不同的信号类型用不同的颜色标记,比如输入信号用绿色标记,输出信号用浅蓝色标记,标定量用橙色标记,观测量用黄色标记,等等。

3)工程应用经验

针对一些重要参数,以标定量来定义,而不是直接以常数来表示,比如风阻系数和迎风面积,这样的好处在于直接修改标定量,而不需要去修改模型,另外,也使得这个模型具有更强的扩展性,当车型不一样时,计算方法还是可以一样,只是参数不一样。
工程应用软件会考虑更多的实际影响因素,比如针对整车质量,会因乘客数量以及个体重量,或载重物体数量和重量而有差异,所以通常采用两部分组成:整备质量(车辆空载的质量)和自适应质量(载人和载物的质量,以及拖车的质量等因素)。
工程应用软件也通常会将一些数学计算方法简化,采用工程应用常有的标定方法,比如滚阻系数,通常不采用教材或文献中所提供的数学计算公式,而采用一维或二维查表来获取比如根据汽车车速来查表获取滚阻系数。


4)可测试性,翻译成大白话就是:你的模型出了问题,你能否通过对已有可观测的信号(输入信号,输出信号,标定量和观测量等),快速地锁定哪里有问题。如果可观测的信号还不够,那么在建模的时候就应该考虑相应的增加可观测的信号。

5)生成怎样的代码,在建模时候,需要清楚要生成怎样的代码,因为这涉及到模型和数据字典的设计,正确的设计才能获取到想要的代码,如下所示:

3 小结

以上就是一个搭建ECU 应用层软件模型,到最终自动生成代码的例子,核心点是你想要生成怎样的代码,从而决定了你如何去搭建模型和设计数据字典,当然在建模这个过程中,你也需要掌握一些要点,有通用类的,也有经验类的。

当然本文没有展现太多的细节,如果对细节感兴趣,欢迎关注下篇文章,下篇文章直接从ECU 应用层软件模型的目标出发,即分享Simulink模型如何自动生成代码。


创作不易,欢迎关注点赞再看收藏


汽车研发交流群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车从业人员。

谦益行
分享汽车研发日常,助力你我共同成长。
 最新文章