- 柴油机电控技术及故障维修
- 母忠林 母哲轩编著
- 2434字
- 2021-12-24 15:01:12
2.4.5 供油提前角的确定和供油时机控制
供油提前角的原意通常说的是某缸高压燃油泵开始供油时,其曲柄与上止点位置所夹的曲轴转角。而喷油提前角则是指某缸喷油器开始喷油时,其曲柄与上止点位置所夹的曲轴转角。在实际使用时,这两个参数都用于确定燃油被喷入气缸的时机。喷油提前角反映了燃油进入气缸的时机,是影响燃烧效果的重要参数。但由于喷油提前角必须用较特殊的设备才能测试出来,因此在工程上使用供油提前角较多。由于高压燃油压力传递速度的限制,供油提前角并不直接反映燃油被喷入气缸的时刻,只是间接反映这一参数。
在电控柴油机中一般说到的供油提前角,是有其特定含义的:
对于电控高压共轨系统,是指某气缸喷油器驱动脉冲起始时刻,曲柄与上止点位置所夹的曲轴转角。
对于电控单体泵系统,是指某气缸单体泵高速电磁阀驱动脉冲起始时刻,曲柄与上止点位置所夹的曲轴转角。
对于电控分配泵,是指针对某气缸供油凸轮升程达到0.05mm时刻,曲柄与上止点位置所夹的曲轴转角。注意:
① 当供油提前角在上止点前时,这一角度值为正。供油提前角可以是0,也可以是负值。在某些追求低NOx排放的控制过程中,为了降低燃烧温度,供油提前角甚至经常是负值。
② 正如前面所说,供油提前角只是反映了喷油提前角。即使是针对高压共轨系统,电控喷油器的针阀开启与驱动脉冲相比也有一定的滞后,因此,供油提前角反映的也不是油进入气缸的时刻,当然也不等同于喷油提前角。
针对某些研究工作需求而言,如果需要确定喷油提前角,必须借助其他的专用设备(如针阀升程传感器等)。在工程上一般只需通过供油提前角反映出相对的喷油相位关系,即可通过试验标定柴油机,使之获得最佳工作点。
③ 供油提前角在实现控制时一般是人为指定的量,通过试验证明其效果后将它记在脉谱中,以后在同样的工况下就将其作为参数取来应用。供油提前角的计算,是指根据已经确定的供油提前角,计算相关的供油参数。
④ 真正对可燃混合气生成有影响的参数是供油提前时间A_InjAdTime,在供油提前角A_InjAdvance和柴油机转速A_ShaSPeCr1已知的条件下:
A_InjAdTime =A_ShaSpeCr1×3600/(60×1000×1000×A_InjAdvance)
式中,A_ShaSPeCr1的单位是r/min;A_InjAdvance的单位是0.1°;A_InjAdTime的单位是μs。
(1)电控高压共轨和单体泵系统的供油提前角计算
在电控高压共轨和单体泵系统柴油机中,要实现对于供油提前角的控制,就需要根据已知的供油提前角数据,确定供油驱动脉冲的时间控制量。实现供油动作需要有供油函数Oil_Supply1()~ Oil_Supply4(),这一组函数工作时需要一组全局变量来支持:
A_Dtq1=dtq1-dtq0; 自齿中断时刻到供油低位开关打开
A_Dtq2=dtq2-dtq1; 自低位开关打开到高位开关打开
A_Dtq3=dtq3-dtq2; 自高位开关打开到高位开关关闭
A_Dtq4=dtq4-dtq3; 自高位开关关闭到低位开关关闭
如果在对应曲轴信号的某齿范围(本齿信号和下齿信号间)内开始供油,将这一齿称为供油齿。而A_Dtq1是本齿信号时刻到开始供油时刻的时间。在EDBM模型中,可以通过以下计算步骤来完成供油参数计算:
① 确定供油齿。根据已确定的供油提前角 A_InjAdvance和希望进行供油的气缸i,确定开始供油的整齿数。不失一般性,只讨论i=1的情况,用 A_OilTeeth表示供油齿。
当A_InjAdvance/6为整数时,A_OilTeeth=11-A_InjAdvance/6;
当 A_InjAdvance/6为非整数时,A_OilTeeth=11-int(A_InjAdvance/6)-1。
参考图2⁃12,上式中11是第一缸上止点对应的齿号,6是每齿的对应转角,以(°)为单位。int(A_InjAdvance/6)表示对A_InjAdvance/6计算的结果给出不大于括号内数值的最大整数。
② 确定供油偏移时间A_Dtq1的值。A_Dtq1是从供油齿沿到开始供油的时间,可以由以下算法来算出它。
当A_InjAdvance/6为整数时,A_Dtq1=0。
当A_InjAdvance/6为非整数时,有:
设转速为A_ShaSPeCr1,单位是r/min,可以变换为:
N=A_ShaSPeCr1×360/(60×1000000)[(°)/μs)]
A_Dtq1 =[(11⁃A_OilTeeth)×6⁃A_InjAdvance]/N(μs)
以上计算基于假定柴油机以A_ ShaSPeCr1为转速做匀速转动。事实上,柴油机的转速是不均匀的,而且有时柴油机的平均转速也是可能变化的,例如:可能做加速运动。但是,由于在一个齿的转动范围内,柴油机转速来不及做太多改变。假设在一个齿内的转速是匀速转动,不会带来太多误差,在工程上能够满足需求,计算量也不会太大。
例2⁃1 设 A_InjAdvance=9°, A_ShaPeCrl=1000r/min,则:
A_OilTeeth=11 -int(A_InjAdvance/6)-1=9
即针对第1缸,第9号齿是供油齿。而:
N=A_ShaSPeCr1×360/(60×1000000)=1000×360/(60×1000000)
=6/1000[(°)/μs]
A_Dtq1=[(11-A_OilTeeth)×6-A_InjAdvance]/N
=[(11-9)×6-9)]/(6/1000)=500(μs)
例2⁃2 设 A_InjAdvance=-9°,A_ShaSPeCr1=1000r/min,则:
A_OilTeeth =11-int(A_InjAdvance/6)-1=12
即针对第1缸,第12号齿是供油齿。而:
A_Dtql=[(11-A_OilTeeth)×6-A_InjAdvance]/N
=[(11-12)×6-(-9)/(6/1000)]=500(μs)
供油齿确定后,在运行中只要齿计数达到这一齿,即可启动供油函数。例如:在第一缸的情况下,运行Oil_Supply1()。供油函数会依据A_Dtql的值,确定精确的供油时刻。
按照以上的算法,我们来实际完成供油提前角处理函数OilAngle()。这一函数的作用是通过当前的供油提前角A_InjAdvance,来计算出下一供油齿A_OilTeeth和供油时间量A_Dtql。 OilAngle()的声明为:
void OilAngle();以下是 Milange函数的定义:
该函数的输入量为当前气缸号A_iR和下一缸供油提前角A_InjAdvance,根据气缸号而确定的上止点齿号为A_TDC[A_iR]。
该函数的输出量为下一个要工作的气缸对应的供油齿号A_OilTeeth、针对这一齿的供油时间偏移量A_Dtq1和后持续时间A_Dtq4。
与供油控制关系密切的其他两个时间量A_Dtq2和A_Dtq3,一般针对一种电控泵,通过油泵试验台试验来调整确定。确定后作为初始化数据写入程序,在工作过程中不再改变。
(2)供油提前角的计算时机和供油的执行
针对电控高压共轨和电控单体泵的供油提前角参数计算函数 OilAngle(),在控制层软件中是作为任务来实现的。这一任务的执行时机一般应在两次气缸供油的中间位置。在这样的位置上,需要实时处理的较少,可以将非实时任务集中在这些相位空间内来完成。在曲轴中断服务扩展函数中加入对任务调用的语句,可以适时地激活供油提前角参数计算任务。
在此为供油参数计算函数选定的任务号为30。为使这一任务得到执行,在任务调度扩展函数Ts_Sub()中加入执行语句:
由以上设置可以得到一种执行效果:每当曲轴转到某缸压缩上止点前15个齿(距上止点90°转角)时,激活针对下一缸供油参数的计算。
这一计算根据已确定的供油提前角,确定了下缸工作时的供油齿号和偏移时间量。在真正实现供油时,就会按照这两个参数确定具体时机。
从以上程序段中可以看出:尽管顺序执行了供油参数计算任务和实际供油的指令,但由于针对齿数的控制,上两种指令不会同在一次中断过程中被执行。前者在上止点前90°后附近被执行,而后者在进入可能的供油角范围(约-10°~30°)内后才可能被执行,此时,与后者执行有关的参数,已经由前者准备完毕,可以实现所希望的控制。
特别提示
以上有关函数和指令等仅供读者参考。对此类参数感兴趣的读者,请参阅本书参考文献[1]。