以下、図面を参照しながら、本発明の第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パルスが出力される。
また、水温センサ21は、例えばサーミスタなどで構成されており、エンジン水温TWを表す検出信号をECU2に出力する。このエンジン水温TWは、エンジン3のシリンダブロック3h内を循環する冷却水の温度である。なお、本実施形態では、エンジン水温TWが温度パラメータに相当する。
さらに、エンジン3の吸気管12では、スロットル弁機構が省略されているとともに、その吸気通路12aが大口径に形成されており、それにより、流動抵抗が通常のエンジンよりも小さくなるように設定されている。この吸気管12には、エアフローセンサ22および大気温センサ23(図2参照)が設けられている。
このエアフローセンサ22は、熱線式エアフローメータで構成されており、吸気通路12a内を流れる空気の流量(以下「空気流量」という)Ginを表す検出信号をECU2に出力する。また、大気温センサ23は、大気の温度(以下「大気温」という)TAを表す検出信号をECU2に出力する。
さらに、エンジン3の排気管13には、上流側から順に、LAFセンサ24および触媒装置14がそれぞれ設けられている。LAFセンサ24は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気管13の排気通路13a内を流れる排ガス中の酸素濃度をリニアに検出し、それを表す検出信号をECU2に出力する。
ECU2は、このLAFセンサ24の検出信号の値に基づき、排ガス中の空燃比を表す検出空燃比KACTを算出する。この場合、検出空燃比KACTは、具体的には当量比として算出される。なお、本実施形態では、LAFセンサ24が空燃比パラメータ検出手段に相当し、検出空燃比KACTが空燃比パラメータに相当する。
次に、前述した可変式吸気動弁機構40について説明する。この可変式吸気動弁機構40は、図4に示すように、吸気カムシャフト5、吸気カム6、可変バルブリフト機構50および可変カム位相機構70などで構成されている。なお、本実施形態では、可変バルブリフト機構50が可変吸気機構に相当する。
この可変バルブリフト機構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が駆動される。
その際、図示しないストッパに当接することによって、短アーム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がロック値に保持されている場合において、吸入空気量として所定の故障時用値を確保できるような値に設定されている。この所定の故障時用値は、停車中はアイドル運転やエンジン始動を適切に行うことができると同時に、走行中は低速走行状態を維持できるような値に設定されている。
また、エンジン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と最進角値Cainadの間で連続的に変化し、それにより、吸気弁4のバルブタイミングは、図9に実線で示す最遅角タイミングと、図9に2点鎖線で示す最進角タイミングとの間で、無段階に変更される。なお、後述する制御処理では、最遅角値Cainrtが0゜に、最進角値Cainadが正の所定角度(例えば100゜)にそれぞれ設定される。
また、この可変カム位相機構70には、図示しないロック機構が設けられており、このロック機構により、油圧ポンプ73からの供給油圧が低いとき、位相制御入力U_Cainが後述する故障時用値U_Cain_fsに設定されているとき、および断線などにより位相制御入力U_Cainが電磁弁機構74に入力されないときには、可変カム位相機構70の動作がロックされる。すなわち、可変カム位相機構70によるカム位相Cainの変更が禁止され、カム位相Cainが所定のロック値に保持される。この所定のロック値は、前述したように、バルブリフトLiftinが最小値Liftinminに保持されている場合において、吸入空気量として所定の故障時用値を確保できるような値に設定されている。
以上のように、本実施形態の可変式吸気動弁機構40では、可変バルブリフト機構50により、バルブリフトLiftinが無段階に変更されるとともに、可変カム位相機構70により、カム位相Cainすなわち吸気弁4のバルブタイミングが前述した最遅角タイミングと最進角タイミングとの間で、無段階に変更される。また、ECU2により、後述するように、可変バルブリフト機構50および可変カム位相機構70を介して、バルブリフトLiftinおよびカム位相Cainがそれぞれ制御され、それにより、吸入空気量が制御される。なお、以下の説明では、可変バルブリフト機構50および可変カム位相機構70をまとめて「2つの可変機構」という。
一方、吸気カムシャフト5の可変カム位相機構70と反対側の端部には、カム角センサ26(図2参照)が設けられている。このカム角センサ26は、例えばマグネットロータおよびMREピックアップで構成されており、吸気カムシャフト5の回転に伴い、パルス信号であるCAM信号を所定のカム角(例えば1゜)毎にECU2に出力する。ECU2は、このCAM信号および前述したCRK信号に基づき、カム位相Cainを算出する。
さらに、図2に示すように、ECU2には、アクセル開度センサ27、油温センサ28およびイグニッション・スイッチ(以下「IG・SW」という)29が接続されている。このアクセル開度センサ27は、車両の図示しないアクセルペダルの踏み込み量(以下「アクセル開度」という)APを表す検出信号をECU2に出力する。
また、油温センサ28は、サーミスタなどで構成され、エンジン3の潤滑油の温度である油温Toilを表す検出信号をECU2に出力する。なお、本実施形態では、油温Toilが温度パラメータに相当する。さらに、IG・SW29は、イグニッションキー(図示せず)操作によりON/OFFされるとともに、そのON/OFF状態を表す信号をECU2に出力する。
ECU2は、CPU、RAM、ROMおよびI/Oインターフェース(いずれも図示せず)などからなるマイクロコンピュータで構成されており、前述した各種のセンサ20〜28の検出信号およびIG・SW29のON/OFF信号などに応じて、エンジン3の運転状態を判別するとともに、運転状態に応じて、後述するように、空燃比制御、点火時期制御および可変機構制御などを実行する。このECU2のRAMは、停電補償機能付きのもので構成されており、IG・SW29がOFFされ、エンジン3が停止されているときでも、内部のデータを保持する。
なお、本実施形態では、ECU2が、推定機構温度算出手段、動作状態パラメータ検出手段、第1補正値算出手段、空燃比パラメータ検出手段、目標空燃比算出手段、空燃比制御パラメータ算出手段、推定吸気量算出手段、推定値算出手段、第2補正値算出手段、補正後パラメータ算出手段、燃料量決定手段、空燃比制御手段および点火時期決定手段に相当する。
次に、本実施形態の制御装置1について説明する。この制御装置1は、空燃比制御を実行する空燃比コントローラ100(図10参照)と、点火時期制御を実行する点火時期コントローラ180(図26参照)とを備えており、これらはいずれも、具体的には、ECU2により構成されている。
まず、空燃比コントローラ100について説明する。なお、本実施形態では、空燃比コントローラ100が、燃料量決定手段および空燃比制御手段に相当する。この空燃比コントローラ100は、以下に述べるように、燃料噴射量TOUTを燃料噴射弁10毎に算出するものであり、図10に示すように、吸気量算出部110、目標空燃比算出部111、空燃比補正係数算出部112、空燃比指標値算出部113、増幅要素114、総補正係数算出部115、乗算要素116および燃料付着補正部117を備えている。
吸気量算出部110では、後述するように、エンジン水温TW、大気温TA、油温Toil、エンジン回転数NE、空気流量Gin、バルブリフトLiftin、カム位相Cain、検出空燃比KACTおよび空燃比指標値KAFに応じて、吸入空気量Gcylが算出される。
また、目標空燃比算出部111(目標空燃比算出手段)では、吸入空気量Gcylおよびアクセル開度APに応じて、図11に示すマップを検索することにより、目標空燃比KCMDが算出される。このマップでは、目標空燃比KCMDの値は、当量比として設定されているとともに、基本的には、触媒装置14の排ガス浄化性能を良好な状態に保持するために、理論空燃比に相当する値(1.0)に設定されている。なお、本実施形態では、目標空燃比算出部111が目標空燃比算出手段に相当する。
一方、空燃比補正係数算出部112では、検出空燃比KACTおよび目標空燃比KCMDに応じて、空燃比補正係数KAFDが算出される。具体的には、空燃比補正係数KAFDは、混合気の空燃比すなわち検出空燃比KACTを目標空燃比KCMDに収束させるように、以下の式(1)〜(5)に示す簡易型の応答指定型制御アルゴリズム(スライディングモード制御アルゴリズムまたはバックステッピング制御アルゴリズム)により算出されるとともに、当量比換算値として算出される。
これらの式(1)〜(5)における記号(n)付きの各離散データは、TDC信号の発生タイミングに同期する制御周期ΔTnでサンプリングまたは算出されたデータであることを示しており、記号nは各離散データのサンプリングまたは算出サイクルの順番を表している。例えば、記号nは今回の制御タイミングでサンプリングまたは算出された値であることを、記号n−1は前回の制御タイミングでサンプリングまたは算出された値であることをそれぞれ示している。この点は、以下の離散データにおいても同様である。なお、以下の説明では、各離散データにおける記号(n)などを適宜、省略する。
上記式(1)に示すように、空燃比補正係数KAFDは、到達則入力Urchと適応則入力Uadpの和として算出され、この到達則入力Urchは、式(2)により算出される。同式(2)において、Krch’は、所定の到達則ゲインを表しており、σ’は、式(4)のように定義される切換関数である。同式(4)において、S’は、−1<S’<0の関係が成立するように設定される切換関数設定パラメータであり、eは、式(5)のように定義される追従誤差である。
また、適応則入力Uadpは、式(3)により算出され、同式(3)において、Kadp’は、所定の適応則ゲインを表している。なお、この適応則入力Uadpの初期値は、値1に設定される。
以上のように、空燃比補正係数算出部112では、検出空燃比KACTおよび目標空燃比KCMDに応じて、空燃比補正係数KAFDが算出される。なお、本実施形態では、空燃比補正係数算出部112が空燃比制御パラメータ算出手段に相当し、空燃比補正係数KAFDが空燃比制御パラメータに相当する。
一方、空燃比指標値算出部113では、空燃比補正係数KAFDおよび目標空燃比KCMDに基づき、下式(6)により、空燃比指標値KAFが算出される。
さらに、増幅要素114では、吸入空気量Gcylに基づき、下式(7)により、基本燃料噴射量Tcyl_bsが算出される。ここで、Kgtは、燃料噴射弁10毎に予め設定される換算係数である。
一方、総補正係数算出部115では、エンジン水温TWおよび大気温TAなどの運転状態を表す各種のパラメータに応じて、図示しない各種のマップを検索することにより、各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、総補正係数KTOTALが算出される。
また、乗算要素116では、下式(8)により、要求燃料噴射量Tcylが算出される。
さらに、燃料付着補正部117では、以上のように算出された要求燃料噴射量Tcylに、所定の燃料付着補正処理を施すことにより、燃料噴射量TOUT(燃料量)が算出される。そして、この燃料噴射量TOUTに基づいて、燃料噴射弁10の燃料噴射タイミングおよび開弁時間が決定され、燃料噴射弁10が制御される。
次に、前述した吸気量算出部110について説明する。吸気量算出部110は、図12に示すように、補正後バルブリフト算出部120、第1推定吸気量算出部121、第2推定吸気量算出部122、動作状態判定部123および吸気量選択部124を備えている。
補正後バルブリフト算出部120では、後述するように、補正後バルブリフトLiftin_modが、エンジン水温TWなどの各種のパラメータに応じて、前述した制御周期ΔTnと異なる所定の制御周期ΔT(例えば10msec)で算出される。なお、本実施形態では、補正後バルブリフトLiftin_modが補正後パラメータに相当する。
また、第1推定吸気量算出部121では、下式(9)により、第1推定吸気量Gcyl_vtが算出される。なお、本実施形態では、第1推定吸気量Gcyl_vtが負荷パラメータに相当する。
ここで、Gcyl_vt_baseは第1推定吸気量のマップ値を、K_gcyl_vtは補正係数をそれぞれ表しており、これらは以下のように算出される。
まず、マップ値Gcyl_vt_baseは、エンジン回転数NEおよび補正後バルブリフトLiftin_modに応じて、図13に示すマップを検索することにより算出される。この場合、補正後バルブリフトLiftin_modは、前述したように、制御周期ΔTnと異なる制御周期ΔTで算出されるので、制御周期ΔTnでサンプリングした値Liftin_mod(n)を用いる。なお、図13において、NE1〜NE3は、NE1<NE2<NE3の関係が成立するエンジン回転数NEの所定値であり、この点は以下の説明においても同様である。
このマップでは、マップ値Gcyl_vt_baseは、NE=NE1またはNE2の場合、補正後バルブリフトLiftin_modが小さい領域では、補正後バルブリフトLiftin_modが大きいほど、より大きい値に設定され、補正後バルブリフトLiftin_modが最大値Liftinmaxに近い領域では、補正後バルブリフトLiftin_modが大きいほど、より小さい値に設定されている。これは、低・中回転域では、補正後バルブリフトLiftin_modが最大値Liftinmaxに近い領域においてより大きな値になるほど、吸気弁4の開弁時間が長くなることで、吸気の吹き戻しにより充填効率が低下するためである。
また、マップ値Gcyl_vt_baseは、NE=NE3の場合、補正後バルブリフトLiftin_modが大きいほど、より大きい値に設定されている。これは、高回転域では、補正後バルブリフトLiftin_modが大きい領域でも、吸気の慣性力により上記吸気の吹き戻しが発生しにくくなるため、補正後バルブリフトLiftin_modが大きいほど、充填効率がより高くなることによる。
一方、補正係数K_gcyl_vtは、エンジン回転数NEおよびカム位相Cainに応じて、図14に示すマップを検索することにより算出される。このマップでは、補正係数K_gcyl_vtは、NE=NE1またはNE2の場合、カム位相Cainが最遅角値Cainrtに近い領域では、最遅角値Cainrtに近いほど、より小さい値に設定され、それ以外の領域では、カム位相Cainが最進角値Cainad側の値であるほど、より小さな値に設定されている。これは、低・中回転域では、カム位相Cainが最遅角値Cainrtに近い領域において、最遅角値Cainrtに近いほど、吸気弁4の閉弁タイミングが遅くなることで、吸気の吹き戻しにより充填効率が低下するためであり、それ以外の領域では、カム位相Cainが最進角値Cainadに近いほど、バルブオーバーラップの増大に伴う内部EGR量の増大により、充填効率が低下するためである。
また、NE=NE3の場合、補正係数K_gcyl_vtは、カム位相Cainが最遅角値Cainrtに近い領域では、一定値(値1)に設定され、それ以外の領域では、カム位相Cainが最進角値Cainad側の値であるほど、より小さな値に設定されている。これは、高回転域では、カム位相Cainが最進角値Cainadに近い領域でも、前述した吸気の慣性力により、吸気の吹き戻しが発生しにくくなることによる。
一方、第2推定吸気量算出部122では、空気流量Ginおよびエンジン回転数NEに基づき、下式(10)により、第2推定吸気量Gcyl_afmが算出される。
また、動作状態判定部123では、可変バルブリフト機構50および可変カム位相機構70の少なくとも一方が故障しているか否かが判定され、その判定結果に応じて、可変機構故障フラグF_VDNGの値が設定される。以下、可変バルブリフト機構50および可変カム位相機構70をまとめて「2つの可変機構」という。可変機構故障フラグF_VDNGは、具体的には、2つの可変機構の少なくとも一方が故障していると判定されたときには「1」に、いずれも正常であると判定されたときには「0」にそれぞれ設定される。
この場合、可変バルブリフト機構50の故障判定は、以下のように実行される。すなわち、バルブリフトLiftinと目標バルブリフトLiftin_cmdとの偏差の絶対値が所定のしきい値を超える状態が所定時間以上、継続したとき、またはリフト制御入力U_Liftinの絶対値が所定値を超える状態が、所定時間以上、継続したときには、可変バルブリフト機構50が故障状態にあると判別され、それ以外のときには、可変バルブリフト機構50が正常であると判別される。
また、可変カム位相機構70の故障判定も、上記可変バルブリフト機構50と同様に実行される。すなわち、カム位相Cainと目標カム位相Cain_cmdとの偏差の絶対値が所定のしきい値を超える状態が所定時間以上、継続したとき、または位相制御入力U_Cainの絶対値が所定値を超える状態が、所定時間以上、継続したときには、可変カム位相機構70が故障状態にあると判別され、それ以外のときには、可変カム位相機構70が正常であると判別される。
次いで、吸気量選択部124では、動作状態判定部123で設定された可変機構故障フラグF_VDNGの値に応じて、下式(11),(12)により、吸入空気量Gcylが算出される。
すなわち、2つの可変機構がいずれも正常であるときには、第1推定吸気量Gcyl_vtが吸入空気量Gcylとして選択され、それ以外のときには、第2推定吸気量Gcyl_afmが吸入空気量Gcylとして選択される。
次に、前述した補正後バルブリフト算出部120について説明する。なお、本実施形態では、補正後バルブリフト算出部120が、推定機構温度算出手段、第1補正値算出手段、推定吸気量算出手段、推定値算出手段、第2補正値算出手段および補正後パラメータ算出手段に相当する。
この補正後バルブリフト算出部120は、以下に述べるように、補正後バルブリフトLiftin_modを算出するものであり、図15に示すように、FB補正値算出部130、FF補正値算出部131、減算要素132、空燃比制御判定部134、補正値選択部135および加算要素136を備えている。
まず、FB補正値算出部130では、後述するように、エンジン回転数NE、バルブリフトLiftin、カム位相Cain、検出空燃比KACTおよび空燃比指標値KAFに応じて、FB補正値Dliftin_fbが算出される。
一方、FF補正値算出部131では、以下に述べる手法により、FF補正値Dliftin_testが算出される。このFF補正値Dliftin_testは、可変バルブリフト機構50自体の温度が変化すると、可変バルブリフト機構50の熱伸縮に起因して、回動角センサ25の検出信号に基づいて算出されたバルブリフトLiftinが実際のバルブリフトの値に対してずれるので、それを補正するための値である。
まず、可変バルブリフト機構50を熱力学的にモデリングすると、下式(13)に示す熱力学的モデルが得られる。
この式(13)において、記号(k)付きの各離散データは、前述した所定の制御周期ΔTでサンプリングまたは算出されたデータであることを示している。なお、以下の説明では、各離散データにおける記号(k)を適宜省略する。また、式(13)において、Tlift_hatは可変バルブリフト機構50の推定温度(以下「推定機構温度」という)であり、α,β,γ,δは、所定のモデルパラメータを表している。
ここで、式(13)の右辺第1項α・Gcyl_vtは、エンジン3の発熱状態が可変バルブリフト機構50に及ぼす影響を表しており、右辺第2項β・(Tlift_hat−TA)は、可変バルブリフト機構50と大気との間の熱伝達状態を表している。また、右辺第3項γ・(Tlift_hat−TW)は、可変バルブリフト機構50とエンジン3の冷却水との間の熱伝達状態を表しており、右辺第4項δ・(Tlift_hat−Toil)は、可変バルブリフト機構50と潤滑油との間の熱伝達状態を表している。
上記式(13)を、推定機構温度Tlift_hatについて整理するとともに、離散時間「1」分、過去側にシフトすると、下式(14)が得られる。この式(14)により、推定機構温度Tlift_hatが算出される。
次いで、上記式(14)により算出した推定機構温度Tlift_hatに応じて、図16に示すマップを検索することにより、FF補正値Dliftin_testが算出される。同図において、Tlift1,Tlift2は、Tlift1<Tlift2の関係が成立する推定機構温度Tlift_hatの所定値であり、Dliftin1は、正の所定値である。
このマップでは、Tlift1<Tlift_hat<Tlift2の範囲では、FF補正値Dliftin_testは、推定機構温度Tlift_hatが低いほど、より大きい値に設定されている。これは、以下の理由による。すなわち、可変バルブリフト機構50は、その構造に起因して、可変バルブリフト機構50が低温状態にあるときには、バルブリフトLiftinが、吸気弁4の実際のリフトに対してより小さい値を示すとともに、実際のリフトとバルブリフトLiftinとの偏差は、可変バルブリフト機構50の温度が低いほど、より大きい値になるという特性を備えている。したがって、それを補正するために、後述するように、FF補正値Dliftin_testは、バルブリフトLiftinの加算補正項として用いられるとともに、上記のような傾向に設定されている。また、Tlift_hat≦Tlift1の範囲では、Dliftin_test=Dliftin1に設定されている。これは、吸入空気量Gcylの温度補正が過剰な状態になることで、エンジン3の運転状態が悪化するのを回避するためである。
さらに、Tlift2≦Tlift_hatの範囲では、Dliftin_test=0に設定されている。これは、そのような温度領域では、可変バルブリフト機構50が伸縮することなく、安定した状態になることで、バルブリフトLiftinの温度補正が不要になることによる。
次に、減算要素132では、FF補正値とFB補正値との偏差(Dliftin_test−Dliftin_fb)が算出される。
一方、空燃比制御判定部134では、空燃比フィードバック制御中であるか否かが判定され、その判定結果に応じて、フィードバック制御中フラグF_AFFBの値が設定される。具体的には、フィードバック制御中フラグF_AFFBは、空燃比フィードバック制御中のときには「1」に、そうでないときには「0」にそれぞれ設定される。
次いで、補正値選択部135では、空燃比制御判定部134で設定されたフィードバック制御中フラグF_AFFBの値に応じて、下式(15),(16)により、リフト補正値Dliftin_compが算出される。
すなわち、空燃比フィードバック制御中であるときには、FF補正値とFB補正値との偏差(Dliftin_test−Dliftin_fb)がリフト補正値Dliftin_compとして選択され、そうでないときには、FF補正値Dliftin_testがリフト補正値Dliftin_compとして選択される。なお、本実施形態では、FF補正値Dliftin_testが第1補正値に、FB補正値Dliftin_fbが第2補正値にそれぞれ相当する。
次いで、加算要素136で、下式(17)により、補正後バルブリフトLiftin_modが算出される。
次に、前述したFB補正値算出部130について説明する。このFB補正値算出部130は、図17に示すように、第3推定吸気量算出部140、遅延要素141,142,144、推定バルブリフト算出部143、減算要素145、重み付き統計処理フィルタ146および応答指定型コントローラ147を備えている。
まず、第3推定吸気量算出部140について説明する。この第3推定吸気量算出部140は、前述した制御周期ΔTnで第3推定吸気量Gcyl_hatを算出するものであり、具体的には、図18に示すように、4つの遅延要素150〜153、基本値算出部154、誤差推定係数算出部155および乗算要素156を備えている。
4つの遅延要素150〜153では、エンジン回転数NE、カム位相Cain、バルブリフトLiftinおよび空燃比指標値KAFに対してむだ時間dを反映させた値NE(n−d),Cain(n−d),Liftin(n−d),KAF(n−d)がそれぞれ算出される。このむだ時間dは、混合気の燃焼により燃焼室内で発生した燃焼ガスがLAFセンサ24に到達するのに要すると推定される時間であり、具体的には、エンジン回転数NEおよび第1推定吸気量Gcyl_vtに応じて、図19に示すマップを検索することにより算出される。
同図において、Gcyl1〜3は、Gcyl1<Gcyl2<Gcyl3の関係が成立するように設定される第1推定吸気量Gcyl_vtの所定値である。このマップでは、エンジン回転数NEが高いほど、または第1推定吸気量Gcyl_vtが大きいほど(すなわち高負荷であるほど)、むだ時間dがより小さい値に設定されている。これは、そのような運転状態では、排ガスの流速が高くなることで、排ガスがLAFセンサ24に達するまでに要する時間すなわちむだ時間dが小さくなることによる。なお、このマップでは、むだ時間dは、制御周期ΔTnでの演算実行回数を表す値に設定されている。
次いで、基本値算出部154では、下式(18)により、第3推定吸気量Gcyl_hatの算出に用いる基本値Gcyl_hat_bsが算出される。
ここで、Gcyl_hat_baseは第3推定吸気量のマップ値を、K_gcyl_hatは補正係数をそれぞれ表しており、これらは以下のように算出される。
まず、マップ値Gcyl_hat_baseは、エンジン回転数NE(n−d)およびバルブリフトLiftin(n−d)に応じて、図20に示すマップを検索することにより算出される。このマップでは、マップ値Gcyl_hat_baseは、前述した図13におけるマップ値Gcyl_vt_baseと同様の傾向に設定されている。これは、図13の説明で述べたのと同じ理由による。
また、補正係数K_gcyl_hatは、エンジン回転数NE(n−d)およびカム位相Cain(n−d)に応じて、図21に示すマップを検索することにより算出される。このマップでは、補正係数K_gcyl_hatは、前述した図14における補正係数K_gcyl_vtと同様の傾向に設定されている。これは、図14の説明で述べたのと同じ理由による。
一方、誤差推定係数算出部155では、下式(19)により、誤差推定係数KEGCYLが算出される。
次いで、乗算要素156では、下式(20)により、第3推定吸気量Gcyl_hatが算出される。
以上のように、第3推定吸気量算出部140では、エンジン回転数NE、カム位相Cain、バルブリフトLiftinおよび空燃比指標値KAFに対してむだ時間dを反映させた値NE(n−d),Cain(n−d),Liftin(n−d),KAF(n−d)と、検出空燃比の今回値KACT(n)とを用いることにより、第3推定吸気量Gcyl_hatが算出されるとともに、むだ時間dが、エンジン回転数NEおよび第1推定吸気量Gcyl_vtに応じて設定される。それにより、第3推定吸気量Gcyl_hatの算出結果に対して、混合気の燃焼により燃焼室内で発生した燃焼ガスがLAFセンサ24に到達するまでに要するむだ時間dを反映させることができるとともに、エンジン回転数NEおよび第1推定吸気量Gcyl_vtの変化に伴うむだ時間dの変化も反映させることができる。その結果、第3推定吸気量Gcyl_hatの算出精度を高めることができる。
図17に戻り、前述した遅延要素141,142では、エンジン回転数NEおよびカム位相Cainに対してむだ時間dを反映させた値NE(k−d),Cain(k−d)がそれぞれ算出される。この場合、前述したように、むだ時間dは、制御周期ΔTと異なる制御周期ΔTnの演算実行回数として算出されるので、エンジン回転数NEに基づき、制御周期ΔTの実行回数に対応するように変換した値を用いる。
また、推定バルブリフト算出部143では、制御周期ΔTでの第3推定吸気量のサンプリング値Gcyl_hat(k)、エンジン回転数NE(k−d)およびカム位相Cain(k−d)に応じて、マップを検索することにより、推定バルブリフトLiftin_hat(k)が算出される。なお、本実施形態では、推定バルブリフトLiftin_hatが動作状態パラメータの推定値に相当する。
この場合、推定バルブリフトLiftin_hat(k)の算出に用いるマップとしては、図22に示すCain(k−d)=Cainrt用のマップと、図23に示すCain(k−d)=Cainmi(Cainad/2に相当する値)用のマップと、図24に示すCain(k−d)=Cainad用のマップと、カム位相Cain(k−d)がCainrtとCainmiの間、およびCainmiとCainadの間にあるときの多数の値にそれぞれ対応して設定された多数のマップ(図示せず)とが設けられている。以上のマップの検索では、エンジン回転数NE(k−d)、カム位相Cain(k−d)および第3推定吸気量Gcyl_hat(k)に基づいて複数の値を選択するとともに、当該複数の選択値の補間演算により、推定バルブリフトLiftin_hat(k)が算出される。
図22のCain(k−d)=Cainrt用のマップでは、推定バルブリフトLiftin_hat(k)は、NE(k−d)=NE2の場合、Gcyl_hat(k)が大きいほど、より大きい値に設定されている。また、NE(k−d)=NE1の場合、推定バルブリフトLiftin_hat(k)は、Gcyl_hat(k)が所定値Gcyl4未満の範囲では、NE(k−d)=NE2の場合よりも大きい値で、かつGcyl_hat(k)が大きいほど、より大きい値に設定されている。これは、エンジン回転数NEが変化すると、共鳴効果および吸気の慣性効果などによる充填効率が変化するとともに、低回転域では、エンジン回転数NEが低いほど、充填効率が高く、吸入空気量Gcylを得るのに必要なバルブリフトLiftinが小さくなるためである。さらに、NE(k−d)=NE1の場合、Gcyl_hat(k)≧Gcyl4の範囲では、Liftin_hat(k)は一定値に設定されている。これは、NE(k−d)=NE1の場合、バルブリフトLiftinをGcyl_hat(k)=Gcyl4のときの値よりも大きくしても、最大値Gcyl4を上回る吸入空気量Gcylを得られないことによる。
さらに、NE(k−d)=NE3の場合、推定バルブリフトLiftin_hat(k)は、Gcyl_hat(k)が所定値Gcyl5未満の範囲では、NE(k−d)=NE2の場合よりも大きい値で、かつGcyl_hat(k)が大きいほど、より大きい値に設定されている。これは、上述したように、エンジン回転数NEの変化に伴って充填効率が変化するとともに、高回転域では、エンジン回転数NEが高いほど、吸入空気量Gcylを得るのに必要なバルブリフトLiftinが大きくなるためである。また、NE(k−d)=NE3の場合、Gcyl_hat(k)≧Gcyl5の範囲では、Liftin_hat(k)は一定値に設定されている。これは、NE(k−d)=NE3の場合、バルブリフトLiftinをGcyl_hat(k)=Gcyl5のときの値よりも大きくしても、最大値Gcyl5を上回る吸入空気量Gcylを得られないことによる。
また、図23のCain(k−d)=Cainmi用のマップでは、推定バルブリフトLiftin_hat(k)は、NE(k−d)=NE1の場合、Gcyl_hat(k)が前述した所定値Gcyl4よりも大きい所定値Gcyl6未満の範囲では、Gcyl_hat(k)が大きいほど、より大きい値に設定されている。これは、Cain(k−d)=Cainrtの場合、低回転域では、吸気弁4の遅閉じに起因して吹き戻しが発生するのに対して、Cain(k−d)=Cainmiの場合、低回転域でもそのような吹き戻しが発生しないことで、吸入空気量Gcylの最大値がより大きくなることによる。
さらに、このマップでは、推定バルブリフトLiftin_hat(k)は、NE(k−d)=NE3の場合、Gcyl_hat(k)が前述した所定値Gcyl5よりも小さい所定値Gcyl7未満の範囲では、Gcyl_hat(k)が大きいほど、より大きい値に設定されている。これは、Cain(k−d)=Cainmiの場合、高回転域では、吸気の慣性効果がCain(k−d)=Cainrtの場合よりも小さくなることで、吸入空気量Gcylの最大値がより小さくなることによる。
一方、図24のCain(k−d)=Cainad用のマップでは、推定バルブリフトLiftin_hat(k)は、NE(k−d)=NE1〜3のいずれの場合においても、Gcyl_hat(k)が所定値Gcyl8未満の範囲では、Gcyl_hat(k)が大きいほど、より大きい値に設定されているとともに、全体として、低リフト域の値に設定されている。これは、Cain(k−d)=Cainadの場合、バルブオーバーラップの増大に伴って、内部EGR量が増大することにより、吸入空気量Gcylが低下するので、燃焼の安定性を確保するために、バルブリフトLiftinとして低リフト域の値を使用することによる。また、このマップでは、推定バルブリフトLiftin_hat(k)は、エンジン回転数NEが高いほど、より小さい値に設定されている。これは、エンジン回転数NEが高いほど、排ガスの掃気効果が向上し、内部EGR量が低下することで、同じ吸入空気量Gcylを得るためのバルブリフトLiftinがより小さくなることによる。
一方、遅延要素144では、バルブリフトLiftinのむだ時間dを反映させた値Liftin(k−d)が算出される。そして、減算要素145では、下式(21)により、推定誤差Eliftが算出される。
次いで、重み付き統計処理フィルタ146では、下式(22),(23)に示す重み付き逐次型統計処理アルゴリズムより、推定誤差の統計処理値Elift_LSが算出される。
上記式(22)において、Pは重みゲインであり、E_LSは式(23)のように定義される偏差である。この重みゲインPは、バルブリフトLiftin(k−d)に応じて、図25に示すマップを検索することにより算出される。このマップでは、重みゲインPは、バルブリフトLiftin(k−d)が大きいほど、より小さい値に設定されている。これは、以下の理由による。
すなわち、前述した図22〜24に示すように、第3推定吸気量Gcyl_hatが大きい領域では、これに対する推定バルブリフトLiftin_hatの傾きが大きいことで、吸入空気量に対する推定バルブリフトLiftin_hatの感度が高くなるため、第3推定吸気量Gcyl_hatの推定誤差が大きいと、推定バルブリフトLiftin_hatの推定誤差Eliftも大きくなってしまう。その結果、推定バルブリフトLiftin_hatの推定誤差Eliftの増大に伴って、FB補正値Dliftin_fbの算出精度も低下してしまう。したがって、FB補正値Dliftin_fbの算出精度、すなわち補正後バルブリフトLiftin_modの算出精度を高めるために、重みゲインPは、上述したように、バルブリフトLiftin(k−d)が大きいほど、より小さい値に設定されている。
次に、応答指定型コントローラ147では、下式(24),(25)に示す簡易型の応答指定型制御アルゴリズムにより、FB補正値Dliftin_fbが算出される。
この式(24)において、Krchは所定の到達則ゲインを、Kadpは所定の適応則ゲインをそれぞれ表している。また、式(25)のσは、式(25)のように定義される切換関数であり、同式(25)のSは、−1<S<0の関係が成立するように設定される切換関数設定パラメータである。
このように、応答指定型コントローラ147において、FB補正値Dliftin_fbは、簡易型の応答指定型制御アルゴリズムにより算出されるので、推定誤差の統計処理値Elift_LSを値0に収束させるように算出される。すなわち、FB補正値Dliftin_fbは、推定誤差の統計処理値Elift_LSが最小となるように算出され、結果的に、推定誤差Eliftが最小となるように算出される。
なお、FB補正値Dliftin_fbの算出において、以上のように、エンジン回転数NE、カム位相CainおよびバルブリフトLiftinに対してむだ時間dを反映させた値NE(k−d),Cain(k−d),Liftin(k−d)を用いる理由は、前述した第3推定吸気量Gcyl_hatの算出において述べた理由と同じである。
次に、図26を参照しながら、点火時期コントローラ180について説明する。なお、本実施形態では、点火時期コントローラ180が、点火時期決定手段に相当する。この点火時期コントローラ180は、以下に述べるように、点火時期Iglogを算出するものであり、最大推定吸気量算出部181、正規化吸気量算出部182、基本点火時期算出部183、点火補正値算出部184および加算要素185を備えている。
最大推定吸気量算出部181では、以下に述べるように、エンジン回転数NEおよびカム位相Cainに応じて、最大推定吸気量Gcyl_maxが算出される。具体的には、まず、エンジン回転数NEに応じて、図27に示すマップを検索することにより、最大推定吸気量の基本値Gcyl_max_baseを算出する。
このマップでは、基本値Gcyl_max_baseは、低中回転域では、エンジン回転数NEが高いほど、より大きな値に設定され、高回転域では、エンジン回転数NEが高いほど、より小さな値に設定されているとともに、中回転域の所定値のときに、その最大値を示すように設定されている。これは、運転性の観点から、中回転域の所定値のときに充填効率が最も高くなるように吸気系が構成されているためである。
また、エンジン回転数NEおよびカム位相Cainに応じて、図28に示すマップを検索することにより、補正係数K_gcyl_maxを算出する。このマップでは、補正係数K_gcyl_maxは、NE=NE1またはNE2の場合、カム位相Cainが最遅角値Cainrtに近い領域では、最遅角値Cainrtに近いほど、より小さい値に設定され、それ以外の領域では、カム位相Cainが最進角値Cainad側の値であるほど、より小さな値に設定されている。さらに、NE=NE3の場合、補正係数K_gcyl_maxは、カム位相Cainが最遅角値Cainrtに近い領域では、一定値(値1)に設定され、それ以外の領域では、カム位相Cainが最進角値Cainad側の値であるほど、より小さな値に設定されている。このように補正係数K_gcyl_maxが設定されている理由は、前述した補正係数K_gcyl_vtの算出に用いる図14のマップの説明で述べたのと同じ理由による。
そして、以上のように算出した最大推定吸気量の基本値Gcyl_max_baseおよび補正係数K_gcyl_maxを用い、下式(26)により、最大推定吸気量Gcyl_maxが算出される。
次いで、正規化吸気量算出部182では、正規化吸気量Kgcylが、下式(27)により算出される。この場合、吸入空気量Gcylは、前述した吸気量算出部110で算出された値を用いる。
さらに、基本点火時期算出部183では、以下に述べるように、正規化吸気量Kgcyl、エンジン回転数NEおよびカム位相Cainに応じて、基本点火時期マップを検索することにより、基本点火時期Iglog_mapが算出される。この場合、基本点火時期マップとしては、図29に示すCain=Cainrt用のマップと、図30に示すCain=Cainad用のマップと、カム位相Cainが最遅角値Cainrtと最進角値Cainadとの間にあるときの複数段階のカム位相Cainの値にそれぞれ対応して設定された複数のマップ(図示せず)とで構成されている。
以上の基本点火時期マップの検索では、正規化吸気量Kgcyl、エンジン回転数NEおよびカム位相Cainに基づいて複数の値を選択するとともに、当該複数の選択値の補間演算により、基本点火時期Iglog_mapが算出される。
また、点火補正値算出部184では、大気温TA、エンジン水温TWおよび目標空燃比KCMDなどに応じて、図示しないマップを検索することにより、各種の補正値が算出され、これらの各種の補正値に基づき、点火補正値Diglogが算出される。
さらに、加算要素185では、点火時期Iglogが、下式(28)により算出される。
そして、点火プラグ11が、この点火時期Iglogに応じた放電タイミングで放電するように制御される。
次に、図31を参照しながら、前述した制御周期ΔTnでECU2により実行される制御処理について説明する。なお、以下の説明において算出される各種の値は、ECU2のRAM内に記憶されるものとする。この処理では、まず、ステップ1(図では「S1」と略す。以下同じ)で、空燃比制御処理が実行される。この空燃比制御処理は、燃料噴射量TOUTを算出するものであり、その詳細については後述する。
次いで、ステップ2で、点火時期制御処理を実行する。この点火時期制御処理は、点火時期Iglogを算出するものであり、その詳細については後述する。
次に、ステップ3で、空燃比補正係数KAFDおよび目標空燃比KCMDを用い、前述した式(6)により、空燃比指標値KAFを算出する。その後、ステップ4で、第1推定吸気量Gcyl_vtおよびエンジン回転数NEに応じて、前述した図19のマップを検索することにより、むだ時間dを算出する。
次いで、ステップ5で、基本値Gcyl_hat_bsを、前述した演算手法により算出する。すなわち、マップ値Gcyl_hat_baseを、エンジン回転数NE(n−d)およびバルブリフトLiftin(n−d)に応じて、図20に示すマップを検索することにより算出し、さらに、補正係数K_gcyl_hatを、エンジン回転数NE(n−d)およびカム位相Cain(n−d)に応じて、図21に示すマップを検索することにより算出する。そして、これらの値Gcyl_hat_bs,K_gcyl_hatを用い、前述した式(18)により、基本値Gcyl_hat_bsを算出する。
次に、ステップ6に進み、前述した式(19)により、誤差推定係数KEGCYLを算出し、ステップ6に続くステップ7で、前述した式(20)により、第3推定吸気量Gcyl_hatを算出する。その後、本処理を終了する。
以下、図32を参照しながら、前述したステップ1の空燃比制御処理について説明する。本処理は、燃料噴射量TOUTを燃料噴射弁10毎に算出するものであり、前述した空燃比コントローラ100での算出処理に相当する。
この処理では、まず、ステップ20において、基本燃料噴射量Tcyl_bsを算出する。この基本燃料噴射量Tcyl_bsの算出処理は、具体的には、図33に示すように実行される。すなわち、まず、ステップ30で、前述した式(10)により、第2推定吸気量Gcyl_afmを算出する。
次に、ステップ31で、RAM内に記憶されている補正後バルブリフトLiftin_modの値をサンプリングする。なお、この補正後バルブリフトLiftin_modは、後述するように、本処理の制御周期ΔTnとは異なる制御周期ΔTで算出される。
次いで、ステップ32〜34で、前述した手法により、第1推定吸気量Gcyl_vtを算出する。すなわち、エンジン回転数NEおよび補正後バルブリフトLiftin_modに応じて、前述した図13のマップを検索することにより、マップ値Gcyl_vt_baseを算出し(ステップ32)、エンジン回転数NEおよびカム位相Cainに応じて、前述した図14のマップを検索することにより、補正係数K_gcyl_vtを算出する(ステップ33)。そして、前述した式(9)により、第1推定吸気量Gcyl_vtを算出する(ステップ34)。
次に、ステップ35に進み、前述した可変機構故障フラグF_VDNGが「1」であるか否かを判別する。この判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ36に進み、吸入空気量Gcylを第1推定吸気量Gcyl_vtに設定する。
一方、ステップ35の判別結果がYESで、2つの可変機構の少なくとも一方が故障しているときには、ステップ37に進み、吸入空気量Gcylを第2推定吸気量Gcyl_afmに設定する。
ステップ36または37に続くステップ38では、基本燃料噴射量Tcyl_bsを、換算係数と吸入空気量の積Kgt・Gcylに設定した後、本処理を終了する。
図32に戻り、ステップ20で、以上のように基本燃料噴射量Tcyl_bsを算出した後、ステップ21に進み、総補正係数KTOTALを算出する。具体的には、前述したように、各種の運転パラメータ(例えば大気温TAや、大気圧PA、エンジン水温TW、アクセル開度APなど)に応じて、各種のマップを検索することで各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、総補正係数KTOTALが算出される。
次いで、ステップ22に進み、前述したように、アクセル開度APおよび吸入空気量Gcylに応じて、図11に示すマップを検索することにより、目標空燃比KCMDを算出する。
次に、ステップ23に進み、空燃比補正係数KAFDを算出する。この空燃比補正係数KAFDの算出は、具体的には、図34に示すように実行される。
まず、ステップ40において、実行条件フラグF_AFFBOKが「1」であるか否かを判別する。この実行条件フラグF_AFFBOKは、空燃比フィードバック制御の実行条件が成立しているか否かを表すものであり、図示しない処理において、以下の(c1)〜(c4)の実行条件がいずれも成立しているときには、「1」に設定され、(c1)〜(c4)の実行条件のうちの少なくとも1つが不成立のときには、「0」に設定される。
(c1)LAFセンサが活性化していること。
(c2)エンジン3がリーンバーン運転中でなくかつフューエルカット運転中でないこと。
(c3)エンジン回転数NEおよびアクセル開度APがいずれも、所定の範囲囲内の値であること。
(c4)点火時期の遅角制御中でないこと。
ステップ40の判別結果がYESで、空燃比フィードバック制御の実行条件が成立しているときには、ステップ41に進み、空燃比補正係数KAFDを、前述した式(1)〜(5)の簡易型の応答指定型制御アルゴリズムにより算出する。
次に、ステップ42に進み、空燃比補正係数KAFDを前述した式(1)〜(5)で算出したこと、すなわち空燃比フィードバック制御を実行中であることを表すために、フィードバック制御中フラグF_AFFBを「1」に設定した後、本処理を終了する。
一方、ステップ40の判別結果がNOで、空燃比フィードバック制御の実行条件が不成立であるときには、ステップ43に進み、空燃比補正係数KAFDを目標空燃比KCMDに設定する。次いで、ステップ44で、空燃比フィードバック制御を実行していないことを表すために、フィードバック制御中フラグF_AFFBを「0」に設定した後、本処理を終了する。
図32に戻り、ステップ23で以上のように空燃比補正係数KAFDを算出した後、ステップ24に進み、前述した式(8)により、要求燃料噴射量Tcylを算出する。次に、ステップ25で、前述したように、要求燃料噴射量Tcylに、所定の燃料付着補正処理を施すことにより、燃料噴射量TOUTを算出した後、本処理を終了する。そして、ECU2により、以上のように算出された燃料噴射量TOUTに基づいて、燃料噴射弁10の燃料噴射タイミングおよび開弁時間が決定され、燃料噴射弁10が制御される。その結果、混合気の空燃比すなわち検出空燃比KACTが、目標空燃比KCMDに収束するようにフィードバック制御される。
以下、図35を参照しながら、前述したステップ2の点火時期制御処理について説明する。本処理は、以下に述べるように点火時期Iglogを算出するものであり、前述した点火時期コントローラ180での算出処理に相当する。
この処理では、まず、ステップ50で、前述した可変機構故障フラグF_VDNGが「1」であるか否かを判別する。この判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ51に進み、エンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
このエンジン始動フラグF_ENGSTARTは、図示しない判定処理において、エンジン回転数NEおよびIG・SW29のON/OFF信号に応じて、エンジン始動制御中すなわちクランキング中であるか否かを判定することにより設定されるものであり、具体的には、エンジン始動制御中であるときには「1」に、それ以外のときには「0」にそれぞれ設定される。
ステップ51の判別結果がYESで、エンジン始動制御中であるときには、ステップ52に進み、点火時期Iglogを、所定の始動時用値Ig_crk(例えばBTDC10゜)に設定した後、本処理を終了する。
一方、ステップ51の判別結果がNOで、エンジン始動制御中でないときには、ステップ53に進み、アクセル開度APが所定値APREFより小さいか否かを判別する。この所定値APREFは、アクセルペダルが踏まれていないことを判別するためのものであり、アクセルペダルが踏まれていないことを判別可能な値(例えば1゜)に設定されている。
この判別結果がYESで、アクセルペダルが踏まれていないときには、ステップ54に進み、始動後タイマの計時値Tastが所定値Tastlmtより小さいか否かを判別する。この始動後タイマは、エンジン始動制御終了後の経過時間を計時するものであり、アップカウント式のタイマで構成されている。
この判別結果がYESで、Tast<Tastlmtのときには、触媒暖機制御を実行すべきであるとして、ステップ55に進み、触媒暖機用値Ig_astを算出する。この触媒暖機用値Ig_astは、具体的には、下式(29)〜(31)の応答指定型制御アルゴリズムにより算出される。
上記式(29)において、Ig_ast_baseは、所定の触媒暖機用の基準点火時期(例えばBTDC5゜)を表し、Krch_ig,Kadp_igは、所定の到達則ゲインおよび適応則ゲインをそれぞれ表している。また、σ_igは、式(30)のように定義される切換関数である。同式(30)において、pole_igは、−1<pole_ig<0の関係が成立するように設定される切換関数設定パラメータであり、Enastは、式(31)により算出される追従誤差である。式(31)において、NE_astは、所定の触媒暖機用の目標回転数(例えば1800rpm)である。以上の制御アルゴリズムにより、触媒暖機用値Ig_astは、エンジン回転数NEを上記触媒暖機用の目標回転数NE_astに収束させる値として算出される。
次いで、ステップ56に進み、点火時期Iglogを上記触媒暖機用値Ig_astに設定した後、本処理を終了する。
一方、ステップ53または54の判別結果がNOのとき、すなわちTast≧Tastlmtであるとき、またはアクセルペダルが踏まれているときには、ステップ57に進み、通常点火時期制御処理を実行する。
この通常点火時期制御処理は、具体的には、図36に示すように実行される。まず、ステップ70で、最大推定吸気量Gcyl_maxを、前述した手法により算出する。すなわち、エンジン回転数NEに応じて、図27に示すマップを検索することにより、最大推定吸気量の基本値Gcyl_max_baseを算出し、エンジン回転数NEおよびカム位相Cainに応じて、図28に示すマップを検索することにより、補正係数K_gcyl_maxを算出する。そして、以上のように算出した2つの値Gcyl_max_base,K_gcyl_maxに基づき、前述した式(26)により、最大推定吸気量Gcyl_maxを算出する。
次いで、ステップ71で、正規化吸気量Kgcylを、前述した式(27)により算出する。この後、ステップ72で、基本点火時期Iglog_mapを前述した手法により算出する。すなわち、正規化吸気量Kgcyl、エンジン回転数NEおよびカム位相Cainに応じて、図29,30などの基本点火時期マップを検索し、複数の値を選択するとともに、当該複数の選択値の補間演算により、基本点火時期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_ig#,Kadp_ig#は、所定の到達則ゲインおよび適応則ゲインをそれぞれ表している。また、σ_ig#は、式(33)のように定義される切換関数である。同式(33)において、pole_ig#は、−1<pole_ig#<0の関係が成立するように設定される切換関数設定パラメータであり、Enfsは、式(34)により算出される追従誤差である。式(34)において、NE_fsは、所定の故障時目標回転数(例えば2000rpm)である。以上の制御アルゴリズムにより、故障時用値Ig_fsは、エンジン回転数NEを上記故障時目標回転数NE_fsに収束させる値として算出される。
次いで、ステップ59に進み、点火時期Iglogを上記故障時用値Ig_fsに設定した後、本処理を終了する。そして、ECU2により、点火プラグ11が、以上のように算出された点火時期Iglogに応じた放電タイミングで放電するように制御される。
以下、図37を参照しながら、ECU2において、タイマ設定により前述した制御周期ΔTで実行される制御処理について説明する。この処理では、まず、ステップ80で、RAMに記憶されている第1推定吸気量Gcyl_vtおよび第3推定吸気量Gcyl_hatの値をサンプリングする。すなわち、Gcyl_vt(k)およびGcyl_hat(k)をサンプリングする。
次いで、ステップ81で、推定機構温度Tlift_hatを算出する。この推定機構温度Tlift_hatの算出は、具体的には、図38に示すように実行されるとともに、エンジン停止時も実行される。
すなわち、まず、ステップ90で、エンジン停止フラグF_ENGSTPが「1」であるか否かを判別する。このエンジン停止フラグF_ENGSTPは、図示しない判定処理において、IG・SW29のON/OFF状態およびエンジン回転数NEに基づき、エンジン3が停止中であるときには「1」に設定され、運転中は「0」に設定される。
ステップ90の判別結果がYESで、エンジン停止中であるときには、ステップ91に進み、推定終了フラグF_ENDが「1」であるか否かを判別する。
この判別結果がNOのときには、推定機構温度Tlift_hatを算出すべきであるとして、ステップ92に進み、停止タイマの計時値TMOFFを「1」インクリメントする。この停止タイマは、エンジン3の停止時間を計時するものである。
次いで、ステップ93で、停止タイマの計時値TMOFFが所定値TMREF以上であるか否かを判別する。この所定値TMREFは、エンジン3の停止時間が長く、可変バルブリフト機構50が十分に冷えることで、その温度がほとんど変化しなくなると推定されるような値(例えば6時間に相当する値)に設定されている。
このステップ93の判別結果がNOのときには、ステップ94に進み、前述した式(14)により、推定機構温度Tlift_hatを算出する。その後、本処理を終了する。
一方、ステップ93の判別結果がYESのときには、推定機構温度Tlift_hatの算出を停止すべきであるとして、ステップ95で、推定終了フラグF_ENDを「1」に設定した後、本処理を終了する。これにより、次回以降のループにおいて、ステップ91の判別結果がYESとなり、その場合には、推定機構温度Tlift_hatを算出することなく、そのまま本処理を終了する。
一方、前述したステップ90の判別結果がNOで、エンジン運転中のときには、ステップ96に進み、推定終了フラグF_ENDが「1」であるか否かを判別する。この判別結果がYESで、エンジン3の停止時間が長いときには、ステップ97に進み、大気温TA(k)を、推定機構温度の前回値Tlift_hat(k−1)として設定する。
次いで、ステップ98で、推定終了フラグF_ENDを「0」に設定した後、ステップ99で、停止タイマの計時値TMOFFを「0」に設定する。次に、前述したように、ステップ94を実行した後、本処理を終了する。
一方、前述したステップ96の判別結果がNOのときには、前述したように、ステップ99,94を実行した後、本処理を終了する。
図37に戻り、ステップ81で以上のように推定機構温度Tlift_hatを算出した後、ステップ82に進み、推定機構温度Tlift_hatに応じて、前述した図16のマップを検索することにより、FF補正値Dliftin_testを算出する。
次いで、ステップ83で、フィードバック制御中フラグF_AFFBが「1」であるか否かを判別する。この判別結果がYESで、空燃比フィードバック制御中であるときには、ステップ84に進み、FB補正値Dliftin_fbを算出する。このFB補正値Dliftin_fbの算出は、具体的には、図39に示すように実行される。
まず、ステップ110で、RAMに記憶されている第3推定吸気量Gcyl_hatの値をサンプリングする。すなわち、Gcyl_hat(k)をサンプリングする。
次いで、ステップ111に進み、RAMに記憶されているむだ時間dの値をサンプリングするとともに、このサンプリング値を、エンジン回転数NEに基づき、制御周期ΔTの実行回数に相当する値に換算する。
その後、ステップ112で、ステップ111で算出したむだ時間dに基づき、RAMに記憶されている、バルブリフトLiftin(k−d)、カム位相Cain(k−d)およびエンジン回転数NE(k−d)の値をサンプリングする。
次いで、ステップ113で、第3推定吸気量Gcyl_hat(k)、エンジン回転数NE(k−d)およびカム位相Cain(k−d)に応じて、前述した図22〜24などのマップを検索することにより、推定バルブリフトLiftin_hat(k)を算出する。次に、ステップ114で、前述した式(21)により、推定誤差Eliftを算出する。
その後、ステップ115で、前述した式(23)により、偏差E_LSを算出し、次いで、ステップ116で、重みゲインPを、バルブリフトLiftin(k−d)に応じて、前述した図25のマップを検索することにより算出する。
次に、ステップ117で、前述した式(22)により、推定誤差の統計処理値Elift_LSを算出する。その後、ステップ118で、前述した式(25)により、切換関数σを算出する。
次いで、ステップ119で、前述した式(24)により、FB補正値Dliftin_fbを算出した後、本処理を終了する。
図37に戻り、ステップ84で以上のようにFB補正値Dliftin_fbを算出した後、後述するステップ86に進む。
一方、ステップ83の判別結果がNOで、空燃比フィードバック制御中でないときには、ステップ85に進み、FB補正値Dliftin_fbを値0に設定する。
ステップ84または85に続くステップ86では、リフト補正値Dliftin_compを、FF補正値とFB補正値との偏差(Dliftin_test−Dliftin_fb)に設定する。
次いで、ステップ87に進み、補正後バルブリフトLiftin_modを、バルブリフトとリフト補正値との和(Liftin+Dliftin_comp)に設定する。
その後、ステップ88で、以下に述べるように、可変機構制御処理を実行した後、本処理を終了する。
以下、図40を参照しながら、上記ステップ88の可変機構制御処理について説明する。本処理は、2つの可変機構をそれぞれ制御するための2つの制御入力U_Liftin,U_Cainを算出するものである。
この処理では、まず、ステップ130で、前述した可変機構故障フラグF_VDNGが「1」であるか否かを判別する。この判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ131に進み、前述したエンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
この判別結果がYESで、エンジン始動制御中であるときには、ステップ132に進み、目標バルブリフトLiftin_cmdを、エンジン水温TWに応じて、図41に示すマップを検索することにより算出する。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン水温TWが所定値TWREF1より高い範囲では、エンジン水温TWが低いほど、より大きな値に設定されているとともに、TW≦TWREF1の範囲では、所定値Liftinrefに設定されている。これは、エンジン水温TWが低い場合、可変バルブリフト機構50のフリクションが増大するので、それを補償するためである。
次いで、ステップ133で、目標カム位相Cain_cmdを、エンジン水温TWに応じて、図42に示すマップを検索することにより算出する。
このマップでは、目標カム位相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に進み、始動後タイマの計時値Tastが所定値Tastlmtより小さいか否かを判別する。
この判別結果がYESで、Tast<Tastlmtのときには、触媒暖機制御を実行すべきであるとして、ステップ138に進み、目標バルブリフトLiftin_cmdを、始動後タイマの計時値Tastおよびエンジン水温TWに応じて、図43に示すマップを検索することにより算出する。同図において、TW1〜TW3は、TW1<TW2<TW3の関係が成立するエンジン水温TWの所定値を示しており、この点は以下の説明においても同様である。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン水温TWが低いほど、より大きな値に設定されている。これは、エンジン水温TWが低いほど、触媒の活性化に要する時間が長くなるので、排ガスボリュームを大きくすることで、触媒の活性化に要する時間を短縮するためである。これに加えて、このマップでは、目標バルブリフトLiftin_cmdは、始動後タイマの計時値Tastが小さい間は、計時値Tastが大きいほど、より大きな値に設定され、計時値Tastがある程度よりも大きい領域では、計時値Tastが大きいほど、より小さな値に設定されている。これは、触媒暖機制御の実行時間が経過するのに伴い、エンジン3の暖機が進むことで、フリクションが低下した場合において、吸入空気量を低減しないと、エンジン回転数NEを目標値に維持するために点火時期が過剰にリタード制御された状態となり、燃焼状態が不安定になってしまうので、それを回避するためである。
次いで、ステップ139で、目標カム位相Cain_cmdを、始動後タイマの計時値Tastおよびエンジン水温TWに応じて、図44に示すマップを検索することにより算出する。
このマップでは、目標カム位相Cain_cmdは、エンジン水温TWが低いほど、より進角側の値に設定されている。これは、エンジン水温TWが低いほど、上述したように触媒の活性化に要する時間が長くなるので、ポンピングロスを減少させ、吸入空気量を増大させることで、触媒の活性化に要する時間を短縮するためである。これに加えて、このマップでは、目標カム位相Cain_cmdは、始動後タイマの計時値Tastが小さい間は、計時値Tastが大きいほど、より遅角側の値に設定され、計時値Tastがある程度よりも大きい領域では、計時値Tastが大きいほど、より進角側の値に設定されている。これは、図43の説明で述べたのと同じ理由による。
次いで、前述したように、ステップ134,135を実行した後、本処理を終了する。
一方、ステップ136または137の判別結果がNOのとき、すなわちTast≧Tastlmtであるとき、またはアクセルペダルが踏まれているときには、ステップ140に進み、目標バルブリフトLiftin_cmdを、エンジン回転数NEおよびアクセル開度APに応じて、図45に示すマップを検索することにより算出する。同図において、AP1〜AP3は、AP1<AP2<AP3の関係が成立するアクセル開度APの所定値を示しており、この点は以下の説明においても同様である。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、より大きな値に設定されている。これは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、エンジン3に対する要求出力が大きいことで、より大きな吸入空気量が要求されることによる。
次いで、ステップ141で、目標カム位相Cain_cmdを、エンジン回転数NEおよびアクセル開度APに応じて、図46に示すマップを検索することにより算出する。このマップでは、目標カム位相Cain_cmdは、アクセル開度APが小さくかつ中回転域にあるときには、それ以外のときよりも進角側の値に設定されている。これは、そのような運転状態では、ポンピングロスを減少させる必要があるためである。
ステップ141に続いて、前述したように、ステップ134,135を実行した後、本処理を終了する。
一方、ステップ130の判別結果がYESで、2つの可変機構の少なくとも一方が故障しているときには、ステップ142に進み、リフト制御入力U_Liftinを所定の故障時用値U_Liftin_fsに、位相制御入力U_Cainを所定の故障時用値U_Cain_fsにそれぞれ設定した後、本処理を終了する。これにより、前述したように、バルブリフトLiftinが最小値Liftinminに、カム位相Cainが所定のロック値にそれぞれ保持され、それにより、停車中はアイドル運転やエンジン始動を適切に実行できると同時に、走行中は低速走行状態を維持できる。
本処理では、以上のように、リフト制御入力U_Liftinおよび位相制御入力U_Cainが算出される。そして、これらの制御入力U_Liftin,U_Cainが可変バルブリフト機構50および可変カム位相機構70にそれぞれ入力されることにより、吸入空気量が制御される。
次に、以上のように構成された第1実施形態の制御装置1による制御(空燃比制御および可変機構制御など)のシミュレーション結果(以下「制御結果」という)について説明する。図47,48は、目標空燃比KCMDを理論空燃比に相当する値1.0に設定した場合の第1実施形態の制御装置1による制御結果例を示しており、特に、図47は、前述した式(14)においてモデル化誤差がないときの制御結果例を示しており、図48はモデル化誤差があるときの制御結果例を示している。一方、図49は、比較のために、バルブリフトLiftinを補正することなく、そのまま用いた場合の制御結果例を示している。
これらの図47〜49において、Liftin_actは、バルブリフトLiftin実際の値(以下「実バルブリフト」という)を表しており、Gcyl_actは、吸入空気量Gcylの実際の値(以下「実吸入空気量」という)を表している。また、Dliftinは、実バルブリフトとバルブリフトとの偏差(Liftin_act−Liftin)を表しており、Tliftは、可変バルブリフト機構50の実際の温度(以下「実機構温度」という)を表している。なお、図47,48では、偏差Dliftinとリフト補正値Dliftin_compとの関係を判りやすくするために、リフト補正値としてその負値−Dliftin_compを示す。
まず、図49を参照すると、この制御結果では、実バルブリフトLiftin_actとバルブリフトLiftinとの間に、大きな偏差Dliftinが発生することで、実吸入空気量Gcyl_actと吸入空気量Gcylとの間にも大きな偏差が周期的に発生し、その結果、目標空燃比KCMDと検出空燃比KACT(値1.0)との間にも、大きな偏差が周期的に発生していることが判る。また、制御中に実機構温度Tliftが上昇するのに伴って、偏差Dliftinが若干、減少し、それにより、目標空燃比KCMDと検出空燃比KACTとの間の偏差も若干、減少していることが判る。
これに対して、図47に示すように、モデル化誤差がない場合には、推定機構温度Tlift_hatが実機構温度Tliftに等しい値になることによって、FF補正値Dliftin_testが偏差Dliftinに等しい値となる。それにより、補正後バルブリフトLiftin_modは、実質的に、バルブリフトLiftinをFF補正値Dliftin_testのみで補正した値となり、FB補正値Dliftin_fbがほぼ値0に近い状態となるとともに、実バルブリフトLiftin_actと補正後バルブリフトLiftin_modとの間の偏差がほぼ値0となる。その結果、実吸入空気量Gcyl_actと吸入空気量Gcylとの間の偏差もほぼ値0になることで、目標空燃比KCMDと検出空燃比KACTとの間にも、偏差がほとんど発生せず、空燃比制御において高い制御精度が確保されていることが判る。
また、図48に示すように、モデル化誤差がある場合には、前述した図48のモデル化誤差がない場合と異なり、推定機構温度Tlift_hatと実機構温度Tliftとの間に若干の偏差が生じることで、FF補正値Dliftin_testが偏差Dliftinとの間に若干の偏差を生じるとともに、FB補正値Dliftin_fbがその偏差を補正するような値となる。すなわち、補正後バルブリフトLiftin_modは、バルブリフトLiftinを、FF補正値Dliftin_testおよびFB補正値Dliftin_fbの双方で補正した値となり、それにより、実バルブリフトLiftin_actと補正後バルブリフトLiftin_modとの間の偏差がほぼ値0となる。その結果、実吸入空気量Gcyl_actと吸入空気量Gcylとの間の偏差もほぼ値0になることで、目標空燃比KCMDと検出空燃比KACTとの間にも、偏差がほとんど発生せず、空燃比制御において高い制御精度を確保できていることが判る。すなわち、モデル化誤差があっても、FB補正値Dliftin_fbによりモデル化誤差を補償できることで、モデル化誤差がない場合と同様の制御精度が確保されていることが判る。
以上のように、第1実施形態の制御装置1によれば、空燃比フィードバック制御中でないときには、補正後バルブリフトLiftin_modが、FF補正値Dliftin_testに相当するリフト補正値Dliftin_compでバルブリフトLiftinを補正することにより算出され、この補正後バルブリフトLiftin_modに応じて、燃料噴射量TOUTおよび点火時期Iglogが算出される。また、このFF補正値Dliftin_testは、可変バルブリフト機構50の熱力学的モデルに基づく式(14)によって推定機構温度Tlift_hatを算出し、この推定機構温度Tlift_hatに応じて図16のマップを検索することにより算出される。
したがって、LAFセンサ24が活性化する前などの、空燃比がフィードバック制御されていないことで、空燃比の制御精度が低い状態にあるときでも、可変バルブリフト機構50の熱伸縮に起因するバルブリフトLiftinの実際の値に対するずれを補償しながら、吸入空気量Gcylを算出することができ、吸入空気量Gcylの適正値に対するずれを補正することができるとともに、そのような吸入空気量Gcylを用いながら、燃料噴射量TOUTおよび点火時期Iglogを算出することができる。その結果、可変バルブリフト機構50の温度または熱伸縮度合を直接的に検出するための格別のセンサを用いることなく、可変バルブリフト機構50の熱伸縮に起因する吸入空気量Gcylのずれを補償しながら、空燃比制御および点火時期制御を実行できるので、エンジン3のコンパクト化、設計の自由度の向上、および製造コストの削減をいずれも達成することができる。これに加えて、内燃機関の冷却水温度のみに応じて補正を行う従来の場合と比べて、補正後バルブリフトLiftin_modの算出精度を向上させることができ、それにより、制御精度を向上させることができる。
これに加えて、推定機構温度Tlift_hatは、エンジン3の停止後、可変バルブリフト機構50が十分に冷え、その温度が変化しないと推定される所定時間が経過するまで継続して算出されるので、エンジン停止後、所定時間が経過する前に再始動されたときでも、FF補正値Dliftin_testを適切に算出することができ、それにより、エンジン再始動時においても、補正後バルブリフトLiftin_modの高い算出精度を確保することができる。
また、空燃比フィードバック制御中のときには、補正後バルブリフトLiftin_modが、FF補正値とFB補正値との偏差(Dliftin_test−Dliftin_fb)に相当するリフト補正値Dliftin_compでバルブリフトLiftinを補正することにより算出されるとともに、このFB補正値Dliftin_fbが、空燃比補正係数KAFDおよび検出空燃比KACTに応じて、推定バルブリフトLiftin_hatを算出し、この推定バルブリフトLiftin_hatおよびバルブリフトLiftinに応じて算出される。
ここで、空燃比フィードバック制御中、バルブリフトLiftinが実際の値に対してずれていると、吸入空気量Gcylが適正値からずれてしまうことで、混合気の実際の空燃比が目標空燃比KCMDに対してリーン側またはリッチ側にずれてしまうとともに、空燃比補正係数KAFDおよび検出空燃比KACTは、そのような空燃比のずれを反映する。そのため、空燃比補正係数KAFDおよび検出空燃比KACTに応じて、上述したようにFB補正値Dliftin_fbが算出されるとともに、そのようなFB補正値Dliftin_fbを加味したリフト補正値Dliftin_compでバルブリフトLiftinを補正することにより、補正後バルブリフトLiftin_modが算出されるので、補正後バルブリフトLiftin_modを、バルブリフトLiftinと実際の値との間のずれ、すなわち吸入空気量Gcylのずれが適切に補正された値として算出することができる。
その結果、可変バルブリフト機構50における熱伸縮に加えて、回動角センサ25における検出信号値のドリフト、可変バルブリフト機構50における構成部品の摩耗、汚れの付着および経年変化による遊びなどに起因して、回動角センサ25の検出信号に基づいて算出されたバルブリフトLiftinが実際の値に対してずれている場合でも、そのようなずれの影響を補償しながら、吸入空気量Gcylを適切に算出することができる。したがって、空燃比フィードバック制御中、可変バルブリフト機構50の温度または熱伸縮度合を直接的に検出するための格別のセンサなどを用いることなく、可変バルブリフト機構50の熱伸縮およびそれ以外の事象に起因する吸入空気量Gcylのずれを補償しながら、空燃比制御および点火時期制御を実行できる。それにより、制御精度の向上、エンジン3のコンパクト化、設計の自由度の向上、および製造コストの削減をいずれも達成することができる。特に、FB補正値Dliftin_fbにより、熱伸縮以外の事象に起因する吸入空気量Gcylのずれを補償できるとともに、熱力学的モデルにおいてモデル化誤差が存在する場合でも、それを補償できることで、制御精度を格別に向上させることができる。
これに加えて、空燃比フィードバック制御中も、リフト補正値Dliftin_compがFF補正値Dliftin_testを加味した値として算出されるので、空燃比フィードバック制御開始時などの、FB補正値Dliftin_fbによる吸入空気量Gcylのずれ補償能力が低い状態にあるときでも、FF補正値Dliftin_testにより、熱伸縮に起因する吸入空気量Gcylの適正値に対するずれを補償することができるので、そのような状態においても、高い制御精度を確保することができる。
さらに、FB補正値Dliftin_fbは、推定誤差Eliftを、推定バルブリフトとバルブリフトとの偏差[Liftin_hat(k)−Liftin(k−d)]として算出し、この推定誤差の統計処理値Elift_LSを、式(22)〜(23)の逐次型統計処理アルゴリズムにより算出し、この統計処理値Elift_LSが最小(すなわち値0)となるように、式(24)〜(25)の応答指定型制御アルゴリズムにより算出される。このように、推定誤差の統計処理値Elift_LSを用いることにより、外乱や誤推定などに起因して、推定誤差Eliftが一時的に過大な値になったとしても、その影響を回避しながら、FB補正値Dliftin_fbを算出することができる。これに加えて、応答指定型制御アルゴリズムを用いることにより、統計処理値Elift_LSすなわち推定誤差Eliftが指数関数的に穏やかに減衰するように、FB補正値Dliftin_fbが算出される。以上により、制御精度をより一層、向上させることができる。
また、可変バルブリフト機構50では、バルブリフトLiftinが大きいほど、推定バルブリフトLiftin_hatとバルブリフトLiftinとの乖離度合、すなわち推定誤差Eliftがより大きくなる傾向にある。これに対して、逐次型統計処理アルゴリズムにおいて、推定誤差と統計処理値との偏差Elift−Elift_LSに重み付けするための重みゲインPは、バルブリフトLiftinが大きいほど、より小さい値に設定されるので、推定バルブリフトLiftin_hatとバルブリフトLiftinとの乖離度合が大きくなる可能性が高いほど、推定誤差Eliftの重みがより小さい値に設定されることにより、統計処理値Elift_LSの算出精度すなわちFB補正値Dliftin_fbの算出精度をさらに高めることができる。それにより、制御精度をさらに向上させることができる。
さらに、2つの可変機構がいずれも正常であるときには、補正後バルブリフトLiftin_modに応じて算出した第1推定吸気量Gcyl_vtが、吸入空気量Gcylとして選択され、それ以外のときには、エアフローセンサ22の検出信号に基づいて算出した第2推定吸気量Gcyl_afmが、吸入空気量Gcylとして選択されるので、2つの可変機構における故障の有無にかかわらず、空燃比制御および点火時期制御を適切に実行することができる。
なお、第1実施形態は、内燃機関3の温度状態を表す温度パラメータとして、エンジン水温TWおよび油温Toilを用いた例であるが、温度パラメータはこれに限らず、内燃機関3の温度状態を表すものであればよい。例えば、温度パラメータとして、シリンダブロック温度や排ガス温度などを用いてもよい。
また、第1実施形態は、内燃機関3の負荷を表す負荷パラメータとして、第1推定吸気量Gcyl_vtを用いた例であるが、負荷パラメータはこれに限らず、内燃機関の負荷を表すものであればよい。例えば、負荷パラメータとして、第2推定吸気量Gcyl_afm、内燃機関が発生すると推定される推定トルク、エンジン回転数NEおよび吸気管内圧などを用いてもよい。
さらに、第1実施形態は、検出空燃比KACTおよび空燃比指標値KAFの双方に応じて、推定バルブリフトLiftin_hatを算出した例であるが、推定バルブリフトLiftin_hatを、検出空燃比KACTおよび空燃比指標値KAFの一方に応じて算出するように構成してもよい。その場合、例えば、誤差推定係数KEGCYLを、検出空燃比KACTおよび空燃比指標値KAFの一方に応じて、マップ検索などにより算出するように構成してもよい。
一方、第1実施形態は、推定誤差Eliftを推定バルブリフトとバルブリフトとの偏差[Liftin_hat(k)−Liftin(k−d)]に設定した例であるが、これとは逆に、推定誤差Eliftをバルブリフトと推定バルブリフトとの偏差[Liftin(k−d)−Liftin_hat(k)]に設定してもよい。
また、第1実施形態は、本願発明の制御装置を空燃比制御(すなわち燃料噴射制御)および点火時期制御を実行するものに適用した例であるが、本願発明の制御装置はこれに限らず、内燃機関における吸入空気量制御などの各種の制御処理を実行するものにも適用可能である。例えば、吸入空気量制御の場合、可変式吸気動弁機構40を介して、補正後バルブリフトLiftin_modに基づいて算出された吸入空気量Gcylを、その目標値に収束させるように制御してもよい。
以下、図50を参照しながら、本発明の第2実施形態に係る制御装置1Aについて説明する。この制御装置1Aは、前述した第1実施形態の制御装置1と比べると、前述した空燃比コントローラ100の補正後バルブリフト算出部120に代えて、図50に示す補正後バルブリフト算出部220を備えている点のみが異なっているので、以下、この補正後バルブリフト算出部220について説明する。
この補正後バルブリフト算出部220は、図50に示すように、前述した補正後バルブリフト算出部120において、FB補正値算出部130、空燃比制御判定部134および補正値選択部135などを省略した構成に相当するものであり、FF補正値算出部221および加算要素222を備えている。
このFF補正値算出部221では、前述したFF補正値算出部131と同じ手法により、FF補正値Dliftin_testが算出される。すなわち、前述した式(14)により、推定機構温度Tlift_hatが算出され、これに応じて、図16のマップを検索することにより、FF補正値Dliftin_testが算出される。
次いで、加算要素222において、下式(43)により、補正後バルブリフトLiftin_modが算出される。
以上のように、この補正後バルブリフト算出部220では、補正後バルブリフトLiftin_modは、バルブリフトとFF補正値の和Liftin+Dliftin_testとして算出される。
次に、以上のように構成された第2実施形態の制御装置1Aによる制御結果について説明する。図51,52は、目標空燃比KCMDを理論空燃比に相当する値1.0に設定した場合の第2実施形態の制御装置1Aによる制御結果例を示しており、特に、図51は、前述した式(14)においてモデル化誤差がないときの制御結果例を示しており、図52はモデル化誤差があるときの制御結果例を示している。
まず、図51を参照すると、モデル化誤差がない場合には、前述したように、推定機構温度Tlift_hatが実機構温度Tliftに等しい値になることによって、FF補正値Dliftin_testが偏差Dliftinに等しい値となる。それにより、実バルブリフトLiftin_actと補正後バルブリフトLiftin_modとの間の偏差がほぼ値0となり、その結果、実吸入空気量Gcyl_actと吸入空気量Gcylとの間の偏差もほぼ値0になることで、目標空燃比KCMDと検出空燃比KACTとの間にも、偏差がほとんど発生せず、空燃比制御において高い制御精度が確保されていることが判る。
一方、図52に示すように、モデル化誤差がある場合には、上記図51のモデル化誤差がない場合と異なり、推定機構温度Tlift_hatと実機構温度Tliftとの間に偏差が生じることで、FF補正値Dliftin_testと偏差Dliftinとの間にも偏差が生じ、それにより、実バルブリフトLiftin_actと補正後バルブリフトLiftin_modとの間にも偏差が生じる。
その結果、実吸入空気量Gcyl_actと吸入空気量Gcylとの間にもスパイク状の偏差が生じ、目標空燃比KCMDと検出空燃比KACTとの間にもスパイク状の偏差が若干、生じることで、空燃比制御の制御精度が、モデル化誤差がない場合よりも若干、低下することが判る。すなわち、モデル化誤差がある場合には、前述した第1実施形態の制御装置1のように、FF補正値Dliftin_testとFB補正値Dliftin_fbの双方を用いる方がより高い制御精度を確保できることが判る。
また、前述した図49に示すバルブリフトLiftinを補正することなく、そのまま用いる場合と比べると、本実施形態のようにFF補正値Dliftin_testを用いることにより、空燃比制御の制御精度が向上することが判る。
以上のように、第2実施形態の制御装置1Aによれば、補正後バルブリフトLiftin_modが、FF補正値Dliftin_testでバルブリフトLiftinを補正することにより算出されるので、前述したように、可変バルブリフト機構50の熱伸縮に起因するバルブリフトLiftinの実際の値に対するずれを補償しながら、空燃比制御および点火時期制御を実行することができる。すなわち、可変バルブリフト機構50の温度または熱伸縮度合を直接的に検出するための格別のセンサを用いることなく、可変バルブリフト機構50の熱伸縮に起因する吸入空気量Gcylのずれを補償しながら、空燃比制御および点火時期制御を実行できるので、エンジン3のコンパクト化、設計の自由度の向上、および製造コストの削減をいずれも達成することができる。これに加えて、内燃機関の冷却水温度のみに応じて補正を行う従来の場合と比べて、補正後バルブリフトLiftin_modの算出精度を向上させることができ、それにより、制御精度を向上させることができる。
以下、図53を参照しながら、本発明の第3実施形態に係る制御装置1Bについて説明する。この制御装置1Bは、前述した第1実施形態の制御装置1と比べると、前述した空燃比コントローラ100の補正後バルブリフト算出部120に代えて、図53に示す補正後バルブリフト算出部320を備えている点のみが異なっているので、以下、この補正後バルブリフト算出部320を中心として説明する。
この補正後バルブリフト算出部320は、図53に示すように、前述した第1実施形態の補正後バルブリフト算出部120において、FF補正値算出部131、空燃比制御判定部134および補正値選択部135などを省略した構成に相当するものであり、FB補正値算出部321および減算要素322を備えている。
このFB補正値算出部321では、前述したFB補正値算出部130と同じ手法により、FB補正値Dliftin_fbが算出される。すなわち、前述したように、エンジン回転数NE、カム位相Cain、バルブリフトLiftin、検出空燃比KACTおよび空燃比指標値KAFに応じて、第3推定吸気量Gcyl_hatを算出し、この第3推定吸気量Gcyl_hat、エンジン回転数NEおよびカム位相Cainに応じて、推定バルブリフトLiftin_hatを算出する。そして、これとバルブリフトLiftinに基づき、前述した式(21)〜(25)により、FB補正値Dliftin_fbが算出される。
次いで、減算要素322において、下式(44)により、補正後バルブリフトLiftin_modが算出される。
以上のように、この補正後バルブリフト算出部320では、補正後バルブリフトLiftin_modは、バルブリフトからFB補正値を減算した値(Liftin−Dliftin_fb)として算出される。
次に、以上のように構成された第3実施形態の制御装置1Bによる制御結果について説明する。図54は、目標空燃比KCMDを理論空燃比に相当する値1.0に設定した場合の第3実施形態の制御装置1Bによる制御結果例を示している。
図54を参照すると明らかなように、制御開始直後は、FB補正値Dliftin_fbの絶対値が、偏差Dliftinよりも小さい値となることで、実バルブリフトLiftin_actと補正後バルブリフトLiftin_modとの間の偏差が増大する。その結果、実吸入空気量Gcyl_actと吸入空気量Gcylとの間にも若干の偏差が発生し、目標空燃比KCMDと検出空燃比KACTとの間にも、スパイク状の偏差が若干、生じることで、空燃比制御の制御精度が若干、低下することが判る。
一方、制御の進行に伴って、FB補正値Dliftin_fbの絶対値が、偏差Dliftinに等しい値となることで、実バルブリフトLiftin_actと補正後バルブリフトLiftin_modとの間の偏差が減少し、その結果、実吸入空気量Gcyl_actと吸入空気量Gcylとの間の偏差も減少することで、目標空燃比KCMDと検出空燃比KACTとの間にも、偏差がほとんど発生せず、空燃比制御において高い制御精度を確保できていることが判る。
また、図54と前述した図47,48を比較すると、第1実施形態の制御装置1のように、FF補正値Dliftin_testとFB補正値Dliftin_fbの双方を用いる場合の方が、FB補正値Dliftin_fbのみを用いる場合と比べて、制御開始直後においても、高い制御精度を確保できることが判る。
以上のように、第3実施形態の制御装置1Bによれば、補正後バルブリフトLiftin_modが、FB補正値liftin_fbでバルブリフトLiftinを補正することにより算出されるので、前述したように、補正後バルブリフトLiftin_modを、バルブリフトLiftinと実際の値との間のずれ、すなわち吸入空気量Gcylのずれが適切に補正された値として算出することができる。その結果、可変バルブリフト機構50における熱伸縮に加えて、回動角センサ25における検出信号値のドリフト、可変バルブリフト機構50における構成部品の摩耗、汚れの付着および経年変化による遊びなどに起因して、回動角センサ25の検出信号より算出されたバルブリフトLiftinが実際の値に対してずれている場合でも、そのようなずれの影響を補償しながら、吸入空気量Gcylを適切に算出することができる。したがって、空燃比フィードバック制御中、可変バルブリフト機構50の温度または熱伸縮度合を直接的に検出するための格別のセンサなどを用いることなく、可変バルブリフト機構50の熱伸縮およびそれ以外の事象に起因する吸入空気量Gcylのずれを補償しながら、空燃比制御および点火時期制御を実行できるので、制御精度の向上、エンジン3のコンパクト化、設計の自由度の向上、および製造コストの削減をいずれも達成することができる。