以下、本発明の一実施形態を図面に基づいて説明する。
−機械的構成−
まず、図1を参照して、本発明の一実施形態によるECU50を備える車両100の機械的構成(駆動系統)について説明する。
車両100は、図1に示すように、内燃機関1と、クラッチ2と、モータジェネレータ3と、トルクコンバータ4と、変速機5とを備えている。この車両100は、たとえばFR(フロントエンジンリアドライブ)方式のハイブリッド車両である。なお、モータジェネレータ3は、本発明の「電動機」の一例である。
内燃機関1は、たとえば多気筒ガソリンエンジンであり、走行用の駆動力を出力可能に構成されている。この内燃機関1は、直噴型であり、インジェクタ11(図2参照)が燃焼室に設けられている。また、内燃機関1のクランクシャフト1aは、クラッチ2を介してモータジェネレータ3のロータシャフト3aに連結されている。
クラッチ2は、たとえば湿式多板型の摩擦係合装置であり、内燃機関1とモータジェネレータ3との間に配置されている。このクラッチ2は、内燃機関1とモータジェネレータ3とを選択的に連結するように構成されている。具体的には、クラッチ2が係合された場合に、内燃機関1とモータジェネレータ3との間の動力伝達経路が連結され、クラッチ2が解放された場合に、内燃機関1とモータジェネレータ3との間の動力伝達経路が遮断されるようになっている。すなわち、クラッチ2が解放された場合には、内燃機関1が駆動輪(後輪)9から切り離される。また、クラッチ2は、油圧作動式であり、油圧アクチュエータ(図示省略)によって制御されるように構成されている。
モータジェネレータ3は、電動機として機能するとともに、発電機として機能するように構成されている。このため、モータジェネレータ3は、走行用の駆動力を出力可能であるとともに、運動エネルギ(ロータ31の回転)を電気エネルギに変換して発電することが可能である。このモータジェネレータ3は、たとえば、交流同期電動機であり、永久磁石を有するロータ31と、3相巻線が巻回されたステータ32とを含んでいる。ロータ31にはロータシャフト3aが一体的に設けられ、このロータシャフト3aはトルクコンバータ4に連結されている。
トルクコンバータ4は、入力側のポンプインペラ41および出力側のタービンランナ42などを有しており、それらポンプインペラ41とタービンランナ42との間で流体(作動油)を介して動力伝達を行うように構成されている。ポンプインペラ41はロータシャフト3aに連結され、タービンランナ42はタービンシャフト4aを介して変速機5に連結されている。また、トルクコンバータ4は、ロックアップクラッチ43が設けられ、ロックアップクラッチ43が係合することによってポンプインペラ41およびタービンランナ42が一体的に回転するようになっている。
変速機5は、たとえば有段式の自動変速機であって、摩擦係合要素および遊星歯車装置などを有しており、選択的に摩擦係合要素を係合させることにより複数の変速段を成立させるように構成されている。この変速機5は、たとえば車速およびアクセル開度に応じて変速段(変速比)を自動的に切り替えるように構成されている。変速機5の出力は、プロペラシャフト6、デファレンシャル装置7およびドライブシャフト8を介して駆動輪9に伝達される。
−電気的構成−
次に、図2を参照して、車両100の電気的構成(制御系統)について説明する。
車両100は、ECU50と、バッテリ51と、インバータ52とを備えている。
ECU50は、車両100を制御するように構成されている。このECU50は、図2に示すように、CPU50aと、ROM50bと、RAM50cと、バックアップRAM50dと、入出力インターフェース50eとを含み、これらがバスを介して接続されている。なお、ECU50は、本発明の「車両の制御装置」の一例である。そして、CPU50aがROM50bに記憶されたプログラムを実行することにより、本発明の「第1学習手段」および「第2学習手段」が実現される。
CPU50aは、ROM50bに記憶された各種制御プログラムやマップに基づいて演算処理を実行する。ROM50bには、各種制御プログラムや、それら各種制御プログラムを実行する際に参照されるマップなどが記憶されている。RAM50cは、CPU50aによる演算結果や各センサの検出結果などを一時的に記憶するメモリである。バックアップRAM50dは、車両システムを停止する際に保存すべきデータなどを記憶する不揮発性のメモリである。
入出力インターフェース50eは、各センサの検出結果などが入力されるとともに、各部に制御信号などを出力する機能を有する。入出力インターフェース50eには、クランクポジションセンサ61、スロットル開度センサ62、アクセル開度センサ63、MG回転数センサ64、タービン回転数センサ65、および、車速センサ66などが接続されている。そして、ECU50は、各センサの検出結果などに基づいて、クランクシャフト1aの回転位置(クランク角度)、クランクシャフト1aの単位時間あたりの回転数(エンジン回転数)、スロットルバルブの開度(スロットル開度)、アクセルペダルの操作量であるアクセル開度、ロータシャフト3aの単位時間あたりの回転数(MG回転数)、タービンシャフト4aの単位時間あたりの回転数(タービン回転数)、および、車速などを算出する。
また、入出力インターフェース50eには、インジェクタ11、イグナイタ12およびスロットルモータ13が接続されている。そして、ECU50は、各センサの検出結果などに基づいて、燃料噴射量、点火時期およびスロットル開度(吸入空気量)などを制御することにより、内燃機関1の運転状態を制御するように構成されている。
また、入出力インターフェース50eには、油圧制御回路70が接続されている。そして、ECU50は、油圧制御回路70から出力される油圧を調整することにより、クラッチ2の係合解放制御、ロックアップクラッチ43の係合解放制御、および、変速機5の変速段の切替制御などを行うように構成されている。クラッチ2の係合解放制御では、クラッチ2を制御する油圧アクチュエータに供給される油圧を、油圧制御回路70のソレノイドバルブ(図示省略)によって調圧することにより、クラッチ2のトルク容量(クラッチトルク)を調整することが可能である。
また、入出力インターフェース50eには、バッテリ51およびインバータ52が接続されている。バッテリ51は、充放電可能な蓄電装置であり、モータジェネレータ3を駆動する電力を供給するとともに、モータジェネレータ3で発電された電力を蓄電するように構成されている。インバータ52は、たとえば、IGBTおよびダイオードを有する三相ブリッジ回路であり、ECU50から供給される駆動信号によりIGBTのオン/オフ状態が制御されることによって力行制御または発電制御される。具体的には、インバータ52は、バッテリ51から供給される直流電流を交流電流に変換してモータジェネレータ3を駆動する(力行制御)とともに、モータジェネレータ3で発電された交流電流を直流電流に変換してバッテリ51に出力する(発電制御)。
−走行モード−
次に、車両100の走行モードについて説明する。この車両100は、EV走行モードとHV走行モードとを切り替え可能に構成されている。
EV走行モード時には、クラッチ2を解放するとともに、内燃機関1の運転を停止した状態で、モータジェネレータ3から駆動力を出力することにより、モータジェネレータ3の駆動力のみで走行する。なお、制動時には、モータジェネレータ3で発電可能である。
HV走行モード時には、クラッチ2を係合した状態で内燃機関1の運転を行うことにより、内燃機関1から出力される駆動力で走行する。この場合、モータジェネレータ3から走行用の駆動力(アシストトルク)を出力したり、モータジェネレータ3で発電することも可能である。
すなわち、車両100は、走行状態などに応じて内燃機関1を間欠運転するように構成されている。
−車両走行中の内燃機関の始動−
車両100は、EV走行モードからHV走行モードに移行される際に、走行中に内燃機関1を始動するときに、クラッチ2を滑らせながら係合させてエンジン回転数を上昇させるように構成されている。このとき、クラッチ2の係合により発生する減速トルクを打ち消すようにモータジェネレータ3から補償トルクが出力されるようになっている。すなわち、クラッチ2の係合により内燃機関1側にトルクが奪われることに起因してショックが発生するのを抑制するために、その奪われるトルク分だけモータジェネレータ3からの出力が増加される。なお、減速トルク(負トルク)は、内燃機関1が引きずられることにより発生し、クラッチトルクにより調整することが可能である。
ここで、クラッチ2では、製造時の個体差や長期間の使用に伴う経年変化などに起因して、クラッチ2に対する係合開始指示から実際に係合が開始されるまでの無駄時間にばらつきが生じる。このようなばらつきがあると、内燃機関1の始動時にショックが発生するおそれがある。そこで、本実施形態のECU50は、クラッチトルク(減速トルク)の発生タイミングと補償トルクの発生タイミングとのずれを補正するタイミング学習を行うように構成されている。このタイミング学習では、クラッチトルクの発生タイミングと補償トルクの発生タイミングとのずれが減少するように、補償トルクの発生タイミングが補正される。これにより、内燃機関1の始動時にショックが発生するのを抑制することが可能である。
そして、タイミング学習により内燃機関1の始動時のショックを抑制することが可能であるが、クラッチ2の無駄時間にばらつきが生じると、内燃機関1の始動の際の応答性にばらつきが発生するおそれがある。そこで、本実施形態のECU50は、クラッチ2を係合させる際のファーストフィル時間を補正するファーストフィル時間学習を行うように構成されている。なお、ファーストフィル(クイックアプライ)とは、クラッチ2の応答性を向上させるために、クラッチ2を制御する油圧アクチュエータに供給される油圧を一時的に高めてパック詰めを行うためのものである。これにより、クラッチトルクの発生タイミングを目標とされる所定範囲内にすることにより、内燃機関1の始動時の応答性がばらつくのを抑制することが可能である。なお、ECU50は、タイミング学習によりタイミングのずれが収束した後に、ファーストフィル時間学習を行うように構成されている。これは、クラッチ2はモータジェネレータ3に比べて制御性が低い(精度よく制御することが困難である)ため、ファーストフィル時間学習を先行させると、収束するのに時間がかかり、ショックが発生する期間が長くなるおそれがあるためである。
また、車両100の走行中における内燃機関1の始動方法としては、たとえば、第1の始動方法と第2の始動方法とがある。第1の始動方法では、クラッチ2を係合させることにより、エンジン回転数を完爆可能な所定回転数まで上昇させた後に、燃料噴射および点火を開始する。第2の始動方法は、いわゆる着火始動であり、クラッチ2が係合されて内燃機関1が回転を開始する当初から燃料噴射および点火を開始する。着火始動では、吸気バルブおよび排気バルブがともに閉じている膨張行程で停止している気筒の燃焼室にインジェクタ11から燃料を噴射して点火することにより、その気筒で燃焼・爆発させることによって、回転開始当初から駆動力が出力される。この第2の始動方法(着火始動)では、第1の始動方法に比べて、内燃機関1の始動の際に要求されるモータジェネレータ3からの補償トルクを低減することができるので、EV走行モードで走行可能な運転領域を拡大することが可能である。なお、車両走行中の内燃機関1の始動方法は、たとえば車両100の状態などに応じて選択される。
そして、着火始動を行う場合において、クラッチ2が係合を開始するタイミング(クラッチトルクの発生タイミング)と着火始動の開始タイミングとにずれが生じると、燃焼条件が悪化したり、エンジン回転数が失速するおそれがある。そこで、ECU50は、クラッチ2が係合を開始するタイミングと着火始動の開始タイミングとのずれを補正するように構成されている。なお、着火始動の開始タイミングは、補償トルクの発生タイミングと同期されており、補償トルクの発生タイミングとともに学習される。
図3〜図5は、車両100の走行中における内燃機関1の始動時のタイミングチャートの一例である。次に、図3〜図5を参照して、車両100の走行中における内燃機関1の始動時の動作例について説明する。
なお、図3〜図5では、クラッチ2の油圧アクチュエータに供給される油圧の指示値および実値と、クラッチ2のトルク容量であるクラッチトルクと、モータジェネレータ3からの出力トルクであるMGトルク(モータトルク)と、内燃機関1の単位時間あたりの回転数(エンジン回転数Ne)およびモータジェネレータ3の単位時間あたりの回転数(MG回転数Nmg)とを示した。図3〜図5において、クラッチトルクが発生すると内燃機関1が引きずられるため、そのクラッチトルクと対応する減速トルク(負トルク)が発生する。また、図3〜図5において、MGトルクは補償トルクに相当する。
また、図3は、初期状態の場合を示し、図4は、タイミング学習が収束した状態の場合を示し、図5は、ファーストフィル時間学習の実行後の場合を示した。なお、初期状態とは、学習履歴がゼロであり、学習が開始されるときの状態である。たとえば、ECU50が交換された場合や、クラッチ2の交換により学習履歴がリセットされた場合に、初期状態になる。
[初期状態の場合]
まず、車両走行中の内燃機関1の始動前においては、EV走行モードであり、クラッチ2が解放され、内燃機関1の運転が停止されている。また、トルクコンバータ4のロックアップクラッチ43が滑っている。なお、図3の例では、モータジェネレータ3から走行用の駆動力が出力されておらず、車両100が惰性走行している場合を示しているが、モータジェネレータ3から走行用の駆動力が出力されることにより車両100が走行していてもよい。
そして、EV走行モードからHV走行モードに移行される際に、内燃機関1の始動が開始されると、図3の時点t1において、ECU50ではクラッチ2に対する指示トルクが設定され、クラッチトルクがその指示トルクになるようにクラッチ2の油圧アクチュエータに対する制御が開始される。具体的には、まず、ファーストフィル制御が行われる。このファーストフィル制御では、クラッチ2の油圧アクチュエータに供給される油圧の指示値として、所定のファーストフィル圧が設定され、その状態がファーストフィル時間FTだけ継続される。なお、ファーストフィル時間FTは後述するように学習補正されるが、初期状態のファーストフィル時間FTは、予め設定された値(たとえば、学習補正されるファーストフィル時間FTにおいて設定可能な最小値)であり、クラッチ2のばらつきが最大であっても、ファーストフィル時間FT内でクラッチ2が係合を開始しないように設定されている。このため、後述するように、所定範囲PRよりも遅れてクラッチトルクが立ち上がる。この所定範囲PRは、予め設定されており、クラッチトルクの発生タイミングの目標とされる範囲である。
そして、ファーストフィル制御が終了されると、クラッチ2の油圧アクチュエータに供給される油圧の指示値として、ファーストフィル圧よりも低い所定値PVが設定される。この所定値PVは、たとえば、指示トルクなどに基づいて算出された値である。なお、ECU50は、クラッチ2の油圧アクチュエータに供給される油圧が設定された指示値になるように、油圧制御回路70のソレノイドバルブを制御する。
次に、時点t2において、MGトルクが立ち上がる。初期状態の場合には、MGトルクの発生タイミングが所定範囲PR内に設定されている。そして、時点t3において、クラッチトルクが立ち上がる。その後、エンジン回転数Neが立ち上がる。なお、クラッチトルクは、係合開始指示から遅れて立ち上がり、MGトルクは、時点t2でECU50がインバータ52を制御することにより立ち上げられる。このように、クラッチトルクよりもMGトルクが早く立ち上がると、そのMGトルクによってMG回転数Nmgが吹き上がる。すなわち、モータジェネレータ3の基準回転数Nmgbに対して実際のMG回転数Nmgが乖離する。なお、基準回転数Nmgbは、MG回転数Nmgに対してなまし処理(たとえば移動平均フィルタなどによる平滑化処理)を施すことにより算出される。また、クラッチトルクが所定範囲PRよりも遅れて立ち上がるため、エンジン回転数Neが目標エンジン回転数Netよりも遅れて立ち上がる。
そこで、まず、モータジェネレータ3の回転変動に基づいてタイミング学習が行われる。図3の例では、白抜き矢印で示すように、内燃機関1の次回の始動時におけるMGトルクの立ち上がりタイミングが遅くなるように補正される。このタイミング学習は、車両走行中の内燃機関1の始動毎に行われ、MGトルクの立ち上がりタイミングが、クラッチトルクの立ち上がりタイミングに徐々に収束されるようになる。なお、着火始動を行う場合のその開始タイミングは、MGトルクの立ち上がりタイミングと同期された状態で学習補正される。
[タイミング学習が収束した状態の場合]
図4の時点t11までについては、上記した図3の場合と同様である。そして、時点t11において、ECU50ではクラッチ2に対する指示トルクが設定され、クラッチトルクがその指示トルクになるようにクラッチ2の油圧アクチュエータに対する制御が開始される。
次に、時点t12において、MGトルクが立ち上がるとともに、クラッチトルクが立ち上がる。その後、エンジン回転数Neが立ち上がる。このように、クラッチトルクとMGトルクとが同時に立ち上がると、タイミングのずれに起因するMG回転数Nmgの変動が発生しない。したがって、内燃機関1の始動時にショックが発生するのを抑制することが可能である。また、クラッチトルクが所定範囲PRよりも遅れて立ち上がるため、エンジン回転数Neが目標エンジン回転数Netよりも遅れて立ち上がる。
そこで、クラッチトルクの発生タイミングとMGトルクの発生タイミングとのずれが収束した場合には、ファーストフィル時間学習が行われる。このファーストフィル時間学習は、クラッチ2に対する係合開始指示から実際に係合が開始されるまでの無駄時間に基づいて行われる。なお、図4の状態では、クラッチ2の無駄時間と、クラッチ2の係合開始指示が出力されてからMGトルクが立ち上げられるまでの待機時間とが同じであることから、クラッチ2の無駄時間は、たとえば、モータジェネレータ3の待機時間に基づいて判断される。図4の例では、白抜き矢印で示すように、内燃機関1の次回の始動時におけるファーストフィル時間FTが大きくなるように補正される。このため、クラッチ2の無駄時間が短くなり、クラッチトルクが早期に立ち上がるので、クラッチトルクの発生タイミングを所定範囲PRに近づけることが可能である。
[ファーストフィル時間学習の実行後の場合]
図5の時点t21までについては、上記した図3の場合と同様である。そして、時点t21において、ECU50ではクラッチ2に対する指示トルクが設定され、クラッチトルクがその指示トルクになるようにクラッチ2の油圧アクチュエータに対する制御が開始される。
次に、時点t22において、クラッチトルクが立ち上がる。そして、エンジン回転数Neが立ち上がる。その後、時点t23において、MGトルクが立ち上がる。このように、MGトルクよりもクラッチトルクが早く立ち上がると、そのクラッチトルクによってMG回転数Nmgが下がる。また、クラッチトルクが図3および図4の場合に比べて早期に立ち上がるため、エンジン回転数Neも早期に立ち上がり目標エンジン回転数Netに近づくようになる。
そして、ファーストフィル時間学習が実行された場合には、MGトルクの立ち上がりタイミングとクラッチトルクの立ち上がりタイミングとにずれが発生するため、タイミング学習が行われる。なお、その後、タイミング学習が再び収束するまで、ファーストフィル時間学習は行われない。
上記した動作が繰り返し行われることにより、クラッチトルクの立ち上がりタイミングが目標とされる所定範囲PR内に移る。したがって、エンジン回転数Neが目標エンジン回転数Netの近傍になり、内燃機関1の始動の際の応答性のばらつきを抑制することが可能である。
ここで、ファーストフィル時間学習により、ファーストフィル時間FTが必要以上に大きくなると、油圧がオーバーシュートしてクラッチトルクが過剰になり、ショックが発生するおそれがある。そこで、本実施形態では、油圧オーバーシュート判定を行い、油圧がオーバーシュートしていると判定された場合にファーストフィル時間FTを小さくするように補正する。次に、図6および図7を参照して、油圧がオーバーシュートした状態での内燃機関1の始動時の動作例について説明する。
[油圧がオーバーシュートした場合]
図6の時点t31までについては、上記した図3の場合と同様である。そして、時点t31において、ECU50ではクラッチ2に対する指示トルクが設定され、クラッチトルクがその指示トルクになるようにクラッチ2の油圧アクチュエータに対する制御が開始される。
次に、時点t32において、MGトルクが立ち上がるとともに、クラッチトルクが立ち上がる。この場合には、ファーストフィル時間FTが必要以上に大きいため、油圧の実値が予め高くなっており、油圧がオーバーシュートする。すなわち、油圧の実値が指示値に対して一時的に吹き上がった後に収束される。このため、クラッチトルクも油圧の実値と同様にオーバーシュートする。したがって、クラッチトルクとMGトルクとが同時に立ち上がる場合であっても、MGトルクにより相殺できないクラッチトルクが発生するため、MG回転数Nmgが一時的に低下する。
このように、油圧のオーバーシュートが発生する状況において、タイミング学習が行われると、図6の白抜き矢印で示すように、内燃機関1の次回の始動時におけるMGトルクの立ち上がりタイミングが早くなるように補正される。これは、タイミング学習では、MG回転数Nmgと基準回転数Nmgbとの差の積算値がゼロに近づくように、MGトルクの立ち上がりタイミングが補正されるためである。したがって、油圧オーバーシュートが発生している状態でタイミング学習が進行されると、MGトルクの立ち上がりタイミングとクラッチトルクの立ち上がりタイミングとのずれが拡大するように補正される。
[油圧がオーバーシュートし、タイミング学習が収束した場合]
図7の時点t41までについては、上記した図3の場合と同様である。そして、時点t41において、ECU50ではクラッチ2に対する指示トルクが設定され、クラッチトルクがその指示トルクになるようにクラッチ2の油圧アクチュエータに対する制御が開始される。
次に、時点t42において、MGトルクが立ち上がる。そして、時点t43において、クラッチトルクが立ち上がる。このように、クラッチトルクよりもMGトルクが早く立ち上がると、そのMGトルクによってMG回転数Nmgが吹き上がる。そして、クラッチトルクがオーバーシュートするため、MG回転数Nmgが一時的に基準回転数Nmgbを下回る。その後、MG回転数Nmgが基準回転数Nmgbに収束される。
この場合には、MG回転数Nmgが基準回転数Nmgbに対して正側に変動した後に、MG回転数Nmgが基準回転数Nmgbに対して負側に変動することから、MG回転数Nmgと基準回転数Nmgbとの差の積算値がゼロに近づき、タイミング学習が収束される。そして、基準回転数Nmgbに対する正側の回転変動のみを積算するとともに、基準回転数Nmgbに対する負側の回転変動のみを積算し、その正側の積算値および負側の積算値に基づいて油圧オーバーシュート判定が行われる。そして、油圧がオーバーシュートしていると判定された場合には、ファーストフィル時間FTが小さくなるように補正される。そして、油圧オーバーシュートが解消されると、タイミング学習により、MGトルクの立ち上がりタイミングをクラッチトルクの立ち上がりタイミングに適切に近づけることが可能になる。
−ECUによる学習制御−
ECU50は、上記したように、タイミング学習を優先して行い、そのタイミング学習が収束した後にファーストフィル時間学習を行うように構成されている。
具体的には、ECU50は、車両走行中の内燃機関1の始動時に、モータジェネレータ3の基準回転数Nmgbに対する実際のMG回転数Nmgの乖離量を算出するように構成されている。この乖離量は、たとえば、車両走行中の内燃機関1の始動時における、MG回転数Nmgと基準回転数Nmgbとの差の積算値である。そして、ECU50は、乖離量に基づいてタイミング学習を行うように構成されている。
また、ECU50は、クラッチ2の無駄時間を所定範囲PR内にするために、ファーストフィル時間学習を行うように構成されている。具体的には、ECU50は、クラッチ2の無駄時間が所定範囲PRの上限値UL(図3参照)を超えている場合に、ファーストフィル時間FTを長くするように補正するとともに、クラッチ2の無駄時間が所定範囲PRの下限値LL(図3参照)未満である場合に、ファーストフィル時間FTを短くするように補正する。
さらに、ECU50は、油圧オーバーシュート判定を行い、油圧がオーバーシュートしていると判定された場合にファーストフィル時間FTを短くするように補正する。この油圧オーバーシュート判定では、図7に示すように、タイミング学習が収束し、正側の積算値が所定値以上であり、負側の積算値が所定値以下である場合に、油圧がオーバーシュートしていると判定される。なお、乖離量が収束した場合にタイミング学習が収束したと判断され、乖離量は正側の積算値と負側の積算値との合計値である。具体的には、後述するように、判定フラグがオンであり、カウント値が所定値以上の場合に、ファーストフィル時間FTが短くなるように補正される。
図8〜図11は、本実施形態のECU50による学習制御を説明するためのフローチャートである。次に、図8〜図11を参照して、本実施形態のECU50による学習制御について説明する。なお、以下のフローは所定の時間間隔毎に繰り返し行われる。また、以下の各ステップはECU50により実行される。
まず、図8のステップS1において、内燃機関1が始動されるか否かが判断される。そして、内燃機関1が始動されると判断された場合には、ステップS2に移る。その一方、内燃機関1が始動されないと判断された場合には、リターンに移る。
次に、ステップS2において、内燃機関1の前回の始動の際にファーストフィル時間FTが補正されたか否かが判断される。そして、ファーストフィル時間FTが補正されていないと判断された場合には、ステップS3に移る。その一方、ファーストフィル時間FTが補正されたと判断された場合には、MGトルクの立ち上がりタイミングとクラッチトルクの立ち上がりタイミングとにずれが発生するため、ステップS4に移る。
次に、ステップS3において、タイミング学習が収束したか否かが判断される。タイミング学習が収束したか否かは、たとえば、前回のタイミング学習時に算出された乖離量の絶対値に基づいて判断される。具体的には、前回のタイミング学習時における乖離量の絶対値が所定値以上の場合には、タイミングのずれが許容範囲外であり、タイミング学習の進行が不十分であることから、ステップS4に移る。その一方、前回のタイミング学習時における乖離量の絶対値が所定値未満の場合には、ステップS5に移る。なお、この所定値は、たとえば、予め設定された値であり、タイミングのずれが許容範囲内であるか否かを判定するための閾値である。また、初期状態の場合には、タイミング学習が収束していないと判断され、ステップS4に移る。
そして、ステップS4では、タイミング学習が実行され、リターンに移る。
このタイミング学習では、図9のステップS21において、乖離量の演算開始条件が成立するか否かが判断される。たとえば、モータジェネレータ3からのMGトルク(補償トルク)の出力開始時点の所定時間前の時点になった場合に、演算開始条件が成立すると判断される。この所定時間は、たとえば、予め設定された時間であり、タイミングのずれに起因するモータジェネレータ3の回転変動を検出するために設定されている。そして、乖離量の演算開始条件が成立すると判断された場合には、ステップS22に移る。その一方、乖離量の演算開始条件が成立しないと判断された場合には、ステップS21が繰り返し行われる。すなわち、乖離量の演算開始条件が成立するまで待機する。
次に、ステップS22において、MG回転数センサ64の検出結果に基づいてMG回転数Nmgが算出される。そして、ステップS23において、MG回転数Nmgに対してなまし処理を施すことにより基準回転数Nmgbが算出される。その後、ステップS24において、MG回転数Nmgと基準回転数Nmgbとの差(MG回転数Nmgから基準回転数Nmgbを引いた値)が算出され、ステップS25において、MG回転数Nmgと基準回転数Nmgbとの差の積算値が算出される。
次に、ステップS26において、乖離量の演算終了条件が成立するか否かが判断される。たとえば、エンジン回転数Neが完爆可能な所定回転数に到達した場合に、演算終了条件が成立すると判断される。そして、乖離量の演算終了条件が成立しないと判断された場合には、ステップS22に戻り、乖離量の演算が継続される。その一方、乖離量の演算終了条件が成立すると判断された場合には、乖離量の演算が終了され、ステップS27に移る。すなわち、演算終了条件が成立するまでステップS22〜S25が繰り返し行われ、最終的な積算値(演算終了条件が成立する直前のステップS25で算出された積算値)が乖離量として用いられる。
次に、ステップS27において、乖離量に所定のゲインを乗じて補正量が算出される。
そして、ステップS28では、内燃機関1の次回の始動時におけるMGトルクの立ち上がりタイミングが補正される。具体的には、内燃機関1の次回の始動時における、クラッチ2の係合開始指示(油圧指示)が出力されてからMGトルクが立ち上げられるまでの待機時間が以下の式(1)により算出される。
Tmg(n+1)=Tmg(n)+Co1 ・・・(1)
なお、式(1)において、Tmg(n+1)は、内燃機関1の次回の始動時におけるMGトルクが立ち上げられるまでの待機時間であり、Tmg(n)は、内燃機関1の今回の始動時におけるMGトルクが立ち上げられるまでの待機時間である。また、Co1は、ステップS27で算出した補正量である。
このため、クラッチトルクの立ち上がりタイミングに対してMGトルクの立ち上がりタイミングが早く、MG回転数Nmgが吹き上がる場合には、ステップS27で正値の補正量が算出されることから、次回の待機時間が長くなり、次回の始動時におけるMGトルクの立ち上がりタイミングが今回に比べて遅くされる。また、クラッチトルクの立ち上がりタイミングに対してMGトルクの立ち上がりタイミングが遅く、MG回転数Nmgが下がる場合には、ステップS27で負値の補正量が算出されることから、次回の待機時間が短くなり、次回の始動時におけるMGトルクの立ち上がりタイミングが今回に比べて早くされる。
また、内燃機関1の次回の始動時に着火始動を行う場合のその開始タイミングも補正される。なお、着火始動の開始タイミングは、MGトルクの立ち上がりタイミングと同期されており、MGトルクの立ち上がりタイミングと同様に学習補正される。その後、タイミング学習が終了される。
また、タイミング学習が収束した場合(ステップS3:Yes)には、図8のステップS5において、油圧オーバーシュート判定処理が行われる。
この油圧オーバーシュート判定処理では、図10のステップS31において、モータジェネレータ3の回転変動の正側の積算値が所定値以上であるか否かが判断される。この正側の積算値は、たとえば、前回のタイミング学習時に算出され、乖離量を演算する際におけるMG回転数Nmgと基準回転数Nmgbとの差が正のものだけを積算して算出される。また、この所定値は、予め設定された正の値であり、本発明の「第1所定値」の一例である。そして、正側の積算値が所定値以上であると判断された場合には、ステップS32に移る。その一方、正側の積算値が所定値以上ではないと判断された場合には、ステップS35に移る。
次に、ステップS32において、モータジェネレータ3の回転変動の負側の積算値が所定値以下であるか否かが判断される。この負側の積算値は、たとえば、前回のタイミング学習時に算出され、乖離量を演算する際におけるMG回転数Nmgと基準回転数Nmgbとの差が負のものだけを積算して算出される。また、この所定値は、予め設定された負の値であり、本発明の「第2所定値」の一例である。そして、負側の積算値が所定値以下であると判断された場合には、ステップS33に移る。その一方、負側の積算値が所定値以下ではないと判断された場合には、ステップS35に移る。
そして、ステップS33では、油圧オーバーシュートの判定フラグがオンにされ、ステップS34に移る。次に、ステップS34では、カウント値がカウントアップされ、油圧オーバーシュート判定処理が終了される。
また、ステップS35では、判定フラグがオンであるか否かが判断される。そして、判定フラグがオンであると判断された場合には、ステップS36に移る。その一方、判定フラグがオンではないと判断された場合(判定フラグがオフの場合)には、油圧オーバーシュート判定処理が終了される。
次に、ステップS36において、カウント値がカウントダウンされ、ステップS37に移る。ステップS37では、カウント値がゼロであるか否かが判断される。そして、カウント値がゼロであると判断された場合には、ステップS38において、判定フラグがオフにされ、油圧オーバーシュート判定処理が終了される。その一方、カウント値がゼロではないと判断された場合(カウント値が1以上の場合)には、判定フラグがオンのまま、油圧オーバーシュート判定処理が終了される。
そして、油圧オーバーシュート判定処理が終了されると、図8のステップS6において、判定フラグがオンであるか否かが判断される。そして、判定フラグがオンではないと判断された場合には、油圧オーバーシュートが発生していないため、ステップS7に移る。その一方、判定フラグがオンであると判断された場合には、油圧オーバーシュートの可能性があるため、ステップS9に移る。すなわち、油圧オーバーシュートの可能性がある場合には、ファーストフィル時間学習が禁止される。
次に、ステップS7において、内燃機関1の始動が完了されたか否かが判断される。たとえば、クラッチ2が完全に係合した場合に内燃機関1の始動が完了されたと判断される。そして、内燃機関1の始動が完了されたと判断された場合には、ステップS8に移る。その一方、内燃機関1の始動が完了されていないと判断された場合には、ステップS7が繰り返し行われる。すなわち、内燃機関1の始動が完了するまで待機する。
そして、ステップS8では、ファーストフィル時間学習が実行され、リターンに移る。
このファーストフィル時間学習では、図11のステップS41において、クラッチ2の無駄時間が上限値ULを上回るか否かが判断される。このクラッチ2の無駄時間は、たとえば、モータジェネレータ3の待機時間に基づいて判断される。また、上限値ULは、目標とされる所定範囲PRの上限値である。そして、クラッチ2の無駄時間が上限値ULを上回らないと判断された場合には、ステップS42に移る。その一方、クラッチ2の無駄時間が上限値ULを上回ると判断された場合には、無駄時間が長いことから、ステップS43に移る。
次に、ステップS42において、クラッチ2の無駄時間が下限値LLを下回るか否かが判断される。下限値LLは、目標とされる所定範囲PRの下限値である。そして、クラッチ2の無駄時間が下限値LLを下回ると判断された場合には、無駄時間が短いことから、ステップS44に移る。その一方、クラッチ2の無駄時間が下限値LLを下回らないと判断された場合には、無駄時間が所定範囲PR内であることから、ファーストフィル時間FTが補正されることなく、ファーストフィル時間学習が終了される。
そして、ステップS43では、ファーストフィル時間FTが長くなるように補正される。具体的には、内燃機関1の次回の始動時におけるファーストフィル時間FTが以下の式(2)により算出される。
FT(n+1)=FT(n)+Co2 ・・・(2)
なお、式(2)において、FT(n+1)は、内燃機関1の次回の始動時におけるファーストフィル時間であり、FT(n)は、内燃機関1の今回の始動時におけるファーストフィル時間である。また、Co2は、正値であり、予め設定された補正時間である。
このため、内燃機関1の次回の始動時には、クラッチトルクが今回に比べて早く立ち上がる(無駄時間が短くなる)ので、クラッチトルクの立ち上がるタイミングが所定範囲PRに近づくようになる。その後、ファーストフィル時間学習が終了される。
また、ステップS44では、ファーストフィル時間FTが短くなるように補正される。具体的には、内燃機関1の次回の始動時におけるファーストフィル時間FTが以下の式(3)により算出される。
FT(n+1)=FT(n)−Co3 ・・・(3)
なお、式(3)において、FT(n+1)は、内燃機関1の次回の始動時におけるファーストフィル時間であり、FT(n)は、内燃機関1の今回の始動時におけるファーストフィル時間である。また、Co3は、正値であり、予め設定された補正時間である。なお、Co3の値は、上記したCo2と同じであってもよいし、異なっていてもよい。
このため、内燃機関1の次回の始動時には、クラッチトルクが今回に比べて遅く立ち上がる(無駄時間が長くなる)ので、クラッチトルクの立ち上がるタイミングが所定範囲PRに近づくようになる。その後、ファーストフィル時間学習が終了される。
また、判定フラグがオンの場合(ステップS6:Yes)には、図8のステップS9において、カウント値が所定値以上であるか否かが判断される。この所定値は、予め設定された値であり、油圧オーバーシュートが発生しているか否かを判定するための閾値である。そして、カウント値が所定値以上であると判断される場合には、油圧オーバーシュートが発生していると判定され、ステップS10に移る。その一方、カウント値が所定値以上ではないと判断される場合(カウント値が所定値未満の場合)には、油圧オーバーシュートの判定が継続されるため、ステップS4に移る。
次に、ステップS10において、内燃機関1の始動が完了されたか否かが判断される。そして、内燃機関1の始動が完了されたと判断された場合には、ステップS11に移る。その一方、内燃機関1の始動が完了されていないと判断された場合には、ステップS10が繰り返し行われる。すなわち、内燃機関1の始動が完了するまで待機する。
そして、ステップS11では、ファーストフィル時間FTが短くなるように補正される。具体的には、内燃機関1の次回の始動時におけるファーストフィル時間FTが以下の式(4)により算出される。
FT(n+1)=FT(n)−Co4 ・・・(4)
なお、式(4)において、FT(n+1)は、内燃機関1の次回の始動時におけるファーストフィル時間であり、FT(n)は、内燃機関1の今回の始動時におけるファーストフィル時間である。また、Co4は、正値であり、予め設定された補正時間である。なお、Co4の値は、上記したCo3と同じであってもよいし、異なっていてもよい。
また、内燃機関1の今回の始動時におけるファーストフィル時間FT(n)を、補正されるファーストフィル時間FTの最大値として設定する。すなわち、補正されるファーストフィル時間FTの上限ガード値としてFT(n)が設定される。その後、判定フラグがオフにされるとともに、カウント値がリセットされ、リターンに移る。
なお、ステップS4などがECU50により実行されることによって本発明の「第1学習手段」が実現され、ステップS5、S6、S8、S9およびS11などがECU50により実行されることによって本発明の「第2学習手段」が実現される。
−効果−
本実施形態では、上記のように、タイミング学習が収束(正側の積算値と負側の積算値との合計値である乖離量が収束)し、正側の積算値が所定値以上であり、かつ、負側の積算値が所定値以下である場合に、油圧のオーバーシュートが発生したと判定し、ファーストフィル時間を短くするように補正することによって、ファーストフィル時間が必要以上に長くなるのを抑制することができる。したがって、内燃機関1の始動時にショックが発生するのを抑制することができる。また、油圧センサ(図示省略)を設けることなく、油圧オーバーシュートが発生したか否かを判定することができるので、部品点数の増加を抑制することができる。
また、本実施形態では、油圧オーバーシュートが発生したと判定された場合に、そのときのファーストフィル時間を上限ガード値として設定することによって、その後、ファーストフィル時間が必要以上に大きくなるのを抑制することができる。
また、本実施形態では、正側の積算値が所定値以上であり、負側の積算値が所定値以下である場合に、カウント値をカウントアップするとともに、その条件が成立しない場合にカウント値をカウントダウンし、かつ、カウント値が所定値以上の場合に、油圧オーバーシュートが発生したと判定することによって、油圧オーバーシュートの判定精度の向上を図ることができる。
−他の実施形態−
なお、今回開示した実施形態は、すべての点で例示であって、限定的な解釈の根拠となるものではない。したがって、本発明の技術的範囲は、上記した実施形態のみによって解釈されるものではなく、特許請求の範囲の記載に基づいて画定される。また、本発明の技術的範囲には、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
たとえば、本実施形態では、車両100がFR(フロントエンジンリアドライブ)方式である例を示したが、これに限らず、車両がFF(フロントエンジンフロントドライブ)方式または4WD方式などであってもよい。
また、本実施形態では、着火始動可能な直噴型の内燃機関1が設けられる例を示したが、これに限らず、着火始動できない他の内燃機関が設けられていてもよい。
また、本実施形態では、湿式多板型のクラッチ2が設けられる例を示したが、これに限らず、油圧作動式であれば、乾式などの他のクラッチが設けられていてもよい。
また、本実施形態では、トルクコンバータ4が設けられる例を示したが、これに限らず、トルクコンバータの代わりに、トルク増幅作用のないフルードカップリングが設けられていてもよい。
また、本実施形態では、変速機5が有段式の自動変速機である例を示したが、これに限らず、変速機が無段変速機などであってもよい。
また、本実施形態では、ファーストフィル時間FTを学習補正することにより、クラッチ2の無駄時間を目標とされる所定範囲PR内にする例を示したが、これに限らず、ファーストフィル圧を学習補正することにより、クラッチの無駄時間を目標とされる所定範囲内にするようにしてもよい。この場合には、クラッチの無駄時間が所定範囲の上限値を超えている場合に、ファーストフィル圧を高くするように補正し、クラッチの無駄時間が所定範囲の下限値未満である場合に、ファーストフィル圧を低くするように補正すればよい。
また、本実施形態では、油圧オーバーシュートが発生した場合にファーストフィル時間FTを短くする例を示したが、これに限らず、油圧オーバーシュートが発生した場合にファーストフィル圧を低くするようにしてもよい。
また、本実施形態では、内燃機関1の前回の始動の際にファーストフィル時間FTが補正された場合にタイミング学習を実行する例を示したが、これに限らず、内燃機関の前回の始動の際にファーストフィル時間学習が実行された場合に、そのファーストフィル時間学習においてファーストフィル時間が補正されたか否かにかかわらずタイミング学習を実行するようにしてもよい。
また、本実施形態では、モータジェネレータ3の待機時間に基づいてクラッチ2の無駄時間を判断する例を示したが、これに限らず、エンジン回転数に基づいてクラッチの無駄時間を判断するようにしてもよい。
また、本実施形態では、MG回転数Nmgと基準回転数Nmgbとの差の積算値を乖離量として用いる例を示したが、これに限らず、MG回転数と基準回転数との差の最大値などを乖離量として用いてもよい。
また、本実施形態では、MG回転数Nmgに対してなまし処理を施すことにより基準回転数Nmgbを算出する例を示したが、これに限らず、係合開始指示が出力された時点のMG回転数などを基準回転数としてもよい。
また、本実施形態のタイミング学習において、所定の実行条件が設定されていてもよい。実行条件としては、たとえば、トルクコンバータ4のロックアップクラッチ43が滑っていること、ATFの温度が所定範囲内であること、急加速や悪路走行中ではないことなどが挙げられ、これらの一部または全部が成立する場合に学習が実行されるようにしてもよい。
また、本実施形態のタイミング学習では、モータジェネレータ3からのMGトルクの出力開始時点の所定時間前の時点になった場合に、演算開始条件が成立すると判断される例を示したが、これに限らず、モータジェネレータからのMGトルクの出力開始時点になった場合に、演算開始条件が成立すると判断されるようにしてもよい。すなわち、タイミング学習における乖離量を積算する期間を、MGトルクの出力が開始されてから所定期間が経過するまでとしてもよい。
また、本実施形態では、カウント値が所定値以上の場合にファーストフィル時間FTを短くする例を示したが、これに限らず、カウント値にかかわらず、判定フラグがオンのとき(正側の積算値が所定値以上であり、かつ、負側の積算値が所定値以下であるとの条件が成立した場合)に、ファーストフィル時間を短くするようにしてもよい。
また、本実施形態では、カウント値がゼロの場合に判定フラグをオフにする例を示したが、これに限らず、カウント値が所定値(ステップS9における所定値よりも小さい値)以下の場合に判定フラグをオフにするようにしてもよい。
また、本実施形態において、ECU50が、HV(ハイブリッド)ECU、エンジンECU、MG(モータジェネレータ)ECUおよびバッテリECUなどによって構成され、これらのECUが互いに通信可能に接続されていてもよい。