以下、添付図面を参照しながら本発明の実施形態について説明する。
(第1実施形態)
図1は、第1実施形態における電圧供給装置の概略構成図である。本実施形態のような電圧供給装置100は、電動車両に搭載されるモータ200の回転駆動を制御する装置である。
電圧供給装置100は、目標トルクT*に応じたPWM電圧vu、vv、vwをモータ200に供給する装置である。目標トルクT*は、アクセルの踏み込み量(アクセル開度)などに応じて定まるトルク指令値である。この電圧供給装置100によって、モータ200の回転駆動が制御される。モータ200は、車両の駆動輪に接続された多相電動機の一例であり、本実施形態では3相で動作する。
電圧供給装置100は、電流ベクトル制御部10による電流ベクトル制御、又は、電圧位相制御部20による電圧位相制御のいずれかの方法で、モータ200の回転駆動を制御する。電流ベクトル制御と電圧位相制御との切り替えは、モータ200の運転状態に応じて、制御モード切替部30により行われる。そして、制御モード切替部30が、d軸電圧指令値vd *、及び、q軸電圧指令値vq *をモータ制御部40に出力すると、モータ制御部40は、PWM電圧vu、vv、vwをモータ200に出力する。
なお、電圧供給装置100は、モータの制御方法を実行するモータの制御装置の一例である。電流ベクトル制御部10は、電流指令値算出ステップを行う電流指令値算出部の一例である。電圧位相制御部20は、電圧指令値算出ステップを実行する電圧指令値算出部の一例である。制御モード切替部30は、選択ステップを行う選択部の一例である。モータ制御部40は、電圧印加ステップを実行する電圧印加部の一例である。
以下では、各ブロックの詳細な構成について説明する。まず、電流ベクトル制御部10の構成について説明する。電流ベクトル制御部10は、電流指令生成部11、電流ベクトル制御器12、及び、干渉電圧生成部13を有する。
電流指令生成部11は、目標トルクT*と、d軸電流指令値id *、及び、q軸電流指令値iq *と、を対応させたテーブルを記憶している。このテーブルは、あらかじめ実験または解析により求められる。電流指令生成部11は、このテーブルを用いて、電圧供給装置100外から入力される目標トルクT*に応じて、d軸電流指令値id *、及び、q軸電流指令値iq *を求め、これらの指令値を電流ベクトル制御器12に出力する。なお、電流指令生成部11は、これらの指令値を、電圧位相制御部20の第1トルク推定器25A、及び、制御モード切替部30の電流制御移行判定部31へも出力する。
干渉電圧生成部13は、あらかじめ記憶しているテーブルを用いて、目標トルクT*に応じて、d軸非干渉化電圧指令値vd_dcpl *、及び、q軸非干渉化電圧指令値vq_dcpl *を求め、これらの指令値を電流ベクトル制御器12に出力する。このようにすることで、dq軸において電流が流れる際に発生する干渉電圧が抑制される。
電流ベクトル制御器12には、d軸電流指令値id *、q軸電流指令値iq *、d軸非干渉化電圧指令値vd_dcpl *、及び、q軸非干渉化電圧指令値vq_dcpl *が入力される。さらに、電流ベクトル制御器12には、モータ制御部40の座標変換器41から、モータ200に流れる電流を示すd軸電流値id、及び、q軸電流値iqが入力される。
電流ベクトル制御器12は、これらの入力に応じて、電流ベクトル制御に用いるd軸電圧指令値vdi *、及び、q軸電圧指令値vqi *を算出し、これらの電圧指令値を、制御モード切替部30の制御モード切替器34に出力する。電流ベクトル制御器12は、これらの電圧指令値を、制御モード切替部30の電圧位相制御移行判定部32へも出力する。なお、電流ベクトル制御器12においては、公知の非干渉制御や、電流フィードバック制御などの技術が用いられて、一般的な電流ベクトル制御で行われている。
次に、電圧位相制御部20に関連する構成について説明する。電圧位相制御部20は、電圧振幅変換部21、dq軸電圧生成部22、電圧位相生成部23、加算器24、第1トルク推定器25A、第2トルク推定器25B、減算器26、及び、PI演算器27を有する。
なお、電圧位相生成部23は、位相算出ステップを実行する位相算出部の一例である。第1トルク推定器25Aは、第1推定ステップを実行する第1推定部の一例である。第2トルク推定器25Bは、第2推定ステップを実行する第2推定部の一例である。減算器26、及び、PI演算器27は、補正ステップを実行する補正部の一例である。
電圧振幅変換部21は、モータ制御部40の電圧センサ42が検出した電圧検出値Vdcと、指令値変調率M*に基づいて、次の式を用いて、電圧振幅指令値Va *を算出する。なお、指令値変調率M*は、モータ200の構成に応じた所定の値(例えば、1.1)が用いられる。そして、電圧振幅変換部21は、電圧振幅指令値Va *をdq軸電圧生成部22に出力する。
電圧位相生成部23は、あらかじめ実験または解析により求めたテーブルを備えており、入力される目標トルクT*、及び、電圧検出値Vdcに応じて、電圧位相制御に用いる第1の電圧位相指令値α1 *を求める。そして、電圧位相生成部23、第1の電圧位相指令値α1 *を、加算器24に出力する。
第1トルク推定器25Aは、モータ200へと流れるd軸及びq軸の電流値と、モータ200のトルクとの関係を示すテーブルを記憶している。なお、このテーブルは、実験または解析により求められるものとする。
第1トルク推定器25Aには、電流指令生成部11から、d軸電流指令値id *、及び、q軸電流指令値iq *が入力される。第1トルク推定器25Aは、これらの入力値に基づいて、テーブルを用いて、規範トルク指令値Tref *を算出し、規範トルク指令値Tref *を減算器26に出力する。なお、規範トルク指令値Tref *は、電流ベクトル制御部10における電流指令値に応じたトルクである。
第2トルク推定器25Bは、第1トルク推定器25Aと同じテーブルを記憶している。第2トルク推定器25Bは、このテーブルと、座標変換器41から出力されるd軸電流値id、及び、q軸電流値iqに基づいて、推定トルクTestを算出する。なお、推定トルクTestは、モータ200の電流値から推測されたトルクである。
なお、本実施形態では、第1トルク推定器25Aと第2トルク推定器25Bとは、同一のテーブルを用いたが、これに限らない。、第1トルク推定器25Aと第2トルク推定器25Bとは、略等しいテーブルを用いてもよい。
減算器26は、規範トルク指令値Tref *から推定トルクTestを減算し、その減算結果である偏差を、トルク差分Tdiffとして出力する。
PI演算器27は、トルク差分Tdiff(Tref *−Test)を受け付けると、次の式を用いたPI増幅演算を行う。そして、PI演算器27は、PI演算結果を、第2の電圧位相指令値α2 *として加算器24へ出力する。
ただし、Kpは、比例ゲインであり、Kiは、積分ゲインである。
加算器24は、第1の電圧位相指令値α1 *と、第2の電圧位相指令値α2 *とを加算し、その加算値を電圧位相指令値α*としてdq軸電圧生成部22に出力する。
dq軸電圧生成部22は、電圧振幅指令値Va *、及び、電圧位相指令値α*の入力に基づいて、次の式を用いて、d軸電圧指令値vdv *、及び、q軸電圧指令値vqv *を算出する。そして、dq軸電圧生成部22は、これらの電圧指令値を、制御モード切替器34に出力する。
制御モード切替部30には、電流ベクトル制御部10、及び、電圧位相制御部20から電圧指令値が入力される。そして、制御モード切替部30は、これらの電圧指令値のうち制御方法に応じた一方を選択し、選択された電圧指令値を、d軸電圧指令値vd *、及び、q軸電圧指令値vq *として座標変換器43に出力する。なお、制御モード切替部30の詳細な構成については後に説明する。
次に、モータ制御部40について説明する。モータ制御部40は、座標変換器41、電圧センサ42、座標変換器43、PWM変換器44、インバータ45、バッテリ46、及び、電流センサ47を有する。
座標変換器43は、dq軸からUVW相への座標変換を行う変換器である。座標変換器43は、次の式を用いて、d軸電圧指令値vd *、及び、q軸電圧指令値vq *を座標変換し、変換結果を三相電圧指令値vu *、vv *、vw *としてPWM変換器44出力する。
PWM変換器44には、座標変換器41から三相電圧指令値vu *、vv *、vw *が入力されるとともに、電圧センサ42から電圧検出値Vdcが入力される。なお、電圧センサ42は、バッテリ46からインバータ45への駆動電圧を検出するセンサである。そして、PWM変換器44は、公知のデッドタイム補償技術や、電圧利用率向上技術などを用いて三相電圧指令値vu *、vv *、vw *を補正する。そして、PWM変換器44は、インバータ45の備えるパワー素子の駆動に用いる駆動信号Duu *、Dul *、Dvu *、Dvl *、Dwu *、Dwl *を生成し、インバータ45に出力する。
インバータ45は、3相6アームで構成され、相ごとに2つずつ計6つのパワー素子を備えている。インバータ45は、PWM変換器44から出力される駆動信号に基づいてパワー素子のそれぞれを駆動させることで、擬似交流電圧であるPWM電圧vu、vv、vwを生成する。インバータ45は、PWM電圧vu、vv、vwをモータ200に供給する。
モータ200は三相で駆動しているため、インバータ45とモータ200とは三相と対応する3つの配線で接続されている。モータ200には、u相配線を介してPWM電圧vuが入力され、v相配線を介してPWM電圧vvが入力され、w相配線を介してPWM電圧vwが入力される。u相配線には電流センサ47uが設けられ、v相配線には電流センサ47vが設けられている。電流センサ47uにより検出されたu相電流値iu、及び、電流センサ47vにより検出されたv相電流値ivは、座標変換器41に出力される。
ここで、三相電流であるiu、iv、及び、iwの和はゼロになるため、w相電流値iwは、次の式のように示すことができる。
座標変換器41は、(5)式を用いて、次の式で示される座標変換を行うことで、UVW相からdq軸への座標変換を行う変換器である。
(6)式に示したように、座標変換器41は、u相電流値iu、及び、v相電流値ivに対して、回転センサ48から出力される電気角θに基づく座標変換を行う。そして、座標変換器41は、変換結果であるd軸電流値id、及び、q軸電流値iqを、電流ベクトル制御器12、第2トルク推定器25B、及び、電流制御移行判定部31に出力する。
回転センサ48は、モータ200に隣接して設けられており、モータ200の回転子の電気角θを検出する。回転センサ48は、検出した電気角θを、座標変換器41、43と、回転数演算器49とに出力する。
回転数演算器49は、電気角θの時間当たりの変化量からモータ200の回転数Nを算出し、電圧供給装置100外へと出力する。
次に、制御モード切替部30の詳細な構成について説明する。制御モード切替部30は、電流制御移行判定部31、電圧位相制御移行判定部32、制御モード判定部33、及び、制御モード切替器34を有する。
電流制御移行判定部31には、d軸電流指令値id *、q軸電流指令値iq *、d軸電流値id、及び、q軸電流値iqが入力される。そして、電流制御移行判定部31は、これらの入力値に基づいて、電圧位相制御から電流ベクトル制御への切り替えを判断し、その判断を示す信号Siを制御モード判定部33へ出力する。なお、電流制御移行判定部31の詳細な構成については、後に、図2を用いて説明する。
電圧位相制御移行判定部32には、電圧検出値Vdc、d軸電圧指令値vdi *、及び、q軸電圧指令値vqi *が入力される。そして、電圧位相制御移行判定部32は、これらの入力値に基づいて、電流ベクトル制御から電圧位相制御への切り替えを判断し、その判断を示す信号Svを制御モード判定部33へ出力する。なお、電圧位相制御移行判定部32の詳細な構成については、後に、図3を用いて説明する。
制御モード判定部33は、入力される信号Si及び信号Svに基づいて、電流ベクトル制御または電圧位相制御のいずれかを選択し、選択した制御方法を示す信号Sを、制御モード切替器34に出力する。
制御モード切替器34は、制御モード判定部33により選択された制御方法に従って、電流ベクトル制御、又は、電圧位相制御の指令値を、d軸電圧指令値vd *、及び、q軸電圧指令値vq *として、座標変換器43へ出力する。具体的には、電流ベクトル制御が選択された場合には、制御モード切替器34は、d軸電圧指令値vdi *、及び、q軸電圧指令値vqi *を出力する。電圧位相制御が選択された場合には、制御モード切替器34は、d軸電圧指令値vdv *、及び、q軸電圧指令値vqv *を出力する。
図2は、電流制御移行判定部31の詳細な構成を示す図である。電流制御移行判定部31は、過渡状態を考慮した規範応答に相当するブロック311A、311B、及び、電流ベクトル比較部312を有する。なお、ブロック311A、311Bのフィルタは、次の式にて示される。
ブロック311Aは、電流指令生成部11からd軸電流指令値id *の入力を受け付けると、この入力値に対してフィルタ処理を行い、フィルタ処理された指令値を電流ベクトル比較部312へ出力する。ブロック311Bは、電流指令生成部11からq軸電流指令値iq *の入力を受け付けると、この入力値に対してフィルタ処理を行い、フィルタ処理された指令値を電流ベクトル比較部312へ出力する。
電流ベクトル比較部312は、ブロック311A、及び、ブロック311Bからの入力に加えて、座標変換器41からd軸電流値id、及び、q軸電流値iqが入力される。そして、電流ベクトル比較部312は、次の表を用いて、電流ベクトル制御への移行を要求するか否かを判定する。そして、電流ベクトル比較部312は、その要求の有無を示す信号Siを出力する。
表1は、電流ベクトル制御への移行要求の有無の判定条件の一例である。表1によれば、d軸電流値idがd軸電流指令値id *よりも小さい場合には、電流ベクトル比較部312は、電流ベクトル制御への移行を要求しない。一方、d軸電流値idがd軸電流指令値id *以上である場合には、電流ベクトル比較部312は、電流ベクトル制御への移行を要求する。このように、d軸電流値idとd軸電流指令値id *との大小関係に基づいて、電流ベクトル制御への移行要求が決定される。
ここで、電圧位相制御から電流ベクトル制御への移行条件について説明する。モータ200が高回転領域である場合には、電流ベクトル制御では十分な電力が印加できなくなるおそれがあるため、電圧位相制御が行われる。一方で、モータ200が高回転領域である場合には、モータへの印加電圧が飽和するので、負方向のd軸電流を印加することにより、永久磁石の磁束を弱める弱め磁束を発生させるような弱め界磁制御が行われる。
すなわち、d軸電流値idがd軸電流指令値id *より小さい場合には、負のd軸電流が印加される弱め界磁制御が行われており、高回転領域であると判断されるので、電圧位相制御を行う。一方、d軸電流値idがd軸電流指令値id *以上である場合には、弱め界磁制御が行われるような高回転領域ではないと判断されるので、電圧位相制御から電流ベクトル制御への移行が要求される。
電流ベクトル制御への移行要求の判定条件は、表1に示される例に限られない。次の表に示される例のように、q軸電流を用いて、モータ200の動作点に応じた条件を用いて判定してもよい。
表2においては、モータ200の動作点が力行状態であるか回生状態であるかによって、条件が異なる。これは、界磁制御がされる場合にはq軸電流も変化するが、モータ200の動作点によって、q軸電流の増減方向が異なるためである。
動作点が力行である場合において、q軸電流値iqがq軸電流指令値iq *よりも大きい時には、電流ベクトル制御への移行が要求されない。一方、q軸電流値iqがq軸電流指令値iq *以下の場合には、電流ベクトル制御への移行が要求される。
動作点が回生である場合において、q軸電流値iqがq軸電流指令値iq *よりも小さい時には、電流ベクトル制御への移行は要求されない。一方、q軸電流値iqがq軸電流指令値iq *以上の場合には、電流ベクトル制御への移行が要求される。
図3は、電圧位相制御移行判定部32の詳細な構成を示す図である。電圧位相制御移行判定部32は、電流ベクトル制御器12からd軸電圧指令値vdi *、及び、q軸電圧指令値vqi *が入力されるとともに、電圧センサ42から電圧検出値Vdcが入力される。電圧位相制御移行判定部32には、ブロック321A、321B、321Cと、ノルム演算部322と、電圧ノルム比較部323とを有する。
ブロック321Aにおいては、d軸電圧指令値vdi *が自乗される。同様に、ブロック321Bにおいては、q軸電圧指令値vqi *が自乗される。ノルム演算部322は、これらの自乗値の和を電圧ノルム値Va *2として出力する。
ブロック321Cにおいては、電圧検出値Vdcの自乗値が求められる。そして、電圧ノルム比較部323は、次の表を用いて、電圧位相制御へ移行を要求するか否かを判断する。そして、電圧ノルム比較部323は、この要求の有無を示す信号Svを出力する。
電圧ノルム値Va *2が、電圧検出値Vdcの自乗値の半分の値である基準ノルム値「Vdc 2/2」を下回る場合には、電圧ノルム比較部323は、電圧位相制御への移行を要求しない。一方、電圧ノルム値Va *2が基準ノルム値以上である場合には、電圧ノルム比較部323は、電圧位相制御への移行を要求する。
ここで、電圧位相制御への移行要求の判定条件について説明する。電流ベクトル制御が行われている場合には、電圧指令値に基づいて定まる電圧ノルム値Va *2は、目標トルクT*に応じて変化する。しかしながら、電流ベクトル制御においてモータ200へ印加される電圧の電圧ノルム値Va *2は、インバータ45へ供給される電圧検出値Vdcの大きさに依存し、その上限値は基準ノルム値である。
そこで、電圧ノルム値Va *2が、基準ノルム値を下回る場合には、電流ベクトル制御を適切に行えると判断され、電圧位相制御への移行は要求されない。電圧ノルム値Va *2が、基準ノルム値以上である場合には、電流ベクトル制御を適切に行えないおそれがあると判断され、電圧位相制御への移行が要求される。
以下では、上述の構成により、電圧位相制御から電流ベクトル制御への切り替えが行われる場合に、モータ200のトルクの変化が抑制される点について、図4及び図5を用いて説明する。
図4は、電圧供給装置100の要部の概略構成図である。この図においては、電圧位相制御部20以外の構成については、要部のみが示されている。
電圧位相制御部20内において、第1トルク推定器25Aは、電流ベクトル制御部10内にて算出されるd軸電流指令値id *、及び、q軸電流指令値iq *に基づいて、規範トルク指令値Tref *を算出する。第2トルク推定器25Bは、モータ200における実際の電流値であるd軸電流値id、及び、q軸電流値iqに基づいて、推定トルクTestを算出する。
表1に示したように、d軸電流値idがd軸電流指令値id *を上回った場合に、電圧位相制御から電流ベクトル制御への切り替えが要求される。したがって、電圧位相制御から電流ベクトル制御に切り替わるタイミングでは、d軸電流指令値id *は、d軸電流値idと一致する。
また、PI演算器27によって、規範トルク指令値Tref *と、推定トルクTestとが一致するように制御されている。したがって、規範トルク指令値Tref *と、推定トルクTestとは等しくなる。そのため、電圧位相制御から電流ベクトル制御に切り替わるタイミングにおいては、規範トルク指令値Tref *と推定トルクTestとが等しいので、d軸電流値idはd軸電流指令値id *と等しくなる。
第1トルク推定器25A、及び、第2トルク推定器25Bにおいては、d軸の電流値、及び、q軸の電流値が入力されると、トルクが推定される。また、これらのトルクの算出に用いるテーブルは同じである。そして、推定結果である規範トルク指令値Tref *と推定トルクTestとが等しくなるように制御されており、かつ、入力の一方であるd軸電流値idとd軸電流指令値id *とが等しい。そのため、入力の他方であるq軸電流指令値iq *とq軸電流値iqとは等しくなる。
したがって、電圧位相制御から電流ベクトル制御に切り替わるタイミングでは、d軸及びq軸において、実際の電流値と電流指令値とが一致する。そのため、モータ200のトルクの変化を抑制することができる。
図5は、比較のために用いる、電圧供給装置100の要部の概略構成図である。この図における電圧供給装置100は、図4に示された電圧供給装置100の要部と比較すると、第1トルク推定器25Aが削除されており、目標トルクT*が減算器26へ入力される点が異なる。
PI演算器27によって、目標トルクT*と、推定トルクTestとが一致するように制御されている。また、上述のように、電圧位相制御から電流ベクトル制御に切り替わるタイミングでは、d軸電流値idはd軸電流指令値id *と一致する。
ここで、第2トルク推定器25Bにおいてトルクの推定に用いるテーブルが実際のモータ200の状態を適切に示している場合には、推定トルクTestは、実際のトルクと概ね一致する。そのため、d軸電流指令値id *とd軸電流値idとが一致すれば、q軸電流指令値iq *は、実際のq軸電流値iqと概ね等しい。
そして、電圧位相制御から電流ベクトル制御に切り替えられた後には、d軸電流指令値id *、及び、q軸電流指令値iq *を用いた制御となる。上述のように、d軸及びq軸ともに、電流指令値は実際の電流値と概ね等しいため、切り替えタイミングにおいてモータ200のトルクは大きく変化しない。
しかしながら、第2トルク推定器25Bにおけるテーブルが実際のモータ200の状態を適切に示していない場合には、推定トルクTestは、実際のトルクからずれが生じてしまう。
切り替えタイミングにおいては、d軸電流指令値id *はd軸電流値idと一致している。しかしながら、目標トルクT*と推定トルクTestとが一致するようにフィードバック制御されていても、目標トルクT*は、実際のトルクとは異なってしまう。そのため、軸電流指令値iq *はq軸電流値iqから乖離してしまう。したがって、電圧位相制御から電流ベクトル制御に切り替わるタイミングでは、この乖離に起因して、モータ200のトルクが急激に変化するおそれがある。
このように、本実施形態においては、図4に示したような構成となることにより、電圧位相制御から電流ベクトル制御に切り替わるタイミングにおいて、モータ200のトルクの変化を抑制することができる。
なお、本実施形態においては、第1トルク推定器25A、及び、第2トルク推定器25Bにおいて、d軸電流及びq軸電流に応じてトルクを算出したが、これに限らない。さらに、モータ200の温度や、モータ200の回転速度などの、モータ200の回転状態に応じてトルクを算出してもよい。このようにすることで、トルクの推定精度を上昇するため、電圧位相制御から電流ベクトル制御への切り替えを、滑らかに行うことができる。
また、本実施形態においては、第1トルク推定器25Aと、第2トルク推定器25Bとは同じテーブルを用いて、トルクを推定したが、これに限らない。第1トルク推定器25Aと、第2トルク推定器25Bとは、概ね同じテーブルを備えていても、電圧位相制御から電流ベクトル制御への切り替えタイミングにおいて、トルクの変化を抑制することができる。
本実施形態によれば、以下の効果を得ることができる。
本発明の実施形態によれば、電流ベクトル制御部10による電流指令値算出ステップと、電圧位相制御部20による電圧指令値算出ステップと、制御モード切替部30による選択ステップと、モータ制御部40による電圧印加ステップと、が実行される。電圧指令値算出ステップは、電圧位相生成部23による位相算出ステップと、第1トルク推定器25Aによる第1推定ステップと、第2トルク推定器25Bによる第2推定ステップと、PI演算器27、及び、加算器24による電圧指令値算出ステップと、を備える。
第1推定ステップにおいては、電流指令値算出ステップにて算出される電流指令値に対して第1の推定処理が行われることで、第1トルクが推定される。第2推定ステップにおいては、モータ200に流れる実際の電流値に対して第2推定処理が行われることで、第2トルクが推定される。
例えば、d軸において、電流指令値がモータ200に流れる実際の電流値を上回る場合に、電圧位相制御から電流ベクトル制御への切り替えが行われる。そのため、この切り替えタイミングでは、d軸において、電流指令値は実際の電流値と等しくなる。
また、補正ステップが行われることにより、第1トルク推定器25Aによって電流指令値から求められたトルクと、第2トルク推定器25Bによってモータ200に流れる実際の電流値から求められたトルクとは、互いに略等しくなるように制御される。
そして、第1推定処理を行う第1トルク推定器25Aと、第2推定処理を行う第2トルク推定器25Bとに着目すれば、出力値であるトルクは略等しく、切り替え時においてはd軸における電流指令値と実際の電流値とが等しい。そのため、q軸における電流指令値と実際の電流値とが等しくなる。したがって、電圧位相制御から電流ベクトル制御に切り替えが行われる時には、d軸、及び、q軸の両方において、電流指令値が、実際の電流値と等しくなるので、トルクの急激な変化が抑制される。
また、本発明の実施形態によれば、第1推定処理を行う第1トルク推定器25Aと、第2推定処理を行う第2トルク推定器25Bとは、同一又は略等しいテーブルを備える。ここで、これらの推定値からの出力されるトルクは、PI演算器27により等しくなるように制御されている。そして、電圧位相制御から電流ベクトル制御への切り替えへのタイミングでは、これらの推定器への一方の入力であるd軸の電流指令値と測定値とは等しい。そのため、これらの推定器への他方の入力であるq軸の電流指令値と測定値とは等しくなる。したがって、d軸及びq軸において、電流指令値と実際の電流値との差分をより小さくできるので、トルクの変化を抑制することができる。
また、本発明の実施形態によれば、選択ステップにおいて、d軸においてモータにおける電流の値が電流指令値を上回る場合に、前記電流ベクトル制御の選択を行う。このようにすることにより、電圧位相制御から電流ベクトル制御への切り替えへのタイミングでは、d軸の電流指令値と測定値とは略一致する。したがって、d軸及びq軸において、電流指令値と実際の電流値との差分をより小さくできるので、トルクの変化を抑制することができる。
また、本発明の実施形態によれば、第1推定処理を行う第1トルク推定器25Aと、第2推定処理を行う第2トルク推定器25Bとにおいて、さらに、モータ200の温度や回転速度などの、モータ200の回転状態に応じて、トルクを推定する。このようにすることで、トルクの推定精度が向上するので、より正確にモータ200を制御することができる。
なお、本実施形態に示した例は、電流指令値生成方法やトルク推定の方法を限定するものではなく、どのような方法に対しても適用できるものである。そのため、異なる方法を用いたとしても、同じ効果を得ることができる。
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。また、上記実施形態は、適宜組み合わせ可能である。