(57)【特許請求の範囲】
【請求項１】
ＰＤＭ方式により、設定された目標周波数を有するデジタル信号としての出力信号を、それぞれ前記目標周波数とは異なり、かつ互いに異なる周波数を有する複数の信号を用いて生成する信号生成手段と、
前記出力信号に混在する信号成分の周波数であって、前記目標周波数および前記複数の信号の周波数とは異なる混在周波数を推定する推定手段と、
前記混在周波数が特定周波数帯域に含まれる場合に、前記目標周波数または前記複数の信号の周波数のうち少なくとも１つをシフトする周波数シフト手段とを有することを特徴とする周波数制御装置。
【請求項２】
前記特定周波数帯域は、人間の可聴帯域であり、前記目標周波数よりも低い周波数帯域であることを特徴とする請求項１に記載の周波数制御装置。
【請求項３】
前記信号生成手段は、
カウンタ下限値からカウンタ上限値までの間で所定周期でカウンタ値を加算値ずつ増加させるカウンタ手段と、
前記カウンタ値が前記カウンタ下限値と前記カウンタ上限値との間の所定値より大きいか小さいかに応じて前記出力信号のＨｉｇｈとＬｏｗを切り替えるコンペアマッチ手段とを用いるアダー方式で前記出力信号を生成することを特徴とする請求項１または２に記載の周波数制御装置。
【請求項４】
前記推定手段は、前記カウンタ上限値と前記加算値とを用いた演算により、複数の前記混在周波数のうち少なくとも１つの混在周波数よりも低い低域周波数を推定することを特徴とする請求項３に記載の周波数制御装置。
【請求項５】
前記推定手段は、複数の前記混在周波数のうち少なくとも１つの混在周波数よりも低い低域周波数を推定し、
前記周波数シフト手段は、前記低域周波数が前記特定周波数帯域に含まれる場合に前記複数の信号のうち少なくとも１つの信号の周波数をシフトさせ、前記少なくとも１つの信号の周波数のシフト量を、前記低域周波数と前記特定周波数帯域の最高周波数とを用いて算出することを特徴とする請求項１から４のいずれか一項に記載の周波数制御装置。
【請求項６】
電気−機械エネルギー変換素子に周波信号を印加することで振動体に振動を励起し、前記振動体と該振動体に接触する接触体とを相対移動させる振動型モータを駆動するモータ駆動装置であって、
前記周波信号を請求項１から５のいずれか一項に記載の周波数制御装置を用いて生成することを特徴とするモータ駆動装置。
【請求項７】
前記周波信号として互いに位相が異なる複数の周波信号を生成し、
前記複数の周波信号の周波数を一定として複数の周波信号の位相差を変化させる位相差制御と、前記位相差を一定として周波数を変化させる周波数制御とを切り替えて前記振動型モータの駆動を行い、
前記周波数シフト手段は、前記位相差制御において前記目標周波数をシフトすることを特徴とする請求項６に記載のモータ駆動装置。
【請求項８】
前記周波数シフト手段は、前記混在周波数が前記特定周波数帯域に含まれる場合に該目標周波数をシフトし、
前記特定周波数帯域は、前記振動型モータの共振周波数を含むことを特徴とする請求項６または７に記載のモータ駆動装置。
【請求項９】
前記振動型モータと、
請求項６から８のいずれか一項に記載のモータ駆動装置と、
前記振動型モータにより駆動される光学素子とを有することを特徴とする光学機器。
【請求項１０】
ＰＤM方式により、設定された目標周波数を有するデジタル信号としての出力信号を、それぞれ前記目標周波数とは異なり、かつ互いに異なる周波数を有する複数の信号を用いて生成する周波数制御装置のコンピュータに、
前記出力信号に混在する信号成分の周波数であって、前記目標周波数および前記複数の信号の周波数とは異なる混在周波数を推定させ、
前記混在周波数が特定周波数帯域に含まれるか否かを判断させ、
前記混在周波数が特定周波数帯域に含まれる場合に、前記目標周波数または前記複数の信号の周波数のうち少なくとも１つをシフトさせることを特徴とする周波数制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＤＭ方式を用いた周波数制御装置およびこれを用いて振動型モータを駆動するモータ駆動装置に関する。
【背景技術】
【０００２】
パルス変調方式の１つとして、キャリア周期の周波数を変調するＰＦＭ（Pulse Frequency Modulation）方式がある。そして、ＰＦＭ方式には、周波数を無段階に変化することができる方式と、使用する周波数クロックを間引いて擬似的に周波数を変化させる方式とがある。前者の方式としては、例えばＶＣＯ（Voltage Controlled Oscillator）方式があり、入力電圧に対して比較的細かい周波数分解能を得ることができる。また、後者の方式としては、例えば入力クロックを一定に固定して単位時間当たりの平均周波数を変化させることで周波数分解能を上げるＰＤＭ（Pulse Density Modulation）方式がある。アナログ回路で実現されるＶＣＯ方式よりもデジタル回路で実現可能なＰＤＭ方式の方がコスト面では有利である。
【０００３】
ただし、ＰＤＭ方式では所定時間ごとに周波数を変化させて時間軸で平均化することで高い周波数分解能を得るため、所定時間間隔で観測すると、出力される周波数は一定にならず、ばらつきが生じる。このため、ＰＤＭ方式（ＰＤＭ制御）により生成された出力信号を入力とする駆動系の制御を行う場合に、該ＰＤＭ制御において生じる周波数のばらつきは、駆動系の速度むらや可聴帯域の信号発生の要因となる。
【０００４】
特許文献１には、振動型モータに与える駆動周波数の分解能を、アダー器を用いたＰＤＭ制御によって高分解能化し、またアダー器を用いたＰＤＭ制御による周波数のばらつきにランダムノイズを加えてモータの制御を行うモータ駆動装置が開示されている。このモータ制御装置では、ランダムノイズを加えて周波数を分散させることで、特定の設定発振周波数に対するスペクトルが高い周波数成分の発生を回避し、これにより可聴帯域にピーキーな周波数スペクトルの発生を回避する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８３８５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１にて開示されたモータ駆動装置では、駆動周波数とは異なる周期的に発生する周波数成分に対してランダムノイズを加えることでスペクトル強度を分散させているだけに留まる。このため、周波数スペクトルの強度を分散させ、可聴帯域におけるスペクトル強度が高い周波数成分の発生を回避することは可能であるが、可聴帯域の信号自体は残存している。したがって、モータを搭載した装置の共振等によって可聴帯域の信号（異音）が増幅されるおそれがある。また、ランダムノイズによって所定時間間隔における周波数のばらつきが大きくなり、駆動系の速度むらを増大させるおそれがある。
【０００７】
本発明では、不必要な周波数成分が特定の帯域に含まれないようにＰＤＭ方式による周波数制御を行うことが可能な周波数制御装置およびこれを用いたモータ駆動装置等を提供する。
【課題を解決するための手段】
【０００８】
本発明の一側面としての周波数制御装置および周波数制御プログラムにより動作するコンピュータは、ＰＤＭ方式により、設定された目標周波数を有するデジタル信号としての出力信号を、それぞれ目標周波数とは異なり、かつ互いに異なる周波数を有する複数の信号を用いて生成し、出力信号に混在する信号成分の周波数であって目標周波数および上記複数の信号の周波数とは異なる混在周波数を推定する。そして、混在周波数が特定周波数帯域に含まれる場合に、目標周波数または上記複数の信号の周波数のうち少なくとも１つをシフトする。
【０００９】
なお、振動型モータに印加する周波信号を周波数制御装置を用いて生成するモータ駆動装置および振動型モータと該モータ駆動装置と振動型モータにより駆動される光学素子とを有する光学機器も、本発明の他の一側面を構成する。
【発明の効果】
【００１０】
本発明によれば、ＰＤＭ方式による周波数制御において発生する望ましくない混在周波数を推定し、該混在周波数が特定の帯域に含まれないようにする周波数制御装置を実現することができる。そして、この周波数制御装置をモータ駆動装置や撮像装置に搭載することで、異音や速度むら等の発生を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例１である振動型モータ駆動装置の構成を示すブロック図。
【図２】実施例１におけるアダー方式でのＰＤＭ制御を行う発振部の構成を示すブロック図。
【図３】実施例１におけるＰＤＭ制御におけるカウンタによるカウント値の変化を説明する図。
【図４】実施例１である振動型モータ駆動回路のＰＤＭ制御におけるカウンタの挙動とパルス出力との関係を示す図。
【図５】実施例１の振動型モータ駆動装置により一定周波数で駆動する際の処理を示すフローチャート。
【図６】設定発振周波数に対して実際に発生する変調周波数と推定変調周波数との関係を示す図。
【図７】本発明の実施例２である撮像装置のＡＦシステムの構成を示すブロック図。
【図８】実施例２におけるフォーカスレンズを駆動する際の処理を示すフローチャート。
【図９】実施例２における設定発振周波数と第１推定変調周波数および第２推定変調周波数との関係を示す図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１３】
図１は、本発明の実施例１である周波数制御装置を含む振動型モータ駆動装置の構成を示す。図１において、振動型モータは、振動体１７０、電気−機械エネルギー変換素子としての圧電素子１８０および接触体としての移動体１６０により構成されている。振動型モータ駆動装置は、マイクロコンピュータ（以下、ＣＰＵという）１２０、Ａモード増幅回路１３０、Ｂモード増幅回路１４０、発振部１００、推定部（推定手段および周波数シフト手段）１１０および位置検出器１５０により構成されている。ＣＰＵ１２０、発振部１００および推定部１１０により周波数制御装置が構成される。また、ＣＰＵ１２０および発振部１００により信号生成手段が構成され、推定部１１０により推定手段および周波数シフト手段が構成される。なお、ＣＰＵ１２０、発振部１００および推定部１１０は、単体または別々のコンピュータにより構成されている。
【００１４】
振動型モータにおいて、互いに位相差を有する２相の周波信号（駆動信号）が印加された圧電素子１８０は高調波振動を発生する。振動体１７０は、圧電素子１８０に接合された弾性体であり、圧電素子１８０の振動によって２つの振動モード（ＡモードおよびＢモード）の曲げ振動が励起される。Ａモードは振動体１７０の長辺方向における２次屈曲振動モードであり、Ｂモードは振動体１７０の短辺方向における１次屈曲振動モードである。ＡおよびＢモードの振動に時間的な位相差を与えることで振動体１７０の表面に楕円運動を生じさせることができる。移動体１６０は、振動体１７０に加圧状態で接触しており、振動体１７０との摩擦によって振動体１７０に対して移動する。このようにして、振動体１７０と移動体１６０とが相対移動する。
【００１５】
ＣＰＵ１２０は、振動型モータ駆動装置の全体の制御を司る。ＣＰＵ１２０は、出力パルスの周波数として外部から設定（指定）された発振周波数である設定発振周波数（目標周波数）ＦＲＥＱを示す信号を出力する。この設定発振周波数ＦＲＥＱは、推定部１１０で後述する周波数シフト処理を経た設定発振周波数ＦＲＥＱ′として発振部１００に出力される。また、ＣＰＵ１２０は、ＡモードおよびＢモードの位相差として外部から設定された位相差である設定位相差ＰＨＡＳＥを示す信号を発振部１００に出力する。さらに、ＣＰＵ１２０は、パルスのデューティ比として外部から設定されたデューティ比である設定デューティ比ＤＵＴＹを示す信号と、発振部１００の出力許可ＥＮＡＢＬＥを示す信号とを発振部１００に出力する。発振部１００は、これらＦＲＥＱ′，ＰＨＡＳＥ，ＤＵＴＹ，ＥＮＡＢＬＥに応じて、振動型モータをＡおよびＢモードで駆動する出力信号を発生する発振動作を行う。
【００１６】
発振部１００には、所定ビット数（本実施例では３０ビットであり、カウンタ最大値をＣＮＴmaxとすると、ＣＮＴmax＝２３０−１）のカウンタと、現在のカウンタ値が閾値カウント値以上か否かを判断する比較器（コンペアマッチ手段）とが設けられている。
【００１７】
Ａモード増幅回路１３０は、Ａモードの駆動信号を増幅し、インダクタンス素子を介して振動型モータに印加する。Ｂモード増幅回路１４０は、Ｂモードの駆動信号を増幅し、同様にインダクタンス素子を介して振動型モータに印加する。
【００１８】
位置検出器１５０は、移動体１６０の移動量または位置を検出し、検出結果をＣＰＵ１２０に出力する。ＣＰＵ１２０は、位置検出器１５０から得られる位置情報と該位置情報から算出される速度情報とを用いて振動型モータの駆動を制御する。
【００１９】
なお、本実施例では２つの振動モードで振動する振動体１７０に２相の駆動信号を供給する場合について説明するが、本発明の実施例はこれに限定されるものではない。
【００２０】
次に、図２を用いて、本実施例におけるアダー器を用いたＰＤＭ方式による信号生成（以下、アダー方式のＰＤＭ制御または単にＰＤＭ制御という）の原理について説明する。また、駆動信号には、その周波数である駆動周波数とは異なる混在周波数である変調周波数の信号成分が混在する（以下、「変調周波数が発生する」という）が、その原因についても説明する。本実施例では、設定発振周波数ＦＲＥＱではＰＤＭ制御によって特定周波数帯域としての禁止周波数帯域に変調周波数が発生することを回避するため、設定発振周波数を変更、すなわちシフトする周波数シフト処理を行う。この周波数シフト処理については後に詳しく説明するが、周波数シフト処理を受けた設定発振周波数を、以下の説明では、シフト後の設定発振周波数という。
【００２１】
図２には、発振部１００の構成を示している。発振部１００は、アダー器（加算器）１０１、Ａモード比較器１０２、Ｂモード比較器１０３、Ａモード増幅器１０４およびＢモード増幅器１０５を含む。
【００２２】
アダー器１０１は、シフト後の設定発振周波数ＦＲＥＱ′にて、後述する加算値をクロック周期で加算するものであり、カウンタを内蔵している。
【００２３】
Ａモード比較器１０２は、アダー器１０１のカウンタ値とＤＵＴＹによって設定されるコンペア値とを比較し、その比較結果に応じてパルス状のデジタル信号としての出力信号（以下、Ａモード出力パルスという）を生成する。Ａモード比較器１０２は、外部から設定されるＤＵＴＹの設定値に応じてパルス幅、つまりは出力信号の立上りタイミングを設定できるように構成されている。
【００２４】
Ｂモード比較器１０３は、アダー器１０１のカウンタ値とＤＵＴＹおよびＰＨＡＳＥによって設定されるコンペア値とを比較し、その比較結果に応じてパルス状のデジタル信号としての出力信号（以下、Ｂモード出力パルスという）を生成する。Ｂモード比較器１０３も、Ａモード比較器１０２と同様に、外部から設定されるＤＵＴＹの設定値に応じてパルス幅（出力信号の立上りタイミング）を設定できるように構成されている。また、Ｂモード比較器１０３は、Ａモード出力パルスに対してＢモード出力パルスがＨｉｇｈ／Ｌｏｗになるカウント値をＰＨＡＳＥによって設定される。
【００２５】
Ａモード増幅器１０４およびＢモード増幅器１０５はそれぞれ、Ａモード比較器１０２およびＢモード比較器１０３からのＡモード出力パルスおよびＢモード出力パルスを増幅して出力する。
【００２６】
次に、アダー方式のＰＤＭ制御において出力されるパルスの所定周期内における周波数にばらつきが発生する原因について説明する。
【００２７】
図３は、設定されたクロック周期ごとにある加算値をカウンタに加算していったときのカウンタ値の軌跡を黒点で描いたグラフである。図３において、縦軸はアダー器１０１のカウント値を、横軸は時間を表す。加算値ＣＮＴaddは、アダー器１０１に入力されるシフト後の設定発振周波数ＦＲＥＱ′［Ｈｚ］、クロック周波数ＣＬＫ［Ｈｚ］およびカウンタ上限値ＣＮＴmaxを用いると、
ＣＮＴadd＝ＦＲＥＱ′×（ＣＮＴmax＋１）／ＣＬＫ
で求めることができる。
【００２８】
カウンタ下限値からクロック周期ごとに加算値ＣＮＴaddの加算を繰り返していくと、あるタイミングでカウンタはカウンタ上限値を超えるオーバーフローを迎える。このときカウンタ値は０に戻り、オーバーフロー時の余剰値をカウンタ値に加算した状態から再度クロック周期ごとに加算値ＣＮＴaddを加算していく。従って、ＣＮＴaddが一定であれば、図３のように時間変化におけるカウンタ値は傾きが一定の三角波の軌跡を描く。
【００２９】
カウント値がカウンタ下限値からカウンタ上限値（実際にはその近傍）に達するまでの期間をカウンタ周期と定義すると、オーバーフローが発生することでカウンタ周期ごとに初期値（オーバーフロー時の余剰値）が変化する。初期値がある値（カウンタ周期間隔における余剰値の変化量）よりも小さくなると、同カウンタ周期内におけるＣＮＴaddの加算回数は１回増加する。
【００３０】
加算回数が１回増加することで、出力されるパルス周期が１／ＣＬＫ［ｓｅｃ］分長くなる。これがアダー方式のＰＤＭ制御における周波数ばらつきの原因である。したがって、シフト後の設定発振周波数ＦＲＥＱ′よりも高周波は発生しない。また、変調周波数はカウンタのオーバーフロー時の余剰値の大きさ（厳密にはカウンタ周期間隔における余剰値の変化量）に依存するため、余剰値が大きいほど高周波成分が発生しやすい。変調周波数の最大値は、設定発振周波数／２となり、また余剰値が０、つまりは（ＣＮＴmax＋１）をＣＮＴaddで割り切ることができれば変調周波数は発生しない。
【００３１】
図３に示すように、カウンタ周期の１周期目では合計Ｎ＋１回のＣＮＴaddの加算が行われ、Ｎ＋２回目の加算でカウンタがオーバーフローとなる。カウンタ周期２の周期目では１周期目のオーバーフロー余剰値Ｓｕｒｐｌｕｓ１を初期値としてカウンタの累積が開始され、Ｎ回のＣＮＴaddの加算が行われ、Ｎ＋１回目の加算でカウンタがオーバーフローとなる。３周期目ではＮ＋１回、４周期目ではＮ回と、カウンタ周期によってＣＮＴaddの加算回数が異なる。周期によって加算回数が異なることがＰＤＭ制御の特徴でもあるが、一方でカウンタ周期による加算回数の変化が発生する頻度によってはユーザの可聴帯域や駆動系の共振帯域と変調周波数とが重なってしまい、制御上もしくは品質上で悪影響を及ぼす可能性がある。
【００３２】
例えば、クロック周波数ＣＬＫ＝４０ＭＨｚ、カウンタ上限値ＣＮＴmax＝２３０、シフト後の設定発振周波数ＦＲＥＱ′＝７０ｋＨｚとすると、加算値ＣＮＴadd＝１８７９０４８．１９２となる。アダー器１０１が浮動小数点を扱わない場合は少数が切り捨てられることで、ＣＮＴadd＝１８７９０４８として表現される。この値がクロック周期ごとにカウンタに加算されていき、５７２クロック周期目でカウンタ上限値ＣＮＴmaxを超過する。
【００３３】
次のカウンタ周期では、初期値を１０７３６３１として、同様にクロック周期ごとにＣＮＴaddの加算が行われる。カウンタ周期の２周期目では、５７１クロック周期目でカウンタ上限値ＣＮＴmaxを超過する。以後のカウンタ周期では、５７２，５７１，５７２，５７１，５７２，５７１，５７１，５７２，・・・というようなクロック周期でカウンタ上限値ＣＮＴmaxを超過する。
【００３４】
５７２のクロック周期に対応する周波数（第１の周波数）は６９．３００６９９３ｋＨｚであり、５７１のクロック周期に対応する周波数（第２の周波数）は７０．０５２５３９４ｋＨｚである。発振部１００は、これら２つの周波数の出現比率を調整することによってシフト後の設定発振周波数ＦＲＥＱ′である７０ｋＨｚを実現する。この例では、約３５ｋＨｚと約１０ｋＨｚとに変調周波数が発生する。これは各カウンタ周期において何クロック目でカウンタのオーバーフローが発生するかについて再帰的に演算を繰り返す、もしくはパルス出力に対して周波数解析を行うことで求めることは可能である。但し、演算コストが高いため、小型マイコン等の演算能力が高くない演算処理装置では処理負荷が大きい。そこで、本実施例では、変調周波数を推定する演算を行うことで演算コストを抑え、かつ所定帯域の変調周波数の発生を回避するＰＤＭ制御を実現する。
【００３５】
図４を用いて、図２に示した構成の発振部１００から２相の出力信号（ＡモードおよびＢモード出力信号）が得られる仕組みについて説明する。図４の上段には、図３と同様に、縦軸がアダー器１０１のカウント値を示し、横軸が時間を示し、設定されたクロック周期ごとにある値をカウンタに加算していった軌跡を黒点で描いたグラフを示している。また、下段には、上から順にＡモード出力パルスとＢモード出力パルスを示す。
【００３６】
ＤＵＴＹは、パルス出力のＨｉｇｈ区間を０〜１００％によって表され、その設定値に応じてカウンタ値×（１００−ＤＵＴＹ）の値がコンペア値（所定値）として設定されてＡモード比較器１０２にてコンペアマッチが行われる。コンペア値は、カウンタ下限値とカウンタ上限値との間の値である。カウンタ値がコンペア値よりも大きくなったタイミングでＡモード出力パルスはＨｉｇｈとなり、カウンタがオーバーフローして次のカウンタ周期に移るまでの間はＨｉｇｈを維持する。カウンタが次のカウンタ周期に移ってからカウンタ値がコンペア値よりも小さい間はＡモード出力パルスはＬｏｗとなる。
【００３７】
ＢモードについてはＡモードと同等のＤＵＴＹが設定されるため、ＨｉｇｈおよびＬｏｗのそれぞれの区間長は基本的に同一となる（ただし、厳密にはＰＤＭ制御の周波数ばらつきと同じ原因で完全な同一ではない）。さらに、ＰＨＡＳＥの設定値によって、Ｂモード出力パルスのＡモード出力パルスに対する位相差が設定される。例えば、ＰＨＡＳＥ＝９０ｄｅｇの場合は、カウンタ周期で３６０ｄｅｇであるので、Ａモード比較器１０２で設定されるコンペア値に対してＣＮＴmax／４を加算した値がＢモード比較器１０３でのコンペア値となる。Ｂモード比較器１０３はさらに立下りタイミングのコンペア値についても設定される。
【００３８】
カウンタ上限値と加算値との関係で余剰値が発生すると、変調周波数が発生することを図３にて述べた。カウンタ上限値をＡモード比較器１０２およびＢモード比較器１０３にて設定されるそれぞれのコンペア値に換言しても、同様の事象が発生する。本実施例では、デューティ比や位相差設定によって発生する変調周波数に対しても適用可能である。
【００３９】
本実施例の振動型モータ駆動装置の駆動対象である振動型モータは、人間の可聴帯域に対して高周波の発振周波数帯域を使用して駆動される。また、前述したようにＰＤＭ制御にて発生する変調周波数は、設定発振周波数よりも低い周波数帯域でしか発生しない。
【００４０】
以上の前提条件に基づいて、本実施例では禁止周波数帯域（特定周波数帯域）を人間の可聴帯域である２０Ｈｚ〜２０ｋＨｚとし、ＰＤＭ制御によって生じる複数の変調周波数のうちの１つを推定する。本実施例では、複数の変調周波数のうち少なくとも１つの変調周波数よりも低い変調周波数（低域周波数）を推定する。
カウンタ上限値ＣＮＴmaxとシフト後の設定発振周波数をクロックごとに加算する値に換算した加算値ＣＮＴaddについて、（ＣＮＴmax＋１）／ＣＮＴaddの商をＱ１、余剰をＳ１とすると、
（ＣＮＴmax＋１＋Ｓ１）／ＣＮＴadd＝Ｑ２・・・Ｓ２
となる。カウンタ周期の２周期目におけるオーバーフロー発生までのクロック周期数とカウンタ周期の３周期目における初期値は、上式の商Ｑ２と余剰Ｓ２を用いて表現することができる。
【００４１】
カウンタ周期の１周期目の余剰Ｓ１と２周期目の余剰Ｓ２との差分の絶対値である｜Ｓ１−Ｓ２｜を周波数に換算した値が、以下に示す推定される変調周波数ＦＲＥＱest.1である。
【００４２】
ＦＲＥＱest.1＝｜Ｓ１−Ｓ２｜×ＣＬＫ／（ＣＮＴmax＋１）
本実施例では、この推定結果を用いて、変調周波数ＦＲＥＱest.1が禁止周波数帯域に含まれるか否かを判定する。
【００４３】
次に、本実施例における振動型モータを一定周波数で駆動する際にＣＰＵ１２０および推定部１１０が行う処理を図５のフローチャートを用いて説明する。ＣＰＵ１２０および推定部１１０は、コンピュータプログラムである駆動制御プログラムに従って本処理を実行する。駆動制御プログラムは、設定発振周波数に対する周波数シフト処理を行う周波数制御プログラムを含んでいる。
【００４４】
ステップＳ１０１では、ＣＰＵ１２０は、振動型モータ駆動装置（以下、モータ駆動装置という）の状態を取得する。振動型モータは、圧電素子の温度特性や振動体と接触体の摩耗による劣化の影響を受けやすく、駆動環境が変化した際は駆動時の発振周波数特性（駆動開始時の起動発振周波数等）を変更することが好ましい。このため、駆動処理の指示を受けたＣＰＵ１２０は、まずモータ駆動装置の状態として、不図示の温度センサから温度情報と、不図示のメモリから逐次記憶しておいた振動型モータの駆動回数とを取得する。
【００４５】
次にステップＳ１０２では、ＣＰＵ１２０は、設定発振周波数ＦＲＥＱ、設定デューティ比ＤＵＴＹおよびＡ／Ｂモード間の設定位相差ＰＨＡＳＥを不図示のメモリから取得する。そして、設定発振周波数ＦＲＥＱのみを推定部１１０に出力（設定）する。このとき、ＣＰＵ１２０は、設定発振周波数ＦＲＥＱとして、ステップＳ１０１で取得した温度情報および駆動回数情報に応じて、メモリに記憶された設定発振周波数を微修正した値を出力する。
【００４６】
ステップＳ１０３では、ＣＰＵ１２０は、ステップＳ１０２で設定された設定発振周波数ＦＲＥＱに対応するアダー器１０１用のクロック周期ごとの加算値ＣＮＴaddを算出する。前述したようにカウンタ上限値をＣＮＴmaxとし、クロック周波数をＣＬＫとすると、加算値ＣＮＴaddは、
ＣＮＴadd＝ＦＲＥＱ×（ＣＮＴmax＋１）／ＣＬＫ
で求めることができる。本処理を、ＣＰＵ１２０ではなく、推定部１１０で行ってもよい。
【００４７】
次にステップＳ１０４では、推定部１１０は、設定発振周波数ＦＲＥＱを発振部１００で出力した際に発生する変調周波数を推定部１１０にて推定する。前述した通り、推定変調周波数ＦＲＥＱest.1は、カウンタ周期の１周期目のオーバーフロー時に発生する余剰値Ｓ１と２周期目のオーバーフロー時に発生する余剰値Ｓ２との差分の絶対値を周波数換算するにより推定される。すなわち、｜Ｓ１−Ｓ２｜×ＣＬＫ／（ＣＮＴmax＋１）の演算により推定される。
【００４８】
次にステップＳ１０５では、推定部１１０は、ステップＳ１０４で求めた推定変調周波数ＦＲＥＱest.1が禁止周波数帯域に存在するか否かを判定する。禁止周波数帯域は、前述したように、人間の可聴帯域である２０Ｈｚ〜２０ｋＨｚとする。推定変調周波ＦＲＥＱest.1が禁止周波数帯域に存在する場合は、ステップＳ１０２で設定された設定発振周波数ＦＲＥＱではＰＤＭ制御によって禁止周波数帯域に変調周波数が発生するため、発振周波数を変更（シフト）する必要がある。このため、推定部１１０はステップＳ１０６に進む。一方、ＦＲＥＱest.1が禁止周波数帯域に存在しない場合はステップＳ１０８に進む。
【００４９】
ステップＳ１０６では、推定部１１０は、推定変調周波数が禁止周波数帯域外になるように設定発振周波数ＦＲＥＱからの周波数シフト量ΔＦＲＥＱを求め、シフト後の設定発振周波数ＦＲＥＱ′を算出する周波数シフト処理を行う。シフト後の設定発振周波数ＦＲＥＱ′は、ＦＲＥＱ±ΔＦＲＥＱで表される。周波数シフト量ΔＦＲＥＱは、推定変調周波ＦＲＥＱest.1と禁止周波数帯域の最高周波数（ＦＲＥＱspc＝２０ｋＨｚ）を用いた次式により算出される。
【００５０】
ΔＦＲＥＱ＝（２０ｋＨｚ−ＦＲＥＱest.1）／Ｑ１
この式において、Ｑ１はカウンタ周期の１周期目のオーバーフローする直前までの加算回数である。ΔＦＲＥＱの符号は、Ｓ１−Ｓ２が負値であればプラスとなり、高周波側へのシフトを示す。Ｓ１−Ｓ２が正値であればマイナスとなり、低周波側へのシフトを示す。
【００５１】
以上の処理により、ある変調周波数が禁止周波数帯域に存在することを回避することができ、かつステップＳ１０２で設定された設定発振周波数ＦＲＥＱからのシフト量を最小にすることが可能なシフト後の設定発振周波数ＦＲＥＱ′を設定することができる。
【００５２】
ここまでは、禁止周波数帯域の高周波側について説明した。しかし、推定変調周波数ＦＲＥＱest.1が禁止周波数帯域の低周波側である２０Ｈｚの方に近ければ、以下のようにシフト後の設定発振周波数ＦＲＥＱ′を変調周波数が発生しない周波数に設定することが好ましい。本実施例におけるアダー器１０１のカウンタは２ｎで構成されており、カウンタ上限値ＣＮＴmaxも同様にｎの関数２ｎ−１で表現される。つまり、シフト後の設定発振周波数ＦＲＥＱ′は加算値ＣＮＴaddが２の累乗で表現できる値をとればよい。このため、ステップＳ１０３で算出した設定発振周波数ＦＲＥＱに対応する加算値ＣＮＴaddから最も近い２の累乗を加算値とし、周波数に換算した値がシフト後の設定発振周波数ＦＲＥＱ′となる。
【００５３】
本実施例において、２０Ｈｚ以下の変調周波数において変調周波数が０しか許容しなかったのは、演算時間を短縮するためである。変調周波数が０の場合は、ＰＤＭ制御によって出力される信号の周波数は単一で実現できることを意味する。
【００５４】
次にステップＳ１０７では、推定部１１０は、ステップＳ１０６で算出したシフト後の設定発振周波数ＦＲＥＱ′に対応するアダー器１０１用のクロック周期ごとの加算値ＣＮＴaddを算出する。ステップＳ１０３と同様に、カウンタ上限値をＣＮＴmaxとし、クロックをＣＬＫとすると、加算値ＣＮＴaddは、
ＣＮＴadd＝ＦＲＥＱ′×（ＣＮＴmax＋１）／ＣＬＫ
で求めることができる。なお、本処理を、推定部１１０ではなく、ＣＰＵ１２０で行ってもよい。この後、ＣＰＵ１２０はステップＳ１０８に進む。
【００５５】
ステップＳ１０８では、ＣＰＵ１２０は、ステップＳ１０６にて推定部１１０により算出されたシフト後の設定発振周波数ＦＲＥＱ′を発振部１００へ出力する情報として確定する。ステップＳ１０５にて設定発振周波数ＦＲＥＱに対して発生する変調周波数が禁止周波数帯域に存在しないと判定された場合はＦＲＥＱ＝ＦＲＥＱ′の関係が成り立つ。
【００５６】
次にステップＳ１０９では、ＣＰＵ１２０は、発振部１００に対して出力許可ＥＮＡＢＬＥを出力する。さらに、ＣＰＵ１２０は、ステップＳ１０２で設定した設定デューティ比ＤＵＴＹ、Ａ／Ｂモード間の設定位相差ＰＨＡＳＥおよびステップＳ１０８で確定したシフト後の設定発振周波数ＦＲＥＱ′を発振部１００に出力する。
【００５７】
以上の処理により、クロック周期ごとにアダー器１０１のカウンタに加算値ＣＮＴaddが積算され、カウンタ値が所定値以上に達すると振動型モータに出力される２相のＡおよびＢモード出力パルスの出力が変化する。本実施例では、発振周波数、デューティ比およびＡ／Ｂモード間の位相差はすべて一定としているため、変調周波数の推定は振動型モータの駆動開始時の１度だけでよい。
【００５８】
また、振動型モータを再駆動する際は、モータ駆動装置の状態が変化している場合があるため、ステップＳ１０２で前回とは異なる設定発振周波数が設定される場合がある。このため、駆動開始時にはその都度、変調周波数を推定する必要がある。モータ駆動ごとに設定発振周波数が異なるため、ＰＤＭ制御による変調周波数を求める必要がある頻度は高いが、本実施例における推定手法では２度の余剰演算で済む。また、発振周波数を変更しなければならない場合でも１回の除算が追加されるのみであり、演算時間の増加はほぼ無視することができる。
【００５９】
このようにして、振動型モータに対する駆動の設定から実際の駆動を開始するまでの演算による時間的遅れをほぼ無視することができ、かつ禁止周波数帯域における変調周波数の発生を回避した駆動周波数でのモータ駆動を実現することができる。なお、本実施例では、禁止周波数帯域を可聴帯域として説明したが、振動型モータの制御が破綻する周波数帯域でもあってもよい。
【００６０】
図６には、ＰＤＭ制御によって実際に発生する変調周波数と推定変調周波数との関係を示す。横軸は発振部１００に入力される設定発振周波数ＦＲＥＱであり、縦軸は変調周波数を示す。●印および×印のプロットはそれぞれ、推定変調周波数（Estimated Frequency）および実際に発生する変調周波数（実変調周波数：Modulated Frequency）を示している。両プロットは、カウンタ加算値ＣＮＴadd（つまりは設定発振周波数ＦＲＥＱ）を変化させていったときの推定変調周波数および実変調周波数の変化を示している。
【００６１】
図６より、推定変調周波数は三角波として周期的に出力されている（振幅は設定発振周波数ＦＲＥＱに依存する）。このため、現在の設定発振周波数に対する推定変調周波数が分かれば、その推定変調周波数を禁止周波数帯域外にずらすための周波数シフト量は一意に定まる。推定変調周波数はＳ１−Ｓ２の絶対値から求められたために三角波を形成しており、絶対値の演算を省くと推定変調周波数はのこぎり波を形成する。したがって、Ｓ１−Ｓ２の符号から周波数シフト量ΔＦＲＥＱの符号を定めることが可能となる。
【００６２】
推定変調周波数が３０ｋＨｚ近傍以上の高調波寄りになると、実変調周波数に対する推定誤差が大きくなるが、本実施例においては禁止周波数帯域を人間の可聴帯域（〜２０ｋＨｚ）としたので推定誤差を無視することができる。また、設定発振周波数の全域において、実変調周波数≧推定変調周波数の関係が成り立つため、本実施例における変調周波数の推定および周波数シフト処理は禁止周波数帯域での変調周波数の発生の回避に有効である。
【００６３】
なお、本実施例では、禁止周波数帯域を人間の可聴帯域とした場合について説明したが、禁止周波数帯域を振動型モータの共振周波数を含む帯域としてもよい。
【００６４】
また、本実施例では、設定発振周波数をシフトする場合について説明したが、設定発振周波数を生成するために用いられる第１の周波数（６９．３００６９９３ｋＨｚ）および第２の周波数（７０．０５２５３９４ｋＨｚ）のうち少なくとも一方をシフトさせてもよい。これによっても、禁止周波数帯域での変調周波数の発生を回避することができる。
【００６５】
さらに、本実施例では、設定発振周波数を該設定発振周波数（目標周波数）と異なる周波数である第１および第２の周波数を有する２つ（複数）の信号を用いて生成する場合について説明した。しかし、加算値が２ｎで表現される場合は、１つの周波数を有する信号のみから設定発振周波数を生成することができる。また、設定発振周波数とは異なる３つ以上の周波数を用いて設定発振周波数を生成してもよい。３つ以上の周波数を用いる場合は、第１の周波数および第２の周波数の発現比率を調整して設定発振周波数を実現する制御部を有し、制御部によって演算されるクロック周期ごとに加算される加算値ＣＮＴaddを可変的に制御することで実現することが可能である。
【実施例２】
【００６６】
図７には、本発明の実施例である周波数制御回路を含むモータ駆動装置を搭載した光学機器としての交換レンズ２００と、該交換レンズ２００が着脱可能に装着されるカメラボディ３００とにより構成されるカメラシステムのＡＦ機能に関する構成を示している。
【００６７】
カメラボディ３００内には、カメラＣＰＵ３０１、焦点検出ユニット３０２、撮像素子３０３およびカメラ通信ユニット３０４が設けられている。カメラＣＰＵ３０１は、カメラボディ３００のすべての動作の制御を司る。カメラＣＰＵ３０１は、ＲＡＭ、ＲＯＭおよびＥＥＰＲＯＭ等のメモリを内蔵している。カメラＣＰＵ３０１は、焦点検出ユニット３０２での焦点検出結果に応じて被写体に対するフォーカスレンズ（光学素子）２０２の合焦位置を判定し、カメラ通信ユニット３０４を介して交換レンズ２００に対してフォーカス駆動命令を送信する。
【００６８】
焦点検出ユニット３０２は、交換レンズ２００内の撮影光学系からの光束を用いて被写体に対する撮影光学系の焦点状態を検出する。焦点検出方法としては、位相差検出方式およびコントラスト検出方式のいずれでもよく、またそれ以外の焦点検出方式であってもよい。
【００６９】
撮像素子３０３は、ＣＭＯＳセンサやＣＣＤセンサ等の光電変換素子により構成される。交換レンズ２００内の撮像光学系は、被写体からの光束を結像させ、撮像素子３０３上に被写体像を形成する。本実施例では、撮像光学系内のフォーカスレンズ２０２を光軸方向に移動させることで焦点調節を行うが、撮像素子３０３をモータ駆動装置を用いて光軸方向に移動させて焦点調節を行ってもよい。
【００７０】
カメラ通信ユニット３０４は、カメラＣＰＵ３０１が後述するレンズＣＰＵ２０１との通信を行うための複数の通信端子を有し、カメラＣＰＵ３０１からレンズＣＰＵ２０１への要求送信やレンズＣＰＵ２０１からカメラＣＰＵ３０１への情報送信を可能とする。また、交換レンズ２００には、カメラ通信ユニット３０４を経由してカメラボディ３００内にある不図示の電源ユニットから電源が供給される。
【００７１】
交換レンズ２００内には、レンズＣＰＵ２０１、撮像光学系（図にはフォーカスレンズ２０２のみを示す）、フォーカス制御部２０３、フォーカス駆動回路２０４およびレンズ通信ユニット２０５が設けられている。フォーカスレンズ２０２は、実施例１において図１を用いて説明した振動型モータを駆動源（アクチュエータ）として駆動される。フォーカス制御部２０３およびフォーカス駆動回路２０４により、振動型モータを駆動するモータ駆動装置が構成される。
【００７２】
レンズＣＰＵ２０１は、カメラＣＰＵ３０１からの要求や交換レンズ２００内の各部の状態に応じて交換レンズ２００内の動作を制御する。レンズＣＰＵ２０１は、ＲＡＭ、ＲＯＭおよびＥＥＰＲＯＭ等のメモリを内蔵している。
【００７３】
フォーカスレンズ２０２には、図１に示した圧電素子１８０と振動体１７０が取り付けられている。後述するフォーカス駆動回路２０４から圧電素子１８０に対して実施例１で説明した２相の駆動信号が与えられると振動体１７０に楕円運動が生じる。振動体１７０は、交換レンズ２００内に固定された接触体１６０に接触している。このため、振動体１７０と接触体１６０との摩擦によってフォーカスレンズ２０２が光軸方向に駆動される。
【００７４】
フォーカス制御部２０３は、フォーカスレンズ２０２に関する動作を制御するソフトウェアおよびハードウェア回路により構成されており、図１に示したモータ駆動装置のＣＰＵ１２０および推定部１１０を内包している。フォーカス制御部２０３は、カメラＣＰＵ３０１からのフォーカス駆動命令をレンズＣＰＵ２０１を介して受けることに応じて振動型モータの駆動指令（駆動速度、駆動量および駆動方向）をフォーカス駆動回路２０４に出力する。また、フォーカス制御部２０３は、交換レンズ２００に設けられたマニュアルフォーカスリング（図示せず）の操作をレンズＣＰＵ２０１を介して検出することで、振動型モータの駆動指令をフォーカス駆動回路２０４に出力する。
【００７５】
交換レンズ２００内には、位置検出部（以下、フォーカス位置検出部という）１５０が設けられている。本実施例では、フォーカス位置検出部１５０から得られるフォーカスレンズ２０２の位置情報とフォーカス制御部２０３にて設定される目標位置との偏差に基づいて振動型モータの駆動をフィードバック制御する。なお、振動型モータに対して、フィードフォワード制御、閉ループ複合制御、オープンループ制御およびシーケンス制御等、フィードバック制御以外の制御を行ってもよい。
【００７６】
また、本実施例では、振動型モータによってフォーカスレンズ２０２を駆動する場合について説明するが、変倍レンズ（ズームレンズ）や絞りの駆動に振動型モータを用い、その振動型モータに対して実施例１にて説明したモータ駆動装置を用いてもよい。
【００７７】
フォーカス駆動回路２０４は、フォーカス制御部２０３からの駆動指令を変換して振動型モータを駆動する。フォーカス駆動回路２０４は、図１および図２に示したモータ駆動装置の発振部１００、Ａモード増幅回路１３０およびＢモード増幅回路１４０が内包されている。
【００７８】
本実施例では、実施例１で求めた推定変調周波数（第１推定変調周波数）に加えて、さらに低周波寄りの推定変調周波数（第２推定変調周波数）を求める。なお、以下の説明において、第１推定変調周波数に対応する実変調周波数を第１変調周波数といい、第２推定変調周波数に対応する実変調周波数を第２変調周波数という。
【００７９】
発振部１００が内包するアダー回路１０１のカウンタ上限値をＣＮＴmaxとし、設定発振周波数に対して決定されるカウンタ加算値をＣＮＴaddとすると、
（ＣＮＴmax＋１）／ＣＮＴadd  ＝  Ｑ１・・・Ｓ１
の除算によって商Ｑ１と余剰Ｓ１が得られる。余剰Ｓ１はカウンタ周期の２周期目における初期値（カウンタ周期の１周期目でのオーバーフロー余剰値）に相当する。
さらに、
（ＣＮＴmax＋１＋Ｓ１）／ＣＮＴadd＝Ｑ２・・・Ｓ２
の除算によって商Ｑ２と余剰Ｓ２が得られる。余剰Ｓ２はカウンタ周期の３周期目における初期値（カウンタ周期の２周期目でのオーバーフロー余剰値）に相当する。
カウンタ周期ごとに変動する初期値は、余剰Ｓ１と余剰Ｓ２を用いて表現される。実施例１でも求めた推定変調周波数である第１推定変調周波数をＦＲＥＱest.1と定義すると、下式より導出される。
【００８０】
ＦＲＥＱest.1＝｜Ｓ１−Ｓ２｜×ＣＬＫ／（ＣＮＴmax＋１）
設定発振周波数ＦＲＥＱとカウンタ加算値ＣＮＴaddを用いると、第１推定変調周波数ＦＲＥＱest.1は次式のように書き換えることができる。
【００８１】
ＦＲＥＱest.1＝ＦＲＥＱ／（ＣＮＴadd／｜Ｓ１−Ｓ２｜）
右辺の分母内の演算（ＣＮＴadd／｜Ｓ１−Ｓ２｜）によって、カウンタ周期の初期値がＣＮＴaddを超えるタイミングがカウンタ周期換算でいくらかを表している。加算回数が１回減少するカウンタ周期のタイミングを指すため、その値を設定発振周波数ＦＲＥＱで除することで第１推定変調周波数を求めることができる。
【００８２】
次いで、第２推定変調周波数を導出する。第２推定変調周波数は、ＣＮＴadd／｜Ｓ１−Ｓ２｜＝αとおくと、αの小数値を用いることで求めることができる。
【００８３】
αの自然数部をαｉｎｔとし、小数部をαｄｅｃとする（α＝αｉｎｔ＋αｄｅｃ）。第１推定変調周波数によって加算回数が１回減少するタイミングにおいて、カウンタがオーバーフローして余剰値が発生する場合がある。この場合、複数の変調周波数が存在することを表しており、第１変調周波数によって生じる余剰値の累積がカウンタ加算値ＣＮＴaddを超えると第１変調周波数とは異なるタイミングで加算回数が１回減少するカウンタ周期のタイミングが発生する。これが第２推定変調周波数であり、余剰値の大きさの度合いを表すのがαの小数部αｄｅｃである。
【００８４】
第１変調周波数の周期で累積される余剰値は、
ＣＮＴadd−（｜Ｓ１−Ｓ２｜×αｄｅｃ）
で求めることができるので、第２推定変調周波数ＦＲＥＱest.2は次式で求めることができる。
【００８５】
ＦＲＥＱest.2＝ＦＲＥＱ／（ＣＮＴadd／（ＣＮＴadd−（｜Ｓ１−Ｓ２｜×αｄｅｃ）））
上の式の（ＣＮＴadd／（ＣＮＴadd−（｜Ｓ１−Ｓ２｜×αｄｅｃ）））の小数部を用いて演算を再帰的に繰り返せば、内包するすべての変調周波数を導出することは可能である。
【００８６】
禁止周波数帯域を人間の可聴帯域（２０Ｈｚ〜２０ｋＨｚ）とし、発振部１００のクロック周波数ＣＬＫを８０ＭＨｚ、カウンタ上限値ＣＮＴmaxを２３０−１、設定発振周波数の設定レンジを５０〜１２０ｋＨｚと仮定する。この場合、第１および第２変調周波数が禁止周波数帯域外に存在する確率はそれぞれ、５０．０％および１１．３％となり、いずれも禁止周波数帯域外に存在する確率は１０．９％程度にしかならない。このため、変調周波数を再帰的に推定したところで禁止周波数帯域外へのシフト量が非常に大きくなってしまい、振動型モータの駆動システムとして成り立たないおそれがある。また、再帰処理に伴う演算時間を鑑みると、第２推定変調周波数より多くの変調周波数を推定する意義は薄い。
【００８７】
このため、本実施例では、第２推定変調周波数までを推定し、禁止周波数帯域を、第１推定変調周波数に対しては２〜１２ｋＨｚとし、第２推定変調周波数に対しては３〜５ｋＨｚとする。これにより、上記仮定の下で第１および第２変調周波数のいずれも禁止周波数帯域外に存在する設定発振周波数は、５０〜１２０ｋＨｚ範囲内において全体の６１％程度まで増加する。
【００８８】
人間の可聴帯域は２０Ｈｚ〜２０ｋＨｚと云われているが、最小可聴値は１〜５ｋＨｚであり、一般的には４ｋＨｚ付近の感度が最も良い。さらに１５ｋＨｚ以上の高調波では急激に感度が悪化する特性を持つため、感度に合わせて定義しなおすと、１〜１５ｋＨｚに限定する考え方が例として挙げられる。４ｋＨｚ近傍をピークとして低周波ほど感度が高い傾向があるため、本実施例では低周波寄りに禁止周波数帯域を設定している。つまり、第１および第２推定変調周波数のいずれも４ｋＨｚを避け、かつ使用可能な周波数帯域が６０％以上となるように禁止周波数帯域を設定している。
【００８９】
このように可聴帯域をすべて禁止周波数帯域としていないため、設定発振周波数によっては可聴帯域の周波数が発生してしまうが、本実施例の禁止周波数帯域を設定することで、人間に聞こえやすい変調周波数の発生は回避することができる。禁止周波数帯域については、使用用途、条件、観測者（ユーザ）によって適切に設定すべき値であり、本実施例で示す値は例に過ぎない。
【００９０】
本実施例における振動型モータはフォーカスレンズ２０２の駆動に用いられる駆動源（アクチュエータ）であり、前述したようにカメラ３００からのフォーカス駆動命令やユーザの操作に応じて駆動される。このときの駆動指令（駆動速度、駆動量および駆動方向）は交換レンズ２００の状態や被写体によって異なり、振動型モータの駆動速度は可変的な制御が必要となる。
【００９１】
本実施例では、低速で駆動する際はフォーカス駆動回路２０４（発振部１００）での発振周波数を一定とし、ＡモードとＢモードとの位相差を変化させることで振動型モータの駆動速度を制御する。この位相差制御では、位相差が大きくなるほど、駆動速度を速くすることができる。位相差がある値まで達すると、そのタイミングで制御を切り替え、位相差を切り替え時のまま一定とし、発振周波数を変化させることで駆動速度を制御する。この周波数制御では、発振周波数が小さくなるほど、駆動速度を速くすることができる。以上のように本実施例では、低速域では位相差制御を行い、高速域では周波数制御を行う。
【００９２】
変調周波数の推定および設定発振周波数のシフトは位相差制御においてのみ（つまりは駆動開始時のみ）行う。周波数制御では、表現できる発振周波数の分解能が粗くなってしまうことによる制御への影響や、制御周期ごとに設定発振周波数が逐次変化して特定の周波数スペクトルの強度が時間的に分散される。このため、変調周波数の推定および推定結果に伴う設定発振周波数のシフトは行わない。
【００９３】
また、図７には図示していないが、カメラ３００が動画撮像を行う際に用いられる集音装置が設けられている。動画撮像時においては、発振部１００による変調周波数の成分が集音装置に検出されることを避けるため、変調周波数の推定および設定発振周波数のシフトを行う。動画撮像時においては、交換レンズ２００の各種駆動系は、その駆動音の増加や像面の急激な変化を抑制するために、駆動速度が制限されることが一般的である。本実施例では、フォーカスレンズ２０２を駆動するアクチュエータである振動該モータは動画撮像時には位相差制御の範囲内で駆動されるものとする。
【００９４】
さらに、推定部１１０による変調周波数の推定の有効／無効は、カメラ３００の撮像状態によらず、振動型モータの制御状態によって切り替えられるものとする。振動型モータの制御状態およびカメラ３００の撮像状態に応じて変調周波数の推定の有無を設定してもよい。例えば、動画撮像時に振動型モータが周波数制御となる状態においては、使用できる周波数帯域を増やして制御安定性を高めるために、禁止周波数帯域を集音装置の感度特性に合わせて狭帯域に設定変更してもよい。
【００９５】
以上の条件の下で振動型モータの駆動（つまりはフォーカスレンズ２０２の駆動）を制御する処理を、図８のフローチャートを用いて説明する。レンズＣＰＵ２０１およびフォーカス制御部２０３は、コンピュータプログラムであるフォーカス制御プログラムに従って本処理を実行する。フォーカス制御プログラムは、設定発振周波数に対する周波数シフト処理を行う周波数制御プログラムを含んでいる。
【００９６】
ステップＳ２０１では、レンズＣＰＵ２０１は、カメラＣＰＵ３０１から送信されてくるフォーカス駆動命令（以下、カメラ側フォーカス駆動命令という）を取得する。カメラＣＰＵ３０１は、撮像光学系の焦点状態を焦点検出ユニット３０２を通じて取得し、該焦点状態からフォーカスレンズ２０２の駆動量および駆動方向を算出する。そして、カメラＣＰＵ３０１は、これらフォーカスレンズ２０２の駆動量および駆動方向を含むカメラ側フォーカス駆動命令をレンズＣＰＵ２０１に送信する。
【００９７】
カメラ側フォーカス駆動命令には、カメラ３００の状態（静止画／動画撮像モードの設定や動画記録中か否か等）を示す情報も含まれる。この情報は、レンズＣＰＵ２０１が振動型モータの駆動速度に制限を設けるために使用する。
【００９８】
フォーカス制御部２０３（ＣＰＵ１２０）は、レンズＣＰＵ２０１を介して受け取ったカメラ側フォーカス駆動命令に基づいて、フォーカスレンズ２０２の目標位置と指定速度を設定する。指定速度が所定値未満であれば振動型モータを位相差制御のみで駆動し、所定値を超えるならば振動型モータを位相差制御と周波数制御を併用して駆動する。
【００９９】
また、カメラ側フォーカス駆動命令とは別に、レンズＣＰＵ２０１は、交換レンズ２００に設けられた前述したマニュアルフォーカスリングをユーザが操作することに応じてレンズ側フォーカス駆動命令をフォーカス制御部２０３に出力する。フォーカス制御部２０３（ＣＰＵ１２０）は、レンズ側フォーカス駆動命令を受け取った場合と同様に、レンズ側フォーカス駆動命令に基づいてフォーカスレンズ２０２の目標位置と指定速度を設定する。このときのカメラ３００の状態を示す情報についてはその時点でカメラＣＰＵ３０１から取得してもよいし、前回取得した情報をそのまま利用してもよい。
【０１００】
次にステップＳ２０２では、フォーカス制御部２０３（ＣＰＵ１２０）は振動型モータの状態を取得する。振動型モータは、圧電素子の温度特性や振動体と接触体の摩耗による劣化の影響を受けやすく、駆動環境が変化した際は駆動時の発振周波数特性（駆動開始時の起動発振周波数等）を変更することが好ましい。このため、駆動処理の指示を受けたレンズＣＰＵ２０１は、まずモータ駆動装置の状態として、不図示の温度センサから温度情報と、不図示のメモリから逐次記憶しておいた振動型モータの駆動回数とを取得する。
【０１０１】
次にステップＳ２０２では、フォーカス制御部２０３（ＣＰＵ１２０）は、設定発振周波数ＦＲＥＱ、設定デューティ比ＤＵＴＹおよびＡ／Ｂモード間の設定位相差ＰＨＡＳＥを不図示のメモリから取得する。そして、設定発振周波数ＦＲＥＱのみをフォーカス制御部２０３内の推定部１１０に出力（設定）する。このとき、フォーカス制御部２０３は、設定発振周波数ＦＲＥＱとして、ステップＳ２０２で取得した温度情報および駆動回数情報に応じて、メモリに記憶された設定発振周波数を微修正した値を出力する。
【０１０２】
ステップＳ２０４では、フォーカス制御部２０３は、ステップＳ２０３で設定された設定発振周波数ＦＲＥＱに対応するフォーカス駆動回路２０４内のアダー器１０１用のクロック周期ごとの加算値ＣＮＴaddを算出する。カウンタ上限値をＣＮＴmaxとし、クロック周波数をＣＬＫとすると、加算値ＣＮＴaddは、
ＣＮＴadd＝ＦＲＥＱ×（ＣＮＴmax＋１）／ＣＬＫ
で求めることができる。
【０１０３】
次にステップＳ２０５では、フォーカス制御部２０３（推定部１１０）は、設定発振周波数ＦＲＥＱをフォーカス駆動回路２０４内の発振部１００で出力した際の第１および第２推定変調周波数ＦＲＥＱest.1，ＦＲＥＱest.2を推定する。前述した通り、第１推定変調周波数ＦＲＥＱest.1は、カウンタ周期の１周期目のオーバーフロー時に発生する余剰値Ｓ１と２周期目のオーバーフロー時に発生する余剰値Ｓ２との差分の絶対値を周波数換算することにより推定される。すなわち、｜Ｓ１−Ｓ２｜×ＣＬＫ／（ＣＮＴmax＋１）の演算によって推定される。
【０１０４】
また、第２推定変調周波数ＦＲＥＱest.2は、第１変調周波数の発生時にて生じるカウンタのオーバーフロー値から求められる。具体的には、（ＣＮＴadd／｜Ｓ１−Ｓ２｜）の演算結果の小数部をαｄｅｃとするとき、ＦＲＥＱ／（ＣＮＴadd／（ＣＮＴadd−（｜Ｓ１−Ｓ２｜×αｄｅｃ）））の演算によって推定される。
【０１０５】
ステップＳ２０６では、フォーカス制御部２０３（推定部１１０）は、ステップＳ２０５で求めた第１および第２推定変調周波数ＦＲＥＱest.1，ＦＲＥＱest.2が禁止周波数帯域に存在するか否かを判定する。前述した通り、禁止周波数帯域は、第１推定変調周波数ＦＲＥＱest.1に対しては２〜１２ｋＨｚとし、第２推定変調周波数ＦＲＥＱest.2に対しては３〜５ｋＨｚとする。判定式は第１および第２推定変調周波数ＦＲＥＱest.1，ＦＲＥＱest.2のそれぞれが禁止周波数帯域外に存在し、かつカウンタ加算値ＣＮＴaddが２で割り切れる値（変調周波数が発生しないことと同義）であることとの論理和で構成される。該判定式を満たさない場合は、ステップＳ２０２で設定された設定発振周波数ＦＲＥＱではＰＤＭ制御によって禁止周波数帯域に変調周波数が発生するため、設定発振周波数をシフトする必要がある。このため、フォーカス制御部２０３（推定部１１０）はステップＳ２０７に進む。一方、該判定式を満たす場合はステップＳ２０９に進む。
【０１０６】
ステップＳ２０７では、フォーカス制御部２０３（推定部１１０）は、第１および第２推定変調周波数をともに禁止周波数帯域外へシフトさせるために設定発振周波数ＦＲＥＱからのシフト周波数ΔＦＲＥＱを求める。そして、シフト後の設定発振周波数ＦＲＥＱ′を算出する周波数シフト処理を行う。第２推定変調周波数は、第１推定変調周波数のように周波数変化に対して線形的な特性を持たない。但し、第１推定変調周波数＞第２推定変調周波数が成り立つため、本実施例で設定した禁止周波数帯域の値域を考慮して下記のシーケンスでシフト周波数ΔＦＲＥＱを導出する。
【０１０７】
図９には、本実施例における設定発振周波数の変化に対する第１および第２推定変調周波数の変化を示す。横軸は設定発振周波数を、縦軸は変調周波数を示す。実線で結ばれた●印のプロットは第１推定変調周波数（Estimated Frequency 1）を、破線で結ばれた●印のプロットは第２推定変調周波数（Estimated Frequency 2）を示す。図中において帯状にマスキングされている領域Ａ，Ｂがそれぞれ第１および第２推定変調周波数に対する禁止周波数帯域であり、それらの禁止周波数帯域外の領域Ｃが第１および第２推定変調周波数の存在を許容する領域である。この領域Ｃに第１および第２推定変調周波数（つまりは第１および第２変調周波数）が存在するようにシフト周波数ΔＦＲＥＱが求められる。
【０１０８】
推定部１１０は、シフト周波数ΔＦＲＥＱを以下のように導出する。まず、推定部１１０は、第１および第２推定変調周波数のうちどちらが禁止周波数帯域内に存在するかを判定する。第１推定変調周波数が禁止周波数帯域内に存在する場合は、その値に応じて次に行うべき処理が異なる。
【０１０９】
第１推定変調周波数ＦＲＥＱest.1＜１０ｋＨｚである場合は、推定部１１０は、以下の式に示すように、禁止周波数帯域の低周波側に第１変調周波数が発生するようにシフトする。
【０１１０】
ΔＦＲＥＱ＝（ＦＲＥＱest.1−２ｋＨｚ）／Ｑ１
Ｑ１はカウンタ周期の１周期目においてオーバーフローするまでの加算回数であり、２ｋＨｚは第１推定変調周波数に対する禁止周波数帯域の最低周波数である。ΔＦＲＥＱの符号は、Ｓ１−Ｓ２が負値であればマイナスとなり、低周波側へのシフトを示す。また、Ｓ１−Ｓ２が正値であればプラスとなり、高周波側へのシフトを示す。シフト後の設定発振周波数ＦＲＥＱ′に対する第１推定変調周波数は２ｋＨｚ未満となり、また第２推定変調周波数は第１推定変調周波数よりも低い周波数となるため、２ｋＨｚよりも低周波数となる。したがって、第１および第２推定変調周波数のいずれも禁止周波数帯域外に存在することになる。
【０１１１】
一方、第１推定変調周波数ＦＲＥＱest.1≧１０ｋＨｚである場合は、推定部１１０は、以下の式に示すように、禁止周波数帯域の高周波側に第１変調周波数が発生するようにシフトする。
【０１１２】
ΔＦＲＥＱ＝（１２ｋＨｚ−ＦＲＥＱest.1）／Ｑ１
１２ｋＨｚは第１推定変調周波数に対する禁止周波数帯域の最高周波数（ＦＲＥＱspc）である。ΔＦＲＥＱの符号は、Ｓ１−Ｓ２が負値であればプラスとなり、高周波側へのシフトを示す。また、Ｓ１−Ｓ２が正値であればマイナスとなり、低周波側へのシフトを示す。
【０１１３】
そして、推定部１１０は、シフト後の設定発振周波数ＦＲＥＱ′に対する第２推定変調周波数ＦＲＥＱest.2が禁止周波数帯域外に存在するか否かを判定する。第２推定変調周波数ＦＲＥＱest.2が禁止周波数帯域外に存在しない場合は、ΔＦＲＥＱと同方向に再度、設定発振周波数をシフトする。この処理を複数回行うことで、第１および第２推定変調周波数のいずれもが禁止周波数帯域外に存在するシフト後の設定発振周波数ＦＲＥＱ′を探索することができる。
【０１１４】
第２推定変調周波数が禁止周波数帯域外に存在しない場合は、推定部１１０は、上述した第１推定変調周波数ＦＲＥＱest.1≧１０ｋＨｚの場合と同等の処理を行う。設定発振周波数をシフトする方向については、現在の第１推定変調周波数が禁止周波数帯域（１２ｋＨｚ）から離れる方向が好ましい。
【０１１５】
以上のようにして、第１および第２推定変調周波数がともに禁止周波数帯域外に存在するようなシフト後の設定発振周波数ＦＲＥＱ′を求めることができる。
【０１１６】
次にステップＳ２０８では、フォーカス制御部２０３（推定部１１０）は、ステップＳ２０７で算出したシフト後の設定発振周波数ＦＲＥＱ′に対応するアダー器１０１用のクロックごとの加算値ＣＮＴaddを算出する。ステップＳ２０４と同様に、カウンタ上限値をＣＮＴmaxとし、クロックをＣＬＫとすると、加算値ＣＮＴaddは、
ＣＮＴadd＝ＦＲＥＱ′×（ＣＮＴmax＋１）／ＣＬＫ
で求められる。この後、フォーカス制御部２０３はステップＳ２０９に進む。
【０１１７】
ステップＳ２０９では、フォーカス制御部２０３（ＣＰＵ１２０）は、推定部１１０により算出されたシフト後の設定発振周波数ＦＲＥＱ′を発振部１００に出力する情報として確定する。ステップＳ２０６にて設定発振周波数ＦＲＥＱに対して発生する変調周波数が禁止周波数帯域に存在しないと判定された場合はＦＲＥＱ＝ＦＲＥＱ′の関係が成り立つ。本処理で確定した設定発振周波数が起動周波数となり、振動型モータの位相差制御における発振周波数となる。
【０１１８】
次にステップＳ２１０では、フォーカス制御部２０３（ＣＰＵ１２０）は、発振部１００に対して出力許可ＥＮＡＢＬＥを出力する。さらに、ＣＰＵ１２０は、ステップＳ２０３で設定した設定デューティ比ＤＵＴＹ、Ａ／Ｂモード間の設定位相差ＰＨＡＳＥおよびステップＳ２０９で確定したシフト後の設定発振周波数ＦＲＥＱ′を発振部１００に出力する。本処理によって振動型モータへの通電が行われ、フォーカスレンズ２０２に対する実際の駆動が開始される。
【０１１９】
次にステップＳ２１１では、フォーカス制御部２０３（ＣＰＵ１２０）は、フォーカス位置検出部１５０から得られるフォーカスレンズ２０２の現在位置とステップＳ２０１で設定した目標位置との位置偏差を算出する。
【０１２０】
次にステップＳ２１２では、フォーカス制御部２０３（ＣＰＵ１２０）は、ステップＳ２１１で算出した位置偏差が０になったか否か、つまりはフォーカスレンズ２０２が目標位置に到達したか否かを判定する。ＣＰＵ１２０は、フォーカスレンズ２０２が目標位置に到達していればステップＳ２１３に進み、到達していなければステップＳ２１５に進む。
【０１２１】
ステップＳ２１３では、フォーカス制御部２０３（ＣＰＵ１２０）は、フォーカスレンズ２０２が目標位置に到達した後、所定時間の通電保持を行う。通電保持中はＡ／Ｂモード間の位相差を０にして、振動体に定在波を生成させる。この通電保持により、フォーカスレンズ２０２がその慣性によって目標位置を通り過ぎて停止することを抑制する。
【０１２２】
なお、本実施例では、目標位置＝現在位置（つまりは位置偏差が０）をもってフォーカスレンズ２０２が目標位置に到達したものと判定する。しかし、｜目標位置±ｘ｜の範囲内にフォーカスレンズ２０２の現在位置が収まることをもって目標位置に到達したものと判定し、その後の通電保持を位置フィードバック制御によって微小偏差を０にする処理としてもよい。
【０１２３】
次にステップＳ２１４では、フォーカス制御部２０３（ＣＰＵ１２０）は、目標位置での通電保持を停止し、ステップＳ２０１で取得したカメラ側またはレンズ側フォーカス駆動命令に対する処理を完了する。こうして一連のフォーカスレンズ２０２の駆動に対する処理が終了となる。
【０１２４】
ステップＳ２１５以降では、フォーカス制御部２０３（ＣＰＵ１２０）は、まだ目標位置に到達していないフォーカスレンズ２０２の現在位置と現在速度に基づいて振動型モータの駆動状態（加減速駆動または定速駆動）を決定し、該振動型モータの駆動を制御する。
【０１２５】
ステップＳ２１５では、フォーカス制御部２０３（ＣＰＵ１２０）は、フォーカスレンズ２０２の現在位置と目標位置との位置偏差を現在速度における減速プロファイルから得られる停止までの減速駆動量と比較する。そして、該比較結果に基づいて、フォーカスレンズ２０２が減速開始位置に到達したか否かを判定する。位置偏差が減速駆動量に一致または減速駆動量より小さい場合は、ＣＰＵ１２０は、フォーカスレンズ２０２が減速開始位置に到達したと判定し、ステップＳ２１６に進む。フォーカスレンズ２０２が減速開始位置に到達していない場合はステップＳ２１９に進む。
【０１２６】
ステップＳ２１６では、フォーカス制御部２０３（ＣＰＵ１２０）は、現在の設定発振周波数が起動周波数まで引き上げられているか否かを判定する。本ステップでは、振動型モータは減速状態である。また、本実施例における減速処理では、減速プロファイルに従った加速度で振動型モータを減速させる。ＣＰＵ１２０は、振動型モータの減速直前に周波数制御を行っている場合は減速プロファイルに従って設定発振周波数を起動周波数まで引き上げ、起動周波数に達すると位相差制御に切り替えて更に減速処理を行う。一方、減速直前に位相差制御が行われている場合は、ＣＰＵ１２０は、減速処理を位相差制御のまま行う。
【０１２７】
さらに本ステップでは、ＣＰＵ１２０は、減速処理において設定発振周波数が起動周波数と同じ値となっているか否かを確認し、次の制御に周波数制御と位相差制御のどちらを使用するかを判定する。ＣＰＵ１２０は、設定発振周波数が起動周波数と同じまたはより高周波に設定されていれば位相差制御を行うものとしてステップＳ２１８に進み、設定発振周波数が起動周波数よりも低周波に設定されていれば周波数制御を行うものとしてステップＳ２１７に進む。
【０１２８】
なお、本実施例では、減速時の周波数制御において設定発振周波数を起動周波数よりも大きな値を設定することはない。位相差制御に切り替える際に設定発振周波数を起動周波数と同値とすることで、減速時の位相差制御において変調周波数を避けた発振周波数が設定されることが保証される。
【０１２９】
ステップＳ２１７では、フォーカス制御部２０３（ＣＰＵ１２０）は、減速プロファイルに基づいてＡ／Ｂモード間の位相差を固定し、設定発振周波数を高周波寄りに変更する。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻って周波数制御を行う。
【０１３０】
一方、ステップＳ２１８では、フォーカス制御部２０３（ＣＰＵ１２０）は、減速プロファイルに基づいて発振周波数を起動周波数と同じ値に固定し、Ａ／Ｂモード間の位相差を小さくするように変更する。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻って位相差制御を行う。
【０１３１】
ステップＳ２１９では、フォーカス制御部２０３（ＣＰＵ１２０）は、振動型モータの駆動状態が加速状態か定速状態かを判定する。加速状態は、ＣＰＵ１２０自身が現在、加速プロファイルを参照していること又は現在速度とより高速の指令速度（駆動指令に含まれる駆動速度）との速度偏差が所定値以上であることにより判定できる。これらに相当しない駆動状態は、定速状態と判定できる。ＣＰＵ１２０は、加速状態である場合はステップＳ２２０に進み、定速状態である場合はステップＳ２２３に進む。
【０１３２】
ステップＳ２２０では、フォーカス制御部２０３（ＣＰＵ１２０）は、現在のＡ／Ｂモード間の位相差を判定する。ＣＰＵ１２０は、位相差が９０ｄｅｇ未満であれば位相差制御を行うためにステップＳ２２２に進み、９０ｄｅｇ以上であれば周波数制御を行うためにステップＳ２２１に進む。
【０１３３】
ステップＳ２２１では、フォーカス制御部２０３（ＣＰＵ１２０）は、加速プロファイルに基づいてＡ／Ｂモード間の位相差を固定し、設定発振周波数を低周波寄りに変更する。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻って周波数制御を行う。
【０１３４】
ステップＳ２２２では、フォーカス制御部２０３（ＣＰＵ１２０）は、加速プロファイルに基づいて発振周波数を起動周波数と同じ値に固定し、Ａ／Ｂモード間の位相差を大きくする方向に変更する。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻って位相差制御を行う。
【０１３５】
ステップＳ２２３では、フォーカス制御部２０３（ＣＰＵ１２０）は、現在の速度偏差を判定する。本ステップ以降は定速状態での処理であるが、負荷の変動によって発生する微小な速度変動を抑制するために速度フィードバック制御を行う。ＣＰＵ１２０は、現在速度が指令速度よりも遅ければ微小加速処理を行うためにステップＳ２２４に進み、現在速度が指令速度よりも速ければ微小減速処理を行うためにステップＳ２２５に進む。
【０１３６】
ステップＳ２２４では、フォーカス制御部２０３（ＣＰＵ１２０）は、現在のＡ／Ｂモード間の位相差を判定する。ＣＰＵ１２０は、位相差が９０ｄｅｇ以上であれば位相差を固定して周波数制御を行うためにステップＳ２２６に進み、位相差が９０ｄｅｇ未満であれば位相差制御を行うためにステップＳ２２７に進む。
【０１３７】
ステップＳ２２６では、フォーカス制御部２０３（ＣＰＵ１２０）は、直前の制御で位相差が９０ｄｅｇに達したために位相差を固定し、発振周波数を変更する。ここでは微小加速処理を行うため、ＣＰＵ１２０は、現在の発振周波数よりも低周波の発振周波数を設定して振動型モータを駆動する。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻る。
【０１３８】
ステップＳ２２７では、フォーカス制御部２０３（ＣＰＵ１２０）は、まだ位相差が９０ｄｅｇに到達していないため、位相差をさらに大きくして振動型モータのトルクを増加させる。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻る。
【０１３９】
ステップＳ２２５では、フォーカス制御部２０３（ＣＰＵ１２０）は、現在の発振周波数を推定する。ＣＰＵ１２０は、発振周波数が起動周波数以下であれば位相差制御を行うためにステップＳ２２８に進み、発振周波数が起動周波数を超えていれば周波数制御を行うためにステップＳ２２９に進む。
【０１４０】
ステップＳ２２８では、フォーカス制御部２０３（ＣＰＵ１２０）は、位相差を小さくして振動型モータのトルクを抑えることで減速処理を行う。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻る。
【０１４１】
ステップＳ２２９では、フォーカス制御部２０３（ＣＰＵ１２０）は、発振周波数を高くして振動型モータのトルクを抑えることで減速処理を行う。本処理を行ったＣＰＵ１２０は、ステップＳ２１０に戻る。
【０１４２】
以上説明したように、本実施例では、ＰＤＭ制御によって発生する第１および第２変調周波数を推定し、その推定結果に応じて設定周波数をシフトする。これにより、第１および第２変調周波数を禁止周波数帯域にて発生させることなく振動型モータを駆動してフォーカスレンズ２０２を移動させることができる。
【０１４３】
本実施例では、交換レンズ２００内にて発振部１００で発生する第１および第２変調周波数を推定し、推定結果が禁止周波数帯域外になるように設定発振周波数をシフトする場合について説明した。しかし、推定結果の情報に時間情報を付与してカメラ３００に出力し、カメラ３００が該情報に基づいて、記録された音情報から変調周波数の周波数帯域を第１および第２変調周波数に関わるノイズとして除去または低減する処理を行うようにしてもよい。
【０１４４】
また、本実施例では、レンズ交換型のカメラシステムについて説明したが、本実施例にて説明した周波数シフト処理は、レンズ一体型のカメラ（光学機器）においてレンズ等の光学素子を駆動する振動型モータを駆動する際に行うことができる。
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１４５】
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
【符号の説明】
【０１４６】
１００  発振部
１０１  アダー器
１０２  Ａモード比較器
１０３  Ｂモード比較器
１１０  推定部
【図１】
0006448527.tif 000002
【図２】
0006448527.tif 000003
【図３】
0006448527.tif 000004
【図４】
0006448527.tif 000005
【図５】
0006448527.tif 000006
【図６】
0006448527.tif 000007
【図７】
0006448527.tif 000008
【図８】
0006448527.tif 000009
【図９】
0006448527.tif 000010