(57)【要約】【課題】  磁石の磁極数が増えてばらつきによる影響が複雑化しても、回転角度を正確に検出できるようにする。【解決手段】  回転方向に複数の磁極を有する磁石と、この磁石を検出してその磁界の強さに応じた信号を出力するセンサとを備えると共に、センサからの検出信号に基づいて回転体の回転角度を算出する演算装置を備える。  演算装置は、対象となる回転体が１回転する間の検出信号Ａ１，Ｂ１を磁石の磁極数と同数の区間に区分して、各区間における最大値又は最小値を記憶する記憶手段と、各区間における検出信号Ａ１，Ｂ１をその区間に対応して記憶された最大値又は最小値で補正する補正手段と、補正された検出信号Ａ２，Ｂ２を用いて回転角度Ｃを算出する算出手段とを備える。【選択図】  図２
2008096164.tif 000002
【特許請求の範囲】
【請求項１】
対象となる回転体と一体的に回転する、回転方向に複数の磁極を有する磁石と、該磁石を検出してその磁界の強さに応じた信号を出力するセンサとを備えると共に、上記センサからの検出信号に基づいて上記回転体の回転角度を算出する演算装置を備え、
上記演算装置は、上記回転体が１回転する間の上記検出信号を上記磁石の磁極数と同数の区間に区分し、各区間における最大値又は最小値を記憶する記憶手段と、上記各区間における検出信号をその区間に対応して記憶された上記最大値又は最小値で補正する補正手段と、補正された上記検出信号を用いて上記回転角度を算出する算出手段とを備えることを特徴とする回転角度検出装置。
【請求項２】
上記センサは上記回転方向に所定の角度間隔で複数配置されており、上記演算装置は上記各センサからの検出信号に基づいて上記回転体の回転角度を算出するものであり、
上記記憶手段は上記各検出信号について上記各区間の最大値又は最小値を記憶し、上記補正手段は上記各検出信号を上記各区間に対応する上記最大値又は最小値で補正し、上記算出手段は補正された上記検出信号を用いて上記回転角度を算出することを特徴とする請求項１に記載の回転角度検出装置。
【請求項３】
上記記憶手段は、上記算出手段で算出される上記回転角度が上記最大値に対応して予め定められた角度となったときに、上記センサからの検出信号の値を上記最大値として記憶し、上記回転角度が上記最小値に対応して予め定められた角度となったときに、上記センサからの検出信号の値を上記最小値として記憶するものであることを特徴とする請求項１又は請求項２に記載の回転角度検出装置。
【請求項４】
上記補正手段は、補正前と符号を変えることなく、記憶されている上記最大値又は最小値の逆数を上記検出信号の値に乗算することで補正を行うものであることを特徴とする請求項１ないし請求項３の何れかに記載の回転角度検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータのロータなどの回転体を対象として、その回転角度を検出する装置に関する。
【背景技術】
【０００２】
従来、回転体の回転角度を検出するために、回転体と一体的に回転するよう磁石を設けると共に、磁石が回転することによる磁界の強さの変化を信号として出力するセンサを設け、センサの検出信号に基づいて回転角度を算出することが行われている。このような構成では、磁石には着磁や取り付けのばらつきが存在し、又、センサにも取り付けのばらつきが存在することになるが、このような製造上のばらつきによる影響がセンサの検出信号に反映されるため、検出信号から正確な回転体の回転角度が得られるようにすることは非常に困難である。そこで、例えば特許文献１に示すように、オフセット補正値及び振幅補正値を求め、これらの補正値を用いてセンサ（磁束密度検出部）からの検出信号を補正することが考えられている。
【０００３】
【特許文献１】特開２００４−２２６１２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の特許文献１の技術のように、検出信号をオフセット補正値及び振幅補正値を用いて補正することで、ばらつき等による影響を取り除いた信号が得られ、この信号から精度の高い回転角度を算出することができる。しかしながら、上記の特許文献１の技術では、磁石の磁極数が増えてばらつきによる影響がより複雑になると、充分な補正ができなくなることが考えられる。
【０００５】
そこで本発明の目的は、上記従来の技術に代わって、回転角度を正確に検出できるようにすることである。
【課題を解決するための手段】
【０００６】
上記の目的を達成するため、本発明に係る回転角度検出装置は、対象となる回転体と一体的に回転する、回転方向に複数の磁極を有する磁石と、該磁石を検出してその磁界の強さに応じた信号を出力するセンサとを備えると共に、上記センサからの検出信号に基づいて上記回転体の回転角度を算出する演算装置を備え、上記演算装置は、上記回転体が１回転する間の上記検出信号を上記磁石の磁極数と同数の区間に区分し、各区間における最大値又は最小値を記憶する記憶手段と、上記各区間における検出信号をその区間に対応して記憶された上記最大値又は最小値で補正する補正手段と、補正された上記検出信号を用いて上記回転角度を算出する算出手段とを備えることを特徴とする構成としている。
【０００７】
このような本発明によれば、回転体が１回転する間に、検出信号は磁石の磁極数に応じて最大値又は最小値となることになり、このうち最大値が記憶される区間では最大値で検出信号の値が補正され、最小値が記憶される区間では最小値で検出信号の値が補正される。そして、こうして補正された検出信号で回転角度が算出され、回転体の位置が求められる。
従って、センサからの検出信号を各区間での最大値又は最小値を用いて補正するので、各区間ごとで検出信号に表れるばらつきの影響が異なっていても、その相異を考慮した補正を行うことができ、正確な回転角度が得られるようになる。又、磁石の磁極数が増えても、その分だけ検出信号を細かく区分して補正することになるので、算出される回転角度の正確性が低下することはない。更に、回転体が回転するごとに各区間で最大値又は最小値を更新するようにすれば、回転体の回転に伴う発熱があり、その影響を磁石又はセンサが受けたとしても、それを考慮した検出信号の補正を行うことができ、より正確な回転角度が得られる。
【０００８】
上記の構成において、上記センサは上記回転方向に所定の角度間隔で複数配置されており、上記演算装置は上記各センサからの検出信号に基づいて上記回転体の回転角度を算出するものであれば、上記記憶手段は上記各検出信号について上記各区間の最大値又は最小値を記憶し、上記補正手段は上記各検出信号を上記各区間に対応する上記最大値又は最小値で補正し、上記算出手段は補正された上記検出信号を用いて上記回転角度を算出するものとすることができる。
つまり、複数のセンサからの複数の検出信号についても、検出信号ごとに、最大値が記憶される区間、最小値が記憶される区間をそれぞれ設定し、その区間において最大値又は最小値を用いて検出信号の値が補正されるようにすることができ、補正された複数の検出信号から回転角度を算出するようにすることができる。
【０００９】
このようにすれば、各センサについてその検出信号を補正することができるので、センサごとの検出信号に表れるばらつきの影響が異なっていても、その相異を考慮した補正を行うことができる。又、角度間隔がある分だけ各センサの検出信号が最大値又は最小値となるタイミングは異なることになるが、各検出信号について最大値が記憶される区間、最小値が記憶される区間が設定されるので支障はない。
【００１０】
又、上記の構成において、上記記憶手段は、上記算出手段で算出される上記回転角度が上記最大値に対応して予め定められた角度となったときに、上記センサからの検出信号の値を上記最大値として記憶し、上記回転角度が上記最小値に対応して予め定められた角度となったときに、上記センサからの検出信号の値を上記最小値として記憶するものとすることができる。
つまり、予め最大値を記憶する回転角度、最小値を記憶する回転角度をそれぞれ設定しておき、算出される回転角度が、最大値を記憶する回転角度と一致するとそのときの検出信号の値を最大値として記憶し、最小値を記憶する回転角度と一致するとそのときの検出信号の値を最小値として記憶するようにすることができる。
【００１１】
このようにすれば、最大値及び最小値を好適なタイミングで確実に記憶でき、それらを検出信号の補正に利用することができる。
【００１２】
更に、上記の構成において、
上記補正手段は、補正前と符号を変えることなく、記憶されている上記最大値又は最小値の逆数を上記検出信号の値に乗算することで補正を行うものとすることができる。
【００１３】
このようにすれば、例えば、補正前の検出信号の値が負であり、これに最小値（負の値）の逆数に乗算すると、そのままでは補正後の検出信号の値は正となるが、符号が維持されるので補正後も負の値が得られる。もちろん、補正前の検出信号の値が正であり、これに最大値（正の値）の逆数に乗算しても、補正後の検出信号の値は正として得られる。このように簡単に検出信号の補正を行うことができ、又、最大値又は最小値の逆数を乗算して値が正規化されるので、補正された検出信号を活用しやすくなる。
【発明の効果】
【００１４】
以上に説明したように、本発明によれば、各区間ごとで検出信号に表れるばらつきの影響が異なっていても、その相異を考慮した補正を行うことができ、正確な回転角度が得られるようになる。又、磁石の磁極数が増えても、その分だけ検出信号を細かく区分して補正することになるので、算出される回転角度の正確性が低下することはない。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施例を、図面を参照しながら説明する。
【００１６】
この実施例に係る回転角度検出装置は、モータＭの回転角度を検出するためのものであり、主に、モータＭのロータに固定され一体的に回転する磁石１と、磁石１を検出して信号を出力するセンサ２，３と、両センサ２，３からの検出信号に基づいてモータＭの回転角度を算出すると共に、モータＭの制御を行う制御装置４とからなる。尚、実際に算出されるのはロータの回転角度であるが、便宜上、モータＭの回転角度として説明する。又、この実施例では、制御装置４は算出したモータＭの回転角度をそのまま用いてモータＭの制御を行うが、回転角度を算出する装置と、モータＭを制御する装置とを別々に設けてもかまわない。
【００１７】
磁石１は、図１に示すように、Ｎ極、Ｓ極が交互に回転方向へ９０度ずつずらせて着磁されており、計４つの磁極を有している。この磁石１の外縁に沿うようにして、センサ２，３が回転方向へ４５度ずらせて配置されており、モータＭのケーシング部材など非回転部分に固定されている。
センサ２，３は、何れもアナログ型のホールセンサであり、ホール素子と、ホール素子における電圧変化を検出信号として出力する回路とからなる。センサ２，３からは磁石１の磁界の強さに比例した検出信号がそれぞれ出力され、センサ２の検出信号Ａ１とセンサ３の検出信号Ｂ１とは、図２に示すように、互いに４５度の位相差のある正弦波状の信号となる。又、検出信号Ａ１，Ｂ１ともモータＭが１回転する間に、出力値Ｖ（以下、検出信号Ａ１の出力値をＶＡ１、検出信号Ｂ１の出力値をＶＢ１という）がプラス側、マイナス側でそれぞれ２回ずつピークをとることになる。そのため、検出信号Ａ１は、出力値ＶＡ１≧０の区間２つと出力値ＶＡ１＜０の区間２つの、計４つの区間からなり、検出信号Ｂ１は、出力値ＶＢ１≧０の区間２つと出力値ＶＢ１＜０の区間２つの、計４つの区間からなると見ることができ、このことを利用して後述するように検出信号Ａ１，Ｂ１の補正を行う。
【００１８】
この実施例では、モータＭの回転角度Ｃは０≦Ｃ＜３６０であり、回転角度Ｃ＝０から１回転すれば再び回転角度Ｃ＝０となる。
又、検出信号Ａ１について、回転角度Ｃ＝０から見て、１つ目のプラス側のピーク、つまり出力値ＶＡ１≧０の区間での最大値をＡＨ１、２つ目のプラス側のピーク、つまり出力値ＶＡ１≧０の区間での最大値をＡＨ２とし、１つ目のマイナス側のピーク、つまり出力値ＶＡ１＜０の区間での最小値をＡＬ１、２つ目のマイナス側のピーク、つまり出力値ＶＡ１＜０の区間での最小値をＡＬ２としている。同様に、検出信号Ｂ１について、回転角度Ｃ＝０から見て、１つ目のプラス側のピーク、つまり出力値ＶＢ１≧０の区間での最大値をＢＨ１、２つ目のプラス側のピーク、つまり出力値ＶＢ１≧０の区間での最大値をＢＨ２とし、１つ目のマイナス側のピーク、つまり出力値ＶＢ１＜０の区間での最小値をＢＬ１、２つ目のマイナス側のピーク、つまり出力値ＶＢ１＜０の区間での最小値をＢＬ２としている。
【００１９】
尚、図２では、検出信号Ａ１は回転角度Ｃ＝０，９０，１８０，２７０で出力値ＶＡ１＝０となり、検出信号Ｂ１は回転角度Ｃ＝４５，１３５，２２５，３１５で出力値ＶＢ１＝０となるように描いてあり、何れも９０度ごとにプラスとマイナスが入れ替わるものとしてあるが、実際にそうなるとは限らない。そこで、この実施例では最小値ＡＬ１に対応する区間を出力値ＶＡ１＜０で、回転角度Ｃが４５≦Ｃ＜２２５の区間、最大値ＡＨ２に対応する区間を出力値ＶＡ１≧０で、回転角度Ｃが１３５≦Ｃ＜３１５の区間としており、最大値ＡＨ１に対応する区間を上記以外の出力値ＶＡ１≧０の区間、最小値ＡＬ２に対応する区間を上記以外の出力値ＶＡ１＜０の区間としてある。同様に、最大値ＢＨ１に対応する区間を出力値ＶＢ１≧０で、回転角度Ｃが０≦Ｃ＜１８０の区間、最小値ＢＬ１に対応する区間を出力値ＶＢ１＜０で、回転角度Ｃが９０≦Ｃ＜２７０の区間としており、最大値ＢＨ２に対応する区間を上記以外の出力値ＶＢ１≧０の区間、最小値ＢＬ２に対応する区間を上記以外の出力値ＶＢ１＜０の区間としてある。
【００２０】
図３に示すように、制御装置４は、モータＭの回転角度Ｃを算出するのに必要な各数値データを記憶する記憶部５と、センサ２，３からの検出信号Ａ１，Ｂ１を補正する補正部６，７と、補正された検出信号Ａ２，Ｂ２から回転角度Ｃを算出する角度算出部８と、算出される回転角度Ｃに基づいてモータＭを制御するモータ制御部９とを備える。
【００２１】
記憶部５は、検出信号Ａ１の最大値ＡＨ１，ＡＨ２及び最小値ＡＬ１，ＡＬ２と、検出信号Ｂ１の最大値ＢＨ１，ＢＨ２及び最小値ＢＬ１，ＢＬ２とを記憶する。各最大値及び各最小値は、予め設定された初期値と、実際にセンサ２，３から伝えられた出力値とがそれぞれ記憶され、出力値は後述するように回転角度Ｃに応じて随時更新されて行く。尚、この実施例では最大値の初期値は全て１であり、最小値の初期値は全て−１である。
【００２２】
補正部６は、センサ２からの検出信号Ａ１を補正するものであり、回転角度Ｃに応じて、記憶部５に記憶されている最大値ＡＨ１，ＡＨ２及び最小値ＡＬ１，ＡＬ２を用いて検出信号Ａ１を補正する。補正部７は、センサ３からの検出信号Ｂ１を補正するものであり、回転角度Ｃに応じて、記憶部５に記憶されている最大値ＢＨ１，ＢＨ２及び最小値ＢＬ１，ＢＬ２を用いて検出信号Ｂ１を補正する。
この実施例では、補正部６で補正された後の信号を検出信号Ａ２とし、補正部７で補正された後の信号を検出信号Ｂ２としている。又、検出信号Ａ２の出力値はＶＡ２、検出信号Ｂ２の出力値はＶＢ２としており、補正部６において出力値ＶＡ１から出力値ＶＡ２を求めることで検出信号Ａ１が検出信号Ａ２に補正され、補正部７において出力値ＶＢ１から出力値ＶＢ２を求めることで検出信号Ｂ１が検出信号Ｂ２に補正される。検出信号Ａ１と検出信号Ａ２の関係、検出信号Ｂ１と検出信号Ｂ２の関係は、図２に示すようになる。
【００２３】
角度算出部８は、補正部６，７での補正が開始されるまでは検出信号Ａ１，Ｂ１に基づいて回転角度Ｃを算出し、補正が開始されてからは補正された検出信号Ａ２，Ｂ２に基づいて回転角度Ｃを算出する。
【００２４】
モータ制御部９は、角度算出部８で算出される回転角度Ｃと、これとは別にモータＭを制御するための指令Ｔとを受け、これらに従ってモータＭを制御する。
【００２５】
さて、図４に示すように、制御装置４は起動されると、初期の回転角度Ｃを算出し（Ｓ１）、まずは初期の回転角度Ｃに従って検出信号Ａ１，Ｂ１を補正する（Ｓ２）。そして、補正された検出信号Ａ２，Ｂ２から改めて回転角度Ｃを算出し（Ｓ３）、この回転角度Ｃに従って検出信号Ａ１，Ｂ１それぞれの最大値及び最小値を記憶し（Ｓ４）、モータＭを制御する（Ｓ５）。モータＭの制御が開始されてからは、算出された回転角度Ｃに従って検出信号Ａ１，Ｂ１の補正を行い（Ｓ２）、以降は上記と同様の処理を繰り返して行く。
以下、各ステップをより詳細に説明する。
【００２６】
初期の回転角度Ｃを算出するステップ（Ｓ１）では、図５Ａに示すように、角度算出部８が検出信号Ａ１，Ｂ１の各最大値及び各最小値を初期値に設定し（Ｓ１００）、続いてその時点での出力値ＶＡ１，ＶＢ１がそれぞれセンサから入力される（Ｓ１０１）。更に、角度算出部８はＶＡ１≧０であるかを判定し（Ｓ１０２）、ＶＡ１≧０であればＶＢ１≧０であるかを判定する（Ｓ１０３）。ＶＢ１≧０であれば角度算出部８はＶＡ１≦ＶＢ１であるかを判定し（Ｓ１０４）、ＶＡ１≦ＶＢ１であれば、
Ｃ１＝｛ａｔａｎ（ＶＡ１／ＶＢ１）｝／２
の演算を行うことで角度Ｃ１を求め（Ｓ１０５）、ＶＡ１≦ＶＢ１でなければ、
Ｃ１＝｛９０−ａｔａｎ（ＶＢ１／ＶＡ１）｝／２
の演算を行うことで角度Ｃ１を求める（Ｓ１０６）。Ｓ１０３において、ＶＢ１≧０でなければ角度算出部８はＶＡ１≧−ＶＢ１であるかを判定し（Ｓ１０７）、ＶＡ１≧−ＶＢ１であれば、
Ｃ１＝｛９０＋ａｔａｎ（−ＶＢ１／ＶＡ１）｝／２
の演算を行うことで角度Ｃ１を求め（Ｓ１０８）、ＶＡ１≧−ＶＢ１でなければ、
Ｃ１＝｛１８０−ａｔａｎ（−ＶＡ１／ＶＢ１）｝／２
の演算を行うことで角度Ｃ１を求める（Ｓ１０９）。
【００２７】
Ｓ１０２において、ＶＡ１≧０でなければ、図５Ｂに示すように、角度算出部８はＶＢ１＜０であるかを判定する（Ｓ１１０）。ＶＢ１＜０であれば角度算出部８はＶＡ１≧ＶＢ１であるかを判定し（Ｓ１１１）、ＶＡ１≧ＶＢ１であれば、
Ｃ１＝｛１８０＋ａｔａｎ（ＶＡ１／ＶＢ１）｝／２
の演算を行うことで角度Ｃ１を求め（Ｓ１１２）、ＶＡ１≧ＶＢ１でなければ、
Ｃ１＝｛２７０−ａｔａｎ（ＶＢ１／ＶＡ１）｝／２
の演算を行うことで角度Ｃ１を求める（Ｓ１１３）。Ｓ１１０において、ＶＢ１＜０でなければ角度算出部８はＶＡ１≦−ＶＢ１であるかを判定し（Ｓ１１４）、ＶＡ１≦−ＶＢ１であれば、
Ｃ１＝｛２７０＋ａｔａｎ（−ＶＢ１／ＶＡ１）｝／２
の演算を行うことで角度Ｃ１を求め（Ｓ１１５）、ＶＡ１≦−ＶＢ１でなければ、
Ｃ１＝｛３６０−ａｔａｎ（−ＶＡ１／ＶＢ１）｝／２
の演算を行うことで角度Ｃ１を求める（Ｓ１１６）。
こうして角度Ｃ１を求めると、図５Ａに示すように、角度算出部８はこの角度Ｃ１を初期の回転角度Ｃとする（Ｓ１１７）。
【００２８】
検出信号Ａ１，Ｂ１を補正するステップ（Ｓ２）では、図６に示すように、まずは補正部６，７にその時点での出力値ＶＡ１，ＶＢ１がそれぞれセンサから入力される（Ｓ２００）。そして、補正部６はＶＡ１≧０であるかを判定し（Ｓ２０１）、ＶＡ１≧０であれば１３５≦Ｃ＜３１５であるかを判定する（Ｓ２０２）。補正部６は１３５≦Ｃ＜３１５でなければ、
ＶＡ２＝１×ＶＡ１／ＡＨ１
の演算を行うことで補正した出力値ＶＡ２を求め（Ｓ２０３）、１３５≦Ｃ＜３１５であれば、
ＶＡ２＝１×ＶＡ１／ＡＨ２
の演算を行うことで補正した出力値ＶＡ２を求める（Ｓ２０４）。Ｓ２０１において、ＶＡ１≧０でなければ補正部６は４５≦Ｃ＜２２５であるかを判定する（Ｓ２０５）。補正部６は４５≦Ｃ＜２２５であれば、
ＶＡ２＝−１×ＶＡ１／ＡＬ１
の演算を行うことで補正した出力値ＶＡ２を求め（Ｓ２０６）、４５≦Ｃ＜２２５でなければ、
ＶＡ２＝−１×ＶＡ１／ＡＬ２
の演算を行うことで補正した出力値ＶＡ２を求める（Ｓ２０７）。
【００２９】
続いて、補正部７はＶＢ１≧０であるかを判定し（Ｓ２０８）、ＶＢ１≧０であれば０≦Ｃ＜１８０であるかを判定する（Ｓ２０９）。補正部７は０≦Ｃ＜１８０であれば、
ＶＢ２＝１×ＶＢ１／ＢＨ１
の演算を行うことで補正した出力値ＶＢ２を求め（Ｓ２１０）、０≦Ｃ＜１８０でなければ、
ＶＢ２＝１×ＶＢ１／ＢＨ２
の演算を行うことで補正した出力値ＶＢ２を求める（Ｓ２１１）。Ｓ２０８において、ＶＢ１≧０でなければ補正部７は９０≦Ｃ＜２７０であるかを判定する（Ｓ２１２）。補正部７は９０≦Ｃ＜２７０でなければ、
ＶＢ２＝−１×ＶＢ１／ＢＬ１
の演算を行うことで補正した出力値ＶＢ２を求め（Ｓ２１３）、９０≦Ｃ＜２７０であれば、
ＶＢ２＝−１×ＶＢ１／ＢＬ２
の演算を行うことで補正した出力値ＶＢ２を求める（Ｓ２１４）。
【００３０】
補正された検出信号Ａ２，Ｂ２から回転角度Ｃを算出するステップ（Ｓ３）では、図７Ａに示すように、角度算出部８がＶＡ２≧０であるかを判定し（Ｓ３００）、ＶＡ２≧０であればＶＢ２≧０であるかを判定する（Ｓ３０１）。ＶＢ２≧０であれば角度算出部８はＶＡ２≦ＶＢ２であるかを判定し（Ｓ３０２）、ＶＡ２≦ＶＢ２であれば、
Ｃ２＝｛ａｔａｎ（ＶＡ２／ＶＢ２）｝／２
の演算を行うことで角度Ｃ２を求め（Ｓ３０３）、ＶＡ２≦ＶＢ２でなければ、
Ｃ２＝｛９０−ａｔａｎ（ＶＢ２／ＶＡ２）｝／２
の演算を行うことで角度Ｃ２を求める（Ｓ３０４）。Ｓ３０１において、ＶＢ２≧０でなければ角度算出部８はＶＡ２≧−ＶＢ２であるかを判定し（Ｓ３０５）、ＶＡ２≧−ＶＢ２であれば、
Ｃ２＝｛９０＋ａｔａｎ（−ＶＢ２／ＶＡ２）｝／２
の演算を行うことで角度Ｃ２を求め（Ｓ３０６）、ＶＡ２≧−ＶＢ２でなければ、
Ｃ２＝｛１８０−ａｔａｎ（−ＶＡ２／ＶＢ２）｝／２
の演算を行うことで角度Ｃ２を求める（Ｓ３０７）。
【００３１】
Ｓ３００において、ＶＡ２≧０でなければ、図７Ｂに示すように、角度算出部８はＶＢ２＜０であるかを判定する（Ｓ３０８）。ＶＢ２＜０であれば角度算出部８はＶＡ２≧ＶＢ２であるかを判定し（Ｓ３０９）、ＶＡ２≧ＶＢ２であれば、
Ｃ２＝｛１８０＋ａｔａｎ（ＶＡ２／ＶＢ２）｝／２
の演算を行うことで角度Ｃ２を求め（Ｓ３１０）、ＶＡ２≧ＶＢ２でなければ、
Ｃ２＝｛２７０−ａｔａｎ（ＶＢ２／ＶＡ２）｝／２
の演算を行うことで角度Ｃ２を求める（Ｓ３１１）。Ｓ３０８において、ＶＢ２＜０でなければ角度算出部８はＶＡ２≦−ＶＢ２であるかを判定し（Ｓ３１２）、ＶＡ２≦−ＶＢ２であれば、
Ｃ２＝｛２７０＋ａｔａｎ（−ＶＢ２／ＶＡ２）｝／２
の演算を行うことで角度Ｃ２を求め（Ｓ３１３）、ＶＡ２≦−ＶＢ２でなければ、
Ｃ２＝｛３６０−ａｔａｎ（−ＶＡ２／ＶＢ２）｝／２
の演算を行うことで角度Ｃ２を求める（Ｓ３１４）。
こうして角度Ｃ２を求めると、図７Ａに示すように、角度算出部８は回転角度Ｃの現在値に、角度Ｃ２と角度Ｃ１との差（Ｃ２−Ｃ１）を加算することで回転角度Ｃを更新する（Ｓ３１５）。
【００３２】
最大値及び最小値を記憶するステップ（Ｓ４）では、図８に示すように、記憶部５が回転角度Ｃ＝４５であれば（Ｓ４００のＹＥＳ）、そのときの検出信号Ａ１の出力値ＶＡ１を最大値ＡＨ１として記憶し（Ｓ４０１）、回転角度Ｃ＝９０であれば（Ｓ４０２のＹＥＳ）、そのときの検出信号Ｂ１の出力値ＶＢ１を最大値ＢＨ１として記憶し（Ｓ４０３）、回転角度Ｃ＝１３５であれば（Ｓ４０４のＹＥＳ）、そのときの検出信号Ａ１の出力値ＶＡ１を最小値ＡＬ１として記憶し（Ｓ４０５）、回転角度Ｃ＝１８０であれば（Ｓ４０６のＹＥＳ）、そのときの検出信号Ｂ１の出力値ＶＢ１を最小値ＢＬ１として記憶する（Ｓ４０７）。又、記憶部５は、回転角度Ｃ＝２２５であれば（Ｓ４０８のＹＥＳ）、そのときの検出信号Ａ１の出力値ＶＡ１を最大値ＡＨ２として記憶し（Ｓ４０９）、回転角度Ｃ＝２７０であれば（Ｓ４１０のＹＥＳ）、そのときの検出信号Ｂ１の出力値ＶＢ１を最大値ＢＨ２として記憶し（Ｓ４１１）、回転角度Ｃ＝３１５であれば（Ｓ４１２のＹＥＳ）、そのときの検出信号Ａ１の出力値ＶＡ１を最小値ＡＬ２として記憶し（Ｓ４１３）、回転角度Ｃ＝０であれば（Ｓ４１４のＹＥＳ）、そのときの検出信号Ｂ１の出力値ＶＢ１を最小値ＢＬ２として記憶する（Ｓ４１５）。
【００３３】
モータＭを制御するステップ（Ｓ５）では、モータ制御部９が、指令Ｔに基づいてモータＭの目標とする回転速度を求めると共に、Ｓ３において算出された回転角度Ｃから実際の回転速度を求め、これらが一致するように、モータＭへの印加電圧を調節する。
【００３４】
従って、モータＭのロータが１回転する間に、検出信号Ａ１は最大値が記憶される区間（ＶＡ１≧０の区間）では最大値ＡＨ１又はＡＨ２で補正されて出力値ＶＡ２（検出信号Ａ２）が求められ、最小値が記憶される区間（ＶＡ１＜０の区間）では最小値ＡＬ１又はＡＬ２で補正されて出力値ＶＡ２（検出信号Ａ２）が求められる。同様に、検出信号Ｂ１は最大値が記憶される区間（ＶＢ１≧０の区間）では最大値ＢＨ１又はＢＨ２で補正されて出力値ＶＢ２（検出信号Ｂ２）が求められ、最小値が記憶される区間（ＶＢ１＜０の区間）では最小値ＢＬ１又はＢＬ２で補正されて出力値ＶＢ２（検出信号Ｂ２）が求められる。そして、こうして補正された検出信号Ａ２，Ｂ２で回転角度Ｃが算出されてロータの位置が求められ、それに基づいたモータＭの制御がなされる。
【００３５】
このような実施例によれば、センサ２，３からの検出信号Ａ１，Ｂ１を予め設定された各区間での最大値又は最小値を用いて補正するので、各区間ごとで検出信号Ａ１，Ｂ１に表れるばらつきの影響が異なっていても、その相異を考慮した補正を行うことができる。しかも、ロータが回転するごとに各区間での最大値又は最小値を更新するので、ロータの回転に伴う発熱の影響を磁石１又はセンサ２，３が受けたとしても、それを考慮した検出信号Ａ１，Ｂ１の補正を行うことができ、正確な回転角度Ｃが得られるようになる。更に、センサ２の検出信号Ａ１とセンサ３の検出信号Ｂ１とを個別に補正することができるので、センサごとの検出信号に表れるばらつきの影響が異なっていても、その相異を考慮した補正を行うことができる。尚、センサ２とセンサ３とは４５度の角度間隔があるので、各センサの検出信号が最大値又は最小値となるタイミングは異なることになるが、検出信号Ａ１の最大値及び最小値を記憶する回転角度Ｃに対し検出信号Ｂ１のそれを４５度ずらして設定してあるので支障はない。
【００３６】
又、この実施例によれば、検出信号Ａ１，Ｂ１を補正して新たな回転角度Ｃが得られると、この回転角度Ｃが所定の角度になる度に出力値ＶＡ１，ＶＢ１を最大値又は最小値として記憶し、更新して行くので、各最大値及び各最小値を好適なタイミングで確実に記憶でき、それらを検出信号Ａ１，Ｂ１の補正に活かすことができる。加えて、出力値ＶＡ１，ＶＢ１に記憶されている最大値又は最小値の逆数を乗算し、補正前と符号を変えずに出力値ＶＡ２，ＶＢ２を求めることで補正を行っているので、簡単に補正を行うことができ、又、出力値ＶＡ２，ＶＢ２が正規化されることで補正された検出信号Ａ２，Ｂ２を活用しやすくなる。
【００３７】
尚、上記の実施例では、４つの磁極（２つの磁極対）を持つ磁石１を用いているが、本発明はこれに限られるものではなく、磁極数が多い磁石であるほど本発明によって顕著な効果が得られる。又、上記の実施例では、２つのセンサ２，３を用いているが、本発明はこれに限られるものではない。
更に、上記の実施例では、出力値ＶＡ１，ＶＢ１に、記憶されている最大値及び最小値の逆数を乗算することで補正を行うようにしているが、最大値及び最小値を用いた他の演算方法によって補正を行うことも可能である。但し、補正された出力値ＶＡ２，ＶＢ２を速やかに求めるには、簡便な方法で補正できることが望ましい。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施例における要部の概略図である。
【図２】本発明の実施例の説明図であり、モータの回転角度に対する各検出信号の様子を表す。
【図３】本発明の実施例の機能ブロック図である。
【図４】本発明の実施例の制御フロー図である。
【図５Ａ】本発明の実施例の制御フロー図である。
【図５Ｂ】本発明の実施例の制御フロー図である。
【図６】本発明の実施例の制御フロー図である。
【図７Ａ】本発明の実施例の制御フロー図である。
【図７Ｂ】本発明の実施例の制御フロー図である。
【図８】本発明の実施例の制御フロー図である。
【符号の説明】
【００３９】
１  磁石
２  センサ
３  センサ
４  制御装置
５  記憶部
６  補正部
７  補正部
８  角度算出部
９  モータ制御部
Ｍ  モータ
【図１】
2008096164.tif 000003
【図２】
2008096164.tif 000004
【図３】
2008096164.tif 000005
【図４】
2008096164.tif 000006
【図５Ａ】
2008096164.tif 000007
【図５Ｂ】
2008096164.tif 000008
【図６】
2008096164.tif 000009
【図７Ａ】
2008096164.tif 000010
【図７Ｂ】
2008096164.tif 000011
【図８】
2008096164.tif 000012