(57)【特許請求の範囲】
【請求項１】
吸気バルブを開閉することにより吸気通路から燃焼室内への空気の吸入および遮断を行う内燃機関において、前記吸気通路に配置されたセンサにより検出された吸入空気量に対応する物理量に基づいて吸入空気量を検出する内燃機関の吸入空気量検出装置であって、
内燃機関回転数、機関負荷および吸気バルブのバルブタイミングに応じて、前記吸気バルブの開弁タイミングまたは閉弁タイミングから前または後に生じる平均流量タイミングを決定するタイミング決定手段と、
該タイミング決定手段にて決定された平均流量タイミングにおいて取得された前記センサの検出値に基づいて吸入空気量を求めるサンプリング手段と、
を備えたこと特徴とする内燃機関の吸入空気量検出装置。
【請求項２】
請求項１記載の構成に対して、
内燃機関の運転状態が学習条件を満足すると、短周期に前記センサの検出値を取得し、該取得した検出値の変化状態に基づいて平均流量タイミングを判定し、該平均流量タイミングと前記タイミング決定手段にて決定された平均流量タイミングとの偏差を反映した値を学習値として記憶する学習手段と、
前記サンプリング手段にて用いられる平均流量タイミングを、前記学習手段により記憶されている学習値に基づいて補正するタイミング補正手段と、
を備えたことを特徴とする内燃機関の吸入空気量検出装置。
【請求項３】
請求項１記載の構成に対して、
内燃機関の運転状態が学習条件を満足すると、短周期に前記センサの検出値を取得し、該取得した検出値の内で平均値に該当する検出値の検出タイミングを判定し、該検出タイミングと前記タイミング決定手段にて決定された平均流量タイミングとの偏差を反映した値を学習値として記憶する学習手段と、
前記サンプリング手段にて用いられる平均流量タイミングを、前記学習手段により記憶されている学習値に基づいて補正するタイミング補正手段と、
を備えたことを特徴とする内燃機関の吸入空気量検出装置。
【請求項４】
請求項１〜３のいずれか記載の構成において、前記センサは、熱線式エアフロメータであることを特徴する内燃機関の吸入空気量検出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、吸気バルブを開閉することにより吸気通路から燃焼室内への空気の吸入および遮断を行う内燃機関において、前記吸気通路に配置されたセンサにより検出された吸入空気量に対応する物理量に基づいて吸入空気量を検出する内燃機関の吸入空気量検出装置に関する。
【０００２】
【従来の技術】
例えば、ガソリン式エンジンにおいては、所望の空燃比で燃焼させるために、燃焼室に吸入される空気量を測定する必要がある。このような測定のためのセンサとして、熱線式、ベーン式あるいはカルマン渦式といったエアフロメータが用いられている。このようなエアフロメータ以外に、吸気圧センサを設けることにより吸気圧と回転数との関係から吸入空気量を測定している場合もある。
【０００３】
内燃機関は行程変化に応じて吸気バルブを開閉動作させている。例えば、吸気行程あるいは吸気行程の直前で燃焼室内に吸気するために吸気バルブを開き、吸気通路から燃焼室内に空気を吸入させている。そして圧縮行程の初期で吸気バルブを閉じて吸気通路側に燃焼室内の気体が漏れ出さないようにしている。
【０００４】
このような吸気バルブの開閉動作により、吸気通路を流れる空気には脈動が生じる。したがって、吸入空気量を検出するために吸気通路に設けられたセンサの検出タイミングが吸気脈動のいずれの位相に存在するかにより検出値が異なる。このため、吸気脈動の内で、検出タイミングが吸入空気量が大きい位相に一致していると、実際の吸入空気量よりも大きな吸入空気量を検出するおそれがあり、逆に検出タイミングが吸入空気量が小さい位相に一致していると、実際の吸入空気量よりも小さな吸入空気量を検出するおそれがある。
【０００５】
これを解決するために、短いクランク角間隔の検出タイミングを設けて、詳細かつ多数の検出値を取得することで、検出タイミングと特定の脈動位相とが一致するのを防止するとともに、この検出値の平均値を吸入空気量に相当する検出値として用いる手法が提案されている（特開昭６２−１２３３１７号公報、特開昭５６−１０８９１２号公報）。また、短い時間周期でサンプリングして、検出値の変化が最小あるいは最大の位置を平均吸入空気量として用いることが提案されている（特開平７−１２８１０８号公報）。
【０００６】
【発明が解決しようとする課題】
しかし、上述した従来技術のごとく、短い周期でセンサにて検出し、かつこの検出値の平均値や変化を継続的に計算させることは、内燃機関の制御を実行している演算処理装置に大きな負荷をかけることになり、演算処理装置の大型化や高性能化によるコストアップを招く。
【０００７】
一方、センサの検出タイミング周期を長くしたのでは、前述したごとく検出値に対する脈動による影響が大きくなり、求められる吸入空気量が不正確なものとなる。
【０００８】
本発明は、吸入空気量のサンプリング周期を長くして演算処理装置の負荷を小さくしても、正確に吸入空気量を求めることが可能な内燃機関の吸入空気量検出装置の提供を目的とするものである。
【０００９】
【課題を解決するための手段】
以下、上記目的を達成するための手段およびその作用効果について記載する。
請求項１記載の内燃機関の吸入空気量検出装置は、吸気バルブを開閉することにより吸気通路から燃焼室内への空気の吸入および遮断を行う内燃機関において、前記吸気通路に配置されたセンサにより検出された吸入空気量に対応する物理量に基づいて吸入空気量を検出する内燃機関の吸入空気量検出装置であって、内燃機関回転数、機関負荷および吸気バルブのバルブタイミングに応じて、前記吸気バルブの開弁タイミングまたは閉弁タイミングから前または後に生じる平均流量タイミングを決定するタイミング決定手段と、該タイミング決定手段にて決定された平均流量タイミングにおいて取得された前記センサの検出値に基づいて吸入空気量を求めるサンプリング手段とを備えたこと特徴とする。
【００１０】
吸気通路における吸入空気の脈動は、吸気バルブの開閉により生じる。そして、この吸入空気の脈動状態は内燃機関の運転状態に応じて変化する。したがって、吸入空気の平均流量タイミングは、吸気バルブの開弁タイミングまたは閉弁タイミングの位置を基準としたその前後のタイミングに発生するとともに、このタイミングは内燃機関の運転状態に応じて変化する。
【００１１】
このためタイミング決定手段は、内燃機関の運転状態に応じて、吸気バルブの開弁タイミングまたは閉弁タイミングから前または後に生じる平均流量タイミングを決定することができる。
【００１２】
そして、サンプリング手段は、タイミング決定手段にて決定された平均流量タイミングにおいて取得されたセンサの検出値に基づいて吸入空気量を求めている。したがって、サンプリング手段により求められた吸入空気量は、自ずと吸入空気の平均流量を表すものとなっている。
【００１３】
このように、平均流量タイミングは、吸気バルブの開弁タイミングまたは閉弁タイミングの位置を基準としたその前後のタイミングであり、前述した従来技術の検出タイミング周期に比較して非常に長い周期となる。このため、演算処理装置に大きな負荷をかけることがなく、演算処理装置の大型化や高性能化によるコストアップを招くこともない。
【００１４】
しかも、平均流量タイミングでは、検出値そのものが吸入空気の平均流量を表す位置の検出値となっているので、吸入空気量の脈動に関わらず、正確な吸入空気量データを得ることができる。
【００１６】
より具体的には、平均流量タイミングを決定するための内燃機関の運転状態としては、内燃機関回転数および機関負荷（吸入空気量、アクセル開度、体積効率等）を挙げることができる。
【００１７】
このようにして平均流量タイミングを決定することにより、長い周期のサンプルタイミングで正確な吸入空気量データを得ることができる。
【００１８】
なお、例えば、吸気バルブのバルブタイミングが変化するような内燃機関の場合には、平均流量タイミングを決定するための内燃機関の運転状態としては、内燃機関回転数、機関負荷および吸気バルブのバルブタイミングを挙げることができる。
【００１９】
このように吸気バルブのバルブタイミングが変化するような内燃機関においても、内燃機関回転数、機関負荷および吸気バルブのバルブタイミングにより平均流量タイミングを決定することにより、長い周期のサンプルタイミングで正確な吸入空気量データを得ることができる。
【００２０】
請求項２記載の内燃機関の吸入空気量検出装置は、請求項１記載の構成に対して、内燃機関の運転状態が学習条件を満足すると、短周期に前記センサの検出値を取得し、該取得した検出値の変化状態に基づいて平均流量タイミングを判定し、該平均流量タイミングと前記タイミング決定手段にて決定された平均流量タイミングとの偏差を反映した値を学習値として記憶する学習手段と、前記サンプリング手段にて用いられる平均流量タイミングを、前記学習手段により記憶されている学習値に基づいて補正するタイミング補正手段とを備えたことを特徴とする。
【００２１】
このように、学習手段により、実際にセンサの検出値を短周期で詳細に求めて、実際の平均流量タイミングを判定することにより、タイミング決定手段にて決定された平均流量タイミングのずれを求めることができる。このずれ、すなわち平均流量タイミングの偏差を反映した値を、学習手段は学習値として記憶する。そして、タイミング補正手段は、サンプリング手段にて用いられる平均流量タイミングを学習値に基づいて補正することにより、サンプリング手段は、正確な平均流量タイミングにおいてセンサの検出値を取得でき、この検出値に基づいて正確な吸入空気量を求めることができる。
【００２２】
このように経時等により、タイミング決定手段が決定する平均流量タイミングがずれたとしても、学習値により正確な平均流量タイミングに補正されるので、正確な吸入空気量の検出を維持することができる。
【００２３】
また、学習手段は、短周期に前記センサの検出値を取得しているが、このような取得の仕方は常に行うのではなく、内燃機関の運転状態が学習条件を満足する時に限られているので、学習条件を適切に選ぶことにより、演算処理装置に大きな負荷をかけさせないようにすることができる。このため、演算処理装置の大型化や高性能化によるコストアップを招くことはない。
【００２４】
請求項３記載の内燃機関の吸入空気量検出装置は、請求項１記載の構成に対して、内燃機関の運転状態が学習条件を満足すると、短周期に前記センサの検出値を取得し、該取得した検出値の内で平均値に該当する検出値の検出タイミングを判定し、該検出タイミングと前記タイミング決定手段にて決定された平均流量タイミングとの偏差を反映した値を学習値として記憶する学習手段と、前記サンプリング手段にて用いられる平均流量タイミングを、前記学習手段により記憶されている学習値に基づいて補正するタイミング補正手段とを備えたことを特徴とする。
【００２５】
このように、学習手段により、実際にセンサの検出値を短周期で詳細に求めて、実際に平均流量となるタイミングを判定することにより、タイミング決定手段にて決定された平均流量タイミングのずれを求めることができる。このずれ、すなわち平均流量タイミングの偏差を反映した値を、学習手段は学習値として記憶する。そして、タイミング補正手段は、サンプリング手段にて用いられる平均流量タイミングを学習値に基づいて補正することにより、サンプリング手段は、正確な平均流量タイミングにおいてセンサの検出値を取得でき、この検出値に基づいて正確な吸入空気量を求めることができる。
【００２６】
このように経時等により、タイミング決定手段が決定する平均流量タイミングがずれたとしても、学習値により正確な平均流量タイミングに補正されるので、正確な吸入空気量の検出を維持することができる。
【００２７】
また、学習手段は、短周期に前記センサの検出値を取得しているが、このような取得の仕方は常に行うのではなく、内燃機関の運転状態が学習条件を満足する時に限られているので、学習条件を適切に選ぶことにより、演算処理装置に大きな負荷をかけさせないようにすることができる。このため、演算処理装置の大型化や高性能化によるコストアップを招くことはない。
【００２８】
請求項４記載の内燃機関の吸入空気量検出装置は、請求項１〜３のいずれか記載の構成において、前記センサは、熱線式エアフロメータであることを特徴する。
【００２９】
このようにセンサが熱線式エアフロメータである場合、吸気通路における吸入空気の逆流が正の流量のごとくに検出されてしまうことがあるが、このような逆流の影響は、平均流量タイミングでの検出値には影響しないので、前述した正確な吸入空気量を求めることができるという作用効果が特に顕著となる。
【００３０】
【発明の実施の形態】
［実施の形態１］
図１は、上述した発明が適用された直列６気筒ガソリンエンジン（以下、「エンジン」と略す）４およびその制御系統の概略構成を表すブロック図である。
【００３１】
エンジン４のシリンダブロック６には燃焼室を含む第１気筒８、第２気筒９、第３気筒１０、第４気筒１１、第５気筒１２および第６気筒１３が形成されている。各気筒８〜１３にはインテークマニホールド１６、サージタンク１８を介して吸気通路２０が接続されている。この吸気通路２０の上流側にはエアクリーナ２２が設けられており、このエアクリーナ２２を介して吸気通路２０内に外気が導入される。
【００３２】
インテークマニホールド１６には、各気筒８〜１３に対応してインジェクタ２４，２５，２６，２７，２８，２９がそれぞれ設けられている。このインジェクタ２４〜２９は通電制御により開閉駆動されて燃料を噴射する電磁式の燃料噴射弁であって、燃料タンク（図示略）内の燃料が燃料ポンプ（図示略）から圧送されてくる。インジェクタ２４〜２９から吸気ポート（図示略）に向けて噴射された燃料はインテークマニホールド１６からの吸入空気と混合されて混合気となる。この混合気は、各気筒８〜１３毎に設けられた吸気バルブ（図示略）が開弁することによって開かれた吸気ポートから各気筒８〜１３の燃焼室内へ導入される。空燃比フィードバック制御においては、このインジェクタ２４〜２９による燃料噴射時間の長さがフィードバック補正係数ＦＡＦに基づいて調整される。
【００３３】
吸気通路２０には吸入空気量を調節するスロットルバルブ３２がサージタンク１８の上流側に位置して設けられている。このスロットルバルブ３２は、スロットルモータ３４により駆動されることにより、その開度、即ちスロットル開度ＴＡが調節される。スロットルバルブ３２の近傍にはスロットルセンサ３６が設けられている。このスロットルセンサ３６はスロットル開度ＴＡを検出し、スロットル開度ＴＡに応じた信号を出力する。
【００３４】
また、自動車の運転室内にはアクセルペダル３８が設けられており、このアクセルペダル３８の踏込量、即ちアクセル開度ＡＣＣＰがアクセル開度センサ４０によって検出される。そして、電子制御装置（以下、「ＥＣＵ」と略す）５０はこのアクセル開度ＡＣＣＰ等に基づいてスロットルモータ３４を制御することによりスロットル開度ＴＡを運転状態に応じた開度に調節する。
【００３５】
各気筒８〜１３にはエグゾーストマニホールド６０を介して排気通路６２が接続されている。この排気通路６２には触媒コンバータ６４およびマフラ６６がそれぞれ設けられている。排気通路６２を流れる排気はこれら触媒コンバータ６４およびマフラ６６を通過して外部に排出される。
【００３６】
吸気通路２０には熱線式エアフローメータ６８が設けられている。この熱線式エアフローメータ６８は吸気通路２０を流れる吸入空気量（質量）ＧＡを測定し、吸入空気量ＧＡに応じた信号を出力する。
【００３７】
また、エンジン４のシリンダヘッド６ａには各気筒８〜１３に対応してそれぞれ点火プラグ７０，７１，７２，７３，７４，７５が設けられている。各点火プラグ７０〜７５は、イグニッションコイル７０ａ，７１ａ，７２ａ，７３ａ，７４ａ，７５ａが付属することにより、ディストリビュータを用いないダイレクトイグニッションシステムとして構成されている。各イグニッションコイル７０ａ〜７５ａは、点火時期にＥＣＵ５０内の点火駆動回路から供給される一次側電流の遮断に基づいて発生する高電圧を、直接点火プラグ７０〜７５に与えている。
【００３８】
エンジン４のシリンダブロック６には、クランク軸（図示略）に対する吸気カムシャフト（図示略）の相対位相を調整可能とする可変バルブタイミング機構（以下、「ＶＶＴ」と称する）７８が設けられている。このＶＶＴ７８は、エンジン４の運転状態に応じて吸気バルブが好適なバルブタイミングとなるように、ＥＣＵ５０によりオイルコントロールバルブ（以下、「ＯＣＶ」と称する）７８ａを介して駆動されている。
【００３９】
また、触媒コンバータ６４より上流における排気通路６２には、空燃比センサ８０が設けられている。この空燃比センサ８０は、排気の成分に現れる混合気の空燃比に応じた電圧信号Ｖｏｘを出力する。そして、ＥＣＵ５０内では、この空燃比信号Ｖｏｘや後述する平均吸入空気量ａＧＡ等に基づいて空燃比フィードバック制御がなされ、燃料噴射量の増減処理により、空燃比が目標空燃比に調整される。
【００４０】
なお、回転数センサ９０は、エンジン４のクランク軸の回転に基づいてエンジン４の回転数ＮＥに応じた頻度のパルス信号を出力する。ここでは、回転数センサ９０は、第１気筒８の上死点、すなわち、０°ＣＡ（ＣＡ：クランク角）から３０°毎にパルス信号を出力するように構成されている。
【００４１】
カム角センサ９２は、気筒判別とカム角検出のために吸気カムシャフトの回転に基づいて所定の回転毎に基準信号となるパルス信号を出力する。ＥＣＵ５０はこれら回転数センサ９０からの信号に基づいて回転数ＮＥの検出を行い、カム角センサ９２からの出力信号に基づいて気筒判別を行い、回転数センサ９０およびカム角センサ９２の両信号の関係からカム角の検出を行う。
【００４２】
また、シリンダブロック６にはエンジン冷却水温を検出するための水温センサ９４が設けられて、冷却水温ＴＨＷに応じた信号を出力する。
次に本実施の形態１における制御系統の電気的構成について図２のブロック図を参照して説明する。
【００４３】
ＥＣＵ５０は、中央処理装置（ＣＰＵ）５０ａ、読み出し専用メモリ（ＲＯＭ）５０ｂ、ランダムアクセスメモリ（ＲＡＭ）５０ｃ、およびバックアップＲＡＭ５０ｄ等を備え、これら各部５０ａ〜５０ｄと、入力回路５０ｅおよび出力回路５０ｆ等とを双方向バス５０ｇにより接続してなる論理演算回路として構成されている。ＲＯＭ５０ｂには後述する平均吸入空気量ａＧＡ検出タイミング設定処理、平均吸入空気量ａＧＡ検出処理、あるいは空燃比フィードバック制御を実現する各種制御プログラムや各種データが予め記憶されている。ＲＡＭ５０ｃには各種制御処理におけるＣＰＵ５０ａの演算結果等が一時的に記憶される。
【００４４】
また、入力回路５０ｅはバッファ、波形整形回路およびＡ／Ｄ変換器等を含んだ入力インターフェースとして構成されており、前記スロットルセンサ３６、アクセル開度センサ４０、熱線式エアフローメータ６８、空燃比センサ８０、回転数センサ９０、カム角センサ９２、水温センサ９４、各イグニッションコイル７０ａ〜７５ａの点火確認信号ＩＧｆのライン等がそれぞれ接続されている。各種センサ３６，４０，６８，８０，９０，９２，９４等の出力信号はデジタル信号に変換されて入力回路５０ｅから双方向バス５０ｇを介してＣＰＵ５０ａ等に読み込まれる。
【００４５】
一方、出力回路５０ｆは各種駆動回路等を有しており、前記インジェクタ２４〜２９、イグニッションコイル７０ａ〜７５ａ、スロットルモータ３４、ＶＶＴ用ＯＣＶ７８ａ等がそれぞれ接続されている。ＥＣＵ５０は各種センサ３６，４０，６８，８０，９０，９２，９４等からの出力信号に基づいて演算処理を行い、インジェクタ２４〜２９、イグニッションコイル７０ａ〜７５ａ、スロットルモータ３４、ＯＣＶ７８ａ等を駆動制御する。
【００４６】
本実施の形態１では、ＥＣＵ５０は熱線式エアフローメータ６８の検出値から後述するごとく算出される平均吸入空気量ａＧＡおよび回転数センサ９０により検出される回転数ＮＥ等に基づいて、インジェクタ２４〜２９による基本燃料噴射量や燃料噴射時期、イグニッションコイル７０ａ〜７５ａによる点火時期、あるいはＶＶＴ７８による吸気バルブの開閉弁タイミングを制御している。そして空燃比センサ８０により検出される空燃比に基づいて、インジェクタ２４〜２９による燃料噴射量の増減補正を実行して、混合気の空燃比を目標空燃比に精密に制御している。
【００４７】
ここで、本実施の形態１においてＥＣＵ５０により実行される燃料噴射制御処理を図３のフローチャートに示す。本燃料噴射制御処理は、一定クランク角回転毎に繰り返し実行される。本燃料噴射制御処理が開始されると、まず、回転数センサ９０の信号から得られているエンジン回転数ＮＥおよび後述する平均吸入空気量検出処理にて求められている平均吸入空気量ａＧＡがＲＡＭ５０ｃの作業領域に読み込まれる（Ｓ１１０）。
【００４８】
次に、エンジン回転数ＮＥおよび平均吸入空気量ａＧＡに基づいて、図４に示すごとくＲＯＭ５０ｂに記憶されているマップから基本燃料噴射弁開弁時間ＴＰを求める（Ｓ１２０）。図４のマップは、予め実験により、エンジン回転数ＮＥおよび平均吸入空気量ａＧＡに対応して燃焼室内に吸入される混合気が理論空燃比となるために必要な基本燃料噴射弁開弁時間ＴＰが求められてＲＯＭ５０ｂ内に設定されているものである。
【００４９】
次に、この基本燃料噴射弁開弁時間ＴＰに基づいて燃料噴射弁開弁時間ＴＡＵを次式１により演算する（Ｓ１３０）。
【００５０】
【数１】
ＴＡＵ  ←  Ｋ３・ＴＰ・｛ＦＡＦ  ＋  ＫＧ（ｍ）｝＋Ｋ４…  ［式１］
ここで、フィードバック補正係数ＦＡＦは空燃比センサ８０の出力Ｖｏｘに基づき算出される係数であり、混合気を理論空燃比にフィードバック制御するための係数である。ＫＧ（ｍ）は、「１．０」からのフィードバック補正係数ＦＡＦの偏差の状態を学習処理により得た学習値である。またＫ３およびＫ４は他の補正係数である。
【００５１】
そして、次に、燃料噴射弁開弁時間ＴＡＵを該当するインジェクタ２４〜２９の駆動回路にセットして（Ｓ１４０）、燃料噴射制御処理を一旦終了する。
次に、ＥＣＵ５０により実行されるＶＶＴ制御処理のフローチャートを図５に示す。このＶＶＴ制御処理は予め定められた制御周期（一定時間毎あるいは一定クランク角回転毎）で繰り返し実行される。
【００５２】
本ＶＶＴ制御処理が実行されると、まず、後述するごとく算出される平均吸入空気量ａＧＡと、回転数センサ９０の検出信号から得られいるエンジン回転数ＮＥを読み込む（Ｓ２１０）。
【００５３】
次に、マップｉに基づいて進角値フィードバック制御用の目標進角値θｖｔを設定する（Ｓ２２０）。ここで、マップｉは図６に示すごとく、平均吸入空気量ａＧＡとエンジン回転数ＮＥとをパラメータとする目標進角値θｖｔのマップである。このマップｉは、エンジン４に対して要求されている性能に対応して、吸気バルブの開閉弁タイミングを設定することで、バルブオーバラップを調整するためのものである。
【００５４】
次に、目標進角値θｖｔに基づいてＶＶＴ７８をフィードバック制御する（Ｓ２３０）。すなわち、回転数センサ９０およびカム角センサ９２からの検出値に基づいて、クランク軸に対する吸気カムシャフトの実進角値が計算される。そして、この実進角値に基づいて、目標進角値θｖｔに実進角値が一致するようにＯＣＶ７８ａを駆動してＶＶＴ７８による吸気カムシャフトの進角値フィードバック制御を行う。こうして一旦本処理を終了する。
【００５５】
次に、ＥＣＵ５０により実行される平均吸入空気量ａＧＡ検出タイミング設定処理のフローチャートを図７に示す。この処理は、回転数センサ９０のパルス信号の偶数個入力毎に、実行される処理である。すなわち、０°ＣＡから、６０°毎に割り込み実行される処理である。
【００５６】
平均吸入空気量ａＧＡ検出タイミング設定処理が開始されると、まず、回転数センサ９０の信号から得られているエンジン回転数ＮＥ、回転数センサ９０とカム角センサ９２との信号から得られている吸気バルブのバルブタイミング進角値θｖａ（°ＣＡ）、直前までに得られている平均吸入空気量ａＧＡ、および回転数センサ９０とカム角センサ９２との信号から得られているクランク角θｃａを、ＲＡＭ５０ｃの作業領域に読み込む（Ｓ３１０）。
【００５７】
次に、今回の処理が、第１気筒８の上死点（０°ＣＡ）を１回目として、偶数回目の割り込みに属するか否かを判定する（Ｓ３２０）。ここで、偶数回目とはクランク角θｃａでは、６０，１８０，３００，４２０，５４０，６６０°ＣＡのいずれかの場合であり、奇数回目とはクランク角θｃａでは、０，１２０，２４０，３６０，４８０，６００°ＣＡのいずれかの場合である。
【００５８】
ここで、偶数回目であれば（Ｓ３２０で「ＹＥＳ」）、次に図１０（Ａ）に示す３次元マップＡから、エンジン回転数ＮＥ、平均吸入空気量ａＧＡ（機関負荷に相当する）およびバルブタイミング進角値θｖａに基づいて後方平均流量タイミング間隔ａ（°ＣＡ）を算出する（Ｓ３３０）。
【００５９】
ここで、吸気通路２０を流れる吸入空気量ＧＡは図１２（Ａ）に実線で示すごとく脈動している。吸入空気量ＧＡの平均吸入空気量ａＧＡは破線で示すごとくである。このような吸入空気量ＧＡにおける脈動は、吸気バルブの開閉動作により生じる。したがって、各気筒８〜１３における吸気バルブの開弁タイミングθｖｏ（°ＣＡ）および閉弁タイミングθｖｃ（°ＣＡ）の前後において、吸入空気量ＧＡ＝平均吸入空気量ａＧＡとなるタイミングθａｇａ（°ＣＡ）が存在する。このタイミングθａｇａと開弁タイミングθｖｏまたは閉弁タイミングθｖｃとの間のクランク角間隔は、エンジン回転数ＮＥ、直前までの平均吸入空気量ａＧＡで表す機関負荷、および開弁タイミングθｖｏまたは閉弁タイミングθｖｃにより決定できる。
【００６０】
したがって、クランク角θｃａが、６０，１８０，３００，４２０，５４０，６６０°ＣＡのいずれかの場合には、直後に生じる開弁タイミングθｖｏに対して、図１３の拡大図に示すごとく、エンジン回転数ＮＥ、平均吸入空気量ａＧＡおよびバルブタイミング進角値θｖａに基づいて後方平均流量タイミング間隔ａ（開弁タイミングθｖｏより過去側の前記クランク角間隔に相当する）を算出することができる。なお、開弁タイミングθｖｏおよび閉弁タイミングθｖｃはバルブタイミング進角値θｖａにより決定されることから、開弁タイミングθｖｏの代わりにバルブタイミング進角値θｖａをパラメータに用いている。
【００６１】
そして、図１０（Ｂ）に示す３次元マップＢから、エンジン回転数ＮＥ、平均吸入空気量ａＧＡおよびバルブタイミング進角値θｖａに基づいて前方平均流量タイミング間隔ｂ（開弁タイミングθｖｏより未来側の前記クランク角間隔に相当する）を算出する（Ｓ３４０）。
【００６２】
こうして、直後に生じる開弁タイミングθｖｏの前後で、吸入空気量ＧＡ＝平均吸入空気量ａＧＡとなるタイミングθａｇａまでのクランク角間隔ａ，ｂが求まる。
【００６３】
次に、直後に行われる吸気バルブの開弁タイミングθｖｏを次式２のごとく求める（Ｓ３５０）。
【００６４】
【数２】
θｖｏ  ←  θＡｖ  −  θｖａ      …  ［式２］
ここで、θＡｖは、直後に開駆動される吸気バルブの最遅角状態、すなわちバルブタイミング進角値θｖａ＝０の場合の開弁タイミング（°ＣＡ）である。
【００６５】
次に、開弁タイミングθｖｏの直前でＧＡ＝ａＧＡとなるタイミングθａｇａ１を次式３に示すごとく算出する（Ｓ３６０）。
【００６６】
【数３】
θａｇａ１  ←  θｖｏ  −  ａ      …  ［式３］
更に、開弁タイミングθｖｏの直後でＧＡ＝ａＧＡとなるタイミングθａｇａ２を次式４に示すごとく算出する（Ｓ３７０）。
【００６７】
【数４】
θａｇａ２  ←  θｖｏ  ＋  ｂ      …  ［式４］
そして次に、エンジン回転数ＮＥ、現在のクランク角θｃａ、タイミングθａｇａ１を用いて、現時点からタイミングθａｇａ１に到達するまでの時間Ｔａｇａ１を算出する（Ｓ３８０）。
【００６８】
更に、エンジン回転数ＮＥ、現在のクランク角θｃａ、タイミングθａｇａ２を用いて、現時点からタイミングθａｇａ２に到達するまでの時間Ｔａｇａ２を算出する（Ｓ３９０）。
【００６９】
すなわち、エンジン回転数ＮＥにて回転した場合に、現在のクランク角θｃａからタイミングθａｇａ１，θａｇａ２まで回転するまでの時間Ｔａｇａ１，Ｔａｇａ２を推定する。
【００７０】
次に、平均吸入空気量ａＧＡ検出タイミングとして、時間Ｔａｇａ１，Ｔａｇａ２を設定する（Ｓ４００）。この設定により、時間Ｔａｇａ１，Ｔａｇａ２経過後に、後述する平均吸入空気量ａＧＡ検出処理を割り込み実行させる。こうして一旦、本処理を終了する。
【００７１】
一方、ステップＳ３２０にて、奇数回目の割り込みであると判定される（Ｓ３２０で「ＮＯ」）と、次に図１１（Ｃ）に示す３次元マップＣから、エンジン回転数ＮＥ、平均吸入空気量ａＧＡおよびバルブタイミング進角値θｖａに基づいて後方平均流量タイミング間隔ｃ（°ＣＡ）を算出する（Ｓ４１０）。
【００７２】
前述したごとくタイミングθａｇａと閉弁タイミングθｖｃとの間のクランク角間隔は、エンジン回転数ＮＥ、直前までの平均吸入空気量ａＧＡ、および閉弁タイミングθｖｃにより決定できる。
【００７３】
したがって、クランク角θｃａが、０，１２０，２４０，３６０，４８０，６００°ＣＡのいずれかの場合には、直後に生じる閉弁タイミングθｖｃに対して、図１３の拡大図に示したごとく、エンジン回転数ＮＥ、平均吸入空気量ａＧＡおよびバルブタイミング進角値θｖａに基づいて後方平均流量タイミング間隔ｃ（閉弁タイミングθｖｃから過去側の前記クランク角間隔に相当する）を算出することができる。なお、閉弁タイミングθｖｃについてもバルブタイミング進角値θｖａにより決定されることから、閉弁タイミングθｖｃの代わりにバルブタイミング進角値θｖａをパラメータに用いている。
【００７４】
そして、図１１（Ｄ）に示す３次元マップＤから、エンジン回転数ＮＥ、平均吸入空気量ａＧＡおよびバルブタイミング進角値θｖａに基づいて前方平均流量タイミング間隔ｄ（閉弁タイミングθｖｃから未来側の前記クランク角間隔に相当する）を算出する（Ｓ４２０）。
【００７５】
こうして、直後に生じる閉弁タイミングθｖｃの前後で、吸入空気量ＧＡ＝平均吸入空気量ａＧＡとなるタイミングθａｇａまでのクランク角間隔ｃ，ｄが求まる。
【００７６】
次に、直後に行われる閉弁タイミングθｖｃを次式５のごとく求める（Ｓ４３０）。
【００７７】
【数５】
θｖｃ  ←  θＢｖ  −  θｖａ      …  ［式５］
ここで、θＢｖは、直後に閉駆動される吸気バルブの最遅角状態、すなわちバルブタイミング進角値θｖａ＝０の場合の閉弁タイミング（°ＣＡ）である。
【００７８】
次に、閉弁タイミングθｖｃの直前でＧＡ＝ａＧＡとなるタイミングθａｇａ１を次式６に示すごとく算出する（Ｓ４４０）。
【００７９】
【数６】
θａｇａ１  ←  θｖｃ  −  ｃ      …  ［式６］
更に、閉弁タイミングθｖｃの直後でＧＡ＝ａＧＡとなるタイミングθａｇａ２を次式７に示すごとく算出する（Ｓ４５０）。
【００８０】
【数７】
θａｇａ２  ←  θｖｃ  ＋  ｄ      …  ［式７］
そして次に、エンジン回転数ＮＥ、現在のクランク角θｃａ、タイミングθａｇａ１を用いて、現時点からタイミングθａｇａ１に到達するまでの時間Ｔａｇａ１を算出（Ｓ３８０）し、エンジン回転数ＮＥ、現在のクランク角θｃａ、タイミングθａｇａ２を用いて、現時点からタイミングθａｇａ２に到達するまでの時間Ｔａｇａ２を算出する（Ｓ３９０）。そして、平均吸入空気量ａＧＡ検出タイミングとして、時間Ｔａｇａ１，Ｔａｇａ２を設定する（Ｓ４００）。この設定により、時間Ｔａｇａ１，Ｔａｇａ２経過後に次に述べる平均吸入空気量ａＧＡ検出処理を割り込み実行させる。こうして一旦、本処理を終了する。
【００８１】
次に、平均吸入空気量ａＧＡ検出処理について述べる、図８は、時間Ｔａｇａ１の経過後に割り込み実行される平均吸入空気量ａＧＡ検出処理のフローチャートを示している。図９は、時間Ｔａｇａ２の経過後に割り込み実行される平均吸入空気量ａＧＡ検出処理のフローチャートを示している。
【００８２】
時間Ｔａｇａ１経過後に割り込み実行される平均吸入空気量ａＧＡ検出処理（図８）では、処理が開始されると、この時に熱線式エアフローメータ６８が出力している信号により求められた吸入空気量ＧＡが、平均吸入空気量ａＧＡ１として設定される（Ｓ５１０）。そして、次の割り込みまで処理を一旦停止する。
【００８３】
時間Ｔａｇａ２経過後に割り込み実行される平均吸入空気量ａＧＡ検出処理（図９）では、処理が開始されると、まず、この時に熱線式エアフローメータ６８が出力している信号により求められた吸入空気量ＧＡが、平均吸入空気量ａＧＡ２として設定される（Ｓ６１０）。次に、次式８に示すごとく、図８の平均吸入空気量ａＧＡ検出処理にて、求められている平均吸入空気量ａＧＡ１と、ステップＳ６１０にて求められた平均吸入空気量ａＧＡ２との平均値が算出されて、平均吸入空気量ａＧＡとして設定される（Ｓ６２０）。
【００８４】
【数８】
ａＧＡ  ←  （ａＧＡ１  ＋  ａＧＡ２）／２      …  ［式８］
そして、次の割り込みまで処理を一旦停止する。
【００８５】
上述した処理により平均吸入空気量ａＧＡが検出されて、前述した燃料噴射制御処理（図３）、ＶＶＴ制御処理（図５）等において吸入空気量として用いられる。
【００８６】
上述した構成において、平均吸入空気量ａＧＡ検出タイミング設定処理（図７）がタイミング決定手段としての処理に、平均吸入空気量ａＧＡ検出処理（図８，９）がサンプリング手段に相当する。
【００８７】
以上説明した本実施の形態１によれば、以下の効果が得られる。
（イ）．平均吸入空気量ａＧＡ検出タイミング設定処理（図７）がエンジン４の運転状態に応じて、吸気バルブの開弁タイミングθｖｏまたは閉弁タイミングθｖｃから前または後に生じる平均流量タイミングθａｇａ（θａｇａ１，θａｇａ２）までの時間Ｔａｇａ１，Ｔａｇａ２を設定している。
【００８８】
そして、平均吸入空気量ａＧＡ検出処理（図８，９）は、平均吸入空気量ａＧＡ検出タイミング設定処理（図７）にて設定された時間Ｔａｇａ１，Ｔａｇａ２の経過後において取得された熱線式エアフローメータ６８の検出値ＧＡに基づいて吸入空気量を求めている。したがって、平均吸入空気量ａＧＡ検出処理（図８，９）により求められた吸入空気量ＧＡは、自ずと平均吸入空気量ａＧＡを表すものとなっている。
【００８９】
このように、時間Ｔａｇａ１，Ｔａｇａ２は、吸気バルブの開弁タイミングθｖｏまたは閉弁タイミングθｖｃの位置を基準として前後の平均流量タイミングθａｇａを決定するものであり、このタイミングは、従来技術の検出タイミング周期に比較して非常に長い周期となる。このため、ＥＣＵ５０に大きな負荷をかけることがなく、ＥＣＵ５０の大型化や高性能化によるコストアップを招くことがない。
【００９０】
しかも、こうして決定された平均流量タイミングθａｇａでは、検出値ＧＡそのものが吸入空気の平均流量ａＧＡを表しているので、吸入空気量の脈動に関わらず、正確な吸入空気量データを得ることができる。
【００９１】
（ロ）．本実施の形態１では、ＶＶＴ７８により吸気バルブの開閉弁タイミングθｖｏ，θｖｃが変化するが、エンジン回転数ＮＥ、平均吸入空気量ａＧＡおよびバルブタイミング進角値θｖａにより時間Ｔａｇａ１，Ｔａｇａ２を決定している。このため、吸気バルブのバルブタイミングの調整に対応して正確な時間Ｔａｇａ１，Ｔａｇａ２を設定でき、正確な平均吸入空気量ａＧＡを得ることができる。
【００９２】
（ハ）．なお、熱線式エアフローメータ６８は、図１４に示すごとく、吸気通路２０での吸入空気の逆流が正の流量のごとくに検出されてしまう。しかし、平均流量タイミングθａｇａは、図示するごとく、逆流が影響しない検出タイミングである。このため、吸入空気の逆流が生じても正確な平均吸入空気量ａＧＡを求めることができるという効果が特に顕著となる。
【００９３】
（ニ）．熱線式エアフローメータ６８の検出遅れを補正するために、前回の検出値と今回の検出値とに基づいて逆モデルを用いて補正する場合に、従来のように脈動に影響される検出方法では、逆モデルにて算出される吸入空気量は発散してしまう。しかし、本実施の形態１のごとく、平均流量タイミングθａｇａの検出値を用いている場合には、逆モデルを用いても吸入空気量は発散することなく得られる。
【００９４】
［実施の形態２］
本実施の形態２が前記実施の形態１と異なるのは、平均吸入空気量ａＧＡ検出タイミング設定処理（図７）の代わりに図１５に示す平均吸入空気量ａＧＡ検出タイミング設定処理が行われる点である。更に、図１６，１７，１８，１９に示すタイミング補正値学習処理が実行される点である。他の構成については、前記実施の形態１と同じである。
【００９５】
図１５の平均吸入空気量ａＧＡ検出タイミング設定処理の各処理（Ｓ７１０〜Ｓ８５０）は、ステップ番号が「４００」少ない図７の各処理（ＳＳ３１０〜Ｓ４５０）に対応し、ステップＳ７３５，Ｓ７４５，Ｓ８１５，Ｓ８２５のみ異なる。
【００９６】
ここで、ステップＳ７３０にて後方平均流量タイミング間隔ａを求めた後に行われるステップＳ７３５では、後方平均流量タイミング間隔ａを次式９に示すごとく補正する。
【００９７】
【数９】
ａ  ←  ａ  ＋  Ｋａ      …  ［式９］
ステップＳ７４０にて前方平均流量タイミング間隔ｂを求めた後に行われるステップＳ７４５では、前方平均流量タイミング間隔ｂを次式１０に示すごとく補正する。
【００９８】
【数１０】
ｂ  ←  ｂ  ＋  Ｋｂ      …  ［式１０］
ステップＳ８１０にて後方平均流量タイミング間隔ｃを求めた後に行われるステップＳ８１５では、後方平均流量タイミング間隔ｃを次式１１に示すごとく補正する。
【００９９】
【数１１】
ｃ  ←  ｃ  ＋  Ｋｃ      …  ［式１１］
ステップＳ８２０にて前方平均流量タイミング間隔ｄを求めた後に行われるステップＳ８２５では、前方平均流量タイミング間隔ｄを次式１２に示すごとく補正する。
【０１００】
【数１２】
ｄ  ←  ｄ  ＋  Ｋｄ      …  ［式１２］
上述した式９〜１２で用いられるタイミング補正値Ｋａ〜Ｋｄは、図１６〜１９に示すタイミング補正値学習処理により算出される。本タイミング補正値学習処理は、短時間周期、例えば、１ｍｓｅｃ毎に繰り返し実行される処理である。具体的には、図２０にて実線で示す吸入空気量ＧＡ線上に丸印で示すごとくの短周期のタイミングで実行される。
【０１０１】
本タイミング補正値学習処理が開始されると、まず、エンジン回転数ＮＥ、バルブタイミング進角値θｖａ、吸入空気量ＧＡ（制御周期毎に読み込まれる熱線式エアフローメータ６８の検出値）、平均吸入空気量ａＧＡ、クランク角θｃａ等のエンジン運転状態がＲＡＭの作業領域に読み込まれる（Ｓ９１０）。
【０１０２】
次に学習条件が成立しているか否かが判定される（Ｓ９２０）。ここで学習条件としては、例えば、アイドル時などのようにエンジン回転数ＮＥが比較的低回転で安定し、平均吸入空気量ａＧＡも安定し、かつ吸気通路２０内に吸気の逆流がない状態を条件として判定する。
【０１０３】
学習条件が成立していなければ（Ｓ９２０で「ＮＯ」）、学習完了フラグＦｇｅに「０」を設定する（Ｓ９３０）。次に検出値最大増加量ΔＧＡｍａｘに「０」を設定し（Ｓ９４０）、検出値最大減少量ΔＧＡｍｉｎに「０」を設定する（Ｓ９５０）。次に、ＲＡＭ内に用意されている４つのＫ１，Ｋ２，Ｋ３，Ｋ４配列の要素をクリアする（Ｓ９６０）。
【０１０４】
そして一旦、本処理を終了する。
一方、学習条件が成立すると（Ｓ９２０で「ＹＥＳ」）、学習完了フラグＦｇｅが「０」か否かが判定される（Ｓ９７０）。Ｆｇｅ＝１であれば（Ｓ９７０で「ＮＯ」）、前述したステップＳ９４０，Ｓ９５０，Ｓ９６０を実行して、一旦、本処理を終了する。
【０１０５】
Ｆｇｅ＝０であれば（Ｓ９７０で「ＹＥＳ」）、次式１３に示すごとく吸入空気量変化量ΔＧＡが算出される（Ｓ９８０）。
【０１０６】
【数１３】
ΔＧＡ  ←  ＧＡ（ｉ）  −  ＧＡ（ｉ−１）      …  ［式１３］
ここで、ＧＡ（ｉ）は今回の制御周期にて読み込まれた吸入空気量ＧＡを表し、ＧＡ（ｉ−１）は前回の制御周期にて読み込まれた吸入空気量ＧＡを表す。
【０１０７】
次に、吸入空気量変化量ΔＧＡが、検出値最大増加量ΔＧＡｍａｘより大きい値か否かが判定される（Ｓ９９０）。ここで、ΔＧＡｍａｘ＜ΔＧＡであれば（Ｓ９９０で「ＹＥＳ」）、検出値最大増加量ΔＧＡｍａｘに吸入空気量変化量ΔＧＡの値が設定される（Ｓ１０００）。
【０１０８】
次に、前記実施の形態１のステップＳ３４０（図７）と同じ処理が行われてマップＢ［図１０（Ｂ）］から前方平均流量タイミング間隔ｂが求められる（Ｓ１０１０）。更に、前記実施の形態１のステップＳ４１０（図７）と同じ処理が行われてマップＣ［図１１（Ｃ）］から後方平均流量タイミング間隔ｃが求められる（Ｓ１０２０）。
【０１０９】
次に、直前に開動作した吸気バルブの開弁タイミングθｖｏを次式１４のごとく求める（Ｓ１０３０）。
【０１１０】
【数１４】
θｖｏ  ←  θＡｖ  −  θｖａ      …  ［式１４］
ここで、θＡｖは、直前に開駆動した吸気バルブのバルブタイミング進角値θｖａ＝０の場合の開弁タイミング（°ＣＡ）である。
【０１１１】
次に、直後に閉駆動する吸気バルブの閉弁タイミングθｖｃを次式１５のごとく求める（Ｓ１０４０）。
【０１１２】
【数１５】
θｖｃ  ←  θＢｖ  −  θｖａ      …  ［式１５］
ここで、θＢｖは、直後に閉駆動する吸気バルブのバルブタイミング進角値θｖａ＝０の場合の閉弁タイミング（°ＣＡ）である。
【０１１３】
次に、算出値Ｋ２を次式１６のごとく求める（Ｓ１０５０）。
【０１１４】
【数１６】
Ｋ２  ←  （θｃａ  −  θｖｏ）  −  ｂ      …  ［式１６］
算出値Ｋ２は、直前の開弁タイミングθｖｏから現在のクランク角θｃａまでのクランク角間隔と、マップＢ［図１０（Ｂ）］から求められた前方平均流量タイミング間隔ｂとの差を表している。
【０１１５】
次に、算出値Ｋ３を次式１７のごとく求める（Ｓ１０６０）。
【０１１６】
【数１７】
Ｋ３  ←  （θｖｃ  −  θｃａ）  −  ｃ      …  ［式１７］
算出値Ｋ３は、現在のクランク角θｃａから直後の閉弁タイミングθｖｃまでのクランク角間隔と、マップＣ［図１１（Ｃ）］から求められた後方平均流量タイミング間隔ｃとの差を表している。
【０１１７】
次に、算出値Ｋ１の配列としてＲＡＭ内に設定されているＫ１配列に、後述するステップＳ１１７０で算出された算出値Ｋ１が１要素として記憶される（Ｓ１０７０）。なお、未だ、算出値Ｋ１が求められていない場合には、ステップＳ１０７０では実質的に何もなされない。
【０１１８】
次に、算出値Ｋ４の配列としてＲＡＭ内に設定されているＫ４配列に、後述するステップＳ１１８０で算出された算出値Ｋ４が１要素として記憶される（Ｓ１０８０）。なお、未だ、算出値Ｋ４が求められていない場合には、ステップＳ１０８０では実質的に何もなされない。
【０１１９】
次に、検出値最大減少量ΔＧＡｍｉｎに「０」を設定する（Ｓ１０９０）。
次に、Ｋ１配列、Ｋ２配列、Ｋ３配列およびＫ４配列の各要素数が、それぞれ基準個数Ｓ以上か否かが判定される（Ｓ１１００）。基準個数Ｓとしては、例えば「１０」が設定されている。
【０１２０】
配列の内、１つでも配列の要素数が基準個数Ｓ未満であれば（Ｓ１１００で「ＮＯ」）、このまま一旦本処理を終了する。
一方、ステップＳ９９０にて、ΔＧＡｍａｘ≧ΔＧＡ（Ｓ９９０で「ＮＯ」）である場合には、次に、吸入空気量変化量ΔＧＡが検出値最大減少量ΔＧＡｍｉｎより小さいか否かが判定される（Ｓ１１１０）。
【０１２１】
ΔＧＡｍｉｎ＞ΔＧＡであれば（Ｓ１１１０で「ＹＥＳ」）、検出値最大減少量ΔＧＡｍｉｎに吸入空気量変化量ΔＧＡの値が設定される（Ｓ１１２０）。
次に、前記実施の形態１のステップＳ３３０（図７）と同じ処理が行われてマップＡ［図１０（Ａ）］から後方平均流量タイミング間隔ａが求められる（Ｓ１１３０）。更に、前記実施の形態１のステップＳ４２０（図７）と同じ処理が行われてマップＤ［図１１（Ｄ）］から前方平均流量タイミング間隔ｄが求められる（Ｓ１１４０）。
【０１２２】
次に、直後に開駆動する吸気バルブの開弁タイミングθｖｏを次式１８のごとく求める（Ｓ１１５０）。
【０１２３】
【数１８】
θｖｏ  ←  θＡｖ  −  θｖａ      …  ［式１８］
ここで、θＡｖは、直後に開駆動する吸気バルブのバルブタイミング進角値θｖａ＝０の場合の開弁タイミング（°ＣＡ）である。
【０１２４】
次に、直前に閉動作した吸気バルブの閉弁タイミングθｖｃを次式１９のごとく求める（Ｓ１１６０）。
【０１２５】
【数１９】
θｖｃ  ←  θＢｖ  −  θｖａ      …  ［式１９］
ここで、θＢｖは、直前に閉駆動した吸気バルブのバルブタイミング進角値θｖａ＝０の場合の閉弁タイミング（°ＣＡ）である。
【０１２６】
次に、算出値Ｋ１を次式２０のごとく求める（Ｓ１１７０）。
【０１２７】
【数２０】
Ｋ１  ←  （θｖｏ  −  θｃａ）  −  ａ      …  ［式２０］
算出値Ｋ１は、現在のクランク角θｃａから直後の開弁タイミングθｖｏまでのクランク角間隔と、マップＡ［図１０（Ａ）］から求められた後方平均流量タイミング間隔ａとの差を表している。
【０１２８】
次に、算出値Ｋ４を次式２１のごとく求める（Ｓ１１８０）。
【０１２９】
【数２１】
Ｋ４  ←  （θｃａ  −  θｖｃ）  −  ｄ      …  ［式２１］
算出値Ｋ４は、直前の閉弁タイミングθｖｃから現在のクランク角θｃａまでのクランク角間隔と、マップＤ［図１１（Ｄ）］から求められた前方平均流量タイミング間隔ｄとの差を表している。
【０１３０】
次に、算出値Ｋ２の配列としてＲＡＭ内に設定されているＫ２配列に、前述したステップＳ１０５０で算出された算出値Ｋ２が１要素として記憶される（Ｓ１１９０）。なお、未だ、算出値Ｋ２が求められていない場合には、ステップＳ１１９０では何もなされない。
【０１３１】
次に、算出値Ｋ３の配列としてＲＡＭ内に設定されているＫ３配列に、前述したステップＳ１０６０で算出された算出値Ｋ３が１要素として記憶される（Ｓ１２００）。なお、未だ、算出値Ｋ３が求められていない場合には、ステップＳ１２００ては何もなされない。
【０１３２】
次に、検出値最大減少量ΔＧＡｍａｘに「０」を設定する（Ｓ１２１０）。
次に、Ｋ１配列、Ｋ２配列、Ｋ３配列およびＫ４配列の各要素数が、それぞれ基準個数Ｓ以上か否かが判定される（Ｓ１１００）。配列の内、１つでも配列の要素数が基準個数Ｓ未満であれば（Ｓ１１００で「ＮＯ」）、このまま一旦本処理を終了する。
【０１３３】
なお、ステップＳ１１１０でΔＧＡｍｉｎ≦ΔＧＡであれば（Ｓ１１１０で「ＮＯ」）、一旦、本処理を終了する。
上述した処理が繰り返されることにより、Ｋ１配列内には算出値Ｋ１が、Ｋ２配列内には算出値Ｋ２が、Ｋ３配列内には算出値Ｋ３が、Ｋ４配列内には算出値Ｋ４が、それぞれ蓄積される。
【０１３４】
そして、Ｋ１〜Ｋ４配列のすべてにおいて、基準個数Ｓ以上にデータが蓄積されると（Ｓ１１００で「ＹＥＳ」）、Ｋ１配列要素の平均値計算を行い、この平均値をタイミング補正値Ｋａとして設定する（Ｓ１２２０）。同様に、Ｋ２配列要素の平均値計算を行い、この平均値をタイミング補正値Ｋｂとして設定し（Ｓ１２３０）、Ｋ３配列要素の平均値計算を行い、この平均値をタイミング補正値Ｋｃとして設定し（Ｓ１２４０）、Ｋ４配列要素の平均値計算を行い、この平均値をタイミング補正値Ｋｄとして設定する（Ｓ１２５０）。
【０１３５】
このことにより、前述した平均吸入空気量ａＧＡ検出タイミング設定処理（図１５）のステップＳ７３５，Ｓ７４５，Ｓ８１５，Ｓ８２５において平均流量タイミング間隔ａ〜ｄがタイミング補正値Ｋａ〜Ｋｄによりそれぞれ補正される。そして、このように補正された平均流量タイミング間隔ａ〜ｄを用いて、ＧＡ＝ａＧＡとなるタイミングθａｇａ１，θａｇａ２が算出され（Ｓ７６０，Ｓ７７０，Ｓ８４０，Ｓ８５０）、時間Ｔａｇａ１，Ｔａｇａ２が設定される（Ｓ７８０，Ｓ７９０）。
【０１３６】
上述した実施の形態２の構成において、タイミング補正値学習処理（図１６〜１９）が学習手段としての処理に、平均吸入空気量ａＧＡ検出タイミング設定処理（図１５）の内のステップＳ７３５，Ｓ７４５，Ｓ８１５，Ｓ８２５がタイミング補正手段としての処理に、平均吸入空気量ａＧＡ検出タイミング設定処理（図１５）の内の他の処理がタイミング決定手段としての処理に相当する。
【０１３７】
以上説明した本実施の形態２によれば、以下の効果が得られる。
（イ）．前記実施の形態１の（イ）〜（ニ）の効果を生じる。
（ロ）．このように、タイミング補正値学習処理（図１６〜１９）にて、実際に熱線式エアフローメータ６８が検出する吸入空気量ＧＡを、図２０に丸印で示すごとく短周期で詳細に求めて、吸入空気量変化量ΔＧＡから実際の平均流量タイミングを判定している。そしてこのことにより、図１０，１１に示したマップＡ〜Ｄから求められる平均流量タイミング間隔ａ〜ｄのずれを求めることができる。このずれを、タイミング補正値Ｋａ〜Ｋｄとして記憶する。そして、平均吸入空気量ａＧＡ検出タイミング設定処理（図１５）の内のステップＳ７３５，Ｓ７４５，Ｓ８１５，Ｓ８２５にて平均流量タイミング間隔ａ〜ｄをタイミング補正値Ｋａ〜Ｋｄにて補正することにより、正確な平均流量タイミングにおいて熱線式エアフローメータ６８の検出値を取得でき、この検出値に基づいて正確な平均吸入空気量ａＧＡを得ることができる。
【０１３８】
このように経時により、マップＡ〜Ｄから決定される平均流量タイミング間隔ａ〜ｄがずれたとしても、タイミング補正値Ｋａ〜Ｋｄにより正確な平均流量タイミング間隔ａ〜ｄに補正されるので、正確な平均吸入空気量ａＧＡの検出を維持することができる。
【０１３９】
（ハ）．タイミング補正値学習処理（図１６〜１９）では、短周期に熱線式エアフローメータ６８の検出値を取得しているが、このような取得の仕方は常に行うのではなく、エンジン運転状態が学習条件を満足する時（Ｓ９２０で「ＹＥＳ」）に限られているので、学習条件を適切に選ぶことにより、ＥＣＵ５０に大きな負荷をかけさせないようにすることができる。このため、ＥＣＵ５０の大型化や高性能化によるコストアップを招くことはない。
【０１４０】
［その他の実施の形態］
・前記各実施の形態において用いられたエンジンは６気筒の内燃機関であったが、これ以外に８気筒などの６気筒を越える内燃機関にも、あるいは４気筒などの６気筒未満の内燃機関にも適用可能である。また、直列型でなくＶ型等にも適用できる。
【０１４１】
・前記各実施の形態では、エアフローメータとして熱線式（ホットワイヤ式とも言う）を用いていたが、これ以外にベーン式（フラップ式とも言う）、カルマン渦式の各種エアフローメータにも適用できる。また、吸入空気量そのものでなく、吸入空気量に対応する物理量を検出しているものでも良く、例えば吸気圧センサにより吸気圧を検出することにより空燃比制御するものについても適用できる。
【０１４２】
・前記各実施の形態では、ＶＶＴ７８が設けられていたが、ＶＶＴ７８が用いられていず、吸気バルブの開閉弁タイミングが固定されている場合には、平均流量タイミング間隔ａ〜ｄを求めるためのマップＡ〜Ｄ（図１０，１１）の代わりに、エンジン回転数ＮＥおよび平均吸入空気量ａＧＡによる２次元マップを用いる。
【０１４３】
・前記各実施の形態において、マップＡ〜Ｄから平均流量タイミング間隔ａ〜ｄを求めるためのパラメータの一つである機関負荷として、平均吸入空気量ａＧＡを用いたが、平均吸入空気量ａＧＡの代わりにアクセル開度ＡＣＣＰあるいはスロットル開度ＴＡを用いても良い。
【０１４４】
・前記各実施の形態では、平均流量タイミング間隔ａ〜ｄを求めて、これらに基づいて求められる平均吸入空気量ａＧＡの各検出タイミングにて、平均吸入空気量ａＧＡを求めていたが、平均流量タイミング間隔ａ〜ｄのすべてを計算して用いる必要はない。例えば、平均流量タイミング間隔ａ〜ｄの内の１つでも良く、あるいは２または３つでも良い。
【０１４５】
・前記実施の形態２では、平均吸入空気量ａＧＡとなる位置を判断するために、吸入空気量変化量ΔＧＡが最大値および最小値となる位置を検出したが、これ以外に、学習条件を満足すると、短周期に熱線式エアフローメータ６８の検出値を取得して平均値を算出し、取得した検出値の内で平均値に該当する検出値の位置を検出しても良い。
【０１４６】
・前記実施の形態２では、学習条件が成立すれば、その全域で吸入空気量変化量ΔＧＡが最大値および最小値となる位置を検出したが、全域でなくても良い。すなわち、開弁タイミングθｖｏから平均流量タイミング間隔ａ，ｂ離れた位置の周辺および閉弁タイミングθｖｃから平均流量タイミング間隔ｃ，ｄ離れた位置の周辺のみ、吸入空気量変化量ΔＧＡが最大値および最小値となる位置を検出するようにしても良い。このようにすることにより、ＥＣＵ５０に対する負荷を更に低減させることができる。
【図面の簡単な説明】
【図１】実施の形態１としてのエンジンおよびその制御系統の概略構成を表すブロック図。
【図２】実施の形態１の制御系統のブロック図。
【図３】実施の形態１の燃料噴射制御処理のフローチャート。
【図４】実施の形態１の燃料噴射制御処理にて基本燃料噴射弁開弁時間ＴＰを求めるためのマップの構成説明図。
【図５】実施の形態１のＶＶＴ制御処理のフローチャート。
【図６】実施の形態１における進角値フィードバック制御用の目標進角値θｖｔを設定するマップの構成説明図。
【図７】実施の形態１の平均吸入空気量ａＧＡ検出タイミング設定処理のフローチャート。
【図８】実施の形態１の平均吸入空気量ａＧＡ検出処理（Ｔａｇａ１割込）のフローチャート。
【図９】実施の形態１の平均吸入空気量ａＧＡ検出処理（Ｔａｇａ２割込）のフローチャート。
【図１０】実施の形態１にて平均流量タイミング間隔ａ，ｂを求めるためのマップＡ，Ｂの構成説明図。
【図１１】実施の形態１にて平均流量タイミング間隔ｃ，ｄを求めるためのマップＣ，Ｄの構成説明図。
【図１２】実施の形態１において各気筒の行程と吸入空気量ＧＡの脈動状態を示すグラフ。
【図１３】実施の形態１において吸気バルブの開閉弁タイミングと平均流量タイミング間隔ａ，ｂ，ｃ，ｄとの関係を示すグラフ。
【図１４】実施の形態１において吸入空気の逆流状態を示すグラフ。
【図１５】実施の形態２の平均吸入空気量ａＧＡ検出タイミング設定処理のフローチャート。
【図１６】実施の形態２のタイミング補正値学習処理のフローチャート。
【図１７】実施の形態２のタイミング補正値学習処理のフローチャート。
【図１８】実施の形態２のタイミング補正値学習処理のフローチャート。
【図１９】実施の形態２のタイミング補正値学習処理のフローチャート。
【図２０】実施の形態２において学習時における吸入空気量ＧＡの検出タイミングを示すグラフ。
【符号の説明】
４…エンジン、６…シリンダブロック、６ａ…シリンダヘッド、８…第１気筒、９…第２気筒、１０…第３気筒、１１…第４気筒、１２…第５気筒、１３…第６気筒、１６…インテークマニホールド、１８…サージタンク、２０…吸気通路、２２…エアクリーナ、２４，２５，２６，２７，２８，２９…インジェクタ、３２…スロットルバルブ、３４…スロットルモータ、３６…スロットルセンサ、３８…アクセルペダル、４０…アクセル開度センサ、５０…ＥＣＵ、５０ａ…ＣＰＵ、５０ｂ…ＲＯＭ、５０ｃ…ＲＡＭ、５０ｄ…バックアップＲＡＭ、５０ｅ…入力回路、５０ｆ…出力回路、５０ｇ…双方向バス、６０…エグゾーストマニホールド、６２…排気通路、６４…触媒コンバータ、６６…マフラ、６８…熱線式エアフローメータ、７０，７１，７２，７３，７４，７５…点火プラグ、７０ａ，７１ａ，７２ａ，７３ａ，７４ａ，７５ａ…イグニッションコイル、７８…ＶＶＴ、７８ａ…ＯＣＶ、８０…空燃比センサ、９０…回転数センサ、９２…カム角センサ、９４…水温センサ。
【図１】
0003723053.tif 000002
【図２】
0003723053.tif 000003
【図３】
0003723053.tif 000004
【図４】
0003723053.tif 000005
【図５】
0003723053.tif 000006
【図６】
0003723053.tif 000007
【図７】
0003723053.tif 000008
【図８】
0003723053.tif 000009
【図９】
0003723053.tif 000010
【図１０】
0003723053.tif 000011
【図１１】
0003723053.tif 000012
【図１２】
0003723053.tif 000013
【図１３】
0003723053.tif 000014
【図１４】
0003723053.tif 000015
【図１５】
0003723053.tif 000016
【図１６】
0003723053.tif 000017
【図１７】
0003723053.tif 000018
【図１８】
0003723053.tif 000019
【図１９】
0003723053.tif 000020
【図２０】
0003723053.tif 000021