以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るインバータ装置100の構成を示すブロック図である。インバータ装置100は、バッテリ200およびモータ310と接続されており、バッテリ200から供給される直流電力を3相交流電力に変換して、モータ310に出力する。
インバータ装置100は、電流検出部110、電流制御部120、三相電圧変換部130、ゲート駆動回路140、電流指令生成部150、回転位置検出部160、回転演算部161、温度検出部170、および温度推定部180を有している。
バッテリ200は、インバータ装置100の直流電圧源である。バッテリ200の直流電圧Edcは、インバータ装置100のゲート駆動回路140によって可変電圧、可変周波数の3相の交流電圧(Vu,Vv,Vw)に変換される。変換後のこれらの交流電圧は、ゲート駆動回路140とモータ310の間に接続された3相の交流出力線を介してモータ310に印加される。3相の交流出力線には、モータ310に流れる電流を検出するための電流センサ信号を出力する電流センサ111がそれぞれ取り付けられている。
モータ310は、インバータ装置100から供給される3相交流電力によって回転駆動される同期モータである。モータ310には、モータ310での誘起電圧の位相に合わせてインバータ装置100がモータ310に印加する3相交流電圧の位相を制御できるようにするため、モータ310のロータの回転位置(磁極位置)を検出する回転位置センサ320が取り付けられている。回転位置センサ320からロータの回転位置に応じて出力される回転位置センサ信号は、インバータ装置100において回転位置検出部160に入力される。回転位置検出部160は、回転位置センサ320からの回転位置センサ信号に基づいて、ロータの回転位置を演算し、その演算結果を回転位置θnとして電流検出部110、三相電圧変換部130および回転演算部161に出力する。回転演算部161は、回転位置検出部160からの回転位置θnに基づいて、モータ310の回転数を演算し、その演算結果を電流指令生成部150に出力する。
インバータ装置100において、電流指令生成部150は、モータ310の出力を制御するための電流制御機能を有している。電流指令生成部150は、インバータ装置100に接続された上位の制御装置(不図示)等から入力されるモータ駆動指示としてのトルク指令と、回転演算部161により求められたモータ310の回転数とに基づいて、モータ310に流れる電流に対するd軸電流指令値Id*およびq軸電流指令値Iq*を生成する。電流指令生成部150により生成されたこれらの電流指令値は、電流指令生成部150から電流制御部120に出力される。
電流検出部110は、電流センサ111からの電流センサ信号に基づいて、モータ310に流れる3相のモータ電流(Iu,Iv,Iw)を検出する。そして、回転位置検出部160からの回転位置θnに基づいて、これらのモータ電流の検出値をdq変換し、d軸電流検出値Id^およびq軸電流検出値Iq^を出力する。
電流制御部120は、電流検出部110から出力されたd軸電流検出値Id^およびq軸電流検出値Iq^と、電流指令生成部150から出力されたd軸電流指令値Id*およびq軸電流指令値Iq*とがそれぞれ一致するように、d軸電圧指令値Vd*およびq軸電圧指令値Vq*を出力する。
三相電圧変換部130は、回転位置検出部160からの回転位置θnに基づいて、電流制御部120から出力されたd軸電圧指令値Vd*およびq軸電圧指令値Vq*を、3相の電圧指令値に変換する。そして、変換後の電圧指令値に基づいてパルス幅変調を行うことにより、PWM信号を生成し、ゲート駆動回路140に出力する。
ゲート駆動回路140は、三相電圧変換部130からのPWM信号に基づいて、バッテリ200の直流電圧Edcを3相の交流電圧(Vu,Vv,Vw)に変換し、モータ310に出力する。これにより、バッテリ200から供給される直流電力がゲート駆動回路140により3相の交流電力に変換され、インバータ装置100からモータ310に出力される。ゲート駆動回路140は、複数のスイッチング素子を有しており、各スイッチング素子をPWM信号に応じてスイッチングさせることにより、直流電力から3相交流電力への変換を行う。
図2は、ゲート駆動回路140内の概略構成を示す図である。図2に示すように、ゲート駆動回路140は、内部にスイッチング素子Sup、Sun、Svp、Svn、SwpおよびSwnを有している。スイッチング素子Sup、SunはU相の上アームと下アームにそれぞれ対応し、スイッチング素子Svp、SvnはV相の上アームと下アームにそれぞれ対応し、スイッチング素子Swp、SwnはW相の上アームと下アームにそれぞれ対応している。各スイッチング素子には、図2に示すように、PWM信号に応じたゲート信号Gup、Gun、Gvp、Gvn、Gwp、Gwnがそれぞれ出力される。これらのゲート信号に応じて各スイッチング素子がスイッチング動作を行うことにより、バッテリ200から供給される直流電力が3相の交流電力に変換される。
以上説明したように、ゲート駆動回路140は、PWM信号に基づいて各スイッチング素子に対するゲート信号を生成することで、各スイッチング素子をオン/オフ制御し、出力電圧を調整する。これによりモータ310に流れる各相の電流は、モータ310の回転中においてはそれぞれ交流状態となり、モータ310の回転位置に応じてそれぞれ変化する。そのため、各相の電流値は、瞬時値では互いに異なるが、モータ310が駆動し続けることにより、実効値ではバランスがとれて一致する。
温度検出部170は、ゲート駆動回路140におけるスイッチング素子Sup、Sun、Svp、Svn、SwpおよびSwnのうち、いずれか少なくとも一つのスイッチング素子を検出対象スイッチング素子として、当該スイッチング素子に関する温度を検出する。たとえば、検出対象スイッチング素子の近傍に、サーミスタ等により構成された温度センサを設けることで、これを温度検出部170として用いて、検出対象スイッチング素子の近傍の温度を検出することができる。なお、検出対象スイッチング素子に関する温度を検出できるものであれば、温度検出部170の構成は上記の内容に限定されない。
温度推定部180は、温度検出部170により検出された温度と、電流検出部110により検出されたモータ電流とに基づいて、ゲート駆動回路140の各スイッチング素子の温度を推定する。具体的には、温度検出部170により検出された温度に基づいて検出対象スイッチング素子のジャンクション温度を推定すると共に、検出対象スイッチング素子のジャンクション温度の推定結果に基づいて他のスイッチング素子のジャンクション温度を推定する。こうして各スイッチング素子のジャンクション温度を推定することで、スイッチング素子の温度推定を行う。なお、温度推定部180によるスイッチング素子の温度推定方法については、後で詳しく説明する。
図3は、インバータ装置100からモータ310に出力される電流波形の一例を示す図である。モータ310がロックされていない通常状態のときには、インバータ装置100からモータ310に出力される3相のモータ電流30、31、32の波形は、図3に示すような交流波形となる。
モータ310の駆動トルクとモータ310にかかる負荷トルクとが釣り合うと、モータ310は、ロータの回転位置が変化しない状態(ロック状態)となる。たとえば、モータ310がハイブリッド車両等の電動車両の駆動用モータである場合、モータ310を搭載した車両が上り坂で停車状態から発進したり、縁石等の段差を乗り越えたりする際に、モータ310がロック状態となることがある。このようなロック状態となった場合、モータ310の電気角が変化しなくなるため、3相のモータ電流30、31、32は図3に示すように、ロック時点での電気角における電流値をそれぞれ保持した状態、つまり直流電流を流し続ける状態となる。このとき、各相間の電気角位相差は120度であるため、ロック状態において各相のモータ電流がすべて同じ値になることはない。したがって、各スイッチング素子に流れる電流もすべて同じになることはなく、各スイッチング素子のスイッチングパルス幅に応じた電流が流れる。
次に、本発明の第1の実施形態における温度推定部180によるスイッチング素子の温度推定方法について説明する。インバータ装置100において、ゲート駆動回路140は前述のように、U相、V相、W相の各相に対して、バッテリ200の正極側に接続された上アーム用のスイッチング素子Sup、Svp、Swpと、バッテリ200の負極側に接続された下アーム用のスイッチング素子Sun、Svn、Swnとを有している。これらのスイッチング素子のうち少なくとも1つ以上の近傍には、温度保護の目的で温度検出部170が配置されており、当該スイッチング素子に関する温度が検出されが、全てのスイッチング素子に対して温度検出部170が配置されているわけではない。また、温度検出部170はサーミスタ等を用いて構成されており、この温度検出部170による検出される温度は、スイッチング素子の温度そのものではない。そのため、温度検出部170の温度検出結果から全てのスイッチング素子の温度を求めるためには、温度推定部180において、各スイッチング素子の温度推定を行う必要がある。
図4は、温度検出部170が設けられたスイッチング素子の温度を推定するための温度推定部180の制御ブロック図である。図4に示す制御ブロックには、温度検出値Tthとモータ電流実効値Irmsとが入力値として入力される。温度検出値Tthは、温度検出部170により検出された当該スイッチング素子近傍の温度を表しており、モータ電流実効値Irmsは、当該スイッチング素子のスイッチング動作に応じてモータ310に流れる電流の実効値を表している。なお、モータ電流実効値Irmsは、電流検出部110により検出されたモータ310の3相のモータ電流Iu,Iv,Iwのうち、当該スイッチング素子に対応する相のモータ電流の実効値として求められる。
温度推定部180は、図4に示す制御ブロックに従って、温度検出値Tthおよびモータ電流実効値Irmsから、インバータ装置100において各スイッチング素子を冷却するために用いられる冷却水(不図示)の温度推定値Twを求める。この冷却水の温度推定値Twは、スイッチング素子が無通電状態であれば温度検出値Tthとほぼ等価となるものであり、以下の式(1)で表される。
Tw=Tth−ΔTth=Tth−f(Irms) ・・・(1)
式(1)において、ΔTthは、スイッチング素子の電流通電による冷却水温度に対する温度検出値Tthの上昇分を表している。また、f(Irms)は、図4の演算ブロック41に示した関数fのモータ電流実効値Irmsに対する関数値を表している。この関数fは、温度検出部170の取付け箇所から冷却水流路までの熱時定数を考慮して設定される。なお、関数値f(Irms)は、関数fを表す数式から演算により求めてもよいし、モータ電流実効値Irmsを引数として予め設定されたテーブルを参照することで決定してもよい。
こうして冷却水の温度推定値Twが求められたら、次に温度推定部180は、図4に示す制御ブロックに従って、冷却水の温度推定値Twおよびモータ電流実効値Irmsから、温度検出部170が設けられたスイッチング素子のジャンクション温度Tjを推定する。このジャンクション温度Tjは、以下の式(2)で表される。
Tj=ΔTth×Kth+Tw
=f(Irms)×Kth+Tth−f(Irms)
=f(Irms)×(Kth-1)+Tth ・・・(2)
式(2)において、Kthは、図4の演算ブロック42に示した関数値f(Irms)に対する係数を表しており、これは冷却水温度に対する温度検出値Tthとジャンクション温度Tjのそれぞれの温度上昇比率に応じて設定される。
図5は、冷却水温度に対する温度検出値Tthとジャンクション温度Tjのそれぞれの温度上昇の様子を示す図である。図5において、破線で示した線図70は冷却水温度を表し、実線で示した線図71、72は温度検出値Tthとジャンクション温度Tjをそれぞれ表している。図5に示すように、冷却水温度70に対する温度検出値Tthの上昇比率73とジャンクション温度Tjの上昇比率74との間には乖離がある。式(2)において係数Kthは、この上昇比率73と74の間の乖離に応じて設定される。すなわち、係数Kthは、温度検出値Tthの上昇分ΔTthに対するジャンクション温度Tjの上昇分ΔTjの比として、以下の式(3)で表される。
Kth=ΔTj/ΔTth=(Tj−Tw)/(Tth−Tw) ・・・(3)
温度検出部170による温度検出値Tthは、熱源であるスイッチング素子の温度そのものを計測して得られた値ではない。そのため、モータ電流実効値Irmsに応じた温度検出値Tthの上昇比率とジャンクション温度Tjの上昇比率との間には、図5に示したような乖離が生じる。したがって、この乖離の割合を上記の係数Kthとして定義することにより、温度推定部180において、式(2)を用いて、温度検出値Tthおよびモータ電流実効値Irmsからジャンクション温度Tjを推定することが可能となる。
以上説明したようにして、温度検出部170が設けられたスイッチング素子のジャンクション温度Tjを推定したら、次に温度推定部180は、温度検出部170が設けられていない他のスイッチング素子のジャンクション温度を推定する。この推定方法について、以下に説明する。
通電中のスイッチング素子におけるジャンクション温度の上昇は、当該スイッチング素子のジャンクション部における損失によって生じる。この損失には、電流通電による導通損失と、スイッチング時に発生するスイッチング損失とが存在し、スイッチング損失には、オフからオンに切り替える際のターンオン損失と、オンからオフに切り替える際のターンオフ損失とが含まれる。このうちスイッチング損失はスイッチング周波数に依存するものであり、一定のスイッチング周波数で動作しているときには、ジャンクション温度の上昇に対する影響はあまり生じない。したがって、ジャンクション温度の上昇においては、通電量に応じた導通損失が支配的である。
図6は、ゲート駆動回路140において各スイッチング素子に対して出力されるロック状態でのゲート信号波形の例を示す図である。ゲート駆動回路140は、三角波比較法等を用いたPWM制御によって三相電圧変換部130から出力されるPWM信号に応じて、前述のようにゲート信号Gup、Gun、Gvp、Gvn、Gwp、Gwnをスイッチング素子Sup、Sun、Svp、Svn、Swp、Swnに対してそれぞれ出力する。しかし、モータ310がロック状態である場合には、三相電圧変換部130においてPWM信号を生成する際に用いられる3相の電圧指令値が一定のままで変化しないため、本来の交流電圧ではなく直流電圧での指示値となる。その結果、ゲート駆動回路140における各ゲート信号のパルス幅は、図6の波形60〜65にそれぞれに示すように、スイッチング素子ごとに一定となる。すなわち、各スイッチング素子のオンデューティ比(通流率)は、スイッチング素子ごとに一定となる。このとき各スイッチング素子からモータ310に流れる各相のモータ電流は、いずれも直流状態となる。
以上説明したように、モータ310がロック状態のときには、各相のモータ電流が直流電流となる。このときの各相のモータ電流値の実効値は、対応するスイッチング素子のオンデューティ比(通流率)に比例する。すなわち、任意のスイッチング素子のオンデューティ比をDとすると、当該スイッチング素子に対応するモータ電流実効値Irmsとオンデューティ比Dとの間には、以下の式(4)の関係が成り立つ。
Irms∝D ・・・(4)
前述の式(2)から、スイッチング素子のジャンクション温度Tjは、温度検出部170での温度検出値Tthおよびモータ電流実効値Irmsより得られることが分かる。また式(4)から、モータ電流実効値Irmsとオンデューティ比Dとは比例関係にあることが分かる。したがって、各スイッチング素子のオンデューティ比を得ることで、温度検出部170が設けられたスイッチング素子のジャンクション温度の推定結果から、温度検出部170が設けられていない他のスイッチング素子のジャンクション温度を推定可能であることが分かる。
図7は、温度検出部170が設けられていないスイッチング素子の温度を推定するための温度推定部180の制御ブロック図である。図7に示す制御ブロックには、図4の制御ブロックで演算されたジャンクション温度Tjと、オンデューティ比D1およびD2が入力値として入力される。オンデューティ比D1は、ジャンクション温度Tjを推定したスイッチング素子、すなわち温度検出部170が設けられたスイッチング素子がオンとなる時間の割合を表し、オンデューティ比D2は、温度検出部170が設けられていない他のスイッチング素子がオンとなる時間の割合を表している。
温度推定部180は、図7に示す制御ブロックに従って、温度検出部170が設けられていない他のスイッチング素子のジャンクション温度Tj’を推定する。このジャンクション温度Tj’は、以下の式(5)で表される。
Tj’=Tj×(D1/D2) ・・・(5)
式(5)において、D1/D2は、オンデューティ比D1の大きさを基準としたオンデューティ比D2の大きさの比率(デューティ比率)を表しており、図7のデューティ比率演算部51により演算される。
たとえば、図2に示したスイッチング素子Sup、Sun、Svp、Svn、SwpおよびSwnのうち、スイッチング素子Supに温度検出部170が設けられており、この温度検出部170によりスイッチング素子Supの近傍の温度が検出されるものとする。この場合、前述の式(2)から算出されるスイッチング素子Supのジャンクション温度Tjupに基づいて、温度検出部170が設けられていない他の各スイッチング素子のジャンクション温度は、以下の式(6)〜(10)により推定することができる。
Tjun=Tjup×(Dun/Dup) ・・・(6)
Tjvp=Tjup×(Dvp/Dup) ・・・(7)
Tjvn=Tjup×(Dvn/Dup) ・・・(8)
Tjwp=Tjup×(Dwp/Dup) ・・・(9)
Tjwn=Tjup×(Dwn/Dup) ・・・(10)
式(6)〜(10)において、Tjun、Tjvp、Tjvn、Tjwp、Tjwnはスイッチング素子Sun、Svp、Svn、Swp、Swnのジャンクション温度をそれぞれ表しており、Dun、Dvp、Dvn、Dwp、Dwnはスイッチング素子Sun、Svp、Svn、Swp、Swnのオンデューティ比をそれぞれ表している。また、これらの式で共通に用いられるDupは、温度検出部170が設けられているスイッチング素子Supのオンデューティ比を表している。
以上説明したようにして、温度推定部180は、温度検出部170が設けられたスイッチング素子のジャンクション温度Tjの推定結果と、当該スイッチング素子および温度検出部170が設けられていな他のスイッチング素子のオンデューティ比とに基づいて、当該他のスイッチング素子のジャンクション温度を推定することができる。
以上説明した本発明の第1の実施形態によれば、インバータ装置100は、バッテリ200から供給される直流電力を交流電力に変換するための複数のスイッチング素子Sup、Sun、Svp、Svn、SwpおよびSwnを有し、交流電力をモータ310に出力するゲート駆動回路140と、ゲート駆動回路140の複数のスイッチング素子のうちいずれか少なくとも一つの検出対象スイッチング素子に関する温度を検出する温度検出部170と、検出対象スイッチング素子のスイッチング動作に応じてモータ310に流れる電流を検出する電流検出部110と、温度推定部180とを備える。温度推定部180は、温度検出部170により検出された温度検出値Tthと、電流検出部110により検出された電流の実効値Irmsとに基づいて、検出対象スイッチング素子の温度Tjを推定すると共に、この検出対象スイッチング素子の温度Tjの推定結果と、検出対象スイッチング素子および他のスイッチング素子のオンデューティ比D1、D2とに基づいて、他のスイッチング素子の温度Tj’を推定する。このようにしたので、全ての相の電流検出結果を必要とせずに、各スイッチング素子の温度を推定することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。本実施形態では、各スイッチング素子の温度推定結果を基に、電流制限を行う例について説明する。
図8は、本発明の第2の実施形態に係るインバータ装置100の構成を示すブロック図である。本実施形態において、インバータ装置100は、図1に示した第1の実施形態のものと比べて、制限係数算出部80および電流指令制限部81をさらに備える点が異なっている。
制限係数算出部80は、温度推定部180により推定された各スイッチング素子の温度に基づいて、各スイッチング素子に流れる電流を制限するための制限係数を算出する。ここでは、各スイッチング素子の中でジャンクション温度が最高温度に達するスイッチング素子を特定し、そのジャンクション温度がスイッチング素子の破損温度に至らないように、ジャンクション温度に応じた制限係数Tjcoefを求め、電流指令制限部81に出力する。
電流指令制限部81は、制限係数算出部80により算出された制限係数Tjcoefを用いて、インバータ装置100からモータ310に出力される電流を制限するための電流制限を行う。ここでは、電流指令生成部150により生成されたd軸電流指令値Id*およびq軸電流指令値Iq*に対して、制限係数算出部80からの制限係数Tjcoefをそれぞれ乗算することにより、電流制限後のd軸電流指令値Id1*およびq軸電流指令値Iq1*を算出する。これにより、ジャンクション温度が最高温度に達するスイッチング素子の温度に応じて、電流指令値を制限する。
電流指令制限部81により算出された電流制限後のd軸電流指令値Id1*およびq軸電流指令値Iq1*は、電流制御部120に出力される。電流制御部120は、d軸電流指令値Id*およびq軸電流指令値Iq*の代わりに、この電流制限後のd軸電流指令値Id1*およびq軸電流指令値Iq1*を用いて、三相電圧変換部130に対する電圧指令値を出力する。すなわち、電流検出部110からのd軸電流検出値Id^およびq軸電流検出値Iq^と、電流指令制限部81からの電流制限後のd軸電流指令値Id1*およびq軸電流指令値Iq1*とがそれぞれ一致するように、d軸電圧指令値Vd*およびq軸電圧指令値Vq*を出力する。
図9は、制限係数算出部80により各スイッチング素子の中でジャンクション温度が最高温度に達するスイッチング素子を特定する際に行われる処理の一例を示すフローチャートである。
ステップS10において、制限係数算出部80は、スイッチング素子Supのジャンクション温度Tjupを最大ジャンクション温度Tjmaxとして設定する。次のステップS20において、制限係数算出部80は、ステップS10で設定した最大ジャンクション温度Tjmaxがスイッチング素子Sunのジャンクション温度Tjun以上であるか否かを判定する。その結果、TjmaxがTjun未満であれば、制限係数算出部80は処理をステップS30に進め、ステップS30においてTjmax=Tjunとした後、ステップS40に進む。一方、TjmaxがTjun以上であれば、制限係数算出部80はステップS30を実行せずに、処理をステップS40に進める。
ステップS40において、制限係数算出部80は、最大ジャンクション温度Tjmaxがスイッチング素子Svpのジャンクション温度Tjvp以上であるか否かを判定する。その結果、TjmaxがTjvp未満であれば、制限係数算出部80は処理をステップS50に進め、ステップS50においてTjmax=Tjvpとした後、ステップS60に進む。一方、TjmaxがTjvp以上であれば、制限係数算出部80はステップS50を実行せずに、処理をステップS60に進める。
ステップS60において、制限係数算出部80は、最大ジャンクション温度Tjmaxがスイッチング素子Svnのジャンクション温度Tjvn以上であるか否かを判定する。その結果、TjmaxがTjvn未満であれば、制限係数算出部80は処理をステップS70に進め、ステップS70においてTjmax=Tjvnとした後、ステップS80に進む。一方、TjmaxがTjvn以上であれば、制限係数算出部80はステップS70を実行せずに、処理をステップS80に進める。
ステップS80において、制限係数算出部80は、最大ジャンクション温度Tjmaxがスイッチング素子Swpのジャンクション温度Tjwp以上であるか否かを判定する。その結果、TjmaxがTjwp未満であれば、制限係数算出部80は処理をステップS90に進め、ステップS90においてTjmax=Tjwpとした後、ステップS100に進む。一方、TjmaxがTjwp以上であれば、制限係数算出部80はステップS90を実行せずに、処理をステップS100に進める。
ステップS100において、制限係数算出部80は、最大ジャンクション温度Tjmaxがスイッチング素子Swnのジャンクション温度Tjwn以上であるか否かを判定する。その結果、TjmaxがTjwn未満であれば、制限係数算出部80は処理をステップS110に進め、ステップS110においてTjmax=Tjwnとした後、処理を終了する。一方、TjmaxがTjwn以上であれば、制限係数算出部80はステップS70を実行せずに、処理を終了する。
以上説明したような処理により、制限係数算出部80は、各スイッチング素子の中でジャンクション温度が最高温度に達するスイッチング素子を特定し、そのスイッチング素子のジャンクション温度を最大ジャンクション温度Tjmaxとして設定することができる。なお、これ以外の処理方法を用いて、各スイッチング素子の中でジャンクション温度が最高温度に達するスイッチング素子を特定してもよい。
図10は、制限係数算出部80における最大ジャンクション温度Tjmaxと制限係数Tjcoefの関係を示す図である。図10では、最大ジャンクション温度Tjmaxの値を横軸にとり、制限係数Tjcoefの値を縦軸にとって、これらの関係を線図190により表している。
下記の式(11)の関係が成り立つ場合、すなわち最大ジャンクション温度Tjmaxの値が所定の下限閾値Tlim_min以下である場合は、各スイッチング素子にそのまま電流を流し続けてもジャンクション温度が破損温度に至るおそれがなく、電流を制限する必要がないと判断できる。そのため、この場合は図10の線図190に示すように、制限係数Tjcoefの値を100%とすることで、電流制限が行われないようにする。
Tjmax≦Tlim_min ・・・(11)
一方、下記の式(12)の関係が成り立つ場合、すなわち最大ジャンクション温度Tjmaxの値が下限閾値Tlim_minと所定の上限閾値Tlim_maxの間にある場合は、各スイッチング素子に電流を流しすぎるとジャンクション温度が破損温度に至るおそれがあり、温度に応じて電流を制限する必要があると判断できる。そのため、この場合は図10の線図190に示すように、最大ジャンクション温度Tjmaxの値に応じて、制限係数Tjcoefの値を100%から0%の間とすることで、温度に応じた電流制限が行われるようにする。
Tlim_min<Tjmax<Tlim_max ・・・(12)
また、下記の式(13)の関係が成り立つ場合、すなわち最大ジャンクション温度Tjmaxの値が上限閾値Tlim_min異常である場合は、各スイッチング素子にこれ以上電流を流し続けるとジャンクション温度が破損温度に至るおそれがあり、電流を遮断する必要があると判断できる。そのため、この場合は図10の線図190に示すように、制限係数Tjcoefの値を0%とすることで、各スイッチング素子に電流が流れないように制限する。
Tjmax≧Tlim_max ・・・(13)
制限係数算出部80は、以上説明したようにして、最大ジャンクション温度Tjmaxに応じた制限係数Tjcoefを算出することができる。
電流指令制限部81は、以下の式(14)、(15)により、d軸電流指令値Id*およびq軸電流指令値Iq*に対して、制限係数Tjcoefに応じた電流制限後のd軸電流指令値Id1*およびq軸電流指令値Iq1*をそれぞれ算出する。これにより、最大ジャンクション温度Tjmaxに応じた電流制限を行うことができる。
Id1*=Id*×Tjcoef ・・・(14)
Iq1*=Iq*×Tjcoef ・・・(15)
以上説明した本発明の第2の実施形態によれば、インバータ装置100は、制限係数算出部80および電流指令制限部81をさらに備える。制限係数算出部80は、温度推定部180により推定された検出対象スイッチング素子の温度Tjおよび他のスイッチング素子の温度Tj’に基づいて、複数のスイッチング素子Sup、Sun、Svp、Svn、SwpおよびSwnの中で最高温度に達するスイッチング素子を特定し、当該スイッチング素子の温度を最大ジャンクション温度Tjmaxとして、制限係数Tjcoefを求める。電流指令制限部81は、この制限係数Tjcoefを用いて電流制限を行うことにより、最大ジャンクション温度Tjmaxに応じて、電流指令生成部150により生成されたモータ310に流れる電流に対する電流指令値を制限する。このようにしたので、各スイッチング素子を過剰な温度上昇から適切に保護することができる。
なお、以上説明した第2の実施形態において、電流指令制限部81は、モータ310がロック状態であるときには、上記のようにして電流指令値の制限を行う一方で、モータ310がロック状態でないときには、電流指令生成部150からのd軸電流指令値Id*およびq軸電流指令値Iq*をそのまま電流制御部120に出力することで、電流指令値の制限を行わないようにしてもよい。さらにこの場合、制限係数算出部80は、モータ310がロック状態でないときには制限係数Tjcoefを算出しなくてもよい。このようにすれば、モータ310がロック状態でないときには電流制限を不要として、処理負荷の軽減を図ることができる。
以上説明した各実施形態や各種の変化例はあくまで一例であり、発明の特徴が損なわれない限り、本発明はこれらの内容に限定されない。本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。