公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob

发动机电控系统:T3温度模型标定

发动机电控系统:T3温度模型标定

嘴香男孩
Level 0
Level 0

首先解释一下一些基本概念和标定平台:  1、标定平台:bosch EDC17柴油机系统;  2、T3温度:涡前温度,变量名为 ASMod_tExhMnfUs ;  3、T22温度:进气歧管前温度(也可以称气体进入气缸的温度、空气与废气混合的温度),              变量名ASMod_tIntMnfDs ;


实际发动机的排气歧管出口处是没有温度传感器的,而排气温度的控制对于后处理来说至关重要。所以为了得到这个温度,只能靠建立模型并且通过试验标定模型的相关参数,使模型计算出的温度与实际相吻合。

先解释一下bosch的T3温度传递模型,如下表:

标定前提:T22温度标定完成。如前面所说,这个温度是空气与废气的混合气温度。这个温度跟中冷后温、EGR后温有关。下文的讨论默认T22,即混合气温度已正确标定。

温度传递模型:T3=T22+ΔT;ΔT为燃烧温度;T3温度的标定重点为燃烧温度。

T22、进气歧管进气温度
   缸内燃烧提升的温度
   T3温度
   考虑排气行进过程中的温度损失得到的最终值
   T3温度最终值
  ASMod_tIntMnfDs
   1、基于油量、转速、模式建立燃烧温度模型
   AsMod_tEG
   通过设定死区时间来实现温度的传递延迟
   ASMod_tExhMnfUs
  
   2、基于进气量、主喷角度、发动机温度建立燃烧温度的修正
   
   换句话说就是此刻显示的温度值是几十毫秒前计算得到的温度
   
  接下来看模型策略,首先需要在CalcCmb模块中计算出参与燃烧的燃料量:


参与燃烧的燃料量计算公式:

ASMod_dmFlBrn_mp
   mFl,Brn
   实际参与燃烧燃料量
   kg/h
  ASMod_dmFlNoBrn_mp
   mFl,NBrn
   未燃烧燃料量
   kg/h
  ASMod_qBrn
   MFl,Brn
   参与燃烧量中的能够产生温度的燃料量
   mg/stroke
  ASMod_rFlBrn
   rFl,Brn
   燃烧的燃烧质量比r F1,Brn是实际参与燃烧的燃料量m F1,Brn与实际给与总量中参与燃烧的量m F1,C的商
   -
  ASMod_dmO2IntMnfDs
   mO2,22
   实际燃料燃烧完全燃烧所需氧气质量分数
   kg/h
  ASMod_dmO2EG_mp
   mO2,3
   进气歧管下游的实际应给与的O2质量流量
   kg/h
  ASMod_rO2EG_mp
   rO2,3
   燃烧后剩余的氧气量
   -
  ASMod_dmFlEG
   mFl,3
   燃烧后的燃料质量流量
   kg/h
  ASMod_rFlEG
   rFl,3
   燃烧后剩余的燃料质量分数r F1,3由燃烧后存余的燃料质量m F1,3与废气质量流量总量m 3的比率
   -
  ASMod_dmEG_mp
   m3
   燃烧后的废气质量总量(包括进气量和燃料量)
   kg/h
  ASMod_dmIntMnfDs
   m22
   进气歧管入口进气量
   kg/h
  ASMod_facStoichBrn
   facstoich
   =B14:5*0.2315
   -
  解释一下相关的计算方法:化学计量空燃比为14.5。新鲜空气质量的氧质量分数为0.2315。

mO2,22,进气氧气质量分数,已知;

MFl,C,每冲程MFl,C的喷射燃料质量,已知;

mF1,C:系统计算给与燃料喷射量中的实际参与燃烧的量,为已知;

mF1,NC :系统计算给与燃料喷射量中的实际不参与燃烧的量,为已知;

用上面四个量计算出实际参与燃烧并且产生温度的燃料量,并传递给下一个模块计算燃烧增加的温度。

(这里需要解释一下:前模块中根据一系列的计算已经算出了需要给气喷射的量,这是个总量,包括两部分:参与燃烧的(主喷、预喷、部分后喷),不参与燃烧的(后部分远后喷)。不参与燃烧和不参与燃烧是两个不同的概念)

case1:进气歧管下游(=排气歧管出口处)的氧气质量流量mO2,22至少等于实际给与的燃料质量量mF1,C。则mO2,22>=14.5 * 0.2315 * mF1,C。在这种情况下,燃烧后剩余的氧气质量流量mO2,3大于或等于零。则:

实际参与燃烧氧气流量:mFl,Brn = mFl,C  ;

燃烧后剩余的O2质量流量mO2,3:mO2,3=mO2,22 - 14:5 * 0:2315 * mF l,C = mO2,22 - facstoich * mFl,C ;

