リニア振動モータの駆動制御回路
【課題】リニア振動モータの固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、その周期幅変更による影響を最小限に抑える。
【解決手段】駆動信号生成部10は、コイルL1に正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する。駆動部20は、駆動信号生成部10により生成された駆動信号に応じた駆動電流を生成し、コイルL1に供給する。誘起電圧検出部30は、非通電期間において、コイルL1に発生する誘起電圧を検出する。ゼロクロス検出部40は、誘起電圧検出部30により検出された誘起電圧のゼロクロスを検出する。駆動信号生成部10は、ゼロクロスの検出位置からリニア振動モータ200の固有振動数を推定し、駆動信号の周波数を、当該固有振動数に近づける。その際、駆動信号の周期幅が変更されても、駆動信号の通電期間と非通電期間との比が維持されるよう、駆動信号を調整する。
【解決手段】駆動信号生成部10は、コイルL1に正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する。駆動部20は、駆動信号生成部10により生成された駆動信号に応じた駆動電流を生成し、コイルL1に供給する。誘起電圧検出部30は、非通電期間において、コイルL1に発生する誘起電圧を検出する。ゼロクロス検出部40は、誘起電圧検出部30により検出された誘起電圧のゼロクロスを検出する。駆動信号生成部10は、ゼロクロスの検出位置からリニア振動モータ200の固有振動数を推定し、駆動信号の周波数を、当該固有振動数に近づける。その際、駆動信号の周期幅が変更されても、駆動信号の通電期間と非通電期間との比が維持されるよう、駆動信号を調整する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、振動子が固定子に対して直線状に往復振動するリニア振動モータを駆動制御するための駆動制御回路に関する。
【背景技術】
【0002】
従来、リニア振動モータは、電気カミソリなど特定の用途で使用されてきたが、近年、その用途が拡大している。たとえば、タッチパネルを押下した際の操作感覚をユーザにフィードバックさせるための振動を作り出す素子に採用されている。このようなハプティクス用途の拡大に伴い、今後、リニア振動モータの出荷数が伸びていくと予想される。
【0003】
リニア振動モータは、その固有振動数(以下適宜、共振周波数ともいう)にできるだけ近い周波数で駆動されることが好ましく、その共振周波数と駆動周波数とが一致するときに最も強い振動が発生する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−16892号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
リニア振動モータの固有振動数は、振動子の質量およびバネ定数により決定されるため、製品間でその固有振動数にばらつきがある。したがって、リニア振動モータの駆動回路に固定の駆動周波数を一律に設定する従来の手法では、製品の中に、モータの固有振動数と駆動周波数に大きなずれを持つものも発生し、歩留を低下させる要因となっていた。また、当初はモータの固有振動数と駆動周波数とが一致していても、経時変化により両者がずれてしまい、振動が弱くなってしまうことがあった。
【0006】
これに対し、本発明者は電磁石のコイルに発生する誘起電圧のゼロクロスの検出位置から、リニア振動モータの固有振動数を推定し、当該固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する手法を見出した。
【0007】
本発明はこうした状況に鑑みなされたものであり、その目的は、リニア振動モータの固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、その周期幅変更による影響を最小限に抑える技術を提供することにある。
【課題を解決するための手段】
【0008】
本発明のある態様のリニア振動モータの駆動制御回路は、固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、コイルに供給する駆動部と、非通電期間において、コイルに発生する誘起電圧を検出する誘起電圧検出部と、誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備える。駆動信号生成部は、ゼロクロスの検出位置からリニア振動モータの固有振動数を推定し、駆動信号の周波数を、当該固有振動数に近づけ、駆動信号生成部は、駆動信号の周波数の変更によりその周期幅が変更されても、駆動信号の通電期間と非通電期間との比が維持されるよう、駆動信号を調整する。
【0009】
本発明の別の態様もまた、リニア振動モータの駆動制御回路である。このリニア振動モータの駆動制御回路は、固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、コイルに供給する駆動部と、非通電期間において、コイルに発生する誘起電圧を検出する誘起電圧検出部と、誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備える。駆動信号生成部は、ゼロクロスの検出位置からリニア振動モータの固有振動数を推定し、駆動信号の周波数を、当該固有振動数に近づけ、駆動信号生成部は、駆動信号の周波数の変更により駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、駆動信号を調整する。
【0010】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、リニア振動モータの固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、その周期幅変更による影響を最小限に抑えることができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施の形態に係る、リニア振動モータの駆動制御回路の構成を示す図である。
【図2】駆動部、誘起電圧検出部およびコンパレータの構成例を示す図である。
【図3】実施の形態に係る駆動制御回路の動作例を示すタイミングチャートである。
【図4】エッジ信号、第1クロック信号、第2クロック信号および第3クロック信号の一例を示すタイミングチャートである。
【図5】デコーダの構成例を示す図である。
【図6】駆動信号の一周期の波形を示す図である。
【図7】駆動信号の通電期間幅の制御を説明するための図である。
【図8】駆動信号の位相制御を説明するための図である。
【図9】立ち上がり制御機能が追加されたデコーダの構成例を示す図である。
【図10】第1の立ち上がり制御を説明するための図である。図10(a)は、第1の立ち上がり制御が実行されない場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図であり、図10(b)は、第1の立ち上がり制御が実行された場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図である。
【図11】第2の立ち上がり制御を説明するための図である。図11(a)は、第2の立ち上がり制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図11(b)は、第2の立ち上がり制御が実行された場合の、コイル駆動電圧の推移を示す図である。
【図12】停止制御機能が追加されたデコーダの構成例を示す図である。
【図13】上記停止制御の基本概念を説明するための図である。図13(a)は、停止制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図13(b)は、停止制御が実行された場合の、コイル駆動電圧の推移を示す図であり、図13(c)は、停止制御がPWM信号により実行された場合の、コイル駆動電圧の推移を示す図である。
【図14】上記停止制御において逆位相の駆動信号の周期回数が固定の例を説明するための図である。図14(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図であり、図14(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図である。
【図15】上記停止制御において逆位相の駆動信号の周期回数が可変の例を説明するための図である。図15(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図であり、図15(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図である。
【図16】検出窓設定機能を持つゼロクロス検出部の構成を示す図である。
【図17】検出窓信号1、検出窓信号2および検出窓開始信号を説明するための図である。
【図18】出力制御部の構成例を示す図である。
【図19】検出窓信号1を使用するゼロクロス検出部(検出窓開始信号未使用)の動作を説明するための図である。図19(a)は、誘起電圧のゼロクロスが検出窓内に発生した場合の、コイルの両端電圧およびエッジ信号の推移を示し、図19(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示し、図19(c)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示す図である。
【図20】検出窓信号2および検出窓開始信号を使用するゼロクロス検出部の動作を説明するための図である。図20(a)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示し、図20(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示す図である。
【発明を実施するための形態】
【0013】
(基本構成)
図1は、本発明の実施の形態に係る、リニア振動モータ200の駆動制御回路100の構成を示す図である。まず、リニア振動モータ200は、固定子210と振動子220とを有し、両者の少なくとも一方は電磁石で構成される。本実施の形態では、固定子210が電磁石で構成される。固定子210は、磁性材料の芯211にコイルL1が巻き付けられて形成され、コイルL1に通電されると磁石として作用する。振動子220は、永久磁石221を含み、永久磁石221の両端(S極側とN極側)は、それぞれバネ222a、222bを介してフレーム223に固定される。固定子210と振動子220とは、所定の隙間を空けて並べて配置される。なお、図1の例と反対に、振動子220が電磁石で構成され、固定子210が永久磁石で構成されてもよい。
【0014】
駆動制御回路100は、上記コイルL1に駆動電流を供給して、振動子220を固定子210に対して直線状に往復振動させる。駆動制御回路100は、駆動信号生成部10、駆動部20、誘起電圧検出部30およびゼロクロス検出部40を備える。
【0015】
駆動信号生成部10は、コイルL1に正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する。駆動部20は、駆動信号生成部10により生成された駆動信号に応じた駆動電流を生成し、コイルL1に供給する。誘起電圧検出部30は、コイルL1の両端に接続され、コイルL1の両端電位差を検出する。主に、非通電期間において、コイルL1に発生する誘起電圧を検出する。ゼロクロス検出部40は、誘起電圧検出部30により検出された誘起電圧のゼロクロスを検出する。
【0016】
駆動信号生成部10は、ゼロクロス検出部40により検出された誘起電圧のゼロクロスの検出位置から、リニア振動モータ200の固有振動数を推定し、上記駆動信号の周波数を、当該固有振動数にできる限り近づける。すなわち、上記駆動信号の周波数が当該固有振動数に一致するよう、上記駆動信号の周波数を適応的に変化させる。
【0017】
より具体的には、駆動信号生成部10は、上記駆動信号の一周期の終了位置と、その終了位置に対応すべきゼロクロスの検出位置との差分を算出し、その差分を現在の駆動信号の周期幅に加算して、上記駆動信号の周期幅を適応的に制御する。上記駆動信号の一周期が通常の位相(ゼロ→正電圧→ゼロ→負電圧→ゼロ)で形成される場合、上記終了位置に対応すべきゼロクロスの検出位置は、上記誘起電圧の負電圧から正電圧にゼロクロスする位置となる。反対に、上記駆動信号の一周期が逆位相(ゼロ→負電圧→ゼロ→正電圧→ゼロ)で形成される場合、上記終了位置に対応すべきゼロクロスの検出位置は、上記誘起電圧の正電圧から負電圧にゼロクロスする位置となる。
【0018】
以下、駆動制御回路100の構成についてより具体的に説明する。まず、駆動部20、誘起電圧検出部30、ゼロクロス検出部40の構成について説明する。ゼロクロス検出部40は、コンパレータ41およびエッジ検出部42を含む。コンパレータ41は、誘起電圧検出部30により検出された誘起電圧と、ゼロクロスを検出するための基準電圧とを比較する。コンパレータ41は、当該誘起電圧が当該基準電圧をクロスするタイミングで、出力を反転させる。たとえば、ローレベル信号からハイレベル信号に反転させる。エッジ検出部42は、コンパレータ41の出力が反転した位置をエッジとして検出する。
【0019】
図2は、駆動部20、誘起電圧検出部30およびコンパレータ41の構成例を示す図である。図2では、駆動部20をHブリッジ回路で、および誘起電圧検出部30を差動増幅回路で構成する例を示している。
【0020】
当該Hブリッジ回路は、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3および第4トランジスタM4を含む。なお、図2では説明の便宜上、リニア振動モータ200のコイルL1も駆動部20の枠内に描いている。第1トランジスタM1と第3トランジスタM3との第1直列回路、および第2トランジスタM2と第4トランジスタM4との第2直列回路が、それぞれ電源電位Vddとグラウンド電位間に接続される。第1トランジスタM1と第3トランジスタM3との接続点(以下、A点という)と、第2トランジスタM2と第4トランジスタM4との接続点(以下、B点という)との間に、コイルL1が接続される。
【0021】
図2では、第1トランジスタM1および第2トランジスタM2はPチャンネルMOSFETで構成され、それぞれのソース−ドレイン間にボディダイオードとして、第1ダイオードD1および第2ダイオードD2が接続されている。第3トランジスタM3および第4トランジスタM4はNチャンネルMOSFETで構成され、それぞれのソース−ドレイン間にボディダイオードとして、第3ダイオードD3および第4ダイオードD4が接続されている。
【0022】
第1トランジスタM1、第2トランジスタM2、第3トランジスタM3および第4トランジスタM4のゲートには、駆動信号生成部10(より厳密には、後述するデコーダ14)から上記駆動信号が入力される。当該駆動信号により、第1トランジスタM1と第4トランジスタM4がオン、および第2トランジスタM2と第3トランジスタM3がオフに制御されると、コイルL1に正電流が流れ、第1トランジスタM1と第4トランジスタM4がオフ、および第2トランジスタM2と第3トランジスタM3がオンに制御されると、コイルL1に負電流が流れる。
【0023】
上記差動増幅回路は、オペアンプOP1、第1抵抗R1、第2抵抗R2、第3抵抗R3および第4抵抗R4を含む。オペアンプOP1の反転入力端子は第1抵抗R1を介してB点と接続され、非反転入力端子は第2抵抗R2を介してA点と接続される。オペアンプOP1の、反転入力端子と出力端子とは第3抵抗R3を介して接続される。オペアンプOP1の非反転入力端子には、第4抵抗R4を介して基準電圧Vrefがオフセット電圧として印加される。
【0024】
第1抵抗R1と第2抵抗R2の抵抗値を同じ値に設定し、第3抵抗R3と第4抵抗R4の抵抗値を同じ値に設定する。この条件では、上記差動増幅回路の増幅率はR3/R1となる。たとえば、第1抵抗R1と第2抵抗R2の抵抗値を10kΩ、および第3抵抗R3と第4抵抗R4の抵抗値を20kΩに設定して、コイルL1の両端電圧(A−B間電圧)を2倍に増幅する。
【0025】
コンパレータ41(オープンループのオペアンプで構成される)の反転入力端子には基準電圧Vrefが印加される。コンパレータ41の非反転入力端子はオペアンプOP1の出力端子と接続され、当該非反転入力端子にはオペアンプOP1の出力電圧が印加される。上記差動増幅回路に基準電圧Vrefがオフセット電圧(たとえば、1/2Vdd)として印加される場合、オペアンプOP1とコンパレータ41とのレンジを合わせるために、コンパレータ41の参照電圧として、基準電圧Vrefが使用される。なお、上記差動増幅回路にオフセット電圧が印加されない場合、コンパレータ41の参照電圧として、グラウンド電圧が使用される。
【0026】
このように、コイルL1の両端電圧(A−B間電圧)を上記差動増幅回路により増幅してからコンパレータ41に入力することにより、コイルL1に発生する誘起電圧のゼロクロスの検出精度を高めることができる。
【0027】
図3は、実施の形態に係る駆動制御回路100の動作例を示すタイミングチャートである。この動作例は、単相全波にてリニア振動モータ200を駆動する例である。その際、非通電期間を設定する。非通電期間は、正電流通電期間および負電流通電期間のそれぞれの前後に設定される。すなわち、全周期のうち、第1半周期は非通電期間、正電流通電期間および非通電期間で構成され、第2半周期は非通電期間、負電流通電期間および非通電期間で構成される。以下の例では、半周期の180°のうち、非通電期間に40°、正(負)電流通電期間に100°および非通電期間に40°を割り当てる。したがって、一周期のうち、5/9が通電期間に割り当てられ、4/9が非通電期間に割り当てられる。以下、本明細書では、この比率にしたがった駆動方式を100度通電と呼ぶ。
【0028】
図3にて、上記Hブリッジ回路のオン−1状態(M1、M4がオン、M2、M3がオフ)ではコイルL1に正電流が流れる。上記Hブリッジ回路のオフ状態(M1〜M4がオフ)ではコイルL1に駆動電流は流れない。上記Hブリッジ回路のオン−2状態(M1、M4がオフ、M2、M3がオン)ではコイルL1に負電流が流れる。
【0029】
コイルL1に正電流が流れている状態では固定子210がN極に励磁され、その磁力により、振動子220は永久磁石221のS極側への力を受ける。その力により、振動子220はバネ222aに抗して永久磁石221のS極側へ移動し、バネ222aの収縮限界まで移動する。コイルL1に駆動電流が流れていない状態では固定子210が励磁されず、磁力は発生しない。振動子220は、バネ222aの復元力により中心位置に向けて移動する。コイルL1に負電流が流れている状態では固定子210がS極に励磁され、その磁力により、振動子220は永久磁石221のN極側への力を受ける。その力により、振動子220はバネ222bに抗して永久磁石221のN極側へ移動し、バネ222bの収縮限界まで移動する。
【0030】
このように、駆動信号生成部10は、上記Hブリッジ回路をオフ状態→オン−1状態→オフ状態→オン−2状態→オフ状態というサイクルで制御することにより、リニア振動モータ200を往復運動させることができる。
【0031】
上記Hブリッジ回路がオン−1状態からオフ状態に遷移し、第1トランジスタM1〜第4トランジスタM4がすべてオフに切り替えられると、上記ボディーダイオードを通じて回生電流が流れる。上記Hブリッジ回路がオン−2状態からオフ状態に遷移する際も同様である。この回生電流を活用することにより、エネルギー効率を高め、駆動制御回路100の消費電力を低減することができる。
【0032】
上記回生電流は、コイルL1にそれまで流れていた電流と逆方向に流れる。上記回生電流が流れ終わると、コイルL1に、振動子220の移動により誘起される誘起電流が流れる。振動子220が停止している状態ではこの誘起電流は流れない。振動子220が停止している状態は、振動子220の振動レンジの両端に振動子220が到達した瞬間に発生する。
【0033】
誘起電圧検出部30は、非通電期間においてコイルL1に発生する逆起電圧を監視することにより、振動子220の位置を推定することができる。当該逆起電圧がゼロの状態は、振動子220が停止している(すなわち、振動レンジのS極側最大到達地点またはN極側最大到達地点に位置する)ことを示している。
【0034】
したがって、ゼロクロス検出部40は、コイルL1の両端電圧(A−B間電圧)がゼロクロス(駆動電流および回生電流によるゼロクロスを除く)するタイミングを検出し、検出したゼロクロス間の期間を測定することにより、リニア振動モータ200の固有振動数を求めることができる。なお、連続するゼロクロス間の期間が、リニア振動モータ200の半振動周期幅を示し、一つ飛ばしのゼロクロス間の期間がその全振動周期幅を示す。
【0035】
本実施の形態では、ゼロクロス検出部40は非通電期間にてコイルL1の両端電圧(A−B間電圧)が負から正にゼロクロスするタイミングのみを検出する。この場合、図2に示したコンパレータ41は、オペアンプOP1の出力電圧が基準電圧Vrefより低い間、ローレベル信号を出力し、オペアンプOP1の出力電圧が基準電圧Vrefより高くなると、ハイレベル信号を出力するよう、設定される。
【0036】
駆動信号生成部10は、測定されたリニア振動モータ200の固有振動数に対応する周期幅を用いて、つぎの駆動信号の周期幅を調整する。この測定と調整が繰り返されることにより、駆動制御回路100は、リニア振動モータ200をその共振周波数またはその近傍の周波数で継続的に駆動することができる。
【0037】
図1に戻り、駆動信号生成部10をより具体的に説明する。駆動信号生成部10は、第1ラッチ回路11、メインカウンタ12、ループカウンタ13、デコーダ14、第2ラッチ回路15、差分算出回路16、第3ラッチ回路17、加算回路18および第4ラッチ回路19を含む。
【0038】
第1ラッチ回路11は、上記駆動信号の一周期の終了位置に対応すべきカウント終了値をラッチし、第3クロック信号CLK3により指示されたタイミングでメインカウンタ12およびデコーダ14に出力する。なお、差分算出回路16にも出力することができる。第1ラッチ回路11には、リニア振動モータ200の駆動開始時には、図示しないレジスタなどから上記カウント終了値の初期値が設定される。駆動開始後は、第4ラッチ回路19から入力される値が上記カウント終了値となる。
【0039】
メインカウンタ12は、第1ラッチ回路11から上記カウント終了値が設定され、カウント初期値から当該カウント終了値までを繰り返しカウントする。カウント初期値には、通常、0が設定される。たとえば、当該カウント終了値として199が設定された場合、メインカウンタ12は0〜199までを繰り返しカウントアップする200進カウンタとなる。メインカウンタ12のカウント値は、ループカウンタ13、デコーダ14および第2ラッチ回路15に出力される。
【0040】
ループカウンタ13は、メインカウンタ12の一カウントループが終了するたびにインクリメントし、メインカウンタ12のカウントループ回数を保持する。ここで、一カウントループとは、メインカウンタ12の上記カウント初期値から上記カウント終了値までカウントすることを指す。一カウントループは一駆動周期に対応するため、カウントループ回数は駆動周期回数に対応する。
【0041】
デコーダ14は、メインカウンタ12から供給されるカウント値を用いて、上記カウント終了値に応じた周期幅の駆動信号を生成する。デコーダ14の詳細な構成は後述する。第2ラッチ回路15は、メインカウンタ12から供給されるカウント値を順次ラッチし、ゼロクロス検出部40によりゼロクロスが検出された位置でラッチしたカウント値を差分算出回路16に出力する。当該ゼロクロスが検出された位置は、エッジ検出部42から入力されるエッジ信号により通知される。当該ゼロクロスが検出された位置が、理想的に常に同じタイミングで発生すれば、第2ラッチ回路15の出力は常に同じカウント値となる。
【0042】
差分算出回路16は、第2ラッチ回路15から入力されるカウント値と、現在のカウント終了値との差分を算出する。図1では現在のカウント終了値は第1ラッチ回路11から入力される例を描いている。なお、差分算出回路16が現在のカウント終了値を保持する構成であってもよいし、第4ラッチ回路19から供給される構成であってもよい。
【0043】
ゼロクロスが検出された位置のカウント値(=第2ラッチ回路15から入力されるカウント値)が、現在のカウント終了値より小さい場合、差分算出回路16は、前者から後者を減算する。たとえば、ゼロクロスが検出された位置のカウント値が197で、現在のカウント終了値が199の場合、差分算出回路16は、−2を出力する。
【0044】
ゼロクロスが検出された位置のカウント値が、現在のカウント終了値より大きい場合、第2ラッチ回路15から入力されるカウント値は、現在のカウント終了値に対する増分値となる。この場合、差分算出回路16は、第2ラッチ回路15から入力されるカウント値をそのまま出力する。たとえば、ゼロクロスが検出された位置の本来のカウント値が201で、現在のカウント終了値が199の場合、第2ラッチ回路15から入力されるカウント値は2となり、差分算出回路16は2をそのまま出力する。当該カウント値は199でリセットされるため、第2ラッチ回路15から入力されるカウント値は、201ではなく、2となる。
【0045】
第3ラッチ回路17は、差分算出回路16から入力される差分値をラッチし、第1クロック信号CLK1により指示されたタイミングで、その差分値を加算回路18に出力する。加算回路18は、第3ラッチ回路17から入力される差分値を、第4ラッチ回路19から入力される現在のカウント終了値に加算する。第4ラッチ回路19は、加算回路18から入力される値をラッチし、第2クロック信号CLK2により指示されたタイミングで第1ラッチ回路11に出力する。第4ラッチ回路19にも、リニア振動モータ200の駆動開始時には、図示しないレジスタなどから上記カウント終了値の初期値が設定される。
【0046】
加算回路18により生成された値は新たなカウント終了値として、第4ラッチ回路19および第1ラッチ回路11を介してメインカウンタ12およびデコーダ14に設定される。したがって、メインカウンタ12およびデコーダ14には、直前のゼロクロスの検出位置を反映したカウント終了値が常に設定される。
【0047】
図4は、エッジ信号、第1クロック信号CLK1、第2クロック信号CLK2および第3クロック信号CLK3の一例を示すタイミングチャートである。エッジ信号はエッジ検出部42から第2ラッチ回路15に設定される。第1クロック信号CLK1は、エッジ信号を半クロック、遅延させた信号である。この半クロックの遅延は、差分算出回路16による演算処理を考慮したものである。第2クロック信号CLK2は、第1クロック信号CLK1を半クロック、遅延させた信号である。この半クロックの遅延は、加算回路18による演算処理を考慮したものである。
【0048】
第3クロック信号CLK3は、第2クロック信号CK2を数クロック、遅延させた信号である。この数クロックの遅延は、現在の駆動周期のカウント終了前に、現在の駆動周期のカウント終了値が変更されることを抑制するための遅延である。たとえば、第1ラッチ回路11が設置されない場合であって、現在の駆動周期において、その終了位置より前にゼロクロスが検出された場合、そのゼロクロス位置を反映した新たなカウント終了値が、次回の駆動周期からではなく、現在の駆動周期から適用されてしまう可能性がある。その場合、更新前のカウント終了値を基準に通電期間が決定されるため、通電期間と非通電期間との比率が維持できなくなってしまう。本実施の形態では、100度通電が維持できなくなってしまう。
【0049】
第4ラッチ回路19とメインカウンタ12との間に第1ラッチ回路11を設置することにより、メインカウンタ12に設定されている現在のカウント終了値を、ゼロクロス位置を反映した新たなカウント終了値に更新するタイミングを遅らせることができる。
【0050】
(デコーダ構成)
図5は、デコーダ14の構成例を示す図である。デコーダ14は、上記カウント終了値に、上記駆動信号の一周期に対する通電期間の比率を一定にするための係数を乗算して得られる値に応じて、上記駆動信号の通電期間に対応するカウント幅を決定する。上述したように、上記駆動信号の一周期には、正電流通電期間と負電流通電期間とが含まれる。したがって、上記100度通電の場合、上記駆動信号の一周期に対する各通電期間の比率は、100°/360°(≒0.28)となる。また、上記駆動信号の一周期に対する各通電期間の半期間の比率は、50°/360°(≒0.14)となる。
【0051】
また、デコーダ14は、上記カウント終了値に、上記駆動信号の通電期間の中心位置を決定するための係数を乗算して得られる値に応じて、上記駆動信号の通電期間の開始位置および終了位置に対応するカウント値を決定する。上述したように、上記駆動信号の一周期は、前後に非通電期間が設定された正電流通電期間および前後に非通電期間が設定された負電流通電期間により形成される。ここで、正電流通電期間の長さおよび負電流通電期間の長さは等しく設定され、非通電期間の長さも、すべて等しく設定される。
【0052】
したがって、上記駆動信号の正電流通電期間の中心位置を決定するための係数は、0.25に設定され、上記駆動信号の負電流通電期間の中心位置を決定するための係数は、0.75に設定される。なお、上記駆動信号の位相が逆の場合、負電流通電期間の中心位置を決定するための係数は、0.25に設定され、正電流通電期間の中心位置を決定するための係数は、0.75に設定される。
【0053】
このように、デコーダ14は、各通電期間に対応するカウント幅、および各通電期間の中心位置に対応するカウント値を算出することができる。そして、当該中心位置に対応するカウント値から、上記カウント幅の半分の値を減算することにより、各通電期間の開始位置に対応するカウント値を算出することができる。また、当該中心位置に対応するカウント値に、上記カウント幅の半分の値を加算することにより、各通電期間の終了位置に対応するカウント値を算出することができる。
【0054】
以下、より具体的に説明する。デコーダ14は、駆動幅算出部51、正駆動中心値算出部52、負駆動中心値算出部53、正側減算部54、正側加算部55、負側減算部56、負側加算部57、正駆動信号生成部58および負駆動信号生成部59を含む。
【0055】
駆動幅算出部51は、上記駆動信号の一周期に対する各通電期間(以下適宜、駆動期間ともいう)の半期間の比率を係数として保持する。上記100度通電の場合、0.14を保持する。駆動幅算出部51は、第1ラッチ回路11からカウント終了値が供給される。駆動幅算出部51は、そのカウント終了値に当該係数を乗算する。これにより、各駆動期間の半期間に対応するカウント幅を算出することができる。
【0056】
正駆動中心値算出部52は、上記駆動信号の正電流通電期間(以下適宜、正駆動期間ともいう)の中心位置を決定するための係数を保持する。本実施の形態では、0.25を保持する。正駆動中心値算出部52は、第1ラッチ回路11からカウント終了値が供給される。正駆動中心値算出部52は、そのカウント終了値に当該係数を乗算する。これにより、各正駆動期間の中心位置に対応するカウント値を算出することができる。
【0057】
負駆動中心値算出部53は、上記駆動信号の負電流通電期間(以下適宜、負駆動期間ともいう)の中心位置を決定するための係数を保持する。本実施の形態では、0.75を保持する。負駆動中心値算出部53は、第1ラッチ回路11からカウント終了値が供給される。負駆動中心値算出部53は、そのカウント終了値に当該係数を乗算する。これにより、各負駆動期間の中心位置に対応するカウント値を算出することができる。
【0058】
正側減算部54は、正駆動中心値算出部52から供給される正駆動期間の中心位置に対応するカウント値から、駆動幅算出部51から供給されるカウント幅を減算することにより、正駆動期間の開始位置に対応するカウント値を算出する。正側加算部55は、正駆動中心値算出部52から供給される正駆動期間の中心位置に対応するカウント値に、駆動幅算出部51から供給されるカウント幅を加算することにより、正駆動期間の終了位置に対応するカウント値を算出する。
【0059】
負側減算部56は、負駆動中心値算出部53から供給される負駆動期間の中心位置に対応するカウント値から、駆動幅算出部51から供給されるカウント幅を減算することにより、負駆動期間の開始位置に対応するカウント値を算出する。負側加算部57は、負駆動中心値算出部53から供給される負駆動期間の中心位置に対応するカウント値に、駆動幅算出部51から供給されるカウント幅を加算することにより、負駆動期間の終了位置に対応するカウント値を算出する。
【0060】
正駆動信号生成部58は、メインカウンタ12から同期クロックとしてのカウント値、正側減算部54から正駆動期間の開始位置に対応するカウント値、および正側加算部55から正駆動期間の開始位置に対応するカウント値が供給される。正駆動信号生成部58は、同期クロックとしてのカウント値にしたがい、正駆動期間の開始位置に対応するカウント値から正駆動期間の終了位置に対応するカウント値まで有意な信号(たとえば、ハイレベル信号)を正駆動信号として出力する。それ以外の期間は、非有意な信号(たとえば、ローレベル信号)を出力する。
【0061】
なお、正駆動信号生成部58は、当該正駆動信号を、設定されたデューティ比のPWM信号で生成することができる。正駆動信号生成部58により生成された正駆動信号は、駆動部20、より具体的には第1トランジスタM1および第4トランジスタM4のゲートに入力される。なお、第1トランジスタM1の前段には、図示しないインバータが設けられ、当該正駆動信号は位相が反転されて、第1トランジスタM1のゲートに入力される。
【0062】
負駆動信号生成部59は、メインカウンタ12から同期クロックとしてのカウント値、負側減算部56から負駆動期間の開始位置に対応するカウント値、および負側加算部57から負駆動期間の開始位置に対応するカウント値が供給される。負駆動信号生成部59は、同期クロックとしてのカウント値にしたがい、負駆動期間の開始位置に対応するカウント値から負駆動期間の終了位置に対応するカウント値まで有意な信号(たとえば、ハイレベル信号)を負駆動信号として出力する。それ以外の期間は、非有意な信号(たとえば、ローレベル信号)を出力する。
【0063】
なお、負駆動信号生成部59は、当該負駆動信号を、設定されたデューティ比のPWM信号で生成することができる。負駆動信号生成部59により生成された負駆動信号は、駆動部20、より具体的には第2トランジスタM2および第3トランジスタM3のゲートに入力される。なお、第2トランジスタM2の前段には、図示しないインバータが設けられ、当該負駆動信号は位相が反転されて、第2トランジスタM2のゲートに入力される。
【0064】
図6は、駆動信号の一周期の波形を示す図である。図6にて網点領域が、正駆動期間(先)および負駆動期間(後)を示している。正駆動開始値aに対応するカウント値は正側減算部54により生成され、正駆動中心値bに対応するカウント値は正駆動中心値算出部52により生成され、正駆動終了値cに対応するカウント値は正側加算部55により生成される。同様に、負駆動開始値dに対応するカウント値は負側減算部56により生成され、負駆動中心値eに対応するカウント値は負駆動中心値算出部53により生成され、負駆動終了値fに対応するカウント値は負側加算部57により生成される。
【0065】
図5に示すようにデコーダ14を構成することにより、駆動信号生成部10は、上記駆動信号の周波数の変更によりその周期幅が変更されても、上記駆動信号の通電期間と非通電期間との比が維持されるよう、上記駆動信号を調整することができる。また、駆動信号生成部10は、上記駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、上記駆動信号を調整することができる。
【0066】
図7は、駆動信号の通電期間幅の制御を説明するための図である。図7(a)は、駆動周期がデフォルト状態における、コイル駆動電圧の推移を示す図であり、図7(b)は、駆動周期がデフォルト状態から長く調整された後の、コイル駆動電圧(通電期間幅の調整なし)の推移を示す図であり、図7(c)は、駆動周期がデフォルト状態から長く調整された後の、コイル駆動電圧(通電期間幅の調整あり)の推移を示す図である。
【0067】
図7(a)では、上記100度通電に設定されている。すなわち、1駆動周期における通電期間と非通電期間との比が5:4に設定されている。図7(b)では、駆動周期がデフォルト状態から長く調整された後も、デフォルト状態における通電期間幅が維持される例を示している。この場合、リニア振動モータ200に対する駆動力が低下し、リニア振動モータ200の振動が弱くなる可能性がある。
【0068】
図7(c)では、駆動周期がデフォルト状態から長く調整された後も、1駆動周期における通電期間と非通電期間との比が維持されるよう制御される。本実施の形態では、上記100度通電が維持されるよう制御される。この制御は、デコーダ14内の駆動幅算出部51の作用により実現される。
【0069】
ここでは、駆動周期がデフォルト状態から長く調整される例を説明したが、デフォルト状態から短く調整される例も同様である。駆動周期がデフォルト状態から短く調整された後も、デフォルト状態における通電期間幅が維持されると、リニア振動モータ200に対する駆動力が上昇し、リニア振動モータ200の振動が弱くなる可能性がある。この点、本実施の形態では、駆動周期がデフォルト状態から短く調整された後も、100度通電が維持されるよう制御される。
【0070】
図8は、駆動信号の位相制御を説明するための図である。図8は、リニア振動モータ200の共振周波数に調整された後の、コイルL1の両端電圧の推移を示している。なお、説明を単純化するために回生電圧は省略して描いている。一段目の波形は、駆動信号の位相が最適な状態で、リニア振動モータ200が駆動されている状態を示している。
【0071】
二段目の波形は、その二周期目から、駆動信号の位相が位相遅れ状態で、リニア振動モータ200が駆動されている状態を示している。この状態は、駆動周期がそれまでより短く調整された場合であって、その調整後も、各通電期間の開始位置および終了位置が、その調整前の位置を維持している場合に発生する。
【0072】
三段目の波形は、その二周期目から、駆動信号の位相が位相進み状態で、リニア振動モータ200が駆動されている状態を示している。この状態は、駆動周期がそれまでより長く調整された場合であって、その調整後も、各通電期間の開始位置および終了位置が、その調整前の位置を維持している場合に発生する。
【0073】
すなわち、各通電期間の開始位置および終了位置が固定の場合にて、駆動周期幅が変更されると、駆動信号の位相に遅れや進みが発生する。これに対し、本実施の形態では駆動周期が変更されると、各通電期間の開始位置および終了位置が適応的に調整されるため、駆動信号の位相を最適に保つことができる。この開始位置および終了位置の調整は、デコーダ14内の主に、正駆動中心値算出部52および負駆動中心値算出部53の作用により実現される。
【0074】
以上説明したように、本実施の形態に係る駆動制御回路100によれば、測定されたリニア振動モータ200の固有振動数に対応する周期幅を用いて、つぎの駆動信号の周期幅を調整することにより、リニア振動モータ200がどのような状態であっても、その固有振動数にできるだけ近い周波数で継続的に駆動することができる。
【0075】
したがって、リニア振動モータ200の製品間による固有振動数のばらつきを吸収することができ、モータを量産する場合の歩留の低減を防止することが可能となる。また、バネ222a、220bなどが経時変化しても、経時変化後の固有振動数に対応した駆動周波数で駆動されるため、振動が弱まることを抑制することができる。
【0076】
また、リニア振動モータ200の固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、その周期幅変更による影響を最小限に抑えることができる。具体的には、駆動信号の周期幅が変更されても、一周期における通電期間と非通電期間との比率を維持するよう通電期間幅を調整することにより、リニア振動モータ200に対する駆動力を維持することができる。したがって、駆動力の変動によって、リニア振動モータ200の動きが弱くなることを抑制することができる。
【0077】
また、駆動信号の周期幅が変更されても、一周期における通電期間の相対的位置関係が維持されるよう、各通電期間の開始位置および終了位置を最適な位置に調整することにより、駆動効率の低下を抑制することができる。すなわち、駆動信号の位相がずれると、振動子220の位置と、駆動力の供給位置とにずれが発生し、駆動効率が低下してしまう。この点、駆動信号の位相を最適な位置に維持することにより、同じ消費電力で、最大限の振動を得ることができる。
【0078】
(立ち上がり制御)
以下、本実施の形態に係る駆動制御回路100による、上述した駆動制御に追加することが可能な第1の立ち上がり制御について説明する。図6に示したように、上記駆動信号の一周期は、前後に非通電期間が設定された正電流通電期間および前後に非通電期間が設定された負電流通電期間により形成される。これにより、図3に示したように誘起電圧のゼロクロスを精度よく検出することができるとともに、図8に示したように駆動効率を高めることができる。
【0079】
したがって、上記駆動信号における最初の周期の正電流通電期間(逆位相の場合、負電流通電期間)の前にも、非通電期間が設定されるのが原則である。ただし、この非通電期間は、リニア振動モータ200の立ち上がり時間を遅くする方向に働く。そこで、これを改善するために、駆動信号生成部10は以下のような立ち上がり制御を実行することができる。
【0080】
すなわち、駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間の前に設定されるべき非通電期間幅を、リニア振動モータ200の定常動作時において各通電期間の前に設定されるべき非通電期間幅より短く設定する。たとえば、駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間の前に設定されるべき非通電期間幅をゼロに設定してもよい。
【0081】
定常動作時において各通電期間の前に設定されるべき非通電期間幅より、短い非通電期間幅を前に設定すべき通電期間は、最初の通電期間のみであってもよいし、最初の通電期間からn(nは自然数)番目までの通電期間であってもよい。後者の場合、最初の通電期間からn番目の通電期間に近づくにしたがって、それぞれの前に設定すべき非通電期間幅を長くしていってもよい。
【0082】
また、通電期間の前に、定常動作時において各通電期間の前に設定されるべき非通電期間幅より短い非通電期間幅が設定されている間、駆動信号生成部10は、上記駆動信号の周期幅の調整処理を停止してもよい。その場合、誘起電圧検出部30およびゼロクロス検出部40による上記誘起電圧のゼロクロス検出処理も停止してもよい。
【0083】
つぎに、本実施の形態に係る駆動制御回路100による、上述した駆動制御に追加することが可能な第2の立ち上がり制御について説明する。図5に示したように、駆動信号生成部10は、各通電期間の信号をPWM信号で生成することができる。これにより、リニア振動モータ200の性能に合わせて、駆動能力を調整することができる。
【0084】
第2の立ち上がり制御は、各通電期間の信号がPWM信号で生成されることを前提する。駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間に生成するPWM信号のデューティ比を、リニア振動モータ200の定常動作時において各通電期間に生成するPWM信号のデューティ比より高く設定する。たとえば、駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間に生成するPWM信号のデューティ比を1に設定してもよい。
【0085】
定常動作時において各通電期間に生成されるPWM信号のデューティ比より、高いデューティ比のPWM信号が生成される通電期間は、最初の通電期間のみであってもよいし、最初の通電期間からm(mは自然数)番目までの通電期間であってもよい。後者の場合、最初の通電期間からm番目の通電期間に近づくにしたがって、各通電期間に生成されるPWM信号のデューティ比を下げていってもよい。
【0086】
また、定常動作時において各通電期間に生成されるPWM信号のデューティ比より、高いデューティ比のPWM信号が生成される期間、駆動信号生成部10は、上記駆動信号の周期幅の調整処理を停止してもよい。その場合、誘起電圧検出部30およびゼロクロス検出部40による上記誘起電圧のゼロクロス検出処理も停止してもよい。
【0087】
第1の立ち上がり制御および第2の立ち上がり制御は、それぞれ単独で用いられてもよいし、併用されてもよい。以下、第1の立ち上がり制御および第2の立ち上がり制御の少なくとも一方が採用される場合の、デコーダ14の構成例を説明する。
【0088】
図9は、立ち上がり制御機能が追加されたデコーダ14の構成例を示す図である。図9に示すデコーダ14は、図5に示したデコーダ14に立上がり制御部60が追加された構成である。第1の立ち上がり制御を実行する場合、立上がり制御部60は、メインカウンタ12から正駆動信号生成部58および負駆動信号生成部59に入力されるカウント値を補正する。
【0089】
たとえば、通電期間の前に設定すべき非通電期間幅をゼロに設定する場合、立上がり制御部60は、定常動作時において各通電期間の前に設定されるべき非通電期間幅に対応するカウント幅を、メインカウンタ12から入力されるカウント値に加算する。これにより、正駆動信号生成部58および負駆動信号生成部59は、正電流通電期間および負電流通電期間のそれぞれの前に設定すべき非通電期間を省略することができる。
【0090】
なお、同様の処理は、通電期間の前に設定すべき非通電期間幅をゼロに設定する期間、メインカウンタ12のカウント初期値を、定常動作期間のカウント初期値に上記カウント幅を加算した値に設定することによっても実行することができる。本実施の形態では、メインカウンタ12のカウント初期値を、上記100度通電開始時のカウント値に設定する。この処理は、デコーダ14外の図示しない別の立ち上がり制御部により実行されてもよい。
【0091】
第2の立ち上がり制御を実行する場合、立上がり制御部60は、正駆動信号生成部58および負駆動信号生成部59に、上記駆動信号の少なくとも最初の通電期間に生成するPWM信号のデューティ比を設定する。その際、定常動作時において各通電期間に生成するPWM信号のデューティ比より高いデューティ比を設定する。
【0092】
図10は、第1の立ち上がり制御を説明するための図である。図10(a)は、第1の立ち上がり制御が実行されない場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図であり、図10(b)は、第1の立ち上がり制御が実行された場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図である。
【0093】
図10(a)、図10(b)では、駆動信号の二周期目でリニア振動モータ200の振動が所望のレベル(すなわち、定常動作時のレベル)に到達する例を描いている。図10(b)では、駆動信号生成部10は、上記駆動信号の最初の通電期間の前に設定すべき非通電期間幅をゼロに設定している。
【0094】
図10(a)内の期間t1は、第1の立ち上がり制御が実行されない場合の、駆動開始時から振動が所望のレベルに到達するまでの期間を示し、図10(b)内の期間t2は、第1の立ち上がり制御が実行された場合の、駆動開始時から振動が所望のレベルに到達するまでの期間を示す。期間t1と期間t2とを比較すると、期間t2のほうが短く、第1の立ち上がり制御が実行されることにより、駆動開始時から振動が所望のレベルに到達するまでの期間が短縮されることが分かる。
【0095】
図11は、第2の立ち上がり制御を説明するための図である。図11(a)は、第2の立ち上がり制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図11(b)は、第2の立ち上がり制御が実行された場合の、コイル駆動電圧の推移を示す図である。図11(a)では、駆動信号生成部10は、駆動開始後、最初の通電期間の信号から各通電期間の信号をPWM信号で生成している。図11(b)では、駆動信号生成部10は、駆動開始後、最初の通電期間の信号を非PWM信号で生成し、二周期目以降の通電期間の信号をPWM信号で生成している。
【0096】
以上説明したように第1の立ち上がり制御を採用すれば、駆動開始からコイルL1に通電されるまでの時間を短縮することができ、リニア振動モータ200の駆動開始時から所望の振動が得られるまでの立ち上がり時間を短縮することができる。また、第2の立ち上がり制御を採用すれば、立ち上がり時の駆動力を定常動作時の駆動力より高めることができ、当該立ち上がり時間を短縮することができる。
【0097】
(停止制御)
以下、本実施の形態に係る駆動制御回路100による、上述した駆動制御に追加することが可能な停止制御について説明する。駆動信号生成部10は、リニア振動モータ200の駆動終了後、その駆動時に生成していた駆動信号の位相に対して逆位相の駆動信号を生成する。駆動部20は、駆動信号生成部10により生成された逆位相の駆動信号に応じた逆位相の駆動電流をコイルL1に供給することにより、リニア振動モータ200の停止を早める。コイルL1に当該逆位相の駆動電流が供給されると、固定子210は振動子220の動きを止めるためのブレーキ作用を発揮する。本明細書では、リニア振動モータ200の駆動終了時とは、停止制御のための逆駆動期間を含まない正規の駆動終了時を意味することとする。
【0098】
駆動信号生成部10は、リニア振動モータ200の駆動終了後に生成する逆位相の駆動信号の、各通電期間の信号をPWM信号で生成してもよい。このPWM信号のデューティ比を調整することにより、ブレーキ力を柔軟に調整することができる。
【0099】
上述したように、駆動信号生成部10は、各通電期間の信号をPWM信号で生成することができる。各通電期間の信号がPWM信号で生成されることを前提とする場合、駆動信号生成部10は、以下の停止制御を採用することができる。すなわち、駆動信号生成部10は、リニア振動モータ200の駆動終了後における逆位相の駆動信号の通電期間に生成するPWM信号のデューティ比を、リニア振動モータ200の駆動時における駆動信号の各通電期間に生成するPWM信号のデューティ比より低く設定してもよい。
【0100】
また、駆動信号生成部10は、リニア振動モータ200の駆動終了後における逆位相の駆動信号の供給期間を、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて調整してもよい。たとえば、駆動信号生成部10は、上記駆動終了後における逆位相の駆動信号の供給期間を、上記駆動時における駆動信号の供給期間が短いほど、短く設定する。たとえば、上記逆位相の駆動信号の供給期間を、上記駆動時における駆動信号の供給期間に比例させる。なお、上記駆動時における駆動信号の供給期間が所定の基準期間を超えた領域では、上記逆位相の駆動信号の供給期間が固定であってもよい。上記駆動信号の供給期間は、駆動周期回数により特定されることが可能である。
【0101】
また、駆動信号生成部10は、リニア振動モータ200の駆動終了後における逆位相の駆動信号の通電期間に生成するPWM信号のデューティ比を、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて調整してもよい。たとえば、駆動信号生成部10は、当該PWM信号のデューティ比を、上記駆動時における駆動信号の供給期間が短いほど、低く設定する。たとえば、当該PWM信号のデューティ比を、上記駆動時における駆動信号の供給期間に比例させる。なお、上記駆動時における駆動信号の供給期間が所定の基準期間を超えた領域では、上記PWM信号のデューティ比が固定であってもよい。
【0102】
図12は、停止制御機能が追加されたデコーダ14の構成例を示す図である。図12に示すデコーダ14は、図5に示したデコーダ14に停止制御部61が追加された構成である。停止制御部61は、リニア振動モータ200の駆動が終了すると、その駆動時に生成していた駆動信号の位相に対して逆位相の駆動信号を生成するよう正駆動信号生成部58および負駆動信号生成部59に指示する。その際、当該逆位相の駆動信号の、通電期間の信号をPWM信号で生成するよう指示してもよい。
【0103】
また、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて、上記逆位相の駆動信号の供給期間を調整する場合、停止制御部61は、ループカウンタ13から、カウントループ回数(すなわち、駆動周期回数)の供給を受ける。停止制御部61は、この駆動周期回数を反映した、上記逆位相の駆動信号を生成するよう正駆動信号生成部58および負駆動信号生成部59に指示する。リニア振動モータ200の駆動時における駆動信号の供給期間に応じて、上記PWM信号のデューティ比を調整する場合も同様である。
【0104】
図13は、上記停止制御の基本概念を説明するための図である。図13(a)は、停止制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図13(b)は、停止制御が実行された場合の、コイル駆動電圧の推移を示す図であり、図13(c)は、停止制御がPWM信号により実行された場合の、コイル駆動電圧の推移を示す図である。
【0105】
図13(b)、図13(c)では、駆動終了後の逆位相の駆動信号の周期が一回の例を描いているが、複数回であってもよい。複数回の場合であって、当該駆動信号の通電期間の信号がPWM信号で生成される場合、当該逆位相の駆動信号の周期が進むにつれ、当該PWM信号のデューティ比を下げていってもよい。
【0106】
図14は、上記停止制御において逆位相の駆動信号の周期回数が固定の例を説明するための図である。図14(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図であり、図14(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図である。
【0107】
図14では、駆動終了後に生成される逆位相の駆動信号の周期回数が2に固定されている例を描いている。図14(a)は駆動時の駆動信号の周期回数が4の例を描いており、図14(b)は駆動時の駆動信号の周期回数が2の例を描いている。図14(a)では、逆位相の駆動信号を二周期分、コイルL1に供給することにより、リニア振動モータ200の駆動終了後、リニア振動モータ200の振動が早く収束していくことが分かる。
【0108】
一方、図14(b)では、逆位相の駆動信号を二周期分、コイルL1に供給することにより、リニア振動モータ200の駆動終了後、リニア振動モータ200の振動が早く収束するが、その後、逆位相の振動が発生している(楕円囲み参照)。これは、リニア振動モータ200の駆動時の振動に対して、過剰なブレーキ力を与えていることを意味する。
【0109】
図15は、上記停止制御において逆位相の駆動信号の周期回数が可変の例を説明するための図である。図15(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図であり、図15(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図である。
【0110】
図15(a)は図14(a)と同じ図である。図15(b)は駆動時の駆動信号の周期回数が2で、駆動終了後に生成される逆位相の駆動信号の周期回数が1の例を描いている。図15(b)では、逆位相の駆動信号を一周期分、コイルL1に供給することにより、リニア振動モータ200の駆動終了後、リニア振動モータ200の振動が早く収束していくことが分かる。図14(b)と比較し、図15(b)では、リニア振動モータ200に逆位相の振動が発生しないことが分かる。
【0111】
図14では、リニア振動モータ200の駆動終了前の、リニア振動モータ200の振動の強さが考慮されずに、固定のブレーキ力が供給されていた。したがって、そのブレーキ力が過剰であったり、過小であったりする場合が発生する。これに対し、図15では、リニア振動モータ200の振動の強さを反映したブレーキ力を供給することにより、最適な停止制御を実現することができる。
【0112】
以上説明したように上述した停止制御を採用すれば、リニア振動モータ200の駆動終了時における振動停止時間を短縮することができる。また、上記逆位相の駆動信号の、通電期間の信号をPWM信号で生成することにより、ブレーキ力を柔軟に設定することができる。また、上記逆位相の駆動信号の供給期間を、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて調整することにより、当該駆動時における駆動信号の供給期間の長短に関わらず、最適な停止制御を実現することができる。ハプティクス用途において、振動を急峻に変化させることによって、ユーザは接触による振動を体感しやすい。上述した停止制御を採用することによって、振動を急峻に変化させることができる。
【0113】
(検出窓設定)
つぎに、ゼロクロス検出部40が、上記誘起電圧以外の電圧のゼロクロスの検出を回避するための検出窓を設定する例について説明する。ゼロクロス検出部40は、当該検出窓内で検出されたゼロクロスを有効とし、当該検出窓外で検出されたゼロクロスを無効とする。ここで、上記誘起電圧以外の電圧のゼロクロスとは、主に、駆動信号生成部10から通電される駆動電圧のゼロクロス、および回生電圧のゼロクロスである(図3参照)。したがって、当該検出窓は原則的に、正(負)電流通電期間と負(正)電流通電期間との間に設定された非通電期間を、内側に狭くした期間に設定される。
【0114】
その際、当該非通電期間から少なくとも回生電流が流れる期間が除かれる必要がある。ただし、上記検出窓を狭く設定しすぎると、正規の誘起電圧のゼロクロスを検出できない可能性が高まる。そこで、上記誘起電圧以外の電圧のゼロクロスを検出する可能性と、正規の誘起電圧のゼロクロスを検出できない可能性とのトレードオフ関係を考慮し、上記検出窓の期間が決定される。
【0115】
つぎに、上記検出窓内にてゼロクロスが検出されなかった場合について説明する。この場合において、ゼロクロス検出部40は、上記検出窓の開始位置にて上記誘起電圧のゼロクロスが既に終了している場合、上記検出窓の開始位置近傍にゼロクロスが検出されたと仮定し、仮定したゼロクロスの検出位置を駆動信号生成部10に供給する。上記検出窓の開始位置にて既に上記誘起電圧のゼロクロスが終了している場合とは、上記検出窓の開始位置にてコイルL1の両端電圧がゼロクロス後の極性にある場合である。図3に示した例では、上記検出窓の開始位置にてコイルL1の両端電圧が正の場合である。
【0116】
また、ゼロクロス検出部40は、上記検出窓内にてゼロクロスが検出されなかった場合であって、上記検出窓の終了位置にて上記誘起電圧のゼロクロスが終了していない場合、上記検出窓の終了位置近傍にゼロクロスが検出されたと仮定し、仮定したゼロクロスの検出位置を駆動信号生成部10に供給する。上記検出窓の終了位置にて上記誘起電圧のゼロクロスが終了していない場合とは、上記検出窓の終了位置にてコイルL1の両端電圧がゼロクロス前の極性にある場合である。以下、これらの処理を実現するためのゼロクロス検出部40の構成例を説明する。
【0117】
図16は、検出窓設定機能を持つゼロクロス検出部40の構成を示す図である。図16に示すゼロクロス検出部40は、図1に示したゼロクロス検出部40に検出窓設定部43および出力制御部44が追加された構成である。検出窓設定部43は、出力制御部44に検出窓を設定するための信号を供給する。より具体的には、検出窓信号2および検出窓開始信号を供給する。
【0118】
図17は、検出窓信号1、検出窓信号2および検出窓開始信号を説明するための図である。検出窓信号1は、上述した知見にもとづき生成された信号である。すなわち、非通電期間を内側に狭めた検出窓が設定された信号である。検出窓信号2は、検出窓信号1と比較し、検出窓の終了位置が、後続する通電期間の開始位置を含む位置まで延伸された信号である。これにより、コンパレータ41は、上記誘起電圧のゼロクロスだけでなく、当該通電期間に供給される駆動電圧のゼロクロスによっても、出力を反転させる。検出窓開始信号は、検出窓の開始位置を示す信号である。より具体的には、当該検出窓の開始位置にエッジが立っている信号である。
【0119】
図16に戻り、出力制御部44は、上記検出窓の開始位置にてコンパレータ41の出力が反転していない場合、エッジ検出部42により検出されたエッジ位置を、ゼロクロスの検出位置として駆動信号生成部10(より厳密には第2ラッチ回路15)に供給する。出力制御部44は、上記検出窓の開始位置にてコンパレータ41の出力が既に反転している場合、上記検出窓の開始位置を、ゼロクロスの検出位置として駆動信号生成部10(より厳密には第2ラッチ回路15)に供給する。以下、これらの処理を実現するための出力制御部44の構成例を説明する。
【0120】
図18は、出力制御部44の構成例を示す図である。当該出力制御部44は、第1ANDゲート71、第2ANDゲート72およびORゲート73を含む。第1ANDゲート71には、上記検出窓開始信号およびコンパレータ41の出力信号が入力される。第1ANDゲート71は、両者がハイレベル信号のときハイレベル信号を出力し、少なくとも一方がローレベル信号のときローレベル信号を出力する。より具体的には、第1ANDゲート71は、上記検出窓の開始位置で、コンパレータ41の出力が既に反転している場合、ハイレベル信号を出力する。
【0121】
第2ANDゲート72には、上記検出窓信号2およびエッジ検出部42の出力信号が入力される。第2ANDゲート72は、両者がハイレベル信号のときハイレベル信号を出力し、少なくとも一方がローレベル信号のときローレベル信号を出力する。より具体的には、第2ANDゲート72は、上記検出窓内にて、エッジ検出部42の出力信号にエッジが立ったときハイレベル信号を出力する。
【0122】
ORゲート73には、第1ANDゲート71の出力信号および第2ANDゲート72の出力信号が入力される。ORゲート73は、両者の出力信号をもとにエッジ信号を出力する。ORゲート73は、両者の出力信号のいずれか一方がハイレベル信号のときハイレベル信号を出力し、両者の出力信号がともにローレベル信号のときローレベル信号を出力する。より具体的には、ORゲート73は、上記検出窓の開始位置で、コンパレータ41の出力が既に反転している場合、ハイレベル信号を出力する。上記検出窓の開始位置で、コンパレータ41の出力が反転していない場合、上記検出窓内にて、エッジ検出部42の出力信号にエッジが立ったときハイレベル信号を出力する。
【0123】
図19は、検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)の動作を説明するための図である。図19(a)は、誘起電圧のゼロクロスが検出窓内に発生した場合の、コイルL1の両端電圧およびエッジ信号の推移を示し、図19(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示し、図19(c)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示す図である。
【0124】
検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)では、出力制御部44が、図18に示した第2ANDゲート72のみで構成される。その第2ANDゲート72には、検出窓信号1とエッジ検出部42の出力信号とが入力される。
【0125】
図19(a)では、検出窓信号1により設定される検出窓内で、誘起電圧のゼロクロスが発生するため、そのゼロクロスが発生した位置で、エッジ信号にエッジが立つ。なお、当該検出窓が設定されているため、回生電圧のゼロクロスが発生した位置では、当該エッジ信号にエッジが立たない。
【0126】
図19(b)では、リニア振動モータ200の共振周波数が上記駆動信号の周波数より高く、その差が比較的大きい状態を示している。したがって、上記検出窓内で、上記誘起電圧のゼロクロスを生成すべきリニア振動モータ200の停止状態(すなわち、振動レンジのS極側最大到達地点またはN極側最大到達地点に位置する)が発生しない。上記検出窓に入った時点で、その停止状態が終了している。この場合、検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)では、エッジ信号にエッジが立たない(楕円囲み参照)。
【0127】
図19(c)では、リニア振動モータ200の共振周波数が上記駆動信号の周波数より低く、その差が比較的大きい状態を示している。したがって、上記検出窓内で、上記誘起電圧のゼロクロスを生成すべきリニア振動モータ200の停止状態が発生しない。上記検出窓から出た後に、その停止状態が発生している。この場合、検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)では、エッジ信号にエッジが立たない(楕円囲み参照)。
【0128】
図20は、検出窓信号2および検出窓開始信号を使用するゼロクロス検出部40の動作を説明するための図である。図20(a)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示し、図20(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示す図である。
【0129】
検出窓信号2および検出窓開始信号を使用するゼロクロス検出部40では、図18に示した出力制御部44が用いられる。図20(a)に示すコイルL1の両端電圧の推移は、図19(b)に示したコイルL1の両端電圧の推移と同様である。図20(b)に示すコイルL1の両端電圧の推移は、図19(c)に示したコイルL1の両端電圧の推移と同様である。
【0130】
図20(a)では、図18に示した第1ANDゲート71およびORゲート73の作用により、検出窓の開始位置で、エッジ信号にエッジが立つ。図20(b)では、検出窓の終了位置を延伸した作用により、正電流通電開始位置で、エッジ信号にエッジが立つ。
【0131】
以上説明したように上記検出窓を設定することにより、リニア振動モータの固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、コイルL1に発生する誘起電圧のゼロクロスの検出精度を高めることができる。すなわち、駆動電圧や回生電圧のゼロクロスを、誤って検出することを抑制することができる。
【0132】
検出窓を設定した場合にて、リニア振動モータ200の共振周波数と駆動信号の周波数とに大きなずれが発生すると、誘起電圧のゼロクロスが検出窓から外れてしまうことがある。本実施の形態では、検出窓の開始位置近傍または終了位置近傍に、仮のエッジを立てることにより、上記駆動信号の周期幅の適応制御を、途切れることなく継続することができる。リニア振動モータ200の共振周波数と駆動信号の周波数とが大きく離れていても、その仮のエッジにより、両者を徐々に近づけることができる。
【0133】
このように、リニア振動モータ200の共振周波数と駆動信号の周波数とが一致するよう、常時、適応制御が実行されることにより、駆動制御回路100内の基本クロックを生成する内蔵発振子の精度が低下しても、内蔵発振子の周波数をトリミングする必要がなく、ドライバIC(駆動制御回路100)の製造原価低減に大きく寄与する。
【0134】
また、検出窓の終了位置近傍に立てる仮のエッジを、非通電期間に後続する通電期間の立ち上がりを利用することにより、信号制御を簡素化することができる。上記検出窓開始位置信号など、検出窓信号以外の信号を用いる必要がない。
【0135】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0136】
上述した第2の立ち上がり制御は、非通電期間が含まれない駆動信号により、リニア振動モータ200を駆動する駆動制御回路にも適用可能である。当該駆動信号は、正電流通電期間と負電流通電期間とが非通電期間を挟まずに、交互に設定される信号である。すなわち、上述した第2の立ち上がり制御は、上述した駆動信号の周期幅の適応制御を実行しない駆動制御回路にも適用可能である。上述した停止制御も、同様に、非通電期間が含まれない駆動信号により、リニア振動モータ200を駆動する駆動制御回路にも適用可能である。すなわち、上述した駆動信号の周期幅の適応制御を実行しない駆動制御回路にも適用可能である。
【符号の説明】
【0137】
100 駆動制御回路、 10 駆動信号生成部、 14 デコーダ、 16 差分算出回路、 18 加算回路、 20 駆動部、 30 誘起電圧検出部、 40 ゼロクロス検出部、 200 リニア振動モータ、 210 固定子、 L1 コイル、 220 振動子。
【技術分野】
【0001】
本発明は、振動子が固定子に対して直線状に往復振動するリニア振動モータを駆動制御するための駆動制御回路に関する。
【背景技術】
【0002】
従来、リニア振動モータは、電気カミソリなど特定の用途で使用されてきたが、近年、その用途が拡大している。たとえば、タッチパネルを押下した際の操作感覚をユーザにフィードバックさせるための振動を作り出す素子に採用されている。このようなハプティクス用途の拡大に伴い、今後、リニア振動モータの出荷数が伸びていくと予想される。
【0003】
リニア振動モータは、その固有振動数(以下適宜、共振周波数ともいう)にできるだけ近い周波数で駆動されることが好ましく、その共振周波数と駆動周波数とが一致するときに最も強い振動が発生する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−16892号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
リニア振動モータの固有振動数は、振動子の質量およびバネ定数により決定されるため、製品間でその固有振動数にばらつきがある。したがって、リニア振動モータの駆動回路に固定の駆動周波数を一律に設定する従来の手法では、製品の中に、モータの固有振動数と駆動周波数に大きなずれを持つものも発生し、歩留を低下させる要因となっていた。また、当初はモータの固有振動数と駆動周波数とが一致していても、経時変化により両者がずれてしまい、振動が弱くなってしまうことがあった。
【0006】
これに対し、本発明者は電磁石のコイルに発生する誘起電圧のゼロクロスの検出位置から、リニア振動モータの固有振動数を推定し、当該固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する手法を見出した。
【0007】
本発明はこうした状況に鑑みなされたものであり、その目的は、リニア振動モータの固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、その周期幅変更による影響を最小限に抑える技術を提供することにある。
【課題を解決するための手段】
【0008】
本発明のある態様のリニア振動モータの駆動制御回路は、固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、コイルに供給する駆動部と、非通電期間において、コイルに発生する誘起電圧を検出する誘起電圧検出部と、誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備える。駆動信号生成部は、ゼロクロスの検出位置からリニア振動モータの固有振動数を推定し、駆動信号の周波数を、当該固有振動数に近づけ、駆動信号生成部は、駆動信号の周波数の変更によりその周期幅が変更されても、駆動信号の通電期間と非通電期間との比が維持されるよう、駆動信号を調整する。
【0009】
本発明の別の態様もまた、リニア振動モータの駆動制御回路である。このリニア振動モータの駆動制御回路は、固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、コイルに供給する駆動部と、非通電期間において、コイルに発生する誘起電圧を検出する誘起電圧検出部と、誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備える。駆動信号生成部は、ゼロクロスの検出位置からリニア振動モータの固有振動数を推定し、駆動信号の周波数を、当該固有振動数に近づけ、駆動信号生成部は、駆動信号の周波数の変更により駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、駆動信号を調整する。
【0010】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0011】
本発明によれば、リニア振動モータの固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、その周期幅変更による影響を最小限に抑えることができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施の形態に係る、リニア振動モータの駆動制御回路の構成を示す図である。
【図2】駆動部、誘起電圧検出部およびコンパレータの構成例を示す図である。
【図3】実施の形態に係る駆動制御回路の動作例を示すタイミングチャートである。
【図4】エッジ信号、第1クロック信号、第2クロック信号および第3クロック信号の一例を示すタイミングチャートである。
【図5】デコーダの構成例を示す図である。
【図6】駆動信号の一周期の波形を示す図である。
【図7】駆動信号の通電期間幅の制御を説明するための図である。
【図8】駆動信号の位相制御を説明するための図である。
【図9】立ち上がり制御機能が追加されたデコーダの構成例を示す図である。
【図10】第1の立ち上がり制御を説明するための図である。図10(a)は、第1の立ち上がり制御が実行されない場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図であり、図10(b)は、第1の立ち上がり制御が実行された場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図である。
【図11】第2の立ち上がり制御を説明するための図である。図11(a)は、第2の立ち上がり制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図11(b)は、第2の立ち上がり制御が実行された場合の、コイル駆動電圧の推移を示す図である。
【図12】停止制御機能が追加されたデコーダの構成例を示す図である。
【図13】上記停止制御の基本概念を説明するための図である。図13(a)は、停止制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図13(b)は、停止制御が実行された場合の、コイル駆動電圧の推移を示す図であり、図13(c)は、停止制御がPWM信号により実行された場合の、コイル駆動電圧の推移を示す図である。
【図14】上記停止制御において逆位相の駆動信号の周期回数が固定の例を説明するための図である。図14(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図であり、図14(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図である。
【図15】上記停止制御において逆位相の駆動信号の周期回数が可変の例を説明するための図である。図15(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図であり、図15(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータの振動の推移を示す図である。
【図16】検出窓設定機能を持つゼロクロス検出部の構成を示す図である。
【図17】検出窓信号1、検出窓信号2および検出窓開始信号を説明するための図である。
【図18】出力制御部の構成例を示す図である。
【図19】検出窓信号1を使用するゼロクロス検出部(検出窓開始信号未使用)の動作を説明するための図である。図19(a)は、誘起電圧のゼロクロスが検出窓内に発生した場合の、コイルの両端電圧およびエッジ信号の推移を示し、図19(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示し、図19(c)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示す図である。
【図20】検出窓信号2および検出窓開始信号を使用するゼロクロス検出部の動作を説明するための図である。図20(a)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示し、図20(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルの両端電圧およびエッジ信号の推移を示す図である。
【発明を実施するための形態】
【0013】
(基本構成)
図1は、本発明の実施の形態に係る、リニア振動モータ200の駆動制御回路100の構成を示す図である。まず、リニア振動モータ200は、固定子210と振動子220とを有し、両者の少なくとも一方は電磁石で構成される。本実施の形態では、固定子210が電磁石で構成される。固定子210は、磁性材料の芯211にコイルL1が巻き付けられて形成され、コイルL1に通電されると磁石として作用する。振動子220は、永久磁石221を含み、永久磁石221の両端(S極側とN極側)は、それぞれバネ222a、222bを介してフレーム223に固定される。固定子210と振動子220とは、所定の隙間を空けて並べて配置される。なお、図1の例と反対に、振動子220が電磁石で構成され、固定子210が永久磁石で構成されてもよい。
【0014】
駆動制御回路100は、上記コイルL1に駆動電流を供給して、振動子220を固定子210に対して直線状に往復振動させる。駆動制御回路100は、駆動信号生成部10、駆動部20、誘起電圧検出部30およびゼロクロス検出部40を備える。
【0015】
駆動信号生成部10は、コイルL1に正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する。駆動部20は、駆動信号生成部10により生成された駆動信号に応じた駆動電流を生成し、コイルL1に供給する。誘起電圧検出部30は、コイルL1の両端に接続され、コイルL1の両端電位差を検出する。主に、非通電期間において、コイルL1に発生する誘起電圧を検出する。ゼロクロス検出部40は、誘起電圧検出部30により検出された誘起電圧のゼロクロスを検出する。
【0016】
駆動信号生成部10は、ゼロクロス検出部40により検出された誘起電圧のゼロクロスの検出位置から、リニア振動モータ200の固有振動数を推定し、上記駆動信号の周波数を、当該固有振動数にできる限り近づける。すなわち、上記駆動信号の周波数が当該固有振動数に一致するよう、上記駆動信号の周波数を適応的に変化させる。
【0017】
より具体的には、駆動信号生成部10は、上記駆動信号の一周期の終了位置と、その終了位置に対応すべきゼロクロスの検出位置との差分を算出し、その差分を現在の駆動信号の周期幅に加算して、上記駆動信号の周期幅を適応的に制御する。上記駆動信号の一周期が通常の位相(ゼロ→正電圧→ゼロ→負電圧→ゼロ)で形成される場合、上記終了位置に対応すべきゼロクロスの検出位置は、上記誘起電圧の負電圧から正電圧にゼロクロスする位置となる。反対に、上記駆動信号の一周期が逆位相(ゼロ→負電圧→ゼロ→正電圧→ゼロ)で形成される場合、上記終了位置に対応すべきゼロクロスの検出位置は、上記誘起電圧の正電圧から負電圧にゼロクロスする位置となる。
【0018】
以下、駆動制御回路100の構成についてより具体的に説明する。まず、駆動部20、誘起電圧検出部30、ゼロクロス検出部40の構成について説明する。ゼロクロス検出部40は、コンパレータ41およびエッジ検出部42を含む。コンパレータ41は、誘起電圧検出部30により検出された誘起電圧と、ゼロクロスを検出するための基準電圧とを比較する。コンパレータ41は、当該誘起電圧が当該基準電圧をクロスするタイミングで、出力を反転させる。たとえば、ローレベル信号からハイレベル信号に反転させる。エッジ検出部42は、コンパレータ41の出力が反転した位置をエッジとして検出する。
【0019】
図2は、駆動部20、誘起電圧検出部30およびコンパレータ41の構成例を示す図である。図2では、駆動部20をHブリッジ回路で、および誘起電圧検出部30を差動増幅回路で構成する例を示している。
【0020】
当該Hブリッジ回路は、第1トランジスタM1、第2トランジスタM2、第3トランジスタM3および第4トランジスタM4を含む。なお、図2では説明の便宜上、リニア振動モータ200のコイルL1も駆動部20の枠内に描いている。第1トランジスタM1と第3トランジスタM3との第1直列回路、および第2トランジスタM2と第4トランジスタM4との第2直列回路が、それぞれ電源電位Vddとグラウンド電位間に接続される。第1トランジスタM1と第3トランジスタM3との接続点(以下、A点という)と、第2トランジスタM2と第4トランジスタM4との接続点(以下、B点という)との間に、コイルL1が接続される。
【0021】
図2では、第1トランジスタM1および第2トランジスタM2はPチャンネルMOSFETで構成され、それぞれのソース−ドレイン間にボディダイオードとして、第1ダイオードD1および第2ダイオードD2が接続されている。第3トランジスタM3および第4トランジスタM4はNチャンネルMOSFETで構成され、それぞれのソース−ドレイン間にボディダイオードとして、第3ダイオードD3および第4ダイオードD4が接続されている。
【0022】
第1トランジスタM1、第2トランジスタM2、第3トランジスタM3および第4トランジスタM4のゲートには、駆動信号生成部10(より厳密には、後述するデコーダ14)から上記駆動信号が入力される。当該駆動信号により、第1トランジスタM1と第4トランジスタM4がオン、および第2トランジスタM2と第3トランジスタM3がオフに制御されると、コイルL1に正電流が流れ、第1トランジスタM1と第4トランジスタM4がオフ、および第2トランジスタM2と第3トランジスタM3がオンに制御されると、コイルL1に負電流が流れる。
【0023】
上記差動増幅回路は、オペアンプOP1、第1抵抗R1、第2抵抗R2、第3抵抗R3および第4抵抗R4を含む。オペアンプOP1の反転入力端子は第1抵抗R1を介してB点と接続され、非反転入力端子は第2抵抗R2を介してA点と接続される。オペアンプOP1の、反転入力端子と出力端子とは第3抵抗R3を介して接続される。オペアンプOP1の非反転入力端子には、第4抵抗R4を介して基準電圧Vrefがオフセット電圧として印加される。
【0024】
第1抵抗R1と第2抵抗R2の抵抗値を同じ値に設定し、第3抵抗R3と第4抵抗R4の抵抗値を同じ値に設定する。この条件では、上記差動増幅回路の増幅率はR3/R1となる。たとえば、第1抵抗R1と第2抵抗R2の抵抗値を10kΩ、および第3抵抗R3と第4抵抗R4の抵抗値を20kΩに設定して、コイルL1の両端電圧(A−B間電圧)を2倍に増幅する。
【0025】
コンパレータ41(オープンループのオペアンプで構成される)の反転入力端子には基準電圧Vrefが印加される。コンパレータ41の非反転入力端子はオペアンプOP1の出力端子と接続され、当該非反転入力端子にはオペアンプOP1の出力電圧が印加される。上記差動増幅回路に基準電圧Vrefがオフセット電圧(たとえば、1/2Vdd)として印加される場合、オペアンプOP1とコンパレータ41とのレンジを合わせるために、コンパレータ41の参照電圧として、基準電圧Vrefが使用される。なお、上記差動増幅回路にオフセット電圧が印加されない場合、コンパレータ41の参照電圧として、グラウンド電圧が使用される。
【0026】
このように、コイルL1の両端電圧(A−B間電圧)を上記差動増幅回路により増幅してからコンパレータ41に入力することにより、コイルL1に発生する誘起電圧のゼロクロスの検出精度を高めることができる。
【0027】
図3は、実施の形態に係る駆動制御回路100の動作例を示すタイミングチャートである。この動作例は、単相全波にてリニア振動モータ200を駆動する例である。その際、非通電期間を設定する。非通電期間は、正電流通電期間および負電流通電期間のそれぞれの前後に設定される。すなわち、全周期のうち、第1半周期は非通電期間、正電流通電期間および非通電期間で構成され、第2半周期は非通電期間、負電流通電期間および非通電期間で構成される。以下の例では、半周期の180°のうち、非通電期間に40°、正(負)電流通電期間に100°および非通電期間に40°を割り当てる。したがって、一周期のうち、5/9が通電期間に割り当てられ、4/9が非通電期間に割り当てられる。以下、本明細書では、この比率にしたがった駆動方式を100度通電と呼ぶ。
【0028】
図3にて、上記Hブリッジ回路のオン−1状態(M1、M4がオン、M2、M3がオフ)ではコイルL1に正電流が流れる。上記Hブリッジ回路のオフ状態(M1〜M4がオフ)ではコイルL1に駆動電流は流れない。上記Hブリッジ回路のオン−2状態(M1、M4がオフ、M2、M3がオン)ではコイルL1に負電流が流れる。
【0029】
コイルL1に正電流が流れている状態では固定子210がN極に励磁され、その磁力により、振動子220は永久磁石221のS極側への力を受ける。その力により、振動子220はバネ222aに抗して永久磁石221のS極側へ移動し、バネ222aの収縮限界まで移動する。コイルL1に駆動電流が流れていない状態では固定子210が励磁されず、磁力は発生しない。振動子220は、バネ222aの復元力により中心位置に向けて移動する。コイルL1に負電流が流れている状態では固定子210がS極に励磁され、その磁力により、振動子220は永久磁石221のN極側への力を受ける。その力により、振動子220はバネ222bに抗して永久磁石221のN極側へ移動し、バネ222bの収縮限界まで移動する。
【0030】
このように、駆動信号生成部10は、上記Hブリッジ回路をオフ状態→オン−1状態→オフ状態→オン−2状態→オフ状態というサイクルで制御することにより、リニア振動モータ200を往復運動させることができる。
【0031】
上記Hブリッジ回路がオン−1状態からオフ状態に遷移し、第1トランジスタM1〜第4トランジスタM4がすべてオフに切り替えられると、上記ボディーダイオードを通じて回生電流が流れる。上記Hブリッジ回路がオン−2状態からオフ状態に遷移する際も同様である。この回生電流を活用することにより、エネルギー効率を高め、駆動制御回路100の消費電力を低減することができる。
【0032】
上記回生電流は、コイルL1にそれまで流れていた電流と逆方向に流れる。上記回生電流が流れ終わると、コイルL1に、振動子220の移動により誘起される誘起電流が流れる。振動子220が停止している状態ではこの誘起電流は流れない。振動子220が停止している状態は、振動子220の振動レンジの両端に振動子220が到達した瞬間に発生する。
【0033】
誘起電圧検出部30は、非通電期間においてコイルL1に発生する逆起電圧を監視することにより、振動子220の位置を推定することができる。当該逆起電圧がゼロの状態は、振動子220が停止している(すなわち、振動レンジのS極側最大到達地点またはN極側最大到達地点に位置する)ことを示している。
【0034】
したがって、ゼロクロス検出部40は、コイルL1の両端電圧(A−B間電圧)がゼロクロス(駆動電流および回生電流によるゼロクロスを除く)するタイミングを検出し、検出したゼロクロス間の期間を測定することにより、リニア振動モータ200の固有振動数を求めることができる。なお、連続するゼロクロス間の期間が、リニア振動モータ200の半振動周期幅を示し、一つ飛ばしのゼロクロス間の期間がその全振動周期幅を示す。
【0035】
本実施の形態では、ゼロクロス検出部40は非通電期間にてコイルL1の両端電圧(A−B間電圧)が負から正にゼロクロスするタイミングのみを検出する。この場合、図2に示したコンパレータ41は、オペアンプOP1の出力電圧が基準電圧Vrefより低い間、ローレベル信号を出力し、オペアンプOP1の出力電圧が基準電圧Vrefより高くなると、ハイレベル信号を出力するよう、設定される。
【0036】
駆動信号生成部10は、測定されたリニア振動モータ200の固有振動数に対応する周期幅を用いて、つぎの駆動信号の周期幅を調整する。この測定と調整が繰り返されることにより、駆動制御回路100は、リニア振動モータ200をその共振周波数またはその近傍の周波数で継続的に駆動することができる。
【0037】
図1に戻り、駆動信号生成部10をより具体的に説明する。駆動信号生成部10は、第1ラッチ回路11、メインカウンタ12、ループカウンタ13、デコーダ14、第2ラッチ回路15、差分算出回路16、第3ラッチ回路17、加算回路18および第4ラッチ回路19を含む。
【0038】
第1ラッチ回路11は、上記駆動信号の一周期の終了位置に対応すべきカウント終了値をラッチし、第3クロック信号CLK3により指示されたタイミングでメインカウンタ12およびデコーダ14に出力する。なお、差分算出回路16にも出力することができる。第1ラッチ回路11には、リニア振動モータ200の駆動開始時には、図示しないレジスタなどから上記カウント終了値の初期値が設定される。駆動開始後は、第4ラッチ回路19から入力される値が上記カウント終了値となる。
【0039】
メインカウンタ12は、第1ラッチ回路11から上記カウント終了値が設定され、カウント初期値から当該カウント終了値までを繰り返しカウントする。カウント初期値には、通常、0が設定される。たとえば、当該カウント終了値として199が設定された場合、メインカウンタ12は0〜199までを繰り返しカウントアップする200進カウンタとなる。メインカウンタ12のカウント値は、ループカウンタ13、デコーダ14および第2ラッチ回路15に出力される。
【0040】
ループカウンタ13は、メインカウンタ12の一カウントループが終了するたびにインクリメントし、メインカウンタ12のカウントループ回数を保持する。ここで、一カウントループとは、メインカウンタ12の上記カウント初期値から上記カウント終了値までカウントすることを指す。一カウントループは一駆動周期に対応するため、カウントループ回数は駆動周期回数に対応する。
【0041】
デコーダ14は、メインカウンタ12から供給されるカウント値を用いて、上記カウント終了値に応じた周期幅の駆動信号を生成する。デコーダ14の詳細な構成は後述する。第2ラッチ回路15は、メインカウンタ12から供給されるカウント値を順次ラッチし、ゼロクロス検出部40によりゼロクロスが検出された位置でラッチしたカウント値を差分算出回路16に出力する。当該ゼロクロスが検出された位置は、エッジ検出部42から入力されるエッジ信号により通知される。当該ゼロクロスが検出された位置が、理想的に常に同じタイミングで発生すれば、第2ラッチ回路15の出力は常に同じカウント値となる。
【0042】
差分算出回路16は、第2ラッチ回路15から入力されるカウント値と、現在のカウント終了値との差分を算出する。図1では現在のカウント終了値は第1ラッチ回路11から入力される例を描いている。なお、差分算出回路16が現在のカウント終了値を保持する構成であってもよいし、第4ラッチ回路19から供給される構成であってもよい。
【0043】
ゼロクロスが検出された位置のカウント値(=第2ラッチ回路15から入力されるカウント値)が、現在のカウント終了値より小さい場合、差分算出回路16は、前者から後者を減算する。たとえば、ゼロクロスが検出された位置のカウント値が197で、現在のカウント終了値が199の場合、差分算出回路16は、−2を出力する。
【0044】
ゼロクロスが検出された位置のカウント値が、現在のカウント終了値より大きい場合、第2ラッチ回路15から入力されるカウント値は、現在のカウント終了値に対する増分値となる。この場合、差分算出回路16は、第2ラッチ回路15から入力されるカウント値をそのまま出力する。たとえば、ゼロクロスが検出された位置の本来のカウント値が201で、現在のカウント終了値が199の場合、第2ラッチ回路15から入力されるカウント値は2となり、差分算出回路16は2をそのまま出力する。当該カウント値は199でリセットされるため、第2ラッチ回路15から入力されるカウント値は、201ではなく、2となる。
【0045】
第3ラッチ回路17は、差分算出回路16から入力される差分値をラッチし、第1クロック信号CLK1により指示されたタイミングで、その差分値を加算回路18に出力する。加算回路18は、第3ラッチ回路17から入力される差分値を、第4ラッチ回路19から入力される現在のカウント終了値に加算する。第4ラッチ回路19は、加算回路18から入力される値をラッチし、第2クロック信号CLK2により指示されたタイミングで第1ラッチ回路11に出力する。第4ラッチ回路19にも、リニア振動モータ200の駆動開始時には、図示しないレジスタなどから上記カウント終了値の初期値が設定される。
【0046】
加算回路18により生成された値は新たなカウント終了値として、第4ラッチ回路19および第1ラッチ回路11を介してメインカウンタ12およびデコーダ14に設定される。したがって、メインカウンタ12およびデコーダ14には、直前のゼロクロスの検出位置を反映したカウント終了値が常に設定される。
【0047】
図4は、エッジ信号、第1クロック信号CLK1、第2クロック信号CLK2および第3クロック信号CLK3の一例を示すタイミングチャートである。エッジ信号はエッジ検出部42から第2ラッチ回路15に設定される。第1クロック信号CLK1は、エッジ信号を半クロック、遅延させた信号である。この半クロックの遅延は、差分算出回路16による演算処理を考慮したものである。第2クロック信号CLK2は、第1クロック信号CLK1を半クロック、遅延させた信号である。この半クロックの遅延は、加算回路18による演算処理を考慮したものである。
【0048】
第3クロック信号CLK3は、第2クロック信号CK2を数クロック、遅延させた信号である。この数クロックの遅延は、現在の駆動周期のカウント終了前に、現在の駆動周期のカウント終了値が変更されることを抑制するための遅延である。たとえば、第1ラッチ回路11が設置されない場合であって、現在の駆動周期において、その終了位置より前にゼロクロスが検出された場合、そのゼロクロス位置を反映した新たなカウント終了値が、次回の駆動周期からではなく、現在の駆動周期から適用されてしまう可能性がある。その場合、更新前のカウント終了値を基準に通電期間が決定されるため、通電期間と非通電期間との比率が維持できなくなってしまう。本実施の形態では、100度通電が維持できなくなってしまう。
【0049】
第4ラッチ回路19とメインカウンタ12との間に第1ラッチ回路11を設置することにより、メインカウンタ12に設定されている現在のカウント終了値を、ゼロクロス位置を反映した新たなカウント終了値に更新するタイミングを遅らせることができる。
【0050】
(デコーダ構成)
図5は、デコーダ14の構成例を示す図である。デコーダ14は、上記カウント終了値に、上記駆動信号の一周期に対する通電期間の比率を一定にするための係数を乗算して得られる値に応じて、上記駆動信号の通電期間に対応するカウント幅を決定する。上述したように、上記駆動信号の一周期には、正電流通電期間と負電流通電期間とが含まれる。したがって、上記100度通電の場合、上記駆動信号の一周期に対する各通電期間の比率は、100°/360°(≒0.28)となる。また、上記駆動信号の一周期に対する各通電期間の半期間の比率は、50°/360°(≒0.14)となる。
【0051】
また、デコーダ14は、上記カウント終了値に、上記駆動信号の通電期間の中心位置を決定するための係数を乗算して得られる値に応じて、上記駆動信号の通電期間の開始位置および終了位置に対応するカウント値を決定する。上述したように、上記駆動信号の一周期は、前後に非通電期間が設定された正電流通電期間および前後に非通電期間が設定された負電流通電期間により形成される。ここで、正電流通電期間の長さおよび負電流通電期間の長さは等しく設定され、非通電期間の長さも、すべて等しく設定される。
【0052】
したがって、上記駆動信号の正電流通電期間の中心位置を決定するための係数は、0.25に設定され、上記駆動信号の負電流通電期間の中心位置を決定するための係数は、0.75に設定される。なお、上記駆動信号の位相が逆の場合、負電流通電期間の中心位置を決定するための係数は、0.25に設定され、正電流通電期間の中心位置を決定するための係数は、0.75に設定される。
【0053】
このように、デコーダ14は、各通電期間に対応するカウント幅、および各通電期間の中心位置に対応するカウント値を算出することができる。そして、当該中心位置に対応するカウント値から、上記カウント幅の半分の値を減算することにより、各通電期間の開始位置に対応するカウント値を算出することができる。また、当該中心位置に対応するカウント値に、上記カウント幅の半分の値を加算することにより、各通電期間の終了位置に対応するカウント値を算出することができる。
【0054】
以下、より具体的に説明する。デコーダ14は、駆動幅算出部51、正駆動中心値算出部52、負駆動中心値算出部53、正側減算部54、正側加算部55、負側減算部56、負側加算部57、正駆動信号生成部58および負駆動信号生成部59を含む。
【0055】
駆動幅算出部51は、上記駆動信号の一周期に対する各通電期間(以下適宜、駆動期間ともいう)の半期間の比率を係数として保持する。上記100度通電の場合、0.14を保持する。駆動幅算出部51は、第1ラッチ回路11からカウント終了値が供給される。駆動幅算出部51は、そのカウント終了値に当該係数を乗算する。これにより、各駆動期間の半期間に対応するカウント幅を算出することができる。
【0056】
正駆動中心値算出部52は、上記駆動信号の正電流通電期間(以下適宜、正駆動期間ともいう)の中心位置を決定するための係数を保持する。本実施の形態では、0.25を保持する。正駆動中心値算出部52は、第1ラッチ回路11からカウント終了値が供給される。正駆動中心値算出部52は、そのカウント終了値に当該係数を乗算する。これにより、各正駆動期間の中心位置に対応するカウント値を算出することができる。
【0057】
負駆動中心値算出部53は、上記駆動信号の負電流通電期間(以下適宜、負駆動期間ともいう)の中心位置を決定するための係数を保持する。本実施の形態では、0.75を保持する。負駆動中心値算出部53は、第1ラッチ回路11からカウント終了値が供給される。負駆動中心値算出部53は、そのカウント終了値に当該係数を乗算する。これにより、各負駆動期間の中心位置に対応するカウント値を算出することができる。
【0058】
正側減算部54は、正駆動中心値算出部52から供給される正駆動期間の中心位置に対応するカウント値から、駆動幅算出部51から供給されるカウント幅を減算することにより、正駆動期間の開始位置に対応するカウント値を算出する。正側加算部55は、正駆動中心値算出部52から供給される正駆動期間の中心位置に対応するカウント値に、駆動幅算出部51から供給されるカウント幅を加算することにより、正駆動期間の終了位置に対応するカウント値を算出する。
【0059】
負側減算部56は、負駆動中心値算出部53から供給される負駆動期間の中心位置に対応するカウント値から、駆動幅算出部51から供給されるカウント幅を減算することにより、負駆動期間の開始位置に対応するカウント値を算出する。負側加算部57は、負駆動中心値算出部53から供給される負駆動期間の中心位置に対応するカウント値に、駆動幅算出部51から供給されるカウント幅を加算することにより、負駆動期間の終了位置に対応するカウント値を算出する。
【0060】
正駆動信号生成部58は、メインカウンタ12から同期クロックとしてのカウント値、正側減算部54から正駆動期間の開始位置に対応するカウント値、および正側加算部55から正駆動期間の開始位置に対応するカウント値が供給される。正駆動信号生成部58は、同期クロックとしてのカウント値にしたがい、正駆動期間の開始位置に対応するカウント値から正駆動期間の終了位置に対応するカウント値まで有意な信号(たとえば、ハイレベル信号)を正駆動信号として出力する。それ以外の期間は、非有意な信号(たとえば、ローレベル信号)を出力する。
【0061】
なお、正駆動信号生成部58は、当該正駆動信号を、設定されたデューティ比のPWM信号で生成することができる。正駆動信号生成部58により生成された正駆動信号は、駆動部20、より具体的には第1トランジスタM1および第4トランジスタM4のゲートに入力される。なお、第1トランジスタM1の前段には、図示しないインバータが設けられ、当該正駆動信号は位相が反転されて、第1トランジスタM1のゲートに入力される。
【0062】
負駆動信号生成部59は、メインカウンタ12から同期クロックとしてのカウント値、負側減算部56から負駆動期間の開始位置に対応するカウント値、および負側加算部57から負駆動期間の開始位置に対応するカウント値が供給される。負駆動信号生成部59は、同期クロックとしてのカウント値にしたがい、負駆動期間の開始位置に対応するカウント値から負駆動期間の終了位置に対応するカウント値まで有意な信号(たとえば、ハイレベル信号)を負駆動信号として出力する。それ以外の期間は、非有意な信号(たとえば、ローレベル信号)を出力する。
【0063】
なお、負駆動信号生成部59は、当該負駆動信号を、設定されたデューティ比のPWM信号で生成することができる。負駆動信号生成部59により生成された負駆動信号は、駆動部20、より具体的には第2トランジスタM2および第3トランジスタM3のゲートに入力される。なお、第2トランジスタM2の前段には、図示しないインバータが設けられ、当該負駆動信号は位相が反転されて、第2トランジスタM2のゲートに入力される。
【0064】
図6は、駆動信号の一周期の波形を示す図である。図6にて網点領域が、正駆動期間(先)および負駆動期間(後)を示している。正駆動開始値aに対応するカウント値は正側減算部54により生成され、正駆動中心値bに対応するカウント値は正駆動中心値算出部52により生成され、正駆動終了値cに対応するカウント値は正側加算部55により生成される。同様に、負駆動開始値dに対応するカウント値は負側減算部56により生成され、負駆動中心値eに対応するカウント値は負駆動中心値算出部53により生成され、負駆動終了値fに対応するカウント値は負側加算部57により生成される。
【0065】
図5に示すようにデコーダ14を構成することにより、駆動信号生成部10は、上記駆動信号の周波数の変更によりその周期幅が変更されても、上記駆動信号の通電期間と非通電期間との比が維持されるよう、上記駆動信号を調整することができる。また、駆動信号生成部10は、上記駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、上記駆動信号を調整することができる。
【0066】
図7は、駆動信号の通電期間幅の制御を説明するための図である。図7(a)は、駆動周期がデフォルト状態における、コイル駆動電圧の推移を示す図であり、図7(b)は、駆動周期がデフォルト状態から長く調整された後の、コイル駆動電圧(通電期間幅の調整なし)の推移を示す図であり、図7(c)は、駆動周期がデフォルト状態から長く調整された後の、コイル駆動電圧(通電期間幅の調整あり)の推移を示す図である。
【0067】
図7(a)では、上記100度通電に設定されている。すなわち、1駆動周期における通電期間と非通電期間との比が5:4に設定されている。図7(b)では、駆動周期がデフォルト状態から長く調整された後も、デフォルト状態における通電期間幅が維持される例を示している。この場合、リニア振動モータ200に対する駆動力が低下し、リニア振動モータ200の振動が弱くなる可能性がある。
【0068】
図7(c)では、駆動周期がデフォルト状態から長く調整された後も、1駆動周期における通電期間と非通電期間との比が維持されるよう制御される。本実施の形態では、上記100度通電が維持されるよう制御される。この制御は、デコーダ14内の駆動幅算出部51の作用により実現される。
【0069】
ここでは、駆動周期がデフォルト状態から長く調整される例を説明したが、デフォルト状態から短く調整される例も同様である。駆動周期がデフォルト状態から短く調整された後も、デフォルト状態における通電期間幅が維持されると、リニア振動モータ200に対する駆動力が上昇し、リニア振動モータ200の振動が弱くなる可能性がある。この点、本実施の形態では、駆動周期がデフォルト状態から短く調整された後も、100度通電が維持されるよう制御される。
【0070】
図8は、駆動信号の位相制御を説明するための図である。図8は、リニア振動モータ200の共振周波数に調整された後の、コイルL1の両端電圧の推移を示している。なお、説明を単純化するために回生電圧は省略して描いている。一段目の波形は、駆動信号の位相が最適な状態で、リニア振動モータ200が駆動されている状態を示している。
【0071】
二段目の波形は、その二周期目から、駆動信号の位相が位相遅れ状態で、リニア振動モータ200が駆動されている状態を示している。この状態は、駆動周期がそれまでより短く調整された場合であって、その調整後も、各通電期間の開始位置および終了位置が、その調整前の位置を維持している場合に発生する。
【0072】
三段目の波形は、その二周期目から、駆動信号の位相が位相進み状態で、リニア振動モータ200が駆動されている状態を示している。この状態は、駆動周期がそれまでより長く調整された場合であって、その調整後も、各通電期間の開始位置および終了位置が、その調整前の位置を維持している場合に発生する。
【0073】
すなわち、各通電期間の開始位置および終了位置が固定の場合にて、駆動周期幅が変更されると、駆動信号の位相に遅れや進みが発生する。これに対し、本実施の形態では駆動周期が変更されると、各通電期間の開始位置および終了位置が適応的に調整されるため、駆動信号の位相を最適に保つことができる。この開始位置および終了位置の調整は、デコーダ14内の主に、正駆動中心値算出部52および負駆動中心値算出部53の作用により実現される。
【0074】
以上説明したように、本実施の形態に係る駆動制御回路100によれば、測定されたリニア振動モータ200の固有振動数に対応する周期幅を用いて、つぎの駆動信号の周期幅を調整することにより、リニア振動モータ200がどのような状態であっても、その固有振動数にできるだけ近い周波数で継続的に駆動することができる。
【0075】
したがって、リニア振動モータ200の製品間による固有振動数のばらつきを吸収することができ、モータを量産する場合の歩留の低減を防止することが可能となる。また、バネ222a、220bなどが経時変化しても、経時変化後の固有振動数に対応した駆動周波数で駆動されるため、振動が弱まることを抑制することができる。
【0076】
また、リニア振動モータ200の固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、その周期幅変更による影響を最小限に抑えることができる。具体的には、駆動信号の周期幅が変更されても、一周期における通電期間と非通電期間との比率を維持するよう通電期間幅を調整することにより、リニア振動モータ200に対する駆動力を維持することができる。したがって、駆動力の変動によって、リニア振動モータ200の動きが弱くなることを抑制することができる。
【0077】
また、駆動信号の周期幅が変更されても、一周期における通電期間の相対的位置関係が維持されるよう、各通電期間の開始位置および終了位置を最適な位置に調整することにより、駆動効率の低下を抑制することができる。すなわち、駆動信号の位相がずれると、振動子220の位置と、駆動力の供給位置とにずれが発生し、駆動効率が低下してしまう。この点、駆動信号の位相を最適な位置に維持することにより、同じ消費電力で、最大限の振動を得ることができる。
【0078】
(立ち上がり制御)
以下、本実施の形態に係る駆動制御回路100による、上述した駆動制御に追加することが可能な第1の立ち上がり制御について説明する。図6に示したように、上記駆動信号の一周期は、前後に非通電期間が設定された正電流通電期間および前後に非通電期間が設定された負電流通電期間により形成される。これにより、図3に示したように誘起電圧のゼロクロスを精度よく検出することができるとともに、図8に示したように駆動効率を高めることができる。
【0079】
したがって、上記駆動信号における最初の周期の正電流通電期間(逆位相の場合、負電流通電期間)の前にも、非通電期間が設定されるのが原則である。ただし、この非通電期間は、リニア振動モータ200の立ち上がり時間を遅くする方向に働く。そこで、これを改善するために、駆動信号生成部10は以下のような立ち上がり制御を実行することができる。
【0080】
すなわち、駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間の前に設定されるべき非通電期間幅を、リニア振動モータ200の定常動作時において各通電期間の前に設定されるべき非通電期間幅より短く設定する。たとえば、駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間の前に設定されるべき非通電期間幅をゼロに設定してもよい。
【0081】
定常動作時において各通電期間の前に設定されるべき非通電期間幅より、短い非通電期間幅を前に設定すべき通電期間は、最初の通電期間のみであってもよいし、最初の通電期間からn(nは自然数)番目までの通電期間であってもよい。後者の場合、最初の通電期間からn番目の通電期間に近づくにしたがって、それぞれの前に設定すべき非通電期間幅を長くしていってもよい。
【0082】
また、通電期間の前に、定常動作時において各通電期間の前に設定されるべき非通電期間幅より短い非通電期間幅が設定されている間、駆動信号生成部10は、上記駆動信号の周期幅の調整処理を停止してもよい。その場合、誘起電圧検出部30およびゼロクロス検出部40による上記誘起電圧のゼロクロス検出処理も停止してもよい。
【0083】
つぎに、本実施の形態に係る駆動制御回路100による、上述した駆動制御に追加することが可能な第2の立ち上がり制御について説明する。図5に示したように、駆動信号生成部10は、各通電期間の信号をPWM信号で生成することができる。これにより、リニア振動モータ200の性能に合わせて、駆動能力を調整することができる。
【0084】
第2の立ち上がり制御は、各通電期間の信号がPWM信号で生成されることを前提する。駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間に生成するPWM信号のデューティ比を、リニア振動モータ200の定常動作時において各通電期間に生成するPWM信号のデューティ比より高く設定する。たとえば、駆動信号生成部10は、リニア振動モータ200の駆動開始後、上記駆動信号の少なくとも最初の通電期間に生成するPWM信号のデューティ比を1に設定してもよい。
【0085】
定常動作時において各通電期間に生成されるPWM信号のデューティ比より、高いデューティ比のPWM信号が生成される通電期間は、最初の通電期間のみであってもよいし、最初の通電期間からm(mは自然数)番目までの通電期間であってもよい。後者の場合、最初の通電期間からm番目の通電期間に近づくにしたがって、各通電期間に生成されるPWM信号のデューティ比を下げていってもよい。
【0086】
また、定常動作時において各通電期間に生成されるPWM信号のデューティ比より、高いデューティ比のPWM信号が生成される期間、駆動信号生成部10は、上記駆動信号の周期幅の調整処理を停止してもよい。その場合、誘起電圧検出部30およびゼロクロス検出部40による上記誘起電圧のゼロクロス検出処理も停止してもよい。
【0087】
第1の立ち上がり制御および第2の立ち上がり制御は、それぞれ単独で用いられてもよいし、併用されてもよい。以下、第1の立ち上がり制御および第2の立ち上がり制御の少なくとも一方が採用される場合の、デコーダ14の構成例を説明する。
【0088】
図9は、立ち上がり制御機能が追加されたデコーダ14の構成例を示す図である。図9に示すデコーダ14は、図5に示したデコーダ14に立上がり制御部60が追加された構成である。第1の立ち上がり制御を実行する場合、立上がり制御部60は、メインカウンタ12から正駆動信号生成部58および負駆動信号生成部59に入力されるカウント値を補正する。
【0089】
たとえば、通電期間の前に設定すべき非通電期間幅をゼロに設定する場合、立上がり制御部60は、定常動作時において各通電期間の前に設定されるべき非通電期間幅に対応するカウント幅を、メインカウンタ12から入力されるカウント値に加算する。これにより、正駆動信号生成部58および負駆動信号生成部59は、正電流通電期間および負電流通電期間のそれぞれの前に設定すべき非通電期間を省略することができる。
【0090】
なお、同様の処理は、通電期間の前に設定すべき非通電期間幅をゼロに設定する期間、メインカウンタ12のカウント初期値を、定常動作期間のカウント初期値に上記カウント幅を加算した値に設定することによっても実行することができる。本実施の形態では、メインカウンタ12のカウント初期値を、上記100度通電開始時のカウント値に設定する。この処理は、デコーダ14外の図示しない別の立ち上がり制御部により実行されてもよい。
【0091】
第2の立ち上がり制御を実行する場合、立上がり制御部60は、正駆動信号生成部58および負駆動信号生成部59に、上記駆動信号の少なくとも最初の通電期間に生成するPWM信号のデューティ比を設定する。その際、定常動作時において各通電期間に生成するPWM信号のデューティ比より高いデューティ比を設定する。
【0092】
図10は、第1の立ち上がり制御を説明するための図である。図10(a)は、第1の立ち上がり制御が実行されない場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図であり、図10(b)は、第1の立ち上がり制御が実行された場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図である。
【0093】
図10(a)、図10(b)では、駆動信号の二周期目でリニア振動モータ200の振動が所望のレベル(すなわち、定常動作時のレベル)に到達する例を描いている。図10(b)では、駆動信号生成部10は、上記駆動信号の最初の通電期間の前に設定すべき非通電期間幅をゼロに設定している。
【0094】
図10(a)内の期間t1は、第1の立ち上がり制御が実行されない場合の、駆動開始時から振動が所望のレベルに到達するまでの期間を示し、図10(b)内の期間t2は、第1の立ち上がり制御が実行された場合の、駆動開始時から振動が所望のレベルに到達するまでの期間を示す。期間t1と期間t2とを比較すると、期間t2のほうが短く、第1の立ち上がり制御が実行されることにより、駆動開始時から振動が所望のレベルに到達するまでの期間が短縮されることが分かる。
【0095】
図11は、第2の立ち上がり制御を説明するための図である。図11(a)は、第2の立ち上がり制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図11(b)は、第2の立ち上がり制御が実行された場合の、コイル駆動電圧の推移を示す図である。図11(a)では、駆動信号生成部10は、駆動開始後、最初の通電期間の信号から各通電期間の信号をPWM信号で生成している。図11(b)では、駆動信号生成部10は、駆動開始後、最初の通電期間の信号を非PWM信号で生成し、二周期目以降の通電期間の信号をPWM信号で生成している。
【0096】
以上説明したように第1の立ち上がり制御を採用すれば、駆動開始からコイルL1に通電されるまでの時間を短縮することができ、リニア振動モータ200の駆動開始時から所望の振動が得られるまでの立ち上がり時間を短縮することができる。また、第2の立ち上がり制御を採用すれば、立ち上がり時の駆動力を定常動作時の駆動力より高めることができ、当該立ち上がり時間を短縮することができる。
【0097】
(停止制御)
以下、本実施の形態に係る駆動制御回路100による、上述した駆動制御に追加することが可能な停止制御について説明する。駆動信号生成部10は、リニア振動モータ200の駆動終了後、その駆動時に生成していた駆動信号の位相に対して逆位相の駆動信号を生成する。駆動部20は、駆動信号生成部10により生成された逆位相の駆動信号に応じた逆位相の駆動電流をコイルL1に供給することにより、リニア振動モータ200の停止を早める。コイルL1に当該逆位相の駆動電流が供給されると、固定子210は振動子220の動きを止めるためのブレーキ作用を発揮する。本明細書では、リニア振動モータ200の駆動終了時とは、停止制御のための逆駆動期間を含まない正規の駆動終了時を意味することとする。
【0098】
駆動信号生成部10は、リニア振動モータ200の駆動終了後に生成する逆位相の駆動信号の、各通電期間の信号をPWM信号で生成してもよい。このPWM信号のデューティ比を調整することにより、ブレーキ力を柔軟に調整することができる。
【0099】
上述したように、駆動信号生成部10は、各通電期間の信号をPWM信号で生成することができる。各通電期間の信号がPWM信号で生成されることを前提とする場合、駆動信号生成部10は、以下の停止制御を採用することができる。すなわち、駆動信号生成部10は、リニア振動モータ200の駆動終了後における逆位相の駆動信号の通電期間に生成するPWM信号のデューティ比を、リニア振動モータ200の駆動時における駆動信号の各通電期間に生成するPWM信号のデューティ比より低く設定してもよい。
【0100】
また、駆動信号生成部10は、リニア振動モータ200の駆動終了後における逆位相の駆動信号の供給期間を、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて調整してもよい。たとえば、駆動信号生成部10は、上記駆動終了後における逆位相の駆動信号の供給期間を、上記駆動時における駆動信号の供給期間が短いほど、短く設定する。たとえば、上記逆位相の駆動信号の供給期間を、上記駆動時における駆動信号の供給期間に比例させる。なお、上記駆動時における駆動信号の供給期間が所定の基準期間を超えた領域では、上記逆位相の駆動信号の供給期間が固定であってもよい。上記駆動信号の供給期間は、駆動周期回数により特定されることが可能である。
【0101】
また、駆動信号生成部10は、リニア振動モータ200の駆動終了後における逆位相の駆動信号の通電期間に生成するPWM信号のデューティ比を、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて調整してもよい。たとえば、駆動信号生成部10は、当該PWM信号のデューティ比を、上記駆動時における駆動信号の供給期間が短いほど、低く設定する。たとえば、当該PWM信号のデューティ比を、上記駆動時における駆動信号の供給期間に比例させる。なお、上記駆動時における駆動信号の供給期間が所定の基準期間を超えた領域では、上記PWM信号のデューティ比が固定であってもよい。
【0102】
図12は、停止制御機能が追加されたデコーダ14の構成例を示す図である。図12に示すデコーダ14は、図5に示したデコーダ14に停止制御部61が追加された構成である。停止制御部61は、リニア振動モータ200の駆動が終了すると、その駆動時に生成していた駆動信号の位相に対して逆位相の駆動信号を生成するよう正駆動信号生成部58および負駆動信号生成部59に指示する。その際、当該逆位相の駆動信号の、通電期間の信号をPWM信号で生成するよう指示してもよい。
【0103】
また、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて、上記逆位相の駆動信号の供給期間を調整する場合、停止制御部61は、ループカウンタ13から、カウントループ回数(すなわち、駆動周期回数)の供給を受ける。停止制御部61は、この駆動周期回数を反映した、上記逆位相の駆動信号を生成するよう正駆動信号生成部58および負駆動信号生成部59に指示する。リニア振動モータ200の駆動時における駆動信号の供給期間に応じて、上記PWM信号のデューティ比を調整する場合も同様である。
【0104】
図13は、上記停止制御の基本概念を説明するための図である。図13(a)は、停止制御が実行されない場合の、コイル駆動電圧の推移を示す図であり、図13(b)は、停止制御が実行された場合の、コイル駆動電圧の推移を示す図であり、図13(c)は、停止制御がPWM信号により実行された場合の、コイル駆動電圧の推移を示す図である。
【0105】
図13(b)、図13(c)では、駆動終了後の逆位相の駆動信号の周期が一回の例を描いているが、複数回であってもよい。複数回の場合であって、当該駆動信号の通電期間の信号がPWM信号で生成される場合、当該逆位相の駆動信号の周期が進むにつれ、当該PWM信号のデューティ比を下げていってもよい。
【0106】
図14は、上記停止制御において逆位相の駆動信号の周期回数が固定の例を説明するための図である。図14(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図であり、図14(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図である。
【0107】
図14では、駆動終了後に生成される逆位相の駆動信号の周期回数が2に固定されている例を描いている。図14(a)は駆動時の駆動信号の周期回数が4の例を描いており、図14(b)は駆動時の駆動信号の周期回数が2の例を描いている。図14(a)では、逆位相の駆動信号を二周期分、コイルL1に供給することにより、リニア振動モータ200の駆動終了後、リニア振動モータ200の振動が早く収束していくことが分かる。
【0108】
一方、図14(b)では、逆位相の駆動信号を二周期分、コイルL1に供給することにより、リニア振動モータ200の駆動終了後、リニア振動モータ200の振動が早く収束するが、その後、逆位相の振動が発生している(楕円囲み参照)。これは、リニア振動モータ200の駆動時の振動に対して、過剰なブレーキ力を与えていることを意味する。
【0109】
図15は、上記停止制御において逆位相の駆動信号の周期回数が可変の例を説明するための図である。図15(a)は、駆動時の駆動信号の周期回数が多い場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図であり、図15(b)は、駆動時の駆動信号の周期回数が少ない場合の、コイル駆動電圧およびリニア振動モータ200の振動の推移を示す図である。
【0110】
図15(a)は図14(a)と同じ図である。図15(b)は駆動時の駆動信号の周期回数が2で、駆動終了後に生成される逆位相の駆動信号の周期回数が1の例を描いている。図15(b)では、逆位相の駆動信号を一周期分、コイルL1に供給することにより、リニア振動モータ200の駆動終了後、リニア振動モータ200の振動が早く収束していくことが分かる。図14(b)と比較し、図15(b)では、リニア振動モータ200に逆位相の振動が発生しないことが分かる。
【0111】
図14では、リニア振動モータ200の駆動終了前の、リニア振動モータ200の振動の強さが考慮されずに、固定のブレーキ力が供給されていた。したがって、そのブレーキ力が過剰であったり、過小であったりする場合が発生する。これに対し、図15では、リニア振動モータ200の振動の強さを反映したブレーキ力を供給することにより、最適な停止制御を実現することができる。
【0112】
以上説明したように上述した停止制御を採用すれば、リニア振動モータ200の駆動終了時における振動停止時間を短縮することができる。また、上記逆位相の駆動信号の、通電期間の信号をPWM信号で生成することにより、ブレーキ力を柔軟に設定することができる。また、上記逆位相の駆動信号の供給期間を、リニア振動モータ200の駆動時における駆動信号の供給期間に応じて調整することにより、当該駆動時における駆動信号の供給期間の長短に関わらず、最適な停止制御を実現することができる。ハプティクス用途において、振動を急峻に変化させることによって、ユーザは接触による振動を体感しやすい。上述した停止制御を採用することによって、振動を急峻に変化させることができる。
【0113】
(検出窓設定)
つぎに、ゼロクロス検出部40が、上記誘起電圧以外の電圧のゼロクロスの検出を回避するための検出窓を設定する例について説明する。ゼロクロス検出部40は、当該検出窓内で検出されたゼロクロスを有効とし、当該検出窓外で検出されたゼロクロスを無効とする。ここで、上記誘起電圧以外の電圧のゼロクロスとは、主に、駆動信号生成部10から通電される駆動電圧のゼロクロス、および回生電圧のゼロクロスである(図3参照)。したがって、当該検出窓は原則的に、正(負)電流通電期間と負(正)電流通電期間との間に設定された非通電期間を、内側に狭くした期間に設定される。
【0114】
その際、当該非通電期間から少なくとも回生電流が流れる期間が除かれる必要がある。ただし、上記検出窓を狭く設定しすぎると、正規の誘起電圧のゼロクロスを検出できない可能性が高まる。そこで、上記誘起電圧以外の電圧のゼロクロスを検出する可能性と、正規の誘起電圧のゼロクロスを検出できない可能性とのトレードオフ関係を考慮し、上記検出窓の期間が決定される。
【0115】
つぎに、上記検出窓内にてゼロクロスが検出されなかった場合について説明する。この場合において、ゼロクロス検出部40は、上記検出窓の開始位置にて上記誘起電圧のゼロクロスが既に終了している場合、上記検出窓の開始位置近傍にゼロクロスが検出されたと仮定し、仮定したゼロクロスの検出位置を駆動信号生成部10に供給する。上記検出窓の開始位置にて既に上記誘起電圧のゼロクロスが終了している場合とは、上記検出窓の開始位置にてコイルL1の両端電圧がゼロクロス後の極性にある場合である。図3に示した例では、上記検出窓の開始位置にてコイルL1の両端電圧が正の場合である。
【0116】
また、ゼロクロス検出部40は、上記検出窓内にてゼロクロスが検出されなかった場合であって、上記検出窓の終了位置にて上記誘起電圧のゼロクロスが終了していない場合、上記検出窓の終了位置近傍にゼロクロスが検出されたと仮定し、仮定したゼロクロスの検出位置を駆動信号生成部10に供給する。上記検出窓の終了位置にて上記誘起電圧のゼロクロスが終了していない場合とは、上記検出窓の終了位置にてコイルL1の両端電圧がゼロクロス前の極性にある場合である。以下、これらの処理を実現するためのゼロクロス検出部40の構成例を説明する。
【0117】
図16は、検出窓設定機能を持つゼロクロス検出部40の構成を示す図である。図16に示すゼロクロス検出部40は、図1に示したゼロクロス検出部40に検出窓設定部43および出力制御部44が追加された構成である。検出窓設定部43は、出力制御部44に検出窓を設定するための信号を供給する。より具体的には、検出窓信号2および検出窓開始信号を供給する。
【0118】
図17は、検出窓信号1、検出窓信号2および検出窓開始信号を説明するための図である。検出窓信号1は、上述した知見にもとづき生成された信号である。すなわち、非通電期間を内側に狭めた検出窓が設定された信号である。検出窓信号2は、検出窓信号1と比較し、検出窓の終了位置が、後続する通電期間の開始位置を含む位置まで延伸された信号である。これにより、コンパレータ41は、上記誘起電圧のゼロクロスだけでなく、当該通電期間に供給される駆動電圧のゼロクロスによっても、出力を反転させる。検出窓開始信号は、検出窓の開始位置を示す信号である。より具体的には、当該検出窓の開始位置にエッジが立っている信号である。
【0119】
図16に戻り、出力制御部44は、上記検出窓の開始位置にてコンパレータ41の出力が反転していない場合、エッジ検出部42により検出されたエッジ位置を、ゼロクロスの検出位置として駆動信号生成部10(より厳密には第2ラッチ回路15)に供給する。出力制御部44は、上記検出窓の開始位置にてコンパレータ41の出力が既に反転している場合、上記検出窓の開始位置を、ゼロクロスの検出位置として駆動信号生成部10(より厳密には第2ラッチ回路15)に供給する。以下、これらの処理を実現するための出力制御部44の構成例を説明する。
【0120】
図18は、出力制御部44の構成例を示す図である。当該出力制御部44は、第1ANDゲート71、第2ANDゲート72およびORゲート73を含む。第1ANDゲート71には、上記検出窓開始信号およびコンパレータ41の出力信号が入力される。第1ANDゲート71は、両者がハイレベル信号のときハイレベル信号を出力し、少なくとも一方がローレベル信号のときローレベル信号を出力する。より具体的には、第1ANDゲート71は、上記検出窓の開始位置で、コンパレータ41の出力が既に反転している場合、ハイレベル信号を出力する。
【0121】
第2ANDゲート72には、上記検出窓信号2およびエッジ検出部42の出力信号が入力される。第2ANDゲート72は、両者がハイレベル信号のときハイレベル信号を出力し、少なくとも一方がローレベル信号のときローレベル信号を出力する。より具体的には、第2ANDゲート72は、上記検出窓内にて、エッジ検出部42の出力信号にエッジが立ったときハイレベル信号を出力する。
【0122】
ORゲート73には、第1ANDゲート71の出力信号および第2ANDゲート72の出力信号が入力される。ORゲート73は、両者の出力信号をもとにエッジ信号を出力する。ORゲート73は、両者の出力信号のいずれか一方がハイレベル信号のときハイレベル信号を出力し、両者の出力信号がともにローレベル信号のときローレベル信号を出力する。より具体的には、ORゲート73は、上記検出窓の開始位置で、コンパレータ41の出力が既に反転している場合、ハイレベル信号を出力する。上記検出窓の開始位置で、コンパレータ41の出力が反転していない場合、上記検出窓内にて、エッジ検出部42の出力信号にエッジが立ったときハイレベル信号を出力する。
【0123】
図19は、検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)の動作を説明するための図である。図19(a)は、誘起電圧のゼロクロスが検出窓内に発生した場合の、コイルL1の両端電圧およびエッジ信号の推移を示し、図19(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示し、図19(c)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示す図である。
【0124】
検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)では、出力制御部44が、図18に示した第2ANDゲート72のみで構成される。その第2ANDゲート72には、検出窓信号1とエッジ検出部42の出力信号とが入力される。
【0125】
図19(a)では、検出窓信号1により設定される検出窓内で、誘起電圧のゼロクロスが発生するため、そのゼロクロスが発生した位置で、エッジ信号にエッジが立つ。なお、当該検出窓が設定されているため、回生電圧のゼロクロスが発生した位置では、当該エッジ信号にエッジが立たない。
【0126】
図19(b)では、リニア振動モータ200の共振周波数が上記駆動信号の周波数より高く、その差が比較的大きい状態を示している。したがって、上記検出窓内で、上記誘起電圧のゼロクロスを生成すべきリニア振動モータ200の停止状態(すなわち、振動レンジのS極側最大到達地点またはN極側最大到達地点に位置する)が発生しない。上記検出窓に入った時点で、その停止状態が終了している。この場合、検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)では、エッジ信号にエッジが立たない(楕円囲み参照)。
【0127】
図19(c)では、リニア振動モータ200の共振周波数が上記駆動信号の周波数より低く、その差が比較的大きい状態を示している。したがって、上記検出窓内で、上記誘起電圧のゼロクロスを生成すべきリニア振動モータ200の停止状態が発生しない。上記検出窓から出た後に、その停止状態が発生している。この場合、検出窓信号1を使用するゼロクロス検出部40(検出窓開始信号未使用)では、エッジ信号にエッジが立たない(楕円囲み参照)。
【0128】
図20は、検出窓信号2および検出窓開始信号を使用するゼロクロス検出部40の動作を説明するための図である。図20(a)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数<共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示し、図20(b)は、誘起電圧のゼロクロスが検出窓内で発生しない場合(駆動周波数>共振周波数)の、コイルL1の両端電圧およびエッジ信号の推移を示す図である。
【0129】
検出窓信号2および検出窓開始信号を使用するゼロクロス検出部40では、図18に示した出力制御部44が用いられる。図20(a)に示すコイルL1の両端電圧の推移は、図19(b)に示したコイルL1の両端電圧の推移と同様である。図20(b)に示すコイルL1の両端電圧の推移は、図19(c)に示したコイルL1の両端電圧の推移と同様である。
【0130】
図20(a)では、図18に示した第1ANDゲート71およびORゲート73の作用により、検出窓の開始位置で、エッジ信号にエッジが立つ。図20(b)では、検出窓の終了位置を延伸した作用により、正電流通電開始位置で、エッジ信号にエッジが立つ。
【0131】
以上説明したように上記検出窓を設定することにより、リニア振動モータの固有振動数と駆動信号の周波数とが一致するよう、駆動信号の周期幅を適応的に制御する際、コイルL1に発生する誘起電圧のゼロクロスの検出精度を高めることができる。すなわち、駆動電圧や回生電圧のゼロクロスを、誤って検出することを抑制することができる。
【0132】
検出窓を設定した場合にて、リニア振動モータ200の共振周波数と駆動信号の周波数とに大きなずれが発生すると、誘起電圧のゼロクロスが検出窓から外れてしまうことがある。本実施の形態では、検出窓の開始位置近傍または終了位置近傍に、仮のエッジを立てることにより、上記駆動信号の周期幅の適応制御を、途切れることなく継続することができる。リニア振動モータ200の共振周波数と駆動信号の周波数とが大きく離れていても、その仮のエッジにより、両者を徐々に近づけることができる。
【0133】
このように、リニア振動モータ200の共振周波数と駆動信号の周波数とが一致するよう、常時、適応制御が実行されることにより、駆動制御回路100内の基本クロックを生成する内蔵発振子の精度が低下しても、内蔵発振子の周波数をトリミングする必要がなく、ドライバIC(駆動制御回路100)の製造原価低減に大きく寄与する。
【0134】
また、検出窓の終了位置近傍に立てる仮のエッジを、非通電期間に後続する通電期間の立ち上がりを利用することにより、信号制御を簡素化することができる。上記検出窓開始位置信号など、検出窓信号以外の信号を用いる必要がない。
【0135】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0136】
上述した第2の立ち上がり制御は、非通電期間が含まれない駆動信号により、リニア振動モータ200を駆動する駆動制御回路にも適用可能である。当該駆動信号は、正電流通電期間と負電流通電期間とが非通電期間を挟まずに、交互に設定される信号である。すなわち、上述した第2の立ち上がり制御は、上述した駆動信号の周期幅の適応制御を実行しない駆動制御回路にも適用可能である。上述した停止制御も、同様に、非通電期間が含まれない駆動信号により、リニア振動モータ200を駆動する駆動制御回路にも適用可能である。すなわち、上述した駆動信号の周期幅の適応制御を実行しない駆動制御回路にも適用可能である。
【符号の説明】
【0137】
100 駆動制御回路、 10 駆動信号生成部、 14 デコーダ、 16 差分算出回路、 18 加算回路、 20 駆動部、 30 誘起電圧検出部、 40 ゼロクロス検出部、 200 リニア振動モータ、 210 固定子、 L1 コイル、 220 振動子。
【特許請求の範囲】
【請求項1】
固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、
前記コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、
前記駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、前記コイルに供給する駆動部と、
前記非通電期間において、前記コイルに発生する誘起電圧を検出する誘起電圧検出部と、
前記誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備え、
前記駆動信号生成部は、前記ゼロクロスの検出位置から前記リニア振動モータの固有振動数を推定し、前記駆動信号の周波数を、当該固有振動数に近づけ、
前記駆動信号生成部は、前記駆動信号の周波数の変更によりその周期幅が変更されても、前記駆動信号の通電期間と非通電期間との比が維持されるよう、前記駆動信号を調整することを特徴とするリニア振動モータの駆動制御回路。
【請求項2】
前記駆動信号生成部は、
前記駆動信号の一周期の終了位置に対応すべきカウント終了値が設定され、カウント初期値から当該カウント終了値までを繰り返しカウントするカウンタと、
前記カウンタから供給されるカウント値を用いて、前記カウント終了値に対応する周期幅の駆動信号を生成するデコーダと、
前記カウンタから供給されるカウント値をラッチし、前記ゼロクロスが検出された位置でラッチしたカウント値を出力するラッチ回路と、
前記ラッチ回路から入力されるカウント値と、現在のカウント終了値との差分を算出する差分算出回路と、
前記差分算出回路により算出された差分を、現在のカウント終了値に加算する加算回路と、を含み、
前記加算回路により生成された値が新たなカウント終了値として、前記カウンタおよび前記デコーダに設定され、
前記デコーダは、前記カウント終了値に、前記駆動信号の一周期に対する通電期間の比率を一定にするための係数を乗算して得られる値に応じて、前記駆動信号の通電期間に対応するカウント幅を決定することを特徴とする請求項1に記載のリニア振動モータの駆動制御回路。
【請求項3】
前記駆動信号生成部は、前記駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、前記駆動信号を調整することを特徴とする請求項1に記載のリニア振動モータの駆動制御回路。
【請求項4】
固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、
前記コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、
前記駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、前記コイルに供給する駆動部と、
前記非通電期間において、前記コイルに発生する誘起電圧を検出する誘起電圧検出部と、
前記誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備え、
前記駆動信号生成部は、前記ゼロクロスの検出位置から前記リニア振動モータの固有振動数を推定し、前記駆動信号の周波数を、当該固有振動数に近づけ、
前記駆動信号生成部は、前記駆動信号の周波数の変更により前記駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、前記駆動信号を調整することを特徴とするリニア振動モータの駆動制御回路。
【請求項5】
前記駆動信号生成部は、
前記駆動信号の一周期の終了位置に対応すべきカウント終了値が設定され、カウント初期値から当該カウント終了値までを繰り返しカウントするカウンタと、
前記カウンタから供給されるカウント値を用いて、前記カウント終了値に対応する周期幅の駆動信号を生成するデコーダと、
前記カウンタから供給されるカウント値をラッチし、前記ゼロクロスが検出された位置でラッチしたカウント値を出力するラッチ回路と、
前記ラッチ回路から入力されるカウント値と、現在のカウント終了値との差分を算出する差分算出回路と、
前記差分算出回路により算出された差分を、現在のカウント終了値に加算する加算回路と、を含み、
前記加算回路により生成された値が新たなカウント終了値として、前記カウンタおよび前記デコーダに設定され、
前記デコーダは、前記カウント終了値に、前記駆動信号の通電期間の中心位置を決定するための係数を乗算して得られる値に応じて、前記駆動信号の通電期間の開始位置および終了位置に対応するカウント値を決定することを特徴とする請求項3または4に記載のリニア振動モータの駆動制御回路。
【請求項1】
固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、
前記コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、
前記駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、前記コイルに供給する駆動部と、
前記非通電期間において、前記コイルに発生する誘起電圧を検出する誘起電圧検出部と、
前記誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備え、
前記駆動信号生成部は、前記ゼロクロスの検出位置から前記リニア振動モータの固有振動数を推定し、前記駆動信号の周波数を、当該固有振動数に近づけ、
前記駆動信号生成部は、前記駆動信号の周波数の変更によりその周期幅が変更されても、前記駆動信号の通電期間と非通電期間との比が維持されるよう、前記駆動信号を調整することを特徴とするリニア振動モータの駆動制御回路。
【請求項2】
前記駆動信号生成部は、
前記駆動信号の一周期の終了位置に対応すべきカウント終了値が設定され、カウント初期値から当該カウント終了値までを繰り返しカウントするカウンタと、
前記カウンタから供給されるカウント値を用いて、前記カウント終了値に対応する周期幅の駆動信号を生成するデコーダと、
前記カウンタから供給されるカウント値をラッチし、前記ゼロクロスが検出された位置でラッチしたカウント値を出力するラッチ回路と、
前記ラッチ回路から入力されるカウント値と、現在のカウント終了値との差分を算出する差分算出回路と、
前記差分算出回路により算出された差分を、現在のカウント終了値に加算する加算回路と、を含み、
前記加算回路により生成された値が新たなカウント終了値として、前記カウンタおよび前記デコーダに設定され、
前記デコーダは、前記カウント終了値に、前記駆動信号の一周期に対する通電期間の比率を一定にするための係数を乗算して得られる値に応じて、前記駆動信号の通電期間に対応するカウント幅を決定することを特徴とする請求項1に記載のリニア振動モータの駆動制御回路。
【請求項3】
前記駆動信号生成部は、前記駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、前記駆動信号を調整することを特徴とする請求項1に記載のリニア振動モータの駆動制御回路。
【請求項4】
固定子と振動子とを有し、両者の少なくとも一方は電磁石で構成され、この電磁石のコイルに駆動電流を供給して、振動子を固定子に対して振動させるリニア振動モータの駆動制御回路であって、
前記コイルに正電流と負電流とを非通電期間を挟んで交互に流すための駆動信号を生成する駆動信号生成部と、
前記駆動信号生成部により生成された駆動信号に応じた駆動電流を生成し、前記コイルに供給する駆動部と、
前記非通電期間において、前記コイルに発生する誘起電圧を検出する誘起電圧検出部と、
前記誘起電圧検出部により検出された誘起電圧のゼロクロスを検出するゼロクロス検出部と、を備え、
前記駆動信号生成部は、前記ゼロクロスの検出位置から前記リニア振動モータの固有振動数を推定し、前記駆動信号の周波数を、当該固有振動数に近づけ、
前記駆動信号生成部は、前記駆動信号の周波数の変更により前記駆動信号の周期幅が変更されても、一周期における通電期間の信号位相の相対的位置関係が維持されるよう、前記駆動信号を調整することを特徴とするリニア振動モータの駆動制御回路。
【請求項5】
前記駆動信号生成部は、
前記駆動信号の一周期の終了位置に対応すべきカウント終了値が設定され、カウント初期値から当該カウント終了値までを繰り返しカウントするカウンタと、
前記カウンタから供給されるカウント値を用いて、前記カウント終了値に対応する周期幅の駆動信号を生成するデコーダと、
前記カウンタから供給されるカウント値をラッチし、前記ゼロクロスが検出された位置でラッチしたカウント値を出力するラッチ回路と、
前記ラッチ回路から入力されるカウント値と、現在のカウント終了値との差分を算出する差分算出回路と、
前記差分算出回路により算出された差分を、現在のカウント終了値に加算する加算回路と、を含み、
前記加算回路により生成された値が新たなカウント終了値として、前記カウンタおよび前記デコーダに設定され、
前記デコーダは、前記カウント終了値に、前記駆動信号の通電期間の中心位置を決定するための係数を乗算して得られる値に応じて、前記駆動信号の通電期間の開始位置および終了位置に対応するカウント値を決定することを特徴とする請求項3または4に記載のリニア振動モータの駆動制御回路。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2011−152533(P2011−152533A)
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願番号】特願2010−17393(P2010−17393)
【出願日】平成22年1月28日(2010.1.28)
【出願人】(000001889)三洋電機株式会社 (18,308)
【出願人】(506227884)三洋半導体株式会社 (1,155)
【Fターム(参考)】
【公開日】平成23年8月11日(2011.8.11)
【国際特許分類】
【出願日】平成22年1月28日(2010.1.28)
【出願人】(000001889)三洋電機株式会社 (18,308)
【出願人】(506227884)三洋半導体株式会社 (1,155)
【Fターム(参考)】
[ Back to top ]