(57)【要約】【課題】モータの電力の脈動を抑制するインバータ制御装置を提供する。【解決手段】エンジン１及びモータを備えたハイブリッド車両を制御するインバータ制御装置であって、モータに接続されたインバータと、インバータを制御する制御手段とを有し、制御手段は、ハイブリッド車両の状態に応じて設定されたモータのトルク指令値に基づいて、インバータを制御する第１指令値を演算し、かつ、第１指令値を調整して、少なくともモータの誘起電圧の大きさに応じたモータの損失に基づいて、エンジンのトルクの脈動により発生するモータの電力の脈動をモータで消費させる第２指令値を演算する指令値演算手段を有する。【選択図】  図１
2014096920.tif 000002
【特許請求の範囲】
【請求項１】
エンジン及びモータを備えたハイブリッド車両を制御するインバータ制御装置であって、
前記モータに接続されたインバータと、
前記インバータを制御する制御手段とを有し、
前記制御手段は、
前記ハイブリッド車両の状態に応じて設定された前記モータのトルク指令値に基づいて、前記インバータを制御する第１指令値を演算し、かつ、
前記第１指令値を調整して、少なくとも前記モータの誘起電圧の大きさに応じた前記モータの損失に基づいて、前記エンジンのトルクの脈動により発生する前記モータの電力の脈動を前記モータで消費させる第２指令値を演算する指令値演算手段を有する
ことを特徴とするインバータ制御装置。
【請求項２】
請求項１記載のインバータ制御装置であって、
前記指令値演算手段は、
前記トルク指令値に対して、前記モータを効率よく動作させる前記第１指令値の関係を示したマップを有し、
前記マップを参照し、前記第１指令値の位相である基本位相に対して遅角させて前記第２指令値を演算する
ことを特徴とするインバータ制御装置。
【請求項３】
請求項２記載のインバータ制御装置であって、
前記指令値演算手段は、
前記モータの電力の脈動を演算する電力演算手段を有し、
前記基本位相は、前記電力演算手段により演算された電力の脈動が極小値をとるタイミングと対応して、設定されている
ことを特徴とするインバータ制御装置。
【請求項４】
請求項１〜３のいずれか一項に記載のインバータ制御装置であって、
前記指令値演算手段は、
前記モータの電力の脈動の大きさに応じて、前記第２指令値を演算する
ことを特徴とするインバータ制御装置。
【請求項５】
請求項１〜４のいずれか一項に記載のインバータ制御装置であって、
前記指令値演算手段は、
前記モータの回転数に応じて、前記第２指令値を補正する
ことを特徴とするインバータ制御装置。
【請求項６】
請求項１〜５のいずれか一項に記載のインバータ制御装置であって、
前記モータは、前記エンジンにより駆動される発電機を有し、
前記制御手段は、
前記発電機の電力の脈動を前記発電機で消費させる前記第２指令値を演算する
ことを特徴とするインバータ制御装置。
【請求項７】
請求項６に記載のインバータ制御装置であって、
前記モータは、
前記インバータ制御装置を搭載した車両の駆動軸に連結された駆動機をさらに有し、
前記制御手段は、
前記発電機の電力の脈動を前記駆動機で消費させる前記第２指令値を演算する
ことを特徴とするインバータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インバータ制御装置に関するものである。
【背景技術】
【０００２】
発電用の内燃エンジンにより駆動される発電機又はバッテリから車両駆動用の電動モータへ電力供給するようにしたハイブリッド車において、アクセルペダル操作に対する所要モータ出力を表しかつ内燃エンジンの運転状態に応じて変化する特性に従って、指令モータ出力を決定し、斯く決定した指令モータ出力に従って電力供給を制御し、車両の運転状態に適合するモータ駆動電流を演算する際に、モータ出力値をエンジン運転の有無に応じて変化させて、発電のためのエンジン運転時に発電機からモータに印加される電圧とエンジン運転停止時にバッテリからモータに印加される電圧との相違を補償するものが知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−３２８５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、発電のためのエンジン運転時に、エンジンのトルクの脈動により、発電機の電力に脈動が発生した場合には、発生した脈動成分を抑制することができない、という問題があった。
【０００５】
本発明が解決しようとする課題は、モータの電力の脈動を抑制するインバータ制御装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、モータのトルク指令値に基づいて演算された第１指令値を調整して、少なくともモータの誘起電圧の大きさに応じたモータの損失に基づいて、エンジンのトルクの脈動により発生するモータの電力の脈動をモータで消費させる第２指令値を演算し、インバータを制御することによって上記課題を解決する。
【発明の効果】
【０００７】
本発明によれば、エンジンのトルクの脈動により、モータの電力に脈動が発生する場合には、脈動成分をモータで消費させるため、モータの電力の脈動を抑制することができる、という効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るインバータ制御装置を備えた車両のブロック図である。
【図２】図１の発電機モータ、発電機インバータ及び発電機コントローラのブロック図である。
【図３】図２の電流指令値演算器のブロック図である。
【図４】図２のｄｑ軸電流指令値演算器に格納されているマップを説明するためのグラフである。
【図５】図１の駆動機モータ、駆動機インバータ及び駆動機コントローラのブロック図である。
【図６】図５の電流指令値演算器のブロック図である。
【図７】図１の発電機モータの電力特性を示すグラフである。
【図８】ｄｑ軸電流の座標系において、調整前後のｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を説明するためのグラフであって、比較例を説明するための図である。
【図９】ｄｑ軸電流の座標系において、調整前後のｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を説明するためのグラフであって、本発明を説明するため図である。
【図１０】図１の発電機モータにおいて、ｄ軸電流に対する損失の特性を示すグラフである。
【図１１】図２の電流指令値演算部の制御フローを示すフローチャートである。
【図１２】（ａ）は発電機モータの回転数の特性を示すグラフであり、（ｂ）は発電機モータの発電電力の特性を示すグラフであり、（ｃ）は発電機モータの損失の特性を示すグラフである。
【図１３】本発明の他の実施形態に係るインバータ制御装置において、（ａ）は発電機モータの回転数特性を示すグラフであり、（ｂ）は発電機モータの電力特性を示すグラフである。
【図１４】本発明の他の実施形態に係るインバータ制御装置において、ｄ軸電流に対する発電機モータの鉄損の特性を示すグラフである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を図面に基づいて説明する。
【００１０】
《第１実施形態》
図１は、発明の実施形態に係るインバータ制御装置を含む車両の概要を示すブロック図である。以下、本例のインバータ制御装置をシリーズ型のハイブリッド車両に提供した例を挙げて説明するが、本例のインバータ制御装置は、例えばエンジン及びモータを駆動源とするパラレル型のハイブリッド車両にも適用可能である。
【００１１】
図１に示すように、本例のインバータ制御装置を含む車両は、エンジン１と、発電機モータ２と、発電機インバータ３と、バッテリ４と、駆動機インバータ５と、駆動機モータ６と、減速機７と、駆動輪８と、エンジンコントローラ１０と、発電機コントローラ２０と、バッテリコントローラ３０と、駆動機コントローラ４０と、システムコントローラ１００とを備えている。
【００１２】
エンジン（内燃機関）１は、ガソリン、軽油その他の燃料を燃焼させてエネルギを出力軸に出力し、エンジンコントローラ１０からの制御信号に基づいて、スロットルバルブのバルブ開度や燃料噴射バルブの燃料噴射量等を制御して駆動する。またエンジン１は、発電のための駆動力を発電機モータ２に伝達する。発電機モータ２は、エンジン１の出力軸に連結され、エンジン１により駆動される。また発電機モータ２はエンジン１の始動時にエンジン１をクランキングしたり、また発電機モータ２の駆動力を利用してエンジン１を力行回転させることで電力を消費させたりする。
【００１３】
発電機インバータ３は、ＩＧＢＴ等のスイッチング素子を複数備え、発電機コントローラ２０からのスイッチング信号により当該スイッチング素子のオン及びオフを切り替えることで、発電機モータ２から出力される交流電力を直流電力に変換し、または直流電力から交流電力に逆変換する変換回路である。発電機インバータ３は、バッテリ４及び駆動機インバータ５に接続されている。また発電機インバータ３には、電流センサが設けられて、電流センサなどの検出値は発電機コントローラ２０に出力される。バッテリ４は、発電機インバータ３と駆動機インバータ５との間に接続され、駆動機インバータ５に電力を供給し、発電機インバータ３からの電力により充電される二次電池である。駆動機インバータ５は、発電機インバータ３あるいはバッテリ４から出力される直流電力を交流電力に変換して、駆動機モータ６に当該交流電力を出力する変換回路である。駆動機インバータ５は、駆動機コントローラ４０の制御信号に基づき制御される。また駆動機インバータ５には、電流センサが設けられて、電流センサなどの検出値は駆動機コントローラ４０に出力される。
【００１４】
駆動機モータ６は、車両の駆動軸に連結され、駆動機インバータ５からの交流電力により駆動する車両の駆動源である。また駆動機モータ６には、回転角センサが接続され、当該回転角センサの検出値は駆動機コントローラ４０に出力される。駆動機モータ６の出力軸は、減速機７及び左右のドライブシャフトを介して、左右の駆動輪８に連結されている。また駆動機モータ６は、駆動輪８の回転により、回生駆動力を発生させることで、エネルギを回生する。
【００１５】
エンジンコントローラ１０は、システムコントローラ１００から送信されるエンジントルク指令値及びエンジン１に設けられた空燃比センサ（図示しない）、酸素センサ（図示しない）の検出値、温度センサ等に基づいて、スロットルバルブのバルブ開度や燃料噴射バルブの燃料噴射量、点火時期等を設定して、エンジン１を制御することで、指令値のトルクをエンジン１から出力させるためのコントローラである。発電機コントローラ２０は、システムコントローラ１００から送信される発電機回転数指令値及び発電機インバータ３に設けられている電流センサの検出値に基づいて、発電機インバータ３に含まれるスイッチング素子のスイッチング信号を設定して、発電機インバータ３を制御することで、指令値の回転数を実現するためのコントローラである。なお、発電機コントローラ２０の詳細な構成は後述する。
【００１６】
バッテリコントローラ３０は、バッテリ４の電圧を検出する電圧センサ、バッテリ４の電流を検出する電流センサ等の検出値から、バッテリ４の充電状態（ＳＯＣ：Ｓｔａｔｅ  ｏｆ  Ｃｈａｒｇｅ）を計測する。またバッテリコントローラ３０は、バッテリ４の温度、バッテリ４の内部抵抗及びＳＯＣに応じて、バッテリ４の放電可能な電力及び充電可能な電力を演算し、システムコントローラ１００へ出力する。駆動機コントローラ４０は、システムコントローラ１００から指令される駆動トルク及び駆動機モータ６に設けられる電流センサの検出値や回転数に基づいて、駆動インバータ５を制御し、指令値のトルクを実現するためのコントローラである。
【００１７】
システムコントローラ１００は、運転者のアクセルペダルの操作量に応じてアクセル開度、車速及び勾配などの車両状態、バッテリ４のＳＯＣ、バッテリ４の充放電可能電力、発電機モータ２の発電電力等に応じて、運転者の要求に応じてトルクを出力させるための駆動トルクを、駆動機コントローラ４０を介して、駆動機モータ６に指令する。また、システムコントローラ１００は、車両状態及びバッテリの状態に応じて、バッテリ４の充電又は駆動機モータ６の駆動のために、発電機モータ２の目標発電電力を演算して、発電機コントローラ２０に送信する。さらに、当該目標発電電力を実現するために、エンジン１のエンジントルク指令値及び発電機モータ２の回転数指令値を演算し、エンジンコントローラ１０及び発電機コントローラ２０に送信する。これにより、システムコントローラ１００は、車両の運転状態及びバッテリ４の状態に応じて、車両の駆動系の効率を最適化しつつ、エンジン１、発電機モータ２及び駆動機モータ６を制御する。
【００１８】
次に、図２を用いて、発電機コントローラ２０の構成について説明する。図２は発電機モータ２、発電機インバータ３及び発電機コントローラ２０のブロック図である。発電機コントローラ２０は、回転数制御器２１、電流指令値演算器２２、電流制御器２３、非干渉化制御器２４、二相三相電圧変換器２５、回転数演算器２６及び三相二相変換器２７を有している。
【００１９】
回転数制御器２１は、回転数演算器２３から出力される回転数検出値（ωＧ）を、システムコントローラ１００から出力される発電機モータ２の回転数指令値（ωＧ＊）に一致させるように、発電機モータ２のトルク指令値（Ｔ＊）を演算するＰＩＤ制御器である。回転数制御器２１は、回転数指令値（ωＧ＊）及び回転数検出値（ωＧ）を入力として、以下の式（１）によりトルク指令値（Ｔ＊）を演算し、電流指令値演算器２２に出力する。
【数１】
2014096920.tif 000003
ただし、Ｋｐは比例ゲインを、ＫＩは積分ゲインを、ＫＤは微分ゲインを、ＴＤは近似微分の時定数を、ｓはラプラス演算子を、ωＧは回転数検出値を、ωＧ＊は回転数指令値を示す。回転数指令値（ωＧ＊）は、上記のとおり、システムコントローラ１００により、本例のハイブリッド車両の状態から、発電機モータ２で発電すべきと判断された場合に、発電機モータ２の目標発電電力に応じて設定される指令値である。
【００２０】
電流指令値演算器２２は、トルク指令値（Ｔ＊）、バッテリ４の電圧（Ｖｄｃ）、及び、発電機モータ２の角周波数を示す回転数検出値（ωＧ）を入力して、発電機モータ２のｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を演算し、電流制御器２３に出力する。電流指令値演算部２２には、トルク指令値（Ｔ＊）、回転数検出値（ωＧ）、電圧（Ｖｄｃ）を指標として、ｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を出力するためのマップが格納されている。当該マップは、トルク指令値（Ｔ＊）、回転数検出値（ωＧ）及び電圧（Ｖｄｃ）の入力に対して、発電機モータ２の損失及び発電機インバータ３の損失を最小限に抑える最適な指令値を出力するよう対応づけられている。そして、電流指令値演算器２２は、当該マップを参照して、ｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を演算する。
【００２１】
また電流指令値演算器２２には、トルク指令値（Ｔ＊）、バッテリ４の電圧（Ｖｄｃ）及び回転数検出値（ωＧ）の他に、電流センサ２９の検出値に基づくｄｑ軸電流（Ｉｄ、Ｉｑ）及びバッテリ４の充放電可能電力（Ｐｉｎ、Ｐｏｕｔ）が入力され、電流指令値演算器２２は、発電機モータ２の発電電力の脈動を消費させるためのｄｑ軸電流指令値を演算する。なお、当該ｄｑ軸電流指令値を演算するための、電流指令値演算器２２の具体的な構成及び制御は後述する。
【００２２】
電流制御器２３は、ｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）及びｄｑ軸電流（Ｉｄ、Ｉｑ）を入力として、以下の式（２）を用いて、制御演算を行い、ｄｑ軸電圧指令値（ｖｄ＊、ｖｑ＊）を出力する。
【数２】
2014096920.tif 000004
ただし、Ｋｐｄ、Ｋｐｑは比例ゲインを、Ｋｉｄ、Ｋｉｑは積分ゲインを示す。
【００２３】
非干渉化制御器２４は、発電機モータ２のｄ軸及びｑ軸に電流が流れた際に、発生する干渉電圧を打ち消すためのｄｑ軸非干渉電圧（ｖｄｄｃｐｌ、ｖｑｄｃｐｌ）を演算する。発電機モータ２に用いられるＩＭＰモータの電圧方程式は、ｄｑ座標で表すと、一般的に以下の式（３）で表される。
【数３】
2014096920.tif 000005
ただし、Ｌｄはｄ軸インダクタンスを、Ｌｑはｑ軸インダクタンスを、Ｒａは発電機モータ２の巻線抵抗を、ωｒｅは電気角速度を、φａは磁束密度を、ｐは微分演算子を示す。
【００２４】
式（３）を各成分に分けてラプラス変換して変形すると、次式で表される。
【数４】
2014096920.tif 000006
【００２５】
ただし、電流応答モデルＧｐはそれぞれ次式で表される。
【数５】
2014096920.tif 000007
【００２６】
式（３）に示されるように、ｄｑ軸間で干渉しあう速度起電力があり、これを打ち消すために非干渉制御器２４は、以下の式（６）で表される非干渉電圧（ｖｄｄｃｐｌ、ｖｑｄｃｐｌ）を演算する。
【数６】
2014096920.tif 000008
【００２７】
電流制御器２３及び非干渉制御器２４の出力側には減算器が設けられ、当該減算器において、電圧指令値（ｖｄ＊、ｖｑ＊）から式（６）で示される非干渉電圧（ｖｄｄｃｐｌ、ｖｑｄｃｐｌ）を減算することで、式（４）の干渉項が打ち消され、ｄｑ軸電流は、以下の式（７）で表される。
【数７】
2014096920.tif 000009
【００２８】
二相三相電圧変換器２５は、ｄｑ軸電圧指令値（ｖｄ＊、ｖｑ＊）及び磁極位置検出器５２の検出値θを入力として、下記の式（８）を用いて、当該回転座標系のｄｑ軸電圧指令値（ｖｄ＊、ｖｑ＊）を固定座標系のｕ、ｖ、ｗ軸の電圧指令値（ｖｕ＊、ｖｖ＊、ｖｗ＊）に変換し、インバータ４に出力する。
【数８】
2014096920.tif 000010
【００２９】
三相二相電流変換器２７は、３相２相変換を行う制御部であり、相電流（Ｉｕ、Ｉｖ、Ｉｗ）及び磁極位置検出器５２の検出値θを入力として、固定座標系の相電流（Ｉｕ、Ｉｖ、Ｉｗ）を回転座標系の相電流（Ｉｄ、Ｉｑ）に変換し、電流指令値演算器２２、電流制御器２３及び非干渉化制御器２４に出力する。
【００３０】
電流センサ５１は、Ｕ相及びＶ相にそれぞれ設けられ、相電流（Ｉｕ、Ｉｖ）を検出し、三相二相電流変換器２６に出力する。ｗ相の電流は、電流センサ５１により検出されず、代わりに、三相二相電流変換器２６は、入力された相電流（Ｉｕ、Ｉｖ）に基づき、ｗ相の相電流を演算する。
【００３１】
磁極位置検出器５２は発電機モータ２に設けられ、発電機モータ２の磁極の位置を検出する検出器であり、検出値（θ）を回転数演算器２６に出力する。回転数演算器２６は、磁極位置検出器９の検出値（θ）からモータ８の角周波数である回転数検出値（ωＧ）を演算し、回転数制御器２１及び電流指令値演算器２２に出力する。
【００３２】
そして、当該相電流（Ｉｄ、Ｉｑ）が電流制御器２３に入力されることにより、本例のインバータ制御装置は所定のゲインの電流制御ループによる制御を行う。また発電機インバータ３は、電流制御ループによる制御の下、入力された電圧指令値（ｖ＊ｕ、ｖ＊ｖ、ｖ＊ｗ）に基づき、スイッチング素子のオン及びオフを切り替えるＰＷＭ制御信号を生成し、当該ＰＷＭ制御信号に基づいて、スイッチング素子を動作させて、電力を変換する。
【００３３】
次に、図３を用いて、電流指令値演算器２２の構成を説明する。図３は、電流指令値演算器２２のブロック図である。電流指令値演算器２２は、エンジン１の脈動によって発生する発電機２の電力の脈動を、発電機モータ２の損失として消費させるために、以下の構成を有している。
【００３４】
電流指令値演算器２２は、電力演算器２２１と、電力変化率演算器２２２と、電力極小値演算器２２３と、損失増加量演算器２２４と、ｄｑ軸電流指令値演算器２２５とを有している。
【００３５】
電力演算器２２１は、三相二相電流変換器２７から出力されたｄｑ軸電流（Ｉｄ、Ｉｑ）と、最終電圧指令値（ｖ’ｄ＊＿ｚ、ｖ’ｑ＊＿ｚ）から、式（９）を用いて、発電機モータ２の電力（Ｐ）を演算する。
【数９】
2014096920.tif 000011
【００３６】
最終電圧指令値（ｖ’ｄ＊＿ｚ、ｖ’ｑ＊＿ｚ）は、直前の制御周期のタイミングで、発電機コントローラ２０で演算された電圧指令値（ｖｄ＊、ｖｑ＊）であって、電流制御器２３及び非干渉電圧制御器２４の出力に基づき演算された指令値である。
【００３７】
なお、発電機モータ２の電力（Ｐ）は、発電機インバータ３の電圧（Ｖｄｃ）と発電機インバータの直流電流（Ｉｄｃ）、又は、バッテリ４の電圧（Ｖｄｃ）と発電機インバータの直流電流（Ｉｄｃ）から、式（１０）を用いて、演算されてもよい。
【数１０】
2014096920.tif 000012
【００３８】
電力演算器２２１により演算された電力（Ｐ）は、電力変化率演算器２２２、電力極小値演算器２２３及び損失増加量演算器２２４に出力される。
【００３９】
電力変化率演算器２２２は、電力演算器２２１で演算された電力（Ｐ）から、式（１１）を用いることで、近似微分演算処理により、発電機モータ２の電力の変化率（ｄＰ）を演算し、電力極小値演算器２２３及び損失増加量演算器２２４に出力する。
【数１１】
2014096920.tif 000013
ただし、ｓはラプラス演算子を示し、τａは時定数を示す。時定数（τａ）には、応答遅れを極力小さくしつつ、適度にノイズを除去可能な値が設定されている。
【００４０】
電力極小値演算器２２３は、電力変化率から、発電機モータ２の電力の極小値を演算する演算器である。発電機モータ２がエンジン１の脈動の影響を受けると、発電機モータ２の電力が変化する。そのため、発電機モータ２の電力特性には、脈動に合わせて、減少から増加に転ずる点が表れる。電力極小値演算値２２３は、脈動により生じる電力変化の極小点を演算している。
【００４１】
まず、電力変化率演算値２２３は、電力変化率が負の値から正の値に転じた点を極小として判定するために、電力変化率（ｄＰ）が式（１２）を満たすか否かを判定する。
【数１２】
2014096920.tif 000014
ただし、ｄＰｚは前回の電力変化率を示す。
【００４２】
式（１２）を満たす場合に、電力変化率演算値２２３は、電力演算器２２１で演算された電力（Ｐ）が極小値であると、判定する。そして、電力変化率演算値２２３は極小値を判定した場合には、電力演算器２２１の電力（Ｐ）を電力極小値（Ｐｍｉｎ）として更新し、当該電力極小値（Ｐｍｉｎ）を損失増加量演算器２２４に出力する。
【００４３】
一方、式（１２）を満たさない場合には、電力変化率演算値２２３は、電力演算器２２１で演算された電力（Ｐ）を極小値として判定しない。電力演算器２２１の電力（Ｐ）が極小値でない場合には、電力変化率演算値２２３は、電力極小値（Ｐｍｉｎ）を更新せずに、前回演算した電力極小値（Ｐｍｉｎ）を損失増加量演算器２２４に出力する。
【００４４】
すなわち、電力変化率演算器２２３は、発電機モータ２の電力が極小値をとるタイミングで、電力極小値（Ｐｍｉｎ）を更新し、各極小値の間では電力極小値（Ｐｍｉｎ）を保持している。
【００４５】
損失増加量演算器２２４は、電力極小値演算器２２３により演算された電力極小値（Ｐｍｉｎ）、電力変化率演算器２２２により演算された電力変化率（ｄＰ）及びバッテリ４の入出力可能電力（Ｐｉｎ、Ｐｏｕｔ）から、損失増加量（ΔＰ＊）を演算する。損失増加量（ΔＰ＊）は、発電機モータ２の損失を最小限にする電流指令値（Ｉｄ＊、Ｉｑ＊）を調整して、エンジン１のトルク脈動により発生する発電機モータ２の電力の脈動を、発電機モータ２で消費させる電力に相当し、ｄｑ軸電流指令値の調整幅に相当する。
【００４６】
本例では、電力の脈動成分を発電機２の損失として消費させるために、電流指令値演算器２２において、トルク指令値（Ｔ＊）に基づき演算されたｄｑ軸電流指令値を調整して、意図的に発電機モータ２で損失が発生するように制御する。この際、発電機モータ２の損失は可能な限り小さい方が好ましいため、電流指令値演算器２２は、以下に説明するように、発電機モータ２の損失を抑制しつつ、脈動を消費させる指令値の調整量（損失増加量（ΔＰ＊））を演算する。
【００４７】
まず、損失増加量演算器２２４は、発電機モータ２に電力脈動が発生しているか否かを判定するために、電力変化率（ｄＰ）を用いて判定する。まず、損失増加量演算器２２４は、ローパスフィルタ（ＬＰＦ）を用いて、電力変化率の絶対値（｜ｄＰ｜）から
電力変化率判定値（ｄＰ_ｊｄｇ）を演算する。ローパスフィルタは、電力変化率の絶対値（｜ｄＰ｜）の減少時に作用する遅れフィルタであって、電力変化がない（電力変化率（ｄＰ）がゼロ）、あるいは、電力変化が小さい場合に、電力変化率をゼロに収束させるためのフィルタである。なお、ＬＰＦの時定数には、電力脈動の有無を効果的に判定できる値が予め設定されている。
【００４８】
電力変化率の絶対値（｜ｄＰ｜）が減少していない場合には、電力変化率の絶対値（｜ｄＰ｜）が、電力変化率判定値（ｄＰ_ｊｄｇ）として演算される。一方、電力変化率の絶対値（｜ｄＰ｜）が減少した場合には、電力変化率の絶対値（｜ｄＰ｜）にローパスフィルタを施した値が電力変化率判定値（ｄＰ_ｊｄｇ）として演算される。
【００４９】
そして、損失増加量演算器２２４は、電力変化率判定値（ｄＰ_ｊｄｇ）と所定の判定閾値（ｄＰ＿ｔｈ）とを比較する。電力変化率判定値（ｄＰ_ｊｄｇ）が判定閾値（ｄＰ＿ｔｈ）より大きい場合には、電力脈動が発生していると判定する。一方、電力変化率判定値（ｄＰ_ｊｄｇ）が判定閾値（ｄＰ＿ｔｈ）以下である場合には、電力脈動が発生していないと判定する。
【００５０】
判定閾値（ｄＰ＿ｔｈ）は、組み合わせるエンジン１の動作回転数と脈動周波数に応じて、設計または実験的に調整された閾値である。電流指令値演算器２２はマップにより、判定閾値（ｄＰ＿ｔｈ）を管理しており、当該マップは、エンジン動作回転数と判定閾値とを対応させてマップである。
【００５１】
電力脈動が発生している場合には、損失増加量演算器２２４は、発電機モータ２の電力（Ｐ）と電力極小値（Ｐｍｉｎ）との差分（ΔＰ０＊）を演算する。電力極小値（Ｐｍｉｎ）は、脈動する電力（Ｐ）の極小値を示している。そのため、発電機モータ２の電力（Ｐ）と電力極小値（Ｐｍｉｎ）との差分（ΔＰ０＊）が、脈動により生じる電力の大きさとなる。
【００５２】
そして、損失増加量演算器２２４は、差分（ΔＰ０＊）が、以下の式（１３）の条件を満たすか否かを判定する。
【数１３】
2014096920.tif 000015
【００５３】
ただし、Ｐｉｎはバッテリ４の入力可能電力を、Ｐｏｕｔはバッテリ４の出力可能電力を示す。バッテリ４の入出力可能電力（Ｐｉｎ、Ｐｏｕｔ）はバッテリコントローラ１５で管理されている。
【００５４】
差分（ΔＰ０＊）がバッテリ４の入出力可能電力以下である場合には、脈動する分の電力をバッテリ４の充放電電力として消費することできるため、発電機モータ２の損失を高めて、脈動する電力を発電機モータ２で消費させなくてもよいことになる。
【００５５】
一方、差分（ΔＰ０＊）がバッテリ４の入出力可能電力より大きい場合には、脈動する分の電力がバッテリ４の充放電電力として消費される消費電力より大きくなるため、消費できない脈動の電力分を、発電機モータ２の消費電力とする。
【００５６】
すなわち、損失増加量演算器２２４は、式（１３）を満たす場合には、式（１４）により、差分（ΔＰ０＊）からバッテリ４の入出力可能電力を減算して、電力の調整量（ΔＰ＊）を演算する。
【数１４】
2014096920.tif 000016
【００５７】
一方、損失増加量演算器２２４は、式（１３）を満たさない場合には、電力の調整量（ΔＰ＊）をゼロとする。
【００５８】
ｄｑ軸電流指令値演算器２２５は、上記のとおり、トルク指令値（Ｔ＊）、バッテリ４の電圧（Ｖｄｃ）及び回転数検出値（ωＧ）に基づき、演算された発電機モータ２のｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を、モータトルク及び電力損失量とｄｑ軸電流との関係を示すマップ上で、調整して、調整量（ΔＰ＊）を含んだｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を演算する。なお、調整量（ΔＰ＊）がゼロの場合には、ｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）は、マップ上において、損失を最小限にした値となる。
【００５９】
図４は、ｄｑ軸電流（Ｉｄ、Ｉｑ）上における、定トルク線及び定損失線の関係を示すグラフである。定トルク線について、トルク線の同一線上では同一のトルクが保たれており、Ｔ＊で示される矢印の向きにトルクが大きくなる。また定損失線について、損失線の同一線上では電流損失は保たれており、ΔＰ＊で示される矢印の向きに損失が大きくなる。損失は、発電機モータ２で消費される電力に相当する。図４に示すマップは、ｄｑ軸電流指令値演算器２２５に予め格納されている。
【００６０】
調整量（ΔＰ＊）がゼロである場合には、発電機モータ２の各回転数（ωＧ）に応じて、発電機モータ２の効率が最も良くなるｄｑ軸電流がマップに格納されている。
【００６１】
ここで、発電機モータ２の効率について、発電機モータ２の電流が増加すると、当該電流に依存する損失（発電機インバータ３の損失及び発電機モータ２の銅損）が大きくなり、また発電機モータ２の回転数が増加すると発電機モータ２の鉄損が大きくなる。
【００６２】
そのため、図４のマップ上で、発電機モータ２を効率よく動作させる電流指令値は、電流依存による損失を下げることに加えて、発電機モータ２の鉄損を下げるために、負のｄ軸電流を多く流すように設定されている。すなわち、調整量（ΔＰ＊）がゼロである場合には、ｄｑ軸電流指令値演算器２２５は、図４のマップ上で、発電機モータ２の高効率点となるｄｑ軸電流を、ｄｑ軸電流指令値として演算する。
【００６３】
一方、調整量（ΔＰ＊）がゼロより大きくなると、ｄｑ軸電流指令値演算器２２５は、発電機モータ２の高効率点から、発電機モータ２の誘起電圧により生じる鉄損を高めるように、ｄｑ軸電流指令値を演算する。
【００６４】
具体的には、ｄｑ軸電流指令値演算器２２５は、外部から入力されるトルク指令値（Ｔ＊）等に基づき、電流調整前のｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の位置を図４のマップ上で特定する。次に、特定された位置を通る定トルク線上で、損失が大きくなる方向に、調整量（ΔＰ＊）分、指令値を移動させる。この際、ｄｑ軸電流指令値演算器２２５は、図４のマップの定トルク線上で、ｄ軸電流を、高効率点のｄ軸電流より正側に大きくなるように、言い換えると、高効率点のｄｑ軸電流の位相を基本位相としたときに、当該基本位相よりも位相が遅れるように、指令値を移動させる。そして、移動後のｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）が、電力の脈動を発電機モータ２で消費させるための指令値となる。これにより、ｄｑ軸電流指令値演算器２２５は、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）に基づく発電機モータ２のトルクを一定にしつつ、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）を調整してｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）を演算する。
【００６５】
そして、発電機モータ２の電力の脈動により電力（Ｐ）が変動すると、電力極小値（Ｐｍｉｎ）に対する差分（ΔＰ０＊）が変動し、式（１３）、式（１４）より、調整量（ΔＰ＊）も、電力（Ｐ）と同期して変動する。さらに、電力極小値（Ｐｍｉｎ）は、発電機モータ２の電力の極小値に同期して更新される。そのため、ｄｑ軸電流指令値演算器２２５は、電力の脈動と同期してｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）を調整した上で、当該ｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）を演算することになる。これにより、本例は、当該ｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）に基づいて発電機インバータ３を制御することで、発電機モータ２の損失を抑制しつつ、脈動する分の電力を発電機モータ２に消費することができる。
【００６６】
次に、図５を用いて、駆動機コントローラ４０の構成について説明する。図５は駆動機モータ６、駆動機インバータ５及び駆動機コントローラ４０のブロック図である。駆動機コントローラ４０は、電流指令値演算器４２、電流制御器４３、非干渉化制御器４４、二相三相電圧変換器４５、三相二相変換器４７を有している。
【００６７】
電流指令値演算器４２は、トルク指令値（Ｔ＊）、ｄｑ軸電流指令値（Ｉｄ’、Ｉｑ’）、駆動機モータ６の回転数検出値（ωＮ）、バッテリ４の充電可能電力（Ｐｉｎ）、バッテリ４の放電可能電力（Ｐｏｕｔ）、バッテリ４の電圧（Ｖｄｃ）及びバッテリ４の電流（Ｉｄｃ）を入力して、駆動機モータ６のｄｑ軸電流指令値（Ｉｄ＊’、Ｉｑ＊’）を演算し、電流制御器４３に出力する。なお、ｄｑ軸電流指令値（Ｉｄ＊’、Ｉｑ＊’）を演算するための、電流指令値演算器４２の具体的な構成及び制御は後述する。
【００６８】
電流制御器４３は、ｄｑ軸電流指令値（Ｉｄ＊’、Ｉｑ＊’）及びｄｑ軸電流（Ｉｄ’、Ｉｑ’）を入力として、以下の式（１５）を用いて、制御演算を行い、ｄｑ軸電圧指令値（ｖｄ＊’、ｖｑ＊’）を出力する。
【数１５】
2014096920.tif 000017
ただし、Ｋｐｄ、Ｋｐｑは比例ゲインを、Ｋｉｄ、Ｋｉｑは積分ゲインを示す。
【００６９】
非干渉化制御器４４は、非干渉制御器２４と同様に、ｄｑ軸電流（Ｉｄ’、Ｉｑ’）を入力として、非干渉電圧を演算し、電流制御器４３及び非干渉化制御器４４の出力側に設けられた減算器に出力する。
【００７０】
二相三相電圧変換器４５は、ｄｑ軸電圧指令値（ｖｄ＊’、ｖｑ＊’）及び磁極位置検出器５２の検出値θを入力として、二相三相電圧変換器２５と同様に、当該回転座標変換をし、電圧指令値（ｖｕ＊’、ｖｖ＊’、ｖｗ＊’）をインバータ６に出力する。
【００７１】
三相二相電流変換器４７は、３相２相変換を行う制御部であり、相電流（Ｉｕ’、Ｉｖ’、Ｉｗ’）及び磁極位置検出器５４の検出値θを入力として、固定座標系の相電流（Ｉｕ’、Ｉｖ’、Ｉｗ’）を回転座標系の相電流（Ｉｄ’、Ｉｑ’）に変換し、電流指令値演算器４２、電流制御器４３及び非干渉化制御器４４に出力する。
【００７２】
電流センサ５３は、Ｕ相及びＶ相にそれぞれ設けられ、相電流（Ｉｕ’、Ｉｖ’）を検出し、三相二相電流変換器４６に出力する。磁極位置検出器５４は駆動機モータ６に設けられ、駆動機モータ６の磁極の位置を検出する検出器であり、検出値（θ）を二相三相電圧変換器４５及び三相二相電流変換器４７に送信する。
【００７３】
次に、図６を用いて、電流指令値演算器４２の構成を説明する。図６は、電流指令値演算器４２のブロック図である。電流指令値演算器４２は、エンジン１の脈動によって発生する発電機２の脈動する分の電力のうち、発電機モータ２で消費されない電力を、駆動機モータ６で消費させる。すなわち、電流指令値演算器２２は、バッテリ４の入出力電力の脈動成分を、駆動機モータ６の損失として消費させるよう、電流指令値を演算する。
【００７４】
電流指令値演算器４２は、電力演算器４２１と、電力変化率演算器４２２と、電力極小値演算器４２３と、損失増加量演算器４２４と、ｄｑ軸電流指令値演算器４２５とを有している。
【００７５】
電力演算器４２１は、バッテリ４の電圧（Ｖｄｃ）及びバッテリ４の電流（Ｉｄｃ）から、式（１６）を用いて、バッテリ４の電力（Ｐ’）を演算し、電力変化率演算器４２２及び損失増加量演算器４２４に出力する。
【数１６】
2014096920.tif 000018
【００７６】
電力変化率演算器４２２は、電力演算器４２１で演算された電力（Ｐ’）から、式（１７）を用いて、近似微分演算処理により、バッテリ４の電力の変化率（ｄＰ’）を演算し、電力極小値演算器４２３及び損失増加量演算器４２４に出力する。
【数１７】
2014096920.tif 000019
ただし、式１１と同様に、ｓはラプラス演算子を、τａは時定数を示す。
【００７７】
電力極小値演算器４２３は、電力変化率から、バッテリ４の電力の極小値（Ｐｍｉｎ’）を演算し、損失増加量演算器４２４に出力する。電力極小値演算器４２３による極小値（Ｐｍｉｎ’）の演算は、電力極小値演算器２２３の極小値（Ｐｍｉｎ）の演算に対して、発電機モータ２の電力変化率（ｄＰ）及び前回の電力変化率（ｄＰｚ）を、バッテリ４の電力変化率（ｄＰ’）及び前回の電力変化率（ｄＰｚ’）に置きかえたものと、同様である。
【００７８】
損失増加量演算器４２４は、電力極小値演算器４２３により演算された電力極小値（Ｐｍｉｎ）、電力変化率演算器２２２により演算された電力変化率（ｄＰ’）及びバッテリ４の入出力可能電力（Ｐｉｎ、Ｐｏｕｔ）から、損失増加量（ΔＰ＊’）を演算し、ｄｑ軸電流指令値演算器４２５に出力する。
【００７９】
損失増加量演算器４２４による損失増加量（ΔＰ＊’）の演算は、損失増加量演算器２２４の損失増加量（ΔＰ＊）の演算に対して、電力変化率の絶対値（｜ｄＰ｜）電力変化率判定値（ｄＰ_ｊｄｇ）、判定閾値（ｄＰ＿ｔｈ）及び差分（ΔＰ０＊）を、電力変化率の絶対値（｜ｄＰ’｜）電力変化率判定値（ｄＰ_ｊｄｇ’）、判定閾値（ｄＰ＿ｔｈ’）及び差分（ΔＰ０＊’）に置きかえたものと、同様である。なお、判定閾値（ｄＰ＿ｔｈ’）は脈動を判定するために、予め設定されている閾値である。
【００８０】
ｄｑ軸電流指令値演算器４２５は、トルク指令値（Ｔ＊）、バッテリ４の電圧（Ｖｄｃ）及び回転数検出値（ωＭ）に基づき、演算された駆動機モータ６のｄｑ軸電流指令値（Ｉｄ＊’、Ｉｑ＊’）を、モータトルク及び電力損失量とｄｑ軸電流との関係を示すマップ上で、調整して、調整量（ΔＰ＊’）を含んだｄｑ軸電流指令値（Ｉｄ＊’、Ｉｑ＊’）を演算する。ｄｑ軸電流指令値演算器４２５には、図４と同様のマップが予め格納されている。
【００８１】
そして、ｄｑ軸電流指令値演算器４２５は、外部から入力されるトルク指令値（Ｔ＊）等に基づき、電流調整前のｄｑ軸電流指令値（Ｉｄ１＊’、Ｉｑ１＊’）の位置を、格納されたマップ上で特定する。次に、特定された位置を通る定トルク線上で、電流損失が大きくなる方向に、電流調整量（ΔＰ＊’）分、指令値を移動させる。この際、ｄｑ軸電流指令値演算器２２５は、マップの定トルク線上で、ｄ軸電流を、高効率点のｄ軸電流より正側に大きくなるように、言い換えると、高効率点のｄｑ軸電流の位相を基本位相としたときに、当該基本位相よりも位相が高くなるように、指令値を移動させる。そして、移動後の、ｄｑ軸電流指令値（Ｉｄ２＊’、Ｉｑ２＊’）が、電力の脈動を駆動機モータ６で消費させるための指令値となる。これにより、ｄｑ軸電流指令値演算器４２５は、ｄｑ軸電流指令値（Ｉｄ１＊’、Ｉｑ１＊’）に基づく発電機モータ２のトルクを一定にしつつ、ｄｑ軸電流指令値（Ｉｄ１＊’、Ｉｑ１＊’）を調整してｄｑ軸電流指令値（Ｉｄ２＊’、Ｉｑ２＊’）を演算する。
【００８２】
次に、電流指令値演算部２２の制御について、説明する。
【００８３】
エンジン１０のトルクが脈動すると、図７に示すように、発電機モータ２の電力が脈動する。図７は、時間に対する、発電機モータ２の電力特性を示すグラフである。
【００８４】
電流指令値演算器２２は、脈動する電力の極小値を判定することで、脈動する電力が極小をとるタイミングを演算により特定している。図７に示す脈動の電力では、一点鎖線で示す時間（ｔ１、ｔ２、ｔ３等）が、電力極小値演算器２２３で、極小値として特定されるタイミングである。また、電流指令値演算器２２は、電力極小値演算器２２３により、特定した極小値のタイミングで、極小値（Ｐｍｉｎ）を更新する。
【００８５】
そして、電流指令値演算器２２は、式（９）〜式（１４）を用いて、電力の調整量（ΔＰ＊）を演算する。ｄｑ軸電流指令値演算器２２５は、電力の調整量（ΔＰ＊）を用いて、ｄｑ軸電流指令値を調整する。
【００８６】
ここで、図８及び図９を用いて、調整前後のｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）について、説明する。図８は、比較例１において、ｄｑ軸電流指令値の位相を進角するよう指令値を調整した場合の、ｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を説明するためのグラフである。図９は、本例において、ｄｑ軸電流指令値の位相を遅角するよう指令値を調整した場合の、ｄｑ軸電流指令値（Ｉｄ＊、Ｉｑ＊）を説明するためのグラフである。また、図８，９に示すグラフは、図４のマップと等価関係にある。
【００８７】
図８、９において、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）は調整幅（ΔＰ＊）で調整する前の指令値であり、ｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）は調整幅（ΔＰ＊）で調整した後の指令値である。また、点線は定電流線を、一点鎖線は定電圧線を示している。
【００８８】
発電機モータ２に、埋め込み磁石同期モータ（ＩＰＭ）等のモータを用いた場合に、モータの損失には、モータのコイル等で消費する銅損（ジュール損失）に加えて、磁束が交番することにより発生する鉄損が存在する。銅損は、モータに流れる電流が大きいほど、大きくなる。鉄損は、磁束の増加に伴って、大きくなる。
【００８９】
ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）は、図４に示すマップ上で、発電機モータ２の損失を最小限にしつつ、トルク指令値（Ｔ＊）により指令されたトルクを出力するために、演算された指令値である（図８のＡ１及び図９のＢ１相当）。発電機モータ２の損失は、上記の銅損と鉄損とを加えた、発電機モータ２の総合損失である。
【００９０】
トルク指令値（Ｔ＊）対応する定トルク線上で、指令値を設定すれば、Ａ１、Ｂ１の指令値におけるトルクと同じトルクが発電機モータ２から出力される。その一方で、Ａ１、Ｂ１以外の指令値では発電機モータ２の損失が大きくなる。そこで、出力トルクを一定に保ちつつ、脈動の電力分を発電機モータ２で消費させるためには、Ａ１、Ｂ１の指令値に対して、脈動の大きさに相当する調整幅（ΔＰ＊）分、大きくした指令値を設定することになる。
【００９１】
この時、ｄｑ軸電流指令値を調整するためには、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の基本位相に対して、位相を進角させる場合（基本位相に対して左回りに位相を取った場合）と、位相を遅角させる場合（基本位相に対して右回りに位相を取った場合）が考えられる。なお、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の基本位相は、図４のマップ上で、トルク指令値等に基づいて発電機モータ２の総合損失を最小にする指令値の位相に相当する。
【００９２】
図８に示す比較例１では、調整後のｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）は、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の基本位相に対して、位相を進角させて、調整幅（ΔＰ＊）分、指令値を大きくするよう、演算する。発電器モータ２において、電流指令値を進角させて、ｄ軸電流を負側に大きくすると、図８に示すように、Ａ１を通る定電圧線は、Ａ２を通る定電圧線に下がり、誘起電圧が小さくなる。そして、誘起電圧が小さくなると、磁石の磁束が弱まり、全体の磁束が減少するため、鉄損が減少する。
【００９３】
そのため、比較例１では、調整幅（ΔＰ＊）分、指令値を大きくすることで、電流を増加させて、インバータ損失や銅損を増加させたとしても、鉄損の減少により、総合損失が減少し、調整幅（ΔＰ＊）分の電力を発電機モータ２で消費することができない。その結果として、発電機モータ２の電力の脈動を抑制することができない。
【００９４】
図９に示す本例では、調整後のｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）は、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の基本位相に対して、位相を遅角させて、調整幅（ΔＰ＊）分、指令値を大きくするよう、演算する。発電器モータ２において、電流指令値を遅角させて、ｄ軸電流を正側に大きくすると、図９に示すように、Ｂ１を通る定電圧線は、Ｂ２を通る定電圧線に上がり、誘起電圧が大きくなる。そして、誘起電圧が大きくなると、磁石の磁束が強まり、全体の磁束が増加するため、鉄損が増加する。
【００９５】
図１０を用いて、本例による指令値の調整前後の、発電機モータ２の損失について説明する。図１０は、発電機モータ２の、ｄ軸電流に対する損失特性を示すグラフである。グラフａが電流に比例する損失特性を示し、グラフｂが銅損特性を、グラフｃが鉄損特性を、グラフｄが総合損失特性を示すグラフである。
【００９６】
電流指令値演算器２２は、調整前のｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の基本位相に対して遅角させて、指令値を調整幅（ΔＰ＊）分、大きくすることで、調整後のｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）を演算する。調整前のｄ軸電流指令値（Ｉｄ１＊）は、正側に大きくなり、ｄ軸電流指令値（Ｉｄ２＊）となる。
【００９７】
銅損は、調整前のよりも調整後の方が大きくなっている。また、鉄損について、グラフｂに示すように、鉄損特性は、ｄ軸電流指令値（Ｉｄ１＊）より正側では、増加特性を示している。そのため、鉄損は、電流指令値の位相を、基本位相より遅角させることで、増加させることができる。そして、発電機モータ２の総合損失は、調整前のよりも調整後の方が大きくなっている。
【００９８】
これにより、電流指令値演算部２２は、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）を調整して、発電機モータ２の誘起電圧の大きさに応じたモータの損失に基づいて、エンジン１のトルクの脈動により発生する発電機モータ２の電力の脈動を、発電機モータ２で消費させるｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）を演算している。そして、当該ｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）で発電機インバータ３を制御することで、発電機モータ２の電力の脈動が抑制される。
【００９９】
また、上記のとおり、上記の調整幅（ΔＰ＊）を演算する際に、基準となる極小値（Ｐｍｉｎ）は、発電機モータ２の電力の極小のタイミングで更新される。例えば、図７に示すように、極小値（Ｐｍｉｎ）が時刻（ｔ１）、時刻（ｔ２）及び時刻（ｔ３）のタイミングで更新された場合に、時刻（ｔ１）から時刻（ｔ２）の間の時間では、調整幅（ΔＰ＊）は、時刻（ｔ１）の時の極小値（Ｐｍｉｎ）と電力（Ｐ）との差分に基づいて演算され、時刻（ｔ２）から時刻（ｔ３）の間の時間では、調整幅（ΔＰ＊）は、時刻（ｔ２）の時の極小値（Ｐｍｉｎ）と電力（Ｐ）との差分に基づいて演算される。
【０１００】
また、遅角させる際の基本位相は、時刻（ｔ１）から時刻（ｔ２）の間の時間では、時刻（ｔ１）のｄｑ軸電流指令値の位相となり、時刻（ｔ２）から時刻（ｔ３）の間の時間では、時刻（ｔ２）のｄｑ軸電流指令値の位相となる。
【０１０１】
さらに、図９を用いて説明すると、電流指令値演算器２２は、電力演算器２２１で演算された電力が極小をとるタイミングで、ｄｑ軸電流指令値演算器２２５により、調整前のｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）を演算することで、基本位相と、調整前の指令値の大きさが決まる。そして、モータの電力が極小値になった後、脈動により上昇すると、電流指令値演算器２２は、電力（Ｐ）と極小値（Ｐｍｉｎ）との差分に基づいて、調整幅（ΔＰ＊）を演算する。
【０１０２】
そして、ｄｑ軸電流指令値演算器２２５は、図４のマップにおいて、定トルク線上で、基本位相に対して遅角側に、電流指令値のベクトル（ｄｑ軸電流座標系のベクトル）を回転させつつ、調整幅（ΔＰ＊）分、指令値を大きくするようにして、調整後のｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）を演算する。
【０１０３】
すなわち、電力指令値演算器２２は、演算された電力（Ｐ）が極小値をとるタイミングで、調整前のｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の基本位相を設定する。また、電力（Ｐ）と極小値（Ｐｍｉｎ）との差分は、発電機モータ２の電力の脈動の大きさと対応しているため、電力指令値演算器２２は、発電機モータ２の電力の脈動の大きさに応じて、調整後のｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）を演算している。
【０１０４】
次に、電流指令値演算器４２の制御について説明する。電流指令値演算４２の制御は、基本的には、電流指令値演算器２２の制御と同様の方法で、ｄｑ軸電流指令値を演算し調整している。異なる点は、エンジン１のトルクの脈動により発生した、発電機モータ２の電力の脈動成分のうち、発電機モータ２で消費できない分の電力の脈動成分を、駆動機モータ６で消費するよう、調整量（ΔＰ＊’）を演算している点である。
【０１０５】
すなわち、電流指令値演算器４２は、駆動機モータ６に対して、電力の脈動成分入力側である、バッテリ４の電圧（Ｖｄｃ）及びバッテリ４の電流（Ｉｄｃ）からバッテリ４の電力（Ｐ’）を演算し、当該電力（Ｐ’）に基づいて、電流指令値演算器２２と同様に、脈動する電力の極小をとるタイミングで、調整前のｄｑ軸電流指令値の基本位相を更新しつつ、調整量（ΔＰ＊’）を演算する。そして、電流指令値演算器４２は、図４のマップと同様のマップにおいて、定トルク線上で、当該基本位相に対して遅角側に、電流指令値のベクトル（を回転させつつ、調整幅（ΔＰ＊’）分、指令値を大きくするようにして、調整後のｄｑ軸電流指令値を演算する。
【０１０６】
次に、図１１を用いて、電流指令値演算器２２の制御手順について説明する。図１１は、電流指令値演算器２２の制御手順を示すフローチャートである。なお、図１１に示す制御フローは所定の周期で繰り返し行われている。
【０１０７】
ステップＳ１にて、電力演算器２２１は、ｄｑ軸電流（Ｉｄ、Ｉｑ）及び最終電圧指令値（ｖ’ｄ＊＿ｚ、ｖ’ｑ＊＿ｚ）に基づいて、式（９）を用いて、発電機モータ２の電力（Ｐ）を演算する。ステップＳ２にて、電力変化率演算器２２２は、電力（Ｐ）に基づいて、式（１１）を用いて、電力変化率（ｄＰ）を演算する。
【０１０８】
ステップＳ３にて、電力極小値演算器２２３は、電力変化率（ｄＰ）及び前回の電力変化率（ｄＰｚ）が式（１２）の条件を満たすか否かを、判定する。なお、電力変化率（ｄＰｚ）は前回の制御フローにて、ステップＳ２で演算された電力変化率である。
【０１０９】
式（１２）の条件を満たす場合には、電力極小値演算器２２３は、電力（Ｐ）が極小であると判定して、当該電力（Ｐ）を電力極小値（Ｐｍｉｎ）に設定する（ステップＳ４）。
【０１１０】
一方、式（１２）の条件を満たさない場合は、電力極小値（Ｐｍｉｎ）は更新されず、ステップＳ５に遷る。
【０１１１】
ステップＳ５にて、損失増加量演算器２２４は、電力変化率の絶対値（｜ｄＰ｜）が減少しているか否かを判定する。絶対値（｜ｄＰ｜）の減少は、前回の制御フローにおける絶対値（｜ｄＰｚ｜）との比較により演算すればよい。
【０１１２】
絶対値（｜ｄＰ｜）が減少している場合には、損失増加量演算器２２４は、絶対値（｜ｄＰ｜）に対して、ローパスフィルタ（ＬＰＦ）によるフィルタリング演算を行い、電力変化率判定値（ｄＰ_ｊｄｇ）を演算する（ステップＳ６）。
【０１１３】
一方、絶対値（｜ｄＰ｜）が減少していない場合には、損失増加量演算器２２４は、絶対値（｜ｄＰ｜）を電力変化率判定値（ｄＰ_ｊｄｇ）として演算する（ステップＳ７）。
【０１１４】
ステップＳ８にて、損失増加量演算器２２４は、電力変化率判定値（ｄＰ_ｊｄｇ）が判定閾値（ｄＰ＿ｔｈ）より大きいか否かを判定する。電力変化率判定値（ｄＰ_ｊｄｇ）が判定閾値（ｄＰ＿ｔｈ）より大きい場合には、損失増加量演算器２２４は、電力の脈動が生じていると判定して、ステップＳ９にて、損失増加量演算器２２４は、電流（Ｐ）と電力極小値（Ｐｍｉｎ）との差分（ΔＰ０＊）を演算する。ステップＳ１０にて、損失増加量演算器２２４は、差分（ΔＰ０＊）が、式（１３）の条件を満たすか否かを判定する。
【０１１５】
式（１３）の条件を満たす場合には、損失増加量演算器２２４は、脈動する分の電力がバッテリ４の充放電電力として消費可能な電力より大きいと判定し、ステップＳ１１にて、差分（ΔＰ０＊）及びバッテリ４の入出力可能電力（Ｐｉｎ、Ｐｏｕｔ）に基づいて、式（１４）を用いて、電力の調整量（ΔＰ＊）を演算する。
【０１１６】
ステップＳ８に戻り、電力変化率判定値（ｄＰ_ｊｄｇ）が判定閾値（ｄＰ＿ｔｈ）以下である場合には、損失増加量演算器２２４は、電力の脈動が生じていないと判定して、電力の調整量（ΔＰ＊）をゼロにする（ステップＳ１２）。
【０１１７】
ステップＳ１０に戻り、式（１３）の条件を満たさない場合には、損失増加量演算器２２４は、脈動する分の電力を、バッテリ４の充放電電力として消費可能であると判定し、電力の調整量（ΔＰ＊）をゼロにする（ステップＳ１２）。
【０１１８】
ステップＳ１３にて、ｄｑ軸電流指令値演算器２２５は、図４のマップを参照し、発電機モータ２を効率よく動作させるｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）の基本位相に対して、位相を遅角させて、調整量（ΔＰ＊）分、電流指令値を大きくさせることで、ｄｑ軸電流指令値（Ｉｄ２＊、Ｉｑ２＊）を演算する。なお、ステップＳ１３にて、調整量（ΔＰ＊）がゼロの場合には、ｄｑ軸電流指令値演算器２２５は、指令値調整を行うことなく、ｄｑ軸電流指令値（Ｉｄ１＊、Ｉｑ１＊）を出力する。
【０１１９】
そして、電流指令値演算器２２は、ステップ１３で演算された指令値を電流制御器２３に出力して、制御を終了する。
【０１２０】
次に、図１２を用いて、本発明及び比較例２における、発電機モータ２の回転数特性、発電機モータ２の発電電力特性、及び、発電機モータ２の損失特性について説明する。図１２（ａ）は本発明及び比較例２における発電機モータ２の回転数特性を示すグラフであり、（ｂ）は本発明及び比較例２における発電機モータ２の発電電力特性を示すグラフであり、（ｃ）は本発明における発電機モータ２の損失特性を示すグラフである。図１２（ａ）のグラフａは回転数の目標値（指令値）を示し、グラフｂは回転数の計測値を示す。図１２（ｂ）のグラフｃは比較例２の特性を、グラフｄは本発明の特性を示す。なお、横軸は時間を示す。
【０１２１】
比較例２は、本例と異なり、電流指令値演算器２２において、電力の脈動を発電機モータ２の損失として消費させるように、ｄｑ軸電流指令値を調整していない。その他の構成は、本例と同様とする。
【０１２２】
図１２（ａ）に示すように、エンジン１のトルクの脈動によって、発電機２の回転数が脈動している。比較例２では、トルクの脈動によって、発電機モータ２の電力の脈動を抑制することできないため、図１２（ｂ）のグラフｃに示すように、発電機モータ２の発電電力は脈動している。
【０１２３】
一方、本例では、トルクの脈動によって発生する発電機モータ２の電力の脈動を、発電機モータ２で消費させている。そのため、図１２（ｂ）のグラフｄに示すように、発電機モータ２の発電電力は脈動せずに、発電機モータ２の発電電力は、ほぼ一定の値で推移する。
【０１２４】
そして、図１２（ｃ）に示すように、本発明における発電機モータ２の損失は、電力の脈動と同期するように、変化している。この点からも、発電機モータ２の損失として、電力の脈動が消費されていることが確認できる。
【０１２５】
上記のように、本例は、発電機モータ２のトルク指令値に基づいて、発電機インバータ３を制御するｄｑ軸電流指令値をそれぞれ演算し、ｄｑ軸電流指令値を調整して、少なくとも発電機モータ２の誘起電圧の大きさに応じた発電機モータ２の損失に基づいて、エンジン１のトルクの脈動により発生する発電機モータ２の電力の脈動を発電機モータ２で消費させるｄｑ軸電流指令値を演算し、発電機インバータ３を制御する。
【０１２６】
また、本例は、駆動機モータ６のトルク指令値に基づいて、駆動機インバータ５を制御するｄｑ軸電流指令値をそれぞれ演算し、ｄｑ軸電流指令値を調整して、少なくとも駆動機モータ６の誘起電圧の大きさに応じた駆動機モータ６の損失に基づいて、エンジン１のトルクの脈動により発生する駆動機モータ６の電力の脈動を駆動機モータ６で消費させるｄｑ軸電流指令値を演算し、駆動機モータ６を制御する。
【０１２７】
これにより、本例は、電力の脈動をモータの損失で消費する場合に、電流変化に応じて変化する損失だけでなく、誘起電圧の大きさに応じて変化する損失（鉄損など）に応じて、電流指令値を調整するため、モータ２で消費させる電力が不足することを防ぎ、その結果として、モータの電力の脈動を抑制することができる。
【０１２８】
また、本例は、図４のマップを参照し、調整前の電流指令値の位相である基本位相に対して遅角させて調整後の電流指令値を演算する。これにより、総合損失が最も小さくなる指令値の位相から遅角するように、電流指令値が調整されるため、調整する際の鉄損の減少を防ぐことができる。その結果として、モータの電力の脈動を抑制することができる。
【０１２９】
また、発電機モータ２の損失を、発電機モータ２の脈動の電力分に抑えることで、発電電力の損失が大きくなることを防ぎ、効率及び燃費を向上させることができる。
【０１３０】
また、本例は、発電機モータ２又は駆動機モータ６の電力の脈動を演算し、調整前の電流指令値の基本位相を、演算された電力の脈動が極小値をとるタイミングと対応して、設定している。これにより、電力の脈動成分を、モータで過不足なく消費させることができる。
【０１３１】
また、本例は、発電機モータ２又は駆動機モータ６の電力の脈動の大きさに応じて、調整後の電流指令値を演算する。これにより、電力の脈動成分を、モータで過不足なく消費させることができる。
【０１３２】
また、本例において、電流指令値演算器４２は、発電機モータ２の電力脈動を、駆動機モータ２で消費させるように、電流指令値を演算する。これにより、駆動機モータの損失を調整することで、駆動トルクを大きく変化させることなく、発電機モータ２の電力の脈動を消費することができる。また、発電機モータ２で消費できない脈動する電力を、駆動機モータ６で消費することができるため、電力の脈動を十分に消費することができる。
【０１３３】
なお、電力極小値演算器２２３の極小値の判定は、上記のように、実際に電力を計測して判定する方法に限定するものではなく、トルク指令値やモータの回転数信号と同期するよう判定してもよい。また、エンジン点火信号やエンジンクランク角センサ信号等のエンジン間欠燃焼を特定できる信号と同期させて、エンジン間欠燃焼に伴う発電電力脈動が最小となるタイミングに合わせるように判定してもよい。
【０１３４】
上記の発電機モータ２又は駆動機モータ６が本発明の「モータ」に相当し、発電機インバータ３又は駆動機インバータ５が本発明の「インバータ」に、発電機コントローラ２０又は駆動コントローラ４０が本発明の「制御手段」に、電流指令値演算器２２、４２が本発明の「指令値演算手段」に、電力演算器２２１、４２１が「電力演算手段」に相当する。
【０１３５】
《第２実施形態》
本発明の他の実施形態に係るインバータ制御装置について説明する。本例では上述した第１実施形態に対して、発電機モータ２の回転数に基づいて、電流指令値を調整している点が異なる。これ以外の構成は上述した第１実施形態と同じであるため、その記載を適宜、援用する。
【０１３６】
まず、発電機モータ２の回転数と、発電機モータ２の鉄損との関係について、図１３及び図１４を用いて、説明する。図１３（ａ）は発電機モータ２の回転数特性を示すグラフであり、図１３（ｂ）は発電機モータ２の電力特性を示すグラフである。なお、横軸は時間を示す。図１４は、各回転数において、ｄ軸電流に対する鉄損の特性を示すグラフである。なお、回転数の条件はω１＜ω２＜ω３とする。
【０１３７】
図１３に示すように、エンジン１のトルクの脈動が発生すると、発電機モータ２の回転数及び電力に脈動が発生する。そして、図１４に示すように、発電機モータの回転数が変化すると、発電機モータ２の鉄損も変化し、発電機モータ２の鉄損（Ｗｌｏｓｓ）は、回転数の２乗に比例する。
【０１３８】
すなわち、脈動により回転数が変化すると鉄損が変化するため、調整幅（ΔＰ＊）に基づいて調整された電流指令値により発電機モータ２を制御したとしても、実際に発電機モータ２で消費される脈動の電力は、調整幅（ΔＰ＊）に相当する電力からずれる可能性がある。
【０１３９】
一方、図１４に示すように、回転数と鉄損との関係は予め決まっており、回転数に応じた鉄損の変化量は、回転数から把握することができる。そのため、本例では、回転数に応じて、電流指令値を補正することで、実際に発電機モータ２で消費される脈動の電力と、調整幅（ΔＰ＊）に相当する電力とのずれを解消する。
【０１４０】
ｄｑ軸電流指令値演算器２２５には、発電機モータ２の回転数と、電流指令値を補正するための補正量との関係を示すマップが格納されている。当該マップは、図１４に示す関係に基づいて、予め算出されている。
【０１４１】
ｄｑ軸電流指令値演算器２２５は、入力される回転数に対して当該マップを参照して、補正量を演算する。また、ｄｑ軸電流指令値演算器２２５は、調整幅（ΔＰ＊）に基づいて、ｄｑ軸電流指令値を演算する。そして、ｄｑ軸電流指令値演算器２２５は、当該補正量を用いて、演算したｄｑ軸電流指令値を補正する。
【０１４２】
ｄｑ軸電流指令値演算器２２５には、脈動と同期して変化する回転数検出値が入力されるため、ｄｑ軸電流指令値演算器２２５は、当該脈動と同期して、補正量を演算し、ｄｑ軸電流指令値を補正することができる。
【０１４３】
上記のように、本例は、発電機モータ２の回転数に応じて、電流指令値を補正する。これにより、回転数の変化により、発電機モータ２の鉄損が変化した場合に、鉄損変化分を補正することができるため、脈動する分の電力を過不足なく発電機モータ２で消費させることができる。
【０１４４】
なお、本例において、回転数の値の代わりに、回転数脈動の幅に基づいて、電流指令値を補正してもよい。また、本例において、電流指令値演算器４２は、電流指令値演算器２２と同様の方法で、駆動機モータ６の回転数に応じて、電流指令値を補正してもよい。
【符号の説明】
【０１４５】
１…エンジン
２…発電機モータ
３…発電機インバータ
４…バッテリ
５…駆動機インバータ
６…駆動機モータ
７…減速機
８…駆動輪
１０…エンジンコントローラ
２０…発電機コントローラ
２１…回転数制御器
２２…電流指令値演算器
２２１…電力演算器
２２２…電力変化率演算器
２２３…電力極小値演算器
２２４…損失増加量演算器
２２５…ｄｑ軸電流指令値演算器
２３…電流制御器
２４…非干渉化制御器
２５…二相三相電圧変換器
２６…回転数演算器
２７…三相二相電流変換器
３０…バッテリコントローラ
４０…駆動機コントローラ
４２…電流指令値演算器
４２１…電力演算器
４２２…電力変化率演算器
４２３…電力極小値演算器
４２４…損失増加量演算器
４２５…ｄｑ軸電流指令値演算器
４３…電流制御器
４４…非干渉化制御器
４５…二相三相電圧変換器
４７…三相二相電流変換器
５１、５３…電流センサ
５２、５４…磁極位置検出器
１００…システムコントローラ
【図１】
2014096920.tif 000020
【図２】
2014096920.tif 000021
【図３】
2014096920.tif 000022
【図４】
2014096920.tif 000023
【図５】
2014096920.tif 000024
【図６】
2014096920.tif 000025
【図７】
2014096920.tif 000026
【図８】
2014096920.tif 000027
【図９】
2014096920.tif 000028
【図１０】
2014096920.tif 000029
【図１１】
2014096920.tif 000030
【図１２】
2014096920.tif 000031
【図１３】
2014096920.tif 000032
【図１４】
2014096920.tif 000033