(57)【特許請求の範囲】
【請求項１】
排ガスを触媒装置を介して放出する内燃機関の始動後に前記触媒装置の早期活性化を行うための動作モードでのアイドリング運転時に、該内燃機関の吸入空気量を前記動作モード以外のモードでのアイドリング運転時の吸入空気量よりも所定量、増量させるように該内燃機関の吸入空気通路に設けた流量制御弁の開度を操作する吸入空気量操作手段と、その吸入空気量の増量中に内燃機関の回転数を所定の目標回転数に収束させるように該内燃機関の点火時期をフィードバック制御により操作して、該点火時期を遅角側に補正する点火時期操作手段とを備えた内燃機関の制御装置において、前記触媒装置の早期活性化を行なうための動作モードでの前記吸入空気量操作手段による前記吸入空気量の増量と前記点火時期操作手段による前記点火時期の操作とを、該動作モードの開始時から所定時間が経過するまでの期間で実行するようにし、前記吸入空気量の増量時の前記流量制御弁の開度を、大気圧が低い程、該開度を大きくするように該大気圧に応じて調整する手段を前記吸入空気量操作手段に備えたことを特徴とする内燃機関の制御装置。
【請求項２】
前記吸入空気量の増量時の前記流量制御弁の開度を、大気温度が高い程、該開度を大きくするように該大気温度に応じて調整する手段を前記吸入空気量操作手段に備えたことを特徴とする請求項１記載の内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の制御装置に関する。
【０００２】
【従来の技術】
一般に、内燃機関の排ガスを浄化するために該内燃機関の排気系に設けられた三元触媒等の触媒装置は、その温度がある程度上昇して該触媒装置が活性化していないと、排ガスの所要の浄化性能を確保することが難しい。このため、触媒装置が比較的低温なものとなっている内燃機関の始動直後における排ガスの浄化性能の確保が従来より重要な課題となっている。
【０００３】
本願出願人は、このような課題を解決するための技術を、特願平９−１０９１９７号あるいは特願平１０−１０３２６号にて提案しており、この技術の概要は次の通りである。
【０００４】
すなわち、内燃機関の始動後の最初のアイドリング運転に際して、内燃機関の燃焼室に吸入される吸入空気量を通常のアイドリング運転時（例えば内燃機関を搭載した自動車の走行後のアイドリング運転時）よりも増量させるように、該内燃機関の吸入空気通路に設けた流量制御弁（具体的にはスロットル弁あるいはこれを迂回するバイパス通路の制御弁）の開度を操作する。また、この吸入空気量の増量開始後、この増量によって上昇傾向となる内燃機関の回転数（実回転数）を内燃機関の始動直後のアイドリング運転のための所要の目標回転数に収束させるように内燃機関の点火時期をフィードバック制御により操作し、これにより該点火時期を通常の場合よりも遅角側に補正する。
【０００５】
このような内燃機関の吸入空気量の増量と点火時期の遅角側への操作とを行うことで、内燃機関が生成する排ガスの熱量が大きくなり、ひいては、この排ガスにより暖められる触媒装置が早期に活性化する。この結果、触媒装置の所要の浄化性能を内燃機関の始動後の早期の段階で確保することができる。
【０００６】
また、この技術では、内燃機関の吸入空気量の増量の結果として上昇傾向となる内燃機関の回転数を目標回転数にフィードバック制御することで、結果的に内燃機関の回転数を安定に保持しつつ点火時期が遅角側に操作するので、吸入空気量の操作と点火時期の操作とを互いに独立的に行うことができる。このため、それらの制御システムの構築が容易なものとなると共に該制御システムを簡素なものとすることができる。
【０００７】
ところで、かかる技術において、吸入空気量の増量中における前記流量制御弁の開度は、内燃機関の始動後の運転をできるだけ円滑且つ良好な燃焼状態で行い、また、内燃機関の始動後、所要の時間内で触媒装置を十分に活性化できる熱量を該触媒装置に与えることができるように設定される。そして、この場合、流量制御弁の開度により内燃機関の実際の吸入空気量が一義的に定まるものとし、該開度の指令値の大きさや時間的な変化の形態をあらかじめ定めておき、その指令値に従って流量制御弁の開度を操作するようにしていた。
【０００８】
しかるに、内燃機関の実際の吸入空気量は、流量制御弁の開度が一定であっても、大気圧の影響を受け、該大気圧が高い程、内燃機関の実際の吸入空気量は多くなる。さらに、大気圧の影響よりは小さいものの、内燃機関の実際の吸入空気量は、大気温度の影響も受け、該大気温度が高い程、吸入空気の密度が小さくなるため、内燃機関の実際の吸入空気量は少なくなる。このため、内燃機関がその吸入空気量に応じて生成する排ガスの熱量も、大気圧や大気温度の影響を受けることとなる。この結果、大気圧や大気温度が異なる環境下では、それらの大気圧や大気温度と無関係に前述の如く流量制御弁の開度を操作したとき、触媒装置に与えられる熱量のばらつきを生じ、ひいては触媒装置の昇温・活性化のばらつきを生じ、場合によっては、該触媒装置の昇温・活性化が不足して十分な浄化性能を確保することができない虞れがあった。
【０００９】
【発明が解決しようとする課題】
本発明はかかる背景に鑑み、大気圧や大気温度による内燃機関の吸入空気量、ひいては、触媒装置に与える熱量のばらつきを補償し、大気圧や大気温度によらずに触媒装置の所望の昇温・活性化を行うことができる内燃機関の制御装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の内燃機関の制御装置はかかる目的を達成するために、排ガスを触媒装置を介して放出する内燃機関の始動後に前記触媒装置の早期活性化を行うための動作モードでのアイドリング運転時に、該内燃機関の吸入空気量を前記動作モード以外のモードでのアイドリング運転時の吸入空気量よりも所定量、増量させるように該内燃機関の吸入空気通路に設けた流量制御弁の開度を操作する吸入空気量操作手段と、その吸入空気量の増量中に内燃機関の回転数を所定の目標回転数に収束させるように該内燃機関の点火時期をフィードバック制御により操作して、該点火時期を遅角側に補正する点火時期操作手段とを備えた内燃機関の制御装置において、前記触媒装置の早期活性化を行なうための動作モードでの前記吸入空気量操作手段による前記吸入空気量の増量と前記点火時期操作手段による前記点火時期の操作とを、該動作モードの開始時から所定時間が経過するまでの期間で実行するようにし、前記吸入空気量の増量時の前記流量制御弁の開度を、大気圧が低い程、該開度を大きくするように該大気圧に応じて調整する手段を前記吸入空気量操作手段に備えたことを特徴とする。
【００１１】
かかる本発明によれば、内燃機関の吸入空気量の増量時の前記流量制御弁の開度を、大気圧が低い程、該開度を大きくするように該大気圧に応じて調整することにより、大気圧による内燃機関の吸入空気量、ひいては、触媒装置に与える熱量のばらつきを補償することができる。つまり、内燃機関の吸入空気量の増量に際して、流量制御弁をある開度に操作したとき、実際の吸入空気量は、大気圧が低い程、少なくなるので、上記のように流量制御弁の開度を大気圧に応じて調整することで、大気圧によらずに内燃機関の吸入空気量を所望の吸入空気量（通常のアイドリング運転時よりも所定量増加させる吸入空気量）にすることができる。これにより、本発明によれば、大気圧によらずに触媒装置の所望の昇温・活性化を行うことができ、ひいては、触媒装置の所要の浄化性能を確実に確保することができる。
【００１２】
さらに、本発明では、前記吸入空気量の増量時の前記流量制御弁の開度を、大気温度が高い程、該開度を大きくするように該大気温度に応じて調整する手段を前記吸入空気量操作手段に備える。
【００１３】
すなわち、内燃機関の吸入空気量の増量に際して、流量制御弁をある開度に操作したとき、実際の吸入空気量は、大気温度が高い程、少なくなるので、上記のように流量制御弁の開度を、大気温度が高い程、該開度を大きくするように該大気温度に応じて調整する。これにより、大気圧だけでなく大気温度にもよらずに内燃機関の吸入空気量を所望の吸入空気量（通常のアイドリング運転時よりも所定量増加させる吸入空気量）にすることができ、大気温度による内燃機関の吸入空気量、ひいては、触媒装置に与える熱量のばらつきをも補償することができる。この結果、本発明によれば、大気圧だけでなく大気温度にもよらずに触媒装置の所望の昇温・活性化をより確実に行うことができ、ひいては、触媒装置の所要の浄化性能をより確実に確保することができる。
【００１４】
【発明の実施の形態】
本発明の一実施形態を図１乃至図２５を参照して説明する。
【００１５】
図１は、本実施形態の装置の全体的なシステム構成を示すものであり、１は内燃機関、２は内燃機関１の動作制御を担うコントローラである。
【００１６】
内燃機関１は、例えば自動車やハイブリッド車等の車両にその推進源として搭載されたものであり、燃料及び空気の混合気を燃焼させて生成した排ガスを例えば三元触媒を用いて構成した触媒装置３を介して大気中に放出する。
【００１７】
図２はこの内燃機関１の吸気系を模式化して示したものである。同図２に示すように、この内燃機関１の燃焼室４には、スロットル弁５を設けた主吸気通路６と、該スロットル弁５を迂回して主吸気通路６に連接すると共にバイパス弁７を設けたバイパス通路８とを介して空気を吸入可能とされている。尚、図２中、９はシリンダ、１０はピストン、１１，１２はそれぞれ吸気バルブ及び排気バルブ、１３はチャンバーである。
【００１８】
図１の説明に戻って、本実施形態のシステムでは、この内燃機関１の動作制御のための付帯的構成として、内燃機関１の回転数Ｎｅ（実回転数）及び機関温度Ｔｗ（例えば冷却水温）をそれぞれ検出する回転数センサ１４及び機関温度センサ１５、前記スロットル弁５及びバイパス弁７の下流側における主吸気通路６の内圧（本実施形態では図２のチャンバー１３の内圧）である吸気圧Ｐｂを検出する吸気圧センサ１６、大気温度Ｔａ及び大気圧Ｐａをそれぞれ検出する大気温度センサ１７及び大気圧センサ１８、図示しない車両のアクセルペダルの操作量Ａｐ（以下、アクセル操作量Ａｐという）及び車速Ｖをそれぞれ検出するアクセルセンサ１９及び車速センサ２０等の各種センサが備えられている。
【００１９】
さらに内燃機関１の駆動のための付帯的構成として、前記燃焼室４内で混合気に点火する点火装置２１、燃焼室４に燃料を供給する燃料供給装置２２、前記スロットル弁５及びバイパス弁７をそれぞれ操作するためのスロットル弁アクチュエータ２３及びバイパス弁アクチュエータ２４等が備えられている。
【００２０】
尚、図示は省略するが、上記の構成の他、内燃機関１を始動するためのスタータモータや、各種電子機器の電源バッテリ、内燃機関１の動力を駆動輪に伝達する変速機（本実施形態のシステムでは自動変速機）等も備えられている。
【００２１】
コントローラ２は、マイクロコンピュータを用いて構成されたものであり、前述の各種センサ１４〜２０の出力（検出値）のデータや、所定のプログラム、あらかじめ設定されたデータ値等に基づき、点火装置２１や燃料供給装置２２、スロットル弁アクチュエータ２３、バイパス弁アクチュエータ２４等を介して内燃機関１の所要の運転を行わしめる。
【００２２】
このコントローラ２は、スロットル弁５あるいはバイパス弁７の開度をそれぞれスロットル弁アクチュエータ２３、バイパス弁アクチュエータ２４を介して操作することで、内燃機関１の燃焼室４の吸入空気量を操作する吸入空気量操作手段２５、内燃機関１の点火時期を点火装置２１を介して操作する点火時期操作手段２６等を機能的構成として具備している。
【００２３】
これらの各手段２５，２６の機能の詳細は後述するが、点火時期操作手段２６は本発明に係わる回転数制御装置としての機能を有するものである
尚、本実施形態では、前記バイパス弁７とバイパス通路８とがそれぞれ本発明に係わる流量制御弁と吸入空気通路とに相当するものである。また、本実施形態では、コントローラ２がその制御処理を実行する制御サイクル（制御周期）はクランク角周期（所謂ＴＤＣ）である。
【００２４】
次に本実施形態のシステムの作動を前記コントローラ２の吸入空気量操作手段２５及び点火時期操作手段２６の機能と併せて説明する。
【００２５】
まず、本実施形態のシステムの基本的な動作の概要を図３を参照して簡単に説明しておく。図３は内燃機関１の始動からアイドリング運転にかけての運転における前記バイパス弁７の開度（以下、バイパス開度という）、点火時期、及び回転数の時間的変化の例示的な形態をそれぞれ上段、中段、及び下段に示したものである。
【００２６】
同図３を参照して、本実施形態のシステムでは、内燃機関１の運転停止状態で図示しないスタートスイッチを操作する等してシステムを起動すると、システムの動作は、まず、内燃機関１のクランキングをスタータモータ（図示しない）により行いつつ該内燃機関１の始動を行う動作モード（以下、始動モードという）となる。この始動モードでは、バイパス開度及び点火時期はそれぞれ図示のように操作され、また、内燃機関１の回転数Ｎｅは図示のように変動する。
【００２７】
尚、本実施形態のシステムでは、内燃機関１の運転中の前記スロットル弁５の開度は、前記アクセル操作量Ａｐに応じたものとされ、アクセルペダル（図示しない）の操作がなされていない状態（Ａｐ＝０の状態。この状態は、車両の停車中は、内燃機関１のアイドリング運転状態である）では、スロットル弁５の開度は「０」（スロットル弁５の閉弁状態）である。そして、この状態では、燃焼室４の吸気は、バイパス通路８のみを介して行われる。図３は、このようにバイパス通路８のみを介して燃焼室４の吸気が行われる場合に関するものである。
【００２８】
上記始動モードにおいて内燃機関１の所謂、完爆が確認されると、システムの動作は、内燃機関１のアイドリング運転を行いつつ前記触媒装置３の早期活性化を図るための動作モード（以下、ＦＩＲＥモードという）に移行する。
【００２９】
このＦＩＲＥモードでは、例えば図３の上段に示すような時間的変化の形態（パターン）で、通常のアイドリング運転時（ＦＩＲＥモード以外でのアイドリング運転時）よりも大きなバイパス開度の指令値θCMD を逐次生成する。そして、この指令値θCMD に従ってバイパス開度を前記バイパス弁アクチュエータ２４を介して操作することで、内燃機関１の燃焼室４の吸入空気量を通常のアイドリング運転時よりも増量させる。
【００３０】
この場合、ＦＩＲＥモードの動作は、基本的には、その動作が開始してからの経過時間t/fire（これは、吸入空気量の増量を開始してからの経過時間である。以下、ＦＩＲＥ経過時間t/fireという）が所定の制限時間TFIRELMT（以下、ＦＩＲＥモード制限時間TFIRELMTという）に達するまで行われる。
【００３１】
そして、このＦＩＲＥモードにおける前記バイパス開度の指令値θCMD は、基本的には、上記ＦＩＲＥモード制限時間TFIRELMT内で触媒装置３の所望の昇温・活性化を適正に行い得る熱量の排ガス（該排ガスの熱量は概ね内燃機関１の燃焼室４の吸入空気量に比例する）を触媒装置３に供給することができ、また、ＦＩＲＥモードにおける内燃機関１の燃焼状態やエミッション状態等を良好に保ちつつ該内燃機関１のアイドリング運転を安定して円滑に行うことができるように設定される。
【００３２】
ＦＩＲＥモードにおけるこのような吸入空気量の増量（バイパス開度の増加）に伴い、その増量開始直後の内燃機関１の回転数Ｎｅ（実回転数）は、図３の下段に実線で示すような形態で上昇していく。そして、該回転数Ｎｅが、ＦＩＲＥモードにおいて最終的に維持すべき適正な回転数としてあらかじめ定めたアイドリング回転数NOBJ（一定）よりも所定量NEFSLDS だけ高い設定回転数（NOBJ＋NEFSLDS ）に到達すると、内燃機関１の回転数Ｎｅを所要の目標回転数ne/fire に収束させるためのフィードバック制御によって、内燃機関１の点火時期を図３の中段に実線で示すように操作する。以下、この回転数Ｎｅのフィードバック制御を点火時期操作回転数Ｆ／Ｂ制御という。尚、この点火時期操作回転数Ｆ／Ｂ制御は、内燃機関１の回転数Ｎｅが上記設定回転数（NOBJ＋NEFSLDS ）に到達した場合の他、前記ＦＩＲＥ経過時間t/fireがあらかじめ定めた所定値TSLDIGST（図３の下段を参照）に達した場合にも開始される。
【００３３】
この点火時期操作回転数Ｆ／Ｂ制御では、図３の下段に破線で示すような形態で内燃機関１の目標回転数ne/fire が設定される。該目標回転数ne/fire は、上記設定回転数（NOBJ＋NEFSLDS ）から所定の低下度合い（傾き）で前記アイドリング回転数NOBJに向かって低下され、該アイドリング回転数NOBJに到達した後は、該アイドリング回転数NOBJに保持される。尚、このアイドリング回転数NOBJは、通常のアイドリング運転時の回転数よりも高い回転数に設定されている。
【００３４】
点火時期操作回転数Ｆ／Ｂ制御では、このように設定される目標回転数ne/fire に内燃機関１の回転数Ｎｅ（実回転数）を収束させるように、フィードバック制御処理によって図３の中段に破線で示すような点火時期の補正量DIG （この補正量DIG は後述する点火時期偏差指令値である）を求め、この補正量DIG だけ点火時期の基本指令値igbase（図３の中段に一点鎖線で示す）を補正することで、点火時期の指令値iglog を決定する。ここで、点火時期の基本指令値igbaseは、内燃機関１の通常的な運転時（ＦＩＲＥモード以外の運転時）における点火時期の指令値に相当するものであり、進角側の値である。
【００３５】
そして、点火時期操作回転数Ｆ／Ｂ制御では、上記のように基本指令値igbaseを補正した指令値iglog に従って内燃機関１の点火時期を前記点火装置２１を介して操作することで、内燃機関１の回転数Ｎｅを目標回転数ne/fire に（最終的にはアイドリング回転数NOBJに）フィードバック制御する。
【００３６】
このとき、前述した吸入空気量の増量によって、内燃機関１の回転数Ｎｅは目標回転数ne/fire に対して上昇傾向となるので、点火時期操作回転数Ｆ／Ｂ制御により求められる前記補正量DIG は、点火時期を基本指令値igbaseから遅角側に補正するものとなる。従って、この補正量DIG （≦０）により基本指令値igbaseを補正してなる点火時期iglog は、図３の中段の実線示のように遅角側のものとなる。
【００３７】
このように内燃機関１の始動後の最初のアイドリング運転時に行うＦＩＲＥモードは、上記のようなバイパス開度の操作による吸入空気量の増量と点火時期操作回転数Ｆ／Ｂ制御による点火時期の遅角側への操作とによって、内燃機関１の回転数Ｎｅを所要の目標回転数ne/fire （最終的にはアイドリング回転数NOBJ）に制御しつつ、内燃機関１がその燃焼室４で混合気の燃焼により生成する排ガスの熱量を通常のアイドリング運転時よりも多くするものである。そして、このように熱量を多くした排ガスを触媒装置３に供給することによって、触媒装置３の昇温・活性化を早め、該触媒装置３の所要の排ガス浄化性能を早期に確保するものである。
【００３８】
このような吸入空気量の増量と点火時期操作回転数Ｆ／Ｂ制御とを行うＦＩＲＥモードは、その動作途中で車両のアクセルペダルが操作される等した場合を除いて、前記ＦＩＲＥ経過時間t/fireがＦＩＲＥモード制限時間TFIRELMTに達するまで連続的に行われ、その後は、システムの動作は、内燃機関１の通常的な運転を行うモード（以下、通常モードという）に移行する。この通常モードでは、バイパス開度は、例えば内燃機関１の通常的なアイドリング運転を行うための開度（＜ＦＩＲＥモードにおけるバイパス開度。図３の上段の右側部分を参照）に操作される。また、内燃機関１の点火時期は、図３の中段の右側部分に示すように、ＦＩＲＥモードの終了後、徐々に、前記基本指令値igbaseにより定まる通常的な進角側の点火時期に戻される。
【００３９】
尚、本実施形態のシステムでは、前記ＦＩＲＥモードの動作中（ＦＩＲＥ経過時間t/fireがＦＩＲＥモード制限時間TFIRELMTに達する前）に、車両の発進・走行を行ったり、内燃機関１の所謂、からぶかしを行うために図示しないアクセルペダルが操作され、内燃機関１のアイドリング以外の運転を行うべき状況となったときには、ＦＩＲＥモードの中断動作を行う。
【００４０】
この中断動作にあっては、触媒装置３の昇温・活性化を確実なものとするために、前述のようなバイパス開度の操作による吸入空気量の増量は継続的に行われるが、内燃機関１の所要の動力性能を確保するために、点火時期は、前記基本指令値igbaseにより定まる通常的な進角側の点火時期に戻される（点火時期操作回転数Ｆ／Ｂ制御が中断される）。そして、ＦＩＲＥモード制限時間TFIRELMT内に、再び内燃機関１のアイドリング運転を行う状況となった場合には、点火時期操作回転数Ｆ／Ｂ制御が再開される。つまり、ＦＩＲＥモードの中断動作は、基本的には点火時期操作回転数Ｆ／Ｂ制御を中断する動作である。但し、バイパス開度の操作による吸入空気量の増量に関しても、該増量に係わる部分的な制御処理は中断される。
【００４１】
以上説明した内容が本実施形態のシステムの基本的動作の概要である。
【００４２】
次に、このような基本的動作を考慮しつつ、本実施形態のシステムの詳細な作動を以下に説明する。
【００４３】
内燃機関１の運転を停止した状態で本実施形態のシステムを起動すると、コントローラ２は図４のフローチャートに示すメインルーチン処理を所定の制御サイクル、すなわちクランク角周期（ＴＤＣ）で実行する。
【００４４】
コントローラ２は、まず、システムの動作モードが前記始動モードであるか否かを判断する（ＳＴＥＰ４−１）。この判断は、例えば内燃機関１の所謂完爆が確認されたか否かにより行われ、システムの起動後、該完爆が確認されるまでの間は、動作モードは始動モードである。尚、完爆の確認は、回転数センサ１４の出力（回転数Ｎｅの検出値）等に基づいて行われる。
【００４５】
ＳＴＥＰ４−１の判断で、動作モードが始動モードである場合には、コントローラ２は、内燃機関１を始動するための始動モード処理を制御サイクル毎に実行する（ＳＴＥＰ４−２）。
【００４６】
この始動モード処理においては、コントローラ２は、内燃機関１を始動する上で適正な点火時期、燃料供給量、及びバイパス開度の指令値を、それぞれ前述の各種センサ１４〜２０の出力（検出値）や所定のマップ、演算式等に基づいて決定する。そして、その決定した指令値に従って前記点火装置２１、燃料供給装置２２、及びバイパス弁アクチュエータ２４を介して点火時期、燃料供給量及びバイパス開度（吸入空気量）を操作しつつ、図示しないスタータモータによる内燃機関１のクランキングを行わしめることで、内燃機関１を始動する。
【００４７】
また、始動モード処理では、コントローラ２は前記ＦＩＲＥモードの制御処理で使用するフラグ等の各種パラメータ（詳細は後述する）の初期設定を行う。
【００４８】
さらに、始動モード処理では、内燃機関１の始動時の機関温度Ｔｗ、大気温度Ｔａ及び大気圧Ｐａがそれぞれ機関温度センサ１５、大気温度センサ１７及び大気圧センサ１８により検出されて図示しないメモリに記憶保持される。
【００４９】
一方、ＳＴＥＰ４−１の判断で、動作モードが始動モードでない場合には（内燃機関１の完爆が確認された場合）には、コントローラ２は、制御サイクル毎に、内燃機関１への燃料供給量の指令値を生成する（ＳＴＥＰ４−３）。さらに、コントローラ２は、ＦＩＲＥモードの制御処理を行うべきか否か（動作モードをＦＩＲＥモードにするか通常モードにするか）の条件判断を行った後（ＳＴＥＰ４−４）、バイパス開度の指令値θCMD を前記吸入空気量操作手段２５によって生成し（ＳＴＥＰ４−５）、また、内燃機関１の点火時期の指令値iglog を、前記点火時期操作手段２６によって生成する（ＳＴＥＰ４−６）。
【００５０】
前記ＳＴＥＰ４−３における燃料供給量の指令値の生成処理では、まず、前記回転数センサ１４及び吸気圧センサ１６により検出される内燃機関１の回転数Ｎｅ（実回転数）及び吸気圧Ｐｂから、あらかじめ定められたマップに基づいて基本燃料供給量が求められる。そして、この基本燃料供給量を前記機関温度センサ１５や大気温度センサ１７により検出される機関温度Ｔｗや大気温度Ｔａ等に応じて補正することで、内燃機関１の燃焼室４の吸入空気量に対応した燃料供給量の指令値が生成される。
【００５１】
このように生成された燃料供給量の指令値は、制御サイクル毎に、コントローラ２から前記燃料供給装置２２に与えられ、該燃料供給装置２２は、与えられた指令値に従って内燃機関１への燃料供給を行う。
【００５２】
また、前記ＳＴＥＰ４−４における条件判断の処理は図５のフローチャートに示すように行われる。
【００５３】
すなわち、コントローラ２は、まず、現在の前記ＦＩＲＥ経過時間t/fireが前記ＦＩＲＥモード制限時間TFIRELMT内にあるか否か（t/fire＜TFIRELMTであるか否か。ＳＴＥＰ５−１）、前記回転数センサ１４により検出された現在の回転数Ｎｅが正常な所定範囲内にあるか否か（ＳＴＥＰ５−２）、前記機関温度センサ１５により検出された現在の機関温度Ｔｗが正常な所定範囲内にあるか否か（ＳＴＥＰ５−３）を順次判断する。尚、ＳＴＥＰ５−１で判断するＦＩＲＥ経過時間t/fireは、前記始動モード処理（ＳＴＥＰ４−２）において「０」に初期化され、始動モードが終了した時点（内燃機関１の完爆が確認された制御サイクル）から計時されるものである。
【００５４】
これらのＳＴＥＰ５−１〜５−３の条件が成立しない場合、すなわち、ＦＩＲＥ経過時間t/fireが既にＦＩＲＥモード制限時間TFIRELMTに達している場合、あるいは、内燃機関１の現在の回転数Ｎｅが異常な高回転数もしくは低回転数となっている場合、あるいは内燃機関１の現在の機関温度Ｔｗが異常な高温もしくは低温となっている場合には、コントローラ２は、後述する学習演算に係わる処理（詳しくは後述する基本学習補正係数vpskisldの算出処理）を終了するか否かをそれぞれ値「１」、「０」で表すフラグf/flrnend （以下、学習演算終了フラグf/flrnend という）の値を判断する（ＳＴＥＰ５−４）。そして、コントローラ２は、f/flrnend ＝０である場合にのみ、現在のＦＩＲＥ経過時間t/fireの値をパラメータt/kil の値として保持しておき（ＳＴＥＰ５−５）、さらに学習演算終了フラグf/flrnend の値を「１」に設定する（ＳＴＥＰ５−６）。ここで、パラメータt/kil は、後述する基本学習補正係数vpskisldの算出処理を終了する際のＦＩＲＥ経過時間t/fireを表すものである。以下、パラメータt/kil を学習終了時刻パラメータt/kil という。
【００５５】
尚、学習演算終了フラグf/flrnend 及び学習終了時刻パラメータt/kil の値は、前記始動モード処理（ＳＴＥＰ４−２）において「０」に初期化される。
【００５６】
次いで、コントローラ２は、ＦＩＲＥ経過時間t/fireの値を強制的にＦＩＲＥモード制限時間TFIRELMTに固定した後（ＳＴＥＰ５−７）、ＦＩＲＥモードの前述のような中断動作を行うべき状態であるか否かをそれぞれ値「１」、「０」で表すフラグf/fpause（以下、ＦＩＲＥ中断フラグf/fpauseという）の値と、ＦＩＲＥモードの動作を行うべき状態であるか否かをそれぞれ値「１」、「０」で表すフラグf/fireon（以下、ＦＩＲＥ実行可否フラグf/fireonという）の値とを「０」に設定し（ＳＴＥＰ５−８，５−９）、図４のメインルーチンの処理に復帰する。尚、ＦＩＲＥモードの動作を行うべき状態でない（f/fireon＝０）ということは、前記通常モードの動作を行うべき状態であることを意味する。
【００５７】
一方、前記ＳＴＥＰ５−１〜５−３の条件が成立する場合には、コントローラ２は、アクセルセンサ１９の出力（アクセル操作量Ａｐ）により車両のアクセルペダルの操作がなされているか否か（ＳＴＥＰ５−１０）、内燃機関１のフュエルカット中であるか否か（ＳＴＥＰ５−１１）を順次判断する。尚、内燃機関１のフュエルカットは、車両の減速走行時等に燃料供給を遮断する処理である。また、車両のアクセルペダルの操作がなされている状態では、コントローラ２は、前記スロットル弁５の開度をアクセル操作量Ａｐに応じた開度に前記スロットル弁アクチュエータ２３を介して操作する。
【００５８】
このとき、ＳＴＥＰ５−１０、５−１１のいずれの条件も成立しない場合は、基本的には内燃機関１のアイドリング運転を行う状態である。この場合には、コントローラ２は、前記ＦＩＲＥ中断フラグf/fpauseの値を「０」に設定し（ＳＴＥＰ５−１２）、さらに前記ＦＩＲＥ実行可否フラグf/fireonの値を「１」に設定した後（ＳＴＥＰ５−１３）、図４のメインルーチンの処理に復帰する。
【００５９】
また、ＳＴＥＰ５−１０、５−１１のいずれかの条件が成立する場合には、コントローラ２は、ＦＩＲＥモードの中断動作を行うべく、ＦＩＲＥ中断フラグf/fpauseの値を「１」に設定した後（ＳＴＥＰ５−１４）、前記学習演算終了フラグf/flrnend の値を判断する（ＳＴＥＰ５−１５）。そして、コントローラ２は、f/flrnend ＝０である場合にのみ、現在のＦＩＲＥ経過時間t/fireの値を前記学習終了時刻パラメータt/kil の値として保持し（ＳＴＥＰ５−１６）、さらに学習演算終了フラグf/flrnend の値を「１」に設定する（ＳＴＥＰ５−１７）。
【００６０】
次いで、コントローラ２は、ＦＩＲＥモードの中断動作の終了後の点火時期の操作処理（詳細は後述する）に用いるカウントダウンタイマcnt/igvpl の値を所定の初期値XCNTに設定した後（ＳＴＥＰ５−１８）、前記ＳＴＥＰ５−１３を経て図４のメインルーチンの処理に復帰する。
【００６１】
尚、ＳＴＥＰ５−１０、５−１１のいずれかの条件が成立する状況、すなわち、ＦＩＲＥモードの中断動作を行うべくＦＩＲＥ中断フラグf/fpauseの値を「１」に設定する状況は、基本的には前記ＦＩＲＥモード制限時間TFIRELMT内で、車両のアクセルペダルの操作により、車両の発進・走行を行っている状況（内燃機関１がその負荷を駆動している状況）であるか、もしくは、内燃機関１の空ぶかしを行っている状況である。但し、ＦＩＲＥモード制限時間TFIRELMT内で車両を発進させたとき、その後の車両の減速走行中には、ＳＴＥＰ５−１０、５−１１のいずれの条件も成立しない場合もある。つまり、ＦＩＲＥモードの中断動作を行う状況は、より正確に言えば、混合気の燃焼を行いながら内燃機関１のアイドリング運転以外の運転を行う状況である。
【００６２】
以上説明したＳＴＥＰ４−４の条件判断の処理によって、内燃機関１の始動後（始動モードの終了後）、内燃機関１の回転数Ｎｅや機関温度Ｔｗが適正な範囲内にある限り、前記ＦＩＲＥ経過時間t/fireが前記ＦＩＲＥモード制限時間TFIRELMTに達するまで、システムの動作モードはＦＩＲＥモードに設定される（f/fireon＝１）。そして、このＦＩＲＥモードが設定されている状態では、該ＦＩＲＥモードの中断動作中を除き、基本的には、前述したようなバイパス開度の操作による吸入空気量の増量と点火時期操作回転数Ｆ／Ｂ制御とが並行して行われる。
【００６３】
また、内燃機関１の回転数Ｎｅや機関温度Ｔｗがなんらかの原因で異常に高いか、もしくは低いものとなっている状況では、システムの動作モードは内燃機関１の始動直後から通常モードに設定されるか、もしくは、ＦＩＲＥモードが途中で解除（終了）されて通常モードが設定される（f/fireon＝０）。そして、この通常モードが設定されている状態では、バイパス開度や点火時期は、内燃機関１の通常的な運転（ＦＩＲＥモード以外の運転）を行うためのバイパス開度や点火時期に操作される。さらに、通常モードが設定されるときには、前記ＳＴＥＰ５−７においてＦＩＲＥ経過時間t/fireの値を強制的にＦＩＲＥモード制限時間TFIRELMTに固定するため、以後は、内燃機関１を再び始動するまで前記ＳＴＥＰ５−１の条件が成立することがない（ＦＩＲＥ経過時間t/fireは始動モードにおいてのみ初期化される）。従って、ＦＩＲＥモードは、内燃機関１の始動後、ＦＩＲＥモード制限時間TFIRELMTが経過するまでの期間においてのみ設定される。
【００６４】
また、システムの動作モードがＦＩＲＥモードに設定されている状態（f/fireon＝１）で、アクセルペダルの操作によって車両の走行が行われたり、内燃機関１の空ぶかしが行われたような場合、すなわちアイドリング運転以外の内燃機関１の運転を行うべき場合（ＳＴＥＰ５−１０、５−１１のいずれかの条件が成立する場合）には、前記ＦＩＲＥ中断フラグf/fpauseが「１」に設定される。この場合には、前述のようにバイパス開度の操作による吸入空気量の増量は行うが、点火時期操作回転数Ｆ／Ｂ制御は中断する、というようなＦＩＲＥモードの中断動作が行われることとなる。そして、動作モードがＦＩＲＥモードで、且つ中断動作が行われている状態（f/fireon＝１且つf/fpause＝１）において、ＳＴＥＰ５−１０、５−１１のいずれかの条件も成立しなくなり、ＦＩＲＥ中断フラグf/fpauseが「０」に戻された場合（これは、基本的にはアイドリング運転を再開する場合である）には、中断動作が解除され、点火時期操作回転数Ｆ／Ｂ制御が再開される。
【００６５】
尚、アクセルペダルの操作によりＦＩＲＥモードの中断動作が行われる状況（ＳＴＥＰ５−１０の条件が成立）では、前記スロットル弁５の開度がアクセル操作量Ａｐに応じたもの（＞０）とされる。このため、この状況では、内燃機関１の燃焼室４には、バイパス弁７とスロットル弁５との両者を介して吸気が行われることとなる。
【００６６】
また、本実施形態では採用していないが、始動モードの終了後、若干の時間が経過するまでは、システムの動作モードをＦＩＲＥモードに設定しないようにしてもよい。
【００６７】
次に、前記図４のＳＴＥＰ４−５におけるバイパス開度の指令値θCMD の生成処理について説明する。
【００６８】
ここで、この処理の具体的な内容を詳細に説明する前に、この処理の基本的な内容を説明しておく。
【００６９】
本実施形態のシステムでは、ＦＩＲＥモードにおけるバイパス開度の指令値θCMD を生成するためにコントローラ２の吸入空気量操作手段２５が行う主要な処理として、バイパス開度の標準指令値θ0 （以下、標準開度指令値θ0 という）を生成する処理（以下、標準開度指令値生成処理という）と、内燃機関１の燃焼室４の実際の吸入空気量の積算値を所要の目標値に収束させるようにフィードバック制御処理によってバイパス開度の指令値を補正するための処理（以下、吸気量Ｆ／Ｂ制御補正処理という）と、この吸気量Ｆ／Ｂ制御補正処理によるバイパス開度の指令値の補正量をＦＩＲＥモードの動作が行われる毎に学習し、その学習結果に基づいて次回のＦＩＲＥモードの動作に際してバイパス開度の指令値を補正するための処理（以下、学習補正処理という）と、前記大気圧センサ１８及び大気温度センサ１７によりそれぞれ検出される大気圧Ｐａ及び大気温度Ｔａのそれぞれに応じてバイパス開度の指令値を補正するための処理（以下、大気条件補正処理という）と、前記点火時期操作回転Ｆ／Ｂ制御によって操作される点火時期に応じてバイパス開度の指令値を補正するための処理（以下、点火時期応動補正処理という）とがある。以下にこれらの処理の基本的な内容を説明する。
【００７０】
まず、前記標準開度指令値生成処理に関して説明する。
【００７１】
本実施形態のシステムでは、ＦＩＲＥモードにおける吸入空気量の増量は、触媒装置３の早期の昇温・活性化を主目的とするものであり、この場合、ＦＩＲＥモード制限時間TFIRELMT内で触媒装置３の所望の昇温・活性化を確実に行い得る熱量の排ガス（該排ガスの熱量は概ね内燃機関１の燃焼室４の吸入空気量に比例する）を触媒装置３に供給することができるように吸入空気量を増量させてやる必要がある。
【００７２】
一方、この吸入空気量の増量は、内燃機関１の始動後、直ちに開始するものであると共に、前記点火時期操作回転数Ｆ／Ｂ制御によって点火時期を通常の点火時期よりも遅角側に操作しながら行うものであるため、該吸入空気量の増量形態（増量の時間的変化のパターン）が不適切であると、内燃機関１の燃焼状態やエミッション状態を損なう虞れがある。従って、ＦＩＲＥモードにおける吸入空気量の増量は、ＦＩＲＥモードにおける内燃機関１の燃焼状態やエミッション状態等を損なうことなく該内燃機関１のアイドリング運転を安定して円滑に行うことができるように行う必要がある。
【００７３】
このために、前記標準開度指令値生成処理では、吸入空気量の増量のために前記バイパス弁アクチュエータ２４に与えるべきバイパス開度の指令値の基本となる前記標準開度指令値θ0 を、内燃機関１の始動時（始動モード）における機関温度Ｔｗや前記ＦＩＲＥ経過時間t/fire等に応じて制御サイクル（ＴＤＣ）毎にフィードフォワード的に生成する。
【００７４】
この標準開度指令値生成処理は次のように行われる。
【００７５】
まず、内燃機関１の始動時（始動モード）に前記機関温度センサ１５により検出された機関温度Ｔｗから、あらかじめ定められたデータテーブルに基づき標準開度指令値θ0 の基本値i/ftbl（これはＦＩＲＥモードの動作中の標準開度指令値θ0 の最大値である）を決定する。
【００７６】
この場合、本実施形態では、上記基本値i/ftblは、ＦＩＲＥモードの動作中における車両の図示しない自動変速機の操作レバーの操作位置（以下、シフト位置という）がＮレンジ（ニュートラルレンジ）にある場合と、Ｄレンジ（ドライブレンジ）にある場合とで各別の値を決定する。
【００７７】
すなわち、自動変速機の前記シフト位置がＮレンジにある場合には、内燃機関１の始動時の機関温度Ｔｗから、図６の実線ａのデータテーブルに従って求まる値ifiret（以下、Ｎレンジ基本値ifiretという）を標準開度指令値θ0 の基本値i/ftblとして決定する。
【００７８】
ここで、実線ａのデータテーブルは、基本的には、機関温度Ｔｗが高い程、Ｎレンジ基本値ifiretが小さくなるように設定されている。これは、内燃機関１の始動時の機関温度Ｔｗは、触媒装置３の初期温度に相当し、該温度が高い程、触媒装置３の所望の昇温・活性化を行う上で必要な熱量、ひいては内燃機関１の吸入空気量が少なくて済むからである。
【００７９】
また、自動変速機のシフト位置がＤレンジにある場合には、内燃機関１の始動時の機関温度Ｔｗから、図６の実線ｂのデータテーブルに従って求まる値iatfire （以下、Ｄレンジ補正値iatfire という）を上記Ｎレンジ基本値ifiretに加算した値を標準開度指令値θ0 の基本値i/ftbl（＝ifiret＋iatfire ）として決定する。
【００８０】
ここで、実線ｂのデータテーブルは、基本的には、内燃機関１の始動時の任意の機関温度Ｔｗにおいて、Ｄレンジでの基本値fitbl をＮレンジの場合よりも若干高めるように設定されている。これは、ＤレンジではＮレンジの場合よりも内燃機関１の駆動力を吸収する負荷が多くなって、内燃機関１の回転数低下を引き起しやすいと共に排ガスの熱量がＮレンジの場合よりも少なくなるからである。
【００８１】
尚、本実施形態では、触媒装置３の初期温度（内燃機関１の始動時における触媒装置３の温度状態）に相当するものとして内燃機関１の始動時の機関温度Ｔｗを用いているが、内燃機関１の始動時に触媒装置３の初期温度を直接的に検出し、その検出温度から上記と同様に標準開度指令値θ0 の基本値i/ftblを決定するようにしてもよい。
【００８２】
また、本実施形態では、車両に自動変速機を採用しているため、Ｎレンジと、Ｄレンジとで各別の基本値i/ftblを設定しているが、手動操作式の変速機を車両に搭載している場合には、このような区別を行うことなく単一の基本値i/ftblを内燃機関１の始動時の機関温度Ｔｗ（あるいは触媒装置３の初期温度）に応じて上記と同様に設定するようにしてもよい。
【００８３】
このようにして標準開度指令値θ0 の基本値i/ftblを決定する一方、標準開度指令値生成処理では、さらに、前記ＦＩＲＥ経過時間t/fireから、図７に示す如くあらかじめ定められたデータテーブル（タイムテーブル）に従って上記基本値i/ftblを補正（乗算補正）するための補正係数km/fire （≦１）を制御サイクル毎に求める。そして、この補正係数km/fire を上記基本値i/ftblに乗算してなる値を標準開度指令値θ0 （＝i/ftbl・km/fire ）として決定する。
【００８４】
ここで、図７のデータテーブルでは、ＦＩＲＥモードの初期段階（t/fire：０〜ｔ1 ）では、始動直後の内燃機関１の燃焼状態等を安定化するために、標準開度指令値θ0 を基本値i/ftblに向かって徐々に増加させていくように、補正係数km/fire を「１」に向かって徐々に増加させていく。そして、標準開度指令値θ0 が基本値i/ftblに達してから（補正係数km/fire が「１」に達してから）は、所定時間の間（t/fire：ｔ1 〜ｔ2 ）、標準開度指令値θ0 を基本値i/ftblに維持するように補正係数km/fire を「１」に設定する。その後は（t/fire：ｔ2 〜TFIRELMT）、標準開度指令値θ0 を緩やかに減少させていくように、補正係数km/fire を緩やかに減少させていく。このように、標準開度指令値θ0 を緩やかに減少させていくのは次の理由による。
【００８５】
すなわち、内燃機関１の暖機がある程度進行すると、該内燃機関１の各部のフリクション（摩擦）が徐々に低下していき、内燃機関１の回転数Ｎｅの上昇傾向が高まり、その結果、前記点火時期操作回転数Ｆ／Ｂ制御により操作される内燃機関１の点火時期はより遅角側に移行していくこととなる。そして、このとき、内燃機関１の点火時期が、内燃機関１の正常な運転を行いつつ該点火時期を操作し得る遅角側の限界値まで達してしまうと、内燃機関１の回転数Ｎｅの上昇傾向を抑えることができなくなってしまう。このような事態を予防するために、ＦＩＲＥ経過時間t/fireが所定時間ｔ2 に達し、ＦＩＲＥモードの動作がある程度進行した後（内燃機関１の暖機がある程度進行した後）は、標準開度指令値θ0 （内燃機関１の吸入空気量）を緩やかに減少させ、フリクションの低下による回転数Ｎｅの上昇傾向を抑制する。
【００８６】
以上説明した内容が前記標準開度指令値生成処理の内容である。
【００８７】
本実施形態のシステムでは、基本的には、上記のようにフィードフォワード的に生成する標準開度指令値θ0 に従ってバイパス開度を操作することで、内燃機関１の運転を安定して行いつつ、触媒装置３の所望の昇温・活性化を適正に行うことを可能としている。
【００８８】
次に、前記吸気量Ｆ／Ｂ制御補正処理及び大気条件補正処理について説明する。
【００８９】
本実施形態では、前記標準開度指令値生成処理において前述の如く決定する標準開度指令値θ0 は、バイパス弁アクチュエータ２４に与えるバイパス開度の指令値に対して、バイパス弁７の実際の開度や内燃機関１の燃焼室４の実際の吸入空気量が基準的な一定の相関関係で一義的に定まり、また、大気圧Ｐａや大気温度Ｔａがそれぞれ所定の標準大気圧（例えば１気圧）、標準大気温度（例えば２５°Ｃの常温）である、というような理想的な条件を前提として定めたものである。
【００９０】
しかるに、バイパス開度の指令値に対するバイパス弁７の実際の開度あるいは実際の吸入空気量は、バイパス弁アクチュエータ２４やバイパス弁７の動作特性のばらつき、あるいは経時的な特性変化等に起因してばらつきを生じる（以下、このような吸入空気量のばらつきを構造要因によるばらつきという）。
【００９１】
また、上記のような構造要因によるばらつきが無いとしても、バイパス開度の指令値に対する実際の吸入空気量は、大気圧Ｐａによってばらつきを生じる。さらに、この大気圧Ｐａの影響よりは小さいものの、バイパス開度の指令値θCMD に対する実際の吸入空気量は、大気温度Ｔａによってもばらつきを生じる（以下、このような大気圧Ｐａ、大気温度Ｔａによる吸入空気量のばらつきを大気条件によるばらつきという）。
【００９２】
すなわち、バイパス開度の指令値を一定（バイパス開度を一定）としたとき、実際の吸入空気量は大気圧Ｐａが低い程、少なくなる。また、大気温度Ｔａが高い程、空気の密度が小さくなるので、実際の吸入空気量（吸入空気の質量）は大気温度Ｔａが高い程、少なくなる。
【００９３】
このような吸入空気量のばらつきが生じると、内燃機関１が生成する排ガスの熱量（これは概ね吸入空気量に比例する）のばらつきも生じるため、触媒装置３の昇温形態のばらつきも生じる。このため、場合によっては、ＦＩＲＥモードにおける吸入空気量の増量の主目的である触媒装置３の早期の昇温・活性化を確実に行うことができず、ひいてはＦＩＲＥモードの動作中に触媒装置３の所要の浄化性能を確保することができなくなる虞れがある。
【００９４】
前記吸気量Ｆ／Ｂ制御補正処理及び大気条件補正処理は、このような不都合を解消するために行う処理であり、このうち、吸気量Ｆ／Ｂ制御補正処理は、前述した構造要因によるばらつきを補償するための処理、大気条件補正処理は、大気条件によるばらつきを補償するための処理である。
【００９５】
まず、前記構造要因によるばらつきを補償するための吸気量Ｆ／Ｂ制御補正処理に関して説明する。
【００９６】
この吸気量Ｆ／Ｂ制御補正処理における基本的な考え方としては、ＦＩＲＥモードの動作中に、内燃機関１の排ガスにより触媒装置３に実際に与える熱量を表す熱量データを逐次（制御サイクル毎に）検出もしくは推定して取得し、その熱量データの値が所定の目標値（これは触媒装置３に与えるべき目標熱量に相当する）に収束させるようにフィードバック制御処理によりバイパス開度の指令値を補正する。そして、この補正した指令値に基づきバイパス開度を操作することで、触媒装置３に実際に与える熱量を、それを表す上記熱量データの値の目標値に対応する目標熱量に合致させ、これにより、触媒装置３の昇温形態のばらつきを解消する。
【００９７】
この場合、触媒装置３に与える熱量を表す熱量データとしては、例えば制御サイクル毎（瞬時瞬時の）の吸入空気量もしくは燃料供給量（これらは基本的には触媒装置３に与える制御サイクル毎の（瞬時瞬時の）熱量に比例する）、あるいはそれらの積算値（これは触媒装置３に与える瞬時瞬時の熱量の積算値に比例する）、あるいは触媒装置３の温度上昇量（触媒装置３の初期温度からの温度上昇量が触媒装置３に与える瞬時瞬時の熱量の積算値に比例する）等が挙げられる。
【００９８】
そして、本実施形態では、上記熱量データとして例えば吸入空気量の積算値を用いることとし、ＦＩＲＥモードの動作中の内燃機関１の実際の吸入空気量の積算値を制御サイクル毎に次のように推定し、またその積算値の目標値を制御サイクル毎に次のように設定する。
【００９９】
まず、吸入空気量の積算値の推定に関し、本実施形態における制御サイクルである１ＴＤＣ当たりに内燃機関１の燃焼室４に吸入される吸入空気量は、概ね、前記図２に示したチャンバー１３の内圧、すなわち吸気圧Ｐｂに比例する。
【０１００】
そこで、本実施形態では、制御サイクル毎の吸入空気量の推定値gair/preを次式（１）により求める（以下、この推定値gair/preを推定吸入空気量gair/preという）。
【０１０１】
【数１】
0003779075.tif 000002
【０１０２】
ここで、式（１）中の係数Ｇa1は、あらかじめ定めた所定値（一定値）である。
【０１０３】
そして、この推定吸入空気量gair/preを、ＦＩＲＥモードの動作中に次式（２）により制御サイクル毎に累積加算していくことで、吸入空気量の積算値qair/preを求める（以下、この積算値qair/preを推定積算吸入空気量qair/preという）。
【０１０４】
【数２】
0003779075.tif 000003
【０１０５】
ここで、式（２）中のｋは制御サイクルの番数である（以下、同様）。
【０１０６】
尚、内燃機関１の実際の吸入空気量の積算値は、例えばエアーフローセンサ等により制御サイクル毎の吸入空気量を直接的に検出し、それを積算することで得るようにしてもよい。
【０１０７】
次に、触媒装置３に与える熱量の積算値の目標値に相当する吸入空気量の積算値の目標値（以下、目標積算吸入空気量qair/cmdという）は、触媒装置３の昇温・活性化を適正に行う上では、種々の形態で設定することが可能である。しかるに、その目標値は、ＦＩＲＥモードの動作中の内燃機関１の吸入空気量、ひいては内燃機関１の燃焼状態、エミッション状態等に影響を及ぼすこととなるので、該内燃機関１の運転の安定性を考慮する必要がある。
【０１０８】
そこで、本実施形態では、前述の如く理想的な条件下で、触媒装置３の昇温・活性化を適正に行い、また、安定した内燃機関１の運転を行い得るように定めた前記標準開度指令値θ0 に基づいて上記目標積算吸入空気量qair/cmdを設定する。
【０１０９】
すなわち、前記標準開度指令値θ0 は、バイパス開度の指令値に対して実際のバイパス開度や吸入空気量が一義的に定まる、大気圧Ｐａ及び大気温度Ｔａがそれぞれ一定の標準大気圧及び標準大気温度である、というような理想的な条件下で、触媒装置３の昇温・活性化を適正に行い、また、安定した内燃機関１の運転を行い得るように設定したものである。言い換えれば、標準開度指令値θ0 は、触媒装置３の昇温・活性化を適正に行い、また、安定した内燃機関１の運転を行うために燃焼室４に吸入されるべき最適な吸入空気量を規定するものである。
【０１１０】
従って、上記のような理想的な条件下で、バイパス開度を標準開度指令値θ0 に従って操作した場合における内燃機関１の燃焼室４の制御サイクル毎の吸入空気量を、制御サイクル毎の目標吸入空気量gair/cmdとして設定し、その目標吸入空気量gair/cmdの積算値を上記目標積算吸入空気量qair/cmdとして設定すればよい。
【０１１１】
この場合、上記目標吸入空気量gair/cmd及び目標積算吸入空気量qair/cmdは制御サイクル毎に次のように標準開度指令値θ0 から求めることができる。
【０１１２】
まず、実際のバイパス開度をθとしたとき、バイパス弁７を通過する単位時間（一定時間）当たりの空気量Ｇｉは、バイパス弁７の上流側の圧力である大気圧Ｐａと下流側の圧力である吸気圧Ｐｂとを用いて一般的に次式（３）により表される。
【０１１３】
【数３】
0003779075.tif 000004
【０１１４】
ここで、式（３）中のＣｉは、空気密度に応じた係数で、該空気密度は大気温度Ｔａに応じたものとなる。また、式（３）中のθの項は、厳密には、バイパス弁７の箇所の有効開口面積であるが、ここでは、この有効開口面積の代わりにバイパス開度θを用いている。尚、有効開口面積に代わりにバイパス開度θを用いることによる影響の補正は、係数Ｃｉに含めるようにしてもよい。
【０１１５】
この場合、前記の理想的条件下で、バイパス開度を標準開度指令値θ0 に従って操作したとき、式（３）において、θ＝θ0 、Ｐａ＝標準大気圧（一定）となり、また、係数Ｃｉも基本的には標準大気温度に応じた一定値となる。また、ＦＩＲＥモードにおける内燃機関１の定常的な運転状態では、吸気圧Ｐｂの変化は比較的小さく、概ね一定値となる。さらに、ＦＩＲＥモードにおける内燃機関１の定常的な運転状態では、前記スロットル弁５は基本的には閉弁状態で、内燃機関１の燃焼室４の吸入空気量は、バイパス弁７を通過する空気量Ｇｉに等しいと見なせる。
【０１１６】
従って、理想的条件下で、バイパス開度を標準開度指令値θ0 に従って操作したときの燃焼室４の単位時間（一定時間）当たりの吸入空気量は、標準開度指令値θ0 に比例する。
【０１１７】
よって、理想的条件下で、バイパス開度を標準開度指令値θ0 に従って操作したときの燃焼室４の１制御サイクル（１ＴＤＣ）当たりの吸入空気量、すなわち、前記目標吸入空気量gair/cmdは、次式（４）により求めることができる。
【０１１８】
【数４】
0003779075.tif 000005
【０１１９】
ここで、式（４）中で内燃機関１の回転数Ｎｅの逆数（１／Ｎｅ）の項が含まれるのは、本実施形態で１制御サイクル（１ＴＤＣ）の時間が回転数Ｎｅに反比例するからである。また、式（４）中のパラメータＧa2は、前述したことから明らかなように、標準大気圧や標準大気温度、ＦＩＲＥモードにおける内燃機関１の定常的な運転状態での標準的な吸気圧Ｐｂ等により定まる所定の定数である。
【０１２０】
そして、本実施形態では、この式（４）により求まる目標吸入空気量gair/cmdを、ＦＩＲＥモードの動作中に次式（５）により制御サイクル毎に累積加算していくことで、前記目標積算吸入空気量qair/cmdを求める。
【０１２１】
【数５】
0003779075.tif 000006
【０１２２】
尚、このようにして求められる目標積算吸入空気量qair/cmdは、標準開度指令値θ0 により定まるものであるため、内燃機関１の始動時の機関温度Ｔｗ（あるいは触媒装置３の初期温度）に応じたものとなる。また、該目標積算吸入空気量qair/cmdに対応して、内燃機関１の燃焼室４に吸入されるべき制御サイクル毎の吸入空気量、すなわち前記目標吸入空気量gair/cmdは、標準開度指令値θ0 と同じような時間的変化の形態でＦＩＲＥ経過時間t/fireに応じて変化するものとなる。
【０１２３】
また、上記のような目標積算吸入空気量qair/cmdは、あらかじめタイムテーブルにより設定しておき、このタイムテーブルを用いて制御サイクル毎にＦＩＲＥ経過時間t/fireから求めるようにしてもよい。
【０１２４】
本実施形態のシステムでは、前記吸気量Ｆ／Ｂ制御補正処理は、基本的には、上記のように求めた前記推定積算吸入空気量qair/pre（これは触媒装置３に実際に与える熱量の積算値に相当する）を目標積算吸入空気量qair/cmd（これは触媒装置３に与えるべき熱量の積算値の目標値に相当する）に収束させるように（これらの偏差を解消するように）フィードバック制御処理によりバイパス開度の指令値の補正量を求め、この補正量により標準開度指令値θ0 を補正してバイパス開度の指令値を決定することで、前述した構造要因による吸入空気量のばらつきを補償し、ひいては、触媒装置３の昇温形態のばらつきを解消するものである。
【０１２５】
この場合、吸気量Ｆ／Ｂ制御補正処理では、後述の如く、推定積算吸入空気量qair/preと目標積算吸入空気量qair/cmdとの偏差の減衰速度（推定積算吸入空気量qair/preの目標積算吸入空気量qair/cmdへの収束速度）を状況によって可変的に設定することが好ましいこと等から、該減衰速度を任意に所望の減衰速度に指定可能な応答指定型制御としてのスライディングモード制御（より詳しくは適応スライディングモード制御）を上記のフィードバック制御処理に用いる。
【０１２６】
この適応スライディングモード制御（以下、吸気側適応ＳＬＤ制御という）を用いて、推定積算吸入空気量qair/preを目標積算吸入空気量qair/cmdに収束させるようにバイパス開度の指令値を補正する吸気量Ｆ／Ｂ制御補正処理のアルゴリズムは本実施形態では次のように構築されている。尚、以下の説明においては説明の便宜上、しばらくの間、上記推定積算吸入空気量qair/preを含めて内燃機関１の燃焼室４の実際の吸入空気量の積算値を参照符号Ｑａを用いて積算吸入空気量Ｑａと称し、その目標値を参照符号ｑを用いて目標積算量ｑ（これは、目標積算吸入空気量qair/cmdに相当する）と称する。また、バイパス開度の指令値を一般的に参照符号Θを用いて開度指令Θと称する。
【０１２７】
まず、内燃機関１の燃焼室４の前記制御サイクル毎の実際の吸入空気量を参照符号Ｇcyl を用いて表し、この吸入空気量Ｇcyl と前記開度指令Θとの相関関係を次式（６）のように１次遅れ系の離散系（離散時間系）モデル（１次の自己回帰モデル）で表現する。
【０１２８】
【数６】
0003779075.tif 000007
【０１２９】
ここで、式（６）中のα，βは、大気圧Ｐａや大気温度Ｔａ、吸気圧Ｐｂ、回転数Ｎｅ等に応じたモデルパラメータである。
【０１３０】
また、制御サイクル毎の前記積算吸入空気量Ｑａは、次式（７）により表されるので、
【０１３１】
【数７】
0003779075.tif 000008
【０１３２】
この式（７）と前記式（６）とを用いて次式（８）が得られる。
【０１３３】
【数８】
0003779075.tif 000009
【０１３４】
ここで、この式（８）中のＧcyl(k)は、式（７）によってＧcyl(k)＝Ｑa(k)−Ｑa(k-1)であるので、これを式（８）に代入して整理すると、次式（９）が得られる。
【０１３５】
【数９】
0003779075.tif 000010
【０１３６】
この式（９）は、本実施形態のシステムにおいて、開度指令Θから積算吸入空気量Ｑａを生成する系、すなわち、前記吸気側適応ＳＬＤ制御の制御対象とすべき系を離散系のモデル（２次の自己回帰モデル。以下、吸気制御対象モデルという）で表現したものとなっている。すなわち、該吸気制御対象モデルは、吸気側適応ＳＬＤ制御の制御対象の出力としての各制御サイクルにおける積算吸入空気量Ｑa(k+1)を、それより過去の制御サイクルにおける積算吸入空気量Ｑａの時系列データＱa(k)，Ｑa(k-1)、並びに吸気側適応ＳＬＤ制御の制御対象の入力としての開度指令Θ(k) を用いて表現するものである。尚、式（９）において、積算吸入空気量Ｑa(k)，Ｑa(k-1)にそれぞれ係る係数ａ1 ，ａ2 と、開度指令Θ(k) に係る係数ｂ1 とは吸気制御対象モデルの挙動特性を規定するモデルパラメータである。
【０１３７】
本実施形態では、この吸気制御対象モデルに基づいて、吸気側適応ＳＬＤ制御のアルゴリズムを以下の如く構築している。
【０１３８】
すなわち、吸気側適応ＳＬＤ制御では、スライディングモード制御に必要な切換関数σ1 を、前記積算吸入空気量Ｑａと前記目標積算量ｑとの偏差Ｅｑ＝Ｑａ−ｑの制御サイクル毎の時系列データＥq(k)，Ｅq(k-1)を変数とする次式（１０）の線形関数により定義する。
【０１３９】
【数１０】
0003779075.tif 000011
【０１４０】
ここで、式（１０）中のｓ1 ，ｓ2 は切換関数σ1 の各項の係数パラメータであり、次式（１１）の条件を満たすように設定する。
【０１４１】
【数１１】
0003779075.tif 000012
【０１４２】
尚、本実施形態では、簡略化のためにｓ1 ＝１としている。また、本実施形態では、係数パラメータｓ2 の値（より一般的には、ｓ2 ／ｓ1 の値）を可変的に設定するのであるが、これについては後述する。
【０１４３】
このように切換関数σ1 を定義したとき、前記偏差Ｅｑの時系列データＥq(k)，Ｅq(k-1)の組から成る状態量（Ｅq(k)，Ｅq(k-1)）を図８に示す如く、σ1 ＝０なる関係式によって定義される切換線（これはすべり線とも言われる）上に収束させ、その収束状態を維持すると、状態量（Ｅq(k)，Ｅq(k-1)）を、外乱等の影響によらずに極めて安定に切換線σ1 ＝０上の平衡点、すなわち、Ｅq(k)＝Ｅq(k-1)＝０となる点に収束させることができる。
【０１４４】
尚、本実施形態では、切換関数σ1 に関する位相空間が２次元であるため（状態量（Ｅq(k)，Ｅq(k-1)）の成分が二つ）、切換線σ1 ＝０は直線となるが、位相空間が３次元である場合には、切換線は平面となり、この場合には、該切換線はすべり面といわれることもある。さらに、位相空間が４次元以上の高次元になると、切換線は幾何学的に図示できない超平面となる。
【０１４５】
一方、前記積算吸入空気量Ｑａを前記目標積算量ｑに収束させるために、前記式（９）によりモデル化した制御対象に与えるべき入力として吸気側適応ＳＬＤ制御が生成する制御入力、すなわち開度指令Θは、基本的には、前記状態量（Ｅq(k)，Ｅq(k-1)）を前述の如く定めた切換線σ1 ＝０に拘束するための制御則に基づいて定める等価制御入力Θeqと、状態量（Ｅq(k)，Ｅq(k-1)）を切換線σ1 ＝０に収束させるための制御則である到達則に基づいて定める到達則入力Θrch と、状態量（Ｅq(k)，Ｅq(k-1)）の切換線σ1 ＝０への収束に際しての外乱等の影響を排除するための制御則である適応則に基づいて定める適応則入力Θadp との総和である（次式（１２）を参照）。
【０１４６】
【数１２】
0003779075.tif 000013
【０１４７】
尚、通常のスライディングモード制御では、適応則を考慮せず、この場合には、適応則入力Θadp は省略される。
【０１４８】
この場合、等価制御入力Θeqは、次式（１３）により与えられる。
【０１４９】
【数１３】
0003779075.tif 000014
【０１５０】
尚、この式（１３）は、状態量（Ｅq(k)，Ｅq(k-1)）を切換線σ1 ＝０に拘束するためのσ1(k)＝σ1(k-1)なる条件と、前記吸気制御対象モデルの式（９）とに基づいて導出することができるものである。
【０１５１】
また、到達則入力Θrch 及び適応則入力Θadp は、それらを定める種々の手法が考えられるが、本実施形態では、到達則入力Θrch 及び適応則入力Θadp は、それぞれ前記切換関数σ1 の値、及び該切換関数σ1 の値の積算値（積分値）に比例させたものとし、それぞれ次式（１４）、（１５）により定める。
【０１５２】
【数１４】
0003779075.tif 000015
【０１５３】
【数１５】
0003779075.tif 000016
【０１５４】
ここで、式（１４）中のＦ1 は、到達則に係わるゲインを規定する係数であり、次式（１６）の条件を満たすように設定すればよい。但し、切換関数σ1 の値の切換線σ1 ＝０への収束に際してのチャタリングを低減する上では、式（１６）’の条件を満たすように係数Ｆ1 を設定することが好ましい。
【０１５５】
【数１６】
0003779075.tif 000017
【０１５６】
また、式（１５）中のＦ2 は、適応則に係わるゲインを規定する係数であり、次式（１７）の条件を満たすように設定すればよい。尚、式（１７）中のΔＴは制御サイクル（制御周期）である。
【０１５７】
【数１７】
0003779075.tif 000018
【０１５８】
本実施形態で用いる吸気側適応ＳＬＤ制御のアルゴリズムでは、基本的には、式（１３）〜（１５）により等価制御入力Θeq、到達則入力Θrch 及び適応則入力Θadp を求め、それらの総和を開度指令Θとして生成することで、前記積算吸入空気量Ｑａを前記目標積算量ｑに収束させるようにＦＩＲＥモードの動作中の吸入空気量を操作することが可能である。
【０１５９】
ところで、等価制御入力Θeq、到達則入力Θrch 及び適応則入力Θadp をそれぞれ前記式（１３）〜（１５）により求めるためには、前記式（９）により表した吸気制御対象モデルのモデルパラメータａ1 ，ａ2 ，ｂ1 の値を同定しておく必要がある。しかるに、これらのモデルパラメータａ1 ，ａ2 ，ｂ1 の値は、ＦＩＲＥモードの動作中の種々様々の要因の影響を受け、それらの値の最適な同定を行うことは煩雑なものとなりやすい。
【０１６０】
このため、本実施形態では、次のようにモデルパラメータａ1 ，ａ2 ，ｂ1 を排除し、吸気側適応ＳＬＤ制御の簡略化したアルゴリズムを構築する。
【０１６１】
まず、到達則入力Θrch 及び適応則入力Θadp に関しては、これらを求めるための前記式（１４）、（１５）中に含まれるモデルパラメータはｂ1 だけである。そして、式（１４）で（Ｆ1 ／ｂ1 ）を改めてＦｘとおき、また、式（１５）で（Ｆ2 ／ｂ1 ）を改めてＦｙとおけば、式（１４）、（１５）はそれぞれ次式（１８）、（１９）に書き換えられる。
【０１６２】
【数１８】
0003779075.tif 000019
【０１６３】
【数１９】
0003779075.tif 000020
【０１６４】
従って、これらの式（１８）、（１９）によって、モデルパラメータｂ1 を用いずに到達則入力Θrch 及び適応則入力Θadp を求めることができる。
【０１６５】
尚、この場合、式（１８）、（１９）中の係数Ｆｘ，Ｆｙの値は、切換関数σ1 の値の切換線σ1 ＝０への収束の安定性や速応性等を考慮して、実験やシミュレーションを通じて定めればよい。
【０１６６】
次に、等価制御入力Θeqに関しては、これを求めるための前記式（１３）は、前記偏差Ｅｑ＝Ｑａ−ｑを用いて次式（２０）に書き換えることができる。
【０１６７】
【数２０】
0003779075.tif 000021
【０１６８】
この式（２０）中の第１番目の大括弧を含む項は、積算吸入空気量Ｑａと目標積算量ｑとの偏差Ｅｑに基づくフィードバック項で、第２番目の大括弧を含む項は、目標積算量ｑのみに基づくフィードフォワード項である。以下、このフィードバック項及びフィードフォワード項をそれぞれ次式（２１）、（２２）のようにΘeq/fb 、Θeq/ff とおく。
【０１６９】
【数２１】
0003779075.tif 000022
【０１７０】
【数２２】
0003779075.tif 000023
【０１７１】
ここで、上記フィードフォワード項Θeq/ff は、前記偏差Ｅｑが定常的に「０」となるような状態で制御対象に与えるべき入力（開度指令Θ）である。一方、前記標準開度指令値θ0 は、本実施形態では目標積算量ｑを規定するものであると共に、該標準開度指令値θ0 に対して吸入空気量、ひいては積算吸入空気量がその目標とすべき値に一義的に定まりるものとしてフィードフォワード的に設定したものである。
【０１７２】
従って、式（２０）中のフィードフォワード項Θeq/ff は、モデルパラメータａ1 ，ａ2 ，ｂ1 を含まない標準開度指令値θ0 に置き換えることができる。
【０１７３】
さらに、上記フィードバック項Θeq/fb に関しては、このフィードバック項Θeq/fb を含む等価制御入力Θeqは、前記状態量（Ｅq(k)，Ｅq(k-1)）を前記切換線σ1 ＝０上に拘束するための制御入力であるが、本願発明者等の各種検討によれば、本実施形態のシステムでは、状態量（Ｅq(k)，Ｅq(k-1)）が切換線σ1 ＝０の近傍に存する状態において安定性が高い。また、本実施形態では、前記適応則入力Θadp を採用することで、状態量（Ｅq(k)，Ｅq(k-1)）の切換線σ1 ＝０上への収束の安定性を高めることができる。
【０１７４】
このため、本実施形態のシステムでは、上記フィードバック項Θeq/fb を省略しても実用上、制御性が損なわれることはないと考えられる。
【０１７５】
このようなことを考慮すると、等価制御入力Θeqは、そのフィードバック項Θeq/fb を省略し、フィードフォワード項Θeq/ff を標準開度指令値θ0 で置き換えたものとしてもよいと考えられ、このようにすれば、等価制御入力Θeqは、モデルパラメータａ1 ，ａ2 ，ｂ1 を用いずに求めることができる。
【０１７６】
そこで、本実施形態では、吸気側適応ＳＬＤ制御の等価制御入力Θeqは、次式（２３）により与えるものとする。
【０１７７】
【数２３】
0003779075.tif 000024
【０１７８】
以上のことから、本実施形態における吸気量Ｆ／Ｂ制御補正処理では、前述した構造要因による吸入空気量のばらつきを補償するために前記吸気側適応ＳＬＤ制御により決定する制御対象への入力、すなわち開度指令Θを次式（２４）の演算により求める。
【０１７９】
【数２４】
0003779075.tif 000025
【０１８０】
別の言い方をすれば、本実施形態では、前記式（１８）、（１９）により求まる到達則入力Θrch 及び適応則入力Θadp の総和（＝Θrch ＋Θadp ）を次式（２５）のようにバイパス開度の指令値の補正量i/sld （以下、ＳＬＤ開度補正量i/sld という）として求め、このＳＬＤ開度補正量i/sld により標準開度指令値θ0 を補正する（標準開度指令値θ0 にＳＬＤ開度補正量i/sld を加算する）ことで、構造要因によるばらつきを補償するための開度指令Θを求める。
【０１８１】
【数２５】
0003779075.tif 000026
【０１８２】
この場合において、ＳＬＤ開度補正量i/sld （＝Θrch ＋Θadp ）を求めるために必要となる切換関数σ1 の値は、本実施形態では、前記式（１０）の積算吸入空気量Ｑａとして前記式（２）により求まる推定積算吸入空気量qair/preを用い、且つ、目標積算量ｑとして前記式（５）により求まる目標積算吸入空気量qair/cmdを用いた次式（２６）の演算により求める。
【０１８３】
【数２６】
0003779075.tif 000027
【０１８４】
尚、本実施形態では、ＦＩＲＥモードの中断動作中（前記ＦＩＲＥ中断フラグf/fpauseが「１」に設定されている状態）は、ＳＬＤ開度補正量i/sld の算出は中断する（ＳＬＤ開度補正量i/sld の値を中断動作の直前の値に保持する）が、推定積算吸入空気量qair/preと目標積算吸入空気量qair/cmdの算出は継続する（但し、推定積算吸入空気量qair/preに関しては内燃機関１のフュエルカット中を除く）。そして、前記ＦＩＲＥ制限時間TFIRELMTが経過する前に、中断動作を解除する状態となった場合には、ＳＬＤ開度補正量i/sld の算出及びそれに応じた標準開度指令値θ0 の補正を再開する。
【０１８５】
このようにするのは次の理由による。すなわち、ＦＩＲＥモードの中断動作中は、基本的には、車両のアクセルペダルの操作によって、車両の走行、もしくは内燃機関１のからぶかしを行う状況である。そして、この状況では、前記スロットル弁５がアクセル操作量Ａｐに応じた開度に開かれるので、内燃機関１の燃焼室４の実際の吸入空気量は、バイパス弁７を介した吸入空気量に、スロットル弁５を介した吸入空気量を加えたものとなる。
【０１８６】
このような状況では、推定積算吸入空気量qair/preは、バイパス弁７とスロットル弁５との両者による吸入空気量の積算値となるので、これをバイパス弁７の標準開度指令値θ0 に応じて定まる目標積算吸入空気量qair/cmdに収束させるようにバイパス開度を操作することは、アクセルペダルの操作に応じた内燃機関１の動作性能を確保する上で好ましくない。このために、本実施形態では、ＦＩＲＥモードの中断動作中は、ＳＬＤ開度補正量i/sld の算出を中断する。
【０１８７】
また、ＦＩＲＥモードの中断動作中は、内燃機関１の燃焼室４の実際の吸入空気量は、バイパス弁７を介した吸入空気量に、スロットル弁５を介した吸入空気量を加えたものとなるので、触媒装置３に与えられる熱量がさらに多くなる。従って、ＦＩＲＥモードの中断動作中に触媒装置３が十分に昇温・活性化される場合もあるが、該中断動作が短時間で解除されるような場合も多く、この場合には、該触媒装置３の昇温・活性化が未だ不十分なものとなることがある。このために、本実施形態では、ＦＩＲＥモードの中断動作中も推定積算吸入空気量qair/preと目標積算吸入空気量qair/cmdの算出を継続して行っておき、該中断動作の解除後にＳＬＤ開度補正量i/sld の算出を再開して標準開度指令値θ0 の補正を行うことで、ＦＩＲＥモードの動作中における触媒装置３の昇温・活性化を確実なものとする。但し、この場合において、推定積算吸入空気量qair/preに関しては、内燃機関１のフュエルカット中は、燃焼室４に吸入される空気が触媒装置３に与える熱量に寄与しないので、該フュエルカット中は、推定積算吸入空気量qair/preの算出を行わない。
【０１８８】
また、本実施形態では、後述する点火時期応動補正処理を行っている際にも、ＳＬＤ開度補正量i/sld の算出を中断する（ＳＬＤ開度補正量i/sld の値を中断動作の直前の値に保持する）。これは次の理由による。すなわち、点火時期応動補正処理は、詳細は後述するが、開度指令Θを標準開度指令値θ0 に対してフィードフォワード的に減少側に補正する処理であり、このような処理を行っている際に、ＳＬＤ開度補正量i/sld の算出を行うと、点火時期応動補正処理による開度指令Θの減少分を打ち消すように、ＳＬＤ開度補正量i/sld が算出されてしまうからである。
【０１８９】
以上説明した内容が、吸気量Ｆ／Ｂ制御補正処理の基本的内容である。
【０１９０】
ところで、本実施形態において、内燃機関１の吸入空気量の増量を開始した直後の段階、すなわち、バイパス開度を上昇させていく段階は、内燃機関１の始動直後の状態であるため、このような段階で標準開度指令値θ0 をＳＬＤ開度補正量i/sld により大きく補正すると、内燃機関１の燃焼室４での混合気の燃焼状態の悪化や内燃機関１のエミッション状態の悪化を招く虞れがある。また、本実施形態では、目標積算吸入空気量qair/cmdが、内燃機関１の定常的な吸気状態を前提としているため、吸入空気量の増量の開始直後の段階では、目標積算吸入空気量qair/cmdの信頼性が乏しいと考える。このため、吸入空気量の増量の開始直後の段階では、目標積算吸入空気量qair/cmdと前記推定積算吸入空気量qair/preとの偏差Ｅｑが大きなものとなって、前記ＳＬＤ開度補正量i/sld も大きなものとなる虞れがある。
【０１９１】
このようなことを考慮し、本実施形態における吸気量Ｆ／Ｂ制御補正処理では、吸入空気量の増量の開始後（ＦＩＲＥモードの開始後）、所定時間TISLDLMT（ＳＬＤ補正制限時間TISLDLMTという。図７を参照）が経過するまで（ＦＩＲＥ経過時間t/fire≧TISLDLMTとなるまで）の間は、目標積算吸入空気量qair/cmd及び推定積算吸入空気量qair/preの値を強制的に「０」とする（このときＥｑ＝０となる）。このようにすることで、ＦＩＲＥ経過時間t/fireがＳＬＤ補正制限時間TISLDLMTに達するまでの内燃機関１の始動直後の状態では、ＳＬＤ開度補正量i/sld の値も「０」に維持し、該ＳＬＤ開度補正量i/sld による標準開度指令値θ0 の補正を行わないようにしている。
【０１９２】
さらに、本実施形態における吸気量Ｆ／Ｂ制御補正処理では、ＳＬＤ開度補正量i/sld による標準開度指令値θ0 の実際の補正を開始する直後においても、その補正を急激に行うと、内燃機関１の燃焼状態やエミッション性能を損なう虞れがある。このため、本実施形態では、吸気量Ｆ／Ｂ制御補正処理で用いる前記吸気側適応ＳＬＤ制御の応答指定特性を利用し、推定積算吸入空気量qair/preと目標積算吸入空気量qair/cmdとの偏差Ｅｑ（以下、吸気偏差Ｅｑという）の減衰速度（推定積算吸入空気量qair/preの目標積算吸入空気量qair/cmdへの収束速度）を、次のように可変的に設定するようにしている。
【０１９３】
すなわち、吸気側適応ＳＬＤ制御において、吸気偏差Ｅｑに係わる状態量（Ｅq(k)，Ｅq(k-1)）が前記切換線σ1 ＝０に収束した状態では、前記式（１０）から明らかなように、次式（２７）の関係式が成立する。
【０１９４】
【数２７】
0003779075.tif 000028
【０１９５】
従って、切換関数σ1 の係数パラメータｓ1 ，ｓ2 の比（ｓ2 ／ｓ1 ）（但し、−１＜ｓ2 ／ｓ1 ＜１）の値は吸気偏差Ｅｑの「０」への減衰速度を規定するものとなる（｜ｓ2 ／ｓ1 ｜が「０」に近づく程、減衰速度は速くなる）。従って、この比（ｓ2 ／ｓ1 ）の値によって、吸気偏差Ｅｑの減衰速度を指定することができることとなり、これが、吸気側適応ＳＬＤ制御の応答指定特性である。
【０１９６】
尚、吸気偏差Ｅｑの減衰速度を速くするということは、吸気側適応ＳＬＤ制御によるフィードバック制御のゲインを大きくするということと同等である。また、式（２７）は、入力の無い一次遅れ系を表現しており、上記比（ｓ2 ／ｓ1 ）は、この一次遅れ系の極に相当するものである（以下、上記比（ｓ2 ／ｓ1 ）をポールpole/iと称する）。また、本実施形態では、ｓ1 ＝１に設定しており、この場合、pole/i＝ｓ2 である。また、吸気偏差Ｅｑの「０」への減衰は、非振動的であることが好ましく、このため、本実施形態では、ｓ2 ／ｓ1 ＝pole/i＜０としている（ｓ2 ／ｓ1 ＞０とすると、式（２７）から明らかなように吸気偏差Ｅｑの「０」への減衰は振動的になる）。
【０１９７】
本実施形態における吸気量Ｆ／Ｂ制御補正処理では、このような吸気側適応ＳＬＤ制御の応答指定特性を利用し、基本的には、ＦＩＲＥ経過時間t/fireから、図９に示すようにあらかじめ定めたデータテーブル（タイムテーブル）に基づいて制御サイクル毎に求まる値pole/itbl （以下、ポールテーブル値pole/itbl という）を前記ポールpole/iの値として設定することで、該ポールpole/iの値をＦＩＲＥ経過時間t/fireに応じて可変的に設定する。
【０１９８】
ここで、図９のデータテーブルでは、ＦＩＲＥ経過時間t/fireが所定値TPOLEVST（但し、TPOLEVST≧ＳＬＤ補正制限時間TISLDLMT）に達してから、ポールテーブル値pole/itbl 、ひいてはポールpole/iをＦＩＲＥ経過時間t/fireの増加に伴い、所定の下限値pole/i0 （＜０。本実施形態では「−１」）から所定の定常値pole/ix （pole/i0 ＜pole/ix ＜０）に向かって徐々に増加させ（ポールテーブル値pole/itbl の絶対値を徐々に小さくしていく）、定常値pole/ix に達した後（ＦＩＲＥ経過時間t/fireが図９中の所定値TPOLEXに達した後）は、該定常値pole/ix に維持するようにしている。これにより、本実施形態では、ＳＬＤ開度補正量i/sld による標準開度指令値θ0 の補正を開始する直後は、吸気偏差Ｅｑの減衰速度を徐々に早めていく（推定積算吸入空気量qair/preの目標積算吸入空気量qair/cmdへの収束を緩やかに行う）ようにしていると共に、ＦＩＲＥ経過時間t/fireが所定値TPOLEXに達するまでは、該所定値TPOLEXに達した後よりも吸気偏差Ｅｑの減衰速度を遅くするようにしている。
【０１９９】
尚、ポールテーブル値pole/itbl によるポールpole/iの上記のような増加は、基本的には内燃機関１の始動後の初期段階（吸入空気量を増加させていく段階）で行う。
【０２００】
また、本実施形態では、ＦＩＲＥモードの中断動作中は、吸気量Ｆ／Ｂ制御補正処理（より正確には、ＳＬＤ開度補正量i/sld の算出処理）を行わないようにしており、この状態では、ポールpole/iをポールテーブル値pole/itbl の前記下限値pole/i0 に設定するようにしている。そして、ＦＩＲＥモードの中断動作が解除されたとき、ポールpole/iを上記下限値pole/i0 からポールテーブル値pole/itbl に向かって徐々に復帰させる（図９の仮想線を参照）ようにしている。
【０２０１】
次に、前述した大気条件による吸入空気量のばらつきの影響を補償するための前記大気条件補正処理について説明する。
【０２０２】
まず、前記大気条件のうちの大気圧に関して説明する。尚、ここでの説明では、大気温度は一定であり、また、バイパス開度は開度指令Θに等しいものとする。
【０２０３】
内燃機関１の燃焼室４内の圧力をＰcyl 、吸気バルブ１１（図２参照）の開度（有効開口面積）をＡcyl とおくと、該燃焼室４の吸入空気量Ｇcyl は、これらの圧力Ｐcyl 、開度Ａcyl 及び吸気圧Ｐｂとを用いて、一般的に次式（２８）により表される。
【０２０４】
【数２８】
0003779075.tif 000029
【０２０５】
ここで、Ｃｉは、前記式（３）に関して説明した如く、空気密度に応じた係数である。
【０２０６】
この場合、内燃機関１では、式（２８）中における燃焼室４内の圧力をPcyl、吸気バルブ１１の開度Ａcyl は基本的には一定である。また、係数Ｃｉも大気温度Ｔａが一定であれば一定と考えてよい。
【０２０７】
従って、式（２８）から、燃焼室４内の吸入空気量Ｇcyl を大気圧によらないものとするためには、吸気圧Ｐｂが大気圧Ｐａに応じて変化しないことが必要となることが判る。
【０２０８】
一方、バイパス開度の開度指令Θに対して、バイパス弁７を通る空気量Ｇｉは、前記式（３）と同様、次式（２９）により表される。
【０２０９】
【数２９】
0003779075.tif 000030
【０２１０】
さらに、大気圧Ｐａが所定の標準大気圧（以下、これに参照符号Ｐa0を付する）である状態において、開度指令Θを前記標準開度指令値θ0 （これは前述の通り標準大気圧Ｐa0を前提として定めたものである）としたときにバイパス弁７を通る空気量をＧi0（これは前記目標吸入空気量gair/cmdに相当する）とおくと、該空気量Ｇi0（以下、標準空気量Ｇi0という）は、次式（３０）により表される。
【０２１１】
【数３０】
0003779075.tif 000031
【０２１２】
ここで、式（３０）中のＰb0は、標準大気圧Ｐa0において、バイパス開度を標準開度指令値θ0 としたときにチャンバー１３（図２参照）内に発生する吸気圧（以下、標準吸気圧Ｐb0という）である。
【０２１３】
また、周知の気体の状態方程式によれば、チャンバー１３内の吸気圧Ｐｂが変動しないための条件は、チャンバー１３内に流入する空気量、すなわちバイパス弁７を通る空気量Ｇi と、チャンバー１３から流出する空気量、すなわち燃焼室４の吸入空気量Ｇcyl とが等しくなることである。
【０２１４】
以上のことから、大気圧Ｐａが標準大気圧Ｐa0に対して変動したとき、燃焼室４の吸入空気量Ｇcyl が変化しないようにするための開度指令Θは、式（２９）中の吸気圧Ｐｂが、前記標準吸気圧Ｐb0と等しくなり、且つ、式（２９）により表される空気量Ｇｉが前記標準空気量Ｇi0（式（３０））と等しくなるように定めればよい。
【０２１５】
すなわち、その開度指令Θは、次式（３１）の条件を満たすように定めればよい。
【０２１６】
【数３１】
0003779075.tif 000032
【０２１７】
そして、この式（３１）を開度指令Θについて解くと、次式（３２）が得られる。
【０２１８】
【数３２】
0003779075.tif 000033
【０２１９】
従って、基本的には、この式（３２）に基づいて標準開度指令値θ0 を補正して開度指令Θを決定すれば、大気圧による吸入空気量のばらつきを補償しすることができる。つまり、式（３２）中の平方根の値kpa （以下、大気圧補正係数kpa という）を開度指令に乗算して補正することで、大気圧による吸入空気量のばらつきを補償するための開度指令を決定することができる。
【０２２０】
ところで、本実施形態では、標準開度指令値θ0 を前述の如く時間的に変化させるため、式（３２）の演算で使用する標準吸気圧Ｐb0も変化し、従って、大気圧による吸入空気量のばらつきを的確に補償する上では、標準吸気圧Ｐb0の値をあらかじめ定めたデータテーブル等を用いて標準開度指令値θ0 に応じて適宜変更することが好ましいと考えられる。但し、本実施形態では、ＦＩＲＥモードにおける定常的な内燃機関１の運転中は、実際上、吸気圧Ｐｂの変動は小さいということ、並びに制御系の安定性を考慮し、式（３２）中の標準吸気圧Ｐb0としてあらかじめ定めた所定値（固定値）を用いる。
【０２２１】
また、本実施形態では、コントローラ２の演算負荷を軽減するために、実際には、式（３２）の演算を直接的には行わず、次のような処理を行う。
【０２２２】
すなわち、制御サイクル毎に、あらかじめ定めた標準大気圧Ｐa0と、標準吸気圧Ｐb0と、内燃機関１の始動時（始動モード）において前記大気圧センサ１８により検出される大気圧Ｐａとから次式（３３）により定義するパラメータratio/dpa （以下、大気圧補正用パラメータratio/dpa という）、すなわち、式（３２）の平方根（√）内の値を求める。
【０２２３】
【数３３】
0003779075.tif 000034
【０２２４】
そして、あらかじめ大気圧補正用パラメータratio/dpa の種々の値に対して平方根の演算を行って定めた図１０のデータテーブルを用意しておき、先に求めた大気圧補正用パラメータratio/dpa の平方根を前記大気圧補正係数kpa として求める。そして、この大気圧補正係数kpa を用いて開度指令を補正（乗算補正）する。
【０２２５】
尚、この大気圧補正係数kpa は、大気圧センサ１８により検出される大気圧Ｐａが標準大気圧Ｐa0であれば、「１」であり、該大気圧Ｐａが大きくなる程、値が小さくなる。
【０２２６】
以上説明した内容が、前記大気条件補正処理において、大気圧による吸入空気量のばらつきを補償するための処理の基本的内容である。
【０２２７】
次に、大気条件のうちの大気温度に関して説明する。前記式（２８）から明らかなように内燃機関１の燃焼室４の吸入空気量Ｇcyl は、大気密度に応じた係数Ｃｉの影響を受け、大気密度が高い程、多くなる。そして、大気密度は、大気温度が高い程、低くなるので、燃焼室４の吸入空気量Ｇcyl は大気温度が高い程、少なくなる。
【０２２８】
従って、大気温度が変化しても、燃焼室４の吸入空気量Ｇcyl を変化させないようにするためには、大気温度が高い程、バイパス開度が大きくなるように開度指令Θを補正してやればよい。
【０２２９】
そこで、本実施形態では、内燃機関１の始動時（始動モード）において前記大気温度センサ１７により検出される大気温度Ｔａから、図１１に示す如くあらかじめ実験等に基づき定めたデータテーブルに基づいて補正係数kta （以下、大気温度補正係数kta という）を求め、この大気温度補正係数kta を用いて開度指令を補正（乗算補正）する。
【０２３０】
この場合、本実施形態では、標準大気温度Ｔa0（例えば２５°Ｃ）における吸入空気量を基準としているので、大気温度補正係数kta は、検出される大気温度Ｔａが標準大気温度Ｔa0であるとき「１」であり、大気温度Ｔａが高くなる程、値が大きくなる。
【０２３１】
これが、前記大気条件補正処理において、大気温度による吸入空気量のばらつきを補償するための処理の基本的内容である。
【０２３２】
次に、前記学習補正処理について説明する。
【０２３３】
本実施形態では、前述した如く、前記構造要因による吸入空気量のばらつきを補償するために、吸気側適応ＳＬＤ制御を用いた吸気量Ｆ／Ｂ制御補正処理によって、制御サイクル毎に前記ＳＬＤ開度補正量i/sld を求め、このＳＬＤ開度補正量i/sld によって標準開度指令値θ0 を補正する。この場合、バイパス弁７の経年劣化等により、標準開度指令値θ0 に対する実際の吸入空気量が、該標準開度指令値θ0 に対応した本来の標準的な吸入空気量に対してばらつきが比較的大きくなっているような状態では、前記積算吸入空気量Ｑａ（推定積算吸入空気量qair/pre）が目標積算量ｑ（目標積算吸入空気量qair/cmd）に対して未収束の段階でのＳＬＤ開度補正量i/sld は大きなものとなり、また、その時間的変化も大きなものとなる。このため、ＳＬＤ開度補正量i/sld により標準開度指令値θ0 を補正して決定した開度指令Θ、ひいては実際の吸入空気量の時間的変化のパターンは、ＦＩＲＥモードの初期段階において、標準開度指令値θ0 の時間的変化のパターン（目標とする吸入空気量の時間的変化のパターン）に対して大きく逸脱した時間的変化を生じるものとなることがある。
【０２３４】
しかるに、特にＦＩＲＥモードの初期段階（内燃機関１の始動後まもなくの状態）では、燃焼室４での混合気の燃焼状態が不安定なものとなりやすく、開度指令Θの時間的変化のパターンが標準開度指令値θ0 の時間的変化のパターンに対して大きく逸脱した変化を呈すると、該燃焼状態の悪化や、エミッション状態の悪化を引き起こす虞れがある。
【０２３５】
そこで、本実施形態における学習補正処理では、ＦＩＲＥモードの動作中に制御サイクル毎に求めるを学習し、次回のＦＩＲＥモードの動作の全期間にわたって、標準開度指令値θ0 を乗算補正するための補正係数kilearn （以下、学習補正係数kilearn という）を求める。そして、この学習補正係数kilearn を標準開度指令値θ0 に乗算することで、標準開度指令値θ0 の時間的変化のパターンと整合した安定な時間的変化を呈する開度指令Θを生成する。
【０２３６】
この場合、学習補正係数kilearn は、本実施形態では次のように決定する。
【０２３７】
すなわち、各回のＦＩＲＥモードの動作中に制御サイクル毎に求められるＳＬＤ開度補正量i/sld から、次式（３４）によって、該ＳＬＤ開度補正量i/sld に対応する実際の吸入空気量の補正量gair/sld（以下、ＳＬＤ吸気補正量gair/sldという）を制御サイクル毎に求める。
【０２３８】
【数３４】
0003779075.tif 000035
【０２３９】
ここで、この式（３４）は、前記目標吸入空気量gair/cmd、すなわち標準開度指令値θ0 に対応した実際の吸入空気量（１ＴＤＣ当たり）を求めるための式（４）と同様の式であり、式（３４）中のＧa2は、式（４）中のＧa2と同一である。
【０２４０】
さらに、このＳＬＤ吸気補正量gair/sldを次式（３５）により制御サイクル毎に累積加算することで、ＳＬＤ吸気補正量gair/sldの積算値qair/sld（以下、ＳＬＤ積算吸気補正量qair/sldという）を求める。
【０２４１】
【数３５】
0003779075.tif 000036
【０２４２】
そして、このＳＬＤ積算吸気補正量qair/sldの前記目標積算吸入空気量qair/cmdに対する比（qair/sld／qair/cmd）から次式（３６）により求まる値を前記学習補正係数kilearn の基本値vpskisld（以下、基本学習補正係数vpskisldという）を求める。
【０２４３】
【数３６】
0003779075.tif 000037
【０２４４】
尚、この基本学習補正係数vpskisldは、基本的には、ＦＩＲＥモードの動作が終了するまで制御サイクル毎に算出するが、ＦＩＲＥモードの前記中断動作が行われる場合や、後述する点火時期応動補正処理が行われる場合にあっては、前述の如くＳＬＤ開度補正量i/sld の算出を中断するので、ＦＩＲＥモードの中断動作や点火時期応動補正処理が開始される前（前記学習演算終了フラグf/flrnend が「１」に設定される前）までで基本学習補正係数vpskisldの算出を終了する。
【０２４５】
そして、このようにして各回のＦＩＲＥモードの動作中に最終的に求められた基本学習補正係数vpskisldに対して次式（３７）によるなまし演算処理（フィルタリング処理）を施すことで、次回のＦＩＲＥモードの動作に際して標準開度指令値θ0 を補正するための学習補正係数kilearn を求める。
【０２４６】
【数３７】
0003779075.tif 000038
【０２４７】
ここで、式（３７）中のkilearn(j)は、今回のＦＩＲＥモードの動作によって新たに決定する学習補正係数kilearn を意味し、kilearn(j-1)は、前回のＦＩＲＥモードの動作によって決定された学習補正係数kilearn を意味する。また、式（３７）中のＣkiは、あらかじめ定めた「１」以下の定数である。
【０２４８】
尚、この場合において、各回のＦＩＲＥモードの動作において、最終的な基本学習補正係数vpskisldが求められた時のＦＩＲＥ経過時間t/fire（これは、前記図５のフローチャートのＳＴＥＰ５−５，５−１６等で設定されるパラメータt/kil の値である）が所定時間に満たない場合は、その基本学習補正係数vpskisldは、学習補正係数kilearn を求める（更新する）ためには使用せず、現在の学習補正係数kilearn の値を維持する。これは、ＦＩＲＥ経過時間t/fireが短い段階で得られる基本学習補正係数vpskisldの信頼性が乏しいからである。
【０２４９】
以上説明した処理が、学習補正処理の基本的内容である。
【０２５０】
次に前記点火時期応動補正処理について説明する。
【０２５１】
本実施形態では、前述した如く、内燃機関１の暖機がある程度進行すると（ＦＩＲＥ経過時間t/fireがある程度大きくなると）、該内燃機関１の各部のフリクションの低下による内燃機関１の回転数Ｎｅの上昇傾向を抑え、点火時期が前記点火時期操作回転数Ｆ／Ｂ制御により過度に遅角側に操作されるのを予防するために、標準開度指令値θ0 を緩やかに減少させていくようにしている（図７を参照）。
【０２５２】
しかるに、内燃機関１の暖機の進行に伴うフリクションの低下の形態は、種々様々の要因の影響を受け、該フリクションの低下が予想以上に早期に始まったり、あるいは、そのフリクションの低下度合いが予想以上に大きなものとなることがある。
【０２５３】
そして、このような場合には、標準開度指令値θ0 を前記のように緩やかに減少させていっても、内燃機関１の回転数Ｎｅの上昇傾向を十分に抑えることができなくなる。その結果、点火時期操作回転数Ｆ／Ｂ制御によりに操作される点火時期が、実際に操作し得る遅角側の限界値まで達してしまい、ひいては、回転数Ｎｅを目標回転数ne/fire にフィードバック制御することができなくなってしまう。
【０２５４】
前記点火時期応動補正処理はこのような事態を回避するために行う処理であり、点火時期操作回転数Ｆ／Ｂ制御により後述の如く決定される点火時期の指令値が、遅角側の限界値よりも若干進角側に定めた所定の閾値を超えて遅角側の値になったときに、その状態が解消されるまで（点火時期の指令値が閾値以上の進角側の値に復帰するまで）、制御サイクル毎に、標準開度指令値θ0 を所定量づつ減少側に補正する。
【０２５５】
すなわち、例えばバイパス開度が図１２の上段に示すように標準開度指令値θ0 に従って操作されている状態で、図１２の下段のＡ12領域に示すように点火時期操作回転数Ｆ／Ｂ制御により決定される点火時期の指令値iglog が、遅角側の限界値IGLGG よりも若干大きい閾値IGX よりも遅角側に低下すると、開度指令Θを標準開度指令値θ0 に対して、図１２の上段に示すように、ある補正量分θdec （以下、点火時期応動開度補正量θdec という）、減少させる（Θ＝θ0 −θdec とする）。
【０２５６】
この場合、点火時期応動開度補正量θdec は、図１２の上段のＢ12領域に示すように、点火時期の指令値iglog が閾値IGX 以上の進角側に復帰するまで、制御サイクル毎に所定量Δθdec （＞０。以下、開度減少単位量Δθdec という）づつ、増加させる（図１５のＳＴＥＰ１５−９の式を参照）。
【０２５７】
そして、図１２の下段のＣ12領域に示すように点火時期の指令値iglog が閾値IGX 以上の進角側に復帰した後は、図１２の上段のＤ12領域に示すように点火時期応動開度補正量θdec を上記復帰時点の値に保持し（点火時期応動開度補正量θdec を前記開度減少単位量Δθdec づつ増加させる処理を中止する）、その保持した点火時期応動開度補正量θdec だけ、開度指令Θを標準開度指令値θ0 よりも減少側に補正する。
【０２５８】
尚、本実施形態では、点火時期応動開度補正量θdec を制御サイクル毎に増加させる前記開度減少単位量Δθdec は、内燃機関１の始動時における機関温度Ｔｗから、図１３に示す如くあらかじめ定めたデータテーブルに基づいて決定する。この場合、特に、内燃機関１の始動時の機関温度Ｔｗが高温領域である場合に、該機関温度Ｔｗが低中温領域である場合よりもフリクションの低下が大きく生じ易いことから、図１３のデータテーブルでは、機関温度Ｔｗの高温領域における開度減少単位量Δθdec を低中温領域よりも大きくするように設定している。
【０２５９】
以上説明した内容が、前記点火時期応動補正処理の基本的内容である。
【０２６０】
以上説明した内容をふまえて、前記図４のＳＴＥＰ４−５において前記吸入空気量制御段２５が行うバイパス開度の指令値（開度指令）θCMD の生成処理を次に具体的に説明する。
【０２６１】
図１４のフローチャートを参照して、前記ＳＴＥＰ４−５では、まず、前記ＳＴＥＰ４−４の条件判断処理（図１５参照）で前述の如く制御サイクル毎に設定されるＦＩＲＥ実行可否フラグf/fireonの値（現在の制御サイクルで設定された値）を判断する（ＳＴＥＰ１４−１）。
【０２６２】
このとき、f/fireon＝１であるとき、すなわち、動作モードがＦＩＲＥモードに設定されているときには、前記標準開度指令値生成処理によって標準開度指令値θ0 を求めるために用いる前記Ｎレンジ基本値ifiret及びＤレンジ補正値iatfire と、前記大気条件補正処理に用いる前記大気圧補正係数kpa 及び大気温度補正係数kta と、前記点火時期応動補正処理に用いる前記開度減少単位量Δθdec とを、それぞれに対応して前述の如く定めたデータテーブルを用いて求める（ＳＴＥＰ１４−２）。
【０２６３】
すなわち、前記始動モード処理（ＳＴＥＰ４−２）で取得した内燃機関１の始動時の機関温度Ｔｗから、前記図６のデータテーブルに基づいてＮレンジ基本値ifiret及びＤレンジ補正値iatfire を求める。
【０２６４】
また、始動モード処理で取得した内燃機関１の始動時の大気圧Ｐａと、あらかじめ定められた標準大気圧Ｐa0  及び標準吸気圧Ｐb0  とから、前記式（３３）によって、前記大気圧補正用パラメータratio/dpa を算出し、このパラメータratio/dpa から、図１０のデータテーブルに基づいて大気圧補正係数kpa （＝パラメータratio/dpa の平方根）を求める。
【０２６５】
さらに、始動モード処理で取得した内燃機関１の始動時の大気温度Ｔａから、図１１のデータテーブルに基づいて大気温度補正係数kta を求める。
【０２６６】
また、始動モード処理で取得した内燃機関１の始動時の機関温度Ｔｗから、図１３のデータテーブルに基づいて開度減少単位量Δθdec を求める。
【０２６７】
尚、ＳＴＥＰ１４−２におけるこれらの処理は、始動モード処理においてあらかじめ行っておくようにしてもよい。
【０２６８】
次いで、吸入空気量操作手段２５は、標準開度指令値θ0 に対して前記吸気量Ｆ／Ｂ制御補正処理と前記点火時期応動補正処理とを施してなる予備開度指令θi/fireを算出する処理を次のように行う（ＳＴＥＰ１４−３）。
【０２６９】
すなわち、図１５のフローチャートを参照して、図示しないセンサにより検出される前記自動変速機の現在（今回の制御サイクル）のシフト位置を判断し（ＳＴＥＰ１５−１）、該シフト位置がＮレンジである場合には、標準開度指令値θ0 の前記基本値i/ftblを前記ＳＴＥＰ１４−２で求めたＮレンジ基本値ifiretとする（ＳＴＥＰ１５−２）。また、現在のシフト位置がＤレンジである場合には、上記Ｎレンジ基本値ifiretに、ＳＴＥＰ１４−２で求めたＤレンジ補正値iatfire を加算した値を基本値i/ftblとする（ＳＴＥＰ１５−３）。
【０２７０】
次いで、現在のＦＩＲＥ経過時間t/fireから、前記図７のデータテーブルに基づいて今回の制御サイクルにおける前記補正係数km/fire を求め（ＳＴＥＰ１５−４）、この補正係数km/fire をＳＴＥＰ１５−２あるいは１５−３で決定した基本値i/ftblに乗算することで、標準開度指令値θ0 を求める（ＳＴＥＰ１５−５）。これによりＦＩＲＥモードにおける制御サイクル毎の標準開度指令値θ0 が決定される。
【０２７１】
次いで、吸入空気量操作手段２５は、前記吸気偏差Ｅｑを算出する処理を図１６のフローチャートに示すように行う（ＳＴＥＰ１５−６）。
【０２７２】
すなわち、図１６を参照して、まず、前記吸気圧センサ１６により検出される現在の吸気圧Ｐｂとあらかじめ定めた所定値Ｇa1とから前記式（１）により今回の制御サイクルのおける推定吸入空気量gair/pre（１ＴＤＣ当たりの吸入空気量の推定値）を求める（ＳＴＥＰ１６−１）。
【０２７３】
次いで、内燃機関１のフュエルカット中であるか否かを判断し（ＳＴＥＰ１６−２）、フュエルカット中でない場合には、さらに、現在のＦＩＲＥ経過時間t/fireが前記ＳＬＤ補正制限時間TISLDLMTに達したか否かを判断する（ＳＴＥＰ１６−３）。
【０２７４】
このとき、t/fire＜TISLDLMTである場合には、今回の制御サイクルにおける推定積算吸入空気量qair/pre(k) の値を強制的に「０」とする（ＳＴＥＰ１６−４）。また、t/fire≧TISLDLMTである場合には、前記式（２）により推定吸入空気量gair/preを累積加算して推定積算吸入空気量qair/pre(k) を求める（ＳＴＥＰ１６−５）。
【０２７５】
尚、ＳＴＥＰ１６−２でフュエルカット中である場合には、そのとき内燃機関１の燃焼室に吸入される空気は、触媒装置３に与える熱量には寄与しない（フュエルカット中は内燃機関１の燃焼室４での混合気の燃焼は行われない）ため、推定積算吸入空気量qair/pre(k) は現状の値に保持される（ＳＴＥＰ１６−６）。
【０２７６】
以上のようなＳＴＥＰ１６−１〜１６−６の処理により、ＦＩＲＥモードでは（前記中断動作中も含む）、その開始後、ＳＬＤ補正制限時間TISLDLMTが経過した時から、内燃機関１のフュエルカット中の場合を除いて、逐次、触媒装置３に実際に与えられる熱量の積算値に相当する推定積算吸入空気量qair/pre(k) が求められていくこととなる。
【０２７７】
そして、ＳＬＤ補正制限時間TISLDLMTが経過するまで、すなわち、内燃機関１の始動直後の状態では、推定積算吸入空気量qair/pre(k) の値が強制的に「０」に制限されることとなる。
【０２７８】
尚、このようにＳＬＤ補正制限時間TISLDLMTが経過するまで、推定積算吸入空気量qair/pre(k) の値を制限するためには、例えばＳＬＤ補正制限時間TISLDLMTが経過するまで、推定吸入空気量gair/preの値を強制的に「０」に制限し、その制限した推定吸入空気量gair/preの値を用いて前記式（２）の演算を行うようにしてもよい。このようにしても、推定積算吸入空気量qair/pre(k) の値は、ＳＬＤ補正制限時間TISLDLMTが経過するまでは「０」に制限されることとなる。
【０２７９】
このようにして推定積算吸入空気量qair/pre(k) を求めた後、吸入空気量操作手段２５は、前記ＳＴＥＰ１５−５で求めた標準開度指令値θ0 と、前記回転数センサ１４により検出される現在の回転数Ｎｅと、あらかじめ定められた所定値Ｇa2とから前記式（４）により今回の制御サイクルにおける目標吸入空気量gair/cmd（１ＴＤＣ当たりの吸入空気量の目標値）を求める（ＳＴＥＰ１６−７）。
【０２８０】
さらに、前記ＳＴＥＰ１６−３と同じ判断を行い（ＳＴＥＰ１６−８）、このとき、t/fire＜TISLDLMTである場合には、今回の制御サイクルにおける目標積算吸入空気量qair/cmd(k) の値を強制的に「０」とする（ＳＴＥＰ１６−９）。また、t/fire≧TISLDLMTである場合には、前記式（５）により制御サイクル毎の目標吸入空気量gair/preを累積加算して目標積算吸入空気量qair/cmd(k) を求める（ＳＴＥＰ１６−１０）。
【０２８１】
以上のようなＳＴＥＰ１６−７〜１６−１０の処理により、触媒装置３に実際に与えられる熱量の積算値の目標値に相当する目標積算吸入空気量qair/cmd(k) は、ＦＩＲＥモードの開始後、ＳＬＤ補正制限時間TISLDLMTが経過した時から、ＦＩＲＥモードの中断動作中を含めて、逐次求められていくこととなる。
【０２８２】
そして、ＳＬＤ補正制限時間TISLDLMTが経過するまでの内燃機関１の始動直後の状態では、推定積算吸入空気量qair/pre(k) と同様、目標積算吸入空気量qair/cmd(k) の値が強制的に「０」に制限されることとなる。
【０２８３】
尚、このようにＳＬＤ補正制限時間TISLDLMTが経過するまで、目標積算吸入空気量qair/cmd(k) の値を制限するためには、ＳＬＤ補正制限時間TISLDLMTが経過するまで、目標吸入空気量gair/cmdの値を強制的に「０」に制限し、その制限した目標吸入空気量gair/cmdの値を用いて前記式（５）の演算を行うようにしてもよい。
【０２８４】
このようにして、今回の制御サイクルにおける推定積算吸入空気量qair/pre(k) と、目標積算吸入空気量qair/cmd(k) とを求めた後には、吸入空気量操作手段２５は、それらの差（qair/pre(k) −qair/cmd(k) ）を演算することで、今回の制御サイクルにおける前記吸気偏差Ｅq(k)を求め（ＳＴＥＰ１６−１１）、図１５のフローチャートの処理に復帰する。
【０２８５】
図１５の説明に戻って、上記のように吸気偏差Ｅｑを求めた後、吸入空気量操作手段２５は、次に、フラグf/dec の値を判断する（ＳＴＥＰ１５−７）。このフラグf/dec は、前記点火時期応動補正処理に係わるフラグであって、後述する点火時期の指令値iglog の生成処理において点火時期の指令値iglog が前記閾値IGX （図１２参照）よりも遅角側の値であるときf/dec ＝１とされ、該指令値iglog が前記閾値IGX 以上の進角側の値であるときf/dec ＝０とされるものである（以下、フラグf/dec を点火時期判別フラグf/dec という）。尚、この点火時期判別フラグf/dec は前記始動モード処理（ＳＴＥＰ４−２）において「０」に初期化される。
【０２８６】
このとき、f/dec ＝０である場合（点火時期の指令値iglog が、閾値IGX 以上の進角側の状態）には、吸入空気量操作手段２５は、前記吸気量Ｆ／Ｂ制御補正処理に係わるＳＬＤ開度補正量i/sld を算出する処理を図１７のフローチャートに示すように行う（ＳＴＥＰ１５−８）。
【０２８７】
すなわち、まず、前記ＦＩＲＥ中断フラグf/fpauseの現在の値を判断する（ＳＴＥＰ１７−１）。このとき、f/fpause＝１である場合、すなわち、ＦＩＲＥモードの前述の中断動作を行う状態である場合には、前記吸気量Ｆ／Ｂ制御補正処理で吸気偏差Ｅｑの減衰速度を規定する前記ポールpole/iの値をあらかじめ定めた前記下限値pole/i0 （図９を参照）に設定（初期化）した上で（ＳＴＥＰ１７−２）、直ちに図１５のルーチン処理に復帰する。
【０２８８】
従って、ＦＩＲＥモードの中断動作中は、ＳＬＤ開度補正量i/sld は現状の値（中断動作の開始前の値）に保持される。
【０２８９】
尚、ＳＬＤ開度補正量i/sld 及びポールpole/iは、前記始動モード処理（ＳＴＥＰ４−２）においてそれぞれ「０」、「下限値pole/i0 」に初期化される。
【０２９０】
一方、ＳＴＥＰ１７−１の判断で、f/fpause＝０である場合、すなわち、ＦＩＲＥモードの通常的な動作を行う状態である場合には、吸入空気量操作手段２５は、現在のＦＩＲＥ経過時間t/fireから、図９のデータテーブルに基づいて今回の制御サイクルにおける前記ポールテーブル値pole/itbl を求める（ＳＴＥＰ１７−３）。
【０２９１】
次いで、基本的には、ＳＴＥＰ１７−３で求めたポールテーブル値pole/itbl を吸気偏差Ｅｑの減衰速度を規定するポールpole/iの値として設定するのであるが、ＦＩＲＥモードの中断動作中に前記下限値pole/i0 （本実施形態では「−１」）に設定されるポールpole/iを該中断動作の終了後に徐々にＦＩＲＥ経過時間t/fireに応じたポールテーブル値pole/itbl に復帰させるために、次のような処理を行う。
【０２９２】
すなわち、現在のポールpole/iの値pole/i(k-1) にあらかじめ定めた単位増分値ΔPOLE/I（＞０）を加算した値（pole/i(k-1) ＋ΔPOLE/I）をＳＴＥＰ１７−３で求めたポールテーブル値pole/itbl と比較する（ＳＴＥＰ１７−４）。そして、pole/i(k-1) ＋ΔPOLE/I≧pole/itbl である場合には、ＳＴＥＰ１７−３で求めたポールテーブル値pole/itbl を今回の制御サイクルにおけるポールpole/i(k) の値として設定し（ＳＴＥＰ１７−５）、pole/i(k-1) ＋ΔPOLE/I＜pole/itbl である場合には、pole/i(k-1) ＋ΔPOLE/Iの値を今回の制御サイクルにおけるポールpole/i(k) の値として設定する（ＳＴＥＰ１７−６）。
【０２９３】
この処理によりＦＩＲＥモードの中断動作が終了した後には、ポールpole/iが前記下限値pole/i0 から、ＦＩＲＥ経過時間t/fireに応じたポールテーブル値pole/itbl に前記単位増分値ΔPOLE/Iづつ、徐々に復帰することとなる。
【０２９４】
尚、内燃機関１の始動直後にＦＩＲＥモードの中断動作が行われない場合には、ポールpole/iは、基本的にはポールテーブル値pole/itbl が設定され、該ポールテーブル値pole/itbl と同じ形態でＦＩＲＥ経過時間t/fireの増加に伴い値が変化する（このようになるように上記単位増分値ΔPOLE/Iの値が設定されている）。
【０２９５】
このようにしてポールpole/iの値を設定した後、吸入空気量操作手段２５は、さらに、該ポールpole/iの値と、後に詳細を説明する点火時期操作回転数Ｆ／Ｂ制御において設定されるポールpole/ig （これは点火時期操作回転数Ｆ／Ｂ制御による内燃機関１の回転数Ｎｅと目標回転数ne/fire との偏差の減衰速度を規定するパラメータである）からあらかじめ定めた所定の微小量ΔPOLE/IG （＞０）を減算した値とを比較する（ＳＴＥＰ１７−７）。
【０２９６】
そして、このとき、pole/i＜pole/ig −ΔPOLE/IG であれば、そのまま次のＳＴＥＰ１７−９に進むが、pole/i≧pole/ig −ΔPOLE/IG である場合、ポールpole/iの値を強制的に（pole/ig −ΔPOLE/IG ）に設定し直す（ＳＴＥＰ１７−８）。つまり、ポールpole/iの値は、点火時期操作回転数Ｆ／Ｂ制御において後述の如く設定されるポールpole/ig （＜０）よりも常に小さい値に（より正確には、１＞｜pole/i｜＞｜pole/ig ｜＞０となるように）設定される。これは次の理由による。
【０２９７】
すなわち、本実施形態において推定積算吸入空気量qair/preを目標積算吸入空気量qair/cmdに収束させるように行う吸気側適応ＳＬＤ制御（フィードバック制御）と、内燃機関１の回転数Ｎｅを目標回転数ne/fire に収束させるように行う点火時期操作回転数Ｆ／Ｂ制御とは互いに独立的に行われるものである一方、両者の制御は、内燃機関１の回転数Ｎｅに影響を及ぼす制御である。また、一般に、吸気側適応ＳＬＤ制御に基づくバイパス開度の変化に対する吸入空気量の変化の応答性は、点火時期操作回転数Ｆ／Ｂ制御に基づく点火時期の変化に対する回転数Ｎｅの変化の応答性に比して遅い。このため、吸気側適応ＳＬＤ制御に係わる吸気偏差Ｅｑの減衰速度を、点火時期操作回転数Ｆ／Ｂ制御による内燃機関１の回転数Ｎｅと目標回転数ne/fire との偏差の減衰速度よりも速めるようにすると、両者の制御が互いに干渉して、内燃機関１の回転数Ｎｅが不安定なものとなる虞れがある。
【０２９８】
このために、本実施形態では、吸気側適応ＳＬＤ制御に係わるポールpole/iを、前記の如く｜pole/i｜＞｜pole/ig ｜となるように設定し、これにより、吸気側適応ＳＬＤ制御に係わる吸気偏差Ｅｑの減衰速度を、点火時期操作回転数Ｆ／Ｂ制御による内燃機関１の回転数Ｎｅと目標回転数ne/fire との偏差の減衰速度よりも遅くし、ひいては両制御が互いに干渉するのを回避する。
【０２９９】
次いで、ＳＴＥＰ１７−９では、ポールpole/iの値を「−１」と比較し、pole/i≦−１である場合（このような場合は、ＳＴＥＰ１７−８の処理によって生じることがある）には、ポールpole/iの値を強制的に「−１」に設定した上で（ＳＴＥＰ１７−１０）、ＳＴＥＰ１７−１１に進む。
【０３００】
そして、ＳＴＥＰ１７−１１では、上記のようにして決定したポールpole/iの値と、前記ＳＴＥＰ１５−６で前述の如く求めた今回の制御サイクルにおける吸気偏差Ｅq(k)及び前回の制御サイクルにおける吸気偏差Ｅq(k-1)とから前記式（１０）（詳しくは、式（１０）の係数パラメータｓ1 ，ｓ2 をそれぞれ「１」、「pole/i」で置き換えた式）により前記切換関数σ1 の値を求める。
【０３０１】
さらに、この切換関数σ1 の値を用いて、前記式（１８）、（１９）の演算を行うことで（この場合ｓ1 ＝１）、前記吸気側適応ＳＬＤ制御における到達則入力Θrch 及び適応則入力Θadp の値を求め（ＳＴＥＰ１７−１２）、この到達則入力Θrch 及び適応則入力Θadp を加算することで、今回の制御サイクルにおけるＳＬＤ開度補正量i/sld を求める（ＳＴＥＰ１７−１３）。そして、図１５のルーチン処理に復帰する。
【０３０２】
図１５の説明に戻って、前記ＳＴＥＰ１５−７の判断でf/dec ＝１である場合、すなわち、現在の点火時期の指令値iglog が、前記閾値IGX （図１２参照）よりも遅角側の状態となっている場合には、吸入空気量操作手段２５は、前記点火時期応動補正処理を行うべく、前記点火時期応動開度補正量θdec を前記ＳＴＥＰ１４−２で決定した開度減少単位量Δθdec づつ制御サイクル毎に増加させていく（ＳＴＥＰ１５−９）。
【０３０３】
尚、点火時期応動開度補正量θdec は、前記始動モード処理（ＳＴＥＰ３−２）で「０」に初期化されるものである。
【０３０４】
また、このＳＴＥＰ１５−９の処理を行うときは、ＳＬＤ開度補正量i/sld を求める処理は行われず、該ＳＬＤ開度補正量i/sld の値は、前記点火時期判別フラグf/dec が「１」に設定される前の値に保持される。
【０３０５】
次いで、吸入空気量操作手段２５は、ＳＴＥＰ１５−５で求めた標準開度指令値θ0 に現在のＳＬＤ開度補正量i/sld の値を加算し、さらに現在の点火時期応動開度補正量θdec を減算することで、前記吸気量Ｆ／Ｂ制御補正処理及び点火時期応動補正処理とに基づく前記予備開度指令θi/fire（＝θ0 ＋i/sld −θdec ）を算出する（ＳＴＥＰ１５−１０）。
【０３０６】
次いで、吸入空気量操作手段２５は、現在の前記学習演算終了フラグf/flrnend の値を判断する（ＳＴＥＰ１５−１１）。この学習演算終了フラグf/flrnend は、ＦＩＲＥモードの動作中（ＦＩＲＥ実行可否フラグf/fireonが「１」に設定されている状態）は、中断動作が開始されるとき（ＦＩＲＥ中断フラグf/fpauseが「１」に設定されたとき）、あるいは、点火時期の指令値iglog が前記閾値IGX （図１２参照）よりも遅角側の状態となって、前記点火時期応動補正処理を開始するとき（点火時期判別フラグf/dec が「１」に設定されたとき）に、前記基本学習補正係数vpskisldの算出処理を終了すべく「１」に設定される（前記図５のＳＴＥＰ５−１７、及び後述の図２２のＳＴＥＰ２２−８を参照）。
【０３０７】
そして、f/flrnend ＝０である場合、すなわち、前記基本学習補正係数vpskisldの算出を行うべき状態である場合には、前記学習補正処理に関して説明した通り、基本学習補正係数vpskisldを算出する（ＳＴＥＰ１５−１２）。
【０３０８】
すなわち、制御サイクル毎に、ＳＴＥＰ５−１８で求められる現在のＳＬＤ開度補正量i/sld と、内燃機関１の現在の回転数Ｎｅと、前記所定値Ｇa2とから、前記式（３４）により前記ＳＬＤ吸気補正量gair/sldを求め、それを式（３５）により累積加算することで、前記ＳＬＤ積算吸気補正量qair/sldを求める。そして、このＳＬＤ積算吸気補正量qair/sldと、前記ＳＴＥＰ１６−１０（図１６参照）で求めた制御サイクル毎の目標積算吸入空気量qair/cmdとから前記式（３６）の演算を行うことで、基本学習補正係数vpskisldを算出する。
【０３０９】
尚、この場合において、ＦＩＲＥ経過時間t/fireが前記ＳＬＤ補正制限時間TISLDLMTに達するまでは、前述の如くqair/cmd＝０とする（このときＳＬＤ積算吸気補正量qair/sldも「０」となる）ので、基本学習補正係数vpskisldの値を強制的に「１」に設定する。
【０３１０】
また、ＳＴＥＰ１５−１１でf/flrnend ＝１である場合、すなわち、前記基本学習補正係数vpskisldの算出を終了すべき状態である場合には、ＳＴＥＰ１５−１２の処理は省略され、基本学習補正係数vpskisldの算出処理は行われない（この場合、f/flrnend ＝１となる前の制御サイクルで求められた基本学習補正係数vpskisldの値がその最終値として確定される）。
【０３１１】
このようにしてＳＴＥＰ５−１１，５−１２の処理行った後、吸入空気量操作手段２５は、ＳＴＥＰ１５−１０で求めた予備開度指令θi/fireの値を所定の上限値及び下限値の間の値に制限する（θi/fire＞上限値、あるいはθi/fire＜下限値のとき、それぞれθi/fireを強制的に上限値、下限値に制限する）リミット処理を行った後（ＳＴＥＰ１５−１３）、図１４のルーチン処理に復帰する。
【０３１２】
図１４の説明に戻って、上記のように予備開度指令θi/fireを求めた後、吸入空気量操作手段２５は、この予備開度指令θi/fire（＝θ0 ＋i/sld −θdec ）に、ＳＴＥＰ１４−２で決定した前記大気圧補正係数kpa と、大気温度補正係数kta と、前回のＦＩＲＥモードの動作の終了時に決定された学習補正係数kilearn （この学習補正係数kilearn の算出については後に説明する）とを乗算することで、今回の制御サイクルにおけるバイパス開度の指令値θCMD を決定する（ＳＴＥＰ１４−４）。そして、前記図３のメインルーチン処理に復帰する。
【０３１３】
以上説明した処理が、ＦＩＲＥモードにおいて、バイパス開度の指令値θCMD を制御サイクル毎に決定するための処理である。
【０３１４】
一方、前記ＳＴＥＰ１４−１の判断で、現在のＦＩＲＥ実行可否フラグf/fireonの値が「０」である場合、すなわち、ＦＩＲＥモードの動作を行わない状態となったとき（これは、基本的には、内燃機関１の始動後、ＦＩＲＥ経過時間t/fireが、ＦＩＲＥモード制限時間TFIRELMTに達してＦＩＲＥモードの動作を終了した後の状態である）には、吸入空気量操作手段２５は、ＦＩＲＥ実行可否フラグf/fireonの前回の制御サイクルにおける値を判断する（ＳＴＥＰ１４−５）。
【０３１５】
このとき、ＦＩＲＥ実行可否フラグf/fireonの前回の制御サイクルにおける値が「１」である場合、すなわち、前回の制御サイクルまでＦＩＲＥモードの動作を行っていた場合（ＦＩＲＥモードを終了した直後の状態）には、直前まで行っていたＦＩＲＥモードにおいて前記ＳＴＥＰ１５−１２の処理により最終的に求められた前記基本学習補正係数vpskisldから、図１８のフローチャートに示すように次回のＦＩＲＥモードの動作に際して開度指令を補正する（ＳＴＥＰ１４−４を参照）ための学習補正係数kilearn を決定（更新）する（ＳＴＥＰ１４−６）。
【０３１６】
すなわち、図１８を参照して、まず、前述した基本学習補正係数vpskisldの算出を最終的に終了した時のＦＩＲＥ経過時間t/fireを表す前記学習終了時刻パラメータt/kil が、あらかじめ定めた所定値TMKILLMT以上であるか否かを判断する（ＳＴＥＰ１８−１）。ここで、学習終了時刻パラメータt/kil は、前記図５に示した如く、前記学習演算終了フラグf/flrnend が「０」から「１」に切り換えられた際のＦＩＲＥ経過時間t/fireである。つまり、ＦＩＲＥモードの中断動作が行われたときは、該中断動作の開始時までのＦＩＲＥ経過時間t/fireであ、ＦＩＲＥモードの動作中に前記点火時期応動補正処理を行うときは、その処理の開始時までのＦＩＲＥ経過時間t/fireである。そして、ＦＩＲＥモードの中断動作や点火時期応動補正処理が行われることなくＦＩＲＥモードの動作が終了したときには、その終了時のＦＩＲＥ経過時間t/fire（これは通常的にはＦＩＲＥモード制限時間TFIRELMTである）である。
【０３１７】
別の言い方をすれば、学習終了時刻パラメータt/kil は、前記ＳＬＤ開度補正量i/sld の算出処理及びこれに応じた標準開度指令値θ0 の補正が連続して行われたＦＩＲＥ経過時間t/fireである。
【０３１８】
そして、ＳＴＥＰ１８−１判断で、t/kil ＜TMKILLMTである場合には、最終的に得られた基本学習補正係数vpskisldの信頼性が乏しいと考えられるので、学習補正係数kilearn を現状の値に維持したまま図１４の処理に復帰する。
【０３１９】
一方、t/kil ≧TMKILLMTである場合、すなわち、ＳＬＤ開度補正量i/sld の算出処理及びこれに応じた標準開度指令値θ0 の補正がある程度長い時間、連続して行われた場合には、前回の制御サイクルまで行われていたＦＩＲＥモードの動作において最終的に得られた基本学習補正係数vpskisldから前記式（３７）のなまし演算処理（フィルタリング処理）によって新たな学習補正係数kilearn(j)を求める（ＳＴＥＰ１８−２）。そして、この学習補正係数kilearn(j)を所定の上限値及び下限値の間の値に制限する（kilearn(j)＞上限値、あるいはkilearn(j)＜下限値のとき、それぞれkilearn(j)を強制的に上限値、下限値に制限する）リミット処理を行った後（ＳＴＥＰ１８−３）、図１４のルーチン処理に復帰する。
【０３２０】
尚、学習補正係数kilearn(j)の初期値は「１」である。また、この学習補正係数kilearn(j)の値は、本実施形態のシステムの運転を停止しても失われることのないようにＥＥＰＲＯＭ等の不揮発性メモリに記憶保持しておく。
【０３２１】
図１４の説明に戻って、ＳＴＥＰ１４−５でＦＩＲＥ実行可否フラグf/fireonの前回の制御サイクルにおける値が「１」である場合には、前述の如く学習補正係数kilearn が更新されるが、ＦＩＲＥ実行可否フラグf/fireonの前回の制御サイクルにおける値が「０」である場合は、既に学習補正係数kilearn が更新されているので、ＳＴＥＰ１４−６の処理は省略される。すなわち、学習補正係数kilearn の更新処理は、ＦＩＲＥモードが終了した直後の制御サイクルにおいてだけ行われ、その更新された学習補正係数kilearn が次回のＦＩＲＥモードの動作に際して開度指令を補正するために使用される。
【０３２２】
このようにしてＳＴＥＰ１４−５、１４−６の処理を行った後、吸入空気量操作手段２５は、開度指令θCMD を通常モード用の開度指令に設定する（ＳＴＥＰ１４−７）。この開度指令は、基本的には、ＦＩＲＥモードにおける開度指令θCMD よりも小さく、内燃機関１の通常的な運転を行うべく所要の値に設定される。
【０３２３】
以上、図１４〜図１８を参照して説明した処理が、前記図４のＳＴＥＰ４−５で開度指令（バイパス開度の指令値）θCMD を制御サイクル毎に生成する処理の詳細であり、このようにして決定された開度指令θCMD は前記バイパス弁アクチュエータ２４に与えられる。そして、該バイパス弁アクチュエータ２４は、与えられた開度指令θCMD に従ってバイパス弁７の開度を操作する。
【０３２４】
次に、前記図４のＳＴＥＰ４−６における点火時期の指令値iglog の生成処理について説明する。
【０３２５】
ここで、この処理の具体的な内容を説明する前に、この処理の基本的な内容を説明しておく。
【０３２６】
本実施形態のシステムでは、ＦＩＲＥモードにおける前述のような吸入空気量の増量制御によって内燃機関１の回転数Ｎｅ（実回転数）が上昇傾向となるので、該回転数Ｎｅを前記点火時期操作回転数Ｆ／Ｂ制御によって所要の目標回転数ne/fire にフィードバック制御し、該点火時期を遅角側に補正する（点火時期操作回転数Ｆ／Ｂ制御）。この場合、後述する如く、回転数Ｎｅと目標回転数ne/fire との偏差の減衰速度（これはフィードバック制御のゲインに相当する）を、適宜可変的に設定することが好ましい。
【０３２７】
このために、本実施形態のシステムにおける点火時期操作回転数Ｆ／Ｂ制御にあっては、前述の吸気量Ｆ／Ｂ制御補正処理の場合と同様に、上記偏差の減衰速度を指定可能な応答指定型制御であるスライディングモード制御（本実施形態では適応スライディングモード制御）を用いる。
【０３２８】
この適応スライディングモード制御（以下、点火時期側適応ＳＬＤ制御という）を用いた点火時期操作回転数Ｆ／Ｂ制御の処理、すなわち、回転数Ｎｅを目標回転数ne/fire に収束させるように点火時期の指令値iglog を生成する処理のアルゴリズムは次のように構築されている。
【０３２９】
まず、本実施形態では、点火時期側適応ＳＬＤ制御の制御対象を、点火時期の指令値iglog を表すデータから、回転数Ｎｅ（実回転数）を表すデータを生成する系と考え、それを離散系（離散時間系）でモデル化しておく。
【０３３０】
この場合、本実施形態では、点火時期の指令値iglog と所定の基準指令値ig0 と偏差DIG （＝iglog −ig0 。以下、点火時期偏差指令値DIG という）を点火時期の指令値iglog を表すデータとして用いると共に、回転数Ｎｅと所定の基準回転数Ｎe0との偏差DNE （＝Ｎｅ−Ｎe0。以下、偏差回転数DNE という）を回転数Ｎｅを表すデータとして用いる。
【０３３１】
尚、本実施形態では、点火時期の基準指令値ig0 として、前記図３で示した基本指令値igbase（内燃機関１のＦＩＲＥモード以外の通常的な運転時における点火時期の指令値）を用いる（ig0 ＝igbase）。従って、前記図３で示した補正量DIG が上記点火時期偏差指令値DIG である。また、本実施形態では、回転数Ｎｅに係わる基準回転数Ｎe0として、前記図３で示した所定のアイドリング回転数NOBJを用いる（Ｎe0＝NOBJ）。
【０３３２】
そして、本実施形態で、上記の点火時期偏差指令値DIG と、偏差回転数DNE とを用いて、点火時期側適応ＳＬＤ制御の制御対象のモデルを次式（３８）のように離散系モデル（本実施形態では２次の自己回帰モデル）で表現しておく。
【０３３３】
【数３８】
0003779075.tif 000039
【０３３４】
この式（３８）により表現した制御対象のモデル（以下、回転数制御対象モデルという）は、該回転数制御対象モデルの出力としての各制御サイクルにおける偏差回転数DNE(k+1)を、それより過去の偏差回転数DNE の時系列データDNE(K)，DNE(k-1)、並びに該回転数制御対象モデルの入力としての点火時期偏差指令値DIG(k)を用いて表現したものである。
【０３３５】
また、式（３８）で、偏差回転数DNE(K)，DNE(k-1)にそれぞれ係る係数ｃ1 ，ｃ2 と、点火時期偏差指令値DIG(k)に係る係数ｄ1 とは、回転数制御対象モデルの実際の挙動特性を規定するモデルパラメータであり、これらのモデルパラメータｃ1 ，ｃ2 ，ｄ1 は、回転数制御対象モデルの挙動特性と、該モデルにより表現した実際の制御対象の挙動特性とが整合するようにあらかじめ実験やシミュレーション等を通じて同定しておく。
【０３３６】
この場合、回転数制御対象モデルは離散系モデルであるため、種々の公知の同定アルゴリズム（例えば回転数制御対象モデル上で生成される偏差回転数DNE(k+1)と実際の偏差回転数との間の誤差が最小になるように最小二乗法によりモデルパラメータｃ1 ，ｃ2 ，ｄ1 を同定するアルゴリズム等）を用いてモデルパラメータｃ1 ，ｃ2 ，ｄ1 を比較的容易に同定することが可能である。
【０３３７】
このようにして定めた回転数制御対象モデルに基づいて、点火時期側適応ＳＬＤ制御の処理のアルゴリズムは次のように構築する。
【０３３８】
すなわち、点火時期側適応ＳＬＤ制御では、スライディングモード制御に必要な切換関数σ2 を、前述の吸気側適応スライディングモード制御の場合と同様に、前記偏差回転数DNE とその目標値dne との偏差Ｅｎ＝DNE −dne （以下、回転数偏差Ｅｎという）の制御サイクル毎の時系列データＥn(k)，Ｅn(k-1)を変数とする次式（３９）の線形関数により定義する。尚、偏差回転数DNE の目標値dne （以下、偏差目標回転数dne という）は、前記図３で示した目標回転数ne/fire と前記基準回転数Ｎe0（＝アイドリング回転数NOBJ）との偏差（＝ne/fire −Ｎe0）である。従って、上記回転数偏差Ｅｎ＝DNE −dne は、回転数Ｎｅ（実回転数）と目標回転数ne/fire との偏差（＝Ｎｅ−ne/fire ）と同じである。
【０３３９】
【数３９】
0003779075.tif 000040
【０３４０】
ここで、式（３９）中のｓ3 ，ｓ4 は切換関数σ2 の各項の係数パラメータであり、次の条件を満たすように設定する。
【０３４１】
【数４０】
0003779075.tif 000041
【０３４２】
尚、本実施形態では、簡略化のためにｓ3 ＝１としている。また、係数パラメータｓ4 の値（より一般的には、ｓ4 ／ｓ3 ＝pole/ig の値）を可変的に設定するのであるが、これについては後述する。
【０３４３】
このように切換関数σ2 を定義したとき、吸気側適応スライディングモード制御の場合と同様に、前記回転数偏差Ｅｎの時系列データＥn(k)，Ｅn(k-1)の組から成る状態量（Ｅn(k)，Ｅn(k-1)）を、σ2 ＝０なる関係式によって定義される切換線上に収束させ、その収束状態を維持すると、状態量（Ｅn(k)，Ｅn(k-1)）を、外乱等の影響によらずに極めて安定に切換線σ2 ＝０上の平衡点、すなわち、Ｅn(k)＝Ｅn(k-1)＝０となる点に収束させることができる。
【０３４４】
また、前記偏差回転数DNE を前記偏差目標回転数dne に収束させる（回転数Ｎｅを目標回転数ne/fire に収束させる）ために、前記式（３９）によりモデル化した制御対象に与えるべき入力として点火時期側適応ＳＬＤ制御が生成する制御入力、すなわち点火時期偏差指令値DIG は、吸気側適応スライディングモード制御の場合と同様に、等価制御入力DIGeq と到達則入力DIGrchと適応則入力DIGadpとの総和である（次式（４１）を参照）。
【０３４５】
【数４１】
0003779075.tif 000042
【０３４６】
そして、これらの等価制御入力DIGeq 、到達則入力DIGrch及び適応則入力DIGadpは、吸気側適応スライディングモード制御の場合と同様に、それぞれ次式（４２）〜（４４）により与えられる。
【０３４７】
【数４２】
0003779075.tif 000043
【０３４８】
【数４３】
0003779075.tif 000044
【０３４９】
【数４４】
0003779075.tif 000045
【０３５０】
そして、この場合、式（４３）中の係数Ｆ3 （到達則のゲインを規定する係数）は、次式（４５）、より好ましくは（４５）’の条件を満たすようにあらかじめ設定しておく。
【０３５１】
また、式（４４）中の係数Ｆ4 （適応則のゲインを規定する係数）は、次式（４６）の条件を満たすようにあらかじめ設定しておく。尚、式（４６）中のΔＴは制御サイクル（制御周期）である。
【０３５２】
【数４５】
0003779075.tif 000046
【０３５３】
【数４６】
0003779075.tif 000047
【０３５４】
本実施形態における点火時期側適応ＳＬＤ制御では、制御サイクル毎に、前記式（４２）〜（４４）により等価制御入力DIGeq 、到達則入力DIGrch及び適応則入力DIGadpをそれぞれ求め、それらの総和を演算する（式（４１））ことで、点火時期偏差指令値DIG を求める。そして、この点火時期偏差指令値DIG を、次式（４７）のように前記基準指令値ig0 、すなわち内燃機関１の通常的な運転時の基本指令値igbaseに加算することで、点火時期の指令値iglog を決定する。
【０３５５】
【数４７】
0003779075.tif 000048
【０３５６】
この場合、前記等価制御入力DIGeq や切換関数σ2 の値を求めるために必要な偏差目標回転数dne は次のように求める。
【０３５７】
すなわち、本実施形態では、内燃機関１の回転数Ｎｅ（実回転数）が、前記図３に示した設定回転数（＝NOBJ＋NEFSLDS ）に達した時、又は、前記ＦＩＲＥ経過時間t/fireがあらかじめ定めた所定値TSLDIGSTに達した時から点火時期操作回転数Ｆ／Ｂ制御を開始する。そして、ＦＩＲＥモードにおける内燃機関１の目標回転数ne/fire は、点火時期操作回転数Ｆ／Ｂ制御の開始時からの経過時間Δt/nfb （以下、回転数Ｆ／Ｂ経過時間Δt/nfb という）に応じて次式（４８）により設定する。
【０３５８】
【数４８】
0003779075.tif 000049
【０３５９】
ここで、式（４８）中のK/NEは、目標回転数ne/fire の時間的減少度合い（傾き）を規定する一定の所定値（＞０）である。
【０３６０】
尚、この場合において、式（４８）の右辺の演算結果がアイドリング回転数NOBJを下回る場合（Δt/nfb ＞NEFSLDS ／K/NEの場合）には、目標回転数ne/fire をアイドリング回転数NOBJに固定する。
【０３６１】
これにより、目標回転数ne/fire は、点火時期操作回転数Ｆ／Ｂ制御の開始後、前記設定回転数（＝NOBJ＋NEFSLDS ）からアイドリング回転数NOBJに向かって直線的に徐々に減少し、該アイドリング回転数NOBJに達した後は、該アイドリング回転数NOBJに維持される。
【０３６２】
従って、本実施形態では、各制御サイクルにおける目標回転数ne/fire(k)は、該制御サイクルにおける前記回転数Ｆ／Ｂ経過時間Δt/nfb から式（４８）により求められ、この目標回転数ne/fire(k)からアイドリング回転数NOBJを減算することで、各制御サイクルにおける偏差目標回転数dne(k)（＝ne/fire(k)−NOBJ）が求められる。そして、この偏差目標回転数dne(k)と、その前回値dne(k-1)（＝ne/fire(k-1)−NOBJ）、すなわち前回の制御サイクルで求めた偏差目標回転数dne(k-1)とを用いることで、制御サイクル毎に前記式（３９）により切換関数σ2(k)の値を求めることができる。そして、この切換関数σ2 の値を用いることで、前記式（４３）、（４４）により到達則入力DIGrch及び適応則入力DIGadpを求めることができる。
【０３６３】
また、本実施形態では、制御サイクル（ＴＤＣ）は、内燃機関１の回転数Ｎｅに反比例するので、現在の回転数Ｎｅから１制御サイクル分の時間ΔＴ（∝１／Ｎｅ）を求め、該時間ΔＴを現在の回転数Ｆ／Ｂ経過時間Δt/nfb に加算することで、次回の制御サイクルにおける回転数Ｆ／Ｂ経過時間（＝Δt/nfb ＋ΔＴ）を予測することができる（以下、この予測値を回転数Ｆ／Ｂ予測経過時間Δt/nfbpreという）。そして、この回転数Ｆ／Ｂ予測経過時間Δt/nfbpreを前記式（４８）に適用する（式（４８）の右辺のΔt/nfb にΔt/nfbpreを代入する）ことで、次式（４９）により次回の制御サイクルにおける目標回転数ne/fire(k+1)を求めることができる。
【０３６４】
【数４９】
0003779075.tif 000050
【０３６５】
さらに、該目標回転数ne/fire(k+1)からアイドリング回転数NOBJを減算することで、次回の制御サイクルにおける偏差目標回転数dne(k+1)（＝ne/fire(k+1)−NOBJ）が求められる。
【０３６６】
そして、このようにして求められる偏差目標回転数dne(k+1)と、前述の如く求められる偏差目標回転数dne(k)，dne(k-1)とを用いて前記式（４２）の演算を行うことで、等価制御入力DIGeq を求めることができる。
【０３６７】
尚、本実施形態では、ＦＩＲＥモードの中断動作中は、点火時期操作回転数Ｆ／Ｂ制御を中断し、点火時期の指令値iglog を内燃機関１の通常的な運転時の基本指令値igbaseに戻す。この場合、中断動作が開始してから、式（４７）の点火時期偏差指令値DIG の値（絶対値）を、その値が「０」になるまで制御サイクル毎に所定の単位値dec/igづつ減少させていく（徐々に「０」に近づけていく）ことで、点火時期の指令値iglog を徐々に基本指令値igbaseに戻すようにしている。そして、中断動作が解除されたときには、直ちに点火時期操作回転数Ｆ／Ｂ制御を再開するようにしている。
【０３６８】
また、本実施形態では、ＦＩＲＥモードの動作が終了し（ＦＩＲＥ実行可否フラグf/fireonが「１」から「０」になる）、システムの動作モードが通常モードに移行する際にも、点火時期の指令値iglog を徐々に基本指令値igbaseに戻すようにしている。
【０３６９】
以上説明した内容が、本実施形態における点火時期操作回転数Ｆ／Ｂ制御の処理の基本的内容である。
【０３７０】
ところで、応答指定型制御である前記点火時期側適応ＳＬＤ制御にあっては、前記吸気側適応ＳＬＤ制御と同様、前記切換関数σ2 の係数パラメータｓ3 ，ｓ4 の比（ｓ4 ／ｓ3 ）の値（以下、この比の値をポールpole/ig という）によって、前記回転数偏差Ｅｎ（＝DNE −dne ＝Ｎｅ−ne/fire ）の減衰速度を指定することができる。すなわち、ポールpole/ig （＝ｓ4 ／ｓ3 ）の絶対値を「１」よりも小さい範囲で「０」に近づけていく程、回転数偏差Ｅｎの減衰速度は速くなる。尚、本実施形態では、前記吸気側適応ＳＬＤ制御の場合と同様、回転数偏差Ｅｎの振動的な減衰を避けるために、ｓ4 ／ｓ3 ＝pole/ig ＜０としている。
【０３７１】
このような点火時期側適応ＳＬＤ制御の応答指定特性を利用し、本実施形態では次のように回転数偏差Ｅｎの減衰速度を可変的に設定する。
【０３７２】
すなわち、点火時期の変化に対する内燃機関１の回転数Ｎｅの変化は該点火時期が遅角側である程、大きくなる傾向がある。このため、回転数Ｎｅの目標回転数ne/fire への制御を安定して行うためには、回転数偏差Ｅｎの減衰速度を、操作している点火時期が遅角側である程、遅くしてやる（ポールpole/ig の絶対値を大きくする）ことが好ましいと考えられる。
【０３７３】
そこで、本実施形態では、制御サイクル毎に、現在の点火時期の指令値iglog （前回の制御サイクルで決定された指令値iglog ）から、図１９に示す如くあらかじめ定めたデータテーブルに基づいてポールpole/ig の基本値pole/igtblを求め、基本的には、この基本値pole/igtblをポールpole/ig の値として設定する。この場合、基本値pole/igtbl（以下、点火時期対応ポール基本値pole/igtblという）は、点火時期の指令値iglog が遅角側である程、その絶対値｜pole/igtbl｜を大きくするように設定されている（但し、−１＜pole/igtbl＜０）。
【０３７４】
尚、点火時期対応ポール基本値pole/igtblは、基本的には、前記吸気側適応ＳＬＤ制御に関して前記図９のデータテーブルにより決定するポールテーブル値pole/itbl よりも「０」側に近い値に設定されている。換言すれば、点火時期側適応ＳＬＤ制御に関して点火時期対応ポール基本値pole/igtblにより規定される前記回転数偏差Ｅｎの減衰速度は、前記吸気側適応ＳＬＤ制御に関してポールテーブル値pole/itbl に規定される前記吸気偏差Ｅq の減衰速度よりも速くなるように点火時期対応ポール基本値pole/igtblが設定されている。
【０３７５】
また、本実施形態では、点火時期操作回転数Ｆ／Ｂ制御を開始する際に、前述した点火時期側適応ＳＬＤ制御の処理によって回転数Ｎｅを目標回転数ne/fire に収束させるべく点火時期を急激に変化させると、内燃機関１の燃焼状態が悪化する虞れがある。従って、点火時期操作回転数Ｆ／Ｂ制御の初期段階では、回転数偏差Ｅｎの減衰速度を遅めにするようにポールpole/ig の値を設定することが好ましい。
【０３７６】
そこで、本実施形態では、制御サイクル毎に、前記回転数Ｆ／Ｂ経過時間Δt/nfb （点火時期操作回転数Ｆ／Ｂ制御を開始してからの経過時間）から、図２０に示す如くあらかじめ定めたデータテーブル（タイムテーブル）に基づいて点火時期対応ポール基本値pole/igtblを回転数Ｆ／Ｂ経過時間Δt/nfb に応じて補正（乗算補正）するための補正係数kigtを求め、この補正係数kigt（以下、時間対応補正係数kigtという）を点火時期対応ポール基本値pole/igtblに乗算することで、該点火時期対応ポール基本値pole/igtblを補正するようにしている。
【０３７７】
この場合、図２１のデータテーブルでは、時間対応補正係数kigtは、点火時期操作回転数Ｆ／Ｂ制御の初期段階（回転数Ｆ／Ｂ経過時間Δt/nfb が所定値T/NFBXに達するまで）では、点火時期対応ポール基本値pole/igtblの絶対値を若干大きくする方向（回転数偏差Ｅｎの減衰速度を遅くする方向）に該点火時期対応ポール基本値pole/igtblを補正するような値（＞１）に定められている。しかもこのとき、時間対応補正係数kigtは、回転数Ｆ／Ｂ経過時間Δt/nfb が短い程、大きな値に定められ、これにより、回転数Ｆ／Ｂ経過時間Δt/nfb が短い程、点火時期対応ポール基本値pole/igtblの絶対値がより大きくなる（回転数偏差Ｅｎの減衰速度がより遅くなる）ように点火時期対応ポール基本値pole/igtblを補正するようにしている。そして、回転数Ｆ／Ｂ経過時間Δt/nfb が所定値T/NFBXに達した後は、時間対応補正係数kigtは「１」に保持され、この状態では、点火時期対応ポール基本値pole/igtblを補正しないようにしている。
【０３７８】
さらに、本実施形態では、ＦＩＲＥモードの中断動作中は、点火時期操作回転数Ｆ／Ｂ制御は中断され、回転数Ｎｅのフィードバック制御を行わないため、該中断動作が解除され、点火時期操作回転数Ｆ／Ｂ制御を再開する際に、内燃機関１の回転数が目標回転数ne/fire よりも大幅に高いものとなっていることがある。そして、このような状態では、前記回転数偏差Ｅｎが大きなものとなるため、点火時期操作回転数Ｆ／Ｂ制御によって前述の如く求められる点火時期の指令値iglog が急激に遅角側に過大なものとなり、内燃機関１の燃焼状態が悪化する虞れがある。従って、ＦＩＲＥモードの中断動作の解除によって点火時期操作回転数Ｆ／Ｂ制御を再開する際には、内燃機関１の回転数Ｎｅが目標回転数ne/fire に対して大きく高回転側に離間しているような状況では、回転数偏差Ｅｎの減衰速度を遅くし、ひいては、点火時期の指令値iglog を過大に遅角側にするような前記点火時期偏差指令値DIG が求められるのを回避することが好ましいと考えられる。
【０３７９】
そこで、本実施形態では、制御サイクル毎に、内燃機関１の現在の回転数Ｎｅから、図２１に示す如くあらかじめ定めたデータテーブルに基づいて、点火時期対応ポール基本値pole/igtblを回転数Ｎｅに応じて補正（乗算補正）するための補正係数kigne （以下、回転数対応補正係数kigne という）を求める。この場合、図２１のデータテーブルでは、回転数対応補正係数kigne は基本的には、回転数Ｎｅが高い程（回転数Ｎｅが目標回転数ne/fire に対して高回転側に離間している程）、点火時期対応ポール基本値pole/igtblの絶対値を大きくする方向（回転数偏差Ｅｎの減衰速度を遅くする方向）に該点火時期対応ポール基本値pole/igtblを補正するような値（＞１）に設定されている。そして、本実施形態では、回転数対応補正係数kigne に基づく点火時期対応ポール基本値pole/igtblの補正を、点火時期操作回転数Ｆ／Ｂ制御の再開後、所定期間XCNT（これは、前記図３のＳＴＥＰ５−１８で設定するカウントダウンタイマcnt/igvpl の初期値である）だけ行うために、次式（５０）により回転数対応補正係数kigne を修正し、この修正した補正係数kignef（以下、回転数対応修正補正係数kignefという）を点火時期対応ポール基本値pole/igtblに乗算することで、該点火時期対応ポール基本値pole/igtblを補正する。
【０３８０】
【数５０】
0003779075.tif 000051
【０３８１】
ここで、式（５０）中のカウントダウンタイマcnt/igvpl は、図３のＳＴＥＰ５−１８によって、中断動作中（ＦＩＲＥ中断フラグf/fpause＝１の状態）に常時、上記所定期間XCNTが設定される。そして、中断動作の解除により点火時期操作回転数Ｆ／Ｂ制御が再開されると、カウントダウンタイマcnt/igvpl の値は、所定期間XCNTの値から、制御サイクル毎に所定値づつ減少し、最終的に「０」になった後はその値に保持される。従って、式（５０）により求まる回転数対応修正補正係数kignefは、点火時期操作回転数Ｆ／Ｂ制御が再開してから所定期間XCNTが経過するまでは、回転数Ｎｅに応じた値（≧１）であるが、該所定期間XCNTが経過した後は、kignef＝１である（このとき、回転数対応修正補正係数kignefによる点火時期対応ポール基本値pole/igtblの補正は行われなくなる）。
【０３８２】
尚、カウントダウンタイマcnt/igvpl は、前記始動モード処理（ＳＴＥＰ３−２）において「０」に初期化されるもので、ＦＩＲＥモードの中断動作中と、該中断動作が終了してから所定期間XCNTが経過するまでの期間とを除いて値が「０」に保持される。
【０３８３】
本実施形態では、制御サイクル毎に、前述のように求めた点火時期対応ポール基本値pole/igtblに、次式（５１）の如く前記時間対応補正係数kigt及び回転数対応修正補正係数kignefを乗算してなる値を、最終的なポールpole/ig の値として設定する。
【０３８４】
【数５１】
0003779075.tif 000052
【０３８５】
尚、時間対応補正係数kigtは、点火時期操作回転数Ｆ／Ｂ制御の開始直後の初期段階においてのみkigt＞１となり、これ以外の状態では、kigt＝１である。また、回転数対応修正補正係数kignefは、ＦＩＲＥモードの中断動作の解除直後の初期段階で、しかも回転数Ｎｅが比較的高い場合のみkignef＞１となり、これ以外の状態ではkignef＝１である。従って、式（５１）により設定されるポールpole/ig の値は、通常的には、点火時期対応ポール基本値pole/igtblである。
【０３８６】
以上説明した内容をふまえて、前記図４のＳＴＥＰ４−６において前記点火時期操作手段２６が行う点火時期の指令値iglog の生成処理を次に具体的に説明する。
【０３８７】
図２２のフローチャートを参照して、前記ＳＴＥＰ４−６では、点火時期操作手段２６は、まず、点火時期の基本指令値igbaseを決定する（ＳＴＥＰ２２−１）。この場合、該基本指令値igbaseは、例えば内燃機関１の現在の回転数Ｎｅや吸気圧Ｐｂ、機関温度Ｔｗ、大気温度Ｔａ等から、あらかじめ定めたマップや演算式を用いて求める。
【０３８８】
次いで、点火時期操作手段２６は、前記点火時期偏差指令値DIG を決定するための処理を図２３のフローチャートに示すように実行する（ＳＴＥＰ２２−２）。
【０３８９】
すなわち、ＳＴＥＰ２２−２の処理では、まず、現在のＦＩＲＥ実行可否フラグf/fireonの値を判断する（ＳＴＥＰ２３−１）。
【０３９０】
このとき、f/fireon＝１、すなわち、ＦＩＲＥモードの動作を行うべき状態である場合には、点火時期操作手段２６は点火時期操作回転数Ｆ／Ｂ制御を行うか否かをそれぞれ値「１」、「０」で表すフラグf/nefb（以下、回転数Ｆ／Ｂ実行可否フラグf/nefbという）の値を判断する（ＳＴＥＰ２３−２）。
【０３９１】
この回転数Ｆ／Ｂ実行可否フラグf/nefbは、前記始動モード処理（ＳＴＥＰ４−２）において「０」に初期化されるものである。
【０３９２】
このＳＴＥＰ２３−２において、f/nefb＝０、すなわち、点火時期操作回転数Ｆ／Ｂ制御をまだ行うべき状態でない場合には、前記回転数Ｆ／Ｂ経過時間Δt/nfb の値を「０」に初期化する（ＳＴＥＰ２３−３）。該回転数Ｆ／Ｂ経過時間Δt/nfb は、ＳＴＥＰ２３−２でf/nefb＝１となって、点火時期操作回転数Ｆ／Ｂ制御を行うべき状態となった制御サイクルから計時を開始するものであり、ＳＴＥＰ２３−２でf/nefb＝１である場合には、ＳＴＥＰ２３−３の処理は省略される。
【０３９３】
次いで、点火時期操作手段２６は、今回の制御サイクルにおける目標回転数ne/fire(k)と、次回の制御サイクルにおける目標回転数ne/fire(k+1)とを求める（ＳＴＥＰ２３−４）。この場合、今回の制御サイクルにおける目標回転数ne/fire(k)は、現在の回転数Ｆ／Ｂ経過時間Δt/nfb から前記式（４８）により求められる。また、次回の制御サイクルにおける目標回転数ne/fire(k+1)に関しては、現在の内燃機関１の回転数Ｎｅ（回転数センサ１４の検出値）から把握される１制御サイクルの時間ΔＴを現在の回転数Ｆ／Ｂ経過時間Δt/nfb に加算することで回転数Ｆ／Ｂ予測経過時間Δt/nfbpreを求め、この回転数Ｆ／Ｂ予測経過時間Δt/nfbpreから前記式（４９）により目標回転数ne/fire(k+1)が求められる。
【０３９４】
尚、今回の制御サイクルにおける目標回転数ne/fire(k)は、回転数Ｆ／Ｂ経過時間Δt/nfb がＳＴＥＰ２３−３で「０」に設定されている間（f/nefb＝０の状態）は、前記設定回転数（NOBJ＋NEFSLDS ）である。
【０３９５】
次いで、点火時期操作手段２６は、内燃機関１の現在の回転数Ｎｅが現在の目標回転数ne/fire(k)以上となったか否か（ＳＴＥＰ２３−５）、現在のＦＩＲＥ経過時間t/fireが所定値TSLDIGST（一定値）以上となったか否か（ＳＴＥＰ２３−６）を順次判断する。
【０３９６】
そして、ＳＴＥＰ２３−５、２３−６のいずれかの条件が成立したときには、回転数Ｆ／Ｂ実行可否フラグf/nefbの値を「１」に設定する（ＳＴＥＰ２３−７）。これにより、ＦＩＲＥモードの動作が開始してから、内燃機関１の回転数Ｎｅが前記設定回転数（NOBJ＋NEFSLDS ）に達した時、又は、ＦＩＲＥ経過時間t/fireが所定値TSLDIGSTに達した時に回転数Ｆ／Ｂ実行可否フラグf/nefbが「１」に設定され、点火時期操作回転数Ｆ／Ｂ制御を行い得る状態となる。
【０３９７】
尚、ＳＴＥＰ２３−５、２３−６のいずれかの条件も成立しない状態では、ＳＴＥＰ２３−７の処理は省略され、回転数Ｆ／Ｂ実行可否フラグf/nefbの値は「０」に維持される。また、回転数Ｆ／Ｂ実行可否フラグf/nefbは、「１」に設定された後にＦＩＲＥモードの動作中に「０」に戻されることはない。
【０３９８】
次いで、点火時期操作手段２６は、内燃機関１の現在の回転数Ｎｅと、ＳＴＥＰ２３−４で求めた現在の目標回転数ne/fire(k)とから今回の制御サイクルにおける前記回転数偏差Ｅｎ(k) （＝Ｎｅ−ne/fire(k)）を算出する（ＳＴＥＰ２３−８）。
【０３９９】
次いで、点火時期操作手段２６は、前記ＦＩＲＥ中断フラグf/fpauseの値を判断し（ＳＴＥＰ２３−９）、f/fpause＝０、すなわち、ＦＩＲＥモードの中断動作を行う状態でない場合には、さらに回転数Ｆ／Ｂ実行可否フラグf/nefbの値を判断する（ＳＴＥＰ２３−１０）。
【０４００】
このとき、f/nefb＝０である場合には、今回の制御サイクルにおける点火時期偏差指令値DIG(k)の値を「０」として（ＳＴＥＰ２３−１１）、図２２のルーチン処理に復帰する。
【０４０１】
一方、ＳＴＥＰ２３−１０でf/nefb＝１である場合には、点火時期操作回転数Ｆ／Ｂ制御のための点火時期偏差指令値DIG(k)を算出する（ＳＴＥＰ２３−１２）。
【０４０２】
この点火時期偏差指令値DIG(k)の算出は次のように行われる。
【０４０３】
すなわち図２４のフローチャートを参照して、まず、点火時期の現在の指令値iglog(k-1)（前回の制御サイクルで決定された指令値）から、前記図１９のデータテーブルにより前記点火時期対応ポール基本値pole/igtblを求める（ＳＴＥＰ２４−１）。
【０４０４】
また、現在の回転数Ｆ／Ｂ経過時間Δt/nfb から、前記図２０のデータテーブルにより前記時間対応補正係数kigtを求める（ＳＴＥＰ２４−２）。
【０４０５】
また、内燃機関１の現在の回転数Ｎｅから、前記図２１のデータテーブルにより前記回転数対応補正係数kigne を求め（ＳＴＥＰ２４−３）、さらにこの回転数対応補正係数kigne と、前記カウントダウンタイマcnt/igvpl の現在の値と、ＦＩＲＥモードの中断動作の終了後のカウントダウンタイマcnt/igvpl の初期値としてあらかじめ定めた所定期間XCNTとから前記式（５０）により前記回転数対応修正補正係数kignefを求める（ＳＴＥＰ２４−４）。
【０４０６】
そして、ＳＴＥＰ２４−１で求めた点火時期対応ポール基本値pole/igtblに、ＳＴＥＰ２４−２及び２４−４でそれぞれ求めた時間対応補正係数kigt及び回転数対応修正補正係数kignefを乗算する（式（５１）の演算を行う）ことで、今回の制御サイクルにおけるポールpole/ig の値を決定する（ＳＴＥＰ２４−５）。
【０４０７】
次いで、点火時期操作手段２６は、今回及び前回の制御サイクルにおいてそれぞれ前記ＳＴＥＰ２３−８で求めた回転数偏差Ｅｎ(k) ，Ｅｎ(k-1) と、上記ＳＴＥＰ２４−５で求めたポールpole/ig の今回値とから、前記式（３９）の演算により今回の制御サイクルにおける前記切換関数σ2(k)を求める（ＳＴＥＰ２４−６）。この場合において、式（３９）中の係数パラメータｓ3 ，ｓ4 はそれぞれ、「１」、「pole/ig 」である。
【０４０８】
次いで、点火時期操作手段２６は、前記式（４２）〜（４４）により、今回の制御サイクルにおける等価制御入力DIGeq 、到達則入力DIGrch、及び適応則入力DIDadpをそれぞれ求める（ＳＴＥＰ２４−７）。
【０４０９】
より具体的には、等価制御入力DIGeq に関しては、まず、今回の制御サイクルにおいて前記ＳＴＥＰ２３−４で求めた目標回転数ne/fire(k)及びne/fire(k+1)と、前回の制御サイクルにおいてＳＴＥＰ２３−４で求めた目標回転数ne/fire(k-1)とから、それらの目標回転数ne/fire(k)，ne/fire(k+1)，ne/fire(k-1)の前記基準回転数Ｎe0（＝アイドリング回転数NOBJ）に対する偏差、すなわち前記偏差回転数dne(k)，dne(k+1)，dne(k-1)を求める。そして、この偏差回転数dne(k)，dne(k+1)，dne(k-1)と、今回及び前回の制御サイクルにおいてそれぞれ前記ＳＴＥＰ２３−８で求めた回転数偏差Ｅｎ(k) ，Ｅｎ(k-1) と、ＳＴＥＰ２４−５で求めたポールpole/ig の今回値とを用いて式（４２）の演算を行うことで、等価制御入力DIGeq(k)が求められる。この場合において、式（４２）中の係数パラメータｓ3 ，ｓ4 はそれぞれ、「１」、「pole/ig 」である。また、式（４２）中のモデルパラメータｃ1 ，ｃ2 ，ｄ1 は前記回転数制御対象モデル（式（３８）を参照）についてあらかじめ同定した所定値である。
【０４１０】
また、到達則入力DIGrchに関しては、前記ＳＴＥＰ２４−６で求めた切換関数σ2(k)の値を用いて式（４３）の演算を行うことで、到達則入力DIGrch(k) が求められる。この場合において式（４３）中の係数パラメータｓ3 は「１」であり、また、式（４３）中の係数Ｆ3 は前記式（４５）もしくは（４５）’の条件を満たすようにあらかじめ設定した所定値である。
【０４１１】
また、適応則入力DIDadpに関しては、ＳＴＥＰ２４−６で制御サイクル毎に求められる切換関数σ2 の値を制御サイクル毎に累積加算することで、切換関数σ2 の積算値Σσ2 を求める。そして、この積算値Σσ2 を用いて前記式（４４）の演算を行うことで、適応則入力DIDadpを求める。この場合において式（４４）中の係数パラメータｓ3 は「１」であり、また、式（４４）中の係数Ｆ4 は前記式（４６）の条件を満たすようにあらかじめ設定した所定値である。
【０４１２】
上記のようにして等価制御入力DIGeq 、到達則入力DIGrch、及び適応則入力DIDadpを求めた後、点火時期操作手段２６は、式（４１）に従ってそれらの総和を演算することで、今回の制御サイクルにおける点火時期偏差指令値DIG(k)を求め（ＳＴＥＰ２４−８）、図２３のルーチン処理に復帰する。
【０４１３】
図２３の説明に戻って、上記のようにしてＳＴＥＰ２３−１２で点火時期偏差指令値DIG(k)を算出した後、点火時期操作手段２６は、該点火時期偏差指令値DIG(k)の値を所定の上限値と下限値との間の値に制限する（DIG(k)＞上限値、あるいはDIG(k)＜下限値であるとき、それぞれDIG(k)の値を強制的に上限値、下限値に設定する）リミット処理を行った後（ＳＴＥＰ２３−１３）、図２２のルーチン処理に復帰する。
【０４１４】
前記ＳＴＥＰ２３−９でf/fpause＝１の場合、すなわち、ＦＩＲＥモードの中断動作を行うべき状態となっている場合には、点火時期操作回転数Ｆ／Ｂ制御を中断し、点火時期の指令値iglog を基本指令値igbaseに徐々に戻す（点火時期偏差指令値DIG を徐々に「０」に戻す）ために、その指令値iglog の制御サイクル毎の戻し量を規定する単位値dec/ig（＞０。以下、点火時期戻し単位値dec/igという）を決定する（ＳＴＥＰ２３−１４）。
【０４１５】
また、ＳＴＥＰ２３−１でf/fireon＝１の場合、すなわち、ＦＩＲＥモードの動作を終了するかもしくは行わない状態となっている場合にも、点火時期の指令値iglog を基本指令値igbaseに徐々に戻すために、前記点火時期戻し単位値dec/igを決定する（ＳＴＥＰ２３−１５）。
【０４１６】
この場合、本実施形態では、ＳＴＥＰ２３−１５では、点火時期戻し単位値dec/igをあらかじめ定めた所定値（一定値）に設定するが、ＦＩＲＥモードの中断動作に際してＳＴＥＰ２３−１４で設定する点火時期戻し単位値dec/igは、現在のスロットル弁５の開度に比例させた値（スロットル弁５の開度が大きい程、点火時期戻し単位値dec/igを大きくする）に決定する。
【０４１７】
これは次の理由による。すなわち、ＦＩＲＥモードの中断動作は、基本的には、車両のアクセルペダルの操作によって、車両の走行や内燃機関１のからぶかしを行う状況で行われるものである。そして、このときスロットル弁５の開度が前述の如くアクセル操作量Ａｐに応じた開度に操作され、該スロットル弁５の開度が大きい状況では、内燃機関１の所要の動作性能を確保するために、点火時期をなるべくすみやかに通常的な点火時期（これは基本指令値igbaseに相当する）を戻すことが好ましいと考えられる。このために、ＳＴＥＰ２３−１４では、点火時期戻し単位値dec/igをスロットル弁５の開度に比例させた値に決定する。
【０４１８】
尚、この場合に点火時期戻し単位値dec/igを決定するために必要となるスロットル弁５の開度は、コントローラ２からスロットル弁アクチュエータ２３に与える開度指令値あるいは図示しないセンサによる開度の検出値を用る。
【０４１９】
このようにして、点火時期戻し単位値dec/igを決定した後、点火時期操作手段２６は、次に、現在の点火時期偏差指令値DIG の値（これは前回の制御サイクルで決定された点火時期偏差指令値DIG(k-1)である）が「０」より小さいか否か、すなわち、遅角側の値であるか否かを判断する（ＳＴＥＰ２４−１６）。
【０４２０】
そして、DIG(k-1)＜０である場合（DIG(k-1)が遅角側の値である場合）には、現在の点火時期偏差指令値DIG(k-1)に前記ＳＴＥＰ２４−１４又は２４−１５で決定した点火時期戻し単位値dec/igを加算した値（DIG(k-1)＋dec/ig）を今回の制御サイクルにおける点火時期偏差指令値DIG(k)として決定し（ＳＴＥＰ２４−１７）、図２２のルーチン処理に復帰する。尚、この場合において、点火時期偏差指令値DIG(k)の上限値を「０」とし、（DIG(k-1)＋dec/ig）が「０」より大きくなるような場合には、点火時期偏差指令値DIG(k)の値を強制的に「０」とする。
【０４２１】
一方、ＳＴＥＰ２４−１６でDIG(k-1)≧０の場合（実質上は、DIG(k-1)＝０の場合）には、ＦＩＲＥ実行可否フラグf/fireonの値を判断し（ＳＴＥＰ２４−１８）、f/fireon＝１の場合（この場合は、ＦＩＲＥモードの中断動作中である）には、今回の制御サイクルにおける点火時期偏差指令値DIG(k)を「０」として（ＳＴＥＰ２４−１９）、図２２のルーチン処理に復帰する。
【０４２２】
尚、ＦＩＲＥモードの中断動作中（f/fireon＝１且つf/fpauseの状態）は、切換関数σ2 の積算値Σσ2 の値は中断動作の開始直前の値に保持される。
【０４２３】
また、ＳＴＥＰ２４−１８でf/fireon＝０の場合、すなわち、ＦＩＲＥモードの終了状態である場合には、ＦＩＲＥ中断フラグf/fpause及び回転数Ｆ／Ｂ実行可否フラグf/nefbの値を「０」にリセットすると共に、点火時期偏差指令値DIG(k)、切換関数σ2 の値及びその積算値Σσ2 、等価制御入力DIGeq 、到達則入力DIGrch、適応則入力DIGadpの値等を「０」に初期化した後（ＳＴＥＰ２４−２０）、図２２のルーチン処理に復帰する。
【０４２４】
図２２の説明に戻って、前述の如く、ＳＴＥＰ２２−２で点火時期偏差指令値DIG を決定する処理を実行した後、点火時期操作手段２６は、ＳＴＥＰ２２−１で決定した基本指令値igbaseにＳＴＥＰ２２−２で決定した点火時期偏差指令値DIG を加算することで、今回の制御サイクルにおける点火時期の指令値iglog を求める（ＳＴＥＰ２２−３）。
【０４２５】
次いで、点火時期操作手段２６は、前述した吸入空気量操作手段２５の前記点火時期応動補正処理に関して図１２示した点火時期の遅角側の限界値IGLGG とこの限界値IGLGG よりも若干進角側の閾値IGX とを決定する（ＳＴＥＰ２２−４）。
【０４２６】
この場合、点火時期の遅角側の限界値IGLGG は、内燃機関１の機関温度Ｔｗから図示しないデータテーブルに基づいて求められ、該限界値IGLGG 以上の進角側の点火時期では、内燃機関１の正常な運転を行い得るように定められる。また、閾値IGX は、限界値IGLGG にあらかじめ定めた所定値（一定値）を加算した値（限界値IGLGG よりも所定値だけ進角側の値）に設定する。尚、限界値IGLGG は、内燃機関１の機関温度Ｔｗが通常的な温度範囲にある場合には、一定値であるが、機関温度Ｔｗがかなり低温な温度範囲にある場合には、通常的な温度範囲の場合よりも進角側の値になるようにしている。
【０４２７】
このようにして点火時期の遅角側の限界値IGLGG と閾値IGX とを決定した後、点火時期操作手段２６は、前記ＳＴＥＰ２２−３で求めた指令値iglog を閾値IGX と比較する（ＳＴＥＰ２２−５）。そして、このとき、指令値iglog が閾値IGX に等しいかもしくは該閾値IGX よりも進角側の値である場合（iglog ≧IGX ）には、前記点火時期応動補正処理を行わないため前記点火時期判別フラグf/dec （図１５のＳＴＥＰ１５−７を参照）の値を「０」に設定し（ＳＴＥＰ２２−６）、ＳＴＥＰ２２−９に進む。
【０４２８】
また、ＳＴＥＰ２２−５でiglog ＜IGX である場合には、前記点火時期応動補正処理を行うべく前記点火時期判別フラグf/dec の値を「１」に設定し（ＳＴＥＰ２２−７）、さらに、吸入空気量操作手段２５による前記学習補正処理に係わる前記学習演算終了フラグf/flrnend の値を判断する（ＳＴＥＰ２２−８）。そして、点火時期操作手段２６は、f/flrnend ＝０である場合にのみ、現在のＦＩＲＥ経過時間t/fireの値を前記学習終了時刻パラメータt/kil の値として保持しておき（ＳＴＥＰ２２−９）、さらに前記基本学習補正係数vpskisldの算出処理を終了すべく学習演算終了フラグf/flrnend の値を「１」に設定する（ＳＴＥＰ２２−１０）。
【０４２９】
次いで、点火時期操作手段２６は、ＳＴＥＰ２２−３で求めた指令値iglog をＳＴＥＰ２２−４で決定した遅角側の限界値IGLGG と比較し（ＳＴＥＰ２２−１１）、iglog ≧IGLGG である場合、すなわち指令値iglog が遅角側の限界値IGLGG 内に収まっている場合には、図４のメインルーチンの処理に復帰する。
【０４３０】
一方、iglog ＜IGLGG である場合、すなわち、ＳＴＥＰ２２−３で求めた指令値iglog が、遅角側の限界値IGLGG を超えて遅角側の値となっている場合には、指令値iglog を強制的に限界値IGLGG に設定する（ＳＴＥＰ２２−１２）。さらにこのとき、切換関数σ2 の値の積算値Σσ2 の値をiglog ＜IGLGG となる直前の制御サイクルで求めた値に強制的にホールド（保持）した後（ＳＴＥＰ２２−１３）、図４のメインルーチンの処理に復帰する。このように積算値Σσ2 の値をホールドするのは、点火時期の指令値iglog を強制的に限界値IGLGG に設定する状態で、前記ＳＴＥＰ２３−１２の処理により点火時期偏差指令値DIG の算出を継続して行うと、切換関数σ2 の値の積算値Σσ2 の値、ひいては前記適応則入力DIGadpの値（絶対値）が過剰に大きくなってしまうからである。
【０４３１】
以上、図１９〜図２４を参照して説明した処理が、前記図４のＳＴＥＰ４−６で点火時期の指令値iglog を制御サイクル毎に生成する処理の詳細であり、このようにして決定された指令値iglog は前記点火装置２１に与えられる。そして、該点火装置２１は、与えられた指令値iglog に従って内燃機関１の点火時期を操作する。
【０４３２】
以上説明した本実施形態のシステムの作動によって、前記ＦＩＲＥモードの動作では、バイパス開度の操作により内燃機関１の燃焼室４の吸入空気量が通常のアイドリング運転時よりも増量される。また、これと並行して、点火時期操作回転数Ｆ／Ｂ制御によって、内燃機関１の回転数Ｎｅを所要の目標回転数ne/fire （最終的にはアイドリング回転数NOBJ）に収束させるように点火時期が遅角側に操作される。これにより、内燃機関１が混合気の燃焼により生成する排ガスによって触媒装置３に与えられる熱量が通常のアイドリング運転時よりも多くなって、該触媒装置３の昇温・活性化を早期に行うことが可能となると同時に、吸入空気量の増量によって上昇傾向となる内燃機関１の回転数Ｎｅを適正な回転数に維持することができる。
【０４３３】
この場合、吸入空気量の増量に関しては、その増量を開始してから触媒装置３に実際に与えられる瞬時瞬時の熱量の積算値に相当する前記推定積算吸入空気量qair/preを、触媒装置３に実際に与えるべき熱量の目標積算値に相当する目標積算吸入空気量qair/cmdに収束させるように、吸気側適応ＳＬＤ制御を用いた前記吸気量Ｆ／Ｂ制御補正処理によってバイパス開度の指令値が補正される。
【０４３４】
例えば図２５の中段に示す如く、前記構造要因による吸入空気量のばらつきに起因して、推定積算吸入空気量qair/preが標準開度指令値θ0 に応じて定まる目標積算吸入空気量qair/cmdに対して誤差（吸気偏差Ｅｑ）を生じたとき、開度指令Θ（バイパス開度の指令値）は、同図の上段に示す如く、標準開度指令θ0 に対して前記ＳＬＤ開度補正量i/sld だけ補正される。そして、この補正により、同図の中段に示す如く推定積算吸入空気量qair/preを目標積算吸入空気量qair/cmdに収束させ、ひいては、触媒装置３に実際に与えられる熱量の積算値をその目標値に追従させることができる。これにより、前記構造要因による吸入空気量のばらつきを補償し、ひいては、該構造要因による触媒装置３の昇温形態のばらつきを解消することができる。
【０４３５】
さらに、本実施形態では、前記大気条件補正処理により求めた前記大気圧補正係数kpa と大気温度補正係数kta とによって、開度指令Θを乗算補正する。すなわち、大気圧Ｐａが低い程、開度指令Θを増加側に補正し、また、大気温度が高い程、開度指令Θを増加側に補正する。これにより、大気条件による吸入空気量のばらつきを補償し、ひいては、該大気条件による触媒装置３の昇温形態のばらつきも解消することができる。
【０４３６】
この結果、ＦＩＲＥモードにおける触媒装置３の昇温形態を所望の昇温形態に合わせることができ（本実施形態では、内燃機関１の始動時の機関温度Ｔｗや、ＦＩＲＥモードの動作中の自動変速機のシフト位置が一定であれば、ＦＩＲＥモードの中断動作が行われる場合を除いて、各回のＦＩＲＥモードの動作による触媒装置３の昇温形態はほぼ同じになる）、該ＦＩＲＥモードの動作による触媒装置３の所望の昇温・活性化を確実に行うことができる。
【０４３７】
また、前記標準開度指令値θ0 、ひいては目標吸入空気量gair/cmd及び目標積算吸入空気量qair/cmdは、内燃機関１の始動時における触媒装置３の温度状態に相当する内燃機関１の始動時の機関温度Ｔｗに応じたものに設定するため（基本的には、該機関温度Ｔｗが高い程、目標吸入空気量gair/cmd及び目標積算吸入空気量qair/cmdは小さくなる）、内燃機関１の始動時の触媒装置３の温度状態に適した該触媒装置３の昇温・活性化を行うことができる。つまり、ＦＩＲＥモードにおける触媒装置３の昇温形態（経時的な温度の上昇度合い）は、内燃機関１の始動時における触媒装置３の温度状態に応じたものとなるが、ＦＩＲＥモードの動作による最終的な触媒装置３の温度状態を該触媒装置３の活性化の上で適正な温度状態にすることができる。
【０４３８】
また、標準開度指令値θ0 により規定される目標積算吸入空気量qair/cmdは、それに対応して内燃機関１の燃焼室４に制御サイクル毎に吸入されるべき吸入空気量、すなわち目標吸入空気量gair/cmdを、ＦＩＲＥ経過時間t/fireが所定値ｔ2 （図７を参照）に達した後（内燃機関１の暖機がある程度進行した後）は、緩やかに減少させていくように設定される。このため、内燃機関１の暖機の進行によって、その各部のフリクションが低下しても内燃機関１の回転数Ｎｅが上昇傾向となるのを予防することができる。そして、この結果、内燃機関１の点火時期が前記点火時期操作Ｆ／Ｂ制御によって、過剰に遅角側に操作されるのを予防することができる。
【０４３９】
さらに、本実施形態では、点火時期操作回転数Ｆ／Ｂ制御によって決定される点火時期の指令値iglog が、該点火時期を操作し得る遅角側の限界値IGLGG に近い閾値IGX を超えたときには、前記吸気量Ｆ／Ｂ制御補正処理を中断して、前記点火時期応動補正処理によって、開度指令Θをフィードフォワード的に減少させる。このため、内燃機関１のフリクションの低下が予想以上に大きく、あるいは早期に生じた場合であっても、内燃機関１の回転数Ｎｅの上昇傾向の高まりを抑え、点火時期が遅角側の限界値IGLGG に達する程、過剰に遅角側に操作されるような事態を回避することができる。
【０４４０】
また、本実施形態では、前記吸気量Ｆ／Ｂ制御補正処理に、外乱や制御対象のモデル化誤差や外乱の影響を受けにくいスライディングモード制御を用い、特に、外乱等の影響を極力排除するための適応則を用いた適応スライディングモード制御（吸気側適応ＳＬＤ制御）を用いることで、推定積算吸入空気量qair/preを目標積算吸入空気量qair/cmdに収束させ、ひいては、触媒装置３に与える熱量の積算値をその目標値に収束させる制御を高い安定性で行うことができる。この結果、触媒装置３の所望の昇温・活性化をより確実に行うことができる。
【０４４１】
また、前記吸気量Ｆ／Ｂ制御補正処理の吸気側適応ＳＬＤ制御にあっては、その制御対象を開度指令Θから積算吸入空気量Ｑａを生成する系として、離散系のモデル（吸気制御対象モデル）で表現したため、該制御対象を連続系のモデルで表現する場合に比して、点火時期側適応ＳＬＤ制御のアルゴリズムを簡素でコンピュータ処理に適したものに構築することができる。
【０４４２】
特に、吸気側適応ＳＬＤ制御の制御対象を離散系でモデル化することで、吸気側適応ＳＬＤ制御に用いる切換関数σ1 を、前記吸気偏差Ｅｑの変化速度等を用いることなく、該吸気偏差Ｅｑのみの時系列データを用いて構成することができる。この結果、前記ＳＬＤ開度補正量i/sld を求めるために必要な切換関数σ1 の値の信頼性を高め、ひいては、吸気側適応ＳＬＤ制御の信頼性を高めることができる。
【０４４３】
さらに、吸気側適応ＳＬＤ制御では、等価制御入力Θeqのフィードバック項Θeq/fb を省略して、フィードフォワード項Θeq/ff に相当する標準開度指令値θ0 を本実施形態での等価制御入力Θeqとすることで、制御対象のモデル（吸気制御対象モデル）のモデルパラメータａ1 ，ａ2 ，ｂ1 を用いずに簡略なアルゴリズムで、ＳＬＤ開度補正量i/sld を求めることができる。
【０４４４】
尚、ＳＬＤ開度補正量i/sld をモデルパラメータａ1 ，ａ2 ，ｂ1 を用いて求めるようにしてもよいことはもちろんであるが、この場合であっても、吸気側適応ＳＬＤ制御の制御対象のモデルを離散系で構築しているため、既知の同定アルゴリズムを用いることで、モデルパラメータａ1 ，ａ2 ，ｂ1 の値を的確に同定することが可能である。
【０４４５】
また、前記吸気量Ｆ／Ｂ制御補正処理にあっては、図２５の中段に示される如く、内燃機関１の始動直後の前記ＳＬＤ補正制限時間TISLDLMTが経過するまでは、推定積算吸入空気量qair/pre及び目標積算吸入空気量qair/cmdの値を強制的に「０」に保持し、ひいては、ＳＬＤ開度補正量i/sld の値も「０」に保持する。
【０４４６】
このため、内燃機関１の始動直後は、ＳＬＤ補正制限時間TISLDLMTが経過するまで吸気量Ｆ／Ｂ制御補正処理が行われないこととなり、バイパス開度は、標準開度指令値θ0 （より正確には、標準開度指令値θ0 に大気圧補正係数kpa 、大気温度補正係数kta 及び学習補正係数kilearn を乗算した値）を主体として、フィードフォワード的に操作されることとなる（図２５の上段を参照）。
【０４４７】
従って、内燃機関１の始動直後は、吸入空気量は、標準開度指令値θ0 の上昇形態と同じような形態で滑らかに増量されていくこととなり、この結果、始動直後の内燃機関１の燃焼状態を円滑に安定化し、内燃機関１の良好なエミッション状態を確保することができる。
【０４４８】
さらに、吸気量Ｆ／Ｂ制御補正処理を実際に開始する際には、図２５の下段に示す如く前記吸気側適応ＳＬＤ制御に係わるポールpole/iの値を、ＦＩＲＥ経過時間t/fireが所定値TPOLEXに達するまで、「−１」側から徐々に増加させる（｜pole/i｜を徐々に減少させる）ことで、前記吸気偏差Ｅｑの減衰速度をＦＩＲＥ経過時間t/fireが所定値TPOLEXに達するまでは、該所定値TPOLEXに達した後よりも遅くする。
【０４４９】
この結果、吸気量Ｆ／Ｂ制御補正処理の開始によって、開度指令Θ、ひいては、吸入空気量が急激に大きく変化するような事態が回避され、これによっても、始動後の初期段階における内燃機関１の燃焼状態の安定性を保ちつつ、内燃機関１の良好なエミッション状態を確保することができる。
【０４５０】
また、本実施形態では、前記学習補正処理によって、ＦＩＲＥモードの動作毎に吸気量Ｆ／Ｂ制御補正処理によるＳＬＤ開度補正量i/sld を学習し、該ＳＬＤ開度補正量i/sld をＦＩＲＥモードの動作中に積算してなるＳＬＤ積算吸気補正量qair/sldの、目標積算吸入空気量qair/cmdに対する比の値に基づく学習補正係数kilearn （基本的には前記基本学習補正係数vpskisld）を求める。そして、次回のＦＩＲＥモードの動作に際して、この学習補正係数kilearn によりＦＩＲＥモードの全期間にわたって開度指令Θをフィードフォワード的に乗算補正することで、ＦＩＲＥモード中のＳＬＤ開度補正量i/sld による制御サイクル毎の開度指令Θの補正を最小限に留めることができる。この結果、構造要因による吸入空気量のばらつきが大きく生じたような場合であっても、吸入空気量の時間的変化のパターンが標準開度指令値θ0 のパターンに対して大きく逸脱した変化を呈するような事態を回避することができ、内燃機関１の燃焼状態やエミッション状態を損なうことなく安定した内燃機関１の運転を行うことができる。
【０４５１】
また、本実施形態では、ＦＩＲＥモードの動作中に車両のアクセルペダルの操作による内燃機関１のからぶかしや車両の発進・走行が行われて、内燃機関１のアイドリング運転以外の運転を行う状態となり、ＦＩＲＥモードの中断動作を行う状況でも、吸入空気量の増量側へのバイパス開度の操作を行う（但し、吸気量Ｆ／Ｂ制御補正処理は中断）と共に、推定積算吸入空気量qair/pre及び目標積算吸入空気量qair/cmdの算出を継続する。そして、該中断動作の解除後に、吸気量Ｆ／Ｂ制御補正処理を再開して、推定積算吸入空気量qair/preを目標積算吸入空気量qair/cmdに収束させるように開度指令Θを補正する。このため、ＦＩＲＥモードの動作中に、内燃機関１のアイドリング運転以外の運転を行う状況となり、ＦＩＲＥモードの中断動作を行うような状況が生じても、ＦＩＲＥモード制限時間TFIRELMT内における触媒装置３の昇温・活性化を確実に行うことができる。
【０４５２】
また、点火時期操作回転数Ｆ／Ｂ制御に関しては、そのフィードバック制御処理に、前記吸気量Ｆ／Ｂ制御補正処理の場合と同様に、適応スライディングモード制御（点火時期側適応ＳＬＤ制御）を用いることで、内燃機関１の回転数Ｎｅの目標回転数ne/fire への制御の安定性を高めることができる。
【０４５３】
この場合、特に、応答指定型制御である点火時期側適応ＳＬＤ制御の応答指定特性を利用し、回転数Ｎｅの制御のために操作する点火時期の指令値iglog が遅角側の値である程、回転数偏差Ｅｎ（＝Ｎｅ−ne/fire ）の減衰速度を遅くするように、該減衰速度を規定するパラメータである前記ポールpole/ig （＝ｓ4 ／ｓ3 ）の通常的な値として設定される前記点火時期対応ポール基本値pole/igtblを可変的に定める。つまり、一般に、点火時期が遅角側である程、該点火時期の変化に対する内燃機関１の回転数Ｎｅの変化が大きなものとなるが、このような状態では、回転数偏差Ｅｎの減衰速度を遅めにするようにポールpole/ig の値を設定することで、点火時期側適応ＳＬＤ制御により決定される指令値iglog の変化を抑制し、回転数Ｎｅが目標回転数ne/fire に対して急変するのを回避する。また、逆に点火時期の進角側では、回転数偏差Ｅｎの減衰速度を速めにするようにポールpole/ig の値を設定することで、回転数Ｎｅの目標回転数ne/fire への迅速な追従性を確保する。これにより、回転数Ｎｅの目標回転数ne/fire への制御の適正な速応性を確保しつつ安定性を高めることができる。
【０４５４】
また、点火時期操作回転数Ｆ／Ｂ制御の開始直後の初期段階（回転数Ｆ／Ｂ経過時間Δt/nfb が所定値T/NFBXに達するまで）では、回転数偏差Ｅｎの減衰速度を遅くするように前記時間対応補正係数kigtにより点火時期対応ポール基本値pole/igtblを乗算補正してポールpole/ig を決定する。これにより、点火時期操作回転数Ｆ／Ｂ制御の開始直後に回転数Ｎｅが急激に変動し、内燃機関１の燃焼状態が悪化するような事態を回避することができる。
【０４５５】
さらに、本実施形態では、ＦＩＲＥモードの中断動作の解除後に点火時期操作回転数Ｆ／Ｂ制御を再開するに際して、内燃機関１の回転数Ｎｅが目標回転数ne/fire に対して高回転側に大きく離間している程、回転数偏差Ｅｎの減衰速度を遅くするように前記回転数対応修正補正係数kignefにより点火時期対応ポール基本値pole/igtblを乗算補正してポールpole/ig を決定する。これにより、点火時期操作回転数Ｆ／Ｂ制御を再開に際して内燃機関１の回転数Ｎｅが目標回転数ne/fire に対して高回転側に大きく離間しているときに、大きな回転数偏差Ｅｎに応じて急激に点火時期の指令値iglog が遅角側に変化するのを抑制し、内燃機関１の安定した運転状態を確保することができる。
【０４５６】
さらに本実施形態では、点火時期操作回転数Ｆ／Ｂ制御に係わる前記回転数偏差Ｅｎの減衰速度を規定するポールpole/ig の絶対値よりも、前記吸気量Ｆ／Ｂ制御補正処理に係わる前記吸気偏差Ｅｑの減衰速度を規定するポールpole/iの絶対値の方が大きな値に設定される（図１７のＳＴＥＰ１７−７、１７−８の処理を参照）。換言すれば、ポールpole/ig は、回転数偏差Ｅｎの減衰速度が吸気偏差Ｅｑの減衰速度よりも速くなるような値に設定される。このため、点火時期操作回転数Ｆ／Ｂ制御により内燃機関１の回転数Ｎｅを目標回転数ne/fire に収束させるフィードバック制御と、吸気量Ｆ／Ｂ制御補正処理により推定積算吸入空気量qair/preを目標積算吸入空気量qair/cmdに収束させるフィードバック制御との相互の干渉を回避して内燃機関１の回転数Ｎｅを安定して目標回転数ne/fire に制御することができる。
【０４５７】
また、本実施形態では、点火時期操作回転数Ｆ／Ｂ制御に用いる点火時期側適応ＳＬＤ制御では、その制御対象を点火時期の指令値iglog に相当する点火時期偏差指令値DIG から、内燃機関１の回転数Ｎｅに相当する偏差回転数DNE を生成する系として、離散系のモデル（回転数制御対象モデル）で表現したことで、点火時期側適応ＳＬＤ制御のアルゴリズムを簡素でコンピュータ処理に適したものとすることができる。
【０４５８】
特に、点火時期側適応ＳＬＤ制御の制御対象を離散系でモデル化することで、吸気側適応ＳＬＤ制御の場合と同様、切換関数σ2 を、前記回転数偏差Ｅｎの変化速度等を用いることなく、該回転数偏差Ｅｎのみの時系列データを用いて構成することができる。この結果、前記点火時期偏差指令値DIG を求めるために必要な切換関数σ2 の値の信頼性を高め、ひいては、点火時期側適応ＳＬＤ制御の信頼性を高めることができる。
【０４５９】
尚、本実施形態では、ＦＩＲＥモードにおける内燃機関１の燃焼室４の吸入空気量の増量のための流量制御弁としてバイパス弁７を用いたが、スロットル弁５の開度を操作することで、吸入空気量の増量を行うようにしてもよい。
【０４６０】
また、前述の実施形態では、燃焼室４で燃焼させる混合気の空燃比が一定であるとした場合に内燃機関１の発生熱量（排ガスの熱量）、ひいては触媒装置３に与えられる熱量が燃焼室４の吸入空気量にほぼ比例することから触媒装置３に与える熱量を表す熱量データとして制御サイクル毎の吸入空気量の積算値を用いている。しかし、内燃機関１の発生熱量は、内燃機関１の点火時期によっても若干変化することから、触媒装置３に与える熱量を表す熱量データの精度をより高める必要がある場合には、瞬時瞬時（制御サイクル毎）の吸入空気量の推定値あるいは検出値を、その時々の点火時期に応じて補正し、それを積算することで、熱量データを取得するようにしてもよい。また、混合気の空燃比を変化させる必要が生じた場合には、点火時期に応じた補正と同様に、瞬時瞬時（制御サイクル毎）の吸入空気量の推定値あるいは検出値を、その時々の空燃比に応じて補正し、それを積算することで、熱量データを取得するようにしてもよい。いずれの場合にあっても、点火時期や空燃比に応じた補正を行うための補正係数をあらかじめ設定したデータテーブル等を用意しておくことで対応することが可能である。
【０４６１】
尚、触媒装置に与える熱量を表す熱量データを取得するに際しての上記のような補正は、該熱量データとして燃料供給量等、その他のパラメータを用いる場合においても同様に適用可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態を含む内燃機関の制御システムの全体構成図。
【図２】図１のシステムの内燃機関の吸気系を模式化して示した図。
【図３】図１のシステムの基本的作動を説明するための線図。
【図４】図１のシステムの作動を説明するためのフローチャート。
【図５】図１のシステムの作動を説明するためのフローチャート。
【図６】図１のシステムの作動を説明するための線図。
【図７】図１のシステムの作動を説明するための線図。
【図８】図１のシステムの作動を説明するための線図。
【図９】図１のシステムの作動を説明するための線図。
【図１０】図１のシステムの作動を説明するための線図。
【図１１】図１のシステムの作動を説明するための線図。
【図１２】図１のシステムの作動を説明するための線図。
【図１３】図１のシステムの作動を説明するための線図。
【図１４】図１のシステムの作動を説明するためのフローチャート。
【図１５】図１のシステムの作動を説明するためのフローチャート。
【図１６】図１のシステムの作動を説明するためのフローチャート。
【図１７】図１のシステムの作動を説明するためのフローチャート。
【図１８】図１のシステムの作動を説明するためのフローチャート。
【図１９】図１のシステムの作動を説明するための線図。
【図２０】図１のシステムの作動を説明するための線図。
【図２１】図１のシステムの作動を説明するための線図。
【図２２】図１のシステムの作動を説明するためのフローチャート。
【図２３】図１のシステムの作動を説明するためのフローチャート。
【図２４】図１のシステムの作動を説明するためのフローチャート。
【図２５】図１のシステムの作動を説明するための線図。
【符号の説明】
１…内燃機関、３…触媒装置、７…バイパス弁（流量制御弁）、８…バイパス通路（吸入空気通路）、２５…吸入空気量操作手段、２６…点火時期操作手段。
【図１】
0003779075.tif 000053
【図２】
0003779075.tif 000054
【図３】
0003779075.tif 000055
【図４】
0003779075.tif 000056
【図５】
0003779075.tif 000057
【図６】
0003779075.tif 000058
【図７】
0003779075.tif 000059
【図８】
0003779075.tif 000060
【図９】
0003779075.tif 000061
【図１０】
0003779075.tif 000062
【図１１】
0003779075.tif 000063
【図１２】
0003779075.tif 000064
【図１３】
0003779075.tif 000065
【図１４】
0003779075.tif 000066
【図１５】
0003779075.tif 000067
【図１６】
0003779075.tif 000068
【図１７】
0003779075.tif 000069
【図１８】
0003779075.tif 000070
【図１９】
0003779075.tif 000071
【図２０】
0003779075.tif 000072
【図２１】
0003779075.tif 000073
【図２２】
0003779075.tif 000074
【図２３】
0003779075.tif 000075
【図２４】
0003779075.tif 000076
【図２５】
0003779075.tif 000077