- 柴油机电控技术及故障维修
- 母忠林 母哲轩编著
- 2032字
- 2021-12-24 15:01:12
2.4.4 共轨系统轨压的控制
共轨系统最突出的优势在于其供油压力可以独立于柴油机的转速,也就是说,可以实现在整个转速区域内的稳定供油压力。特别是在柴油机低速区,传统的供油设备所实现的供油压力一般较低,因此无法实现较好的燃油雾化效果,而使用共轨系统则可以在基本工作性能上改变这种情况。
由于对共轨系统来说,轨压独立于转速,因此必须针对其轨压的建立和释放的过程,建立独立的控制机制,才能使轨压稳定在需要的范围内,为柴油机工作提供保障。
(1)目标轨压脉谱
共轨系统的目标轨压脉谱 RailPre是一个二维脉谱,它根据每次喷油量和转速确定共轨系统的目标轨压,见表2⁃14。
对于目标轨压的设置,主要是根据试验效果来决定。但也要满足共轨系统性能试验中确定的范围,超出范围则实际上系统无法实现。表2⁃14被用于提供轨压目标。ECU控制层软件必须设置一个独立工作的部分,该部分的功能就是通过对当前工况状态的检测,通过查表获得当前目标轨压;再根据对当前轨压的检测,获得实际量与目标量的差值;然后通过控制调整,使得当前轨压值逐渐与目标值接近一致。
表2⁃14 目标轨压脉谱 RailPre实例
① 1bar=0.1MPa。
(2)目标轨压的PID控制
通过一个实例来说明目标轨压的控制方式。这一实例是针对共轨系统高压油泵上的比例电磁阀的控制强度调整来实现轨压稳定的。在柴油机运行时,共轨系统高压油泵上的比例电磁阀受ECU对应的PWM输出驱动控制,当PWM输出较强时,会有更多的高压油被传输到共轨,使共轨压力上升;而当PWM输出较弱时,共轨压力会下降。
从前文对PID控制的介绍中可以明确了解,对于共轨系统轨压的控制可以通过如下方法来实现:
① 获得目标轨压。通过查找 RailPre脉谱来得到目标轨压。RailPre是二维脉谱,根据每次供油量和转速确定共轨系统的目标轨压。
② 设定PID控制任务。按照柴油机的控制策略要求,制作一个任务函数。该任务函数按照PID控制策略实现对于轨压的PID调整。具体的过程是:通过当前轨压传感器采样,得到轨压值A_RailP。根据当前轨压和目标轨压,结合前两次本PID任务中得到的数据,完成PID数据处理,得到本次的PID输出。针对本任务,输出的应该是一个用于调节的百分数改变量。当然,必须给本PID任务分配一个任务号。
③ 设定一个定时执行本PID任务的机制。依赖的PID控制模型的处理时间间隔必须是常量。也就是说,必须定时执行本PID的控制任务。可以在ECU的实时中断服务中设置定时执行本任务的机制。
④ 对PID的比例系数和积分系数做实用化的扩展。在实际的电控柴油机PID控制试验中发现,能够实现较理想的PID控制效果的PID参数往往其针对的范围是有限的。例如对轨压的控制,可以针对一个具体目标轨压和一个确定的输出油量找到较理想的比例系数和积分系数,但如果当前目标轨压和(或)输出油量变化了,则达到较好控制效果的PID系数也会改变。
为了满足这种控制需求,常采用建立系数脉谱的做法:针对轨压的小范围变化,处理函数通过查找PID系数脉谱,获得当前工况下的PID系数,用于实现PID控制。为此需要设置两个对应的二维脉谱RaPrPID_P和 RaPrPID_I:
RaPrPID_P——轨压控制PID比例系数脉谱;
RaPrPID_I——轨压控制PID积分系数脉谱。
这两个脉谱的结构是根据每次供油量和目标轨压在数据区提供PID比例系数和积分系数。这些比例系数和积分系数的具体值也都是根据专门试验确定的。
(3)轨压PID控制函数和任务
在此根据前面的要求,具体来实现轨压控制的函数,并建立对这一函数做定时调用的任务。控制轨压是通过控制比例电磁阀来实现的,而控制比例电磁阀是通过PWM方式实现的。
假设利用第2个PWM驱动通道来进行轨压调节的驱动,第2个PWM驱动通道输出函数为 PWM_OUT2。这一函数的说明为:
当执行本函数时,就会将第2个PWM驱动通道输出的脉冲信号的占空比调节为SPS(单位是百分数)。
① 轨压控制的函数 RailPrePID()。建立用于轨压PID控制的函数,它的定义为:
这一函数针对轨压控制的函数功能类似于下列函数:
但两者不同的是 RailPrePID()针对第2个脉宽控制输出口实施控制,是针对轨压控制而建立的。另外,由于我们这里希望通过执行任务的方式来实现PID调用,因此我们不采用形式参数,而是用全局变量的方式来传递目标轨压。针对这一函数的使用,也需要定义一全局数组变量A_Rail_PID_Array[]。
int A_Rail_PID_Array[0]~int A_Rail_PID_Array[4];
这一数组4个元素的作用分别为:
A_Rail_PID_Array[0]——PID比例项系数;
A_Rail_PID_Array[1]——PID积分项系数;
A_Rail_PID_Array[2]——上次目标偏差;
A_Rail_PID_Array[3]——上次PWM占空比。
对于PID比例项系数和PID积分项系数,可通过调用脉谱来确定。
本函数所利用的全局变量: A_InjOilMo、A_ShaPeCr1、A_GoalPre、A_Rail。本函数所改变的全局变量:A_GoalPre、A_Rail_PID_Array[]、A_RailPreDr。本函数使用的脉谱: RailPre、RaPrPID_P、RaPrPID_I。
② 轨压PID控制任务的建立。为了让 RailPrePID()函数真正实现对轨压的调整,我们建立能够让它等时间间隔工作的机制。为此我们赋予它一个任务编号52,并设置一个用于计时的全局变量A_RaPr_Time。在实时中断扩展函数中为它设置每20ms激活一次的功能。
在任务调度扩展函数中,加入此任务的执行。
采用任务调度的方式,会使轨压PID控制函数被执行的时间比它被激活的时间稍晚些。由于PID控制策略的等间隔要求,用任务调试的方式会使执行时间有少量的不定性。为减小这种影响,应将PID控制任务的优先级设定得高一些。实际应用效果证明了采用任务调度的方式对PID过程做控制能够得到理想的效果。