図1は、本実施形態の撮影装置(光学機器)のブロック図である。ここで、図1に示す撮影装置は、アクチュエータの一例であるステッピングモータ103をフォーカスユニットに有する交換レンズ100とカメラ本体200を有する一眼レフデジタルカメラとして構成されている。交換レンズ100は、カメラ本体200に設けられたマウント201を介してカメラ本体200に着脱自在である。
なお、撮像装置は、デジタルスチルカメラやデジタルビデオカメラであってもよいし、交換レンズ(レンズ装置)がカメラ本体と一体であってもよい。更に、撮像装置は、一眼レフカメラに限定されず、ミラーレスカメラ、顕微鏡などでもよい。アクチュエータは、ステッピングモータに限定されず、また、プリンタ、スキャナ、コピー機などの他の装置に適用されてもよい。
カメラ本体200に交換レンズ100が装着された際に、交換レンズ100内のレンズCPU102とカメラ本体200内のカメラCPU206とが互いに通信自在に接続される。これによって、レンズCPU102はカメラCPU206の制御に従って動作する。
以下、交換レンズ100とカメラ本体200の本発明に関係する構成について説明する。
交換レンズ100は、フォーカスレンズ101、レンズCPU102、ステッピングモータ103、ホールIC104、モータドライバ105を有する。
フォーカスレンズ(光学素子、被駆動部材)101は、不図示の被写体からの光束を集光して光学像を形成する撮影光学系に含まれる。フォーカスレンズ101は図1に示す矢印の方向(光軸方向)に駆動することで撮影光学系の焦点位置を調整する。なお、図1では、簡単のためフォーカスレンズ101は一つのレンズから構成されているが、複数のレンズからなるレンズユニットによって構成されていてもよい。
ステッピングモータ103は、モータドライバ105から1ステップ毎に入力されるパルス電流に従って所定のステップ角度毎に回転駆動するアクチュエータであって、フォーカスレンズ101を駆動させる可動部に取り付けられる。ステッピングモータ103を駆動することでフォーカスレンズ101を光軸方向に沿って駆動させることができる。なお、本実施形態のステッピングモータ103では2相10極のモータとする。
ホールIC104は、ステッピングモータ103の回転状態を検知するロータリーエンコーダを構成する検出手段である。エンコーダの詳細については後述する。
モータドライバ105は、レンズCPU102からの駆動指示命令を受け、フォーカスレンズ101を駆動するためにパルス電流をステッピングモータ103にステップ単位で印加する。
レンズCPU102は、カメラCPU206からの目標位置、駆動速度などのフォーカスレンズ駆動命令を受け、モータドライバ105に出力し、ステッピングモータ103を駆動する制御手段であり、マイクロコンピュータから構成される。また、レンズCPU102は、ホールIC104の出力信号からステッピングモータ103のフィードバック情報を得て、ステッピングモータ103が駆動命令に従うようにフォーカスレンズ101のクローズドループ制御を行う。
カメラ本体200は、撮像素子202、シャッタ203、表示部204、電源205、カメラCPU206を有する。
撮像素子202は、光電変換素子が配列された受光面を有し、撮影光学系によって受光面上に結像した不図示の被写体の光学像を光電変換し、さらにデジタル信号に変換してカメラCPU206に出力する。
シャッタ203は、撮像素子202の受光面に対して配置され、カメラCPU206の命令に従って撮像素子202の受光面を露出状態もしくは遮光状態とする。撮像素子202の受光面の露出時間を制御することで、撮像素子202における露出量を制御することが可能である。
表示部204は、例えば、カメラ本体200の背面に設けられ、カメラCPU206の制御に従って、撮像素子202を介して得られる画像データや、それに基づく各種の情報を表示する。
電源205は、カメラ本体200のカメラCPU206や、交換レンズ100が装着された際はレンズCPU102などに電源電力を供給する。
カメラCPU206は、カメラ本体200側の各種動作の制御を行う制御手段であり、マイクロコンピュータから構成される。また、カメラCPU206は、撮像素子202から得られたデジタル信号に対する画像処理を含む各種処理も担う。オートフォーカス(AF)時などでフォーカスレンズ101を駆動する必要がある場合に、カメラCPU206はフォーカスレンズ101の目標位置、駆動速度を含む駆動命令をレンズCPU102に出力する。
図2は、本実施形態のフォーカスモータユニットの斜視図である。フォーカスモータユニットは、ステッピングモータ103、ホールIC104、センサマグネット106、回転軸107で構成される。ホールIC104とセンサマグネット106はロータリーエンコーダを構成する。
センサマグネット106は回転軸107に取り付けられ、回転位置に対応するパターン列が形成されている回転体である。回転体の形状は円板など限定されない。本実施形態では、パターン列は磁気パターン列であり、ステッピングモータ103の磁極数と同数の10極で着磁されている。また、ホールIC104は磁気パターン列を磁気的に検出する。即ち、本実施形態では、機械的に設計された位置にホールIC104が取り付けられ、ステッピングモータ103のロータ回転に伴って回転軸107が回転し、回転軸107の軸上のセンサマグネット106も回転する。ホールIC104に近接するセンサマグネット106の回転によってホールIC104が受ける磁束密度が変化し、ホールIC104の出力信号が変化する。なお、ホールIC104は一つICから2種類の交番検知信号を出力する。
但し、検出手段はホールICに限ったものではなく、ホール素子を複数配置するなどして交番磁界を検知してもよい。また、パターン列は複数の光透過スリットから構成され、検出手段は発光素子と受光素子から構成されてその光路が遮断されるかどうかによってパターン列を光学的に検出してもよい。
図3は、フォーカスレンズ101を駆動する電気回路を含む駆動システムのブロック図であり、ステッピングモータ103以外の構成要素はステッピングモータ103の駆動を制御する制御装置として機能することができる。基準位置検出部(基準位置検出手段)108、エンコーダ出力補正部(補正手段)109、駆動速度更新部111、正弦波信号発生部112は制御手段であるレンズCPU102の一部であってもよい。
ステッピングモータ103が回転することでホールIC104が受ける磁束密度が変化し、ホールIC104の出力信号が変化する。ホールIC104の出力信号は基準位置検出部108とエンコーダ出力補正部109に入力される。以後、ホールIC104の出力信号を「エンコーダ出力信号」と称する。エンコーダ出力信号はパルス信号であり、フィードバックの処理はトグルタイミング、つまりホールIC104が受けるセンサマグネット106の交番磁界が切り替わったタイミングで実施される。
基準位置検出部108では、エンコーダ出力信号が基準位置であるか、つまりホールIC104が検知したセンサマグネット106の交番磁界が基準とする磁極であるか否かを判定する。即ち、基準位置検出部108は、ホールIC104の出力に基準位置を検出する。基準位置である場合、エンコーダ出力補正部109に現在のエンコーダ出力信号が基準位置である磁極からのエンコーダ出力信号であることを示す基準位置通達信号を出力する。基準位置検出部108から出力される基準位置通達信号はセンサマグネット106が1回転、つまりステッピングモータ103のロータが1回転する度に出力される。
エンコーダ出力補正部109は、ホールIC104からエンコーダ出力信号、基準位置検出部108から基準位置通達信号を取得する。エンコーダ出力補正部109は、レンズCPU102からの命令によって駆動方向を判別し、取得した基準位置通達信号ないし直前の基準位置通達信号から相対的にセンサマグネット106の磁極位置を算出する。この処理で、現在のエンコーダ出力信号に対応するセンサマグネット106の磁極位置が決定する。
また、エンコーダ出力補正部109は、センサマグネット106の磁極に含まれる誤差を補正するためにメモリ110から対応する補正情報を読み出し、マイクロステップ駆動波形の正弦波テーブルの値を補正する。なお、「磁極に含まれる誤差」とは、2相10極のステッピングモータ103が1極36度で等間隔に着磁されていることを理想的な着磁とし、36度からのずれ量を指す。
特に、エンコーダ出力補正部109は、基準位置検出部108が特定の回転位置に対応する基準位置を検出したときにメモリ110から基準位置に対応する補正情報を取得してホールIC104の出力を補正する。即ち、エンコーダ出力補正部109は、ホールIC104の出力を、メモリ110に記憶されている補正情報を用いて補正する。また、エンコーダ出力補正部109は、特定の回転位置を基準位置としてホールIC104の出力と補正情報と、を対応させている。また、基準位置は後述する非周期的なパターンに対応している。
但し、基準位置を用いなくてもホールIC104の出力と補正情報に類似の特徴があれば両者を対応できる場合がある。この場合は、レンズCPU102は、ホールIC104の出力と補正情報のそれぞれのデータ列の類似性が最も高くなるマッチングを行うことによって両者を対応させる。
チャタリングなどの規格外の外乱によって、エンコーダ出力補正部109が直前に記憶しているセンサマグネット106の磁極とホールIC104が検知したセンサマグネット106の磁極とにずれが生じた場合には誤った補正を行ってしまう恐れがある。しかし、基準位置検出部108が周期的に基準位置を検出しているため、ステッピングモータ103のロータ1回転以内という高分解能で再度検知することができ、基準位置を修正・再記憶することが可能である。
メモリ110は、エンコーダであるセンサマグネット106に含まれる誤差を補正する補正情報を保持する記憶手段である。「補正情報」は、マイクロステップ駆動波形の正弦波テーブルの値である。正弦波テーブルの詳細な説明については正弦波発生部112で後述する。
予めステッピングモータ103をオープンループ制御で定速駆動させ、図5に示すように、エンコーダ出力信号がトグルしたタイミングでの正弦波テーブルの値を取得する。同図は上段から、ステッピングモータ103に印加するマイクロステップ駆動波形、エンコーダ出力信号、エンコーダ出力信号のトグルタイミングによって得られる正弦波パターンの値、及び正弦波パターンの値から算出される補正情報のデータ列である。マイクロステップ駆動波形の横軸は時間、縦軸はPWM出力のデューティ比である。エンコーダ出力信号の横軸は時間、縦軸はホールIC104の出力である。
正弦波テーブルは1周期512の分解能で表現する。センサマグネット106の同相隣接する2磁極間でのパルス間隔は理想的に256の幅を持ち、異相同極の2磁極間でのパルス間隔は理想的に128の幅を持つ。この理想的な幅とのずれがセンサマグネット106の磁極に含まれる誤差であり、メモリ110にはこの誤差を補正する補正情報が保持される。
具体例を図6に示す。横軸は時間である。同図は定速駆動時のステッピングモータ103に印加するマイクロステップ駆動波形とエンコーダ出力信号波形である。波形は上段縦軸が正弦波発生部112より出力されるマイクロステップ駆動波形、中段縦軸がホールIC104より出力されるA相のエンコーダ出力信号波形、下段縦軸がB相の出力信号波形を表わす。
センサマグネット106の同相隣接する2磁極間でのパルス間隔は、A相エンコーダ出力信号波形の時点Xと時点Yで表わされる。時点Xに対応する正弦波テーブルの値は120、時点Yに対応する正弦波テーブルの値は370であり、テーブル幅は370−120=250である。理想的なテーブル幅は256であるので、不足分の6が着磁のずれ量に相当する。
異相同極の2磁極間でのパルス間隔についても時点Xと時点Z間のテーブル幅と理想的なテーブル幅128との差分が着磁のずれ量に相当する。各磁極で正弦波テーブルの値の過不足分をメモリ110に保持しておき、対応する磁極のエンコーダ出力信号が得られる度にメモリ110が保有するテーブル値を補うことでセンサマグネット106の磁極に含まれる誤差を低減する。メモリ110が保有する補正情報のデータ列の取得は、リセット動作時に実施される。リセット動作については後述する。
駆動速度更新部111は、ホールIC104より得られるステッピングモータ103の実駆動速度とカメラCPU206より命令された駆動速度との偏差から、ステッピングモータ103の駆動速度をフィードバック制御する。エンコーダ出力補正部109からステッピングモータ103の駆動速度を算出し、カメラCPU206からの目標速度と差異がある場合、加速ないし減速を実施する。なお、加減速の程度は偏差量、及び目標位置までの距離に依存する。
正弦波信号発生部112は、正弦波1周期に対して512分解能のテーブル値を備え、このテーブル値に対応するPWM値をPWM発生部113へ出力する。正弦波信号発生部112は512個のテーブル各々にPWMのデューティ比を格納している。
図4は、正弦波テーブルの詳細を示す。横軸はテーブル番号で縦軸はPWM出力のデューティ比である。正弦波の0度位相にテーブル0、正弦波90度位相にテーブル128が相当する。テーブル0には50%の値が、テーブル128には100%の値が格納されており、各々のテーブルには位相に応じてPWM出力のデューティ比率の値が格納されている。
PWM発生部113は、正弦波信号発生部112より与えられたPWM値をPWM信号に変換し、モータドライバ105へ出力する。このように、駆動速度更新部111〜PWM発生部113は、補正後の情報に基づいてステッピングモータ103の駆動制御を行う。
モータドライバ105は、PWM信号を増幅してステッピングモータ103へ出力する。A相用コイル114、B相用コイル115はモータドライバから発せられるPWM信号を受けて、後段のステータA+116、ステータA−117、ステータB+118、ステータB−119に対して異なる位相の4種の正弦波電圧を発生させる。
ロータマグネット120は自由に回転できる構造となっており、その周囲に物理角18度毎にステータが設置される。ステータA+116、ステータB+118はコイルに印加された電圧が正弦波形の正領域にあるときにN極磁力を発生し、反対にステータA−117、ステータB−119はコイルに印加された電圧が正弦波形の正領域にあるときにS極磁力を発生する。ロータマグネット120を回転させるために、A相とB相間の出力は90度の位相差を持っており、正転時はB相が90度進んだ波形が出力され、逆転時はA相が90度進んだ波形が出力される。
以上がフォーカスレンズ101を駆動する駆動システムの構成であり、ロータリーエンコーダであるホールIC104、センサマグネット106を用いてクローズドループ制御を実現している。次に、エンコーダに含まれる誤差補正に必要となるエンコーダの基準位置の検出手段について説明する。
メモリ110が保持する補正情報は、2相で20の数値データを至近/無限駆動でそれぞれ有する。ステッピングモータ103の駆動方向から一方の相のエンコーダの磁極位置と1相分の補正情報の関係が定まれば、他相及び逆方向駆動の関係も定まる。エンコーダの磁極位置と補正情報の関係を一意に定めるための一手段として、補正情報のデータ列と駆動中に得られた正弦波テーブルの値のデータ列とのマッチング手段が挙げられる。後述するリセット動作でメモリ110に保存する補正情報を取得するため、補正情報はセンサマグネット106個々によって異なる。そのため、センサマグネット106の着磁に特徴、つまり非周期的なパターンがあれば、補正情報も特徴的なデータ列となるためマッチング手段での位置関係の決定は信頼性の高いものとなる。反対に、着磁に特徴のないセンサマグネット106である場合、位置関係を保証することは難しい。そこで着磁に故意に非周期的なパターンを持たせることによって、マッチング処理を行いやすいセンサマグネット106を得る。
図7(a)は、理想的に10極が等間隔に着磁されているセンサマグネット106とホールIC104の概略平面図である。図7(b)は、図7(a)に示すセンサマグネット106が図中の矢印の方向(時計回り)に定速回転するときのホールIC104の出力信号波形である。ホールIC104はS極N極の磁場が交互に印加される場合に対してHigh/Lowの動作を行う。具体的にはセンサマグネット106のS極がホールIC104に近づき、磁束密度が一定値を超えるとホールIC104の出力信号はHighからLowへ変化する。反対にセンサマグネット106のN極がホールIC104に近づき、磁束密度が一定値まで低下するとホールIC104の出力信号はLowからHighへ変化する。
図7(a)に示すように、センサマグネット106の磁極間隔が理想的に均一で定速駆動であれば、ホールIC104の出力信号は、図7(b)に示すように、等間隔なパルス出力となる。しかし、センサマグネット106の磁極間隔は製造過程上で少なからず誤差が生じるため、図7(b)のような等間隔な波形は得られない。
着磁間隔に誤差を含んだままフィードバックしてしまうとステッピングモータ103の駆動速度が変動していると誤認識してしまうことから、定速駆動でも定常状態に落ち着かず、高感度な駆動制御を行うことができない。
本実施形態は、このようなエンコーダに含まれる製造上の誤差をソフトウェアで低減する。速度制御で扱う値はホールIC104の出力信号波形がトグルした瞬間のマイクロステップ駆動の正弦波テーブルの値である。そのため、ホールIC104の出力信号のトグルするタイミングに対応するマイクロステップ駆動の正弦波テーブルの値から誤差量を算出し、補正情報としてメモリ110に記憶する。前述した通り理想的な磁極間隔は同相隣接極ならば正弦波180度、異相間同極ならば正弦波90度の位相差であるため、この関係とホールIC104の実際の出力信号波形から誤差量を算出できる。
以上から、センサマグネット106の磁極に含まれる誤差を測定し、補正情報を取得することができるが、補正情報と対応するセンサマグネット106の磁極を常に監視する必要がある。
監視手段の一例として、センサの任意の位置へのマーカ設置が考えられる。マーカを設置し、検知することで基準となる位置を把握できるが、新規部材としてマーカが増えたことによって、コスト増加、取付け誤差要素の増加などの理由から好適とはいえない。また前述したように、マーカレスでのマッチング手段でもセンサマグネット106が特徴的な着磁状態でない限り、基準位置の信頼性を確保できない。そこで、本実施形態は、センサマグネット106の任意の磁極間隔を調節することによって、新規部材を要さずに基準位置を設けている。
図8(a)は、本実施形態のセンサマグネット106とホールIC104の概略平面図である。センサマグネット106の10極の各磁極は(1)〜(10)で表わされている。センサマグネット106では、N極とS極が交互に着磁されている。本実施形態は、磁極(2)、(3)の磁極間隔を不均一(中心角度を不均一)にし、磁極(1)、(4)〜(10)の磁極間隔を等間隔(中心角度は1極36度)にしている。図8(b)は、図8(a)に示すセンサマグネット106が図中の矢印の方向(時計回り)に定速回転するときのホールIC104の出力信号波形である。
つまり、本実施形態のセンサマグネット106の位置検出用のパターン列は周期的なパターン(4)、(6)、(8)、(10)と、非周期的なパターン(2)と、を含む。非周期的なパターンに対するホールIC104の出力は、周期的なパターンに対するホールIC104の出力のパルス幅、周期、振幅およびデューティ比の少なくとも一つが異なる。本実施例では、パターン列は磁気強度または磁気間隔を調節することによって形成されるが、パターン列が光透過スリットから構成される場合には光透過スリットの透過光量または透過間隔を調整することによって形成されてもよい。
図8(b)に示す(1)〜(10)はホールIC104の出力信号波形に対応するセンサマグネット106の磁極位置を表わす。磁極間隔が狭く設計された磁極(2)のホールIC104の出力信号波形のトグル間隔は他の磁極と比べると狭くなっており、反対に磁極間隔が広く設計された磁極(3)のホールIC104の出力信号波形のトグル間隔は他の磁極と比べると広くなっている。
磁極(2)、(3)のトグル間隔は他の磁極と比べて特徴的であるから閾値を設けることで簡単に判別することができる。本実施形態ではトグル間隔が狭くなる磁極(2)を基準位置とする。これは急な速度変動によって他の磁極と判別できなくなる問題を防ぐためである。トグル間隔の広い磁極(3)を基準位置とすると、急減速した場合の磁極(1)、(2)、(4)〜(10)と混在してしまうおそれが生じる。
不規則なパターンとして設ける磁極間隔の条件としては、製造上で生じる磁極間隔の誤差よりもずれ量が大きい、運用する最高速度で出力される均一着磁間隔のトグル間隔と比較してトグル間隔が狭隘となるなどが挙げられる。
本実施形態は、磁極間隔が不規則な1つの磁極から基準位置検出を行ったが、磁気強度の強弱を変更したり、複数の磁極パターンから基準位置を判定したりしてもよい。またセンサマグネット106のパターン列は本実施形態に捉われない。10極のマグネットに対して例えば、1極を18度で着磁し、隣接する2極を45度、残り7極を36度で設計してもよいし、非周期パターンとなる狭隘な極を2箇所設けてもよい。
図9は、交換レンズ100のリセット動作時に補正情報を取得する処理を示すフローチャートである。同図において、「S」は「ステップ」の略であり、図9に示すフローチャートはコンピュータに各ステップの機能を実現させるためのプログラムとして具現化が可能である。図9に示す各ステップは、特に断らない限りレンズCPU102によって実行される。これは図10でも同様である。
S1001でカメラCPU206からリセット命令が発行されると交換レンズ100でリセット動作が開始される。S1002では、カメラCPU206より発行されたリセット命令をレンズCPU102で受け取り、レンズCPU102から交換レンズ100内の各種駆動系にリセット動作命令が発行される。S1003では、レンズCPU102から発行された駆動命令により、フォーカスレンズ101を至近端に移動させるためにステッピングモータ103をあらかじめ定められた回転速度で駆動する。
S1004では、フォーカスレンズ101が至近端に到達したかを判定し、未達の場合はS1005へ移行する。S1005では基準位置を検出したかの判定を行う。ホールIC104から出力されるエンコーダ出力信号のトグルタイミングを基準位置検出部108で判定し、基準位置となるパターンが発生した場合にS1006へ移行し、それ以外ではS1004へ移行する。S1006では、検出された基準位置の磁極を記憶し、これ以降の処理では基準位置からの相対的な磁極位置を常に監視することで現在の磁極位置を把握する。
ステッピングモータ103を駆動し、フォーカスレンズ101が至近端に達するとS1007へ移行する。なお、S1003の時点でフォーカスレンズ101が至近端に位置した場合やホールIC104が基準位置となる磁極を検知する前にフォーカスレンズ101が至近端に到達した場合が考えられる。S1006の基準位置の磁極を記憶することができないが、S1007以降の駆動で図9の処理を行いつつ、基準位置を検出することは可能である。
S1007では、至近端にあるフォーカスレンズ101をステッピングモータ103によってあらかじめ定められた回転速度で無限方向へ駆動する。S1008では、フォーカスレンズが無限端に到達したかを判定し、未達の場合はS1009において、ステッピングモータ103の回転速度が安定しているかを判定する。具体的には、ホールIC104のエンコーダ出力信号のパルス幅から駆動速度を算出し、ステッピングモータ103に与えた駆動命令の速度に漸近しているかの判定を行う。これはステッピングモータ103の動作開始直後はロータ回転が安定せず不安定な回転となり正確な補正情報が取得できない場合があるための処理である。
ステッピングモータ103の回転速度が安定していれば、S1010において、エンコーダ出力信号から対応する磁極の補正情報を取得し、メモリ110に一時的に記憶する。なお、ここで記憶する補正情報はフォーカスレンズ101の無限方向駆動時の補正情報である。
無限方向駆動時の補正情報取得後、S1011において基準位置の磁極がずれていないかの判定が行われる。ステッピングモータ103のロータ1周期毎に基準位置が検出されるが、検出された基準位置とS1006で記憶され以降監視している基準位置とに差異がないかを判定する。
差異がある場合、直前のロータ1周期で取得した補正情報に誤りが含まれる可能性があるため、S1012において、S1010で取得した直前のロータ1周期分の補正情報をメモリ110から破棄する。同時に基準位置を再記憶し、改めて基準位置からの相対的な磁極位置を常に監視することで現在の磁極位置を把握する。S1009〜S1012の処理はフォーカスレンズ101が無限端に到達するまで続けられる。フォーカスレンズ101が無限端に到達すると、ステッピングモータ103は一旦停止し、S1013へ移行する。
S1013では、無限端にあるフォーカスレンズ101をステッピングモータ103によってあらかじめ定められた回転速度で至近方向へ駆動する。S1014では、フォーカスレンズ101が至近端に到達したかを判定し、未達の場合はS1015へ移行する。
S1015では、S1009同様に、ステッピングモータ103の回転速度が安定しているかを判定する。回転速度が安定している場合、S1016へ移行し、フォーカスレンズ101が至近方向駆動時の補正情報を取得し、メモリ110に一時的に記憶する。
S1017では基準位置の磁極がずれていないかの判定を行う。ステッピングモータ103のロータ1周期毎に検出される基準位置が、S1006で記憶され以降監視している基準位置と差異があった場合、S1018へ移行し、直前のロータ1周期分の補正情報を破棄する。同時に基準位置を再記憶し、改めて基準位置からの相対的な磁極位置を常に監視することで現在位置を把握する。
S1015〜S1018の処理はフォーカスレンズ101が至近端に到達するまで続けられる。フォーカスレンズ101が至近端に到達すると、ステッピングモータ103は一旦停止し、S1019へ移行する。
S1019では再度フォーカスレンズ103を駆動し、フォーカスレンズ101をリセット位置まで駆動させる。最後に、S1020では、S1010、S1016で取得してきた補正情報を平均化して各磁極の補正情報を決定する。補正情報は駆動方向別に磁極毎に所有するのでデータ数は40個となる。エンコーダ出力信号にはノイズが含まれるため、補正情報は各磁極複数回取得し、各磁極で平均値を取得することでノイズによる影響を低減する。
本実施形態ではワウ・フラッタ―の影響を考慮して平均化処理を採用したが、外れ値などの懸念から複数回取得した補正情報の中央値をエンコーダ出力補正部109で利用する補正情報として利用する手段でもよい。また、本実施形態では、磁気検出方式を採用したため、センサマグネット106の温度特性を考慮してリセット動作時に補正情報の取得を行った。
以上のリセット動作によって駆動中にエンコーダ出力信号に適応する補正情報が得られ、フォーカスレンズ101がリセット位置に停止している現在のセンサマグネット106の磁極位置についても把握できている。このため、駆動開始タイミングからエンコーダ出力信号に対して補正を与えることが可能である。以下、カメラCPU206より駆動命令が発行された際の交換レンズ100による処理を、図10のフローチャートを用いて詳細に説明する。
まず、S2001では、ユーザからの操作に従ってカメラCPU206が各種動作を決定し、交換レンズ100側にも操作に応じた駆動命令を発行する。S2002では、カメラCPU206より発行された駆動命令をレンズCPU102で受け取り、レンズCPU102からフォーカス駆動系を含む各種駆動系に命令を発行する。
S2003では、レンズCPU102からの駆動命令を基にステッピングモータ103を駆動させ、フォーカスレンズ101を目標位置に移動させる。S2004では、フォーカスレンズ101が目標位置に到達したかを判定する。未達の場合、S2005において、基準位置検出部108にてエンコーダ出力信号が基準位置による信号かの判定を行う。
エンコーダ出力信号が基準位置であった場合、S2006において、現在記憶されている基準位置と検出された基準位置とが一致するかの判定を行う。記憶されている基準位置と検出された基準位置が一致しない場合、S2007において、現在の磁極を基準位置として再設定する。
S2007の後、S2005が偽(基準位置である磁極からのエンコーダ出力信号でない)、またはS2006が偽(現在記憶されている基準位置と検出された基準位置が一致)の場合、S2008において、フォーカスレンズ101の駆動方向の判定を行う。レンズCPU102より発行された駆動命令からフォーカスレンズ101の駆動方向を判別することで、センサマグネット106の回転方向を求める。
この情報を基に、S2009では現在の磁極位置を算出する。S2010では、エンコーダ出力信号のトグルタイミングにおけるマイクロステップ駆動の正弦波テーブルの値を取得する。S2010までで現在の正弦波テーブルの値、検出された現在の磁極が得られたので、S2011では現在の磁極位置に対応する補正情報をメモリ110から取得し、正弦波テーブルの値に適応することで補正した正弦波テーブルの値を取得する。
S2012では、補正を施した正弦波テーブルの値と、直前の補正を施した正弦波テーブルの値との時間差からステッピングモータ103の実駆動速度を算出する。S2013では、算出した実駆動速度とレンズCPU102が命令した駆動速度から速度偏差を算出、さらにフォーカスレンズ101の現在位置とレンズCPU102が命令した目標位置までの距離から、ステッピングモータ103の駆動速度を決定する。目標位置までの距離が長い間は速度偏差が零になるように駆動速度が調整され、目標位置までの距離が短くなってくると停止精度を得るためにステッピングモータ103を減速駆動して目標位置を目指す。フォーカスレンズ101が目標位置に到達するまでS2004〜S2013の処理を繰り返し、目標位置に到達するとステッピングモータ103の駆動を停止する。
以上、本実施形態について説明したが、本発明は本実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。本実施形態では、補正情報は、リセット時に取得されるが電源投入時にも取得されてもよい。