以下、図面を参照しながら、本発明の一実施形態に係る内燃機関の制御装置について説明する。図1に示すように、この制御装置1は、ECU2を備えており、このECU2は、後述するように、内燃機関(以下「エンジン」という)3の運転状態に応じて、カム位相制御処理などの各種の制御処理を実行する。
エンジン3は、4組の気筒3a及びピストン3b(1組のみ図示)を有する直列4気筒ガソリンエンジンであり、図示しない車両に搭載されている。また、エンジン3は、気筒3aごとに設けられた吸気弁4(1つのみ図示)と、気筒3aごとに設けられた排気弁5(1つのみ図示)と、吸気弁4を開閉駆動する吸気動弁機構10と、排気弁5を開閉駆動する排気動弁機構20などを備えている。
この吸気動弁機構10は、吸気カム11aによって吸気弁4を駆動する吸気カムシャフト11と、可変吸気カム位相機構12などで構成されている。この可変吸気カム位相機構12は、吸気カム11aすなわち吸気カムシャフト11のクランクシャフト3cに対する相対的な位相(以下「吸気カム位相」という)CAINを無段階に(すなわち連続的に)進角側又は遅角側に変更することで、吸気弁4のバルブタイミングを変更するものであり、吸気カムシャフト11の吸気スプロケット(図示せず)側の端部に設けられている。
この可変吸気カム位相機構12は、油圧駆動式のものであり、具体的には、本出願人が特開2007−100522号公報などで提案済みのものと同様に構成されているので、その詳細な説明は省略するが、吸気カム位相制御弁12a、油圧回路(図示せず)及びリターンスプリング(図示せず)などを備えている。この吸気カム位相制御弁12aは、ソレノイドとスプール弁(いずれも図示せず)を組み合わせたものである。
この吸気カム位相制御弁12aでは、ECU2からの制御入力信号が入力されたときに、ソレノイドが制御入力信号のデューティ比に応じて駆動されることで、スプール弁が駆動される。それに伴い、油圧回路から可変吸気カム位相機構12の進角室及び遅角室に供給される油圧が変更される。その結果、吸気カム位相CAINが、所定の原点値CAIN_0と所定の最進角値CAIN_ADVとの間で変更されることによって、吸気弁4のバルブタイミングが、図2に破線で示す原点タイミングと、図2に実線で示す最進角タイミングとの間で無段階に変更される。この場合、原点値CAIN_0は値0に設定され、最進角値CAIN_ADVは、所定の正値に設定されている。
以上のように、吸気カム位相CAINは、原点値CAIN_0と最進角値CAIN_ADVとの間を可変範囲とするものであり、吸気カム位相CAINが原点値CAIN_0にあるときに、吸気弁4と排気弁5のバルブオーバーラップ期間が最短になるとともに、吸気カム位相CAINが原点値CAIN_0から増大するほど、吸気弁4のバルブタイミングが原点タイミングから進角側に変更されることで、バルブオーバーラップ期間がより長くなる。
また、ECU2では、吸気カム位相制御弁12aに供給する制御入力信号のデューティ比が、0〜100%の間で設定される。この場合、制御入力信号のデューティ比が0%のときには、吸気カム位相制御弁12aへの制御入力信号の供給が停止され、それにより、前述したリターンスプリングの付勢力によって、吸気カム位相CAINが原点値CAIN_0に保持される。すなわち、吸気カム位相制御弁12aへの制御入力信号の供給が停止されているときには、可変吸気カム位相機構12の構造に起因して、吸気カム位相CAINは、原点値CAIN_0よりも遅角側に変更されることがなく、原点値CAIN_0に保持される。
一方、排気動弁機構20は、排気カム21aによって排気弁5を駆動する排気カムシャフト21と、可変排気カム位相機構22などで構成されている。この可変排気カム位相機構22は、排気カム21aすなわち排気カムシャフト21のクランクシャフト3cに対する相対的な位相(以下「排気カム位相」という)CAEXを無段階に(すなわち連続的に)進角側又は遅角側に変更することで、排気弁5のバルブタイミングを変更するものであり、排気カムシャフト21の排気スプロケット(図示せず)側の端部に設けられている。
可変排気カム位相機構22は、上述した可変吸気排気カム位相機構12と同様に構成された油圧駆動式のものであり、排気カム位相制御弁22a、油圧回路(図示せず)及びリターンスプリング(図示せず)などを備えている。この排気カム位相制御弁22aも、吸気カム位相制御弁12aと同様に、ソレノイドとスプール弁(いずれも図示せず)を組み合わせたものである。
この排気カム位相制御弁22aでは、ECU2からの制御入力信号が入力されたときに、ソレノイドが制御入力信号のデューティ比に応じて駆動されることで、スプール弁が駆動され、それに伴って、油圧回路から可変吸気カム位相機構12の進角室及び遅角室に供給される油圧が変更される。その結果、排気カム位相CAEXが、所定の原点値CAEX_0と所定の最遅角値CAEX_RETとの間で変更されることによって、排気弁5のバルブタイミングが、図2に破線で示す原点タイミングと、図2に実線で示す最遅角タイミングとの間で無段階に変更される。この場合、原点値CAEX_0は値0に設定され、最遅角値CAEX_RETは、所定の正値に設定されている。
以上のように、排気カム位相CAEXは、原点値CAEX_0と最遅角値CAEX_RETとの間を可変範囲とするものであり、排気カム位相CAEXが原点値CAEX_0にあるときに、バルブオーバーラップ期間が最短になるとともに、排気カム位相CAEXが最遅角値CAEX_RETから増大するほど、排気弁5のバルブタイミングが原点タイミングから遅角側に変更されることで、バルブオーバーラップ期間がより長くなる。
また、ECU2では、排気カム位相制御弁22aに供給する制御入力信号のデューティ比が、0〜100%の間で設定される。この場合、制御入力信号のデューティ比が0%のときには、排気カム位相制御弁22aへの制御入力信号の供給が停止され、それにより、前述したリターンスプリングの付勢力によって、排気カム位相CAEXが原点値CAEX_0に保持される。すなわち、排気カム位相制御弁22aへの制御入力信号の供給が停止されているときには、可変排気カム位相機構22の構造に起因して、排気カム位相CAEXは、原点値CAEX_0よりも進角側に変更されることがなく、原点値CAEX_0に保持される。
また、エンジン3には、点火プラグ6、燃料噴射弁7及びクランク角センサ30が設けられており、これらの点火プラグ6及び燃料噴射弁7はいずれも、気筒3aごとに設けられている(いずれも1つのみ図示)。
点火プラグ6は、エンジン3のシリンダヘッドに取り付けられており、ECU2に電気的に接続されているとともに、ECU2によって、点火プラグ6の放電タイミングが制御される。すなわち、混合気の点火時期が制御される。また、燃料噴射弁7は、各気筒3a内に燃料を直接噴射するようにシリンダヘッドに取り付けられている。燃料噴射弁7は、ECU2に電気的に接続されており、ECU2によって、燃料噴射弁7による燃料の噴射量及び噴射時期が制御される。
一方、クランク角センサ30は、クランクシャフト3cの回転に伴い、パルス信号であるCRK信号をECU2に出力する。このCRK信号は、所定のクランク角(例えば1゜)ごとに1パルスが出力され、ECU2は、このCRK信号に基づき、エンジン3の回転数(以下「エンジン回転数」という)NEを算出する。
さらに、ECU2には、アクセル開度センサ31、吸気カム角センサ32及び排気カム角センサ33が電気的に接続されている。このアクセル開度センサ31は、車両の図示しないアクセルペダルの踏み込み量(以下「アクセル開度」という)APを検出して、それを表す検出信号をECU2に出力する。
また、吸気カム角センサ32は、吸気カムシャフト11の可変吸気カム位相機構12と反対側の端部に設けられており、吸気カムシャフト11の回転に伴い、パルス信号である吸気CAM信号を所定のカム角(例えば1゜)ごとにECU2に出力する。ECU2は、この吸気CAM信号及び前述したCRK信号に基づき、吸気カム位相CAINを算出する。
さらに、排気カム角センサ33は、排気カムシャフト21の可変排気カム位相機構22と反対側の端部に設けられており、排気カムシャフト21の回転に伴い、パルス信号である排気CAM信号を所定のカム角(例えば1゜)ごとにECU2に出力する。ECU2は、この排気CAM信号及び前述したCRK信号に基づき、排気カム位相CAEXを算出する。
なお、本実施形態では、クランク角センサ30が吸気カム位相取得手段及び排気カム位相取得手段に、吸気カム角センサ32が吸気カム位相取得手段に、排気カム角センサ33が排気カム位相取得手段にそれぞれ相当する。
一方、ECU2は、CPU、RAM、EEPROM、ROM及びI/Oインターフェース(いずれも図示せず)などからなるマイクロコンピュータで構成されており、以上の各種のセンサ30〜33の検出信号などに基づいて、以下に述べるように、カム位相制御処理などを実行する。なお、本実施形態では、ECU2が、吸気カム位相取得手段、排気カム位相取得手段、第1故障判定手段、第1故障時制御手段、第2故障判定手段及び第2故障時制御手段に相当する。
次に、図3を参照しながら、カム位相制御処理について説明する。このカム位相制御処理は、可変吸気カム位相機構12及び可変排気カム位相機構22を制御することによって、吸気カム位相CAIN及び排気カム位相CAEXを制御するものであり、ECU2によって所定の制御周期ΔT(例えば10msec)で実行される。
なお、以下に述べる制御処理で設定される各種のフラグに関して、2つのフラグF_IN_NG,F_EX_NGの値は、イグニッション・スイッチのON/OFF状態にかかわらず、EEPROM内に記憶・保持されるとともに、それら以外のフラグの値は、イグニッション・スイッチがON状態にあるときにはRAM内に記憶され、イグニッション・スイッチがOFFされたときには「0」にリセットされるものとする。
図3に示すように、まず、ステップ1(図では「S1」と略す。以下同じ)で、動作判定処理を実行する。この動作判定処理は、可変吸気カム位相機構12及び可変排気カム位相機構22が正常に動作しているか否かを判定するものであり、具体的には、図4に示すように実行される。
同図に示すように、まず、ステップ20で、吸気側クリーニング条件フラグF_IN_CLNが「1」であるか否かを判別する。この吸気側クリーニング条件フラグF_IN_CLNは、後述する吸気側クリーニング制御処理の実行条件が成立しているか否かを表すものである。
ステップ20の判別結果がYESで、吸気側クリーニング制御処理の実行条件が成立しているときには、そのまま本処理を終了する。
一方、ステップ20の判別結果がNOのときには、ステップ21に進み、吸気側第1故障フラグF_IN_NG1が「1」であるか否かを判別する。この吸気側第1故障フラグF_IN_NG1は、可変吸気カム位相機構12において吸気側第1故障状態が発生しているか否かを表すものであり、この吸気側第1故障状態は、吸気カム位相CAINが後述する所定の異常進角判定値CAIN_ERR1以上に進角した値に保持されている故障状態に相当する。
ステップ21の判別結果がYESで、吸気側第1故障状態が発生しているときには、そのまま本処理を終了する。
一方、ステップ21の判別結果がNOのときには、ステップ22に進み、吸気側第2故障フラグF_IN_NG2が「1」であるか否かを判別する。この吸気側第2故障フラグF_IN_NG2は、可変吸気カム位相機構12において吸気側第2故障状態が発生しているか否かを表すものであり、この吸気側第2故障状態は、吸気カム位相CAINが原点値CAIN_0よりも大きい値になるような制御入力信号が吸気カム位相制御弁12aに供給されているにもかかわらず、吸気カム位相CAINが原点値CAIN_0に固着・保持されている故障状態に相当する。
このステップ22の判別結果がYESで、吸気側第2故障状態が発生しているときには、そのまま本処理を終了する。
一方、ステップ22の判別結果がNOのときには、ステップ23に進み、排気側クリーニング条件フラグF_EX_CLNが「1」であるか否かを判別する。この排気側クリーニング条件フラグF_EX_CLNは、排気側クリーニング制御処理の実行条件が成立しているか否かを表すものである。
ステップ23の判別結果がYESで、排気側クリーニング制御処理の実行条件が成立しているときには、そのまま本処理を終了する。
一方、ステップ23の判別結果がNOのときには、ステップ24に進み、排気側第1故障フラグF_EX_NG1が「1」であるか否かを判別する。この排気側第1故障フラグF_EX_NG1は、可変排気カム位相機構22において排気側第1故障状態が発生しているか否かを表すものであり、この排気側第1故障状態は、排気カム位相CAEXが後述する所定の異常遅角判定値CAEX_ERR1以上に遅角した値に保持されている故障状態に相当する。
ステップ24の判別結果がYESで、排気側第1故障状態が発生しているときには、そのまま本処理を終了する。
一方、ステップ24の判別結果がNOのときには、ステップ25に進み、排気側第2故障フラグF_EX_NG2が「1」であるか否かを判別する。この排気側第2故障フラグF_EX_NG2は、可変排気カム位相機構22において排気側第2故障状態が発生しているか否かを表すものであり、この排気側第2故障状態は、排気カム位相CAEXが原点値CAEX_0よりも大きい値になるような制御入力信号が排気カム位相制御弁22aに供給されているにもかかわらず、排気カム位相CAEXが原点値CAEX_0に固着・保持されている故障状態に相当する。
このステップ25の判別結果がYESで、排気側第2故障状態が発生しているときには、そのまま本処理を終了する。
一方、ステップ25の判別結果がNOのときには、ステップ26に進み、排気側第1遅延フラグF_EX_DLY1又は排気側第2遅延フラグF_EX_DLY2が「1」であるか否かを判別する。この判別結果がYESで、後述する排気側の第1遅延処理又は排気側の第2遅延処理を実行中であるときには、後述するステップ29に進む。
一方、ステップ26の判別結果がNOのときには、ステップ27に進み、吸気側動作判定処理を実行する。この吸気側動作判定処理は、可変吸気カム位相機構12の異常動作状態の有無を判定するものであり、具体的には、図5に示すように実行される。
同図に示すように、まず、ステップ40で、吸気カム位相偏差DCAINが所定の異常判定値DCAIN_ERR以上であるか否かを判別する。この吸気カム位相偏差DCAINは、後述する目標吸気カム位相CAIN_CMDと吸気カム位相CAINとの偏差の絶対値|CAIN_CMD−CAIN|であり、この異常判定値DCAIN_ERRは、吸気カム位相偏差DCAINがこれを上回っているときに、可変吸気カム位相機構12が異常動作状態にあると推定される正の所定値に設定されている。
ステップ40の判別結果がNOで、可変吸気カム位相機構12が正常であるときには、ステップ48に進み、吸気側の第1遅延処理を実行中でないことを表すために、吸気側第1遅延フラグF_IN_DLY1を「0」に設定した後、本処理を終了する。
一方、ステップ40の判別結果がYESのときには、ステップ41に進み、吸気カム位相CAINが所定の異常進角判定値CAIN_ERR1以上であるか否かを判別する。この異常進角判定値CAIN_ERR1は、可変吸気カム位相機構12が正常な状態にあるときには、CAIN<CAIN_ERR1が常に成立するとともに、例えば、吸気カム位相制御弁12aにおける異物の噛み込み状態が発生することで、可変吸気カム位相機構12が異常進角状態にあるときにのみ、CAIN≧CAIN_ERR1が成立するような値に設定されている。
このステップ41の判別結果がYESで、可変吸気カム位相機構12が異常進角状態にあるときには、ステップ42に進み、吸気側第1遅延フラグF_IN_DLY1が「1」であるか否かを判別する。この判別結果がNOで、吸気側の第1遅延処理を実行中でないときには、ステップ43に進み、吸気側第1遅延カウンタの計数値CT1を所定の吸気側第1遅延値IN_DLY1に設定する。
次いで、ステップ44に進み、吸気側の第1遅延処理を実行中であることを表すために、吸気側第1遅延フラグF_IN_DLY1を「1」に設定する。
このように、ステップ44で、吸気側第1遅延フラグF_IN_DLY1が「1」に設定されると、次回以降の制御タイミングで、前述したステップ42の判別結果がYESとなり、その場合には、ステップ45に進み、吸気側第1遅延カウンタの計数値CT1を、その前回値CT1zから値1を減算した値(CT1z−1)に設定する。すなわち、吸気側第1遅延カウンタの計数値CT1を値1デクリメントする。
以上のステップ44又は45に続くステップ46で、吸気側第1遅延カウンタの計数値CT1が値0であるか否かを判別する。この判別結果がNOで、CT1≠0であるときには、そのまま本処理を終了する。
一方、ステップ46の判別結果がYESで、CAIN≧CAIN_ERR1が成立している状態が値ΔT・IN_DLY1に相当する時間分、継続したときには、可変吸気カム位相機構12の異常進角状態が続いていることで、吸気側クリーニング制御処理を実行すべきであると判定して、それを表すために、ステップ47に進み、吸気側クリーニング条件フラグF_IN_CLNを「1」に設定する。
次いで、前述したステップ48に進み、吸気側の第1遅延処理が終了したことを表すために、吸気側第1遅延フラグF_IN_DLY1を「0」に設定した後、本処理を終了する。
一方、前述したステップ41の判別結果がNOで、CAIN<CAIN_ERR1が成立しているときには、ステップ49に進み、吸気側第2故障判定処理を実行する。
この吸気側第2故障判定処理は、前述した吸気側第2故障状態が発生しているか否かを判別するものであり、具体的には、図6に示すように実行される。
同図に示すように、まず、ステップ50で、吸気カム位相CAINが所定の原点固着判定値CAIN_ERR2以下であるか否かを判別する。この所定の原点固着判定値CAIN_2は、原点値CAIN_0よりも若干、大きい値に設定されている。
この判別結果がNOで、CAIN>CAIN_ERR2であるときには、吸気側の第2遅延処理を実行中でないことを表すために、ステップ60に進み、吸気側第2遅延フラグF_IN_DLY2を「0」に設定した後、本処理を終了する。
一方、ステップ50の判別結果がYESのときには、ステップ51に進み、吸気側第2遅延フラグF_IN_DLY2が「1」であるか否かを判別する。この判別結果がNOで、吸気側の第2遅延処理を実行中でないときには、ステップ52に進み、吸気側第2遅延カウンタの計数値CT2を所定の吸気側第2遅延値IN_DLY2に設定する。
次いで、ステップ53に進み、吸気側の第2遅延処理を実行中であることを表すために、吸気側第2遅延フラグF_IN_DLY2を「1」に設定する。
このように、ステップ53で、吸気側第2遅延フラグF_IN_DLY2が「1」に設定されると、次回以降の制御タイミングで、前述したステップ51の判別結果がYESとなり、その場合には、ステップ54に進み、吸気側第2遅延カウンタの計数値CT2を、その前回値CT2zから値1を減算した値(CT2z−1)に設定する。
以上のステップ53又は54に続くステップ55で、吸気カム位相偏差DCAINの積算値である積算吸気カム位相偏差S_DCAINを、その前回値S_DCAINzと吸気カム位相偏差DCAINの和S_DCAINz+DCAINに設定する。この場合、積算吸気カム位相偏差の前回値S_DCAINzの初期値は値0に設定される。
次いで、ステップ56に進み、吸気側第2遅延カウンタの計数値CT2が値0であるか否かを判別する。この判別結果がNOで、CT2≠0であるときには、そのまま本処理を終了する。
一方、ステップ56の判別結果がYESで、CAIN≦CAIN_ERR2が成立している時間が値ΔT・IN_DLY2分、継続したときには、ステップ57に進み、積算吸気カム位相偏差S_DCAINが所定の第2故障判定値S_ERR2以上であるか否かを判別する。
この判別結果がYESで、S_DCAIN≧S_ERR2であるときには、吸気側第2故障状態が発生していると判定して、それを表すために、ステップ58に進み、吸気側第2故障フラグF_IN_NG2を「1」に設定する。
一方、ステップ57の判別結果がNOで、S_DCAIN<S_ERR2であるときには、吸気側第2故障状態が発生していないと判定して、それを表すために、ステップ59に進み、吸気側第2故障フラグF_IN_NG2を「0」に設定する。
以上のステップ58又は59に続くステップ60で、吸気側の第2遅延処理を終了したことを表すために、吸気側第2遅延フラグF_IN_DLY2を「0」に設定した後、本処理を終了する。
図5に戻り、ステップ49で、吸気側第2故障判定処理を以上のように実行した後、図5の吸気側動作判定処理を終了する。
図4に戻り、ステップ27で、以上のように吸気側動作判定処理を実行した後、ステップ28に進み、吸気側第1遅延フラグF_IN_DLY1又は吸気側第2遅延フラグF_IN_DLY2が「1」であるか否かを判別する。この判別結果がYESで、吸気側の第1遅延処理又は吸気側の第2遅延処理を実行中であるときには、そのまま本処理を終了する。
一方、ステップ28の判別結果がNOのとき、又は前述したステップ26の判別結果がYESのときには、ステップ29に進み、排気側動作判定処理を実行する。この排気側動作判定処理は、可変排気カム位相機構22の異常動作状態の有無を判定するものであり、具体的には、図7に示すように実行される。
同図に示すように、まず、ステップ70で、排気カム位相偏差DCAEXが所定の異常判定値DCAEX_ERR以上であるか否かを判別する。この排気カム位相偏差DCAEXは、後述する目標排気カム位相CAEX_CMDと排気カム位相CAEXとの偏差の絶対値|CAEX_CMD−CAEX|であり、この異常判定値DCAEX_ERRは、排気カム位相偏差DCAEXがこれを上回っているときに、可変排気カム位相機構22が異常動作状態にあると推定される正の所定値に設定されている。
ステップ70の判別結果がNOで、可変排気カム位相機構22が正常であるときには、ステップ78に進み、排気側の第1遅延処理を実行中でないことを表すために、排気側第1遅延フラグF_EX_DLY1を「0」に設定した後、本処理を終了する。
一方、ステップ70の判別結果がYESのときには、ステップ71に進み、排気カム位相CAEXが所定の異常遅角判定値CAEX_ERR1以上であるか否かを判別する。この異常遅角判定値CAEX_ERR1は、可変排気カム位相機構22が正常な状態にあるときには、CAEX<CAEX_ERR1が常に成立するとともに、例えば、排気カム位相制御弁22aにおける異物の噛み込み状態が発生することで、可変排気カム位相機構22が異常遅角状態にあるときにのみ、CAEX≧CAEX_ERR1が成立するような値に設定されている。
このステップ71の判別結果がYESで、可変排気カム位相機構22が異常遅角状態にあるときには、ステップ72に進み、排気側第1遅延フラグF_EX_DLY1が「1」であるか否かを判別する。この判別結果がNOで、排気側の第1遅延処理を実行中でないときには、ステップ73に進み、排気側第1遅延カウンタの計数値CT3を所定の排気側第1遅延値EX_DLY1に設定する。
次いで、ステップ74に進み、排気側の第1遅延処理を実行中であることを表すために、排気側第1遅延フラグF_EX_DLY1を「1」に設定する。
このように、ステップ74で、排気側第1遅延フラグF_EX_DLY1が「1」に設定されると、次回以降の制御タイミングで、前述したステップ72の判別結果がYESとなり、その場合には、ステップ75に進み、排気側第1遅延カウンタの計数値CT3を、その前回値CT3zから値1を減算した値(CT3z−1)に設定する。すなわち、排気側第1遅延カウンタの計数値CT3を値1デクリメントする。
以上のステップ74又は75に続くステップ76で、排気側第1遅延カウンタの計数値CT3が値0であるか否かを判別する。この判別結果がNOで、CT3≠0であるときには、そのまま本処理を終了する。
一方、ステップ76の判別結果がYESで、CAEX≧CAEX_ERR1が成立している状態が値ΔT・EX_DLY1に相当する時間分、継続したときには、可変排気カム位相機構22の異常遅角状態が続いていることで、排気側クリーニング制御処理を実行すべきであると判定して、それを表すために、ステップ77に進み、排気側クリーニング条件フラグF_EX_CLNを「1」に設定する。
次いで、前述したステップ78に進み、排気側の第1遅延処理が終了したことを表すために、排気側第1遅延フラグF_EX_DLY1を「0」に設定した後、本処理を終了する。
一方、前述したステップ71の判別結果がNOで、CAEX<CAEX_ERR1が成立しているときには、ステップ79に進み、排気側第2故障判定処理を実行する。
この排気側第2故障判定処理は、前述した排気側第2故障状態が発生しているか否かを判別するものであり、具体的には、図8に示すように実行される。
同図に示すように、まず、ステップ80で、排気カム位相CAEXが所定の原点固着判定値CAEX_ERR2以下であるか否かを判別する。この所定の原点固着判定値CAEX_2は、原点値CAEX_0よりも若干、大きい値に設定されている。
この判別結果がNOで、CAEX>CAEX_ERR2であるときには、排気側の第2遅延処理を実行中でないことを表すために、ステップ90に進み、排気側第2遅延フラグF_EX_DLY2を「0」に設定した後、本処理を終了する。
一方、ステップ80の判別結果がYESのときには、ステップ81に進み、排気側第2遅延フラグF_EX_DLY2が「1」であるか否かを判別する。この判別結果がNOで、排気側の第2遅延処理を実行中でないときには、ステップ82に進み、排気側第2遅延カウンタの計数値CT4を所定の排気側第2遅延値EX_DLY2に設定する。
次いで、ステップ83に進み、排気側の第2遅延処理を実行中であることを表すために、排気側第2遅延フラグF_EX_DLY2を「1」に設定する。
このように、ステップ83で、排気側第2遅延フラグF_EX_DLY2が「1」に設定されると、次回以降の制御タイミングで、前述したステップ81の判別結果がYESとなり、その場合には、ステップ84に進み、排気側第2遅延カウンタの計数値CT4を、その前回値CT4zから値1を減算した値(CT4z−1)に設定する。
以上のステップ83又は84に続くステップ85で、排気カム位相偏差DCAEXの積算値である積算排気カム位相偏差S_DCAEXを、その前回値S_DCAEXzと排気カム位相偏差DCAEXの和S_DCAEXz+DCAEXに設定する。この場合、積算排気カム位相偏差の前回値S_DCAEXzの初期値は値0に設定される。
次いで、ステップ86に進み、排気側第2遅延カウンタの計数値CT4が値0であるか否かを判別する。この判別結果がNOで、CT4≠0であるときには、そのまま本処理を終了する。
一方、ステップ86の判別結果がYESで、CAEX≦CAEX_ERR2が成立している時間が値ΔT・EX_DLY2分、継続したときには、ステップ87に進み、積算排気カム位相偏差S_DCAEXが前述した所定の第2故障判定値S_ERR2以上であるか否かを判別する。
この判別結果がYESで、S_DCAEX≧S_ERR2であるときには、排気側第2故障状態が発生していると判定して、それを表すために、ステップ88に進み、排気側第2故障フラグF_EX_NG2を「1」に設定する。
一方、ステップ87の判別結果がNOで、S_DCAEX<S_ERR2であるときには、排気側第2故障状態が発生していないと判定して、それを表すために、ステップ89に進み、排気側第2故障フラグF_EX_NG2を「0」に設定する。
以上のステップ88又は89に続くステップ90で、排気側の第2遅延処理を終了したことを表すために、排気側第2遅延フラグF_EX_DLY2を「0」に設定した後、本処理を終了する。
図7に戻り、ステップ79で、排気側第2故障判定処理を以上のように実行した後、図7の排気側動作判定処理を終了する。
図4に戻り、ステップ29で、以上のように排気側動作判定処理を実行した後、図4の動作判定処理を終了する。
図3に戻り、ステップ1で、以上のように動作判定処理を実行した後、ステップ2に進み、前述した吸気側クリーニング条件フラグF_IN_CLNが「1」であるか否かを判別する。
この判別結果がYESのときには、吸気側クリーニング制御処理を実行すべきであると判定して、ステップ3に進み、吸気側クリーニング制御処理を実行する。この吸気側クリーニング制御処理は、具体的には、図9に示すように実行される。
同図に示すように、まず、ステップ100で、吸気側Loモード中フラグF_IN_CLLoが「1」であるか否かを判別する。この判別結果がNOで、吸気側Loモード制御処理を実行していないときには、ステップ101に進み、吸気側Hiモード中フラグF_IN_CLHiが「1」であるか否かを判別する。
この判別結果がNOで、吸気側Hiモード制御処理を実行していないときには、吸気側Hiモード制御処理を実行すべきであると判定して、ステップ102に進み、吸気側Hiモードカウンタの計数値CT5を、所定の吸気側Hiモード用値IN_CLHiに設定する。
次いで、ステップ103に進み、吸気側Hiモード制御処理を実行中であることを表すために、吸気側Hiモード中フラグF_IN_CLHiを「1」に設定する。
このように、ステップ103で、吸気側Hiモード中フラグF_IN_CLHiが「1」に設定されると、次回以降の制御タイミングで、上述したステップ101の判別結果がYESとなり、その場合には、ステップ104に進み、吸気側Hiモードカウンタの計数値CT5を、その前回値CT5zから値1を減算した値(CT5z−1)に設定する。
以上のステップ103又は104に続くステップ105で、吸気側Hiモードカウンタの計数値CT5が値0であるか否かを判別する。この判別結果がNOで、CT5≠0であるときには、ステップ106に進み、吸気側Hiモード制御処理を実行した後、本処理を終了する。この吸気側Hiモード制御処理では、吸気カム位相制御弁12aへの制御入力信号のデューティ比が100%に設定され、そのように設定した制御入力信号が吸気カム位相制御弁12aに供給される。
一方、ステップ105の判別結果がYESで、吸気側Hiモード制御処理の実行時間が値ΔT・IN_CLHiに達したときには、吸気側Hiモード制御処理を終了し、吸気側Loモード制御処理を実行すべきであると判定して、ステップ107に進み、吸気側Loモードカウンタの計数値CT6を、所定の吸気側Loモード用値IN_CLLoに設定する。
次いで、ステップ108に進み、吸気側Hiモード制御処理を終了したことを表すために、吸気側Hiモード中フラグF_IN_CLHiを「0」に設定するとともに、吸気側Loモード制御処理を実行中であることを表すために、吸気側Loモード中フラグF_IN_CLLoを「1」に設定する。
このように、ステップ108で、吸気側Loモード中フラグF_IN_CLLoが「1」に設定されると、次回以降の制御タイミングで、前述したステップ100の判別結果がYESとなり、その場合には、ステップ109に進み、吸気側Loモードカウンタの計数値CT6を、その前回値CT6zから値1を減算した値(CT6z−1)に設定する。
以上のステップ108又は109に続くステップ110で、吸気側Loモードカウンタの計数値CT6が値0であるか否かを判別する。この判別結果がNOで、CT6≠0であるときには、ステップ111に進み、吸気側Loモード制御処理を実行した後、本処理を終了する。この吸気側Loモード制御処理では、吸気カム位相制御弁12aへの制御入力信号のデューティ比が0%に設定され、それにより、吸気カム位相制御弁12aへの制御入力信号の供給が停止される。
一方、ステップ110の判別結果がYESで、吸気側Loモード制御処理の実行時間が値ΔT・IN_CLLoに達したときには、吸気側Loモード制御処理を終了すべきであると判定して、それを表すために、ステップ112に進み、吸気側Loモード中フラグF_IN_CLLoを「0」に設定する。
次いで、ステップ113に進み、吸気側第1故障判定処理を実行する。この吸気側第1故障判定処理は、具体的には、図10に示すように実行される。
同図に示すように、まず、ステップ120で、吸気カム位相CAINが前述した異常進角判定値CAIN_ERR1未満であるか否かを判別する。
この判別結果がNOのときには、可変吸気カム位相機構12において吸気側第1故障状態が発生していると判定して、それを表すために、ステップ121に進み、吸気側第1故障フラグF_IN_NG1を「1」に設定する。
一方、ステップ120の判別結果がYESで、CAIN<CAIN_ERR1が成立しているときには、可変吸気カム位相機構12において吸気側第1故障状態が発生していないと判定して、それを表すために、ステップ122に進み、吸気側第1故障フラグF_IN_NG1を「0」に設定する。
以上のステップ121又は122に続くステップ123で、吸気側クリーニング制御処理を終了したことを表すために、吸気側クリーニング条件フラグF_IN_CLNを「0」に設定した後、本処理を終了する。
図9に戻り、ステップ113で、吸気側第1故障判定処理を以上のように実行した後、図9の吸気側クリーニング制御処理を終了する。
図3に戻り、ステップ3で、吸気側クリーニング制御処理を以上のように実行した後、ステップ4に進み、排気側原点制御処理を実行する。この排気側原点制御処理では、排気カム位相制御弁22aに供給すべき制御入力信号のデューティ比が0%に設定される。すなわち、排気カム位相制御弁22aへの制御入力信号の供給が停止される。それにより、排気カム位相CAEXが、所定の原点値CAEX_0に保持される。ステップ4で、排気側原点制御処理を以上のように実行した後、本処理を終了する。
一方、前述したステップ2の判別結果がNOで、吸気側クリーニング制御処理が実行されていないときには、ステップ5に進み、前述した排気側クリーニング条件フラグF_EX_CLNが「1」であるか否かを判別する。
この判別結果がYESのときには、排気側クリーニング制御処理を実行すべきであると判定して、ステップ6に進み、排気側クリーニング制御処理を実行する。この排気側クリーニング制御処理は、具体的には、図11に示すように実行される。
同図に示すように、まず、ステップ130で、排気側Loモード中フラグF_EX_CLLoが「1」であるか否かを判別する。この判別結果がNOで、排気側Loモード制御処理を実行していないときには、ステップ131に進み、排気側Hiモード中フラグF_EX_CLHiが「1」であるか否かを判別する。
この判別結果がNOで、排気側Hiモード制御処理を実行していないときには、排気側Hiモード制御処理を実行すべきであると判定して、ステップ132に進み、排気側Hiモードカウンタの計数値CT7を、所定の排気側Hiモード用値EX_CLHiに設定する。
次いで、ステップ133に進み、排気側Hiモード制御処理を実行中であることを表すために、排気側Hiモード中フラグF_EX_CLHiを「1」に設定する。
このように、ステップ133で、排気側Hiモード中フラグF_EX_CLHiが「1」に設定されると、次回以降の制御タイミングで、上述したステップ131の判別結果がYESとなり、その場合には、ステップ134に進み、排気側Hiモードカウンタの計数値CT7を、その前回値CT7zから値1を減算した値(CT7z−1)に設定する。
以上のステップ133又は134に続くステップ135で、排気側Hiモードカウンタの計数値CT7が値0であるか否かを判別する。この判別結果がNOで、CT7≠0であるときには、ステップ136に進み、排気側Hiモード制御処理を実行した後、本処理を終了する。この排気側Hiモード制御処理では、排気カム位相制御弁22aへの制御入力信号のデューティ比が100%に設定され、そのように設定した制御入力信号が排気カム位相制御弁22aに供給される。
一方、ステップ135の判別結果がYESで、排気側Hiモード制御処理の実行時間が値ΔT・EX_CLHiに達したときには、排気側Hiモード制御処理を終了し、排気側Loモード制御処理を実行すべきであると判定して、ステップ137に進み、排気側Loモードカウンタの計数値CT8を、所定の排気側Loモード用値EX_CLLoに設定する。
次いで、ステップ138に進み、排気側Hiモード制御処理を終了したことを表すために、排気側Hiモード中フラグF_EX_CLHiを「0」に設定するとともに、排気側Loモード制御処理を実行中であることを表すために、排気側Loモード中フラグF_EX_CLLoを「1」に設定する。
このように、ステップ138で、排気側Loモード中フラグF_EX_CLLoが「1」に設定されると、次回以降の制御タイミングで、前述したステップ130の判別結果がYESとなり、その場合には、ステップ139に進み、排気側Loモードカウンタの計数値CT8を、その前回値CT8zから値1を減算した値(CT8z−1)に設定する。
以上のステップ138又は139に続くステップ140で、排気側Loモードカウンタの計数値CT8が値0であるか否かを判別する。この判別結果がNOで、CT8≠0であるときには、ステップ141に進み、排気側Loモード制御処理を実行した後、本処理を終了する。この排気側Loモード制御処理では、排気カム位相制御弁22aへの制御入力信号のデューティ比が0%に設定され、それにより、排気カム位相制御弁22aへの制御入力信号の供給が停止される。
一方、ステップ140の判別結果がYESで、排気側Loモード制御処理の実行時間が値ΔT・EX_CLLoに達したときには、排気側Loモード制御処理を終了すべきであると判定して、それを表すために、ステップ142に進み、排気側Loモード中フラグF_EX_CLLoを「0」に設定する。
次いで、ステップ143に進み、排気側第1故障判定処理を実行する。この排気側第1故障判定処理は、具体的には、図12に示すように実行される。
同図に示すように、まず、ステップ150で、排気カム位相CAEXが前述した異常遅角判定値CAEX_ERR1未満であるか否かを判別する。
この判別結果がNOのときには、可変排気カム位相機構22において排気側第1故障状態が発生していると判定して、それを表すために、ステップ151に進み、排気側第1故障フラグF_EX_NG1を「1」に設定する。
一方、ステップ150の判別結果がYESで、CAEX<CAEX_ERR1が成立しているときには、可変排気カム位相機構22において排気側第1故障状態が発生していないと判定して、それを表すために、ステップ152に進み、排気側第1故障フラグF_EX_NG1を「0」に設定する。
以上のステップ151又は152に続くステップ153で、排気側クリーニング制御処理を終了したことを表すために、排気側クリーニング条件フラグF_EX_CLNを「0」に設定した後、本処理を終了する。
図11に戻り、ステップ143で、排気側第1故障判定処理を以上のように実行した後、図11の排気側クリーニング制御処理を終了する。
図3に戻り、ステップ6で、排気側クリーニング制御処理を以上のように実行した後、ステップ7に進み、吸気側原点制御処理を実行する。この吸気側原点制御処理では、吸気カム位相制御弁12aに供給すべき制御入力信号のデューティ比が0%に設定される。すなわち、吸気カム位相制御弁12aへの制御入力信号の供給が停止される。それにより、吸気カム位相CAINが所定の原点値CAIN_0に保持される。ステップ7で、吸気側原点制御処理を以上のように実行した後、本処理を終了する。
一方、前述したステップ5の判別結果がNOのとき、すなわち吸気側クリーニング制御処理及び排気側クリーニング制御処理が実行されてないときには、ステップ8に進み、吸気側第1故障フラグF_IN_NG1が「1」であるか否かを判別する。
この判別結果がYESで、可変吸気カム位相機構12において吸気側第1故障状態が発生しているときには、ステップ9に進み、吸気側停止処理を実行する。この吸気側停止処理では、吸気カム位相制御弁12aへの制御入力信号の供給が停止される。
次いで、ステップ10に進み、前述したステップ4と同様に、排気側原点制御処理を実行する。すなわち、排気カム位相制御弁22aへの制御入力信号の供給を停止することで、排気カム位相CAEXを所定の原点値CAEX_0に保持する。ステップ10で、排気側原点制御処理を以上のように実行した後、本処理を終了する。
一方、前述したステップ8の判別結果がNOのときには、ステップ11に進み、排気側第1故障フラグF_EX_NG1が「1」であるか否かを判別する。この判別結果がYESで、可変排気カム位相機構22において排気側第1故障状態が発生しているときには、ステップ12に進み、排気側停止処理を実行する。この排気側停止処理では、排気カム位相制御弁22aへの制御入力信号の供給が停止される。
次いで、ステップ13に進み、前述したステップ10と同様に、吸気側原点制御処理を実行する。すなわち、吸気カム位相制御弁12aへの制御入力信号の供給を停止することで、吸気カム位相CAINを所定の原点値CAIN_0に保持する。ステップ13で、吸気側原点制御処理を以上のように実行した後、本処理を終了する。
一方、ステップ11の判別結果がNOのときには、ステップ14に進み、通常制御処理を実行する。この通常制御処理は、具体的には、図13に示すように実行される。
同図に示すように、まず、ステップ160で、前述した吸気側第2故障フラグF_IN_NG2が「1」であるか否かを判別する。この判別結果がYESで、可変吸気カム位相機構12において吸気側第2故障状態が発生しているときには、ステップ161に進み、前述したステップ9と同様に、吸気側停止処理を実行する。すなわち、吸気カム位相制御弁12aへの制御入力信号の供給が停止される。
次いで、ステップ162に進み、排気側通常制御処理を実行する。この排気側通常制御処理では、エンジン回転数NE及びアクセル開度APに応じて、図示しないマップを検索することにより、要求トルクTRQを算出し、この要求トルクTRQ及びエンジン回転数NEに応じて、図示しないマップを検索することにより、目標排気カム位相CAEX_CMDを算出する。
そして、排気カム位相CAEXが目標排気カム位相CAEX_CMDになるように、排気カム位相制御弁22aへの制御入力信号のデューティ比を設定し、そのように設定した制御入力信号が排気カム位相制御弁22aに供給される。その結果、排気カム位相CAEXが目標排気カム位相CAEX_CMDになるように制御される。以上のように、ステップ162で、排気側通常制御処理を実行した後、本処理を終了する。
一方、ステップ160の判別結果がNOのときには、ステップ163に進み、前述した排気側第2故障フラグF_EX_NG2が「1」であるか否かを判別する。この判別結果がYESで、可変排気カム位相機構22において排気側第2故障状態が発生しているときには、ステップ164に進み、前述したステップ12と同様に、排気側停止処理を実行する。すなわち、排気カム位相制御弁22aへの制御入力信号の供給が停止される。
次いで、ステップ165に進み、吸気側通常制御処理を実行する。この吸気側通常制御処理では、エンジン回転数NE及びアクセル開度APに応じて、図示しないマップを検索することにより、要求トルクTRQを算出し、この要求トルクTRQ及びエンジン回転数NEに応じて、図示しないマップを検索することにより、目標吸気カム位相CAIN_CMDを算出する。
そして、吸気カム位相CAINが目標吸気カム位相CAIN_CMDになるように、吸気カム位相制御弁12aへの制御入力信号のデューティ比を設定し、そのように設定した制御入力信号が吸気カム位相制御弁12aに供給される。その結果、吸気カム位相CAINが目標吸気カム位相CAIN_CMDになるように制御される。以上のように、ステップ165で、吸気側通常制御処理を実行した後、本処理を終了する。
一方、ステップ163の判別結果がNOのときには、ステップ166に進み、上述したステップ165と同様に、吸気側通常制御処理を実行する。次いで、ステップ167に進み、前述したステップ162と同様に、排気側通常制御処理を実行した後、本処理を終了する。
図3に戻り、ステップ14で、通常制御処理を以上のように実行した後、図3のカム位相制御処理を終了する。
次に、前述したカム位相制御処理を実行したときの制御結果の一例(以下「制御結果例」という)について説明する。まず、図14を参照しながら、吸気側カム位相制御弁12aでの異物の噛み込み状態が発生し、可変吸気カム位相機構12において吸気側第1故障状態が発生した場合において、吸気側クリーニング制御処理を実行することで、異物の噛み込み状態が解消され、吸気側第1故障状態が解消されたときの制御結果例について説明する。
同図に示すように、吸気側カム位相制御弁12aで異物の噛み込み状態が発生するのに伴って、吸気カム位相CAINが進角側に変化し、その値が増大する。そして、CAIN≧CAIN_ERR1が成立したタイミング(時刻t1)で、前述したステップ41の判別結果がYESとなることで、吸気側の第1遅延処理が開始され、吸気側第1遅延カウンタの計数値CT1が前述した吸気側第1遅延値IN_DLY1に設定される。それと同時に、排気側原点制御処理が開始され、排気カム位相CAEXが原点値CAEX_0になるように制御される。
その後、吸気側の遅延処理が終了し、CT1=0が成立したタイミング(時刻t2)で、吸気側クリーニング条件フラグF_IN_CLNが「1」に設定されることで、吸気側クリーニング制御処理が開始されると同時に、吸気側Hiモード中フラグF_IN_CLHiが「1」に設定されることで、吸気側Hiモード制御処理が開始される。それにより、吸気側Hiモードカウンタの計数値CT5が吸気側Hiモード用値IN_CLHiに設定されるとともに、吸気カム位相制御弁12aへの制御入力信号のデューティ比が100%に設定される。
そして、制御の進行に伴い、CT5=0が成立したタイミング(時刻t3)で、吸気側Hiモード中フラグF_IN_CLHiが「0」に設定され、吸気側Hiモード制御処理が終了すると同時に、吸気側Loモード中フラグF_IN_CLLoが「1」に設定されることで、吸気側Loモード制御処理が開始される。それにより、吸気側Loモードカウンタの計数値CT6が吸気側Loモード用値IN_CLLoに設定されるとともに、吸気カム位相制御弁12aへの制御入力信号のデューティ比が0%に設定される。この吸気側Loモード制御処理の実行中、吸気側カム位相制御弁12aで異物の噛み込み状態が解消されることで、吸気カム位相CAINが原点値CAIN_0に変化する。
その後、CT6=0が成立したタイミング(時刻t4)で、吸気側Loモード中フラグF_IN_CLLo及び吸気側クリーニング条件フラグF_IN_CLNが「0」に設定され、吸気側Loモード制御処理及び吸気側クリーニング制御処理が終了すると同時に、吸気側第1故障判定処理が実行される。その際、CAIN<CAIN_ERR1が成立し、前述したステップ120の判別結果がYESとなることで、吸気側第1故障フラグF_IN_NG1が「0」に保持される。それにより、前述したステップ2,5,8,11,160,163の判別結果がいずれもNOとなることで、それ以降、吸気側通常制御処理及び排気側通常制御処理が実行される。
次に、図15を参照しながら、吸気側カム位相制御弁12aで異物の噛み込み状態が発生した場合において、吸気側クリーニング制御処理を実行したにもかかわらず、異物の噛み込み状態が解消されず、吸気側第1故障状態が解消されなかったときの制御結果例について説明する。
同図に示すように、CAIN≧CAIN_ERR1が成立したタイミング(時刻t11)以降、吸気側の第1遅延処理が開始され、吸気側遅延カウンタの計数値CT1が前述した吸気側第1遅延値IN_DLY1に設定されると同時に、排気側原点制御処理が開始され、排気カム位相CAEXが原点値CAEX_0になるように制御される。
その後、吸気側の遅延処理が終了し、CT1=0が成立したタイミング(時刻t12)で、吸気側クリーニング制御処理及び吸気側Hiモード制御処理が開始される。それにより、吸気側Hiモードカウンタの計数値CT5が吸気側Hiモード用値IN_CLHiに設定されるとともに、吸気カム位相制御弁12aへの制御入力信号のデューティ比が100%に設定される。
そして、制御の進行に伴い、CT5=0が成立したタイミング(時刻t13)で、吸気側Hiモード制御処理が終了すると同時に、吸気側Loモード制御処理が開始される。それにより、吸気側Loモードカウンタの計数値CT6が吸気側Loモード用値IN_CLLoに設定されるとともに、吸気カム位相制御弁12aへの制御入力信号のデューティ比が0%に設定される。
そして、制御の進行に伴い、CT6=0が成立したタイミング(時刻t14)で、吸気側Loモード中フラグF_IN_CLLoが「0」に設定され、吸気側Loモード制御処理が終了すると同時に、吸気側第1故障判定処理が実行される。その際、CAIN≧CAIN_ERR1が成立し、前述したステップ120の判別結果がNOとなることで、吸気側第1故障フラグF_IN_NG1が「1」に設定される。それにより、前述したステップ8の判別結果がYESとなることで、それ以降、吸気側停止処理及び排気側原点制御処理が実行される。
以上のように、本実施形態の制御装置1によれば、CAIN≧CAIN_ERR1が成立し、吸気側カム位相制御弁12aで異物の噛み込み状態などが発生していると推定された場合、吸気側クリーニング制御処理が実行される。そして、吸気側クリーニング制御処理の実行後においても、CAIN≧CAIN_ERR1が成立しているときには、可変吸気カム位相機構12において吸気側第1故障状態が発生していると判定され、吸気側停止処理及び排気側原点制御処理が実行される。すなわち、可変吸気カム位相機構12の制御が停止されるとともに、排気カム位相CAEXが原点値CAEX_0になるように、可変排気カム位相機構22が制御される。
これと同様に、CAEX≧CAEX_ERR1が成立し、排気カム位相制御弁22aで異物の噛み込み状態などが発生していると推定された場合、排気側クリーニング制御処理が実行される。そして、排気側クリーニング制御処理の実行後においても、CAEX≧CAEX_ERR1が成立しているときには、可変排気カム位相機構22において排気側第1故障状態が発生していると判定され、排気側停止処理及び吸気側原点制御処理が実行される。すなわち、可変排気カム位相機構22の制御が停止されるとともに、吸気カム位相CAINが原点値CAIN_0になるように、可変吸気カム位相機構12が制御される。
以上のように、可変吸気カム位相機構12及び可変排気カム位相機構22を制御する際、両者の一方の機構において、バルブオーバーラップ期間が長くなるような故障状態が発生したときでも、他方の機構において、バルブオーバーラップ期間が短くなるように吸気側原点制御処理又は排気側原点制御処理を実行することによって、バルブオーバーラップ期間が長すぎる状態になるのを回避でき、内部EGR量が過大になったり、掃気ガス量が過大になったりするのを回避することができる。それにより、混合気の安定した燃焼状態を確保でき、運転性を向上させることができる。その結果、商品性を向上させることができる。
また、吸気側原点制御処理では、吸気カム位相CAINが原点値CAIN_0になるように制御されるので、吸気カム位相CAINを、その可変範囲内においてバルブオーバーラップ期間が最短となる値に制御することができる。これと同様に、排気側原点制御処理では、排気カム位相CAEXが原点値CAEX_0になるように制御されるので、排気カム位相CAEXを、その可変範囲内においてバルブオーバーラップ期間が最短となる値に制御することができる。それにより、上述した作用効果を確実に得ることができる。
さらに、可変吸気カム位相機構12において吸気側第2故障状態が発生していると判定されたとき、すなわち吸気カム位相CAINが原点値CAIN_0よりも大きい値になるような制御入力信号が吸気カム位相制御弁12aに供給されているにもかかわらず、吸気カム位相CAINが原点値CAIN_0に固着・保持されているときには、可変排気カム位相機構22の通常制御処理が実行される。これと同様に、可変排気カム位相機構22において排気側第2故障状態が発生していると判定されたときには、可変吸気カム位相機構12の通常制御処理が実行される。
この場合、吸気側第2故障状態又は排気側第2故障状態が発生しているときには、吸気カム位相CAINが原点値CAIN_0に保持される状態か、又は排気カム位相CAEXが原点値CAEX_0に保持される状態となる関係上、バルブオーバーラップ期間が正常時よりも長くなることがないので、故障していない方の機構をバルブオーバーラップ期間が正常時よりも短くなるように制御する必要がない。したがって、吸気側第2故障状態又は排気側第2故障状態が発生しているときに、正常な方の機構を通常制御することによって、バルブオーバーラップ期間が長すぎる状態になるのを確実に回避しながら、正常時と同様に、混合気の安定した燃焼状態を確保でき、良好な運転性を確保することができる。
なお、実施形態は、可変吸気カム位相機構及び可変排気カム位相機構として、油圧駆動式のものを用いた例であるが、これに代えて、電動機とギヤ機構を組み合わせた電動式のものを用いてもよい。その場合には、ステップ1の動作判定処理で、図10の吸気側第1故障判定処理、図6の吸気側第2故障判定処理、図12の排気側第1故障判定処理及び図8の吸気側第2故障判定処理を実行するとともに、ステップ2〜7の制御処理を省略すればよい。
また、実施形態は、可変吸気カム位相機構12及び可変排気カム位相機構22として、図2に示すように、吸気カム位相CAINが原点値CAIN_0に、排気カム位相CAEXが原点値CAEX_0にそれぞれ保持されている状態のときに、バルブオーバーラップ期間が値0になるように構成されたものを用いた例であるが、これらに代えて、可変吸気カム位相機構12及び可変排気カム位相機構22として、吸気カム位相CAINが原点値CAIN_0に、排気カム位相CAEXが原点値CAEX_0にそれぞれ保持されている状態のときに、吸気弁4及び排気弁5の双方が閉鎖された期間、すなわち負のバルブオーバーラップ期間が生じるように構成されたものを用いてもよい。
さらに、実施形態は、吸気側第2故障状態が発生しているときには、可変排気カム位相機構22を通常制御した例であるが、吸気側第2故障状態が発生しているときに、可変排気カム位相機構22を、通常制御処理に代えて、故障時用の制御処理を実行してもよい。その場合、例えば、目標排気カム位相CAEX_CMDの算出に用いるマップを、通常制御用のマップから故障時用のマップに切り換えればよい。これと同様に、排気側第2故障状態が発生しているときには、可変吸気カム位相機構12を、通常制御処理に代えて、故障時用の制御処理を実行してもよく、その場合にも、目標吸気カム位相CAIN_CMDの算出に用いるマップを、通常制御用のマップから故障時用のマップに切り換えればよい。
一方、実施形態は、本発明の制御装置を車両用の内燃機関に適用した例であるが、本発明の制御装置は、これに限らず、船舶用の内燃機関や、他の産業機器用の内燃機関にも適用可能であることは言うまでもない。