(57)【要約】【課題】エンジンにおける異常の有無を確認する診断処理の実行機会を増やし、速やかに診断を完了させることができるハイブリッド車両の制御装置を提供する。【解決手段】制御装置４００は、診断処理を実行する診断部を備えたエンジンコントロールユニット３００と、間欠停止禁止処理を実行する停止禁止部１０１を備えたシステムコントロールユニット１００とを備えている。診断部は、診断処理を通じて異常が有ると判定したときに仮判定フラグを不揮発性メモリ１０４に記憶させる。一方、診断部は、不揮発性メモリ１０４に仮判定フラグが記憶されている状態で診断処理を通じて異常が有ると判定したときに異常が有る旨の診断を下して不揮発性メモリ１０４から仮判定フラグを消去する。そして、停止禁止部１０１は、不揮発性メモリ１０４に仮判定フラグが記憶されているときに、間欠停止禁止処理を実行する。【選択図】図１
2020203606.tif 000002
【特許請求の範囲】
【請求項１】
エンジンとモータとを駆動力源として備えたハイブリッド車両に適用され、前記エンジンの運転を自動で停止させ、再始動させる間欠停止制御を実行するハイブリッド車両の制御装置であり、
前記エンジンが運転しているときに前記エンジンにおける異常の有無を確認する診断処理を実行する診断部と、
前記間欠停止制御による前記エンジンの運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部と、を備え、
前記診断部が、異常が発生しているおそれがあることを示す情報である仮判定フラグが不揮発性メモリに記憶されていない状態で前記診断処理を通じて異常が有ると判定したときに前記仮判定フラグを不揮発性メモリに記憶させる一方、前記不揮発性メモリに前記仮判定フラグが記憶されている状態で前記診断処理を通じて異常が有ると判定したときに異常が有る旨の診断を下して前記不揮発性メモリから前記仮判定フラグを消去し、
前記停止禁止部が、前記不揮発性メモリに前記仮判定フラグが記憶されているときに、前記間欠停止禁止処理を実行するハイブリッド車両の制御装置。
【請求項２】
前記停止禁止部が、車両のシステムメインスイッチがＯＮになっている期間を１つのトリップとして、前記仮判定フラグが記憶されていることによって前記間欠停止制御による前記エンジンの停止を禁止しているトリップが、規定回数継続した場合に、前記仮判定フラグが記憶されていることによる前記エンジンの停止の禁止を解除する請求項１に記載のハイブリッド車両の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はハイブリッド車両の制御装置に関するものである。
【背景技術】
【０００２】
特許文献１にはエンジンとモータとを備えたハイブリッド車両が開示されている。このハイブリッド車両は、エンジンを停止させてモータで走行することができ、エンジンを自動的に停止させ、再始動させる間欠停止制御を実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６６１９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
間欠停止制御を通じてエンジンが停止している場合には、エンジンが運転していないと検出することができない異常については、発生しているか否かの診断を行うことができない。
【課題を解決するための手段】
【０００５】
以下、上記課題を解決するための手段及びその作用効果について記載する。
上記課題を解決するためのハイブリッド車両の制御装置は、エンジンとモータとを駆動力源として備えたハイブリッド車両に適用され、前記エンジンの運転を自動で停止させ、再始動させる間欠停止制御を実行する。この制御装置は、前記エンジンが運転しているときに前記エンジンにおける異常の有無を確認する診断処理を実行する診断部と、前記間欠停止制御による前記エンジンの運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部と、を備えている。この制御装置では、前記診断部が、異常が発生しているおそれがあることを示す情報である仮判定フラグが不揮発性メモリに記憶されていない状態で前記診断処理を通じて異常が有ると判定したときに前記仮判定フラグを不揮発性メモリに記憶させる一方、前記不揮発性メモリに前記仮判定フラグが記憶されている状態で前記診断処理を通じて異常が有ると判定したときに異常が有る旨の診断を下して前記不揮発性メモリから前記仮判定フラグを消去する。そして、この制御装置では、前記停止禁止部が、前記不揮発性メモリに前記仮判定フラグが記憶されているときに、前記間欠停止禁止処理を実行する。
【０００６】
上記構成によれば、システムメインスイッチをＯＦＦにして給電が停止されても記憶を保持することのできる不揮発性メモリに仮判定フラグが記憶される。そのため、異常が有る旨の診断が下される前にハイブリッド車両のシステムメインスイッチがＯＦＦにされてしまったとしても、ハイブリッド車両のシステムメインスイッチが次にＯＮにされたときには、不揮発性メモリに記憶されている仮判定フラグに基づいて診断の途中であったことを認識できる。
【０００７】
そして、仮判定フラグが記憶されているときには停止禁止部により間欠停止制御によるエンジンの運転の停止が禁止される。そのため、診断の途中でシステムメインスイッチがＯＦＦにされた場合でも、次にシステムメインスイッチがＯＮにされたときにはエンジンの運転が開始されると即座に間欠停止制御によるエンジンの運転の停止が禁止され、エンジンの運転が継続するようになる。したがって、間欠停止制御によるエンジンの運転の停止が禁止されていない場合と比較して診断処理の実行機会が増え、速やかに診断を完了させることができる。
【０００８】
ハイブリッド車両の制御装置の一態様では、前記停止禁止部が、車両のシステムメインスイッチがＯＮになっている期間を１つのトリップとして、前記仮判定フラグが記憶されていることによって前記間欠停止制御による前記エンジンの停止を禁止しているトリップが、規定回数継続した場合に、前記仮判定フラグが記憶されていることによる前記エンジンの停止の禁止を解除する。
【０００９】
間欠停止制御によるエンジンの運転の停止を禁止すると、エンジンの運転が継続するため、燃料の消費量が増えてしまう。すなわち、間欠停止制御によって得られるはずの燃料消費量を抑制する効果が得られなくなってしまう。これに対して、上記構成によれば、仮判定フラグが記憶されていることによってエンジンの停止を禁止しているトリップが規定回数を超えて継続することを抑制することができる。したがって、診断の実行機会の確保と燃料消費量の抑制との調和を図り、燃料消費量が過度に増えてしまうことを抑制できる。
【図面の簡単な説明】
【００１０】
【図１】制御装置と、ハイブリッド車両との関係を示す模式図。
【図２】ハイブリッド車両におけるエンジンの構成を示す模式図。
【図３】エンジンコントロールユニットと、オイルポンプとの関係を示す模式図。
【図４】エンジンコントロールユニットと、エンジンにおける冷却水の循環システムの模式図。
【図５】クランクポジションセンサとセンサプレートとの関係を示す模式図。
【図６】クランクポジションセンサから出力されるクランク角信号の波形を示すタイミングチャート。
【図７】吸気側のカムポジションセンサとタイミングロータとの関係を示す模式図。
【図８】吸気側のカムポジションセンサから出力される吸気側カム角信号の波形を示すタイミングチャート。
【図９】クランク角信号と、カム角信号と、クランクカウンタとの関係を示すタイミングチャート。
【図１０】仮判定ルーチンにおける処理の流れを示すフローチャート。
【図１１】本判定ルーチンにおける処理の流れを示すフローチャート。
【図１２】診断処理に伴う間欠停止禁止処理の流れを示すフローチャート。
【図１３】診断処理に伴う間欠停止禁止を解除する処理の流れを示すフローチャート。
【図１４】車速閾値を算出する処理の流れを示すフローチャート。
【図１５】車速による間欠停止禁止処理の流れを示すフローチャート。
【図１６】カムポジションセンサが故障している状態での始動時に実行する処理の流れを示すフローチャート。
【図１７】カムポジションセンサが故障している状態での運転中に実行する処理の流れを示すフローチャート。
【図１８】変更例としての制御装置と、１モータハイブリッド車両との関係を示す模式図。
【図１９】カムポジションセンサが故障している状態での運転中に変更例の制御装置が実行する処理の流れを示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、ハイブリッド車両の制御装置の一実施形態について、図１〜図１７を参照して説明する。
図１に示すように、ハイブリッド車両１０は、エンジン５０を備えている。また、ハイブリッド車両１０は、電力を蓄えるバッテリ３０を備えている。さらにハイブリッド車両１０は、第１モータジェネレータ１１と第２モータジェネレータ１２とを備えている。これら第１モータジェネレータ１１及び第２モータジェネレータ１２は、バッテリ３０からの給電に応じて駆動力を発生するモータであり、外部からの動力を受けてバッテリ３０に充電する電力を発電する発電機としての機能も兼ね備えている。
【００１２】
さらに、ハイブリッド車両１０には、サンギア１４、プラネタリキャリア１５、リングギア１６の３つの回転要素を有する遊星ギア機構１３が設けられている。遊星ギア機構１３のプラネタリキャリア１５には、エンジン５０の出力軸であるクランクシャフト５９が連結されており、遊星ギア機構１３のサンギア１４には第１モータジェネレータ１１が連結されている。また、遊星ギア機構１３のリングギア１６には、カウンタドライブギア１７が一体に設けられている。カウンタドライブギア１７には、カウンタドリブンギア１８が噛み合わされている。そして、第２モータジェネレータ１２は、このカウンタドリブンギア１８に噛み合わされたリダクションギア１９に連結されている。
【００１３】
カウンタドリブンギア１８には、ファイナルドライブギア２０が一体回転可能に連結されている。ファイナルドライブギア２０には、ファイナルドリブンギア２１が噛み合わされている。そして、ファイナルドリブンギア２１には、差動機構２２を介して、車輪２３の駆動軸２４が連結されている。
【００１４】
このハイブリッド車両１０を制御する制御装置４００は、システムコントロールユニット１００と、パワーコントロールユニット２００と、エンジンコントロールユニット３００とによって構成されている。
【００１５】
第１モータジェネレータ１１及び第２モータジェネレータ１２は、システムコントロールユニット１００と接続されたパワーコントロールユニット２００を介してバッテリ３０に接続されている。パワーコントロールユニット２００は、制御部とインバータとコンバータとを含んでおり、システムコントロールユニット１００からの指令に基づいてバッテリ３０から第１モータジェネレータ１１及び第２モータジェネレータ１２への給電量と、第１モータジェネレータ１１及び第２モータジェネレータ１２からバッテリ３０への充電量とを調整する。なお、ハイブリッド車両１０には外部電源４０と接続可能なコネクタ３１が設けられている。そのため、バッテリ３０は、外部電源４０からの供給電力によっても充電可能である。すなわち、ハイブリッド車両１０は、プラグインハイブリッド車である。
【００１６】
システムコントロールユニット１００には、エンジン５０を制御するエンジンコントロールユニット３００も接続されている。エンジンコントロールユニット３００は、システムコントロールユニット１００からの指令に基づいてエンジン５０を制御する。
【００１７】
図２に示すように、エンジン５０は、燃焼室５５に導入される吸気が流れる吸気通路５１と、燃焼室５５から排出された排気が流れる排気通路６０とを有している。そして、エンジン５０には、燃料タンク７０から供給された燃料を噴射する燃料噴射弁５４と、燃料噴射弁５４が噴射した燃料と空気との混合気を火花放電により点火する点火プラグ５８とが設けられている。
【００１８】
吸気通路５１には、上流側から順に、エアクリーナ５２、エアフロメータ８８、スロットル弁５３、吸気圧センサ８９、燃料噴射弁５４が配置されている。エアクリーナ５２は、吸気通路５１に吸入された大気中の粉塵などを捕集する。エアフロメータ８８は、吸気の量である吸入空気量を検出する。スロットル弁５３は、電動のアクチュエータであるモータによって駆動される。エンジン５０では、スロットル弁５３の開度の変更によって吸気の流れる流路の面積を増減することで吸入空気量を調整する。吸気圧センサ８９は、吸気通路５１におけるスロットル弁５３よりも下流側の部分の圧力である吸気圧を検出する。燃料噴射弁５４は、吸気中に燃料を噴射して、燃焼室５５内で燃焼する混合気を形成する。
【００１９】
燃料タンク７０内には、燃料ポンプ７１が配置されている。燃料ポンプ７１はモータによって駆動される。燃料ポンプ７１によって汲み上げられた燃料はフィルタ７２を通過して燃料供給通路７３を通じて燃料噴射弁５４に供給される。燃料供給通路７３には燃料の圧力を検出する燃圧センサ８７が設けられている。
【００２０】
燃料タンク７０内の燃料供給通路７３におけるフィルタ７２よりも下流側の部分からは燃料ポンプ７１が汲み上げた燃料を燃料タンク７０内に戻すリターン通路７５が分岐している。リターン通路７５の途中には電動リリーフ弁７４が設けられている。電動リリーフ弁７４は電動のアクチュエータによって開閉される。電動リリーフ弁７４が開弁していると、燃料供給通路７３内の燃料がリターン通路７５を通じて燃料タンク７０内に排出される。
【００２１】
図２に示すように燃焼室５５には、電気火花により混合気に点火する点火プラグ５８が設置されている。また、点火プラグ５８には、イグナイタ５７が設置されている。イグナイタ５７は、電気火花の形成に必要な高電圧を発生する。
【００２２】
排気通路６０には、上流側から順に、空燃比センサ８３、第１三元触媒６１、酸素センサ８４、第２三元触媒６２が設置されている。空燃比センサ８３は、燃焼室５５から排出された排気の酸素濃度を、ひいては燃焼室５５内で燃焼した混合気の空燃比を検出する。第１三元触媒６１及び第２三元触媒６２は、排気を清浄化する。酸素センサ８４は、第１三元触媒６１を通過した後の排気の酸素濃度に応じた信号を出力する。
【００２３】
エンジン５０には吸気通路５１と燃焼室５５とを遮断する吸気弁６６の開閉タイミングを変更する吸気側のバルブタイミング変更機構５６と、排気通路６０と燃焼室とを遮断する排気弁６７の開閉タイミングを変更する排気側のバルブタイミング変更機構５６とが設けられている。いずれのバルブタイミング変更機構５６も電動のモータによって駆動されてクランクシャフト５９の回転位相に対するカムシャフト９１の回転位相を変更する。
【００２４】
また、エンジン５０には、排気通路６０を流れる排気の一部を、吸気通路５１を流れる吸気中に再循環させる排気再循環システムが設けられている。排気再循環システムは、排気通路６０と吸気通路５１とを繋ぐＥＧＲ通路６４を有している。ＥＧＲ通路６４は、排気通路６０における第１三元触媒６１よりも下流側の部分と、吸気通路５１におけるスロットル弁５３よりも下流側の部分とを繋いでいる。ＥＧＲ通路６４には、排気通路６０から吸気通路５１に再循環されるガスを冷却するＥＧＲクーラ６３と、再循環させるガスの量を調整するＥＧＲ弁６５とが配置されている。なお、ＥＧＲ弁６５は電動のモータによって駆動される。
【００２５】
また、図３に示すように、エンジン５０には、エンジン５０の各部にオイルを循環させるオイルポンプ１７０が設けられている。なお、オイルポンプ１７０は、クランクシャフト５９の動力によって駆動される。
【００２６】
オイルポンプ１７０は、一回転当たりの吐出量を変更することができる可変容量型のオイルポンプである。オイルポンプ１７０では、オイルコントロールバルブ１７１によって制御される制御油圧によって一回転当たりの吐出量が変化する。エンジンコントロールユニット３００は、オイルコントロールバルブ１７１を制御することによってオイルポンプ１７０からのオイルの吐出量を制御し、エンジン５０の各部に循環させるオイルの油圧を制御する。
【００２７】
オイルポンプ１７０は、オイルパン１７３に貯留されているオイルを、ストレーナ１７４を介して吸い上げる。そして、吸い上げたオイルを、オイル供給通路１７５を通じてエンジン５０の各部に供給する。オイル供給通路１７５の途中からは、オイル還流通路１７６が分岐している。オイル還流通路１７６は、オイルコントロールバルブ１７１に繋がっている。オイル還流通路１７６は、オイルポンプ１７０から吐出されたオイルの一部をオイルコントロールバルブ１７１に還流させる。
【００２８】
オイルコントロールバルブ１７１には、オイルポンプ１７０の吐出量を変更するための制御油圧が作用する制御油室に繋がっている吐出通路１７８と、オイルパン１７３に繋がっている排出通路１７９とが接続されている。オイルコントロールバルブ１７１は、内蔵されているスプール弁を、電動のアクチュエータによって駆動し、オイル還流通路１７６を通じて還流してきたオイルをオイルポンプ１７０の制御油室に供給することによって、制御油室内の制御油圧を高める。また、オイルコントロールバルブ１７１は、スプール弁を駆動し、制御油室内のオイルを、排出通路１７９を通じてオイルパン１７３に排出することによって、制御油室内の制御油圧を低下させる。また、オイルコントロールバルブ１７１は、スプール弁によって吐出通路１７８及び排出通路１７９を閉塞し、制御油室内の制御油圧を保持することもできる。
【００２９】
エンジンコントロールユニット３００は、オイルポンプ１７０の回転速度と相関を有するクランクシャフト５９の回転速度と、油圧センサ９３が検出した油圧の値とに基づいてオイルコントロールバルブ１７１を制御し、エンジン５０の各部に供給しているオイルの油圧をフィードバック制御する。要求油圧が低いときには、一回転あたりのオイルの吐出量を少なくして、オイルポンプ１７０の駆動に伴うエネルギ消費を抑制する。なお、要求油圧は、エンジン５０の運転状態や、オイルの需要部である各デバイスの稼働状況などに基づいてエンジンコントロールユニット３００によって算出される。
【００３０】
また、図４に示すように、エンジン５０には、ウォータポンプ１８０が設けられており、ラジエータ１８１を備えた放熱回路に冷却水を循環させる冷却システムが設けられている。
【００３１】
ウォータポンプ１８０は、エンジン５０内のウォータジャケットに冷却水を導入する導入通路１８４の途中に設けられている。ウォータポンプ１８０から吐出された冷却水は、エンジン５０内のウォータジャケットを通過して、排出通路１８５に排出される。排出通路１８５はラジエータ１８１の入口に繋がっている。ラジエータ１８１の出口にはサーモスタット１８３に繋がる吸入通路１８６が接続されている。
【００３２】
ラジエータ１８１には、ファン１８２が設けられており、ファン１８２によって吸引された空気がラジエータ１８１を通過することによってラジエータ１８１内を流れる冷却水と空気との熱交換が促進される。これにより、ラジエータ１８１を通過することによって冷却水の熱が放熱され、冷却水の温度が低下する。
【００３３】
ラジエータ１８１を通過した冷却水は、吸入通路１８６及びサーモスタット１８３を通じて導入通路１８４に流れ込み、ウォータポンプ１８０に吸入される。サーモスタット１８３には、排出通路１８５から分岐したバイパス通路１８７も接続されている。サーモスタット１８３は、バイパス通路１８７を通じて導入される冷却水の温度に応じて動作する。
【００３４】
具体的には、サーモスタット１８３は、バイパス通路１８７を通じて導入される冷却水の温度、すなわちエンジン５０のウォータジャケットから排出された冷却水の温度が暖機判定温度未満であるときには、吸入通路１８６が接続されている部分を閉塞し、バイパス通路１８７と導入通路１８４とを連通させる。なお、暖機判定温度は、冷却水の温度が暖機判定温度以上であれば、エンジン５０の暖機が完了していると判定することのできる温度であり、例えば、８０℃前後の値である。
【００３５】
こうしてサーモスタット１８３において吸入通路１８６が接続されている部分が閉塞されている場合には、ラジエータ１８１を通過する冷却水の流れは生じない。その結果、排出通路１８５を通じて排出された冷却水は、全量がバイパス通路１８７及びサーモスタット１８３を通じて導入通路１８４に流れ込み、再びエンジン５０のウォータジャケットに導入される。これにより、冷却水からの放熱が抑制され、エンジン５０の暖機が促進される。
【００３６】
一方、サーモスタット１８３は、バイパス通路１８７を通じて導入される冷却水の温度が暖機判定温度以上であるときには、吸入通路１８６が接続されている部分を開放し、吸入通路１８６と導入通路１８４とを連通させる。こうして吸入通路１８６が接続されている部分が開放されている場合には、ラジエータ１８１を通過する冷却水の流れが生じる。その結果、排出通路１８５を通じて排出された冷却水はラジエータ１８１を通過して吸入通路１８６及びサーモスタット１８３を通じて導入通路１８４に流れ込み、再びエンジン５０のウォータジャケットに導入される。これにより、ラジエータ１８１において冷却水の熱が放熱され、温度の低下した冷却水がウォータジャケットに導入されるようになる。そのため、エンジン５０の過熱が抑制される。
【００３７】
なお、図４に示すように、ウォータジャケットの出口付近には、水温センサ８１が設けられており、ウォータジャケットを通過して温められた冷却水の温度を検出する。
こうしたエンジン５０は、システムコントロールユニット１００からの指令に応じてエンジンコントロールユニット３００により制御される。エンジンコントロールユニット３００には、エンジン５０の運転状態を検出する各種センサの検出信号が入力されている。エンジンコントロールユニット３００に検出信号を入力するセンサには、エアフロメータ８８、吸気圧センサ８９、空燃比センサ８３、酸素センサ８４、燃圧センサ８７も含まれている。その他に、エンジン５０には、クランクシャフト５９の回転角を検出するクランクポジションセンサ１５０、エンジン５０の冷却水の温度を検出する水温センサ８１、そして、排気通路６０を流れて第１三元触媒６１に導入される排気の温度を検出する排気温センサ８２が設けられている。また、エンジン５０には、ノッキングの発生を検出するノックセンサ９０と、油圧を検出する油圧センサ９３も設けられている。なお、クランクポジションセンサ１５０は、クランクシャフト５９の回転位相の変化に応じたクランク角信号を出力する。
【００３８】
また、エンジン５０には、吸気弁６６を開閉させる吸気側のカムシャフト９１の回転位相を検出する吸気側のカムポジションセンサ１６０と、排気弁６７を開閉させる排気側のカムシャフト９１の回転位相を検出する排気側のカムポジションセンサ１６０の２つのカムポジションセンサ１６０も設けられている。カムポジションセンサ１６０はエンジン５０のカムシャフト９１の回転位相の変化に応じたカム角信号を出力する。
【００３９】
エンジンコントロールユニット３００には、これらのセンサの検出信号が入力されている。エンジンコントロールユニット３００は、クランクポジションセンサ１５０から入力されるクランクシャフト５９の回転角の検出信号に基づいてクランクシャフト５９の回転速度である機関回転速度を算出する。
【００４０】
また、図１に示すように、システムコントロールユニット１００には、アクセルの操作量を検出するアクセルポジションセンサ８５と、車速を検出する車速センサ８６とが接続されている。そして、アクセルポジションセンサ８５の検出信号と車速センサ８６の検出信号はシステムコントロールユニット１００に入力されている。システムコントロールユニット１００には、システムメインスイッチ１２０も接続されている。
【００４１】
また、パワーコントロールユニット２００には、バッテリ３０の電流、電圧及び温度が入力されている。パワーコントロールユニット２００は、これら電流、電圧及び温度に基づき、バッテリ３０の充電容量に対する充電残量の比率である充電状態指標値ＳＯＣを算出している。
【００４２】
エンジンコントロールユニット３００とパワーコントロールユニット２００は、それぞれシステムコントロールユニット１００に接続されている。そして、システムコントロールユニット１００とパワーコントロールユニット２００とエンジンコントロールユニット３００とのそれぞれが、センサから入力された検出信号に基づく情報や算出した情報を相互にやりとりし、共有している。
【００４３】
システムコントロールユニット１００は、これらの情報に基づき、エンジンコントロールユニット３００に指令を出力し、エンジンコントロールユニット３００を通じてエンジン５０を制御する。また、システムコントロールユニット１００は、これらの情報に基づき、パワーコントロールユニット２００に指令を出力し、パワーコントロールユニット２００を通じて第１モータジェネレータ１１及び第２モータジェネレータ１２の制御と、バッテリ３０の充電制御とを行う。このようにシステムコントロールユニット１００は、パワーコントロールユニット２００とエンジンコントロールユニット３００とに指令を出力することによりハイブリッド車両１０を制御する。
【００４４】
続いて、こうしたシステムコントロールユニット１００と、パワーコントロールユニット２００と、エンジンコントロールユニット３００とからなる制御装置４００が行うハイブリッド車両１０の制御について詳しく説明する。
【００４５】
システムコントロールユニット１００は、アクセルの操作量と車速とに基づき、ハイブリッド車両１０の出力の要求値である要求出力を演算する。そして、システムコントロールユニット１００は、要求出力やバッテリ３０の充電状態指標値ＳＯＣなどに応じて、エンジン５０、第１モータジェネレータ１１及び第２モータジェネレータ１２のトルク配分を決定し、エンジン５０の出力と、第１モータジェネレータ１１、第２モータジェネレータ１２による力行／回生とを制御する。なお、システムコントロールユニット１００は、充電状態指標値ＳＯＣの大きさによってハイブリッド車両１０の走行モードを切り替える。
【００４６】
システムコントロールユニット１００は、充電状態指標値ＳＯＣが一定の水準を超えており、バッテリ３０の充電残量に充分な余裕がある場合には、エンジン５０を作動させずに、第２モータジェネレータ１２による駆動力や第１モータジェネレータ１１による駆動力によって走行するＥＶ走行モードを選択する。
【００４７】
一方で、システムコントロールユニット１００は、充電状態指標値ＳＯＣが一定の水準以下になった場合には、第１モータジェネレータ１１及び第２モータジェネレータ１２に加えて、エンジン５０を使用して走行するＨＶ走行モードを選択する。
【００４８】
なお、システムコントロールユニット１００は、充電状態指標値ＳＯＣが一定の水準を超えている場合であっても、次のような場合には、ＨＶ走行モードを選択する。
・車速がＥＶ走行モードの上限車速を超えているとき。
【００４９】
・アクセルの操作量が大きい急加速のときなど、一時的に大きな出力が必要なとき。
・エンジン５０の始動が必要なとき。
システムコントロールユニット１００は、ＨＶ走行モードを選択している場合には、エンジン５０を始動させる際に第１モータジェネレータ１１をスタータモータとして機能させる。具体的には、システムコントロールユニット１００は、第１モータジェネレータ１１によってサンギア１４を回転させることによりクランクシャフト５９を回転させてエンジン５０を始動する。
【００５０】
また、システムコントロールユニット１００は、ＨＶ走行モードを選択している場合には、充電状態指標値ＳＯＣの大きさに応じて停車時の制御を切り替える。具体的には、充電状態指標値ＳＯＣが閾値以上である場合には、システムコントロールユニット１００は、エンジン５０の運転を停止させ、第１モータジェネレータ１１及び第２モータジェネレータ１２の駆動も行わない。すなわち、システムコントロールユニット１００は、停車時にエンジン５０の運転を停止させてアイドリング運転を抑制する。なお、バッテリ３０の充電状態指標値ＳＯＣが閾値未満である場合には、システムコントロールユニット１００は、エンジン５０を運転させ、エンジン５０の出力によって第１モータジェネレータ１１を駆動して第１モータジェネレータ１１を発電機として機能させる。
【００５１】
システムコントロールユニット１００は、ＨＶ走行モードを選択している場合には、走行中にも充電状態指標値ＳＯＣに応じて制御を切り替える。発進時及び軽負荷走行時において、バッテリ３０の充電状態指標値ＳＯＣが閾値以上である場合には、システムコントロールユニット１００は、第２モータジェネレータ１２の駆動力のみによってハイブリッド車両１０の発進及び走行を行う。この場合、エンジン５０は停止しており、第１モータジェネレータ１１による発電も行われない。一方で発進時及び軽負荷走行時において、バッテリ３０の充電状態指標値ＳＯＣが閾値未満である場合には、システムコントロールユニット１００は、エンジン５０を始動して第１モータジェネレータ１１で発電を行い、発電した電力をバッテリ３０に充電する。このときには、ハイブリッド車両１０は、エンジン５０の駆動力の一部と第２モータジェネレータ１２の駆動力とによって走行する。定常走行時において、バッテリ３０の充電状態指標値ＳＯＣが閾値以上である場合には、システムコントロールユニット１００は、運転効率の高い状態でエンジン５０を運転させ、ハイブリッド車両１０を主にエンジン５０の出力で走行させる。このときには、エンジン５０の動力は遊星ギア機構１３を介して車輪２３側と第１モータジェネレータ１１側とに分割される。これにより、ハイブリッド車両１０は、第１モータジェネレータ１１で発電を行いながら走行する。そして、システムコントロールユニット１００は発電した電力によって第２モータジェネレータ１２を駆動し、第２モータジェネレータ１２の動力によってエンジン５０の動力を補助する。一方で定常走行時において、バッテリ３０の充電状態指標値ＳＯＣが閾値未満である場合には、システムコントロールユニット１００は機関回転速度をより高くし、第１モータジェネレータ１１で発電された電力を第２モータジェネレータ１２の駆動に使用するとともに、余剰の電力をバッテリ３０に充電する。なお、加速時には、システムコントロールユニット１００は機関回転速度を高めるとともに、第１モータジェネレータ１１で発電された電力を第２モータジェネレータ１２の駆動に使用し、エンジン５０の動力と第２モータジェネレータ１２の動力とによってハイブリッド車両１０を加速させる。そして、システムコントロールユニット１００は減速時には、エンジン５０の運転を停止させる。そして、システムコントロールユニット１００は第２モータジェネレータ１２を発電機として機能させ、発電した電力をバッテリ３０に充電する。ハイブリッド車両１０では、こうした発電によって生じる抵抗をブレーキとして利用する。こうした減速時の発電制御を回生制御という。
【００５２】
このように、システムコントロールユニット１００は、ＥＶ走行モードを選択している場合にはもちろんのこと、ＨＶ走行モードを選択している場合にも状況に応じてエンジン５０を停止させる。すなわち、システムコントロールユニット１００は、状況に応じてエンジン５０を自動で停止させ、再始動させる間欠停止制御を実行する。
【００５３】
図２に示すように、エンジンコントロールユニット３００は、クランクシャフト５９の回転位相であるクランク角を示すクランクカウンタを算出するカウンタ算出部３０２を備えている。カウンタ算出部３０２は、クランク角信号、吸気側カム角信号、及び排気側カム角信号に基づき、クランクカウンタを算出する。エンジンコントロールユニット３００は、カウンタ算出部３０２が算出するクランクカウンタを参照して各気筒に対する燃料噴射や点火のタイミングを制御するとともに、バルブタイミング変更機構５６を制御する。
【００５４】
具体的には、エンジンコントロールユニット３００は、アクセルの操作量、車速、吸入空気量、機関回転速度及び機関負荷率などに基づいて、燃料噴射量についての制御目標値である目標燃料噴射量を算出する。なお、機関負荷率は、基準流入空気量に対する１気筒の１燃焼サイクル当たりの流入空気量の比である。ここで、基準流入空気量は、スロットル弁５３の開度を最大にしたときの１気筒の１燃焼サイクル当たりの流入空気量であり、機関回転速度に応じて決められている。エンジンコントロールユニット３００は、基本的には、空燃比が理論空燃比になるように目標燃料噴射量を算出する。そして、燃料噴射時期や燃料噴射時間についての制御目標値を算出する。燃料噴射弁５４は、これらの制御目標値に応じたかたちで開弁駆動される。これにより、エンジン５０の運転状態に見合う量の燃料が噴射されて、燃焼室５５に供給される。
【００５５】
エンジンコントロールユニット３００は、点火プラグ５８による火花放電の時期である点火時期を算出してイグナイタ５７を操作し、混合気に点火する。
エンジンコントロールユニット３００は、機関回転速度と機関負荷率に基づいて、クランクシャフト５９に対する吸気側のカムシャフト９１の位相の目標値と、クランクシャフト５９に対する排気側のカムシャフト９１の位相の目標値を算出し、吸気側のバルブタイミング変更機構５６と排気側のバルブタイミング変更機構５６とを操作する。これにより、エンジンコントロールユニット３００は、吸気弁６６の開閉タイミングと、排気弁６７の開閉タイミングとを制御する。例えば、エンジンコントロールユニット３００は、排気弁６７及び吸気弁６６の双方が開弁している期間であるバルブオーバーラップを制御する。
【００５６】
次に、クランクポジションセンサ１５０や、カムポジションセンサ１６０について詳しく説明し、クランクカウンタを算出する方法について説明する。
まず、図５及び図６を参照してクランクポジションセンサ１５０について説明する。図５はクランクポジションセンサ１５０とクランクシャフト５９に取り付けられたセンサプレート１５１との関係を示している。そして、図６のタイミングチャートはクランクポジションセンサ１５０によって出力されるクランク角信号の波形を示している。
【００５７】
図５に示すように、クランクシャフト５９には円盤状のセンサプレート１５１が取り付けられている。センサプレート１５１の周縁部には角度にして５°の幅の信号歯１５２が５°の間隔を開けて３４個並べて配設されている。そのため、図５の右側に示されているように、センサプレート１５１には、隣り合う信号歯１５２同士の間隔が角度にして２５°になっていて他の部分と比較して信号歯１５２が２つ欠けたようになっている欠け歯部１５３が１箇所形成されている。
【００５８】
図５に示すように、クランクポジションセンサ１５０は、このセンサプレート１５１の信号歯１５２と対向するようにセンサプレート１５１の周縁部に向けて配設されている。
クランクポジションセンサ１５０は、磁石と磁気抵抗素子を内蔵したセンサ回路からなる磁気抵抗素子タイプのセンサである。クランクシャフト５９の回転に伴ってセンサプレート１５１が回転すると、それに伴ってセンサプレート１５１の信号歯１５２とクランクポジションセンサ１５０とが近接したり、離間したりするようになる。これにより、クランクポジションセンサ１５０内の磁気抵抗素子にかかる磁界の方向が変化し、磁気抵抗素子の内部抵抗が変化する。センサ回路はこの抵抗値変化を電圧に変換した波形と閾値との大小関係を比較してその波形を第１の信号であるＬｏ信号と第２の信号であるＨｉ信号とによる矩形波に整形し、クランク角信号として出力する。
【００５９】
図６に示すように、具体的には、クランクポジションセンサ１５０は、信号歯１５２と対向しているときにＬｏ信号を出力し、信号歯１５２同士の間の空隙部分と対向しているときにＨｉ信号を出力する。そのため、欠け歯部１５３に対応するＨｉ信号が検出されると、そのあと信号歯１５２に対応するＬｏ信号が検出される。そして、それからは１０°ＣＡ毎に信号歯１５２対応するＬｏ信号が検出される。こうして３４個のＬｏ信号が検出されたあと、再び欠け歯部１５３に対応するＨｉ信号が検出される。そのため、欠け歯部１５３に対応するＨｉ信号を挟んで次の信号歯１５２に対応するＬｏ信号が検出されるまでの回転角はクランク角にして３０°ＣＡである。
【００６０】
図６に示すように、欠け歯部１５３に対応するＨｉ信号に続いて信号歯１５２に対応するＬｏ信号が検出されてから、次に欠け歯部１５３に対応するＨｉ信号に続いてＬｏ信号が検出されるまでの間隔は、クランク角にして３６０°ＣＡになっている。
【００６１】
カウンタ算出部３０２は、Ｈｉ信号からＬｏ信号に変化するエッジを計数することによりクランクカウンタを算出する。また、他のＨｉ信号よりも間隔の長い欠け歯部１５３に対応するＨｉ信号が検出されたことに基づいて、クランクシャフト５９の回転位相が欠け歯部１５３に対応する回転位相であることを検知する。
【００６２】
次に、図７を参照してカムポジションセンサ１６０について説明する。なお、吸気側のカムポジションセンサ１６０と排気側のカムポジションセンサ１６０は、いずれもがクランクポジションセンサ１５０と同様の磁気抵抗素子タイプのセンサである。吸気側のカムポジションセンサ１６０と排気側のカムポジションセンサ１６０とは、検知する対象が異なるだけであるため、ここでは吸気側のカムポジションセンサ１６０によって検出される吸気側カム角信号について詳しく説明する。
【００６３】
図７は吸気側のカムポジションセンサ１６０と吸気側のカムシャフト９１に取り付けられているタイミングロータ１６１との関係を示しており、図８のタイミングチャートは吸気側のカムポジションセンサ１６０から出力される吸気側カム角信号の波形を示している。
【００６４】
図７に示すように、タイミングロータ１６１には、周方向における占有範囲の広さが互いに異なる３つの突起部である大突起部１６２と中突起部１６３と小突起部１６４とが設けられている。
【００６５】
最も大きな大突起部１６２はタイミングロータ１６１の周方向において角度にして９０°に亘って広がるように形成されている。これに対して、最も小さな小突起部１６４は角度にして３０°に亘って広がるように形成されており、大突起部１６２よりも小さく且つ小突起部１６４よりも大きい中突起部１６３は６０°に亘って広がるように形成されている。
【００６６】
そして、図７に示すように、タイミングロータ１６１では、大突起部１６２、中突起部１６３、小突起部１６４がそれぞれ所定の間隔を隔てて配設されている。具体的には、大突起部１６２と中突起部１６３とは角度にして６０°の間隔を隔てて配設されており、中突起部１６３と小突起部１６４とは角度にして９０°の間隔を隔てて配設されている。そして、大突起部１６２と小突起部１６４とは角度にして３０°の間隔を隔てて配設されている。
【００６７】
図７に示すように、カムポジションセンサ１６０は、このタイミングロータ１６１の回転に伴い、大突起部１６２及び中突起部１６３及び小突起部１６４と対向するようにタイミングロータ１６１の周縁部に向けて配設されている。カムポジションセンサ１６０は、クランクポジションセンサ１５０と同様にＬｏ信号とＨｉ信号を出力する。
【００６８】
具体的には、図８に示すように、カムポジションセンサ１６０は、大突起部１６２、中突起部１６３、小突起部１６４と対向しているときにＬｏ信号を出力し、各突起部の間の空隙部分と対向しているときにＨｉ信号を出力する。カムシャフト９１は、クランクシャフト５９が２回転する間に１回転する。そのため、吸気側カム角信号及び排気側カム角信号の変化はクランク角にして７２０°ＣＡの周期で一定の変化を繰り返す。
【００６９】
図８に示すように、大突起部１６２に対応する１８０°ＣＡに亘って継続するＬｏ信号が出力されたあとには、６０°ＣＡに亘って継続するＨｉ信号が出力され、そのあとに小突起部１６４に対応する６０°ＣＡに亘って継続するＬｏ信号が出力される。そして、そのあとに、１８０°ＣＡに亘って継続するＨｉ信号が出力され、それに続いて中突起部１６３に対応する１２０°ＣＡに亘って継続するＬｏ信号が出力される。そして、最後に１２０°ＣＡに亘って継続するＨｉ信号が出力されたあと、再び大突起部１６２に対応する１８０°ＣＡに亘って継続するＬｏ信号が出力されるようになる。
【００７０】
このように吸気側カム角信号は一定の変化パターンで周期的に変化するため、エンジンコントロールユニット３００は、このカム角信号の変化パターンを認識することにより、カムシャフト９１がどの回転位相にあるのかを検知することができる。例えば、６０°ＣＡに相当する長さのＬｏ信号が出力されたあとＨｉ信号に切り替わったときには、エンジンコントロールユニット３００は、それに基づいて小突起部１６４がカムポジションセンサ１６０の前を通過した直後の回転位相であることを検知することができる。
【００７１】
エンジン５０では、排気側のカムシャフト９１にも、同一の形状のタイミングロータ１６１が取り付けられている。そのため、排気側のカムポジションセンサ１６０によって検出される排気側カム角信号も、図８に示した吸気側カム角信号と同様の変化パターンで周期的に変化する。したがって、排気側のカムポジションセンサ１６０から出力される排気側カム角信号の変化パターンを認識することにより、エンジンコントロールユニット３００は排気側のカムシャフト９１がどの回転位相にあるのかを検知することができる。
【００７２】
また、排気側のカムシャフト９１に取り付けられているタイミングロータ１６１は、吸気側のカムシャフト９１に取り付けられるタイミングロータ１６１に対して位相をずらして取り付けられている。具体的には、排気側のカムシャフト９１に取り付けられているタイミングロータ１６１は、吸気側のカムシャフト９１に取り付けられているタイミングロータ１６１よりも３０°だけ進角側に位相をずらして取り付けられている。
【００７３】
これにより、吸気側カム角信号の変化パターンは、図９に示すように、排気側カム角信号の変化パターンに対してクランク角にして６０°ＣＡだけ遅れて変化するものになっている。
【００７４】
図９は、クランク角信号とクランクカウンタとの関係、並びにクランクカウンタとカム角信号との関係を示すタイミングチャートである。なお、図９では、クランク角信号についてＨｉ信号からＬｏ信号に変化するエッジのみを図示している。
【００７５】
エンジンコントロールユニット３００のカウンタ算出部３０２は、前述したように、エンジン５０の運転に伴ってクランクポジションセンサ１５０から出力されるクランク角信号がＨｉ信号からＬｏ信号に変化するときのエッジを計数し、クランクカウンタを算出する。また、カウンタ算出部３０２は、クランク角信号と吸気側カム角信号と排気側カム角信号とに基づいて気筒判別を行う。
【００７６】
具体的には、カウンタ算出部３０２は、図９に示すように１０°ＣＡ毎に出力されるクランク角信号のエッジを計数してエッジが３つ計数される度にクランクカウンタをカウントアップさせる。すなわち、カウンタ算出部３０２は３０°ＣＡ毎にクランクカウンタの値であるクランクカウンタをカウントアップさせる。そして、エンジンコントロールユニット３００は、クランクカウンタに基づいて現在のクランク角を認識し、各気筒に対する燃料噴射や点火のタイミングを制御する。
【００７７】
また、クランクカウンタは、７２０°ＣＡ毎に周期的にリセットされるようになっている。すなわち図９の中央に示すように、６９０°ＣＡに対応する「２３」までカウントアップしたあとは、次のカウントアップのタイミングでクランクカウンタが「０」にリセットされ、そこから再び３０°ＣＡ毎にクランクカウンタがカウントアップされるようになっている。
【００７８】
また、欠け歯部１５３がクランクポジションセンサ１５０の前を通過するときには、検出されるエッジの間隔が３０°ＣＡになる。そこで、カウンタ算出部３０２は、エッジの間隔が広くなったときには、それに基づいて欠け歯部１５３がクランクポジションセンサ１５０の前を通過したことを検知する。この欠け歯検出は、３６０°ＣＡ毎になされるため、クランクカウンタが１周期分カウントアップされる７２０°ＣＡの間に欠け歯検出は２回行われることになる。
【００７９】
また、クランクシャフト５９と吸気側のカムシャフト９１と排気側のカムシャフト９１は、互いにタイミングチェーンを介して連結されているため、クランクカウンタの変化とカム角信号の変化とは一定の相関を有している。
【００８０】
すなわち、クランクシャフト５９が２回転する間に吸気側のカムシャフト９１と排気側のカムシャフト９１とはそれぞれ１回転する。そのため、クランクカウンタが分かればそのときの吸気側のカムシャフト９１及び排気側のカムシャフト９１の回転位相を推定することができる。また、反対に、吸気側のカムシャフト９１及び排気側のカムシャフト９１の回転位相が分かればクランクカウンタを推定することができる。
【００８１】
カウンタ算出部３０２は、こうした吸気側カム角信号及び排気側カム角信号とクランクカウンタとの関係や、欠け歯検出とクランクカウンタとの関係を利用して、クランクカウンタの算出を開始する際に起点になるクランク角を確定するとともに、クランクカウンタを確定させる。
【００８２】
そして、カウンタ算出部３０２は、クランク角が判明し、起点にするクランクカウンタの値が判明してから、判明したクランクカウンタの値を起点にカウントアップを開始する。すなわちクランクカウンタはクランク角が判明しておらず、起点となるクランクカウンタの値が判明していない間は未確定であり、出力されていない。起点となるクランクカウンタの値が判明したあと、判明したクランクカウンタの値を起点にカウントアップが開始されてクランクカウンタが出力されるようになる。
【００８３】
なお、吸気側のバルブタイミング変更機構５６によってクランクシャフト５９に対する吸気側のカムシャフト９１の相対位相が変更されると、クランクシャフト５９に取り付けられているセンサプレート１５１と吸気側のカムシャフト９１に取り付けられているタイミングロータ１６１との相対位相も変化する。そのため、エンジンコントロールユニット３００は、吸気側のバルブタイミング変更機構５６の操作量である変位角に応じて相対位相の変化量を把握し、相対位相の変更による影響を加味して起点にするクランクカウンタを確定する。排気側のバルブタイミング変更機構５６による排気側のカムシャフト９１の相対位相の変更についても同様である。
【００８４】
エンジン５０では、図９に示されるように吸気カム角信号が１８０°ＣＡに亘って継続するＬｏ信号から６０°ＣＡに亘って継続するＨｉ信号に切り替わるときのクランク角を「０°ＣＡ」に設定している。そのため、図９に破線で示されるように吸気カム角信号が６０°ＣＡに亘って継続するＨｉ信号からＬｏ信号に切り替わった直後になされる欠け歯検出はクランク角が９０°ＣＡであることを示すものになる。一方で、吸気カム角信号が１２０°ＣＡに亘って継続するＬｏ信号からＨｉ信号に切り替わった直後になされる欠け歯検出はクランク角が４５０°ＣＡであることを示すものになる。このようにして、エンジンコントロールユニット３００は、欠け歯部１５３の検出と、吸気カム角信号の推移との関係を利用して、欠け歯部１５３が検出されたときに、クランク角を確定し、起点となるクランクカウンタを確定してクランクカウンタの算出を開始する。
【００８５】
なお、図９にはクランクカウンタの値の推移を示す実線の下にクランクカウンタの値を表記し、この実線の上にはそのクランクカウンタの値に対応するクランク角を表記している。なお、図９は、吸気側のバルブタイミング変更機構５６における変位角と排気側のバルブタイミング変更機構５６における変位角がともに「０」のときの状態を示している。
【００８６】
制御装置４００は、エンジン５０に設けられている各種の装置における異常の有無を確認する診断処理を実行する。そのために、制御装置４００では、図２〜図４に示すように、エンジンコントロールユニット３００に診断処理を実行する診断部３０１を設けている。
【００８７】
例えば、診断部３０１は、空燃比センサ８３が検出する値と、目標とする値とのずれが大きいことに基づいて、燃料噴射弁５４などの燃料系に異常が生じていると判定する。また、診断部３０１は、後述する学習処理を通じて学習される学習値が、上限値と一致した状態が継続したこと及び下限値と一致した状態が継続したことに基づいて、空燃比センサ８３に異常が生じていと判定する。
【００８８】
また、診断部３０１は、減速時などのフューエルカット運転中にＥＧＲ弁６５を開閉駆動する。そして、吸気圧センサ８９が検出する圧力がこの開閉駆動に伴って変化しないことに基づいて、ＥＧＲ弁６５に異常が生じていると判定する。
【００８９】
その他、診断部３０１が実施する診断処理としては、例えば、下記に列挙するものがある。
・診断部３０１は、バルブタイミング変更機構５６を駆動しているときに駆動量に見合った分だけカム角信号とクランク角信号との関係が変化するか否かを確認し、駆動量に見合った分だけ変化していないことに基づいて、バルブタイミング変更機構５６に異常が生じていると判定する。
【００９０】
・診断部３０１は、油圧センサ９３によって検出されている油圧の要求油圧からの乖離が大きいことに基づいて、オイルポンプ１７０に異常が生じていると判定する。
・診断部３０１は、機関回転速度の変動に基づいて、気筒間での燃焼のばらつきが大きくなる異常であるインバランスが生じていることを判定する。具体的には、診断部３０１は暖機が完了していることを条件に、インバランスを判定する診断処理を実行する。この診断処理では、診断部３０１は、点火を実施したときのクランクシャフト５９の角速度を取得する。例えば、診断部３０１は角速度としてクランク角が３０°ＣＡ変化するのに要した時間であるＴ３０を取得する。そして、診断部３０１は、他の気筒において点火を実施したときに取得した角速度との乖離が閾値以上であることに基づいて、インバランスが生じていると判定する。なお、インバランスには、他の気筒に比べて空燃比がリッチになり、角速度が大きくなるリッチインバランスと、他の気筒に比べて空燃比がリーンになり、角速度が小さくなるリーンインバランスとがある。なお、エンジンコントロールユニット３００は、インバランスの診断処理を実行するときには、信号とノイズの比率であるＳ／Ｎ比を確保するために、点火時期を遅角させ、吸入空気量を増大させる。
【００９１】
・診断部３０１は、気筒内での点火に失敗する異常である失火が生じていることを判定する。具体的には、診断部３０１は機関回転速度が診断を行うのに適した範囲内であり、且つ機関負荷が低いことを条件に、失火を判定する診断処理を実行する。この診断処理では、診断部３０１は、点火を実施したときのクランクシャフト５９の角速度を取得する。例えば、診断部３０１は角速度としてクランク角が３０°ＣＡ変化するのに要した時間であるＴ３０を取得する。そして、診断部３０１は、同じ気筒において前回点火を実施したときに取得した角速度との乖離が閾値以上であることに基づいて、失火が生じていると判定する。
【００９２】
・エンジンコントロールユニット３００は、エンジン５０のアイドリング運転中に機関回転速度を目標アイドル回転速度にフィードバック制御するＩＳＣ制御を実行する。なお、目標アイドル回転速度には、始動時補正と、ハイブリッド車両１０に搭載された空調装置などの補機及び第１モータジェネレータ１１及び第２モータジェネレータ１２による外部負荷に応じた外部負荷補正と、冷却水の温度に応じた水温補正とが施されている。詳しくは後述するが、ＩＳＣ制御におけるフィードバック補正量が大きい状態が継続すると、フィードバック補正量を学習値に移す学習処理が行われる。診断部３０１は、学習値が上限値と一致した状態が継続したこと及び下限値と一致した状態が継続したことに基づいて、ＩＳＣ制御に異常が生じていると判定する。
【００９３】
・診断部３０１は、水温センサ８１が検出した冷却水の温度が暖機判定温度よりも高い異常判定温度以上であることに基づいて、サーモスタット１８３に異常が生じていると判定する。
【００９４】
・診断部３０１は、定常運転時などのエンジン５０の運転状態が安定しているときに、スロットル弁５３を開閉動作させて、エアフロメータ８８が検出する吸入空気量が変動するかどうかを確認する。そして、診断部３０１は、エアフロメータ８８が検出する吸入空気量が変動していないことに基づいて、エアフロメータ８８に異常が生じていると判定する。
【００９５】
なお、これらの診断処理は、エンジン５０が運転していないと異常の有無の判定を行うことができない。そこで、図１に示すように、制御装置４００では、システムコントロールユニット１００に、間欠停止制御によるエンジン５０の運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部１０１を設けている。停止禁止部１０１は、システムメインスイッチ１２０がＯＮになっているときに、後述する間欠停止禁止フラグを監視しており、間欠停止禁止フラグがＯＮになっているときに、間欠停止制御によるエンジン５０の運転の停止を禁止する間欠停止禁止処理を実行する。間欠停止禁止処理が実行されている場合には、システムコントロールユニット１００は、間欠停止制御によるエンジン５０の自動停止の要求がある場合でもエンジン５０を停止させず、エンジン５０を運転させ続ける。すなわち、間欠停止制御によるエンジン５０の運転の停止を禁止してエンジン５０を運転させ続ける。
【００９６】
次に、診断部３０１が実行する診断処理と、停止禁止部１０１が実行する間欠停止禁止処理との関係について図１０〜図１３を参照して説明する。
制御装置４００では、仮判定フラグ及び本判定フラグのいずれもが不揮発性メモリ１０４に記憶されていない状態でエンジン５０が運転されており、且つ診断処理の実行条件が成立しているときに、図１０に示す仮判定ルーチンを実行する。図１０に示す仮判定ルーチンは、エンジンコントロールユニット３００によって診断処理の種類毎に実行される。なお、診断処理において異常が発生しているとの判定がなされなかった場合には、診断部３０１は、その診断処理をエンジン５０の運転が継続している間は実行しない。
【００９７】
なお、仮判定フラグは、異常が発生しているおそれがあることを示す情報である。仮判定フラグは、図１に示すようにシステムコントロールユニット１００に設けられている不揮発性メモリ１０４に記憶されてＯＮになる。仮判定フラグは初期状態では記憶されておらず、ＯＦＦになっている。仮判定フラグは、診断処理の種類毎に設けられており、診断処理の結果に応じてそれぞれ更新される。なお、不揮発性メモリ１０４は、システムメインスイッチ１２０がＯＦＦになり、給電が停止されても記憶を保持することのできるメモリである。
【００９８】
本判定フラグは、診断処理を通じて異常が発生しているとの診断が下されたことを示す情報である。本判定フラグも、不揮発性メモリ１０４に記憶されてＯＮになる。本判定フラグは初期状態では記憶されておらず、ＯＦＦになっている。本判定フラグも、診断処理の種類毎に設けられており、診断処理の結果に応じてそれぞれ更新される。
【００９９】
図１０に示すように、エンジンコントロールユニット３００は、このルーチンを開始すると、まずステップＳ１００の処理を実行する。ステップＳ１００の処理では、エンジンコントロールユニット３００の診断部３０１が、診断処理を実行する。そして、エンジンコントロールユニット３００は、処理をステップＳ１１０へと進める。そして、ステップＳ１１０の処理では、エンジンコントロールユニット３００は、ステップＳ１００の処理において異常が有ると診断部３０１が判定したか否かを判定する。
【０１００】
ステップＳ１１０の処理において、異常が有ると診断部３０１判定した旨の判定がなされた場合（ステップＳ１１０：ＹＥＳ）には、エンジンコントロールユニット３００は、処理をステップＳ１２０へと進める。そして、ステップＳ１２０の処理では、診断部３０１が、システムコントロールユニット１００の不揮発性メモリ１０４に仮判定フラグを記憶させ、仮判定フラグをＯＮにする。そして、エンジンコントロールユニット３００は、このルーチンを一旦終了させる。
【０１０１】
一方で、ステップＳ１１０の処理において、異常が有ると診断部３０１が判定していない旨の判定がなされた場合（ステップＳ１１０：ＮＯ）には、エンジンコントロールユニット３００は、ステップＳ１２０の処理を実行せずに、このルーチンを一旦終了させる。すなわち、この場合には、診断部３０１は、仮判定フラグを不揮発性メモリ１０４に記憶させない。
【０１０２】
このように制御装置４００では、仮判定フラグ及び本判定フラグがＯＮになっていない場合には、診断部３０１が、診断処理を通じて異常が有る旨の判定をしたことを条件に、仮判定フラグを不揮発性メモリ１０４に記憶させる。
【０１０３】
なお、図１に示すように、ハイブリッド車両１０には、異常が発生していることを示す情報を表示して、乗員に異常が発生していることを報知する警告表示部１１０が設けられている。不揮発性メモリ１０４に仮判定フラグが記憶された場合には、システムコントロールユニット１００が警告表示部１１０に異常が発生していることを示す情報を表示させる。
【０１０４】
制御装置４００では、仮判定フラグが不揮発性メモリ１０４に記憶されている状態でエンジン５０が運転されており、且つ診断処理の実行条件が成立しているときに、図１１に示す本判定ルーチンを実行する。図１１に示す本判定ルーチンは、エンジンコントロールユニット３００によって診断処理の種類毎に実行される。
【０１０５】
図１１に示すように、エンジンコントロールユニット３００は、このルーチンを開始すると、まずステップＳ２００の処理を実行する。ステップＳ２００の処理では、エンジンコントロールユニット３００の診断部３０１が、診断処理を実行する。
【０１０６】
なお、ステップＳ２００の処理において、オイルポンプ１７０についての診断処理を実行する場合及びバルブタイミング変更機構５６についての診断処理を実行する場合には、診断処理の実行に先立って解除動作を実行してから診断処理を実行する。解除動作は、アクチュエータを往復動させて異常の解消を図る動作である。オイルポンプ１７０の場合には、解除動作としてオイルコントロールバルブ１７１のスプール弁を往復動させ、オイルコントロールバルブ１７１における異物の噛み込みの解消を図る。また、バルブタイミング変更機構５６の場合には、モータを往復動させ、異物の噛み込みの解消を図る。
【０１０７】
そして、ステップＳ２００の処理を通じて診断部３０１が診断処理を実行すると、エンジンコントロールユニット３００は、処理をステップＳ２１０へと進める。そして、ステップＳ２１０の処理では、エンジンコントロールユニット３００は、ステップＳ２００の処理において異常が有ると診断部３０１が判定したか否かを判定する。
【０１０８】
ステップＳ２１０の処理において、異常が有ると診断部３０１が判定した旨の判定がなされた場合（ステップＳ２１０：ＹＥＳ）には、エンジンコントロールユニット３００は、処理をステップＳ２２０へと進める。そして、ステップＳ２２０の処理では、診断部３０１が、システムコントロールユニット１００の不揮発性メモリ１０４に本判定フラグを記憶させ、本判定フラグをＯＮにする。そして、エンジンコントロールユニット３００は、処理をステップＳ２５０へと進める。ステップＳ２５０の処理では、診断部３０１が、システムコントロールユニット１００の不揮発性メモリ１０４に記憶されている仮判定フラグを消去し、仮判定フラグをＯＦＦにする。そして、エンジンコントロールユニット３００は、このルーチンを一旦終了させる。
【０１０９】
一方で、ステップＳ２１０の処理において、異常が有ると診断部３０１が判定していない旨の判定がなされた場合（ステップＳ２１０：ＮＯ）には、エンジンコントロールユニット３００は、処理をステップＳ２３０へと進める。そして、ステップＳ２３０の処理では、診断部３０１が、正常カウンタを１つカウントアップする。正常カウンタはエンジンコントロールユニット３００のメモリに記憶されている。このメモリは不揮発性メモリではなく、給電が停止された場合には、正常カウンタはリセットされる。正常カウンタは初期状態では「０」である。次にエンジンコントロールユニット３００は、処理をステップＳ２４０へと進める。そして、エンジンコントロールユニット３００は、ステップＳ２４０の処理において、正常カウンタが「３」以上であるか否かを判定する。ステップＳ２４０の処理において、正常カウンタが「３」以上であると判定した場合（ステップＳ２４０：ＹＥＳ）には、エンジンコントロールユニット３００は処理をステップＳ２５０へと進める。そして、ステップＳ２５０の処理において、診断部３０１が、システムコントロールユニット１００の不揮発性メモリ１０４に記憶されている仮判定フラグを消去し、仮判定フラグをＯＦＦにする。そして、エンジンコントロールユニット３００は、このルーチンを一旦終了させる。
【０１１０】
一方、ステップＳ２４０の処理において、正常カウンタが「３」未満であると判定した場合（ステップＳ２４０：ＮＯ）には、エンジンコントロールユニット３００は、ステップＳ２５０の処理を実行せずに、このルーチンを一旦終了させる。
【０１１１】
このように制御装置４００では、診断部３０１が、仮判定フラグが不揮発性メモリ１０４に記憶されている状態で診断処理を通じて異常があると判定したときに、異常があるとの診断を下し、本判定フラグを不揮発性メモリ１０４に記憶させる。そして、このときに、診断部３０１が、不揮発性メモリ１０４に記憶されている仮判定フラグを消去する。
【０１１２】
仮判定フラグが消去され、不揮発性メモリ１０４に仮判定フラグが記憶されていない場合であっても、不揮発性メモリ１０４に本判定フラグが記憶されている場合には、システムコントロールユニット１００は警告表示部１１０に異常が発生していることを示す情報を引き続き表示させ続ける。
【０１１３】
一方で、仮判定フラグが消去され、不揮発性メモリ１０４に仮判定フラグが記憶されていない場合であり、且つ不揮発性メモリ１０４に本判定フラグが記憶されていない場合には、システムコントロールユニット１００は警告表示部１１０における異常が発生していることを示す情報の表示を停止させる。この場合には、仮判定フラグが消去されることに伴い、異常が発生していることを示していた表示が消えることになる。つまり、制御装置４００では、仮判定フラグがＯＮになったあとに、診断処理において異常が発生しているとの判定がされない状態が３回続けて生じた場合には、仮判定フラグを消去し、異常が発生していることを示す表示をやめる。
【０１１４】
なお、本判定フラグは、修理工場において修理などを行い、異常を解消したときに、不揮発性メモリ１０４から消去される。そのため、一旦、診断処理を通じて異常が発生しているとの診断が下され、不揮発性メモリ１０４に本判定フラグが記憶されたあとは、修理などが行われて本判定フラグが消去されるまで警告表示部１１０には、異常が発生していることを示す情報が表示され続ける。
【０１１５】
図１２は、システムメインスイッチ１２０がＯＮになっており、制御装置４００が稼働している間、システムコントロールユニット１００が繰り返し実行するルーチンである。
図１２に示すように、システムコントロールユニット１００は、このルーチンを開始すると、まずステップＳ３００の処理において、診断処理の種類毎に設定されている仮判定フラグのいずれがＯＮであるか否かを判定する。すなわち、システムコントロールユニット１００は、不揮発性メモリ１０４にいずれかの仮判定フラグが記憶されているか否かを判定する。
【０１１６】
ステップＳ３００の処理において、いずれかの仮判定フラグがＯＮであると判定した場合（ステップＳ３００：ＹＥＳ）には、システムコントロールユニット１００は、処理をステップＳ３１０へと進める。そして、システムコントロールユニット１００は、ステップＳ３１０の処理において、３種類ある間欠停止禁止フラグのうちの１つである第１間欠停止禁止フラグをメモリに記憶する。これにより、第１間欠停止禁止フラグがＯＮになる。なお、このメモリは不揮発性メモリではなく、給電が停止された場合には、第１間欠停止禁止フラグがＯＦＦになる。こうして第１間欠停止禁止フラグをＯＮにすると、システムコントロールユニット１００は、このルーチンを一旦終了させる。なお、初期状態では、第１間欠停止禁止フラグはメモリに記憶されておらず、ＯＦＦになっている。
【０１１７】
一方で、ステップＳ３００の処理において、いずれの仮判定フラグもＯＮではないと判定した場合（ステップＳ３００：ＮＯ）には、システムコントロールユニット１００は、処理をステップＳ３２０へと進める。そして、システムコントロールユニット１００は、ステップＳ３２０の処理において、メモリから第１間欠停止禁止フラグを消去する。これにより、第１間欠停止禁止フラグがＯＦＦになる。こうして第１間欠停止禁止フラグをＯＦＦにすると、システムコントロールユニット１００は、このルーチンを一旦終了させる。
【０１１８】
前述したように、停止禁止部１０１は、間欠停止禁止フラグがＯＮになっているときに、間欠停止制御によるエンジン５０の運転の停止を禁止する間欠停止禁止処理を実行する。図１２を参照して説明したように、システムコントロールユニット１００は、仮判定フラグがＯＮになっているときに、第１間欠停止禁止フラグをＯＮにする。すなわち、制御装置４００では、不揮発性メモリ１０４に仮判定フラグが記憶されているときに、停止禁止部１０１が間欠停止禁止処理を実行する。
【０１１９】
図１３は、第１間欠停止禁止フラグがＯＮになっている状態でシステムメインスイッチ１２０がＯＦＦにされたときに、制御装置４００の稼働を停止するまでの間に、システムコントロールユニット１００が実行するルーチンの処理の流れを示している。
【０１２０】
図１３に示すように、システムコントロールユニット１００は、このルーチンを開始すると、まずステップＳ４００の処理において、禁止継続カウンタをカウントアップさせる。禁止継続カウンタは初期状態では「０」であり、このステップＳ４００の処理を実行する度に１つずつカウントアップされる。禁止継続カウンタは不揮発性メモリ１０４に記憶される。
【０１２１】
次に、システムコントロールユニット１００は、ステップＳ４１０の処理において、禁止継続カウンタが「２」以上であるか否かを判定する。ステップＳ４１０の処理において、禁止継続カウンタが「２」以上であると判定した場合（ステップＳ４１０：ＹＥＳ）には、システムコントロールユニット１００は、処理をステップＳ４２０へと進める。
【０１２２】
そして、ステップＳ４２０の処理において、システムコントロールユニット１００は仮判定フラグをＯＦＦにする。すなわち、システムコントロールユニット１００は不揮発性メモリ１０４に記憶されている仮判定フラグを消去する。
【０１２３】
次に、システムコントロールユニット１００は、ステップＳ４３０の処理において、第１間欠停止禁止フラグをＯＦＦにする。すなわち、システムコントロールユニット１００は不揮発性メモリ１０４に記憶されている第１間欠停止禁止フラグを消去する。システムコントロールユニット１００は、次のステップＳ４４０の処理において、禁止継続カウンタをリセットする。そして、システムコントロールユニット１００はこのルーチンを終了させる。
【０１２４】
一方で、ステップＳ４１０の処理において、禁止継続カウンタが「２」未満であると判定した場合（ステップＳ４１０：ＹＥＳ）には、システムコントロールユニット１００は、ステップＳ４２０〜ステップＳ４４０の処理を実行せずに、そのままこのルーチンを終了させる。
【０１２５】
図１３を参照して説明したルーチンを実行することにより、仮判定フラグがＯＮになっていることによって間欠停止禁止処理が継続するのは２トリップまでに制限される。つまり、仮判定フラグがＯＮになっている状態でシステムメインスイッチ１２０がＯＦＦにされることが２回継続すると、禁止継続カウンタが「２」以上になり、仮判定フラグと第１間欠停止禁止フラグが消去される。第１間欠停止禁止フラグが消去されると、停止禁止部１０１は、仮判定フラグが記憶されていることによる間欠停止禁止処理を終了させる。このように、制御装置４００では、仮判定フラグが記憶されていることによって間欠停止制御によるエンジン５０の停止を禁止しているトリップが２回継続した場合に、停止禁止部１０１が、仮判定フラグが記憶されていることによるエンジン５０の停止の禁止を解除する。
【０１２６】
なお、ここでのトリップとは、ハイブリッド車両１０のシステムメインスイッチ１２０がＯＮになっている期間、すなわちハイブリッド車両１０の制御装置４００の稼働が継続している期間を１トリップとした数え方の単位である。
【０１２７】
次に、制御装置４００が実行する学習処理と、それに伴う間欠停止禁止処理について説明する。学習処理はエンジン５０の運転中であり、且つ実行条件が成立しているときに、エンジンコントロールユニット３００によって実行される。
【０１２８】
例えば、エンジンコントロールユニット３００は、学習処理の１つとして、燃料噴射弁５４からの燃料噴射量のずれによる定常的な空燃比のずれを学習する空燃比メインフィードバック学習を行う。この空燃比メインフィードバック学習では、空燃比センサ８３による検出値を用いた燃料噴射量のフィードバック制御である空燃比メインフィードバック制御における燃料噴射量の補正量の時間積分量を算出し、一定時間毎にその時間積分量を一定の割合で学習値に移行することにより、学習値を更新する。また、エンジンコントロールユニット３００は、学習処理の１つとして、空燃比センサ８３の検出値のずれによる定常的な空燃比のずれを学習する空燃比サブフィードバック学習を行う。この空燃比サブフィードバック学習では、酸素センサ８４による検出値を用いた燃料噴射量のフィードバック制御である空燃比サブフィードバック制御における燃料噴射量の補正量の時間積分量を算出し、一定時間毎にその時間積分量を一定の割合で学習値に移行することにより、学習値を更新する。
【０１２９】
その他、エンジンコントロールユニット３００が実行する学習処理としては、例えば、下記に列挙するものがある。
・エンジンコントロールユニット３００は、アイドリング運転中の機関回転速度のフィードバック制御であるＩＳＣ制御における機関回転速度の定常的なずれを学習するＩＳＣ学習を実行する。ＩＳＣ学習では、ＩＳＣ制御におけるスロットル開度の補正量の時間積分量を算出し、一定時間毎にその時間積分量を一定の割合で学習値に移行することにより、学習値を更新する。
【０１３０】
・エンジンコントロールユニット３００は、エンジン５０におけるノッキングを抑制するため点火時期の制御であるＫＣＳ制御において、ＫＣＳ学習を行う。ＫＣＳ学習では、ＫＣＳ制御における点火時期の補正量が閾値以上になった場合に、補正量の一部を学習値に移行することにより、学習値を更新する。
【０１３１】
・エンジンコントロールユニット３００は、エアフロメータ８８によって検出される吸入空気量と、スロットル開度から想定される吸入空気量とのずれを学習するスロットル学習を行う。スロットル学習では、吸入空気量のフィードバック制御におけるスロットル開度の補正量が閾値以上になった場合に、補正量の一部を学習値に移行することにより、学習値を更新する。
【０１３２】
なお、各学習値は不揮発性メモリ１０４に記憶される。そのため、学習値は、システムメインスイッチ１２０がＯＦＦにされた場合にも、不揮発性メモリ１０４に記憶されている。したがって、学習が完了していれば、次回エンジン５０が始動されたときにはすぐに学習値を反映させた制御を実行することができる。そのため、速やかに学習値の更新を完了させることが望ましい。
【０１３３】
ところが、上記の学習処理はエンジン５０が運転しており、それぞれの学習処理の実行に適した条件になっていないと、実行することができない。そこで、例えば、特開平１１−１０７８３４号公報には、学習処理が完了するまで間欠停止制御によるエンジン５０の運転の停止を禁止することにより、学習処理を速やかに完了させようとすることが開示されている。
【０１３４】
しかし、間欠停止制御によるエンジン５０の運転の停止を禁止すると、エンジンの運転が継続することになるため、燃料の消費量が増大し、間欠停止制御によって得られるはずの燃料消費量の抑制効果が得られなくなってしまう。必ずしも学習処理の完了を優先させる必要がない場合もあるため、改善の余地がある。
【０１３５】
そこで、制御装置４００では、直近の学習処理による学習値の学習が完了してからのエンジン５０の積算稼働量に応じて間欠停止禁止処理を実行するか否かを判定する閾値になる車速閾値を変更して学習値の更新機会の確保と、間欠停止制御の実行による燃料消費量の抑制との調和を図っている。そのため、図１に示すように、制御装置４００では、システムコントロールユニット１００に、積算稼働量を示す指標値を算出する稼働量算出部１０２と、車速閾値を算出する閾値算出部１０３とが設けられている。
【０１３６】
積算稼働量に応じた間欠停止禁止処理を実行する条件の変更について、図１４及び図１５を参照して、具体的に説明する。
なお、ノッキングの発生しやすさは、給油によって燃料の性状が変化したときに急変する可能性がある。そのため、ＫＣＳ学習については、毎トリップ実行することが好ましい。そこで、制御装置４００では、各トリップにおけるエンジン５０の初回の運転時にはＫＣＳ学習が完了するまで間欠停止禁止処理を実行し、速やかにＫＣＳ学習を完了させるようにしている。
【０１３７】
図１４に示すルーチンは、学習処理が完了したあと、エンジン５０が運転されているときに、システムコントロールユニット１００によって繰り返し実行される。なお、このルーチンは学習処理の種類毎に実行される。
【０１３８】
図１４に示すように、システムコントロールユニット１００は、このルーチンを開始すると、まずステップＳ５００の処理において積算稼働量の指標値を算出する。ここでは、稼働量算出部１０２が、積算稼働量の指標値として、例えば、直近の学習処理による学習値の学習が完了してからのハイブリッド車両１０の積算走行距離を算出する。積算走行距離が長くなるほど、エンジン５０の積算稼働量は多くなりやすい。そのため、学習が完了してからの積算走行距離を、学習が完了してからのエンジン５０の積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
【０１３９】
次に、システムコントロールユニット１００は、処理をステップＳ５１０へと進める。ステップＳ５１０の処理において、システムコントロールユニット１００は、学習値を学習する対象の制御における補正量を読み込む。例えば、学習値を学習する対象の制御が空燃比メインフィードバック制御であれば空燃比メインフィードバック制御における燃料噴射量の補正量を読み込む。
【０１４０】
そして、システムコントロールユニット１００は、次のステップＳ５２０において、稼働量算出部１０２が算出した積算稼働量の指標値と、読み込んだ補正量とに基づいて、車速閾値を算出する。ステップＳ５２０の処理では、システムコントロールユニット１００の閾値算出部１０３が、積算稼働量の指標値が大きいほど、車速閾値として小さな値を算出する。また、閾値算出部１０３は、読み込んだ補正量が大きいほど、車速閾値として小さな値を算出する。
【０１４１】
こうして車速閾値を算出すると、システムコントロールユニット１００は、このルーチンを一旦終了する。
図１５に示すルーチンはＨＶ走行モードが選択されており、且つ何れかの学習処理に関する車速閾値の算出が完了しているときに、システムコントロールユニット１００によって繰り返し実行される。
【０１４２】
このルーチンを開始すると、システムコントロールユニット１００は、まずステップＳ６００の処理において、算出されている車速閾値のうち最も小さい車速閾値と車速センサ８６によって検出されている車速とを比較し、車速が車速閾値以上であるか否かを判定する。
【０１４３】
ステップＳ６００の処理において、車速が車速閾値以上であると判定した場合（ステップＳ６００：ＹＥＳ）には、システムコントロールユニット１００は、処理をステップＳ６１０へと進める。そして、ステップＳ６１０の処理において、システムコントロールユニット１００は、３種類ある間欠停止禁止フラグのうちの１つである第２間欠停止禁止フラグをメモリに記憶する。これにより、第２間欠停止禁止フラグがＯＮになる。なお、このメモリは不揮発性メモリではなく、給電が停止された場合には、第２間欠停止禁止フラグがＯＦＦになる。こうして第２間欠停止禁止フラグをＯＮにすると、システムコントロールユニット１００は、このルーチンを一旦終了させる。なお、初期状態では、第２間欠停止禁止フラグはメモリに記憶されておらず、ＯＦＦになっている。また、第２間欠停止禁止フラグは、学習処理の種類毎に設けられており、ステップＳ６１０の処理では、ステップＳ６００の処理において車速と比較した車速閾値に対応する学習処理のための第２間欠停止禁止フラグをＯＮにする。
【０１４４】
一方で、ステップＳ６００の処理において、車速が車速閾値未満であると判定した場合（ステップＳ６００：ＮＯ）には、システムコントロールユニット１００は、ステップＳ６１０の処理を実行せずに、そのままこのルーチンを一旦終了させる。
【０１４５】
前述したように、停止禁止部１０１は、間欠停止禁止フラグがＯＮになっているときに、間欠停止制御によるエンジン５０の運転の停止を禁止する間欠停止禁止処理を実行する。図１５を参照して説明したように、システムコントロールユニット１００は、車速が車速閾値以上であるときに、第２間欠停止禁止フラグをＯＮにする。また、制御装置４００では、積算稼働量が多いほど、車速閾値を小さくする。さらに、制御における補正量が大きいほど、車速閾値を小さくする。そのため、この制御装置４００では、積算稼働量が多いほど、そして補正量が大きいほど、低い車速から間欠停止禁止処理が実行されるようになる。その結果、間欠停止禁止処理を実行する機会が拡大して間欠停止禁止処理が実行されやすくなる。すなわち、制御装置４００では、エンジン５０の積算稼働量が増えることに伴って学習値を更新する必要性が高まるのに応じて、間欠停止禁止処理の実行機会を拡大し、学習値の更新機会を確保することができる。
【０１４６】
なお、第２間欠停止禁止フラグは、対応する学習処理が完了し、学習値が更新されると、ＯＦＦにリセットされる。
次に、カムポジションセンサ１６０が故障した場合における、エンジン５０の始動に関する制御について図１６及び図１７を参照して説明する。
【０１４７】
前述したように、エンジン５０を始動したときには、クランクシャフト５９が１回転する度に１度発生する欠け歯部１５３を検出するとともに、クランクシャフト５９が１回転する間に２回転するカムシャフト９１の特定のカム角の到来を検出するカムポジションセンサ１６０が出力するカム角信号を検出する。そして、欠け歯部１５３が、クランクシャフト５９が２回転する分のクランク角に対応するクランクカウンタの値のうち、どの値に対応するものなのかを特定する。特開２０１５−０５９４６９号公報にも、制御装置４００と同様に、一定のクランク角毎にカウントアップされるクランクカウンタを生成する内燃機関の制御装置が開示されている。
【０１４８】
クランクシャフト５９が２回転する間にクランクポジションセンサ１５０によって欠け歯部１５３が２回検知されるが、カムポジションセンサ１６０が故障した場合には、検知した欠け歯部１５３が２回転分のクランク角に対応するクランクカウンタの値のうち、いずれの値に対応するものであるのかが特定できない。
【０１４９】
そこで、制御装置４００では、吸気側のカムポジションセンサ１６０から信号が出力されなくなるなど、カムポジションセンサ１６０が故障した場合には、エンジン５０の始動時に、カウンタ算出部３０２が、欠け歯部１５３の検知に基づいて欠け歯部１５３に対応する２つのクランク角のうち、一方のクランク角をクランク角として仮決定する。例えば、制御装置４００では、図９に示すように欠け歯部１５３に対応する２つのクランク角である「９０°ＣＡ」と「４５０°ＣＡ」のうち、「９０°ＣＡ」をクランク角として仮決定する。
【０１５０】
そして、カウンタ算出部３０２は、仮決定されたクランク角に基づいてクランクカウンタの値を算出する。エンジンコントロールユニット３００は、こうして算出したクランクカウンタに基づいてエンジン５０を制御し、始動を試みる。
【０１５１】
図１６に示すルーチンは、こうしたカムポジションセンサ１６０が故障している状態でのエンジン５０の始動が行われているときに、エンジンコントロールユニット３００によって実行される。
【０１５２】
図１６に示すように、このルーチンを開始すると、エンジンコントロールユニット３００は、まずステップＳ７００の処理において、エンジン５０の始動が失敗したか否かを判定する。始動が失敗したか否かの判定は、規定時間内にエンジン５０の始動が完了したか否かによって判定される。すなわち、エンジンコントロールユニット３００は、規定時間内にエンジン５０の始動が完了した場合には、エンジン５０の始動が完了した時点でエンジン５０の始動が成功したと判定する。一方で、エンジンコントロールユニット３００は、規定時間を経過してもエンジン５０の始動が完了していない場合には、エンジン５０の始動が失敗したと判定する。
【０１５３】
ステップＳ７００の処理において、エンジンの始動が失敗したと判定した場合（ステップＳ７００：ＹＥＳ）には、エンジンコントロールユニット３００は処理をステップＳ７１０へと進める。そして、ステップＳ７１０の処理において、エンジンコントロールユニット３００は、クランクカウンタの値を切り替える。
【０１５４】
具体的には、ステップＳ７１０の処理では、カウンタ算出部３０２が、欠け歯部１５３に対応する２つのクランク角である「９０°ＣＡ」と「４５０°ＣＡ」とのうち、仮決定していたクランク角ではない「４５０°ＣＡ」を正しいクランク角であったとみなしてクランクカウンタを算出し直す。こうしてクランクカウンタを切り替えると、エンジンコントロールユニット３００は、このルーチンを一旦終了させる。そして、エンジンコントロールユニット３００は、新たに算出し直したクランクカウンタに基づいてエンジン５０を再度始動する。
【０１５５】
一方で、ステップＳ７００の処理において、エンジンの始動が成功したと判定した場合（ステップＳ７００：ＮＯ）には、エンジンコントロールユニット３００はステップＳ７１０の処理を実行せずに、そのままこのルーチンを終了させる。そして、カウンタ算出部３０２はそのまま仮決定したクランク角に基づくクランクカウンタの算出を継続し、エンジンコントロールユニット３００は、カウンタ算出部３０２が算出するクランクカウンタに基づいてエンジン５０を制御する。
【０１５６】
このように、制御装置４００では、カムポジションセンサ１６０が故障しているときにはクランクポジションセンサ１５０による欠け歯部１５３の検知に基づいて欠け歯部１５３に対応する２つのクランク角のうち、一方のクランク角をクランク角として仮決定し、仮決定されたクランク角に基づいてクランクカウンタの値を算出する。そして、仮決定されたクランク角に基づいて算出したクランクカウンタの値に基づいてエンジン５０が制御される。
【０１５７】
また、制御装置４００では、仮決定したクランク角に基づいて算出したクランクカウンタの値を用いた始動が失敗した場合には、欠け歯部１５３に対応する２つのクランク角のうち仮決定したクランク角ではない他方のクランク角に基づいてクランクカウンタを算出し直す。そして、制御装置４００では、算出し直したクランクカウンタを利用してエンジン５０の始動を再度試みる。そのため、仮決定した一方のクランク角に基づく始動が失敗した場合でも、他方のクランク角に基づいて算出し直したクランクカウンタを用いた始動によってエンジン５０の始動を完了させることができる。
【０１５８】
こうして始動が完了したあとは、カウンタ算出部３０２は、クランク角信号のエッジを計数してクランクカウンタの算出を継続する。そして、エンジンコントロールユニット３００はクランクカウンタに基づいてエンジン５０を制御する。
【０１５９】
ところで、クランクポジションセンサ１５０は、クランクシャフト５９の回転速度が極めて遅いときにはクランク角を検出できない。また、クランクシャフト５９の回転方向を特定できないため、エンジン５０の停止直前に気筒内の空気の圧縮反力によりクランクシャフト５９が逆回転方向に回転すると、クランク角を把握できなくなる。
【０１６０】
制御装置４００では、第１モータジェネレータ１１及び第２モータジェネレータ１２が遊星ギア機構１３を介してクランクシャフト５９と連結されているため、第１モータジェネレータ１１及び第２モータジェネレータ１２に設けられているレゾネータによって検出した回転角に基づいて、クランクシャフト５９の回転角を推定することができる。
【０１６１】
そこで、制御装置４００では、クランクシャフト５９の回転速度が極めて遅い場合や、逆回転方向への回転が生じる場合には、レゾネータによって検出した第１モータジェネレータ１１の回転角の推移及び第２モータジェネレータ１２の回転角の推移を参照してクランクシャフト５９の回転角を推定する。そして、推定したクランクシャフト５９の回転角に基づいてカウンタ算出部３０２がクランクカウンタを算出する。こうして制御装置４００では、エンジン５０の運転を停止してから次にエンジン５０を始動するまでの間もカウンタ算出部３０２がクランクカウンタを算出し続ける。
【０１６２】
そして、制御装置４００では、次回のエンジン５０の始動の際には、欠け歯部１５３の検出を待たずに、把握しているクランクカウンタの値に基づいて始動を行う。そのため、カムポジションセンサ１６０が故障していても速やかにエンジン５０の始動を完了させることができる。
【０１６３】
しかし、レゾネータの故障などにより、第１モータジェネレータ１１の回転角又は第２モータジェネレータ１２の回転角が検出できなくなった場合には、クランクシャフト５９の回転角を推定することができなくなってしまう。
【０１６４】
そこで、制御装置４００では、カムポジションセンサ１６０が故障している状態であり、且つ間欠停止禁止フラグの１つである第３間欠停止フラグがＯＦＦになっているエンジン５０の運転中に、図１７に示すルーチンを繰り返し実行するようにしている。図１７に示すルーチンは、システムコントロールユニット１００によって実行される。
【０１６５】
図１７に示すように、このルーチンを開始すると、システムコントロールユニット１００は、まずステップＳ８００の処理において、第１モータジェネレータ１１の回転角又は第２モータジェネレータ１２の回転角が検出できなくなり、回転角が不明になっているか否かを判定する。すなわち、システムコントロールユニット１００は、このステップＳ８００の処理を通じて、第１モータジェネレータ１１の回転角及び第２モータジェネレータ１２の回転角を参照してクランクカウンタを算出することができない状態になっているか否かを判定する。
【０１６６】
ステップＳ８００の処理において、回転角が不明になっていると判定した場合（ステップＳ８００：ＹＥＳ）には、システムコントロールユニット１００は、処理をステップＳ８１０へと進める。そして、システムコントロールユニット１００は、ステップＳ８１０の処理において回転角が不明になっているモータジェネレータに異常が発生していることを示す情報である異常フラグを不揮発性メモリ１０４に記憶させる。なお、システムコントロールユニット１００は、不揮発性メモリ１０４に異常フラグが記憶されているときには、警告表示部１１０に異常が発生していることを示す情報を表示させる。
【０１６７】
次に、システムコントロールユニット１００は、ステップＳ８２０の処理において、第３間欠停止禁止フラグを不揮発性メモリ１０４に記憶する。これにより、第３間欠停止禁止フラグがＯＮになる。こうして第３間欠停止禁止フラグをＯＮにすると、システムコントロールユニット１００は、このルーチンを一旦終了させる。なお、初期状態では、第３間欠停止禁止フラグは不揮発性メモリ１０４に記憶されておらず、ＯＦＦになっている。
【０１６８】
前述したように、停止禁止部１０１は、間欠停止禁止フラグがＯＮになっているときに、間欠停止制御によるエンジン５０の運転の停止を禁止する間欠停止禁止処理を実行する。図１７を参照して説明したように、システムコントロールユニット１００は、第１モータジェネレータ１１の回転角及び第２モータジェネレータ１２の回転角を参照してクランクカウンタを算出することができない状態になったときに第３間欠停止禁止フラグをＯＮにする。すなわち、制御装置４００では、カムポジションセンサ１６０が故障しており、且つモータジェネレータの回転角を参照してクランクカウンタの算出を行うことができない状態になった場合に、停止禁止部１０１が、間欠停止禁止処理を実行してエンジンの運転を継続させる。
【０１６９】
カムポジションセンサ１６０が故障しているときに、間欠停止制御によりエンジン５０の運転が停止されると、再び、欠け歯部１５３の検知に基づいて仮決定したクランク角を利用した始動を行う必要がある。カムポジションセンサ１６０が故障している状態での再始動は失敗するおそれがある。これに対して制御装置４００では、間欠停止禁止処理を実行してエンジン５０の運転を継続させるため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。
【０１７０】
なお、異常フラグは、修理工場において修理などを行い、異常を解消したときに、不揮発性メモリ１０４から消去される。また、この異常フラグの消去に伴い、第３間欠停止禁止フラグも消去される。
【０１７１】
本実施形態の作用及び効果について説明する。
（診断処理に伴う間欠停止禁止処理について）
（１−１）制御装置４００では、システムメインスイッチ１２０をＯＦＦにして給電が停止されても記憶を保持することのできる不揮発性メモリ１０４に仮判定フラグが記憶される。そのため、異常が有る旨の診断が下されて本判定フラグがＯＮにされる前にシステムメインスイッチ１２０がＯＦＦにされてしまったとしても、システムメインスイッチ１２０が次にＯＮにされたときには、不揮発性メモリ１０４に記憶されている仮判定フラグに基づいて診断の途中であったことを認識できる。
【０１７２】
そして、仮判定フラグが記憶されているときには停止禁止部１０１により間欠停止制御によるエンジン５０の運転の停止が禁止される。そのため、診断の途中でシステムメインスイッチ１２０がＯＦＦにされた場合でも、次にシステムメインスイッチ１２０がＯＮにされたときにはエンジン５０の運転が開始されると即座に間欠停止制御によるエンジン５０の運転の停止が禁止され、エンジン５０の運転が継続するようになる。したがって、間欠停止制御によるエンジン５０の運転の停止が禁止されていない場合と比較して診断処理の実行機会が増え、速やかに診断を完了させることができる。
【０１７３】
（１−２）間欠停止制御によるエンジン５０の運転の停止を禁止すると、エンジン５０の運転が継続するため、燃料の消費量が増えてしまう。すなわち、間欠停止制御によって得られるはずの燃料消費量を抑制する効果が得られなくなってしまう。これに対して、制御装置４００では、図１３を参照して説明したように、仮判定フラグが記憶されていることによってエンジン５０の停止を禁止しているトリップが２回を超えて継続することを抑制することができる。したがって、診断の実行機会の確保と燃料消費量の抑制との調和を図り、燃料消費量が過度に増えてしまうことを抑制できる。
【０１７４】
（学習処理に伴う間欠停止禁止処理について）
（２−１）低車速の場合ほど効率の低い状態で燃料を使用してエンジン５０を運転させることになるため、低車速の場合ほど、間欠停止禁止処理を実行することによって燃料消費量が増大してしまう。そのため、燃料消費量を抑制する上では、車速閾値を大きな値に設定し、間欠停止禁止処理を実行する車速を高車速側に設定して間欠停止制御を通じて効率の低い状態でのエンジンの運転を抑制することが好ましい。
【０１７５】
しかし、エンジン５０の稼働が継続するほど、制御対象における経時的な変化、例えばスロットル弁５３におけるデポジットの堆積などが蓄積されるため、学習値を更新する必要性は高くなる。これに対して、制御装置４００では、学習が完了してからのエンジン５０の積算稼働量が多くなるほど、車速閾値が小さな値になり、間欠停止禁止処理を実行する機会が拡大して間欠停止禁止処理が実行されやすくなる。すなわち、制御装置４００では、エンジン５０の積算稼働量が増えることに伴って学習値を更新する必要性が高まるのに応じて、間欠停止禁止処理の実行機会を拡大し、学習値の更新機会を確保する。したがって、制御装置４００によれば、学習値の更新機会の確保と、間欠停止制御の実行による燃料消費量の抑制との調和を図ることができる。
【０１７６】
（２−２）制御における補正量が大きいときには、速やかに学習値を更新することが望ましい。これに対して、制御装置４００では、補正量が大きいときほど、車速閾値が小さくなり、間欠停止禁止処理の実行機会が拡大される。すなわち、制御装置４００によれば、補正量が大きいときに、学習値の更新機会を拡大して制御のずれの速やかな解消を図ることができる。
【０１７７】
（カムポジションセンサが故障している場合のエンジン始動にかかる制御について）
（３−１）制御装置４００では、カムポジションセンサ１６０が故障しているときにはクランクポジションセンサ１５０による欠け歯部１５３の検知に基づいて、欠け歯部１５３に対応する２つのクランク角のうち一方のクランク角をクランク角として仮決定する。そして、エンジンコントロールユニット３００は、仮決定されたクランク角に基づいて算出されたクランクカウンタの値に基づいてエンジン５０を制御する。そのため、カムポジションセンサ１６０が故障していても、約５０％の確率で、エンジン５０を始動させることができる。
【０１７８】
（３−２）制御装置４００では、仮決定したクランク角に基づいて算出したクランクカウンタの値を用いた始動が失敗した場合には、欠け歯部１５３に対応する２つのクランク角のうち仮決定したクランク角ではない他方のクランク角に基づいてクランクカウンタを算出し直す。そして、算出し直したクランクカウンタを利用してエンジン５０の始動を再度試みる。そのため、仮決定した一方のクランク角に基づく始動が失敗した場合でも、他方のクランク角に基づいて算出し直したクランクカウンタを用いた始動によってエンジン５０の始動を完了させることができる。
【０１７９】
（３−３）制御装置４００では、エンジン５０の運転を停止させる場合であってもモータジェネレータの回転角を参照してクランクシャフト５９の回転角を推定するため、エンジン５０が停止している間のクランク角を把握できる。そのため、次回のエンジン始動の際に、把握しているクランク角に基づいて始動を行うことができる。したがって、カムポジションセンサ１６０が故障していても速やかにエンジン５０の始動を完了させることができる。
【０１８０】
（３−４）制御装置４００では、第１モータジェネレータ１１の回転角及び第２モータジェネレータ１２の回転角を参照してクランクカウンタを算出することができない状態になったときにエンジン５０の運転を継続させる。そのため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。
【０１８１】
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・制御装置４００は、外部電源４０によりバッテリ３０を充電可能なプラグインハイブリッド車に適用されていたが、非プラグインタイプのハイブリッド車両に適用してもよい。
【０１８２】
・エンジン５０が、吸気側のバルブタイミング変更機構５６と排気側のバルブタイミング変更機構５６とを備えている例を示したが、制御装置４００は、バルブタイミング変更機構５６を備えていないエンジンを備えたハイブリッド車両に適用することもできる。
【０１８３】
具体的には、吸気側のバルブタイミング変更機構５６のみを備えているエンジンや排気側のバルブタイミング変更機構５６のみを備えているエンジン、さらにはバルブタイミング変更機構５６を備えていないエンジンを搭載したハイブリッド車両に適用することもできる。
【０１８４】
・クランクカウンタの値の表現は「１」、「２」、「３」、…といった１つずつカウントアップするものに限らない。例えば、対応するクランク角にあわせて「０」、「３０」、「６０」、…と３０ずつカウントアップさせるようにしてもよい。もちろん、クランク角と同じ３０ずつのカウントアップになっていなくてもよい。例えば「０」、「５」、「１０」、…と５つずつのカウントアップにしてもよい。
【０１８５】
・クランクカウンタを３０°ＣＡ毎にカウントアップさせる例を示したが、クランクカウンタのカウントアップのさせ方はこうした態様には限らない。例えば、１０°ＣＡ毎にカウントアップさせる構成を採用してもよいし、３０°ＣＡよりも長い間隔でカウントアップさせる構成を採用してもよい。すなわち、上記実施形態では、エッジが３つ計数される度にクランクカウンタをカウントアップさせ、クランクカウンタを３０°ＣＡ毎にカウントアップさせる構成を採用しているが、カウントアップに要するエッジの数は適宜変更してもよい。例えば、エッジが１つ計数される度にクランクカウンタをカウントアップさせ、１０°ＣＡ毎にクランクカウンタをカウントアップさせる構成を採用することもできる。
【０１８６】
・バルブタイミング変更機構５６は、油圧駆動式のものであってもよい。その場合、解除動作では、油圧を制御するオイルコントロールバルブを往復動させる。
・例示した診断処理をすべて実施しなくてもよい。また、実施する診断処理は例示したものに限らない。エンジン５０が運転していないときに異常の発生を診断できない診断処理を実施する場合には、間欠停止禁止処理を実施する構成を採用すると、上記実施形態と同様に、診断を実施する機会を確保して、速やかに診断を完了させることができる、という効果が得られる。
【０１８７】
・診断処理において、学習処理を実行した際に、学習値が上限又は下限に到達している場合に、異常が発生しているとの判定を行う例を示したが、異常診断の方法はこうした態様に限らない。例えば、目標値と検出値とのずれが大きいときに異常が発生していると判定するようにしてもよい。
【０１８８】
・仮判定フラグがＯＮになっていることによって間欠停止禁止処理が継続するのを２トリップまでに制限している例を示したが、間欠停止禁止処理が継続するのを許容するトリップ数は、「２」に限らない。例えば、「３」以上であってもよい。また、継続を制限する構成を省略してもよい。
【０１８９】
・図１１を参照して説明したように、上記実施形態では、仮判定フラグがＯＮになったあとに、正常カウンタが「３」以上になったときに、仮判定フラグを消去し、異常が発生していることを示す表示をやめていた。これに対して、仮判定フラグを消去する条件となる正常カウンタの閾値は「３」には限らない。例えば、「３」よりも小さい値であってもよく、「４」以上の値であってもよい。
【０１９０】
・仮判定ルーチンを通じて異常が有るとの判定がなされ、仮判定フラグがＯＮになっているときに、本判定ルーチンを通じて異常が有るとの判定がなされると、異常が発生しているとの診断を下して、本判定フラグをＯＮにする例を示した。これに対して、診断処理における診断の確定の方法、すなわち最終的に診断を下す条件は適宜変更することができる。例えば、仮判定ルーチンを通じて異常が有る旨の判定が複数回連続したときに、異常が発生しているとの診断を下して、本判定フラグをＯＮにするようにしてもよい。
【０１９１】
・制御装置４００が、システムコントロールユニット１００と、パワーコントロールユニット２００と、エンジンコントロールユニット３００とによって構成されている例を示したが、制御装置の構成はこうした構成に限らない。例えば、物理的に１つの装置として制御装置が構成されていてもよい。また、制御装置は４つ以上のユニットによって構成されていてもよい。
【０１９２】
・閾値算出部１０３が、学習値を学習する対象の制御における補正量が大きいときほど、小さな値を車速閾値として算出する例を示したが、ステップＳ５１０の処理を省略し、閾値算出部１０３が、補正量によらずに、積算稼働量に基づいて車速閾値を算出するようにしてもよい。
【０１９３】
・稼働量算出部１０２が、積算稼働量の指標値として、ハイブリッド車両１０の積算航行距離を算出する例を示したが、積算稼働量の指標値はこれに限らない。例えば、稼働量算出部１０２が、積算稼働量の指標値として、直近の学習処理による学習値の学習が完了してからのエンジン５０の積算吸入空気量を算出する構成を採用してもよい。
【０１９４】
積算吸入空気量が多くなるほど、エンジン５０の積算稼働量が多いといえる。そのため、学習が完了してからのエンジン５０の積算吸入空気量を、学習が完了してからのエンジン５０の積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジン５０の積算稼働量を推定することができる。
【０１９５】
また、例えば、稼働量算出部１０２が、積算稼働量の指標値として、直近の学習処理による学習値の学習が完了してからのエンジン５０の積算稼働時間を算出する構成を採用してもよい。
【０１９６】
積算稼働時間が長くなるほど、エンジン５０の積算稼働量が多いといえる。そのため、学習が完了してからのエンジン５０の積算稼働時間を、学習が完了してからのエンジン５０の積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジン５０の積算稼働量を推定することができる。
【０１９７】
・欠け歯部１５３に対応するクランク角が、「９０°ＣＡ」と「４５０°ＣＡ」であり、カムポジションセンサ１６０が故障した場合に欠け歯部１５３が検出されたクランク角を「９０°ＣＡ」に仮決定する例を示した。しかし、仮決定するクランク角を「４５０°ＣＡ」にしてもよい。この場合、ステップＳ７１０の処理では、「９０°ＣＡ」を正しいクランク角であったとみなしてクランクカウンタを算出し直す。
【０１９８】
すなわち、クランクシャフト５９が２回転する場合、欠け歯部１５３に対応する２つのクランク角は３６０°ＣＡ分離れているため、一方のクランク角に対して、他方のクランク角は１回転分増大又は減少させたクランク角になる。
【０１９９】
したがって、エンジン５０の始動が失敗した場合には、カウンタ算出部３０２が仮決定したクランク角から１回転分増大又は減少させたクランク角に基づいてクランクカウンタを算出し直し、算出し直したクランクカウンタに基づいてエンジン５０を再度始動するようになっていればよい。
【０２００】
・仮決定したクランク角に基づく始動が失敗したときにクランクカウンタの値を切り替える図１６を参照して説明した処理を省略してもよい。少なくとも、欠け歯部１５３に対応する２つのクランク角のうち一方のクランク角に仮決定して始動を行えば、約５０％の確率で始動を成功させることができる。
【０２０１】
・モータジェネレータの回転角を参照してクランクカウンタを算出することができなくなった場合に間欠停止を禁止する構成を省略してもよい。この場合、次に始動する際には、クランク角を仮決定し、図１６を参照して説明した処理を実行して始動を試みればよい。
【０２０２】
・エンジン５０の運転を停止させている間も、モータジェネレータの回転角を参照してクランクカウンタの算出を継続する構成を省略してもよい。
・第３間欠停止禁止フラグを不揮発性メモリ１０４に記憶させる例を示したが、不揮発性メモリ１０４ではない、給電が停止された場合に記憶が消去されるメモリに第３間欠停止禁止フラグを記憶させてもよい。この場合には、次回、エンジン５０を運転させて図１７を示して説明したルーチンを実行したときに、第３間欠停止禁止フラグがＯＮにされる。
【０２０３】
・エンジン５０を運転させている際に、第２モータジェネレータ１２による駆動力の変更又は第１モータジェネレータ１１による発電量の変更などがあった直後は、機関回転速度が安定しにくい。そのため、このときには、ＩＳＣ学習を禁止して、ＩＳＣ学習を行わないようにしてもよい。また、このときには、ＩＳＣ学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。また、ＩＳＣ学習を禁止せずにＩＳＣ学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。
【０２０４】
・エンジン５０の始動時などの燃料増量補正を行った場合にも機関回転速度が安定しにくい。そのため、燃料増量補正を行っているとき、及び行った直後には、ＩＳＣ学習を禁止して、ＩＳＣ学習を行わないようにしてもよい。また、このときには、ＩＳＣ学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。また、ＩＳＣ学習を禁止せずにＩＳＣ学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。
【０２０５】
・インバランスの診断処理を実行するときには、信号とノイズの比率であるＳ／Ｎ比を確保するために、点火時期を遅角させ、吸入空気量を増大させている。そのため、ＩＳＣ学習における学習値にずれが生じる可能性がある。そこで、インバランスの診断処理を実行しているときには、ＩＳＣ学習を行わないようにしてもよい。
【０２０６】
・ＩＳＣ学習を行う場合、他の制御との兼ね合いで、学習値にずれが生じてしまう場合であっても、制御の影響によるずれの大きさを予め把握できるのであれば、それを相殺して学習を行うことができる。そのため、そうした相殺を行う場合には、上記実施形態のように間欠停止禁止処理を行って学習を実行する。例えば、第２モータジェネレータ１２による駆動力の変更又は第１モータジェネレータ１１による発電量の変更などがあった場合には、クランクシャフト５９にかかるトルクが変化するため、そのままでは、ＩＳＣ学習を正しく行えないが、トルクの変化を予め織り込んでおき、相殺することで学習を行うことができる。その場合には、上記実施形態のように間欠停止禁止を実施して、学習を行うことができる。
【０２０７】
・なお、アイドリング運転中には第１モータジェネレータ１１への通電を制御してクランクシャフト５９に第１モータジェネレータ１１による負荷が作用しないようにしている。しかし、その制御には第１モータジェネレータ１１の回転数毎に誤差がある。その結果、ＩＳＣ学習における学習値にずれが生じてしまう。そこで、第１モータジェネレータの回転数毎に補正量を設定し、補正を施して第１モータジェネレータ１１への通電を制御してＩＳＣ学習を行うようにすることもできる。第１モータジェネレータ１１の回転数は車速に比例するため、補正量は車速に基づいて算出すればよい。
【０２０８】
・モータジェネレータの回転角を参照してクランクカウンタを算出できなくなったか否かを判定する例として、レゾネータの故障を例示した。しかし、モータジェネレータの回転角を参照してクランクカウンタを算出できなくなる要因は、レゾネータの故障に限らない。例えば、図１８に示すような１モータハイブリッド車両の場合には、クラッチ２３０によってエンジン５０のクランクシャフト５９と駆動モータ２１０との接続を解除することによって、駆動モータ２１０の回転角を参照してクランクカウンタを算出することができなくなる。
【０２０９】
こうした構成の場合の制御の例について図１８及び図１９を参照して説明する。
図１８に示すように、このハイブリッド車両は、エンジン５０と変速機２２０との間に駆動モータ２１０が設けられている。また、駆動モータ２１０とエンジン５０との間にはクラッチ２３０が介在している。駆動モータ２１０は変速機２２０の入力軸２２１に繋がっており、変速機の出力軸２２２には、差動機構２２を介して、車輪２３の駆動軸２４が連結されている。
【０２１０】
制御装置４００は停止禁止部１０１とカウンタ算出部３０２とを備えている。制御装置４００は、エンジン５０とクラッチ２３０と駆動モータ２１０を制御する。
この制御装置４００では、図１７に示したルーチンに替えて、図１９に示したルーチンを実行する。このルーチンは制御装置４００によって、カムポジションセンサ１６０が故障している状態であり、第３間欠停止フラグがＯＦＦになっているエンジン５０の運転中に、繰り返し実行される。
【０２１１】
図１９に示すように、このルーチンを開始すると、制御装置４００は、まずステップＳ９００の処理において、クラッチ２３０がクランクシャフト５９と駆動モータ２１０との接続を解除した状態であるＯＦＦの状態になっているか否かを判定する。すなわち、制御装置４００は、このステップＳ９００の処理を通じて、駆動モータ２１０の回転角を参照してクランクカウンタを算出することができない状態になっているか否かを判定する。
【０２１２】
ステップＳ９００の処理において、クラッチがＯＦＦになっていると判定した場合（ステップＳ９００：ＹＥＳ）には、制御装置４００は、処理をステップＳ９１０へと進める。そして、制御装置４００は、ステップＳ９１０の処理において第３間欠停止禁止フラグをメモリに記憶する。これにより、第３間欠停止禁止フラグがＯＮになる。こうして第３間欠停止禁止フラグをＯＮにすると、制御装置４００は、このルーチンを一旦終了させる。なお、初期状態では、第３間欠停止禁止フラグはメモリに記憶されておらず、ＯＦＦになっている。また、この制御装置４００の場合には、第３間欠停止禁止フラグを記憶するメモリは不揮発性メモリではないため、給電が停止された場合には、第３間欠停止禁止フラグは消去される。
【０２１３】
一方で、ステップＳ９００の処理において、クラッチがＯＦＦになっておらず、クランクシャフト５９と駆動モータ２１０とを接続させた状態であるＯＮの状態になっていると判定した場合（ステップＳ９００：ＮＯ）には、制御装置４００は、ステップＳ９１０の処理を実行せずにこのルーチンを一旦終了させる。
【０２１４】
こうした構成を採用した場合にも、モータジェネレータの回転角を参照してクランクカウンタの算出を行うことができない状態になった場合に、停止禁止部１０１が、間欠停止禁止処理を実行してエンジンの運転を継続させることができる。そのため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。
【０２１５】
上記実施形態及び変更例から把握できる技術的思想について記載する。
（１）エンジンとモータとを駆動力源として備えたハイブリッド車両に適用され、前記エンジンの運転を自動で停止させ、再始動させる間欠停止制御と、前記エンジンの制御に用いる学習値を学習する学習処理と、を実行するハイブリッド車両の制御装置であり、前記間欠停止制御による前記エンジンの運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部と、直近の前記学習処理による前記学習値の学習が完了してからの前記エンジンの積算稼働量を示す指標値を算出する稼働量算出部と、前記稼働量算出部が算出した指標値に基づいて車速閾値を算出する閾値算出部と、を備え、前記閾値算出部が、前記指標値に基づいて前記積算稼働量が多いときほど、小さな値を前記車速閾値として算出し、前記停止禁止部が、前記ハイブリッド車両の車速が前記車速閾値以上である場合に、前記間欠停止禁止処理を実行するハイブリッド車両の制御装置。
【０２１６】
エンジンの稼働が継続するほど、制御対象における経時的な変化、例えばスロットル弁におけるデポジットの堆積などが蓄積されるため、学習値を更新する必要性は高くなる。これに対して、上記構成によれば、学習が完了してからのエンジンの稼働量が多くなるほど、車速閾値が小さな値になり、間欠停止禁止処理を実行する機会が拡大し、間欠停止禁止処理が実行されやすくなる。すなわち、上記構成によれば、エンジンの稼働量が増えることに伴って学習値を更新する必要性が高まるのに応じて、間欠停止禁止処理の実行機会を拡大し、学習値の更新機会の確保と、間欠停止制御の実行による燃料消費量の抑制との調和を図ることができる。
【０２１７】
（２）前記閾値算出部が、前記学習値を学習する対象の制御における補正量が大きいときほど、小さな値を前記車速閾値として算出する（１）に記載のハイブリッド車両の制御装置。
【０２１８】
制御における補正量が大きいときには、速やかに学習値を更新することが望ましい。これに対して、上記構成によれば、補正量が大きいときほど、車速閾値が小さくなり、間欠停止禁止処理の実行機会が拡大される。すなわち、補正量が大きいときに、学習値の更新機会を拡大して制御のずれの速やかな解消を図ることができる。
【０２１９】
（３）前記稼働量算出部が、前記指標値として、直近の前記学習処理による前記学習値の学習が完了してからの前記ハイブリッド車両の積算走行距離を算出する（１）又は（２）に記載のハイブリッド車両の制御装置。
【０２２０】
積算走行距離が長くなるほど、エンジンの積算稼働量は多くなりやすい。そのため、学習が完了してからの積算走行距離を、学習が完了してからのエンジンの積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
【０２２１】
（４）前記稼働量算出部が、前記指標値として、直近の前記学習処理による前記学習値の学習が完了してからの前記エンジンの積算吸入空気量を算出する（１）又は（２）に記載のハイブリッド車両の制御装置。
【０２２２】
積算吸入空気量が多くなるほど、エンジンの積算稼働量が多いといえる。そのため、学習が完了してからのエンジンの積算吸入空気量を、学習が完了してからのエンジンの積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
【０２２３】
（５）前記稼働量算出部が、前記指標値として、直近の前記学習処理による前記学習値の学習が完了してからの前記エンジンの積算稼働時間を算出する（１）又は（２）に記載のハイブリッド車両の制御装置。
【０２２４】
積算稼働時間が長くなるほど、エンジンの積算稼働量が多いといえる。そのため、学習が完了してからのエンジンの積算稼働時間を、学習が完了してからのエンジンの積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
【０２２５】
（６）エンジンとモータとを駆動力源として備えたハイブリッド車両に適用され、前記エンジンの運転を自動で停止させ、再始動させる間欠停止制御を実行するハイブリッド車両の制御装置であり、前記エンジンのクランクシャフトの回転に伴って一定のクランク角毎にクランクポジションセンサが出力するパルス信号の検知及び前記クランクシャフトが１回転する間に１度発生する欠け歯部の検知及び前記クランクシャフトと連動して回転して前記クランクシャフトが２回転する間に１回転するカムシャフトの特定のカム角の到来を検出するカムポジションセンサが出力する信号の検知に基づいて前記クランクシャフトが２回転する分のクランク角に対応するクランクカウンタの値を算出するカウンタ算出部を備え、前記カムポジションセンサが故障しているときには、前記カウンタ算出部は、前記クランクポジションセンサによる前記欠け歯部の検知に基づいてクランク角を仮決定してクランクカウンタの値を算出し、前記カムポジションセンサが故障しているときには、仮決定したクランク角に基づいて前記カウンタ算出部が算出したクランクカウンタの値に基づいてエンジンを制御するハイブリッド車両の制御装置。
【０２２６】
クランクシャフトが２回転する間に欠け歯部は２回検知されるため、欠け歯部に対応するクランク角は１回転目におけるクランク角と、その１回転目のクランク角から３６０°ＣＡ分離れた２回転目におけるクランク角との２つがある。
【０２２７】
上記構成によれば、カムポジションセンサが故障しているときにはクランクポジションセンサによる欠け歯部の検知に基づいて欠け歯部に対応する２つのクランク角のうち、一方のクランク角をクランク角として仮決定し、仮決定されたクランク角に基づいてクランクカウンタの値が算出される。そして、仮決定されたクランク角に基づいて算出したクランクカウンタの値に基づいてエンジンが制御される。そのため、カムポジションセンサが故障しても、仮決定したクランク角に基づいて算出したクランクカウンタの値に基づいてエンジンを制御することによって、約５０％の確率で、エンジンを始動させることができる。
【０２２８】
（７）仮決定したクランク角に基づいて算出したクランクカウンタの値に基づいて実行した前記エンジンの始動が成功した場合には、前記カウンタ算出部が前記仮決定したクランク角に基づく前記クランクカウンタの算出を継続する一方、仮決定したクランク角に基づいて算出したクランクカウンタの値に基づいて実行した前記エンジンの始動が失敗した場合には、前記カウンタ算出部が仮決定したクランク角から１回転分増大又は減少させたクランク角に基づいて前記クランクカウンタを算出し直し、算出し直した前記クランクカウンタに基づいて前記エンジンを再度始動する（６）に記載のハイブリッド車両の制御装置。
【０２２９】
上記構成によれば、仮決定したクランク角に基づいて算出したクランクカウンタの値を用いた始動が失敗した場合には、欠け歯部に対応する２つのクランク角のうち仮決定したクランク角ではない他方のクランク角に基づいてクランクカウンタを算出し直し、算出し直したクランクカウンタを利用してエンジンの始動を再度試みる。そのため、仮決定した一方のクランク角に基づく始動が失敗した場合でも、他方のクランク角に基づいて算出し直したクランクカウンタを用いた始動によってエンジンの始動を完了させることができる。
【０２３０】
（８）前記カウンタ算出部が、前記モータの回転角を参照して前記クランクカウンタの算出を行う（６）又は（７）に記載のハイブリッド車両の制御装置。
クランクポジションセンサは、クランクシャフトの回転速度が極めて遅いときにはクランク角を検出できない。また、クランクシャフトの回転方向を特定できないため、エンジンの停止直前にクランクシャフトが逆回転方向に回転すると、クランク角を把握できなくなる。これに対して、モータとエンジンとを利用して走行するハイブリッド車両の場合には、エンジンの駆動を補助しているモータの回転角に基づいて、クランクシャフトの回転角を推定することができる。この場合、エンジンが停止するようなクランクシャフトの回転速度が極めて遅い場合や、逆回転方向への回転が生じた場合であってもクランクシャフトの回転角を推定することができる。そのため、上記構成によれば、エンジンの運転を停止させる場合であってもモータの回転角を参照してクランクシャフトの回転角を推定することができる。こうしてエンジンが停止している間のクランク角を把握できれば、次回のエンジン始動の際には、把握しているクランク角に基づいて始動を行うことができる。そのため、カムポジションセンサが故障していても速やかにエンジンの始動を完了させることができる。
【０２３１】
（９）前記間欠停止制御による前記エンジンの運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部を備え、前記カムポジションセンサが故障しており、且つ前記モータの回転角を参照して前記クランクカウンタの算出を行うことができない状態になった場合には、前記停止禁止部が、間欠停止禁止処理を実行して前記エンジンの運転を継続させる（８）に記載のハイブリッド車両の制御装置。
【０２３２】
カムポジションセンサが故障しているときに、間欠停止制御によりエンジンの運転が停止されると、再び、欠け歯部の検知に基づいて仮決定したクランク角を利用した始動を行う必要がある。
【０２３３】
カムポジションセンサが故障している状態での再始動は失敗するおそれがあり、エンジンの運転を継続させる場合と比較して燃料の無駄な消費や未燃ガスの排出をまねくおそれがある。これに対して、上記の構成によれば、エンジンの運転を継続させるため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。
【符号の説明】
【０２３４】
１０…ハイブリッド車両、１１…第１モータジェネレータ、１２…第２モータジェネレータ、１３…遊星ギア機構、１４…サンギア、１５…プラネタリキャリア、１６…リングギア、１７…カウンタドライブギア、１８…カウンタドリブンギア、１９…リダクションギア、２０…ファイナルドライブギア、２１…ファイナルドリブンギア、２２…差動機構、２３…車輪、２４…駆動軸、３０…バッテリ、３１…コネクタ、４０…外部電源、５０…エンジン、５１…吸気通路、５２…エアクリーナ、５３…スロットル弁、５４…燃料噴射弁、５５…燃焼室、５６…バルブタイミング変更機構、５７…イグナイタ、５８…点火プラグ、５９…クランクシャフト、６０…排気通路、６１…第１三元触媒、６２…第２三元触媒、６３…ＥＧＲクーラ、６４…ＥＧＲ通路、６５…ＥＧＲ弁、６６…吸気弁、６７…排気弁、７０…燃料タンク、７１…燃料ポンプ、７２…フィルタ、７３…燃料供給通路、７４…電動リリーフ弁、７５…リターン通路、８１…水温センサ、８２…排気温センサ、８３…空燃比センサ、８４…酸素センサ、８５…アクセルポジションセンサ、８６…車速センサ、８７…燃圧センサ、８８…エアフロメータ、８９…吸気圧センサ、９０…ノックセンサ、９１…カムシャフト、９３…油圧センサ、１００…システムコントロールユニット、１０１…停止禁止部、１０２…稼働量算出部、１０３…閾値算出部、１０４…不揮発性メモリ、１１０…警告表示部、１２０…システムメインスイッチ、１５０…クランクポジションセンサ、１５１…センサプレート、１５２…信号歯、１５３…欠け歯部、１６０…カムポジションセンサ、１６１…タイミングロータ、１６２…大突起部、１６３…中突起部、１６４…小突起部、１７０…オイルポンプ、１７１…オイルコントロールバルブ、１７３…オイルパン、１７４…ストレーナ、１７５…オイル供給通路、１７６…オイル還流通路、１７８…吐出通路、１７９…排出通路、１８０…ウォータポンプ、１８１…ラジエータ、１８２…ファン、１８３…サーモスタット、１８４…導入通路、１８５…排出通路、１８６…吸入通路、１８７…バイパス通路、２００…パワーコントロールユニット、２１０…駆動モータ、２２０…変速機、２２１…入力軸、２２２…出力軸、２３０…クラッチ、３００…エンジンコントロールユニット、３０１…診断部、３０２…カウンタ算出部、４００…制御装置。
【図１】
2020203606.tif 000003
【図２】
2020203606.tif 000004
【図３】
2020203606.tif 000005
【図４】
2020203606.tif 000006
【図５】
2020203606.tif 000007
【図６】
2020203606.tif 000008
【図７】
2020203606.tif 000009
【図８】
2020203606.tif 000010
【図９】
2020203606.tif 000011
【図１０】
2020203606.tif 000012
【図１１】
2020203606.tif 000013
【図１２】
2020203606.tif 000014
【図１３】
2020203606.tif 000015
【図１４】
2020203606.tif 000016
【図１５】
2020203606.tif 000017
【図１６】
2020203606.tif 000018
【図１７】
2020203606.tif 000019
【図１８】
2020203606.tif 000020
【図１９】
2020203606.tif 000021