以下、添付図面を参照しつつ本発明を実施するための実施形態について説明する。
図1は、本実施形態に係るVTCの制御装置が適用される、車両用エンジンの一例を示すシステム構成図である。図2は、VTCの吸気カムシャフトの一例を示す図である。
VTCの制御装置は、例えば、直列4気筒の4サイクル機関である内燃機関(エンジン)1に設けられている。エンジン1のクランクシャフト10からの動力は、タイミングチェーン(又はベルト)12を介して、吸気バルブ(図示省略)開閉用の吸気カムシャフト20と排気バルブ(図示省略)開閉用の排気カムシャフト22とに伝達されるようになっている。
また、VTCの制御装置は、クランク角センサ30の出力と、カム角センサ40の出力と、モータ回転センサ50の出力とを用いて吸気バルブのバルブタイミングを変更する。
クランク角センサ30は、クランクシャフト10に設けられ、クランクシャフト10が所定回転角度回転するごとにクランク角信号POSを出力する。
カム角センサ40は、吸気カムシャフト20の一端に設けられ、吸気カムシャフト20が所定回転角度回転するごとに気筒判別信号としてのカム信号PHASEを出力する。
モータ回転センサ50は、吸気カムシャフト20の他端に設けられた電動モータ70に設けられ、電動モータ70の出力軸であるモータシャフトが所定回転角度回転するごとにモータシャフト回転角信号MASを出力する。
電動モータ70は、クランクシャフト10に対する吸気カムシャフト20の回転位相、すなわち、吸気バルブのバルブタイミングを変更する電動VTC80の一部を構成している。このような電動モータ70としては、例えば、図示省略の減速機が内蔵されたブラシ付きのDCモータが用いられる。
電動VTC80は、図2のA−A線断面図である図3に示すように、タイミングチェーン12が巻き回されるタイミングスプロケット82と一体化され、電動モータ70によってタイミングスプロケット82に対して吸気カムシャフト20を相対回転させることにより、吸気バルブのバルブタイミングを進角又は遅角させることができるようになっている。なお、電動VTC80は、吸気バルブに限らず、吸気バルブ及び排気バルブの少なくとも一方に備え付けられていればよい。
より詳細には、タイミングスプロケット82は、内周面が段差形状の円環状のスプロケット本体82Aと、このスプロケット本体82Aの外周に一体に設けられ、巻き回されたタイミングチェーン12を介してクランクシャフト10からの回転力を受けるギア部82Bと、を備えている。また、タイミングスプロケット82は、スプロケット本体82Aの内周面と吸気カムシャフト20の外周面との間に配置されたボールベアリング(図示省略)によって吸気カムシャフト20に対して相対回転可能に支持されている。
スプロケット本体82Aの内周面の一部には、円弧上の係合部であるストッパ凸部82A1が周方向に沿って所定長さ範囲まで形成されている。吸気カムシャフト20の外周面には、ストッパ凸部82A1が当接するストッパ凹溝20Aが円周方向に沿って形成されている。このストッパ凹溝20Aは、円周方向へ所定長さを有する円弧状に形成されている。そして、この長さ範囲で回転したストッパ凸部82A1の両端縁82A2のそれぞれがストッパ凹溝20Aの対向縁20Bに当接することによって、タイミングスプロケット82に対する吸気カムシャフト20の相対回転位置が最大進角側と最大遅角側との間で規制されるようになっている。
また、クランク角センサ30、カム角センサ40、モータ回転センサ50、電動モータ70には、電子制御装置60が電気的に接続されている。電子制御装置60は、各種の制御プログラムを実行する処理装置であるCPU60Aと、制御プログラムなどが格納されるROM(Read Only Memory)60Bと、一時的な記憶領域となるRAM(Random Access Memory)60Cと、入出力回路60Dと、これらを相互に接続するバス60Eと、を備えている。
電子制御装置60のCPU60Aは、入出力回路60Dを介して各種センサ30、40、50の検出信号を入力すると共に制御プログラムに従って制御処理を実行するようになっている。また、電子制御装置60は、イグニッションスイッチのON/OFF信号やスタータスイッチのON/OFF信号を入力する他、例えば、吸気流量、水温、及び回転速度を検出する図示省略の各種センサの検出信号を入力して、燃料噴射弁(図示省略)、点火プラグ(図示省略)及び電動VTC80(電動モータ70)を制御する。したがって、電子制御装置60が、VTCの制御装置の一例として挙げられる。
なお、電動VTC80の制御は、電子制御装置60とは異なる別体の電子制御装置で行うようにしてもよい。その際、別途設けられた電子制御装置は、CAN(Controller Area Network)などの車載ネットワークを介して、電子制御装置60から各種信号を入力してもよい。
以下、電動VTC80の作動について説明する。まず、クランクシャフト10が回転駆動するとタイミングチェーン12を介してタイミングスプロケット82が回転することで、電動モータ70が同期回転する。すなわち、電動モータ70は、ステータを内蔵したモータ本体がタイミングスプロケット82と一体に回転するようになっている。また、タイミングスプロケット82の回転力は、吸気カムシャフト20に伝達される。これにより、吸気カムシャフト20のカムが吸気バルブを開閉作動させる。
そして、エンジン始動後の所定の運転時においては、電子制御装置60からの所定の信号が電動モータ70に出力され、電動モータ70のモータシャフトが回転駆動される。その後、モータシャフトの回転力が減速機を介して減速されて吸気カムシャフト20に伝達される。これにより、吸気カムシャフト20がタイミングスプロケット82に対して相対回転して回転位相が変更されることで、吸気バルブのバルブタイミングが進角側又は遅角側に変更制御されるようになっている。
次に、クランク角センサ30、カム角センサ40及びモータ回転センサ50の構造及び出力特性について、図2、4、5、6を参照して説明する。
クランク角センサ30は、例えば、クランクシャフト10に支持されるシグナルプレート32と、シグナルプレート32の周囲に被検知部として設けられた複数の突起部34と、突起部34を検知してクランク角信号POSを出力する第1の検知部36と、を備えている。
突起部34は、例えば、クランクシャフト10の回転中心を挟んで対向する2箇所に連続して2つ欠落させている部分を除いて、クランク角で10度のピッチで等間隔に形成されている。ただし、突起部34は、連続して2つ欠落させて設けられることに限らず、例えば、1つ又は連続して3つ欠落させて設けられてもよい。
第1の検知部36は、波形発生回路、選択回路などを含む各種の処理回路を、突起部34を検知するピックアップと共に備えている。第1の検知部36が出力するクランク角信号POSは、図4に示すように、突起部34を検知したときにローレベルから一定時間ハイレベルに変化するパルス列からなるパルス信号である。
クランク角信号POSは、クランク角で10度ごとに16回連続してハイレベルに変化した後、30度の間ローレベルを保持し、その後、再度16回連続してハイレベルに変化する。そして、クランク角30度であるローレベル期間(歯抜け領域又は欠落部分)後の最初のクランク角信号(以下、「基準位置」という)は、クランク角180度の間隔で出力される。このクランク角180度は、4気筒機関における気筒間の行程位相差、すなわち、点火間隔に相当する。
電子制御装置60は、基準位置からクランク角信号POSの発生数をカウントすることによりクランクシャフト10の回転角度を算出できるようになっている。したがって、クランク角センサ30は、クランクシャフト10の回転角度を検出する。
カム角センサ40は、例えば、吸気カムシャフト20の一端に支持されるシグナルプレート42と、シグナルプレート42の周囲に被検知部として設けられた複数の突起部44と、突起部44を検知してカム信号PHASEを出力する第2の検知部46と、を備えている。
突起部44は、例えば、カム角で90度ごとの4箇所それぞれに、1個、3個、4個、2個ずつ設けられている。複数の突起部44が連続して設けられた部分では、突起部44のピッチは、クランク角で30度(カム角で15度)に設定されている。
第2の検知部46は、波形成形回路などを含む各種の処理回路を、突起部44を検知するピックアップと共に備えている。第2の検知部46が出力するカム信号PHASEは、図4に示すように、突起部44を検知したときにローレベルから一定時間だけハイレベルに変化するパルス列からなるパルス信号である。
カム信号PHASEは、カム角で90度ごと、クランク角で180度ごとに、1個単独、3個連続、4個連続、2個連続でハイレベルに変化する。すなわち、1個単独のカム信号、及び、複数連続して出力されるカム信号の先頭の信号は、カム角で90度(クランク角で180度)の間隔で出力されようになっている。
電子制御装置60は、1個単独、3個連続、4個連続、2個連続でハイレベルに変化するカム信号PHASEを入力することで吸気カムシャフト20の回転角度を算出することができるようになっている。したがって、カム角センサ40は、吸気カムシャフト20の回転角度を検出する。
また、1個単独、3個連続、4個連続、2個連続のカム信号PHASEは、ある気筒の圧縮上死点TDCと次の気筒の圧縮上死点TDCとの間でそれぞれ出力されるようになっている。なお、カム信号PHASEの出力位置及び出力間隔は、電動VTC80によって吸気バルブのバルブタイミングを変更した場合に、カム信号PHASEの出力位置が圧縮上死点TDCを横切って変化することがないようにバルブタイミングの変更範囲を考慮して設定されている。
より詳細には、第1気筒の圧縮上死点TDCと第3気筒の圧縮上死点TDCとの間では、カム信号PHASEは3個連続で出力され、第3気筒の圧縮上死点TDCと第4気筒の圧縮上死点TDCとの間では、カム信号PHASEは4個連続で出力され、第4気筒の圧縮上死点TDCと第2気筒の圧縮上死点TDCとの間では、カム信号PHASEは2個連続で出力され、第2気筒の圧縮上死点TDCと第1気筒の圧縮上死点TDCとの間では、カム信号PHASEは1個単独で出力される。
各圧縮上死点TDCの間で出力するカム信号PHASEの連続出力数は、次に圧縮上死点となる気筒番号を示す。例えば、今回の圧縮上死点TDCと前回の圧縮上死点TDCとの間で、カム信号PHASEが3個連続して出力された場合には、今回の圧縮上死点TDCは、第3気筒の圧縮上死点TDCであることを示す。
4気筒機関であるエンジン1では、点火を第1気筒(#1cyl)→第3気筒(#3cyl)→第4気筒(#4cyl)→第2気筒(#2cyl)の順で行うので、圧縮上死点TDC間で出力されるカム信号PHASEの出力パターンは、図4に示すように、1個単独、3個連続、4個連続、2個連続の順に設定されている。以下、1個単独で出力されるカム信号PHASEを第1のカム信号、3個連続で出力されるカム信号PHASEのうち先頭の信号を第2のカム信号、4個連続で出力されるカム信号PHASEのうち先頭の信号を第3のカム信号、2個連続で出力されるカム信号PHASEのうち先頭の信号を第4のカム信号とする。
モータ回転センサ50は、例えば、電動モータ70のモータシャフトの前端部に固定された被検知部50Aと、被検知部50Aの回転方向の変位を検知するギャップセンサである第3の検知部50Bと、を含む。
被検知部50Aは、例えば、略円筒状に形成されており、第3の検知部50Bに対向すると共に円筒形の中心軸方向の長さが時計回り方向に沿って120度ごとに減少するように形成された端面50A1を有する。
第3の検知部50Bは、例えば、電磁ピックアップ式のセンサであって、対向する被検知部50Aの端面50A1との距離の変位を検出することによって、連続した鋸刃状の波形信号(以下、「モータシャフト回転角信号MAS」という)を出力する。
すなわち、電動モータ70のモータシャフトが時計周り方向に回転するときは、出力が漸増した後に急降下する波形信号が120度ごとに出力される(図6Aを参照)。一方、電動モータ70のモータシャフトが反時計周り方向に回転するときは、出力が漸減した後に急上昇する波形信号が出力される(図6Bを参照)。
したがって、モータ回転センサ50は、出力の漸増に応じてモータシャフトの時計回り方向(例えば、進角方向)の回転角を漸増し、出力の漸減に応じてモータシャフトの反時計回り方向(例えば、遅角方向)の回転角を漸増することにより、回転方向と共に回転角(回転動作量)を連続的(リニア)に検出することができる。なお、電子制御装置60は、出力が急降下又は急上昇するときに、対応する回転角の出力値(出力電圧)を学習することで、検出誤差を抑制することができると共に電動モータ70のモータシャフトの回転角度を算出することができるようになっている。したがって、モータ回転センサ50は、電動モータ70のモータシャフトの回転角度を検出する。
電子制御装置60は、吸気バルブのバルブタイミングをフィードバック制御すべく、まず、機関回転速度及び機関負荷などのエンジン1の運転状態に基づいて、電動VTC80によって制御される吸気カムシャフト20の目標回転位相(以下、「VTC目標角度」とする)を算出する。
次に、電子制御装置60は、クランク角センサ30の出力及びカム角センサ40の出力からクランクシャフト10に対する吸気カムシャフト20の回転位相(以下、「VTC実角度」という)を求める。より詳細には、VTC実角度は、例えば、基準位置からカム信号PHASEのうち第1〜第4のカム信号までのクランク角信号POSの発生数をカウントすることにより算出される。すなわち、VTC実角度は、気筒判別信号(第1〜第4のカム信号)が出力されたときに検出される。
また、モータ回転センサ50は、電動モータ70のモータシャフトの回転角度を任意のタイミングで連続的に検出することができ、少なくともカム角センサ40による回転角度の検出頻度よりも検出頻度が高い。すなわち、モータ回転センサ50による回転角度の検出周期は、気筒判別信号が出力されるごとに(カム角で90度ごとに)検出されるVTC実角度の検出周期よりも短い。そして、電子制御装置60は、このモータ回転センサ50のモータシャフト回転角信号MASから回転位相の変化量、すなわち、VTC実角度の変化量(以下、「VTC変化角」という)を求める。より詳細には、VTC変化角は、例えば、以下のように算出される。
電子制御装置60は、まず、クランク角センサ30の出力に基づいて、基準位置からクランク角信号POSの発生数をカウントすることによりクランクシャフト10の回転角度を算出する。次いで、このクランクシャフト10の回転角度に、クランクシャフト10の回転速度に対するタイミングスプロケット82の回転速度の減速比1/2を乗じることにより、タイミングスプロケット82の回転角度を算出する。また、電子制御装置60は、後述する更新処理の制御周期(前回の制御タイミングから今回の制御タイミングまでの間)間のタイミングスプロケット82の回転角変化量を算出すると共に、モータ回転センサ50の出力から同制御周期間のモータシャフトの回転角変化量を算出する。これら2つの回転角変化量の差は、制御周期間のタイミングスプロケット82に対するモータシャフト回転角変化量となる。そして、この制御周期間の回転角変化量に、電動モータ70の減速機によるモータ回転速度に対する吸気カムシャフト20の回転速度の減速比(例えば、1/60)及びクランク角への換算係数(減速比1/2の逆数=2)を乗じることによって、タイミングスプロケット82に対する吸気カムシャフト20の回転角変化量、すなわち、回転位相の変化量(VTC変化角)が算出される。
その後、電子制御装置60は、このVTC変化角をVTC実角度の前回値に積算してVTC実角度を更新する。これにより、クランク角信号POS及びカム信号PHASEに基づいて次のVTC実角度が検出される(求められる)までの間、VTC実角度が補われる。
なお、以上の説明では、クランク角信号POSのパルス列の一部を欠落させ、欠落後に初めて出力されるクランク角信号を基準位置としているが、これに限るものではない。例えば、クランク角信号POSを欠落させることなく10度毎に出力させ、クランク角180度毎に信号を発生する基準位置センサを別途設けてもよい。そして、この基準位置センサの出力信号を基準に、クランク角信号POSを計数することで、クランクシャフト10の回転角が検出される。
VTC実角度の更新後、電子制御装置60は、更新されたVTC実角度がVTC目標角度に追従するようなモータ操作量を算出し、この操作量に対応する指令信号を電動モータ70に出力する。そして、電動VTC80がモータ操作量に応じて駆動されることで、吸気バルブのバルブタイミングは、例えば、ミラーサイクル運転中においては、吸気バルブの閉時期(IVC)を十分に遅角させたミラー運転用のバルブタイミングに制御される(図7Aを参照)。また、例えば、始動時(クランキング時)においては、始動時用にIVCを進角させたバルブタイミングとなるように制御される(図7Bを参照)。
ここで、モータ回転センサ50に異常が発生した場合には、誤ったVTC実角度に更新され、このVTC実角度に基づいて誤って算出されたモータ操作量が出力されてしまう。そのため、バルブタイミングが目標値に対して大きくオーバーシュートしてエンジン性能が損なわれるおそれがあった。また、オーバーシュートによりストッパ凸部82A1が吸気カムシャフト20のストッパ凹溝20Aの対向縁20Bに衝突したり、電動VTC80を駆動するカム機構が噛み合って固着したりするなどの二次故障が発生するおそれがある。
そこで、従来では、誤ったモータ操作量によりフィードバック制御処理が実行されることを抑制すべく、例えば、気筒判別信号(第1〜第4のカム信号)が出力されるごとに求められるVTC実角度の変化量と、モータシャフト回転角信号MASから求められるVTC変化角との差分の絶対値が所定値未満であるか否かに基づいてモータ回転センサ50の異常を検出する診断処理を実行していた。この診断処理は、吸気カムシャフト20が90度回転するたびに出力される気筒判別信号を契機として実行される。
しかしながら、図8A、図8Bに示すように、カム角センサ40のシグナルプレート42に設けられた各突起部44の製造バラツキなどのため、第1〜第4のカム信号の出力タイミングには、誤差が生じる。すなわち、第1〜第4のカム信号の出力間隔は一定ではない(例えば、第1のカム信号及び第2のカム信号間においてクランク角で180±O度、第2のカム信号及び第3のカム信号間においてクランク角で180±Δ度)。このため、第1〜第4のカム信号が出力されるごとに求められるVTC実角度には、許容公差に起因する誤差に加えて、第1〜第4のカム信号の出力間隔に起因する誤差が含まれてしまう(図8Bを参照)。これにより、従来の診断方式では、第1〜第4のカム信号が出力されるごとにVTC実角度及びVTC変化角に基づいて算出される差分に、第1〜第4のカム信号の出力間隔に起因したバラツキが生じてしまう。このような差分を用いた診断処理では、例えば、差分と比較される異常判定用の閾値を、例えば、誤診断が行われないように大きく設定する必要がある。したがって、モータ回転センサ50に異常が発生しているのに異常判定されないなど、モータ回転センサ50の異常検出精度を向上させることが困難であった。
そこで、電子制御装置60が実行する診断処理では、第1〜第4のカム信号の出力間隔に起因する差分のバラツキを抑制してモータ回転センサ50の異常検出精度を向上させるべく、カム角センサ40により所定の回転角度が検出されたことを契機として、信号POS、PHASEから求められるVTC実角度(回転位相)の変化量と、信号MASから求められるVTC変化角(VTC実角度の変化量)とに基づいてモータ回転センサ50の異常の有無を判定する。より詳細には、診断処理は、例えば、気筒判別信号(第1〜第4のカム信号)のうち、吸気カムシャフト20が1回転するごとに(クランクシャフト10が2回転するごとに)出力される信号(例えば、第1のカム信号)が検出されたときに実行される。すなわち、上述の例では、診断処理は、第1気筒を示す気筒判別信号が出力されたときに実行される。
図9は、電子制御装置60が実行するVTC実角度の更新処理の一例を示すフローチャートである。この更新処理には、モータ回転センサ50の診断処理が組み込まれている。なお、更新処理は、フィードバック制御処理においてVTC目標角度が算出されたことを契機として実行される。
ステップS100では、CPU60Aは、上述したように、モータ回転センサ50のモータシャフト回転角信号MASに基づいて前回の制御タイミングから今回の制御タイミングまでの間のVTC変化角(VAR)を算出する。
ステップS102では、CPU60Aは、第1〜第4のカム信号のいずれか1つが検出されたか否か、すなわち、VTC実角度が検出されたか否かを判定する。CPU60Aは、VTC実角度が検出されたと判定すると、処理をステップS104に進める。
ステップS104では、CPU60Aは、ステップS102で検出した信号が特定の信号であるか否かを判定する。CPU60Aは、例えば、第1のカム信号を特定の信号として予め設定しておく。ただし、これに限るものではなく、CPU60Aは、第1〜第4のカム信号のうちVTC目標角度が算出された後に初めて検出されるカム信号を特定の信号として学習し、その後の処理に用いるようにしてもよい。
ステップS104において、CPU60Aは、ステップS102で検出した信号が特定の信号(上述した例では、第1のカム信号)であると判定すると、処理をステップS106に進める。
以下のステップS106〜S110では、CPU60Aは、診断処理を実行するか否かを判定すべく、以下の3つの条件が成立しているか否かを判定する。
第1の条件は、クランク角センサ30及びカム角センサ40が正常であるときに成立する。これは、クランク角センサ30及びカム角センサ40の少なくとも一方が異常である場合に、各信号POS、PHASEに基づいて誤ったVTC実角度が算出され、異常判定用のパラメータとしてVTC実角度及びVTC変化角を用いる後述の診断処理においてモータ回転センサ50の異常検出精度が悪化するおそれがあるためである。そこで、ステップS106では、CPU60Aは、クランク角センサ30及びカム角センサ40のそれぞれの検出値、例えば、センサ出力範囲又はセンサ出力変化量を監視することにより、各種センサ30、40の異常の有無を判定する。そして、CPU60Aは、各種センサ30、40が正常であると判定すると、第1の条件が成立したとみなし、処理をステップS108に進める。
第2の条件は、エンジン回転数が急変していないときに成立する。クランキング開始時などのエンジン回転数急変時では、クランクシャフト10の回転速度が急増する。この場合、例えば、第1の検知部36が突起部34の少なくとも1つを検知できず、クランク角信号POSが出力されないことがある。そのため、各信号POS、PHASEに基づいて誤ったVTC実角度が算出されるおそれがある。そこで、ステップS108では、エンジン回転数急変時に診断処理の実行を禁止すべく、CPU60Aは、例えば、クランク角信号POSに基づいて算出される単位時間当たりのエンジン回転数の変化量が所定値(回転数急変判定用の閾値)未満であるか否かを判定する。これにより、エンジン回転数が急変しているか否かを判定する。そして、CPU60Aは、エンジン回転数が急変していないと判定すると、第2の条件が成立したとみなし、処理をステップS110に進める。
ここで、VTC実角度及びVTC変化角のそれぞれは、異なるセンサ及び信号に基づいて算出されるため、異なるタイミングで検出される。そのため、電動VTC80の駆動によりVTC角度が変更されている途中であるか否かに関わらず診断処理を実行すると、例えば、VTC変化角はVTC角度の変更前に検出される一方、VTC実角度はVTC角度の変更後に検出されるなど、検出タイミングによっては誤った判定結果となるおそれがある。そこで、ステップS110では、CPU60Aは、第3の条件として、電動VTC80の駆動によるVTC角度の変更量が所定値未満であるか否か、すなわち、バルブタイミングの変更中であるか否かを判定する。この第3の条件は、バルブタイミングが変更されていないときに成立する。より詳細には、ステップS110の判定は、例えば、ステップS102で検出されステップS104で特定の信号と判定された信号(上述した例では第1のカム信号)に基づくVTC実角度とVTC実角度の前回値との差分の絶対値、すなわち、VTC実角度の変化量が所定値(VTC角度変更判定用の閾値)未満であるか否かを判定することにより実行される。そして、ステップS110において、CPU60Aは、VTC実角度の変化量が所定値未満であると判定すると、第3の条件が成立したとみなす。その後、CPU60Aは、処理をステップS112に進め、モータ回転センサ50の異常を検出する診断処理を実行する。
図10は、電子制御装置60(CPU60A)が実行するモータ回転センサ50の診断処理の一例を示すフローチャートである。ステップS200では、CPU60Aは、ステップS102で検出されステップS104で特定の信号と判定された信号(上述した例では第1のカム信号)に基づくVTC実角度(ANG)と、前回求めたVTC実角度(ANG前回値)にステップS100で検出したVTC変化角(VAR)を積算した値とを比較する。これにより、モータ回転センサ50の異常の有無が判定される。より詳細には、CPU60Aは、例えば、VTC実角度(ANG)とVTC実角度の前回値(ANG前回値)にVTC変化角(VAR)を積算した値との差分の絶対値が所定値(異常判定用の閾値)未満であるか否かを判定する(|ANG - (ANG前回値 + VAR)| < 所定値)。
すなわち、ステップS200において、CPU60Aは、カム角センサ40により所定の回転角度が検出されたことを契機として、信号POS、PHASEから求められるVTC実角度の変化量と、信号MASから求められるVTC変化角との差分の絶対値が所定値未満であるか否かを判定する。なお、エンジンが始動してからVTC実角度が初めて検出されるまでの間、CPU60Aは、例えば、VTC実角度がエンジン始動前の停止挙動中のフィードバック制御処理において算出されたVTC目標角度に収束したとみなし、このVTC目標角度をVTC実角度の前回値(ANG前回値)として処理を実行する。
ステップS200において、CPU60Aは、上述した差分の絶対値が所定値未満であると判定すると、処理をステップS202に進める。ステップS202では、CPU60Aは、モータ回転センサ50が正常であると判定し、処理をステップS204に進める。
ステップS204では、CPU60Aは、VTC実角度の最終値(ANG最終値)をステップS102で検出したVTC実角度(ANG)(すなわち、第1のカム信号に基づくVTC実角度)に更新し(ANG最終値 = ANG)、処理を終了させる。なお、モータ回転センサ50が正常と判定されているので、VTC実角度の最終値(ANG最終値)を、VTC実角度の前回値(ANG前回値)にVTC変化角(VAR)を積算した値としてもよい(ANG最終値 = ANG前回値 + VAR)。
その後、CPU60Aは、このVTC実角度の最終値(ANG最終値)を用いて、通常のバルブタイミングのフィードバック制御処理を実行する。
一方、CPU60Aは、ステップS200において、上述した差分の絶対値が所定値以上であると判定すると、処理をステップS206に進める。ステップS206では、CPU60Aは、モータ回転センサ50に異常が発生していると判定して、処理をステップS208に進める。
ステップS208では、CPU60Aは、モータ回転センサ50の異常時用フェールセーフ制御処理として、VTC実角度の最終値(ANG最終値)を、ステップS102で検出されステップS104で特定の信号と判定された信号(上述した例では第1のカム信号)に基づくVTC実角度(ANG)に更新し(ANG最終値 = ANG)、処理を終了させる。
その後、CPU60Aは、このVTC実角度の最終値(ANG最終値)を用いてバルブタイミングのフィードバック制御処理を実行する。
すなわち、モータ回転センサ50に異常が発生した場合は、異常時用フェールセーフ制御処理として、クランク角信号POS及びカム信号PHASEから求められるVTC実角度のみによってバルブタイミングのフィードバック制御処理を継続する。これにより、モータ回転センサ50の異常発生に起因する誤ったVTC実角度への更新が抑制される。したがって、誤ったモータ操作量が出力されることを回避してバルブタイミングの目標値に対するオーバーシュートを抑制することが可能となるので、エンジン性能が確保されると共に電動VTC80の駆動によるストッパの耐久性低下や固着などの二次故障の発生を抑制することができる。
また、ステップS208において、CPU60Aは、信号POS、PHASEから求められるVTC実角度のみによってバルブタイミングのフィードバック制御処理を継続することに代えて、モータ操作量の出力をオフにするフェールセーフ制御処理を実行してもよい。これにより、モータ回転センサ50に故障があった場合に、誤ったモータ操作量に基づく電動VTC80の駆動を抑制することができる。
ここで、上述したモータ回転センサ50の異常時用フェールセーフ制御処理としては、信号POS、PHASEから求められるVTC実角度のみに基づくフィードバック制御処理の継続及びモータ操作量の出力をオフにすることの他、誤ったモータ操作量によるストッパの耐久性低下及び固着を抑制すべく、ストッパ凸部82A1をストッパ凹溝20Aの対向縁20Bに固定する固定操作量を電動モータ70に出力したり、エンジン性能への影響を最小限に抑えるべく、モータ操作量の出力を制限したりしてもよい。
また、モータ回転センサ50の異常時用フェールセーフ制御処理を、例えば、ステップS200での異常判定回数の増加に応じて、信号POS、PHASEから求められるVTC実角度のみに基づくフィードバック制御処理の継続、モータ操作量の出力を制限、及び、固定操作量を出力するか又はモータ操作量の出力をオフするという順序で段階的に切り換えてもよい。
さらに、モータ回転センサ50の異常時用フェールセーフ制御を、ステップS200での異常判定レベル(例えば、異常と判定された回数又は差分の絶対値の大小)に応じて、信号POS、PHASEから求められるVTC実角度のみに基づくフィードバック制御処理の継続(差分の絶対値小)、モータ操作量の出力を制限(差分の絶対値中)、及び、固定操作量を出力するか又はモータ操作量の出力をオフする(差分の絶対値大)という順序で段階的に切り換えてもよい。すなわち、ステップS200での異常と判定された回数又は差分の絶対値の大小に応じて、フェールセーフ制御処理を段階的に切り換えることによりエンジン性能への影響を抑えることができる。
一方、ステップS102でVTC実角度が検出されなかった場合、CPU60Aは、処理をステップS114に進める。ステップS114では、CPU60Aは、VTC実角度の最終値(ANG最終値)をVTC実角度の前回値(ANG前回値)(又は初期値)にVTC変化角(VAR)を積算した値に更新し(ANG最終値 = ANG前回値 + VAR)、処理を終了させる。
その後、CPU60Aは、このVTC実角度の最終値(ANG最終値)を用いて、通常のバルブタイミングのフィードバック制御を実行する。
すなわち、VTC実角度が検出されなかった場合(すなわち、第1〜第4のカム信号が検出されなかった場合)においては、上述したように、検出頻度が高いモータ回転センサ50が検出したVTC変化角を用いることにより、VTC実角度が更新される。これにより、信号POS、PHASEに基づくVTC実角度が検出されない期間においても、VTC目標角度にVTC実角度が追従するようなモータ操作量を算出することが可能となる。したがって、バルブタイミングのフィードバック制御処理の精度を向上させることができる。
また、ステップS104において、ステップS102で検出したカム信号が特定の信号でないと判定された場合においても、CPU60Aは、処理をステップS114に進める。そして、ステップS114において、CPU60Aは、ステップS102でVTC実角度が検出されなかった場合の処理と同様、VTC変化角を用いてVTC実角度を更新する(ANG最終値 = ANG前回値 + VAR)。換言すると、検出したカム信号が特定の信号でない場合においては、VTC実角度の最終値を、特定の信号でないカム信号(例えば、第2のカム信号)に基づくVTC実角度に更新しない。これにより、ステップS112における診断処理は、特定の信号(上述した例では第1のカム信号)が出力されるごとに求められるVTC実角度の変化量、すなわち、吸気カムシャフト20が1回転するごとに求められるVTC実角度の変化量を用いて実行される。
要するに、処理開始からステップS112の診断処理が初めて実行されるまでは、VTC実角度はVTC変化角を用いて更新される。したがって、ステップS112の診断処理では、気筒判別信号のうち特定の信号(第1のカム信号)が出力されたときに求められるVTC実角度とその後吸気カムシャフト20が1回転して再び特定の信号(第1のカム信号)が出力されたときに求められるVTC実角度との差(変化量)、及び、吸気カムシャフト20が1回転するまでの間にそれぞれ求められるVTC変化角の積算値が比較される。
また、CPU60Aは、ステップS106で第1の条件を満たしていないと判定した場合には、処理をステップS116に進める。ステップS116では、CPU60Aは、クランク角センサ30及びカム角センサ40の少なくとも一方に異常が発生したと判定し、処理を終了させる。その後、CPU60Aは、クランク角センサ30及びカム角センサ40の異常時用フェールセーフ制御処理を実行する。このフェールセーフ制御処理としては、例えば、VTC実角度の最終値をVTC実角度の前回値にVTC変化角を積算した値に更新してフィードバック制御処理を継続するか、又は、モータ操作量の出力をオフにするなどの上述したモータ回転センサ50の異常時用フェールセーフ制御処理と同様の処理を実行する。
一方、ステップS108又はS110において、CPU60Aは、第2の条件又は第3の条件が成立していないと判定すると、処理をステップS114に進め、上述したように、VTC実角度の最終値を更新する。
その後、CPU60Aは、このVTC実角度の最終値(ANG最終値)を用いてバルブタイミングのフィードバック制御処理を実行する。
なお、以上では、ステップS112の診断処理は、ステップS106〜S110における3つの条件の全てが成立した場合に実行する場合について説明したが、これに限るものではない。例えば、3つの条件のうち少なくとも1つの条件が成立した場合に診断処理を実行するようにしてもよい。
なお、ステップS206でモータ回転センサ50に異常が発生したと判定された場合であっても、その異常の発生がノイズを原因とする場合など一時的である可能性がある。したがって、ステップS206で異常が発生したと判定されてから各種フェールセーフ制御処理に移行した後、ステップS200の判定により正常判定が継続すればフェールセーフ制御処理を解除してもよい。
以上説明した実施形態においては、モータ回転センサ50の診断処理は、カム角センサ40により所定の回転角度が検出されたこと(吸気カムシャフト20が1回転したこと)を契機として、クランク角信号POS及びカム信号PHASEから求められるVTC実角度の変化量と、モータシャフト回転角信号MASから求められるVTC変化角とを比較することによって実行される。ここで、VTC実角度の変化量は、第1のカム信号が検出されてから吸気カムシャフト20が1回転して再び第1のカム信号が検出されたときに求められる。すなわち、同じ突起部44が検知されて同じカム信号PHASEが出力されるごとに診断処理が実行されることにより、カム角センサ40の突起部44の製造バラツキによる影響、すなわち、VTC実角度に含まれる第1〜第4のカム信号の出力間隔に起因する誤差を抑制することが可能となる。したがって、異常判定用のパラメータ(差分)のバラツキが抑制される。これにより、差分と比較するための異常判定用の閾値を従来よりも小さく設定することが可能となるので、モータ回転センサ50の異常検出精度を向上させることができる。
ここで、従来の診断方式では、第1〜第4のカム信号が出力されるたびに、クランク角信号POS及びカム信号PHASEから求められるVTC実角度を更新していた。そして、更新前のVTC実角度(例えば、第1のカム信号に基づくVTC実角度)にモータシャフト回転角信号MASから求められるVTC変化角を積算して得られる値と、更新後のVTC実角度(例えば、第2のカム信号に基づくVTC実角度)との差分の絶対値を異常判定用の閾値と比較していた。そのため、例えば、モータ回転センサ50に異常が発生してVTC変化角が正常値よりも大きな値となってしまうような場合に、VTC変化角の積算回数が少ないため、差分の絶対値が閾値以上と判定するのに十分な大きさにならず、モータ回転センサ50の異常を正確に検出できないおそれがあった。
一方、以上説明した実施形態において、第1のカム信号が検出されたときに更新されるVTC実角度は、吸気カムシャフト20が1回転するまでの間に複数回求められる(検出される)VTC変化角を、第1のカム信号が前回出力されたときに求められたVTC実角度に積算した値となる。すなわち、本実施形態では、吸気カムシャフト20が90度回転するたびにVTC実角度を更新して診断処理を実行する従来の診断方式と比較して、VTC変化角の積算回数が増大する。これにより、例えば、上述したようなモータ回転センサ50に異常が発生してVTC変化角が正常値よりも大きい値となってしまう場合に、VTC実角度の変化量とVTC変化角との差分は、従来の診断方式において算出される差分よりも大きな値となる。したがって、従来の診断方式と比較して差分が大きな値となる分、この差分が異常判定用の閾値以上であるか否かを正確に判定することが可能となるので、モータ回転センサ50の異常検出精度を向上させることができる。
なお、以上の説明では、気筒判別信号のうち第1のカム信号が検出されたことを契機として、検出された第1のカム信号に基づくVTC実角度にVTC変化角を積算して診断処理を実行するようにしたが、これに限るものではない。例えば、気筒判別信号のうち残りのカム信号(第2〜第4のカム信号)が検出されたときに、検出されたカム信号に基づくVTC実角度にVTC変化角を積算した値を用いて診断処理を実行するようにしてもよい。すなわち、診断処理は、吸気カムシャフト20が1回転するまでの間に複数回(例えば、第1〜第4のカム信号が検出されるたびに4回)実行される。この場合においても、各診断処理は、検出されたカム信号に基づくVTC実角度にVTC変化角を積算した値を用いて実行されるので、VTC実角度の第1〜第4のカム信号の出力間隔に起因する誤差及び差分のバラツキは抑制される。なお、フィードバック制御処理に用いるVTC実角度は、第1〜第4のカム信号のいずれか1つに基づくVTC実角度を用いて更新するものとし、残りのカム信号に基づくVTC実角度は、診断処理用のパラメータとして学習しておくことが好ましい。
また、以上の説明では、VTCの制御装置を直列4気筒の4サイクルエンジンに適用したが、これに限るものではなく、少なくとも2つの気筒を有するエンジンであれば、いかなるものにも適用可能である。
なお、以上では、VTCの制御装置を吸気バルブのバルブタイミングを変更するものとして説明したが、排気バルブのバルブタイミングを変更するものであってもよい。