以下、図面を参照しながら、本発明の第1実施形態に係る制御装置について説明する。図2に示すように、この制御装置1は、ECU2を備えており、このECU2は、後述するように、制御対象としての内燃機関の運転状態に応じて、空燃比制御などの制御処理を実行する。
図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により、ステム4aが閉弁方向に付勢されている。
また、吸気カムシャフト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により、ステム7aが閉弁方向に付勢されている。
また、排気カムシャフト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信号は、所定クランク角(例えば1゜)毎に1パルスが出力され、ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。なお、本実施形態では、クランク角センサ20が参照パラメータ検出手段に相当し、エンジン回転数NEが参照パラメータに相当する。また、TDC信号は、各気筒3aのピストン3bが吸気行程のTDC位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角毎に1パルスが出力される。
また、水温センサ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および触媒装置14がそれぞれ設けられている。LAFセンサ24は、ジルコニアおよび白金電極などで構成され、理論空燃比よりもリッチなリッチ領域から極リーン領域までの広範囲な空燃比の領域において、排気管13の排気通路13a内を流れる排ガス中の酸素濃度をリニアに検出し、それを表す検出信号をECU2に出力する。
ECU2は、このLAFセンサ24の検出信号の値に基づき、排ガス中の空燃比を表す検出空燃比KACTを算出する。この場合、検出空燃比KACTは、具体的には当量比として算出される。なお、本実施形態では、LAFセンサ24が制御量検出手段に相当し、検出空燃比KACTが制御量および混合気の空燃比に相当する。
次に、前述した可変式吸気動弁機構40について説明する。この可変式吸気動弁機構40は、図4に示すように、吸気カムシャフト5、吸気カム6、可変バルブリフト機構50および可変カム位相機構70などで構成されている。
この可変バルブリフト機構50は、吸気カムシャフト5の回転に伴って吸気弁4を開閉駆動するとともに、バルブリフトLiftinを所定の最大値Liftinmaxと値0との間で無段階に変更するものであり、気筒3a毎に設けられた四節リンク式のロッカアーム機構51と、これらのロッカアーム機構51を同時に駆動するリフトアクチュエータ60(図5参照)などを備えている。なお、本実施形態では、可変バルブリフト機構50が可変吸気機構に相当する。
各ロッカアーム機構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が回転した際、アジャストボルト52aがほとんど移動しない状態となる。
以上の理由により、吸気カム6の回転中、吸気弁4は、下リンク54が最大リフト位置にあるときには、図7の実線で示すバルブリフト曲線に従って開弁し、バルブリフトLiftinは、その最大値Liftinmaxを示す。一方、下リンク54がゼロリフト位置にあるときには、図7の2点鎖線で示すように、吸気管4は閉弁状態に保持され、バルブリフトLiftinは値0に保持される。
したがって、この可変バルブリフト機構50では、アクチュエータ60を介して、下リンク54を最大リフト位置とゼロリフト位置との間で回動させることにより、バルブリフトLiftinを、最大値Liftinmaxと値0との間で無段階に変化させることができる。
なお、この可変バルブリフト機構50には、図示しないロック機構が設けられており、このロック機構により、リフト制御入力U_Liftinが後述する故障時用値U_Liftin_fsに設定されているときや、断線などによりECU2からのリフト制御入力U_Liftinがリフトアクチュエータ60に入力されないときには、可変バルブリフト機構50の動作がロックされる。すなわち、可変バルブリフト機構50によるバルブリフトLiftinの変更が禁止され、バルブリフトLiftinが所定のロック値に保持される。なお、この所定のロック値は、カム位相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が所定のロック値に保持されている場合において、吸入空気量として所定の故障時用値Gcyl_fsを確保できるような値に設定されている。
以上のように、本実施形態の可変式吸気動弁機構40では、可変バルブリフト機構50により、バルブリフトLiftinがその最大値Liftinmaxと値0の間で無段階に変更されるとともに、可変カム位相機構70により、カム位相Cainすなわち吸気弁4のバルブタイミングが前述した最遅角タイミングと最進角タイミングとの間で、無段階に変更される。また、ECU2により、後述するように、可変バルブリフト機構50および可変カム位相機構70を介して、バルブリフトLiftinおよびカム位相Cainがそれぞれ制御され、それにより、吸入空気量が制御される。
一方、吸気カムシャフト5の可変カム位相機構70と反対側の端部には、カム角センサ26(図2参照)が設けられている。このカム角センサ26は、例えばマグネットロータおよびMREピックアップで構成されており、吸気カムシャフト5の回転に伴い、パルス信号であるCAM信号を所定のカム角(例えば1゜)毎にECU2に出力する。ECU2は、このCAM信号および前述したCRK信号に基づき、カム位相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_modを算出するとともに、可変バルブリフト機構50および可変カム位相機構70を介して、バルブリフトLiftinおよびカム位相Cainをそれぞれ制御することにより、吸入空気量を制御する。
なお、本実施形態では、ECU2が、制御量検出手段、参照パラメータ検出手段、目標制御量設定手段、第1入力値算出手段、第2入力値算出手段、制御入力算出手段および補正値算出手段に相当する。
次に、本実施形態の制御装置1について説明する。この制御装置1は、図10に示すように、空燃比制御を実行する空燃比コントローラ100を備えている。この空燃比コントローラ100は、以下に述べるように、燃料噴射量TOUTを燃料噴射弁10毎に算出するものであり、具体的にはECU2により構成されている。なお、本実施形態では、空燃比コントローラ100が、第1入力値算出手段、第2入力値算出手段および制御入力算出手段に相当し、燃料噴射量TOUTが制御入力および供給燃料量に相当する。
空燃比コントローラ100は、第1および第2推定吸気量算出部101,102、移行係数算出部103、増幅要素104,105、加算要素106、増幅要素107、目標空燃比算出部108、空燃比補正係数算出部109、総補正係数算出部110、乗算要素111、燃料付着補正部112、空燃比誤差推定値算出部113、加算要素114およびリフト補正値算出部120を備えている。
まず、第1推定吸気量算出部101では、以下に述べるように、第1推定吸気量Gcyl_vtが算出される。なお、本実施形態では、第1推定吸気量Gcyl_vtが第1入力値に相当する。
まず、エンジン回転数NEおよび補正後バルブリフトLiftin_modに応じて、図11に示すマップを検索することにより、基本推定吸気量Gcyl_vt_baseを算出する。この補正後バルブリフトLiftin_modは、バルブリフトLiftinを後述するリフト補正値Dliftで補正した値であり、第1推定吸気量Gcyl_vtの算出において、この補正後バルブリフトLiftin_modを用いる理由については後述する。なお、この第1推定吸気量算出部101では、補正後バルブリフトLiftin_modとして、そのダウンサンプリング値が用いられる。また、図11において、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が大きいほど、充填効率がより高くなることによる。
さらに、エンジン回転数NEおよびカム位相Cainに応じて、図12に示すマップを検索することにより、補正係数K_gcyl_vtを算出する。このマップでは、補正係数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に近い領域でも、前述した吸気の慣性力により、吸気の吹き戻しが発生しにくくなることによる。
そして、以上のように算出した基本推定吸気量Gcyl_vt_baseおよび補正係数K_gcyl_vtを用い、下式(1)により、第1推定吸気量Gcyl_vtが算出される。
上記式(1)における記号(n)付きの各離散データは、TDC信号の発生に同期する制御周期ΔTnでサンプリングまたは算出されたデータであることを示しており、記号nは各離散データのサンプリングまたは算出サイクルの順番を表している。例えば、記号nは今回の制御タイミングでサンプリングされた値であることを、記号n−1は前回の制御タイミングでサンプリングされた値であることをそれぞれ示している。なお、以下の説明では、各離散データにおける記号(n)などを適宜、省略する。
ここで、第1推定吸気量算出部101における第1推定吸気量Gcyl_vtの算出は、以上の算出手法に限らず、エンジン回転数NE、補正後バルブリフトLiftin_modおよびカム位相Cainに応じて、第1推定吸気量Gcyl_vtを算出するものであればよい。例えば、第1推定吸気量Gcyl_vtと、エンジン回転数NE、補正後バルブリフトLiftin_modおよびカム位相Cainとの関係を予め設定した4次元マップを用いて、第1推定吸気量Gcyl_vtを算出してもよい。また、エンジン回転数NE、補正後バルブリフトLiftin_modおよびカム位相Cainを入力とし、第1推定吸気量Gcyl_vtを出力とするニューラルネットワークモデルを用いて、第1推定吸気量Gcyl_vtを算出してもよい。
また、移行係数算出部103では、移行係数Kgが以下のように算出される。まず、第1推定吸気量算出部101で算出された第1推定吸気量Gcyl_vt、およびエンジン回転数NEを用い、下式(2)により、推定流量Gin_vt(単位:g/sec)を算出する。
次いで、この推定流量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)が算出される。
増幅要素104,105では、以上のように算出された第1および第2推定吸気量Gcyl_vt,Gcyl_afmをそれぞれ(1−Kg),Kg倍に増幅した値が算出される。そして、加算要素106では、そのように増幅された値に基づき、下式(4)の加重平均演算により、算出吸気量Gcylが算出される。
この式(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が算出される。なお、下式(5)のKgtは、燃料噴射弁10毎に予め設定される換算係数である。
また、目標空燃比算出部108では、算出吸気量Gcylおよびアクセル開度APに応じて、図14に示すマップを検索することにより、目標空燃比KCMDが算出される。このマップでは、目標空燃比KCMDの値は、当量比として設定されているとともに、基本的には、触媒装置14の排ガス浄化性能を良好な状態に保持するために、理論空燃比に相当する値(値1.0)に設定されている。なお、本実施形態では、目標空燃比算出部108が目標制御量設定手段に相当し、目標空燃比KCMDが目標制御量に相当する。
さらに、空燃比補正係数算出部109では、下式(6)〜(10)に示すスライディングモード制御アルゴリズムにより、空燃比補正係数KAFが算出される。なお、下式(6)〜(10)における記号(m)付きの各離散データは、1燃焼サイクル毎すなわちTDC信号が連続して4回発生する毎にサンプリングまたは算出されたデータであることを示しており、記号mは各離散データのサンプリングサイクルの順番を表している。
上記式(6)に示すように、空燃比補正係数KAFは、到達則入力Urch’と適応則入力Uadp’の和として算出され、この到達則入力Urch’は、式(7)により算出される。同式(7)において、Krch’は、所定の到達則ゲインを表しており、σ’は、式(9)のように定義される切換関数である。同式(9)において、S’は、−1<S’<0の関係が成立するように設定される切換関数設定パラメータであり、eは、式(10)のように定義される追従誤差である。この場合、切換関数設定パラメータS’の設定値により、追従誤差eの値0への収束速度が指定される。
また、適応則入力Uadp’は、式(8)により算出され、同式(8)において、Kadp’は、所定の適応則ゲインを表している。なお、この適応則入力Uadp’の初期値は、値1に設定される。
以上のように、空燃比補正係数算出部109では、式(6)〜(10)に示すスライディングモード制御アルゴリズムにより、検出空燃比KACTを目標空燃比KCMDに収束させるための値として、空燃比補正係数KAFが算出される。なお、本実施形態では、空燃比補正係数KAFが第2入力値に相当する。
一方、総補正係数算出部110では、エンジン水温TWおよび吸気温TAなどの運転状態を表す各種のパラメータに応じて、図示しないマップを検索することにより、各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、総補正係数KTOTALが算出される。
また、乗算要素111では、下式(11)により、要求燃料噴射量Tcylが算出される。
さらに、燃料付着補正部112では、以上のように算出された要求燃料噴射量Tcylに、所定の燃料付着補正処理を施すことにより、燃料噴射量TOUTが算出される。そして、この燃料噴射量TOUTに基づいて、燃料噴射弁10の燃料噴射タイミングおよび開弁時間が決定され、燃料噴射弁10が制御される。
次に、前述した空燃比誤差推定値算出部113について説明する。この空燃比誤差推定値算出部113では、以下に述べるように、空燃比誤差推定値Eafが算出される。なお、本実施形態では、空燃比誤差推定値Eafが第1偏差に相当する。
まず、空燃比補正係数KAFおよび検出空燃比KACTに基づき、下式(12)により、実空燃比推定値KACT_hat(制御量)を算出し、その後、下式(13)により、空燃比誤差推定値Eafが算出される。
ここで、上式(12),(13)における記号(k)付きの各離散データは、所定の制御周期ΔTk(本実施形態では5msec)に同期してサンプリングまたは算出されたデータであることを示しており、記号kは各離散データのサンプリングまたは算出サイクルの順番を表している。なお、以下の説明では、各離散データにおける記号(k)を適宜省略する。また、上式(12),(13)におけるdは、燃焼ガスが燃焼室からLAFセンサ24に到達するまでのむだ時間を表している。
上式(12)に示すように、実空燃比推定値KACT_hatは、今回の制御タイミングで得られた検出空燃比KACT(k)をむだ時間d前の制御タイミングで算出された空燃比補正係数KAF(k−d)で除算することにより、この値KAF(k−d)の影響を受けない値として算出される。すなわち、実空燃比推定値KACT_hatは、むだ時間d前の制御タイミングで空燃比フィードバック制御を実行しなかったと想定した場合の、今回の制御タイミングにおける実際の空燃比の推定値として算出される。
したがって、空燃比誤差推定値Eafは、そのような実空燃比推定値KACT_hat(k)と、むだ時間d前の制御タイミングでの目標空燃比KCMD(k−d)との偏差として算出されるので、むだ時間d前の制御タイミングで空燃比フィードバック制御を実行しなかったと想定した場合の、今回の制御タイミングにおける空燃比の制御誤差に相当する。
次に、前述したリフト補正値算出部120について説明する。このリフト補正値算出部120では、以下に述べる手法により、リフト補正値Dliftが算出される。なお、本実施形態では、リフト補正値算出部120が補正値算出手段に相当する。本実施形態の制御装置1では、前述したように、リフト補正値DliftでバルブリフトLiftinを補正した補正後バルブリフトLiftin_modと、図11のマップを用いて、基本推定吸気量Gcyl_vt_baseが算出されており、以下、このような補正後バルブリフトLiftin_modを用いる理由について説明する。
本実施形態の制御装置1のように、可変バルブリフト機構50を介して吸入空気量を制御する場合、基本推定吸気量Gcyl_vt_base(すなわち吸入空気量)とバルブリフトLiftinとエンジン回転数NEとの相関関係は、基本的には図15に示すマップのようになる。しかし、このようなマップを用いて、基本推定吸気量Gcyl_vt_baseを算出した場合、マップが実際の相関関係に対してずれを生じることで、基本推定吸気量Gcyl_vt_baseの算出値が、実際の値に対して誤差を生じる可能性がある。
すなわち、衝撃などにより回動角センサ25の取付状態が変化したり、温度変化に伴って回動角センサ25の特性が変化したりすると、バルブリフトの算出値Liftinがその実際値に対してずれてしまうことがあり、その場合には、上述した基本推定吸気量Gcyl_vt_baseの算出誤差を生じてしまう。また、可変バルブリフト機構50の構成部品の摩耗、汚れの付着および経年変化による遊びなどに起因して、可変バルブリフト機構50の動特性(すなわちリフト制御入力U_liftinに対するバルブリフトLiftinの関係)が変化した場合にも、上述した基本推定吸気量Gcyl_vt_baseの算出誤差が発生する。以下の説明では、バルブリフトLiftinと基本推定吸気量Gcyl_vt_baseとの関係が、実際の関係に対してずれた状態にあることを「リフト誤差」という。
例えば、上述したリフト誤差の発生状態としては、図16および図17に示すものが考えられる。両図は、エンジン回転数NEがNE=NE1の場合の例であり、図16は、バルブリフトの算出値Liftinがその実際値に対してオフセット(ゼロ点ずれ)を生じていることで、上述したリフト誤差が発生している状態を示している。また、図17は、バルブリフトの算出値Liftinはその実際値に対して誤差を生じていないものの、上述した可変バルブリフト機構50の動特性の変化に起因して、リフト誤差が発生している状態を示している。両図では、実線で示す曲線が、バルブリフトLiftinと基本推定吸気量Gcyl_vt_baseの関係においてリフト誤差がない状態を表しており、破線で示す曲線が、リフト誤差がある状態を表している。
両図16,17を参照すると明らかなように、リフト誤差は、バルブリフトLiftinが小リフト域の所定値Liftin_aのときの方が大リフト域の所定値Liftin_b(>Liftin_a)のときよりも大きくなっている。すなわち、リフト誤差は、上述したバルブリフトLiftinのオフセットに起因する場合でも、可変バルブリフト機構50の動特性の変化に起因する場合でも、小リフト域の方が大リフト域よりも大きくなることが判る。
また、図18を参照すると明らかなように、バルブリフトLiftinの変化量ΔLiftinに対する基本推定吸気量Gcyl_vt_baseの変化量ΔGcylは、小リフト域の値ΔGcyl_aの方が、大リフト域の値ΔGcyl_bよりも大きくなるので、2つの変化量の比ΔGcyl/ΔLiftinは、(ΔGcyl_a/ΔLiftin)≫(ΔGcyl_b/ΔLiftin)の関係が成立する。
ここで、前述した空燃比誤差推定値Eafが、リフト誤差に起因して発生していると想定した場合、そのリフト誤差が空燃比誤差推定値Eafに及ぼす影響度合すなわち感度の大小は、上記比ΔGcyl/ΔLiftinの大小関係と同じであると見なすことができる。言い換えれば、空燃比誤差推定値Eafが発生した場合、比ΔGcyl/ΔLiftinが大きいほど、空燃比誤差推定値Eafがリフト誤差に起因して発生した確率がより高いと見なすことができる。これに加えて、比ΔGcyl/ΔLiftinの値は、バルブリフトLiftinおよびエンジン回転数NEに応じて変化する(前述した図11参照)とともに、カム位相Cainに応じても変化するので、空燃比誤差推定値Eafに対するリフト誤差の感度も、3つの値Liftin,NE,Cainに応じて変化することになる。
したがって、本実施形態のリフト補正値算出部120では、以下に述べる算出手法により、バルブリフトLiftinを補正するためのリフト補正値Dliftが、上述した空燃比誤差推定値Eafに対するリフト誤差の感度を適切に反映し、かつエンジン回転数NEに応じたリフト誤差の感度変化を適切に反映する値として算出される。
このリフト補正値算出部120は、図19に示すように、連結重み関数算出部121、誤差重み算出部122、移行係数重み算出部123、修正誤差算出部124、基本局所補正値算出部125、補正感度算出部126および最終値算出部127を備えている。
まず、連結重み関数算出部121では、エンジン回転数NEに応じて、連結重み関数Wcpiが算出される。なお、本実施形態では、連結重み関数Wcpiが所定の複数の関数に相当する。ここで、連結重み関数Wcpiの添字i(i=1〜r)は、以下に述べるエンジン回転数NEのr(rは2以上の整数)個の領域を表しており、本実施形態ではr=4に設定されている。すなわち、連結重み関数Wcpiは、4個の値を要素とするベクトルとして算出され、より具体的には、エンジン回転数NEに応じて、図20に示すマップを検索することにより算出される。同図において、NEx1〜8は、エンジン回転数NEの所定値であり、NEx1<NEx2<NEx3<NEx4<NEx5<NEx6<NEx7<NEx8の関係が成立するように設定されている。これらの点は以下の説明においても同様である。
同図に示すように、4つの連結重み関数Wcpiはそれぞれ、エンジン回転数NEが変化し得る領域を0≦NE<NEx3,NEx1<NE<NEx5,NEx3<NE<NEx7,NEx5<NE≦NEx8の4つの領域に区分した場合において、これらの4つの領域に対応するように設定されているとともに、対応する領域では、値1以下の正の値に設定され、対応する領域以外では、値0に設定されている。
具体的には、連結重み関数Wcp1は、これが対応する領域(0≦NE<NEx3)では、NE≦NEx1のときの値1を最大値として、エンジン回転数NEが高いほど、より小さい正の値に設定されているとともに、それ以外の領域では、値0に設定されている。また、連結重み関数Wcp2は、これが対応する領域(NEx1<NE<NEx5)では、NE=NEx3のときの値1を最大値として、二等辺三角形の斜辺状に変化する値に設定されているとともに、それ以外の領域では、値0に設定されている。
さらに、連結重み関数Wcp3は、これが対応する領域(NEx3<NE<NEx7)では、NE=NEx5のときの値1を最大値として、二等辺三角形の斜辺状に変化する値に設定されているとともに、それ以外の領域では、値0に設定されている。一方、連結重み関数Wcp4は、これが対応する領域(NEx5<NE≦NEx8)では、NEx7≦NEのときの値1を最大値として、エンジン回転数NEが高いほど、より大きい正の値に設定されているとともに、それ以外の領域では、値0に設定されている。
以上に加えて、4つの連結重み関数Wcpiがそれぞれ対応する4つの領域は、上述したような、隣り合う領域が互いに重なり合うような領域に設定されており、これらの互いに重なり合う領域に対応する連結重み関数Wcpiの値の和は、各連結重み関数Wcpiにおける最大値1と等しくなるように設定されている。例えば、NE=NEx2の場合、この値NEx2に対応する2つの連結重み関数Wcp1,Wcp2の値はそれぞれ0.5に設定されており、これらの連結重み関数の和Wcp1+Wcp2は、連結重み関数Wcpiの各々の最大値に等しい値1となる。さらに、NE=NEx6の場合にも、所定値NEx2に対応する2つの連結重み関数Wcp3,Wcp4の和Wcp3+Wcp4は、連結重み関数Wcpiの各々の最大値に等しい値1となる。
なお、連結重み関数Wcpiとして、図20に示す4個の値を要素とするものに代えて、2個または3個の値や、5個以上の値を要素とする連結重み関数Wcpiを用いてもよい。その場合には、エンジン回転数NEの領域を、要素の数に応じて、互いに重なり合うように設定すればよい。
また、誤差重み算出部122では、以下に述べる手法により、誤差重みWが算出される。まず、下式(14)により、第2補正後バルブリフトLiftin_mod_pを算出する。
上式(14)に示すように、第2補正後バルブリフトLiftin_mod_pは、バルブリフトの今回値Liftin(k)とリフト補正値の前回値Dlift(k−1)の和として算出される。これは、第2補正後バルブリフトLiftin_mod_pの算出時点では、リフト補正値の今回値Dlift(k)が未算出であることによる。
次いで、第2補正後バルブリフトLiftin_mod_pおよびエンジン回転数NEに応じて、図21に示すマップを検索することにより、基本誤差重みW_baseを算出する。この基本誤差重みW_baseは、上記比ΔGcyl/ΔLiftinを、所定の微小リフト&所定の低回転数での上記比ΔGcyl_x/ΔLiftin_xの絶対値|ΔGcyl_x/ΔLiftin_x|を基準として正規化した値、すなわち、W_base=(ΔGcyl/ΔLiftin)÷(|ΔGcyl_x/ΔLiftin_x|)が成立する値を表している。図中に破線で示すように、ΔGcyl/ΔLiftin<0となる条件では、後述する理由によりW_base=0に設定されている。
このマップでは、基本誤差重みW_baseは、第2補正後バルブリフトLiftin_mod_pが小さいほど、より大きい値に設定されている。これは、前述したリフト誤差感度すなわち比ΔGcyl/ΔLiftinが、第2補正後バルブリフトLiftin_mod_pが小さいほど、より大きい値を示すことによる。さらに、基本誤差重みW_baseは、小リフト域では、エンジン回転数NEが高いほど、より小さな値に設定され、それ以外のリフト域では、エンジン回転数NEが高いほど、より大きな値に設定されている。これは、前述した図11の説明で述べた理由(充填効率および吹き戻しの変化)による。
また、カム位相Cainおよびエンジン回転数NEに応じて、図22に示すマップを検索することにより、誤差重み補正係数K_wを算出する。この誤差重み補正係数K_wは、上記比ΔGcyl/ΔLiftinを、エンジン回転数NEの各所定値NE1〜NE3において、カム位相Cainが最遅角のときの比ΔGcyl_rt/ΔLiftin_rtの絶対値|ΔGcyl_rt/ΔLiftin_rt|を基準として正規化した値、すなわち、W_base=(ΔGcyl/ΔLiftin)÷(|ΔGcyl_rt/ΔLiftin_rt|)が成立する値を表している。
このマップでは、誤差重み補正係数K_wは、エンジン回転数NEおよびカム位相Cainに対して、前述した図12の補正係数K_gcyl_vtと同じ傾向に設定されている。これは、前述した図12の説明で述べた理由(充填効率および吹き戻しの変化)による。
そして、最終的に、誤差重みWは下式(15)により算出される。
以上のように、誤差重みWは、基本誤差重みW_baseに誤差重み補正係数K_wを乗算することにより算出されるので、空燃比誤差推定値Eafに対するリフト誤差の感度を表す値として算出される。より具体的には、誤差重みWは、空燃比誤差推定値Eafに対するリフト誤差の感度すなわち比ΔGcyl/ΔLiftinが大きいほど、言い換えれば、空燃比誤差推定値Eafがリフト誤差に起因して発生した確率が高いほど、より大きい値として算出される。また、これらの2つの値W_base,K_wは、3つのパラメータLiftin_mod_p,NE,Cainに応じて、図21,22の2つのマップを検索することにより算出されるとともに、第2補正後バルブリフトLiftin_mod_pは、バルブリフトLiftinにリフト補正値の前回値Dlift(k−1)を加算した値であるので、これらの2つのマップは、3つの値Liftin,NE,Cainと誤差重みWとの間の相関関係を表す応答曲面モデルを構成していると見なすことができる。
このように、誤差重みWが3つの値Liftin,NE,Cainに応じて算出されるのは、リフト誤差の感度は、バルブリフトLiftinだけでなく、エンジン回転数NEおよびカム位相Cainの値によっても変化するためである。その結果、誤差重みWは、空燃比誤差推定値Eafに対する3つの値Liftin,NE,Cainの影響度合を表す値として算出される。
なお、基本誤差重みW_baseの算出用マップとして、図21に示すものに代えて、基本誤差重みW_baseがバルブリフトLiftinおよびエンジン回転数NEに応じて設定されているもの、すなわち図21の横軸の第2補正後バルブリフトLiftin_mod_pをバルブリフトLiftinに置き換えたものを用いてもよい。
また、移行係数重み算出部123では、下式(16)により、移行係数重みWkgが算出される。
上式(16)において、むだ時間d前の移行係数Kg(k−d)を用いたのは、以下の理由による。すなわち、前述した式(4)を参照すると明らかなように、移行係数Kgが変化すると、算出吸気量Gcylにおける第1推定吸気量Gcyl_vtと第2推定吸気量Gcyl_afmの寄与度も変化するので、リフト誤差感度も変化することになる。この場合、今回の制御タイミングで算出された空燃比誤差推定値Eafは、むだ時間d前の制御タイミングでの算出吸気量Gcyl(k−d)およびこれに基づいて算出された燃料噴射量TOUTに起因するものとなるので、今回の制御タイミングでのリフト誤差感度の変化は、むだ時間d前の移行係数Kg(k−d)の変化に起因するものと想定される。したがって、そのようなリフト誤差感度を補償するために、移行係数重みWkgの算出において、むだ時間d前の移行係数Kg(k−d)が用いられる。
次に、修正誤差算出部124では、下式(17)により、総重みWg
iを算出し、これと空燃比誤差推定値Eafを用いて、下式(18)により、修正誤差Weaf
iが算出される。
このように、修正誤差Weafiは、4つの値を要素とするベクトルとして算出される。また、修正誤差Weafiは、3つの値Wkg,W,Wcpiを空燃比誤差推定値Eafに乗算することにより算出されるので、これらの3つの値によって重み付けされた値として算出される。なお、本実施形態では、修正誤差Weafiは、複数の第1乗算値に相当する。
また、基本局所補正値算出部125では、下式(19)〜(26)に示すスライディングモード制御アルゴリズムを適用した制御アルゴリズムにより、基本局所補正値Dlift_bsiが算出される。このように、基本局所補正値Dlift_bsiは、修正誤差Weafiを値0に収束させるための、4つの値を要素とするベクトルとして算出される。言い換えれば、基本局所補正値Dlift_bsiは、空燃比誤差推定値Eafと所定の目標値としての値0との偏差(すなわち、空燃比誤差推定値Eaf)を値0に収束させるように算出される。
上式(19)において、σiは切換関数であり、Sは−1<S<0の関係が成立するように設定される切換関数設定パラメータである。この場合、切換関数設定パラメータSの設定値により、修正誤差Weafiの値0への収束速度が指定される。また、式(20)において、Urchiは到達則入力であり、Krchは所定の到達則ゲインを表している。さらに、式(21)において、Unliは非線形入力であり、Knlは所定の非線形入力用ゲインを表している。また、式(21)におけるsgn(σi(k))は符号関数であり、その値は、σi(k)≧0のときにはsgn(σi(k))=1となり、σi(k)<0のときにはsgn(σi(k))=−1となるように設定される(なお、σi(k)=0のときに、sgn(σi(k))=0となるように設定してもよい)。
さらに、式(22)において、Uadpiは適応則入力であり、Kadpは所定の適応則ゲインを表している。また、式(22)のδiは、式(23)により算出される切換関数の積分値である。同式(23)のλは忘却係数であり、その値は式(24),(25)に示すように、基本局所補正値の前回値Dlift_bsi(k−1)と所定の上下限値Dlift_bs_H,Dlift_bs_Lとの比較結果により、値1または所定値λlmtに設定される。この上限値Dlift_bs_Hは正の所定値に設定され、下限値Dlift_bs_Lは負の所定値に設定されるとともに、所定値λlmtは、0<λlmt<1が成立するような値に設定される。
また、式(26)に示すように、基本局所補正値Dlift_bsiは、到達則入力Urchi、非線形入力Unliおよび適応則入力Uadpiの和として算出される。なお、本実施形態では、基本局所補正値Dlift_bsiが複数の補正値に相当する。
以上のように、基本局所補正値Dlift_bsiは、3つの値Wkg,W,Wcpiによって重み付けされた修正誤差Weafiが値0になるように算出される。この場合、2つの値Wkg,Wが空燃比誤差推定値Eafへの乗算値として用いられることにより、基本局所補正値Dlift_bsiは、空燃比誤差推定値Eafに対する第1推定吸気量Gcyl_vtの寄与度の影響と、空燃比誤差推定値Eafに対するリフト誤差の感度が、反映された値として算出される。
また、連結重み関数Wcpiが空燃比誤差推定値Eafへの乗算値として用いられることにより、基本局所補正値Dlift_bsiは、空燃比誤差推定値Eafを前述した4つのエンジン回転数域に分配するように算出され、それにより、基本局所補正値Dlift_bsiでは、今回の制御タイミングでのエンジン回転数NEに対応する1つまたは2つの値が、空燃比誤差推定値Eafを適切に補償できるように算出される。
例えば、今回の制御タイミングで、NE=NEx3の場合、Wcp2=1となり、それ以外の3つの連結重み関数Wcpiはいずれも値0となることで、NE=NEx3に対応する基本局所補正値Dlift_bs2のみが、空燃比誤差推定値Eafを適切に補償できるように算出される。また、NE=NEx2の場合、Wcp1=Wcp2=0.5,Wcp3=Wcp4=0となることで、2つの基本局所補正値Dlift_bs1,Dlift_bs2が、空燃比誤差推定値Eafを適切に補償できるように算出される。
また、以上の基本局所補正値Dlift_bsiの算出アルゴリズムにおいて、忘却係数λを用いたのは以下の理由による。すなわち、式(6)〜(10)のスライディングモード制御アルゴリズムにより、検出空燃比KACTを目標空燃比KCMDに収束させるように、空燃比補正係数KAFが算出されるとともに、その空燃比補正係数KAFに基づいて算出した修正誤差Weafiが値0に収束するように、式(19)〜(26)のスライディングモード制御アルゴリズムを適用した制御アルゴリズムにより、基本局所補正値Dlift_bsiが算出される。そのため、忘却係数λを用いなかった場合、これらの2つの制御アルゴリズムにおける積分項としての適応則入力Uadp’,Uadpiが、互いに干渉して振動的な挙動を示したり、それぞれの絶対値が肥大化したりすることによって、相関関係モデルが不適切に修正される可能性があり、その場合には、基本局所補正値Dlift_bsiすなわち第1推定吸気量Gcyl_vtの算出精度が低下し、過渡時の制御性が低下してしまう。
これに対して、前述した式(23)では、基本局所補正値の前回値Dlift_bsi(k−1)の絶対値が大きい場合には、適応則入力Uadpiにおける切換関数の積分値δiの増大を回避するために、0<λ<1の範囲内の値に設定された忘却係数λが、切換関数の積分値の前回値δi(k−1)に乗算されている。この場合、前述した式(23)を漸化式により展開すると、h(hは2以上の自然数)回前の制御タイミングでの切換関数の積分値δi(k−h)に対しては、λh(≒0)が乗算されることになるので、演算処理が進行したときでも、切換関数の積分値δiの増大すなわち適応則入力Uadpiの増大を回避することができる。その結果、第1推定吸気量Gcyl_vtの算出精度を向上させることができ、過渡時の制御性を向上させることができる。
また、忘却係数λを常に0<λ<1の範囲内の値に設定した場合、修正誤差Weafiが値0近傍になったときに、忘却係数λによる忘却効果により、基本局所補正値Dlift_bsiが値0近傍に収束してしまうので、そのような状態で制御誤差が再度発生すると、その制御誤差を解消するのに時間を要してしまう。したがって、それを回避し、制御誤差を迅速に解消するためには、修正誤差Weafiが比較的小さい値のときでも、基本局所補正値Dlift_bsiを、修正誤差Weafiを補償可能な値に適切に保持しておく必要があるので、本実施形態では、基本局所補正値の前回値Dlift_bsi(k−1)が上述した範囲にあるときには、忘却係数λによる忘却効果をキャンセルするために、λ=1に設定されている。なお、忘却係数λによる忘却効果が常に不要な場合には、式(23)において、前回値Dlift_bsi(k−1)の大小にかかわらず、λ=1と設定すればよい。
また、基本局所補正値Dlift_bsiは、修正誤差Weafiを値0に収束させるように、前述した式(19)〜(26)により算出されるので、例えば、前述した基本誤差重みW_baseが正値および負値の双方を示す場合、基本誤差重みW_baseが正値と負値との間で変化すると、それに伴って修正誤差Weafiの符号が反転し、各制御入力Urchi,Unli,Uadpiの符号が反転してしまい、その結果、基本局所補正値Dlift_bsiが不適切な値に算出されることで、制御が不安定になる可能性がある。したがって、制御の安定性を確保するために、前述した図21では、基本誤差重みW_baseが負値となる条件下のときに、基本誤差重みW_baseが値0に設定されている。
なお、基本誤差重みW_baseの符号が変化するのに伴って、各制御入力Urchi,Unli,Uadpiのゲインの符号を反転させるように制御する場合には、基本誤差重みW_baseが正値および負値の双方を示すときでも、本実施形態と同様に、制御の安定性を確保することができるので、その場合には、図21に破線で示す基本誤差重みW_baseが負値となる曲線の値を用いてもよい。
一方、前述した補正感度算出部126では、以下に述べる手法により、補正感度Rliftが算出される。まず、前述した式(14)により、第2補正後バルブリフトLiftin_mod_pを算出する。
次いで、第2補正後バルブリフトLiftin_mod_pおよびエンジン回転数NEに応じて、図23に示すマップを検索することにより、基本感度R_baseを算出する。この基本感度R_baseは、前述した基本誤差重みW_baseと同様に、比ΔGcyl/ΔLiftinを、所定の微小リフト&所定の低回転数での上記比ΔGcyl_x/ΔLiftin_xの絶対値|ΔGcyl_x/ΔLiftin_x|を基準として正規化した値を示している。
このマップでは、基本感度R_baseは、第2補正後バルブリフトLiftin_mod_pが小さいほど、より大きい値に設定されている。これは、前述した図21の説明で述べた理由による。また、このマップでは、基本感度R_baseは、基本誤差重みW_baseと異なり、正値および負値の双方を示すように設定されている。これは、後述するように、リフト補正値Dliftが、補正感度Rliftを基本局所補正値Dlift_bsiに乗算することにより算出されるとともに、これをバルブリフトLiftinに加算することにより、補正後バルブリフトLiftin_modが算出されるので、補正感度Rliftが正値および負値の双方を示す場合でも、空燃比制御の安定性を損なうことなく、むしろ、空燃比制御の応答性を高めることができることによる。
また、カム位相Cainおよびエンジン回転数NEに応じて、図24に示すマップを検索することにより、感度補正係数K_rを算出する。同図において、実線で示す曲線が、感度補正係数K_rの値を表しており、破線で示す曲線は、前述した誤差重み補正係数K_wの値を比較のために表したものである。これらの2つの曲線を比較すると明らかなように、このマップでは、感度補正係数K_rは、誤差重み補正係数K_wとほぼ同じような傾向に設定されており、これは、図22の説明で述べたのと同じ理由による。これに加えて、感度補正係数K_rの進角側の値は、誤差重み補正係数K_wよりも値1に近い値に設定されている。これは、カム位相Cainが進角側に制御されている場合、吸入空気量の減少に応じて燃料噴射量TOUTが小さい値に算出されるので、その際、燃料噴射量TOUTが適切な値よりも小さく誤算出されると、混合気がリーン化することによって燃焼の安定性が低下する可能性があるので、それを回避するためである。
そして、最終的に、補正感度Rliftが下式(27)により算出される。
以上のように、補正感度Rliftは、前述した誤差重みWと同様の手法により算出されるので、空燃比誤差推定値Eafに対するリフト誤差の感度、すなわち、空燃比誤差推定値Eafに対するバルブリフトLiftinの影響度合を表す値として算出されるとともに、空燃比誤差推定値Eafに対するエンジン回転数NEおよびカム位相Cainの影響度合も表す値として算出される。
なお、補正感度算出部126において、基本感度R_baseの算出用マップとして、図23に示すものに代えて、基本感度R_baseがバルブリフトLiftinおよびエンジン回転数NEに応じて設定されているもの、すなわち図23の横軸の第2補正後バルブリフトLiftin_mod_pをバルブリフトLiftinに置き換えたものを用いてもよい。
そして、最終値算出部127では、下式(28)により、局所補正値Dlift_lc
iを算出した後、下式(29)により、リフト補正値Dliftが最終的に算出される。
最終値算出部127では、上記のように、補正感度Rliftおよび連結重み関数Wcpiを基本局所補正値Dlift_bsiに乗算することにより、4つの局所補正値Dlift_lciが算出され、これらの局所補正値Dlift_lciの総和として、リフト補正値Dliftが算出される。このように、補正感度Rliftが基本局所補正値Dlift_bsiへの乗算値として用いられることにより、リフト補正値Dliftは、空燃比誤差推定値Eafに対するバルブリフトLiftin、エンジン回転数NEおよびカム位相Cainの影響度合が反映された値として算出される。この場合、リフト誤差の感度が低い条件下で、補正感度Rliftを用いることなく、局所補正値Dlift_lciを算出した場合、局所補正値Dlift_lciにより、空燃比誤差推定値Eafが過補償されるおそれがあるものの、補正感度Rliftを用いることで、それを回避することができる。
さらに、リフト補正値Dliftは、連結重み関数Wcpiを基本局所補正値Dlift_bsiへの乗算値として用いて算出した局所補正値Dlift_lciの総和として算出されるので、4つの基本局所補正値Dlift_bsiを連続的に結合した値として算出される。より具体的には、リフト補正値Dliftは、4つの基本局所補正値Dlift_bsiが互いに異なる値として算出されている状態で、エンジン回転数NEが変化したときでも、それに伴い、段差を生じることなく連続的に変化するように算出される。なお、本実施形態では、局所補正値Dlift_lciが複数の第2乗算値および複数の乗算値に相当する。
リフト補正値算出部120では、以上の手法により、リフト補正値Dliftが算出される。そして、前述した加算要素114で、下式(30)により、補正後バルブリフトLiftin_modが算出される。
以上のように、補正後バルブリフトLiftin_modは、リフト補正値DliftによりバルブリフトLiftinを補正することにより算出される。この場合、基本局所補正値Dlift_bsiは、修正誤差Weafiを値0に収束させるための値であるので、リフト補正値DliftによりバルブリフトLiftinを補正することは、リフト誤差を解消するように、バルブリフトLiftinを補正または修正することに相当する。したがって、そのような補正後バルブリフトLiftin_modに応じて、前述した図11のマップを検索することにより、基本推定吸気量Gcyl_vt_baseを算出することは、リフト誤差を解消するように補正(または修正)されたマップすなわち相関関係モデルを用いて、第1入力値としての第1推定吸気量Gcyl_vtを算出することに相当する。
次に、図25を参照しながら、前述した制御周期ΔTnでECU2により実行される制御処理について説明する。なお、以下の説明において算出される各種の値は、ECU2のRAM内に記憶されるものとする。
この処理では、まず、ステップ1(図では「S1」と略す。以下同じ)で、TDCカウンタの計数値C_TDCを、その前回値C_TDCZと値1の和(C_TDCZ+1)に設定する。すなわち、TDCカウンタの計数値C_TDCを値1インクリメントする。
次いで、ステップ2に進み、C_TDC=4であるか否かを判別する。この判別結果がNOで、C_TDC≠4のときには、後述するステップ6に進む。一方、この判別結果がYESのときには、ステップ3に進み、TDCカウンタの計数値C_TDCを値0にリセットする。
ステップ3に続くステップ4で、目標空燃比KCMDを算出する。具体的には、前述したように、算出吸気量Gcylおよびアクセル開度APに応じて、図14に示すマップを検索することにより、目標空燃比KCMDを算出する。
次に、ステップ5で、空燃比補正係数KAFを算出する。具体的には、空燃比フィードバック制御の実行条件が成立しているときには、前述した式(6)〜(10)の制御アルゴリズムにより、空燃比補正係数KAFを算出する。一方、空燃比フィードバック制御の実行条件が不成立のときには、空燃比補正係数KAFを値1に設定する。
ステップ2または5に続くステップ6で、空燃比制御処理を実行する。この空燃比制御処理は、燃料噴射量TOUTを燃料噴射弁10毎に算出するものであり、その詳細については後述する。
次いで、ステップ7で、点火時期制御処理を実行する。この処理の詳細な説明はここでは省略するが、この処理では、例えば前述した特開2005−315161号公報における点火時期制御処理と同じ算出手法により、点火時期Iglogが算出される。その後、本処理を終了する。
以上のように、図25の制御処理では、ステップ3〜5は、C_TDC=4が成立する毎に実行されるので、TDC信号が連続して4回発生する毎すなわち1燃焼サイクル毎に実行されることになる。
次に、図26を参照しながら、前述した空燃比制御処理について説明する。本処理は、以下に述べるように、燃料噴射量TOUTを燃料噴射弁10毎に算出するものであり、より具体的には、前述したTDCカウンタの計数値C_TDCが値1から値4までインクリメントされるのに従って、1番気筒→3番気筒→4番気筒→2番気筒の順に各気筒用の燃料噴射弁10の燃料噴射量TOUTをそれぞれ算出するものである。
まず、ステップ20で、前述した補正後バルブリフトLiftin_mod、空燃比補正係数KAFおよび各種のパラメータを読み込む。この場合、補正後バルブリフトLiftin_modは、前述したように制御周期ΔTkで算出されるので、補正後バルブリフトLiftin_modをダウンサンプリングすることに相当する。また、空燃比補正係数KAFは、1燃焼サイクル毎に算出されるので、空燃比補正係数KAFをオーバーサンプリングすることに相当する。
次いで、ステップ21で、基本燃料噴射量Tcyl_bsを算出する。この基本燃料噴射量Tcyl_bsの算出処理は、具体的には、図27に示すように実行される。すなわち、まず、ステップ30で、前述した式(3)により、第2推定吸気量Gcyl_afmを算出する。
次に、ステップ31で、前述したように、エンジン回転数NEおよび補正後バルブリフトLiftin_modに応じて、図11に示すマップを検索することにより、基本推定吸気量Gcyl_vt_baseを算出する。
ステップ31に続くステップ32で、前述したように、エンジン回転数NEおよびカム位相Cainに応じて、図12に示すマップを検索することにより、補正係数K_gcyl_vtを算出する。
その後、ステップ33に進み、ステップ31および32で算出した2つの値Gcyl_vt_base,K_gcyl_vtに基づき、前述した式(1)により、第1推定吸気量Gcyl_vtを算出する。
次に、ステップ34で、前述した式(2)により、推定流量Gin_vtを算出する。その後、ステップ35に進み、可変機構故障フラグF_VDNGが「1」であるか否かを判別する。
この可変機構故障フラグF_VDNGは、図示しない故障判定処理において、可変バルブリフト機構50および可変カム位相機構70の少なくとも1つが故障していると判定されたときには「1」に、いずれも正常であると判定されたときには「0」にそれぞれ設定される。なお、以下の説明では、可変バルブリフト機構50および可変カム位相機構70をまとめて「2つの可変機構」と呼ぶ。
ステップ35の判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ36に進み、エアフローセンサ故障フラグF_AFMNGが「1」であるか否かを判別する。このエアフローセンサ故障フラグF_AFMNGは、図示しない故障判定処理において、エアフローセンサ22が故障していると判定されたときには「1」に、正常であると判定されたときには「0」にそれぞれ設定される。
ステップ36の判別結果がNOで、エアフローセンサ22が正常であるときには、ステップ37に進み、前述したように、移行係数Kgを、推定流量Gin_vtに応じて、図13に示すマップを検索することにより算出する。
一方、ステップ36の判別結果がYESで、エアフローセンサ22が故障しているときには、ステップ38に進み、移行係数Kgを値0に設定する。
ステップ37または38に続くステップ39では、前述した式(4)により、算出吸気量Gcylを算出する。次いで、ステップ40で、基本燃料噴射量Tcyl_bsを、換算係数と算出吸気量の積Kgt・Gcylに設定した後、本処理を終了する。
一方、ステップ35の判別結果がYESで、2つの可変機構の少なくとも1つが故障していると判定されたときには、ステップ41に進み、算出吸気量Gcylを前述した所定の故障時用値Gcyl_fsに設定する。次いで、前述したステップ40を実行した後、本処理を終了する。
図26に戻り、ステップ21で、以上のように基本燃料噴射量Tcyl_bsを算出した後、ステップ22に進み、総補正係数KTOTALを算出する。具体的には、前述したように、各種の運転パラメータ(例えば吸気温TAや、大気圧PA、エンジン水温TW、アクセル開度APなど)に応じて、各種のマップを検索することで各種の補正係数を算出するとともに、これらの各種の補正係数を互いに乗算することにより、総補正係数KTOTALが算出される。
次いで、ステップ23に進み、前述した式(11)により、要求燃料噴射量Tcylを算出する。次に、ステップ24で、前述したように、要求燃料噴射量Tcylに、所定の燃料付着補正処理を施すことにより、燃料噴射量TOUTを算出する。その後、本処理を終了する。これにより、燃料噴射弁10の燃料噴射タイミングおよび開弁時間が、この燃料噴射量TOUTに基づく値になるように、燃料噴射弁10が制御される。その結果、空燃比フィードバック制御の実行条件が成立しているときには、検出空燃比KACTが目標空燃比KCMDに収束するように制御される。
次に、図28を参照しながら、ECU2において、タイマ設定により前述した制御周期ΔTkで実行される制御処理について説明する。この処理では、まず、ステップ50で、RAMに記憶されている、第1推定吸気量Gcyl_vt、第2推定吸気量Gcyl_afm、検出空燃比KACTおよび空燃比補正係数KAFなどの各種のデータを読み込む。
次いで、ステップ51に進み、フィードバック制御中フラグF_AFFBが「1」であるか否かを判別する。このフィードバック制御中フラグF_AFFBは、空燃比フィードバック制御の実行中であるときには「1」に、それ以外のときには「0」に設定される。
ステップ51の判別結果がYESで、空燃比フィードバック制御の実行中であるときには、ステップ52に進み、エンジン水温TWが所定の判定値TWREFより高いか否かを判別する。この所定値TWREFは、エンジン3の暖機運転の終了判定用の値である。
ステップ52の判別結果がYESで、エンジン3の暖機運転が終了しているときには、ステップ53に進み、パージ完了フラグF_CANIが「1」であるか否かを判別する。このパージ完了フラグF_CANIは、キャニスタ内に吸着した蒸発燃料を吸気通路内に戻すパージ動作が完了しているときには「1」に、それ以外のときには「0」に設定される。
ステップ53の判別結果がYESで、パージ動作が完了しているときには、ステップ54に進み、補正後バルブリフトLiftin_modの算出処理を実行する。この算出処理の詳細については後述する。
一方、以上のステップ51〜53のいずれかの判別結果がNOのときには、補正後バルブリフトLiftin_modの算出条件が成立していないとして、ステップ56に進み、補正後バルブリフトLiftin_modをその前回値Liftin_modzに設定する。以上のように、空燃比フィードバック制御中でない場合、エンジン3の暖機運転が終了していない場合、またはパージ動作が完了していない場合には、空燃比が不安定な制御状態となり、リフト補正値Dliftの算出精度が低下することで、補正後バルブリフトLiftin_modの算出精度が低下するおそれがあるので、それを回避するために、補正後バルブリフトLiftin_modを更新することなく、その前回値が用いられる。
ステップ54または56に続くステップ55で、後述するように、可変機構制御処理を実行した後、本処理を終了する。
次に、図29を参照しながら、前述した補正後バルブリフトLiftin_modの算出処理について説明する。まず、ステップ60で、前述した式(12),(13)により、空燃比誤差推定値Eafを算出する。
次に、ステップ61に進み、エンジン回転数NEに応じて、前述した図20のマップを検索することにより、連結重み関数Wcpiの値を算出する。その後、ステップ62に進み、前述した式(14)により、第2補正後バルブリフトLiftin_mod_pを算出する。
ステップ62に続くステップ63で、第2補正後バルブリフトLiftin_mod_pおよびエンジン回転数NEに応じて、前述した図21に示すマップを検索することにより、基本誤差重みW_baseを算出する。その後、ステップ64で、カム位相Cainおよびエンジン回転数NEに応じて、前述した図22に示すマップを検索することにより、誤差重み補正係数K_wを算出する。
次いで、ステップ65で、前述した式(15)により、誤差重みWを算出した後、ステップ66に進み、前述した式(16)〜(18)により、修正誤差Weafiを算出する。
ステップ66に続くステップ67で、前述した式(19)〜(26)により、基本局所補正値Dlift_bsiを算出する。その後、ステップ68に進み、第2補正後バルブリフトLiftin_mod_pおよびエンジン回転数NEに応じて、前述した図23に示すマップを検索することにより、基本感度R_baseを算出する。
次いで、ステップ69に進み、カム位相Cainおよびエンジン回転数NEに応じて、前述した図24に示すマップを検索することにより、感度補正係数K_rを算出する。その後、ステップ70で、前述した式(27)により、補正感度Rliftを算出する。
ステップ70に続くステップ71で、前述した式(28),(29)により、リフト補正値Dliftを算出する。次いで、ステップ72に進み、前述した式(30)により、補正後バルブリフトLiftin_modを算出する。その後、本処理を終了する。
次に、図30を参照しながら、前述した可変機構制御処理について説明する。本処理は、2つの可変機構をそれぞれ制御するための2つの制御入力U_Liftin,U_Cainを算出するものである。
この処理では、まず、ステップ80で、前述した可変機構故障フラグF_VDNGが「1」であるか否かを判別する。この判別結果がNOで、2つの可変機構がいずれも正常であるときには、ステップ81に進み、エンジン始動フラグF_ENGSTARTが「1」であるか否かを判別する。
このエンジン始動フラグF_ENGSTARTは、図示しない判定処理において、エンジン回転数NEおよびIG・SW29のON/OFF信号に応じて、エンジン始動制御中すなわちクランキング中であるか否かを判定することにより設定されるものであり、具体的には、エンジン始動制御中であるときには「1」に、それ以外のときには「0」にそれぞれ設定される。
ステップ81の判別結果がYESで、エンジン始動制御中であるときには、ステップ82に進み、目標バルブリフトLiftin_cmdを、エンジン水温TWに応じて、図31に示すマップを検索することにより算出する。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン水温TWが所定値TWREF1より高い範囲では、エンジン水温TWが低いほど、より大きな値に設定されているとともに、TW≦TWREF1の範囲では、所定値Liftinrefに設定されている。これは、エンジン水温TWが低い場合、可変バルブリフト機構50のフリクションが増大するので、それを補償するためである。
次いで、ステップ83で、目標カム位相Cain_cmdを、エンジン水温TWに応じて、図32に示すマップを検索することにより算出する。
このマップでは、目標カム位相Cain_cmdは、エンジン水温TWが所定値TWREF2よりも高い範囲では、エンジン水温TWが低いほど、より遅角側の値に設定されているとともに、TW≦TWREF2の範囲では、所定値Cainrefに設定されている。これは、エンジン水温TWが低い場合、カム位相Cainをエンジン水温TWが高い場合よりも遅角側に制御し、バルブオーバーラップを小さくすることで、吸気流速を上昇させ、燃焼の安定化を図るためである。
次に、ステップ84に進み、リフト制御入力U_Liftinを、下式(31)〜(34)に示す目標値フィルタ型の2自由度応答指定型制御アルゴリズムにより算出する。
同式(31)において、Krch_lfは所定の到達則ゲインを、Kadp_lfは所定の適応則ゲインをそれぞれ表しており、さらに、σ_lfは、式(32)のように定義される切換関数である。同式(32)において、pole_lfは、−1<pole_lf<0の関係が成立するように設定される切換関数設定パラメータであり、E_lfは、式(33)により算出される追従誤差である。同式(33)において、Liftin_cmd_fは、目標バルブリフトのフィルタ値であり、式(34)に示す一次遅れフィルタアルゴリズムにより算出される。同式(34)において、pole_f_lfは、−1<pole_f_lf<0の関係が成立するように設定される目標値フィルタ設定パラメータである。
次に、ステップ85に進み、位相制御入力U_Cainを、下式(35)〜(38)に示す目標値フィルタ型の2自由度応答指定型制御アルゴリズムにより算出する。
同式(35)において、Krch_caは所定の到達則ゲインを、Kadp_caは所定の適応則ゲインをそれぞれ表しており、さらに、σ_caは、式(36)のように定義される切換関数である。同式(36)において、pole_caは、−1<pole_ca<0の関係が成立するように設定される切換関数設定パラメータであり、E_caは、式(37)により算出される追従誤差である。同式(37)において、Cain_cmd_fは、目標カム位相のフィルタ値であり、式(38)に示す一次遅れフィルタアルゴリズムにより算出される。同式(38)において、pole_f_caは、−1<pole_f_ca<0の関係が成立するように設定される目標値フィルタ設定パラメータである。
ステップ85で、位相制御入力U_Cainを以上のように算出した後、本処理を終了する。
一方、ステップ81の判別結果がNOで、エンジン始動制御中でないときには、ステップ86に進み、アクセル開度APが所定値APREFより小さいか否かを判別する。この判別結果がYESで、アクセルペダルが踏まれていないときには、ステップ87に進み、始動後タイマの計時値Tastが所定値Tastlmtより小さいか否かを判別する。
この判別結果がYESで、Tast<Tastlmtのときには、触媒暖機制御を実行すべきであるとして、ステップ88に進み、目標バルブリフトLiftin_cmdを、始動後タイマの計時値Tastおよびエンジン水温TWに応じて、図33に示すマップを検索することにより算出する。同図において、TW1〜TW3は、TW1<TW2<TW3の関係が成立するエンジン水温TWの所定値を示しており、この点は以下の説明においても同様である。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン水温TWが低いほど、より大きな値に設定されている。これは、エンジン水温TWが低いほど、触媒の活性化に要する時間が長くなるので、排ガスボリュームを大きくすることで、触媒の活性化に要する時間を短縮するためである。これに加えて、このマップでは、目標バルブリフトLiftin_cmdは、始動後タイマの計時値Tastが小さい間は、計時値Tastが大きいほど、より大きな値に設定され、計時値Tastがある程度よりも大きい領域では、計時値Tastが大きいほど、より小さな値に設定されている。これは、触媒暖機制御の実行時間が経過するのに伴い、エンジン3の暖機が進むことで、フリクションが低下した場合において、吸入空気量を低減しないと、エンジン回転数NEを目標値に維持するために点火時期が過剰にリタード制御された状態となり、燃焼状態が不安定になってしまうので、それを回避するためである。
次いで、ステップ89で、目標カム位相Cain_cmdを、始動後タイマの計時値Tastおよびエンジン水温TWに応じて、図34に示すマップを検索することにより算出する。
このマップでは、目標カム位相Cain_cmdは、エンジン水温TWが低いほど、より進角側の値に設定されている。これは、エンジン水温TWが低いほど、上述したように触媒の活性化に要する時間が長くなるので、ポンピングロスを減少させ、吸入空気量を増大させることで、触媒の活性化に要する時間を短縮するためである。これに加えて、このマップでは、目標カム位相Cain_cmdは、始動後タイマの計時値Tastが小さい間は、計時値Tastが大きいほど、より遅角側の値に設定され、計時値Tastがある程度よりも大きい領域では、計時値Tastが大きいほど、より進角側の値に設定されている。これは、図33の説明で述べたのと同じ理由による。
次いで、前述したように、ステップ84,85を実行した後、本処理を終了する。
一方、ステップ86または87の判別結果がNOのとき、すなわちアクセルペダルが踏まれているとき、またはTast≧Tastlmtであるときには、ステップ90に進み、目標バルブリフトLiftin_cmdを、エンジン回転数NEおよびアクセル開度APに応じて、図35に示すマップを検索することにより算出する。同図において、AP1〜AP3は、AP1<AP2<AP3の関係が成立するアクセル開度APの所定値を示しており、この点は以下の説明においても同様である。
このマップでは、目標バルブリフトLiftin_cmdは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、より大きな値に設定されている。これは、エンジン回転数NEが高いほど、またはアクセル開度APが大きいほど、エンジン3に対する要求出力が大きいことで、より大きな吸入空気量が要求されることによる。
次いで、ステップ91で、目標カム位相Cain_cmdを、エンジン回転数NEおよびアクセル開度APに応じて、図36に示すマップを検索することにより算出する。このマップでは、目標カム位相Cain_cmdは、アクセル開度APが小さくかつ中回転域にあるときには、それ以外のときよりも進角側の値に設定されている。これは、そのような運転状態では、ポンピングロスを減少させる必要があるためである。
ステップ91に続いて、前述したように、ステップ84,85を実行した後、本処理を終了する。
一方、ステップ80の判別結果がYESで、2つの可変機構の少なくとも一方が故障しているときには、ステップ92に進み、リフト制御入力U_Liftinを所定の故障時用値U_Liftin_fsに、位相制御入力U_Cainを所定の故障時用値U_Cain_fsにそれぞれ設定した後、本処理を終了する。これにより、前述したように、バルブリフトLiftinが所定のロック値に、カム位相Cainが所定のロック値にそれぞれ保持され、それにより、停車中はアイドル運転やエンジン始動を適切に実行できると同時に、走行中は低速走行状態を維持できる。
本処理では、以上のように、リフト制御入力U_Liftinおよび位相制御入力U_Cainが算出される。そして、これらの制御入力U_Liftin,U_Cainが可変バルブリフト機構50および可変カム位相機構70にそれぞれ入力されることにより、吸入空気量が制御される。
次に、以上のように構成された第1実施形態の制御装置1による制御結果について説明する。図37は、第1実施形態の制御装置1による空燃比の制御結果例を示しており、図38は、比較のために、リフト補正値Dliftを値0に保持した場合、すなわちLiftin_mod=Liftinとした場合の制御結果例(以下「比較例」という)を示している。なお、これらの制御結果はいずれも、理解の容易化のために、目標空燃比KCMDを値1に設定した場合のものである。
両図を参照すると、図38の比較例では、空燃比補正係数KAFが目標空燃比KCMDからリッチ側に大きく乖離しかつリッチ側に保持された状態が頻繁に発生していることが判る。これに対して、図37の本実施形態の制御結果例では、空燃比補正係数KAFが、目標空燃比KCMD付近に保持されており、高レベルの制御精度を確保できていることが判る。
また、両図において、目標空燃比KCMDと検出空燃比KACTとの偏差すなわち空燃比誤差を参照すると、比較例では、比較的大きな空燃比誤差が頻繁に発生していることが判る。これに対して、本実施形態の制御結果例では、空燃比誤差が比較例よりも小さい値に抑制されており、高い制御精度を確保できていることが判る。以上のように、本実施形態のリフト補正値Dliftを用いることによって、リフト誤差を精度よく補償でき、それにより、空燃比制御において高い制御精度を確保できることが判る。
以上のように、第1実施形態の制御装置1によれば、制御誤差を表す空燃比誤差推定値Eafが、検出空燃比KACTおよび目標空燃比KCMDに応じて算出され、連結重み関数Wcpiが、図20のマップを検索することにより、エンジン回転数NEに応じて、算出されるとともに、修正誤差Weafiが、空燃比誤差推定値Eafに、連結重み関数Wcpi、誤差重みWおよび移行係数重みWkgを乗算することにより算出される。さらに、そのような修正誤差Weafiを値0に収束させるように(すなわち、空燃比誤差推定値Eafを所定の目標値としての値0に収束させるように)、基本局所補正値Dlift_bsiが算出され、補正感度Rliftおよび連結重み関数Wcpiを基本局所補正値Dlift_bsiに乗算することにより、局所補正値Dlift_lciが算出され、これらの局所補正値Dlift_lciの総和として、リフト補正値Dliftが算出されるとともに、このリフト補正値DliftによりバルブリフトLiftinを補正した補正後バルブリフトLiftin_modと、図11のマップとを用いて、第1推定吸気量Gcyl_vtが算出される。
すなわち、空燃比誤差推定値Eafが値0に収束するように修正された相関関係モデルを用いて、第1推定吸気量Gcyl_vtが算出されるので、外乱に起因して制御誤差が一時的に増大している場合に加えて、バルブリフトLiftinおよび/またはエンジン回転数NEの検出結果の信頼性の低下や可変バルブリフト機構50の動特性変化などに起因して、リフト誤差が一時的に増大するような条件下でも、そのように算出された第1推定吸気量Gcyl_vtにより、リフト誤差すなわち制御誤差を適切に補償することができる。これに加えて、相関関係モデルとして、フィードフォワード制御手法において一般的なマップ検索手法を用いているので、空燃比補正係数KAFによる空燃比フィードバック制御によって制御誤差を補償する場合と比べて、制御誤差を迅速に補償することができる。
また、修正誤差Weafiが、空燃比誤差推定値Eafに、連結重み関数Wcpi、誤差重みWおよび移行係数重みWkgを乗算することにより算出され、4つの連結重み関数Wcpiは、前述したように、エンジン回転数NEが変化し得る領域を区分した4つの領域に対応するように算出されるとともに、対応する領域では、値1以下の正の値に設定され、対応する領域以外では、値0に設定されているとともに、互いに重なり合う領域に対応する連結重み関数Wcpiの値の和は、各連結重み関数Wcpiにおける最大値1と等しくなるように設定されている。したがって、空燃比誤差推定値Eafを、4つの連結重み関数Wcpiの値を介して、4つの基本局所補正値Dlift_bsiに配分することができ、それにより、4つの基本局所補正値Dlift_bsiの各々によって、4つの領域の各々における相関関係モデルのずれ度合を適切に修正することができる。特に、エンジン回転数NEおよびバルブリフトLiftinと、基本推定吸気量Gcyl_vt_baseとの間の実際の相関関係に対するずれが、エンジン回転数NEの4つの領域毎にずれの変化方向が異なる場合でも、そのようなずれに対応しながら、相関関係モデルを領域毎に適切に修正できる。
また、基本局所補正値Dlift_bsiに、補正感度Rliftおよび連結重み関数Wcpiを乗算することにより、局所補正値Dlift_lciが算出され、これらの局所補正値Dlift_lciの総和として、リフト補正値Dliftが算出されるので、リフト補正値Dliftを、4つの基本局所補正値Dlift_bsiを連続的に結合させた値として算出できる。それにより、4つの基本局所補正値Dlift_bsiが互いに異なる値を示している状態で、エンジン回転数NEが急変したときでも、それに伴って連続的に変化するように、リフト補正値Dliftを算出することができる。したがって、そのようなリフト補正値DliftでバルブリフトLiftinを補正した補正後バルブリフトLiftin_modを用いることにより(すなわち相関関係モデルを修正することにより)、エンジン回転数NEが急変したときでも、第1推定吸気量Gcyl_vtを滑らかに段差なく変化するように算出することができる。その結果、エンジン回転数NEの急変に伴い、空燃比誤差推定値Eafすなわち制御誤差が一時的に増大するような条件下でも、第1推定吸気量Gcyl_vtの不適切な急変やステップ状の急変を回避することができ、制御精度および制御の安定性を向上させることができる。
さらに、誤差重みWが、空燃比誤差推定値Eafに対するカム位相Cainおよびエンジン回転数NEの影響度合を反映するように算出されるので、そのような誤差重みWを用いることにより、第1推定吸気量Gcyl_vtを、空燃比誤差推定値Eafに対するカム位相Cainおよびエンジン回転数NEの影響度合が反映された値として算出することができる。これに加えて、補正感度Rliftが、空燃比誤差推定値Eafに対するリフト誤差の感度を表す値として算出されるので、そのような補正感度Rliftを用いることにより、第1推定吸気量Gcyl_vtを、空燃比誤差推定値Eafに対するリフト誤差の感度が反映された値として算出することができるとともに、リフト誤差の感度が低い条件下での、リフト補正値Dliftによる空燃比誤差推定値Eafの過補償を回避することができる。以上により、第1推定吸気量Gcyl_vtの、空燃比誤差推定値Eafすなわち空燃比誤差の補償精度を向上させることができ、それにより、制御精度をより一層、向上させることができる。
なお、第1実施形態は、基本局所補正値Dlift_bsiの算出アルゴリズムとして、前述した式(19)〜(26)に示す制御アルゴリズムを用いた例であるが、これに代えて、下式(39)〜(47)に示す、適応外乱オブザーバとスライディングモード制御アルゴリズムを組み合わせて適用した制御アルゴリズムにより、基本局所補正値Dlift_bsiを算出してもよい。
上式(42)のσi_hatは、切換関数の推定値であり、Ulsiは、外乱推定値である。この外乱推定値Ulsiは、式(43),(44)に示す固定ゲイン式の同定アルゴリズムにより算出される。同式(43)のE_sigiは、推定誤差を表している。また、式(44)のPは、一定値の同定ゲインである。なお、上式(42)〜(46)が適応外乱オブザーバにおける外乱推定値Ulsiの算出アルゴリズムである。
以上の基本局所補正値Dlift_bsiの算出アルゴリズム(39)〜(47)では、外乱推定値Ulsiが積分項に相当し、式(44)で、外乱推定値の前回値Ulsi(k−1)に忘却係数λが乗算されているとともに、基本局所補正値Dlift_bsiの絶対値が大きい場合には、忘却係数λが0<λ<1の範囲内の値に設定される。それにより、前述したような忘却係数λの忘却効果によって、空燃比補正係数KAFおよび基本局所補正値Dlift_bsiのそれぞれの制御アルゴリズムにおける積分項Uadp’,Ulsiが、互いに干渉して振動的な挙動を示したり、それぞれの絶対値が肥大化したりするのを回避でき、それにより、相関関係モデルが不適切に修正されるのを回避できる。その結果、第1推定吸気量Gcyl_vtの算出精度を向上させることができ、過渡時の制御性を向上させることができる。また、基本局所補正値の前回値Dlift_bsi(k−1)の絶対値が小さい場合には、忘却係数λが値1に設定されるので、修正誤差Weafiが値0近傍になったときでも、基本局所補正値Dlift_bsiを適切な値に保持することができる。それにより、修正誤差Weafiが増大し始めたときの応答性を向上させることができ、制御精度を向上させることができる。
以上に加えて、外乱推定値Ulsiが適応外乱オブザーバにおける固定ゲイン式の同定アルゴリズムにより算出されるので、適応則入力Uadpiを用いる第1実施形態の制御アルゴリズムと比べて、基本局所補正値Dlift_bsiにおける積分的な揺らぎ挙動およびオーバーシュート挙動の抑制能力をさらに向上させることができる。
また、第1実施形態は、応答指定型制御アルゴリズムとして、前述した式(19)〜(26)に示す、スライディングモード制御アルゴリズムを適用した制御アルゴリズムを用いて、基本局所補正値Dlift_bsiを算出した例であるが、応答指定型制御アルゴリズムとして、バックステッピング制御アルゴリズムを適用した制御アルゴリズムを用いてもよい。このように、基本局所補正値Dlift_bsiの算出アルゴリズムとして、バックステッピング制御アルゴリズムを適用した制御アルゴリズムを用いた場合でも、第1実施形態の式(19)〜(26)に示す制御アルゴリズムを用いた場合と同様の作用効果を得ることができる。
さらに、第1実施形態は、基本局所補正値Dlift_bsiの算出アルゴリズムとして、前述した式(19)〜(26)を用いた例であるが、基本局所補正値Dlift_bsiの算出アルゴリズムはこれに限らず、修正誤差Weafiを値0に収束させるように、基本局所補正値Dlift_bsiを算出できるものであればよい。例えば、基本局所補正値Dlift_bsiの算出アルゴリズムとして、PID制御アルゴリズム、最適制御アルゴリズムおよびH∞制御アルゴリズムなどを用いてもよい。このように、PID制御アルゴリズム、最適制御アルゴリズムおよびH∞制御アルゴリズムなどを用いて、基本局所補正値Dlift_bsiを算出した場合、第1実施形態の式(19)〜(26)の制御アルゴリズムと比べて、修正誤差Weafiの値0に対するオーバーシュートの抑制効果の低下や、ロバスト性の低下を招く可能性があり、その点において、第1実施形態の制御アルゴリズムの方が優れている。
また、第1実施形態は、第2入力値としての空燃比補正係数KAFを算出する所定のフィードバック制御アルゴリズムとして、前述した式(6)〜(10)の制御アルゴリズムを用いた例であるが、本願発明の第2入力値を算出するための所定のフィードバック制御アルゴリズムはこれに限らず、第2入力値を制御量を目標制御量に収束させるように算出できるものであればよい。例えば、第2入力値としての空燃比補正係数KAFを、特開2006−2591号公報に開示されたような、セルフチューニングレギュレータ(Self Tuning Regulator)による算出アルゴリズムにより算出してもよい。また、第2入力値としての空燃比補正係数KAFの算出アルゴリズムとして、前述した式(39)〜(47)の制御アルゴリズムを用いてもよく、バックステッピング制御アルゴリズム、PID制御アルゴリズム、最適制御アルゴリズムおよびH∞制御アルゴリズムなどを用いてもよい。
さらに、第1実施形態は、補正感度Rliftを、図23,24によって構成される応答曲面モデルを用いて算出した例であるが、補正感度Rliftを、図23,24によって構成される応答曲面モデルに代えて、図21,22によって構成される応答曲面モデルを用いて算出してもよい。すなわち、補正感度Rliftを誤差重みWに等しい値として算出してもよい。これに加えて、リフト誤差の感度が低い条件下での、リフト補正値Dliftによる空燃比誤差推定値Eafの過補償を回避する必要がない場合には、式(27)を省略し、式(28)において、Rlift=1と設定してもよい。
一方、第1実施形態は、所定の複数の関数として、連結重み関数Wcpiを用いた例であるが、本願発明の所定の複数の関数はこれに限らず、参照パラメータが変化し得る領域を区分した複数の領域にそれぞれ対応して、対応する領域においてのみ値0以外の値に設定されかつ対応する領域以外において値0に設定されているとともに、互いに重なり合う領域において、この重なり合う領域に対応する関数の値の総和の絶対値が、各関数における最大値の絶対値と等しくなるように設定されているものであればよい。例えば、所定の複数の関数として、最大値が値1以外の正値または負値に設定されたものを用いてもよい。
また、所定の複数の関数として、例えば、図39に示すような、シグモイド関数を用いた曲線状の連結重み関数Wcpiを用いてもよい。同図において、NEx10〜16は、エンジン回転数NEの所定値であり、NEx10<NEx11<NEx12<NEx13<NEx14<NEx15の関係が成立するように設定されている。この4つの連結重み関数Wcpiはそれぞれ、エンジン回転数NEが変化し得る領域を、0≦NE<NEx11,0<NE<NEx13,NEx11<NE<NEx15,NEx13<NE≦NEx15の4つの領域に区分した場合において、これらの4つの領域に対応するように設定されているとともに、対応する領域では、値1以下の正の値に設定され、対応する領域以外では、値0に設定されている。このような連結重み関数Wcpiを用いた場合にも、第1実施形態の図20の連結重み関数Wcpiと同じ効果を得ることができる。
さらに、以上の図20,39は、連結重み関数Wcpiの値を、エンジン回転数NEの領域に対応するように設定した例であるが、連結重み関数Wcpiの値を、バルブリフトLiftinの複数の領域に対応するように設定してもよい。
一方、第1実施形態は、参照パラメータとして、エンジン回転数NEおよびバルブリフトLiftinを用いた例であるが、本願発明の参照パラメータはこれに限らず、制御量以外のパラメータであればよい。例えば、可変カム位相機構70を有するエンジン3の空燃比を制御する場合において、カム位相Cainを参照パラメータとして用いてもよい。さらに、可変バルブリフト機構50および可変カム位相機構70などを備えておらず、スロットル弁機構のみを備えたエンジンの空燃比を制御する場合には、スロットル弁機構の開度を参照パラメータとして用いてもよい。これに加えて、吸気管内圧センサおよびクランク角センサを備え、これらのパラメータに応じて空燃比を制御する、いわゆるスピードデンシティ方式のエンジンの場合には、吸気管内圧およびエンジン回転数NEを参照パラメータとして用いてもよい。
以下、図40を参照しながら、本発明の第2実施形態に係る制御装置1Aについて説明する。この制御装置1Aは、第1実施形態の制御装置1と比べて、リフト補正値Dliftの算出手法に関する構成のみが異なっているので、以下、その異なる点についてのみ説明する。なお、以下の説明では、第1実施形態と同じ構成に関しては、同じ符号を付すとともに、その説明は省略する。
同図に示すように、この制御装置1Aは、第1実施形態の空燃比コントローラ100に代えて、空燃比コントローラ100Aを備えている。この空燃比コントローラ100Aは、具体的にはECU2により構成されており、第1実施形態の空燃比コントローラ100のリフト補正値算出部120に代えて、リフト補正値算出部130を備えている。なお、本実施形態では、空燃比コントローラ100Aが、第1入力値算出手段、第2入力値算出手段および制御入力算出手段に相当し、リフト補正値算出部130が補正値算出手段に相当する。
このリフト補正値算出部130は、図41に示すように、連結重み関数算出部131、誤差重み算出部132、移行係数重み算出部133、修正誤差算出部134、基本局所補正値算出部135、補正感度算出部136および最終値算出部137を備えている。
まず、連結重み関数算出部131では、エンジン回転数NEおよびバルブリフトLiftinに応じて、図42に示すマップを検索することにより、連結重み関数Wcpijが算出される。このマップでは、エンジン回転数NEおよびバルブリフトLiftinの領域がそれぞれ、I(Iは2以上の整数)個の所定値NEi(i=1〜I)およびJ(Jは2以上の整数)個の所定値Liftinj(j=1〜J)によって均等に区分されているとともに、連結重み関数Wcpijは、連続する3つのエンジン回転数NEiの値と、連続する3つのバルブリフトLiftinjの値との組み合わせで規定される複数の領域に対応してそれぞれ設定されている。なお、本実施形態では、連結重み関数Wcpijが所定の複数の関数に相当する。
また、連結重み関数Wcpijの各々は、対応する領域内におけるエンジン回転数NEおよびバルブリフトLiftinの値に対して、その領域の中心で最大値1になり、中心以外では四角錐の斜面状に変化するとともに、その領域以外では値0になる特性を有している。これに加えて、連結重み関数Wcpijがそれぞれ対応する複数の領域では、隣り合う領域が互いに重なり合っており、それにより、隣り合う連結重み関数Wcpijは、四角錐の斜面状に変化する部分で互いに交差している。
例えば、図43に示すように、NEf-1<NE<NEf+1かつLifting-1<Liftin<Lifting+1の領域に対応する連結重み関数Wcpfgは、NE,Liftinがその領域の中心の値のとき、すなわちNE=NEfかつLiftin=Liftingのときに最大値1を示し、中心以外のNE,Liftinの値に対しては、連結重み関数Wcpfgの値が四角錐の斜面状に変化するように設定されている。ここで、f,gは0<f<Iおよび0<g<Jがそれぞれ成立する正の整数である。さらに、連結重み関数Wcpfgは、2つの値NE,Liftinが上記領域以外の値のとき、すなわちNE≦NEf-1、NEf+1≦NE、Liftin≦Lifting-1またはLifting+1≦Liftinのときには、値0を示すように設定されている。
また、連結重み関数Wcpfgは、これと隣り合う領域にそれぞれ対応する連結重み関数Wcpf-1g,Wcpf+1gに対して、互いの領域が重なり合う部分すなわち斜面状に変化する部分でその斜面同士が交差している。したがって、図43に示すように、NExをNEfとNEf+1の間の中央の値とすると、例えば、NE=NExおよびLiftin=Liftingのときには、2つの連結重み関数Wcpfg,Wcpf+1gの値は、Wcpfg=Wcpf+1g=0.5となるとともに、それら以外の連結重み関数Wcpijの値はいずれも値0となる。これに加えて、NEx<NE<NEf+1およびLiftin=Liftingのときには、連結重み関数Wcpfgの値は、0<Wcpfg<0.5となり、連結重み関数Wcpf+1gの値は、1−Wcpfgとなるとともに、それら以外の連結重み関数Wcpijの値はいずれも値0となる。
さらに、図44に示すように、連結重み関数Wcpfgは、これと隣り合う領域にそれぞれ対応する連結重み関数Wcpfg-1,Wcpfg+1に対しても、互いの領域が重なり合う部分すなわち斜面状に変化する部分でその斜面同士が交差している。したがって、同図に示すように、LiftinyをLifting-1とLiftingの間の中央の値とすると、例えば、NE=NEfおよびLiftin=Liftinyのときには、2つの連結重み関数Wcpfg-1,Wcpfgの値は、Wcpfg-1=Wcpfg=0.5となるとともに、それら以外の連結重み関数Wcpijの値はいずれも値0となる。これに加えて、NE=NEfおよびLiftiny<Liftin<Liftingのときには、連結重み関数Wcpfg-1の値は、0<Wcpfg-1<0.5となり、連結重み関数Wcpfgの値は、1−Wcpfg-1となるとともに、それら以外の連結重み関数Wcpijの値はいずれも値0となる。
また、図示しないが、連結重み関数Wcpfgは、これと隣り合う領域にそれぞれ対応する連結重み関数Wcpf+1g-1,Wcpf-1g+1に対しても、互いの領域が重なり合う斜面状に変化する部分で互いの斜面同士が交差している。以上のように、隣り合う2つのエンジン回転数NEの値(例えばNEf,NEf+1)と、隣り合う2つのバルブリフトLiftinの値(例えばLifting,Lifting+1)で規定される四角形の領域では、4つの連結重み関数Wcpij(例えばWcpfg,Wcpfg+1,Wcpf+1g,Wcpf+1g+1)の斜面同士が互いに交差しているとともに、この領域内のエンジン回転数NEおよびバルブリフトLiftinの値に対して、これらの4つの連結重み関数Wcpijの総和は、値1になるように設定されている。なお、本実施形態では、図42のNE1およびLiftin1はそれぞれ値0に設定されており、したがって、NE<NE1またはLiftin<Liftin1の領域では、連結重み関数Wcpijの値は実際には設定されていない。
以上のように、この連結重み関数算出部131では、エンジン回転数NEおよびバルブリフトLiftinに応じて、図42のマップを検索することにより、連結重み関数Wcpijの値がそれぞれ算出される。すなわち、連結重み関数Wcpijは、I×J個の値を要素とする行列として算出される。
また、誤差重み算出部132では、前述した誤差重み算出部122と同じ手法により、誤差重みWが算出される。すなわち、前述した図21および図22のマップ検索値を用いて、前述した式(15)により、誤差重みWが算出される。さらに、移行係数重み算出部133では、前述した移行係数重み算出部123と同様に、前述した式(16)により、移行係数重みWkgが算出される。
次いで、修正誤差算出部134では、下式(48)により、総重みWg
ijを算出した後、下式(49)により、修正誤差Weaf
ijが算出される。
このように、修正誤差Weafijは、I×J個の値を要素とする行列として算出されるとともに、空燃比誤差推定値Eafを、3つの値Wcpij,W,Wkgで重み付けした値として算出される。なお、本実施形態では、修正誤差Weafijが複数の第1乗算値に相当する。
また、基本局所補正値算出部135では、下式(50)〜(57)に示すスライディングモ−ド制御アルゴリズムを適用した制御アルゴリズムにより、基本局所補正値Dlift_bsijが算出される。すなわち、基本局所補正値Dlift_bsijは、修正誤差Weafijを値0に収束させるための、I×J個の値を要素とする行列として算出される。
上式(50)において、σijは切換関数であり、Sは−1<S<0の関係が成立するように設定される切換関数設定パラメ−タである。この場合、切換関数設定パラメ−タSの設定値により、修正誤差Weafijの値0への収束速度が指定される。また、式(51)において、Urchijは到達則入力であり、Krchは所定の到達則ゲインを表している。さらに、式(52)において、Unlijは非線形入力であり、Knlは所定の非線形入力用ゲインを表している。また、式(52)におけるsgn(σij(k))は符号関数であり、その値は、σij(k)≧0のときにはsgn(σij(k))=1となり、σij(k)<0のときにはsgn(σij(k))=−1となるように設定される(なお、σij(k)=0のときに、sgn(σij(k))=0となるように設定してもよい)。
さらに、式(53)において、Uadpijは適応則入力であり、Kadpは所定の適応則ゲインを表している。また、式(53)のδijは、式(54)により算出される切換関数の積分値である。同式(54)のλは忘却係数であり、その値は式(55),(56)に示すように、基本局所補正値の前回値Dlift_bsij(k−1)と、前述した所定の上下限値Dlift_bs_H,Dlift_bs_Lとの比較結果により、値1または所定値λlmtに設定される。
また、式(57)に示すように、基本局所補正値Dlift_bsijは、到達則入力Urchij、非線形入力Unlijおよび適応則入力Uadpijの和として算出される。なお、本実施形態では、基本局所補正値Dlift_bsijが複数の補正値に相当する。
以上の基本局所補正値Dlift_bsijの算出アルゴリズムにおいて、忘却係数λを用いたのは、前述したように、2つの制御アルゴリズムにおける積分項としての適応則入力Uadp’,Uadpijが、互いに干渉して振動的な挙動を示したり、それぞれの絶対値が肥大化したりするのを回避し、それにより、相関関係モデルが不適切に修正されるのを回避することで、過渡時の制御性を向上させるためである。また、基本局所補正値の前回値Dlift_bsij(k−1)が上述した範囲にあるときには、前述したように、忘却係数λによる忘却効果をキャンセルするために、λ=1に設定されている。なお、忘却係数λによる忘却効果が常に不要な場合には、式(54)において、前回値Dlift_bsij(k−1)の大小にかかわらず、λ=1と設定すればよい。
一方、前述した補正感度算出部136では、前述した補正感度算出部126と同じ手法により、補正感度Rliftが算出される。すなわち、前述した図23および図24のマップ検索値を用いて、前述した式(27)により、補正感度Rliftが算出される。
次に、最終値算出部137では、下式(58)により、局所補正値Dlift_lc
ijを算出した後、下式(59)により、リフト補正値Dliftが最終的に算出される。なお、本実施形態では、局所補正値Dlift_lc
ijが複数の第2乗算値および複数の乗算値に相当する。
リフト補正値算出部130では、以上のように、リフト補正値Dliftが、基本局所補正値Dlift_bsijに補正感度Rliftおよび連結重み関数Wcpijを乗算した局所補正値Dlift_lcijの総和として算出される。この場合、基本局所補正値Dlift_bsijは、修正誤差Weafijを値0に収束させるための値であるので、リフト補正値DliftによりバルブリフトLiftinを補正することは、リフト誤差を解消するように、バルブリフトLiftinを補正または修正することに相当する。したがって、そのような補正後バルブリフトLiftin_modに応じて、前述した図43のマップを検索することにより、基本推定吸気量gcyl_vt_baseを算出することは、リフト誤差を解消するように修正されたマップすなわち相関関係モデルを用いて、第1入力値としての第1推定吸気量gcyl_vtを算出することに相当する。
以上のように、第2実施形態の制御装置1Aによれば、第1実施形態の連結重み関数Wcpiに代えて、連結重み関数Wcpijを用いて、リフト補正値Dliftが算出されるので、第1実施形態の制御装置1と同様の作用効果を得ることができる。これに加えて、連結重み関数Wcpijが、バルブリフトLiftinおよびエンジン回転数NEに応じて算出されるので、バルブリフトLiftinおよびエンジン回転数NEの領域毎の、リフト誤差の変化を適切に補償することができる。特に、バルブリフトLiftinおよびエンジン回転数NEと、基本推定吸気量Gcyl_vt_baseとの間の実際の相関関係に対するずれが、バルブリフトLiftinおよびエンジン回転数NEのI×J個の領域毎にずれの変化方向が異なる場合でも、そのようなずれに対応しながら、相関関係モデルを領域毎に適切に修正できる。それにより、エンジン回転数NEのみに応じて算出される連結重み関数Wcpiを用いた第1実施形態の場合と比べて、制御精度および制御の安定性をさらに向上させることができる。
なお、第2実施形態は、基本局所補正値Dlift_bsijの算出アルゴリズムとして、前述した式(50)〜(57)の制御アルゴリズムを用いた例であるが、これに代えて、下式(60)〜(68)に示す、適応外乱オブザーバとスライディングモード制御アルゴリズムを組み合わせて適用した制御アルゴリズムにより、基本局所補正値Dlift_bsijを算出してもよい。
上式(63)のσij_hatは、切換関数の推定値であり、Ulsijは、外乱推定値である。この外乱推定値Ulsijは、式(64),(65)に示す固定ゲイン式の同定アルゴリズムにより算出される。同式(64)のE_sigijは、推定誤差を表している。また、式(65)のPは、一定値の同定ゲインである。なお、上式(63)〜(67)が適応外乱オブザーバにおける外乱推定値Ulsijの算出アルゴリズムである。
この制御アルゴリズムの式(65)では、外乱推定値の前回値Ulsij(k−1)に忘却係数λが乗算されているとともに、基本局所補正値Dlift_bsijの絶対値が大きい場合には、忘却係数λが0<λ<1の範囲内の値に設定されるので、前述したような忘却効果により、空燃比補正係数KAFおよび基本局所補正値Dlift_bsijのそれぞれの制御アルゴリズムにおける積分項Uadp’,Ulsijが、互いに干渉して振動的な挙動を示したり、それぞれの絶対値が肥大化したりするのを回避でき、それにより、相関関係モデルが不適切に修正されるのを回避できる。その結果、第1推定吸気量Gcyl_vtの算出精度を向上させることができ、過渡時の制御性を向上させることができる。また、基本局所補正値の前回値Dlift_bsij(k−1)の絶対値が小さい場合には、忘却係数λが値1に設定されるので、修正誤差Weafijが値0近傍になったときでも、基本局所補正値Dlift_bsijを適切な値に保持することができる。それにより、修正誤差Weafijが増大し始めたときの応答性を向上させることができ、制御精度を向上させることができる。
以上に加えて、外乱推定値Ulsijが適応外乱オブザーバにおける固定ゲイン式の同定アルゴリズムにより算出されるので、適応則入力Uadpijを用いる第2実施形態の制御アルゴリズムと比べて、基本局所補正値Dlift_bsijにおける積分的な揺らぎ挙動およびオーバーシュート挙動の抑制能力をさらに向上させることができる。
また、第2実施形態は、参照パラメータとして、エンジン回転数NEおよびバルブリフトLiftinを用いた例であるが、本願発明の参照パラメータはこれに限らず、制御量以外のパラメータであればよい。例えば、可変カム位相機構70を有するエンジン3の空燃比を制御する場合において、エンジン回転数NEおよびバルブリフトLiftinに加えて、カム位相Cainを参照パラメータとしてさらに用いてもよい。さらに、可変バルブリフト機構50および可変カム位相機構70などを備えておらず、スロットル弁機構のみを備えたエンジンの空燃比を制御する場合には、スロットル弁機構の開度を参照パラメータとして用いてもよい。これに加えて、吸気管内圧センサおよびクランク角センサを備え、これらのパラメータに応じて空燃比を制御する、いわゆるスピードデンシティ方式のエンジンの場合には、吸気管内圧およびエンジン回転数NEを参照パラメータとして用いてもよい。
さらに、第2実施形態は、可変吸気機構の動作状態を表す動作状態パラメータとして、バルブリフトLiftinを用いた例であるが、本願発明の制御装置における動作状態パラメータはこれらに限らないことは言うまでもない。例えば、可変カム位相機構70を有するエンジン3の空燃比を制御する場合において、カム位相Cainを動作状態パラメータとして用いてもよい。さらに、可変バルブリフト機構50および可変カム位相機構70などを備えておらず、スロットル弁機構のみを備えたエンジンの空燃比を制御する場合には、スロットル弁機構の開度を動作状態パラメータとして用いてもよい。これに加えて、吸気管内圧センサおよびクランク角センサを備え、これらのパラメータに応じて空燃比を制御する、いわゆるスピードデンシティ方式のエンジンの場合には、吸気管内圧およびエンジン回転数NEを動作状態パラメータとして用いてもよい。
一方、第2実施形態は、連結重み関数算出部131で、連結重み関数Wcpijの算出マップとして、図42のマップを用いた例であるが、連結重み関数Wcpijの算出マップとして、連結重み関数Wcpijの値が、第2補正後バルブリフトLiftin_mod_pおよびエンジン回転数NEに応じて設定されたものを用いてもよい。すなわち、図42で、連結重み関数Wcpijの値が、バルブリフトLiftinに代えて、第2補正後バルブリフトLiftin_mod_pに応じて設定されているものを用いてもよい。
また、第2実施形態は、所定の複数の関数として、連結重み関数Wcpijを用いた例であるが、本願発明の所定の複数の関数はこれに限らず、参照パラメータが変化し得る領域を区分した複数の領域にそれぞれ対応して、対応する領域においてのみ値0以外の値に設定されかつ対応する領域以外において値0に設定されているとともに、互いに重なり合う領域において、この重なり合う領域に対応する関数の値の総和の絶対値が、各関数における最大値の絶対値と等しくなるように設定されているものであればよい。例えば、所定の複数の関数として、最大値が値1以外の正値または負値に設定されたものを用いてもよい。
次に、本発明の第3実施形態に係る制御装置1B(図45参照)について説明する。なお、以下の説明では、第1実施形態と同じ構成に関しては、同じ符号を付すとともに、その説明は省略する。この制御装置1Bは、前述した自動変速機付きのエンジン3を前側に搭載するとともに、いずれも図示しない後輪および前輪をそれぞれ駆動輪および非駆動輪とする、いわゆるFR方式の車両(図示せず)に適用されたものであり、具体的には、この車両のトラクションコントロールを実行するものである。
なお、トラクションコントロールとは、車両の加速時、エンジントルクが過大になり、駆動輪が非駆動輪に対して空転する状態が発生したときに、エンジントルクを低減することによって、空転状態を回避し、車両の安定性の確保および加速性の向上を両立させるようにする制御手法のことである。
図45に示すように、この制御装置1Bは、ECU2を備えており、このECU2には、前述したセンサ20〜27などに加えて、左右の前輪速センサ80,81および左右の後輪速センサ82,83が接続されている。左右の前輪速センサ80,81はそれぞれ、左右の前輪速を表す検出信号をECU2に出力し、左右の後輪速センサ82,83はそれぞれ、左右の後輪速を表す検出信号をECU2に出力する。
ECU2は、左右の前輪速センサ80,81の検出信号に基づき、左右の前輪速を算出するとともに、これらの相加平均値を、非駆動輪速Ws_refとして算出する。さらに、ECU2は、左右の後輪速センサ82,83の検出信号に基づき、左右の後輪速を算出するとともに、これらの相加平均値を、駆動輪速Ws_actとして算出する。なお、本実施形態では、左右の前輪速センサ80,81が参照パラメータ検出手段に相当し、非駆動輪速Ws_refが参照パラメータおよび第2車輪速度に相当し、左右の後輪速センサ82,83が制御量検出手段に相当し、駆動輪速Ws_actが制御量および第1車輪速度に相当する。
また、図46に示すように、制御装置1Bは、トラクションコントローラ200を備えている。このトラクションコントローラ200は、以下に述べるように、駆動輪の空転状態を回避し、車両の安定性の確保および加速性の向上を両立できるようなエンジン3のトルクとして、エンジントルクTrqを算出するものであり、具体的にはECU2によって構成されている。なお、本実施形態では、トラクションコントローラ200が、第1入力値算出手段、第2入力値算出手段および制御入力算出手段に相当し、エンジントルクTrqが制御入力および内燃機関の出力に相当する。
同図に示すように、トラクションコントローラ200は、目標車輪速算出部201、車輪速フィードバックコントローラ202、最大/最小トルク算出部203、正規化要求駆動力算出部204、乗算要素205、フィードフォワードトルク算出部206、加算要素207およびトルク補正値算出部210を備えている。
まず、目標車輪速算出部201では、下式(69)により、目標車輪速Ws_cmdが算出される。なお、本実施形態では、目標車輪速算出部201が目標制御量設定手段に相当し、目標車輪速Ws_cmdが目標制御量に相当する。
上式(69)のOptSlipは、駆動輪と非駆動輪の間において許容可能なスリップ量に相当する所定のスリップオフセット値であり、本実施形態では、一定値(例えば10km/h)に設定されている。なお、このスリップオフセット値OptSlipを、所定のパラメータ(例えば、非駆動輪速Ws_ref、路面の摩擦抵抗係数の推定値、ヨーレートセンサの検出信号および車体のスリップ角センサの検出信号など)に応じて、マップ検索や所定の算出式により決定してもよい。
また、車輪速フィードバックコントローラ202では、目標車輪速Ws_cmdおよび駆動輪速Ws_actに応じて、後述する手法により、トルクフィードバック値Trq_fbが算出される。なお、本実施形態では、トルクフィードバック値Trq_fbが第2入力値に相当する。
さらに、トルク補正値算出部210では、トルクフィードバック値Trq_fb、エンジン回転数NEおよび非駆動輪速Ws_refに応じて、後述する手法により、トルク補正値Ktrqが算出される。なお、本実施形態では、トルク補正値算出部210が補正値算出手段に相当する。
一方、最大/最小トルク算出部203では、エンジン回転数NEに応じて、図47に示すマップを検索することにより、最大トルクTrq_maxおよび最小トルクTrq_minがそれぞれ算出される。同図のNEhighは、所定の最大許容回転数(例えば7000rpm)を表している。これらの値Trq_max,Trq_minは、そのエンジン回転数NEにおいて達成可能なエンジントルクの最大値および最小値に相当する。また、このマップでは、最小トルクTrq_minが負値に設定されている。これは、最小トルクTrq_minが、アクセルペダルが踏まれていない、減速フューエルカット運転中でのエンジンブレーキ状態におけるエンジントルクに相当するためである。
なお、本実施形態では、クランク角センサ20および最大/最小トルク算出部203が参照パラメータ検出手段に相当し、最大トルクTrq_maxが参照パラメータおよび内燃機関の出力の制限値に相当する。
また、正規化要求駆動力算出部204では、アクセル開度APに応じて、図48に示すマップを検索することにより、正規化要求駆動力Ktrq_apが算出される。同図のAPmaxは、アクセル開度の最大値(100%)を表している。また、正規化要求駆動力Ktrq_apは、アクセル開度APに基づいて決定される要求駆動力Trq_apを、AP=APmaxのときの要求駆動力Trq_apmaxを基準として正規化した値、すなわちKtrq_ap=Trq_ap÷Trq_apmaxが成立する値を表している。
さらに、乗算要素205では、下式(70)により、補正後最大トルクTrq_max_modが算出される。すなわち、補正後最大トルクTrq_max_modは、最大トルクTrq_maxをトルク補正値Ktrqで補正することにより算出される。
また、前述したフィードフォワードトルク算出部206では、下式(71)により、フィードフォワードトルクTrq_ffが算出される。
なお、本実施形態では、フィードフォワードトルクTrq_ffが第1入力値に相当する。さらに、式(70),(71)を用いて、フィードフォワードトルクTrq_ffを
算出することが、相関関係モデルの出力を補正することに相当する。
そして、加算要素207において、下式(72)により、エンジントルクTrqが最終的に算出される。すなわち、エンジントルクTrqは、トルクフィードバック値Trq_fbとフィードフォワードトルクTrq_ffの和として算出される。
次に、前述した車輪速フィードバックコントローラ202について説明する。この車輪速フィードバックコントローラ202では、以下の式(73)〜(83)に示す、目標値フィルタ型2自由度スライディングモード制御アルゴリズムと、適応外乱オブザーバを組み合わせて適用した制御アルゴリズムにより、トルクフィードバック値Trq_fbが算出される。
この制御アルゴリズムでは、まず、式(73)に示す一次遅れタイプのローパスフィルタアルゴリズムにより、目標車輪速のフィルタ値Ws_cmd_fが算出される。同式(73)において、Rtは、目標値フィルタ設定パラメータであり、−1<Rt<0の関係が成立する値に設定される。この場合、目標値フィルタ設定パラメータRtの設定値により、フィルタ値Ws_cmd_fの目標車輪速Ws_cmdへの追従速度が決定される。
次いで、式(74)〜(77)に示すスライディングモード制御アルゴリズムを適用した制御アルゴリズムにより、到達則入力Urch_tおよび非線形入力Unl_tが算出される。同式(74)のEtは、追従誤差であり、式(75)のσtは、切換関数である。また、式(75)のStは、切換関数設定パラメータであり、−1<St<0の関係が成立する値に設定されている。この場合、切換関数設定パラメータStの設定値により、追従誤差Etの値0への収束速度が指定される。さらに、式(76)のKrch_tは、所定の到達則ゲインを表しており、式(77)のKnl_tは、所定の非線形入力用ゲインを表している。さらに、式(77)におけるsgn(σt(k))は符号関数であり、その値は、σt(k)≧0のときにはsgn(σt(k))=1となり、σt(k)<0のときにはsgn(σt(k))=−1となるように設定される(なお、σt(k)=0のときに、sgn(σt(k))=0となるように設定してもよい)。
次に、式(78)〜(82)に示す適応外乱オブザーバを適用した制御アルゴリズムにより、外乱推定値Uls_tが算出される。同式(78)のσt_hatは、切換関数の推定値であり、Uls_tは、外乱推定値である。この外乱推定値Uls_tは、式(79),(80)に示す固定ゲイン式の同定アルゴリズムにより算出される。同式(79)のEt_sigは、推定誤差を表しており、式(80)のPtは、一定値の同定ゲインである。
さらに、式(80)のλtは忘却係数であり、その値は式(81),(82)に示すように、外乱推定値の前回値Uls_t(k−1)と所定の上下限値Uls_t_H,Uls_t_Lとの比較結果により、値1または所定値λtlmtに設定される。この上限値Uls_t_Hは正の所定値に設定され、下限値Uls_t_Lは負の所定値に設定されるとともに、所定値λtlmtは、0<λtlmt<1が成立するような値に設定される。
そして、トルクフィードバック値Trq_fbは、最終的に、式(83)に示すように、到達則入力Urch_t、非線形入力Unl_tおよび外乱推定値Uls_tの和として算出される。
以上のように、車輪速フィードバックコントローラ202では、トルクフィードバック値Trq_fbが式(73)〜(83)に示す制御アルゴリズムにより算出されるので、このトルクフィードバック値Trq_fbは、駆動輪速Ws_actを目標車輪速のフィルタ値Ws_cmd_fに収束させるための値、すなわち駆動輪速Ws_actを目標車輪速Ws_cmdに収束させるための値として算出される。この場合、目標車輪速Ws_cmdは、前述したように、非駆動輪速Ws_refにスリップオフセット値OptSlipを加算することにより算出されるので、Ws_act≒Ws_cmdとなった状態では、Ws_ref−Ws_act≒OptSlipが成立する状態となる。
また、忘却係数λtを用いながら、トルクフィードバック値Trq_fbが算出されるので、外乱推定値の前回値Uls_t(k−1)の絶対値が大きい場合には、前述した忘却効果により、外乱推定値Uls_tすなわちトルクフィードバック値Trq_fbが積分的に増大するのを回避できることで、制御系の過渡応答の安定性を確保することができる。また、外乱推定値の前回値Uls_t(k−1)の絶対値が小さい場合には、忘却係数λtが値1に設定されるので、追従誤差Etが値0に収束したときでも、トルクフィードバック値Trq_fbを、追従誤差Etを迅速に補償可能な適切な値に保持することができ、それにより、追従誤差Etが増大し始めたときの応答性を向上させることができる。
次に、図49を参照しながら、前述したトルク補正値算出部210について説明する。このトルク補正値算出部210は、以下に述べるように、トルク誤差Etfを補償すべき制御誤差と見なして、これが値0になるように、最大トルクTrq_maxを補正するためのトルク補正値Ktrqを算出するものである。トルク補正値算出部210は、同図に示すように、連結重み関数算出部211、誤差重み算出部212、トルク誤差算出部213、修正トルク誤差算出部214、基本局所補正値算出部215、トルク補正感度算出部216および最終値算出部217を備えている。
まず、連結重み関数算出部211では、エンジン回転数NEに応じて、図50に示すマップを検索することにより、連結重み関数Wcviが算出される。なお、本実施形態では、連結重み関数Wcviが所定の複数の関数に相当する。このマップでは、連結重み関数Wcviの値は、前述した連結重み関数Wcpiと同様に設定されている。すなわち、連結重み関数Wcviは、4つの値を要素とするベクトルとして算出される。
これらの4つの連結重み関数Wcviの値はそれぞれ、エンジン回転数NEが変化し得る領域を0≦NE<NEx3,NEx1<NE<NEx5,NEx3<NE<NEx7,NEx5<NE≦NEx8の4つの領域に区分した場合において、これらの4つの領域に対応するように設定されているとともに、対応する領域では、値1以下の正の値に設定され、対応する領域以外では、値0に設定されている。
なお、連結重み関数Wcviとして、図50に示す4個の値を要素とするものに代えて、2個または3個の値や、5個以上の値を要素とする連結重み関数Wcviを用いてもよい。その場合には、エンジン回転数NEの領域を、要素の数に応じて、互いに重なり合うように設定すればよい。
また、誤差重み算出部212では、エンジン回転数NEおよび非駆動輪速Ws_refに応じて、図51に示すマップを検索することにより、誤差重みWtが算出される。この誤差重みWtは、駆動輪速Ws_actの変化量ΔWs_actとエンジントルクTrqの変化量ΔTrqの比ΔWs_act/ΔTrqを、所定の駆動輪速&所定のエンジントルクでの比ΔWs_act_ref/ΔTrq_refの絶対値|ΔWs_act_ref/ΔTrq_ref|を基準として正規化した値、すなわち、Wt=(ΔWs_act/ΔTrq)÷(|ΔWs_act_ref/ΔTrq_ref|)が成立する値を表している。
この誤差重みWtは、アクセル開度APが急増するのに起因して、エンジン回転数NEとフィードフォワードトルクTrq_ffとの間の相関関係、すなわち最大トルクTrq_maxとフィードフォワードトルクTrq_ffとの間の相関関係が変化し、それにより、トルク誤差Etfすなわち駆動輪のスリップが発生したと想定される場合において、このトルク誤差Etfが、エンジントルクTrqの過大に起因して発生した確率を表している。具体的には、誤差重みWtは、トルク誤差EtfがエンジントルクTrqの過大に起因して発生した確率が高いほど、より大きい値に設定されている。言い換えれば、誤差重みWtは、トルク誤差Etfに対する最大トルクTrq_maxの影響度合を表す値として算出される。また、このような、トルク誤差Etfに対する最大トルクTrq_maxの影響度合は、トランスミッションにおけるギヤ比によっても変化するので、同図では、誤差重みWtが、エンジン回転数NEおよび非駆動輪速Ws_refに応じて設定されている。
同図において、Ws_ref1〜3は、Ws_ref1<Ws_ref2<Ws_ref3が成立する非駆動輪速Ws_refの所定値を表している。このマップでは、誤差重みWtは、非駆動輪速Ws_refが高いほど、より小さい値に設定されている。これは、非駆動輪速Ws_refが高いことで、トランスミッションにおけるギヤ比が高いほど、駆動輪速のスリップが発生しにくいので、それに応じて、トルク補正値Ktrqによる最大トルクTrq_maxの減少側への補正量をより小さくするためである。また、誤差重みWtは、エンジン回転数NEに対して、エンジン性能曲線におけるトルク曲線と同じような傾向に設定されている。これは、誤差重みWtがトルク誤差Etfに対する最大トルクTrq_maxの影響度合を表す値であることによる。
さらに、トルク誤差算出部213では、下式(84)により、トルク誤差Etfが算出される。
上式(84)のTrq_fb_cmdは、トルクフィードバック値Trq_fbの目標となる目標トルクフィードバック値であり、一定値(例えば値0)に設定される。なお、本実施形態では、目標トルクフィードバック値Trq_fb_cmdが所定の目標値に相当し、トルク誤差Etfが第2偏差に相当する。
次いで、修正トルク誤差算出部214では、下式(85)により、修正トルク誤差Wetrq
iが算出される。すなわち、修正トルク誤差Wetrq
iは、4つの値を要素とするベクトルとして算出される。なお、本実施形態では、修正トルク誤差Wetrq
iが複数の第1乗算値に相当する。
次いで、基本局所補正値算出部215では、下式(86)〜(93)に示すスライディングモード制御アルゴリズムを適用した制御アルゴリズムにより、基本局所補正値Dktrq_bsiが算出される。すなわち、基本局所補正値Dktrq_bsiは、4つの値を要素とするベクトルとして算出される。なお、本実施形態では、基本局所補正値Dktrq_bsiが複数の補正値に相当する。
上式(86)において、σviは切換関数である。また、同式(86)のSvは−1<Sv<St<0の関係が成立するように設定される切換関数設定パラメータであり、2つの切換関数設定パラメータSt,Svがこのように設定されている理由については、後述する。この場合、切換関数設定パラメータSvの設定値により、修正トルク誤差Wetrqiの値0への収束速度が指定される。また、式(87)において、Urch_viは到達則入力であり、Krch_vは所定の到達則ゲインを表している。さらに、式(88)において、Unl_viは非線形入力であり、Knl_vは所定の非線形入力用ゲインを表している。また、式(88)におけるsgn(σvi(k))は符号関数であり、その値は、σvi(k)≧0のときにはsgn(σvi(k))=1となり、σvi(k)<0のときにはsgn(σvi(k))=−1となるように設定される(なお、σvi(k)=0のときに、sgn(σvi(k))=0となるように設定してもよい)。
さらに、式(89)において、Uadp_viは適応則入力であり、Kadp_vは所定の適応則ゲインを表している。また、式(89)のUadp_v_iniは、適応則入力の初期値であり、一定値(例えば値1)に設定される。さらに、式(89)のδviは、式(90)により算出される切換関数の積分値である。同式(90)のλvは忘却係数であり、その値は式(91),(92)に示すように、基本局所補正値の前回値Dktrq_bsi(k−1)と所定の上下限値Dktrq_bs_H,Dktrq_bs_Lとの比較結果により、値1または所定値λvlmtに設定される。この上限値Dktrq_bs_Hは正の所定値に設定され、下限値Dktrq_bs_Lは負の所定値に設定されるとともに、所定値λvlmtは、0<λvlmt<1が成立するような値に設定される。
また、式(93)に示すように、基本局所補正値Dktrq_bsiは、到達則入力Urch_vi、非線形入力Unl_viおよび適応則入力Uadp_viの和として算出される。
以上のように、この基本局所補正値算出部215では、基本局所補正値Dktrq_bsiが式(86)〜(93)に示す制御アルゴリズムにより算出されるので、この基本局所補正値Dktrq_bsiは、修正トルク誤差Wetrqiをそれぞれ値0に収束させるための値、言い換えれば、トルクフィードバック値Trq_fbを目標トルクフィードバック値Trq_fb_cmdに収束させる値として算出される。
また、忘却係数λvを用いながら、基本局所補正値Dktrq_bsiが算出されるので、基本局所補正値の前回値Dktrq_bsi(k−1)の絶対値が大きい場合には、前述した忘却効果により、トルクフィードバック値Trq_fbおよび基本局所補正値Dktrq_bsiのそれぞれの制御アルゴリズムにおける積分項Uls_t,Uadp_viが、互いに干渉して振動的な挙動を示したり、それぞれの絶対値が肥大化したりすることによって、相関関係モデルが不適切に修正されるのを回避できる。その結果、基本局所補正値Dktrq_bsiすなわちフィードフォワードトルクTrq_ffの算出精度を向上させることができ、過渡時の制御性を向上させることができる。また、基本局所補正値の前回値Dktrq_bsi(k−1)の絶対値が小さい場合には、忘却係数λvが値1に設定されるので、トルク誤差Etfが値0に収束したときでも、トルクフィードバック値Trq_fbを、追従誤差Etを迅速に補償可能な値に適切に保持することができ、それにより、修正トルク誤差Wetrqiが増大し始めたときの応答性を向上させることができる。
一方、トルク補正感度算出部216では、エンジン回転数NEおよび非駆動輪速Ws_refに応じて、図52に示すマップを検索することにより、トルク補正感度Rtrqが算出される。このトルク補正感度Rtrqは、前述した誤差重みWtと同様に、駆動輪速Ws_actの変化量ΔWs_actとエンジントルクTrqの変化量ΔTrqの比ΔWs_act/ΔTrqを、所定の駆動輪速&所定のエンジントルクでの比ΔWs_act_ref/ΔTrq_refの絶対値|ΔWs_act_ref/ΔTrq_ref|を基準として正規化した値を表している。
同図において、実線で示す曲線が、トルク補正感度Rtrqの値を表しており、破線で示す曲線は、前述した誤差重みWtの値を比較のために表したものである。これらの2つの曲線を比較すると明らかなように、このマップでは、トルク補正感度Rtrqは、誤差重みWtとほぼ同じような傾向に設定されており、これは、図51の説明で述べたのと同じ理由による。
このように、トルク補正感度Rtrqは、前述した誤差重みWtと同様の手法により算出されるので、トルク誤差Etfに対する最大トルクTrq_maxの影響度合を表す値として算出される。また、前述したように、トルク誤差Etfに対する最大トルクTrq_maxの影響度合は、トランスミッションにおけるギヤ比によっても変化するので、同図52では、トルク補正感度Rtrqが、エンジン回転数NEおよび非駆動輪速Ws_refに応じて設定されている。
また、同図では、トルク補正感度Rtrqは、低非駆動輪速かつ低〜中回転域、すなわちトラクションコントロールが作動しやすい領域では、誤差重みWtと同じ値に設定され、それ以外の領域では、誤差重みWtよりも小さい値に設定されている。これは、トルク補正値Ktrqによる最大トルクTrq_maxの減少側への補正量が少なすぎると、駆動輪のスリップが発生する可能性があるので、それを回避するためである。
そして、最終値算出部217では、下式(94)により、局所補正値Dktrq_lc
iを算出した後、下式(95)により、トルク補正値Ktrqが最終的に算出される。なお、本実施形態では、局所補正値Dktrq_lc
iが複数の第2乗算値および複数の乗算値に相当する。
上式(95)に示すように、トルク補正値Ktrqは、値1から局所補正値Dktrq_lciの総和を減算した値として算出される。これは、前述したように、トルク補正値Ktrqが最大トルクTrq_maxへの乗算値として用いられるので、最大トルクTrq_maxを補正する必要がない場合、Ktrq=1となるようにするためである。
本実施形態の制御装置1Bでは、以上のように、トラクションコントローラ200によってエンジントルクTrqが算出されるとともに、図示しないが、このエンジントルクTrqが得られるように、可変機構制御処理、空燃比制御処理および点火時期制御処理が実行される。
次に、以上のように構成された第3実施形態の制御装置1Bによるトラクションコントロールの制御結果について説明する。図53は、摩擦抵抗の小さい路面上において車両の加速/減速を繰り返した際の、本実施形態の制御装置1Bによる制御結果例を示しており、この制御結果は、理解の容易化のために、基本局所補正値Dktrq_bsiとして3つの値を要素とするものを用いた例を示している。また、図54は、比較のために、トルク補正値Ktrqを値1に保持した場合、すなわち補正後最大トルクTrq_max_modとして、最大トルクTrq_maxをそのまま用いた場合の制御結果例(以下「比較例」という)を示している。
両図において、加速開始から減速開始までの間(時刻t1〜t2,t3〜t4,t11〜t12,t13〜t14)における、フィードフォワードトルクTrq_ffおよびトルクフィードバック値Trq_fbの動きを比較すると、2つの値Trq_ff,Trq_fbはいずれも、本実施形態の制御結果例の方が、比較例よりも小さい値に抑制されており、制御性が向上していることが判る。
また、減速開始以降の目標車輪速Ws_cmdに対する駆動輪速Ws_actの動きを比較すると、目標車輪速Ws_cmdに対する駆動輪速Ws_actの乖離度合すなわち制御誤差は、本実施形態の制御結果例の方が、比較例よりも小さい値に抑制されており、制御精度が向上していることが判る。
以上のように、第3実施形態の制御装置1Bによれば、制御誤差に相当するトルクフィードバック値Trq_fbが、駆動輪速Ws_actおよび目標車輪速Ws_cmdに応じて算出され、トルク誤差Etfが、トルクフィードバック値Trq_fbと目標トルクフィードバック値Trq_fb_cmdとの偏差として算出され、連結重み関数Wcviが、図50のマップを検索することにより、エンジン回転数NEに応じて、算出されるとともに、修正トルク誤差Wetrqiが、トルク誤差Etfに、誤差重みWtおよび連結重み関数Wcviを乗算することにより算出される。
さらに、そのような修正トルク誤差Wetrqiを値0に収束させるように(すなわち、トルクフィードバック値Trq_fbを目標トルクフィードバック値Trq_fb_cmdに収束させるように)、基本局所補正値Dktrq_bsiが算出され、補正感度Rtrqおよび連結重み関数Wcviを基本局所補正値Dktrq_bsiに乗算することにより、局所補正値Dktrq_lciが算出される。そして、これらの局所補正値Dktrq_lciの総和を値1から減算することにより、トルク補正値Ktrqが算出されるとともに、このトルク補正値Ktrqにより最大トルクTrq_maxを補正した補正後最大トルクTrq_max_modと、式(71)とを用いて、フィードフォワードトルクTrq_ffが算出される。
すなわち、トルク誤差Etfが値0になるように修正された相関関係モデルを用いて、フィードフォワードトルクTrq_ffが算出されるので、外乱以外の、例えば、エンジン3の出力特性の経年変化や個体間でのばらつき、タイヤの摩耗度合の変化および路面の摩擦抵抗の変化などの、予測不能な状態変化に起因して、最大トルクTrq_maxとフィードフォワードトルクTrq_ffとの間の相関関係が変化することで、トルク誤差Etfすなわち駆動輪のスリップが一時的に増大しやすい状態にある条件下でも、そのように算出されたフィードフォワードトルクTrq_ffによって、トルク誤差Etfすなわち制御誤差を過不足なく適切に補償することができる。
これに加えて、フィードフォワードトルクTrq_ffが、補正後最大トルクTrq_max_modとフィードフォワードトルクTrq_ffとの相関関係を表す式(71)を用いて算出されるので、フィードバック制御アルゴリズムにより算出されるトルクフィードバック値Trq_fbによって駆動輪のスリップを補償する場合と比べて、駆動輪のスリップをより迅速に補償することができる。以上のように、最大トルクTrq_maxとフィードフォワードトルクTrq_ffとの間の相関関係の変化に起因して、トルク誤差Etfすなわち駆動輪のスリップが一時的に増大するような条件下でも、駆動輪のスリップを適切かつ迅速に補償でき、それにより、ゲインスケジュールタイプの補正手法(または修正手法)と比べて、高レベルの車輪速度の制御精度を確保することができる。すなわち、高レベルのトラクションコントロールを実現することができる。
また、修正トルク誤差Wetrqiが、トルク誤差Etfに、誤差重みWtおよび連結重み関数Wcviを乗算することにより算出され、4つの連結重み関数Wcviは、前述したように、エンジン回転数NEが変化し得る領域を区分した4つの領域に対応するように算出されるとともに、対応する領域では、値1以下の正の値に設定され、対応する領域以外では、値0に設定されているとともに、互いに重なり合う領域に対応する連結重み関数Wcviの値の和は、各連結重み関数Wcviにおける最大値1と等しくなるように設定されている。したがって、トルク誤差Etfを、4つの連結重み関数Wcviの値を介して、4つの基本局所補正値Dktrq_bsiに配分することができ、それにより、4つの基本局所補正値Dktrq_bsiの各々によって、4つの領域の各々における相関関係モデルのずれ度合を適切に修正することができる。特に、最大トルクTrq_maxと、フィードフォワードトルクTrq_ffとの間の実際の相関関係に対するずれが、エンジン回転数NEの4つの領域毎にずれの変化方向が異なる場合でも、そのようなずれに対応しながら、相関関係モデルを領域毎に適切に修正できる。
また、基本局所補正値Dktrq_bsiに、補正感度Rtrqおよび連結重み関数Wcviを乗算することにより、局所補正値Dktrq_lciが算出され、これらの局所補正値Dktrq_lciの総和を値1から減算することにより、トルク補正値Ktrqが算出されるので、トルク補正値Ktrqを、4つの基本局所補正値Dktrq_bsiを連続的に結合させた値として算出できる。それにより、4つの基本局所補正値Dktrq_bsiが互いに異なる値として算出されている状態で、エンジン回転数NEが急変したときでも、それに伴って段差を生じることなく連続的に変化するように、トルク補正値Ktrqを算出することができる。
したがって、そのようなトルク補正値Ktrqで最大トルクTrq_maxを補正した補正後最大トルクTrq_max_modを用いることにより(すなわち相関関係モデルを修正することにより)、アクセル開度APの急変に起因してエンジン回転数NEが急変したときでも、フィードフォワードトルクTrq_ffを滑らかに段差なく変化するように算出することができる。その結果、エンジン回転数NEの急変に伴い、トルク誤差Etfすなわち駆動輪のスリップが一時的に増大しやすい条件下でも、エンジントルクTrqの不適切な急変やステップ状の急変を回避することができ、制御精度および制御の安定性を向上させることができる。
さらに、誤差重みWtが、トルク誤差Etfに対する非駆動輪速Ws_refおよびエンジン回転数NEの影響度合を反映するように算出されるので、そのような誤差重みWtを用いることにより、フィードフォワードトルクTrq_ffを、トルク誤差Etfに対する非駆動輪速Ws_refおよびエンジン回転数NEの影響度合が反映された値として算出することができる。これに加えて、補正感度Rtrqが、トルク誤差Etfに対する最大トルクTrq_maxの感度を表す値として算出されるので、そのような補正感度Rtrqを用いることにより、フィードフォワードトルクTrq_ffを、トルク誤差Etfに対する最大トルクTrq_maxの感度が反映された値として算出することができる。以上により、フィードフォワードトルクTrq_ffの、トルク誤差Etfすなわち制御誤差の補償精度を向上させることができ、それにより、制御精度をより一層、向上させることができる。
また、トルクフィードバック値Trq_fbの算出アルゴリズム[式(73)〜(83)]と、基本局所補正値Dktrq_bsiの算出アルゴリズム[式(86)〜(93)]とにおいて、切換関数設定パラメータSt,Svが、−1<Sv<St<0の関係が成立するように設定されているので、修正トルク誤差Wetrqiの値0への収束速度が、追従誤差Etの値0への収束速度よりも遅くなることにより、2つの応答指定型制御アルゴリズムが互いに干渉することがなくなる。その結果、両者の干渉に起因して、制御系が振動的な挙動を示すのを回避でき、制御系の安定性を確保できる。
なお、第3実施形態は、フィードフォワードトルク算出部206において、前述した式(71)によりフィードフォワードトルクTrq_ffを算出した例であるが、これに代えて、下式(96)〜(98)により、フィードフォワードトルクTrq_ffを算出するように構成してもよい。
上式(96)のTrq_ff_tempは、フィードフォワードトルクの暫定値を表している。この算出アルゴリズムでは、式(97),(98)に示すように、補正後最大トルクTrq_max_modを上限値とするリミット処理を、暫定値Trq_ff_tempに施すことにより、フィードフォワードトルクTrq_ffが算出される。フィードフォワードトルクTrq_ffの算出アルゴリズムとして、以上の式(96)〜(98)を用いた場合でも、前述した式(71)を用いた場合と同様の作用効果を得ることができる。
また、第3実施形態は、基本局所補正値Dktrq_bsiの算出アルゴリズムとして、前述した式(86)〜(93)に示す制御アルゴリズムを用いた例であるが、これに代えて、下式(99)〜(108)に示す、適応外乱オブザーバとスライディングモード制御アルゴリズムを組み合わせて適用した制御アルゴリズムにより、基本局所補正値Dktrq_bsiを算出してもよい。
上式(102)のσvi_hatは、切換関数の推定値であり、Uls_viは、外乱推定値である。この外乱推定値Uls_viは、式(102)〜(107)に示すδ修正法を適用した固定ゲイン式の同定アルゴリズムにより算出される。同式(103)のEv_sigiは、推定誤差を表しており、式(104)のUls_v_iniは、外乱推定値Uls_viの初期値を表している。また、同式(104)のdUls_viは、修正項であり、式(105)〜(107)により算出される。式(105)のPvは、一定値の同定ゲインである。
また、式(108)に示すように、基本局所補正値Dktrq_bsiは、到達則入力Urch_vi、非線形入力Unl_viおよび外乱推定値Uls_viの和として算出される。なお、式(102)〜(107)が適応外乱オブザーバにおける外乱推定値Uls_viの算出アルゴリズムである。
以上の制御アルゴリズムによれば、前述した式(86)〜(93)の制御アルゴリズムと同様の作用効果を得ることができる。すなわち、式(105)において、修正項の前回値dUls_vi(k−1)に忘却係数λvが乗算されているとともに、基本局所補正値Dktrq_bsiの絶対値が大きい場合には、忘却係数λvが0<λv<1の範囲内の値に設定されるので、前述したような忘却効果により、外乱推定値Uls_viが積分的に増大するのを回避でき、基本局所補正値Dktrq_bsiの算出値が積分的な揺らぎ挙動やオーバーシュート挙動を示すのを回避できる。それにより、制御系の過渡応答の安定性を確保することができる。また、基本局所補正値の前回値Dktrq_bsi(k−1)の絶対値が小さい場合には、忘却係数λvが値1に設定されるので、修正トルク誤差Wetrqiが値0近傍になったときでも、基本局所補正値Dktrq_bsiを適切な値に保持することができる。それにより、修正トルク誤差Wetrqiが増大し始めたときの応答性を向上させることができ、制御精度を向上させることができる。
以上に加えて、外乱推定値Uls_viが適応外乱オブザーバにおけるδ修正法を適用した固定ゲイン式の同定アルゴリズムにより算出されるので、適応則入力Uadp_viを用いる第3実施形態の制御アルゴリズムと比べて、基本局所補正値Dktrq_bsiにおける積分的な揺らぎ挙動およびオーバーシュート挙動の抑制能力をさらに向上させることができる。
また、第3実施形態は、所定の複数の関数として、連結重み関数Wcviを用いた例であるが、本願発明の所定の複数の関数はこれに限らず、参照パラメータが変化し得る領域を区分した複数の領域にそれぞれ対応して、対応する領域においてのみ値0以外の値に設定されかつ対応する領域以外において値0に設定されているとともに、互いに重なり合う領域において、この互いに重なり合う領域に対応する関数の値の総和の絶対値が、各関数における最大値の絶対値と等しくなるように設定されているものであればよい。例えば、前述した図42の「バルブリフトLiftin」を「非駆動輪速Ws_ref」に置き換えたマップを用いて、連結重み関数Wcvijを算出し、これを所定の複数の関数として用いてもよい。このような連結重み関数Wcvijを用いた場合にも、第2実施形態の図42の連結重み関数Wcpijと同じ効果を得ることができる。
さらに、第3実施形態は、参照パラメータとして、エンジン回転数NEを用いた例であるが、本願発明の参照パラメータはこれに限らず、制御量としての駆動輪速Ws_act以外のものであればよい。例えば、参照パラメータとして、非駆動輪速Ws_ref、エンジン回転数NEおよび最大トルクTrq_maxの3つを用い、これらに応じて、連結重み関数Wcviの値を算出したり、エンジン回転数NEおよび最大トルクTrq_maxの2つに応じて、連結重み関数Wcviの値を算出したりする構成を用いてもよい。
一方、第3実施形態は、フィードフォワードトルクTrq_ffを相関関係モデルとしての式(70),(71)により算出した例であるが、フィードフォワードトルクTrq_ffの算出に用いる相関関係モデルはこれに限らず、他の算出式やマップなどを用いてもよい。例えば、式(71)において、補正後最大トルクTrq_max_modに代えて最大トルクTrq_maxを用いるとともに、正規化要求駆動力Ktrq_apに代えて値Ktrq・Ktrq_apを用いた式により、フィードフォワードトルクTrq_ffを算出してもよい。さらに、式(71)において、補正後最大トルクTrq_max_modに代えて最大トルクTrq_maxを用いるとともに、正規化要求駆動力Ktrq_apの代わりに、これにトルク補正値Ktrqを上限値とするリミット処理を施した値を用いた算出式により、フィードフォワードトルクTrq_ffを算出してもよい。
また、第3実施形態は、エンジン回転数NEおよび非駆動輪速Ws_refに応じて、図51のマップを検索することにより、誤差重みWtを算出した例であるが、誤差重みWtの算出手法はこれに限らないことは言うまでもない。例えば、図51に代えて、駆動輪速Ws_actと非駆動輪速Ws_refの平均値およびエンジン回転数NEに対して、誤差重みWtの値が予め設定されたマップを用いてもよい。また、駆動輪速Ws_actおよび非駆動輪速Ws_refの大きい方(または小さい方)と、エンジン回転数NEに対して、誤差重みWtの値が予め設定されたマップを用いてもよい。さらに、目標車輪速Ws_cmdおよびエンジン回転数NEに対して、誤差重みWtの値が予め設定されたマップを用いてもよい。
さらに、第3実施形態は、自動変速機付きのエンジン3のトラクションコントロールにおいて、誤差重みWtおよびトルク補正感度Rtrqを算出する際、図51,52のマップを用いた例であるが、手動変速機付きの内燃機関、または手動の操作力に代えてアクチュエータにより変速動作を実行する、いわゆる自動MT付きの内燃機関のトラクションコントロールを実行する場合には、図51,52のマップに代えて、ギヤレシオ毎に、エンジン回転数NEに対して、誤差重みWtおよびトルク補正感度Rtrqの値が予めそれぞれ設定された複数の2次元マップ(すなわちテーブル)を用いてもよい。
一方、第3実施形態は、トルク補正感度Rtrqを図52のマップを用いて算出した例であるが、トルク補正感度Rtrqを、図52に代えて、図51を用いて算出してもよい。すなわち、トルク補正感度Rtrqを誤差重みWtに等しい値として算出してもよい。これに加えて、式(94)において、Rtrq=1と設定することにより、Dktrq_lci=Wcvi・Dktrq_bsiとしてもよい。
また、第1および第2実施形態は、本願発明の制御装置を空燃比制御を実行するものに適用した例であり、第3実施形態は、本願発明の制御装置をトラクションコントロールを実行するものに適用した例であるが、本願発明の制御装置はこれらに限らず、様々な産業機器の制御装置において、制御量をフィードフォワード制御するための第1入力値を、参照パラメータを入力とし第1入力値を出力とする相関関係モデルを用いて算出し、第2入力値を、制御量および目標制御量を入力とし第2入力値を出力とする所定のフィードバック制御アルゴリズムを用いて、制御量および目標制御量の一方と他方との偏差が値0に収束するように算出するとともに、第1入力値および第2入力値の和と、第1入力値および第2入力値の積との一方を用いて、制御入力を算出するものに適用可能である。
さらに、第1〜3実施形態は、相関関係モデルの入力および出力の一方を補正する補正値を算出する際、参照パラメータ側すなわち相関関係モデルの入力側を補正する補正値を算出した例であるが、第1〜3実施形態における制御アルゴリズムにより、第1入力値側すなわち相関関係モデルの出力側を補正する補正値を算出するように構成してもよい。