3、发动机建模:汽油机与柴油机特性曲线、均值模型与查表法、节气门与喷油控制

发动机建模这件事,说实话,是整车控制算法里最「接地气」的一环。你想想看,无论你上层策略写得再漂亮,最终执行指令的,还是那个烧油、进气、喷火的铁疙瘩。我这些年调过的车,十有八九的问题都出在模型和实物的偏差上。所以这一章,咱们就好好聊聊发动机建模的几个核心手段。

3.1 汽油机与柴油机的特性曲线

先说说特性曲线。这东西说白了就是发动机的「体检报告」。我习惯把发动机看作一个黑箱,输入是转速和负荷,输出就是扭矩、油耗、排放。特性曲线就是把这些输入输出关系画成图。

汽油机的典型特性曲线

  • 外特性曲线:油门全开时,扭矩随转速的变化。注意,汽油机的最大扭矩通常出现在中低转速区域,大概3000-4000rpm。我遇到过不少新手,以为转速越高扭矩越大,结果标定时把换挡点设得过高,油耗直接崩了。
  • 万有特性曲线:等油耗率曲线。你会看到一条「甜甜圈」形状的等高线图,最内圈就是经济区。做混动策略时,我经常盯着这个图看——让发动机尽量工作在「甜甜圈」中心,能省不少油。

柴油机的特性曲线

  • 柴油机跟汽油机不一样。它的扭矩曲线更平缓,最大扭矩区间更宽。说白了,柴油机天生就是干粗活的。
  • 柴油机的万有特性曲线,经济区更偏向低转速、高负荷区域。这也是为什么重型卡车都用柴油机——跑高速巡航时,发动机正好落在经济区。

重要提醒:特性曲线是台架试验测出来的,但实车运行时,进气温度、海拔、燃油品质都会让曲线「漂移」。我建议你在标定时留出至少10%的余量,别把曲线用得太极限。

3.2 均值模型与查表法

接下来是建模方法。我个人最常用的两种:均值模型和查表法。它们各有各的脾气。

均值模型

均值模型,说白了就是把发动机的进气、喷油、燃烧过程,用微分方程描述出来。它不关心每个气缸里具体发生了什么,只看整体的「平均效果」。

举个例子,进气歧管压力动态方程:

d(P_man)/dt = (R * T_man / V_man) * (m_dot_thr - m_dot_cyl)

其中:

  • P_man:进气歧管压力
  • m_dot_thr:节气门处空气质量流量
  • m_dot_cyl:进入气缸的空气质量流量

这个模型的好处是实时性好,适合做控制器的内部模型。但缺点也很明显——它需要标定不少参数,比如充气效率、容积效率。我曾经在一个项目里,光标定这些参数就花了两周,因为发动机的进排气相位一变,参数就得重新调。

查表法

查表法就简单粗暴多了。你把台架试验测到的数据,做成一张张二维或三维表格。控制时直接查表,线性插值就完事了。

比如节气门角度到进气量的映射表:

节气门角度 (°) 转速 1000 rpm 转速 2000 rpm 转速 3000 rpm
10 12.5 18.3 22.1
20 25.0 36.7 44.2
30 37.5 55.0 66.3

我的经验:查表法虽然简单,但表格的「分辨率」很关键。我曾经见过一个团队,表格只取了10个转速点、8个负荷点,结果在插值区间里扭矩波动特别大。我建议至少取20×15个点,关键区域(比如怠速、最大扭矩区)还要加密。

3.3 节气门与喷油控制

好了,模型建好了,怎么用?这就涉及到两个最基础的控制对象:节气门和喷油器。

节气门控制

汽油机的节气门,说白了就是一个「空气阀门」。驾驶员踩油门,ECU根据踏板位置计算目标进气量,然后控制节气门电机转动。

这里有个坑:节气门响应有延迟。电机转动需要时间,进气歧管充气也需要时间。如果你直接让节气门一步到位,进气量会超调,导致发动机喘振。

我常用的做法是加一个「速率限制器」:

// 伪代码示例
float target_angle = calc_target_angle(pedal_pos);
float rate_limit = 50.0;  // 度/秒
if (target_angle > current_angle + rate_limit * dt) {
    target_angle = current_angle + rate_limit * dt;
} else if (target_angle < current_angle - rate_limit * dt) {
    target_angle = current_angle - rate_limit * dt;
}
actuate_throttle(target_angle);

嗯,这里要注意:速率限制值不能太小,否则驾驶员会觉得「油门响应慢」;也不能太大,否则超调。我一般根据台架试验的阶跃响应曲线来标定这个值。

喷油控制

喷油控制的核心,就是算准「喷多少油」和「什么时候喷」。

喷油量计算

  • 基本喷油量 = 进气量 / 目标空燃比
  • 汽油机理论空燃比是14.7:1,柴油机则更稀,一般在18:1到25:1之间。
  • 实际控制时还要加各种修正:水温修正、进气温度修正、海拔修正……

喷油时刻

  • 汽油机一般是进气冲程喷油,让燃油和空气充分混合。
  • 柴油机则是压缩冲程末期喷油,靠压燃。
  • 喷油时刻对排放影响很大。喷早了,NOx升高;喷晚了,颗粒物增多。

避坑指南:我曾经在一个项目中,忽略了喷油器的「死区时间」。喷油器开启和关闭都有延迟,尤其在低负荷时,喷油脉宽本身就短,死区时间占比很大。结果怠速时空燃比控制不准,发动机抖得厉害。后来我在喷油脉宽计算中加了一个死区补偿,问题才解决。

3.4 小结

这一章的内容,说白了就是三件事:

  1. 特性曲线:看懂发动机的「脾气」,知道它什么时候省油、什么时候有劲。
  2. 建模方法:均值模型适合做控制,查表法适合做标定,两者结合效果最好。
  3. 执行器控制:节气门要防超调,喷油器要补死区。

我个人觉得,发动机建模没有「最好」的方法,只有「最合适」的方法。关键是你得清楚自己的应用场景——是做实时控制,还是做离线仿真?是标定量产车,还是做原型验证?想清楚这些,再选模型,事半功倍。

下一章,咱们聊聊变速箱建模。那个东西,比发动机还「拧巴」。