(57)【特許請求の範囲】
【請求項１】
シリンダに吸入される空気量を測定するエンジンのシリンダ吸入空気量測定装置であって、
吸気弁と排気弁とがともに開かれるオーバーラップ期間が設けられたエンジンに備えられるものにおいて、
吸気系に吸入される空気量を検出する吸入空気量検出手段と、
該手段により検出された空気量に基づいて吸気マニホールド内の空気量を、該マニホールドにおける空気の流入出量の収支計算を行って算出するマニホールド内空気量算出手段と、
該手段により算出された空気量に基づいてシリンダに吸入される空気量を算出するシリンダ吸入空気量算出手段と、
エンジンの停止位置が前記オーバーラップ期間内であるか否かを判定するエンジン停止位置判定手段と、を含んで構成され、
前記マニホールド内空気量算出手段は、前記エンジン停止位置判定手段によりエンジンの停止位置がオーバーラップ期間内であると判定された次の始動に際して、吸気マニホールド内の空気量に係る初期値を、直前の停止時以前に記憶された所定量に設定することを特徴とするエンジンのシリンダ吸入空気量測定装置。
【請求項２】
前記所定量は、直前に停止した際に吸気マニホールド内が大気圧となるまで収支計算を行った場合に算出される最終空気量よりも大きい請求項１に記載のエンジンのシリンダ吸入空気量測定装置。
【請求項３】
前記所定量は、直前の停止時以前にエンジンがオーバーラップ期間外で停止した際に算出された最終空気量である請求項１又は２に記載のエンジンのシリンダ吸入空気量測定装置。
【請求項４】
前記所定量は、エンジンが通常の走行環境における大気条件のもとで停止している場合に吸気マニホールド内に充填される空気量である請求項１又は２に記載のエンジンのシリンダ吸入空気量測定装置。
【請求項５】
クランク軸の回転位置を検出する回転位置検出手段を備え、前記エンジン停止位置判定手段は、検出された回転位置に基づいてエンジンの停止位置がオーバーラップ期間内であるか否かを判定する請求項１〜４のいずれか１つに記載のエンジンのシリンダ吸入空気量測定装置。
【請求項６】
前記回転位置検出手段がクランク軸の回転角変位量を積算してその回転位置を検出する場合に、クランク軸の逆転を検出する逆転検出手段と、該手段によりクランク軸の逆転が検出されたときに、前記エンジン停止位置判定手段による判定を禁止する停止位置判定禁止手段とを備える請求項５に記載のエンジンのシリンダ吸入空気量測定装置。
【請求項７】
前記逆転検出手段は、エンジンを停止させる際に、クランク軸が単位角だけ回転するのに要した時間が１つ前の単位角について要した時間と等しいか、あるいはこれよりも短くなったときにクランク軸の逆転を検出する請求項６に記載のエンジンのシリンダ吸入空気量測定装置。
【請求項８】
前記逆転検出手段は、クランク角が単位角だけ回転するのに要した時間をＴＰＯＳ１０ｎとし、その１つ前の単位角について要した時間をＴＰＯＳ１０ｎ−１とし、その更に前の単位角について要した時間をＴＰＯＳ１０ｎ−２とすると；ＴＰＯＳ１０ｎ≦ＴＰＯＳ１０ｎ−１、かつ
ＴＰＯＳ１０ｎ−１＞ＴＰＯＳ１０ｎ−２であるときにクランク軸の逆転を検出する請求項７に記載のエンジンのシリンダ吸入空気量測定装置。
【請求項９】
前記逆転検出手段は、前記１つ前の単位角について要した時間が上死点を乗り越える際に要する時間に係るしきい値としての所定時間よりも長いときにのみ、クランク軸の逆転を検出する請求項６〜８のいずれか１つに記載のエンジンのシリンダ吸入空気量測定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、流入出量の収支計算を行って算出される吸気マニホールド内の空気量に基づいて実際にシリンダに吸入される空気量を測定するエンジンのシリンダ吸入空気量測定装置に関し、特に、吸排気弁の開期間がオーバーラップするエンジンにおいて、エンジンがオーバーラップ期間で停止した場合に吸気マニホールドに排気系側から流入する空気の影響を受けないようにするための改良に関する。
【０００２】
【従来の技術】
シリンダに吸入される空気量（以下「シリンダ吸入空気量」という。）の測定方法に次のものがある。
まず、エアフローメータの出力に基づいて吸気マニホールドに流入する空気量（以下「マニホールド流入空気量」という。）を算出し、求められたマニホールド流入空気量と、吸気マニホールドからのシリンダ吸入空気量との収支計算を行って、吸気マニホールド内の空気量（以下「マニホールド内空気量」という。）を算出する。そして、マニホールド内空気量とシリンダ容積とに基づいてシリンダ吸入空気量を算出する（特開２００１−５００９１号公報）。
【０００３】
このように求められたシリンダ吸入空気量のもとで、要求される混合気空燃比を実現するための燃料噴射量が設定される。
【０００４】
【発明が解決しようとする課題】
ここで、マニホールド内空気量の収支計算は、次の始動時にシリンダ吸入空気量を測定するための初期値とするために、エンジンを停止させる際（アイドルストップとして一時的に停止される場合を含む。）に吸気マニホールド内が大気圧となるまで継続される。しかしながら、このときに行われる収支計算に関して、次の問題がある。
【０００５】
すなわち、排気上死点及びその付近に吸気弁と排気弁とがともに開かれるオーバーラップ期間が設けられたエンジンでは、このオーバーラップ期間でエンジンが停止する可能性がある。その場合は、吸気マニホールドに排気系側からも空気が流入することになるので、エアフローメータの出力に基づいて算出されるマニホールド流入空気量よりも実際には多量の空気が流入していることとなり、マニホールド内空気量の収支計算を正確に行うことができない。
【０００６】
そして、次の始動時には、停止の際に吸気マニホールド内が大気圧となるまで収支計算を継続して求められたマニホールド内空気量の最終値に基づいて燃料噴射量が設定されることになるが、上記のように誤差を含んで算出されたマニホールド内空気量からは、要求された混合気空燃比を実現するための燃料噴射量を正確に設定することができない。従って、エミッションの増加やトルク不足による始動性の悪化等が問題となる。
【０００７】
そこで、本発明は、マニホールド内空気量の収支計算を行ってシリンダ吸入空気量を測定するエンジンのシリンダ吸入空気量測定装置において、アイドルストップを含めエンジンがオーバーラップ期間で停止した場合に、吸気マニホールドに排気系側から流入する空気の影響を受けないようにすることを目的とする。
【０００８】
【課題を解決するための手段】
このため、請求項１に記載の発明では、シリンダに吸入される空気量を測定するエンジンのシリンダ吸入空気量測定装置であって、吸気弁と排気弁とがともに開かれるオーバーラップ期間が設けられたエンジンに備えられるものにおいて、（Ａ）吸気系に吸入される空気量を検出する吸入空気量検出手段、（Ｂ）検出された空気量に基づいて吸気マニホールド内の空気量を、このマニホールドにおける空気の流入出量の収支計算を行って算出するマニホールド内空気量算出手段、（Ｃ）算出された空気量に基づいてシリンダに吸入される空気量を算出するシリンダ吸入空気量算出手段、及び（Ｄ）エンジンの停止位置がオーバーラップ期間内であるか否かを判定するエンジン停止位置判定手段を含んで構成し、マニホールド内空気量算出手段において、エンジンの停止位置がオーバーラップ期間内であると判定された次の始動に際して、吸気マニホールド内の空気量に係る初期値を、直前の停止時以前に記憶された所定量に設定する。
【０００９】
請求項２に記載の発明では、上記所定量を、直前に停止した際に吸気マニホールド内が大気圧となるまで収支計算を行った場合に算出される最終空気量よりも大きい値とする。
請求項３に記載の発明では、上記所定量を、直前の停止時以前にエンジンがオーバーラップ期間外で停止した際に算出された最終空気量とする。
【００１０】
請求項４に記載の発明では、上記所定量を、エンジンが通常の走行環境における大気条件のもとで停止している場合に吸気マニホールド内に充填される空気量とする。
請求項５に記載の発明では、クランク軸の回転位置を検出する回転位置検出手段を設け、検出された回転位置に基づいてエンジンの停止位置がオーバーラップ期間内であるか否かを判定する。
【００１１】
請求項６に記載の発明では、上記回転位置検出手段がクランク軸の回転角変位量を積算してその回転位置を検出する場合に、クランク軸の逆転を検出する逆転検出手段と、クランク軸の逆転が検出されたときにエンジン停止位置判定手段による判定を禁止する停止位置判定禁止手段とを設ける。
請求項７に記載の発明では、エンジンを停止させる際に、クランク軸が単位角だけ回転するのに要した時間が１つ前の単位角について要した時間と等しいか、あるいはこれよりも短くなったときにクランク軸の逆転を検出する。
【００１２】
請求項８に記載の発明では、クランク角が単位角だけ回転するのに要した時間をＴＰＯＳ１０ｎとし、その１つ前の単位角について要した時間をＴＰＯＳ１０ｎ−１とし、その更に前の単位角について要した時間をＴＰＯＳ１０ｎ−２とすると、ＴＰＯＳ１０ｎ≦ＴＰＯＳ１０ｎ−１であり、かつＴＰＯＳ１０ｎ−１＞ＴＰＯＳ１０ｎ−２であるときにクランク軸の逆転を検出する。
【００１３】
請求項９に記載の発明では、上記１つ前の単位角について要した時間が上死点を乗り越える際に要する時間に係るしきい値としての所定時間よりも長いときにのみ、クランク軸の逆転を検出する。
【００１４】
【発明の効果】
請求項１に係る発明によれば、エンジンがオーバーラップ期間で停止した次の始動に際して、吸気マニホールド内の空気量に係る初期値が直前の停止時以前に記憶された所定量に設定されるので、排気系側からの逆流成分の影響を受けずにシリンダ吸入空気量を測定できる。
【００１５】
請求項２に係る発明によれば、上記初期値が直前に停止した際に収支計算を行った場合に算出される空気量よりも大きな値に設定されるので、エミッションの増加や始動性の悪化を抑制できる。
請求項３に係る発明によれば、以前にオーバーラップ期間外で停止した際に収支計算を行って算出された空気量を初期値とすることで、この初期値が走行環境に対応したものとなる。特に、アイドルストップのためにエンジンを停止させた際に算出された空気量を用いる場合は、走行環境が現在とほぼ同じとなるので、現在の走行環境に対応した初期値を設定できる。
【００１６】
請求項４に係る発明によれば、通常の走行環境のもとでの大気条件について設定される固定量を初期値とすることで、常に信頼性のあるシリンダ吸入空気量の測定結果を得ることができる。
請求項５に係る発明によれば、 クランク軸の回転位置に基づいてエンジンの停止位置がオーバーラップ期間内であるか否かを容易に判定できる。特に、クランク軸の回転位置を既存のクランク角センサを使用して検出する場合は、特別な設備を追加する必要もなく、コストアップを回避できる。
【００１７】
請求項６に係る発明によれば、クランク軸の回転位置を回転角変位量の積算により検出する場合に、クランク軸の逆転が検出されたときにエンジンの停止位置判定を行うことを禁止したので、クランク軸の逆転に基づく停止位置の誤判定を防止できる。
請求項７に係る発明によれば、クランク軸が単位角だけ回転するのに要した時間に基づいて、クランク軸の逆転を容易に検出できる。
【００１８】
請求項８に係る発明によれば、クランク軸が単位角だけ回転するのに要した時間が増加から減少に変化した変曲点を検出し、クランク軸の逆転を正確に検出できる。
請求項９に係る発明によれば、クランク軸が単位角だけ回転するのに要した時間が、上死点を乗り越える際の回転変動により短くなった場合に、逆転が誤って検出されることを防止できる。
【００１９】
【発明の実施の形態】
以下に、図面を参照して、本発明の実施の形態について説明する。図１は、本発明の一実施形態に係る車両の制御システムを示しており、本システムの駆動系は、エンジン１と電気モータ（以下「モータジェネレータ」という。）２とのパラレルハイブリッド式である。
【００２０】
駆動系において、エンジン１のクランク軸とモータジェネレータ２の回転軸とがパウダクラッチ３を介して連結されており、これらの動力装置から伝達されるトルクが変速機４及びディファレンシャル・ギヤ５を介して駆動輪６，６の各車輪駆動軸７，７を回転させるようになっている。従って、クラッチ３を結合したり切り離したりすることで、モータジェネレータ２のみにより走行したり、エンジン１のみにより走行したり、あるいはエンジン１のトルクをモータジェネレータ２で補って走行することが可能である。
【００２１】
エンジン１のクランク軸にはモータジェネレータ２とは別の電気モータ（以下「モータジェネレータ」という。）８の回転軸が連結されており、このモータジェネレータ８によりエンジン１のクランキングや回生発電が行われる。勿論、モータジェネレータ２による回生発電も可能であり、これらのモータジェネレータ２，８から得られた電力は、インバータ９，１０を介してバッテリ１１に蓄電される。逆に、バッテリ１１からの電力がインバータ９，１０を介してモータジェネレータ２，８に供給される。
【００２２】
一方、制御系において、上位コントローラとしての車両ＥＣＵ（電子制御ユニットを「ＥＣＵ」と略す。以下同様。）２１は、各サブシステムの制御を実行する下位コントローラに指令を送り、車両全体を統括して制御する。ここで、普遍性を持つトルクが指令として選択され、モータジェネレータ８を制御するモータコントローラ３１にモータトルクが、エンジン１を制御するエンジンコントローラ３２にエンジントルクが、クラッチ３を制御するクラッチコントローラ３３に伝達トルクが、モータジェネレータ２を制御するモータコントローラ３４にモータトルクが、変速機４を制御する変速機コントローラ３５に伝達トルク（変速比）が送られる。各コントローラ３１〜３５は、受け取ったトルク指令に基づいて各対象を制御する。
【００２３】
車両ＥＣＵ２１には、スタートスイッチ４１からイグニッションスイッチのオン及びオフ信号並びに、スタートスイッチのオン信号が入力されるほか、運転者の要求を示す信号として、アクセルペダルの操作量を検出するアクセルセンサ４２、ブレーキペダルの操作量若しくはブレーキスイッチがオンされたことを検出するブレーキセンサ４３、及びシフトレバーの現在の設定位置を検出するシフトセンサ４４から信号が入力される。
【００２４】
運転状態を示す信号として、車両ＥＣＵ２１には、車速ＶＳＰを検出する車速センサ４５、バッテリ１１の充電状態ＳＯＣを検出するためのバッテリセンサ（例えば、バッテリの放電電流を検出する。）４６、及びモータジェネレータ８の回転数ＮＭを検出する回転数センサ５０からの信号が入力される。また、エンジンコントローラ３２には、エンジン１のスロットル開度ＴＶＯを検出するスロットルセンサ４７、エンジン１の吸入空気量（後述するシリンダ吸入空気量と区別するために、特に「スロットル弁通過空気量」という。）Ｑａを検出するエアフローメータ４８、及びクランク角センサ４９からの信号が入力される。
【００２５】
車両ＥＣＵ２１は、入力した各種信号に基づいて指令としてのトルクを算出する。そして、バッテリ１１の充電状態ＳＯＣが充分なレベルにあれば、低速走行時にモータジェネレータ２を動力源とし、クラッチ３を切り離すとともにエンジン１を停止させる。運転者からの加速要求により車速ＶＳＰが所定の高速度域に入ると、エンジン１を始動させるとともにクラッチ３を結合し、動力源をエンジン１に移行させる。
【００２６】
エンジン１を運転させているときにエンジンコントローラ３２は、シリンダに実際に吸入されるシリンダ吸入空気量を常に把握できるようにされており、このシリンダ吸入空気量に対して指令としてのエンジントルクを発生するために必要な燃料噴射量を算出する。
ここで、シリンダ吸入空気量及びこれに基づく燃料噴射量の算出について説明する。
【００２７】
本実施形態においてシリンダ吸入空気量は、本出願人に係る先願の公開公報（特開２００１−０５００９１号）に記載の方法で算出する。ここで、図２に示すように、吸気マニホールド１０１内の圧力をＰｍ［Ｐａ］、容積をＶｍ［ｍ3 ］、空気質量をＣｍ［ｇ］、温度をＴｍ［Ｋ］とする。また、シリンダ１０２内の圧力をＰｃ［Ｐａ］、容積をＶｃ［ｍ3 ］、空気質量をＣｃ［ｇ］、温度をＴｃ［Ｋ］とする。なお、η［％］は、シリンダ内の新気割合である。このηは、吸気弁１０３と排気弁１０４とのオーバーラップ期間に相関して変化するものであり、オーバーラップ期間が拡大されて燃焼残ガス（内部ＥＧＲガス）量が増すほど小さな値とされる。
【００２８】
また、吸気マニホールド１０１及びシリンダ１０２内でＰｍ＝Ｐｃ、Ｔｍ＝Ｔｃ（圧力及び温度は変化しない。）と仮定する。なお、言うまでもなくマニホールド容積Ｖｍは一定である。
まず、エアフローメータ４８の出力に基づいてスロットル弁１０５を通過する空気の流量であるスロットル弁通過空気量Ｑａ［ｇ／ｍｓｅｃ］を算出し、このＱａを積分することにより所定時間Δｔ毎に吸気マニホールド１０１に流入するマニホールド流入空気量Ｑａ［ｇ］＝Ｑａ・Δｔを算出する。
【００２９】
一方、吸気弁１０３の閉時期ＩＶＣに基づいてその時の実シリンダ容積Ｖｃを算出し、このＶｃにシリンダ内新気割合η、及びエンジン回転数（ここでは、モータジェネレータ８のモータ回転数ＮＭに基づいて検出される。）ＮＥを乗じる。そして、算出された値を積分することにより、最終的なシリンダ容積Ｖｃ＝Ｖｃ・η・ＮＥ・Δｔを算出する。
【００３０】
次に、吸気マニホールド１０１内の空気量（マニホールド内空気量Ｃｍ）の収支計算のため、次式（１）のようにマニホールド内空気量の前回値Ｃｍn-1 に、先に求めたマニホールド流入空気量Ｑａを加えるとともに、吸気マニホールド１０１からシリンダ１０２へ流出するシリンダ吸入空気量Ｑｃであるシリンダ内空気量Ｃｃn を減じ、現在のマニホールド内空気量Ｃｍn を算出する。なお、ここで用いられるＣｃn は、前回のルーチンで算出されたものである。
【００３１】
Ｃｍn ＝Ｃｍn-1 ＋Ｑａ−Ｃｃn   ・・・（１）
シリンダ吸入空気量Ｑｃ（＝シリンダ内空気量Ｃｃ）は、次式（２）に示すように、シリンダ容積Ｖｃにマニホールド内空気量Ｃｍを乗じ、さらにこの積をマニホールド容積Ｖｍで除して求める。
Ｑｃ（＝Ｃｃ）＝Ｖｃ・Ｃｍ／Ｖｍ ・・・（２）
ここで、（２）式は、次のようにして導出される。気体の状態方程式によりシリンダ１０２内に関してＣｃ＝Ｐｃ・Ｖｃ／（Ｒ・Ｔｃ）となる。ここで、Ｐｃ＝Ｐｍ、Ｔｃ＝Ｔｍと仮定しているので次式（３）が得られる。
【００３２】
Ｃｃ＝Ｐｍ・Ｖｃ／（Ｒ・Ｔｍ） ・・・（３）
一方、気体の状態方程式により吸気マニホールド１０１内に関して次式（４）が得られる。
Ｐｍ／（Ｒ・Ｔｍ）＝Ｃｍ／Ｖｍ ・・・（４）
従って、（４）式を（３）式に代入すれば、Ｃｃ＝Ｖｃ・｛Ｐｍ／（Ｒ・Ｔｍ）｝＝Ｖｃ・Ｃｍ／Ｖｍとなり（２）式が得られる。
【００３３】
そして、このように算出されたシリンダ吸入空気量Ｑｃに対して、最適な空燃比となるように燃料噴射量が設定される。
ところで、前述のように低速走行に移行するとエンジン１は停止されることになるが、エンジン１を停止させるためのエンジン停止処理を行っている間も、マニホールド内空気量Ｃｍの収支計算は、吸気マニホールド１０１内が大気圧となるまで継続される。それは、大気圧となった時点で算出されたマニホールド内空気量（最終値）Ｃｍを、次の始動に際してシリンダ吸入空気量Ｑｃを算出するための初期値とするためである。
【００３４】
以下に、エンジン停止処理時のマニホールド内空気量Ｃｍの収支計算について説明する。
本実施形態に係るエンジン１は、図３に示すように排気上死点及びその付近において吸気弁１０３と排気弁１０４とがともに開かれるオーバーラップ期間（吸気弁開時期ＩＶＯ〜排気弁閉時期ＥＶＣ）が設定されている。
【００３５】
エンジン１の停止位置は、クランク軸の正転方向と逆転方向とのトルクのバランス点となり、通常は、６気筒エンジンではクランク角で圧縮上死点前６０°、また４気筒エンジンでは同９０°付近で停止する。しかしながら、場合によってはこれらの位置を通り越してオーバーラップ期間で停止することもある。そのような場合には、エンジン停止処理時の収支計算に際して、吸気マニホールド１０１に空気が排気系側からも流入することになる。このときのマニホールド流入空気量Ｑａ、シリンダ吸入空気量Ｑｃ及びマニホールド内空気量Ｃｍの時間変化を図４に示す。
【００３６】
エンジン１がオーバーラップ期間で停止した場合には、吸気マニホールド１０１に空気が排気系側からも流入することになるので、スロットル弁通過空気量（エアフローメータ４８の出力）に基づいて算出されるマニホールド流入空気量Ｑａは、実際に吸気マニホールド１０１に流入している空気量Ｑａ’よりも少ない値となる。このため、マニホールド流入空気量Ｑａに基づいて算出されるマニホールド内空気量Ｃｍも、実際に吸気マニホールド１０１内に存在する空気量Ｃｍ’よりも少なく算出されることになる。
【００３７】
図５のフローチャートは、このような問題を解決するための本実施形態に係るエンジン停止処理時における制御の流れを示しており、エンジンコントローラ３２により実行される。
ステップ（以下「Ｓ」と略す。）１では、エンジン１が停止したか否かを判定する。ここでは、吸気マニホールド１０１内が大気圧となったことをもってエンジン１が停止したと判定する。この判定は、例えば、マニホールドの管壁に圧力センサを設置し、その出力（吸気圧ＰＢ）の変化がなくなった（ＰＢがほぼ一定となった）ことにより行うことが可能である。また、ストッロル弁通過空気量が０となったことや、収支計算により算出されるマニホールド内空気量Ｃｍに変化がなくなったことによっても判断できる。エンジン１が停止したと判定した場合はＳ２へ進み、それ以外の場合はＳ５へ進む。
【００３８】
Ｓ２では、エンジン１の停止位置がオーバーラップ期間であるか（図７を参照して後述するオーバーラップ時停止判定ルーチンにおいてフラグｆＴＯＰＪＤＣが１に設定されたか否か）を判定する。停止位置がオーバーラップ期間であると判定した場合はＳ３へ進み、それ以外の場合はＳ４へ進む。
Ｓ３では、エンジン停止処理の最終値として設定されるマニホールド内空気量Ｃｍに、以前にオーバーラップ期間外でエンジン１が停止した際のエンジン停止処理において算出された学習値（Ｃｍ）を代入し、そのＣｍを記憶する。なお、ここで代入されるＣｍは、以前に、次に述べるＳ４の処理により記憶されたものである。
【００３９】
Ｓ４では、エンジン停止処理において、エアフローメータ４８の出力に基づく収支計算を吸気マニホールド１０１内が大気圧となるまで継続した結果として算出されたマニホールド内空気量Ｃｍ（最終値）を、学習値として記憶する。
一方、エンジン１が未だ停止していない（吸気マニホールド１０１内が大気圧となっていない）と判定した場合は、Ｓ５においてマニホールド内空気量Ｃｍの収支計算を行う。
【００４０】
図６のフローチャートは、エンジン停止処理時における他の制御の流れを示しており、同様にエンジンコントローラ３２により実行される。図５のフローチャートにおけると同じ処理を行うステップには同じ符号を付し、ここでの説明は省略する。
Ｓ１においてエンジン１が停止したと判定され、かつ続くＳ２においてエンジン１の停止位置がオーバーラップ期間内であると判定された場合は、Ｓ１１に進んで、エンジン停止処理の最終値として設定されるマニホールド内空気量Ｃｍに基準値を代入し、そのＣｍを記憶する。この基準値は、エンジン１が通常の走行環境における大気条件のもとで停止している場合に吸気マニホールド１０１内に充填される空気量に等しく、エンジンコントローラ３２において固定値として記憶されているものである。
【００４１】
一方、エンジン１が未だ停止していない（吸気マニホールド１０１内が大気圧となっていない）と判定したか、あるいはエンジン１が停止したとしてもその停止位置がオーバーラップ期間内ではないと判定した場合は、Ｓ１２へ進んで、マニホールド内空気量Ｃｍの収支計算を継続する。
次に、オーバーラップ時停止判定ルーチン（図５のＳ２において読み込まれるフラグｆＴＯＰＪＤＣの設定）について説明する。図７のフローチャートは、その一例の流れを示している。
【００４２】
Ｓ２１では、エンジン１が停止したか否かを判定する。ここでは、エンジン回転数ＮＥをモータジェネレータ８のモータ回転数ＮＭに基づいて検出するとともに、検出されたＮＥの絶対値が所定回転数ＮＥＳＴＰ以下となったときにエンジン１が停止したと判定する。エンジン１が停止したと判定した場合はＳ２２へ進み、それ以外の場合はＳ２５へ進む。
【００４３】
Ｓ２２では、クランク軸が揺り戻されたことによる逆転が生じていないか（図８を参照して後述する逆転判定ルーチンにおいてフラグｆＳＴＰＣＲＫが１に設定されていないか）を判定する。クランク軸の逆転が生じていないと判定した場合はＳ２３へ進む一方、この逆転が生じたと判定した場合はＳ２３の処理を禁止するべくＳ２５へ進む。
【００４４】
Ｓ２３では、クランク角センサ４９の出力に基づいて検出されるエンジン１の停止位置ＣＲＡＣＮＴが、オーバーラップ期間に相当するクランク角位置（Ｃ１〜Ｃ２）の範囲に入っているか否かを判定する。この範囲に入っていると判定した場合（Ｃ１≦ＣＲＡＣＮＴ≦Ｃ２）は、Ｓ２４へ進み、それ以外の場合はＳ２５へ進む。
【００４５】
Ｓ２４では、エンジン１がオーバーラップ期間で停止したことを示すべくフラグｆＴＯＰＪＤＣに１を代入する。
Ｓ２５では、エンジン１が未だ停止していないか、クランク軸の逆転が生じたか、あるいは（クランク軸の逆転が生じていない場合に）エンジン１の停止位置がオーバーラップ期間外であると判定した場合に、フラグｆＴＯＰＪＤＣに０を代入する。
【００４６】
次に、クランク軸の逆転判定ルーチン（図７のＳ２２において読み込まれるフラグｆＳＴＰＣＲＫの設定）について説明する。図８のフローチャートは、その一例の流れを示している。
Ｓ３１では、エンジン停止指令があったか否かを判定する。例えば、モータジェネレータ２による低速走行が選択された場合や、車両ＥＣＵ２１からの指令としてのエンジントルクが０以下となった場合、あるいは燃料カット指令があった場合に、エンジン停止指令があったと判定する。エンジン停止指令があったと判定した場合はＳ３２へ進み、それ以外の場合はＳ３５ヘ進む。
【００４７】
Ｓ３２では、エンジン回転数ＮＥが所定値ＬＮＬＭＴよりも低くなったか否かを判定する。ＬＮＬＭＴよりも低く、エンジン１が充分に減速したと判定した場合はＳ３３へ進み、それ以外の場合はＳ３５へ進む。
Ｓ３３では、クランク角センサ４９によりクランク軸が単位角（ここでは、１０°）回転する毎に出力されるパルス信号（ポジション信号ＰＯＳ１０）の発生周期ＴＰＯＳ１０n が、前回算出された値ＴＰＯＳ１０n-1 以下となったか否か（ＴＰＯＳ１０n ≦ＴＰＯＳ１０n-1 ：ｎは今回算出されたものであることを示す。）を判定する。ＴＰＯＳ１０n-1 以下となったと判定した場合はＳ３４へ進み、それ以外の場合はＳ３５へ進む。
【００４８】
ここで、このような判定に加えて、前回算出されたポジション信号発生周期ＴＰＯＳ１０n-1 が、その更に前に算出された値ＴＰＯＳ１０n-2 よりも長いか否か（ＴＰＯＳ１０n-1 ＞ＴＰＯＳ１０n-2 ）を判定し、ＴＰＯＳ１０n ≦ＴＰＯＳ１０n-1 であり、かつＴＰＯＳ１０n-1 ＞ＴＰＯＳ１０n-2 である場合にのみＳ３４へ進むようにしてもよい。これにより、ポジション信号発生周期の変化の変曲点を確実に検出することが可能となる。
【００４９】
また、Ｓ３３において、上記の処理の条件として、前回算出されたポジション信号発生周期ＴＰＯＳ１０n-1 が、上死点を乗り越える際に要する時間に係るしきい値ＴＰＯＳＬＭＴよりも長いか否か（ＴＰＯＳ１０n-1 ＞ＴＰＯＳＬＭＴ）を判定してもよい。それは、クランク軸が正転方向に回転している場合であっても、上死点を乗り越えた際の回転変動によりポジション信号発生周期が短くなるからである。ここで、クランク軸の逆転による場合のものと、上死点の乗越えによるものとでは、逆転による方が長くなる。逆転は、クランク軸が一旦停止してから生じるためである。従って、ＴＰＯＳ１０n-1 がＴＰＯＳＬＭＴよりも長い場合にのみＳ３４へ進み、それ以外の場合はＳ３５へ進むようにすることで、上死点の乗越えに伴う逆転の誤判定を防止できる。
【００５０】
なお、上死点を乗り越えたことは、クランク角位置ＣＲＡＣＮＴに基づいて上死点を検出することにより行うなど、他の手段によっても判定することが可能である。
Ｓ３４では、クランク軸の逆転が生じたことを示すべくフラグｆＳＴＰＣＲＫに１を代入する。
【００５１】
Ｓ３５では、エンジン１が運転中であるか、エンジン停止指令があったとしても未だ充分に減速していないか、あるいはポジション信号発生周期ＴＰＯＳ１０が長くなりつつある場合に、フラグｆＳＴＰＣＲＫに０を代入する。
次に、図９のタイムチャートを参照して、以上でフローチャートを参照して述べた制御（エンジン停止処理）に基づくエンジンコントローラ３２の動作について説明する。
【００５２】
図９は、クランク角センサ（ここでは、ホールＩＣ式センサ）４９により単位角毎に出力されるポジション信号ＰＯＳ１０を計数して算出されるクランク角位置ＣＲＡＣＮＴと、このＰＯＳ１０の発生周期ＴＰＯＳ１０との時間変化を示している。
ポジション信号ＰＯＳ１０は、クランク軸の回転位置を検出するためのポジションセンサにより出力されるものであり、クランク軸に取り付けられたシグナルプレートが１０°回転する毎に出力される。このシグナルプレートには、クランク角基準位置を検出するために、６気筒エンジンでは１２０毎に歯欠部が設けられている。そして、クランク角位置ＣＲＡＣＮＴは、クランク角基準位置（ここでは、ＣＲＡＣＮＴ＝８）に基づいて０〜９の値に設定される。
【００５３】
一方、ポジション信号発生周期ＴＰＯＳ１０は、ポジション信号ＰＯＳ１０の発生間隔をタイマーで計測することにより算出される。なお、クランク角センサとして、ポジションセンサのほかに、気筒判別のためのフェーズ信号ＰＨＡＳＥを出力するセンサが設けられることは言うまでもない。
図９において、車両ＥＣＵ２１によりエンジン停止指令が発せられ、その後の時刻ｔ０においてエンジン回転数ＮＥが所定値ＬＮＬＭＴよりも低下したとする。ここで、ポジション信号発生周期ＴＰＯＳ１０は、通常はエンジン１の減速とともに長くなる。従って、エンジン１がオーバラップ期間で停止したか否かは、次のポジション信号ＰＯＳ１０が入力されるまでに所定時間以上が経過してエンジン１が停止したものと判断された時刻ｔ２におけるクランク角位置ＣＲＡＣＮＴ（図では、３）が、オーバーラップ期間のＣＲＡＣＮＴに相当するか否かにより判定できる。
【００５４】
一方、エンジン１が停止する前に、筒内ガスからの圧縮反力や重力によりクランク軸が揺り戻されると、クランク軸は一時的に加速して逆転するので、ポジション信号発生周期ＴＰＯＳ１０が前回よりも短くなる（時刻ｔ１）。従って、ＴＰＯＳ１０に基づいてクランク軸の逆転判定を行うことができる。
ここで、クランク角位置ＣＲＡＣＮＴは、ポジション信号ＰＯＳ１０が発生する毎に、クランク軸の回転方向によらずに単純にインクリメントされるのが一般的である。従って、クランク軸が逆転している場合であっても、ＰＯＳ１０が発生すればインクリメントされる。このため、逆転が生じた場合は、最終的に算出されたＣＲＡＣＮＴがオーバーラップ期間内のものであったとしても、実際にはクランク軸はその位置にないことになる。エンジンコントロールユニット３２は、このような場合にエンジン１の停止位置判定を禁止し、オーバーラップ期間で停止したとの誤った判定を回避する。
【００５５】
なお、本実施形態に係るクランク角センサ４９のシグナルプレートには、所定間隔毎に歯欠部が設けられている。従って、クランク軸が正転方向に回転しているとしても、この歯欠部を検出した次にポジション信号ＰＯＳ１０が発生した際に算出されるポジション信号発生周期ＴＰＯＳ１０は、前回よりも短くなる。この場合の逆転の誤判定を防止するため、図８のＳ３３の処理において、ｎ＝８のときは強制的にＳ３５ヘ進ませるようにする。
【００５６】
ここで、歯欠部のないシグナルプレートを使用すれば、このような誤判定防止のための措置をとる必要はない。この場合は、クランク角基準位置を検出するための手段を別に構成する。そのような手段は、例えば、気筒判別信号ＰＨＡＳＥに基づいて上死点位置を検出し、この位置に基づいてクランク角基準位置を定めればよい。
【００５７】
そして、エンジンコントローラ３２は、エンジン１がオーバーラップ期間外で停止した後に、吸気マニホールド１０１内が大気圧となるまでマニホールド内空気量Ｃｍの収支計算を継続し、その最終値を学習値として記憶する。次の始動に際して、エンジンコントローラ３２は、記憶されているＣｍを初期値としてシリンダ吸入空気量Ｑｃを測定する。
【００５８】
一方、エンジン１がオーバーラップ期間で停止した場合は、エンジンコントローラ３２は、マニホールド内空気量Ｃｍの収支計算を停止する。これとともに、エンジンコントローラ３２は、Ｃｍの最終値を、以前にエンジン１がオーバーラップ期間外で停止した際に算出されたマニホールド内空気量（学習値）や、マニホールド内空気量の基準値に設定する。
【００５９】
以上に述べたように、本実施形態に係るエンジンのシリンダ吸入空気量測定装置によれば、エンジン１がオーバーラップ期間で停止した次の始動に際して、マニホールド内空気量の初期値が以前にオーバーラップ期間外で停止したときに算出された学習値に設定される。このため、エンジン停止処理において排気系側からの逆流成分によりマニホールド内空気量Ｃｍの最終値が誤差を含んで算出されることによる、次の始動時におけるエミッションの増加やトルクの不足を抑制できる。
【００６０】
また、エンジン１が停止する際にクランク軸の逆転が生じた場合に、エンジンの停止位置判定を禁止することにより、オーバーラップ期間で停止したものとの誤判定を防止できる。クランク軸の逆転が生じたか否かは、ポジション信号発生周期ＴＰＯＳ１０に基づいて容易に判定することが可能である。なお、逆転が生じた場合は、オーバーラップ期間よりも前の位置でクランク軸が停止するので、フラグｆＴＯＰＪＤＣを０としても差し支えない。
【００６１】
以上では、クランク軸の逆転判定に関して、エンジン停止指令がモータジェネレータ２による低速走行が選択された場合に発生される例について説明した。しかしながら、エンジン停止指令は、本発明が適用される制御システムに応じてこれとは異なる時期にも発生されることは言うまでもない。例えば、イグニッションスイッチがオフされたことをもってエンジン停止指令があったとしたり、あるいはアイドルストップを行う車両においては、所定のアイドルストップ判定（アイドルスイッチがオンされ、かつその時の車速が所定速度以下であること等）がされたことをもってエンジン停止指令があったとすることもできる。
【００６２】
次に、図１０のフローチャートを参照して、エンジン停止処理時における制御の更に別の例について説明する。なお、このフロチャートにおいて、図５〜８のフローチャートにおけると同じ処理を行うステップには、同じ符号を付している。
Ｓ４１では、クランク軸の逆転が生じていないかを判定する。ここではまだエンジン１がある程度高い速度で回転しており、揺り戻されることはないので、Ｓ３３へ進む。しかしながら、後にクランク軸が揺り戻され、後述するＳ３４でフラグｆＳＴＰＣＲＫが１に設定された後は、Ｓ４３へ進む。
【００６３】
Ｓ３３においてポジション信号発生周期ＴＰＯＳ１０が前回よりも長いと判定した場合は、Ｓ４２へ進む。一方、これが前回と同じ長さであるか、あるいはそれよりも短いと判定した場合は、Ｓ３４においてフラグｆＳＴＰＣＲＫに１を代入した後、Ｓ４３へ進む。
Ｓ４２では、クランク軸が正転方向に回転しているので、クランク角位置ＣＲＡＣＮＴを１だけインクリメントする。
【００６４】
一方、Ｓ４３では、クランク軸が逆転方向に回転しているので、この場合であっても正確なクランク角位置ＣＲＡＣＮＴを検出するために、ＣＲＡＣＮＴを１だけデクリメントする。
Ｓ２１においてエンジン１が未だ停止していないと判定されている間は、Ｓ４６へ進んで、エンジンの停止位置判定のためのフラグｆＴＯＰＪＤＣに０を代入する。
【００６５】
Ｓ２１においてエンジン１が停止したと判定した場合は、Ｓ４４ヘ進んで、クランク軸の逆転判定のためのフラグｆＳＴＰＣＲＫに０を代入し、このフラグをリセットする。
Ｓ２３においてエンジンの停止位置がオーバーラップ期間内にあると判定された場合は、Ｓ２４へ進んでエンジンの停止位置判定のためのフラグｆＴＯＰＪＤＣに１を代入した後、Ｓ４５へ進む。一方、停止位置がオーバラップ期間外であると判定した場合は、Ｓ２５へ進んでフラグｆＴＯＰＪＤＣに０を代入した後、Ｓ４５へ進む。
【００６６】
Ｓ４５では、クランク角位置ＣＲＡＣＮＴをリセットする。
このように、本実施形態に係るエンジンのシリンダ吸入空気量測定装置によれば、エンジン１が停止する際にクランク軸の逆転が生じた場合に、クランク角位置ＣＲＡＣＮＴがデクリメントされる（図９のＣＲＡＣＮＴｂ）。従って、逆転方向の回転変位を含めてクランク角位置を把握できるので、エンジンの停止位置を正確に検出することが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る車両の制御システム
【図２】エンジンのシリンダ吸入空気量を算出するためのパラメータ
【図３】オーバラップ期間の概念
【図４】吸気マニホールドに排気系側から空気が流入することの影響
【図５】エンジン停止処理の一例のフローチャート
【図６】同処理の他の例のフローチャート
【図７】エンジンの停止位置判定のフローチャート
【図８】クランク軸の逆転判定のフローチャート
【図９】エンジン停止時におけるクランク角位置ＣＲＡＣＮＴ及びポジション信号発生周期ＴＰＯＳ１０
【図１０】エンジン停止処理の更に別の例のフローチャート
【符号の説明】
１…エンジン
２…モータジェネレータ
３…クラッチ
４…変速機
５…ディファレンシャル・ギア
６…駆動輪
７…車輪駆動軸
８…モータジェネレータ
２１…電子制御ユニット
４８…エアフローメータ
１０１…吸気マニホールド
１０２…シリンダ
１０３…吸気弁
１０４…排気弁
１０５…スロットル弁
【図１】
0003767484.tif 000002
【図２】
0003767484.tif 000003
【図３】
0003767484.tif 000004
【図４】
0003767484.tif 000005
【図５】
0003767484.tif 000006
【図６】
0003767484.tif 000007
【図７】
0003767484.tif 000008
【図８】
0003767484.tif 000009
【図９】
0003767484.tif 000010
【図１０】
0003767484.tif 000011