JP2009036107A - 内燃機関の空燃比制御装置 - Google Patents
内燃機関の空燃比制御装置 Download PDFInfo
- Publication number
- JP2009036107A JP2009036107A JP2007201411A JP2007201411A JP2009036107A JP 2009036107 A JP2009036107 A JP 2009036107A JP 2007201411 A JP2007201411 A JP 2007201411A JP 2007201411 A JP2007201411 A JP 2007201411A JP 2009036107 A JP2009036107 A JP 2009036107A
- Authority
- JP
- Japan
- Prior art keywords
- fuel ratio
- air
- learning
- value
- fuel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Output Control And Ontrol Of Special Type Engine (AREA)
Abstract
【課題】学習補正基本燃料噴射量に対してFF補正及びFB補正がなされる内燃機関の空燃比制御装置において、燃料中のアルコール濃度に大きな変化があった場合において目標空燃比が急変しても空燃比を迅速に目標空燃比に収束させること。
【解決手段】逐次更新されていく学習値Gで補正した基本燃料噴射量(学習補正基本燃料噴射量)Fbaseをフィードフォワード補正係数KFFとフィードバック補正量DFBとでFF補正及びFB補正して指令燃料噴射量Fi(=Fbase・KFF+DFB)が原則的に決定される。学習値Gが「基本燃料噴射量の誤差」に対応する値に収束したか否か(「学習完了状態」か「学習未完了状態」か)が判定される。燃料中のアルコール濃度に大きな変化があった場合、強制的に「学習未完了状態」とされる。そして、アルコール濃度が急変した場合(即ち、「学習未完了状態」にある場合)、KFFによるFbaseの補正(FF補正)が禁止される。
【選択図】図10
【解決手段】逐次更新されていく学習値Gで補正した基本燃料噴射量(学習補正基本燃料噴射量)Fbaseをフィードフォワード補正係数KFFとフィードバック補正量DFBとでFF補正及びFB補正して指令燃料噴射量Fi(=Fbase・KFF+DFB)が原則的に決定される。学習値Gが「基本燃料噴射量の誤差」に対応する値に収束したか否か(「学習完了状態」か「学習未完了状態」か)が判定される。燃料中のアルコール濃度に大きな変化があった場合、強制的に「学習未完了状態」とされる。そして、アルコール濃度が急変した場合(即ち、「学習未完了状態」にある場合)、KFFによるFbaseの補正(FF補正)が禁止される。
【選択図】図10
Description
本発明は、触媒よりも上流の排気通路に配設された空燃比センサの出力値に基づいて内燃機関の燃焼室に供給される混合気の空燃比を目標空燃比に制御する内燃機関の空燃比制御装置に関する。以下、「内燃機関の燃焼室に供給される混合気の空燃比」を単に「空燃比」と称呼し、「内燃機関」を単に「機関」と称呼することもある。
従来より、この種の空燃比制御装置として、例えば特許文献1に開示されたものが知られている。この装置では、目標空燃比が機関の運転状態に応じて基準空燃比(=理論空燃比)から変化し得る場合において、以下のように空燃比制御が実行される。
特開2007−162565号公報
吸気行程にて機関の燃焼室に吸入された空気の量(筒内吸入空気量)を基準空燃比(理論空燃比)で除した値(=基本燃料噴射量)が取得される。目標空燃比が運転状態に基づいて取得される。目標空燃比の基準空燃比(=理論空燃比)からの偏移に基づいてフィードフォワード補正量が取得される。目標空燃比の値にローパスフィルタ処理(一次遅れ処理)が施された値であって燃料の噴射指示から同噴射指示による噴射燃料の燃焼に基づく排ガスが空燃比センサに到達するまでの時間(むだ時間)だけ前の時点での値(=遅延目標空燃比)が取得される。この遅延目標空燃比は、空燃比変化に対する空燃比センサ出力の応答遅れ(むだ時間+一次遅れ)を模擬した遅延処理が目標空燃比に対して施された値である。空燃比センサ出力値から得られる検出空燃比と遅延目標空燃比との偏差を積算して更新されていく偏差積分値(積分項)に少なくとも基づいて(即ち、偏差の積分処理(I処理)に少なくとも基づいて、具体的には、偏差のPI処理等に基づいて)検出空燃比を遅延目標空燃比に一致させるためのフィードバック補正量が取得される。基本燃料噴射量をフィードフォワード補正量とフィードバック補正量とに基づいて補正することで指令燃料噴射量が算出される。そして、指令燃料噴射量の燃料の噴射指示がインジェクタに対してなされることで空燃比が目標空燃比に一致するように制御される。以下、上記フィードバック補正量による基本燃料噴射量の補正を「FB補正」と称呼し、上記フィードフォワード補正量による基本燃料噴射量の補正を「FF補正」と称呼する。
このように、目標空燃比が基準空燃比から変化した場合にFF補正が行われ、且つ、FB補正において空燃比センサ出力の応答遅れを模擬した遅延処理が施された目標空燃比(=遅延目標空燃比)が検出空燃比の目標値として使用される。これにより、目標空燃比が急変した場合であっても、遅延目標空燃比の変化の経緯を検出空燃比の変化の経緯に近づけることができ、検出空燃比と遅延目標空燃比との偏差を小さい値に維持できる。この結果、フィードバック補正量の一時的な急増が抑制され得、空燃比の比較的大きな荒れの発生が抑制され得る。この結果、目標空燃比が急変しても空燃比を迅速に目標空燃比に収束させることができる。
ところで、近年、アルコール成分を含む燃料(例えば、ガソリン+アルコール、或いはアルコールのみからなる)が特に車両用の内燃機関の燃料として使用されてきている。燃料の理論空燃比は、燃料中のアルコール濃度に大きく依存し、アルコール濃度が大きいほどより小さい値になる。従って、基本燃料噴射量を精度良く決定するためにはアルコール濃度を正確に取得する必要がある。
ところが、一般に、燃料中のアルコール濃度を検出するセンサ(アルコール濃度検出センサ)の検出誤差は比較的大きい。従って、係るアルコール濃度センサの検出誤差に起因して基本燃料噴射量の誤差(計算値の真値からのずれ)が発生し得る。なお、基本燃料噴射量の誤差は、アルコール濃度センサの検出誤差のみならず、例えば、インジェクタに噴射指示される指令燃料噴射量と実際に噴射された燃料の量との差(インジェクタのばらつき)等によっても発生し得る。
フィードバック補正量(の一部)に含まれる上記偏差積分値(積分項)は、上記基本燃料噴射量の誤差に起因して発生する「基本燃料噴射量をFF補正した値」に含まれる誤差を補償するように推移していく。即ち、基本燃料噴射量の誤差は上記偏差積分値により補償され得る。そこで、基本燃料噴射量の誤差を補償するために「学習値」を導入し、指令燃料噴射量を、「基本燃料噴射量を学習値で補正した値」をFF補正及びFB補正することで決定することが考えられる。この場合、所定のタイミング(学習値更新タイミング)が到来する毎に、偏差積分値の定常的な成分が学習値に移し変えられていき且つ偏差積分値から係る定常的な成分が除かれる処理(以下、「学習処理」と称呼する。)が行われる。以下、「基本燃料噴射量を学習値で補正した値」を「学習補正基本燃料噴射量」と称呼する。
なお、理論的には、係る学習処理の繰り返し実行により学習値が基本燃料噴射量の誤差に対応する値(以下、「学習収束値」と称呼する。)に収束すると、偏差積分値はゼロ近傍の微小範囲内(以下、「ゼロ」とも称呼する。)になる。以下、学習値が学習収束値に収束している状態(即ち、偏差積分値がゼロに維持されている状態)を「学習完了状態」と称呼する。「学習完了状態」では学習補正基本燃料噴射量は基本燃料噴射量の真値に一致している。一方、学習値が学習収束値に収束していない状態(即ち、偏差積分値がゼロに維持されていない状態)を「学習未完了状態」と称呼する。「学習未完了状態」では学習補正基本燃料噴射量は基本燃料噴射量の真値からずれている。
ところで、「学習完了状態」か「学習未完了状態」かにかかわらず、給油等により燃料中のアルコール濃度に大きな変化があった場合、上述のアルコール濃度センサの検出誤差の程度が変化すること等に起因して基本燃料噴射量の誤差の程度が大きく変化し得る。この結果、上記学習収束値も大きく変化するから、学習値が学習収束値に一致し得なくなって「学習未完了状態」となる(即ち、学習補正基本燃料噴射量が誤差を含む状態となる)。
このような「学習未完了状態」にある場合において目標空燃比が急変する場合を考える。この場合、目標空燃比の急変によりフィードフォワード補正量の大きさが急変することで、誤差を含んだ学習補正基本燃料噴射量をフィードフォワード補正量でFF補正した値の誤差の程度も目標空燃比の急変により大きく変化する。このように「学習補正基本燃料噴射量をFF補正した値」の誤差の程度が急変すると、空燃比の比較的大きな荒れが発生し得る(詳細は、後述する図7等を参照)。
以上のように、燃料中のアルコール濃度に大きな変化があった場合において(即ち、「学習未完了状態」にて)目標空燃比が急変すると、FF補正の実行に起因して空燃比の比較的大きな荒れが発生し、空燃比を迅速に目標空燃比に収束させることができないという問題があった。
従って、本発明の目的は、学習補正基本燃料噴射量に対してFF補正及びFB補正がなされる内燃機関の空燃比制御装置において、燃料中のアルコール濃度に大きな変化があった場合において目標空燃比が急変しても空燃比を迅速に目標空燃比に収束させることができるものを提供することにある。
本発明に係る空燃比制御装置は、触媒と、触媒よりも上流の排気通路に配設された空燃比センサと、アルコール濃度を取得するアルコール濃度センサと、燃料噴射手段(インジェクタ)とを備えた内燃機関に適用される。
本発明に係る空燃比制御装置では、取得されたアルコール濃度に基づいて燃料の基準空燃比(例えば、理論空燃比等)が決定され、この基準空燃比を用いて、基本燃料噴射量(=筒内吸入空気量を基準空燃比で除した値)が取得される。この基本燃料噴射量を上記学習値で補正した値(=学習補正基本燃料噴射量)に上記フィードフォワード補正量によるFF補正及び上記フィードバック補正量によるFB補正がなされて指令燃料噴射量が決定される。なお、理論空燃比とは、空気中の酸素と燃料とが過不足なく反応する場合に対応する燃料量に対する空気量の割合をいう。
ここで、学習値は、基本燃料噴射量に乗算される値であることが好ましい。フィードフォワード補正量は、学習補正基本燃料噴射量に加算(減算)される値であっても、学習補正基本燃料噴射量に乗算される値であってもよい。また、フィードバック補正量も、学習補正基本燃料噴射量に加算(減算)される値であっても、基本燃料噴射量に乗算される値であってもよい。このフィードバック補正量は、例えば、検出空燃比と遅延目標空燃比との偏差に相当する値を逐次積算して更新されていく偏差積分値そのものであってもよいし、前記「偏差に相当する値」をPID処理等して得られる値であってもよい。前記「偏差に相当する値」は、例えば、検出空燃比と遅延目標空燃比との偏差そのもの、検出空燃比に対応する空燃比センサ出力値と遅延目標空燃比に対応する空燃比センサ出力値との偏差、筒内吸入空気量を検出空燃比で除した値と筒内吸入空気量を遅延目標空燃比で除した値との偏差等である。
本発明に係る空燃比制御装置の特徴は、取得されたアルコール濃度に所定程度以上の変化があった場合(アルコール濃度が急変した場合)、指令燃料噴射量算出手段による指令燃料噴射量の算出にあたりフィードフォワード補正量による補正(FF補正)を禁止することにある。
これによれば、アルコール濃度が急変した場合(即ち、「学習未完了状態」になった場合)、FF補正が禁止される。この結果、「学習未完了状態」において目標空燃比が急変した場合であっても、上述した「FF補正の実行に起因する空燃比の比較的大きな荒れの発生」が防止され、空燃比を迅速に目標空燃比に収束させることができる。
上記本発明による空燃比制御装置は、学習値の状態が「学習完了状態」にあるか「学習未完了状態」にあるかを判定する判定手段を備え、前記学習手段は、「学習未完了状態」において学習処理を行うとともに「学習完了状態」において学習処理を行わないように構成され、前記禁止手段は、「学習未完了状態」においてのみFF補正を禁止するように構成され、且つ、アルコール濃度が急変した場合に前記判定手段の判定結果にかかわらず学習値の状態を「学習未完了状態」とするように構成されることが好適である。
これによれば、アルコール濃度が急変した場合、直ちに「学習未完了状態」とされてFF補正が禁止される。その後、学習処理が繰り返し実行されて「学習完了状態」に移行するとFF補正が再開される。
上述したように、「学習完了状態」では学習補正基本燃料噴射量が誤差を含んでいないから、目標空燃比が変化しても、「学習補正基本燃料噴射量をFF補正した値」の誤差の程度が変化する事態そのものが発生し得ない。即ち、FF補正が行われていても、上述した「FF補正の実行に起因する空燃比の比較的大きな荒れ」が発生し得ない。従って、アルコール濃度の急変後において「学習完了状態」となった時点以降では、FF補正を再開することができる。
上記構成は、係る知見に基づくものである。これによれば、上述した「FF補正の実行に起因する空燃比の比較的大きな荒れ」が発生し得る「学習未完了状態」においてのみFF補正を禁止することができる。即ち、FF補正の禁止期間を適切に設定することができる。
この場合、上記本発明による空燃比制御装置は、「学習未完了状態」から「学習完了状態」への移行に応答して現時点での学習値を現時点でのアルコール濃度に対応させて学習記憶値として記憶する記憶手段を備え、前記禁止手段は、アルコール濃度が急変した場合であっても、変化後のアルコール濃度に対応する学習記憶値が既に記憶されているときは、学習値を変化後のアルコール濃度に対応する学習記憶値と等しい値に設定するとともにFF補正の禁止を行わないように構成されることが好適である。
変化後のアルコール濃度に対応する学習記憶値が既に記憶されている場合、アルコール濃度変化後において上記学習収束値がこの学習記憶値と一致し得る。即ち、学習値をこの学習記憶値と等しい値に設定すれば、直ちに「学習完了状態」とすることができる。「学習完了状態」となれば上述のごとくFF補正を禁止する必要がない。上記構成は係る知見に基づくものである。これによれば、前記記憶手段を設けることでFF補正の禁止の頻度を少なくすることができる。
上記本発明による空燃比制御装置においては、前記フィードバック補正量取得手段は、前記禁止手段によりFF補正が禁止されている間、前記偏差積分値を、前記空燃比センサの出力値から得られる検出空燃比と現時点での前記目標空燃比そのものとの偏差に相当する値を積算して更新していくように構成されることが好ましい。
これによれば、FF補正が禁止されている間、偏差積分値が「検出空燃比と遅延目標空燃比との偏差に相当する値」に代えて「検出空燃比と現時点での目標空燃比そのものとの偏差に相当する値」を積算して更新されていく。これにより、FF補正禁止中において目標空燃比が変化した場合、空燃比をより一層迅速に目標空燃比に収束させることができる(詳細は、後述する図15等を参照)。
以上では、前記判定手段(「学習完了状態」か「学習未完了状態」かを判定する手段)の有無によらず、アルコール濃度が急変した場合にFF補正が禁止される構成について説明した。これに対し、前記判定手段が備えられている場合、「学習未完了状態」にてFF補正が禁止される構成が採用されてもよい。この場合、具体的には、アルコール濃度が急変した場合に前記判定手段の判定結果にかかわらず「学習未完了状態」とされる。
以下、本発明による内燃機関の空燃比制御装置の各実施形態について図面を参照しつつ説明する。
(第1実施形態)
図1は、第1実施形態による空燃比制御装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排気ガスを外部に放出するための排気系統50とを含んでいる。内燃機関10は、燃料として、ガソリンのみ(アルコール濃度=0%)、アルコール成分を含むガソリン、及びアルコールのみ(アルコール濃度=100%)を使用可能となっている。
図1は、第1実施形態による空燃比制御装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排気ガスを外部に放出するための排気系統50とを含んでいる。内燃機関10は、燃料として、ガソリンのみ(アルコール濃度=0%)、アルコール成分を含むガソリン、及びアルコールのみ(アルコール濃度=100%)を使用可能となっている。
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これによりクランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともにインテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
吸気系統40は、吸気ポート31に連通し吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、及びスロットル弁駆動手段を構成するDCモータからなるスロットル弁アクチュエータ43aを備えている。
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51(実際には、各排気ポート34に連通した各々のエキゾーストマニホールド51が集合した集合部)に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された上流側の三元触媒53(上流側触媒コンバータ、以下、「第1触媒53」と称呼する。)、及びこの第1触媒53の下流のエキゾーストパイプ52に配設(介装)された下流側の三元触媒54(以下、「第2触媒54」と称呼する。)を備えている。排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。
一方、このシステムは、熱線式エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路(本例では、上記各々のエキゾーストマニホールド51が集合した集合部)に配設された空燃比センサ66(以下、「上流側空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「下流側空燃比センサ67」と称呼する。)、アクセル開度センサ68、及びアルコール濃度センサ69を備えている。
熱線式エアフローメータ61は、吸気管41内を流れる吸入空気の単位時間あたりの質量流量を検出し、質量流量Gaを表す信号を出力するようになっている。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともにクランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、運転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
上流側空燃比センサ66は、限界電流式の酸素濃度センサであり、図2に実線にて示したように、空燃比A/Fに応じて出力される電流に応じた電圧である出力値Vabyfsを出力するようになっている。特に、空燃比が理論空燃比stoich(基準空燃比)であるときには出力値Vabyfsは上流側目標値Vstoichになる。
下流側空燃比センサ67は、起電力式(濃淡電池式)の酸素濃度センサであり、図3に示したように、理論空燃比stoich近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ67は、空燃比が理論空燃比よりもリーンのときは略0.1(V)、空燃比が理論空燃比よりもリッチのときは略0.9(V)、及び空燃比が理論空燃比のときは0.5(V)の電圧を出力するようになっている。アクセル開度センサ68は、運転者によって操作されるアクセルペダル81の操作量を検出し、アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
アルコール濃度センサ69は、図示しない燃料タンク内に貯留されている燃料に含まれるアルコール成分(エタノール等)の濃度(即ち、上記アルコール濃度、本例では、質量濃度)を検出し、アルコール濃度R(0≦R≦100(%))を表す信号を出力するようになっている。
本例では、図4に示すように設定される係数K(1≦K)が導入される。この係数Kは、アルコール濃度Rが0%のときに「1」に設定され、アルコール濃度Rの0%からの増大に応じて「1」から増大するように設定される。アルコール濃度R=0%のときの理論空燃比stoichをstoich0(例えば、14.6等)とすると、アルコール濃度R≧0%のときの理論空燃比stoichは「stoich0・(1/K)」と表すことができる。
電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及び定数等を予め記憶したROM72、RAM73、バックアップRAM74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜69と接続され、CPU71にセンサ61〜69からの信号を供給するとともに、CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
(空燃比制御の概要)
次に、上記のように構成された空燃比制御装置(以下、「本装置」と云う。)が行う空燃比制御の概要について説明する。
次に、上記のように構成された空燃比制御装置(以下、「本装置」と云う。)が行う空燃比制御の概要について説明する。
本装置は、下流側空燃比センサ67の出力値Voxsが目標空燃比abyfrに対応する下流側目標値Voxsref(原則的には、0.5(V)、図3を参照)となるように、上流側空燃比センサ66の出力値Vabyfs(即ち、第1触媒53上流の空燃比)、及び下流側空燃比センサ67の出力値Voxs(即ち、第1触媒53下流の空燃比)に応じて空燃比を制御する。
より具体的に述べると、本装置は、機能ブロック図である図5に示したように、A1〜A18の各機能ブロックを含んで構成されている。以下、図5を参照しながら各機能ブロックについて説明していく。なお、以下、「フィードバック」を「FB」と称呼し、「フィードフォワード」を「FF」と称呼することもある。
筒内吸入空気量算出手段A1は、エアフローメータ61が計測している吸入空気流量Gaと、クランクポジションセンサ64の出力に基づいて得られる運転速度NEと、ROM72が記憶しているテーブルMapMcとに基づき、吸気行程を迎える気筒の今回の吸入空気量である筒内吸入空気量Mc(k)を求める。ここで、添え字の(k)は、今回の吸気行程に対する値であることを示している(以下、他の物理量についても同様。)。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
<目標空燃比の設定>
上流側目標空燃比設定手段A2は、内燃機関10の運転状態である運転速度NE、及びアクセルペダル操作量Accp等に基づいて、且つ上記係数Kに基づいて、目標空燃比abyfr(k)(前記「目標空燃比」に対応)を決定する。この目標空燃比abyfr(k)は、原則的には理論空燃比(基準空燃比)stoich(=stoich0・(1/K))に設定される一方、運転速度NE、及びアクセルペダル操作量Accp等によっては理論空燃比stoich以外の空燃比にも設定される。目標空燃比abyfrは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。この上流側目標空燃比設定手段A2は、前記「目標空燃比取得手段」、及び前記「基準空燃比決定手段」に相当する。
上流側目標空燃比設定手段A2は、内燃機関10の運転状態である運転速度NE、及びアクセルペダル操作量Accp等に基づいて、且つ上記係数Kに基づいて、目標空燃比abyfr(k)(前記「目標空燃比」に対応)を決定する。この目標空燃比abyfr(k)は、原則的には理論空燃比(基準空燃比)stoich(=stoich0・(1/K))に設定される一方、運転速度NE、及びアクセルペダル操作量Accp等によっては理論空燃比stoich以外の空燃比にも設定される。目標空燃比abyfrは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。この上流側目標空燃比設定手段A2は、前記「目標空燃比取得手段」、及び前記「基準空燃比決定手段」に相当する。
<基本燃料噴射量の決定>
基本燃料噴射量決定手段A3は、下記(1)式に従って、基本燃料噴射量Fbase(=上記学習補正基本燃料噴射量)を求める。(1)式において、値Gは後述する学習処理手段A18により決定・更新される、基本燃料噴射量(=Mc(k)/stoich)を補正するための学習値である。ここで、基本燃料噴射量(=Mc(k)/stoich)(即ち、学習値Gで補正される前の値)を取得する手段が前記「基本燃料噴射量取得手段」に相当する。基本燃料噴射量決定手段A3は「学習補正基本燃料噴射量Fbase」を決定する手段に相当する。
基本燃料噴射量決定手段A3は、下記(1)式に従って、基本燃料噴射量Fbase(=上記学習補正基本燃料噴射量)を求める。(1)式において、値Gは後述する学習処理手段A18により決定・更新される、基本燃料噴射量(=Mc(k)/stoich)を補正するための学習値である。ここで、基本燃料噴射量(=Mc(k)/stoich)(即ち、学習値Gで補正される前の値)を取得する手段が前記「基本燃料噴射量取得手段」に相当する。基本燃料噴射量決定手段A3は「学習補正基本燃料噴射量Fbase」を決定する手段に相当する。
Fbase=(Mc(k)/stoich)・G …(1)
<FF補正係数の算出>
FF補正係数算出手段A4は、下記(2)式に従って、目標空燃比abyfr(k)の理論空燃比stoichからの偏移に応じた、学習補正基本燃料噴射量Fbaseを補正するためのFF補正係数KFF(前記「フィードフォワード補正量」に相当)を求める。
FF補正係数算出手段A4は、下記(2)式に従って、目標空燃比abyfr(k)の理論空燃比stoichからの偏移に応じた、学習補正基本燃料噴射量Fbaseを補正するためのFF補正係数KFF(前記「フィードフォワード補正量」に相当)を求める。
KFF=stoich/abyfr(k) ・・・(2)
このFF補正係数KFFは、目標空燃比abyfr(k)が理論空燃比stoichよりもリッチのときに「1」よりも大きい正の値(よりリッチであるほどより大きい正の値)となり、目標空燃比abyfr(k)が理論空燃比stoichよりもリーンのときに「1」よりも小さい正の値(よりリーンであるほどより小さい正の値)となる。このFF補正係数算出手段A4は、前記「フィードフォワード補正量取得手段」に相当する。
<指令燃料噴射量の算出>
FF補正後基本燃料噴射量算出手段A5は、学習補正基本燃料噴射量FbaseにFF補正係数KFFを乗じてFF補正後基本燃料噴射量「Fbase・KFF」を算出する。
FF補正後基本燃料噴射量算出手段A5は、学習補正基本燃料噴射量FbaseにFF補正係数KFFを乗じてFF補正後基本燃料噴射量「Fbase・KFF」を算出する。
指令燃料噴射量算出手段A6は、FF補正後基本燃料噴射量「Fbase・KFF」に、後述するFB補正量DFB(前記「フィードバック補正量」に相当)を加えることで、下記(3)式に基づいて指令燃料噴射量Fiを求める。この指令燃料噴射量算出手段A6は、前記「指令燃料噴射量算出手段」に相当する。
Fi=Fbase・KFF+DFB ・・・(3)
このようにして、本装置は、学習補正基本燃料噴射量FbaseをFF補正係数KFF及びFB補正量DFBに基づいてFF補正及びFB補正することで得られる指令燃料噴射量Fiの燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ39に対して行う。このように燃料の噴射指示を行う手段が前記「空燃比制御手段」に相当する。
<サブフィードバック補正量の取得>
下流側目標値設定手段A7は、上述した上流側目標空燃比設定手段A2と同様、内燃機関10の運転状態である運転速度NE、及びアクセルペダル操作量Accp等に基づいて下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、本例では、下流側目標値Voxsrefに対応する空燃比が上述した目標空燃比abyfr(k)と常時一致するように設定される。
下流側目標値設定手段A7は、上述した上流側目標空燃比設定手段A2と同様、内燃機関10の運転状態である運転速度NE、及びアクセルペダル操作量Accp等に基づいて下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、本例では、下流側目標値Voxsrefに対応する空燃比が上述した目標空燃比abyfr(k)と常時一致するように設定される。
出力偏差量算出手段A8は、下記(4)式に基づいて、現時点(具体的には、今回のFiの噴射指示開始時点)での下流側目標値Voxsrefから現時点での下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。
DVoxs=Voxsref−Voxs ・・・(4)
PIDコントローラA9は、出力偏差量DVoxsを比例・積分・微分処理(PID処理)することで、下記(5)式に基づいてサブフィードバック補正量Vafsfbを求める。下記(5)式において、Kpは予め設定された比例ゲイン(一定値)、Kiは予め設定された積分ゲイン(一定値)、Kdは予め設定された微分ゲイン(一定値)である。
Vafsfb=Kp・DVoxs+Ki・SDVoxs+Kd・DDVoxs ・・・(5)
また、SDVoxsは出力偏差量DVoxsの時間積分値であり、DDVoxsは出力偏差量DVoxsの時間微分値である。ここで、PIDコントローラA9は積分項Ki・SDVoxsを含んでいるので、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの定常偏差がゼロになる。
このようにして、本装置は、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの定常偏差がゼロになるように出力値Voxsに基づいて、サブフィードバック補正量Vafsfbを求める。このサブフィードバック補正量Vafsfbは、後述するように制御用空燃比abyfsの取得に用いられる。
<制御用空燃比の取得>
制御用空燃比相当出力値算出手段A10は、現時点での上流側空燃比センサ66の出力値Vabyfsに下流側フィードバック補正量Vafsfbを加えることで、制御用空燃比相当出力値(Vabyfs+Vafsfb)を求める。
制御用空燃比相当出力値算出手段A10は、現時点での上流側空燃比センサ66の出力値Vabyfsに下流側フィードバック補正量Vafsfbを加えることで、制御用空燃比相当出力値(Vabyfs+Vafsfb)を求める。
テーブル変換手段A11は、上記制御用空燃比相当出力値(Vabyfs+Vafsfb)と、先に説明した図2にグラフにより示した上流側空燃比センサの出力値Vabyfsと空燃比A/Fとの関係を規定したテーブルMapabyfsとに基づいて、アルコール濃度R=0%の場合における現時点での(今回の)制御用空燃比abyfs1(k)を求める。
空燃比変換手段A12は、上記制御用空燃比abyfs1(k)に値(1/K)を乗じることで、現時点でのアルコール濃度Rに対応する制御用空燃比abyfs(k)を求める。これにより、制御用空燃比abyfs(k)は、上流側空燃比センサ66の出力値Vabyfsから得られる空燃比(検出空燃比)に対してサブフィードバック補正量Vafsfbに相当する分だけ異なる空燃比となる。
<FB補正量の算出>
ローパスフィルタA13は、目標空燃比abyfr(k)を時定数τsで一次のローパスフィルタ処理を行ってローパスフィルタ通過後目標空燃比abyfrlow(k)を求める。時定数τsは、上流側空燃比センサ66の出力値Vabyfsのステップ入力に対する応答遅れの程度を表す。ローパスフィルタ通過後目標空燃比abyfrlowは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
ローパスフィルタA13は、目標空燃比abyfr(k)を時定数τsで一次のローパスフィルタ処理を行ってローパスフィルタ通過後目標空燃比abyfrlow(k)を求める。時定数τsは、上流側空燃比センサ66の出力値Vabyfsのステップ入力に対する応答遅れの程度を表す。ローパスフィルタ通過後目標空燃比abyfrlowは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
目標空燃比遅延手段A14は、上記ローパスフィルタ通過後目標空燃比abyfrlowのうち、現時点からNストローク前の値abyfrlow(k-N)(以下、「遅延目標空燃比」と称呼する。)をRAM73から読み出す。ここで、ストローク数Nは、「行程遅れに係る時間」と「輸送遅れに係る時間」と「応答遅れに係る時間」の和(以下、「むだ時間L」と称呼する。)に相当するストローク数である。
「行程遅れに係る時間」は、燃料の噴射指示から、この噴射指示により噴射された燃料の燃焼に基づく排ガスが排気弁35を介して燃焼室25から排気通路へ排出されるまでの時間である。「輸送遅れに係る時間」は、排ガスが排気弁35を介して排気通路へ排出されてから上流側空燃比センサ66(の検出部)に到達するまでの時間である。「応答遅れに係る時間」は、上流側空燃比センサ66(の検出部)に到達した排ガスの空燃比が上流側空燃比センサ66の出力値Vabyfsとして現れるまでの時間である。
これにより、遅延目標空燃比abyfrlow(k-N)は、空燃比変化に対する上流側空燃比センサ66の出力値Vabyfsの応答遅れ(むだ時間+一次遅れ)を模擬した遅延処理が目標空燃比abyfr(k)に対して施された値となる。このローパスフィルタA13、及び目標空燃比遅延手段A14は、前記「遅延処理手段」に相当する。
空燃比偏差算出手段A15は、下記(6)式に基づいて、今回の制御用空燃比abyfs(k)から、遅延目標空燃比abyfrlow(k-N)を減じることにより、空燃比偏差DAFを求める。ここで、上流側空燃比センサ66の出力値Vabyfsが現時点から上記むだ時間Lだけ前の噴射指示により噴射された燃料の燃焼に基づく排ガスの空燃比を表すことを考慮すると、この空燃比偏差DAFは、現時点からNストローク前の時点で筒内に供給された燃料の過不足分を表す量となる。
DAF=abyfs(k)−abyfrlow(k-N) ・・・(6)
PIコントローラA16は、上記空燃比偏差DAFを比例・積分処理(PI処理)することで、下記(7)式に基づいて、現時点からNストローク前の燃料供給量の過不足を補償するためのFB補正量DFBを求める。
DFB=(Gp・DAF+Gi・SDAF)・KFB ・・・(7)
上記(7)式において、Gpは比例ゲイン(一定値)、Giは積分ゲイン(一定値)である。SDAFは空燃比偏差DAFの時間積分値(以下、「偏差積分値」と称呼する。)である。係数KFBは、運転速度NE、及び筒内吸入空気量Mc等により可変とすることが好適であるが、本例では「1」としている。上述のごとく、このFB補正量DFBは、指令燃料噴射量Fiの計算に使用される。このPIコントローラA16は、前記「フィードバック補正量取得手段」に相当する。
<アルコール濃度の取得>
アルコール濃度取得手段A17であるアルコール濃度センサ69は、上述したように、図示しない燃料タンク内に貯留されている燃料のアルコール濃度R(0≦R≦100(%))を所定のアルコール濃度R取得タイミングの到来毎に取得・更新し、図4に示したテーブルに基づいて係数Kを取得・更新する。このように取得・更新された係数Kは、上述のごとく、上流側目標空燃比設定手段A2等により使用される。
アルコール濃度取得手段A17であるアルコール濃度センサ69は、上述したように、図示しない燃料タンク内に貯留されている燃料のアルコール濃度R(0≦R≦100(%))を所定のアルコール濃度R取得タイミングの到来毎に取得・更新し、図4に示したテーブルに基づいて係数Kを取得・更新する。このように取得・更新された係数Kは、上述のごとく、上流側目標空燃比設定手段A2等により使用される。
以上のように、本装置は、現時点からNストローク前の時点で筒内に供給された燃料の過不足分を補償するために、現時点での制御用空燃比abyfs(k)が、現時点からNストローク前の遅延目標空燃比abyfrlow(k-N)と一致するように、空燃比がフィードバック制御される。
加えて、制御用空燃比abyfsは、上述したように、上流側空燃比センサ66の出力値Vabyfsから得られる検出空燃比をサブフィードバック補正量Vafsfbに相当する分だけ補正した空燃比である。従って、制御用空燃比abyfsは出力偏差量DVoxsにも応じて変化する。この結果、下流側空燃比センサ67の出力値Voxsが下流側目標値Voxsrefに一致するようにも空燃比がフィードバック制御される。
加えて、PIコントローラA16は積分項Gi・SDAFを含んでいるので、定常状態では空燃比偏差DAFがゼロになることが保証される。換言すれば、遅延目標空燃比abyfrlow(k-N)と制御用空燃比abyfs(k)との定常偏差がゼロになる。このことは、定常状態において、制御用空燃比abyfs(k)が遅延目標空燃比abyfrlow(k-N)に一致すること、従って、第1触媒53の上下流の空燃比が目標空燃比abyfrに一致することが保証されることを意味する。
また、定常状態では、空燃比偏差DAFがゼロになることで比例項Gp・DAFがゼロとなるから、FB補正値DFBは積分項Gi・SDAFの値と等しくなる。この積分項Gi・SDAFの値(従って、偏差積分値SDAF)は、上述した「アルコール濃度センサ69の検出誤差」や上述した「インジェクタ39のばらつき」に起因する上記「基本燃料噴射量の誤差」に対応する値になる。即ち、偏差積分値SDAFにより「基本燃料噴射量の誤差」を補償することができる。
<学習処理>
学習処理手段A18は上述の学習補正基本燃料噴射量Fbaseの算出に使用される、基本燃料噴射量(=Mc(k)/stoich)を補正するための学習値Gを更新・決定する(上記(1)式を参照)。学習値Gの具体的な更新・決定方法については後に図13に示したルーチンを参照しながら説明する。学習処理手段A18は、所定の学習値更新タイミングが到来する毎に原則的に「学習処理」を実行する。「学習処理」では、偏差積分値SDAFの定常的な成分(後述するSDAFlow)が学習値Gに移し変えられていき且つ偏差積分値SDAFから係る定常的な成分(SDAFlow)が除かれる。この点について学習処理手段A18は前記「学習手段」に相当する。
学習処理手段A18は上述の学習補正基本燃料噴射量Fbaseの算出に使用される、基本燃料噴射量(=Mc(k)/stoich)を補正するための学習値Gを更新・決定する(上記(1)式を参照)。学習値Gの具体的な更新・決定方法については後に図13に示したルーチンを参照しながら説明する。学習処理手段A18は、所定の学習値更新タイミングが到来する毎に原則的に「学習処理」を実行する。「学習処理」では、偏差積分値SDAFの定常的な成分(後述するSDAFlow)が学習値Gに移し変えられていき且つ偏差積分値SDAFから係る定常的な成分(SDAFlow)が除かれる。この点について学習処理手段A18は前記「学習手段」に相当する。
この「学習処理」の繰り返し実行により学習値Gが「基本燃料噴射量の誤差」に対応する値(=上記「学習収束値」)に収束すると、偏差積分値SDAFはゼロ近傍の微小範囲内に維持される。学習処理手段A18は、学習値Gが学習収束値に収束している状態(「学習完了状態」)か収束していない状態(「学習未完了状態」)かを判定する。この点について学習処理手段A18は前記「判定手段」に相当する。「学習完了状態」では、学習補正基本燃料噴射量Fbase(=Mc(k)/stoich・G)は基本燃料噴射量(=筒内吸入空気量/理論空燃比)の真値に一致している一方、「学習未完了状態」では学習補正基本燃料噴射量Fbaseは基本燃料噴射量の真値からずれている。本例では、「学習処理」は「学習未完了状態」においてのみ実行され、「学習完了状態」になると中断される。このように、本例では、学習値Gが導入されて、偏差積分値SDAFに代えて学習値Gにより「基本燃料噴射量の誤差」が補償される。
<FF補正の禁止>
学習処理手段A18は、「学習未完了状態」にある場合、その後において「学習完了状態」となるまでの期間、FF補正係数KFF=1に固定することで、FF補正(即ち、FF補正係数KFFによる学習補正基本燃料噴射量Fbaseの補正)を禁止する。
学習処理手段A18は、「学習未完了状態」にある場合、その後において「学習完了状態」となるまでの期間、FF補正係数KFF=1に固定することで、FF補正(即ち、FF補正係数KFFによる学習補正基本燃料噴射量Fbaseの補正)を禁止する。
加えて、学習処理手段A18は、給油等によりアルコール濃度R(従って、係数K)に大きな変化があった場合(後述するΔK>ΔKref)、「学習完了状態」か「学習未完了状態」かにかかわらず強制的に「学習未完了状態」とする。これは、以下の理由に基づく。即ち、給油等によりアルコール濃度Rに大きな変化があった場合、上述の「アルコール濃度センサ69の検出誤差」の程度が変化すること等に起因して「基本燃料噴射量の誤差」の程度が大きく変化し得る。この結果、上記学習収束値も大きく変化する。従って、アルコール濃度Rの変化前の段階で「学習完了状態」にあるか「学習未完了状態」にあるかにかかわらず、アルコール濃度Rの変化後において学習値Gが学習収束値に一致し得なくなって「学習未完了状態」となる。本例では、かかる観点に基づき、前記「判定手段」による判定を待つまでもなく強制的に「学習未完了状態」とされる。
即ち、学習処理手段A18は、アルコール濃度Rに大きな変化があった場合、その後において「学習完了状態」となるまでの期間、FF補正を禁止するということもできる。この点について学習処理手段A18は前記「禁止手段」に相当する。以下、係るFF補正の禁止について図6〜図8を参照しながら説明する。なお、図6〜図8において、筒内吸入空気量Mcは一定に維持されているものとする。
図6は、「学習完了状態」においてFF補正が行われる場合の一例を示したタイムチャートである。図6では、目標空燃比abyfr(k)が、時刻t1以前にて値AF1(stoichよりもリッチ)に維持され、時刻t1にて値AF1から理論空燃比stoichにステップ的に変化した場合が示されている。この例は、例えば、冷間始動後において所謂「始動増量」により所定期間だけ空燃比が理論空燃比stoichよりもリッチに維持され、その後、空燃比が理論空燃比stoichに戻される場合等を想定している。
図6では、時刻t1以前において、制御用空燃比(検出空燃比)abyfs(k)が遅延目標空燃比abyfrlow(k-N)(=AF1)に収束している場合(定常状態)が示されている。「学習完了状態」であるから、時刻t1以前において、フィードバック補正量DFB(具体的には、偏差積分値SDAF)がゼロに維持されているとともに、学習補正基本燃料噴射量Fbase(=Mc(k)/stoich・G)は基本燃料噴射量(=筒内吸入空気量/理論空燃比)の真値に一致している。従って、時刻t1以前において、FF補正後基本燃料噴射量「Fbase・KFF」(実線を参照)もFF補正後基本燃料噴射量(=筒内吸入空気量/目標空燃比)の真値(破線を参照)に一致している。即ち、時刻t1以前において、指令燃料噴射量Fi(=Fbase・KFF+DFB)は空燃比=AF1に対応する真値と一致している。
時刻t1にて、目標空燃比abyfr(k)が値AF1から理論空燃比stoichにステップ的に変化すると、FF補正により(具体的には、KFFが「1」より大きい値から「1」に変化することにより)、FF補正後基本燃料噴射量「Fbase・KFF」がAF1に対応する値F1からstoichに対応する値F2にステップ的に減少する。このため、時刻t1にて指令燃料噴射量Fiがステップ的に減少する。
ここで、「学習完了状態」であるから、目標空燃比abyfrが変化しても学習補正基本燃料噴射量Fbaseは基本燃料噴射量(=筒内吸入空気量/理論空燃比)の真値に一致し続ける。従って、FF補正後基本燃料噴射量「Fbase・KFF」(実線を参照)もFF補正後基本燃料噴射量(=筒内吸入空気量/目標空燃比)の真値(破線を参照)に一致し続ける。この結果、時刻t1以降、指令燃料噴射量Fiは空燃比=stoichに対応する真値と一致している。この結果、制御用空燃比abyfs(k)は、時刻t1から上記むだ時間Lが経過した時刻t2までの間、値AF1に維持されるとともに、時刻t2以降、値AF1から理論空燃比stoichに向けて上述した上流側空燃比センサ66の応答遅れ(時定数τs)に起因して一次遅れ特性をもって緩やかに増大していき理論空燃比stoichに収束する。
一方、遅延目標空燃比abyfrlow(k-N)は、上記むだ時間L及び上流側空燃比センサ66の応答遅れ(時定数τs)を模擬した遅延処理が目標空燃比abyfr(k)に対して施された値である。従って、遅延目標空燃比abyfrlow(k-N)も、時刻t1から上記むだ時間Lが経過した時刻t2までの間、値AF1に維持されるとともに、時刻t2以降、値AF1から理論空燃比stoichに向けて時定数τsの一次遅れ特性をもって緩やかに増大していき理論空燃比stoichに収束する。即ち、遅延目標空燃比abyfrlow(k-N)は、時刻t1以降も、制御用空燃比abyfs(k)と同じ値を採り続ける。換言すれば、時刻t1以降も、フィードバック補正量DFB(偏差積分値SDAF)がゼロに維持される。
このように、「学習完了状態」では、目標空燃比abyfrが急変しても、FF補正の実行に起因して空燃比に大きな荒れが発生することなく、空燃比を迅速に目標空燃比に収束させることができる。
これに対し、図7は、アルコール濃度Rに大きな変化があったこと等により「学習未完了状態」にある場合においてFF補正が行われる場合の一例を示した図6に対応するタイムチャートである。図7における時刻t1、t2は、図6における時刻t1、t2にそれぞれ対応している。
図7でも、時刻t1以前において、制御用空燃比abyfs(k)が遅延目標空燃比abyfrlow(k-N)(=AF1)に収束している場合(定常状態)が示されている。「学習未完了状態」であるから、学習補正基本燃料噴射量Fbase(=Mc(k)/stoich・G)は基本燃料噴射量(=筒内吸入空気量/理論空燃比)の真値から(h2だけ大きい方向に)ずれている。この結果、FF補正後基本燃料噴射量「Fbase・KFF」(=F1)(実線を参照)がFF補正後基本燃料噴射量(=筒内吸入空気量/目標空燃比)の真値(破線を参照)からh1だけ大きい方向にずれているものとする。このずれh1は、フィードバック補正量DFB(偏差積分値SDAF)が値−h1に維持されることで偏差積分値SDAFにより補償されている。これにより、時刻t1以前において、指令燃料噴射量Fi(=Fbase・KFF+DFB)が空燃比=AF1に対応する真値と一致していて、制御用空燃比(検出空燃比)abyfs(k)が遅延目標空燃比abyfrlow(k-N)(=AF1)に収束している。
時刻t1にて、目標空燃比abyfr(k)が値AF1から理論空燃比stoichにステップ的に変化すると、図6と同様、フィードフォワード補正係数KFFが「1」より大きい値から「1」にステップ的に変化して、FF補正後基本燃料噴射量「Fbase・KFF」が値F1から値F2にステップ的に減少する。このように、FF補正によりフィードフォワード補正係数KFFの大きさがより小さい値にステップ的に変化するため、時刻t1以降、FF補正後基本燃料噴射量「Fbase・KFF」(=F2)(実線を参照)の真値(破線を参照)からのずれは、値h1から値h2(<h1)に減少する。
一方、時刻t1〜t2の間、図6と同様、制御用空燃比abyfs(k)が遅延目標空燃比abyfrlow(k-N)(=AF1)と一致し続けるから、時刻t1〜t2の間、フィードバック補正量DFB(偏差積分値SDAF)は値−h1になお維持され続ける。この結果、時刻t1〜t2の間、指令燃料噴射量Fiは空燃比=stoichに対応する真値よりも(h1−h2)だけ小さい値に調整されて、時刻t1〜t2の間、空燃比が「理論空燃比stoichよりもリーンの空燃比」に制御される。これにより、時刻t2以降、制御用空燃比abyfs(k)は、値AF1から上記「理論空燃比stoichよりもリーンの空燃比」に向けて増大していき、理論空燃比stoichを超える(オーバーシュートする)。
一方、時刻t2以降、遅延目標空燃比abyfrlow(k-N)は、図6と同様、値AF1から理論空燃比stoichに向けて時定数τsの一次遅れ特性をもって増大していき理論空燃比stoichに収束する。この結果、時刻t2以降、空燃比偏差DAFが正の値となることで、フィードバック補正量DFB(偏差積分値SDAF)が値−h1から増大していく。このため、時刻t2以降、指令燃料噴射量Fiが増大していき、その後、理論空燃比stoichを超えた(オーバーシュートした)制御用空燃比abyfs(k)は減少を開始する。
以降、フィードバック補正量DFB(偏差積分値SDAF)が値−h2の周りを複数回振動しながら値−h2に収束していき(即ち、指令燃料噴射量Fiが空燃比=stoichに対応する真値に収束していき)、この結果、制御用空燃比abyfs(k)は、理論空燃比stoichの周りを複数回振動しながら理論空燃比stoichに収束していく。
このように、「学習完了状態」とは異なり、「学習完了未状態」では、目標空燃比abyfrが急変した場合にFF補正を行うと、FF補正後基本燃料噴射量「Fbase・KFF」の真値からのずれ量が急変すること(h1→h2)に起因して、空燃比に大きな荒れ(オーバーシュートを含む)が発生する。この結果、空燃比が迅速に目標空燃比に収束し得ない。
以上、図6、図7を参照しながら説明したように、上述した「FF補正の実行に起因する空燃比の比較的大きな荒れ」は、「学習完了状態」では発生しないが「学習未完了状態」では発生し得る。そこで、本例では、「学習未完了状態」にある場合、その後において「学習完了状態」となるまでの期間、FF補正係数KFF=1に固定されてFF補正が禁止される。
図8は、アルコール濃度Rに大きな変化があったこと等により「学習未完了状態」にある場合において本例のようにFF補正が禁止される場合(KFF=1で固定)の一例を示した図6、図7に対応するタイムチャートである。図8における時刻t1、t2は、図6、図7における時刻t1、t2にそれぞれ対応している。
図8でも、時刻t1以前において、制御用空燃比abyfs(k)が遅延目標空燃比abyfrlow(k-N)(=AF1)に収束している場合(定常状態)が示されている。「学習未完了状態」であるから、学習補正基本燃料噴射量Fbase(=Mc(k)/stoich・G)は基本燃料噴射量(=筒内吸入空気量/理論空燃比)の真値から(h2だけ大きい方向に)ずれている。FF補正が禁止されているから(KFF=1で固定)、時刻t1以前において、目標空燃比abyfr(k)=AF1であるにもかかわらずFF補正後基本燃料噴射量「Fbase・KFF」が値F2(stoichに対応する値)に維持されている。この結果、FF補正後基本燃料噴射量「Fbase・KFF」(=F2)(実線を参照)も基本燃料噴射量(=筒内吸入空気量/理論空燃比)の真値(破線を参照)からh2だけ大きい方向にずれているものとする。この燃料の増加分h2とFF補正禁止による燃料の減少分(F1−F2)は、フィードバック補正量DFB(偏差積分値SDAF)が値h3(=(F1−F2)−h2)に維持されることで偏差積分値SDAFにより補償されている。これにより、時刻t1以前において、指令燃料噴射量Fi(=Fbase・KFF+DFB)が空燃比=AF1に対応する真値と一致していて、制御用空燃比(検出空燃比)abyfs(k)が遅延目標空燃比abyfrlow(k-N)(=AF1)に収束している。
時刻t1にて、目標空燃比abyfr(k)が値AF1から理論空燃比stoichにステップ的に変化する。しかしながら、FF補正が禁止されていることから、時刻t1以降、FF補正後基本燃料噴射量「Fbase・KFF」がなお値F2に維持される。また、時刻t1〜t2の間、図6と同様、制御用空燃比abyfs(k)が遅延目標空燃比abyfrlow(k-N)(=AF1)と一致し続けるから、時刻t1〜t2の間、フィードバック補正量DFB(偏差積分値SDAF)は値h3になお維持され続ける。この結果、時刻t1〜t2の間もなお、指令燃料噴射量Fiが空燃比=AF1に対応する真値と一致し続け、時刻t1〜t2の間も空燃比が値AF1に制御される。この結果、制御用空燃比abyfs(k)は、時刻t2から上記むだ時間Lが経過した時刻t3までの間もなお、値AF1に維持され続ける。
一方、遅延目標空燃比abyfrlow(k-N)は、図6と同様、時刻t2以降、値AF1から理論空燃比stoichに向けて時定数τsの一次遅れ特性をもって増大していき理論空燃比stoichに収束する。この結果、時刻t2以降、空燃比偏差DAFが負の値となることで、フィードバック補正量DFB(偏差積分値SDAF)が値h3から減少していく。このため、時刻t2以降、指令燃料噴射量Fiが減少していく。この結果、時刻t3以降、制御用空燃比abyfs(k)は値AF1から増大を開始する。
以降、減少していくフィードバック補正量DFB(偏差積分値SDAF)は値−h2に収束していき(即ち、指令燃料噴射量Fiが空燃比=stoichに対応する真値に収束していき)、この結果、増大していく制御用空燃比abyfs(k)はオーバーシュートすることなく理論空燃比stoichに収束していく。
このように、「学習完了未状態」においてFF補正が禁止されると、目標空燃比abyfrが急変した場合であっても、空燃比に大きな荒れ(オーバーシュート)が発生しない。この結果、FF補正が禁止されない場合(図7に示したようにオーバーシュートが発生する場合)に比して、空燃比がより迅速に目標空燃比に収束し得る。
<学習値の記憶>
学習処理手段A18は、「学習未完了状態」から「学習完了状態」へ移行した場合、現時点での学習値Gを現時点でのアルコール濃度R(従って、係数K)に対応させて学習記憶値GmemとしてバックアップRAM74に記憶する。より具体的には、図9に示すように、係数Kの値の範囲が複数に分類されていて(図9では分類1〜分類4)、現時点での係数Kに対応する分類の学習記憶値Gmem(m)(m:1,2,3,4)が現時点での学習値Gと等しい値に設定されてバックアップRAM74に記憶される。図9は、分類1〜分類4の全ての分類について学習記憶値Gmemが設定されている状態を示している。この点について学習処理手段A18は前記「記憶手段」に相当する。
学習処理手段A18は、「学習未完了状態」から「学習完了状態」へ移行した場合、現時点での学習値Gを現時点でのアルコール濃度R(従って、係数K)に対応させて学習記憶値GmemとしてバックアップRAM74に記憶する。より具体的には、図9に示すように、係数Kの値の範囲が複数に分類されていて(図9では分類1〜分類4)、現時点での係数Kに対応する分類の学習記憶値Gmem(m)(m:1,2,3,4)が現時点での学習値Gと等しい値に設定されてバックアップRAM74に記憶される。図9は、分類1〜分類4の全ての分類について学習記憶値Gmemが設定されている状態を示している。この点について学習処理手段A18は前記「記憶手段」に相当する。
いま、上述した「基本燃料噴射量の誤差」が「アルコール濃度センサ69の検出誤差」のみに起因して発生するものと仮定する(換言すれば、上述した「インジェクタ39のばらつき」等が発生していないものと仮定する)。この場合において、アルコール濃度R(従って、係数K)に大きな変化があった場合を考える。この場合において、アルコール濃度変化後の係数Kに対応する学習記憶値Gmem(m)が既に記憶されている場合、アルコール濃度変化後における学習Gの上記「学習収束値」はこの学習記憶値Gmem(m)と一致する。このことは、アルコール濃度変化後において学習値Gをこの学習記憶値Gmem(m)と等しい値に設定することで直ちに「学習完了状態」となることを意味している。「学習完了状態」となれば上述のごとくFF補正を禁止する必要がない(図6を参照)。
そこで、学習処理手段A18は、アルコール濃度R(従って、係数K)に大きな変化があった場合であっても、アルコール濃度変化後の係数Kに対応する学習記憶値Gmem(m)が既にバックアップRAM74に記憶されているときは、学習値Gをアルコール濃度変化後の係数Kに対応する学習記憶値Gmem(m)と等しい値に設定し、且つ、上述した強制的に「学習未完了状態」とする処理を行わない(即ち、FF補正の禁止を行わない)。これにより、FF補正の禁止の頻度を少なくすることができる。以上が、本装置が行う空燃比制御の概要である。
(実際の作動)
次に、本装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。
次に、本装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。
<空燃比制御>
CPU71は、図10にフローチャートにより示した(学習補正)基本燃料噴射量Fbase、FF補正係数KFF、指令燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、CPU71はステップ1000から処理を開始してステップ1005に進み、アルコール濃度R取得タイミングが到来したか否かを判定し、「No」と判定する場合、ステップ1040に直ちに進む。アルコール濃度R取得タイミングは、例えば、本例では、機関始動から所定時間が経過した時点で到来する。
CPU71は、図10にフローチャートにより示した(学習補正)基本燃料噴射量Fbase、FF補正係数KFF、指令燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。従って、任意の気筒のクランク角度が上記所定クランク角度になると、CPU71はステップ1000から処理を開始してステップ1005に進み、アルコール濃度R取得タイミングが到来したか否かを判定し、「No」と判定する場合、ステップ1040に直ちに進む。アルコール濃度R取得タイミングは、例えば、本例では、機関始動から所定時間が経過した時点で到来する。
「Yes」と判定する場合、CPU71はステップ1010に進んで、アルコール濃度センサ69から得られるアルコール濃度Rを取得・更新するとともに、図4に示したテーブルに基づいて係数Kを取得・更新する。この係数KはバックアップRAM74に記憶される。
続いて、CPU71はステップ1015に進み、係数変化量ΔKを、今回更新された係数Kと前回の係数K(=Kb)との差の絶対値|K−Kb|に設定し、続くステップ1020にて係数変化量ΔKが所定値ΔKrefよりも大きいか否かを判定する。これにより、アルコール濃度R(従って、係数K)に大きな変化があったか否かが判定される。
「Yes」と判定する場合、CPU71はステップ1025に進んでフラグCHGを「1」に設定し、「No」と判定する場合、CPU71はステップ1030に進んでフラグCHGを「0」に設定する。CHG=1はアルコール濃度Rに大きな変化があったことを示し、CHG=0はアルコール濃度Rに大きな変化がなかったことを示す。
次に、CPU71はステップ1035に進んで、値stoich0(アルコール濃度R=0%での理論空燃比)に値(1/K)を乗じることで、今回更新された係数K(即ち、現在のアルコール濃度R)に対応する理論空燃比stoichを決定する。
CPU71はステップ1040に進むと、テーブルMapMc(NE,Ga)に基づいて今回の吸気行程を迎える気筒(以下、「燃料噴射気筒」と云うこともある。)に吸入された今回の筒内吸入空気量Mc(k)を決定する。
次に、CPU71はステップ1045に進んで、上記(1)式に従って学習補正基本燃料噴射量Fbaseを決定する。ここで、学習値Gとしては後述する図13のルーチンで更新されている最新値が使用される。
次いで、CPU71はステップ1050に進み、テーブルMapabyfr(NE,Accp,THW)に基づいてアルコール濃度R=0%のときの目標空燃比を求め、これに値(1/K)を乗じて今回の目標空燃比abyfr(k)を決定する。
続いて、CPU71はステップ1055に進んで、フラグXCOMPが「1」であるか否かを判定する。ここで、フラグXCOMPは後述する図13のルーチンで決定され、XCOMP=1は「学習完了状態」を表し、XCOMP=0は「学習未完了状態」を表す。
「No」と判定する場合、CPU71はステップ1060に進み、FF補正係数KFFを「1」に固定する。これにより、「学習未完了状態」にてFF補正が禁止される。一方、「Yes」と判定する場合、CPU71はステップ1065に進んで、上記(2)式に従って、FF補正係数KFFを目標空燃比abyfr(k)に応じた値に決定する。これにより、「学習完了状態」にてFF補正が実行される。
CPU71はステップ1070に進むと、上記(3)式に従って、指令燃料噴射量Fiを決定する。ここで、FB補正量DFBとしては後述する図11のルーチンで更新されている最新値が使用される。
そして、CPU71はステップ1075に進んで、上記指令燃料噴射量Fiの燃料の噴射指示を行い、続くステップ1080にてabyfr(k)を時定数τsをもってローパスフィルタ処理してローパスフィルタ通過後目標空燃比abyfrlow(k)を取得した後、ステップ1095に進んで本ルーチンを一旦終了する。以上により、学習補正基本燃料噴射量FbaseがFF補正、及びFB補正されて決定された指令燃料噴射量Fiの燃料の噴射指示が燃料噴射気筒に対してなされる。ローパスフィルタ通過後目標空燃比abyfrlow(k)は、後述する図11のルーチンでFB補正量DFBを算出する際に使用される。
<FB補正量の計算>
次に、FB補正量DFBを算出する際の作動について説明すると、CPU71は図11にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期が到来する毎に、繰り返し実行するようになっている。
次に、FB補正量DFBを算出する際の作動について説明すると、CPU71は図11にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ1100から処理を開始し、ステップ1105に進んで、フィードバック条件が成立しているか否かを判定する。フィードバック条件は、例えば、機関の冷却水温THWが第1所定温度以上であって、上流側空燃比センサ66が正常(活性状態となっていることを含む)であって、筒内吸入空気量Mc(k)(或いは、負荷)が所定値以下であるときに成立する。
いま、フィードバック条件が成立しているものとして説明を続けると、CPU71はステップ1105にて「Yes」と判定してステップ1110に進み、テーブルMapN(Mc(k),NE)に基づいて上記ストローク数Nを決定する。これは、ストローク数Nが、筒内吸入空気量Mc(k)が大きいほど、或いは運転速度NEが大きいほど小さくなることに基づく。
次に、CPU71はステップ1115に進んで、現時点の上流側空燃比センサ66の出力値Vabyfsと後述するルーチンにて求められているサブフィードバック補正量Vafsfbの最新値との和である制御用空燃比相当出力値(Vabyfs+Vafsfb)をテーブルMapabyfs(Vabyfs+Vafsfb)に基づいて変換することにより、アルコール濃度R=0%のときの制御用空燃比abyfs1(k)を求め(図2を参照)、これに値(1/K)を乗じて現時点における制御用空燃比abyfs(k)を求める。
次いで、CPU71はステップ1120に進み、上記(6)式に従って、空燃比偏差DAFを求め、続くステップ1125にて、上記(7)式に従って、FB補正量DFBを求める。続いて、CPU71はステップ1130に進み、その時点における空燃比偏差DAFの偏差積分値SDAFに上記ステップ1120にて求めた空燃比偏差DAFを加えて偏差積分値SDAFを更新した後、ステップ1195に進んで本ルーチンを一旦終了する。
以上により、FB補正量DFBが求められ、このFB補正量DFBが前述した図10のステップ1070より指令燃料噴射量Fiに反映されることで空燃比フィードバック制御が実行される。
一方、ステップ1105の判定時において、フィードバック条件が成立していない場合、CPU71はステップ1105にて「No」と判定してステップ1135に進んでFB補正量DFBの値を「0」に設定し、その後ステップ1195に進んで本ルーチンを一旦終了する。このように、フィードバック条件が成立していない場合、FB補正量DFBを「0」として学習補正基本燃料噴射量FbaseのFB補正を行わない。
<サブフィードバック補正量の計算>
次に、サブフィードバック補正量Vafsfbを算出する際の作動について説明すると、CPU71は図12にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来する毎に、繰り返し実行するようになっている。
次に、サブフィードバック補正量Vafsfbを算出する際の作動について説明すると、CPU71は図12にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ1200から処理を開始し、ステップ1205に進んで、サブフィードバック条件が成立しているか否かを判定する。サブフィードバック条件は、例えば、前述したステップ1105のフィードバック条件に加え、機関の冷却水温THWが前記第1所定温度よりも高い第2所定温度以上のときに成立する。
いま、サブフィードバック条件が成立しているものとして説明を続けると、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、上記(4)式に従って、出力偏差量DVoxsを求める。次に、CPU71はステップ1215に進んで、下記(8)式に基づき出力偏差量DVoxsの微分値DDVoxsを求める。
DDVoxs=(DVoxs−DVoxs1)/Δt ・・・(8)
上記(8)式において、DVoxs1は前回の本ルーチン実行時において後述するステップ1230にて更新された出力偏差量DVoxsの前回値である。また、Δtは本ルーチンが前回実行された時点から今回実行された時点までの時間である。次いで、CPU71はステップ1220に進み、上記(5)式に基づいてサブフィードバック補正量Vafsfbを求める。
続いて、CPU71はステップ1225に進んで、その時点における出力偏差量の積分値SDVoxsに上記ステップ1210にて求めた出力偏差量DVoxsを加えて、出力偏差量の積分値SDVoxsを更新し、続くステップ1230にて、出力偏差量DVoxsの前回値DVoxs1を上記ステップ1210にて求めた出力偏差量DVoxsと等しい値に設定した後、ステップ1295に進んで本ルーチンを一旦終了する。
以上により、サブフィードバック補正量Vafsfbが求められる。このサブフィードバック補正量Vafsfbは、前述した図11のルーチンの次回の実行時においてステップ1115にて制御用空燃比abyfsを求めるために用いられる。
一方、ステップ1205の判定時において、サブフィードバック条件が不成立であると、CPU71は同ステップ1205にて「No」と判定してステップ1235に進んでサブフィードバック補正量Vafsfbの値を「0」に設定し、ステップ1295に進んで本ルーチンを一旦終了する。このように、サブフィードバック条件が不成立であるときは、サブフィードバック補正量Vafsfbを「0」としてサブフィードバック制御に基づく空燃比フィードバック制御を行わない。
次に、学習値Gの更新、学習完了判定を行う際の作動について説明すると、CPU71は図13にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(燃料噴射開始時点)が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ1302に進み、偏差積分値SDAFを時定数τsをもってローパスフィルタ処理してローパスフィルタ通過後偏差積分値SDAFlow(前記「偏差積分値の定常的な成分」に対応)を取得する。次いで、CPU71はステップ1304に進み、フラグXCOMPの値が「0」であるか否か(即ち、「学習未完了状態」か「学習完了状態」か)を判定する。
先ず、「学習未完了状態」である場合について説明する。この場合、フラグXCOMPの値が「0」となっている。従って、CPU71はステップ1304にて「Yes」と判定してステップ1306に進み、学習値Gの更新タイミングが到来しているか否かを判定し、「No」と判定する場合、ステップ1395に直ちに進んで本ルーチンを一旦終了する。学習値Gの更新タイミングは、例えば、本例では、燃料噴射回数が所定の回数に達する毎に到来する。
このような処理は、学習値Gの更新タイミングが到来するまで繰り返し実行される。これにより、図11のステップ1130にて更新されていく偏差積分値SDAFの更新に同期してローパスフィルタ通過後偏差積分値SDAFlowが更新されていく。
そして、学習値Gの更新タイミングが到来した場合、CPU71はステップ1306に進んだとき「Yes」と判定してステップ1308に進み、目標空燃比abyfr(k)が理論空燃比stoichと等しいか否かを判定し、「No」と判定する場合、ステップ1395に直ちに進んで本ルーチンを一旦終了する。即ち、目標空燃比abyfr(k)が理論空燃比stoichと異なる場合、学習値Gの更新(即ち、上述した「学習処理」)が実行されない。
以下、目標空燃比abyfr(k)が理論空燃比stoichと等しい場合について説明する。この場合、CPU71はステップ1308にて「Yes」と判定してステップ1310に進み、図11のステップ1130にて更新されている偏差積分値SDAFの絶対値|SDAF|が収束判定値Zより大きいか否かを判定する。
いま、偏差積分値の絶対値|SDAF|が収束判定値Zより大きいものとすると(即ち、学習値Gの収束判定条件が成立していないものとすると)、CPU71はステップ1312に進んで、ステップ1312内に記載の式に従って学習値Gを更新し、更新した学習値GをバックアップRAM74に記憶する。ローパスフィルタ通過後偏差積分値SDAFlowとしては、ステップ1302にて更新されている最新値が使用される。
次いで、CPU71はステップ1314に進んで、その時点での偏差積分値SDAFからローパスフィルタ通過後偏差積分値SDAFlowを減じることで偏差積分値SDAFを再設定し、続くステップ1316にてローパスフィルタ通過後偏差積分値SDAFlowを「0」に設定した後、ステップ1395に進んで本ルーチンを一旦終了する。
このように、「学習未完了状態(XCOMP=0)」であって且つ目標空燃比abyfr(k)が理論空燃比stoichと等しい場合、学習値Gの更新タイミングが到来する毎に学習値Gの収束判定が行われる。この収束判定において収束判定条件が成立していない場合(ステップ1310で「Yes」と判定される場合)、上述した「学習処理」が実行される。
これにより、「学習処理」が実行される毎に、偏差積分値SDAFが「0」に近づいていくとともに、学習値Gが上述した「学習収束値」(即ち、上記「基本燃料噴射量の誤差」の大きさを正確に表す値)に近づいていく。このような処理は、学習値Gの収束判定条件が成立するまで繰り返し実行される。
そして、学習値Gの収束判定条件が成立したものとすると(ステップ1310にて「No」)、CPU71はステップ1318に進んでフラグXCOMPの値を「0」から「1」に変更する。これにより、「学習未完了状態」から「学習完了状態」へ移行する。
次いで、CPU71はステップ1320に進み、フラグCHG(図10のステップ1025、1030を参照)を「0」に設定し、続くステップ1322にて現在の係数Kに対応する分類mについて学習記憶値Gmem(m)をステップ1312にて更新されている最新の学習値Gと等しい値に設定し、続くステップ1324にて現在の係数Kに対応する分類mについてフラグDT(m)を「1」に設定し、ステップ1395に進む。ここで、DT(m)=1は分類mについて学習記憶値Gmem(m)がバックアップRAM74に記憶されている状態にあることを示し、DT(m)=0は分類mについて学習記憶値Gmem(m)がバックアップRAM74に記憶されていない状態にあることを示す。
以降、CPU71はステップ1304に進んだとき「No」と判定してステップ1326に進むようになり、図11のステップ1130にて更新されている偏差積分値SDAFの絶対値|SDAF|が再び上記収束判定値Zより大きくなったか否かをモニタするようになる。
そして、ステップ1326にて「No」と判定する場合、CPU71はステップ1332に進んでフラグCHG=1であるか否かを判定し、ここでも「No」と判定する場合、ステップ1395に進む。このように、「学習完了状態」では「学習処理」が行われない。なお、ステップ1332にて「Yes」と判定される場合については後述する。
一方、ステップ1326にて「Yes」と判定する場合、CPU71はステップ1328に進んで、フラグXCOMPを「1」から「0」に変更し、続くステップ1330にて現在の係数Kに対応する分類mについてフラグDT(m)を「0」にクリアした後、ステップ1312以降の処理(即ち、「学習処理」)を行う。
このように、「学習完了状態」(XCOMP=1)において学習値Gの上記収束判定条件が再び成立しなくなると、再び「学習未完了状態」(XCOMP=0)となるとともに、「学習処理」が再び繰り返し実行されていく。
次に、ステップ1332にて「Yes」と判定される場合(即ち、「学習完了状態」においてフラグCHG=1である場合)について説明する。これは、「学習完了状態」においてアルコール濃度Rに大きな変化があった場合に対応する。
この場合、CPU71はステップ1334に進んで現在の係数K(即ち、アルコール濃度R変化後の係数K)に対応する分類mについてフラグDT(m)=1であるか否かを判定する。ここで、「No」と判定する場合、CPU71はステップ1336に進み、フラグXCOMPの値を「1」から「0」に変更する。このように、「学習完了状態」においてアルコール濃度Rに大きな変化があった場合、原則的には、後のステップ1326の「Yes」判定を待つまでもなく「学習完了状態」から「学習未完了状態」へ強制的に移行される。換言すれば、「学習完了状態」においてアルコール濃度Rに大きな変化があった場合、図10のステップ1055にて「No」と判定されるようになり、FF補正が禁止される。なお、「学習未完了状態」(XCOMP=0)においてアルコール濃度Rに大きな変化があった場合も、同様に、図10のステップ1055にて「No」と判定されて、FF補正が禁止される。
一方、ステップ1334にて「Yes」と判定される場合、即ち、現在の係数K(即ち、アルコール濃度R変化後の係数K)に対応する分類mについて学習記憶値Gmem(m)が既にバックアップRAM74に記憶されている場合、CPU71はステップ1338に進んで学習値Gを、その記憶されている学習記憶値Gmem(m)と等しい値に設定し、続くステップ1340にてフラグCHGを「1」から「0」に変更する。
このように、「学習完了状態」においてアルコール濃度Rに大きな変化があった場合であっても、現在の係数K(即ち、アルコール濃度R変化後の係数K)に対応する分類mについて学習記憶値Gmem(m)が既にバックアップRAM74に記憶されている場合、学習値Gがその記憶されている学習記憶値Gmem(m)と等しい値に設定されるとともに、「学習完了状態」(XCOMP=1)が維持される。即ち、FF補正が禁止されない。
以上、説明したように、本発明による内燃機関の空燃比制御装置の第1実施形態によれば、学習値Gで補正した基本燃料噴射量(学習補正基本燃料噴射量)FbaseをFF補正係数KFFとFB補正量DFBとで補正して指令燃料噴射量Fi(=Fbase・KFF+DFB)が原則的に決定される。学習値Gが「基本燃料噴射量の誤差」に対応する値(学習収束値)に収束したか否か(「学習完了状態」か「学習未完了状態」か)が判定される。更には、燃料中のアルコール濃度に大きな変化があった場合、強制的に「学習未完了状態」とされる。そして、アルコール濃度が急変した場合(即ち、「学習未完了状態」にある場合)、FF補正係数KFFによる学習補正基本燃料噴射量Fbaseの補正(FF補正)が禁止される。
この結果、「学習未完了状態」において目標空燃比abyfr(k)が急変した場合であっても、上述した「FF補正の実行に起因する空燃比の比較的大きな荒れの発生」が防止され、空燃比を迅速に目標空燃比に収束させることができる。
(第2実施形態)
次に、本発明の第2実施形態に係る空燃比制御装置について説明する。この第2実施形態は、上記第1実施形態の図11に示したルーチンに代えて図14に示した図11に対応するルーチンを実行する点においてのみ、上記第1実施形態と異なる。以下、係る相違点についてのみ説明する。
次に、本発明の第2実施形態に係る空燃比制御装置について説明する。この第2実施形態は、上記第1実施形態の図11に示したルーチンに代えて図14に示した図11に対応するルーチンを実行する点においてのみ、上記第1実施形態と異なる。以下、係る相違点についてのみ説明する。
図14に示したルーチンは、ステップ1405、1410が追加された点においてのみ、図11に示したルーチンと異なる。このステップ1405、1410の追加により、「学習完了状態」(XCOMP=1)では、空燃比偏差DAFは、上記第1実施形態と同様に「制御用空燃比abyfs(k)から遅延目標空燃比abyfrlow(k)を減じた値」に設定される。一方、「学習未完了状態」(XCOMP=0)では、空燃比偏差DAFは、「制御用空燃比abyfs(k)から現時点での目標空燃比abyfr(k)そのものを減じた値」に設定される。
即ち、第2実施形態では、「学習未完了状態」において、FF補正が禁止されることに加えて、FB補正量DFBの算出に必要な空燃比偏差DAFが現時点での目標空燃比abyfr(k)そのものを用いて算出される。以下、このことによる作用・効果について図15を参照しながら説明する。
図15は、アルコール濃度Rに大きな変化があったこと等により「学習未完了状態」にある場合において第2実施形態のようにFF補正が禁止され(KFF=1で固定)且つ現時点での目標空燃比abyfr(k)を用いて空燃比偏差DAFが算出される場合の一例を示した図8に対応するタイムチャートである。図15における時刻t1、t2、t3は、図8における時刻t1、t2、t3にそれぞれ対応している。
上述したように、上記第1実施形態(図8に示した例)では、時刻t1〜t2の間、空燃比偏差DAF(=abyfs(k)−abyfrlow(k-N))が「0」に維持され続けるから、時刻t1〜t2の間、フィードバック補正量DFB(偏差積分値SDAF)は値h3になお維持され続ける。このことに起因して、時刻t2以降、初めて空燃比偏差DAFが負の値となり、時刻t2以降、フィードバック補正量DFB(偏差積分値SDAF)が値h3から値−h2に向けて減少を開始する。これを受けて、空燃比が値AF1から理論空燃比stoichに収束していく。換言すれば、「学習未完了状態」において目標空燃比abyfr(k)が急変した場合、空燃比に大きな荒れが発生しないものの、遅延目標空燃比abyfrlow(k−N)を用いて空燃比偏差DAFが算出されることに起因して、空燃比が理論空燃比stoichに収束する時期が若干遅れる傾向があった。
これに対し、第2実施形態(図15に示した例)では、時刻t1以降直ちに、空燃比偏差DAF(=abyfs(k)−abyfr(k))が負の値となり、時刻t1以降、フィードバック補正量DFB(偏差積分値SDAF)が値h3から値−h2に向けて直ちに減少を開始する。これを受けて、空燃比が値AF1から理論空燃比stoichに収束していく。
以上より、第2実施形態では、「学習未完了状態」において目標空燃比abyfr(k)が急変した場合において、空燃比に大きな荒れを発生させることなく、上記第1実施形態に比して、むだ時間Lだけより早い段階で空燃比を理論空燃比stoichに収束させることができる。
本発明は上記第1、第2実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記第1、第2実施形態においては、「学習完了状態」か「学習未完了状態」かが判定され、「学習未完了状態」にてFF補正が禁止される。加えて、アルコール濃度に大きな変化があった場合に強制的に「学習未完了状態」とされることで、アルコール濃度に大きな変化があった場合にFF補正が禁止されるように構成されている。換言すれば、アルコール濃度の急変以外の要因で「学習未完了状態」となった場合においてもFF補正が禁止される。
これに対し、「学習完了状態」か「学習未完了状態」かの判定そのものを行うことなく、アルコール濃度に大きな変化があった場合にのみFF補正が禁止されるように構成されてもよい。
また、上記第1、第2実施形態においては、下流側空燃比センサ67の出力値Voxsに基づくサブフィードバック制御が実行されているが、サブフィードバック制御を実行しないように構成してもよい。より具体的には、現時点での上流側空燃比センサ66の出力値Vabyfsそのものと図2に示したテーブルMapabyfsとに基づいて得られるアルコール濃度R=0%の場合における現時点での検出空燃比に値(1/K)を乗じることで、現時点でのアルコール濃度Rに対応する検出空燃比abyfs(k)が求められ、この検出空燃比abyfs(k)から遅延目標空燃比abyfrlow(k−N)(又は、目標空燃比abyfr(k))を減じることで空燃比偏差DAFが算出されてもよい。
10…内燃機関、25…燃焼室、39…インジェクタ、53…三元触媒(第1触媒)、66…上流側空燃比センサ、69…アルコール濃度センサ、70…電気制御装置、71…CPU
Claims (6)
- 内燃機関の排気通路に配設された触媒と、
前記触媒よりも上流の前記排気通路に配設されて同排気通路内のガスの空燃比に応じた値を出力する空燃比センサと、
燃料に含まれるアルコール成分の濃度であるアルコール濃度を取得するアルコール濃度センサと、
指令燃料噴射量の燃料の噴射指示に応じて燃料を噴射する燃料噴射手段と、
を備えた内燃機関に適用される内燃機関の空燃比制御装置であって、
前記取得されたアルコール濃度に基づいて燃料の基準空燃比を決定する基準空燃比決定手段と、
吸気行程にて前記内燃機関の燃焼室に吸入された空気の量を前記基準空燃比で除した値である基本燃料噴射量を取得する基本燃料噴射量取得手段と、
前記内燃機関の運転状態に応じて変化する目標空燃比を同運転状態に基づいて取得する目標空燃比取得手段と、
前記目標空燃比の前記基準空燃比からの偏移に基づいてフィードフォワード補正量を取得するフィードフォワード補正量取得手段と、
前記目標空燃比の値にローパスフィルタ処理が施された値であって燃料の噴射指示から同噴射指示による噴射燃料の燃焼に基づく排ガスが前記空燃比センサに到達するまでの時間だけ前の時点での値である遅延目標空燃比を取得する遅延処理手段と、
前記空燃比センサの出力値から得られる検出空燃比と前記遅延目標空燃比との偏差に相当する値を積算して更新されていく偏差積分値に少なくとも基づいて前記検出空燃比を前記遅延目標空燃比に一致させるためのフィードバック補正量を取得するフィードバック補正量取得手段と、
所定のタイミングが到来する毎に、前記偏差積分値の定常的な成分を学習値に移し変えていき且つ前記偏差積分値から前記定常的な成分を除く学習処理を行う学習手段と、
前記基本燃料噴射量を前記学習値で補正した値を、前記フィードフォワード補正量と、前記フィードバック補正量と、に基づいて補正することで前記指令燃料噴射量を算出する指令燃料噴射量算出手段と、
前記指令燃料噴射量の燃料の噴射指示を前記燃料噴射手段に対して行うことで前記燃焼室に供給される混合気の空燃比を前記目標空燃比に一致するように制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置であって、
前記取得されたアルコール濃度に所定程度以上の変化があった場合、前記指令燃料噴射量算出手段による前記指令燃料噴射量の算出にあたり前記フィードフォワード補正量による補正を禁止する禁止手段を備えた内燃機関の空燃比制御装置。 - 請求項1に記載の内燃機関の空燃比制御装置であって、
前記学習値の状態が、前記学習値が収束している学習完了状態にあるか前記学習値が収束していない学習未完了状態にあるかを判定する判定手段を備え、
前記学習手段は、
前記学習未完了状態において前記学習処理を行うとともに前記学習完了状態において前記学習処理を行わないように構成されていて、
前記禁止手段は、
前記学習未完了状態においてのみ前記フィードフォワード補正量による補正を禁止するように構成され、且つ、前記取得されたアルコール濃度に前記所定程度以上の変化があった場合に前記判定手段の判定結果にかかわらず前記学習値の状態を前記学習未完了状態とするように構成された内燃機関の空燃比制御装置。 - 請求項2に記載の内燃機関の空燃比制御装置であって、
前記学習未完了状態から前記学習完了状態への移行に応答して現時点での前記学習値を現時点での前記アルコール濃度に対応させて学習記憶値として記憶する記憶手段を備え、
前記禁止手段は、
前記取得されたアルコール濃度に前記所定程度以上の変化があった場合であっても、前記変化後のアルコール濃度に対応する前記学習記憶値が既に記憶されているときは、前記学習値を前記変化後のアルコール濃度に対応する前記学習記憶値と等しい値に設定するとともに前記フィードフォワード補正量による補正の禁止を行わないように構成された内燃機関の空燃比制御装置。 - 請求項1乃至請求項3の何れか一項に記載の内燃機関の空燃比制御装置において、
前記フィードバック補正量取得手段は、
前記禁止手段により前記フィードフォワード補正量による補正の禁止が行われている間、前記偏差積分値を、前記空燃比センサの出力値から得られる検出空燃比と現時点での前記目標空燃比そのものとの偏差に相当する値を積算して更新していくように構成された内燃機関の空燃比制御装置。 - 内燃機関の排気通路に配設された触媒と、
前記触媒よりも上流の前記排気通路に配設されて同排気通路内のガスの空燃比に応じた値を出力する空燃比センサと、
燃料に含まれるアルコール成分の濃度であるアルコール濃度を取得するアルコール濃度センサと、
指令燃料噴射量の燃料の噴射指示に応じて燃料を噴射する燃料噴射手段と、
を備えた内燃機関に適用される内燃機関の空燃比制御装置であって、
前記取得されたアルコール濃度に基づいて燃料の基準空燃比を決定する基準空燃比決定手段と、
吸気行程にて前記内燃機関の燃焼室に吸入された空気の量を前記基準空燃比で除した値である基本燃料噴射量を取得する基本燃料噴射量取得手段と、
前記内燃機関の運転状態に応じて変化する目標空燃比を同運転状態に基づいて取得する目標空燃比取得手段と、
前記目標空燃比の前記基準空燃比からの偏移に基づいてフィードフォワード補正量を取得するフィードフォワード補正量取得手段と、
前記目標空燃比の値にローパスフィルタ処理が施された値であって燃料の噴射指示から同噴射指示による噴射燃料の燃焼に基づく排ガスが前記空燃比センサに到達するまでの時間だけ前の時点での値である遅延目標空燃比を取得する遅延処理手段と、
前記空燃比センサの出力値から得られる検出空燃比と前記遅延目標空燃比との偏差に相当する値を積算して更新されていく偏差積分値に少なくとも基づいて前記検出空燃比を前記遅延目標空燃比に一致させるためのフィードバック補正量を取得するフィードバック補正量取得手段と、
所定のタイミングが到来する毎に、前記偏差積分値の定常的な成分を学習値に移し変えていき且つ前記偏差積分値から前記定常的な成分を除く学習処理を行う学習手段と、
前記基本燃料噴射量を前記学習値で補正した値を、前記フィードフォワード補正量と、前記フィードバック補正量と、に基づいて補正することで前記指令燃料噴射量を算出する指令燃料噴射量算出手段と、
前記指令燃料噴射量の燃料の噴射指示を前記燃料噴射手段に対して行うことで前記燃焼室に供給される混合気の空燃比を前記目標空燃比に一致するように制御する空燃比制御手段と、
を備えた内燃機関の空燃比制御装置であって、
前記学習値の状態が、前記学習値が収束している学習完了状態にあるか前記学習値が収束していない学習未完了状態にあるかを判定する判定手段を備え、
前記学習手段は、
前記学習未完了状態において前記学習処理を行うとともに前記学習完了状態において前記学習処理を行わないように構成されていて、
前記学習未完了状態において、前記指令燃料噴射量算出手段による前記指令燃料噴射量の算出にあたり前記フィードフォワード補正量による補正を禁止する禁止手段を備えた内燃機関の空燃比制御装置。 - 請求項5に記載の内燃機関の空燃比制御装置において、
前記禁止手段は、
前記取得されたアルコール濃度に所定程度以上の変化があった場合に前記判定手段の判定結果にかかわらず前記学習値の状態を前記学習未完了状態とするように構成された内燃機関の空燃比制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007201411A JP2009036107A (ja) | 2007-08-02 | 2007-08-02 | 内燃機関の空燃比制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007201411A JP2009036107A (ja) | 2007-08-02 | 2007-08-02 | 内燃機関の空燃比制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009036107A true JP2009036107A (ja) | 2009-02-19 |
Family
ID=40438241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007201411A Pending JP2009036107A (ja) | 2007-08-02 | 2007-08-02 | 内燃機関の空燃比制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009036107A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012101739A1 (ja) * | 2011-01-24 | 2012-08-02 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
KR102053363B1 (ko) * | 2018-10-26 | 2019-12-06 | 현대오트론 주식회사 | Ffv 차량의 에탄올 센서의 타당성 진단방법 및 이를 통해 운용되는 ffv 차량 |
-
2007
- 2007-08-02 JP JP2007201411A patent/JP2009036107A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012101739A1 (ja) * | 2011-01-24 | 2012-08-02 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
JP5240416B2 (ja) * | 2011-01-24 | 2013-07-17 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
CN103328795A (zh) * | 2011-01-24 | 2013-09-25 | 丰田自动车株式会社 | 内燃机的控制装置 |
US8649957B2 (en) | 2011-01-24 | 2014-02-11 | Toyota Jidosha Kabushiki Kaisha | Control device for internal combustion engine |
KR102053363B1 (ko) * | 2018-10-26 | 2019-12-06 | 현대오트론 주식회사 | Ffv 차량의 에탄올 센서의 타당성 진단방법 및 이를 통해 운용되는 ffv 차량 |
US10961938B2 (en) | 2018-10-26 | 2021-03-30 | Hyundai Kefico Corporation | Diagnosis method for ethanol sensor of FFV and FFV operated thereby |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4329799B2 (ja) | 内燃機関の空燃比制御装置 | |
JP4380625B2 (ja) | 内燃機関の空燃比制御装置 | |
JP4315179B2 (ja) | 内燃機関の空燃比制御装置 | |
JP2007162565A (ja) | 内燃機関の空燃比制御装置 | |
JP2009002251A (ja) | 内燃機関の空燃比制御装置 | |
JP4957559B2 (ja) | 内燃機関の空燃比制御装置 | |
JP4039380B2 (ja) | 内燃機関の空燃比制御装置 | |
JP2010169038A (ja) | 多気筒内燃機関の気筒間空燃比ばらつき判定装置 | |
JP2007100575A (ja) | 内燃機関の制御装置 | |
JP4364777B2 (ja) | 内燃機関の空燃比制御装置 | |
JP2008014152A (ja) | 噴射特性の学習方法及び燃料噴射制御装置 | |
US6814067B2 (en) | Control system for plant and air-fuel ratio control system for internal combustion engine | |
JP2009036107A (ja) | 内燃機関の空燃比制御装置 | |
JP4725478B2 (ja) | 内燃機関の空燃比制御装置 | |
JP4710716B2 (ja) | 内燃機関の空燃比制御装置 | |
JP2007231750A (ja) | 内燃機関の空燃比制御装置 | |
JP4548373B2 (ja) | 内燃機関の空燃比制御装置 | |
JP4391344B2 (ja) | 内燃機関の燃料圧制御装置 | |
JP4770589B2 (ja) | 内燃機関の空燃比制御装置 | |
JP2007291984A (ja) | 内燃機関の空燃比制御装置 | |
JP2008128022A (ja) | 内燃機関の空燃比制御装置 | |
JP2008106712A (ja) | 内燃機関の空燃比制御装置 | |
JP2009197683A (ja) | 内燃機関の空燃比制御装置 | |
JP2007231902A (ja) | 内燃機関の空燃比制御装置 | |
JP2009162121A (ja) | 内燃機関の空燃比制御装置 |