(57)【特許請求の範囲】
【請求項１】
内燃機関のスロットルバルブの開度（以下「スロットル開度」という）を目標スロットル開度に制御することで、スロットル通過空気量を目標空気量に制御する内燃機関のスロットル制御装置において、
前記スロットルバルブやその周辺の吸気通路に堆積する可能性のあるデポジット量を複数のレベルに区分して各デポジット量レベルをデポジット係数で表し、各デポジット係数毎に目標空気量から目標スロットル開度を算出するための目標空気量→目標スロットル開度変換特性のデータを割り付けた第１のマップと、スロットル開度とスロットル通過空気量とに基づいて前記デポジット係数を算出するためのデータを割り付けた第２のマップとが予め記憶された不揮発性の記憶手段と、
スロットル開度が定常状態のときに検出したスロットル通過空気量とスロットル開度に基づいて前記第２のマップによりデポジット係数を算出して学習するデポジット係数学習手段と、
学習したデポジット係数と目標空気量とに基づいて前記第１のマップにより目標スロットル開度を算出する目標スロットル開度算出手段と、
前記デポジット係数学習手段によるデポジット係数の学習が終了した後に、当該デポジット係数学習時のスロットル通過空気量よりも低流量側で運転しているとき又は当該デポジット係数学習時の目標スロットル開度よりも低開度側で運転しているときに目標空気量と検出スロットル通過空気量との誤差に基づいてスロットル全閉漏れ空気量を学習する漏れ空気量学習手段と、
内燃機関の運転状態に応じて要求される要求空気量を前記スロットル全閉漏れ空気量の学習値に基づいて減量補正して目標空気量を設定する目標空気量設定手段と
を備えていることを特徴とする内燃機関のスロットル制御装置。
【請求項２】
前記デポジット係数学習手段、または、前記デポジット係数学習手段及び前記漏れ空気量学習手段による学習結果は、内燃機関の停止中でも車載バッテリをバックアップ電源として記憶データが保持されるバックアップＲＡＭに記憶され、
前記各学習手段は、それぞれ、学習の速度を変化させる手段を有し、前記バックアップ電源の供給が断たれて前記バックアップＲＡＭの記憶データが初期化された直後は、学習の速度を速めて素早く学習し、その後、学習の速度を遅くして学習値をゆっくり更新することを特徴とする請求項１に記載の内燃機関のスロットル制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スロットルバルブの周辺に堆積したデポジットによる空気量減少分を補償する機能を備えた内燃機関のスロットル制御装置に関する発明である。
【背景技術】
【０００２】
この種の内燃機関のスロットル制御装置においては、特許文献１（特許第３６９１２３８号公報）に記載されているように、内燃機関の運転条件に応じて設定した目標空気量を、目標スロットル開口面積に変換し、アイドル運転時に、機関回転速度を目標アイドル回転速度に近付けるように目標空気量をフィードバック制御する際に、目標空気量の補正分を空気量学習値として学習し、この空気量学習値と、予め記憶されたスロットルバルブの基準の汚れ状態における汚れ分による空気量減少分と、基準の汚れ状態に対応する空気量学習値とから、そのときの汚れ分（デポジット量）に対応する実汚れ分補正値を演算し、この実汚れ分補正値をスロットル開口面積補正値に変換して、このスロットル開口面積補正値で目標スロットル開口面積を補正することで、汚れ分による空気量減少分を補償するようにしたものがある。
【０００３】
しかしながら、この特許文献１の技術では、目標空気量の補正分を空気量学習値として学習する際に、要求空気量の誤差（エンジンのフリクション、補機負荷のトルクのばらつき等）の影響も空気量学習値として学習してしまうため、汚れ分（デポジット量）以外の要因による目標空気量の補正分も一緒に学習してしまい、汚れ分のみによる目標空気量の補正分を正確に学習できないという問題があった。この特許文献１には、補機負荷のトルクのばらつきの影響を排除するために、補機負荷が全てＯＦＦされた状態で目標空気量の補正分を空気量学習値として学習する実施例が記載されているが、この実施例の構成でも、エンジンのフリクションのばらつきの影響を排除できないばかりか、補機負荷が全てＯＦＦされた状態になるまで学習できないため、学習する機会が著しく少なくなって、学習値の更新が遅れがちになるという問題があった。
【０００４】
また、特許文献２（特開２００６−１３８２７０号公報）には、スロットル開度を複数の開度領域に区分して、各開度領域毎にスロットル開度から算出した空気量と検出空気量との差分を損失分として算出して、スロットル開度と損失分との関係を学習し、この学習結果に基づいて検出スロットル開度に応じた損失分を算出する技術が記載されている。
【０００５】
しかしながら、この特許文献２の技術では、スロットル開度と損失分との関係を学習する際に、スロットル開度から空気量を算出する必要があるが、スロットル開度から空気量を精度良く算出するには、吸気系モデルを用いた空気量演算等、複雑な演算を必要とするため、スロットル制御用のコンピュータの演算負荷やソフト容量が大きくなってしまうという問題があった。しかも、スロットルの漏れ空気量（スロットル全閉時の隙間から漏れる空気量）の変化を全く考慮することができず、デポジットによる損失分を精度良く学習できないという問題があった。
【特許文献１】特許第３６９１２３８号公報
【特許文献２】特開２００６−１３８２７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、特許文献１，２の技術では、(1) デポジットによる空気量減少分を精度良く学習することができず、実際のデポジット量に応じて目標スロットル開度（目標空気量）を精度良く補正できない、(2) 学習値の更新が遅れがちになる、(3) エンジン制御用のコンピュータの演算負荷・ソフト容量が大きくなるという課題があった。
【０００７】
そこで、本発明の目的は、上記課題を解決できる内燃機関のスロットル制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１に係る発明は、内燃機関のスロットルバルブの開度（以下「スロットル開度」という）を目標スロットル開度に制御することで、スロットル通過空気量を目標空気量に制御する内燃機関のスロットル制御装置において、前記スロットルバルブやその周辺の吸気通路に堆積する可能性のあるデポジット量を複数のレベルに区分して各デポジット量レベルをデポジット係数で表し、各デポジット係数毎に目標空気量（目標スロットル通過空気量）から目標スロットル開度を算出するための目標空気量→目標スロットル開度変換特性のデータを割り付けた第１のマップと、スロットル開度とスロットル通過空気量とに基づいて前記デポジット係数を算出するためのデータを割り付けた第２のマップとが予め記憶された不揮発性の記憶手段と、スロットル開度が定常状態のときに検出したスロットル通過空気量とスロットル開度に基づいて前記第２のマップによりデポジット係数を算出して学習するデポジット係数学習手段と、学習したデポジット係数と目標空気量とに基づいて前記第１のマップにより目標スロットル開度を算出する目標スロットル開度算出手段と、前記デポジット係数学習手段によるデポジット係数の学習が終了した後に、当該デポジット係数学習時のスロットル通過空気量よりも低流量側で運転しているとき又は当該デポジット係数学習時の目標スロットル開度よりも低開度側で運転しているときに目標空気量と検出スロットル通過空気量との誤差に基づいてスロットル全閉漏れ空気量を学習する漏れ空気量学習手段と、内燃機関の運転状態に応じて要求される要求空気量を前記スロットル全閉漏れ空気量の学習値に基づいて減量補正して目標空気量を設定する目標空気量設定手段とを備えた構成としたものである。
【０００９】
この構成では、デポジット量を複数のレベルに区分して各デポジット量レベルをデポジット係数で表し、各デポジット係数毎に目標空気量（目標スロットル通過空気量）から目標スロットル開度を算出する第１のマップと、スロットル開度とスロットル通過空気量とに基づいて前記デポジット係数を算出する第２のマップとを使用するが、これら２つのマップは、予め実機データに基づいて全域で精度良く作成できるため、スロットル開度が定常状態のときに検出したスロットル通過空気量とスロットル開度に基づいて前記第２のマップによりデポジット係数を全域で精度良く学習することができる。これにより、要求空気量の誤差（エンジンのフリクション、補機負荷のトルクのばらつき等）やスロットルの漏れ空気量の影響を排除したデポジット係数を全域で精度良く学習することができる。
【００１０】
しかも、精度の良いデポジット係数と目標空気量とに基づいて前記第１のマップにより目標スロットル開度を精度良く算出することができ、実際のデポジット量による空気量損失分を精度良く補償する目標スロットル開度を設定することができる。更に、スロットル開度が定常状態のときにデポジット係数を学習できるため、内燃機関の運転中にデポジット係数を学習する機会を容易に確保することができ、デポジット量の変化に追従してデポジット係数の学習値を更新できる。更に、第１のマップと第２のマップは、予め実機データに基づいて全域で精度良く作成できるため、スロットル制御中に複雑な吸気系モデルを用いて空気量を演算する必要がなく、スロットル制御用のコンピュータの演算負荷軽減、ソフト容量削減の要求を満たすことができる。
【００１１】
更に、請求項１に係る発明では、前記デポジット係数学習手段によるデポジット係数の学習が終了した後に、当該デポジット係数学習時のスロットル通過空気量よりも低流量側で運転しているとき又は当該デポジット係数学習時の目標スロットル開度よりも低開度側で運転しているときに目標空気量と検出スロットル通過空気量との誤差に基づいてスロットル全閉漏れ空気量を学習する漏れ空気量学習手段と、内燃機関の運転状態に応じて要求される要求空気量（要求筒内充填空気量）を前記スロットル全閉漏れ空気量の学習値に基づいて減量補正して目標空気量（目標スロットル通過空気量）を設定する目標空気量設定手段とを備えた構成としている。ここで、スロットル全閉漏れ空気量の学習領域を、デポジット係数学習時の目標スロットル開度（スロットル通過空気量）よりも低開度側（低流量側）の領域に限定する理由は、この低開度側（低流量側）の領域では、スロットル通過空気量が少なくなるため、デポジット係数の学習精度が低下する反面、スロットル全閉漏れ空気量の影響が相対的に大きくなってスロットル全閉漏れ空気量を学習しやすくなるためである。これにより、スロットル全閉漏れ空気量を精度良く学習して目標空気量に反映させることができ、実際のデポジット量による空気量損失分とスロットル全閉漏れ空気量の両方を考慮した目標空気量を設定することができる。
【００１２】
また、請求項２のように、前記デポジット係数学習手段、または、前記デポジット係数学習手段及び前記漏れ空気量学習手段による学習結果を、内燃機関の停止中でも車載バッテリをバックアップ電源として記憶データが保持されるバックアップＲＡＭに記憶しておき、前記バックアップ電源の供給が断たれて前記バックアップＲＡＭの記憶データが初期化（いわゆるバッテリクリア）された直後は、学習の速度を速めて素早く学習し、その後、学習の速度を遅くして学習値をゆっくり更新するようにすると良い。このようにすれば、バックアップＲＡＭのバッテリクリア直後に早期に学習値を使用できる状態に復帰させることができる。しかも、デポジット量は短時間で変化するものではなく、比較的長い時間をかけてゆっくり変化していくことを考慮して、バッテリクリア直後に早期にデポジット係数を学習した後は、デポジット係数の学習速度を遅くして学習頻度を低下させるため、デポジット係数の学習に要する演算負荷を軽減できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態を具体化した一実施例を説明する。
まず、図１に基づいて内燃機関であるエンジン１１の制御システム全体の概略構成を説明する。
【００１４】
エンジン１１の吸気管１２の上流側にはエアクリーナ１３が装着され、その下流側には吸気量qafs（正確にはスロットルバルブ１５の開口を通過するスロットル通過空気量qthrと漏れ空気量qleak との合計流量）を計測するエアフロメータ１４が設置されている。このエアフロメータ１４の下流側には、スロットルバルブ１５が設けられ、このスロットルバルブ１５の回動軸１５ａにＤＣモータ等のモータ１７（スロットルアクチュエータ）が連結されている。そして、このモータ１７の駆動力によってスロットルバルブ１５の開度（以下単に「スロットル開度」という）が制御され、このスロットル開度がスロットル開度センサ１８によって検出される。
【００１５】
この場合、アイドル運転時も、モータ１７の駆動力によってスロットル開度を制御し、それによって、アイドル運転時の吸入空気量を制御してエンジン回転速度を目標アイドル回転速度に一致させるようにフィードバック制御するアイドル回転速度制御（ＩＳＣ）を実行する。
【００１６】
一方、スロットルバルブ１５の下流側には、吸気圧を検出する吸気圧センサ１６が設置されている。また、スロットルバルブ１５を通過した吸入空気をエンジン１１の各気筒に導入する吸気マニホールド１９の吸気ポート近傍には、燃料噴射弁２０が取り付けられている。
【００１７】
また、エンジン１１の各気筒のシリンダヘッドには点火プラグ２１が取り付けられている。エンジン１１のクランク軸２２に嵌着されたシグナルロータ２３の外周に対向してクランク角センサ２４が設置され、このクランク角センサ２４から出力されるエンジン回転速度信号Ｎｅのパルスがエンジン制御用の電子制御ユニット（以下「エンジンＥＣＵ」という）２５に取り込まれ、このエンジン回転速度信号Ｎｅの発生周波数（パルス間隔）によってエンジン回転速度が検出される。
【００１８】
一方、アクセルペダル２６の踏込量（アクセル操作量）がアクセルセンサ２７によって検出され、このアクセル操作量に応じた電圧信号がエンジンＥＣＵ２５にＡ／Ｄ変換器２８を介して取り込まれる。また、エアフローメータ１４、吸気圧センサ１６、スロットル開度センサ１８等の各種センサの出力も、エンジンＥＣＵ２５にＡ／Ｄ変換器２８を介して取り込まれる。
【００１９】
このエンジンＥＣＵ２５は、ＣＰＵ２９、ＲＯＭ３０（不揮発性の記憶手段）、ＲＡＭ３１、バックアップＲＡＭ３２（書き換え可能な不揮発性メモリ）等を備えたマイクロコンピュータを主体として構成され、ＲＯＭ３０に記憶されているエンジン制御用の各種プログラムをＣＰＵ２９で実行することで、インジェクタ駆動回路３４を介して燃料噴射弁２０を駆動して燃料噴射量を制御すると共に、点火装置（図示せず）を制御して点火プラグ２１の点火時期を制御する。
【００２０】
更に、エンジンＥＣＵ２５は、スロットル制御手段としても機能し、アクセル操作量やエンジン運転状態等に応じて設定された目標スロットル開度に応じてモータ駆動回路３３を介してモータ１７をＰＩＤ制御等により制御し、このモータ１７の駆動力によってスロットル開度を目標スロットル開度にフィードバック制御する。尚、エンジンＥＣＵ２５は、１つのＣＰＵ２９で構成しても良いし、複数のＣＰＵで構成しても良く、燃料噴射・点火制御等を行うＣＰＵとは別のＣＰＵでスロットル制御を行うようにしても良い。
【００２１】
ところで、アイドル回転速度制御領域（ＩＳＣ制御領域）では、スロットルバルブ１５を通過するスロットル通過空気量が少なくなるため、スロットルバルブ１５やその周辺の吸気通路に堆積したデポジット（堆積物）によるスロットル通過空気量の減少分の影響が相対的に大きくなる。
【００２２】
そこで、本実施例では、スロットルバルブ１５やその周辺の吸気通路に堆積する可能性のあるデポジット量を複数のレベルに区分して、各デポジット量レベルをデポジット係数kdepo （例えば、kdepo ＝１．０、１．１、１．２、……）で表し、図２に示すように、各デポジット係数kdepo 毎に目標空気量qisc（目標スロットル通過空気量）から目標スロットル開度thriscを算出するための目標空気量→目標スロットル開度変換特性のデータを割り付けた第１のマップ［thrisc＝ｆ1(qisc，kdepo)］と、図３に示すように、スロットル開度thriscとスロットル通過空気量qthrとに基づいてデポジット係数kdepo を算出するためのデータを割り付けた第２のマップ［kdepo ＝ｆ2(thrisc，qthr) ］がＲＯＭ３０に記憶されている。
【００２３】
これら第１のマップと第２のマップは、予め、実機試験で各デポジット量レベル（デポジット係数kdepo ）毎にスロットル開度とスロットル通過空気量との関係を計測して作成されている。図２、図３の例では、デポジット係数kdepo とデポジット量との関係は、デポジット量が多くなるほど、デポジット係数kdepo が小さくなるように設定されているが、これとは反対に、デポジット量が多くなるほど、デポジット係数kdepo が大きくなるように設定しても良い。
【００２４】
エンジンＥＣＵ２５は、後述する図４及び図５に示すデポジット学習制御プログラムを実行することで、アイドル回転速度制御（ＩＳＣ）中にスロットル開度が定常状態のときに、エアフロメータ１４で計測した吸気量qafsに基づいて検出したスロットル通過空気量qthrと、スロットル開度センサ１８で検出したスロットル開度（定常状態では検出スロットル開度＝目標スロットル開度thriscとなるため目標スロットル開度thriscを用いても良い）に基づいて図３の第２のマップによりデポジット係数kdepo を算出して学習するデポジット係数学習手段として機能すると共に、学習したデポジット係数kdepo と目標空気量qiscとに基づいて図２の第１のマップにより新たな目標スロットル開度thriscを算出する目標スロットル開度算出手段として機能する。
【００２５】
更に、エンジンＥＣＵ２５は、デポジット係数kdepo の学習が終了した後に、当該デポジット係数kdepo の学習時の目標スロットル開度thrisclnよりも所定値以上低開度側で運転しているときに、目標空気量qisc（目標スロットル通過空気量）と検出スロットル通過空気量qthrとの誤差に基づいてスロットル全閉漏れ空気量qleak を学習する漏れ空気量学習手段として機能すると共に、エンジン運転状態に応じて要求される要求空気量qidl（要求筒内充填空気量）を前記スロットル全閉漏れ空気量qleak の学習値に基づいて減量補正して目標空気量qisc（目標スロットル通過空気量）を設定する目標空気量設定手段として機能する。ここで、スロットル全閉漏れ空気量qleak は、スロットル全閉時の漏れ空気量である。
【００２６】
また、エンジンＥＣＵ２５は、デポジット係数kdepo の学習結果を、エンジン停止中でも車載バッテリ（図示せず）をバックアップ電源として記憶データが保持されるバックアップＲＡＭ３２に記憶しておき、前記バックアップ電源の供給が断たれてバックアップＲＡＭ３２の記憶データが初期化（いわゆるバッテリクリア）された直後は、学習速度を速めてデポジット係数kdepo を素早く学習し、その後、学習速度を遅くしてデポジット係数kdepo の学習値をゆっくり更新するようにしている。これは、デポジット量は短時間で変化するものではなく、比較的長い時間をかけてゆっくり変化していくことを考慮したものである。
【００２７】
以上説明したデポジット係数kdepo の学習制御は、エンジンＥＣＵ２５によって図４及び図５のデポジット学習制御プログラムに従って次のように実行される。本プログラムはエンジン運転中に所定周期で繰り返し実行される。本プログラムが起動されると、まず、ステップ１０１で、バックアップＲＡＭ３２の記憶データがバッテリクリアされているか否かを判定し、バッテリクリアされていれば、ステップ１０２に進み、初期設定処理を実行して、バックアップＲＡＭ３２に記憶するスロットル全閉漏れ空気量qleak とデポジット係数kdepo の学習値をそれぞれ初期値KQINI1，KDINI2にセットすると共に、デポジット係数学習履歴フラグxdepolrnを未学習を意味する「０」にセットして、次のステップ１０３に進む。尚、各学習値の初期値KQINI1，KDINI2は、例えば、設計中央値、実機データの中央値等に設定されている。
【００２８】
一方、バックアップＲＡＭ３２の記憶データがバッテリクリアされていなければ、上記ステップ１０２の初期設定処理を行わずに、ステップ１０３に進む。
【００２９】
このステップ１０３では、ＩＳＣ実行条件が成立しているか否か、例えばスロットル全閉（アクセル全閉）で且つエンジン回転速度が所定値以下であるか否かで判定し、ＩＳＣ実行条件が成立していなければ、以降の処理を行うことなく、本プログラムを終了する。      
【００３０】
これに対して、上記ステップ１０３で、ＩＳＣ実行条件が成立していると判定されれば、ステップ１０４に進み、アイドル時に要求される要求空気量qidl（要求筒内充填空気量）を演算する。この要求空気量qidlは、エンジン回転速度を目標アイドル回転速度に一致させるのに必要な筒内充填空気量に相当する。
【００３１】
この後、ステップ１０５に進み、上記要求空気量qidlからバックアップＲＡＭ３２に記憶されているスロットル全閉漏れ空気量qleak の学習値を引き算して目標空気量qisc（目標スロットル通過空気量）を求める。
qisc＝qidl−qleak
【００３２】
この後、ステップ１０６に進み、ＲＯＭ３０に記憶されている図２の第１のマップを参照して、現在のデポジット係数kdepo の学習値に対応する目標空気量→目標スロットル開度変換特性を用いて、現在の目標空気量qiscを目標スロットル開度thriscに変換する。この際、図２の第１のマップにおいて、現在のデポジット係数kdepo の学習値が各デポジット係数マップ値間の中間領域に存在する場合（例えば１．０＜kdepo ＜１．１の場合）には、補間演算により目標スロットル開度thriscを算出する。
【００３３】
この後、ステップ１０７に進み、目標スロットル開度thriscに応じてモータ１７をフィードバック制御して、スロットル開度を目標スロットル開度thriscにフィードバック制御する。
【００３４】
そして、次のステップ１０８で、学習実行条件が成立しているか否かを、例えば次の条件(1) 〜(4) を全て満たすか否かで判定する。
(1) アクセル全閉であること（アクセル操作量からの要求スロットル開度＝０であること）
(2) 目標スロットル開度thriscが安定していること（定常状態であること）
(3) エンジン回転速度が安定していること（定常状態であること）
(4) 吸気管負圧（大気圧との差圧）が所定値以上であること
【００３５】
ここで、条件(1) は、デポジット堆積による制御性への影響を最も受けやすいＩＳＣ制御領域でデポジット係数kdepo とスロットル全閉漏れ空気量qleak を学習するのに必要な条件であり、条件(2),(3) は、スロットルバルブ１５の開口を通過するスロットル通過空気量が安定するのに必要な条件である。条件(4) は、吸気管負圧（大気圧との差圧）が小さくなり過ぎると、スロットル通過空気量qthrが少なくなり過ぎてスロットル通過空気量qthrの検出精度を確保できないためである。
【００３６】
上記４つの条件(1) 〜(4) のうち、いずれか１つでも満たさない条件があれば、学習実行条件が不成立となり、以降の処理を行うことなく、本プログラムを終了する。
【００３７】
これに対して、上記４つの条件(1) 〜(4) を全て満たせば、学習実行条件が成立して、図５のステップ１０９に進み、エアフロメータ１４で計測した吸気量qafsからバックアップＲＡＭ３２に記憶されているスロットル全閉漏れ空気量qleak の学習値を引き算して、現在のスロットル開度で流れるスロットル通過空気量qthrを求める。
qthr＝qafs−qleak
【００３８】
この後、ステップ１１０に進み、ＲＯＭ３０に記憶されている図３の第２のマップを参照して、現在の目標スロットル開度thrisc（又は検出スロットル開度）とスロットル通過空気量qthrとの関係を満たす仮デポジット係数kdepotmpを算出する。この際、図３の第２のマップにおいて、現在のスロットル通過空気量qthrが各スロットル通過空気量マップ値間の中間領域に存在する場合（例えば８０＜qthr＜１２０の場合）には、補間演算により仮デポジット係数kdepotmpを算出する。
【００３９】
そして、次のステップ１１１で、目標空気量qiscからスロットル通過空気量qthrを引き算して空気量誤差delthrq を求める。
delthrq ＝qisc−qthr
【００４０】
この後、ステップ１１２に進み、デポジット係数kdepo の学習履歴があるか否かを、バックアップＲＡＭ３２に記憶されているデポジット係数学習履歴フラグxdepolrnが「１」であるか否かを判定して、デポジット係数kdepo の学習履歴が無い場合（xdepolrn＝０の場合）には、ステップ１１３に進み、デポジット係数kdepo の学習速度ndepoln とスロットル全閉漏れ空気量qleak の学習速度nleakln をそれぞれ初期値KD1 ，KL1 に設定する。このステップ１１３で更新される各データは、バックアップＲＡＭ３２に記憶される。
【００４１】
各学習速度ndepoln ，nleakln は、学習値を演算するなまし式のなまし係数に相当し、０＜ndepoln ≦１．０、０＜nleakln ≦１．０の範囲で、デポジット係数kdepo の学習履歴の有無に応じて可変設定される。各学習速度ndepoln ，nleakln の初期値KD1 ，KL1 は学習履歴無しの場合の学習速度ndepoln ，nleakln であり、学習履歴有りの場合よりも大きな値（例えば、KD1 ＝１．０，KL1 ＝１．０）に設定され、それによって、バックアップＲＡＭ３２の記憶データがバッテリクリアされた直後は、学習速度ndepoln ，nleakln が速められて学習値が素早く学習されるようになっている。
【００４２】
この後、ステップ１１４に進み、前回のデポジット係数学習値kdepo[i-1]と上記ステップ１１０で算出した仮デポジット係数kdepotmpと学習速度ndepoln （なまし係数）を用いて、今回のデポジット係数学習値kdepo を次のなまし式により算出して学習し、その学習値をバックアップＲＡＭ３２に更新記憶する。
kdepo ＝kdepo[i-1]＋（kdepotmp−kdepo[i-1]）×ndepoln
【００４３】
この後、ステップ１１５に進み、学習済み処理を実行して、デポジット係数kdepo の学習速度ndepoln を初期値KD1 よりも小さい値KD2 （例えば０．２）に設定し、２回目以降の学習速度ndepoln を遅くしてデポジット係数kdepo の学習値をゆっくり更新させるようにすると共に、デポジット係数学習履歴フラグxdepolrnを学習済みを意味する「１」にセットし、更に、今回の目標スロットル開度thriscのデータを前回の目標スロットル開度thrisclnとして記憶する。このステップ１１５で更新される各データは、バックアップＲＡＭ３２に更新記憶される。
【００４４】
以上のようにして、デポジット係数学習履歴フラグxdepolrnが「１」にセットされた後は、バックアップＲＡＭ３２の記憶データがバッテリクリアされない限り、本プログラムが起動される毎に、ＩＳＣ実行条件と学習実行条件が成立している期間に、上記ステップ１０４〜１１１の処理を実行して、上記ステップ１０３で「Ｙｅｓ」と判定されて、ステップ１１６に進み、今回の目標スロットル開度thriscが前回のデポジット係数学習時の目標スロットル開度thrisclnよりも所定開度KT1 以上低開度側であるか否かを判定する。その結果、前回のデポジット係数学習時の目標スロットル開度thrisclnよりも所定開度KT1 以上低開度側でないと判定されれば、ステップ１１４に進み、前回のデポジット係数学習値kdepo[i-1]と上記ステップ１１０で算出した仮デポジット係数kdepotmpと学習速度ndepoln （なまし係数）を用いて、今回のデポジット係数学習値kdepo をなまし式により算出して、バックアップＲＡＭ３２に更新記憶する。
【００４５】
この場合、上記ステップ１１５の学習済み処理により２回目以降の学習速度ndepoln は初期値KD1 よりも小さい値KD2 （例えば０．２）に設定されるため、２回目以降の学習では、デポジット係数kdepo の学習値はゆっくり更新される。
【００４６】
一方、上記ステップ１１６で、今回の目標スロットル開度thriscが前回のデポジット係数学習時の目標スロットル開度thrisclnよりも所定開度KT1 以上低開度側であると判定されれば、ステップ１１７に進み、前回のスロットル全閉漏れ空気量学習値qleak[i-1]と空気量誤差delthrq と学習速度nleakln （なまし係数）を用いて、今回のスロットル全閉漏れ空気量qleak の学習値を次式により算出して、その学習値をバックアップＲＡＭ３２に更新記憶する。
qleak ＝qleak[i-1]−delthrq ×nleakln
【００４７】
この場合、スロットル全閉漏れ空気量qleak の学習領域を、前回のデポジット係数学習時の目標スロットル開度thrisclnよりも所定開度KT1 以上低開度側の領域に限定する理由は、この低開度側の領域ではスロットル通過空気量qthrが少なくなるため、デポジット係数kdepo の学習精度が低下すると共に、スロットル全閉漏れ空気量qleak の影響が相対的に大きくなってスロットル全閉漏れ空気量qleak を学習しやすくなるためである。
【００４８】
尚、スロットル全閉漏れ空気量qleak の学習領域を、前回のデポジット係数学習時のスロットル通過空気量qthrよりも所定値以上低流量側の領域に限定するようにしても良く、この場合でも、本実施例と同等の処理を行うことができる。
【００４９】
スロットル全閉漏れ空気量qleak の学習後に、ステップ１１８に進み、学習済み処理を実行して、スロットル全閉漏れ空気量qleak の学習速度nleakln を初期値KL1 よりも小さい値KL2 （例えば０．２）に設定して本プログラムを終了する。
【００５０】
以上説明した本実施例によれば、スロットルバルブ１５やその周辺の吸気通路に堆積する可能性のあるデポジット量を複数のレベルに区分して、各デポジット量レベルをデポジット係数kdepo で表し、図２に示すように、各デポジット係数kdepo 毎に目標空気量qiscから目標スロットル開度thriscを算出するための目標空気量→目標スロットル開度変換特性のデータを割り付けた第１のマップと、図３に示すように、スロットル開度thriscとスロットル通過空気量qthrとに基づいてデポジット係数kdepo を算出するためのデータを割り付けた第２のマップとを使用するが、これら２つのマップは、予め実機データに基づいて全域で精度良く作成できるため、スロットル開度が定常状態のときに検出したスロットル通過空気量qthrと目標スロットル開度thrisc（又は検出スロットル開度）に基づいて前記第２のマップによりデポジット係数kdepo を全域で精度良く学習することができる。これにより、要求空気量qidlの誤差（エンジンのフリクション、補機負荷のトルクのばらつき等）やスロットルの漏れ空気量の影響を排除したデポジット係数kdepo を全域で精度良く学習することができる。
【００５１】
しかも、精度の良いデポジット係数kdepo と目標空気量qiscとに基づいて図２の第１のマップにより目標スロットル開度thriscを精度良く算出することができ、実際のデポジット量による空気量損失分を精度良く補償する目標スロットル開度thriscを設定することができる。更に、スロットル開度が定常状態のときにデポジット係数kdepo を学習できるため、エンジン運転中にデポジット係数kdepo を学習する機会を容易に確保することができ、デポジット量の変化に追従してデポジット係数kdepo の学習値を更新できる。更に、第１のマップと第２のマップは、予め実機データに基づいて全域で精度良く作成できるため、スロットル制御中に複雑な吸気系モデルを用いて空気量を演算する必要がなく、エンジンＥＣＵ２５の演算負荷軽減、ソフト容量削減の要求を満たすことができる。
【００５２】
しかも、本実施例では、デポジット係数kdepo の学習が終了した後に、当該デポジット係数kdepo の学習時の目標スロットル開度thrisclnよりも所定値以上低開度側で運転しているときに、目標空気量qiscと検出スロットル通過空気量qthrとの誤差に基づいてスロットル全閉漏れ空気量qleak を学習すると共に、エンジン運転状態に応じて要求される要求空気量qidlを前記スロットル全閉漏れ空気量qleak の学習値に基づいて減量補正して目標空気量qiscを設定するようにしたので、スロットル全閉漏れ空気量qleak を精度良く学習して目標空気量qiscに反映させることができ、実際のデポジット量による空気量損失分とスロットル全閉漏れ空気量qleak の両方を考慮した目標空気量qiscを設定することができる。
【００５３】
また、バックアップＲＡＭ３２に記憶されている学習値のデータがバッテリクリアされた直後は、学習速度を速めてデポジット係数kdepo を素早く学習し、その後、学習速度を遅くしてデポジット係数kdepo の学習値をゆっくり更新するようにしたので、バックアップＲＡＭ３２のバッテリクリア直後に早期にデポジット係数kdepo の学習値を使用できる状態に復帰させることができる。しかも、デポジット量は短時間で変化するものではなく、比較的長い時間をかけてゆっくり変化していくことを考慮して、バッテリクリア直後に早期にデポジット係数kdepo を学習した後は、デポジット係数kdepo の学習速度を遅くして学習頻度を低下させるため、デポジット係数kdepo の学習に要する演算負荷を軽減することができる。
【００５４】
尚、本実施例では、デポジット係数kdepo の学習履歴の有無によってデポジット係数kdepo の学習速度ndepoln （なまし係数）を２段階に変化させるようにしたが、デポジット係数kdepo の学習回数に応じて３段階以上に変化させるようにしても良い。
【００５５】
また、本実施例では、エアフロメータ１４で吸気量qafsを検出したが、エアフロメータ１４を持たないシステムに本発明を適用する場合は、吸気圧センサで検出した吸気圧に基づいて吸気量qafsを算出するようにしても良い。
【００５６】
その他、本発明は、ＩＳＣ制御領域以外の領域でデポジット係数kdepo を学習するようにしても良い等、要旨を逸脱しない範囲内で種々変更して実施できる。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施例を示すエンジン制御システム全体の概略構成図である。
【図２】第１のマップの一例を示す図である。
【図３】第２のマップの一例を示す図である。
【図４】デポジット学習制御プログラムの前半部の処理の流れを示すフローチャートである。
【図５】デポジット学習制御プログラムの後半部の処理の流れを示すフローチャートである。
【符号の説明】
【００５８】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、１６…吸気圧センサ、１７…モータ（スロットルアクチュエータ）、１８…スロットル開度センサ、１９…吸気マニホールド、２０…燃料噴射弁、２５…エンジンＥＣＵ（デポジット係数学習手段，目標スロットル開度算出手段，漏れ空気量学習手段，目標空気量設定手段）、２６…アクセルペダル、２７…アクセルセンサ、３０…ＲＯＭ（不揮発性の記憶手段）、３２…バックアップＲＡＭ（書き換え可能な不揮発性メモリ）
【図１】
0004803457.tif 000002
【図２】
0004803457.tif 000003
【図３】
0004803457.tif 000004
【図４】
0004803457.tif 000005
【図５】
0004803457.tif 000006