以下、添付された図面を参照しながら本発明の実施形態について説明する。
(第1実施形態)
図1は、本発明の第1実施形態におけるモータ制御装置100の構成を示す図である。
モータ制御装置100は、例えば、ハイブリッド車両に搭載されるモータ150を制御する装置である。本実施形態ではモータ制御装置100は、ベクトル制御を用いてモータ150を駆動させる。
モータ150は、電気で駆動するモータである。モータ150は、本実施形態ではU相、V相、W相の三相の交流電流によって駆動する。
モータ150には、例えば、ステータに等間隔に設けられたティースの各側面にステータコイルが巻かれている。そして三相の交流電流をステータコイルに順次流すことにより、永久磁石が設けられた回転子(ロータ)が回転する。
磁極位置検出器151は、モータ150に設けられている。磁極位置検出器151は、モータ150内の回転子に設けられた磁極の位置を検出する。本実施形態では、磁極位置検出器151は、レゾルバ(RD)で構成され、モータ150内を回転する磁極が、予め定められた位置に到達するたびに、駆動部110の角速度検出部115に検出信号を出力する。
角速度検出部115は、磁極位置検出器151から出力される検出信号に基づいてモータ150の磁極位置θを算出する。また、角速度検出部115は、磁極位置検出器151から検出信号を受けると、今回、検出信号を受けた時刻と、前回、検出信号を受けた時刻との時間間隔に基づいて電気角速度ωを算出する。
また、モータ150とインバータ120との間には、U相、V相及びW相の三相の交流電力を供給する3本の電源線が接続されると共に、各電源線に流れる電流を検出するための3本の検出信号線が、駆動部110の電流検出部114に配線される。
電流検出部114は、各検出信号線に流れるU相の電流Iu、V相の電流Iv、及びW相の電流Iwを検出する。電流検出部114は、その検出された三相の交流電流の電流値を、ベクトル制御に用いられる2相の直流電流値に座標変換する。
具体的には、電流検出部114は、角速度検出部115で検出された磁極位置θに基づいて、各検出信号線を流れる三相の交流電流の検出値を、二相のd軸電流値Id及びq軸電流値Iqに変換して電流制御部112Bに出力する。
q軸電流値Iqは、回転子に設けられた永久磁石からティースに向かう軸方向の電流成分(q軸電流)である。d軸電流値Idは、回転子の軸方向に直交する方向の電流成分(d軸電流)である。
モータ制御装置100は、モータ150に供給される三相の交流電流Iu、Iv、Iw及び、モータ150の電気角速度ωを検出し、ベクトル制御を用いてモータ150に供給される駆動電力を制御する。
モータ制御装置100は、制御部10と、インバータ120と、直流電源130と、を備える。制御部10は、インバータを制御するものである。制御部10は、駆動部110及びトルク補正部140を含む。
駆動部110は、トルク指令信号線101から、モータ150の駆動力を決定するトルク指令値Tを取得すると、トルク指令値Tに基づいて、モータ150に三相の交流電流を供給するための電圧指令値を演算する。その電圧指令値に基づいて、インバータ120を制御するためのPWM(パルス幅変調:pulse width modulation)信号が生成される。
駆動部110は、補正演算部111と、電圧指令部112と、座標変換部113と、電流検出部114と、角速度検出部115と、を備える。
補正演算部111は、モータ150のトルク変動を補償するためのトルク補正値ΔTに基づいて、トルク指令値Tを補正する。
補正演算部111には、トルク指令値が入力されると共に、トルク補正部140からトルク補正値ΔTが入力される。補正演算部111は、トルク指令値Tにトルク補正値ΔTを加算し、その加算された値を補正トルク指令値Trとして電流指令演算部112Aに出力する。
電圧指令部112は、補正トルク指令値Trに基づいてd軸電圧指令値Vdc及びq軸電圧指令値Vqcを演算する。すなわち、電圧指令部112は、トルク指令値Tと、トルク補正値ΔTとに基づいて、d軸電圧指令値Vdc及びq軸電圧指令値Vqcを算出する。
電圧指令部112は、電流指令演算部112Aと電流制御部112Bとを備える。
電流指令演算部112Aは、補正演算部111から補正トルク指令値Trを取得すると共に、角速度検出部115からモータ150の電気角速度ωを取得する。電流指令演算部112Aは、補正トルク指令値Trと電気角速度ωとを用いて、d軸電流指令値Idcと、q軸電流指令値Iqcとを算出する。
q軸電流指令値Iqcは、回転子の軸方向と同一方向のq軸電流を制御する指令値である。d軸電流指令値Idcは、回転子の軸方向に直交する方向のd軸電流を制御する指令値である。
例えば、電流指令演算部112Aには、トルク指令値と電気角速度とで特定される運転点ごとに、d軸電流指令値Idcと、q軸電流指令値Iqcとが互いに対応付けられたベクトル制御マップ(ベクトル制御情報)が記憶される。そして電流指令演算部112Aは、補正トルク指令値Trと電気角速度ωとを取得すると、ベクトル制御マップを参照して、補正トルク指令値Trと電気角速度ωとの運転点を特定し、その運転点に対応付けられたd軸電流指令値Idc及びq軸電流指令値Iqcを算出する。
本実施形態では、電流指令演算部112Aは、補正トルク指令値Trが大きくなるほど、大きなq軸電流指令値Iqcを電流制御部112Bに出力する。また、電流指令演算部112Aは、電気角速度ωが大きくなるほど、モータ150の運転効率を低下させる方向に生じる誘起電力が打ち消されるように負(マイナス)のd軸電流指令値Iqcを電流制御部112Bに出力する。
電流制御部112Bは、d軸電流指令値Idcとq軸電流指令値Iqcとに基づいて、モータ150に供給される電圧を制御するためのd軸電圧指令値Vdc及びq軸電圧指令値Vqcを演算する。
電流制御部112Bには、電流指令演算部112Aからd軸電流指令値Idc及びq軸電流指令値Iqcが入力されると共に、電流検出部114からd軸電流値Id及びq軸電流値Iqがフィードバックされる。
電流制御部112Bは、d軸電流指令値Idcとd軸電流値Idとの差分、及び、q軸電流指令値Iqcとq軸電流値Iqとの差分が、互いにゼロとなるように、d軸電圧指令値Vdcとq軸電圧指令値Vqcとを演算する。
例えば、電流制御部112Bは、式(1)に示すように、PI(Proportional Integral)制御によってd軸電圧指令値Vdc及びq軸電圧指令値Vqcを算出する。
式(1)において、d軸比例ゲインKpd及びq軸比例ゲインKpqは、比例要素の係数である。d軸比例ゲインKpdは、d軸電流指令値Idcとd電流値Idとの偏差に乗算される定数である。q軸比例ゲインKpqは、q軸電流指令値Iqcとq電流値Iqとの偏差に乗算される係数である。
また、d軸積分ゲインKid及びq軸積分ゲインKiqは、積分要素の係数である。d軸積分ゲインKidは、d軸電流指令値Idcとd電流値Idとの偏差の積分値に乗算される定数である。q軸積分ゲインKiqは、q軸電流指令値Iqcとq電流値Iqとの偏差の積分値に乗算される定数である。
さらに、d軸インダクタンスLdは、ステータコイルにd軸電流Idが流れることによって生じるインダクタンスの定数であり、q軸インダクタンスLqは、ステータコイルにq軸電流Iqが流れることによって生じるインダクタンスの定数である。永久磁石鎖交磁束数φは、回転子に設けられた永久磁石によって生じる磁束がティースを通過する磁束の数である。
電流制御部112Bは、式(1)で算出したd軸電圧指令値Vdc及びq軸電圧指令値Vqcを、インバータ120に対する電圧指令値として、座標変換部113に出力する。
座標変換部113は、d軸電圧指令値Vdc及びq軸電圧指令値Vqcを、モータ150の電気角速度ωに基づいて、U相の電圧指令値Vuc、V相の電圧指令値Vvc、及びW相の電圧指令値Vwcに変換する。座標変換部113は、二相から三相に変換された電圧指令値をインバータ120に出力する。
インバータ120は、三相交流の電圧指令値に基づいて直流電源130から供給される直流電圧をスイッチング制御して、U相、V相及びW相の交流電圧をモータ150に供給する。直流電源130は、例えば、2次電池や、燃料電池などにより実現される。
インバータ120には、直流電源130から供給される直流電圧をスイッチング制御する複数のパワー素子、例えばIGBT(Insulated Gate Bipolar Transistor)が設けられている。
各パワー素子の制御端子に供給されるPWM信号は、例えば、10kHz程度の三角波を搬送波とし、U相の電圧指令値Vuc、V相の電圧指令値Vvc、及びW相の電圧指令値Vwcの各サイン波を搬送波と比較することによって生成される。
PWM信号を生成することによって、各パワー素子が導通状態(オン)又は非導通状態(オフ)にスイッチング制御され、三相の電圧指令値に基づく交流電圧が、モータ150へ供給される。
電流検出部114は、上述のとおり、二相の電流指令値をフィードバック制御するために、インバータ120からモータ150に供給される三相の交流電流を検出し、その三相の交流電流を二相のd軸電流値Id及びq軸電流値Iqに逆変換する。
角速度検出部115は、上述のとおり、モータ150をベクトル制御するために、モータ150の磁極位置θ及び電気角速度ωを算出する。
このようなモータ制御装置100では、モータ150の温度変動に伴い永久磁石の磁束が増減するため、トルク指令値が一定の値に制御されている定常状態のときであっても、モータ150で生じるトルクが変動することがある。この対策として、モータ150の電気角速度ω及び消費電力からトルク推定値を算出し、そのトルク推定値とトルク指令値Tとの差分に基づいて電流指令値を補償することも考えられる。
しかしながら、トルク指令値Tに従ってPWM信号を生成してモータ150を駆動するので、トルク指令値Tが駆動部110に出力されてからモータ150が駆動されるまでには所定の遅延時間(制御遅れ)が生じる。このため、モータ150のトルク推定値と、現在のトルク指令値Tとの間には、時間的にズレが生じている。
そのため、エンジン始動時はモータ150のトルク指令値Tが過渡的に変化するため、上述の対策では、トルク指令値Tの時間的な変化によってトルク推定値と現在のトルク指令値Tとの偏差が大きくなってしまい、トルクのオーバーシュートが発生する。
図2は、エンジン始動時におけるトルク指令値Tの過渡的な変化を示す図である。
図2(a)は、ハイブリッド車両に搭載されたエンジンに対する始動指令を示す図である。図2(b)は、モータ150に対するトルク指令値Tを示す図である。図2(c)は、エンジンの回転速度を示す図である。図2(a)から図2(c)までの各図面の横軸は、共通の時間軸tである。
時刻t0では、エンジンの始動指令はL(Low)レベルであり、モータ150のトルク指令値Tは「0」であり、エンジンの回転速度が「0」である。すなわち、エンジンの動作、及びモータ150の動作が、共に停止状態である。
時刻t1では、図2(a)に示すように、エンジンの始動指令がLレベルからH(High)レベルに切り替えられる。これにより、図2(c)に示すようにエンジンの回転速度が上昇する。
エンジンを始動してから、エンジンが車両の駆動に必要な回転速度になるまでには所定の時間を要する。そのため、図2(b)に示すように、モータ150のトルク指令値Tは、車両の始動に必要な所定の値へ切り替えられる。これにより、モータ150によって車両が駆動されるので、車両が速やかに始動する。
そして時刻t2が経過すると、エンジンで燃料ガスが完全に燃焼する完爆状態になるため、図2(c)に示すように、エンジン回転速度の上昇速度が速くなる。
一方、モータ150のトルク指令値Tは、図2(b)に示すように、車両の始動に必要な所定の値から、負(マイナス)の値へ切り替えられる。これにより、モータ150のトルク指令値Tは過渡状態となる。
このように、エンジン始動時には、エンジンが始動してから駆動するまでの期間にモータ150を一旦駆動状態にした後に停止状態へ移行させるので、トルク指令値Tは大きく変動する。
このため、上述のようなトルク変動対策では、モータ150の始動時に設定されるトルク指令値Tの過渡的な変化によって、トルク推定値とトルク指令値との差分が大きく変動するため、実トルクのオーバーシュートが発生してしまう。その結果、エンジン始動時の応答性の低下が懸念される。
そこで本実施形態では、モータ150の定常状態のときに生じるトルク変動を抑制しつつ、モータ150の過渡状態のときに生じるトルクのオーバーシュートを抑制するために、モータ制御装置100の制御部10にトルク補正部140が設けられている。
図1に示すように、トルク補正部140は、消費電力算出部141と、補正前電流指令演算部142と、電力推定部143と、補正値算出部144と、を備える。
消費電力算出部141は、電流制御部112Bからd軸電圧指令値Vdc及びq軸電圧指令値Vqcを取得すると共に、電流検出部114からd軸電流値Id及びq軸電流値Iqを取得して、モータ150で消費される消費電力を算出する。
具体的には、消費電力算出部141は、式(2)に示すように、d軸電圧指令値Vdcとd軸電流値Idとを乗算したd軸電力値と、q軸電圧指令値Vqcとq軸電流値Iqとを乗算したq軸電力値とを加算する。消費電力算出部141は、その加算した値をモータ150の消費電力Pとして補正値算出部144に出力する。
補正前電流指令演算部142は、補正演算部111で補正される前のトルク指令値Tに基づいて、補正前のd軸電流指令値Idc’、及び、補正前のq軸電流指令値Iqc’を演算する。
補正前電流指令演算部142は、補正前のトルク指令値Tと、角速度検出部115で検出された電気角速度ωとを用いて、電流指令演算部112Aと同様に、補正前のd軸電流指令値Idc’及びq軸電流指令値Iqc’を演算する。
例えば、補正前電流指令演算部142には、電流指令演算部112Aに設定されるベクトル制御マップと同一のマップが記憶される。そして補正前電流指令演算部142は、補正前のトルク指令値Tと電気角速度ωとを取得すると、ベクトル制御マップを参照して、補正前のトルク指令値Tと電気角速度ωとの運転点を特定する。補正前電流指令演算部142は、その運転点に対応付けられたd軸電流指令値Idc及びq軸電流指令値Iqcを、それぞれ補正前のd軸電流指令値Idc’及び補正前のq軸電流指令値Iqc’として電力推定部143に出力する。
電力推定部143は、補正前のd軸電流指令値Idc’及び補正前のq軸電流指令値Iqc’と、電気角速度ωと、モータ150の制御遅れを補償するための伝達関数とに基づいて、モータ150に供給される駆動電力を推定する。
具体的には、電力推定部143は、式(3)に示すように、モータ150の制御遅れを含む伝達関数Gd1(s)及びGq1(s)を用いて、d軸電流指令値Id1及びq軸電流指令値Iq1を算出する。d軸電流指令値Id1及びq軸電流指令値Iq1は、補正前のトルク指令値Tに基づいてモータ150の制御遅れ時間が補償された電流指令値、いわゆる電流規範応答である。
式(3)において、伝達関数Gd1(s)は、d軸電流指令値Idc’に対してモータ150の制御遅れ時間を補償する伝達関数であり、伝達関数Gq1(s)は、q軸電流指令値Iqc’に対してモータ150の制御遅れ時間を補償する伝達関数である。
例えば、伝達関数Gd1(s)及び伝達関数Gq1(s)は、積分要素を有し、補正前の電流指令値を積分することによりモータ150の制御遅れを補償する。具体的には、伝達関数Gd1(s)及び伝達関数Gq1(s)では、モータ150の制御遅れが補償されるように補正前の電流指令値を積分する積分時間が設定される。
伝達関数Gd1(s)及び伝達関数Gq1(s)の積分要素によって、例えば、補正前の電流指令値の移動平均値が算出される。あるいは、積分対象の電流指令値のそれぞれに対し、現在の電流指令値から経過時間が長い電流指令値ほど、大きな重み係数を乗算して積分値を算出し、積分値を積分対象の電流指令値の数で除算した値を算出するようにしてもよい。または、伝達関数Gd1(s)及び伝達関数Gq1(s)は、積分要素の代わりに遅延回路のみで構成されてもよい。
また、電力推定部143は、式(4)に示すように、モータ150の制御遅れ含む伝達関数Gd2(s)及びGq2(s)を用いて、d軸電圧指令値Vd1及びq軸電圧指令値Vq1を算出する。d軸電圧指令値Vd1及びq軸電圧指令値Vq1は、補正前のトルク指令値Tに基づいてモータ150の制御遅れが補償された電圧指令値、いわゆる電圧規範応答である。
式(4)において、伝達関数Gd2(s)は、d軸電流指令値Idc’に対して制御遅れ時間を補償する伝達関数であり、伝達関数Gq2(s)は、q軸電流指令値Iqc’に対して制御遅れ時間を補償する伝達関数である。
例えば、伝達関数Gd2(s)及びGq2(s)は、式(1)で示したようなPI制御に用いられる伝達関数であり、モータ150の制御遅れ時間が補償されるように積分時間が設定される。すなわち、伝達関数Gd2(s)及びGq2(s)では、補正前の電流指令値の積分値が算出される。
また、電力推定部143は、式(3)で算出したd軸電流指令値Id1及びq軸電流指令値Iq1と、式(4)で算出したd軸電圧指令値Vd1及びq軸電圧指令値Vq1とを用いて、モータ150の駆動電力Pcを算出する。
具体的には電力推定部143は、式(5)に示すように、d軸電圧指令値Vd1とd軸電流値Id1とを乗算したd軸電力値と、q軸電圧指令値Vq1とq軸電流値Iq1とを乗算したq軸電力値とを加算する。
電力推定部143は、式(5)で算出された値Pcをモータ150の駆動電力Pcとして補正値算出部144に出力する。
このように電力推定部143では、モータ150の制御遅れ時間に基づいて定められた係数を含む伝達関数Gd1、Gq1(s)、Gd2(s)及びGq2(s)を用いて、モータ150の駆動電力Pcが推定される。
補正値算出部144は、消費電力算出部141で算出される消費電力Pと、電力推定部143で推定される駆動電力Pcとの差分に基づいて、トルク補正値ΔTを算出する。補正値算出部144は、減算部144A及びPI制御部144Bを備える。
減算部144Aは、モータ150の駆動電力Pcからモータ150の消費電力Pを減算し、その減算した減算値(Pc−P)をPI制御部144Bに出力する。
PI制御部144Bは、式(6)に示すように、減算部144Aで算出された減算値(Pc−P)の伝達関数Gp1(s)を用いてトルク補正値ΔTを演算する。PI制御部144Bは、そのトルク補正値ΔTを補正演算部111に出力する。
このように補正値算出部144では、モータ150の消費電力Pと駆動電力Pcとの電力差を用いてトルク補正値ΔTが算出される。これにより、エンジン始動時のように、モータ150の回転速度がゼロのときにも、永久磁石の磁束低下に伴うトルク変動をモータ150の始動と同時に補正することが可能となる。
例えば、モータ150の温度が通常運転時よりも高い温度環境でエンジンが始動されるような状況で、モータ150を駆動する前に永久磁石の磁束低下によるトルクの低下を補うようにトルク補正値ΔTを高く設定することができる。このため、エンジン始動時のレスポンスの低下を抑制することができる。
補正演算部111は、トルク補正値ΔTを次に設定されるトルク指令値Tに加算して補正トルク指令値Trを電圧指令部112に出力する。これにより、モータ150が過渡状態でもトルクのオーバーシュートが抑制されるようにトルク指令値Tが補正される。
図3は、トルク補正部140によるトルク補正値ΔTの算出方法を示すフローチャートである。なお、トルク補正部140は、本ルーチンをモータ制御装置100の動作中に所定の演算周期(例えば10ms)で実行する。
まず、ステップS101において、消費電力算出部141は、電流制御部112Bからd軸電圧指令値Vdc及びq軸電圧指令値Vqcを取得すると共に、電流検出部114からd軸電流値Id及びq軸電流値Iqを取得する。そして消費電力算出部141は、式(2)に示したとおり、モータ150の消費電力Pを演算する。
ステップS102において補正前電流指令演算部142は、補正前のトルク指令値T及び電気角速度ωに基づいて、補正前のd軸電流指令値Idc’及び、補正前のq軸電流指令値Iqc’を演算し、演算結果を電力推定部143に出力する。
ステップS103において電力推定部143は、式(3)に示したように、補正前のd軸電流指令値Idc’及びq軸電流指令値Iqc’に対し伝達関数Gd1(s)及びGq1(s)を用いてモータ150の制御遅れ時間を補償する。
伝達関数Gd1(s)及びGq1(s)によって、モータ150の制御遅れ時間が補償されたd軸電流指令値Id1及びq軸電流指令値Iq1が算出される。伝達関数Gd1(s)及びGq1(s)では、例えば、補正前のd軸電流指令値Idc’及び、補正前のq軸電流指令値Iqc’の移動平均が算出される。
ステップS104において電力推定部143は、式(4)に示したように、モータ150の制御遅れ時間が補償されたd軸電圧指令値Vd1及びq軸電流指令値Vq1を算出する。
具体的には、電力推定部143は、補正前のd軸電流指令値Idc’及びq軸電流指令値Iqc’について、伝達関数Gd2(s)及びGq2(s)を用いてモータ150の制御遅れ時間を補償する。伝達関数Gd2(s)及びGq2(s)によって制御遅れ時間が補償されたd軸電圧指令値Vd1及びq軸電圧指令値Vq1が算出される。伝達関数Gd2(s)及びGq2(s)は、例えば式(1)で示したような積分要素を含む伝達関数である。
これと共に電力推定部143は、制御遅れ補償後のd軸電流指令値Id1及びq軸電流指令値Iq1と電気角速度ωとを用いて、ステータコイルに起因するd軸電圧値及びq軸電圧値を算出する。
そして電力推定部143は、制御遅れ補償後のd軸電圧値にステータコイルに起因するq軸電圧値を加算して制御遅れ補償後のd軸電圧指令値Vd1を算出する。これと共に電力推定部143は、制御遅れ補償後のq軸電圧値からステータコイルに起因するd軸電圧値を減算して制御遅れ補償後のq軸電圧指令値Vq1を算出する。
ステップS105において電力推定部143は、式(5)に示したように、制御遅れ補償後のd軸電圧指令値Vd1及びq軸電流指令値Vq1とd軸電流指令値Id1及びq軸電流指令値Iq1とを用いて、モータ150の駆動電力Pcを推定する。
その後、ステップS106において補正値算出部144は、式(6)に示すように、モータ150の消費電力Pと、モータ150の制御遅れが補償された駆動電力Pcとの差分に基づいて、トルク補正値ΔTを算出する。トルク補正値ΔTは、補正演算部111でトルク指令値Tに加算され、補正演算部111から電流指令演算部112Aへ補正トルク指令値Trが出力される。
ステップS101からステップS106までの一連の処理が完了すると、トルク補正値ΔTの算出方法が終了する。
図4は、モータ150が過渡状態のときのトルク変動を示す図である。図4では、縦軸がトルクを示し、横軸が時間tを示す。
図4には、モータ150のトルク指令値Tが実線により示され、モータ150の実トルクが破線により示されている。また図4には、トルク補正値ΔTが重ねて示されている。
時刻t10において、トルク指令値Tが発せれ、トルク指令値Tは周期的に変化する。また、モータ150の温度は一定であり、トルク補正値ΔTも一定である。この場合には、モータ150の実トルクは、トルク指令値Tと同じように変化する。
時刻t11が経過すると、モータ150の温度低下に伴い、永久磁石の磁束が低下するため、トルク補正値ΔTが上昇する。これにより、駆動部110に入力される補正トルク指令値Trが、トルク補正値ΔTによって磁束が低下した分だけ高くなる。この場合においてもモータ150の実トルクは、オーバーシュートを起こすことなく、トルク指令値Tと同じように変化する。
したがって、モータ150が過渡状態であっても、実トルクは、トルク指令値Tの変動によってオーバーシュートすることなく、温度変化に伴うトルク変動を抑制することができる。
本発明の第1実施形態によれば、消費電力算出部141で算出される消費電力Pと、電力推定部143で推定される駆動電力Pcとの差分に応じて、温度変化などに起因するトルクの変動を補償する。
消費電力算出部141では、モータ150に対する制御遅れがあることから、過去に出力されたトルク指令値Tに従って現在駆動しているモータ150の消費電力が算出される。
一方、電力推定部143では、式(3)及び式(4)で述べたように、モータ150の制御遅れを補償するための伝達関数Gd1(s)、Gq1(s)、Gd2(s)及びGq2(s)を用いて、モータ150の駆動電力Pcが推定される。
これにより、現在のトルク指令値よりも所定の制御遅れ時間だけ前に入力されたトルク指令値Tに基づいて、モータ150の駆動電力Pcを推定することが可能になる。このため、駆動電力Pcを推定した時点のトルク指令値と、消費電力Pを算出した時点のトルク指令値との時間的ズレを小さくできる。
よって、エンジン始動時などにトルク指令値Tが過渡的に変化する過渡状態でも、駆動電力Pcと消費電力Pとの間の時間的ズレが小さくなるため、駆動電力Pcと消費電力Pとの差分が、トルク指令値Tの変化によって変動することを抑制できる。
したがって、駆動電力Pcと消費電力Pとの差分に応じて、モータ150のトルク変動を抑制すると共に、過渡状態のときにトルクのオーバーシュートが発生することを抑制できる。すなわち、トルク指令値Tの過渡状態や定常状態によらず、常に温度変化などに伴うトルク変動を抑制することができる。
さらに、モータ150の消費電力Pと駆動電力Pcとを用いてトルク補正値ΔTを算出することにより、エンジン始動時のように、モータ150の回転速度がゼロのときにも、永久磁石の磁束低下に伴う出力トルクの低下をモータ150の駆動と同時に補正することが可能となる。したがって、エンジン始動時の出力低下を抑制することができる。
また本実施形態では、伝達関数Gd1(s)、Gq1(s)、Gd2(s)及びGq2(s)のそれぞれは、モータ150の制御遅れ時間によって定められた積分要素を有する。
積分要素によって、電力推定部143で推定される駆動電力Pcの推定値にモータ150の制御遅れが反映されると共に、パルス的(尖鋭的な)なノイズなどが抑制されるので、駆動電力Pcの推定値と消費電力Pの算出値との時間的ズレを小さくできる。
また本実施形態では、補正演算部111が、トルク指令値Tに対してトルク補正値ΔTを加算することにより、モータ150のトルク変動を補償するための補正トルク指令値Trを算出する。電圧指令部112は、その補正トルク指令値Trに基づいて、d軸電圧指令値Vdc及びq軸電圧指令値Vqcを算出する。
これにより、電流指令演算部112Aにおいてd軸電流指令値Idc及びq軸電流指令値Iqcを補正する場合に比べて、温度変化に伴うトルク変動を補正するための演算処理を軽減することができる。また、演算時間が短縮されるので、モータ150の制御遅れ時間の増加を抑制することができる。
また本実施形態では、補正前電流指令演算部142が、トルク補正値ΔTで補正される前のトルク指令値Tに基づいて、補正前の制御指令値として、d軸電流指令値Idc’及びq軸電流指令値Iqc’を算出する。
そして電力推定部143は、補正前のd軸電流指令値Idc’及びq軸電流指令値Iqc’と、電気角速度ωと、伝達関数Gd1(s)、Gq1(s)、Gd2(s)及びGq2(s)とを用いて、モータ150の駆動電力Pcを推定する。
モータ150の過渡状態でも、ベクトル制御を利用することにより、トルク指令値Tに従ってモータ150に対する供給電力を精度よく制御することができる。
なお、本実施形態では、補正前のd軸電流指令値Idc’及びq軸電流指令値Iqc’と電気角速度ωとに基づいて駆動電力Pcを推定する例について説明したが、補正前のd軸電圧指令値と補正前のq軸電圧指令値とに基づいて推定してもよい。
例えば、電力推定部143は、補正前のd軸電流指令値Idc’及びq軸電流指令値Iqc’と電気角速度ωとを用いて、補正前のd軸電圧指令値及びq軸電圧指令値算出する。そして電力推定部143は、補正前のd軸電圧指令値及びq軸電圧指令値を、制御遅れに基づく係数を含む伝達関数に代入して、d軸電圧指令値Vd1及びq軸電圧指令値Vq1を算出する。
この場合にも、本実施形態と同様に、モータ150の過渡状態のときにトルクのオーバーシュートを抑制することができる。
(第2実施形態)
図5は、本発明の第2実施形態におけるモータ制御装置200の構成を示す図である。なお、図1で示したモータ制御装置100と同じ構成については、同一符号を付してここでの説明を省略する。
モータ制御装置200は、図1に示した制御部10に代えて制御部20を備えている。制御部20は、駆動部210及びトルク補正部240を備える。
駆動部210は、トルク指令値Tに基づいて、三相の交流電流をモータ150に供給するための電圧指令値を演算し、その電圧指令値に基づいて、矩形波のスイッチング信号を生成する。
駆動部210は、補正演算部211と、電圧指令部212と、スイッチングパターン演算部213と、電流検出部214と、角速度検出部215と、を備える。補正演算部211及び角速度検出部215は、それぞれ、図1に示した補正演算部111及び角速度検出部115と同じ構成であるため、ここでの説明を省略する。
電圧指令部212は、補正トルク指令値Trと電気角速度ωとを用いて、電圧位相γを演算する。すなわち、電圧指令部212は、補正前のトルク指令値Tと補正トルク指令値Trとに基づいて電圧位相γを、インバータ120に対する電圧指令値として算出する。
例えば、電圧指令部212には、トルク指令値と電気角速度とで特定される運転点ごとに電圧位相γが対応付けられた電圧位相マップが記憶される。そして電圧指令部212は、補正トルク指令値Trと電気角速度ωとを取得すると、電圧位相マップを参照して、補正トルク指令値Trと電気角速度ωとの運転点に対応付けられた電圧位相γを算出して、スイッチングパターン演算部213に出力する。
スイッチングパターン演算部213は、電圧位相γと磁極位置θとに基づいて、U相の電圧指令値Vuc、V相の電圧指令値Vvc、及びW相の電圧指令値Vwcを演算し、スイッチング信号としてインバータ120に供給する。
電流検出部214は、インバータ120に供給されるU相の電圧指令値Vuc、V相の電圧指令値Vvc、及びW相の電圧指令値Vwcを検出すると共に、モータ150に供給されるU相の電流Iu、V相の電流Iv、及びW相の電流Iwを検出する。
電流検出部214は、角速度検出部215で検出される磁極位置θに基づいて、三相交流電流の検出値を、二相直流のd軸電流値Id及びq軸電流値Iqに変換し、三相交流の電圧指令値を、二相直流のd軸電圧指令値Vdc及びq軸電圧指令値Vqcに変換する。
電流検出部214は、d軸電流値Id及びq軸電流値Iqと、d軸電圧指令値Vdc及びq軸電圧指令値Vqcと、をトルク補正部240の消費電力算出部241に出力する。
トルク補正部240は、消費電力算出部241と、補正前電圧指令演算部242と、電力推定部243と、補正値算出部244と、を備える。補正値算出部244は、減算部244A及びPI制御部244Bを備える。
消費電力算出部241及び補正値算出部244は、それぞれ、図1に示した消費電力算出部141及び補正値算出部144と同じ構成であるため、ここでの説明を省略する。
補正前電圧指令演算部242は、補正前のトルク指令値Tと、電気角速度ωと、磁極位置θとに基づいて、補正前のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’を演算する。
具体的には、補正前電圧指令演算部242は、電圧指令部212と同様に、補正前のトルク指令値Tと電気角速度ωとを取得すると、電圧位相マップを参照し、補正前のトルク指令値Tと電気角速度ωとで特定される運転点に対応付けられた電圧位相γ’を算出する。
そして補正前電圧指令演算部242は、スイッチングパターン演算部213と同様に、補正前の電圧位相γ’と磁極位置θとを用いて、補正前の三相交流電圧指令値Vuc’、Vvc’及びVwc’を算出する。
さらに補正前電圧指令演算部242は、電流検出部214と同様に、磁極位置θに基づいて、補正前の三相交流電圧指令値Vuc’、Vvc’及びVwc’を二相のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’に変換する。補正前電圧指令演算部242は、補正前のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’を電力推定部243に出力する。
電力推定部243は、補正前のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’と、電気角速度ωと、モータ150の制御遅れを含む伝達関数とに基づいて、モータ150の駆動電力を推定する。
具体的には、電力推定部243は、式(7)に示すように、モータ150の制御遅れを含む伝達関数Gd3(s)、Gd4(s)及びGd5(s)を用いて、d軸電流指令値Id1を算出する。これと共に、電力推定部243は、式(7)に示すように、モータ150の制御遅れを含む伝達関数Gq3(s)、Gq4(s)及びGq5(s)を用いて、q軸電流指令値Iq1を算出する。
式(7)において、伝達関数Gd3(s)、Gd4(s)及びGd5(s)と、伝達関数Gq3(s)、Gq4(s)及びGq5(s)とは、共に、モータ定数から成る伝達関数である。なお、モータ定数は、ステータコイルの抵抗値及びインダクタンスに基づいて設定される。
また、伝達関数Gd3(s)、Gd4(s)及びGd5(s)と、伝達関数Gq3(s)、Gq4(s)及びGq5(s)とは、モータ150の制御遅れを補償する係数を有する。例えば、伝達関数Gd3(s)、Gd4(s)及びGd5(s)と、伝達関数Gq3(s)、Gq4(s)及びGq5(s)とは、補正前の電圧指令値に対する積分要素の係数として、モータ150の制御遅れ時間によって定められた積分時間が設定されている。
あるいは、伝達関数Gd3(s)、Gd4(s)及びGd5(s)と、伝達関数Gq3(s)、Gq4(s)及びGq5(s)とは、モータ150の制御遅れ時間に基づいて設定された遅延回路で構成されてもよい。
また、電力推定部243は、式(7)で算出したd軸電流指令値Id1及びq軸電流指令値Iq1と、補正前電圧指令演算部242で算出されたd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’とを用いて、モータ150の駆動電力Pcを算出する。
具体的には電力推定部243は、式(8)に示すように、補正前のd軸電圧指令値Vdc’と補償後のd軸電流指令値Id1とを乗算したd軸電力値と、補正前のq軸電圧指令値Vqc’と補償後のq軸電流指令値Iq1とを乗算したq軸電力値とを加算する。
電力推定部243は、式(8)で算出された値Pcをモータ150の駆動電力Pcとして補正値算出部244に出力する。
このように電力推定部243では、モータ150の制御遅れ時間に基づいて設定された伝達関数Gd3(s)、Gd4(s)及びGd5(s)と、伝達関数Gq3(s)Gq4(s)及びGq5(s)とを用いて、駆動電力Pcが推定される。
図6は、トルク補正部240によるトルク補正値ΔTの算出方法を示すフローチャートである。なお、トルク補正部240は、本ルーチンをモータ制御装置200の動作中に所定の演算周期(例えば10ms)で実行する。
まず、ステップS201において、電流検出部214は、角速度検出部215で検出される磁極位置θに基づいて、三相交流電流の検出値Iu、Iv、及びIwを、d軸電流値Id及びq軸電流値Iqに変換する。これと共に電流検出部214は、三相交流の電圧指令値の検出値Vuc、Vvc、及びVwcを、磁極位置θに基づいてd軸電圧指令値Vdc及びq軸電圧指令値Vqcに変換する。
ステップS202において消費電力算出部241は、式(2)に示したように、d軸電流値Id及びq軸電流値Iqとd軸電圧指令値Vdc及びq軸電圧指令値Vqcとを用いて、モータ150の消費電力Pを算出する。
ステップS203において補正前電圧指令演算部242は、補正前のトルク指令値Tと、電気角速度ωと、磁極位置θとに基づいて、補正前のd軸電圧指令値Vdc’及び、補正前のq軸電圧指令値Vqc’を演算して電力推定部243に出力する。
ステップS204において電力推定部243は、式(7)に示したように、補正前のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’と電気角速度ωとを用いて、制御遅れの補償後のd軸電流指令値Id1及びq軸電流指令値Iq1を算出する。
d軸電流指令値Id1は、伝達関数Gd3(s)、Gd4(s)及びGd5(s)によってモータ150の制御遅れが補償される。q軸電流指令値Iq1は、伝達関数Gq3(s)、Gq4(s)及びGq5(s)によってモータ150の制御遅れが補償される。
ステップS205において電力推定部243は、式(8)に示したように、制御遅れ補償後のd軸電流指令値Id1及びq軸電流指令値Iq1と、補正前のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’とを用いて駆動電力Pcを推定する。
その後、ステップS206において補正値算出部244は、式(6)に示したように、モータ150の消費電力Pと、モータ150の制御遅れ時間が補償された駆動電力Pcとの差分に応じてトルク補正値ΔTを算出する。なお、PI制御部244Bの伝達関数は、式(6)で示したGp1(s)と同一の伝達関数でもよく、異なる伝達関数でもよい。
トルク補正値ΔTは、補正演算部211でトルク指令値Tに加算され、その値が、補正トルク指令値Trとして補正演算部211から電圧指令部212へ出力される。
ステップS201からステップS206までの一連の処理が完了すると、トルク補正値ΔTの算出方法が終了する。
本発明の第2実施形態によれば、式(7)で示した伝達関数Gd3(s)、Gd4(s)及びGd5(s)と、伝達関数Gq3(s)、Gq4(s)及びGq5(s)とを用いて、駆動電力Pcが推定される。
伝達関数Gd3(s)、Gd4(s)及びGd5(s)と、伝達関数Gq3(s)、Gq4(s)及びGq5(s)とは、共にモータ150の制御遅れ時間によって定められた積分要素を有する。
この積分要素によって、第1実施形態と同様、モータ150の制御遅れが補償されると共にノイズを吸収できるので、電力推定部243で推定される駆動電力Pcの推定値と、消費電力Pの算出値との時間的ズレを小さくできる。
これにより、エンジン始動時などにトルク指令値Tが過渡的に変化する過渡状態でも、トルク指令値Tの変動によって駆動電力Pcと消費電力Pとの差分が変動することを抑制できる。
したがって、矩形波信号を生成するモータ制御装置200でも、駆動電力Pcと消費電力Pとの差分に応じて定常状態におけるモータ150のトルク変動を抑制しつつ、過渡状態におけるトルクのオーバーシュートを抑制することができる。
また、本実施形態では、電力推定部243が、補正前のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’に基づいて駆動電力Pcを推定する例について説明したが、補正前のd軸電流指令値と補正前のq軸電流指令値とに基づいて推定してもよい。
例えば、電力推定部243は、補正前のd軸電圧指令値Vdc’及びq軸電圧指令値Vqc’ と電気角速度ωとを用いて、補正前のd軸電流指令値及びq軸電流指令値を算出する。そして電力推定部243は、補正前のd軸電流指令値及びq軸電流指令値に対して、式(7)と同じように制御遅れを含む伝達関数を用いて、モータ150の駆動電力Pcを算出する。
この場合にも、本実施形態と同様に、モータ150の過渡状態のときにトルクのオーバーシュートを抑制することができる。
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
例えば、本発明は、三相同期モータ以外の電動モータにも適用することができる。
なお、上記実施形態は、適宜組み合わせ可能である。