(57)【特許請求の範囲】
【請求項１】
磁石を備えるロータと、前記ロータの周囲に配置される複数のホールセンサと、を備えるモータを制御するモータ制御装置であって、
前記モータが駆動する周期的に変動する負荷の変動周期を表す情報を記憶する変動周期記憶部と、
前記複数のホールセンサの検出信号から生成される、前記ロータが所定の角度回転する毎に高低が切り替わるパルス信号の各パルスのパルス幅を記憶するパルス幅記憶部と、
前記パルス信号の直前のエッジに対応する前記ロータの位相の第１の項を算出し、前記パルス信号の直前のエッジからの経過時間と、１又は複数の前記変動周期前のパルスのパルス幅との比に基づいて、前記ロータの位相の第２の項を算出し、前記第１の項と前記第２の項を足し合わせて前記ロータの位相とする、位相算出部と、
を備えることを特徴とするモータ制御装置。
【請求項２】
前記位相算出部は、
前記パルス信号の直前のエッジからの経過時間と、直前のパルスのパルス幅との比に基づいて、前記ロータの位相の第２の項を算出する第１の処理と、
前記パルス信号の直前のエッジからの経過時間と、１又は複数の前記変動周期前のパルスのパルス幅との比に基づいて、前記ロータの位相の第２の項を算出する第２の処理と、
を択一的に実行する、
請求項１に記載のモータ制御装置。
【請求項３】
前記位相算出部は、前記モータが加速状態又は減速状態である場合に前記第１の処理を実行し、前記モータが加速状態又は減速状態でない場合に前記第２の処理を実行する、
請求項２に記載のモータ制御装置。
【請求項４】
前記位相算出部は、前記モータが加速状態又は減速状態でない場合、前記パルス幅記憶部が１の前記変動周期分のパルスのパルス幅を記憶した後に、前記第２の処理を開始する、
請求項３に記載のモータ制御装置。
【請求項５】
磁石を備えるロータと、前記ロータの周囲に配置される複数のホールセンサと、を備えるモータを制御するモータ制御方法であって、
前記モータが駆動する周期的に変動する負荷の変動周期を表す情報を記憶し、
前記複数のホールセンサの検出信号から生成される、前記ロータが所定の角度回転する毎に高低が切り替わるパルス信号の各パルスのパルス幅を記憶し、
前記パルス信号の直前のエッジに対応する前記ロータの位相の第１の項を算出し、
前記パルス信号の直前のエッジからの経過時間と、１又は複数の前記変動周期前のパルスのパルス幅との比に基づいて、前記ロータの位相の第２の項を算出し、
前記第１の項と前記第２の項を足し合わせて前記ロータの位相とする、
ことを特徴とするモータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ制御装置及びモータ制御方法に関し、特にはロータの位相を算出する技術に関する。
【背景技術】
【０００２】
従来、ロータの位置を検出するためのホールセンサを備えるモータが知られている。特許文献１には、ロータが直前の区間を回転したときの平均速度ωｍｎ−１及び時間Ｔｎ−１を用いて補正を行うことで、加速による影響を補償し、ロータの位相を正確に算出することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２０１２８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、コンプレッサーなど、周期的に変動する負荷をモータが駆動する場合、負荷の周期的な変動に応じてロータの角速度も周期的に変動する。すなわち、負荷が重くなるとロータの角速度が減少し、負荷が軽くなるとロータの角速度が増加する。このため、従来技術のようにロータが直前の区間を回転したときのパラメータを用いると、ロータの位相を正確に算出できないおそれがある。
【０００５】
本発明は、上記実情に鑑みて為されたものであり、モータが駆動する負荷が周期的に変動する場合であってもロータの位相を正確に算出することが可能なモータ制御装置及びモータ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明のモータ制御装置は、磁石を備えるロータと、前記ロータの周囲に配置される複数のホールセンサと、を備えるモータを制御するモータ制御装置であって、前記モータが駆動する周期的に変動する負荷の変動周期を表す情報を記憶する変動周期記憶部と、前記複数のホールセンサの検出信号から生成される、前記ロータが所定の角度回転する毎に高低が切り替わるパルス信号の各パルスのパルス幅を記憶するパルス幅記憶部と、前記パルス信号の直前のエッジからの経過時間と、１又は複数の前記変動周期前のパルスのパルス幅とに基づいて、前記ロータの位相を算出する位相算出部と、を備える。
【０００７】
また、本発明のモータ制御方法は、磁石を備えるロータと、前記ロータの周囲に配置される複数のホールセンサと、を備えるモータを制御するモータ制御方法であって、前記モータが駆動する周期的に変動する負荷の変動周期を表す情報を記憶し、前記複数のホールセンサの検出信号から生成される、前記ロータが所定の角度回転する毎に高低が切り替わるパルス信号の各パルスのパルス幅を記憶し、前記パルス信号の直前のエッジからの経過時間と、１又は複数の前記変動周期前のパルスのパルス幅とに基づいて、前記ロータの位相を算出する。
【発明の効果】
【０００８】
本発明によると、１又は複数の変動周期前のパルスのパルス幅をロータの位相の算出に用いるため、モータが駆動する負荷が周期的に変動する場合であってもロータの位相を正確に算出することが可能である。
【図面の簡単な説明】
【０００９】
【図１】モータ制御装置を含むシステム例を示すブロック図である。
【図２】モータ制御装置の機能構成例を示すブロック図である。
【図３】負荷が周期的に変動するときの角速度の変動を説明する図である。
【図４】負荷が周期的に変動するときのパルス幅の変動を説明する図である。
【図５】モータ制御装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
本発明のモータ制御装置及びモータ制御方法の実施形態を、図面を参照しながら説明する。
【００１１】
図１は、モータ制御装置１０を含むシステム例を示すブロック図である。同図に示されるモータ駆動システム１は、モータ２と、インバータ３と、直流電源４と、モータ制御装置１０と、を備えている。
【００１２】
モータ２は、例えばブラシレスＤＣモータであり、永久磁石を備えるロータと、コイルを備えるステータと、を含んでおり、インバータ３から出力される三相交流によって回転する。また、モータ２は、ロータの周囲に配置される複数のホールセンサ２ｈを備えている。例えば、ロータの周囲には３つのホールセンサ２ｈが１２０度間隔で配置される。各々のホールセンサ２ｈは、ロータからの磁界を検出し、検出信号をモータ制御装置１０に出力する。
【００１３】
インバータ３は、例えば三相ブリッジ回路を含んでおり、モータ制御装置１０から出力される制御信号に基づいて三相交流を生成し、モータ２に出力する。直流電源４は、インバータ３に直流電力を供給する。
【００１４】
モータ制御装置１０は、例えばＭＰＵ（Micro Processing Unit）を含んでおり、プログラムに従って情報処理を実行することにより、モータ２の回転を制御するための制御信号を生成し、インバータ３に出力する。
【００１５】
図２は、モータ制御装置１０の機能構成例を示すブロック図である。同図に示される各構成は、ＭＰＵがプログラムに従って情報処理を実行することによって実現される。モータ制御装置１０は、例えばベクトル制御によってモータ２の回転を制御する。
【００１６】
モータ制御装置１０は、ＵＶＷ−ｄｑ変換器１１と、減算器１２ｑ，１２ｄと、ｑ軸電圧指令演算器１３ｑと、ｄ軸電圧指令演算器１３ｄと、ｄｑ−ＵＶＷ変換器１４と、ＰＷＭ発生器１５と、減算器１６と、ｑ軸電流指令演算器１７と、パルス幅検出器１８と、速度演算器１９と、制御位相演算器２０と、負荷変動補正器２１と、を備えている。
【００１７】
ＵＶＷ−ｄｑ変換器１１は、上記インバータ３からモータ２に供給される三相交流の電流検出値ｉｕ，ｉｖ，ｉｗをｄｑ変換することでｑ軸電流値ｉｑ，ｄ軸電流値ｉｄを生成し、減算器１２ｑ，１２ｄに出力する。ｑ軸電流値ｉｑはトルク電流成分であり、ｄ軸電流値ｉｄは励磁電流成分である。
【００１８】
減算器１２ｑは、ｑ軸電流値ｉｑと、ｑ軸電流指令演算器１７から出力されるｑ軸電流指令値ｉｑ＊との差分値Δｉｑを生成し、ｑ軸電圧指令演算器１３ｑに出力する。ｑ軸電圧指令演算器１３ｑは、差分値Δｉｑからｑ軸電圧指令値Ｖｑ＊を生成し、ｄｑ−ＵＶＷ変換器１４に出力する。これによりトルク電流成分が調整される。
【００１９】
減算器１２ｄは、ｄ軸電流値ｉｄとｄ軸電流指令値ｉｄ＊との差分値Δｉｄを生成し、ｄ軸電圧指令演算器１３ｄに出力する。本例においてｄ軸電流指令値ｉｄ＊は０である。ｄ軸電圧指令演算器１３ｄは、差分値Δｉｄからｄ軸電圧指令値Ｖｄ＊を生成し、ｄｑ−ＵＶＷ変換器１４に出力する。これにより励磁電流成分が調整される。
【００２０】
ｄｑ−ＵＶＷ変換器１４は、ｑ軸電圧指令値Ｖｑ＊，ｄ軸電圧指令値Ｖｄ＊をＵＶＷ変換することで三相交流のための電圧指令値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊を生成し、ＰＷＭ発生器１５に出力する。ＰＷＭ発生器１５は、電圧指令値Ｖｕ＊，Ｖｖ＊，Ｖｗ＊からＰＷＭ信号Ｓｕ，Ｓｖ，Ｓｗを生成し、上記インバータ３に出力する。
【００２１】
減算器１６は、角速度指令値ω＊と、速度演算器１９から出力される角速度検出値ωとの差分値Δωを生成し、ｑ軸電流指令演算器１７に出力する。ｑ軸電流指令演算器１７は、差分値Δωからｑ軸電流指令値ｉｑ＊を生成し、減算器１２ｑに出力する。
【００２２】
パルス幅検出器１８は、パルス信号ＨＳの各パルスのパルス幅を検出する（図４を参照）。パルス信号ＨＳは、上記モータ２のロータが所定の角度回転する毎に高低が切り替わる信号であり、不図示のパルス信号生成回路によりホールセンサ２ｈの検出信号から生成される。例えば、パルス信号ＨＳの高低はロータが６０度回転する毎に切り替わる。具体的には、パルス幅検出器１８は、パルス信号ＨＳの高低が切り替わるエッジを検出すると共に、エッジ間のクロック数をカウントする。
【００２３】
速度演算器１９は、パルス幅検出器１８により検出されるパルス幅から角速度検出値ωを生成し、減算器１６に出力する。すなわち、パルス幅は上記モータ２のロータが所定の角度回転する時間を表すことから、当該所定の角度をパルス幅で除することで、角速度検出値ωが区間平均値として算出される。
【００２４】
制御位相演算器２０は、位相算出部の一例であり、パルス信号ＨＳの直前のエッジからの経過時間と過去に検出されたパルス幅とを用いて上記モータ２のロータの位相を算出し、ＵＶＷ−ｄｑ変換器１１及びｄｑ−ＵＶＷ変換器１４に出力する。これらの変換器１１，１４による座標変換を精度良く実施させるには、より正確なロータの位相を供給する必要がある。
【００２５】
負荷変動補正器２１は、変動周期記憶部及びパルス幅記憶部の一例であり、過去に検出されたパルス幅を記憶すると共に、その中から選択される１つのパルス幅を制御位相演算器２０に出力する。制御位相演算器２０及び負荷変動補正器２１の具体的な動作については、後に詳しく述べる。
【００２６】
ところで、コンプレッサーなど、周期的に変動する負荷をモータ２が駆動する場合、負荷の周期的な変動に応じてロータの角速度も周期的に変動する。なお、モータ２が駆動する負荷が周期的に変動するとは、モータ２に周期的に変動する外乱トルクが作用すると言い換えることができる。
【００２７】
図３は、負荷が周期的に変動するときの角速度の変動を説明する図である。上側のグラフは時間と角速度の関係を表し、下側のグラフは時間と負荷の関係を表している。例えばコンプレッサーが膨張と圧縮を繰り返すとき、負荷が次第に軽くなる期間と、負荷が次第に重くなる期間とが交互に出現する。このとき、角速度の指令値が一定であるにも関わらず、負荷が次第に軽くなる期間ではロータの角速度が増加し、負荷が次第に重くなる期間ではロータの角速度が減少する。
【００２８】
このようにロータの角速度が周期的に変動する場合、上記パルス幅検出器１８で検出されるパルス幅も周期的に変動する。図４は、負荷が周期的に変動するときのパルス幅の変動を説明する図である。負荷変動の１周期（以下、１変動周期という。）のうち、負荷が比較的軽い軽負荷期間では、ロータの角速度が比較的高いため、パルス幅が比較的短くなる。他方、負荷が比較的重い重負荷期間では、ロータの角速度が比較的低いため、パルス幅が比較的長くなる。
【００２９】
上記制御位相演算器２０は、通常、パルス信号ＨＳの直前のエッジからの経過時間と直前のパルスのパルス幅とを用いてロータの位相を算出する。直前のパルスのパルス幅が用いられるのは、これが現在検出中のパルスのパルス幅とほぼ同じになることを前提としているためである。しかしながら、負荷が周期的に変動する場合には、直前のパルスのパルス幅と、現在検出中のパルスのパルス幅とが同じになるとは限らないため、ロータの位相を正確に算出できないおそれがある。
【００３０】
そこで、本実施形態では、以下に説明するように、１変動周期前のパルスのパルス幅を利用することによって、負荷が周期的に変動する場合であってもロータの位相を正確に算出することを可能としている。
【００３１】
図５は、モータ制御装置１０の動作例を示すフローチャートである。同図のフローチャートは、モータ制御装置１０が実行する全動作のうち、ロータの位相を算出する動作を主に示している。ロータの位相を算出する動作は、上記図２の制御位相演算器２０及び負荷変動補正器２１によって実現される。
【００３２】
モータ制御装置１０は、モータ２が駆動する周期的に変動する負荷の変動周期を表す情報を予め記憶している（変動周期記憶部としての機能）。変動周期を表す情報において、変動周期は、例えば、ロータの回転角度によって表されてもよいし、パルスの個数によって表されてもよい。上記図４に示される例では、変動周期は、ロータの回転角度で表すと７２０度（２回転）であり、パルスの個数で表すと１２個である。変動周期は、モータ２から負荷に至る駆動系によって定まる固有値である。このため、変動周期は、例えば予め測定された後ユーザにより入力される。
【００３３】
Ｓ１において、モータ制御装置１０は、モータ２が加速状態又は減速状態であるか否かを判定する。例えば、モータ２の加速度の絶対値が所定の閾値以上である場合には加速状態又は減速状態であると判定され、他方、モータ２の加速度の絶対値が所定の閾値未満である場合には加速状態又は減速状態でない（すなわち定速状態である）と判定される。
【００３４】
上記Ｓ１においてモータ２が加速状態又は減速状態でない場合には（Ｓ１：ＮＯ）、Ｓ２に進み、モータ制御装置１０は、負荷変動補正に用いるための、パルス信号ＨＳの各パルスのパルス幅の記憶を開始する（パルス幅記憶部としての機能）。例えば、モータ制御装置１０は、少なくとも最新の１変動周期分のパルス幅が保持されつつ、先に記憶されたパルス幅から先に消去されるように、パルス幅の記憶を制御する。これに限られず、例えば、最初に記憶された１変動周期分のパルス幅が保持され続けてもよい。
【００３５】
Ｓ３において、モータ制御装置１０は、１変動周期分のパルス幅が記憶されたか否かを判定する。１変動周期分のパルス幅が記憶されたか否かは、記憶されたパルス幅の数と、変動周期を表す情報に基づいて定められる１変動周期分を表す閾値と、を比較することによって判定される。
【００３６】
上記Ｓ１においてモータ２が加速状態又は減速状態である場合（Ｓ１：ＹＥＳ）又は上記Ｓ３において１変動周期分のパルス幅が未だ記憶されていない場合（Ｓ３：ＮＯ）、Ｓ４に進み、モータ制御回路１０は、パルス信号ＨＳの直前のエッジからの経過時間と、直前のパルスのパルス幅とに基づいて、ロータの位相を算出する（第１の処理）。
【００３７】
具体的には、ロータの位相θは下記数式１によって算出される。このうち、θｒｅｆは、ホールセンサ２ｈの検出信号の高低パターンによって定まる大まかなロータの位相であり、所定の角度毎（例えば６０度毎）の区間のうち、何れの区間にロータが位置しているかを表す。他方、θｏｆｓは、当該区間における精細なロータの位相を表し、パルス信号ＨＳの直前のエッジを基準に算出される。
【００３８】
【数１】
0005573930.tif 000002
【００３９】
第１の処理において、θｏｆｓは下記数式２によって算出される。ＴＳはパルス信号ＨＳの直前のエッジからの経過時間を表し、Ｔｒｂは直前のパルスのパルス幅を表す。また、６０度は一区間の角度を表す。
【００４０】
【数２】
0005573930.tif 000003
【００４１】
上記Ｓ３において１変動周期分のパルス幅が記憶された場合には（Ｓ３：ＹＥＳ）、Ｓ５に進み、モータ制御装置１０は、パルス信号ＨＳの直前のエッジからの経過時間と、１変動周期前のパルスのパルス幅とに基づいて、ロータの位相を算出する（第２の処理）。この第２の処理は、負荷変動補正とも呼ばれ、負荷の周期的な変動による影響を補償するための処理である。
【００４２】
具体的には、ロータの位相θは上記数式１によって算出されるが、第２の処理ではθｏｆｓの算出方法が上記第１の処理とは異なる。第２の処理において、θｏｆｓは下記数式３によって算出される。ＴＳはパルス信号ＨＳの直前のエッジからの経過時間を表し、Ｔｆｃは１変動周期前のパルスのパルス幅を表す。すなわち、第２の処理において、θｏｆｓは、パルス信号ＨＳの直前のエッジからの経過時間ＴＳと、１変動周期前のパルスのパルス幅Ｔｆｃとの比を一区間の角度に乗じることによって算出される。
【００４３】
【数３】
0005573930.tif 000004
【００４４】
当該第２の処理では、１変動周期前のパルスのパルス幅が用いられたが、これに限られず、２以上の変動周期前のパルスのパルス幅が用いられてもよい。例えば、上記Ｓ２において最初に記憶された１変動周期分のパルス幅が保持され続ける場合には、当該パルス幅が用いられてもよい。
【００４５】
以上に説明した本実施形態によると、モータ制御装置１０は、Ｓ５において、パルス信号ＨＳの直前のエッジからの経過時間と、１変動周期前のパルスのパルス幅とに基づいて、ロータの位相を算出する第２の処理（負荷変動補正）を実行する。これによると、図４に示されるように、モータ２が駆動する負荷が周期的に変動する場合であっても、現在検出中のパルスのパルス幅とほぼ同じ、１変動周期前のパルスのパルス幅がロータの位相の算出に用いられるため、ロータの位相を正確に算出することが可能である。
【００４６】
また、本実施形態によると、モータ制御装置１０は、Ｓ４におけるパルス信号ＨＳの直前のエッジからの経過時間と直前のパルスのパルス幅とに基づいてロータの位相を算出する第１の処理と、Ｓ５における第２の処理と、を択一的に実行する。これによると、第１の処理と第２の処理とをそれぞれが適した状態で使い分けることが可能である。
【００４７】
また、本実施形態によると、モータ制御装置１０は、モータ２が加速状態又は減速状態である場合に（Ｓ１：ＹＥＳ）Ｓ４における第１の処理を実行し、モータ２が加速状態又は減速状態でない場合に（Ｓ１：ＮＯ）Ｓ５における第２の処理を実行する。加速状態又は減速状態では、直前のパルスのパルス幅と、現在検出中のパルスのパルス幅とが同じになるとは限らないため、第２の処理の実行を避けることが好ましい。
【００４８】
また、本実施形態によると、モータ制御装置１０は、モータ２が加速状態又は減速状態でない場合（Ｓ１：ＮＯ）、１変動周期分のパルスのパルス幅を記憶した後に（Ｓ３：ＹＥＳ）、Ｓ５における第２の処理を開始する。これによると、１変動周期分のパルスのパルス幅が蓄積され、１変動周期前のパルスのパルス幅が利用可能になった上で第２の処理が開始される。
【００４９】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、種々の変形実施が当業者にとって可能であるのはもちろんである。
【符号の説明】
【００５０】
１  モータ駆動システム、２  モータ、２ｈ  ホールセンサ、３  インバータ、４  直流電源、１０  モータ制御装置、１１  ＵＶＷ−ｄｑ変換器、１２ｑ，１２ｄ  減算器、１３ｑ  ｑ軸電圧指令演算器、１３ｄ  ｄ軸電圧指令演算器、１４  ｄｑ−ＵＶＷ変換器、１５  ＰＷＭ発生器、１６  減算器、１７  ｑ軸電流指令演算器、１８  パルス幅検出器、１９  速度演算器、２０  制御位相演算器、２１  負荷変動補正器。
【図１】
0005573930.tif 000005
【図２】
0005573930.tif 000006
【図３】
0005573930.tif 000007
【図４】
0005573930.tif 000008
【図５】
0005573930.tif 000009