以下、図面を参照しながら、本発明の第1実施形態に係る内燃機関の制御装置について説明する。この制御装置1は、図2に示すように、ECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の運転状態に応じて、空燃比制御および点火時期制御などの制御処理を実行する。
図1および図3に示すように、エンジン3は、4組の気筒3aおよびピストン3b(1組のみ図示)を有する直列4気筒ガソリンエンジンであり、図示しない自動変速機付きの車両に搭載されている。エンジン3は、気筒3a毎に設けられ、吸気ポートおよび排気ポートをそれぞれ開閉する吸気弁4および排気弁7と、吸気弁4駆動用の吸気カムシャフト5および吸気カム6と、吸気弁4を開閉駆動する可変式吸気動弁機構40と、排気弁7駆動用の排気カムシャフト8および排気カム9と、排気弁7を開閉駆動する排気動弁機構30と、燃料噴射弁10と、点火プラグ11(図2参照)などを備えている。
吸気弁4は、そのステム4aがガイド4bに摺動自在に嵌合しており、このガイド4bは、シリンダヘッド3cに固定されている。さらに、吸気弁4は、図4に示すように、上下のスプリングシート4c,4dと、これらの間に設けられたバルブスプリング4eとを備えており、このバルブスプリング4eにより、閉弁方向に付勢されている。
また、吸気カムシャフト5および排気カムシャフト8はそれぞれ、図示しないホルダを介して、シリンダヘッド3cに回動自在に取り付けられている。この吸気カムシャフト5の一端部上には、吸気スプロケット(図示せず)が同軸に配置され、回転自在に設けられている。この吸気スプロケットは、図示しないタイミングチェーンを介してクランクシャフト3dに連結され、後述する可変カム位相機構70を介して吸気カムシャフト5に連結されている。以上の構成により、吸気カムシャフト5は、クランクシャフト3dが2回転する毎に1回転する。また、吸気カム6は、吸気カムシャフト5上にこれと一体に回転するように気筒3a毎に設けられている。
さらに、可変式吸気動弁機構40は、吸気カムシャフト5の回転に伴って、各気筒3aの吸気弁4を開閉駆動するとともに、吸気弁4のリフトおよびバルブタイミングを無段階に変更するものであり、その詳細については、後述する。なお、本実施形態では、「吸気弁4のリフト(以下「バルブリフト」という)」は、吸気弁4の最大揚程を表すものとする。
一方、排気弁7は、そのステム7aがガイド7bに摺動自在に嵌合しており、このガイド7bは、シリンダヘッド3cに固定されている。さらに、排気弁7は、上下のスプリングシート7c,7dと、これらの間に設けられたバルブスプリング7eとを備えており、このバルブスプリング7eにより、閉弁方向に付勢されている。
また、排気カムシャフト8は、これと一体の排気スプロケット(図示せず)を備え、この排気スプロケットおよび図示しないタイミングチェーンを介してクランクシャフト3dに連結されており、それにより、クランクシャフト3dが2回転する毎に1回転する。さらに、排気カム9は、排気カムシャフト8上にこれと一体に回転するように気筒3a毎に設けられている。
さらに、排気動弁機構30は、ロッカアーム31を備えており、このロッカアーム31が排気カム9の回転に伴って回動することにより、バルブスプリング7eの付勢力に抗しながら、排気弁7を開閉駆動する。
一方、燃料噴射弁10は、気筒3a毎に設けられ、燃料を燃焼室内に直接噴射するように、傾斜した状態でシリンダヘッド3cに取り付けられている。すなわち、エンジン3は直噴エンジンとして構成されている。また、燃料噴射弁10は、ECU2に電気的に接続されており、ECU2により、開弁時間および開弁タイミングが制御され、それにより、燃料噴射量が制御される。
また、点火プラグ11も、気筒3a毎に設けられ、シリンダヘッド3cに取り付けられている。点火プラグ11は、ECU2に電気的に接続されており、ECU2により、後述する点火時期に応じたタイミングで燃焼室内の混合気を燃焼させるように、放電状態が制御される。
一方、エンジン3には、クランク角センサ20および水温センサ21が設けられている。このクランク角センサ20は、マグネットロータおよびMREピックアップで構成されており、クランクシャフト3dの回転に伴い、いずれもパルス信号であるCRK信号およびTDC信号をECU2に出力する。このCRK信号は、所定クランク角(例えば10゜)毎に1パルスが出力され、ECU2は、このCRK信号に基づき、エンジン3の機関回転数(以下「エンジン回転数」という)NEを算出する。また、TDC信号は、各気筒3aのピストン3bが吸気行程のTDC位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角毎に1パルスが出力される。本実施形態では、クランク角センサ20が、動作状態パラメータ検出手段および負荷パラメータ検出手段に相当し、エンジン回転数NEが負荷パラメータに相当する。
また、水温センサ21は、例えばサーミスタなどで構成されており、エンジン水温TWを表す検出信号をECU2に出力する。このエンジン水温TWは、エンジン3のシリンダブロック3h内を循環する冷却水の温度である。
さらに、エンジン3の吸気管12では、スロットル弁機構が省略されているとともに、その吸気通路12aが大口径に形成されており、それにより、流動抵抗が通常のエンジンよりも小さくなるように設定されている。この吸気管12には、エアフローセンサ22および吸気温センサ23(図2参照)が設けられている。
このエアフローセンサ22(空気流量検出手段)は、熱線式エアフローメータで構成されており、吸気通路12a内を流れる空気の流量(以下「空気流量」という)Ginを表す検出信号をECU2に出力する。なお、空気流量Ginの単位は、g/secである。また、吸気温センサ23は、吸気通路12a内を流れる空気の温度(以下「吸気温」という)TAを表す検出信号をECU2に出力する。
さらに、エンジン3の排気管13には、図示しない触媒装置よりも上流側にLAFセンサ24(空燃比パラメータ検出手段)が設けられている。LAFセンサ24は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気管13の排気通路13a内を流れる排気ガス中の酸素濃度をリニアに検出し、それを表す検出信号をECU2に出力する。ECU2は、このLAFセンサ24の検出信号の値に基づき、排気ガス中の空燃比を表す検出空燃比KACTを算出する。なお、この検出空燃比KACT(空燃比パラメータ)は、具体的には当量比として算出される。
次に、前述した可変式吸気動弁機構40について説明する。この可変式吸気動弁機構40は、図4に示すように、吸気カムシャフト5、吸気カム6、可変バルブリフト機構50および可変カム位相機構70などで構成されている。
この可変バルブリフト機構50(可変吸気機構)は、吸気カムシャフト5の回転に伴って吸気弁4を開閉駆動するとともに、バルブリフトLiftinを所定の最大値Liftinmaxと最小値Liftinminとの間で無段階に変更するものであり、気筒3a毎に設けられた四節リンク式のロッカアーム機構51と、これらのロッカアーム機構51を同時に駆動するリフトアクチュエータ60(図5参照)などを備えている。
各ロッカアーム機構51は、ロッカアーム52および上下のリンク53,54などで構成されている。この上リンク53の一端部は、上ピン55を介して、ロッカアーム52の上端部に回動自在に取り付けられており、他端部は、ロッカアームシャフト56に回動自在に取り付けられている。このロッカアームシャフト56は、図示しないホルダを介して、シリンダヘッド3cに取り付けられている。
また、ロッカアーム52の上ピン55上には、ローラ57が回動自在に設けられている。このローラ57は、吸気カム6のカム面に当接しており、吸気カム6が回転する際、そのカム面に案内されながら吸気カム6上を転動する。これにより、ロッカアーム52は上下方向に駆動されるとともに、上リンク53が、ロッカアームシャフト56を中心として回動する。
さらに、ロッカアーム52の吸気弁4側の端部には、アジャストボルト52aが取り付けられている。このアジャストボルト52aは、吸気カム6の回転に伴ってロッカアーム52が上下方向に移動すると、バルブスプリング4eの付勢力に抗しながら、ステム4aを上下方向に駆動し、吸気弁4を開閉する。
また、下リンク54の一端部は、下ピン58を介して、ロッカアーム52の下端部に回動自在に取り付けられており、下リンク54の他端部には、連結軸59が回動自在に取り付けられている。下リンク54は、この連結軸59を介して、リフトアクチュエータ60の後述する短アーム65に連結されている。
一方、リフトアクチュエータ60は、図5に示すように、モータ61、ナット62、リンク63、長アーム64および短アーム65などを備えている。このモータ61は、ECU2に接続され、エンジン3のヘッドカバー3gの外側に配置されている。モータ61の回転軸は、雄ねじが形成されたねじ軸61aになっており、このねじ軸61aに、ナット62が螺合している。このナット62は、リンク63を介して、長アーム64に連結されている。このリンク63の一端部は、ピン63aを介して、ナット62に回動自在に取り付けられ、他端部は、ピン63bを介して、長アーム64の一端部に回動自在に取り付けられている。
また、長アーム64の他端部は、回動軸66を介して短アーム65の一端部に取り付けられている。この回動軸66は、断面円形に形成され、エンジン3のヘッドカバー3gを貫通しているとともに、これに回動自在に支持されている。この回動軸66の回動に伴い、長アーム64および短アーム65はこれと一体に回動する。
さらに、短アーム65の他端部には、前述した連結軸59が回動自在に取り付けられており、これにより、短アーム65は、連結軸59を介して、下リンク54に連結されている。
次に、以上のように構成された可変バルブリフト機構50の動作について説明する。この可変バルブリフト機構50では、ECU2からの後述するリフト制御入力U_Liftinがリフトアクチュエータ60に入力されると、ねじ軸61aが回転し、それに伴うナット62の移動により、長アーム64および短アーム65が回動軸66を中心として回動するとともに、この短アーム65の回動に伴って、ロッカアーム機構51の下リンク54が、下ピン58を中心として回動する。すなわち、リフトアクチュエータ60により、下リンク54が駆動される。
その際、ECU2の制御により、短アーム65の回動範囲は、図5(a)に示す最大リフト位置と図5(b)に示す最小リフト位置との間に規制され、それにより、下リンク54の回動範囲も、図4に実線で示す最大リフト位置と、図4に2点鎖線で示す最小リフト位置との間に規制される。
下リンク54が最大リフト位置にある場合、ロッカアームシャフト56、上下のピン55,58および連結軸59によって構成される四節リンクでは、上ピン55および下ピン58の中心間の距離が、ロッカアームシャフト56および連結軸59の中心間の距離よりも長くなるように構成されており、それにより、図6(a)に示すように、吸気カム6が回転すると、これとローラ57との当接点の移動量よりも、アジャストボルト52aの移動量の方が大きくなる。
一方、下リンク54が最小リフト位置にある場合、上記四節リンクでは、上ピン55および下ピン58の中心間の距離が、ロッカアームシャフト56および連結軸59の中心間の距離よりも短くなるように構成されており、それにより、図6(b)に示すように、吸気カム6が回転すると、これとローラ57との当接点の移動量よりも、アジャストボルト52aの移動量の方が小さくなる。
以上の理由により、吸気弁4は、下リンク54が最大リフト位置にあるときには、最小リフト位置にあるときよりも大きなバルブリフトLiftinで開弁する。具体的には、吸気カム6の回転中、吸気弁4は、下リンク54が最大リフト位置にあるときには、図7の実線で示すバルブリフト曲線に従って開弁し、バルブリフトLiftinは、その最大値Liftinmaxを示す。一方、下リンク54が最小リフト位置にあるときには、図7の2点鎖線で示すバルブリフト曲線に従って開弁し、バルブリフトLiftinは、その最小値Liftinminを示す。
したがって、この可変バルブリフト機構50では、アクチュエータ60を介して、下リンク54を最大リフト位置と最小リフト位置との間で回動させることにより、バルブリフトLiftinを、最大値Liftinmaxと最小値Liftinminとの間で無段階に変化させることができる。
なお、この可変バルブリフト機構50には、図示しないロック機構が設けられており、このロック機構により、リフト制御入力U_Liftinが後述する故障時用値U_Liftin_fsに設定されているときや、断線などによりECU2からのリフト制御入力U_Liftinがリフトアクチュエータ60に入力されないときには、可変バルブリフト機構50の動作がロックされる。すなわち、可変バルブリフト機構50によるバルブリフトLiftinの変更が禁止され、バルブリフトLiftinが最小値Liftinminに保持される。なお、この最小値Liftinminは、カム位相Cainが後述するロック値に保持されている場合において、吸入空気量として後述する所定の故障時用値Gcyl_fsを確保できるような値に設定されている。この所定の故障時用値Gcyl_fs(所定値)は、停車中はアイドル運転やエンジン始動を適切に行うことができると同時に、走行中は低速走行状態を維持できるような値に設定されている。
また、エンジン3には、回動角センサ25が設けられており(図2参照)、この回動角センサ25は、回動軸66すなわち短アーム65の回動角を検出して、その検出信号をECU2に出力する。ECU2は、この回動角センサ25の検出信号に基づき、バルブリフトLiftinを算出する。本実施形態では、回動角センサ25が動作状態パラメータ検出手段および負荷パラメータ検出手段に相当し、バルブリフトLiftinが動作状態パラメータおよび負荷パラメータに相当する。
次に、前述した可変カム位相機構70(可変吸気機構)について説明する。この可変カム位相機構70は、吸気カムシャフト5のクランクシャフト3dに対する相対的な位相(以下「カム位相」という)Cainを無段階に進角側または遅角側に変更するものであり、吸気カムシャフト5の吸気スプロケット側の端部に設けられている。図8に示すように、可変カム位相機構70は、ハウジング71、3枚羽根式のベーン72、油圧ポンプ73および電磁弁機構74などを備えている。
このハウジング71は、吸気カムシャフト5上の吸気スプロケットと一体に構成されており、互いに等間隔に形成された3つの隔壁71aを備えている。ベーン72は、吸気カムシャフト5の吸気スプロケット側の端部に同軸に取り付けられ、吸気カムシャフト5から外方に放射状に延びているとともに、ハウジング71内に回転可能に収容されている。また、ハウジング71では、隔壁71aとベーン72との間に、3つの進角室75および3つの遅角室76が形成されている。
油圧ポンプ73は、クランクシャフト3dに連結された機械式のものであり、クランクシャフト3dが回転すると、それに伴って、エンジン3のオイルパン3eに蓄えられた潤滑用のオイルを、油路77cを介して吸い込むとともに、これを昇圧した状態で、油路77cを介して電磁弁機構74に供給する。
電磁弁機構74は、スプール弁機構74aおよびソレノイド74bを組み合わせたものであり、進角油路77aおよび遅角油路77bを介して、進角室75および遅角室76にそれぞれ接続されているとともに、油圧ポンプ73から供給された油圧を、進角油圧Padおよび遅角油圧Prtとして、進角室75および遅角室76にそれぞれ出力する。電磁弁機構74のソレノイド74bは、ECU2に電気的に接続されており、ECU2からの後述する位相制御入力U_Cainが入力された際、スプール弁機構74aのスプール弁体を、位相制御入力U_Cainに応じて所定の移動範囲内で移動させることにより、進角油圧Padおよび遅角油圧Prtをいずれも変化させる。
以上の可変カム位相機構70では、油圧ポンプ73の動作中、電磁弁機構74が制御入力U_Cainに応じて作動することにより、進角油圧Padが進角室75に、遅角油圧Prtが遅角室76にそれぞれ供給され、それにより、ベーン72とハウジング71との間の相対的な位相が進角側または遅角側に変更される。その結果、前述したカム位相Cainが、最遅角値Cainrt(例えばカム角0゜に相当する値)と最進角値Cainad(例えばカム角55゜分に相当する値)の間で連続的に変化し、それにより、吸気弁4のバルブタイミングは、図9に実線で示す最遅角タイミングと、図9に2点鎖線で示す最進角タイミングとの間で、無段階に変更される。
なお、この可変カム位相機構70には、図示しないロック機構が設けられており、このロック機構により、油圧ポンプ73からの供給油圧が低いとき、位相制御入力U_Cainが後述する故障時用値U_Cain_fsに設定されているとき、および断線などにより位相制御入力U_Cainが電磁弁機構74に入力されないときには、可変カム位相機構70の動作がロックされる。すなわち、可変カム位相機構70によるカム位相Cainの変更が禁止され、カム位相Cainが所定のロック値に保持される。この所定のロック値は、前述したように、バルブリフトLiftinが最小値Liftinminに保持されている場合において、吸入空気量として所定の故障時用値Gcyl_fsを確保できるような値に設定されている。
以上のように、本実施形態の可変式吸気動弁機構40では、可変バルブリフト機構50により、バルブリフトLiftinが無段階に変更されるとともに、可変カム位相機構70により、カム位相Cainすなわち吸気弁4のバルブタイミングが前述した最遅角タイミングと最進角タイミングとの間で、無段階に変更される。また、ECU2により、後述するように、可変バルブリフト機構50および可変カム位相機構70を介して、バルブリフトLiftinおよびカム位相Cainがそれぞれ制御され、それにより、吸入空気量が制御される。
一方、吸気カムシャフト5の可変カム位相機構70と反対側の端部には、カム角センサ26(図2参照)が設けられている。このカム角センサ26は、例えばマグネットロータおよびMREピックアップで構成されており、吸気カムシャフト5の回転に伴い、パルス信号であるCAM信号を所定のカム角(例えば1゜)毎にECU2に出力する。ECU2は、このCAM信号および前述したCRK信号に基づき、カム位相Cainを算出する。本実施形態では、カム角センサ26が動作状態パラメータ検出手段および負荷パラメータ検出手段に相当し、カム位相Cainが動作状態パラメータおよび負荷パラメータに相当する。
さらに、図2に示すように、ECU2には、アクセル開度センサ27およびイグニッション・スイッチ(以下「IG・SW」という)28が接続されている。このアクセル開度センサ27は、車両の図示しないアクセルペダルの踏み込み量(以下「アクセル開度」という)APを表す検出信号をECU2に出力する。また、IG・SW28は、イグニッションキー(図示せず)操作によりON/OFFされるとともに、そのON/OFF状態を表す信号をECU2に出力する。
ECU2は、CPU、RAM、ROMおよびI/Oインターフェース(いずれも図示せず)などからなるマイクロコンピュータで構成されており、前述した各種のセンサ20〜27の検出信号およびIG・SW28のON/OFF信号などに応じて、エンジン3の運転状態を判別するとともに、各種の制御を実行する。具体的には、ECU2は、後述するように、運転状態に応じて、空燃比制御および点火時期制御を実行する。これに加えて、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出するとともに、可変バルブリフト機構50および可変カム位相機構70を介して、バルブリフトLiftinおよびカム位相Cainをそれぞれ制御することにより、吸入空気量を制御する。
なお、本実施形態では、ECU2が、動作状態パラメータ検出手段、空燃比パラメータ検出手段、目標空燃比算出手段、空燃比制御パラメータ算出手段、補正手段、燃料量決定手段、負荷パラメータ検出手段、空燃比制御手段および点火時期決定手段に相当する。
次に、本実施形態の制御装置1について説明する。この制御装置1は、空燃比制御を実行する空燃比コントローラ100(図10参照)と、点火時期制御を実行する点火時期コントローラ130(図16参照)とを備えており、これらはいずれも、具体的には、ECU2により構成されている。本実施形態では、空燃比コントローラ100が燃料量決定手段および空燃比制御手段に相当し、点火時期コントローラ130が点火時期決定手段に相当する。
まず、空燃比コントローラ100について説明する。この空燃比コントローラ100は、以下に述べるように、燃料噴射量TOUT(燃料量)を燃料噴射弁10毎に算出するものであり、図10に示すように、第1および第2推定吸気量算出部101,102、移行係数算出部103、増幅要素104,105、加算要素106、増幅要素107、目標空燃比算出部108、空燃比補正係数算出部109、総補正係数算出部110、乗算要素111、燃料付着補正部112および補正後値算出部113を備えている。
第1推定吸気量算出部101では、以下に述べるように、第1推定吸気量Gcyl_vtが算出される。具体的には、エンジン回転数NEおよび補正後バルブリフトLiftin_compに応じて、図11に示すマップを検索することにより、基本推定吸気量Gcyl_vt_baseを算出する。この補正後バルブリフトLiftin_compは、バルブリフトLiftinを補正した値であり、後述するように、補正後値算出部113において算出される。また、図11において、NE1〜NE3は、NE1<NE2<NE3の関係が成立するエンジン回転数NEの所定値であり、この点は以下の説明においても同様である。
このマップでは、基本推定吸気量Gcyl_vt_baseは、NE=NE1またはNE2の場合、補正後バルブリフトLiftin_compが小さい領域では、補正後バルブリフトLiftin_compが大きいほど、より大きい値に設定され、補正後バルブリフトLiftin_compが最大値Liftinmaxに近い領域では、補正後バルブリフトLiftin_compが大きいほど、より小さい値に設定されている。これは、低・中回転域では、補正後バルブリフトLiftin_compが最大値Liftinmaxに近い領域においてより大きな値になるほど、吸気弁4の開弁時間が長くなることで、吸気の吹き戻しにより充填効率が低下するためである。また、基本推定吸気量Gcyl_vt_baseは、NE=NE3の場合、補正後バルブリフトLiftin_compが大きいほど、より大きい値に設定されている。これは、高回転域では、補正後バルブリフトLiftin_compが大きい領域でも、吸気の慣性力により上記吸気の吹き戻しが発生しにくくなるため、補正後バルブリフトLiftin_compが大きいほど、充填効率がより高くなることによる。
また、エンジン回転数NEおよび補正後カム位相Cain_compに応じて、図12に示すマップを検索することにより、補正係数K_gcyl_vtを算出する。この補正後カム位相Cain_compは、カム位相Cainを補正した値であり、後述するように、補正後値算出部113において算出される。
図12に示すマップでは、補正係数K_gcyl_vtは、NE=NE1またはNE2の場合、補正後カム位相Cain_compが最遅角値Cainrtに近い領域では、最遅角値Cainrtに近いほど、より小さい値に設定され、それ以外の領域では、補正後カム位相Cain_compが最進角値Cainad側の値であるほど、より小さな値に設定されている。これは、低・中回転域では、補正後カム位相Cain_compが最遅角値Cainrtに近い領域において、最遅角値Cainrtに近いほど、吸気弁4の閉弁タイミングが遅くなることで、吸気の吹き戻しにより充填効率が低下するためであり、それ以外の領域では、補正後カム位相Cain_compが最進角値Cainadに近いほど、バルブオーバーラップの増大に伴う内部EGR量の増大により、充填効率が低下するためである。また、NE=NE3の場合、補正係数K_gcyl_vtは、補正後カム位相Cain_compが最遅角値Cainrtに近い領域では、一定値(値1)に設定され、それ以外の領域では、補正後カム位相Cain_compが最進角値Cainad側の値であるほど、より小さな値に設定されている。これは、高回転域では、補正後カム位相Cain_compが最進角値Cainadに近い領域でも、前述した吸気の慣性力により、吸気の吹き戻しが発生しにくくなることによる。
そして、以上のように算出した基本推定吸気量Gcyl_vt_baseおよび補正係数K_gcyl_vtを用い、下式(1)により、第1推定吸気量Gcyl_vtが算出される。
Gcyl_vt=K_gcyl_vt・Gcyl_vt_base ……(1)
また、移行係数算出部103では、移行係数Kgが以下のように算出される。まず、第1推定吸気量算出部101で算出された第1推定吸気量Gcyl_vt、およびエンジン回転数NEを用い、下式(2)により、推定流量Gin_vt(単位:g/sec)を算出する。
Gin_vt=2・Gcyl_vt・NE/60 ……(2)
次いで、この推定流量Gin_vtに応じて、図13に示すテーブルを検索することにより、移行係数Kgを算出する。同図において、Gin1,2は、Gin1<Gin2の関係が成立する所定値である。この所定値Gin1は、Gin_vt≦Gin1の範囲では、吸気通路12a内の空気流量が小さいことにより、エアフローセンサ22の分解能に起因して、第1推定吸気量Gcyl_vtの信頼性が後述する第2推定吸気量Gcyl_afmの信頼性を上回るような値に設定されている。また、所定値Gin2は、Gin2≦Gin_vtの範囲では、吸気通路12a内の空気流量が大きいことにより、第2推定吸気量Gcyl_afmの信頼性が第1推定吸気量Gcyl_vtの信頼性を上回るような値に設定されている。さらに、このテーブルでは、移行係数Kgは、Gin_vt≦Gin1の範囲では値0に、Gin2≦Gin_vtの範囲では値1に設定されているとともに、Gin1<Gin_vt<Gin2の範囲では、値0と値1の間で、かつ推定流量Gin_vtが大きいほど、より大きな値に設定されている。
一方、第2推定吸気量算出部102では、空気流量Ginおよびエンジン回転数NEに基づき、下式(3)により、第2推定吸気量Gcyl_afm(単位:g)が算出される。
Gcyl_afm=Gin・60/(2・NE) ……(3)
増幅要素104,105では、以上のように算出された第1および第2推定吸気量Gcyl_vt,Gcyl_afmをそれぞれ(1−Kg),Kg倍に増幅した値が算出される。そして、加算要素106では、そのように増幅された値に基づき、下式(4)の加重平均演算により、算出吸気量Gcylが算出される。
Gcyl=Kg・Gcyl_afm+(1−Kg)・Gcyl_vt ……(4)
この式(4)を参照すると明らかなように、Kg=0のとき、すなわち前述したGin_vt≦Gin1の範囲では、Gcyl=Gcyl_vtとなり、Kg=1のとき、すなわちGin2≦Gin_vtの範囲では、Gcyl=Gcyl_afmとなるとともに、0<Kg<1のとき、すなわちGin1<Gin_vt<Gin2の範囲では、算出吸気量Gcylにおける第1および第2推定吸気量Gcyl_vt,Gcyl_afmの重み付けの度合いは、移行係数Kgの値によって決定される。
さらに、増幅要素107では、算出吸気量Gcylに基づき、下式(5)により、基本燃料噴射量Tcyl_bsが算出される。
Tcyl_bs=Kgt・Gcyl ……(5)
ここで、Kgtは、燃料噴射弁10毎に予め設定される換算係数である。
また、目標空燃比算出部108(目標空燃比算出手段)では、算出吸気量Gcylおよびアクセル開度APに応じて、図14に示すマップを検索することにより、目標空燃比KCMDが算出される。このマップでは、目標空燃比KCMDの値は、当量比として設定されているとともに、基本的には、触媒装置の排ガス浄化性能を良好な状態に保持するために、理論空燃比(14.5)に設定されている。
一方、空燃比補正係数算出部109は、オンボード同定器(図示せず)を備えたSTR(Self Tuning Regulator)として構成されている。この空燃比補正係数算出部109では、検出空燃比KACTおよび目標空燃比KCMDに応じて、空燃比補正係数KSTRが算出される。具体的には、空燃比補正係数KSTRは、混合気の空燃比すなわち検出空燃比KACTを目標空燃比KCMDに収束させるように、以下の式(6)〜(13)に示す制御アルゴリズムにより算出されるとともに、当量比換算値として算出される。なお、本実施形態では、空燃比補正係数算出部109が空燃比制御パラメータ算出手段に相当し、空燃比補正係数KSTRが空燃比制御パラメータおよび空燃比の制御状態を表す値に相当する。
これらの式(6)〜(13)における記号(n)付きの各離散データは、1燃焼サイクル毎すなわちTDC信号が連続して4回発生する毎にサンプリングまたは算出されたデータであることを示しており、記号nは各離散データのサンプリングサイクルの順番を表している。例えば、記号nは今回の制御タイミングでサンプリングされた値であることを、記号n−1は前回の制御タイミングでサンプリングされた値であることをそれぞれ示している。なお、以下の説明では、各離散データにおける記号(n)などを適宜、省略する。
式(6)において、kstr(n)は、空燃比補正係数の基本値(以下単に「基本値」という)であり、式(7)により算出される。また、Lim(kstr(n))は、基本値kstr(n)にリミット処理を施した値を表しており、具体的には、基本値kstr(n)を、所定の下限値KSTRmin(例えば値0.6)と所定の上限値KSTRmax(例えば値1.4)で規定される範囲内に制限した値として算出される。すなわち、kstr(n)<KSTRminのときには、Lim(kstr(n))=KSTRminとなり、KSTRmin≦kstr(n)≦KSTRmaxのときには、Lim(kstr(n))=kstr(n)となり、kstr(n)>KSTRmaxのときには、Lim(kstr(n))=KSTRmaxとなる。
以上のように、空燃比補正係数KSTRが基本値kstrにリミット処理を施した値として算出される理由は、空燃比補正係数KSTRによる空燃比のフィードバック制御中、LAFセンサ24の故障などに起因して、混合気の空燃比がリッチ過ぎる状態またはリーン過ぎる状態になることで、エンジン回転数NEが不安定になったり、エンジンストールしたりするのを回避するためである。
また、式(7)は、以下のように導出される。すなわち、4つの気筒3aのうちの1つを、空燃比補正係数KSTRを入力とし、検出空燃比KACTを出力とする制御対象として見なすとともに、この制御対象を離散時間系モデルとしてモデリングすると、下式(14)が得られる。なお、下式(14)のb0,r1,r2,r3,s0は、モデルパラメータである。
KACT(n)=b0・KSTR(n)+r1(n)・KSTR(n-4)+r2(n)・KSTR(n-5)
+r3(n)・KSTR(n-6)+s0(n)・KCMD(n) ……(14)
ここで、目標空燃比KCMDに対する検出空燃比KACTのむだ時間は、燃焼サイクル3回分程度と推定されるので、KCMD(n)=KACT(n+3)の関係が成立し、これを式(14)に適用するとともに、KSTR(n)をkstr(n)と置き換えることにより、前述した式(7)が導出される。
また、式(7)のモデルパラメータb0,r1,r2,r3,s0のベクトルθは、式(8)〜(13)の同定アルゴリズムにより同定される。同式(8)におけるKΓはゲイン係数のベクトルを、e_strは同定誤差をそれぞれ表している。
同定誤差e_strは、式(9)〜(13)により算出され、式(9)のθTは、θの転置行列を表しており、式(11)のように定義される。また、ゲイン係数のベクトルKΓは、式(10)により算出される。この式(10)のζは、その転置行列が式(12)のように定義されるベクトルであり、式(10)のΓは、式(13)にように定義される5次の正方行列である。この式(13)のγは、適応ゲインであり、0<γとなるように設定される。
一方、総補正係数算出部110では、エンジン水温TWおよび吸気温TAなどの運転状態を表す各種のパラメータに応じて、図示しないマップおよびテーブルを検索することにより、各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、総補正係数KTOTALが算出される。
また、乗算要素111では、下式(15)により、要求燃料噴射量Tcylが算出される。
Tcyl=Tcyl_bs・KSTR・KTOTAL ……(15)
さらに、燃料付着補正部112では、以上のように算出された要求燃料噴射量Tcylに、所定の燃料付着補正処理を施すことにより、燃料噴射量TOUTが算出される。そして、この燃料噴射量TOUTに基づいて、燃料噴射弁10の燃料噴射タイミングおよび開弁時間が決定され、燃料噴射弁10が制御される。
以上の式(5),(15)に示すように、空燃比コントローラ100では、燃料噴射量TOUTが、算出吸気量Gcylに基づいて算出され、式(4)に示すように、Kg=0のときには、Gcyl=Gcyl_vtとなり、Kg=1のときには、Gcyl=Gcyl_afmとなる。これは、前述したように、Gin_vt≦Gin1の範囲では、第1推定吸気量Gcyl_vtの信頼性が第2推定吸気量Gcyl_afmの信頼性を上回るので、そのような範囲では、燃料噴射量TOUTをより信頼性の高い第1推定吸気量Gcyl_vtに基づいて算出することにより、良好な算出精度を確保するためである。また、Gin2≦Gin_vtの範囲では、吸気通路12a内の空気流量が大きいことで、第2推定吸気量Gcyl_afmの信頼性が第1推定吸気量Gcyl_vtの信頼性を上回るので、そのような範囲では、燃料噴射量TOUTをより信頼性の高い第2推定吸気量Gcyl_afmに基づいて算出することにより、良好な算出精度を確保するためである。
また、0<Kg<1のときには、算出吸気量Gcylにおける第1および第2推定吸気量Gcyl_vt,Gcyl_afmの重み付けの度合いが、移行係数Kgの値によって決定される。これは、Gcyl_vt,Gcyl_afmの一方から他方に直接的に切り換えると、第1および第2推定吸気量Gcyl_vt,Gcyl_afmの値の差が大きいことに起因して、トルク段差が発生するような場合が考えられるので、それを回避するためである。すなわち、前述したように、移行係数Kgが0<Kg<1となるGin1<Gin_vt<Gin2の範囲では、移行係数Kgが推定流量Gin_vtに比例する値になるように設定されているので、推定流量Gin_vtがGin1およびGin2の間で変化すると、それに伴って移行係数Kgが徐々に変化することにより、算出吸気量GcylがGcyl_vt,Gcyl_afmの一方側の値から他方側の値に徐々に変化することになる。その結果、トルク段差の発生を回避することができる。
次に、前述した補正後値算出部113について説明する。この補正後値算出部113は、以下に述べるように、バルブリフトLiftinおよびカム位相Cainをそれぞれ補正することにより、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出するものである。本実施形態では、補正後値算出部113が補正手段に相当し、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compが、補正された動作状態パラメータに相当する。
図15に示すように、補正後値算出部113は、空燃比指標値算出部114、最小2乗法フィルタ115、非線形処理フィルタ116,117および加算要素118,119を備えている。まず、空燃比指標値算出部114では、空燃比補正係数KSTRを目標空燃比KCMDで除算することにより、空燃比指標値KAF(=KSTR/KCMD)が算出される。本実施形態では、空燃比指標値KAFが制御状態値および空燃比の制御状態を表す値に相当する。
次に、最小2乗法フィルタ115では、下式(16),(17)に示す固定ゲイン式の逐次型最小2乗法アルゴリズムにより、空燃比指標値の統計処理値(以下、単に「統計処理値」という)KAF_LSが算出される。
この式(16)において、e_lsは、式(17)により算出される偏差であり、P_lsは、所定のゲイン(一定値)を表している。また、これらの式(16),(17)において、記号(k)付きの各離散データは、所定の制御周期ΔT(本実施形態では5msec)に同期してサンプリング(または算出)されたデータであることを示しており、記号kは各離散データのサンプリングサイクルの順番を表している。例えば、記号kは今回の制御タイミングでサンプリングされた値であることを、記号k−1は前回の制御タイミングでサンプリングされた値であることをそれぞれ示している。この点は、以下の離散データにおいても同様である。なお、以下の説明では、各離散データにおける記号(k)を適宜省略する。
また、非線形処理フィルタ116では、上記統計処理値KAF_LSと所定の上下限値KAF_LSH,KAF_LSLとの比較結果に基づき、以下の式(18)〜(20)のいずれかにより、リフト補正値Dliftin_comp(動作状態パラメータの補正量)が算出される。なお、式(18),(20)のDinc,Ddecは、いずれも正の所定値である。
・KAF_LS(k)≧KAF_LSHのとき
Dliftin_comp(k)=Dliftin_comp(k-1)+Dinc ……(18)
・KAF_LSL<KAF_LS(k)<KAF_LSHのとき
Dliftin_comp(k)=Dliftin_comp(k-1) ……(19)
・KAF_LS(k)≦KAF_LSLのとき
Dliftin_comp(k)=Dliftin_comp(k-1)−Ddec ……(20)
次いで、加算要素118では、下式(21)により、補正後バルブリフトLiftin_compが算出される。
Liftin_comp(k)=Liftin(k)+Dliftin_comp(k) ……(21)
この補正後値算出部113では、補正後バルブリフトLiftin_compおよびリフト補正値Dliftin_compが以上のように算出される。これは以下の理由による。すなわち、前述したような可変バルブリフト機構50および回動角センサ25を用いて、バルブリフトLiftinを制御している際、温度変化または衝撃などによる取り付け角度の変化に起因して、回動角センサ25の検出信号のドリフトが発生したり、アジャストボルト52aの摩耗により、タペットクリアランスが変化したりすることがあり、その場合、回動角センサ25の検出信号に基づいて算出されたバルブリフトLiftinが、実際のバルブリフト(以下「実際値」という)に対してずれてしまう。
このようなバルブリフトLiftinの実際値に対するずれが発生している場合において、安定した運転状態のとき例えばアイドル運転のときに、空燃比補正係数KSTRによる空燃比のフィードバック制御を実行すると、ずれに起因して、検出空燃比KACTが目標空燃比KCMDに収束せず、空燃比のリーン側への制御またはリッチ側への制御が継続されることになる。例えば、バルブリフトLiftinが実際値よりも小さい値を示している場合、実際の吸入空気量が算出吸気量Gcylよりも大きい値になることで、検出空燃比KACTが目標空燃比KCMDよりもリーン側にずれてしまう。その結果、空燃比のリッチ側への制御が継続され、空燃比補正係数KSTRが目標空燃比KCMDよりも大きい値に設定されることにより、空燃比指標値KAF(=KSTR/KCMD)は値1よりも大きい値を示すことになる。これとは逆に、バルブリフトLiftinが実際値よりも大きい値を示している場合には、空燃比指標値KAFは値1よりも小さい値を示すことになる。
バルブリフトLiftinの実際値に対するずれと、空燃比指標値KAFとの間には、以上のような相関関係があり、本実施形態では、補正後バルブリフトLiftin_compに応じて算出した算出吸気量Gcylを用いて、空燃比制御が実行されるので、補正後バルブリフトLiftin_compの実際値に対するずれが、空燃比指標値KAFに反映される。
したがって、KAF_LS(k)≧KAF_LSHのときには、算出吸気量Gcylの算出に用いている補正後バルブリフトLiftin_compが、実際値よりも小さい側にずれていることで、空燃比のリッチ側への制御が実行されていることになるので、式(18)のように、リフト補正値Dliftin_compを増大させることにより、補正後バルブリフトLiftin_compを実際のバルブリフトに近づけることができる(後述する図36参照)。一方、KAF_LS(k)≦KAF_LSLのときには、補正後バルブリフトLiftin_compが実際値よりも大きい側にずれていることで、空燃比のリーン側への制御が実行されているので、式(20)のように、リフト補正値Dliftin_compを減少させることにより、補正後バルブリフトLiftin_compを実際のバルブリフトに近づけることができる。
また、KAF_LSL<KAF_LS(k)<KAF_LSHのときには、リフト補正値Dliftin_compが更新されず、一定値に保持される。これは、リフト補正値Dliftin_compを一定値に保持し、補正後バルブリフトLiftin_compの更新を中止することで、補正後バルブリフトLiftin_compの算出処理と、空燃比のフィードバック制御とが互いに干渉するのを回避するためである。また、上下限値KAF_LSH,KAF_LSLは、補正後バルブリフトLiftin_compと実際値との間のずれが小さくなっていることで、リフト補正値Dliftin_compを一定値に保持し、補正後バルブリフトLiftin_compの更新を中止しても、空燃比制御の制御精度が低下しないような値(例えばKAF_LSH=1.1,KAF_LSL=0.9)に設定されている。
一方、前述した非線形処理フィルタ117では、上記統計処理値KAF_LSと所定の上下限値KAF_LSH,KAF_LSLとの比較結果に基づき、以下の式(22)〜(24)のいずれかにより、位相補正値Dcain_comp(動作状態パラメータの補正量)が算出される。
・KAF_LS(k)≧KAF_LSHのとき
Dcain_comp(k)=Dcain_comp(k-1)+Dcomp ……(22)
・KAF_LSL<KAF_LS(k)<KAF_LSHのとき
Dcain_comp(k)=Dcain_comp(k-1) ……(23)
・KAF_LS(k)≦KAF_LSLのとき
Dcain_comp(k)=Dcain_comp(k-1)+Dcomp' ……(24)
上記式(22),(24)におけるDcomp,Dcomp’は、補正項であり、カム位相Cainと、進角側および遅角側の所定値Cain_adv,Cain_retとの比較結果に基づき、以下のような値に設定される。なお、下記のDadv,Dretは、いずれも正の所定値である。
・Cain(k)>Cain_advのとき
Dcomp=Dadv
Dcomp’=−Dret
・Cain_ret≦Cain(k)≦Cain_advのとき
Dcomp=0
Dcomp’=0
・Cain(k)<Cain_retのとき
Dcomp=−Dret
Dcomp’=Dadv
次いで、加算要素119では、下式(25)により、補正後カム位相Cain_compが算出される。
Cain_comp(k)=Cain(k)+Dcain_comp(k) ……(25)
この補正後値算出部113では、補正後カム位相Cain_compおよび位相補正値Dcain_compが以上のように算出される。これは以下の理由による。すなわち、前述したような可変カム位相機構70、クランク角センサ20およびカム角センサ26を用いて、カム位相Cainを制御した場合、2つのセンサ20,26の温度変化などによるドリフト、およびタイミングチェーンのたるみなどに起因して、2つのセンサ20,26の検出信号に基づいて算出されたカム位相Cainが、実際のカム位相(以下「実際値」という)に対して進角側または遅角側にずれてしまう可能性がある。
このように、カム位相Cainが実際の値よりも進角側または遅角側にずれている場合において、上述したように空燃比のフィードバック制御を実行すると、バルブオーバーラップの変化または吸気弁4の遅閉じによる吹き戻し量の変化に起因して、検出空燃比KACTが目標空燃比KCMDに収束せず、空燃比のリーン側への制御またはリッチ側への制御が継続されることになり、その結果、空燃比指標値KAFが値1よりも小さい値または大きい値を示すことになる。カム位相Cainの実際値に対するずれと、空燃比指標値KAFとの間にも、以上のような相関関係があり、本実施形態では、補正後カム位相Cain_compに応じて算出した算出吸気量Gcylを用いて、空燃比制御が実行されるので、補正後カム位相Cain_compの実際値に対するずれが、空燃比指標値KAFに反映される。
したがって、KAF_LS(k)≧KAF_LSHで、空燃比のリッチ側への制御が実行されている場合、Cain(k)>Cain_advで、カム位相Cainが進角側領域の値であるときには、算出吸気量Gcylの算出に用いている補正後カム位相Cain_compが、実際値よりも遅角側にずれていることにより、バルブオーバーラップの減少に起因して、実際の吸入空気量が算出吸気量Gcylよりも大きい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリーン側にずれていると推定される。そのため、補正後カム位相Cain_compをより進角側に補正する必要があるので、式(22)において、位相補正値Dcain_compがより大きな値として算出されるように、補正項Dcompが値Dadvに設定される。
さらに、KAF_LS(k)≧KAF_LSHの場合において、Cain(k)<Cain_retで、カム位相Cainが遅角側領域の値であるときには、補正後カム位相Cain_compが実際値よりも進角側にずれていることにより、吸気弁4の遅閉じ度合いの減少に起因して、吸気の吹き戻し量が減少し、実際の吸入空気量が算出吸気量Gcylよりも大きい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリーン側にずれていると推定される。そのため、補正後カム位相Cain_compをより遅角側に補正する必要があるので、式(22)において、位相補正値Dcain_compがより小さな値として算出されるように、補正項Dcompが値−Dretに設定される。
一方、KAF_LS(k)≦KAF_LSLで、空燃比のリーン側への制御が実行されている場合、Cain(k)>Cain_advで、カム位相Cainが進角側領域の値であるときには、補正後カム位相Cain_compが実際値よりも進角側にずれていることにより、バルブオーバーラップの増大に起因して、実際の吸入空気量が算出吸気量Gcylよりも小さい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリッチ側にずれていると推定される。そのため、補正後カム位相Cain_compをより遅角側に補正する必要があるので、式(24)において、位相補正値Dcain_compがより小さな値として算出されるように、補正項Dcomp’が値−Dretに設定される。
さらに、KAF_LS(k)≦KAF_LSLの場合において、Cain(k)<Cain_retで、カム位相Cainが遅角側領域の値であるときには、補正後カム位相Cain_compが実際値よりも遅角側にずれていることにより、吸気弁4の遅閉じ度合いの増大に起因して、吸気の吹き戻し量が増大し、実際の吸入空気量が算出吸気量Gcylよりも小さい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリッチ側にずれていると推定される。そのため、補正後カム位相Cain_compをより進角側に補正する必要があるので、式(24)において、位相補正値Dcain_compがより大きな値として算出されるように、補正項Dcomp’が値Dadvに設定される。
一方、KAF_LSL<KAF_LS(k)<KAF_LSHのとき、およびCain_ret≦Cain(k)≦Cain_advのときには、位相補正値Dcain_compが更新されず、一定値に保持される。これは、位相補正値Dcain_compを一定値に保持し、補正後カム位相Cain_compの更新を停止することで、補正後カム位相Cain_compの算出処理と、空燃比のフィードバック制御とが互いに干渉するのを回避するためである。また、上下限値KAF_LSH,KAF_LSLは、補正後カム位相Cain_compと実際値との間のずれが小さくなっていることで、位相補正値Dcain_compを一定値に保持し、補正後カム位相Cain_compの更新を停止しても、空燃比制御の制御精度が低下しないような前述した値(例えばKAF_LSH=1.1,KAF_LSL=0.9)に設定されている。さらに、所定値Cain_adv,Cain_retも、空燃比制御の制御精度の低下を回避するために、カム位相Cainの実際値の変化に対する吸入空気量の変化がかなり小さい範囲で、補正後カム位相Cain_compの更新を停止させることができる値(例えば、Cain_advはカム角30゜相当値,Cain_retはカム角10゜相当値)に設定されている。
次に、図16を参照しながら、点火時期コントローラ130(点火時期決定手段)について説明する。同図に示すように、この点火時期コントローラ130では、その一部が前述した空燃比コントローラ100と同様に構成されているので、以下、同じ構成については、同じ符号を付すとともに、その説明は省略する。点火時期コントローラ130は、以下に述べるように、点火時期Iglogを算出するものであり、第1および第2推定吸気量算出部101,102、移行係数算出部103、増幅要素104,105、加算要素106、最大推定吸気量算出部131、除算要素132、基本点火時期算出部133、点火補正値算出部134および加算要素135を備えている。
最大推定吸気量算出部131では、以下に述べるように、エンジン回転数NEおよび補正後カム位相Cain_compに応じて、最大推定吸気量Gcyl_maxが算出される。具体的には、まず、エンジン回転数NEに応じて、図17に示すテーブルを検索することにより、最大推定吸気量の基本値Gcyl_max_baseを算出する。このテーブルでは、基本値Gcyl_max_baseは、低中回転域では、エンジン回転数NEが高いほど、より大きな値に設定され、高回転域では、エンジン回転数NEが高いほど、より小さな値に設定されているとともに、中回転域の所定値のときに、その最大値を示すように設定されている。これは、運転性の観点から、中回転域の所定値のときに充填効率が最も高くなるように吸気系が構成されているためである。
また、エンジン回転数NEおよび補正後カム位相Cain_compに応じて、図18に示すマップを検索することにより、補正係数K_gcyl_maxを算出する。このマップでは、補正係数K_gcyl_maxは、NE=NE1またはNE2の場合、補正後カム位相Cain_compが最遅角値Cainrtに近い領域では、最遅角値Cainrtに近いほど、より小さい値に設定され、それ以外の領域では、補正後カム位相Cain_compが最進角値Cainad側の値であるほど、より小さな値に設定されている。さらに、NE=NE3の場合、補正係数K_gcyl_maxは、補正後カム位相Cain_compが最遅角値Cainrtに近い領域では、一定値(値1)に設定され、それ以外の領域では、補正後カム位相Cain_compが最進角値Cainad側の値であるほど、より小さな値に設定されている。このように補正係数K_gcyl_maxが設定されている理由は、前述した補正係数K_gcyl_vtの算出に用いる図12のマップの説明で述べた理由と同じである。
そして、以上のように算出した最大推定吸気量の基本値Gcyl_max_baseおよび補正係数K_gcyl_maxを用い、下式(26)により、最大推定吸気量Gcyl_maxが算出される。
Gcyl_max=K_gcyl_max・Gcyl_max_base
……(26)
一方、除算要素132では、正規化吸気量Kgcylが、下式(27)により算出される。
Kgcyl=Gcyl/Gcyl_max ……(27)
さらに、基本点火時期算出部133では、以下に述べるように、正規化吸気量Kgcyl、エンジン回転数NEおよび補正後カム位相Cain_compに応じて、基本点火時期マップを検索することにより、基本点火時期Iglog_mapが算出される。この場合、基本点火時期マップとしては、図19に示すCain_comp=Cainrt用のマップと、図20に示すCain_comp=Cainad用のマップと、補正後カム位相Cain_compが最遅角値Cainrtと最進角値Cainadとの間にあるとき複数段階の補正後カム位相Cain_compの値にそれぞれ対応して設定された複数のマップ(図示せず)とで構成されている。
以上の基本点火時期マップの検索では、正規化吸気量Kgcyl、エンジン回転数NEおよび補正後カム位相Cain_compに基づいて複数の値を選択するとともに、当該複数の選択値の補間演算により、基本点火時期Iglog_mapが算出される。
以上のように、基本点火時期算出部133では、基本点火時期マップのマップ値を設定するためのパラメータとして、正規化吸気量Kgcylを用いており、その理由は、以下による。すなわち、従来のように、正規化吸気量Kgcylに代えて算出吸気量Gcylをパラメータとして、基本点火時期マップのマップ値を設定した場合、算出吸気量Gcylの最大設定値が互いに異なるとともに、算出吸気量Gcylが大きい領域、すなわちノッキングが発生し始める高負荷域でのマップ値の設定数が、エンジン回転数NE毎にばらつくようになり、その結果、設定データ数が増大してしまう。これは、気筒3aにおける吸気の充填効率がエンジン回転数NEに応じて変化するのに起因して、ノッキングが発生し始める高負荷域での吸入空気量の最大値も、エンジン回転数NEに応じて変化してしまうことによる。
これに対して、基本点火時期算出部133の基本点火時期マップでは、算出吸気量Gcylに代えて正規化吸気量Kgcylをパラメータとして用いているので、図19,20に示すように、ノッキングが発生し始めるような高負荷域、すなわちKgcylが値1を含む値1付近の領域でもエンジン回転数の各設定値NE1〜NE3間で、マップ値の数を同じ数に設定でき、それにより、設定データ数を上述した従来の場合よりも低減できることが判る。すなわち、本実施形態のように、算出吸気量Gcylに代えて正規化吸気量Kgcylをパラメータとして用いることにより、ECU2のROMの記憶容量を低減することができ、その分、製造コストを削減できるためである。
また、前述した点火補正値算出部134では、吸気温TA、エンジン水温TWおよび目標空燃比KCMDなどに応じて、図示しないマップおよびテーブルを検索することにより、各種の補正値が算出され、これらの各種の補正値に基づき、点火補正値Diglogが算出される。
さらに、加算要素135では、点火時期Iglogが、下式(28)により算出される。
Iglog=Iglog_map+Diglog ……(28)
そして、点火プラグ11が、この点火時期Iglogに応じた放電タイミングで放電するように制御される。
以下、図21を参照しながら、ECU2により実行される空燃比補正係数KSTRの算出処理について説明する。本処理は、前述した空燃比補正係数算出部109での算出処理に相当するものであり、1燃焼サイクル毎すなわちTDC信号が連続して4回発生する毎に実行される。
まず、ステップ1(図では「S1」と略す。以下同じ)において、実行条件フラグF_AFFBOKが「1」であるか否かを判別する。この実行条件フラグF_AFFBOKは、空燃比フィードバック制御の実行条件が成立しているか否かを表すものであり、図示しない処理において、以下の(c1)〜(c4)の実行条件がいずれも成立しているときには、「1」に設定され、(c1)〜(c4)の実行条件のうちの少なくとも1つが不成立のときには、「0」に設定される。
(c1)LAFセンサが活性化していること。
(c2)エンジン3がリーンバーン運転中でなくかつフューエルカット運転中でないこと。
(c3)エンジン回転数NEおよびアクセル開度APがいずれも、所定の範囲囲内の値であること。
(c4)点火時期の遅角制御中でないこと。
ステップ1の判別結果がYESで、空燃比フィードバック制御の実行条件が成立しているときには、ステップ2に進み、基本値kstrを、前述した式(7)〜(13)の制御アルゴリズムにより算出する。
次いで、ステップ2で算出した基本値kstrに、以下のステップ3〜7のリミット処理を施すことにより、空燃比補正係数KSTRを算出する。このリミット処理は、前述した式(6)に相当する。すなわち、ステップ3で、基本値kstrが下限値KSTRminより小さいか否かを判別する。この判別結果がYESで、kstr<KSTRminのときには、ステップ4に進み、空燃比補正係数KSTRを下限値KSTRminに設定し、RAMに記憶する。
一方、ステップ3の判別結果がNOのときには、ステップ5に進み、基本値kstrが上限値KSTRmaxより大きいか否かを判別する。この判別結果がNOで、KSTRmin≦kstr≦KSTRmaxのときには、ステップ6に進み、空燃比補正係数KSTRを基本値kstrに設定し、RAMに記憶する。
一方、ステップ5の判別結果がYESで、KSTRmax<kstrのときには、ステップ7に進み、空燃比補正係数KSTRを上限値KSTRmaxに設定し、RAMに記憶する。
以上のステップ4,6または7に続くステップ8では、空燃比補正係数KSTRを前述した式(6)〜(13)の制御アルゴリズムにより算出したこと、すなわち空燃比フィードバック制御を実行中であることを表すために、フィードバック制御中フラグF_AFFBを「1」に設定した後、本処理を終了する。
一方、ステップ1の判別結果がNOで、空燃比フィードバック制御の実行条件が成立していないときには、ステップ9に進み、空燃比補正係数KSTRを目標空燃比KCMDに設定する。次いで、ステップ10で、空燃比フィードバック制御を実行していないことを表すために、フィードバック制御中フラグF_AFFBを「0」に設定した後、本処理を終了する。
以下、図22を参照しながら、ECU2により実行される空燃比制御処理について説明する。本処理は、燃料噴射量TOUTを燃料噴射弁10毎に算出するものであり、前述した空燃比コントローラ100での算出処理に相当し、TDC信号の発生タイミングに同期して実行される。
まず、ステップ20において、基本燃料噴射量Tcyl_bsを算出する。この基本燃料噴射量Tcyl_bsの算出処理は、具体的には、図23に示すように実行される。すなわち、まず、ステップ30で、前述した式(3)により、第2推定吸気量Gcyl_afmを算出する。
次に、ステップ31で、前述した手法により、第1推定吸気量Gcyl_vtを算出する。すなわち、エンジン回転数NEおよび補正後バルブリフトLiftin_compに応じて、図11に示すマップを検索することにより、基本推定吸気量Gcyl_vt_baseを算出するとともに、エンジン回転数NEおよび補正後カム位相Cain_compに応じて、図12に示すマップを検索することにより、補正係数K_gcyl_vtを算出する。そして、これらの値Gcyl_vt_base,K_gcyl_vtに基づき、前述した式(1)により、第1推定吸気量Gcyl_vtを算出する。
次に、ステップ32で、前述した式(2)により、推定流量Gin_vtを算出する。その後、ステップ33に進み、可変機構故障フラグF_VDNGが「1」であるか否かを判別する。
この可変機構故障フラグF_VDNGは、図示しない故障判定処理において、可変バルブリフト機構50および可変カム位相機構70の少なくとも一方が故障していると判定されたときには「1」に、いずれも正常であると判定されたときには「0」にそれぞれ設定される。なお、以下の説明では、可変バルブリフト機構50および可変カム位相機構70をまとめて「2つの可変機構」と呼ぶ。
ステップ33の判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ34に進み、エアフローセンサ故障フラグF_AFMNGが「1」であるか否かを判別する。このエアフローセンサ故障フラグF_AFMNGは、図示しない故障判定処理において、エアフローセンサ22が故障していると判定されたときには「1」に、正常であると判定されたときには「0」にそれぞれ設定される。
ステップ34の判別結果がNOで、エアフローセンサ22が正常であるときには、ステップ35に進み、前述したように、移行係数Kgを、推定流量Gin_vtに応じて、図13に示すテーブルを検索することにより算出する。
一方、ステップ34の判別結果がYESで、エアフローセンサ22が故障しているときには、ステップ36に進み、移行係数Kgを値0に設定する。
ステップ35または36に続くステップ37では、前述した式(4)により、算出吸気量Gcylを算出する。次いで、ステップ38で、基本燃料噴射量Tcyl_bsを、換算係数と算出吸気量の積Kgt・Gcylに設定した後、本処理を終了する。
一方、ステップ33の判別結果がYESで、2つの可変機構の少なくとも一方が故障していると判定されたときには、ステップ39に進み、算出吸気量Gcylを前述した所定の故障時用値Gcyl_fsに設定する。次いで、前述したステップ38を実行した後、本処理を終了する。
図22に戻り、ステップ20で、以上のように基本燃料噴射量Tcyl_bsを算出した後、ステップ21に進み、総補正係数KTOTALを算出する。具体的には、前述したように、各種の運転パラメータ(例えば吸気温TAや、大気圧PA、エンジン水温TW、アクセル開度APなど)に応じて、各種のテーブルやマップを検索することで各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、総補正係数KTOTALが算出される。
次いで、ステップ22に進み、前述したように、アクセル開度APおよび算出吸気量Gcylに応じて、図14に示すマップを検索することにより、目標空燃比KCMDを算出し、RAMに記憶する。
次に、ステップ23に進み、RAMに記憶されている空燃比補正係数KSTRの値を読み込む。すなわち、空燃比補正係数KSTRをサンプリングする。
次いで、ステップ24に進み、前述した式(15)により、要求燃料噴射量Tcylを算出する。次に、ステップ25で、前述したように、要求燃料噴射量Tcylに、所定の燃料付着補正処理を施すことにより、燃料噴射量TOUTを算出する。この後、本処理を終了する。以上により、この燃料噴射量TOUTに基づいて、燃料噴射弁10の燃料噴射タイミングおよび開弁時間が決定され、燃料噴射弁10が制御される。その結果、混合気の空燃比すなわち検出空燃比KACTが、目標空燃比KCMDに収束するようにフィードバック制御される。
次に、図24を参照しながら、ECU2により実行される点火時期制御処理について説明する。本処理は、以下に述べるように点火時期Iglogを算出するものであり、前述した点火時期コントローラ130での算出処理に相当し、TDC信号の発生タイミングに同期して、前述した空燃比制御処理に続けて実行される。
この処理では、まず、ステップ50で、前述した可変機構故障フラグF_VDNGが「1」であるか否かを判別する。この判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ51に進み、エンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
このエンジン始動フラグF_ENGSTARTは、図示しない判定処理において、エンジン回転数NEおよびIG・SW28のON/OFF信号に応じて、エンジン始動制御中すなわちクランキング中であるか否かを判定することにより設定されるものであり、具体的には、エンジン始動制御中であるときには「1」に、それ以外のときには「0」にそれぞれ設定される。
ステップ51の判別結果がYESで、エンジン始動制御中であるときには、ステップ52に進み、点火時期Iglogを、所定の始動時用値Ig_crk(例えばBTDC10゜)に設定した後、本処理を終了する。
一方、ステップ51の判別結果がNOで、エンジン始動制御中でないときには、ステップ53に進み、アクセル開度APが所定値APREFより小さいか否かを判別する。この所定値APREFは、アクセルペダルが踏まれていないことを判別するためのものであり、アクセルペダルが踏まれていないことを判別可能な値(例えば1゜)に設定されている。
この判別結果がYESで、アクセルペダルが踏まれていないときには、ステップ54に進み、触媒暖機制御の実行時間Tcat(エンジン3の始動終了直後からの経過時間の計時値)が所定値Tcatlmt(例えば30sec)より小さいか否かを判別する。この触媒暖機制御は、排気管13に設けられた触媒装置内の触媒をエンジン始動後に急速に活性化させるためのものである。この判別結果がYESで、Tcat<Tcatlmtのときには、触媒暖機制御を実行すべきであるとして、ステップ55に進み、触媒暖機用値Ig_astを算出する。この触媒暖機用値Ig_astは、具体的には、下式(29)〜(31)の応答指定型制御アルゴリズム(スライディングモード制御アルゴリズムまたはバックステッピング制御アルゴリズム)により、算出される。
これらの式(29)〜(31)における記号(m)付きの各離散データは、所定の制御周期(本実施形態ではTDC信号の発生周期)に同期してサンプリング(または算出)されたデータであることを示しており、記号mは各離散データのサンプリングサイクルの順番を表している。なお、以下の説明では、各離散データにおける記号(m)などを適宜、省略する。
上記式(29)において、Ig_ast_baseは、所定の触媒暖機用の基準点火時期(例えばBTDC5゜)を表し、Krch,Kadpは、所定のフィードバックゲインを表している。また、σは、式(30)のように定義される切換関数である。同式(30)において、poleは、−1<pole<0の関係が成立するように設定される応答指定パラメータであり、Enastは、式(31)により算出される追従誤差である。式(31)において、NE_astは、所定の触媒暖機用の目標回転数(例えば1800rpm)である。以上の制御アルゴリズムにより、触媒暖機用値Ig_astは、エンジン回転数NEを上記触媒暖機用の目標回転数NE_astに収束させる値として、算出される。
次いで、ステップ56に進み、点火時期Iglogを上記触媒暖機用値Ig_astに設定した後、本処理を終了する。
一方、ステップ53または54の判別結果がNOのとき、すなわちTcat≧Tcatlmtであるとき、またはアクセルペダルが踏まれているときには、ステップ57に進み、通常点火時期制御処理を実行する。
この通常点火時期制御処理は、具体的には、図25に示すように実行される。まず、ステップ70で、最大推定吸気量Gcyl_maxを、前述した手法により算出する。すなわち、エンジン回転数NEに応じて、図17に示すテーブルを検索することにより、最大推定吸気量の基本値Gcyl_max_baseを算出し、エンジン回転数NEおよび補正後カム位相Cain_compに応じて、図18に示すマップを検索することにより、補正係数K_gcyl_maxを算出する。そして、以上のように算出した2つの値Gcyl_max_base,K_gcyl_maxに基づき、前述した式(26)により、最大推定吸気量Gcyl_maxを算出する。
次いで、ステップ71で、正規化吸気量Kgcylを、前述した式(27)により算出する。この後、ステップ72で、基本点火時期Iglog_mapを前述した手法により算出する。すなわち、正規化吸気量Kgcyl、エンジン回転数NEおよび補正後カム位相Cain_compに応じて、図19,20などの基本点火時期マップを検索し、複数の値を選択するとともに、当該複数の選択値の補間演算により、基本点火時期Iglog_mapを算出する。
次に、ステップ73で、点火補正値Diglogを前述した手法により算出する。すなわち、吸気温TA、エンジン水温TWおよび目標空燃比KCMDなどに応じて、図示しないマップおよびテーブルを検索することにより、各種の補正値を算出し、これらの各種の補正値に基づき、点火補正値Diglogを算出する。次いで、ステップ74で、点火時期Iglogを、前述した式(28)により算出した後、本処理を終了する。
図24に戻り、ステップ57で、以上のように通常点火時期制御処理を実行した後、本処理を終了する。
一方、ステップ50の判別結果がYESで、2つの可変機構の少なくとも一方が故障しているときには、ステップ58に進み、故障時用値Ig_fsを算出する。この故障時用値Ig_fsは、具体的には、下式(32)〜(34)の応答指定型制御アルゴリズム(スライディングモード制御アルゴリズムまたはバックステッピング制御アルゴリズム)により、算出される。
上記式(32)において、Ig_fs_baseは、所定の故障時用の基準点火時期(例えばTDC±0゜)を表し、Krch#,Kadp#は、所定のフィードバックゲインを表している。また、σ#は、式(33)のように定義される切換関数である。同式(33)において、pole#は、−1<pole#<0の関係が成立するように設定される応答指定パラメータであり、Enfsは、式(34)により算出される追従誤差である。式(34)において、NE_fsは、所定の故障時目標回転数(例えば2000rpm)である。以上の制御アルゴリズムにより、故障時用値Ig_fsは、エンジン回転数NEを上記故障時目標回転数NE_fsに収束させる値として、算出される。
次いで、ステップ59に進み、点火時期Iglogを上記故障時用値Ig_fsに設定した後、本処理を終了する。
次に、図26を参照しながら、ECU2により実行される補正後値算出処理について説明する。本処理は、以下に述べるように、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出するものであり、前述した補正後値算出部113での算出処理に相当し、所定の制御周期ΔT(本実施形態では5msec)に同期して実行される。
まず、ステップ80で、前述したフィードバック制御中フラグF_AFFBが「1」であるか否かを判別する。この判別結果がNOで、空燃比フィードバック制御を実行中でないときには、そのまま本処理を終了する。一方、この判別結果がYESで、空燃比フィードバック制御を実行中であるときには、ステップ81に進み、RAMに記憶されている空燃比補正係数KSTRの値を、RAMに記憶されている目標空燃比KCMDの値で除算することにより、空燃比指標値KAFを算出する。
次いで、ステップ82に進み、前述した式(16),(17)の逐次型最小2乗法アルゴリズムにより、空燃比指標値の統計処理値KAF_LSを算出する。
次に、ステップ83で、エンジン水温TWが所定水温TWREF(例えば85℃)より高いか否かを判別する。この判別結果がNOで、エンジン3の暖機が完了していないときには、本処理を終了する。
一方、ステップ83の判別結果がYESで、エンジン3の暖機が完了しているときには、ステップ84に進み、アイドル運転フラグF_IDLEが「1」であるか否かを判別する。このアイドル運転フラグF_IDLEは、アイドル運転中であるときには「1」に、それ以外のときには「0」にそれぞれ設定される。
この判別結果がYESで、アイドル運転中であるときには、ステップ85に進み、アイドル運転の実行時間Tidleが所定値TREF以上であるか否かを判別する。この判別結果がYESのときには、ステップ86に進み、回転偏差DNEが所定値DNEREF(例えば20rpm)より小さいか否かを判別する。この回転偏差DNEは、アイドル運転用の目標回転数NE_cmdとエンジン回転数NEとの偏差の絶対値として算出される。
ステップ86の判別結果がYESのときには、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compの算出条件が成立しているとして、後述するステップ89に進む。一方、ステップ85または86の判別結果がNOのときには、本処理を終了する。これらのステップ85,86の判別により、高回転運転状態からの減速によるアイドル運転への移行開始時や、アイドル運転中の運転者による空ぶかしが行われた直後において、エンジン3の運転状態が安定するまでの間、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compの算出が回避されるとともに、運転状態が安定した以降、算出が実行される。
一方、ステップ84の判別結果がNOで、アイドル運転中でないときには、ステップ87に進み、アクセル偏差フラグF_DAPが「1」であるか否かを判別する。このアクセル偏差フラグF_DAPは、アクセル開度APが安定した状態にあるか否かを表すものであり、具体的には、アクセル開度の今回値AP(k)と前回値AP(k−1)との偏差の絶対値が所定値以下である状態が、所定時間以上継続したときには「1」に、それ以外のときには「0」に設定される。
ステップ87の判別結果がYESで、アクセル開度APが変動することなく、安定した状態にあるときには、ステップ88に進み、回転偏差フラグF_DNEが「1」であるか否かを判別する。この回転偏差フラグF_DNEは、エンジン回転数NEが安定した状態にあるか否かを表すものであり、具体的には、エンジン回転数NEの今回値NE(k)と前回値NE(k−1)との偏差の絶対値が所定値以下である状態が、所定時間以上継続したときには「1」に、それ以外のときには「0」に設定される。
ステップ88の判別結果がYESで、エンジン回転数NEが変動することなく、安定した状態にあるときには、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compの算出条件が成立しているとして、後述するステップ89に進む。一方、ステップ87または88の判別結果がNOのときには、本処理を終了する。これらのステップ87,88の判別により、アクセル開度APおよびエンジン回転数NEが安定するまでの間、すなわちエンジン3の運転状態が安定するまでの間、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compの算出が回避されるとともに、運転状態が安定した以降、算出が実行される。
ステップ86または88に続くステップ89では、前述した算出手法により、リフト補正値Dliftin_compを算出する。すなわち、図27に示すように、まず、ステップ100で、統計処理値KAF_LSが下限値KAF_LSL以下であるか否かを判別する。
この判別結果がYESで、KAF_LS≦KAF_LSLのときには、ステップ101で、リフト補正値の今回値Dliftin_comp(k)を、前回値Dliftin_comp(k−1)から所定値Ddecを減算した値に設定した後、本処理を終了する。
一方、ステップ100の判別結果がNOのときには、ステップ102に進み、統計処理値KAF_LSが上限値KAF_LSH未満であるか否かを判別する。この判別結果がYESで、KAF_LSL<KAF_LS<KAF_LSHのときには、ステップ103で、リフト補正値の今回値Dliftin_comp(k)を、前回値Dliftin_comp(k−1)に設定した後、本処理を終了する。すなわち、リフト補正値Dliftin_compが更新されず、一定値に保持される。
一方、ステップ102の判別結果がNOで、KAF_LSH≦KAF_LSのときには、ステップ104で、リフト補正値の今回値Dliftin_comp(k)を、前回値Dliftin_comp(k−1)と所定値Dincとの和に設定した後、本処理を終了する。
図26に戻り、ステップ89で、リフト補正値Dliftin_compを以上のように算出した後、ステップ90に進み、補正後バルブリフトLiftin_compを、前述した式(21)により算出する。
次いで、ステップ91で、前述した算出手法により、位相補正値Dcain_compを算出する。すなわち、図28に示すように、まず、ステップ110で、カム位相Cainが遅角側の所定値Cain_ret未満であるか否かを判別する。この判別結果がYESで、カム位相Cainが遅角側領域の値であるときには、ステップ111に進み、補正項Dcompを値−Dretに、補正項Dcomp’を値Dadvにそれぞれ設定する。
一方、ステップ110の判別結果がNOのときには、ステップ112に進み、カム位相Cainが進角側の所定値Cain_adv以下であるか否かを判別する。この判別結果がYESで、Cain_ret≦Cain≦Cain_advのときには、ステップ113に進み、2つの補正項Dcomp,Dcomp’をいずれも値0に設定する。
一方、ステップ112の判別結果がNOで、カム位相Cainが進角側領域の値であるときには、ステップ114に進み、補正項Dcompを値−Dretに、補正項Dcomp’を値Dadvにそれぞれ設定する。
以上のステップ111,113または114に続くステップ115では、統計処理値KAF_LSが下限値KAF_LSL以下であるか否かを判別する。
この判別結果がYESで、KAF_LS≦KAF_LSLのときには、ステップ116で、位相補正値の今回値Dcain_comp(k)を、前回値Dcain_comp(k−1)と補正項Dcomp’との和に設定した後、本処理を終了する。
一方、ステップ115の判別結果がNOのときには、ステップ117に進み、統計処理値KAF_LSが上限値KAF_LSH未満であるか否かを判別する。この判別結果がYESで、KAF_LSL<KAF_LS<KAF_LSHのときには、ステップ118で、位相補正値の今回値Dcain_comp(k)を、前回値Dcain_comp(k−1)に設定した後、本処理を終了する。すなわち、位相補正値Dcain_compが更新されず、一定値に保持される。
一方、ステップ117の判別結果がNOで、KAF_LSH≦KAF_LSのときには、ステップ119で、位相補正値の今回値Dcain_comp(k)を、前回値Dcain_comp(k−1)と補正項Dcompとの和に設定した後、本処理を終了する。
図26に戻り、ステップ91で、位相補正値Dcain_compを以上のように算出した後、ステップ92に進み、補正後カム位相Cain_compを、前述した式(25)により算出する。その後、本処理を終了する。
以上のように、この補正後値算出処理では、ステップ83〜86の判別結果がいずれもYESのとき、または、ステップ84の判別結果がNOで、かつステップ87,88の判別結果がいずれもYESのときに、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compの算出が実行される。すなわち、エンジン3の暖機の終了後において、アイドル運転中で、エンジン3の運転状態が安定しているとき、または、アイドル運転以外で、アクセル開度APおよびエンジン回転数NEの変動量が小さく、安定した運転状態にあるときに、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compが算出されるので、良好な算出精度を確保することができる。
以下、図29を参照しながら、ECU2により実行される可変機構制御処理について説明する。本処理は、2つの可変機構をそれぞれ制御するための2つの制御入力U_Liftin,U_Cainを算出するものであり、前述した所定の制御周期ΔTで、前述した補正後値算出処理に続けて実行される。
この処理では、まず、ステップ130で、前述した可変機構故障フラグF_VDNGが「1」であるか否かを判別する。この判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ131に進み、前述したエンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
この判別結果がYESで、エンジン始動制御中であるときには、ステップ132に進み、目標バルブリフトLiftin_cmdを、エンジン水温TWに応じて、図30に示すテーブルを検索することにより算出する。
このテーブルでは、目標バルブリフトLiftin_cmdは、エンジン水温TWが所定値TWREF1より高い範囲では、エンジン水温TWが低いほど、より大きな値に設定されているとともに、TW≦TWREF1の範囲では、所定値Liftinrefに設定されている。これは、エンジン水温TWが低い場合、可変バルブリフト機構50のフリクションが増大するので、それを補償するためである。
次いで、ステップ133で、目標カム位相Cain_cmdを、エンジン水温TWに応じて、図31に示すテーブルを検索することにより算出する。
このテーブルでは、目標カム位相Cain_cmdは、エンジン水温TWが所定値TWREF2より高い範囲では、エンジン水温TWが低いほど、より遅角側の値に設定されているとともに、TW≦TWREF2の範囲では、所定値Cainrefに設定されている。これは、エンジン水温TWが低い場合、カム位相Cainをエンジン水温TWが高い場合よりも遅角側に制御し、バルブオーバーラップを小さくすることで、吸気流速を上昇させ、燃焼の安定化を図るためである。
次に、ステップ134に進み、下式(35)〜(38)に示す目標値フィルタ型2自由度スライディングモード制御アルゴリズムにより、リフト制御入力U_Liftinを算出する。
同式(35)において、Krch_lfは所定の到達則ゲインを、Kadp_lfは所定の適応則ゲインをそれぞれ表しており、さらに、σ_lfは、式(36)のように定義される切換関数である。同式(36)において、pole_lfは、−1<pole_lf<0の関係が成立するように設定される応答指定パラメータであり、E_lfは、式(37)により算出される追従誤差である。同式(37)において、Liftin_cmd_fは、目標バルブリフトのフィルタ値であり、式(38)に示す一次遅れフィルタアルゴリズムにより算出される。同式(38)において、pole_f_lfは、−1<pole_f_lf<0の関係が成立するように設定される目標値フィルタ設定パラメータである。
次に、ステップ135に進み、下式(39)〜(42)に示す目標値フィルタ型2自由度スライディングモード制御アルゴリズムにより、位相制御入力U_Cainを算出する。
同式(39)において、Krch_caは所定の到達則ゲインを、Kadp_caは所定の適応則ゲインをそれぞれ表しており、さらに、σ_caは、式(40)のように定義される切換関数である。同式(40)において、pole_caは、−1<pole_ca<0の関係が成立するように設定される応答指定パラメータであり、E_caは、式(41)により算出される追従誤差である。同式(41)において、Cain_cmd_fは、目標カム位相のフィルタ値であり、式(42)に示す一次遅れフィルタアルゴリズムにより算出される。同式(42)において、pole_f_caは、−1<pole_f_ca<0の関係が成立するように設定される目標値フィルタ設定パラメータである。
ステップ135で、位相制御入力U_Cainを以上のように算出した後、本処理を終了する。
一方、ステップ131の判別結果がNOで、エンジン始動制御中でないときには、ステップ136に進み、アクセル開度APが所定値APREFより小さいか否かを判別する。この判別結果がYESで、アクセルペダルが踏まれていないときには、ステップ137に進み、触媒暖機制御の実行時間Tcatが所定値Tcatlmtより小さいか否かを判別する。
この判別結果がYESで、Tcat<Tcatlmtのときには、触媒暖機制御を実行すべきであるとして、ステップ138に進み、目標バルブリフトLiftin_cmdを、触媒暖機制御の実行時間Tcatおよびエンジン水温TWに応じて、図32に示すマップを検索することにより算出する。同図において、TW1〜TW3は、TW1<TW2<TW3の関係が成立するエンジン水温TWの所定値を示しており、この点は以下の説明においても同様である。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン水温TWが低いほど、より大きな値に設定されている。これは、エンジン水温TWが低いほど、触媒の活性化に要する時間が長くなるので、排気ガスボリュームを大きくすることで、触媒の活性化に要する時間を短縮するためである。これに加えて、このマップでは、目標バルブリフトLiftin_cmdは、触媒暖機制御の実行時間Tcatが短い間は、実行時間Tcatが長いほど、より大きな値に設定され、実行時間Tcatがある程度経過した後は、実行時間Tcatが長いほど、より小さな値に設定されている。これは、実行時間Tcatの経過に伴い、エンジン3の暖機が進むことで、フリクションが低下した場合において、吸入空気量を低減しないと、エンジン回転数NEを目標値に維持するために点火時期が過剰にリタード制御された状態となり、燃焼状態が不安定になってしまうので、それを回避するためである。
次いで、ステップ139で、目標カム位相Cain_cmdを、触媒暖機制御の実行時間Tcatおよびエンジン水温TWに応じて、図33に示すマップを検索することにより算出する。
このマップでは、目標カム位相Cain_cmdは、エンジン水温TWが低いほど、より進角側の値に設定されている。これは、エンジン水温TWが低いほど、上述したように触媒の活性化に要する時間が長くなるので、ポンピングロスを減少させ、吸入空気量を増大させることで、触媒の活性化に要する時間を短縮するためである。これに加えて、このマップでは、目標カム位相Cain_cmdは、触媒暖機制御の実行時間Tcatが短い間は、実行時間Tcatが長いほど、より遅角側の値に設定され、実行時間Tcatがある程度経過した後は、実行時間Tcatが長いほど、より進角側の値に設定されている。これは、図32の説明で述べたのと同じ理由による。
次いで、前述したように、ステップ134,135を実行した後、本処理を終了する。
一方、ステップ136または137の判別結果がNOのとき、すなわちTcat≧Tcatlmtであるとき、またはアクセルペダルが踏まれているときには、ステップ140に進み、目標バルブリフトLiftin_cmdを、エンジン回転数NEおよびアクセル開度APに応じて、図34に示すマップを検索することにより算出する。同図において、AP1〜AP3は、AP1<AP2<AP3の関係が成立するアクセル開度APの所定値を示しており、この点は以下の説明においても同様である。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、より大きな値に設定されている。これは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、エンジン3に対する要求出力が大きいことで、より大きな吸入空気量が要求されることによる。
次いで、ステップ141で、目標カム位相Cain_cmdを、エンジン回転数NEおよびアクセル開度APに応じて、図35に示すマップを検索することにより算出する。このマップでは、目標カム位相Cain_cmdは、アクセル開度APが小さくかつ中回転域にあるときには、それ以外のときよりも進角側の値に設定されている。これは、そのような運転状態では、内部EGR量を低減し、ポンピングロスを減少させる必要があるためである。
ステップ141に続いて、前述したように、ステップ134,135を実行した後、本処理を終了する。
一方、ステップ130の判別結果がYESで、2つの可変機構の少なくとも一方が故障しているときには、ステップ142に進み、リフト制御入力U_Liftinを所定の故障時用値U_Liftin_fsに、位相制御入力U_Cainを所定の故障時用値U_Cain_fsにそれぞれ設定した後、本処理を終了する。これにより、前述したように、バルブリフトLiftinが最小値Liftinminに、カム位相Cainが所定のロック値にそれぞれ保持され、それにより、停車中はアイドル運転やエンジン始動を適切に実行できると同時に、走行中は低速走行状態を維持できる。
次に、以上のように構成された第1実施形態の制御装置1による空燃比制御のシミュレーション結果について説明する。図36は、回動角センサ25の検出信号に基づいて算出されるバルブリフトLiftin(実線で示す値)が、実際のバルブリフト(2点鎖線で示す値)よりも小さい側にずれている場合において、アイドル運転中、空燃比補正係数KSTRによる空燃比のフィードバック制御を実行したときの制御結果例を示している。
同図において、ハッチングで示す領域が、リフト補正値Dliftin_compおよび補正後バルブリフトLiftin_compがいずれも更新(変更)される領域を表している。なお、アイドル運転中は、カム位相CainがCain_ret≦Cain≦Cain_advの範囲内に制御されるため、補正後カム位相Cain_compおよび位相補正値Dcain_compはいずれも変化しないので、図36では、これらの値Cain_comp,Dcain_compを示す曲線が省略されている。
また、図37は、比較のために、バルブリフトLiftin(破線で示す値)が、実際のバルブリフト(2点鎖線で示す値)よりも小さい側にずれている場合において、アイドル運転中、バルブリフトLiftinを補正することなく(すなわち補正後バルブリフトLiftin_compを用いることなく)、空燃比補正係数KSTRによる空燃比のフィードバック制御を実行したときの制御結果例を示している。
図37に示すように、空燃比のフィードバック制御の開始時点において、バルブリフトLiftinが、実際のバルブリフトよりも小さい側にずれているとともに、そのずれ度合いが比較的、大きい場合、両者のずれに起因して、気筒3aに吸入される実際の空気量が算出吸気量Gcylよりもかなり多くなり、混合気の実際の空燃比がリーン側にずれてしまうので、検出空燃比KACTが目標空燃比KCMDよりもリーン側にかなり乖離した状態になる。このような状態を補正するために、空燃比制御では、空燃比補正係数KSTRが、上限値KSTRmaxを上回るようなかなりリッチ側の値として算出されるものの、前述したリミット処理により、上限値KSTRmaxに制限されてしまう。その結果、検出空燃比KACTは、時間が経過しても、目標空燃比KCMDに収束せず、目標空燃比KCMDよりもリーン側の値に保持されてしまう。
一方、図36に示すように、本実施形態の制御装置1の場合、空燃比のフィードバック制御の開始時点(時刻t0)では、バルブリフトLiftinおよび補正後バルブリフトLiftin_compが、実際のバルブリフト(2点鎖線で示す値)よりも小さい側にずれていることに起因して、検出空燃比KACTが目標空燃比KCMDよりもリーン側にかなり乖離した状態となり、空燃比指標値KAFが最大値KAFmax(=KSTRmax/KCMD)に保持されている。
そして、補正後バルブリフトLiftin_compの算出処理が進行するのに伴って、補正後バルブリフトLiftin_compが実際のバルブリフトに近づくように補正される。これに並行して、補正後バルブリフトLiftin_compを用いた空燃比のフィードバック制御が進行するのに伴い、検出空燃比KACTが目標空燃比KCMDに収束するように変化し、空燃比指標値の統計処理値KAF_LSが、上限値KAF_LSHを横切り、KAF_LSL<KAF_LS<KAF_LSHの範囲内の値になる(時刻t1)。それ以降、リフト補正値Dliftin_compが一定値に保持され、補正後バルブリフトLiftin_compが一定値に保持されるとともに、検出空燃比KACTが目標空燃比KCMDに収束するように制御される。以上のように、本実施形態の制御装置1によれば、補正後バルブリフトLiftin_compが実際値に近づくように算出されるので、そのような補正後バルブリフトLiftin_compを用いながら、空燃比フィードバック制御を実行することにより、検出空燃比KACTを目標空燃比KCMDに迅速に収束させることができることが判る。
また、空燃比のフィードバック制御の進行に伴い、運転状態の変化に起因して、空燃比指標値KAFは振動状態で変動するものの、統計処理値KAF_LSは、逐次型最小2乗法アルゴリズムで算出されることにより、空燃比指標値KAFの変動状態を影響を回避しながら、安定した変動状態を示す値として算出されることが判る。
以上のように、本実施形態の制御装置1によれば、エンジン3のアイドル運転中、または安定した運転状態にある場合において、空燃比補正係数KSTRによる空燃比のフィードバック制御が実行されているときに、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compがそれぞれ、空燃比指標値の統計処理値KAF_LSに応じてバルブリフトLiftinおよびカム位相Cainを補正した値として算出される。前述した理由により、補正後バルブリフトLiftin_comp(またはバルブリフトLiftin)の実際値に対するずれ、または補正後カム位相Cain_comp(またはカム位相Cain)の実際値に対するずれが発生している場合、そのようなずれに起因して、空燃比指標値KAFが値1よりも大きい値または小さい値を示す。すなわち、上記のずれは、空燃比指標値KAFに反映されるので、そのような空燃比指標値の統計処理値KAF_LSに応じて算出した補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを用いながら、燃料噴射量TOUTおよび点火時期Iglogが算出されることにより、上記のずれの影響を補償しながら、空燃比制御および点火時期制御を適切に実行することができる。それにより、安定した燃焼状態および良好な排ガス特性をいずれも確保することができるとともに、燃焼効率および燃費をいずれも良好な状態に維持することができる。
また、一般に、空燃比制御では、エンジン3の運転状態または燃焼状態が変化すると、それに伴って、空燃比の制御状態がリーン側の方向とリッチ側の方向との間で振動的に変動し、それにより、空燃比補正係数KSTRが振動的に変動し、空燃比指標値KAFも振動的に変動することになる。そのため、そのような空燃比指標値KAFを用いて、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出した場合、これらの算出値も振動的に変動し、空燃比制御および点火時期制御の制御精度が低下することによって、サージングおよびエンジン回転数NEの変動が発生し、運転性が低下する可能性がある。これに対して、本発明では、逐次型最小2乗法アルゴリズムにより、空燃比指標値KAFに統計処理を施した統計処理値KAF_LSを用いているので、サージングおよびエンジン回転数NEの変動が発生するのを回避でき、良好な運転性を確保することができる。
さらに、統計処理値KAF_LSがKAF_LSL<KAF_LS<KAF_LSHの範囲にないときには、統計処理値KAF_LSがこの範囲内になるように、リフト補正値Dliftin_compおよび位相補正値Dcain_compが更新されるとともに、統計処理値KAF_LSが上記範囲内になったときには、2つの補正値Dliftin_comp,Dcain_compの更新が中止され、一定値に保持されるので、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compの算出処理と、空燃比のフィードバック制御とが互いに干渉するのを回避することができる。それにより、空燃比制御の制御精度を向上させることができ、排ガス特性を向上させることができる。
また、第1推定吸気量Gcyl_vtが、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compに応じて算出され、第2推定吸気量Gcyl_afmが、エアフローセンサ22により検出された空気流量Ginに応じて算出される。そして、算出吸気量Gcylが、式(4)により、第1および第2推定吸気量Gcyl_vt,Gcyl_afmの加重平均値として算出されるとともに、Gin_vt≦Gin1の範囲では、Gcyl=Gcyl_vtとなり、Gin2≦Gin_vtの範囲では、Gcyl=Gcyl_afmとなる。
空燃比制御では、燃料噴射量TOUTが算出吸気量Gcylに基づいて算出されるので、Gin_vt≦Gin1のとき、すなわち、吸気通路12a内の空気流量が小さいことで、エアフローセンサ22の検出信号の信頼性が低く、第1推定吸気量Gcyl_vtの信頼性が第2推定吸気量Gcyl_afmの信頼性を上回るときには、信頼性がより高い方の第1推定吸気量Gcyl_vtに基づいて、燃料噴射量TOUTを精度良く算出することができる。また、Gin2≦Gin_vtのとき、すなわち、吸気通路12a内の空気流量が大きいことで、エアフローセンサ22の検出信号の信頼性が高く、第2推定吸気量Gcyl_afmの信頼性が第1推定吸気量Gcyl_vtの信頼性を上回るときには、信頼性がより高い方の第2推定吸気量Gcyl_afmに基づいて、燃料噴射量TOUTを精度良く算出することができる。以上のように、第1推定吸気量Gcyl_vtの信頼性が第2推定吸気量Gcyl_afmの信頼性を上回る低負荷域、またはその逆の負荷域においても、燃料噴射量TOUTを精度良く算出することができるので、空燃比制御の制御精度を向上させることができる。その結果、燃費および排ガス特性を向上させることができる。
一方、点火時期制御では、点火時期Iglogが、算出吸気量Gcylと最大推定吸気量Gcyl_maxとの比である正規化吸気量Kgcylを用いて算出されるので、Gin_vt≦Gin1のとき、またはGin2≦Gin_vtのとき、すなわち第1および第2推定吸気量Gcyl_vt,Gcyl_afmの一方の信頼性が他方を上回るような負荷域でも、より信頼性の高い方の値に基づいて、点火時期Iglogを精度良く算出することができる。これにより、点火時期制御の制御精度を向上させることができ、その結果、燃費および燃焼安定性を向上させることができる。
なお、第1実施形態は、空燃比指標値KAFを逐次型最小2乗法アルゴリズムにより統計処理した統計処理値KAF_LSに応じて、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出した例であるが、統計処理値KAF_LS代えて、空燃比指標値KAFに応じて、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出してもよい。さらに、統計処理値KAF_LSに代えて、空燃比補正係数KSTRまたは空燃比補正係数KSTRを逐次型最小2乗法アルゴリズムにより統計処理した値に応じて、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出してもよい。
また、補正後バルブリフトLiftin_compを、バルブリフトLiftinおよび統計処理値KAF_LS(または空燃比指標値KAF)に応じて、マップ検索により算出してもよい。これと同様に、補正後カム位相Cain_compも、カム位相Cainおよび統計処理値KAF_LS(または空燃比指標値KAF)に応じて、マップ検索により算出してもよい。
さらに、統計処理値KAF_LSを算出する統計処理アルゴリズムは、第1実施形態の固定ゲイン式の逐次型最小2乗法アルゴリズムに限らず、空燃比指標値KAFの振動的な変動の影響を回避できるような統計処理アルゴリズムであればよい。例えば、統計処理値KAF_LSを算出する統計処理アルゴリズムとして、可変ゲイン式の逐次型最小2乗法アルゴリズムや移動平均アルゴリズムなどを用いてもよい。
次に、本発明の第2実施形態に係る制御装置1Aについて説明する。この制御装置1Aは、前述した第1実施形態の制御装置1と比べると、一部を除いて同様に構成されているので、以下、第1実施形態の制御装置1と異なる点を中心として説明する。この制御装置1Aは、図38および図39に示すように、空燃比コントローラ200および点火時期コントローラ230を備えており、これらの空燃比コントローラ200および点火時期コントローラ230は、具体的にはECU2により構成されている。本実施形態では、空燃比コントローラ200が燃料量決定手段および空燃比制御手段に相当し、点火時期コントローラ230が点火時期決定手段に相当する。
両図に示すように、この空燃比コントローラ200および点火時期コントローラ230では、補正後値算出部213以外の部分は、前述した空燃比コントローラ100および点火時期コントローラ130と同様に構成されているので、以下、2つのコントローラ100,130と同じ構成については、同じ符号を付し、その説明は省略するとともに、補正後値算出部213(補正手段)についてのみ説明する。
この補正後値算出部213は、目標空燃比KCMDおよび検出空燃比KACTに応じて、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを算出するものであり、図40に示すように、空燃比偏差算出部214、最小2乗法フィルタ215、非線形処理フィルタ216,217および加算要素218,219を備えている。
まず、空燃比偏差算出部214では、検出空燃比KACTから目標空燃比KCMDを減算することにより、空燃比偏差EAF(=KACT−KCMD)が算出される。本実施形態では、空燃比偏差EAFが制御状態値に相当する。
次に、最小2乗法フィルタ215では、下式(43),(44)に示す固定ゲイン式の逐次型最小2乗法アルゴリズムにより、空燃比偏差の統計処理値(以下、単に「統計処理値」という)EAF_LSが算出される。
この式(43)において、e_ls’は、式(44)により算出される偏差であり、P_ls’は、所定のゲイン(一定値)を表している。
また、非線形処理フィルタ216では、上記統計処理値EAF_LSと所定の上下限値EAF_LSH,EAF_LSLとの比較結果に基づき、以下の式(45)〜(47)のいずれかにより、リフト補正値Dliftin_compが算出される。
・EAF_LS(k)≧EAF_LSHのとき
Dliftin_comp(k)=Dliftin_comp(k-1)−Ddec ……(45)
・EAF_LSL<EAF_LS(k)<EAF_LSHのとき
Dliftin_comp(k)=Dliftin_comp(k-1) ……(46)
・EAF_LS(k)≦EAF_LSLのとき
Dliftin_comp(k)=Dliftin_comp(k-1)+Dinc ……(47)
次いで、加算要素218では、下式(48)により、補正後バルブリフトLiftin_compが算出される。
Liftin_comp(k)=Liftin(k)+Dliftin_comp(k) ……(48)
この補正後値算出部213では、補正後バルブリフトLiftin_compおよびリフト補正値Dliftin_compが以上のように算出される。これは以下の理由による。すなわち、前述した理由により、回動角センサ25の検出信号に基づいて算出されたバルブリフトLiftinが、実際値に対してずれている場合において、安定した運転状態のときに、空燃比のフィードバック制御を実行すると、バルブリフトLiftinのずれに起因して、検出空燃比KACTが目標空燃比KCMDに収束せず、リーン側またはリッチ側にずれた状態になる。
例えば、バルブリフトLiftinが実際値よりも小さい値を示している場合、実際の吸入空気量が算出吸気量Gcylよりも大きい値になることで、検出空燃比KACTが目標空燃比KCMDよりもリーン側にずれてしまう。その結果、例えばKCMD=1のときには、空燃比偏差EAF(=KACT−KCMD)<0となる。これとは逆に、バルブリフトLiftinが実際値よりも大きい値を示している場合、検出空燃比KACTが目標空燃比KCMDよりもリッチ側にずれてしまうので、例えばKCMD=1のときには、EAF>0となる。バルブリフトLiftinの実際値に対するずれと、空燃比偏差EAFとの間には、以上のような相関関係があり、本実施形態では、補正後バルブリフトLiftin_compに応じて算出した算出吸気量Gcylを用いて、空燃比制御が実行されるので、補正後バルブリフトLiftin_compの実際値に対するずれが、空燃比偏差EAFに反映される。
したがって、EAF_LS(k)≧EAF_LSHのときには、バルブリフトLiftinが実際値よりも大きい側にずれていることになるので、前述した式(45)のように、リフト補正値Dliftin_compを減少させることにより、補正後バルブリフトLiftin_compを実際のバルブリフトに近づけることができる。一方、EAF_LS(k)≦EAF_LSLのときには、バルブリフトLiftinが実際値よりも小さい側にずれていることになるので、前述した式(47)のように、リフト補正値Dliftin_compを増大させることにより、補正後バルブリフトLiftin_compを実際値に近づけることができる(後述する図41参照)。
また、EAF_LSL<EAF_LS(k)<EAF_LSHのときには、リフト補正値Dliftin_compが更新されず、一定値に保持される。これは、前述したように、補正後バルブリフトLiftin_compの算出処理と、空燃比のフィードバック制御とが互いに干渉するのを回避するためである。また、上下限値EAF_LSH,EAF_LSLは、補正後バルブリフトLiftin_compと実際値との間のずれが小さくなっていることで、リフト補正値Dliftin_compを一定値に保持し、補正後バルブリフトLiftin_compの更新を中止しても、空燃比制御の制御精度が低下しないような値(例えばEAF_LSH=0.1,EAF_LSL=−0.1)に設定されている。
一方、非線形処理フィルタ217では、上記統計処理値EAF_LSと所定の上下限値EAF_LSH,EAF_LSLとの比較結果に基づき、以下の式(49)〜(51)のいずれかにより、位相補正値Dcain_compが算出される。
・EAF_LS(k)≧EAF_LSHのとき
Dcain_comp(k)=Dcain_comp(k-1)+Dcomp ……(49)
・EAF_LSL<EAF_LS(k)<EAF_LSHのとき
Dcain_comp(k)=Dcain_comp(k-1) ……(50)
・EAF_LS(k)≦EAF_LSLのとき
Dcain_comp(k)=Dcain_comp(k-1)+Dcomp' ……(51)
上記式(49),(51)における補正項Dcomp,Dcomp’は、カム位相Cainと、進角側および遅角側の所定値Cain_adv,Cain_retとの比較結果に基づき、以下のような値に設定される。
・Cain(k)>Cain_advのとき
Dcomp=−Dret
Dcomp’=Dadv
・Cain_ret≦Cain(k)≦Cain_advのとき
Dcomp=0
Dcomp’=0
・Cain(k)<Cain_retのとき
Dcomp=Dadv
Dcomp’=−Dret
次いで、加算要素219では、下式(52)により、補正後カム位相Cain_compが算出される。
Cain_comp(k)=Cain(k)+Dcain_comp(k) ……(52)
補正後値算出部213では、補正後カム位相Cain_compおよび位相補正値Dcain_compが以上のように算出される。これは以下の理由による。すなわち、前述した理由により、2つのセンサ20,26の検出信号に基づいて算出されたカム位相Cainが、実際のカム位相に対して進角側または遅角側にずれている場合、空燃比のフィードバック制御を実行すると、バルブオーバーラップの変化または吸気弁4の遅閉じによる吹き戻し量の変化に起因して、検出空燃比KACTが目標空燃比KCMDに収束せず、リーン側またはリッチ側にずれた状態になる。その結果、例えばKCMD=1のときには、EAF<0またはEAF>0となる。カム位相Cainの実際値に対するずれと、空燃比偏差EAFとの間には、以上のような相関関係があり、本実施形態では、補正後カム位相Cain_compに応じて算出した算出吸気量Gcylを用いて、空燃比制御が実行されるので、補正後カム位相Cain_compの実際値に対するずれが、空燃比指標値KAFに反映される。
したがって、EAF_LS(k)≧EAF_LSHの場合において、Cain(k)>Cain_advで、カム位相Cainが進角側領域の値であるときには、算出吸気量Gcylの算出に用いている補正後カム位相Cain_compが、実際値よりも進角側にずれていることにより、バルブオーバーラップの増大に起因して、実際の吸入空気量が算出吸気量Gcylよりも小さい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリッチ側にずれていると推定される。そのため、補正後カム位相Cain_compをより遅角側に補正する必要があるので、式(49)において、位相補正値Dcain_compがより小さな値として算出されるように、補正項Dcompが値−Dretに設定される。
さらに、EAF_LS(k)≧EAF_LSHの場合において、Cain(k)<Cain_retで、カム位相Cainが遅角側領域の値であるときには、補正後カム位相Cain_compが実際値よりも遅角側にずれていることにより、吸気弁4の遅閉じ度合いの増大に起因して、吸気の吹き戻し量が増大し、実際の吸入空気量が算出吸気量Gcylよりも小さい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリッチ側にずれていると推定される。そのため、補正後カム位相Cain_compをより進角側に補正する必要があるので、式(49)において、位相補正値Dcain_compがより大きな値として算出されるように、補正項Dcompが値Dadvに設定される。
一方、EAF_LS(k)≦EAF_LSLの場合において、Cain(k)>Cain_advで、カム位相Cainが進角側領域の値であるときには、補正後カム位相Cain_compが実際値よりも遅角側にずれていることにより、バルブオーバーラップの減少に起因して、実際の吸入空気量が算出吸気量Gcylよりも大きい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリーン側にずれていると推定される。そのため、補正後カム位相Cain_compをより進角側に補正する必要があるので、式(51)において、位相補正値Dcain_compがより大きな値として算出されるように、補正項Dcomp’が値Dadvに設定される。
さらに、EAF_LS(k)≦EAF_LSLの場合において、Cain(k)<Cain_retで、カム位相Cainが遅角側領域の値であるときには、補正後カム位相Cain_compが実際値よりも進角側にずれていることにより、吸気弁4の遅閉じ度合いの減少に起因して、吸気の吹き戻し量が減少し、実際の吸入空気量が算出吸気量Gcylよりも大きい値となっており、その結果、検出空燃比KACTが目標空燃比KCMDよりもリーン側にずれていると推定される。そのため、補正後カム位相Cain_compをより遅角側に補正する必要があるので、式(51)において、位相補正値Dcain_compがより小さな値として算出されるように、補正項Dcomp’が値−Dretに設定される。
一方、EAF_LSL<EAF_LS(k)<EAF_LSHのとき、およびCain_ret≦Cain(k)≦Cain_advのときには、位相補正値Dcain_compが更新されず、一定値に保持される。これは、位相補正値Dcain_compを一定値に保持し、補正後カム位相Cain_compの更新を停止することで、補正後カム位相Cain_compの算出処理と、空燃比のフィードバック制御とが互いに干渉するのを回避するためである。また、上下限値EAF_LSH,EAF_LSL、および所定値Cain_adv,Cain_retは、補正後カム位相Cain_compと実際値との間のずれが小さくなっていることで、位相補正値Dcain_compを一定値に保持し、補正後カム位相Cain_compの更新を停止しても、空燃比制御の制御精度が低下しないような値に設定されている。
次に、以上のように構成された第2実施形態の制御装置1Aによる制御結果について説明する。図41は、回動角センサ25の検出信号に基づいて算出されるバルブリフトLiftin(実線で示す値)が、実際のバルブリフト(2点鎖線で示す値)よりも小さい側にずれている場合において、アイドル運転中、空燃比補正係数KSTRによる空燃比のフィードバック制御および補正後値算出処理を実行したときの制御結果の一例を示している。
同図において、ハッチングで示す領域が、リフト補正値Dliftin_compおよび補正後バルブリフトLiftin_compがいずれも更新される領域を表している。また、前述したように、アイドル運転中は、カム位相CainがCain_ret≦Cain≦Cain_advの範囲内に制御されるため、補正後カム位相Cain_compおよび位相補正値Dcain_compはいずれも変化しないので、図41では、これらの値Cain_comp,Dcain_compを示す曲線が省略されている。
図41に示すように、第2実施形態の制御装置1Aの場合、空燃比のフィードバック制御の開始時点(時刻t10)では、バルブリフトLiftinすなわち補正後バルブリフトLiftin_compが、実際のバルブリフトよりも小さい側にずれていることに起因して、検出空燃比KACTが目標空燃比KCMDよりもリーン側にかなり乖離した状態となり、空燃比偏差EAFが値−1付近の値になる。そのため、空燃比補正係数KSTRが最大値KSTRmaxをかなり上回った値として算出されることで、前述したリミット処理により、最大値KSTRmaxに制限されている。
そして、補正後バルブリフトLiftin_compの算出処理が進行するのに伴って、補正後バルブリフトLiftin_compが実際のバルブリフトに近づくように補正される。これに並行して、補正後バルブリフトLiftin_compを用いた空燃比のフィードバック制御が進行するのに伴い、検出空燃比KACTが目標空燃比KCMD側に向かって変化し、空燃比偏差の統計処理値EAF_LSが、下限値EAF_LSLを横切り、EAF_LSL<EAF_LS<EAF_LSHの範囲内の値になる(時刻t11)。それ以降、リフト補正値Dliftin_compが一定値に保持され、補正後バルブリフトLiftin_compも一定値に保持される。その結果、検出空燃比KACTは目標空燃比KCMDよりもリーン側に若干、乖離した状態に保持されるとともに、空燃比補正係数KSTRが最大値KSTRmaxに保持される。
また、空燃比のフィードバック制御の進行に伴い、空燃比偏差EAFは振動状態で変動するものの、統計処理値EAF_LSは、逐次型最小2乗法アルゴリズムにより算出されることによって、空燃比偏差EAFの変動状態の影響を回避しながら、安定した変動状態を示す値として算出されることが判る。
さらに、この第2実施形態の制御装置1Aの場合、空燃比偏差の統計処理値EAF_LSが、EAF_LSL<EAF_LS<EAF_LSHの範囲内の値になった以降、空燃比補正係数KSTRが最大値KSTRmaxに保持されてしまうので、前述した第1実施形態の制御装置1の方が、空燃比制御において、より良好な制御性および安定性を確保できることが判る。
以上のように、第2実施形態の制御装置1Aでも、補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compがそれぞれ、バルブリフトLiftinおよびカム位相Cainを実際値側に補正した値として算出されるので、そのような補正後バルブリフトLiftin_compおよび補正後カム位相Cain_compを用いながら、空燃比フィードバック制御および点火時期制御を実行することができ、それにより、前述した第1実施形態の制御装置1と同様の作用効果を得ることができる。
なお、各実施形態は、本発明の制御装置1を車両用の内燃機関3に適用した例であるが、本発明の制御装置1はこれに限らず、船舶用および発電用などの様々な用途の内燃機関に適用可能である。
また、各実施形態は、可変吸気機構として、可変バルブリフト機構50および可変カム位相機構70を用いた例であるが、可変吸気機構はこれらに限らず、エンジン3の燃焼室内に吸入される吸入空気量を変更可能なものであればよい。例えば、可変吸気機構として、従来のようなスロットル弁機構を用いてもよく、その場合、スロットル弁の開度を動作状態パラメータとして用いればよい。
さらに、各実施形態は、動作状態パラメータとして、バルブリフトLiftinおよびカム位相Cainを用いた例であるが、これらの一方のみを動作状態パラメータとして用いてもよい。