以下、本開示の実施例を図面に基づいて説明する。以下の実施例において同一の構成には同一の符号を付す。
本開示では、周期的な負荷トルク変動を有する圧縮機を駆動する永久磁石同期モータ(PMSM(Permanent Magnet Synchronous Motor))のトルク制御を位置センサレスベクトル制御により行うモータ制御装置を一例に挙げて説明する。しかし、開示の技術は、周期的な負荷トルク変動を有する圧縮機を駆動するモータのトルク制御を行うモータ制御装置に広く適用可能である。
[実施例1]
<モータ制御装置の構成>
図1は、本開示の実施例1のモータ制御装置の構成例を示す図である。図1において、モータ制御装置100は、減算器11,18,19,40と、速度制御器12と、加算器13,16,17,21,22と、電流指令値生成器14と、制御切替判定部15と、電圧指令値算出器20と、d-q/u,v,w変換器23と、PWM(Pulse Width Modulation)変調器24と、IPM(Intelligent Power Module)25とを有する。IPM25は、モータMに接続される。モータMの一例としてPMSMが挙げられる。
また、モータ制御装置100は、シャント抵抗26と、電流センサ27a,27bと、3φ電流算出器28とを有する。なお、モータ制御装置100は、シャント抵抗26、または、電流センサ27a,27bの何れか一方を有していれば良い。
また、モータ制御装置100は、u,v,w/d-q変換器29と、軸誤差演算器30と、PLL(Phase Locked Loop)制御器31と、位置推定器32と、1/Pn処理器33と、補正トルク生成器34と、IIRフィルタ(Infinite Impulse Response Filter)35a,35bと、非干渉化制御器36と、電流誤差補正値生成器37と、補正トルク制限値生成器39とを有する。
電流指令値生成器14は、通常制御領域電流指令値算出器14aと、電圧飽和領域電流指令値算出器14bと、スイッチSW1と、スイッチSW2とを有する。スイッチSW1は、接点14c-1,14c-2,14c-3を有する。スイッチSW2は、接点14c-4,14c-5,14c-6を有する。
減算器11は、モータ制御装置100の外部(例えば、上位のコントローラ)からモータ制御装置100へ入力された機械角速度指令値ωm*から、1/Pn処理器33より出力された現在の推定角速度である機械角推定角速度ωmを減算することにより角速度誤差Δωを算出する。
速度制御器12は、減算器11より出力された角速度誤差Δωの平均がゼロに近づくような平均トルク指令値To*を生成する。
加算器13は、速度制御器12より出力された平均トルク指令値To*と、補正トルク生成器34より出力された補正トルク指令値ΔTとを加算することにより合計トルク指令値T*を算出する。
電流指令値生成器14は、通常制御領域及び電圧飽和領域のそれぞれにおいて、加算器13より出力された合計トルク指令値T*に基づいてq軸電流指令値Iq*及びd軸電流指令値Id*を算出する。電圧飽和領域とは、モータMの高回転領域で出力電圧振幅Vaが飽和して弱め磁束制御が行われる領域である。通常制御領域とは、電圧飽和領域以外の領域であって、出力電圧を可変してモータMが制御される領域であり、通常制御領域では、最大トルク/電流制御などが行われる。
電流指令値生成器14は、制御切替判定部15より制御信号CONTROL_TYPE:A(通常制御)が出力された場合には、スイッチSW1の接点14c-1と接点14c-3とを接続するとともに、スイッチSW2の接点14c-4と接点14c-6とを接続して、通常制御領域電流指令値生成器14aにより算出されるd軸電流指令値Id*及びq軸電流指令値Iq*を加算器16,17へ出力する。一方で、制御切替判定部15より制御信号CONTROL_TYPE:B(電圧飽和制御)が出力された場合には、電流指令値生成器14は、スイッチSW1の接点14c-2と接点14c-3とを接続するとともに、スイッチSW2の接点14c-5と接点14c-6とを接続して、電圧飽和領域電流指令値算出器14bにより算出されるd軸電流指令値Id*及びq軸電流指令値Iq*を加算器16,17へ出力する。
制御切替判定部15は、出力電圧限界値Vdq_limitと、d軸電圧指令値Vd*と、q軸電圧指令値Vq*とに基づいて、モータMの現在の制御領域が通常制御領域または電圧飽和領域の何れであるかを判定する。そして、制御切替判定部15は、モータMの現在の制御領域が通常制御領域であると判定した場合には制御信号CONTROL_TYPE:A(通常制御)を電流指令値生成器14へ出力し、モータMの現在の制御領域が電圧飽和領域であると判定した場合には制御信号CONTROL_TYPE:B(電圧飽和制御)を電流指令値生成器14へ出力する。出力電圧限界値Vdq_limitは、IPM25の外部(例えば、図示しない電源コンバータ)からIPM25に供給される直流電圧Vdcが、制御系であるdq回転座標軸系における電圧値に変換されたものである。
加算器16は、電流指令値生成器14より出力されたd軸電流指令値Id*と電流誤差補正値生成器37より出力されたd軸電流誤差補正値ΔIdとを加算することによりd軸電流補正指令値Id_FF*を算出する。加算器17は、電流指令値生成器14より出力されたq軸電流指令値Iq*と電流誤差補正値生成器37より出力されたq軸電流誤差補正値ΔIqとを加算することによりq軸電流補正指令値Iq_FF*を算出する。
減算器18は、加算器16より出力されたd軸電流補正指令値Id_FF*から、u,v,w/d-q変換器29より出力されたd軸電流Idを減算することにより、d軸電流補正指令値Id_FF*とd軸電流Idとの誤差であるd軸電流誤差Id_diffを算出する。減算器19は、加算器17より出力されたq軸電流補正指令値Iq_FF*から、u,v,w/d-q変換器29より出力されたq軸電流Iqを減算することにより、q軸電流補正指令値Iq_FF*とq軸電流Iqとの誤差であるq軸電流誤差Iq_diffを算出する。
電圧指令値算出器20は、式(1.1)に従って、d軸電流誤差Id_diff(Id_FF
*-Id)に基づいてPI(Proportional Integral)制御を行うことにより非干渉化前d軸電圧指令値Vdtを算出する。また、電圧指令値算出器20は、式(1.2)に従って、q軸電流誤差Iq_diff(Iq_FF
*-Iq)に基づいてPI制御を行うことにより非干渉化前q軸電圧指令値Vqtを算出する。なお、式(1.1)のkp_d及び式(1.2)のkp_qは比例定数であり、式(1.1)のki_d及び式(1.2)のki_qは積分定数である。
加算器21は、式(2.1)で表されるd軸非干渉化補正値Vdaを、式(2.3)に従って、非干渉化前d軸電圧指令値Vdtに加算することにより、d軸電圧指令値Vd
*を算出する。加算器22は、式(2.2)で表されるq軸非干渉化補正値Vqaを、式(2.4)に従って、非干渉化前q軸電圧指令値Vqtに加算することにより、q軸電圧指令値Vq
*を算出する。これにより、dq軸間の干渉がフィードフォワードでキャンセルされたq軸電圧指令値Vq
*及びd軸電圧指令値Vd
*が算出される。
IIRフィルタ35aは、u,v,w/d-q変換器29より出力されたd軸電流Idのノイズを除去し、ノイズ除去後のd軸応答電流Id_iirを出力する。IIRフィルタ35bは、u,v,w/d-q変換器29より出力されたq軸電流Iqのノイズを除去し、ノイズ除去後のq軸応答電流Iq_iirを出力する。IIRフィルタ35a,35bはノイズ除去フィルタの一例である。
非干渉化制御器36は、モータ制御装置100の外部(例えば、上位のコントローラ)からモータ制御装置100へ入力された電気角速度指令値ωe*と、q軸応答電流Iq_iirとに基づいて、式(2.1)に従って、非干渉化前d軸電圧指令値Vdtを補正するためのd軸非干渉化補正値Vdaを生成する。また、非干渉化制御器36は、電気角速度指令値ωe*とd軸応答電流Id_iirとに基づいて、式(2.2)に従って、非干渉化前q軸電圧指令値Vqtを補正するためのq軸非干渉化補正値Vqaを生成する。d軸非干渉化補正値Vda及びq軸非干渉化補正値Vqaは、dq軸間の干渉項をフィードフォワードでキャンセルするための補正値である。ここで、安定制御を図るために、非干渉化補正値は直流化された値であることが望ましい。このため、非干渉化補正値の生成にあたっては、速度については電気角速度指令値ωe*が用いられ、d軸電流Id及びq軸電流Iqについては、IIRフィルタ35a,35bにより変動成分が除去されたd軸応答電流Id_iir及びq軸応答電流Iq_iirが用いられる。
電流誤差補正値生成器37は、電流指令値生成器14より出力されたd軸電流指令値Id*及びq軸電流指令値Iq*と、u,v,w/d-q変換器29より出力されたd軸電流Id及びq軸電流Iqと、位置推定器32より出力された機械角位相θmとに基づいて、d軸電流誤差補正値ΔId及びq軸電流誤差補正値ΔIqを生成する。
電流誤差補正値生成器37は、電流指令値生成器14の応答遅延やdq軸の干渉により、dq軸電流が電流指令値に追従し切れずに生じる変動誤差(位相誤差及び振幅誤差)を積算し、積算値の反転出力を電流誤差補正値(d軸電流誤差補正値ΔId及びq軸電流誤差補正値ΔIq)として生成する。ここで、d軸電流誤差補正値ΔIdは、d軸電流指令値I*とd軸電流Idとの変動誤差を補正するためのフィードフォワード成分であり、q軸電流誤差補正値ΔIqは、q軸電流指令値Iq*とq軸電流Iqとの変動誤差を補正するためのフィードフォワード成分である。
d-q/u,v,w変換器23は、加算器21,22より出力された2相のd軸電圧指令値Vd*及びq軸電圧指令値Vq*を、位置推定器32より出力された電気角位相(dq軸位相)θeに基づいて、3相のU相出力電圧指令値Vu*、V相出力電圧指令値Vv*及びW相出力電圧指令値Vw*へ変換する。位置推定器32より出力される電気角位相θeは、モータMの現在のロータ位置を示す。
PWM変調器24は、U相出力電圧指令値Vu*、V相出力電圧指令値Vv*、W相出力電圧指令値Vw*と、PWMキャリア信号とに基づいて、6相のPWM信号を生成し、生成した6相のPWM信号をIPM25へ出力する。
IPM25は、PWM変調器24より出力された6相のPWM信号に基づいて、IPM25の外部から供給される直流電圧Vdcを変換することにより、モータMのU相、V相、W相それぞれへ印可する交流電圧を生成し、それぞれの交流電圧をモータMのU相、V相、W相へ印加する。
3φ電流算出器28は、シャント抵抗26を用いた1シャント方式で母線電流が検出される場合、PWM変調器24より出力される6相のPWMスイッチング情報と、検出された母線電流とから、モータMのU相電流値Iu、V相電流値Iv、W相電流値Iwを算出する。または、3φ電流算出器28は、電流センサ27a,27bによってU相電流及びV相電流が検出される場合、残りのW相電流値Iwを“Iu+Iv+Iw=0”のキルヒホッフの法則に基づいて算出する。3φ電流算出器28は、各相の相電流値Iu,Iv,Iwをu,v,w/d-q変換器29へ出力する。
u,v,w/d-q変換器29は、位置推定器32より出力された現在のロータ位置を示す電気角位相θeに基づいて、3φ電流算出器28より出力された3相のU相電流値Iu、V相電流値Iv、W相電流値Iwを、2相のd軸電流Id及びq軸電流Iqへ変換する。
軸誤差演算器30は、加算器21,22より出力されたd軸電圧指令値Vd*及びq軸電圧指令値Vq*と、u,v,w/d-q変換器29より出力されたd軸電流Id及びq軸電流Iqとを用いて、軸誤差Δθ(推定された回転軸と実際の回転軸との差)を算出する。
PLL制御器31は、軸誤差演算器30より出力された軸誤差Δθに基づいて、モータMの現在の推定角速度である電気角推定角速度ωeを算出する。
位置推定器32は、PLL制御器31より出力された電気角推定角速度ωeに基づいて電気角位相θe及び機械角位相θmを推定する。
1/Pn処理器33は、PLL制御器31より出力された電気角推定角速度ωeをモータMの極対数Pnで除算することにより機械角推定角速度ωmを算出する。
減算器40は、1/Pn処理器33より出力された機械角推定角速度ωmから機械角速度指令値ωm*を減算することにより機械角推定角速度変動Δωmを算出する。
補正トルク生成器34は、モータMの振動が許容できる速度変動範囲である速度変動許容値|Δωm|*、減算器40より出力された機械角推定角速度変動Δωm、及び、位置推定器32より出力された機械角位相θmに基づいて、周期的な速度変動である機械角推定角速度変動Δωmを速度変動許容値|Δωm|*以下に抑制するための補正トルク指令値ΔTを生成する。なお、速度変動許容値|Δωm|*は、モータ制御装置100内に記憶されている。また、機械角推定角速度変動(速度変動)Δωmは、上記の角速度誤差Δωの値と正負の符号が異なるだけである。
補正トルク制限値生成器39は、u,v,w/d-q変換器29より出力されたd軸電流Idに基づいて、補正トルク指令値ΔTの振幅である補正トルク振幅|ΔT|に制限を与える補正トルク制限値|ΔT|_limitを生成する。
<制御切替判定部の構成>
図2は、本開示の実施例1の制御切替判定部の構成例を示す図である。図2において、制御切替判定部15は、電圧振幅算出器15aと、制御切替判定器15bとを有し、モータの現在の制御領域が通常制御領域か電圧飽和領域かを以下のようにして判定する。
電圧振幅算出器15aは、加算器21,22より出力されたd軸電圧指令値Vd
*,q軸電圧指令値Vq
*基づいて、式(3)に従って、出力電圧振幅Vaを算出する。
制御切替判定器15bは、電圧振幅算出器15aにより算出された出力電圧振幅Vaのピーク値と、出力電圧限界値Vdq_limitとを比較する。
制御切替判定器15bは、出力電圧振幅Vaのピーク値が出力電圧限界値Vdq_limit未満である場合は、モータMの現在の制御領域が通常制御領域であると判定し、制御信号CONTROL_TYPE:Aを電流指令値生成器14へ出力する。
一方で、出力電圧振幅Vaのピーク値が出力電圧限界値Vdq_limit以上である場合は、制御切替判定器15bは、モータMの現在の制御領域が電圧飽和領域であると判定し、制御信号CONTROL_TYPE:Bを電流指令値生成器14へ出力する。
<電流誤差補正値生成器の構成>
図3は、本開示の実施例1の電流誤差補正値生成器の構成例を示す図である。図3において、電流誤差補正値生成器37は、減算器37a,37eと、q軸電流誤差成分分離器37bと、q軸電流誤差積算器37cと、q軸電流誤差補正値復調器37dと、d軸電流誤差成分分離器37fと、d軸電流誤差積算器37gと、d軸電流誤差補正値復調器37hとを有する。
減算器37aは、式(4)に従って、q軸電流Iqとq軸電流指令値Iq
*との誤差であるq軸電流変動誤差Iq_errを算出する。
q軸電流誤差成分分離器37bは、式(5.1)及び式(5.2)に従って、q軸電流変動誤差Iq_errの基本波成分である2つのフーリエ係数Iq_err_sin(sin成分),Iq_err_cos(cos成分)を機械角周期毎に算出する。
q軸電流誤差積算器37cは、式(6.1)及び式(6.2)に従って、q軸電流変動誤差Iq_errのsin成分Iq_err_sinと、q軸電流変動誤差Iq_errのcos成分Iq_err_cosとのそれぞれに補正ゲインkを乗算し、それぞれの乗算結果をIq_err_sin_i_old,Iq_err_cos_i_oldに加算する。式(6.1)におけるIq_err_sin_iは、今回の機械角周期までのIq_err_sinの積算値であり、式(6.2)におけるIq_err_cos_iは、今回の機械角周期までのIq_err_cosの積算値である。また、式(6.1)におけるIq_err_sin_i_oldは、前回の機械角周期までのIq_err_sin_iであり、式(6.2)におけるIq_err_cos_i_oldは、前回の機械角周期までのIq_err_cos_iである。
q軸電流誤差補正値復調器37dは、式(7.1)及び式(7.2)に従って、q軸電流誤差補正値ΔIqを算出する。これにより、q軸電流変動誤差の位相が反転して、機械角位相θmでのq軸電流誤差補正値ΔIqの瞬時値が算出される。
減算器37eは、式(8)に従って、d軸電流Idとd軸電流指令値Id
*との誤差であるd軸電流変動誤差Id_errを算出する。
d軸電流誤差成分分離器37fは、式(9.1)及び式(9.2)に従って、d軸電流変動誤差Id_errの基本波成分である2つのフーリエ係数Id_err_sin(sin成分),Id_err_cos(cos成分)を機械角周期毎に算出する。
d軸電流誤差積算器37gは、式(10.1)及び式(10.2)に従って、d軸電流変動誤差Id_errのsin成分Id_err_sinと、d軸電流変動誤差Id_errのcos成分Id_err_cosとのそれぞれに補正ゲインkを乗算し、それぞれの乗算結果にId_err_sin_i_old,Id_err_cos_i_oldを加算する。式(10.1)におけるId_err_sin_iは、今回の機械角周期までのId_err_sinの積算値であり、式(10.2)におけるId_err_cos_iは、今回の機械角周期までのId_err_cosの積算値である。また、式(10.1)におけるId_err_sin_i_oldは、前回の機械角周期までのId_err_sin_iであり、式(10.2)におけるId_err_cos_i_oldは、前回の機械角周期までのId_err_cos_iである。
d軸電流誤差補正値復調器37hは、式(11.1)及び式(11.2)に従って、d軸電流誤差補正値ΔIdを算出する。これにより、d軸電流変動誤差の位相が反転して、機械角位相θmでのd軸電流誤差補正値ΔIdの瞬時値が生成される。
<通常制御領域電流指令値算出器の動作>
通常制御領域電流指令値算出器14aは、合計トルク指令値T*によって示される定トルク曲線とMTPI(最大トルク/電流制御)曲線との交点に基づいて、q軸電流指令値Iq*及びd軸電流指令値Id*を算出する。
ここで、定トルク曲線とMTPI曲線との交点は、例えば、式(12)に示すモータトルク式と、MTPI曲線におけるd軸電流Idとq軸電流Iqとの関係を示す式(13)とを用いて算出できる。式(12)の右辺において、第1項がマグネットトルクを表し、第2項がリラクタンストルクを表し、マグネットトルクはq軸電流Iqのみを含み、リラクタンストルクはq軸電流Iqとd軸電流Idとの双方を含む。従って、q軸電流Iqとd軸電流Idとを適切に制御することにより、モータMに適正なトルクを発生させることができる。式(12)及び式(13)において、“Pn”はモータMの極対数、“Ψa”はモータMの鎖交磁束、“Ld”はモータMのd軸インダクタンス、“Lq”はモータMのq軸インダクタンスを示す。
式(12)及び式(13)よりd軸電流Idを消去すると、q軸電流Iqに関する4次方程式である式(14)を得ることができる。
式(14)に示す4次方程式の解として、式(14)に示す4次方程式に対して例えばニュートン法等を用いることで、合計トルク指令値T*の定トルク曲線とMTPI曲線との交点でのq軸電流指令値Iq*に相当する解を導出することができる。そこで、通常制御領域電流指令値算出器14aは、式(14)に従って、q軸電流指令値Iq*を算出する。通常制御領域電流指令値算出器14aは、算出したq軸電流指令値Iq*に基づいて式(13)に従って、d軸電流指令値Id*を算出する。
<電圧飽和領域電流指令値算出器の構成>
図4は、本開示の実施例1の電圧飽和領域電流指令値算出器の構成例を示す図である。図4において、電圧飽和領域電流指令値算出器14bは、出力電圧制限指令値生成器14b1と、誘起電圧指令値算出器14b2と、電流指令値算出器14b3とを有する。
図5は、本開示の実施例1の出力電圧制限指令値生成器14b1の構成例を示す図である。図5において、出力電圧制限指令値生成器14b1は、MTPI電流指令値算出器14b1-1と、MTPI電圧指令値算出器14b1-2と、MTPI電圧振幅算出器14b1-3と、平均出力電圧生成器14b1-4と、MTPI電圧変動成分抽出器14b1-5と、加算器14b1-6,14b1-8と、MTPI電圧振幅制限処理器14b1-7とを有する。
出力電圧制限指令値生成器14b1は、合計トルク指令値T*、電気角推定角速度ωe、出力電圧限界値Vdq_limit、d軸電流Id、q軸電流Iq、及び、機械角位相θmに基づいて、出力電圧限界値Vdq_limitまでの範囲で出力電圧の変動振幅、及び、出力電圧の変動位相を調整し、出力電圧制限指令値Va*を生成する。なお、出力電圧制限指令値Va*とは、実際の出力電圧が出力電圧制限指令値Va*と一致するような電流指令値を生成するための理論電圧値を指す。
図5において、MTPI電流指令値算出器14b1-1は、合計トルク指令値T*からなる定トルク曲線とMTPI(最大トルク/電流制御)曲線との交点であるMTPI想定d軸電流指令値Id_mtpi*及びMTPI想定q軸電流指令値Iq_mtpi*を算出する。定トルク曲線とMTPI曲線との交点は、例えば、式(12)に示すモータトルク式と、q軸電流が既知のときのMTPI曲線上のd軸電流式である式(13)とを用いて算出される。
式(12)及び式(13)からd軸電流Idを消去すると、式(14)に示すように、q軸電流Iqに関する4次方程式を得ることができる。
式(14)に示す4次方程式の解として、式(14)に示す4次方程式に対して例えばニュートン法等を用いることで、合計トルク指令値T*の定トルク曲線とMTPI曲線との交点でのMTPI想定q軸電流指令値Iq_mtpi*に相当する解を導出することができる。
そこで、MTPI電流指令値算出器14b1-1は、式(14)の解であるMTPI想定q軸電流指令値Iq_mtpi*に基づいて式(13)のd軸電流式に従って、MTPI想定d軸電流指令値Id_mtpi*を算出する。
MTPI電圧指令値算出器14b1-2は、MTPI想定d軸電流指令値Id_mtpi
*、MTPI想定q軸電流指令値Iq_mtpi
*及び電気角推定角速度ωeに基づいて、式(15.1)及び式(15.2)に示すPMSM電圧方程式に従って、MTPI想定d軸電圧Vd_mtpi
*及びMTPI想定q軸電圧Vq_mtpi
*を算出する。なお、式(15.1)及び式(15.2)における“p”は、微分演算子である。
なお、式(15.1)及び式(15.2)では、トルク制御による電流変化に伴うインダクタンスでの電圧降下“p・Ld・Id”及び“p・Lq・Iq”(p項電圧)が考慮されている。“Ld”はモータMのd軸インダクタンス、“Lq”はモータMのq軸インダクタンスを示す。
ここで、p項電圧は、電流変化の時間微分を用いて示される。しかし、検出電流の変化量をそのまま微分値とすると、MTPI想定d軸電圧Vd_mtpi*及びMTPI想定q軸電圧Vq_mtpi*が電流ノイズに敏感に反応してしまう。そこで、微分値は、電流基本波変動に基づいて、例えば以下のようにして生成される。
p項電圧の生成について説明するために、まず、d軸電流Id及びq軸電流Iqの変動成分ΔIda及びΔIqaを式(16.1)及び式(16.2)のように定義する。
ここで、機械角一回転で1回の周期変動が起こる場合、式(16.1)に含まれる“Ida”と“φd”は、それぞれΔIdaの変動振幅と初期位相を示し、式(16.2)に含まれる“Iqa”と“φq”は、それぞれΔIqaの変動振幅と初期位相を示し、式(16.1)及び式(16.2)に含まれる“θm”は機械角位相の瞬時値を示す。
よって、電流基本波変動により生ずるp項電圧は、式(17.1)及び式(17.2)のように示される。すなわち、d軸電流変動及びq軸電流変動の位相をπ/2だけ進ませ、位相をπ/2だけ進ませたd軸電流変動及びq軸電流変動に機械角推定角速度ωmを乗算することで、微分値(p項電圧)を生成することができる。
MTPI電圧振幅算出器14b1-3は、MTPI想定d軸電圧Vd_mtpi
*及びMTPI想定q軸電圧Vq_mtpi
*に基づいて、式(18)に従って、MTPI想定出力電圧Va_mtpi
*を算出する。
平均出力電圧生成器14b1-4は、モータMのロータの1回転毎に変動するd軸電流Id及びq軸電流Iqのそれぞれの平均値がMTPI曲線(最大トルク/電流制御曲線)をトレースするように調整した平均出力電圧指令値Va0
*を出力する。例えば、平均出力電圧生成器14b1-4は、現在のq軸電流IqからMTPI曲線上のd軸電流Idtを算出し、算出したd軸電流Idtと現在のd軸電流Idとの誤差がなくなるようにPI制御等により平均出力電圧指令値Va0
*を調整する。平均出力電圧生成器14b1-4は、例えば式(19.1)及び式(19.2)に従って平均出力電圧指令値Va0
*を算出する。また、平均出力電圧生成器14b1-4は、平均出力電圧指令値Va0
*が出力電圧限界値Vdq_limitを超過した場合には、式(20)に従って、平均出力電圧指令値Va0
*を出力電圧限界値Vdq_limitに制限する。平均出力電圧指令値Va0
*が出力電圧限界値Vdq_limitに制限されることで、弱め磁束制御となる。
MTPI電圧変動成分抽出器14b1-5は、MTPI想定出力電圧Va_mtpi*の変動振幅|ΔVa_mtpi|、及び、瞬時値ΔVa_mtpiを、例えば以下のように算出する。
MTPI電圧変動成分抽出器14b1-5は、まず、式(21.1)及び式(21.2)に従って、MTPI想定出力電圧Va_mtpi
*の基本波成分を、sin成分であるフーリエ係数Va_mtpi_sinと、cos成分であるVa_mtpi_cosとに分離する。MTPI電圧変動成分抽出器14b1-5は、MTPI想定出力電圧Va_mtpi
*の基本波成分のフーリエ係数を機械角周期毎に算出することで、高調波成分が除去されたMTPI想定出力電圧Va_mtpi
*の基本波成分を抽出することができる。
次いで、MTPI電圧変動成分抽出器14b1-5は、式(21.1)及び式(21.2)に従って算出したフーリエ係数Va_mtpi_sin,Va_mtpi_cosに基づいて、式(22)に従って、MTPI想定出力電圧Va_mtpi
*の基本波成分の振幅|ΔVa_mtpi|を算出する。なお、フーリエ係数Va_mtpi_sin,Va_mtpi_cosは機械角周期毎に更新される値であるため、振幅|ΔVa_mtpi|も機械角周期毎に更新される。
そして、MTPI電圧変動成分抽出器14b1-5は、MTPI想定出力電圧Va_mtpi
*の基本波成分の瞬時値ΔVa_mtpiを式(23)に従って算出する。
加算器14b1-6は、式(24)に従って、平均出力電圧指令値Va0
*とMTPI想定出力電圧Va_mtpi
*の基本波成分の振幅|ΔVa_mtpi|とを加算することによりMTPI想定出力電圧変動ピーク値Va_mtpi_peakを算出する。
MTPI電圧振幅制限処理器14b1-7は、加算器14b1-6での加算結果であるMTPI想定出力電圧変動ピーク値Va_mtpi_peakが出力電圧限界値Vdq_limit以下となるように調整した変動出力電圧制限指令値ΔVa_limit_mtpiを生成し、生成した変動出力電圧制限指令値ΔVa_limit_mtpiを出力する。
例えば、MTPI電圧振幅制限処理器14b1-7は、平均出力電圧指令値Va0*と、MTPI想定出力電圧変動ピーク値Va_mtpi_peakと、出力電圧限界値Vdq_limitとの比較により、出力電圧変動成分の振幅比率scaleを算出し、振幅比率scaleをMTPI想定出力電圧変動成分ΔVa_mtpiに乗算することにより変動出力電圧制限指令値ΔVa_limit_mtpiを生成する。こうすることで、MTPI想定出力電圧変動成分ΔVa_mtpiと位相を一致させた変動出力電圧制限指令値ΔVa_limit_mtpiを生成できる。
例えば、MTPI電圧振幅制限処理器14b1-7は、式(25.1)~式(25.3)に従って出力電圧変動成分の振幅比率scaleを算出し、算出した振幅比率scaleに基づいて、式(25.4)に従って、変動出力電圧制限指令値ΔVa_limit_mtpiを生成する。
加算器14b1-8は、式(26)に従って、平均出力電圧指令値Va0
*と変動出力電圧制限指令値ΔVa_limit_mtpiとを加算することにより出力電圧制限指令値Va
*を算出する。加算器14b1-8は、算出した出力電圧制限指令値Va
*を誘起電圧指令値算出器14b2及び電圧指令値算出器14b6へ出力する。
図4において、誘起電圧指令値算出器14b2は、現在のd軸電流Id、q軸電流Iq及び電気角推定角速度ωeに基づいて、式(27.1)及び式(27.2)に示すモータモデル式に従って、出力電圧制限指令値Va*に基づく誘起電圧指令値Vo*を算出する。以下に、誘起電圧指令値Vo*の算出の詳細を示す。
PMSMの電圧方程式(d軸電圧Vd,q軸電圧Vq)、出力電圧振幅Vaの理論式、及び、モータMの誘起電圧Voの理論式は、式(27.1)、式(27.2)、式(28)及び式(29)に示される。
また、式(27.1)、式(27.2)、式(28)及び式(29)から、出力電圧制限指令値Va
*と誘起電圧指令値Vo
*とを関連づける式は、式(30)のようになる。そこで、誘起電圧指令値算出器14b2は、式(30)に従って誘起電圧指令値Vo
*を算出し、算出した誘起電圧指令値Vo
*を電流指令値算出器14b3へ出力する。
電流指令値算出器14b3は、合計トルク指令値T*が一定となる電流の軌跡である定トルク曲線と、誘起電圧指令値Vo*及び電気角推定角速度ωeが一定となる電流の軌跡である定誘起電圧楕円との交点に基づいて、q軸電流指令値Iq*とd軸電流指令値Id*とを算出する。
定トルク曲線と定誘起電圧楕円との交点は、例えば、式(12)に示すモータトルク式と、式(31)に示す誘起電圧式とを用いて算出できる。
式(12)及び式(31)からd軸電流Idを消去すると、式(32)のように、q軸電流Iqに関する4次方程式を得ることができる。但し、式(32)において、“ΔL=Ld-Lq”である。
式(32)に示す4次方程式の解として、式(32)に示す4次方程式に対して例えばニュートン法等を用いることで、合計トルク指令値T*の定トルク曲線と、誘起電圧Vo及び電気角推定角速度ωeが一定となる電流の軌跡である定誘起電圧楕円とが交差する点でのq軸電流指令値Iq*に相当する解を導出することができる。
電流指令値算出器14b3は、式(32)に従ってq軸電流指令値Iq
*を算出後、式(31)に示す誘起電圧式をd軸電流式に変形した式(33)に従って、式(33)にq軸電流指令値Iq
*に基づいてd軸電流指令値Id
*を算出する。
ここで、式(33)において、√に係る符号として正または負の何れを採るかは、Iq軸に平行で、かつ、定誘起電圧楕円の中心であるM点(-Ψa/Ld,0)を通る直線(以下では「M点境界ライン」と呼ぶことがある)と、定誘起電圧楕円とが交差する点でのトルク(以下では「M点境界上トルクT_M」と呼ぶことがある)を算出し、M点境界上トルクT_Mと合計トルク指令値T*とを比較することによって決定することができる。
以下に、d軸電流指令値Id*及びq軸電流指令値Iq*の算出手順を示す。図6A及び図6Bは、本開示の実施例1の電流指令値算出器14b3の動作例の説明に供する図である。
電流指令値算出器14b3は、まず、M点上のd軸電流Id_Mを式(34)に従って算出する。
次いで、電流指令値算出器14b3は、M点境界ラインと定誘起電圧楕円とが交差する点におけるq軸電流Iq_Mを算出する。q軸電流Iq_Mは、式(31)にM点上のd軸電流Id_Mを代入することにより算出できるため、式(35)に従って算出される。
よって、電流指令値算出器14b3は、式(36)に従って、M点境界上トルクT_Mを算出する。
そして、電流指令値算出器14b3は、合計トルク指令値T
*とM点境界上トルクT_Mとの大小関係に基づいて、式(37.1)及び式(37.2)に従って、d軸電流指令値Id
*を決定する。式(37.1)には、“合計トルク指令値T
*≦M点境界上トルクT_M”の場合のd軸電流指令値Id
*(図6A参照)を示し、式(37.2)には、“合計トルク指令値T
*>M点境界上トルクT_M”の場合のd軸電流指令値Id
*(図6B参照)を示す。
電流指令値算出器14b3は、以上のようにしてd軸電流指令値Id*及びq軸電流指令値Iq*を算出する。
<補正トルク制限値生成器の構成>
図7は、本開示の実施例1の補正トルク制限値生成器の構成例を示す図である。図7において、補正トルク制限値生成器39は、ピークホールド算出器39aと、ΔT制限値生成器39bとを有する。
ピークホールド算出器39aは、所定の取得期間Tm毎に、各取得期間Tmにおいてd軸電流Idの最大値をd軸電流ピーク値Id_peakとして取得し、取得したd軸電流ピーク値Id_peakをΔT制限値生成器39bへ出力する。例えば、所定の取得期間Tmは、モータMの機械角周期に相当する。
図8は、本開示の実施例1のピークホールド算出器の動作例の説明に供する図である。
図8に示すように、ピークホールド算出器39aは、取得期間Tm1(機械角位相θm=0~2π)において、式(38)に従って、時間の経過に伴って変化するd軸電流Idと、仮d軸電流ピーク値Id_peak_tempとを比較し、d軸電流Idが仮d軸電流ピーク値Id_peak_tempよりも大きくなったときに、仮d軸電流ピーク値Id_peak_tempをd軸電流Idによって更新する。つまり、取得期間Tm1では、d軸電流Idの最大値を随時トレースするように仮d軸電流ピーク値Id_peak_tempが更新される。
また、ピークホールド算出器39aは、取得期間Tm1の終了時点で、式(39)に従って、仮d軸電流ピーク値Id_peak_tempをd軸電流ピーク値Id_peakに設定するとともに、式(40)に従って、仮d軸電流ピーク値Id_peak_tempをゼロに初期化する。つまり、取得期間Tm1の終了時点での仮d軸電流ピーク値Id_peak_tempが、取得期間Tm1の次の取得期間である取得期間Tm2におけるd軸電流ピーク値Id_peakとして取得される。
また、図8に示すように、ピークホールド算出器39aは、取得期間Tm2(機械角位相θm=2π~4π)において、式(38)に従って、時間の経過に伴って変化するd軸電流Idと、仮d軸電流ピーク値Id_peak_tempとを比較し、d軸電流Idが仮d軸電流ピーク値Id_peak_tempよりも大きくなったときに、仮d軸電流ピーク値Id_peak_tempをd軸電流Idによって更新する。つまり、取得期間Tm2でも、取得期間Tm1と同様に、d軸電流Idの最大値を随時トレースするように仮d軸電流ピーク値Id_peak_tempが更新される。
また、ピークホールド算出器39aは、取得期間Tm2の終了時点で、式(39)に従って、仮d軸電流ピーク値Id_peak_tempをd軸電流ピーク値Id_peakに設定するとともに、式(40)に従って、仮d軸電流ピーク値Id_peak_tempをゼロに初期化する。つまり、取得期間Tm2の終了時点での仮d軸電流ピーク値Id_peak_tempが、取得期間Tm2の次の取得期間である取得期間Tm3におけるd軸電流ピーク値Id_peakとして取得される。
取得期間Tm3(機械角位相θm=4π~6π)以降の各取得期間Tmにおいても、ピークホールド算出器39aは上記と同様に動作する。
図7において、ΔT制限値生成器39bは、以下のようにして設定するΔT振幅制限フラグに従って補正トルク制限値|ΔT|_limitを生成する。ΔT振幅制限フラグが“オン”に設定されたときは補正トルク指令値ΔTに制限が与えられ、ΔT振幅制限フラグが“オフ”に設定されているときは、補正トルク指令値ΔTに制限が与えられない。また、ΔT振幅制限フラグが“オフ”に設定されているときは、補正トルク指令値ΔTに制限が与えられない。
ΔT制限値生成器39bは、補正トルク生成器34より出力された補正トルク指令値ΔTが0(ゼロ)でないとき(つまり、トルク制御が実行中のとき)で、かつ、ピークホールド算出器39aより出力されたd軸電流ピーク値Id_peakが正の値であるときに、ΔT振幅制限フラグを“オン”に設定する。つまり、ΔT制限値生成器39bは、“ΔT≠0”かつ“Id_peak≧0”のときに、ΔT振幅制限フラグを“オン”に設定する。“ΔT≠0”かつ“Id_peak≧0”のときは、モータMの制御が不安定にならないように補正トルク指令値ΔTに制限を与えたいときに相当する。
一方で、ΔT制限値生成器39bは、補正トルク指令値ΔTに制限を与える必要がないときに、ΔT振幅制限フラグを“オフ”に設定する。ここで、ΔT振幅制限フラグが“オフ”に設定されると、速度変動振幅|Δωm|が速度変動許容値|Δωm|*より大きい場合、補正トルク指令値ΔTが大きくなる方向へ制御されるため、モータMの制御が不安定にならないように、再び、補正トルク指令値ΔTに制限を与える必要が生じてしまう。
そこで、ΔT制限値生成器39bは、速度変動振幅|Δωm|が速度変動許容値|Δωm|*より小さいとき、つまり、“|Δωm|<|Δωm|*”のときに、ΔT振幅制限フラグを“オフ”に設定する。
ΔT制限値生成器39bは、ΔT振幅制限フラグの設定後、ΔT振幅制限フラグに従って補正トルク制限値|ΔT|_limitを生成する。
ΔT制限値生成器39bは、上記のようにしてΔT振幅制限フラグを“オン”に設定したときは、前回の機械角周期における補正トルク振幅|ΔT|である|ΔT|_oldと、d軸電流ピーク値Id_peakとに基づいて、式(41)に従って、補正トルク制限値|ΔT|_limitを生成する。式(41)における“g”は、d軸電流ピーク値Id_peakに乗算される所定のゲイン値である。つまり、ΔT振幅制限フラグが“オン”であるときは、ΔT制限値生成器39bは、前回の機械角周期の補正トルク振幅|ΔT|_oldを積分項に見立てた積分制御を行う。こうすることで、d軸電流ピーク値Id_peakが正の値となってモータMの制御が不安定化しそうな場合に、補正トルク制限値|ΔT|_limitが減少することに伴ってd軸電流Idがゼロ未満に減少する。
一方で、ΔT制限値生成器39bは、上記のようにしてΔT振幅制限フラグを“オフ”に設定したときは、補正トルク指令値ΔTに制限がかからないような大きい値に補正トルク制限値|ΔT|_limitを設定する。例えば、ΔT制限値生成器39bは、式(42)に従って、平均トルク指令値To
*の3倍の値を補正トルク制限値|ΔT|_limitに設定する。平均トルク指令値To
*の3倍の値という大きい値が補正トルク制限値|ΔT|_limitとして設定されることで、補正トルク指令値ΔTには、実質上、制限が与えられなくなる。
ΔT制限値生成器39bは、以上のようにして生成した補正トルク制限値|ΔT|_limitを補正トルク生成器34へ出力する。
<補正トルク生成器の構成>
図9は、本開示の実施例1の補正トルク生成器の構成例を示す図である。図9において、補正トルク生成器34は、速度変動成分分離器34aと、速度変動振幅算出器34bと、減算器34cと、補正トルク振幅算出器34dと、速度変動位相修正器34eと、直交成分分離器34fと、補正トルク復調器34gと、補正トルク振幅制限器34hとを有する。
図9において、速度変動成分分離器34aは、機械角周期毎に、機械角位相θmに基づいて、式(43.1)及び式(43.2)に従って、機械角推定角速度変動Δωmを、Δωmの基本波成分である2つのフーリエ係数ωsin(sin成分)とωcos(cos成分)とへ分離する。機械角推定角速度変動Δωmの基本波成分のフーリエ係数が機械角周期毎に算出されることで、機械角推定角速度変動Δωmの高調波成分が除去されて機械角推定角速度変動Δωmの基本波成分を精度よく抽出することができる。ωsin及びωcosは、機械角周期毎に更新される値である。
速度変動振幅算出器34bは、フーリエ係数ωsin,ωcosに基づいて、式(44)に従って、速度変動振幅|Δωm|を算出する。ωsin及びωcosは機械角周期毎に更新される値であるため、速度変動振幅|Δωm|も機械角周期毎に更新される。
減算器34cは、速度変動振幅算出器34bより出力された速度変動振幅|Δωm|から速度変動許容値|Δωm|*を減算することにより速度変動誤差|Δωm|errを算出する。速度変動許容値|Δωm|*は、モータMの振動が許容できる範囲での速度変動振幅|Δωm|を規定したものである。
補正トルク振幅算出器34dは、速度変動振幅|Δωm|と速度変動許容値|Δωm|
*との誤差に応じて補正トルク振幅|ΔT|を機械角周期毎に調整する。例えば、補正トルク振幅算出器34dは、式(45)に従って、速度変動振幅|Δωm|と速度変動許容値|Δωm|
*との誤差である速度変動誤差|Δωm|errに補正ゲインkを乗算し、乗算結果と|ΔT|_oldとを加算することにより補正トルク振幅|ΔT|を算出する。式(45)における|ΔT|_oldは、前回の機械角周期における補正トルク振幅|ΔT|である。補正ゲインkを適切に設定することで、速度変動|Δω|が速度変動許容値|Δωm|
*の境界でハンチングすることや、急激な負荷トルク変化によって速度変動|Δω|が速度変動許容値|Δωm|
*よりも大きくなって振動が発生することを抑制できる。
補正トルク振幅制限器34hは、補正トルク振幅算出器34dより出力された補正トルク振幅|ΔT|が、補正トルク制限値生成器39より出力された補正トルク制限値|ΔT|_limitより大きいときは、補正トルク振幅|ΔT|の値を補正トルク制限値|ΔT|_limitによって書き換え、補正トルク制限値|ΔT|_limitに書き換え後の補正トルク振幅|ΔT|を直交成分分離器34fへ出力する。つまり、補正トルク振幅|ΔT|が補正トルク制限値|ΔT|_limitより大きいときは、補正トルク振幅|ΔT|の値が補正トルク制限値|ΔT|_limitに設定される。補正トルク振幅|ΔT|の値が補正トルク制限値|ΔT|_limitに設定されることで、モータMの制御が不安定になることを防止できる。
一方で、補正トルク振幅|ΔT|が補正トルク制限値|ΔT|_limit以下のときは、補正トルク振幅制限器34hは、補正トルク振幅算出器34dより出力された補正トルク振幅|ΔT|をそのまま直交成分分離器34fへ出力する。
速度変動位相修正器34eは、機械角周期毎に取得される機械角推定角速度変動Δωmの位相を修正する。例えば、速度変動位相修正器34eは、式(46.1)及び式(46.2)に従って、フーリエ係数ωsin,ωcosのそれぞれに補正ゲインkを乗算し、それぞれの乗算結果にωsin_i_old,ωcos_i_oldを加算する。式(46.1)におけるωsin_i_oldは、前回の機械角周期におけるωsin_iであり、式(46.2)におけるωcos_i_oldは、前回の機械角周期におけるωcos_iである。そして、速度変動位相修正器34eは、式(46.3)に従って、ωsin_i及びωcos_iの逆正接(Arctangent)を速度変動修正位相φωiとして算出する。この速度変動修正位相φωiが、トルク制御を行う際の位相の基準になり、この基準に対してπ/2遅角した位相が補正トルク指令値ΔTの位相(補正トルク位相)となる。
直交成分分離器34fは、補正トルク振幅制限器34hより出力された補正トルク振幅|ΔT|と、速度変動位相修正器34eより出力された速度変動修正位相φωiとに基づいて、式(47.1)及び式(47.2)に従って、速度変動修正位相φωiのsin成分(ωsin_i)とcos成分(ωcos_i)とを算出する。この処理は、式(46.1)及び式(46.2)の演算による位相修正時の発散を防止する役割も有する。
補正トルク復調器34gは、速度変動修正位相φωiのsin成分(ωsin_i)とcos成分(ωcos_i)とに基づいて、式(48.1)及び式(48.2)に従って、補正トルク指令値ΔTを算出する。この処理により速度変動修正位相φωiからπ/2だけ遅角した補正トルク位相へ変換され、機械角位相θmでの補正トルク指令値ΔTの瞬時値が生成される。
なお、補正トルク復調器34gは、式(48.1)及び式(48.2)に代えて式(49)に従って補正トルク指令値ΔTの瞬時値を算出しても良い。
そして、図1に示す加算器13は、式(50)に従って、補正トルク復調器34gより出力された補正トルク指令値ΔTを、速度制御器12より出力された平均トルク指令値To
*に加算することにより合計トルク指令値T
*を算出する。
<モータ制御装置の動作>
図10は、本開示の実施例1のモータ制御装置の動作例の説明に供する図である。
図10に示す定誘起電圧楕円は、モータの誘起電圧Voが等しくなる電流ベクトル軌跡であり、電気角推定角速度ωeが大きくなると定誘起電圧楕円の径は小さくなる。図10に示す定誘起電圧楕円は、電気角推定角速度ωeが一定の場合の電流ベクトル軌跡を示す。
本実施例のモータ制御装置100は、モータMのトルク制御を行う際、トルク制御により±ΔTだけ変動する定トルク曲線T*(=To*±ΔT)と、定誘起電圧楕円との交点に基づいて、d軸電流指令値Id*及びq軸電流指令値Iq*を算出する。
本実施例では、“ΔT≠0”かつ“Id_peak≧0”のときに、ΔT振幅制限フラグが“オン”に設定されることにより、式(41)に従って補正トルク制限値|ΔT|_limitが生成される。このように、0(ゼロ)をd軸電流ピーク値Id_peakの上限閾値として補正トルク制限値|ΔT|_limitが生成されることにより、図10に示すように、d軸電流指令値Id*は負の値に維持されるため、d軸電流Idも負の値に維持される。よって、d軸電流Idが正の値となる過励磁になってしまうことを防止できるため、モータの制御が不安定になることを防止できる。
以上、本開示の実施例1について説明した。
[実施例2]
本実施例では、ΔT制限値生成器39bの動作が実施例1と相違する。以下、実施例1と異なる点について説明する。
<ΔT制限値生成器39bの動作>
実施例1のように、d軸電流Idが正の値にならない(d軸電流Idが負の値になる)ように補正トルク指令値ΔTに制限を与えると、モータMの制御が不安定になることを防止できる一方で、モータMの制振効果が低下する。また、実使用上は、d軸電流Idが正の値になった瞬間にモータMの制御が直ちに不安定になってしまう訳ではなく、d軸電流Idがある程度増加しなければモータMの制御は不安定にならない。
そこで、ΔT制限値生成器39bは、補正トルク生成器34より出力された補正トルク指令値ΔTが0(ゼロ)でないとき(つまり、トルク制御が実行中のとき)で、かつ、ピークホールド算出器39aより出力されたd軸電流ピーク値Id_peakが所定のd軸電流制限値Id_limit以上(但し、Id_limit>0)であるときに、ΔT振幅制限フラグを“オン”に設定する。つまり、ΔT制限値生成器39bは、“ΔT≠0”かつ“Id_peak≧Id_limit”のときに、ΔT振幅制限フラグを“オン”に設定する。“ΔT≠0”かつ“Id_peak≧Id_limit”のときは、モータMの制御が不安定にならないように補正トルク指令値ΔTに制限を与えたいときに相当する。
ΔT制限値生成器39bは、上記のようにしてΔT振幅制限フラグを“オン”に設定したときは、前回の機械角周期における補正トルク振幅|ΔT|である|ΔT|_oldと、d軸電流ピーク値Id_peakとに基づいて、式(51)に従って、補正トルク制限値|ΔT|_limitを生成する。式(51)における“g”は、d軸電流ピーク値Id_peakとd軸電流制限値Id_limitとの偏差“Id_peak-Id_limit”に乗算される所定のゲイン値である。つまり、ΔT振幅制限フラグが“オン”であるときは、ΔT制限値生成器39bは、前回の機械角周期の補正トルク振幅|ΔT|_oldを積分項に見立てた積分制御を行う。こうすることで、d軸電流ピーク値Id_peakとd軸電流制限値Id_limitとの偏差が正の値となってモータMの制御が不安定化しそうな場合に、補正トルク制限値|ΔT|_limitが減少することに伴ってd軸電流Idがd軸電流制限値Id_limit未満に減少する。
<モータ制御装置の動作>
図11は、本開示の実施例2のモータ制御装置の動作例の説明に供する図である。
本実施例では、“ΔT≠0”かつ“Id_peak≧Id_limit”のときに、ΔT振幅制限フラグが“オン”に設定されることにより、式(51)に従って補正トルク制限値|ΔT|_limitが生成される。このように、所定のd軸電流ピーク値Id_peakをd軸電流ピーク値Id_peakの上限閾値として補正トルク制限値|ΔT|_limitが生成されることにより、図11に示すように、d軸電流指令値Id*はd軸電流ピーク値Id_peak未満に維持されるため、d軸電流Idもd軸電流ピーク値Id_peak未満に維持される。つまり、実施例1では、d軸電流Idの可動範囲が0未満の範囲であったのに対し、本実施例では、d軸電流Idの可動範囲がId_peak未満の範囲に拡張される。よって、本実施例では、モータの制御が不安定になることを防止しつつ、実施例1よりも、モータMの制振効果を向上させることができる。
以上、本開示の実施例2について説明した。
[実施例3]
本実施例では、ΔT制限値生成器39bの動作が実施例1,2と相違する。以下、実施例1,2と異なる点について説明する。
<ΔT制限値生成器39bの動作>
実施例2における所定のd軸電流制限値Id_limitはチューニングによって適切な値に設定されるため、d軸電流制限値Id_limitの設定にはチューニングの工数がかかることがある。また、d軸電流Idの値がq軸電流の平均値より大きくなったときにモータMの制御が不安定になる傾向が見られる。
そこで、ΔT制限値生成器39bは、補正トルク生成器34より出力された補正トルク指令値ΔTが0(ゼロ)でないとき(つまり、トルク制御が実行中のとき)で、かつ、ピークホールド算出器39aより出力されたd軸電流ピーク値Id_peakがq軸電流平均値Iq_ave以上であるときに、ΔT振幅制限フラグを“オン”に設定する。つまり、ΔT制限値生成器39bは、“ΔT≠0”かつ“Id_peak≧Iq_ave”のときに、ΔT振幅制限フラグを“オン”に設定する。“ΔT≠0”かつ“Id_peak≧Iq_ave”のときは、モータMの制御が不安定にならないように補正トルク指令値ΔTに制限を与えたいときに相当する。
ΔT制限値生成器39bは、上記のようにしてΔT振幅制限フラグを“オン”に設定したときは、前回の機械角周期における補正トルク振幅|ΔT|である|ΔT|_oldと、d軸電流ピーク値Id_peakとに基づいて、式(52)に従って、補正トルク制限値|ΔT|_limitを生成する。式(52)における“g”は、d軸電流ピーク値Id_peakとq軸電流平均値Iq_aveとの偏差“Id_peak-Iq_ave”に乗算される所定のゲイン値である。つまり、ΔT振幅制限フラグが“オン”であるときは、ΔT制限値生成器39bは、前回の機械角周期の補正トルク振幅|ΔT|_oldを積分項に見立てた積分制御を行う。こうすることで、d軸電流ピーク値Id_peakとq軸電流平均値Iq_aveとの偏差が正の値となってモータMの制御が不安定化しそうな場合に、補正トルク制限値|ΔT|_limitが減少することに伴ってd軸電流Idがq軸電流平均値Iq_ave未満に減少する。
<モータ制御装置の動作>
図12は、本開示の実施例3のモータ制御装置の動作例の説明に供する図である。
本実施例では、“ΔT≠0”かつ“Id_peak≧Iq_ave”のときに、ΔT振幅制限フラグが“オン”に設定されることにより、式(52)に従って補正トルク制限値|ΔT|_limitが生成される。このように、q軸電流平均値Iq_aveをd軸電流ピーク値Id_peakの上限閾値として補正トルク制限値|ΔT|_limitが生成されることにより、図12に示すように、d軸電流指令値Id*はq軸電流平均値Iq_ave未満に維持されるため、d軸電流Idもq軸電流平均値Iq_ave未満に維持される。つまり、実施例1では、d軸電流Idの可動範囲が0未満の範囲であったのに対し、本実施例では、d軸電流Idの可動範囲がIq_ave未満の範囲に拡張される。また、q軸電流平均値Iq_aveはチューニングによって設定される値ではなく、時間の経過に伴って変化するq軸電流Iqの平均値である。よって、本実施例では、モータの制御が不安定になることを防止しつつ、実施例1よりも、モータMの制振効果を向上させることができる。さらに、本実施例では、実施例2に比べ、d軸電流ピーク値Id_peakの上限閾値をチューニングレスで設定することができる。
以上のように、本開示のモータ制御装置(実施例1のモータ制御装置100)は、電流指令値生成器(実施例1の電流指令値生成器14)と、制御切替判定部(実施例1の制御切替判定部15)と、補正トルク制限値生成器(実施例1の補正トルク制限値生成器39)とを有する。電流指令値生成器は、速度指令値(実施例1の機械角速度指令値ωm*)とモータの速度(実施例1の機械角推定角速度ωm)とに基づいて生成されるトルク指令値(実施例1の合計トルク指令値T*)と、トルク指令値を補正するための補正トルク指令値(実施例1の補正トルク指令値ΔT)とに基づいて電流指令値(実施例1のd軸電流指令値Id*,q軸電流指令値Iq*)を算出する。制御切替判定部は、モータの制御領域が電圧飽和領域にあるか否かを判定する。補正トルク制限値生成器は、補正トルク指令値がゼロでなく、かつ、制御領域が電圧飽和領域にあるモータのd軸電流の最大値(実施例1のd軸電流ピーク値Id_peak)が閾値以上のときに、補正トルク指令値に制限を与える。例えば、補正トルク制限値生成器は、d軸電流の最大値に対する閾値としてゼロを用いる。
このようにして補正トルク指令値に制限を与えることで、モータが過励磁の状態になることを防止できるため、モータの制御が不安定になることを防止できる。
また、補正トルク制限値生成器は、モータの回転速度の変動幅(実施例1の速度変動振幅|Δωm|)が許容値(実施例1の速度変動許容値|Δωm|*)より小さいときに、補正トルク指令値に与えられている制限を解除する。
こうすることで、トルク制限ハンチングが発生することを防止できる。
例えば、補正トルク制限値生成器は、d軸電流の最大値に対する閾値としてゼロより大きい所定の値(実施例2のd軸電流制限値Id_limit)を用いても良い。
また例えば、補正トルク制限値生成器は、d軸電流の最大値に対する閾値としてモータのq軸電流の平均値(実施例3のq軸電流平均値Iq_ave)を用いても良い。