未参与燃烧氧气质量流量量:mF l,NBrn = 0 ;

case2:排气歧管出口的氧气质量流量mO2,22少于燃烧燃料质量流量mF1,C所需的质量流量。则:m O2,22 <14.5 * 0.2315 * m Fl,C。在这种情况下,燃料m F1,C不完全燃烧,并且燃料质量流量m Fl,NBrn保持不变。燃烧下游的氧气质量流量等于零。则:

实际燃烧量mFl,Brn =mO2,22 / 14:5 / 0:2315 =mO2;22 / facstoich;

剩余氧气量mO2;3 = 0 ;

未参与燃烧量:mFl,NBrn = mF l,C - mFl,Brn ;

 

计算排气中的燃料存余质量流量(未燃烧燃料与不参与燃烧燃料(后喷)之和) mFL,3= mFl,NBrn + mFl,NC ;

燃烧后的废气(混合气)质量流量(混合气流量m22、实际参与燃烧的燃料质量与不参与燃烧质量之和【质量守恒】)

m3 = m22 + mFl,C + mFl,NC ;

废气(混合气)氧质量分数r O2,3由燃烧后的剩余氧气质量流量mO2,3与混合气质量总量m3的比率确定。相应地,燃烧后剩余的燃料质量分数r F1,3由燃烧后存余的燃料质量m F1,3与废气质量流量总量m 3的比率确定:

rO2;3 =mO2,3/m3 ;

rF l;3 =mF l,3/m3  ;

燃烧的燃烧质量比r F1,Brn是实际参与燃烧的燃料量m F1,Brn与实际给与总量中参与燃烧的量m F1,C的商。该值用于通过乘以每冲程MFl,C(已知)的喷射燃料质量来确定每冲程的燃烧质量MF1,Brn。

MFl,Brn =mF l,Brn*mF l,C*MF l,C = rF l,Brn * MF l,C ;

 

最后,燃烧的燃料质量MF1,Brn(AsMod_qBrn)用作输入变量以计算由于燃烧引起温度增加值。


前面的几乎可以不看,实际计算中,可以直接默认。下面进入正题,如下图,

CoEOM_CmpMatrix模块用于确定当前运行模式、模式转换(如正常模式,再生模式);在该矩阵中,如果可以定义在函数ExhMod_f_ExhGsTemp内使用哪个参数集(EOM%)来计算每个操作模式和子阶段的当前排气温度。),这里不讲,默认正常模式:

ExhMod_MsgExhGsTemp_t 模块用于将输入变量封装为结构体便于后续调用,这是为了建模方便搞的,不用理会;

ExhMod_MeasExhGsTemp_t 模块用于封装测量点计算值为结构体,同理,不予理会。

重点在ExhMod_f_ExhGsTemp 模块中;


