トルクが周期的に変動する負荷を駆動するモータを制御するモータ制御装置であって、前記モータの巻線に流れる電流を検出する電流検出手段と、前記検出した電流に基づいて励磁成分電流であるd軸電流とトルク成分電流であるq軸電流とを求める電流演算手段と、前記モータの回転速度が外部より与えられる指令回転速度に一致するように指令d軸電流および指令q軸電流を生成する速度制御手段と、前記d軸電流および前記q軸電流がそれぞれ前記指令d軸電流および前記指令q軸電流に一致するように制御する電流制御手段と、前記負荷を所定の条件で駆動した場合における各回転角度毎の前記負荷のトルクを示す基準負荷トルクデータが記憶された記憶手段と、前記モータの回転角度に応じて前記記憶手段から前記基準負荷トルクデータを読み出し、その基準負荷トルクデータから一定のゼロ点設定値を減算するとともに、所定のゲインを与えた負荷トルクデータを求めるトルクデータ演算手段と、前記モータの回転速度の変動幅を求める速度変動幅演算手段と、前記回転速度の変動幅の変化傾向を判断する変化傾向判断手段と、前記変化傾向判断手段により前記回転速度の変動幅が減少傾向であると判断されるように前記ゲインの値を調整するゲイン調整手段と、前記負荷トルクデータを前記モータのトルク定数で除算した電流に基づいて指令q軸電流補正値を演算し、その指令q軸電流補正値により前記指令q軸電流を補正する補正手段と、を備えていることを特徴とするモータ制御装置。前記モータの回転角度を入力し補正した回転角度を出力する回転角度補正手段を備え、前記トルクデータ演算手段は、前記補正された回転角度に応じて前記記憶手段から前記基準負荷トルクデータを読み出すことを特徴とする請求項1に記載のモータ制御装置。前記記憶手段には、複数種類の前記基準負荷トルクデータが記憶されており、前記トルクデータ演算手段は、前記記憶手段から前記負荷の駆動条件に最も近い種類の前記基準負荷トルクデータを読み出すことを特徴とする請求項1または2に記載のモータ制御装置。請求項1~3のいずれか一つに記載のモータ制御装置により制御されるモータと、前記モータに接続され、そのモータの回転駆動により熱伝達媒体を圧縮する圧縮部と、を備えていることを特徴とする圧縮機。請求項4に記載の圧縮機、第1熱交換器、減圧装置および第2熱交換器が熱伝達媒体流路により接続されていることを特徴とするヒートポンプ装置。そこで、実際の負荷トルクの変動態様に一致するように、トルク変動を補償することができるモータ制御装置、そのモータ制御装置を用いた圧縮機、および、その圧縮機を用いたヒートポンプ装置を提供する。本実施形態のモータ制御装置は、トルクが周期的に変動する負荷を駆動するモータを制御するものであり、電流検出手段、電流演算手段、速度制御手段、電流制御手段、記憶手段、トルクデータ演算手段、速度変動幅演算手段、変化傾向演算手段、ゲイン調整手段および補正手段を備えている。電流検出手段は、モータの巻線に流れる電流を検出する。電流演算手段は、検出した電流に基づいて励磁成分電流であるd軸電流とトルク成分電流であるq軸電流とを求める。速度制御手段は、モータの回転速度が外部より与えられる指令回転速度に一致するように指令d軸電流および指令q軸電流を生成する。電流制御手段は、d軸電流およびq軸電流がそれぞれ指令d軸電流および指令q軸電流に一致するように制御する。記憶手段は、負荷を所定の条件で駆動した場合における各回転角度毎の負荷のトルクを示す基準負荷トルクデータが記憶される。トルクデータ演算手段は、モータの回転角度に応じて記憶手段から基準負荷トルクデータを読み出し、その基準負荷トルクデータから一定のゼロ点設定値を減算するとともに、所定のゲインを与えた負荷トルクデータを求める。速度変動幅演算手段は、モータの回転速度の変動幅を求める。変化傾向判断手段は、回転速度の変動幅の変化傾向を判断する。ゲイン調整手段は、変化傾向判断手段により回転速度の変動幅が減少傾向であると判断されるようにゲインの値を調整する。補正手段は、負荷トルクデータをモータのトルク定数で除算した電流に基づいて指令q軸電流補正値を演算し、その指令q軸電流補正値により指令q軸電流を補正する。以下、エアコンディショナの圧縮機に組み込まれたモータを制御するモータ制御装置の一実施形態について図面を参照しながら説明する。図3は、エアコンディショナの冷凍サイクルの概略構成を示している。図3に示すように、エアコンディショナEのヒートポンプ装置1を構成する圧縮機2負荷に相当は、圧縮部3とモータ4とを同一の鉄製密閉容器5内に収容して構成され、モータ4のロータシャフトが圧縮部3に連結されている。圧縮機2、四方弁6、室内側熱交換器7第1熱交換器に相当、減圧装置8および室外側熱交換器9第2熱交換器に相当は、冷媒通路熱伝達媒体流路に相当であるパイプにより閉ループを構成するように接続されている。なお、圧縮機2は、例えばロータリ型のコンプレッサであり、モータ4は、例えば三相IPMInteriorPermanentMagnetモータである。暖房時には、四方弁6は実線で示す状態となっている。このため、圧縮機2の圧縮部3で圧縮された高温冷媒熱伝達媒体に相当は、四方弁6から室内側熱交換器7に供給されて凝縮し、その後、減圧装置8で減圧され、低温となって室外側熱交換器9に流れ、そこで蒸発して圧縮機2へと戻る。一方、冷房時には、四方弁6は破線で示す状態に切り替えられる。このため、圧縮機2の圧縮部3で圧縮された高温冷媒は、四方弁6から室外側熱交換器9に供給されて凝縮し、その後、減圧装置8で減圧され、低温となって室内側熱交換器7に流れ、そこで蒸発して圧縮機2へと戻る。室内側熱交換器7および室外側熱交換器9には、それぞれファン10および11により送風が行われるようになっている。この送風により、室内側熱交換器7および室外側熱交換器9と、室内空気および室外空気との熱交換が効率良く行われるように構成されている。図1は、モータ4の回転をベクトル制御するモータ制御装置21の構成を機能ブロックにより示したものである。ベクトル制御では、電機子巻線に流れる電流を、界磁である永久磁石の磁束方向と、それに直交する方向とに分離してそれらを独立に調整し、磁束と発生トルクとを制御する。電流制御には、モータ4の回転子とともに回転する座標系、いわゆるd-q座標系で表した電流値が用いられるが、d軸は回転子に取り付けた永久磁石の作る磁束方向であり、q軸はd軸に直交する方向である。q軸電流Iqは回転トルクを発生させる成分トルク成分電流であり、d軸電流Idは磁束を作る成分励磁または磁化成分電流である。モータ制御装置21は、電流制御部22、回転位置推定部23、速度制御部24、PWM形成部25、インバータ回路26、回転角度補正部27およびq軸電流補正部28を備えている。電流制御部22は、減算器29d、29q、PID制御器30d、30q、dq/αβ座標変換器31、αβ/UVW座標変換器32、UVW/αβ座標変換器33およびαβ/dq座標変換器34を備えている。なお、本実施形態では、減算器29d、29qおよびPID制御器30d、30qにより電流制御手段35が構成され、UVW/αβ座標変換器33およびαβ/dq座標変換器34により電流演算手段36が構成される。インバータ回路26は、スイッチング素子例えばIGBT26ap、26an、...を3相ブリッジの回路形態に接続してなる周知の電圧形インバータであって、各下アーム側スイッチング素子と負側の直流電源線との間にはシャント抵抗26rが設けられている。本実施形態では、各シャント抵抗26rの端子電圧に基づいて、モータ4の各相U相、V相、W相に流れる電流Iu、Iv、Iwが検出されるようになっている。すなわち、本実施形態では、各シャント抵抗26rが電流検出手段に相当する。なお、電流検出手段として、例えばインバータ回路26の出力端子とモータ4の端子との間にホールCTからなる電流検出器を設ける構成としてもよい。上記した構成により検出される電流Iu、Iv、Iwは、UVW/αβ座標変換器33により2相電流Iα、Iβに変換される。これら2相電流Iα、Iβは、αβ/dq座標変換器34により、さらにd軸電流Id、q軸電流Iqに変換される。α、βは、モータ4の固定子に固定された2軸座標系の座標軸である。このαβ/dq座標変換器34における座標変換の計算には、後述する回転子の推定回転角度θeα軸とd軸との位相差の推定値が用いられる。減算器29dは、速度制御部24から与えられる指令d軸電流Idrefからd軸電流Idを減算してd軸電流偏差ΔIdを求める。減算器29qは、速度制御部24から与えられる指令q軸電流Iqrefからq軸電流Iqを減算するとともに、さらにq軸電流補正部28から与えられる指令q軸電流補正値Iqcを加算してq軸電流偏差ΔIqを求める。PID制御器30d、30qは、d軸電流偏差ΔIdおよびq軸電流偏差ΔIqに対するPID演算を実行し、d-q座標系で表された指令d軸電圧Vdおよび指令q軸電圧Vqを生成する。指令d軸電圧Vdおよび指令q軸電圧Vqは、dq/αβ座標変換器31によりα-β座標系で表した値に変換され、さらにαβ/UVW座標変換器32により固定子の各相指令電圧Vu、Vv、Vwに変換される。なお、dq/αβ座標変換器31における座標変換の計算にも、回転子の推定回転角度θeが用いられる。各相指令電圧Vu、Vv、VwはPWM形成部25に入力される。PWM形成部25では、指令電圧に一致する電圧を供給するためのパルス幅変調されたゲート駆動信号が形成される。PWM形成部25で形成されたゲート駆動信号は、インバータ回路26を構成する各スイッチング素子26ap、26an、...のゲートに与えられ、それにより各相指令電圧Vu、Vv、Vwに一致するPWM変調された三相交流電圧が生成されてモータ4の電機子巻線に印加される。上記構成において、減算器29d、29qおよびPID制御器30d、30qによるPID演算によってフィードバック制御が行われる。これにより、d軸電流Idおよびq軸電流Iqは、それぞれ指令d軸電流Idrefおよび指令q軸電流補正値Iqcが加算された指令q軸電流Iqrefに一致するように制御される。回転位置推定部23は、回転子の回転角度θ回転位置の推定値である推定回転角度θe推定回転位置および回転速度ωの推定値である推定回転速度ωeを推定するものであり、d軸電流Id、q軸電流Iqおよび指令d軸電圧Vdが入力されている。回転位置推定部23には、モータ4の回路定数である電機子巻線のd軸インダクタンスLd、q軸インダクタンスLqおよび巻線抵抗値Rの各値が記憶されている。回転位置推定部23は、これら入力値および回路定数を用いて、d軸方向の誘起電圧推定値Edを下記1式に基づいて計算する。Ed=Vd-RId-LdpIdωeLqIq...1ここで、pは微分演算子である。回転位置推定部23において、この誘起電圧推定値Edに対するPID演算が実行されることにより、その結果が回転子の推定回転速度ωeとして出力される。この推定方法によれば、d軸方向の誘起電圧推定値Edはゼロに収束する。推定回転速度ωeが積分されることにより、その値が推定回転角度θeとして出力される。推定回転速度ωeは、速度制御部24およびq軸電流補正部28に与えられる。推定回転角度θeは、回転角度補正部27、dq/αβ座標変換器31およびαβ/dq座標変換器34に与えられる。速度制御部24速度制御手段に相当には、エアコンディショナの運転を制御する外部の制御装置図示せずから出力される指令回転速度ωrefが入力されている。減算器37qは、指令回転速度ωrefから回転位置推定部23で推定された推定回転速度ωeを減算して速度偏差Δωを求め、PID制御器38は、速度偏差Δωに対するPID演算を実行して指令q軸電流Iqrefを生成する。指令d軸電流Idrefは一定値本実施形態ではゼロとしている。指令d軸電流Idrefおよび指令q軸電流Iqrefは、電流制御部22に与えられ、前述したようにモータ4のd軸電流Idおよびq軸電流Iqがそれらの指令値に一致するように制御される。以上のような制御の結果、推定回転速度ωeが指令回転速度ωrefに一致するようになっている。回転角度補正部27回転角度補正手段に相当は、回転位置推定部23により推定されたモータ4の推定回転角度θeを所定角度だけ増減させた補正推定回転角度θe’を出力する。上記所定角度の増減は、使用者による変更が可能となっている。q軸電流補正部28には、上記した指令回転速度ωrefが与えられている。q軸電流補正部28は、推定回転速度ωe、補正推定回転角度θe’、指令回転速度ωref、後述する負荷トルクデータなどに基づいて負荷トルクの周期的な変動分に相当する指令q軸電流補正値Iqcを演算し、電流制御部22の減算器29qに出力する。これにより、モータ4のq軸電流Iqは、負荷トルクの周期的な変動に対応して変化する。図2は、q軸電流補正部28の構成を示すブロック図である。q軸電流補正部28は、速度変動幅演算部51速度変動幅演算手段に相当、速度変動幅比較部52、トルク制御部53変化傾向判断手段およびゲイン調整手段に相当、記憶部54記憶手段に相当、トルクデータ演算部55トルクデータ演算手段に相当、ゼロ点設定値取得部56および指令q軸電流補正値演算部57補正手段に相当から構成されている。速度変動幅演算部51は、補正推定回転角度θe’と推定回転速度ωeとに基づいて、モータ4が機械角で1回転する期間の推定回転速度ωeの変動幅ωwを演算する。本実施形態では、モータ4の回転角度機械角が所定の起点角度例えば5度となる度に、その時点から1回転前までの期間における変動幅ωwが算出される。なお、変動幅ωwが算出されるタイミングは回転角度が5度のときに限らず、所定の回転角度に設定すればよい。速度変動幅演算部51は、モータ4の補正推定回転角度θe’以下では単に回転角度θe’というの所定の演算周期毎に推定回転速度ωeの値を取得している。なお、演算周期は、メイン関数の実行周期でもよいし、割り込み関数の実行周期でもよい。速度変動幅演算部51は、1回転前の変動幅ωwの演算タイミングから1つ後の演算周期において、推定回転速度ωeの現在値と後述する初期値にセットされた仮最大値との比較を行い、大きい方の値を仮最大値として保持する。この後は、現在値と仮最大値との比較を繰り返し行い、順次仮最大値を更新していく。その後、当該1回転の変動幅ωwの演算タイミングにおいて、最終的に保持されている仮最大値を当該1回転中の最大値として取得する。また、このとき、仮最大値を、推定回転速度ωeの想定される範囲の値より十分に小さい値、例えば‘0’に置き換える初期値のセット。これにより、今回の仮最大値の値が、次の1回転中の最大値の算出に影響を及ぼさないので、各1回転中の最大値を正確に算出できる。この最大値の算出方法と同様の方法で最小値も算出する。つまり、1回転前の変動幅ωwの演算タイミングから1つ後の演算周期において、推定回転速度ωeの現在値と後述する初期値にセットされた仮最小値との比較を行い、小さい方の値を仮最小値として保持する。この後は、現在値と仮最小値との比較を繰り返し行い、順次仮最小値を更新していく。その後、当該1回転の変動幅ωwの演算タイミングにおいて、最終的に保持されている仮最小値を当該1回転中の最小値として取得する。また、このとき、仮最小値を、推定回転速度ωeの想定される範囲の値より十分に大きい値、例えば‘1000’に置き換える初期値のセット。これにより、今回の仮最小値の値が、次の1回転中の最小値の算出に影響を及ぼさないので、各1回転中の最小値を正確に算出できる。このようにして算出した最大値および最小値との差から1回転中の回転速度の変動幅ωwが求められる。速度変動幅演算部51は、このようにして求められる変動幅ωwを変動幅比較部52に対して出力する。速度変動幅比較部52は、与えられる変動幅ωwを図示しない記憶部に順次記憶する。速度変動幅比較部52は、変動幅ωwが与えられると、記憶部から前回記憶した変動幅ωwを読み出し、今回与えられた変動幅ωw今回の1回転中の変動幅ωwと、読み出した変動幅ωw前回の1回転中の変動幅ωwとを比較し、その比較結果に従って増減するカウント値cntを出力する。図4は、速度変動幅比較部52の制御内容を示すフローチャートである。図4に示すように、最初に実行されるステップS1において、カウント値cntがゼロに初期化されるcnt0。その後、変動幅ωwの演算タイミング回転角度θe’=5度に達するとステップS2でYES、ステップS3に進む。ステップS3では、現在今回の変動幅ωwおよび前回の変動幅ωwが比較される。上記比較の結果、現在の変動幅ωwが前回の変動幅ωwより小さいと判断される場合、つまり変動幅ωwが減少傾向であると判断される場合ステップS3でYESにはステップS4に進む。ステップS4では、カウント値cntが1だけインクリメントされるcntcnt1。続くステップS5では、カウント値cntが上限値を上回っているか否かが判断される。本実施形態では、カウント値cntの上限値は、例えば10としている。カウント値cntが上限値以下である場合ステップS5でNO、ステップS6を実行することなく、ステップS7に進む。カウント値cntが上限値を上回っている場合ステップS5でYES、ステップS6に進む。ステップS6では、カウント値cntが上限値に置き換えられるcnt=上限値。すなわち、カウント値cntは上限値でクリップされる。ステップS6の実行後はステップS7に進む。一方、ステップS3において、現在の変動幅ωwが前回の変動幅ωwより大きいと判断される場合、つまり変動幅ωwが増加傾向であると判断される場合ステップS3でNOにはステップS8に進む。ステップS8では、カウント値cntが1だけデクリメントされるcntcnt1。続くステップS9では、カウント値cntが下限値を下回っているか否かが判断される。本実施形態では、カウント値cntの下限値は、例えば-10としている。カウント値cntが下限値以上である場合ステップS9でNO、ステップS10を実行することなく、ステップS7に進む。カウント値cntが下限値を下回っている場合ステップS9でYES、ステップS10に進む。ステップS10では、カウント値cntが下限値に置き換えられるcnt下限値。すなわち、カウント値cntは下限値でクリップされる。ステップS10の実行後はステップS7に進む。このように、速度変動幅比較部部52は、変動幅ωwの変化傾向に応じてカウント値cntを増減し、そのカウント値cntをトルク制御部53に対して出力するステップS7。なお、カウント値cntの上限値および下限値は、上記した値に限らずともよく、モータ制御装置21の仕様負荷トルクの変動に対する振動抑制の追従性などに応じて適宜変更すればよい。トルク制御部53は、モータ4が機械角で1回転する度にカウント値cntを参照し、その参照結果に基づいて回転速度の変動幅ωwの変化傾向を判断する機能変化傾向判断手段を有する。また、トルク制御部53は、変動幅ωwが減少傾向であると判断されるように、後述するトルク制御ゲインの値を調整する機能ゲイン調整手段を有する。詳細は後述するが、トルク制御部53は、指令回転速度ωrefおよびカウント値cntに基づいてトルク制御ゲインGを設定する。トルク制御ゲインGは、q軸電流Iqの変動態様つまり発生トルクの変動態様が負荷トルクの変動態様に一致するように指令q軸電流補正値Iqcを調整するためのものである。発生トルクおよび負荷トルクの変動態様が一致するほど、回転速度の変動幅ωwは小さくなる。従って、トルク制御部53は、前述したように、回転速度の変動幅ωwが減少傾向であると判断されるようにトルク制御ゲインGの値を設定する。なお、本実施形態では、トルク制御ゲインGの設定を行うタイミングは、前述した回転速度の変動幅ωwを演算するタイミングと同じにしている。すなわち、トルク制御ゲインGの設定を行うタイミングはモータ4の機械角での1回転毎であり、例えば回転角度が5度のときである。なお、このトルク制御ゲインGを設定するタイミングについても、回転角度が5度のときに限らず、所定の回転角度に設定すればよい。トルク制御ゲインGは、負荷トルクデータにおける負荷トルクの大きさを調整することで間接的に指令q軸電流補正値Iqcを調整するためのものであり、トルクデータ演算部55に与えられる。記憶部54には、モータ4の回転角度と、各回転角度例えば1度毎に対応した負荷トルクを示すデータとが対応付けられた基準負荷トルクデータが記憶されている。図5は、このような基準負荷トルクデータの一例を示している。本実施形態における基準負荷トルクデータは、例えば、エアコンディショナEの冷房運転時において圧縮機2を低速で駆動する場合の負荷トルクの変動分に対応している。なお、基準負荷トルクデータは、所定の駆動条件で圧縮機2を駆動する場合における負荷トルクの変動分に対応するものであればよい。トルクデータ演算部55は、記憶部54から補正推定回転角度θe’に応じた基準負荷トルクデータを読み出す。その読み出された基準負荷トルクデータは、ゼロ点設定値取得部56にも与えられる。ゼロ点設定値取得部56は、モータ4の1回転分に対応する基準負荷トルクデータの平均値を算出し、その平均値をゼロ点設定値として取得する。そのゼロ点設定値は、トルクデータ演算部55に与えられる。トルクデータ演算部55は、読み出した基準負荷トルクデータからゼロ点設定値を減算するとともに、トルク制御ゲインGを与えることにより、負荷トルクデータを求める。トルクデータ演算部55は、求めた負荷トルクデータを指令q軸電流補正値演算部57に与える。指令q軸電流補正値演算部57は、負荷トルクデータをモータ4のトルク定数で除算することにより電流に変換し、指令q軸電流補正値Iqcを演算する。なお、本実施形態では、指令q軸電流補正値演算部57が補正手段に相当する。続いて、トルク制御部53でのトルク制御ゲインGの設定方法について図6および図7を参照して説明する。図6は、トルク制御部53におけるトルク制御ゲインGに関する制御内容を示すフローチャートである。まず、ステップT1では、本制御で使用する変数Gadj、xを初期値に設定するGadj=1、x=0。その後、モータ4の機械角での1回転の起点回転角度θe’=5度に達する度ステップT2で[YES]、ステップT3以降の処理が実行される。ステップT3では、指令回転速度ωrefの値に変化が無いか否かが判断される。指令回転速度ωrefの値に変化がある場合NO、ステップT4に進む。さて、指令回転速度ωrefが変化すると、実際の負荷トルクも変化する。具体的には、指令回転速度ωrefが増加すると負荷トルクが大きくなり、指令回転速度ωrefが減少すると負荷トルクが小さくなる。そこで、本実施形態では、次のように、指令回転速度ωrefの変化に応じてトルク制御ゲインGを増減する。すなわち、ステップT4では、指令回転速度ωrefが増加したか否かが判断される。指令回転速度ωrefが増加した場合ステップT4でYES、ステップT5に進む。ステップT5では、変数Gadjが1に設定される。一方、指令回転速度ωrefが減少した場合ステップT4でNO、ステップT6に進む。ステップT6では、変数Gadjが0に設定される。ステップT5またはT6の実行後は、ステップT7に進む。ステップT7では、変数Gadjの値が確認される。変数Gadjが1である場合ステップT7でYES、ステップT8に進む。ステップT8では、現在のトルク制御ゲインGの値に対し、所定値ΔGだけ加算されたものが、新たなトルク制御ゲインGの値として設定されるG=GΔG。一方、変数Gadjが0である場合ステップT7でNO、ステップT9に進む。ステップT9では、現在のトルク制御ゲインGの値に対し、所定値ΔGだけ減算されたものが、新たなトルク制御ゲインGの値として設定されるG=G-ΔG。ステップT8またはT9の実行後は、ステップT2に戻る。このように、本実施形態では、指令回転速度ωrefの値に変化がある場合、カウント値cnt回転速度の変動幅ωwに基づいたトルク制御ゲインGの設定後述するを行うことなく、トルク制御ゲインGを強制的に増減する。具体的には、指令回転速度ωrefが増加した場合にはトルク制御ゲインGの値を増加させ、指令回転速度ωrefが減少した場合にはトルク制御ゲインGの値を減少させる。つまり、トルク制御部53は、指令回転速度ωrefが増加する方向に変化すると、その変化量に応じてトルク制御ゲインGを増加し、指令回転速度ωrefが減少する方向に変化すると、その変化量に応じてトルク制御ゲインGを減少する。一方、指令回転速度ωrefの値に変化が無い場合ステップT3でYES、ステップT10に進む。さて、前述したように、カウント値cntの初期値はゼロであり、回転速度の変動幅ωwが減少傾向のときにインクリメントされるとともに、増加傾向のときにデクリメントされるようになっている。そのため、カウント値cntは、変動幅ωwが強い減少傾向のときには必ず正の値であり、強い増加傾向のときには必ず負の値であると考えられる。図7は、このようなカウント値cntの推移の一例を示している。図7に示すように、カウント値cntが上限値にクリップされている期間Taにおいては、変動幅ωwは強い減少傾向であると考えられる。そのため、この期間Taでは、トルク制御ゲインGの増減方向を維持することが望ましい。カウント値cntが下限値にクリップされる期間Tcにおいては、変動幅ωwは強い増加傾向であると考えられる。そのため、この期間Tcでは、トルク制御ゲインGの増減方向を反転することが望ましい。上記各期間Ta、Tcの間の期間Tbにおいては、変動幅ωwは緩やかな減少傾向または増加傾向であると考えられる。そのため、この期間Tbでは、カウント値cntの極性に応じてトルク制御ゲインGを増減すればよい。このようなことを踏まえ、本実施形態では、次のように、カウント値cntに応じてトルク制御ゲインGを増減する。すなわち、ステップT10では、カウント値cntの極性が判断される。カウント値cntが正の値である場合ステップT10でNO、ステップT11に進む。ステップT11では、変数Gadjが1に設定される。ステップT11の実行後はステップT7を経由してステップT8に進み、トルク制御ゲインGがΔGだけ増加される。一方、カウント値cntが負の値である場合ステップT10でYES、ステップT12に進む。ステップT12では、カウント値cntが下限値であるか否かが判断される。なお、以下では、カウント値cntが下限値である状態を下べた状態とも称す。カウント値cntが下限値を上回っている場合ステップT12でNO、ステップT13に進む。ステップT13では、変数xがゼロに初期化されるx=0。続くステップT14では、変数Gadjが0に設定される。ステップT14の実行後はステップT7を経由してステップT9に進み、トルク制御ゲインGがΔGだけ減少される。カウント値cntが下限値である場合、つまり下べた状態である場合ステップT12でYES、ステップT15に進む。ステップT15では、変数xが1だけインクリメントされるx=x1。つまり、変数xは、下べた状態であると判断される度にインクリメントされる。ただし、変数xは、下べた状態が解消された場合ステップT12でNO、初期値に戻されるx=0。続くステップT16では、変数xが所定の判定値本実施形態では3より大きいか否かが判断される。つまり、4回連続して下べた状態であると判断されたか否かが判断される。なお、上記判定値は、3に限らずともよく、2でもよいし、4以上でもよい。下べた状態の連続回数が3回未満の場合ステップT16でNO、ステップT7に進む。そして、そのときの変数Gadjの値に応じてトルク制御ゲインGの値が増減される。これに対し、下べた状態の連続回数が4回に達した場合ステップT16でYES、ステップT17に進む。ステップT17では、変数xがゼロに初期化されるx=0。続くステップT18では、変数Gadjの値が確認される。変数Gadjが0である場合ステップT18でYES、ステップT19に進む。ステップT19では、変数Gadjが1に設定される。一方、変数Gadjが1である場合ステップT18でNO、ステップT20に進む。ステップT20では、変数Gadjが0に設定される。つまり、下べた状態の連続回数が4回に達すると、変数Gadjの値が反転される。ステップT19の実行後はステップT8に進み、トルク制御ゲインGがΔGだけ増加される。また、ステップT20の実行後はステップT9に進み、トルク制御ゲインGがΔGだけ減少される。トルク制御部53は、上記制御により、モータ4が機械角で1回転する度にトルク制御ゲインGの値を増減変化させる。トルクデータ演算部55では、このように増減されるトルク制御ゲインGに応じて負荷トルクデータにおける負荷トルクの大きさが調整されることになる。次に、上記構成のモータ制御装置21を用いてモータ4の制御を行う場合の動作について図8も参照して説明する。まず、モータ制御装置21は、モータ4を例えば強制転流により始動させる。その後、エアコンディショナEの運転を制御する外部の制御装置から与えられる指令回転速度ωrefに基づいてモータ4の回転速度をフィードバック制御する定常運転状態。q軸電流補正部28では、モータ4の始動時から指令q軸電流補正値Iqcの演算が継続して実施される。つまり、モータ制御装置21では、モータ4の運転中、トルク変動に対する補償が継続して実施される。図8は、回転速度の変動幅ωwの推移の一例を示している。モータ4の始動が開始される以前においては、指令q軸電流補正値Iqcの演算、ひいてはトルク制御ゲインGの演算は行われていない。そのため、トルク制御ゲインGの演算が開始された時点では、発生トルクおよび負荷トルクの差が大きく、回転速度の変動幅ωwが高い値を示す例えば、図8の時点ta付近の期間。この場合、トルク制御ゲインGを増加させれば必ず変動幅ωwが減少するため、トルク制御ゲインGの増加を続けることにより、変動幅ωwが次第に小さくなる。そして、変動幅ωwが最小となるトルク制御ゲインGの値を境に、変動幅ωwが増加に転じる図8の時点tc。変動幅ωwが増加傾向に転じることにより、カウント値cntも減少に転じる。ただし、トルク制御ゲインGの増加はカウント値cntが負の値になるまで継続される。そして、カウント値cntが負の値に転じると、トルク制御ゲインGが減少に転じて変動幅ωwも減少する。トルク制御ゲインGの減少を続けることにより、変動幅ωwが次第に小さくなる。その後、変動幅ωwが最小となるトルク制御ゲインGの値を境に、変動幅ωwが増加に転じる図8の時点tc。ただし、トルク制御ゲインGの減少はカウント値cntが正の値になるまで継続される。そして、カウント値cntが正の値に転じると、トルク制御ゲインGが増加に転じて変動幅ωwも減少する。以降は、このような動作が繰り返されることになる。従って、トルク制御ゲインGは、その最適値変動幅ωwが最小となる値を中心に振動する波形三角波状の波形となる。つまり、トルク制御ゲインGは、若干の変動はあるものの、概ね変動幅ωwが最小となる値に収束することになる。なお、カウント値cntについても、上記トルク制御ゲインGと同様に、ゼロを中心に振動する波形となる。q軸電流補正部28では、上記したように最適値に収束するトルク制御ゲインGを用いた演算により、指令q軸電流補正値Iqcが求められる。そして、この指令q軸電流補正値Iqcは、減算器29qに出力され、指令q軸電流Iqrefに指令q軸電流補正値Iqcが加算される。モータ4の運転中、このような動作が繰り返し実行されることにより、圧縮機2の負荷トルクの周期的な変動によるモータ4の回転速度の変動が抑制される。以上説明したように、本実施形態のモータ制御装置21は、圧縮機2を所定の駆動条件で駆動する場合の負荷トルクの変動分に対応した基準負荷トルクデータからその基準負荷トルクデータの平均値を減算するとともにトルク制御ゲインGを与えた負荷トルクデータなどに基づいて指令q軸電流補正値Iqcを演算し、その指令q軸電流補正値Iqcを電流制御部22の減算器29qに出力するq軸電流補正部28を備えた構成とした。このような構成によれば、減算器29qにおいて、そのときの圧縮機2の駆動条件に対応した負荷トルクの変動分に相当する指令q軸電流補正値Iqcが指令q軸電流Iqrefに加算される。これにより、エアコンディショナEの運転条件、つまり圧縮機2の駆動条件を考慮した上で圧縮機2の周期的な負荷トルク変動に伴う回転速度変動を抑制できる。つまり、実際の負荷トルクの変動態様に一層一致するようにトルク変動を補償することができる。また、トルク変動を補償してモータ4を制御することにより、圧縮機2を駆動する際の騒音および振動を抑制するとともに駆動効率省エネ効果を向上させることが可能となる。q軸電流補正部28は、モータ4の1回転毎の回転速度の変動幅ωwを求める速度変動演算部52と、変動幅ωwの変化傾向に応じて増減するカウント値cntを出力する速度変動幅比較部53と、変動幅ωwが減少傾向となるようにトルク制御ゲインGの値を調整するトルク制御部53とを備えた構成とした。このような構成によれば、モータ4の回転速度の変動幅ωwが小さくなるように指令q軸電流補正値Iqcが調整されるため、記憶部54に記憶された基準負荷トルクデータが、実際の圧縮機2の駆動条件に完全に対応する最適なものでない場合であっても、トルク変動補償の精度低下を防止できる。モータ4の推定回転角度θeを所定角度だけ進めた補正推定回転角度θe’をq軸電流補正部28に出力する回転角度補正部27を設けた。これにより、q軸電流補正部28の演算処理による遅れ、回転位置推定部23による速度推定の遅れなどを補償することができる。また、上記所定角度の増減は、使用者による変更が可能となっている。上記所定角度を増減することにより、トルクデータ演算部55により演算される負荷トルクデータ、ひいては指令q軸電流補正値演算部57により演算される指令q軸電流補正値Iqcの態様が変化する。従って、ユーザは、量産試験などの段階において、上記所定角度を調整することで、実際の負荷トルクの変動態様に一層一致するようにトルク変動の補償具合を微調整することが可能となる。q軸電流補正部28は、モータ4の始動時からトルク制御ゲインGの演算、ひいては指令q軸電流補正値Iqcの演算を継続して実施する。つまり、モータ制御装置21では、モータ4の運転中、トルク変動に対する補償が継続して実施される。そのため、例えば、運転中に圧縮機2の駆動条件が変更されるなどして負荷トルクの変動態様が変化した場合、トルク制御ゲインGが最適値に収束するまでに所定の時間を要するものの、その後は、変更された駆動条件における負荷トルクの変動態様に一致するようにトルク変動が補償される。つまり、本実施形態によれば、負荷が変化した場合でも、その変化した負荷トルクに追従して発生トルクを変化させることが可能となる。また、トルク制御部53は、指令回転速度ωrefの値に変化がある場合、カウント値cnt回転速度の変動幅ωwに基づいたトルク制御ゲインGの設定を行うことなく、トルク制御ゲインGを強制的に増減する。例えば、エアコンディショナEにおける風量や運転が切り替えられたことにより、指令回転速度ωrefが変化すると、実際の負荷トルクも変化する。本実施形態によれば、このように負荷トルクが変化した場合であっても、その変化に追従したトルク変動補償を行うことができる。トルク制御部53は、カウント値cntが負の値である場合、トルク制御ゲインGの値を減少させる。通常は、これにより、回転速度の変動幅ωwが減少傾向に転じるが、負荷トルクの変動態様によっては、逆に回転速度の変動幅ωwが増加傾向のままとなる場合がある。このような場合、トルク制御ゲインGの値の減少を続けたとしても、変動幅ωwは一向に減少せず、カウント値cntは下限値にクリップされた状態下べた状態になる。このような状態のままでは、トルク変動補償が行われないことになる。そこで、トルク制御部53は、下べた状態であるとの判断が4回連続して行われると、トルク制御ゲインGの増減方向を反転する。このようにすることで、トルク制御ゲインGの値が増加に転じ、回転速度の変動幅ωwが減少傾向に転じる可能性が高まる。なお、稀に、トルク制御ゲインGの増減方向を反転しても、変動幅ωwが減少に転じない場合がある。本実施形態では、下べた状態であるとの判断が4回連続して行われる度にトルク制御ゲインGの増減方向が反転されるので、上記した稀なケースであっても、変動幅ωwを減少させるようにトルク制御ゲインGの値を調整することができる。以上、本発明のいくつかの実施形態を説明したが、これら実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。複数の駆動条件冷房運転-低速駆動、冷房運転-高速駆動、暖房運転-低速駆動、暖房運転-高速駆動などにおける圧縮機2の負荷トルクの変動分にそれぞれ対応する複数の基準負荷トルクデータを記憶部54に記憶させておき、このうち圧縮機2の駆動状態に最も近い種類のものをトルクデータ演算部55が読み出すようにしてもよい。このようにすれば、実運転時における負荷の様々な駆動条件を一層考慮したトルク変動補償を行うことが可能となる。回転角度補正部27は、トルク変動補償の精度に問題がない場合には設けなくてもよい。その場合、補正推定回転角度θe’の代わりに回転位置推定部23から出力される推定回転角度θeをq軸電流補正部28に直接入力する構成とすればよい。速度変動幅演算部52は、モータ4の複数回転毎、例えば10回転毎の回転速度の変動幅の平均値を演算する構成としてもよい。その場合、速度変動幅比較部53は、モータ4の複数回転毎にカウント値cntの演算を行い、トルク制御部53は、モータ4の複数回転毎にトルク制御ゲインGの演算を行うように変更すればよい。また、速度変動幅演算部52は、推定回転速度ωeおよび補正推定回転角度θe’に基づいてモータ4の回転速度の変動幅ωwを演算する構成でなくてもよい。例えば、モータ4の実際の回転速度および回転角度に基づいて回転速度の変動幅を演算する構成でもよい。回転速度および回転角度の推定方法は、d軸方向の誘起電圧推定値Edをゼロに収束させる回転位置推定部23による推定方法に限られない。圧縮機2は、ロータリ型のものに限らず、例えばレシプロ型のコンプレッサであってもよい。モータ制御装置21は、エアコンディショナEのヒートポンプ装置1を構成する圧縮機2のモータ4を制御する構成に限ることなく、例えば冷蔵庫、ヒートポンプ式給湯器などのヒートポンプ装置1を構成する圧縮機のモータを制御する構成に適用してもよい。つまり、モータ制御装置21は、トルクが周期的に変動する負荷を駆動するモータを制御する構成全般に適用可能である。ゼロ点設定値取得部56が取得するゼロ点設定値は、基準負荷トルクデータの平均値に限らずともよく、一定の値であればよい。ちなみに、ここで言う一定とは、モータ4の回転角度に応じて変化しないという意味である。また、一定のゼロ点設定値を、ユーザにより設定可能にしてもよい。ゼロ点設定値を変化させることにより、トルクデータ演算部55により演算される負荷トルクデータ、ひいては指令q軸電流補正値演算部57により演算される指令q軸電流補正値Iqcの態様が変化する。このようにすれば、ユーザは、量産試験などの段階において、ゼロ点設定値を調整することで、実際の負荷トルクの変動態様に一層一致するようにトルク変動の補償具合を微調整することが可能となる。基準負荷トルクデータから、その基準負荷トルクデータの平均値または一定のゼロ点設定値を減算した負荷トルクデータを記憶手段54に記憶しておいてもよい。その場合、トルクデータ演算部55は、記憶手段54から読み出した負荷トルクデータをそのまま指令q軸電流補正値演算部57に出力すればよい。そのため、ゼロ点設定値取得部56は不要となる。回転角度補正部27を設ける構成に替えて、記憶部54に記憶される基準負荷トルクデータ中の回転角度を所定角度だけ進める構成としてもよい。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。