(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-28
(45)【発行日】2022-01-19
(54)【発明の名称】駆動装置、デバイス、駆動システム、プログラムおよび駆動方法
(51)【国際特許分類】
G05B 11/36 20060101AFI20220112BHJP
G03B 5/00 20210101ALI20220112BHJP
H04N 5/232 20060101ALI20220112BHJP
【FI】
G05B11/36 D
G03B5/00 J
H04N5/232 480
(21)【出願番号】P 2017134095
(22)【出願日】2017-07-07
【審査請求日】2020-04-06
(73)【特許権者】
【識別番号】303046277
【氏名又は名称】旭化成エレクトロニクス株式会社
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】泉倉 淳志
【審査官】中田 善邦
(56)【参考文献】
【文献】特開2003-186074(JP,A)
【文献】特開平07-271441(JP,A)
【文献】特開2000-035802(JP,A)
【文献】特開平08-297501(JP,A)
【文献】米国特許出願公開第2008/0152332(US,A1)
【文献】米国特許第06243610(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 1/00- 7/04,11/00-13/04,
17/00-17/02,21/00-21/02,
15/00-15/02,
G03B 5/00- 5/08,
H04N 5/232
(57)【特許請求の範囲】
【請求項1】
周期的に受信される制御対象の制御指令値に基づいて、前記制御対象の駆動制御を行う制御部を備え、
前記制御部は、
前記制御指令値の受信の周期を超えて前記制御指令値が受信されない場合に駆動制御に用いるべき次の前記制御指令値を過去の前記制御指令値から推測する推測部を有し、
前記推測部は、
前記制御指令値が受信される場合に、受信した制御指令値を用いて次の前記制御指令値を推定制御指令値として算出しておき、
前記制御部は、
前記周期を超えて次の前記制御指令値が受信されない場合に、前記制御指令値が受信され
た周期の終
点から前記周期の自然数倍経過した各タイミングにおいて前記推定制御指令値で駆動制御を行う駆動装置。
【請求項2】
前記推測部は、前記周期を超えて次の前記制御指令値が受信されない場合に、過去に推測された前記推定制御指令値を用いて次の制御指令値を推測する、請求項1に記載の駆動装置。
【請求項3】
前記推測部は、前記周期の経過毎に次の前記制御指令値を推測する、請求項1または2に記載の駆動装置。
【請求項4】
前記制御指令値の受信タイミングに応じた前記周期のタイミング信号を生成するタイミング生成部を備える、請求項1~3のいずれか一項に記載の駆動装置。
【請求項5】
前記制御指令値は、前記制御対象のシフト量を示し、
前記推測部は、複数の過去の前記制御指令値の移動平均を次の制御指令値とする、請求項1~4のいずれか1項に記載の駆動装置。
【請求項6】
前記制御指令値は、前記制御対象の目標位置を示し、
前記推測部は、複数の過去の前記制御指令値の差分の移動平均を直前の前記制御指令値に加算して、次の制御指令値とする、請求項1~4のいずれか1項に記載の駆動装置。
【請求項7】
前記制御指令値は、前記周期で算出され、
前記周期を超えて前記制御指令値が算出または受信される場合に、前記制御指令値に基づく前記制御対象のシフト量を、前回の前記制御指令値と今回の前記制御指令値との間の算出または受信のインターバルの長さに応じて補償する補償処理部を備える請求項1~6のいずれか1項に記載の駆動装置。
【請求項8】
前記補償処理部は、前記今回の制御指令値に基づく前記シフト量に前記インターバルの長さを乗算することで前記シフト量を補償する、請求項7に記載の駆動装置。
【請求項9】
前記制御指令値は、前記制御対象の物理量に基づいて算出され、
前記補償処理部は、前記インターバルの前後の少なくとも一方での前記物理量に基づいて前記シフト量を補償する、請求項8に記載の駆動装置。
【請求項10】
前記補償処理部は、前記少なくとも一方での前記物理量に前記インターバルの長さを乗算することで前記シフト量を補償する、請求項9に記載の駆動装置。
【請求項11】
前記補償処理部は、前記前回の制御指令値が算出または受信されてから、前記今回の制御指令値が受信または算出されるまでの経過時間を前記インターバルの長さとして用いる、請求項7~10のいずれか1項に記載の駆動装置。
【請求項12】
前記補償処理部は、前記周期の整数倍の長さを前記インターバルの長さとして用いる、
請求項7~11のいずれか1項に記載の駆動装置。
【請求項13】
前記制御部は、
前記制御対象の検出位置および前記制御指令値が入力され、前記制御指令値に基づく位置に前記制御対象の位置を近づけるように制御する操作量を出力するフィードバック回路と、
前記操作量に基づき、前記制御対象を移動させるアクチュエータを駆動する駆動回路と、
を有する、請求項1から12のいずれか一項に記載の駆動装置。
【請求項14】
前記制御対象の位置を検出する位置センサと、
請求項1から13のいずれか一項に記載の駆動装置と、
を備えるデバイス。
【請求項15】
請求項14に記載のデバイスと、
前記制御部による駆動制御に応じて前記制御対象を移動させるアクチュエータと、
を備える駆動システム。
【請求項16】
前記制御対象の物理量を検出する検出部と、
前記物理量に基づいて制御対象の制御指令値を前記周期で算出するプロセッサと、
を備える請求項15に記載の駆動システム。
【請求項17】
前記制御対象は、レンズを含み、
当該駆動システムは、前記レンズの手振れ補正制御を行う
請求項15または16に記載の駆動システム。
【請求項18】
コンピュータを、請求項1から13のいずれか一項に記載の駆動装置として機能させる
プログラム。
【請求項19】
制御対象の制御指令値を周期的に周期で受信する受信段階と、
前記制御指令値が受信される場合に、受信した制御指令値を用いて次の前記制御指令値を推定制御指令値として算出する推測段階と、
前記制御指令値の受信の周期を超えて次の前記制御指令値が受信されない場合に、前記制御指令値が受信され
た周期の終
点から前記周期の自然数倍経過したタイミングにおいて前記推定制御指令値で駆動制御を行う制御段階と、
を備える駆動方法。
【請求項20】
前記周期を超えて前記制御指令値が算出または受信される場合に、前記制御指令値に基づく前記制御対象のシフト量を、前回の前記制御指令値と今回の前記制御指令値との間の算出または受信のインターバルの長さに応じて補償する補償処理段階を更に備える、
請求項19に記載の駆動方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、駆動装置、デバイス、駆動システム、プログラムおよび駆動方法に関する。
【背景技術】
【0002】
従来、デジタルカメラ、携帯電話、小型PC等に搭載される光学モジュールは、レンズの位置をアクチュエータ等で移動させて制御し、手振れ補正機能等を実行している(例えば、特許文献1参照)。
特許文献1 国際公開第2013/087533号
【発明の概要】
【発明が解決しようとする課題】
【0003】
このようなアクチュエータ等を駆動する駆動回路は、レンズ位置を制御するための制御指令値をプロセッサから受け取っている。従って、プロセッサが制御指令値の算出を他の処理と時分割で行う場合などに制御指令値の算出、受信のタイミングが周期的なタイミングから遅れてしまうことがある。この場合、駆動回路は、遅れた時間の間に、制御指令値の情報がないまま動作を継続させることになってしまい、レンズの位置を正確に制御することが困難になってしまうことがある。
【課題を解決するための手段】
【0004】
本発明の第1の態様においては、予め定められた周期で受信される、制御対象の制御指令値に基づいて制御対象の駆動制御を行う制御部を備え、制御部は、周期を超えて制御指令値が受信されない場合に駆動制御に用いるべき次の制御指令値を過去の制御指令値から推測する推測部を有する駆動装置を提供する。
【0005】
本発明の第2の態様においては、予め定められた周期で算出および受信される、制御対象の制御指令値に基づいて制御対象の駆動制御を行う制御部と、周期を超えて制御指令値が算出又は受信される場合に、制御指令値に基づく制御対象のシフト量を、前回の制御指令値と今回の制御指令値との間の算出または受信のインターバルの長さに応じて補償する補償処理部と、を備える駆動装置を提供する。
【0006】
本発明の第3の態様においては、制御対象の制御指令値を予め定められた周期で受信する受信段階と、周期を超えて制御指令値が受信されない場合に駆動制御に用いるべき次の制御指令値を過去の制御指令値から推測する推測段階と、制御指令値に基づいて制御対象の駆動制御を行う制御段階と、を備える駆動方法を提供する。
【0007】
本発明の第4の態様においては、予め定められた周期で算出される制御対象の制御指令値を周期で受信する受信段階と、周期を超えて制御指令値が算出または受信される場合に、制御指令値に基づく制御対象のシフト量を、前回の制御指令値と今回の制御指令値との間の算出または受信のインターバルの長さに応じて補償する補償処理段階と、制御指令値に基づいて制御対象の駆動制御を行う制御段階と、を備える駆動方法を提供する。
【0008】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【0009】
【
図1】本実施形態に係る駆動システム1000の構成例を、検出部2およびプロセッサ4と共に示す。
【
図3】ステップS12を行うためのプロセッサ4の機能ブロックを示す。
【
図5】推測される制御指令値および目標位置を示す。
【
図6】本実施形態に係るプロセッサ4による理想的な処理タイミングと、負荷が大きいときの処理タイミングとの一例を示す。
【
図7】フィードバック回路122に供給される制御指令値を示す。
【
図10】本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。
【発明を実施するための形態】
【0010】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0011】
図1は、本実施形態に係る駆動システム1000の構成例を、検出部2およびプロセッサ4と共に示す。駆動システム1000は、外部から制御信号を受け取り、受け取った制御信号に基づいて制御対象を制御する。
【0012】
なお、本実施形態では一例として、駆動システム1000が光学部品の移動を制御する例を示す。駆動システム1000は、例えば、外部からの光学部品の制御指令値の情報を受信し、制御指令値に基づいて当該光学部品を移動させる。例えば制御対象である光学部品は、レンズ10を含む。また、制御対象の制御指令値を示す制御信号が検出部2およびプロセッサ4から駆動システム1000に供給される。
【0013】
検出部2は、制御対象に関する物理量を検出する。例えば、検出部2は、光学部品または光学部品が搭載される機器等の動きを検出する。一例として、検出部2は、角速度センサ等を有し、レンズ10の角速度ωを検出する。プロセッサ4は、検出部2の検出結果に基づきレンズ10の制御指令値を算出し、当該制御指令値を示す制御信号を駆動システム1000に送信する。本実施形態では一例として、制御指令値はレンズ10のシフト量を示す。ここで、プロセッサ4は角速度の取得、制御指令値の算出、出力を予め定められた周期で行うよう設定されているものの、他の処理との時分割処理によりそれらのタイミングには遅延が生じうる。本実施形態では一例として、プロセッサ4は、レンズ10の角速度ωを積分してレンズ10の移動角度を算出し、これを元に戻すための制御指令値の情報を制御信号として駆動システム1000に送信する。
【0014】
駆動システム1000は、一例として制御信号に応じてレンズ10の角度を制御指令値に応じて移動させることで、カメラ等の手振れ補正制御を実行する。駆動システム1000は、レンズ10と、アクチュエータ20と、位置センサ30と、駆動装置100と、を備える。
【0015】
本実施形態において、レンズ10は、制御対象の一例を示す。これに代えて、またはこれに加えて、制御対象は、プリズム、ミラー、およびグレーティング等の光学部品でよい。また、制御対象は、光学部品に限定されることはない。外部からの制御信号に応じて、制御対象を制御するシステムであれば、制御対象は光学部品に限らず適用可能である。
【0016】
アクチュエータ20は、駆動装置100からの制御信号に応じて制御対象を駆動する。アクチュエータ20は、磁力によって制御対象を移動させてよい。例えば、アクチュエータ20は、コイルを含み、当該コイルに通電することによって磁力を発生させる電磁石を有してよい。アクチュエータ20は、制御対象に設けられた磁石を吸着または離間させるように磁力を発生させ、制御対象を移動させてよい。
【0017】
アクチュエータ20は、例えば、制御対象の一方向の位置を変更する。また、アクチュエータ20は、複数のアクチュエータを有し、制御対象の異なる複数の方向の位置を変更させるように移動させてよい。一例として、アクチュエータ20は、異なる2方向(例えばXおよびY方向)または異なる3方向(例えばX、Y、およびZ方向)に制御対象を移動させる。なお、X、YおよびZ方向は互いに直交する方向であり、Z方向はレンズ10の光軸方向である。
【0018】
位置センサ30は、制御対象の位置を検出する。位置センサ30は、制御対象の1方向の角度および/または位置を検出してよい。また、位置センサ30は、制御対象の複数の方向の角度および/または位置をそれぞれ検出してもよい。位置センサ30は、例えば、制御対象の位置に応じて変動する磁場、反射光、渦電流、静電容量、および超音波等をセンスして、制御対象の位置を検出する。
【0019】
一例として、制御対象が磁石等を有する場合、位置センサ30は、当該磁石の磁場を検出する磁気センサでよい。位置センサ30は、ホール素子、GMR(Giant Magneto Resistive)素子、インダクタンスセンサ等を有してよい。位置センサ30は、制御対象の位置の検出信号を駆動装置100に供給する。なお、位置センサ30および駆動装置100は、一体のデバイスとして形成されてよい。
【0020】
駆動装置100は、プロセッサ4からの制御信号と、位置センサ30からの制御対象の位置情報とに基づき、制御対象を移動させる。制御対象がレンズ10の場合、駆動装置100は、レンズの手振れ補正制御またはフォーカス制御を実行するように、アクチュエータ20を駆動してよい。駆動装置100は、受信部110、タイミング生成部112、補償処理部114および制御部120を有する。
【0021】
受信部110は、プロセッサ4から制御信号を受信する。受信部110は、例えば、伝送インタフェースを介してプロセッサ4に接続され、プロセッサ4がソフトウェア処理により出力する制御信号を受信する。受信部110は、受信した制御信号をタイミング生成部112および補償処理部114に供給する。
【0022】
ここで、受信部110は、制御信号を予め定められた周期で受信する。本実施形態では一例として、受信部110はプッシュ型の通信により制御信号を受動的に受信する。また、本実施形態では一例として、受信部110は、OS等によって伝送信号の優先順位等が制御される伝送インタフェース、例えばI2C(アイ・スクエアド・シー)を用いてプロセッサ4から制御信号を受信する。そのため、予め定められた周期でプロセッサ4が制御信号を生成しても、OSが例えば音楽データ、画像データ、および他の制御信号等の伝送を優先させて実行すると、受信タイミングは遅延し得る。
【0023】
タイミング生成部112は、周期的なタイミング信号を生成する。タイミング生成部112は、例えば、制御信号に基づき略一定の周期のタイミング信号を生成する。タイミング生成部112は、遅延が生じていない理想的な制御信号の周期(理想周期とも称する)と略同一周期のタイミング信号を生成することが望ましい。理想周期は例えば1ms~10msの範囲内であってよい。
【0024】
ここで、上述の受信部110は、プロセッサ4での制御指令値の算出、および、伝送インタフェースでの制御信号の伝送などに一時的な遅延が生じていない場合、略一定の周期で制御信号を受信する。したがって、受信した制御信号の周波数特性は、理想周期に対応する周波数成分がより大きな値となる。そこで、タイミング生成部112は、受信した制御信号の周波数特性に応じた周期のタイミング信号を生成してよい。この場合、タイミング生成部112は、例えば、制御信号を周波数変換し、ピーク値となる周波数と略同一の周波数のタイミング信号を生成する。タイミング生成部112は、フーリエ変換等の演算処理を用いて制御信号を周波数変換してよい。これに代えて、タイミング生成部112は、プロセッサ4から同期信号を取得してもよい。この場合、タイミング生成部112は、同期信号に基づき、理想周期のタイミング信号を生成する。タイミング生成部112は、生成したタイミング信号を補償処理部114に供給する。
【0025】
補償処理部114は、理想周期を超えて制御部120が制御信号を受信する場合に、制御指令値に基づく制御対象のシフト量を、前回の制御信号と今回の制御信号との間の受信インターバル(遅延受信インターバルとも称する)の長さに応じて補償する。補償処理部114は、遅延受信インターバルの長さに応じて補償されたシフト量を示す制御信号を制御部120に供給する。補償処理部114は、制御部120が理想周期で制御信号を受信する場合には、シフト量の補償を行わずに、受信された制御信号を制御部120に供給する。
【0026】
ここで、遅延受信インターバルの長さは、例えば制御部120が直前に制御信号を受信してから新たに制御信号を受信するまでの経過時間である。遅延受信インターバルは、制御部120が直前に制御信号を受信したタイミングから補償処理部114が次の制御信号を受信したタイミングまでにカウントされた時間でもよいし、このカウント時間に基づいて算出される時間でもよい。一例として、補償処理部114が制御信号を受信してから制御部120に供給するまでの所要時間が決まっている場合には、この所要時間をカウント時間に加えることで経過時間を算出してよい。遅延受信インターバルは理想周期の整数倍の長さであってよい。この場合にはシフト量の補償が容易化される。
【0027】
制御部120は、制御指令値に基づいて、制御対象の駆動制御を行う。本実施形態では一例として、制御部120は、制御信号と位置センサ30からの検出信号とに基づき、制御対象の駆動制御を行う。例えば、制御部120は、制御指令値で示されるシフト量だけ制御対象を移動させてもよいし、シフト量から算出される目標位置まで制御対象を移動させてもよい。制御部120は、アクチュエータ20に接続され、当該アクチュエータ20を駆動する駆動信号をアクチュエータ20に供給する。制御部120は、推測部121、フィードバック回路122および駆動回路124を含む。
【0028】
推測部121は、理想周期を超えて制御部120が制御信号を受信しない場合に代わりに駆動制御に用いるべき次の制御指令値を、1または複数の過去の制御指令値から推測する。過去の制御指令値には、過去に推測された制御指令値が含まれてよい。本実施形態では一例として、推測部121は補償処理部114とフィードバック回路122との間に介在する。そして、推測部121は、補償処理部114から理想周期で制御信号を受信しない場合には、推測した制御指令値を示す制御信号を理想周期でフィードバック回路122に供給し、理想周期で制御信号を受信した場合には、受信した制御信号をフィードバック回路122に供給する。但し、補償処理部114からの制御信号と、推測部121により推測された制御指令値を示す制御信号とがそれぞれフィードバック回路122に供給され、制御部120が制御信号を受信したタイミングが理想周期を超えていたか否かに基づいて使用対象の制御信号をフィードバック回路122が選択してもよい。
【0029】
推測部121は、制御部120が制御信号を受信する毎に経過時間をカウントするタイマを有してよい。推測部121は、制御信号を理想周期で受信したか否かを、このタイマによるカウント時間に基づいて判定してよい。タイマはカウント時間を補償処理部114にも供給してよい。
【0030】
フィードバック回路122は、制御対象の位置を検出した検出信号および制御信号を受信し、制御対象の位置を制御信号に基づく位置に近づけるように制御する操作量を出力する。フィードバック回路122は、例えば、PID(Proportional Integral Differential)制御に基づく操作量を発生させて駆動回路124に供給する。
【0031】
駆動回路124は、操作量に基づき、アクチュエータ20を駆動する駆動信号を出力する。駆動回路124は、例えば、増幅回路等を有し、操作量に応じた駆動信号でアクチュエータ20を駆動する。
【0032】
以上の本実施形態に係る駆動システム1000によれば、理想周期を超えて制御指令値を受信しない場合に、代わりに駆動制御に用いるべき次の制御指令値を、推測部121が過去の制御指令値から推測する。従って、制御指令値の受信タイミングが理想周期から遅れる場合であっても、制御指令値の情報がないまま駆動制御が行われることが防止される。よって、レンズ10の位置を正確に制御することができる。
【0033】
また、理想周期を超えて制御指令値を受信する場合に、遅延受信インターバルの長さに応じて補償処理部114が制御対象のシフト量を補償する。従って、制御指令値の受信が一時的に中断して理想周期から遅れた後に再開する場合であっても、レンズ10の実際の角度変化と制御指令値に基づくシフト量とが乖離するのが防止されて、レンズ10の実際の角度変化にシフト量が追従する。よって、レンズ10の位置をいっそう正確に制御することができる。
【0034】
続いて、駆動システム1000の動作について説明する。
図2は、プロセッサ4の動作を示す。プロセッサ4は、ステップS11~S13の処理を実行することにより、レンズ10の制御指令値を駆動システム1000に供給する。
【0035】
まず、ステップS11においてプロセッサ4は、検出部2によって検出されたレンズ10の角速度ωを取得する。次に、ステップS12においてプロセッサ4は、角速度ωに基づいてレンズ10の制御指令値を算出する。そして、ステップS13においてプロセッサ4は、算出した制御指令値を示す制御信号を駆動システム1000に供給する。なお、プロセッサ4はステップS11~S13の処理をそれぞれ理想周期で行うよう設定されているものの、他の処理との時分割処理により実行タイミングにはそれぞれ遅延が生じうる。
【0036】
図3は、ステップS12を行うためにプロセッサ4に具備される機能ブロックを示す。これらの機能ブロックは、ハードウェアにより実現されてもよいし、ハードウェアとソフトウェアとが協働することで実現されてもよい。プロセッサ4は、オフセット除去部41、数値積分部43、ハイパスフィルタ部45、位相補償フィルタ部47およびクリッピング処理部49を有する。オフセット除去部41は、角速度ωを受信してその直流成分のオフセットを除去する。数値積分部43は、角速度ωの数値積分により角度θを算出する。ハイパスフィルタ部45は、角度θにハイパスフィルタを掛けて角度θの手振れ補正成分のみを抽出する。なお、フィルタ係数は角度θの高周波成分と、クリッピング処理での飽和の有無とに応じて動的に変更されてよい。位相補償フィルタ部47は、前段までのフィルタ処理等で発生する群遅延の補償を行う。クリッピング処理部49は、クリッピング処理によって制御指令値を上限値および下限値の範囲内に収まる値にする。
【0037】
図4は、駆動システム1000の動作を示す。駆動システム1000は、ステップS21~S34の処理を実行することにより、レンズ10の手振れ補正を行う。
【0038】
まず、ステップS21において補償処理部114は、制御信号を受信部110がプロセッサ4から受信したか否かを判定する。受信は理想周期で行われてもよいし、理想周期から外れてもよい。制御信号を受信したと判定された場合(ステップS21;Yes)にはステップS22に処理が移行し、受信しないと判定された場合(ステップS21;No)にはステップS31に処理が移行する。
【0039】
ステップS22においてタイミング生成部112は、受信部110で受信された制御信号の周波数特性に応じた理想周期のタイミング信号を生成して補償処理部114および制御部120に出力する。
【0040】
次に、ステップS23において補償処理部114は、制御信号の受信が理想周期を超えている否かを判定する。例えば、補償処理部114は、理想周期を超えて制御部120に制御信号が受信されるか否かを判定し、一例として、後述のステップS31において制御信号の受信が理想周期を超えたか否かを判定する。補償処理部114は、制御部120が制御信号を受信する毎に経過時間をカウントするタイマが推測部121に設けられる場合には、このタイマのカウント時間に基づいて判定を行ってよい。受信が理想周期を超えていないと判定された場合(ステップS23;No)にはステップS24に処理が移行し、越えていたと判定された場合(ステップS23;Yes)にはステップS25に処理が移行する。
【0041】
ステップS24において制御部120は、受信した制御指令値に基づいてレンズ10を駆動することで手振れ補正を行う。例えば、補償処理部114は、受信部110が受信した制御信号を補償せずにフィードバック回路122に出力する。これにより、プロセッサ4により算出された制御指令値がそのままフィードバック回路122に供給される。そして、供給される制御指令値と、レンズ10の実際の位置とに基づいてフィードバック回路122が操作量を生成して駆動回路124に供給し、この操作量に基づいてアクチュエータ20がレンズ10を駆動する。ステップS24が終了したら、ステップS27に処理が移行する。
【0042】
また、ステップS25において補償処理部114は、受信部110が受信した制御信号の制御指令値で示されるシフト量を遅延受信インターバルの長さに応じて補償する。例えば、補償処理部114は、今回受信した制御指令値に基づくシフト量に遅延受信インターバルの長さを乗算することでシフト量を補償する。
【0043】
次に、ステップS26において制御部120は、補償された制御指令値に基づいてレンズ10を駆動することで手振れ補正を行う。フィードバック回路122およびアクチュエータ20の動作は上述のステップS24と同様である。
【0044】
次に、ステップS27において推測部121は、理想周期を超えて制御信号を受信しない場合に代わりに駆動制御に用いるべき次の制御指令値を、過去の制御指令値から新たに推測しておく。ここで、ステップS27の処理が行われる場合には、制御部120が制御指令値を受信しているため、推測部121は、受信した制御指令値を用いて次の制御指令値を推測する。推測される次の制御指令値は、実際に理想周期を超えて制御指令値を受信しない場合に、後述のステップS32において駆動制御に用いられる。これにより、レンズ10の駆動制御が周期的に行われる。
【0045】
ここで、推測部121は、複数の過去の制御指令値の移動平均を次の制御指令値とする。本実施形態では一例として移動平均は単純移動平均であるが、加重移動平均でもよい。加重移動平均が用いられる場合には、新しい制御指令値、または古い制御指令値ほど、重み係数が大きくてよい。なお、推測部121は、移動平均の代わりに、過去の複数の制御指令値に対する近似式(2次、3次など)を算出して次の制御指令値を推測してもよい。
【0046】
ステップS27が終了したら、処理が上述のステップS21に移行する。なお、制御指令値が理想周期で受信される場合には、ステップS27の処理は理想周期の経過毎に行われてよい。この場合、推測部121は、理想周期の経過毎に次の制御指令値を推測する。これにより、レンズ10の駆動制御が周期的に行われる。
【0047】
上述したように、ステップS21の処理において制御信号が受信されないと判定された場合(ステップS21;No)には、ステップS31の処理が行われる。ステップS31において推測部121は、制御信号の受信が理想周期を超えたか否かを判定する。受信が理想周期を超えていないと判定された場合(ステップS31;No)には、ステップS21に処理が移行し、超えたと判定された場合(ステップS31;Yes)には、ステップS32に処理が移行する。
【0048】
ステップS32において制御部120は、推測された制御指令値に基づいてレンズ10を駆動することで手振れ補正を行う。例えば、推測部121は、上述のステップS27または後述のステップS33による推測済みの制御指令値を示す制御信号をフィードバック回路122に出力する。これにより、理想周期を超えて次の制御指令値を受信しない場合には、推測済みの次の制御指令値に基づいて理想周期で駆動制御が行われる。なお、フィードバック回路122およびアクチュエータ20の動作は上述のステップS24と同様である。
【0049】
次に、ステップS33において推測部121は、上述のステップS27と同様にして次の制御指令値を推測しておく。但し、このステップS27の処理が行われる場合には、直近の少なくとも1つの制御指令値の受信が理想周期を超えている。そのため、推測部121は、受信されなかった制御指令値の代わりに、推測済みの制御指令値を用いて次の制御指令値を推測してよい。
【0050】
次に、ステップS34において制御部120は、処理を継続するか否かを判定する。例えば、制御部120は、駆動システム1000に対する停止操作が行われていないかを判定してよい。継続すると判定された場合(ステップS34;Yes)にはステップS21に処理が移行し、継続しないと判定された場合(ステップS34;No)には処理が終了する。
【0051】
図5は、推測される制御指令値および目標位置を示す。図中の縦軸は制御対象の目標位置を示し、例えばX方向またはY方向における位置を示す。横軸は時間を示し、時点(n)が現在、その左側が過去、右側が未来を示す。
【0052】
各プロットは理想周期(ΔT)ごとの或る時点での目標位置を示し、例えば図中、右から2番目のプロットは現在の時点(n)での目標位置(Vt(n))を示す。なお、黒塗りのプロットは、プロセッサ4から受信された制御指令値に基づく目標位置であるが、推測された制御指令値に基づく目標位置でもよい。網掛けのプロットは、推測された制御指令値に基づく目標位置である。本実施形態では一例として、図中の1つ目の数式に示すように、推測される次の目標位置(Vt'(n+1))は、推測されるシフト量の制御指令値(D')を目標位置(Vt(n))に加算して算出される。また、図中の2つ目の数式に示すように、推測される次の制御指令値(D'(n))は、直近の4つの制御指令値(D(n)~D(n-3))の移動平均となっている。
【0053】
図6は、本実施形態に係るプロセッサ4による理想的な処理タイミングと、負荷が大きいときの処理タイミングとの一例を示す。図中の横軸は時間を示す。理想的な処理においてプロセッサ4は、理想周期(ΔT)ごとに角速度の受信、制御指令値の算出および制御信号の出力を行っている。
【0054】
但し、図中の下段に示すように、プロセッサ4での制御指令値の算出、および、伝送インタフェースでの制御信号の伝送などに一時的な遅延が生じてしまうと、制御信号は遅延したタイミングで出力される。
【0055】
図7は、フィードバック回路122に供給される制御指令値を示す。図中の縦軸は目標位置を示し、横軸は時間を示す。各プロットは駆動制御における目標位置を示し、前後のプロットの縦軸方向の差分が制御指令値を示す。なお、黒塗りのプロットは、プロセッサ4から受信された制御指令値に基づく目標位置を示し、網掛けのプロットは、推測された制御指令値に基づく目標位置を示し、白抜きのプロットは、補償された制御指令値に基づく目標位置を示す。
【0056】
この動作例では、制御信号の受信が遅延した間に目標位置が推測されている。そのため、制御信号の受信タイミングが理想周期(ΔT)から遅れる場合であっても、推測される制御指令値に基づいてレンズ10の駆動制御が行われる。よって、レンズ10の位置を正確に制御することができる。
【0057】
また、制御信号の受信が再開した後に、シフト量が補償されている。そのため、レンズ10の実際の角度変化にシフト量が追従する。よって、レンズ10の位置をいっそう正確に制御することができる。
【0058】
なお、上記の実施形態では、補償処理部114は受信した制御指令値に基づくシフト量に遅延受信インターバルの長さを乗算することでシフト量を補償することとして説明したが、遅延受信インターバルの前後の少なくとも一方での角速度に基づいてシフト量を補償してもよい。例えば、補償処理部114は、遅延受信インターバルの前後少なくとも一方での角速度に遅延受信インターバルの長さを乗算してプロセッサ4に制御指令値を算出させることでシフト量を補償してよい。この場合、補償処理部114は検出部2およびプロセッサ4の間に設けられてもよいし、プロセッサ4内に設けられてもよい。プロセッサ4内に補償処理部114が設けられる場合には、
図8に示すように、オフセット除去部41と、数値積分部43の間に設けられてよい。また、補償処理部114はプロセッサ4と協働して、遅延受信インターバルの前後少なくとも一方での角速度を遅延受信インターバルの長さで積分することで、シフト量を補償してもよい。この場合にも、補償処理部114はプロセッサ4内に設けられてよく、一例として数値積分部43と一体的に設けられてよい。遅延受信インターバルの前後少なくとも一方の角速度とは、前後何れか一方の角速度でもよいし、前後両方の角速度の平均値でもよい。
【0059】
また、補償処理部114は、理想周期を超えて制御部120が制御信号を受信する場合に遅延受信インターバルの長さに応じてシフト量を補償することとして説明したが、プロセッサ4による前回の制御指令値および今回の制御指令値の間の算出インターバルの長さに応じて補償してもよい。この場合、補償処理部114は、プロセッサ4が制御指令値を算出した時点のタイムスタンプで示される時間を用いて算出インターバルを取得してもよいし、プロセッサ4が制御指令値を算出するごとに経過時間をカウントするタイマを用いて算出インターバルを取得してもよい。
【0060】
また、制御指令値を制御対象のシフト量として説明したが、制御対象の目標位置としてもよい。この場合には、補償処理部114は、理想周期を超えて制御部120が制御信号を受信する場合に、前回の目標位置と今回の目標位置との差分で示されるシフト量を補償してよい。また、推測部121は過去の目標位置から次の目標位置を推測してよい。例えば、推測部121は、複数の過去の目標位置の差分の移動平均を直前の目標位置に加算して、次の目標位置としてよい。
【0061】
図9は、このような動作を行う推測部121を示す。推測部121は、タイマ1210、マルチプレクサ1211、フリップフロップ1212、減算器1213、複数の飽和処理回路1214(1)~(2)、複数のシフトレジスタ1216(1)~(4)、複数の加算器1217(1)~(3)、除算器1218および加算器1219を有する。
【0062】
タイマ1210は、推測部121が制御信号を受信する毎に経過時間をカウントする。例えば、タイマ1210は、制御信号を受信する毎に経過時間をリセットしてよい。タイマ1210は、経過時間が閾値(TIMEOUT TH)を超える場合に、タイムアウト信号をマルチプレクサ1211に出力する。タイマ1210は、カウントした経過時間を補償処理部114にも供給してよい。閾値は一例として理想周期であり、タイミング生成部112から出力されるタイミング信号に基づいて設定されてよい。閾値は可変でもよい。
【0063】
マルチプレクサ1211は、補償処理部114から供給される、n番目のタイミングでの目標位置(Vt(n))を示す制御信号を「0」側の入力とし、後述の加算器1219から供給される、n+1番目のタイミングでの目標位置(Vt'(n+1))を示す制御信号を「1」側の入力として、何れか一方の制御信号を理想周期ごとにフリップフロップ1212に供給する。マルチプレクサ1211は、タイマ1210からタイムアウト信号が供給されない場合(一例としてタイムアウト信号がローの場合)には「0」側の入力を制御信号として出力し、タイムアウト信号が供給される場合(一例としてタイムアウト信号がハイの場合)には「1」側の入力を制御信号として出力する。
【0064】
フリップフロップ1212は、マルチプレクサ1211から供給される制御信号をラッチした後、理想周期ごとにフィードバック回路122を介してアクチュエータ20に供給する。これにより、アクチュエータ20はn番目の目標位置(Vt'(n))に応じて制御対象を駆動する。
【0065】
また、フリップフロップ1212は、ラッチした制御信号を加算器1219にも供給する。これにより、後述のシフトレジスタ1216(1)~(4)、加算器1217(1)~(3)、除算器1218および加算器1219によってn+1番目の目標位置(Vt'(n+1))が推測される。
【0066】
減算器1213は、フリップフロップ1212によるラッチ前後の制御信号で示される目標位置の差分、つまりレンズ10のシフト量を算出する。減算器1213は、算出した差分を飽和処理回路1214(1)に供給する。
【0067】
飽和処理回路1214(1)は、目標位置の差分をクリッピングしてシフトレジスタ1216(1)に格納する。例えば、飽和処理回路1214(1)は、差分の大きさが予め定められた範囲を超えたことに応じて、差分の大きさを予め定められた値としてよい。飽和処理回路1214(1)は、差分の上限値および下限値を予め定め、差分が上限値を超えた場合は上限値を、下限値を下回った場合は下限値を、差分の値としてよい。これにより、推測される目標位置が移動しすぎることが防止される。また、データのビット数が低減される。飽和処理回路1214(1)は、クリッピングした差分をシフトレジスタ1216(1)に供給する。
【0068】
シフトレジスタ1216(1)~(4)は、飽和処理回路1214(1)に対して直列に接続されており、飽和処理回路1214(1)から供給される直近の4つの差分をラッチして理想周期ごとにシフトするとともに、加算器1217(1)~(3)に供給する。
【0069】
加算器1217(1)~(3)は、全体としてシフトレジスタ1216(1)~(4)から供給される差分を加算する。これにより、本実施形態では一例として、理想周期ごとに直近の4つの差分(D(n)~D(n-3))の合計値が算出される。加算器1217(1)~(3)は、4つの差分の合計値を除算器1218に供給する。
【0070】
除算器1218は、加算器1217(1)~(3)から供給される、4つの差分の合計値を4で除算する。これにより、理想周期ごとに直近の4つの差分の移動平均が算出される。除算器1218は、算出した移動平均の値を加算器1219に供給する。
【0071】
加算器1219は、n番目の制御信号で示される目標位置(VT'(n))に移動平均を加算する。これにより、n+1番目の目標位置(Vt'(n+1))が推測される。加算器1219は、n+1番目の目標位置(Vt'(n+1))を示す制御信号を飽和処理回路1214(2)に供給する。
【0072】
飽和処理回路1214(2)は、n+1番目の目標位置(Vt'(n+1))の値をクリッピングする。例えば、飽和処理回路1214(2)は、目標位置の大きさが予め定められた範囲を超えたことに応じて、目標位置の大きさを予め定められた値としてよい。飽和処理回路1214(2)は、目標位置の上限値および下限値を予め定め、移動平均が上限値を超えた場合は上限値を、下限値を下回った場合は下限値を、目標位置の値としてよい。これにより、推測される目標位置が移動しすぎることが防止される。また、データのビット数が低減される。飽和処理回路1214(2)は、クリッピングした移動平均をマルチプレクサ1211に供給する。
以上の推測部121によれば、過去の目標位置から次の目標位置が推測される。
【0073】
なお、本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、(1)操作が実行されるプロセスの段階または(2)操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および/またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび/またはアナログハードウェア回路を含んでよく、集積回路(IC)および/またはディスクリート回路を含んでよい。プログラマブル回路は、論理AND、論理OR、論理XOR、論理NAND、論理NOR、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【0074】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(RTM)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0075】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【0076】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0077】
図10は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ2200の例を示す。コンピュータ2200にインストールされたプログラムは、コンピュータ2200に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の1または複数のセクションとして機能させることができ、または当該操作または当該1または複数のセクションを実行させることができ、および/またはコンピュータ2200に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ2200に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、CPU2212によって実行されてよい。
【0078】
本実施形態によるコンピュータ2200は、CPU2212、RAM2214、グラフィックコントローラ2216、およびディスプレイデバイス2218を含み、それらはホストコントローラ2210によって相互に接続されている。コンピュータ2200はまた、通信インタフェース2222、ハードディスクドライブ2224、DVD-ROMドライブ2226、およびICカードドライブのような入/出力ユニットを含み、それらは入/出力コントローラ2220を介してホストコントローラ2210に接続されている。コンピュータはまた、ROM2230およびキーボード2242のようなレガシの入/出力ユニットを含み、それらは入/出力チップ2240を介して入/出力コントローラ2220に接続されている。
【0079】
CPU2212は、ROM2230およびRAM2214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ2216は、RAM2214内に提供されるフレームバッファ等またはそれ自体の中にCPU2212によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス2218上に表示されるようにする。
【0080】
通信インタフェース2222は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ2224は、コンピュータ2200内のCPU2212によって使用されるプログラムおよびデータを格納する。DVD-ROMドライブ2226は、プログラムまたはデータをDVD-ROM2201から読み取り、ハードディスクドライブ2224にRAM2214を介してプログラムまたはデータを提供する。ICカードドライブは、プログラムおよびデータをICカードから読み取り、および/またはプログラムおよびデータをICカードに書き込む。
【0081】
ROM2230はその中に、アクティブ化時にコンピュータ2200によって実行されるブートプログラム等、および/またはコンピュータ2200のハードウェアに依存するプログラムを格納する。入/出力チップ2240はまた、様々な入/出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入/出力コントローラ2220に接続してよい。
【0082】
プログラムが、DVD-ROM2201またはICカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ2224、RAM2214、またはROM2230にインストールされ、CPU2212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ2200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ2200の使用に従い情報の操作または処理を実現することによって構成されてよい。
【0083】
例えば、通信がコンピュータ2200および外部デバイス間で実行される場合、CPU2212は、RAM2214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース2222に対し、通信処理を命令してよい。通信インタフェース2222は、CPU2212の制御下、RAM2214、ハードディスクドライブ2224、DVD-ROM2201、またはICカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【0084】
また、CPU2212は、ハードディスクドライブ2224、DVD-ROMドライブ2226(DVD-ROM2201)、ICカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がRAM2214に読み取られるようにし、RAM2214上のデータに対し様々なタイプの処理を実行してよい。CPU2212は次に、処理されたデータを外部記録媒体にライトバックする。
【0085】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU2212は、RAM2214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM2214に対しライトバックする。また、CPU2212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU2212は、第1の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0086】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ2200上またはコンピュータ2200近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはRAMのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ2200に提供する。
【0087】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0088】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【0089】
2 検出部、4 プロセッサ、10 レンズ、20 アクチュエータ、30 位置センサ、41 オフセット除去部、43 数値積分部、45 ハイパスフィルタ部、47 位相補償フィルタ部、49 クリッピング処理部、100 駆動装置、110 受信部、112 タイミング生成部、114 補償処理部、120 制御部、121 推測部、122 フィードバック回路、124 駆動回路、1000 駆動システム、1210 タイマ、1211 マルチプレクサ、1212 フリップフロップ、1213 減算器、1214 飽和処理回路、1216 シフトレジスタ、1217 加算器、1218 除算器、1219 加算器、2200 コンピュータ、2201 DVD-ROM、2210 ホストコントローラ、2212 CPU、2214 RAM、2216 グラフィックコントローラ、2218 ディスプレイデバイス、2220 入/出力コントローラ、2222 通信インタフェース、2224 ハードディスクドライブ、2226 DVD-ROMドライブ、2230 ROM、2240 入/出力チップ、2242 キーボード