以下、本発明の実施形態を図面に基づいて説明する。
《第1実施形態》
図1は、発明の実施形態に係るインバータ制御装置を含む車両の概要を示すブロック図である。以下、本例のインバータ制御装置をシリーズ型のハイブリッド車両に提供した例を挙げて説明するが、本例のインバータ制御装置は、例えばエンジン及びモータを駆動源とするパラレル型のハイブリッド車両にも適用可能である。
図1に示すように、本例のインバータ制御装置を含む車両は、エンジン1と、発電機モータ2と、発電機インバータ3と、バッテリ4と、駆動機インバータ5と、駆動機モータ6と、減速機7と、駆動輪8と、エンジンコントローラ10と、発電機コントローラ20と、バッテリコントローラ30と、駆動機コントローラ40と、システムコントローラ100とを備えている。
エンジン(内燃機関)1は、ガソリン、軽油その他の燃料を燃焼させてエネルギを出力軸に出力し、エンジンコントローラ10からの制御信号に基づいて、スロットルバルブのバルブ開度や燃料噴射バルブの燃料噴射量等を制御して駆動する。またエンジン1は、発電のための駆動力を発電機モータ2に伝達する。発電機モータ2は、エンジン1の出力軸に連結され、エンジン1により駆動される。また発電機モータ2はエンジン1の始動時にエンジン1をクランキングしたり、また発電機モータ2の駆動力を利用してエンジン1を力行回転させることで電力を消費させたりする。
発電機インバータ3は、IGBT等のスイッチング素子を複数備え、発電機コントローラ20からのスイッチング信号により当該スイッチング素子のオン及びオフを切り替えることで、発電機モータ2から出力される交流電力を直流電力に変換し、または直流電力から交流電力に逆変換する変換回路である。発電機インバータ3は、バッテリ4及び駆動機インバータ5に接続されている。また発電機インバータ3には、電流センサが設けられて、電流センサなどの検出値は発電機コントローラ20に出力される。バッテリ4は、発電機インバータ3と駆動機インバータ5との間に接続され、駆動機インバータ5に電力を供給し、発電機インバータ3からの電力により充電される二次電池である。駆動機インバータ5は、発電機インバータ3あるいはバッテリ4から出力される直流電力を交流電力に変換して、駆動機モータ6に当該交流電力を出力する変換回路である。駆動機インバータ5は、駆動機コントローラ40の制御信号に基づき制御される。また駆動機インバータ5には、電流センサが設けられて、電流センサなどの検出値は駆動機コントローラ40に出力される。
駆動機モータ6は、駆動機インバータ5からの交流電力により駆動し、車両を駆動する駆動源である。また駆動機モータ6には、回転角センサが接続され、当該回転角センサの検出値は駆動機コントローラ40に出力される。駆動機モータ6の出力軸は、減速機7及び左右のドライブシャフトを介して、左右の駆動輪8に連結されている。また駆動機モータ6は、駆動輪8の回転により、回生駆動力を発生させることで、エネルギを回生する。
エンジンコントローラ10は、システムコントローラ100から送信されるエンジントルク指令値及びエンジン1に設けられた空燃比センサ(図示しない)、酸素センサ(図示しない)の検出値、温度センサ等に基づいて、スロットルバルブのバルブ開度や燃料噴射バルブの燃料噴射量、点火時期等を設定して、エンジン1を制御することで、指令値のトルクをエンジン1から出力させるためのコントローラである。発電機コントローラ20は、システムコントローラ100から送信される発電機回転数指令値及び発電機インバータ3に設けられている電流センサの検出値に基づいて、発電機インバータ3に含まれるスイッチング素子のスイッチング信号を設定して、発電機インバータ3を制御することで、指令値の回転数を実現するためのコントローラである。なお、発電機コントローラ20の詳細な構成は後述する。
バッテリコントローラ30は、バッテリ4の電圧を検出する電圧センサ、バッテリ4の電流を検出する電流センサ等の検出値から、バッテリ4の充電状態(SOC:State of Charge)を計測する。またバッテリコントローラ30は、バッテリ4の温度、バッテリ4の内部抵抗及びSOCに応じて、バッテリ4の放電可能な電力及び充電可能な電力を演算し、システムコントローラ100へ出力する。駆動機コントローラ40は、システムコントローラ100から指令される駆動トルク及び駆動機モータ6に設けられる電流センサの検出値や回転数に基づいて、駆動インバータ5を制御し、指令値のトルクを実現するためのコントローラである。
システムコントローラ100は、運転者のアクセルペダルの操作量に応じてアクセル開度、車速及び勾配などの車両状態、バッテリ4のSOC、バッテリ4の充放電可能電力、発電機モータ2の発電電力等に応じて、運転者の要求に応じてトルクを出力させるための駆動トルクを、駆動機コントローラ40を介して、駆動機モータ6に指令する。また、システムコントローラ100は、車両状態及びバッテリの状態に応じて、バッテリ4の充電又は駆動機モータ6の駆動のために、発電機モータ2の目標発電電力を演算して、発電機コントローラ20に送信する。さらに、当該目標発電電力を実現するために、エンジン1のエンジントルク指令値及び発電機モータ2の回転数指令値を演算し、エンジンコントローラ10及び発電機コントローラ20に送信する。これにより、システムコントローラ100は、車両の運転状態及びバッテリ4の状態に応じて、車両の駆動系の効率を最適化しつつ、エンジン1、発電機モータ2及び駆動機モータ6を制御する。
次に、図2を用いて、発電機コントローラ20の構成について説明する。図2は発電機モータ2、発電機インバータ3及び発電機コントローラ20のブロック図である。発電機コントローラ20は、回転数制御器21、電流指令値演算器22、電流制御器23、非干渉化制御器24、二相三相電圧変換器25、回転数演算器26及び三相二相変換器27を有している。
回転数制御器21は、回転数演算器23から出力される回転数検出値(ω
G)を、システムコントローラ100から出力される発電機モータ2の回転数指令値(ω
G *)に一致させるように、発電機モータ2のトルク指令値(T
*)を演算するPID制御器である。回転数制御器21は、回転数指令値(ω
G *)及び回転数検出値(ω
G)を入力として、以下の式(1)によりトルク指令値(T
*)を演算し、電流指令値演算器22に出力する。
ただし、K
pは比例ゲインを、K
Iは積分ゲインを、K
Dは微分ゲインを、T
Dは近似微分の時定数を、sはラプラス演算子を、ω
Gは回転数検出値を、ω
G *は回転数指令値を示す。回転数指令値(ω
G *)は、上記のとおり、システムコントローラ100により、本例のハイブリッド車両の状態から、発電機モータ2で発電すべきと判断された場合に、発電機モータ2の目標発電電力に応じて設定される指令値である。
電流指令値演算器22は、トルク指令値(T*)、バッテリ4の電圧(Vdc)、及び、発電機モータ2の角周波数を示す回転数検出値(ωG)を入力して、発電機モータ2のdq軸電流指令値(Id*、Iq*)を演算し、電流制御器23に出力する。電流指令値演算部22には、トルク指令値(T*)、回転数検出値(ωG)、電圧(Vdc)を指標として、dq軸電流指令値(Id*、Iq*)を出力するためのマップが格納されている。当該マップは、トルク指令値(T*)、回転数検出値(ωG)及び電圧(Vdc)の入力に対して、発電機モータ2の損失及び発電機インバータ3の損失を最小限に抑える最適な指令値を出力するよう対応づけられている。そして、電流指令値演算器22は、当該マップを参照して、dq軸電流指令値(Id*、Iq*)を演算する。
また電流指令値演算器22には、トルク指令値(T*)、バッテリ4の電圧(Vdc)及び回転数検出値(ωG)の他に、電流センサ29の検出値に基づくdq軸電流(Id、Iq)及びバッテリ4の充放電可能電力(Pin、Pout)が入力され、電流指令値演算器22は、発電機モータ2の発電電力の脈動を消費させるためのdq軸電流指令値を演算する。なお、当該dq軸電流指令値を演算するための、電流指令値演算器22の具体的な構成及び制御は後述する。
電流制御器23は、dq軸電流指令値(Id
*、Iq
*)及びdq軸電流(Id、Iq)を入力として、以下の式(2)を用いて、制御演算を行い、dq軸電圧指令値(vd
*、vq
*)を出力する。
ただし、K
pd、K
pqは比例ゲインを、K
id、K
iqは積分ゲインを示す。
非干渉化制御器24は、発電機モータ2のd軸及びq軸に電流が流れた際に、発生する干渉電圧を打ち消すためのdq軸非干渉電圧(v
ddcpl、v
qdcpl)を演算する。発電機モータ2に用いられるIMPモータの電圧方程式は、dq座標で表すと、一般的に以下の式(3)で表される。
ただし、L
dはd軸インダクタンスを、L
qはq軸インダクタンスを、R
aは発電機モータ2の巻線抵抗を、ω
reは電気角速度を、φ
aは磁束密度を、pは微分演算子を示す。
式(3)を各成分に分けてラプラス変換して変形すると、次式で表される。
ただし、電流応答モデルGpはそれぞれ次式で表される。
式(3)に示されるように、dq軸間で干渉しあう速度起電力があり、これを打ち消すために非干渉制御器24は、以下の式(6)で表される非干渉電圧(v
ddcpl、v
qdcpl)を演算する。
電流制御器23及び非干渉制御器24の出力側には減算器が設けられ、当該減算器において、電圧指令値(vd
*、vq
*)から式(6)で示される非干渉電圧(v
ddcpl、v
qdcpl)を減算することで、式(4)の干渉項が打ち消され、dq軸電流は、以下の式(7)で表される。
二相三相電圧変換器25は、dq軸電圧指令値(vd
*、vq
*)及び磁極位置検出器52の検出値θを入力として、下記の式(8)を用いて、当該回転座標系のdq軸電圧指令値(vd
*、vq
*)を固定座標系のu、v、w軸の電圧指令値(vu
*、vv
*、vw
*)に変換し、インバータ4に出力する。
三相二相電流変換器27は、3相2相変換を行う制御部であり、相電流(Iu、Iv、Iw)及び磁極位置検出器52の検出値θを入力として、固定座標系の相電流(Iu、Iv、Iw)を回転座標系の相電流(Id、Iq)に変換し、電流指令値演算器22、電流制御器23及び非干渉化制御器24に出力する。
電流センサ51は、U相及びV相にそれぞれ設けられ、相電流(Iu、Iv)を検出し、三相二相電流変換器26に出力する。w相の電流は、電流センサ51により検出されず、代わりに、三相二相電流変換器26は、入力された相電流(Iu、Iv)に基づき、w相の相電流を演算する。
磁極位置検出器52は発電機モータ2に設けられ、発電機モータ2の磁極の位置を検出する検出器であり、検出値(θ)を回転数演算器26に出力する。回転数演算器26は、磁極位置検出器9の検出値(θ)からモータ8の角周波数である回転数検出値(ωG)を演算し、回転数制御器21及び電流指令値演算器22に出力する。
そして、当該相電流(Id、Iq)が電流制御器23に入力されることにより、本例のインバータ制御装置は所定のゲインの電流制御ループによる制御を行う。また発電機インバータ3は、電流制御ループによる制御の下、入力された電圧指令値(V* u、V* v、V* w)に基づき、スイッチング素子のオン及びオフを切り替えるPWM制御信号を生成し、当該PWM制御信号に基づいて、スイッチング素子を動作させて、電力を変換する。
次に、図3を用いて、電流指令値演算器22の構成を説明する。図3は、電流指令値演算器22のブロック図である。電流指令値演算器22は、電流振幅演算器221、電流調整量演算器222、dq軸電流指令値算出マップ223、タイミング信号生成器224及びスイッチSW1、SW2を有している。
電流振幅演算器221は、三相二相電流変換器27から出力されたdq軸電流(Id、Iq)の振幅を、以下の式(9)を用いて演算し、演算された電流振幅(ΔI
an)を電流調整量演算器222に出力する。
ただし、max(I)はIの最大値を、min(I)はIの最小値を示す。
エンジン10のトルクが周期的に変動する場合には、エンジンのトルクに脈動が発生する。発電機モータ2は、エンジン10の駆動力により回転されて発電するため、エンジンの出力トルクに脈動成分が含まれている場合には、発電機モータ2の発電電力がエンジントルクの脈動による影響を受けて、発電機モータ2の発電電力に脈動が発生する。そして、発電機モータ2の発電電力の脈動は、発電機モータ2のdq軸電流の振幅として表れる。
そのため、dq軸電流が脈動した場合に、電流振幅演算器221で演算される電流振幅(ΔIan)は、脈動の振幅に対応しており、電流振幅演算器221は、dq軸電流の脈動の振幅を演算することになる。また、電流振幅(ΔIan)は、dq軸電流指令値(Id*、Iq*)の調整幅になる。
電流調整量演算器222は、バッテリ4の入出力可能電力と、電流振幅演算器221で演算された電流振幅(ΔI
an)とに基づいて、dq軸電流指令値(Id
*、Iq
*)の調整幅を設定する。本例ではdq軸電流の脈動成分を発電機モータ2の損失として消費させるために、電流指令値演算器22においてトルク指令値(T
*)等に基づき演算されたdq軸電流指令値(Id
*、Iq
*)を調整して、意図的に発電機モータ2で損失が発生するように制御する。この際、発電機モータ2の損失は可能な限り小さい方が好ましいため、電流調整量演算器222は、以下の式(10)で表される条件の下、発電機モータ2の損失を小さくするよう、電流振幅演算器221で演算された調整幅を変更する。
ただし、Pinはバッテリ4の入力可能電力を、Poutはバッテリ4の出力可能電力を示す。バッテリ4の入出力可能電力(Pin、Pout)はバッテリコントローラ15で管理されている。
電流振幅演算器221で演算された電流振幅(ΔIan)が、バッテリ4の入出力可能電力に対応する入出力電流より大きい場合には、dq軸電流の脈動の電力がバッテリ4の充放電電力として消費される消費電力より大きくなるため、消費できない脈動の電力分を、発電機モータ2の消費電力とする。そのため、電流振幅演算器222は、電流振幅(ΔIan)からバッテリ4の入出力可能電力に対応する入出力電流を差し引いた差分の電流を、電流調整量(ΔIa*)に設定する。
一方、電流振幅(ΔIan)が、バッテリ4の入出力可能電力に対応する入出力電流以下である場合には、dq軸電流の脈動の電力を、バッテリ4の充放電電力として消費することできるため、電流調整量(ΔIa*)をゼロに設定する。これにより、dq軸電流指令値(Id*、Iq*)の調整幅が変更される、
dq軸電流指令値算出マップ223は、上記のとおり、トルク指令値(T*)、バッテリ4の電圧(Vdc)及び回転数検出値(ωG)に基づき、演算された発電機モータ2のdq軸電流指令値(Id*、Iq*)を、モータトルク及び電流損失量とdq軸電流との関係を示すマップ上で、調整して、電流調整量(ΔIa*)を含んだdq軸電流指令値(Id*、Iq*)を演算する。
図4は、dq軸電流(Id、Iq)上における、定トルク線及び定電流損失線の関係を示すグラフである。定トルク線について、トルク線の同一線上では同一のトルクが保たれており、T*で示される矢印の向きにトルクが大きくなる。また定電流損失線について、損失線の同一線上では電流損失は保たれており、ΔIa*で示される矢印の向きに電流損失が大きくなる。電流損失は、発電機モータ2で消費される電力に相当する。図4に示すマップは、dq軸電流指令値算出マップ223に予め格納されている。
dq軸電流指令値算出マップ223は、外部から入力されるトルク指令値(T*)等に基づき、電流調整前のdq軸電流指令値(Id1 *、Iq1 *)を演算する。また、dq軸電流指令値算出マップ223は、演算したdq軸電流指令値を、図4のマップ上で調整して、同一トルクのdq軸電流指令値(Id*、Iq*)を演算する。dq軸電流指令値マップ223は、まず電流調整前のdq軸電流指令値(Id1 *、Iq1 *)の位置を図4のマップ上で特定する。次に、特定された位置を通る定トルク線上で、電流損失が大きくなる方向に、電流調整量(ΔIa*)分、指令値を移動させる。そして、移動後の、dq軸電流指令値(Id2 *、Iq2 *)が、電力の脈動を発電機モータ2で消費させるための指令値となる。これにより、dq軸電流指令値算出マップ223は、dq軸電流指令値(Id1 *、Iq1 *)に基づく発電機モータ2のトルクを一定にしつつ、dq軸電流指令値(Id1 *、Iq1 *)を調整してdq軸電流指令値(Id2 *、Iq2 *)を演算する。
SW1は、タイミング信号生成器224から送信される切替信号(T_flg)に基づき、電流調整量ΔIa=0を満たす場合のd軸電流指令値(Id1 *)と電流調整量ΔIa=ΔIa *を満たす場合のd軸電流指令値(Id2 *)とを切り替えるスイッチである。SW2は、タイミング信号生成器224から送信されるパルス信号(T_flg)に基づき、電流調整量ΔIa=0を満たす場合のq軸電流指令値(Iq1 *)と電流調整量ΔIa=ΔIa *を満たす場合のq軸電流指令値(Id2 *)とを切り替えるスイッチである。
タイミング信号生成器224は、回転数検出値(ωG)に基づき、脈動のタイミングを特定し、特定されたタイミングで同期させつつSW1、SW2を切り替えるパルス信号(T_flg)をSW1、SW2にそれぞれ送信する。
次に、図5を用いて、駆動機コントローラ40の構成について説明する。図5は駆動機モータ6、駆動機インバータ5及び駆動機コントローラ40のブロック図である。駆動機コントローラ40は、電流指令値演算器42、電流制御器43、非干渉化制御器44、二相三相電圧変換器45、三相二相変換器47を有している。
電流指令値演算器42は、トルク指令値(T*)、dq軸電流指令値(Id’、Iq’)、発電機モータ2の回転数検出値(ωG)、バッテリ4の充電可能電力(Pin)、バッテリ4の放電可能電力(Pout)、バッテリ4の電圧(Vdc)及びバッテリ4の電流(Idc)を入力して、駆動機モータ6のdq軸電流指令値(Id*’、Iq*’)を演算し、電流制御器43に出力する。なお、dq軸電流指令値(Id*’、Iq*’)を演算するための、電流指令値演算器42の具体的な構成及び制御は後述する。
電流制御器43は、dq軸電流指令値(Id
*’、Iq
*’)及びdq軸電流(Id’、Iq’)を入力として、以下の式(11)を用いて、制御演算を行い、dq軸電圧指令値(vd
*’、vq
*’)を出力する。
ただし、K
pd、K
pqは比例ゲインを、K
id、K
iqは積分ゲインを示す。
非干渉化制御器44は、非干渉制御器24と同様に、dq軸電流(Id’、Iq’)を入力として、非干渉電圧を演算し、電流制御器43及び非干渉化制御器44の出力側に設けられた減算器に出力する。
二相三相電圧変換器45は、dq軸電圧指令値(vd*’、vq*’)及び磁極位置検出器52の検出値θを入力として、二相三相電圧変換器25と同様に、当該回転座標変換をし、電圧指令値(vu*’、vv*’、vw*’)をインバータ6に出力する。
三相二相電流変換器47は、3相2相変換を行う制御部であり、相電流(Iu’、Iv’、Iw’)及び磁極位置検出器54の検出値θを入力として、固定座標系の相電流(Iu’、Iv’、Iw’)を回転座標系の相電流(Id’、Iq’)に変換し、電流指令値演算器42、電流制御器43及び非干渉化制御器44に出力する。
電流センサ53は、U相及びV相にそれぞれ設けられ、相電流(Iu’、Iv’)を検出し、三相二相電流変換器46に出力する。磁極位置検出器54は駆動機モータ6に設けられ、駆動機モータ6の磁極の位置を検出する検出器であり、検出値(θ)を二相三相電圧変換器45及び三相二相電流変換器47に送信する。
次に、図6を用いて、電流指令値演算器42の構成を説明する。図6は、電流指令値演算器42のブロック図である。電流指令値演算器42は、電流振幅演算器421、電流調整量演算器422、dq軸電流指令値算出マップ423、タイミング信号生成器424及びスイッチSW3、SW4を有している。
電流振幅演算器421は、バッテリ電流(Idc)の振幅を、以下の式(12)を用いて演算し、演算された電流振幅(ΔI
an’)を電流調整量演算器422に出力する。なお、バッテリ電流(Idc)は、バッテリ4に接続された電流センサ(図示しない)より検出する。
ただし、max(I)はIの最大値を、min(I)はIの最小値を示す。
バッテリ4の電流が脈動した場合に、電流振幅演算器421で演算される電流振幅(ΔIan’)は、脈動の振幅に対応しており、電流振幅演算器421は、バッテリ電流の脈動の振幅を演算することになる。また、電流振幅(ΔIan’)は、dq軸電流指令値(Id*’、Iq*’)の調整幅になる。
電流調整量演算器422は、バッテリ4の入出力可能電力と、電流振幅演算器421で演算された電流振幅(ΔI
an’)とに基づいて、dq軸電流指令値(Id
*’、Iq
*’)の調整幅を設定する。本例では発電機モータ2で消費できる最大電力を越える電力の脈動成分を駆動機モータ6の損失として消費させるために、トルク指令値(T
*’)等に基づき演算されたdq軸電流指令値(Id
*’、Iq
*’)を調整して、意図的に駆動機モータ6で損失が発生するように制御する。この際、駆動機モータ6の損失は可能な限り小さい方が好ましいため、電流調整量演算器422は、以下の式(13)で表される条件の下、駆動機モータ6の損失を小さくするよう、電流振幅演算器421で演算された電流振幅(ΔI
an’)を変更する。
dq軸電流指令値算出マップ423は、外部から入力されるトルク指令値(T*)等に基づき、電流調整前のdq軸電流指令値(Id1 *’、Iq1 *’)を演算する。dq軸電流指令値算出マップ423は、図4のマップと同様な、モータトルク及び電流損失量とdq軸電流との関係を示すマップ上で、駆動機モータ6のdq軸電流指令値(Id1 *’、Iq1 *’)を調整して、電流調整量(ΔIa*)を含んだdq軸電流指令値(Id2 *’、Iq2 *’)を演算する。
そして、dq軸電流指令値算出マップ423は、式(13)より、電流調整量ΔIa’=0を満たす場合の、dq軸電流指令値(Id1 *’、Iq1 *’)を演算し、電流調整量ΔIa’=ΔIa *’を満たす場合の、dq軸電流指令値(Id2 *’、Iq2 *’)を演算する。
SW3は、タイミング信号生成器424から送信される切替信号(T_flg)に基づき、電流調整量ΔIa=0を満たす場合のd軸電流指令値(Id1 *’)と電流調整量ΔIa=ΔIa *を満たす場合のd軸電流指令値(Id2 *’)とを切り替えるスイッチである。SW4は、タイミング信号生成器424から送信されるパルス信号(T_flg)に基づき、電流調整量ΔIa=0を満たす場合のq軸電流指令値(Iq1 *’)と電流調整量ΔIa=ΔIa *’を満たす場合のq軸電流指令値(Id2 *’)とを切り替えるスイッチである。
タイミング信号生成器424は、回転数検出値(ωG)に基づき、脈動のタイミングを特定し、特定されたタイミングで同期させつつSW3、SW4を切り替えるパルス信号(T_flg)をSW3、SW4にそれぞれ送信する。
次に、電流指令値演算器22の制御について、説明する。エンジン10のトルクが脈動すると、図7に示すように、発電機モータ2のdq軸電流が脈動する。図7は、時間に対する、発電機モータ2のdq軸電流の特性を示すグラフである。
まず、電流指令値演算器22は、電流振幅演算器221により式(9)を用いて、脈動の振幅に相当する電流振幅(ΔIan)を演算し、当該電流振幅(ΔIan)を、dq軸電流指令値の調整幅に設定する。図8を用いて、dq軸電流指令値(Id*、Iq*)と調整幅(ΔIan)との関係を説明する。dq軸電流指令値(Id*、Iq*)は、発電機モータ2の損失をできるだけ小さくしつつ、トルク指令値(T*)により指令されたトルクを出力するために、演算された指令値である。そのため、dq軸電流指令値(Id*、Iq*)は、発電機モータ2の損失を抑えた、可能な限り小さい指令値に設定されている(図8のA1に相当)。
そして、A1を通る定トルク線は、図8のTAで表される。この定トルク線上で、指令値を設定すれば、A1の指令値におけるトルクと同じトルクが出力される。その一方で、A1以外の指令値では発電機モータ2の損失が大きくなる。そのため、A1の指令値に対して、脈動の大きさに相当するdq軸電流の変動幅の2乗平均値(ΔIan)分、大きくした指令値が設定される。そして、指令値の変更に伴う、トルク変動を防ぐために、定トルク線(TA)上であるA2の指令値に設定する。調整幅(ΔIan)分の電力は、発電機モータ2の損失として、発電機モータ2で消費される。これにより、電流指令値演算器22は、トルク指令値(T*)基づき演算されたdq軸電流指令値を調整して、発電機モータ2の電力の脈動を発電機モータ2で消費させるdq軸電流指令値を演算する。
また、電流指令値演算器22は、電流調整量演算器222により式(10)を用いて、dq軸電流指令値の調整幅を変更する。図9を用いて、dq軸電流指令値(Id*、Iq*)と電流調整量(ΔIa*)との関係を説明する。なお、図9に示す例では、電流振幅演算器221で演算された電流振幅(ΔIan)が、バッテリ4の入出力可能電力に対応する入出力電流より大きい、とする(式(10)のうち、上の条件式に相当)。
図9の点B1は、発電機モータ2の損失をできるだけ小さくしつつ、トルク指令値(T*)により指令されたトルクを出力するために、演算された指令値であり、図8の点A1の指令値に相当する。そして、点B1を通る定トルク線は、図9のTB線となる。この定トルク線(TB)上で指令値が設定される。
また、式(10)より、図8で示した電流振幅(ΔIan)から、バッテリ4の充放電電力として消費される電力分を差し引いた分が、電流調整量(ΔIa*)となる。そして、定トルク線(TB)上であって、点B1の指令値に対して、電流調整量(ΔIa*)分、大きくした指令値が、調整幅の変更後の指令値として設定される(図9の点B2に相当)。これにより、dq軸電流指令値の調整幅が、図8の調整幅よりも小さくなり、発電機モータ2での電力消費を抑制することできる。
上記のように、dq軸電流指令値の調整幅が調整された場合における、発電機モータ2の発電電力の脈動と、バッテリ4の入出力可能電力及び発電機モータ2で消費させる消費電力との関係を、図10を用いて説明する。図10のグラフaが発電機モータ2の発電電力の脈動の時間特性を示し、斜線部bがバッテリ4の放電可能電力を、斜線部cがバッテリ4の充電可能電力を、斜線部dが発電機モータ2で消費させる電力を示す。図10に示すように、発電機モータ2の発電電力の脈動成分を含む電力は、バッテリ4の放電可能電力及び充電可能電力と、発電機モータ2の消費電力に分配されることで、発電機モータ2の損失を最小限に抑制しつつ、脈動を抑制することができる。
一方、電流振幅演算器221で演算された電流振幅(ΔIan)が、バッテリ4の入出力可能電力に対応する入出力電流以下である場合(式(10)のうち、下の条件式に相当)には、電流調整量(ΔIa*)がゼロになるため、dq軸電流指令値は調整されない。
タイミング信号生成器224は、回転数演算器26の回転数検出値(ωG)が基準値より高くなった時、または、回転数検出値(ωG)が基準値より低くなった時を、脈動のタイミングとして特定する。基準値は、所定の期間内で、発電機モータ2の回転数検出値の平均値に設定されている。
図11を用いて、回転数と脈動のタイミングとの関係について説明する。図11(a)は、発電機モータ2の回転数の時間特性を、(b)は、発電機モータ2の電力の時間特性を示すグラフである。なお、(a)の点線は、タイミング信号生成器224において、脈動を判定するための基準値を表している。
図11に示すように、回転数の脈動は、回転数が基準値より低くなってから高くなるまでの間で発生しており、電力の脈動は、回転数の脈動と同期するように、基準値に対する回転数の増減に同期して発生している。タイミング信号生成器224は、回転数検出値(ωG)が基準値より低くなった時を、パルス信号(T_flg)のアップトリガとして検出し、回転数検出値(ωG)が基準値より高くなった時を、パルス信号(T_flg)のダウントリガとして検出する。そして、タイミング信号生成部224は、検出したトリガでパルス信号(T_flg)を発生させて、スイッチSW1、2に送信する。すなわち、タイミング信号生成部224は、回転数検出値(ωG)と基準値とを比較することで、発電機モータ2の回転数脈動を検出し、検出した回転数脈動から、電力の脈動のタイミングを特定する。
スイッチSW1、SW2は、パルス信号がオフ状態を示す場合には、dq軸電流指令値(Id1 *、Iq1 *)を流す方に導通させて、パルス信号がオン状態を示す場合には、dq軸電流指令値(Id2 *、Iq2 *)を流す方に導通させる。これにより、電流指令値演算器22は、発電機モータ2のモータの回転数検出値(ωG)から脈動のタイミングを特定し、特定した脈動のタイミングと、dq軸電流指令値(Id1 *、Iq1 *)及びdq軸電流指令値(Id2 *、Iq2 *)を切り替えるタイミングとを同期させて、発電機インバータ3を制御する。
次に、電流指令値演算器42の制御について説明する。発電機モータ2の電力の脈動が、発電機モータ2で消費できる電力及びバッテリ4の入出力可能電力より大きい場合には、駆動機モータ6で脈動の電力を消費させるために、電流指令値演算器42は、以下の制御を行う。
電流指令値演算器42は、電流振幅演算器421により式(12)を用いて、発電機モータ2及びバッテリ4で消費できない脈動の振幅に相当するバッテリ電流(Idc)の振幅から、電流振幅(ΔIan’)を演算し、当該電流振幅(ΔIan’)をdq軸電流指令値の調整幅に設定する。図12を用いて、dq軸電流指令値(Id*’、Iq*’)と調整幅(ΔIan’)との関係を説明する。dq軸電流指令値(Id*’、Iq*’)は、トルク指令値(T*’)に応じて、駆動機モータ6の損失をできるたけ小さくするように、演算された指令値である(図12のC1に相当)。
C1を通る定トルク線は、図12のグラフTcで表される。定トルク線(Tc)上で、座標C1で示される指令値以外の指令値を設定した場合には、駆動機モータ6の出力トルクは一定に保たれるが、駆動機モータ6の損失が大きくなる。そのため、定トルク線(Tc)上において、点C1の指令値に対して電流振幅(ΔIan’)分大きくした指令値が設定される。これにより、電流指令値演算器22は、トルク指令値(T*’)基づき演算されたdq軸電流指令値を調整して、バッテリ4の電流の脈動を駆動機モータ6で消費させるdq軸電流指令値を演算する。
また、電流指令値演算器42は、電流調整量演算器422により式(13)を用いて、dq軸電流指令値の調整幅を変更する。図13を用いて、dq軸電流指令値(Id*’、Iq*’)と電流調整量(ΔIa *’)との関係を説明する。なお、図13に示す例では、電流振幅演算器421で演算された電流振幅(ΔIan’)が、バッテリ4の入出力可能電力に対応する入出力電流より大きい、とする(式(13)のうち、上の条件式に相当)。
図13の点D1で示されるdq軸電流指令値は、トルク指令値(T*’)に応じて設定される指令値であり、点C1の指令値に相当する。D1を通る定トルク線は、図13のグラフTdで表される。
式(13)により、図12で示した電流振幅(ΔIan’)から、バッテリ4の充放電電力として消費される電力分を差し引いた分が、電流調整量(ΔIa*’)となる。そして、定トルク線(TD)上であって、点D1の指令値に対して、電流調整量(ΔIa*’)分、大きくした指令値が、調整幅の変更後の指令値として設定される(図13の点D2に相当)。これにより、dq軸電流指令値の調整幅が、図12の調整幅よりも小さくなり、駆動機モータ6での電力消費を抑制することできる。
上記のように、dq軸電流指令値の調整幅が調整された場合における、発電機モータ2の発電電力の脈動と、バッテリ4の入出力可能電力、発電機モータ2で消費させる消費電力及び駆動機モータ6で消費させる消費電力との関係を、図14を用いて説明する。図14のグラフaが発電機モータ2の発電電力の脈動の時間特性を示し、斜線部bがバッテリ4の放電可能電力を、斜線部cがバッテリ4の充電可能電力を、斜線部dが駆動機モータ6で消費させる電力を、斜線部eが発電機モータ2で消費させる電力を示す。図14に示すように、発電機モータ2の発電電力の脈動成分を含む電力は、バッテリ4の放電可能電力及び充電可能電力と、発電機モータ2の消費電力と、駆動機モータ6の消費電力に分配されることで、発電機モータ2及び駆動機モータ6の損失を最小限に抑制しつつ、脈動を抑制することができる。
一方、電流振幅演算器421で演算された電流振幅(ΔIan’)が、バッテリ4の入出力可能電力に対応する入出力電流以下である場合(式(13)のうち、下の条件式に相当)には、電流調整量(ΔIa*’)がゼロになるため、dq軸電流指令値は調整されない。
タイミング信号生成器424は、タイミング信号生成器224と同様に、回転数検出値(ωG)に基づき、脈動のタイミングとして特定し、特定したタイミングに応じて、パルス信号(T_flg)を発生させて、スイッチSW3、4に送信する。
タイミング信号生成器424のよる脈動のタイミングの特定制御及びスイッチSW3、4の切替制御は、タイミング信号生成器224による特定制御と同様であるため、説明を省略する。
スイッチSW3、SW4は、スイッチSW1、SW2と同様に、パルス信号(T_flg)により、d軸電流指令値(Id1 *’)若しくはd軸電流指令値(Id2 *’)を切り替え、又は、q軸電流指令値(Iq1 *’)若しくはd軸電流指令値(Iq2 *’)を切り替える。これにより、電流指令値演算器42は、発電機モータ2のモータの回転数検出値(ωG)から脈動のタイミングを特定し、特定した脈動のタイミングと、dq軸電流指令値(Id1 *’、Iq1 *’)及びdq軸電流指令値(Id2 *’、Iq2 *’)を切り替えるタイミングとを同期させて、駆動機インバータ5を制御する。
図15に、時間に対する、発電機モータ2の回転数の特性及び発電電力の特性を示す。発電電力の特性のうち、グラフaは本例の特性を、グラフbは比較例の特性を示す。比較例は、本例とは異なり、脈動成分を抑制する制御を行っていない。
図15の点線で示す矢印は、脈動のタイミングを示している。本例では、脈動のタイミングと同期して、発電電力のピーク値が、比較例の発電電力のピーク値より下がっている。これにより、上記の制御を行うことで、脈動のタイミングと同期して、発電機モータ2の電力の脈動が抑制されていることが確認できる。
上記のように、本例は、発電機モータ2のトルク指令値に基づいて、発電機インバータ3を制御するdq軸電流指令値を演算し、かつ、当該dq軸電流指令値を調整して、発電機モータ2の電力の脈動を、発電機モータ2又は駆動機モータ6で消費させるdq軸電流指令値を演算する。また本例は、駆動機モータ6のトルク指令値に基づいて、駆動機インバータ5を制御するdq軸電流指令値を演算し、かつ、当該dq軸電流指令値を調整して、発電機モータ2の電力の脈動を、駆動機モータ6で消費させるdq軸電流指令値を演算する。これにより、エンジン1のトルクの脈動により発生した、発電機モータ2の脈動を発電機モータ2又は駆動機モータ6で消費させることで、電力の脈動を抑制することができる。
ところで、本例と異なり、エンジンの出力軸に発生するトルク変動(トルク脈動)を抑制するために、出力軸にトルクを付与するモータジェネレータを結合し、エンジンの出力トルクと慣性トルクに応じて出力軸が発生する脈動補償トルクを演算し、脈動補償トルクが得られるようにモータジェネレータを制御するハイブリッド原動機のトルク変動制御装置が知られている。
上記のトルク変動制御装置では、エンジンの回転数が高い場合には、モータジェネレータの応答遅れによって、モータジェネレータの出力トルクがエンジンのトルク脈動に追従することできない、という問題があった。また、エンジンのトルクの脈動がモータジェネレータにより発生可能な最大トルクより大きい場合には、モータジェネレータで抑制することができず、モータジェネレータの回転軸に回転数脈動が発生し、発電電力の脈動が生じる、という問題があった。そして、かかる発電電力の脈動は、平滑コンデンサ又はバッテリの電流の増減が大きくなり、熱膨張や収縮が加速するという問題もある。
本例では、エンジン1のトルク脈動により発生する発電電力の脈動を、発電機モータ2又は駆動機モータ6の損失として消費させるため、発電電力の脈動を抑制することができる。また、エンジン10のトルクの脈動が、発電機モータ2又は駆動機モータ6の最大トルクより大きい場合でも、発電機モータ2又は駆動機モータ6の損失で、脈動の電力を消費させるため、脈動成分を低減させることができる。その結果として、発電機インバータ3、バッテリ4又は駆動機インバータ5に対して、脈動により加わる負荷を低減させることができる。
また本例は、発電機モータ2又は駆動機モータ6の出力トルクを一定にしつつ、トルク指令値に基づくdq軸電流指令値を調整して、脈動を消費させるdq軸電流指令値を演算する。これにより、発電機モータ2又は駆動機モータ6で脈動を消費した際の、トルク変動を抑制することができる。また、脈動を検出した後に、検出した脈動に応じて指令値を制御した場合には、検出遅れ又は通信遅れが指令値の制御に影響するが、本例では、このような検出遅れ又は通信遅れがないため、脈動の抑制効果を高めることができる。
また本例は、タイミング信号生成器224、424により、脈動のタイミングを特定し、特定されたタイミングと、トルク指令に基づくdq軸電流指令値及び脈動を消費させるためのdq軸電流指令値を切り替えるタイミングとを同期させて、発電機インバータ3又は駆動機インバータ5を制御する。これにより、電力の脈動成分のみを抑制することができる。
また本例は、磁極位置検出器52の検出値に基づく発電機モータ2の回転数脈動から、脈動のタイミングを特定する。エンジンの間欠燃焼によって発生する脈動は、発電機モータ2の回転数の脈動として表れるため、発電機モータ2の回転数を検出して、回転数脈動のタイミングとSW1〜4の切替のタイミングとを同期させることで、電力の脈動成分のみを発電機モータ2又は駆動機モータ6で消費させるように、制御することができる。また、本例は、脈動のタイミングを周期的に特定した上で、SW1〜4の切替のタイミングを設定しているため、エンジン回転数が高い場合でも、脈動のタイミングに対して指令値の切り替え制御を追随させることができる。
また本例は、電流センサ51の検出電流(Id、Iq)の脈動の振幅に応じて、脈動を消費させるためのdq軸電流指令値を演算する。これにより、電流のフィードバック制御により、指令値の調整幅を演算して、指令値を調整するため、脈動の抑制効果を高めることができる。
また本例は、バッテリ4の充電可能電力又は放電可能電力に応じて、脈動を消費させるためのdq軸電流指令値を演算する。これにより、バッテリ4の充放電が可能な場合には、バッテリ4で脈動の電力を消費させることで、発電機モータ2又は駆動機モータ6の損失を抑制することができる。
また本例は、発電機モータ2の電力の脈動を駆動機モータ6で消費させるよう、dq軸電流指令値(Id*’、Iq*’)を演算する。これにより、発電機モータ2の電力の脈動を、発電機モータ2だけではなく、駆動機モータ6でも消費させることができるため、発電機モータ2駆動機モータ6のいずれか一方のモータに対して、損失が集中して加わることを防ぐことができる。
また本例は、発電機モータ2の電力の脈動のうち、発電機モータ2で消費可能電電力を越える電力の脈動を、駆動機モータ6で消費させるdq軸電流指令値を演算する。これにより、発電機モータ2で消費できない脈動成分を、駆動機モータ6で消費させることができるため、電力の脈動を抑制することができる。
なお、タイミング信号生成部224において、回転数検出値(ωG)と比較される基準値は必ずしも回転数検出値(ωG)の平均値である必要はない。タイミング信号生成部224は、例えば、回転数検出値(ωG)の平均値より高い所定の値を基準値に設定し、回転数検出値(ωG)が当該基準値より高くなった時を脈動のタイミングとして特定してもよい。
なお、本例では、発電機モータ2の電力の脈動のうち、発電機モータ2で消費できない電力の脈動を、バッテリ4の充放電電力として消費させたが、発電機モータ2で消費できない電力の脈動を、バッテリ4の消費を介さずに、駆動機モータ6で消費するように制御してもよい。
すなわち、電流調整量演算器222は、式(10)を用いた、dq軸電流指令値(Id*、Iq*)の調整幅の変更の代わりに、電流振幅(ΔIan)と、発電機モータ2の消費可能電力と対応する消費可能電流値とを比較し、電流振幅(ΔIan)が当該消費可能電流値より大きい場合には、電流調整量(ΔIa*)を消費可能電流値に制限する。そして、消費可能電流値を越える脈動は、駆動インバータ5の入力電流となるため、電流振幅演算器421は、当該入力電流の振幅を演算することで、電流振幅(ΔIan’)を演算する。電流指令値演算器42は、電流振幅演算器421で演算された電流振幅(ΔIan’)分、dq軸電流指令値(Id*’、Iq*’)を調整して、駆動機モータ6で損失が発生するように駆動機インバータ5を制御する。
図16に、発電機モータ2で消費させる消費電力及び駆動機モータ6で消費させる消費電力の関係を示す。図16のグラフaが発電機モータ2の発電電力の脈動の時間特性を示し、斜線部bが駆動機モータ6で消費させる電力を、斜線部cが発電機モータ2で消費させる電力を示す。図16に示すように、発電機モータ2の発電電力の脈動成分を含む電力は発電機モータ2の消費電力及び駆動機モータ6の消費電力に分配されることで、ダイレクト配電時にも、発電電力の脈動成分を駆動機モータ6の損失として消費させることができ、脈動を抑制することができる。
なお、本例では、dq電流指令値を調整することで、脈動の電力を発電機モータ2又は駆動機モータ6で消費させたが、電圧指令値又はトルク指令値を調整することで、発電機モータ2又は駆動機モータ6を制御する指令値を調整して、脈動の電力を発電機モータ2又は駆動機モータ6で消費させてもよい。
上記の発電機モータ2又は駆動機モータ6が本発明の「モータ」に相当し、発電機インバータ3又は駆動機インバータ5が本発明の「インバータ」に、発電機コントローラ20又は駆動コントローラ40が本発明の「制御手段」に、電流指令値演算器22、42が本発明の「指令値演算手段」に、タイミング信号生成器224、424が「脈動特定手段」に、磁極位置検出器52が本発明の「回転数センサ」に相当する。
《第2実施形態》
本発明の他の実施形態に係るインバータ制御装置について説明する。本例では上述した第1実施形態に対して、トルク指令値に基づいて、脈動のタイミングを特定している点が異なる。これ以外の構成は上述した第1実施形態と同じであるため、その記載を適宜、援用する。
タイミング信号生成器224は、システムコントローラ100から発電機コントローラ20に入力されるトルク指令値(T*)が基準値より高くなった時、または、トルク指令値が基準値より低くなった時を、脈動のタイミングとして特定する。基準値は、所定の期間内のトルク指令値の平均値に設定されている。
図17を用いて、トルク指令値と脈動とのタイミングについて説明する。図17(a)はトルク指令値の時間特性を、(b)は発電機モータ2の電力の時間特性を示すグラフである。なお、(a)の点線は、タイミング信号生成器224において、脈動を判定するための基準値を表している。
図17に示すように、電力の脈動は、指令値が基準値より高くなってから低くなるまでの期間と同期するように、発生している。そのため、本例はトルク指令値(T*)に基づいて、発電機モータ2の電力の脈動のタイミングを特定し、特定されたタイミングと、指令値を切り替えるタイミングとを同期させて、発電機インバータ3を制御する。
タイミング信号生成器224は、トルク指令値(T*)が基準値より高くなった時を、パルス信号(T_flg)のアップトリガとして検出し、トルク指令値(T*)が基準値より高くなった時を、パルス信号(T_flg)のダウントリガとして検出する。そして、タイミング信号生成部224は、検出したトリガでパルス信号(T_flg)を発生させて、スイッチSW1、2に送信する。これにより、タイミング信号生成部224は、トルク指令値(T*)と基準値とを比較することで、発電機モータ2の回転数脈動を検出し、検出した回転数脈動から、電力の脈動のタイミングを特定する。スイッチSW1、2のスイッチング制御は、第1実施形態に係るスイッチSW1、2の制御と同様であるため説明を省略する。
上記のとおり、本例は、トルク指令値(T*)から、脈動のタイミングを特定する。発電機モータ2は、回転数脈動を抑制するよう回転数制御され、発電機モータ2のトルク指令値は、当該回転数制御に基づいて設定されている。そのため、発電機モータ2の回転数脈動とトルク指令値の脈動は同期しており、トルク指令値(T*)に基づく脈動のタイミングとSW1、2の切替のタイミングとを同期させることで、電力の脈動成分のみを発電機モータ2で消費させるように、制御することができる。
なお、タイミング信号生成器224において、トルク指令値(T*)と比較される基準値は必ずしも平均値である必要はない。タイミング信号生成部224は、例えば、トルク指令値(T*)の平均値より高い所定の値を基準値に設定し、トルク指令値(T*)が当該基準値より高くなった時または低くなった時を脈動のタイミングとして特定してもよい。
また本例において、タイミング信号生成器424は、タイミング信号生成器224と同様に、駆動機モータ6のトルク指令値(T*’)から脈動のタイミングを特定してもよい。
また本例において、タイミング信号生成器224、424は、エンジン1の燃焼サイクルから脈動のタイミングを特定してもよい。発電機モータ2の電力の脈動は、主にエンジン1の間欠燃焼により発生するため、エンジン1の燃料サイクルと電力の脈動のタイミングとの間には相関性がある。そして、燃料サイクルは、エンジンコントローラ10により管理されているため、タイミング信号生成器224、424は、エンジンコントローラ10で管理されている燃焼サイクルから、電力の脈動のタイミングを特定し、SW1〜SW4を制御する。これにより、本例は、電力の脈動成分のみを発電機モータ2又は駆動機モータ6で消費させるように、制御することができる。