図1は、本発明の一実施例であるハイブリッド自動車20の構成の概略を示す構成図である。実施例のハイブリッド自動車20は、図示するように、エンジン22と、エンジン22の出力軸としてのクランクシャフト26にダンパ28を介して接続された3軸式の動力分配統合機構30と、動力分配統合機構30に接続された発電可能なモータMG1と、動力分配統合機構30に接続された駆動軸としてのリングギヤ軸32aに取り付けられた減速ギヤ35と、この減速ギヤ35に接続されたモータMG2と、動力出力装置全体をコントロールするハイブリッド用電子制御ユニット(以下、ハイブリッドECUという)70とを備える。
図2にエンジン22の構成の概略図を示す。エンジン22は、例えばガソリン又は軽油などの炭化水素系の燃料により動力を出力可能な内燃機関であり、吸気マニホールド127に燃料を気筒毎に噴射可能な独立噴射式の4気筒エンジンとして構成されている。このエンジン22は、エアクリーナ122により清浄された空気をスロットルバルブ124を介して吸入すると共に、各気筒に分岐した吸気マニホールド127に取り付けられてガソリンを気筒ごとに噴射する燃料噴射弁126からガソリンを噴射して吸入された空気とガソリンとを混合し、この混合気を吸気バルブ128を介して燃料室に吸入し、点火プラグ130による電気火花によって爆発燃焼させて、そのエネルギにより押し下げられるピストン132の往復運動をクランクシャフト26の回転運動に変換する。エンジン22からの排気は、一酸化炭素(CO)や炭化水素(HC),窒素酸化物(NOx)の有害成分を浄化する浄化装置(三元触媒)134を介して外気へ排出される。
エンジン22は、エンジン用電子制御ユニット(以下、エンジンECUという)24により制御されている。エンジンECU24は、CPU24aを中心とするマイクロプロセッサとして構成されており、CPU24aの他に処理プログラムを記憶するROM24bと、データを一時的に記憶するRAM24cと、図示しない入出力ポート及び通信ポートとを備える。エンジンECU24には、エンジン22の状態を検出する種々のセンサからの信号、クランクシャフト26のクランク角を検出するクランク角センサ140からのパルスやエンジン22の冷却水の温度を検出する水温センサ142からの冷却水温,燃焼室内に取り付けられた圧力センサ143からの筒内圧力,燃焼室へ吸排気を行う吸気バルブ128や排気バルブを開閉するカムシャフトの回転位置を検出するカムポジションセンサ144からのカムポジション,スロットルバルブ124のポジションを検出するスロットルバルブポジションセンサ146からのスロットルポジション,吸気管に取り付けられたエアフローメータ148からのエアフローメータ信号,同じく吸気管に取り付けられた温度センサ149からの吸気温,空燃比センサ135aからの空燃比,酸素センサ135bからの酸素信号などが入力ポートを介して入力されている。また、エンジンECU24からは、エンジン22を駆動するための種々の制御信号、例えば、燃料噴射弁126への駆動信号や、スロットルバルブ124のポジションを調節するスロットルモータ136への駆動信号、イグナイタと一体化されたイグニッションコイル138への制御信号、吸気バルブ128の開閉タイミングを変更可能な可変バルブタイミング機構150への制御信号などが出力ポートを介して出力されている。なお、エンジンECU24は、ハイブリッドECU70と通信しており、ハイブリッドECU70からの制御信号によりエンジン22を運転制御すると共に必要に応じてエンジン22の運転状態に関するデータを出力する。ここで、クランク角センサ140は、クランクシャフト26に取り付けられた図示しないマグネットロータに対向する位置に磁気抵抗素子を配置したMRE回転センサとして構成されており、所定角度(例えばクランク角5°CA)ごとにパルスを出力する。実施例では、このクランク角センサ140が発生するパルスを利用してクランク角CAを特定すると共にエンジン22の回転数Neを計算している。
図3に各気筒22a〜22dの4つの行程とクランク角CAとの関係の一例を示す。なお、図3には各気筒22a〜22dの燃料噴射時期及び点火時期,時刻a〜d,時間t1〜t2なども示しているが、これらについては後述する。エンジン22の各気筒22a〜22dは、吸気行程、圧縮行程、膨張行程(燃焼行程)、排気行程の4行程を1サイクルとして駆動する気筒として構成されており、1番気筒22a,2番気筒22b,3番気筒22c,4番気筒22dの順に直列に配置されると共に1番気筒22a,3番気筒22c,4番気筒22d,2番気筒22bの順にクランク角CAが180°ずつ異なるようクランクシャフト26に連結されている。なお、図2は1番気筒22aについて例示したものであるが、残り3つの気筒も同じ構成である。
動力分配統合機構30は、外歯歯車のサンギヤ31と、このサンギヤ31と同心円上に配置された内歯歯車のリングギヤ32と、サンギヤ31に噛合すると共にリングギヤ32に噛合する複数のピニオンギヤ33と、複数のピニオンギヤ33を自転かつ公転自在に保持するキャリア34とを備え、サンギヤ31とリングギヤ32とキャリア34とを回転要素として差動作用を行う遊星歯車機構として構成されている。動力分配統合機構30は、キャリア34にはエンジン22のクランクシャフト26が、サンギヤ31にはモータMG1が、リングギヤ32にはリングギヤ軸32aを介して減速ギヤ35がそれぞれ連結されており、モータMG1が発電機として機能するときにはキャリア34から入力されるエンジン22からの動力をサンギヤ31側とリングギヤ32側にそのギヤ比に応じて分配し、モータMG1が電動機として機能するときにはキャリア34から入力されるエンジン22からの動力とサンギヤ31から入力されるモータMG1からの動力を統合してリングギヤ32側に出力する。リングギヤ32に出力された動力は、リングギヤ軸32aからギヤ機構60及びデファレンシャルギヤ62を介して、最終的には車両の駆動輪63a,63bに出力される。
モータMG1及びモータMG2は、いずれも発電機として駆動することができると共に電動機として駆動できる周知の同期発電電動機として構成されており、インバータ41,42を介してバッテリ50と電力のやりとりを行う。インバータ41,42とバッテリ50とを接続する電力ライン54は、各インバータ41,42が共用する正極母線及び負極母線として構成されており、モータMG1,MG2のいずれかで発電される電力を他のモータで消費することができるようになっている。したがって、バッテリ50は、モータMG1,MG2のいずれかから生じた電力や不足する電力により充放電されることになる。なお、モータMG1,MG2により電力収支のバランスをとるものとすれば、バッテリ50は充放電されない。モータMG1,MG2は、いずれもモータ用電子制御ユニット(以下、モータECUという)40により駆動制御されている。モータECU40には、モータMG1,MG2を駆動制御するために必要な信号、例えばモータMG1,MG2の回転子の回転位置を検出する回転位置検出センサ43,44からの信号や図示しない電流センサにより検出されるモータMG1,MG2に印加される相電流などが入力されており、モータECU40からは、インバータ41,42へのスイッチング制御信号が出力されている。モータECU40は、ハイブリッドECU70と通信しており、ハイブリッドECU70からの制御信号によってモータMG1,MG2を駆動制御すると共に必要に応じてモータMG1,MG2の運転状態に関するデータをハイブリッドECU70に出力する。なお、モータECU40は、回転位置検出センサ43,44からの信号に基づいてモータMG1,MG2の回転数Nm1,Nm2も演算している。
バッテリ50は、バッテリ用電子制御ユニット(以下、バッテリECUという)52によって管理されている。バッテリECU52には、バッテリ50を管理するのに必要な信号、例えば、バッテリ50の端子間に設置された図示しない電圧センサからの端子間電圧,バッテリ50の出力端子に接続された電力ライン54に取り付けられた図示しない電流センサからの充放電電流,バッテリ50に取り付けられた温度センサ51からの電池温度Tbなどが入力されており、必要に応じてバッテリ50の状態に関するデータを通信によりハイブリッドECU70に出力する。また、バッテリECU52は、バッテリ50を管理するために電流センサにより検出された充放電電流の積算値に基づいて残容量(SOC)を演算したり、演算した残容量(SOC)と電池温度Tbとに基づいてバッテリ50を充放電してもよい最大許容電力である入出力制限Win,Woutを演算したりしている。
ハイブリッドECU70は、CPU72を中心とするマイクロプロセッサとして構成されており、CPU72の他に処理プログラムを記憶するROM74と、データを一時的に記憶するRAM76と、図示しない入出力ポート及び通信ポートとを備える。ハイブリッドECU70には、イグニッションスイッチ80からのイグニッション信号,シフトレバー81の操作位置を検出するシフトポジションセンサ82からのシフトポジションSP,アクセルペダル83の踏み込み量を検出するアクセルペダルポジションセンサ84からのアクセル開度Acc,ブレーキペダル85の踏み込み量を検出するブレーキペダルポジションセンサ86からのブレーキペダルポジションBP,車速センサ88からの車速Vなどが入力ポートを介して入力されている。ハイブリッドECU70は、前述したように、エンジン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の動作について説明する。図4はエンジンECU24により実行されるエンジン制御ルーチンの一例を示すフローチャートであり、図5はハイブリッドECU70により実行される駆動制御ルーチンの一例を示すフローチャートである。まず、図4のエンジン制御ルーチンを用いてエンジンECU24によるエンジン22の制御について説明し、その後、図5の駆動制御ルーチンを用いてエンジン22の燃料カット時に補正トルクを出力する際の制御について説明する。
図4のエンジン制御ルーチンは、所定時間毎(例えば数msec毎)に繰り返し実行される。このルーチンが実行されると、エンジンECU24は、まず、ハイブリッドECU70から送信されたエンジン22の目標回転数Ne*,エンジン22の目標トルクTe*及び燃料カット指示フラグFdなど制御に必要なデータを入力する処理を実行する(ステップS100)。ここで、目標回転数Ne*,目標トルクTe*及び燃料カット指示フラグFdは、後述する駆動制御ルーチンが実行されるごとにハイブリッドECU70が設定してエンジンECU24に送信するデータである。これらのデータを入力すると、エンジンECU24は、燃料カット指示フラグFdが値1であるか否かを判定する(ステップS110)。燃料カット指示フラグFdは、後述する駆動制御ルーチンにおいてハイブリッドECU70がエンジン22の燃料カットをすべきと判断したときに値1が送信され、燃料カットをすべきでないと判断したときに値0が送信される。ステップS110で燃料カット指示フラグFdが値1であるときは、燃料噴射弁126への駆動信号を停止すなわち燃料カットを実行し(ステップS120)、燃料カット実施フラグFeとして値1をハイブリッドECU70に送信して(ステップS130)、本ルーチンを終了する。一方、ステップS110で燃料カット指示フラグFdが値0であるときは、燃料カットを実行せず、エンジン22が目標回転数Ne*と目標トルクTe*とによって示される運転ポイントで運転されるようにエンジン22の制御を行い(ステップS140)、燃料カット実施フラグFeとして値0をハイブリッドECU70に送信して(ステップS150)、本ルーチンを終了する。
以上説明したエンジン制御ルーチンにより、ハイブリッドECU70から送信される燃料カット指示フラグFdが値1の場合は燃料カットを実行し、燃料カット指示フラグFdが値0の場合は燃料カットを実行せずエンジン22を目標回転数Ne*と目標トルクTe*で運転するよう制御する。そして、燃料カットが実行又は不実行である旨を燃料カット実施フラグFeの送信によりハイブリッドECU70に報告する。
次に、図5の駆動制御ルーチンについて説明する。駆動制御ルーチンは所定時間毎(例えば数msec毎)に繰り返し実行される。このルーチンが実行されると、ハイブリッドECU70は、まず、アクセルペダルポジションセンサ84からのアクセル開度Accや車速センサ88からの車速V,エンジン22の回転数Ne,モータMG1,MG2の回転数Nm1,Nm2,燃料カット実施フラグFeなど制御に必要なデータを入力する処理を実行する(ステップS200)。ここで、エンジン22の回転数Neはクランクシャフト26に取り付けられたクランク角センサ140からのパルスに基づいて計算されたものをエンジンECU24から通信により入力するものとした。モータMG1,MG2の回転数Nm1,Nm2は、回転位置検出センサ43,44により検出されるモータMG1,MG2の回転子の回転位置に基づいて計算されたものをモータECU40から通信により入力するものとした。燃料カット実施フラグFeは、前述のエンジン制御ルーチンの実行によりエンジンECU24から入力するものとした。
こうしてデータを入力すると、入力したアクセル開度Accと車速Vとに基づいて車両に要求されるトルクとして駆動輪63a,63bに連結された駆動軸としてのリングギヤ軸32aに出力すべき要求トルクTr*と車両に要求される要求パワーP*とを設定する(ステップS210)。要求トルクTr*は、実施例では、アクセル開度Accと車速Vと要求トルクTr*との関係を予め定めて要求トルク設定用マップとしてROM74に記憶しておき、アクセル開度Accと車速Vとが与えられると記憶したマップから対応する要求トルクTr*を導出して設定するものとした。図6に要求トルク設定用マップの一例を示す。要求パワーP*は、設定した要求トルクTr*にリングギヤ軸32aの回転数Nrを乗じたものとバッテリ50が要求する充放電要求パワーPb*とロスLossとの和として計算することができる。なお、リングギヤ軸32aの回転数Nrは、車速Vに換算係数kを乗じることによって求めたり、モータMG2の回転数Nm2を減速ギヤ35のギヤ比Grで割ることによって求めたりすることができる。
要求トルクTr*と要求パワーP*とを設定すると、設定した要求パワーP*と閾値Prefとを比較する(ステップS220)。ここで、閾値Prefは、エンジン22から動力を出力すべき領域たとえばエンジン22が効率よく運転することができる領域の下限としてエンジン22やモータMG2の特性などにより定められている。要求パワーP*が閾値Pref以上と判定されると、エンジン22の運転を継続するため燃料カットが必要ないと判断し、設定した要求パワーP*に基づいてエンジン22の目標回転数Ne*と目標トルクTe*とを設定すると共に、燃料カット指示フラグFdを値0に設定する(ステップS230)。目標回転数Ne*と目標トルクTe*との設定は、エンジン22を効率よく動作させる動作ラインと要求パワーP*とに基づいて行われる。エンジン22の動作ラインの一例と目標回転数Ne*と目標トルクTe*とを設定する様子を図7に示す。図示するように、目標回転数Ne*と目標トルクTe*は、動作ラインと要求パワーP*(=Ne*×Te*)が一定の曲線との交点により求めることができる。
次に、設定した目標回転数Ne*とリングギヤ軸32aの回転数Nr(=Nm2/Gr)と動力分配統合機構30のギヤ比ρとを用いて次式(2)によりモータMG1の目標回転数Nm1*を計算すると共に計算した目標回転数Nm1*と現在の回転数Nm1とに基づいて式(3)によりモータMG1のトルク指令Tm1*を計算する(ステップS240)。ここで、式(2)は、動力分配統合機構30の回転要素に対する力学的な関係式である。動力分配統合機構30の回転要素における回転数とトルクとの力学的な関係を示す共線図を図8に示す。図中、左の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に作用するトルクとを示す。また、式(3)は、モータMG1を目標回転数Nm1*で回転させるためのフィードバック制御における関係式であり、式(3)中、右辺第2項の「k1」は比例項のゲインであり、右辺第3項の「k2」は積分項のゲインである。
Nm1*=(Ne*・(1+ρ)-Nm2/Gr)/ρ (2)
Tm1*=-ρ・Te*/(1+ρ)+k1(Nm1*-Nm1)+k2∫(Nm1*-Nm1)dt (3)
モータMG1の目標回転数Nm1*とトルク指令Tm1*とを計算すると、要求トルクTr*とトルク指令Tm1*と動力分配統合機構30のギヤ比ρを用いてモータMG2から出力すべきトルクとしての仮モータトルクTm2tmpを式(4)により計算する(ステップS250)。この式(4)は、前述した図8の共線図から容易に導き出すことができる。
Tm2tmp=(Tr*+Tm1*/ρ)/Gr (4)
一方、ステップS220で要求パワーP*が閾値Pref未満と判定されると、燃料カットを実行してエンジン22の運転を停止すべきと判断して、エンジン22の目標回転数Ne*及び目標トルクTe*に値0を設定し、モータMG1のトルク指令Tm1*に値0を設定し、燃料カット指示フラグFdとして値1を設定する(ステップS260)。そして、前述したステップS250によりモータMG2の仮モータトルク指令Tm2tmp(トルク指令Tm1*が値0であるから要求トルクTr*をギヤ比Grで割った値)を設定する。
こうしてエンジン22の目標回転数Ne*と目標トルクTe*,モータMG1のトルク指令Tm1*,モータMG2の仮モータトルクTm2tmpを設定すると、トルク補正フラグFの値を調べる(ステップS270)。ここで、トルク補正フラグFは、エンジン22の燃料カットの実行によって駆動軸としてのリングギヤ軸32aに作用するトルクショックを抑制する補正トルクをモータMG2から出力するか否かを値として持つフラグであり、本ルーチンが初めて実行される際には図示しない初期化ルーチンにより値0が設定される。トルク補正フラグFが値0のときには、前述のステップS200で入力した燃料カット実施フラグFeの今回値が値1で且つ前回値が値0であるか否か即ち燃料カットが開始されたか否かを判定する(ステップS280)。燃料カット実施フラグFeの今回値が値0と判定されたり燃料カット実施フラグFeの今回値が値1と判定されても前回値も値1と判定されたりしたときには、モータMG2のトルク指令Tm2*にステップS250で計算した仮モータトルクTm2tmpを設定し(ステップS290)、目標回転数Ne*,目標トルクTe*及び燃料カット指示フラグFdについてはエンジンECU24に、トルク指令Tm1*,Tm2*についてはモータECU40に送信して(ステップS300)、本ルーチンを終了する。目標回転数Ne*と目標トルクTe*と燃料カット指示フラグFdとを受信したエンジンECU24は、受信した値に基づいて前述のエンジン制御ルーチンを実行して、エンジン22を制御すると共に燃料カット実施フラグFeをハイブリッドECU70に送信する処理を行う。また、トルク指令Tm1*,Tm2*を受信したモータECU40は、トルク指令Tm1*でモータMG1が駆動されると共にトルク指令Tm2*でモータMG2が駆動されるようインバータ41,42のスイッチング素子のスイッチング制御を行う。
一方、ステップS280で燃料カット実施フラグFeの今回値が値1で且つ前回値が値0と判定されると、エンジン22の燃料カットが開始されたと判断し、トルク補正フラグFに値1を設定すると共にハイブリッドECU70の図示しないタイマをスタートし(ステップS310)、モータMG2から出力する補正トルクを決定するための要素である補正トルク基本値T,補正開始時間ta,補正継続時間tbを設定する(ステップS320)。
ここで、モータMG2から出力する補正トルクについて説明する。エンジン22の燃料カットによってリングギヤ軸32aに作用するトルクショックを抑制するためのトルクである補正トルクは、補正トルク基本値Tと補正係数Tαとの積で表される。補正トルク基本値Tは、実施例では、エンジン22の回転数Neと補正トルク基本値Tとの関係を予め求めて補正トルク基本値設定用マップとしてROM74に記憶しておき、回転数Neが与えられるとマップから対応する補正トルク基本値Tを導出して設定するものとした。補正トルク基本値設定用マップの一例を図9に示す。図示するように、補正トルク基本値Tは、回転数Neが高いほど大きくなるよう設定される。これは一般に、エンジン22の回転数Neが高いほどそのフリクションが大きくなるから、エンジン22の燃料カットを実行したときにリングギヤ軸32aに作用するトルクショックも大きくなることに基づくものである。補正係数Tαはエンジン22の燃料カットによってリングギヤ軸32aに作用するトルクショックの波形に対応するものであり、タイマをスタートしてからの経過時間tと補正係数Tαとの関係を予め求めて補正係数設定用マップとしてROM74に記憶させておき、経過時間tが与えられるとマップから対応する補正係数Tαを導出して設定するものとした。補正係数設定用マップの一例を図10に示す。図示するように、補正係数Tαは補正開始時間ta経過後の補正継続時間tbの間のみ対応する値をもち、補正開始時間tbの間は時間によって値0から値1の間で変化する。補正開始時間taが経過するまで補正係数Tαの値がないのは、タイマスタートから補正開始時間ta後に補正トルクの出力が開始されるためである。これは、エンジンECU24によって燃料カットが行われてから一定時間後にトルクショックが発生することに基づくものである。
補正開始時間taの設定について図3を用いて説明する。トルクショックの発生は、エンジン22の気筒22a〜22dにおける点火時期で発生するはずのトルクが燃料カットにより発生しないことに起因する。したがって、燃料カット開始後の最初の燃料噴射時期に対応する点火時期でトルクショックが発生する。そのため、燃料噴射時期の直前に燃料カットが開始されるとトルクショックの発生までの時間が最も短くなり、燃料噴射時期の直後に燃料カットが開始されるとトルクショックの発生までの時間が最も長くなる。例えば、図3において、1番気筒22aの燃料噴射時期である時刻aの直前から燃料カットが開始されたとすると、燃料カット開始後の最初の燃料噴射時期である時刻aの1番気筒22aへの燃料噴射が行われないことになる。したがって、時刻aにおける4番気筒22dの点火時期及び時刻bにおける2番気筒22bの点火時期では、燃料カット以前に燃料噴射が行われているため正常にトルクが発生するが、時刻aの1番気筒22aの燃料噴射時期に対応する点火時期である時刻cにおいては正常なトルクが発生せず、トルクショックが発生する。燃料カット開始から時刻cまでのエンジン22の回転角は約2πradであるため、この場合の燃料カット開始からトルクショック発生までの時間である最短時間t1は、エンジン22の回転数Neを用いて式(5)で求めることができる。また、1番気筒22aの燃料噴射時期である時刻aの直後から燃料カットが開始されたとすると、時刻aの後の最初の燃料噴射時期である時刻bの3番気筒22cへの燃料噴射が行われないことになる。したがって、時刻bにおける2番気筒22bの点火時期及び時刻cにおける1番気筒22aの点火時期では、燃料カット以前に燃料噴射が行われているため正常にトルクが発生するが、時刻bの3番気筒22cの燃料噴射時期に対応する点火時期である時刻dにおいては正常なトルクが発生せず、トルクショックが発生する。燃料カット開始から時刻dまでのエンジン22の回転角は約3πradであるため、この場合の燃料カット開始からトルクショック発生までの時間である最長時間t2は、エンジン22の回転数Neを用いて式(6)で求めることができる。以上のことから、燃料カットが開始された時期がいつであっても、トルクショックが発生するまでの時間は上述した最短時間t1から最長時間t2の間になると予測できる。従って、補正開始時間taを最短時間t1から最長時間t2の間の時間に設定すれば、トルクショックを適切に抑制できることになる。
t1≒1000・2π/(2π・(Ne/60))=60000/Ne (5)
t2≒1000・3π/(2π・(Ne/60))=90000/Ne (6)
※t1,t2の単位はms、エンジン22の回転数Neの単位はrpm
また、最短時間t1,最長時間t2は実際にエンジンECU24が燃料カットを開始してからトルクショックが発生するまでの時間であるが、補正開始時間taをカウントするタイマーは、エンジンECU24から入力した燃料カット実施フラグFeが値1に切り替わったときからスタートする(前述のステップS310)。そのため、補正開始時間taをより適切に設定するためには実際に燃料カットが開始されてから燃料カット実施フラグFeがハイブリッドECU70に入力されるまでの通信遅れ時間を加味する必要がある。この通信遅れ時間について図11を用いて説明する。エンジンECU24が、前述のエンジン制御ルーチンによって燃料カットを実行し(前述のステップS120)、時刻eにおいて燃料カット実施フラグFeとして値1をハイブリッドECU70に送信した(前述のステップS130)とすると、燃料カット実施フラグFeは、通信遅れ時間Δt1経過後の時刻fでハイブリッドECU70に入力される。時刻fまでに入力されていた燃料カット実施フラグFeが値0であれば、前述のステップS280で肯定的な判定がなされ、前述のステップS310でタイマのカウントがスタートする。すなわち、燃料カットが実際に開始された時刻eとハイブリッドECU70がタイマのカウントをスタートする時刻fとの間に通信遅れ時間Δt1が経過していることになる。この通信遅れ時間Δt1は、通信の送受信周期のタイミングによって、時間Δt1minから時間Δt1maxの範囲で変動し、常に一定とはならない。したがって、通信遅れ時間Δt1を加味すると、補正開始時間taは、式(7)で表される範囲になると予測できる。なお、時間Δt1minは例えば0ms程度の値であり、時間Δt1maxは例えば十数ms程度の値である。そして、本実施例では、式(7)の範囲で補正開始時間taを設定するにあたり、式(8)を用いている。なお、「k3」は0以上1以下の定数である。これにより、通信遅れ時間Δt1を加味した最短時間t1minと最長時間t2maxが設定されれば補正開始時間taを設定することができる。
t1min<ta<t2max(但し、t1min=t1-Δt1max,t2max=t2-Δt1min) (7)
ta=t1min+k3・(t2max-t1min) (但し、0≦k3≦1) (8)
補正継続時間tbは、燃料カットによるトルクショックが継続する時間に合わせて、エンジン22が1行程分すなわちπrad回転するのに要する時間として設定される。したがって、補正継続時間tbはエンジン22の回転数Neを用いて式(9)を用いて設定される。
tb=1000・π/(2π・(Ne/60))=30000/Ne (9)
ステップS320で以上のように補正トルク基本値T,補正開始時間ta及び補正継続時間tbを設定すると、タイマのカウントが補正開始時間taを経過しているか否かを判定する(ステップS330)。そして、経過していないときは、まだ補正トルクを出力しないと判断し、前述のステップS290に進んでモータMG2のトルク指令Tm2*にステップS250で計算した仮モータトルクTm2tmpが設定される。
また、一度ステップS280で肯定的な判定がなされると、ステップS310でトルク補正フラグFが値1となるため、以降に駆動制御ルーチンが実行されるときはステップS270で否定的な判定がなされ、ステップS330に進んでタイマのカウントが補正開始時間taを経過しているか否かの判定が行われる。そして、タイマのカウントが補正開始時間taを経過したときは、タイマのカウントが補正開始時間taと補正継続時間tbとの合計時間を経過しているか否かを判定する(ステップS340)。ステップS340で肯定的な判定がなされるとき、すなわち、タイマのカウントが補正開始時間taを経過しているが補正開始時間taと補正継続時間tbとの合計時間を経過していないときは、補正トルクを出力すべきと判断して、タイマをスタートしてからの経過時間tに基づいて式(10)により補正係数Tαで補正トルク基本値Tを乗じて仮モータトルクTm2tmpに加えたものをモータMG2のトルク指令Tm2*として設定する(ステップS350)。そして、目標回転数Ne*や目標トルクTe*,燃料カット指示フラグFd,トルク指令Tm1*,Tm2*をエンジンECU24やモータECU40に送信して(ステップS300)、本ルーチンを終了する。これにより、燃料カット実施フラグFeが値1に切り替わってから補正開始時間taが経過した時点を起点とし、そこから補正継続時間tbが経過するまでの間に補正トルクを出力して、燃料カットにより発生するトルクショックを適切に抑制することができる。
Tm2*=Tm2tmp+T・Tα(t) (10)
そして、さらに時間が経過してタイマのカウントが補正開始時間taと補正継続時間tbとの合計時間を経過したときは、前述のステップS340で否定的な判定がなされ、トルク補正フラグFに値0を設定し(ステップS360)、ステップS290に進んでステップS250で設定された仮モータトルクTm2tmpがそのままモータMG2のトルク指令Tm2*として設定される。これにより、トルク補正フラグFが値0に設定されるため、再び燃料カット実行フラグFeの前回値が値0で今回値が値1となってステップS280で肯定的な判定がなされるまでは補正トルクは出力されない。
ここで、上述した駆動制御ルーチンによって補正トルクを出力してトルクショックを抑制した場合における、リングギヤ軸32aに作用するトルクの一例を図12を用いて説明する。図12における時刻gにおいて燃料カット実施フラグFeとして値1が前述のステップS200で入力され、前述のステップS310でタイマがスタートしたとすると、時刻gから補正開始時間taが経過する時刻hまでは補正トルクが出力されず、モータMG2のトルク指令Tm2*は仮モータトルクTm2tmpに設定される。このとき、エンジン22からのトルクTeは安定しているため、駆動軸としてのリングギヤ軸32aに作用するトルクも安定している。そして、時刻hから補正継続時間tbが経過する時刻iまでは、モータMG2のトルク指令Tm2*は仮モータトルクTm2tmpに補正トルクを加えたトルクに設定される。このとき、エンジン22からのトルクTeは燃料カットによってトルクが急激に変動するトルクショックが発生するが、モータMG2からの補正トルク分によって相殺され、駆動軸としてのリングギヤ軸32aにトルクショックが作用するのを抑制することができる。そして、時刻iが経過するとエンジン22からのトルクTeの変動はなくなり、モータMG2のトルク指令Tm2*は仮モータトルクTm2tmpに設定されるため、駆動軸としてのリングギヤ軸32aに作用するトルクは安定したままとなる。このように、最短時間t1minと最長時間t2maxとの間で設定された補正開始時間taの経過後に補正トルクを出力することで、エンジン22のトルクTeが急激に変動する時期に合わせてモータMG2から補正トルクを出力してトルクショックを抑制し、運転者や乗員に違和感を抱かせないようにすることができる。
以上説明した実施例のハイブリッド自動車20によれば、燃料カット開始時期から燃料カットに起因するトルクショックが発生し始めるまでの最短時間t1及び最長時間t2をエンジン22の回転数Neに基づいて予測し、さらに通信遅れ時間Δt1を考慮した最短時間t1minと最長時間t2maxとの間で補正開始時間taを設定する。そして、要求パワーP*が閾値Pref未満と判定されたとき、ハイブリッドECU70がエンジンECU24を介してエンジン22の燃料カットを実行するよう制御し、燃料カット実施フラグFeとして値1をハイブリッドECU70が受信した時点から補正開始時間taが経過したとき、モータMG2が補正トルクと要求トルクTr*とに基づくトルクを出力して走行する。このように理論的に設定した補正開始時間taの経過後に補正トルクを出力することで、燃料カットに起因するトルクショックを適切に抑制することができる。しかも、通信遅れ時間を加味した最短時間t1minと最長時間t2maxを設定するため、燃料カット実施フラグFeを受信した時点を基準として補正トルクを出力しても適切にトルクショックを抑制することができる。
また、最短時間t1は、エンジン22の燃料カット開始時期がいずれかの気筒への燃料噴射時期の直前である場合における、燃料カット開始時期から燃料カット開始後の最初の燃料噴射時期に対応する点火時期までの時間として設定しており、最長時間t2は、エンジン22の燃料カット開始時期がいずれかの気筒への燃料噴射時期の直後である場合における、燃料カット開始時期から燃料カット開始後の最初の燃料噴射時期に対応する点火時期までの時間として設定している。したがって、より適切に最短時間t1及び最長時間t2を予測して、より適切に補正開始時間taを設定してトルクショックを抑制することができる。
また、補正開始時間taは、式(8)を用いて設定しているため、定数k3を決定しておくことで最短時間t1min及び最長時間t2maxが回転数Neによって変化しても、補正開始時間taを一意に設定することができる。したがって、定数k3を適切に決定しておけば燃料カットに起因するトルクショックをより適切に抑制することができる。
実施例のハイブリッド自動車20では、エンジン22の気筒数が4であったが、気筒数はいくつであってもよい。この場合、いずれかの気筒における燃料噴射時期の直後から燃料カットが実行されたとすると、燃料カット後の最初の燃料噴射時期までのエンジン22の回転角はエンジンの気筒数nに基づいて4π/nで表すことができるため、最長時間t2は気筒数n及びエンジンの回転数Neを用いて、式(11)のように設定できる。本実施例の最長時間t2を求める式(6)は、式(11)においてn=4としたものである。すなわち気筒数がいくつであっても、気筒数n及びエンジンの回転数Neに基づいて最長時間t2を求めることができる。なお、最短時間t1は、気筒数によらず式(5)で求めることができる。
t2≒1000・(4π/n+2π)/(2π・(Ne/60)) (11)
実施例のハイブリッド自動車20では、補正開始時間taは燃料カット実施フラグFeをハイブリッドECU70が受信したときからの時間として設定されているが、燃料カット指示フラグFdをハイブリッドECU70が送信したときからの時間として設定してもよい。この場合に、ハイブリッドECU70が燃料カット指示フラグFdを送信したときからエンジンECU24が燃料カット指示フラグFdを受信するまでの通信遅れ時間を加味して補正開始時間taを設定してもよい。この通信遅れ時間について図13を用いて説明する。ハイブリッドECU70が時刻e2において燃料カット指示フラグFdとして値1を送信したとすると、燃料カット指示フラグFdは、通信遅れ時間Δt2経過後の時刻f2でエンジンECU24に入力される。すなわち、ハイブリッドECU70が燃料カット指示フラグFdを送信してから、エンジンECU24によって燃料カットが実際に実行されるまでには通信遅れ時間Δt2が経過していることになる。以上により、この通信遅れ時間Δt2の変動する範囲を時間Δt2minから時間Δt2maxとして、式(12)の範囲で補正開始時間taを設定してもよい。さらに、この場合、図5の駆動制御ルーチンにおいて、ステップS280で行う処理を、ハイブリッドECU70が設定した燃料カット指示フラグFdの今回値が値1で且つ前回値が値0であるか否かを判定するものとしてもよい。このとき、肯定的な判定がなされた場合はステップS310に進んでトルク補正フラグFに値1を設定すると共にハイブリッドECU70の図示しないタイマをスタートして上述した処理を実行し、否定的な判定がなされた場合はステップS290に進んで上述した処理を実行すればよい。こうすれば、燃料カット指示フラグFdを送信する時点を基準として補正トルクを出力しても、通信遅れ時間Δt2を考慮して適切に補正開始時間taを設定してトルクショックを抑制することができる。
t1min<ta<t2max(但し、t1min=t1+Δt2min,t2max=t2+Δt2max) (12)
実施例のハイブリッド自動車20では、ハイブリッドECU70がエンジンECU24を介してエンジン22を制御しているが、ハイブリッドECU70とエンジンECU24の両方の処理を1つのECUが行い、通信遅れが生じない構成であってもよい。
実施例のハイブリッド自動車20では、最短時間t1及び最長時間t2に通信遅れ時間を加味した上で補正開始時間taを設定しているが、最短時間t1及び最長時間t2に基づいて補正開始時間taを設定した上で、通信遅れ時間を加味してもよい。
実施例のハイブリッド自動車20では、要求動力P*が閾値Pref未満であったときにエンジン22を停止し、モータMG1のトルク指令Tm1*を値0としているが、モータMG1とモータMG2とが補正トルクと要求トルクTr*とに基づくトルクを駆動軸としてのリングギヤ軸32aに出力するのであれば、値0でなくてもよい。例えば、エンジン22をより早く停止するためにモータMG1からトルクを出力したり、トルクショックを抑制する補正トルクをMG1から出力したりしてもよい。
実施例のハイブリッド自動車20では、要求動力P*が閾値Pref未満であったときにエンジン22を停止することとしているが、要求動力P*が閾値Pref未満であっても、エンジン22の回転数が所定の回転数(例えば、1050rpm)以下である場合には、エンジンの停止又は始動によるトルクショックを運転者や乗員が感じやすくなるため、エンジンを停止しないこととしてもよい。
実施例のハイブリッド自動車20では、減速ギヤ35を介して駆動軸としてのリングギヤ軸32aにモータMG2を取り付けるものとしたが、リングギヤ軸32aにモータMG2を直接取り付けるものとしてもよいし、減速ギヤ35に代えて2段変速や3段変速,4段変速などの変速機を介してリングギヤ軸32aにモータMG2を取り付けるものとしてもよい。
実施例のハイブリッド自動車20では、エンジン22の動力を動力分配統合機構30を介して駆動輪63a,63bに接続された駆動軸としてのリングギヤ軸32aに出力するものとしたが、燃料カット時にエンジン22で発生するトルクショックを抑制する補正トルクと要求トルクとに基づくトルクをモータMG2が出力する構成であればどのようなものであってもよい。例えば、図14の変形例のハイブリッド自動車120のように、エンジン22のクランクシャフト26に接続されると共に駆動輪63a,63bに動力を出力する駆動軸に接続された変速機130を備えるものとしてもよい。
また、こうしたハイブリッド自動車に適用するものに限定されるものではなく、自動車以外の車両の形態としても構わないし、車両の制御方法の形態としてもよい。
ここで、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係について説明する。実施例では、エンジン22が「内燃機関」に相当し、モータMG2が「電動機」に相当し、クランクシャフト26のクランク角を検出するクランク角センサ140と検出したクランク角に基づいて入力されるパルスに基づいてエンジン22の回転角Neを計算するエンジンECU24とが「回転数検出手段」に相当し、アクセル開度Accと車速Vとに基づいて要求トルクTr*を設定する図5の駆動制御ルーチンのステップS210の処理を実行するハイブリッドECU70が「要求トルク設定手段」に相当し、燃料カット開始時期から燃料カットに起因するトルクショックが発生し始めるまでの最短時間t1及び最長時間t2を予測し、最短時間t1及び最長時間t2に通信遅れ時間を加味した最短時間t1minと最長時間t2maxとの間で補正開始時間taを設定するハイブリッドECU70が「補正開始時間設定手段」に相当し、図5の駆動制御ルーチンのステップS220で燃料カットを実行してエンジン22を停止する条件が成立したときステップS260で値1に設定した燃料カット指示フラグFdをステップS300で送信して、エンジンECU24を介して燃料をカットするようエンジン22を制御し、エンジンECU24から入力された燃料カット実行フラグFeが今回値1で前回値0の時から補正開始時間taが経過したときモータMG2が補正トルクと要求トルクTr*とに基づくトルクを出力するようモータECU40にトルク指令Tm2*を送信するハイブリッドECU70と、送信されたトルク指令Tm2*に基づいてモータMG2を制御するモータECU40とが「車両制御手段」に相当し、送信された目標回転数Ne*,目標トルクTe*,燃料カット指示フラグFdに基づいてエンジン22を制御し、エンジン22の燃料カットを実行したか否かを報告する燃料カット実行フラグFeをハイブリッドECU70に送信するエンジンECU24が「内燃機関制御手段」に相当する。また、モータMG1が「発電機」に相当し、動力分配統合機構30が「3軸式動力入出力手段」に相当する。
ここで、「内燃機関」としては、ガソリン又は軽油などの炭化水素系の燃料により動力を出力する内燃機関に限定されるものではなく、水素エンジンなど如何なるタイプの内燃機関であっても構わない。また、気筒数も4気筒に限定されるものではなく、気筒がいくつであっても構わない。「電動機」としては、同期発電電動機として構成されたモータMG2に限定されるものではなく、誘導電動機など、駆動軸に動力を入出力可能なものであれば如何なるタイプの電動機であっても構わない。「回転数検出手段」としては、MRE回転センサとしてのクランク角センサ140に限定されるものではなく、電磁ピックアップ方式によるクランク角センサなど、内燃機関のクランク角を検出するものであれば如何なるものとしても構わない。「要求トルク設定手段」としては、アクセル開度Accと車速Vとに基づいて要求トルクTr*を設定するものに限定されるものではなく、アクセル開度Accだけに基づいて要求トルクを設定するものや走行経路が予め設定されているものにあっては走行経路における走行位置に基づいて要求トルクを設定するものなど、駆動軸に要求される要求トルクを設定するものであれば如何なるものとしても構わない。「補正開始時間設定手段」としては、燃料カット開始時期から燃料カットに起因するトルクショックが発生し始めるまでの最短時間t1及び最長時間t2を予測し、最短時間t1及び最長時間t2に通信遅れ時間を加味した最短時間t1minと最長時間t2maxとの間で補正開始時間taを設定するハイブリッドECU70に限定されるものではなく、内燃機関の回転数に基づいて燃料カット開始時期から燃料カットに起因するトルクショックが発生し始めるまでの最短時間を予測し、内燃機関の回転数と内燃機関の気筒数とに基づいて燃料カット開始時期から燃料カットに起因するトルクショックが発生し始めるまでの最長時間を予測し、該最短時間と該最長時間との間で補正開始時間を設定するものであれば如何なるものとしても構わない。「車両制御手段」としては、ハイブリッドECU70とモータECU40とからなる組み合わせに限定されるものではなく単一の電子制御ユニットにより構成されるなどとしてもよい。また、「車両制御手段」としては、図5の駆動制御ルーチンのステップS220で燃料カットを実行してエンジン22を停止する条件が成立したときステップS260で値1に設定した燃料カット指示フラグFdをステップS300で送信して、エンジンECU24を介して燃料をカットするようエンジン22を制御し、エンジンECU24から入力された燃料カット実行フラグFeが今回値1で前回値0の時から補正開始時間taが経過したときモータMG2が補正トルクと要求トルクTr*とに基づくトルクを出力するようモータECU40にトルク指令Tm2*を送信するハイブリッドECU70と、送信されたトルク指令Tm2*に基づいてモータMG2を制御するモータECU40とに限定されるものではなく、所定の燃料カット条件が成立したとき、内燃機関の各気筒への燃料をカットするよう内燃機関を制御し、燃料カット開始時期から補正開始時間が経過したとき、電動機が補正トルクと要求トルクとに基づくトルクを出力するよう前記電動機を制御するものであれば如何なるものとしても構わない。「発電機」としては、同期発電電動機として構成されたモータMG1に限定されるものではなく、誘導電動機など、動力を入出力可能なものであれば如何なるタイプの発電機としても構わない。「3軸式動力入出力手段」としては、上述の動力分配統合機構30に限定されるものではなく、ダブルピニオン式の遊星歯車機構を用いるものや複数の遊星歯車機構を組み合わせて4以上の軸に接続されるものやデファレンシャルギヤのように遊星歯車とは異なる作動作用を有するものなど、駆動軸と出力軸と発電機の回転軸との3軸に接続され3軸のうちのいずれか2軸に入出力される動力に基づいて残余の軸に動力を入出力するものであれば如何なるものとしても構わない。
なお、実施例の主要な要素と課題を解決するための手段の欄に記載した発明の主要な要素との対応関係は、実施例が課題を解決するための手段の欄に記載した発明を実施するための最良の形態を具体的に説明するための一例であることから、課題を解決するための手段の欄に記載した発明の要素を限定するものではない。即ち、課題を解決するための手段の欄に記載した発明についての解釈はその欄の記載に基づいて行われるべきものであり、実施例は課題を解決するための手段の欄に記載した発明の具体的な一例に過ぎないものである。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において、種々なる形態で実施し得ることは勿論である。
20,120, ハイブリッド自動車、22 エンジン、22a 1番気筒、22b 2番気筒、22c 3番気筒、22d 4番気筒、24 エンジン用電子制御ユニット(エンジンECU)、24a CPU、24b ROM、24c RAM、26 クランクシャフト、28 ダンパ、30 動力分配統合機構、31 サンギヤ、32 リングギヤ、32a リングギヤ軸、33 ピニオンギヤ、34 キャリア、35 減速ギヤ、40 モータ用電子制御ユニット(モータECU)、41,42 インバータ、43,44 回転位置検出センサ、50 バッテリ、51 温度センサ、52 バッテリ用電子制御ユニット(バッテリECU)、54 電力ライン、60 ギヤ機構、62 デファレンシャルギヤ、63a,63b 駆動輪、70 ハイブリッド用電子制御ユニット(ハイブリッドECU)、72 CPU、74 ROM、76 RAM、80 イグニッションスイッチ、81 シフトレバー、82 シフトポジションセンサ、83 アクセルペダル、84 アクセルペダルポジションセンサ、85 ブレーキペダル、86 ブレーキペダルポジションセンサ、88 車速センサ、122 エアクリーナ、124 スロットルバルブ、126 燃料噴射弁、127 吸気マニホールド、128 吸気バルブ、130 点火プラグ、132 ピストン、134 浄化装置、135a 空燃比センサ、135b 酸素センサ、136,スロットルモータ、138 イグニッションコイル、140 クランク角センサ、142 水温センサ、143 圧力センサ、144 カムポジションセンサ、146 スロットルバルブポジションセンサ、148 エアフローメータ、149 温度センサ、150 可変バルブタイミング機構、230 対ロータ電動機、232 インナーロータ、234 アウターロータ、MG1,MG2 モータ。