以下、本発明の実施形態を図面に基づいて説明する。
《第1実施形態》
図1は、本発明の実施形態に係るモータ制御装置を搭載した電動車両システムの構成を示すブロック図である。以下、本例のモータ制御装置を電気自動車に適用した例を挙げて説明するが、本例のモータ制御装置は、例えばハイブリッド自動車(HEV)等の電気自動車以外の車両にも適用可能である。
図1に示すように、本例のモータ制御装置を含む車両は、バッテリ1、インバータ2、モータ3、減速機4、ドライブシャフト(駆動軸)5、車輪6、7、電圧センサ8、電流センサ9、回転センサ10、及びモータコントローラ20を備えている。
バッテリ1は、車両の動力源であって、複数の二次電池を直列又は並列に接続することで構成されている。インバータ2は、IGBTやMOSFET等の複数スイッチング素子を各相毎に2個接続した電力変換回路を有している。インバータ2は、モータコントローラ20からの駆動信号により、当該スイッチング素子のオン、オフを切り替えることで、バッテリ1から出力される直流電力を交流電力に変換しモータ3に出力し、モータ3に対して所望の電流をながすことで、モータ3を駆動させる。またインバータ2は、モータ3の回生により出力された交流電力を逆変換して、バッテリ1に出力する。
モータ3は、車両の駆動源であって、減速機4及びドライブシャフト5を介して駆動輪6、7に駆動力を伝達するための誘導モータである。モータ3は、車両の走行時に、駆動輪6、7に連れ回されて回転し、回生の駆動力を発生することで、車両の運動エネルギーを電気エネルギーとして回収する。これにより、バッテリ1は、モータ3の力行により放電され、モータ3の回生により充電される。
電圧センサ8は、バッテリ1の電圧を検出するセンサであり、バッテリ1とインバータ2の間に接続されている。電圧センサ8の検出電圧は、モータコントローラ20に出力される。電流センサ9はモータ3の電流を検出するためのセンサであり、インバータ2とモータ3との間に接続されている。電流センサ9の検出電流は、モータコントローラ20に出力される。回転数センサ10は、モータ3の回転数を検出するためのセンサであり、レゾルバ等で構成されている。回転数センサ10の検出値はモータコントローラ20に出力される。
モータコントローラ20は、車両の車速(V)、アクセル開度(APO)、モータ3の回転子位相(θre)、モータの電流、バッテリ1の電圧等に基づき、インバータ2を動作するためのPWM信号を生成し、インバータ2を動作させるドライブ回路(図示しない)に出力する。そして、当該ドライブ回路が、PWM制御信号に基づき、インバータ2のスイッチング素子の駆動信号を制して、インバータ2に出力する。これにより、モータコントローラ20は、インバータ2を動作させることで、モータ3を駆動させている。
モータコントローラ20は、インバータ2及びモータ3を制御するコントローラである。また、モータコントローラ20は、モータトルク制御部21、制振制御部22及び電流制御部23を有している。
モータトルク制御部21は、モータコントローラ20に入力される車両変数を示す車両情報の信号に基づき、ユーザの操作による要求トルク又はシステム上の要求トルクを、モータ3から出力させるためにトルク指令値(Tm1 *)を算出し、制振制御部22に出力する。
モータトルク制御部21には、図2の関係を示すトルクマップが予め記憶されている。図2は、アクセル開度毎に設定された、モータ回転数と基本目標トルク指令値の相関性を示すグラフである。トルクマップは、アクセル開度毎で、モータ3の回転数に対するトルク指令値の関係により予め設定されている。トルクマップは、アクセル開度及びモータ回転数に対して、モータ3から効率よくトルクを出力させるためのトルク指令値で設定されている。
モータの回転数(回転速度)は、回転センサ10の検出値に基づき算出される。アクセル開度は、図示しないアクセル開度センサにより検出される。そして、モータトルク制御部21は、トルクマップを参照し、入力されたアクセル開度(APO)及びモータ回転数に対応する基本目標トルク指令値(Tm1 *)を演算し、制振制御部22に出力する。シフトレバーが、パーキングの位置及びニュートラルの位置に設定された場合に、基本目標トルク指令値(Tm1 *)はゼロになる。
なお、基本目標トルク指令値(Tm1 *)は、アクセル開度及びモータ回転数のみに限らず、例えば車速等を加えて演算してもよい。車速V[km/h]は、メータやブレーキコントローラ等の他のコントローラより通信にて取得するか、回転子機械角速度(ωrm)にタイヤ動半径(R)を掛け、ファイナルギヤのギヤ比で割ることにより車両速度v[m/s]を求め、[m/s]から[km/h]への単位変換係数(3600/1000)を乗ずることで求めればよい。
制振制御部22は、基本モータトルク指令値Tm1 *及びモータ回転数Nmを入力として、駆動軸トルクの応答を犠牲にすることなく、ドライブシャフト5(駆動軸)のねじり振動等により生じる駆動力伝達系の振動を抑制するための制振制御後トルク指令値Tm2 *を演算する。制振制御部22の詳細な制御は、例えば特開2001−45613号公報及び特開2003−9559号公報を参照されたい。そして、制振制御部22は、基本目標トルク指令値(Tm1 *)に基づき演算した制振制御後トルク指令値Tm2 *を電流制御部23に出力する。なお、制振制御部22は、必ずしも必要ない。
電流制御部23は、トルク指令値(Tm2 *)に基づき、モータ3に流れる電流を制御する制御部である。以下、図3を用いて、電流制御部23の構成について説明する。図3は、電流制御部23及びバッテリ1等のブロック図である。
電流制御部23は、電流指令値演算器30、減算器41、電流FB制御器42、座標変換器43、PWM変換器44、AD変換器45、座標変換器46、パルスカウンタ47、角速度演算器48、すべり角速度演算器49、電源位相演算器50及びモータ回転数演算器51を有している。
電流指令値演算器30には、制振制御部22から入力される制振制御後トルク指令値(Tm2 *)と、モータ回転数演算器51から入力されるモータ3の回転数(Nm)、及び、電圧センサ8の検出電圧(Vdc)が入力され、γδ軸電流指令値(Iγ *、Iδ *)を演算し出力する。ここで、γδ軸は、回転座標系の成分を示している。
減算器41は、γδ軸電流指令値(Iγ *、Iδ *)とγδ軸電流(Iγ *、Iδ *)との偏差を算出し、電流FB制御器42に出力する。電流FB制御器42は、γ軸電流(Iγ)及びδ軸電流(Iδ)を、γ軸電流指令値(Iγ)及びδ軸電流指令値(Iδ *)にそれぞれ一致させるようフィードバック制御する制御器である。電流FB制御器42は、γδ軸電流指令値(Iγ *、Iδ *)に対してγδ軸電流(Iγ、Iδ)を、定常的な偏差なく所定の応答性で追随させるよう制御演算を行い、γδ軸の電圧指令値(vγ *、vδ *)を、座標変換器43に出力する。なお、γ軸の電流はモータ3の励磁電流を、σ軸の電流はモータ3のトルク電流を表す。また、減算器41及び電流FB制御器42の制御に非干渉制御を加えてもよい。
座標変換器43は、γδ軸電圧指令値(vγ *、vδ *)及び電源位相演算器50で演算される電源位相(θ)を入力として、γδ軸電圧指令値(vγ *、vδ *)を固定座標系のu、v、w軸の電圧指令値(vu *、vv *、vw *)に変換し、PWM制御器44に出力する。
PWM変換器44は、入力される電圧指令値(Vu *、Vv *、Vw *)に基づき、インバータ2のスイッチング素子のスイッチング信号(D* uu、D* ul、D* vu、D* vl、D* wu、D* wl)を生成し、インバータ7に出力する。
A/D変換器45は、電流センサ9の検出値である相電流(Iu、Iv)をサンプリングし、サンプリングされた相電流(Ius、Ivs)を座標変換器46に出力する。三相の電流値の合計がゼロになることから、w相の電流は、電流センサ9により検出されず、代わりに、座標変換器46は、入力された相電流(Ius、Ivs)に基づき、w相の相電流(Iws)を算出する。なお、w相の相電流について、w相に電流センサ9を設け、当該電流センサ9により検出してもよい。
座標変換器46は、3相2相変換を行う変換器であり、電源位相(θ)を用いて、固定座標系の相電流(Ius、Ivs、Iws)を回転座標系のγδ軸電流(Iγs、Iδs)に変換し、減算器41に出力する。これにより、電流センサ9により検出される電流値がフィードバックされる。
パルスカウンタ47は、回転センサ10から出力されるパルスをカウントすることで、モータ3の回転子の位置情報である回転子位相(θre)(電気角)を得て、角速度演算器48に出力する。
角速度演算器48は、回転子位相(θre)を微分演算することで、回転子角速度(ωre)(電気角)を演算し、電源位相演算器50に出力する。また、角速度演算器48は、演算した回転子角速度(ωre)をモータ3の極対数pで割り、モータの機械的な角速度である回転子機械角速度(ωrm)[rad/s]を演算し、モータ回転数演算器51に出力する。
すべり角速度演算器49は、励磁電流指令値(I
γ *)に対して、ロータ磁束応答遅れを考慮したロータ磁束推定値(φ
est)を、以下の式(1)により演算する。
ただし、Mは相互インダクタンスを、τ
φはロータ磁束の応答時定数である。なお、τ
φはLr/Rrで表され、Lrはロータの自己インダクタンスを、Rrはロータ抵抗を示す。
また、すべり角速度演算器49は、式(2)で表されるように、トルク電流指令値(I
δ *)と式(1)から求めたロータ磁束推定値(φ
est)との比に、モータの特性で決まる定数を除算することで、すべり角速度(ωse)を演算する。
なお、これらM、τ
φ、M・Rr/Lr等の値は、ロータ温度や電流値、トルク指令値に対して予め計算または実験により算出した値をテーブルに格納して使用してもよい。
そして、すべり角速度演算器49は、上記により演算したすべり角速度(ωse)を電源位相演算部50に出力する。このように、すべり角速度(ωse)を設定することで、出力トルクはトルク電流とロータ磁束の積で扱えるようになる。
電源位相演算器50は、以下の式(3)で示されるように、回転子角速度(ω
re)(電気角)に、すべり角速度(ω
se)を加算しつつ、積分することで、電源位相(θ)を演算し、座標変換器43、46に出力する。
モータ回転数演算器51は、回転子機械角速度(ωrm)に、[rad/s]から[rpm]への単位変換するための係数(60/2π)を乗算することで、モータ回転数(Nm)を演算し、電流指令値演算器30に出力する。
次に、図4を用いて、電流指令値演算器30の構成について説明する。図4は、電流指令値演算器30の構成を示すブロック図である。
電流指令値演算器30は、基本電流指令値演算部31、磁束応答補償部32、励磁電流指令値変化量演算部33、拡大電流指令値判定部34、拡大電流制限値演算部35、及び電流指令値演算部36を有している。
基本電流指令値演算部31には、制振制御後トルク指令値(Tm2 *)、バッテリ1の電圧(Vdc)及びモータ回転数(Nm)に対する基本γδ軸電流指令値(Iγ0 *、Iδ0 *)の関係を示すマップが予め記録されている。基本γδ軸電流指令値(Iγ0 *、Iδ0 *)は、制振制御後トルク指令値(Tm2 *)、バッテリ1の電圧(Vdc)及びモータ回転数(Nm)に対して、インバータ2及びモータ3の総合効率を最適化させる電流指令値であり、実験又は計算で予め設定されている値である。そして、基本電流指令値演算部31は、当該マップを参照して、制振制御後トルク指令値(Tm2 *)、バッテリ1の電圧(Vdc)及びモータ回転数(Nm)に対応する基本γδ軸電流指令値(Iγ0 *、Iδ0 *)を演算し、磁束応答補償部32、励磁電流指令値変化量33、及び拡大電流制限値演算部35に出力する。
磁束応答補償部32は、ロータ磁束遅れを補償するために、遅れ分の位相を進ませることで、基本電流指令値を増幅するよう、磁束補償γ軸電流指令値(Iγ1 *)を演算する。
一般に、ロータ磁束の応答は、トルク電流の応答に比べて一桁以上、遅い。そして、モータ3の出力は、ロータ磁束とステータのトルク電流との積と比例する。そのため、ロータ磁束の応答遅れによって、トルク応答が遅れてしまう。磁束応答補償部32は、このようなトルク応答の遅れを補償するよう、電流指令値を補償している。これにより、モータ3には、基本電流指令値が増加することで、過渡的に大きな励磁電流を流すことができるため、ロータ磁束応答を改善しつつ、トルク応答を改善することができる。
磁束応答補償部32は、以下の式(4)で示されるように、基本γ軸電流指令値(I
γ0 *)に、ステータ電流の応答時定数(τ
i)及びロータ磁束の応答時定数(τ
φ)を含む関数を乗ずることで、磁束補償γ軸電流指令値(I
γ1 *)を演算し、電流指令値制限部36に出力する。
ステータ電流の応答時定数(τi)とロータ磁束の応答時定数(τφ)との間には、τi<τφの関係が成立する。そのため、磁束応答補償部32は、式(4)を用いて、磁束補償γ軸電流指令値(Iγ1 *)を演算することで、位相進み補償器として機能する。
励磁電流指令値変化量演算部33は、以下の式(5)で示される近似式を用いて、入力される基本γ軸電流指令値(I
γ0 *)から、基本γ軸電流指令値の変化量(dI
γ0 *)を演算し、拡大電流指令値判定部34に出力する。
ただし、τ
0は、基本γ軸電流指令値(I
γ0 *)の変化を、どのぐらいの長さの時間で近似的に演算するかを示す設定値であって、設計または実験により予め設定されている。
なお、変化量(dIγ0 *)は、前回の演算時の基本γ軸電流指令値(Iγ0 *)と、今回の演算時の基本γ軸電流指令値(Iγ0 *)との差分をとってもよい。モータコントローラ20に含まれる、電流指令値演算器30等の演算部は、所定の制御周期で、指令値等を演算している。前回の演算値の指令値は、今回の演算値の指令値に対して、所定の制御周期分だけ前のタイミングで演算された指令値を示す。
拡大電流指令値判定部34は、基本γ軸電流指令値の変化量(dIγ0 *)と判定閾値(I0)とを比較し、その比較結果に基づいて、後述する拡大電流制限値演算部35で演算された拡大電流制限値を、励磁電流制限値の制限値とするか、または、トルク電流制限値の制限値とするかを判定する。拡大電流制限値は、ロータ磁束の応答を高めるために、過渡的に電流を高める際の電流の制限値である。なお、拡大電流制限値演算部35の構成、及び拡大電流制限値については後述する(図5を参照)。
励磁電流の変化量が大きい場合には、ロータ磁束の応答性を高めることで、トルク応答を高めることができる。そのため、変化量(dIγ0 *)が判定閾値(I0)より大きい場合には、拡大電流指令値判定部34は、励磁電流の変化量が大きいと判断し、励磁電流指令値の制限値を、拡大電流制限値まで拡大させる旨の信号を、電流指令値制限部36に出力する。
一方、励磁電流の変化量が小さい場合には、励磁電流は既に一定になっているため、励磁電流の制限値を拡大させて、ロータ磁束の応答性を高めなくてもよい。そのため、変化量(dIγ0 *)と判定閾値(I0)以下である場合には、拡大電流指令値判定部34は、励磁電流の変化量が小さいと判断し、トルク電流制限値の制限値を、拡大電流制限値まで拡大させる旨の信号を電流指令値制限部36に出力する。
判定閾値(I0)は、拡大電流制限値を、励磁電流制限値の制限値とするか、または、トルク電流制限値の制限値とするかを判定するための閾値であって、設計または実験により予め設定されている閾値である。
拡大電流制限値演算部35は、基本γδ軸電流指令値(Iγ0 *、Iδ0 *)に基づき拡大電流制限値(Ilim)を演算する演算部である。拡大電流制限値演算部35で演算された拡大電流制限値(Ilim)は、電流指令値演算部36に出力される。電流指令値制限部36は、磁束応答補償部32により演算された電流指令値又は基本電流指令値を、拡大電流制限値(Ilim)で制限する。そして、電流指令値制限部36で演算された指令値(Iγ *、Iδ *)は、減算器41等に出力される(図3を参照)。なお、電流指令値制限部36の構成、は後述する(図6、7を参照)。
次に、図5を用いて、拡大電流制限値演算部35の構成を説明する。図5は、拡大電流制限値演算部35のブロック図である。
図5に示すように、拡大電流制限値演算部35は、基本電流振幅演算部351、定格電流制限部352、拡大電流振幅演算部353、及び限界電流制限部354を有している。
基本電流振幅演算部351は、式(6)で示されるように、基本γ電流指令値(I
γ0 *)を示すベクトルと、基本δ電流指令値(I
δ0 *)を示すベクトルとの和から、基本電流指令値の振幅(I
S0 *)を演算し、定格電流制限部352に出力する。
定格電流制限部352は、入力される基本電流指令値の振幅(IS0 *)に、定格電流制限値(Irat *)で制限をかけることで、定格制限電流振幅(IS0_rat *)を演算し、拡大電流振幅演算部353に出力する。定格電流制限値(Irat *)は、インバータ2及びモータ3のインピーダンスなど構成や特性を考慮して、数十秒間又は数分間、連続的に電流をスイッチング素子に流すことのできる最大電流値(正負の最大電流値)を示しており、設計又は実験により予め設定されている値である。定格電流制限値(Irat *)は、上限値及び下限値で規定されている。
定格電流制限部352は、振幅(IS0 *)が上限の定格電流制限値(+Irat *)以上である場合には、上限の定格電流制限値(+Irat *)を定格制限電流振幅(IS0_rat *)として演算する。定格電流制限部352は、振幅(IS0 *)が下限の定格電流制限値(−Irat *)以下である場合には、下限の定格電流制限値(−Irat *)を定格制限電流振幅(IS0_rat *)として演算する。また、定格電流制限部352は、振幅(IS0 *)が下限の定格電流制限値(−Irat *)より高く、かつ、上限の定格電流制限値(+Irat *)より低い場合には、振幅(IS0 *)を定格制限電流振幅(IS0_rat *)として演算する。
拡大電流振幅演算部353は、式(7)に示すように、定格制限電流振幅(I
S0_rat *)に、ロータ磁束の伝達関数(
G φ (s))とインバータ2のスイッチング素子の熱応答関数(
G s (s))との比を乗ずることで、拡大電流振幅(I
s0_bst *)を演算し、限界電流制限部354に出力する。
ただし、
G φ (s)はモータ3のロータ磁束の伝達関数のモデルを示し、
G s (s)はインバータ2のスイッチング素子の熱応答関数のモデルを示す。
また、ロータ磁束の応答及びスイッチング素子の熱応答を一次遅れ関数で近似させた場合には、拡大電流振幅演算部353は、式(8)に示すように、定格制限電流振幅(I
S0_rat *)に、ロータ磁束の応答時定数(
τ φ )及びスイッチング素子の熱時定数(
τ s )を含む関数を乗ずることで、拡大電流振幅(I
s0_bst *)を演算する。
ここで、ロータ磁束の応答時定数とスイッチング素子の熱時定数との間には、τφ<τsの関係がある。そのため、拡大電流振幅演算部353は、位相進み補償器として機能し、スイッチング素子の熱時定数の応答を、ロータ磁束の時定数の応答となるよう、位相を補償している。
定格制限電流振幅(IS0_rat *)は、定格電流制限値(Irat *)で制限をかけられることによって、電流振幅(IS0_rat *)に相当する定常的な電流を、数十秒間又は数分間(定格時間)、スイッチング素子に流したとしても、スイッチング素子の温度は、スイッチング素子の限界温度(過熱によるスイッチング素子の異常を防ぐための上限温度)以下に抑えられる。また、スイッチング素子は熱時定数(一般的には数秒程度)をもっているため、過渡的にスイッチング素子の電流を高くしたとしても、スイッチング素子の温度は、電流変化に対して速い応答性で高くなることない。そのため、定常的には定格電流時のスイッチング素子の温度に収束させつつ、スイッチング素子の熱上昇を定常時よりも速くすることができれば、スイッチング素子に対して瞬時的に、定格電流より高い電流を流すことができる。
本例では、スイッチング素子の熱時定数から、スイッチング素子の電流制限値を、定常電流から拡大させて、電流制限値を過渡的に増加させている。具体的には、拡大電流振幅演算部353による位相補償により、定格制限電流振幅(IS0_rat *)を拡大電流振幅(Is0_bst *)に増加させている。これにより、本例は、スイッチング素子の温度を限界温度以下に維持しつつ、ロータ磁束を急峻に励起させる励磁電流、あるいは、トルク応答を高めるための過渡的なトルク電流を流すことができる。
限界電流制限部354は、入力される拡大電流振幅(Is0_bst *)に、限界電流制限値(Isat)で制限をかけることで、拡大電流制限値(Ilim *)を演算し、電流指令値制御部36に出力する。
限界電流制限値(Isat)は、モータ3に対して有効に発生できない電流の瞬時値の限界値を示す。例えば、瞬時値として高い電流指令値で、モータを制御したとしても、モータの磁気的な飽和や、ハードウェアから定まる過電流の閾値により、指令値に相当するトルクをモータ3から出力できない場合がある。そのため、本例では、モータ3に対して有効トルクを発生できない電流の瞬時値を、限界電流制限値(Isat)として設定している。なお、限界電流制限値(Isat)は、モータ3又はインバータ2を瞬時の過電流から保護する電流の制限値としてもよい。インバータ2又はモータ3の保護の観点から、瞬時値であっても、電流の制限値を設けている。
これにより、拡大電流制限値演算部35は、スイッチング素子の熱時定数に基づいて設定され、スイッチング素子の定格電流より高い拡大電流制限値(Ilim *)を演算している。
さらに、拡大電流制限値(Ilim *)について説明すると、定格時間は、スイッチング素子の熱時定数に応じて、設計また時間により予め設定される時間である。そして、定格時間内であって、定常電流より高い電流を、スイッチング素子に流すことができる時間は、設定される電流の上限値とスイッチング素子の熱時定数に応じて決まる。そのため、拡大電流制限値(Ilim *)は、スイッチング素子の定格電流より高い電流を、熱時定数(τφ)に相当する時間、スイッチング素子に流した場合に、スイッチング素子の温度を限界温度以下とする、電流の上限値を表している。
次に、図6、7を用いて、電流指令値制限部36の構成について説明する。図6、7は電流指令値制御部36の構成を示すブロック図である。電流指令値制御部36は、定格電流制限部361、364、拡大励磁電流制限値演算部362、励磁電流制限部363、拡大トルク電流制限値演算部365、及びトルク電流制限部366を有している。
電流指令値制限部36は、拡大電流指令値判定部34の判定結果に基づいて、図6で示す構成と図7で示す構成のいずれか一方の構成を用いて、γδ軸電流指令値(Iγ *、Iδ *)を演算する。拡大電流指令値判定部34により、基本γ軸電流指令値の変化量(dIγ0 *)が判定閾値(I0)より大きいと判定された場合には、電流指令値制御部36は、図6に示す、定格電流制限部361、拡大励磁電流制限値演算部362、及び励磁電流制限部363により、励磁電流指令値の制限値を、拡大励磁電流制限値(Iγ_lim)まで拡大させる。
一方、拡大電流指令値判定部34により、基本γ軸電流指令値の変化量(dIγ0 *)が判定閾値(I0)以下であると判定された場合には、電流指令値制限部36は、図7に示す、定格電流制限部364、拡大トルク電流制限値演算部365、及びトルク電流制限部366により、トルク電流指令値の制限値を、拡大トルク電流制限値(Iδ_lim)まで拡大させる。
図6に示すように、定格電流制限部361は、入力される基本δ軸電流指令値(Iδ0 *)に、定格電流制限値(Irat *)で制限をかけることで、δ軸電流指令値(Iδ *)を演算する。定格電流制限値(Irat *)は、定格電流制限部352で使用された定格電流制限値(Irat *)を用いればよい。
拡大励磁電流制限値演算部362は、式(9)で示されるように、拡大電流制限値(I
lim)の大きさから、δ軸電流指令値(I
δ *)の大きさを減算することで、拡大励磁電流制限値(I
γ_lim)を演算する。
励磁電流制限部363は、磁束応答補償部32で補償された磁束補償γ軸電流指令値(Iγ1 *)に、拡大励磁電流制限値(Iγ_lim)で制限をかけることで、γ軸電流指令値(Iγ *)を演算する。
図7に示すように、定格電流制限部364は、磁束応答補償部32で補償された磁束補償γ軸電流指令値(Iγ1 *)に、定格電流制限値(Irat *)で制限をかけることで、γ軸電流指令値(Iγ *)を演算する。定格電流制限値(Irat *)は、定格電流制限部352で使用された定格電流制限値(Irat *)を用いればよい。
拡大トルク電流制限値演算部363は、式(10)で示されるように、拡大電流制限値(I
lim)から、γ軸電流指令値(I
γ *)の大きさを減算することで、拡大トルク電流制限値(I
δ_lim)を演算する。
トルク電流制限部363は、基本δ軸電流指令値(Iδ0 *)に、拡大トルク電流制限値(Iδ_lim)で制限をかけることで、δ軸電流指令値(Iδ *)を演算する。
次に、拡大電流制限値演算部35及び電流指令値制限部36の制御の制御について、図4〜7を用いて説明する。
上記のとおり、励磁応答補償部32は、励磁電流の応答速度を速めるために、励磁電流指令値の位相を進ませるように、励磁電流指令値を増幅させることで、励磁電流指令値を補償する。
増幅された励磁電流指令値に対して、励磁電流を最大電流制限値まで流した場合には、進み補償により過渡的に大きな励磁電流をながすことになる。しかしながら、モータへの過電流に対する保護の観点から、モータには最大電流制限値を超える電流を流すことはできない。仮に(本例とは異なり)、この最大電流制限値を定格電流に設定した場合には、定格電流以上の励磁電流を流すことはできない。さらに、指令値を励磁電流に優先的に配分するよう制御したには、全ての電流が励磁電流に流れてしまい、トルク電流が流れない。その結果として、ロータの磁束が不足しつつ、トルク電流がゼロとなることでトルクを発生することできず、かえってトルク応答が遅れてしまう。
そこで、拡大電流制限値演算部35は、電流指令値の制限値を、拡大電流制限値(Ilim)まで上げている。拡大電流制限値(Ilim)は、スイッチング素子の熱時定数に基づいて、設定された値であり、スイッチング素子の定格電流より高い電流値である。また、スイッチング素子の熱時定数とロータ磁束の時定数との関係により、スイッチング素子の熱応答速度は、ロータ磁束の応答速度よりも遅い。そのため、拡大電流制限値(Ilim)以下の範囲内で、過渡的に高い励磁電流を流すことで、スイッチング素子の温度が限界温度に達する前に、ロータ磁束を高めることができる。これにより、本例は、ロータの磁束応答を高めている。
また、励磁電流の制限値を拡大する際には、電流指令値制限部36は、トルク電流指令値に基づき、拡大励磁電流制限値(Iγ_lim)を演算した上で、励磁電流指令値を当該拡大励磁電流制限値(Iγ_lim)で制限している。トルク電流の制限値を拡大する際には、電流指令値制限部36は、励磁電流指令値に基づき、拡大トルク電流制限値(Iδ_lim)を演算した上で、トルク電流指令値を当該拡大トルク電流制限値(Iδ_lim)で制限している。これにより、励磁電流またはトルク電流がゼロになるまで、制限値が拡大されることが防止されるため、発生トルクがゼロになることが回避される。
次に、図8を用いて、モータコントローラ20の制御手順について説明する。図8は、モータコントローラ20の制御手順を示すフローチャートである。なお、図8の制御フローは、所定の周期で繰り返し実行される。
ステップS1にて、モータコントローラ20、入力処理として、車速、アクセル開度等を取得する。ステップS2にて、モータトルク制御部21は、入力されたアクセル開度等に基づき、トルク指令値(Tm1 *)を演算する。ステップS3にて、制振制御部22は、トルク指令値(Tm1 *)等に基づき制振制御を行うことで、制振制御後トルク指令値(Tm2 *)を演算する。
ステップS4にて、電流制御部23に含まれる電流指令値演算器30は、制振制御後トルク指令値(Tm2 *)等に基づき、γδ軸電流指令値(Iγ *、Iδ *)を演算する。なお、ステップS4の詳細な制御手順は後述する。
そして、ステップS5にて、電流制御部23に含まれる減算器41等により、γδ軸電流指令値(Iγ *、Iδ *)をモータ3から出力させるよう、駆動信号(スイッチング信号)を生成し、インバータ2に出力することで、インバータ2が制御され、モータ3が。
次に、図9を用いて、ステップS4の制御手順を説明する。図9は、ステップS4の制御手順を示すフローチャートである。
ステップS3の制御の後、ステップS41にて、基本電流指令値演算部31は、制振制御後トルク指令値(Tm2 *)等に基づき、基本γδ軸電流指令値(Iγ0 *、Iδ0 *)を演算する。ステップS42にて、磁束応答補償部32は、基本γ軸電流指令値(Iγ0 *、Iδ0 *)を増幅させることで、駆動モータ3のロータ磁束応答の遅れを補償し、磁束補償γδ軸電流指令値(Iγ1 *、Iδ1 *)を演算する。
ステップS43にて、励磁電流指令値変化量演算部33は、磁束補償γ軸電流指令値(Iγ1 *)に基づき、γ軸電流指令値の変化量(dIγ0 *)を演算する。ステップS44にて、拡大電流指令値判定部34は、γ軸電流指令値の変化量(dIγ0 *)と判定閾値(I0)とを比較する。
γ軸電流指令値の変化量(dIγ0 *)が判定閾値(I0)より大きい場合には、電流指令値制限部36は、励磁電流の制限値を拡大し、励磁電流指令値及びトルク電流指令値を演算する(ステップS45)。一方、γ軸電流指令値の変化量(dIγ0 *)が判定閾値(I0)以下である場合には、電流指令値制限部36は、トルク電流の制限値を拡大し、励磁電流指令値及びトルク電流指令値を演算する(ステップS46)。そして、ステップS45、ステップS46の制御を終えると、ステップS4の制御フローを終えて、ステップS5に移る。
次に、図10を用いて、ステップS45の制御手順を説明する。図10は、ステップS45の制御手順を示すフローチャートである。
ステップS45の制御では、まずステップS451にて、基本電流振幅演算部351は、基本γδ軸電流指令値(Iγ0 *、Iδ0 *)に基づき、基本電流指令値の振幅(IS0 *)を演算する。ステップS452にて、定格電流制限部352は、基本電流指令値の振幅(IS0 *)に定格電流制限値(Irat *)で制限をかけることで、定格制限電流振幅(IS0_rat *)を演算する。ステップS453にて、拡大電流振幅演算部353は、定格制限電流振幅(IS0_rat *)に基づき、拡大電流振幅(Is0_bst *)を演算する。
ステップS454にて、限界電流制限部354は、拡大電流振幅(Is0_bst *)に限界電流制限値(Isat)で制限をかけることで、拡大電流制限値(Ilim *)を演算する。
ステップS455にて、定格電流制限部361は、基本δ軸電流指令値(Iδ0 *)に、定格電流制限値(Irat *)で制限をかけることで、δ軸電流指令値(Iδ *)を演算する。ステップS456にて、拡大励磁電流制限値演算部362は、拡大電流制限値(Ilim *)及びδ軸電流指令値(Iδ *)に基づき、拡大励磁電流制限値(Iγ_lim)を演算する。ステップS457にて、励磁電流制限部363は、磁束補償γ軸電流指令値(Iγ1 *)に、拡大励磁電流制限値(Iγ_lim)で制限をかけることで、γ軸電流指令値(Iγ *)を演算する。
次に、図11を用いて、ステップS46の制御手順を説明する。図11は、ステップS46の制御手順を示すフローチャートである。ステップS461〜ステップS454の制御フローは、図10に示すステップS451〜S454の制御フローと同様であるため説明を省略する。
ステップS465にて、定格電流制限部364は、磁束補償γ軸電流指令値(Iγ1 *)に、定格電流制限値(Irat *)で制限をかけることで、γ軸電流指令値(Iγ *)を演算する。ステップS466にて、拡大トルク電流制限値演算部365は、拡大電流制限値(Ilim *)及びγ軸電流指令値(Iγ *)に基づき、拡大トルク電流制限値(Iδ_lim)を演算する。ステップS457にて、トルク電流制限部366は、基本δ軸電流指令値(Iδ0 *)、拡大トルク電流制限値(Iδ_lim)で制限をかけることで、δ軸電流指令値(Iδ *)を演算する。
次に、本発明に係るモータ制御装置の効果について、図12及び図13を用いて説明する。図12は比較例の特性、図13は本発明の特性を示す。図12、13の(a)は励磁電流(γ軸電流)の時間特性を、(b)はトルク電流(δ軸電流)の時間特性を、(c)はロータ磁束の時間特性を、(d)トルクの時間特性を示すグラフである。また、図12、図13において、実トルク、実γ軸電流、及び実δ軸電流は、実際のモータ3の出力トルク、実際にモータ3に流れる電流を示している。
比較例では、磁束応答補償部32と同様に、γ軸電流指令値を増幅させることで、ロータ磁束応答を改善するための位相補償を行っている。そして、この位相補償により補償された励磁電流指令値に対して、定格電流制限値による制限をかけている。
以下、図12、13を比較しつつ、発進加速等において停車状態からトルク指令値をステップ的に増加させた場合を例にとり、トルク応答性能について説明する。
時刻t1にて、停車状態からの発進加速として、ステップ的にトルク指令値が立ち上がり、基本γδ軸電流指令値もステップ的に立ち上がる。磁束応答補償部32による、ロータ磁束応答を改善するための位相補償により、磁束補償γ軸電流指令値は過渡的に大きな値を示す。
比較例は、定格電流制限値を電流振幅の上限値とした上で、δ軸電流に比べて、γ軸電流に対して電流を配分するように、励磁電流を増幅させている。そのため、比較例では、定格電流制限値までの電流は、γ軸電流指令値のみで使い切ってしまい、δ軸電流に使用できる電流値はゼロのまま推移し、トルクを発生させることができない無駄時間が発生してしまう(図10のΔtnに相当)。また、γ軸電流が定格電流制限値で制限されてしまうので、ロータ磁束応答を改善するための所望の電流が流れず、所望のロータ磁束応答を実現することができない。
そして、時刻t1からt2の間の時刻で、磁束補償γ軸電流指令値が、下がり、定格電流制限値の値を下回ったところで、δ軸電流を流すことができるようになり、トルクが立ち上がり始める。
時刻t2の時点で、ロータ磁束は、定常値の7〜8割程度まで立ち上るが、磁束補償γ軸電流指令値は、ほぼ基本γ軸電流指令値に収束する。時刻t2以降、γ軸電流は一定値で維持することになり、ロータの特性で決まる時定数の遅れをもって、ロータ磁束が立ち上がっていく。その結果として、応答速度の遅い、緩慢なトルク応答となってしまい、最終的な実トルクのトルク指令値へ収束するまでの時間は、時刻t5〜t6までかかってしまう。
本発明では、時刻t1にて、ステップ的にトルク指令値が立ち上がり、基本γδ軸電流指令値もステップ的に立ち上がる。δ軸電流について、本発明は、δ軸電流指令値に定格電流制限値で制限をかけつつ、δ軸電流を流している。そのため、比較例で無駄時間を生じていた期間に、本発明はδ軸電流指令値がゼロにならず、δ軸電流を早く立ち上げることができている。その結果として、トルクも無駄時間なく時刻t1から立ち上がっている。
またγ軸電流について、磁束応答補償部32による、ロータ磁束応答を改善するための位相補償により、磁束補償γ軸電流指令値は過渡的に大きな値に立ち上がっている。そして、磁束補償γ軸電流指令値に加わる制限値は、拡大電流制限値まで拡大されているため、定格電流制限値に制限をしていた比較例と比較して、過渡的に大きな励磁電流を流すことができる。
これにより、時刻t1直後のトルク応答は無駄時間を発生することなく、比較例と比較して速くなっている。また時刻t2の時点で、ロータ磁束は指令値に対し約95%まで立ち上げることができる、その結果として、本発明は、トルク応答を大幅に向上させることができる。
上記のように、本例は、基本電流指令値を増幅させることでモータ3のロータ磁束応答の遅れを補償しつつ磁束補償電流指令値を演算し、磁束補償電流指令値を拡大電流制限値で制限し、当該拡大電流制限値を、スイッチング素子の熱時定数に基づいて設定し、かつスイッチング素子の定格電流より高い電流値とする。これにより、電流の制限値を過渡的に増加させつつ、スイッチング素子の温度を限界温度以内に維持することができるため、ロータ磁束を急峻に励起させるような大きな励磁電流を流すことができる。その結果として、トルクの応答性を高めつつ、トルク応答を高速化させることができる。
また、本例は、基本電流指令値を定格電流制限値(Irat *)で制限することで定格制限電流値(IS0_rat *に相当)を演算し、当該定格制限電流値に基づき拡大電流振幅(Is0_bst *)を演算し、拡大電流振幅(Is0_bst *)に基づき拡大電流制限値(Ilim *)を演算する。そして、基本電流指令値、定格制限電流値、及び拡大電流振幅(Is0_bst *)について、式(6)及び式(7)の関係を満たしている。これにより、拡大電流振幅(Is0_bst *)内で過渡的な電流を許可しつつ、定常時は定格電流に収束することができるため、ロータ磁束の応答性を高めつつ、トルク電流の応答性も高めることができる。さらに、スイッチング素子の温度を限界温度以下に抑えることができる。
また本例は、定格制限電流振幅(IS0_rat *)を定格電流制限値(Irat *)で制限をかけることで、拡大電流制限値を演算する。そして、モータ3に対して有効トルクを発生できない電流の瞬時値の制限値を、定格電流制限値(Irat *)に設定している。過渡的に拡大させる電流値を、有効トルクを発生できない値まで上昇させることは、非効率である。そのため、本例では、過渡的に拡大させる電流値の制限値を定格電流制限値(Irat *)に設定することで、インバータ2、モータ3等の効率を向上させつつ、過渡状態のスイッチング素子の温度を限界温度以下に抑えている。
また本例は、定格制限電流振幅(IS0_rat *)を定格電流制限値(Irat *)で制限をかけることで、拡大電流制限値を演算する。そして、インバータ2又はモータ3を瞬時的な過電流から保護する制限値を、定格電流制限値(Irat *)に設定している。拡大電流制限値を制限なく高めた場合には、インバータ2、モータ3に対して過大な負荷が加わるおそれがある。そのため、本例では、過渡的に拡大させる電流値の制限値を定格電流制限値(Irat *)に設定することで、インバータ2、モータ3の保護を図りつつ、過渡状態のスイッチング素子の温度を限界温度以下に抑えている。
また本例は、励磁電流指令値の変化量に応じて、励磁電流指令値又はトルク電流指令値のいずれか一方の指令値を拡大電流指令値で制限する。モータ3の出力トルクをゼロにして、インバータ2に電流を流す場合には、電流はインバータ2のある相に集中して流れる。そのため、出力トルクをゼロとした場合に許容される電流は、モータ3の回転時に許容される最大電流よりも小さくなる。本例では、励磁電流指令値の変化量が小さい時には、励磁電流の制限値は拡大されないため、励磁電流を、出力トルクのゼロの時の許容電流以下に抑制することができる。その結果として、本例はインバータ2の保護を図ることができる。
また本例は、励磁電流指令値の変化量が判定閾値(I0)より高い場合には、励磁電流指令値を拡大電流制限値で制限し、トルク電流指令値を定格電流制限値で制限する。励磁電流指令値の変化量が判定閾値(I0)より低い場合には、トルク電流指令値を拡大電流制限値で制限し、励磁電流指令値を定格電流制限値で制限する。これにより、励磁電流の変化量が大きいときには、励磁電流を過渡的に高めることで、磁束の立ち上がりを早めることができ、トルク応答を高めることができる。また、励磁電流の変化量が小さい時には、励磁電流は定常電流を超えず、トルク電流が過渡的に高くなる。そのため、励磁電流の制限値を高めなくてもよい場合には、トルク電流を高めることで、トルク応答を高めることができる。
また本例は、励磁電流指令値の変化量が判定閾値(I0)より高い場合には、拡大電流制限値(Ilim)の大きさから、トルク電流指令値の大きさを減算することで、γ軸の拡大電流制限値(Iγ_lim)を演算する。励磁電流指令値の変化量が判定閾値(I0)より低い場合には、拡大電流制限値(Ilim)の大きさから、励磁電流指令値の大きさを減算することで、δ軸の拡大電流制限値(Iδ_lim)を演算する。これにより、トルク電流をゼロにすることなく励磁電流の制限値を拡大させることができ、また、励磁電流をゼロにすることなくトルク電流の制限値を拡大させることができる。その結果として、トルクがゼロになる無駄時間の発生を防ぐことができる。
上記の基本電流指令値演算部31が本発明の「電流指令値演算手段」に相当し、磁束応答補償部32が本発明の「補償手段」に、電流指令値制限部36が本発明の「拡大電流指令値制限手段」に、電流FB制御器42及びPWM変換器44等が本発明の「制御手段」に、拡大電流制限値演算部35が本発明の「制限値演算手段」に、定格電流制限部352が本発明の「第1制限手段」に、拡大電流振幅演算部353が「第1電流制限値演算手段」に、限界電流制限部354が「第2制限手段」に、定格電流制限部361、364が「第3制限手段」に相当する。