JP4770589B2 - 内燃機関の空燃比制御装置 - Google Patents

内燃機関の空燃比制御装置 Download PDF

Info

Publication number
JP4770589B2
JP4770589B2 JP2006144375A JP2006144375A JP4770589B2 JP 4770589 B2 JP4770589 B2 JP 4770589B2 JP 2006144375 A JP2006144375 A JP 2006144375A JP 2006144375 A JP2006144375 A JP 2006144375A JP 4770589 B2 JP4770589 B2 JP 4770589B2
Authority
JP
Japan
Prior art keywords
value
air
fuel ratio
guard
deviation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006144375A
Other languages
English (en)
Other versions
JP2007315249A (ja
Inventor
直人 加藤
純一 加古
俊太郎 岡崎
孝彦 藤原
徳久 中川
大河 萩本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2006144375A priority Critical patent/JP4770589B2/ja
Publication of JP2007315249A publication Critical patent/JP2007315249A/ja
Application granted granted Critical
Publication of JP4770589B2 publication Critical patent/JP4770589B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Exhaust Gas After Treatment (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Description

本発明は、排気通路に配設された触媒の少なくとも下流側に空燃比センサを備えた内燃機関に適用され、空燃比センサの出力値に基づいて触媒に流入するガスの空燃比を制御する内燃機関の空燃比制御装置に関する。以下、「触媒に流入するガスの空燃比」を、単に「空燃比」と称呼し、「内燃機関」を、単に「機関」と称呼することもある。
従来より、この種の空燃比制御装置として、例えば、特許文献1に開示されたものが知られている。この空燃比制御装置では、排気通路に配設された触媒の上下流に上流側空燃比センサ及び下流側空燃比センサがそれぞれ配設されている。下流側空燃比センサの出力値とこの出力値の目標値(目標空燃比に相当する値)との偏差を比例・積分・微分処理(PID処理)してフィードバック補正量が算出される。このフィードバック補正量で上流側空燃比センサの出力値を補正した値に基づいて、空燃比が目標空燃比になるようにインジェクタから噴射される燃料の量がフィードバック制御されるようになっている。
特開2005−113729号公報
一般に、インジェクタから噴射される燃料の量を決定するために使用されるエアフローメータにより計測される吸入空気流量と実際の空気流量との差(エアフローメータのばらつき)、インジェクタに噴射指示される指令燃料噴射量と実際に噴射された燃料の量との差(インジェクタのばらつき)等(以下、これらを「燃料噴射量の誤差」と総称する。)が不可避的に発生する。更には、上流側空燃比センサとして使用されることが多い限界電流式の酸素濃度センサでは、出力値の誤差が発生し易い。
上記フィードバック補正量には、積分項(I項)の値、即ち、上記偏差を積算して更新されていく偏差積分値にフィードバックゲインを乗じた値が含まれている。これにより、上記「燃料噴射量の誤差」や上流側空燃比センサの出力値の誤差が発生していても、上述したフィードバック制御の実行により、「燃料噴射量の誤差」や上流側空燃比センサの出力値の誤差が積分項(偏差積分値に基づく値)により補償され得、この結果、空燃比を目標空燃比に一致・収束させることができる。換言すれば、積分項(或いは、偏差積分値)の値は、「燃料噴射量の誤差」や上流側空燃比センサの出力値の誤差の大きさを表す値となり得る。
特許文献1に記載された装置では、このような性格を有する積分項の学習が実行されるようになっている。即ち、この装置では、所定のタイミングが到来する毎に、積分項の値の定常的な成分(具体的には、積分項の値をローパスフィルタ処理した値)が学習値(積分項の値の定常的な成分を表す値)を更新するための更新値として取得される。その更新値はその時点でバックアップRAM(SRAM)に記憶されている学習値に積算されて学習値が更新される。そして、その更新値の分がその時点での積分項の値から差し引かれる。
このように、所定のタイミングが到来する毎に、積分項の値の定常的な成分が学習値に移し変えられていく。即ち、積分項の値と学習値の和(以下「総和値」と称呼する。)が上記フィードバック補正量における実質的な積分項の値として機能する。換言すれば、特許文献1に記載された装置では、総和値に基づく(総和値を含む)フィードバック補正量に基づいて空燃比がフィードバック制御されるようになっている。
ところで、上述したフィードバック制御実行中において空燃比制御系に異常が発生した場合(例えば、エアフローメータ、インジェクタ、下流側空燃比センサ等に異常が発生した場合)、上記偏差が大きい値に維持され続ける。この結果、上記偏差積分値(従って、積分項、ひいては総和値)が次第に増大していくことでフィードバック補正量が次第に増大し得る。フィードバック補正量が過度に大きくなると、空燃比が可燃領域から逸脱する等の問題が生じ得る。
従って、フィードバック補正量が或る範囲を逸脱しないように空燃比補正に対するガード処理を行う必要がある。ここで、上述したように、総和値を含むフィードバック補正量に基づいて空燃比がフィードバック制御される場合、空燃比補正に対するガード処理をどのように行うかが問題となる。
本発明の目的は、総和値(偏差積分値に基づく値+学習値)に少なくとも基づいて空燃比がフィードバック制御される場合において、空燃比補正に対するガード処理を適切に行うことができる内燃機関の空燃比制御装置を提供することにある。
本発明に係る空燃比制御装置は、触媒と、前記触媒よりも下流の排気通路に配設された下流側空燃比センサと、燃料を噴射する燃料噴射手段とを備えた内燃機関に適用される。
本発明に係る空燃比制御装置は、積分値算出手段と、学習手段と、総和値算出手段と、第1ガード処理実行手段と、空燃比フィードバック制御手段とを備えている。
積分値算出手段は、下流側空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を積算して更新されていく偏差積分値を算出する。ここにおいて、「偏差に相当する値」とは、下流側空燃比センサの出力値と上記目標値との偏差そのもの、下流側空燃比センサの出力値に対応する空燃比と目標空燃比との偏差等である。
学習手段は、偏差積分値に基づく値を用いて前記「偏差積分値に基づく値」の定常的な成分を表す学習値を算出・更新するとともに、前記更新による学習値の変化量に相当する分を前記「偏差積分値に基づく値」から差し引く。ここにおいて、「偏差積分値に基づく値」とは、例えば、偏差積分値そのもの、偏差積分値にフィードバックゲインを乗じて得られる積分項等である。また、学習値(「偏差積分値に基づく値」の定常的な成分を表す値)とは、例えば、「偏差積分値に基づく値」をローパスフィルタ処理(なまし処理)した値である。
この学習手段は、例えば、所定のタイミングが到来する毎に、「偏差積分値に基づく値」の定常的な成分を学習値更新用の更新値として取得し、取得した更新値をその時点での学習値に積算して学習値を更新するとともに、その更新値に相当する分をその時点での「偏差積分値に基づく値」から差し引く。
総和値算出手段は、前記「偏差積分値に基づく値」と前記学習値の和である総和値を算出する。ここにおいて、「総和値」とは、例えば、「偏差積分値に基づく値」として偏差積分値そのものが使用される場合は「偏差積分値と、偏差積分値の定常的な成分を表す学習値の和」であり、「偏差積分値に基づく値」として積分項(偏差積分値とフィードバックゲインの積)が使用される場合は「積分項と、積分項の定常的な成分を表す学習値の和」である。
第1ガード処理実行手段は、前記総和値が第1ガード値を超えた場合に同総和値を同第1ガード値に制限する第1ガード処理を行う。ここにおいて、前記第1ガード値は、例えば、可燃領域に対応する空燃比の範囲、触媒上流の空燃比センサの出力値の誤差等を考慮して決定される。
空燃比フィードバック制御手段は、前記第1ガード処理された総和値に少なくとも基づいて空燃比が前記目標空燃比になるように前記燃料噴射手段から噴射される燃料の量をフィードバック制御する。
このように、総和値(「偏差積分値に基づく値」+学習値)に基づいて空燃比がフィードバック制御される場合において空燃比補正に対するガード処理を行う場合、例えば、「偏差積分値に基づく値」と学習値とにそれぞれ個別にガード値(第1ガード値)を設定する構成も考えられる。しかしながら、この構成では、総和値が最大で第1ガード値の2倍まで達し得ることになり、この結果、なお、空燃比が可燃領域から逸脱する等の問題が生じ得る。
これに対し、上記本発明の空燃比制御装置によれば、総和値そのものに対して第1ガード値が設定される。即ち、空燃比補正を行う際における実質的な「偏差積分値に基づく値」(例えば、実質的な積分項)として機能する総和値そのものに対して直接ガード処理がなされることになる。従って、空燃比補正に対するガード処理を適切に行うことができ、この結果、空燃比が可燃領域から逸脱する等の問題の発生を効果的に抑制することができる。
上記本発明に係る空燃比制御装置においては、前記「偏差積分値に基づく値」が第2ガード値を超えた場合に同「偏差積分値に基づく値」を同第2ガード値に制限する第2ガード処理を行う第2ガード処理実行手段を備え、前記総和値算出手段は、前記総和値として、前記第2ガード処理された「偏差積分値に基づく値」と前記学習値の和を使用するように構成されることが好適である。ここにおいて、前記第2ガード値は、前記第1ガード値と同じ値であることが好ましい。
上述した空燃比制御系の異常(例えば、下流側空燃比センサ等の異常)が発生・継続する場合、総和値が第1ガード値に張り付いた状態に維持され得る。一方、何らかの原因により空燃比制御系に異常が発生したことで総和値が第1ガード値に張り付いたもののその後、同異常が解除される場合を考える。
このような場合、なるべく早期に総和値を第1ガード値未満の適切な値に戻すことが好ましいと考えられる。これは、総和値が第1ガード値に維持されることは、空燃比が目標空燃比とは大きく異なる値に維持されることに繋がり、エミッション抑制の観点から好ましくないこと等に基づく。
ここで、上記のように総和値にはガード処理がなされる一方で、「偏差積分値に基づく値」そのものにはガード処理がなされない場合を考える。この場合、総和値がガード処理により第1ガード値に制限されている間においても「偏差積分値に基づく値」が第1ガード値を超えて際限なく増大し得る。
従って、空燃比制御系の異常が解除されて「偏差積分値に基づく値」が減少を開始しても、「偏差積分値に基づく値」が第1ガード値未満の適切な値に戻るまでには相当の時間が必要となる場合がある。この結果、総和値の第1ガード値未満の適切な値への戻り(以下、単に「総和値の戻り」と称呼することもある。)が遅れる場合が発生し得る。
これに対し、上記構成によれば、総和値(「偏差積分値に基づく値」+学習値)にガード処理がなされることに加えて「偏差積分値に基づく値」にもガード処理がなされる。従って、総和値がガード処理により第1ガード値に制限されている間において「偏差積分値に基づく値」が第1ガード値を超えて際限なく増大し得ない。この結果、空燃比制御系の異常が解除された後における「総和値の戻り」を早くすることができる。
同様に、上記本発明に係る空燃比制御装置においては、前記学習値が第3ガード値を超えた場合に同学習値を同第3ガード値に制限する第3ガード処理を行う第3ガード処理実行手段を備え、前記総和値算出手段は、前記総和値として、前記偏差積分値に基づく値と前記第3ガード処理された学習値の和を使用するように構成されることが好適である。ここにおいて、前記第3ガード値は、前記第1ガード値と同じ値であることが好ましい。
これによれば、総和値(「偏差積分値に基づく値」+学習値)にガード処理がなされることに加えて学習値にもガード処理がなされる。従って、総和値がガード処理により第1ガード値に制限されている間において学習値が第1ガード値を超えて際限なく増大し得ない。この結果、上述した「偏差積分値に基づく値」にもガード処理がなされる場合と同様の理由により、「総和値の戻り」を早くすることができる。
「総和値の戻り」をより一層早くするためには、総和値(「偏差積分値に基づく値」+学習値)に第1ガード処理がなされることに加えて、「偏差積分値に基づく値」と学習値とにそれぞれ個別に第2、第3ガード処理がなされることが好ましい。この場合、前記第1ガード値、前記第2ガード値、及び前記第3ガード値として同じ値が使用されることが好ましい。
上述のように、総和値(「偏差積分値に基づく値」+学習値)に第1ガード処理がなされることに加えて学習値にも第3ガード処理がなされる場合において、前記積分値算出手段は、前記学習値が前記第3ガード値に制限されている場合、前記偏差積分値に基づく値が(増大しながら)前記第1ガード値(或いは、第2ガード値)に近づく方向に対応する前記偏差積分値の更新を行わないように構成されることがより好適である。
これによれば、学習値の更新により学習値が第3ガード値に制限開始された時点から学習値の次の更新タイミングが到来するまでの比較的長い期間に亘って「偏差積分値に基づく値」の(増大しながら)第1ガード値(或いは、第2ガード値)に近づく方向に対応する更新が禁止される。換言すれば、「偏差積分値に基づく値」の(減少しながら)第1ガード値(或いは、第2ガード値)から離れる方向に対応する更新のみが許可される。これにより、「総和値の戻り」を更に一層早くすることができる(詳細は後述する。)。
以下、本発明による内燃機関の空燃比制御装置の実施形態について図面を参照しつつ説明する。
図1は、本発明の実施形態に係る空燃比制御装置を火花点火式多気筒(4気筒)内燃機関10に適用したシステムの概略構成を示している。この内燃機関10は、シリンダブロック、シリンダブロックロワーケース、及びオイルパン等を含むシリンダブロック部20と、シリンダブロック部20の上に固定されるシリンダヘッド部30と、シリンダブロック部20にガソリン混合気を供給するための吸気系統40と、シリンダブロック部20からの排気ガスを外部に放出するための排気系統50とを含んでいる。
シリンダブロック部20は、シリンダ21、ピストン22、コンロッド23、及びクランク軸24を含んでいる。このシリンダブロック部20においては、ピストン22はシリンダ21内を往復動し、ピストン22の往復動がコンロッド23を介してクランク軸24に伝達され、これにより当該クランク軸24が回転するようになっている。シリンダ21とピストン22のヘッドは、シリンダヘッド部30とともに燃焼室25を形成している。
シリンダヘッド部30は、燃焼室25に連通した吸気ポート31、吸気ポート31を開閉する吸気弁32、吸気弁32を駆動するインテークカムシャフトを含むとともに当該インテークカムシャフトの位相角を連続的に変更する可変吸気タイミング装置33、可変吸気タイミング装置33のアクチュエータ33a、燃焼室25に連通した排気ポート34、排気ポート34を開閉する排気弁35、排気弁35を駆動するエキゾーストカムシャフト36、点火プラグ37、点火プラグ37に与える高電圧を発生するイグニッションコイルを含むイグナイタ38、及び燃料を吸気ポート31内に噴射するインジェクタ(燃料噴射手段)39を備えている。
吸気系統40は、吸気ポート31に連通し当該吸気ポート31とともに吸気通路を形成するインテークマニホールドを含む吸気管41、吸気管41の端部に設けられたエアフィルタ42、吸気管41内にあって吸気通路の開口断面積を可変とするスロットル弁43、及びスロットル弁アクチュエータ43aを備えている。ここで、吸気ポート31、及び吸気管41は、吸気通路を構成している。
排気系統50は、排気ポート34に連通したエキゾーストマニホールド51、エキゾーストマニホールド51(実際には、各排気ポート34に連通した各々のエキゾーストマニホールド51が集合した集合部)に接続されたエキゾーストパイプ(排気管)52、エキゾーストパイプ52に配設(介装)された上流側触媒装置53(以下、「第1触媒53」と称呼する。)、及びこの第1触媒53の下流のエキゾーストパイプ52に配設(介装)された下流側触媒装置54(以下、「第2触媒54」と称呼する。)を備えている。排気ポート34、エキゾーストマニホールド51、及びエキゾーストパイプ52は、排気通路を構成している。
一方、このシステムは、エアフローメータ61、スロットルポジションセンサ62、カムポジションセンサ63、クランクポジションセンサ64、水温センサ65、第1触媒53の上流の排気通路(本例では、前記各々のエキゾーストマニホールド51が集合した集合部)に配設された空燃比センサ66(以下、「上流側空燃比センサ66」と称呼する。)、第1触媒53の下流であって第2触媒54の上流の排気通路に配設された空燃比センサ67(以下、「下流側空燃比センサ67」と称呼する。)、及びアクセル開度センサ68を備えている。
エアフローメータ61は、周知の熱線式エアフローメータにより構成されており、吸気管41内を流れる吸入空気の単位時間あたりの質量流量(吸入空気流量Ga)に応じた電圧を出力するようになっている。スロットルポジションセンサ62は、スロットル弁43の開度を検出し、スロットル弁開度TAを表す信号を出力するようになっている。カムポジションセンサ63は、インテークカムシャフトが90°回転する毎に(即ち、クランク軸24が180°回転する毎に)一つのパルスを有する信号(G2信号)を発生するようになっている。クランクポジションセンサ64は、クランク軸24が10°回転する毎に幅狭のパルスを有するとともに当該クランク軸24が360°回転する毎に幅広のパルスを有する信号を出力するようになっている。この信号は、運転速度NEを表す。水温センサ65は、内燃機関10の冷却水の温度を検出し、冷却水温THWを表す信号を出力するようになっている。
上流側空燃比センサ66は、限界電流式の酸素濃度センサであり、図2に示したように、空燃比A/Fに応じた電流を出力し、この電流に応じた電圧である出力値Vabyfsを出力するようになっていて、特に、空燃比が理論空燃比であるときには出力値Vabyfsは上流側目標値Vstoichになる。図2から明らかなように、上流側空燃比センサ66によれば、広範囲にわたる空燃比A/Fを精度良く検出することができる。
下流側空燃比センサ67は、起電力式(濃淡電池式)の酸素濃度センサであり、図3に示したように、理論空燃比近傍において急変する電圧である出力値Voxsを出力するようになっている。より具体的に述べると、下流側空燃比センサ67は、空燃比が理論空燃比よりもリーンのときは略0.1(V)、空燃比が理論空燃比よりもリッチのときは略0.9(V)、及び空燃比が理論空燃比のときは0.5(V)の電圧を出力するようになっている。アクセル開度センサ68は、運転者によって操作されるアクセルペダル81の操作量を検出し、アクセルペダル81の操作量Accpを表す信号を出力するようになっている。
更にこのシステムは、電気制御装置70を備えている。電気制御装置70は、互いにバスで接続されたCPU71、CPU71が実行するルーチン(プログラム)、テーブル(ルックアップテーブル、マップ)、及びパラメータ等を予め記憶したROM72、CPU71が必要に応じてデータを一時的に格納するRAM73、電源が投入された状態でデータを格納するとともに当該格納したデータを電源が遮断されている間も保持するバックアップRAM(SRAM)74、並びにADコンバータを含むインターフェース75等からなるマイクロコンピュータである。インターフェース75は、前記センサ61〜68と接続され、CPU71にセンサ61〜68からの信号を供給するとともに、同CPU71の指示に応じて可変吸気タイミング装置33のアクチュエータ33a、イグナイタ38、インジェクタ39、及びスロットル弁アクチュエータ43aに駆動信号を送出するようになっている。
(空燃比制御の概要)
次に、上述のように構成された空燃比制御装置(以下、「本装置」とも称呼する。)が行う機関の空燃比制御の概要について説明する。
本装置は、上流側空燃比センサ66の出力値を用いた空燃比フィードバック制御(以下、「メインFB制御」と称呼する。)、及び、下流側空燃比センサ67の出力値を用いた空燃比フィードバック制御(以下、「サブFB制御」と称呼する。)という2つの空燃比フィードバック制御を行う。加えて、本装置は、上述した「燃料噴射量の誤差」を適切に補償するため上流側空燃比センサ66の出力値を用いて後述する「基本燃料噴射量の補正」を行う。これらにより、空燃比が目標空燃比である理論空燃比に一致するようにフィードバック制御される。
より具体的に述べると、本装置は、機能ブロック図である図4に示したように、A1〜A15の各機能ブロックを含んで構成されている。以下、図4を参照しながら各機能ブロックについて説明していく。
<基本燃料噴射量の算出・補正>
先ず、筒内吸入空気量算出手段A1は、エアフローメータ61が計測している吸入空気流量Gaと、クランクポジションセンサ64の出力に基づいて得られる運転速度NEと、ROM72が記憶しているテーブルMapMcとに基づき、今回の吸気行程において吸気行程を迎える気筒に吸入された新気の量である筒内吸入空気量Mc(k)を求める。ここで、添え字の(k)は、今回の吸気行程に対する値であることを示している(以下、他の物理量についても同様。)。筒内吸入空気量Mcは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
上流側目標空燃比設定手段A2は、内燃機関10の運転状態である運転速度NE、及びスロットル弁開度TA等に基づいて上流側目標空燃比abyfrを決定する。この上流側目標空燃比abyfrは、例えば、内燃機関10の暖機終了後においては、特殊な場合を除き理論空燃比に設定されている。
制御用目標空燃比設定手段A3は、下記(1)式に従って、上流側目標空燃比abyfrと、後述するサブFB補正量算出手段A9により算出されるサブFB補正量FBsubとに基づいて制御用目標空燃比abyfrs(k)を設定する。
abyfrs(k)=abyfr/(1+FBsub) ・・・(1)
上記(1)式から理解できるように、この制御用目標空燃比abyfrs(k)は、上流側目標空燃比abyfrに対してサブFB補正量FBsubに応じた分だけ異なる空燃比に設定される。制御用目標空燃比abyfrsは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
基本燃料噴射量算出手段A4は、筒内吸入空気量Mc(k)を制御用目標空燃比abyfrs(k)で除することにより、筒内吸入空気量Mc(k)に対応する、制御用目標空燃比abyfrs(k)を得るための燃料の量である補正前基本燃料噴射量Fbaseb(k)を求める。補正前基本燃料噴射量Fbasebは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
補正後基本燃料噴射量算出手段A5は、補正前基本燃料噴射量Fbaseb(k)に、後述する基本燃料噴射量補正係数設定手段A15により(前回の吸気行程にて既に)求められている基本燃料噴射量補正係数KFを乗じることで、補正後基本燃料噴射量Fbaseを求める。
この補正後基本燃料噴射量Fbaseは、後述するように、今回の吸気行程における空燃比を今回の制御用目標空燃比abyfrs(k)と一致させるために噴射されるべき燃料の量と等しい量の燃料を実際に噴射するためにインジェクタ39に噴射指示すべき指令燃料噴射量となる。これにより、後に詳述するように、上記「基本燃料噴射量の補正」が達成される。
<指令燃料噴射量の算出>
指令燃料噴射量算出手段A6は、補正後基本燃料噴射量Fbaseに後述するメインFB補正量算出手段A14により算出されるメインFB補正量FBmainを加えることで、下記(2)式に基づいて指令燃料噴射量Fi(k)を求める。指令燃料噴射量Fiは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
Fi(k)=Fbase+FBmain ・・・(2)
本装置は、このようにして、サブFB補正量FBsubに基づく補正後基本燃料噴射量Fbaseと、メインFB補正量FBmainとに基づいて算出される指令燃料噴射量Fi(k)の燃料の噴射指示を今回の吸気行程を迎える気筒についてのインジェクタ39に対して行う。これにより、後に詳述するように、上記メインFB制御、及び上記サブFB制御が達成される。
<サブFB制御>
下流側目標値設定手段A7は、上述した上流側目標空燃比設定手段A2と同様、内燃機関10の運転状態である運転速度NE、及びスロットル弁開度TA等に基づいて下流側目標値Voxsrefを決定する。この下流側目標値Voxsrefは、例えば、内燃機関10の暖機終了後においては、特殊な場合を除き理論空燃比に対応する値である0.5(V)に設定されている(図3を参照。)。また、本例では、下流側目標値Voxsrefは、同下流側目標値Voxsrefに対応する空燃比が上述した上流側目標空燃比abyfrと常時一致するように設定される。
出力偏差量算出手段A8は、下記(3)式に基づいて、現時点(具体的には、今回のFi(k)の噴射指示開始時点)での下流側目標値Voxsrefから同現時点での下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを求める。この出力偏差量DVoxsは、前記「下流側空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値」に対応する。
DVoxs=Voxsref−Voxs ・・・(3)
サブFB補正量算出手段A9(PIDコントローラ)は、出力偏差量DVoxsを比例・積分・微分処理(PID処理)することでサブFB補正量FBsubを求める。以下、サブFB補正量算出手段A9の機能ブロック図である図5を参照しながら、A9a〜A9kの各機能ブロックを含むサブFB補正量算出手段A9によるサブFB補正量FBsubの算出方法について説明する。
比例項算出手段A9aは、上記出力偏差量DVoxsに予め設定された比例ゲインKp(比例定数)を乗じることで、サブFB補正量FBsubにおける比例項Ksubp(=Kp・DVoxs)を求める。
積分処理手段A9bは、上記出力偏差量DVoxsを逐次積算していくことで出力偏差量DVoxsの時間積分値である偏差積分値SDVoxsを算出・更新する。ただし、積分処理手段A9bは、後述する第3ガード処理手段A9gにより後述する「第3ガード処理された学習値Learn」がガード制限中(即ち、Learn=G or −G)である場合、後述する「第2ガード処理された積分項Ksubi」(=Ki・SDVoxs)(−G≦Ksubi≦G)がガード制限中の学習値Learn(=G or −G)に近づく方向に対応する偏差積分値SDVoxsの更新を行わない。以下、このように偏差積分値SDVoxsの更新を行わない処理を「更新禁止処理」と称呼する。「更新禁止処理」による作用・効果については後述する。この積分処理手段A9bは、前記「積分値算出手段」に相当する。
積分項算出手段A9cは、上記偏差積分値SDVoxsに予め設定された積分ゲインKi(積分定数)を乗じることで、サブFB補正量FBsubにおける積分項Ksubi(=Ki・SDVoxs)を求める。この積分項Ksubiが前記「偏差積分値に基づく値」に対応する。
第2ガード処理手段A9dは、上記積分項Ksubiの値に対して第2ガード処理を行う。第2ガード処理では、積分項Ksubiの値が−G(負の値、第2ガード値)を下回った場合に積分項Ksubiの値が値−Gに設定(制限)されるとともに、積分項Ksubiの値が値G(正の値、第2ガード値)を超えた場合に積分項Ksubiの値が値Gに設定(制限)される。ここで、値Gは、可燃領域に対応する空燃比範囲や、上流側空燃比センサ66の出力値Vabyfsにおいて発生し得る誤差の大きさ等を考慮して決定される。
これにより、第2ガード処理された積分項Ksubiの値は、値−G以上、値G以下となる。なお、第2ガード処理された積分項Ksubiがガード制限中(即ち、Ksubi=G or −G)である場合、偏差積分値SDVoxsは、ガード制限中の積分項Ksubiの値に対応する値(=Ksubi/Ki)に補正される。この第2ガード処理による作用・効果については後述する。この第2ガード処理手段A9dは、前記「第2ガード処理実行手段」に相当する。
なまし処理手段A9eは、第2ガード処理された積分項Ksubiの値に対して周知のなまし処理の一つ(例えば、一次のディジタルローパスフィルタ処理)を施した値(以下、「なまし処理後積分項Ksubilow」と称呼する。)を算出する。このなまし処理後積分項Ksubilowの値は、第2ガード処理された積分項Ksubiの値の定常的な成分を表す。
学習処理手段A9fは、所定のタイミングが到来する毎に「積分項Ksubiの学習処理」を行う。「積分項Ksubiの学習処理」では、その時点での上記なまし処理後積分項Ksubilowの値が学習値Learn(第2ガード処理された積分項Ksubiの値の定常的な成分を表す値)を更新するための更新値DLearnとして取得される。更新値DLearnはその時点でバックアップRAM74に記憶されている学習値Learnに積算される。これにより学習値Learnが更新される。
第3ガード処理手段A9gは、上記更新された学習値Learnに対して第3ガード処理を行う。第3ガード処理では、更新された学習値Learnが−G(負の値、第3ガード値)を下回った場合に学習値Learnが値−Gに設定(制限)されるとともに、更新された学習値Learnが値G(正の値、第3ガード値)を超えた場合に学習値Learnが値Gに設定(制限)される。これにより、第3ガード処理された学習値Learnは、値−G以上、値G以下となる。この第3ガード処理による作用・効果については後述する。この第3ガード処理手段A9gは、前記「第3ガード処理実行手段」に相当する。
このように「積分項Ksubiの学習処理」により更新され、且つ第3ガード処理された後の学習値Learnは、バックアップRAM74に記憶される。即ち、バックアップRAM74に記憶される「第3ガード処理された学習値Learn」は、所定のタイミングが到来する毎に(即ち、「積分項Ksubiの学習処理」の実行タイミングが到来する毎に)ステップ的に変化していく。そして、バックアップRAM74に記憶される学習値Learnの前回値からの変化分がその時点での「第2ガード処理された積分項Ksubi」の値から差し引かれる。これに伴い、偏差積分値SDVoxsは、差し引かれた後の積分項Ksubiの値に対応する値(=Ksubi/Ki)に補正される。
即ち、「積分項Ksubiの学習処理」の実行タイミングが到来する毎に、第2ガード処理された積分項Ksubiの値の定常的な成分が第3ガード処理された学習値Learnに移し変えられていく。そして、各「積分項Ksubiの学習処理」の前後において、第2ガード処理された積分項Ksubiの値と第3ガード処理された学習値Learnの和は変化しない。換言すれば、第2ガード処理された積分項Ksubiの値と第3ガード処理された学習値Learnの和は、サブFB補正量FBsubにおける実質的な積分項の値として機能する。加えて、「積分項Ksubiの学習処理」が完了する毎に、なまし処理後積分項Ksubilowの値が「0」にクリアされる。このように「積分項Ksubiの学習処理」を行う手段が、前記「学習手段」に相当する。
総和値算出手段A9hは、第2ガード処理された積分項Ksubiの値と第3ガード処理された学習値Learn(バックアップRAM74に記憶されている値)の和を総和値SUMとして算出する。即ち、総和値SUMは、サブFB補正量FBsubにおける実質的な積分項として機能する値である。総和値算出手段A9hは、前記「総和値算出手段」に相当する。
第1ガード処理手段A9iは、上記総和値SUMに対して第1ガード処理を行う。第1ガード処理では、総和値SUMが−G(負の値、第1ガード値)を下回った場合に総和値SUMが値−Gに設定(制限)されるとともに、総和値SUMが値G(正の値、第1ガード値)を超えた場合に総和値SUMが値Gに設定(制限)される。これにより、第1ガード処理された総和値SUMは、値−G以上、値G以下となる。この第1ガード処理による作用・効果については後述する。この第1ガード処理手段A9iは、前記「第1ガード処理実行手段」に相当する。
微分項算出手段A9jは、上記出力偏差量DVoxsの時間微分値DDVoxsに予め設定された微分ゲインKd(微分定数)を乗じることで、サブFB補正量FBsubにおける微分項Ksubd(=Kd・DDVoxs)を求める。
加算手段A9kは、下記(4)式に従って、比例項Ksubp、総和値SUM(即ち、実質的な積分項)、及び微分項Ksubdを加えることで、出力偏差量DVoxsを比例・積分・微分処理(PID処理)した値であるサブFB補正量FBsubを求める(−1<FBsub<1)。
FBsub=Ksubp+SUM+Ksubd ・・・(4)
再び、図4を参照すると、上述したように、このサブFB補正量FBsubは、制御用目標空燃比abyfrs(k)の設定に使用され、制御用目標空燃比abyfrs(k)に基づいて補正前基本燃料噴射量Fbaseb(k)(ひいては、指令燃料噴射量Fi(k))が決定される。これにより、以下のようにサブFB制御がなされる。
例えば、平均的な空燃比が理論空燃比よりもリーンであるために下流側空燃比センサ67の出力値Voxsが理論空燃比よりもリーンである空燃比に対応した値を示すと、出力偏差量DVoxsが正の値となるので(図3を参照。)、サブFB補正量FBsubは正の値となる。これにより、制御用目標空燃比abyfrs(k)が上流側目標空燃比abyfr(=理論空燃比)よりも小さい値(即ち、リッチな空燃比)に設定される。従って、補正前基本燃料噴射量Fbaseb(k)(ひいては、指令燃料噴射量Fi(k))が上流側目標空燃比abyfrに対応する値よりも大きくなって、空燃比が理論空燃比よりもリッチとなるように制御される。
反対に、平均的な空燃比が理論空燃比よりもリッチであるために下流側空燃比センサ67の出力値Voxsが理論空燃比よりもリッチである空燃比に対応した値を示すと、出力偏差量DVoxsが負の値となるので、サブFB補正量FBsubは負の値となる。これにより、制御用目標空燃比abyfrs(k)が上流側目標空燃比abyfr(=理論空燃比)よりも大きい値(即ち、リーンな空燃比)に設定される。従って、補正前基本燃料噴射量Fbaseb(k)(ひいては、指令燃料噴射量Fi(k))が上流側目標空燃比abyfrに対応する値よりも小さくなって、空燃比が理論空燃比よりもリーンとなるように制御される。
加えて、サブFB補正量FBsubは、積分項(即ち、実質的な積分項である総和値SUM)を含んでいるので、定常状態では出力偏差量DVoxsがゼロになることが保証される。換言すれば、下流側目標値Voxsrefと下流側空燃比センサ67の出力値Voxsとの定常偏差がゼロになる。この結果、サブFB制御により、上述した「燃料噴射量の誤差」や上流側空燃比センサ66の出力値Vabyfsの誤差が発生している場合であっても、定常状態において第1触媒53の下流の空燃比が下流側目標値Voxsrefに対応する空燃比(即ち、理論空燃比)に収束することが保証される。
以上、サブFB制御では、上記第1ガード処理された総和値SUMに基づくサブFB補正量FBsubに基づいて空燃比が理論空燃比になるようにインジェクタ39から噴射される燃料の量がフィードバック制御される。このように燃料噴射量を制御する手段が前記「空燃比フィードバック制御手段」に相当する。
<各処理の作用・効果>
次に、図5に示した第1ガード処理手段A9iによる「第1ガード処理」、第2ガード処理手段A9dによる「第2ガード処理」、第3ガード処理手段A9gによる「第3ガード処理」、及び積分処理手段A9bによる「更新禁止処理」の作用・効果について図6A〜図6Dを参照しながら説明する。
図6Aは、本装置の比較対象として、本装置において上記「第1ガード処理」、「第2ガード処理」、「第3ガード処理」、及び「更新禁止処理」の全てを行わないもの(以下、「比較対象装置A」と称呼する。)を使用した場合における、下流側空燃比センサ67の出力値Voxs、積分項Ksubi、なまし処理後積分項Ksubilow、学習値Learn、及び総和値SUM(=Ksubi+Learn)の変化の一例を示したタイムチャートである。時刻t1〜t7はそれぞれ、上記「積分項Ksubiの学習処理」の実行タイミングに対応している。
図6Aに示すように、下流側空燃比センサ67の出力値Voxsが理論空燃比よりもリーンを示す期間(即ち、出力偏差量DVoxsが正の値に維持されている期間)では、積分項Ksubiの値(従って、総和値SUM)は増大していく一方、出力値Voxsが理論空燃比よりもリッチを示す期間(即ち、出力偏差量DVoxsが負の値に維持されている期間)では、積分項Ksubiの値(従って、総和値SUM)は減少していく。
また、「積分項Ksubiの学習処理」の実行タイミングが到来する毎に、その時点での学習値Learnにその時点でのなまし処理後積分項Ksubilowの値が加えられて学習値Learnがステップ的に更新されるとともに学習値Learnの変化分が積分項Ksubiの値から差し引かれる。即ち、各「積分項Ksubiの学習処理」の実行タイミングの直前・直後において、総和値SUM(=Ksubi+Learn)は変化しない。更には、なまし処理後積分項Ksubilowの値が「0」にクリアされる。
図6Aに示した例では、何らかの原因により空燃比制御系に異常が発生して出力値Voxsがリーンを示す期間がリッチを示す期間よりも平均的に長くなることで積分項Ksubi(従って、総和値SUM)が平均的に増大している(時刻t1以前〜時刻t6)。その後、その異常が解除されて出力値Voxsがリッチを示す期間がリーンを示す期間よりも平均的に長くなることで積分項Ksubi(従って、総和値SUM)が平均的に減少している(時刻t6以降)。
図6Aに示した例では、学習値Learnに対して上記第3ガード処理がなされていないから、学習値Learnが値Gを超えて際限なく増大し得る。この結果、学習値Learnは、時刻t5〜時刻t6の間において値Gに達しているとともに、時刻t6〜時刻t7の間において値Gを超えている。
加えて、総和値SUMに対して上記第1ガード処理がなされていないから、総和値SUMが値Gを超えて際限なく増大し得る。この結果、時刻t4と時刻t5の間の或る時点〜時刻t7の直前に亘って、総和値SUMが値Gを超えている(斜線で示した領域を参照)。これにより、図6Aに示した例(即ち、比較対象装置Aを使用した場合)では、総和値SUMが値Gを超えている期間内に亘って空燃比が可燃領域から逸脱する等の問題が発生し得る。
これに対し、図6Bは、本装置の比較対象として、上記比較対象装置Aにおいて上記「第1ガード処理」を行うもの(以下、「比較対象装置B」と称呼する。)を使用した場合における、図6Aに対応するタイムチャートである。
図6Bに示すように、この場合、総和値SUMに対して上記第1ガード処理がなされるから、時刻t4と時刻t5の間の或る時点〜時刻t7の直前に亘って総和値SUMが値Gに制限される(値Gに張り付く)。換言すれば、総和値SUMが値Gを超えることがない。従って、上記第1ガード処理を行うことにより、空燃比が可燃領域から逸脱する等の問題の発生が効果的に抑制され得る。
ただし、この場合、総和値SUMがガード制限中(即ち、SUM=G)であっても、学習値Learn(及び、積分項Ksubi)が値Gを超えて際限なく増大し得、図6Aの場合と同様、時刻t6〜時刻t7の間、学習値Learnが値Gを超えている。この結果、時刻t6において積分項Ksubiが平均的に減少を開始してから、総和値SUM(=Ksubi+Learn)が値G以下に戻る時刻tAまでには比較的長い時間が必要となっている。即ち、「総和値SUMの戻り」が大きく遅れている。
これに対し、図6Cは、本装置の比較対象として、上記比較対象装置Bにおいて上記「第2ガード処理」及び「第3ガード処理」を行うもの(以下、「比較対象装置C」と称呼する。)を使用した場合における、図6Bに対応するタイムチャートである。
図6Cに示すように、この場合、学習値Learnに対して上記第3ガード処理がなされるから、時刻t6〜t7に亘って学習値Learnが値Gに制限される(値Gに張り付く)。換言すれば、総和値SUMがガード制限中において学習値Learnが値Gを超えることがない。従って、時刻t6において積分項Ksubiが平均的に減少を開始してから、比較的早い段階(時刻tB)で総和値SUM(=Ksubi+Learn)が値G以下に戻っている。
即ち、上記第1ガード処理に加えて上記第2、第3ガード処理を行うことにより、「総和値SUMの戻り」を早くすることができる。この結果、空燃比が理論空燃比と大きく異なる値に維持される期間を短くすることができるから、エミッションの悪化を抑制することができる。
図6Dは、上記比較対象装置Cにおいて上記「更新禁止処理」を行うもの、即ち、本装置そのものを使用した場合における、図6Cに対応するタイムチャートである。図6Dに示すように、この場合、学習値Learnがガード制限中(即ち、Learn=G)である場合(時刻t5〜時刻t7)において、積分項Ksubi(−G≦Ksubi≦G)の、ガード制限中の学習値Learn(=G)に近づく方向(図6Dでは、積分項Ksubiが増大する方向)への更新が行われない。
換言すれば、下流側空燃比センサ67の出力値Voxsがリーンを示す期間において積分項Ksubiの値が一定に維持される(図6Dにおいて3つの楕円で示した各部分を参照)。一方、時刻t5〜時刻t7において、出力値Voxsがリッチを示す期間における積分項Ksubiの減少方向への更新は許可される。この結果、時刻t6において積分項Ksubiが平均的に減少を開始する前の段階(時刻tC)で既に総和値SUM(=Ksubi+Learn)が値G以下に戻っている。
即ち、上記第1ガード処理、上記第2、第3ガード処理に加えて上記更新禁止処理を行うことにより、「総和値SUMの戻り」を更に一層早くすることができる。この結果、空燃比が理論空燃比と大きく異なる値に維持される期間を更に一層短くすることができるから、エミッションの悪化を更に一層抑制することができる。以上、「第1ガード処理」、「第2ガード処理」、「第3ガード処理」、及び「更新禁止処理」の作用・効果について説明した。
<メインFB制御>
再び、図4を参照すると、テーブル変換手段A10は、上流側空燃比センサ66の出力値Vabyfsと、先に説明した図2に示した上流側空燃比センサ出力値Vabyfsと空燃比A/Fとの関係を規定したテーブルとに基づいて、上流側空燃比センサ66が検出する現時点(具体的には、今回のFi(k)の噴射指示開始時点)における今回の検出空燃比abyfs(k)を求める。検出空燃比abyfsは、各気筒の吸気行程に対応されながらRAM73に記憶されていく。
目標空燃比遅延手段A11は、制御用目標空燃比設定手段A3により吸気行程毎に求められRAM73に記憶されている制御用目標空燃比abyfrsのうち、現時点からNストローク(N回の吸気行程)前の制御用目標空燃比abyfrsをRAM73から読み出し、これを制御用目標空燃比abyfrs(k−N)とする。この値Nは、燃料の噴射指示から、その噴射指示により噴射された燃料の燃焼に基づく排ガスの空燃比が上流側空燃比センサ66の出力値Vabyfsとして現れるまでに要する時間(以下、「遅れ時間L」と称呼する。)に相当するストローク数である。以下、遅れ時間L、及びストローク数Nについて付言する。
一般に、燃料の噴射指示は、吸気行程中(或いは吸気行程よりも前の時点)にて実行され、噴射された燃料は、その後に到来する圧縮上死点近傍の時点で燃焼室25内にて着火(燃焼)させられる。この結果、発生する排ガスは、排気弁35の周囲を介して燃焼室25から排気通路へと排出され、その後、排気通路内を移動していくことで上流側空燃比センサ66(の検出部)に到達する。更に、上流側空燃比センサ66の検出部に到達した排ガスの空燃比が同センサの出力値Vabyfsとして現れるまでには所定の時間を要する。
以上のことから、上記遅れ時間Lは、燃焼行程に係わる遅れ(行程遅れ)、排気通路内での排ガスの移動に係わる遅れ(輸送遅れ)、及び上流側空燃比センサ66の応答に係わる遅れ(応答遅れ)の和で表される。即ち、上流側空燃比センサ66による検出空燃比abyfsは、このようにして得られる遅れ時間Lだけ前に実行された燃料の噴射指示に基づいて発生した排ガスの空燃比を表す値となる。
上述した行程遅れに係る時間は、運転速度NEの増加に応じて短くなるとともに、輸送遅れに係る時間は、運転速度NE及び筒内吸入空気量Mcの上昇に応じて短くなる傾向がある。従って、遅れ時間Lに相当するストローク数Nは、筒内吸入空気量Mc(k)と、運転速度NEと、図7にグラフにより示した、運転速度NE及び筒内吸入空気量Mcと、ストローク数Nとの関係を規定するテーブルMapN(Mc,NE)と、に基づいて求めることができる。これにより、ストローク数Nは、運転速度NE及び筒内吸入空気量Mcの上昇に応じて小さくなる。
上流側空燃比偏差算出手段A12は、下記(5)式に基づいて、今回の検出空燃比abyfs(k)から現時点からNストローク前の制御用目標空燃比abyfrs(k−N)を減じることにより、現時点からNストローク前の上流側空燃比偏差DAFを求める。
DAF=abyfs(k)−abyfrs(k−N) ・・・(5)
このように、現時点からNストローク前の上流側空燃比偏差DAFを求めるために、今回の検出空燃比abyfs(k)から、現時点からNストローク前の制御用目標空燃比abyfrs(k−N)を減じるのは、上述したように、今回の検出空燃比abyfs(k)は、現時点から遅れ時間Lだけ前(従って、現時点からNストローク前)に実行された噴射指示に基づいて発生した排ガスの空燃比を表しているからである。この上流側空燃比偏差DAFは、Nストローク前の時点で筒内に供給された燃料の過不足量に対応する値である。
ハイパスフィルタA13は、その特性をラプラス演算子sを用いて表した下記(6)式に示すように、一次のディジタルフィルタである。下記(6)式において、τ1は時定数である。ハイパスフィルタA13は、周波数(1/τ1)以下の低周波数成分が通過することを実質的に禁止する。
1−1/(1+τ1・s) ・・・(6)
ハイパスフィルタA13は、上記上流側空燃比偏差DAFの値を入力するとともに、上記(6)式に従って上流側空燃比偏差DAFの値をハイパスフィルタ処理した後の値であるハイパスフィルタ通過後上流側空燃比偏差DAFhiを出力する。
メインFB補正量算出手段A14(Pコントローラ)は、ハイパスフィルタ通過後上流側空燃比偏差DAFhiを比例処理(P処理)することで、下記(7)式に基づいてNストローク前の燃料供給量の過不足(における周波数(1/τ1)以上の高周波数成分のみの過不足)を補償するためのメインFB補正量FBmainを求める。(7)式において、Gphiは予め設定された比例ゲイン(比例定数)である。
FBmain=Gphi・DAFhi ・・・(7)
このようにして、本装置は、上流側空燃比センサ66の出力値Vabyfsに基づく値であってハイパスフィルタ処理された値に基づいてメインFB補正量FBmainを求める。そして、本装置は、指令燃料噴射量Fi(k)を求める際、上述したように、補正後基本燃料噴射量Fbaseに対してメインFB補正量FBmainを加える。これにより、上述したサブFB制御とは独立して、以下のように、メインFB制御がなされる。
例えば、空燃比が急変してリーンとなると、今回の検出空燃比abyfs(k)は現時点からNストローク前の制御用目標空燃比abyfrs(k−N)よりもリーンな値(より大きな値)となる。このため、上流側空燃比偏差DAFは大きい正の値となる。また、空燃比の急変によりこの上流側空燃比偏差DAFを示す信号には前記周波数(1/τ1)以上の高周波数成分が存在するから、ハイパスフィルタA13を通過した後のハイパスフィルタ通過後上流側空燃比偏差DAFhiも大きい正の値となる。従って、メインFB補正量FBmainが大きい正の値となる。これにより、指令燃料噴射量Fi(k)は、補正後基本燃料噴射量Fbaseよりも大きくなって、空燃比がリッチとなるように制御される。
反対に、空燃比が急変してリッチとなると、今回の検出空燃比abyfs(k)は制御用目標空燃比abyfrs(k−N)よりもリッチな値(より小さな値)となる。このため、上流側空燃比偏差DAFは負の値となる。また、空燃比の急変によりこの上流側空燃比偏差DAFを示す信号には前記周波数(1/τ1)以上の高周波数成分が存在するから、ハイパスフィルタ通過後上流側空燃比偏差DAFhiも負の値となる。従って、メインFB補正量FBmainが負の値となる。これにより、指令燃料噴射量Fi(k)は、補正後基本燃料噴射量Fbaseよりも小さくなって、空燃比がリーンとなるように制御される。
このようにして、メインFB制御により、過渡の外乱に対して適切な空燃比の補正が実行され得る。なお、メインFB補正量算出手段A14(Pコントローラ)は積分項を含んでいない。従って、メインFB制御では、上述した「燃料噴射量の誤差」は補償され得ない。
<基本燃料噴射量補正係数の設定>
基本燃料噴射量補正係数設定手段A15は、上述した「基本燃料噴射量の補正」を行うため、上記補正前基本燃料噴射量Fbaseb(k)に基本燃料噴射量補正係数KFを乗じた値(=上記補正後基本燃料噴射量Fbase)が、今回の吸気行程における空燃比を今回の制御用目標空燃比abyfrs(k)と一致させるために噴射されるべき燃料の量と等しい量の燃料を実際に噴射するためにインジェクタ39に噴射指示すべき指令燃料噴射量と一致する(近づく)ように、基本燃料噴射量補正係数KFを設定する。以下、基本燃料噴射量補正係数設定手段A15による基本燃料噴射量補正係数KFの設定方法について説明する。
筒内吸入空気量Mcが一定であるとの仮定のもとでは、燃料噴射量と空燃比の積は一定となる。係る関係を利用すると、下記(8)式に示すように、指令燃料噴射量Fiに値(検出空燃比abyfs/制御用目標空燃比abyfrs)を乗じることで、空燃比を制御用目標空燃比abyfrsとするために噴射されるべき燃料の量と等しい量の燃料を実際に噴射するために噴射指示されるべき指令燃料噴射量(以下、「基本燃料噴射量相当指令噴射量Fbaset」と称呼する。)が求められる。
Fbaset=Fi・(abyfs/abyfrs) ・・・(8)
ここで、上述したように、補正前基本燃料噴射量Fbasebに基本燃料噴射量補正係数KFを乗じた値が上記(8)式に従って求められる基本燃料噴射量相当指令噴射量Fbasetと等しくなるように基本燃料噴射量補正係数KFが設定されるから、基本燃料噴射量補正係数KFは下記(9)式に従って設定することができる。
KF=Fbaset/Fbaseb ・・・(9)
ところで、上述したように、上流側空燃比センサ66の出力値Vabyfsに基づく検出空燃比abyfsは、現時点から上記遅れ時間L前(従って、現時点から上記Nストローク前(図7を参照))に実行された噴射指示により噴射された燃料の燃焼に基づく排ガスの空燃比を表す。このことを考慮すると、上記(8)式を使用して基本燃料噴射量相当指令噴射量Fbasetを算出する際、検出空燃比abyfsとして今回の値abyfs(k)を使用し、制御用目標空燃比abyfrs、及び指令燃料噴射量Fiとして現時点からNストローク前の値abyfrs(k−N),Fi(k−N)をそれぞれ使用すれば、基本燃料噴射量相当指令噴射量Fbasetの算出に使用される3つの値(検出空燃比abyfs、制御用目標空燃比abyfrs、指令燃料噴射量Fi)に対応する吸気行程を全て同じとすることができる。この結果、現時点からNストローク前の吸気行程に対応する基本燃料噴射量相当指令噴射量Fbasetを精度良く求めることができる。
そして、上記(9)式を使用して基本燃料噴射量補正係数KFを算出する際、基本燃料噴射量相当指令噴射量Fbasetとして上述のように精度良く求められる「現時点からNストローク前の吸気行程に対応する値」を使用し、補正前基本燃料噴射量Fbasebとして現時点からNストローク前の吸気行程に対応する値Fbaseb(k−N)を使用すれば、基本燃料噴射量補正係数KFが、現時点からNストローク前の吸気行程の時点における、補正前基本燃料噴射量Fbasebと基本燃料噴射量相当指令噴射量Fbasetの比を精度良く表す値に算出され得る。
従って、このようにして得られる基本燃料噴射量補正係数KFを現時点での(今回の)補正前基本燃料噴射量Fbaseb(k)に乗じることで、現時点での(今回の)補正後基本燃料噴射量Fbaseを今回の吸気行程に対応する上記基本燃料噴射量相当指令噴射量と精度良く一致させることができる。
加えて、機関が過渡運転状態にある場合、検出空燃比abyfs、指令燃料噴射量Fi、制御用目標空燃比abyfrs、及び補正前基本燃料噴射量Fbasebは別個独立に高周波数をもって大きく変動し得る。このような場合、上記(9)式に従って算出される基本燃料噴射量補正係数KFも高周波数をもって大きく変動し得、この結果、安定した「基本燃料噴射量の補正」を実現できなくなる可能性がある。従って、安定した「基本燃料噴射量の補正」を実現するためにローパスフィルタ処理を用いることが好ましい。以上のことから、基本燃料噴射量補正係数設定手段A15は、その機能ブロック図である図8に示したようにA15a〜A15fの各機能ブロックを含んで構成されている。
指令燃料噴射量遅延手段A15aは、指令燃料噴射量算出手段A6により吸気行程毎に求められRAM73に記憶されている指令燃料噴射量Fiのうち、現時点からNストローク前の値をRAM73から読み出し、これを指令燃料噴射量Fi(k−N)とする。
制御用空燃比遅延手段A15bは、制御用目標空燃比設定手段A3により吸気行程毎に求められRAM73に記憶されている制御用目標空燃比abyfrsのうち、現時点からNストローク前の値をRAM73から読み出し、これを制御用目標空燃比abyfrs(k−N)とする。
基本燃料噴射量相当指令噴射量算出手段A15cは、上記(8)式に相当する下記(10)式に従って、現時点からNストローク前の吸気行程に対応する基本燃料噴射量相当指令噴射量Fbasetを求める。
Fbaset=Fi(k−N)・(abyfs(k)/abyfrs(k−N)) ・・・(10)
補正前基本燃料噴射量遅延手段A15dは、基本燃料噴射量算出手段A4により吸気行程毎に求められRAM73に記憶されている補正前基本燃料噴射量Fbasebのうち、現時点からNストローク前の値をRAM73から読み出し、これを補正前基本燃料噴射量Fbaseb(k−N)とする。
補正係数設定手段A15eは、上記(9)に相当する下記(11)式に従って、ローパスフィルタ処理前の基本燃料噴射量補正係数KF1を求める。
KF1=Fbaset/Fbaseb(k−N) ・・・(11)
ローパスフィルタA15fは、その特性をラプラス演算子sを用いて表した下記(12)式に示すように、一次のディジタルフィルタである。下記(12)式において、τ2は時定数である。ローパスフィルタA15fは、周波数(1/τ2)以上の高周波数成分が通過することを実質的に禁止する。
1/(1+τ2・s) ・・・(12)
ローパスフィルタA15fは、上記ローパスフィルタ処理前の基本燃料噴射量補正係数KF1の値を入力するとともに、上記(12)式に従って値KF1をローパスフィルタ処理した後の値である基本燃料噴射量補正係数KFを出力する。
以上が、基本燃料噴射量補正係数設定手段A15による基本燃料噴射量補正係数KFの設定方法の概要である。このようにして、基本燃料噴射量補正係数KFは、「燃料噴射量の誤差」を補償するための適切な値に設定され得る。
<基本燃料噴射量補正係数の記憶処理>
内燃機関の暖気運転中等、「上流側空燃比センサ66の出力値Vabyfsが正常な値とならない場合」においては、検出空燃比abyfsが排気ガスの空燃比を精度良く表す値とならない。このような場合、検出空燃比abyfsの値を使用して前記(10)式〜(12)式に従って算出される基本燃料噴射量補正係数KFの値も「燃料噴射量の誤差」を補償するための適切な値とならない。従って、このような場合、前記(10)式〜(12)式に従って算出される基本燃料噴射量補正係数KFは補正前基本燃料噴射量Fbaseb(k)の補正に使用されるべきでない。
そこで、本装置は、「上流側空燃比センサ66の出力値Vabyfsが正常な値となる(なり得る)場合(具体的には、後述するメインフィードバック条件が成立する場合)」に限り、前記(10)式〜(12)式に従って計算された基本燃料噴射量補正係数KFを使用して補正前基本燃料噴射量Fbaseb(k)を補正していく。加えて、この場合、本装置は、計算された基本燃料噴射量補正係数KFの値を逐次バックアップRAM74に記憶・更新していく。
ここで、基本燃料噴射量補正係数KFの値の記憶・更新について付言する。一般に、筒内吸入空気量Mcが増大すると、「燃料噴射量の誤差」の程度が増大する(従って、基本燃料噴射量補正係数KFの値の「1」からの偏移量が変化する)傾向がある。そこで、本装置は、図9に示すように、筒内吸入空気量Mcのとり得る範囲を複数の(本例では、4つの)分類に区分する。そして、本装置は、新たな基本燃料噴射量補正係数KFを計算する毎に、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、同選択された分類に対応する基本燃料噴射量補正係数KFmem(m)(m:1,2,3,4)の値を前記計算された新たな基本燃料噴射量補正係数KFの値に更新・記憶していく。
一方、本装置は、「上流側空燃比センサ66の出力値Vabyfsが正常な値とならない場合(具体的には、後述するメインフィードバック条件が成立しない場合)」においては、今回の筒内吸入空気量Mc(k)が属する分類を選択するとともに、バックアップRAM74に記憶されている基本燃料噴射量補正係数KFmem(m)(m:1,2,3,4)のうち同選択された分類に対応する値を基本燃料噴射量補正係数記憶値KFmemとする。
そして、本装置は、前記(10)式〜(12)式に従って計算される基本燃料噴射量補正係数KFに代えて基本燃料噴射量補正係数記憶値KFmemを利用して補正前基本燃料噴射量Fbaseb(k)を補正していく。これにより、「上流側空燃比センサ66の出力値Vabyfsが正常な値とならない場合」においても、「燃料噴射量の誤差」をある程度正確に補償していくことができる。以上が、本装置による空燃比制御の概要である。
(実際の作動)
次に、本装置による空燃比制御装置の実際の作動について説明する。以下、説明の便宜上、「MapX(a1,a2,…)」は、a1,a2,…を引数とする値Xを求めるためのテーブルを表すものとする。また、引数の値がセンサの検出値である場合、現在値が使用される。
<空燃比フィードバック制御>
CPU71は、図10にフローチャートにより示した指令燃料噴射量Fiの計算、及び燃料噴射の指示を行うルーチンを、各気筒のクランク角が各吸気上死点前の所定クランク角度(例えば、BTDC90°CA)となる毎に、繰り返し実行するようになっている。
従って、任意の気筒のクランク角度が前記所定クランク角度になると、CPU71はステップ1000から処理を開始してステップ1005に進んで、テーブルMapMc(NE,Ga)に基づいて、今回の吸気行程を迎える気筒(以下、「燃料噴射気筒」と云うこともある。)に吸入された新気の量である今回の筒内吸入空気量Mc(k)を推定する。
次に、CPU71はステップ1010に進んで、今回の目標空燃比abyfr(k)と、後述するルーチンにて(前回の燃料噴射時点にて)求められているサブFB補正量FBsubの最新値と、上記(1)式とに基づいて制御用目標空燃比abyfrs(k)を求め、続くステップ1015にて、上記筒内吸入空気量Mc(k)を制御用目標空燃比abyfrs(k)で除することにより、今回の補正前基本燃料噴射量Fbaseb(k)を決定する。
次いで、CPU71はステップ1020に進んで、メインフィードバック条件が成立しているか否かを判定する。ここで、メインフィードバック条件は、例えば、機関の冷却水温THWが第1所定温度以上であって、上流側空燃比センサ66が正常(活性状態となっていることを含む)であって、筒内吸入空気量Mc(k)(或いは、負荷)が所定値以下であるときに成立する。
メインフィードバック条件が成立している場合、CPU71はステップ1020にて「Yes」と判定してステップ1025に進み、上記補正前基本燃料噴射量Fbaseb(k)に、後述するルーチンにて(前回の燃料噴射時点にて)求められている基本燃料噴射量補正係数KFの最新値を乗じることにより補正後基本燃料噴射量Fbaseを決定する。
一方、メインフィードバック条件が成立していない場合、CPU71はステップ1020にて「No」と判定してステップ1030に進み、基本燃料噴射量補正係数記憶値KFmemを、バックアップRAM74に記憶されている基本燃料噴射量補正係数KFmem(m)(m:1,2,3,4)のうち筒内吸入空気量Mc(k)の値から選択された値に決定する。
次いで、CPU71はステップ1035に進み、ステップ1015にて決定された補正前基本燃料噴射量Fbaseb(k)に上記基本燃料噴射量補正係数記憶値KFmemを乗じることにより補正後基本燃料噴射量Fbaseを決定する。
次に、CPU71はステップ1040に進み、上記(2)式に従って、上記求めた補正後基本燃料噴射量Fbaseに、後述するルーチンにて(前回の燃料噴射時点にて)求められているメインFB補正量FBmainの最新値を加えることで、今回の指令燃料噴射量Fi(k)を決定する。
続いて、CPU71はステップ1045に進んで、指令燃料噴射量Fi(k)の燃料の噴射指示を行った後、ステップ1095に進んで本ルーチンを一旦終了する。以上により、補正前基本燃料噴射量Fbaseb(k)が上述した基本燃料噴射量相当指令噴射量Fbasetに一致するように補正されて「燃料噴射量の誤差」が補償され得るとともに、メインFB制御、及びサブFB制御が行われる。
<メインFB補正量の計算>
次に、上述したメインFB制御においてメインFB補正量FBmainを算出する際の作動について説明すると、CPU71は図11にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(噴射指示開始時点)が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ1100から処理を開始し、ステップ1105に進んで、メインフィードバック条件が成立しているか否かを判定する。このメインフィードバック条件は、先の図10のステップ1020におけるメインフィードバック条件と同一である。
いま、メインフィードバック条件が成立しているものとして説明を続けると、CPU71はステップ1105にて「Yes」と判定してステップ1110に進み、テーブルMapabyfs(Vabyfs)(図2を参照)に基づいて、今回の検出空燃比abyfs(k)を求める。
次に、CPU71はステップ1115に進んで、テーブルMapN(Mc(k),NE)(図7を参照)に基づいて、ストローク数Nを決定する。次いで、CPU71はステップ1120に進み、上記(5)式に従って、前記求めた検出空燃比abyfs(k)から現時点からNストローク(N回の吸気行程)前の制御用目標空燃比であるabyfrs(k−N)を減ずることにより、上流側空燃比偏差DAFを求める。
続いて、CPU71はステップ1125に進み、上流側空燃比偏差DAFをハイパスフィルタA13によりハイパスフィルタ処理してハイパスフィルタ通過後上流側空燃比偏差DAFhiを取得する。次に、CPU71はステップ1130に進んで、前記(7)式に従ってメインFB補正量FBmainを求めた後、ステップ1195に進んで本ルーチンを一旦終了する。
以上により、メインFB補正量FBmainが求められ、このメインFB補正量FBmainが前述した図10のステップ1040により指令燃料噴射量Fi(k)に反映されることで上述したメインFB制御が実行される。
一方、ステップ1105の判定時において、メインフィードバック条件が不成立であると、CPU71は同ステップ1105にて「No」と判定してステップ1135に進んでメインFB補正量FBmainの値を「0」に設定し、その後ステップ1195に進んで本ルーチンを一旦終了する。このように、メインフィードバック条件が不成立であるときは、メインFB補正量FBmainを「0」としてメインFB制御に基づく空燃比フィードバック制御を行わない。
<サブFB補正量の計算>
次に、上述したサブFB制御においてサブFB補正量FBsubを算出する際の作動について説明すると、CPU71は図12にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(噴射指示開始時点)が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ1200から処理を開始し、まず、ステップ1205にて、サブフィードバック条件が成立しているか否かを判定する。サブフィードバック条件は、例えば、前述したステップ1020(及び、ステップ1105)でのメインフィードバック条件に加え、機関の冷却水温THWが前記第1所定温度よりも高い第2所定温度以上のときに成立する。
いま、サブフィードバック条件が成立しているものとして説明を続けると、CPU71はステップ1205にて「Yes」と判定してステップ1210に進み、上記(3)式に従って、下流側目標値Voxsrefから現時点の下流側空燃比センサ67の出力値Voxsを減じることにより、出力偏差量DVoxsを求め、続くステップ1215にて、上記出力偏差量DVoxsに比例ゲインKpを乗じることで比例項Ksubpを求める。
次に、CPU71はステップ1220に進んで、下記(13)式に基づき出力偏差量DVoxsの微分値DDVoxsを求める。(13)式において、DVoxs1は前回の本ルーチン実行時において後述するステップ1230にて設定(更新)された出力偏差量DVoxsの前回値である。また、Δtは本ルーチンが前回実行された時点から今回実行された時点までの時間である。
DDVoxs=(DVoxs−DVoxs1)/Δt ・・・(13)
次いで、CPU71はステップ1225に進み、上記出力偏差量の微分値DDVoxsに微分ゲインKdを乗じることで微分項Ksubdを求め、続くステップ1230にて出力偏差量DVoxsの前回値DVoxs1を上記ステップ1210にて求めた出力偏差量DVoxsと等しい値に設定する。
次に、CPU71はステップ1235に進んで、後述するルーチンにて(前回の燃料噴射時点にて)求められている第3ガード処理された学習値Learnがガード制限中(即ち、Learn=G or −G))であるか否かを判定し、「No」と判定する場合、ステップ1240に進んで、その時点における偏差積分値SDVoxsに上記ステップ1210にて求めた出力偏差量DVoxsを加えて、新たな偏差積分値SDVoxsを求め(即ち、偏差積分値SDVoxsを更新し)、ステップ1250に進む。
一方、ステップ1235にて「Yes」と判定される場合、CPU71はステップ1245に進んで、ステップ1210にて求めた出力偏差量DVoxsの符号が、「積分項Ksubiの値がガード制限中の学習値Learn(=G or −G)に近づく方向」に対応しているか否かを判定する。具体的には、ガード制限中の学習値Learnが値Gである場合、出力偏差量DVoxsの値が正(或いは、「0」)のときに「Yes」と判定され出力偏差量DVoxsの値が負のときに「No」と判定される。ガード制限中の学習値Learnが値−Gである場合、出力偏差量DVoxsの値が正のときに「No」と判定され出力偏差量DVoxsの値が負(或いは、「0」)のときに「Yes」と判定される。
CPU71はステップ1245にて「No」と判定する場合、上記ステップ1240の偏差積分値SDVoxsの更新処理を行った後ステップ1250に進む。一方、ステップ1245にて「Yes」と判定する場合、CPU71は上記ステップ1240の処理を行わずに直ちにステップ1250に進む。このように偏差積分値SDVoxsの更新(従って、積分項Ksubiの更新)を行わない処理が上述した「更新禁止処理」に対応する。
CPU71はステップ1250に進むと、上記偏差積分値SDVoxsに積分ゲインKiを乗じることで積分項Ksubiを求め(更新し)、続くステップ1255にて、前記求めた積分項Ksubiに対して上述した第2ガード処理(−G≦Ksubi≦G)を行う。
続いて、CPU71はステップ1260に進み、上記積分項Ksubiがガード制限中(即ち、Ksubi=G or −G))であるか否かを判定し、「No」と判定する場合、ステップ1270に直ちに進む。一方、「Yes」と判定する場合、CPU71はステップ1265に進んで、偏差積分値SDVoxsをガード制限中の積分項Ksubiの値に対応させるため、偏差積分値SDVoxsを値(Ksubi/Ki)に補正し、その後ステップ1270に進む。
CPU71はステップ1270に進むと、ステップ1255において第2ガード処理した積分項Ksubiと後述するルーチンにて求められている第3ガード処理された学習値Learnを加えて総和値SUMを求め、続くステップ1275にて、前記求めた総和値SUMに対して上述した第1ガード処理(−G≦SUB≦G)を行う。
そして、CPU71はステップ1280に進んで、上記ステップ1215にて求めた比例項Ksubpと、上記ステップ1225にて求めた微分項Ksubdと、上記ステップ1275にて第1ガード処理された総和値SUMと、上記(4)式とに基づいてサブFB補正量FBsubを求め、ステップ1295に進んで本ルーチンを一旦終了する。
以上により、サブFB補正量FBsubが求められる。このサブFB補正量FBsubが、前述した図10のステップ1010により制御用目標空燃比abyfrs(k)に反映され、この制御用目標空燃比abyfrs(k)に基づいて指令燃料噴射量Fi(k)が決定されることで上述したサブFB制御が実行される。
一方、ステップ1205の判定時において、サブフィードバック条件が不成立であると、CPU71は同ステップ1205にて「No」と判定してステップ1285に進んでサブFB補正量FBsubの値を「0」に設定し、その後、ステップ1295に進んで本ルーチンを一旦終了する。このように、サブフィードバック条件が不成立であるときは、サブFB補正量FBsubを「0」としてサブFB制御に基づく空燃比フィードバック制御を行わない。
<サブFB学習値Learnの更新>
次に、上述した積分項Ksubiの学習値Learnを更新する際の作動について説明すると、CPU71は図13にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(噴射指示開始時点)が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ1300から処理を開始し、まず、ステップ1305にて、サブフィードバック条件が成立しているか否かを判定する。このサブフィードバック条件は、先の図12のステップ1205におけるサブフィードバック条件と同一である。
CPU71はステップ1305にて「No」と判定する場合、ステップ1395に直ちに進んで本ルーチンを一旦終了する。この場合、学習値Learnの更新は行われない。一方、CPU71はステップ1305にて「Yes」と判定する場合、ステップ1310に進んで、先のステップ1255にて第2ガード処理された積分項Ksubiの値をローパスフィルタ処理してなまし処理後積分項Ksubilowを求める。
続いて、CPU71はステップ1315に進み、学習値Learnの更新タイミングが到来したか否かを判定し、「No」と判定する場合、ステップ1395に直ちに進んで本ルーチンを一旦終了する。この場合、学習値Learnの更新は行われない。本例では、学習値Learnの更新タイミングは、燃料噴射が所定回数行われる毎に到来する。
いま、学習値Learnの更新タイミングが到来したものとすると、CPU71はステップ1315にて「Yes」と判定してステップ1320に進み、学習値の更新値DLearnを、先のステップ1310にて更新されている現時点でのなまし処理後積分項Ksubilowの値に設定する。
続いて、CPU71はステップ1325に進んで、その時点においてバックアップRAM74に記憶されている学習値Learnに上記ステップ1320にて求めた更新値DLearnを加えて、新たな学習値Learnを求め(即ち、学習値Learnを更新し)、続くステップ1330にて、前記更新した学習値Learnに対して上述した第3ガード処理(−G≦Learn≦G)を行う。この第3ガード処理された学習値Learnは、バックアップRAM74に記憶される。
次いで、CPU71はステップ1335に進み、上記学習値Learnがガード制限中(即ち、Learn=G or −G))であるか否かを判定し、「No」と判定する場合、ステップ1345に直ちに進む。一方、「Yes」と判定する場合、CPU71はステップ1340に進んで、更新値DLearnを、ガード制限されている学習値Learnから、前回の学習値Learnの更新時において後述するステップ1360にて更新されている前回の学習値Learn1を減じた値に補正し、その後ステップ1345に進む。
CPU71はステップ1345に進むと、その時点において先のステップ1255にて第2ガード処理された積分項Ksubiから上記更新値DLearnを減じることで、更新値DLearnの分を積分項Ksubiから差し引き、続くステップ1350にて、偏差積分値SDVoxsを上記差し引かれた後の積分項Ksubiの値に対応させるため、偏差積分値SDVoxsを値(Ksubi/Ki)に補正する。
そして、CPU71はステップ1355に進んで、なまし処理後積分項Ksubilowの値を「0」にクリアし、続くステップ1360にて前回の学習値Learn1を、上記ステップ1330にて第3ガード処理された学習値Learnと等しい値に設定した後、ステップ1395に進んで本ルーチンを一旦終了する。
このように、更新タイミングが到来する毎に、第2ガード処理された積分項Ksubiの値の定常的な成分(=Ksubilow)が第3ガード処理された学習値Learnに移し変えられていき、これにより、学習値Learnが更新されていく。
<基本燃料噴射量補正係数の計算、及び記憶>
次に、基本燃料噴射量補正係数KFを計算する際の作動について説明すると、CPU71は図14にフローチャートにより示したルーチンを、燃料噴射気筒について燃料噴射開始時期(噴射指示開始時点)が到来する毎に、繰り返し実行するようになっている。
従って、燃料噴射気筒について燃料噴射開始時期が到来すると、CPU71はステップ1400から処理を開始し、ステップ1405に進んで、メインフィードバック条件が成立しているか否かを判定し、「No」と判定する場合、ステップ1495に直ちに進んで本ルーチンを一旦終了する。この場合、基本燃料噴射量補正係数KFの計算、及び基本燃料噴射量補正係数KFの値のバックアップRAM74への記憶処理が実行されない。このメインフィードバック条件は、上記ステップ1020、1105におけるメインフィードバック条件と同一である。
いま、メインフィードバック条件が成立しているものとして説明を続けると、CPU71はステップ1405にて「Yes」と判定してステップ1410に進み、テーブルMapN(Mc(k),NE)に基づいてストローク数Nを決定する。
次に、CPU71はステップ1415に進んで、現時点からNストローク前の指令燃料噴射量Fi(k−N)と、先のステップ1110にて求めた今回の検出空燃比abyfs(k)と、現時点からNストローク前の制御用目標空燃比abyfrs(k−N)と、上記(10)式とに基づいて、基本燃料噴射量相当指令噴射量Fbasetを求める。
次いで、CPU71はステップ1420に進んで、上記基本燃料噴射量相当指令噴射量Fbasetと、現時点からNストローク前の補正前基本燃料噴射量Fbaseb(k−N)と、上記(11)式とに基づいてローパスフィルタ処理前の基本燃料噴射量補正係数KF1を求める。
次に、CPU71はステップ1425に進み、上記ローパスフィルタ処理前の基本燃料噴射量補正係数KF1をローパスフィルタA15fによりローパスフィルタ処理して基本燃料噴射量補正係数KFを取得する。
次に、CPU71はステップ1430に進んで、KF記憶条件が成立したか否かを判定する。基本燃料噴射量補正係数KFの記憶処理は、基本燃料噴射量補正係数KFの値が安定している定常運転状態において実行されることが好ましい。本例では、KF記憶条件は、機関10が所定の定常運転状態(例えば、運転速度NE、及びアクセルペダル操作量Accpの変動幅が現時点までの所定期間に亘って所定値以下の状態)にある場合に成立する。
いま、KF記憶条件が成立しているものとすると、CPU71はステップ1430にて「Yes」と判定してステップ1435に進んで、筒内吸入空気量Mc(k)の最新値から選択されるKFmem(m)(m:1,2,3,4)の値を先のステップ1425にて求めた基本燃料噴射量補正係数KFと等しい値に更新し、同更新されたKFmem(m)の値をバックアップRAM74の対応するメモリに記憶した後ステップ1495に進む。一方、CPU71はステップ1430にて「No」と判定した場合、ステップ1435の処理を実行することなく直ちにステップ1495に進む。
これにより、メインフィードバック条件が成立している場合において、燃料噴射気筒について燃料噴射開始時期が到来する毎に、基本燃料噴射量補正係数KFの計算(更新)が実行されていく。そして、前述した図10のルーチンのステップ1025にて、上述のように計算(更新)される基本燃料噴射量補正係数KFの最新値が使用されることで、補正前基本燃料噴射量Fbaseb(k)が補正されていく。加えて、KF記憶条件が成立している場合、基本燃料噴射量補正係数KFの値のバックアップRAM74への記憶処理が実行されていく。
以上、説明したように、本発明による内燃機関の空燃比制御装置の実施形態によれば、下流側目標値Voxsrefと下流側空燃比センサ67の出力値の差(=出力偏差量DVoxs)についての積分項Ksubiの定常的な成分(=なまし処理後積分項Ksubilow)は所定のタイミング毎に学習値Learnに移し変えられていく。従って、積分項Ksubiの値と学習値Learnの和(=総和値SUM)は、実質的な積分項の値として機能する。総和値SUMには「第1ガード処理」(−G≦SUM≦G)が施され、第1ガード処理された総和値SUMがサブFB制御に使用されるサブFB補正量FBsub(=比例項Ksubp+微分項Ksubd+総和値SUM)の算出に使用される。
これにより、サブFB制御による空燃比補正を行う際における実質的な積分項として機能する総和値SUMそのものに対して直接ガード処理がなされることになる。従って、空燃比補正に対するガード処理を適切に行うことができ、この結果、空燃比が可燃領域から逸脱する等の問題の発生を効果的に抑制することができる。
また、総和値SUM(=Ksubi+Learn)の算出に使用される積分項Ksubi、及び学習値Learnにはそれぞれ、「第2ガード処理」(−G≦Ksubi≦G)、「第3ガード処理」(−G≦Learn≦G)が施されて、更には、上述した「更新禁止処理」も施される。これらにより、一旦ガード値(値G、又は値−G)に張り付いた総和値SUMがガード範囲内(−G<SUM<G)に戻る時期を早くすることができる。この結果、空燃比が理論空燃比と大きく異なる値に維持される期間を短くすることができるから、エミッションの悪化を抑制することができる。
更には、サブFB補正量FBsubにおいて出力偏差量DVoxsについての積分項(=総和値SUM)が含まれているから、上流側空燃比センサ66の出力値Vabyfsに誤差がある場合であっても、定常状態において第1触媒53の下流の空燃比が下流側目標値Voxsrefに対応する空燃比(即ち、理論空燃比)に収束することが保証され得る。
また、上流側空燃比センサ66の出力値Vabyfsに基づく値であってハイパスフィルタ処理された値に基づくメインFB制御により、過渡の外乱に対して適切な空燃比の補正が実行され得る。
加えて、上記(10)式〜(12)式に従って得られる基本燃料噴射量補正係数KFを補正前基本燃料噴射量Fbaseb(k)に乗じることで「基本燃料噴射量の補正」が行われる。これにより、上記「燃料噴射量の誤差」が適切に補償され得る。
本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。例えば、上記実施形態においては、総和値SUMを含むサブFB補正量FBsubに応じて目標空燃比(制御用目標空燃比abyfrs)を変更することでサブFB制御を行っているが、総和値SUMを含むサブFB補正量FBsubに応じて上流側空燃比センサ66の出力値Vabyfsを補正し、補正した出力値に基づいてサブFB制御を行ってもよいし、総和値SUMを含むサブFB補正量FBsubに応じて基本燃料噴射量を直接補正することでサブFB制御を行ってもよい。
また、上記実施形態においては、総和値SUMに対する「第1ガード処理」に使用されるガード値(第1ガード値)、積分項Ksubiに対する「第2ガード処理」に使用されるガード値(第2ガード値)、及び学習値Learnに対する「第3ガード処理」に使用されるガード値(第3ガード値)が、全て同じ値(値G or 値−G)となっているが、互いに異ならせてもよい。
また、上記実施形態においては、「第1ガード処理」に加えて、「第2ガード処理」、「第3ガード処理」、及び「更新禁止処理」が行われているが、「第2ガード処理」が行われなくてもよい。或いは、「第3ガード処理」及び「更新禁止処理」が行われなくてもよい。或いは、「第2ガード処理」、「第3ガード処理」、及び「更新禁止処理」が全て行われなくてもよい。
また、上記実施形態においては、学習値として、出力偏差量DVoxsの時間積分値である偏差積分値SDVoxsに積分ゲインKiを乗じて得られる積分項Ksubiの定常的な成分を表す値(=Learn)を使用し、第1ガード処理される総和値SUMとして、積分項Ksubiと学習値Learnの和を使用しているが、図15に示すように、学習値として、偏差積分値SDVoxsそのものの定常的な成分を表す値(=Learn1)を使用し、第1ガード処理される総和値SUM1として、偏差積分値SDVoxsと学習値Learn1の和を使用してもよい。図15において、第1〜第3ガード処理に使用されるガード値G1は、図5におけるガード値Gを積分ゲインKiで除した値である。
この場合、第1ガード処理された総和値SUM1に積分ゲインKiを乗じることで積分項Ksubiが求められ(機能ブロックA9lを参照)、サブFB補正量FBsubは、下記(14)式に従って求められる。これによっても、第1実施形態と同じ作用・効果を得ることができる。
FBsub=Ksubp+Ksubi+Ksubd ・・・(14)
本発明の実施形態に係る空燃比制御装置を適用した内燃機関の概略図である。 図1に示した上流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。 図1に示した下流側空燃比センサの出力電圧と空燃比との関係を示したグラフである。 図1に示した空燃比制御装置が空燃比フィードバック制御を実行する際の機能ブロック図である。 図4に示したサブFB補正量算出手段がサブFB補正量を算出する際の機能ブロック図である。 図1に示した空燃比制御装置の比較対象として、図1に示した空燃比制御装置において「第1ガード処理」、「第2ガード処理」、「第3ガード処理」、及び「更新禁止処理」の全てを行わないもの(比較対象装置A)を使用した場合における、下流側空燃比センサの出力値、積分項、なまし処理後積分項、学習値、及び総和値(=積分項+学習値)の変化の一例を示したタイムチャートである。 図1に示した空燃比制御装置の比較対象として、図6Aに示した比較対象装置Aにおいて「第1ガード処理」を行うもの(比較対象装置B)を使用した場合における、図6Aに対応するタイムチャートである。 図1に示した空燃比制御装置の比較対象として、図6Bに示した比較対象装置Bにおいて「第2ガード処理」及び「第3ガード処理」を行うもの(比較対象装置C)を使用した場合における、図6Bに対応するタイムチャートである。 図1に示した空燃比制御装置を使用した場合における、図6Cに対応するタイムチャートである。 図1に示したCPUが参照する、運転速度及び筒内吸入空気量と、遅れ時間に相当するストローク数との関係を規定するテーブルを示したグラフである。 図4に示した基本燃料噴射量補正係数設定手段が基本燃料噴射量補正係数を設定する際の機能ブロック図である。 計算された基本燃料噴射量補正係数が筒内吸入空気量に応じて分類されてバックアップRAMのメモリに記憶されている様子を示した図である。 図1に示したCPUが実行する指令燃料噴射量の計算、及び噴射指示を行うためのルーチンを示したフローチャートである。 図1に示したCPUが実行するメインFB補正量を計算するためのルーチンを示したフローチャートである。 図1に示したCPUが実行するサブFB補正量を計算するためのルーチンを示したフローチャートである。 図1に示したCPUが実行する学習値の更新を行うためのルーチンを示したフローチャートである。 図1に示したCPUが実行する基本燃料噴射量補正係数を計算するためのルーチンを示したフローチャートである。 本発明の実施形態の変形例に係る空燃比制御装置におけるサブFB補正量算出手段がサブFB補正量を算出する際の機能ブロック図である。
符号の説明
10…内燃機関、25…燃焼室、39…インジェクタ、51…エキゾーストマニホールド、53…三元触媒(第1触媒)、66…上流側空燃比センサ、67…下流側空燃比センサ、70…電気制御装置、71…CPU、74…バックアップRAM

