目录
本文转载于公众号“王浮生怕生”,原文链接:
前言
大家好,我是王浮生不怕生,本文我们介绍VCU建模中的驱动扭矩计算模块。
这部分比较简单,所以顺便介绍下Signal builder的用法。
这样文章就包含两部分内容:
【1】驱动扭矩计算
【2】Signal builder模块介绍
废话不多说,直接开搞。
驱动扭矩计算
D挡状态下车辆的驱动扭矩由两部分组成:基础驱动扭矩、补偿扭矩,其值等于两者之和,R挡状态下仅计算基础驱动扭矩,不考虑扭矩补偿。
当车辆不处于D挡或R挡时,输出为0。
D挡状态下车辆的驱动扭矩
基础驱动扭矩计算
D挡状态下基础驱动扭矩取决于驾驶模式,首先判断车辆的驾驶模式,在不同驾驶模式下通过加速踏板开度及车速查表,得到车辆的基础驱动扭矩。
驾驶模式通过变量EcoMode_flg判断,当EcoMode_flg==1时,车辆为Eco模式,查询Eco的MAP;当EcoMode_flg~=1时,车辆为Sport模式,查询Sport的MAP。
当然这里我偷懒只设置了两个模式,铁子们建模时可以多设置几个模式,如ECO、Normal、Sport、launch等等。模式数量≥3,采用switch模块就不太合适了,建议使用MultiSwitch。
这里的查表模块铁子们注意下,建议u1(断点1,Break Point 1)为车速或转速,u2(断点2,Break Point 2)为加速踏板开度。
当然两者也可以互换,但是互换后它是这样式的,看着难受。
再补充一点,驱动扭矩MAP也可以设置为轮端需求扭矩,设置为轮端需求扭矩时,计算后的扭矩要用速比及效率处理一下,文中采用的是电机驱动扭矩。
补偿扭矩计算
补偿扭矩跟驾驶模式有关,本文仅考虑Sport模式下的扭矩补偿。当驾驶模式为Eco时,扭矩补偿值为0,当驾驶模式为Sport时通过查表计算补偿扭矩。补偿扭矩与驱动扭矩类似,区别是补偿扭矩通常为与车速及踏板开度变换率相关的二维表格。
补偿扭矩主要用于提高Sport模式下的驾驶感受,以满足驾驶员的驾驶预期。但并不是所有车辆控制模型都采用补偿扭矩的方法,有的是通过MAP和电机扭矩变化系数来控制。这部分不是必要项,铁子们了解一下即可。
建立的扭矩补偿模型如下,在补偿扭矩计算完成后进行限值处理,防止扭矩超限。
R挡状态下车辆的驱动扭矩
若车辆处于R挡,则不区分驾驶模式,直接通过加速踏板开度及车查表即可。这部分比较简单,就不赘述了。
驱动扭矩计算完成后,根据挡位状态控制驱动扭矩输出即可。需要注意,因为存在补偿扭矩,所以驱动扭矩输出时需要进行限制处理,防止超限。同时判断车辆是否处于蠕行模式,蠕行模式下输出蠕行扭矩,否则输出驱动扭矩。
模型验证
模型建立完成后,通过Signal Builder建立一组输入信号,验证模型逻辑。
输入信号如下图所示。
通过输入信号及模型逻辑,其扭矩输出应符合以下推断:
【1】模型在0-5s驱动扭矩输出为0;
【2】在5s时车辆为Sport模式,挡位处于R挡,蠕行使能标志位为1,故5~15s驱动扭矩等于蠕行扭矩;
【3】在15s时,挡位处于D挡,,蠕行使能标志位为0,踏板开度为10%,15~30s驱动扭矩等于Sport模式的驱动扭矩
【4】30s时,车辆由Sport模式切换为Eco模式,30~60s驱动扭矩等于Eco模式的驱动扭矩
【5】60s时,车辆由Eco模式切换为Sport模式,同时60~62s加速踏板开度由0持续变化至20%,此时驱动扭矩等于Sport扭矩加补偿扭矩
【6】62~100s,车辆状态不变,驱动扭矩等于Sport模式的驱动扭矩
运行模型,输出扭矩曲线如下,基本符合以上逻辑。
Signal builder模块介绍
前几天,文章《一起学VCU建模吧-蠕行控制》发布后,有铁子问到这些信号是怎么添加的。这里简单说一下。
打开Signal builder模块后,可以通过下图所示的这几个按钮可以分别添加常量、阶跃、脉冲信号。在信号线上,按住shift+鼠标左键可以添加控制点。
这种方法在信号量比较少,且信号状态切换比较简单时可以用,在信号量比较多或者信号在时域内需要频换切换状态时就难搞了。
这时可以通过Excel建立信号的状态,然后导入到Signal Builder,大体过程如下:
【1】在Excel中建立如下信号并保存;
【2】通过Signal Builder菜单栏-文件-从文件导入,打开保存的Excel信号文件,选择建立信号的sheet,并选择替换现有数据集。
【4】点击确认后,选择“否,导入而不保存”即可完成信号导入
结语
本文简单介绍了驱动扭矩计算模块,当然这里计算的扭矩不能直接发送给 ,还需要经过扭矩限制、扭矩滤波、扭矩仲裁等等,这些内容我们后面一一讲解,有兴趣的铁子请持续关注。
同蠕行控制模型一样,对文中模型有兴趣的铁子可移步同名公众号:王浮生不怕生,回复“VCU驱动扭矩计算”免费获取模型。