(57)【特許請求の範囲】
【請求項１】
多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する空燃比補正係数算出手段と、を備えた内燃機関の燃料噴射量制御装置において、前記推定空燃比が所定範囲外の値となるとき、当該気筒についての前記気筒別空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段と、を具備することを特徴とする内燃機関の燃料噴射制御装置。
【請求項２】
多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する空燃比補正係数算出手段と、を備えた内燃機関の燃料噴射量制御装置において、前記推定空燃比が所定範囲外の値となるとき、全気筒についての前記気筒別空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段と、を具備することを特徴とする内燃機関の燃料噴射制御装置。
【請求項３】
前記所定範囲を、前記多気筒内燃機関に供給する目標空燃比に基づいて設定する所定範囲設定手段を有することを特徴とする請求項１または請求項２の内燃機関の燃料噴射制御装置。
【請求項４】
多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する空燃比補正係数算出手段と、を備えた内燃機関の燃料噴射量制御装置において、前記集合部の空燃比検出値の変化量が大きいとき、前記空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段と、を具備することを特徴とする内燃機関の燃料噴射制御装置。
【請求項５】
多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記空燃比が目標空燃比に一致するように燃料噴射量を補正する空燃比補正係数を算出する第１の空燃比補正係数算出手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する第２の空燃比補正係数算出手段と、を備えた内燃機関の燃料噴射量制御装置において、前記第１の空燃比補正係数の変化量が大きいとき、前記第２の空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段と、を具備することを特徴とする内燃機関の燃料噴射制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、内燃機関の燃料噴射制御装置に関し、特に、排気系に設けられた触媒の上流側に設置された広域空燃比センサの検知出力に基づいて、検出空燃比を目標空燃比と一致するように燃料噴射量を適応制御する燃料噴射制御装置に関する。
【０００２】
【従来の技術】
従来、内燃機関の燃料噴射制御装置においては、排気系に設けられた触媒装置による排気ガスの浄化率が理論空燃比で最大になることに着目し、排気系に設けた空燃比センサ（酸素濃度センサ）により空燃比を検出して、その検出値が理論空燃比となるように燃料噴射量をフィードバック制御している（特開昭５９−１０１５６２号公報）。
【０００３】
また、上記の空燃比センサを多気筒内燃機関の排気系集合部に１個だけ設けて空燃比を検出しても、気筒毎の空燃比を正確に検出することができず、全気筒の空燃比の混合値が検出されるのみであるため、この検出値に基づいて空燃比をフィードバック制御するとエミッション悪化を招来するという問題がある。そこで、かかる課題を解決するために、排気系の理論モデルを構築しておき、１個の空燃比センサの検出値をこの理論モデルに適用することによって気筒毎の空燃比を推定し、この推定値に基づいて各気筒の空燃比を目標値に気筒別フィードバック制御する技術がある（特開平５−１８００４０号公報）。この技術によれば、気筒毎に正確な空燃比を設定することができるのみならず、気筒毎に独立して複数個の空燃比センサを設ける必要がないため、簡素な構造を実現することができる。また、仮に複数個の空燃比センサを備えた場合には経年変化等による特性バラツキを考慮する必要が生じるが、１個の空燃比センサを適用する結果、このような特性バラツキを考慮する必要がない等の効果を有している。
【０００４】
【発明が解決しようとする課題】
しかし、後者の技術にあっては、気筒別空燃比の推定値が所定の上下限範囲外となる場合には、該推定値として該上下限値を用いて気筒別フィードバック制御をするため、空燃比が発散して空燃比応答性が悪化する等の課題がある。
【０００５】
例えば、多気筒内燃機関の１又は２以上の特定気筒に対する気筒別空燃比の推定値が該上下限範囲外となった場合、該推定値としてそのときの上下限値にホールドして空燃比のフィードバック制御を継続するので、制御目標値と異なる制御空燃比にしてフィードバックすることとなり、結果的に空燃比応答性の悪化及びエミッションの悪化を招来する。
【０００６】
本発明は、このような従来技術の課題に鑑みて成されたものであり、運転状態に応じて気筒別空燃比が所定フィードバック範囲外にずれないように気筒別フィードバック制御することができる内燃機関の燃料噴射量制御装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
このような目的を達成するために、請求項１にあっては、多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する空燃比補正係数算出手段とを備えた内燃機関の燃料噴射量制御装置において、前記推定空燃比が所定範囲外の値となるとき、当該気筒についての前記気筒別空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段とを具備する構成とした。
【０００８】
請求項２にあっては、多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する空燃比補正係数算出手段とを備えた内燃機関の燃料噴射量制御装置において、前記推定空燃比が所定範囲外の値となるとき、全気筒についての前記気筒別空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段とを具備する構成とした。
【０００９】
請求項３にあっては、請求項１または請求項２の前記所定範囲を、前記多気筒内燃機関に供給する目標空燃比に基づいて設定する所定範囲設定手段を有する構成とした。
【００１０】
請求項４にあっては、多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する空燃比補正係数算出手段とを備えた内燃機関の燃料噴射量制御装置において、前記集合部の空燃比検出値の変化量が大きいとき、前記空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段とを具備する構成とした。
【００１１】
請求項５にあっては、多気筒内燃機関の排気系集合部に配置され、前記多気筒内燃機関の各気筒から排出される混合気の空燃比を検出する空燃比検出手段と、前記多気筒内燃機関の排気系における空燃比の挙動を規定するモデルに基づいて、前記空燃比を入力すると共に前記排気系の内部状態を観測するオブザーバを設定して、過去の気筒毎の空燃比推定値の履歴情報に基づいて各気筒の空燃比を推定する空燃比推定手段と、前記空燃比が目標空燃比に一致するように燃料噴射量を補正する空燃比補正係数を算出する第１の空燃比補正係数算出手段と、前記推定された各気筒の空燃比に基づいて各気筒の空燃比のバラツキを減少させるように、前記多気筒内燃機関の各気筒に供給する気筒別燃料噴射量を補正する気筒別空燃比補正係数を算出する第２の空燃比補正係数算出手段とを備える内燃機関の燃料噴射量制御装置において、前記第１の空燃比補正係数の変化量が大きいとき、前記第２の空燃比補正係数の算出を停止する空燃比制御停止手段と、前記空燃比補正係数の算出停止時には、前記空燃比の推定処理を継続する空燃比推定処理継続手段とを具備する構成とした。
【００１２】
【作用】
請求項１の内燃機関の燃料噴射量制御装置にあっては、検出された混合気の空燃比をオブザーバに適用することによって気筒毎の空燃比を推定し、この気筒毎の推定空燃比に基づいて気筒別空燃比補正係数を求めて、気筒別燃料噴射量を補正する。そして、オブザーバにより推定された各気筒の推定空燃比が所定範囲外となって制御の安定性が低下するような状態になるときは、その範囲外に該当する気筒に対する気筒別燃料噴射量の補正制御を実質的に停止するが、オブザーバによる気筒別空燃比の推定処理は継続する。
【００１３】
請求項２の内燃機関の燃料噴射量制御装置にあっては、オブザーバを用いて推定した各気筒の推定空燃比が所定範囲外となって制御の安定性が低下するような状態になると、全ての気筒に対する気筒別燃料噴射量の補正制御を実質的に停止するが、オブザーバによる気筒別空燃比の推定処理は継続する。
【００１４】
請求項３の内燃機関の燃料噴射量制御装置にあっては、各気筒の推定空燃比が所定範囲内にあるか否かの判定をするための当該範囲を、多気筒内燃機関に供給する目標空燃比に基づいて設定する。
【００１５】
請求項４の内燃機関の燃料噴射量制御装置にあっては、空燃比検出手段により検出された混合気の空燃比検出値の変化量が大きいときは、気筒別空燃比補正係数の算出を停止するが、オブザーバによる気筒別空燃比の推定処理は継続する。
請求項５の内燃機関の燃料噴射量制御装置にあっては、第１の空燃比補正係数算出手段は、空燃比を目標空燃比に一致させるための空燃比補正係数を算出し、第２の空燃比補正係数算出手段は、各気筒の空燃比のバラツキを補正するための空燃比補正係数を算出する。そして、第１の空燃比補正係数算出手段の算出する空燃比補正係数の変化量が大きくなったときは、第２の空燃比補正係数算出手段による気筒別空燃比補正係数の算出を停止するが、オブザーバによる気筒別空燃比の推定処理は継続する。
【００１６】
【実施例】
（第１実施例）
本発明による内燃機関の燃料噴射制御装置の第１の実施例を図面と共に説明する。尚、典型例として４気筒内燃機関に適用されるものを説明する。
【００１７】
図１は、この燃料噴射制御装置の全体構成を示す概略図である。同図において、吸気管１２の先端に設けられたエアクリーナ１４から導入される吸気が、スロットル弁１６で流量調節されつつサージタンク１８及び吸気マニホールド２０を通り、更に気筒毎の吸気弁（図示せず）を介して、４気筒内燃機関１０の各気筒に流入される。
【００１８】
各気筒の上記吸気弁の近傍には、燃料噴射用のインジェクタ２２が設けられ、吸気と噴射燃料との混合気が、気筒毎に設けられている点火プラグ（図示せず）で点火されて燃焼し、各ピストン（図示せず）を駆動する。
【００１９】
燃焼後の排気ガスは、各気筒の排気弁（図示せず）を介して排気マニホールド２４に排出され、更に排気マニホールド２４の集合部に連結された排気管２６を経て第１の三元触媒装置２８と第２の三元触媒装置３０で清浄化されて機関外に排出される。
【００２０】
スロットル弁１６は、アクセルペダルの踏み込み量等の運転状況に応じて回転するパルスモータＭにより駆動制御され、吸気管１２のスロットル弁１６近傍には、電磁弁３２の開閉量に応じて２次空気量を制御するバイパス路３４が併設されている。尚、スロットル弁１６は一般的に知られている機構と同様に、アクセルペダルと機械的に連動するものであっても良い。
【００２１】
また、内燃機関１０には、電磁弁（図示せず）の開閉量を制御することにより排気ガスの一部を吸気系へ環流させる排気環流機構（ＥＧＲ機構）１００と、燃料タンク３８内で発生する蒸発燃料（パージガス）を電磁弁（図示せず）の開閉量に応じて吸気系へ供給するキャニスタパージ機構２００が設けられている。
【００２２】
更に、内燃機関１０には、特開平２−２７５０４３号公報等に開示されているいわゆる可変バルブタイミング機構３００が備えられており、機関回転数Ｎｅ及び吸気系における吸気圧力Ｐｂ等の運転状態を示すパラメータに応じて、内燃機関１０のバルブタイミングＶ／Ｔが２種類のタイミング特性ＬｏＶ／ＴとＨｉＶ／Ｔの間で可変制御される。
【００２３】
更に、内燃機関１０のディストリビュータ（図示せず）内にはピストン（図示せず）のクランク角度位置を検出するクランク角検出センサ４０が設けられ、スロットル弁１６の近傍にはそのスロットル開度θTHを検出するスロットル開度検出センサ４２が設けられ、吸気管１２にはスロットル弁１６の下流側の吸気圧力（絶対圧力）Ｐｂを検出する絶対圧センサ４４とスロットル弁１６の上流側の吸気温度を検出する吸気温度センサ４６とが設けられている。内燃機関１０の適宜の位置には、大気圧Ｐａを検出する大気圧センサ４８と機関冷却水の温度Ｔｗを検出する水温センサ５０が設けられている。尚、図１中には示されていないが、可変バルブタイミング機構３００中には、選択バルブタイミング特性を検出する検出センサ５２が設けられている。そして、これらのセンサ４０〜５２の検出信号は制御ユニット３６に逐一供給される。
【００２４】
排気管２６において、三元触媒装置２８の上流側の部位には、第１の空燃比検出手段としての広域空燃比センサ５４が装着され、三元触媒装置２８，３０の間には、第２の空燃比検出手段としてのＯ2 センサ５６が装着されている。
【００２５】
広域空燃比センサ５４には、本特許出願人が先に行った特開平２−１１８４２号公報等に開示されているＬＡＦセンサが適用され、このＬＡＦセンサ５４は、リーンからリッチにわたる広範囲において排気ガス中の酸素濃度をリニアに検出することができる広域特性を有している。そして、このＬＡＦセンサ５４とＯ2 センサ５６の各検出信号は、それぞれ所定カットオフ周波数に設定されたローパスフィルタ５８，６０を介して制御ユニット３６に供給される。
【００２６】
次に、図２の回路ブロック図に基づいて、制御ユニット３６のシステム構成を説明する。制御ユニット３６は、マイクロプロセッサ６２と各種入出力ポートとを備え、中央制御部（以下、ＣＰＵコアと呼ぶ）６４が、ＲＯＭ７６によりファームウェア化されている種々のアプリケーションプログラムを実行することにより、後述するフィードフォワード制御及びフィードバック制御を行うようになっている。
【００２７】
ＬＡＦセンサ５４の検出信号は上記ローパスフィルタ５８を介して第１の検出回路６６へ入力され、検出回路６６はこの検出信号について所定の線型化処理を行うことにより、リーンからリッチにわたる広範囲における排気ガス中の酸素濃度に比例したリニアな空燃比（Ａ／Ｆ）を求めて、マルチプレクサ６８へ出力する。Ｏ2 センサ５６からの検出信号は上記ローパスフィルタ６０を介して第２の検出回路７０に入力され、検出回路７０はこの検出信号値を図３に示す如き特性曲線に適応することにより、内燃機関１０に供給された混合気の空燃比が理論空燃比（λ＝１）に対してリッチかリーンかを示す信号を発生してマルチプレクサ６８へ出力する。また、前記各センサ４２〜５２からの検出信号もマルチプレクサ６８に供給される。そして、各信号は、所定の切換えタイミングに同期してチャンネル切換えを行うマルチプレクサ６８を介してＡ／Ｄ変換器７２へ時分割転送されてデジタルデータに変換され、ランダムアクセスメモり（ＲＡＭ）７４の所定バッファ領域に格納されたり、ＣＰＵコア６４の演算に供される。尚、この実施例では、Ａ／Ｄ変換器７２は、所定のクランク角度（例えば、１５度）毎に第２の検出回路７０からの検出信号をＡ／Ｄ変換する。
【００２８】
更に、クランク角センサ４０からの検出信号は、波形整形回路７８で２値論理の矩形信号に波形整形された後、カウンタ８０において計数され、その計数値もＲＡＭ７４の所定バッファ領域に格納されたり、ＣＰＵコア６４の演算に供される。
【００２９】
読出し専用メモリ（ＲＯＭ）７６には、上記種々のアプリケーションプログラムや、前述のタイミング特性ＬｏＶ／ＴとＨｉＶ／Ｔのマップデータ、後述する種々の検索用マップデータが予め記憶され、ＣＰＵコア６４が、ＲＡＭ７４とＲＯＭ７６の各種データを適用しつつ上記のアプリケーションプログラムを実行することにより運転状態に応じた最適燃料噴射制御条件を求め、各駆動回路８２〜８８を介してインジェクタ２２、電磁弁３２、排気環流機構（ＥＧＲ機構）１００の前記電磁弁１０２、及びキャニスタパージ機構２００の前記電磁弁２０２を制御する。
【００３０】
図４は本実施例に係わる燃料噴射制御装置の機能を示すブロック線図であり、内燃機関１０に対する吸気系の特性を補償するためのフィードフォワード制御系と、３系統のフィードバック制御系が備えられ、前記の各種アプリケーションプログラムが実行されることによって、かかるブロック線図と等価な制御機能が発揮される。
【００３１】
即ち、図５に示すメインフローチャートの如く、ステップＳ４００において、機関回転数Ｎｅ、吸気圧力Ｐｂ、スロットル開度θTH、冷却水温度Ｔｗ等の最新の各種センサ出力をＲＡＭ７４へ読込み、ステップＳ５００において上記フィードフォワード制御系の演算処理を行うことによって基本燃料噴射量ＴiM-Fを決定し、ステップＳ６００において第１のフィードバック系の演算処理を行うことによって、目標空燃比KCMDと目標空燃比補正係数KCMDM 等を求め、ステップＳ７００において第２のフィードバック系の演算処理を行うことによって、適応型フィードバック制御のための補正係数KSTRとKLAF等を求め、ステップＳ８００において第３のフィードバック系の演算処理を行うことによって気筒別空燃比補正係数＃ｎKLAFを求め、ステップＳ９００において、基本燃料噴射量ＴiM-Fに目標空燃比補正係数KCMDM と各補正係数KSTR又はKLAFと＃ｎKLAFを乗算等することによって、最終的な気筒別の出力燃料噴射量＃ｎＴout を決定してインジェクタ２２を駆動するようになっている。尚、添字＃ｎは各気筒を示し、出力燃料噴射量＃ｎＴout は、各気筒のインジェクタ２２の開弁時間を規定するものである。更に、このメインフローチャートの処理は、ＴＤＣに同期して行われる。
【００３２】
次に、各ブロック毎に機能を説明する。先ず、フィードフォワード制御系（図４中に「ＦＦＣ」と示す）は、本出願人が先に提案した特願平６−１９７２３８号に開示されているので簡単に述べると、吸気系におけるスロットル弁１６の下流から各気筒の吸入ポートまでの全ての実効容積（吸気管１２の該当部分とサージタンク１８等を含むチャンバ）についての流体力学モデル（数学モデル）等を構築し、スロットル開度θTHと吸気圧力Ｐｂをこの流体力学モデルに適用することにより、定常運転状態のみならず過渡運転状態をも含めた全ての運転状態における最適な基本燃料噴射量ＴiM-Fを決定する。
【００３３】
図６は基本燃料噴射量ＴiM-Fの演算ルーチン（図５のステップＳ５００に対応する）を示すフローチャート、図７はこの演算ルーチンを説明するブロック線図であり、更にこれらの図に基いてフィードフォワード制御系の機能を説明する。
【００３４】
ステップＳ５０２において機関が始動状態にあるか否か判断し、肯定されるときはステップＳ５０４において始動モードに対応する基本燃料噴射量ＴiM-Fを設定し、否定されるときはステップＳ５０６においてフューエルカット状態にあるか否か判断する。ここで肯定されるときはステップＳ５０８において燃料カット用の基本燃料噴射量ＴiM-F（＝０）を設し、否定されるときは通常の運転状態に対応する基本燃料噴射量を設定すべくステップＳ５１０以降の処理へ移る。
【００３５】
ステップＳ５１０では、機関回転数Ｎｅと吸気圧力ＰｂをパラメータとしてＲＯＭ７６の所定マップを検索することにより、定常運転状態時の燃料噴射量（基準値）ＴiMを求める。即ち、予めスピードデンシティ方式に基づいて機関回転数Ｎｅと吸気圧力Ｐｂをパラメータとする燃料噴射量ＴiMが求められ、かかる燃料噴射量ＴiMがＲＯＭ７６にマップデータとして格納されている。
【００３６】
ステップＳ５１２では、スロットル開度θTHの値を一次遅れ伝達関数（１−Ｂ）／（Ｚ−Ｂ）に適応することによって、スロットル開度θTHの一次遅れ値θTH-Dを演算する。即ち、過渡運転状態時には、スロットル開度θTHの変化が直接的に吸気ポートの吸入空気量に対応しないので、一次遅れ値θTH-Dをもって近似することにしている。尚、伝達関数中のＢは係数である。
【００３７】
ステップＳ５１４においては、図７に示す如く、予めＲＯＭ７６に格納されているマップを検索することにより、スロットル開度θTHに対応するスロットル投影面積（吸気管長手方向へのスロトル投影面積）Ｓと、スロットル開度θTH及び吸気圧力Ｐｂに対応する補正係数（流量係数αと気体の膨張補正係数εの積）Ｃを求め、スロットル投影面積Ｓに補正係数Ｃを乗算することによって、定常運転状態時のスロットル有効開口面積Ａを演算する。
【００３８】
ステップＳ５１６においては、図７に示す如く、予めＲＯＭ７６に格納されているマップを検索することにより、スロットル開度の一次遅れ値θTH-Dに対応するスロットル投影面積Ｓと、一次遅れ値θTH-D及び吸気圧力Ｐｂに対応する補正係数Ｃを求め、このスロットル投影面積Ｓに補正係数Ｃを乗算することによって、過渡運転状態時のスロットル有効開口面積ＡDELAY を演算する。
【００３９】
ステップＳ５１８においては、バイパス路３４の開口断面ＡBYPASSをも考慮して、
【００４０】
【数１】
0003729282.tif 000002
【００４１】
により、定常運転状態時の有効開口面積Ａと過渡運転状態時の有効開口面積ＡDELAY との比RATIO-A を演算する。
【００４２】
ステップＳ５２０においては、燃料噴射量ＴiMに比RATIO-A を乗算することによって、定常運転状態時及び過渡運転状態時に適応する燃料噴射量ＴiM-F’を求める。即ち、比RATIO-A の値は、定常運転状態では１となり、過渡運転状態では１を除く或る値になるので、定常運転状態と過渡運転状態との両者に対応するものである。よって、燃料噴射量ＴiMに比RATIO-A を乗算することによって、定常運転状態時及び過渡運転状態時に適応する燃料噴射量ＴiM-F’が求まる。
【００４３】
ステップＳ５２２においては、機関回転数Ｎｅと吸気圧力Ｐｂ、吸気温度及び冷却水温度Ｔｗ、パージガス濃度ＰＵＧ、排気ガスの還流率等のパラメータに基づいて、ＲＯＭ７６の所定マップを検索することにより補正係数KTOTALを求め、更に、燃料噴射量ＴiM-F’に補正係数KTOTALを乗算することにより、ＥＧＲ機構１００とキャニスタパージ機構２００の影響を補償した基本燃料噴射量ＴiM-Fを決定する。
【００４４】
このように、このフィードフォワード制御系は、運転状態の変化に伴ってシリンダ流入空気量が変動しても、スロットル開度θTHと吸気圧力Ｐｂからそのシリンダ流入空気量に対応する最適な基本燃料噴射量ＴiM-Fを決定する。
【００４５】
次に、第１のフィードバック系を説明する。このフィードバック系は、図４中の「ＫＣＭＤ」と「ＫＣＭＤ補正」及び「ＫＣＭＤＭ］で示す機能ブロックを備え、図８に示すフローチャート（図５のステップＳ６００に対応する）に従って演算処理を行う。
【００４６】
先ず、図８のステップＳ６０２において、機関回転数Ｎｅと吸気圧力ＰｂをパラメータとしてＲＯＭ７６の所定マップを検索することにより、空燃比の基本値ＫＢＳを求める。即ち、この基本値ＫＢＳは、機関回転数Ｎｅと吸気圧力Ｐｂをパラメータとして、定常運転状態時にＯ2 センサ５６の出力から求めることができる空燃比のデータであり、予めＲＯＭ７６に格納されている。尚、このマップにはアイドル運転状態時に対応する基本値も格納されている。更に、機関の低負荷時にその機関へ供給する空燃比を大きく（当量比で言えば小さく）して燃焼特性を向上させるための所謂リーンバーン機関にあっては、リーンバーン用の基本値も格納されている。
【００４７】
ステップＳ６０４においては、内蔵されているタイマ回路（図示せず）の値を参照することにより、機関始動後のリーンバーン制御が実行されているか否かを判定し、リーンバーン制御期間であれば、リーン補正係数を例えば０．８９、そうでない場合には１．０とする。
【００４８】
かかる判定を行うのは次の理由による。本実施例に係る内燃機関１０には可変バルブタイミング機構３００が設けられており、始動後のクランキング期間（始動期間）では、各気筒の吸気弁の一方の動作を休止させることによって、目標空燃比を理論空燃比よりもややリーン側に設定するリーンバーン制御を行い、この結果、触媒装置が未だ活性化していない始動期間であっても、炭化水素（ＨＣ）の増加を抑制することができるという効果を発揮させるようにしているからである。尚、気筒毎に２個の吸気弁を有している通常の内燃機関（可変バルブタイミング機構を備えない内燃機関）にあっては、機関始動後に目標空燃比をリーン側に設定すると、機関内の燃焼が不安定となって失火を招来することとなるが、かかる可変バルブタイミング機構３００を備えた本実施例の内燃機関にあっては、吸気弁の一方を休止させることに伴って燃焼室内に所謂スワールと呼ばれる渦流ができるので、機関の始動直後にリーン化を行っても安定した燃焼が得られる。
【００４９】
ステップＳ６０６において、スロットル開度が全開（ＷＯＴ）であるか否か判定し、この判定結果に応じて全開増量補正値を算出し、更にステップＳ６０８において、冷却水温度Ｔｗが高いか否か判定し、この判定結果に応じて増量補正係数KTWOT を演算する。尚、この増量補正係数KTWOT には、高水温時の機関保護のための補正係数値も含まれる。
【００５０】
ステップＳ６１０では、補正係数KTWOT を基本値ＫＢＳに乗算することによってその基本値ＫＢＳを補正すると共に、数２に示す演算によって目標空燃比KCMDを決定する。即ち、図３に示す如く、理論空燃比近傍のＯ2 センサ５６の出力が線形特性を備える範囲内（縦軸に破線で示す）において、空燃比の微小制御を行うためのウインドウ（以下、DKCMD-OFFSETとする）を設定した後、補正後の上記基本値ＫＢＳにこのウインドウ値DKCMD-OFFSETを加算することにより、目標空燃比KCMDを求める。
【００５１】
【数２】
0003729282.tif 000003
【００５２】
次に、ステップＳ６１２において、目標空燃比KCMD(k) （ここで、ｋは時刻）のリミット処理を行った後、ステップＳ６１４において、その目標空燃比KCMD(k) が１ないしその付近の値にあるか否かを判断し、肯定されるときはステップＳ６１６において、Ｏ2 センサ５４の活性化判断を行う。尚、この活性化判断は、図示しない別ルーチンで実行され、Ｏ2 センサ５６の検出信号の電圧変化を検出することで行う。
【００５３】
次に、ステップＳ６１８において、ＭＩＤＯ2 制御用の値DKCMD を演算する。ここで、ＭＩＤＯ2 制御とは、三元触媒装置２８の下流側のＯ2 センサ５６の出力により上流側のＬＡＦセンサ５４の目標空燃比KCMD(k) を可変とする作業を意味する。詳しくは図３に示す如く、所定の比較電圧ＶrefMとＯ2 センサ５６の出力電圧ＶO2Ｍの偏差にＰＩＤ制御則を用いて値DKCMD を算出することで行う。尚、比較電圧ＶrefMは、大気圧Ｐａ、水温Ｔｗ、排気ボリューム（機関回転数Ｎｅおよび吸気圧力Ｐｂより求めることが可能）などに応じて求められる。
【００５４】
更に、上記のウインドウ値DKCMD-OFFSETは、三元触媒装置２８，３０の浄化率を最適状態に維持するために付加されるオフセット値であり、触媒装置固有の特性に起因して相違するので、三元触媒装置２８の特性を勘案して決定される。また、ウインドウ値DKCMD-OFFSETは、触媒装置２８，３０の経年劣化によっても変化することから、値DKCMD の毎回の算出値を用いて加重平均により学習する。具体的には、
【００５５】
【数３】
0003729282.tif 000004
【００５６】
の演算式により求められる。ここで、Ｗは重み係数、ｋは時刻であり、より具体的には制御サイクルを示す。即ち、目標空燃比KCMDをウインドウ値DKCMD-OFFSETの前回算出値で学習演算することにより、触媒装置２８，３０の経年劣化の影響を受けることなく、それらの浄化率が最適となる空燃比にフィードバック制御するようにしている。
【００５７】
次に、ステップＳ６２０において、上記算出した値DKCMD(k)に目標空燃比KCMD(k) を加算して、新たな目標空燃比KCMD(k) を設定（更新）し、次に、ステップＳ６２２において、更新後の目標空燃比KCMD(k) に基づいてＲＯＭ７６中の所定テーブルを検索することにより、補正係数KETCを求める。補正係数KETCは、気化熱で吸入空気の充填効率が相違するのを補償するためにある。具体的には、求めた補正係数KETCに目標空燃比KCMD (k)を乗算することにより、補正された（更新された）目標空燃比補正係数KCMDM(k)を算出する。即ち、この制御においては目標空燃比を当量比で示すと共に、それに充填効率補正を施した値を目標空燃比補正係数KCMDM(k)としている。
【００５８】
尚、上記ステップＳ６１４で否定されるときは、制御すべき目標空燃比KCMD  (k) が理論空燃比に対して大きくずれているときであり、例えばリーンバーン運転状態時であることから、直ちにステップＳ６２２へジャンプする。
【００５９】
最後にステップＳ６２４において、目標空燃比補正係数KCMD(k) のリミット処理を行い、そして、図４に示すように、フィードフォワード制御系からの基本燃料噴射量ＴiM-Fに目標空燃比補正係数KCMDM(k)を乗算することにより、要求燃料噴射量Ｔcyl を算出する。
【００６０】
このように、第１のフィードバック系の機能は、定常運転状態における空燃比の基本値ＫＢＳについてＯ2 センサ５６の出力に基づく上記所定の補正処理を行うことによって、目標空燃比KCMDと目標空燃比補正係数KCMDM を求めると共に、基本燃料噴射量ＴiM-Fに目標空燃比補正係数KCMDM を乗算することにより、触媒装置に対する理想的な空燃比を設定し得る要求燃料噴射量Ｔcyl を算出する。
【００６１】
次に、第２のフィードバック系を説明する。このフィードバック系は、図４中の「ＳＴＲ」で示す適応型制御器と、「ＰＩＤＣ」で示すＰＩＤ制御器と、「切換ＳＷ」で示す切換機構を備え、以下に述べるこれらの機能は、ＣＰＵコア６４による所定アプリケーションプログラムの実行によって実現される。尚、このフィードバック系は、特願平６−３４００２１号に詳細に開示されているので、ここではその概略を説明する。
【００６２】
このフィードバック系は、前記フィードフォワード系で演算された基本燃料噴射量ＴiMに目標空燃比補正係数KCMDM を乗算することにより要求燃料噴射量Ｔcyl を求めただけでは、内燃機関１０の応答遅れ等に起因して目標空燃比KCMDが鈍された空燃比となってしまうので、目標空燃比KCMDから空燃比の応答を動的に補償する目的で、適応制御器ＳＴＲを用いてフィードバック補正係数KSTRを求め、このフィードバック補正係数KSTRにより要求燃料噴射量Ｔcyl を更に補正するようにしている。更に、適応制御器ＳＴＲは制御の応答性が比較的高いので、運転状態に応じて目標空燃比KCMDが大きく変動するような場合には却って制御量が発振して制御の安定性が低下するという問題を招来することから、制御が不安定となるような場合には、ＰＩＤ制御器ＰＩＤＣにより求めたフィードバック補正係数KLAFで要求燃料噴射量Ｔcyl を補正する。そして、運転状態に応じてこれらのフィードバック補正係数KSTRとKLAFを切換えて適用するために、切換機構が設けられている。更に、異なる制御則に基づいて決定されたフィードバック補正係数を切り換えるときは、それぞれの特性が異なることから、補正係数に段差が生じて操作量が急変し、制御量が不安定となって制御の安定性が低下する恐れがあるので、切換機構は、その切り換えを滑らかに実行することによって、フィードバック補正係数に不連続を生じないようにしている。
【００６３】
先ず、ＰＩＤ制御器ＰＩＤＣは、サンプリング動作ブロック（図中に「sel-Ｖ」と示す）で推定される排気系集合部の空燃比（以下、検出空燃比KACTと呼ぶ）に基づいて目標空燃比KCMDを動的に補償する。ここで、サンプリング動作ブロックsel-Ｖは、ＬＡＦセンサ５４の検出信号から上記検出空燃比KACTを演算する機能を有しており、後述する第３のフィードバック系においても、この検出空燃比KACTを用いて所定のフィードバック制御を行うようになっている。尚、サンプリング動作ブロックsel-Ｖの詳細は第３のフィードバック系と共に説明することとする。
【００６４】
ＰＩＤ制御器ＰＩＤＣの処理を述べると、先ず、目標空燃比KCMDと検出空燃比KACTの制御偏差DKAFを、
【００６５】
【数４】
0003729282.tif 000005
【００６６】
と求める。尚、ｄ’はKCMDがKACTに反映されるまでの無駄時間を示す。よって、KCMD(k-d')は無駄時間制御周期前の目標空燃比を示す。KACT(k) は今回制御周期の検出空燃比を示す。また、この明細書での空燃比は、目標値KCMDも検出値KACTも実際には当量比、即ち、Ｍst／Ｍ＝１／λで示している（Ｍstは理論空燃比、Ｍは空気消費量Ａと燃料消費量Ｆの比Ａ／Ｆ、λは空気過剰率）。
【００６７】
次いで、それに所定の係数を乗じてＰ項KLAFP(k)、Ｉ項KLAFI(k)、及びＤ項KLAFD(k)を、
【００６８】
【数５】
0003729282.tif 000006
【００６９】
と求める。
【００７０】
このように、Ｐ項は偏差DKAF(k) に比例ゲインKPを乗じて求め、Ｉ項は偏差に積分ゲインKIを乗じて得た値をフィードバック補正係数の前回値KLAF(k) に加算することによって求め、Ｄ項は偏差の今回値DKAF(k) と前回値DKAF(k-1) の差に微分ゲインKDを乗じることによって求める。尚、各ゲインKP，KI，KDは、機関回転数Ｎｅと吸気圧力Ｐｂをパラメータとして所定のマップ検索により求められる。更に、数６に示す如く、これらの値を合算し、更にオフセット分１．０を加算することにより、ＰＩＤ制御器ＰＩＤＣのＰＩＤ制御則によるフィードバック補正係数の今回値KLAF(k) を求める。
【００７１】
【数６】
0003729282.tif 000007
【００７２】
次に、適応制御器ＳＴＲの機能を図９に基づいて説明する。適応制御器ＳＴＲは、ＳＴＲコントローラとパラメータ調整機構とを有し、ＳＴＲコントローラは、第１のフィードバック系からの目標空燃比KCMD(k) と前記サンプリング動作ブロック（ｓｅｌ−Ｖ）からの検出空燃比KACT(k) とを入力すると共に、ランダウらの提案したパラメータ調整則（機構）によって同定された係数ベクトルを受け取って適応デジタル信号処理を行うことにより、フィードバック補正係数KSTR(k) を算出する。換言すれば、漸化式を用いてフィードバック補正係数KSTR(k) を算出する。
【００７３】
この手法によれば、いわゆる適応システムを線形ブロックと非線形ブロックとから構成される等価フィードバック系に変換し、非線形ブロックについては入出力に関するポポフの積分不等式が成立し、線形ブロックは強正実となるように調整則を決めることによって、適応システムの安定が保証されることとなる。尚、かかる手法は、例えば、「コンピュートロール」（コロナ社刊）Ｎｏ．２７．２８頁〜４１頁、ないし「自動制御ハンドブック」（オーム社刊）７０３頁〜７０７頁に記載されている。
【００７４】
このランダウらの調整則を用いた適応制御技術を以下説明すると、ランダウらの調整則では、離散系の制御対象の伝達関数Ａ（Ｚ-1）／Ｂ（Ｚ-1）の分母分子の多項式を数７で▲１▼▲２▼のようにおいたとき、適応パラメータθハット (k)および適応パラメータ調整機構への入力ζ(k) は、数７で▲３▼▲４▼のように定められる。数７では、ｍ＝１，ｎ＝１，ｄ＝３の場合、即ち、１次系で３制御サイクル分の無駄時間を持つブランドを例にとった。ここでのｋは時刻、より具体的には、制御サイクルを示す。
【００７５】
【数７】
0003729282.tif 000008
【００７６】
ここで適応パラメータθハット (k)は、数８で表される。また数８中のΓ(k) およびｅアスタリスク(K) は、それぞれゲイン行列および同定誤差信号であり、数９および数１０のような漸化式で表される。
【００７７】
【数８】
0003729282.tif 000009
【００７８】
【数９】
0003729282.tif 000010
【００７９】
【数１０】
0003729282.tif 000011
【００８０】
また数９中のλ1(k)，λ2(k)の選び方により、種々の具体的なアルゴリズムが与えられる。λ1(k)＝１，λ2(k)＝λ（０＜λ＜２）とすると漸減ゲインアルゴリズム（λ＝１の場合には最小自乗法）、λ1(k)＝λ１（０＜λ１＜１）、λ2(k)＝λ２（０＜λ２＜λ) とすると可変ゲインアルゴリズム（λ２＝１の場合には重み付き最小自乗法）、λ1(k)／λ2(k)＝σとおき、λ３が数１１のように表されるとき、λ1(k)＝λ３とおくと固定トレースアルゴリズムとなる。またλ1(k)＝１，λ2(k)＝０のとき固定ゲインアルゴリズムとなる。この場合は数９から明らかな如く、Γ(k) ＝Γ(k-1) となり、よってΓ(k) ＝Γの固定値となる。
【００８１】
【数１１】
0003729282.tif 000012
【００８２】
ここで、図９にあっては、前記したＳＴＲコントローラ（適応制御器）と適応パラメータ調整機構とは燃料噴射量演算系の外におかれ、検出空燃比KACT（k)が目標空燃比KCMD(k-d')（ここでｄ’は前述の如くKCMDがKACTに反映されるまでの無駄時間）に適応的に一致するように動作してフィードバック補正係数KSTR(k) を演算する。即ち、ＳＴＲコントローラは、適応パラメータ調整機構によって適応的に同定された係数ベクトルθハット(k) を受け取って目標空燃比KCMD(k-d')に一致するようにフィードバック補償器を形成する。
【００８３】
このように、フィードバック補正係数KSTR(k) および検出空燃比KACT(k) が求められて適応パラメータ調整機構に入力され、そこで適応パラメータθハット  (k) が算出されてＳＴＲコントローラに入力される。ＳＴＲコントローラには入力として目標空燃比KCMD(k) が与えられ、検出空燃比KACT(k) が目標空燃比KCMD(k) に一致するように漸化式を用いて数１２に示すフィードバック補正係数KSTR(k) を算出する。
【００８４】
【数１２】
0003729282.tif 000013
【００８５】
演算されたフィードバック補正係数KSTR(k) は、切換機構を介して要求燃料噴射量Ｔcyl に乗算され、その補正された燃料噴射量Ｔcyl ’が更に後述する第３のフィードバック制御系の気筒別空燃比補正係数＃ｎKLAFで補正されることにより、気筒別出力燃料噴射量＃ｎＴout が求められる。
【００８６】
尚、切換機構は、所定の切換えフラグFKSTR に同期して切換え処理し、目標空燃比KCMDが大きく変動するような運転状態にあっては、フィードバック補正係数KLAF(k) を切換え選択して要求燃料噴射量Ｔcyl に乗算し、目標空燃比KCMDが大きく変動しない運転状態にあっては、フィードバック補正係数KSTR(k) を切換え選択して、要求燃料噴射量Ｔcyl に乗算する。即ち、要求燃料噴射量Ｔcyl は、フィードバック補正係数KSTR又はKLAFにより補正される。
【００８７】
次に、第３のフィードバック系を説明する。このフィードバック系は基本的には、サンプリング動作ブロック「sel-Ｖ」が推定する排気系集合部の空燃比、即ち、検出空燃比KACTにオブザーバ（図４中にＯＢＳＶと示す）を適用することにより、気筒別空燃比＃ｎKACTを求め、更に、ＰＩＤ制御則（図４中にＰＩＤと示す）により気筒別空燃比＃ｎKACTから気筒毎の空燃比補正係数＃ｎKLAFを算出する。尚、添字＃ｎは各気筒を示す。そして、気筒別空燃比補正係数＃ｎKLAFを燃料噴射量Ｔcyl ’に乗算することによって、各気筒の空燃比を均一化することができる出力燃料噴射量＃ｎＴout を設定し、ひいては三元触媒２８，３０の排気ガス清浄効率の向上を図るようにしたものである。即ち、この第３のフィードバック系は、空燃比が各気筒でバラツクのをフィードバック補正するものである。まず、このフィードバック系の動作を説明する前に、サンプリング動作ブロック「sel-Ｖ」及びオブザーバについて説明する。
【００８８】
排気ガスは排気行程で排出されることから、多気筒内燃機関１０の排気系集合部において空燃比の挙動をみると、明らかに空燃比はＴＤＣに同期する。従って、排気系の集合部に単一のＬＡＦセンサ５４を設けて空燃比をサンプリングするときもＴＤＣに同期して行う必要があることとなる。しかし、ＬＡＦセンサ５４の検出出力を処理する制御ユニット（ＥＣＵ）３６のサンプルタイミングによっては空燃比の挙動を正確に捉えられない場合が生じる。即ち、例えば、ＴＤＣに対して排気系集合部の空燃比が図１０のようであるとき、制御ユニット３６で認識する空燃比は図１１に示す如く、サンプルタイミングによっては全く違った値となってしまう。更に、その空燃比の変化は、排気ガスがＬＡＦセンサ５４に到達するまでの時間やＬＡＦセンサ５４の反応時間によっても相違する。その内、ＬＡＦセンサ５４までの到達時間は排気ガス圧力、排気ガスボリュームなどに依存して変化する。更に、ＴＤＣに同期してサンプリングすることはクランク角度に基づいてサンプリングすることになるので、必然的に機関回転数Ｎｅの影響を受けざるを得ない。このように、空燃比の検出値は機関の運転状態に依存するところが大きい。このような課題を解決するために、サンプリング動作ブロックsel-ＶとオブザーバＯＢＳＶが設けられている。
【００８９】
排気系集合部に設けられた単一のＬＡＦセンサ５４の検出信号から各気筒の空燃比を精度良く分離抽出するためには、ＬＡＦセンサ５４の検出応答遅れを正確に解明する必要がある。そこで、図１２に示すように、この遅れを擬似的に１次遅れ系でモデル化すると、その状態方程式は数１３で示すことができる。
【００９０】
【数１３】
0003729282.tif 000014
【００９１】
これを周期ΔＴで離散化すると、数１４で示すようになる。図１３は数１４をブロック線図で表したものである。
【００９２】
【数１４】
0003729282.tif 000015
【００９３】
従って、数１４を用いることによってＬＡＦセンサ５４の検出出力から真の空燃比を求めることができる。即ち、数１４を変形すれば数１５に示すようになるので、時刻ｋのときの値から時刻ｋ−１のときの値を数１６のように逆算することができる。
【００９４】
【数１５】
0003729282.tif 000016
【００９５】
【数１６】
0003729282.tif 000017
【００９６】
具体的には数１５をＺ変換を用いて伝達関数で示せば数１７のようになるので、その逆伝達関数を今回のＬＡＦセンサ５４の検出出力ＬＡＦ(k) に乗じることによって前回の入力空燃比をリアルタイムに推定することができる。図１４にそのリアルタイムのＡ／Ｆ推定器のブロック線図を示す。
【００９７】
【数１７】
0003729282.tif 000018
【００９８】
続いて、上記の如く求めた真の空燃比に基づいて各気筒の空燃比を分離抽出する手法について説明すると、排気系の集合部の空燃比を各気筒の空燃比の時間的な寄与度を考慮した加重平均であると考え、時刻ｋのときの値を、数１８のように表した。尚、Ｆ（燃料量）を制御量としたため、ここでは『燃空比Ｆ／Ａ』を用いているが、後の説明においては理解の便宜のため、支障ない限り「空燃比」を用いる。尚、空燃比（ないしは燃空比）は、先に数１７で求めた応答遅れを補正した真の値を意味する。
【００９９】
【数１８】
0003729282.tif 000019
【０１００】
即ち、集合部の空燃比は、気筒ごとの過去の燃焼履歴に重みＣ（例えば直近に燃焼した気筒は４０％、その前が３０％．．．など）を乗じたものの合算で表した。このモデルをブロック線図であらわすと、図１５のようになる。
【０１０１】
また、その状態方程式は数１９のようになる。
【０１０２】
【数１９】
0003729282.tif 000020
【０１０３】
また集合部の空燃比をｙ(k) とおくと、出力方程式は数２０のように表すことができる。
【０１０４】
【数２０】
0003729282.tif 000021
【０１０５】
上記において、ｕ(k) は観測不可能のため、この状態方程式からオブザーバを設計してもｘ(k) は観測することができない。そこで４ＴＤＣ前（即ち、同一気筒）の空燃比は急激に変化しない定常運転状態にあると仮定してｘ(k＋1 ) ＝ｘ(k-3) とすると、数２１のようになる。
【０１０６】
【数２１】
0003729282.tif 000022
【０１０７】
そして、かかるモデルについてシミュレーションすると、モデル出力値がＬＡＦセンサ５４出力の実測値に対して良好に追従するという結果が得られ、上記モデルが多気筒内燃機関の排気系を良くモデル化していることを検証することができた。
【０１０８】
よって、数２２で示される状態方程式と出力方程式（数２０）にてｘ(k) を観察する通常のカルマンフィルタの問題に帰着する。その荷重行列Ｑ，Ｒを数２３のように置いてリカッチの方程式を解くと、ゲイン行列Ｋは数２４のようになる。
【０１０９】
【数２２】
0003729282.tif 000023
【０１１０】
【数２３】
0003729282.tif 000024
【０１１１】
【数２４】
0003729282.tif 000025
【０１１２】
これよりＡ−ＫＣを求めると、数２５のようになる。
【０１１３】
【数２５】
0003729282.tif 000026
【０１１４】
ところで、一般的なオブザーバの構成は図１６に示されるようになるが、今回のモデルでは入力ｕ(k) がないので、図１７に示すようにｙ(k) のみを入力とする構成となり、これを数式で表すと数２６のようになる。
【０１１５】
【数２６】
0003729282.tif 000027
【０１１６】
ここで、ｙ(k) を入力するとオブザーバ、即ちカルマンフィルタのシステム行列は数２７のように表される。
【０１１７】
【数２７】
0003729282.tif 000028
【０１１８】
今回のモデルで、リカッチ方程式の荷重配分Ｒの要素：Ｑの要素＝１：１のとき、カルマンフィルタのシステム行列Ｓは、数２８で与えられる。
【０１１９】
【数２８】
0003729282.tif 000029
【０１２０】
図１８に上記したモデルとオブザーバを組み合わせたものを示す。シミュレーションの結果によれば、集合部空燃比より各気筒の空燃比を的確に抽出することができることが検証された。
【０１２１】
このように、オブザーバによって、集合部空燃比Ａ／Ｆ（即ち、Ａ／ＦとはKACTと等価である）より各気筒空燃比＃ｎＡ／Ｆを推定することができたことから、ＰＩＤ制御則を用いて空燃比を気筒別に制御するための気筒別空燃比補正係数＃ｎKLAFを演算することが可能となる。
【０１２２】
具体的には、図１９に示すように、排気系集合部の空燃比（即ち、KACT）を気筒毎の空燃比補正係数＃ｎ気筒別空燃比の全気筒についての平均値の前回演算値で除算して求めた目標値と、上記オブザーバの気筒毎の推定値＃ｎＡ／Ｆと、の偏差を解消するようにＰＩＤ制御則を用いて求める。即ち、数２９に示す如く、ＰＩＤ制御則に適用する上記目標値KCMDOBSVは、前回ＴＤＣ時に推定された各気筒の空燃比補正係数＃１KLAF〜＃４KLAFの平均値で、今回求められた検出空燃比KACTを除算することによって求められる。
【０１２３】
【数２９】
0003729282.tif 000030
【０１２４】
一方、気筒別空燃比補正係数＃ｎKLAFは、数３０に示すように、各気筒＃ｎ毎に、検出空燃比＃ｎKACT(m) と目標値KCMDOBSVとの偏差＃ｎDKACT(m)を求めると共に、今回求められた偏差＃ｎDKACT(m)と前回求められた偏差＃ｎDKACT(m-1)との偏差＃ｎDDKACTを求め、更に、これらの演算結果を適用することによって、各気筒＃ｎに該当するＰＩＤ制御則のＫＰ項とＫＩ項及びＫＤ項を求め、最後に、これらのＫＰ項とＫＩ項及びＫＤ項を適用して、気筒別空燃比補正係数＃ｎKLAFを求める。尚、＃ｎは各気筒＃１〜＃４を示し、ｍは、４ＴＤＣ毎の時点を示す。即ち、気筒別空燃比補正係数＃ｎKLAFは、それぞれ４ＴＤＣに１回演算される。尚、次式中、基準ゲインであるＫＰOBSV項とＫＩOBSV項及びＫＤOBSV項は、機関がアイドリング動作のときと、それ以外の動作時とでは、それぞれ異なった値に設定され、ＲＯＭ７６に予めデータマップとして格納されているので、かかる演算の際に運転状態に応じてマップ検索されるようになっている。
【０１２５】
【数３０】
0003729282.tif 000031
【０１２６】
これにより、各気筒の空燃比は集合部空燃比に収束し、集合部空燃比は目標空燃比に収束することとなって、結果的に全ての気筒の空燃比が目標空燃比に収束する。ここで、各気筒の出力燃料噴射量＃ｎＴout （インジェクタの開弁時間で規定される）は、
【０１２７】
【数３１】
0003729282.tif 000032
【０１２８】
で求められる（ｎは気筒）。
【０１２９】
次に、図２０のフロー・チャートに基づいて、ＬＡＦセンサ５４の検出出力をサンプリングして気筒毎の空燃比の推定値＃ｎＡ／Ｆを求めるまでの動作を説明する。尚、この処理は、実際には、図５に示すルーチン中のステップＳ４００の中で予め実行されることにより、ステップ７００及びステップＳ８００の処理で検出空燃比KACT及び推定値＃ｎＡ／Ｆを用いることができるようになっている。
【０１３０】
図２０において、Ｓ４０２では、機関回転数Ｎｅ、吸気圧力Ｐｂ、バルブタイミングV/T を読み出し、次いでＳ４０４とＳ４０６に進んでＨｉＶ／ＴとＬｏＶ／Ｔ用のタイミングマップを検索し、ステップＳ４０８に進んでＬＡＦセンサ５４の出力をＨｉＶ／ＴとＬｏＶ／Ｔ用にサンプリングすることにより、ＨｉＶ／Ｔ用の検出空燃比KACTとＬｏＶ／Ｔ用の検出空燃比KACT求める。
【０１３１】
図２１はそのタイミングマップの特性を示す説明図であり、図示の如く特性は、機関回転数Ｎｅが低くないしは吸気圧力（負圧）Ｐｂが高いほど早いクランク角度でサンプリングされた値を選択するように設定される。ここで、「早い」とは前のＴＤＣ位置により近い位置でサンプリングされた値（換言すれば古い値）を意味する。逆に、機関回転数Ｎｅが高くないしは吸気圧力Ｐｂが低いほど遅いクランク角度、即ち、後のＴＤＣ位置に近いクランク角度でサンプリングされた値（換言すれば新しい値）を選択するように設定する。即ち、ＬＡＦセンサ出力は図１１に示したように、実際の空燃比の変局点に可能な限り近い位置でサンプリングするのが最良であるが、その変局点、例えば最初のピーク値は、センサの反応時間を一定と仮定すれば、図２２に示すように、機関回転数Ｎｅが低くなるほど早いクランク角度で生じる。また、負荷が高いほど排気ガス圧力や排気ガスボリュームが増加し、従って排気ガスの流速が増してＬＡＦセンサ５４への到達時間が早まるものと予想される。その意味から、サンプルタイミングを図２１に示すように設定した。
【０１３２】
更に、バルブタイミングに関しては、機関回転数の任意の値Ｎe1をＬｏ側についてＮe1-Lo 、Ｈｉ側についてＮe1-Hi とし、吸気圧力についてもその任意の値をＬｏ側についてＰb1-Lo 、Ｈｉ側についてＰb1-Hi とすると、マップ特性は、
Ｐb1-Lo ＞Ｐb1-Hi
Ｎe1-Lo ＞Ｎe1-Hi
とする。即ち、ＨｉＶ／Ｔにあっては排気弁の開き時点がＬｏＶ／Ｔのそれより早いため、機関回転数ないし吸気圧力の値が同一であれば、早期のサンプリング値を選択するように、マップ特性が設定される。
【０１３３】
以上のステップＳ４０２〜Ｓ４０８の処理が、サンプリング動作ブロックsel-Ｖに相当する。従って、図２３下部に示すように、ＣＰＵコア６４はセンサ出力の最大値と最小値を正確に認識することができる。そして、この構成によりオブザーバを用いて各気筒の空燃比を推定するときも、実際の空燃比の挙動に近似する値を使用することができてオブザーバの推定精度が向上し、次ぎの図２４乃至図２６に関して述べる気筒別の空燃比フィードバック制御を行うときの精度も向上する。
【０１３４】
次に、図５中のステップＳ８００における気筒別フィードバック制御を図２４ないし図２５のフローチャートに基づいて説明する。尚、本実施例の内燃機関１０にはバルブタイミング機構３００が設けられているので、図２４の処理において、バルブタイミングＨｉＶ／ＴとＬｏＶ／Ｔに応じて気筒別の空燃比＃ｎＡ／Ｆを推定した後、図２５に示す気筒別空燃比補正係数＃ｎKLAFを求めるようになっている。
【０１３５】
図２４において、ステップＳ８０２では、図２０中のステップＳ４０８において求められたＨｉＶ／Ｔ用の検出空燃比（排気系集合部の空燃比）KACTをオブザーバ行列の演算に適用することにより、ＨｉＶ／Ｔ用の気筒別空燃比＃ｎＡ／Ｆを求め、続いてステップＳ８０４に進んで、ＬｏＶ／Ｔ用の検出空燃比（排気系集合部の空燃比）KACTをオブザーバ行列の演算に適用することにより、ＬｏＶ／Ｔ用の気筒別空燃比＃ｎＡ／Ｆ（＃ｎKACT）を求める。続いてＳ８０６に進んで現在のバルブタイミングV/T を判断し、判断結果に応じてステップＳ８０８または８１０に進んで、ＨｉＶ／Ｔ用またはＬｏＶ／Ｔ用のいずれかの気筒別空燃比＃Ａ／Ｆを選択する。このように、ステップＳ８０２〜Ｓ８１０においては、バルブタイミングV/T に応じた気筒別空燃比＃ｎＡ／Ｆを求めるために、オブザーバによる気筒別空燃比推定処理が行われる。
【０１３６】
次ぎに、図２５に示すフローチャートに従って、本発明の課題である制御の安定性等を確保するための判断処理を行うと共に、ＰＩＤ制御則による気筒別空燃比補正係数＃ｎKLAFを求め、最後にかかる補正係数＃ｎKLAFを燃料噴射量Ｔcyl ’に乗算することによって、気筒別のインジェクタ開弁時間を決定するための出力燃料噴射量＃ｎＴout を決定する。
【０１３７】
先ず、図２５のステップＳ８１２では、気筒別空燃比＃ｊＡ／Ｆ（ここで、＃ｊは各気筒を示しｊ＝１〜ｎ）について、夫々の値が所定の基準最低値KACTLMTLと基準最高値KACTLMTHとの範囲内に存在するか否かを判断する。より具体的には、ｎ＝４気筒内燃機関の場合には、
第１の気筒について；  KACTLMTL＜＃１Ａ／Ｆ≦KACTLMTH
第２の気筒について；  KACTLMTL＜＃２Ａ／Ｆ≦KACTLMTH
第３の気筒について；  KACTLMTL＜＃３Ａ／Ｆ≦KACTLMTH
第４の気筒について；  KACTLMTL＜＃４Ａ／Ｆ≦KACTLMTH
の条件を満足しているか否かの判断を行う。即ち、過渡運転時の目標空燃比の変化に対応して推定空燃比が急変した場合に、該所定範囲も目標空燃比の変化に対応して変化するので、推定空燃比が所定範囲外となり空燃比制御を停止する期間が長くなる。そこで、気筒別空燃比が異常にバラツク場合に該当する気筒を判定するために所定範囲を目標空燃比に基づいて設定している。
【０１３８】
ステップＳ８１２において、ひとつでも上記条件を満足しない気筒別空燃比が検出されると、ステップＳ８１４へ処理が移行し、全気筒についての気筒別空燃比＃１〜ｎＡ／Ｆが上記条件を満足する場合には、ステップＳ８１６の処理へ移行する。
【０１３９】
ステップＳ８１４では、所定のタイマー回路（図示せず）に所定時間τをプリセット（計数値ｔACTST をτにプリセット）して、時間計測を開始させた後、ステップＳ８２０の処理へ移行する。このタイマー設定は、フィードバック制御再開時の安定性を考慮して、時間調整を行うためにある。
【０１４０】
ステップＳ８１６では、上記タイマー回路がプリセットされた時間τの計測を完了したか否か判断する。即ち、ｔACTST ＝０となったか否か判断する。
【０１４１】
そして、肯定される場合は、ステップＳ８１８へ移行して、各気筒について割り振られている判断フラグ＃１FOBFB 〜＃ｎFOBFB の全てを“１”に設定した後、ステップＳ８２２へ移行する。一方、ステップＳ８１６において否定される場合には、ステップＳ８２０に移行し、判断フラグ＃１FOBFB 〜＃ｎFOBFB の内、上記条件を満足しない気筒についての判断フラグ＃ｊFOBFB を“０”にセットする。即ち、判断フラグ＃１FOBFB 〜＃ｎFOBFB は、上記条件を満足する気筒別空燃比と満足しない気筒別空燃比に関係する気筒を識別するためにある。
【０１４２】
次に、ステップＳ８２２においては、各判断フラグが“１”の場合と“０”の場合とで以降の処理内容を相違させるための判断を行い、判断フラグが“１”に該当する気筒についての処理は（Ａ）へ、判断フラグが“０”に該当する気筒についての処理は（Ｂ）へ移行させる。
【０１４３】
（Ｂ）に続く処理においては、ステップＳ８２４で、判断フラグが“０”に該当する気筒＃ｊの補正係数＃ｊKLAFを強制的に１．０の値にする。換言すれば、判断フラグが“１”に該当する残余の気筒の補正係数については、後述する更なる条件を満足すると、通常のＰＩＤ制御則により求められる。
【０１４４】
（Ａ）に続く処理においては、ステップＳ８２６〜Ｓ８３２において、運転状態を表す機関回転数Ｎｅと吸気圧力Ｐｂが所定の気筒別フィードバック領域内に在るか否かの判断を行う。ここで、気筒別フィードバック領域とは、図２６のグルフ中の斜線領域にて示すように、気筒別フィードバック制御を実行することができる条件を設定するものであり、この領域を外れる場合は、気筒別フィードバック制御を停止する。即ち、機関回転数Ｎｅが、上限値ＮOBSVH と下限値０との間に在り、且つ吸気圧力Ｐｂが、機関回転数に応じて設定されている所定下限値ＰOBSVL と上限値ＰOBSVH との間に在る場合には、気筒別フィードバック制御を実行することができる。尚、同図中のΔＮOBSVの領域とΔＰOBSVは、気筒別フィードバック制御を停止から実行又は実行から停止へ変更する際に、制御の安定性を確保するために設けられたヒステリシスである。また、この気筒別フィードバック領域のデータはマップ検索することができるように予めＲＯＭ７６に格納されている。
【０１４５】
かかる条件判断を行うために、ステップＳ８２６とＳ８２８において、機関回転数Ｎｅが上限値ＮOBSVH より低く且つ吸気圧力Ｐｂが上限値ＰOBSVH より低いか否か判断する。両方の条件を満足する場合に限りステップＳ８３０へ移行し、１つでも条件を満足しない場合には、ステップＳ８３６へ移行して全ての気筒別空燃比補正係数＃１KLAF〜＃ｎKLAFの値を１．０に設定する。
【０１４６】
ステップＳ８３０においては、機関回転数Ｎｅに対応する吸気圧力の下限値ＰOBSVL をマップ検索し、続いてステップＳ８３２において、吸気圧力Ｐｂがその下限値ＰOBSVL より大きいか否か判断する。ここで否定される場合はステップＳ８３６へ移行して全ての気筒別空燃比補正係数＃１KLAF〜＃ｎKLAFの値を１．０に設定する。一方、ステップＳ８３２において肯定される場合はステップＳ８３４へ処理が移行する。
【０１４７】
ステップＳ８３４では、判断フラグ＃１FOBFB 〜＃ｎFOBFB の内の設定値が  “１”となっている気筒についての気筒別空燃比補正係数をＰＩＤ制御則により求める。
【０１４８】
尚、上記のステップＳ８２４とＳ８３６において、強制的に気筒別空燃比補正係数を１に設定した場合であっても、オブザーバによる気筒別空燃比＃ｎＡ／Ｆの推定処理は継続して行うようになっている。即ち、気筒別空燃比＃ｎＡ／Ｆを推定するためには過去の履歴情報が必要であるからであり、もし仮に、強制的に気筒別空燃比補正係数を１に設定した場合にこの推定処理をも停止させることとすれば、空燃比が正常状態に復帰等した場合に、迅速的確に次の気筒別空燃比＃ｎＡ／Ｆを推定することができなくなる恐れがあるからである。逆言すれば、気筒別空燃比＃ｎＡ／Ｆの推定処理を継続することによって、空燃比が正常状態に復帰等した場合に、次の気筒別空燃比＃ｎＡ／Ｆを迅速的確に推定することができる。
【０１４９】
そして、ステップＳ８２４、Ｓ８３４、Ｓ８３６の処理が完了すると、図５に示したメインルーチン中のステップＳ９００の処理が成されて、各気筒の出力燃料噴射量＃ｎＴout が決定される。
【０１５０】
このように、この実施例によれば、第３のフィードバック系による気筒別フィードバック制御を行うことにより、各気筒相互間での空燃比のバラツキを補正し、触媒装置による排気ガスの清浄効率を向上させることができる。
【０１５１】
更に、気筒別フィードバック制御を行うべきでない状況を運転状態を表すパラメータＮｅとＰｂに基づいて判断し、この状況においては、全ての気筒別空燃比補正係数＃ｎKLAFを強制的に１．０にすることによって、実質的に気筒別フィードバック制御を停止するので、全体のフィードバック制御に悪影響を与えるのを防止し、正常に戻った場合には、再び気筒別フィードバック制御を開始して、オブザーバＯＢＳＶを活かした気筒別空燃比制御を行うことができる。
【０１５２】
更に、気筒別フィードバック制御を行うことができる状況下であっても、気筒別空燃比＃ｎＡ／Ｆのいずれかが所定値の範囲から外れる場合には、それに該当する気筒についての気筒別空燃比補正係数についてのみ強制的に１．０に設定し、残余の気筒別空燃比補正係数については通常のＰＩＤ制御則により継続して演算するので、全体のフィードバック制御に悪影響を与えるのを防止し、正常に戻った場合には、再び全ての気筒別フィードバック制御を開始して、オブザーバＯＢＳＶを活かした気筒別空燃比制御を行うことができる。
【０１５３】
尚、この実施例の以上の説明では、図２５中のステップＳ８２４及びＳ８３６において、制御の不安定性等を回避するために、該当する気筒別空燃比補正係数を強制的に１．０に設定することによって、該当する気筒への出力燃料噴射量Ｔout を実質的に補正しないようにしているが、この１．０の値に限定しなくともよい。例えば、前回以前に推定された正常時での気筒別空燃比＃ｎＡ／Ｆの値を、該当する気筒別空燃比補正係数に使用してもよい。このようにすると、空燃比のバラツキをより迅速に収束させることが期待できる。
【０１５４】
（第２実施例）
次に、第２の実施例を図２７のフローチャートと共に説明する。尚、この実施例は、前記第３のフィードバック系による気筒別フィードバック制御に関するものであり、第１の実施例に示したフィードフォワード系及び第１，第２のフィードバック系の構成は同一又は同等であるので、第１の実施例との相違点について対比しつつ説明することとする。また、この実施例の特徴を示す図２７中で、第１の実施例における処理内容と同一または相当する部分については、同一符号にて示すものとする。
【０１５５】
第１の実施例で説明した図２５中のステップＳ８２４〜Ｓ８３６の処理では、気筒別フィードバック制御に支障をきたす場合に当該する気筒別空燃比補正係数を選んで強制的に１．０等の定数値に固定しているが、この実施例では、気筒別空燃比＃ｎＡ／Ｆの１つでも、制御に支障をきたす値となった場合には、全ての気筒別空燃比補正係数＃ｎKLAFを強制的に１．０に設定することによって、空燃比が正常に戻るまでの期間中は実質的に気筒別フィードバック制御を停止したり、又は、前回推定時に得られた正常時での気筒別空燃比補正係数＃ｎKLAFを用いて出力燃料噴射量＃Ｔout の補正処理を継続することで、全体のフィードバック制御に悪影響を与えるのを防止し、正常に戻った場合には、再び全ての気筒別フィードバック制御を開始して、オブザーバＯＢＳＶを活かした気筒別空燃比制御を行うことができるようにしたものである。
【０１５６】
即ち、図２５中のステップＳ８２２の振分け処理が終了すると、図２７中の処理（Ａ）と処理（Ｂ）のいずれかへ継続される。処理（Ｂ）に継続する場合は、少なくとも１つの気筒別空燃比（例えば＃１Ａ／Ｆ等）が所定値を越えた場合であり、ステップＳ１０００において、全ての気筒別空燃比補正係数＃１KLAF〜＃ｎKLAFを１．０に設定する。尚、ここで、前回推定時に得られた正常時での気筒別空燃比補正係数＃ｎKLAFに設定してもよい。
【０１５７】
処理（Ａ）に継続する場合は、推定された気筒別空燃比＃ｎＡ／Ｆが正常な場合である。したがって、ステップＳ８２６〜Ｓ８３２の処理により、運転状態が気筒別フィードバック補正領域（図２６参照）に適合するか否か判断される。そして、完全に上記条件を満足（肯定）する場合には、ステップＳ８３４へ移行して、ＰＩＤ制御則による気筒別空燃比補正係数＃ｎKLAFが演算され、それに続いてステップＳ９００で各気筒の出力燃料噴射量＃ｎＴout の補正が成される。一方、ステップＳ８２６〜Ｓ８３２の処理において否定された場合には、ステップＳ１０００へ移行し、全ての気筒別空燃比補正係数＃１KLAF〜＃ｎKLAFを１．０、又は上記した正常時での気筒別空燃比補正係数＃ｎKLAFに設定する。
【０１５８】
（第３実施例）
次に、第３の実施例を図２８のフローチャートと共に説明する。尚、この実施例は、第１実施例で説明した、第３のフィードバック系による気筒別空燃比制御に関するものであり、第１の実施例に示したフィードフォワード系及び第１，第２のフィードバック系の構成は同一又は同等であるので、第１の実施例との相違点について対比しつつ説明することとする。また、この実施例の特徴を示す図２８中で、第１の実施例における処理内容と同一または相当する部分については、同一符号にて示すものとする。
【０１５９】
第１の実施例で説明した図２５中のステップＳ８１２〜Ｓ８２２の処理では、気筒別フィードバック制御に支障をきたす場合に当該する気筒別空燃比＃ｎＡ／Ｆを判定し、その判定結果に基づいて、該当する気筒別空燃比補正係数の値を１．０等の定数値に決定しているが、この第３の実施例は、更に、検出空燃比KACTの時間変化と目標空燃比補正係数KLAFの時間変化が共に大きく変化する場合にも、気筒別フィードバック制御を実質的に停止するようにしたものである。
【０１６０】
即ち、図２７において、気筒別空燃比＃ｎＡ／Ｆが求められた後に、ステップＳ２０００において、最新の検出空燃比KACT(k) とその前に求められた検出空燃比KACT(k-1) との差の絶対値ΔKACT＝｜KACT(k) −KACT(k-1) ｜が、予め決められた上限値ΔKACTLMTHより小さいか否か判断し、肯定されるときはステップＳ２００２へ処理が移行し、否定されるときはステップＳ８１４へ処理が移行する。
【０１６１】
ステップＳ２００２では、最新の目標空燃比補正係数KLAF(k) とその前に求められた目標空燃比補正係数KLAF(k-1) との差の絶対値ΔKLAF＝｜KLAF(k) −KLAF(k-1) ｜が、予め決められた上限値ΔKLAFLMTHより小さいか否か判断し、肯定されるときはステップＳ８１２へ処理が移行し、否定されるときはステップＳ８１４へ処理が移行する。
【０１６２】
したがって、検出空燃比KACTの変動と目標空燃比補正係数KLAFの変動の両者共に大きくない場合に限り、ステップＳ８１２へ移行する。一方、少なくとも検出空燃比KACTの変動と目標空燃比補正係数KLAFの変動の一方が大きいときはステップＳ８１４へ移行する。
【０１６３】
次に、第１の実施例で説明した如く、ステップＳ８１２〜Ｓ８２２の処理を行うことにより、気筒別空燃比が所定値範囲外にある場合に該当する処理については処理（Ｂ）へ、気筒別空燃比が所定値範囲内にある場合に該当する処理については処理（Ａ）へ、移行する。続いて、図２５中に示すステップＳ８２６〜Ｓ８３６の処理により、気筒別空燃比補正係数＃１KLAF〜＃ｎKLAFが決定さた後、気筒毎の出力燃料噴射量＃ｎＴout が演算される。
【０１６４】
この実施例によれば、制御の安定性の有無を検出空燃比KACTと目標空燃比補正係数KLAFの各変化量から判断することとなるので、すくなくとも１つの気筒の異常に起因する気筒別空燃比制御の安定性の低下を防止することができる。
【０１６５】
尚、この実施例では、検出空燃比KACTと目標空燃比補正係数KLAFの両者の変化分から制御の安定性等を判断することとしているが、いずれか一方の変化分に基づいてかかる判断制御を行うようにしても良い。
【０１６６】
更にまた、上記説明では、図２８に示す処理の後に、図２５に示す第１の実施例の処理（Ａ）と（Ｂ）に継続する場合を述べたが、図２７に示す第２の実施例の処理（Ａ）と（Ｂ）に継続しても良い。
【０１６７】
【発明の効果】
請求項１と請求項２にあっては、オブザーバにより推定される気筒毎の推定空燃比が所定範囲外となった該当気筒に対する気筒別フィードバック制御を停止するので、他の気筒に対するフィードバック制御への影響を低減することができる。更に、オブザーバによる気筒毎の空燃比の推定を継続するので、気筒フィードバック制御を再開する時、オブザーバを用いて過去の気筒毎の空燃比推定値の履歴情報に基づいて直ちに再開直後の気筒別空燃比補正係数を求めることができ、該気筒別空燃比補正係数に基づきフィードバック制御再開直後における応答性の優れた気筒別フィードバック制御を可能にする。
【０１６８】
請求項３にあっては、気筒別空燃比が異常にバラツク場合に該当する気筒を判定するための所定範囲を目標空燃比に基づいて設定したことにより、過渡運転時の目標空燃比の変化に対応して推定空燃比が急変した場合に、該所定範囲も目標空燃比の変化に対応して変化するので、推定空燃比が所定範囲外となり空燃比制御を停止する期間が長くなることを防止することができる。
【０１６９】
請求項４にあっては、少なくとも１つの気筒の異常を検出空燃比（混合気の空燃比）の変化量から判断して、気筒別フィードバック制御を実質的に停止するので、他の気筒に対するフィードバック制御への影響を低減することができる。更に、オブザーバによる気筒毎の空燃比の推定を継続するので、気筒フィードバック制御を再開する時、オブザーバを用いて過去の気筒毎の空燃比推定値の履歴情報に基づいて直ちに再開直後の気筒別空燃比補正係数を求めることができ、該気筒別空燃比補正係数に基づきフィードバック制御再開直後における応答性の優れた気筒別フィードバック制御を可能にする。
【０１７０】
請求項５にあっては、少なくとも１つの気筒の異常を目標空燃比補正係数の変化量から判断して、気筒別フィードバック制御を実質的に停止するので、他の気筒に対するフィードバック制御への影響を低減することができる。更に、オブザーバによる気筒毎の空燃比の推定を継続するので、気筒フィードバック制御を再開する時、オブザーバを用いて過去の気筒毎の空燃比推定値の履歴情報に基づいて直ちに再開直後の気筒別空燃比補正係数を求めることができ、該気筒別空燃比補正係数に基づきフィードバック制御再開直後における応答性の優れた気筒別フィードバック制御を可能にする。
【図面の簡単な説明】
【図１】実施例に係わる内燃機関の燃料噴射装置の全体構成を示す概略構成図である。
【図２】図１中の制御ユニットの構成を示すブロック図である。
【図３】図１中のＯ2 センサ出力特性を示す説明図である。
【図４】実施例に係わる内燃機関の燃料噴射装置の機能を示すブロック図である。
【図５】燃料噴射装置の動作を説明するためのフローチャートである。
【図６】フィードフォワード系の動作を説明するためのフローチャートである。
【図７】フィードフォワード系の機能を説明するためのブロック図である。
【図８】第１のフィードバック系の動作を説明するためのフローチャートである。
【図９】第２のフィードバック系の機能を説明するためのブロック図である。
【図１０】多気筒内燃機関のＴＤＣと排気系集合部の空燃比との関係を示す説明図である。
【図１１】実際の空燃比に対するサンプルタイミングの良否を示す説明図である。
【図１２】ＬＡＦセンサの検出動作をモデル化して示すブロック図である。
【図１３】図１２のモデルのＺ変換表示モデルを示すブロック図である。
【図１４】空燃比センサの検出挙動をモデル化した空燃比推定器を示すブロック線図である。
【図１５】内燃機関の排気系の挙動をモデル化したブロック線図である。
【図１６】一般的なオブザーバを示すブロック線図である。
【図１７】実施例に係わるオブザーバの構成を示すブロック線図である。
【図１８】空燃比推定器とオブザーバとを組合わせた構成を示すブロック線図である。
【図１９】第３のフィードバック系の機能を示すブロック線図である。
【図２０】サンプリング動作ブロック（sel-Ｖ）における検出空燃比のサンプリング動作を示すフローチャートである。
【図２１】サンプリング動作ブロック（sel-Ｖ）のサンプリング動作で使用するタイミングマップの特性を示す説明図である。
【図２２】機関回転数と機関負荷に対するＬＡＦセンサ出力特性を示す説明図である。
【図２３】サンプリング動作ブロック（sel-Ｖ）のサンプル動作を説明するタイミングチャートである。
【図２４】オブザーバの動作に関し、気筒別空燃比を機関タイミングに対応して発生する動作を示すフローチャートである。
【図２５】第３のフィードバック系（気筒別フィードバック制御系）において気筒別空燃比補正係数を求めるための判断動作を説明するフローチャートである。
【図２６】図２５の判断動作に使用される気筒別フィードバック領域を示す説明図である。
【図２７】第２の実施例に関し、第３のフィードバック系（気筒別フィードバック制御系）において気筒別空燃比補正係数を求めるための判断動作を説明するフローチャートである。
【図２８】第３の実施例に関し、第３のフィードバック系（気筒別フィードバック制御系）において気筒別空燃比補正係数を求めるための判断動作を説明するフローチャートである。
【符号の説明】
１０…内燃機関、１２…吸気管、１４…エアクリーナ、１６…スロットル弁、
１８…サージタンク、２０…吸気マニホールド、２２…インジェクタ、２４…排気マニホールド、２６…排気管、２８，３０…触媒装置、３２…電磁弁、３４…バイパス路、３６…エンジン制御ユニット、３８…燃料タンク、４０…クランク角検出センサ、４２…スロットル開度検出センサ、４４…絶対圧センサ、４６…吸気温度センサ、４８…大気圧センサ、５０…水温センサ、５２…タイミング検出センサ、５４…空燃比検出センサ（ＬＡＦセンサ）、５６…Ｏ2 センサ、
５８，６０…ローパスフィルタ、６２…マイクロプロセッサ、６４…ＣＰＵコア、６６…検出回路、６８…マルチプレクサ、７０…検出回路、７２…Ａ／Ｄ変換器、７４…ＲＡＭ、７６…ＲＯＭ、７８…波形整形回路、８０…カウンタ、８２〜８８…駆動回路、１００…ＥＧＲ機構、１０２…電磁弁、２００…キャニスタパージ機構、２０２…電磁弁、３００…バルブタイミング機構。
【図１】
0003729282.tif 000033
【図２】
0003729282.tif 000034
【図３】
0003729282.tif 000035
【図４】
0003729282.tif 000036
【図５】
0003729282.tif 000037
【図６】
0003729282.tif 000038
【図７】
0003729282.tif 000039
【図８】
0003729282.tif 000040
【図９】
0003729282.tif 000041
【図１０】
0003729282.tif 000042
【図１１】
0003729282.tif 000043
【図１２】
0003729282.tif 000044
【図１３】
0003729282.tif 000045
【図１４】
0003729282.tif 000046
【図１５】
0003729282.tif 000047
【図１６】
0003729282.tif 000048
【図１７】
0003729282.tif 000049
【図１８】
0003729282.tif 000050
【図１９】
0003729282.tif 000051
【図２０】
0003729282.tif 000052
【図２１】
0003729282.tif 000053
【図２２】
0003729282.tif 000054
【図２３】
0003729282.tif 000055
【図２４】
0003729282.tif 000056
【図２５】
0003729282.tif 000057
【図２６】
0003729282.tif 000058
【図２７】
0003729282.tif 000059
【図２８】
0003729282.tif 000060