(57)【要約】【課題】超音波モータの温度の高低にかかわらず、確実に駆動周波数が共振周波数を下回ったことを検知し、駆動周波数を共振周波数から回避させ、更に、共振周波数の誤検知と、２回目以降の共振周波数回避処理を抑制することができる超音波モータ駆動制御装置を提供する。【解決手段】超音波モータの移動量を古いＰＩＤ制御周期のものと新しいＰＩＤ制御周期のものとで比較し、また、ＰＩＤ制御の演算結果を古いＰＩＤ制御周期のものと新しいＰＩＤ制御周期のものとで比較し、前記比較の結果により共振回避処理が必要と判断すると、共振周波数回避処理を行うことを特徴とする超音波モータ駆動制御装置を提供する。【選択図】図１
2014045559.tif 000002
【特許請求の範囲】
【請求項１】
電圧を印加することで振動波を発生し、被駆動体を駆動する超音波モータと、
目標速度に対して実際の速度との差をフィードバックするＰＩＤ制御により、前記超音波モータの駆動制御を行う制御手段を有し、
前記制御手段は、
ＰＩＤ制御において、ＰＩＤ制御周期ごとに超音波モータの移動量をパルス数でカウントする検知回路と、
ＰＩＤ制御周期ごとにＰＩＤ制御で求めた演算結果の値を算出する演算回路と、
ＰＩＤ制御において、ＰＩＤ制御周期ごとに過去の超音波モータの移動量とＰＩＤ制御で求めた演算結果の値を記憶しておく記憶回路と、
超音波モータの移動量を古いＰＩＤ制御周期のものと新しいＰＩＤ制御周期のものとで比較し、また、ＰＩＤ制御の演算結果を古いＰＩＤ制御周期のものと新しいＰＩＤ制御周期のものとで比較する比較回路を有し、
前記制御手段は、前記比較の結果により共振回避処理が必要と判断すると、共振周波数回避処理を行う
ことを特徴とする超音波モータ駆動制御装置。
【請求項２】
前記比較手段が比較した結果、
超音波モータの移動量が、新しいＰＩＤ制御周期のものより古いＰＩＤ制御周期のもののほうが大きく、
ＰＩＤ制御の演算結果が、古いＰＩＤ制御周期のものより新しいＰＩＤ制御周期のもののほうが大きかった場合、
共振周波数回避処理を行う
ことを特徴とする請求項１に記載の超音波モータ駆動制御装置。
【請求項３】
前記比較手段が比較した結果、
超音波モータの移動量が、新しいＰＩＤ制御周期のものより古いＰＩＤ制御周期のもののほうが大きく、
ＰＩＤ制御の演算結果が、古いＰＩＤ制御周期のものより新しいＰＩＤ制御周期のもののほうが大きく、
且つ、記憶回路に記憶された最新の超音波モータの移動量が所定のパルス以上の場合に、
前記制御手段は、共振周波数回避処理が必要と判断し、共振周波数回避処理を行う
ことを特徴とする請求項１に記載の超音波モータ駆動制御装置。
【請求項４】
前記比較手段が比較した結果、
超音波モータの移動量が、新しいＰＩＤ制御周期のものより古いＰＩＤ制御周期のもののほうが大きく、
ＰＩＤ制御の演算結果が、古いＰＩＤ制御周期のものより新しいＰＩＤ制御周期のもののほうが大きく、
且つ、記憶回路に記憶された最新の超音波モータの移動量が所定のパルス以上であり、
最新のＰＩＤ制御周期から所定の周期前のパルス数と、最新のＰＩＤ制御周期のパルス数の間の差が所定のパルス以上の場合に、
前記制御手段は、共振周波数回避処理が必要と判断し、共振周波数回避処理を行う
ことを特徴とする請求項１に記載の超音波モータ駆動制御装置。
【請求項５】
前記超音波モータ駆動制御装置は、通常の目標速度テーブルと共振周波数回避処理用の目標速度テーブルを有し、
前記共振周波数回避処理として、
駆動周波数を変更し、
更に、下限周波数リミットを前記共振周波数回避処理による変更後の駆動周波数に設定し、
更に、目標速度テーブルを、通常のものから共振周波数回避処理用の目標速度テーブルに切り替える
ことを特徴とする請求項１乃至請求項４のいずれか一項に記載の超音波モータ駆動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、超音波モータの駆動周波数を適切に制御する、超音波モータ駆動制御装置に関する。
【背景技術】
【０００２】
従来、圧電セラミックスを接着した金属弾性体である振動子に、超音波領域の電圧を加えることによって進行波をおこし、振動子に加圧接触させた移動子に進行波と逆の方向に回転する円運動を生じさせ、振動子と移動子間の摩擦力により移動子を移動させる超音波モータがあった。
【０００３】
例えば、上記のような超音波モータは撮像装置のレンズの自動合焦動作で、レンズ群を駆動するのに用いられる。
【０００４】
撮像装置のレンズの合焦動作に超音波モータを用いる場合、駆動量や駆動速度の制御に目標速度に対して実際の速度をフィードバックさせる制御が多く用いられている。
【０００５】
その代表的な制御として、Ｐｒｏｐｏｒｔｉｏｎａｌ  Ａｃｔｉｏｎ（Ｐ動作）とＩｎｔｅｇｒａｌ  Ａｃｔｉｏｎ（Ｉ動作）とＤｉｆｆｅｒｅｎｔｉａｌ  Ａｃｔｉｏｎ（Ｄ動作）を組み合わせて出力するＰＩＤ制御がある。
【０００６】
まず、ＰＩＤ制御について以下に説明する。
【０００７】
ＰＩＤ制御とはフィードバック制御の一種である。Ｐ動作による制御は、比例制御でありＰ動作によって比例ゲインを大きくしていくと、偏差は小さくなっていく。しかし、Ｐ動作だけでは目標値と実際値とのズレ量が残ってしまう。
【０００８】
かかるＰ制御に対して、ＰＩ動作による制御は、Ｉ動作によって偏差がある限り偏差をゼロにしようとして操作信号が変化し続けるため、制御量を目標値付近に制御することができる。
【０００９】
更に、ＰＩ制御に対して、ＰＩＤ動作による制御では、Ｄ動作を追加することで、より目標速度に近づけることができる。
【００１０】
次に、超音波モータについて以下に説明する。
【００１１】
図２は、超音波モータを搭載したレンズにおける駆動周波数と超音波モータ駆動速度との関係を示す模式図である。
【００１２】
図２が示す通り、超音波モータは所定の周波数まで駆動周波数の値を下げると、その時点で超音波モータの駆動速度は最高になり、更に所定の周波数を超えて駆動周波数の値を下げると、超音波モータの駆動速度は急激に落ちて、場合によっては駆動が停止する。この所定の周波数を共振周波数と言う。
【００１３】
超音波モータは印加される電圧の振幅や周波数の変化によって、駆動速度が変化する特性を持っている。つまり、超音波モータは、駆動周波数の値が上がれば減速し、共振周波数を下回らない範囲で駆動周波数の値が下がれば加速する。
【００１４】
そのため、フォーカスレンズを素早く移動させ、速やかにピントを合わせるには、使用する超音波モータの駆動周波数帯域のうち、共振周波数を下回らずに、なるべく低い周波数で超音波モータを駆動することが求められる。
【００１５】
このような超音波モータの特性に対応するため、従来、超音波モータの駆動周波数が共振周波数を超えて低くならないように制御する発明がされている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開平０７−０５９３６７
【００１７】
特許文献１に記載の発明では、想定される最低の温度における共振周波数よりも高い周波数が予め記憶されており、かかる周波数を超えて超音波モータの駆動周波数が低くならないように制御されている。
【００１８】
これは、一般に、超音波モータは温度が高いほど共振周波数が低いため、最低温度における共振周波数を駆動周波数の下限として設定すれば、全温度における共振周波数を回避できるためである。
【００１９】
図３は、超音波モータの温度と共振周波数の関係を示す模式図である。
【発明の概要】
【発明が解決しようとする課題】
【００２０】
図３が示す通り、超音波モータは温度が高いほど共振周波数が低い。そのため最低温度における共振周波数を駆動周波数の下限として設定する特許文献１に記載の発明では、超音波モータの温度によっては駆動速度が著しく遅くなるおそれがある。
【課題を解決するための手段】
【００２１】
上記課題を解決するため、第１の発明は、電圧を印加することで振動波を発生し、被駆動体を駆動する超音波モータと、目標速度に対して実際の速度との差をフィードバックするＰＩＤ制御により、前記超音波モータの駆動制御を行う制御手段を有し、前記制御手段は、ＰＩＤ制御において、ＰＩＤ制御周期ごとに超音波モータの移動量をパルス数でカウントする検知回路と、ＰＩＤ制御周期ごとにＰＩＤ制御で求めた演算結果の値を算出する演算回路と、ＰＩＤ制御において、ＰＩＤ制御周期ごとに過去の超音波モータの移動量とＰＩＤ制御で求めた演算結果の値を記憶しておく記憶回路と、超音波モータの移動量を古いＰＩＤ制御周期のものと新しいＰＩＤ制御周期のものとで比較し、また、ＰＩＤ制御の演算結果を古いＰＩＤ制御周期のものと新しいＰＩＤ制御周期のものとで比較する比較回路を有し、前記制御手段は、前記比較の結果により共振回避処理が必要と判断すると、共振周波数回避処理を行うことを特徴とする超音波モータ駆動制御装置とした。
【００２２】
第２の発明は、前記比較手段が比較した結果、超音波モータの移動量が、新しいＰＩＤ制御周期のものより古いＰＩＤ制御周期のもののほうが大きく、ＰＩＤ制御の演算結果が、古いＰＩＤ制御周期のものより新しいＰＩＤ制御周期のもののほうが大きかった場合、共振周波数回避処理を行うことを特徴とする請求項１に記載の超音波モータ駆動制御装置とした。
【００２３】
第３の発明は、前記比較手段が比較した結果、超音波モータの移動量が、新しいＰＩＤ制御周期のものより古いＰＩＤ制御周期のもののほうが大きく、ＰＩＤ制御の演算結果が、古いＰＩＤ制御周期のものより新しいＰＩＤ制御周期のもののほうが大きく、且つ、記憶回路に記憶された最新の超音波モータの移動量が所定のパルス以上の場合に、前記制御手段は、共振周波数回避処理が必要と判断し、共振周波数回避処理を行うことを特徴とする請求項１に記載の超音波モータ駆動制御装置とした。
【００２４】
第４の発明は、前記比較手段が比較した結果、超音波モータの移動量が、新しいＰＩＤ制御周期のものより古いＰＩＤ制御周期のもののほうが大きく、ＰＩＤ制御の演算結果が、古いＰＩＤ制御周期のものより新しいＰＩＤ制御周期のもののほうが大きく、且つ、記憶回路に記憶された最新の超音波モータの移動量が所定のパルス以上であり、最新のＰＩＤ制御周期から所定の周期前のパルス数と、最新のＰＩＤ制御周期のパルス数の間の差が所定のパルス以上の場合に、前記制御手段は、共振周波数回避処理が必要と判断し、共振周波数回避処理を行うことを特徴とする請求項１に記載の超音波モータ駆動制御装置
とした。
【００２５】
第５の発明は、前記超音波モータ駆動制御装置は、通常の目標速度テーブルと共振周波数回避処理用の目標速度テーブルを有し、前記共振周波数回避処理として、駆動周波数を変更し、更に、下限周波数リミットを前記共振周波数回避処理による変更後の駆動周波数に設定し、更に、目標速度テーブルを、通常のものから共振周波数回避処理用の目標速度テーブルに切り替えることを特徴とする請求項１乃至請求項４のいずれか一項に記載の超音波モータ駆動制御装置とした。
【発明の効果】
【００２６】
本発明の超音波モータの駆動制御装置によれば、超音波モータの温度の高低にかかわらず、確実に駆動周波数が共振周波数を下回ったことを検知し、駆動周波数を共振周波数から回避させることができる。また、共振周波数の誤検知と、２回目以降の共振周波数回避処理を抑制することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の超音波モータ駆動制御装置を適用して構成された撮像装置の要部構造と制御系の概略図
【図２】超音波モータを搭載したレンズにおける駆動周波数と超音波モータ駆動速度との関係を示す模式図
【図３】超音波モータの温度と共振周波数の関係を示す模式図
【図４】本発明の第１実施例の通常用目標速度テーブルと共振周波数用目標速度テーブルと速度制御用テーブルを示す図
【図５】本発明の第１実施例におけるタイマ処理を表すフローチャート
【図６】本発明の第１実施例の超音波モータ駆動制御メイン処理を示すフローチャート
【図７】本発明の第１実施例のパルス制御のフロ−チャート
【図８】本発明の第１実施例のテーブルアドレス切替の要否判断のフローチャート
【図９】本発明の第１実施例のＰＩＤ制御のフローチャート
【図１０】共振周波数を越えて駆動周波数を下げ続けた場合のパルス数変化の模式図
【図１１】本発明の第１実施例の停止処理のフローチャート
【発明を実施するための形態】
【００２８】
図１は本発明の超音波モータ駆動制御装置を適用して構成された撮像装置の要部構造と制御系の概略図である。同図において、１はカメラ本体、２はカメラ本体１に装着可能なレンズである。
【００２９】
レンズ２には以下の装置が搭載されている。
【００３０】
３は光学素子、４は絞り装置、５はフォーカス時に移動するフォーカスレンズ群、６はフォーカスレンズ群移動量を検出する磁気センサ、７は絞り４や超音波モータ８を制御するレンズＣＰＵ、８はフォーカスレンズ群５を駆動する超音波モータである。
【００３１】
レンズＣＰＵ７は、駆動周波数を演算する。そして、演算された駆動周波数を超音波モータ８に印加することによって、超音波モータ８を駆動する。超音波モータ８に印加される周波数は、目的速度や目的の移動量に追従するように、ＰＩＤ制御によって制御される。
【００３２】
また、かかるレンズＣＰＵ７は、通常用目標速度テーブル７０１と共振周波数用目標速度テーブル７０２と速度制御用テーブル７０３と周波数テーブル７０４と検知回路７０５と演算回路７０６と記憶回路７０７と比較回路７０８を有する。
【００３３】
図４は通常用目標速度テーブル７０１と共振周波数用目標速度テーブル７０２と速度制御用テーブル７０３を示す図である。
【００３４】
速度制御用テーブル７０３は、通常用目標速度テーブル７０１や共振周波数用目標速度テーブル７０２において目標速度を決定するための速度テーブルアドレスを決定するためのテーブルである。
【００３５】
かかる速度制御用テーブル７０３には、超音波モータ８があとどれだけ駆動すると駆動が完了となるかを示す、残り駆動パルス数が格納されており、かかる残り駆動パルス数に応じて速度テーブルアドレスが選択されるように構成されている。残り駆動パルスは、磁気センサ６から得られる。また、本発明の実施例においては速度テーブルアドレスは０から７の８つであり、たとえば残り駆動パルス４００以上で速度テーブルアドレス０に該当し、２５０以上４００未満で速度テーブルアドレス１に該当する、というように所定の間隔で速度テーブルアドレスが変わるように構成されている。
【００３６】
次に、通常用目標速度テーブル７０１には、速度テーブルアドレスに応じて、ＰＩＤ制御の演算に使用する目標駆動速度の値が格納されている。目標駆動速度とは、文字通り、今後の駆動速度の目標である。かかる目標駆動速度は残り駆動パルスが多ければ高くなり、少なければ低くなる。かかる目標駆動速度は後述のＰＩＤ制御演算において用いられる。
【００３７】
次に、周波数テーブル７０４について説明する。図４に不図示の周波数テーブル７０４には、周波数テーブルアドレスに応じて、超音波モータ８に印加する駆動周波数が格納されている。かかる周波数テーブルアドレスは、ＰＩＤ制御の演算結果から得られる。周波数テーブル７０４は、該当の周波数テーブルアドレスに対応した周波数を出力できるよう制御されている。
【００３８】
つまり、本発明においては、まず、磁気センサ６から残り駆動パルスの情報を得て、速度制御用テーブル７０３から該当の残り駆動パルスに対応する速度テーブルアドレスを読み出す。次に、通常用目標速度テーブル７０１か、後述する共振周波数用目標速度テーブル７０２のいずれか一方を用いて、該当の速度テーブルアドレスに対応する目標速度を読み出す。そして、かかる目標速度を用いてＰＩＤ制御の演算を行い、ＰＩＤ制御の演算結果から周波数テーブルアドレスを求め、周波数テーブル７０４から該当の周波数テーブルアドレスに対応する周波数を読み出し、これを超音波モータ８に印加することで、駆動制御を行っている。
【００３９】
次に、共振周波数用目標速度テーブル７０２について説明する。共振周波数用目標速度テーブル７０２は、レンズＣＰＵ７が、超音波モータ８の駆動時に、駆動周波数が共振周波数を下回っていると判断した場合、通常用目標速度テーブル７０１に代わって、前述の目標駆動速度を決定するためのテーブルである。
【００４０】
かかる共振周波数用目標速度テーブル７０２も、通常用目標速度テーブル７０１同様、速度テーブルアドレスに応じて、ＰＩＤ制御の演算に使用する目標駆動速度の値が格納されている。
【００４１】
また、共振周波数用目標速度テーブル７０２を用いる場合、通常用目標速度テーブル７０１を用いる場合に比べ、目標駆動速度が低くなる。
【００４２】
これは、同じ速度テーブルアドレスに対して、共振周波数用目標速度テーブル７０２の方が通常用目標速度テーブル７０１よりも、低い目標速度が対応しているためである。
【００４３】
前述の通り、共振周波数用目標速度テーブル７０２は、超音波モータ８の駆動時に、駆動周波数が共振周波数を下回っていると判断した場合、通常用目標速度テーブル７０１にかわって用いるテーブルである。
【００４４】
駆動周波数が共振周波数を下回っている場合は、超音波モータ８の駆動速度が低くなっている。
【００４５】
上記のような場合には、通常用目標速度テーブル７０１において、高い目標駆動速度でＰＩＤ制御の演算を行うと、おのずと算出される周波数テーブルアドレスは低い周波数に対応するものとなってしまう。すなわち、すでに駆動周波数が共振周波数を下回っているにもかかわらず、更に周波数を低くし続けても超音波モータ８の駆動速度は上がらず、むしろさらに下がるか、もしくは駆動自体が停止してしまう。
【００４６】
そのため、第１実施例では、駆動周波数が共振周波数を下回っている場合、目標速度テーブルを通常用目標速度テーブル７０１から共振周波数用目標速度テーブル７０２に切り替え、目標駆動速度を下げることで、駆動周波数がこれ以上下がってしまうことを防ぐように制御する。
【００４７】
次に、駆動周波数が共振周波数を下回っている場合、目標速度テーブルを通常用目標速度テーブル７０１から共振周波数用目標速度テーブル７０２に切り替え、目標駆動速度を下げることで、駆動周波数がこれ以上下がってしまうことを防ぐことができる理由について説明する。
【００４８】
前述したとおり、超音波モータは駆動周波数を下げると駆動速度が上がる。すなわち、速度を上げようとすればおのずと低い駆動周波数が必要となるので、目標駆動速度が高ければ高いほどＰＩＤ演算によって算出される周波数テーブルアドレスは低い駆動周波数に対応するものとなる。
【００４９】
しかしながら、駆動周波数を下げると超音波モータの駆動速度が上がるのは、駆動周波数が共振周波数を越えない範囲内という前提においてのみいえることである。超音波モータは、駆動周波数が共振周波数を下回るとかえって駆動速度が落ちるか、または駆動が停止してしまう。
【００５０】
前述の通り、目標駆動速度が高ければ高いほどＰＩＤ演算によって算出される周波数テーブルアドレスは低い駆動周波数に対応するものとなる。そのため、駆動周波数が共振周波数を下回っている状態で目標速度を上げれば、すでに共振周波数を下回っている駆動周波数がさらに低くなってしまう。
【００５１】
したがって、本発明の実施例では、目標速度テーブルを通常用目標速度テーブル７０１から共振周波数用目標速度テーブル７０２に切り替えて、目標駆動速度を下げる。これにより、駆動周波数がこれ以上下がってしまうことを防ぐことができる。
【００５２】
次に、検知回路７０５は、ＰＩＤ制御において、超音波モータ８の移動量を検知する。超音波モータ８の移動量は、まず、前述のフォーカスレンズ群５の移動量を検出する磁気センサ６によって検知され、矩形波の信号に生成される。これを検知回路７０５がＰＩＤ制御周期毎にパルス数でカウントすることによって、超音波モータ８の移動量がカウントされる。
【００５３】
検知回路７０５は、ＰＩＤ制御周期毎に超音波モータ８の移動量が何パルス分かをカウントするので、これにより、ＰＩＤ制御周期毎の超音波モータ８の駆動速度もわかる。
【００５４】
後述するＰＩＤ制御の演算には実際速度を用いるが、かかる実際速度は、最新のＰＩＤ制御周期のパルス数から求められる。
【００５５】
次に、演算回路７０６は、ＰＩＤ制御の演算結果の値を算出する。
【００５６】
前述の通り、ＰＩＤ制御では、超音波モータ８の目的速度や目的の移動量に追従するように、レンズＣＰＵ７が駆動周波数信号を超音波モータ８に印加する。
【００５７】
これにより、ＰＩＤ制御周期毎にレンズＣＰＵ７は目標速度と実際の駆動速度との誤差を埋めるようにＰＩＤ制御で求めた演算結果の値を算出し、超音波モータ８の駆動を加速したり減速したりする。
【００５８】
第１実施例においてＰＩＤ制御で求めた演算結果の値とは、以下の式で算出される。また、第１実施例のＰＩＤ演算では、ＰＩＤ制御周期毎に演算をして演算結果の値を更新するように出力の変化分だけを計算する方法を用いている。すなわち、前回まで出力している値に上記の式で計算した値を加えて今回の出力としている。
2014045559.tif 000003
2014045559.tif 000004
2014045559.tif 000005
2014045559.tif 000006
2014045559.tif 000007
2014045559.tif 000008
2014045559.tif 000009
2014045559.tif 000010
【００５９】
以下、上記式について詳しく説明する。まず、上記式のうち、
2014045559.tif 000011
の項はＰ動作による制御の値を算出するものであり、
ＰＩＤ演算を開始してから、周期毎にこの結果を足していく。
その結果、
2014045559.tif 000012
となり、Ｐ動作の基本形の式となる。
同様に、
2014045559.tif 000013
の項はＩ動作による制御の値を算出するものであり、
ＰＩＤ演算を開始してから、周期毎にこの結果を足していく。
その結果、
2014045559.tif 000014
2014045559.tif 000015
ΔＴを十分小さくとれば、近似的に積分になっていることがわかる。よって、上記式の左辺とほぼ等しいと考えることができ、Ｉ動作の基本形の式となる。
この二つの値を組み合わせることで、ＰＩ動作による制御で求めた演算結果の値は算出することができる。
同様に、
2014045559.tif 000016
の項はＤ動作による制御の値を算出するものであり、
ＰＩＤ演算を開始してから、周期毎にこの結果を足していく。
その結果、
2014045559.tif 000017
積分同様に、ΔＴを十分小さくとれば、上記式の左辺と考えてよいので、Ｄ動作の基本形の式となる。
この三つの値を組み合わせることで、本発明におけるＰＩＤ制御で求めた演算結果の値は算出される。
【００６０】
また、目標速度は前述の通り、通常用目標速度テーブル７０１または共振周波数用目標速度テーブル７０２により決定され、実際速度は検知回路７０５によりカウントされる最新のＰＩＤ制御周期のパルス数から求められる。
【００６１】
上記の通り、本発明においては、まず演算回路７０６が前述の周波数テーブルアドレスのもととなる、ＰＩＤ制御で求めた演算結果の値を算出する。
【００６２】
次に、算出された演算結果に、レンズＣＰＵ７に予め記憶されたモータ個々の基本周波数と温度環境の影響に関する係数を加算することで、周波数テーブルアドレスを算出する。
【００６３】
次に、レンズＣＰＵ７は周波数テーブル７０４から算出された周波数テーブルアドレスと対応する周波数を読み出し、超音波モータ８に印加することで超音波モータ８を駆動している。
【００６４】
記憶回路７０７は、ＰＩＤ制御において、過去のＰＩＤ制御による超音波モータ８のパルス数とＰＩＤ制御で求めた演算結果の値を記憶しておく。
【００６５】
第１実施例においては、ＰＩＤ制御による超音波モータ８のパルス数は最新の制御周期から、最新の制御周期の３周期前までの４つ分の結果を記憶する。また、ＰＩＤ制御で求めた演算結果の値は最新の１周期前から最新の４周期前までの４つ分の結果を記憶する。ＰＩＤ制御で求めた演算結果の最新の結果は、未来の駆動分にあたるものであり、現在の駆動周波数が共振周波数を下回っているかどうかの判断には用いないため、記憶回路７０７に記憶しない。
【００６６】
比較回路７０８は、記憶回路７０７に記憶されたＰＩＤ制御で求めた演算結果の値のうち、最新の２周期前のＰＩＤ制御で求めた演算結果の値と最新の１周期前のＰＩＤ制御で求めた演算結果の値、最新の３周期前のＰＩＤ制御で求めた演算結果の値と最新の２周期前のＰＩＤ制御で求めた演算結果の値、最新の４周期前のＰＩＤ制御で求めた演算結果の値と最新の３周期前のＰＩＤ制御で求めた演算結果の値をそれぞれ比較し、どちらが大きいかを判断する。
【００６７】
また、比較回路７０８は、同様に記憶回路７０７に記憶された超音波モータの移動量のうち、超音波モータの最新の移動量と最新の１周期前の超音波モータの移動量、最新の１周期前にカウントした超音波モータの移動量と最新の２周期前にカウントした超音波モータの移動量、最新の２周期前にカウントした超音波モータの移動量と最新の３周期前にカウントした超音波モータの移動量をそれぞれ比較し、どちらが大きいかを判断する。
【００６８】
一方、撮像装置１には以下の装置が搭載されている。
【００６９】
９は昇降動可能なミラー、１０は前記ミラー９を昇降動させるためのミラー駆動モータ、１１は公知のペンタプリズム、１２はファインダ接眼レンズ、１３はシリコンフォトダイオード等から成る公知の測光素子、１４はＣＣＤラインセンサ等から成る公知の測距素子、１５はシャッター、１６はフィルムカメラにおけるフィルムあるいはデジタルカメラにおける固体撮像素子が位置する撮像面、１７は公知の液晶装置等から成る表示器、１８は撮影者の押し込み動作によって撮影の信号を発信するレリーズボタン、１９はカメラの露出モード等を切り替えるモードダイヤル、２０は電源、２１はカメラ本体１とレンズ鏡筒２とを接続するマウント２２に設けられた電気接点２３及び２４を介してシリアル伝送線でレンズＣＰＵ７に接続されたカメラＣＰＵ２１である。カメラＣＰＵ２１は測光素子１３や表示器１７などの制御を行う。
【００７０】
次に、本発明の超音波モータ駆動制御の処理について説明する。
【００７１】
図５、図６、図７、図８、図９、図１１は第１実施例の超音波モータ駆動制御処理のフローチャートである。
【００７２】
かかるフローチャートを用いて、以下に第１実施例における超音波モータの駆動制御処理の手順について述べる。
【００７３】
まず、図５は本発明の第１実施例における、周波数制御のメイン処理を行うにあたって、定期的に行われるタイマ処理を表すフローチャートである。
【００７４】
第１実施例における超音波モータ駆動処理は、定期的にタイマ処理によって制御される。詳しくは、ＡＦ駆動準備が完了している場合、＃０において３００μ秒経過したか否かを判断し、３００μ秒経過している場合にのみ、駆動制御メイン処理に進む。つまり、第１実施例における超音波モータ駆動処理は３００μ秒周期でループして行われる。かかるタイマ処理は不図示のハードウェアカウンタにより、カウントされる。
【００７５】
次に、超音波モータ駆動制御メイン処理に入る。
【００７６】
図６は、第１実施例の超音波モータ駆動制御メイン処理を示すフローチャートである。
【００７７】
超音波モータの駆動制御のメイン処理においては、まず＃１において、フォーカス駆動中フラグがオンか否かを判断する。かかるフォーカス駆動中フラグは、後述するＰＩＤ制御内等で駆動周波数を決定し、超音波モータを駆動する直前にオンとなり、駆動が終了するまで継続する。
【００７８】
＃１においてフォーカス駆動中フラグがオンと判断された場合は＃２に進む。フォーカス駆動中フラグがオンでないなら、＃３に進む。
【００７９】
＃２に進むと、パルス制御に入る。図７はパルス制御のフロ−チャートである。パルス制御内では、まず＃２０１において残り駆動パルスを検出する。残り駆動パルスとは、目標位置に到達するまでに必要なパルス数である。
【００８０】
次に、＃２０２において残り駆動パルスが０か否かを判断する。残り駆動パルスが０なら＃６に進み、停止処理を行う。残り駆動パルスが０でないなら＃２０３に進み、速度テーブルアドレス切替の要否を判断する。
【００８１】
図８は速度テーブルアドレス切替の要否判断のフローチャートである。
【００８２】
速度テーブルアドレス切替の要否を判断するためには、まず、＃２０３１において、使用している速度テーブルアドレスに対応する値、すなわち目標駆動速度を示す値が残り駆動パルス以上か否かを判断する。
【００８３】
使用している速度テーブルアドレスに対応する目標駆動速度の値が残り駆動パルス以上であれば、速度テーブルアドレスを上げて、目標速度を下げることができるため、＃２０３２に進む。
【００８４】
使用している速度テーブルアドレスの目標駆動速度の値が残り駆動パルス以上でなければ、速度テーブルアドレスを上げて目標速度を下げる必要はないので、テーブルアドレス切替を行わずにテーブルアドレス切替を終了し、＃２０５に進む。
【００８５】
一方、＃２０３２では、使用している速度制御用テーブルの速度テーブルアドレスが７未満か否かを判断する。第１実施例の速度テーブルアドレスは０から７の８つである。第１実施例において使用している速度制御用テーブルの速度テーブルアドレスが仮に７であれば、これ以上速度テーブルアドレスを上げて目標速度を下げることはできない。よって、速度テーブルアドレスを上げる処理がそもそも可能か否か判断するために、＃２０３２において、使用している目標速度テーブルのテーブルアドレスが７未満か否かの判断が必要となる。
【００８６】
したがって、使用している目標速度テーブルの速度テーブルアドレスが７未満のときはテーブルアドレスを上げることができるので＃２０４に進み、速度テーブルアドレスを１上げる。また、使用している速度制御用テーブルの速度テーブルアドレスが７未満でないときは速度テーブルアドレスを上げることができないので、＃２０５に進む。
【００８７】
次に、＃２０５において、共振周波数フラグオンか否かを判断する。共振周波数フラグがどのような時にオンとなるかは後述する。
【００８８】
共振周波数フラグがオンの場合には＃２０６において共振周波数用目標速度テーブル７０２に切り替えを行う。
【００８９】
前述の通り、共振周波数用目標速度テーブル７０２は、超音波モータの駆動時に、駆動周波数が共振周波数を下回っていると判断した場合、通常用目標速度テーブル７０１に代わって、目標駆動速度を決定するためのテーブルである。
【００９０】
共振周波数フラグがオンのときは、目標速度テーブルを通常用目標速度テーブル７０１から共振周波数用目標速度テーブル７０２に変えることによって、超音波モータの目標速度を下げる必要がある。
【００９１】
すでに駆動周波数が共振周波数を下回っているにもかかわらず、目標速度を変更せず、目標速度にあわせてさらに駆動周波数を低くし続ければ、超音波モータの駆動速度はさらに下がるか、若しくは駆動自体が停止してしまうからである。
【００９２】
＃２０６において、共振周波数用目標速度テーブル７０２に切り替えを行うと、次に＃２０７において共振周波数フラグ２をオンとする。
【００９３】
共振周波数フラグがオンでなくとも、かかる共振周波数２がオンの場合には、共振周波数用目標速度テーブル７０２への切り替えを行う。
【００９４】
共振周波数フラグ２がオンの場合は、すでに一度、共振周波数条件判定がなされていることを示している。つまり、＃２０７は、２回目以降の共振周波数条件判定を防ぐための処理である。
【００９５】
＃２０７において共振周波数フラグ２がオンとなると、＃２０８でパルス制御が終了する。
【００９６】
次に、＃２０５において、共振周波数フラグオンではないと判断され、＃２０９に進んだ場合について説明する。
【００９７】
＃２０９では共振周波数フラグ２がオンか否かを判断する。共振周波数フラグ２は、前述の通り、＃２０７においてオンとなる。したがって、＃２０９で共振周波数フラグ２がオンであると判断されるのは、＃２０７で共振周波数フラグ２がオンとなった後、前述の＃０のタイマ処理でループして、また＃２０９の処理まで進んだ場合である。
【００９８】
＃２０９において、共振周波数フラグ２がオンであると判断された場合には＃２１０に進み、共振周波数フラグ２がオンであると判断されなかった場合には＃２１１に進む。
【００９９】
前述したとおり、共振周波数フラグ２がオンの場合には、＃２１０において共振周波数用目標速度テーブル７０２への切り替えを行う。これは、２回目以降の共振周波数条件判定をされることを防ぐためである。
【０１００】
＃２０９において共振周波数フラグ２がオンではないと判断された場合には＃２１１に進み、通常用目標速度テーブル７０１を使用する。つまり、目標速度テーブルの変更を行わない。
【０１０１】
＃２０５において共振周波数フラグオンと判断されず、更に＃２０９で共振周波数２フラグオンと判断されていないので、共振周波数用目標速度テーブル７０２に切り替える必要がないからである。
【０１０２】
＃２１１または＃２１０の処理を終えると、それぞれ＃２０８に進み、パルス制御が終了する。
【０１０３】
＃２０８においてパルス制御が終了すると、＃３に進む。
【０１０４】
次に、＃３において、速度安定フラグオンか否かの判断を行う。＃３において、速度安定フラグオンか否かの判断に入るのは、＃２０８においてパルス制御が終了した場合と、＃１においてフォーカス駆動中フラグオンと判断されなかった場合である。
【０１０５】
速度安定フラグは後述する＃７の超音波モータスイープ処理を行うとオンとなる。超音波モータスイープ処理とは、超音波モータの動き出しの処理である。第１実施例において、超音波モータは停止状態から動き出す際に駆動周波数を下げていきスイープするという処理を行っている。また、かかる処理において指定時間内に４パルス分移動したことを検知すると速度安定フラグがオンとなる。つまり、速度安定フラグは、超音波モータの挙動が不安定な動きだしの時点を越えて、速度が安定したことを示すフラグである。
【０１０６】
速度安定フラグがオンの場合には、＃４に進み、ＰＩＤ制御に入る。図９はＰＩＤ制御のフローチャートである。
【０１０７】
ＰＩＤ制御内では、まず＃４０１において累積パルス数のカウントを行う。これは、前回のＰＩＤ制御周期からの累積パルス数であり、最新のＰＩＤ制御周期に実際に駆動した最新のパルス数である。つまり、＃４０１でカウントされたパルス数がＰＩＤ演算に用いられる、実際速度である。
【０１０８】
次に、＃４０２において前回のＰＩＤ制御周期から１．５ｍ秒経過したか否かを判断する。前回のＰＩＤ制御から１．５ｍ秒経過していなければ、次のＰＩＤ制御は行わないからである。
【０１０９】
１．５ｍ秒経過した場合には＃４０３に進み、１．５ｍ秒経過していない場合には＃４１０に進む。
【０１１０】
次に、＃４０３では最新パルス数カウントと前回分までのＰＩＤ演算値を更新する。
【０１１１】
次に、＃４０４では共振周波数条件判定されるか否かを判断する。＃４０４では４つの条件全てに合致するか否かで、共振周波数条件判定されるか否かを判断する。
【０１１２】
図１０は共振周波数を越えて駆動周波数を下げ続けた場合のパルス数変化の模式図である。
【０１１３】
まず、１つ目の条件は、最新の１周期前にカウントした超音波モータの移動量の方が、最新の移動量よりも大きく、最新の２周期前にカウントした超音波モータの移動量の方が、最新の１周期前にカウントした移動量よりも大きく、最新の３周期前にカウントした超音波モータの移動量の方が、最新の２周期前にカウントした移動量よりも大きいことである。
【０１１４】
第１実施例では、比較回路７０８が、記憶回路７０７に記憶されている超音波モータ８の移動量を比較することで、上記１つ目の条件に合致するか否かを判断する。
【０１１５】
超音波モータ８のパルス数は前述の通り、超音波モータ８の駆動量である。
【０１１６】
したがって、超音波モータ８のパルス数が小さくなっていく場合、カウントする周期は変わっていないのだから、超音波モータ８の速度は下がっていると判断される。
【０１１７】
＃４０４は、駆動周波数が共振周波数を下回っている場合を検知するものであるので、条件として超音波モータ８の速度が下がっていることを検知する必要がある。
【０１１８】
駆動速度を上げようとしているのに駆動速度が下がっている状態が、駆動周波数が共振周波数を下回っている場合であると言えるからである。
【０１１９】
よって＃４０４では１つ目の条件の確認が必要となる。
【０１２０】
図１０の場合を例として、１つ目の条件について説明する。
【０１２１】
図１０の場合、最新の１周期前にカウントした超音波モータ８の移動量の方が、最新の移動量よりも大きく、最新の２周期前にカウントした超音波モータ８の移動量の方が、最新の１周期前にカウントした移動量よりも大きく、最新の３周期前にカウントした超音波モータ８の移動量の方が、最新の２周期前にカウントした移動量よりも大きく、最新の４周期前にカウントした超音波モータ８の移動量の方が、最新の３周期前にカウントした移動量よりも大きい。
【０１２２】
そのため、図１０のような場合には、最新の４周期前から最新の周期にかけて超音波モータ８の速度は下がっているとして、最新の１周期前の時点で１つ目の条件に合致したとされる。
【０１２３】
ただし、比較回路７０８が、超音波モータ８の移動量を比較する際、最新の１周期前にカウントした超音波モータ８の移動量や、最新の２周期前にカウントした移動量や、最新の３周期前にカウントした移動量が記憶回路７０７にない場合、比較回路７０８はその移動量を０として比較を行う。
【０１２４】
検知回路７０５が最新の１周期前にカウントした超音波モータの移動量や、最新の２周期前にカウントした移動量や、最新の３周期前にカウントした移動量が０であった場合、０より小さい移動量はないため、１つ目の条件には合致しない。
【０１２５】
次に、２つ目の条件は、演算回路７０６がＰＩＤ制御で求めた演算結果の値に関するものである。詳しくは、最新の１周期前のＰＩＤ制御で求めた演算結果の値の方が、最新の２周期前の演算結果の値よりも大きく、最新の２周期前のＰＩＤ制御で求めた演算結果の値の方が、最新の３周期前の演算結果の値よりも大きく、最新の３周期前のＰＩＤ制御で求めた演算結果の値の方が、最新の４周期前演算結果の値よりも大きいことである。
【０１２６】
第１実施例では、比較回路７０８が、記憶回路７０７に記憶されているＰＩＤ制御で求めた演算結果の値を比較することで、上記２つ目の条件に合致するか否かを判断する。
【０１２７】
ＰＩＤ制御で求めた演算結果が大きくなっているのであれば、レンズＣＰＵ７は駆動速度を上げるよう、制御しているということになる。
【０１２８】
対して、ＰＩＤ制御で求めた演算結果の値が徐々に小さくなっている場合には、駆動速度を下げようとしているということになる。
【０１２９】
＃４０４は、駆動周波数が共振周波数を下回っている場合を検知するものであるので、条件として駆動速度を上げようとしていることを検知する必要がある。
【０１３０】
前述の通り、超音波モータは駆動周波数を下げれば駆動速度が上がるため、駆動速度を上げようとすれば駆動周波数を低くすることとなる。しかしながら超音波モータには共振周波数があり、駆動周波数がかかる共振周波数を下回れば、駆動速度はかえって低くなる。したがって、駆動周波数が共振周波数を下回っている場合とは、駆動周波数を下げることによって駆動速度を上げようとしているのに、かえって駆動速度が下がっているという状態といえる。そのため、＃４０４では、２つ目の条件の確認が必要となる。
【０１３１】
ただし、比較回路７０８が、超音波モータ８の移動量を比較する際、最新の１周期前のＰＩＤ制御で求めた演算結果の値や、最新の２周期前のＰＩＤ制御で求めた演算結果の値や、最新の３周期前のＰＩＤ制御で求めた演算結果の値や、最新の４周期前のＰＩＤ制御で求めた演算結果の値が記憶回路７０７にない場合、比較回路７０８はそのＰＩＤ制御で求めた演算結果の値を０として比較を行う。
【０１３２】
最新の１周期前のＰＩＤ制御で求めた演算結果の値や、最新の２周期前のＰＩＤ制御で求めた演算結果の値や、最新の３周期前のＰＩＤ制御で求めた演算結果の値が０であった場合、０より小さい演算結果の値はないため、２つ目の条件には合致しない。
【０１３３】
次に、更に確実に駆動周波数が共振周波数を下回っている場合を検知するための、３つ目の条件について説明する。
【０１３４】
３つ目の条件は、記憶回路７０７に記憶された最新のＰＩＤ制御周期の超音波モータの移動量が所定のパルス数以上であることである。  
【０１３５】
第１実施例においては、検知回路７０５がカウントした最新の超音波モータの移動量が１０パルス以上の場合に、３つ目の条件に合致したとされる。
【０１３６】
検知回路７０５がカウントした最新のＰＩＤ制御周期の超音波モータ８の移動量が所定のパルス以下の場合には、超音波モータ８の駆動開始から間もない可能性があるということである。
【０１３７】
第１実施例の３つ目の条件において、所定のパルスとは、１０パルスである。
【０１３８】
超音波モータ８の駆動開始から間もない時点では、まだ超音波モータ８の挙動が安定しないことがある。
【０１３９】
すなわち、前述の１つ目の条件と２つ目の条件に合致したとしても、その原因が、駆動周波数が共振周波数を下回っていることではなく、超音波モータ８の駆動開始から間もないことから、超音波モータ８の挙動が安定していないことである場合が考えられる。
【０１４０】
＃４０４は、駆動周波数が共振周波数を下回っている場合を検知するものであるので、超音波モータ８が駆動を開始してからしばらく経っており、超音波モータ８の駆動がすでに安定していることを検知する必要がある。
【０１４１】
超音波モータ８の駆動がすでに安定しているなら、駆動速度を上げようとしているのに駆動速度が下がっている状態の原因が、超音波モータ８の駆動直後の不安定ではないと判断できるからである。
【０１４２】
よって＃４０４では３つ目の条件の確認が必要となる。
【０１４３】
次に、更に確実に駆動周波数が共振周波数を下回っている場合を検知するための、４つ目の条件について説明する。
【０１４４】
４つ目の条件は、最新の４周期前のパルス数と最新のパルス数の差が所定のパルス数以上であることである。
【０１４５】
第１実施例の４つ目の条件において、所定のパルスとは、１０パルスである。
【０１４６】
第１実施例においては、検知回路７０５が検知した最新の４周期前のパルス数と最新のパルス数の差を比較回路７０８が比較することで４つ目の条件に合致するか否かを判断する。
【０１４７】
駆動周波数が、共振周波数を下回った場合、駆動パルス数は急激に落ちるため、最新の４周期前のパルス数から最新のパルス数の間に１０パルス以上の大きな差がなければ駆動周波数が共振周波数を下回ったとは考えられないからである。
【０１４８】
＃４０４ではレンズＣＰＵ７が上記４つの条件をすべて満たしたと判断した場合には＃４０５に進み、共振周波数フラグをオンとする。一方、１つでも合致しない条件があった場合には＃４１１に進み、共振周波数フラグをクリアする。この＃４１１において共振周波数フラグをクリアする場合とは、過去のＰＩＤ制御周期で共振周波数フラグがオンとなり、前述の＃０のタイマ処理でループした場合である。
【０１４９】
なお、＃４０４の４つの条件のうち、１つ目の条件と２つ目の条件だけでも駆動周波数が共振周波数を越えたか否かを判断可能である。しかしながら、上述の通り、３つ目の条件と４つ目の条件についても判断を加えた方が、より確実に駆動周波数が共振周波数を越えたか否かを判断可能となる。
【０１５０】
次に、＃４０６において共振周波数フラグがオンか否かを判断する。＃４０５において共振周波数フラグがオンとされていれば＃４０７に進み、＃４１１で共振周波数フラグがクリアされていれば＃４１２に進む。
【０１５１】
次に、＃４０７において共振周波数フラグ２がオンか否かを判断する。かかる共振周波数フラグ２が前述の＃２０７においてオンになっている場合には＃４０８に進み、共振周波数フラグ２がオンになっていない場合には＃４１５に進む。
【０１５２】
＃４０７において共振周波数フラグ２がオンと判断されずに＃４１５に進む場合は、直前の＃４０５で初めて共振周波数フラグがオンとなり、まだ、共振周波数フラグ２はオンになっていない場合である。この場合には＃４１５において駆動周波数を最新のＰＩＤ制御周期の４周期前の駆動周波数に、所定の周波数の値を足したものに変更する。
【０１５３】
駆動周波数を最新のＰＩＤ制御周期の４周期前の駆動周波数に、所定の周波数の値を足したものに変更する理由について以下に説明する。
【０１５４】
＃４０４において、検知回路７０５が最新の１周期前にカウントした超音波モータの移動量の方が、最新の移動量よりも大きく、最新の２周期前にカウントした超音波モータの移動量の方が、最新の１周期前にカウントした移動量よりも大きく、最新の３周期前にカウントした超音波モータの移動量の方が、最新の２周期前にカウントした移動量よりも大きく、且つ、演算回路７０６が最新の１周期前のＰＩＤ制御で求めた演算結果の値の方が、最新の２周期前の演算結果の値よりも大きく、最新の２周期前のＰＩＤ制御で求めた演算結果の値の方が、最新の３周期前の演算結果の値よりも大きく、最新の３周期前のＰＩＤ制御で求めた演算結果の値の方が、最新の４周期前の演算結果の値よりも大きいことが比較回路７０８の行った比較によって確認されている。
【０１５５】
上記の、検知回路７０５が最新の３周期前にカウントした超音波モータの移動量の方が、最新の２周期前にカウントした移動量よりも大きく、且つ、最新の２周期前のＰＩＤ制御で求めた演算結果の値の方が、最新の３周期前の演算結果の値よりも大きいということから、最新の３周期前の時点で、駆動周波数が共振周波数を下回っていることが分かる。
【０１５６】
したがって、最新の４周期以上前の駆動周波数でなければ共振周波数を回避することができない。
【０１５７】
よって、第１実施例では共振周波数回避のため、最新の４周期前の駆動周波数を基にした駆動周波数に変更している。
【０１５８】
第１実施例では、レンズＣＰＵ７が共振周波数を下回ったと判断した時点から、最新の４周期前の駆動周波数を共振周波数と考え、この最新の４周期前の駆動周波数に最も超音波モータ８の電力消費量の少ない周波数と共振周波数の差分以上の値を足すことで、共振周波数を回避することができる。 
【０１５９】
すなわち、かかる所定の周波数は、最も超音波モータの電力消費量の少ない周波数と共振周波数の差分の値以上のものである必要がある。
【０１６０】
第１実施例の＃４１５の処理において所定の周波数は、０．８ｋＨｚである。
【０１６１】
＃４１５で駆動周波数を変更すると、次に＃４１６で周波数下限リミットを変更する。周波数下限リミットを変更する理由について以下に述べる。周波数下限リミットとは、予め、駆動周波数として用いることができる周波数の下限を定めたものである。前述の通り、超音波モータは基本的に駆動周波数を下げれば速度が上がるが、駆動周波数が共振周波数を下回ると、逆に速度が下がったり、駆動が止まってしまったりするため、周波数下限リミットを設定しておく必要がある。
【０１６２】
本発明では予め、レンズＣＰＵ７には下限周波数リミットが設定されている。しかしながら、共振周波数は温度によって変化するものである。
【０１６３】
そのため、下限周波数リミットを予め設定したとしても、超音波モータの温度変化により共振周波数が高くなってしまうことにより、駆動周波数が共振周波数を下回ってしまい、超音波モータの駆動速度が急に低くなってしまうことがありうる。
【０１６４】
そのため駆動周波数が共振周波数を下回ってしまった場合、レンズＣＰＵ７は共振周波数回避処理として、下限周波数リミットの更新を行う。これによって新たに設定される下限周波数リミットは、＃４１５で変更した新しい駆動周波数である、最新の４周期前の駆動周波数に所定の周波数の値を足した周波数とする。
【０１６５】
これは、前述の通り、最新の４周期前の駆動周波数に所定の周波数の値を足した周波数は、共振周波数を下回る周波数にならないからである。
【０１６６】
上記のように、＃４１６でレンズＣＰＵ７が周波数下限リミットを更新することにより、共振周波数を１度回避したら、２度目以降、同じ共振周波数を回避するために複雑な処理をしなくてもよいことになる。
【０１６７】
＃４１５及び＃４１６において、レンズＣＰＵ７が駆動周波数と周波数下限リミットを変更すると、＃４０９に進む。＃４０９では超音波モータ８の駆動を開始し、フォーカス駆動中フラグをオンとする。次に＃４１０に進み、ＰＩＤ制御を完了する。
【０１６８】
次に、＃４０７において共振周波数フラグ２がオンであると判断され、＃４０８に進んだ場合について説明する。
【０１６９】
＃４０８では駆動周波数を周波数下限リミットに変更する。
【０１７０】
＃４０８は＃４０７において共振周波数フラグ２がオンであると判断された場合である。すなわち、＃４０８に進んだ場合は共振周波数フラグがオンとなるのが２度目であるということである。
【０１７１】
そのため、すでに周波数下限リミットを変更済みであるので、駆動周波数を、１度目に共振周波数フラグがオンとなった際に駆動周波数を＃４１６で設定した周波数下限リミットに変更する。
【０１７２】
駆動周波数を＃４１６で設定した周波数下限リミットに変更すると、＃４０９に進む。＃４０９では超音波モータ８の駆動を開始し、フォーカス駆動中フラグをオンとする。
【０１７３】
次に＃４１０に進み、ＰＩＤ制御を完了する。
【０１７４】
次に、＃４０６においてレンズＣＰＵ７に共振周波数フラグオンではないと判断され、＃４１２に進んだ場合について説明する。
【０１７５】
＃４１２ではレンズＣＰＵ７が、共振周波数フラグ２がオンか否かを判断する。共振周波数フラグ２がオンであると判断された場合には＃４１３に進み、共振周波数フラグ２がオンであると判断されなかった場合には＃４１７に進む。
【０１７６】
＃４１３ではレンズＣＰＵ７が、駆動周波数が目標速度よりも速いか否かを判断する。駆動速度が目標速度より速いと判断された場合には＃４１４に進み、ＰＩＤ制御を行う。
【０１７７】
＃４１３と＃４１４の目的について説明する。
【０１７８】
＃４０６において共振周波数フラグがオンとなり、＃４０７においてレンズＣＰＵ７に共振周波数フラグ２がオンではないと判断された場合、＃４１６において下限周波数リミットの変更処理をすることで、この後、駆動周波数が共振周波数を下回ることを防いでいる。
【０１７９】
しかしながら、この後の処理において、変更後の目標速度が、変更後の下限リミットより低い周波数に設定された場合には、超音波モータ８が目標速度に達する前に、駆動周波数が下限リミットに引っかかってしまうことが考えられる。
【０１８０】
この場合、速度を上げようと駆動周波数を下げるように演算回路７０６のＰＩＤ制御が働いてしまうが、すでに駆動周波数が下限周波数リミットにかかってしまっているため、ＰＩＤ制御をしようにも、これ以上周波数を下げることができず、ＰＩＤ制御で求めた演算結果だけがどんどん大きくなり、駆動周波数が低くなっていってしまう。
【０１８１】
そこで、上記のような状態を防ぐために＃４１３と＃４１４の処理がある。＃４１３において目標速度より早いと判断された場合は、＃４１４において、演算回路７０６がＰＩＤ演算を行うことで、駆動周波数を上げ、駆動速度を落とすことができる。
【０１８２】
一方、＃４１３において、駆動速度が目標速度より速いと判断されなかった場合は、ＰＩＤ演算を行わない。演算回路７０６のＰＩＤ演算により、目標速度に追従する為、駆動速度を上げようとして駆動周波数を下げた結果、超音波モータ８が目標速度に達する前に、駆動周波数が変更後の周波数下限リミットにひっかかり、ＰＩＤ制御で求めた演算結果だけがどんどん大きくなり、駆動周波数が低くなっていってしまうことを防ぐためである。
【０１８３】
これにより、周波数下限リミットを変更後、周波数下限リミットは共振周波数を回避しても、変更後の目標速度が周波数下限リミット変更後より低い駆動周波数に設定され、目標速度に達する前に駆動周波数が下限リミットに引っかかり、ＰＩＤ制御で求めた演算結果だけがどんどん大きくなり、駆動周波数が低くなってしまうことを防ぐことができる。
【０１８４】
＃４１３において駆動周波数が目標速度よりも速いと判断されなかった場合には＃４０９に進む。
【０１８５】
＃４０９では超音波モータ８の駆動を開始し、フォーカス駆動中フラグをオンとする。そして＃４１０に進み、ＰＩＤ制御を完了する。
【０１８６】
次に、＃４１２において共振周波数フラグ２がオンではないと判断され、＃４１７に進んだ場合について説明する。
【０１８７】
＃４１７では演算回路７０６がＰＩＤ演算処理を行う。これは＃４０６で共振周波数フラグがオンではないと判断され、更に、＃４１２で共振周波数フラグ２がオンではないと判断されていることから、＃４０８や＃４１５や＃４１６のような共振周波数の回避処理を行う必要がなく、通常のＰＩＤ演算をそのまま行っても問題ないからである。
【０１８８】
＃４１７でＰＩＤ演算処理を行うと、＃４１８で駆動周波数を＃４１７から算出された駆動周波数に更新する。
【０１８９】
次に、＃４０９では超音波モータ８の駆動を開始し、フォーカス駆動中フラグをオンとする。そして＃４１０に進み、ＰＩＤ制御を完了する。
【０１９０】
＃４においてＰＩＤ制御を完了するか、または＃７で超音波モータスイープ処理を完了すると、＃５に進み、スケール終端を検知したか否かを判断する。
【０１９１】
スケール終端を検知したと判断された場合には、＃６に進み、停止処理に入る。スケール終端を検知したなら、これ以上駆動できないためである。
【０１９２】
スケール終端を検知したと判断されなかった場合には、駆動制御のメイン処理を終了する。そして、前述の＃０タイマ処理によって、３００μ秒経過を確認し、更に超音波モータ駆動制御の処理を続行する。
【０１９３】
図１１は停止処理のフローチャートである。
【０１９４】
＃６の停止処理に入るのは、＃２０２で残り駆動パルスが０であると判断された場合と、＃５でスケール終端が検知されたと判断された場合である。
【０１９５】
＃６の停止処理に入ると、＃６０１から＃６０５においてフォーカスタイマフラグと、フォーカス駆動中フラグと、速度安定フラグと、共振周波数フラグと、共振周波数フラグ２をクリアする。
【０１９６】
これは、＃２０２で残り駆動パルスが０であると判断された場合と、＃５でスケール終端が検知されたと判断された場合には、一旦フォーカス駆動の制御が終了していることから、次にフォーカス駆動制御を始める場合には、各種フラグがリセットされる必要があるためである。
【０１９７】
＃６０１から＃６０５においてフォーカスタイマフラグと、フォーカス駆動中フラグと、速度安定フラグと、共振周波数フラグと、共振周波数フラグ２をクリアすると、次に＃６０６で超音波モータ８の電源がオフとなる。これにより、第１実施例のフォーカス駆動の制御が終了する。
【０１９８】
上記の通り、本発明の超音波モータの駆動制御装置によれば、超音波モータの温度の高低にかかわらず、確実に駆動周波数が共振周波数を下回ったことを検知し、駆動周波数を共振周波数から回避させることができる。また、共振周波数の誤検知と、２回目以降の共振周波数回避処理を抑制することができる。
【０１９９】
また、第１実施例ではレンズ交換可能なデジタルカメラを想定しているが、例えば光学系が一体となったカメラにおいても同様に本発明を実施することができる。
【符号の説明】
【０２００】
１  撮像装置
２  レンズ
３  光学系
４  絞り装置
５  フォーカスレンズ群
６  磁気センサ
７  レンズＣＰＵ
７０１通常用目標速度テーブル
７０２共振周波数用目標速度テーブル
７０３速度制御用テーブル
７０４周波数テーブル
７０５検知回路
７０６演算回路
７０７記憶回路
７０８比較回路
８  超音波モータ
９  ミラー
１０  ミラー駆動モータ
１１  ペンタプリズム
１２  ファインダ接眼レンズ
１３  測光素子
１４  測距素子
１５  シャッター
１６  撮像面
１７  表示器
１８  レリーズボタン
１９  モードダイヤル
２０  電源
２１  カメラＭＣＵ
２２  マウント
２３  電気接点
２４  電気接点
?
【図１】
2014045559.tif 000018
【図２】
2014045559.tif 000019
【図３】
2014045559.tif 000020
【図４】
2014045559.tif 000021
【図５】
2014045559.tif 000022
【図６】
2014045559.tif 000023
【図７】
2014045559.tif 000024
【図８】
2014045559.tif 000025
【図９】
2014045559.tif 000026
【図１０】
2014045559.tif 000027
【図１１】
2014045559.tif 000028