(57)【要約】【課題】位置センサからのパルス信号を計数したカウンタ値とモータの実際の回転角に対するカウンタ値とのずれ量を算出するとともに、そのずれ量に対してオーバーフロー処理を実行する場合にあって、ずれ量の変化量に基づき位置センサの異常判定を行う際の判定精度を高めることのできるモータの制御装置を提供することにある。【解決手段】ずれ量の積算値ΔＰａについて変化量Ｈを算出する（Ｓ３０１）。そして、変化量Ｈがオーバーフロー判定値αを超えている場合には（Ｓ３０２：ＹＥＳ）、変化量Ｈがモータの能力を超えた量となっており、積算値ΔＰａにオーバーフロー処理が行われたと判断する。そしてこの場合には、変化量Ｈからオーバーフロー処理の実行による変化分を除去する修正処理を実行し（Ｓ３０４，またはＳ３０５）、その修正された変化量Ｈが異常判定値β以上である場合には（Ｓ３０６：ＹＥＳ）、位置センサに異常ありと判定する（Ｓ３０８）。【選択図】図１５
2007312478.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-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 ）の正常値Ｊに対するずれ量を、位置カウンタＰのずれ量ΔＰとしたが、この他の態様でずれ量ΔＰを求める場合でも、本発明は同様に適用することができる。
【０１６２】
・可変動弁機構１４を駆動するアクチュエータとして、ブラシレスモータ４７を用いるようにしたが、上記ずれ量ΔＰを検出する、あるいは算出することが可能であれば、その他のモータを用いるようにしてもよい。
【図面の簡単な説明】
【０１６３】
【図１】本発明にかかるモータの制御装置を具体化した一実施形態にあって、これが適用されるエンジンのシリンダヘッド周りの構造を示す拡大断面図。
【図２】同実施形態において、可変動弁機構を駆動する駆動機構、及びその駆動機構を制御する制御装置を示す模式図。
【図３】（ａ）〜（ｈ）は、ブラシレスモータの回転角の変化に対する電気角センサＳ１〜Ｓ３のパルス信号の波形、位置センサＳ４，Ｓ５のパルス信号の波形、電気角カウンタＥの推移、位置カウンタＰの推移、及びストロークカウンタＳの推移を示すタイミングチャート。
【図４】同実施形態において、電気角カウンタＥ、位置カウンタＰ、及びストロークカウンタＳを変化させるカウント処理の手順を示すフローチャート。
【図５】（ａ）は電気角センサＳ１〜Ｓ３からの信号に応じて変化する電気角カウンタＥの変化態様を示す表、（ｂ）は位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰの加減算についてその態様を示す表。
【図６】（ａ）〜（ｅ）は、ブラシレスモータの回転角の変化に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥの推移、及び位置カウンタＰの推移について、同モータの正回転中及び逆回転中にノイズが重畳した場合の態様を示すタイミングチャート。
【図７】（ａ）は図６（ｄ）のタイミングＡ，Ｂ，Ｃでの位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰの加減算についてその態様を示す表、（ｂ）は図６（ｅ）のタイミングＣ，Ｂ，Ａでの位置センサＳ４，Ｓ５からの信号に応じた位置カウンタＰの加減算についてその態様を示す表。
【図８】（ａ）〜（ｄ）は、時間経過に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥの推移、及び位置カウンタＰの推移について、ブラシレスモータの正逆回転反転中にノイズが重畳した場合の態様を示すタイムチャート。
【図９】（ａ）〜（ｅ）は、ブラシレスモータの回転角の変化に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥの推移、及び位置カウンタＰの推移について、位置センサＳ４が断線した場合の態様を示すタイミングチャート。
【図１０】電気角センサＳ１〜Ｓ３からのパルス信号における前回のエッジ発生時と今回のエッジ発生時との電気角カウンタＥの変化方向と、ブラシレスモータの回転状態との関係を示す表。
【図１１】同実施形態において実行されるずれ量算出処理の処理手順を示すフローチャート。
【図１２】同実施形態において実行されるずれ量算出処理の処理手順を示すフローチャート。
【図１３】（ａ）〜（ｄ）、（ｇ）、（ｈ）は、ブラシレスモータの回転角の変化に対する位置センサＳ４，Ｓ５からのパルス信号の波形、電気角カウンタＥの推移、位置カウンタＰの推移、ずれ量の積算値の推移、及び積算値の変化量の推移について、同モータの正回転中にノイズが重畳した場合の態様を示すタイミングチャート。
【図１４】（Ａ）は、ずれ量の積算値が上限値側でオーバーフローしたときの積算値の処理態様について、その一例を示すグラフ。（Ｂ）は、ずれ量の積算値が下限値側でオーバーフローしたときの積算値の処理態様について、その一例を示すグラフ。
【図１５】同実施形態において実行される異常判定・補正処理の処理手順を示すフローチャート。
【符号の説明】
【０１６４】
１…エンジン、２…シリンダヘッド、３…シリンダブロック、５…ピストン、６…燃焼室、７…吸気通路、８…排気通路、９…吸気バルブ、１０…排気バルブ、１１…吸気カムシャフト、１１ａ…吸気カム、１２…排気カムシャフト、１２ａ…排気カム、１４…可変動弁機構、１５…ロッカシャフト、１６…コントロールシャフト、１７…入力アーム、１８…出力アーム、１９…ローラ、２０…コイルスプリング、２１…ロッカアーム、２２…ラッシュアジャスタ、２３…ローラ、２４…バルブスプリング、４７…ブラシレスモータ、４８…変換機構、５０…電子制御装置、５１…アクセルセンサ、５２…スロットルセンサ、５３…エアフロメータ、５４…クランク角センサ、５５…吸気温センサ、５６…イグニッションスイッチ、Ｓ１〜Ｓ３：電気角センサ、Ｓ４、Ｓ５…位置センサ。
【図１】
2007312478.tif 000003
【図２】
2007312478.tif 000004
【図３】
2007312478.tif 000005
【図４】
2007312478.tif 000006
【図５】
2007312478.tif 000007
【図６】
2007312478.tif 000008
【図７】
2007312478.tif 000009
【図８】
2007312478.tif 000010
【図９】
2007312478.tif 000011
【図１０】
2007312478.tif 000012
【図１１】
2007312478.tif 000013
【図１２】
2007312478.tif 000014
【図１３】
2007312478.tif 000015
【図１４】
2007312478.tif 000016
【図１５】
2007312478.tif 000017