(57)【要約】【課題】位置センサからのパルス信号のエッジを計数する位置カウンタのカウンタ値が正常値からずれたとしても、そのずれを解消することのできるモータ制御装置を提供する。【解決手段】ブラシレスモータの各電気角センサからのパルス信号のエッジ発生毎に、今回のエッジ発生時の位置カウンタＰのカウンタ値Ｐiと前回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi-1との差（Ｐi−Ｐi-1）が算出される。この差（Ｐi−Ｐi-1）には、位置カウンタＰのカウンタ値における正常値からのずれが反映される。すなわち、そのずれの分だけ上記差（Ｐi−Ｐi-1）が正常値Ｊからずれる。そして、上記差（Ｐi−Ｐi-1）の正常値Ｊに対するずれ量｛Ｊ−（Ｐi−Ｐi-1）｝が位置カウンタＰのカウンタ値を補正するための補正値ΔＰとして設定され、同補正値ΔＰ分の補正が位置カウンタＰのカウンタ値に加えられる。【選択図】図７
2007162646.tif 000002
【特許請求の範囲】
【請求項１】
所定の回転角範囲内での回転駆動が行われるモータと、同モータの回転に伴いパルス信号を出力する位置センサとを備え、その位置センサからのパルス信号のエッジを計数する位置カウンタのカウンタ値に対し、前記モータの回転角を前記所定の回転角範囲の端まで変化させたときの前記位置カウンタのカウンタ値として記憶された学習値の正負を反転させた値を加算し、それによって得られる値をストロークカウンタのカウンタ値とし、そのストロークカウンタのカウンタ値に基づき前記モータの回転角を検出するモータ制御装置において、
前記位置カウンタのカウンタ値が正常値からずれているとき、その正常値に対する前記カウンタ値のずれ量を補正値として設定し、その補正値分の補正を前記位置カウンタのカウンタ値に加える補正手段と、
前記モータの回転角を前記所定の回転角範囲内の端まで変化させ、その状態での前記位置カウンタのカウンタ値を所定間隔をおいて複数回取得して累積し、その累積値を前記カウンタ値の取得回数で除算したものを前記学習値として記憶する学習手段と、
前記学習手段による前記位置カウンタのカウンタ値の取得及び累積が行われているときには、前記補正手段による前記位置カウンタのカウンタ値への前記補正値分の補正を禁止する禁止手段と、
を備えることを特徴とするモータ制御装置。
【請求項２】
前記禁止手段は、前記補正手段による前記位置カウンタのカウンタ値への前記補正値分の補正を禁止するとき、前記補正値をクリアして「０」にする
請求項１記載のモータ制御装置。
【請求項３】
前記モータは、その回転時に同モータに設けられた複数の電気角センサから位相をずらして出力されるパルス信号の出力パターンに基づき通電相を切り換えることで駆動されるブラシレスモータであり、
前記位置センサは、各電気角センサからパルス信号のエッジ間隔よりも短いエッジ間隔のパルス信号を出力するものであり、
前記補正手段は、各電気角センサから出力されるパルス信号のエッジ発生毎に、今回のエッジ発生時における位置カウンタのカウンタ値Ｐ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 ）｝が位置カウンタＰのカウンタ値を補正するための補正値ΔＰとして設定され、同補正値ΔＰ分の補正が位置カウンタＰのカウンタ値に加えられる。これにより、位置カウンタＰのカウンタ値における正常値からのずれを解消することができる。
【０１０５】
（２）位置カウンタＰのカウンタ値に対する上記補正値ΔＰ分の補正が、学習値Ｐｒの記憶処理（図６のＳ３０５）によりコントロールシャフト１６を上記変位端に変位させた状態で位置カウンタＰのカウンタ値を複数回取得している最中に加えられると、当該記憶処理によって不揮発性メモリ５６に記憶される学習値Ｐｒが誤った値になる。こうした不具合が生じる状況としては、例えばコントロールシャフト１６が上記変位端に到達する前に位置カウンタＰのカウンタ値が正常値からずれ、電気角センサＳ１〜Ｓ３からのパルス信号のエッジが発生する直前にコントロールシャフト１６が上記変位端に到達するという状況があげられる。
【０１０６】
この場合、コントロールシャフト１６の上記変位端への到達後であって位置カウンタＰのカウンタ値を取得して累積している途中で、上述したブラシレスモータ４７の回転角の変動により、その回転角が電気角センサＳ１〜Ｓ３からのパルス信号のエッジ発生タイミングに達することがある。これにより、学習値Ｐｒを求めるために位置カウンタＰのカウンタ値の取得が何回か行われた後、言い換えれば同カウンタ値を取得して累積している途中で、電気角センサＳ１〜Ｓ３からのパルス信号のエッジが発生し、そのエッジ発生時に補正値ΔＰ分の補正が位置カウンタＰのカウンタ値に加えられる。このようにカウンタ値の取得が何回か行われた後であって、カウンタ値を取得して累積している途中で、同カウンタ値に対し補正値ΔＰ分の補正が加えられると、累積完了した累積値を「Ｎ」で除算して得られる学習値Ｐｒが誤った値になる。すなわち、学習値Ｐｒが上記補正値ΔＰ分の補正に起因して増加方向、または減少方向にずれる。このように学習値Ｐｒがずれると、同学習値Ｐｒ等に基づき設定されるストロークカウンタＳのカウンタ値も適正値からずれ、同カウンタ値に基づき検出されるブラシレスモータ４７の回転角が不正確になる。従って、当該回転角に基づきブラシレスモータ４７を駆動して吸気バルブ９のバルブ特性を目標の特性とすべくバルブリフト可変機構１４を駆動制御しようとしても、それを正しく行えなくなってエンジン回転への悪影響に繋がる。
【０１０７】
しかし、上記記憶処理での位置カウンタＰのカウンタ値の取得及び累積が行われているときには、位置カウンタＰのカウンタ値が正常値からずれていたとしても、そのずれを解消するための補正値ΔＰ分の補正を上記カウンタ値に加えることが禁止される。このため、上記記憶処理において位置カウンタＰのカウンタ値を取得して累積している途中で、補正値ΔＰ分の補正が位置カウンタＰのカウンタ値に加えられることはなくなり、不揮発性メモリ５６に記憶される学習値Ｐｒに上述したずれが生じるのを回避することができる。更に、ストロークカウンタＳのカウンタ値に基づきブラシレスモータ４７の回転角を検出し、その回転角に基づき同モータ４７（バルブリフト可変機構１４）を駆動して吸気バルブ９のバルブ特性を目標とする特性へと制御しようとするとき、それを正しく行えなくなってエンジン回転への悪影響に繋がるという不具合を回避することができる。
【０１０８】
なお、このときに求められる学習値Ｐｒについては、上記位置カウンタＰのカウンタ値に正常値からのずれが生じている状態で求められるため、そのずれを補償するための値として求められる。従って、学習値Ｐｒ及び位置カウンタＰのカウンタ値に基づき設定されるストロークカウンタＳのカウンタ値は、位置カウンタＰのカウンタ値に補正値ΔＰ分の補正を加えていなくても、ブラシレスモータ４７の回転角を検出するための値として適正な値となる。
【０１０９】
（３）位置カウンタＰのカウンタ値に対し補正値ΔＰ分の補正が禁止されるときには、補正値ΔＰがクリアされて「０」とされる。仮に補正値ΔＰが「０」にされないとすると、位置カウンタＰのカウンタ値の取得及び累積が完了して累積値を「Ｎ」で除算した値が学習値Ｐｒとして不揮発性メモリ５６に記憶された後、補正値ΔＰ分の補正が位置カウンタＰのカウンタ値に加えられる。このとき、学習値Ｐｒは、位置カウンタＰのカウンタ値の正常値からのずれを補償するための値となっていることから、補正値ΔＰ分の補正を位置カウンタＰのカウンタ値に加えると、同カウンタ値及び学習値Ｐｒに基づき設定されるストロークカウンタＳのカウンタ値がブラシレスモータ４７の回転角に対応する値として適正な値からずれる。しかし、この場合には補正値ΔＰが「０」とされるため、学習値Ｐｒが位置カウンタＰのカウンタ値の正常値からのずれを補償するための値として不揮発性メモリ５６に記憶された後、その補正値ΔＰ分の補正が位置カウンタＰのカウンタ値に加えられることはなく、上述した問題が生じるのを回避することができる。
【０１１０】
なお、上記実施形態は、例えば以下のように変更することもできる。
・電気角センサ数の変更や同センサの検出対象である多極マグネットの極数の変更を通じて、各電気角センサからのパルス信号のエッジ間隔を変更することも可能である。
【０１１１】
・位置センサ数の変更や同センサの検出対象である多極マグネットの極数の変更を通じて各位置センサからのパルス信号のエッジ間隔を変更することも可能である。
・電気角センサＳ１〜Ｓ３からのパルス信号のエッジ間において位置センサＳ４，Ｓ５から出力されるパルス信号のエッジ数ｎを「４」に設定したが、その値についてはブラシレスモータ４７の回転角検出精度を確保し得る位置センサＳ４，Ｓ５からのパルス信号のエッジ間隔に対応する値であればよく、「２」以上の整数値に適宜変更可能である。このようにエッジ数ｎを変更する際には、位置カウンタの数や位置、及び、それら位置センサの検出対象である多極マグネットの極数が適宜変更されることとなる。
【０１１２】
・ブラシレスモータ４７と一体回転する多極マグネットの磁気に応じてパルス信号を出力する位置センサＳ４，Ｓ５を設ける代わりに、ブラシレスモータ４７の回転に伴いパルス信号を出力する他のセンサ、例えば光学式のセンサを設けることも考えられる。この場合、ブラシレスモータ４７と一体回転するスリット付円板の厚さ方向側方にそれぞれ発光素子と受光素子を備える光学式のセンサを周方向に複数設け、ブラシレスモータ４７の回転時に当該各センサからパルス信号を出力させるようにすることが考えられる。この場合の各センサからのパルス信号の出力パターンについては、スリット付円板におけるスリットのパターン、及び、光学式のセンサの数や位置によって調整される。
【０１１３】
・上記実施形態では、ブラシレスモータ４７の回転運動をコントロールシャフト１６の軸方向への運動に変換し、そのコントロールシャフト１６の軸方向変位を通じて駆動されるバルブリフト可変機構を例示したが、本発明のバルブリフト可変機構はこれに限定されない。例えば、ブラシレスモータ４７の回転運動を直接的に受けて駆動されるバルブリフト可変機構を採用することも可能である。
【０１１４】
・バルブリフト可変機構１４を駆動するブラシレスモータ４７に本発明を適用したが、それ以外の各種機構を駆動するブラシレスモータに本発明を適用することもできる。
【図面の簡単な説明】
【０１１５】
【図１】本実施形態のバルブリフト可変機構が適用されるエンジンのシリンダヘッド周りの構造を示す拡大断面図。
【図２】上記バルブリフト可変機構を駆動すべくコントロールシャフトを軸方向に変位させるための駆動機構、及び、その駆動機構を駆動制御する制御装置を示す略図。
【図３】（ａ）〜（ｈ）は、ブラシレスモータの回転角の変化に対する電気角センサＳ１〜Ｓ３のパルス信号の波形、位置センサＳ４，Ｓ５のパルス信号の波形、電気角カウンタＥのカウンタ値の推移、位置カウンタＰのカウンタ値の推移、及び、ストロークカウンタＳのカウンタ値の推移を示すタイミングチャート。
【図４】電気角カウンタＥ、位置カウンタＰ、及びストロークカウンタＳのカウンタ値を変化させる手順を示すフローチャート。
【図５】（ａ）は電気角センサＳ１〜Ｓ３からの信号に応じて変化する電気角カウンタＥのカウンタ値の変化態様を示す表、（ｂ）は位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰのカウンタ値の加減算態様を示す表。
【図６】学習値Ｐｒの学習（記憶）を実行する手順を示すフローチャート。
【図７】（ａ）〜（ｅ）は、ブラシレスモータ４７の回転角の変化に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥのカウンタ値の推移、及び、位置カウンタＰのカウンタ値の推移を示すタイミングチャート。
【図８】（ａ）は図６（ｄ）のタイミングａ，ｂ，ｃでの位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰのカウンタ値の加減算態様を示す表、（ｂ）は図６（ｅ）のタイミングｃ，ｂ，ａでの位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰのカウンタ値の加減算態様を示す表。
【図９】（ａ）〜（ｄ）は、時間経過に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥのカウンタ値の推移、及び、位置カウンタＰのカウンタ値の推移を示すタイムチャート。
【図１０】電気角センサＳ１〜Ｓ３からのパルス信号における前回のエッジ発生時と今回のエッジ発生時との電気角カウンタＥの変化方向と、ブラシレスモータの回転状態との関係を示す表。
【図１１】位置カウンタＰのカウンタ値のを正常値に戻すための補正手順を示すフローチャート。
【図１２】（ａ）〜（ｃ）は、作用角小側の変位端にコントロールシャフト１６を変位させた状態での位置カウンタＰのカウンタ値の取得回数、コントロールシャフト１６を上記変位端に変位させた状態での位置カウンタＰのカウンタ値の変動態様、及び取得した位置カウンタＰのカウンタ値の累積値の推移を示すタイムチャート。
【図１３】位置カウンタＰのカウンタ値への補正値ΔＰ分の補正を禁止する手順を示すフローチャート。
【符号の説明】
【０１１６】
１…エンジン、２…シリンダヘッド、３…シリンダブロック、５…ピストン、６…燃焼室、７…吸気通路、８…排気通路、９…吸気バルブ、１０…排気バルブ、１１…吸気カムシャフト、１１ａ…吸気カム、１２…排気カムシャフト、１２ａ…排気カム、１４…バルブリフト可変機構、１５…ロッカシャフト、１６…コントロールシャフト、１７…入力アーム、１８…出力アーム、１９…ローラ、２０…コイルスプリング、２１…ロッカアーム、２２…ラッシュアジャスタ、２３…ローラ、２４…バルブスプリング、４７…ブラシレスモータ、４８…変換機構、５０…電子制御装置（補正手段、学習手段、禁止手段）、５１…アクセルポジションセンサ、５２…スロットルポジションセンサ、５３…エアフローメータ、５４…クランクポジションセンサ、５５…イグニッションスイッチ、５６…不揮発性メモリ、Ｓ１〜Ｓ３…電気角センサ、Ｓ４，Ｓ５…位置センサ。
【図１】
2007162646.tif 000003
【図２】
2007162646.tif 000004
【図３】
2007162646.tif 000005
【図４】
2007162646.tif 000006
【図５】
2007162646.tif 000007
【図６】
2007162646.tif 000008
【図７】
2007162646.tif 000009
【図８】
2007162646.tif 000010
【図９】
2007162646.tif 000011
【図１０】
2007162646.tif 000012
【図１１】
2007162646.tif 000013
【図１２】
2007162646.tif 000014
【図１３】
2007162646.tif 000015