(57)【要約】【課題】停止時カウンタ値の算出に用いる揺り返し量と実際の揺り返し量との乖離を抑制して停止時クランク角をより正確に推定することのできる内燃機関の制御装置を提供する。【解決手段】制御装置１００は、揺り返し量を推定する推定部１０５と、揺り返し量に基づいて、停止時カウンタ値を算出する停止時カウンタ値算出部１０４と、を備えている。また、制御装置１００は、停止時カウンタ値とクランクカウンタ値とに基づいてポンプ駆動回数を算出する第１駆動回数算出部１０７と、高圧系燃圧が閾値以上増大する度にポンプ駆動回数を１つ増加させることによりポンプ駆動回数を算出する第２駆動回数算出部１０８と、第１駆動回数算出部１０７によって算出したポンプ駆動回数と第２駆動回数算出部１０８によって算出したポンプ駆動回数との乖離に基づいて、停止時カウンタ値の算出に用いる揺り返し量を補正する補正部１０６とを備えている。【選択図】図１
2020172890.tif 000002
【特許請求の範囲】
【請求項１】
クランクシャフトの回転に連動して回転するポンプカムの作用によるプランジャの往復動により燃料室の容積が増減して燃料を加圧する高圧燃料ポンプと、気筒内に燃料を噴射する筒内噴射弁とを備える内燃機関に適用され、
前記クランクシャフトが正回転方向に回転しているときに一定のクランク角毎にカウントアップするクランクカウンタを算出するクランクカウンタ算出部と、
前記クランクシャフトが停止するまでの前記クランクシャフトの逆回転方向への回動量を示す揺り返し量を推定する推定部と、
前記クランクシャフトが停止する前に最後に算出したクランクカウンタの値である最終カウンタ値と、前記推定部が推定する揺り返し量とに基づいて、機関停止時のクランクカウンタの値である停止時カウンタ値を算出する停止時カウンタ値算出部と、を備える内燃機関の制御装置であって、
前記プランジャの上死点と前記クランクカウンタの値とを対応付けたマップが記憶されている記憶部と、
前記停止時カウンタ値算出部によって算出した停止時カウンタ値と前記クランクカウンタの値とに基づいて前記マップを参照して前記高圧燃料ポンプの駆動回数を算出する第１駆動回数算出部と、
前記筒内噴射弁に供給されている燃料の圧力である高圧系燃圧が閾値以上増大する度に前記駆動回数を１つ増加させることにより前記高圧燃料ポンプの駆動回数を算出する第２駆動回数算出部と、
前記第１駆動回数算出部によって算出した駆動回数と前記第２駆動回数算出部によって算出した駆動回数との乖離に基づいて、前記停止時カウンタ値の算出に用いる前記揺り返し量を補正する補正部とを備える内燃機関の制御装置。
【請求項２】
前記補正部は、前記第１駆動回数算出部によって算出した駆動回数が、前記第２駆動回数算出部によって算出した駆動回数よりも多い場合は、前記停止時カウンタ値の算出に用いる揺り返し量をより小さくする
請求項１に記載の内燃機関の制御装置。
【請求項３】
前記補正部は、前記第１駆動回数算出部によって算出した駆動回数が、前記第２駆動回数算出部によって算出した駆動回数よりも少ない場合は、前記停止時カウンタ値の算出に用いる揺り返し量をより大きくする
請求項１又は請求項２に記載の内燃機関の制御装置。
【請求項４】
前記補正部は、前記第１駆動回数算出部によって算出した駆動回数と、前記第２駆動回数算出部によって算出した駆動回数との乖離を解消するのに必要な量の分、前記停止時カウンタ値の算出に用いる揺り返し量を補正する
請求項２又は請求項３に記載の内燃機関の制御装置。
【請求項５】
前記記憶部には、前記プランジャの上死点と前記クランクカウンタの値とを対応付けたマップである第１マップに加え、前記最終カウンタ値と揺り返し量とを対応付けた第２マップが記憶されており、
前記推定部が、前記第２マップを参照して前記最終カウンタ値に基づいて前記揺り返し量を推定し、
前記補正部が、前記第２マップを補正することによって前記推定部によって推定される揺り返し量を補正する
請求項１〜４のいずれか一項に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は内燃機関の制御装置に関するものである。
【背景技術】
【０００２】
特許文献１には、機関停止時のクランク角を記憶しておき、記憶されているクランク角に基づいて機関始動時の制御を行う内燃機関の制御装置が開示されている。機関停止時には、気筒内で圧縮された空気が復元しようとする反力によってクランクシャフトが逆回転方向に揺り返すことがある。
【０００３】
特許文献１に開示されている制御装置では、順流と逆流とを区別して検出可能なエアフロメータで検出した空気の逆流量に基づいて、逆回転方向へのクランクシャフトの回動量、すなわち揺り返し量を算出している。そして、この揺り返し量を反映させて機関停止時のクランク角を算出している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−０９２１１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、エアフロメータの検出値は、クランクシャフトの回動量に直接対応するものではないため、特許文献１に開示されている方法で推定される揺り返し量と実際のクランクシャフトの揺り返し量とには、ずれが生じるおそれがある。また、こうした空気の逆流量に基づいて算出する方法によって推定した場合に限らず、推定した揺り返し量に実際の揺り返し量とのずれがあると、機関停止時のクランク角を正しく推定することができず、機関始動時の制御に悪影響が及ぶおそれがある。
【課題を解決するための手段】
【０００６】
以下、上記課題を解決するための手段及びその作用効果について記載する。
上記課題を解決するための内燃機関の制御装置は、クランクシャフトの回転に連動して回転するポンプカムの作用によるプランジャの往復動により燃料室の容積が増減して燃料を加圧する高圧燃料ポンプと、気筒内に燃料を噴射する筒内噴射弁とを備える内燃機関に適用される。この制御装置は、前記クランクシャフトが正回転方向に回転しているときに一定のクランク角毎にカウントアップするクランクカウンタを算出するクランクカウンタ算出部と、前記クランクシャフトが停止するまでの前記クランクシャフトの逆回転方向への回動量を示す揺り返し量を推定する推定部と、前記クランクシャフトが停止する前に最後に算出したクランクカウンタの値である最終カウンタ値と、前記推定部が推定する揺り返し量とに基づいて、機関停止時のクランクカウンタの値である停止時カウンタ値を算出する停止時カウンタ値算出部と、を備えている。そしてこの制御装置は、前記プランジャの上死点と前記クランクカウンタの値とを対応付けたマップが記憶されている記憶部と、前記停止時カウンタ値算出部によって算出した停止時カウンタ値と前記クランクカウンタの値とに基づいて前記マップを参照して前記高圧燃料ポンプの駆動回数を算出する第１駆動回数算出部と、前記筒内噴射弁に供給されている燃料の圧力である高圧系燃圧が閾値以上増大する度に前記駆動回数を１つ増加させることにより前記高圧燃料ポンプの駆動回数を算出する第２駆動回数算出部と、前記第１駆動回数算出部によって算出した駆動回数と前記第２駆動回数算出部によって算出した駆動回数との乖離に基づいて、前記停止時カウンタ値の算出に用いる前記揺り返し量を補正する補正部とを備えている。
【０００７】
第１駆動回数算出部によって停止時カウンタ値とクランクカウンタの値とに基づいて算出された駆動回数と、第２駆動回数算出部によって高圧系燃圧に基づいて算出された駆動回数とに乖離がある場合には、推定部によって推定される揺り返し量が実際の揺り返し量から乖離していることにより、停止時カウンタ値が、実際にクランクシャフトが停止していたクランク角に対応する値から乖離している可能性がある。
【０００８】
上記構成によれば、第１駆動回数算出部によって算出された駆動回数と、第２駆動回数算出部によって算出された駆動回数との乖離に基づいて、停止時カウンタ値の算出に用いる揺り返し量を補正する。すなわち、停止時カウンタ値を利用して駆動回数を算出する第１駆動回数算出部の算出結果と、停止時カウンタ値を利用しないで駆動回数を算出する第２駆動回数算出部の算出結果とを比較し、その結果に基づいて停止時カウンタ値の算出に用いる揺り返し量を補正するフィードバック制御を実行している。そのため、停止時カウンタ値の算出に用いる揺り返し量と実際の揺り返し量とが乖離する状態が放置されたまま制御を継続することを抑制できる。
【０００９】
内燃機関の制御装置の一態様では、前記補正部は、前記第１駆動回数算出部によって算出した駆動回数が、前記第２駆動回数算出部によって算出した駆動回数よりも多い場合は、前記停止時カウンタ値の算出に用いる揺り返し量をより小さくする。
【００１０】
第１駆動回数算出部によって停止時カウンタ値とクランクカウンタの値とに基づいて算出した駆動回数が、第２駆動回数算出部によって高圧系燃圧に基づいて算出した駆動回数よりも多い場合には、推定部が推定した揺り返し量が大き過ぎた可能性がある。
【００１１】
上記構成によれば、第１駆動回数算出部によって算出した駆動回数が、第２駆動回数算出部によって高圧系燃圧に基づいて算出した駆動回数よりも多い場合には、停止時カウンタ値の算出に用いる揺り返し量をより小さくするため、停止時カウンタ値の算出に用いる揺り返し量が大き過ぎる事態が継続することを抑制できる。
【００１２】
内燃機関の制御装置の一態様では、前記補正部は、前記第１駆動回数算出部によって算出した駆動回数が、前記第２駆動回数算出部によって算出した駆動回数よりも少ない場合は、前記停止時カウンタ値の算出に用いる揺り返し量をより大きくする。
【００１３】
第１駆動回数算出部によって停止時カウンタ値とクランクカウンタの値とに基づいて算出した駆動回数が、第２駆動回数算出部によって高圧系燃圧に基づいて算出した駆動回数よりも少ない場合には、推定部が推定した揺り返し量が小さ過ぎた可能性がある。
【００１４】
上記構成によれば、第１駆動回数算出部によって算出した駆動回数が、第２駆動回数算出部によって高圧系燃圧に基づいて算出した駆動回数よりも少ない場合には、停止時カウンタ値の算出に用いる揺り返し量をより大きくするため、停止時カウンタ値の算出に用いる揺り返し量が小さ過ぎる事態が継続することを抑制できる。
【００１５】
内燃機関の制御装置の一態様では、前記補正部は、前記第１駆動回数算出部によって算出した駆動回数と、前記第２駆動回数算出部によって算出した駆動回数との乖離を解消するのに必要な量の分、前記停止時カウンタ値の算出に用いる揺り返し量を補正する。
【００１６】
上記構成では、第１駆動回数算出部によって算出した駆動回数と第２駆動回数算出部によって算出した駆動回数との乖離を解消するのに必要な量にあわせた補正がなされ、補正量は必要最小限の範囲に留められる。例えば、第１駆動回数算出部によって算出した駆動回数が第２駆動回数算出部によって算出した駆動回数よりも１つ多い場合には、第１駆動回数算出部によって算出する駆動回数を１つ少なくするために必要な最小限の量の分だけ補正を行う。
【００１７】
そのため、上記構成によれば、過剰に補正してしまうことを抑制しながら、第１駆動回数算出部によって算出した駆動回数と第２駆動回数算出部によって算出した駆動回数との乖離の解消を図ることができる。
【００１８】
内燃機関の制御装置の一態様では、前記プランジャの上死点と前記クランクカウンタの値とを対応付けたマップである第１マップに加え、前記記憶部には、前記最終カウンタ値と揺り返し量とを対応付けた第２マップが記憶されている。そして、前記推定部が、前記第２マップを参照して前記最終カウンタ値に基づいて前記揺り返し量を推定し、前記補正部が、前記第２マップを補正することによって前記推定部によって推定される揺り返し量を補正する。
【００１９】
クランクシャフトが停止する前に最後に算出したクランクカウンタの値である最終カウンタ値の大小は、気筒内に閉じ込められている空気の圧縮状態を示すため、揺り返し量と高い相関を有している。そのため、上記構成のように、最終カウンタ値と揺り返し量とを対応付けた第２マップが記憶部に記憶されていれば、第２マップを参照して最終カウンタ値に基づいて揺り返し量を推定することができる。また、上記構成によれば、第２マップを補正することによって、推定部によって推定される揺り返し量が補正され、停止時カウンタ値の算出に用いる揺り返し量の補正が実現される。
【図面の簡単な説明】
【００２０】
【図１】内燃機関の制御装置と、同制御装置の制御対象である車載内燃機関の構成を示す模式図。
【図２】内燃機関の燃料供給系の構成を示す模式図。
【図３】クランクポジションセンサとセンサプレートとの関係を示す模式図。
【図４】クランクポジションセンサから出力されるクランク角信号の波形を示すタイミングチャート。
【図５】吸気側カムポジションセンサとタイミングロータとの関係を示す模式図。
【図６】吸気側カムポジションセンサから出力される吸気側カム角信号の波形を示すタイミングチャート。
【図７】クランク角信号と、カム角信号と、クランクカウンタとの関係並びにクランクカウンタとプランジャの上死点との関係を示すタイミングチャート。
【図８】筒内噴射による機関始動を実施するか否かを判定する際に実行するルーチンにおける一連の処理の流れを示すフローチャート。
【図９】クランクカウンタを利用してポンプ駆動回数を計数するルーチンにおける処理の流れを示すフローチャート。
【図１０】クランク角が判明するまでの間のポンプ駆動回数を算出するルーチンにおける処理の流れを示すフローチャート。
【図１１】記憶部が記憶している第１マップにおける情報とクランクカウンタとの関係を説明する説明図。
【図１２】停止時カウンタ値を算出するルーチンにおける処理の流れを示すフローチャート。
【図１３】高圧系燃圧を利用してポンプ駆動回数を計数するルーチンにおける処理の流れを示すフローチャート。
【図１４】プランジャのリフト量と高圧系燃圧とポンプ駆動回数の推移を示すタイミングチャート。
【図１５】揺り返し量を学習するルーチンにおける一連の処理の流れを示すフローチャート。
【図１６】揺り返し量を補正する補正量について説明する説明図。
【図１７】変更例の制御装置において実行する補正量を算出するルーチンの処理の流れを示すフローチャート。
【図１８】変更例の制御装置において実行する停止時カウンタ値を算出するルーチンの処理の流れを示すフローチャート。
【発明を実施するための形態】
【００２１】
以下、内燃機関の制御装置の一実施形態について、図１〜図１６を参照して説明する。
図１に示すように、制御装置１００が制御する内燃機関１０の吸気ポート１３には、吸気ポート１３を流れる吸気中に燃料を噴射するポート噴射弁１４が設けられている。吸気ポート１３は吸気通路１２と接続されている。吸気通路１２にはスロットルバルブ３１が設けられている。
【００２２】
また、燃焼室１１には、燃焼室１１内に直接燃料を噴射する筒内噴射弁１５と、燃焼室１１に導入された空気と燃料との混合気を火花放電により着火する点火装置１６が設けられている。そして、燃焼室１１には、排気ポート２２を介して排気通路１９が接続されている。
【００２３】
なお、内燃機関１０は直列４気筒の車載内燃機関であり４つの燃焼室１１を備えているが、図１には、そのうちの１つのみが図示されている。燃焼室１１内で混合気が燃焼すると、ピストン１７が往復動し、内燃機関１０の出力軸であるクランクシャフト１８が回転する。そして、燃焼後の排気は燃焼室１１から排気通路１９に排出される。
【００２４】
吸気ポート１３には吸気バルブ２３が設けられている。そして、排気ポート２２には排気バルブ２４が設けられている。これら吸気バルブ２３及び排気バルブ２４は、クランクシャフト１８の回転が伝達される吸気カムシャフト２５及び排気カムシャフト２６の回転に伴って開閉動作する。
【００２５】
吸気カムシャフト２５には、クランクシャフト１８に対する吸気カムシャフト２５の相対的な回転位相を変更することにより吸気バルブ２３の開閉タイミングを変更する吸気側可変バルブタイミング機構２７が設けられている。また、排気カムシャフト２６には、クランクシャフト１８に対する排気カムシャフト２６の相対的な回転位相を変更することにより排気バルブ２４の開閉タイミングを変更する排気側可変バルブタイミング機構２８が設けられている。
【００２６】
吸気側可変バルブタイミング機構２７と、排気側可変バルブタイミング機構２８と、クランクシャフト１８とには、タイミングチェーン２９が巻き掛けられている。これにより、クランクシャフト１８が回転すると、タイミングチェーン２９を介して回転が伝達され、吸気側可変バルブタイミング機構２７とともに吸気カムシャフト２５が回転し、排気側可変バルブタイミング機構２８とともに排気カムシャフト２６が回転する。
【００２７】
なお、内燃機関１０にはスタータモータ４０が設けられており、機関始動時にはスタータモータ４０によってクランクシャフト１８が駆動され、クランキングが行われる。
次に、図２を参照して内燃機関１０の燃料供給系について説明する。
【００２８】
図２に示すように、内燃機関１０には、ポート噴射弁１４に燃料を供給する低圧側燃料供給系５０と、筒内噴射弁１５に燃料を供給する高圧側燃料供給系５１との２系統の燃料供給系が設けられている。
【００２９】
燃料タンク５３内には、電動フィードポンプ５４が設けられている。電動フィードポンプ５４は、燃料タンク５３に蓄えられた燃料を、燃料中の不純物を濾過するフィルタ５５を介して汲み上げる。そして、電動フィードポンプ５４は、その汲み上げた燃料を、低圧燃料通路５６を通じて各気筒のポート噴射弁１４が接続された低圧側デリバリパイプ５７に供給する。低圧側デリバリパイプ５７には、内部に蓄えられた燃料の圧力を、すなわち各ポート噴射弁１４に供給する燃料の圧力である低圧系燃圧ＰＬを検出する低圧系燃圧センサ１８０が設けられている。
【００３０】
また、燃料タンク５３内の低圧燃料通路５６には、プレッシャレギュレータ５８が設けられている。プレッシャレギュレータ５８は、低圧燃料通路５６内の燃料の圧力が規定のレギュレータ設定圧を超えたときに開弁して、低圧燃料通路５６内の燃料を燃料タンク５３内に排出する。これにより、プレッシャレギュレータ５８は、ポート噴射弁１４に供給する燃料の圧力を、レギュレータ設定圧以下に保持している。
【００３１】
一方、高圧側燃料供給系５１は、機械式の高圧燃料ポンプ６０を備えている。低圧燃料通路５６は途中で分岐しており、高圧燃料ポンプ６０に接続されている。高圧燃料ポンプ６０は、各気筒の筒内噴射弁１５が接続された高圧側デリバリパイプ７０に、接続通路７１を介して接続されている。高圧燃料ポンプ６０は、内燃機関１０の動力により駆動して、低圧燃料通路５６から吸引した燃料を加圧して高圧側デリバリパイプ７０に圧送する。
【００３２】
高圧燃料ポンプ６０は、パルセーションダンパ６１、プランジャ６２、燃料室６３、電磁スピル弁６４、チェック弁６５及びリリーフ弁６６を備えている。プランジャ６２は、吸気カムシャフト２５に設けられたポンプカム６７により往復駆動され、その往復駆動に応じて燃料室６３の容積を変化させる。電磁スピル弁６４は、通電に応じて閉弁して、燃料室６３と低圧燃料通路５６との間の燃料の流通を遮断するとともに、通電の停止に応じて開弁して、燃料室６３と低圧燃料通路５６との間の燃料の流通を許容する。チェック弁６５は、燃料室６３から高圧側デリバリパイプ７０への燃料の吐出を許容する一方、高圧側デリバリパイプ７０から燃料室６３への燃料の逆流を禁止する。リリーフ弁６６はチェック弁６５を迂回する通路に設けられており、高圧側デリバリパイプ７０側の圧力が過剰に高くなったときに開弁して燃料室６３側への燃料の逆流を許容する。
【００３３】
こうした高圧燃料ポンプ６０は、プランジャ６２が燃料室６３の容積を拡大する方向に動くときに、電磁スピル弁６４を開弁した状態にすることで、低圧燃料通路５６内の燃料を燃料室６３に吸引する。そして、プランジャ６２が燃料室６３の容積を縮小する方向に動くときに、電磁スピル弁６４を閉弁した状態にすることで、燃料室６３に吸引された燃料を加圧して高圧側デリバリパイプ７０に吐出する。なお、以下では、燃料室６３の容積を拡大する方向へのプランジャ６２の移動をプランジャ６２の下降と称し、燃料室６３の容積を縮小する方向へのプランジャ６２の移動をプランジャ６２の上昇と称する。この内燃機関１０では、プランジャ６２が上昇する期間における、電磁スピル弁６４を閉弁している期間の割合を変化させることで、高圧燃料ポンプ６０の燃料吐出量を調整する。
【００３４】
低圧燃料通路５６のうち、分岐して高圧燃料ポンプ６０に接続している分岐通路５９は高圧燃料ポンプ６０の動作に伴う燃料の圧力脈動を減衰させるパルセーションダンパ６１に接続されている。パルセーションダンパ６１は、電磁スピル弁６４を介して燃料室６３に接続されている。
【００３５】
なお、高圧側デリバリパイプ７０には、高圧側デリバリパイプ７０内の燃料の圧力を、すなわち筒内噴射弁１５に供給されている燃料の圧力である高圧系燃圧ＰＨを検出する高圧系燃圧センサ１８５が設けられている。
【００３６】
制御装置１００は、内燃機関１０を制御対象とし、スロットルバルブ３１、ポート噴射弁１４、筒内噴射弁１５、点火装置１６、吸気側可変バルブタイミング機構２７、排気側可変バルブタイミング機構２８、高圧燃料ポンプ６０の電磁スピル弁６４、スタータモータ４０などの各種操作対象機器を操作することによって、内燃機関１０を制御する。
【００３７】
図１に示すように、制御装置１００には、アクセルポジションセンサ１１０によって運転者のアクセルの操作量の検出信号が入力され、車速センサ１４０によって車両の走行速度である車速の検出信号が入力されている。
【００３８】
さらに、制御装置１００には、他にも各種のセンサの検出信号が入力されている。例えば、エアフロメータ１２０は、吸気通路１２を通じて燃焼室１１に吸入される空気の温度と、吸入される空気の質量である吸入空気量を検出する。水温センサ１３０は、内燃機関１０の冷却水の温度である冷却水温ＴＨＷを検出する。燃料温度センサ１３５は高圧側デリバリパイプ７０内の燃料の温度である燃料温度ＴＦを検出する。
【００３９】
クランクポジションセンサ１５０は、クランクシャフト１８の回転位相の変化に応じたクランク角信号を出力する。また、吸気側カムポジションセンサ１６０は内燃機関１０の吸気カムシャフト２５の回転位相の変化に応じた吸気側カム角信号を出力する。そして、排気側カムポジションセンサ１７０は内燃機関１０の排気カムシャフト２６の回転位相の変化に応じた排気側カム角信号を出力する。
【００４０】
また、図１に示すように、制御装置１００は、演算プログラムや演算マップ、各種のデータを記憶する記憶部１０２を備えている。制御装置１００は、各種センサの出力信号を取り込むとともにこれらの出力信号に基づいて各種の演算を行い、その演算結果に応じて機関運転にかかる各種の制御を実行する。
【００４１】
制御装置１００は、クランク角信号、吸気側カム角信号、及び排気側カム角信号に基づき、クランクシャフト１８の回転位相であるクランク角を示すクランクカウンタを算出するクランクカウンタ算出部１０３を備えている。制御装置１００は、クランクカウンタ算出部１０３が算出するクランクカウンタを参照して各気筒に対する燃料噴射や点火のタイミングを制御するとともに、吸気側可変バルブタイミング機構２７及び排気側可変バルブタイミング機構２８を制御する。
【００４２】
具体的には、制御装置１００は、アクセルの操作量、車速、吸入空気量、機関回転速度及び機関負荷率などに基づいて、燃料噴射量についての制御目標値である目標燃料噴射量を算出する。なお、機関負荷率は、基準流入空気量に対する１気筒の１燃焼サイクル当たりの流入空気量の比である。ここで、基準流入空気量は、スロットルバルブ３１の開度を最大としたときの１気筒の１燃焼サイクル当たりの流入空気量であり、機関回転速度に応じて決められている。制御装置１００は、基本的には、空燃比が理論空燃比になるように目標燃料噴射量を算出する。そして、ポート噴射弁１４と筒内噴射弁１５における噴射時期や燃料噴射時間についての制御目標値を算出する。ポート噴射弁１４と筒内噴射弁１５は、これらの制御目標値に応じたかたちで開弁駆動される。これにより、内燃機関１０の運転状態に見合う量の燃料が噴射されて、燃焼室１１に供給される。なお、内燃機関１０では、運転状態に応じていずれの噴射弁から燃料を噴射するのかを切り替える。そのため、内燃機関１０では、ポート噴射弁１４と筒内噴射弁１５の双方から燃料を噴射する場合の他に、ポート噴射弁１４のみから燃料を噴射する場合や、筒内噴射弁１５のみから燃料を噴射する場合がある。また、制御装置１００は、アクセルの操作量が「０」になっている減速中などに、燃料の噴射を停止して燃焼室１１への燃料の供給を停止し、燃料消費率の低減を図るフューエルカット制御も行う。
【００４３】
また、制御装置１００は、点火装置１６による火花放電の時期である点火時期を算出して点火装置１６を操作し、混合気に点火する。
さらに、制御装置１００は、機関回転速度と機関負荷率に基づいて、クランクシャフト１８に対する吸気カムシャフト２５の位相の目標値と、クランクシャフト１８に対する排気カムシャフト２６の位相の目標値を算出し、吸気側可変バルブタイミング機構２７と排気側可変バルブタイミング機構２８とを操作する。これにより、制御装置１００は、吸気バルブ２３の開閉タイミングと、排気バルブ２４の開閉タイミングとを制御する。例えば、制御装置１００は、排気バルブ２４及び吸気バルブ２３の双方が開弁している期間であるバルブオーバーラップを制御する。
【００４４】
また、制御装置１００は、車両が停止しているときに燃料の供給と点火を停止して機関運転を自動的に停止させ、車両を発進させるときに自動的に燃料の供給と点火を再開して機関運転を再開させる。すなわち、制御装置１００は、機関運転を自動的に停止させ再始動させることによりアイドリング運転の継続を抑制するアイドリングストップ制御を実行する。
【００４５】
なお、制御装置１００では、アイドリングストップ制御による運転停止の際に、クランクシャフト１８が停止したときのクランクカウンタの値を停止時カウンタ値ＶＣＡｓｔとして記憶部１０２に記憶しておくようにしている。
【００４６】
次に、クランクポジションセンサ１５０や、吸気側カムポジションセンサ１６０、排気側カムポジションセンサ１７０について詳しく説明し、クランクカウンタを算出する方法について説明する。
【００４７】
まず、図３及び図４を参照してクランクポジションセンサ１５０について説明する。図３はクランクポジションセンサ１５０とクランクシャフト１８に取り付けられたセンサプレート１５１との関係を示している。そして、図４のタイミングチャートはクランクポジションセンサ１５０によって出力されるクランク角信号の波形を示している。
【００４８】
図３に示すように、クランクシャフト１８には円盤状のセンサプレート１５１が取り付けられている。センサプレート１５１の周縁部には角度にして５°の幅の信号歯１５２が５°の間隔を開けて３４個並べて配設されている。そのため、図３の右側に示されているように、センサプレート１５１には、隣り合う信号歯１５２同士の間隔が角度にして２５°になっていて他の部分と比較して信号歯１５２が２つ欠けたようになっている欠け歯部１５３が１箇所形成されている。
【００４９】
図３に示すように、クランクポジションセンサ１５０は、このセンサプレート１５１の信号歯１５２と対向するようにセンサプレート１５１の周縁部に向けて配設されている。
クランクポジションセンサ１５０は、磁石と磁気抵抗素子を内蔵したセンサ回路からなる磁気抵抗素子タイプのセンサである。クランクシャフト１８の回転に伴ってセンサプレート１５１が回転すると、それに伴ってセンサプレート１５１の信号歯１５２とクランクポジションセンサ１５０とが近接、離間するようになる。これにより、クランクポジションセンサ１５０内の磁気抵抗素子にかかる磁界の方向が変化し、磁気抵抗素子の内部抵抗が変化する。センサ回路はこの抵抗値変化を電圧に変換した波形と閾値との大小関係を比較してその波形を第１の信号であるＬｏ信号と第２の信号であるＨｉ信号とによる矩形波に整形し、クランク角信号として出力する。
【００５０】
図４に示すように、具体的には、クランクポジションセンサ１５０は、信号歯１５２と対向しているときにＬｏ信号を出力し、信号歯１５２同士の間の空隙部分と対向しているときにＨｉ信号を出力する。そのため、欠け歯部１５３に対応するＨｉ信号が検出されると、そのあと信号歯１５２に対応するＬｏ信号が検出される。そして、それからは１０°ＣＡ毎に信号歯１５２対応するＬｏ信号が検出される。こうして３４個のＬｏ信号が検出されたあと、再び欠け歯部１５３に対応するＨｉ信号が検出される。そのため、欠け歯部１５３に対応するＨｉ信号を挟んで次の信号歯１５２に対応するＬｏ信号が検出されるまでの回転角はクランク角にして３０°ＣＡである。
【００５１】
図４に示すように、欠け歯部１５３に対応するＨｉ信号に続いて信号歯１５２に対応するＬｏ信号が検出されてから、次に欠け歯部１５３に対応するＨｉ信号に続いてＬｏ信号が検出されるまでの間隔は、クランク角にして３６０°ＣＡになっている。
【００５２】
クランクカウンタ算出部１０３は、Ｈｉ信号からＬｏ信号に変化するエッジを計数することによりクランクカウンタを算出する。また、他のＨｉ信号よりも長い欠け歯部１５３に対応するＨｉ信号が検出されたことに基づいて、クランクシャフト１８の回転位相が欠け歯部１５３に対応する回転位相であることを検知する。
【００５３】
次に、図５を参照して吸気側カムポジションセンサ１６０について説明する。なお、吸気側カムポジションセンサ１６０と排気側カムポジションセンサ１７０は、いずれもがクランクポジションセンサ１５０と同様の磁気抵抗素子タイプのセンサである。吸気側カムポジションセンサ１６０と排気側カムポジションセンサ１７０とは、検知する対象が異なるだけであるため、ここでは吸気側カムポジションセンサ１６０によって検出される吸気側カム角信号について詳しく説明する。
【００５４】
図５は吸気側カムポジションセンサ１６０と吸気カムシャフト２５に取り付けられているタイミングロータ１６１との関係を示しており、図６のタイミングチャートは吸気側カムポジションセンサ１６０から出力される吸気側カム角信号の波形を示している。
【００５５】
図５に示すように、タイミングロータ１６１には、周方向における占有範囲の広さが互いに異なる３つの突起部である大突起部１６２と中突起部１６３と小突起部１６４とが設けられている。
【００５６】
最も大きな大突起部１６２はタイミングロータ１６１の周方向において角度にして９０°に亘って広がるように形成されている。これに対して、最も小さな小突起部１６４は角度にして３０°に亘って広がるように形成されており、大突起部１６２よりも小さく且つ小突起部１６４よりも大きい中突起部１６３は６０°に亘って広がるように形成されている。
【００５７】
そして、図５に示すように、タイミングロータ１６１では、大突起部１６２、中突起部１６３、小突起部１６４がそれぞれ所定の間隔を隔てて配設されている。具体的には、大突起部１６２と中突起部１６３とは角度にして６０°の間隔を隔てて配設されており、中突起部１６３と小突起部１６４とは角度にして９０°の間隔を隔てて配設されている。そして、大突起部１６２と小突起部１６４とは角度にして３０°の間隔を隔てて配設されている。
【００５８】
図５に示すように、吸気側カムポジションセンサ１６０は、このタイミングロータ１６１の大突起部１６２、中突起部１６３、小突起部１６４と対向するようにタイミングロータ１６１の周縁部に向けて配設されている。吸気側カムポジションセンサ１６０は、クランクポジションセンサ１５０と同様にＬｏ信号とＨｉ信号を出力する。
【００５９】
具体的には、図６に示すように、吸気側カムポジションセンサ１６０は、大突起部１６２、中突起部１６３、小突起部１６４と対向しているときにＬｏ信号を出力し、各突起部の間の空隙部分と対向しているときにＨｉ信号を出力する。吸気カムシャフト２５は、クランクシャフト１８が２回転する間に１回転する。そのため、吸気側カム角信号の変化はクランク角にして７２０°ＣＡの周期で一定の変化を繰り返す。
【００６０】
図６に示すように、大突起部１６２に対応する１８０°ＣＡに亘って継続するＬｏ信号が出力されたあとには、６０°ＣＡに亘って継続するＨｉ信号が出力され、そのあとに小突起部１６４に対応する６０°ＣＡに亘って継続するＬｏ信号が出力される。そして、そのあとに、１８０°ＣＡに亘って継続するＨｉ信号が出力され、それに続いて中突起部１６３に対応する１２０°ＣＡに亘って継続するＬｏ信号が出力される。そして、最後に１２０°ＣＡに亘って継続するＨｉ信号が出力されたあと、再び大突起部１６２に対応する１８０°ＣＡに亘って継続するＬｏ信号が出力されるようになる。
【００６１】
このように吸気側カム角信号は一定の変化パターンで周期的に変化するため、制御装置１００は、このカム角信号の変化パターンを認識することにより、吸気カムシャフト２５がどのような回転位相にあるのかを検知することができる。例えば、６０°ＣＡに相当する長さのＬｏ信号が出力されたあとＨｉ信号に切り替わったときには、制御装置１００は、それに基づいて小突起部１６４が吸気側カムポジションセンサ１６０の前を通過した直後の回転位相であることを検知することができる。
【００６２】
内燃機関１０では、排気カムシャフト２６にも、同一の形状のタイミングロータ１６１が取り付けられている。そのため、排気側カムポジションセンサ１７０によって検出される排気側カム角信号も、図６に示した吸気側カム角信号と同様の変化パターンで周期的に変化する。したがって、排気側カムポジションセンサ１７０から出力される排気側カム角信号の変化パターンを認識することにより、制御装置１００は排気カムシャフト２６がどのような回転位相にあるのかを検知することができる。
【００６３】
排気カムシャフト２６に取り付けられているタイミングロータ１６１は、吸気カムシャフト２５に取り付けられるタイミングロータ１６１に対して位相をずらして取り付けられている。具体的には、排気カムシャフト２６に取り付けられているタイミングロータ１６１は、吸気カムシャフト２５に取り付けられているタイミングロータ１６１よりも３０°だけ進角側に位相をずらして取り付けられている。
【００６４】
これにより、吸気側カム角信号の変化パターンは、図７に示すように、排気側カム角信号の変化パターンに対してクランク角にして６０°ＣＡだけ遅れて変化するものになっている。
【００６５】
図７は、クランク角信号とクランクカウンタとの関係、並びにクランクカウンタとカム角信号との関係を示すタイミングチャートである。なお、図７では、クランク角信号についてＨｉ信号からＬｏ信号に変化するエッジのみを図示している。
【００６６】
制御装置１００のクランクカウンタ算出部１０３は、前述したように、機関運転に伴ってクランクポジションセンサ１５０から出力されるクランク角信号がＨｉ信号からＬｏ信号に変化するときのエッジを計数し、クランクカウンタを算出する。また、クランクカウンタ算出部１０３は、クランク角信号と吸気側カム角信号と排気側カム角信号とに基づいて気筒判別を行う。
【００６７】
具体的には、クランクカウンタ算出部１０３は、図７に示すように１０°ＣＡ毎に出力されるクランク角信号のエッジを計数してエッジが３つ計数される度にクランクカウンタをカウントアップさせる。すなわち、クランクカウンタ算出部１０３は３０°ＣＡ毎にクランクカウンタの値であるクランクカウンタ値ＶＣＡをカウントアップさせる。そして、制御装置１００は、クランクカウンタ値ＶＣＡに基づいて現在のクランク角を認識し、各気筒に対する燃料噴射や点火のタイミングを制御する。
【００６８】
また、クランクカウンタは、７２０°ＣＡ毎に周期的にリセットされるようになっている。すなわち図７の中央に示すように、６９０°ＣＡに対応する「２３」までカウントアップしたあとは、次のカウントアップのタイミングでクランクカウンタ値ＶＣＡが「０」にリセットされ、そこから再び３０°ＣＡ毎にクランクカウンタがカウントアップされるようになっている。
【００６９】
また、欠け歯部１５３がクランクポジションセンサ１５０の前を通過するときには、検出されるエッジの間隔が３０°ＣＡになる。そこで、クランクカウンタ算出部１０３は、エッジの間隔が広くなったときには、それに基づいて欠け歯部１５３がクランクポジションセンサ１５０の前を通過したことを検知する。この欠け歯検出は、３６０°ＣＡ毎になされるため、クランクカウンタが１周期分カウントアップされる７２０°ＣＡの間に欠け歯検出は２回行われることになる。
【００７０】
また、クランクシャフト１８と吸気カムシャフト２５と排気カムシャフト２６は、互いにタイミングチェーン２９を介して連結されているため、クランクカウンタの変化とカム角信号の変化とは一定の相関を有している。
【００７１】
すなわち、クランクシャフト１８が２回転する間に吸気カムシャフト２５、排気カムシャフト２６は１回転する。そのため、クランクカウンタ値ＶＣＡが分かればそのときの吸気カムシャフト２５、排気カムシャフト２６の回転位相を推定することができ、吸気カムシャフト２５、排気カムシャフト２６の回転位相が分かればクランクカウンタ値ＶＣＡを推定することができる。
【００７２】
クランクカウンタ算出部１０３は、こうした吸気側カム角信号及び排気側カム角信号とクランクカウンタ値ＶＣＡとの関係や、欠け歯検出とクランクカウンタ値ＶＣＡとの関係を利用して、クランクカウンタの算出を開始する際に起点になるクランク角を確定するとともに、クランクカウンタ値ＶＣＡを確定させる。
【００７３】
そして、クランクカウンタ算出部１０３は、クランク角が判明し、起点にするクランクカウンタ値ＶＣＡが判明してから、判明したクランクカウンタ値ＶＣＡを起点にカウントアップを開始する。すなわちクランクカウンタはクランク角が判明しておらず、起点となるクランクカウンタ値ＶＣＡが判明していない間は未確定であり、出力されていない。起点となるクランクカウンタ値ＶＣＡが判明したあと、判明したクランクカウンタ値ＶＣＡを起点にカウントアップが開始されてクランクカウンタ値ＶＣＡが出力されるようになる。
【００７４】
なお、吸気側可変バルブタイミング機構２７によってクランクシャフト１８に対する吸気カムシャフト２５の相対位相が変更されると、クランクシャフト１８に取り付けられているセンサプレート１５１と吸気カムシャフト２５に取り付けられているタイミングロータ１６１との相対位相も変化する。そのため、制御装置１００は、吸気側可変バルブタイミング機構２７の操作量である変位角に応じて相対位相の変化量を把握し、相対位相の変更による影響を加味して起点にするクランクカウンタ値ＶＣＡを確定する。排気側可変バルブタイミング機構２８による排気カムシャフト２６の相対位相の変更についても同様である。
【００７５】
内燃機関１０では、図７に示されるように吸気カム角信号が１８０°ＣＡに亘って継続するＬｏ信号から６０°ＣＡに亘って継続するＨｉ信号に切り替わるときのクランク角を「０°ＣＡ」に設定している。そのため、図７に破線で示されるように吸気カム角信号が６０°ＣＡに亘って継続するＨｉ信号からＬｏ信号に切り替わった直後になされる欠け歯検出はクランク角が９０°ＣＡであることを示すものになる。一方で、吸気カム角信号が１２０°ＣＡに亘って継続するＬｏ信号からＨｉ信号に切り替わった直後になされる欠け歯検出はクランク角が４５０°ＣＡであることを示すものになる。なお、図７にはクランクカウンタの値の推移を示す実線の下にクランクカウンタ値ＶＣＡを表記し、この実線の上にはそのクランクカウンタ値ＶＣＡに対応するクランク角を表記している。また、図７は、吸気側可変バルブタイミング機構２７における変位角と排気側可変バルブタイミング機構２８における変位角がともに「０」のときの状態を示している。
【００７６】
なお、前述したようにカム角信号の変化とクランク角とは互いに相関を有しているため、吸気側カム角信号と排気側カム角信号との組合せのパターンに応じてその組合せに対応するクランク角を推定することにより、欠け歯検出を待たずに、基点とするクランクカウンタ値ＶＣＡを速やかに確定することができる場合もある。
【００７７】
ところで、アイドリングストップ制御による自動停止からの自動再始動のような場合には、気筒内に直接燃料を噴射して速やかに燃焼を再開させることができる筒内噴射を実行することが好ましい。ポート噴射のみによって気筒内に燃料を供給すると、筒内噴射弁１５による燃料噴射を実行する場合と比較して気筒内に燃料が到達するのに時間がかかったり、吸気ポート１３に燃料が付着したりするため、始動性が悪くなってしまうおそれがある。
【００７８】
そこで、制御装置１００は、アイドリングストップ制御による自動停止からの自動再始動時には筒内噴射による機関始動を実行する。しかし、機関停止中には高圧燃料ポンプ６０が駆動されないため、自動再始動時における高圧系燃圧ＰＨが筒内噴射を実行するには不十分な水準まで低下することがある。高圧系燃圧ＰＨが低下していると、適切に筒内噴射による機関始動を行うことができない。そのため、自動再始動時における高圧系燃圧ＰＨが低い場合には、スタータモータ４０によるクランキングによって高圧燃料ポンプ６０が駆動され、高圧系燃圧ＰＨが高まるのを待ってから筒内噴射を実施する。
【００７９】
なお、高圧系燃圧センサ１８５や高圧燃料ポンプ６０を含む高圧側燃料供給系５１に異常が生じている場合には、高圧燃料ポンプ６０が駆動されていても、高圧系燃圧センサ１８５によって検出される高圧系燃圧ＰＨが十分に高くならないこともある。
【００８０】
そこで、図１に示すように、制御装置１００では、ポンプ駆動回数ＮＰを算出する駆動回数算出部として、第１駆動回数算出部１０７と第２駆動回数算出部１０８とを設け、クランクカウンタ値ＶＣＡを利用して高圧燃料ポンプ６０の駆動回数であるポンプ駆動回数ＮＰを算出している。そして、ポンプ駆動回数ＮＰも利用して筒内噴射の実施の可否を判定している。
【００８１】
第１駆動回数算出部１０７は、クランクカウンタ値ＶＣＡと高圧燃料ポンプ６０のプランジャ６２の上死点との関係を利用してポンプ駆動回数ＮＰを算出する。なお、以下の部分では、プランジャ６２の上死点をポンプＴＤＣと称する。一方で、第２駆動回数算出部１０８は、高圧系燃圧ＰＨの変化に基づいてポンプ駆動回数ＮＰを算出する。
【００８２】
図７に示すように、高圧燃料ポンプ６０のプランジャ６２のリフト量は、クランクカウンタ値ＶＣＡの変化にあわせて周期的に変動する。これは、高圧燃料ポンプ６０のプランジャ６２を駆動するポンプカム６７が、吸気カムシャフト２５に取り付けられているためである。つまり、内燃機関１０では、図７に矢印で示すように、ポンプＴＤＣをクランクカウンタ値ＶＣＡと紐付けることができる。なお、図７では、ポンプＴＤＣに対応するクランクカウンタ値ＶＣＡに下線を付している。
【００８３】
制御装置１００の記憶部１０２には、ポンプＴＤＣとクランクカウンタ値ＶＣＡとを対応付けた第１マップが記憶されている。そして、第１駆動回数算出部１０７は、クランクカウンタ値ＶＣＡに基づいて、この第１マップを参照してポンプ駆動回数ＮＰを算出する。
【００８４】
ここからは、制御装置１００が実行する再始動時の制御並びにポンプ駆動回数ＮＰの算出について説明する。
まずは、図８を参照して再始動時に筒内噴射による始動の実施の可否を判定する処理について説明する。図８は、再始動時に、制御装置１００が実行するルーチンにおける処理の流れを示すフローチャートである。
【００８５】
なお、制御装置１００は、再始動を行う場合に、冷却水温ＴＨＷが許可水温以上であることを条件に、このルーチンを繰り返し実行する。冷却水温ＴＨＷが低い場合には、燃料が霧化し難く、筒内噴射による機関始動が失敗するおそれがある。そのため、制御装置１００は、再始動時であっても、冷却水温ＴＨＷが許可水温未満である場合には、このルーチンを実行せずに、ポート噴射による機関始動を実施する。
【００８６】
図８に示すように、制御装置１００はこのルーチンを開始すると、ステップＳ１００の処理において、高圧系燃圧ＰＨが噴射許可燃圧ＰＨＨ以上であるか否かを判定する。噴射許可燃圧ＰＨＨは、高圧系燃圧ＰＨがこの噴射許可燃圧ＰＨＨ以上であることに基づいて筒内噴射によって内燃機関１０を始動させることができる圧力まで高圧系燃圧ＰＨが高くなっていることを判定する閾値である。なお、内燃機関１０の温度が低いほど筒内噴射による始動が困難になるため、噴射許可燃圧ＰＨＨは冷却水温ＴＨＷが低いほど高い値になるように冷却水温ＴＨＷに応じた値に設定される。
【００８７】
ステップＳ１００の処理において高圧系燃圧ＰＨが噴射許可燃圧ＰＨＨ以上であると判定した場合（ステップＳ１００：ＹＥＳ）の場合には、制御装置１００は処理をステップＳ１１０へと進める。そして、制御装置１００は、ステップＳ１１０の処理において筒内噴射による始動を実施する。
【００８８】
具体的には筒内噴射弁１５から燃料を噴射させるとともに、点火装置１６による点火を実施し、筒内噴射による始動を実施する。こうしてステップＳ１１０の処理を実行すると、制御装置１００はこの一連の処理を一旦終了する。
【００８９】
一方、ステップＳ１１０の処理において、高圧系燃圧ＰＨが噴射許可燃圧ＰＨＨ未満であると判定した場合（ステップＳ１００：ＮＯ）には、制御装置１００は処理をステップＳ１２０へと進める。そして、制御装置１００は、ステップＳ１２０の処理において高圧系燃圧ＰＨが噴射下限燃圧ＰＨＬ以上であるか否かを判定する。噴射下限燃圧ＰＨＬは高圧系燃圧ＰＨがこの噴射下限燃圧ＰＨＬ未満であることに基づいて筒内噴射による始動を実施しないことを判定するための閾値である。噴射下限燃圧ＰＨＬは噴射許可燃圧ＰＨＨよりも低い。また、前述したように、内燃機関１０の温度が低いほど筒内噴射による始動が困難になるため、噴射下限燃圧ＰＨＬも噴射許可燃圧ＰＨＨと同様に冷却水温ＴＨＷが低いほど高い値になるように冷却水温ＴＨＷに応じた値に設定される。
【００９０】
ステップＳ１２０の処理において高圧系燃圧ＰＨが噴射下限燃圧ＰＨＬ未満であると判定した場合（ステップＳ１２０：ＮＯ）には、制御装置１００はこの一連の処理を一旦終了する。すなわち、この場合には、制御装置１００は、ステップＳ１１０の処理を実行せず、筒内噴射による始動を実施しない。
【００９１】
一方、Ｓ１２０の処理において高圧系燃圧ＰＨが噴射下限燃圧ＰＨＬ以上であると判定した場合（ステップＳ１２０：ＹＥＳ）には、制御装置１００は処理をステップＳ１３０へと進める。そして、ステップＳ１３０の処理において制御装置１００は第１駆動回数算出部１０７によって算出されているポンプ駆動回数ＮＰが規定回数ＮＰｔｈ以上であるか否かを判定する。なお、規定回数ＮＰｔｈは筒内噴射による始動を実施可能な圧力まで高圧系燃圧ＰＨを高めるために必要な高圧燃料ポンプ６０の駆動回数に基づいて設定されている。すなわち、規定回数ＮＰｔｈはポンプ駆動回数ＮＰが筒内噴射による始動を実施可能な圧力まで高圧系燃圧ＰＨを高めるために必要な駆動回数に達しているか否かを判定するための閾値である。
【００９２】
ステップＳ１３０の処理においてポンプ駆動回数ＮＰが規定回数ＮＰｔｈ未満であると判定した場合（ステップＳ１３０：ＮＯ）には、制御装置１００は、この一連の処理を一旦終了する。すなわち、この場合にも、制御装置１００は、ステップＳ１１０の処理を実行せず、筒内噴射による始動を実施しない。
【００９３】
一方、ステップＳ１３０の処理においてポンプ駆動回数ＮＰが規定回数ＮＰｔｈ以上であると判定した場合（ステップＳ１３０：ＹＥＳ）には、制御装置１００は、処理をステップＳ１１０へと進め、筒内噴射による始動を実施する。そして、制御装置１００は、この一連の処理を一旦終了する。
【００９４】
なお、この一連の処理は繰り返し実行される。そのため、この一連の処理とともに行われているクランキングに伴い、高圧燃料ポンプ６０が駆動されることによって高圧系燃圧ＰＨが噴射許可燃圧ＰＨＨ以上になったり、ポンプ駆動回数ＮＰが規定回数ＮＰｔｈ以上になったりして、この一連の処理を繰り返しているうちに筒内噴射が実施されることもある。
【００９５】
ただし、制御装置１００は、筒内噴射による機関始動が完了した場合はもちろんのこと、この一連の処理を繰り返している期間が所定の期間以上になっても筒内噴射による機関始動を完了させることができない場合にも、このルーチンの実行を繰り返すことを止める。
【００９６】
そして、筒内噴射による機関始動を完了させることができなかった場合には、ポート噴射による機関始動を実施する。すなわち、制御装置１００は、所定の期間を経過しても筒内噴射による機関始動を実施する条件が成立しない場合には、ポート噴射による機関始動に切り替える。また、制御装置１００は、筒内噴射による機関始動を実施する条件が成立してステップＳ１１０の処理を実行し、筒内噴射による機関始動を実施したものの、所定の期間を経過しても機関始動が完了しなかった場合にも、ポート噴射による機関始動に切り替える。
【００９７】
このように制御装置１００では、高圧系燃圧ＰＨが噴射許可燃圧ＰＨＨ未満であっても、噴射下限燃圧ＰＨＬ以上である場合には、ポンプ駆動回数ＮＰが規定回数ＮＰｔｈ以上になっていることを条件に筒内噴射による始動を実施する。これにより、内燃機関１０では、高圧系燃圧ＰＨが噴射下限燃圧ＰＨＬ以上まで高くなっており、且つ筒内噴射が可能な程度まで高圧系燃圧ＰＨが高くなっていてもおかしくない程度まで高圧燃料ポンプ６０が駆動されている場合に、高圧系燃圧ＰＨが噴射許可燃圧ＰＨＨ以上になっていなくても筒内噴射による始動が実施される。
【００９８】
これにより、何らかの理由により高圧系燃圧センサ１８５によって検出される高圧系燃圧ＰＨが高くなりにくい状態になっていたとしても、筒内噴射による始動が成功する可能性が高い場合に筒内噴射による始動が試みられる。そのため、高圧系燃圧ＰＨが噴射許可燃圧ＰＨＨ未満であった場合に、一律に筒内噴射による始動を行わないようにする場合と比較して、筒内噴射によって始動を完了させることができる可能性が高まる。
【００９９】
次に、第１駆動回数算出部１０７によるポンプ駆動回数ＮＰの算出方法について説明する。第１駆動回数算出部１０７は、内燃機関１０の始動を開始してから始動が完了するまでの間、ポンプ駆動回数ＮＰを算出する処理を繰り返し、始動が完了するまでのポンプ駆動回数ＮＰを計数する。なお、始動が完了したあとポンプ駆動回数ＮＰはリセットされる。
【０１００】
図９を参照して第１駆動回数算出部１０７が実行するポンプ駆動回数ＮＰを算出するカウント処理について説明する。第１駆動回数算出部１０７は、クランクカウンタ値ＶＣＡがすでに判明しているときに、図９に示すカウント処理をクランクカウンタ値ＶＣＡが更新される度に繰り返し実行する。
【０１０１】
図９に示すように、このカウント処理を開始すると、第１駆動回数算出部１０７は、ステップＳ２００の処理において、記憶部１０２に記憶されている第１マップを参照してクランクカウンタ値ＶＣＡがポンプＴＤＣに相当する値であるか否かを判定する。すなわち、クランクカウンタ値ＶＣＡが第１マップに記憶されているポンプＴＤＣに対応する値のうちいずれかと等しいか否かを判定し、等しい場合にクランクカウンタ値ＶＣＡがポンプＴＤＣに相当する値であると判定する。
【０１０２】
ステップＳ２００の処理において、クランクカウンタ値ＶＣＡがポンプＴＤＣに相当する値であると判定した場合（ステップＳ２００：ＹＥＳ）には、第１駆動回数算出部１０７は処理をステップＳ２１０へと進める。そして、ステップＳ２１０の処理において第１駆動回数算出部１０７はポンプ駆動回数ＮＰを１つインクリメントする。そして、第１駆動回数算出部１０７は、このルーチンを一旦終了する。
【０１０３】
一方で、ステップＳ２００の処理においてクランクカウンタ値ＶＣＡがポンプＴＤＣに相当する値ではないと判定した場合（ステップＳ２００：ＮＯ）には、第１駆動回数算出部１０７は、ステップＳ２１０の処理を実行せずに、そのままこのルーチンを一旦終了する。すなわち、このときには、ポンプ駆動回数ＮＰはインクリメントされずそのままの値が維持される。
【０１０４】
こうしてこのカウント処理では、クランクカウンタ値ＶＣＡがポンプＴＤＣに相当する値であることを条件にポンプ駆動回数ＮＰをインクリメントすることによってポンプ駆動回数ＮＰを算出する。
【０１０５】
次に、クランクカウンタ値ＶＣＡがまだ判明していないときに第１駆動回数算出部１０７が実行するカウント処理について説明する。なお、クランクカウンタ値ＶＣＡがまだ判明していないということは、機関始動が開始された直後であり、まだポンプ駆動回数ＮＰは算出されていない。
【０１０６】
図１０に示すように、このカウント処理を開始すると、第１駆動回数算出部１０７は、ステップＳ３００の処理においてクランク角が判明し、クランクカウンタ値ＶＣＡが判明したか否かを判定する。ステップＳ３００の処理においてクランクカウンタ値ＶＣＡが判明していないと判定した場合（ステップＳ３００：ＮＯ）には、第１駆動回数算出部１０７は、ステップＳ３００の処理を繰り返す。一方で、ステップＳ３００の処理においてクランクカウンタ値ＶＣＡが判明したと判定した場合（ステップＳ３００：ＹＥＳ）には、第１駆動回数算出部１０７は、処理をステップＳ３１０へと進める。つまり、第１駆動回数算出部１０７はクランク角が判明し、クランクカウンタ値ＶＣＡが判明するのを待って処理をステップＳ３１０へと進める。
【０１０７】
ステップＳ３１０の処理において、第１駆動回数算出部１０７は記憶部１０２に記憶されている停止時カウンタ値ＶＣＡｓｔを読み込む。そして、処理をステップＳ３２０へと進める。そして、ステップＳ３２０の処理において、第１駆動回数算出部１０７は、判明したクランクカウンタ値ＶＣＡが停止時カウンタ値ＶＣＡｓｔ以上であるか否かを判定する。
【０１０８】
ステップＳ３２０の処理において判明したクランクカウンタ値ＶＣＡが停止時カウンタ値ＶＣＡｓｔ以上であると判定した場合（ステップＳ３２０：ＹＥＳ）には、第１駆動回数算出部１０７は処理をステップＳ３４０へと進める。
【０１０９】
一方、ステップＳ３２０の処理において判明したクランクカウンタ値ＶＣＡが停止時カウンタ値ＶＣＡｓｔ未満であると判定した場合（ステップＳ３２０：ＮＯ）には、第１駆動回数算出部１０７は処理をステップＳ３３０へと進める。第１駆動回数算出部１０７はステップＳ３３０の処理において判明したクランクカウンタ値ＶＣＡに「２４」を加算してその和を新たにクランクカウンタ値ＶＣＡにする。すなわち、クランクカウンタ値ＶＣＡに「２４」を加算してクランクカウンタ値ＶＣＡを更新する。そして、第１駆動回数算出部１０７は、処理をステップＳ３４０へと進める。
【０１１０】
ステップＳ３４０の処理では、第１駆動回数算出部１０７は、記憶部１０２に記憶されている第１マップを参照し、記憶部１０２に記憶されている停止時カウンタ値ＶＣＡｓｔとクランクカウンタ値ＶＣＡとに基づいて、ポンプ駆動回数ＮＰを算出する。
【０１１１】
記憶部１０２に記憶されている第１マップには、図１１において下線を付して示しているクランクカウンタ値ＶＣＡが記憶されている。この下線を付して示しているクランクカウンタ値ＶＣＡは前述したように、ポンプＴＤＣに対応するクランクカウンタ値ＶＣＡである。
【０１１２】
なお、この第１マップには、０°ＣＡから７２０°ＣＡの範囲におけるポンプＴＤＣに対応するクランクカウンタ値ＶＣＡである「５」、「１１」、「１７」、「２３」に０°ＣＡ〜７２０°ＣＡまでの範囲におけるクランクカウンタ値の個数に相当する「２４」を加えた「２９」、「３５」、「４１」、「４７」も記憶されている。すなわち、この第１マップには途中でリセットせずにクランクシャフト１８を４回転させた分に相当するクランクカウンタ値のうちでポンプＴＤＣに相当するクランクカウンタ値が記憶されている。
【０１１３】
ステップＳ３４０の処理では、第１駆動回数算出部１０７は、記憶部１０２に記憶されている第１マップを参照し、停止時カウンタ値ＶＣＡｓｔとクランクカウンタ値ＶＣＡとに基づいて、クランクカウンタ値ＶＣＡと停止時カウンタ値ＶＣＡｓｔとの間にポンプＴＤＣに相当するクランクカウンタ値がいくつあるのかを探索する。そして、こうして算出した数をポンプ駆動回数ＮＰにする。
【０１１４】
すなわち、このカウント処理では、機関始動を開始してからクランクカウンタ値ＶＣＡが判明するまでのポンプ駆動回数ＮＰを、記憶部１０２に記憶されている停止時カウンタ値ＶＣＡｓｔと判明したクランクカウンタ値ＶＣＡとの間に存在するポンプＴＤＣに対応するクランクカウンタ値の数を計数することによって算出する。
【０１１５】
なお、判明したクランクカウンタ値ＶＣＡが停止時カウンタ値ＶＣＡｓｔ未満である場合（ステップＳ３２０：ＮＯ）に「２４」を加算してクランクカウンタ値ＶＣＡを更新する（ステップＳ３３０）のは、図１１に示すように、クランクカウンタ値が７２０°ＣＡでリセットされるためである。
【０１１６】
クランクカウンタ値が途中でリセットされるため、例えば、クランク角が判明し、判明したクランクカウンタ値ＶＣＡが「８」であるのに対して、記憶部１０２に記憶されている停止時カウンタ値ＶＣＡｓｔが「２０」である、といったように停止時カウンタ値ＶＣＡｓｔよりも判明したクランクカウンタ値ＶＣＡが小さい場合もあり得る。
【０１１７】
こういった場合には、ステップＳ３２０の処理において判明したクランクカウンタ値ＶＣＡが停止時カウンタ値ＶＣＡｓｔ未満であると判定（ステップＳ３２０：ＮＯ）される。そして、ステップＳ３３０の処理においてクランクカウンタ値ＶＣＡに「２４」が加算され、クランクカウンタ値ＶＣＡが「３２」に更新される。第１マップには、停止時カウンタ値ＶＣＡｓｔである「２０」と更新されたクランクカウンタ値ＶＣＡである「３２」との間に存在する「２３」、「２９」が記憶されている。そのため、この場合にはステップＳ３４０の処理を通じて、第１マップを参照した探索により、停止時カウンタ値ＶＣＡｓｔと判明したクランクカウンタ値ＶＣＡとの間にポンプＴＤＣに相当するクランクカウンタ値が２つあること算出され、ポンプ駆動回数ＮＰが「２」になる。
【０１１８】
このように、クランク角が判明するまでの間にクランクカウンタ値ＶＣＡが「０」にリセットする位相を跨いでクランク角が変化し、停止時カウンタ値ＶＣＡｓｔよりも判明したクランクカウンタ値ＶＣＡが小さくなる場合であってもポンプ駆動回数ＮＰを算出することができる。
【０１１９】
なお、高圧燃料ポンプ６０を駆動するポンプカム６７は吸気カムシャフト２５に取り付けられているため、吸気側可変バルブタイミング機構２７によってクランクシャフト１８に対する吸気カムシャフト２５の相対位相が変更されると、クランクカウンタ値ＶＣＡとポンプＴＤＣの対応関係が変化する。そのため、第１駆動回数算出部１０７は、吸気側可変バルブタイミング機構２７の操作量である変位角に応じて相対位相の変化量を把握し、相対位相の変更による影響を加味してステップＳ３４０におけるポンプ駆動回数ＮＰの算出を行う。つまり、相対位相の変更に対応するように第１マップに記憶されているポンプＴＤＣに対応するクランクカウンタ値ＶＣＡを補正してＳ３４０におけるポンプ駆動回数ＮＰの算出を行う。
【０１２０】
例えば、吸気カムシャフト２５の相対位相を進角側に変更している場合には、その進角量に応じた量だけ、第１マップに記憶されているクランクカウンタ値ＶＣＡを小さくするように補正を施してポンプ駆動回数ＮＰの算出を行う。
【０１２１】
こうしてポンプ駆動回数ＮＰを算出すると、第１駆動回数算出部１０７はこの一連の処理を終了する。なお、このカウント処理の実行が完了したときにはクランクカウンタ値ＶＣＡはすでに判明している。そのため、このカウント処理が終了した後にカウント処理を実行する場合には、クランクカウンタ値ＶＣＡが更新される度に第１マップを参照してポンプ駆動回数ＮＰをカウントアップさせるか否かを判定する図９を参照して説明したカウント処理が実行されるようになる。
【０１２２】
ところで、クランクカウンタ値ＶＣＡを利用してクランク角が判明するまでの間のポンプ駆動回数ＮＰを算出するためには、前述したように停止時カウンタ値ＶＣＡｓｔが必要になる。クランクポジションセンサ１５０はクランクシャフト１８の逆回転を判別できないが、クランクシャフト１８が停止する際には、気筒内で圧縮された空気が復元しようとする反力によってクランクシャフト１８が逆回転方向に揺り返すことがある。そのため、停止時カウンタ値ＶＣＡｓｔを導出するためには、クランクカウンタ算出部１０３によって算出されるクランクカウンタ値ＶＣＡに、こうした揺り返しの影響を反映させる必要がある。
【０１２３】
そこで、図１に示すように、制御装置１００には、こうした揺り返しを考慮して停止時カウンタ値ＶＣＡｓｔを算出するために、クランクシャフト１８が停止するまでのクランクシャフト１８の逆回転方向への回動量を示す揺り返し量αを推定する推定部１０５が設けられている。また、制御装置１００には、揺り返し量αを利用して停止時カウンタ値ＶＣＡｓｔを算出する停止時カウンタ値算出部１０４が設けられている。
【０１２４】
図１２を参照して推定部１０５と停止時カウンタ値算出部１０４とによって実行される停止時カウンタ値ＶＣＡｓｔを算出するルーチンについて説明する。このルーチンは、機関運転が停止したときに制御装置１００によって実行される。
【０１２５】
図１２に示すように、このルーチンを開始すると、ステップＳ４００の処理において最終カウンタ値ＶＣＡｆに基づいて揺り返し量αを推定する。
なお、最終カウンタ値ＶＣＡｆは、クランクシャフト１８が停止する前にクランクカウンタ算出部１０３が最後に算出したクランクカウンタ値ＶＣＡである。機関運転の停止に際して燃料噴射と点火を停止すると、クランクシャフト１８の回転速度が低下して最小になり、その後、気筒内で圧縮された空気が復元する力による揺り返しによってクランクシャフト１８が逆回転方向に回動する。クランクカウンタ算出部１０３は、クランク角信号に基づき、燃料噴射、点火を終了してからクランクシャフト１８の回転速度が低下して最小になった時点のクランクカウンタ値ＶＣＡを特定し、その値を最終カウンタ値ＶＣＡｆとして記憶部１０２に記憶している。
【０１２６】
最終カウンタ値ＶＣＡｆの大小は、気筒内に閉じ込められている空気の圧縮状態を示すため、最終カウンタ値ＶＣＡｆは揺り返し量αと高い相関を有している。記憶部１０２には、最終カウンタ値ＶＣＡｆと揺り返し量αとを対応付けた第２マップが記憶されている。なお、第２マップはあらかじめ行うシミュレーションや実験によって最終カウンタ値ＶＣＡｆに対応する揺り返し量αを特定することによって作成することができる。第２マップに記憶されている揺り返し量αは逆回転方向への回転角でありクランク角で表現されている。
【０１２７】
ステップＳ４００の処理では、推定部１０５が、記憶部１０２に記憶されている最終カウンタ値ＶＣＡｆを読み込み、最終カウンタ値ＶＣＡｆに基づいて第２マップを参照して揺り返し量αを推定する。ステップＳ４００の処理において揺り返し量αを算出すると、制御装置１００は処理をステップＳ４１０へと進める。
【０１２８】
ステップＳ４１０の処理では、停止時カウンタ値算出部１０４が、停止時カウンタ値ＶＣＡｓｔを算出する。具体的には、停止時カウンタ値算出部１０４は、最終カウンタ値ＶＣＡｆから揺り返し量αに相当するカウント数の分だけクランクカウンタを遡らせた値を停止時カウンタ値ＶＣＡｓｔとして算出する。例えば、最終カウンタ値ＶＣＡｆが「８」であり、揺り返し量αが６０°ＣＡである場合には６０°ＣＡに相当するカウント数である２つ分だけクランクカウンタを遡らせた「６」を停止時カウンタ値ＶＣＡｓｔとする。
【０１２９】
こうして停止時カウンタ値ＶＣＡｓｔを算出すると、制御装置１００はこのルーチンを終了させ、記憶部１０２に算出した停止時カウンタ値ＶＣＡｓｔを記憶させる。
ところで、推定部１０５が推定する揺り返し量αが実際の揺り返し量からずれていると、停止時カウンタ値算出部１０４によって算出される停止時カウンタ値ＶＣＡｓｔもクランクシャフト１８が実際に停止しているクランク角を示す値から乖離してしまう。
【０１３０】
そこで、図１に示すように、制御装置１００では、揺り返し量αを用いない方法でポンプ駆動回数ＮＰを算出する第２駆動回数算出部１０８を設けている。そして、制御装置１００では、補正部１０６が、第２駆動回数算出部１０８によって算出したポンプ駆動回数ＮＰと第１駆動回数算出部１０７によって算出したポンプ駆動回数ＮＰとの比較に基づいて揺り返し量αを補正する。すなわち、制御装置１００では、異なる態様で算出した算出結果の比較に基づくフィードバック制御により、最終カウンタ値ＶＣＡｆに応じて算出される揺り返し量αを補正する。
【０１３１】
そのため、制御装置１００では、前述した第１駆動回数算出部１０７によるカウント処理と並行して第２駆動回数算出部１０８によるカウント処理を実施している。なお、以下では第１駆動回数算出部１０７による算出態様を第１態様と称し、第２駆動回数算出部による算出態様を第２態様と称する。
【０１３２】
次に、第２駆動回数算出部１０８によるカウント処理について、すなわち第２態様について図１３を参照して説明する。第２駆動回数算出部１０８は、第１駆動回数算出部１０７によるカウント処理が行われているときに、図１３に示すカウント処理を繰り返し実行する。
【０１３３】
図１３に示すように、カウント処理を開始すると、第２駆動回数算出部１０８は、ステップＳ５００の処理において高圧系燃圧ＰＨが閾値Δｔｈ以上増大したか否かを判定する。
【０１３４】
高圧燃料ポンプ６０では、図１４に示すように、プランジャ６２が上昇するときに燃料が吐出され、高圧系燃圧ＰＨが増大する。第２駆動回数算出部１０８は高圧系燃圧ＰＨを監視し、その増大幅ΔＰＨが閾値Δｔｈ以上である場合に、高圧系燃圧ＰＨが閾値Δｔｈ以上増大したと判定する。なお、閾値Δｔｈは増大幅ΔＰＨが閾値Δｔｈ以上であることに基づいて、高圧燃料ポンプ６０が正常に駆動され、燃料が吐出されていると判定できる大きさに設定されている。
【０１３５】
ステップＳ５００の処理において高圧系燃圧ＰＨが閾値Δｔｈ以上増大したと判定した場合（ステップＳ５００：ＹＥＳ）には、第２駆動回数算出部１０８は処理をステップＳ５１０へと進める。そして、ステップＳ５１０の処理において第２駆動回数算出部１０８はポンプ駆動回数ＮＰを１つインクリメントする。そして、第２駆動回数算出部１０８は、このルーチンを一旦終了する。
【０１３６】
一方で、ステップＳ５００の処理において高圧系燃圧ＰＨが閾値Δｔｈ以上増大していないと判定した場合（ステップＳ５００：ＮＯ）には、第２駆動回数算出部１０８は、ステップＳ５１０の処理を実行せずに、そのままこのルーチンを一旦終了する。すなわち、このときには、ポンプ駆動回数ＮＰはインクリメントされずそのままの値が維持される。
【０１３７】
こうして第２駆動回数算出部１０８によるカウント処理では、図１４に示すように、高圧系燃圧ＰＨの増大幅ΔＰＨが閾値Δｔｈ以上であることを条件にポンプ駆動回数ＮＰをインクリメントすることによってポンプ駆動回数ＮＰを算出する。
【０１３８】
次に、図１５及び図１６を参照して補正部１０６によって実行される揺り返し量αの補正について説明する。図１５は補正部１０６が実行するルーチンにおける処理の流れが示されている。このルーチンは機関始動が完了したときに補正部１０６によって実行される。
【０１３９】
図１５に示すように、このルーチンを開始すると、補正部１０６はステップＳ６００の処理において第１態様で計数したポンプ駆動回数ＮＰと第２態様で計数したポンプ駆動回数ＮＰとが等しいか否かを判定する。すなわち、ここでは機関始動が完了するまでの間に第１駆動回数算出部１０７によって計数されたポンプ駆動回数ＮＰと、同じ期間に第２駆動回数算出部１０８によって計数されたポンプ駆動回数ＮＰとが一致しているか否かが判定される。
【０１４０】
ステップＳ６００の処理において第１態様で計数したポンプ駆動回数ＮＰと第２態様で計数したポンプ駆動回数ＮＰとが等しいと判定した場合（ステップＳ６００：ＹＥＳ）には、補正部１０６は、そのままこのルーチンを終了させる。
【０１４１】
一方で、ステップＳ６００の処理において第１態様で計数したポンプ駆動回数ＮＰと第２態様で計数したポンプ駆動回数ＮＰとが等しくないと判定した場合（ステップＳ６００：ＮＯ）には、補正部１０６は処理をステップＳ６１０へと進める。
【０１４２】
そして、補正部１０６は、ステップＳ６１０の処理において揺り返し量を学習する。ステップＳ６２０の処理では、補正部１０６は、第１態様で算出したポンプ駆動回数ＮＰと第２態様で算出したポンプ駆動回数ＮＰとの乖離が解消されるように第２マップを補正することによって最終カウンタ値ＶＣＡｆに対応付けられている揺り返し量αを学習する。これにより、第２マップを参照して推定部１０５によって次回推定される揺り返し量αは補正部１０６による補正が施されたものになる。要するに、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αが補正される。
【０１４３】
ステップＳ６１０における第２マップの補正は、ポンプ駆動回数ＮＰの算出結果の乖離を解消するのに必要な量の分だけ行われる。
これについて、図１６を参照して具体的に説明する。図１６には第２態様で算出したポンプ駆動回数ＮＰの推移を実線で示し、第１態様で算出したポンプ駆動回数ＮＰの推移を破線で示している。
【０１４４】
図１６に示すように、第１態様で算出したポンプ駆動回数ＮＰが第２態様で算出したポンプ駆動回数ＮＰよりも少ない場合には、推定部１０５が推定した揺り返し量が小さすぎた可能性がある。図１６に示すように、実際の揺り返し量が「β」であった場合、正しい停止時カウンタ値ＶＣＡｓｔは「３」であるが、推定部１０５が推定した揺り返し量αが小さすぎるために、停止時カウンタ値ＶＣＡｓｔが「６」であると算出されてしまう。
【０１４５】
その結果、第２態様によるカウント処理では高圧系燃圧ＰＨの増大幅ΔＰＨが閾値Δｔｈ以上になったことに基づいてクランクカウンタのカウントアップが行われるのに対して、第１態様によるカウント処理ではカウントアップが行われず、ポンプ駆動回数ＮＰに乖離が生じる。この乖離を解消するためには、第１態様によるカウント処理において１回のカウントアップが行われるように揺り返し量αを大きくする必要がある。
【０１４６】
図１６に示すように、揺り返し量を「α２」まで大きくして停止時カウンタ値算出部１０４によって算出される停止時カウンタ値ＶＣＡｓｔがポンプＴＤＣに相当する「５」になるように補正すれば、第１態様によるカウント処理において１回のカウントアップが行われるようになり、ポンプ駆動回数ＮＰの乖離が生じなくなる。
【０１４７】
そこで、この場合には、停止時カウンタ値算出部１０４によって算出される停止時カウンタ値ＶＣＡｓｔがポンプＴＤＣに相当する「５」になるように第２マップを補正する学習を行う。すなわち、図１６に示すように、このときの補正量Ｘｒはクランクカウンタにおける１カウント分に相当する３０°ＣＡになる。補正部１０６は、この補正量Ｘｒの分だけ第２マップに記憶されている揺り返し量αを大きくする補正を行う。
【０１４８】
なお、第１態様で算出したポンプ駆動回数ＮＰが第２態様で算出したポンプ駆動回数ＮＰよりも多い場合には、推定部１０５が推定した揺り返し量が多き過ぎた可能性がある。したがって、その場合には、上記と同様にポンプ駆動回数ＮＰの乖離を解消するのに必要な分だけ、第２マップに記憶されている揺り返し量αを小さくする補正を行う。
【０１４９】
こうしてステップＳ６１０の処理において揺り返し量を学習すると、補正部１０６はこの処理を終了させる。
本実施形態の作用について説明する。
【０１５０】
制御装置１００では、第１駆動回数算出部１０７によって算出されたポンプ駆動回数ＮＰと、第２駆動回数算出部１０８によって算出されたポンプ駆動回数ＮＰとの乖離に基づいて、補正部１０６によって停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αが補正される。すなわち、制御装置１００では、停止時カウンタ値ＶＣＡｓｔを利用してポンプ駆動回数ＮＰを算出する第１駆動回数算出部１０７の算出結果と、停止時カウンタ値ＶＣＡｓｔを利用しないでポンプ駆動回数ＮＰを算出する第２駆動回数算出部１０８の算出結果とが比較される。そして、その結果に基づいて停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αを補正するフィードバック制御が実行される。
【０１５１】
また、制御装置１００では、そのフィードバック制御による補正の際には、ポンプ駆動回数ＮＰの乖離を解消するのに必要な分、第２マップに記憶されている揺り返し量が補正される。
【０１５２】
本実施形態の効果について説明する。
（１）第１態様で算出したポンプ駆動回数ＮＰの算出結果と第２態様で算出したポンプ駆動回数ＮＰとの比較に基づいて揺り返し量を補正するため、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αと実際の揺り返し量とが乖離する状態が放置されたまま制御を継続することを抑制できる。
【０１５３】
（２）補正部１０６は、第１駆動回数算出部１０７によって算出したポンプ駆動回数ＮＰが、第２駆動回数算出部１０８によって高圧系燃圧ＰＨに基づいて算出したポンプ駆動回数ＮＰよりも多い場合には、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αをより小さくしている。そのため、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αが大き過ぎる事態が継続することを抑制できる。
【０１５４】
（３）補正部１０６は、第１駆動回数算出部１０７によって算出したポンプ駆動回数ＮＰが、第２駆動回数算出部１０８によって高圧系燃圧ＰＨに基づいて算出したポンプ駆動回数ＮＰよりも少ない場合には、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αをより大きくしている。そのため、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αが小さ過ぎる事態が継続することを抑制できる。
【０１５５】
（４）制御装置１００では、ポンプ駆動回数ＮＰの算出結果の乖離を解消するのに必要な量にあわせた補正がなされ、補正量は必要最小限の範囲に留められる。そのため、上記構成によれば、過剰に補正してしまうことを抑制しながら、第１駆動回数算出部１０７によって算出したポンプ駆動回数ＮＰと第２駆動回数算出部１０８によって算出したポンプ駆動回数ＮＰとの乖離の解消を図ることができる。
【０１５６】
（５）クランクシャフト１８が停止する前に最後に算出したクランクカウンタの値である最終カウンタ値ＶＣＡｆの大小は、気筒内に閉じ込められている空気の圧縮状態を示すため、揺り返し量と高い相関を有している。そのため、上記構成のように、最終カウンタ値ＶＣＡｆと揺り返し量とを対応付けた第２マップが記憶部１０２に記憶されていれば、第２マップを参照して最終カウンタ値ＶＣＡｆに基づいて揺り返し量αを推定することができる。
【０１５７】
（６）第２マップを補正することによって、推定部１０５によって推定される揺り返し量αが補正され、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αの補正が実現される。
【０１５８】
（７）制御装置１００では、クランクカウンタ値ＶＣＡから計数したポンプ駆動回数ＮＰを算出するようにしているため、高圧系燃圧センサ１８５に異常が発生して高圧系燃圧ＰＨの変化によるポンプ駆動回数ＮＰの算出ができなくなったとしても、クランクカウンタ値ＶＣＡから計数したポンプ駆動回数ＮＰを使用することができる。また、上記のように２つの異なる態様によるポンプ駆動回数ＮＰの算出結果の比較によるフィードバックを行っているので、クランクカウンタ値ＶＣＡから計数する態様のみを適用する場合よりも正確にポンプ駆動回数ＮＰを算出することができる。
【０１５９】
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記実施形態では、ポンプカム６７が吸気カムシャフト２５に取り付けられている内燃機関１０を例示したが、上記実施形態のようにポンプ駆動回数ＮＰを算出する構成は、ポンプカム６７が吸気カムシャフトによって駆動される内燃機関に限らずに適用することができる。例えば、ポンプカム６７が排気カムシャフト２６に取り付けられている内燃機関にも適用することができる。また、クランクシャフト１８の回転に連動してポンプカム６７が回転する内燃機関であれば同様に適用することができる。そのため、クランクシャフト１８にポンプカム６７が取り付けられている内燃機関や、クランクシャフト１８と連動して回転するポンプカムシャフトを備えた内燃機関に、制御装置を適用することもできる。
【０１６０】
・内燃機関１０の温度が低いときには、潤滑油の粘度が高く、クランクシャフト１８が回転する際のフリクションが大きいため、揺り返し量αは小さくなる傾向がある。そのため、冷却水温ＴＨＷが低いときには、さらに停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αを小さくするようにしてもよい。こうした構成を採用すれば実際の揺り返し量とのずれをさらに抑制し、停止時カウンタ値ＶＣＡｓｔをより正確に算出できるようになる。
【０１６１】
・上記実施形態では、補正部１０６によって第２マップを補正する学習を行うことにより、揺り返し量を補正する例を示したが、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量を補正する方法はこうした方法に限らない。例えば、第２マップを補正するのではなく、推定部１０５が第２マップを参照して揺り返し量αを推定した後に、推定された揺り返し量αを補正するようにしてもよい。
【０１６２】
この場合には、補正部１０６は図１７に示すようにステップＳ６１０の処理に替えて、補正量Ｘｒを算出するステップＳ６２０の処理を実行する。そして、図１８に示すように、ステップＳ４００の処理の後に、補正部１０６が補正量Ｘｒの分だけ揺り返し量αを補正するステップＳ４０５の処理を実行する。こうして補正部１０６による補正が施された揺り返し量αを用いて、ステップＳ４１０の処理において停止時カウンタ値算出部１０４が停止時カウンタ値ＶＣＡｓｔを算出する。
【０１６３】
こうした構成を採用した場合にも上記実施形態と同様に、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量αと実際の揺り返し量との乖離の解消を図ることができる。
・上記実施形態では、最終カウンタ値ＶＣＡｆに基づいて揺り返し量αを推定する例を示したが、推定部１０５による揺り返し量αの推定方法は、こうした方法に限定されない。例えば、特許文献１と同様に、逆流空気量を参照して揺り返し量を推定し、最終カウンタ値ＶＣＡｆと推定した揺り返し量から停止時カウンタ値ＶＣＡｓｔを算出する方法も考えられる。こうした方法を採用している構成であっても、推定した揺り返し量を用いた態様で算出したポンプ駆動回数ＮＰと、揺り返し量を用いない上記の第２態様によって算出したポンプ駆動回数ＮＰとを比較して揺り返し量を補正することにより、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量のずれを抑制することができる。
【０１６４】
なお、クランクカウンタ値ＶＣＡはクランクシャフト１８の回動量に直接対応するものであるため、エアフロメータによって検出される逆流空気量に基づいて揺り返し量を推定するよりも、クランクカウンタ値ＶＣＡを利用して揺り返し量を推定する上記実施形態の態様の方が算出精度を高める上では有利になりやすい。
【０１６５】
・揺り返し量を回転角で表現した例を示したが、揺り返し量は必ずしも回転角でなくてもよい。例えば、揺り返し量をクランクカウンタにおけるカウント数で示すようにしてもよい。なお、この場合には、推定される揺り返し量はカウント数である。そのため、この場合には、停止時カウンタ値ＶＣＡｓｔは最終カウンタ値ＶＣＡｆから揺り返し量に相当するカウント数の分だけ、クランクカウンタを遡らせることによって算出することになる。
【０１６６】
・上記実施形態では、ポンプ駆動回数ＮＰの乖離を解消するのに必要な量に応じて、補正量を決定し、必要な量に応じた補正を行う例を示したが、補正の量はこのように可変でなくてもよい。例えば、ステップＳ６００の処理において否定判定がなされる（ステップＳ６００：ＮＯ）度に、一定量ずつ揺り返し量を補正するようにしてもよい。また、補正を繰り返すことも必須ではなく、一度だけ補正を行うようにしてもよい。補正を行うことにより、補正する前よりも乖離が小さくなれば、補正を行わない場合と比較して揺り返し量のずれによる悪影響を抑制する効果がある。
【０１６７】
・停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量をより小さくする補正と、停止時カウンタ値ＶＣＡｓｔの算出に用いる揺り返し量をより大きくする補正とのうち、いずれか一方のみを行うようにしてもよい。例えば、揺り返し量を一定量ずつ徐々に小さくする方向に第２マップを補正し、次第にずれが解消するような設計にする場合、揺り返し量を大きくする補正を行う構成を備えていなくてもよい。
【０１６８】
・上記実施形態では、筒内噴射による機関始動の実施可否を判定するためにポンプ駆動回数ＮＰを利用する例を示したが、ポンプ駆動回数ＮＰの利用態様はこうした態様に限定されない。例えば、ポンプ駆動回数ＮＰを用いて高圧系燃圧ＰＨを推定するようにしてもよい。この場合には、図１に二点鎖線で示すように、制御装置１００に燃圧推定部１０９を設ける。そして、制御装置１００の燃圧推定部１０９が、第１駆動回数算出部１０７によって算出されたポンプ駆動回数ＮＰに基づいて高圧系燃圧ＰＨを推定する。具体的には、燃圧推定部１０９は、ポンプ駆動回数ＮＰが多いほど、高圧系燃圧ＰＨが高くなっていると推定する。
【０１６９】
ポンプ駆動回数ＮＰが多いということは、高圧燃料ポンプ６０から送り出された燃料の量が多いことになるため、ポンプ駆動回数ＮＰは高圧系燃圧ＰＨと相関がある。そのため、上記のように、算出されたポンプ駆動回数ＮＰに基づいて高圧系燃圧ＰＨを推定することができる。こうした構成によれば、例えば、高圧系燃圧ＰＨを検出する高圧系燃圧センサ１８５に異常が生じている場合であっても、推定した高圧系燃圧ＰＨに基づいた制御を行うことができる。
【０１７０】
・上記のようにポンプ駆動回数ＮＰに基づいて高圧系燃圧ＰＨを推定する場合には、推定した高圧系燃圧ＰＨが規定圧力ＰＨｔｈ以上になっているときに、筒内噴射弁１５からの燃料噴射を開始させ、筒内噴射による始動を実施することもできる。すなわち、ステップＳ１３０の処理において、制御装置１００が燃圧推定部１０９によって推定した高圧系燃圧ＰＨが規定圧力ＰＨｔｈ以上であるか否かを判定するようにすればよい。
【０１７１】
こうした構成によれば、算出したポンプ駆動回数ＮＰに基づいて推定した高圧系燃圧ＰＨが規定圧力ＰＨｔｈ以上になり、高圧系燃圧ＰＨが高くなっていることが推定されるときに筒内噴射弁１５の燃料噴射が開始される。そのため、上記実施形態と同様に、高圧系燃圧ＰＨが低い状態で筒内噴射が実施されてしまうことを抑制することができる。
【０１７２】
・なお、推定した高圧系燃圧ＰＨの利用態様は上記のような利用態様には限定されない。例えば、推定した高圧系燃圧ＰＨに基づいて目標とする噴射量に応じた筒内噴射弁１５の開弁期間、すなわち燃料噴射時間の設定を行うようにしてもよい。
【０１７３】
・第１駆動回数算出部１０７が参照する第１マップとして、クランクシャフト１８が４回転する分の情報を記憶させた第１マップを記憶部１０２に記憶させ、クランクカウンタ値ＶＣＡが途中でリセットされる場合でもこの第１マップを利用することによってポンプ駆動回数ＮＰを算出できるようにした例を示した。しかし、ポンプ駆動回数ＮＰの算出方法はこうした方法に限定されない。
【０１７４】
例えば、クランクシャフト１８の２回転分の第１マップを記憶部１０２に記憶させておいた場合であっても、ポンプ駆動回数ＮＰ算出することができる。具体的には、判明したクランクカウンタ値ＶＣＡが停止時カウンタ値ＶＣＡｓｔよりも小さい場合には、カウント処理において、停止時カウンタ値ＶＣＡｓｔから「２３」までの間と、「０」から判明したクランクカウンタ値ＶＣＡまでの間とに分けてポンプＴＤＣに相当するクランクカウンタ値がいくつあるのかを探索するようにすればよい。この場合でも、探索された数を合計してポンプ駆動回数ＮＰにすることによって、ポンプ駆動回数ＮＰ算出することができる。
【０１７５】
・クランクカウンタ値ＶＣＡが判明した後に第１駆動回数算出部１０７が実行するカウント処理におけるポンプ駆動回数ＮＰの更新態様は上記の実施形態に示した態様に限らない。例えば、クランクカウンタ値ＶＣＡが一定回数更新される度に、ポンプＴＤＣに対応するクランク角を何回通過したかを、第１マップを参照して算出し、算出した回数を積算してポンプ駆動回数ＮＰを更新することもできる。
【０１７６】
・内燃機関１０が筒内噴射弁１５とポート噴射弁１４とを備えている例を示したが、内燃機関１０が、筒内噴射弁１５のみ、すなわち高圧側燃料供給系５１のみを備えている構成であってもよい。
【０１７７】
・内燃機関１０が、吸気側可変バルブタイミング機構２７と排気側可変バルブタイミング機構２８とを備えている例を示したが、上記のようにポンプ駆動回数ＮＰを算出する構成は、可変バルブタイミング機構を備えていない内燃機関に適用することもできる。
【０１７８】
具体的には、吸気側可変バルブタイミング機構２７のみを備えている構成や排気側可変バルブタイミング機構２８のみを備えている構成、さらには可変バルブタイミング機構を備えていない構成の内燃機関であっても上記のようにポンプ駆動回数ＮＰを算出する構成を適用することができる。
【０１７９】
・クランクカウンタ値ＶＣＡの表現は「１」、「２」、「３」、…といった１つずつカウントアップするものに限らない。例えば、対応するクランク角にあわせて「０」、「３０」、「６０」、…と３０ずつカウントアップさせるようにしてもよい。もちろん、クランク角と同じ３０ずつのカウントアップになっていなくてもよい。例えば「０」、「５」、「１０」、…と５つずつのカウントアップにしてもよい。
【０１８０】
・クランクカウンタ値ＶＣＡを３０°ＣＡ毎にカウントアップさせる例を示したが、クランクカウンタ値ＶＣＡのカウントアップのさせ方はこうした態様には限らない。例えば、１０°ＣＡ毎にカウントアップさせる構成を採用してもよいし、３０°ＣＡよりも長い間隔でカウントアップさせる構成を採用してもよい。すなわち、上記実施形態では、エッジが３つ計数される度にクランクカウンタをカウントアップさせ、クランクカウンタを３０°ＣＡ毎にカウントアップさせる構成を採用しているが、カウントアップに要するエッジの数は適宜変更してもよい。例えば、エッジが１つ計数される度にクランクカウンタをカウントアップさせ、１０°ＣＡ毎にクランクカウンタをカウントアップさせる構成を採用することもできる。
【符号の説明】
【０１８１】
１０…内燃機関、１１…燃焼室、１２…吸気通路、１３…吸気ポート、１４…ポート噴射弁、１５…筒内噴射弁、１６…点火装置、１７…ピストン、１８…クランクシャフト、１９…排気通路、２２…排気ポート、２３…吸気バルブ、２４…排気バルブ、２５…吸気カムシャフト、２６…排気カムシャフト、２７…吸気側可変バルブタイミング機構、２８…排気側可変バルブタイミング機構、２９…タイミングチェーン、３１…スロットルバルブ、５０…低圧側燃料供給系、５１…高圧側燃料供給系、５３…燃料タンク、５４…電動フィードポンプ、５５…フィルタ、５６…低圧燃料通路、５７…低圧側デリバリパイプ、５８…プレッシャレギュレータ、５９…分岐通路、６０…高圧燃料ポンプ、６１…パルセーションダンパ、６２…プランジャ、６３…燃料室、６４…電磁スピル弁、６５…チェック弁、６６…リリーフ弁、６７…ポンプカム、７０…高圧側デリバリパイプ、７１…接続通路、１００…制御装置、１０２…記憶部、１０３…クランクカウンタ算出部、１０４…停止時カウンタ値算出部、１０５…推定部、１０６…補正部、１０７…第１駆動回数算出部、１０８…第２駆動回数算出部、１０９…燃圧推定部、１１０…アクセルポジションセンサ、１２０…エアフロメータ、１３０…水温センサ、１３５…燃料温度センサ、１４０…車速センサ、１５０…クランクポジションセンサ、１５１…センサプレート、１５２…信号歯、１５３…欠け歯部、１６０…吸気側カムポジションセンサ、１６１…タイミングロータ、１６２…大突起部、１６３…中突起部、１６４…小突起部、１７０…排気側カムポジションセンサ。
【図１】
2020172890.tif 000003
【図２】
2020172890.tif 000004
【図３】
2020172890.tif 000005
【図４】
2020172890.tif 000006
【図５】
2020172890.tif 000007
【図６】
2020172890.tif 000008
【図７】
2020172890.tif 000009
【図８】
2020172890.tif 000010
【図９】
2020172890.tif 000011
【図１０】
2020172890.tif 000012
【図１１】
2020172890.tif 000013
【図１２】
2020172890.tif 000014
【図１３】
2020172890.tif 000015
【図１４】
2020172890.tif 000016
【図１５】
2020172890.tif 000017
【図１６】
2020172890.tif 000018
【図１７】
2020172890.tif 000019
【図１８】
2020172890.tif 000020