(57)【要約】【課題】触媒還元処理後の排ガスの有害成分の排出を低減する。【解決手段】内燃機関の空燃比を制御する空燃比制御装置は、リーン空燃比による運転を終了した後に実施される触媒還元モードにおいて、触媒を還元する還元手段と、触媒還元モードが終了した後に実施される空燃比制御モードにおいて、排気管に配置された排ガスセンサの出力を所定の目標値に収束させるよう、空燃比を制御する空燃比制御手段とを備える。空燃比制御手段は、空燃比を操作する操作量を算出する。該操作量は、上限値および下限値を用いて、リミッタによりリミット処理される。リミット処理された操作量を用いて、空燃比が操作される。内燃機関が触媒還元モードにあるとき、リミッタは、下限値をリッチ方向へシフトし、内燃機関が触媒還元モードから空燃比制御モードへ移行した時に空燃比が所定量以上リーン方向へ変化するのを防止する。【選択図】図１２
2004100465.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の空燃比を制御する空燃比制御装置であって、
リーン空燃比による運転を終了した後に実施される触媒還元モードにおいて、触媒を還元する還元手段と、
前記触媒還元モードが終了した後に実施される空燃比制御モードにおいて、排気管に配置された排ガスセンサの出力を所定の目標値に収束させるよう、空燃比を制御する空燃比制御手段と、を備え、
前記空燃比制御手段は、さらに、
前記空燃比を操作する操作量を算出する制御器と、
上限値および下限値を用いて、前記操作量をリミット処理するリミッタと、
前記リミット処理された操作量を用いて、空燃比を操作する操作手段と、を備え、
前記内燃機関が前記触媒還元モードにあるとき、前記リミッタは、前記下限値をリッチ方向へシフトし、該内燃機関が該触媒還元モードから前記空燃比制御モードへ移行した時に前記空燃比が所定量以上リーン方向へ変化するのを防止する、空燃比制御装置。
【請求項２】
前記リーン空燃比による運転は、燃料が供給されない燃料カット状態における運転を含む、請求項１に記載の空燃比制御装置。
【請求項３】
前記上限値および下限値は、前記操作量および前記内燃機関の運転状態に応じて設定される、請求項１または請求項２に記載の空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、内燃機関の排気系に設けられた排ガスセンサの出力に基づいて空燃比を制御する内燃機関の制御装置に関する。
【０００２】
【従来の技術】
内燃機関の排気系には、触媒装置が設けられている。触媒装置は、内燃機関に供給される混合気の空燃比がリーンのとき、排気ガス中に存在する過剰の酸素でＨＣおよびＣＯを酸化し、空燃比がリッチのとき、ＨＣおよびＣＯによってＮｏｘを還元する。空燃比が理論空燃比領域にあるとき、ＨＣ、ＣＯおよびＮｏｘが同時にかつ効果的に浄化される。
【０００３】
触媒装置の下流には、排ガスセンサが設けられる。排ガスセンサは、排気系に排気されたガス中の酸素濃度を検出する。排ガスセンサの出力に基づいて、内燃機関の空燃比のフィードバック制御が実施される。
【０００４】
空燃比のフィードバック制御の一例として、特開２０００−２３４５５０公報には、切換関数を用いる応答指定型制御が提案されている。この制御は、該切換関数の値をゼロに収束することによって、排ガスセンサの出力を所定の目標値に収束させる。具体的には、切換関数を用いて、排ガスセンサの出力を所定の目標値に収束させるための操作量が算出される。操作量は、運転状態に応じて設定された上限値および下限値によってリミット処理され、目標空燃比が求められる。該目標空燃比に応じて、内燃機関への燃料供給量が制御される。こうして、空燃比が安定的に制御される。
【０００５】
【発明が解決しようとする課題】
最近、燃費の向上のために、リーン空燃比による運転領域（燃料カットを含む）が拡大される傾向にある。リーン空燃比によって所望の運転状態を達成することができない場合には、理論空燃比またはリッチ空燃比による運転が実施される。理論空燃比で運転する場合には、排ガスの有害成分の排出量を抑えるために、前述した応答指定型制御による空燃比制御が実行される。
【０００６】
リーン空燃比による運転中（燃料カットを含む）は、燃料の供給が抑制されるので、触媒装置には多くの酸素が供給される。供給された酸素は触媒装置に吸着される。触媒装置が過剰の酸素を吸着すると、触媒の性能、特にＮｏｘの還元能力が劣化する。触媒装置に吸着された酸素を除去するため、燃料の供給を再開したときに空燃比をリッチにする制御が提案されている。
【０００７】
図１５は、リーン空燃比による運転の後の触媒還元モードおよび適応空燃比制御モードにおける、排ガスセンサ出力Ｖｏ２／ＯＵＴ、目標空燃比ＫＣＭＤ、および排ガスの有害成分ＮＯｘの排出量の遷移を示す。この例では、触媒装置は上流触媒および下流触媒を含み、排ガスセンサは、上流触媒と下流触媒の間に設けられている。
【０００８】
リーン空燃比による運転が終了した時間ｔ２において、触媒還元モードが開始される。触媒還元モードにおいて、触媒に吸着された酸素を除去するため、目標空燃比ＫＣＭＤは所定のリッチ空燃比に設定される。時間ｔ３において、上流触媒の還元処理が終了し、排ガスセンサ出力Ｖｏ２／ＯＵＴはリーンからリッチへ反転する。
【０００９】
下流触媒の還元処理が終了した時間ｔ４において、適応空燃比制御が開始される。時間ｔ４において、排ガスセンサ出力Ｖｏ２／ＯＵＴは、目標値Ｖｏ２／ＴＡＲＧＥＴよりもリッチ側に存在する。適応空燃比制御は、排ガスセンサ出力Ｖｏ２／ＯＵＴを目標値に収束させるため、目標空燃比ＫＣＭＤをリーン方向に変化させる（参照番号２００）。目標空燃比ＫＣＭＤのこの変化は、運転状態に応じて設定された下限値によって制限される。しかしながらこの下限値の大きさによっては、目標空燃比ＫＣＭＤのリーン方向への変化が大きくなる。目標空燃比ＫＣＭＤへのリーン方向への変化が大きいと、触媒のＮＯｘの還元能力が低下し、結果としてＮＯｘの排出量が増大する（参照番号２０１）。
【００１０】
したがって、触媒の還元処理が終了した後に、排ガスの有害成分の排出量を低減することのできる空燃比制御が必要とされている。
【００１１】
【課題を解決するための手段】
この発明の一つの側面によると、空燃比制御装置は、リーン空燃比による運転を終了した後に実施される触媒還元モードにおいて、触媒を還元する還元手段と、触媒還元モードが終了した後に実施される空燃比制御モードにおいて、排気管に配置された排ガスセンサの出力を所定の目標値に収束させるよう、空燃比を制御する空燃比制御手段とを備える。空燃比制御手段は、さらに、空燃比を操作する操作量を算出する制御器と、上限値および下限値を用いて、該操作量をリミット処理するリミッタと、リミット処理された操作量を用いて、空燃比を操作する操作手段とを備える。内燃機関が前記触媒還元モードにあるとき、リミッタは、前記下限値をリッチ方向へシフトし、内燃機関が触媒還元モードから空燃比制御モードへ移行した時に空燃比が所定量以上リーン方向へ変化するのを防止する。
【００１２】
この発明によれば、触媒還元モードから空燃比制御モードへ移行するとき、リッチ方向にシフトされた下限値を用いて操作量をリミット処理するので、空燃比が所定量以上リーン方向へ変化するのを防止することができる。したがって、還元処理を終了した後の有害成分の排出量を抑制することができる。
【００１３】
この発明の他の側面によると、触媒還元モードは、燃料が供給されない燃料カット状態の運転が終了した後に実施される。この発明によれば、燃料カット状態の運転が終了した後、触媒還元モードが実施される。触媒還元モードから空燃比制御モードへ移行するとき、リッチ方向にシフトされた下限値を用いて操作量がリミット処理されるので、空燃比が所定量以上リーン方向へ変化するのを防止することができる。したがって、還元処理終了後の有害成分の排出量を抑制することができる。
【００１４】
この発明の他の側面によると、上限値および下限値は、操作量および運転状態に応じて設定される。このように設定された上限値および下限値を用いて操作量をリミット処理することにより、触媒の浄化能力を最適に維持することができる。
【００１５】
【発明の実施の形態】
内燃機関および制御装置の構成　
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態による内燃機関（以下、「エンジン」という）およびその制御装置の全体的なシステム構成図である。
【００１６】
電子制御ユニット（以下、「ＥＣＵ」）という）５は、車両の各部から送られてくるデータを受け入れる入力インターフェース５ａ、車両の各部の制御を行うための演算を実行するＣＰＵ５ｂ、読み取り専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）を有するメモリ５ｃ、および車両の各部に制御信号を送る出力インターフェース５ｄを備えている。メモリ５ｃのＲＯＭには、車両の各部の制御を行うためのプログラムおよび各種のデータが格納されている。この発明に従う空燃比制御を実現するためのプログラム、および該プログラムの実行の際に用いるデータおよびテーブルは、このＲＯＭに格納されている。ＲＯＭは、ＥＥＰＲＯＭのような書き換え可能なＲＯＭでもよい。ＲＡＭには、ＣＰＵ５ｂによる演算のための作業領域が設けられる。車両の各部から送られてくるデータおよび車両の各部に送り出す制御信号は、ＲＡＭに一時的に記憶される。
【００１７】
エンジン１は、たとえば４気筒を備えるエンジンである。吸気管２が、エンジン１に連結されている。吸気管２の上流側にはスロットル弁３が設けられている。スロットル弁３に連結されたスロットル弁開度センサ（θＴＨ）４は、スロットル弁３の開度に応じた電気信号を、ＥＣＵ５に供給する。
【００１８】
スロットル弁３をバイパスする通路２１が、吸気管２に設けられている。エンジン１に供給する空気量を制御するためのバイパス弁２２が、バイパス通路２１に設けられている。バイパス弁２２は、ＥＣＵ５からの制御信号に従って駆動される。
【００１９】
燃料噴射弁６は、エンジン１とスロットル弁３の間であって、吸気管２の吸気弁（図示せず）の少し上流側に各気筒毎に設けられている。燃料噴射弁６は、燃料ポンプ（図示せず）に接続され、該燃料ポンプを介して燃料タンク（図示せず）から燃料の供給を受ける。燃料噴射弁６は、ＥＣＵ５からの制御信号に従って駆動される。
【００２０】
吸気管圧力（Ｐｂ）センサ８および吸気温（Ｔａ）センサ９は、吸気管２のスロットル弁３の下流側に設けられている。Ｐｂセンサ８およびＴａセンサ９によって検出された吸気管圧力Ｐｂおよび吸気温Ｔａは、それぞれＥＣＵ５に送られる。
【００２１】
エンジン水温（Ｔｗ）センサ１０は、エンジン１のシリンダブロックの、冷却水が充満した気筒周壁（図示せず）に取り付けられる。Ｔｗセンサ１０によって検出されたエンジン冷却水の温度Ｔｗは、ＥＣＵ５に送られる。
【００２２】
回転数（Ｎｅ）センサ１３は、エンジン１のカム軸またはクランク軸（共に図示せず）周辺に取り付けられる。Ｎｅセンサ１３は、たとえばピストンのＴＤＣ位置に関連したクランク角度で出力されるＴＤＣ信号パルスの周期よりも短いクランク角度（たとえば、３０度）の周期で、ＣＲＫ信号パルスを出力する。ＣＲＫ信号パルスは、ＥＣＵ５によってカウントされ、エンジン回転数Ｎｅが検出される。
【００２３】
エンジン１の下流側には排気管１４が連結されている。エンジン１は、排気管１４を介して排気する。排気管１４の途中に設けられた触媒装置１５は、排気管１４を通る排気ガス中のＨＣ、ＣＯ、ＮＯｘなどの有害成分を浄化する。触媒装置１５には、２つの触媒が設けられている。上流側に設けられた触媒を上流触媒と呼び、下流側に設けられた触媒を下流触媒と呼ぶ。
【００２４】
広域空燃比センサ（ＬＡＦ）センサ１６は、触媒装置１５の上流に設けられている。ＬＡＦセンサ１６は、リーンからリッチにわたる広範囲の空燃比を検出する。検出された空燃比は、ＥＣＵ５に送られる。
【００２５】
Ｏ２（排ガス）センサ１７は、上流触媒と下流触媒の間に設けられている。Ｏ２センサ１７は２値型の排気ガス濃度センサである。Ｏ２センサは、空燃比が理論空燃比よりもリッチであるとき高レベルの信号を出力し、空燃比が理論空燃比よりもリーンであるとき低レベルの信号を出力する。出力された電気信号は、ＥＣＵ５に送られる。
【００２６】
ＥＣＵ５に向けて送られた信号は入力インターフェース５ａに渡され、アナログ−デジタル変換される。ＣＰＵ５ｂは、変換されたデジタル信号を、メモリ５ｃに格納されているプログラムに従って処理し、車両のアクチュエータに送るための制御信号を作り出す。出力インターフェース５ｄは、これらの制御信号を、バイパス弁２２、燃料噴射弁６、およびその他の機械要素のアクチュエータに送る。
【００２７】
図２の（ａ）は、触媒装置１５の構造を示す。排気管１４に流入した排気ガスは、上流触媒２５を通過し、その後下流触媒２６を通過する。上流および下流触媒の間に設けられたＯ２センサの出力に基づく空燃比制御の方が、下流触媒の下流に設けられたＯ２センサの出力に基づく空燃比制御よりも、Ｎｏｘの浄化率を最適に維持しやすいことがわかっている。そのため、この発明に従う実施形態では、Ｏ２センサ１７を、上流および下流触媒の間に設ける。Ｏ２センサ１７は、上流触媒２５を通過した後の排気ガスの酸素濃度を検出する。
【００２８】
代替的に、Ｏ２センサを、下流触媒２６の下流に設けてもよい。また、１つの触媒によって触媒装置１５が実現されている場合には、該触媒装置１５の下流にＯ２センサは設けられる。
【００２９】
図２の（ｂ）は、上流触媒および下流触媒の浄化の挙動を示す。ウィンドウ２７は、ＣＯ、ＨＣおよびＮＯｘが最適に浄化される空燃比領域を示す。上流触媒２５において、排気ガス中の酸素が浄化作用に消費されるため、下流触媒２６に供給される排気ガスは、ウィンドウ２８によって示されるような還元雰囲気（すなわち、リッチ状態）を有している。このような還元雰囲気において、さらなる量のＮＯｘが浄化される。こうして排気ガスは、クリーンな状態で排気される。
【００３０】
この発明に従う空燃比の適応制御は、触媒１５の浄化性能を最適に維持するため、Ｏ２センサ１７の出力を目標値に収束させることにより、空燃比がウィンドウ２７内に収まるようにする。
【００３１】
参照番号２９は、適応空燃比制御における空燃比の操作量の限界を規定する許容範囲を例示しており、これについての詳細は後述される。
【００３２】
空燃比制御の概要　
図３は、この発明の一実施形態に従う、空燃比を制御する制御装置の全体的な構成を示す。燃料カット部３１は、スロットル弁開度センサ４およびエンジン回転数センサ１３（図１）によって検出されたスロットル弁の開度θＴＨおよびエンジン回転数ＮＥを受け取る。スロットル弁が所定時間以上にわたって全閉され、かつエンジン回転数が所定回転数以上のとき、燃料カット部３１は、燃料カットフラグを１にセットし、燃料噴射弁に制御信号を送って燃料の供給を停止する。
【００３３】
燃料カット状態に入った後にエンジン回転数ＮＥが上記所定回転数を下回ったとき、またはスロットル弁が開かれたとき、燃料カット解除部３２は、燃料カットフラグをゼロにリセットし、燃料噴射弁に制御信号を送って燃料の供給を再開する。
【００３４】
リーン運転部３３は、リーン空燃比による運転（以下、リーン運転と呼ぶ）が要求されたかどうかを判断する。該要求は、エンジン始動後にリーン運転を実施するとき、または燃費向上のためリーン運転を実施するときに発行される。該要求を受け取ったならば、リーン運転部３３は、リーンフラグＦ＿ＬＥＡＮを１にセットし、リーン運転を実行する。リーン運転の要求が解除されたならば、リーン運転解除部３４は、リーンフラグＦ＿ＬＥＡＮをゼロにリセットし、リーン運転を終了する。
【００３５】
燃料カットが終了したとき、またはリーン運転が終了したとき、触媒還元モードが開始される。還元処理部３５は、空燃比を所定のリッチ空燃比に設定して、還元処理を実施する。還元処理部３５は、下流触媒２６の還元処理が完了したかどうかを判断する。下流触媒２６の還元処理が完了したならば、触媒還元モードを終了する。
【００３６】
下流触媒２６の還元処理が完了したかどうかの判断は、任意の適切な方法で実施されることができる。一実施形態では、下流触媒２６の下流に仮想Ｏ２センサを設け、該仮想Ｏ２センサの出力を推定する。仮想Ｏ２センサは、物理的には存在しない。仮想Ｏ２センサの出力がリーンからリッチへ変化したならば、下流触媒２６の還元処理を終了したと判断する。
【００３７】
仮想Ｏ２センサ出力のリーンからリッチへの反転は、例えば以下のようにして判断されることができる。各制御サイクルにおいて、還元処理のためのガス量が運転状態に基づいて推定される。各制御サイクルの推定ガス量が積算される。上流触媒と下流触媒の間に設けられたＯ２センサの出力がリーンからリッチへ反転したときの積算値は、上流触媒を還元するのに必要なガス量を示す。該上流触媒を還元するのに必要なガス量に基づいて、上流および下流触媒を還元するのに必要な総ガス量が算出される。上記積算値が該総ガス量に達したとき、仮想Ｏ２センサの出力をリーンからリッチへ反転させる。
【００３８】
代替的に、燃料カット中における酸素吸蔵量を算出し、該酸素吸蔵量を還元するよう空燃比をフィードフォワード制御してもよい。または、実際にＯ２センサを下流触媒の下流に設け、該Ｏ２センサの出力がリーンからリッチへ変化したならば、下流触媒の還元処理を終了したと判断してもよい。
【００３９】
下流触媒の還元処理が完了したならば、適応制御部３６による空燃比制御が開始される。適応制御部３６は、Ｏ２センサ１７の出力Ｖｏ２／ＯＵＴが目標値に収束するように目標空燃比ＫＣＭＤを算出する。
【００４０】
還元処理部３５による還元処理が実行されている間、適応制御部３６による空燃比制御は実施されない。適応空燃比制御を再開したときに該空燃比制御が不安定になるのを避けるため、適応制御部３６によって実施される演算の一部が禁止される。具体的には、１）制御対象への制御入力に含まれる積分項の算出を禁止する、２）モデルパラメータの同定処理を禁止する。これらの詳細については、後述される。
【００４１】
適応空燃比制御　
図４は、図２のＬＡＦセンサ１６からＯ２センサ１７にいたるブロック図である。ＬＡＦセンサ１６は、上流触媒２５に供給される排ガスの空燃比ＫＡＣＴを検出する。Ｏ２センサ１７は、上流触媒２５によって浄化された排ガスの酸素濃度を、電圧Ｖｏ２／ＯＵＴとして出力する。ＬＡＦセンサ１６からＯ２センサ１７までの排気系１９が、この発明に従う適応空燃比制御の制御対象（プラント）となる。
【００４２】
図５は、適応空燃比制御の制御ブロック図を示す。制御対象である排気系１９のＯ２センサ１７の出力Ｖｏ２／ＯＵＴが、目標値Ｖｏ２／ＴＡＲＧＥＴと比較される。比較結果に基づいて、制御器５１は、目標空燃比偏差ｋｃｍｄを求める。目標空燃比偏差ｋｃｍｄを基準値ＦＬＡＦ／ＢＡＳＥに加算し、目標空燃比ＫＣＭＤを求める。目標空燃比ＫＣＭＤによって補正された燃料噴射量が、エンジン１に供給される。その後、排気系のＯ２センサ１７の出力Ｖｏ２／ＯＵＴが再び検出される。
【００４３】
このように、制御器５１は、Ｏ２センサ１７の出力Ｖｏ２／ＯＵＴを目標値Ｖｏ２／ＴＡＲＧＥＴに収束するよう目標空燃比ＫＣＭＤを求めるフィードバック制御を実行する。制御対象である排気系１９を、出力をＶｏ２／ＯＵＴ、入力をＬＡＦセンサの出力ＫＡＣＴとして、式（１）のようにモデル化することができる。排気系１９は離散時間系モデルとしてモデル化される。離散時間系モデルは、空燃比制御のアルゴリズムをコンピュータ処理に適した簡易なものとする。ｋはサイクルを識別する識別子である。
【００４４】
【数１】
2004100465.tif 000003
【００４５】
Ｖｏ２は、式（１）に示されるように、Ｏ２センサ１７の出力値Ｖｏ２／ＯＵＴの目標値Ｖｏ２／ＴＡＲＧＥＴに対する偏差（以下、センサ出力偏差と呼ぶ）を示す。実空燃比偏差ｋａｃｔは、基準値ＦＬＡＦ／ＢＡＳＥに対するＬＡＦセンサの出力ＫＡＣＴの偏差を示す（ｋａｃｔ＝ＫＡＣＴ−ＦＬＡＦ／ＢＡＳＥ）。空燃比の基準値ＦＬＡＦ／ＢＡＳＥは、目標空燃比の中心的な値になるように設定され、たとえば理論空燃比を示す値（すなわち、１）に設定される。基準値ＦＬＡＦ／ＢＡＳＥは、一定値でもよいし、または運転状態に応じて決めるようにしてもよい。
【００４６】
ｄ１は、排気系１９が有するむだ時間を示す。むだ時間ｄ１は、ＬＡＦセンサ１６によって検出された空燃比がＯ２センサ１７の出力に反映されるのに要する時間を示す。ａ１、ａ２およびｂ１はモデルパラメータであり、後述する同定器によって生成される。
【００４７】
一方、エンジン１およびＥＣＵ５からなる空燃比を操作する系は、式（２）のようにモデル化されることができる。目標空燃比偏差ｋｃｍｄは、基準値ＦＬＡＦ／ＢＡＳＥに対する目標空燃比ＫＣＭＤの偏差を示す（ｋｃｍｄ＝ＫＣＭＤ−ＦＬＡＦ／ＢＡＳＥ）。ｄ２は、該空燃比操作系におけるむだ時間を示す。むだ時間ｄ２は、算出された目標空燃比ＫＣＭＤがＬＡＦセンサ１６の出力ＫＡＣＴに反映されるのに要する時間を示す。
【００４８】
【数２】
2004100465.tif 000004
【００４９】
図６は、図５に示される制御器５１のさらに詳細なブロック図を示す。制御器５１は、同定器５２、推定器５３、スライディングモード制御器５４およびリミッタ５５を備える。
【００５０】
同定器５２は、式（１）におけるモデルパラメータａ１、ａ２およびｂ１を、モデル化誤差をなくすように同定する。同定器５２によって実施される同定方法を以下に示す。
【００５１】
前回の制御サイクルで算出されたモデルパラメータａ１（ｋ−１）、ａ２（ｋ−１）およびｂ１（ｋ−１）を用い（以下、これらのパラメータをａ１（ｋ−１）ハット、ａ２（ｋ−１）ハットおよびｂ１（ｋ−１）ハットと呼ぶ）、今回のサイクルのセンサ出力偏差Ｖｏ２（ｋ）（以下、これをセンサ出力偏差Ｖｏ２（ｋ）ハットと呼ぶ）を式（３）に従って求める。
【００５２】
【数３】
2004100465.tif 000005
【００５３】
式（３）で算出されたセンサ出力偏差Ｖｏ２（ｋ）ハットと、今回の制御サイクルで実際に検出されたセンサ出力偏差Ｖｏ２（ｋ）との同定誤差ｉｄ／ｅ（ｋ）は、式（４）に従って求められる。
【００５４】
【数４】
2004100465.tif 000006
【００５５】
同定器５２は、同定誤差ｉｄ／ｅ（ｋ）を最小にするように、今回のサイクルにおけるａ１（ｋ）ハット、ａ２（ｋ）ハットおよびｂ１（ｋ）ハットを算出する。ここで、式（５）に示されるようにベクトルΘを定義する。
【００５６】
【数５】
2004100465.tif 000007
【００５７】
同定器５２は、式（６）に従い、ａ１（ｋ）ハット、ａ２（ｋ）ハットおよびｂ１（ｋ）ハットを求める。式（６）に示されるように、前回の制御サイクルで決定されたａ１（ｋ−１）ハット、ａ２（ｋ−１）ハットおよびｂ１（ｋ−１）ハットを、同定誤差ｉｄ／ｅ（ｋ）に比例する量だけ変化させることにより、今回の制御サイクルにおけるａ１（ｋ）ハット、ａ２（ｋ）ハットおよびｂ１（ｋ）ハットを求める。
【００５８】
【数６】
2004100465.tif 000008
【００５９】
推定器５３は、排気系１９のむだ時間ｄ１および空燃比を操作する系のむだ時間ｄ２を補償するため、むだ時間ｄ（＝ｄ１＋ｄ２）後のセンサ出力偏差Ｖｏ２を推定する。
【００６０】
まず、排気系のモデル式（１）に、空燃比を操作する系のモデル式（２）を代入すると、式（７）が導かれる。
【００６１】
【数７】
2004100465.tif 000009
【００６２】
式（７）で示されるモデル式は、排気系１９および上記の空燃比を操作する系を合わせた系を表現している。式（７）を用いることにより、むだ時間ｄ後のセンサ出力偏差Ｖｏ２（ｋ＋ｄ）の推定値Ｖｏ２（ｋ＋ｄ）バーが、式（８）のようにして求められる。係数α１、α２およびβｊは、同定器５２で算出されたモデルパラメータを用いて算出される。目標空燃比偏差の過去の時系列データｋｃｍｄ（ｋ−ｊ）（ただし、ｊ＝１、２、．．．３）は、むだ時間ｄの長さの間に取得された目標空燃比偏差を含む。
【００６３】
【数８】
2004100465.tif 000010
【００６４】
むだ時間ｄ２以前の空燃比偏差ｋｃｍｄの過去の値ｋｃｍｄ（ｋ−ｄ２）、ｋｃｍｄ（ｋ−ｄ２−１）、．．．ｋｃｍｄ（ｋ−ｄ）の値を、上記の式（２）を用いてＬＡＦセンサ１６の偏差出力ｋａｃ（ｋ）、ｋａｃｔ（ｋ−１）、．．．ｋａｃｔ（ｋ−ｄ＋ｄ２）で置き換えることができる。その結果、式（９）が得られる。
【００６５】
【数９】
2004100465.tif 000011
【００６６】
スライディングモード制御器５４は、スライディングモード制御を実行するため、切換関数σを式（１０）のように設定する。
【００６７】
【数１０】
2004100465.tif 000012
【００６８】
ここで、Ｖｏ２（ｋ−１）は、前述したように前回のサイクルで検出されたセンサ出力偏差を示す。Ｖｏ２（ｋ）は、今回のサイクルで検出されたセンサ出力偏差を示す。ｓは、切換関数σの設定パラメータであり、−１＜ｓ＜１となるよう設定される。
【００６９】
切換関数σ（ｋ）＝０とした式は等価入力系と呼ばれ、制御量であるセンサ出力偏差Ｖｏ２の収束特性を規定する。σ（ｋ）＝０とすると、式（１０）は以下の式（１１）のように変形することができる。
【００７０】
【数１１】
2004100465.tif 000013
【００７１】
ここで、図７および式（１１）を参照して、切換関数σの特性を説明する。図７は、縦軸がＶｏ２（ｋ）および横軸がＶｏ２（ｋ−１）の位相平面上に、式（１１）を線４１で表現したものである。この線４１を切換直線と呼ぶ。Ｖｏ２（ｋ−１）およびＶｏ２（ｋ）の組合せからなる状態量（Ｖｏ２（ｋ−１），　Ｖｏ２（ｋ））の初期値が、点４２で表されているとする。スライディングモード制御は、点４２で表される状態量を、切換直線４１上に載せて該直線４１上に拘束するよう動作する。スライディングモード制御によると、状態量を切換直線４１上に保持することにより、該状態量を、外乱等に影響されることなく、極めて安定的に位相平面上の原点０に収束させることができる。言い換えると、状態量（Ｖｏ２（ｋ−１），　Ｖｏ２（ｋ））を、式（１１）に示される入力の無い安定系に拘束することにより、外乱およびモデル化誤差に対してロバストにセンサ出力Ｖｏ２／ＯＵＴを目標値Ｖｏ２／ＴＡＲＧＥＴに収束させることができる。
【００７２】
切換関数設定パラメータｓは、可変に設定することができるパラメータである。設定パラメータｓを調整することにより、センサ出力偏差Ｖｏ２の減衰（収束）特性を指定することができる。
【００７３】
図８は、スライディングモード制御の応答指定特性の一例を示すグラフである。グラフ４３は、ｓの値が“−１”である場合を示し、グラフ４４はｓの値が“−０．８”である場合を示し、グラフ４５はｓの値が“−０．５”である場合を示す。グラフ４３〜４５から明らかなように、ｓの値に従って、センサ出力偏差Ｖｏ２の収束速度が変化する。ｓの絶対値を小さくするほど、収束速度が速くなる。
【００７４】
切換関数σの値をゼロにするよう、３つの制御入力が決定される。すなわち、状態量を切換直線上に拘束するための制御入力Ｕｅｑ、状態量を切換直線上に載せるための制御入力Ｕｒｃｈ、およびモデル化誤差および外乱を抑制しつつ、状態量を切換直線に載せるための制御入力Ｕａｄｐが算出される。これら３つの制御入力Ｕｅｑ、ＵｒｃｈおよびＵａｄｐの和を算出して、空燃比偏差ｋｃｍｄを算出するための要求偏差Ｕｓｌを求める。
【００７５】
等価制御入力Ｕｅｑは、状態量を切換直線上に拘束するための入力であるので、式（１２）を満たすことが条件となる。
【００７６】
【数１２】
2004100465.tif 000014
【００７７】
したがって、σ（ｋ＋１）＝σ（ｋ）とするための等価制御入力Ｕｅｑは、式（７）および（１０）から、式（１３）のように算出される。
【００７８】
【数１３】
2004100465.tif 000015
【００７９】
切換関数σの値に応じた値を持つ到達則入力Ｕｒｃｈを、式（１４）に従って算出する。この実施例では、到達則入力Ｕｒｃｈは切換関数σの値に比例した値を持つ。Ｋｒｃｈは到達則のフィードバックゲインを示し、これは、切換直線σ＝０への収束の安定性および速応性等を考慮して、シミュレーション等に基づいて予め定められる。
【００８０】
【数１４】
2004100465.tif 000016
【００８１】
切換関数σの積算値に応じた値を持つ適応則入力Ｕａｄｐを、式（１５）に従って算出する。この実施例では、適応則入力Ｕａｄｐは切換関数σの積算値に比例した値を持つ。Ｋａｄｐは適応則のフィードバックゲインを示し、これは、切換直線σ＝０への収束の安定性および速応性等を考慮して、シミュレーション等に基づいて予め定められる。ΔＴは、制御サイクルの周期を示す。
【００８２】
【数１５】
2004100465.tif 000017
【００８３】
センサ出力偏差Ｖｏ２（ｋ＋ｄ）およびＶｏ２（ｋ＋ｄ−１）と、切換関数の値σ（ｋ＋ｄ）は、むだ時間ｄが考慮された予測値であるので、これらを直接求めることはできない。そこで、推定器５３によって求められた推定偏差Ｖｏ２（ｋ＋ｄ）バーおよびＶｏ２（ｋ＋ｄ−１）バーを用い、等価制御入力Ｕｅｑを求める。
【００８４】
【数１６】
2004100465.tif 000018
【００８５】
また、推定器５３によって算出された推定偏差を用いて、式（１７）に示されるように切換関数σバーが算出される。
【００８６】
【数１７】
2004100465.tif 000019
【００８７】
切換関数σバーを用いて、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐを算出する。
【００８８】
【数１８】
2004100465.tif 000020
【００８９】
【数１９】
2004100465.tif 000021
【００９０】
式（２０）に示されるように、等価制御入力Ｕｅｑ、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐを加算し、要求偏差Ｕｓｌを求める。
【００９１】
【数２０】
2004100465.tif 000022
【００９２】
リミッタ５５は、要求偏差Ｕｓｌに対してリミット処理を行い、空燃比偏差ｋｃｍｄを求める。具体的には、リミッタ５５は、要求偏差Ｕｓｌが許容範囲内にあれば、該要求偏差Ｕｓｌを空燃比偏差ｋｃｍｄとする。要求偏差Ｕｓｌが許容範囲から逸脱している場合は、該許容範囲の上限値または下限値を、空燃比偏差ｋｃｍｄに設定する。
【００９３】
リミッタ５５で使用される許容範囲は、図３の参照番号２９に示されるように、ウィンドウ２７を略中心として、これを含むさらに広い範囲に設定される。具体的には、以下の許容範囲が予め設定される。図９に、これらの許容範囲を示す。
【００９４】
（ｉ）安定判別によって不安定レベルが低いと判断されたときに用いられる許容範囲
（ｉｉ）安定判別によって不安定レベルが高いと判断されたときに用いられる許容範囲
（ｉｉｉ）燃料カットが終了してから所定時間が経過するまでの間、エンジンが始動してから所定時間が経過するまでの間、およびリーン運転が終了してから所定時間が経過するまでの間、に用いられる許容範囲
（ｉｖ）車両が発進してから（エンジンが駆動輪の駆動を開始してから）所定時間が経過するまでの間に用いられる許容範囲
（ｖ）エンジンがアイドリング状態にあるときに用いられる許容範囲
（ｖｉ）通常の運転状態において用いられる許容範囲（適応許容範囲と呼ぶ）
（ｖｉｉ）触媒還元モードから適応空燃比制御モードに切り換えられる時に用いられる許容範囲。
【００９５】
低不安定用許容範囲（ｉ）は、上限値Ｈおよび下限値Ｌによって規定される。高不安定用許容範囲（ｉｉ）は、上限値ＳＴＡＢＨおよび下限値ＳＴＡＢＬによって規定される。燃料カット／始動／リーン運転後用の許容範囲（ｉｉｉ）の上限値は、ＡＦＣＨである。下限値は、ＳＴＡＢＬからＬＬの間で可変に設定される。下限値は、許容範囲に対する要求偏差Ｕｓｌの逸脱状況に応じて、各サイクルで決定される。
【００９６】
負荷駆動後用の許容範囲（ｉｖ）の上限値は、ＳＴＡＢＨからＨＨの間で可変に設定される。上限値は、許容範囲に対する要求偏差Ｕｓｌの逸脱状況に応じて、各サイクルで決定される。下限値はＶＳＴＬである。アイドリング用の許容範囲（ｖ）は、上限値ＨＩおよび下限値ＬＩによって規定される。
【００９７】
適応許容範囲（ｖｉ）の上限値は、ＳＴＡＢＨからＨＨの間で可変に設定される。下限値は、ＳＴＡＢＬからＬＬの間で可変に設定される。上限値および下限値は、許容範囲に対する要求偏差Ｕｓｌの逸脱状況に応じて、各サイクルで決定される。
【００９８】
エンジンが触媒還元モードから適応空燃比制御モードに移行する時に使用される許容範囲（ｖｉｉ）の上限値は、適応許容範囲（ｖｉ）の上限値と同じであり、ＳＴＡＢＨからＨＨの間で可変に設定される。下限値は、ＬＩに固定される。こうして、エンジンが触媒還元モードから適応空燃比制御モードへ移行した時に、操作量Ｕｓｌがリーン方向へ大きく変化するのが防止される。
【００９９】
リミッタ５５によって求められた空燃比偏差ｋｃｍｄは基準値ＦＬＡＦ／ＢＡＳＥに加算され、目標空燃比ＫＣＭＤが求められる。該目標空燃比ＫＣＭＤを、制御対象である排気系１９に与えることにより、Ｏ２センサの出力Ｖｏ２／ＯＵＴを目標値Ｖｏ２／ＴＡＲＧＥＴに収束させることができる。
【０１００】
代替の実施形態においては、空燃比の基準値ＦＬＡＦ／ＢＡＳＥは、リミッタ５５によるリミット処理が終了した後、スライディングモード制御器５４によって算出される適応則入力Ｕａｄｐに応じて設定される。具体的には、基準値ＦＬＡＦ／ＢＡＳＥは、初期値として理論空燃比が設定される。適応則Ｕａｄｐが予め決められた上限値を超えているならば、基準値ＦＬＡＦ／ＢＡＳＥは所定量だけ増やされる。適応則Ｕａｄｐが予め決められた下限値を下回っているならば、基準値ＦＬＡＦ／ＢＡＳＥは所定量だけ減らされる。適応則Ｕａｄｐが上限値および下限値の間にあれば、基準値ＦＬＡＦ／ＢＡＳＥは維持される。設定されたＦＬＡＦ／ＢＡＳＥは、次回のサイクルにおいて用いられる。こうして、基準値ＦＬＡＦ／ＢＡＳＥは、目標空燃比ＫＣＭＤの中心的な値になるよう調整される。
【０１０１】
基準値ＦＬＡＦ／ＢＡＳＥの設定処理を上記のリミット処理と組み合わせることにより、要求偏差Ｕｓｌの許容範囲が正負にバランスされる。基準値ＦＬＡＦ／ＢＡＳＥの設定処理は、Ｏ２センサ出力Ｖｏ２／ＯＵＴが目標値Ｖｏ２／ＴＡＲＧＥＴにほぼ収束し、スライディングモード制御が安定状態にあると判断されたときに行われるのが好ましい。
【０１０２】
空燃比制御フロー　
図１０は、本発明の一実施形態に従う、空燃比の制御フローを示す。ステップＳ１０１において、同定器によるモデルパラメータの算出を許可するかどうかを判断する。同定器による算出が許可されたならば、許可フラグＦ＿ＩＤＣＡＬが１に設定される。触媒還元モードにあるとき、該フラグはゼロに設定される。
【０１０３】
ステップＳ１０２において、フラグＦ＿ＩＤＣＡＬの値を調べる。Ｆ＿ＩＤＣＡＬ＝１ならば、ステップＳ１０３に進み、モデルパラメータａ１、ａ２、およびｂ１を、前述した式（３）〜（６）に従って求める。Ｆ＿ＩＤＣＡＬ＝０ならば、ステップＳ１０３をスキップする。こうして、触媒還元モードにあるとき、同定器によるモデルパラメータ算出は停止される。この場合、触媒還元モードに入る前に最後に算出されたモデルパラメータがメモリに保存される。触媒還元モードが終了して適応空燃比制御を再び開始するとき、該保存されたモデルパラメータを用いてモデルパラメータの算出が開始される。
【０１０４】
ステップＳ１０４において、ステップＳ１０３で算出されたモデルパラメータを用い、推定器によって推定偏差Ｖｏ２バーを、前述した式（９）に従って求める。ステップＳ１０５において、切換関数σバー、等価制御入力Ｕｅｑ、適応側入力Ｕａｄｐ、および到達側入力Ｕｒｃｈを、前述した式（１６）〜（１９）に従って求める。制御入力Ｕｓｌを、式（２０）に従って求める。図には示されていないが、触媒還元モードにあるとき、適応則入力Ｕａｄｐの算出処理は行われない。触媒還元モードに入る前に最後に算出された適応則入力Ｕａｄｐがメモリに保存される。触媒還元モードが終了して適応空燃比制御を再び開始するとき、該保存された適応則入力Ｕａｄｐを使用して、適応則入力Ｕａｄｐの算出を開始する。
【０１０５】
ステップＳ１０６において、適応空燃比制御の安定判別が実施される（図１１）。ステップＳ１０７において、制御入力Ｕｓｌのリミット処理を実施し、目標空燃比偏差ｋｃｍｄを求める（図１２および図１３）。
【０１０６】
図１１は、図１０のステップＳ１０６で実施される、適応空燃比制御の安定判別を示すフローチャートである。
【０１０７】
ステップＳ１１１において、今回の制御サイクルで求められた切換関数σ（ｋ＋ｄ）バーと、該σ（ｋ＋ｄ）バーおよび前回の制御サイクルで求められた切換関数σ（ｋ＋ｄ−１）バーの偏差Δσと、に基づいて、安定判別基本パラメータＰｓｔｂ（＝σ（ｋ＋ｄ）バー・Δσバー）を算出する。Ｐｓｔｂは、切換関数σバーに関するリアプノフ関数σバー２／２の時間微分値に相当する。
【０１０８】
ステップＳ１１２において、適応空燃比制御による空燃比操作が開始してから所定時間が経過したかどうかを判断する。所定時間が経過していなければ、安定判別を行うことなく、ステップＳ１１３の処理を介してこのルーチンを抜ける。所定時間が経過したならば、ステップＳ１１４に進む。ステップＳ１１３では、このルーチンで使用する各種パラメータを初期化する処理が実施される。
【０１０９】
ステップＳ１１４において、基本パラメータＰｓｔｂを所定値ε（＞０）と比較する。Ｐｓｔｂ≦εならば、空燃比制御が暫定的に安定であると判断される。すなわち、切換関数σの値がゼロに収束しているか、収束しつつある状態であると判断することができる。この場合、不安定と判断された頻度を示すカウンタｃｎｔ／ｊｕｄｓｔの値が維持される（Ｓ１１５）。Ｐｓｔｂ＞εならば、空燃比制御が暫定的に不安定であると判断される。すなわち、切換関数σの値がゼロから離間しつつある状態であると判断することができる。この場合、カウンタｃｎｔ／ｊｕｄｓｔの値が１だけインクリメントされる（Ｓ１１６）。
【０１１０】
ステップＳ１１７において、カウンタｃｎｔ／ｊｕｄｓｔの値を、第１のしきい値ＳＳＴＢ１と比較する。ｃｎｔ／ｊｕｄｓｔ≦ＳＳＴＢ１ならば、空燃比制御が安定であると判断され、安定判別フラグｆ／ｓｔｂ１をゼロに設定する（Ｓ１１８）。
【０１１１】
ステップ１１７において、ｃｎｔ／ｊｕｄｓｔ＞ＳＳＴＢ１ならば、ｃｎｔ／ｊｕｄｓｔを第２のしきい値ＳＳＴＢ２と比較する（Ｓ１１９）。ここで、ＳＳＴＢ１＜ＳＳＴＢ２である。ｃｎｔ／ｊｕｄｓｔ≦ＳＳＴＢ２ならば、空燃比制御が低レベルの不安定状態にあると判断され、ｆ／ｓｔｂ１の値を１に設定する（Ｓ１２０）。ｃｎｔ／ｊｕｄｓｔ＞ＳＳＴＢ２ならば、空燃比制御が高レベルの不安定状態にあると判断され、ｆ／ｓｔｂ１およびｆ／ｓｔｂ２の値をそれぞれ１に設定する（Ｓ１２１）。
【０１１２】
ステップＳ１２２において、カウンタｃｎｔ／ｊｕｄｓｔによる計測を開始してからの経過時間を測るタイマカウンタｔｍ／ｊｕｄｓｔを１だけデクリメントする。カウンタｃｎｔ／ｊｕｄｓｔは、タイマカウンタｔｍ／ｊｕｄｓｔがゼロになるたびに、リセットされる。
【０１１３】
ステップＳ１２３において、タイマカウンタｔｍ／ｊｕｄｓｔがゼロかどうかを判断する。ｔｍ／ｊｕｄｓｔ≠０ならば、このルーチンを抜ける。ｔｍ／ｊｕｄｓｔ＝０ならば、安定判別フラグｆ／ｓｔｂ１の値を調べる。ｆ／ｓｔｂ１＝１ならば、タイマカウンタｔｍ／ｊｕｄｓｔを初期値ＴＭＪＵＤＳＴにセットし、カウンタｃｎｔ／ｊｕｄｓｔをゼロにリセットする（Ｓ１２６）。ｆ／ｓｔｂ１＝０ならば、今回の制御サイクルで空燃比制御が安定であると判断されたことを示す。この場合、不安定フラグｆ／ｓｔｂ２をゼロにリセットした後に（Ｓ１２５）、ステップＳ１２６の処理を介してこのルーチンを抜ける。
【０１１４】
図１２および図１３を参照して、要求偏差Ｕｓｌのリミット処理について説明する。図９を参照して述べたように、運転状態に応じて、（ｉ）から（ｖｉｉ）の許容範囲のいずれかが選択される。選択された許容範囲について、エンジン１がアイドリング状態にある時とエンジン１がアイドリング状態にない時の上限値および下限値が異なる場合がある。以下の説明において、前者についての上限値および下限値を、それぞれＡＨＦＩおよびＡＬＦＩで表し、後者についての上限値および下限値を、それぞれＡＨＦおよびＡＬＦで表す。さらに、前述したように、許容範囲の中には、可変の上限値および／または可変の下限値を持つものがある。この可変に変化する適応上限値および適応下限値を、それぞれａｈおよびａｌで表す。
【０１１５】
図１２は、図１０のステップＳ１０７で実施される、要求偏差Ｕｓｌのリミット処理を示すフローチャートである。ステップＳ１２８において、エンジンが触媒還元モードにあるかどうか（還元処理が実施されているかどうか）を判断する。触媒還元モードにあるならば、空燃比偏差ｋｃｍｄを、所定値ＳＬＤＨＯＬＤ（＞０）に設定する。こうして、還元処理を促進するため、目標空燃比はリッチ化された空燃比に設定される。
【０１１６】
ステップＳ１３０において、前述した許容範囲（ｖｉｉ）を設定する。具体的には、適応下限値ａｌ（ｋ）を所定値ＬＩに設定する。こうして、エンジンが触媒還元モードにあるとき、許容範囲の下限値は値ＬＩに固定され、触媒還元モードから適応空燃比制御へ移行したときに目標空燃比が過度にリーン方向へ変化することを防止する。
【０１１７】
ステップＳ１２８において、エンジンが触媒還元モードになければ、ステップＳ１３１に進む。ステップＳ１３１において、今回の制御サイクルで用いる許容範囲を決定する。ここで、図１３を参照して、ステップＳ１３１で実行される許容範囲決定ルーチンを説明する。
【０１１８】
ステップＳ１６１において、フラグｆ／ｓｔｂ２の値を調べる。ｆ／ｓｔｂ２＝１ならば、空燃比制御が高レベルの不安定状態にあることを示す。ステップＳ１６２において、上限値ＡＨＦおよび下限値ＡＬＦを、許容範囲（ｉｉ）の上限値ＳＴＡＢＨおよび下限値ＳＴＡＢＬ（図９参照）にそれぞれ設定する。アイドリング状態用の下限値ＡＨＦＩおよび上限値ＡＬＦＩも、許容範囲（ｉｉ）の上限値ＳＴＡＢＨおよび下限値ＳＴＡＢＬに設定する。適応上限値ａｈおよび適応下限値ａｌ（正確には、ａｈ（ｋ−１）およびａｌ（ｋ−１）と表される）も、許容範囲（ｉｉ）の上限値ＳＴＡＢＨおよび下限値ＳＴＡＢＬに初期化される。こうして、空燃比制御が高レベルの不安定状態にあるときは、最も範囲の狭い許容範囲（ｉｉ）が選択される。この許容範囲（ｉｉ）は、アイドリング状態においても使用される。
【０１１９】
ステップＳ１６３において、フラグｆ／ｓｔｂ１の値を調べる。ｆ／ｓｔｂ１＝１ならば、空燃比制御が低レベルの不安定状態にあることを示す。ステップＳ１６４において、上限値ＡＨＦおよび下限値ＡＬＦは、許容範囲（ｉ）の上限値Ｈおよび下限値Ｌ（図９参照）にそれぞれ設定される。アイドリング状態用の上限値ＡＨＦＩおよび下限値ＡＬＦＩは、アイドリング許容範囲（ｖ）の上限値ＨＩおよび下限値ＬＩ（図９参照）にそれぞれ設定される。適応上限値ａｈおよび適応下限値ａｌは、許容範囲（ｉ）の上限値Ｈおよび下限値Ｌにそれぞれ設定される。こうして、空燃比制御が低レベルの不安定状態にある時は、許容範囲（ｉ）が選択される。空燃比制御が低レベルの不安定であり、かつエンジンがアイドリング状態にあるときは、低レベル不安定用の許容範囲（ｉ）よりも狭いアイドリング許容範囲（ｖ）が選択される。
【０１２０】
ステップＳ１６１およびＳ１６３の判断がＮｏならば、空燃比制御は安定状態にある。ステップＳ１６５において、燃料カットが終了してからの経過時間が所定時間より小さいかどうかを判断する。ステップＳ１６６において、エンジンが始動してからの経過時間が所定時間より小さいかどうかを判断する。ステップＳ１６７において、リーン運転が終了してからの経過時間が所定時間より小さいかどうかを判断する。ステップＳ１６５〜１６７のうちいずれかの判断がＹｅｓならば、ステップＳ１６８に進む。
【０１２１】
ステップＳ１６８において、上限値ＡＨＦを、許容範囲（ｉｉｉ）の上限値ＡＦＣＨ（図９参照）に設定する。許容範囲（ｉｉｉ）の下限値は可変である。したがって、下限値ＡＬＦは、前回の制御サイクルで決定された適応下限値ａｌ（ｋ−１）に設定される。アイドリング状態用の上限値ＡＨＦＩは、許容範囲（ｉｉｉ）の上限値ＡＦＣＨに設定される。下限値ＡＬＦＩは、許容範囲（ｖ）の下限値ＬＩに設定される。こうして、エンジンがアイドリング状態になければ、許容範囲（ｉｉｉ）が選択される。エンジンがアイドリング状態にあれば、下限値は、アイドリング許容範囲（ｖ）の下限値ＬＩに固定される。
【０１２２】
ステップＳ１６５〜Ｓ１６７の判断がすべてＮｏならば、ステップＳ１６９に進み、エンジンがアイドリング状態にあるかどうかを判断する。アイドリング状態にあるならば、ステップＳ１７０に進み、上限値ＡＨＦＩおよび下限値ＡＬＦＩが、アイドリング許容範囲（ｖ）の上限値ＨＩおよび下限値ＬＩに設定される。
【０１２３】
ステップＳ１６９の判断がＮｏのとき、ステップＳ１７１に進む。ステップＳ１７１〜Ｓ１７８の処理は、適応許容範囲（ｖｉ）に示される可変の適応上限値および適応下限値を制限する処理を示す。ステップＳ１７１において、適応上限値ａｈ（ｋ−１）をＳＴＡＢＨと比較する。ａｈ（ｋ−１）＜ＳＴＡＢＨならば、ａｈ（ｋ−１）の値をＳＴＡＢＨに設定する（Ｓ１７２）。ａｈ（ｋ−１）≧ＳＴＡＢＨならば、ステップＳ１７３に進み、適応上限値ａｈ（ｋ−１）をＨＨと比較する。ａｈ（ｋ−１）＞ＨＨならば、ａｈ（ｋ−１）の値をＨＨに設定する（Ｓ１７４）。ステップＳ１７１およびＳ１７３の判断がＮｏならば、ａｈ（ｋ−１）の値は維持される。こうして、適応上限値ａｈ（ｋ−１）は、ＳＴＡＢＨとＨＨの間に制限される。
【０１２４】
ステップＳ１７５において、適応下限値ａｌ（ｋ−１）をＬＬと比較する。ａｌ（ｋ−１）＜ＬＬならば、ａｌ（ｋ−１）の値をＬＬに設定する（Ｓ１７６）。ａｈ（ｋ−１）≧ＬＬならば、ステップＳ１７７に進み、適応下限値ａｌ（ｋ−１）をＳＴＡＢＬと比較する。ａｌ（ｋ−１）＞ＳＴＡＢＬならば、ａｌ（ｋ−１）の値をＳＴＡＢＬに設定する（Ｓ１７８）。ステップＳ１７５およびＳ１７７の判断がＮｏならば、ａｌ（ｋ−１）の値は維持される。こうして、適応下限値ａｌ（ｋ−１）は、ＬＬとＳＴＡＢＬの間に制限される。
【０１２５】
ステップＳ１７９において、上限値ＡＨＦおよび下限値ＡＬＦに、適応上限値ａｈ（ｋ−１）および適応下限値ａｌ（ｋ−１）をそれぞれ設定する。こうして、適応許容範囲（ｖｉ）が定められる。
【０１２６】
ステップＳ１８０において、車両が発進してから所定時間が経過していなければ、下限値ＡＬＦは、許容範囲（ｉｖ）の下限値ＶＳＴＬに設定される（Ｓ１８１）。上限値ＡＨＦは、適応許容範囲（ｖｉ）の上限値と同じ値が用いられる。
【０１２７】
図１２に戻り、ステップＳ１３２において、エンジンがアイドリング状態にあるかどうかを判断する。アイドリング状態にあるならば、図１３のステップＳ１６２、Ｓ１６４、Ｓ１６８およびＳ１７０のいずれかで設定された上限値ＡＨＦＩおよび下限値ＡＬＦＩによって規定される許容範囲を用いて、要求偏差Ｕｓｌがリミット処理される。具体的には、Ｕｓｌ＜ＡＬＦＩならば（Ｓ１３３）、目標空燃比偏差ｋｃｍｄは下限値ＡＬＦＩに設定される（Ｓ１３４）。Ｕｓｌ＞ＡＨＦＩならば（Ｓ１３５）、目標空燃比偏差ｋｃｍｄは上限値ＡＨＦＩに設定される（Ｓ１３６）。ステップＳ１３３およびＳ１３５の判断がＮＯならば（すなわち、ＡＬＦＩ≦Ｕｓｌ≦ＡＨＦＩならば）、現在の要求偏差Ｕｓｌが、目標空燃比偏差ｋｃｍｄに設定される（Ｓ１３７）。
【０１２８】
ステップＳ１３３またはＳ１３５がＹｅｓのとき、適応則入力Ｕａｄｐが大きくなるのを防止するため、今回のサイクルで算出された切換関数σバーの積算値に、前回のサイクルで算出された積算値の値を設定する（Ｓ１３８）。ステップＳ１３９において、現在の適応上限値ａｈ（ｋ−１）および下限値ａｌ（ｋ−１）が保持される。
【０１２９】
ステップＳ１３２においてエンジンがアイドリング状態にないと判断されたならば、図１２のステップＳ１６２、Ｓ１６４、Ｓ１６８、Ｓ１７９、およびＳ１８１のいずれかで設定された上限値ＡＨＦおよび下限値ＡＬＦによって規定される許容範囲を用いて、要求偏差Ｕｓｌをリミット処理する。
【０１３０】
具体的には、Ｕｓｌ＜ＡＬＦならば（Ｓ１４０）、目標空燃比偏差ｋｃｍｄは下限値ＡＬＦに設定される（Ｓ１４１）。Ｕｓｌ＞ＡＨＦならば（Ｓ１４２）、目標空燃比偏差ｋｃｍｄは上限値ＡＨＦに設定される（Ｓ１４３）。ＡＬＦ≦Ｕｓｌ≦ＡＨＦならば、現在の要求偏差Ｕｓｌが、目標空燃比偏差ｋｃｍｄに設定される（Ｓ１４４）。
【０１３１】
ＡＬＦ≦Ｕｓｌ≦ＡＨＦのとき、適応下限値ａｌ（ｋ−１）をΔＤＥＣ（＞０）だけ増やし、上限値ａｈ（ｋ−１）をΔＤＥＣだけ減らす（Ｓ１４５）。こうして、現在の要求偏差Ｕｓｌが許容範囲内に収まっているとき、適応許容範囲を狭くする。
【０１３２】
Ｕｓｌ＜ＡＬＦのとき、ステップＳ１４６において、車両が発進してからの経過時間が所定時間より小さいかどうかを判断する。この判断がＮｏならば、適応下限値ａｌ（ｋ−１）をΔＩＮＣ（＞０）だけ減らし、上限値ａｈ（ｋ−１）をΔＤＥＣだけ減らす（Ｓ１４７）。ここで、ΔＤＥＣ＜ΔＩＮＣである。こうして、現在の要求偏差Ｕｓｌが許容範囲の下限側で逸脱している場合には、上限値および下限値を小さくして、許容範囲を下方に移動させる。ステップＳ１４６の判断がＹｅｓならば、適応上限値ａｈ（ｋ−１）および下限値ａｌ（ｋ−１）の値は維持される（Ｓ１４８）。
【０１３３】
Ｕｓｌ＞ＡＨＦのとき、ステップＳ１４９において、燃料カットが終了してからの経過時間が所定時間内、またはエンジンが始動してからの経過時間が所定時間内、またはリーン運転を終了してからの経過時間が所定時間内かどうかが判断される。これらの状態のいずれにも該当しないとき、適応上限値ａｈ（ｋ−１）をΔＩＮＣだけ増やし、下限値ａｌ（ｋ−１）をΔＤＥＣだけ増やす（Ｓ１５０）。こうして、現在の要求偏差Ｕｓｌが許容範囲の上限側で逸脱している場合には、上限値および下限値を大きくして、許容範囲を上方に移動させる。ステップＳ１４９の判断においていずれかの状態がＹｅｓならば、適応上限値ａｈ（ｋ−１）および下限値ａｌ（ｋ−１）の値は維持される（Ｓ１５１）。
【０１３４】
ステップＳ１４０またはＳ１４２のいずれかの判断がＹｅｓの場合、ステップＳ１３８と同様に、今回のサイクルで算出された切換関数σバーの積算値に、前回のサイクルで算出された切換関数σバーの積算値を設定する。
【０１３５】
こうして、エンジンが触媒還元モードにあるとき、要求偏差Ｕｓｌの下限値ａｌ（ｋ）は、図１２のステップＳ１３０に示されるように、リッチ方向へシフトされた値（この例では、値ＬＩ）に固定される。適応空燃比制御が開始されたとき、該値ＬＩが設定された下限値ＡＬＦによって操作量Ｕｓｌはリミット処理されるので（Ｓ１４０）、目標空燃比ＫＣＭＤがリーン方向へ大きく変化することが防止される。
【０１３６】
図１４は、本発明の一実施形態に従う、リーン運転が終了した後のＯ２センサ出力Ｖｏ２／ＯＵＴ、目標空燃比ＫＣＭＤ、および排ガスの有害成分ＮＯｘの排出量の遷移を示す。
【０１３７】
リーン運転中は許容範囲の更新処理は実施されず、許容範囲の上限値および下限値は、該リーン運転に入る前に最後に設定された値に維持される。この例は、下限値が、たとえば図９に示されるＬＩ〜ＬＬの間の所定の値に維持されている形態を示している。
【０１３８】
リーン運転が終了した時間ｔ２において、触媒還元モードが開始される。触媒還元モードにおいて、触媒に吸着された酸素を除去するため、目標空燃比ＫＣＭＤは所定のリッチ空燃比に設定される。前述したように、触媒還元モードにおいて、目標空燃比ＫＣＭＤの下限値は所定値ＬＩに固定される。時間ｔ３において、上流触媒の還元処理が終了すると、Ｏ２センサ出力Ｖｏ２／ＯＵＴはリーンからリッチへ反転する。
【０１３９】
時間ｔ４において、下流触媒の還元処理が終了して適応空燃比制御が開始される。この時、Ｏ２センサ出力Ｖｏ２／ＯＵＴは、目標値Ｖｏ２／ＴＡＲＧＥＴよりもリッチ側に存在する。適応空燃比制御は、Ｏ２センサ出力Ｖｏ２／ＯＵＴを目標値に収束させるため、目標空燃比ＫＣＭＤをリーン方向へシフトしようとする。しかしながら、時間ｔ４において、下限値が、リッチ側にシフトされた値ＬＩにセットされているので（参照番号１９０）、目標空燃比ＫＣＭＤは、該下限値より小さい値に設定されることがない。したがって、目標空燃比ＫＣＭＤがリーン方向へ所定量以上変化することが防止され、ＮＯｘの排出量が抑制される。
【０１４０】
この明細書においては、スライディングモード制御を用いて適応空燃比制御を実施する例を説明した。しかしながら、他の応答指定型制御を用いて適応空燃比制御を実施する場合にも、本発明を適用することができる。
【０１４１】
本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンにも適用が可能である。
【０１４２】
【発明の効果】
この発明によると、触媒を還元する処理後の排ガスの有害成分の排出を低減することができる。
【図面の簡単な説明】
【図１】この発明の一実施例に従う、内燃機関およびその制御装置を概略的に示す図。
【図２】この発明の一実施例に従う、（ａ）触媒装置および排ガスセンサの配置、および（ｂ）空燃比制御の概要を示す図。
【図３】この発明の一実施例に従う、空燃比制御装置の全体的な機能ブロック図。
【図４】この発明の一実施例に従う、制御対称である排気系を示すブロック図。
【図５】この発明の一実施例に従う、空燃比制御の制御ブロック図。
【図６】この発明の一実施例に従う、制御器の詳細な機能ブロック図。
【図７】この発明の一実施例に従う、応答指定型制御における切換直線を概略的に示す図。
【図８】この発明の一実施例に従う、応答指定型制御における応答特性を示す図。
【図９】この発明の一実施例に従う、許容範囲の例を示す図。
【図１０】この発明の一実施例に従う、空燃比制御フローを示す図。
【図１１】この発明の一実施例に従う、安定判別の処理を示すフローチャート。
【図１２】この発明の一実施例に従う、リミット処理を示すフローチャート。
【図１３】この発明の一実施例に従う、許容範囲を決定する処理を示すフローチャート。
【図１４】この発明の一実施例に従う、触媒還元処理が終了した後における、排ガスセンサ出力、目標空燃比、および排ガスの有害成分の排出量の遷移を示す図。
【図１５】従来の空燃比制御に従う、触媒還元処理が終了した後における、排ガスセンサ出力、目標空燃比、および排ガスの有害成分の排出量の遷移を示す図。
【符号の説明】
１　エンジン
５　ＥＣＵ
１４　排気管
１５　触媒装置
１６　ＬＡＦセンサ
１７　Ｏ２センサ
２５　上流触媒
２６　下流触媒
【図１】
2004100465.tif 000023
【図２】
2004100465.tif 000024
【図３】
2004100465.tif 000025
【図４】
2004100465.tif 000026
【図５】
2004100465.tif 000027
【図６】
2004100465.tif 000028
【図７】
2004100465.tif 000029
【図８】
2004100465.tif 000030
【図９】
2004100465.tif 000031
【図１０】
2004100465.tif 000032
【図１１】
2004100465.tif 000033
【図１２】
2004100465.tif 000034
【図１３】
2004100465.tif 000035
【図１４】
2004100465.tif 000036
【図１５】
2004100465.tif 000037