(57)【要約】【課題】自由度の高い回転位置検出手段により検出される回転位置情報を取得して、モータに対して効率的かつ反応遅れの少ない駆動波形を生成可能なモータ駆動装置およびモータ駆動方法を提供する。【解決手段】モータ駆動装置は、ロータの回転位置を検出する検出部と、モータへの駆動波形を生成する駆動波形生成回路と、ロータの回転位置の位相と駆動波形の位相とを同期させる制御を行う制御部と、同期時に回転位置と駆動波形との間に位相差を設定する位相差設定部３１０，３１１を備える。Ａｐｏｓ生成部３０１はロータの回転量に比例した位置カウントを算出して出力する。Ｂｐｏｓ生成部３０２はＡｐｏｓ生成部３０１から位置カウントを取得し、上限値を最大値（ＢｐｏｓＭａｘ値）としたカウント値に変換する。Ｃｐｏｓ生成部３０４はＢｐｏｓ生成部３０２から取得したカウント値に変換比率の乗算し、所定の上限値を最大値としたカウント値を算出する。【選択図】  図３
2019088181.tif 000002
【特許請求の範囲】
【請求項１】
モータの回転駆動を行うモータ駆動装置であって、
ロータの回転位置を検出する検出手段と、
前記モータへ出力する駆動波形を生成する生成手段と、
前記回転位置の位相と前記駆動波形の位相とを同期させる制御を行う制御手段と、
前記回転位置の位相と前記駆動波形の位相とが同期した状態で、前記回転位置と前記駆動波形との間に位相差を設定する位相差設定手段と、を備え、
前記検出手段は、
前記ロータの回転により変化する複数の信号から第１のカウント値を算出する第１の算出手段と、
前記第１のカウント値を取得し、第１の上限値を有する第２のカウント値を算出する第２の算出手段と、
前記第２のカウント値を取得し、設定された変換比率を前記第２のカウント値に乗算する処理を行い、第２の上限値を有する第３のカウント値を算出する第３の算出手段と、を有する
ことを特徴とするモータ駆動装置。
【請求項２】
前記第１の算出手段は、前記ロータの回転量に比例する前記第１のカウント値を算出し、
前記第２の算出手段は、前記第１の上限値を最大値として、前記回転量に対して周期的に変化する前記第２のカウント値を算出する
ことを特徴とする請求項１に記載のモータ駆動装置。
【請求項３】
前記第１の上限値を設定する設定手段を備え、
前記第１の上限値は、前記ロータが１回転したときに前記第１の算出手段により算出される回転位置のカウント値に相当する値である
ことを特徴とする請求項１または請求項２に記載のモータ駆動装置。
【請求項４】
前記変換比率を設定する設定手段を備え、
前記変換比率は、前記ロータの１回転分のカウント値を、前記ロータの１回転分に対応する前記駆動波形のカウント値に換算する比率である
ことを特徴とする請求項１から３のいずれか１項に記載のモータ駆動装置。
【請求項５】
前記ロータの回転により変化する複数の信号は、位相差を有する複数の正弦波状の信号であり、
前記検出手段は、前記複数の信号を演算して前記ロータの回転位置を検出する
ことを特徴とする請求項１から４のいずれか１項に記載のモータ駆動装置。
【請求項６】
前記第１の算出手段は、前記複数の信号から正接値を算出し、当該正接値に逆正接演算を行って前記ロータの回転角度を算出し、前記回転角度を積分することによって前記ロータの回転位置情報を生成する
ことを特徴とする請求項５に記載のモータ駆動装置。
【請求項７】
前記第３のカウント値を取得し、前記第３のカウント値が前記ロータの１回転分の駆動でオーバーフローになっている箇所とアンダーフローになっている箇所の少なくともいずれかを積算し、回転位置の積算量を位置情報として算出する第４の算出手段を備える
ことを特徴とする請求項１から６のいずれか１項に記載のモータ駆動装置。
【請求項８】
前記第４の算出手段から位置情報を取得してオフセット値を有するデータを算出する第５の算出手段を備え、
前記制御手段は前記データを書き換えた値と前記第４の算出手段による位置情報との差分量を前記オフセット値としてメモリに記録する
ことを特徴とする請求項７に記載のモータ駆動装置。
【請求項９】
前記生成手段は、前記第５の算出手段が算出したデータを取得して前記駆動波形の位相を決定する位相決定手段を備え、
前記位相差設定手段は前記位相決定手段に対して定常位相差および駆動用位相差を設定する
ことを特徴とする請求項８に記載のモータ駆動装置。
【請求項１０】
前記制御手段は、前記ロータの停止状態で前記位相決定手段が保持している前記駆動波形の位相のカウント値および前記第５の算出手段が算出したデータから前記定常位相差を算出して、前記位相差設定手段を介して前記定常位相差を設定する処理を行う
ことを特徴とする請求項９に記載のモータ駆動装置。
【請求項１１】
前記制御手段は、前記ロータの回転位置の位相と前記駆動波形の位相との位相差量に対応する、前記モータの定常回転速度または発生トルクの関係を示すデータを用いて、前記位相差設定手段を介して前記駆動用位相差を設定する処理を行う
ことを特徴とする請求項９に記載のモータ駆動装置。
【請求項１２】
前記制御手段は、前記ロータの目標速度と、前記回転位置の変化として算出される検出速度との差分量から位相差制御量を算出して前記ロータの速度制御を行う
ことを特徴とする請求項１から１１のいずれか１項に記載のモータ駆動装置。
【請求項１３】
前記生成手段が前記回転位置の位相に基づいて前記駆動波形を生成する同期制御と、前記生成手段が設定された周波数に基づいて前記駆動波形を生成する非同期制御とを切り替える切り替え手段と、
をさらに備え、
前記切り替え手段は、前記モータの回転位置と停止目標位置との差が閾値以下であると判定されると、前記同期制御から前記非同期制御へと切り替える
ことを特徴とする請求項１に記載のモータ駆動装置。
【請求項１４】
前記閾値は、前記検出手段の検出間隔内で、前記同期制御から前記非同期制御へと切り替わる直前の同期制御により前記モータが回転する回転量よりも大きい
ことを特徴とする請求項１３に記載のモータ駆動装置。
【請求項１５】
前記検出手段は、
位置検出信号がアナログ信号として入力され、前記アナログ信号のデジタル信号への変換を周期的に行うＡＤ変換手段と、
前記デジタル信号に変換された前記位置検出信号に基づいて前記モータの回転位置を取得するモータ位置取得手段と
をさらに備え、
前記検出手段の検出間隔は、前記ＡＤ変換手段による前記位置検出信号のＡＤ変換周期である
ことを特徴とする請求項１４に記載のモータ駆動装置。
【請求項１６】
前記ＡＤ変換手段による前記ＡＤ変換周期に基づいて前記閾値を設定する閾値設定手段
をさらに備え、
前記閾値設定手段は、前記ＡＤ変換周期が第１の周期のときよりも、前記ＡＤ変換周期が前記第１の周期よりも短い第２の周期のときのほうが前記閾値が大きくなるように前記閾値を設定する
ことを特徴とする請求項１５に記載のモータ駆動装置。
【請求項１７】
前記ＡＤ変換周期内におけるモータの回転量を取得するモータ速度取得手段と、
前記ＡＤ変換周期内におけるモータの回転量に基づいて、前記閾値を設定する閾値設定手段と
をさらに備え、
前記閾値設定手段は前記ＡＤ変換周期内におけるモータの回転量が第１の量のときよりも、前記ＡＤ変換周期内におけるモータの回転量が第１の量よりも少ない第２の量のときの方が前記閾値が大きくなるように前記閾値を設定する
ことを特徴とする請求項１５に記載のモータ駆動装置。
【請求項１８】
前記モータの回転位置情報を保持する保持手段と、
前記保持手段により保持された前記モータの回転位置を書き換える回転位置書き換え手段と、
前記モータの回転位置の書き換えに応じて前記駆動波形の補正量を取得する補正量取得手段と、
をさらに備え、
前記補正量取得手段は、
前記回転位置書き換え手段によって前記モータの回転位置が書き換えられる前の前記モータの回転位置と、書き換えられた後の前記モータの回転位置との差分に基づいて前記駆動波形の補正量を取得する
ことを特徴とする請求項１から１７のいずれか１項に記載のモータ駆動装置。
【請求項１９】
前記補正量取得手段は、前記補正量を前記位相差設定手段に出力し、
前記位相差設定手段は、前記設定された位相差を前記補正量に基づいて補正する
ことを特徴とする請求項1８に記載のモータ駆動装置。
【請求項２０】
モータの回転駆動を行うモータ駆動装置にて実行されるモータ駆動方法であって、
ロータの回転位置を検出する検出工程と、
前記モータへ出力する駆動波形を生成する生成工程と、
前記回転位置の位相と前記駆動波形の位相とを同期させる制御を行う制御工程と、
前記回転位置の位相と前記駆動波形の位相とが同期した状態で、前記回転位置と前記駆動波形との間に位相差を設定する設定工程と、を有し、
前記検出工程は、前記ロータの回転により変化する複数の信号から第１のカウント値を算出して、第１の上限値を有する第２のカウント値を算出し、設定された変換比率を前記第２のカウント値に乗算する処理を行い、第２の上限値を有する第３のカウント値を算出することで行われる
ことを特徴とするモータ駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ駆動装置およびモータ駆動方法に関し、特にロータの回転検出位置に対して効率的な駆動波形を生成する技術に関する。
【背景技術】
【０００２】
モータ駆動制御において、モータの回転軸に回転位置検出機構を設け、検出された回転位置に基づいてモータに対して駆動波形を印加することで効率的な回転駆動を実現する技術がある。モータの駆動波形には正弦波状の駆動波形を用いることで、矩形状の駆動波形を用いるよりもモータの回転位置を細かく制御することが可能である。特許文献１に開示された装置は、磁石をロータ（回転子）側に配置し、コイル巻線をステータ（固定子）側に配置したモータ構成において、矩形波位置検出センサから効率的な位相の正弦波駆動信号を生成する。また、特許文献２には位置検出器の矩形波変化に対する分解能を向上させ、ロータ検出位相と駆動波形位相との関係が目標からずれた場合、ずれ量を補償することで回転駆動を効率化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４５６４６号公報
【特許文献２】特開２０１６−１５４４２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の技術は、ロータ回転位相と駆動波形位相との間の理想的な位相関係に基づき、位相関係が理想的な関係からずれて、差分が検出された後に補償処理を行う技術である。そのため、差分が検出された時点から補償処理が完了する時点までの反応に遅延があると、加減速時や外乱発生時に機構部が有する反応ポテンシャルを十分に発揮できない可能性がある。また位置検出機構部を高精度化する場合には、機構部の設計上の制約等が存在する。
【０００５】
本発明は、上記課題を鑑みて、自由度の高い回転位置検出手段により検出される回転位置情報を取得して、モータに対して効率的かつ反応遅れの少ない駆動波形を生成可能なモータ駆動装置およびモータ駆動方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明のモータ駆動装置は、モータの回転駆動を行うモータ駆動装置であって、ロータの回転位置を検出する検出手段と、前記モータへ出力する駆動波形を生成する生成手段と、前記回転位置の位相と前記駆動波形の位相とを同期させる制御を行う制御手段と、前記回転位置の位相と前記駆動波形の位相とが同期した状態で、前記回転位置と前記駆動波形との間に位相差を設定する位相差設定手段と、を備え、前記検出手段は、前記ロータの回転により変化する複数の信号から第１のカウント値を算出する第１の算出手段と、前記第１のカウント値を取得し、第１の上限値を有する第２のカウント値を算出する第２の算出手段と、前記第２のカウント値を取得し、設定された変換比率を前記第２のカウント値に乗算する処理を行い、第２の上限値を有する第３のカウント値を算出する第３の算出手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、自由度の高い回転位置検出手段により検出される回転位置情報を取得して、モータに対して効率的かつ反応遅れの少ない駆動波形を生成可能なモータ駆動装置およびモータ駆動方法を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態におけるシステムの概要を示すブロック図である。
【図２】本実施形態のモータおよび位置検出センサの構造を示す模式図である。
【図３】本実施形態の位置ＥＮＣ回路と駆動波形生成回路を示す図である。
【図４】モータの検出位置、カウント値、駆動波形を示す図である。
【図５】位置検出センサ信号と検出位置カウントとの関係を示す図である。
【図６】本実施形態の信号生成処理を行わない場合に生じる課題を説明する図である。
【図７】正弦波位置カウント値とＰＷＭ値（Ｄｕｔｙ％値）との関係を示す図である。
【図８】第１実施例の処理を示すフローチャートである。
【図９】図８に続く処理を示すフローチャートである。
【図１０】ロータ磁石位相と駆動波形位相とが安定停止関係にある状態を示す図である。
【図１１】ロータ磁石位相と駆動波形位相とがＣＷトルク発生関係にある状態を示す図である。
【図１２】モータの加速時の挙動を示す図である。
【図１３】モータの定常速度時と減速停止時の挙動を示す図である。
【図１４】ロータ磁石位相と駆動波形位相とがＣＣＷトルク発生関係にある状態を示す図である。
【図１５】ロータ磁石位相と駆動波形の位相差と定常速回転数との関係を示す図である。
【図１６】第２実施例の処理を示すフローチャートである。
【図１７】第３実施例の駆動波形生成回路の構成を示すブロック図である。
【図１８】回転位置検出周期が駆動波形の位相カウント分解能より大きい場合の位置カウント値とＰＷＭ値との関係を示す図である。
【図１９】第３実施例の処理の流れを示すフローチャートである。
【図２０】第４実施例の駆動波形生成回路の構成を示すブロック図である。
【図２１】第４実施例の処理の流れを示すフローチャートである。
【図２２】第５実施例の駆動波形生成回路の構成を示すブロック図である。
【図２３】第５実施例の補正量取得手段の構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下に、本発明の好ましい実施形態を、添付図面に基づいて詳細に説明する。本実施形態のモータ駆動装置は、撮像装置や光学ディスク装置、プリンタやプロジェクタ等の各種機器に適用可能である。モータ駆動装置によって駆動を制御されるモータと組み合わせてモータシステムを構成可能であり、撮像装置や光学ディスク装置、プリンタやプロジェクタ等の各種機器に適用可能である。例えば撮像装置に適用する場合、ズームレンズ、フォーカスレンズ、光学絞り、シャッタ、などの各種光学素子の駆動に用いることができる。
【００１０】
モータ駆動制御において、ロータの位置検出機構部の検出精度を高精度化する場合、駆動信号（例えば矩形波信号）の分解能を高くする方法がある。この場合には信号の周波数特性により、モータの高速回転時に十分な信号変化の検出が得られず位置を検出できなくなるという課題が発生し得る。またモータ制御上、モータ内の磁石極数やステータ数と位置検出器の検出波形の数に制約を設ける必要があり、コスト上昇や、機構部の設計上の制約、サイズの増大等の課題が発生し得る。本実施形態では、自由度の高い回転位置検出機構部の選択を可能にした上で、回転位置検出機構部により検出されるロータの回転位置に基づいて、モータに対して効率的かつ反応遅れの少ない駆動波形生成が可能なモータ駆動技術を説明する。なお、各実施例に共通する事項を説明した後で、実施例ごとに詳細な説明を行う。
【００１１】
図１は本実施形態のシステムの概要を説明するブロック図であり、駆動用の電気回路を含めたモータ駆動装置の構成を示す。ステッピングモータ１０１は、ロータ軸１０２にＥＮＣ（エンコード用）磁石１０３を備える。ＥＮＣ磁石１０３は、回転軸を中心とする円周上に発生する磁場が回転位置に応じて正弦波状の磁場を発生するように着磁されている。またステッピングモータ１０１はリセット機構１２１を備える。リセット機構１２１は、ロータ軸１０２の回転に応じて、特定の１か所において変化する信号を出力する構成となっている。この信号は、モータの回転位置の絶対値の基準を与えるための信号である。リセット機構１２１としては、具体的には、ロータ軸１０２がスクリュー軸となっており、スクリュー軸の回転に応じて並進移動する移動体にスリットが形成されている。そのスリットがフォトインタラプタを遮光することで、その出力信号が変化する。
【００１２】
Ｈａｌｌ素子パッケージ１０４は、ＥＮＣ磁石１０３の磁気検出部であり、複数のホール素子（Ｈａｌｌ素子）を備え、ＥＮＣ磁石１０３の回転による磁場変化を検出し出力することができる。例えば、Ｈａｌｌ素子１０５および１０６はそれぞれの位置にて、ＥＮＣ磁石１０３の回転による磁場の変化を検出し、検出信号をアンプ１０７へ出力する。Ｈａｌｌ素子１０５，１０６はＥＮＣ磁石１０３の中心位置から見た場合、中心位置から等距離に配置されており、２つのＨａｌｌ素子で検出される信号位相としては、９０度の位相差となる。Ｈａｌｌ素子１０５および１０６のそれぞれから出力される信号は、アナログ信号の位置検出信号である。図２を参照して具体例を説明する。
【００１３】
図２（Ａ）はステッピングモータ１０１の外観例を示す斜視図である。ステッピングモータの１０１のロータ軸１０２には、短い円筒状のＥＮＣ磁石１０３が設置されている。ＥＮＣ磁石１０３の発生する磁場を検知可能な位置に、Ｈａｌｌ素子パッケージ１０４が配置されている。ステッピングモータ１０１から配線部材２１３が外部に引き出されており、配線部材２１３は後述のモータドライバ１１３に接続される。
【００１４】
図２（Ｂ）はＥＮＣ磁石１０３とＨａｌｌ素子１０５，１０６との位置関係を模式的に示す図である。ＥＮＣ磁石１０３は対極数３（６極）の磁石であり、Ｎ極とＳ極の領域がそれぞれ３極であって、６０度ごとの領域が着磁されている。Ｈａｌｌ素子１０５，１０６はＥＮＣ磁石１０３の中心位置から見た場合、中心位置から等距離に配置されている。中心位置に対するＨａｌｌ素子１０５，１０６の角度、つまり、２つのＨａｌｌ素子が中心位置に対して成す物理的な角度（物理角）が３０度となる配置である。２つのＨａｌｌ素子で検出される信号位相としては、９０度の位相差となる。
【００１５】
図１のアンプ１０７は、Ｈａｌｌ素子１０５，１０６からそれぞれ入力される微弱な信号を増幅し、後段のＡＤ変換回路１０８へ出力する。ＡＤ変換回路１０８はアンプ１０７から入力されたアナログ電圧信号（アナログ信号）をデジタル変換して数値化し、変換結果をデジタル数値信号（デジタル信号）として位置ＥＮＣ回路１０９に出力する。Ｈａｌｌ素子はアナログ位置検出信号を周期的に出力するため、ＡＤ変換回路１０８によるＡＤ変換も周期的に行われる。
【００１６】
位置ＥＮＣ回路１０９はモータの回転位置を検出する検出手段として機能し、ＡＤ変換回路１０８から入力される信号のエンコード処理を行う。つまり、位置ＥＮＣ回路１０９はＡＤ変換回路１０８から入力される位置検出信号に基づき、ＡｒｃＴａｎ（逆正接）演算を用いて回転位置を算出する。位置ＥＮＣ回路１０９は、入力された２つの信号のオフセットおよびゲインの調整を行う処理手段と、調整後の信号から回転位置情報を取得する取得手段を備える。位置ＥＮＣ回路１０９は、処理手段により、入力された検出信号のオフセット調整およびゲイン調整を行う。この調整は、検出信号のオフセットおよびゲインを同一にするように行われる。この調整はＯＰＥＮ駆動でモータを回転させることによって２つの信号のピーク値とボトム値を検出し、その検出結果を用いて行われる。位置ＥＮＣ回路１０９は、９０度の位相差を持った２つの正弦波状の検出信号からＴＡＮ値（正接値）を生成した後でＡｒｃＴＡＮ演算（逆正接演算）を行い、回転角度情報を生成する。この回転角度情報は、ロータの回転量に比例したカウント値であり、回転角度情報を積分することで回転位置情報が生成される。生成された回転位置情報は駆動波形生成回路１１０に送られる。
【００１７】
駆動波形生成回路１１０はモータに対する駆動用波形を生成する。駆動波形生成回路１１０は、ＯＰＥＮ駆動とＣＬＯＳＥ駆動の切り替えを行う。ＯＰＥＮ駆動は予め設定された周波数で駆動用の位相の異なる正弦波信号を出力する駆動である。ＣＬＯＳＥ駆動は位置ＥＮＣ回路１０９と連動させた駆動波形を出力する駆動である。ＯＰＥＮ駆動とＣＬＯＳＥ駆動の切り替えはＣＰＵ（中央演算処理装置）１１１の指令にしたがって行われる。また、駆動波形生成回路１１０は、Ａ相用コイル１１４、Ｂ相用コイル１１５に印可する駆動波形の位相カウント情報を決定し、ＰＷＭ（パルス幅変調）発生器１１２に位相カウント情報に対応するＰＷＭ指令値を送る。
【００１８】
ＣＰＵ１１１は駆動波形生成回路１１０に対して、ＯＰＥＮ駆動とＣＬＯＳＥ駆動の切り替えの指令を行い、ＯＰＥＮ駆動時の出力正弦波信号の周波数と振幅ゲイン値を設定する。またＣＰＵ１１１は、位置ＥＮＣ回路１０９に対して位置カウント値の初期化設定等を行う。また、ＣＰＵ１１１は駆動波形生成回路１１０の出力正弦波信号の周波数、振幅ゲイン値の設定、位置ＥＮＣ回路１０９の位置カウント値の初期化設定などを行う。位置ＥＮＣ回路１０９および駆動波形生成回路１１０による処理については、図３から図５を用いて後述する。
【００１９】
ＰＷＭ（パルス幅変調）発生器１１２は駆動波形生成回路１１０から出力されるＰＷＭ指令値に応じて、モータドライバ１１３に対してＰＷＭ信号を出力する。ＰＷＭ信号については図７を参照して後述する。
【００２０】
モータドライバ１１３は、ＰＷＭ発生器１１２より出力される指令値に応じた増幅を行い、ステッピングモータ１０１のＡ相用コイル１１４、Ｂ相用コイル１１５に電圧を印加する。モータへの印加信号はＰＷＭ信号に応じた高周波電圧信号となるが、コイルに発生する電流値信号はコイルのＬ（インダクタンス）成分によりＬＰＦ（ローパスフィルタ）がかかった場合と同様になる。このことから、コイルには実効的に、図７で説明する正弦波信号形状の電圧が印加されるのと同様であるものとする。
【００２１】
ステッピングモータ１０１が備えるステータＡ＋１１６、ステータＡ−１１７、はそれぞれ、Ａ相用コイルの両端の発生する磁場を集中して放出する働きをもつ。ステータＢ＋１１８、ステータＢ−１１９はそれぞれ、Ｂ相用コイルの両端の発生する磁場を集中して放出する働きをもつ。これによってロータ磁石１２０が回転する。図２（Ｃ）を参照して、ステータＡ＋およびＡ−、ステータＢ＋およびＢ−、ロータ磁石の配置関係を具体的に説明する。
【００２２】
図２（Ｃ）においてステータＡ＋１１６、ステータＡ−１１７、ステータＢ＋１１８、ステータＢ−１１９は、互いの物理角が１８度毎の位置関係で配置される。ロータ磁石１２０の回転方向はＣＷ方向またはＣＣＷ方向である。この例では、合計５組のステータ群が配置されている。ロータ磁石１２０はステータ群の中央に位置し、Ｎ極、Ｓ極がそれぞれ５極で、合計１０極の磁極を持つ。駆動波形の正弦波が１波出力される毎に、ロータ磁石１２０は物理角で７２度回転する。
【００２３】
次に位置ＥＮＣ回路１０９、駆動波形生成回路１１０の処理を詳細に説明する。
図３は位置ＥＮＣ回路１０９、駆動波形生成回路１１０の処理を詳細に示すブロック図である。Ａｐｏｓ生成部３０１〜Ｅｐｏｓ生成部３０７が位置ＥＮＣ回路１０９に相当する。駆動波形位相決定部３０８〜駆動用位相差設定部３１１が駆動波形生成回路１１０に相当する。
【００２４】
Ｈａｌｌ素子１０５の出力信号を検出信号１と表記し、Ｈａｌｌ素子１０６の出力信号を検出信号２と表記する。検出信号１および２はアンプ１０７を介してＡＤ変換回路１０８へ入力され、ＡＤ変換された信号はＡｐｏｓ生成部３０１が取得する。Ａｐｏｓ生成部３０１は、ＡｒｃＴａｎ（逆正接）演算を用いて回転位置を算出する。前処理として、入力された２つの信号のオフセットおよびゲインの調整が行われる。つまり、２つの信号のオフセットおよびゲインを同一にする調整が行われる。この調整はＯＰＥＮ駆動でモータを回転させることによって２つの信号のピーク値とボトム値を検出し、その結果を用いて行われる。調整後に、９０度の位相差を持った２つの正弦波状信号で正接値を算出し、逆正接演算を行うと回転角度情報（Ａｐｏｓと記す）が生成される。この回転角度の値を積分した値を算出することで回転位置情報を生成することができる。検出信号１および２と回転位置情報との関係について、図５の例で説明する。
【００２５】
図１のＨａｌｌ素子１０５，１０６による検出信号とステッピングモータ１０１の回転位置との関係について、図５を用いて説明する。図５（Ａ）および（Ｂ）は、それぞれのＨａｌｌ素子から検出された検出信号のゲインとオフセットを調整した後の信号を例示する。図５（Ａ）に示す信号は正弦波状信号であり、図５（Ｂ）に示す信号は余弦波状信号である。位置ＥＮＣ回路１０９は９０度の位相差を持った２つの正弦波状信号から回転角度情報を取得し、回転角度情報を駆動波形生成回路１１０に出力する。回転角度情報が検出位置のカウント値として用いられる。このように、本実施形態では位置検出信号が正弦波として取得されるため、位置検出信号が矩形波として取得されるモータ駆動装置よりも任意のタイミングで位置を検出することができ、また分解能も高いため、モータの加減速性能を向上することができる。図５（Ｃ）は検出位置のカウント値（縦軸）とロータの回転量（横軸）の関係を表すグラフである。本実施形態では、２つのＨａｌｌ素子の信号が正弦波の１波長分出力されたときに１０２４カウント分の位置分解能で位置検出を行えるものとする。検出位置のカウント値は図３のＡｐｏｓ生成部３０１の記憶領域に格納される。Ａｐｏｓ生成部３０１が処理を終了すると、Ｂｐｏｓ生成部３０２が処理を引き継ぐ。
【００２６】
図３のＢｐｏｓ生成部３０２は、ＣＰＵ１１１から予めＢｐｏｓＭａｘ値設定部３０３を通じて設定されている上限値を最大値（ＢｐｏｓＭａｘ値）とする位置信号に、Ａｐｏｓの値を変換したＢｐｏｓを生成する。ＢｐｏｓＭａｘ値設定部３０３を通じて設定されるＢｐｏｓＭａｘ値は、モータがちょうど１回転したときにＡｐｏｓ生成部３０１にて検出される位置カウントに相当する値として設定される。
【００２７】
図４（Ａ）はＡｐｏｓを示し、図４（Ｂ）はＢｐｏｓを示す。図４に示す各グラフの横軸はロータの回転量を表す。Ａｐｏｓの値はロータの回転量に比例したカウント値である。またＢｐｏｓの値は、ゼロと上限値（最大値）との間で回転量に対して周期的に変化する鋸歯状波の信号値である。
【００２８】
Ｂｐｏｓ生成部３０２によりＢｐｏｓが生成されると、図３のＣｐｏｓ生成部３０４に処理が引き継がれる。Ｃｐｏｓ生成部３０４は、ＣＰＵ１１１が予め変換比率設定部３０５を通じて設定した変換比率をＢｐｏｓの結果値に乗算し、演算結果の値をＣｐｏｓとして保持する。ここで設定される変換比率は、ロータ１回転分の検出位置カウント値を、ロータ１回転分の駆動波形カウント値に換算する比率であり、乗算数と右ビットシフト演算で実現される。右ビットシフト演算のシフト数は、駆動に必要なカウント変換精度に基づいて決定される。図４（Ｃ）にＣｐｏｓの例を示す。Ｃｐｏｓの値は、ゼロと上限値との間で回転量に対して周期的に変化する鋸歯状波の信号値である。つまり、図４（Ｂ）に示されるＢｐｏｓの値は、図４（Ｃ）に示すように、モータ１回転に相当する駆動波形のカウント数に相当する値をＭａｘ値とする位置情報に変換される。Ｃｐｏｓ生成部３０４がＣｐｏｓを生成すると、続いてＤｐｏｓ生成部３０６に処理が引き渡される。
【００２９】
図３のＤｐｏｓ生成部３０６は、Ｃｐｏｓの値がモータ１回転分の駆動カウント量でオーバーフローとなっている箇所や、アンダーフローとなっている箇所を積算して、回転位置の積算量を算出する。算出により生成され位置情報をＤｐｏｓと表記する。図４（Ｄ）はＤｐｏｓの例を示す。Ｅｐｏｓ生成部３０７は、Ｄｐｏｓに対して任意のオフセット値を持ったデータ（Ｅｐｏｓと記す）を生成する。ＥｐｏｓはＣＰＵ１１１が任意のタイミングで任意値に書き換え可能である。書き換えのタイミングで書き換え値とＤｐｏｓとの差分量がオフセット値としてメモリに記録される。図４（Ｅ）にＥｐｏｓの例を示す。図４（Ｄ）および（Ｅ）に示すように、Ｅｐｏｓ生成部３０７はＤｐｏｓの値に対し、記録されたオフセット値が常に付与された形のＥｐｏｓを生成する。
【００３０】
位置ＥＮＣ回路１０９は、Ａｐｏｓ生成部３０１〜Ｅｐｏｓ生成部３０７によって、それぞれ信号生成処理を行う。ここで、ＢｐｏｓからＥｐｏｓまでの処理を行わない場合に発生する課題について、図６を用いて説明する。図６に示す各グラフの横軸はロータの回転位相を表す。
【００３１】
図６（Ａ）および（Ｂ）は２つの位置検出信号を表し、モータ１回転分の３周期に相当する回転位相を示す。本例では検出信号の正弦波１周期で４０９６分解能の位置カウント検出が可能であるとする。図６（Ｃ）は検出位置カウントを示す。位置検出信号の１周期ごとに、位置５０１で４０９６カウント、位置５０２で８１９２カウント、位置５０３で１２２８８カウント、となる。図６（Ｅ）、（Ｆ）、（Ｇ）はそれぞれ、モータ１回転時にモータに対して出力すべき駆動波形のカウント値、Ａ相に対する駆動波形、Ｂ相に対する駆動波形を示す。本例にて駆動波形の位相カウント値は、出力正弦波の１周期に対して１０２４の分解能とする。位置検出信号がちょうど３周期出力されたときに、駆動波形はちょうど５周期出力されなければならない。
【００３２】
算出される位置カウント値と出力される駆動波形カウント値とを同期させるため、まず小数点以下を切り捨てる方式を考える。モータ１回転に相当する検出位置カウント１２２８８を５で割った２４５７．６の整数部分のみを取って同期させるものとする。この場合、図６（Ｃ）にて本来はモータの回転に応じて、点５０４、点５０５、点５０６、点５０７で示す位置、つまり検出位置カウントとしては小数点がなければ検出できない位置ごとに駆動波形が１周期ずつ出力されなければならない。図６（Ｄ）に示すように２４５７を最大値とするグラフ５１３で示すカウント値が検出位置カウントから生成され、１０２３／２４５７に相当する値を乗算する処理を行うことでグラフ５１４に示すカウント値が生成される。この場合、点５０８から５１２で示す位置（駆動波形が１周期出力される位置）と、理想とされる図６（Ｃ）に示す点５０４から５０７、５０３の位置とにズレが生じる。例えばロータが１回転したときに０．６×５＝３カウントのズレを生じたとすると、回転に応じてズレ量が蓄積されていく。１００回転したときにはカウントズレは３００カウントにもなり、検出位置と駆動波形との同期という目的を達せられない事態となる。
【００３３】
検出位置の小数点以下の端数を切り捨てた場合の課題を説明したが、図４（Ａ）のＡｐｏｓに対して、精度のよい乗算器、除算器を用いることにより、複雑な処理を行うことなく同期精度を保つ方法もある。しかしＡｐｏｓのビット数が実用上大きく、ビット数の大きい値に対して１ビットの精度まで求めた比率計算を行って同期処理を行うと別の課題が発生し得る。つまり、回路規模の増加、計算処理時間の増加による他ブロックとの同期性の低下といった課題がある。そこで本実施形態では、ＢｐｏｓからＥｐｏｓの生成処理を行うことで、処理時間の短縮と検出位置精度、同期精度の保持を実現可能である。
【００３４】
図３のＥｐｏｓ生成部３０７により生成されるＥｐｏｓの情報は、駆動波形位相決定部３０８に入力される。駆動波形位相決定部３０８は、最終的にＡ相用コイル１１４、Ｂ相用コイル１１５に印加する駆動波形の位相カウント情報を決定する。駆動波形位相決定部３０８は、図１のＰＷＭ発生器１１２に対し、位相カウントに相当するＰＷＭ値を出力する。駆動波形位相決定部３０８は、ＯＰＥＮ駆動用カウント部３０９の指令により、位相カウント情報を出力するＯＰＥＮ駆動と、Ｅｐｏｓの値に基づいて位相カウント情報を出力する位置連動駆動とを切り替えることができる。ＯＰＥＮ駆動と位置連動駆動は、ＣＰＵ１１１が駆動波形位相決定部３０８に対して設定を行うことで切り替えられる。
【００３５】
ＯＰＥＮ駆動を行う場合、ＣＰＵ１１１はＯＰＥＮ駆動用カウント部３０９に駆動波形の周波数を指令し、駆動波形位相決定部３０８に駆動波形の振幅ゲインを設定する。これにより、駆動波形位相決定部３０８は所望周波数、所望振幅の駆動波形を出力する。一方、位置連動駆動を行う場合、Ｅｐｏｓの下位１０ビット値に対して駆動波形位相決定部３０８は所定のオフセット値を付与した値を算出する。所定のオフセット値は以下の通りである。
・ＣＰＵ１１１が定常位相差設定部３１０を通じて設定した第１のオフセット値（ＳＴＣ＿ＯＦＳ値）
・ＣＰＵ１１１が駆動用位相差設定部３１１を通じて設定した第２のオフセット値（ＰＨＳ＿ＯＦＳ値）。
【００３６】
これらのオフセットを付与した値が算出されて駆動波形位相のカウント値が取得される。このカウント値に相当する位相の出力値が駆動波形の出力値として選択される。この関係を図４（Ｆ）、（Ｇ）の各グラフで示す。図４（Ｆ）はＥｐｏｓの下位１０ビット値と回転量との関係を示す。図４（Ｇ）はオフセットを付与した後の駆動波形を示す。Ｅｐｏｓに対してＳＴＣ＿ＯＦＳ、ＰＨＳ＿ＯＦＳの両方が加算されてオフセット値が付与される。後述するように、ＳＴＣ＿ＯＦＳはロータの検出位置カウントと駆動波形カウントの安定位置を管理する役割をもつ。ＰＨＳ＿ＯＦＳはトルク発生のための位相差管理とは別の役割が割り当てられている。
【００３７】
駆動波形生成回路１１０は、図３の駆動波形位相決定部３０８〜駆動用位相差設定部３１１によって駆動波形の位相を決定し、駆動波形に対応するＰＷＭ指令値をＰＷＭ発生器１１２へ出力する。ＰＷＭ発生器１１２は駆動波形生成回路１１０から出力されるＰＷＭ指令値に応じてＰＷＭ信号をモータドライバ１１３に出力する。
【００３８】
図７を参照して、正弦波位置カウント値と、出力されるＰＷＭ値（Ｄｕｔｙ％値）との関係を説明する。図７（Ａ）、（Ｂ）ともに横軸はテーブル番号を表し、電圧波形の位相に対応しており、図４（Ｇ）に示す駆動波形値と同様の分解能とする。縦軸はＰＷＭ信号のＤｕｔｙ％値である。図７（Ａ）では、横軸がプラスカウントされていてＡ相駆動電圧波形に対してＢ相駆動電圧波形が９０度先行し、モータがＣＷ方向に回転する場合を示している。逆に図７（Ｂ）では、横軸がマイナスカウントされていてＢ相駆動電圧波形に対してＡ相駆動電圧波形が９０度先行し、モータがＣＣＷ方向に回転する場合を示している。縦軸のＤｕｔｙ％値はゲイン設定値に応じて増減する。本実施形態ではモータの回転運動に支障を来すことのない適切なゲイン値が設定されているものとする。
【００３９】
[第１実施例]
図８および図９は本実施形態における処理の流れを示すフローチャートである。ＣＰＵ１１１は所定のプログラムにしたがって以下の制御を行う。駆動シーケンスが開始すると図８のＳ７０１の処理に進む。
【００４０】
Ｓ７０１では、位置連動駆動をオフする設定処理が実行される。つまり、ＯＰＥＮ駆動が働く設定となる。続くＳ７０２にてＣＰＵ１１１はリセット機構１２１が出力しているリセット信号の検出状態を判定する。リセット信号は、ロータ軸１０２のスクリュー機構に取り付けられた被検知部材の移動に伴い、被検知部材が予め設定された位置を通過するときにＨｉｇｈまたはＬｏｗに変化する２値信号である。モータ駆動装置がステッピングモータ１０１にＢ相先行の駆動波形を印加してＣＷ回転をするときに被検知部材が進行する側が、リセット信号としてＨｉｇｈレベルを出力する側である。モータ駆動装置がステッピングモータ１０１にＡ相先行の駆動波形を印加してＣＣＷ回転をするときに被検知部材が進行する側が、リセット信号としてＬｏｗレベルを出力する側である。リセット信号が変化する位置を検出して絶対位置を確定するために、Ｓ７０２の判定処理が行われる。
【００４１】
Ｓ７０２にてリセット信号がＬｏｗレベルであればＳ７０３に進み、ＣＰＵ１１１はＢ相先行波形の駆動波発生をＯＰＥＮ駆動用カウント部３０９（図３）に指令し、モータを回転させる制御を行う。他方、Ｓ７０２にてリセット信号がＨｉｇｈレベルであればＳ７０４に進み、ＣＰＵ１１１はＡ相先行波形の駆動波発生をＯＰＥＮ駆動用カウント部３０９に指令し、モータを回転させる制御を行う。Ｓ７０３またはＳ７０４の処理の後、Ｓ７０５の処理に進む。
【００４２】
Ｓ７０５でＣＰＵ１１１はリセット信号の状態が変化したかどうかを判定する。ＣＰＵ１１１はリセット信号を監視し、リセット信号に変化が起きた場合、Ｓ７０６の処理に進み、リセット信号に変化がない場合には監視を継続してＳ７０５の判定処理を繰り返す。
【００４３】
Ｓ７０６でＣＰＵ１１１は、駆動波形の進行を停止させる指令をＯＰＥＮ駆動用カウント部３０９に出力する。このときの停止位置は、位置カウントの基準位置となる。次のＳ７０７では、検出位置の最終的な位置管理を行うレジスタの値が初期化され、Ｅｐｏｓにゼロを書き込む処理が行われる。
【００４４】
続くＳ７０８では、ロータの停止状態で駆動波形位相決定部３０８に保持されている駆動波形の位相カウント値から、Ｅｐｏｓの下位１０ビット値を引いた値をＳＴＣ＿ＯＦＳとして書き込む処理が実行される。ＣＰＵ１１１が定常位相差設定部３１０を通じて設定するＳＴＣ＿ＯＦＳの値は、位置連動機能をＯＮにした瞬間に、駆動波形の出力位相がずれないようにするための値である。Ｓ７０８の時点では、ＯＰＥＮ駆動波形の結果、ある駆動波形位相を出力している状態にしたがってロータ磁石１２０が安定に停止している。位置連動駆動がＯＮに設定された後の駆動波形位相は、Ｅｐｏｓの下１０ビットの値に基づいて生成される。位置連動駆動がＯＮに設定された直後に、Ｅｐｏｓの下位１０ビットの値にＳＴＣ＿ＯＦＳの値が加算される。加算後の値が駆動波形の位相カウント値として出力されるので、駆動波形の位相カウント値は位置連動駆動のＯＮとＯＦＦの前後で値が変わらないことが保証される。次にＳ７０９の処理に進む。
【００４５】
Ｓ７０９でＣＰＵ１１１は位置連動駆動をＯＮに設定する。このとき、オフセットＰＨＳ＿ＯＦＳにはゼロが設定されているものとする。位置連動駆動のＯＮ設定の直後は前述の通り、駆動波形の出力位相は変化しない。図９のＳ７１０において位置連動機能を利用した回転トルク発生動作が行われ、ＣＷ方向へのトルク生成処理が実行される。具体的にはＰＨＳ＿ＯＦＳに駆動波形位相で９０度に相当する２５６という値が設定される。このときにモータに発生する現象については、図１０から図１２を用いて後述する。
【００４６】
Ｓ７１１でＣＰＵ１１１は、ロータの検出位置が減速開始位置に等しいかまたは減速開始位置を超えたかどうかを判定する。減速開始位置については、前もってモータおよび機構部の駆動特性を調べておき、所望の減速トルクをかけたときに十分な減速効果が得られるように、必要な回転量分だけ目標停止位置から手前の位置に設定される。ロータの検出位置が減速開始位置に等しいかまたは当該位置を超えた場合、Ｓ７１２に進む。ロータの検出位置が減速開始位置に到達していない場合にはＳ７１１の判定処理が繰り返し行われる。
【００４７】
Ｓ７１２では、ＣＣＷ方向へのトルク生成処理が実行される。モータにＣＣＷ方向の回転トルク、すなわちＣＷ回転時には減速トルクがかかるよう、−２５６の値がＰＨＳ＿ＯＦＳに設定される。その詳細については図１３および図１４を用いて後述する。Ｓ７１３でＣＰＵ１１１は検出位置カウント値、つまりロータの検出位置が減速終了位置に等しいか、または減速終了位置を超えたかどうかを判定する。減速終了位置については、前もってモータおよび機構部の駆動特性を調べておき、十分な減速が行われていて、かつ減速終了後に慣性で目標到達位置まで到達が可能な、目標停止位置より手前の位置に設定される。ロータの検出位置が減速終了位置に等しいか、または当該位置を超えた場合、Ｓ７１４に進む。ロータの検出位置が減速終了位置に到達していない場合には監視が継続し、Ｓ７１３の判定処理が繰り返し行われる。
【００４８】
Ｓ７１４でＣＰＵ１１１はＣＣＷ方向へのトルク生成処理を行う。具体的にはＰＨＳ＿ＯＦＳにゼロが設定される。次のＳ７１５でＣＰＵ１１１は検出位置カウントの値、つまりロータの検出位置が目標停止位置に等しいか、または目標停止位置を超えたかどうかを判定する。ロータの検出位置が目標停止位置に到達したことが判定された場合、Ｓ７１６に移行する。またＳ７１５でロータの検出位置が目標停止位置に到達していないと判定された場合には監視が継続し、Ｓ７１５の判定処理が繰り返し行われる。Ｓ７１６にてＣＰＵ１１１は位置連動駆動をオフに設定し、駆動波形の位相を固定する。これにより、モータは回転駆動が停止し、駆動シーケンスを終了する。
【００４９】
次に図１０から図１２を参照して、Ｓ７０９、Ｓ７１０の処理について具体的に説明する。図１０（Ａ）は、図２（Ｃ）に示されるステータ群の配置を横一列に並べた場合の模式図である。図１０（Ｂ）はステータ群に対してモータの周方向にどのような電圧印加を行っているかを模式的に示した図である。また図１０（Ｃ）はその電圧印加によってステータ群が発生させている、周方向の位置に対応した磁場の強さを示す図である。図１０（Ｄ）は図２（Ｃ）で示されるロータ磁石１２０の着磁位相を示す図である。図１０（Ｂ）から（Ｄ）において横軸は位置を表す。
【００５０】
図１０に示す状態は、図８のＳ７０９の状態を示している。このとき、ステータ群が発生させている磁場のＮＳ磁極位相と、ロータ磁石１２０のＮＳ磁極位相とが、互いの引力により安定に停止する関係にある。これに対して、図９のＳ７１０においてＰＨＳ＿ＯＦＳに２５６が設定された状態を、図１１に示す。図１１（Ａ）から（Ｄ）は、図１０（Ａ）から（Ｄ）にそれぞれ対応している。図１１に示す状態では、ステータ群が発生させている磁場が図１０の状態に比べて９０度進んだ位置関係にある。このことにより、図１１（Ｄ）で示されるロータ磁石１２０には右側に引っ張られる引力、すなわちＣＷ方向の回転トルク（正転トルク）が発生する。これと同様の動きを、図１２で説明する。図１２（Ａ）から（Ｇ）に示す各グラフの横軸を時間軸とする。
【００５１】
図１２（Ａ）および（Ｂ）は、複数のＨａｌｌセンサから出力されて調整された検出位置信号の時間変化をそれぞれ示す。図１２（Ｃ）のグラフはＥｐｏｓの挙動を示し、図１２（Ｄ）のグラフはＥｐｏｓの下位１０ビット値の変化を示す。図１２（Ｅ）のグラフは駆動波形の位相カウント値の挙動を示す。また、図１２（Ｆ）および（Ｇ）はそれぞれ、駆動波形の位相カウント値に基づいてステータに発生する磁場の変化を示す。図１２（Ｆ）はステータＡ＋１１６に発生する駆動波形磁場を表し、図１２（Ｇ）はステータＢ＋１１８に発生する駆動波形磁場を表している。
【００５２】
図１２に示す時刻ｔ１において、ＰＨＳ＿ＯＦＳに２５６が設定されたとして、その瞬間にＣＷ方向のトルクが発生してロータが回転する。ロータの回転に伴ってその検出位置を示すＥｐｏｓの値が進み、そのことにより駆動波形の位相カウント値も進む。このループ処理によって、図１１（Ｃ）および（Ｄ）で示す２つの波形の位相差は常に維持され、ロータに一定の回転トルクがかかり続けることになる。その結果、ロータに加速がかかり、モータの回転速度が上昇していく。
【００５３】
図１３は、図１１と図１２で説明した動作後の挙動を示す図である。ロータの加速後に一定速度に移行し、ロータの減速を経て空走へと遷移する状態変化を説明する。図１３（Ａ）および（Ｂ）は複数のＨａｌｌセンサから出力されて調整された検出位置信号の時間変化をそれぞれ示す。図１３（Ｃ）のグラフはＥｐｏｓの挙動を示し、図１３（Ｄ）のグラフは回転数（回転速度）の挙動を示す。図１３（Ｅ）のグラフはＥｐｏｓの下位１０ビット値を示し、図１３（Ｆ）のグラフは駆動波形の位相カウント値の挙動を示す。また図１３（Ｇ）および（Ｈ）はそれぞれ、駆動波形の位相カウント値に基づいて、ステータＡ＋１１６に発生する駆動波形磁場と、ステータＢ＋１１８に発生する駆動波形磁場を表している。
【００５４】
図１３の時刻ｔ２に至るまでの間、モータは加速を続け、その後の時刻ｔ３まで一定速度の状態になる。図１１で説明した原理の発生トルクは回転数が上がるにつれて電圧から電流に変換されるときのコイルの周波数特性遅れによって減衰し、また逆起電力の影響が大きくなる。このことにより発生トルクと逆起電力、機械的負荷とが、ある回転数でつり合い状態になるため、ロータの回転速度が一定速度となる。
【００５５】
図１３の時刻ｔ３から時刻ｔ４までの期間にはロータが減速される。図１４を参照して、図９のＳ７１２の状態を説明する。図１４は基本的に図１０、図１１に対応する図である。この状態では、図１０に示す安定停止状態に比べて、ステータ群が発生している磁場の位相が９０度遅れた位相になっている。そのため、図１４（Ｄ）に示すロータ磁石１２０を左方向に引っ張る引力、すなわちＣＣＷ方向の回転トルクが発生する。つまり、逆回転トルクをブレーキトルクとして利用することで、速やかな減速を行うことができる。なお、図１３のおける時刻ｔ３での挙動が、図９のＳ７１２における挙動に相当する。時刻ｔ３のタイミングで図１３（Ｆ）に示す駆動波形の位相カウント値は、図１３（Ｅ）に示すＥｐｏｓの下１０ビット値に対して２５６カウント分進んでいた状態から、２５６カウント分遅れた状態へと移行している。
【００５６】
図９のＳ７１４でＰＨＳ＿ＯＦＳにゼロを設定する処理が行われ、この状態は図１３にて時刻ｔ４での状態に相当する。このタイミングで、図１３（Ｆ）で示される駆動波形位相カウント値が、図１３（Ｅ）で示すＥｐｏｓの下位１０ビット値に対して差分を持たない状態へ移行している。続くＳ７１５で検出位置が目標停止位置（図１３（Ｃ）：ＴＰ）に到達した場合、Ｓ７１６に移行する。このタイミングは図１３の時刻ｔ５に相当する。
【００５７】
本実施形態によれば、回転位置検出部によるロータの検出位置に基づいてモータに対して効率的な駆動波形を生成する処理上で反応遅れの少ない駆動波形を生成することができる。
【００５８】
［第２実施例］
次に、図１５および図１６を参照して、第２実施例を説明する。本実施形態では、オフセットＰＨＳ＿ＯＦＳに設定する値によって、目標速度への追従制御を行う構成および処理を説明する。第１実施例と同様の構成および動作については説明を省略し、主に相違点を説明する。
【００５９】
図１５はＰＨＳ＿ＯＦＳに設定する検出位置カウントと駆動波形との位相差量と、モータの定常回転速度との関係を示す図である。横軸は位相差量を表し、縦軸は回転数を表す。図１５のグラフは、位相差量を大きくするにつれて、右肩上がりで回転数が上がる特性を示している。線形関係範囲では位相差量に比例して回転数が上昇するが、線形関係範囲から外れて位相差量が増加すると、あるところ（最高回転数）で頭打ちになり、その後に回転数が下がっていく特性を示す。図示の線形関係範囲のように、位相差と回転数との関係を線形関係と見なせる範囲内においては、位相差量を制御量として一般的な速度制御が可能である。図１６のフローチャートを参照して、駆動シーケンスを具体的に説明する。駆動シーケンスの前半で実行される処理は、図８および図９のＳ７０１〜Ｓ７１０の処理と同様であるので、それらの説明は割愛する。Ｓ７１０でロータに加速トルクがかかり、回転運動を始めた後、図１６のＳ１４１１の処理に進む。
【００６０】
Ｓ１４１１でＣＰＵ１１１は、検出位置カウント値の微分演算やフィルタ処理等により検出速度値を算出する。算出された検出速度値と、あらかじめ設定されている目標速度との速度差分値が算出される。ＣＰＵ１１１は、速度差分値を偏差量として目標速度への追従を目的とする制御を行う制御器として機能するように設計されている。つまりＣＰＵ１１１は所定のプログラムを実行することにより、制御器の機能を実現し、偏差量から位相差制御量を算出して速度追従処理を行う。このような制御器として、一般的なＰ（比例）Ｉ（積分）Ｄ（微分）制御器や位相補償フィルタ等による制御器がある。その他には、古典制御理論外の先進的な制御理論に基づく制御器を使用してもよい。なお、ＣＰＵ１１１に代えて、あらかじめ設計された制御器をハードウェアとして搭載したモータ駆動装置への適用も可能である。
【００６１】
Ｓ１４１２でＣＰＵ１１１は、ロータの検出位置が減速開始位置に等しいか、または減速開始位置を超えたかどうかを判定する。ロータの検出位置が減速開始位置に等しいか、または当該位置を超えた場合、Ｓ１４１３の処理に進む。一方、ロータの検出位置が減速開始位置に到達していない場合にはＳ１４１１に戻り、速度制御処理を継続する。
【００６２】
これ以降、図１６のＳ１４１３〜Ｓ１４１７の処理はそれぞれ、第１実施例にて図９で説明したＳ７１２〜Ｓ７１６の各処理と同様であるので、それらの詳細の説明を割愛する。また本実施形態では、位相差量とモータの定常回転速度との関係を示すデータを用いて、位相差設定部を介して駆動用位相差を設定する処理を説明した。これに限らず、位相差量と発生トルクとの関係を示すデータを用いて、位相差設定部を介して駆動用位相差を設定する処理を行ってもよい。この場合、ＰＨＳ＿ＯＦＳに設定する検出位置カウントと駆動波形との位相差量と、モータの発生トルクとの関係を示すデータが予めメモリに記憶されており、ＣＰＵ１１１は所望の発生トルクに対応する位相差量を設定する。
【００６３】
本実施形態によれば、第１実施例の効果に加えて、モータの目標速度と検出速度との差分量に応じて、位相差量を制御量として速度制御を行うことができる。
以上に説明した実施形態では、ロータの回転検出位置に基づき、モータに対して効率的かつ反応遅れの少ない駆動波形生成が可能なモータ駆動装置を実現できる。前記実施例の位置検出器は、複数のホールセンサと回転磁石を用いた構成であるが、回転位置の検出を十分に高精度に行える構成であれば、他のセンサ機構を用いても実施可能である。また前記実施例では１０極の一般的なクローポール型ステッピングモータの構成を前提に説明したが、これに限らず、ロータ側が永久磁石であって、ステータ側がコイル・ステータであれば、他のモータでも実施可能である。位置検出用の回転磁石（６極の磁石）は例示であり、図３に示す各設定部３０３、３０５、３１０、３１１の設定値を変更して対応することで、検出器用磁石として任意の極数の磁石を使用可能である。
【００６４】
［第３実施例］
第１、第２実施例のように、位置検出信号に基づいて駆動波形を生成すると、位置検出信号の分解能（検出周期）によって、停止精度が低下することがある。そこで、本実施例では、位置検出信号に基づいて駆動波形を生成するモータ駆動装置において、停止精度の低下を軽減する例について説明をする。
【００６５】
図１７を参照して、正弦波位置カウント値と、出力されるＰＷＭ値（Ｄｕｔｙ％値）との関係を第１実施形態と異なる点のみ説明する。図７において、縦軸のＤｕｔｙ％値は、同期制御手段２０１、もしくは非同期制御手段２０３に設定されたＧａｉｎ値に応じて増減するものとするが、本実施例ではモータの回転運動に支障をきたさない適切な値が設定されているものとする。また、同期制御手段２０１による同期制御を行うことで、回転位置検出機構により検出した回転位置に基づいて、ステッピングモータに対して効率的な駆動波形を反応遅れが少なく生成することができる。しかしながら、同期制御においては、駆動波形位相のカウント値の分解能が位置検出信号の分解能によって決定される。よって、例えば位置検出信号の分解能が駆動波形分解能に対して低い場合、駆動波形位相のカウント値が実際に可能な分解能を取れない可能性がある。
【００６６】
図１７は駆動波形生成回路１１０の内部構成を示した図である。駆動波形生成回路１１０は、同期制御手段２０１、位相差設定手段２０５、非同期制御手段２０３、駆動方式切り替え手段２０６、駆動波形位相決定手段２０７を備える。また、後述する同期制御において、位置ＥＮＣ回路が備えるモータ位置取得手段２０４はモータのロータが回転した回数を駆動方式切り替え手段２０６に出力する。
【００６７】
駆動波形生成回路１１０は、同期制御手段２０１、非同期制御手段２０３の２つの制御手段をもち、駆動方式切り替え手段２０６によりいずれの制御手段による制御で駆動波形を生成するかを切り替える。これにより、同期制御と非同期制御とを切り替えることができる。
【００６８】
同期制御手段２０１は、位置ＥＮＣ回路１０９から出力される回転位置情報に基づいて駆動用の正弦波信号を生成する同期制御を行う制御手段である。具体的には位置ＥＮＣ回路１０９によって生成された回転位置情報を、モータが一回転したときに検出される回転位置カウントに相当される値に変換する処理を行う。例えば、エンコーダの１周の位置カウント精度が１２ビット精度、モータの１周の回転位置カウント精度が１０ビット精度である場合、エンコーダの位置カウント精度の上位１０ビットをモータの位置カウントとして扱うため、１２ビットを１０ビットに変換する。この変換処理により取得された回転位置カウント値をカウントすることで、ロータが何回転したかが分かる。
【００６９】
非同期制御手段２０３は、ＣＰＵ１１１によって設定された周波数に基づいて駆動用の正弦波信号を生成する非同期制御を行う制御手段である。この制御は、位置ＥＮＣ回路１０９とは非同期の制御である。本制御においては、ＣＰＵ１１１が駆動波形の周波数を指令し、駆動波形の振幅ゲインを設定することで、所望振幅の駆動波形を出力する。
【００７０】
位相差設定手段２０５は、モータの回転位置と駆動波形との間の位相差を設定する手段であり、同期制御手段２０１で生成されたモータの回転位置カウント情報に対して、設定されたオフセット値を加算、減算してする。この値が駆動波形位相のカウント値となり、このカウント値に相当する位相の出力値が駆動波形の出力値として選択される。
【００７１】
モータ位置取得手段２０４は、同期制御手段２０１によって生成されたモータの回転位置カウントを受け取り、モータが何回転しているかを取得する。モータの回転位置カウント情報がどのように変化するかを監視することで、周回情報の加算と減算を行い、何周目かをカウントする。カウントして取得したモータの位置情報は、保持するとともに駆動方式切り替え手段２０６に出力する。
【００７２】
駆動方式切り替え手段２０６は、同期制御手段２０１と非同期制御手段２０３のどちらで制御するかを切り替える。これらの切り替えは例えばＣＰＵ１１１の指令により行うことが可能である。
【００７３】
駆動波形位相決定手段２０７はモータの回転位置情報と正弦波の値が紐づけられているテーブルを有し、駆動波形の位相カウント情報を決定し、決定した位相カウントに対応するＰＷＭ指令値をＰＷＭ発生器１１２に送る。ＰＷＭ発生器１１２は受け取ったＰＷＭ指令値に応じて、モータドライバ１１３にＰＷＭ信号を出力する。
【００７４】
回転位置書き換え手段２０８は、モータの回転位置をＣＰＵ１１１の指示に従って書き換える。回転位置書き換え手段２０８は、リセット機構１２１によるリセット動作時に、リセット機構１２１からの信号の変化タイミングを検出後、その検出箇所を基準位置としてモータの回転位置を書き換える。また回転位置書き換え手段２０８はリセット機構１２１からの信号の変化タイミング以外でも、回転位置を書き換えてもよい。例えば脱調により、駆動回路のモータの駆動波形位相と、ロータ回転位相が異なってしまった場合、脱調後にモータの駆動波形位相と、ロータ回転位相を訂正するためにも使用される。
【００７５】
本実施形態では、位置検出信号の分解能は、ＡＤ変換回路による位置検出信号のＡＤ変換周期により決定されるものとする。ＡＤ変換回路１０８のＡＤ変換の周期が駆動波形の位相カウント値の分解能より大きい場合の正弦波駆動波形と位相カウント値に基づくＰＷＭ信号との関係を図１８に示す。
【００７６】
図１８（Ａ）、（Ｂ）ともに横軸はテーブル番号を表し、縦軸はＰＷＭ信号のＤｕｔｙ％値を表す。図１７でも説明したように本実施形態では検出信号の正弦波１周で１０２４分解能の駆動波形の制御が可能であるとする。図１８（Ａ）は横軸がプラスカウントされてＡ相駆動電圧波形に対してＢ相駆動電圧波形が９０度先行し、モータがＣＷ方向に回転する場合を示している。図１８（Ｂ）は横軸がマイナスカウントされてＢ相駆動電圧波形に対してＡ相駆動電圧波形が９０度先行し、モータがＣＣＷ方向に回転する場合を示している。縦軸の％値は、同期制御手段２０１、もしくは非同期制御手段２０３に設定されたＧａｉｎ値に応じて増減するものとするが、本実施形態ではモータの回転運動に支障をきたさない適切な値が設定されているものとする。本実施形態では、ＡＤの変換周期は、駆動波形の周期の１／２６であるとする。図１７が、位相カウント分解能で駆動波形を制御したものであるのに対し、図１８がＡＤ変換の周期で駆動波形を制御したものである。このように、正弦波状の駆動波形はＡＤ変換の周期によって制限され、ステップ状に変化する。
【００７７】
ここでモータを停止させる場合に、モータは位相カウント分解能の精度でずれなく目標停止位置に停止させたい。しかし、図５に示すようにＡＤの変換周期が駆動波形の位相カウント分解能より十分早くない場合その精度での停止は難しい。例えばＡＤの変換周期が駆動波形の周期の１／２６であるとすると、ＡＤ変換周期内における位相カウントの変化は１０２４÷２６≒  ３９．４カウントとなるためである。
【００７８】
ＡＤ変換回路１０８のＡＤ変換周期が、駆動波形の位相カウント分解能より十分早くなるところまでモータの減速を行ってから停止させることで、本課題による影響を軽減することが可能である。しかしその場合にはモータの停止までにかかる時間が長くなってしまうという問題が発生する。またＡＤ変換回路１０８の変換周期を短くすることも考えられるが、同期制御手段２０１の制御をさせるために、本来の位置検出で必要な変換周期以上のＡＤ変換回路を用いることは回路規模やコストの増加につながる。またＡＤ変換の変換周期が十分になったとしても、ＡＤ変換時のノイズや精度によっては、停止時にわずかな位相カウントの誤差が発生してしまい、その誤差によって停止位置がずれてしまう恐れがある。
【００７９】
このように同期制御手段２０１の制御においては、モータの停止精度が位置検出間隔の制限を受ける。本実施形態のように、位置検出の間隔がＡＤ変換回路１０８によるＡＤ変換間隔によって決まる場合は、モータの停止精度はＡＤ変換回路１０８のＡＤ変換の性能によって決定されてしまう。よって、ＡＤ変換周期が駆動波形の位相カウント分解能より十分早くない場合（図１８のようになる場合）、ＡＤ変換周期が駆動波形の位相カウント分解能より十分早い場合よりもモータの停止精度が低下してしまうことがあった。
【００８０】
そこで、本実施形態では、同期制御手段２０１による同期制御と、非同期制御手段２０３による非同期制御とを好適に切り替える。これにより、ＡＤ変換周期が駆動波形の位相カウント分解能より十分早くない場合であっても、正弦波状の位置検出信号と駆動電圧とを用いてステッピングモータを駆動する駆動装置の停止精度低下を軽減する。
【００８１】
図１９は本実施形態における処理の流れを示すフローチャートである。ＣＰＵ１１１は所定のプログラムにしたがって以下で説明する図１９に示した制御を行う。なお、図１９のステップＳ４０２およびＳ４０５は、図８のＳ７０２およびＳ７０５の処理と同様であるので、それらの説明は割愛する。
【００８２】
駆動シーケンスが開始するとＳ４０１の処理に進む。ステップＳ４０１では、まず非同期制御手段２０３の制御設定とする、つまり、非同期制御をオンにする。
【００８３】
ステップＳ４０２においてリセット信号がＬｏｗレベルであればステップＳ４０３に進み、リセット信号がＨｉｇｈレベルであればＳ４０４に進む。Ｓ４０３で非同期制御手段２０３はＢ相先行波形の駆動波発生を指令し、モータを回転させる制御を行う。一方、ステップＳ４０４では、非同期制御手段２０３はＡ相先行波形の駆動波発生を指令し、モータを回転させる制御を行う。Ｓ４０３またはＳ４０４の処理後、Ｓ４０５の処理に進む。
【００８４】
続くステップＳ４０５でリセット信号に変化が起来た場合はステップＳ４０６に進み、非同期制御手段２０３は駆動波形の進行を停止させる指令を出す。このときの停止位置は、位置カウントの基準位置となる。
【００８５】
次のＳ４０７では、回転位置書き換え手段２０８は、モータ位置取得手段２０４が保持しているモータの回転位置情報を基準位置に書き換える処理を行う。このとき、モータの回転位置情報において、周回情報（何周したか）は書き換えるが、１周のどの回転位置にいるかの情報（以下、１周内の位置情報）は書き換えない。１周内の位置情報は、ゼロと上限値との間（０〜３６０°）で回転量に対して周期的に変化する鋸歯状波の信号値である。
【００８６】
続くステップＳ４０８では同期制御手段２０１の制御設定とする、つまり、同期制御をオンにする。この時、位相差設定手段２０５には０が設定されているものとし、同期制御手段２０１に制御方式を切り替えた直後は駆動波形の出力位相は変化しない。
【００８７】
ステップＳ４０９において同期制御手段２０１を用いたＣＷ方向への回転トルク（正転トルク）発生動作を行う。具体的には、位相差設定手段２０５に駆動波形位相で９０度に相当する値（本実施形態では２５６）を設定する。
【００８８】
設定された瞬間にＣＷ方向のトルクが発生してモータが回転する。モータが回転することで位置ＥＮＣ回路１０９の位置情報が進み、そのことにより同期制御手段２０１の正弦波位置カウント値も進む。このループ処理によって、波形の位相差は常に維持され、一定の回転トルクがかかり続けることになる。結果、加速がかかり、モータの速度は上昇していく。そして、ある時刻で定速状態になる。これは発生トルクが回転数上がるにつれて発生トルクと逆起電力とメカ負荷とがある回転数でつり合い状態になるためである。
【００８９】
ステップＳ４１０では、ロータの検出位置が減速開始位置を超えたかどうかを判定する。減速開始位置を超えたと判定された場合はステップＳ４１１に進み、減速制御を開始する。またロータの検出位置が減速開始位置未満であると判定された場合にはＳ４１０の判定処理が繰り返される。減速開始位置は、事前にモータ及び機構部の駆動特性を調べておき、所望の減速トルクをかけた時に十分な減速効果を得るために必要な回転量分だけ目標停止位置から手前の位置に設定される。
【００９０】
ステップＳ４１１では、モータにＣＣＷ方向の回転トルク、すなわちＣＷ回転時にはブレーキとなるトルクがかかるよう、位相差設定手段２０５に駆動波形位相で−９０度に相当する値（本実施形態では−２５６）を設定する。これによってＣＣＷ方向の回転トルクが発生する。この逆回転トルクをブレーキトルクとして利用し、速やかな減速を図る。
【００９１】
続くステップＳ４１２では、ロータの検出位置が減速終了位置を超えたかどうかを判定する。減速終了位置を超えたと判定された場合はステップＳ４１３に進み、減速制御を終了する。またロータの検出位置が減速終了位置未満である場合にはＳ４１２の判定処理が繰り返される。減速終了位置は、目標停止位置より閾値分手前の位置を設定しているものとする。言い換えると、ステップＳ４１２は、検出位置に基づいて、ロータの検出位置と目標停止位置との差が閾値以下であるかどうかを判定する工程である。この閾値は、ステップＳ４１３で同期制御から非同期制御へと切り替わる直前の同期制御中に、回転位置の検出間隔内（本実施例の場合、ＡＤ変換周期内）で、モータが回転する回転量よりも大きい値とすることで、停止精度の低下を軽減することができる。言い換えると、図５のように駆動波形が階段状の場合、目標停止位置と減速終了位置とが異なるＰＷＭＤＵＴＹ値をとれるようにしておくことで、停止精度の低下を軽減することができる。モータの回転量として、位置検出手段による位置検出の位相カウント量を用いることもできる。
【００９２】
ステップＳ４１３では、制御手段を非同期制御手段２０３の制御設定へと切り替え、非同期制御による停止制御を開始する。これにより、停止精度がＡ／Ｄ変換周期の影響を受けない。
【００９３】
続くステップＳ４１４では非同期制御手段２０３の制御により、目標停止位置までＣＰＵ１１１によって設定した所定の速度で制御し、目標位置で駆動波形の位相を固定する。このことによりモータは回転駆動を停止する。
【００９４】
以上の実施例の構成、処理を実施することにより、同期制御手段によりモータに対して反応遅れの少ない駆動波形生成が可能で、かつ、停止時に好適に非同期制御手段に切り替えることで十分な停止精度を維持したモータ駆動装置を実現することができる。
【００９５】
［第４実施例］
本実施例では、ＡＤ変換回路１０８のＡＤ変換周期が動的に切り替わるモータ駆動装置の例について説明する。本実施例は、ＡＤ変換周期を取得するＡＤ変換周期取得手段と、ＡＤ変換周期にあわせて減速終了位置と目標停止位置との距離を設定する閾値設定手段を備える点が第３実施例と異なる。第３実施例と同様の点については説明を省略する。
【００９６】
図２０は本実施例における駆動波形生成回路の内部構成を示した図である。本実施例の駆動波形生成回路は、第３実施例の駆動波形生成回路に加え、ＡＤ変換周期取得手段６０１とモータ速度取得手段６０２とを備える。同期制御手段２０１〜回転位置書き換え手段２０８に関しては、図１７と同様であるため説明を省略する。
【００９７】
ＡＤ変換周期取得手段６０１はＡＤ変換回路１０８による位置検出信号のＡＤ変換周期の情報を取得する取得部である。本実施例においては、ＡＤ変換周期はＣＰＵ１１１の指示によって、とある範囲内で変更することが可能であるものとする。ＡＤ変換回路は位置ＥＮＣ回路１０９のアナログ値取得のためだけでなく、他のアナログ値の取得にも使われることが一般的である。ＡＤ変換回路の外部にセレクタを用意し、順番にＡＤ変換を行うことで、ＡＤ変換回路の数を削減している。そのため、例えば他のアナログ値取得を優先するような場合、Ｈａｌｌ素子パッケージ１０４から出力される位置検出信号のＡＤ変換周期としてみると、変換周期が遅くなる場合が考えられる。ＡＤ変換周期取得手段６０１は、このＨａｌｌ素子パッケージ１０４から出力される位置検出信号に対するＡＤ変換周期を取得する。
【００９８】
モータ速度取得手段６０２は、モータの回転速度を取得する回路である。モータ速度取得手段６０２は、モータ位置取得手段２０４から出力される位置情報と、ＡＤ変換周期取得手段６０１のＡＤ変換を用いて、回転速度＝ＡＤ変換の周期間で進んだ位相カウントの変化量／ＡＤ変換の周期として取得することが可能である。
【００９９】
図２１は本実施例における処理の流れを示すフローチャートである。図１９の示すフローチャートの処理と並行して、図２１に示すＡＤ変換周期の監視フローを行う。
【０１００】
ステップＳ８０１では、ＡＤ変換周期取得手段６０１により取得される位置検出信号のＡＤ変換周期が変化したか否かを判定する。位置検出信号のＡＤ変換周期が変化したと判定されると、ステップ８０２へ進み、変化していないと判定されたらステップＳ８０１を繰り返すことで、位置検出信号のＡＤ変換周期の変化を監視し続ける。位置検出信号のＡＤ変換周期の変化は、図１９のフローチャートのどのタイミングでも起こりうるものとし、ステップＳ８０１の判定によりＡＤ変換周期の変化が発生したと判定された場合、図２１のフローを優先して実施後、図１９のフローに戻り順次処理を行う。ステップＳ８０１でＡＤ変換周期の変化を検出したときは割り込みなどでＣＰＵ１１１へと通知することで、図１９の処理中であっても図の処理を優先して実施することが可能である。尚、モータの駆動自体は図１９のフローに従って行い続けてもよい。例えば、ステップＳ４０９によりモータをＣＷ方向に駆動している最中（Ｓ４１０でＮｏ判定を繰り返している最中）に図２１の処理を割り込ませる場合、モータはＣＷ方向に駆動させたまま図２１の処理を行ってもよい。
【０１０１】
ステップＳ８０２では、モータの現在の駆動状態を確認する。これはステップＳ８０１でＡＤ変換周期が変化したタイミングが図１９のどのフローであったかを確認することを示している。モータが停止動作中である場合（すなわち図１９のフローにおいて、Ｓ４１０でＹＥＳと判定された後〜Ｓ４１２でＹＥＳと判定される前であった場合）はステップＳ７０３に進む。モータが現在停止している、もしくは停止動作以外の動作中であればステップＳ８０６へと進む。
【０１０２】
ステップ８０３では、ＡＤ変換周期が短くなったのか長くなったのかを判定する。ＡＤ変換周期が長く（ＡＤ変換の間隔が長く）なった場合、ステップＳ８０４に進み、非同期制御へと即時切り替える。そして非同期制御手段２０３の制御により、目標停止位置までＣＰＵ１１１によって設定した所定の速度で制御し、目標位置で駆動波形の位相を固定する。このことによりモータは回転駆動を停止する。このステップは、図１９のステップＳ４１３〜Ｓ４１４に対応する。ステップＳ７０４のあと処理は終了する。
【０１０３】
またステップ８０３において、ＡＤ変換周期が長くなっていない、つまり、短くなったと判定された場合には、ステップＳ８０５に進み、図１９のフローの、図２１のフローに移行する前に実施していたステップに戻り、停止動作を行う。つまり、ステップＳ４１１により減速処理を行っており、ステップＳ４１２の判定を繰り返しているところで図２１のフローに移行した場合は、減速処理とステップＳ４１２の判定へ戻る。
【０１０４】
ステップＳ８０２で停止動作中ではないと判定されてステップＳ８０６に進むと、ステップＳ８０３と同様にＡＤ変換周期が短くなったのか長くなったのかを判定する。ＡＤ変換周期が長くなった場合、ステップＳ８０７に進み、現在設定されているよりも大きな閾値を設定することで、減速終了位置を停止目標位置から遠ざける。閾値は、減速終了時に非同期制御へと切り替わる直前に取得された駆動波形の速度情報とＡＤ変換周期とから、ＡＤ変換周期内のモータの回転量を算出し、この回転量よりも減速終了位置と、停止目標位置の間隔が長くなるように設定される。駆動波形の速度情報はモータ速度取得手段６０２により取得するが、ＡＤ変換周期内のモータの回転量が分かっていれば、駆動波形の速度情報とＡＤ変換周期からＡＤ変換周期内のモータの回転量を算出する必要はない。
【０１０５】
一方、ＡＤ変換周期が長くなっていない、つまり、短くなった場合、ステップＳ８０８に進み、現在設定されているよりも小さな閾値を設定することで、減速終了位置を停止目標位置に近づける。減速終了位置の算出方法はステップＳ８０７の場合と同様であるため説明を割愛する。ステップＳ８０７、ステップＳ８０８のあとは、ステップＳ８０５に進み、図１９のフローに従いモータの駆動制御を行い、停止動作を行う。
【０１０６】
このような処理を実施することにより、ＡＤ変換周期が長くなり同期制御中の位置カウント精度が低下（位置カウントの分解能が低下）しても、非同期制御に好適に切り替えることで目標停止位置に停止させることができる。またＡＤ変換周期が短くなった場合には同期制御手段中の位置カウント精度が向上するため、より同期制御手段２０１の制御期間を増やすことで反応遅れの少ない駆動波形生成が可能なモータ駆動を実現することができる。またＡＤ変換周期がモータの駆動状態によらず動的に変更可能となる。
【０１０７】
尚、本実施例では、ＡＤ変換周期自体が変更されたか否かを判定したが、ＡＤ変換周期の代わりに、駆動波形の位相カウント分解能に対するＡＤ変換周期が変更されたか否かを判定して制御を行ってもよい。
【０１０８】
［第５実施例］
本実施例では、ステップＳ４０７で位置管理レジスタを初期化する際に、駆動波形を補正するモータ駆動装置について説明をする。モータ制御の方式を同期制御と非同期制御との間で動的に切り替える場合、それぞれの制御が独立してしまうと、モータ制御の駆動波形位相の連続性が保てないという課題がある。本実施例では、非同期制御から同期制御への切り替時に、回転位置と駆動波形との位相差をつなげることで、連続性を持たせる。第３実施例と同様の構成については説明を省略する。
【０１０９】
図２２は本実施例における駆動回路の内部構成を示した図である。本実施例の駆動回路は、補正量取得手段２０９を備える点で実施例１の駆動回路と異なるが、同期制御手段２０１〜回転位置書き換え手段２０８については第３実施例と同様のため、説明は省略する。
【０１１０】
補正量取得手段２０９は回転位置書き換え手段２０８によってモータの回転位置を書き換えた際に、位相差設定手段２０５に設定されている位相差を補正するための補正量を取得し、取得した補正量を位相差設定手段２０５に出力する。補正量取得手段２０９については図２３を用いてさらに詳しく説明する。
【０１１１】
本実施形態の位相差設定手段２０５は、設定されている位相差に補正量を加算する。これにより、回転位置と駆動波形との間の位相差が補正される。
【０１１２】
リセット機構１２１には一般的に取り付け誤差が発生する。位置検出の精度が例えば図３に示すように１周（１回転）あたり１０ビット精度である場合、その精度内の取り付け誤差に収めないとモータ回転位置にズレが発生する。非同期制御の際は、リセット機構１２１はモータの周回情報を検出するためにのみ用いるため、この誤差は特に問題とならない。また、位置検出信号が矩形波の場合、位置検出精度が低いため、問題とならない程度に取り付け誤差を収めることが比較的容易であるが、位置検出精度が高い場合は、問題とならない程度に取り付け誤差を収めることが難しいことがある。そこで、本実施例では、補正量取得手段２０９によって取得した補正量を用いてこの誤差を補正する。
【０１１３】
図２３は補正量取得手段２０９の内部構成を示したものである。
【０１１４】
補正量取得手段２０９は、モータ回転位置書き換えタイミング出力手段２１０、モータの１周内の位置情報の保持手段２１１、モータの補正量保持手段２１２と加算手段を備える。
【０１１５】
モータ回転位置書き換えタイミング出力手段２１０は、回転位置書き換え手段２０８がモータの回転位置を書き換えたというフラグ情報を出力する手段である。
【０１１６】
モータの１周内の位置情報の保持手段２１１は、位置ＥＮＣ回路１０９によって取得されたモータの回転位置情報のうち、モータが１周のうちどの角度に位置するかを示す１周内の位置情報を保持する。言い換えると、書き換え前のモータ回転位置情報のうち、モータが１周のうちどの角度に位置するかを示す１周内の位置情報を保持する。
【０１１７】
加算手段は、書き換え前のモータの１周内の位置情報から、リセット処理により書き換えられた後のモータの１周内の位置情報を減算し、書き換えられる前のモータの１周内の位置情報と、書き換えられた後のモータの１周内の位置情報の差分を取得する。書き換え前のモータの１周内の位置情報は、モータの１周内の位置情報の保持手段２１１から取得する。書き換え後のモータの１周内の位置情報は、モータ位置取得手段２０４から、モータ位置取得手段２０４が保持しているモータ回転位置情報のうち、モータが１周のうちどの角度に位置するかを示す１周内の位置情報を取得することで取得する。
【０１１８】
モータ補正量保持手段２１２は、回転位置書き換え手段２０８がリセット処理によりモータの回転位置を書き換えたというフラグに応じて、加算手段による加算結果（減算結果）をモータの補正量として保持する。事前にモータの補正量を保持していた場合は、補正量を上書きする。
【０１１９】
このように補正量取得手段２０９により、リセット処理による書き換え前後の、１周内の位置情報の差分が補正量として取得、保持される。
【０１２０】
本実施例におけるモータの駆動シークエンスは、図１９に示したフローチャートと同様であるため異なる点の図１９を用いて説明する。ステップＳ４０１〜４０６は、第３実施例と同様であるため、説明を省略する。
【０１２１】
ステップＳ４０７では、第３実施例と同様に、回転位置書き換え手段２０８によってモータの回転位置情報を基準位置に書き換える処理を行う。先述したようにリセット機構１２１の取り付け誤差や、他にもリセット信号の変化を検出してから停止までのタイムラグ等が原因で、基準位置はわずかにずれてしまう。そのためモータ１周の情報を書き換えてしまうと駆動波形の出力位相が変化してしまうためである。非同期制御中においては、この誤差は常に一定のため補正を行わなくても問題ない。
【０１２２】
続くステップＳ４０８では、第３実施例と同様に同期制御をオンにする。このとき、位相差設定手段２０５が、設定されている位相差に、補正量取得手段２０９で取得したモータの補正量を加算することで、設定されている位相差を補正する。このようにモータの補正量を加算することによって、リセット機構１２１の取り付け誤差があるモータ駆動装置で、駆動制御方法を非同期制御から同期制御に切り替えた場合であっても、同期制御に制御方式を切り替えた直後は駆動波形の出力位相は変化しない。つまり、非同期制御から同期制御への切り替え時でも駆動波形の連続性が保たれるため、スムーズに制御方式を切り替えることができる。
【０１２３】
ステップＳ４０９以降は第３実施例と同様であるため、説明は省略する。
【０１２４】
以上の実施例の構成、処理を実施することにより、同期制御手段によりモータに対して反応遅れの少ない駆動波形生成が可能で、かつ、非同期制御と同期制御を動的に切り替えても、モータの駆動波形の連続性を維持して、駆動装置を実現することができる。
【０１２５】
［変形例］
上述の第３〜５実施例の位置検出器ではＨａｌｌセンサと回転磁石を用いた構成を用いたが、回転位置の検出が十分に高精度に行える構成であれば他のセンサ機構を用いても実施可能である。
【０１２６】
また、上述の第３〜５実施例ではステッピングモータを前提にしたが、ロータ側が永久磁石、ステータ側がコイル・ステータである構成のモータであれば、他のモータを用いても実施可能である。
【０１２７】
また、第４実施例と第５実施例を組み合わることもできる。また、ＡＤ変換周期が十分に短い場合のように、停止精度の低下を考慮する必要がない場合であっても、実施例３の設定されている位相差の補正を実行することにより、モータの駆動波形の連続性を維持してモータを駆動することができる。
【０１２８】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【符号の説明】
【０１２９】
１０２  絞り
１２２  撮像素子
２１１ａ、２１１ｂ、２１１ｃ、２１１ｄ  光電変換部
【図１】
2019088181.tif 000003
【図２】
2019088181.tif 000004
【図３】
2019088181.tif 000005
【図４】
2019088181.tif 000006
【図５】
2019088181.tif 000007
【図６】
2019088181.tif 000008
【図７】
2019088181.tif 000009
【図８】
2019088181.tif 000010
【図９】
2019088181.tif 000011
【図１０】
2019088181.tif 000012
【図１１】
2019088181.tif 000013
【図１２】
2019088181.tif 000014
【図１３】
2019088181.tif 000015
【図１４】
2019088181.tif 000016
【図１５】
2019088181.tif 000017
【図１６】
2019088181.tif 000018
【図１７】
2019088181.tif 000019
【図１８】
2019088181.tif 000020
【図１９】
2019088181.tif 000021
【図２０】
2019088181.tif 000022
【図２１】
2019088181.tif 000023
【図２２】
2019088181.tif 000024
【図２３】
2019088181.tif 000025