Claims (5)

  1. 内燃機関の排気通路に配設された触媒と、
    前記触媒よりも下流の前記排気通路に配設されて前記触媒から流出するガスの空燃比に応じた値を出力する下流側空燃比センサと、
    燃料を噴射する燃料噴射手段と、
    を備えた内燃機関に適用される内燃機関の空燃比制御装置であって、
    前記下流側空燃比センサの出力値と目標空燃比に相当する目標値との偏差に相当する値を積算して更新されていく偏差積分値を算出する積分値算出手段と、
    前記偏差積分値に基づく値を用いて前記偏差積分値に基づく値の定常的な成分を表す学習値を算出・更新するとともに、前記更新による学習値の変化量に相当する分を前記偏差積分値に基づく値から差し引く学習手段と、
    前記偏差積分値に基づく値と前記学習値の和である総和値を算出する総和値算出手段と、
    前記総和値が第1ガード値を超えた場合に同総和値を同第1ガード値に制限する第1ガード処理を行う第1ガード処理実行手段と、
    前記第1ガード処理された総和値に少なくとも基づいて前記触媒に流入するガスの空燃比が前記目標空燃比になるように前記燃料噴射手段から噴射される燃料の量をフィードバック制御する空燃比フィードバック制御手段と、
    を備えた内燃機関の空燃比制御装置であり、
    前記偏差積分値に基づく値が第2ガード値を超えた場合に同偏差積分値に基づく値を同第2ガード値に制限する第2ガード処理を行う第2ガード処理実行手段を備えるとともに、前記総和値算出手段が、前記総和値として前記第2ガード処理された偏差積分値に基づく値と前記学習値の和を使用するように構成され、又は、
    前記学習値が第3ガード値を超えた場合に同学習値を同第3ガード値に制限する第3ガード処理を行う第3ガード処理実行手段を備えるとともに、前記総和値算出手段が、前記総和値として前記偏差積分値に基づく値と前記第3ガード処理された学習値の和を使用するように構成された内燃機関の空燃比制御装置
  2. 請求項1に記載の内燃機関の空燃比制御装置であって、
    前記偏差積分値に基づく値が第2ガード値を超えた場合に同偏差積分値に基づく値を同第2ガード値に制限する第2ガード処理を行う第2ガード処理実行手段と、
    前記学習値が第3ガード値を超えた場合に同学習値を同第3ガード値に制限する第3ガード処理を行う第3ガード処理実行手段と、
    を備え、
    前記総和値算出手段は、
    前記総和値として、前記第2ガード処理された偏差積分値に基づく値と前記第3ガード処理された学習値の和を使用するように構成された内燃機関の空燃比制御装置。
  3. 請求項2に記載の内燃機関の空燃比制御装置において、
    前記第1ガード値、前記第2ガード値、及び前記第3ガード値として同じ値が使用された内燃機関の空燃比制御装置。
  4. 請求項1乃至請求項3の何れか一項に記載の内燃機関の空燃比制御装置であって、
    前記積分値算出手段は、
    前記学習値が前記第3ガード値に制限されている場合、前記偏差積分値に基づく値が前記第1ガード値に近づく方向に対応する前記偏差積分値の更新を行わないように構成された内燃機関の空燃比制御装置。
  5. 請求項1乃至請求項4の何れか一項に記載の内燃機関の空燃比制御装置であって、
    前記内燃機関は、前記触媒よりも上流の前記排気通路に配設されて前記触媒に流入するガスの空燃比に応じた値を出力する上流側空燃比センサを備え、
    前記空燃比フィードバック制御手段は、
    前記第1ガード処理された総和値と前記上流側空燃比センサの出力値とに少なくとも基づいて前記触媒に流入するガスの空燃比が前記目標空燃比になるように前記燃料噴射手段から噴射される燃料の量をフィードバック制御するように構成された内燃機関の空燃比制御装置。
