以下、本発明の好適な実施例を添付図面に基づいて詳細に説明する。なお、以下に述べる実施例は、本発明の好適な実施例であるので、技術的に好ましい種々の限定が付されているが、本発明の範囲は、以下の説明によって不当に限定されるものではなく、また、本実施の形態で説明される構成の全てが本発明の必須の構成要件ではない。
図1〜図11は、本発明の回転角度検出装置、画像処理装置及び回転角度検出方法の第1実施例を示す図であり、図1は、本発明の回転角度検出装置、画像処理装置及び回転角度検出方法の第1実施例を適用した回転角度検出装置1の回路構成図である。
図1において、回転角度検出装置1は、センサ部2、差動部3、ベクトル生成部4、ベクトル回転演算部5、回転角度検出部6及び2相パルス生成部7等を備えている。
センサ部2は、図2に示すDCブラシレスモータ10に取り付けられており、3つの磁気センサ(回転検出手段)2u、2v、2wを備えている。
すなわち、回転駆動検出装置1は、DCブラシレスモータ10の回転体である回転子11(図2参照)を検出対象として、該回転子11の回転角度を検出する。
そして、DCブラシレスモータ10は、図2に示すように、通常、相互に120度の位相差を有し、Y字結線されているU相、V相、W相の3相のコイル12と、該コイル12と対向するとともにS極とN極が交互に並ぶ状態で位置に配置されている永久磁石である回転子11とを備えている。DCブラシレスモータ10は、端子13からU相、V相、W相の駆動電流が、回転子11の角度に応じて適切に転流されることで、回転駆動される。なお、DCブラシレスモータ10は、回転子11を駆動するためには、磁気センサ2u、2v、2wの検出する差動信号の出力方向及び磁束の方向に対して、垂直に電圧を印加する必要があるが、図2では、省略している。
この回転角度検出装置1及びDCブラシレスモータ10は、複合装置等の画像処理装置に適用され、回転子11である回転軸(図示略)には、画像処理装置の駆動機構が連結される。
そして、上記磁気センサ2u、2v、2wは、例えば、ホール素子が用いられており、回転子11の近傍の所定位置に固定配置されている。磁気センサ2u、2v、2wは、回転子11の磁界に応じて変化するU相、V相、W相の差動信号(検出信号)HU+/HU−、HV+/HV−、HW+/HW−をそれぞれ出力する。磁気センサ2u、2v、2wは、差動信号HU+、/HU−、HV+/HV−、HW+/HW−をシングルエンド化して、アナログ変換したアナログホール信号HAU、HAV、HAWが、相互に120度の位相差を持つ正弦波となる位置に固定配置されている。なお、本実施例では、検出対象のDCブラシレスモータ10の回転子11の磁極数を、「8」(4ペア)としているが、磁極数は、「8」に限られるものではない。
すなわち、差動信号HU+/HU−、HV+/HV−、HW+/HW−は、シングルエンド化(グラウンド(0V)を基準に電圧レベルで、「L」と「H」が決まる信号シングルエンド(single-ended)信号化)すると、回転子11の回転角度に対して正弦波状に変化する。
ところが、本実施例では、磁気センサ2u、2vの出力する差動信号HU+/HU−、HV+/HV−のみを用いて、回転子11の回転角度を検出する。
この差動信号HU+/HU−、HV+/HV−を信号シングルエンド信号化すると、図3に示すような正弦波形となる。
上記アナログホール信号HAU、HAV、HAWは、次式(1)により算出することができる。
いま、本実施例では、DCブラシレスモータ10の回転子11の磁極数を「8」としているため、図3に示す正弦波は、回転子11の1回転当たり4周期であり、回転子11の1/4回転が、図3に示す正弦波1周期に相当する。なお、以下の説明において、角度θは、正弦波1周期を、360度として示すものとし、また、この角度θを回転子11の角度として扱うものとする。
図1に戻って、センサ部2は、上述のように、U相の磁気センサ2uとV相の磁気センサ2vを備え、磁気センサ2u、2vは、それぞれ、回転子11の回転角度θに応じて正弦波状に変化する差動信号HU+/HU−、HV+/HV−を、差動部3へ出力する。
差動部3は、差動アンプ3aと差動アンプ3bを備えており、差動アンプ3aには、磁気センサ2uから差動信号HU+/HU−が、差動アンプ3aには、磁気センサ2vから差動信号HV+/HV−が、それぞれ入力される。
差動アンプ3aは、差動信号HU+/HU−を、上述のように、シングルエンド化して、回転子11の回転角度θに応じて正弦波状に変化するアナログホール信号HUを、ベクトル生成部4へ出力する。
差動アンプ3bは、差動信号HV+/HV−を、上述のように、シングルエンド化して、回転子11の回転角度θに応じて正弦波状に変化するアナログホール信号HVを、ベクトル生成部4へ出力する。
ベクトル生成部(ベクトル生成手段)4は、減算アンプ4aと加算アンプ4bを備えている。減算アンプ4aは、そのプラス端子にアナログホール信号HVが入力され、そのマイナス端子にアナログホール信号HUが入力される。減算アンプ4aは、アナログホール信号HVからアナログホール信号HUを減算して、回転子ベクトル成分Xを生成して、ベクトル回転演算部5へ出力する。加算アンプ4bは、そのプラス端子に、アナログホール信号HVとアナログホール信号HUが入力される。減算アンプ4aは、アナログホール信号HVとアナログホール信号HUを加算して、回転子ベクトル成分Yを生成して、ベクトル回転演算部5へ出力する。上記回転子ベクトル成分X、Yで表されるベクトルを、以下、回転子ベクトル(検出ベクトル)という。
すなわち、ベクトル生成部4は、その減算アンプ4aによって、次式(2)に演算を行って、回転子ベクトル成分X(以下、適宜、回転子ベクトルのX軸成分Xともいう。)を生成する。
また、ベクトル生成部4は、その加算アンプ4bによって、次式(3)に演算を行って、回転子ベクトル成分Y(以下、適宜、回転子ベクトルのY軸成分Yともいう。)を生成する。
すなわち、ベクトル生成部4は、図4に示すようなXY平面上に、X軸に対して、−30度の方向にU軸を、Y軸に対して、−60度の方向にV軸を、それぞれとったU軸V軸上の長さ「1」の単位ベクトルU、Vを設定する。このXY軸とUV軸において、ベクトル(U+V)がY軸上の単位ベクトルとなり、ベクトル(U−V)がX軸上の長さ√3のベクトルになる。そして、上記(2)式及び(3)式は、120度の角をなすUV軸からXY軸座標系への座標変換を示しており、変換後の長さを等しくするために、(HU−HV)に対しては、1/√3を乗算している。すなわち、ベクトル生成部4は、減算アンプ4aのゲインが1/√3となるように、抵抗(図示略)が設定されている。
ベクトル回転演算部(回転ベクトル生成手段、正弦波生成手段)5は、図5に示すように、乗算部21、入力端子切替部22、加減算部23、可変ゲイン加減算部24、符号切替信号生成部25、データ整形演算部26及び不揮発性メモリ27等を備えている。ベクトル回転演算部5には、上記ベクトル生成部4からの回転子ベクトル成分X、Y、回転角度検出部6の検出する検出角度θd及び外部からの分解能切替信号resolが入力される。ベクトル回転演算部5は、この分解能切替信号resolを、回転角度検出装置1に設けられている外部入力ピン(角度受取手段)を介して、外部から受け取る。
不揮発性メモリ(正弦波記憶手段)27は、ROM(Read Only Memory)等で構成され、所定の単位回転角度(基準単位角度)θstep(=2π/(2^N))毎の正弦振幅値に相当するデータ(正弦波データsindat)が予め格納されている。なお、本実施例においては、基準単位角度θstep=2π/(2^6)とし、基準単位角度での検出分解能は、6とする。したがって、不揮発性メモリ27は、所定の基準単位角度毎に基準正弦波データを記憶する正弦波記憶手段として機能している。
データ整形演算部26は、検出角度θdと分解能切替信号resolが入力され、検出角度θdに従って、分解能切替信号resolに応じた分解能で、不揮発性メモリ27に格納されている正弦波データsindat(基準正弦波データ)を、読み出して整形して、正弦波データsindatと余弦波データcosdatとして、乗算部21に出力する。
符号切替信号生成部25は、後述する回転角度検出部6の出力する検出角度θd[N:0]のうち、θd[N:N−1]に従って符号切替信号signを生成して、入力端子切替部22に出力する。
乗算部21は、4つの抵抗ラダー方式乗算型DAC(digital analog convertor)21a〜21dが並列に配設されたものであり、ベクトル生成部4の減算アンプ4aと加算アンプ4bから回転子ベクトル成分Xと回転子ベクトル成分Yが入力される。すなわち、この検出角度θdは、デジタル値であるため、乗算に用いるアナログ値の三角関数の振幅値に変換するためには、DA(デジタル−アナログ)変換器が必要となる。そこで、本実施例では、DA変換器と乗算器の両方を兼ね備えている抵抗ラダー方式乗算型DAC21a〜21dを用いている。この抵抗ラダー方式乗算型DAC21a〜21dは、抵抗とスイッチを用いた簡単な構成となっており、DA変換器とアナログ乗算器を用いた構成よりも、簡素で、安価なものとなっている。また、モノリシックIC(Integrated Circuit:集積回路)を用いると、抵抗値を高精度に揃えることができ、アナログ乗算器を用いた場合よりも高精度の乗算処理を行うことができる。さらに、本実施例の抵抗ラダー方式乗算型DAC21a〜21dは、ユニポーラモードが用いられており、より一層簡素な構成で、安価なものとなっている。なお、抵抗ラダー方式乗算型DAC21a〜21dとして、ユニポーラモードを用いると、三角関数の乗算においては、必須となる負の乗算を行うことはできないが、後段の入力端子切替部22で、加減算部23、可変ゲイン加減算部24への入力信号を切り替えることで、対応している。
演算部21は、後述するデータ整形演算部26から入力される正弦波データsindatと余弦波データcosdatを元に、値に比例したアナログ値に変化させたアナログ正弦絶対値|sin|、アナログ余弦絶対値|cos|を、ベクトル生成部4からの回転子ベクトルのX軸成分XとY軸成分Yに乗算して、X・|sin|、X・|cos|、Y・|sin|、Y・|cos|を入力端子切替部22に出力する。
入力端子切替部22は、マルチプレクサ等が用いられ、演算部21からX・|sin|、X・|cos|、Y・|sin|、Y・|cos|が入力されるとともに、符号切替信号生成部25からθd[N:0]に従って生成された符号切替信号signが入力される。入力端子切替部22は、この符号切替信号signに従って、加減算部23、可変ゲイン加減算部24の正相入力端子、逆相入力端子に入力するX・|sin|、X・|cos|、Y・|sin|、Y・|cos|を切り替える。
加減算部23は、乗算部21における乗算結果のX・|cos|とY・|sin|が、入力端子切替部22を介して、正相入力端子と、逆相入力端子に、切り替えて入力される。加減算部23は、X・|cos|とY・|sin|を加減算して、回転変換ベクトルの変換X軸成分X’として出力する。
可変ゲイン加減算部24は、乗算部21における乗算結果のX・|sin|とY・|cos|が、入力端子切替部22を介して、正相入力端子と、逆相入力端子に、切り替えて入力される。可変ゲイン加減算部24は、X・|sin|とY・|cos|を加減算するとともに、ゲインを乗じて、回転変換ベクトルの変換Y軸成分Y’として出力する。
すなわち、ベクトル回転演算部5は、ベクトル生成部4から入力される回転子ベクトル成分X、Yに対して、次式(4)で示す演算を行って、変換X軸成分X’と変換Y軸成分Y’を生成して、回転角度検出部6へ出力する。
具体的には、例えば、検出角度θdが、第3象限(180−270度)に相当する値である場合、回転子ベクトル成分X、回転子ベクトル成分Yに乗算されるべき三角関数は、−|sinθd|、−|cosθd|である。この場合、ベクトル回転演算部5は、変換X軸成分X’と変換Y軸成分Y’の演算を実現させるためには、入力端子切替部22が、以下のように、入力先を切り替える必要がある。
すなわち、入力端子切替部22は、加減算部23に対しては、X・|cosθd|を、逆相入力端子へ、(X・(−|cosθd|)として入力させ、Y・|sinθd|を、逆相入力端子へ、(Y・(−|sinθd|)として入力させる。
そして、加減算部23は、X’=(X・(−|cosθd|)+(Y・(−|sinθd|)を演算する。この場合、符号関係は一致している。
また、入力端子切替部22は、可変ゲイン加減算部24に対しては、X・|sinθd|を、正相入力端子へ、X・|sinθd|=−X・(―|sinθd|)として入力させ、Y・|cosθd|を、逆相入力端子へ、Y・(−|cosθd|)として入力させる。
そして、可変ゲイン加減算部24は、Y’=−X・(−|sinθd|)+Y・(−|cosθd|)を演算する。この場合、符号関係は一致している。
すなわち、ベクトル回転演算部5は、基準単位角度以上に大きな角度を処理単位角度である単位回転角θstepとして、該単位回転角θstepに応じた不揮発性メモリ27の正弦波データsindatと検出ベクトルである回転子ベクトル(X、Y)に基づいて、該回転子ベクトル(X、Y)を該単位回転角θstepずつ回転させて、回転変換ベクトル(回転ベクトル)を生成する。なお、上記構成では、入力端子切替部22及び符号切替信号生成部25を、乗算部21と加減算部23及び可変ゲイン加減算部24との間に配置しているが、差動部3の差動アンプ3aと差動アンプ3bの前段、あるいは、ベクトル生成部4の減算アンプ4aと加算アンプ4bの前段、に配置してもよい。
そして、本実施例のベクトル回転演算部5は、例えば、分解能として、6ビット(=1周期を64分割)、4ビット(=1周期を16分割)及び8ビットの3種類備えている。すなわち、不揮発性メモリ27は、基準単位角度θstepの分解能に対応する正弦波データsindat、具体的には、正弦波の1周期を64(=2^6)分割に対応する正弦波データsindat(n)を記憶している。
そして、回転角度検出部(角度探索手段)6は、図6に示すように回路構成されており、比較器31、32と繰り返しカウンタ33等を備えている。回転角度検出部6は、比較器31、32に、変換Y軸成分Y’が、入力されるとともに、2つの基準値+α、−αが、入力される。また、回転角度検出部6は、繰り返しカウンタ33に、変換X軸成分X’、分解能切替信号resol及び検出トリガfsが入力されるとともに、比較器31、32の比較結果であるカウントダウン司令dnとカウントアップ司令upが入力される。
比較器(判定手段)31は、変換Y軸成分Y’と基準値−αとの比較を行い、変換Y軸成分Y’が基準値−α未満であると(Y’<−α)、カウントダウン指令dnをHiに、変換Y軸成分Y’が基準値−αを超えていると(Y’>−α)、カウントダウン指令dnをLoにする。
比較器(判定手段)32は、変換Y軸成分Y’と基準値+αとの比較を行い、変換Y軸成分Y’が基準値+αを超えていると(Y’>+α)、カウントアップ指令upをHiに、変換Y軸成分Y’が基準値+α未満であると(Y’<−α)、カウントアップ指令upをLoにする。
すなわち、比較器31、32は、回転ベクトルの変換Y軸成分Y’が不感帯±α内に位置しているか否か判定している。
繰り返しカウンタ33は、検出トリガfsが入力される毎に、比較器31からのカウントダウン司令dnと比較器32からのカウントアップ司令upに応じて、回転角度θd[N:0]のカウントアップとカウントダウンを行う。
また、繰り返しカウンタ33は、そのカウント幅wcntが、分解能切替信号resolによって決定される。例えば、分解能切替信号resolによって分解能が6ビットとなった場合、繰り返しカウンタ33のカウント幅wcntは、0〜63(wcnt=64)となる。このカウント幅wcntは、単位回転角θstepを決定する。カウント幅wcntと単位回転角θstepは、θstep=2π/(wcnt)の関係にある。
すなわち、繰り返しカウンタ33は、カウントアップ指令up=Hi、カウントダウン指令dn=Loであると、回転角度θdを1カウント増加させる。すなわち、変換Y軸成分Y’が不感帯より大きい状態のときに、回転角度θdをもとに回転演算すると、回転子ベクトルは、X軸に向かって時計回りに、処理単位角度である単位回転角θstepだけ回転する。この単位回転角θstepは、外部から入力される分解能切替信号resolによって決定される。
また、繰り返しカウンタ33は、カウントアップ指令up=Lo、カウントダウン指令dn=Hiであると、回転角度θdを1カウント減少させる。すなわち、変換Y軸成分Y’が不感帯より小さい状態のときに、回転角度θdをもとに回転演算すると、回転子ベクトルは、X軸に向かって反時計回りに、単位回転角θstepだけ回転する。
さらに、繰り返しカウンタ33は、カウントアップ指令up=Lo、カウントダウン指令dn=Loであると、回転角度θdを維持する。すなわち、変換Y軸成分Y’が不感帯内に存在する状態のときに、回転角度θdをもとに回転演算すると、回転子ベクトルは、回転しない。
そして、繰り返しカウンタ33は、カウントアップ指令up=Hi、カウントダウン指令dn=Hiであると、この状態は通常起こり得ないため、エラーと判定する。
回転角度検出装置1は、回転角度検出部6が検出した検出角度θdを、ベクトル回転演算部5にフィードバックさせ、検出角度θdの値を元に回転演算を行わせることで、回転変換ベクトルを、目標であるX軸へ単位回転角θstepずつ回転させ、X軸近傍まで回転させた後は、常にX軸に追従させる。
2相パルス生成部7には、回転角度検出部6から検出角度θd、特に、検出角度θd[1:0]が入力され、2相パルス生成部7は、検出角度θd[1:0]の下位2ビットに基づいて、2相パルスENCA、ENCBを生成する。なお、2相パルス生成部7は、検出角度θdの下位2^nビットに基づいて、2相パルスENCA、ENCBを生成し、nの値が可変となっていてもよい。
なお、本実施例においては、ベクトル回転演算部5の乗算部21は、4つの抵抗ラダー方式乗算型DAC21a〜21dが並列に配設されたものであるが、乗算部21の構成としては、上記の構成に限るものではなく、例えば、1つの乗算器を時系列で交互に使い回す構成であってもよい。
次に、本実施例の作用について説明する。本実施例の回転角度検出装置1は、回転体である回転子11の回転角度を、構成を大きくすることなく、容易に変更可能な異なる分解能で安価に検出する。
回転角度検出装置1は、差動信号HU+/HU−、HV+/HV−、HW+/HW−を出力する磁気センサ2u、2v、2wを備えているDCブラシレスモータ10の回転子11の回転角度を、該磁気センサ2u、2v、2wのうち、磁気センサ2u、2vの出力する差動信号から該回転子11の回転ベクトルを算出して、該回転ベクトルに基づいて該回転子11の回転角度を検出する。
すなわち、回転角度検出装置1は、DCブラシレスモータ10の磁気センサ2u、2vに接続されている。回転角度検出装置1は、その差動部3の差動アンプ3aに、U相の磁気センサ2uの出力する差動信号HU+/HU−が、その差動アンプ3bに、V相の差動信号HV+/HV−が、それぞれ入力される。
差動部3は、差動アンプ3aが、差動信号HU+/HU−を、シングルエンド化して、回転子11の回転角度θに応じて正弦波状に変化するアナログホール信号HUを、ベクトル生成部4へ出力する。また、差動部3は、差動アンプ3bが、差動信号HV+/HV−を、シングルエンド化して、回転子11の回転角度θに応じて正弦波状に変化するアナログホール信号HVを、ベクトル生成部4へ出力する。
ベクトル生成部4は、その減算アンプ4aが、アナログホール信号HVからアナログホール信号HUを減算して、回転子ベクトル成分Xを生成して、ベクトル回転演算部5へ出力する。ベクトル生成部4は、その加算アンプ4bが、アナログホール信号HVとアナログホール信号HUを加算して、回転子ベクトル成分Yを生成して、ベクトル回転演算部5へ出力する。すなわち、ベクトル生成部4は、その減算アンプ4aによって、上記式(2)に演算を行って、回転子ベクトル成分Xを生成し、その加算アンプ4bによって、上記式(3)に演算を行って、回転子ベクトル成分Yを生成する。
そして、ベクトル回転演算部5は、ベクトル生成部4から入力される回転子ベクトル成分X、Yに対して、上記式(4)で示した演算を行って、変換X軸成分X’と変換Y軸成分Y’を生成して、回転角度検出部6へ出力する。
このベクトル回転演算部5は、その乗算部21の抵抗ラダー方式乗算型DAC21a〜21dが、データ整形演算部26から入力される正弦波データsindatと余弦波データcosdatを元に、値に比例したアナログ値に変化させたアナログ正弦絶対値|sin|、アナログ余弦絶対値|cos|を、ベクトル生成部4からの回転子ベクトルのX軸成分XとY軸成分Yに乗算して、X・|sin|、X・|cos|、Y・|sin|、Y・|cos|を入力端子切替部22に出力する。
入力端子切替部22は、符号切替信号生成部25から入力されるθd[N:0]に従って、演算部21から入力されるX・|sin|、X・|cos|、Y・|sin|、Y・|cos|を、切り替えて、加減算部23、可変ゲイン加減算部24の正相入力端子、逆相入力端子へ入力する。
加減算部23は、乗算部21における乗算結果のX・|cos|とY・|sin|を加減算して、変換X軸成分X’として回転角度検出部6へ出力する。
可変ゲイン加減算部24は、乗算部21における乗算結果のX・|sin|とY・|cos|を、加減算するとともに、ゲインを乗じて、変換Y軸成分Y’として回転角度検出部6へ出力する。
すなわち、ベクトル回転演算部5は、ベクトル生成部4から入力される回転子ベクトル成分X、Yに対して、上記式(4)で示す演算を行って、変換X軸成分X’と変換Y軸成分Y’を生成して、回転角度検出部6へ出力する。
そして、ベクトル回転演算部5は、上記演算処理において、データ整形演算部26が各抵抗ラダー方式乗算型DAC21a〜21dへ出力する正弦波データsindatと余弦波データcosdatを、分解能切替信号resolに基づいて切り替えて出力する。
すなわち、ベクトル回転演算部5は、基準単位角度の分解能に対する正弦波データsindat、具体的には、正弦波の1周期を64(=2^6)分割)に対応するする正弦波データsindat(n)を記憶している。ベクトル回転演算部5は、分解能として、6ビット(=1周期を64分割)と、4ビット(=1周期を16分割)と、8ビットの3種類備えていて、分解能切替信号resolに基づいて切り替える。
すなわち、不揮発性メモリ27は、上述のように、基準単位角度の分解能に対応する正弦波データsindat(n)のみを記憶している。いま、基準単位角度の分解能では、本実施例の場合、6ビットであるので、例えば、図7に示すように、4分の1周期分の正弦波データsindat(n)が不揮発性メモリ27に格納されている。そして、ベクトル回転演算部5のデータ整形演算部26は、分解能切替信号resolの示す分解能が6ビットであるときには、検出角度θdに基づいて、不揮発性メモリ27の正弦波データsindat(n)をそのまま参照して、正弦波データsindat(n)を取り出して、乗算部21へ出力する。例えば、データ整形演算部26は、図7から分かるように、検出角度θd=000001のときには、sindat(1)を、検出角度θd=001000のときには、sindat(8)を、不揮発性メモリ27から読み出して、乗算部21へ出力する。なお、θd>16で取り出す正弦波データsindat(n)は、正弦波の対称性を利用することで、正弦波データsindat(0〜16)から値を得ることができる。また、データ整形演算部26は、検出角度θd=010100(=20)のように、θd[N:N−1]=01となるときには、n=16−(θd−16)=12として、データを整形して正弦波データsindat(12)を取り出す。さらに、データ整形演算部26は、検出角度θd=100100(=36)のように、θd[N:N−1]=10となるときには、n=θd−32=4として、データ整形して正弦波データsindat(4)を取り出す。また、データ整形演算部26は、検出角度θd=110100(=52)のように、θd[N:N−1]=11となるときには、n=48−(θd−48)=12として、データ整形して正弦波データsindat(12)を取り出す。そして、余弦波データcosdatについても同様に、正弦波の対称性を利用することで、正弦波データsindat(0〜16)から値を得ることができる。
また、データ整形演算部26は、分解能切替信号resolの示す分解能が4ビットのように基準単位角度より低分解能であるときには、検出角度θdのカウント幅を、[3:0]に変更した状態で処理できるように、データ語長が6ビットとなるように、下位2ビットにデータ「00」を追加する処理を行う。なお、下位2ビットに付加する値は、「00」に限るものではなく、他の値であってもよい。
そして、データ整形演算部26は、例えば、検出角度θd[3:0]=0010が入力されると、検出角度θd[5:0]=001000に変換して、変換した検出角度θd[5:0]=001000に対応する正弦波データsindat(n)を不揮発性メモリ27から読み出して、乗算部21へ出力する。具体的には、データ整形演算部26は、図7から分かるように検出角度θd=0001であると、正弦波データsindat(4)を、検出角度θd=0011であると、正弦波データsindat(12)を、それぞれ不揮発性メモリ27から読み出して乗算部21へ出力する。
また、データ整形演算部26は、分解能切替信号resolの示す分解能が8ビットのように基準単位角度よりも高分解能であるときには、6ビットの単位回転角に対応する基準正弦波sindat(n)の値の線形補完した値を基準正弦波として得る。例えば、θd=00000001のときはsindat(0)+(sindat(1)−sindat(0))/4の値を基準正弦波の値として乗算部21に出力する。
したがって、分解能毎に不揮発性メモリを備えている必要が無く、回転角度検出装置1の構成を簡略化することができるとともに、コストを削減することができる。
また、複数のカウント幅を用意して、外部信号である分解能切替信号resolによって切替可能とすることで、分解能を必要に応じて変更することができ、利用性と処理速度を適宜向上させることができる。
そして、本実施例の回転角度検出装置1は、上記ベクトル回転演算部5の演算結果に基づいて、回転角度検出部6が、回転子11の回転角度θを検出して検出角度θdとして出力する。
まず、初期回転角度検出について、説明する。回転角度検出部6は、DCブラシレスモータ10及び回転角度検出装置1の電源がオン(ON)となってから回転子11の回転が始まるまでの停止期間中に、初期回転角度検出処理を行う。なお、トリガfsの実行周期が、回転子ベクトルの回転速度に比較して、十分に遅いときには、回転子11の回転が開始されても初期回転時に、初期回転角度検出処理を行うことができる。
この初期回転角度検出処理時においては、図8に示すように、回転子ベクトル成分Xと回転子ベクトル成分Y及び変換X軸成分X’と変換Y軸成分Y’は、トリガfs毎に単位回転角θstepずつ回転し、n−1回目のトリガfsまでは、変換Y軸成分Y’>基準値αである。したがって、回転角度検出部6は、検出角度θdを、カウントアップし、回転演算によって、変換X軸成分X’と変換Y軸成分Y’を、X軸に近づくように、単位回転角θstepずつ時計回りに回転させる。
ただし、初期回転角度検出処理においては、180度側の不感帯±αに回転ベクトルが存在する場合、回転角度検出部6は、初期回転角度検出処理の開始を行わない。そこで、回転角度検出部6は、初期回転角度検出処理の開始時に、回転子ベクトル成分X(X’(0)<0であると、回転角度θをカウントする繰り返しカウンタ33を、2^(N−1)カウントだけカウントアップする。
そして、回転角度検出部6は、n回目のトリガfsによって回転変換ベクトル(X’、Y’)が、不感帯±α内に収まり、初期回転角度検出処理が完了すると、図9から図12に示すように、回転子11の回転が始まったときの回転開始時回転角度検出処理を行う。なお、以下の説明において、回転変換ベクトル(X’(n、m)、Y’(n、m))と表記する場合、検出角度θd=mであることを示している。
上記条件が整ったところで、n回目のトリガfsが入力された後に、n+1回目のトリガfsが入力されると、回転子11の回転に伴って、回転子ベクトル(X(n)、Y(n))は、図9に示すように、回転子ベクトル(X(n+1)、Y(n+1))へと回転する。
回転子ベクトル(X(n)、Y(n))が、回転子ベクトル(X(n+1)、Y(n+1))へと回転すると、回転変換ベクトル(X’(n、m)、Y’(n、m))は、図9に示すように、回転変換ベクトル(X’(n+1、m)、Y’(n+1、m))へと回転することになる。
ところが、n+1回目のトリガfsが入力された時点では、まだ、変換Y軸成分Y’(n+1、m)は、図9に示すように、不感帯±α内(−α<Y’(n+1、m)<+α)である。したがって、回転角度検出部6は、回転演算を行わない。
そして、n+2回目のトリガfsが入力されると、回転子11の回転に伴って、回転子ベクトル(X(n+1)、Y(n+1))は、図10に示すように、回転子ベクトル(X(n+2)、Y(n+2))へと回転する。
回転子ベクトル(X(n+1)、Y(n+1))が、回転子ベクトル(X(n+2)、Y(n+2))へと回転すると、回転変換ベクトル(X’(n+1、m)、Y’(n+1、m))は、図10に示すように、回転変換ベクトル(X’(n+2、m)、Y’(n+2、m))へと回転することになる。
そして、n+2回目のトリガfsが入力された時点で、変換Y軸成分Y’(n+2、m)は、図10に示すように、不感帯±α外(Y’(n+2、m)>+α)に出る。したがって、回転角度検出部6は、回転演算を実行する。
このn+2回目のトリガfsが入力されると、上述のように、変換Y軸成分Y’(n+2、m)は、図10に示すように、不感帯±αからでる(Y’(n+2、m)>+α)ので、回転角度検出部6は、回転演算を実行する。この回転演算によって、回転変換ベクトル(X’(n+2)、m)、Y’(n+2、m))は、図11に示すように、回転変換ベクトル(X’(n+2)、m)、Y’(n+2、m))から回転変換ベクトル(X’(n+2)、m+1)、Y’(n+2、m+1))へと回転する。
このとき、回転変換ベクトル(X’(n+2)、m+1)、Y’(n+2、m+1))は、その変換Y軸成分Y’(n+2、m+1)は、不感帯内にあるので(−α<Y’(n+2、m+1)<+α)、回転演算を行わない。
また、このとき、回転角度検出装置1は、不感帯の幅(不感帯幅)αを、X軸近傍で、単位回転角θstep回転したときの回転子ベクトル成分Yの変化量以上に設定することで、X軸近傍でベクトルがチャタリングすることを防止することができる。
この場合の不感帯幅αは、次式(5)に基づいて設定することが適切である。
すなわち、回転角度検出装置1は、分解能を分解能切替信号resolで変更することができ、単位回転角θstepを調整することができる。したがって、回転角度検出装置1は、単位回転角θstepを変更すると、基準値αの値を変更して、チャタリングを防止する。例えば、回転角度検出装置1は、分解能切替信号resolによって分解能が6ビットから4ビットに変更されると、基準値αを、1/4に設定する。また、回転角度検出装置1は、変換Y軸成分Y’を生成する可変ゲイン加減算部24のゲインを調整する。例えば、回転角度検出装置1は、分解能切替信号resolによって分解能が6ビットから4ビットに変更されると、分解能切替信号resolに基づいて、可変ゲイン加減算部24のゲインを、1/4倍に変更する。
したがって、DCブラシレスモータ10にエンコーダを設けることなく、既存の磁気センサ2u、2v、2wの出力信号を利用して、DCブラシレスモータ10の回転軸である回転子11の回転角度を検出することができるとともに、DCブラシレスモータ10を回転駆動させるための1/4周期の位相差を有する2相パルス信号を生成することができる。
このように、本実施例の回転角度検出装置1は、回転子(回転体)11の回転角度に応じて正弦波状に変化するとともに、それぞれ位相の異なる複数の検出信号を出力する状態で配設されている複数の磁気センサ(回転検出手段)2u、2vと、複数の前記検出信号に基づいて、相互に90度位相差を有するX軸信号とY軸信号からなる回転子ベクトル(検出ベクトル)を生成するベクトル生成部(ベクトル生成手段)4と、所定の単位角度(基準単位角度)θstep毎に正弦波データ(基準正弦波データ)を記憶する不揮発性メモリ(正弦波記憶手段)27と、前記単位角度に対して適宜の倍数の角度を処理単位角度として、該処理単位角度に応じた該不揮発性メモリ27の該正弦波データと前記回転子ベクトルに基づいて、該回転子ベクトルを該処理単位角度ずつ回転させて、回転変換ベクトル(回転ベクトル)を生成するベクトル回転演算部5(回転ベクトル生成手段)5と、前記回転変換ベクトルが所定の不感帯領域±α内に位置するか否かを判定する比較器(判定手段)31、32と、比較器31、32の判定結果に基づいて、前記回転変換ベクトルを前記不感帯領域内に位置させる方向に該回転変換ベクトルを回転させて、前記回転子ベクトルと該回転変換ベクトルとのなす角度を、前記回転子11の回転角度(検出角度θd)として検出する回転角度検出部(角度探索手段)6と、を備えている。
したがって、物理的な部品交換を行うことなく、回転子11の回転角度検出の分解能を変更することができ、回転子11の回転角度を、構成を大きくすることなく、容易に変更可能な異なる分解能で安価に検出することができる。
また、本実施例の回転角度検出装置1は、回転子(回転体)11の回転角度を回転角度検出部で検出して該回転子11を回転制御し、該回転子11の回転を利用して駆動機構を駆動させて各種画像処理を施す画像処理装置において、前記回転角度検出部として、適用されている。
したがって、DCブラシレスモータ10等の回転子11の回転を利用して画像形成動作や画像読み取り動作等の画像処理動作を行う場合の回転機構の回転角度を、容易に変更可能な異なる分解能で安価に検出することができる。
さらに、本実施例の回転角度検出装置1は、回転子(回転体)11の回転角度に応じて正弦波状に変化するとともに、それぞれ位相の異なる検出信号を出力する状態で配設されている複数の磁気センサ(回転検出手段)2u、2vによって該回転子11の回転角度を検出する回転角度検出処理ステップと、複数の前記検出信号に基づいて、相互に90度位相差を有するX軸信号とY軸信号からなる回転子ベクトル(検出ベクトル)を生成するベクトル生成処理ステップと、不揮発性メモリ(正弦波記憶手段)27に記憶されている所定の基準単位角度毎の基準正弦波データのうち、該基準単位角度以上に大きな角度を処理単位角度として、該処理単位角度に応じた該基準正弦波データと前記回転子ベクトルに基づいて、該回転子ベクトルを該処理単位角度ずつ回転させて、回転変換ベクトル(開店ベクトル)を生成する回転ベクトル生成処理ステップと、前記回転変換ベクトルが所定の不感帯領域内に位置するか否かを判定する判定処理ステップと、前記判定処理ステップでの判定結果に基づいて、前記回転変換ベクトルを前記不感帯領域内に位置させる方向に該回転変換ベクトルを回転させて、前記回転子ベクトルと該回転変換ベクトルとのなす角度を、前記回転子11の回転角度として検出する角度探索処理ステップと、を有する回転角度検出方法を実行している。
したがって、物理的な部品交換を行うことなく、回転子11の回転角度検出の分解能を変更することができ、回転子11の回転角度を、構成を大きくすることなく、容易に変更可能な異なる分解能で安価に検出することができる。
また、本実施例の回転角度検出装置1は、前記ベクトル回転演算部5が、前記検出ベクトルと前記基準正弦波データsindatを積和して、前記回転ベクトルを生成している。
したがって、簡単な演算処理により回転ベクトルを生成することができ、回転子11の回転角度を、構成を大きくすることなく、容易に変更可能な異なる分解能でより一層安価に検出することができる。
さらに、本実施例の回転角度検出装置1は、前記不揮発性メモリ27が、最小の前記処理単位角度毎に前記基準正弦波データを記憶しており、前記ベクトル回転演算部5が、該不揮発性メモリ27の前記基準正弦波データのうち、適宜の前記処理単位角度に対応する該基準正弦波データと前記回転子ベクトルに基づいて、前記回転変換ベクトルを生成している。
したがって、分解能毎に基準正弦波データを記憶する必要が無く、より一層小型に、異なる分解能で、安価に、回転子11の回転角度を検出することができる。
また、本実施例の回転角度検出装置1は、前記処理単位角度が、2π/(2^N)、Nは整数である。
したがって、分解能毎に基準正弦波データを記憶する必要が無く、より一層小型に、異なる分解能で、安価に、回転子11の回転角度を検出することができる。
さらに、本実施例の回転角度検出装置1は、前記ベクトル回転演算部5が、抵抗ラダー方式乗算型DAC21a〜21dと、加減算アンプとして加減算部23、可変ゲイン加減算部24を備え、前記積和演算を行っている。
したがって、安価かつ簡単な構成で、高精度な三角関数の乗算を行って回転ベクトルを生成することができ、より一層小型に、異なる分解能で、安価に、回転子11の回転角度を検出することができる。
また、本実施例の回転角度検出装置1は、前記加減算アンプが、前記処理単位角度に応じてゲインを変更する可変ゲイン加減算部(可変利得加減算アンプ)24である。
したがって、分解能が変化しても、チャタリングを防止しつつ角度検出を行うことができる。
さらに、本実施例の回転角度検出装置1は、前記不感帯領域の上限値+αと下限値−αを指定して該不感帯領域の範囲を設定する不感帯設定手段を、さらに備えている。
したがって、分解能が変化しても、不感帯領域の範囲を調整することで、チャタリングを防止しつつ角度検出を行うことができる。
また、本実施例の回転角度検出装置1は、前記処理単位角度を外部から取得する端子(角度取得手段)を、さらに備え、ベクトル回転演算部5が、該端子が取得した前記処理単位角度に応じた不揮発性メモリ27の前記基準正弦波データと前記回転子ベクトルに基づいて、前記回転ベクトルを生成している。
したがって、外部から適宜の処理単位角度を指定することで、分解能を変更して、回転子11の回転角度を検出することができる。
さらに、本実施例の回転角度検出装置1は、不揮発性メモリ(正弦波記憶手段)27が、少なくとも1つの前記処理単位角度に応じた前記基準正弦波データを記憶し、該不揮発性メモリ27の該基準正弦波データに対応する前記処理単位角度以外の処理単位角度に応じた正弦波データを、該基準正弦波データに基づいて生成するデータ整形演算部(正弦波生成手段)26を、さらに備え、ベクトル回転演算部(回転ベクトル生成手段)5が、該不揮発性メモリ27の前記基準正弦波データのうち、前記処理単位角度に応じて前記正弦波生成手段としてのデータ整形演算部26が生成した基準正弦波データと前記検出ベクトルに基づいて、前記回転ベクトルを生成している。
したがって、少なくとも1つの処理単位角度に応じた基準正弦波データを保管しておくだけで、必要な基準正弦波データを生成して回転ベクトルを生成することができる。
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。