(57)【要約】【課題】本発明は、内燃機関と独立した原動機によりカムが駆動される動弁システムにおいて、駆動源の駆動トルクを適正に制御可能な技術の提供を課題とする。【解決手段】本発明は、カムの回転位置に相関する値を検出するセンサと、センサの検出値に基づいて原動機の駆動トルクをフィードフォワード制御する第１制御手段と、カムの実際の回転速度が目標回転速度に一致するように原動機の駆動トルクをフィードバック制御する第２制御手段と、第１制御手段により決定された駆動トルクである第１駆動トルクと第２制御手段により決定された駆動トルクである第２駆動トルクとの差に基づいてセンサの検出値を補正する補正手段と、を備えるようにした。【選択図】図６
2010024885.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関と独立した原動機によりカムを駆動する内燃機関の動弁システムにおいて、
前記カムの回転位置に相関する値を検出するセンサと、
前記センサの検出値に基づいて前記原動機の駆動トルクをフィードフォワード制御する第１制御手段と、
前記カムの実際の回転速度が目標回転速度に一致するように前記原動機の駆動トルクをフィードバック制御する第２制御手段と、
前記第１制御手段により決定された駆動トルクである第１駆動トルクと前記第２制御手段により決定された駆動トルクである第２駆動トルクとの差に基づいて前記センサの検出値を補正する補正手段と、
を備えることを特徴とする内燃機関の動弁システム。
【請求項２】
請求項１において、前記補正手段は、前記カムが正転方向へ連続回転する正転モードで動作している場合には、前記センサの検出値がバルブ閉弁タイミングを示した時点から所定の誤差検出期間における第１駆動トルクと第２駆動トルクとの差に基づいて、前記センサの検出値を補正することを特徴とする内燃機関の動弁システム。
【請求項３】
請求項１又は２において、前記補正手段は、前記カムが正転方向への回転と逆転方向への回転とを交互に繰り返す揺動モードで動作している場合には、第１駆動トルクのピーク値と第２駆動トルクのピーク値との差に基づいて前記センサの検出値を補正することを特徴とする内燃機関の動弁システム。
【請求項４】
請求項１乃至４の何れか一項において、前記カムが逆転方向へ連続回転する逆転モードで動作している場合に、前記センサの検出値がバルブ閉弁タイミングを示した時点から所定のバックラッシュ検出期間における第１駆動トルクと第２駆動トルクとの差に基づいてバックラッシュの大きさを特定する特定手段を更に備えることを特徴とする内燃機関の動弁システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関と独立した原動機によりカムを駆動する動弁システムに関する。
【背景技術】
【０００２】
内燃機関の動弁システムとして、電動モータによりカムを回転駆動或いは揺動駆動するものが提案されている（例えば、特許文献１を参照）。
【特許文献１】国際公開第２００５／１１９０１９号パンフレット
【特許文献２】特開平７−２７９８０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、上記した動弁システムにおいては、カムの動作速度（回転速度又は揺動速度）をクランクシャフトの回転速度に適合させる必要がある。これに対し、カムの回転位置をセンサにより検出し、その検出値に応じて駆動源の駆動トルクを調整する方法が考えられる。
【０００４】
しかしながら、センサの取り付け位置の誤差（以下、「取り付け誤差」と称する）等により、センサの検出値と実際の回転位置とが相違する場合がある。そのような場合は、原動機の駆動トルクを適正に制御することが困難となる可能性がある。
【０００５】
本発明は、上記した実情に鑑みてなされたものであり、その目的は、内燃機関と独立した原動機によりカムが駆動される動弁システムにおいて、駆動源の駆動トルクを適正に制御可能な技術の提供にある。
【課題を解決するための手段】
【０００６】
本発明は、上記した課題を解決するために、内燃機関と独立した原動機によりカムを駆動する内燃機関の動弁システムにおいて、原動機の実際の駆動トルクと規定の駆動トルクとの差に基づいて、カムの回転位置を検出するためのセンサの検出値を補正するようにした。
【０００７】
詳細には、本発明は、内燃機関と独立した原動機によりカムを駆動する内燃機関の動弁システムにおいて、
前記カムの回転位置に相関する値を検出するセンサと、
前記センサの検出値に基づいて前記原動機の駆動トルクをフィードフォワード制御する第１制御手段と、
前記カムの実際の回転速度が目標回転速度に一致するように前記原動機の駆動トルクをフィードバック制御する第２制御手段と、
前記第１制御手段により決定された駆動トルクである第１駆動トルクと前記第２制御手段により決定された駆動トルクである第２駆動トルクとの差に基づいて前記センサの検出値を補正する補正手段と、
を備えるようにした。
【０００８】
センサの検出値（以下、「センサ値」と称する）がカムの実際の回転位置（以下、「実回転位置」と称する）と略同等である場合は、カムの実際の回転速度（以下、「実回転速度」と称する）が目標回転速度（クランクシャフトの回転速度に適した回転速度）と略同等になる。その結果、第１駆動トルクと第２駆動トルクとは略同等になる。
【０００９】
一方、センサ値が実回転位置と相違する場合は、第１駆動トルクがカムの実回転位置に適さない大きさとなる。このため、カムの実回転速度が目標回転速度から懸け離れる。その場合は、第２駆動トルクが第１駆動トルクと相違する。その際、第１駆動トルクと第２駆動トルクとの差は、センサの検出誤差が大きくなるほど大きくなる。
【００１０】
このように、第１駆動トルクと第２駆動トルクとの差は、センサの検出誤差と相関する。よって、第１駆動トルクと第２駆動トルクとの差に基づいてセンサ値が補正されると、センサ値を実回転位置に近似させることができる。その結果、第１駆動トルクは、カムの実回転位置に適した大きさとなる。
【００１１】
本発明にかかる補正手段は、前記カムが正転方向へ連続回転する正転モードで動作している場合には、センサ値がバルブ閉弁タイミングを示した時点から所定の誤差検出期間における第１駆動トルクと第２駆動トルクとの差に基づいてセンサの検出値を補正するようにしてもよい。
【００１２】
本願発明者が鋭意に実験及び検証を行った結果、センサ値が実回転位置と相違する場合にカムが正転モードで動作すると、センサ値がバルブ閉弁タイミングを示した時点以降において第１駆動トルクと第２駆動トルクとの差が顕著になることがわかった。
【００１３】
このため、前述した誤差検出期間における第１駆動トルクと第２駆動トルクとの差に基づいてセンサ値が補正されれば、補正精度を高めることができる。
【００１４】
ここで、センサ値が実回転位置より遅角側へずれている場合にカムが正転モードで動作すると、センサ値がバルブ閉弁タイミングを示した時点以降において第２駆動トルクが第１駆動トルクを大幅に上回った後に第１駆動トルクと略同等の大きさとなる。
【００１５】
一方、センサ値が実回転位置より進角側へずれている場合にカムが正転モードで動作すると、センサ値がバルブ閉弁タイミングを示した時点以降において第２駆動トルクが第１駆動トルクを大幅に下回った後に第１駆動トルクと略同等の大きさとなる。
【００１６】
従って、上記した誤差検出期間としては、センサ値がバルブ閉弁タイミングを示した時点から第２駆動トルクが第１駆動トルクと略同等の大きさとなる時点までの期間を用いることができる。
【００１７】
このように誤差検出期間が定められた場合において、補正手段は、誤差検出期間における第２駆動トルクのピーク値（最大値又は最小値）と第１駆動トルクのピーク値（最大値又は最小値）との差に基づいて、センサ値を補正するようにしてもよい。具体的には、補正手段は、第２駆動トルクの最大値が第１駆動トルクの最大値より大きい場合は以後のセンサ値を進角側へ補正し、第２駆動トルクの最小値が第１駆動トルクの最小値より小さい場合は以後のセンサ値を遅角側へ補正してもよい。
【００１８】
また、補正手段は、誤差検出期間における第１駆動トルクと第２駆動トルクとの差の積算値を演算し、その積算値の正負及び積算値の絶対値に基づいてセンサ値を補正するようにしてもよい。
【００１９】
次に、本願発明者の鋭意の実験及び検証によると、センサ値が実回転位置と相違する場合にカムが揺動モード（正転方向への回転と逆転方向への回転とを交互に繰り返すモード）で動作すると、第１駆動トルクのピーク値（最大値又は最小値）と第２駆動トルクのピーク値（最大値又は最小値）との差が上述した誤差検出期間に限らず顕著になることもわかった。
【００２０】
例えば、センサ値が遅角側へずれている場合は、第２駆動トルクの最大値が第１駆動トルクの最大値より大きくなる。また、センサ値が進角側へずれている場合は、第２駆動トルクの最小値が第１駆動トルクの最小値より小さくなる。
【００２１】
そこで、本発明にかかる補正手段は、カムが揺動モードで動作している場合は、第１駆動トルクのピーク値と第２駆動トルクのピーク値との差に基づいて、センサ値を補正するようにしてもよい。
【００２２】
尚、上記した種々の補正方法は、センサの取り付け誤差以外の要因による検出誤差を補正する場合にも有効である。
【００２３】
次に、原動機とカムとの間にギア機構が介在している場合は、ギア機構にバックラッシュが生じる可能性がある。その場合は、センサの取り付け誤差が無くても、センサ値と実回転位置とが相違する可能性がある。
【００２４】
そこで、本発明にかかる内燃機関の動弁システムは、カムが逆転方向へ連続回転する逆転モードで動作している場合に、センサ値がバルブ閉弁タイミングを示した時点から所定のバックラッシュ検出期間における第１駆動トルクと第２駆動トルクとの差に基づいてバックラッシュの大きさを特定する特定手段を更に備えるようにしてもよい。
【００２５】
バックラッシュが生じている場合にカムが逆転モードで動作すると、センサ値が実回転位置より進角側（逆転方向の進角側）へずれた状態に陥る。このため、センサ値がバルブ閉弁タイミングを示した時点以降において、第２駆動トルクが第１駆動トルクを大幅に下回った後に第１駆動トルクと略同等の大きさとなる。
【００２６】
よって、上記したバックラッシュ検出期間としては、センサ値がバルブ閉弁タイミングを示した時点から第２駆動トルクが第１駆動トルクと略同等の大きさとなる時点までの期間を用いることができる。
【００２７】
このようにバックラッシュ検出期間が定められた場合において、該バックラッシュ検出期間における第１駆動トルクのピーク値（最小値）と第２駆動トルクのピーク値（最小値）との差、又は該バックラッシュ検出期間における第１駆動トルクと第２駆動トルクとの差の積算値は、バックラッシュ量に相関する。その結果、バックラッシュ検出期間における第１駆動トルクと第２駆動トルクとの差に応じてバックラッシュ量（バックラッシュの大きさ）を特定することができる。
【００２８】
このようにバックラッシュ量が特定されると、揺動モードにおいてカムが逆転方向へ回転している時のセンサ値を前記したバックラッシュ量で補正することが可能になる。その結果、カムが逆転方向へ回転している時の実回転位置を正確に検出することができる。
【００２９】
尚、特定手段によるバックラッシュの大きさの特定は、前述した補正手段によるセンサ取り付け誤差の補正が行われた後（すなわち、センサ値と実回転位置との差が許容値以下である場合）に行われることが望ましい。
【発明の効果】
【００３０】
本発明によれば、内燃機関と独立した原動機によりカムが駆動される動弁システムにおいて、センサの検出誤差を補正することができるため、駆動源の駆動トルクを適正に制御可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の具体的な実施形態について図面に基づいて説明する。本実施形態に記載される構成部品の寸法、材質、形状、相対配置等は、特に記載がない限り発明の技術的範囲をそれらのみに限定する趣旨のものではない。
【００３２】
＜実施例１＞
先ず、本発明の第１の実施例について図１〜図６に基づいて説明する。図１は、本発明を適用する内燃機関の概略構成を示す図である。
【００３３】
図１は、本発明を適用する内燃機関の概略構成を示す図である。図１に示す内燃機関１は、複数の気筒２を備えた４ストローク・サイクルの火花点火式内燃機関（ガソリンエンジン）である。
【００３４】
内燃機関１の各気筒２には、ピストン３が摺動自在に内装されている。ピストン３は、コネクティングロッド４を介してクランクシャフト５と連結されている。
【００３５】
気筒２の内部は、吸気ポート６及び排気ポート７と連通している。気筒２内における吸気ポート６の開口端は、吸気バルブ８により開閉される。気筒２内における排気ポート７の開口端は、排気バルブ９により開閉される。吸気バルブ８と排気バルブ９は、吸気側駆動機構１０と排気側駆動機構１１とにより各々開閉駆動される。
【００３６】
前記吸気ポート６は、吸気通路６０と連通している。前記吸気通路６０には、燃料噴射弁１２が取り付けられている。吸気通路６０内を流れる吸気は、吸気ポート６へ導かれる。吸気ポート６へ導かれた吸気は、吸気バルブ８の開弁時に気筒２内へ吸入される。その際、燃料噴射弁１２から吸気ポート６へ噴射された燃料も吸気とともに気筒２内へ吸入される。
【００３７】
気筒２内に導かれた燃料及び吸気（混合気）は、点火プラグ１３が発生する火花を火種として燃焼される。気筒２内で燃焼されたガス（既燃ガス）は、排気バルブ９の開弁時に排気ポート７へ排出される。排気ポート７は排気通路７０と連通しており、前記した既燃ガスが排気ポート７から排気通路７０を介して大気中へ排出される。
【００３８】
このように構成された内燃機関１には、ＥＣＵ１４が併設されている。ＥＣＵ１４は、ＣＰＵ、ＲＯＭ、ＲＡＭ、バックアップＲＡＭ等から構成される電子制御ユニットである。ＥＣＵ１４には、クランクポジションセンサ１５、水温センサ１６、イグニッションスイッチ１７等の各種センサと電気的に接続されている。
【００３９】
クランクポジションセンサ１５は、クランクシャフト５の回転位置に応じた信号を出力するセンサである。水温センサ１６は、内燃機関１を循環する冷却水の温度に応じた信号を出力するセンサである。
【００４０】
ＥＣＵ１４は、前記した各種センサの測定値に基づいて燃料噴射弁１２、点火プラグ１３、吸気側駆動機構１０、及び排気側駆動機構１１を電気的に制御する。
【００４１】
ここで、図２に基づいて吸気側駆動機構１０の構成を説明する。図２中の＃１〜♯４は、内燃機関１の１番気筒から４番気筒を各々表している。尚、１番気筒（＃１）から４番気筒（＃４）の燃焼順序は、１番気筒（＃１）→３番気筒（＃３）→４番気筒（＃４）→２番気筒（＃２）である。
【００４２】
１番気筒（＃１）から４番気筒（＃４）の各々には、２つの吸気バルブ８が設けられて
いる。吸気バルブ８のステム基端には、バルブリフタ８０が取り付けられている。吸気バルブ８はバルブスプリング８７によって閉弁方向へ付勢されており、その付勢力によってバルブリフタ８０が第１吸気カム８１又は第２吸気カム８２に押し付けられている。
【００４３】
第１吸気カム８１は、１番気筒（＃１）及び４番気筒（＃４）の吸気バルブ８を開閉駆動させるカムであり、第１吸気カムシャフト８３に固定されている。第２吸気カム８２は、２番気筒（＃２）及び３番気筒（＃３）の吸気バルブ８を開閉駆動するカムであり、第２吸気カムシャフト８４に固定されている。すなわち、本実施例では、燃焼時期が３６０度異なる２つの気筒が１本の吸気カムシャフトを共用するように構成されている。
【００４４】
第１吸気カムシャフト８３と第２吸気カムシャフト８４は、同軸に配置されるとともに、互いに独立して周方向へ回転或いは揺動可能に内燃機関１に支持されている。
【００４５】
第１吸気カムシャフト８３の一端には、第１ドリブンギヤ８５が固定されている。第１ドリブンギヤ８５は、第１モータ１８の出力軸に固定された第１出力ギア１９と噛合している。以下では、第１ドリブンギヤ８５及び第１出力ギア１９を第１減速機構と総称する。
【００４６】
この場合、第１モータ１８の回転トルクは、第１減速機構を介して第１吸気カムシャフト８３へ伝達される。よって、第１モータ１８は、第１減速機構を介して第１吸気カムシャフト８３を周方向へ回転又は揺動させることができる。
【００４７】
第２吸気カムシャフト８４の外周面の一部には、第２ドリブンギヤ８６が同軸に固定されている。第２ドリブンギヤ８６は、第２モータ２１の出力軸に固定された第２出力ギア２２と噛合している。以下では、第２ドリブンギヤ８６及び第２出力ギア２２を第２減速機構と総称する。第２減速機構による減速比は、前述した第１減速機構と同等であるものとする。
【００４８】
この場合、第２モータ２１の回転トルクは、第２減速機構を介して第２吸気カムシャフト８４へ伝達される。よって、第２モータ２１は、第２減速機構を介して第２吸気カムシャフト８４を周方向へ回転又は揺動させることができる。
【００４９】
前記した第１モータ１８には、該第１モータ１８の出力軸の回転角度を検出する第１レゾルバ２０が取り付けられている。前記した第２モータ２１には、該第２モータ２１の出力軸の回転角度を検出する第２レゾルバ２３が取り付けられている。これら第１レゾルバ２０及び第２レゾルバ２３の検出信号は、ＥＣＵ１４へ入力されるようになっている。
【００５０】
また、前記第１吸気カムシャフト８３には第１カムポジションセンサ３０が取り付けられ、前記第２吸気カムシャフト８４には第２カムポジションセンサ３１が取り付けられている。これら第１カムポジションセンサ３０及び第２カムポジションセンサ３１の検出信号は、ＥＣＵ１４へ入力されるようになっている。
【００５１】
尚、排気側駆動機構１１の構成については説明を省略するが、吸気側駆動機構１０と同様にモータとカムシャフトが各々２つ設けられる構成であってもよく、又は、モータとカムシャフトが各々１つ設けられる構成であってもよい。
【００５２】
このように構成された動弁系では、クランクシャフト５の回転に同期したタイミングで各モータを回転動作又は揺動動作させることにより、１番気筒（＃１）から４番気筒（＃４）の吸気バルブ８及び排気バルブ９がクランクシャフト５の回転に同期したタイミング（すなわち、１番気筒（＃１）〜４番気筒（＃４）の燃焼サイクルに同期したタイミング
）で開閉可能となる。
【００５３】
例えば、ＥＣＵ１４は、第１カムポジションセンサ３０および／または第１レゾルバ２０の検出信号に基づいて第１吸気カムシャフト８３の回転位置（以下、「センサ値」と称する）を特定し、特定されたセンサ値に応じて第１モータ１８の駆動トルク（第１モータ１８に印加される駆動電流値）をフィードフォワード制御する。
【００５４】
フィードフォワード制御により決定される駆動トルク（以下、「Ｆ／Ｆ駆動トルク」と称する）Ｔｆｆは、概ね図３に示すような波形となる。すなわち、Ｆ／Ｆ駆動トルクＴｆｆは、吸気バルブ８の開弁動作期間（リフト開始から最大リフト量Ｄｍａｘ到達までの期間Ｐｏｐｅｎ）においては正値を示し、吸気バルブ８の閉弁動作期間（最大リフト量Ｄｍａｘからリフト終了までの期間Ｐｃｌｏｓｅ）おいては負値を示す。
【００５５】
詳細には、Ｆ／Ｆ駆動トルクＴｆｆは、吸気バルブ８がリフトしていない時（閉弁時）は、基準トルクＴ０に等しくなる。吸気バルブ８がリフトし始めると、駆動トルクＴｆｆが基準トルクＴ０より増加される。その際の増加量は、吸気バルブ８のリフト量が増加するほど多くされる。また、吸気バルブ８のリフト量が最大リフト量Ｄｍａｘを超えると、駆動トルクＴｆｆは基準トルクＴ０より小さな負値へ減少される。その後、駆動トルクＴｆｆは、吸気バルブ８のリフト量が小さくなるにつれて増加され、吸気バルブ８のリフト量が零になった時に基準トルクＴ０となる。
【００５６】
尚、上記した基準トルクＴ０は、１番気筒（＃１）及び４番気筒（＃４）の吸気バルブ８がリフトしていない状態にある時に、第１吸気カムシャフト８３を目標回転速度で回転させるために必要な駆動トルクであり、例えば第１吸気カムシャフト８３のフリクションの大きさに基づいて定められる。
【００５７】
このように、ＥＣＵ１４がセンサ値に基づいて第１モータ１８の駆動トルクをフィードフォワード制御することにより、本発明にかかる第１制御手段が実現される。
【００５８】
次に、ＥＣＵ１４は、第１カムポジションセンサ３０および／または第１レゾルバ２０の検出信号に基づいて第１吸気カムシャフト８３の実回転速度を算出し、算出された回転速度が目標回転速度（クランクシャフト５の回転速度に適合した回転速度）と一致するように第１モータ１８の駆動トルクをフィードバック制御する。
【００５９】
詳細には、ＥＣＵ１４は、第１吸気カムシャフト８３の実回転速度が目標回転速度より遅い時は駆動トルクを増加補正し、第１吸気カムシャフト８３の実回転速度が目標回転速度より速い時は駆動トルクを減少補正する。
【００６０】
このように、ＥＣＵ１４が第１吸気カムシャフト８３の実回転速度に基づいて第１モータ１８の駆動トルクをフィードバック制御することにより、本発明にかかる第２制御手段が実現される。
【００６１】
ところで、フィードフォワード制御に使用されるセンサ値が実回転位置と相違（検出誤差）する場合がある。その主な要因としては、第１カムポジションセンサ３０や第１レゾルバ２０等のセンサの取り付け誤差が考えられる。このような要因によりセンサ値と実回転位置とが相違すると、Ｆ／Ｆ駆動トルクＴｆｆが第１吸気カムシャフト８３の実回転位置に対して不適当な値にある可能性がある。
【００６２】
そこで、本実施例の動弁システムでは、各モータの駆動トルク（各モータに印加される駆動電流値）に基づいて、センサの取り付け誤差等に起因したセンサの検出誤差を補正す
るようにした。以下、センサの検出誤差を補正する方法について、第１吸気カムシャフト８３を例に挙げて説明する。
【００６３】
センサの検出誤差が略零となる場合には、前述したフィードバック制御により補正された駆動トルク（以下、「Ｆ／Ｂ駆動トルク」と称する）Ｔｆｂは、前述したＦ／Ｆ駆動トルクＴｆｆと略同じ波形（図３を参照）を示す。
【００６４】
これに対し、センサの検出誤差が生じた場合には、Ｆ／Ｂ駆動トルクＴｆｂは、Ｆ／Ｆ駆動トルクＴｆｆと異なる波形を示す。特に、第１吸気カムシャフト８３が正転方向へ連続回転（正転モード）している場合は、吸気バルブ８の閉弁タイミング（吸気バルブ８のリフト量が零となる時点）以降において両者の差が顕著となることが本願発明者によって見出された。
【００６５】
図４は、センサ値が実回転位置より遅れる場合（すなわち、センサ値が実回転位置より遅角側にずれている場合）の駆動トルクＴｆｆ，Ｔｆｂを示す図である。図４においては、センサ値が吸気バルブ８の閉弁タイミングを示した時点の前後における駆動トルクＴｆｆ，Ｔｆｂを示している。
【００６６】
センサ値が実回転位置より遅れる場合は、センサ値が吸気バルブ８の閉弁タイミングを示す時期（図４中のＡｓ）は、実際の閉弁タイミング（図４中のＡｒ）よりも遅くなる。このため、Ｆ／Ｆ駆動トルクＴｆｆ（図４中の一点破線）は、実際の閉弁タイミングＡｒ以降も負の値を示す。その結果、第１吸気カムシャフト８３の回転速度は、目標回転速度を下回ることになる。
【００６７】
これに対し、Ｆ／Ｂ駆動トルクＴｆｂ（図４中の実線）は、第１吸気カムシャフト８３の回転速度を増速させるために増加される。このため、センサ値が吸気バルブ８の閉弁タイミングを示した時期Ａｓ以降において、Ｆ／Ｂ駆動トルクＴｆｂがＦ／Ｆ駆動トルクＴｆｆ（＝基準トルクＴ０）を大幅に上回る。その後は、第１吸気カムシャフト８３の実回転速度が目標回転速度に近づくにつれて、Ｆ／Ｂ駆動トルクＴｆｂがＦ／Ｆ駆動トルクＴｆｆ（基準トルクＴ０）に近似する。
【００６８】
次に、センサ値が実回転位置より早くなる場合（センサ値が実回転位置より進角側へずれる場合）の駆動トルクＴｆｆ，Ｔｆｂを図５に示す。この場合は、センサ値が吸気バルブ８の閉弁タイミングを示す時期（図５中のＡｓ）は、実際の閉弁タイミング（図５中のＡｒ）よりも早くなる。このため、Ｆ／Ｆ駆動トルクＴｆｆ（図５中の一点破線）は、吸気バルブ８が実際に閉弁する前に基準トルクＴ０となる。その結果、第１吸気カムシャフト８３の回転速度は、目標回転速度を上回ることになる。
【００６９】
これに対し、Ｆ／Ｂ駆動トルクＴｆｂ（図５中の実線）は、第１吸気カムシャフト８３の回転速度を減速させるために減少される。このため、センサ値が吸気バルブ８の閉弁タイミングを示した時期Ａｓ以降において、Ｆ／Ｂ駆動トルクＴｆｂがＦ／Ｆ駆動トルクＴｆｆ（＝基準トルクＴ０）を大幅に下回る。その後は、第１吸気カムシャフト８３の実回転速度が目標回転速度に近づくにつれて、Ｆ／Ｂ駆動トルクＴｆｂがＦ／Ｆ駆動トルクＴｆｆ（基準トルクＴ０）に近似する。
【００７０】
前述の図４，５に示した現象を定量的に捉えることができれば、センサの検出誤差を特定することができる。これに対し、本願発明者は、センサ値が吸気バルブ８の閉弁タイミングを示した時点Ａｓから所定期間（誤差検出期間）におけるＦ／Ｆ駆動トルクＴｆｆのピーク値とＦ／ＢＶ駆動トルクのピーク値との差、又は、誤差検出期間におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとの差の積算値がセンサの検出誤差と相関する
ことを見出した。
【００７１】
尚、前記した誤差検出期間の終了時期としては、図４，５に示したように、Ｆ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとが同等になる時期（言い換えれば、Ｆ／Ｂ駆動トルクＴｆｂが基準トルクＴ０に収束する時期）を例示することができる。また、ここでいうピーク値は、最大値又は最小値である。
【００７２】
以下では、誤差検出期間におけるＦ／Ｆ駆動トルクＴｆｆのピーク値とＦ／Ｂ駆動トルクＴｆｂのピークとの差に基づいて、センサの検出誤差を補正する例について述べる。
【００７３】
先ず、ＥＣＵ１４は、誤差検出期間において、Ｆ／Ｆ駆動トルクＴｆｆのピーク値ＴｆｆｐｅａｋとＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋとを求める。詳細には、ＥＣＵ１４は、Ｆ／Ｆ駆動トルクＴｆｆのピーク値Ｔｆｆｐｅａｋとして、Ｆ／Ｆ駆動トルクＴｆｆの最大値（以下、「Ｆ／Ｆ最大トルク」と称する）Ｔｆｆｍａｘと、Ｆ／Ｆ駆動トルクＴｆｆの最小値（以下、「Ｆ／Ｆ最小トルク」と称する）Ｔｆｆｍｉｎとを求める。また、ＥＣＵ１４は、Ｆ／Ｂ駆動トルクＴｆｂトルクのピーク値Ｔｆｂｐｅａｋとして、Ｆ／Ｂ駆動トルクＴｆｂの最大値（以下、「Ｆ／Ｂ最大トルク」と称する）Ｔｆｂｍａｘと、Ｆ／Ｂ駆動トルクＴｆｂの最小値（以下、「Ｆ／Ｂ最小トルク」と称する）Ｔｆｂｍｉｎと、を求める。
【００７４】
続いて、ＥＣＵ１４は、Ｆ／Ｂ最大トルクＴｆｂｍａｘがＦ／Ｆ最大トルクＴｆｆｍａｘより大きいか否か、又はＦ／Ｂ最小トルクＴｆｂｍｉｎがＦ／Ｆ最小トルクＴｆｆｍｉｎより小さいか否かを判別する。
【００７５】
Ｆ／Ｂ最大トルクＴｆｂｍａｘがＦ／Ｆ最大トルクＴｆｆｍａｘより大きい場合は、前述した図４の説明で述べたように、センサ値が遅角側へずれていることになる。この場合は、ＥＣＵ１４は、以後のセンサ値を進角側へ補正する。その際の補正量は、Ｆ／Ｂ最大トルクＴｆｂｍａｘとＦ／Ｆ最大トルクＴｆｆｍａｘとの差△Ｔｍａｘの絶対値が大きくなるほど多くされる。
【００７６】
また、Ｆ／Ｂ最小トルクＴｆｂｍｉｎがＦ／Ｆ最小トルクＴｆｆｍｉｎより小さい場合は、前述した図５の説明で述べたように、センサ値が進角側へずれていることになる。この場合は、ＥＣＵ１４は、以後のセンサ値を遅角側へ補正する。その際の補正量は、Ｆ／Ｂ最小トルクＴｆｂｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎの絶対値が大きくなるほど多くされる。
【００７７】
これらの補正処理は、前記した差△Ｔｍａｘ，△Ｔｍｉｎの絶対値が予め定められた許容値△α値以下に収束するまで繰り返されることが好ましい。
【００７８】
ここで、センサ検出誤差の補正手順について図６に沿って説明する。図６は、センサ検出誤差の補正制御ルーチンを示すフローチャートである。このルーチンは、内燃機関１の運転時に周期的に行われてもよく、或いは内燃機関１の始動時に行われてもよい。また、このルーチンは、内燃機関１のクランキング開始前に各カムシャフトを正転モードで動作させた上で実行されるようにしてもよい。
【００７９】
図６のルーチンにおいて、ＥＣＵ１４は先ずＳ１０１の処理を実行する。Ｓ１０１では、ＥＣＵ１４は、カム（カムシャフト）が正転モードで動作しているか否かを判別する。Ｓ１０１において否定判定された場合は、ＥＣＵ１４は本ルーチンの実行を終了する。一方、Ｓ１０１において肯定判定された場合は、ＥＣＵ１４はＳ１０２へ進む。
【００８０】
Ｓ１０２では、ＥＣＵ１４は、カム（カムシャフト）の回転位置（センサ値）Ａｃａｍを読み込む。続いて、ＥＣＵ１４は、Ｓ１０３へ進み、前記Ｓ１０２で読み込まれたセンサ値Ａｃａｍが誤差検出期間に属しているか否かを判別する。好ましくは、ＥＣＵ１４は、Ｓ１０３において、前記センサ値Ａｃａｍが誤差検出期間の開始時期（吸気バルブ８の閉弁タイミング）を示しているか否かを判別する。
【００８１】
前記Ｓ１０３において否定判定された場合は、ＥＣＵ１４は本ルーチンの実行を終了する。一方、前記Ｓ１０３において肯定判定された場合は、ＥＣＵ１４はＳ１０４へ進む。
【００８２】
Ｓ１０４では、ＥＣＵ１４は、Ｆ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとのモニタリングを開始し、Ｆ／Ｆ駆動トルクＴｆｆのピーク値Ｔｆｆｐｅａｋ（Ｔｆｆｍａｘ，Ｔｆｆｍｉｎ）とＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋ（Ｔｆｂｍａｘ，Ｔｆｂｍｉｎ）とを特定する。
【００８３】
Ｓ１０５では、ＥＣＵ１４は、前記Ｓ１０４で特定されたＦ／Ｆ駆動トルクＴｆｆのピーク値ＴｆｆｐｅａｋとＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋとの差の絶対値（＝｜Ｔｆｂｐｅａｋ−Ｔｆｆｐｅａｋ｜）が許容値△α以下であるか否かを判別する。
【００８４】
詳細には、ＥＣＵ１４は、Ｆ／Ｆ最大トルクＴｆｆｍａｘとＦ／Ｂ最大トルクＴｆｂｍａｘとの差△Ｔｍａｘの絶対値（｜△Ｔｍａｘ｜＝｜Ｔｆｂｍａｘ−Ｔｆｆｍａｘ｜）が許容値△α以下であり、且つ、Ｆ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎの絶対値（｜△Ｔｍｉｎ｜＝｜Ｔｆｂｍｉｎ−Ｔｆｆｍｉｎ｜）が許容値△α以下であるか否かを判別する。
【００８５】
前記Ｓ１０５において肯定判定された場合（｜△Ｔｍａｘ｜≦△α、且つ、｜△Ｔｍｉｎ｜≦△α）は、ＥＣＵ１４は、センサ値の補正を行わずに本ルーチンの実行を終了する。一方、前記Ｓ１０５において否定判定された場合（｜△Ｔｍａｘ｜＞△α、又は、｜△Ｔｍｉｎ｜＞△α）は、ＥＣＵ１４はＳ１０６へ進む。
【００８６】
Ｓ１０６では、ＥＣＵ１４は、センサ値の補正を行う。具体的には、ＥＣＵ１４は、以下の式にセンサ値、Ｆ／Ｆ駆動トルクＴｆｆのピーク値ＴｆｆｐｅａｋとＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋを代入することにより、補正後のセンサ値Ａｃａｍｒを求める。
Ａｃａｍｒ＝Ａｃａｍ＋（Ｔｆｂｐｅａｋ−Ｔｆｆｐｅａｋ）＊ｋ
【００８７】
上記の式におけるｋは、駆動トルクをカム（カムシャフト）の回転角度に変換する係数である。
【００８８】
尚、Ｆ／Ｆ最大トルクＴｆｆｍａｘとＦ／Ｂ最大トルクＴｆｂｍａｘとの差△Ｔｍａｘの絶対値が許容値△αより大きい場合は、ＴｆｆｐｅａｋとしてＴｆｆｍａｘを代入するとともに、ＴｆｂｐｅａｋとしてＴｆｂｐｅａｋを代入するものとする。また、Ｆ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎの絶対値が許容値△αより大きい場合は、ＴｆｆｐｅａｋとしてＴｆｆｍｉｎを代入するとともに、ＴｆｂｐｅａｋとしてＴｆｂｍｉｎを代入するものとする。
【００８９】
このようにＥＣＵ１４が図６のルーチンを実行することにより、本発明にかかる補正手段が実現される。その結果、センサの取り付け誤差等に起因したセンサ値と実回転位置との差が許容範囲内（許容値△α以下）に収まるようになる。よって、以後のフィードフォワード制御においてＦ／Ｆ駆動トルクＴｆｆがカム（カムシャフト）の実回転位置に適し
た値になる。
【００９０】
尚、本実施例では、誤差検出期間におけるＦ／Ｆ駆動トルクＴｆｆのピーク値とＦ／Ｂ駆動トルクＴｆｂのピーク値との差に基づいてセンサ検出誤差を補正する例について述べたが、誤差検出期間におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとの差を積算し、その積算値に基づいてセンサ検出誤差を補正することもできる。
【００９１】
＜実施例２＞
次に、本発明の第２の実施例について図７〜図１０に基づいて説明する。ここでは、前述した第１の実施例と異なる構成について説明し、同様の構成については説明を省略する。
【００９２】
前述した第１の実施例では、カム（カムシャフト）が正転モードで動作している場合にセンサ検出誤差を補正する方法について述べたが、本実施例ではカム（カムシャフト）が揺動モードで動作している場合にセンサ検出誤差を補正する方法について述べる。
【００９３】
本願発明者の知見によれば、センサ検出誤差が生じている場合にカム（カムシャフト）が揺動モードで動作すると、Ｆ／Ｆ駆動トルクＴｆｆのピーク値とＦ／Ｂ駆動トルクＴｆｂのピーク値との間に顕著な差が表れる。この現象の発生時期は、前述した誤差検出期間に限られない。
【００９４】
図７は、第１吸気カムシャフト８３を揺動モードで動作させた時のＦ／Ｆ駆動トルクＴｆｆを示す図である。図７に示すように、Ｆ／Ｆ駆動トルクＴｆｆは、１番気筒（＃１）のリフト量が最大リフト量Ｄｍａｘに到達する直前（言い換えれば、第１モータ１８の回転方向が正転方向から逆転方向へ変更される直前）において最大値（Ｆ／Ｆ最大トルク）Ｔｆｆｍａｘを示すとともに、４番気筒（＃４）のバルブリフト量が最大リフト量Ｄｍａｘに到達する直前（言い換えれば、第１モータ１８の回転方向が逆転方向から正転方向へ変更される直前）において最小値（Ｆ／Ｆ最小トルク）Ｔｆｆｍｉｎを示す。
【００９５】
ここで、センサ値と実回転位置との差が許容範囲内に収まっている場合は、Ｆ／Ｂ駆動トルクＴｆｂは、前述した図７に示したＦ／Ｆ駆動トルクＴｆｆと略同等の波形を示す。つまり、Ｆ／Ｂ駆動トルクＴｆｂの最大値（Ｆ／Ｂ最大トルク）Ｔｆｂｍａｘ及び最小値（Ｆ／Ｂ最小トルク）Ｔｆｂｍｉｎは、Ｆ／Ｆ最大トルクＴｆｆｍａｘ及びＦ／Ｆ最小トルクＴｆｆｍｉｎと略同等の値を示す。
【００９６】
しかしながら、センサ値と実回転位置との差が許容範囲を超えると、Ｆ／Ｂ最大トルクＴｆｂｍａｘとＦ／Ｆ最大トルクＴｆｆｍａｘとの間、又は、Ｆ／Ｂ最小トルクＴｆｂｍｉｎとＦ／Ｆ最小トルクＴｆｆｍｉｎとの間に顕著な差が表れる。
【００９７】
図８は、センサ値が実回転位置より遅れる場合（センサ値が実回転位置より正転方向の遅角側へずれている場合）のＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとを示す図である。図８中において、実線はＦ／Ｂ駆動トルクＴｆｂを示し、一点破線はＦ／Ｆ駆動トルクＴｆｆを示している。
【００９８】
センサ値が実回転位置より遅れた場合には、Ｆ／Ｂ駆動トルクＴｆｂの最大値（Ｆ／Ｂ最大トルク）Ｔｆｂｍａｘは、Ｆ／Ｆ駆動トルクＴｆｆの最大値（Ｆ／Ｆ最大トルク）Ｔｆｆｍａｘを大幅に上回るようになる。その際、Ｆ／Ｂ最大トルクＴｆｂｍａｘとＦ／Ｆ最大トルクＴｆｆｍａｘとの差△Ｔｍａｘは、センサ検出誤差が大きくなるほど大きくなる。
【００９９】
図９は、センサ値が実回転位置より早い場合（センサ値が実回転位置より正転方向の進角側へずれている場合）のＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂを示す図である。図９において、実線はＦ／Ｂ駆動トルクＴｆｂを示し、一点破線はＦ／Ｆ駆動トルクＴｆｆを示している。
【０１００】
センサ値が実回転位置より早くなった場合には、Ｆ／Ｂ最小トルクＴｆｂｍｉｎは、Ｆ／Ｆ最小トルクＴｆｆｍｉｎ値を大幅に下回るようになる。その際、Ｆ／Ｂ最小トルクＴｆｂｍｉｎとＦ／Ｆ最小トルクＴｆｆｍｉｎとの差△Ｔｍｉｎは、センサ検出誤差が大きくなるほど大きくなる。
【０１０１】
従って、第１吸気カムシャフト８３が揺動モードで動作している時のＦ／Ｆ駆動トルクＴｆｆのピーク値ＴｆｆｐｅａｋとＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋとの差に基づいてセンサの検出誤差を特定することができる。
【０１０２】
そこで、本実施例では、ＥＣＵ１４は、カム（カムシャフト）が揺動モードで動作している時のＦ／Ｆ駆動トルクＴｆｆのピーク値ＴｆｆｐｅａｋとＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋとの差に基づいて、センサの検出誤差を補正するようにした。
【０１０３】
詳細には、ＥＣＵ１４は、先ず、カム（カムシャフト）が揺動モードで動作している時に、Ｆ／Ｆ駆動トルクＴｆｆのピーク値ＴｆｆｐｅａｋとＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋとを求める。すなわち、ＥＣＵ１４は、Ｆ／Ｆ最大トルクＴｆｆｍａｘ、Ｆ／Ｆ最小トルクＴｆｆｍｉｎ、Ｆ／Ｂ最大トルクＴｆｂｍａｘ、及びＦ／Ｂ最小トルクＴｆｂｍｉｎを求める。
【０１０４】
続いて、ＥＣＵ１４は、Ｆ／Ｂ最大トルクＴｆｂｍａｘがＦ／Ｆ最大トルクＴｆｆｍａｘより大きいか否か、又はＦ／Ｂ最小トルクＴｆｂｍｉｎがＦ／Ｆ最小トルクＴｆｆｍｉｎより小さいか否かを判別する。
【０１０５】
Ｆ／Ｂ最大トルクＴｆｂｍａｘがＦ／Ｆ最大トルクＴｆｆｍａｘより大きい場合は、前述した図８の説明で述べたように、センサ値が正転方向の遅角側へずれていることになる。この場合は、ＥＣＵ１４は、以後のセンサ値を正転方向の進角側へ補正する。その際の補正量は、Ｆ／Ｂ最大トルクＴｆｂｍａｘとＦ／Ｆ最大トルクＴｆｆｍａｘとの差△Ｔｍａｘの絶対値が大きくなるほど多くされる。
【０１０６】
また、Ｆ／Ｂ最小トルクＴｆｂｍｉｎがＦ／Ｆ最小トルクＴｆｆｍｉｎより小さい場合は、前述した図９の説明で述べたように、センサ値が正転方向の進角側へずれていることになる。この場合は、ＥＣＵ１４は、以後のセンサ値を正転方向の遅角側へ補正する。その際の補正量は、Ｆ／Ｂ最小トルクＴｆｂｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎの絶対値が大きくなるほど多くされる。
【０１０７】
これらの補正処理は、前記した差△Ｔｍａｘ，△Ｔｍｉｎの絶対値が予め定められた許容値△β値以下に収束するまで繰り返されることが好ましい。
【０１０８】
以下、センサ検出誤差の補正手順について図１０に沿って説明する。図１０は、センサ検出誤差の補正制御ルーチンを示すフローチャートである。図１０において、前述した第１の実施例の補正制御ルーチンと同様の処理には同一の符号が付されている。
【０１０９】
図１０のルーチンにおいて、ＥＣＵ１４は先ずＳ２０１の処理を実行する。Ｓ２０１では、ＥＣＵ１４は、カム（カムシャフト）が揺動モードで動作しているか否かを判別する。Ｓ２０１において否定判定された場合は、ＥＣＵ１４は本ルーチンの実行を終了する。
一方、Ｓ２０１において肯定判定された場合は、ＥＣＵ１４はＳ２０２へ進む。
【０１１０】
Ｓ２０２では、ＥＣＵ１４は、Ｆ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとのモニタリングを開始する。モニタリングの実施期間は、各気筒２の吸気バルブ８が少なくとも１回の開閉動作を完了可能な期間である。例えば、第１吸気カムシャフト８３の場合は、１番気筒（＃１）の吸気バルブ８と４番気筒（＃４）の吸気バルブ８が少なくとも１回開閉動作する期間をモニタリング実施期間に定めればよい。ＥＣＵ１４は、上記したモニタリングの結果に基づいて、Ｆ／Ｆ駆動トルクＴｆｆのピーク値Ｔｆｆｐｅａｋ（Ｔｆｆｍａｘ，Ｔｆｆｍｉｎ）とＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋ（Ｔｆｂｍａｘ，Ｔｆｂｍｉｎ）とを特定する。
【０１１１】
続いて、ＥＣＵ１４は、Ｓ２０３へ進み、前記Ｓ２０２で特定されたＦ／Ｆ駆動トルクＴｆｆのピーク値ＴｆｆｐｅａｋとＦ／Ｂ駆動トルクＴｆｂのピーク値Ｔｆｂｐｅａｋとの差の絶対値（＝｜Ｔｆｂｐｅａｋ−Ｔｆｆｐｅａｋ｜）が許容値△β以下であるか否かを判別する。詳細には、ＥＣＵ１４は、Ｆ／Ｆ最大トルクＴｆｆｍａｘとＦ／Ｂ最大トルクＴｆｂｍａｘとの差△Ｔｍａｘの絶対値（｜△Ｔｍａｘ｜＝｜Ｔｆｂｍａｘ−Ｔｆｆｍａｘ｜）が許容値△β以下であり、且つ、Ｆ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎの絶対値（｜△Ｔｍｉｎ｜＝｜Ｔｆｂｍｉｎ−Ｔｆｆｍｉｎ｜）が許容値△β以下であるか否かを判別する。尚、許容値△βは、予め実験的に適合された値であってもよく、又は前述した許容値△αと同等の値に設定されてもよい。
【０１１２】
前記Ｓ２０３において肯定判定された場合（｜△Ｔｍａｘ｜≦△β、且つ、｜△Ｔｍｉｎ｜≦△β）は、ＥＣＵ１４は、センサ値の補正を行わずに本ルーチンの実行を終了する。一方、前記Ｓ２０３において否定判定された場合（｜△Ｔｍａｘ｜＞△β、又は、｜△Ｔｍｉｎ｜＞△β）は、ＥＣＵ１４はＳ１０６へ進む。
【０１１３】
このようにＥＣＵ１４が図１０のルーチンを実行することにより、本発明にかかる第２補正手段が実現される。その結果、前述した第１の実施例と同様の効果を得ることができる。
【０１１４】
尚、前述した第１の実施例と本実施例とは組み合わされてもよい。すなわち、カム（カムシャフト）が正転モードで動作している時は前述した第１の実施例の方法によりセンサ検出誤差を補正し、カム（カムシャフト）が揺動モードで動作している時は本実施例の方法によりセンサ検出誤差を補正するようにしてもよい。
【０１１５】
＜実施例３＞
次に、本発明の第３の実施例について図１１〜図１３に基づいて説明する。ここでは、前述した第１及び第２の実施例と異なる構成について説明し、同様の構成については説明を省略する。
【０１１６】
前述した第１及び第２の実施例では、センサ検出誤差を補正する方法について述べたが、本実施例では減速機構のバックラッシュ量を特定する方法について述べる。
【０１１７】
前述した図２の説明で述べたように、各モータ１８，２１と各カムシャフト８３，８４との間に減速機構が介在している場合は、該減速機構にバックラッシュが生じる可能性がある。減速機構にバックラッシュが生じると、揺動モードにおいてカム（カムシャフト）が逆転する時にカムシャフトの回転位置とモータの回転位置との間にずれが生じる。よって、レゾルバの検出信号に基づいてカムシャフトの回転位置が特定される場合には、センサ値と実回転位置とが相違することになる。
【０１１８】
そこで、本実施例では、カム（カムシャフト）を逆転方向へ連続回転させた時のＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとの差に基づいてバックラッシュの大きさ（単位は、カムの回転角度量）を特定するようにした。
【０１１９】
以下、本実施例におけるバックラッシュ量の特定方法について述べる。尚、正転モードにおけるセンサ値は実回転位置と一致しているものとする。
【０１２０】
減速機構にバックラッシュが生じている場合にカム（カムシャフト）が逆転モードで回転すると、センサ値が実回転位置よりバックラッシュの大きさの分だけ早くなる（センサ値が実回転位置より逆転方向の進角側へずれる）。
【０１２１】
よって、前述した図５の説明で述べた現象と同等の現象が表れる。すなわち、センサ値が吸気バルブ８の閉弁タイミングを示した時点以降の所定期間（図１１中のＰ１を参照）において、Ｆ／Ｂ駆動トルクＴｆｂがＦ／Ｆ駆動トルクＴｆｆを大幅に下回ることになる（図１２を参照）。尚、図１２中の実線はＦ／Ｂ駆動トルクＴｆｂを示し、一点破線はＦ／Ｆ駆動トルクＴｆｆを示す。
【０１２２】
前記した所定期間（バックラッシュ検出期間）Ｐ１におけるＦ／Ｆ駆動トルクＴｆｆの最小値（Ｆ／Ｆ最小トルク）ＴｆｆｍｉｎとＦ／Ｂ駆動トルクＴｆｂの最小値（Ｆ／Ｂ最小トルク）Ｔｆｂｍｉｎとの差△Ｔｍｉｎ、又は、前記バックラッシュ検出期間Ｐ１におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとの差の積算値がバックラッシュの大きさに相関する。
【０１２３】
このため、バックラッシュ検出期間Ｐ１におけるＦ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎ、又は、バックラッシュ検出期間Ｐ１におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとの差の積算値を求めることにより、バックラッシュの大きさを特定することができる。
【０１２４】
尚、前記したバックラッシュ検出期間Ｐ１の終了時期としては、前述した誤差検出期間と同様に、Ｆ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとが同等になる時期（言い換えれば、Ｆ／Ｂ駆動トルクＴｆｂが基準トルクＴ０に収束する時期）を例示することができる。
【０１２５】
ここで、バックラッシュの大きさを特定する手順について図１３に沿って説明する。図１３は、バックラッシュの大きさを特定するための制御ルーチンである。この制御ルーチンは、ＥＣＵ１４のＲＯＭに予め記憶されているルーチンである。この制御ルーチンの実行タイミングとしては、内燃機関１のクランキング開始前や内燃機関１のフューエルカット運転時等のように、カム（カムシャフト）が逆転モードで動作しても内燃機関１の運転状態に影響を与え難いタイミングを例示することができる。
【０１２６】
図１３の制御ルーチンでは、ＥＣＵ１４は、先ずＳ３０１においてセンサ検出誤差が補正済みであるか否かを判別する。例えば、ＥＣＵ１４は、前述した第１の実施例で述べたセンサ検出誤差の補正制御が実行済みであるか否かを判別する。Ｓ３０１において否定判定された場合は、ＥＣＵ１４は、本ルーチンの実行を終了する。一方、Ｓ３０１において肯定判定された場合は、ＥＣＵ１４は、Ｓ３０２へ進む。
【０１２７】
Ｓ３０２では、ＥＣＵ１４は、各カムシャフトを逆転モードで動作させるべく、各モータを制御する。続いて、ＥＣＵ１４は、Ｓ３０３へ進み、カム（カムシャフト）の回転位置（センサ値）Ａｃａｍを読み込む。
【０１２８】
Ｓ３０４では、ＥＣＵ１４は、前記Ｓ３０３で読み込まれたセンサ値Ａｃａｍがバックラッシュ検出期間Ｐ１に属しているか否かを判別する。好ましくは、ＥＣＵ１４は、Ｓ３０４において、前記センサ値Ａｃａｍがバックラッシュ検出期間Ｐ１の開始時期（吸気バルブ８の閉弁タイミング）を示しているか否かを判別する。
【０１２９】
前記Ｓ３０４において否定判定された場合は、ＥＣＵ１４は本ルーチンの実行を終了する。一方、前記Ｓ３０４において肯定判定された場合は、ＥＣＵ１４はＳ３０５へ進む。
【０１３０】
Ｓ３０５では、ＥＣＵ１４は、Ｆ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとのモニタリングを開始し、Ｆ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとを特定する。
【０１３１】
Ｓ３０６では、ＥＣＵ１４は、前記Ｓ３０５で特定されたＦ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎの絶対値（＝｜Ｔｆｂｍｉｎ−Ｔｆｆｍｉｎ｜）が許容値△γ以下であるか否かを判別する。許容値△γは、予め実験的に適合された値であってもよく、又は前述した許容値△αと同等の値に設定されてもよい。
【０１３２】
前記３０６において肯定判定された場合（｜Ｔｆｂｍｉｎ−Ｔｆｆｍｉｎ｜≦△γ）は、ＥＣＵ１４は、本ルーチンの実行を終了する。一方、前記Ｓ３０６において否定判定された場合（｜Ｔｆｂｍｉｎ−Ｔｆｆｍｉｎ｜＞△γ）は、ＥＣＵ１４はＳ３０７へ進む。
【０１３３】
Ｓ３０７では、ＥＣＵ１４は、バックラッシュの大きさを特定する。例えば、ＥＣＵ１４は、以下の式にＦ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとを代入することにより、バックラッシュの大きさ△Ａｃａｍｂｋを求める。
△Ａｃａｍｂｋ＝（Ｔｆｂｐｅａｋ−Ｔｆｆｐｅａｋ）＊ｋ
【０１３４】
このようにして求められたバックラッシュの大きさ△Ａｃａｍｂｋは、例えば、揺動モードにおいてカム（カムシャフト）が逆転している時のセンサ値に加算される。その結果、センサ値と実回転位置との差を許容範囲内（許容値△γ以下）に収めることが可能となる。
【０１３５】
尚、ＥＣＵ１４が上記した図６の制御ルーチンを実行することにより、本発明にかかる特定手段が実現される。その結果、バックラッシュに起因したセンサ値と実回転位置との差が許容範囲内（許容値△γ）に収まるようになる。
【０１３６】
また、図１３の制御ルーチンは、バックラッシュ検出期間Ｐ１におけるＦ／Ｆ最小トルクＴｆｆｍｉｎとＦ／Ｂ最小トルクＴｆｂｍｉｎとの差△Ｔｍｉｎに基づいてバックラッシュの大きさを特定する手順を示しているが、バックラッシュ検出期間Ｐ１におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとの差の積算値に基づいてバックラッシュの大きさを特定してもよい。
【図面の簡単な説明】
【０１３７】
【図１】本発明を適用する内燃機関の概略構成を示す図である。
【図２】吸気側駆動機構の概略構成を示す図である。
【図３】カムシャフトが正転モードで動作している時のＦ／Ｆ駆動トルクＴｆｆとバルブリフト量との関係を示す図である。
【図４】センサ値が遅角側にずれている場合の誤差検出期間におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとを示す図である。
【図５】センサ値が進角側にずれている場合の誤差検出期間におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとを示す図である。
【図６】第１の実施例におけるセンサ検出誤差の補正制御ルーチンを示すフローチャートである。
【図７】第１吸気カムシャフトが揺動モードで動作している時のＦ／Ｆ駆動トルクＴｆｆとバルブリフト量との関係を示す図である。
【図８】センサ値が遅角側にずれている場合のＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとを示す図である。
【図９】センサ値が進角側にずれている場合のＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとを示す図である。
【図１０】第２の実施例におけるセンサ検出誤差の補正制御ルーチンを示すフローチャートである。
【図１１】カムシャフトが逆転モードで動作している時のＦ／Ｆ駆動トルクＴｆｆとバルブリフト量との関係を示す図である。
【図１２】バックラッシュが発生している場合のバックラッシュ検出期間におけるＦ／Ｆ駆動トルクＴｆｆとＦ／Ｂ駆動トルクＴｆｂとを示す図である。
【図１３】バックラッシュの大きさを特定するための制御ルーチンを示すフローチャートである。
【符号の説明】
【０１３８】
１・・・・内燃機関
２・・・・気筒
８・・・・吸気バルブ
９・・・・排気バルブ
１０・・・吸気側駆動機構
１１・・・排気側駆動機構
１２・・・燃料噴射弁
１３・・・点火プラグ
１４・・・ＥＣＵ
１５・・・クランクポジションセンサ
１６・・・水温センサ
１８・・・第１モータ
２０・・・第１レゾルバ
２１・・・第２モータ
２３・・・第２レゾルバ
３０・・・第１カムポジションセンサ
３１・・・第２カムポジションセンサ
８０・・・バルブリフタ
８１・・・第１吸気カム
８２・・・第２吸気カム
８３・・・第１吸気カムシャフト
８４・・・第２吸気カムシャフト
８７・・・バルブスプリング
【図１】
2010024885.tif 000003
【図２】
2010024885.tif 000004
【図３】
2010024885.tif 000005
【図４】
2010024885.tif 000006
【図５】
2010024885.tif 000007
【図６】
2010024885.tif 000008
【図７】
2010024885.tif 000009
【図８】
2010024885.tif 000010
【図９】
2010024885.tif 000011
【図１０】
2010024885.tif 000012
【図１１】
2010024885.tif 000013
【図１２】
2010024885.tif 000014
【図１３】
2010024885.tif 000015