ExhMod_f_ExhGsTemp 模块如下(【T3ASMod_tEG_mp的计算】


 基于燃烧燃料量ASMod_qBrn,发动机速度ASMod_nEng和发动机运行模式(通过ASMod_stPrs2Nxt切换)对排气温度建模。
 
 
 基于进气质量流量ASMod_dmIntMnfDs,MI1喷射开始InjCrv_phiMI1Des和发动机温度EngDa_tFld来校正建模的排气温度。

 

 
 
ExhMod_f_ExhGsTemp的主函数部分:


 ExhMod_f_ExhGsTemp 模块计算燃烧增加的温度dT;

 
 
 
 OpModeSwtMul 模块用于选择基础温度矫正;
 
 
 ExhMod_MeasExhGsTemp_t 模块用于模拟废气传递温度损失;
 


 

主要看ExhMod_f_ExhGsTemp 模块(这部分是正常模式EOM0):


上图:


 基于参与燃烧燃料量和转速-ASMod_tDiffEngBasEOM0_MAP计算排气温度增加量tDiffEngBas0 ;得出基本量tDiffEngBas0;
 
 
 ASMod_dmIntMnfDs-RefEOM0_MAP->m22,Ref;r22,rel =
 (m22,Ref - m22)/m22 ;  r22,rel输入ASMod_facEGTempMsFlwCorEOM0_CUR得出基于进气量的校正系数facEGTempMsFlwCoc;
 
 
 
 phiMI1Des - ASMod_phiSOIRefEOM0_MAP = phiSOIRef0。喷射起始差异phiDiffSOIRef0是校正曲线ASMod_facEGTempSOICorEOM0_CUR的输入变量。得出基于主喷角度的校正系数facEGTempSOICor ;
 
 
 从发动机参考温度ASMod_tEngRef_C中减去当前发动机温度tEng。发动机温度tDiffEngRef的这种差异是校正曲线ASMod_tEGEngTempCorEOM0_CUR的输入变量。曲线的输出是校正温度dTTEng。
 
 
 变量ASMod_numEngTempEGCalc_C从发动机温度字段tEngTempFld中选择当前发动机校正参考温度tEng(tEng经过修正后得到 tRef),该温度加上修正温度得到T3温度粗值;
 
 

下表粗略表示了OpModeSwtMul 模块功能:将上述的算出的系数进行一些处理并输出,这里不详细追究;

Input Array Name
   Output Variable Name
  tDiffEngBas
   tDiffEngBasSel
  dmIntMnfDsRef
   dmIntMnfDsRefSel
  facEGTempMsFlwCor
   facEGTempMsFlwCorSel
  facEGTempSOICor
   facEGTempSOICorSel
  tEGEngTempCor
   tEGEngTempCorSel
  tRef
   tRefSel
  最终结果 tEG = tDiffEngBasSel * facEGTempMsFlwCorSel * facEGTempSOICorSel + tEGEngTempCorSel +tRefSel ;

至此:完整的模型策略已经走完了,下面讲一下标定方法的理解:

最终结果 tEG = tDiffEngBasSel * facEGTempMsFlwCorSel * facEGTempSOICorSel + tEGEngTempCorSel +tRefSel ;


 ExhMod_facTRefCorEOM%_CUR全值1,则基础进气温度AsMod_tRef_mp=AsMod_tIntMnfDs_mp;

 AsMod_tRefSel_mp≈AsMod_tRef_mp;

 
 
 
 ASMod_tDiffEngBasEOM%_MAP标定:取%=0=正常模式;EGR关闭,TVA全开,AsMod_nEng从怠速到最高空转,AsMod_qBrn从0到最大喷射量;此时T22=中冷后温=Air_tCACDs;T31=排气歧管出口的传感器温度;跑一遍Engine Map,算出T31-AsMod_tRefSel_mp差值,通过Uniplot绘制出Map图填入ASMod_tDiffEngBasEOM0_MAP即可;完成后可再跑一次用来校对AsMod_tDiffEngBas_mp与台架的差值是否过大。
 
 
 第2步后,此时得到不开EGR的T3,不开EGR的进气流量没m22=AFS_dm填入ASMod_dmIntMnfDsRefEOM0_MAP对应点上;
 
 
 开EGR跑(可以通过固定EGR开度跑,也可以直接原数据跑)得到的进气流量m22=AsMod_dmIntMnfDs≠AFS_dm(需要事先标定容积效率),记录相应变量AsMod_tRefSel_mp温度和传感器sensor_T3温度 、AsMod_tDiffEngBas_mp;抽取部分工况计算(ASMod_dmIntMnfDsRef_mp - ASMod_dmIntMnfDs_mp)/ASMod_dmIntMnfDs_mp 填入ASMod_facEGTempMsFlwCorEOM0_CUR的x轴【】,对应(sensor_T3-AsMod_tRefSel_mp)/AsMod_tDiffEngBas_mp填入ASMod_facEGTempMsFlwCorEOM0_CUR的Z轴;完成后开EGR正常跑校对;
 
 
 主喷角修正:实际上ASMod_phiSOIRefEOM0_MAP只是作为一个主喷角度的变化的参考点,其标定的值不存在正确与否,可以直接将InjCrv_phiMI1Bas1EOM0_MAP主喷角度直接粘贴过来(到T3这一步基本主喷角度变化不会大于10°)。 并且该修正是为了针对优化后的数据如果还需要进一步小改动而设计的修正MAP;如果确定主喷角度不需要再改动,这个map不需要标。
 
 
 InjCrv_phiMI1Bas1EOM0_MAP主喷角度直接粘贴过来;标定工况【bosch推荐:参数设置在平均负载和发动机转速的固定工作点(推荐值:20 mg / 2000 rpm)】;
 从-15°~+15°每隔2-3°加减到InjCrv_phiMI1Bas1EOM0_MAP相应点中,记录变量数据:将加减差值作为ASMod_facEGTempSOICorEOM%_CUR的x轴;(sensor_T3-AsMod_tRefSel_mp)/AsMod_tDiffEngBas_mp填入ASMod_facEGTempSOICorEOM%_CUR的Z轴。完成后校准
 
 
 发动机温度修正,ASMod_tEngRef_C 定位常用温度。通过控发动机温度tEng ,tEng-ASMod_tEngRef_C填入ASMod_tEGEngTempCorEOM0_CUR 的x轴,
 计算sensor_T3-tEG填入y轴; 完成后校准;
 
 

1、以上均为个人拙见,难上大雅之堂,希望能给各位朋友带来灵感;2、参考文献:bosch标定文档;
————————————————
版权声明:本文为CSDN博主「柒夜酱」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/CKJ898/article/details/88345337

0 点赞
1070 次查看
3 评论