(57)【要約】【課題】モータのトルクリップルを低減可能なモータ駆動装置およびモータシステムを提供する。【解決手段】電流制御ループは、モータＳＰＭの駆動電流を検出し、当該電流検出値と、目標値となる電流指示値ＳＰＮＣＲとの誤差を検出し、当該誤差を反映してＰＷＭ信号ＰＷＭＯＮ＿ＭＯＤｕ，ｖ，ｗのデューティを定める。逆起電圧位相検出部ＢＰＨＤは、モータＳＰＭにおける各相の逆起電圧の位相を検出する。トルク補正部ＴＲＱＣＰは、逆起電圧の３相間の位相ばらつきに基づいて周期関数となる第１のトルク補正係数（ＫｃｒＡＰ）を算出し、電流指示値ＳＰＮＣＲに第１のトルク補正係数（ＫｃｒＡＰ）を重畳させることで電流指示値ＳＰＮＣＲを補正する。【選択図】図２
2018107887.tif 000002
【特許請求の範囲】
【請求項１】
外部に設けられる３相のモータを駆動するモータ駆動装置であって、
前記３相のモータ駆動端子にそれぞれ結合される３対のハイサイドトランジスタおよびロウサイドトランジスタを含み、ＰＷＭ（Pulse Width Modulation）信号を用いて前記３相のモータ駆動端子に３相の正弦波電圧となる駆動電圧をそれぞれ印加するインバータ部と、
前記モータの駆動電流を検出し、当該電流検出値と、前記駆動電流の目標値となる電流指示値との誤差を検出し、当該誤差を反映して前記ＰＷＭ信号のデューティを定める電流制御ループと、
前記モータにおける各相の逆起電圧の位相を検出する逆起電圧位相検出部と、
前記逆起電圧の３相間の位相ばらつきに基づいて周期関数となる第１のトルク補正係数を算出し、前記電流指示値に前記第１のトルク補正係数を重畳させることで前記電流指示値を補正するトルク補正部と、
を有する、
モータ駆動装置。
【請求項２】
請求項１記載のモータ駆動装置において、
前記第１のトルク補正係数は、前記逆起電圧の周波数の２倍の周波数を持ち、前記逆起電圧の３相間の位相ばらつきに応じて振幅および位相が変化する周期関数である、
モータ駆動装置。
【請求項３】
請求項２記載のモータ駆動装置において、
さらに、前記モータの各相毎に前記駆動電流の位相と前記逆起電圧の位相とが一致するように、前記モータ駆動端子に前記駆動電圧を印加する際の各相毎の駆動電圧位相を定める駆動電圧位相生成部を有する、
モータ駆動装置。
【請求項４】
請求項１記載のモータ駆動装置において、
さらに、前記モータにおける各相の前記逆起電圧の振幅を検出する逆起電圧振幅検出部を有し、
前記トルク補正部は、さらに、前記逆起電圧の３相間の振幅ばらつきに基づいて周期関数となる第２のトルク補正係数を算出し、前記電流指示値に前記第２のトルク補正係数を重畳させることで前記電流指示値を補正する、
モータ駆動装置。
【請求項５】
請求項４記載のモータ駆動装置において、
前記第１のトルク補正係数は、前記逆起電圧の周波数の２倍の周波数を持ち、前記逆起電圧の３相間の位相ばらつきに応じて振幅および位相が変化する周期関数であり、
前記第２のトルク補正係数は、前記逆起電圧の周波数の２倍の周波数を持ち、前記逆起電圧の３相間の振幅ばらつきに応じて振幅および位相が変化する周期関数である、
モータ駆動装置。
【請求項６】
請求項５記載のモータ駆動装置において、
前記トルク補正部は、
前記第１のトルク補正係数を算出する第１の演算部と、
前記第２のトルク補正係数を算出する第２の演算部と、
前記第１の演算部で算出された前記第１のトルク補正係数を前記電流指示値に重畳させるか否かを選択する第１の選択回路と、
前記第２の演算部で算出された前記第２のトルク補正係数を前記電流指示値に重畳させるか否かを選択する第２の選択回路と、
を有する、
モータ駆動装置。
【請求項７】
請求項５記載のモータ駆動装置において、
前記トルク補正部は、
第１のパラメータおよび第２のパラメータを含む第１の関数を演算する第３の演算部と、
前記第１のパラメータおよび前記第２のパラメータを含む第２の関数を演算する第４の演算部と、
前記３相中の１相を基準相として、他の２相と前記基準相との間の前記位相ばらつきをそれぞれ前記第１のパラメータおよび前記第２のパラメータに定めるか、前記他の２相と前記基準相との間の前記振幅ばらつきをそれぞれ前記第１のパラメータおよび前記第２のパラメータに定めるかを選択する第３の選択回路と、
前記逆起電圧の周波数の２倍の周波数と、前記第３の演算部の演算結果を反映した振幅と、前記第４の演算部の演算結果を反映した位相とを持つ周期関数を演算することで前記第１のトルク補正係数を算出する第１の演算部と、
前記逆起電圧の周波数の２倍の周波数と、前記第３の演算部の演算結果を反映した振幅と、前記第４の演算部の演算結果を反映した位相とを持つ周期関数を演算することで前記第２のトルク補正係数を算出する第２の演算部と、
を有する、
モータ駆動装置。
【請求項８】
請求項４記載のモータ駆動装置において、
さらに、前記逆起電圧の位相に同期するタイミング信号をＰＬＬ（Phase Locked Loop）制御によって生成するＰＬＬ制御部を有し、
前記逆起電圧位相検出部は、前記３相中の検出対象とする相の前記モータ駆動端子が第１の期間でハイインピーダンスに設定された状態で、前記第１の期間の中で前記モータ駆動端子の電圧を時系列的に複数回サンプリングしながら当該サンプリング電圧が電圧ゼロクロス点を通過するタイミングを検出することで前記逆起電圧の位相を検出し、
前記逆起電圧振幅検出部は、前記逆起電圧位相検出部で取得される複数回分の前記サンプリング電圧の中の予め定めた２回分のサンプリング電圧を対象として差分値を算出し、当該算出された差分値を前記逆起電圧の振幅として検出し、
前記第１の期間は、前記ＰＬＬ制御部による前記タイミング信号に基づく所定の電気角の範囲である、
モータ駆動装置。
【請求項９】
外部に設けられる３相のモータを駆動するモータ駆動装置であって、
前記３相のモータ駆動端子にそれぞれ結合される３対のハイサイドトランジスタおよびロウサイドトランジスタを含み、ＰＷＭ（Pulse Width Modulation）信号を用いて前記３相のモータ駆動端子に３相の正弦波電圧となる駆動電圧をそれぞれ印加するインバータ部と、
前記モータの駆動電流を検出し、当該電流検出値と、前記駆動電流の目標値となる電流指示値との誤差を検出し、当該誤差を反映して前記ＰＷＭ信号のデューティを定める電流制御ループと、
前記モータにおける各相の逆起電圧の振幅を検出する逆起電圧振幅検出部と、
前記逆起電圧の３相間の振幅ばらつきに基づいて周期関数となるトルク補正係数を算出し、前記電流指示値に前記トルク補正係数を重畳させることで前記電流指示値を補正するトルク補正部と、
を有する、
モータ駆動装置。
【請求項１０】
請求項９記載のモータ駆動装置において、
前記トルク補正係数は、前記逆起電圧の周波数の２倍の周波数を持ち、前記逆起電圧の３相間の振幅ばらつきに応じて振幅および位相が変化する周期関数である、
モータ駆動装置。
【請求項１１】
請求項１０記載のモータ駆動装置において、さらに、
前記逆起電圧の位相に同期するタイミング信号をＰＬＬ（Phase Locked Loop）制御によって生成するＰＬＬ制御部と、
前記３相の中の検出対象とする相の前記モータ駆動端子が第１の期間でハイインピーダンスに設定された状態で、前記第１の期間の中で前記モータ駆動端子の電圧を時系列的に複数回サンプリングしながら当該サンプリング電圧が電圧ゼロクロス点を通過するタイミングを検出することで前記逆起電圧の位相を検出する逆起電圧位相検出部と、
を有し、
前記逆起電圧振幅検出部は、前記逆起電圧位相検出部で取得される複数回分の前記サンプリング電圧の中の予め定めた２回分のサンプリング電圧を対象として差分値を算出し、当該算出された差分値を前記逆起電圧の振幅として検出し、
前記第１の期間は、前記ＰＬＬ制御部による前記タイミング信号に基づく所定の電気角の範囲である、
モータ駆動装置。
【請求項１２】
請求項１０記載のモータ駆動装置において、さらに、
前記３相中の１相を基準相として、前記基準相の前記逆起電圧の振幅と他の２相の前記逆起電圧の振幅との比率を算出することで前記３相間の振幅ばらつきを検出する相間振幅ばらつき検出部を有する、
モータ駆動装置。
【請求項１３】
データを記憶するディスクと、
前記ディスクを回転させるモータと、
前記モータを３相の正弦波で駆動するモータ駆動装置と、
を備えるモータシステムであって、
前記モータ駆動装置は、
前記３相のモータ駆動端子にそれぞれ結合される３対のハイサイドトランジスタおよびロウサイドトランジスタを含み、ＰＷＭ（Pulse Width Modulation）信号を用いて前記３相のモータ駆動端子に３相の正弦波電圧となる駆動電圧をそれぞれ印加するインバータ部と、
前記モータの駆動電流を検出し、当該電流検出値と、前記駆動電流の目標値となる電流指示値との誤差を検出し、当該誤差を反映して前記ＰＷＭ信号のデューティを定める電流制御ループと、
前記モータにおける各相の逆起電圧の位相を検出する逆起電圧位相検出部と、
前記逆起電圧の３相間の位相ばらつきに基づいて周期関数となる第１のトルク補正係数を算出し、前記電流指示値に前記第１のトルク補正係数を重畳させることで前記電流指示値を補正するトルク補正部と、
を有する、
モータシステム。
【請求項１４】
請求項１３記載のモータシステムにおいて、
さらに、前記モータにおける各相の前記逆起電圧の振幅を検出する逆起電圧振幅検出部を有し、
前記トルク補正部は、さらに、前記逆起電圧の３相間の振幅ばらつきに基づいて周期関数となる第２のトルク補正係数を算出し、前記電流指示値に前記第２のトルク補正係数を重畳させることで前記電流指示値を補正する、
モータシステム。
【請求項１５】
請求項１４記載のモータシステムにおいて、
前記第１のトルク補正係数は、前記逆起電圧の周波数の２倍の周波数を持ち、前記逆起電圧の３相間の位相ばらつきに応じて振幅および位相が変化する周期関数であり、
前記第２のトルク補正係数は、前記逆起電圧の周波数の２倍の周波数を持ち、前記逆起電圧の３相間の振幅ばらつきに応じて振幅および位相が変化する周期関数である、
モータシステム。
【請求項１６】
請求項１３記載のモータシステムにおいて、
さらに、前記モータの各相毎に前記駆動電流の位相と前記逆起電圧の位相とが一致するように、前記モータ駆動端子に前記駆動電圧を印加する際の各相毎の駆動電圧位相を定める駆動電圧位相生成部を有する、
モータシステム。
【請求項１７】
請求項１５記載のモータシステムにおいて、
前記トルク補正部は、
前記第１のトルク補正係数を算出する第１の演算部と、
前記第２のトルク補正係数を算出する第２の演算部と、
前記第１の演算部で算出された前記第１のトルク補正係数を前記電流指示値に重畳させるか否かを選択する第１の選択回路と、
前記第２の演算部で算出された前記第２のトルク補正係数を前記電流指示値に重畳させるか否かを選択する第２の選択回路と、
を有する、
モータシステム。
【請求項１８】
請求項１５記載のモータシステムにおいて、
前記トルク補正部は、
第１のパラメータおよび第２のパラメータを含む第１の関数を演算する第３の演算部と、
前記第１のパラメータおよび前記第２のパラメータを含む第２の関数を演算する第４の演算部と、
前記３相中の１相を基準相として、他の２相と前記基準相との間の前記位相ばらつきをそれぞれ前記第１のパラメータおよび前記第２のパラメータに定めるか、前記他の２相と前記基準相との間の前記振幅ばらつきをそれぞれ前記第１のパラメータおよび前記第２のパラメータに定めるかを選択する第３の選択回路と、
前記逆起電圧の周波数の２倍の周波数と、前記第３の演算部の演算結果を反映した振幅と、前記第４の演算部の演算結果を反映した位相とを持つ周期関数を演算することで前記第１のトルク補正係数を算出する第１の演算部と、
前記逆起電圧の周波数の２倍の周波数と、前記第３の演算部の演算結果を反映した振幅と、前記第４の演算部の演算結果を反映した位相とを持つ周期関数を演算することで前記第２のトルク補正係数を算出する第２の演算部と、
を有する、
モータシステム。
【請求項１９】
請求項１５記載のモータシステムにおいて、
前記ディスクは、ハードディスクである、
モータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ駆動装置およびモータシステムに関し、例えば、３相のモータを正弦波で駆動する際の技術に関する。
【背景技術】
【０００２】
例えば、特許文献１には、モータの駆動電圧位相を、モータの角周波数、駆動電流値および特性定数（トルク定数、インピーダンス値）を用いた演算式に基づき算出する方式が示される。また、特許文献２には、逆起電圧位相および駆動電流位相の一方を選択して、モータの通電タイミングを制御する方式が示される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−２８８３９６号公報
【特許文献２】特開２００５−１０２４４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
モータを高効率、低騒音、低振動で駆動する方式として、３相の正弦波を用いた正弦波駆動方式が知られている。このような駆動方式では、モータを高効率で駆動するため、モータの逆起電圧の位相と駆動電流の位相とが一致するように、駆動電流の位相が調整される。ただし、モータの駆動電流は、モータに駆動電圧を印加することで生成されるため、実際には、モータの駆動電圧の位相を調整することで駆動電流の位相が調整される。モータの最適な駆動電圧の位相は、例えば、特許文献１に示されるように、モータの角周波数、駆動電流値および特性定数を用いた演算式に基づき算出することができる。
【０００５】
ここで、モータ駆動装置は、例えば、モータの駆動電圧の位相を最適化した状態で、理想的なモータを前提として、３相に１２０ｄｅｇの位相差を持つ駆動電圧を印加する。しかし、実際のモータは、製造ばらつきや製造上の制限等に起因して相間に着磁ばらつきが生じ得る。着磁ばらつきが生じると、逆起電圧の３相間の位相差は、１２０ｄｅｇを基準にばらつきを持ち、また、逆起電圧の振幅も３相間で同一ではなくばらつきを持つ。モータ駆動装置が、このような着磁ばらつきを持つモータを１２０ｄｅｇの位相差を持つ駆動電圧で駆動すると、トルクリップルが発生する。トルクリップルは、モータの低騒音化、低振動化を阻害する要因となる。
【０００６】
後述する実施の形態は、このようなことを鑑みてなされたものであり、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によるモータ駆動装置は、外部に設けられる３相のモータを駆動し、インバータ部と、電流制御ループと、逆起電圧位相検出部と、トルク補正部とを有する。インバータ部は、３相のモータ駆動端子にそれぞれ結合される３対のハイサイドトランジスタおよびロウサイドトランジスタを含み、ＰＷＭ信号を用いて３相のモータ駆動端子に３相の正弦波電圧となる駆動電圧をそれぞれ印加する。電流制御ループは、モータの駆動電流を検出し、当該電流検出値と、目標値となる電流指示値との誤差を検出し、当該誤差を反映してＰＷＭ信号のデューティを定める。逆起電圧位相検出部は、モータにおける各相の逆起電圧の位相を検出する。トルク補正部は、逆起電圧の３相間の位相ばらつきに基づいて周期関数となる第１のトルク補正係数を算出し、電流指示値に第１のトルク補正係数を重畳させることで電流指示値を補正する。
【発明の効果】
【０００８】
前記一実施の形態によれば、モータのトルクリップルを低減可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１によるモータシステムにおいて、その概略構成例を示す機能ブロック図である。
【図２】本発明の実施の形態１によるモータ駆動装置の主要部の構成例を示す機能ブロック図である。
【図３】図２のモータ駆動装置でモータを駆動した場合の、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの一例を示す波形図である。
【図４】モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの図３とは異なる一例を示す波形図である。
【図５】図２のモータ駆動装置において、駆動電圧位相生成部周りの主要部の概略構成例を示すブロック図である。
【図６】図２における回転位置検出部および位相誤差検出部の検出期間の一例を示す波形図である。
【図７】図２における逆起電圧位相検出部の詳細な構成例を示す回路図である。
【図８】図２における位相誤差検出部の詳細な構成例を示す回路図である。
【図９】図７の逆起電圧位相検出部および図８の位相誤差検出部の概略的な動作例を示す説明図である。
【図１０】図２における駆動電流位相検出部の詳細な構成例を示す回路図である。
【図１１】図１０の駆動電流位相検出部の動作原理を示す波形図である。
【図１２】図５の駆動電圧位相生成部における位相演算部および位相補正部の詳細な構成例を示す図である。
【図１３】図５の駆動電圧位相生成部における相間位相ばらつき制御部の詳細な構成例を示す図である。
【図１４】図２における相間振幅ばらつき検出部の詳細な構成例を示す図である。
【図１５】図１４の相間振幅ばらつき検出部の動作例を説明する波形図である。
【図１６】図２におけるトルク補正部の詳細な構成例を示す図である。
【図１７】本発明の実施の形態２によるモータ駆動装置において、図２におけるトルク補正部の詳細な構成例を示す図である。
【図１８】本発明の比較例［１］となるモータ駆動装置の主要部の構成例を示す機能ブロック図である。
【図１９】図１８におけるＳＰＭ駆動部の構成例を示す回路ブロック図である。
【図２０】（ａ）、（ｂ）および（ｃ）は、図１８における正弦波駆動電圧制御部の動作原理を示す説明図である。
【図２１】図１８における正弦波駆動電圧制御部の動作原理を示す説明図である。
【図２２】図１８のモータ駆動装置でモータを駆動した場合の、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの一例を示す波形図である。
【図２３】モータの各相を等価的に表す回路図である。
【図２４】（ａ）、（ｂ）および（ｃ）は、図２３の補足図であり、逆起電圧位相のばらつきに伴い駆動電流位相がどのようにばらつくかを示す説明図である。
【図２５】本発明の比較例［２］となるモータ駆動装置において、トルクリップルの低減方式の一例を説明する図である。
【図２６】モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの図２２とは異なる一例を示す波形図である。
【図２７】本発明の比較例［３］となるモータ駆動装置において、トルクリップルの低減方式の他の一例を説明する図である。
【発明を実施するための形態】
【００１０】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１１】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１２】
また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１４】
（実施の形態１）
《モータシステムの概略》
図１は、本発明の実施の形態１によるモータシステムにおいて、その概略構成例を示す機能ブロック図である。図１には、モータシステムの一例として、ハードディスク（以降、ＨＤＤと略す）装置の構成例が示される。図１のＨＤＤ装置は、ＨＤＤコントローラＨＤＤＣＴ、キャッシュメモリＣＭＥＭ、リードライト装置ＲＷＩＣ、モータ駆動装置ＭＤＩＣ、およびディスク機構ＤＳＫＭを備える。ＨＤＤコントローラＨＤＤＣＴは、例えば、プロセッサ等を含んだシステムオンチップ（ＳｏＣ）等で構成される。キャッシュメモリＣＭＥＭおよびリードライト装置ＲＷＩＣは、例えば、それぞれ異なる半導体チップで構成される。
【００１５】
ディスク機構ＤＳＫＭは、ディスク（ここではハードディスク）ＤＳＫ、３相のスピンドルモータ（以降、モータと略す）ＳＰＭ、ヘッドＨＤ、アーム機構ＡＭ、ボイスコイルモータＶＣＭ、およびランプ機構ＲＭＰを備える。モータＳＰＭは、ディスクＤＳＫを回転駆動する。ボイスコイルモータＶＣＭは、ディスクＤＳＫの径方向におけるヘッドＨＤの位置をアーム機構ＡＭを介して制御する。ヘッドＨＤは、ボイスコイルモータＶＣＭによって定められる所定の位置において、ディスクＤＳＫ上にデータの読み書きを行う。ランプ機構ＲＭＰは、データの読み書きが実行されない場合の、ヘッドＨＤの退避箇所となる。
【００１６】
モータ駆動装置ＭＤＩＣは、例えば、１個の半導体チップで構成される。モータ駆動装置ＭＤＩＣは、ボイスコイルモータＶＣＭを駆動するため、ディジタル・アナログ変換器ＤＡＣおよびＶＣＭ駆動部ＶＣＭＤＶを備える。また、モータ駆動装置ＭＤＩＣは、モータＳＰＭを駆動するため、ＳＰＭ制御部ＳＰＭＣＴ、サンプルホールド回路ＳＨ、センスアンプ回路ＳＡ、アナログ・ディジタル変換器ＡＤＣ、ＳＰＭ駆動部ＳＰＭＤＶ、および回転位置検出部ＲＰＳＤＥＴを備える。さらに、モータ駆動装置ＭＤＩＣは、モータＳＰＭやボイスコイルモータＶＣＭの駆動条件等を設定するため、シリアルＩＦ＆レジスタ部ＳＩＦＲＥＧを備える。
【００１７】
リードライト装置ＲＷＩＣは、ヘッドＨＤを駆動し、ヘッドＨＤにデータの読み書きを行わせる。ＨＤＤコントローラＨＤＤＣＴは、ＨＤＤ装置全体の制御を行う。ＨＤＤコントローラＨＤＤＣＴは、例えば、モータ駆動装置ＭＤＩＣのシリアルＩＦ＆レジスタ部ＳＩＦＲＥＧとの間で通信を行うことで、モータ駆動装置ＭＤＩＣにモータＳＰＭやボイスコイルモータＶＣＭの駆動条件等を指示する。また、ＨＤＤコントローラＨＤＤＣＴは、例えば、リードライト装置ＲＷＩＣに対し、データの読み書きを指示する。この際に、リードライト装置ＲＷＩＣに対して指示する書き込みデータや、ヘッドＨＤからリードライト装置ＲＷＩＣを介して読み出されたデータは、キャッシュメモリＣＭＥＭに保持される。
【００１８】
次に、当該ＨＤＤ装置の全体動作について簡単に説明する。まず、モータ駆動装置ＭＤＩＣは、ＨＤＤコントローラＨＤＤＣＴからモータＳＰＭの起動指令を受信すると、ＳＰＭ制御部ＳＰＭＣＴで生成されるＰＷＭ（Pulse Width Modulation）信号を用いて、ＳＰＭ駆動部ＳＰＭＤＶを介してモータＳＰＭを駆動する。電流検出用抵抗ＲＮＦは、モータＳＰＭの駆動電流を検出する。
【００１９】
当該モータＳＰＭの駆動電流は、サンプルホールド回路ＳＨ、センスアンプ回路ＳＡ、およびアナログ・ディジタル変換器ＡＤＣでディジタル値に変換される。ＳＰＭ制御部ＳＰＭＣＴは、当該駆動電流の電流検出値（ディジタル値）と、駆動電流の目標値となる電流指示値との誤差に基づき、当該誤差を低減するためのＰＷＭ信号を生成する。電流指示値は、例えば、ＨＤＤコントローラＨＤＤＣＴによって指示される。
【００２０】
回転位置検出部ＲＰＳＤＥＴは、例えば、モータＳＰＭの逆起電圧（本明細書ではＢＥＭＦと呼ぶ）を検出することで、モータＳＰＭの回転位置を検出する。ＳＰＭ制御部ＳＰＭＣＴは、このモータＳＰＭの回転位置に応じた適切なタイミングで、モータＳＰＭの駆動電流の値を電流指示値に近づけるためのＰＷＭ信号をＳＰＭ駆動部ＳＰＭＤＶに出力することで、モータＳＰＭ（すなわちディスクＤＳＫ）を定格回転制御する。モータＳＰＭが定格回転の状態に到達したのち、ＶＣＭ駆動部ＶＣＭＤＶは、ヘッドＨＤをディスクＤＳＫ上に移動し、ヘッドＨＤは、ディスクＤＳＫ上でデータの読み書きを行う。
【００２１】
このようなモータシステムは、高効率化に加えて、低騒音化および低振動化が求められる。特に、ＨＤＤ装置では、記録密度の向上や、サーボライトによる位置決め精度の向上等の観点から低振動化が重要となる。そこで、後述する実施の形態１のモータ駆動装置を用いることが有益となる。
【００２２】
《モータ駆動装置（比較例［１］）の概略構成および概略動作》
まず、実施の形態１のモータ駆動装置の説明に先立ち、比較例［１］となるモータ駆動装置について説明する。図１８は、本発明の比較例［１］となるモータ駆動装置の主要部の構成例を示す機能ブロック図である。図１９は、図１８におけるＳＰＭ駆動部の構成例を示す回路ブロック図である。図２０（ａ）、図２０（ｂ）、図２０（ｃ）および図２１は、図１８における正弦波駆動電圧制御部の動作原理を示す説明図である。
【００２３】
図１８には、図１のモータ駆動装置ＭＤＩＣの内、ＳＰＭ制御部ＳＰＭＣＴ、ＳＰＭ駆動部ＳＰＭＤＶ、回転位置検出部ＲＰＳＤＥＴ、シリアルＩＦ＆レジスタ部ＳＩＦＲＥＧ、サンプルホールド回路ＳＨ、センスアンプ回路ＳＡ、およびアナログ・ディジタル変換器ＡＤＣが抽出して示される。また、併せて、モータ駆動装置ＭＤＩＣの外部に設けられる電流検出用抵抗ＲＮＦと、ディスク機構ＤＳＫＭ内のモータＳＰＭとが示される。
【００２４】
前述したように、電流検出用抵抗ＲＮＦは、モータＳＰＭの駆動電流の検出および電圧変換を行い、サンプルホールド回路ＳＨは、当該検出電圧を所定のタイミングで逐次保持する。具体的には、サンプルホールド回路ＳＨは、モータＳＰＭの３相（ｕ相、ｖ相、ｗ相）毎の駆動電流を検出できるタイミングでサンプリングを行うことで、各相の駆動電流に比例する検出電圧を保持する。センスアンプ回路ＳＡは、当該保持された検出電圧を増幅し、アナログ・ディジタル変換器ＡＤＣは、当該増幅された電圧をディジタル値に変換する。
【００２５】
回転位置検出部ＲＰＳＤＥＴは、逆起電圧位相検出部ＢＰＨＤと、駆動電流位相検出部ＩＰＨＤとを有する。逆起電圧位相検出部ＢＰＨＤは、モータＳＰＭにおける各相の逆起電圧の位相（ＢＥＭＦ位相）をそれぞれ検出する。この例では、逆起電圧位相検出部ＢＰＨＤは、相選択信号ＳＥＬに応じて、ＢＥＭＦ位相の検出対象となる相を選択し、当該選択された相のＢＥＭＦの電圧ゼロクロス点を検出した際にゼロクロス検出信号ＺＸＯＵＴを出力する。駆動電流位相検出部ＩＰＨＤは、モータＳＰＭにおける各相の駆動電流の位相をそれぞれ検出する。この例では、駆動電流位相検出部ＩＰＨＤは、相選択信号ＳＥＬに応じて検出対象となる相を選択し、当該選択された相の駆動電流位相θｉを検出する。
【００２６】
ＳＰＭ制御部ＳＰＭＣＴは、位相誤差検出部ＰＨＥＤ’と、ＰＬＬ（Phase Locked Loop）制御部ＰＬＬＣＴと、駆動電圧位相生成部ＤＶＰＨＧ’と、電流誤差検出部ＣＥＲＤＥＴ’と、ＰＩ補償器ＰＩＣＰと、ＰＷＭ制御部ＰＷＭＣＴとを備える。ＰＬＬ制御部ＰＬＬＣＴは、基準ＢＥＭＦ位相θｂｅｍｆに同期する通電タイミング信号ＴＩＭをＰＬＬ制御によって生成する。例えば、３相中の１相（例えばｕ相）を基準相とした場合、当該基準相のＢＥＭＦ位相（θｂｅｍｆ＿Ｕ）が基準ＢＥＭＦ位相θｂｅｍｆとなる。
【００２７】
明細書では、基準相がｕ相である場合を例として説明を行う。ただし、基準相は、ｕ相に限らず、ｖ相またはｗ相であってもよく、場合によっては、３相のＢＥＭＦ位相の平均的なＢＥＭＦ位相等であってもよい。
【００２８】
位相誤差検出部ＰＨＥＤ’は、逆起電圧位相検出部ＢＰＨＤで検出される基準相のＢＥＭＦ位相（θｂｅｍｆ＿Ｕ）（ここではゼロクロス検出信号ＺＸＯＵＴの出力タイミング）に基づき、各相のＢＥＭＦ位相と基準ＢＥＭＦ位相θｂｅｍｆとの誤差を検出し、検出結果となる位相誤差信号ＥＣＮＴを出力する。この際に、位相誤差検出部ＰＨＥＤ’は、基準相のＢＥＭＦ位相（θｂｅｍｆ＿Ｕ）と基準ＢＥＭＦ位相θｂｅｍｆとの誤差に基づく位相誤差信号ＥＣＮＴをＰＬＬ制御部ＰＬＬＣＴへ出力する。ＰＬＬ制御部ＰＬＬＣＴは、この位相誤差信号ＥＣＮＴがゼロに収束するようにＰＬＬ制御を行うことで、基準ＢＥＭＦ位相θｂｅｍｆ（すなわち基準相のＢＥＭＦ位相（θｂｅｍｆ＿Ｕ））に同期する通電タイミング信号ＴＩＭを生成する。
【００２９】
モータＳＰＭの通電は、この通電タイミング信号ＴＩＭに基づき制御される。また、ＰＬＬ制御部ＰＬＬＣＴは、回転周期カウント値ＮＣＮＴを生成する。回転周期カウント値ＮＣＮＴは、ＢＥＭＦの１周期（すなわちモータＳＰＭの回転周期）に比例する時間を、ディジタル制御の基準クロックのカウント値に換算した値であり、モータＳＰＭの角周波数（ω）に反比例する値となる。
【００３０】
電流誤差検出部ＣＥＲＤＥＴ’は、電流指示値ＳＰＮＣＲと、アナログ・ディジタル変換器ＡＤＣから出力されるディジタル値（すなわち、各相の駆動電流の電流検出値）との誤差を、減算器ＳＢ１を用いて検出する。電流指示値ＳＰＮＣＲは、前述したように、例えば、図１のＨＤＤコントローラＨＤＤＣＴから指示される。ＨＤＤコントローラＨＤＤＣＴは、例えば、回転周期カウント値ＮＣＮＴ等から得られるモータＳＰＭの角周波数の情報を受け、所定の演算によって、当該角周波数を目標の角周波数に設定するための電流指示値ＳＰＮＣＲを生成する。
【００３１】
ＰＩ補償器ＰＩＣＰは、電流誤差検出部ＣＥＲＤＥＴ’で検出される誤差値を入力として、比例（Ｐ）・積分（Ｉ）制御を行うことで、電流誤差を反映したＰＷＭデューティ値ＰＷＭＤを算出する。そして、ＰＩ補償器ＰＩＣＰは、このＰＷＭデューティ値ＰＷＭＤと、予め定められるＰＷＭ周期カウント数とを乗算することでＰＷＭオンカウント数を算出する。ＰＷＭ周期カウント数は、ＰＷＭ信号の１周期の時間を、ディジタル制御の基準クロックのカウント値に換算した数であり、ＰＷＭオンカウント数は、ＰＷＭ信号の１周期におけるオン期間を当該カウント値に換算した数である。
【００３２】
ＰＷＭ制御部ＰＷＭＣＴは、正弦波駆動電圧制御部ＳＩＮＣＴと、出力制御部ＯＵＴＣＴとを備える。ＰＷＭ制御部ＰＷＭＣＴは、概略的には、ＰＬＬ制御部ＰＬＬＣＴからの基準ＢＥＭＦ位相θｂｅｍｆに同期する通電タイミング信号ＴＩＭを受け、モータＳＰＭに印加する３相の駆動電圧（Ｖｕ，Ｖｖ，Ｖｗ）を正弦波状に制御するためのＰＷＭ信号ＰＷＭＯＮ＿ＭＯＤｕ，ＰＷＭＯＮ＿ＭＯＤｖ，ＰＷＭＯＮ＿ＭＯＤｗを生成する。
【００３３】
正弦波駆動電圧制御部ＳＩＮＣＴは、ＰＩ補償器ＰＩＣＰからのＰＷＭオンカウント数を受け、モータＳＰＭに対して３相の正弦波電圧を印加するために必要とされる、各ＰＷＭ周期毎のデューティ指示値を生成する。デューティ指示値は、ＰＷＭ周期内のオン期間の比率を表す。正弦波駆動電圧制御部ＳＩＮＣＴは、具体的には、ＰＷＭパターン用のデューティ指示値ＰＷＭＰを生成するＰＷＭパターン生成部ＰＰＧと、ソフトパターン（ＳＰ１，ＳＰ２）用のデューティ指示値ＳＯＦＴＰを生成するソフトパターン生成部ＳＰＧとを備える。
【００３４】
ＰＷＭパターン生成部ＰＰＧおよびソフトパターン生成部ＳＰＧは、図２０（ａ）、図２０（ｂ）、図２０（ｃ）および図２１に示すような原理でデューティ指示値を生成する。まず、図２０（ａ）には、モータＳＰＭの駆動方式として所謂正弦波駆動方式（すなわちモータの駆動電流を正弦波状に制御する方式）を適用する場合において、モータＳＰＭに印加される理想的な３相（ｕ相、ｖ相、ｗ相）の各駆動電圧Ｖｕ，Ｖｖ，Ｖｗが示される。当該駆動電圧Ｖｕ，Ｖｖ，Ｖｗは、互いに位相が１２０ｄｅｇ異なる正弦波電圧となる。
【００３５】
図２０（ｂ）には、図２０（ａ）に示した３相の駆動電圧Ｖｕ，Ｖｖ，Ｖｗの内、電圧最小相を接地電源電圧ＧＮＤに固定した場合（本明細書ではＧＮＤ固定と呼ぶ）の各相の電圧波形が示される。例えば、図２０（ａ）において、電気角２１０ｄｅｇ〜３３０ｄｅｇの期間ではｕ相が電圧最小相であり、図２０（ｂ）では、当該期間において当該ｕ相の駆動電圧ＶｕにＧＮＤ固定を適用した場合のｖ相およびｗ相の相対的な電圧波形が示される。図２０（ｃ）には、図２０（ｂ）の場合と同様にして、図２０（ａ）に示した３相の駆動電圧Ｖｕ，Ｖｖ，Ｖｗの内、電圧最大相を電源電圧ＶＭに固定した場合（本明細書ではＶＭ固定と呼ぶ）の各相の電圧波形が示される。
【００３６】
ここで、電気角６０ｄｅｇ毎に、図２０（ｂ）のＧＮＤ固定と図２０（ｃ）のＶＭ固定とを交互に切り換えた場合、図２１に示すような電圧波形となる。図２１に示すように、正弦波駆動を行うためのｕ相（ｖ相およびｗ相も同様）の駆動電圧Ｖｕは、ＳＰ１パターン、ＰＷＭパターン、ＳＰ２パターンと、これらの各パターンの対称パターンと、ＶＭ固定およびＧＮＤ固定とを適宜組み合わせることで作り出すことができる。
【００３７】
具体的に説明すると、図２１に示した電気角０ｄｅｇ〜３６０ｄｅｇの期間は、例えば、ＰＷＭ周期Ｔｐｗｍの１００周期程度の期間に対応する。図２１に示したＰＷＭ周期Ｔｐｗｍでは、ｗ相にＧＮＤ固定を適用した状態で、ｕ相にＰＷＭパターンを適用し、ｖ相にＳＰ２対称パターンを適用すればよい。同様にして、各ＰＷＭ周期では、３相の中のいずれか１相にＧＮＤ固定またはＶＭ固定を適用し、他の１相にＰＷＭパターンまたはＰＷＭ対称パターンを適用し、残りの１相にＳＰ１パターンまたはＳＰ２パターンあるいはこれらの対称パターンを適用すればよい。
【００３８】
このような原理に基づき、ＰＷＭパターン生成部ＰＰＧは、例えば、図２１に示したＰＷＭパターンの電圧変動を実現するための、各ＰＷＭ周期毎のデューティ指示値をテーブル等に予め保持しており、当該テーブルに基づきデューティ指示値ＰＷＭＰを生成する。なお、デューティ指示値ＰＷＭＰは、例えば、ディジタル制御の基準クロックに基づくカウント値で表される。
【００３９】
また、当該テーブルには、例えば、正規化されたデューティ指示値（例えばカウント値）が保持されている。ＰＷＭパターン生成部ＰＰＧは、当該正規化されたデューティ指示値に、ＰＩ補償器ＰＩＣＰからのＰＷＭオンカウント数に基づく重み付けを行ってデューティ指示値ＰＷＭＰを生成する。その結果、ＰＷＭパターン生成部ＰＰＧは、前述した電流誤差を反映した上で、モータＳＰＭを正弦波駆動するためのデューティ指示値ＰＷＭＰを生成することができる。これに同様にして、ソフトパターン生成部ＳＰＧも、電流誤差を反映した上で、モータＳＰＭを正弦波駆動するためのデューティ指示値ＳＯＦＴＰを生成することができる。
【００４０】
出力制御部ＯＵＴＣＴは、ＰＷＭＰ用補正部ＰＰＣＰと、ＳＯＦＴＰ用補正部ＳＰＣＰ
と、ＰＷＭ変調部ＰＷＭＭＤとを備える。ＰＷＭＰ用補正部ＰＰＣＰは、ＳＰＭ駆動部ＳＰＭＤＶの入出力間で生じるデューティの誤差を検出し、デューティ指示値ＰＷＭＰに当該誤差を相殺する補正値を加えることで補正後デューティ指示値ＰＷＭＲを生成する。具体的には、ＰＷＭＰ用補正部ＰＰＣＰは、ＳＰＭ駆動部ＳＰＭＤＶからの出力検出信号ＯＵＴＤＥＴから実際のデューティを検出し、これとデューティ指示値ＰＷＭＰとの差分に基づいて補正値を定める。
【００４１】
さらに、ＰＷＭＰ用補正部ＰＰＣＰは、デューティ指示値ＰＷＭＰがＰＷＭ補正パラメータＫｒｅｖＵ，Ｌで定められるデューティよりも大きい場合には、所定の演算式に基づいて補正値を定める。すなわち、デューティ指示値ＰＷＭＰが大きい場合には、トランジスタのオン・オフが不十分となることにより、デューティ指示値ＰＷＭＰが小さい場合とは異なる補正値が必要とされる場合がある。ＰＷＭＰ用補正部ＰＰＣＰは、当該補正値を演算式に基づいて定める。ＰＷＭＰ用補正部ＰＰＣＰの場合と同様に、ＳＯＦＴＰ用補正部ＳＰＣＰは、デューティ指示値ＳＯＦＴＰに所定の補正値を加えることで補正後デューティ指示値ＳＯＦＴＲを生成する。
【００４２】
このようにして、ＳＰＭ駆動部ＳＰＭＤＶの入出力間で生じるデューティの誤差を補正することで、モータＳＰＭに印加する正弦波電圧（その結果として生成される正弦波電流）の歪みを低減することができる。歪みを低減することで、モータのトルクリップルを低減でき、モータの低騒音化、低振動化等が図れる。
【００４３】
ＰＷＭ変調部ＰＷＭＭＤは、ＰＬＬ制御部ＰＬＬＣＴからの通電タイミング信号ＴＩＭに基づいて、実際のモータＳＰＭへの通電を制御する。具体的には、ＰＷＭ変調部ＰＷＭＭＤは、図２１に示したように、６０ｄｅｇ毎にＧＮＤ固定とＶＭ固定の切り換えを行う。この切り換えに応じて、ＰＷＭ変調部ＰＷＭＭＤは、補正後デューティ指示値ＰＷＭＲ，ＳＯＦＴＲに基づき、ｕ相用、ｖ相用およびｗ相用のＰＷＭ信号ＰＷＭＯＮ＿ＭＯＤｕ，ＰＷＭＯＮ＿ＭＯＤｖ，ＰＷＭＯＮ＿ＭＯＤｗをそれぞれ生成する。
【００４４】
詳細には、ＰＷＭ変調部ＰＷＭＭＤは、図２１の駆動方式に基づき、各ＰＷＭ周期において、３相のＰＷＭ信号のいずれか１相をオン期間またはオフ期間に固定する（すなわちＶＭ固定またはＧＮＤ固定とする）。ＰＷＭ変調部ＰＷＭＭＤは、他の１相のＰＷＭ信号のオン期間を補正後デューティ指示値ＰＷＭＲ，ＳＯＦＴＲの一方によって定め、残りの１相のＰＷＭ信号のオン期間を補正後デューティ指示値ＰＷＭＲ，ＳＯＦＴＲの他方によって定める。なお、実際には、図２１に示したように、ＰＷＭパターンおよびソフトパターンの各対称パターンも必要となる。ＰＷＭ変調部ＰＷＭＭＤは、ディジタル演算によって、この各対称パターンに対応するＰＷＭ信号も生成する。
【００４５】
また、逆起電圧位相検出部ＢＰＨＤでＢＥＭＦ位相を検出するためには、モータＳＰＭのｕ相、ｖ相およびｗ相を、その電圧ゼロクロス点近辺で一時的にハイインピーダンスに制御する必要がある。ＰＷＭ変調部ＰＷＭＭＤは、当該ｕ相、ｖ相およびｗ相を一時的にハイインピーダンスに制御するため、ハイインピーダンス制御信号ＨＩＺｕ，ＨＩＺｖ，ＨＩＺｗをそれぞれ生成する。この際に、ＰＷＭ変調部ＰＷＭＭＤは、いずれかの相をハイインピーダンスに制御している期間（言い換えれば、ＢＥＭＦ位相の検出期間）でマスク信号ＭＳＫを生成し、それを位相誤差検出部ＰＨＥＤ’へ出力する。位相誤差検出部ＰＨＥＤ’は、詳細は図８等で後述するが、当該マスク信号ＭＳＫを利用して位相誤差を検出する。
【００４６】
このように、図２１の駆動方式を用いることで、ＰＷＭ変調部ＰＷＭＭＤは、補正後デューティ指示値（カウント値）に基づきＰＷＭ信号を生成する実回路を、３個ではなく２個備えればよく、回路面積の低減等が可能になる。さらに、図２１の駆動方式を用いることで、ＶＭ固定またはＧＮＤ固定からの振幅で制御することができるため、電源電圧マージンに対して有利となり、モータＳＰＭのトルク定数を大きくでき、消費電力を低減することが可能になる。
【００４７】
ＳＰＭ駆動部ＳＰＭＤＶは、図１９に示すように、プリドライバ部ＰＤＶＢＫと、インバータ部ＩＮＶＢＫとを備える。インバータ部ＩＮＶＢＫは、ｕ相用のハイサイドトランジスタＭ１ｕおよびロウサイドトランジスタＭ２ｕと、ｖ相用のハイサイドトランジスタＭ１ｖおよびロウサイドトランジスタＭ２ｖと、ｗ相用のハイサイドトランジスタＭ１ｗおよびロウサイドトランジスタＭ２ｗと、を備える。ハイサイドトランジスタＭ１ｕ，Ｍ１ｖ，Ｍ１ｗおよびロウサイドトランジスタＭ２ｕ，Ｍ２ｖ，Ｍ２ｗは、特に限定はされないが、ここではｎチャネル型ＭＯＳトランジスタである。
【００４８】
ハイサイドトランジスタＭ１ｕ，Ｍ１ｖ，Ｍ１ｗのドレインは、電源電圧ＶＭに共通に結合され、ロウサイドトランジスタＭ２ｕ，Ｍ２ｖ，Ｍ２ｗのソースは、モータ接地端子ＭＧＮＤに共通に結合される。ハイサイドトランジスタＭ１ｕのソースおよびロウサイドトランジスタＭ２ｕのドレインは、ｕ相用の駆動出力端子ＯＵＴｕに結合される。同様に、ハイサイドトランジスタＭ１ｖおよびロウサイドトランジスタＭ２ｖは、ｖ相用の駆動出力端子ＯＵＴｖに結合され、ハイサイドトランジスタＭ１ｗおよびロウサイドトランジスタＭ２ｗは、ｗ相用の駆動出力端子ＯＵＴｗに結合される。モータ接地端子ＭＧＮＤは、電流検出用抵抗ＲＮＦを介して接地電源電圧ＧＮＤに結合される。
【００４９】
ｕ相用、ｖ相用およびｗ相用の駆動出力端子（モータ駆動端子）ＯＵＴｕ，ＯＵＴｖ，ＯＵＴｗは、それぞれ、モータＳＰＭのｕ相用、ｖ相用およびｗ相用の駆動入力端子ＩＮｕ，ＩＮｖ，ＩＮｗに結合される。また、ｕ相用、ｖ相用およびｗ相用の駆動出力端子ＯＵＴｕ，ＯＵＴｖ，ＯＵＴｗからは、それぞれ、ｕ相、ｖ相およびｗ相の駆動電圧Ｖｕ，Ｖｖ，Ｖｗが出力される。当該駆動電圧Ｖｕ，Ｖｖ，Ｖｗは、時間平均で見ると図２１に示したような電圧波形となり、各時点で見るとＰＷＭ信号となる。モータＳＰＭは、等価的に、中性点ＣＴと各駆動入力端子ＩＮｕ，ＩＮｖ，ＩＮｗとの間にそれぞれＹ字結線されたｕ相用、ｖ相用およびｗ相用のコイルＬｕ，Ｌｖ，Ｌｗを含んでいる。
【００５０】
プリドライバ部ＰＤＶＢＫは、ｕ相用、ｖ相用およびｗ相用のプリドライバＰＤＶｕ，ＰＤＶｖ，ＰＤＶｗを備える。ｕ相用のプリドライバＰＤＶｕは、ＰＷＭ変調部ＰＷＭＭＤからのｕ相用のＰＷＭ信号ＰＷＭＯＮ＿ＭＯＤｕに基づいて、ｕ相用のハイサイドトランジスタＭ１ｕをＰＷＭ信号ＰＷＭｕｈで駆動し、ロウサイドトランジスタＭ２ｕをＰＷＭ信号ＰＷＭｕｈの相補信号となるＰＷＭ信号ＰＷＭｕｌで駆動する。
【００５１】
また、当該プリドライバＰＤＶｕは、ハイインピーダンス制御信号ＨＩＺｕがハイレベルの場合には、ハイサイドトランジスタＭ１ｕおよびロウサイドトランジスタＭ２ｕを共にオフに駆動する。これにより、駆動出力端子ＯＵＴｕがハイインピーダンスとなることで、駆動出力端子ＯＵＴｕでｕ相のＢＥＭＦを観測することが可能になる。さらに、当該プリドライバＰＤＶｕは、駆動出力端子ＯＵＴｕから出力されるＰＷＭ信号を、所定の電圧レベルのパルス信号に変換し、当該パルス信号を前述した出力検出信号ＯＵＴＤＥＴｕとして出力する。詳細な説明は省略するが、ｖ相用のプリドライバＰＤＶｖおよびｗ相用のプリドライバＰＤＶｗに関しても同様である。
【００５２】
ここで、図１８に戻り、電流検出用抵抗ＲＮＦは、６０ｄｅｇ毎に異なる相の相電流を検出することができる。例えば、図２０（ａ）の０〜６０ｄｅｇの期間（ｕ相およびｗ相からｖ相へ電流が流れる期間）では、ｖ相の相電流を検出することができ、６０〜１２０ｄｅｇの期間（ｕ相からｖ相およびｗ相へ電流が流れる期間）ではｕ相の相電流を検出することができる。当該検出される相電流は、正弦波の頂点を含む６０ｄｅｇの周期を繰り返したような電流となる。
【００５３】
そこで、電流誤差検出部ＣＥＲＤＥＴ’は、減算器ＳＢ１による誤差の検出精度を向上させるため、この正弦波波形を模写したディジタルパターンを生成する指示電流補正部ＣＲＮＴＣＰを備える。例えば、モータＳＰＭの定常回転時では、電流誤差検出部ＣＥＲＤＥＴ’は、略一定値となる電流指示値ＳＰＮＣＲに指示電流補正部ＣＲＮＴＣＰからのディジタルパターンを乗算器ＭＵＬ２を介して乗算し、当該乗算結果となる電流指示値ＳＰＮＣＲ＿Ｒを減算器ＳＢ１へ出力する。減算器ＳＢ１は、この電流指示値ＳＰＮＣＲ＿Ｒとアナログ・ディジタル変換器ＡＤＣからのディジタル値ＡＤＣＯとの誤差を検出する。なお、ディジタル値ＡＤＣＯは、特に限定はされないが、例えば、ＰＷＭ信号の周期毎に出力される。
【００５４】
駆動電圧位相生成部ＤＶＰＨＧ’は、ピーク格納部ＰＫＨＤと、基準駆動電圧位相生成部ＲＤＰＧとを備える。ピーク格納部ＰＫＨＤは、アナログ・ディジタル変換器ＡＤＣからのディジタル値ＡＤＣＯを、指示電流補正部ＣＲＮＴＣＰからのトリガ信号ＵＰＡＤＣを受けて保持することで、各相の駆動電流振幅ＩＳＰＮＯＵＴを出力する。指示電流補正部ＣＲＮＴＣＰは、例えば、生成するディジタルパターンの最大振幅の箇所でトリガ信号ＵＰＡＤＣを出力する。
【００５５】
基準駆動電圧位相生成部ＲＤＰＧは、駆動電流位相検出部ＩＰＨＤで検出された駆動電流位相θｉと基準ＢＥＭＦ位相θｂｅｍｆとの位相差がゼロに設定されるようにモータ駆動端子（駆動出力端子ＯＵＴｕ，ｖ，ｗ）に駆動電圧を印加する際の基準の駆動電圧位相θｄｒｖＲを定める。詳細に説明すると、モータＳＰＭでは、通常、ＢＥＭＦ位相と駆動電流位相とを一致させるため、ＢＥＭＦ位相よりも駆動電圧位相θｄｒｖＲだけ進んだ位相でモータＳＰＭに駆動電圧を印加するような制御（進角制御と呼ばれる）が必要となる。基準駆動電圧位相生成部ＲＤＰＧは、着磁ばらつきが無い理想的なモータＳＰＭを前提として、３相共通で適用可能な駆動電圧位相θｄｒｖＲを定め、それをＰＷＭ制御部ＰＷＭＣＴへ指示する。
【００５６】
ＰＷＭ制御部ＰＷＭＣＴは、駆動電圧位相θｄｒｖＲを受け、通電タイミング信号ＴＩＭを駆動電圧位相θｄｒｖＲに基づきシフトさせ、当該シフト後の通電タイミング信号に基づいて、３相の駆動電圧を正弦波状に制御するためのＰＷＭ信号ＰＷＭＯＮ＿ＭＯＤｕ，ｖ，ｗを生成する。例えば、正弦波駆動電圧制御部ＳＩＮＣＴは、駆動電圧位相θｄｒｖＲに基づく電気角だけ図２１に示したＰＷＭパターンおよびソフトパターンをシフトさせ、このシフトさせたパターンを用いてデューティ指示値ＰＷＭＰ，ＳＯＦＴＰを生成する。その結果、駆動電圧Ｖｕ，Ｖｖ，Ｖｗの位相は、駆動電圧位相θｄｒｖＲに基づき制御され、これに応じて、モータＳＰＭの各相における駆動電流位相も、駆動電圧位相θｄｒｖＲに基づき制御される。
【００５７】
シリアルＩＦ＆レジスタ部ＳＩＦＲＥＧは、シリアルポートＳＩＦと、当該シリアルポートＳＩＦを介してアクセスされるパラメータ設定レジスタ部ＰＲＥＧとを備える。パラメータ設定レジスタ部ＰＲＥＧは、例えば、図１のＨＤＤコントローラＨＤＤＣＴによって設定される各種パラメータを保持する。ここでは、各種パラメータには、モータＳＰＭの特性定数Ｋ１，Ｋ２、ゲイン調整パラメータＫｖｉ，Ｋａｄｊ、電流制御パラメータＫｃｐ，Ｋｃｉ、およびＰＷＭ補正パラメータＫｒｅｖＵ，Ｌが含まれる。
【００５８】
特性定数Ｋ１，Ｋ２およびゲイン調整パラメータＫｖｉ，Ｋａｄｊは、駆動電圧位相生成部ＤＶＰＨＧ’で用いられる。電流制御パラメータＫｃｐ，Ｋｃｉは、ＰＩ補償器ＰＩＣＰにおけるＰＩ制御の比例ゲインおよび積分ゲインとして用いられる。ＰＷＭ補正パラメータＫｒｅｖＵ，Ｌは、前述したように、ＰＷＭＰ用補正部ＰＰＣＰおよびＳＯＦＴＰ用補正部ＳＰＣＰで用いられる。
【００５９】
《モータ駆動装置（比較例［１］）の問題点》
図２２は、図１８のモータ駆動装置でモータを駆動した場合の、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの一例を示す波形図である。理想的なモータＳＰＭを用いた場合のＢＥＭＦは、ｕ相、ｖ相、ｗ相で１２０ｄｅｇずつずれた正弦波電圧となる。しかし、現実のモータＳＰＭを用いた場合のＢＥＭＦ位相は、図２２のように、理想的なモータＳＰＭを用いた場合のＢＥＭＦ位相を基準にばらつく場合がある。
【００６０】
図２２の例では、ｕ相のＢＥＭＦ位相を前述した基準ＢＥＭＦ位相θｂｅｍｆ（θｂｅｍｆ＿Ｕ）として、ｖ相のＢＥＭＦ位相（θｂｅｍｆ＿Ｖ）は１ｄｅｇ進み、ｗ相のＢＥＭＦ位相（θｂｅｍｆ＿Ｗ）は１ｄｅｇ遅れている。このようなＢＥＭＦ位相の相間ばらつきは、着磁ばらつきと呼ばれ、主にモータＳＰＭの構造に起因して生じる。ばらつき要因として、例えば、ブラシレスＤＣモータでは、ステータにおけるｕ相、ｖ相、ｗ相の物理的な配置誤差（回転方向の位置ズレ）等が挙げられる。
【００６１】
図１８に示したモータ駆動装置は、前述したように理想モータを前提として、各相に対して共通の駆動電圧位相θｄｒｖＲを定めている。その前提でＢＥＭＦ位相に着磁ばらつきがあると、駆動電流位相にもばらつきが生じ得る。詳細は図２３および図２４（ａ）〜図２４（ｃ）で述べるが、ＢＥＭＦ位相が進み方向にばらつくと、駆動電流位相は遅れ方向にばらつき、逆に、ＢＥＭＦ位相が遅れ方向にばらつくと、駆動電流位相は進み方向にばらつく。具体例として、図２２のように、ｖ相のＢＥＭＦ位相が１ｄｅｇ進むと、ｖ相の駆動電流位相は３ｄｅｇ程度遅れる場合がある。その結果、ＢＥＭＦの２次成分（２倍の周波数）となるトルクリップルが生じ、モータ駆動における騒音、振動の増大を招く恐れがある。
【００６２】
図２３は、モータの各相を等価的に表す回路図である。図２４（ａ）、図２４（ｂ）および図２４（ｃ）は、図２３の補足図であり、逆起電圧位相のばらつきに伴い駆動電流位相がどのようにばらつくかを示す説明図である。図２３おいて、モータＳＰＭの各相（代表としてｕ相）は、駆動入力端子ＩＮｕと中性点ＣＴとの間に直列接続される逆起電圧Ｖｂｅｍｆ、モータ抵抗ＲｍおよびモータインダクタンスＬｍによって表される。モータ抵抗ＲｍおよびモータインダクタンスＬｍは、図１９のコイルＬｕが持つ実際のインピーダンス成分を表す。モータ駆動装置は、このような直列回路に対して駆動電圧Ｖｄｒｖ（例えばｕ相駆動電圧Ｖｕ）を印加し、コイル（ＲｍおよびＬｍ）に駆動電流Ｉｃｏｉｌ（例えばｕ相駆動電流Ｉｕ）を流す。
【００６３】
図２４（ａ）は、ＢＥＭＦ位相が相対的にずれていない場合（理想モータの場合）のベクトル図であり、例えば、基準ＢＥＭＦ位相となる図２２のｕ相に対応するものである。位相ずれが無い場合、図１８の駆動電圧位相生成部ＤＶＰＨＧ’の制御によって、駆動電流Ｉｃｏｉｌの位相（駆動電流位相）は、逆起電圧Ｖｂｅｍｆの位相（ＢＥＭＦ位相）と一致する。駆動電圧Ｖｄｒｖの振幅および駆動電圧位相θｄｒｖは、逆起電圧Ｖｂｅｍｆとコイル電圧Ｖｃｏｉｌのベクトル加算で定められる。コイル電圧Ｖｃｏｉｌの振幅および位相θｃｏｉｌは、“Ｒｍ×Ｉｃｏｉｌ”と“ω×Ｌｍ×Ｉｃｏｉｌ”（ωはモータの回転数（角周波数））のベクトル加算で定められる。
【００６４】
図２４（ｂ）は、ＢＥＭＦ位相が相対的に進んでいる場合のベクトル図であり、例えば、図２２のｖ相に対応するものである。図２４（ａ）を基準として、駆動電圧Ｖｂｅｍｆの位相（ＢＥＭＦ位相）がΔθｂｅｍｆ進んだ場合、まず、コイル電圧Ｖｃｏｉｌの振幅が小さくなり駆動電流Ｉｃｏｉｌも小さくなる。そうすると、図１８で述べた電流制御により、駆動電流Ｉｃｏｉｌおよびコイル電圧Ｖｃｏｉｌの振幅は、図２４（ａ）と同じ大きさに戻される。その結果、図２４（ｂ）のように、駆動電圧Ｖｄｒｖの振幅は大きくなり、駆動電流位相はΔθｉ遅れることになる。
【００６５】
図２４（ｃ）は、ＢＥＭＦ位相が相対的に遅れている場合のベクトル図であり、例えば、図２２のｗ相に対応するものである。ＢＥＭＦ位相がΔθｂｅｍｆ遅れた場合、まず、コイル電圧Ｖｃｏｉｌの振幅が大きくなり駆動電流Ｉｃｏｉｌも大きくなる。そうすると、図１８で述べた電流制御により、駆動電流Ｉｃｏｉｌおよびコイル電圧Ｖｃｏｉｌの振幅は、図２４（ａ）と同じ大きさに戻される。その結果、図２４（ｃ）のように、駆動電圧Ｖｄｒｖの振幅は小さくなり、駆動電流位相はΔθｉ進むことになる。
【００６６】
図２６は、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの図２２とは異なる一例を示す波形図である。理想的なモータＳＰＭを用いた場合の逆起電圧の振幅（ＢＥＭＦ振幅）は、ｕ相、ｖ相、ｗ相でそれぞれ同一振幅となる正弦波電圧となる。しかし、現実のモータＳＰＭを用いた場合のＢＥＭＦ振幅は、図２６のように、理想的なモータＳＰＭを用いた場合のＢＥＭＦ振幅を基準にばらつく場合がある。
【００６７】
図２６の例では、ｖ相、ｗ相のＢＥＭＦ振幅は、ｕ相のＢＥＭＦ振幅を基準として、それぞれ、２％減少、２％増加となっている。このようなＢＥＭＦ振幅の相間ばらつきも、着磁ばらつきと呼ばれ、主にモータＳＰＭの構造に起因して生じる。ばらつき要因として、例えば、ステータにおける各相のコイルのインダクタンスばらつきや、ロータにおける磁石の特性ばらつき等が挙げられる。
【００６８】
一方、図１８に示したモータ駆動装置は、理想モータを前提として、３相に対して電流指示値ＳＰＮＣＲ＿Ｒを反映した同一振幅の駆動電圧を印加することで、３相に対して同一振幅の駆動電流を流すように制御する。しかし、ＢＥＭＦ振幅が異なる状態で各相の駆動電流振幅が同一に制御されると、各相のトルクが異なる事態が生じ得る。その結果、ＢＥＭＦの２次成分（２倍の周波数）となるトルクリップルが生じ、モータ駆動における騒音、振動の増大を招く恐れがある。
【００６９】
《モータ駆動装置（実施の形態１）の概略構成および概略動作》
図２は、本発明の実施の形態１によるモータ駆動装置の主要部の構成例を示す機能ブロック図である。図２に示すモータ駆動装置ＭＤＩＣは、図１８の構成例と比較して、位相誤差検出部ＰＨＥＤ、駆動電圧位相生成部ＤＶＰＨＧおよび電流誤差検出部ＣＥＲＤＥＴの構成および動作が異なっている。また、当該モータ駆動装置ＭＤＩＣは、図１８の構成例に加えて、アナログ・ディジタル変換器ＡＤＣ２を備える。
【００７０】
位相誤差検出部ＰＨＥＤは、図１８の場合と同様に各相のＢＥＭＦ位相と基準ＢＥＭＦ位相θｂｅｍｆとの誤差を検出し、位相誤差信号ＥＣＮＴを出力する。この際に、位相誤差検出部ＰＨＥＤは、基準相を除く相（ｖ相およびｗ相）のＢＥＭＦ位相（θｂｅｍｆ＿Ｖ，θｂｅｍｆ＿Ｗ）と基準ＢＥＭＦ位相θｂｅｍｆ（すなわちｕ相のＢＤＭＦ位相（θｂｅｍｆ＿Ｕ））との誤差に基づく位相誤差信号ＥＣＮＴを駆動電圧位相生成部ＤＶＰＨＧへ出力する。
【００７１】
駆動電圧位相生成部ＤＶＰＨＧは、図１８の場合と同様のピーク格納部ＰＫＨＤおよび基準駆動電圧位相生成部ＲＤＰＧに加えて、相間位相ばらつき制御部ＰＨＤＣＴを備える。相間位相ばらつき制御部ＰＨＤＣＴは、モータＳＰＭの各相毎に駆動電流位相とＢＥＭＦ位相とが一致するように、駆動出力端子（モータ駆動端子）ＯＵＴｕ，ＯＵＴｖ，ＯＵＴｗに駆動電圧Ｖｕ，Ｖｖ，Ｖｗを印加する際の各相毎の駆動電圧位相θｄｒｖＵ，θｄｒｖＶ，θｄｒｖＷを定める。
【００７２】
具体的には、相間位相ばらつき制御部ＰＨＤＣＴは、基準駆動電圧位相生成部ＲＤＰＧからの基準の駆動電圧位相θｄｒｖＲ（すなわちｕ相のＢＥＭＦ位相と駆動電流位相とを一致させるための位相）と、位相誤差検出部ＰＨＥＤからのｖ相およびｗ相の位相誤差信号ＥＣＮＴとを用いて駆動電圧位相θｄｒｖＵ，θｄｒｖＶ，θｄｒｖＷを定める。ＰＷＭ制御部ＰＷＭＣＴは、駆動電圧位相θｄｒｖＵ，θｄｒｖＶ，θｄｒｖＷを受け、基準ＢＥＭＦ位相θｂｅｍｆに同期する通電タイミング信号ＴＩＭを駆動電圧位相θｄｒｖＵ，θｄｒｖＶ，θｄｒｖＷに基づきそれぞれシフトさせ、当該シフト後の通電タイミング信号に基づいてＰＷＭ信号ＰＷＭＯＮ＿ＭＯＤｕ，ｖ，ｗを生成する。
【００７３】
また、相間位相ばらつき制御部ＰＨＤＣＴは、位相誤差検出部ＰＨＥＤからのｖ相およびｗ相の位相誤差信号ＥＣＮＴに基づきＢＥＭＦの３相間の位相ばらつき（電気角の大きさ）を検出し、その検出結果となる位相ばらつき信号ＰｄＶ，ＰｄＷを出力する。位相ばらつき信号ＰｄＶは、基準相（ｕ相）とｖ相との位相ばらつきを表し、位相ばらつき信号ＰｄＷは、基準相（ｕ相）とｗ相との位相ばらつきを表す。
【００７４】
電流誤差検出部ＣＥＲＤＥＴは、図１８の場合と同様の指示電流補正部ＣＲＮＴＣＰ、乗算器ＭＵＬ２および減算器ＳＢ１に加えて、相間振幅ばらつき検出部ＡＭＤＥＴ、トルク補正部ＴＲＱＣＰおよび乗算器ＭＵＬ１を備える。相間振幅ばらつき検出部ＡＭＤＥＴは、基準相（ｕ相）の逆起電圧の振幅（ＢＥＭＦ振幅）と他の２相のＢＥＭＦ振幅との比率を算出することで３相間の振幅ばらつきを検出する。
【００７５】
具体的には、前述した逆起電圧位相検出部ＢＰＨＤは、モータＳＰＭにおける各相のＢＥＭＦ振幅ＢＥＭＦＯを検出する逆起電圧振幅検出部としても機能する。アナログ・ディジタル変換器ＡＤＣ２は、当該各相のＢＥＭＦ振幅ＢＥＭＦＯをディジタル値ＡＤＣＯ２に変換する。相間振幅ばらつき検出部ＡＭＤＥＴは、当該ディジタル値ＡＤＣＯ２を用いて３相間の振幅ばらつき（基準相との振幅比）を検出し、その検出結果となる振幅ばらつき信号ＡｄＶ，ＡｄＷを出力する。振幅ばらつき信号ＡｄＶは、基準相（ｕ相）とｖ相との振幅ばらつきを表し、振幅ばらつき信号ＡｄＷは、基準相（ｕ相）とｗ相との振幅ばらつきを表す。
【００７６】
トルク補正部ＴＲＱＣＰは、相間位相ばらつき制御部ＰＨＤＣＴからの位相ばらつき信号ＰｄＶ，ＰｄＷ（すなわちＢＥＭＦの３相間の位相ばらつき）に基づいて周期関数となる位相用トルク補正係数を算出する。また、トルク補正部ＴＲＱＣＰは、相間振幅ばらつき検出部ＡＭＤＥＴからの振幅ばらつき信号ＡｄＶ，ＡｄＷ（すなわちＢＥＭＦの３相間の振幅ばらつき）に基づいて周期関数となる振幅用トルク補正係数を算出する。
【００７７】
トルク補正部ＴＲＱＣＰは、当該位相用トルク補正係数および振幅用トルク補正係数の加算結果をトルク補正係数ＫｃｒＡＰとし、乗算器ＭＵＬ１を介して電流指示値ＳＰＮＣＲにトルク補正係数ＫｃｒＡＰを重畳させることで電流指示値ＳＰＮＣＲを補正し、補正結果となる電流指示値ＳＰＮＣＲ＿Ｐを出力する。乗算器ＭＵＬ２は、当該電流指示値ＳＰＮＣＲ＿Ｐと指示電流補正部ＣＲＮＴＣＰからのディジタルパターンとを乗算し、最終的な電流指示値ＳＰＮＣＲ＿Ｍを出力する。
【００７８】
モータ駆動装置ＭＤＩＣは、当該電流指示値ＳＰＮＣＲ＿Ｍを目標値として電流制御ループによるフィードバック制御を行うことでモータＳＰＭを駆動する。電流制御ループは、図１８の場合と同様に、減算器ＳＢ１、ＰＩ補償器ＰＩＣＰ、ＰＷＭ制御部ＰＷＭＣＴ、ＳＰＭ駆動部ＳＰＭＤＶ、電流検出用抵抗ＲＮＦ、サンプルホールド回路ＳＨ、センスアンプ回路ＳＡ、およびアナログ・ディジタル変換器ＡＤＣを備える。このような構成により、電流制御ループは、図１８で述べたように、モータＳＰＭの駆動電流を検出し、当該電流検出値（ＡＤＣＯ）と、駆動電流の目標値となる電流指示値ＳＰＮＣＲ＿Ｍとの誤差を検出し、当該誤差を反映してＰＷＭ信号ＰＷＭＯＮ＿ＭＯＤ（ｕ，ｖ，ｗ）のデューティを定める。
【００７９】
《トルク補正部の動作》
図３は、図２のモータ駆動装置でモータを駆動した場合の、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの一例を示す波形図である。図３において、３相のＢＥＭＦ位相は、図２２の場合と同様に、ｕ相を基準相として、ｖ相が相対的に１ｄｅｇ進み、ｗ相が相対的に１ｄｅｇ遅れた状態となっている。一方、３相の駆動電流位相は、図２２の場合と異なり、相間位相ばらつき制御部ＰＨＤＣＴによって、モータＳＰＭの各相毎に駆動電流位相とＢＥＭＦ位相とが一致するように制御される。例えば、図３のように、ｖ相のＢＥＭＦ位相が基準相（ｕ相）のＢＥＭＦ位相に対して１ｄｅｇ進んでいる場合、相間位相ばらつき制御部ＰＨＤＣＴは、ｖ相の駆動電流位相も基準相（ｕ相）の駆動電流位相に対して１ｄｅｇ進むように駆動電圧位相θｄｒｖＶを制御する。
【００８０】
さらに、図３における電流指示値ＳＰＮＣＲ＿Ｐは、図２２の場合と異なり、トルク補正部ＴＲＱＣＰからのトルク補正係数（ここでは位相用トルク補正係数）ＫｃｒＡＰに伴う周期関数となっている。具体的には、トルク補正係数（位相用トルク補正係数）ＫｃｒＡＰは、ＢＥＭＦの周波数の２倍の周波数を持ち、ＢＥＭＦの３相間の位相ばらつきに応じて振幅および位相が変化する周期関数（例えばｓｉｎ関数）となる。
【００８１】
具体的に説明すると、モータのトルクＴｐは、それぞれ“ＢＥＭＦ×駆動電流”の関数で得られる３相のトルクの加算結果となる。詳細には、モータのトルクＴｐは、基準ＢＥＭＦ位相θｂｅｍｆ（すなわちｕ相のＢＥＭＦ位相）と、ｕ相を基準としたｖ相およびｗ相の位相ばらつき信号ＰｄＶ，ＰｄＷの値と、モータＳＰＭのトルク定数“Ｋｔ”と、モータの各相の駆動電流“Ｉｓｐｎ”とを用いて式（１）で表される。式（１）において、“ＧｒＰ”の値は式（２）であり、“ＤｒＰ”の値は式（３）である。
【００８２】
【数１】
2018107887.tif 000003
【００８３】
【数２】
2018107887.tif 000004
【００８４】
【数３】
2018107887.tif 000005
【００８５】
式（１）、式（２）および式（３）から判るように、仮に位相ばらつき（ＰｄＶ，ＰｄＷ）が無い場合には、トルクＴｐは一定値となり、トルクリップルは生じない。一方、位相ばらつき（ＰｄＶ，ＰｄＷ）が有る場合には、図２２にも示したように、基準ＢＥＭＦ位相θｂｅｍｆの２次成分（ｓｉｎ２θｂｅｍｆ）となるトルクリップルが生じる。当該トルクリップルは、位相ばらつき（ＰｄＶ，ＰｄＷ）の大きさに応じて振幅（ＧｒＰ）および位相（ＤｒＰ）が変化する。
【００８６】
そこで、当該トルクリップルを打ち消すため、モータ電流“Ｉｓｐｎ”を式（４）のように補正する。すなわち、図２の電流指示値ＳＰＮＣＲに該当する“Ｉｓｐｎ０”に、式（５）で示される２次の周期関数となる位相用トルク補正係数ＤｃｒＰ０を重畳させる補正を行う。
【００８７】
【数４】
2018107887.tif 000006
【００８８】
【数５】
2018107887.tif 000007
【００８９】
式（４）のモータ電流“Ｉｓｐｎ”を式（１）に代入すると、式（６）のトルクＴｐが得られる。式（６）において、“ＧｄＰ＝（１／３）×ＧｒＰ”とし、“ＤｄＰ＝ＤｒＰ”とすることでトルクリップルを無くすことができる。したがって、式（５）の位相用トルク補正係数ＤｃｒＰ０における“ＧｄＰ”は、式（７）で与えられ、“ＤｄＰ”は式（８）で与えられる。その結果、位相用トルク補正係数ＤｃｒＰ０は、位相ばらつき（ＰｄＶ，ＰｄＷ）に応じて振幅（ＧｄＰ）および位相（ＤｄＰ）が変化する周期関数（ここではｓｉｎ関数）となる。
【００９０】
【数６】
2018107887.tif 000008
【００９１】
【数７】
2018107887.tif 000009
【００９２】
【数８】
2018107887.tif 000010
【００９３】
このように位相用トルク補正係数ＤｃｒＰ０を反映した電流指示値ＳＰＮＣＲ＿Ｐを用いることで、図３に示されるように、モータＳＰＭのトルクリップルを低減でき、モータＳＰＭに着磁ばらつきがあっても、モータ駆動における騒音、振動を抑制することが可能になる。
【００９４】
なお、式（１）は、３相共に、ＢＥＭＦ位相と駆動電流位相とが一致していることを前提とした式となっている。相間位相ばらつき制御部ＰＨＤＣＴは、この前提を満たすための動作を行う。ただし、場合によっては、例えば、ｖ相およびｗ相において、ＢＥＭＦ位相と駆動電流位相とが不一致の場合を前提としてトルクＴｐの計算式を立て、位相用トルク補正係数ＤｃｒＰ０の計算式を定めることも可能である。この場合、当該相間位相ばらつき制御部ＰＨＤＣＴによる動作は不要となるものの、トルクＴｐの計算式および位相用トルク補正係数ＤｃｒＰ０の計算式が複雑化する恐れがある。この観点から、相間位相ばらつき制御部ＰＨＤＣＴを用いることが有益となる。
【００９５】
また、ここでは、３相中の１相を基準相として、基準ＢＥＭＦ位相θｂｅｍｆを定める方式を用いているが、場合によっては、例えば、３相のＢＥＭＦ位相の平均値等によって基準ＢＥＭＦ位相θｂｅｍｆを定めるような方式を用いることも可能である。ただし、このような場合も、式（１）においてｕ相の位相ばらつき（ＰｄＵ）を表すパラメータが追加されることになるため、式（１）が若干複雑化する恐れがある。この観点から、３相中の１相（ここではｕ相）を基準相とすることが有益となる。
【００９６】
図４は、モータの逆起電圧、駆動電流、電流指示値およびトルクリップルの図３とは異なる一例を示す波形図である。図４において、ｖ相、ｗ相のＢＥＭＦ振幅は、図２６の場合と同様に、ｕ相のＢＥＭＦ振幅を基準として、それぞれ、２％減少、２％増加となっている。また、図４における電流指示値ＳＰＮＣＲ＿Ｐは、図２６の場合と異なり、トルク補正部ＴＲＱＣＰからのトルク補正係数（ここでは振幅用トルク補正係数）ＫｃｒＡＰに伴う周期関数となっている。トルク補正係数（振幅用トルク補正係数）ＫｃｒＡＰは、ＢＥＭＦの周波数の２倍の周波数を持ち、ＢＥＭＦの３相間の振幅ばらつきに応じて振幅および位相が変化する周期関数（例えばｓｉｎ関数）となる。
【００９７】
具体的に説明すると、モータのトルクＴａは、基準ＢＥＭＦ位相θｂｅｍｆ（すなわちｕ相のＢＥＭＦ位相）と、ｕ相を基準としたｖ相およびｗ相の振幅ばらつき信号ＡｄＶ，ＡｄＷの値と、モータＳＰＭのトルク定数“Ｋｔ”と、モータの各相の駆動電流“Ｉｓｐｎ”とを用いて式（９）で表される。式（９）において、“ＧｒＡ”の値は式（１０）であり、“ＤｒＡ”の値は式（１１）である。
【００９８】
【数９】
2018107887.tif 000011
【００９９】
【数１０】
2018107887.tif 000012
【０１００】
【数１１】
2018107887.tif 000013
【０１０１】
式（９）、式（１０）および式（１１）から判るように、仮に振幅ばらつき（ＡｄＶ，ＡｄＷ）が無い場合には、トルクＴａは一定値となり、トルクリップルは生じない。一方、振幅ばらつき（ＡｄＶ，ＡｄＷ）が有る場合には、図２６にも示したように、基準ＢＥＭＦ位相θｂｅｍｆの２次成分（ｓｉｎ２θｂｅｍｆ）となるトルクリップルが生じる。当該トルクリップルは、振幅ばらつき（ＡｄＶ，ＡｄＷ）の大きさに応じて振幅（ＧｒＡ）および位相（ＤｒＡ）が変化する。
【０１０２】
そこで、当該トルクリップルを打ち消すため、モータ電流“Ｉｓｐｎ”を式（１２）のように補正する。すなわち、図２の電流指示値ＳＰＮＣＲに該当する“Ｉｓｐｎ０”に、式（１３）に示される２次の周期関数となる振幅用トルク補正係数ＤｃｒＡ０を重畳させる補正を行う。
【０１０３】
【数１２】
2018107887.tif 000014
【０１０４】
【数１３】
2018107887.tif 000015
【０１０５】
式（１２）のモータ電流“Ｉｓｐｎ”を式（９）に代入すると、式（１４）のトルクＴａが得られる。式（１４）において、“ＧｄＡ＝（１／３）×ＧｒＡ”とし、“ＤｄＡ＝ＤｒＡ”とすることでトルクリップルを無くすことができる。したがって、式（１３）の振幅用トルク補正係数ＤｃｒＡ０における“ＧｄＡ”は、式（１５）で与えられ、“ＤｄＡ”は式（１６）で与えられる。その結果、当該振幅用トルク補正係数ＤｃｒＡ０は、振幅ばらつき（ＡｄＶ，ＡｄＷ）に応じて振幅（ＧｄＡ）および位相（ＤｄＡ）が変化する周期関数（ここではｓｉｎ関数）となる。
【０１０６】
【数１４】
2018107887.tif 000016
【０１０７】
【数１５】
2018107887.tif 000017
【０１０８】
【数１６】
2018107887.tif 000018
【０１０９】
このような補正を行った結果、実際上の動作として、各相の駆動電流振幅は、自相のＢＥＭＦの振幅ばらつき（比率）の逆数倍の比率となるように補正されることになる。例えば、図４のように、ｖ相のＢＥＭＦ振幅が基準相（ｕ相）に対して−２％の場合、ｖ相の駆動電流振幅は、基準相（ｕ相）に対して＋２％となるように補正される。すなわち、各相のトルクは、“ＢＥＭＦ×駆動電流”の関数となるため、例えば、ある相のＢＥＭＦ振幅がＫ倍にばらついた場合、当該相の駆動電流振幅を“１／Ｋ”倍に補正すれば、各相のトルクを一定に保つことができる。
【０１１０】
このように振幅用トルク補正係数ＤｃｒＡ０を反映した電流指示値ＳＰＮＣＲ＿Ｐを用いることで、モータＳＰＭのトルクリップルを低減でき、モータＳＰＭに着磁ばらつきがあっても、モータ駆動における騒音、振動を抑制することが可能になる。この際には、図３の場合と同様に、相間位相ばらつき制御部ＰＨＤＣＴを用い、また、３相中の１相を基準相とすることで、各種計算式の簡略化が図れる。
【０１１１】
なお、図３に示した位相用トルク補正係数ＤｃｒＰ０を用いた補正と、図４に示した振幅用トルク補正係数ＤｃｒＡ０を用いた補正は、両方共に実行されることが望ましいが、場合によっては、いずれか一方のみの実行であってもトルクリップルの低減効果をある程度得ることは可能である。
【０１１２】
《駆動電圧位相生成部の概略》
図５は、図２のモータ駆動装置において、駆動電圧位相生成部周りの主要部の概略構成例を示すブロック図である。図５には、図２における駆動電圧位相生成部ＤＶＰＨＧと、位相誤差検出部ＰＨＥＤと、駆動電流位相検出部ＩＰＨＤと、ＰＬＬ制御部ＰＬＬＣＴとが示される。駆動電圧位相生成部ＤＶＰＨＧは、基準駆動電圧位相生成部ＲＤＰＧと、相間位相ばらつき制御部ＰＨＤＣＴとを備える。
【０１１３】
基準駆動電圧位相生成部ＲＤＰＧは、位相演算部ＰＨＣＡＬおよび位相補正部ＰＨＣＰを備え、基準ＢＥＭＦ位相θｂｅｍｆと入力された駆動電流位相θｉとの位相差がゼロに設定されるように駆動電圧を印加する際の基準の駆動電圧位相θｄｒｖＲを定める。位相演算部ＰＨＣＡＬは、モータＳＰＭの各相の駆動電流の電流値と、モータＳＰＭの角周波数ωと、図２のパラメータ設定レジスタＰＲＥＧで定められるモータＳＰＭの特性定数Ｋ１，Ｋ２とを用いた演算式に基づき、基準ＢＥＭＦ位相θｂｅｍｆと駆動電流位相θｉとの位相差をゼロに設定するための駆動電圧位相θｄｒｖを算出する。駆動電流の電流値は、図２のピーク格納部ＰＫＨＤからの駆動電流振幅ＩＳＰＮＯＵＴによって得られ、モータＳＰＭの角周波数ωは、ＰＬＬ制御部ＰＬＬＣＴからの回転周期カウント値ＮＣＮＴによって得られる。
【０１１４】
ここで、位相演算部ＰＨＣＡＬによって算出される駆動電圧位相θｄｒｖは、モータＳＰＭの特性定数Ｋ１，Ｋ２に応じて変化する。特性定数Ｋ１，Ｋ２は、例えば、モータの種類毎に定められる。しかし、例えば、同一種類のモータＳＰＭであっても、各モータ毎に、製造ばらつき等に伴う特性定数Ｋ１，Ｋ２のばらつきが生じる恐れがある。また、１個のモータＳＰＭを対象とする場合であっても、経時劣化等によって時系列的に特性定数Ｋ１，Ｋ２にばらつきが生じる恐れがある。そうすると、基準ＢＥＭＦ位相θｂｅｍｆと駆動電流位相θｉとの位相差にゼロからの誤差が生じる恐れがある。
【０１１５】
そこで、位相補正部ＰＨＣＰは、位相演算部ＰＨＣＡＬからの駆動電圧位相θｄｒｖに補正値を加えることで、基準の駆動電圧位相θｄｒｖＲを定める。この際に、位相補正部ＰＨＣＰは、基準ＢＥＭＦ位相θｂｅｍｆ（基準相（ｕ相）のＢＥＭＦ位相θｂｅｍｆ＿Ｕ）と、基準相（ｕ相）の駆動電流位相θｉ＿Ｕとの位相差がゼロに収束するように補正値の大きさをフィードバック制御によって更新する。すなわち、フィードバック経路として、基準の駆動電圧位相θｄｒｖＲを反映した状態でモータＳＰＭに駆動電流が流れ、ｕ相の駆動電流位相θｉ＿Ｕが駆動電流位相検出部ＩＰＨＤで検出され、この検出結果に基づき補正値が更新され、基準の駆動電圧位相θｄｒｖＲも更新される。
【０１１６】
これにより、モータＳＰＭに特性定数Ｋ１，Ｋ２のばらつきが生じた場合であっても、基準相（ｕ相）のＢＥＭＦ位相θｂｅｍｆ＿Ｕと駆動電流位相θｉ＿Ｕとの位相差を高精度にゼロに設定することができる。ただし、ｕ相を基準としてモータＳＰＭに着磁ばらつきが生じた場合、図２２に示したように、トルクリップルが生じる恐れがある。相間位相ばらつき制御部ＰＨＤＣＴは、図３で述べたように、当該トルクリップルを打ち消すためのトルク補正を行う前提として、モータＳＰＭの各相毎に駆動電流位相とＢＥＭＦ位相とを一致させるような制御を行う。
【０１１７】
具体的には、相間位相ばらつき制御部ＰＨＤＣＴには、基準駆動電圧位相生成部ＲＤＰＧからの基準の駆動電圧位相θｄｒｖＲと、位相誤差検出部ＰＨＥＤからのｖ相およびｗ相の位相誤差信号ＥＣＮＴが入力される。ｖ相の位相誤差信号ＥＣＮＴは、基準相（ｕ相）とｖ相の位相誤差（電気角Δθｂｅｍｆ＿Ｖ）をディジタル制御のカウント値で表したものであり、ｗ相の位相誤差信号ＥＣＮＴは、基準相（ｕ相）とｗ相の位相誤差（電気角Δθｂｅｍｆ＿Ｗ）をディジタル制御のカウント値で表したものである。
【０１１８】
相間位相ばらつき制御部ＰＨＤＣＴは、ｖ相およびｗ相の位相誤差信号ＥＣＮＴを電気角Δθｂｅｍｆ＿Ｖ，Δθｂｅｍｆ＿Ｗに変換し、それらを位相ばらつき信号ＰｄＶ，ＰｄＷとして出力する。また、相間位相ばらつき制御部ＰＨＤＣＴは、基準の駆動電圧位相θｄｒｖＲをｕ相の駆動電圧位相θｄｒｖＵに定めると共に、基準の駆動電圧位相θｄｒｖＲに電気角Δθｂｅｍｆ＿Ｖ，Δθｂｅｍｆ＿Ｗをそれぞれ加算することでｖ相およびｗ相の駆動電圧位相θｄｒｖＶ，θｄｒｖＷを定める。
【０１１９】
なお、ＰＬＬ制御部ＰＬＬＣＴは、前述したように、基準相（ｕ相）の位相誤差信号ＥＣＮＴをゼロに近づけるようにＰＬＬ制御を行うことで、基準相のＢＥＭＦ位相に同期する通電タイミング信号ＴＩＭを生成する。位相誤差検出部ＰＨＥＤは、この通電タイミング信号ＴＩＭに基づき、ｕ相のＢＥＭＦ位相を基準としてｖ相，ｗ相のＢＥＭＦ位相との間の位相誤差をそれぞれ検出する。
【０１２０】
《回転位置検出部および位相誤差検出部の構成および動作》
図６は、図２における回転位置検出部および位相誤差検出部の検出期間の一例を示す波形図である。図６には、モータＳＰＭに印加される各相の駆動電圧Ｖｕ，Ｖｖ，Ｖｗと、ｕ相の駆動電流Ｉｕとが示される。駆動電圧Ｖｕ，Ｖｖ，Ｖｗは、図６に示されるように、各時点ではＰＷＭ信号であり、その時間平均によって図２１に示したような電圧波形となる。
【０１２１】
図１９のインバータ部ＩＮＶＢＫは、図２１に示した駆動方式に基づき、無通電期間が無い１８０ｄｅｇ通電方式によってモータに駆動電圧Ｖｕ，Ｖｖ，Ｖｗを印加する。この場合、例えば、ｕ相のＢＥＭＦ位相を検出するためには、ＢＥＭＦの電圧ゼロクロス点（電圧振幅の半値を通過する時点）を含む所定の期間で、無通電期間を設ける必要がある。そこで、ＰＷＭ変調部ＰＷＭＭＤは、ハイインピーダンス制御信号ＨＩＺｕをアサートすることで３６０ｄｅｇの通電期間内に無通電期間（例えば１５ｄｅｇ程度）を設け、図６に示すように、この無通電期間でマスク信号ＭＳＫをアサートする。位相誤差検出部ＰＨＥＤは、当該マスク信号ＭＳＫのアサート期間で逆起電圧位相検出部ＢＰＨＤからのゼロクロス検出信号ＺＸＯＵＴを取り込み、ｕ相のＢＥＭＦ位相の位相誤差を検出する。
【０１２２】
また、ＰＷＭ変調器ＰＷＭＭＤは、特に限定はされないが、図６に示すように、当該無通電期間とは位相が１８０ｄｅｇ異なる通電期間で、駆動電流検出イネーブル信号ＣＮＴ＿ＥＮをアサートする。当該駆動電流検出イネーブル信号ＣＮＴ＿ＥＮのアサート期間は、例えば、前述した無通電期間と同じ長さ（例えば１５ｄｅｇ程度）である。駆動電流位相検出部ＩＰＨＤは、当該駆動電流検出イネーブル信号ＣＮＴ＿ＥＮのアサート期間で駆動電流Ｉｕの電流ゼロクロス点を検出することでｕ相の駆動電流位相θｉ＿Ｕを検出する。
【０１２３】
ここで、ＰＷＭ変調器ＰＷＭＭＤは、前述したように、ＰＬＬ制御部ＰＬＬＣＴからの基準ＢＥＭＦ位相θｂｅｍｆに同期する通電タイミング信号ＴＩＭに基づいて、モータＳＰＭへの通電を制御している。ＰＷＭ変調器ＰＷＭＭＤは、この通電タイミング信号ＴＩＭに基づき、近未来において各相のＢＥＭＦの電圧ゼロクロス点が存在し得る期間を十分に狭い範囲（例えば６０ｄｅｇ以下、望ましくは１５ｄｅｇ程度以下）に絞り込むことができ、この絞り込んだ期間でマスク信号ＭＳＫを生成する。この無通電期間は、駆動電流の正弦波を歪ませる要因となるため、より短いほど望ましい。ただし、短すぎると、モータＳＰＭの角速度ωの変動等に伴い、当該期間内に電圧ゼロクロス点が存在しない事態を招くため、これらのトレードオフで定められる。
【０１２４】
《逆起電圧位相検出部および位相誤差検出部の詳細》
図７は、図２における逆起電圧位相検出部の詳細な構成例を示す回路図である。図７の逆起電圧位相検出部ＢＰＨＤは、選択回路ＳＥＬＣ１と、アンプ回路ＡＭＰ１１と、サンプルホールド回路ＳＨ１１と、コンパレータ回路ＣＭＰ＿Ｚとを備える。選択回路ＳＥＬＣ１は、３相の駆動電圧Ｖｕ，Ｖｖ，Ｖｗのいずれかを相選択信号ＳＥＬに基づき選択し、選択相の駆動電圧Ｖｘを出力する。アンプ回路ＡＭＰ１１は、中性点ＣＴの電圧Ｖｃｔを基準として、選択相の駆動電圧Ｖｘを増幅する。
【０１２５】
サンプルホールド回路ＳＨ１１は、サンプリング信号ＢＳＨに応じて、アンプ回路ＡＭＰ１１の出力電圧をサンプリングおよびホールドする。コンパレータ回路ＣＭＰ＿Ｚは、サンプルホールド回路ＳＨ１１の出力電圧となるＢＥＭＦ振幅ＢＥＭＦＯがゼロクロス電圧ＶｔｈＺ（Ｖｘ＝Ｖｃｔ時のアンプ回路ＡＭＰ１１の出力電圧に相当）に達した時点で、ゼロクロス検出信号ＺＸＯＵＴの論理レベルを遷移させる。なお、サンプリング信号ＢＳＨや相選択信号ＳＥＬは、ＰＷＭ変調器ＰＷＭＭＤによって生成される。サンプリング信号ＢＳＨは、各ＰＷＭ周期毎に生成され、各ＰＷＭ周期の中で、選択相を除く２相中の一方の相のハイサイドトランジスタと他方の相のロウサイドトランジスタとが共にオンの期間で生成される。
【０１２６】
図８は、図２における位相誤差検出部の詳細な構成例を示す回路図である。図８の位相誤差検出部ＰＨＥＤは、フリップフロップ回路ＦＦ１１，ＦＦ１２と、アップダウンカウンタ回路ＵＤＣＵＮＴ１と、アンド演算回路ＡＤ１１，ＡＤ１ｕ，ＡＤ１ｖ，ＡＤ１ｗと、レジスタ回路ＲＥＧ１０ｕ，ＲＥＧ１０ｖ，ＲＥＧ１０ｗと、選択回路ＳＥＬＣ１０とを備える。
【０１２７】
フリップフロップ回路ＦＦ１１，ＦＦ１２は、マスク信号ＭＳＫをディジタル制御の基準クロックＣＬＫで順次ラッチし、アップダウンカウンタ回路ＵＤＣＵＮＴ１へ出力する。アップダウンカウンタ回路ＵＤＣＵＮＴ１は、マスク信号ＭＳＫのアサート期間でイネーブル状態となり、このイネーブル状態において、ゼロクロス検出信号ＺＸＯＵＴに基づいてカウント動作を行う。具体的には、アップダウンカウンタ回路ＵＤＣＵＮＴ１は、ゼロクロス検出信号ＺＸＯＵＴの論理レベルが一方の論理レベルの場合には基準クロックＣＬＫでカウントアップを行い、他方の論理レベルの場合には、基準クロックＣＬＫでカウントダウンを行う。
【０１２８】
アンド演算回路ＡＤ１１は、フリップフロップ回路ＦＦ１１の反転出力と、フリップフロップ回路ＦＦ１２の出力とを入力としてアンド演算を行うことで、マスク信号ＭＳＫがアサート期間からネゲート期間に遷移する際にワンショットパルス信号となるラッチ信号ＬＴ１１を出力する。アンド演算回路ＡＤ１ｕ，ＡＤ１ｖ，ＡＤ１ｗは、それぞれ、相選択信号ＳＥＬを構成する信号ｕｓｌ，ｖｓｌ，ｗｓｌと、ラッチ信号ＬＴ１１とを２入力としてアンド演算を行い、レジスタ回路ＲＥＧ１０ｕ，ＲＥＧ１０ｖ，ＲＥＧ１０ｗへラッチ信号ＬＴ１１ｕ，ＬＴ１１ｖ，ＬＴ１１ｗを出力する。
【０１２９】
レジスタ回路ＲＥＧ１０ｕ，ＲＥＧ１０ｖ，ＲＥＧ１０ｗは、それぞれ、ラッチ信号ＬＴ１１ｕ，ＬＴ１１ｖ，ＬＴ１１ｗをトリガとして、アップダウンカウンタ回路ＵＤＣＵＮＴ１のカウント値をラッチする。選択回路ＳＥＬＣ１０は、相選択信号ＳＥＬに基づき、レジスタ回路ＲＥＧ１０ｕ，ＲＥＧ１０ｖ，ＲＥＧ１０ｗのいずれかのカウント値を位相誤差信号ＥＣＮＴとして出力する。
【０１３０】
図９は、図７の逆起電圧位相検出部および図８の位相誤差検出部の概略的な動作例を示す説明図である。図９に示すように、アップダウンカウンタ回路ＵＤＣＵＮＴ１は、マスク信号ＭＳＫがアサートされると、カウント動作を開始する。この例では、サンプルホールド回路ＳＨ１１からのＢＥＭＦ振幅ＢＥＭＦＯは、カウント動作の開始時点でゼロクロス電圧ＶｔｈＺよりも小さくなっており、その後、ゼロクロス電圧ＶｔｈＺに達し、更にその後、ゼロクロス電圧ＶｔｈＺを超えて上昇している。
【０１３１】
これに応じて、アップダウンカウンタ回路ＵＤＣＵＮＴ１は、ＢＥＭＦ振幅ＢＥＭＦＯがゼロクロス電圧ＶｔｈＺに達するまで（すなわちゼロクロス検出信号ＺＸＯＵＴが遷移するまで）はカウントダウンを行い、ゼロクロス電圧ＶｔｈＺを超えたのち（すなわちＺＸＯＵＴが遷移したのち）カウントアップを行う。そして、アップダウンカウンタ回路ＵＤＣＵＮＴ１は、マスク信号ＭＳＫがネゲートされた時点でカウント動作を停止する。位相誤差検出部ＰＨＥＤは、このカウント動作を停止した時点の最終的なカウント値をレジスタ回路ＲＥＧ１０ｕ，ＲＥＧ１０ｖ，ＲＥＧ１０ｗの中の選択相に対応するレジスタ回路に保持する。
【０１３２】
図９から判るように、仮に、電圧ゼロクロス点がマスク信号ＭＳＫのアサート期間の中間時刻に存在する場合、アップダウンカウンタ回路ＵＤＣＵＮＴ１の最終的なカウント値はゼロとなる。一方、電圧ゼロクロス点が当該中間時刻からずれた場合、アップダウンカウンタ回路ＵＤＣＵＮＴ１の最終的なカウント値は、そのずれの方向および量（言い換えれば中間時刻との電圧位相誤差）を反映した値となる。
【０１３３】
ここで、前述したように、図２のＰＬＬ制御部ＰＬＬＣＴは、基準相（ｕ相）の位相誤差信号ＥＣＮＴがゼロに収束するようにＰＬＬ制御を行うことで、ｕ相のＢＥＭＦ位相に同期する通電タイミング信号ＴＩＭを生成する。また、ＰＷＭ変調部ＰＷＭＭＤは、このｕ相の同期する通電タイミング信号ＴＩＭに基づいてｕ相，ｖ相，ｗ相でそれぞれ位相が１２０ｄｅｇ異なるマスク信号ＭＳＫを生成する。
【０１３４】
その結果、図９の期間Ｔｄｅｔ１→期間Ｔｄｅｔ２に示されるように、基準相（ｕ相）の電圧ゼロクロス点がマスク信号ＭＳＫの中間時刻に設定されるように、通電タイミングＴＩＭが調整され、この調整を介してマスク信号ＭＳＫのウインドウ位置も調整される。また、位相誤差検出部ＰＨＥＤは、ｕ相を基準に生成したマスク信号ＭＳＫを用いて位相誤差を検出する。したがって、定常状態では、ｕ相の位相誤差信号ＥＣＮＴはゼロとなり、ｖ相およびｗ相の位相誤差信号ＥＣＮＴは、このゼロ（すなわちｕ相）を基準とした誤差値となる。
【０１３５】
《駆動電流位相検出部の詳細》
図１０は、図２における駆動電流位相検出部の詳細な構成例を示す回路図である。図１０の駆動電流位相検出部ＩＰＨＤは、選択回路ＳＥＬＣ２ａ，ＳＥＬＣ２ｂと、コンパレータ回路ＣＭＰ＿Ｇ，ＣＭＰ＿ＴＲと、アップダウンカウンタ回路ＵＤＣＵＮＴ２と、フリップフロップ回路ＦＦ２１，ＦＦ２２と、アンド演算回路ＡＤ２１とを備える。また、駆動電流位相検出部ＩＰＨＤは、図８の構成例と同様に、アンド演算回路ＡＤ２ｕ，ＡＤ２ｖ，ＡＤ２ｗと、レジスタ回路ＲＥＧ２０ｕ，ＲＥＧ２０ｖ，ＲＥＧ２０ｗと、選択回路ＳＥＬＣ２０とを備え、加えて、乗算回路ＭＵＬ２０を備える。
【０１３６】
選択回路ＳＥＬＣ２ａは、３相のロウサイドトランジスタＭ２ｕ，Ｍ２ｖ，Ｍ２ｗのゲート・ソース間電圧Ｖｇｓ＿ＵＬ，Ｖｇｓ＿ＶＬ，Ｖｇｓ＿ＷＬを受け、その中のいずれかを相選択信号ＳＥＬに基づいて選択し、それをゲート・ソース間電圧Ｖｇｓ＿ｘＬとしてコンパレータ回路ＣＭＰ＿Ｇへ出力する。同様に、選択回路ＳＥＬＣ２ｂは、３相の駆動電圧Ｖｕ，Ｖｖ，Ｖｗのいずれかを相選択信号ＳＥＬに基づいて選択し、それを駆動電圧Ｖｘとしてコンパレータ回路ＣＭＰ＿ＴＲへ出力する。
【０１３７】
コンパレータ回路ＣＭＰ＿Ｇは、選択回路ＳＥＬＣ２ａからのゲート・ソース間電圧Ｖｇｓ＿ｘＬと所定のしきい値電圧ＶｔｈＧとの大小関係を比較する。すなわち、コンパレータ回路ＣＭＰ＿Ｇは、選択相のロウサイドトランジスタがオンかオフかを判別する。コンパレータ回路ＣＭＰ＿ＴＲは、選択回路ＳＥＬＣ２ｂからの駆動電圧Ｖｘが低電位側のしきい値電圧ＶｔｈＬよりも大きく、かつ高電位側のしきい値電圧ＶｔｈＨよりも小さい範囲にあるか否かを判別する。すなわち、コンパレータ回路ＣＭＰ＿ＴＲは、駆動電圧ＶｘがＰＷＭ信号に応じて高電位側の電源電圧ＶＭと低電位側の電源電圧（接地電源電圧ＧＮＤ）との間で遷移する期間を検出する。コンパレータ回路ＣＭＰ＿ＴＲは、当該検出した遷移期間において、トリガ信号ＴＲＧをアサートする。
【０１３８】
フリップフロップ回路ＦＦ２１，ＦＦ２２は、駆動電流検出イネーブル信号ＣＮＴ＿ＥＮをディジタル制御の基準クロックＣＬＫで順次ラッチし、アップダウンカウンタ回路ＵＤＣＵＮＴ２へ出力する。アップダウンカウンタ回路ＵＤＣＵＮＴ２は、駆動電流検出イネーブル信号ＣＮＴ＿ＥＮのアサート期間でイネーブル状態となる。このイネーブル状態において、アップダウンカウンタ回路ＵＤＣＵＮＴ２は、トリガ信号ＴＲＧがアサートされる毎に、コンパレータ回路ＣＭＰ＿Ｇの比較結果に基づいてカウントダウンまたはカウントアップを行う。例えば、アップダウンカウンタ回路ＵＤＣＵＮＴ２は、Ｖｇｓ＿ｘＬ＜ＶｔｈＧの場合（選択相のロウサイドトランジスタがオフの場合）にはカウントダウンを行い、Ｖｇｓ＿ｘＬ＞ＶｔｈＧの場合（選択相のロウサイドトランジスタがオンの場合）にはカウントアップを行う。
【０１３９】
アンド演算回路ＡＤ２１は、フリップフロップ回路ＦＦ２１の反転出力と、フリップフロップ回路ＦＦ２２の出力とを入力としてアンド演算を行うことで、駆動電流検出イネーブル信号ＣＮＴ＿ＥＮがアサート期間からネゲート期間に遷移する際に、ワンショットパルス信号となるラッチ信号ＬＴ２１を出力する。アンド演算回路ＡＤ２ｕ，ＡＤ２ｖ，ＡＤ２ｗは、それぞれ、選択信号ｕｓｌ，ｖｓｌ，ｗｓｌと、ラッチ信号ＬＴ２１とを２入力としてアンド演算を行い、レジスタ回路ＲＥＧ２０ｕ，ＲＥＧ２０ｖ，ＲＥＧ２０ｗにラッチ信号ＬＴ２１ｕ，ＬＴ２１ｖ，ＬＴ２１ｗを出力する。
【０１４０】
レジスタ回路ＲＥＧ２０ｕ，ＲＥＧ２０ｖ，ＲＥＧ２０ｗは、それぞれ、ラッチ信号ＬＴ２１ｕ，ＬＴ２１ｖ，ＬＴ２１ｗを受けて、アップダウンカウンタ回路ＵＤＣＵＮＴ２からのカウント値をラッチする。選択回路ＳＥＬＣ２０は、相選択信号ＳＥＬに基づき、レジスタ回路ＲＥＧ２０ｕ，ＲＥＧ２０ｖ，ＲＥＧ２０ｗのいずれかのカウント値を出力する。乗算回路ＭＵＬ２０は、選択回路ＳＥＬＣ２０の出力を所定のゲインＫｃｏｎｖ２で増幅することで、駆動電流位相θｉを出力する。ゲインＫｃｏｎｖ２は、カウント値を位相に換算する係数である。
【０１４１】
図１１は、図１０の駆動電流位相検出部の動作原理を示す波形図である。図１１には、例えば、駆動電流Ｉｕがソース電流（プラス電流）からシンク電流（マイナス電流）に変化する際の、各信号の概略的な動作波形が示されている。ｕ相のロウサイドトランジスタＭ２ｕには、ソース電流が流れる期間ではＰＷＭ制御に伴う回生電流が流れ、シンク電流が流れる期間ではＰＷＭ制御に伴う駆動電流が流れる。
【０１４２】
この回生電流と駆動電流の違いにより、図１１に示されるように、駆動電流Ｉｕがソース電流である場合のＰＷＭ周期Ｔ１において、駆動電圧Ｖｕが遷移する期間では、ロウサイドトランジスタＭ２ｕのゲート・ソース間電圧Ｖｇｓ＿ＵＬは、所定のしきい値電圧ＶｔｈＧよりも小さくなる。すなわち、ロウサイドトランジスタＭ２ｕは、オフとなる。一方、駆動電流Ｉｕがシンク電流である場合のＰＷＭ周期Ｔ２において、駆動電圧Ｖｕが遷移する期間では、ロウサイドトランジスタＭ２ｕのゲート・ソース間電圧Ｖｇｓ＿ＵＬは、所定のしきい値電圧ＶｔｈＧよりも大きくなる。すなわち、ロウサイドトランジスタＭ２ｕは、オンとなる。
【０１４３】
図１０の駆動電流位相検出部ＩＰＨＤは、このように、モータＳＰＭの選択相（ここではｕ相）の駆動電圧Ｖｕが遷移している期間で、選択相のロウサイドトランジスタＭ２ｕがオンかオフかを判別することで、当該相の電流がソース電流かシンク電流かを判別する。そして、当該駆動電流位相検出部ＩＰＨＤは、ソース電流およびシンク電流の一方から他方に切り替わった時点を、駆動電流Ｉｕの電流ゼロクロス点として検出する。
【０１４４】
具体的には、図１１に示すように、駆動電流位相検出部ＩＰＨＤのアップダウンカウンタ回路ＵＤＣＵＮＴ２は、ソース電流と判別した場合にはカウントダウンを行い、シンク電流と判別した場合にはカウントアップを行う。図１１では省略されているが、アップダウンカウンタ回路ＵＤＣＵＮＴ２は、図９のマスク信号ＭＳＫと同様に、駆動電流検出イネーブル信号ＣＮＴ＿ＥＮ（図６参照）のアサート期間で、このようなカウント動作を行う。その結果、駆動電流位相検出部ＩＰＨＤは、図９の場合と同様に、駆動電流検出イネーブル信号ＣＮＴ＿ＥＮがネゲートされた時点の最終的なカウント値に基づいて、駆動電流位相θｉを定める。
【０１４５】
《駆動電圧位相生成部の詳細》
図１２は、図５の駆動電圧位相生成部における位相演算部および位相補正部の詳細な構成例を示す図である。図２４（ａ）のベクトル図に示したように、逆起電圧Ｖｂｅｍｆの位相（例えば基準相の基準ＢＥＭＦ位相θｂｅｍｆ）とコイル電流Ｉｃｏｉｌの位相（基準相の駆動電流位相θｉ）との位相差をゼロに定めるためには、基準ＢＥＭＦ位相θｂｅｍｆに対して駆動電圧Ｖｄｒｖの位相を駆動電圧位相θｄｒｖだけ進める必要がある。
【０１４６】
この駆動電圧位相θｄｒｖは、モータＳＰＭの角周波数ωおよびトルク定数Ｋｅを用いて、式（１７）で示される。式（１７）において、“ω・Ｋｅ”は、図２４（ａ）の逆起電圧Ｖｂｅｍｆに該当する。
【０１４７】
θｄｒｖ＝ｔａｎ−１｛ω・Ｌｍ・Ｉｃｏｉｌ／（ω・Ｋｅ＋Ｒｍ・Ｉｃｏｉｌ）｝      （１７）
ここで、駆動電圧位相θｄｒｖは、通常、十分に小さい値となる。この場合、式（１８）の近似を用いて“ｔａｎ−１”を省くことができ、この省いた式を変形して式（１９）が得られる。
【０１４８】
θｄｒｖ≒ｔａｎ−１（θｄｒｖ）      （１８）
θｄｒｖ＝（Ｌｍ／Ｒｍ）・Ｉｃｏｉｌ／｛（Ｋｅ／Ｒｍ）＋（Ｉｃｏｉｌ／ω）｝      （１９）
図１２に示す位相演算部ＰＨＣＡＬは、この式（１９）に基づき駆動電圧位相θｄｒｖを演算する。具体的には、式（１９）において、“Ｋｅ／Ｒｍ”に対応する値を特性定数Ｋ１で定め、“Ｌｍ／Ｒｍ”に対応する値を特性定数Ｋ２で定め、“Ｉｃｏｉｌ”に対応する値をピーク格納部ＰＫＨＤからの駆動電流振幅ＩＳＰＮＯＵＴで定め、“１／ω”に対応する値を回転周期カウント値ＮＣＮＴで定める。この場合、式（１９）は、式（２０）となり、駆動電圧位相θｄｒｖは、式（２１）の“Ｋｄｒｖ”に“ＩＳＰＮＯＵＴ”を乗算することで得られる。
【０１４９】
θｄｒｖ＝Ｋ２・ＩＳＰＮＯＵＴ／（Ｋ１＋ＩＳＰＮＯＵＴ・ＮＣＮＴ）      （２０）
Ｋｄｒｖ＝Ｋ２／（Ｋ１＋ＩＳＰＮＯＵＴ・ＮＣＮＴ）      （２１）
図１２に示す位相演算部ＰＨＣＡＬは、減算器ＳＢ３０と、乗算器ＭＵＬ３０〜ＭＵＬ３３と、積分器ＩＴＧ３０と、加算器ＡＤＤ３０とを備える。乗算器ＭＵＬ３３は、“ＮＣＮＴ・ＩＳＰＮＯＵＴ”を算出し、加算器ＡＤＤ３０は、乗算器ＭＵＬ３３の出力に“Ｋ１”を加算することで式（２１）の分母を算出する。乗算器ＭＵＬ３２は、加算器ＡＤＤ３０の出力に“Ｋｄｒｖ”を乗算する。減算器ＳＢ３０は、乗算器ＭＵＬ３２の乗算結果と“Ｋ２”との誤差を算出し、乗算器ＭＵＬ３０は、当該誤差を積分ゲインＫで増幅し、積分器ＩＴＧ３０は、乗算器ＭＵＬ３０の乗算結果を積分することで式（２１）の“Ｋｄｒｖ”を算出する。
【０１５０】
すなわち、図１２の位相演算部ＰＨＣＡＬは、乗算器ＭＵＬ３２の乗算結果（すなわち、“Ｋｄｒｖ・（Ｋ１＋ＩＳＰＮＯＵＴ・ＮＣＮＴ）”）と“Ｋ２”との誤差がゼロに収束するように、“Ｋｄｒｖ”をフィードバック制御することで“Ｋｄｒｖ”を算出するような演算回路を備える。誤差がゼロに収束した場合、“Ｋｄｒｖ・（Ｋ１＋ＩＳＰＮＯＵＴ・ＮＣＮＴ）”は“Ｋ２”に等しくなり、その結果、“Ｋｄｒｖ”は式（２１）の値となる。乗算器ＭＵＬ３１は、“Ｋｄｒｖ”に“ＩＳＰＮＯＵＴ”を乗算することで式（２０）の駆動電圧位相θｄｒｖを算出する。
【０１５１】
このように、フィードバック制御を利用した演算回路を用いることで、複雑な構成となり得る割り算器を用いずに式（２０）の演算を行うことができ、回路構成の簡素化等が図れる。なお、ここでは、乗算器ＭＵＬ３０は、加算器ＡＤＤ３０の算出結果に応じて積分ゲインＫを可変制御する構成となっている。具体的には、積分ゲインＫは、例えば、加算器ＡＤＤ３０の出力が大きくなるにつれて、段階的に小さくなるように制御される。これにより、加算器ＡＤＤ３０の出力の大きさに関わらず、フィードバック制御の帯域を同程度に保つことができる。
【０１５２】
図１２に示す位相補正部ＰＨＣＰは、平均化回路ＡＶＥ３と、乗算器ＭＵＬ３４，ＭＵＬ３５と、誤差検出器ＥＤＥＴ１と、積分器ＩＴＧ３１と、加算器ＡＤＤ３１とを備える。平均化回路ＡＶＥ３は、入力された駆動電流位相θｉを、時系列的に平均化する。乗算器ＭＵＬ３４は、当該平均化された駆動電流位相θｉにゲイン調整パラメータＫｖｉを乗算する。誤差検出器ＥＤＥＴ１は、ゼロ位相と乗算器ＭＵＬ３４の乗算結果との位相誤差Δθｖを検出する。すなわち、図９で述べたように、定常状態では、基準ＢＥＭＦ位相θｂｅｍｆの位相誤差はゼロとなるため、駆動電流位相θｉと基準ＢＥＭＦ位相θｂｅｍｆとの位相誤差は、駆動電流位相θｉとゼロ位相との位相誤差に該当する。
【０１５３】
乗算器ＭＵＬ３５は、誤差検出器ＥＤＥＴ１の検出結果（Δθｖ）にゲイン調整パラメータ（すなわち積分ゲイン）Ｋａｄｊを乗算し、積分器ＩＴＧ３１は、当該乗算器ＭＵＬ３５の乗算結果を積分することで補正値を算出する。加算器ＡＤＤ３１は、位相演算部ＰＨＣＡＬからの駆動電圧位相θｄｒｖに積分器ＩＴＧ３１で算出された補正値を加えることで、基準の駆動電圧位相θｄｒｖＲを算出する。なお、ゲイン調整パラメータＫｖｉは、駆動電流位相θｉの変化に対する基準の駆動電圧位相θｄｒｖＲの感度を調整する係数である。
【０１５４】
図１３は、図５の駆動電圧位相生成部における相間位相ばらつき制御部の詳細な構成例を示す図である。図１３の相間位相ばらつき制御部ＰＨＤＣＴは、乗算器ＭＵＬ４０，ＭＵＬ４１ｖ，ＭＵＬ４１ｗと、レジスタ回路ＲＥＧ４０ｖｒ，ＲＥＧ４０ｖｆ，ＲＥＧ４０ｗｒ，ＲＥＧ４０ｗｆと、平均化回路ＡＶＥ４ｖ，ＡＶＥ４ｗと、加算器ＡＤＤ４０ｕ，ＡＤＤ４０ｖ，ＡＤＤ４０ｗとを備える。
【０１５５】
乗算器ＭＵＬ４０は、位相誤差検出部ＰＨＥＤからのカウント値となる位相誤差信号ＥＣＮＴに位相誤差検出ゲインＫｅを乗算する。位相誤差検出ゲインＫｅは、カウント値を位相へ換算する係数である。レジスタ回路ＲＥＧ４０ｖｒは、相選択信号ＳＥＬに応じて、乗算器ＭＵＬ４０からのｖ相の立ち上がり時の補正量を保持し、レジスタ回路ＲＥＧ４０ｖｆは、相選択信号ＳＥＬに応じて、乗算器ＭＵＬ４０からのｖ相の立ち下がり時の補正量を保持する。同様に、レジスタ回路ＲＥＧ４０ｗｒ，ＲＥＧ４０ｗｆは、ｗ相の立ち上がり時と立ち下がり時の補正量を保持する。加算器ＡＤＤ４０ｕは、基準の駆動電圧位相θｄｒｖＲにゼロを加算することでｕ相の駆動電圧位相θｄｒｖＵを出力する。
【０１５６】
平均化回路ＡＶＥ４ｖは、レジスタ回路ＲＥＧ４０ｖｒ，ＲＥＧ４０ｖｆの出力値を平均化することでｖ相の補正量ΔθｄｒｖＶを算出する。相間位相ばらつき制御部ＰＨＤＣＴは、このｖ相の補正量ΔθｄｒｖＶ（＝ｖ相のＢＥＭＦの位相ばらつきの電気角Δθｂｅｍｆ＿Ｖ）を位相ばらつき信号ＰｄＶとして出力する。乗算器ＭＵＬ４１ｖは、ｖ相の補正量ΔθｄｒｖＶに“１／２”を乗算し、加算器ＡＤＤ４０ｖは、駆動電圧位相θｄｒｖＲに乗算器ＭＵＬ４１ｖの乗算結果を加算することでｖ相の駆動電圧位相θｄｒｖＶを出力する。
【０１５７】
例えば、図２４（ｂ）を参照して、ｖ相のＢＥＭＦ位相θｂｅｍｆ＿Ｕが基準ＢＥＭＦ位相θｂｅｍｆに対してΔθｂｅｍｆだけシフトしている場合、ｖ相の駆動電圧位相θｄｒｖＶを同じくΔθｂｅｍｆだけシフトさせれば、図２４（ａ）のようなベクトルの相対関係が保たれる。その結果、ｖ相のＢＥＭＦ位相と駆動電流位相とを同位相に定めることができる。
【０１５８】
また、ｖ相の駆動電圧位相θｄｒｖＶをΔθｄｒｖＶだけシフトさせるためには、実際には、乗算器ＭＵＬ４１ｖを用いて、基準の駆動電圧位相θｄｒｖＲに対してΔθｄｒｖＶの半分（１／２×ΔθｄｒｖＶ）の補正値を付加すればよい。これは、各相の駆動電圧位相θｄｒｖは、中性点ＣＴの位相を基準として算出されるためである。実際にモータＳＰＭを駆動する場合、中性点ＣＴを仮想接地として、各相に差動の駆動電圧が印加される。このような差動動作を前提として、例えば、ｕ相の駆動電圧位相θｄｒｖＵを基準にｖ相の駆動電圧位相θｄｒｖＶをΔθｄｒｖＶシフトさせるためには、中性点ＣＴの位相を基準に考えると、ｖ相にΔθｄｒｖＶの半分の補正値を付加すればよい。
【０１５９】
ｗ相に関しても、ｖ相の場合と同様の動作が行われる。すなわち、平均化回路ＡＶＥ４ｗは、レジスタ回路ＲＥＧ４０ｗｒ，ＲＥＧ４０ｗｆの出力値を平均化することでｗ相の補正量ΔθｄｒｖＷを算出する。相間位相ばらつき制御部ＰＨＤＣＴは、このｗ相の補正量ΔθｄｒｖＷ（＝ｗ相のＢＥＭＦの位相ばらつきの電気角Δθｂｅｍｆ＿Ｗ）を位相ばらつき信号ＰｄＷとして出力する。乗算器ＭＵＬ４１ｗは、ｗ相の補正量ΔθｄｒｖＷに“１／２”を乗算し、加算器ＡＤＤ４０ｗは、駆動電圧位相θｄｒｖＲに乗算器ＭＵＬ４１ｗの乗算結果を加算することでｗ相の駆動電圧位相θｄｒｖＷを出力する。
【０１６０】
なお、この例では、図２のＰＷＭ変調部ＰＷＭＭＤは、３相のＢＥＭＦの立ち上がり時の電圧ゼロクロス点と立ち下がり時の電圧ゼロクロス点をそれぞれ検出するため、それぞれ電気角の位置が異なる６個のマスク信号ＭＳＫを順次出力するものとする。また、ＰＷＭ変調部ＰＷＭＭＤは、マスク信号ＭＳＫの出力と並行して、当該マスク信号ＭＳＫが６個のマスク信号ＭＳＫの中のどれかを表す相選択信号ＳＥＬを出力するものとする。さらに、図示は省略されているが、図８の位相誤差検出部ＰＨＥＤで基準相（ｕ相）の位相誤差を検出する際にも、図１３の場合と同様の平均化回路等を設けることで、立ち上がり時と立ち下がり時の平均的な位相誤差信号ＥＣＮＴを検出してもよい。
【０１６１】
《相間振幅ばらつき検出部の詳細》
図１４は、図２における相間振幅ばらつき検出部の詳細な構成例を示す図である。図１４に示す相間振幅ばらつき検出部ＡＭＤＥＴは、アンド演算回路ＡＤ５０（ｕ，ｖ，ｗ），ＡＤ５１（ｕ，ｖ，ｗ）と、レジスタ回路ＲＥＧ５０（ｕ１，ｕ２，ｖ１，ｖ２，ｗ１，ｗ２）と、減算器ＳＢ５０（ｕ，ｖ，ｗ）と、除算器ＤＩＶ５０（ｖ，ｗ）と、減算器ＳＢ５１（ｖ，ｗ）とを有する。
【０１６２】
相選択信号ＳＥＬによる選択相がｕ相の場合、アンド演算回路ＡＤ５０ｕの出力はサンプリング信号ＳＰＬ１のアサート期間でアサートされ、アンド演算回路ＡＤ５１ｕの出力はサンプリング信号ＳＰＬ２のアサート期間でアサートされる。同様に、選択相がｖ相の場合、アンド演算回路ＡＤ５０ｖの出力はサンプリング信号ＳＰＬ１に応じてアサートされ、アンド演算回路ＡＤ５１ｖの出力はサンプリング信号ＳＰＬ２に応じてアサートされる。また、選択相がｗ相の場合、アンド演算回路ＡＤ５０ｗの出力はサンプリング信号ＳＰＬ１に応じてアサートされ、アンド演算回路ＡＤ５１ｗの出力はサンプリング信号ＳＰＬ２に応じてアサートされる。サンプリング信号ＳＰＬ１，ＳＰＬ２は、図２のＰＷＭ変調部ＰＷＭＭＤによって生成される。
【０１６３】
レジスタ回路ＲＥＧ５０ｕ１，ＲＥＧ５０ｕ２，ＲＥＧ５０ｖ１，ＲＥＧ５０ｖ２，ＲＥＧ５０ｗ１，ＲＥＧ５０ｗ２は、それぞれ、アンド演算回路ＡＤ５０ｕ，ＡＤ５１ｕ，ＡＤ５０ｖ，ＡＤ５１ｖ，ＡＤ５０ｗ，ＡＤ５１ｗの出力のアサートに応じて、アナログ・ディジタル変換器ＡＤＣ２からのディジタル値ＡＤＣＯ２をラッチする。減算器ＳＢ５０ｕは、レジスタ回路ＲＥＧ５０ｕ２の出力値とレジスタ回路ＲＥＧ５０ｕ１の出力値との差分値を算出し、当該差分値をｕ相の逆起電圧振幅Ｄａｕとして出力する。同様に、減算器ＳＢ５０ｖは、レジスタ回路ＲＥＧ５０ｖ１，ＲＥＧ５０ｖ２に対する差分値を算出してｖ相の逆起電圧振幅Ｄａｖを出力し、減算器ＳＢ５０ｗは、レジスタ回路ＲＥＧ５０ｗ１，ＲＥＧ５０ｗ２に対する差分値を算出してｗ相の逆起電圧振幅Ｄａｗを出力する。
【０１６４】
除算器（振幅比演算部）ＤＩＶ５０ｖは、ｕ相の逆起電圧振幅Ｄａｕを‘ｙ’とし、ｖ相の逆起電圧振幅Ｄａｖを‘ｘ’とした場合に、“ｘ／ｙ”を算出する。減算器ＳＢ５１ｖは、除算器ＤＩＶ５０ｖの算出結果から“１”を減算することでｖ相の振幅ばらつき信号ＡｄＶを算出する。同様に、除算器（振幅比演算部）ＤＩＶ５０ｗは、ｕ相の逆起電圧振幅Ｄａｕを‘ｙ’とし、ｗ相の逆起電圧振幅Ｄａｗを‘ｘ’とした場合に、“ｘ／ｙ”を算出する。減算器ＳＢ５１ｗは、除算器ＤＩＶ５０ｗの算出結果から“１”を減算することでｗ相の振幅ばらつき信号ＡｄＷを算出する。
【０１６５】
図１５は、図１４の相間振幅ばらつき検出部の動作例を説明する波形図である。前提として、図７の逆起電圧位相検出部（逆起電圧振幅検出部）ＢＰＨＤは、選択相の駆動端子がマスク信号ＭＳＫのアサート期間でハイインピーダンスに設定された状態で、当該アサート期間の中で当該駆動端子の電圧（Ｖｕ，Ｖｖ，Ｖｗのいずれか）をサンプリング信号ＢＳＨに応じて時系列的に複数回サンプリングする。サンプリング信号ＢＳＨは、ＰＷＭ周期毎にアサートされる。そして、逆起電圧位相検出部ＢＰＨＤは、複数回のサンプリングを行いながらサンプリング電圧（すなわち逆起電圧振幅ＢＥＭＦＯ）を順次出力し、アナログ・ディジタル変換器ＡＤＣ２は、当該逆起電圧振幅ＢＥＭＦＯのディジタル値ＡＤＣＯ２を出力する。
【０１６６】
図１４の相間振幅ばらつき検出部ＡＭＤＥＴは、逆起電圧振幅検出部の一部として機能し、複数回分（図１５の例では４回分）のサンプリング電圧（すなわちディジタル値ＡＤＣＯ２）の中の予め定めた２回分のサンプリング電圧を対象として差分値を算出し、当該差分値を逆起電圧振幅として検出する。図１５の例では、例えば、選択相がｕ相の状態で、アナログ・ディジタル変換器ＡＤＣ２による１回目のサンプリング電圧に伴うディジタル値Ｄｕ１の出力期間でサンプリング信号ＳＰＬ１がアサートされ、４回目のサンプリング電圧に伴うディジタル値Ｄｕ４の出力期間でサンプリング信号ＳＰＬ２がアサートされる。
【０１６７】
相間振幅ばらつき検出部ＡＭＤＥＴは、ディジタル値Ｄｕ１をレジスタ回路ＲＥＧ５０ｕ１にラッチし、ディジタル値Ｄｕ４をレジスタ回路ＲＥＧ５０ｕ２にラッチし、その差分値（Ｄｕ４−Ｄｕ１）を逆起電圧振幅Ｄａｕとして検出する。すなわち、相間振幅ばらつき検出部ＡＭＤＥＴは、マスク信号ＭＳＫのアサート期間におけるＢＥＭＦの変動量を逆起電圧振幅として検出する。
【０１６８】
このような方式を用いることで、逆起電圧振幅を高精度に検出することが可能になる。すなわち、図９等で述べたように、マスク信号ＭＳＫのアサート期間は、ＰＬＬ制御部ＰＬＬＣＴによって、常に、基準相のＢＥＭＦの電圧ゼロクロス点を中間時刻とした一定区間（例えば１５ｄｅｇ）に保たれる。このため、ＢＥＭＦ振幅の検出期間も、時間軸上でばらつかず、３６０ｄｅｇの中の常に同じ電気角の範囲に維持される。さらに、マスク信号ＭＳＫとＰＷＭ周期とは同期しているため、このＢＥＭＦ振幅の検出期間の中でサンプリング信号ＳＰＬ１，ＳＰＬ２がアサートされるタイミングも固定となる。これらの結果、逆起電圧振幅の検出精度が高まる。
【０１６９】
また、逆起電圧位相を検出するための回路を一部併用して逆起電圧振幅の検出を行っているため、回路面積のオーバヘッドを抑制できる場合がある。なお、ここでは、逆起電圧振幅を検出するためのアナログ・ディジタル変換器ＡＤＣ２を別途設けたが、当該アナログ・ディジタル変換器ＡＤＣ２は、アナログ・ディジタル変換器ＡＤＣと併用することも可能である。すなわち、アナログ・ディジタル変換器ＡＤＣは、常時、相電流を検出する必要はなく、その空いた期間で逆起電圧振幅を検出することも可能である。
【０１７０】
《トルク補正部の詳細》
図１６は、図２におけるトルク補正部の詳細な構成例を示す図である。図１６のトルク補正部ＴＲＱＣＰは、複数の演算部ＣＡＬ１〜ＣＡＬ６と、選択回路ＳＥＬＣ３０，ＳＥＬＣ３１と、加算器ＡＤＤ１０とを備える。演算部ＣＡＬ１は、ｖ相およびｗ相の振幅ばらつき信号ＡｄＶ，ＡｄＷを受けて、式（１５）のＧｄＡを演算し、演算部ＣＡＬ２は、ｖ相およびｗ相の振幅ばらつき信号ＡｄＶ，ＡｄＷを受けて、式（１６）のＤｄＡを演算する。
【０１７１】
演算部ＣＡＬ３は、ｖ相およびｗ相の位相ばらつき信号ＰｄＶ，ＰｄＷを受けて、式（７）のＧｄＰを演算し、演算部ＣＡＬ４は、ｖ相およびｗ相の位相ばらつき信号ＰｄＶ，ＰｄＷを受けて、式（８）のＤｄＰを演算する。演算部ＣＡＬ５は、演算部ＣＡＬ１，ＣＡＬ２からのＧｄＡ，ＤｄＡを受けて、式（１３）の振幅用トルク補正係数ＤｃｒＡ０の中の周期関数（ｓｉｎ関数）の項（ＤｃｒＡ０’）を演算する。演算部ＣＡＬ６は、演算部ＣＡＬ３，ＣＡＬ４からのＧｄＰ，ＤｄＰを受けて、式（５）の位相用トルク補正係数ＤｃｒＰ０の中の周期関数（ｓｉｎ関数）の項（ＤｃｒＰ０’）を演算する。この際に、演算部ＣＡＬ５，ＣＡＬ６は、通電タイミング信号ＴＩＭに基づき基準ＢＥＭＦ位相θｂｅｍｆのパラメータ値を順次更新しながら演算を行う。この更新周期は、例えば、ＰＷＭ周期と同じであってもよい。
【０１７２】
選択回路ＳＥＬＣ３０は、振幅用トルク補正イネーブル信号ＡＥＮに応じて、演算部ＣＡＬ５の演算結果かゼロの一方を出力することで、振幅用トルク補正係数ＤｃｒＡ０を電流指示値ＳＰＮＣＲに重畳させるか否かを選択する。選択回路ＳＥＬＣ３１は、位相用トルク補正イネーブル信号ＰＥＮに応じて、演算部ＣＡＬ６の演算結果かゼロの一方を出力することで、位相用トルク補正係数ＤｃｒＰ０を電流指示値ＳＰＮＣＲに重畳させるか否かを選択する。各トルク補正イネーブル信号（ＡＥＮ，ＰＥＮ）の値は、図２のパラメータ設定レジスタ部ＰＲＥＧで設定可能となっている。加算器ＡＤＤ１０は、選択回路ＳＥＬＣ３０，ＳＥＬＣ３１の出力に“１”（すなわち、式（１３）および式（５）の定数項）を加算することでトルク補正係数ＫｃｒＡＰを算出する。
【０１７３】
演算部ＣＡＬ１〜ＣＡＬ６は、例えば、論理回路や、場合によっては、論理回路にｓｉｎ関数やｔａｎ−１関数の値を定めたテーブルを組み合わせること等で構成される。また、十分な演算速度を得られる場合には、演算部ＣＡＬ１〜ＣＡＬ６をプロセッサ等で構成することも可能である。
【０１７４】
ここで、特に限定はされないが、振幅ばらつき信号ＡｄＶ，ＡｄＷや位相ばらつき信号ＰｄＶ，ＰｄＷの値は、例えば、モータシステムの起動時や、または、外部環境の変化時等で、マスク信号ＭＳＫ等を用いて所定の検出動作を行うことで定められる。一方、モータＳＰＭの定常回転時には、検出動作（マスク信号ＭＳＫの生成等）は停止され、検出された値を用いて算出されたトルク補正係数ＫｃｒＡＰで電流指示値ＳＰＮＣＲが補正される。このように、トルク補正係数ＫｃｒＡＰを用いた補正は、モータＳＰＭの定常回転時を除く期間では特に実行されなくてもよいため、図１６では、選択回路ＳＥＬＣ３０，ＳＥＬＣ３１によってゼロを選択できる構成となっている。
【０１７５】
また、場合によっては、例えば、電流指示値ＳＰＮＣＲに振幅用トルク補正係数ＤｃｒＡ０を反映させると、位相ばらつき信号ＰｄＶ，ＰｄＷの値が若干変化するといったように、振幅用トルク補正係数ＤｃｒＡ０と位相用トルク補正係数ＤｃｒＰ０とが互いに干渉する可能性がある。そこで、例えば、一方のトルク補正係数を電流指示値ＳＰＮＣＲに反映させた状態で他方のばらつき信号の値を定めるといったような動作を行いたい場合に、選択回路ＳＥＬＣ３０，ＳＥＬＣ３１を利用することも可能である。
【０１７６】
《実施の形態１の主要な効果》
以上、実施の形態１のモータ駆動装置およびモータシステムを用いることで、代表的には、モータＳＰＭに着磁ばらつきが存在する場合であっても、モータＳＰＭのトルクリップルを低減可能になる。その結果、モータＳＰＭの低振動化および低騒音化が図れる。また、モータＳＰＭの製造工程（加工精度、組み立て精度等）に対する要求を緩和できるため、モータＳＰＭの低コスト化が図れる。
【０１７７】
図２５は、本発明の比較例［２］となるモータ駆動装置において、トルクリップルの低減方式の一例を説明する図である。前述したように、各相のトルクは、“ＢＥＭＦ×駆動電流”の関数となる。したがって、図２５に示されるように、例えば、ｖ相のＢＥＭＦ位相が１ｄｅｇ進んでいる場合、駆動電流位相を１ｄｅｇ遅らせることで、乗算によってばらつきが相殺され、トルクリップルを低減することが可能となる。具体的な方式として、例えば、図１３において、位相誤差信号ＥＣＮＴに式（２２）の係数を乗算して補正量ΔθｄｒｖＶ，ΔθｄｒｖＷを定めればよい。
【０１７８】
【数１７】
2018107887.tif 000019
【０１７９】
式（２２）は、ＢＥＭＦ位相のばらつき量（Δθｂｅｍｆ）と駆動電流位相のばらつき量（Δθｉ）がΔθｉ＝−Δθｂｅｍｆとなるように設定するための調整ゲインである。しかし、式（２２）には、モータＳＰＭのインピーダンスＺｍや駆動電流値（Ｉｃｏｉｌ）が含まれている。これらは、温度等の環境変化に応じて変化する場合があるため、例えば、各種環境変化を想定して予め複数のインピーダンスＺｍの値等を手動で準備しておくようなことが必要とされる。一方、実施の形態１の方式では、環境変化があった場合には、単に検出動作を介して位相ばらつき信号ＰｄＶ，ＰｄＷの値や振幅ばらつき信号ＡｄＶ，ＡｄＷの値を更新すればよく、環境変化に対して容易に対応可能である。
【０１８０】
図２７は、本発明の比較例［３］となるモータ駆動装置において、トルクリップルの低減方式の他の一例を説明する図である。図４で述べたように、例えば、ｕ相を基準として、ｖ相のＢＥＭＦ振幅が−２％小さい場合には、駆動電流振幅を＋２％大きくすることでトルクリップルを低減することが可能である。したがって、図２７に示されるように、例えば、電流指示値ＳＰＮＣＲを各相の振幅ばらつきに応じて６０ｄｅｇ毎に階段状に補正する方式が考えられる。しかし、このような方式では、６０ｄｅｇ毎の階段状の切り替えに伴い６次のトルクリップルが生じる恐れがある。一方、実施の形態１の方式では、このような問題は生じない。
【０１８１】
（実施の形態２）
《トルク補正部の詳細（応用例）》
図１７は、本発明の実施の形態２によるモータ駆動装置において、図２におけるトルク補正部の詳細な構成例を示す図である。図１７に示すトルク補正部ＴＲＱＣＰは、図１６の場合と同様の演算部ＣＡＬ５，ＣＡＬ６、選択回路ＳＥＬＣ３０，ＳＥＬＣ３１および加算器ＡＤＤ１０を備える。これに加えて、当該トルク補正部ＴＲＱＣＰは、選択回路ＳＥＬＣ４０，ＳＥＬＣ４１と、演算部ＣＡＬ１３，ＣＡＬ２４と、アンド演算回路ＡＤ６０，ＡＤ６１と、レジスタ回路ＲＥＧ６０〜ＲＥＧ６３と、加算器ＡＤＤ２０，ＡＤＤ２１とを備える。
【０１８２】
演算部ＣＡＬ１３は、図１６における演算部ＣＡＬ１，ＣＡＬ３を共通化したものであり、パラメータＫｄＶ，ＫｄＷを含む式（２３）の関数を演算する。すなわち、演算部ＣＡＬ１，ＣＡＬ３は、異なるパラメータを用いて式（２３）と同じ関数を演算しており、演算部ＣＡＬ１３は、この異なるパラメータを選択回路ＳＥＬＣ４０，ＳＥＬＣ４１で入れ替える形で当該関数を演算する。
【０１８３】
√（（ＫｄＶ−ＫｄＷ）２＋ＫｄＶ・ＫｄＷ）／３      （２３）
演算部ＣＡＬ２４は、図１６における演算部ＣＡＬ２，ＣＡＬ４を共通化したものであり、パラメータＫｄＶ，ＫｄＷを含む式（２４）の関数を演算する。すなわち、演算部ＣＡＬ２，ＣＡＬ４は、異なるパラメータを用いて式（２４）と同じ関数を演算しており、演算部ＣＡＬ２４は、この異なるパラメータを選択回路ＳＥＬＣ４０，ＳＥＬＣ４１で入れ替える形で当該関数を演算する。
【０１８４】
−ｔａｎ−１（√３・（ＫｄＶ−ＫｄＷ）／（ＫｄＶ＋ＫｄＷ））      （２４）
選択回路ＳＥＬＣ４０，ＳＥＬＣ４１は、ｖ相とｗ相の振幅ばらつき信号ＡｄＶ，ＡｄＷをそれぞれパラメータＫｄＶ，ＫｄＷに定めるか、ｖ相とｗ相の位相ばらつき信号ＰｄＶ，ＰｄＷをそれぞれパラメータＫｄＶ，ＫｄＷに定めるかを選択する。具体的には、選択回路ＳＥＬＣ４０，ＳＥＬＣ４１は、振幅用トルク補正イネーブル信号ＡＥＮがアサートされた場合には、パラメータＫｄＶ，ＫｄＷをそれぞれ振幅ばらつき信号ＡｄＶ，ＡｄＷに定める。一方、選択回路ＳＥＬＣ４０，ＳＥＬＣ４１は、振幅用トルク補正イネーブル信号ＡＥＮがネゲートされた場合には、パラメータＫｄＶ，ＫｄＷをそれぞれ位相ばらつき信号ＰｄＶ，ＰｄＷに定める。
【０１８５】
アンド演算回路ＡＤ６０は、振幅用トルク補正イネーブル信号ＡＥＮのアサート時および位相用トルク補正イネーブル信号ＰＥＮのネゲート時にレジスタ回路ＲＥＧ６０，ＲＥＧ６１を有効化する。一方、アンド演算回路ＡＤ６１は、振幅用トルク補正イネーブル信号ＡＥＮのネゲート時および位相用トルク補正イネーブル信号ＰＥＮのアサート時にレジスタ回路ＲＥＧ６２，ＲＥＧ６３を有効化する。
【０１８６】
各トルク補正イネーブル信号ＡＥＮ／ＰＥＮがアサート／ネゲートの場合、レジスタ回路ＲＥＧ６０は、演算部ＣＡＬ１３の演算結果をラッチし、レジスタ回路ＲＥＧ６１は、演算部ＣＡＬ２４の演算結果をラッチする。レジスタ回路ＲＥＧ６０の出力は式（１５）の振幅パラメータ（ＧｄＡ）となり、レジスタ回路ＲＥＧ６１の出力は、加算器ＡＤＤ２０によって“π／２＋帯域補償値θｃｃ”が加えられたのち、式（１６）の位相パラメータ（ＤｄＡ）となる。
【０１８７】
一方、各トルク補正イネーブル信号ＡＥＮ／ＰＥＮがネゲート／アサートの場合、レジスタ回路ＲＥＧ６２は、演算部ＣＡＬ１３の演算結果をラッチし、レジスタ回路ＲＥＧ６３は、演算部ＣＡＬ２４の演算結果をラッチする。レジスタ回路ＲＥＧ６２の出力は“２”が乗算されたのち式（７）の振幅パラメータ（ＧｄＰ）となり、レジスタ回路ＲＥＧ６３の出力は、加算器ＡＤＤ２１によって“π＋帯域補償値θｃｃ”が加えられたのち式（８）の位相パラメータ（ＤｄＰ）となる。
【０１８８】
そして、図１６の場合と同様に、演算部ＣＡＬ５は、演算部ＣＡＬ１３の演算結果を反映した振幅（ＧｄＡ）と演算部ＣＡＬ２４の演算結果を反映した位相（ＤｄＡ）とを持つ周期関数を演算することで、式（１３）の振幅用トルク補正係数ＤｃｒＡ０の中の周期関数（ｓｉｎ関数）の項（ＤｃｒＡ０’）を算出する。同様に、演算部ＣＡＬ６は、演算部ＣＡＬ１３の演算結果を反映した振幅（ＧｄＰ）と演算部ＣＡＬ２４の演算結果を反映した位相（ＤｄＰ）とを持つ周期関数を演算することで、式（５）の位相用トルク補正係数ＤｃｒＰ０の中の周期関数（ｓｉｎ関数）の項（ＤｃｒＰ０’）を算出する。
【０１８９】
ここで、帯域補償値θｃｃは、電流制御ループによる遅延を補償する値であり、図２のパラメータ設定レジスタ部ＰＲＥＧで設定可能な値である。すなわち、演算部ＣＡＬ５，ＣＡＬ６は、モータＳＰＭの回転に同期する基準ＢＥＭＦ位相θｂｅｍｆをＰＬＬ制御部ＰＬＬＣＴから受けて演算を行うが、この演算結果は、厳密には、ＰＩ補償器ＰＩＣＰ等を含む電流制御ループ内の遅延を経てモータＳＰＭに反映される。そこで、モータＳＰＭ上でトルク補正係数ＫｃｒＡＰの位相を基準ＢＥＭＦ位相θｂｅｍｆに同期させるため、この電流制御ループ内の遅延に相当する帯域補償値θｃｃが用いられる。当該帯域補償値θｃｃは、実際には、図１６の構成にも適用される。
【０１９０】
以上、実施の形態２のモータ駆動装置およびモータシステムを用いることで、実施の形態１で述べた各種効果が得られることに加えて、演算部を共通化することで回路規模の低減が図れる。実際上の運用では、例えば、まず、各トルク補正イネーブル信号ＡＥＮ／ＰＥＮをアサート／ネゲートとすることでＧｄＡ，ＤｄＡをレジスタＲＥＧ６０，ＲＥＧ６１に保持させ、各トルク補正イネーブル信号ＡＥＮ／ＰＥＮをネゲート／アサートとすることでＧｄＰ，ＤｄＰをレジスタＲＥＧ６２，ＲＥＧ６３に保持させる。そして、各トルク補正イネーブル信号ＡＥＮ／ＰＥＮをアサート／アサートとすることで、この保持した値を用いてトルク補正係数ＫｃｒＡＰを算出させる。
【０１９１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１９２】
例えば、実施の形態の方式は、ＨＤＤ装置に限らず、各種モータの駆動方法として適用可能である。具体例として、ＤＶＤ再生録画装置やブルーレイ再生録画装置等が挙げられる。または、エアコンのインバータシステム等において、モータの定常回転時に、振動、騒音を低減する技術として適用することも可能である。
【符号の説明】
【０１９３】
ＡＭＤＥＴ  相間振幅ばらつき検出部
ＡｄＶ，ＡｄＷ  振幅ばらつき信号
ＢＥＭＦＯ  逆起電圧振幅
ＢＰＨＤ  逆起電圧位相検出部
ＣＡＬ  演算部
ＤＶＰＨＧ  駆動電圧位相生成部
ＤｃｒＡ０  振幅用トルク補正係数
ＤｃｒＰ０  位相用トルク補正係数
ＥＣＮＴ  位相誤差信号
ＩＮＶＢＫ  インバータ部
ＩＰＨＤ  駆動電流位相検出部
ＫｃｒＡＰ  トルク補正係数
Ｍ１  ハイサイドトランジスタ
Ｍ２  ロウサイドトランジスタ
ＭＤＩＣ  モータ駆動装置
ＭＳＫ  マスク信号
ＯＵＴｕ，ＯＵＴｖ，ＯＵＴｗ  駆動出力端子（モータ駆動端子）
ＰＨＤＣＴ  相間位相ばらつき制御部
ＰＨＥＤ  位相誤差検出部
ＰＬＬＣＴ  ＰＬＬ制御部
ＰＷＭＯＮ＿ＭＯＤ  ＰＷＭ信号
ＰｄＶ，ＰｄＷ  位相ばらつき信号
ＳＥＬＣ  選択回路
ＳＰＭ  モータ
ＳＰＮＣＲ  電流指示値
ＴＲＱＣＰ  トルク補正部
Ｖｕ，Ｖｖ，Ｖｗ  駆動電圧
θｂｅｍｆ  基準ＢＥＭＦ位相
θｄｒｖＵ，θｄｒｖＶ，θｄｒｖＷ  駆動電圧位相
θｉ  駆動電流位相
【図１】
2018107887.tif 000020
【図２】
2018107887.tif 000021
【図３】
2018107887.tif 000022
【図４】
2018107887.tif 000023
【図５】
2018107887.tif 000024
【図６】
2018107887.tif 000025
【図７】
2018107887.tif 000026
【図８】
2018107887.tif 000027
【図９】
2018107887.tif 000028
【図１０】
2018107887.tif 000029
【図１１】
2018107887.tif 000030
【図１２】
2018107887.tif 000031
【図１３】
2018107887.tif 000032
【図１４】
2018107887.tif 000033
【図１５】
2018107887.tif 000034
【図１６】
2018107887.tif 000035
【図１７】
2018107887.tif 000036
【図１８】
2018107887.tif 000037
【図１９】
2018107887.tif 000038
【図２０】
2018107887.tif 000039
【図２１】
2018107887.tif 000040
【図２２】
2018107887.tif 000041
【図２３】
2018107887.tif 000042
【図２４】
2018107887.tif 000043
【図２５】
2018107887.tif 000044
【図２６】
2018107887.tif 000045
【図２７】
2018107887.tif 000046