以下、この発明に係る内燃機関の制御装置の好適な実施の形態について、図面を参照して説明する。
実施の形態1.
図1は、この発明の実施の形態1に係る内燃機関の制御装置が適用されるエンジンの概略構成図であり、図2は、実施の形態1に係るエンジン制御部の概略構成を示すブロック図である。
まず、図1を用いて実施の形態1に係る内燃機関の制御装置が適用されるエンジンの概略構成について説明する。エンジン1の吸気系の上流に、吸入空気流量を検出する吸入空気流量検出手段としてのエアフローセンサ(Air Flow Sensor、以下、AFSと言う。)2が設けられており、更に、吸気温センサ3がAFS2に内蔵、又は別体のセンサとして設けられている。AFS2の下流であるエンジン1側には、吸入空気流量を調整するためのスロットル、例えば電気的に制御することができる電子制御スロットル4が設けられている。
また、電子制御スロットル4の開度を検出するために、スロットル開度センサ5が設けられている。更に、電子制御スロットル4の下流のサージタンク6及びインテークマニホールド7内を含む空間(以下、インマニと言う。)の圧力であるインテークマニホールド圧力(以下、インマニ圧と言う。)を検出する圧力センサ8が設けられている。ここで、AFS2の代わりに、インマニ圧に基づいて吸入空気流量を推定する方法(所謂、S/D(スピードデンシティ)方式)を用いてもよく、吸気温センサ3がインマニ内に設けられていてもよい。
インテークマニホールド7及び筒内を含む吸気バルブの近傍には、燃料を噴射するためのインジェクタ9が設けられ、吸気バルブ及び排気バルブには、バルブタイミングを可変にするための吸気VVT(Variable Valve Timing)10及び排気VVT11がそれぞれ設けられており、シリンダヘッドにはシリンダ内で火花を発生させる点火プラグを駆動するための点火コイル12が設けられている。エキゾーストマニホールド13には、空燃比センサ14、及び図示しない触媒が設けられている。なお、吸気VVT10と排気VVT11については、片方のみ設けられている場合や、いずれも設けられていない場合もある。
上述の各センサ、クランク角やエンジン回転数を検出するクランク角センサ15、及び図示しない他のセンサからの検出信号やエンジンの始動スイッチ(S/W)であるイグニッションS/W(以下、IG−S/Wと言う。)等の情報も含め、エンジン1の運転状態を示す情報として、マイクロコンピュータやインターフェース回路からなる電子制御装置(Electronic Control Unit、以下、ECUと言う。)20に入力される。
ECU20では、入力された各種データより目標トルクが算出され、算出された目標トルクを達成する目標吸入空気流量が算出される。そして、その目標吸入空気流量を達成するように後述する方法で電子制御スロットル4の目標有効開口面積を算出して目標スロットル開度を求めている。なお、目標有効開口面積の算出に必要な大気圧には、後述する大気圧推定手段での処理を実行して得られる大気圧推定値が用いられる。そして、目標スロットル開度を達成するように電子制御スロットル4の開度を制御する。また、同時にインジェクタ9、吸気VVT10、排気VVT11、点火コイル12を含む各種アクチュエータへの指示値も算出される。
次に、図2において、ECU20には、運転状態検出手段としてのAFS2、吸気温センサ3、スロットル開度センサ5、圧力センサ8、空燃比センサ14、クランク角センサ15、IG−S/W16、及び図1に示されていないその他の各種センサ17からの信号
が入力され、エンジン1を制御する手段としての電子制御スロットル4、インジェクタ9、吸気VVT10、排気VVT11、点火コイル12、及び図1に示されていないその他の各種アクチュエータ18への指示値が出力される。
ECU20ではエンジン制御に関する全ての処理を実施しているが、ここでは、本実施の形態に関係するスロットル制御手段と大気圧推定手段についての概略を説明する。AFS2、吸気温センサ3、圧力センサ8により、それぞれ検出された実吸入空気流量Qa(S/D方式の場合はインマニ圧Pbから推定)、吸気温Ta(インマニ内に吸気温センサが設けられている場合には大気温の代用として使用)から求められる充填効率、及びクランク角センサ15で求められるエンジン回転数Neから、目標空燃比算出手段21にて目標空燃比が求められる。次に、燃料補正係数算出手段22にて、前記にて算出した目標空燃比と空燃比センサ14で検出した空燃比AFから燃料補正係数を算出する。続いて、算出した燃料補正係数に基づいて、吸気流量補正係数算出手段23にて吸気流量補正係数を算出する。続いて、算出した吸気流量補正係数を使用して吸気流量補正手段24で、大気圧推定に使用する補正後吸気流量Qatmが算出される。
補正後吸気流量Qatmとインマニ圧Pb、吸気温Ta、及び後述する大気圧推定値Paから有効開口面積算出手段25にて電子制御スロットル4の実際の有効開口面積(以下、実有効開口面積と言う。)CAtが求められる。
次に、スロットル開度学習値算出手段26にて、前記にて算出した実有効開口面積CAtと、スロットル開度センサ5で検出された実スロットル開度θと、予め設定された有効開口面積とスロットル開度の関係マップとから、スロットル開度学習値を算出する。続いて、ばらつき算出手段27では、実有効開口面積CAtと、実スロットル開度θと、スロットル開度学習値で補正された有効開口面積とスロットル開度の関係マップとを用いて、実有効開口面積CAtに対する実スロットル開度θと学習補正後スロットル開度θ’、又は実スロットル開度θに対する実有効開口面積CAtと学習補正後有効開口面積CAt’のばらつき量を算出する。そして、このばらつき量が所定の範囲であるかどうかをばらつき範囲判定手段28で判定する。また、実有効開口面積CAtと実スロットル開度θの関係が所定の学習値範囲内かどうかを学習上下限判定手段29で判定する。
続いて、学習上下限判定手段29にて実有効開口面積CAtと実スロットル開度θの関係が所定の学習値範囲外と判定され、かつ、ばらつき範囲判定手段28で上述のばらつき量が所定の範囲外と判定されれば、大気圧推定値更新手段30にて大気圧推定値Paが更新される。なお、IG−S/W16のオン後、エンジン始動前においては、インマニ圧を大気圧推定値Paとして用いる。
目標スロットル開度算出手段31では、更新された大気圧推定値Paとその他の情報を用いて目標スロットル開度が演算される。そして、目標スロットル開度算出手段31で演算された目標スロットル開度により電子制御スロットル4が制御される。以上がECU20で行われるスロットル制御手段と大気圧推定手段の処理についての概略である。ここで、目標空燃比算出手段21、燃料補正係数算出手段22、吸気流量補正係数算出手段23、吸気流量補正手段24、有効開口面積算出手段25、スロットル開度学習値算出手段26により、スロットル制御手段が構成され、ばらつき算出手段27、ばらつき範囲判定手段28、学習上下限判定手段29、大気圧推定値更新手段30、目標スロットル開度算出手段31により、大気圧推定手段が構成されている。
次に、ECU20で行われる大気圧推定値更新手段30までの処理を、所定タイミング毎の演算処理(例えば、10ms毎のメイン処理やBTDC75degCA毎の割り込み処理)内で実施する図3に示すフローチャートを参照しながら詳細に説明する。
図3のステップS301において、IG−S/W16がオンで、かつエンスト中かどうかを判定し、Yesであれば、ステップS302に進み、大気圧推定値Paにインマニ圧Pbを代入して大気圧推定値Paを更新して終了となる。ステップS301の判定で、Noであればエンジン1が運転中であると判定してステップS303に進む。
このように、IG−S/W16がオンで、かつエンスト中の時に大気圧推定値Paを更新することで、自車の走行に関係なく大気圧が変化した場合(例えば輸送による移動)の大気圧変化に対応することができる。
次に、ステップS303において電子制御スロットル4の実有効開口面積CAtを演算する。本演算方法は、基本的には前記特願2014−23903号の出願に示した方法と同様であるが、ここで用いる流体力学の基礎式について説明する。所謂、絞り式流量計の体積流量算出式(圧縮性流体の場合)は次式で表される。
ここで、吸入空気流量をQa[L/s]、大気の音速をαa[m/s]、電子制御スロットル4の有効開口面積をCAt[cm2]、インマニ圧をPb[kPa]、大気圧をPa[kPa]、比熱比をκとする。ここで、無次元流量σを次の(2)式で定義すると、(1)式は、(3)式のように簡単に書き表すことができる。
なお、大気の音速αa[m/s]は、気体定数をR[kJ/(kg・K)]、大気温をTa[K]とすると次の(4)式で表される。
ここで、実吸入空気流量Qaと、大気の音速αa、無次元流量σが与えられた場合に、電子制御スロットル4の実有効開口面積CAtは、(3)式を変形した次の(5)式で算出することができる。
以上のように、実吸入空気流量Qaと、大気の音速αaと、無次元流量σとが与えられれば、電子制御スロットル4の実有効開口面積CAtが求められる。ここで、実際に演算に使用する実吸入空気流量Qaは、補正後吸気流量Qatmを使用する。補正後吸気流量Qatmは、図4のフローチャートにより演算される。
図4のフローチャートにおいて、まず、ステップS401で、クランク角センサ15から求められるエンジン回転数と実吸入空気流量Qaから求められる充填効率(またはインマニ圧Pb)から目標空燃比を求める。次にステップS402にて、目標空燃比と空燃比センサ14で検出される空燃比AFから、燃料補正係数を算出する。続いて、ステップS403にて燃料補正係数に基づいて、吸気流量補正係数を算出する。
一般的に燃料補正係数は目標空燃比に対して余分もしくは不足している燃料割合を算出し、係数として記憶する。例えば、目標空燃比が14.7であり、空燃比センサ14で検出される空燃比AFが13.5であった場合、燃料補正係数は13.5/14.7=0.918となる。燃料量は、AFS2から算出される吸気流量から算出されるため、真の吸気流量は検出吸気流量の0.918倍となる。従って、吸気流量補正係数は0.918となる。一般的に燃料補正係数は常時計算されており、その値をそのまま使用すると感度が高く過補正になることが懸念される。従って、燃料補正係数にフィルタ等を使用し、平均値相当としての使用、運転状態によるゾーン分けを実施し、補正係数を記憶しておくことが望ましい。最後に、ステップS404で吸気流量補正係数を用いて補正後吸気流量Qatmを算出する。以上により、AFS2にばらつきがあった場合でもより正確な吸気流量を用いて大気圧推定を行うことができる。
図3に戻り、ステップS304にてスロットル開度学習値を演算する。スロットル開度学習値の演算方法については後述する。続いて、ステップS305ではスロットル開度の誤差ばらつきを演算する。スロットル開度の誤差ばらつきは、図5に示すフローチャートにより演算される。
図5のフローチャートにおいて、まず、ステップS501で、ステップS303で算出した実有効開口面積CAtと、予め設定された有効開口面積とスロットル開度の関係マップと、前回の処理タイミングでのスロットル開度学習値から、今回のスロットル開度学習値を算出し、実有効開口面積CAtに対する学習後スロットル開度θ’を算出する。例えば図6に示すように、縦軸をスロットル開度、横軸を有効開口面積としたときに、予め設定された有効開口面積とスロットル開度の関係マップを実線とすると、スロットル開度学習値で補正された有効開口面積とスロットル開度の関係は破線のように表される。ここで、ステップS303にて算出された実有効開口面積をCAt1とすると、学習後スロットル開度θ’はT1のように求められる。
続くステップS502にて、実スロットル開度θと学習後スロットル開度θ’からスロットル開度誤差を算出し、ステップS503ではスロットル開度の誤差ばらつきを正規分布と仮定して分散S2をスロットル開度の誤差ばらつきとして算出する。分散S2は、N個のデータ(x1,x2,・・・,xn)からなる標本の場合、次の(6)式にて定義される。
このように、分散S2とは各データと平均値の誤差の2乗平均である。本実施の形態1においては、平均値として過去のデータから求められる学習値を用い、各データと学習値の誤差の2乗を1次フィルタにより、なまし処理を施した値を分散S2に相当する値とする。具体的には、次の(7)式、及び(8)式で算出する。
ここで、Tsはスロットル開度誤差の2乗、Tgはスロットル開度誤差の分散、T2はスロットル開度センサ5にて検出した実スロットル開度θ、Kgはフィルタ係数で予め適合された値を用いる。前記1次フィルタ値以外でも、例えば、移動平均値を用いても良い。nは今回値を示し、n−1は前回値を示す。
このように、スロットル開度の誤差ばらつきを正規分布と仮定することで、スロットル開度の誤差ばらつきに分散を使用することができ、ばらつき幅の見積もりを容易に行うことができる。以上でスロットル開度の誤差ばらつき演算が終了する。なお、ここでは分散を用いたが、分散の平方根である標準偏差を用いるようにしてもよい。
図3のフローチャートの説明に戻り、ステップS306において、圧力比が所定値Aより小さいかどうかを判定する。ここで、圧力比は、電子制御スロットル4の前後の圧力比であって、具体的にはインマニ圧Pb/大気圧推定値Paとなる。この圧力比は、図示しない圧力比算出手段で求められ、所定値Aは1に近い値、例えば0.95が設定される。これより圧力比が1に近い場合、無次元流量σの感度が高くなり、スロットル開度学習値の誤差が大きくなる可能性があるので除外するためである。
ステップS306の判定で、YesであればステップS307へ進み、NoであればステップS312へ進む。ステップS312では前回大気圧推定値Paを大気圧推定値Paとして処理終了となる。ここで、ステップS306の判定でNoの場合に、ステップS3
12に進む前に従来の方法(例えば、特許文献1の方法等)も併用するようにしてもよい。つまり、実スロットル開度θが所定値より大きい場合や、インマニ圧Pb>大気圧推定値Paの場合にステップS302に進み、それ以下の場合にはステップS312に進むようにしてもよい。
ステップS307では、ステップS305で算出したスロットル開度の誤差ばらつきである分散S2が、所定値Bより大きいかどうかを判定する。ステップS307の判定で、YesであればステップS308へ進み、NoであればステップS312へ進む。ステップS312では前回大気圧推定値Paを大気圧推定値Paとして処理終了となる。
次に、ステップS308にて実有効開口面積CAt1に対する実スロットル開度T2(=θ)がスロットル開度学習下限値よりも小さいかどうかを判定する。ステップS308の判定で、YesであればステップS309へ進み、NoであればステップS310へ進む。
図7に示すように縦軸をスロットル開度、横軸を有効開口面積としたときに予め設定された有効開口面積とスロットル開度の関係マップを実線とすると、スロットル開度学習下限値は破線、スロットル開度学習上限値は一点鎖線で表される。学習上下限値は、スロットル機差ばらつきを考慮して予め設定される。図7において、ステップS303にて算出した実有効開口面積CAt1とスロットル開度センサ5から求めた実スロットル開度T2(=θ)の交点が、スロットル開度学習下限値T3よりも下であればYesとなる。図7に示した交点はスロットル開度学習下限値T3よりも上であるのでNoとなる。
ステップS309では前回大気圧推定値Paから所定値Ptg_upだけ加算し、今回大気圧推定値Paとして処理終了となる。交点がスロットル開度学習下限値T3よりも小さければスロットル機差ばらつきによるずれではなく、実大気圧が大気圧推定値Paよりも大きいと考えられるため、大気圧推定値Paを加算側へ更新する。所定値Ptg_upは急激な大気圧推定値Pa変化をさけるため、1[kPa]以下の値とすることが望ましい。
ステップS310では、スロットル開度がスロットル開度学習上限値T4よりも大きいかどうかを判定する。ステップS310の判定で、YesであればステップS311へ進み、前回大気圧推定値Paに所定値Ptg_downだけ減算し、今回大気圧推定値Paとして処理終了となる。スロットル開度学習上限値T4はスロットル機差ばらつきを考慮して予め設定される。スロットル開度学習値がスロットル開度学習上限値T4よりも大きければ、スロットル機差ばらつきによるずれではなく、実大気圧が大気圧推定値Paよりも小さいと考えられるため、大気圧推定値Paを減算側へ更新する。所定値Ptg_downは急激な大気圧推定値Paの変化をさけるため、1[kPa]以下の値とすることが望ましい。ステップS310の判定で、Noであれば大気圧推定値Paは正しいと判定されたことになるのでステップS312へ進み、大気圧推定値Paを前回大気圧推定値Paとして処理終了となる。
以上の処理によって大気圧推定値Paは更新される。
続いて、ステップS304でのスロットル開度学習値の演算について詳細に説明する。この演算はスロットル開度学習値算出手段26において実行され、前記特願2014−23903号の出願に示された方法と同様である。ここで、前述の(1)式から(5)式に示す理論式を用いたスロットル開度学習値算出手段26の実現方法について説明する。
図8及び図9は、スロットル開度学習値算出手段26の詳細を示した制御ブロック図である。まず図8の制御ブロック図を参照しながら、スロットル開度学習値算出手段26の
スロットル制御、及びスロットル開度学習の概要について説明する。
ブロック801では、アクセル開度等の入力された各種データより目標トルクのようなエンジン出力指標が算出され、算出されたエンジン出力指標を達成するのに必要な目標シリンダ吸入空気流量が算出される。そして、目標シリンダ吸入空気流量に基づいてスロットルを通過する目標吸入空気流量Qa*が算出される。続くブロック802では、目標有効開口面積CAt*が、(5)式を用いて、目標吸入空気流量Qa*、大気の音速αa、無次元流量σより、目標吸入空気流量Qa*を達成するための目標有効開口面積CAt*として算出される。このように、絞り式流量計の流量算出式を基に目標有効開口面積CAt*を算出しているので、環境条件の変化やEGR導入等のエンジン1の運転状態が変化した場合においても、良好に目標吸入空気流量Qa*を達成する目標有効開口面積CAt*を算出することができる。
ところで、ブロック802の演算で必要となる大気の音速αaは、(4)式を用いてECU20で演算するには演算の負荷が大きくなるため、ブロック803のように、予め大気の音速の理論値を算出して吸気温Taを軸としたマップとして記憶しておき、ブロック802の演算前に、ブロック803において吸気温Taを用いて大気の音速αaを算出している。
さらに、ブロック802の演算で必要となる無次元流量σについても、(2)式を用いてECU20で演算するには演算の負荷が膨大となるため実用的ではない。そこで、ブロック804のように、ECU20での演算負荷を抑えるために、予め無次元流量の理論値を算出してインマニ圧Pbと大気圧Paの圧力比Pb/Paを軸としたマップとして記憶しておき、ブロック802での演算前にインマニ圧Pbと大気圧Paの圧力比Pb/Paを算出し、ブロック804において算出された圧力比Pb/Paを用いて無次元流量σを算出している。
ところで、一般に、圧力比Pb/Paが所定値E(空気の場合、約0.528)以下の場合、電子制御スロットル4を通る空気の流量が飽和(所謂、チョーク)することが知られている。このチョークが起きた場合には、(2)式で算出される無次元流量σは一定値になることも知られている。そこで、インマニ圧Pbと大気圧Paの圧力比Pb/Paが所定値E以下の場合には、ブロック804のマップの値を所定値Eに対応する一定値(空気の場合、約0.5787)にすることで、チョークが起きた場合においても対応することができる。
また、無次元流量σは、圧力比Pb/Paがある程度大きくなると、吸入空気脈動によるインマニ圧Pbの振動の影響が大きくなる場合がある。そこで、圧力比Pb/Paが所定値Pr(例えば、約0.95)以上の場合、ブロック804のマップの値を所定値Prに対応する一定値(例えば、約0.26)として扱うことにより、吸入空気脈動の影響を少なくし、スロットル制御性を確保することができる。なお、インマニ圧Pbのピーク値の方が大気圧Paより大きい場合には、インマニ内の圧力振動により電子制御スロットル4を逆流する空気が生じていると考えられるので、この場合には、ブロック804のマップの値を所定値Prに対応する一定値(例えば、約0.26)として扱うようにしてもよい。
以上のようにして、ブロック802で算出された目標有効開口面積CAt*を用いて、ブロック805では目標スロットル開度TP*を算出する。その際、実吸入空気流量Qaを用いて(5)式により算出された実有効開口面積CAtとスロットル開度TPの関係を予め検出し、有効開口面積CAtとスロットル開度TPが1対1で対応する有効開口面積とスロットル開度の関係マップとして記憶しておき、このマップを用いることで目標有効
開口面積CAt*から目標スロットル開度TP*を算出することができる。
以上のように、算出された目標スロットル開度TP*により電子制御スロットル4を制御した時に、スロットルボディ及び各種センサ等のばらつきや各種推定誤差に起因する目標吸入空気流量Qa*と実吸入空気流量Qaの誤差を減少するように、スロットル開度学習値TPLRNを算出する方法を以下で説明する。
スロットル開度学習値TPLRNを算出するために、ブロック806では、学習用に用いる実有効開口面積CAtiを、実吸入空気流量Qa、大気の音速αa、無次元流量σより算出する。続くブロック807では、ブロック805と同じマップを用いて実有効開口面積CAtiより学習用スロットル開度TPiを算出する。そしてブロック808では、目標スロットル開度TP*と学習用スロットル開度TPiとの偏差ΔTP(=TP*−TPi)をスロットル開度学習基本値として算出し、ブロック809では、ΔTPを積分するなどしてスロットル開度学習値TPLRNを算出して格納する。ブロック809でのスロットル開度学習値TPLRNの格納処理については詳細を後述する。
以上により、算出した目標スロットル開度TP*とスロットル開度学習値TPLRNをブロック810で加算して、最終的に電子制御スロットル4を駆動する学習補正後目標スロットル開度TPLRN*を算出する。
このように、スロットル開度学習値算出手段26では、スロットル開度学習基本値ΔTP(目標スロットル開度TP*と学習用スロットル開度TPiとの偏差)に基づいてスロットル開度学習値TPLRNを算出し、目標スロットル開度TP*をスロットル開度学習値TPLRNで補正した学習補正後目標スロットル開度TPLRN*を用いて、スロットル開度TPを制御するようになっている。
以下、図10も参照しながら、スロットル開度制御の学習機能について、具体的に説明する。図10は、スロットル開度学習基本値ΔTPの算出方法を概略的に示す説明図である。ここで、スロットル開度TPと有効開口面積CAtが1対1で対応するものと考えると、目標吸入空気流量Qa*と実吸入空気流量Qaとの間に誤差が存在する場合には、目標吸入空気流量Qa*から算出した目標有効開口面積CAt*と、実吸入空気流量Qaから算出した実有効開口面積CAtiとの間にも、誤差が存在することになる。
例えば、図10に示すように、スロットル開度TPの制御に用いられる有効開口面積CAtとスロットル開度TPの関係マップ(以下、CAt−TPマップと称し、ブロック805及び807で用いるもの、破線参照。)と、現在の制御対象であるエンジン1のスロットルボディのばらつきや、インマニ圧Pb、吸気温Taなどを検出する各種センサのばらつきを含んで推定演算される実有効開口面積と実スロットル開度との関係(以下、実際のCAt−TP関係と称し、実線参照。)との間に誤差がある場合を考える(AFS2のばらつきは補正後吸気流量Qatmにより補正済み)。
このとき、目標有効開口面積CAt*と目標スロットル開度TP*との関係は、図10のCAt−TPマップ(破線)上の点aで示される。ところが、図10のように、CAt−TPマップ(破線)と実際のCAt−TP関係(実線)との間に誤差が存在すると、目標スロットル開度TP*に対応した実際のCAt−TP関係(実線)上の点bの実有効開口面積CAtiは、目標有効開口面積CAt*と異なり、スロットル開度TPを目標スロットル開度TP*に制御したときに得られる実吸入空気流量Qaは、目標吸入空気流量Qa*と一致しないことになる。このとき演算に使用する実吸入空気流量Qaは、図4で求めた補正後吸気流量Qatmでも構わない。
そこで、この誤差を補正する学習値を算出するために、目標スロットル開度TP*に制御したときに検出される実吸入空気流量Qaに基づいて、実有効開口面積CAtiを算出する。実有効開口面積CAtiと目標スロットル開度TP*との関係は、図10における実際のCAt−TP関係(実線)の曲線上の点bで示される。
図10において、目標有効開口面積CAt*(目標吸入空気流量Qa*)を達成するためには、スロットル開度TPが、実際のCAt−TP関係(実線)の曲線上の点dに制御される必要があるので、点aと点dとの間の差分ΔTPをスロットル開度学習基本値として算出する必要がある。このとき、図10に示すように、CAt−TPマップ(破線)と実際のCAt−TP関係(実線)とが、局所的には、ほぼ平行の関係にあるものと仮定し、目標スロットル開度TP*に制御したときの実吸入空気流量Qaから算出された実有効開口面積CAtiに基づき、CAt−TPマップ(破線)を用いて学習用スロットル開度TPiを算出する。
ここで算出された学習用スロットル開度TPiと実有効開口面積CAtiとの関係は、図10のCAt−TPマップ(破線)上の点cで示される。従って、点bと点cとの間の差分で示されるスロットル開度学習基本値ΔTP(=TP*−TPi)が、点aと点dとの間のスロットル開度学習基本値とほぼ等しいものと見なすことができる。このスロットル開度学習基本値ΔTPに、ゲインを掛けて積分したものがスロットル開度学習値TPLRNとなり、目標スロットル開度TP*にスロットル開度学習値TPLRNを加算して算出した学習補正後目標スロットル開度TPLRN*により、スロットル開度TPを制御することで、目標吸入空気流量Qa*と実吸入空気流量Qaとの誤差は減少する。
このようにすることで、目標吸入空気流量Qa*を得るためのスロットル開度TPを算出する際に、スロットルボディ及び各種センサなどのばらつきや、各種推定演算における誤差に対して、良好に目標吸入空気流量Qa*が達成できるように有効開口面積CAtとスロットル開度TPとの関係を学習補正することができる。このとき、CAt−TPマップ(破線)と実際のCAt−TP関係(実線)との誤差がほぼ一定(実質的に平行)の関係にあれば、スロットル開度学習値TPLRNを単独でフィードバック制御として用いた場合でも、全運転領域で良好に制御することができる。
ところで、例えば図11に示すように、実際のCAt−TP関係(実線)に対して、CAt−TPマップ(破線)がクロスしている場合や、CAt−TPマップ(一点鎖線)の誤差が一定(平行)でない場合には、スロットル開度学習値TPLRNを単独で用いると、過渡運転時に追従遅れやオーバーシュートなどの問題が発生する可能性がある。
そこで、このような場合に対処するためには、図9のように、スロットル開度学習基本値ΔTPを、フィードバック制御として用いるリアルタイム学習値TPRと、CAt−TPマップのCAt軸(図10、図11の横軸)に対応する学習領域ごとに記憶するロングタイム学習値TPLとに分配して記憶し、それらに基づいてスロットル開度学習値TPLRNを算出することが望ましい。これにより、CAt−TPマップ上の値とロングタイム学習値TPLとの和を、実際のCAt−TP関係に近づけることができる。また、リアルタイム学習値TPRを併用することにより、フィードバック制御により瞬時的な誤差を吸収することができる。以下、図9の機能ブロック図と共に、図12及び図13の説明図を参照しながら、スロットル開度学習値の算出、及び格納方法について詳細に説明する。
図9において、ブロック901によりスロットル開度学習基本値ΔTPの分配処理が行われ、所定の割合でリアルタイム学習値TPRとロングタイム学習値TPLとに分配される。切換手段901aは、所定のリセット条件が成立した場合には、リアルタイム学習値を算出するブロック902に「0」を入力し、所定の更新禁止条件が成立した場合には、
前回のリアルタイム学習値TPR(n−1)を入力し、リアルタイム学習値TPRのリセット条件や更新禁止条件が不成立の場合には、分配後のスロットル開度学習基本値ΔTPを入力する。従って、ブロック902では、リアルタイム学習値TPRのリセット条件や後述する更新禁止条件が不成立の場合に、分配後のスロットル開度学習基本値ΔTPに基づいて、最終的なリアルタイム学習値TPRを算出する。
切換手段901bは、所定の更新禁止条件が成立した場合には、ブロック903に前回のロングタイム学習値TPL(n−1)を入力し、ロングタイム学習値TPLの更新禁止条件が不成立の場合には、分配後のスロットル開度学習基本値ΔTPを入力する。従って、ブロック903では、ロングタイム学習値TPLの更新禁止条件が不成立の場合には、分配後のスロットル開度学習基本値ΔTPに基づいて、CAt−TPマップのCAt軸に応じた学習領域ごとに最終的なロングタイム学習値TPLを算出する。
なお、切換手段901a、901bにおける更新禁止条件の具体例として、インマニ圧Pbと大気圧Paとの圧力比Pb/Paが所定値F以上を示す場合や、インマニ圧Pbのピーク値の方が大気圧より大きい場合には、(2)式の演算に誤差が生じるため、リアルタイム学習値TPR、及びロングタイム学習値TPLの更新が禁止されるようにすることができる。
また、切換手段901aにおけるリセット条件の具体例として、目標吸入空気流量Qa*の時間変化率dQa*/dtが所定値G以上に達した後の経過時間が、所定値H以内を示す期間においては、リアルタイム学習値TPRがリセットされるようにしてもよい。この条件は、過渡運転を検出した場合に相当するが、ロングタイム学習値TPLの更新禁止条件としても使用することで、誤学習を抑制することができる。
ブロック904では、CAt−TPマップと、ロングタイム学習値TPLを加算して補正した後の実際のCAt−TP関係とが、単調増加になるように、ロングタイム学習値TPLを制限する。これは誤学習を抑制するための処理でもあり、スロットル開度TPと吸入空気流量Qaの関係を単調増加に保つための処理である。ブロック905では、単調増加処理手を介したロングタイム学習値TPLを学習領域毎に記憶する。ブロック906では、リアルタイム学習値TPRとロングタイム学習値TPLとを加算し、スロットル開度学習値TPLRNを算出する。
なお、ブロック905では、ロングタイム学習値TPLはバックアップメモリに記憶される。即ち、エンジン1の停止中またはECU20の電源オフ時においては、リアルタイム学習値TPRはリセットされるが、ロングタイム学習値TPLはバックアップメモリにより保持される。
次に、図12及び図13を参照しながら、図9に示したロングタイム学習値TPLの学習領域ごとの算出処理について具体的に説明する。図12及び図13は、実施の形態1におけるロングタイム学習値TPLの格納処理、及び単調増加処理をそれぞれ概略的に示す説明図である。図10において、スロットル開度学習基本値ΔTPは、点bと点cとの間の差分であるが、これは点aと点dとの間の学習値としても適用される。ここで、スロットル開度学習基本値ΔTPを、CAt−TPマップのCAt軸に対して、例えば1対1に対応する学習領域ごとに分配して記憶する場合を考える。このとき、図10に示すように、目標有効開口面積CAt*の前後のCAt軸に対応する学習領域と、実有効開口面積CAtiの前後のCAt軸に対応する学習領域との少なくとも一方で、ロングタイム学習値TPLとして記憶することが可能である。
なお、各CAt軸に対応する学習領域に記憶されるロングタイム学習値TPLは、前回
のロングタイム学習値TPL(n−1)に対して、スロットル開度学習基本値ΔTPに基づく所定値を加算するか、または、この所定値から目標有効開口面積CAt*及び実有効開口面積CAtiの前後のCAt軸までの比に応じた値を算出し、これを加算することにより算出することができる。また、目標有効開口面積CAt*と実有効開口面積CAtiとの双方でロングタイム学習値TPLを記憶すれば、ロングタイム学習値TPLの収束時間を短縮することができる。
このようにロングタイム学習値TPLを算出する場合、学習可能な条件は、後述する更新禁止条件が不成立の場合のみなので、実際に学習が行われるのは、定常運転の常用域のみに限られる。また一般には、スロットル開度TPと吸入空気流量Qaとは単調増加の関係にあるので、有効開口面積CAtとスロットル開度TPとの関係も単調増加である必要がある。
ところが、局所的に学習が行われた場合には、図13の破線及び破線枠で示すように、CAt−TPマップ(実線)の値とロングタイム学習値TPLとの和(破線)が単調増加にならない場合が起こり得る。この場合、例えば目標吸入空気流量Qa*が増加しているにも関わらず、学習補正後目標スロットル開度TPLRN*が減少するので、エンジン1の出力低下や、スロットル開度学習値TPLRNの誤学習といった問題が生じる。
そこで、ブロック904では、図13の点線及び点線枠で示すように、CAt−TPマップ(実線)の値とロングタイム学習値TPLとの和(点線参照。)が単調増加となるように、ロングタイム学習値TPLの学習領域毎にロングタイム学習値TPLを制限する処理を行う。これにより、スロットル開度学習値TPLRNの誤学習や誤作動を防止することができる。以上のようにすることで、スロットル開度学習値算出手段26が実現でき、スロットル開度TPと有効開口面積CAtの関係を学習することができる。
以上のように、実施の形態1に係る内燃機関の制御装置によれば、AFS2の出力のばらつきを吸収するため燃料補正係数に基づいて吸気流量補正係数を算出し、吸気流量を補正する。そして、補正された吸気流量を用いて有効開口面積を算出し、算出した有効開口面積とスロットル開度からスロットル開度学習値を演算し、スロットル機差ばらつきに対するスロットル開度と有効開口面積の関係を学習しながら、スロットル開度学習値を考慮したスロットル開度と実スロットル開度の偏差の統計的ばらつきを判断基準として、大気圧推定値Paを更新する。これにより、電子制御スロットル4の機差ばらつきによらず大気圧の推定を精度良く推定することができる。
実施の形態2.
次に、この発明の実施の形態2に係る内燃機関の制御装置について詳細に説明する。ここでは実施の形態1と同様の部分(図1、図2、及び図8から図13に該当する部分)の説明は省略する。実施の形態1との違いは、実施の形態1が実有効開口面積CAtに対する実スロットル開度θと学習補正後スロットル開度θ’のばらつき量に基づいて大気圧を推定したのに対し、実施の形態2では、実スロットル開度θに対する実有効開口面積CAtと学習補正後有効開口面積CAt’のばらつき量に基づいて大気圧を推定するようにしたことである。
図14は、実施の形態2に係る内燃機関の制御装置の大気圧推定処理を示すフローチャートで、ECU20で行われる大気圧推定値更新手段30までの処理を、所定タイミング毎の演算処理(例えば、10ms毎のメイン処理やBTDC75degCA毎の割り込み処理)内で実施する説明図である。
図14に示すフローチャートのステップS1401からステップS1404までの処理
は実施の形態1で説明した図3のステップS301からステップS304の処理と同様であるため説明を省略する。また、ステップS1401で有効開口面積を算出するために使用する実吸入空気流量Qaは実施の形態1で説明した補正後吸気流量Qatmであるため説明を省略する。更に、ステップS1404のスロットル開度学習値の演算(スロットル開度学習値算出手段26において実行)についても実施の形態1で説明した内容と基本的には同じであるため省略する。
次に、ステップS1405以降について説明する。
ステップS1405では有効開口面積の誤差ばらつきを演算する。有効開口面積の誤差ばらつきは図15に示すフローチャートにより演算される。
図15において、ステップS1501で、スロットル開度センサ5から求められた実スロットル開度θと、予め設定された有効開口面積とスロットル開度の関係マップと、前回の処理タイミングでの有効開口面積学習値から、今回の有効開口面積学習値を算出し、実スロットル開度θに対する学習補正後有効開口面積CAt’を算出する。例えば図16に示すように、縦軸を有効開口面積、横軸をスロットル開度としたときに予め設定された有効開口面積とスロットル開度の関係マップを実線とすると、スロットル開度学習値で補正された値は破線のように表される。ここで実スロットル開度θをT5とすると、学習後有効開口面積はCAt2のように求められる。なお、ステップS1403で算出された実有効開口面積はCAt3とする。
次に、ステップS1502で実有効開口面積CAt3と学習後有効開口面積CAt2から有効開口面積誤差を算出し、ステップS1503では有効開口面積の誤差ばらつきを正規分布と仮定して分散有効開口面積の誤差ばらつきとして算出する。実施の形態2においては、平均値として過去のデータから求められる学習値を用い、各データと学習値の誤差の2乗を1次フィルタによりなまし処理を施した値を分散に相当する値とする。具体的には、次の(9)式、及び(10)式で算出する。
ここで、CAtsは有効開口面積誤差の2乗、CAtgは有効開口面積誤差の分散、CAt3はステップS1303で求められた実有効開口面積、Kgはフィルタ係数であり、予め適合された値を用いる。前記1次フィルタ値以外でも、例えば、移動平均値を用いても良い。nは今回値を示し、n−1は前回値を示す。
このように、有効開口面積の誤差ばらつきを正規分布と仮定することで、有効開口面積の誤差ばらつきに分散を使用することができ、ばらつき幅の見積もりを容易に行うことができる。以上で有効開口面積誤差ばらつき演算が終了する。なお、ここでは分散を用いたが、分散の平方根である標準偏差を用いるようにしてもよい。
図14のフローチャートに戻り、ステップS1406で圧力比が所定値Aより小さいかどうかを判定する。ステップS1406の判定で、YesであればステップS1407へ進み、NoであればステップS1412へ進む。ここで、所定値Aの設定は実施の形態1と同様である。ステップS1412では大気圧推定値Paを前回大気圧推定値Paとして処理終了となる。ここで、Noの場合にステップS1412に進む前に従来の方法(例えば、特許文献1の方法等)も併用するようにしてもよい。つまり、スロットル開度θが所定値より大きい場合や、インマニ圧Pb>大気圧推定値Paの場合にステップS1402に進み、それ以下の場合にはステップS1412に進むようにしてもよい。
ステップS1407では、ステップS1405で算出した有効開口面積の誤差ばらつきである分散が所定値Cより大きいかどうかを判定する。ステップS1407の判定で、YesであればステップS1408へ進み、NoであればステップS1412へ進む。ステップS1412では前回大気圧推定値Paを大気圧推定値Paとして処理終了となる。
次に、ステップS1408にて実有効開口面積がスロットル開度学習上限値よりも大きいかどうかを判定する。ステップS1408の判定で、YesであればステップS1409へ進み、NoであればステップS1410へ進む。図17に示すように縦軸を有効開口面積、横軸をスロットル開度としたときに予め設定された有効開口面積とスロットル開度の関係マップを実線とすると、スロットル開度学習下限値は破線、スロットル開度学習上限値は一点鎖線で表される。スロットル開度学習上下限値はスロットル機差ばらつきを考慮して予め設定される。図17において、ステップS1403にて算出した実有効開口面積CAt3とスロットル開度センサ5から求めた実スロットル開度T5(=θ)の交点がスロットル開度学習上限値CAt5よりも上であればYesとなる。図17に示した交点はスロットル開度学習上限値よりも上であるのでYesとなる。
ステップS1409では前回大気圧推定値Paに所定値Ptg_upだけ加算し、今回大気圧推定値Paとして処理終了となる。交点がスロットル開度学習上限値よりも大きければスロットル機差ばらつきによるずれではなく、実大気圧が大気圧推定値Paよりも大きいと考えられるため、大気圧推定値Paを加算側へ更新する。所定値Ptg_upは急激な大気圧推定値変化をさけるため、1[kPa]以下の値とすることが望ましい。
ステップS1410では有効開口面積がスロットル開度学習下限値CAt4よりも小さいかどうかを判定する。ステップS1410の判定で、YesであればステップS1411へ進み、前回大気圧推定値Paを所定値Ptg_downだけ減算し、今回大気圧推定値Paとして処理終了となる。スロットル開度学習値が学習下限値よりも小さければ、スロットル機差ばらつきによる変化ではなく、実大気圧が大気圧推定値Paよりも小さいと考えられるため、大気圧推定値Paを減算側へ更新する。所定値Ptg_downは急激な大気圧推定値変化をさけるため、1[kPa]以下の値とすることが望ましい。ステップS1410の判定で、NoであればステップS1412へ進む。ステップS1412では前回大気圧推定値Paを大気圧推定値Paとして処理終了となる。
以上の処理によって大気圧推定値Paは更新される。
以上のように、実施の形態2に係る内燃機関の制御装置によれば、AFS2の出力のばらつきを吸収するため燃料補正係数を基づいて吸気流量補正係数を算出し、吸気流量を補正する。そして、補正された吸気流量を用いて有効開口面積を算出し、算出した有効開口面積とスロットル開度からスロットル開度学習値を演算し、スロットル機差ばらつきに対するスロットル開度と有効開口面積の関係を学習しながら、スロットル開度学習値を考慮したスロットル開度と実スロットル開度の偏差の統計的ばらつきを判断基準として、大気圧推定値Paを更新する。これにより、電子制御スロットル4の機差ばらつきによらず大気圧の推定を精度良く推定することができる。