(57)【要約】【課題】空燃比応答モデルの誤差に起因する誤フィードバックを回避し、排気エミッションを低減する。【解決手段】目標当量比算出部Ｍ１で、空燃比応答モデルに高応答モデルと低応答モデルとを設定し、各モデルから得られる目標排気当量比高応答値Ｒｈｉと目標排気当量比低応答値Ｒｌｗとのうち、大きい方を目標排気当量比最大値Ｒｍａｘ、小さい方を目標排気当量比最小値Ｒｍｉｎとする。そして、偏差算出部Ｍ３で、目標排気当量比最大値Ｒｍａｘと目標排気当量比最小値Ｒｍｉｎとによる制御範囲に対し、広域空燃比センサによるセンサ計測当量比の偏差Ｅｒｒを算出し、空燃比補正量算出部Ｍ４で、この偏差ＥｒｒからＰＩＤ制御により空燃比補正値Ｃｆｂを算出することで、空燃比応答モデルの誤差に起因する誤フィードバックを回避し、排気エミッションを低減する。【選択図】　　図３
2004036465.tif 000002
【特許請求の範囲】
【請求項１】
エンジン入口の当量比からエンジン出口の当量比を線形モデルで表現した空燃比応答モデルに、応答性の異なる２つのモデルを設定し、各モデルから得られるエンジン出口の当量比の大小関係により、エンジン出口の当量比の目標値に対する最大値と最小値とを算出する目標当量比算出手段と、
上記最大値と上記最小値とによる制御範囲に対し、空燃比センサで計測したエンジン出口の当量比の偏差を算出する偏差算出手段と、
上記偏差の比例積分微分制御により、エンジン入口の当量比に対応する燃料噴射量をフィードバック補正するための空燃比補正値を算出する空燃比補正値算出手段と、
上記空燃比補正値により燃料噴射量を補正し、エンジンに供給する最終的な燃料噴射量を設定する燃料噴射量設定手段とを備えたことを特徴とするエンジンの空燃比制御装置。
【請求項２】
上記偏差の積分値に基づいて上記空燃比補正値を学習制御する学習手段を備えたことを特徴とする請求項１記載のエンジンの空燃比制御装置。
【請求項３】
上記空燃比補正値算出手段は、
キャニスタパージの実施条件が成立したとき、上記偏差の積分値を保存し、キャニスタパージの実施条件が解除されたとき、設定時間が経過するまで上記偏差の積分値をキャニスタパージ実施条件成立時に保存した値とすることを特徴とする請求項１又は２記載のエンジンの空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、空燃比応答モデルの誤差に起因する誤フィードバックを回避するエンジンの空燃比制御装置に関する。
【０００２】
【従来の技術】
一般に、エンジンの燃料噴射量に対応するエンジン入口の空燃比とセンサで計測したエンジン出口の空燃比との間には応答遅れが存在する。このため、空燃比フィードバック制御においては、目標空燃比が変化する場合、その応答遅れをモデル化し、エンジン入口の目標空燃比に応答遅れを考慮した値を、制御目標値として用いる技術が採用されることが多い。
【０００３】
例えば、特開平６−２１３０３９号公報には、目標空燃比を無駄時間による遅延処理と一次遅れによるなまし処理とを施して補正し、補正した目標空燃比と空燃比センサで計測した実空燃比との偏差に基づいてフィードバック制御を行う技術が開示されている。
【０００４】
【発明が解決しようとする課題】
一般に、空燃比応答モデルを扱う場合には、線形モデルとして実験等によりモデルのパラメータを設定している。しかしながら、実際の空燃比応答は非線形であり、また、同じ条件でもばらつきがあることから、線形化した空燃比応答モデルには、誤差が存在する。
【０００５】
このため、空燃比応答が過渡的な状態にある場合、線形化した空燃比応答モデルによる制御目標値を用いてフィードバック制御を行うと、モデルの誤差による誤フィードバックが生じて制御性が却って悪化し、排気エミッションが増大する虞がある。
【０００６】
本発明は上記事情に鑑みてなされたもので、空燃比応答モデルの誤差に起因する誤フィードバックを回避し、排気エミッションを低減することのできるエンジンの空燃比制御装置を提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１記載の発明は、エンジン入口の当量比からエンジン出口の当量比を線形モデルで表現した空燃比応答モデルに、応答性の異なる２つのモデルを設定し、各モデルから得られるエンジン出口の当量比の大小関係により、エンジン出口の当量比の目標値に対する最大値と最小値とを算出する目標当量比算出手段と、上記最大値と上記最小値とによる制御範囲に対し、空燃比センサで計測したエンジン出口の当量比の偏差を算出する偏差算出手段と、上記偏差の比例積分微分制御により、エンジン入口の当量比に対応する燃料噴射量をフィードバック補正するための空燃比補正値を算出する空燃比補正値算出手段と、上記空燃比補正値により燃料噴射量を補正し、エンジンに供給する最終的な燃料噴射量を設定する燃料噴射量設定手段とを備えたことを特徴とする。
【０００８】
請求項２記載の発明は、請求項１記載の発明において、上記偏差の積分値に基づいて上記空燃比補正値を学習制御する学習手段を備えたことを特徴とする。
【０００９】
請求項３記載の発明は、請求項１又は２記載の発明において、上記空燃比補正値算出手段は、キャニスタパージの実施条件が成立したとき、上記偏差の積分値を保存し、キャニスタパージの実施条件が解除されたとき、設定時間が経過するまで上記偏差の積分値をキャニスタパージ実施条件成立時に保存した値とすることを特徴とする。
【００１０】
すなわち、請求項１記載の発明は、エンジン入口の当量比からエンジン出口の当量比を線形モデルで表現した空燃比応答モデルに応答性の異なる２つのモデルを設定し、各モデルから得られるエンジン出口の当量比の大小関係により、エンジン出口の当量比の目標値に対する最大値と最小値とを算出する。そして、この最大値と最小値とによる制御範囲に対し、空燃比センサで計測したエンジン出口の当量比の偏差を算出し、この偏差の比例積分微分制御により、エンジン入口の当量比に対応する燃料噴射量をフィードバック補正するための空燃比補正値を算出して燃料噴射量を補正し、エンジンに供給する最終的な燃料噴射量を設定する。
【００１１】
その際、請求項２記載の発明のように、偏差の積分値に基づいて空燃比補正値を学習制御することが望ましく、この学習制御により、フィードバックの負担を低減し、制御精度を向上させることができる。
【００１２】
また、請求項３記載の発明のように、キャニスタパージの実施条件が成立したとき、偏差の積分値を保存し、キャニスタパージ実施条件が解除されたとき、設定時間が経過するまで偏差の積分値をキャニスタパージ実施条件成立時に保存した値とすることが望ましく、キャニスタパージ条件の解除時に、空燃比補正値をフィードフォワード的に算出して的確な補正を行うことができる。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。図１〜図１０は本発明の実施の一形態に係わり、図１はエンジン制御系の全体図、図２は電子制御系の回路構成図、図３は空燃比制御系の機能ブロック図、図４及び図５は空燃比補正値算出ルーチンのフローチャート、図６はキャニスタパージ実施前後の偏差の累積和の変化を示すタイムチャート、図７は学習値更新ルーチンのフローチャート、図８は学習値マップの説明図、図９は燃料噴射制御ルーチンのフローチャート、図１０は空燃比応答モデル値に対する制御幅を示すタイムチャートである。
【００１４】
先ず、図１に基づいてエンジンの全体構成について説明する。同図において、符号１はエンジンであり、本形態においては、シリンダブロック１ａがクランクシャフト１ｂを中心として両側のバンク（図の右側が左バンク、左側が右バンク）に２分割される水平対向型４気筒エンジンを示す。エンジン１のシリンダブロック１ａの左右両バンクには、シリンダヘッド２がそれぞれ設けられ、各シリンダヘッド２に、吸気ポート２ａと排気ポート２ｂが形成されている。
【００１５】
吸気ポート２ａには、インテークマニホルド３が連通され、このインテークマニホルド３に各気筒の吸気通路が集合するエアチャンバ４を介してスロットルチャンバ５が連通され、スロットルチャンバ５の上流側に吸気管６を介してエアクリーナ７が取り付けられ、エアインテークチャンバ８に連通されている。また、排気ポート２ｂには、エキゾーストマニホルド９を介して排気管１０が連通され、この排気管１０に触媒コンバータ１１が介装されてマフラ１２に連通されている。
【００１６】
また、スロットルチャンバ５には、電動モータ等からなるスロットルアクチュエータ１３によって開閉駆動されるスロットル弁５ａが設けられている。また、インテークマニホルド３の各気筒の吸気ポート２ａの直上流側にインジェクタ１５が配設され、燃料供給路１６を介して燃料タンク１７に連通されている。燃料タンク１７には、インタンク式の燃料ポンプ１８が設けられ、この燃料ポンプ１８からの燃料が、燃料供給路１６に介装された燃料フィルタ１９を経てインジェクタ１５及びプレッシャレギュレータ２０に圧送され、このプレッシャレギュレータ２０から燃料タンク１７にリターンされて、インジェクタ１５への燃料圧力が所定の圧力に調圧される。
【００１７】
燃料タンク１７の上部からは、燃料タンク１７内で発生した蒸発燃料を放出するための放出通路２１が延出され、２ウェイバルブ２２を介して活性炭等からなる吸着部を備えたキャニスタ２３の上部に連通されている。キャニスタ２３は、下部に大気に連通する新気導入口が設けられ、この新気導入口からの新気と吸着部に貯えられた蒸発燃料ガスとの混合気（エバポガス）を導くパージ通路２４が上部から延出されている。
【００１８】
パージ通路２４は、その中途に、エバポガスのパージ量を調整するためのキャニスタパージ制御弁２５が介装され、スロットル弁５ａ下流側でエアチャンバ４の右バンク側の部位に接続されて開口されている。更に、シリンダヘッド２の各気筒毎に、先端の放電電極を燃焼室１ｃに露呈する点火プラグ２６が取り付けられ、この点火プラグ２６に、イグナイタ２８を内蔵するイグニッションコイル２７が接続されている。
【００１９】
次に、エンジン運転状態を検出するためのセンサ類について説明する。スロットルチャンバ５に設けられたスロットル弁５ａに、スロットル開度センサ３０が連設され、エアチャンバ４には、スロットル弁５ａ下流の吸気管圧力を絶対圧で検出する吸気管圧力センサ３１が取付けられている。また、エンジン１のシリンダブロック１ａにノックセンサ３２が取り付けられると共に、シリンダブロック１ａの左右バンクを連通する冷却水通路３３に冷却水温センサ３４が臨まされ、更に、触媒コンバータ１１の上流に広域空燃比センサ３５が配設されている。
【００２０】
また、エンジン１のクランクシャフト１ｂに軸着するクランクロータ３６の外周に、クランク角センサ３７が対設され、更に、クランクシャフト１ｂに対して１／２回転するカムシャフト１ｄに連設するカムロータ３８に、気筒判別センサ３９が対設されている。クランク角センサ３７から出力されるクランクパルス及び気筒判別センサ３９から出力される気筒判別パルスは、図２に示す電子制御装置５０にて処理される。すなわち、クランクパルスの入力間隔時間に基づいてエンジン回転数Ｎｅが算出され、また、各気筒の燃焼行程順（例えば、＃１気筒→＃３気筒→＃２気筒→＃４気筒）と、気筒判別センサ３９からの気筒判別パルスをカウンタによって計数した値とのパターンに基づいて、燃焼行程気筒、燃料噴射対象気筒や点火対象気筒の気筒判別がなされる。
【００２１】
次に、エンジン１を制御する電子制御装置（ＥＣＵ）５０について、図２に基づいて説明する。ＥＣＵ５０は、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、バックアップＲＡＭ５４、カウンタ・タイマ群５５、及びＩ／Ｏインターフェース５６がバスラインを介して互いに接続されるマイクロコンピュータを中心として構成され、各部に安定化電源を供給する定電圧回路５７、Ｉ／Ｏインターフェース５６に接続される駆動回路５８及びＡ／Ｄ変換器５９等の周辺回路が内蔵されている。
【００２２】
尚、カウンタ・タイマ群５５は、フリーランカウンタ、気筒判別センサ信号（気筒判別パルス）の入力計数用カウンタ等の各種カウンタ、燃料噴射用タイマ、点火用タイマ、定期割り込みを発生させるための定期割り込み用タイマ、クランク角センサ信号（クランクパルス）の入力間隔計時用タイマ、及びシステム異常監視用のウオッチドッグタイマ等の各種タイマを便宜上総称するものであり、その他、各種のソフトウエアカウンタ・タイマが用いられる。
【００２３】
定電圧回路５７は、２回路のリレー接点を有する電源リレー６０の第１のリレー接点を介してバッテリ６１に接続されると共に、直接、バッテリ６１に接続されており、イグニッションスイッチ６２がＯＮされて電源リレー６０の接点が閉になるとＥＣＵ５０内の各部へ電源を供給する一方、イグニッションスイッチ６２のＯＮ，ＯＦＦに拘らず、常時、バックアップＲＡＭ５４にバックアップ用の電源を供給する。尚、電源リレー６０の第２のリレー接点には、バッテリ６１から各アクチュエータに電源を供給するための電源線が接続されている。
【００２４】
Ｉ／Ｏインターフェース５６の入力ポートには、イグニッションスイッチ６２、ノックセンサ３２、クランク角センサ３７、気筒判別センサ３９、及び、車速センサ４０等が接続されており、更に、Ａ／Ｄ変換器５９を介して、スロットル開度センサ３０、図示しないアクセルペダルの踏み込み位置（アクセルポジション）を検出するアクセルポジションセンサ４１、吸気管圧力センサ３１、冷却水温センサ３４、及び広域空燃比センサ３５等が接続されると共に、バッテリ電圧ＶＢが入力されてモニタされる。一方、Ｉ／Ｏインターフェース５６の出力ポートには、電源リレー６０のリレーコイル、スロットルアクチュエータ１３、インジェクタ１５、及び、キャニスタパージ制御弁２５等が駆動回路５８を介して接続されると共に、イグナイタ２８が接続されている。
【００２５】
ＥＣＵ５０では、ＲＯＭ５２に記憶されている制御プログラムに従って、Ｉ／Ｏインターフェース５６を介して入力されるセンサ・スイッチ類からの検出信号及びバッテリ電圧等をＣＰＵ５１で処理し、ＲＡＭ５３に格納される各種データ、及びバックアップＲＡＭ５４に格納されている各種学習値データ、ＲＯＭ５２に記憶されている固定データ等に基づき、燃料噴射量や点火時期等を演算し、燃料噴射制御、点火時期制御、キャニスタパージ制御等のエンジン制御を行う。
【００２６】
ここで、ＥＣＵ５０による空燃比フィードバック制御は、応答遅れを考慮して空燃比目標値を設定する際に、線形化した空燃比応答モデルから得られる空燃比目標値に高応答を想定した目標値と低応答を想定した目標値との２つの目標値を設定して幅を持たせ、空燃比応答モデルの誤差に起因する誤フィードバックを回避し、制御精度の向上を図るようにしている。
【００２７】
図３は、ＥＣＵ５０による空燃比フィードバック制御の機能を示し、目標当量比算出部Ｍ１、モデルパラメータ算出部Ｍ２、偏差算出部Ｍ３、空燃比補正値算出部Ｍ４、燃料噴射量設定部Ｍ６を基本構成として、本発明に係わる目標当量比算出手段、偏差算出手段、空燃比補正値算出手段、燃料噴射量設定手段の機能を実現し、学習手段としての学習制御部Ｍ５を付加している。
【００２８】
空燃比応答モデルは、制御対象である燃料噴射量に対応するエンジン入口当量比ｕからエンジン出口当量比（排気当量比）φを１次又は２次の線形微分方程式で表現するものであり、本形態においては、以下の（１）式に示すように、１次の線形微分方程式を用いた空燃比応答モデルを、運転領域毎の係数（微分方程式のパラメータ）ａ，Ｌ（ａ：定数（０＜ａ）、Ｌ：無駄時間）を用いて演算周期ｋ毎に離散化する。
φ（ｋ）＝ａ×φ（ｋ−１）＋（１−ａ）×ｕ（ｋ−Ｌ）　…（１）
【００２９】
目標当量比算出部Ｍ１は、（１）式の空燃比応答モデルには誤差が存在することから、実際の空燃比（当量比）応答の誤差範囲を考慮し、高応答と低応答とを想定した２つのモデル、すなわち、以下の（２）式に示す高応答モデルと（３）式に示す低応答モデルとを設定する。各モデルのパラメータａ１，ａ２，Ｌ１，Ｌ２は、ａ１＜ａ、Ｌ１＜Ｌ、ａ２＞ａ、Ｌ２＞Ｌであり、モデルパラメータ算出部Ｍ２において、エンジン回転数Ｎｅとエンジン負荷（例えば、吸気管圧力Ｐｍ）とによって定まる運転領域毎に算出される。
φ（ｋ）＝ａ１×φ（ｋ−１）＋（１−ａ１）×ｕ（ｋ−Ｌ１）　…（２）
φ（ｋ）＝ａ２×φ（ｋ−１）＋（１−ａ２）×ｕ（ｋ−Ｌ２）　…（３）
【００３０】
更に、上述の（２）式の高応答モデルに、目標エンジン入口当量比Ｒｅｇを適用し、以下の（４）式に示すように、目標排気当量比の高応答モデル値である目標排気当量比高応答値Ｒｈｉを設定すると共に、（３）式の低応答モデルに、目標エンジン入口当量比Ｒｅｇを適用し、以下の（５）式に示すように、目標排気当量比の低応答モデル値である目標排気当量比低応答値Ｒｌｗを設定する。
Ｒｈｉ（ｋ）＝ａ１×Ｒｈｉ（ｋ−１）＋（１−ａ１）×Ｒｅｇ（ｋ−Ｌ１）　…（４）
Ｒｌｗ（ｋ）＝ａ２×Ｒｌｗ（ｋ−１）＋（１−ａ２）×Ｒｅｇ（ｋ−Ｌ２）　…（５）
【００３１】
そして、目標排気当量比高応答値Ｒｈｉ及び目標排気当量比低応答値Ｒｌｗのうち、以下の（６），（７）式に示すように、大きい方を目標排気当量比最大値Ｒｍａｘ、小さい方を目標排気当量比最小値Ｒｍｉｎとする。
Ｒｈｉ≧Ｒｌｗのとき　Ｒｍａｘ＝Ｒｈｉ、Ｒｍｉｎ＝Ｒｌｗ　…（６）
Ｒｈｉ＜Ｒｌｗのとき　Ｒｍａｘ＝Ｒｌｗ、Ｒｍｉｎ＝Ｒｈｉ　…（７）
【００３２】
偏差算出部Ｍ３は、目標排気当量比最大値Ｒｍａｘと目標排気当量比最小値Ｒｍｉｎとによる制御範囲に対し、広域空燃比センサ３５の計測データに基づく排気当量比（センサ計測当量比）Ｆａｉの偏差Ｅｒｒを、以下に示す条件に応じ、（８）〜（１０）式により算出する。
Ｆａｉ＞Ｒｍａｘのとき　　　　　　Ｅｒｒ＝Ｒｍａｘ−Ｆａｉ…（８）
Ｒｍｉｎ≦Ｆａｉ≦Ｒｍａｘのとき　Ｅｒｒ＝０　　　　　　　…（９）
Ｆａｉ＜Ｒｍｉｎのとき　　　　　　Ｅｒｒ＝Ｒｍｉｎ−Ｆａｉ…（１０）
【００３３】
空燃比補正値算出部Ｍ４は、偏差ＥｒｒからＰＩＤ制御により空燃比フィードバック制御の補正値（空燃比補正値）Ｃｆｂを算出する。すなわち、偏差Ｅｒｒの累積和（積分値）Ｉｔｇと時間差分値（微分値）Ｄｉｖとを、（１１），（１２）式により算出し、（１３）式に示すように、比例定数Ｋｐと積分定数Ｋｉと微分定数Ｋｄとを用いて空燃比補正値Ｃｆｂを算出する。
Ｉｔｇ＝Ｅｒｒ＋Ｉｔｇ　　　　　　　　　　　　　　…（１１）
Ｄｉｖ＝Ｅｒｒ（ｋ）＋Ｅｒｒ（ｋ−１）　　　　　　　　　　…（１２）
Ｃｆｂ＝Ｋｐ×Ｅｒｒ＋Ｋｉ×Ｉｔｇ＋Ｋｄ×Ｄｉｖ　…（１３）
【００３４】
学習制御部Ｍ５は、学習条件成立時、以下の（１４）〜（１７）式に示すように、偏差の累積和Ｉｔｇの符号に応じて学習値ＬＦを設定値ＤＬＦにより更新すると共に、偏差の累積和Ｉｔｇを学習値の更新分だけ変更する。
Ｉｔｇ＞０のとき
ＬＦ＝ＬＦ＋ＤＬＦ　　　…（１４）
Ｉｔｇ＝Ｉｔｇ−ＤＬＦ　…（１５）
Ｉｔｇ＜０のとき
ＬＦ＝ＬＦ−ＤＬＦ　　　…（１６）
Ｉｔｇ＝Ｉｔｇ＋ＤＬＦ　…（１７）
【００３５】
燃料噴射量設定部Ｍ６は、１行程当たりの吸入空気量に対応する基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐを、以下の（１８）式に示すように、空燃比補正値Ｃｆｂに学習値ＬＦを加算した空燃比補正量Ｃａｂｆによりフィードバック補正し、更に運転状態に応じた各種補正やバッテリ電圧による補正を加えて最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを設定する。
Ｃａｂｆ＝Ｃｆｂ＋ＬＦ　　　　　　　　　　　　　　…（１８）
【００３６】
以上の処理は、具体的には、図４及び図５に示す空燃比補正値算出ルーチン、図７に示す学習値更新ルーチン、図９に示す燃料噴射制御ルーチンによって所定周期毎に実行される。以下、各ルーチンについて説明する。
【００３７】
先ず、図４及び図５の空燃比補正値算出ルーチンについて説明する。このルーチンでは、先ず、ステップＳ１０１で、現在、空燃比フィードバック制御中か否かを調べる。そして、フィードバック制御中でない場合には、そのままルーチンを抜け、フィードバック制御中の場合、ステップＳ１０１からステップＳ１０２以降へ進み、ステップＳ１０２，Ｓ１０３で、エンジン回転数Ｎｅと吸気管圧力Ｐｍとに基づいて、高応答モデルパラメータａ１，Ｌ１を、それぞれ設定し、更に、ステップＳ１０４，Ｓ１０５で、エンジン回転数Ｎｅと吸気管圧力Ｐｍとに基づいて、低応答モデルパラメータａ２，Ｌ２を、それぞれ設定する。
【００３８】
各モデルパラメータａ１，Ｌ１，ａ２，Ｌ２は、予めシミュレーション或いはシミュレーションに実験を併用して作成したテーブルｆ１，ｇ１，ｆ２，ｇ２を補間計算付きで参照することで求め、空燃比応答モデルに運転領域毎の係数として与える（ａ１←ｆ１（Ｎｅ，Ｐｍ）、Ｌ１←ｇ１（Ｎｅ，Ｐｍ）、ａ２←ｆ２（Ｎｅ，Ｐｍ）、Ｌ２←ｇ２（Ｎｅ，Ｐｍ））。
【００３９】
次に、ステップＳ１０６へ進み、目標エンジン入口当量比Ｒｅｇを高応答モデルに適用した前述の（４）式に従って、目標排気当量比高応答値Ｒｈｉを設定し（Ｒｈｉ（ｋ）←ａ１×Ｒｈｉ（ｋ−１）＋（１−ａ１）×Ｒｅｇ（ｋ−Ｌ１））、更に、ステップＳ１０７で、目標エンジン入口当量比Ｒｅｇを低応答モデルに適用した前述の（５）式に従って、目標排気当量比低応答値Ｒｌｗを設定する（Ｒｌｗ（ｋ）←ａ２×Ｒｌｗ（ｋ−１）＋（１−ａ２）×Ｒｅｇ（ｋ−Ｌ２））。
【００４０】
その後、ステップＳ１０８へ進んで、目標排気当量比高応答値Ｒｈｉと目標排気当量比低応答値Ｒｌｗとの大小関係を調べる。そして、Ｒｈｉ≧Ｒｌｗの場合、ステップＳ１０８からステップＳ１０９へ進んで、目標排気当量比高応答値Ｒｈｉを目標排気当量比最大値Ｒｍａｘとし（Ｒｍａｘ←Ｒｈｉ）、ステップＳ１１０で、目標排気当量比低応答値Ｒｌｗを目標排気当量比最小値Ｒｍｉｎとして（Ｒｍｉｎ←Ｒｌｗ）、ステップＳ１１３へ進む（（６）式参照）。
【００４１】
また、ステップＳ１０８において、Ｒｈｉ＜Ｒｌｗの場合には、ステップＳ１０８からステップＳ１１１へ進み、目標排気当量比低応答値Ｒｌｗを目標排気当量比最大値Ｒｍａｘとし（Ｒｍａｘ←Ｒｌｗ）、ステップＳ１１２で、目標排気当量比高応答値Ｒｈｉを目標排気当量比最小値Ｒｍｉｎとして（Ｒｍｉｎ←Ｒｈｉ）、ステップＳ１１３へ進む（（７）式参照）。
【００４２】
ステップＳ１１３では、広域空燃比センサ３５からの出力に基づくセンサ計測当量比Ｆａｉと目標排気当量比最大値Ｒｍａｘとの大小関係を調べる。そして、Ｆａｉ＞Ｒｍａｘの場合には、ステップＳ１１３からステップＳ１１４へ進んで、目標排気当量比最大値Ｒｍａｘからセンサ計測当量比Ｆａｉを減算した値を偏差Ｅｒｒとする（Ｅｒｒ←Ｒｍａｘ−Ｆａｉ：（８）式参照）。
【００４３】
また、Ｆａｉ≦Ｒｍａｘの場合には、ステップＳ１１３からステップＳ１１５へ進み、センサ計測当量比Ｆａｉと目標排気当量比最小値Ｒｍｉｎとの大小関係を調べる。そして、Ｆａｉ≧Ｒｍｉｎの場合、すなわち、Ｒｍｉｎ≦Ｆａｉ≦Ｒｍａｘでセンサ計測当量比Ｆａｉが目標排気当量比最小値Ｒｍｉｎと目標排気当量比最大値Ｒｍａｘとの範囲内にある場合には、ステップＳ１１６で偏差Ｅｒｒを０とし（Ｅｒｒ←０；（９）式参照）、Ｆａｉ＜Ｒｍｉｎの場合、ステップＳ１１７で目標排気当量比最小値Ｒｍｉｎからセンサ計測当量比Ｆａｉを減算した値を偏差Ｅｒｒとする（Ｅｒｒ←Ｒｍｉｎ−Ｆａｉ：（１０）式参照）。
【００４４】
以上のステップＳ１１３〜Ｓ１１７の処理によって偏差Ｅｒｒを算出した後、ステップＳ１１８へ進んで、偏差Ｅｒｒに前回までの累積和Ｉｔｇを加算して今回の偏差の累積和Ｉｔｇを算出し（Ｉｔｇ←Ｅｒｒ＋Ｉｔｇ；（１１）式参照）、更に、ステップＳ１１９で、今回の偏差Ｅｒｒ（ｋ）と前回の偏差Ｅｒｒ（ｋ−１）との時間差分値Ｄｉｖを算出する（Ｄｉｖ←Ｅｒｒ（ｋ）＋Ｅｒｒ（ｋ−１）；（１２）式参照）。
【００４５】
そして、ステップＳ１２０で、偏差Ｅｒｒに比例定数Ｋｐを乗算した比例項と、偏差の累積和Ｉｔｇに積分定数Ｋｉを乗算した積分項と、偏差の時間差分値Ｄｉｖに微分定数Ｋｄを乗算した微分項とを加算し、空燃比補正値Ｃｆｂを算出してルーチンを抜ける（Ｃｆｂ←Ｋｐ×Ｅｒｒ＋Ｋｉ×Ｉｔｇ＋Ｋｄ×Ｄｉｖ；（１３）式参照）。尚、比例定数Ｋｐ、積分定数Ｋｉ、微分定数Ｋｄは、エンジン回転数Ｎｅとエンジン負荷（例えば、吸気管圧力Ｐｍ）とによって定まる運転領域毎に、予めシミュレーション或いは実験等によりそれぞれの最適値を求めてテーブルにストアしておき、このテーブルを補間計算付きで参照して運転領域毎に求める。
【００４６】
この場合、キャニスタパージの実施条件が成立したときには、偏差の累積和Ｉｔｇを、キャニスタパージ実施条件成立前の値Ｉｔｇｃとして保存し、キャニスタパージ条件が解除されたとき、条件が変化した時点からディレー時間ＤＴＦＢＣが経過するまでは、偏差の累積和Ｉｔｇをキャニスタパージ実施条件成立時の値Ｉｔｇｃとすることが望ましい。これにより、図６に示すように、キャニスタパージ条件の解除時に空燃比補正値Ｃｆｂをフィードフォワード的に算出して的確な補正を行なうことができ、より制御性を向上することができる。
【００４７】
次に、図７の学習値更新ルーチンについて説明する。このルーチンでは、先ず、ステップＳ２０１で、学習条件非成立時或いは学習値更新時に０にクリアされる学習用カウンタＬＣＮＴの値を参照する。そして、ＬＣＮＴ≠０の場合にはステップＳ２０３へ進んで学習用カウンタＬＣＮＴをカウントアップし（ＬＣＮＴ←ＬＣＮＴ＋１）、ＬＣＮＴ＝０の場合、ステップＳ２０２で、現在のエンジン回転数Ｎｅ、吸気管圧力Ｐｍを、それぞれ、エンジン回転数初期値Ｎｅｉ、吸気管圧力初期値Ｐｍｉとし（Ｎｅｉ←Ｎｅ、Ｐｍｉ←Ｐｍ）、ステップＳ２０３で学習用カウンタＬＣＮＴをカウントアップする。
【００４８】
次に、ステップＳ２０４〜Ｓ２０８で、それぞれ、以下の（ａ）〜（ｅ）の条件が成立するか否かを調べる。
（ａ）│Ｎｅ−Ｎｅｉ│＞設定値ＤＮｅ
（ｂ）│Ｐｍ−Ｐｍｉ│＞設定値ＤＰｍ
（ｃ）│Ｉｔｇ│≦設定値ＤＦｄ
（ｄ）フィードバック禁止条件
（ｅ）キャニスタパージ条件
【００４９】
その結果、（ａ）〜（ｅ）の条件のいずれか一つでも成立する場合には、学習条件不成立として該当するステップからステップＳ２１７へ分岐し、学習用カウンタＬＣＮＴをクリアして（ＬＣＮＴ←０）ルーチンを抜ける。また、（ａ）〜（ｅ）の条件が全て成立しない場合、すなわちエンジン定常運転時には、ステップＳ２０９で、学習用カウンタＬＣＮＴが設定値ＴＣに達したか否かを調べる。そして、ＬＣＮＴ≠ＴＣの場合には、ルーチンを抜け、ＬＣＮＴ＝ＴＣの場合、学習条件成立としてステップＳ２１０以降へ進み、偏差の累積和Ｉｔｇの値の正負に応じ、図８に示す学習値マップのエンジン回転数Ｎｅと吸気管圧力Ｐｍとによって決定される運転領毎に、学習値の更新を行なう。
【００５０】
すなわち、ステップＳ２１０で、バックアップＲＡＭ５４に格納されている学習マップからエンジン回転数Ｎｅと吸気管圧力Ｐｍとによって決定される現在の運転領域の学習値ＬＦを読込み、ステップＳ２１１で、偏差の累積和Ｉｔｇが０を越えているか否かを調べる。そして、Ｉｔｇ＞０の場合、ステップＳ２１２で学習値ＬＦに設定値ＤＬＦを加算して学習テーブルの該当領域の値を更新し（ＬＦ←ＬＦ＋ＤＬＦ；（１４）式参照）、ステップＳ２１３で偏差の累積和Ｉｔｇを学習分だけ減少させ（Ｉｔｇ←Ｉｔｇ−ＤＬＦ；（１５）式参照）、ステップＳ２１６で学習用カウンタＬＣＮＴをクリアしてルーチンを抜ける。
【００５１】
また、ステップＳ２１１でＩｔｇ≦０の場合には、ステップＳ２１４で学習値ＬＦから設定値ＤＬＦを減算して学習テーブルの該当領域の値を更新し（ＬＦ←ＬＦ−ＤＬＦ；（１６）式参照）、ステップＳ２１５で偏差の累積和Ｉｔｇを学習分だけ増加させ（Ｉｔｇ←Ｉｔｇ＋ＤＬＦ；（１７）式参照）、ステップＳ２１６で学習用カウンタＬＣＮＴをクリアしてルーチンを抜ける。
【００５２】
以上の空燃比補正値Ｃｆｂ及び学習値ＬＦは、図９の燃料噴射制御ルーチンにおいて参照され、インジェクタ１５に対する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉが設定される。
【００５３】
この燃料噴射制御ルーチンでは、最初のステップＳ３０１で、１行程当たりの吸入空気量に対応する基本燃料噴射量を定める基本燃料噴射パルス幅Ｔｐを設定する。本形態のエンジン１は、吸入空気量センサを用いず、エンジン回転数と吸気管圧力とから吸入空気量を推定する方式のエンジンであるため、クランク角センサ３７からの信号に基づくエンジン回転数Ｎｅと吸気管圧力センサ３１からの信号に基づく吸気管圧力Ｐｍとをパラメータとするテーブルを補間計算付きで参照し、基本燃料噴射パルス幅Ｔｐを設定する（Ｔｐ←ＴＢＬ（Ｎｅ，Ｐｍ））。尚、吸入空気量センサによって直接計測した吸入空気量に基づいて燃料噴射量を設定する方式のエンジンでは、計測空気量Ｑをエンジン回転数Ｎｅで割算した値にインジェクタ特性定数Ｋを乗算して基本燃料噴射パルス幅Ｔｐを設定する（Ｔｐ←Ｋ×Ｑ／Ｎｅ）。
【００５４】
次に、ステップＳ３０２へ進み、先に算出された空燃比補正値Ｃｆｂを読出し、この空燃比補正値Ｃｆｂに学習値マップの該当領域から読出した学習値ＬＦを加算して空燃比補正量Ｃａｂｆとする（Ｃａｂｆ←Ｃｆｂ＋ＬＦ）。その後、ステップＳ３０３へ進み、基本燃料噴射パルス幅Ｔｐに、エンジン運転状態に基づく各種補正係数ＣＯＥＦ、及び空燃比補正量Ｃａｂｆと目標エンジン入口当量比Ｒｅｇとによる演算値（１＋Ｃａｂｆ／Ｒｅｇ）を乗算し、更に、バッテリ電圧に依存するインジェクタ１５の無効噴射時間を補償するための無効パルス幅Ｔｓを加算し、エンジンへ供給する最終的な燃料噴射量を定める燃料噴射パルス幅Ｔｉを設定する（Ｔｉ←Ｔｐ×ＣＯＥＦ×（１＋Ｃａｂｆ／Ｒｅｇ）＋Ｔｓ）。そして、ステップＳ３０４で、該当気筒＃ｉの噴射タイマに燃料噴射パルス幅Ｔｉをセットしてルーチンを抜ける。
【００５５】
このように、本実施の形態においては、高応答モデルから得られる目標排気当量比高応答値Ｒｈｉと、低応答モデルとから得られる目標排気当量比低応答値Ｒｌｗとのうち、大きい方を目標排気当量比最大値Ｒｍａｘ、小さい方を目標排気当量比最小値Ｒｍｉｎとして、目標排気当量比最大値Ｒｍａｘと目標排気当量比最小値Ｒｍｉｎとによる制御範囲に対し、広域空燃比センサ３５によるセンサ計測当量比の偏差Ｅｒｒを算出し、この偏差ＥｒｒからＰＩＤ制御により空燃比補正値Ｃｆｂを算出するので、図１０に示すように、目標エンジン入口当量比Ｒｅｇが変化し、空燃比応答が過渡的な状態になった場合においても、線形モデルである空燃比応答モデル値の誤差を、高応答モデル値と低応答モデル値とによって設定される目標排気当量比最大値Ｒｍａｘ及び目標排気当量比最小値Ｒｍｉｎの制御範囲内に吸収することができる。これにより、誤フィードバックを回避して制御性の悪化を防止し、排気エミッションの低減に寄与することができる。更に、偏差の累積和Ｉｔｇに基づく学習制御を実施することにより、フィードバックの負担を低減し、制御精度を向上することができる。
【００５６】
【発明の効果】
以上説明したように本発明によれば、空燃比応答が過渡的な状態になった場合においても、線形モデルである空燃比応答モデル値の誤差を、応答性の異なる２つのモデルによって設定される制御範囲内に吸収させることができるので、空燃比応答モデルの誤差に起因する誤フィードバックを回避し、排気エミッションを低減することができる。
【図面の簡単な説明】
【図１】エンジン制御系の全体図
【図２】電子制御系の回路構成図
【図３】空燃比制御系の機能ブロック図
【図４】空燃比補正値算出ルーチンのフローチャート
【図５】空燃比補正値算出ルーチンのフローチャート（続き）
【図６】キャニスタパージ実施前後の偏差の累積和の変化を示すタイムチャート
【図７】学習値更新ルーチンのフローチャート
【図８】学習値マップの説明図
【図９】燃料噴射制御ルーチンのフローチャート
【図１０】空燃比応答モデル値に対する制御幅を示すタイムチャート
【符号の説明】
１　エンジン
３５　広域空燃比センサ
５０　電子制御装置（目標当量比算出手段、偏差算出手段、空燃比補正値算出手段、学習手段、燃料噴射量設定手段）
ｕ　エンジン入口当量比
φ　エンジン出口当量比
Ｅｒｒ　偏差
Ｆａｉ　センサ計測当量比
Ｒｍａｘ　目標排気当量比最大値
Ｒｍｉｎ　目標排気当量比最小値
Ｃｆｂ　空燃比補正値
ＬＦ　学習値
Ｔｉ　燃料噴射パルス幅（最終的な燃料噴射量）
【図１】
2004036465.tif 000003
【図２】
2004036465.tif 000004
【図３】
2004036465.tif 000005
【図４】
2004036465.tif 000006
【図５】
2004036465.tif 000007
【図６】
2004036465.tif 000008
【図７】
2004036465.tif 000009
【図８】
2004036465.tif 000010
【図９】
2004036465.tif 000011
【図１０】
2004036465.tif 000012