(57)【要約】【課題】位置センサからのパルス信号を係数する位置カウンタのカウンタ値がモータの実際の回転角に対応する値からずれたとしても、そのずれを新たなセンサ等を設けることなく無くすことのできるモータ制御装置を提供する。【解決手段】ブラシレスモータの各電気角センサからのパルス信号のエッジ発生毎に、前回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi-1 と今回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi との差（Ｐi −Ｐi-1 ）が算出される。この差には、位置カウンタＰのカウンタ値がブラシレスモータの実際の回転角に対応する値からずれた状態になったとき、当該ずれが反映されることとなる。すなわち、そのずれの分だけ上記差が正常値Ｊからずれることになる。そして、この正常値Ｊに対する上記差のずれ量である第１の補正値ΔＰを用いて位置カウンタＰのカウンタ値が補正される。【選択図】      図６
2007037335.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 ）」）を、図１２（ａ）に示す。
【００８２】
タイミングａは、上記ノイズの立ち上がりエッジに対応している。このため、タイミングａでは、上記ノイズの立ち上がりエッジに起因して、電気角センサＳ１〜Ｓ３からの信号がそれぞれ「Ｌ」、「Ｈ」、「Ｈ」となり、電気角カウンタＥのカウンタ値が「２」から「１」へと変化する。このため、電気角センサＳ１〜Ｓ３からの信号における前回エッジ発生時のモータステータスと今回エッジ発生時のモータステータスとがそれぞれ、「ｃｗ」、「ｃｃｗ」となる。その結果、モータ正逆回転反転中である旨の誤判断がなされ、正常値Ｊが誤って「０」に設定される。この場合、今回のエッジ発生時の位置カウンタＰのカウンタ値Ｐ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-1 と今回のエッジ発生時の位置カウンタＰのカウンタ値Ｐi との差（Ｐ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 ）、第１の補正値ΔＰ、及び、第２の補正値ΔＰｒを示す表。
【図１９】位置カウンタＰのカウンタ値に対する第１の補正値による誤補正を無効化する手順を示すフローチャート。
【符号の説明】
【０１４８】
１…エンジン、２…シリンダヘッド、３…シリンダブロック、５…ピストン、６…燃焼室、７…吸気通路、８…排気通路、９…吸気バルブ、１０…排気バルブ、１１…吸気カムシャフト、１１ａ…吸気カム、１２…排気カムシャフト、１２ａ…排気カム、１４…バルブリフト可変機構、１５…ロッカシャフト、１６…コントロールシャフト、１７…入力アーム、１８…出力アーム、１９…ローラ、２０…コイルスプリング、２１…ロッカアーム、２２…ラッシュアジャスタ、２３…ローラ、２４…バルブスプリング、４７…ブラシレスモータ、４８…変換機構、５０…電子制御装置（駆動装置、算出手段、設定手段、第１の補正手段、第２の補正手段）、５１…アクセルポジションセンサ、５２…スロットルポジションセンサ、５３…エアフローメータ、５４…クランクポジションセンサ、５５…イグニッションスイッチ、５６…不揮発性メモリ、Ｓ１〜Ｓ３…電気角センサ、Ｓ４，Ｓ５…位置センサ。
【図１】
2007037335.tif 000003
【図２】
2007037335.tif 000004
【図３】
2007037335.tif 000005
【図４】
2007037335.tif 000006
【図５】
2007037335.tif 000007
【図６】
2007037335.tif 000008
【図７】
2007037335.tif 000009
【図８】
2007037335.tif 000010
【図９】
2007037335.tif 000011
【図１０】
2007037335.tif 000012
【図１１】
2007037335.tif 000013
【図１２】
2007037335.tif 000014
【図１３】
2007037335.tif 000015
【図１４】
2007037335.tif 000016
【図１５】
2007037335.tif 000017
【図１６】
2007037335.tif 000018
【図１７】
2007037335.tif 000019
【図１８】
2007037335.tif 000020
【図１９】
2007037335.tif 000021