(57)【特許請求の範囲】
【請求項１】
所定の回転角範囲内での回転駆動が行われるブラシレスモータと、このブラシレスモータの回転に伴い同モータに設けられた複数の電気角センサから位相をずらして出力されるパルス信号の出力パターンに基づき前記ブラシレスモータの通電相を切り換えて同モータを駆動する駆動装置と、前記ブラシレスモータの回転に伴い各電気角センサから出力されるパルス信号のエッジ間隔よりも短いエッジ間隔のパルス信号を互いに位相をずらして出力する複数の位置センサとを備え、各位置センサからのパルス信号の出力パターンに応じて同パルス信号のエッジ毎にカウンタ値を増減させることにより各位置センサからのパルス信号のエッジを計数する位置カウンタのカウンタ値に基づき、前記ブラシレスモータの回転角を検出するモータ制御装置において、
各電気角センサから出力されるパルス信号のエッジ発生毎に、前回のエッジ発生時における位置カウンタのカウンタ値Ｐi-1 と今回のエッジ発生時における位置カウンタのカウンタ値Ｐi との差（Ｐi-1 −Ｐi ）を算出し、その差（Ｐi-1 −Ｐi ）が正常値でないことに基づき前記位置カウンタのカウンタ値の異常を検出する異常検出手段を備え、
前記異常検出手段は、前記各電気角センサから出力されるパルス信号のエッジ間において前記位置センサから出力されるパルス信号のエッジ数を「ｎ」とすると、前記ブラシレスモータの正回転中には前記正常値を「−ｎ」に設定し、前記ブラシレスモータの逆回転中には前記正常値を「ｎ」に設定する一方、前記電気角センサから出力されるパルス信号のエッジ間において前記ブラシレスモータの回転方向が反転する正逆回転反転中には前記正常値を「０」に設定する
ことを特徴とするモータ制御装置。
【請求項２】
請求項１記載のモータ制御装置において、
前記異常検出手段によって前記位置カウンタのカウンタ値の異常が検出されたことに基づき、前記差（Ｐi-1 −Ｐi ）と前記正常値との差分を補正値として設定し、その補正値分の補正を前記カウンタ値に加える補正手段を更に備える
ことを特徴とするモータ制御装置。
【請求項３】
前記ブラシレスモータは、内燃機関の機関バルブのバルブ特性を可変とするバルブリフト可変機構の駆動に用いられるものである
請求項２記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の回転角範囲内での回転駆動が行われるブラシレスモータの制御装置に係り、詳しくは同モータの回転角検出に用いられる位置カウンタのカウンタ値の異常検出に関するものである。
【背景技術】
【０００２】
従来より、特許文献１に示されるブラシレスモータ等のモータをモータ制御装置により所定の回転角範囲内で回転駆動し、それによって各種機構を駆動することが行われている。この場合、各種機構を精密に駆動するには、モータの回転角を正確に検出し、その回転角を各種機構の目標とする駆動状態に対応した回転角とすることが重要になる。
【０００３】
ここで、モータの回転角を検出する方法としては、特許文献２に示される方法、すなわちモータの回転に伴いパルス信号を出力する位置センサとしてエンコーダを設け、そのエンコーダからのパルス信号を計数するという方法を採用することが考えられる。この方法によれば、上記パルス信号を計数した値がモータの回転角に対応した値になり、上記パルス信号の計数値に基づきモータの回転角を検出することができるようになる。
【特許文献１】特開２００４−１９４４５４公報
【特許文献２】特開２００４−７６２６５公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記エンコーダからのパルス信号のエッジを計数して得られる計数値は、常にモータの実際の回転角に対応しているとは限らず、その実際の回転角に対応した値からずれることがある。例えば、エンコーダから出力される信号にノイズが発生すると、そのノイズのエッジとエンコーダからのパルス信号のエッジとを見分けることができず、ノイズのエッジをパルス信号のエッジと誤認し、パルス信号のエッジを計数して得られる計数値がモータの実際の回転角に対応した値からずれる。この場合、計数値に基づき検出されるモータの回転角が不正確になり、その回転角等に基づきモータを駆動し、各種機器を目標とする駆動状態に制御しようとしても、それを正しく行えなくなるという不具合が生じる。
【０００５】
こうした不具合を抑制するには、上記計数値の異常を検出して対策を講じる必要がある。このため、モータの回転角を検出するリニアセンサ等を別途設け、同センサによって検出されるモータの回転角が上記計数値に基づき検出されるモータの回転角と対応していないことに基づき同計数値の異常発生を検出し、その異常への対策を講じることが考えられる。ただし、この場合には計数値の異常発生を検出して対策を講じることはできるものの、異常発生の検出のためにリニアセンサ等を別途設けなければならず、そのリニアセンサ等の設置に手間がかかるとともに、同センサの設置に関係してモータの設置位置が制約を受けるという新たな問題が生じる。
【０００６】
本発明はこのような実情に鑑みてなされたものであって、その目的は、位置センサからのパルス信号を係数する位置カウンタのカウンタ値に異常が発生していることを新たなセンサ等を設けることなく検出することができ、その異常発生時に対策を講じることのできるモータ制御装置を提供することにある。
【課題を解決するための手段】
【０００７】
以下、上記目的を達成するための手段及びその作用効果について記載する。
上記目的を達成するため、請求項１記載の発明では、所定の回転角範囲内での回転駆動が行われるブラシレスモータと、このブラシレスモータの回転に伴い同モータに設けられた複数の電気角センサから位相をずらして出力されるパルス信号の出力パターンに基づき前記ブラシレスモータの通電相を切り換えて同モータを駆動する駆動装置と、前記ブラシレスモータの回転に伴い各電気角センサから出力されるパルス信号のエッジ間隔よりも短いエッジ間隔のパルス信号を互いに位相をずらして出力する複数の位置センサとを備え、各位置センサからのパルス信号の出力パターンに応じて同パルス信号のエッジ毎にカウンタ値を増減させることにより各位置センサからのパルス信号のエッジを計数する位置カウンタのカウンタ値に基づき、前記ブラシレスモータの回転角を検出するモータ制御装置において、各電気角センサから出力されるパルス信号のエッジ発生毎に、前回のエッジ発生時における位置カウンタのカウンタ値Ｐi-1 と今回のエッジ発生時における位置カウンタのカウンタ値Ｐi との差（Ｐi-1 −Ｐi ）を算出し、その差（Ｐi-1 −Ｐi ）が正常値でないことに基づき前記位置カウンタのカウンタ値の異常を検出する異常検出手段を備え、前記異常検出手段は、前記各電気角センサから出力されるパルス信号のエッジ間において前記位置センサから出力されるパルス信号のエッジ数を「ｎ」とすると、前記ブラシレスモータの正回転中には前記正常値を「−ｎ」に設定し、前記ブラシレスモータの逆回転中には前記正常値を「ｎ」に設定する一方、前記電気角センサから出力されるパルス信号のエッジ間において前記ブラシレスモータの回転方向が反転する正逆回転反転中には前記正常値を「０」に設定するものとした。
【０００８】
ブラシレスモータの回転時には、同モータの駆動に用いられる電気角センサからパルス信号が互いに位相をずらした状態で出力される。従って、各電気角センサからのパルス信号のエッジを計数すれば、その計数値に基づきブラシレスモータの回転角を大まかに検出することはできる。しかし、ブラシレスモータの回転角の検出に高精度が要求されるような場合には、上記のような大まかな回転角検出では検出精度が足りなくなる。このため、ブラシレスモータの回転に伴い各電気角センサから出力されるパルス信号のエッジ間隔よりも短いエッジ間隔でパルス信号を出力する位置センサが設けられ、その位置センサからのパルス信号のエッジを計数する位置カウンタのカウンタ値に基づき、ブラシレスモータの回転角を検出することが行われている。これにより、ブラシレスモータの回転角の検出を高精度で行うことが可能になる。
【０００９】
ところで、位置センサからの信号にノイズが発生し、そのノイズのエッジが位置センサからのパルス信号のエッジと誤認されて位置カウンタにより計数されるなど、位置カウンタのカウンタ値がブラシレスモータの実際の回転角に対応しなくなる状況が生じる可能性がある。この場合、位置カウンタのカウンタ値が、ブラシレスモータの実際の回転角に対応する値からずれた状態になる。上記構成によれば、各電気角センサから出力されるパルス信号の前回のエッジ発生時における位置カウンタのカウンタ値Ｐi-1 と、今回のエッジ発生時における位置カウンタのカウンタ値Ｐi との差（Ｐi-1 −Ｐi ）に、上記位置カウンタのカウンタ値における上記ブラシレスモータの実際の回転角に対応する値からのずれが反映される。すなわち、そのずれの分だけ上記差（Ｐi-1 −Ｐi ）が正常値からずれることになる。従って、上記差（Ｐi-1 −Ｐi ）が正常値でないことに基づき、位置カウンタのカウンタ値における異常発生を検出することができ、その異常への対策を講じることができるようになる。また、上記異常発生の検出に用いられる差（Ｐi-1 −Ｐi ）を算出するのには、ブラシレスモータの駆動に用いられる電気角センサがあればよく、上記異常発生の検出のために新たなセンサ等を設ける必要はない。
【００１１】
また、位置センサからの信号にノイズが発生しても、他の位置センサからのパルス信号のエッジと重ならない場合には、同ノイズの立ち上がりエッジで位置カウンタのカウンタ値がブラシレスモータの実際の回転角に対応する値からずれるものの、同ノイズの立ち下がりエッジでは位置カウンタのカウンタ値が元に戻り上記ずれが解消される。一方、位置センサからの信号にノイズが発生したとき、そのノイズが他の位置センサからのパルス信号のエッジと重なる場合には、ノイズの立ち上がりエッジ、他の位置センサからのパウス信号のエッジ、及び、ノイズの立ち下がりエッジにて、それぞれ位置カウンタのカウンタ値がブラシレスモータの実際の回転角に対応する値からずれる。このように位置カウンタのカウンタ値が上記実際の回転角に対応する値からずれたとしても、そのときには差（Ｐi-1 −Ｐi ）が正常値からずれることになり、当該差（Ｐi-1 −Ｐi ）が正常値でないことに基づき、位置カウンタのカウンタ値における異常発生を的確に検出することができる。
【００１３】
そして、位置カウンタのカウンタ値は、ブラシレスモータの正回転中には位置センサからのパルス信号のエッジ毎に増加してゆき、ブラシレスモータの逆回転中には位置センサからのパルス信号のエッジ毎に減少してゆく。このため、位置カウンタのカウンタ値が正常であるとき、差（Ｐi-1 −Ｐi ）は、モータ正回転中であれば上記エッジ数ｎに対応して「−ｎ」となり、モータ逆回転中であれば「ｎ」となり、ブラシレスモータの正逆回転反転中であれば「０」となる。上記構成によれば、位置カウンタのカウンタ値に異常が発生しているか否かを判断するための差（Ｐi-1 −Ｐi ）の正常値が、ブラシレスモータの回転状態に応じて「−ｎ」、「ｎ」、及び「０」の間で切り換えられるため、差（Ｐi-1 −Ｐi ）が当該正常値でないことに基づき的確に上記異常発生の検出を行うことができる。
【００１４】
請求項２記載の発明では、請求項１記載の発明において、前記異常検出手段によって前記位置カウンタのカウンタ値の異常が検出されたことに基づき、前記差（Ｐi-1 −Ｐi ）と前記正常値との差分を補正値として設定し、その補正値分の補正を前記カウンタ値に加える補正手段を更に備えた。
【００１５】
上記構成によれば、位置カウンタのカウンタ値の異常発生が検出されたときには、当該カウンタ値における上記ブラシレスモータの実際の回転角に対応する値からのずれが差（Ｐi-1 −Ｐi ）に反映されることになる。上記構成によれば、当該差（Ｐi-1 −Ｐi ）とその正常値との差分が補正値とされ、その補正値分の補正が位置カウンタのカウンタ値に加えられる。これにより、同カウンタ値における上記ブラシレスモータの実際の回転角に対応する値からのずれを的確に修正することができる。
【００１６】
請求項３記載の発明では、請求項２記載の発明において、前記ブラシレスモータは、内燃機関の機関バルブのバルブ特性を可変とするバルブリフト可変機構の駆動に用いられるものとした。
【００１７】
ブラシレスモータを内燃機関のバルブリフト可変機構の駆動に用いる場合、位置カウンタのカウンタ値に基づきブラシレスモータの回転角を検出し、その回転角が目標とするバルブ特性に対応した回転角となるようブラシレスモータが駆動される。これにより、機関バルブのバルブ特性が目標とするバルブ特性となるよう、バルブリフト可変機構が駆動制御されることとなる。しかし、位置カウンタのカウンタ値がブラシレスモータの実際の回転角に対応した値からずれると、そのカウンタ値に基づき検出されるブラシレスモータの回転角が不正確になり、当該回転角に基づきブラシレスモータを駆動してバルブリフト可変機構を駆動制御しようとしても、それを正しく行えなくなって機関回転への悪影響に繋がる。上記構成によれば、位置カウンタのカウンタ値における上記ブラシレスモータの実際の回転角に対応する値からのずれを的確に修正することができる。従って、位置カウンタのカウンタ値に基づき検出されるブラシレスモータの回転角に基づきブラシレスモータを駆動し、バルブリフト可変機構を駆動制御しようとするとき、それを正しく行えなくなって機関運転への悪影響に繋がるということはない。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を自動車用エンジンに適用した一実施形態を図１〜図１１に従って説明する。
図１は、エンジン１における所定気筒のシリンダヘッド２周りの構造を示す拡大断面図である。このエンジン１においては、シリンダヘッド２、シリンダブロック３、及びピストン５によって燃焼室６が区画され、この燃焼室６には吸気通路７及び排気通路８が接続されている。そして、吸気通路７と燃焼室６との間は吸気バルブ９の開閉動作によって連通・遮断され、排気通路８と燃焼室６との間は排気バルブ１０の開閉動作によって連通・遮断されるようになる。
【００１９】
シリンダヘッド２には、吸気バルブ９及び排気バルブ１０を駆動するための吸気カムシャフト１１及び排気カムシャフト１２が設けられている。これら吸気カムシャフト１１及び排気カムシャフト１２は、エンジン１のクランクシャフトからの回転伝達によって回転するようになっている。また、吸気カムシャフト１１及び排気カムシャフト１２には、それぞれ吸気カム１１ａ及び排気カム１２ａが設けられている。そして、これら吸気カム１１ａ及び排気カム１２ａの吸気カムシャフト１１及び排気カムシャフト１２との一体回転を通じて、吸気バルブ９及び排気バルブ１０が開閉動作するようになっている。
【００２０】
また、エンジン１には、吸気バルブ９及び排気バルブ１０といった機関バルブのバルブ特性を可変とするバルブリフト可変機構として、吸気バルブ９の最大リフト量及び吸気カム１１ａの作用角を可変とするバルブリフト可変機構１４が吸気カム１１ａと吸気バルブ９との間に設けられている。このバルブリフト可変機構１４の駆動を通じて、例えば吸入空気量を多く必要とするエンジン運転状態になるほど、最大リフト量及び作用角が大となるよう制御される。これは最大リフト量及び作用角を大とするほど、吸気通路７から燃焼室６への空気の吸入が効率よく行われ、上述した吸入空気量に関する要求を満たすことが可能なためである。
【００２１】
次に、バルブリフト可変機構１４の詳細な構造について説明する。
バルブリフト可変機構１４は、回転する吸気カム１１ａにより押されて上記吸気カムシャフト１１と平行に延びるロッカシャフト１５及びコントロールシャフト１６の軸線を中心に揺動する入力アーム１７と、この入力アーム１７の揺動に基づき上記軸線を中心に揺動する出力アーム１８とを備えている。入力アーム１７については、ローラ１９が回転可能に取り付けられるとともに、そのローラ１９が吸気カム１１ａに押しつけられるようコイルスプリング２０によって吸気カム１１ａ側に付勢されている。また、出力アーム１８は、その揺動時にロッカアーム２１に押しつけられ、同ロッカアーム２１を介して吸気バルブ９をリフトさせる。
【００２２】
このロッカアーム２１の基端部はラッシュアジャスタ２２によって支持され、同ロッカアーム２１の先端部は吸気バルブ９に接触している。また、ロッカアーム２１は吸気バルブ９のバルブスプリング２４によって出力アーム１８側に付勢され、これによりロッカアーム２１の基端部と先端部との間に回転可能に支持されたローラ２３が出力アーム１８に押しつけられている。従って、吸気カム１１ａの回転に基づき入力アーム１７及び出力アーム１８が揺動すると、出力アーム１８がロッカアーム２１を介して吸気バルブ９をリフトさせ、吸気バルブ９の開閉動作が行われるようになる。
【００２３】
バルブリフト可変機構１４では、パイプ状のロッカシャフト１５内に配置されたコントロールシャフト１６を軸方向に変位させることで、入力アーム１７と出力アーム１８との揺動方向についての相対位置を変更することが可能となっている。このように、入力アーム１７と出力アーム１８との揺動方向についての相対位置を変更すると、上記吸気バルブ９の最大リフト量、及び吸気カム１１ａの吸気バルブ９に対する作用角が可変とされる。即ち、入力アーム１７と出力アーム１８とを揺動方向について互いに接近させるほど、吸気バルブ９の最大リフト量及び吸気カム１１ａの作用角は小となってゆく。逆に、入力アーム１７と出力アーム１８とを揺動方向について互いに離間させるほど、吸気バルブ９の最大リフト量及び吸気カム１１ａの作用角は大となってゆく。
【００２４】
次に、バルブリフト可変機構１４を駆動すべく上記コントロールシャフト１６を軸方向に変位させるための駆動機構、及び、その駆動機構を駆動制御する制御装置について、図２を参照して説明する。
【００２５】
同図に示されるように、コントロールシャフト１６の基端部（図中右端部）には、ブラシレスモータ４７が変換機構４８を介して連結されている。この変換機構４８は、ブラシレスモータ４７の回転運動をコントロールシャフト１６の軸方向への直線運動に変換するためのものである。そして、上記ブラシレスモータ４７の所定の回転角範囲内での回転駆動、例えば同モータ４７の１０回転分の回転角範囲（０〜３６００°）内での回転駆動を通じて、コントロールシャフト１６が軸方向に変位させられ、バルブリフト可変機構１４が駆動されることとなる。
【００２６】
ちなみに、ブラシレスモータ４７を正回転させると、コントロールシャフト１６は先端（図中左端）側に変位し、入力アーム１７と出力アーム１８との揺動方向についての相対位置が互いに接近するように変更される。また、ブラシレスモータ４７を逆回転させると、コントロールシャフト１６は基端（図中右端）側に変位し、入力アーム１７と出力アーム１８との揺動方向についての相対位置が互いに離間するように変更される。こうしたブラシレスモータ４７の回転駆動による入力アーム１７及び出力アーム１８の揺動方向についての相対位置の変更を通じて、吸気カム１１ａの回転により出力アーム１８が揺動したときの吸気バルブ９の最大リフト量、及び吸気カム１１ａの作用角が可変とされる。
【００２７】
ブラシレスモータ４７には、三つの電気角センサＳ１〜Ｓ３、及び  二つの位置センサＳ４，Ｓ５が設けられている。
三つの電気角センサＳ１〜Ｓ３は、ブラシレスモータ４７の回転時、同モータ４７のロータと一体回転する４極の多極マグネットの磁気に応じて、図３（ａ）〜（ｃ）に示されるようなパルス状の信号、すなわちハイ信号「Ｈ」とロー信号「Ｌ」とを交互に出力するものである。また、各電気角センサＳ１〜Ｓ３からのパルス信号は、互いに位相をずらした状態で出力されるようになっている。すなわち、こうしたパルス信号の波形が得られるよう、上記ロータに対する各電気角センサＳ１〜Ｓ３の周方向位置が定められている。なお、各電気角センサＳ１〜Ｓ３のうちの一つのセンサから出力されるパルス信号のエッジは、ブラシレスモータ４７の４５°回転毎に発生している。また、上記一つのセンサからのパルス信号は、他のセンサからのパルス信号に対し、ブラシレスモータ４７の３０°回転分だけ進み側及び遅れ側に位相をずらした状態となっている。
【００２８】
二つの位置センサＳ４，Ｓ５は、ブラシレスモータ４７の回転時、同モータ４７のロータと一体回転する４８極の多極マグネットの磁気に応じて、図３（ｄ）及び（ｅ）に示されるようなパルス状の信号、すなわちハイ信号「Ｈ」とロー信号「Ｌ」とを交互に出力するものである。また、各位置センサＳ４，Ｓ５からのパルス信号は、互いに位相をずらした状態で出力されるようになっている。すなわち、こうしたパルス信号の波形が得られるよう、上記ロータに対する各位置センサＳ４，Ｓ５の周方向位置が定められている。なお、各位置センサＳ４，Ｓ５の内の一方のセンサから出力するパルス信号のエッジは、ブラシレスモータ４７の７．５°回転毎に発生している。また、上記一方のセンサからのパルス信号は、他方のセンサからのパルス信号に対し、ブラシレスモータ４７の３．７５°回転分だけ位相をずらした状態となっている。
【００２９】
従って、電気角センサＳ１〜Ｓ３からのパルス信号のエッジ間隔が１５°であるのに対し、位置センサＳ４，Ｓ５からのパルス信号のエッジ間隔は３．７５°と上記１５°というエッジ間隔よりも短くなっている。更に、電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生から次回のエッジ発生までには、位置センサＳ４，Ｓ５からのパルス信号のエッジが４回発生するようになっている。
【００３０】
コントロールシャフト１６を軸方向に変位させるべく回転駆動されるブラシレスモータ４７の制御装置は、吸気バルブ９の最大リフト量及び吸気カム１１ａの作用角といった吸気バルブ９のバルブ特性の制御など、エンジン１の各種制御を行う電子制御装置５０（図２）を備えている。この電子制御装置５０は、上記各種制御にかかる演算処理を実行するＣＰＵ、その制御に必要なプログラムやデータの記憶されたＲＯＭ、ＣＰＵの演算結果が一時的に記憶されるＲＡＭ、外部との間で信号を入・出力するための入・出力ポート等を備えて構成されている。
【００３１】
電子制御装置５０の入力ポートには、上述した電気角センサＳ１〜Ｓ３及び位置センサＳ４，Ｓ５が接続されるほか、更に以下のセンサを含む各種センサが接続されている。
・自動車の運転者によって踏み込み操作されるアクセルペダルの踏み込み量（アクセル踏込量）を検出するアクセルポジションセンサ５１。
【００３２】
・エンジン１の吸気通路７に設けられたスロットルバルブの開度（スロットル開度）を検出するスロットルポジションセンサ５２。
・上記吸気通路７を通じて燃焼室６に吸入される空気の量を検出するエアフローメータ５３。
【００３３】
・エンジン１の出力軸の回転に対応する信号を出力してエンジン回転速度の検出等に用いられるクランクポジションセンサ５４。
・自動車の運転者により切り換え操作され、現在の切換位置に対応した信号を出力するイグニッションスイッチ５５。
【００３４】
また、電子制御装置５０の出力ポートには、ブラシレスモータ４７の駆動回路等が接続されている。電子制御装置５０は、上記各種センサから入力した検出信号に基づきエンジン運転状態を把握する。そして、その把握したエンジン運転状態に基づきブラシレスモータ４７を駆動してコントロールシャフト１６を軸方向に変位させることで、バルブリフト可変機構１４が駆動されて吸気バルブ９のバルブ特性制御が行われる。なお、ブラシレスモータ４７の駆動は、各電気角センサＳ１〜Ｓ３から出力される同モータ４７の回転時のパルス信号の出力パターンに応じて、ブラシレスモータ４７の通電相を切り換えることによって行われる。
【００３５】
吸気バルブ９のバルブ特性、すなわち吸気バルブ９の最大リフト量及び吸気カム１１ａの作用角は、コントロールシャフト１６の軸方向位置、言い換えればブラシレスモータ４７の上記所定回転角範囲内での回転角に対応したものとなる。従って、吸気バルブ９のバルブ特性を精密に制御するには、ブラシレスモータ４７の回転角を正確に検出し、その回転角が目標とするバルブ特性に対応する回転角となるようブラシレスモータ４７を駆動することが重要になる。
【００３６】
以下、本実施形態におけるブラシレスモータ４７の回転角の検出手順について、図３のタイミングチャート及び図４のフローチャートを併せ参照して説明する。
図３において、（ａ）〜（ｅ）は、ブラシレスモータ４７の回転時における同モータ４７の回転角変化に対し、各センサＳ１〜Ｓ５からパルス信号がどのように出力されるかを示す波形図である。また、（ｆ）〜（ｈ）ではそれぞれ、ブラシレスモータ４７の回転時における同モータ４７の回転角の変化に対し、電気角カウンタＥ、位置カウンタＰ、及びストロークカウンタＳのカウンタ値がどのように推移するかを示している。
【００３７】
なお、上記電気角カウンタＥは、ブラシレスモータ４７を駆動すべく同モータ４７の通電相を切り換える際に用いられるものである。また、上記位置カウンタＰは、エンジン１を運転開始する際のイグニッションスイッチ５５のオン操作（イグニッションオン）後、コントロールシャフト１６が軸方向にどれだけ変位したか、言い換えればブラシレスモータ４７の回転角がどれだけ変化したかを表すものである。更に、上記ストロークカウンタＳは、コントロールシャフト１６の最も先端側に変位した状態を基準とする軸方向位置、言い換えればブラシレスモータ４７の上記所定回転角範囲におけるコントロールシャフト１６の上記変位状態に対応する端を基準とした同モータ４７の回転角を表すものである。
【００３８】
図４は、上記電気角カウンタＥ、位置カウンタＰ、及びストロークカウンタＳのカウンタ値を変化させるためのカウント処理ルーチンを示すフローチャートである。同ルーチンは、電子制御装置５０を通じて、位置センサＳ４，Ｓ５からのパルス信号のエッジ間隔に対応する時間間隔よりも短い間隔をもって周期的に実行される。
【００３９】
同ルーチンにおいては、まず図３（ａ）〜（ｃ）に示される各電気角センサＳ１〜Ｓ３からのパルス信号の出力パターンに基づき、図３（ｆ）に示されるように電気角カウンタＥのカウンタ値を変化させる（Ｓ１０１）。
【００４０】
より詳しくは、図５（ａ）に示されるように、各電気角センサＳ１〜Ｓ３から各々ハイ信号「Ｈ」とロー信号「Ｌ」とのいずれが出力されているかに応じて、電気角カウンタＥのカウンタ値が「０」〜「５」の範囲内の連続した整数値のうちのいずれかが当てはめられる。その結果、ブラシレスモータ４７の正回転時（図３中右向き）には、「０」〜「５」の範囲内の整数値が「０」→「１」→「２」→「３」→「４」→「５」→「０」といった順序で順方向に電気角カウンタＥのカウンタ値として当てはめられる。また、ブラシレスモータ４７の逆回転時（図３中左向き）には、電気角センサＳ１〜Ｓ３からのパルス信号の出力パターンに応じて、「０」〜「５」の範囲内の各整数値が「５」→「４」→「３」→「２」→「１」→「０」→「５」といった順序で逆方向に電気角カウンタＥのカウンタ値として当てはめられる。
【００４１】
そして、この電気角カウンタＥのカウンタ値に基づき、ブラシレスモータ４７の通電層を切り換えることで、同モータの正回転方向または逆回転方向への駆動が行われる。
続いて、各位置センサＳ４，Ｓ５からのパルス信号の出力パターンに基づき、位置カウンタＰのカウンタ値を増減させる（図４のＳ１０２）。
【００４２】
詳しくは、図５（ｂ）に示されるように、位置センサＳ４，Ｓ５のうち、一方のセンサからパルス信号の立ち上がりエッジと立ち下がりエッジとのいずれが生じているか、及び、他方のセンサからハイ信号「Ｈ」とロー信号「Ｌ」とのいずれが出力されているかに応じて、位置カウンタＰのカウンタ値に対し「＋１」と「−１」とのいずれかが加算される。なお、同図において、「↑」はパルス信号の立ち上がりエッジを表し、「↓」はパルス信号の立ち下がりエッジを表している。こうした処理を通じて得られる位置カウンタＰのカウンタ値は、各位置センサＳ４，Ｓ５からのパルス信号のエッジを計数した値ということになる。
【００４３】
ここで、ブラシレスモータ４７の正回転中であれば、位置カウンタＰのカウンタ値は、図３（ｄ）及び（ｅ）に示される位置センサＳ４，Ｓ５からのパルス信号のエッジ毎に「１」ずつ加算されてゆき、図３（ｇ）中の右方向に変化してゆく。また、ブラシレスモータ４７の逆回転中であれば、位置カウンタＰのカウンタ値は、上記エッジ毎に「１」ずつ減算されてゆき、図３（ｇ）中の左方向に変化してゆく。なお、この位置カウンタＰは、イグニッションスイッチ５５のオフ操作（イグニッションオフ）がなされたとき、「０」にリセットされる。従って、位置カウンタＰのカウンタ値は、イグニッションオン後にコントロールシャフト１６が軸方向にどれだけ変位したかを表すものとなる。
【００４４】
そして、図３（ｇ）に示されるように変化する位置カウンタＰに応じて、図３（ｈ）に示されるようにストロークカウンタＳが変化させられるようになる。具体的には、位置カウンタＰに対して学習値Ｐｒの正負を反転させた値（−Ｐｒ）を加算して得られる値がストロークカウンタＳのカウンタ値として設定される（図４のＳ１０３）。なお、上記学習値Ｐｒは、コントロールシャフト１６をその移動範囲における図２の左端（先端）側の変位端まで変位させたとき、すなわちブラシレスモータ４７の回転角を上記所定の回転角範囲内における上記コントロールシャフト１６の変位状態に対応する端まで変化させたときの位置カウンタＰのカウンタ値に対応した値である。この学習値Ｐｒは、イグニッションオン後に所定の条件下で学習が行われて電子制御装置５０の不揮発性メモリ５６に記憶されるものである。従って、位置カウンタＰのカウンタ値に学習値Ｐｒの正負を反転させた値を加算して得られる値であるストロークカウンタＳのカウンタ値は、コントロールシャフト１６の最も先端側に変位した状態を基準とする同シャフト１６の軸方向位置を表すものということになる。このことは言い換えれば、ストロークカウンタＳのカウンタ値が、ブラシレスモータ４７の上記所定回転角範囲におけるコントロールシャフト１６の上記変位状態に対応する端を基準とした同モータ４７の回転角を表すものになるということである。
【００４５】
電子制御装置５０は、上記ストロークカウンタＳのカウンタ値に基づき、ブラシレスモータ４７の回転角を検出する。そして、電子制御装置５０は、バルブリフト可変機構１４を駆動して吸気バルブ９の最大リフト量及び吸気カム１１ａの作用角といったバルブ特性を制御する際、上記のように検出されたブラシレスモータ４７の回転角が目標とするバルブ特性に対応する回転角となるようブラシレスモータ４７を駆動する。これにより、吸気バルブ９のバルブ特性を目標とする特性へと精密に制御することができるようになる。
【００４６】
なお、ブラシレスモータ４７の回転時に位置センサＳ４，Ｓ５からのパルス信号のエッジを上述したように計数する代わりに、電気角センサＳ１〜Ｓ３からのパルス信号のエッジを計数しても、その計数値に基づきブラシレスモータ４７の回転角を大まかにならば検出することは可能である。しかし、バルブリフト可変機構１４を駆動するうえでのブラシレスモータ４７の回転角の検出のように、同モータ４７の回転角の検出に高精度が要求されるような場合には、上記のような大まかな回転角検出では検出精度が足りなくなる。このため、電気角センサＳ１〜Ｓ３からのパルス信号のエッジ間隔よりも短いエッジ間隔でパルス信号を出力する位置センサＳ４，Ｓ５が設けられ、それら位置センサＳ４，Ｓ５からのパルス信号のエッジを計数する位置カウンタＰのカウンタ値に基づき、ブラシレスモータ４７の回転角検出が行われている。
【００４７】
ところで、位置カウンタＰのカウンタ値は、常にブラシレスモータ４７の実際の回転角に対応しているとは限らず、その実際の回転角に対応した値からずれることがある。例えば、位置センサＳ４，Ｓ５から出力される信号にノイズが発生すると、そのノイズのエッジと位置センサＳ４，Ｓ５からのパルス信号のエッジとを見分けることができず、ノイズのエッジをパルス信号のエッジと誤認し、パルス信号のエッジを計数する位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角と対応しなくなる。
【００４８】
以下、上記不具合発生の詳細について、ブラシレスモータ４７の正回転中に上記ノイズが発生した場合、ブラシレスモータ４７の逆回転中に上記ノイズが発生した場合、及び、ブラシレスモータ４７の正逆回転反転中に上記ノイズが発生した場合に分けて説明する。
【００４９】
なお、モータ正回転中及び逆回転中での上記不具合発生の説明については図６のタイミングチャートを参照して行い、モータ正逆回転反転中での上記不具合発生の説明については図８のタイムチャートを参照して行う。図６において、（ａ）〜（ｅ）は、ブラシレスモータ４７の回転角の変化に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥのカウンタ値の推移、及び、位置カウンタＰのカウンタ値の推移を表している。また、図８において、（ａ）〜（ｄ）は、時間経過に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥのカウンタ値の推移、及び、位置カウンタＰのカウンタ値の推移を表している。
【００５０】
［モータ正回転中］
ブラシレスモータ４７の正回転中、例えば図６（ａ）に示されるように、位置センサＳ４からの信号にノイズが発生し、そのノイズが位置センサＳ５からのパルス信号の立ち下がりエッジと重なると、上記ノイズの発生しているタイミングａ，ｂ，ｃでの位置センサＳ４，Ｓ５からの信号の出力パターンは、図７（ａ）に示されるようなパターンとなる。その結果、タイミングａ，ｂ，ｃでそれぞれ位置カウンタＰのカウンタ値に「−１」が加算され、図６（ｄ）のタイミングａ，ｂ，ｃでは当該カウンタ値が破線で示されるように「１」ずつ減少してゆく。一方、仮に上記ノイズが発生していないとすれば、タイミングａ，ｂ，ｃではタイミングｂで位置カウンタＰのカウンタ値に「１」が加算されるだけとなるはずである。このため、上記ノイズが発生したときの位置カウンタＰのカウンタ値は、タイミングｃ以降、ブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、二点鎖線で示されるように「４」だけ小さくなる。
【００５１】
［モータ逆回転中］
ブラシレスモータ４７の逆回転中、例えば図６（ａ）に示されるノイズが発生し、そのノイズが位置センサＳ５からのパルス信号の立ち上がりエッジと重なった場合にも、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値からずれることになる。すなわち、上記ノイズの発生しているタイミングｃ，ｂ，ａでの位置センサＳ４，Ｓ５からの信号の出力パターンが図７（ｂ）に示されるようなパターンとなり、タイミングｃ，ｂ，ａでそれぞれ位置カウンタＰのカウンタ値に「１」が加算され、図６（ｅ）のタイミングｃ，ｂ，ａでは当該カウンタ値が破線で示されるように「１」ずつ増加してゆく。一方、仮に上記ノイズが発生していないとすれば、タイミングｃ，ｂ，ａではタイミングｂで位置カウンタＰのカウンタ値に「−１」が加算されるだけとなるはずである。このため、上記ノイズが発生したときの位置カウンタＰのカウンタ値は、タイミングａ以降、ブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、二点鎖線で示されるように「４」だけ大きくなる。
【００５２】
［モータ正逆回転反転中］
ブラシレスモータ４７の正逆回転の反転、例えば正回転から逆回転への反転が行われる際、位置センサＳ４，Ｓ５の波形及び電気角カウンタＥのカウンタ値は、それぞれ時間経過に対し図８（ａ）〜（ｃ）に示されるように推移する。
【００５３】
ちなみに、ブラシレスモータ４７が正回転中、逆回転中、及び正逆回転反転中のいずれであるかは、各電気角センサＳ１〜Ｓ３からのパルス信号の前回のエッジ発生時と今回のエッジ発生時とにおける各々電気角カウンタＥの変化方向に基づき判断される。すなわち、図９に示されるように、前回のエッジ発生時と今回のエッジ発生時との電気角カウンタＥの変化方向について、それらが共に順方向であればモータ正回転中である旨判断され、それらが共に逆方向であればモータ逆回転中である旨判断される。また、前回のエッジ発生時と今回のエッジ発生時との電気角カウンタＥの変化方向が順方向と逆方向とで異なっていれば、モータ正逆回転反転中である旨判断される。
【００５４】
そして、ブラシレスモータ４７の正逆回転反転中、例えば図８（ｂ）に破線Ｌ１で示されるように、位置センサＳ５からの信号にノイズが発生し、そのノイズが位置センサＳ４からのパルス信号の立ち上がりエッジと重なると、上記ノイズのエッジ及び上記パルス信号のエッジ毎に位置カウンタＰのカウンタ値が「１」ずつ減少してゆく。これは、上記ノイズの発生に伴い位置センサＳ４，Ｓ５からの信号の出力パターンが、位置カウンタＰのカウンタ値を「−１」ずつ加算してゆくパターンとなるためである。一方、仮に上記ノイズが発生していないとすれば、上記のように位置カウンタＰのカウンタ値が「１」ずつ減少する期間に対応する期間中には、位置カウンタＰのカウンタ値に「１」が加算されるはずである。このため、上記ノイズが発生したときの位置カウンタＰのカウンタ値は、ブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、破線Ｌ２で示されるように「４」だけ小さくなる。
【００５５】
また、ブラシレスモータ４７の正逆回転反転中、例えば図８（ｂ）に破線Ｌ３で示されるように、位置センサＳ５からの信号にノイズが発生し、そのノイズが位置センサＳ４からのパルス信号の立ち下がりエッジと重なると、上記ノイズのエッジ及び上記パルス信号のエッジ毎に位置カウンタＰのカウンタ値が「１」ずつ増加してゆく。これは、上記ノイズの発生に伴い位置センサＳ４，Ｓ５からの信号の出力パターンが、位置カウンタＰのカウンタ値を「１」ずつ加算してゆくパターンとなるためである。一方、仮に上記ノイズが発生していないとすれば、上記のように位置カウンタＰのカウンタ値が「１」ずつ増加する期間に対応する期間中には、位置カウンタＰのカウンタ値に「−１」が加算されるはずである。このため、上記ノイズが発生したときの位置カウンタＰのカウンタ値は、ブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、破線Ｌ４で示されるように「４」だけ大きくなる。
【００５６】
以上のように、位置センサＳ４，Ｓ５から出力される信号にノイズが発生し、そのノイズが位置センサＳ４，Ｓ５からのパルス信号のエッジと重なると、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角と対応しなくなる。その結果、位置カウンタＰ（正確にはストロークカウンタＳ）のカウンタ値に基づき検出されるブラシレスモータ４７の実際の回転角が不正確になり、その回転角等に基づきブラシレスモータ４７を駆動し、吸気バルブ９のバルブ特性を目標の特性に制御しようとしても、それを正しく行えなくなってエンジン運転への悪影響に繋がる。より詳しくは、吸気バルブ９のバルブ特性を目標の特性に制御できないことから、当該バルブ特性に基づくエンジン１の吸入空気量の正しい推定を行えなくなり、ひいては推定される吸入空気量に基づきエンジン１を運転制御する際にエンジン１のエミッション不良や加速不良を招くこととなる。
【００５７】
なお、位置センサＳ４，Ｓ５から出力される信号にノイズが発生したとき、そのノイズが位置センサＳ４，Ｓ５からのパルス信号のエッジと重ならない場合もある。この場合は、同ノイズの立ち上がりエッジで位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値からずれるものの、同ノイズの立ち下がりエッジでは位置カウンタＰのカウンタ値が元に戻り上記ずれが解消される。このため、位置センサＳ４，Ｓ５から出力される信号にノイズが発生しても、そのノイズが位置センサＳ４，Ｓ５からのパルス信号のエッジと重ならない場合には、上述したような不具合が生じることはない。
【００５８】
ところで、上述したノイズに起因する不具合の発生を抑制するためには、位置カウンタＰのカウンタ値の異常を検出して対策を講じる必要がある。このため、［発明が解決しようとする課題］の欄に記載したように、ブラシレスモータ４７の実際の回転角を検出するリニアセンサ等を別途設け、そのセンサによって検出される回転角が位置カウンタＰのカウンタ値等に基づき検出される回転角と対応していないことに基づき、位置カウンタＰのカウンタ値の異常発生を検出することも考えられる。しかし、この場合には、リニアセンサ等の設置に手間がかかるとともに、同センサの設置に関係してブラシレスモータ４７の搭載位置が制約されるという新たな問題が生じることは、［発明が解決しようとする課題］の欄に記載したとおりである。
【００５９】
そこで本実施形態では、ブラシレスモータ４７の駆動に用いられる電気角センサＳ１〜Ｓ３からのパルス信号を利用して、位置カウンタＰにおけるカウンタ値の異常発生を検出するようにしている。具体的には、電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生毎に、前回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi-1 と今回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi との差（Ｐi-1 −Ｐi ）を算出し、その差（Ｐi-1 −Ｐi ）が正常値Ｊでないことに基づき上記異常の発生を検出する。
【００６０】
この場合、上記ノイズの発生に起因して位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応しなくなり、その実際の回転角に対応する値からずれた状態になると、上記差（Ｐi-1 −Ｐi ）に位置カウンタＰのカウンタ値における上記実際の回転角に対応する値からのずれが反映される。すなわち、そのずれの分だけ上記差（Ｐi-1 −Ｐi ）が正常値Ｊからずれることになる。従って、差（Ｐi-1 −Ｐi ）が正常値Ｊでないことに基づき、位置カウンタＰのカウンタ値における異常発生を検出することができ、その異常への対策を講じることができる。また、上記異常発生の検出に用いられる差（Ｐi-1 −Ｐi ）を算出するのには、ブラシレスモータ４７の駆動に用いられる電気角センサＳ１〜Ｓ３があればよく、上記異常発生の検出のために新たなセンサ等を設ける必要はない。
【００６１】
更に、上記異常への対策として、本実施形態では、同異常発生の検出時に上記差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分を位置カウンタＰ用の補正値ΔＰとし、その補正値ΔＰ分の補正を位置カウンタＰのカウンタ値に加える。
【００６２】
上記差（Ｐi-1 −Ｐi ）には、位置カウンタＰのカウンタ値におけるブラシレスモータ４７の実際の回転角に対応する値からのずれが反映されている。このため、当該差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分である補正値ΔＰ分の補正を位置カウンタＰのカウンタ値に加えることで、同カウンタ値におけるブラシレスモータ４７の実際の回転角に対応する値からのずれを修正することができる。従って、位置カウンタＰ（正確にはストロークカウンタＳ）のカウンタ値に基づき検出されるブラシレスモータ４７の回転角に基づきブラシレスモータ４７を駆動し、バルブリフト可変機構１４を駆動制御しようとするとき、それを正しく行えなくなってエンジン運転への悪影響に繋がることはない。
【００６３】
次に、上述した位置カウンタＰのカウンタ値の異常検出、及び、その異常検出時に行われる位置カウンタＰのカウンタ値を正常値に戻すための補正について、ブラシレスモータ４７の正回転中、逆回転中、及び正逆回転反転中に分けて詳しく説明する。
【００６４】
［モータ正回転中］
ブラシレスモータ４７の正回転中、図６（ａ）に示されるようにノイズが発生すると、図６（ｄ）に示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、二点鎖線で示されるように「４」だけ小さくなることは上述したとおりである。この場合、電気角カウンタＥのカウンタ値が「２」から「３」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（この場合は「−４」）に対し「４」だけずれた「０」になる。
【００６５】
上記差（Ｐi-1 −Ｐi ）の正常値Ｊについては、モータ正回転中、位置カウンタＰのカウンタ値が位置センサＳ４，Ｓ５からのパルス信号のエッジ毎に「１」ずつ増加することから、電気角センサＳ１〜Ｓ３からのパルス信号のエッジ間において位置センサＳ４，Ｓ５から出力されるパルス信号のエッジ数ｎに関係して、「−ｎ」に設定される。なお、この実施形態では、電気角センサＳ１〜Ｓ３からのパルス信号のエッジ間において位置センサＳ４，Ｓ５から出力されるパルス信号のエッジ数ｎが「４」であることから、モータ正回転中の上記正常値Ｊは「−４」に設定される。
【００６６】
そして、電気角カウンタＥのカウンタ値が「２」から「３」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（＝−４）でないことに基づき、位置カウンタＰのカウンタ値の異常発生が検出される。このように、位置カウンタＰのカウンタ値の異常発生が検出されると、上記差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分「（Ｐi-1 −Ｐi ）−Ｊ」が位置カウンタＰ用の補正値ΔＰ（この場合は「４」）として設定され、その補正値ΔＰ分の補正が位置カウンタＰのカウンタ値（二点鎖線）に加えられる。その結果、図６（ｄ）に黒矢印で示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）へと変化する。これにより、位置カウンタＰのカウンタ値における上記実際の回転角に対応する値（実線）からのずれが修正される。
【００６７】
［モータ逆回転中］
ブラシレスモータ４７の逆回転中、図６（ａ）に示されるようにノイズが発生すると、図６（ｅ）に示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、二点鎖線で示されるように「４」だけ大きくなることは上述したとおりである。この場合、電気角カウンタＥのカウンタ値が「３」から「２」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（この場合は「４」）に対し「４」だけずれた「０」になる。
【００６８】
上記差（Ｐi-1 −Ｐi ）の正常値Ｊについては、モータ逆回転中、位置カウンタＰのカウンタ値が位置センサＳ４，Ｓ５からのパルス信号のエッジ毎に「１」ずつ減少することから、電気角センサＳ１〜Ｓ３からのパルス信号のエッジ間において位置センサＳ４，Ｓ５から出力されるパルス信号のエッジ数ｎに関係して、「ｎ」に設定される。なお、この実施形態では、エッジ数ｎが「４」であることから、モータ逆回転中の上記正常値Ｊは「４」に設定される。
【００６９】
そして、電気角カウンタＥのカウンタ値が「２」から「１」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（＝４）でないことに基づき、位置カウンタＰのカウンタ値の異常発生が検出される。このように、位置カウンタＰのカウンタ値の異常発生が検出されると、上記差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分「（Ｐi-1 −Ｐi ）−Ｊ」が位置カウンタＰ用の補正値ΔＰ（この場合は「−４」）として設定され、その補正値ΔＰ分の補正が位置カウンタＰのカウンタ値（二点鎖線）に加えられる。その結果、図６（ｅ）に黒矢印で示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）へと変化する。これにより、位置カウンタＰのカウンタ値における上記実際の回転角に対応する値（実線）からのずれが修正される。
【００７０】
［モータ正逆回転反転中］
ブラシレスモータ４７の正逆回転反転中、例えば図８（ｂ）に破線Ｌ１で示されるようにノイズが発生すると、図８（ｄ）に破線Ｌ２で示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、二点鎖線で示されるように「４」だけ小さくなることは上述したとおりである。この場合、電気角カウンタＥのカウンタ値が「３」から「２」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（この場合は「０」）に対し「４」だけずれる。
【００７１】
上記差（Ｐi-1 −Ｐi ）の正常値Ｊについては、位置カウンタＰのカウンタ値がモータ正回転中には位置センサＳ４，Ｓ５からのパルス信号のエッジ毎に「１」ずつ増加し、モータ逆回転中には上記エッジ毎に「１」ずつ減少するため、モータ正逆回転反転中には「０」に設定される。
【００７２】
そして、電気角カウンタＥのカウンタ値が「３」から「２」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（＝０）でないことに基づき、位置カウンタＰのカウンタ値の異常発生が検出される。このように、位置カウンタＰのカウンタ値の異常発生が検出されると、上記差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分「（Ｐi-1 −Ｐi ）−Ｊ」が位置カウンタＰ用の補正値ΔＰ（この場合は「４」）として設定され、その補正値ΔＰ分の補正が位置カウンタＰのカウンタ値（破線Ｌ２）に加えられる。その結果、図８（ｄ）に上向き黒矢印で示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）へと変化する。これにより、位置カウンタＰのカウンタ値における上記実際の回転角に対応する値（実線）からのずれが修正される。
【００７３】
また、上記ブラシレスモータの正逆回転反転中、例えば図８（ｂ）に破線Ｌ３で示されるようにノイズが発生すると、図８（ｄ）に破線Ｌ４で示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）に対し、二点鎖線で示されるように「４」だけ大きくなることは上述したとおりである。この場合、電気角カウンタＥのカウンタ値が「３」から「２」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（この場合は「０」）に対し「４」だけずれる。
【００７４】
この場合も、電気角カウンタＥのカウンタ値が「３」から「２」に変化する電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生時、上記差（Ｐi-1 −Ｐi ）が正常値Ｊ（＝０）でないことに基づき、位置カウンタＰのカウンタ値の異常発生が検出される。更に、上記差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分「（Ｐi-1 −Ｐi ）−Ｊ」が位置カウンタＰ用の補正値ΔＰ（この場合は「−４」）として設定され、その補正値ΔＰ分の補正が位置カウンタＰのカウンタ値（破線Ｌ４）に加えられる。その結果、図８（ｄ）に下向き黒矢印で示されるように、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値（実線）へと変化する。これにより、位置カウンタＰのカウンタ値における上記実際の回転角に対応する値（実線）からのずれが修正される。
【００７５】
次に、位置カウンタＰのカウンタ値の異常検出手順、及び、その異常を検出したときに当該カウンタ値を正しい値に戻すための補正手順について、位置カウンタ異常検出ルーチンを示す図１０及び図１１のフローチャートを参照して説明する。この位置カウンタ異常検出ルーチンは、電子制御装置５０を通じて、位置センサＳ４，Ｓ５からのパルス信号のエッジ間隔に対応する時間間隔よりも短い間隔をもって周期的に実行される。
【００７６】
同ルーチンにおいては、電気角センサＳ１〜Ｓ３からのパルス信号のエッジが発生したとき（図１０のＳ２０１：ＹＥＳ）、位置カウンタＰのカウンタ値が電子制御装置５０のメモリに記憶され（Ｓ２０２）、前回のエッジ発生時のカウンタ値Ｐi-1 と今回のエッジ発生時のカウンタ値Ｐi との差（Ｐi-1 −Ｐi ）が算出される（Ｓ２０３）。
【００７７】
続いて、ブラシレスモータ４７の回転状態に応じて、上記差（Ｐi-1 −Ｐi ）の正常値Ｊが可変設定される。具体的には、正常値Ｊは、モータ正回転中（図１１のＳ２０４：ＹＥＳ）であれば「−４」に設定され（Ｓ２０６）、モータ逆回転中（Ｓ２０５：ＹＥＳ）であれば「４」に設定され（Ｓ２０７）、モータ正逆回転反転中（Ｓ２０５：ＮＯ）であれば「０」に設定される（Ｓ２０８）。
【００７８】
そして、上記差（Ｐi-1 −Ｐi ）が正常値Ｊと等しいか否かに基づき、位置カウンタＰのカクンタ値に異常が発生しているか否かが判断される（Ｓ２０９）。ここで差（Ｐi-1 −Ｐi ）が正常値Ｊでなく肯定判定がなされると、位置カウンタＰのカウンタ値における異常発生が検出される（Ｓ２１０）。このときには、上記差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分「（Ｐi-1 −Ｐi ）−Ｊ」が補正値ΔＰとして設定される（Ｓ２１１）。また、ステップＳ２０９で差（Ｐi-1 −Ｐi ）が正常値Ｊであり否定判定がなされると、位置カウンタＰのカウンタ値が正常であることが検出される（Ｓ２１２）。このときには、補正値ΔＰが「０」に設定される（Ｓ２１４）。
【００７９】
上記のように補正値ΔＰが設定された後、その補正値ΔＰ分の補正が位置カウンタＰのカウンタ値に加えられる（Ｓ２１５）。これにより、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応した値からずれていたとしても、そのずれが修正されることとなる。
【００８０】
以上詳述した本実施形態によれば、以下に示す効果が得られるようになる。
（１）電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生毎に、前回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi-1 と今回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi との差（Ｐi-1 −Ｐi ）が算出される。この差（Ｐi-1 −Ｐi ）には、位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値からずれた状態になったとき、当該ずれが反映されることとなる。すなわち、そのずれの分だけ上記差（Ｐi-1 −Ｐi ）が正常値Ｊからずれることになる。従って、差（Ｐi-1 −Ｐi ）が正常値Ｊでないことに基づき、位置カウンタＰのカウンタ値における異常発生を検出することができ、その異常への対策を講じることができる。また、上記異常発生の検出に用いられる差（Ｐi-1 −Ｐi ）を算出するのには、ブラシレスモータ４７の駆動に用いられる電気角センサＳ１〜Ｓ３があればよく、上記異常発生の検出のために新たなセンサ等を設ける必要はない。
【００８１】
（２）位置カウンタＰのカウンタ値におけるブラシレスモータ４７の実際の回転角に対応する値からのずれは、位置センサＳ４，Ｓ５のうち一方のセンサからの信号にノイズが発生し、そのノイズと他方のセンサからのパルス信号のエッジとが重なった場合に生じる。より詳しくは、ノイズの立ち上がりエッジ、パルス信号のエッジ、及びノイズの立ち下がりエッジにて、それぞれ位置カウンタＰのカウンタ値がブラシレスモータ４７の実際の回転角に対応する値から離れる側にずれる。このように位置カウンタＰのカウンタ値が上記実際の回転角に対応する値からずれたとしても、上記（１）に示した手順により当該カウンタ値における異常発生を的確に検出することができる。
【００８２】
（３）位置カウンタＰのカウンタ値は、ブラシレスモータ４７の正回転中には位置センサＳ４，Ｓ５からのパルス信号のエッジ毎に増加してゆき、ブラシレスモータ４７の逆回転中には位置センサＳ４，Ｓ５からのパルス信号のエッジ毎に減少してゆく。このため、位置カウンタＰのカウンタ値が正常であるとき、上記差（Ｐi-1 −Ｐi ）は、モータ正回転中であれば上記エッジ数ｎ（＝４）に対応して「−４」となり、モータ逆回転中であれば「４」となり、モータ正逆回転反転中であれば「０」となる。これに対応して、位置カウンタＰのカウンタ値に異常が発生しているか否かを判断するための差（Ｐi-1 −Ｐi ）の正常値Ｊが、ブラシレスモータ４７の回転状態に応じて「−４」、「４」、及び「０」の間で切り換えられる。従って、差（Ｐi-1 −Ｐi ）が当該正常値Ｊでないことに基づき的確に上記異常発生の検出を行うことができる。
【００８３】
（４）位置カウンタＰのカウンタ値の異常発生が検出されたときには、当該カウンタ値におけるブラシレスモータ４７の実際の回転角に対応する値からのずれが上記差（Ｐi-1 −Ｐi ）に反映されることになる。このため、当該差（Ｐi-1 −Ｐi ）と正常値Ｊとの差分である補正値ΔＰ分の補正を位置カウンタＰのカウンタ値に加えることで、同カウンタ値におけるブラシレスモータ４７の実際の回転角に対応する値からのずれを修正することができる。従って、位置カウンタＰのカウンタ値に基づき検出されるブラシレスモータ４７の回転角に基づき同モータ４７を駆動し、バルブリフト可変機構１４を駆動制御しようとするとき、それを正しく行えなくなってエンジン運転への悪影響に繋がることはない。
【００８４】
なお、上記実施形態は、例えば以下のように変更することもできる。
・位置カウンタＰのカウンタ値の異常発生を検出した後、その異常への対策として当該カウンタ値の補正を行うことは必須ではない。例えば、上記異常への対策として、カウンタ値の補正に代えて、警告ランプ等により運転者に警告したり、電子制御装置５０の不揮発性メモリ５６に上記異常発生の旨のフラグを記憶したりしてもよい。
【００８５】
・電気角センサ数の変更や同センサの検出対象である多極マグネットの極数の変更を通じて、各電気角センサからのパルス信号のエッジ間隔を変更することも可能である。
・位置センサ数の変更や同センサの検出対象である多極マグネットの極数の変更を通じて各位置センサからのパルス信号のエッジ間隔を変更することも可能である。
【００８６】
・電気角センサＳ１〜Ｓ３からのパルス信号のエッジ間において位置センサＳ４，Ｓ５から出力されるパルス信号のエッジ数ｎを「４」に設定したが、その値についてはブラシレスモータ４７の回転角検出精度を確保し得る位置センサＳ４，Ｓ５からのパルス信号のエッジ間隔に対応する値であればよく、「２」以上の整数値に適宜変更可能である。このようにエッジ数ｎを変更する際には、位置カウンタの数や位置、及び、それら位置センサの検出対象である多極マグネットの極数が適宜変更されることとなる。
【００８７】
・ブラシレスモータ４７と一体回転する多極マグネットの磁気に応じてパルス信号を出力する位置センサＳ４，Ｓ５を設ける代わりに、ブラシレスモータ４７の回転に伴いパルス信号を出力する他のセンサ、例えば光学式のセンサを設けることも考えられる。この場合、ブラシレスモータ４７と一体回転するスリット付円板の厚さ方向側方にそれぞれ発光素子と受光素子を備える光学式のセンサを周方向に複数設け、ブラシレスモータ４７の回転時に当該各センサからパルス信号を出力させるようにすることが考えられる。この場合の各センサからのパルス信号の出力パターンについては、スリット付円板におけるスリットのパターン、及び、光学式のセンサの数や位置によって調整される。
【００８８】
・上記実施形態では、ブラシレスモータ４７の回転運動をコントロールシャフト１６の軸方向への運動に変換し、そのコントロールシャフト１６の軸方向変位を通じて駆動されるバルブリフト可変機構を例示したが、本発明のバルブリフト可変機構はこれに限定されない。例えば、ブラシレスモータ４７の回転運動を直接的に受けて駆動されるバルブリフト可変機構を採用することも可能である。
【００８９】
・バルブリフト可変機構１４を駆動するブラシレスモータ４７に本発明を適用したが、それ以外の各種機構を駆動するブラシレスモータに本発明を適用することもできる。
【図面の簡単な説明】
【００９０】
【図１】本実施形態のバルブリフト可変機構が適用されるエンジンのシリンダヘッド周りの構造を示す拡大断面図。
【図２】上記バルブリフト可変機構を駆動すべくコントロールシャフトを軸方向に変位させるための駆動機構、及び、その駆動機構を駆動制御する制御装置を示す略図。
【図３】（ａ）〜（ｈ）は、ブラシレスモータの回転角の変化に対する電気角センサＳ１〜Ｓ３のパルス信号の波形、位置センサＳ４，Ｓ５のパルス信号の波形、電気角カウンタＥのカウンタ値の推移、位置カウンタＰのカウンタ値の推移、及び、ストロークカウンタＳのカウンタ値の推移を示すタイミングチャート。
【図４】電気角カウンタＥ、位置カウンタＰ、及びストロークカウンタＳのカウンタ値を変化させる手順を示すフローチャート。
【図５】（ａ）は電気角センサＳ１〜Ｓ３からの信号に応じて変化する電気角カウンタＥのカウンタ値の変化態様を示す表、（ｂ）は位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰのカウンタ値の加減算態様を示す表。
【図６】（ａ）〜（ｅ）は、ブラシレスモータ４７の回転角の変化に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥのカウンタ値の推移、及び、位置カウンタＰのカウンタ値の推移を示すタイミングチャート。
【図７】（ａ）は図６（ｄ）のタイミングａ，ｂ，ｃでの位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰのカウンタ値の加減算態様を示す表、（ｂ）は図６（ｅ）のタイミングｃ，ｂ，ａでの位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰのカウンタ値の加減算態様を示す表。
【図８】（ａ）〜（ｄ）は、時間経過に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥのカウンタ値の推移、及び、位置カウンタＰのカウンタ値の推移を示すタイムチャート。
【図９】電気角センサＳ１〜Ｓ３からのパルス信号における前回のエッジ発生時と今回のエッジ発生時との電気角カウンタＥの変化方向と、ブラシレスモータの回転状態との関係を示す表。
【図１０】位置カウンタＰのカウンタ値の異常検出手順、及び、その異常を検出したときに当該カウンタ値を正しい値に戻すための補正手順を示すフローチャート。
【図１１】位置カウンタＰのカウンタ値の異常検出手順、及び、その異常を検出したときに当該カウンタ値を正しい値に戻すための補正手順を示すフローチャート。
【符号の説明】
【００９１】
１…エンジン、２…シリンダヘッド、３…シリンダブロック、５…ピストン、６…燃焼室、７…吸気通路、８…排気通路、９…吸気バルブ、１０…排気バルブ、１１…吸気カムシャフト、１１ａ…吸気カム、１２…排気カムシャフト、１２ａ…排気カム、１４…バルブリフト可変機構、１５…ロッカシャフト、１６…コントロールシャフト、１７…入力アーム、１８…出力アーム、１９…ローラ、２０…コイルスプリング、２１…ロッカアーム、２２…ラッシュアジャスタ、２３…ローラ、２４…バルブスプリング、４７…ブラシレスモータ、４８…変換機構、５０…電子制御装置（駆動装置、異常検出手段、補正手段）、５１…アクセルポジションセンサ、５２…スロットルポジションセンサ、５３…エアフローメータ、５４…クランクポジションセンサ、５５…イグニッションスイッチ、５６…不揮発性メモリ、Ｓ１〜Ｓ３…電気角センサ、Ｓ４，Ｓ５…位置センサ。
【図１】
0004736601.tif 000002
【図２】
0004736601.tif 000003
【図３】
0004736601.tif 000004
【図４】
0004736601.tif 000005
【図５】
0004736601.tif 000006
【図６】
0004736601.tif 000007
【図７】
0004736601.tif 000008
【図８】
0004736601.tif 000009
【図９】
0004736601.tif 000010
【図１０】
0004736601.tif 000011
【図１１】
0004736601.tif 000012