以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
図1は、本発明の実施の形態に係る制御装置が搭載される車両10の構造を示す図である。車両10は、エンジン100および第2モータジェネレータ(MG(2))300Bの少なくともいずれかの動力で走行する車両(以下、「ハイブリッド車両」ともいう)であるとともに、車両外部に設けられた交流電源19から供給された電力での走行が可能な車両(以下、「プラグイン車両」ともいう)である。
車両10には、上述のエンジン100およびMG(2)300Bの他に、エンジン100が発生する動力を出力軸212と第1モータジェネレータ(MG(1))300Aとに分配する動力分割機構200と、エンジン100、MG(1)300A、MG(2)300Bで発生した動力を駆動輪12に伝達したり、駆動輪12の駆動をエンジン100やMG(1)300A、MG(2)300Bに伝達したりする減速機14と、MG(1)300AおよびMG(2)300Bを駆動するための電力を蓄電するバッテリ310と、バッテリ310の直流とMG(1)300A、MG(2)300Bの交流とを変換しながら電流制御を行なうインバータ330と、バッテリ310とインバータ330との間で電圧変換を行なう昇圧コンバータ320と、エンジン100の動作状態を制御するエンジンECU406と、車両10の状態に応じてMG(1)300A、MG(2)300B、インバータ330、およびバッテリ310の充放電状態等を制御するMG_ECU402と、エンジンECU406およびMG_ECU402等を相互に管理制御して、車両10が最も効率よく運行できるようにハイブリッドシステム全体を制御するHV_ECU404等を含む。
動力分割機構200は、サンギヤ、ピニオンギヤ、キャリア、リングギヤを含む遊星歯車から構成される。エンジン100、MG(1)300AおよびMG(2)300Bが動力分割機構200を経由して連結されることで、エンジン100、MG(1)300AおよびMG(2)300Bの各回転速度は、いずれか2つの回転速度が決定されると残りの回転速度が決まるという関係にある。この関係を利用することによって、たとえばMG(2)300Bの回転速度が同じ値であっても、MG(1)300Aの回転速度を制御することによって、エンジン回転速度Neを所望の回転速度に制御することができる。
さらに、車両10には、交流電源19に接続されたパドル15を接続するためのコネクタ13と、コネクタ13を経由して供給された交流電源19からの電力を直流に変換してバッテリ310へ出力する充電装置11とを含む。充電装置11は、HV_ECU404からの制御信号に応じてバッテリ310へ出力する電力量を制御する。
図1においては、各ECUを別構成しているが、2個以上のECUを統合したECUとして構成してもよい。たとえば、図1に、点線で示すように、MG_ECU402、HV_ECU404およびエンジンECU406を統合したECU400とすることがその一例である。以下の説明においては、MG_ECU402、HV_ECU404およびエンジンECU406を区別することなくECU400と記載する。
ECU400には、車速センサ、アクセル開度センサ、スロットル開度センサ、MG(1)回転速度センサ、MG(2)回転速度センサ、エンジン回転速度センサ(いずれも図示せず)、およびバッテリ310の状態(バッテリ電圧値、バッテリ電流値、バッテリ温度など)を監視するバッテリ監視ユニット340からの信号が入力されている。
本実施の形態においては、バッテリ310として、リチウムイオン二次電池が用いられる。
ECU400は、MG(1)300AあるいはMG(2)300Bをモータとして機能させる場合、バッテリ310から放電された直流電力を昇圧コンバータ320で昇圧した後、インバータ330で交流電力に変換してMG(1)300AおよびMG(2)300Bに供給する。
一方、ECU400は、バッテリ310を充電する際には、MG(1)300AあるいはMG(2)300Bをジェネレータとして機能させて、MG(1)300AあるいはMG(2)300Bが発電した交流電力を、インバータ330で直流電力に変換した後、昇圧コンバータ320で降圧してバッテリ310に供給する。
さらに、ECU400は、交流電源19からの交流電力を充電装置11で直流に変換してバッテリ310へ供給することによっても、バッテリ310を充電することが可能である。
図2を参照して、エンジン100およびエンジン100に関連する周辺機器について説明する。このエンジン100においては、エアクリーナ(図示せず)から吸入される空気が、吸気管110を流通して、エンジン100の燃焼室102に導入される。スロットルバルブ114の作動量(スロットル開度)により、燃焼室102に導入される空気量が調整される。スロットル開度は、ECU400からの信号に基づいて作動するスロットルモータ112により制御される。
燃料は、フューエルタンク(図示せず)に貯蔵され、フューエルポンプ(図示せず)によりインジェクタ104から燃焼室102に噴射される。吸気管110から導入された空気と、インジェクタ104から噴射された燃料との混合気が、ECU400からの制御信号により制御されるイグニッションコイル106を用いて着火されて燃焼する。
混合気が燃焼した後の排気ガスは、排気管120の途中に設けられた触媒140を通って、大気に排出される。
触媒140は、排気ガス中に含まれるエミッション(炭化水素(HC)、一酸化炭素(CO)、窒素酸化物(NOx)などの有害物質)を浄化処理する三元触媒である。触媒140は、炭化水素と一酸化炭素の酸化反応と、窒素酸化物の還元反応を同時に行なわせることができる。触媒140は、その温度が低いほど排気浄化能力が低くなる特性を有する。
ECU400には、エンジン水温センサ108、エアフロメータ116、吸入空気温センサ118、空燃比センサ122、および酸素センサ124からの信号が入力されている。エンジン水温センサ108は、エンジン冷却水の温度(エンジン水温)THwを検出する。エアフロメータ116は、吸入空気量(エンジン100に吸入される単位時間あたりの空気量)Gaを検出する。吸入空気温センサ118は、吸入空気の温度(吸入空気温)THaを検出する。空燃比センサ122は、排気ガス中の空気と燃料との比率を検出する。酸素センサ124は、排気ガス中の酸素濃度を検出する。これらの各センサは、検出結果を表わす信号をECU400に送信する。
ECU400は、各センサから送られてきた信号などに基づいて、適正な点火時期となるようにイグニッションコイル106を制御したり、適正なスロットル開度となるようにスロットルモータ112を制御したり、適正な燃料噴射量となるようにインジェクタ104を制御したりする。
また、ECU400の内部には、各種情報、プログラム、しきい値、マップ、ECU400の処理結果等のデータが記憶される記憶部430が設けられる。
図3は、バッテリ310の入出力特性を示す図である。図3において、横軸はバッテリ温度(単位は℃)を示し、縦軸はバッテリ310の放電可能電力Woutおよび充電可能電力Win(単位はいずれもW(ワット))を示す。縦軸の「0[W]」よりも上側の領域に示す実線が放電可能電力Woutを示し、縦軸の「0[W]」よりも下側の領域に示す実線が充電可能電力Winを示す。なお、図3には、参考として、ニッケル水素二次電池の放電可能電力および充電可能電力を破線で示している。
バッテリ310は、リチウムイオン二次電池を用いているため、ニッケル水素二次電池を用いる場合(図3の破線参照)に比べて、バッテリ温度が低い領域での特性が大きく相違する。具体的には、ニッケル水素二次電池を用いる場合に比べて、放電可能電力Woutが大きい値となる。その一方で、充電可能電力Winがニッケル水素二次電池に比べて小さい値となる。特に、バッテリ温度が極低温である場合(たとえばマイナス10℃よりも低い場合)では、充電可能電力Winは数キロワット程度の微小な値となる。すなわち、バッテリ温度が極低温である場合、バッテリ310への充電電力は1kW未満の微小な値に制限されることになる。
次に、ECU400が行なうエンジン100の駆動制御について説明する。ECU400は、まず、アクセル開度や車速などに基づいて車両10から出力すべき車両要求パワーP(走行に必要なエネルギの他、エアコンなどの補機類に必要なエネルギも含む)を設定し、車両要求パワーPとバッテリ310の状態とに基づいてエンジン100から出力すべきエンジン要求パワーPeを設定する。
そして、ECU400は、エンジン要求パワーPeに応じて、「自立運転」および「負荷運転」のいずれかの運転状態でエンジン100を制御する。
「自立運転」では、ECU400は、エンジン100をアイドル状態とする。具体的には、ECU400は、エンジン回転速度Neが予め定められた目標アイドル回転速度Niscに維持されるようにスロットル開度をフィードバック制御するISC制御を実行する。
一方、「負荷運転」では、ECU400は、エンジン100をアイドル状態よりも大きいエネルギを出力する状態に制御するように、エンジン要求パワーPeに応じてスロットル開度を制御する。この際、ECU400は、エンジン実パワーが車両要求パワーPを超える場合、エンジン実パワーのうち車両要求パワーPを超える分(以下、「過剰パワー」ともいう)をMG(1)300Aで電力に変換してバッテリ310へ供給する。したがって、「負荷運転」では、バッテリ310の充電が可能となる。
図4は、エンジン100の駆動制御を行なう場合のECU400の処理フローを示す。図4に示すように、ECU400は、まず、上述した過剰パワーが充電可能電力Win(図3参照)よりも大きいか否かに基づいて、エンジン100の運転状態を「自立運転」とするのか「負荷運転」とするのかを判断する(S10)。ECU400は、過剰パワーが充電可能電力Winよりも大きい場合には、バッテリ310の過充電を防止すべく、エンジン100の運転状態を「自立運転」とする(S10にてYES)。一方、ECU400は、過剰パワーが充電可能電力Winよりも小さい場合(過剰パワーが存在しない場合も含む)、エンジン100の運転状態を「負荷運転」とする(S10にてNO)。
ECU400は、エンジン100の運転状態を「自立運転」とする場合(S10にてYES)、ISC制御を実行する(S20)。
図5は、ISC制御(図4のS20の処理)を行なう場合のECU400の処理フローを示す。
図5に示すように、ECU400は、エンジン回転速度Neと目標アイドル回転速度Niscとを比較した結果に応じて、ISCフィードバック量eqiを算出する。なお、ISCフィードバック量eqiは、単位時間あたりの吸入空気量(単位;L/s)で表わされ、その初期値は「0」である。
ECU400は、Ne>Nisc+所定値αであると(S20AにてYES)、ISCフィードバック量eqiを更新量Δeqiだけ減少させる(S20B)。すなわち、ISCフィードバック量の前回値eqi(n−1)から更新量Δeqiを減じた値をISCフィードバック量の今回値eqi(n)として算出する。
ECU400は、Ne<Nisc−所定値βであると(S20CにてYES)、ISCフィードバック量eqiを更新量Δeqiだけ増加させる(S20D)。すなわち、ISCフィードバック量の前回値eqi(n−1)に更新量Δeqiを加えた値をISCフィードバック量の今回値eqi(n)として算出する。
ECU400は、Nisc−β<Ne<Nisc+αであると(S20AにてNO、S20CにてNO)、ISCフィードバック量eqiの更新を行なわない。すなわち、ISCフィードバック量の前回値eqi(n−1)をそのままISCフィードバック量の今回値eqi(n)として算出する(S20E)。
そして、ECU400は、予め定められた初期目標スロットル開度TA0にISCフィードバック量eqiのTA換算値を加えた値を、ISC制御時の目標スロットル開度TAiscに設定し(S20F)、実際のスロットル開度TAがISC制御時の目標スロットル開度TAiscとなるように、スロットルモータ112を制御する(S20G)。なお、ISCフィードバック量eqiのTA換算値とは、ISCフィードバック量eqi(単位;L/s)をスロットル角(単位;deg)に換算した値である。
このように、ISC制御では、エンジン回転速度Neが目標アイドル回転速度Nisc付近に維持されるようにスロットル開度がフィードバック制御される。
S20B、S20D、S20Eで算出されたISCフィードバック量eqiは、各ステップの処理時に後述する記憶部430に記憶され、「自立運転」から「負荷運転」に移行しても最終値が保持される。これにより、再び「負荷運転」から「自立運転」に移行した際にエンジン回転速度Neを速やかに目標アイドル回転速度Niscに収束させることが可能となる。
また、ECU400は、ISC制御中に所定の学習条件(たとえばISC制御を繰り返すことによってエンジン回転速度Neが所定時間継続して目標アイドル回転速度Niscを含む所定範囲に収束したという条件)が成立したか否かを判断し、学習条件が成立した場合には、それまでのISCフィードバック量eqiの初期値(たとえば「0」)からの変化量をISC学習値eqgに取り込んで更新するとともに、ISCフィードバック量eqiを初期値に更新する。なお、ISC学習後においては、初期目標スロットル開度TA0に学習値eqgとISCフィードバック量eqiのTA換算値とを加えた値が、ISC制御時の目標スロットル開度TAiscに設定される。
図4に戻って、ECU400は、エンジン100の運転状態を「負荷運転」とする場合(S10にてNO)、Peフィードバック制御(S40)および通常制御(S50)のいずれかで、スロットル開度を制御する。
ECU400は、所定のPeフィードバック条件(たとえばバッテリ310を充電する場合であってかつバッテリ温度がマイナス10℃をよりも低く極低温であるという条件)が成立していない場合(S30にてNO)、通常制御を実行する(S50)。通常制御では、ECU400は、エンジン要求パワーPeに応じた目標スロットル開度を設定し、実際のスロットル開度が設定された目標スロットル開度となるようにスロットルモータ112を制御する。この際、目標スロットル開度は完全暖機時を想定して適合された値に設定される。
ところが、極低温下では、空気密度の増加によってエンジン出力が増加したりエンジンフリクションの増加によってエンジン出力が減少したりするため、完全暖機時を想定して適合された目標スロットル開度で実際のスロットル開度を制御すると、エンジン要求パワーPeとエンジン実パワーとがかけ離れた値となることが懸念される。
さらに、上述の図3に示したように、極低温時は、充電可能電力Winが微小な値となる。そのため、極低温である場合において、バッテリ310の充電を可能としつつ(すなわち「負荷運転」を維持しつつ)バッテリ310の過充電を防止するためには、エンジン実パワー(すなわち過剰パワー)を微小な値で正確に制御する必要がある。
上述した極低温時のエンジン出力の増減や充電可能電力Winの低下を考慮して、ECU400は、Peフィードバック条件が成立した場合(S30にてYES)、エンジン側で負荷運転時のスロットル開度を微小に細かく制御し、バッテリ310の充電電力を1kW未満の微小な値に制御することを可能とするPeフィードバック制御(以下、「Pe−F/B制御」とも記載する)を実行する(S40)。
図6は、Pe−F/B制御(図4のS40の処理)を行なう場合のECU400の処理フローを示す。
図6に示すように、ECU400は、後述する記憶部430に記憶されたISCフィードバック量eqiを読み出し、ISCフィードバック量eqiに基づいてアイドルスロットル開度TAidleを算出する(S40A)。なお、アイドルスロットル開度TAidleは、エンジン100がアイドル状態で駆動する時のスロットル開度に相当する値であって、たとえばISC制御時の目標スロットル開度TAisc(=TA0+(eqiのTA換算値))と同じ値であってもよい。
その後、ECU400は、要求スロットル開度TAreqを算出する(S40B)。要求スロットル開度TAreqは、アイドルスロットル開度TAidleからのスロットル作動量であって、エンジン要求パワーPeに応じた値に算出される。
さらに、ECU400は、各センサの検出値等に基づいて実エンジントルク(推定値)および目標エンジントルクを算出し、実エンジントルクから目標エンジントルクを減じたトルク偏差dtrqを算出し(S40C)、トルク偏差dtrqに応じてPeフィードバック量の変化量Δefbを算出し(S40D)、Peフィードバック量efbに変化量Δefbを加える(S40E)。すなわち、Peフィードバック量の前回値efb(n−1)にPeフィードバック量の変化量Δefbを加えた値をPeフィードバック量の今回値efb(n)として算出する(S40E)。
図7に、トルク偏差dtrqとPeフィードバック量の変化量Δefbとの関係を示す。Peフィードバック量の変化量Δefbは、自立運転から負荷運転に移行してから所定時間が経過するまでは、トルク偏差dtrqに対して図7の線Aで求まる値に設定され、その他においては、図7の線Bで求まる値に設定される。
いずれの場合にも、トルク偏差dtrqがdt1(dt1>0)以上の場合(すなわち実エンジントルクが目標エンジントルクに対してdt1以上大きい場合)には、変化量Δefbが負の値に設定される。これにより、Peフィードバック量efbが変化量Δefbの絶対値分だけ減少されるため、実エンジントルクが目標エンジントルクに近づくように減少する。
一方、トルク偏差dtrqがdt2(dt2<0)以下の場合(すなわち実エンジントルクが目標エンジントルクに対してdt2の絶対値以上小さい場合)には、変化量Δefbが正の値に設定される。これにより、Peフィードバック量efbが変化量Δefbの絶対値分だけ増加されるため、実エンジントルクが目標エンジントルクに近づくように増加する。
図6に戻って、ECU400は、アイドルスロットル開度TAidleに要求スロットル開度TAreqとPeフィードバック量efbとを加えた値をPe−F/B制御時の目標スロットル開度TAfbに設定し(S40F)、実際のスロットル開度がPe−F/B制御時の目標スロットル開度TAfbとなるようにスロットルモータ112を制御する(S40G)。
このように、Pe−F/B制御では、実エンジントルクが目標エンジントルクに近づくように、Peフィードバック量efbを用いてスロットル開度がフィードバック制御される。この際、スロットル開度は、ISCフィードバック量eqiに基づいて算出されたアイドルスロットル開度TAidleを基準として制御される。
S40Eで算出されたPeフィードバック量efbは、S40Eの処理時に記憶部430に記憶され、「負荷運転」から「自立運転」に移行してもその最終値が保持される。これにより、再び「自立運転」から「負荷運転」に移行してPe−F/B制御が再開された際に速やかに実エンジントルクを目標エンジントルクに収束させることができる。
このように、本実施の形態においては、負荷運転時にはPeフィードバック量efbを変化させる(更新する)ことによって、また、自立運転時には別途ISCフィードバック量eqiを変化させることによって、スロットル開度とエンジン実出力との関係がそれぞれ調整される。
しかしながら、Peフィードバック量efbの値は「負荷運転」から「自立運転」に移行した後も最終値が保持される。また、ISCフィードバック量eqiの値も「自立運転」から「負荷運転」に移行した後も最終値が保持される。
したがって、Pe−F/B制御からISC制御に移行した後に再びPe−F/B制御を実行する場合、ISCフィードバック量eqiとPeフィードバック量efbとをそのまま用いて目標スロットル開度TAfbを算出すると、スロットル開度とエンジン実出力との関係が二重に調整されてしまうことが懸念される。
すなわち、ISCフィードバック量eqiは過去に実行されたISC制御時の最終値でありPeフィードバック量efbもまた過去に実行されたPe−F/B制御時の最終値であるため、双方のフィードバック量は、共にスロットル開度とエンジン実出力との調整結果が反映された値である。その結果、目標スロットル開度TAfbは、スロットル開度とエンジン実出力との関係を双方のフィードバック量で二重に補正した値となってしまう。
このような二重補正は、エンジン実出力を微小な値で正確に制御するというPe−F/B制御の目的に沿わない。さらに、二重補正によってエンジン出力が低下すると、エンジン回転速度Neが落ち込み、トランスミッションのギヤ歯打ち音等の要因ともなり得る。
このような二重補正を防止するため、本実施の形態においては、ISCフィードバック量eqiが更新された場合、そのeqi更新量に対応する値がPeフィードバック量efbから相殺されるようにPeフィードバック量efbを補正する処理(以下、「相殺補正」ともいう)を実行する。
図8に、ECU400の機能ブロック図を示す。ECU400は、入力インターフェイス410、演算処理部420、記憶部430、出力インターフェイス440とを含む。
入力インターフェイス410は、各センサなどからの情報を受信する。記憶部430には、上述したように各種のデータが記憶され、必要に応じて演算処理部420からデータが読み出されたり格納されたりする。ISCフィードバック量eqiおよびPeフィードバック量efbも、この記憶部430に記憶されている。演算処理部420は、入力インターフェイス410および記憶部430からの情報に基づいて演算処理を行なう。出力インターフェイス440は、演算処理部420の処理結果を各機器に出力する。
演算処理部420は、ISC制御部421、Pe−F/B制御部422、補正部423を含む。
ISC制御部421は、上述の図5にて説明したISC制御を実行し、その際に算出したISCフィードバック量eqiを記憶部430にする。Pe−F/B制御部422は、上述の図6にて説明したPe−F/B制御を実行し、その際に算出したPeフィードバック量efbを記憶部430に記憶する。ISC制御部421およびPe−F/B制御部422の機能の詳細については、上述の図5、6にて説明したので、ここでの詳細な説明は繰り返さない。
補正部423は、所定の補正条件が成立した場合に上述した相殺補正を行なう。本実施の形態においては、補正条件として、第1および第2の条件が課せられている。
第1の条件は、ISCフィードバック量eqiとISC学習値eqgとの合計値が変化した、という条件である。
なお、第1の条件を「ISCフィードバック量eqi」が変化したという条件としてもよい。ただし、本実施の形態では、上述したように所定の学習条件が成立した場合にISCフィードバック量eqiの初期値からの変化量がISC学習値eqgに取り込まれた上でISCフィードバック量eqiが初期値に更新されるため、第1の条件を「ISCフィードバック量eqi」が変化したという条件とすると、ISC学習値eqgの更新時も第1の条件が満足されることになる。しかし、実際には、ISC学習値eqgの更新時にはISCフィードバック量eqiとISC学習値eqgとの合計値は変化せず、ISC開度(ISC制御時の目標スロットル開度TAisc)そのものも変化しないため、上述した相殺補正を行なう必要がない。したがって、本実施の形態のように、第1の条件を「ISCフィードバック量eqiとISC学習値eqgとの合計値」が変化したという条件にすることによって、ISC学習値eqgの更新時にまで相殺補正が行なわれることを未然に防止することができる。
第2の条件は、エンジン100の始動後から第1条件が成立するまでの間にPeフィードバック制御が実行された履歴がある、という条件である。仮に、Peフィードバック制御が未実行の状態で相殺補正を行なってしまうと、本来反映不要なISC開度のずれを初期状態でPeフィードバック量efbに取り込んでしまう過補正の状態になり、スロットル開度の制御性が悪化することが懸念される。第2の条件は、このような過補正によってスロットル開度の制御性が悪化することを未然に防止することを目的として設定される。この第2の条件を設けた点が、本実施の形態の最も特徴的な点である。
補正部423は、第1および第2の双方の条件の少なくともいずれかが成立しない場合には相殺補正を行なわない。
一方、補正部423は、第1および第2の双方の条件が成立した場合にのみ、以下の内容で相殺補正を行なう。
まず、補正部423は、ISCフィードバック量eqiとISC学習値eqgとの合計値の変化量Δ(eqi+eqg)相当のスロットル開度TAQIを算出する。なお、Δ(eqi+eqg)相当のスロットル開度TAQIとは、単位時間あたりの吸入空気量(単位;L/s)の変化量である変化量Δ(eqi+eqg)を、スロットル開度(単位;deg)の変化量に変換した値である。
次に、補正部423は、Δ(eqi+eqg)相当のスロットル開度TAQIがPeフィードバック量efbから相殺されるように、記憶部430に記憶されたPeフィードバック量efbを補正する。具体的には、補正部423は、Peフィードバック量efbをΔ(eqi+eqg)相当のスロットル開度TAQIだけ減少させる。
ここで、ΔeqiではなくΔ(eqi+eqg)に応じて相殺補正を行なうのは、上述した第1の条件と同様、ISC学習値eqgの更新時にまで相殺補正が行なわれることを防止するためである。すなわち、たとえeqiが変化してもeqiとeqgとの合計値が変化しない場合(上述したISC学習値eqgの更新時など)、ISC開度そのものも変化せず上述した相殺補正を行なう必要がない。この点を考慮し、本実施の形態では、ISCフィードバック量eqiとISC学習値eqgとの合計値の変化量Δ(eqi+eqg)に応じて相殺補正を行なうことにした。
上述したISC制御部421、Pe−F/B制御部422、補正部423の機能は、ソフトウェアによって実現されるようにしてもよく、ハードウェアにより実現されるようにしてもよい。
図9は、上述した補正部423の機能をソフトウェアによって実現する場合のECU400の処理フローである。なお、この処理は、Pe−F/B制御中であるか否かに関わらず、予め定められたサイクルタイムで繰り返し行なわれる。
S100にて、ECU400は、ISCフィードバック量eqiとISC学習値eqgとの合計値が変化したか否か(すなわち上述の第1の条件が成立したか否か)を判断する。この処理で肯定的な判断がなされると(S100にてYES)、処理はS102に移される。そうでないと(S100にてNO)、処理はS106に移される。
S102にて、ECU400は、エンジン100の始動後からS100の処理でYESと判断されるまでの間にPeフィードバック制御が実行された履歴があるか否か(すなわち上述の第2の条件が成立したか否か)を判断する。この判断は、たとえば、エンジン100の始動後からS100の処理でYESと判断されるまでの間に、記憶部430に記憶されたPeフィードバック量efbが変化したか否かに基づいて行なえばよい。この処理で肯定的な判断がなされると(S102にてYES)、処理はS104に移される。そうでないと(S102にてNO)、処理はS106に移される。
S104にて、ECU400は、上述の相殺補正を行なう。すなわち、ISCフィードバック量eqiとISC学習値eqgとの合計値の変化量Δ(eqi+eqg)相当のスロットル開度TAQIを算出し、Peフィードバック量efbをΔ(eqi+eqg)相当のスロットル開度TAQIだけ減少させる。
このように、本実施の形態においては、ISC制御の実行によってISCフィードバック量eqiとISC学習値eqgとの合計値が変化した場合、Peフィードバック制御の実行履歴がときは、その合計値の変化分に相当する量をPeフィードバック量efbから相殺する相殺補正を実行し、Peフィードバック制御の実行履歴がときは、相殺補正を実行しない。そのため、本来反映不要なISC開度のずれを初期状態でPeフィードバック量efbに取り込んでしまう過補正を未然に防止し、制御性の悪化を抑制することができる。その結果、負荷運転時はISC制御、自立運転時はPeフィードバック制御というように、負荷運転時と自立運転時とで異なる手法でスロットル開度をフィードバック制御する場合においても、エンジン100の出力を正確に制御できる。
なお、本実施の形態は、たとえば以下のように変更することもできる。
本実施の形態では、いわゆるプラグイン型のハイブリッド車両に本発明を適用したが、これに限らず通常のハイブリッド車両に本発明を適用してもよい。
また、本実施の形態では、バッテリとしてリチウムイオン二次電池を用いたが、これに限らずたとえばニッケル水素二次電池を用いてもよい。ニッケル水素二次電池はそのセル数が少ないほどリチウムイオン二次電池の入出力特性に近くなる傾向にあるため、コスト削減等のためにニッケル水素二次電池のセル数を削減した場合には、特に本発明の適用が有効である。
また、本実施の形態においては、ISC制御によってISCフィードバック量eqiが更新された時にリアルタイムでPeフィードバック量efbの相殺補正を行なうが、これに限らず、少なくともISC制御からPe−F/B制御に移行するまでに、ISC制御中のISCフィードバック量eqiの更新量の合計のTA換算値を用いてPeフィードバック量efbを相殺補正するようにしてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。