JP2006144375A 2006-05-24 2006-05-24 内燃機関の空燃比制御装置 Active JP4770589B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006144375A JP4770589B2 (ja) 2006-05-24 2006-05-24 内燃機関の空燃比制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006144375A JP4770589B2 (ja) 2006-05-24 2006-05-24 内燃機関の空燃比制御装置

Publications (2)

Publication Number Publication Date
JP2007315249A JP2007315249A (ja) 2007-12-06
JP4770589B2 true JP4770589B2 (ja) 2011-09-14

Family

ID=38849345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006144375A Active JP4770589B2 (ja) 2006-05-24 2006-05-24 内燃機関の空燃比制御装置

Country Status (1)

Country Link
JP (1) JP4770589B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03258944A (ja) * 1990-03-07 1991-11-19 Nissan Motor Co Ltd エンジンの空燃比制御装置
JP3775570B2 (ja) * 2001-02-05 2006-05-17 株式会社デンソー 内燃機関の空燃比制御装置
JP4182833B2 (ja) * 2003-07-16 2008-11-19 トヨタ自動車株式会社 内燃機関の空燃比制御装置
JP3997971B2 (ja) * 2003-09-04 2007-10-24 日産自動車株式会社 内燃機関の空燃比制御装置
JP2005113729A (ja) * 2003-10-06 2005-04-28 Toyota Motor Corp 内燃機関の空燃比制御装置

