(57)【要約】      （修正有）【課題】Dジェトロニック方式により算出した吸入空気量の学習値の更新を全運転領域で平均的に行なうことで常に真値に近い吸入空気量を検出する。【解決手段】吸気管圧力Pmに基づき一次式GAIR=α・Pm+βから吸入空気量GAIRを算出するに際し、係数α,βを、α=αo+α(k),βｅ=βo+β(k)から求める。学習値α(k)，β(k)は、空燃比フィードバック係数λが上下限リミッタλmax或いはλminに設定時間張付いており、且つエンジンが定常状態にあるとき学習され、その際λ≧λmaxのときは、学習値α(k)から設定補正値Δα0或いはΔα1を減算した値で更新し、更に学習値β(k)に設定補正値Δβ0或いはΔβ1を加算した値で更新する。又λ≦λminのときは、学習値α(k)に設定補正値Δα0或いはΔα1を加算した値で更新し、更に学習値β(k)から設定補正値Δβ0或いはΔβ1を減算した値で更新する。【選択図】図５
2004197651.tif 000002
【特許請求の範囲】
【請求項１】
スロットル弁下流の吸気管圧力を検出する吸気管圧力検出手段と、
エンジン回転数を検出するエンジン回転数検出手段と、
排気ガス中の空燃比に基づいて実際の空燃比を目標空燃比に収束させる空燃比フィードバック係数を設定する空燃比フィードバック係数設定手段と、
上記空燃比フィードバック係数とエンジン運転状態とに基づき学習更新条件を判定する学習更新条件判定手段と、
上記学習更新条件が満足されたとき上記吸気管圧力と吸入空気量との関係を示す一次式の係数を学習補正する学習値を格納する学習値テーブルをエンジン回転数に基づいて検索して当該領域に格納されている学習値を設定補正値で補正した値で更新する学習値更新手段と、
上記吸気管圧力と上記学習値とに基づき上記一次式から吸入空気量を算出する吸入空気量算出手段と、
を備えることを特徴とするエンジンの吸入空気量算出装置。
【請求項２】
上記学習値テーブルが低圧側学習値テーブルと高圧側学習値テーブルとを備え、
上記学習値更新手段は上記学習更新条件が満足されたとき、上記吸気管圧力に従って上記低圧側学習値テーブルと上記高圧側学習値テーブルとの一方を選択し、選択した学習値テーブルの各領域に格納されている学習値をエンジン回転数に基づいて検索し、検索した領域に格納されている学習値を設定補正値で補正した値で更新することを特徴とする請求項１記載のエンジンの吸入空気量算出装置。
【請求項３】
上記学習値は上記吸気管圧力と上記吸入空気量との関係を示す一次式の傾きを示す傾き係数と切片を示す切片係数とを各々補正する傾き学習値と切片学習値とを備えていることを特徴とする請求項１或いは２記載のエンジンの吸入空気量算出装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、Ｄジェトロニック方式によりスロットル弁下流の吸気管圧力とエンジン回転数とに基づいて吸入空気量を算出するエンジンの吸入空気量算出装置に関する。
【０００２】
【従来の技術】
一般に、エンジンの燃料噴射制御では、吸入空気量を吸入空気量センサの計測値に基づいて算出するＬジェトロニック方式と、スロットル弁下流の吸気管圧力に基づいて算出するＤジェトロニック方式とがある。Ｄジェトロニック方式を採用するエンジンでは、過渡応答性がよいため筒内へ実際に吸入される空気量を過渡時であっても正確に推定することができる。
【０００３】
例えば特開平８−１４４８３３号公報には、スロットル弁下流の吸気管圧力（Ｐ）と吸気温度（Ｔ）とに基づいて吸気密度（σ）を算出し、この吸気密度（σ）と行程容積（Ｄ）との積から１吸気行程当りの理論吸気量（Ｇｔｈ）を算出し、この理論吸気量（Ｇｔｈ）を変数とし、エンジン回転数に基づき一次元マップを参照して設定した体積効率（ηｖ）を傾きとし、エンジン回転数に基づき一次元マップを参照して設定した吸気損失量（ηｂ）をＸ軸切片とする一次式から筒内に供給される吸入空気量（Ｇａｉｒ：Ｇａｉｒ＝(Ｇｔｈ−ηｂ)ηｖ）を算出する技術が開示されている。
【０００４】
又、特開平１１−２９４２３１号公報には、１行程間の平均吸気圧力及び最低吸気圧力とエンジン回転数に基づき三次元マップを参照して推定吸入空気量を設定し、この推定吸入空気量と推定吸入燃料量とに基づいて推定空燃比を求め、この推定空燃比と実際の排気空燃比とのズレが小さくなるように推定吸入空気量を学習補正する技術が開示されている。
【０００５】
【特許文献１】
特開平８−１４４８３３号公報
【０００６】
【特許文献２】
特開平１１−２９４２３１号公報
【０００７】
【発明が解決しようとする課題】
特開平８−１４４８３３号公報に開示されている技術では、吸入空気量（Ｇａｉｒ）は吸気温度や大気圧等のエンジン周囲の環境変化やバルブタイミング等のエンジン自体の経時変化によって変動してしまうため、上述した一次式で推定した吸入空気量は、実際の吸入空気量に対して常にある誤差が生じてしまう問題がある。
【０００８】
又、エンジンはアイドル等の低負荷領域から高負荷領域までの広い範囲で運転が可能であるが、全ての運転領域が平均的に使用される訳ではなく、走行条件、運転者の癖等により、使用頻度の高い運転領域と低い運転領域とが生じる。
【０００９】
上述した特開平１１−２９４２３１号公報に開示されている技術では、推定吸入空気量を三次元マップを参照して設定し、この設定した推定吸入空気量を学習値で補正するようにしているため、使用頻度に応じて学習更新の頻度の多い領域と少ない領域とができてしまう。学習更新の頻度の多い領域では推定吸入空気量が実際の吸入空気量に近い値となり、一方学習更新の頻度の少ない領域では推定吸入空気量が実際の吸入空気量から離れた値となるために、排気ガス中の実際の空燃比がオーバリッチ或いはオーバリーンとなり、空燃比フィードバック制御では、実際の空燃比が目標空燃比に収束するまでに長い時間を要することとなり、空燃比制御性が悪化する不都合がある。
【００１０】
本発明は、上記事情に鑑み、Ｄジェトロニック方式により算出した吸入空気量を真値に近い値とし、又、算出した吸入空気量と実際の吸入空気量との間に誤差が発生した場合には、吸入空気量を速やかに学習補正することが可能となり良好な空燃比制御性を得ることができ、しかも、Ｄジェトロニック方式により算出した吸入空気量の学習値の更新を全運転領域においてほぼ平均的に行なうことで、良好な空燃比フィードバック制御性を得ることのできるエンジンの吸入空気量算出装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するため本発明によるエンジンの吸入空気量算出装置は、スロットル弁下流の吸気管圧力を検出する吸気管圧力検出手段と、エンジン回転数を検出するエンジン回転数検出手段と、排気ガス中の空燃比に基づいて実際の空燃比を目標空燃比に収束させる空燃比フィードバック係数を設定する空燃比フィードバック係数設定手段と、上記空燃比フィードバック係数とエンジン運転状態とに基づき学習更新条件を判定する学習更新条件判定手段と、上記学習更新条件が満足されたとき上記吸気管圧力と吸入空気量との関係を示す一次式の係数を学習補正する学習値を格納する学習値テーブルをエンジン回転数に基づいて検索して当該領域に格納されている学習値を設定補正値で補正した値で更新する学習値更新手段と、上記吸気管圧力と上記学習値とに基づき上記一次式から吸入空気量を算出する吸入空気量算出手段とを備えることを特徴とする。
【００１２】
このような構成では、学習値テーブルにはエンジン回転数に基づいて区分された領域毎に学習値が格納されており、学習更新条件が満足されたときエンジン回転数に基づいて学習値テーブルを検索し、当該領域に格納されている学習値を設定補正値で補正した値で更新する。学習値テーブルの各領域がエンジン回転数のみに基づいて区分するようにしたので、各領域の学習頻度を平均化することができる。
【００１３】
この場合、好ましくは、１）上記学習値テーブルが低圧側学習値テーブルと高圧側学習値テーブルとを備え、上記学習値更新手段は上記学習更新条件が満足されたとき、上記吸気管圧力に従って上記低圧側学習値テーブルと上記高圧側学習値テーブルとの一方を選択し、選択した学習値テーブルの各領域に格納されている学習値をエンジン回転数に基づいて検索し、検索した領域に格納されている学習値を設定補正値で補正した値で更新することを特徴とする。
【００１４】
２）上記学習値は上記吸気管圧力と上記吸入空気量との関係を示す一次式の傾きを示す傾き係数と切片を示す切片係数とを各々補正する傾き学習値と切片学習値とを備えていることを特徴とする。
【００１５】
【発明の実施の形態】
以下、図面に基づいて本発明の一実施の形態を説明する。図１にエンジンの全体構成図を示す。
【００１６】
同図の符号１は自動車等の車輌に搭載されるエンジンで、図においては、直列多気筒エンジンが示されている。このエンジン１のシリンダヘッド２に、各気筒に対応して、吸気ポート２ａと排気ポート２ｂが各々形成されている。
【００１７】
このエンジン１の吸気系は、各吸気ポート２ａに吸気マニホルド３が連通され、この吸気マニホルド３に各気筒の吸気通路が集合するエアチャンバ４を介してスロットルチャンバ５が連通され、更に、このスロットルチャンバ５の上流側に吸気管６を介してエアクリーナ７が取り付けられ、このエアクリーナ７が吸気チャンバ８に連通されている。
【００１８】
又、スロットルチャンバ５には、アクセルペダル（図示せず）と連動するスロットル弁５ａが設けられている。吸気管６には、スロットル弁５ａをバイパスするバイパス通路９が接続され、このバイパス通路９に、その弁開度によりバイパス通路９を流れるバイパス空気量を調整することでアイドル回転数を制御するアイドル回転数制御（ＩＳＣ）弁１０が介装されている。
【００１９】
ＩＳＣ弁１０は、電子制御装置（ＥＣＵ）４０により制御され、本実施の形態においては、ＥＣＵ４０から出力される駆動信号のデューティ比が大きいほど弁開度が増加して、バイパス空気量を増し、アイドル回転数を上昇させ、デューティ比が小さいほど弁開度が減少してバイパス空気量の減少によりアイドル回転数を低下させる。一方、吸気マニホルド３の各吸気ポート２ａの直上流にはインジェクタ１５が臨まされている。
【００２０】
又、このエンジン１の排気系としては、シリンダヘッド２の各排気ポート２ｂに連通する排気マニホルド１１の集合部に排気管１２が連通され、この排気管１２に、三元触媒等の触媒１３が介装されてマフラ１４に連通されている。
【００２１】
又、エンジン１には、エンジン運転状態を検出するための各種センサ類が配設されている。これらセンサ類について説明すると、スロットル弁５ａにスロットル開度センサ２１が連設され、更に、エアチャンバ４にスロットル弁５ａ下流の吸気管圧力Ｐｍを絶対圧で検出する吸気管圧力検出手段としての吸気管圧力センサ２３が連通されている。
【００２２】
又、シリンダヘッド２に形成された冷却水通路２ｃに冷却水温センサ２５が臨まされ、更に、触媒１３の上流にＯ2センサ２６が配設されている。又、クランクシャフト１７に、所定間隔毎に突起を有するシグナルロータ２７が軸着され、このシグナルロータ２７に、磁気センサ（電磁ピックアップ等）からなるクランク角センサ２８が対設されている。
【００２３】
ＥＣＵ４０では、エンジン１の運転に伴いクランク角センサ２８から出力される、シグナルロータ２７に突設されている突起を検出するクランクパルスに基づいてエンジン回転数Ｎｅ、燃料噴射タイミング及び点火タイミング等を算出する。ＥＣＵ４０は、ＩＳＣ弁１０、インジェクタ１５等のアクチュエータ類に対する制御量の演算、この制御量に対応する駆動信号の出力、すなわち、アイドル回転数制御、燃料噴射制御等のエンジン制御を行う。尚、本実施の形態においては、燃料噴射量はＤジェトロニック方式によって設定される。
【００２４】
図２に示すように、ＥＣＵ４０は、ＣＰＵ４１、ＲＯＭ４２、ＲＡＭ４３、バックアップＲＡＭ４４、カウンタ・タイマ群４５、及びＩ／Ｏインターフェイス４６がバスラインを介して互いに接続されたマイクロコンピュータを中心として構成され、その他、各部に安定化電源を供給する定電圧回路４７、Ｉ／Ｏインターフェイス４６に接続される駆動回路４８、及びＡ／Ｄ変換器４９等の周辺回路が内蔵されている。
【００２５】
尚、カウンタ・タイマ群４５は、フリーランカウンタ等の各種カウンタ、燃料噴射用タイマ、定期割込みを発生させるための定期割込み用タイマ、クランク角センサ２８から入力されるクランクパルスの入力間隔時間計時用タイマ、及びシステム異常監視用のウオッチドッグタイマ等の各種タイマを便宜上総称するものであり、その他、各種のソフトウエアカウンタ・タイマが用いられる。
【００２６】
定電圧回路４７は、電源リレー２０のリレー接点を介してバッテリ５０に接続され、このバッテリ５０に、イグニッションスイッチ５１を介して電源リレー２０のリレーコイルの一端が接続され、このリレーコイルの他端がＡ／Ｄ変換器４９に接続されている。
【００２７】
又、定電圧回路４７は、電源リレー２０のリレー接点を介してバッテリ５０に接続されているのみならず、直接、バッテリ５０に接続されており、イグニッションスイッチ５１がＯＮされて電源リレー２０のリレー接点が閉となるとＥＣＵ４０内の各部に電源を供給する一方、イグニッションスイッチ５１のＯＮ，ＯＦＦに拘らず、常時、バックアップＲＡＭ４４にバックアップ用の電源を供給する。
【００２８】
Ｉ／Ｏインターフェイス４６の入力ポートには、クランク角センサ２８等が接続されており、更に、Ａ／Ｄ変換器４９を介して、スロットル開度センサ２１、吸気管圧力センサ２３、冷却水温センサ２５、及びＯ2センサ２６が接続されていると共に、イグニッションスイッチ５１、電源リレー２０を介してのバッテリ電圧ＶBが入力されてモニタされる。
【００２９】
一方、Ｉ／Ｏインターフェイス４６の出力ポートには、ＩＳＣ弁１０、インジェクタ１５等のアクチュエータ類が駆動回路４８を介して接続されている。
【００３０】
ＣＰＵ４１では、ＲＯＭ４２に記憶されている制御プログラムに従って、Ｉ／Ｏインターフェイス４６を介して入力されるセンサ・スイッチ類からの検出信号、及びバッテリ電圧等を処理し、ＲＡＭ４３に格納される各種データ、バックアップＲＡＭ４４に格納されている各種学習値データ、及び、ＲＯＭ４２に記憶されている固定データ等に基づき、ＩＳＣ弁１０に対する駆動信号のデューティ比、燃料噴射量等を演算し、アイドル回転数制御、燃料噴射制御等のエンジン制御を行う。
【００３１】
燃料噴射制御においては、エンジン回転数Ｎｅと吸気管圧力センサ２３で検出した吸気管圧力Ｐｍとに基づき、１行程当たりの吸入空気量ＧＡＩＲを推定し、この吸入空気量ＧＡＩＲに基づいて基本燃料噴射量Ｔｐを次式から算出する。  Ｔｐ＝Ｋ・ＧＡＩＲ
尚、Ｋはインジェクタ特性補正定数である。
【００３２】
そして、この基本燃料噴射量Ｔｐを各種補正係数で、フィードフォワード補正、及びフィードバック補正を行なうことで、インジェクタ１５から噴射される最終的な燃料噴射量Ｔｉを設定する。
【００３３】
ところで、エンジン回転数Ｎｅと吸気管圧力Ｐｍとに基づいて推定される吸入空気量ＧＡＩＲは、吸気温度や大気圧等のエンジン周辺の環境変化やバルブタイミング等のエンジン自体の経時変化によって変動するため、実際の吸入空気量と算出された吸入空気量ＧＡＩＲとの誤差を修正する必要がある。
【００３４】
本実施の形態では、検出された吸気管圧力を基に吸入される空気量誤差を学習することで、上述した変動要素により、推定した吸入空気量と実際の吸入空気量との間に誤差が発生しても速やかに補正することができるようにされている。
【００３５】
以下、ＥＣＵ４０によって実行される吸入空気量ＧＡＩＲの算出処理について、図３〜図６のフローチャートに従って説明する。
【００３６】
先ず、イグニッションスイッチ５１がＯＮされて、ＥＣＵ４０に電源か投入されると、システムがイニシャライズされ、バックアップＲＡＭ４４に格納されている各種学習値等のデータを除く、各フラグ、各カウンタ類が初期化された後、図３〜図４に示す学習値更新判定ルーチンが、所定時間（例えば１０ｍｓｅｃ）毎に起動される。
【００３７】
そして、ステップＳ１で、空燃比フィードバック制御が実行されているか否かを、空燃比フィードバック制御実行フラグＦλの値を参照して判断する。この空燃比フィードバック制御実行フラグＦλの初期値は０であり、エンジン始動後、Ｏ2センサ２６が活性化して空燃比フィードバック制御が開始されたときセットされる。
【００３８】
そして、Ｆλ＝０のＯ2センサ２６が不活性のときはステップＳ１６へジャンプし、ＲＡＭ４３に格納されている学習カウンタＣ１、最大エンジン回転数Ｎｅｍａｘ、最小エンジン回転数Ｎｅｍｉｎ、最大吸気管圧力Ｐｍｍａｘ、最小吸気管圧力Ｐｍｍｉｎを各々クリアして、ルーチンを抜ける。
【００３９】
その後、Ｏ2センサ２６が活性化して、空燃比フィードバック制御実行フラグＦλがセットされると（Ｆλ←１）、ステップＳ１からステップＳ２へ進み、Ｏ2センサ２６で検出した排気ガス中の空燃比に基づいて、この空燃比を目標空燃比に収束させるために、燃料噴射制御系に設けられた空燃比フィードバック係数設定手段（図示せず）で設定する空燃比フィードバック係数λを読込み、この空燃比フィードバック係数λが制御領域内にあるか否かを、空燃比フィードバック係数λと上限リミッタλｍａｘ（例えば基本燃料噴射量Ｔｐの＋７％）及び下限リミッタλｍｉｎ（例えば基本燃料噴射量Ｔｐの−７％）とを比較することで判断し、λ≧λｍａｘの上限リミッタ側に張付いているとき、或いはλ≦λｍｉｎの下限リミッタ側に張付いているときは、空燃比フィードバック係数λが制御領域から外れていると判断し、ステップＳ３へ進み、又、λｍａｘ＞λ＞λｍｉｎの制御領域内に収っているときは、ステップＳ１６へジャンプし、上述と同様、各メモリの値を初期化した後、ルーチンを抜ける。
【００４０】
そして、ステップＳ２からステップＳ３へ進むと、学習カウンタＣ１をカウントアップし、次いで、ステップＳ４へ進み、ステップＳ４〜Ｓ７で、学習カウンタＣ１による計時中における最大エンジン回転数Ｎｅｍａｘと最小エンジン回転数Ｎｅｍｉｎとを検出する。すなわち、ステップＳ４では、今回のエンジン回転数ＮｅとＲＡＭ４３の所定アドレスに格納されている最大エンジン回転数Ｎｅｍａｘとを比較し、Ｎｅ＞Ｎｅｍａｘのときは、ステップＳ５へ進み、最大エンジン回転数Ｎｅｍａｘを今回のエンジン回転数Ｎｅで更新する（Ｎｅｍａｘ←Ｎｅ）。
【００４１】
又、Ｎｅ≦Ｎｅｍａｘのときは、ステップＳ６へ分岐し、今回のエンジン回転数ＮｅとＲＡＭ４３の所定アドレスに格納されている最小エンジン回転数Ｎｅｍｉｎとを比較し、Ｎｅ＜Ｎｅｍｉｎのときは、ステップＳ７へ進み、最小エンジン回転数Ｎｅｍｉｎを今回のエンジン回転数Ｎｅで更新する（Ｎｅｍｉｎ←Ｎｅ）。一方、Ｎｅｍｉｎ≦Ｎｅ≦Ｎｅｍａｘのときは、そのままステップＳ８へ進む。
【００４２】
そして、ステップＳ５，Ｓ７或いはＳ６からステップＳ８へ進むと、ステップＳ８〜Ｓ１１で、学習カウンタＣ１による計時中における最大吸気管圧力Ｐｍｍａｘと最小吸気管圧力Ｐｍｍｉｎとを検出する。すなわち、ステップＳ８では、今回の吸気管圧力ＰｍとＲＡＭ４３の所定アドレスに格納されている最大吸気管圧力Ｐｍｍａｘとを比較し、Ｐｍ＞Ｐｍｍａｘのときは、ステップＳ９へ進み、最大吸気管圧力Ｐｍｍａｘを今回の吸気管圧力Ｐｍで更新する（Ｐｍｍａｘ←Ｐｍ）。
【００４３】
又、Ｐｍ≦Ｐｍｍａｘのときは、ステップＳ１０へ分岐し、今回の吸気管圧力ＰｍとＲＡＭ４３の所定アドレスに格納されている最小吸気管圧力Ｐｍｍｉｎとを比較し、Ｐｍ＜Ｐｍｍｉｎのときは、ステップＳ１１へ進み、最小吸気管圧力Ｐｍｍｉｎを今回の吸気管圧力Ｐｍで更新する（Ｐｍｍｉｎ←Ｐｍ）。一方、Ｐｍｍｉｎ≦Ｐｍ≦Ｐｍｍａｘのときは、そのままステップＳ１２へ進む。
【００４４】
そして、ステップＳ９，Ｓ１１或いはＳ１０からステップＳ１２へ進むと、ステップＳ１２〜ステップＳ１４で学習更新条件を判定する。すなわち、ステップＳ１２では、学習カウンタＣ１の値と設定時間Ｃｓｔ（例えば１ｓｅｃ）とを比較して、空燃比フィードバック係数λが設定時間Ｃｓｔ以上、上限リミッタλｍａｘ或いは下限リミッタλｍｉｎに継続して張付いているか否かを調べ、Ｃ１＜Ｃｓｔのときは、計測時間内であるため、そのままルーチンを抜ける。
【００４５】
一方、Ｃ１≧Ｃｓｔのときは、空燃比フィードバック係数λが上限リミッタλｍａｘ或いは下限リミッタλｍｉｎに設定時間Ｃｓｔ以上継続して張付いており、吸気管圧力センサ２３で検出した吸気管圧力Ｐｍに基づいて設定した吸入空気量ＧＡＩＲと実際の吸入空気量との間にずれがあるために、吸入空気量ＧＡＩＲに基づいて設定した燃料噴射量Ｔｉがリッチ或いはリーン側へずれていると判断し、次のステップＳ１３，Ｓ１４で、エンジンが定常状態にあるか否かを調べた後、ステップＳ１５で、吸気管圧力Ｐｍに基づいて算出する吸入空気量ＧＡＩＲを学習補正する傾き学習値α(k)、切片学習値β(k)を更新する。
【００４６】
エンジンが定常状態にあか否かは、先ず、ステップＳ１３で、ＲＡＭ４３の所定アドレスに格納されている最大エンジン回転数Ｎｅｍａｘと最小エンジン回転数Ｎｅｍｉｎとを読込み、この両エンジン回転数Ｎｅｍａｘ，Ｎｅｍｉｎの差回転ΔＮｅ（ΔＮｅ＝Ｎｅｍａｘ−Ｎｅｍｉｎ）と許容差回転ΔＮｅｓｔ（例えば１０００ｒｐｍ）とを比較する。又、ステップＳ１４で、ＲＡＭ４３の所定アドレスに格納されている最大吸気管圧力Ｐｍｍａｘと最小吸気管圧力Ｐｍｍｉｎとを読込み、この両吸気管圧力Ｐｍｍａｘ，Ｐｍｍｉｎの差圧ΔＰｍ（ΔＰｍ＝Ｐｍｍａｘ−Ｐｍｍｉｎ）と許容差圧ΔＰｍｓｔ（例えば２０Ｋｐａ）とを比較する。
【００４７】
そして、ΔＮｅ≦ΔＮｅｓｔ、且つ、ΔＰｍ≦ΔＰｍｓｔの場合、定常状態にあると判断し、ステップＳ１５へ進み、吸気管圧力Ｐｍから吸入空気量ＧＡＩＲを算出する一次式
ＧＡＩＲ＝α(Ne)・Ｐｍ＋β(Ne)
の傾き係数α(Ne)と切片係数β(Ne)を算出する際に設定する傾き学習値α(k)、切片学習値β(k)を更新する。尚、この各学習値α(k)，β(k)は、図５に示す学習値更新ルーチンに従って更新されるもので、詳細は後述する。
【００４８】
その後、ステップＳ１６へ進み、上述と同様、各メモリの値を初期化した後、ルーチンを抜ける。
【００４９】
又、図５に、上述した学習値更新判定ルーチンのステップＳ１５で処理される学習値更新サブルーチンについて説明する。
【００５０】
このルーチンでは、先ず、ステップＳ２１で、エンジン回転数Ｎｅと吸気管圧力Ｐｍとを読込み、ステップＳ２２で、吸気管圧力Ｐｍと、高低圧を峻別する圧力判断基準値Ｐｍｓｔとを比較し、Ｐｍ≧Ｐｍｓｔの高圧のときは、ステップＳ２３へ進み、バックアップＲＡＭ４４に設けられた高圧側傾き学習値（αＨ）テーブルと高圧側切片学習値（βＨ）テーブルとをエンジン回転数Ｎｅに基づいて参照し、該当する領域に格納されている傾き学習値α(k)と切片学習値β(k)とを読込む。
【００５１】
図７（ａ）にαＨテーブルを示し、同図（ｂ）にβＨテーブルを示す。両テーブルには、エンジン回転数Ｎｅをパラメータとして、エンジン運転状態に従い経時的に更新される傾き学習値α(k)と切片学習値β(k)とが各々格納されている。尚、各テーブルに格納されている傾き学習値α(k)、切片学習値β(k)の初期値は０である。
【００５２】
又、Ｐｍ＜Ｐｍｓｔの低圧のときは、ステップＳ２４へ分岐し、バックアップＲＡＭ４４に設けられた低圧側傾き学習値（αＬ）テーブルと低圧側切片学習値（βＬ）テーブルとをエンジン回転数Ｎｅに基づいて参照し、該当する領域に格納されている傾き学習値α(k)と切片学習値β(k)とを読込む。
【００５３】
図８（ａ）にαＬテーブルを示し、同図（ｂ）にβＬテーブルを示す。両テーブルには、エンジン回転数Ｎｅをパラメータとして、エンジン運転状態に従い経時的に更新される傾き学習値α(k)と切片学習値β(k)とが各々格納されている。尚、各テーブルに格納されている傾き学習値α(k)、切片学習値β(k)の初期値は０である。
【００５４】
そして、ステップＳ２３からステップＳ２５へ進むと、空燃比フィードバック係数λを読込み、この空燃比フィードバック係数λと上限リミッタλｍａｘとを比較し、λ≧λｍａｘの空燃比フィードバック係数λが上限リミッタ側に張付いているときは、ステップＳ２６へ進み、ステップＳ２３で読込んだ傾き学習値α(k)を設定補正値Δα0で減算した値で、αＨテーブル（図７(a)参照）の該当領域に格納されている傾き学習値α(k)を更新し（α(k)←α(k)−Δα0）、更に、同じくステップＳ２３で読込んだ切片学習値β(k)を設定補正値Δβ0で加算した値で、βＨテーブル（図７(b)参照）の該当領域に格納されている切片学習値β(k)を更新し（β(k)←β(k)＋Δβ0）、ルーチンを抜ける。
【００５５】
一方、ステップＳ２５で、λ≦λｍｉｎの空燃比フィードバック係数λが下限リミッタ側に張付いているときは、ステップＳ２７へ進み、ステップＳ２３で読込んだ傾き学習値α(k)を設定補正値Δα0で加算した値で、αＨテーブル（図７(a)参照）の該当領域に格納されている傾き学習値α(k)を更新し（α(k)←α(k)＋Δα0）、更に、同じくステップＳ２３で読込んだ切片学習値β(k)を設定補正値Δβ0で減算した値で、βＨテーブル（図７(b)参照）の該当領域に格納されている切片学習値β(k)を更新し（β(k)←β(k)−Δβ0）、ルーチンを抜ける。
【００５６】
又、ステップＳ２４からステップＳ２８へ進むと、空燃比フィードバック係数λを読込み、この空燃比フィードバック係数λと上限リミッタλｍａｘとを比較し、λ≧λｍａｘの空燃比フィードバック係数λが上限リミッタ側に張付いているときは、ステップＳ２９へ進み、ステップＳ２４で読込んだ傾き学習値α(k)を設定補正値Δα1で減算した値で、αＬテーブル（図８(a)参照）の該当領域に格納されている傾き学習値α(k)を更新し（α(k)←α(k)−Δα1）、更に、同じくステップＳ２４で読込んだ切片学習値β(k)を設定補正値Δβ1で加算した値で、βＬテーブル（図８(b)参照）の該当領域に格納されている切片学習値β(k)を更新し（β(k)←β(k)＋Δβ1）、ルーチンを抜ける。
【００５７】
一方、ステップＳ２８で、λ≦λｍｉｎの空燃比フィードバック係数λが下限リミッタ側に張付いているときは、ステップＳ３０へ進み、ステップＳ２４で読込んだ傾き学習値α(k)を設定補正値Δα1で加算した値で、αＬテーブル（図８(a)参照）の該当領域に格納されている傾き学習値α(k)を更新し（α(k)←α(k)＋Δα1）、更に、同じくステップＳ２４で読込んだ切片学習値β(k)を設定補正値Δβ1で減算した値で、βＬテーブル（図８(b)参照）の該当領域に格納されている切片学習値β(k)を更新し（β(k)←β(k)−Δβ1）、ルーチンを抜ける。
【００５８】
尚、本実施の形態では、設定補正値Δα0、Δα1、或いはΔβ0，β1は固定値であるが、これらはエンジン回転数Ｎｅに基づいて設定される可変値であっても良い。
【００５９】
このように、本実施の形態では、エンジンが定常状態にあるときの空燃比フィードバック係数λが上限リミッタλｍａｘ、或いは下限リミッタλｍｉｎに設定時間Ｃｓｔ以上張付いているとき、吸気管圧力Ｐｍに応じて選択するαＨテーブル、βＨテーブル、或いはαＬテーブル、βＬテーブルに各々格納されている傾き学習値α(k)、切片学習値β(k)を、エンジン回転数Ｎｅのみをパラメータとして学習するようにしたので、各学習値テーブルの各領域の学習頻度に偏りが発生し難くなる。
【００６０】
次に、吸入空気量ＧＡＩＲの設定手順について、図６に示す吸入空気量設定ルーチンに従って説明する。
【００６１】
このルーチンでは、先ず、ステップＳ３１でエンジン回転数Ｎｅと吸気管圧力Ｐｍとを読込み、続く、ステップＳ３２で吸気管圧力Ｐｍと高低圧を峻別する圧力判断基準値Ｐｍｓｔとを比較し、Ｐｍ≧Ｐｍｓｔの高圧側にあるときは、ステップＳ３３へ進み、エンジン回転数Ｎｅに基づきαＨテーブルとβＨテーブルとを補間計算付きで各々参照して、傾き学習値α(k)と切片学習値β(k)とを各々読込み、ステップＳ３５へ進む。
【００６２】
又、Ｐｍ＜Ｐｍｓｔの低圧側にあるときは、ステップＳ３４へ進み、エンジン回転数Ｎｅに基づきαＬテーブルとβＬテーブルとを補間計算付きで各々参照して、傾き学習値α(k)と切片学習値β(k)とを各々読込み、ステップＳ３５へ進む。
【００６３】
そして、ステップＳ３３或いはＳ３４からステップＳ３５へ進むと、エンジン回転数Ｎｅに基づき、ＲＯＭ４２に格納されている基本傾き学習値（αｏ）テーブルと基本切片学習値（βｏ）テーブルとを補間計算付きで参照して、基本傾き学習値αｏと基本切片学習値βｏとを設定する。
【００６４】
このαｏテーブル、βｏテーブルには、吸気管圧力Ｐｍと実際の吸入空気との関係について、実験から平均的な傾きと切片の近似式を、エンジン回転数Ｎｅ毎に求め、そのときの傾きを基本傾き学習値αｏとしてαｏテーブルにエンジン回転数Ｎｅに基づき領域毎に記憶し、又、そのときの切片を基本切片学習値βｏとしてβｏテーブルにエンジン回転数Ｎｅに基づき領域毎に記憶させたもので、図９（ａ），（ｂ）に示すように、各テーブルには、エンジン回転数Ｎｅが高くなるに従い大きな値の基本傾き学習値αｏと基本切片学習値βｏとが記憶されている。尚、基本傾き学習値αｏの最小値は１、基本切片学習値βｏの最小値は０である。
【００６５】
次いで、ステップＳ３６へ進み、基本傾き学習値αｏに傾き学習値α(k)を加算して傾き係数α(Ne)を算出し（α(Ne)←αｏ＋α(k)）、又、基本切片学習値βｏに切片学習値β(k)を加算して切片係数β(Ne)を算出する（β(Ne)←βｏ＋β(k)）。
【００６６】
その後、ステップＳ３７へ進み、傾き係数α(Ne)と切片係数β(Ne)と吸気管圧力Ｐｍとに基づき、前述した吸気管圧力Ｐｍと吸入空気量ＧＡＩＲとの関係を示す一次式（ＧＡＩＲ←α(Ne)・Ｐｍ＋β(Ne)）から吸入空気量ＧＡＩＲを算出し、ルーチンを抜ける。
【００６７】
すると、図１０に示すように、傾き係数α(Ne)、切片係数β(Ne)で、吸気管圧力Ｐｍに比例する吸入空気量ＧＡＩＲが算出される。
【００６８】
次に、本実施の形態による傾き学習値α(k)と切片学習値β(k)との設定例を、図１１に示すタイムチャートに従い説明する。
【００６９】
エンジンが始動し、Ｏ2センサ２６が活性化して空燃比フィードバック制御が開始されると、空燃比フィードバック制御実行フラグＦλがセットされる（Ｆλ←１）。その後、空燃比フィードバック係数λが上限リミッタλｍａｘに張付くと、学習カウンタＣ１による計時が開示され、学習カウンタＣ１が設定時間Ｃｓｔに達するまでの間のエンジン回転数Ｎｅと吸気管圧力Ｐｍとの最大エンジン回転数Ｎｅｍａｘ、最小エンジン回転数Ｎｅｍｉｎと、最大吸気管圧力Ｐｍｍａｘ、最小吸気管圧力Ｐｍｍｉｎとを検出する。
【００７０】
そして、学習カウンタＣ１が設定時間Ｃｓｔに達したとき、それらの差回転ΔＮｅ（ΔＮｅ＝Ｎｅｍａｘ−Ｎｅｍｉｎ）、及び差圧ΔＰｍ（ΔＰｍ＝Ｐｍｍａｘ−Ｐｍｍｉｎ）を算出する。
【００７１】
そして、この差回転ΔＮｅが許容差回転ΔＮｅｓｔ内に収っており（ΔＮｅ≦ΔＮｅｓｔ）、且つ、差圧ΔＰｍが許容差圧ΔＰｍｓｔ内に収っている（ΔＰｍ≦ΔＰｍｓｔ）場合、エンジンが定常状態にあると判断し、そのときのエンジン回転数Ｎｅと吸気管圧力Ｐｍとを読込み、先ず吸気管圧力Ｐｍと圧力判断基準値Ｐｍｓｔとを比較し、吸気管圧力Ｐｍが低圧側にあるか高圧側にあるかを調べ、高圧側にあるときは、高圧側傾き学習値（αＨ）テーブルと高圧側切片学習値（βＨ）テーブルに格納されている基本傾き学習値αｏと基本切片学習値βｏをエンジン回転数Ｎｅに基づいて読込み、或いは吸気管圧力Ｐｍが低圧側にあるときは、エンジン回転数Ｎｅに基づき、低圧側傾き学習値（αＬ）テーブルと低圧側切片学習値（βＬ）テーブルに格納されている傾き学習値α(k)と切片学習値β(k)を読込む。
【００７２】
図に示すタイムチャートでは、空燃比フィードバック係数λが、上限リミッタλｍａｘに張付いている状態が示されているため、傾き学習値α(k)を設定補正値Δα0で減算した値で更新し（α(k)←α(k)−Δα0）、切片学習値β(k)をΔβ0で加算した値で更新する（β(k)←β(k)＋Δβ0）。
【００７３】
一方、差回転ΔＮｅが許容差回転ΔＮｅｓｔから外れている場合（ΔＮｅ＞ΔＮｅｓｔ）、或いは、差圧ΔＰｍが許容差圧ΔＰｍｓｔから外れている場合（ΔＰｍ＞ΔＰｍｓｔ）、走行状態が不安定であると判断し、各テーブルに格納されている傾き学習値α(k)と切片学習値β(k)との更新が禁止される。尚、図１１には、差圧ΔＰｍが許容差圧ΔＰｍｓｔから外れている状態のみが示されている。
【００７４】
このように、本実施の形態では、吸入空気量ＧＡＩＲを算出する一次式（ＧＡＩＲ＝α(Ne)・Ｐｍ＋β(Ne)）の傾き学習値α(k)と切片学習値β(k)とをエンジン回転数Ｎｅをパラメータとする学習値テーブルに格納するようにしたので、各領域に格納されている傾き学習値α(k)と切片学習値β(k)の学習頻度に偏りが発生し難くほぼ平均的に学習することができる。
【００７５】
従って、過渡時等、運転領域が急激に変化する場合であっても、吸気管圧力Ｐｍに基づいて真値に近い吸入空気量ＧＡＩＲを算出することができるため、空燃比フィードバック制御の収束性が良好となり、適正な空燃比制御を実行することができる。又、傾き学習値α(k)と切片学習値β(k)とを常時学習するようにしているので、大気圧等のエンジン周囲の環境変化やバルブタイミング等のエンジン自体の個体差はもとより  吸気管圧力センサ２３やＯ2センサ２６の経時劣化に対しても補償することができるため、高い信頼性を得ることができる。
【００７６】
尚、本発明は、上述した実施の形態に限るものではなく、例えば、低圧側では、切片学習値β(k)のみを学習し、又、高圧側では傾き学習値α(k)のみを学習するようにしても、真値に近い吸入空気量ＧＡＩＲが算出されることが実験から明らかにされているため、低圧側の傾き係数α(Ne)は基本傾き学習値αｏに基づいて設定し、又、高圧側の切片係数β(Ne)は基本切片学習値βｏに基づいて設定するようにしても良い。
【００７７】
【発明の効果】
以上、説明したように本発明によれば、真値に近い吸入空気量を算出することができるため、算出した吸入空気量と実際の吸入空気量との間に誤差が発生し難く、誤差が発生した場合には吸入空気量を速やかに学習補正することが可能となり、良好な空燃比制御性を得ることができる。
【００７８】
又、吸入空気量の学習を全運転領域においてほぼ平均的に行なうことができるため、良好な空燃比フィードバック制御性を得ることができる。
【図面の簡単な説明】
【図１】エンジンの全体構成図
【図２】電子制御装置の回路構成図
【図３】学習値更新判定ルーチンを示すフローチャート（その１）
【図４】学習値更新判定ルーチンを示すフローチャート（その２）
【図５】学習値更新サブルーチンを示すフローチャート
【図６】吸入空気量設定ルーチンを示すフローチャート
【図７】（ａ）高圧側傾き学習値テーブルの説明図、（ｂ）高圧側切片学習値テーブルの説明図
【図８】（ａ）定圧側傾き学習値テーブルの説明図、（ｂ）低圧側切片学習値テーブルの説明図
【図９】（ａ）基本傾き学習値テーブルの説明図、（ｂ）基本切片学習値テーブルの説明図
【図１０】吸気管圧力と吸入空気量との関係を示す説明図
【図１１】傾き学習値と切片学習値との設定例を示すタイムチャート
【符号の説明】
５ａ  スロットル弁
２３  吸気管圧力センサ（吸気管圧力検出手段）
２８  クランク角センサ（エンジン回転数検出手段）
ＧＡＩＲ  吸入空気量
Ｎｅ  エンジン回転数
Ｐｍ  吸気管圧力
αｏ  基本傾き学習値
α(k)  傾き学習値
α(Ne)  傾き係数
βｏ  基本切片学習値
β(k)  切片学習値
β(Ne)  切片係数
Δα0，Δα1，Δβ0，Δβ1  設定補正値
λ  空燃比フィードバック係数
【図１】
2004197651.tif 000003
【図２】
2004197651.tif 000004
【図３】
2004197651.tif 000005
【図４】
2004197651.tif 000006
【図５】
2004197651.tif 000007
【図６】
2004197651.tif 000008
【図７】
2004197651.tif 000009
【図８】
2004197651.tif 000010
【図９】
2004197651.tif 000011
【図１０】
2004197651.tif 000012
【図１１】
2004197651.tif 000013