如何将电动汽车UDDS车速-时间数据转换为电池电流-时间数据?
UDDS车速-时间数据转电池电流-时间数据的方法
核心逻辑
电动车的电池电流是用来驱动整车克服行驶阻力、提供加速动力的,转换核心是从车速算出整车需求功率,再推导到电池输出电流。
具体步骤
第一步:计算车辆实时需求功率
先算出每个时刻车辆需要的动力,UDDS默认平路场景,忽略坡道阻力,只需考虑三类阻力:- 滚动阻力:
F_r = m × g × f,其中m是整车质量(kg),g取9.8m/s²,f是滚动阻力系数(小型车典型值0.015) - 空气阻力:
F_a = 0.5 × ρ × C_d × A × v(t)²,ρ是空气密度(1.225kg/m³),C_d是风阻系数(小型车典型值0.3),A是迎风面积(典型值2.5m²),v(t)是当前时刻车速(注意转成m/s) - 加速阻力:
F_j = m × dv/dt,dv/dt是当前时刻的加速度,从车速-时间序列求导得到
然后需求功率:P(t) = (F_r + F_a + F_j) × v(t) / η_trans,η_trans是传动系统效率(电机+变速箱,典型值0.85-0.95)
- 滚动阻力:
第二步:转换为电池电流
- 电池输出功率:
P_batt(t) = P(t) / η_batt,η_batt是电池放电效率(接近1,初学者可近似为1) - 电池电流:
I(t) = P_batt(t) / U(t),U(t)是电池实时端电压,初学者可以先用电池额定电压近似,后续再用电池模型估算动态端电压
- 电池输出功率:
关于udds_curr.mat的生成
你提到的文件就是用上述流程通过MATLAB计算得到的,具体步骤如下:
- 读取
udds.txt里的时间-车速序列(UDDS的时间步长一般为1秒) - 用
diff()函数计算每个时刻的加速度,补全序列长度(第一个时刻加速度设为0) - 代入预设的整车参数(比如某款小型电动车的标准参数)算出需求功率
- 除以传动效率、电池效率,再除以电池额定电压得到电流序列
- 将电流数据保存为
.mat格式文件
初学者提示
- 如果没有具体整车参数,直接用行业典型值就能得到合理的电流曲线
- 注意单位统一:车速要从km/h转成m/s,功率用W,电压用V,最终电流单位是A
内容的提问来源于stack exchange,提问作者Z wan
相关产品推荐
相关产品推荐

