(57)【特許請求の範囲】
【請求項１】
内燃機関（１１）の吸気圧を検出する吸気圧センサ（１９）と、排出ガスの空燃比又はリッチ／リーンを検出する排出ガスセンサ（２４）とを備え、前記内燃機関（１１）の要求空気量に応じてスロットル開度を制御するスロットル制御と、前記吸気圧センサ（１９）の出力と体積効率に基づいて検出空気量を算出する空気量算出処理とを行う内燃機関の制御装置において、
前記要求空気量と前記検出空気量との差分を算出し、該差分を所定の分割比で前記スロットル制御による誤差と前記空気量算出処理による誤差とに分割し、前記スロットル制御による誤差に基づいて前記スロットル開度を補正すると共に前記空気量算出処理による誤差に基づいて前記体積効率を補正する第１の補正処理と、
前記第１の補正処理の実行後に、前記排出ガスセンサ（２４）の出力に基づいて前記要求空気量に対する実空気量のずれを算出し、該実空気量のずれを所定の分割比で前記スロットル制御による誤差と前記空気量算出処理による誤差とに分割し、前記スロットル制御による誤差に基づいて前記スロットル開度を補正すると共に前記空気量算出処理による誤差に基づいて前記体積効率を補正する第２の補正処理と
を実行する空気量補正手段（３０）を備えていることを特徴とする内燃機関の制御装置。
【請求項２】
前記空気量補正手段（３０）は、前記第１の補正処理及び前記第２の補正処理による補正後のスロットル開度を学習すると共に、前記第１の補正処理及び前記第２の補正処理による補正後の体積効率を学習することを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
前記空気量補正手段（３０）は、前記第１の補正処理及び前記第２の補正処理を最初に１度実行した後は、前記要求空気量と前記検出空気量との差分が所定値以上になったときに、前記第１の補正処理及び前記第２の補正処理を実行することを特徴とする請求項１又は２に記載の内燃機関の制御装置。
【請求項４】
前記空気量補正手段（３０）は、前記第１の補正処理及び前記第２の補正処理を最初に１度実行した後に、前記第１の補正処理及び前記第２の補正処理を実行する際には、前記スロットル制御による誤差が前記空気量算出処理による誤差よりも大きくなるように前記分割比を設定することを特徴とする請求項１乃至３のいずれかに記載の内燃機関の制御装置。
【請求項５】
前記空気量補正手段（３０）は、吸気圧の変化量が所定値以上、吸気圧と大気圧との比が所定値以上、スロットル開口面積率が所定値以下、空燃比フィードバック制御が停止中、目標空燃比が所定範囲外、目標空燃比の変化速度が所定値以上のうちの少なくとも一つの条件が成立したときに、前記第１の補正処理及び前記第２の補正処理を禁止することを特徴とする請求項１乃至４のいずれかに記載の内燃機関の制御装置。
【請求項６】
前記空気量補正手段（３０）は、前記第１の補正処理の実行後に、前記第２の補正処理を前記実空気量のずれが所定値以下になるまで繰り返し実行する又は前記第２の補正処理を所定回数繰り返し実行することを特徴とする請求項１乃至５のいずれかに記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、吸気圧センサの出力に基づいて検出空気量を算出する吸気圧センサ方式を採用した内燃機関の制御装置に関する発明である。
【背景技術】
【０００２】
内燃機関の目標吸気量を実現するようにスロットル開度（スロットルバルブの開度）を制御するシステムにおいて、目標吸気量に対する実吸気量のばらつきを低減する技術として、例えば、特許文献１（特開２００８−５７３３９号公報）に記載されたものがある。このものは、目標吸気量、大気圧、吸気圧、吸気温に基づいて、目標吸気量を達成する目標有効開口面積を算出し、この目標有効開口面積に対応する目標スロットル開度をマップにより算出する。また、吸気量、大気圧、吸気圧、吸気温に基づいて、吸気量に対する実有効開口面積を算出し、この実有効開口面積に対応する学習用スロットル開度をマップにより算出する。そして、目標スロットル開度と学習用スロットル開度との偏差に基づいてスロットル開度学習値を算出し、このスロットル開度学習値を用いて目標スロットル開度を補正するようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−５７３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
内燃機関の制御システムにおいては、低コスト化等の要求を満たすために、吸気量（吸入空気量）を検出するエアフローメータを設けずに、吸気圧（吸気管圧力）を検出する吸気圧センサのみを設け、この吸気圧センサの出力と体積効率等に基づいて検出空気量（実空気量の検出値）を算出する吸気圧センサ方式を採用したものがある。
【０００５】
また、内燃機関の制御性を向上させるには、要求空気量に対する実空気量のずれを小さくすることが好ましい。例えば、トルク制御を行うシステムでは、要求空気量に対する実空気量のずれが大きいと、トルク制御精度が悪化するため、トルク制御精度を向上させるには、要求空気量に対する実空気量のずれを小さくする必要がある。
【０００６】
しかし、吸気圧センサ方式を採用したシステムでは、実空気量を直接検出することができず、吸気圧センサの出力と体積効率等に基づいて検出空気量を算出する。このため、検出空気量（実空気量の検出値）には、スロットル制御による誤差（例えばスロットル開度のずれによる誤差）だけでなく、空気量算出処理による誤差（例えば体積効率のずれによる誤差）も含まれる。従って、要求空気量に対する実空気量のずれの要因は、スロットル制御による誤差だけでなく、空気量算出処理による誤差も挙げられる。このため、検出空気量に基づいてスロットル開度を補正するだけでは、実空気量のずれを十分に小さくすることができない可能性がある。
【０００７】
また、内燃機関の制御システムにおいては、排出ガスセンサ（空燃比センサや酸素センサ等）の出力に基づいて排出ガスの空燃比を目標空燃比に一致させるように燃料噴射量を補正する空燃比フィードバック制御を行うようにしたものがある。このようなシステムでは、実空気量のずれによる空燃比のずれを空燃比フィードバック制御による燃料噴射量の補正で補うことができるが、実空気量のずれ自体を小さくするこはできない。
【０００８】
そこで、本発明が解決しようとする課題は、吸気圧センサ方式を採用したシステムにおいて、要求空気量に対する実空気量のずれを効果的に小さくすることができる内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明は、内燃機関（１１）の吸気圧を検出する吸気圧センサ（１９）と、排出ガスの空燃比又はリッチ／リーンを検出する排出ガスセンサ（２４）とを備え、内燃機関（１１）の要求空気量に応じてスロットル開度を制御するスロットル制御と、吸気圧センサ（１９）の出力と体積効率に基づいて検出空気量を算出する空気量算出処理とを行う内燃機関の制御装置において、要求空気量と検出空気量との差分を算出し、該差分を所定の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割し、スロットル制御による誤差に基づいてスロットル開度を補正すると共に空気量算出処理による誤差に基づいて体積効率を補正する第１の補正処理と、この第１の補正処理の実行後に、排出ガスセンサ（２４）の出力に基づいて要求空気量に対する実空気量のずれを算出し、該実空気量のずれを所定の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割し、スロットル制御による誤差に基づいてスロットル開度を補正すると共に空気量算出処理による誤差に基づいて体積効率を補正する第２の補正処理とを実行する空気量補正手段（３０）を備えた構成としたものである。
【００１０】
前述したように、検出空気量（実空気量の検出値）には、スロットル制御による誤差（例えばスロットル開度のずれによる誤差）だけでなく、空気量算出処理による誤差（例えば体積効率のずれによる誤差）も含まれる。
【００１１】
このような事情を考慮して、本発明では、まず、第１の補正処理を実行する。この第１の補正処理では、要求空気量と検出空気量との差分（要求空気量に対する検出空気量のずれ）を算出し、この差分を第１の補正処理の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。そして、スロットル制御による誤差に基づいてスロットル開度を補正すると共に、空気量算出処理による誤差に基づいて体積効率を補正する。これにより、実空気量のずれの要因（スロットル制御による誤差や空気量算出処理による誤差）をある程度小さくすることができ、要求空気量に対する実空気量のずれをある程度小さくすることができる。
【００１２】
この第１の補正処理の実行後に、第２の補正処理を実行する。この第２の補正処理では、排出ガスセンサの出力に基づいて要求空気量に対する実空気量のずれを算出し、この実空気量のずれを第２の補正処理の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。そして、再びスロットル制御による誤差に基づいてスロットル開度を補正すると共に、空気量算出処理による誤差に基づいて体積効率を補正する。これにより、実空気量のずれの要因を更に小さくすることができ、要求空気量に対する実空気量のずれを効果的に小さくすることができる。
【図面の簡単な説明】
【００１３】
【図１】図１は本発明の一実施例におけるエンジン制御システムの概略構成を示す図である。
【図２】図２は空気量補正ルーチンの処理の流れを示すフローチャート（その１）である。
【図３】図３は空気量補正ルーチンの処理の流れを示すフローチャート（その２）である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を具体化した一実施例を説明する。
まず、図１に基づいてエンジン制御システムの概略構成を説明する。
内燃機関であるエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側には、モータ１５によって開度調節されるスロットルバルブ１６と、このスロットルバルブ１６の開度（スロットル開度）を検出するスロットル開度センサ１７とが設けられている。
【００１５】
更に、スロットルバルブ１６の下流側には、サージタンク１８が設けられ、このサージタンク１８に、吸気圧（吸気管圧力）を検出する吸気圧センサ１９が設けられている。また、サージタンク１８には、エンジン１１の各気筒に空気を導入する吸気マニホールド２０が設けられ、各気筒の吸気マニホールド２０に接続された吸気ポート又はその近傍に、それぞれ吸気ポートに燃料を噴射する燃料噴射弁２１が取り付けられている。或は、エンジン１１の各気筒に、それぞれ筒内に燃料を直接噴射する燃料噴射弁が取り付けられているようにしても良い。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２２が取り付けられ、各気筒の点火プラグ２２の火花放電によって各気筒内の混合気に着火される。
【００１６】
一方、エンジン１１の排気管２３には、排出ガスの空燃比又はリッチ／リーン等を検出する排出ガスセンサ２４（空燃比センサ又は酸素センサ等）が設けられ、この排出ガスセンサ２４の下流側に、排出ガスを浄化する三元触媒等の触媒２５が設けられている。
【００１７】
また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２６や、ノッキングを検出するノックセンサ２７が取り付けられている。また、クランク軸２８の外周側には、クランク軸２８が所定クランク角回転する毎にパルス信号を出力するクランク角センサ２９が取り付けられ、このクランク角センサ２９の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００１８】
これら各種センサの出力は、電子制御ユニット（以下「ＥＣＵ」と表記する）３０に入力される。このＥＣＵ３０は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御用のプログラムを実行することで、エンジン運転状態に応じて、燃料噴射量、点火時期、スロットル開度（吸入空気量）等を制御する。
【００１９】
その際、ＥＣＵ３０は、アクセル開度とエンジン回転速度等に基づいてエンジン１１の要求空気量を算出する。或は、アクセル開度とエンジン回転速度等に基づいて要求トルクを算出し、この要求トルクとエンジン回転速度等に基づいて要求空気量を算出するようにしても良い。更に、この要求空気量とエンジン回転速度等に基づいて目標スロットル開度を算出し、スロットル開度センサ１７で検出した実スロットル開度を目標スロットル開度に一致させるようにスロットルバルブ１６のモータ１５を制御するスロットル制御を行う。
【００２０】
また、ＥＣＵ３０は、エンジン回転速度等に基づいて体積効率（吸気管１２から筒内に流入する空気量を示す指標）を算出し、吸気圧センサ１９の出力（吸気圧）と体積効率等に基づいて検出空気量（実空気量の検出値）を算出する空気量算出処理を行う。更に、この検出空気量とエンジン回転速度等に基づいて燃料噴射量を算出する。
【００２１】
また、ＥＣＵ３０は、所定の空燃比Ｆ／Ｂ制御実行条件が成立したときに、排出ガスセンサ２４の出力に基づいて排出ガスの空燃比を目標空燃比に一致させるように燃料噴射量を補正する空燃比Ｆ／Ｂ制御を実行する。ここで、「Ｆ／Ｂ」は「フィードバック」を意味する（以下、同様）。
【００２２】
ところで、エンジン１１の制御性を向上させるには、要求空気量に対する実空気量のずれを小さくすることが好ましい。しかし、吸気圧センサ方式を採用したシステムでは、実空気量を直接検出することができず、吸気圧センサ１９の出力と体積効率等に基づいて検出空気量を算出する。このため、検出空気量（実空気量の検出値）には、スロットル制御による誤差（例えばスロットル開度のずれによる誤差）だけでなく、空気量算出処理による誤差（例えば体積効率のずれによる誤差）も含まれる。従って、要求空気量に対する実空気量のずれの要因として、スロットル制御による誤差と空気量算出処理による誤差が考えられる。
【００２３】
そこで、本実施例では、ＥＣＵ３０により後述する図２及び図３の空気量補正ルーチンを実行することで、スロットル開度や体積効率を補正して、要求空気量に対する実空気量のずれを小さくするようにしている。
【００２４】
具体的には、まず、所定の実行条件が成立したとき（所定の禁止条件が不成立のとき）に、第１の補正処理を実行する。この第１の補正処理では、要求空気量と検出空気量との差分（要求空気量に対する検出空気量のずれ）を算出し、この差分を所定の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。そして、スロットル制御による誤差に基づいてスロットル開度を補正すると共に、空気量算出処理による誤差に基づいて体積効率を補正する。これにより、実空気量のずれの要因（スロットル制御による誤差や空気量算出処理による誤差）をある程度小さくして、要求空気量に対する実空気量のずれをある程度小さくする。
【００２５】
この第１の補正処理の実行後に、第２の補正処理を実行する。この第２の補正処理では、排出ガスセンサ２４の出力に基づいて要求空気量に対する実空気量のずれを算出し、この実空気量のずれを所定の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。そして、再びスロットル制御による誤差に基づいてスロットル開度を補正すると共に、空気量算出処理による誤差に基づいて体積効率を補正する。この第２の補正処理を実空気量のずれが所定値以下になるまで繰り返し実行する。これにより、実空気量のずれの要因を更に小さくして、要求空気量に対する実空気量のずれを小さくする。
【００２６】
このようにして、第１の補正処理及び第２の補正処理を実行した後、第１の補正処理及び第２の補正処理による補正後のスロットル開度を学習すると共に、第１の補正処理及び第２の補正処理による補正後の体積効率を学習する。
【００２７】
以下、本実施例でＥＣＵ３０が実行する図２及び図３の空気量補正ルーチンの処理内容を説明する。
図２及び図３に示す空気量補正ルーチンは、ＥＣＵ３０の電源オン期間中（例えばイグニッションスイッチのオン期間中）に所定周期で繰り返し実行され、特許請求の範囲でいう空気量補正手段としての役割を果たす。
【００２８】
本ルーチンが起動されると、まず、ステップ１０１で、所定の禁止条件が成立しているか否かを、例えば、次の(1) 〜(12)の条件のうちの少なくとも一つが成立しているか否かによって判定する。
【００２９】
(1) 吸気圧の所定期間の変化量が所定値以上であること
(2) 吸気圧と大気圧との圧力比（吸気圧／大気圧）が所定値以上であること
(3) エバポガスのパージ流量が所定値以上であること
(4) スロットル開口面積率が所定値以下であること
(5) 冷却水温が所定値以下であること
(6) 空燃比Ｆ／Ｂ制御が停止中であること
(7) 目標空燃比が所定範囲外（所定範囲よりもリッチ側又はリーン側）であること
(8) 目標空燃比の変化速度が所定値以上であること
(9) 目標空燃比と実空燃比との差が所定値以上であること（但し排出ガスセンサ２４として酸素センサが設けられている場合は無効）
(10)吸気温が所定値以上であること
(11)アイドルストップ要求が発生していること
(12)エバポガスのパージ停止が所定時間以上継続していること
【００３０】
上記(1) 〜(5) の条件は、吸気量が不安定な状態になる可能性が高い条件であり、上記(6) 〜(12)の条件は、空燃比が不安定な状態になる可能性が高い条件である。
上記(1) 〜(12)の条件のうちのいずれか一つを満たせば、禁止条件が成立するが、上記(1) 〜(12)の条件を全て満たさなければ、禁止条件が不成立となる。
【００３１】
このステップ１０１で、禁止条件が成立していると判定された場合には、吸気量や空燃比が不安定な状態であると判断して、ステップ１０２以降の処理を実行することなく、本ルーチンを終了することで、第１の補正処理及び第２の補正処理を禁止する。
【００３２】
一方、上記ステップ１０１で、禁止条件が不成立と判定された場合には、ステップ１０２に進み、現在の要求空気量と検出空気量との差分（要求空気量に対する検出空気量のずれ）を算出する。例えば、要求空気量が１５[g/s] で、検出空気量が１０[g/s] の場合には、要求空気量１５[g/s] と検出空気量１０[g/s] との差分５[g/s] を次式により算出する。
差分５[g/s] ＝要求空気量１５[g/s] −検出空気量１０[g/s]
【００３３】
この後、ステップ１０３に進み、第１の補正処理及び第２の補正処理を未実施である（未だ一度も実施していない）か否かを判定する。
このステップ１０３で、第１の補正処理及び第２の補正処理を未実施である（未だ一度も実施していない）と判定された場合には、ステップ１０４の処理を飛ばして、ステップ１０５以降の処理を実行する。これにより、第１の補正処理（ステップ１０５〜１０７等の処理）及び第２の補正処理（ステップ１１１〜１１３等の処理）を実行した後、学習処理（ステップ１１８の処理）を実行する。この際、エバポガスのパージを禁止すると共に、燃料学習（例えば空燃比Ｆ／Ｂ補正量の学習）を禁止するようにしても良い。
【００３４】
まず、ステップ１０５に進み、要求空気量と検出空気量との差分を、第１の補正処理の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。この第１の補正処理の分割比は、予め試験データや設計データ等に基づいて設定されている。
【００３５】
例えば、第１の補正処理の分割比が「５：５」の場合には、要求空気量と検出空気量との差分５[g/s] を、スロットル制御による誤差２．５[g/s] と空気量算出処理による誤差２．５[g/s] とに分割する。
【００３６】
この後、ステップ１０６に進み、スロットル制御による誤差が小さくなるようにスロットル開度を補正する。例えば、スロットル制御による誤差が２．５[g/s] の場合には、このスロットル制御による誤差２．５[g/s] 分だけ実空気量が増加する（つまり検出空気量が１０[g/s] から１２．５[g/s] になる）ようにスロットル開度を補正する。
【００３７】
この後、ステップ１０７に進み、空気量算出処理による誤差が小さくなるように体積効率を補正する。例えば、空気量算出処理による誤差が２．５[g/s] の場合には、この空気量算出処理による誤差２．５[g/s] 分だけ検出空気量が増加する（つまり検出空気量が１２．５[g/s] から１５[g/s] になる）ように体積効率を補正する。
【００３８】
第１の補正処理（ステップ１０５〜１０７等の処理）の実行後、第２の補正処理（ステップ１１１〜１１３等の処理）を次ようにして実施する。
まず、図３のステップ１０８に進み、現在（第１の補正処理の実行後）の検出空気量と目標空燃比とに基づいて燃料噴射量を決定する。例えば、現在の検出空気量が１５[g/s] の場合には、この検出空気量１５[g/s] と目標空燃比とに基づいて、目標空燃比を実現するように燃料噴射量を決定する。
【００３９】
この後、ステップ１０９に進み、排出ガスセンサ２４の出力に基づいて目標空燃比に対する実空燃比のずれを算出する。例えば、排出ガスセンサ２４として空燃比センサが設けられている場合には、排出ガスセンサ２４で検出した空燃比（所定期間の平均値）を用いて、目標空燃比に対する実空燃比のずれを算出する。また、排出ガスセンサ２４として酸素センサが設けられている場合には、排出ガスセンサ２４の出力に基づいた空燃比Ｆ／Ｂ補正量（所定期間の平均値）を用いて、目標空燃比に対する実空燃比のずれを算出する。
【００４０】
この後、ステップ１１０に進み、目標空燃比に対する実空燃比のずれに基づいて要求空気量に対する実空気量のずれを算出する。例えば、目標空燃比に対する実空燃比のずれがリッチ側に２％で、検出空気量が１５[g/s] の場合には、実空気量１４．７[g/s] を次式により算出する。
実空気量１４．７[g/s] ＝検出空気量１５[g/s] ×（１−０．０２）
【００４１】
更に、要求空気量１５[g/s] に対する実空気量１４．７[g/s] のずれ０．３[g/s] を次式により算出する。
ずれ０．３[g/s] ＝要求空気量１５[g/s] −実空気量１４．７[g/s]
【００４２】
この後、ステップ１１１に進み、実空気量のずれを、第２の補正処理の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。この第２の補正処理の分割比は、予め試験データや設計データ等に基づいて設定されている。また、第２の補正処理の分割比は、スロットル制御による誤差が空気量算出処理による誤差よりも大きくなるような分割比（例えば、「１０：０」、「９：１」、「８：２」等）に設定されている。
【００４３】
例えば、第２の補正処理の分割比が「１０：０」の場合には、実空気量のずれ０．３[g/s] を、スロットル制御による誤差０．３[g/s] と空気量算出処理による誤差０[g/s] とに分割する。
【００４４】
この後、ステップ１１２に進み、スロットル制御による誤差が小さくなるようにスロットル開度を補正する。例えば、スロットル制御による誤差が０．３[g/s] の場合には、このスロットル制御による誤差０．３[g/s] 分だけ実空気量が増加する（つまり実空気量が１４．７[g/s] から１５[g/s] になる）ようにスロットル開度を補正する。
【００４５】
この後、ステップ１１３に進み、空気量算出処理による誤差が小さくなるように体積効率を補正する。尚、空気量算出処理による誤差が０[g/s] の場合には、体積効率は補正されない。
【００４６】
この後、ステップ１１４に進み、現在の検出空気量と目標空燃比とに基づいて燃料噴射量を決定する。この後、ステップ１１５に進み、排出ガスセンサ２４の出力に基づいて目標空燃比に対する実空燃比のずれを算出した後、ステップ１１６に進み、目標空燃比に対する実空燃比のずれに基づいて要求空気量に対する実空気量のずれを算出する。
【００４７】
この後、ステップ１１７に進み、実空気量のずれ（絶対値）が許容上限値以下であるか否かを判定し、実空気量のずれが許容上限値よりも大きいと判定された場合には、上記ステップ１１１に戻り、第２の補正処理（ステップ１１１〜１１３等の処理）を繰り返し実行する。
【００４８】
その後、上記ステップ１１７で、実空気量のずれが許容上限値以下と判定された時点で、第２の補正処理を終了して、ステップ１１８に進む。
このステップ１１８で、第１の補正処理及び第２の補正処理による補正後のスロットル開度を学習し、そのスロットル開度の学習値をＥＣＵ３０のバックアップＲＡＭ等の不揮発性メモリに記憶する。また、第１の補正処理及び第２の補正処理による補正後の体積効率を学習し、その体積効率の学習値をＥＣＵ３０のバックアップＲＡＭ等の不揮発性メモリに記憶する。尚、スロットル開度の学習値と体積効率の学習値は、それぞれ所定の上下限ガード値でガード処理する（下限ガード値から上限ガード値までの範囲内に制限する）ようにしても良い。
【００４９】
一方、上記ステップ１０３で、第１の補正処理及び第２の補正処理を未実施ではない（実施したことがある）と判定された場合、つまり、第１の補正処理及び第２の補正処理を最初に１度実行した後は、ステップ１０４に進み、要求空気量と検出空気量との差分（絶対値）が所定値以上であるか否かを判定する。
【００５０】
このステップ１０４で、要求空気量と検出空気量との差分が所定値よりも小さいと判定された場合には、第１の補正処理及び第２の補正処理を実施する必要がないと判断して、ステップ１０５以降の処理を実行することなく、本ルーチンを終了する。
【００５１】
その後、上記ステップ１０４で、要求空気量と検出空気量との差分が所定値以上であると判定された場合には、システムの経時変化等によって再び実空気量のずれが大きくなったと判断して、ステップ１０５以降の処理を実行する。これにより、再び、第１の補正処理（ステップ１０５〜１０７等の処理）及び第２の補正処理（ステップ１１１〜１１３等の処理）を実行した後、学習処理（ステップ１１８の処理）を実行する。この際、エバポガスのパージを禁止すると共に、燃料学習（例えば空燃比Ｆ／Ｂ補正量の学習）を禁止するようにしても良い。
【００５２】
このように、第１の補正処理及び第２の補正処理を最初に１度実行した後は、要求空気量と検出空気量との差分が所定値以上になったときに、システムの経時変化等によって再び実空気量のずれが大きくなったと判断して、第１の補正処理及び第２の補正処理を実行する。
【００５３】
更に、第１の補正処理及び第２の補正処理を最初に１度実行した後に、第１の補正処理及び第２の補正処理を実行する際（つまり、第１の補正処理及び第２の補正処理を２度目以降に実行する際）には、スロットル制御による誤差が空気量算出処理による誤差よりも大きくなるように分割比を設定する。例えば、第１補正処理の分割比と第２補正処理の分割比を、それぞれ「１０：０」に設定する（この場合、空気量算出処理による誤差が０となり、体積効率は補正されない）。しかし、これに限定されず、第１補正処理の分割比と第２補正処理の分割比を、それぞれ「９：１」や「８：２」等に設定するようにしても良い。
【００５４】
尚、学習処理（ステップ１１８の処理）の際に、スロットル開度を運転領域毎に学習しても良く、この場合、今回の第１の補正処理及び第２の補正処理を実施した運転領域に対応するスロットル開度の学習値（記憶値）を、今回のスロットル開度の学習値で更新する。また、体積効率を運転領域毎に学習しても良く、この場合、今回の第１の補正処理及び第２の補正処理を実施した運転領域に対応する体積効率の学習値（記憶値）を、今回の体積効率の学習値で更新する。
【００５５】
更に、スロットル開度を学習する際に、今回のスロットル開度の学習値をなまし処理（一次遅れ処理）して、今回のスロットル開度の最終的な学習値を求めるようにしても良く、この場合、最初の学習時と２度目以降の学習時とで、ゲイン（なまし係数）を別々に設定するようにしても良い。また、体積効率を学習する際に、今回の体積効率の学習値をなまし処理（一次遅れ処理）して、今回の体積効率の最終的な学習値を求めるようにしても良く、この場合、最初の学習時と２度目以降の学習時とで、ゲイン（なまし係数）を別々に設定するようにしても良い。
【００５６】
以上説明した本実施例では、所定の実行条件が成立したとき（所定の禁止条件が不成立のとき）に、第１の補正処理を実行する。この第１の補正処理では、要求空気量と検出空気量との差分を算出し、この差分を第１の補正処理の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。そして、スロットル制御による誤差を小さくするようにスロットル開度を補正すると共に、空気量算出処理による誤差を小さくするように体積効率を補正する。これにより、実空気量のずれの要因（スロットル制御による誤差や空気量算出処理による誤差）をある程度小さくすることができ、要求空気量に対する実空気量のずれをある程度小さくすることができる。
【００５７】
この第１の補正処理の実行後に、第２の補正処理を実行する。この第２の補正処理では、排出ガスセンサ２４の出力に基づいて要求空気量に対する実空気量のずれを算出し、この実空気量のずれを第２の補正処理の分割比でスロットル制御による誤差と空気量算出処理による誤差とに分割する。そして、再びスロットル制御による誤差を小さくするようにスロットル開度を補正すると共に、空気量算出処理による誤差を小さくするように体積効率を補正する。これにより、実空気量のずれの要因を更に小さくすることができ、要求空気量に対する実空気量のずれを効果的に小さくすることができる。
【００５８】
更に、本実施例では、第１の補正処理及び第２の補正処理を実行した後、第１の補正処理及び第２の補正処理による補正後のスロットル開度を学習すると共に、第１の補正処理及び第２の補正処理による補正後の体積効率を学習するようにしている。このようにすれば、スロットル開度や体積効率を学習した後は、学習値を用いてスロットル制御や空気量算出処理を行うことで、要求空気量に対する実空気量のずれを小さくすることができるため、第１の補正処理及び第２の補正処理を短い周期で行う必要がなく、ＥＣＵ３０の演算負荷を低減することができる。
【００５９】
第１の補正処理及び第２の補正処理を最初に１度実行することで、システムの個体差（製造ばらつき）等による実空気量のずれを小さくすることができる。しかし、その後、システムの経時変化等によって再び実空気量のずれが大きくなる可能性がある。
【００６０】
そこで、本実施例では、第１の補正処理及び第２の補正処理を最初に１度実行した後は、要求空気量と検出空気量との差分が所定値以上になったときに、システムの経時変化等によって再び実空気量のずれが大きくなったと判断して、第１の補正処理及び第２の補正処理を実行するようにしている。このようにすれば、システムの経時変化等によって実空気量のずれが大きくなっても、その実空気量のずれを小さくすることができると共に、第１の補正処理及び第２の補正処理を必要以上に実行することを防止することができる。
【００６１】
また、検出空気量に含まれる誤差（実空気量のずれの要因）のうち、スロットル制御による誤差（例えばスロットル開度のずれによる誤差）は、最初に一度補正しても、その後、システムの経時変化等によって再び大きくなる可能性がある。一方、空気量算出処理による誤差（例えば体積効率のずれによる誤差）は、最初に一度補正すれば、その後は、あまり大きくならないと考えられる。このため、第１の補正処理及び第２の補正処理を最初に１度実行した後に、第１の補正処理及び第２の補正処理を実行する際（つまり、第１の補正処理及び第２の補正処理を２度目以降に実行する際）には、スロットル制御による誤差が空気量算出処理による誤差よりも大きい可能性が高い。
【００６２】
そこで、本実施例では、第１の補正処理及び第２の補正処理を最初に１度実行した後に、第１の補正処理及び第２の補正処理を実行する際（つまり、第１の補正処理及び第２の補正処理を２度目以降に実行する際）には、スロットル制御による誤差が空気量算出処理による誤差よりも大きくなるように分割比を設定するようにしている。このようにすれば、第１の補正処理及び第２の補正処理を２度目以降に実行する際に、体積効率を必要以上に補正してしまうことを抑制することができる。
【００６３】
また、本実施例では、吸気圧の変化量が所定値以上、吸気圧と大気圧との比が所定値以上、スロットル開口面積率が所定値以下、空燃比Ｆ／Ｂ制御が停止中、目標空燃比が所定範囲外、目標空燃比の変化速度が所定値以上のうちの少なくとも一つの条件が成立したときに、第１の補正処理及び第２の補正処理を禁止するようにしている。このようにすれば、吸気量や空燃比が不安定な状態で第１の補正処理及び第２の補正処理を行うことを回避することができ、第１の補正処理及び第２の補正処理によるスロットル開度や体積効率の補正精度の悪化を未然に防止することができる。
【００６４】
更に、本実施例では、第１の補正処理の実行後に、第２の補正処理を実空気量のずれが許容上限値以下になるまで繰り返し実行するようにしている。このようにすれば、実空気量のずれを確実に小さくすることができる。
【００６５】
尚、上記実施例では、第１の補正処理の実行後に、第２の補正処理を実空気量のずれが許容上限値以下になるまで繰り返し実行するようにしているが、これに限定されず、例えば、第１の補正処理の実行後に、第２の補正処理を所定回数繰り返し実行するようにしても良い。或は、第１の補正処理の実行後に、第２の補正処理を１回だけ実行するようにしても良い。
【符号の説明】
【００６６】
１１…エンジン（内燃機関）、１６…スロットルバルブ、１９…吸気圧センサ、２４…排出ガスセンサ、３０…ＥＣＵ（空気量補正手段）
【図１】
0006361534.tif 000002
【図２】
0006361534.tif 000003
【図３】
0006361534.tif 000004