Also Published As

Publication number Publication date
JP2007315249A (ja) 2007-12-06

Similar Documents

Publication Publication Date Title
JP4315179B2 (ja) 内燃機関の空燃比制御装置
JP4329799B2 (ja) 内燃機関の空燃比制御装置
JP4380625B2 (ja) 内燃機関の空燃比制御装置
CN100513760C (zh) 内燃机空燃比控制设备
JP4957559B2 (ja) 内燃機関の空燃比制御装置
JP2007162565A (ja) 内燃機関の空燃比制御装置
JP2004044454A (ja) 内燃機関の燃料噴射量制御装置
JP2009002251A (ja) 内燃機関の空燃比制御装置
JP2010169038A (ja) 多気筒内燃機関の気筒間空燃比ばらつき判定装置
JP2007247476A (ja) 内燃機関の制御装置
JP4364777B2 (ja) 内燃機関の空燃比制御装置
JP2007100575A (ja) 内燃機関の制御装置
JP5644291B2 (ja) 内燃機関の燃料噴射量制御装置
JPH1073042A (ja) 内燃機関の空燃比制御装置
JP4978749B2 (ja) 内燃機関の燃料噴射量制御装置
JP4553144B2 (ja) 内燃機関の燃料噴射制御装置
JP2009257192A (ja) 内燃機関の燃料噴射割合制御装置
JP2007231750A (ja) 内燃機関の空燃比制御装置
JP4770589B2 (ja) 内燃機関の空燃比制御装置
JP4725478B2 (ja) 内燃機関の空燃比制御装置
JP4710716B2 (ja) 内燃機関の空燃比制御装置
JP2009036107A (ja) 内燃機関の空燃比制御装置
JP4710715B2 (ja) 内燃機関の空燃比制御装置
JP2007262898A (ja) 内燃機関の空燃比制御装置
JP2007291984A (ja) 内燃機関の空燃比制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090318

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100924

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110606

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4770589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3