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