(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【0011】
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【0012】
また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。
【0013】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【0014】
(実施の形態1)
《モータシステムの概略》
図1は、本発明の実施の形態1によるモータシステムにおいて、その概略構成例を示す機能ブロック図である。
図1には、モータシステムの一例として、ハードディスク(以降、HDDと略す)装置の構成例が示される。
図1のHDD装置は、HDDコントローラHDDCT、キャッシュメモリCMEM、リードライト装置RWIC、モータ駆動装置MDIC、およびディスク機構DSKMを備える。HDDコントローラHDDCTは、例えば、プロセッサ等を含んだシステムオンチップ(SoC)等で構成される。キャッシュメモリCMEMおよびリードライト装置RWICは、例えば、それぞれ異なる半導体チップで構成される。
【0015】
ディスク機構DSKMは、ディスク(ここではハードディスク)DSK、3相のスピンドルモータ(以降、モータと略す)SPM、ヘッドHD、アーム機構AM、ボイスコイルモータVCM、およびランプ機構RMPを備える。モータSPMは、ディスクDSKを回転駆動する。ボイスコイルモータVCMは、ディスクDSKの径方向におけるヘッドHDの位置をアーム機構AMを介して制御する。ヘッドHDは、ボイスコイルモータVCMによって定められる所定の位置において、ディスクDSK上にデータの読み書きを行う。ランプ機構RMPは、データの読み書きが実行されない場合の、ヘッドHDの退避箇所となる。
【0016】
モータ駆動装置MDICは、例えば、1個の半導体チップで構成される。モータ駆動装置MDICは、ボイスコイルモータVCMを駆動するため、ディジタル・アナログ変換器DACおよびVCM駆動部VCMDVを備える。また、モータ駆動装置MDICは、モータSPMを駆動するため、SPM制御部SPMCT、サンプルホールド回路SH、センスアンプ回路SA、アナログ・ディジタル変換器ADC、SPM駆動部SPMDV、および回転位置検出部RPSDETを備える。さらに、モータ駆動装置MDICは、モータSPMやボイスコイルモータVCMの駆動条件等を設定するため、シリアルIF&レジスタ部SIFREGを備える。
【0017】
リードライト装置RWICは、ヘッドHDを駆動し、ヘッドHDにデータの読み書きを行わせる。HDDコントローラHDDCTは、HDD装置全体の制御を行う。HDDコントローラHDDCTは、例えば、モータ駆動装置MDICのシリアルIF&レジスタ部SIFREGとの間で通信を行うことで、モータ駆動装置MDICにモータSPMやボイスコイルモータVCMの駆動条件等を指示する。また、HDDコントローラHDDCTは、例えば、リードライト装置RWICに対し、データの読み書きを指示する。この際に、リードライト装置RWICに対して指示する書き込みデータや、ヘッドHDからリードライト装置RWICを介して読み出されたデータは、キャッシュメモリCMEMに保持される。
【0018】
次に、当該HDD装置の全体動作について簡単に説明する。まず、モータ駆動装置MDICは、HDDコントローラHDDCTからモータSPMの起動指令を受信すると、SPM制御部SPMCTで生成されるPWM(Pulse Width Modulation)信号を用いて、SPM駆動部SPMDVを介してモータSPMを駆動する。電流検出用抵抗RNFは、モータSPMの駆動電流を検出する。
【0019】
当該モータSPMの駆動電流は、サンプルホールド回路SH、センスアンプ回路SA、およびアナログ・ディジタル変換器ADCでディジタル値に変換される。SPM制御部SPMCTは、当該駆動電流の電流検出値(ディジタル値)と、駆動電流の目標値となる電流指示値との誤差に基づき、当該誤差を低減するためのPWM信号を生成する。電流指示値は、例えば、HDDコントローラHDDCTによって指示される。
【0020】
回転位置検出部RPSDETは、例えば、モータSPMの逆起電圧(本明細書ではBEMFと呼ぶ)を検出することで、モータSPMの回転位置を検出する。SPM制御部SPMCTは、このモータSPMの回転位置に応じた適切なタイミングで、モータSPMの駆動電流の値を電流指示値に近づけるためのPWM信号をSPM駆動部SPMDVに出力することで、モータSPM(すなわちディスクDSK)を定格回転制御する。モータSPMが定格回転の状態に到達したのち、VCM駆動部VCMDVは、ヘッドHDをディスクDSK上に移動し、ヘッドHDは、ディスクDSK上でデータの読み書きを行う。
【0021】
このようなモータシステムは、高効率化に加えて、低騒音化および低振動化が求められる。特に、HDD装置では、記録密度の向上や、サーボライトによる位置決め精度の向上等の観点から低振動化が重要となる。そこで、後述する実施の形態1のモータ駆動装置を用いることが有益となる。
【0022】
《モータ駆動装置(比較例[1])の概略構成および概略動作》
まず、実施の形態1のモータ駆動装置の説明に先立ち、比較例[1]となるモータ駆動装置について説明する。
図18は、本発明の比較例[1]となるモータ駆動装置の主要部の構成例を示す機能ブロック図である。
図19は、
図18におけるSPM駆動部の構成例を示す回路ブロック図である。
図20(a)、
図20(b)、
図20(c)および
図21は、
図18における正弦波駆動電圧制御部の動作原理を示す説明図である。
【0023】
図18には、
図1のモータ駆動装置MDICの内、SPM制御部SPMCT、SPM駆動部SPMDV、回転位置検出部RPSDET、シリアルIF&レジスタ部SIFREG、サンプルホールド回路SH、センスアンプ回路SA、およびアナログ・ディジタル変換器ADCが抽出して示される。また、併せて、モータ駆動装置MDICの外部に設けられる電流検出用抵抗RNFと、ディスク機構DSKM内のモータSPMとが示される。
【0024】
前述したように、電流検出用抵抗RNFは、モータSPMの駆動電流の検出および電圧変換を行い、サンプルホールド回路SHは、当該検出電圧を所定のタイミングで逐次保持する。具体的には、サンプルホールド回路SHは、モータSPMの3相(u相、v相、w相)毎の駆動電流を検出できるタイミングでサンプリングを行うことで、各相の駆動電流に比例する検出電圧を保持する。センスアンプ回路SAは、当該保持された検出電圧を増幅し、アナログ・ディジタル変換器ADCは、当該増幅された電圧をディジタル値に変換する。
【0025】
回転位置検出部RPSDETは、逆起電圧位相検出部BPHDと、駆動電流位相検出部IPHDとを有する。逆起電圧位相検出部BPHDは、モータSPMにおける各相の逆起電圧の位相(BEMF位相)をそれぞれ検出する。この例では、逆起電圧位相検出部BPHDは、相選択信号SELに応じて、BEMF位相の検出対象となる相を選択し、当該選択された相のBEMFの電圧ゼロクロス点を検出した際にゼロクロス検出信号ZXOUTを出力する。駆動電流位相検出部IPHDは、モータSPMにおける各相の駆動電流の位相をそれぞれ検出する。この例では、駆動電流位相検出部IPHDは、相選択信号SELに応じて検出対象となる相を選択し、当該選択された相の駆動電流位相θiを検出する。
【0026】
SPM制御部SPMCTは、位相誤差検出部PHED’と、PLL(Phase Locked Loop)制御部PLLCTと、駆動電圧位相生成部DVPHG’と、電流誤差検出部CERDET’と、PI補償器PICPと、PWM制御部PWMCTとを備える。PLL制御部PLLCTは、基準BEMF位相θbemfに同期する通電タイミング信号TIMをPLL制御によって生成する。例えば、3相中の1相(例えばu相)を基準相とした場合、当該基準相のBEMF位相(θbemf_U)が基準BEMF位相θbemfとなる。
【0027】
明細書では、基準相がu相である場合を例として説明を行う。ただし、基準相は、u相に限らず、v相またはw相であってもよく、場合によっては、3相のBEMF位相の平均的なBEMF位相等であってもよい。
【0028】
位相誤差検出部PHED’は、逆起電圧位相検出部BPHDで検出される基準相のBEMF位相(θbemf_U)(ここではゼロクロス検出信号ZXOUTの出力タイミング)に基づき、各相のBEMF位相と基準BEMF位相θbemfとの誤差を検出し、検出結果となる位相誤差信号ECNTを出力する。この際に、位相誤差検出部PHED’は、基準相のBEMF位相(θbemf_U)と基準BEMF位相θbemfとの誤差に基づく位相誤差信号ECNTをPLL制御部PLLCTへ出力する。PLL制御部PLLCTは、この位相誤差信号ECNTがゼロに収束するようにPLL制御を行うことで、基準BEMF位相θbemf(すなわち基準相のBEMF位相(θbemf_U))に同期する通電タイミング信号TIMを生成する。
【0029】
モータSPMの通電は、この通電タイミング信号TIMに基づき制御される。また、PLL制御部PLLCTは、回転周期カウント値NCNTを生成する。回転周期カウント値NCNTは、BEMFの1周期(すなわちモータSPMの回転周期)に比例する時間を、ディジタル制御の基準クロックのカウント値に換算した値であり、モータSPMの角周波数(ω)に反比例する値となる。
【0030】
電流誤差検出部CERDET’は、電流指示値SPNCRと、アナログ・ディジタル変換器ADCから出力されるディジタル値(すなわち、各相の駆動電流の電流検出値)との誤差を、減算器SB1を用いて検出する。電流指示値SPNCRは、前述したように、例えば、
図1のHDDコントローラHDDCTから指示される。HDDコントローラHDDCTは、例えば、回転周期カウント値NCNT等から得られるモータSPMの角周波数の情報を受け、所定の演算によって、当該角周波数を目標の角周波数に設定するための電流指示値SPNCRを生成する。
【0031】
PI補償器PICPは、電流誤差検出部CERDET’で検出される誤差値を入力として、比例(P)・積分(I)制御を行うことで、電流誤差を反映したPWMデューティ値PWMDを算出する。そして、PI補償器PICPは、このPWMデューティ値PWMDと、予め定められるPWM周期カウント数とを乗算することでPWMオンカウント数を算出する。PWM周期カウント数は、PWM信号の1周期の時間を、ディジタル制御の基準クロックのカウント値に換算した数であり、PWMオンカウント数は、PWM信号の1周期におけるオン期間を当該カウント値に換算した数である。
【0032】
PWM制御部PWMCTは、正弦波駆動電圧制御部SINCTと、出力制御部OUTCTとを備える。PWM制御部PWMCTは、概略的には、PLL制御部PLLCTからの基準BEMF位相θbemfに同期する通電タイミング信号TIMを受け、モータSPMに印加する3相の駆動電圧(Vu,Vv,Vw)を正弦波状に制御するためのPWM信号PWMON_MODu,PWMON_MODv,PWMON_MODwを生成する。
【0033】
正弦波駆動電圧制御部SINCTは、PI補償器PICPからのPWMオンカウント数を受け、モータSPMに対して3相の正弦波電圧を印加するために必要とされる、各PWM周期毎のデューティ指示値を生成する。デューティ指示値は、PWM周期内のオン期間の比率を表す。正弦波駆動電圧制御部SINCTは、具体的には、PWMパターン用のデューティ指示値PWMPを生成するPWMパターン生成部PPGと、ソフトパターン(SP1,SP2)用のデューティ指示値SOFTPを生成するソフトパターン生成部SPGとを備える。
【0034】
PWMパターン生成部PPGおよびソフトパターン生成部SPGは、
図20(a)、
図20(b)、
図20(c)および
図21に示すような原理でデューティ指示値を生成する。まず、
図20(a)には、モータSPMの駆動方式として所謂正弦波駆動方式(すなわちモータの駆動電流を正弦波状に制御する方式)を適用する場合において、モータSPMに印加される理想的な3相(u相、v相、w相)の各駆動電圧Vu,Vv,Vwが示される。当該駆動電圧Vu,Vv,Vwは、互いに位相が120deg異なる正弦波電圧となる。
【0035】
図20(b)には、
図20(a)に示した3相の駆動電圧Vu,Vv,Vwの内、電圧最小相を接地電源電圧GNDに固定した場合(本明細書ではGND固定と呼ぶ)の各相の電圧波形が示される。例えば、
図20(a)において、電気角210deg〜330degの期間ではu相が電圧最小相であり、
図20(b)では、当該期間において当該u相の駆動電圧VuにGND固定を適用した場合のv相およびw相の相対的な電圧波形が示される。
図20(c)には、
図20(b)の場合と同様にして、
図20(a)に示した3相の駆動電圧Vu,Vv,Vwの内、電圧最大相を電源電圧VMに固定した場合(本明細書ではVM固定と呼ぶ)の各相の電圧波形が示される。
【0036】
ここで、電気角60deg毎に、
図20(b)のGND固定と
図20(c)のVM固定とを交互に切り換えた場合、
図21に示すような電圧波形となる。
図21に示すように、正弦波駆動を行うためのu相(v相およびw相も同様)の駆動電圧Vuは、SP1パターン、PWMパターン、SP2パターンと、これらの各パターンの対称パターンと、VM固定およびGND固定とを適宜組み合わせることで作り出すことができる。
【0037】
具体的に説明すると、
図21に示した電気角0deg〜360degの期間は、例えば、PWM周期Tpwmの100周期程度の期間に対応する。
図21に示したPWM周期Tpwmでは、w相にGND固定を適用した状態で、u相にPWMパターンを適用し、v相にSP2対称パターンを適用すればよい。同様にして、各PWM周期では、3相の中のいずれか1相にGND固定またはVM固定を適用し、他の1相にPWMパターンまたはPWM対称パターンを適用し、残りの1相にSP1パターンまたはSP2パターンあるいはこれらの対称パターンを適用すればよい。
【0038】
このような原理に基づき、PWMパターン生成部PPGは、例えば、
図21に示したPWMパターンの電圧変動を実現するための、各PWM周期毎のデューティ指示値をテーブル等に予め保持しており、当該テーブルに基づきデューティ指示値PWMPを生成する。なお、デューティ指示値PWMPは、例えば、ディジタル制御の基準クロックに基づくカウント値で表される。
【0039】
また、当該テーブルには、例えば、正規化されたデューティ指示値(例えばカウント値)が保持されている。PWMパターン生成部PPGは、当該正規化されたデューティ指示値に、PI補償器PICPからのPWMオンカウント数に基づく重み付けを行ってデューティ指示値PWMPを生成する。その結果、PWMパターン生成部PPGは、前述した電流誤差を反映した上で、モータSPMを正弦波駆動するためのデューティ指示値PWMPを生成することができる。これに同様にして、ソフトパターン生成部SPGも、電流誤差を反映した上で、モータSPMを正弦波駆動するためのデューティ指示値SOFTPを生成することができる。
【0040】
出力制御部OUTCTは、PWMP用補正部PPCPと、SOFTP用補正部SPCP
と、PWM変調部PWMMDとを備える。PWMP用補正部PPCPは、SPM駆動部SPMDVの入出力間で生じるデューティの誤差を検出し、デューティ指示値PWMPに当該誤差を相殺する補正値を加えることで補正後デューティ指示値PWMRを生成する。具体的には、PWMP用補正部PPCPは、SPM駆動部SPMDVからの出力検出信号OUTDETから実際のデューティを検出し、これとデューティ指示値PWMPとの差分に基づいて補正値を定める。
【0041】
さらに、PWMP用補正部PPCPは、デューティ指示値PWMPがPWM補正パラメータKrevU,Lで定められるデューティよりも大きい場合には、所定の演算式に基づいて補正値を定める。すなわち、デューティ指示値PWMPが大きい場合には、トランジスタのオン・オフが不十分となることにより、デューティ指示値PWMPが小さい場合とは異なる補正値が必要とされる場合がある。PWMP用補正部PPCPは、当該補正値を演算式に基づいて定める。PWMP用補正部PPCPの場合と同様に、SOFTP用補正部SPCPは、デューティ指示値SOFTPに所定の補正値を加えることで補正後デューティ指示値SOFTRを生成する。
【0042】
このようにして、SPM駆動部SPMDVの入出力間で生じるデューティの誤差を補正することで、モータSPMに印加する正弦波電圧(その結果として生成される正弦波電流)の歪みを低減することができる。歪みを低減することで、モータのトルクリップルを低減でき、モータの低騒音化、低振動化等が図れる。
【0043】
PWM変調部PWMMDは、PLL制御部PLLCTからの通電タイミング信号TIMに基づいて、実際のモータSPMへの通電を制御する。具体的には、PWM変調部PWMMDは、
図21に示したように、60deg毎にGND固定とVM固定の切り換えを行う。この切り換えに応じて、PWM変調部PWMMDは、補正後デューティ指示値PWMR,SOFTRに基づき、u相用、v相用およびw相用のPWM信号PWMON_MODu,PWMON_MODv,PWMON_MODwをそれぞれ生成する。
【0044】
詳細には、PWM変調部PWMMDは、
図21の駆動方式に基づき、各PWM周期において、3相のPWM信号のいずれか1相をオン期間またはオフ期間に固定する(すなわちVM固定またはGND固定とする)。PWM変調部PWMMDは、他の1相のPWM信号のオン期間を補正後デューティ指示値PWMR,SOFTRの一方によって定め、残りの1相のPWM信号のオン期間を補正後デューティ指示値PWMR,SOFTRの他方によって定める。なお、実際には、
図21に示したように、PWMパターンおよびソフトパターンの各対称パターンも必要となる。PWM変調部PWMMDは、ディジタル演算によって、この各対称パターンに対応するPWM信号も生成する。
【0045】
また、逆起電圧位相検出部BPHDでBEMF位相を検出するためには、モータSPMのu相、v相およびw相を、その電圧ゼロクロス点近辺で一時的にハイインピーダンスに制御する必要がある。PWM変調部PWMMDは、当該u相、v相およびw相を一時的にハイインピーダンスに制御するため、ハイインピーダンス制御信号HIZu,HIZv,HIZwをそれぞれ生成する。この際に、PWM変調部PWMMDは、いずれかの相をハイインピーダンスに制御している期間(言い換えれば、BEMF位相の検出期間)でマスク信号MSKを生成し、それを位相誤差検出部PHED’へ出力する。位相誤差検出部PHED’は、詳細は
図8等で後述するが、当該マスク信号MSKを利用して位相誤差を検出する。
【0046】
このように、
図21の駆動方式を用いることで、PWM変調部PWMMDは、補正後デューティ指示値(カウント値)に基づきPWM信号を生成する実回路を、3個ではなく2個備えればよく、回路面積の低減等が可能になる。さらに、
図21の駆動方式を用いることで、VM固定またはGND固定からの振幅で制御することができるため、電源電圧マージンに対して有利となり、モータSPMのトルク定数を大きくでき、消費電力を低減することが可能になる。
【0047】
SPM駆動部SPMDVは、
図19に示すように、プリドライバ部PDVBKと、インバータ部INVBKとを備える。インバータ部INVBKは、u相用のハイサイドトランジスタM1uおよびロウサイドトランジスタM2uと、v相用のハイサイドトランジスタM1vおよびロウサイドトランジスタM2vと、w相用のハイサイドトランジスタM1wおよびロウサイドトランジスタM2wと、を備える。ハイサイドトランジスタM1u,M1v,M1wおよびロウサイドトランジスタM2u,M2v,M2wは、特に限定はされないが、ここではnチャネル型MOSトランジスタである。
【0048】
ハイサイドトランジスタM1u,M1v,M1wのドレインは、電源電圧VMに共通に結合され、ロウサイドトランジスタM2u,M2v,M2wのソースは、モータ接地端子MGNDに共通に結合される。ハイサイドトランジスタM1uのソースおよびロウサイドトランジスタM2uのドレインは、u相用の駆動出力端子OUTuに結合される。同様に、ハイサイドトランジスタM1vおよびロウサイドトランジスタM2vは、v相用の駆動出力端子OUTvに結合され、ハイサイドトランジスタM1wおよびロウサイドトランジスタM2wは、w相用の駆動出力端子OUTwに結合される。モータ接地端子MGNDは、電流検出用抵抗RNFを介して接地電源電圧GNDに結合される。
【0049】
u相用、v相用およびw相用の駆動出力端子(モータ駆動端子)OUTu,OUTv,OUTwは、それぞれ、モータSPMのu相用、v相用およびw相用の駆動入力端子INu,INv,INwに結合される。また、u相用、v相用およびw相用の駆動出力端子OUTu,OUTv,OUTwからは、それぞれ、u相、v相およびw相の駆動電圧Vu,Vv,Vwが出力される。当該駆動電圧Vu,Vv,Vwは、時間平均で見ると
図21に示したような電圧波形となり、各時点で見るとPWM信号となる。モータSPMは、等価的に、中性点CTと各駆動入力端子INu,INv,INwとの間にそれぞれY字結線されたu相用、v相用およびw相用のコイルLu,Lv,Lwを含んでいる。
【0050】
プリドライバ部PDVBKは、u相用、v相用およびw相用のプリドライバPDVu,PDVv,PDVwを備える。u相用のプリドライバPDVuは、PWM変調部PWMMDからのu相用のPWM信号PWMON_MODuに基づいて、u相用のハイサイドトランジスタM1uをPWM信号PWMuhで駆動し、ロウサイドトランジスタM2uをPWM信号PWMuhの相補信号となるPWM信号PWMulで駆動する。
【0051】
また、当該プリドライバPDVuは、ハイインピーダンス制御信号HIZuがハイレベルの場合には、ハイサイドトランジスタM1uおよびロウサイドトランジスタM2uを共にオフに駆動する。これにより、駆動出力端子OUTuがハイインピーダンスとなることで、駆動出力端子OUTuでu相のBEMFを観測することが可能になる。さらに、当該プリドライバPDVuは、駆動出力端子OUTuから出力されるPWM信号を、所定の電圧レベルのパルス信号に変換し、当該パルス信号を前述した出力検出信号OUTDETuとして出力する。詳細な説明は省略するが、v相用のプリドライバPDVvおよびw相用のプリドライバPDVwに関しても同様である。
【0052】
ここで、
図18に戻り、電流検出用抵抗RNFは、60deg毎に異なる相の相電流を検出することができる。例えば、
図20(a)の0〜60degの期間(u相およびw相からv相へ電流が流れる期間)では、v相の相電流を検出することができ、60〜120degの期間(u相からv相およびw相へ電流が流れる期間)ではu相の相電流を検出することができる。当該検出される相電流は、正弦波の頂点を含む60degの周期を繰り返したような電流となる。
【0053】
そこで、電流誤差検出部CERDET’は、減算器SB1による誤差の検出精度を向上させるため、この正弦波波形を模写したディジタルパターンを生成する指示電流補正部CRNTCPを備える。例えば、モータSPMの定常回転時では、電流誤差検出部CERDET’は、略一定値となる電流指示値SPNCRに指示電流補正部CRNTCPからのディジタルパターンを乗算器MUL2を介して乗算し、当該乗算結果となる電流指示値SPNCR_Rを減算器SB1へ出力する。減算器SB1は、この電流指示値SPNCR_Rとアナログ・ディジタル変換器ADCからのディジタル値ADCOとの誤差を検出する。なお、ディジタル値ADCOは、特に限定はされないが、例えば、PWM信号の周期毎に出力される。
【0054】
駆動電圧位相生成部DVPHG’は、ピーク格納部PKHDと、基準駆動電圧位相生成部RDPGとを備える。ピーク格納部PKHDは、アナログ・ディジタル変換器ADCからのディジタル値ADCOを、指示電流補正部CRNTCPからのトリガ信号UPADCを受けて保持することで、各相の駆動電流振幅ISPNOUTを出力する。指示電流補正部CRNTCPは、例えば、生成するディジタルパターンの最大振幅の箇所でトリガ信号UPADCを出力する。
【0055】
基準駆動電圧位相生成部RDPGは、駆動電流位相検出部IPHDで検出された駆動電流位相θiと基準BEMF位相θbemfとの位相差がゼロに設定されるようにモータ駆動端子(駆動出力端子OUTu,v,w)に駆動電圧を印加する際の基準の駆動電圧位相θdrvRを定める。詳細に説明すると、モータSPMでは、通常、BEMF位相と駆動電流位相とを一致させるため、BEMF位相よりも駆動電圧位相θdrvRだけ進んだ位相でモータSPMに駆動電圧を印加するような制御(進角制御と呼ばれる)が必要となる。基準駆動電圧位相生成部RDPGは、着磁ばらつきが無い理想的なモータSPMを前提として、3相共通で適用可能な駆動電圧位相θdrvRを定め、それをPWM制御部PWMCTへ指示する。
【0056】
PWM制御部PWMCTは、駆動電圧位相θdrvRを受け、通電タイミング信号TIMを駆動電圧位相θdrvRに基づきシフトさせ、当該シフト後の通電タイミング信号に基づいて、3相の駆動電圧を正弦波状に制御するためのPWM信号PWMON_MODu,v,wを生成する。例えば、正弦波駆動電圧制御部SINCTは、駆動電圧位相θdrvRに基づく電気角だけ
図21に示したPWMパターンおよびソフトパターンをシフトさせ、このシフトさせたパターンを用いてデューティ指示値PWMP,SOFTPを生成する。その結果、駆動電圧Vu,Vv,Vwの位相は、駆動電圧位相θdrvRに基づき制御され、これに応じて、モータSPMの各相における駆動電流位相も、駆動電圧位相θdrvRに基づき制御される。
【0057】
シリアルIF&レジスタ部SIFREGは、シリアルポートSIFと、当該シリアルポートSIFを介してアクセスされるパラメータ設定レジスタ部PREGとを備える。パラメータ設定レジスタ部PREGは、例えば、
図1のHDDコントローラHDDCTによって設定される各種パラメータを保持する。ここでは、各種パラメータには、モータSPMの特性定数K1,K2、ゲイン調整パラメータKvi,Kadj、電流制御パラメータKcp,Kci、およびPWM補正パラメータKrevU,Lが含まれる。
【0058】
特性定数K1,K2およびゲイン調整パラメータKvi,Kadjは、駆動電圧位相生成部DVPHG’で用いられる。電流制御パラメータKcp,Kciは、PI補償器PICPにおけるPI制御の比例ゲインおよび積分ゲインとして用いられる。PWM補正パラメータKrevU,Lは、前述したように、PWMP用補正部PPCPおよびSOFTP用補正部SPCPで用いられる。
【0059】
《モータ駆動装置(比較例[1])の問題点》
図22は、
図18のモータ駆動装置でモータを駆動した場合の、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの一例を示す波形図である。理想的なモータSPMを用いた場合のBEMFは、u相、v相、w相で120degずつずれた正弦波電圧となる。しかし、現実のモータSPMを用いた場合のBEMF位相は、
図22のように、理想的なモータSPMを用いた場合のBEMF位相を基準にばらつく場合がある。
【0060】
図22の例では、u相のBEMF位相を前述した基準BEMF位相θbemf(θbemf_U)として、v相のBEMF位相(θbemf_V)は1deg進み、w相のBEMF位相(θbemf_W)は1deg遅れている。このようなBEMF位相の相間ばらつきは、着磁ばらつきと呼ばれ、主にモータSPMの構造に起因して生じる。ばらつき要因として、例えば、ブラシレスDCモータでは、ステータにおけるu相、v相、w相の物理的な配置誤差(回転方向の位置ズレ)等が挙げられる。
【0061】
図18に示したモータ駆動装置は、前述したように理想モータを前提として、各相に対して共通の駆動電圧位相θdrvRを定めている。その前提でBEMF位相に着磁ばらつきがあると、駆動電流位相にもばらつきが生じ得る。詳細は
図23および
図24(a)〜
図24(c)で述べるが、BEMF位相が進み方向にばらつくと、駆動電流位相は遅れ方向にばらつき、逆に、BEMF位相が遅れ方向にばらつくと、駆動電流位相は進み方向にばらつく。具体例として、
図22のように、v相のBEMF位相が1deg進むと、v相の駆動電流位相は3deg程度遅れる場合がある。その結果、BEMFの2次成分(2倍の周波数)となるトルクリップルが生じ、モータ駆動における騒音、振動の増大を招く恐れがある。
【0062】
図23は、モータの各相を等価的に表す回路図である。
図24(a)、
図24(b)および
図24(c)は、
図23の補足図であり、逆起電圧位相のばらつきに伴い駆動電流位相がどのようにばらつくかを示す説明図である。
図23おいて、モータSPMの各相(代表としてu相)は、駆動入力端子INuと中性点CTとの間に直列接続される逆起電圧Vbemf、モータ抵抗RmおよびモータインダクタンスLmによって表される。モータ抵抗RmおよびモータインダクタンスLmは、
図19のコイルLuが持つ実際のインピーダンス成分を表す。モータ駆動装置は、このような直列回路に対して駆動電圧Vdrv(例えばu相駆動電圧Vu)を印加し、コイル(RmおよびLm)に駆動電流Icoil(例えばu相駆動電流Iu)を流す。
【0063】
図24(a)は、BEMF位相が相対的にずれていない場合(理想モータの場合)のベクトル図であり、例えば、基準BEMF位相となる
図22のu相に対応するものである。位相ずれが無い場合、
図18の駆動電圧位相生成部DVPHG’の制御によって、駆動電流Icoilの位相(駆動電流位相)は、逆起電圧Vbemfの位相(BEMF位相)と一致する。駆動電圧Vdrvの振幅および駆動電圧位相θdrvは、逆起電圧Vbemfとコイル電圧Vcoilのベクトル加算で定められる。コイル電圧Vcoilの振幅および位相θcoilは、“Rm×Icoil”と“ω×Lm×Icoil”(ωはモータの回転数(角周波数))のベクトル加算で定められる。
【0064】
図24(b)は、BEMF位相が相対的に進んでいる場合のベクトル図であり、例えば、
図22のv相に対応するものである。
図24(a)を基準として、駆動電圧Vbemfの位相(BEMF位相)がΔθbemf進んだ場合、まず、コイル電圧Vcoilの振幅が小さくなり駆動電流Icoilも小さくなる。そうすると、
図18で述べた電流制御により、駆動電流Icoilおよびコイル電圧Vcoilの振幅は、
図24(a)と同じ大きさに戻される。その結果、
図24(b)のように、駆動電圧Vdrvの振幅は大きくなり、駆動電流位相はΔθi遅れることになる。
【0065】
図24(c)は、BEMF位相が相対的に遅れている場合のベクトル図であり、例えば、
図22のw相に対応するものである。BEMF位相がΔθbemf遅れた場合、まず、コイル電圧Vcoilの振幅が大きくなり駆動電流Icoilも大きくなる。そうすると、
図18で述べた電流制御により、駆動電流Icoilおよびコイル電圧Vcoilの振幅は、
図24(a)と同じ大きさに戻される。その結果、
図24(c)のように、駆動電圧Vdrvの振幅は小さくなり、駆動電流位相はΔθi進むことになる。
【0066】
図26は、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの
図22とは異なる一例を示す波形図である。理想的なモータSPMを用いた場合の逆起電圧の振幅(BEMF振幅)は、u相、v相、w相でそれぞれ同一振幅となる正弦波電圧となる。しかし、現実のモータSPMを用いた場合のBEMF振幅は、
図26のように、理想的なモータSPMを用いた場合のBEMF振幅を基準にばらつく場合がある。
【0067】
図26の例では、v相、w相のBEMF振幅は、u相のBEMF振幅を基準として、それぞれ、2%減少、2%増加となっている。このようなBEMF振幅の相間ばらつきも、着磁ばらつきと呼ばれ、主にモータSPMの構造に起因して生じる。ばらつき要因として、例えば、ステータにおける各相のコイルのインダクタンスばらつきや、ロータにおける磁石の特性ばらつき等が挙げられる。
【0068】
一方、
図18に示したモータ駆動装置は、理想モータを前提として、3相に対して電流指示値SPNCR_Rを反映した同一振幅の駆動電圧を印加することで、3相に対して同一振幅の駆動電流を流すように制御する。しかし、BEMF振幅が異なる状態で各相の駆動電流振幅が同一に制御されると、各相のトルクが異なる事態が生じ得る。その結果、BEMFの2次成分(2倍の周波数)となるトルクリップルが生じ、モータ駆動における騒音、振動の増大を招く恐れがある。
【0069】
《モータ駆動装置(実施の形態1)の概略構成および概略動作》
図2は、本発明の実施の形態1によるモータ駆動装置の主要部の構成例を示す機能ブロック図である。
図2に示すモータ駆動装置MDICは、
図18の構成例と比較して、位相誤差検出部PHED、駆動電圧位相生成部DVPHGおよび電流誤差検出部CERDETの構成および動作が異なっている。また、当該モータ駆動装置MDICは、
図18の構成例に加えて、アナログ・ディジタル変換器ADC2を備える。
【0070】
位相誤差検出部PHEDは、
図18の場合と同様に各相のBEMF位相と基準BEMF位相θbemfとの誤差を検出し、位相誤差信号ECNTを出力する。この際に、位相誤差検出部PHEDは、基準相を除く相(v相およびw相)のBEMF位相(θbemf_V,θbemf_W)と基準BEMF位相θbemf(すなわちu相のBDMF位相(θbemf_U))との誤差に基づく位相誤差信号ECNTを駆動電圧位相生成部DVPHGへ出力する。
【0071】
駆動電圧位相生成部DVPHGは、
図18の場合と同様のピーク格納部PKHDおよび基準駆動電圧位相生成部RDPGに加えて、相間位相ばらつき制御部PHDCTを備える。相間位相ばらつき制御部PHDCTは、モータSPMの各相毎に駆動電流位相とBEMF位相とが一致するように、駆動出力端子(モータ駆動端子)OUTu,OUTv,OUTwに駆動電圧Vu,Vv,Vwを印加する際の各相毎の駆動電圧位相θdrvU,θdrvV,θdrvWを定める。
【0072】
具体的には、相間位相ばらつき制御部PHDCTは、基準駆動電圧位相生成部RDPGからの基準の駆動電圧位相θdrvR(すなわちu相のBEMF位相と駆動電流位相とを一致させるための位相)と、位相誤差検出部PHEDからのv相およびw相の位相誤差信号ECNTとを用いて駆動電圧位相θdrvU,θdrvV,θdrvWを定める。PWM制御部PWMCTは、駆動電圧位相θdrvU,θdrvV,θdrvWを受け、基準BEMF位相θbemfに同期する通電タイミング信号TIMを駆動電圧位相θdrvU,θdrvV,θdrvWに基づきそれぞれシフトさせ、当該シフト後の通電タイミング信号に基づいてPWM信号PWMON_MODu,v,wを生成する。
【0073】
また、相間位相ばらつき制御部PHDCTは、位相誤差検出部PHEDからのv相およびw相の位相誤差信号ECNTに基づきBEMFの3相間の位相ばらつき(電気角の大きさ)を検出し、その検出結果となる位相ばらつき信号PdV,PdWを出力する。位相ばらつき信号PdVは、基準相(u相)とv相との位相ばらつきを表し、位相ばらつき信号PdWは、基準相(u相)とw相との位相ばらつきを表す。
【0074】
電流誤差検出部CERDETは、
図18の場合と同様の指示電流補正部CRNTCP、乗算器MUL2および減算器SB1に加えて、相間振幅ばらつき検出部AMDET、トルク補正部TRQCPおよび乗算器MUL1を備える。相間振幅ばらつき検出部AMDETは、基準相(u相)の逆起電圧の振幅(BEMF振幅)と他の2相のBEMF振幅との比率を算出することで3相間の振幅ばらつきを検出する。
【0075】
具体的には、前述した逆起電圧位相検出部BPHDは、モータSPMにおける各相のBEMF振幅BEMFOを検出する逆起電圧振幅検出部としても機能する。アナログ・ディジタル変換器ADC2は、当該各相のBEMF振幅BEMFOをディジタル値ADCO2に変換する。相間振幅ばらつき検出部AMDETは、当該ディジタル値ADCO2を用いて3相間の振幅ばらつき(基準相との振幅比)を検出し、その検出結果となる振幅ばらつき信号AdV,AdWを出力する。振幅ばらつき信号AdVは、基準相(u相)とv相との振幅ばらつきを表し、振幅ばらつき信号AdWは、基準相(u相)とw相との振幅ばらつきを表す。
【0076】
トルク補正部TRQCPは、相間位相ばらつき制御部PHDCTからの位相ばらつき信号PdV,PdW(すなわちBEMFの3相間の位相ばらつき)に基づいて周期関数となる位相用トルク補正係数を算出する。また、トルク補正部TRQCPは、相間振幅ばらつき検出部AMDETからの振幅ばらつき信号AdV,AdW(すなわちBEMFの3相間の振幅ばらつき)に基づいて周期関数となる振幅用トルク補正係数を算出する。
【0077】
トルク補正部TRQCPは、当該位相用トルク補正係数および振幅用トルク補正係数の加算結果をトルク補正係数KcrAPとし、乗算器MUL1を介して電流指示値SPNCRにトルク補正係数KcrAPを重畳させることで電流指示値SPNCRを補正し、補正結果となる電流指示値SPNCR_Pを出力する。乗算器MUL2は、当該電流指示値SPNCR_Pと指示電流補正部CRNTCPからのディジタルパターンとを乗算し、最終的な電流指示値SPNCR_Mを出力する。
【0078】
モータ駆動装置MDICは、当該電流指示値SPNCR_Mを目標値として電流制御ループによるフィードバック制御を行うことでモータSPMを駆動する。電流制御ループは、
図18の場合と同様に、減算器SB1、PI補償器PICP、PWM制御部PWMCT、SPM駆動部SPMDV、電流検出用抵抗RNF、サンプルホールド回路SH、センスアンプ回路SA、およびアナログ・ディジタル変換器ADCを備える。このような構成により、電流制御ループは、
図18で述べたように、モータSPMの駆動電流を検出し、当該電流検出値(ADCO)と、駆動電流の目標値となる電流指示値SPNCR_Mとの誤差を検出し、当該誤差を反映してPWM信号PWMON_MOD(u,v,w)のデューティを定める。
【0079】
《トルク補正部の動作》
図3は、
図2のモータ駆動装置でモータを駆動した場合の、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの一例を示す波形図である。
図3において、3相のBEMF位相は、
図22の場合と同様に、u相を基準相として、v相が相対的に1deg進み、w相が相対的に1deg遅れた状態となっている。一方、3相の駆動電流位相は、
図22の場合と異なり、相間位相ばらつき制御部PHDCTによって、モータSPMの各相毎に駆動電流位相とBEMF位相とが一致するように制御される。例えば、
図3のように、v相のBEMF位相が基準相(u相)のBEMF位相に対して1deg進んでいる場合、相間位相ばらつき制御部PHDCTは、v相の駆動電流位相も基準相(u相)の駆動電流位相に対して1deg進むように駆動電圧位相θdrvVを制御する。
【0080】
さらに、
図3における電流指示値SPNCR_Pは、
図22の場合と異なり、トルク補正部TRQCPからのトルク補正係数(ここでは位相用トルク補正係数)KcrAPに伴う周期関数となっている。具体的には、トルク補正係数(位相用トルク補正係数)KcrAPは、BEMFの周波数の2倍の周波数を持ち、BEMFの3相間の位相ばらつきに応じて振幅および位相が変化する周期関数(例えばsin関数)となる。
【0081】
具体的に説明すると、モータのトルクTpは、それぞれ“BEMF×駆動電流”の関数で得られる3相のトルクの加算結果となる。詳細には、モータのトルクTpは、基準BEMF位相θbemf(すなわちu相のBEMF位相)と、u相を基準としたv相およびw相の位相ばらつき信号PdV,PdWの値と、モータSPMのトルク定数“Kt”と、モータの各相の駆動電流“Ispn”とを用いて式(1)で表される。式(1)において、“GrP”の値は式(2)であり、“DrP”の値は式(3)である。
【0085】
式(1)、式(2)および式(3)から判るように、仮に位相ばらつき(PdV,PdW)が無い場合には、トルクTpは一定値となり、トルクリップルは生じない。一方、位相ばらつき(PdV,PdW)が有る場合には、
図22にも示したように、基準BEMF位相θbemfの2次成分(sin2θbemf)となるトルクリップルが生じる。当該トルクリップルは、位相ばらつき(PdV,PdW)の大きさに応じて振幅(GrP)および位相(DrP)が変化する。
【0086】
そこで、当該トルクリップルを打ち消すため、モータ電流“Ispn”を式(4)のように補正する。すなわち、
図2の電流指示値SPNCRに該当する“Ispn0”に、式(5)で示される2次の周期関数となる位相用トルク補正係数DcrP0を重畳させる補正を行う。
【0089】
式(4)のモータ電流“Ispn”を式(1)に代入すると、式(6)のトルクTpが得られる。式(6)において、“GdP=(1/3)×GrP”とし、“DdP=DrP”とすることでトルクリップルを無くすことができる。したがって、式(5)の位相用トルク補正係数DcrP0における“GdP”は、式(7)で与えられ、“DdP”は式(8)で与えられる。その結果、位相用トルク補正係数DcrP0は、位相ばらつき(PdV,PdW)に応じて振幅(GdP)および位相(DdP)が変化する周期関数(ここではsin関数)となる。
【0093】
このように位相用トルク補正係数DcrP0を反映した電流指示値SPNCR_Pを用いることで、
図3に示されるように、モータSPMのトルクリップルを低減でき、モータSPMに着磁ばらつきがあっても、モータ駆動における騒音、振動を抑制することが可能になる。
【0094】
なお、式(1)は、3相共に、BEMF位相と駆動電流位相とが一致していることを前提とした式となっている。相間位相ばらつき制御部PHDCTは、この前提を満たすための動作を行う。ただし、場合によっては、例えば、v相およびw相において、BEMF位相と駆動電流位相とが不一致の場合を前提としてトルクTpの計算式を立て、位相用トルク補正係数DcrP0の計算式を定めることも可能である。この場合、当該相間位相ばらつき制御部PHDCTによる動作は不要となるものの、トルクTpの計算式および位相用トルク補正係数DcrP0の計算式が複雑化する恐れがある。この観点から、相間位相ばらつき制御部PHDCTを用いることが有益となる。
【0095】
また、ここでは、3相中の1相を基準相として、基準BEMF位相θbemfを定める方式を用いているが、場合によっては、例えば、3相のBEMF位相の平均値等によって基準BEMF位相θbemfを定めるような方式を用いることも可能である。ただし、このような場合も、式(1)においてu相の位相ばらつき(PdU)を表すパラメータが追加されることになるため、式(1)が若干複雑化する恐れがある。この観点から、3相中の1相(ここではu相)を基準相とすることが有益となる。
【0096】
図4は、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの
図3とは異なる一例を示す波形図である。
図4において、v相、w相のBEMF振幅は、
図26の場合と同様に、u相のBEMF振幅を基準として、それぞれ、2%減少、2%増加となっている。また、
図4における電流指示値SPNCR_Pは、
図26の場合と異なり、トルク補正部TRQCPからのトルク補正係数(ここでは振幅用トルク補正係数)KcrAPに伴う周期関数となっている。トルク補正係数(振幅用トルク補正係数)KcrAPは、BEMFの周波数の2倍の周波数を持ち、BEMFの3相間の振幅ばらつきに応じて振幅および位相が変化する周期関数(例えばsin関数)となる。
【0097】
具体的に説明すると、モータのトルクTaは、基準BEMF位相θbemf(すなわちu相のBEMF位相)と、u相を基準としたv相およびw相の振幅ばらつき信号AdV,AdWの値と、モータSPMのトルク定数“Kt”と、モータの各相の駆動電流“Ispn”とを用いて式(9)で表される。式(9)において、“GrA”の値は式(10)であり、“DrA”の値は式(11)である。
【0101】
式(9)、式(10)および式(11)から判るように、仮に振幅ばらつき(AdV,AdW)が無い場合には、トルクTaは一定値となり、トルクリップルは生じない。一方、振幅ばらつき(AdV,AdW)が有る場合には、
図26にも示したように、基準BEMF位相θbemfの2次成分(sin2θbemf)となるトルクリップルが生じる。当該トルクリップルは、振幅ばらつき(AdV,AdW)の大きさに応じて振幅(GrA)および位相(DrA)が変化する。
【0102】
そこで、当該トルクリップルを打ち消すため、モータ電流“Ispn”を式(12)のように補正する。すなわち、
図2の電流指示値SPNCRに該当する“Ispn0”に、式(13)に示される2次の周期関数となる振幅用トルク補正係数DcrA0を重畳させる補正を行う。
【0105】
式(12)のモータ電流“Ispn”を式(9)に代入すると、式(14)のトルクTaが得られる。式(14)において、“GdA=(1/3)×GrA”とし、“DdA=DrA”とすることでトルクリップルを無くすことができる。したがって、式(13)の振幅用トルク補正係数DcrA0における“GdA”は、式(15)で与えられ、“DdA”は式(16)で与えられる。その結果、当該振幅用トルク補正係数DcrA0は、振幅ばらつき(AdV,AdW)に応じて振幅(GdA)および位相(DdA)が変化する周期関数(ここではsin関数)となる。
【0109】
このような補正を行った結果、実際上の動作として、各相の駆動電流振幅は、自相のBEMFの振幅ばらつき(比率)の逆数倍の比率となるように補正されることになる。例えば、
図4のように、v相のBEMF振幅が基準相(u相)に対して−2%の場合、v相の駆動電流振幅は、基準相(u相)に対して+2%となるように補正される。すなわち、各相のトルクは、“BEMF×駆動電流”の関数となるため、例えば、ある相のBEMF振幅がK倍にばらついた場合、当該相の駆動電流振幅を“1/K”倍に補正すれば、各相のトルクを一定に保つことができる。
【0110】
このように振幅用トルク補正係数DcrA0を反映した電流指示値SPNCR_Pを用いることで、モータSPMのトルクリップルを低減でき、モータSPMに着磁ばらつきがあっても、モータ駆動における騒音、振動を抑制することが可能になる。この際には、
図3の場合と同様に、相間位相ばらつき制御部PHDCTを用い、また、3相中の1相を基準相とすることで、各種計算式の簡略化が図れる。
【0111】
なお、
図3に示した位相用トルク補正係数DcrP0を用いた補正と、
図4に示した振幅用トルク補正係数DcrA0を用いた補正は、両方共に実行されることが望ましいが、場合によっては、いずれか一方のみの実行であってもトルクリップルの低減効果をある程度得ることは可能である。
【0112】
《駆動電圧位相生成部の概略》
図5は、
図2のモータ駆動装置において、駆動電圧位相生成部周りの主要部の概略構成例を示すブロック図である。
図5には、
図2における駆動電圧位相生成部DVPHGと、位相誤差検出部PHEDと、駆動電流位相検出部IPHDと、PLL制御部PLLCTとが示される。駆動電圧位相生成部DVPHGは、基準駆動電圧位相生成部RDPGと、相間位相ばらつき制御部PHDCTとを備える。
【0113】
基準駆動電圧位相生成部RDPGは、位相演算部PHCALおよび位相補正部PHCPを備え、基準BEMF位相θbemfと入力された駆動電流位相θiとの位相差がゼロに設定されるように駆動電圧を印加する際の基準の駆動電圧位相θdrvRを定める。位相演算部PHCALは、モータSPMの各相の駆動電流の電流値と、モータSPMの角周波数ωと、
図2のパラメータ設定レジスタPREGで定められるモータSPMの特性定数K1,K2とを用いた演算式に基づき、基準BEMF位相θbemfと駆動電流位相θiとの位相差をゼロに設定するための駆動電圧位相θdrvを算出する。駆動電流の電流値は、
図2のピーク格納部PKHDからの駆動電流振幅ISPNOUTによって得られ、モータSPMの角周波数ωは、PLL制御部PLLCTからの回転周期カウント値NCNTによって得られる。
【0114】
ここで、位相演算部PHCALによって算出される駆動電圧位相θdrvは、モータSPMの特性定数K1,K2に応じて変化する。特性定数K1,K2は、例えば、モータの種類毎に定められる。しかし、例えば、同一種類のモータSPMであっても、各モータ毎に、製造ばらつき等に伴う特性定数K1,K2のばらつきが生じる恐れがある。また、1個のモータSPMを対象とする場合であっても、経時劣化等によって時系列的に特性定数K1,K2にばらつきが生じる恐れがある。そうすると、基準BEMF位相θbemfと駆動電流位相θiとの位相差にゼロからの誤差が生じる恐れがある。
【0115】
そこで、位相補正部PHCPは、位相演算部PHCALからの駆動電圧位相θdrvに補正値を加えることで、基準の駆動電圧位相θdrvRを定める。この際に、位相補正部PHCPは、基準BEMF位相θbemf(基準相(u相)のBEMF位相θbemf_U)と、基準相(u相)の駆動電流位相θi_Uとの位相差がゼロに収束するように補正値の大きさをフィードバック制御によって更新する。すなわち、フィードバック経路として、基準の駆動電圧位相θdrvRを反映した状態でモータSPMに駆動電流が流れ、u相の駆動電流位相θi_Uが駆動電流位相検出部IPHDで検出され、この検出結果に基づき補正値が更新され、基準の駆動電圧位相θdrvRも更新される。
【0116】
これにより、モータSPMに特性定数K1,K2のばらつきが生じた場合であっても、基準相(u相)のBEMF位相θbemf_Uと駆動電流位相θi_Uとの位相差を高精度にゼロに設定することができる。ただし、u相を基準としてモータSPMに着磁ばらつきが生じた場合、
図22に示したように、トルクリップルが生じる恐れがある。相間位相ばらつき制御部PHDCTは、
図3で述べたように、当該トルクリップルを打ち消すためのトルク補正を行う前提として、モータSPMの各相毎に駆動電流位相とBEMF位相とを一致させるような制御を行う。
【0117】
具体的には、相間位相ばらつき制御部PHDCTには、基準駆動電圧位相生成部RDPGからの基準の駆動電圧位相θdrvRと、位相誤差検出部PHEDからのv相およびw相の位相誤差信号ECNTが入力される。v相の位相誤差信号ECNTは、基準相(u相)とv相の位相誤差(電気角Δθbemf_V)をディジタル制御のカウント値で表したものであり、w相の位相誤差信号ECNTは、基準相(u相)とw相の位相誤差(電気角Δθbemf_W)をディジタル制御のカウント値で表したものである。
【0118】
相間位相ばらつき制御部PHDCTは、v相およびw相の位相誤差信号ECNTを電気角Δθbemf_V,Δθbemf_Wに変換し、それらを位相ばらつき信号PdV,PdWとして出力する。また、相間位相ばらつき制御部PHDCTは、基準の駆動電圧位相θdrvRをu相の駆動電圧位相θdrvUに定めると共に、基準の駆動電圧位相θdrvRに電気角Δθbemf_V,Δθbemf_Wをそれぞれ加算することでv相およびw相の駆動電圧位相θdrvV,θdrvWを定める。
【0119】
なお、PLL制御部PLLCTは、前述したように、基準相(u相)の位相誤差信号ECNTをゼロに近づけるようにPLL制御を行うことで、基準相のBEMF位相に同期する通電タイミング信号TIMを生成する。位相誤差検出部PHEDは、この通電タイミング信号TIMに基づき、u相のBEMF位相を基準としてv相,w相のBEMF位相との間の位相誤差をそれぞれ検出する。
【0120】
《回転位置検出部および位相誤差検出部の構成および動作》
図6は、
図2における回転位置検出部および位相誤差検出部の検出期間の一例を示す波形図である。
図6には、モータSPMに印加される各相の駆動電圧Vu,Vv,Vwと、u相の駆動電流Iuとが示される。駆動電圧Vu,Vv,Vwは、
図6に示されるように、各時点ではPWM信号であり、その時間平均によって
図21に示したような電圧波形となる。
【0121】
図19のインバータ部INVBKは、
図21に示した駆動方式に基づき、無通電期間が無い180deg通電方式によってモータに駆動電圧Vu,Vv,Vwを印加する。この場合、例えば、u相のBEMF位相を検出するためには、BEMFの電圧ゼロクロス点(電圧振幅の半値を通過する時点)を含む所定の期間で、無通電期間を設ける必要がある。そこで、PWM変調部PWMMDは、ハイインピーダンス制御信号HIZuをアサートすることで360degの通電期間内に無通電期間(例えば15deg程度)を設け、
図6に示すように、この無通電期間でマスク信号MSKをアサートする。位相誤差検出部PHEDは、当該マスク信号MSKのアサート期間で逆起電圧位相検出部BPHDからのゼロクロス検出信号ZXOUTを取り込み、u相のBEMF位相の位相誤差を検出する。
【0122】
また、PWM変調器PWMMDは、特に限定はされないが、
図6に示すように、当該無通電期間とは位相が180deg異なる通電期間で、駆動電流検出イネーブル信号CNT_ENをアサートする。当該駆動電流検出イネーブル信号CNT_ENのアサート期間は、例えば、前述した無通電期間と同じ長さ(例えば15deg程度)である。駆動電流位相検出部IPHDは、当該駆動電流検出イネーブル信号CNT_ENのアサート期間で駆動電流Iuの電流ゼロクロス点を検出することでu相の駆動電流位相θi_Uを検出する。
【0123】
ここで、PWM変調器PWMMDは、前述したように、PLL制御部PLLCTからの基準BEMF位相θbemfに同期する通電タイミング信号TIMに基づいて、モータSPMへの通電を制御している。PWM変調器PWMMDは、この通電タイミング信号TIMに基づき、近未来において各相のBEMFの電圧ゼロクロス点が存在し得る期間を十分に狭い範囲(例えば60deg以下、望ましくは15deg程度以下)に絞り込むことができ、この絞り込んだ期間でマスク信号MSKを生成する。この無通電期間は、駆動電流の正弦波を歪ませる要因となるため、より短いほど望ましい。ただし、短すぎると、モータSPMの角速度ωの変動等に伴い、当該期間内に電圧ゼロクロス点が存在しない事態を招くため、これらのトレードオフで定められる。
【0124】
《逆起電圧位相検出部および位相誤差検出部の詳細》
図7は、
図2における逆起電圧位相検出部の詳細な構成例を示す回路図である。
図7の逆起電圧位相検出部BPHDは、選択回路SELC1と、アンプ回路AMP11と、サンプルホールド回路SH11と、コンパレータ回路CMP_Zとを備える。選択回路SELC1は、3相の駆動電圧Vu,Vv,Vwのいずれかを相選択信号SELに基づき選択し、選択相の駆動電圧Vxを出力する。アンプ回路AMP11は、中性点CTの電圧Vctを基準として、選択相の駆動電圧Vxを増幅する。
【0125】
サンプルホールド回路SH11は、サンプリング信号BSHに応じて、アンプ回路AMP11の出力電圧をサンプリングおよびホールドする。コンパレータ回路CMP_Zは、サンプルホールド回路SH11の出力電圧となるBEMF振幅BEMFOがゼロクロス電圧VthZ(Vx=Vct時のアンプ回路AMP11の出力電圧に相当)に達した時点で、ゼロクロス検出信号ZXOUTの論理レベルを遷移させる。なお、サンプリング信号BSHや相選択信号SELは、PWM変調器PWMMDによって生成される。サンプリング信号BSHは、各PWM周期毎に生成され、各PWM周期の中で、選択相を除く2相中の一方の相のハイサイドトランジスタと他方の相のロウサイドトランジスタとが共にオンの期間で生成される。
【0126】
図8は、
図2における位相誤差検出部の詳細な構成例を示す回路図である。
図8の位相誤差検出部PHEDは、フリップフロップ回路FF11,FF12と、アップダウンカウンタ回路UDCUNT1と、アンド演算回路AD11,AD1u,AD1v,AD1wと、レジスタ回路REG10u,REG10v,REG10wと、選択回路SELC10とを備える。
【0127】
フリップフロップ回路FF11,FF12は、マスク信号MSKをディジタル制御の基準クロックCLKで順次ラッチし、アップダウンカウンタ回路UDCUNT1へ出力する。アップダウンカウンタ回路UDCUNT1は、マスク信号MSKのアサート期間でイネーブル状態となり、このイネーブル状態において、ゼロクロス検出信号ZXOUTに基づいてカウント動作を行う。具体的には、アップダウンカウンタ回路UDCUNT1は、ゼロクロス検出信号ZXOUTの論理レベルが一方の論理レベルの場合には基準クロックCLKでカウントアップを行い、他方の論理レベルの場合には、基準クロックCLKでカウントダウンを行う。
【0128】
アンド演算回路AD11は、フリップフロップ回路FF11の反転出力と、フリップフロップ回路FF12の出力とを入力としてアンド演算を行うことで、マスク信号MSKがアサート期間からネゲート期間に遷移する際にワンショットパルス信号となるラッチ信号LT11を出力する。アンド演算回路AD1u,AD1v,AD1wは、それぞれ、相選択信号SELを構成する信号usl,vsl,wslと、ラッチ信号LT11とを2入力としてアンド演算を行い、レジスタ回路REG10u,REG10v,REG10wへラッチ信号LT11u,LT11v,LT11wを出力する。
【0129】
レジスタ回路REG10u,REG10v,REG10wは、それぞれ、ラッチ信号LT11u,LT11v,LT11wをトリガとして、アップダウンカウンタ回路UDCUNT1のカウント値をラッチする。選択回路SELC10は、相選択信号SELに基づき、レジスタ回路REG10u,REG10v,REG10wのいずれかのカウント値を位相誤差信号ECNTとして出力する。
【0130】
図9は、
図7の逆起電圧位相検出部および
図8の位相誤差検出部の概略的な動作例を示す説明図である。
図9に示すように、アップダウンカウンタ回路UDCUNT1は、マスク信号MSKがアサートされると、カウント動作を開始する。この例では、サンプルホールド回路SH11からのBEMF振幅BEMFOは、カウント動作の開始時点でゼロクロス電圧VthZよりも小さくなっており、その後、ゼロクロス電圧VthZに達し、更にその後、ゼロクロス電圧VthZを超えて上昇している。
【0131】
これに応じて、アップダウンカウンタ回路UDCUNT1は、BEMF振幅BEMFOがゼロクロス電圧VthZに達するまで(すなわちゼロクロス検出信号ZXOUTが遷移するまで)はカウントダウンを行い、ゼロクロス電圧VthZを超えたのち(すなわちZXOUTが遷移したのち)カウントアップを行う。そして、アップダウンカウンタ回路UDCUNT1は、マスク信号MSKがネゲートされた時点でカウント動作を停止する。位相誤差検出部PHEDは、このカウント動作を停止した時点の最終的なカウント値をレジスタ回路REG10u,REG10v,REG10wの中の選択相に対応するレジスタ回路に保持する。
【0132】
図9から判るように、仮に、電圧ゼロクロス点がマスク信号MSKのアサート期間の中間時刻に存在する場合、アップダウンカウンタ回路UDCUNT1の最終的なカウント値はゼロとなる。一方、電圧ゼロクロス点が当該中間時刻からずれた場合、アップダウンカウンタ回路UDCUNT1の最終的なカウント値は、そのずれの方向および量(言い換えれば中間時刻との電圧位相誤差)を反映した値となる。
【0133】
ここで、前述したように、
図2のPLL制御部PLLCTは、基準相(u相)の位相誤差信号ECNTがゼロに収束するようにPLL制御を行うことで、u相のBEMF位相に同期する通電タイミング信号TIMを生成する。また、PWM変調部PWMMDは、このu相の同期する通電タイミング信号TIMに基づいてu相,v相,w相でそれぞれ位相が120deg異なるマスク信号MSKを生成する。
【0134】
その結果、
図9の期間Tdet1→期間Tdet2に示されるように、基準相(u相)の電圧ゼロクロス点がマスク信号MSKの中間時刻に設定されるように、通電タイミングTIMが調整され、この調整を介してマスク信号MSKのウインドウ位置も調整される。また、位相誤差検出部PHEDは、u相を基準に生成したマスク信号MSKを用いて位相誤差を検出する。したがって、定常状態では、u相の位相誤差信号ECNTはゼロとなり、v相およびw相の位相誤差信号ECNTは、このゼロ(すなわちu相)を基準とした誤差値となる。
【0135】
《駆動電流位相検出部の詳細》
図10は、
図2における駆動電流位相検出部の詳細な構成例を示す回路図である。
図10の駆動電流位相検出部IPHDは、選択回路SELC2a,SELC2bと、コンパレータ回路CMP_G,CMP_TRと、アップダウンカウンタ回路UDCUNT2と、フリップフロップ回路FF21,FF22と、アンド演算回路AD21とを備える。また、駆動電流位相検出部IPHDは、
図8の構成例と同様に、アンド演算回路AD2u,AD2v,AD2wと、レジスタ回路REG20u,REG20v,REG20wと、選択回路SELC20とを備え、加えて、乗算回路MUL20を備える。
【0136】
選択回路SELC2aは、3相のロウサイドトランジスタM2u,M2v,M2wのゲート・ソース間電圧Vgs_UL,Vgs_VL,Vgs_WLを受け、その中のいずれかを相選択信号SELに基づいて選択し、それをゲート・ソース間電圧Vgs_xLとしてコンパレータ回路CMP_Gへ出力する。同様に、選択回路SELC2bは、3相の駆動電圧Vu,Vv,Vwのいずれかを相選択信号SELに基づいて選択し、それを駆動電圧Vxとしてコンパレータ回路CMP_TRへ出力する。
【0137】
コンパレータ回路CMP_Gは、選択回路SELC2aからのゲート・ソース間電圧Vgs_xLと所定のしきい値電圧VthGとの大小関係を比較する。すなわち、コンパレータ回路CMP_Gは、選択相のロウサイドトランジスタがオンかオフかを判別する。コンパレータ回路CMP_TRは、選択回路SELC2bからの駆動電圧Vxが低電位側のしきい値電圧VthLよりも大きく、かつ高電位側のしきい値電圧VthHよりも小さい範囲にあるか否かを判別する。すなわち、コンパレータ回路CMP_TRは、駆動電圧VxがPWM信号に応じて高電位側の電源電圧VMと低電位側の電源電圧(接地電源電圧GND)との間で遷移する期間を検出する。コンパレータ回路CMP_TRは、当該検出した遷移期間において、トリガ信号TRGをアサートする。
【0138】
フリップフロップ回路FF21,FF22は、駆動電流検出イネーブル信号CNT_ENをディジタル制御の基準クロックCLKで順次ラッチし、アップダウンカウンタ回路UDCUNT2へ出力する。アップダウンカウンタ回路UDCUNT2は、駆動電流検出イネーブル信号CNT_ENのアサート期間でイネーブル状態となる。このイネーブル状態において、アップダウンカウンタ回路UDCUNT2は、トリガ信号TRGがアサートされる毎に、コンパレータ回路CMP_Gの比較結果に基づいてカウントダウンまたはカウントアップを行う。例えば、アップダウンカウンタ回路UDCUNT2は、Vgs_xL<VthGの場合(選択相のロウサイドトランジスタがオフの場合)にはカウントダウンを行い、Vgs_xL>VthGの場合(選択相のロウサイドトランジスタがオンの場合)にはカウントアップを行う。
【0139】
アンド演算回路AD21は、フリップフロップ回路FF21の反転出力と、フリップフロップ回路FF22の出力とを入力としてアンド演算を行うことで、駆動電流検出イネーブル信号CNT_ENがアサート期間からネゲート期間に遷移する際に、ワンショットパルス信号となるラッチ信号LT21を出力する。アンド演算回路AD2u,AD2v,AD2wは、それぞれ、選択信号usl,vsl,wslと、ラッチ信号LT21とを2入力としてアンド演算を行い、レジスタ回路REG20u,REG20v,REG20wにラッチ信号LT21u,LT21v,LT21wを出力する。
【0140】
レジスタ回路REG20u,REG20v,REG20wは、それぞれ、ラッチ信号LT21u,LT21v,LT21wを受けて、アップダウンカウンタ回路UDCUNT2からのカウント値をラッチする。選択回路SELC20は、相選択信号SELに基づき、レジスタ回路REG20u,REG20v,REG20wのいずれかのカウント値を出力する。乗算回路MUL20は、選択回路SELC20の出力を所定のゲインKconv2で増幅することで、駆動電流位相θiを出力する。ゲインKconv2は、カウント値を位相に換算する係数である。
【0141】
図11は、
図10の駆動電流位相検出部の動作原理を示す波形図である。
図11には、例えば、駆動電流Iuがソース電流(プラス電流)からシンク電流(マイナス電流)に変化する際の、各信号の概略的な動作波形が示されている。u相のロウサイドトランジスタM2uには、ソース電流が流れる期間ではPWM制御に伴う回生電流が流れ、シンク電流が流れる期間ではPWM制御に伴う駆動電流が流れる。
【0142】
この回生電流と駆動電流の違いにより、
図11に示されるように、駆動電流Iuがソース電流である場合のPWM周期T1において、駆動電圧Vuが遷移する期間では、ロウサイドトランジスタM2uのゲート・ソース間電圧Vgs_ULは、所定のしきい値電圧VthGよりも小さくなる。すなわち、ロウサイドトランジスタM2uは、オフとなる。一方、駆動電流Iuがシンク電流である場合のPWM周期T2において、駆動電圧Vuが遷移する期間では、ロウサイドトランジスタM2uのゲート・ソース間電圧Vgs_ULは、所定のしきい値電圧VthGよりも大きくなる。すなわち、ロウサイドトランジスタM2uは、オンとなる。
【0143】
図10の駆動電流位相検出部IPHDは、このように、モータSPMの選択相(ここではu相)の駆動電圧Vuが遷移している期間で、選択相のロウサイドトランジスタM2uがオンかオフかを判別することで、当該相の電流がソース電流かシンク電流かを判別する。そして、当該駆動電流位相検出部IPHDは、ソース電流およびシンク電流の一方から他方に切り替わった時点を、駆動電流Iuの電流ゼロクロス点として検出する。
【0144】
具体的には、
図11に示すように、駆動電流位相検出部IPHDのアップダウンカウンタ回路UDCUNT2は、ソース電流と判別した場合にはカウントダウンを行い、シンク電流と判別した場合にはカウントアップを行う。
図11では省略されているが、アップダウンカウンタ回路UDCUNT2は、
図9のマスク信号MSKと同様に、駆動電流検出イネーブル信号CNT_EN(
図6参照)のアサート期間で、このようなカウント動作を行う。その結果、駆動電流位相検出部IPHDは、
図9の場合と同様に、駆動電流検出イネーブル信号CNT_ENがネゲートされた時点の最終的なカウント値に基づいて、駆動電流位相θiを定める。
【0145】
《駆動電圧位相生成部の詳細》
図12は、
図5の駆動電圧位相生成部における位相演算部および位相補正部の詳細な構成例を示す図である。
図24(a)のベクトル図に示したように、逆起電圧Vbemfの位相(例えば基準相の基準BEMF位相θbemf)とコイル電流Icoilの位相(基準相の駆動電流位相θi)との位相差をゼロに定めるためには、基準BEMF位相θbemfに対して駆動電圧Vdrvの位相を駆動電圧位相θdrvだけ進める必要がある。
【0146】
この駆動電圧位相θdrvは、モータSPMの角周波数ωおよびトルク定数Keを用いて、式(17)で示される。式(17)において、“ω・Ke”は、
図24(a)の逆起電圧Vbemfに該当する。
【0147】
θdrv=tan
−1{ω・Lm・Icoil/(ω・Ke+Rm・Icoil)} (17)
ここで、駆動電圧位相θdrvは、通常、十分に小さい値となる。この場合、式(18)の近似を用いて“tan
−1”を省くことができ、この省いた式を変形して式(19)が得られる。
【0148】
θdrv≒tan
−1(θdrv) (18)
θdrv=(Lm/Rm)・Icoil/{(Ke/Rm)+(Icoil/ω)} (19)
図12に示す位相演算部PHCALは、この式(19)に基づき駆動電圧位相θdrvを演算する。具体的には、式(19)において、“Ke/Rm”に対応する値を特性定数K1で定め、“Lm/Rm”に対応する値を特性定数K2で定め、“Icoil”に対応する値をピーク格納部PKHDからの駆動電流振幅ISPNOUTで定め、“1/ω”に対応する値を回転周期カウント値NCNTで定める。この場合、式(19)は、式(20)となり、駆動電圧位相θdrvは、式(21)の“Kdrv”に“ISPNOUT”を乗算することで得られる。
【0149】
θdrv=K2・ISPNOUT/(K1+ISPNOUT・NCNT) (20)
Kdrv=K2/(K1+ISPNOUT・NCNT) (21)
図12に示す位相演算部PHCALは、減算器SB30と、乗算器MUL30〜MUL33と、積分器ITG30と、加算器ADD30とを備える。乗算器MUL33は、“NCNT・ISPNOUT”を算出し、加算器ADD30は、乗算器MUL33の出力に“K1”を加算することで式(21)の分母を算出する。乗算器MUL32は、加算器ADD30の出力に“Kdrv”を乗算する。減算器SB30は、乗算器MUL32の乗算結果と“K2”との誤差を算出し、乗算器MUL30は、当該誤差を積分ゲインKで増幅し、積分器ITG30は、乗算器MUL30の乗算結果を積分することで式(21)の“Kdrv”を算出する。
【0150】
すなわち、
図12の位相演算部PHCALは、乗算器MUL32の乗算結果(すなわち、“Kdrv・(K1+ISPNOUT・NCNT)”)と“K2”との誤差がゼロに収束するように、“Kdrv”をフィードバック制御することで“Kdrv”を算出するような演算回路を備える。誤差がゼロに収束した場合、“Kdrv・(K1+ISPNOUT・NCNT)”は“K2”に等しくなり、その結果、“Kdrv”は式(21)の値となる。乗算器MUL31は、“Kdrv”に“ISPNOUT”を乗算することで式(20)の駆動電圧位相θdrvを算出する。
【0151】
このように、フィードバック制御を利用した演算回路を用いることで、複雑な構成となり得る割り算器を用いずに式(20)の演算を行うことができ、回路構成の簡素化等が図れる。なお、ここでは、乗算器MUL30は、加算器ADD30の算出結果に応じて積分ゲインKを可変制御する構成となっている。具体的には、積分ゲインKは、例えば、加算器ADD30の出力が大きくなるにつれて、段階的に小さくなるように制御される。これにより、加算器ADD30の出力の大きさに関わらず、フィードバック制御の帯域を同程度に保つことができる。
【0152】
図12に示す位相補正部PHCPは、平均化回路AVE3と、乗算器MUL34,MUL35と、誤差検出器EDET1と、積分器ITG31と、加算器ADD31とを備える。平均化回路AVE3は、入力された駆動電流位相θiを、時系列的に平均化する。乗算器MUL34は、当該平均化された駆動電流位相θiにゲイン調整パラメータKviを乗算する。誤差検出器EDET1は、ゼロ位相と乗算器MUL34の乗算結果との位相誤差Δθvを検出する。すなわち、
図9で述べたように、定常状態では、基準BEMF位相θbemfの位相誤差はゼロとなるため、駆動電流位相θiと基準BEMF位相θbemfとの位相誤差は、駆動電流位相θiとゼロ位相との位相誤差に該当する。
【0153】
乗算器MUL35は、誤差検出器EDET1の検出結果(Δθv)にゲイン調整パラメータ(すなわち積分ゲイン)Kadjを乗算し、積分器ITG31は、当該乗算器MUL35の乗算結果を積分することで補正値を算出する。加算器ADD31は、位相演算部PHCALからの駆動電圧位相θdrvに積分器ITG31で算出された補正値を加えることで、基準の駆動電圧位相θdrvRを算出する。なお、ゲイン調整パラメータKviは、駆動電流位相θiの変化に対する基準の駆動電圧位相θdrvRの感度を調整する係数である。
【0154】
図13は、
図5の駆動電圧位相生成部における相間位相ばらつき制御部の詳細な構成例を示す図である。
図13の相間位相ばらつき制御部PHDCTは、乗算器MUL40,MUL41v,MUL41wと、レジスタ回路REG40vr,REG40vf,REG40wr,REG40wfと、平均化回路AVE4v,AVE4wと、加算器ADD40u,ADD40v,ADD40wとを備える。
【0155】
乗算器MUL40は、位相誤差検出部PHEDからのカウント値となる位相誤差信号ECNTに位相誤差検出ゲインKeを乗算する。位相誤差検出ゲインKeは、カウント値を位相へ換算する係数である。レジスタ回路REG40vrは、相選択信号SELに応じて、乗算器MUL40からのv相の立ち上がり時の補正量を保持し、レジスタ回路REG40vfは、相選択信号SELに応じて、乗算器MUL40からのv相の立ち下がり時の補正量を保持する。同様に、レジスタ回路REG40wr,REG40wfは、w相の立ち上がり時と立ち下がり時の補正量を保持する。加算器ADD40uは、基準の駆動電圧位相θdrvRにゼロを加算することでu相の駆動電圧位相θdrvUを出力する。
【0156】
平均化回路AVE4vは、レジスタ回路REG40vr,REG40vfの出力値を平均化することでv相の補正量ΔθdrvVを算出する。相間位相ばらつき制御部PHDCTは、このv相の補正量ΔθdrvV(=v相のBEMFの位相ばらつきの電気角Δθbemf_V)を位相ばらつき信号PdVとして出力する。乗算器MUL41vは、v相の補正量ΔθdrvVに“1/2”を乗算し、加算器ADD40vは、駆動電圧位相θdrvRに乗算器MUL41vの乗算結果を加算することでv相の駆動電圧位相θdrvVを出力する。
【0157】
例えば、
図24(b)を参照して、v相のBEMF位相θbemf_Uが基準BEMF位相θbemfに対してΔθbemfだけシフトしている場合、v相の駆動電圧位相θdrvVを同じくΔθbemfだけシフトさせれば、
図24(a)のようなベクトルの相対関係が保たれる。その結果、v相のBEMF位相と駆動電流位相とを同位相に定めることができる。
【0158】
また、v相の駆動電圧位相θdrvVをΔθdrvVだけシフトさせるためには、実際には、乗算器MUL41vを用いて、基準の駆動電圧位相θdrvRに対してΔθdrvVの半分(1/2×ΔθdrvV)の補正値を付加すればよい。これは、各相の駆動電圧位相θdrvは、中性点CTの位相を基準として算出されるためである。実際にモータSPMを駆動する場合、中性点CTを仮想接地として、各相に差動の駆動電圧が印加される。このような差動動作を前提として、例えば、u相の駆動電圧位相θdrvUを基準にv相の駆動電圧位相θdrvVをΔθdrvVシフトさせるためには、中性点CTの位相を基準に考えると、v相にΔθdrvVの半分の補正値を付加すればよい。
【0159】
w相に関しても、v相の場合と同様の動作が行われる。すなわち、平均化回路AVE4wは、レジスタ回路REG40wr,REG40wfの出力値を平均化することでw相の補正量ΔθdrvWを算出する。相間位相ばらつき制御部PHDCTは、このw相の補正量ΔθdrvW(=w相のBEMFの位相ばらつきの電気角Δθbemf_W)を位相ばらつき信号PdWとして出力する。乗算器MUL41wは、w相の補正量ΔθdrvWに“1/2”を乗算し、加算器ADD40wは、駆動電圧位相θdrvRに乗算器MUL41wの乗算結果を加算することでw相の駆動電圧位相θdrvWを出力する。
【0160】
なお、この例では、
図2のPWM変調部PWMMDは、3相のBEMFの立ち上がり時の電圧ゼロクロス点と立ち下がり時の電圧ゼロクロス点をそれぞれ検出するため、それぞれ電気角の位置が異なる6個のマスク信号MSKを順次出力するものとする。また、PWM変調部PWMMDは、マスク信号MSKの出力と並行して、当該マスク信号MSKが6個のマスク信号MSKの中のどれかを表す相選択信号SELを出力するものとする。さらに、図示は省略されているが、
図8の位相誤差検出部PHEDで基準相(u相)の位相誤差を検出する際にも、
図13の場合と同様の平均化回路等を設けることで、立ち上がり時と立ち下がり時の平均的な位相誤差信号ECNTを検出してもよい。
【0161】
《相間振幅ばらつき検出部の詳細》
図14は、
図2における相間振幅ばらつき検出部の詳細な構成例を示す図である。
図14に示す相間振幅ばらつき検出部AMDETは、アンド演算回路AD50(u,v,w),AD51(u,v,w)と、レジスタ回路REG50(u1,u2,v1,v2,w1,w2)と、減算器SB50(u,v,w)と、除算器DIV50(v,w)と、減算器SB51(v,w)とを有する。
【0162】
相選択信号SELによる選択相がu相の場合、アンド演算回路AD50uの出力はサンプリング信号SPL1のアサート期間でアサートされ、アンド演算回路AD51uの出力はサンプリング信号SPL2のアサート期間でアサートされる。同様に、選択相がv相の場合、アンド演算回路AD50vの出力はサンプリング信号SPL1に応じてアサートされ、アンド演算回路AD51vの出力はサンプリング信号SPL2に応じてアサートされる。また、選択相がw相の場合、アンド演算回路AD50wの出力はサンプリング信号SPL1に応じてアサートされ、アンド演算回路AD51wの出力はサンプリング信号SPL2に応じてアサートされる。サンプリング信号SPL1,SPL2は、
図2のPWM変調部PWMMDによって生成される。
【0163】
レジスタ回路REG50u1,REG50u2,REG50v1,REG50v2,REG50w1,REG50w2は、それぞれ、アンド演算回路AD50u,AD51u,AD50v,AD51v,AD50w,AD51wの出力のアサートに応じて、アナログ・ディジタル変換器ADC2からのディジタル値ADCO2をラッチする。減算器SB50uは、レジスタ回路REG50u2の出力値とレジスタ回路REG50u1の出力値との差分値を算出し、当該差分値をu相の逆起電圧振幅Dauとして出力する。同様に、減算器SB50vは、レジスタ回路REG50v1,REG50v2に対する差分値を算出してv相の逆起電圧振幅Davを出力し、減算器SB50wは、レジスタ回路REG50w1,REG50w2に対する差分値を算出してw相の逆起電圧振幅Dawを出力する。
【0164】
除算器(振幅比演算部)DIV50vは、u相の逆起電圧振幅Dauを‘y’とし、v相の逆起電圧振幅Davを‘x’とした場合に、“x/y”を算出する。減算器SB51vは、除算器DIV50vの算出結果から“1”を減算することでv相の振幅ばらつき信号AdVを算出する。同様に、除算器(振幅比演算部)DIV50wは、u相の逆起電圧振幅Dauを‘y’とし、w相の逆起電圧振幅Dawを‘x’とした場合に、“x/y”を算出する。減算器SB51wは、除算器DIV50wの算出結果から“1”を減算することでw相の振幅ばらつき信号AdWを算出する。
【0165】
図15は、
図14の相間振幅ばらつき検出部の動作例を説明する波形図である。前提として、
図7の逆起電圧位相検出部(逆起電圧振幅検出部)BPHDは、選択相の駆動端子がマスク信号MSKのアサート期間でハイインピーダンスに設定された状態で、当該アサート期間の中で当該駆動端子の電圧(Vu,Vv,Vwのいずれか)をサンプリング信号BSHに応じて時系列的に複数回サンプリングする。サンプリング信号BSHは、PWM周期毎にアサートされる。そして、逆起電圧位相検出部BPHDは、複数回のサンプリングを行いながらサンプリング電圧(すなわち逆起電圧振幅BEMFO)を順次出力し、アナログ・ディジタル変換器ADC2は、当該逆起電圧振幅BEMFOのディジタル値ADCO2を出力する。
【0166】
図14の相間振幅ばらつき検出部AMDETは、逆起電圧振幅検出部の一部として機能し、複数回分(
図15の例では4回分)のサンプリング電圧(すなわちディジタル値ADCO2)の中の予め定めた2回分のサンプリング電圧を対象として差分値を算出し、当該差分値を逆起電圧振幅として検出する。
図15の例では、例えば、選択相がu相の状態で、アナログ・ディジタル変換器ADC2による1回目のサンプリング電圧に伴うディジタル値Du1の出力期間でサンプリング信号SPL1がアサートされ、4回目のサンプリング電圧に伴うディジタル値Du4の出力期間でサンプリング信号SPL2がアサートされる。
【0167】
相間振幅ばらつき検出部AMDETは、ディジタル値Du1をレジスタ回路REG50u1にラッチし、ディジタル値Du4をレジスタ回路REG50u2にラッチし、その差分値(Du4−Du1)を逆起電圧振幅Dauとして検出する。すなわち、相間振幅ばらつき検出部AMDETは、マスク信号MSKのアサート期間におけるBEMFの変動量を逆起電圧振幅として検出する。
【0168】
このような方式を用いることで、逆起電圧振幅を高精度に検出することが可能になる。すなわち、
図9等で述べたように、マスク信号MSKのアサート期間は、PLL制御部PLLCTによって、常に、基準相のBEMFの電圧ゼロクロス点を中間時刻とした一定区間(例えば15deg)に保たれる。このため、BEMF振幅の検出期間も、時間軸上でばらつかず、360degの中の常に同じ電気角の範囲に維持される。さらに、マスク信号MSKとPWM周期とは同期しているため、このBEMF振幅の検出期間の中でサンプリング信号SPL1,SPL2がアサートされるタイミングも固定となる。これらの結果、逆起電圧振幅の検出精度が高まる。
【0169】
また、逆起電圧位相を検出するための回路を一部併用して逆起電圧振幅の検出を行っているため、回路面積のオーバヘッドを抑制できる場合がある。なお、ここでは、逆起電圧振幅を検出するためのアナログ・ディジタル変換器ADC2を別途設けたが、当該アナログ・ディジタル変換器ADC2は、アナログ・ディジタル変換器ADCと併用することも可能である。すなわち、アナログ・ディジタル変換器ADCは、常時、相電流を検出する必要はなく、その空いた期間で逆起電圧振幅を検出することも可能である。
【0170】
《トルク補正部の詳細》
図16は、
図2におけるトルク補正部の詳細な構成例を示す図である。
図16のトルク補正部TRQCPは、複数の演算部CAL1〜CAL6と、選択回路SELC30,SELC31と、加算器ADD10とを備える。演算部CAL1は、v相およびw相の振幅ばらつき信号AdV,AdWを受けて、式(15)のGdAを演算し、演算部CAL2は、v相およびw相の振幅ばらつき信号AdV,AdWを受けて、式(16)のDdAを演算する。
【0171】
演算部CAL3は、v相およびw相の位相ばらつき信号PdV,PdWを受けて、式(7)のGdPを演算し、演算部CAL4は、v相およびw相の位相ばらつき信号PdV,PdWを受けて、式(8)のDdPを演算する。演算部CAL5は、演算部CAL1,CAL2からのGdA,DdAを受けて、式(13)の振幅用トルク補正係数DcrA0の中の周期関数(sin関数)の項(DcrA0’)を演算する。演算部CAL6は、演算部CAL3,CAL4からのGdP,DdPを受けて、式(5)の位相用トルク補正係数DcrP0の中の周期関数(sin関数)の項(DcrP0’)を演算する。この際に、演算部CAL5,CAL6は、通電タイミング信号TIMに基づき基準BEMF位相θbemfのパラメータ値を順次更新しながら演算を行う。この更新周期は、例えば、PWM周期と同じであってもよい。
【0172】
選択回路SELC30は、振幅用トルク補正イネーブル信号AENに応じて、演算部CAL5の演算結果かゼロの一方を出力することで、振幅用トルク補正係数DcrA0を電流指示値SPNCRに重畳させるか否かを選択する。選択回路SELC31は、位相用トルク補正イネーブル信号PENに応じて、演算部CAL6の演算結果かゼロの一方を出力することで、位相用トルク補正係数DcrP0を電流指示値SPNCRに重畳させるか否かを選択する。各トルク補正イネーブル信号(AEN,PEN)の値は、
図2のパラメータ設定レジスタ部PREGで設定可能となっている。加算器ADD10は、選択回路SELC30,SELC31の出力に“1”(すなわち、式(13)および式(5)の定数項)を加算することでトルク補正係数KcrAPを算出する。
【0173】
演算部CAL1〜CAL6は、例えば、論理回路や、場合によっては、論理回路にsin関数やtan
−1関数の値を定めたテーブルを組み合わせること等で構成される。また、十分な演算速度を得られる場合には、演算部CAL1〜CAL6をプロセッサ等で構成することも可能である。
【0174】
ここで、特に限定はされないが、振幅ばらつき信号AdV,AdWや位相ばらつき信号PdV,PdWの値は、例えば、モータシステムの起動時や、または、外部環境の変化時等で、マスク信号MSK等を用いて所定の検出動作を行うことで定められる。一方、モータSPMの定常回転時には、検出動作(マスク信号MSKの生成等)は停止され、検出された値を用いて算出されたトルク補正係数KcrAPで電流指示値SPNCRが補正される。このように、トルク補正係数KcrAPを用いた補正は、モータSPMの定常回転時を除く期間では特に実行されなくてもよいため、
図16では、選択回路SELC30,SELC31によってゼロを選択できる構成となっている。
【0175】
また、場合によっては、例えば、電流指示値SPNCRに振幅用トルク補正係数DcrA0を反映させると、位相ばらつき信号PdV,PdWの値が若干変化するといったように、振幅用トルク補正係数DcrA0と位相用トルク補正係数DcrP0とが互いに干渉する可能性がある。そこで、例えば、一方のトルク補正係数を電流指示値SPNCRに反映させた状態で他方のばらつき信号の値を定めるといったような動作を行いたい場合に、選択回路SELC30,SELC31を利用することも可能である。
【0176】
《実施の形態1の主要な効果》
以上、実施の形態1のモータ駆動装置およびモータシステムを用いることで、代表的には、モータSPMに着磁ばらつきが存在する場合であっても、モータSPMのトルクリップルを低減可能になる。その結果、モータSPMの低振動化および低騒音化が図れる。また、モータSPMの製造工程(加工精度、組み立て精度等)に対する要求を緩和できるため、モータSPMの低コスト化が図れる。
【0177】
図25は、本発明の比較例[2]となるモータ駆動装置において、トルクリップルの低減方式の一例を説明する図である。前述したように、各相のトルクは、“BEMF×駆動電流”の関数となる。したがって、
図25に示されるように、例えば、v相のBEMF位相が1deg進んでいる場合、駆動電流位相を1deg遅らせることで、乗算によってばらつきが相殺され、トルクリップルを低減することが可能となる。具体的な方式として、例えば、
図13において、位相誤差信号ECNTに式(22)の係数を乗算して補正量ΔθdrvV,ΔθdrvWを定めればよい。
【0179】
式(22)は、BEMF位相のばらつき量(Δθbemf)と駆動電流位相のばらつき量(Δθi)がΔθi=−Δθbemfとなるように設定するための調整ゲインである。しかし、式(22)には、モータSPMのインピーダンスZmや駆動電流値(Icoil)が含まれている。これらは、温度等の環境変化に応じて変化する場合があるため、例えば、各種環境変化を想定して予め複数のインピーダンスZmの値等を手動で準備しておくようなことが必要とされる。一方、実施の形態1の方式では、環境変化があった場合には、単に検出動作を介して位相ばらつき信号PdV,PdWの値や振幅ばらつき信号AdV,AdWの値を更新すればよく、環境変化に対して容易に対応可能である。
【0180】
図27は、本発明の比較例[3]となるモータ駆動装置において、トルクリップルの低減方式の他の一例を説明する図である。
図4で述べたように、例えば、u相を基準として、v相のBEMF振幅が−2%小さい場合には、駆動電流振幅を+2%大きくすることでトルクリップルを低減することが可能である。したがって、
図27に示されるように、例えば、電流指示値SPNCRを各相の振幅ばらつきに応じて60deg毎に階段状に補正する方式が考えられる。しかし、このような方式では、60deg毎の階段状の切り替えに伴い6次のトルクリップルが生じる恐れがある。一方、実施の形態1の方式では、このような問題は生じない。
【0181】
(実施の形態2)
《トルク補正部の詳細(応用例)》
図17は、本発明の実施の形態2によるモータ駆動装置において、
図2におけるトルク補正部の詳細な構成例を示す図である。
図17に示すトルク補正部TRQCPは、
図16の場合と同様の演算部CAL5,CAL6、選択回路SELC30,SELC31および加算器ADD10を備える。これに加えて、当該トルク補正部TRQCPは、選択回路SELC40,SELC41と、演算部CAL13,CAL24と、アンド演算回路AD60,AD61と、レジスタ回路REG60〜REG63と、加算器ADD20,ADD21とを備える。
【0182】
演算部CAL13は、
図16における演算部CAL1,CAL3を共通化したものであり、パラメータKdV,KdWを含む式(23)の関数を演算する。すなわち、演算部CAL1,CAL3は、異なるパラメータを用いて式(23)と同じ関数を演算しており、演算部CAL13は、この異なるパラメータを選択回路SELC40,SELC41で入れ替える形で当該関数を演算する。
【0183】
√((KdV−KdW)
2+KdV・KdW)/3 (23)
演算部CAL24は、
図16における演算部CAL2,CAL4を共通化したものであり、パラメータKdV,KdWを含む式(24)の関数を演算する。すなわち、演算部CAL2,CAL4は、異なるパラメータを用いて式(24)と同じ関数を演算しており、演算部CAL24は、この異なるパラメータを選択回路SELC40,SELC41で入れ替える形で当該関数を演算する。
【0184】
−tan
−1(√3・(KdV−KdW)/(KdV+KdW)) (24)
選択回路SELC40,SELC41は、v相とw相の振幅ばらつき信号AdV,AdWをそれぞれパラメータKdV,KdWに定めるか、v相とw相の位相ばらつき信号PdV,PdWをそれぞれパラメータKdV,KdWに定めるかを選択する。具体的には、選択回路SELC40,SELC41は、振幅用トルク補正イネーブル信号AENがアサートされた場合には、パラメータKdV,KdWをそれぞれ振幅ばらつき信号AdV,AdWに定める。一方、選択回路SELC40,SELC41は、振幅用トルク補正イネーブル信号AENがネゲートされた場合には、パラメータKdV,KdWをそれぞれ位相ばらつき信号PdV,PdWに定める。
【0185】
アンド演算回路AD60は、振幅用トルク補正イネーブル信号AENのアサート時および位相用トルク補正イネーブル信号PENのネゲート時にレジスタ回路REG60,REG61を有効化する。一方、アンド演算回路AD61は、振幅用トルク補正イネーブル信号AENのネゲート時および位相用トルク補正イネーブル信号PENのアサート時にレジスタ回路REG62,REG63を有効化する。
【0186】
各トルク補正イネーブル信号AEN/PENがアサート/ネゲートの場合、レジスタ回路REG60は、演算部CAL13の演算結果をラッチし、レジスタ回路REG61は、演算部CAL24の演算結果をラッチする。レジスタ回路REG60の出力は式(15)の振幅パラメータ(GdA)となり、レジスタ回路REG61の出力は、加算器ADD20によって“π/2+帯域補償値θcc”が加えられたのち、式(16)の位相パラメータ(DdA)となる。
【0187】
一方、各トルク補正イネーブル信号AEN/PENがネゲート/アサートの場合、レジスタ回路REG62は、演算部CAL13の演算結果をラッチし、レジスタ回路REG63は、演算部CAL24の演算結果をラッチする。レジスタ回路REG62の出力は“2”が乗算されたのち式(7)の振幅パラメータ(GdP)となり、レジスタ回路REG63の出力は、加算器ADD21によって“π+帯域補償値θcc”が加えられたのち式(8)の位相パラメータ(DdP)となる。
【0188】
そして、
図16の場合と同様に、演算部CAL5は、演算部CAL13の演算結果を反映した振幅(GdA)と演算部CAL24の演算結果を反映した位相(DdA)とを持つ周期関数を演算することで、式(13)の振幅用トルク補正係数DcrA0の中の周期関数(sin関数)の項(DcrA0’)を算出する。同様に、演算部CAL6は、演算部CAL13の演算結果を反映した振幅(GdP)と演算部CAL24の演算結果を反映した位相(DdP)とを持つ周期関数を演算することで、式(5)の位相用トルク補正係数DcrP0の中の周期関数(sin関数)の項(DcrP0’)を算出する。
【0189】
ここで、帯域補償値θccは、電流制御ループによる遅延を補償する値であり、
図2のパラメータ設定レジスタ部PREGで設定可能な値である。すなわち、演算部CAL5,CAL6は、モータSPMの回転に同期する基準BEMF位相θbemfをPLL制御部PLLCTから受けて演算を行うが、この演算結果は、厳密には、PI補償器PICP等を含む電流制御ループ内の遅延を経てモータSPMに反映される。そこで、モータSPM上でトルク補正係数KcrAPの位相を基準BEMF位相θbemfに同期させるため、この電流制御ループ内の遅延に相当する帯域補償値θccが用いられる。当該帯域補償値θccは、実際には、
図16の構成にも適用される。
【0190】
以上、実施の形態2のモータ駆動装置およびモータシステムを用いることで、実施の形態1で述べた各種効果が得られることに加えて、演算部を共通化することで回路規模の低減が図れる。実際上の運用では、例えば、まず、各トルク補正イネーブル信号AEN/PENをアサート/ネゲートとすることでGdA,DdAをレジスタREG60,REG61に保持させ、各トルク補正イネーブル信号AEN/PENをネゲート/アサートとすることでGdP,DdPをレジスタREG62,REG63に保持させる。そして、各トルク補正イネーブル信号AEN/PENをアサート/アサートとすることで、この保持した値を用いてトルク補正係数KcrAPを算出させる。
【0191】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0192】
例えば、実施の形態の方式は、HDD装置に限らず、各種モータの駆動方法として適用可能である。具体例として、DVD再生録画装置やブルーレイ再生録画装置等が挙げられる。または、エアコンのインバータシステム等において、モータの定常回転時に、振動、騒音を低減する技術として適用することも可能である。