发动机曲轴齿形误差学习方法 【技术领域】
本发明涉及一种发动机曲轴齿形误差学习方法, 特别是一种用于车载诊断系统 (OBD) 中带有失火故障诊断的发动机曲轴齿形误差学习方法。背景技术
发动机曲轴的齿形误差, 是指在保持发动机曲轴角加速度不变的工况下 ( 如减速 断油或匀速行驶时 ), 记录曲轴每转内的分段时间。在理想状况下, 曲轴每转内分段时间的 差值应为零 ; 而当曲轴的齿形存在误差时, 每转内的分段差值不为零。
发动机正常工作时, 发动机转速比较稳定, 而在发生失火时, 发动机的一个或多缸 没有做功, 导致曲轴转速会明显下降, 发动机失火诊断通常由曲轴的速度波动来确定。 但如 果发动机曲轴本身存在着齿形误差, 那么仅以曲轴的转速波动来判断发动机是否失火就不 准确, 有时可能会由于存在齿形误差却导致 OBD 误报失火故障 ( 故障码 P0300), 因此在 OBD 的失火诊断中需要进行齿形误差学习, 以此作为发动机失火诊断的补偿值。
目前有一些汽油机电控系统不支持曲轴齿形误差的学习, 这样在进行失火检测时 由于齿形误差的存在, 在计算曲轴加速度时会有偏差, 从而出现失火误判。
还有一种方法是在车辆行驶过程中进行齿形误差的学习。 该方法的缺点齿形误差 学习必须在一定的工况下才能进行, 而新车销售到用户手中, 由于个人驾驶习惯的问题, 不 能保证所有车辆都能在最短的时间内进行完齿形误差的学习, 而如果不进行齿形误差的学 习, 则在失火诊断中还是有出现误判的可能。 发明内容 本发明的目的是提供一种发动机曲轴齿形误差的学习方法, 即生产线终端的齿形 误差学习, 它可以保证所有新车下线时能在相对稳定的条件下进行齿形误差的学习, 从而 保证了失火诊断的可靠性。
本发明提供了一种发动机曲轴齿形误差学习方法, 它包括 : (A) 判断发动机是否 存在影响齿形误差学习的故障 ; (B) 判断发动机运行工况是否满足齿形学习条件 ; (C) 判断 发动机在此次之前是否已经成功地进行了齿形误差学习 ; (D) 记录曲轴时刻 ; (E) 计算齿形 误差系数 ; (F) 累计齿形误差系数 ; 和 (G) 计算齿形误差学习结果, 并对其有效性进行判断。
在发动机曲轴齿形误差学习方法的再一种示意性的实施方式中, 步骤 (A) 的判断 包括 : 齿形误差学习是否完成, 是否存在齿形误差学习请求, 齿形误差学习是否超过允许的 最大尝试次数, 车速是否超限, 发动机转速是否超限, 和自动变速箱未处于 PN 档。
在发动机曲轴齿形误差学习方法的另一种示意性的实施方式中, 步骤 (B) 的判断 包括 : 发动机运转时间是否达到齿形误差学习的最少运转时间, 冷却水温是否处于允许齿 形误差学习的温度范围, 和电瓶电压是否处于允许齿形误差学习的电压范围。
在发动机曲轴齿形误差学习方法的还一种示意性的实施方式中, 步骤 (D) 包括 如下计算及赋值 : 误差系数原始值 (n-1) = { 曲轴时刻记录值 (n+3)+ 曲轴时刻记录值
(n+2)- 曲轴时刻索引 (n+1)- 曲轴时刻记录值 (n)}/{( 曲轴记录时刻 (n+2)- 曲轴记录时刻 (n+1))×4}, 其中, n 为 1, 2, 3 或 4。
在发动机曲轴齿形误差学习方法的又一种示意性的实施方式中, 步骤 (E) 包括如 下计算及赋值 : 齿形误差系数实际值 (0) =齿形误差系数实际值 (2) = { 齿形误差系数原 始值 (0)+ 齿形误差系数原始值 (2)}/2, 和齿形误差系数实际值 (1) =齿形误差系数实际值 (3) = { 齿形误差系数原始值 (1)+ 齿形误差系数原始值 (3)}/2。
在发动机曲轴齿形误差学习方法的又一种示意性的实施方式中, 步骤 (E) 还可以 包括如下计算及赋值 : 齿形误差系数实际值 (0) =齿形误差系数原始值 (0), 齿形误差系数 实际值 (1) =齿形误差系数原始值 (1), 齿形误差系数实际值 (2) =齿形误差系数原始值 (2), 和齿形误差系数实际值 (3) =齿形误差系数原始值 (3)。
在发动机曲轴齿形误差学习方法的又一种示意性的实施方式中, 步骤 (F) 包括如 下计算及赋值 : 齿形误差学习采样次数 +1, 和齿形误差学习累计结果 [0 ~ 3] =齿形误差 学习累计结果 [0 ~ 3]+ 误差系数实际值 [0 ~ 3]。
在发动机曲轴齿形误差学习方法的又一种示意性的实施方式中, 步骤 (G) 包括如 下计算及赋值 : 齿形误差学习最终结果 [0-3] =齿形误差学习累计结果 [0-3]/ 齿形误差学 习采样次数。 根据本发明提供的生产线终端的齿形误差学习, 它可以保证所有新车在下线时能 进行在相对稳定的条件下进行齿形误差的学习, 且可以全面地考虑各种影响判断的因素, 从而保证了失火诊断的可靠性。
附图说明
以下附图仅对本发明做示意性说明和解释, 并不限定本发明的范围。
图 1 是本发明的发动机曲轴齿形误差学习方法的流程示意图。
图 2 和图 3 是判断发动机运转是否满足条件流程的示意图。
图 4 是开始齿形误差学习时记录曲轴时刻的一种示意性流程的示意图。
图 5 是计算齿形误差系数的一种示意性流程的示意图。
图 6 是计算齿形误差系数累计的一种示意性流程的示意图。
图 7 是计算齿形误差最终学习结果并对有效性进行判断的一种示意性流程的示 意图。 具体实施方式
为了对发明的技术特征、 目的和效果有更加清楚的理解, 现对照附图说明本发明 的具体实施方式, 在各图中相同的标号表示相同的部分。为简便起见, 在各图中 “学习” 即 表示 “齿形误差学习” 。
如图 1 所示, 当发动机要进行齿形误差学习时, 在步骤 S20 判断是否存在影响齿形 误差学习的故障。如果有影响齿形误差学习的发动机故障存在, 程序进入步骤 S22, 将存在 影响齿形误差学习故障标志置为 1 ; 如果不存在任何影响齿形误差学习的故障, 则程序进 入步骤 S24, 将存在影响齿形误差学习故障标志置为 0。在完成步骤 S22 或步骤 S24 后, 程 序进入步骤 S30。在步骤 S30, 程序判断发动机运行工况是否满足齿形误差学习条件。 如果不满足齿 形学习条件, 则程序返回开始步骤。判断发动机运转是否满足齿形误差学习的一种示意性 步骤参见图 2 和图 3( 容后详述 )。
如果经判断, 发动机的运行工况满足齿形误差学习条件, 程序进入 S40, 判断在此 次之前是否已经进行过齿形误差学习, 并且已经学习成功。如果发动机在生产下线之前或 更换 ECU 之后进行过齿形误差学习, 则程序返回开始步骤。
如果在步骤 S40 判断发动机没有进行过齿形误差学习, 则程序进入 S50, 判断是否 存在齿形误差学习请求。齿形误差学习请求一般通过 K 线从上位机电脑发送给 ECU。如果 没有齿形误差学习请求且发动机未处于开发模式, 程序返回开始步骤。 同样, 如果判断确定 目前正处于齿形误差学习过程中, 则 ECU 不再对学习请求进行反应。如果存在齿形误差学 习请求且不存在上述情况, 则程序进入齿形误差学习。
此时发动机应在怠速状态下, 操作者需将油门踏板踩到底, 使发动机转速增加, 在步骤 S61, 程序判断发动机加速过程是否完成, 当发动机达到一定的转速后, 程序在步骤 S62 控制发动机的断油。随后在步骤 S63, 判定此时的发动机工况是否满足开始齿形误差学 习的数据记录条件, 判断数据是否足够以及数据是否满足要求等。
若此时发动机的工况满足数据记录条件后, 程序进入步骤 S64, 开始记录此时的曲 轴时刻。其具体过程参见图 4( 容后详述 )。
在步骤 S65, 程序计算齿形误差系数 ( 参见图 5)。
在步骤 S66, 程序累计齿形误差系数 ( 参见图 6)。
在步骤 S67, 程序计算齿形误差学习结果, 并对其有效性进行判断 ( 详见图 7)。
在步骤 S68, 程序判断齿形误差学习是否全部完成, 如果没有完成, 程序进入步骤 S692, 将齿形误差学习成功标志置为 FALSE ; 否则程序进入步骤 S691, 将齿形误差学习成功 标志置为 TRUE。 在程序完成了步骤 S691 或步骤 S692 后, 程序退出, 完成本次的齿形误差学 习。
图 2 和图 3 说明了判断发动机运转是否满足齿形误差学习的一种示意性步骤。
参见图 2, 在步骤 S210 程序判断本次运转循环学习是否为 TURE。如果是 TURE, 程 序进入步骤 S212, 设置禁止齿形误差学习的原因为 “1” , 即表明已完成过齿形误差的学习, 不必再进行齿形误差学习。
如果步骤 S210 的判断结果为否, 则程序进入步骤 S220, 判断无齿形误差学习请求 和未处于开发模式是否均为于 FALSE。如果是 FALSE, 程序进入步骤 S222, 设置禁止齿形误 差学习的原因为 “2” , 即表明无齿形误差学习请求, 不必进行齿形误差学习。
如果步骤 S220 的判断结果为否, 则程序进入步骤 S230, 判断齿形误差学习尝试次 数是否大于允许的最大尝试次数 ( 例如 3 次 )。如果实际尝试次数大于允许的最大尝试次 数, 则程序进入步骤 S232, 设置禁止齿形误差学习的原因为 “3” , 即表明齿形误差学习的尝 试次数超过允许的最大尝试次数, 不得进行齿形误差学习。
如果步骤 S230 的判断结果为否, 则程序进入步骤 S240, 判断变速箱是否为自动 挡变速箱, 即变速箱形式为自动挡是否为 FALSE。如果变速箱不是自动挡, 程序进入步骤 S241, 判断车速是否大于齿形误差学习允许的最大车速。如果实际车速大于允许的最大车 速, 程序进入步骤 S242, 设置禁止齿形误差学习的原因为 “4” , 即表明车速超过最大限度,不得进行齿形误差学习。
如果步骤 S240 的判断为自动挡变速箱, 则程序进入步骤 S250, 判断自动变速箱挡 位处于非 PN 档。 如果此时为非 PN 挡, 程序进入步骤 S252, 设置禁止齿形误差学习的原因为 “5” , 即表明变速箱处于非 PN 挡位, 不得进行齿形误差学习。
如果步骤 S250 的判断处于 PN 挡位, 则程序进入步骤 S260, 判断是否有齿形误差学 习请求。 如果没有齿形误差学习请求, 程序进入步骤 S262, 设置禁止齿形误差学习的原因为 “0” , 即表明因其他原因不得进行齿形误差学习。
同样, 如果步骤 S241 的判断表明, 实测车速大于或等于齿形误差学习允许的最大 车速, 程序也将进入步骤 S262, 设置禁止齿形误差学习的原因为 “0” , 即表明因其他原因不 得进行齿形误差学习。
如果步骤 S260 判断出存在齿形误差学习请求, 则程序进入步骤 S272, 设置禁止齿 形误差学习的原因为 “6” , 即表明由于发动机转速超过限度, 不得进行齿形误差学习。
在完成了步骤 S212、 S222、 S232、 S242、 S252、 S262 和 S272 后, 程序进入图 3 所述 的步骤。
参见图 3, 步骤 S310 判断禁止齿形误差学习的原因是否为 “0” , 如果不为 “0” , 则证 明有禁止齿形误差学习的原因存在, 程序进入步骤 S312, 将学习条件满足清零, 返回开始。 如果经步骤 S310 判断, 认为不存在禁止齿形误差学习的其他原因, 则程序要进行 如下的一系列判断, 确定发动机的运转是否满足进行齿形误差学习的条件。
在步骤 S320, 程序判断发动机运转时间是否小于或等于进行齿形误差学习的最少 发动机运转时间, 如果是, 则程序进行步骤 S322, 设置禁止齿形误差学习的原因为 “7” , 即 表明发动机运转时间太短, 不能进行齿形误差学习。
如果步骤 S320 判断发动机运转时间大于允许进行齿形误差学习的最少发动机运 转时间, 则程序进入步骤 S330, 判断冷却水温是否小于或等于齿形学习允许的最低温度或 等于最高温度。如果是, 则程序进行步骤 S332, 设置禁止齿形误差学习的原因为 “8” , 即表 明发动机冷却水温太低或过高, 不满足齿形误差学习要求, 不能进行齿形误差学习。
如果步骤 S330 判断发动机的冷却水温处于允许进行齿形误差学习的最高温度 和最低温度之间, 则程序进入步骤 S340, 判断电瓶电压是否小于或等于齿形学习允许的最 小电压或等于最大电压。如果是, 则程序进行步骤 S342, 设置禁止齿形误差学习的原因为 “9” , 即表明电瓶电压太高或太低, 不满足齿形学习要求, 不能进行齿形误差学习。
如果步骤 S340 判断发动机的电瓶电压处于允许进行齿形误差学习的最小电压和 最大电压之间, 则程序进入步骤 S350, 判断是否存在影响学习的故障。 如果存在影响学习的 故障, 则程序进行步骤 S352, 设置禁止齿形误差学习的原因为 “10” , 即表明存在影响齿形 学习的故障, 不得进行齿形误差学习。
如果步骤 S350 判断发动机不存在影响齿形学习的故障, 则程序进入步骤 S370, 判 断本次循环的齿形学习是否失败。 如果本次循环的齿形学习失败, 则程序进行步骤 S372, 设 置禁止齿形误差学习的原因为 “12” , 即表明本次循环的齿形学习失败, 不得进行齿形误差 学习。
在程序执行完步骤 S322、 S332、 S342、 S352 和 S372 后, 程序进入步骤 S380, 判断禁 止齿形学习的原因是否为 “0” 。如果是, 则程序进入步骤 S382, 将齿形学习条件满足置位,
随后程序进入步骤 S40。
如果步骤 S380 判断禁止齿形学习的原因不为 “0” , 则程序进入步骤 S312, 将齿形 学习条件满足清零, 然后返回。
图 4 所示为开始齿形误差学习时记录曲轴时刻的流程。如图 4 所示, 步骤 S641 判 断是请求记录曲轴时刻是否为 TRUE, 如果为否, 程序退出, 返回开始 ; 如果为是, 则程序进 入步骤 S642。
步骤 S642 判断齿形误差学习记录未开始是否为 FALSE 且当前点火序列为 1, 如果 为是, 程序进入步骤 S6432, 将齿形误差学习记录索引置为 0 且曲轴时刻置为 0。如果步骤 S642 的判断结果为否, 程序进入步骤 S6434, 将齿形误差学习记录开始清零且齿形误差学 习记录索引置 0。
步骤 S6432 和步骤 S6434 结束后, 程序进入步骤 S644, 判断齿形误差学习记录开始 是否为 TRUE, 如果是, 程序进入步骤 S645, 开始记录曲轴时刻, 即: 曲轴时刻 (n) =曲轴时刻 (n-1)+ 曲轴半转时间, 和曲轴时刻记录值 (n) =曲轴时刻 (n), 其中 n 自动累加。
计算后, 程序进入步骤 S646, 判断齿形误差学习记录索引是否大于一个设定值 ( 例如 “7” ), 如果是大于设定值, 则在步骤 S647 将齿形误差学习记录开始清零。 步骤 S648 判断当前是否处于正常的点火序列, 即当前点火的气缸与其预定的工 作序列相一致。如果是, 程序进入步骤 S6492, 将点火序列位置错误置为 FALSE, 且齿形误差 学习计算使能置为 TRUE。程序在完成了步骤 S6492 后, 流程进入如图 1 所示的步骤 S65, 计 算齿形误差系数 ( 参见图 5)。
如果步骤 S648 的判断结果为否, 程序进入步骤 S6494, 将点火序列位置错误置为 TRUE, 且齿形误差学习计算使能置为 FALSE, 随后程序退出, 返回开始。
如果步骤 S646 的判断结果为否, 程序进入步骤 S6496, 将点火序列位置错误置为 FALSE, 且齿形误差学习计算使能也置为 FALSE, 随后程序退出, 返回开始。
如果步骤 S644 的判断结果为否, 程序进入步骤 S6442, 判断齿形误差学习记录开 始是否置为 FALSE。如果 S6442 是, 程序转入步骤 S6496 ; 如果为否, 则程序退出, 返回开始。
图 5 显示了计算齿形误差系数的一种具体流程。步骤 S651 判断齿形误差计算使 能是否为 TRUE, 如果为否, 程序进入步骤 S66 ; 如果是, 程序进入步骤 S652, 进行如下计算及 赋值 : 误差系数原始值 (n-1) = { 曲轴时刻记录值 (n+3)+ 曲轴时刻记录值 (n+2)- 曲轴时 刻索引 (n+1)- 曲轴时刻记录值 (n)}/{( 曲轴记录时刻 (n+2)- 曲轴记录时刻 (n+1))×4}, 其中, n 为 1, 2, 3 或 4。
步骤 S653 保存上述计算结果至误差系数原始值 (n-1)。
一般来说, 齿形误差系数计算包括两种算法, 一种是对缸平均值的计算, 另一种是 不使用对缸平均值法的计算。 在步骤 S654, 程序判断是否使用对缸平均值计算。 如果是, 程 序进入步骤 S655, 进行如下计算及赋值 : 误差系数实际值 (0) =误差系数实际值 (2) = { 误 差系数原始值 (0)+ 误差系数原始值 (2)}/2, 误差系数实际值 (1) =误差系数实际值 (3) = { 误差系数原始值 (1)+ 误差系数原始值 (3)}/2。
如果步骤 S654 的判断为否, 则程序进入步骤 S656, 进行如下计算及赋值 : 误差系 数实际值 (0) =误差系数原始值 (0) 误差系数实际值 (1) =误差系数原始值 (1) 误差系数 实际值 (2) =误差系数原始值 (2) 误差系数实际值 (3) =误差系数原始值 (3) 在执行完步
骤 S655 或 S656 后, 程序进入图 1 所示的步骤 S66。
图 6 是齿形误差系数累计的一种示意性流程的示意图。 如图所示, 在步骤 S661, 程 序判断齿形误差学习计算使能是否为 TRUE。如果不是, 程序进入如图 1 所示的步骤 S67 ; 否 则程序进入步骤 S662。
在步骤 S662, 程序计算 : 齿形误差学习采样次数 +1, 和齿形误差学习累计结果 [0 ~ 3] =齿形误差学习累计结果 [0 ~ 3]+ 误差系数实际值 [0 ~ 3]。
随后程序进入步骤 S663, 判断是否有齿形误差学习请求, 或是否处于开发模式。 如果处于以上其中一种情况, 程序进入步骤 S664, 进行下一个判断 ; 反之, 则程序进入步骤 S666。
在步骤 S664, 程序判断是否达到了最大学习次数。如果是, 程序进入步骤 S665, 将本次采样为最后一次采样置为 “1” , 且平均值计算使能也置为 “1” ; 反之则程序进入步骤 S666, 即将本次采样为最后一次采样置为 “0” , 且平均值计算使能也置为 “0” 。
在完成了步骤 S665 或步骤 S666 后, 程序进入图 1 所示的步骤 S67。
图 7 是计算齿形误差最终学习结果并对有效性进行判断的一种示意性流程的示 意图。如图所示, 在步骤 S671, 程序判断齿形误差学习计算使能是否为 TRUE 且平均值计算 使能为 “1” 。如果条件不满足, 程序进入如图 1 所示的步骤 S68 ; 否则程序进入步骤 S672。 在步骤 S672, 程序计算 : 齿形误差学习最终结果 [0-3] =齿形误差学习累计结果 [0-3]/ 齿形误差学习采样次数。
随后程序进入步骤 S673, 判断齿形误差学习采样次数是否大于或等于学习采样的 最大值。 如果齿形误差学习采样次数尚未达到最大次数, 程序进入步骤 S674, 记录齿形误差 学习未完成且结果无效, 随后程序进入如图 1 所示的步骤 S68 ; 反之, 程序进入步骤 S675。
在步骤 S675, 程序判断学习最终结果 [0-3] 是否处于指定范围内。 如果是, 程序进 入步骤 S676, 记录齿形误差学习已完成且结果有效, 然后进入图 1 所示的步骤 S68 ; 否则, 程 序进入步骤 S677, 记录齿形误差学习虽已完成但结果无效, 然后程序进入图 1 所示的步骤 S68。
采用本发明提供的生产线终端的齿形误差学习, 它可以保证所有新车在下线时能 进行在相对稳定的条件下进行齿形误差的学习, 且可以全面地考虑各种影响判断的因素, 从而保证了失火诊断的可靠性。
在本文中, “示意性” 表示 “充当实例、 例子或说明” , 不应将在本文中被描述为 “示 意性” 的任何图示、 实施方式解释为一种更优选的或更具优点的技术方案。
应当理解, 虽然本说明书是按照各个实施例描述的, 但并非每个实施例仅包含一 个独立的技术方案, 说明书的这种叙述方式仅仅是为清楚起见, 本领域技术人员应当将说 明书作为一个整体, 各实施例中的技术方案也可以经适当组合, 形成本领域技术人员可以 理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施例的具体说明, 它们并非用? ?以限制本发明的保护范围, 凡未脱离本发明技艺精神所作的等效实施例或 变更均应包含在本发明的保护范围之内。