(57)【要約】      （修正有）【課題】温度補償を備えたレンズ位置検出用ホール素子を提供する。【解決手段】位置検出部５１０は、制御対象の位置を示す位置検出値ＰＦＢを生成する。温度検出部５２０は、温度を示す温度検出値を生成する。補正部５３０は、位置検出値ＰＦＢを補正する。コントローラ５６０は、補正後の位置検出値ＰＦＢ＿ＣＭＰと、制御対象の目標位置を示す位置指令値ＰＲＥＦとが一致するように制御指令値ＳＲＥＦを生成する。ドライバ部５７０は、制御指令値ＳＲＥＦに応じた駆動信号をアクチュエータ４０２に印加する。補正部５３０は、位置検出値ＰＦＢと実際位置の関係が線形化され、かつ線形化後の関係が温度に依存せずに一定となるように、位置検出値ＰＦＢを補正する。【選択図】図１８
2018063416.tif 000002
【特許請求の範囲】
【請求項１】
撮像レンズと、
前記撮像レンズを駆動するアクチュエータと、
前記撮像レンズの位置を示す位置検出信号を生成するホール素子と、
一定の電流を与えたときの前記ホール素子の両端間電圧にもとづいて温度を検出する温度検出部と、
前記位置検出信号が前記撮像レンズの目標位置を示す位置指令信号に近づくように、前記アクチュエータを制御する制御部と、
を備えることを特徴とするレンズ制御装置。
【請求項２】
前記制御部は、前記位置検出信号と、それに対応する前記撮像レンズの実際位置との関係の温度依存性を補正する温度補償部を含むことを特徴とする請求項１に記載のレンズ制御装置。
【請求項３】
前記制御部は、前記関係の直線性を補正するための線形補償部をさらに含むことを特徴とする請求項２に記載のレンズ制御装置。
【請求項４】
あらかじめ所定の温度における前記関係が取得されており、
前記制御部は、前記関係に関する情報を保存するためのメモリ手段さらに含み、
前記所定の温度とは異なる現在温度に対して、前記所定の温度における前記関係に基づいて直線性を補正するとともに、
前記所定の温度と現在温度との差に応じて所定の補正係数を与えて温度補償を行うことを特徴とする請求項３に記載のレンズ制御装置。
【請求項５】
あらかじめ複数の所定の温度における前記関係が取得されており、
前記制御部は、前記関係に関する情報を保存するためのメモリ手段をさらに含み、
前記所定の温度とは異なる現在温度に対して、前記複数の所定の温度のうち前記現在温度に最も近いひとつにおける前記関係に基づいて直線性を補正するとともに、
直線の傾きが温度に関係なく一定となるように温度補償を行うことを特徴とする請求項３に記載のレンズ制御装置。
【請求項６】
あらかじめ複数の所定の温度における前記関係が取得されており、
前記制御部は、前記関係に関する情報を保存するためのメモリ手段をさらに含み、
前記所定の温度とは異なる現在温度に対して、前記複数の所定の温度のうち現在温度を挟む２つにおける前記関係に基づいて、現在温度のための関係を生成し、
生成された関係に基づいて直線性を補正するとともに、
直線の傾きが温度に関係なく一定となるように温度補償を行うことを特徴とする請求項３に記載のレンズ制御装置。
【請求項７】
請求項１から６のいずれかに記載のレンズ制御装置と、
オートフォーカスのための位相差検出が可能な撮像素子と、
を備え、
温度補償と線形補償がオートフォーカスのための前記撮像レンズの位置検出に対して適用されることを特徴とする撮像装置。
【請求項８】
複数個のカメラモジュールを備え、
各カメラモジュールは、請求項１から６のいずれかに記載のレンズ制御装置を備え、
各カメラモジュールにおいて、温度補償と線形補償がオートフォーカスのための撮像レンズの位置検出に対して適用されることを特徴とする撮像装置。
【請求項９】
ホール素子により生成されるホール信号にもとづいて、制御対象の位置を示す位置検出値を生成する位置検出部と、
前記位置検出値を補正する補正部と、
補正後の前記位置検出値と、前記制御対象の目標位置を示す位置指令値とが一致するように制御指令値を生成するコントローラと、
前記制御指令値に応じた駆動信号をアクチュエータに印加するドライバ部と、
一定の電流を与えたときの前記ホール素子の両端間電圧にもとづいて温度を示す温度検出値を生成する温度検出部と、
を備えることを特徴とするアクチュエータドライバ。
【請求項１０】
前記補正部は、所定の位置検出値に対応する制御対象の位置近傍において、前記位置検出値と実際位置との関係が温度に依存せずに一定となるように、前記位置検出値を補正することを特徴とする請求項９に記載のアクチュエータドライバ。
【請求項１１】
前記補正部は、前記位置検出値と実際位置の関係が線形化され、かつ線形化後の関係が温度に依存せずに一定となるように、前記位置検出値を補正することを特徴とする請求項９または１０に記載のアクチュエータドライバ。
【請求項１２】
前記位置検出値または前記位置指令値をｙ、実際位置をｘ、ｘとｙの関係をｘ−ｙ特性とするとき、
前記補正部は、
目標となる線形化されたｘ−ｙ特性ｙ＝ａｘ＋ｂと、所定の温度で予め測定されたｘ−ｙ特性を多項式近似した関数ｘ＝ｆ（ｙ）を記述するデータと、複数の温度ごとの補正係数ｃ，ｄ（ｄはゼロでもよい）を保持するメモリを含み、
前記補正部は、
前記位置検出部からの前記位置検出値をｙ１とするとき、ｘ１＝ｆ（ｙ１）を計算するステップと、
ｙ２＝ａｘ１＋ｂを計算するステップと、
前記温度検出値が示す温度に対応する係数ｃ，ｄを決定するステップと、
ｙ３＝ｃｙ２＋ｄを計算するステップと、
を実行し、ｙ３が補正後の前記位置検出値であることを特徴とする請求項１１に記載のアクチュエータドライバ。
【請求項１３】
前記関数ｘ＝ｆ（ｙ）は複数の区間に分割され、区間毎に一次関数で近似されることを特徴とする請求項１２に記載のアクチュエータドライバ。
【請求項１４】
前記位置検出値または前記位置指令値をｙ、実際位置をｘ、ｘとｙの関係をｘ−ｙ特性とするとき、
前記補正部は、
目標となる線形化されたｘ−ｙ特性ｙ＝ａｘ＋ｂと、所定の複数の温度Ｔ０，Ｔ１，…で予め測定されたｘ−ｙ特性を多項式近似した関数ｘ＝ｆ０（ｙ），ｘ＝ｆ１（ｙ），…を記述するデータを保持するメモリを含み、
前記補正部は、
前記温度検出値が示す温度に対応する関数ｘ＝ｆ’（ｙ）を決定するステップと、
前記位置検出部からの前記位置検出値をｙ１とするとき、ｘ１＝ｆ’（ｙ１）を計算するステップと、
ｙ２＝ａｘ１＋ｂを計算するステップと、
を実行し、ｙ２が補正後の前記位置検出値であることを特徴とする請求項１１に記載のアクチュエータドライバ。
【請求項１５】
前記関数ｘ＝ｆ’（ｙ）は複数の区間に分割され、区間毎に一次関数で近似されることを特徴とする請求項１４に記載のアクチュエータドライバ。
【請求項１６】
一つの半導体基板に一体集積化されることを特徴とする請求項９から１５のいずれかに記載のアクチュエータドライバ。
【請求項１７】
レンズと、
可動部に前記レンズが取り付けられたアクチュエータと、
前記アクチュエータを駆動する請求項９から１５のいずれかに記載のアクチュエータドライバと、
を備えることを特徴とするレンズ制御装置。
【請求項１８】
撮像素子と、
請求項１７に記載のレンズ制御装置と、
を備えることを特徴とする撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクチュエータドライバ、レンズ制御装置及びこれを用いた撮像装置に関する。
【背景技術】
【０００２】
近年、スマートフォンなどに搭載されるカメラモジュールにおいては、撮像レンズの位置を検出して、この位置情報をフィードバックすることで、撮像レンズの位置を高精度かつ高速に制御する機能を取り入れるものが増加してきている。オートフォーカス動作にフィードバック制御を取り入れることで、高精度かつ高速のオートフォーカスが可能となる。また、光学手振れ補正（ＯＩＳ）としてフィードバック制御を取り入れることにより、高精度の手振れ補正が可能となる。これらのフィードバック制御を取り入れたカメラにおいては、位置検出信号が温度によって変化してしまうと制御誤差が生じる場合がある。また、ＯＩＳでは通常、線形制御が行われるため、位置検出信号と実際位置との間の直線性も重要となる。
【０００３】
特に、オートフォーカスのための位相差検出が可能な撮像素子を備えた撮像装置においては、位相差検出によって判断された合焦位置に相当する位置検出信号の出力値までダイレクトに撮像レンズを変位させることにより、高速のオートフォーカスを可能にしているが、ここで温度変化によって合焦位置と位置検出信号の出力値との関係がずれてしまうと、合焦位置からずれた位置にアクセスしてしまうことになり、合焦までに追加の時間を要することになる。また、目標位置と位置検出信号との間の関係が線形であることを想定して撮像レンズを目標位置まで移動させるため、位置検出信号と変位との間の直線性がずれていると、やはり合焦位置からずれた位置にアクセスしてしまうことになる。このように、位相差検出が可能な撮像素子を備えた撮像装置においては、温度補償と線形補償の両方が重要となる。
【０００４】
また、デュアルカメラなどと呼ばれるような複数個のカメラモジュールを備えた撮像装置においては、複数個のカメラモジュールの動きを連動させながら制御することが必要になる場合がある。このような場合においても、温度によって位置検出信号と実際位置との関係がずれてしまうと、２個のカメラモジュールの間の連動性がくずれてしまい、生成された画像に影響を及ぼす可能性がある。さらに、位置検出信号と変位との関係の直線性がずれていると、やはり両者の連動性がくずれてしまい、画像に影響を及ぼす可能性がある。このように、複数個のカメラモジュールを備えた撮像装置においても、温度補償と線形補償の両方が重要となる。
【０００５】
特許文献１には、形状記憶合金の抵抗値を基に環境温度を検出し、制御値−変位特性の間の傾き成分とオフセット成分を、環境温度と基準温度との差に応じて補正する駆動装置が開示されている。特許文献２には、位置検出素子の出力信号が直線性を示すように、予め格納された補正関数を用いて補正する制御回路が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＷＯ２００９／０９３６４５号公報
【特許文献２】特開２００９−１４５６３５号公報
【特許文献３】特開２０１３−２０５５５０号公報
【特許文献４】特開２０００−４７０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１には、形状記憶合金の抵抗値を基に環境温度を検出し、制御値−変位特性の間の傾き成分とオフセット成分を、環境温度と基準温度との差に応じて補正する温度補償については記載されているが、制御値と変位特性との関係については、工場出荷時に２点の位置と制御値を計測し、２点を直線で結ぶことで制御値−変位特性を求めているので、この関係が非線形である場合は全く考慮されていない。
【０００８】
特許文献２には、位置検出素子の出力信号が直線性を示すように、予め格納された補正関数を用いて補正する線形補償については記載されているが、温度変化による特性の変化については全く考慮されていない。
【０００９】
本発明はかかる状況に鑑みてなされたものであり、そのある態様の例示的な目的のひとつは、撮像レンズの高精度かつ高速な位置決めが可能なレンズ制御装置の提供にある。
【課題を解決するための手段】
【００１０】
本発明のある態様は、レンズ制御装置に関する。レンズ制御装置は、撮像レンズと、撮像レンズを駆動するアクチュエータと、撮像レンズの位置を示す位置検出信号を生成するホール素子と、一定の電流を与えたときのホール素子の両端間電圧にもとづいて温度を検出する温度検出部と、位置検出信号が撮像レンズの目標位置を示す位置指令信号に近づくように、アクチュエータを制御する制御部と、を備える。
【００１１】
この態様によると、もともと位置検出素子として設けられているホール素子の内部抵抗の変化を利用して温度を検出できるため、新たな温度センサが不要であり、コストならびにスペースの削減が可能となる。また温度検出と位置検出を別々の端子間の電圧変化によって測定できるため、温度検出と位置検出を並列的に、および／または、連続的に行うことが可能となる。
【００１２】
制御部は、位置検出信号と、それに対応する撮像レンズの実際位置との関係の温度依存性を補正する温度補償部を含んでもよい。
ホール素子を利用して検出される温度を、ホール素子の温度特性の補正に用いることにより、正確な温度補償が可能となる。
【００１３】
制御部は、関係の直線性を補正するための線形補償部をさらに含んでもよい。
撮像レンズの位置制御の際に温度補償と線形補償の両方を行うことにより、撮像レンズの高精度かつ高速の位置決めが可能となる。
【００１４】
あらかじめ所定の温度における関係が取得されてもよい。制御部は、当該関係に関する情報を保存するためのメモリ手段さらに含んでもよい。所定の温度とは異なる現在温度に対して、所定の温度における関係に基づいて直線性を補正するとともに、所定の温度と現在温度との差に応じて所定の補正係数を与えて温度補償を行ってもよい。
この態様によれば、所定の温度における位置検出信号と撮像レンズの変位との関係と、所定の温度と現在の温度との差に応じた補正係数を用いているので、少ないメモリ容量や演算で温度補償と線形補償の両方を行うことが可能となる。
【００１５】
あらかじめ複数の所定の温度における関係が取得されてもよい。制御部は、当該関係に関する情報を保存するためのメモリ手段をさらに含んでもよい。所定の温度とは異なる現在温度に対して、複数の所定の温度のうち現在温度に最も近いひとつにおける関係に基づいて直線性を補正するとともに、直線の傾きが温度に関係なく一定となるように温度補償を行ってもよい。
この態様によれば、複数の所定温度の関係式を用いるため、温度補償と直線補償の精度を向上させることができるとともに、事前に測定しておくことが必要な所定の温度条件の数を制限することが可能なため、メモリ容量を抑えることが可能となる。
【００１６】
あらかじめ複数の所定の温度における関係が取得されててもよい。制御部は、当該関係に関する情報を保存するためのメモリ手段をさらに含んでもよい。所定の温度とは異なる現在温度に対して、複数の所定の温度のうち現在温度を挟む２つにおける関係に基づいて、現在温度のための関係を生成し、生成された関係に基づいて直線性を補正するとともに、直線の傾きが温度に関係なく一定となるように温度補償を行ってもよい。
この態様によれば、複数の所定温度の関係式を用いるため、温度補償と直線補償の精度を向上させることができるとともに、事前に測定しておくことが必要な所定の温度条件の数を制限することが可能なため、メモリ容量を抑えることが可能となる。
【００１７】
本発明の別の態様は、撮像装置に関する。撮像装置は、上述のいずれかのレンズ制御装置と、オートフォーカスのための位相差検出が可能な撮像素子と、を備えてもよい。温度補償と線形補償がオートフォーカスのための撮像レンズの位置検出に対して適用されてもよい。
この構成によれば、温度補償と線形補償がなされた位置検出信号に基づいて、位相差検出によって合焦位置の目標位置とされる位置にダイレクトにアクセスできるようになるため、高速かつ高精度のレンズ位置決めが可能となる。
【００１８】
本発明の別の態様も、撮像装置に関する。撮像装置は、複数個のカメラモジュールを備えてもよい。各カメラモジュールは、上述のいずれかのレンズ制御装置を備えてもよい。各カメラモジュールにおいて、温度補償と線形補償がオートフォーカスのための撮像レンズの位置検出に対して適用されてもよい。
この構成によれば、複数個のカメラモジュールの間の撮像レンズの移動を関連付けながら行うことができ、温度が変化しても位置検出信号が補正されているため、温度変化がなかったかのような関連付けが可能となる。
【００１９】
本発明の別の態様は、アクチュエータドライバである。このアクチュエータドライバは、ホール素子により生成されるホール信号にもとづいて、制御対象の位置を示す位置検出値を生成する位置検出部と、位置検出値を補正する補正部と、補正後の位置検出値と、制御対象の目標位置を示す位置指令値とが一致するように制御指令値を生成するコントローラと、制御指令値に応じた駆動信号をアクチュエータに印加するドライバ部と、一定の電流を与えたときのホール素子の両端間電圧にもとづいて温度を示す温度検出値を生成する温度検出部と、を備える。
【００２０】
この態様によると、もともと位置検出素子として設けられているホール素子の内部抵抗の変化を利用して温度を検出できるため、新たな温度センサが不要であり、コストならびにスペースの削減が可能となる。また温度検出と位置検出を別々の端子間の電圧変化によって測定できるため、温度検出と位置検出を並列的に、および／または、連続的に行うことが可能となる。
【００２１】
補正部は、位置検出値と実際位置の関係が線形化され、かつ線形化後の関係が温度に依存せずに一定となるように、位置検出値を補正してもよい。
この態様によれば、対象物の位置制御の際に温度補償と線形補償の両方を行うことにより、対象物を高精度かつ高速に位置決めできる。
【００２２】
所定の位置検出値に対応する制御対象の位置近傍において、位置検出値と実際位置との関係が温度に依存せずに一定となるように、位置検出値を補正してもよい。
【００２３】
位置検出値または位置指令値をｙ、実際位置をｘ、ｘとｙの関係をｘ−ｙ特性とするとき、補正部は、目標となる線形化されたｘ−ｙ特性ｙ＝ａｘ＋ｂと、所定の温度で予め測定されたｘ−ｙ特性を多項式近似した関数ｘ＝ｆ（ｙ）を記述するデータと、複数の温度ごとの補正係数ｃ，ｄ（ｄはゼロでもよい）を保持するメモリを含んでもよい。補正部は、位置検出部からの位置検出値をｙ１とするとき、
ｘ１＝ｆ（ｙ１）を計算するステップと、
ｙ２＝ａｘ１＋ｂを計算するステップと、
温度検出値が示す温度に対応する係数ｃ，ｄを決定するステップと、
ｙ３＝ｃｙ２＋ｄを計算するステップと、
を実行し、ｙ３が補正後の位置検出値であってもよい。
【００２４】
関数ｘ＝ｆ（ｙ）は複数の区間に分割され、区間毎に一次関数で近似されてもよい。
これにより、全区間を共通のひとつの高次の関数で近似する場合に比べて、計算時間を短縮でき、また計算途中に必要なメモリ容量を削減できる。
【００２５】
温度検出値が示す温度（検出温度）に対応する係数ｃ，ｄを決定するステップは、（i）検出温度に最も近い温度に対して規定された補正係数を選択してもよいし、（ii）検出温度を挟む２つの温度に対して規定された補正係数から、補間や平均などの演算によって計算してもよい。
【００２６】
位置検出値または位置指令値をｙ、実際位置をｘ、ｘとｙの関係をｘ−ｙ特性とするとき、補正部は、目標となる線形化されたｘ−ｙ特性ｙ＝ａｘ＋ｂと、所定の複数の温度Ｔ０，Ｔ１，…で予め測定されたｘ−ｙ特性を多項式近似した関数ｘ＝ｆ０（ｙ），ｘ＝ｆ１（ｙ），…を記述するデータを保持するメモリを含んでもよい。補正部は、
温度検出値が示す温度に対応する関数ｘ＝ｆ’（ｙ）を決定するステップと、
位置検出部からの位置検出値をｙ１とするとき、ｘ１＝ｆ’（ｙ１）を計算するステップと、
ｙ２＝ａｘ１＋ｂを計算するステップと、を実行し、
ｙ２が補正後の位置検出値であってもよい。
【００２７】
関数ｘ＝ｆ’（ｙ）は複数の区間に分割され、区間毎に一次関数で近似されてもよい。
これにより、全区間を共通のひとつの高次の関数で近似する場合に比べて、計算時間を短縮でき、また計算途中に必要なメモリ容量を削減できる。
【００２８】
温度検出値が示す温度（検出温度）に対応する関数ｘ＝ｆ’（ｙ）を決定するステップは、（i）検出温度に最も近い温度に対して規定された関数を選択してもよいし、（ii）検出温度を挟む２つの温度に対して規定された関数から、補間や平均などの演算によって求めてもよい。
【００２９】
アクチュエータドライバは、一つの半導体基板に一体集積化されてもよい。
【００３０】
本発明の別の態様は、レンズ制御装置に関する。レンズ制御装置は、レンズと、可動部にレンズが取り付けられたアクチュエータと、アクチュエータを駆動する上述のいずれかのアクチュエータドライバと、を備えてもよい。
【００３１】
本発明の別の態様は撮像装置に関する。撮像装置は、撮像素子と、上述のレンズ制御装置と、を備えてもよい。
【００３２】
なお、以上の構成要素の任意の組み合わせや本発明の構成要素や表現を、方法、装置、システムなどの間で相互に置換したものもまた、本発明の態様として有効である。
【００３３】
さらに、この課題を解決するための手段の記載は、すべての欠くべからざる特徴を説明するものではなく、したがって、記載されるこれらの特徴のサブコンビネーションも、本発明たり得る。
【発明の効果】
【００３４】
本発明によれば、対象物を高精度かつ高速に位置決めすることが可能となる。
【図面の簡単な説明】
【００３５】
【図１】撮像装置を示す図である。
【図２】本発明に係るレンズ制御装置の第１実施形態における温度補償と線形補償の処理を示すフローチャートである。
【図３】線形補償を行うときに必要となる位置検出信号と変位の関係の傾きを算出する方法を説明するための図である。
【図４】線形補償を行うときに必要となる位置検出信号と変位の関係の傾きとオフセットを算出する方法を説明するための図である。
【図５】位置検出信号と変位との関係が、温度によってどのように変化するかを説明する測定結果を示す図である。
【図６】図５の各温度における位置検出信号と変位との関係の測定結果に対して、線形補償を行った結果を示す図である。
【図７】図６の線形補償を行った結果に対してさらに温度補償を行った結果を示す図である。
【図８】図７の温度補償を行った際に用いた補正係数の代わりに、複数のレンズ制御装置でのそれぞれに最適な補正係数の平均値を補正係数として用いて温度補償を行った結果を示す図である。
【図９】線形補償を行う前に傾き補正によって温度補償を行った結果を示す図である。
【図１０】本発明に係るレンズ制御装置の第２実施形態における温度補償と線形補償の処理を示すフローチャートである。
【図１１】図５の結果における各温度における位置検出信号と変位との関係に基づいて各温度の測定結果に対して線形補償を行い、温度によって傾きが変化しないように温度補償を行った結果を示す図である。
【図１２】図５とは異なる位置検出信号と変位との関係を有するレンズ制御装置において、この関係が温度によってどのように変化するかを説明する測定結果を示す図である。
【図１３】図１２の測定結果に対して、線形補償を行う前に温度補償として傾きとオフセットの補正を行った結果の図である。
【図１４】図１３の結果における各温度における位置検出信号と変位との関係に基づいて各温度の測定結果に対して線形補償を行い、温度によって傾きが変化しないように温度補償を行った結果を示す図である。
【図１５】本発明に係るレンズ制御装置の第３実施形態における温度補償と線形補償の処理を示すフローチャートである。
【図１６】ストローク範囲を制限したうえで、線形補償と温度補償を行った結果を示す図である。
【図１７】第４実施形態における関数の直線近似を説明する図である。
【図１８】レンズ制御装置のシステム構成を示すブロック図である。
【図１９】ホール素子の抵抗値の温度依存性を示す図である。
【発明を実施するための形態】
【００３６】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００３７】
また図面に記載される各部材の寸法（厚み、長さ、幅など）は、理解の容易化のために適宜、拡大縮小されている場合がある。さらには複数の部材の寸法は、必ずしもそれらの大小関係を表しているとは限らず、図面上で、ある部材Ａが、別の部材Ｂよりも厚く描かれていても、部材Ａが部材Ｂよりも薄いこともあり得る。
【００３８】
本明細書において、「部材Ａが、部材Ｂと接続された状態」とは、部材Ａと部材Ｂが物理的に直接的に接続される場合のほか、部材Ａと部材Ｂが、それらの電気的な接続状態に実質的な影響を及ぼさない、あるいはそれらの結合により奏される機能や効果を損なわせない、その他の部材を介して間接的に接続される場合も含む。
【００３９】
同様に、「部材Ｃが、部材Ａと部材Ｂの間に設けられた状態」とは、部材Ａと部材Ｃ、あるいは部材Ｂと部材Ｃが直接的に接続される場合のほか、それらの電気的な接続状態に実質的な影響を及ぼさない、あるいはそれらの結合により奏される機能や効果を損なわせない、その他の部材を介して間接的に接続される場合も含む。
【００４０】
本実施の形態では、レンズを位置決めするアクチュエータを駆動するアクチュエータドライバについて説明する。まずは、撮像レンズを動かすアクチュエータの構成について簡単に説明する。図１は、撮像装置を示す図である。撮像装置３００は、デジタルカメラやデジタルビデオカメラ、スマートフォンやタブレット端末に内蔵されるカメラモジュールである。撮像装置３００は、撮像素子３０２、レンズ３０４、プロセッサ３０６およびレンズ制御装置４００を備える。レンズ３０４は、撮像素子３０２に入射する光の光軸上に配置される。たとえばレンズ３０４はオートフォーカス（ＡＦ）用レンズであってもよいし、手ぶれ補正用レンズであってもよい。レンズ制御装置４００は、プロセッサ３０６からの位置指令値（ターゲットコードとも称する）ＰＲＥＦにもとづいて、レンズ３０４を位置決めする。
【００４１】
たとえばレンズ３０４がＡＦ用レンズの場合、レンズ制御装置４００は、レンズ３０４を光軸方向（Ｚ軸方向）に変位させる。プロセッサ３０６は、撮像素子３０２が撮像した画像のコントラストが高くなるように、位置指令値ＰＲＥＦを生成する（コントラストＡＦ）。あるいは撮像素子３０２の外部に設けられ、あるいは撮像面に埋め込まれたＡＦセンサからの出力にもとづいて、位置指令値ＰＲＥＦが生成されてもよい（位相差ＡＦ）。
【００４２】
レンズ３０４が手ぶれ補正用レンズの場合、レンズ制御装置４００はレンズ３０４を撮像素子３０２と平行な面内でＸ軸および／またはＹ軸方向に変位させる。プロセッサ３０６は、ジャイロセンサからの出力にもとづいて、位置指令値ＰＲＥＦを生成する。
【００４３】
以下では、レンズ３０４をＡＦ用レンズとして説明を進める。
【００４４】
レンズ制御装置４００は、位置フィードバックにより、アクチュエータ４０２を制御する。具体的にはレンズ制御装置４００は、アクチュエータ４０２、位置検出素子４０４、温度検出素子４０６およびアクチュエータドライバＩＣ（Integrated Circuit）５００を備える。アクチュエータ４０２は、たとえばボイスコイルモータであり、その可動部が、レンズ３０４のホルダー３０８と接続されている。ボイスコイルモータの固定部は、撮像装置３００の筐体に対して固定されている。
【００４５】
位置検出素子４０４は、たとえばホール素子などの磁気的検出手段が多く用いられており、ここではホール素子を前提に説明する。ボイスコイルモータの可動部には、永久磁石が取り付けられ、固定部にはホール素子が取り付けられる。可動部と固定部が相対変位すると、ホール素子に入力される永久磁石からの磁気が変化する。ホール素子は、磁気変化、すなわちアクチュエータ４０２の変位、言い換えればレンズ３０４の現在の位置に応じた電気信号（以下、位置検出信号ＰＦＢという）を生成する。位置検出信号ＰＦＢは、アクチュエータドライバＩＣ５００にフィードバックされる。
【００４６】
アクチュエータドライバＩＣ５００は、ひとつの半導体基板に集積化された機能ＩＣである。ここでの「集積化」とは、回路の構成要素のすべてが半導体基板上に形成される場合や、回路の主要構成要素が一体集積化される場合が含まれ、回路定数の調節用に一部の抵抗やキャパシタなどが半導体基板の外部に設けられていてもよい。回路を１つのチップ上に集積化することにより、回路面積を削減することができるとともに、回路素子の特性を均一に保つことができる。
【００４７】
アクチュエータドライバＩＣ５００は、フィードバックされた位置検出信号ＰＦＢが、位置指令値ＰＲＥＦと一致するように、アクチュエータ４０２をフィードバック制御する。
【００４８】
このようにレンズ３０４の位置を検出して、これをフィードバックして位置制御に用いることにより、ステップ応答における過渡振動を抑えて収束を速めたり、目標位置への高速アクセスを実現したりできる。
【００４９】
理想的には、位置検出素子４０４の出力（すなわち位置検出信号ＰＦＢ）もしくはそれに対応する位置指令値ＰＲＥＦ（以下、これを変数ｙとしても表記する）と、レンズ３０４（アクチュエータ４０２）の実際位置（以下、これを変数ｘとして表記する）の関係（以下、ｘ−ｙ特性ともいう）は線形かつ温度変動等に関して不変であり、ばらつきも存在しないことが望ましい。しかしながら現実的には、ｘ−ｙ特性は非線形であり、また撮像装置３００ごとにばらつきが存在し、さらに、位置検出素子４０４の温度によってもそれらの関係（ｘ−ｙ特性）は変動する。したがって、位置検出信号ＰＦＢと位置指令値ＰＲＥＦが一致するように制御したとしても、この関係（ｘ−ｙ特性）が変化すると、レンズ３０４の実際の位置が変化することになる。
【００５０】
アクチュエータドライバＩＣ５００は、後に詳述するように、ｘ−ｙ特性を補正する機能を備える。この補正のために、温度検出素子４０６が設けられる。温度検出素子４０６は、位置検出素子４０４の温度を検出する。なお、位置検出素子４０４の温度と周囲温度が一致する場合、あるいは強い相関を有する場合、温度検出素子４０６は周囲温度を測定してもよい。検出された温度情報Ｔは、アクチュエータドライバＩＣ５００に入力される。アクチュエータドライバＩＣ５００は、温度情報Ｔにもとづいて、アクチュエータ４０２の駆動制御を補正する。温度検出素子４０６は、サーミスタやポジスタ、熱電対などであってもよい。あるいは後述するように、温度検出の対象である位置検出素子４０４がホール素子である場合、ホール素子を温度検出素子４０６として利用してもよい。
【００５１】
最も厳密には、以下のフローによって、温度変動や個体ばらつきのない制御が可能となる。
１．  製品出荷前に、すべての個体について、複数の温度それぞれにおいて、位置検出信号ｙと実際位置ｘの関係（ｘ−ｙ特性）を測定しておく。
２．  予め測定しておいた関係のうち現在の温度に対応するひとつを参照し、位置検出信号に対応する変位（位置）を取得する。
しかしながら、このフローでは、出荷前において膨大な検査時間を要することとなる。また、アクチュエータドライバＩＣの内部に、複数の温度ごとのｘ−ｙ特性を保持しておく必要があるため、大容量のメモリが必要となる。特に、ｘ−ｙ特性が非線形である場合には、この問題は深刻である。
【００５２】
以下では、小さいメモリ容量で、温度変動や個体ばらつきを抑制した制御を行うための補正処理について、第１実施形態から第３実施形態を参照して説明する。以下で説明する補正処理は、大きく、位置検出信号（位置指令値）と実際位置を線形化する線形補償と、温度変動を補正する温度補償と、を含む。
【００５３】
＜第１実施形態＞
本発明の第１実施形態について、図２ないし図９を用いて説明する。図２は、本発明に係るレンズ制御装置の第１実施形態における温度補償と線形補償の処理を示すフローチャートである。図３は、線形補償を行うときに必要となる位置検出信号と変位の関係の傾きを算出する方法を説明するための図である。図４は、線形補償を行うときに必要となる位置検出信号と変位の関係の傾きとオフセットを算出する方法を説明するための図である。図５は、位置検出信号と変位との関係が、温度によってどのように変化するかを説明する測定結果である。図６は、図５の各温度における位置検出信号と変位との関係の測定結果に対して、線形補償を行った結果を示す図である。図７は、図６の線形補償を行った結果に対してさらに温度補償を行った結果を示す図である。図８は、図７の温度補償を行った際に用いた補正係数の代わりに、複数のレンズ制御装置でのそれぞれに最適な補正係数の平均値を補正係数として用いて温度補償を行った結果の図である。図９は、線形補償を行う前に傾き補正によって温度補償を行った結果を示す図である。
【００５４】
図２を参照して、線形補償と温度補償の全体の処理を説明する。第１実施形態では、ひとつの所定温度における位置検出信号と変位との関係を利用して、各温度での線形補償を行う。
【００５５】
処理１〜３は、撮像装置３００の製造後、出荷前の検査工程で行われる。処理１では、所定温度（基準温度ともいう）Ｔ０、たとえば製造工場の設定温度などにおいて、位置検出信号ｙ（図１の位置検出値ＰＦＢ）と変位ｘの関係（ｘ−ｙ特性）を取得しておく。位置検出信号ｙは、ホール素子の出力電圧でもよい。サーボをかけて測定する場合はターゲットコード（図１の位置指令値ＰＲＥＦ）でもかまわない。なぜならターゲットコードは目標のアクセス位置を示すコードであり、サーボをかけて目標位置に収束させると、ホール素子の出力電圧と等価になるからである。変位ｘは、レーザ変位計などを用いて、撮像レンズの変位を直接測定するとよい。このようにして測定された位置検出信号ｙと変位ｘとの関係は、直線性が保たれているとは限らないし、温度がＴ０から変化することによって関係も変化することが考えられる。処理１は、すべての個体について行われる。
【００５６】
処理２では、線形関数ｙ＝ａｘ＋ｂを設定する。線形関数ｙ＝ａｘ＋ｂの傾きａと切片ｂは、処理１で得られたｘ−ｙ特性を考慮して規定することが望ましい。たとえばｘ−ｙ特性を線形近似することにより、傾きａ、切片ｂを求めてもよい。なお、線形関数ｙ＝ａｘ＋ｂは、基準温度Ｔ０におけるｘ−ｙ特性とは無関係に定めてもよい。
【００５７】
測定時に０点調整を行った場合は、測定段階から原点を通る、すなわちｂ＝０となるため、傾きａのみを求めればよい。たとえば、図３のように測定結果をｙ＝ｇ（ｘ）のように関数化しておくと、これを微分したうえで、ストロークの中央付近の位置ｘ０における傾きは、ａ＝ｇ'（ｘ０）で求めることができ、傾きａを有し、原点を通る直線７としてｙ＝ａｘを規定することができる。一方、測定結果が原点を通らない場合、オフセット補正（ｂ≠０）を行って原点を通るようにシフトさせてもよいし、図４に示すように、測定結果８の任意の２点、たとえば実用ストローク範囲の両端の２点（ｘ０１，ｙ０１）と（ｘ０２，ｙ０２）を結ぶ直線９としてｙ＝ａｘ＋ｂを規定してもよい。
【００５８】
処理３では、処理１で測定した位置検出信号ｙと変位ｘの関係（ｘ−ｙ特性）を関数化する。携帯電話などの実機ではｙが測定値になるのでｙを変数として、ｘ＝ｆ（ｙ）のように関数化する。関数は、直線ではない関係をフィットさせるので、２次以上の関数が必要である（多項式近似）。次数を上げた方がフィット誤差は小さくなるが、計算量が増えるので、実態に合わせて次数を設定すればよい。以下の線形補償では５次関数を用いた。
ｘ＝ｆ（ｙ）＝ｋ０＋ｋ１ｙ＋ｋ２ｙ２＋ｋ３ｙ３＋ｋ４ｙ４＋ｋ５ｙ５      …（１）
【００５９】
処理４〜６は、アクチュエータドライバＩＣ５００の実動作中の処理である。実動作中に位置検出素子４０４から得られる位置検出信号ｙの値をｙ１とする。
【００６０】
処理４では、実際に検出された位置検出信号ｙ１をこの関数式（１）にあてはめて、計算上の変位ｘ１を求める。この変位ｘ１は仮の量である。
ｘ１＝ｆ（ｙ１）
周囲温度がＴ０と同じであれば、工場で測定した結果が再現されるはずである。周囲温度がＴ０と異なるＴ１であったとしても、Ｔ０に対して導出した関数ｘ＝ｆ（ｙ）を用いる。なお、温度Ｔ１の検出には、サーミスタや熱電対などの温度センサを用いてもよいが、後述するように、ホール素子の抵抗値の温度による変化を利用して温度変化を検出すると、部品点数を増やさずに、温度検出したい素子そのものの温度を検出することができる。
【００６１】
処理５では、処理４で求めたｘ１を処理２で設定したｙ＝ａｘ＋ｂに代入して、ｙ２＝ａｘ１＋ｂを求める。これにより測定値ｙ１はｙ２に補正され、線形補償がなされる。この線形補償では、温度Ｔ１でも温度Ｔ０での関係式を用いているため、温度Ｔ０と温度Ｔ１の差に応じた誤差が生じてしまう。
【００６２】
処理６では、この誤差を補正するように温度補償を行う。具体的には直線の傾きとオフセットの温度依存性を補正し、ｙ３＝ｃｙ２＋ｄとする。係数ｃ，ｄは、温度ごとに予め規定されたパラメータである。係数ｃ，ｄは、個体ごとに求める必要は無く、試験前において、代表的な少ないサンプル（個体）を用いて適切な値を規定すればよい。関係式が原点を通るならば（すなわちｂ＝０ならば）、傾きの補正だけでよく、ｄ＝０とすることができる。
【００６３】
このように、線形補償と温度補償の両方を行うことにより、線形性を有し、温度によらず一定の位置検出信号と変位との関係が得られる。サーボが安定した状態では位置検出信号と位置指令値は等しいから、位置指令値と変位は、温度や個体ばらつきによらずに、線形で安定な関係を保つことになる。すなわち、プロセッサ３０６からみると、温度やばらつきによらずに、ある位置指令値ＰＲＥＦに対して、レンズ３０４を同じ位置に変位させることができる。
【００６４】
具体的な測定結果と補正例を図５から図８のグラフで説明する。
【００６５】
図５は、位置検出信号ｙ１と変位ｘとの関係の実測結果の例である。グラフ１０は、温度１０℃、１５℃、３５℃の結果を示している。この３つの温度は、測定した中での最も変化の大きな２つの温度と、その中間の結果を示した温度の結果を代表的に示したものである。また、グラフの縦軸の数値については、ホールアンプの倍率にもよるし、ホールの出力かターゲットコードかによっても異なるため、同じ条件で測定しているという前提では絶対値に意味がないので抜いている。グラフ１０は直線に近いが、実際には湾曲しており、また温度によって傾きに変化が生じている。
【００６６】
図６は、図５の結果に対して線形補償（処理４，５）を行った結果のグラフである。関数化の基準となる基準温度Ｔ０は、図示していないが２５℃とした。２５℃において測定しておいた位置検出信号ｙと変位ｘの関係に対して、５次式を用いて関数化を行い、ｘ＝ｆ（ｙ）の関数を求めた。次に、この関数に各温度の位置検出信号の値を入れ、あらかじめ決めておいた傾きａを用いて、ｙ＝ａｘにより直線に補正された結果を得た。傾きａは、ここでは２５℃での位置検出信号と変位の関係における、変位が中間位置付近での傾きとして規定した。グラフ１１に示すように、各温度の結果はほぼ直線に補正されるが、すべての温度に対して２５℃の関数を用いて直線化したため、関数誤差が発生し、温度によって傾きが異なる結果となった。
【００６７】
図７は、図６の結果に対して、温度ごとに傾き補正係数を設定し、各温度の傾きを補正した結果である。具体的には、基準温度Ｔ０＝２５℃の直線に傾きが一致するように、温度ごとの補正係数を設定した。温度ごとの補正係数は、図２の処理６における係数ｃと対応付けられる。
【００６８】
たとえば、２５℃のときの傾きがα２５℃、１０℃のときの傾きがα１０℃、１５℃のときの傾きがα１５℃、３５℃のときの傾きがα３５℃であるとする。この場合、１０℃のグラフにα２５℃／α１０℃を乗算すれば、２５℃のグラフと一致する。同様に、１５℃のグラフに、α２５℃／α１５℃を乗算すれば２５℃のグラフと一致し、３５℃のグラフに、α２５℃／α３５℃を乗算すれば、２５℃のグラフと一致する。
【００６９】
したがって、温度１０℃における図２の処理６における補正係数ｃ１０℃は、α２５℃／α１０℃と求まる。同様に、温度１５℃における補正係数ｃ１５℃は、α２５℃／α１５℃あり、温度３５℃における補正係数ｃ３５℃は、α２５℃／α３５℃と求まる。
【００７０】
こうして求まった補正係数Ｃ１０℃、Ｃ１５℃、Ｃ３５℃は、レンズ制御装置のメモリ内にテーブルとして保管しておくとよい。温度検出手段で検出された検出温度が、テーブルで設定された温度（この例では、１０，１５，３５℃）の中間にある場合は、それを挟む２つの温度に対して規定された補正係数の平均値を用いてもよいし、線形補間により補正係数を算出してもよい。また、補正係数を温度の関数として保有しておいてもよい。線形補償と温度補償を行った結果は、グラフ１２は温度に関係なく、ほぼ一直線になっている。このことは、アクチュエータドライバＩＣ５００の実動作中において処理６で得られる位置検出信号ｙ３が、実際位置ｘを高い精度で表すことを意味する。
【００７１】
プロセッサ３０６からみた場合、位置指令値ＰＲＥＦ（ｙ）とレンズ３０４の実際の位置ｘが、温度等に依存せずに、常に関係式ｙ＝ａｘ＋ｂを満たすこととなる。これにより、システム全体としてレンズ３０４を正確かつ高速に位置決めできる。
【００７２】
図７では、温度ごとの補正係数ｃとして、実際に測定した少数の代表サンプルに最適な値を設定した。しかしながら、補正係数は個体ばらつきが存在し、同じ値で最適な補正ができるとは限らない。個体ごとに最適な補正係数をあらかじめ設定してもよいが、そのためには個体ごとに温度特性を測定する必要があり、生産性が低下する。個体ばらつきがある場合には、複数台の個体の測定結果から補正係数の分布を求め、たとえば平均値などを補正係数の設定値としてもよい。補正係数の平均値で傾き補正した場合の結果を図８に示す。このように、補正係数の個体ばらつきの影響を受けて、グラフ１３は傾きの補正誤差が生じてしまうが、全く傾き補正しない場合（図６）に比べると、誤差は改善できている。
【００７３】
なお、図２のフローは一例を示すもので、処理の順序まですべて規定するものではない。たとえば、先に温度ごとの傾き補正を行うことで、湾曲しつつも温度に関係なく一定の補正値を得ることとし、その後ひとつの関数を用いて直線化してもよい。直線化を行う前に、温度ごとの傾き補正を行った結果を図９に示す。湾曲は残るものの、温度によらずほぼ同一のカーブとなる。すなわち、同一のカーブをひとつの関数で直線化するので、直線化時の関数誤差はほとんどなく、グラフ１４は直線化後も温度によらずほぼ１本の直線となる。この例のように、比較的直線性の良好なサンプルの場合、どちらの方法でもほぼ同じ補正結果が得られる。
【００７４】
ただし、直線化される前のカーブした特性に対して、最適な傾き補正値とオフセット補正値を見つけることは難しい。言い換えれば図２に示したように先に直線化を行い、直線化の際にオフセット補正も行い（原点を通るようにする、ｂ＝０）、直線化後の補正については傾き補正のみ（すなわちｄ＝０）とすることにより、高精度な補正が可能であり、また、補正のための係数の算出も容易となる。また、温度ごとの傾き補正、場合によってはオフセット補正も行ったとしても、温度によらず同一のカーブが得られないケースもある。このような場合には、温度補正後に直線化しても、直線化後の傾きが温度ごとに異なってしまい、再度傾き補正を行う必要がある。したがって、このようなケースでは、先に直線化を行ってから、その後温度補正を行った方が処理が容易となる。
【００７５】
＜第２実施形態＞
本発明の第２実施形態について、図１０ないし図１４を用いて説明する。図１０は、本発明に係るレンズ制御装置の第２実施形態における温度補償と線形補償の処理を示すフローチャートである。図１１は、図５の結果における各温度における位置検出信号と変位との関係に基づいて各温度の測定結果に対して線形補償を行い、温度によって傾きが変化しないように温度補償を行った結果を示す図である。
【００７６】
図１０のフローが図２のフローと大きく異なるのは、直線化のための関数として、複数の温度条件で測定した関数を用いている点である。直線化時にその温度の特性を示す関数、あるいはそれに近い関数を用いることができるため、直線化による関数誤差を低減でき、結果として補正誤差が低減できる。
【００７７】
処理１５では、複数の所定温度Ｔ０、Ｔ１、Ｔ２・・・において、位置検出信号yと変位ｘの関係を取得しておく。設定する温度条件が多い方が、実際の温度とのずれによる関数化誤差が低減できるので、補正の精度を高められるが、事前の温度測定の工程が増加するので、要求精度と工程コストの兼ね合いで条件数を設定すればよい。
【００７８】
処理１６では、直線化した場合の線形関数ｙ＝ａｘ＋ｂを設定する。すなわち、傾きａと切片ｂを決める。測定時に０点調整を行った場合は、測定段階から原点を通る、すなわちｂ＝０となるため、傾きａのみを求めればよい。ここでは、第１実施形態と同様、原点を通る特性になっているので、代表温度としてＴ０での傾きａを求めておく。他の温度の直線化時にこの同じ傾きを用いることにより、線形補償と同時に温度補償も行える。
【００７９】
処理１７では、測定した位置検出信号ｙと変位ｘの関係を関数化する。携帯電話などの実機ではｙが測定値になるのでｙを変数として、ｘ＝ｆ（ｙ）のように関数化する。関数は、直線ではない関係をフィットさせるので、２次以上の関数が必要である。次数を上げた方がフィット誤差は小さくなるが、計算量が増えるので、実態に合わせて次数を設定すればよい。以下の線形補償では５次関数を用いた。以上の関数化を、事前に測定した各温度条件の結果に対して行う。
【００８０】
処理１８では、実際に検出された位置検出信号ｙ１をこれらの関数式にあてはめて、計算上の変位ｘ１を求める。周囲温度がＴ０、Ｔ１、Ｔ２・・・と同じであれば、同じ温度の関数を用いる。同じ温度条件の関数がない場合は、最も近い温度条件の関数を用いる。あるいは、実際の温度の両側にある温度条件の関数を補間して新たな関数を生成してもよい。複雑な関数を生成するのは困難なので、２つの関数の傾きを平均化するような係数を掛けて新たな関数を生成してもよい。
【００８１】
処理１９では、処理１８で求めたｘ１を、処理１６で設定したｙ＝ａｘ＋ｂに代入して、ｙ２＝ａｘ１＋ｂを求める。これにより測定値ｙ１はｙ２に補正され、線形補償がなされる。実施形態１では、この後温度補償としての傾き補正を行ったが、温度ごとの関数を用いることにより、関数化の誤差は小さくでき、傾きをａというひとつの値に設定するので、直線化したときに同時に傾き補正も行っていることになる。もちろん、ぴったりの関数データがなく、関数化誤差が残るようなら、再度傾き補正を行ってもかまわない。
【００８２】
図１１は、図５の結果に対して、線形補償を行った結果のグラフである。関数化の基準となる温度は、それぞれの温度、すなわち１０℃、１５℃、３５℃とした。左記のそれぞれの温度において測定しておいた位置検出信号ｙと変位ｘの関係に対して、５次式を用いて関数化を行い、ｘ＝ｆ（ｙ）の関数を求めた。次に、この関数に各温度の位置検出信号の値を入れ、あらかじめ決めておいた傾きａを用いて、ｙ＝ａｘにより直線に補正された結果を得た。どの温度の直線化の際にも同じ傾きａを用いることにより、直線化と同時に傾き補正も行っている。グラフ２０は、温度に関係なくほぼ１本の直線となり、図７の結果と比べても、さらに補正誤差が低減できる。この結果は、各温度の関数をその温度に適用して直線化しているので、きれいな直線になるのは当然で、実際の温度は関数化した温度条件とは若干異なるので、補正誤差は増加してしまう。手間ひまをかけてでも線形補償と温度補償の精度を上げたい場合には、なるべく多くの温度条件での特性をデータベース化しておくとよい。
【００８３】
続いて、別の特性を有するレンズ制御装置における線形補償と温度補償の例を説明する。図１２は、図５とは異なる位置検出信号と変位との関係を有するレンズ制御装置において、この関係が温度によってどのように変化するかを説明する測定結果である。図１３は、図１２の測定結果に対して、線形補償を行う前に温度補償として傾きとオフセットの補正を行った結果の図である。図１４は、図１３の結果における各温度における位置検出信号と変位との関係に基づいて各温度の測定結果に対して線形補償を行い、温度によって傾きが変化しないように温度補償を行った結果を示す図である。
【００８４】
図１２において、グラフ２１は、温度５℃、３０℃、５０℃の結果を示しており、温度による特性差が生じている。この３つの温度は、測定した中での最も変化の大きな２つの温度と、その中間の結果を示した温度の結果を代表的に示したものである。図１２の結果が図５の結果と大きく異なるのは、線形性が悪くなっている点である。ストローク範囲によって、傾きが大きく変化している。
【００８５】
図１２の結果に対して、直線化を行う前に、温度ごとの傾き補正を行った結果を図１３に示す。傾き補正と同時にオフセット補正も実施しており、原点を通るグラフに変換した。グラフ２２は、湾曲が残りつつ、温度ごとの結果も一致しない。すなわち、変位が小さい側で傾き補正を実施したのだが、変位が大きな領域では同じ傾き補正が適正ではなく、ずれが発生している。すなわち、このような特性の場合、傾き補正とオフセット補正だけでは温度補償はできない。実施したとしても誤差が大きくなる。したがって、この結果を直線化しても、誤差が大きく出てしまう。
【００８６】
このような特性の場合には、図１０のフローにしたがって温度ごとの関数データを用い、温度ごとに直線化するのが望ましい。５℃。３０℃、５０℃の各温度の測定データに基づいた関数を用いて、各温度の直線化を行い、傾きが同じになるように温度ごとに傾き補正を行った結果を図１４に示す。グラフ２３は、ほぼ１本の直線となっており、線形補償と温度補償の両方が実現できている。
【００８７】
＜第３実施形態＞
本発明の第３実施形態について、図１５ないし図１６を用いて説明する。図１５は、本発明に係るレンズ制御装置の第３実施形態における温度補償と線形補償の処理を示すフローチャートである。図１６は、ストローク範囲を制限したうえで、線形補償と温度補償を行った結果を示す図である。
【００８８】
図１２のように、線形性が悪い場合に、各温度の関数を用いて各温度の直線化を実施すると、比較的誤差の少ない補正が可能となるが、各温度の関数を準備しておく必要があり、余計な時間とメモリ容量が必要となる。そこで、別の補正方法を示したフローが図１５である。図１のフローと異なるのは、所定温度Ｔ０における位置検出信号と変位の関係を取得した際に、線形性が悪くて高精度の線形補償と温度補償が実現できないと判断した場合に、線形性の悪いストローク範囲をカットし、補正が可能なストローク範囲のみを使うように制御範囲を制限する点である。
【００８９】
処理２４では、所定温度Ｔ０、たとえば製造工場の設定温度などにおいて、位置検出信号yと変位ｘの関係を取得しておく。
【００９０】
処理２５では、処理２４の結果から判断して、制御に用いることが可能と思われるストローク範囲を制限することである。ストロークを制限した上で、制限されたストローク位置が原点となるようにオフセット補正しておいてもよい。
【００９１】
処理２６では、直線化した場合の線形関数ｙ＝ａｘ＋ｂを設定する。先にオフセット補正を行った場合は原点を通る、すなわちｂ＝０となるため、傾きａのみを求めればよい。
【００９２】
処理２７では、測定した位置検出信号ｙと変位ｘの関係を関数化する。携帯電話などの実機ではｙが測定値になるのでｙを変数として、ｘ＝ｆ（ｙ）のように関数化する。関数は、直線ではない関係をフィットさせるので、２次以上の関数が必要である。次数を上げた方がフィット誤差は小さくなるが、計算量が増えるので、実態に合わせて次数を設定すればよい。以下の線形補償では５次関数を用いた。
【００９３】
処理２８では、実際に検出された位置検出信号ｙ１をこの関数式にあてはめて、計算上の変位ｘ１を求める。周囲温度がＴ０と同じであれば、工場で測定した結果が再現されるはずである。周囲温度がＴ０から変化したＴ１であったとしても、Ｔ０に対して導出した関数ｘ＝ｆ（ｙ）を用いる。
【００９４】
処理２９では、処理２８で求めたｘ１を処理２６で設定したｙ＝ａｘ＋ｂに代入して、ｙ２＝ａｘ１＋ｂを求める。これにより測定値ｙ１はｙ２に補正され、線形補償がなされる。この線形補償では、温度Ｔ１でも温度Ｔ０での関係式を用いているため、温度Ｔ０と温度Ｔ１の差に応じた誤差が生じてしまう。
【００９５】
処理３０では、この誤差を補正するように温度補償を行う。具体的には直線の傾きとオフセットを補正し、ｙ３＝ｃｙ２＋ｄとする。関係式が原点を通るならば、傾きの補正だけでよい。
【００９６】
このように、ストローク範囲を制限した上で線形補償と温度補償を実施した結果を図１６に示す。グラフ３１は、若干の補正誤差が残るものの、高精度で線形補償と温度補償が実現できている。
【００９７】
なお、線形性の悪いストローク範囲をカットする、と説明したが、これはグラフ上の表示のことであり、実際の装置において、このように線形性の悪いストローク範囲で動かないようにしたり、位置検出信号が出力されないようにしたり、ということは必ずしも必要ではなく、このような範囲において線形性のずれや温度の変化を許容すればいいだけである。
【００９８】
このように全ストローク範囲にわたって線形性を確保し、温度による変化を抑えるのが困難な場合は、所定の位置、所定のストローク範囲において、線形性を確保し、温度による変化を抑えることで、少なくともその範囲での性能は改善される。どのような位置、どのようなストローク範囲において線形補償と温度補償を最適化すべきかは、目的に応じて選択すればよい。たとえば、ＡＦの線形補償、温度補償の場合だと、風景撮影を重視するなら無限遠近傍位置での線形補償、温度補償を最適化すればいいし、自分撮りを重視するなら１メートル前後の被写体距離に相当するレンズ位置近傍での線形補償、温度補償を最適化すればよい。また、ＯＩＳの線形補償、温度補償の場合だと、ブレ信号は入ってない状態でのセンタリング設定位置やバネの中立安定位置近傍での線形補償、温度補償を最適化すればよい。
【００９９】
＜第４実施形態＞
本発明の第４実施形態について、図１７を参照して説明する。図１７は、第４実施形態における関数を直線近似する方法を説明する図である。第１から第３の実施形態では、所定温度Ｔ０における位置検出信号ｙと像変位ｘとの関係が曲線である場合に、高次の関数、たとえば５次関数として補正処理に利用していた。しかし、実際の撮像装置の中で線形補償する場合は、このような５次関数の演算を行っていると計算時間がかかり、計算途中に必要なメモリ容量も大きくなる。そこで関数ｘ＝ｆ（ｙ）を、複数の区間に分割し、区間毎に一次関数で近似してもよい。若干、計算精度が落ちる可能性はあるが、なめらかな変化を示すｘ−ｙ特性のアクチュエータでは、直線補間でもほとんど影響はない。通常のカメラモジュールのＡＦおよびＯＩＳのストローク範囲であれば、１６点から２０点程度のポイントをつなぎ合わせた直線補間で十分である。
【０１００】
図１７では、測定ポイントを丸印で示し、これらのポイントでのデータにフィットさせた高次関数を破線で、ポイント間を直線で結ぶことで近似した結果を実線で示している。十分なポイント数があれば、高次関数に対して直線のつなぎ合わせでも、結果に大きな差は生じていない。各測定ポイントでのｘとｙの値を補正テーブルとしてメモリに保存しておくとよい。図２の処理５等において、測定ポイント間の位置検出信号ｙ１が検出された場合は、その両側の測定ポイントのデータを用い、この２点を結ぶ１次関数としてｘ１の値を求めればよい。
【０１０１】
ポイント間を直線で結ぶのであれば、最初から関数化せずに直線で結んでもよいように思えるが、たまたま選んだポイントの測定結果がノイズ成分を含んだ特異点であった場合、そのまま直線でつなぎ合わせるとガタガタした結果となる。実際にはもっとなめらかな変化を有していると考えられるため、一旦関数化してなめらかな曲線とし、これを直線のつなぎ合わせで近似した方がよい。関数化する際に、すべての測定点を通る関数を導くのではなく、測定点との誤差の２乗平均が最小となるような関数を選定するとよい。
【０１０２】
続いてレンズ制御装置４００の具体的な構成例を説明する。
図１８は、レンズ制御装置４００の具体的なブロック図である。位置検出素子４０４はホール素子３２であり、アクチュエータ４０２の可動部の変位に応じたホール電圧Ｖ＋，Ｖ−を発生し、アクチュエータドライバＩＣ５００のホール検出ピン（ＨＰ，ＨＮ）に供給する。
【０１０３】
位置検出部５１０は、ホール電圧Ｖ＋，Ｖ−にもとづいて、アクチュエータ４０２の可動部の位置（変位）を示すデジタルの位置検出値ＰＦＢを生成する。位置検出部５１０は、ホール電圧を増幅するホールアンプ５１２と、ホールアンプ５１２の出力をデジタル値の位置検出値ＰＦＢに変換するＡ／Ｄコンバータ５１４を含む。
【０１０４】
温度検出部５２０は、温度を示す温度検出値Ｔを生成する。上述したように、温度は、位置検出素子４０４の温度を示すことが望ましい。図１８では、位置検出素子４０４であるホール素子３２を、温度検出素子４０６としても利用する。これは、ホール素子３２の内部抵抗ｒが温度依存性を有することを利用したものである。温度検出部５２０は、ホール素子３２の内部抵抗ｒを測定し、温度を示す情報として利用する。
【０１０５】
温度検出部５２０は、定電流回路５２２とＡ／Ｄコンバータ５２４を含む。定電流回路５２２は、ホール素子３２に所定のバイアス電流ＩＢＩＡＳを供給する。このバイアス電流ＩＢＩＡＳは、ホール素子３２を動作させるために必要な電源信号でもあり、したがって定電流回路５２２は、ホールバイアス回路として把握することができる。
【０１０６】
ホール素子３２の両端間には、電圧降下ＩＢＩＡＳ×ｒが発生する。この電圧降下は、ホールバイアスピン（ＨＢ）に入力される。Ａ／Ｄコンバータ５２４は、ＨＢピンの電圧ＶＨＢ（＝ＩＢＩＡＳ×ｒ）をデジタル値Ｔに変換する。バイアス電流ＩＢＩＡＳは既知で一定であるから、デジタル値Ｔは内部抵抗ｒに比例する信号であり、したがって、ホール素子３２の温度の情報を含んでいる。内部抵抗ｒと温度の関係は事前に測定し、関数化し、またはテーブル化されており、後段の補正部５３０において、デジタル値Ｔが温度情報に変換される。
【０１０７】
インタフェース回路５４０は、プロセッサ３０６から、アクチュエータ４０２の可動部の目標位置を示すターゲットコードＴＣを受信する。たとえばインタフェース回路５４０が、Ｉ２Ｃ（Inter IC）などのシリアルインタフェースであってもよい。フィルタ５５０はインタフェース回路５４０が受信したターゲットコードＴＣをフィルタリングし、位置指令値ＰＲＥＦを生成する。位置指令値ＰＲＥＦが急激に変化すると、レンズ３０４の位置がリンギングするおそれがある。フィルタ５５０により、このリンギングが抑制される。
【０１０８】
補正部５３０は、位置検出部５１０からの位置検出値ＰＦＢを補正する。具体的には、補正部５３０は、線形補償部５３２、温度補償部５３４、メモリ５３６を含む。線形補償部５３２は、位置検出値ＰＦＢと実際位置の関係（上述のｘ−ｙ特性）の直線性を補正する。メモリ５３６には、上述のパラメータａ，ｂ，関数ｘ＝ｆ（ｙ）を記述するデータ（たとえば係数ｋ０〜ｋ５）、パラメータｃ，ｄなどが格納される。メモリ５３６は、ＲＯＭやフラッシュメモリなどの不揮発性メモリであってもよいし、回路の起動のたびに外部のＲＯＭから供給されるデータを一時的に保持する揮発性メモリであってもよい。
【０１０９】
温度補償部５３４は、位置検出値ＰＦＢと実際位置との関係に対して、温度変化によって関係が変化するのを補正する。
【０１１０】
たとえば第１実施形態においては、線形補償部５３２の処理は、図２のフローチャートの処理４，５に対応し、温度補償部５３４の処理は、図２のフローチャートの処理６に対応する。
【０１１１】
第２実施形態においては、線形補償部５３２の処理は、図１０のフローチャートの処理１９に対応し、温度補償部５３４の処理は、図１０のフローチャートの処理１８に対応する。
【０１１２】
第３実施形態においては、線形補償部５３２の処理は、図１５のフローチャートの処理２８、２９に対応し、温度補償部５３４の処理は、図５０のフローチャートの処理３０に対応する。
【０１１３】
コントローラ５６０は、位置指令値ＰＲＥＦと、補正部５３０による補正後の位置検出値ＰＦＢ＿ＣＭＰを受ける。コントローラ５６０は、位置検出値ＰＦＢ＿ＣＭＰが位置指令値ＰＲＥＦと一致するように、制御指令値ＳＲＥＦを生成する。アクチュエータ４０２がボイスコイルモータである場合、制御指令値ＳＲＥＦはボイスコイルモータに供給すべき駆動電流の指令値である。コントローラ５６０は、たとえば誤差検出器５６２とＰＩＤ制御器５６４を含む。誤差検出器５６２は、位置検出値ＰＦＢ＿ＣＭＰと位置指令値ＰＲＥＦの差分（誤差）ΔＰを生成する。ＰＩＤ制御器５６４は、ＰＩＤ（比例・積分・微分）演算によって、制御指令値ＳＲＥＦを生成する。ＰＩＤ制御器５６４に換えて、ＰＩ制御器を用いてもよいし、非線形制御を採用してもよい。
【０１１４】
ドライバ部５７０は、制御指令値ＳＲＥＦに応じた駆動電流をアクチュエータ４０２に供給する。
【０１１５】
図１８からもわかるように、ホール素子３２からのホール電圧Ｖ＋，Ｖ−は、制御電流の印加とは別の端子から出力される。すなわち、形状記憶合金のように、抵抗値変化の中に温度変化による成分と変位による成分とが混在するようなことがなく、高精度に位置検出と温度検出を両立できる。
【０１１６】
補正部５３０およびコントローラ５６０の処理は、加算器、乗算器などのハードウェアによって実現してもよいし、ＣＰＵとソフトウェアプログラムの組み合わせによって実現してもよい。
【０１１７】
図１９は、ホール素子の抵抗値の温度依存性を示す図である。黒丸が測定結果を示し、破線はこの変化を直線近似したものである。上記のように、温度によるホール素子の抵抗値の変化を利用して温度変化を検出することができる。一定のバイアス電流を流しているので、抵抗値の変化はホール素子のバイアス電圧の変化として検出できる。図１９に示すように、温度とホールバイアス電圧の関係はほぼ直線を示しており、この結果からもホールのバイアス電圧の変化をモニターすることで温度変化を検出できることがわかる。
【０１１８】
ここで注目すべき特徴は、ホール素子の出力の温度による変化をモニターしているのではなく、定電流駆動しているバイアス側の抵抗の温度変化を電圧変化としてモニターしている点である。ホール素子の出力電圧をモニターした場合は、ホール素子そのものの温度特性のほか、ホールアンプの温度特性や磁束密度の温度特性の影響を受け、純粋に温度の変化だけを検出することが困難である。しかしながら、バイアス側の電圧変化をモニターした場合は、温度による変動要因がほぼ素子の抵抗変化に限定されるため、温度検出が可能となる。
【０１１９】
なお、図１８において、ホール素子を利用して検出した温度を、位置検出信号と実際位置との関係の温度補償に利用したがその限りではない。検出した温度は、温度異常の検出および温度異常にともなう保護（サーマルシャットダウン）などに利用してもよい。あるいは検出した温度を、レジスタに格納し、ＣＰＵ３０６から読出し可能としてもよい。
【０１２０】
以上のようなレンズ制御装置は、携帯電話用のカメラモジュールなどに用いられる。特に、本発明のレンズ制御装置の好適な応用のひとつは、位相差検出機能を備えた撮像素子を有する撮像装置である。位相差検出を利用することにより、焦点のずれ、方向が判別できるため、あらかじめ位置検出信号と関係付けをしておくことで、現在位置から合焦位置までの位置検出信号の必要変化量が判別でき、目標の位置検出信号のコード位置までアクセスすることで、ダイレクトに合焦状態が得られる。ただし、ここで目標位置までの位置検出信号の変化量を演算する場合に線形演算が用いられるため、位置誤差を低減するためには、位置検出信号と変位との関係の線形化が重要となる。さらに、温度によってこの関係が変化してしまうと、目標位置のコード番号の位置まで変位しても、目標位置からずれてしまうため、温度補償も重要となる。本発明を利用することで、線形補償と温度補償が両立できるため、本発明は位相差検出機能を備えた撮像素子を有する撮像装置に適用するのが好適である。
【０１２１】
本発明のレンズ制御装置の好適な応用のもうひとつは、デュアルカメラのように複数のカメラを搭載した撮像装置である。２つのカメラを連動させ、２つのカメラの画像を合成処理して、たとえばズーム画像を得るような応用が考えられている。この場合に、２つのカメラのレンズ位置を連動させる手立ては位置検出信号である。初期状態で両者の連動が取れるようにキャリブレーションし、線形補償を実施していたとしても、温度によってこの関係がずれてしまうと位置誤差となって、画像に影響を及ぼしかねない。とくに、２つのカメラの温度特性が異なる場合は、所定の位置まで動く命令に誤差が生じるのはもちろんだが、そのずれ量に差があるため、一様な温度補償では正しい位置制御ができなくなる。本発明を利用することで、線形補償と温度補償が両立でき、かつカメラごとに補償を実行できるので、本発明はデュアルカメラのような複数のカメラを搭載した撮像装置に適用するのが好適である。
【符号の説明】
【０１２２】
３００…撮像装置、３０２…撮像素子、３０４…レンズ、３０６…プロセッサ、４００…レンズ制御装置、４０２…アクチュエータ、４０４…位置検出素子、４０６…温度検出素子、５００…アクチュエータドライバＩＣ、５１０…位置検出部、５１２…ホールアンプ、５１４…Ａ／Ｄコンバータ、５２０…温度検出部、５２２…定電流回路、５２４…Ａ／Ｄコンバータ、５３０…補正部、５３２…線形補償部、５３４…温度補償部、５４０…インタフェース回路、５５０…フィルタ、５６０…コントローラ、５６２…誤差検出器、５６４…ＰＩＤ制御器、５７０…ドライバ部、３２…ホール素子。
【図１】
2018063416.tif 000003
【図２】
2018063416.tif 000004
【図３】
2018063416.tif 000005
【図４】
2018063416.tif 000006
【図５】
2018063416.tif 000007
【図６】
2018063416.tif 000008
【図７】
2018063416.tif 000009
【図８】
2018063416.tif 000010
【図９】
2018063416.tif 000011
【図１０】
2018063416.tif 000012
【図１１】
2018063416.tif 000013
【図１２】
2018063416.tif 000014
【図１３】
2018063416.tif 000015
【図１４】
2018063416.tif 000016
【図１５】
2018063416.tif 000017
【図１６】
2018063416.tif 000018
【図１７】
2018063416.tif 000019
【図１８】
2018063416.tif 000020
【図１９】
2018063416.tif 000021