図1は、本発明の一実施例としてのハイブリッド自動車20の構成の概略を示す構成図である。実施例のハイブリッド自動車20は、図示するように、ガソリンや軽油などを燃料として動力を出力するエンジン22と、エンジン22を駆動制御するエンジン用電子制御ユニット(以下、エンジンECUという)24と、エンジン22の出力軸としてのクランクシャフト26にダンパ28を介して複数のピニオンギヤ33を連結したキャリア34が接続されると共に駆動輪63a,63bにデファレンシャルギヤ62とギヤ機構60とを介して連結された駆動軸としてのリングギヤ軸32aにリングギヤ32が接続されたプラネタリギヤ30と、例えば周知の同期発電電動機として構成されてプラネタリギヤ30のサンギヤ31に回転子が接続されたモータMG1と、例えば周知の同期発電電動機として構成されて駆動軸としてのリングギヤ軸32aに減速ギヤ35を介して回転子が接続されたモータMG2と、モータMG1,MG2を駆動するためのインバータ41,42と、インバータ41,42のスイッチング素子を制御することによってモータMG1,MG2を駆動制御するモータ用電子制御ユニット(以下、モータECUという)40と、例えばリチウムイオン二次電池として構成されてインバータ41,42を介してモータMG1,MG2と電力をやりとりするバッテリ50と、バッテリ50を管理するバッテリ用電子制御ユニット(以下、バッテリECUという)52と、車両全体を制御するハイブリッド用電子制御ユニット(以下、HVECUという)70と、を備える。
エンジンECU24は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROMやデータを一時的に記憶するRAM,入出力ポート,通信ポートを備える。エンジンECU24には、エンジン22の運転状態を検出する各種センサから信号、例えば、クランクシャフト26の回転位置を検出するクランクポジションセンサからのクランクポジションθcrなどが入力ポートを介して入力されており、エンジンECU24からは、エンジン22を駆動するための種々の制御信号、例えば、燃料噴射弁への駆動信号やスロットルバルブのポジションを調節するスロットルモータへの駆動信号,イグナイタと一体化されたイグニッションコイルへの制御信号,吸気バルブの開閉タイミングの変更可能な可変バルブタイミング機構への制御信号などが出力ポートを介して出力されている。また、エンジンECU24は、HVECU70と通信しており、HVECU70からの制御信号によりエンジン22を運転制御すると共に必要に応じてエンジン22の運転状態に関するデータをHVECU70に出力する。なお、エンジンECU24は、クランクシャフト26に取り付けられた図示しないクランクポジションセンサからの信号に基づいてクランクシャフト26の回転数、即ちエンジン22の回転数Neも演算している。
モータECU40は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROMやデータを一時的に記憶するRAM,入出力ポート,通信ポートを備える。モータECU40には、モータMG1,MG2を駆動制御するために必要な信号、例えばモータMG1,MG2の回転子の回転位置を検出する回転位置検出センサ43,44からの回転位置θm1,θm2や図示しない電流センサにより検出されるモータMG1,MG2に印加される相電流などが入力ポートを介して入力されており、モータECU40からは、インバータ41,42の図示しないスイッチング素子へのスイッチング制御信号などが出力ポートを介して出力されている。また、モータECU40は、HVECU70と通信しており、HVECU70からの制御信号によってモータMG1,MG2を駆動制御すると共に必要に応じてモータMG1,MG2の運転状態に関するデータをHVECU70に出力する。なお、モータECU40は、回転位置検出センサ43,44からのモータMG1,MG2の回転子の回転位置θm1,θm2に基づいてモータMG1,MG2の回転角速度ωm1,ωm2や回転数Nm1,Nm2も演算している。
バッテリECU52は、図示しないが、CPUを中心とするマイクロプロセッサとして構成されており、CPUの他に、処理プログラムを記憶するROMやデータを一時的に記憶するRAM,入出力ポート,通信ポートを備える。バッテリECU52には、バッテリ50を管理するのに必要な信号、例えば、バッテリ50の端子間に設置された電圧センサからの端子間電圧Vbやバッテリ50の出力端子に接続された電力ラインに取り付けられた電流センサからの充放電電流Ib,バッテリ50に取り付けられた温度センサ51からの電池温度Tbなどが入力されており、必要に応じてバッテリ50の状態に関するデータを通信によりHVECU70に送信する。また、バッテリECU52は、バッテリ50を管理するために、電流センサにより検出された充放電電流Ibの積算値に基づいてそのときのバッテリ50から放電可能な電力の容量の全容量に対する割合である蓄電割合SOCを演算したり、演算した蓄電割合SOCと電池温度Tbとに基づいてバッテリ50を充放電してもよい最大許容入出力電力である入出力制限Win,Woutを演算したりしている。なお、バッテリ50の入出力制限Win,Woutは、電池温度Tbに基づいて入出力制限Win,Woutの基本値としての基本入出力制限Wintmp,Wouttmpを設定し、バッテリ50の蓄電割合SOCに基づいて出力制限用補正係数koutと入力制限用補正係数kinとを設定し、設定した基本入出力制限Wintmp,Wouttmpに入力制限用補正係数kin,出力制限用補正係数koutを乗じる、ことによって設定することができる。図2に電池温度Tbと基本入出力制限Wintmp,Wouttmpとの関係の一例を示し、図3にバッテリ50の蓄電割合SOCと出力制限用補正係数kout,入力制限用補正係数kinとの関係の一例を示す。
HVECU70は、CPU72を中心とするマイクロプロセッサとして構成されており、CPU72の他に、処理プログラムを記憶するROM74やデータを一時的に記憶するRAM76,入出力ポート,通信ポートを備える。HVECU70には、イグニッションスイッチ80からのイグニッション信号やシフトレバー81の操作位置を検出するシフトポジションセンサ82からのシフトポジションSP,アクセルペダル83の踏み込み量を検出するアクセルペダルポジションセンサ84からのアクセル開度Acc,ブレーキペダル85の踏み込み量を検出するブレーキペダルポジションセンサ86からのブレーキペダルポジションBP,車速センサ88からの車速Vなどが入力ポートを介して入力されている。HVECU70は、上述したように、エンジンECU24やモータECU40,バッテリECU52と通信ポートを介して接続されており、エンジンECU24やモータECU40,バッテリECU52と各種制御信号やデータのやりとりを行なっている。
こうして構成された実施例のハイブリッド自動車20では、運転者によるアクセルペダルの踏み込み量に対応するアクセル開度Accと車速Vとに基づいて駆動軸としてのリングギヤ軸32aに出力すべき要求トルクTr*を計算し、この要求トルクTr*に対応する要求動力がリングギヤ軸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の動作について説明する。図4は、実施例のHVECU70により実行される駆動制御ルーチンの一例を示すフローチャートである。このルーチンは、所定時間毎(例えば数msec毎)に繰り返し実行される。
駆動制御ルーチンが実行されると、HVECU70のCPU72は、まず、アクセルペダルポジションセンサ84からのアクセル開度Accや車速センサ88からの車速V,モータMG1,MG2の回転数Nm1,Nm2,バッテリ50の入出力制限Win,Woutなど制御に必要なデータを入力する(ステップS100)。ここで、モータMG1,MG2の回転数Nm1,Nm2は、回転位置検出センサ43,44により検出されたモータMG1,MG2の回転子の回転位置θm1,θm2に基づいて演算されたものをモータECU40から通信により入力するものとした。また、バッテリ50の入出力制限Win,Woutは、バッテリ50の電池温度Tbとバッテリ50の蓄電割合SOCとに基づいて設定されたものをバッテリECU52から通信により入力するものとした。
こうしてデータを入力すると、入力したアクセル開度Accと車速Vとに基づいて走行に要求される(駆動軸としてのリングギヤ軸32aに出力すべき)要求トルクTr*を設定し、設定した要求トルクTr*にリングギヤ軸32aの回転数Nrを乗じて走行に要求される走行用パワーPdrv*を計算し、計算した走行用パワーPdrv*からバッテリ50の蓄電割合SOCに基づく充放電要求パワーPb*(バッテリ50から放電するときが正の値)を減じて車両に要求される(エンジン22から出力すべき)要求パワーPe*を計算する(ステップS110)。ここで、要求トルクTr*は、実施例では、アクセル開度Accと車速Vと要求トルクTr*との関係を予め定めて要求トルク設定用マップとしてROM74に記憶しておき、アクセル開度Accと車速Vとが与えられると記憶したマップから対応する要求トルクTr*を導出して設定するものとした。要求トルク設定用マップの一例を図5に示す。また、リングギヤ軸32aの回転数Nrは、モータMG2の回転数Nm2を減速ギヤ35のギヤ比Grで除して計算したり、車速Vに換算係数を乗じて計算したりすることができる。
続いて、要求パワーPe*とエンジン22を効率よく動作させる動作ライン(例えば、燃費最適動作ラインなど)とに基づいて、エンジン22の目標回転数Ne*および目標トルクTe*の仮の値としての仮回転数Netmpおよび仮トルクTetmpを設定する(ステップS120)。エンジン22の動作ラインの一例と仮回転数Netmpおよび仮トルクTetmpを設定する様子とを図6に示す。図示するように、仮回転数Netmpおよび仮トルクTetmpは、動作ラインと要求パワーPe*が一定の曲線(要求パワーPe*の等パワーライン)との交点として求めることができる。
次に、モータMG1の性能上の上下限回転数Nm1max,Nm1minとリングギヤ軸32aの回転数Nr(=Nm2/Gr)とプラネタリギヤ30のギヤ比ρ(サンギヤの歯数/リングギヤの歯数)とを用いて次式(1)および式(2)によりエンジン22の上下限回転数Nemax(mg1),Nemin(mg1)を計算する(ステップS130)。ここで、モータMG1の性能上の上下限回転数Nm1max,Nm1minは、モータMG1の定格値における正回転側としての上限回転数と負回転側としての下限回転数である。また、式(1)および式(2)は、プラネタリギヤ30の回転要素に対する力学的な関係式である。図7は、エンジン22からパワーを出力しながら走行しているときのプラネタリギヤ30の回転要素における回転数とトルクとの力学的な関係を示す共線図の一例を示す説明図である。図中、左のS軸はモータMG1の回転数Nm1であるサンギヤ31の回転数を示し、C軸はエンジン22の回転数Neであるキャリア34の回転数を示し、R軸はモータMG2の回転数Nm2を減速ギヤ35のギヤ比Grで除して得られるリングギヤ32(リングギヤ軸32a)の回転数Nrを示す。また、R軸上の2つの太線矢印は、モータMG1から出力されてプラネタリギヤ30を介してリングギヤ軸32aに作用するトルクと、モータMG2から出力されて減速ギヤ35を介してリングギヤ軸32aに作用するトルクとを示す。式(1)および式(2)は、モータMG1の回転数Nm1に上下限回転数Nm1max,Nm1minを用いれば、この共線図から容易に導くことができる。
Nemax(mg1)=ρ・Nm1max/(1+ρ)+Nm2/(Gr・(1+ρ)) (1)
Nemin(mg1)=ρ・Nm1min/(1+ρ)+Nm2/(Gr・(1+ρ)) (2)
続いて、プラネタリギヤ30のピニオンギヤ33の性能上の上下限回転数Npinmax,Npinminとリングギヤ軸32aの回転数Nr(=Nm2/Gr)とプラネタリギヤ30におけるピニオンギヤ33に対するギヤ比γ(ピニオンギヤの歯数/リングギヤの歯数)とを用いて次式(3)および式(4)によりエンジン22の上下限回転数Nemax(pin),Nemin(pin)を計算する(ステップS140)。ここで、ピニオンギヤ33の性能上の上下限回転数Npinmax,Npinminは、プラネタリギヤ30の構造上の定格値における正回転側としての上限回転数と負回転側としての下限回転数である。
Nemax(pin)=Nm2/Gr+γ・Npinmax (3)
Nemin(pin)=Nm2/Gr+γ・Npinmin (4)
そして、バッテリ50の入出力制限Win,Woutに基づいて、エンジン22の上下限回転数Nemax(pin),Nemin(pin)に対するマージンα,βを設定する(ステップS150)。
ここで、マージンαは、実施例では、バッテリ50の入力制限Winとマージンαとの関係を予め定めて上限側マージン設定用マップとして図示しないROMに記憶しておき、バッテリ50の入力制限Winが与えられると記憶したマップから対応するマージンαを導出して設定するものとした。上限側マージン設定用マップの一例を図8に示す。マージンαは、図示するように、バッテリ50の入力制限Winの絶対値が小さいほど大きくなる傾向に設定するものとした。こうした傾向にマージンαを設定する理由に付いては後述する。
また、マージンβは、実施例では、バッテリ50の出力制限Woutに基づくマージンβの基本値としての基本マージンβtmpに、バッテリ50の入力制限Winに基づく補正係数kmを乗じて、計算するものとした。基本マージンβtmpは、実施例では、バッテリ50の出力制限Woutとマージンβとの関係を予め定めて下限側基本マージン設定用マップとして図示しないROMに記憶しておき、バッテリ50の出力制限Woutが与えられると記憶したマップから対応するマージンβを導出して設定するものとした。下限側基本マージン設定用マップの一例を図9に示す。基本マージンβtmpは、図示するように、バッテリ50のを出力制限Woutの絶対値が小さいほど大きくなる傾向に設定するものとした。また、補正係数kmは、実施例では、バッテリ50の入力制限Winと補正係数kmとの関係を予め定めて図示しないROMに記憶しておき、バッテリ50の入力制限Winが与えられると記憶したマップから対応する補正係数kmを乗じて設定するものとした。補正係数設定用マップの一例を図10に示す。補正係数kmは、図示するように、バッテリ50の入力制限Winの絶対値が小さいほど小さくなる傾向に設定するものとした。したがって、マージンβは、バッテリ50の出力制限Woutの絶対値が小さいほど大きくなる傾向で、且つ、バッテリ50の入力制限Winの絶対値が小さいほど小さくなる傾向に設定されることになる。こうした傾向にマージンβを設定する理由については後述する。
こうしてエンジン22の上下限回転数Nemax(mg1),Nemmin(mg1),エンジン22の上下限回転数Nemax(pin),Nemin(pin),マージンα,βを設定すると、次式(5)に示すように、エンジン22の上限回転数Nemax(mg1)とエンジン22の上限回転数Nemax(pin)からマージンαを減じた値(Nemax(pin)−α)とエンジン22の性能上の上限回転数Nemax(eg)との最小値をエンジン22の許容上限回転数Nemaxに設定すると共に、式(6)に示すように、エンジン22の下限回転数Nemin(mg1)とエンジン22の下限回転数Nemin(pin)にマージンβを加えた値(Nemin(pin)+β)とエンジン22の性能上の下限回転数としての値0とのうち最大値をエンジン22の許容下限回転数Neminに設定する(ステップS160)。ここで、エンジン22の性能上の上限回転数Nemax(eg)は、エンジン22の定格値としての上限回転数である。また、リングギヤ軸32aの回転数Nrとエンジン22の許容上下限回転数Nemax,Neminとの関係の一例を図11に示す。図11の例では、エンジン22の許容上限回転数Nemaxは、リングギヤ軸32aの回転数Nrが上限回転数Nemax(mg1)と値(Nemax(pin)−α)との交点の回転数Nr1未満の領域では値(Nemax(pin)−α)が設定され、リングギヤ軸32aの回転数Nrが回転数Nr1以上の領域では上限回転数Nemax(mg1)が設定される。また、エンジン22の許容下限回転数Neminは、リングギヤ軸32aの回転数Nrが下限回転数Nemin(mg1)と値0との交点の回転数Nr2未満の領域では値0が設定され、リングギヤ軸32aの回転数Nrが回転数Nr2以上で下限回転数Nemin(mg1)と値(Nemin(pin)+β)との交点の回転数Nr3未満の領域では下限回転数Nemin(mg1)が設定され、リングギヤ軸32aの回転数Nrが回転数Nr3以上の領域では値(Nemin(pin)+β)が設定される。
Nemax=min(Nemax(mg1),Nemax(pin)-α,Nemax(eg)) (5)
Nemin=min(Nemin(mg1),Nemin(pin)+β,0) (6)
こうしてエンジン22の許容上限回転数Nemaxと許容下限回転数Neminとを設定すると、次式(7)に示すように、エンジン22の仮回転数Netmpを許容上限回転数Nemaxと許容下限回転数Neminとによって制限してエンジン22の目標回転数Ne*を設定すると共に設定した目標回転数Ne*で要求パワーPe*を除してエンジン22の目標トルクTe*を設定する(ステップS170)。この処理により、仮回転数Netmpが許容上限回転数Nemaxと許容下限回転数Neminとの範囲内となるときには、仮回転数Netmpを目標回転数Ne*に設定し、仮回転数Netmpが許容上限回転数Nemaxより大きいときには、許容上限回転数Nemaxを目標回転数Ne*に設定し、仮回転数Netmpが許容下限回転数Neminより小さいときには、許容下限回転数Neminを目標回転数Ne*に設定することになる。
Ne*=max(min(Netmp,Nemax),Nemin) (7)
次に、エンジン22の目標回転数Ne*とリングギヤ軸32aの回転数Nr(=Nm2/Gr)とプラネタリギヤ30のギヤ比ρとを用いて次式(8)によりモータMG1の目標回転数Nm1*を計算すると共に計算したモータMG1の目標回転数Nm1*と入力したモータMG1の回転数Nm1とエンジン22の目標トルクTe*とプラネタリギヤ30のギヤ比ρとを用いて式(9)によりモータMG1のトルク指令Tm1*の仮の値としての仮トルクTm1tmpを計算する(ステップS180)。ここで、式(8)は、プラネタリギヤ30の回転要素に対する力学的な関係式であり、図7の共線図を用いれば容易に導くことができる。また、式(9)は、モータMG1を目標回転数Nm1*で回転させる(エンジン22を目標回転数Ne*で回転させる)ためのフィードバック制御における関係式であり、式(9)中、右辺第2項の「k1」は比例項のゲインであり、右辺第3項の「k2」は積分項のゲインである。
Nm1*=Ne*・(1+ρ)/ρ-Nm2/(Gr・ρ) (8)
Tm1tmp=-ρ・Te*/(1+ρ)+k1(Nm1*-Nm1)+k2∫(Nm1*-Nm1)dt (9)
続いて、次式(10)に示すように、要求トルクTr*にモータMG1のトルク指令Tm1*をプラネタリギヤ30のギヤ比ρで除したものを加えて更に減速ギヤ35のギヤ比Grで除してモータMG2のトルク指令Tm2*の仮の値としての仮トルクTm2tmpを計算する(ステップS190)。ここで、式(10)は、図7の共線図を用いれば容易に導くことができる。
Tm2tmp=(Tr*+Tm1*/ρ)/Gr (10)
そして、次式(11)および式(12)を共に満たすモータMG1から出力してもよいトルクの上下限としてのトルク制限Tm1min,Tm1maxを設定する(ステップS200)。ここで、式(11)は、モータMG1とモータMG2とからリングギヤ軸32aに出力されるトルクの総和が値0から要求トルクTr*までの範囲内となる関係であり、式(12)は、モータMG1とモータMG2とによって入出力される電力の総和がバッテリ50の入出力制限Win,Woutの範囲内となる関係である。図12は、モータMG1のトルク制限Tm1min,Tm1maxの一例を示す説明図である。トルク制限Tm1min,Tm1maxは、図中斜線で示した領域における仮トルクTm1tmpの最大値および最小値として求めることができる。図12から分かるように、要求トルクTr*が正の値のときには、モータMG1とモータMG2とからリングギヤ軸32aに出力されるトルクの総和が要求トルクTr*となる関係とモータMG1とモータMG2とによって入出力される電力の総和がバッテリ50の入力制限Winとなる関係とを満たすモータMG1の駆動点をトルク制限Tm1minに設定する即ち式(11)と式(12)とから得られる式(13)によりトルク制限Tm1minを計算すると共に、モータMG1とモータMG2とからリングギヤ軸32aに出力されるトルクの総和が値0となる関係とモータMG1とモータMG2とによって入出力される電力の総和がバッテリ50の出力制限Woutとなる関係とを満たすモータMG1の駆動点をトルク制限Tm1maxに設定する即ち式(11)と式(12)とから得られる式(14)によりトルク制限Tm1maxを計算することになる。
0≦-Tm1tmp/ρ+Tm2tmp・Gr≦Tr* (11)
Win≦Tm1tmp・Nm1+Tm2tmp・Nm2≦Wout (12)
Tm1min=(Win・Gr-Tr*・Nm2)/(Nm1・Gr+Nm2/ρ) (13)
Tm1max=Wout・Gr/(Nm1・Gr+Nm2/ρ) (14)
こうしてトルク制限Tm1min,Tm1maxを設定すると、次式(15)に示すように、モータMG1の仮トルクTm1tmpをトルク制限Tm1min,Tm1maxで制限してモータMG1のトルク指令Tm1*を設定する(ステップS210)。
Tm1*=max(min(Tm1tmp,Tm1max),Tm1min) (15)
そして、次式(16)および式(17)に示すように、バッテリ50の入出力制限Win,WoutとモータMG1のトルク指令Tm1*にモータMG1の現在の回転数Nm1を乗じて得られるモータMG1の消費電力(発電電力)との差分をモータMG2の回転数Nm2で除して、モータMG2から出力してもよいトルクの上下限としてのトルク制限Tm2min,Tm2maxを計算し(ステップS220)、式(18)に示すように、モータMG2の仮トルクTm2tmpをトルク制限Tm2min,Tm2maxで制限してモータMG2のトルク指令Tm2*を設定する(ステップS230)。
Tm2min=(Win-Tm1*・Nm1)/Nm2 (16)
Tm2max=(Wout-Tm1*・Nm1)/Nm2 (17)
Tm2*=max(min(Tm2tmp,Tm2max),Tm2min) (18)
こうしてエンジン22の目標回転数Ne*や目標トルクTe*やモータMG1,MG2のトルク指令Tm1*,Tm2*を設定すると、エンジン22の目標回転数Ne*や目標トルクTe*についてはエンジンECU24に、モータMG1,MG2のトルク指令Tm1*,Tm2*についてはモータECU40にそれぞれ送信して(ステップS380)、本ルーチンを終了する。エンジン22の目標回転数Ne*と目標トルクTe*とを受信したエンジンECU24は、エンジン22が目標回転数Ne*と目標トルクTe*とからなる運転ポイントで運転されるようエンジン22の吸入空気量制御や燃料噴射制御,点火制御などを行なう。また、モータMG1,MG2のトルク指令Tm1*,Tm2*を受信したモータECU40は、モータMG1,MG2がトルク指令Tm1*,Tm2*で駆動されるようインバータ41,42のスイッチング素子のスイッチング制御を行なう。
ここで、上述したように、バッテリ50の入力制限Winの絶対値が小さいほど大きくなる傾向にマージンαを設定し、バッテリ50の出力制限Woutの絶対値が小さいほど大きくなる傾向で且つバッテリ50の入力制限Winの絶対値が小さいほど小さくなる傾向にマージンβを設定する理由について説明する。まず、マージンαについて説明し、その後、マージンβについて説明する。
マージンαについて説明するために、エンジン22の運転を伴って発進してアクセルペダル83が大きく踏み込まれたときを考える。図13は、このときのエンジン22の目標回転数Ne*や回転数Neの時間変化の様子の一例を示す説明図である。アクセルペダル83が大きく踏み込まれて要求パワーPe*に基づくエンジン22の仮回転数Netmpが増加して、図示するように、エンジン22の目標回転数Ne*が許容上限回転数Nemax(=Nemax(pin)−α)以下の範囲内で増加すると、エンジン22の回転数Neは、目標回転数Ne*に追従して増加するが目標回転数Ne*に対してオーバーシュートする場合がある。エンジン22の回転数Neが目標回転数Ne*より大きくなると、回転数Neを目標回転数Ne*となるようにするためにモータMG1から負の方向(エンジン22の回転数Neを小さくする方向)のトルクを出力する必要があるが、上述の式(13)から解るように、バッテリ50の入力制限Winが大きい(絶対値としては小さい)ほどトルク制限Tm1minが大きくなる(絶対値としては小さくなる)から、入力制限Winが大きいほど回転数Neの目標回転数Ne*に対するオーバーシュートの程度が大きくなりやすいと考えられる。これを踏まえて、実施例では、バッテリ50の入力制限Winの絶対値が小さいほど大きくなる傾向にマージンαを設定するものとした。これにより、入力制限Winの絶対値が大きいときには、マージンαを小さくすることにより、エンジン22の動作範囲をより大きくすることができ、入力制限Winの絶対値が小さいときには、マージンαを大きくすることにより、エンジン22の回転数Neが上限回転数Nemax(pin)を超過する(プラネタリギヤ30のピニオンギヤ33の回転数が上限回転数Npinmaxを超過する)のをより十分に抑制することができる。
マージンβについて説明するために、高車速で走行している最中にアクセルペダル83が踏み戻されたときを考える。図14は、このときのバッテリ50の入出力電力Pbとエンジン22の目標回転数Ne*や回転数Neとの時間変化の様子の一例を示す説明図である。アクセルペダル83が踏み戻されて要求パワーPe*に基づくエンジン22の仮回転数Netmpが減少して、図示するように、エンジン22の目標回転数Ne*が許容下限回転数Nemin(=Nemax(pin)+β)以上の範囲内で減少すると、エンジン22の回転数Neは、目標回転数Ne*に追従して減少するが目標回転数Ne*に対してアンダーシュートする場合がある。まず、エンジン22の回転数Neを小さくする際には、モータMG1から負の方向のトルクを出力するが、上述の式(13)から解るように、バッテリ50の入力制限Winが大きい(絶対値としては小さい)ほどトルク制限Tm1minが大きくなる(絶対値としては小さくなる)から、入力制限Winが大きいほどモータMG1によってエンジン22の回転数Neを緩やかに引き下げることになり、回転数Neが目標回転数Ne*に対してアンダーシュートする場合にその程度は小さくなると考えられる。また、エンジン22の回転数Neが目標回転数Ne*より小さくなると、回転数Neを目標回転数Ne*となるようにするためにモータMG1から正の方向(エンジン22の回転数Neを大きくする方向)のトルクを出力する必要があるが、上述の式(14)から解るように、バッテリ50の出力制限Woutが小さいほどトルク制限Tm1maxが小さくなるから、出力制限Woutが小さいほど回転数Neの目標回転数Ne*に対するアンダーシュートの程度が大きくなりやすいと考えられる。これを踏まえて、実施例では、バッテリ50の出力制限Woutの絶対値が小さいほど大きくなる傾向で且つバッテリ50の入力制限Winの絶対値が小さいほど小さくなる傾向にマージンβを設定するものとした。これにより、入力制限Winの絶対値が小さく出力制限Woutの絶対値が大きいときには、マージンβを小さくすることにより、エンジン22の動作範囲をより大きくすることができ、入力制限Winの絶対値が大きく出力制限Woutの絶対値が小さいときには、マージンβを大きくすることにより、エンジン22の回転数Neが下限回転数Nemax(pin)を超過する(プラネタリギヤ30のピニオンギヤ33の回転数が下限回転数Npinminを超過する)のをより十分に抑制することができる。なお、実施例では、出力制限Woutの変化に対するマージンβの変化程度が入力制限Winの変化に対するマージンβの変化程度より高くなるよう基本マージンβtmpや補正係数kmを設定するものとした。これは、実験や解析により、回転数Neの目標回転数Ne*に対するアンダーシュートの程度が入力制限Winによる影響に比して出力制限Woutによる影響をより受けることが解った、との理由に基づく。
以上説明した実施例のハイブリッド自動車20では、モータMG1の性能上の上限回転数Nm1maxに基づくエンジン22の上限回転数Nemax(mg1)と、プラネタリギヤ30のピニオンギヤ33の性能上の上限回転数Npinmaxに基づくエンジン22の上限回転数Nemax(pin)からバッテリ50の出力制限Woutに基づくマージンαを減じた値(Nemax(pin)−α)と、エンジン22の性能上の上限回転数Nemax(eg)と、の最小値をエンジン22の許容上限回転数Nemaxに設定する。また、モータMG1の性能上の下限回転数Nm1minに基づくエンジン22の下限回転数Nemin(mg1)と、プラネタリギヤ30のピニオンギヤ33の性能上の下限回転数Npinminに基づくエンジン22の下限回転数Nemin(pin)にバッテリ50の入出力制限Win,Woutに基づくマージンβを加えた値(Nemin(pin)+β)と、エンジン22の性能上の下限回転数としての値0と、のうち最大値をエンジン22の許容下限回転数Neminに設定する。そして、設定した許容上下限回転数Nemax,Neminの範囲内でエンジン22の目標回転数Ne*を設定してエンジン22を制御する。これにより、バッテリ50の入出力制限Win,Woutに応じてエンジン22の動作範囲をより適正に設定することができる。
実施例のハイブリッド自動車20では、マージンβは、バッテリ50の入出力制限Win,Woutに基づいて設定するものとしたが、バッテリ50の出力制限Woutだけに基づいて(入力制限Winを考慮せずに)設定するものとしてもよい。
実施例のハイブリッド自動車20では、バッテリ50の入力制限Winに基づいてマージンαを設定すると共にバッテリ50の入出力制限Win,Woutに基づいてマージンβを設定するものとしたが、マージンαについてはバッテリ50の入力制限Winに基づいて設定するがマージンβについては予め定められた値を用いるものとしてもよいし、マージンβについてはバッテリ50の入出力制限Win,Wout(または出力制限Woutだけ)に基づいて設定するがマージンαについては予め定められた値を用いるものとしてもよい。
実施例のハイブリッド自動車20では、モータMG1の性能上の上限回転数Nm1maxに基づくエンジン22の上限回転数Nemax(mg1)と、プラネタリギヤ30のピニオンギヤ33の性能上の上限回転数Npinmaxに基づくエンジン22の上限回転数Nemax(pin)からバッテリ50の入力制限Winに基づくマージンαを減じた値(Nemax(pin)−α)と、エンジン22の性能上の上限回転数Nemax(eg)と、の最小値をエンジン22の許容上限回転数Nemaxに設定するものとしたが、定格値の大きなエンジン22やモータMG1を用いる場合、具体的には、車速V(モータMG2の回転数Nm2)に拘わらず上限回転数Nemax(mg1)や上限回転数Nemax(eg)が上限回転数Nemax(pin)より大きくなる場合、車速Vに拘わらず、値(Nemax(pin)−α)をエンジン22の許容上限回転数Nemaxに設定することになるから、上限回転数Nemax(mg1)や上限回転数Nemax(eg)を考慮しないものとしてもよい。同様に、車速Vに拘わらず下限回転数Nemin(mg1)が下限回転数Nemin(pin)より小さくなる場合、車速Vに拘わらず、値0以上の範囲内で値(Nemin(pin)+β)をエンジン22の許容下限回転数Neminに設定することになるから、下限回転数Nemin(mg1)を考慮しないものとしてもよい。
実施例のハイブリッド自動車20では、減速ギヤ35を介して駆動軸としてのリングギヤ軸32aにモータMG2を接続するものとしたが、リングギヤ軸32aにモータMG2を直接接続するものとしてもよいし、減速ギヤ35に代えて2段変速や3段変速,4段変速などの変速機を介してリングギヤ軸32aにモータMG2を接続するものとしてもよい。
実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、エンジン22が「エンジン」に相当し、モータMG1が「第1モータ」に相当し、プラネタリギヤ30が「プラネタリギヤ」に相当し、モータMG2が「第2モータ」に相当し、バッテリ50が「バッテリ」に相当し、図4の駆動制御ルーチンを実行するHVECU70と、HVECU70からの目標回転数Ne*や目標トルクTe*に基づいてエンジン22を制御するエンジンECU24と、HVECU70からのトルク指令Tm1*,Tm2*に基づいてモータMG1,MG2を制御するモータECU40と、が「制御手段」に相当する。
ここで、「エンジン」としては、ガソリンや軽油などを燃料として動力を出力するエンジン22に限定されるものではなく、如何なるタイプのエンジンであっても構わない。「第1モータ」としては、同期発電電動機として構成されたモータMG1に限定されるものではなく、誘導電動機など、如何なるタイプのモータであっても構わない。「プラネタリギヤ」としては、プラネタリギヤ30に限定されるものではなく、複数のプラネタリギヤの組み合わせによって構成されたものなど、車軸に連結された駆動軸とエンジンと第1モータとにリングギヤと複数のピニオンギヤを連結したキャリアとサンギヤとが接続されたものであれば如何なるものとしても構わない。「第2モータ」としては、同期発電電動機として構成されたモータMG2に限定されるものではなく、誘導電動機など、駆動軸に接続されたものであれば如何なるタイプのモータであっても構わない。「バッテリ」としては、リチウムイオン二次電池として構成されたバッテリ50に限定されるものではなく、ニッケル水素二次電池やニッケルカドミウム二次電池,鉛蓄電池など、第1モータおよび第2モータと電力をやりとりするものであれば如何なるタイプのバッテリであっても構わない。「制御手段」としては、HVECU70とエンジンECU24とモータECU40とからなる組み合わせによって構成されるものに限定されるものではなく、単一の電子制御ユニットによって構成されるものなどとしてもよい。また、「制御手段」としては、モータMG1の性能上の上限回転数Nm1maxに基づくエンジン22の上限回転数Nemax(mg1)と、プラネタリギヤ30のピニオンギヤ33の性能上の上限回転数Npinmaxに基づくエンジン22の上限回転数Nemax(pin)からバッテリ50の出力制限Woutに基づくマージンαを減じた値(Nemax(pin)−α)と、エンジン22の性能上の上限回転数Nemax(eg)と、の最小値をエンジン22の許容上限回転数Nemaxに設定し、モータMG1の性能上の下限回転数Nm1minに基づくエンジン22の下限回転数Nemin(mg1)と、プラネタリギヤ30のピニオンギヤ33の性能上の下限回転数Npinminに基づくエンジン22の下限回転数Nemin(pin)にバッテリ50の入出力制限Win,Woutに基づくマージンβを加えた値(Nemin(pin)+β)と、エンジン22の性能上の下限回転数としての値0と、のうち最大値をエンジン22の許容下限回転数Neminに設定し、設定した許容上下限回転数Nemax,Neminの範囲内でエンジン22の目標回転数Ne*を設定し、その目標回転数Ne*でエンジン22が運転されながら走行するようエンジン22とモータMG1,MG2とを制御するものに限定されるものではなく、ピニオンギヤの性能から得られるエンジンの上限回転数であるピニオンギヤ起因上限回転数から第1マージンを減じた値と、ピニオンギヤの性能から得られるエンジンの下限回転数であるピニオンギヤ起因下限回転数に第2マージンを加えた値と、の範囲内でエンジンの目標回転数を設定し、設定した目標回転数を用いてエンジンが運転されながら走行するようエンジンと第1モータと第2モータとを制御し、第1マージンと第2マージンとのうち少なくとも一方をバッテリの最大許容電力に基づいて設定するものであれば如何なるものとしても構わない。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行なわれるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。