図1は本発明の一実施例としてのハイブリッド自動車20の構成の概略を示す構成図である。実施例のハイブリッド自動車20は、図1に示すように、エンジン22と、エンジン22の出力軸としてのクランクシャフト26にダンパ28を介して複数のピニオンギヤ33を連結するキャリア34が接続されたプラネタリギヤ30と、例えば周知の同期発電電動機として構成されプラネタリギヤ30のサンギヤ31に接続された発電可能なモータMG1と、例えば周知の同期発電電動機として構成されプラネタリギヤ30のリングギヤ32に接続された駆動軸としてのリングギヤ軸32aに減速ギヤ35を介して接続されたモータMG2と、直流電流を交流電流に変換してモータMG1,MG2に供給可能なインバータ41,42と、例えばリチウムイオン二次電池として構成されインバータ41,42を介してモータMG1,MG2と電力をやり取りするバッテリ50と、車両全体をコントロールするハイブリッド用電子制御ユニット70とを備える。なお、リングギヤ軸32aは、ギヤ機構60およびデファレンシャルギヤ62を介して、車両の駆動輪63a,63bに連結されている。
エンジン22は、例えばガソリンまたは軽油などの炭化水素系の燃料により動力を出力する内燃機関であり、エンジン用電子制御ユニット(以下、エンジンECUという)24により燃料噴射制御や点火制御,吸入空気量調節制御などの運転制御を受けている。エンジンECU24には、エンジン22の運転状態を検出する各種センサからの信号、例えば、エンジン22のクランクシャフト26のクランク角を検出する図示しないクランクポジションセンサからのクランクポジションなどが入力されている。エンジンECU24は、ハイブリッド用電子制御ユニット70と通信しており、ハイブリッド用電子制御ユニット70からの制御信号によりエンジン22を運転制御すると共に必要に応じてエンジン22の運転状態に関するデータをハイブリッド用電子制御ユニット70に出力する。なお、エンジンECU24は、図示しないクランクポジションセンサからのクランクポジションに基づいてクランクシャフト26の回転数、即ちエンジン22の回転数Neも演算している。
モータMG1,MG2は、いずれもモータ用電子制御ユニット(以下、モータECUという)40により駆動制御されている。モータECU40には、モータMG1,MG2を駆動制御するために必要な信号、例えばモータMG1,MG2の回転子の回転位置を検出する回転位置検出センサ43,44からの信号や図示しない電流センサにより検出されるモータMG1,MG2に印加される相電流などが入力されている。モータECU40からは、インバータ41,42のスイッチング素子へのスイッチング制御信号が出力されている。モータECU40は、ハイブリッド用電子制御ユニット70と通信しており、ハイブリッド用電子制御ユニット70からの制御信号によってモータMG1,MG2を駆動制御すると共に必要に応じてモータMG1,MG2の運転状態に関するデータをハイブリッド用電子制御ユニット70に出力する。なお、モータECU40は、回転位置検出センサ43,44からの信号に基づいてモータMG1,MG2の回転数Nm1,Nm2も演算している。
バッテリ50は、バッテリ用電子制御ユニット(以下、バッテリECUという)52によって管理されている。バッテリECU52には、バッテリ50を管理するのに必要な信号、例えば、バッテリ50の端子間に設置された電圧センサ53aからの端子間電圧Vb,バッテリ50の出力端子に接続された電流センサ53bからの充放電電流Ib,バッテリ50に取り付けられた温度センサ51bからの電池温度Tbなどが入力されており、必要に応じてバッテリ50の状態に関するデータを通信によりハイブリッド用電子制御ユニット70に出力する。また、バッテリECU52は、バッテリ50を管理するために電流センサ53bにより検出された充放電電流Ibの積算値に基づいてバッテリ50に蓄えられている蓄電量の全容量に対する割合である蓄電割合SOCを演算したり、電圧センサ53aからの電池電圧Vbと電流センサ53bからの充放電電流Ibとの積によるバッテリ50を充放電する充放電電力Pbを演算したり、残容量(SOC)が閾値S1より小さいときに残容量(SOC)が小さくなるほど大きな電力でバッテリ50が充電されるよう充放電要求パワーPb1*を設定したり、演算した蓄電割合SOCと電池温度Tbとに基づいてバッテリ50を充放電してもよい最大許容電力である入出力制限Win,Woutを演算したりしている。なお、バッテリ50の入出力制限Win,Woutは、電池温度Tbに基づいて入出力制限Win,Woutの基本値を設定し、バッテリ50の蓄電割合SOCに基づいて出力制限用補正係数と入力制限用補正係数とを設定し、設定した入出力制限Win,Woutの基本値に補正係数を乗じることにより設定することができる。なお、充放電電流Ibは、放電側を正,充電側を負とするものとした。
ハイブリッド用電子制御ユニット70は、CPU72を中心とするマイクロプロセッサとして構成されており、CPU72の他に処理プログラムを記憶するROM74と、データを一時的に記憶するRAM76と、図示しない入出力ポートおよび通信ポートとを備える。ハイブリッド用電子制御ユニット70には、イグニッションスイッチ80からのイグニッション信号,シフトレバー81の操作位置を検出するシフトポジションセンサ82からのシフトポジションSP,アクセルペダル83の踏み込み量を検出するアクセルペダルポジションセンサ84からのアクセル開度Acc,ブレーキペダル85の踏み込み量を検出するブレーキペダルポジションセンサ86からのブレーキペダルポジションBP,車速センサ88からの車速Vなどが入力ポートを介して入力されている。ハイブリッド用電子制御ユニット70は、前述したように、エンジンECU24やモータECU40,バッテリECU52と通信ポートを介して接続されており、エンジンECU24やモータECU40,バッテリECU52と各種制御信号やデータのやりとりを行なっている。
こうして構成された実施例のハイブリッド自動車20は、運転者によるアクセルペダル83の踏み込み量に対応するアクセル開度Accと車速Vとに基づいて駆動軸としてのリングギヤ軸32aに出力すべき要求トルクを計算し、この要求トルクに対応する要求動力がリングギヤ軸32aに出力されるように、エンジン22とモータMG1とモータMG2とが運転制御される。エンジン22とモータMG1とモータMG2の運転制御としては、要求動力に見合う動力がエンジン22から出力されるようにエンジン22を運転制御すると共にエンジン22から出力される動力のすべてがプラネタリギヤ30とモータMG1とモータMG2とによってトルク変換されてリングギヤ軸32aに出力されるようモータMG1およびモータMG2を駆動制御するトルク変換運転モードや要求動力とバッテリ50の充放電に必要な電力との和に見合う動力がエンジン22から出力されるようにエンジン22を運転制御すると共にバッテリ50の充放電を伴ってエンジン22から出力される動力の全部またはその一部がプラネタリギヤ30とモータMG1とモータMG2とによるトルク変換を伴って要求動力がリングギヤ軸32aに出力されるようモータMG1およびモータMG2を駆動制御する充放電運転モード、エンジン22の運転を停止してモータMG2からの要求動力に見合う動力をリングギヤ軸32aに出力するよう運転制御するモータ運転モードなどがある。
次に、こうして構成されたハイブリッド自動車20の動作について説明する。図2は、実施例のハイブリッド用電子制御ユニット70により実行される駆動制御ルーチンの一例を示すフローチャートである。このルーチンは、所定時間(例えば、数msec)毎に繰り返し実行される。
駆動制御ルーチンが実行されると、ハイブリッド用電子制御ユニット70のCPU72は、まず、アクセルペダルポジションセンサ84からのアクセル開度Accや車速センサ88からの車速V,エンジン22の回転数Ne,モータMG1,MG2の回転数Nm1,Nm2,充放電要求パワーPb1*,充放電電力Pb,バッテリ50の入出力制限Win,Woutなどの制御に必要なデータを入力する処理を実行する(ステップS100)。ここで、エンジン22の回転数Neは、クランクポジションセンサにより検出されたクランクシャフト26の回転位置に基づいて演算されたものをエンジンECU24から通信により入力するものとした。また、モータMG1,MG2の回転数Nm1,Nm2は、回転位置検出センサ43,44により検出されたモータMG1,MG2の回転子の回転位置に基づいて演算されたものをモータECU40から通信により入力するものとした。充放電要求パワーPb1*は、残容量(SOC)に基づいて設定されたものをバッテリECU52から通信により入力するものとした。充放電電力Pbは、電池電圧Vbと充放電電流Ibとに基づいて設定されたものをバッテリECU52から通信により入力するものとした。バッテリ50の入出力制限Win,Woutは、温度センサ51bにより検出されたバッテリ50の電池温度Tbとバッテリ50の残容量(SOC)とに基づいて設定されたものをバッテリECU52から通信により入力するものとした。図3に電池温度Tbと入出力制限Win,Woutとの関係の一例を示し、図4にバッテリ50の残容量(SOC)と入出力制限Win,Woutの補正係数との関係の一例を示す。
こうしてデータを入力すると、入力した充放電要求パワーPb1*と充放電電力Pbとの偏差が打ち消されるよう充放電要求パワーPb1*を調整した充放電目標パワーPb2*を、次式(1)のフィードバック制御(PI制御)の関係式により導出する(ステップS110)。なお、式(1)中、右辺第2項の「kb1」は比例項のゲインであり、右辺第3項の「kb2」は積分項のゲインである。
Pb2*←Pb1*+kb1・(Pb1*-Pb)+kb2∫(Pb1*-Pb)dt (1)
続いて、アクセル開度Accと車速Vとに基づいて駆動軸としてのリングギヤ軸32aに出力すべき要求トルクTr*を設定すると共に、設定した要求トルクTr*に基づいて走行に要求される走行要求パワーPr*を設定し、エンジン22に要求される要求パワーPe*を設定する(ステップS120)。ここで、要求トルクTr*は、本実施例では、アクセル開度Accと車速Vと要求トルクTr*との関係を予め定めて要求トルク設定用マップとしてROM74に記憶しておき、アクセル開度Accと車速Vとが与えられるとマップから対応する要求トルクTr*を導出することにより設定するものとした。要求トルク設定用マップの一例を図5に示す。走行要求パワーPr*は、要求トルクTr*にリングギヤ軸32aの回転数Nrを乗じたものとして計算することができる。なお、リングギヤ軸32aの回転数Nrは、車速Vに換算係数kを乗じること(Nr=k・V)によって求めたり、モータMG2の回転数Nm2を減速ギヤ35のギヤ比Grで割ること(Nr=Nm2/Gr)によって求めることができる。要求パワーPe*は、走行要求パワーPr*から充放電目標パワー(充電側が負)を減じてさらにロス(損失)を加えることにより計算することができる。
続いて、エンジン目標回転数Ne*を設定するエンジン目標回転数設定処理を実行し(ステップS130)、設定したエンジン目標回転数Ne*とステップS120で設定した要求パワーPe*とに基づいて、エンジン目標トルクTe*をPe*=Ne*×Te*の関係から導出する(ステップS140)。なお、ステップS130のエンジン目標回転数設定処理については後述する。
エンジン目標回転数Ne*とエンジン目標トルクTe*とを設定すると、エンジン目標回転数Ne*とリングギヤ軸32aの回転数Nrとプラネタリギヤ30のギヤ比ρとに基づいて次式(2)によりモータMG1の目標回転数Nm1*を計算すると共に計算した目標回転数Nm1*と現在のモータMG1の回転数Nm1との偏差とに基づいて次式(3)によりモータMG1から出力すべきトルクであるトルク指令Tm1*を計算する(ステップS150)。ここで、式(2)は、プラネタリギヤ30の回転要素に対する力学的な関係式である。エンジン22からパワーを出力している状態で走行しているときのプラネタリギヤ30の回転要素における回転数とトルクとの力学的な関係を示す共線図を図6に示す。図中、左のS軸はモータMG1の回転数Nm1であるサンギヤ31の回転数を示し、C軸はエンジン22の回転数Neであるキャリア34の回転数を示し、R軸はモータMG2の回転数Nm2を減速ギヤ35のギヤ比Grで除したリングギヤ32の回転数Nrを示す。式(2)は、この共線図を用いれば容易に導くことができる。なお、R軸上の2つの太線矢印は、モータMG1から出力されたトルクTm1がリングギヤ軸32aに作用するトルクと、モータMG2から出力されるトルクTm2が減速ギヤ35を介してリングギヤ軸32aに作用するトルクとを示す。ここで、モータMG1から出力されたトルクTm1がリングギヤ軸32aに作用するトルクは、モータMG1がエンジントルクの反力を受けてエンジントルクがリングギヤ軸32aに直接に伝達されるトルクとして考えることもできるから、このトルクを直達トルクとも呼ぶ。また、式(3)は、モータMG1を目標回転数Nm1*で回転させるためのフィードバック制御における関係式であり、式(3)中、右辺第2項の「k1」は比例項のゲインであり、右辺第3項の「k2」は積分項のゲインである。
Nm1*=Ne*・(1+ρ)/ρ-Nm2/ρ (2)
Tm1*=ρ・Te*/(1+ρ)+k1(Nm1*-Nm1)+k2∫(Nm1*-Nm1)dt (3)
そして、要求トルクTr*に設定したトルク指令Tm1*をプラネタリギヤ30のギヤ比ρで除したものを加えて更に減速ギヤ35のギヤ比Grで除してモータMG2から出力すべきトルクの仮の値であるモータ仮トルクTm2tmpを次式(4)により計算すると共に(ステップS160)、バッテリ50の入出力制限Win,Woutと設定したトルク指令Tm1*に現在のモータMG1の回転数Nm1を乗じて得られるモータMG1の消費電力(発電電力)との偏差をモータMG2の回転数Nm2で割ることによりモータMG2から出力してもよいトルクの上下限としてのトルク制限Tm2min,Tm2maxを次式(5)および式(6)により計算し(ステップS170)、設定した仮トルクTm2tmpを式(7)によりトルク制限Tm2min,Tm2maxで制限してモータMG2のトルク指令Tm2*を設定する(ステップS180)。ここで、式(4)は、図6の共線図から容易に導くことができる。
Tm2tmp=(T*+Tm1*/ρ)/Gr (4)
Tm2min=(Win-Tm1*・Nm1)/Nm2 (5)
Tm2max=(Wout-Tm1*・Nm1)/Nm2 (6)
Tm2*=max(min(Tm2tmp,Tm2max),Tm2min) (7)
こうしてエンジン22の目標回転数Ne*や目標トルクTe*,モータMG1,MG2のトルク指令Tm1*,Tm2*を設定すると、エンジン22の目標回転数Ne*と目標トルクTe*についてはエンジンECU24に、モータMG1,MG2のトルク指令Tm1*,Tm2*についてはモータECU40にそれぞれ送信し(ステップS190)、駆動制御ルーチンを終了する。目標回転数Ne*と目標トルクTe*とを受信したエンジンECU24は、エンジン22が目標回転数Ne*と目標トルクTe*とによって示される動作点で運転されるようにエンジン22における吸入空気量制御や燃料噴射制御,点火制御などの制御を行なう。また、トルク指令Tm1*,Tm2*を受信したモータECU40は、トルク指令Tm1*でモータMG1が駆動されると共にトルク指令Tm2*でモータMG2が駆動されるようインバータ41,42のスイッチング素子のスイッチング制御を行なう。
次に、エンジン目標回転数設定処理について説明する。図7は、ハイブリッド用電子制御ユニット70により実行されるエンジン目標回転数設定処理の一例を示すフローチャートである。エンジン目標回転数設定処理が実行されると、ハイブリッド用電子制御ユニット70のCPU72は、第1エンジン仮目標回転数Ne1*と、第2エンジン仮目標回転数Ne2*とを導出する(ステップS300)。ここで、第1エンジン仮目標回転数Ne1*は、駆動制御ルーチンのステップS120で設定した走行要求パワーPr*に基づく運転ポイントにおけるエンジン回転数として導出する。なお、第1エンジン仮目標回転数Ne1*は、エンジン22を効率よく動作させる動作ラインに基づいて導出する。エンジン22の動作ラインの一例を図8に示す。図示するように、走行要求パワーPr*に基づく運転ポイントは動作ラインと走行要求パワーPr*が一定の曲線との交点として定めることができるため、この運転ポイントにおけるエンジン回転数Neを第1エンジン仮目標回転数Ne1*として導出する。また、第2エンジン仮目標回転数Ne2*は、走行要求パワーPr*と充放電目標パワーPb2*とからステップS120で設定した要求パワーPe*に基づく運転ポイントにおけるエンジン回転数として導出する。この第2エンジン仮目標回転数Ne2*は、図8における走行要求パワーPr*に代えて要求パワーPe*が一定の曲線を用いて、第1エンジン仮目標回転数Ne1*と同様に、図8の動作ラインと要求パワーPe*が一定の曲線との交点として定めた運転ポイントにおけるエンジン回転数Neを第2エンジン仮目標回転数Ne2*として導出する。
続いて、導出した第1エンジン仮目標回転数Ne1*と、図7のエンジン目標回転数設定処理を前回実行したときのエンジン目標回転数Ne*である前回Ne*と、の差である目標回転数変化量ΔNe1*を導出すると共に、導出した第2エンジン仮目標回転数Ne2*と、前回Ne*と、の差である目標回転数変化量ΔNe2*を導出する(ステップS310)。そして、目標回転数変化量ΔNe1*が値0又は正の値であるときには次式(8)により目標回転数変化量ΔNe1*を調整し、目標回転数変化量ΔNe1*が負の値であるときには次式(9)により目標回転数変化量ΔNe1*を調整する(ステップS320〜340)。このステップS320〜S340の処理により、目標回転数変化量ΔNe1*の絶対値が第1上限値ΔNe1ref(>0)を超えないように調整される。なお、第1上限値ΔNe1refは、エンジン目標回転数Ne*の変化量(前回Ne*と今回設定するエンジン目標回転数Ne*との差)の絶対値の範囲を規定するものであり、急激な要求トルクTr*の変化に対するエンジン回転数Neの追従性をより確保できるように定められた値(例えば18rpm/8msec,20rpm/8msec,22rpm/8msecなど)である。この目標回転数変化量ΔNe1refは、例えば実験により予め定めておくことができる。
ΔNe1*←min(ΔNe1*,ΔNe1ref) (8)
ΔNe1*←max(ΔNe1*,-ΔNe1ref) (9)
続いて、目標回転数変化量ΔNe2*が値0又は正の値であるときには次式(10)によりΔNe2*を調整し、目標回転数変化量ΔNe2*が負の値であるときには次式(11)によりΔNe2*を調整する(ステップS350〜370)。このステップS350〜S370の処理により、目標回転数変化量ΔNe2*の絶対値が第2上限値ΔNe2ref(>0)を超えないように調整される。なお、第2上限値ΔNe2refは、エンジン目標回転数Ne*の変化量(前回Ne*と今回設定するエンジン目標回転数Ne*との差)の絶対値の範囲を規定するものであり、エンジン回転数Neのハンチングをより抑制できるよう、第1上限値ΔNe1refに比して小さい値として定められた値(例えば1rpm/8msec,2rpm/8msec,3rpm/8msec)である。このΔNe2refは、例えば実験により予め定めておくことができる。
ΔNe2*←min(ΔNe2*,ΔNe2ref) (10)
ΔNe2*←max(ΔNe2*,-ΔNe2ref) (11)
そして、目標回転数変化量ΔNe1*,ΔNe2*が共に正の値であるか否かを判定し(ステップS380)、共に正の値であるときには次式(12)によりエンジン目標回転数Ne*を設定して(ステップS400)、エンジン目標回転数設定処理を終了する。また、ステップS380で目標回転数変化量ΔNe1*,ΔNe2*のいずれかが正の値でないときには、目標回転数変化量ΔNe1*,ΔNe2*が共に負の値であるか否かを判定し(ステップS390)、共に負の値であるときには次式(13)によりエンジン目標回転数Ne*を設定して(ステップS410)、エンジン目標回転数設定処理を終了する。このステップS400又はステップS410の処理により、前回Ne*と目標回転数変化量ΔNe1*,ΔNe2*のうち絶対値の大きい方の値とを加えた値がエンジン目標回転数Ne*として設定される。このとき、目標回転数変化量ΔNe1*,ΔNe2*はいずれも絶対値が第1上限値Ne1refを超えないように調整されているため、エンジン目標回転数Ne*は、エンジン目標回転数Ne*の変化量の絶対値が第1上限値Ne1refを超えない範囲で設定されることになる。ここで、ステップS380で目標回転数変化量ΔNe1*,ΔNe2*が共に正の値であることは、第1エンジン仮目標回転数Ne1*と第2エンジン仮目標回転数Ne2*とが共にエンジン目標回転数Ne*を前回Ne*から上昇させる方向の目標回転数であることを意味する。また、ステップS390で目標回転数変化量ΔNe1*,ΔNe2*が共に負の値であることは、第1エンジン仮目標回転数Ne1*と第2エンジン仮目標回転数Ne2*とが共にエンジン目標回転数Ne*を前回Ne*から下降させる方向の目標回転数であることを意味する。このように、エンジン目標回転数設定処理では、第1エンジン仮目標回転数Ne1*と第2エンジン仮目標回転数Ne2*とがエンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数であるときには、エンジン目標回転数Ne*の変化量の絶対値が第1上限値Ne1refを超えない範囲でエンジン目標回転数Ne*を設定するのである。
Ne*←前回Ne*+max(ΔNe1*,ΔNe2*) (12)
Ne*←前回Ne*+min(ΔNe1*,ΔNe2*) (13)
一方、ステップS380で目標回転数変化量ΔNe1*,Ne2*のいずれかが正の値でなく、且つステップS390で目標回転数変化量ΔNe1*,Ne2*のいずれかが負の値でないとき、すなわち目標回転数変化量ΔNe1*,Ne2*の正負が逆の場合やいずれかが値0であるときには、次式(14)によりエンジン目標回転数Ne*を設定して(ステップS420)、エンジン目標回転数設定処理を終了する。このステップS420の処理により、前回Ne*と目標回転数変化量ΔNe2*とを加えた値がエンジン目標回転数Ne*として設定される。なお、目標回転数変化量ΔNe2*は絶対値が第2上限値Ne2refを超えないように調整されているため、エンジン目標回転数Ne*は、エンジン目標回転数Ne*の変化量の絶対値が第2上限値Ne2refを超えない範囲で設定されることになる。このように、エンジン目標回転数設定処理では、第1エンジン仮目標回転数Ne1*と第2エンジン仮目標回転数Ne2*とがエンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数でないときには、エンジン目標回転数Ne*の変化量の絶対値が第2上限値Ne2refを超えない範囲でエンジン目標回転数Ne*を設定するのである。
Ne*←前回Ne*+ΔNe2* (14)
このようにエンジン目標回転数設定処理を実行して、ステップS400又はステップS410の処理を行った場合には、エンジン目標回転数Ne*の変化量の絶対値が第2上限値Ne2refに比して値の大きい第1上限値Ne1refを超えない範囲でエンジン目標回転数Ne*が設定されるため、急激な要求トルクTr*の変化に対するエンジン回転数Neの追従性をより確保することができる。一方、ステップS420の処理を行った場合には、エンジン目標回転数Ne*の変化量の絶対値が第1上限値Ne1refに比して値の小さい第2上限値Ne2refを超えない範囲でエンジン目標回転数Ne*が設定されるため、エンジン回転数Neのハンチングをより抑制することができる。
以上説明した実施例のハイブリッド自動車20によれば、第1エンジン仮目標回転数Ne1*と、第2エンジン仮目標回転数Ne2*とが、エンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数であるときには、エンジン目標回転数の変化量の絶対値が第1上限値Ne1refを超えない範囲でエンジン目標回転数Ne*を設定して急激な要求トルクTr*の変化に対するエンジン回転数の追従性を確保する。一方、第1エンジン仮目標回転数Ne1*と、第2エンジン仮目標回転数Ne2*とが、エンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数でないときには、エンジン目標回転数の変化量の絶対値が第1上限値Ne1refに比して値の小さい第2上限値ne2refを超えない範囲でエンジン目標回転数Ne*を設定してエンジン回転数Neのハンチングをより抑制する。これにより、エンジン回転数Neのハンチングをより抑制しつつ急激な要求トルクTr*の変化に対するエンジン回転数Neの追従性を確保することができる。
また、第1エンジン仮目標回転数Ne1*と、第2エンジン仮目標回転数Ne2*とが、エンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数であるときには、前回Ne*と、第1上限値Ne1refを超えないように調整した目標回転数変化量ΔNe1*及び第2上限値Ne2refを超えないように調整した目標回転数変化量ΔNe2*のうち絶対値の大きい方の値と、を加えた値がエンジン目標回転数Ne*として設定する。そのため、エンジン目標回転数Ne*の変化量の絶対値がより大きくなるように目標回転数変化量ΔNe1*,ΔNe2*とのいずれかを適切に選択して、要求トルクの変化に対するエンジン回転数の追従性をより確保することができる。
さらに、第1エンジン仮目標回転数Ne1*と、第2エンジン仮目標回転数Ne2*とが、エンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数でないときには、エンジン目標回転数Ne*の変化量の絶対値が第2上限値Ne2refを超えない範囲で、第2エンジン仮目標回転数Ne2*をエンジン目標回転数Ne*に設定する。これにより、エンジン回転数Ne*のハンチングをより抑制する際に、走行要求パワーPr*と充放電目標パワーPb2*とに基づく第2エンジン仮目標回転数Ne2*をエンジン目標回転数Ne*に設定するため、より適切な値をエンジン目標回転数Ne*に設定することができる。
実施例のハイブリッド自動車20では、図7のエンジン目標回転数設定処理において、目標回転数ΔNe1*,ΔNe2*がそれぞれ第1上限値Ne1ref,第2上限値Ne2refを超えないように調整してから(ステップS320〜S340,ステップS350〜S370)、第1エンジン仮目標回転数Ne1*と第2エンジン仮目標回転数Ne2*とがエンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数であるか否かの判定(ステップS380,S390)を行うものとしたが、第1エンジン仮目標回転数Ne1*と第2エンジン仮目標回転数Ne2*とがエンジン目標回転数Ne*の変化方向が共に同じ方向になるような目標回転数であるか否かの判定を先に行ってもよい。図9は、変形例のエンジン目標回転数設定処理の一例を示すフローチャートである。なお、図9では、図7のエンジン目標回転数設定処理と同じ処理については同じステップ番号を付して、詳細な説明を省略する。この変形例のエンジン目標回転数設定処理が実行されると、ハイブリッド用電子制御ユニット70のCPU72は、ステップS300,S310の処理を行う。続いて、ステップS380の処理を行い、ステップS380で目標回転数変化量ΔNe1*,ΔNe2*が共に正の値であるときには、次式(15)によりエンジン目標回転数Ne*を設定して(ステップS400a)、エンジン目標回転数設定処理を終了する。また、ステップS380で目標回転数変化量ΔNe1*,ΔNe2*のいずれかが正の値でないときには、ステップS390の処理を行い、ステップS390で目標回転数変化量ΔNe1*,ΔNe2*が共に負の値であるときには次式(16)によりエンジン目標回転数Ne*を設定して(ステップS410a)、エンジン目標回転数設定処理を終了する。このステップS400又はS410の処理により、前回Ne*に対して、目標回転数変化量ΔNe1*,ΔNe2*の絶対値が第1上限値ΔNe1refを超えない範囲で目標回転数変化量ΔNe1*,ΔNe2*のうち絶対値が大きい方の値を加えた値がエンジン目標回転数Ne*として設定される。すなわち、エンジン目標回転数Ne*の変化量の絶対値が第1上限値ΔNeref1を超えない範囲で、第1エンジン仮目標回転数Ne1*と第2エンジン仮目標回転数Ne2*とのうちエンジン目標回転数Ne*の変化量の絶対値が大きくなる方を前記エンジン目標回転数Ne*に設定する。このようにエンジン目標回転数を設定することにより、エンジン目標回転数Ne*の変化量の絶対値をより大きい値として、要求トルクTr*の変化に対するエンジン回転数Ne*の追従性をより確保することができる。また、ステップS390で目標回転数変化量ΔNe1*,ΔNe2*のいずれかが負の値でないときには、ステップS350の処理を行う。そして、ステップS350でΔNe2*が値0又は正の値であるときには、次式(17)によりエンジン目標回転数Ne*を設定して(ステップS420a)、エンジン目標回転数設定処理を終了する。一方、ステップS350でΔNe2*が負の値であるときには、次式(18)によりエンジン目標回転数Ne*を設定して(ステップS420b)、エンジン目標回転数設定処理を終了する。このステップS420a又はS420bの処理により、実施例のステップS420と同様に、エンジン目標回転数Ne*の変化量の絶対値が第2上限値Ne2refを超えない範囲で、第2エンジン仮目標回転数Ne2*がエンジン目標回転数Ne*に設定される。この変形例のエンジン目標回転数設定処理でも、エンジン回転数Neのハンチングをより抑制しつつ急激な要求トルクTr*の変化に対するエンジン回転数の追従性を確保することができる。
Ne*←前回Ne*+min(max(ΔNe1*,ΔNe2*),ΔNe1ref) (15)
Ne*←前回Ne*+max(min(ΔNe1*,ΔNe2*),-ΔNe1ref) (16)
Ne*←前回Ne*+min(ΔNe2*,ΔNe2ref) (17)
Ne*←前回Ne*+max(ΔNe2*,-ΔNe2ref) (18)
実施例のハイブリッド自動車20では、図2の駆動制御ルーチンのステップS110において式(1)を用いたPI制御により充放電目標パワーPb2*を導出するものとしたが、入力した充放電要求パワーPb1*と充放電電力Pbとの偏差が打ち消されるようフィードバック制御により充放電目標パワーPb2*を設定するものであればよく、PID制御など、実施例と異なるフィードバック制御を用いて充放電目標パワーPb2*を設定してもよい。
実施例のハイブリッド自動車20では、モータMG2の動力を減速ギヤ35により変速してリングギヤ軸32aに出力するものとしたが、図10の変形例のハイブリッド自動車120に例示するように、モータMG2の動力をリングギヤ軸32aが接続された車軸(駆動輪63a,63bが接続された車軸)とは異なる車軸(図10における車輪64a,64bに接続された車軸)に接続するものとしてもよい。
本発明が適用されるハイブリッド車両は、図11に示す変形例に係るハイブリッド自動車220のように無段変速機(CVT)65を含むものであってもよい。図11に示す変形例に係るハイブリッド自動車220は、エンジン22のクランクシャフトに接続されると共にインバータ41を介してバッテリ50と電力をやり取り可能なモータMG1と、モータMG1のロータ(回転軸)と駆動輪63a,63bに連結された駆動軸に接続された機械式(例えばベルト式あるいはトロイダル式)の無段変速機65と、車輪64a,64bに連結された駆動軸に接続されると共にインバータ42を介してバッテリ50と電力をやり取り可能なモータMG2とを含む。このように構成されるハイブリッド自動車220においても、本発明を適用してエンジン回転数Neのハンチングをより抑制しつつ急激な要求トルクTr*の変化に対するエンジン回転数Neの追従性を確保することができる。なお、ハイブリッド自動車220において、モータMG1及びインバータ41を省略してエンジン22のクランクシャフトに無段変速機65を接続してもよい。また、ハイブリッド自動車220において、モータMG2及びインバータ42を省略してもよい。また、ハイブリッド自動車220において、エンジン22(およびモータMG1)を無段変速機65を介して車輪64a,64bに連結された駆動軸に接続すると共にモータMG2を駆動輪63a,63bに連結された駆動軸に接続してもよい。
ここで、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、エンジン22が「エンジン」に相当し、モータMG1が「第1モータ」及び「モータ」に相当し、モータMG2が「第2モータ」及び「モータ」に相当し、プラネタリギヤ30が「プラネタリギヤ」に相当し、バッテリ50が「バッテリ」に相当し、図2の駆動制御ルーチンのステップS120の処理を実行するハイブリッド用電子制御ユニット70が「充放電目標パワー設定手段」に相当し、駆動制御ルーチンのステップS120,S140〜S190の処理を実行するハイブリッド用電子制御ユニット70とエンジン22を運転制御するエンジンECU24とモータMG1,MG2を駆動制御するモータECU40とが「制御手段」に相当し、図7のエンジン目標回転数設定処理を実行するハイブリッド用電子制御ユニット70が「目標回転数設定手段」に相当する。
ここで、「エンジン」としては、ガソリンまたは軽油などの炭化水素系の燃料により動力を出力するエンジンに限定されるものではなく、水素エンジンなど如何なるタイプのエンジンであっても構わない。「第1モータ」としては、同期モータとして構成されたモータMG1に限定されるものではなく、誘導モータなど、駆動軸に動力を出力するものであれば如何なるタイプのモータとしても構わない。「第2モータ」としては、同期モータとして構成されたモータMG2に限定されるものではなく、誘導モータなど、駆動輪に動力を出力するものであれば如何なるタイプのモータとしても構わない。「バッテリ」としては、リチウムイオン電池として構成されたバッテリ50に限定されるものではなく、ニッケル水素電池など、バッテリであれば如何なるタイプのものとしても構わない。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための最良の形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。