以下、ハイブリッド車両の制御装置の一実施形態について、図1〜図17を参照して説明する。
図1に示すように、ハイブリッド車両10は、エンジン50を備えている。また、ハイブリッド車両10は、電力を蓄えるバッテリ30を備えている。さらにハイブリッド車両10は、第1モータジェネレータ11と第2モータジェネレータ12とを備えている。これら第1モータジェネレータ11及び第2モータジェネレータ12は、バッテリ30からの給電に応じて駆動力を発生するモータであり、外部からの動力を受けてバッテリ30に充電する電力を発電する発電機としての機能も兼ね備えている。
さらに、ハイブリッド車両10には、サンギア14、プラネタリキャリア15、リングギア16の3つの回転要素を有する遊星ギア機構13が設けられている。遊星ギア機構13のプラネタリキャリア15には、エンジン50の出力軸であるクランクシャフト59が連結されており、遊星ギア機構13のサンギア14には第1モータジェネレータ11が連結されている。また、遊星ギア機構13のリングギア16には、カウンタドライブギア17が一体に設けられている。カウンタドライブギア17には、カウンタドリブンギア18が噛み合わされている。そして、第2モータジェネレータ12は、このカウンタドリブンギア18に噛み合わされたリダクションギア19に連結されている。
カウンタドリブンギア18には、ファイナルドライブギア20が一体回転可能に連結されている。ファイナルドライブギア20には、ファイナルドリブンギア21が噛み合わされている。そして、ファイナルドリブンギア21には、差動機構22を介して、車輪23の駆動軸24が連結されている。
このハイブリッド車両10を制御する制御装置400は、システムコントロールユニット100と、パワーコントロールユニット200と、エンジンコントロールユニット300とによって構成されている。
第1モータジェネレータ11及び第2モータジェネレータ12は、システムコントロールユニット100と接続されたパワーコントロールユニット200を介してバッテリ30に接続されている。パワーコントロールユニット200は、制御部とインバータとコンバータとを含んでおり、システムコントロールユニット100からの指令に基づいてバッテリ30から第1モータジェネレータ11及び第2モータジェネレータ12への給電量と、第1モータジェネレータ11及び第2モータジェネレータ12からバッテリ30への充電量とを調整する。なお、ハイブリッド車両10には外部電源40と接続可能なコネクタ31が設けられている。そのため、バッテリ30は、外部電源40からの供給電力によっても充電可能である。すなわち、ハイブリッド車両10は、プラグインハイブリッド車である。
システムコントロールユニット100には、エンジン50を制御するエンジンコントロールユニット300も接続されている。エンジンコントロールユニット300は、システムコントロールユニット100からの指令に基づいてエンジン50を制御する。
図2に示すように、エンジン50は、燃焼室55に導入される吸気が流れる吸気通路51と、燃焼室55から排出された排気が流れる排気通路60とを有している。そして、エンジン50には、燃料タンク70から供給された燃料を噴射する燃料噴射弁54と、燃料噴射弁54が噴射した燃料と空気との混合気を火花放電により点火する点火プラグ58とが設けられている。
吸気通路51には、上流側から順に、エアクリーナ52、エアフロメータ88、スロットル弁53、吸気圧センサ89、燃料噴射弁54が配置されている。エアクリーナ52は、吸気通路51に吸入された大気中の粉塵などを捕集する。エアフロメータ88は、吸気の量である吸入空気量を検出する。スロットル弁53は、電動のアクチュエータであるモータによって駆動される。エンジン50では、スロットル弁53の開度の変更によって吸気の流れる流路の面積を増減することで吸入空気量を調整する。吸気圧センサ89は、吸気通路51におけるスロットル弁53よりも下流側の部分の圧力である吸気圧を検出する。燃料噴射弁54は、吸気中に燃料を噴射して、燃焼室55内で燃焼する混合気を形成する。
燃料タンク70内には、燃料ポンプ71が配置されている。燃料ポンプ71はモータによって駆動される。燃料ポンプ71によって汲み上げられた燃料はフィルタ72を通過して燃料供給通路73を通じて燃料噴射弁54に供給される。燃料供給通路73には燃料の圧力を検出する燃圧センサ87が設けられている。
燃料タンク70内の燃料供給通路73におけるフィルタ72よりも下流側の部分からは燃料ポンプ71が汲み上げた燃料を燃料タンク70内に戻すリターン通路75が分岐している。リターン通路75の途中には電動リリーフ弁74が設けられている。電動リリーフ弁74は電動のアクチュエータによって開閉される。電動リリーフ弁74が開弁していると、燃料供給通路73内の燃料がリターン通路75を通じて燃料タンク70内に排出される。
図2に示すように燃焼室55には、電気火花により混合気に点火する点火プラグ58が設置されている。また、点火プラグ58には、イグナイタ57が設置されている。イグナイタ57は、電気火花の形成に必要な高電圧を発生する。
排気通路60には、上流側から順に、空燃比センサ83、第1三元触媒61、酸素センサ84、第2三元触媒62が設置されている。空燃比センサ83は、燃焼室55から排出された排気の酸素濃度を、ひいては燃焼室55内で燃焼した混合気の空燃比を検出する。第1三元触媒61及び第2三元触媒62は、排気を清浄化する。酸素センサ84は、第1三元触媒61を通過した後の排気の酸素濃度に応じた信号を出力する。
エンジン50には吸気通路51と燃焼室55とを遮断する吸気弁66の開閉タイミングを変更する吸気側のバルブタイミング変更機構56と、排気通路60と燃焼室とを遮断する排気弁67の開閉タイミングを変更する排気側のバルブタイミング変更機構56とが設けられている。いずれのバルブタイミング変更機構56も電動のモータによって駆動されてクランクシャフト59の回転位相に対するカムシャフト91の回転位相を変更する。
また、エンジン50には、排気通路60を流れる排気の一部を、吸気通路51を流れる吸気中に再循環させる排気再循環システムが設けられている。排気再循環システムは、排気通路60と吸気通路51とを繋ぐEGR通路64を有している。EGR通路64は、排気通路60における第1三元触媒61よりも下流側の部分と、吸気通路51におけるスロットル弁53よりも下流側の部分とを繋いでいる。EGR通路64には、排気通路60から吸気通路51に再循環されるガスを冷却するEGRクーラ63と、再循環させるガスの量を調整するEGR弁65とが配置されている。なお、EGR弁65は電動のモータによって駆動される。
また、図3に示すように、エンジン50には、エンジン50の各部にオイルを循環させるオイルポンプ170が設けられている。なお、オイルポンプ170は、クランクシャフト59の動力によって駆動される。
オイルポンプ170は、一回転当たりの吐出量を変更することができる可変容量型のオイルポンプである。オイルポンプ170では、オイルコントロールバルブ171によって制御される制御油圧によって一回転当たりの吐出量が変化する。エンジンコントロールユニット300は、オイルコントロールバルブ171を制御することによってオイルポンプ170からのオイルの吐出量を制御し、エンジン50の各部に循環させるオイルの油圧を制御する。
オイルポンプ170は、オイルパン173に貯留されているオイルを、ストレーナ174を介して吸い上げる。そして、吸い上げたオイルを、オイル供給通路175を通じてエンジン50の各部に供給する。オイル供給通路175の途中からは、オイル還流通路176が分岐している。オイル還流通路176は、オイルコントロールバルブ171に繋がっている。オイル還流通路176は、オイルポンプ170から吐出されたオイルの一部をオイルコントロールバルブ171に還流させる。
オイルコントロールバルブ171には、オイルポンプ170の吐出量を変更するための制御油圧が作用する制御油室に繋がっている吐出通路178と、オイルパン173に繋がっている排出通路179とが接続されている。オイルコントロールバルブ171は、内蔵されているスプール弁を、電動のアクチュエータによって駆動し、オイル還流通路176を通じて還流してきたオイルをオイルポンプ170の制御油室に供給することによって、制御油室内の制御油圧を高める。また、オイルコントロールバルブ171は、スプール弁を駆動し、制御油室内のオイルを、排出通路179を通じてオイルパン173に排出することによって、制御油室内の制御油圧を低下させる。また、オイルコントロールバルブ171は、スプール弁によって吐出通路178及び排出通路179を閉塞し、制御油室内の制御油圧を保持することもできる。
エンジンコントロールユニット300は、オイルポンプ170の回転速度と相関を有するクランクシャフト59の回転速度と、油圧センサ93が検出した油圧の値とに基づいてオイルコントロールバルブ171を制御し、エンジン50の各部に供給しているオイルの油圧をフィードバック制御する。要求油圧が低いときには、一回転あたりのオイルの吐出量を少なくして、オイルポンプ170の駆動に伴うエネルギ消費を抑制する。なお、要求油圧は、エンジン50の運転状態や、オイルの需要部である各デバイスの稼働状況などに基づいてエンジンコントロールユニット300によって算出される。
また、図4に示すように、エンジン50には、ウォータポンプ180が設けられており、ラジエータ181を備えた放熱回路に冷却水を循環させる冷却システムが設けられている。
ウォータポンプ180は、エンジン50内のウォータジャケットに冷却水を導入する導入通路184の途中に設けられている。ウォータポンプ180から吐出された冷却水は、エンジン50内のウォータジャケットを通過して、排出通路185に排出される。排出通路185はラジエータ181の入口に繋がっている。ラジエータ181の出口にはサーモスタット183に繋がる吸入通路186が接続されている。
ラジエータ181には、ファン182が設けられており、ファン182によって吸引された空気がラジエータ181を通過することによってラジエータ181内を流れる冷却水と空気との熱交換が促進される。これにより、ラジエータ181を通過することによって冷却水の熱が放熱され、冷却水の温度が低下する。
ラジエータ181を通過した冷却水は、吸入通路186及びサーモスタット183を通じて導入通路184に流れ込み、ウォータポンプ180に吸入される。サーモスタット183には、排出通路185から分岐したバイパス通路187も接続されている。サーモスタット183は、バイパス通路187を通じて導入される冷却水の温度に応じて動作する。
具体的には、サーモスタット183は、バイパス通路187を通じて導入される冷却水の温度、すなわちエンジン50のウォータジャケットから排出された冷却水の温度が暖機判定温度未満であるときには、吸入通路186が接続されている部分を閉塞し、バイパス通路187と導入通路184とを連通させる。なお、暖機判定温度は、冷却水の温度が暖機判定温度以上であれば、エンジン50の暖機が完了していると判定することのできる温度であり、例えば、80℃前後の値である。
こうしてサーモスタット183において吸入通路186が接続されている部分が閉塞されている場合には、ラジエータ181を通過する冷却水の流れは生じない。その結果、排出通路185を通じて排出された冷却水は、全量がバイパス通路187及びサーモスタット183を通じて導入通路184に流れ込み、再びエンジン50のウォータジャケットに導入される。これにより、冷却水からの放熱が抑制され、エンジン50の暖機が促進される。
一方、サーモスタット183は、バイパス通路187を通じて導入される冷却水の温度が暖機判定温度以上であるときには、吸入通路186が接続されている部分を開放し、吸入通路186と導入通路184とを連通させる。こうして吸入通路186が接続されている部分が開放されている場合には、ラジエータ181を通過する冷却水の流れが生じる。その結果、排出通路185を通じて排出された冷却水はラジエータ181を通過して吸入通路186及びサーモスタット183を通じて導入通路184に流れ込み、再びエンジン50のウォータジャケットに導入される。これにより、ラジエータ181において冷却水の熱が放熱され、温度の低下した冷却水がウォータジャケットに導入されるようになる。そのため、エンジン50の過熱が抑制される。
なお、図4に示すように、ウォータジャケットの出口付近には、水温センサ81が設けられており、ウォータジャケットを通過して温められた冷却水の温度を検出する。
こうしたエンジン50は、システムコントロールユニット100からの指令に応じてエンジンコントロールユニット300により制御される。エンジンコントロールユニット300には、エンジン50の運転状態を検出する各種センサの検出信号が入力されている。エンジンコントロールユニット300に検出信号を入力するセンサには、エアフロメータ88、吸気圧センサ89、空燃比センサ83、酸素センサ84、燃圧センサ87も含まれている。その他に、エンジン50には、クランクシャフト59の回転角を検出するクランクポジションセンサ150、エンジン50の冷却水の温度を検出する水温センサ81、そして、排気通路60を流れて第1三元触媒61に導入される排気の温度を検出する排気温センサ82が設けられている。また、エンジン50には、ノッキングの発生を検出するノックセンサ90と、油圧を検出する油圧センサ93も設けられている。なお、クランクポジションセンサ150は、クランクシャフト59の回転位相の変化に応じたクランク角信号を出力する。
また、エンジン50には、吸気弁66を開閉させる吸気側のカムシャフト91の回転位相を検出する吸気側のカムポジションセンサ160と、排気弁67を開閉させる排気側のカムシャフト91の回転位相を検出する排気側のカムポジションセンサ160の2つのカムポジションセンサ160も設けられている。カムポジションセンサ160はエンジン50のカムシャフト91の回転位相の変化に応じたカム角信号を出力する。
エンジンコントロールユニット300には、これらのセンサの検出信号が入力されている。エンジンコントロールユニット300は、クランクポジションセンサ150から入力されるクランクシャフト59の回転角の検出信号に基づいてクランクシャフト59の回転速度である機関回転速度を算出する。
また、図1に示すように、システムコントロールユニット100には、アクセルの操作量を検出するアクセルポジションセンサ85と、車速を検出する車速センサ86とが接続されている。そして、アクセルポジションセンサ85の検出信号と車速センサ86の検出信号はシステムコントロールユニット100に入力されている。システムコントロールユニット100には、システムメインスイッチ120も接続されている。
また、パワーコントロールユニット200には、バッテリ30の電流、電圧及び温度が入力されている。パワーコントロールユニット200は、これら電流、電圧及び温度に基づき、バッテリ30の充電容量に対する充電残量の比率である充電状態指標値SOCを算出している。
エンジンコントロールユニット300とパワーコントロールユニット200は、それぞれシステムコントロールユニット100に接続されている。そして、システムコントロールユニット100とパワーコントロールユニット200とエンジンコントロールユニット300とのそれぞれが、センサから入力された検出信号に基づく情報や算出した情報を相互にやりとりし、共有している。
システムコントロールユニット100は、これらの情報に基づき、エンジンコントロールユニット300に指令を出力し、エンジンコントロールユニット300を通じてエンジン50を制御する。また、システムコントロールユニット100は、これらの情報に基づき、パワーコントロールユニット200に指令を出力し、パワーコントロールユニット200を通じて第1モータジェネレータ11及び第2モータジェネレータ12の制御と、バッテリ30の充電制御とを行う。このようにシステムコントロールユニット100は、パワーコントロールユニット200とエンジンコントロールユニット300とに指令を出力することによりハイブリッド車両10を制御する。
続いて、こうしたシステムコントロールユニット100と、パワーコントロールユニット200と、エンジンコントロールユニット300とからなる制御装置400が行うハイブリッド車両10の制御について詳しく説明する。
システムコントロールユニット100は、アクセルの操作量と車速とに基づき、ハイブリッド車両10の出力の要求値である要求出力を演算する。そして、システムコントロールユニット100は、要求出力やバッテリ30の充電状態指標値SOCなどに応じて、エンジン50、第1モータジェネレータ11及び第2モータジェネレータ12のトルク配分を決定し、エンジン50の出力と、第1モータジェネレータ11、第2モータジェネレータ12による力行/回生とを制御する。なお、システムコントロールユニット100は、充電状態指標値SOCの大きさによってハイブリッド車両10の走行モードを切り替える。
システムコントロールユニット100は、充電状態指標値SOCが一定の水準を超えており、バッテリ30の充電残量に充分な余裕がある場合には、エンジン50を作動させずに、第2モータジェネレータ12による駆動力や第1モータジェネレータ11による駆動力によって走行するEV走行モードを選択する。
一方で、システムコントロールユニット100は、充電状態指標値SOCが一定の水準以下になった場合には、第1モータジェネレータ11及び第2モータジェネレータ12に加えて、エンジン50を使用して走行するHV走行モードを選択する。
なお、システムコントロールユニット100は、充電状態指標値SOCが一定の水準を超えている場合であっても、次のような場合には、HV走行モードを選択する。
・車速がEV走行モードの上限車速を超えているとき。
・アクセルの操作量が大きい急加速のときなど、一時的に大きな出力が必要なとき。
・エンジン50の始動が必要なとき。
システムコントロールユニット100は、HV走行モードを選択している場合には、エンジン50を始動させる際に第1モータジェネレータ11をスタータモータとして機能させる。具体的には、システムコントロールユニット100は、第1モータジェネレータ11によってサンギア14を回転させることによりクランクシャフト59を回転させてエンジン50を始動する。
また、システムコントロールユニット100は、HV走行モードを選択している場合には、充電状態指標値SOCの大きさに応じて停車時の制御を切り替える。具体的には、充電状態指標値SOCが閾値以上である場合には、システムコントロールユニット100は、エンジン50の運転を停止させ、第1モータジェネレータ11及び第2モータジェネレータ12の駆動も行わない。すなわち、システムコントロールユニット100は、停車時にエンジン50の運転を停止させてアイドリング運転を抑制する。なお、バッテリ30の充電状態指標値SOCが閾値未満である場合には、システムコントロールユニット100は、エンジン50を運転させ、エンジン50の出力によって第1モータジェネレータ11を駆動して第1モータジェネレータ11を発電機として機能させる。
システムコントロールユニット100は、HV走行モードを選択している場合には、走行中にも充電状態指標値SOCに応じて制御を切り替える。発進時及び軽負荷走行時において、バッテリ30の充電状態指標値SOCが閾値以上である場合には、システムコントロールユニット100は、第2モータジェネレータ12の駆動力のみによってハイブリッド車両10の発進及び走行を行う。この場合、エンジン50は停止しており、第1モータジェネレータ11による発電も行われない。一方で発進時及び軽負荷走行時において、バッテリ30の充電状態指標値SOCが閾値未満である場合には、システムコントロールユニット100は、エンジン50を始動して第1モータジェネレータ11で発電を行い、発電した電力をバッテリ30に充電する。このときには、ハイブリッド車両10は、エンジン50の駆動力の一部と第2モータジェネレータ12の駆動力とによって走行する。定常走行時において、バッテリ30の充電状態指標値SOCが閾値以上である場合には、システムコントロールユニット100は、運転効率の高い状態でエンジン50を運転させ、ハイブリッド車両10を主にエンジン50の出力で走行させる。このときには、エンジン50の動力は遊星ギア機構13を介して車輪23側と第1モータジェネレータ11側とに分割される。これにより、ハイブリッド車両10は、第1モータジェネレータ11で発電を行いながら走行する。そして、システムコントロールユニット100は発電した電力によって第2モータジェネレータ12を駆動し、第2モータジェネレータ12の動力によってエンジン50の動力を補助する。一方で定常走行時において、バッテリ30の充電状態指標値SOCが閾値未満である場合には、システムコントロールユニット100は機関回転速度をより高くし、第1モータジェネレータ11で発電された電力を第2モータジェネレータ12の駆動に使用するとともに、余剰の電力をバッテリ30に充電する。なお、加速時には、システムコントロールユニット100は機関回転速度を高めるとともに、第1モータジェネレータ11で発電された電力を第2モータジェネレータ12の駆動に使用し、エンジン50の動力と第2モータジェネレータ12の動力とによってハイブリッド車両10を加速させる。そして、システムコントロールユニット100は減速時には、エンジン50の運転を停止させる。そして、システムコントロールユニット100は第2モータジェネレータ12を発電機として機能させ、発電した電力をバッテリ30に充電する。ハイブリッド車両10では、こうした発電によって生じる抵抗をブレーキとして利用する。こうした減速時の発電制御を回生制御という。
このように、システムコントロールユニット100は、EV走行モードを選択している場合にはもちろんのこと、HV走行モードを選択している場合にも状況に応じてエンジン50を停止させる。すなわち、システムコントロールユニット100は、状況に応じてエンジン50を自動で停止させ、再始動させる間欠停止制御を実行する。
図2に示すように、エンジンコントロールユニット300は、クランクシャフト59の回転位相であるクランク角を示すクランクカウンタを算出するカウンタ算出部302を備えている。カウンタ算出部302は、クランク角信号、吸気側カム角信号、及び排気側カム角信号に基づき、クランクカウンタを算出する。エンジンコントロールユニット300は、カウンタ算出部302が算出するクランクカウンタを参照して各気筒に対する燃料噴射や点火のタイミングを制御するとともに、バルブタイミング変更機構56を制御する。
具体的には、エンジンコントロールユニット300は、アクセルの操作量、車速、吸入空気量、機関回転速度及び機関負荷率などに基づいて、燃料噴射量についての制御目標値である目標燃料噴射量を算出する。なお、機関負荷率は、基準流入空気量に対する1気筒の1燃焼サイクル当たりの流入空気量の比である。ここで、基準流入空気量は、スロットル弁53の開度を最大にしたときの1気筒の1燃焼サイクル当たりの流入空気量であり、機関回転速度に応じて決められている。エンジンコントロールユニット300は、基本的には、空燃比が理論空燃比になるように目標燃料噴射量を算出する。そして、燃料噴射時期や燃料噴射時間についての制御目標値を算出する。燃料噴射弁54は、これらの制御目標値に応じたかたちで開弁駆動される。これにより、エンジン50の運転状態に見合う量の燃料が噴射されて、燃焼室55に供給される。
エンジンコントロールユニット300は、点火プラグ58による火花放電の時期である点火時期を算出してイグナイタ57を操作し、混合気に点火する。
エンジンコントロールユニット300は、機関回転速度と機関負荷率に基づいて、クランクシャフト59に対する吸気側のカムシャフト91の位相の目標値と、クランクシャフト59に対する排気側のカムシャフト91の位相の目標値を算出し、吸気側のバルブタイミング変更機構56と排気側のバルブタイミング変更機構56とを操作する。これにより、エンジンコントロールユニット300は、吸気弁66の開閉タイミングと、排気弁67の開閉タイミングとを制御する。例えば、エンジンコントロールユニット300は、排気弁67及び吸気弁66の双方が開弁している期間であるバルブオーバーラップを制御する。
次に、クランクポジションセンサ150や、カムポジションセンサ160について詳しく説明し、クランクカウンタを算出する方法について説明する。
まず、図5及び図6を参照してクランクポジションセンサ150について説明する。図5はクランクポジションセンサ150とクランクシャフト59に取り付けられたセンサプレート151との関係を示している。そして、図6のタイミングチャートはクランクポジションセンサ150によって出力されるクランク角信号の波形を示している。
図5に示すように、クランクシャフト59には円盤状のセンサプレート151が取り付けられている。センサプレート151の周縁部には角度にして5°の幅の信号歯152が5°の間隔を開けて34個並べて配設されている。そのため、図5の右側に示されているように、センサプレート151には、隣り合う信号歯152同士の間隔が角度にして25°になっていて他の部分と比較して信号歯152が2つ欠けたようになっている欠け歯部153が1箇所形成されている。
図5に示すように、クランクポジションセンサ150は、このセンサプレート151の信号歯152と対向するようにセンサプレート151の周縁部に向けて配設されている。
クランクポジションセンサ150は、磁石と磁気抵抗素子を内蔵したセンサ回路からなる磁気抵抗素子タイプのセンサである。クランクシャフト59の回転に伴ってセンサプレート151が回転すると、それに伴ってセンサプレート151の信号歯152とクランクポジションセンサ150とが近接したり、離間したりするようになる。これにより、クランクポジションセンサ150内の磁気抵抗素子にかかる磁界の方向が変化し、磁気抵抗素子の内部抵抗が変化する。センサ回路はこの抵抗値変化を電圧に変換した波形と閾値との大小関係を比較してその波形を第1の信号であるLo信号と第2の信号であるHi信号とによる矩形波に整形し、クランク角信号として出力する。
図6に示すように、具体的には、クランクポジションセンサ150は、信号歯152と対向しているときにLo信号を出力し、信号歯152同士の間の空隙部分と対向しているときにHi信号を出力する。そのため、欠け歯部153に対応するHi信号が検出されると、そのあと信号歯152に対応するLo信号が検出される。そして、それからは10°CA毎に信号歯152対応するLo信号が検出される。こうして34個のLo信号が検出されたあと、再び欠け歯部153に対応するHi信号が検出される。そのため、欠け歯部153に対応するHi信号を挟んで次の信号歯152に対応するLo信号が検出されるまでの回転角はクランク角にして30°CAである。
図6に示すように、欠け歯部153に対応するHi信号に続いて信号歯152に対応するLo信号が検出されてから、次に欠け歯部153に対応するHi信号に続いてLo信号が検出されるまでの間隔は、クランク角にして360°CAになっている。
カウンタ算出部302は、Hi信号からLo信号に変化するエッジを計数することによりクランクカウンタを算出する。また、他のHi信号よりも間隔の長い欠け歯部153に対応するHi信号が検出されたことに基づいて、クランクシャフト59の回転位相が欠け歯部153に対応する回転位相であることを検知する。
次に、図7を参照してカムポジションセンサ160について説明する。なお、吸気側のカムポジションセンサ160と排気側のカムポジションセンサ160は、いずれもがクランクポジションセンサ150と同様の磁気抵抗素子タイプのセンサである。吸気側のカムポジションセンサ160と排気側のカムポジションセンサ160とは、検知する対象が異なるだけであるため、ここでは吸気側のカムポジションセンサ160によって検出される吸気側カム角信号について詳しく説明する。
図7は吸気側のカムポジションセンサ160と吸気側のカムシャフト91に取り付けられているタイミングロータ161との関係を示しており、図8のタイミングチャートは吸気側のカムポジションセンサ160から出力される吸気側カム角信号の波形を示している。
図7に示すように、タイミングロータ161には、周方向における占有範囲の広さが互いに異なる3つの突起部である大突起部162と中突起部163と小突起部164とが設けられている。
最も大きな大突起部162はタイミングロータ161の周方向において角度にして90°に亘って広がるように形成されている。これに対して、最も小さな小突起部164は角度にして30°に亘って広がるように形成されており、大突起部162よりも小さく且つ小突起部164よりも大きい中突起部163は60°に亘って広がるように形成されている。
そして、図7に示すように、タイミングロータ161では、大突起部162、中突起部163、小突起部164がそれぞれ所定の間隔を隔てて配設されている。具体的には、大突起部162と中突起部163とは角度にして60°の間隔を隔てて配設されており、中突起部163と小突起部164とは角度にして90°の間隔を隔てて配設されている。そして、大突起部162と小突起部164とは角度にして30°の間隔を隔てて配設されている。
図7に示すように、カムポジションセンサ160は、このタイミングロータ161の回転に伴い、大突起部162及び中突起部163及び小突起部164と対向するようにタイミングロータ161の周縁部に向けて配設されている。カムポジションセンサ160は、クランクポジションセンサ150と同様にLo信号とHi信号を出力する。
具体的には、図8に示すように、カムポジションセンサ160は、大突起部162、中突起部163、小突起部164と対向しているときにLo信号を出力し、各突起部の間の空隙部分と対向しているときにHi信号を出力する。カムシャフト91は、クランクシャフト59が2回転する間に1回転する。そのため、吸気側カム角信号及び排気側カム角信号の変化はクランク角にして720°CAの周期で一定の変化を繰り返す。
図8に示すように、大突起部162に対応する180°CAに亘って継続するLo信号が出力されたあとには、60°CAに亘って継続するHi信号が出力され、そのあとに小突起部164に対応する60°CAに亘って継続するLo信号が出力される。そして、そのあとに、180°CAに亘って継続するHi信号が出力され、それに続いて中突起部163に対応する120°CAに亘って継続するLo信号が出力される。そして、最後に120°CAに亘って継続するHi信号が出力されたあと、再び大突起部162に対応する180°CAに亘って継続するLo信号が出力されるようになる。
このように吸気側カム角信号は一定の変化パターンで周期的に変化するため、エンジンコントロールユニット300は、このカム角信号の変化パターンを認識することにより、カムシャフト91がどの回転位相にあるのかを検知することができる。例えば、60°CAに相当する長さのLo信号が出力されたあとHi信号に切り替わったときには、エンジンコントロールユニット300は、それに基づいて小突起部164がカムポジションセンサ160の前を通過した直後の回転位相であることを検知することができる。
エンジン50では、排気側のカムシャフト91にも、同一の形状のタイミングロータ161が取り付けられている。そのため、排気側のカムポジションセンサ160によって検出される排気側カム角信号も、図8に示した吸気側カム角信号と同様の変化パターンで周期的に変化する。したがって、排気側のカムポジションセンサ160から出力される排気側カム角信号の変化パターンを認識することにより、エンジンコントロールユニット300は排気側のカムシャフト91がどの回転位相にあるのかを検知することができる。
また、排気側のカムシャフト91に取り付けられているタイミングロータ161は、吸気側のカムシャフト91に取り付けられるタイミングロータ161に対して位相をずらして取り付けられている。具体的には、排気側のカムシャフト91に取り付けられているタイミングロータ161は、吸気側のカムシャフト91に取り付けられているタイミングロータ161よりも30°だけ進角側に位相をずらして取り付けられている。
これにより、吸気側カム角信号の変化パターンは、図9に示すように、排気側カム角信号の変化パターンに対してクランク角にして60°CAだけ遅れて変化するものになっている。
図9は、クランク角信号とクランクカウンタとの関係、並びにクランクカウンタとカム角信号との関係を示すタイミングチャートである。なお、図9では、クランク角信号についてHi信号からLo信号に変化するエッジのみを図示している。
エンジンコントロールユニット300のカウンタ算出部302は、前述したように、エンジン50の運転に伴ってクランクポジションセンサ150から出力されるクランク角信号がHi信号からLo信号に変化するときのエッジを計数し、クランクカウンタを算出する。また、カウンタ算出部302は、クランク角信号と吸気側カム角信号と排気側カム角信号とに基づいて気筒判別を行う。
具体的には、カウンタ算出部302は、図9に示すように10°CA毎に出力されるクランク角信号のエッジを計数してエッジが3つ計数される度にクランクカウンタをカウントアップさせる。すなわち、カウンタ算出部302は30°CA毎にクランクカウンタの値であるクランクカウンタをカウントアップさせる。そして、エンジンコントロールユニット300は、クランクカウンタに基づいて現在のクランク角を認識し、各気筒に対する燃料噴射や点火のタイミングを制御する。
また、クランクカウンタは、720°CA毎に周期的にリセットされるようになっている。すなわち図9の中央に示すように、690°CAに対応する「23」までカウントアップしたあとは、次のカウントアップのタイミングでクランクカウンタが「0」にリセットされ、そこから再び30°CA毎にクランクカウンタがカウントアップされるようになっている。
また、欠け歯部153がクランクポジションセンサ150の前を通過するときには、検出されるエッジの間隔が30°CAになる。そこで、カウンタ算出部302は、エッジの間隔が広くなったときには、それに基づいて欠け歯部153がクランクポジションセンサ150の前を通過したことを検知する。この欠け歯検出は、360°CA毎になされるため、クランクカウンタが1周期分カウントアップされる720°CAの間に欠け歯検出は2回行われることになる。
また、クランクシャフト59と吸気側のカムシャフト91と排気側のカムシャフト91は、互いにタイミングチェーンを介して連結されているため、クランクカウンタの変化とカム角信号の変化とは一定の相関を有している。
すなわち、クランクシャフト59が2回転する間に吸気側のカムシャフト91と排気側のカムシャフト91とはそれぞれ1回転する。そのため、クランクカウンタが分かればそのときの吸気側のカムシャフト91及び排気側のカムシャフト91の回転位相を推定することができる。また、反対に、吸気側のカムシャフト91及び排気側のカムシャフト91の回転位相が分かればクランクカウンタを推定することができる。
カウンタ算出部302は、こうした吸気側カム角信号及び排気側カム角信号とクランクカウンタとの関係や、欠け歯検出とクランクカウンタとの関係を利用して、クランクカウンタの算出を開始する際に起点になるクランク角を確定するとともに、クランクカウンタを確定させる。
そして、カウンタ算出部302は、クランク角が判明し、起点にするクランクカウンタの値が判明してから、判明したクランクカウンタの値を起点にカウントアップを開始する。すなわちクランクカウンタはクランク角が判明しておらず、起点となるクランクカウンタの値が判明していない間は未確定であり、出力されていない。起点となるクランクカウンタの値が判明したあと、判明したクランクカウンタの値を起点にカウントアップが開始されてクランクカウンタが出力されるようになる。
なお、吸気側のバルブタイミング変更機構56によってクランクシャフト59に対する吸気側のカムシャフト91の相対位相が変更されると、クランクシャフト59に取り付けられているセンサプレート151と吸気側のカムシャフト91に取り付けられているタイミングロータ161との相対位相も変化する。そのため、エンジンコントロールユニット300は、吸気側のバルブタイミング変更機構56の操作量である変位角に応じて相対位相の変化量を把握し、相対位相の変更による影響を加味して起点にするクランクカウンタを確定する。排気側のバルブタイミング変更機構56による排気側のカムシャフト91の相対位相の変更についても同様である。
エンジン50では、図9に示されるように吸気カム角信号が180°CAに亘って継続するLo信号から60°CAに亘って継続するHi信号に切り替わるときのクランク角を「0°CA」に設定している。そのため、図9に破線で示されるように吸気カム角信号が60°CAに亘って継続するHi信号からLo信号に切り替わった直後になされる欠け歯検出はクランク角が90°CAであることを示すものになる。一方で、吸気カム角信号が120°CAに亘って継続するLo信号からHi信号に切り替わった直後になされる欠け歯検出はクランク角が450°CAであることを示すものになる。このようにして、エンジンコントロールユニット300は、欠け歯部153の検出と、吸気カム角信号の推移との関係を利用して、欠け歯部153が検出されたときに、クランク角を確定し、起点となるクランクカウンタを確定してクランクカウンタの算出を開始する。
なお、図9にはクランクカウンタの値の推移を示す実線の下にクランクカウンタの値を表記し、この実線の上にはそのクランクカウンタの値に対応するクランク角を表記している。なお、図9は、吸気側のバルブタイミング変更機構56における変位角と排気側のバルブタイミング変更機構56における変位角がともに「0」のときの状態を示している。
制御装置400は、エンジン50に設けられている各種の装置における異常の有無を確認する診断処理を実行する。そのために、制御装置400では、図2〜図4に示すように、エンジンコントロールユニット300に診断処理を実行する診断部301を設けている。
例えば、診断部301は、空燃比センサ83が検出する値と、目標とする値とのずれが大きいことに基づいて、燃料噴射弁54などの燃料系に異常が生じていると判定する。また、診断部301は、後述する学習処理を通じて学習される学習値が、上限値と一致した状態が継続したこと及び下限値と一致した状態が継続したことに基づいて、空燃比センサ83に異常が生じていと判定する。
また、診断部301は、減速時などのフューエルカット運転中にEGR弁65を開閉駆動する。そして、吸気圧センサ89が検出する圧力がこの開閉駆動に伴って変化しないことに基づいて、EGR弁65に異常が生じていると判定する。
その他、診断部301が実施する診断処理としては、例えば、下記に列挙するものがある。
・診断部301は、バルブタイミング変更機構56を駆動しているときに駆動量に見合った分だけカム角信号とクランク角信号との関係が変化するか否かを確認し、駆動量に見合った分だけ変化していないことに基づいて、バルブタイミング変更機構56に異常が生じていると判定する。
・診断部301は、油圧センサ93によって検出されている油圧の要求油圧からの乖離が大きいことに基づいて、オイルポンプ170に異常が生じていると判定する。
・診断部301は、機関回転速度の変動に基づいて、気筒間での燃焼のばらつきが大きくなる異常であるインバランスが生じていることを判定する。具体的には、診断部301は暖機が完了していることを条件に、インバランスを判定する診断処理を実行する。この診断処理では、診断部301は、点火を実施したときのクランクシャフト59の角速度を取得する。例えば、診断部301は角速度としてクランク角が30°CA変化するのに要した時間であるT30を取得する。そして、診断部301は、他の気筒において点火を実施したときに取得した角速度との乖離が閾値以上であることに基づいて、インバランスが生じていると判定する。なお、インバランスには、他の気筒に比べて空燃比がリッチになり、角速度が大きくなるリッチインバランスと、他の気筒に比べて空燃比がリーンになり、角速度が小さくなるリーンインバランスとがある。なお、エンジンコントロールユニット300は、インバランスの診断処理を実行するときには、信号とノイズの比率であるS/N比を確保するために、点火時期を遅角させ、吸入空気量を増大させる。
・診断部301は、気筒内での点火に失敗する異常である失火が生じていることを判定する。具体的には、診断部301は機関回転速度が診断を行うのに適した範囲内であり、且つ機関負荷が低いことを条件に、失火を判定する診断処理を実行する。この診断処理では、診断部301は、点火を実施したときのクランクシャフト59の角速度を取得する。例えば、診断部301は角速度としてクランク角が30°CA変化するのに要した時間であるT30を取得する。そして、診断部301は、同じ気筒において前回点火を実施したときに取得した角速度との乖離が閾値以上であることに基づいて、失火が生じていると判定する。
・エンジンコントロールユニット300は、エンジン50のアイドリング運転中に機関回転速度を目標アイドル回転速度にフィードバック制御するISC制御を実行する。なお、目標アイドル回転速度には、始動時補正と、ハイブリッド車両10に搭載された空調装置などの補機及び第1モータジェネレータ11及び第2モータジェネレータ12による外部負荷に応じた外部負荷補正と、冷却水の温度に応じた水温補正とが施されている。詳しくは後述するが、ISC制御におけるフィードバック補正量が大きい状態が継続すると、フィードバック補正量を学習値に移す学習処理が行われる。診断部301は、学習値が上限値と一致した状態が継続したこと及び下限値と一致した状態が継続したことに基づいて、ISC制御に異常が生じていると判定する。
・診断部301は、水温センサ81が検出した冷却水の温度が暖機判定温度よりも高い異常判定温度以上であることに基づいて、サーモスタット183に異常が生じていると判定する。
・診断部301は、定常運転時などのエンジン50の運転状態が安定しているときに、スロットル弁53を開閉動作させて、エアフロメータ88が検出する吸入空気量が変動するかどうかを確認する。そして、診断部301は、エアフロメータ88が検出する吸入空気量が変動していないことに基づいて、エアフロメータ88に異常が生じていると判定する。
なお、これらの診断処理は、エンジン50が運転していないと異常の有無の判定を行うことができない。そこで、図1に示すように、制御装置400では、システムコントロールユニット100に、間欠停止制御によるエンジン50の運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部101を設けている。停止禁止部101は、システムメインスイッチ120がONになっているときに、後述する間欠停止禁止フラグを監視しており、間欠停止禁止フラグがONになっているときに、間欠停止制御によるエンジン50の運転の停止を禁止する間欠停止禁止処理を実行する。間欠停止禁止処理が実行されている場合には、システムコントロールユニット100は、間欠停止制御によるエンジン50の自動停止の要求がある場合でもエンジン50を停止させず、エンジン50を運転させ続ける。すなわち、間欠停止制御によるエンジン50の運転の停止を禁止してエンジン50を運転させ続ける。
次に、診断部301が実行する診断処理と、停止禁止部101が実行する間欠停止禁止処理との関係について図10〜図13を参照して説明する。
制御装置400では、仮判定フラグ及び本判定フラグのいずれもが不揮発性メモリ104に記憶されていない状態でエンジン50が運転されており、且つ診断処理の実行条件が成立しているときに、図10に示す仮判定ルーチンを実行する。図10に示す仮判定ルーチンは、エンジンコントロールユニット300によって診断処理の種類毎に実行される。なお、診断処理において異常が発生しているとの判定がなされなかった場合には、診断部301は、その診断処理をエンジン50の運転が継続している間は実行しない。
なお、仮判定フラグは、異常が発生しているおそれがあることを示す情報である。仮判定フラグは、図1に示すようにシステムコントロールユニット100に設けられている不揮発性メモリ104に記憶されてONになる。仮判定フラグは初期状態では記憶されておらず、OFFになっている。仮判定フラグは、診断処理の種類毎に設けられており、診断処理の結果に応じてそれぞれ更新される。なお、不揮発性メモリ104は、システムメインスイッチ120がOFFになり、給電が停止されても記憶を保持することのできるメモリである。
本判定フラグは、診断処理を通じて異常が発生しているとの診断が下されたことを示す情報である。本判定フラグも、不揮発性メモリ104に記憶されてONになる。本判定フラグは初期状態では記憶されておらず、OFFになっている。本判定フラグも、診断処理の種類毎に設けられており、診断処理の結果に応じてそれぞれ更新される。
図10に示すように、エンジンコントロールユニット300は、このルーチンを開始すると、まずステップS100の処理を実行する。ステップS100の処理では、エンジンコントロールユニット300の診断部301が、診断処理を実行する。そして、エンジンコントロールユニット300は、処理をステップS110へと進める。そして、ステップS110の処理では、エンジンコントロールユニット300は、ステップS100の処理において異常が有ると診断部301が判定したか否かを判定する。
ステップS110の処理において、異常が有ると診断部301判定した旨の判定がなされた場合(ステップS110:YES)には、エンジンコントロールユニット300は、処理をステップS120へと進める。そして、ステップS120の処理では、診断部301が、システムコントロールユニット100の不揮発性メモリ104に仮判定フラグを記憶させ、仮判定フラグをONにする。そして、エンジンコントロールユニット300は、このルーチンを一旦終了させる。
一方で、ステップS110の処理において、異常が有ると診断部301が判定していない旨の判定がなされた場合(ステップS110:NO)には、エンジンコントロールユニット300は、ステップS120の処理を実行せずに、このルーチンを一旦終了させる。すなわち、この場合には、診断部301は、仮判定フラグを不揮発性メモリ104に記憶させない。
このように制御装置400では、仮判定フラグ及び本判定フラグがONになっていない場合には、診断部301が、診断処理を通じて異常が有る旨の判定をしたことを条件に、仮判定フラグを不揮発性メモリ104に記憶させる。
なお、図1に示すように、ハイブリッド車両10には、異常が発生していることを示す情報を表示して、乗員に異常が発生していることを報知する警告表示部110が設けられている。不揮発性メモリ104に仮判定フラグが記憶された場合には、システムコントロールユニット100が警告表示部110に異常が発生していることを示す情報を表示させる。
制御装置400では、仮判定フラグが不揮発性メモリ104に記憶されている状態でエンジン50が運転されており、且つ診断処理の実行条件が成立しているときに、図11に示す本判定ルーチンを実行する。図11に示す本判定ルーチンは、エンジンコントロールユニット300によって診断処理の種類毎に実行される。
図11に示すように、エンジンコントロールユニット300は、このルーチンを開始すると、まずステップS200の処理を実行する。ステップS200の処理では、エンジンコントロールユニット300の診断部301が、診断処理を実行する。
なお、ステップS200の処理において、オイルポンプ170についての診断処理を実行する場合及びバルブタイミング変更機構56についての診断処理を実行する場合には、診断処理の実行に先立って解除動作を実行してから診断処理を実行する。解除動作は、アクチュエータを往復動させて異常の解消を図る動作である。オイルポンプ170の場合には、解除動作としてオイルコントロールバルブ171のスプール弁を往復動させ、オイルコントロールバルブ171における異物の噛み込みの解消を図る。また、バルブタイミング変更機構56の場合には、モータを往復動させ、異物の噛み込みの解消を図る。
そして、ステップS200の処理を通じて診断部301が診断処理を実行すると、エンジンコントロールユニット300は、処理をステップS210へと進める。そして、ステップS210の処理では、エンジンコントロールユニット300は、ステップS200の処理において異常が有ると診断部301が判定したか否かを判定する。
ステップS210の処理において、異常が有ると診断部301が判定した旨の判定がなされた場合(ステップS210:YES)には、エンジンコントロールユニット300は、処理をステップS220へと進める。そして、ステップS220の処理では、診断部301が、システムコントロールユニット100の不揮発性メモリ104に本判定フラグを記憶させ、本判定フラグをONにする。そして、エンジンコントロールユニット300は、処理をステップS250へと進める。ステップS250の処理では、診断部301が、システムコントロールユニット100の不揮発性メモリ104に記憶されている仮判定フラグを消去し、仮判定フラグをOFFにする。そして、エンジンコントロールユニット300は、このルーチンを一旦終了させる。
一方で、ステップS210の処理において、異常が有ると診断部301が判定していない旨の判定がなされた場合(ステップS210:NO)には、エンジンコントロールユニット300は、処理をステップS230へと進める。そして、ステップS230の処理では、診断部301が、正常カウンタを1つカウントアップする。正常カウンタはエンジンコントロールユニット300のメモリに記憶されている。このメモリは不揮発性メモリではなく、給電が停止された場合には、正常カウンタはリセットされる。正常カウンタは初期状態では「0」である。次にエンジンコントロールユニット300は、処理をステップS240へと進める。そして、エンジンコントロールユニット300は、ステップS240の処理において、正常カウンタが「3」以上であるか否かを判定する。ステップS240の処理において、正常カウンタが「3」以上であると判定した場合(ステップS240:YES)には、エンジンコントロールユニット300は処理をステップS250へと進める。そして、ステップS250の処理において、診断部301が、システムコントロールユニット100の不揮発性メモリ104に記憶されている仮判定フラグを消去し、仮判定フラグをOFFにする。そして、エンジンコントロールユニット300は、このルーチンを一旦終了させる。
一方、ステップS240の処理において、正常カウンタが「3」未満であると判定した場合(ステップS240:NO)には、エンジンコントロールユニット300は、ステップS250の処理を実行せずに、このルーチンを一旦終了させる。
このように制御装置400では、診断部301が、仮判定フラグが不揮発性メモリ104に記憶されている状態で診断処理を通じて異常があると判定したときに、異常があるとの診断を下し、本判定フラグを不揮発性メモリ104に記憶させる。そして、このときに、診断部301が、不揮発性メモリ104に記憶されている仮判定フラグを消去する。
仮判定フラグが消去され、不揮発性メモリ104に仮判定フラグが記憶されていない場合であっても、不揮発性メモリ104に本判定フラグが記憶されている場合には、システムコントロールユニット100は警告表示部110に異常が発生していることを示す情報を引き続き表示させ続ける。
一方で、仮判定フラグが消去され、不揮発性メモリ104に仮判定フラグが記憶されていない場合であり、且つ不揮発性メモリ104に本判定フラグが記憶されていない場合には、システムコントロールユニット100は警告表示部110における異常が発生していることを示す情報の表示を停止させる。この場合には、仮判定フラグが消去されることに伴い、異常が発生していることを示していた表示が消えることになる。つまり、制御装置400では、仮判定フラグがONになったあとに、診断処理において異常が発生しているとの判定がされない状態が3回続けて生じた場合には、仮判定フラグを消去し、異常が発生していることを示す表示をやめる。
なお、本判定フラグは、修理工場において修理などを行い、異常を解消したときに、不揮発性メモリ104から消去される。そのため、一旦、診断処理を通じて異常が発生しているとの診断が下され、不揮発性メモリ104に本判定フラグが記憶されたあとは、修理などが行われて本判定フラグが消去されるまで警告表示部110には、異常が発生していることを示す情報が表示され続ける。
図12は、システムメインスイッチ120がONになっており、制御装置400が稼働している間、システムコントロールユニット100が繰り返し実行するルーチンである。
図12に示すように、システムコントロールユニット100は、このルーチンを開始すると、まずステップS300の処理において、診断処理の種類毎に設定されている仮判定フラグのいずれがONであるか否かを判定する。すなわち、システムコントロールユニット100は、不揮発性メモリ104にいずれかの仮判定フラグが記憶されているか否かを判定する。
ステップS300の処理において、いずれかの仮判定フラグがONであると判定した場合(ステップS300:YES)には、システムコントロールユニット100は、処理をステップS310へと進める。そして、システムコントロールユニット100は、ステップS310の処理において、3種類ある間欠停止禁止フラグのうちの1つである第1間欠停止禁止フラグをメモリに記憶する。これにより、第1間欠停止禁止フラグがONになる。なお、このメモリは不揮発性メモリではなく、給電が停止された場合には、第1間欠停止禁止フラグがOFFになる。こうして第1間欠停止禁止フラグをONにすると、システムコントロールユニット100は、このルーチンを一旦終了させる。なお、初期状態では、第1間欠停止禁止フラグはメモリに記憶されておらず、OFFになっている。
一方で、ステップS300の処理において、いずれの仮判定フラグもONではないと判定した場合(ステップS300:NO)には、システムコントロールユニット100は、処理をステップS320へと進める。そして、システムコントロールユニット100は、ステップS320の処理において、メモリから第1間欠停止禁止フラグを消去する。これにより、第1間欠停止禁止フラグがOFFになる。こうして第1間欠停止禁止フラグをOFFにすると、システムコントロールユニット100は、このルーチンを一旦終了させる。
前述したように、停止禁止部101は、間欠停止禁止フラグがONになっているときに、間欠停止制御によるエンジン50の運転の停止を禁止する間欠停止禁止処理を実行する。図12を参照して説明したように、システムコントロールユニット100は、仮判定フラグがONになっているときに、第1間欠停止禁止フラグをONにする。すなわち、制御装置400では、不揮発性メモリ104に仮判定フラグが記憶されているときに、停止禁止部101が間欠停止禁止処理を実行する。
図13は、第1間欠停止禁止フラグがONになっている状態でシステムメインスイッチ120がOFFにされたときに、制御装置400の稼働を停止するまでの間に、システムコントロールユニット100が実行するルーチンの処理の流れを示している。
図13に示すように、システムコントロールユニット100は、このルーチンを開始すると、まずステップS400の処理において、禁止継続カウンタをカウントアップさせる。禁止継続カウンタは初期状態では「0」であり、このステップS400の処理を実行する度に1つずつカウントアップされる。禁止継続カウンタは不揮発性メモリ104に記憶される。
次に、システムコントロールユニット100は、ステップS410の処理において、禁止継続カウンタが「2」以上であるか否かを判定する。ステップS410の処理において、禁止継続カウンタが「2」以上であると判定した場合(ステップS410:YES)には、システムコントロールユニット100は、処理をステップS420へと進める。
そして、ステップS420の処理において、システムコントロールユニット100は仮判定フラグをOFFにする。すなわち、システムコントロールユニット100は不揮発性メモリ104に記憶されている仮判定フラグを消去する。
次に、システムコントロールユニット100は、ステップS430の処理において、第1間欠停止禁止フラグをOFFにする。すなわち、システムコントロールユニット100は不揮発性メモリ104に記憶されている第1間欠停止禁止フラグを消去する。システムコントロールユニット100は、次のステップS440の処理において、禁止継続カウンタをリセットする。そして、システムコントロールユニット100はこのルーチンを終了させる。
一方で、ステップS410の処理において、禁止継続カウンタが「2」未満であると判定した場合(ステップS410:YES)には、システムコントロールユニット100は、ステップS420〜ステップS440の処理を実行せずに、そのままこのルーチンを終了させる。
図13を参照して説明したルーチンを実行することにより、仮判定フラグがONになっていることによって間欠停止禁止処理が継続するのは2トリップまでに制限される。つまり、仮判定フラグがONになっている状態でシステムメインスイッチ120がOFFにされることが2回継続すると、禁止継続カウンタが「2」以上になり、仮判定フラグと第1間欠停止禁止フラグが消去される。第1間欠停止禁止フラグが消去されると、停止禁止部101は、仮判定フラグが記憶されていることによる間欠停止禁止処理を終了させる。このように、制御装置400では、仮判定フラグが記憶されていることによって間欠停止制御によるエンジン50の停止を禁止しているトリップが2回継続した場合に、停止禁止部101が、仮判定フラグが記憶されていることによるエンジン50の停止の禁止を解除する。
なお、ここでのトリップとは、ハイブリッド車両10のシステムメインスイッチ120がONになっている期間、すなわちハイブリッド車両10の制御装置400の稼働が継続している期間を1トリップとした数え方の単位である。
次に、制御装置400が実行する学習処理と、それに伴う間欠停止禁止処理について説明する。学習処理はエンジン50の運転中であり、且つ実行条件が成立しているときに、エンジンコントロールユニット300によって実行される。
例えば、エンジンコントロールユニット300は、学習処理の1つとして、燃料噴射弁54からの燃料噴射量のずれによる定常的な空燃比のずれを学習する空燃比メインフィードバック学習を行う。この空燃比メインフィードバック学習では、空燃比センサ83による検出値を用いた燃料噴射量のフィードバック制御である空燃比メインフィードバック制御における燃料噴射量の補正量の時間積分量を算出し、一定時間毎にその時間積分量を一定の割合で学習値に移行することにより、学習値を更新する。また、エンジンコントロールユニット300は、学習処理の1つとして、空燃比センサ83の検出値のずれによる定常的な空燃比のずれを学習する空燃比サブフィードバック学習を行う。この空燃比サブフィードバック学習では、酸素センサ84による検出値を用いた燃料噴射量のフィードバック制御である空燃比サブフィードバック制御における燃料噴射量の補正量の時間積分量を算出し、一定時間毎にその時間積分量を一定の割合で学習値に移行することにより、学習値を更新する。
その他、エンジンコントロールユニット300が実行する学習処理としては、例えば、下記に列挙するものがある。
・エンジンコントロールユニット300は、アイドリング運転中の機関回転速度のフィードバック制御であるISC制御における機関回転速度の定常的なずれを学習するISC学習を実行する。ISC学習では、ISC制御におけるスロットル開度の補正量の時間積分量を算出し、一定時間毎にその時間積分量を一定の割合で学習値に移行することにより、学習値を更新する。
・エンジンコントロールユニット300は、エンジン50におけるノッキングを抑制するため点火時期の制御であるKCS制御において、KCS学習を行う。KCS学習では、KCS制御における点火時期の補正量が閾値以上になった場合に、補正量の一部を学習値に移行することにより、学習値を更新する。
・エンジンコントロールユニット300は、エアフロメータ88によって検出される吸入空気量と、スロットル開度から想定される吸入空気量とのずれを学習するスロットル学習を行う。スロットル学習では、吸入空気量のフィードバック制御におけるスロットル開度の補正量が閾値以上になった場合に、補正量の一部を学習値に移行することにより、学習値を更新する。
なお、各学習値は不揮発性メモリ104に記憶される。そのため、学習値は、システムメインスイッチ120がOFFにされた場合にも、不揮発性メモリ104に記憶されている。したがって、学習が完了していれば、次回エンジン50が始動されたときにはすぐに学習値を反映させた制御を実行することができる。そのため、速やかに学習値の更新を完了させることが望ましい。
ところが、上記の学習処理はエンジン50が運転しており、それぞれの学習処理の実行に適した条件になっていないと、実行することができない。そこで、例えば、特開平11−107834号公報には、学習処理が完了するまで間欠停止制御によるエンジン50の運転の停止を禁止することにより、学習処理を速やかに完了させようとすることが開示されている。
しかし、間欠停止制御によるエンジン50の運転の停止を禁止すると、エンジンの運転が継続することになるため、燃料の消費量が増大し、間欠停止制御によって得られるはずの燃料消費量の抑制効果が得られなくなってしまう。必ずしも学習処理の完了を優先させる必要がない場合もあるため、改善の余地がある。
そこで、制御装置400では、直近の学習処理による学習値の学習が完了してからのエンジン50の積算稼働量に応じて間欠停止禁止処理を実行するか否かを判定する閾値になる車速閾値を変更して学習値の更新機会の確保と、間欠停止制御の実行による燃料消費量の抑制との調和を図っている。そのため、図1に示すように、制御装置400では、システムコントロールユニット100に、積算稼働量を示す指標値を算出する稼働量算出部102と、車速閾値を算出する閾値算出部103とが設けられている。
積算稼働量に応じた間欠停止禁止処理を実行する条件の変更について、図14及び図15を参照して、具体的に説明する。
なお、ノッキングの発生しやすさは、給油によって燃料の性状が変化したときに急変する可能性がある。そのため、KCS学習については、毎トリップ実行することが好ましい。そこで、制御装置400では、各トリップにおけるエンジン50の初回の運転時にはKCS学習が完了するまで間欠停止禁止処理を実行し、速やかにKCS学習を完了させるようにしている。
図14に示すルーチンは、学習処理が完了したあと、エンジン50が運転されているときに、システムコントロールユニット100によって繰り返し実行される。なお、このルーチンは学習処理の種類毎に実行される。
図14に示すように、システムコントロールユニット100は、このルーチンを開始すると、まずステップS500の処理において積算稼働量の指標値を算出する。ここでは、稼働量算出部102が、積算稼働量の指標値として、例えば、直近の学習処理による学習値の学習が完了してからのハイブリッド車両10の積算走行距離を算出する。積算走行距離が長くなるほど、エンジン50の積算稼働量は多くなりやすい。そのため、学習が完了してからの積算走行距離を、学習が完了してからのエンジン50の積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
次に、システムコントロールユニット100は、処理をステップS510へと進める。ステップS510の処理において、システムコントロールユニット100は、学習値を学習する対象の制御における補正量を読み込む。例えば、学習値を学習する対象の制御が空燃比メインフィードバック制御であれば空燃比メインフィードバック制御における燃料噴射量の補正量を読み込む。
そして、システムコントロールユニット100は、次のステップS520において、稼働量算出部102が算出した積算稼働量の指標値と、読み込んだ補正量とに基づいて、車速閾値を算出する。ステップS520の処理では、システムコントロールユニット100の閾値算出部103が、積算稼働量の指標値が大きいほど、車速閾値として小さな値を算出する。また、閾値算出部103は、読み込んだ補正量が大きいほど、車速閾値として小さな値を算出する。
こうして車速閾値を算出すると、システムコントロールユニット100は、このルーチンを一旦終了する。
図15に示すルーチンはHV走行モードが選択されており、且つ何れかの学習処理に関する車速閾値の算出が完了しているときに、システムコントロールユニット100によって繰り返し実行される。
このルーチンを開始すると、システムコントロールユニット100は、まずステップS600の処理において、算出されている車速閾値のうち最も小さい車速閾値と車速センサ86によって検出されている車速とを比較し、車速が車速閾値以上であるか否かを判定する。
ステップS600の処理において、車速が車速閾値以上であると判定した場合(ステップS600:YES)には、システムコントロールユニット100は、処理をステップS610へと進める。そして、ステップS610の処理において、システムコントロールユニット100は、3種類ある間欠停止禁止フラグのうちの1つである第2間欠停止禁止フラグをメモリに記憶する。これにより、第2間欠停止禁止フラグがONになる。なお、このメモリは不揮発性メモリではなく、給電が停止された場合には、第2間欠停止禁止フラグがOFFになる。こうして第2間欠停止禁止フラグをONにすると、システムコントロールユニット100は、このルーチンを一旦終了させる。なお、初期状態では、第2間欠停止禁止フラグはメモリに記憶されておらず、OFFになっている。また、第2間欠停止禁止フラグは、学習処理の種類毎に設けられており、ステップS610の処理では、ステップS600の処理において車速と比較した車速閾値に対応する学習処理のための第2間欠停止禁止フラグをONにする。
一方で、ステップS600の処理において、車速が車速閾値未満であると判定した場合(ステップS600:NO)には、システムコントロールユニット100は、ステップS610の処理を実行せずに、そのままこのルーチンを一旦終了させる。
前述したように、停止禁止部101は、間欠停止禁止フラグがONになっているときに、間欠停止制御によるエンジン50の運転の停止を禁止する間欠停止禁止処理を実行する。図15を参照して説明したように、システムコントロールユニット100は、車速が車速閾値以上であるときに、第2間欠停止禁止フラグをONにする。また、制御装置400では、積算稼働量が多いほど、車速閾値を小さくする。さらに、制御における補正量が大きいほど、車速閾値を小さくする。そのため、この制御装置400では、積算稼働量が多いほど、そして補正量が大きいほど、低い車速から間欠停止禁止処理が実行されるようになる。その結果、間欠停止禁止処理を実行する機会が拡大して間欠停止禁止処理が実行されやすくなる。すなわち、制御装置400では、エンジン50の積算稼働量が増えることに伴って学習値を更新する必要性が高まるのに応じて、間欠停止禁止処理の実行機会を拡大し、学習値の更新機会を確保することができる。
なお、第2間欠停止禁止フラグは、対応する学習処理が完了し、学習値が更新されると、OFFにリセットされる。
次に、カムポジションセンサ160が故障した場合における、エンジン50の始動に関する制御について図16及び図17を参照して説明する。
前述したように、エンジン50を始動したときには、クランクシャフト59が1回転する度に1度発生する欠け歯部153を検出するとともに、クランクシャフト59が1回転する間に2回転するカムシャフト91の特定のカム角の到来を検出するカムポジションセンサ160が出力するカム角信号を検出する。そして、欠け歯部153が、クランクシャフト59が2回転する分のクランク角に対応するクランクカウンタの値のうち、どの値に対応するものなのかを特定する。特開2015−059469号公報にも、制御装置400と同様に、一定のクランク角毎にカウントアップされるクランクカウンタを生成する内燃機関の制御装置が開示されている。
クランクシャフト59が2回転する間にクランクポジションセンサ150によって欠け歯部153が2回検知されるが、カムポジションセンサ160が故障した場合には、検知した欠け歯部153が2回転分のクランク角に対応するクランクカウンタの値のうち、いずれの値に対応するものであるのかが特定できない。
そこで、制御装置400では、吸気側のカムポジションセンサ160から信号が出力されなくなるなど、カムポジションセンサ160が故障した場合には、エンジン50の始動時に、カウンタ算出部302が、欠け歯部153の検知に基づいて欠け歯部153に対応する2つのクランク角のうち、一方のクランク角をクランク角として仮決定する。例えば、制御装置400では、図9に示すように欠け歯部153に対応する2つのクランク角である「90°CA」と「450°CA」のうち、「90°CA」をクランク角として仮決定する。
そして、カウンタ算出部302は、仮決定されたクランク角に基づいてクランクカウンタの値を算出する。エンジンコントロールユニット300は、こうして算出したクランクカウンタに基づいてエンジン50を制御し、始動を試みる。
図16に示すルーチンは、こうしたカムポジションセンサ160が故障している状態でのエンジン50の始動が行われているときに、エンジンコントロールユニット300によって実行される。
図16に示すように、このルーチンを開始すると、エンジンコントロールユニット300は、まずステップS700の処理において、エンジン50の始動が失敗したか否かを判定する。始動が失敗したか否かの判定は、規定時間内にエンジン50の始動が完了したか否かによって判定される。すなわち、エンジンコントロールユニット300は、規定時間内にエンジン50の始動が完了した場合には、エンジン50の始動が完了した時点でエンジン50の始動が成功したと判定する。一方で、エンジンコントロールユニット300は、規定時間を経過してもエンジン50の始動が完了していない場合には、エンジン50の始動が失敗したと判定する。
ステップS700の処理において、エンジンの始動が失敗したと判定した場合(ステップS700:YES)には、エンジンコントロールユニット300は処理をステップS710へと進める。そして、ステップS710の処理において、エンジンコントロールユニット300は、クランクカウンタの値を切り替える。
具体的には、ステップS710の処理では、カウンタ算出部302が、欠け歯部153に対応する2つのクランク角である「90°CA」と「450°CA」とのうち、仮決定していたクランク角ではない「450°CA」を正しいクランク角であったとみなしてクランクカウンタを算出し直す。こうしてクランクカウンタを切り替えると、エンジンコントロールユニット300は、このルーチンを一旦終了させる。そして、エンジンコントロールユニット300は、新たに算出し直したクランクカウンタに基づいてエンジン50を再度始動する。
一方で、ステップS700の処理において、エンジンの始動が成功したと判定した場合(ステップS700:NO)には、エンジンコントロールユニット300はステップS710の処理を実行せずに、そのままこのルーチンを終了させる。そして、カウンタ算出部302はそのまま仮決定したクランク角に基づくクランクカウンタの算出を継続し、エンジンコントロールユニット300は、カウンタ算出部302が算出するクランクカウンタに基づいてエンジン50を制御する。
このように、制御装置400では、カムポジションセンサ160が故障しているときにはクランクポジションセンサ150による欠け歯部153の検知に基づいて欠け歯部153に対応する2つのクランク角のうち、一方のクランク角をクランク角として仮決定し、仮決定されたクランク角に基づいてクランクカウンタの値を算出する。そして、仮決定されたクランク角に基づいて算出したクランクカウンタの値に基づいてエンジン50が制御される。
また、制御装置400では、仮決定したクランク角に基づいて算出したクランクカウンタの値を用いた始動が失敗した場合には、欠け歯部153に対応する2つのクランク角のうち仮決定したクランク角ではない他方のクランク角に基づいてクランクカウンタを算出し直す。そして、制御装置400では、算出し直したクランクカウンタを利用してエンジン50の始動を再度試みる。そのため、仮決定した一方のクランク角に基づく始動が失敗した場合でも、他方のクランク角に基づいて算出し直したクランクカウンタを用いた始動によってエンジン50の始動を完了させることができる。
こうして始動が完了したあとは、カウンタ算出部302は、クランク角信号のエッジを計数してクランクカウンタの算出を継続する。そして、エンジンコントロールユニット300はクランクカウンタに基づいてエンジン50を制御する。
ところで、クランクポジションセンサ150は、クランクシャフト59の回転速度が極めて遅いときにはクランク角を検出できない。また、クランクシャフト59の回転方向を特定できないため、エンジン50の停止直前に気筒内の空気の圧縮反力によりクランクシャフト59が逆回転方向に回転すると、クランク角を把握できなくなる。
制御装置400では、第1モータジェネレータ11及び第2モータジェネレータ12が遊星ギア機構13を介してクランクシャフト59と連結されているため、第1モータジェネレータ11及び第2モータジェネレータ12に設けられているレゾネータによって検出した回転角に基づいて、クランクシャフト59の回転角を推定することができる。
そこで、制御装置400では、クランクシャフト59の回転速度が極めて遅い場合や、逆回転方向への回転が生じる場合には、レゾネータによって検出した第1モータジェネレータ11の回転角の推移及び第2モータジェネレータ12の回転角の推移を参照してクランクシャフト59の回転角を推定する。そして、推定したクランクシャフト59の回転角に基づいてカウンタ算出部302がクランクカウンタを算出する。こうして制御装置400では、エンジン50の運転を停止してから次にエンジン50を始動するまでの間もカウンタ算出部302がクランクカウンタを算出し続ける。
そして、制御装置400では、次回のエンジン50の始動の際には、欠け歯部153の検出を待たずに、把握しているクランクカウンタの値に基づいて始動を行う。そのため、カムポジションセンサ160が故障していても速やかにエンジン50の始動を完了させることができる。
しかし、レゾネータの故障などにより、第1モータジェネレータ11の回転角又は第2モータジェネレータ12の回転角が検出できなくなった場合には、クランクシャフト59の回転角を推定することができなくなってしまう。
そこで、制御装置400では、カムポジションセンサ160が故障している状態であり、且つ間欠停止禁止フラグの1つである第3間欠停止フラグがOFFになっているエンジン50の運転中に、図17に示すルーチンを繰り返し実行するようにしている。図17に示すルーチンは、システムコントロールユニット100によって実行される。
図17に示すように、このルーチンを開始すると、システムコントロールユニット100は、まずステップS800の処理において、第1モータジェネレータ11の回転角又は第2モータジェネレータ12の回転角が検出できなくなり、回転角が不明になっているか否かを判定する。すなわち、システムコントロールユニット100は、このステップS800の処理を通じて、第1モータジェネレータ11の回転角及び第2モータジェネレータ12の回転角を参照してクランクカウンタを算出することができない状態になっているか否かを判定する。
ステップS800の処理において、回転角が不明になっていると判定した場合(ステップS800:YES)には、システムコントロールユニット100は、処理をステップS810へと進める。そして、システムコントロールユニット100は、ステップS810の処理において回転角が不明になっているモータジェネレータに異常が発生していることを示す情報である異常フラグを不揮発性メモリ104に記憶させる。なお、システムコントロールユニット100は、不揮発性メモリ104に異常フラグが記憶されているときには、警告表示部110に異常が発生していることを示す情報を表示させる。
次に、システムコントロールユニット100は、ステップS820の処理において、第3間欠停止禁止フラグを不揮発性メモリ104に記憶する。これにより、第3間欠停止禁止フラグがONになる。こうして第3間欠停止禁止フラグをONにすると、システムコントロールユニット100は、このルーチンを一旦終了させる。なお、初期状態では、第3間欠停止禁止フラグは不揮発性メモリ104に記憶されておらず、OFFになっている。
前述したように、停止禁止部101は、間欠停止禁止フラグがONになっているときに、間欠停止制御によるエンジン50の運転の停止を禁止する間欠停止禁止処理を実行する。図17を参照して説明したように、システムコントロールユニット100は、第1モータジェネレータ11の回転角及び第2モータジェネレータ12の回転角を参照してクランクカウンタを算出することができない状態になったときに第3間欠停止禁止フラグをONにする。すなわち、制御装置400では、カムポジションセンサ160が故障しており、且つモータジェネレータの回転角を参照してクランクカウンタの算出を行うことができない状態になった場合に、停止禁止部101が、間欠停止禁止処理を実行してエンジンの運転を継続させる。
カムポジションセンサ160が故障しているときに、間欠停止制御によりエンジン50の運転が停止されると、再び、欠け歯部153の検知に基づいて仮決定したクランク角を利用した始動を行う必要がある。カムポジションセンサ160が故障している状態での再始動は失敗するおそれがある。これに対して制御装置400では、間欠停止禁止処理を実行してエンジン50の運転を継続させるため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。
なお、異常フラグは、修理工場において修理などを行い、異常を解消したときに、不揮発性メモリ104から消去される。また、この異常フラグの消去に伴い、第3間欠停止禁止フラグも消去される。
本実施形態の作用及び効果について説明する。
(診断処理に伴う間欠停止禁止処理について)
(1−1)制御装置400では、システムメインスイッチ120をOFFにして給電が停止されても記憶を保持することのできる不揮発性メモリ104に仮判定フラグが記憶される。そのため、異常が有る旨の診断が下されて本判定フラグがONにされる前にシステムメインスイッチ120がOFFにされてしまったとしても、システムメインスイッチ120が次にONにされたときには、不揮発性メモリ104に記憶されている仮判定フラグに基づいて診断の途中であったことを認識できる。
そして、仮判定フラグが記憶されているときには停止禁止部101により間欠停止制御によるエンジン50の運転の停止が禁止される。そのため、診断の途中でシステムメインスイッチ120がOFFにされた場合でも、次にシステムメインスイッチ120がONにされたときにはエンジン50の運転が開始されると即座に間欠停止制御によるエンジン50の運転の停止が禁止され、エンジン50の運転が継続するようになる。したがって、間欠停止制御によるエンジン50の運転の停止が禁止されていない場合と比較して診断処理の実行機会が増え、速やかに診断を完了させることができる。
(1−2)間欠停止制御によるエンジン50の運転の停止を禁止すると、エンジン50の運転が継続するため、燃料の消費量が増えてしまう。すなわち、間欠停止制御によって得られるはずの燃料消費量を抑制する効果が得られなくなってしまう。これに対して、制御装置400では、図13を参照して説明したように、仮判定フラグが記憶されていることによってエンジン50の停止を禁止しているトリップが2回を超えて継続することを抑制することができる。したがって、診断の実行機会の確保と燃料消費量の抑制との調和を図り、燃料消費量が過度に増えてしまうことを抑制できる。
(学習処理に伴う間欠停止禁止処理について)
(2−1)低車速の場合ほど効率の低い状態で燃料を使用してエンジン50を運転させることになるため、低車速の場合ほど、間欠停止禁止処理を実行することによって燃料消費量が増大してしまう。そのため、燃料消費量を抑制する上では、車速閾値を大きな値に設定し、間欠停止禁止処理を実行する車速を高車速側に設定して間欠停止制御を通じて効率の低い状態でのエンジンの運転を抑制することが好ましい。
しかし、エンジン50の稼働が継続するほど、制御対象における経時的な変化、例えばスロットル弁53におけるデポジットの堆積などが蓄積されるため、学習値を更新する必要性は高くなる。これに対して、制御装置400では、学習が完了してからのエンジン50の積算稼働量が多くなるほど、車速閾値が小さな値になり、間欠停止禁止処理を実行する機会が拡大して間欠停止禁止処理が実行されやすくなる。すなわち、制御装置400では、エンジン50の積算稼働量が増えることに伴って学習値を更新する必要性が高まるのに応じて、間欠停止禁止処理の実行機会を拡大し、学習値の更新機会を確保する。したがって、制御装置400によれば、学習値の更新機会の確保と、間欠停止制御の実行による燃料消費量の抑制との調和を図ることができる。
(2−2)制御における補正量が大きいときには、速やかに学習値を更新することが望ましい。これに対して、制御装置400では、補正量が大きいときほど、車速閾値が小さくなり、間欠停止禁止処理の実行機会が拡大される。すなわち、制御装置400によれば、補正量が大きいときに、学習値の更新機会を拡大して制御のずれの速やかな解消を図ることができる。
(カムポジションセンサが故障している場合のエンジン始動にかかる制御について)
(3−1)制御装置400では、カムポジションセンサ160が故障しているときにはクランクポジションセンサ150による欠け歯部153の検知に基づいて、欠け歯部153に対応する2つのクランク角のうち一方のクランク角をクランク角として仮決定する。そして、エンジンコントロールユニット300は、仮決定されたクランク角に基づいて算出されたクランクカウンタの値に基づいてエンジン50を制御する。そのため、カムポジションセンサ160が故障していても、約50%の確率で、エンジン50を始動させることができる。
(3−2)制御装置400では、仮決定したクランク角に基づいて算出したクランクカウンタの値を用いた始動が失敗した場合には、欠け歯部153に対応する2つのクランク角のうち仮決定したクランク角ではない他方のクランク角に基づいてクランクカウンタを算出し直す。そして、算出し直したクランクカウンタを利用してエンジン50の始動を再度試みる。そのため、仮決定した一方のクランク角に基づく始動が失敗した場合でも、他方のクランク角に基づいて算出し直したクランクカウンタを用いた始動によってエンジン50の始動を完了させることができる。
(3−3)制御装置400では、エンジン50の運転を停止させる場合であってもモータジェネレータの回転角を参照してクランクシャフト59の回転角を推定するため、エンジン50が停止している間のクランク角を把握できる。そのため、次回のエンジン始動の際に、把握しているクランク角に基づいて始動を行うことができる。したがって、カムポジションセンサ160が故障していても速やかにエンジン50の始動を完了させることができる。
(3−4)制御装置400では、第1モータジェネレータ11の回転角及び第2モータジェネレータ12の回転角を参照してクランクカウンタを算出することができない状態になったときにエンジン50の運転を継続させる。そのため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・制御装置400は、外部電源40によりバッテリ30を充電可能なプラグインハイブリッド車に適用されていたが、非プラグインタイプのハイブリッド車両に適用してもよい。
・エンジン50が、吸気側のバルブタイミング変更機構56と排気側のバルブタイミング変更機構56とを備えている例を示したが、制御装置400は、バルブタイミング変更機構56を備えていないエンジンを備えたハイブリッド車両に適用することもできる。
具体的には、吸気側のバルブタイミング変更機構56のみを備えているエンジンや排気側のバルブタイミング変更機構56のみを備えているエンジン、さらにはバルブタイミング変更機構56を備えていないエンジンを搭載したハイブリッド車両に適用することもできる。
・クランクカウンタの値の表現は「1」、「2」、「3」、…といった1つずつカウントアップするものに限らない。例えば、対応するクランク角にあわせて「0」、「30」、「60」、…と30ずつカウントアップさせるようにしてもよい。もちろん、クランク角と同じ30ずつのカウントアップになっていなくてもよい。例えば「0」、「5」、「10」、…と5つずつのカウントアップにしてもよい。
・クランクカウンタを30°CA毎にカウントアップさせる例を示したが、クランクカウンタのカウントアップのさせ方はこうした態様には限らない。例えば、10°CA毎にカウントアップさせる構成を採用してもよいし、30°CAよりも長い間隔でカウントアップさせる構成を採用してもよい。すなわち、上記実施形態では、エッジが3つ計数される度にクランクカウンタをカウントアップさせ、クランクカウンタを30°CA毎にカウントアップさせる構成を採用しているが、カウントアップに要するエッジの数は適宜変更してもよい。例えば、エッジが1つ計数される度にクランクカウンタをカウントアップさせ、10°CA毎にクランクカウンタをカウントアップさせる構成を採用することもできる。
・バルブタイミング変更機構56は、油圧駆動式のものであってもよい。その場合、解除動作では、油圧を制御するオイルコントロールバルブを往復動させる。
・例示した診断処理をすべて実施しなくてもよい。また、実施する診断処理は例示したものに限らない。エンジン50が運転していないときに異常の発生を診断できない診断処理を実施する場合には、間欠停止禁止処理を実施する構成を採用すると、上記実施形態と同様に、診断を実施する機会を確保して、速やかに診断を完了させることができる、という効果が得られる。
・診断処理において、学習処理を実行した際に、学習値が上限又は下限に到達している場合に、異常が発生しているとの判定を行う例を示したが、異常診断の方法はこうした態様に限らない。例えば、目標値と検出値とのずれが大きいときに異常が発生していると判定するようにしてもよい。
・仮判定フラグがONになっていることによって間欠停止禁止処理が継続するのを2トリップまでに制限している例を示したが、間欠停止禁止処理が継続するのを許容するトリップ数は、「2」に限らない。例えば、「3」以上であってもよい。また、継続を制限する構成を省略してもよい。
・図11を参照して説明したように、上記実施形態では、仮判定フラグがONになったあとに、正常カウンタが「3」以上になったときに、仮判定フラグを消去し、異常が発生していることを示す表示をやめていた。これに対して、仮判定フラグを消去する条件となる正常カウンタの閾値は「3」には限らない。例えば、「3」よりも小さい値であってもよく、「4」以上の値であってもよい。
・仮判定ルーチンを通じて異常が有るとの判定がなされ、仮判定フラグがONになっているときに、本判定ルーチンを通じて異常が有るとの判定がなされると、異常が発生しているとの診断を下して、本判定フラグをONにする例を示した。これに対して、診断処理における診断の確定の方法、すなわち最終的に診断を下す条件は適宜変更することができる。例えば、仮判定ルーチンを通じて異常が有る旨の判定が複数回連続したときに、異常が発生しているとの診断を下して、本判定フラグをONにするようにしてもよい。
・制御装置400が、システムコントロールユニット100と、パワーコントロールユニット200と、エンジンコントロールユニット300とによって構成されている例を示したが、制御装置の構成はこうした構成に限らない。例えば、物理的に1つの装置として制御装置が構成されていてもよい。また、制御装置は4つ以上のユニットによって構成されていてもよい。
・閾値算出部103が、学習値を学習する対象の制御における補正量が大きいときほど、小さな値を車速閾値として算出する例を示したが、ステップS510の処理を省略し、閾値算出部103が、補正量によらずに、積算稼働量に基づいて車速閾値を算出するようにしてもよい。
・稼働量算出部102が、積算稼働量の指標値として、ハイブリッド車両10の積算航行距離を算出する例を示したが、積算稼働量の指標値はこれに限らない。例えば、稼働量算出部102が、積算稼働量の指標値として、直近の学習処理による学習値の学習が完了してからのエンジン50の積算吸入空気量を算出する構成を採用してもよい。
積算吸入空気量が多くなるほど、エンジン50の積算稼働量が多いといえる。そのため、学習が完了してからのエンジン50の積算吸入空気量を、学習が完了してからのエンジン50の積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジン50の積算稼働量を推定することができる。
また、例えば、稼働量算出部102が、積算稼働量の指標値として、直近の学習処理による学習値の学習が完了してからのエンジン50の積算稼働時間を算出する構成を採用してもよい。
積算稼働時間が長くなるほど、エンジン50の積算稼働量が多いといえる。そのため、学習が完了してからのエンジン50の積算稼働時間を、学習が完了してからのエンジン50の積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジン50の積算稼働量を推定することができる。
・欠け歯部153に対応するクランク角が、「90°CA」と「450°CA」であり、カムポジションセンサ160が故障した場合に欠け歯部153が検出されたクランク角を「90°CA」に仮決定する例を示した。しかし、仮決定するクランク角を「450°CA」にしてもよい。この場合、ステップS710の処理では、「90°CA」を正しいクランク角であったとみなしてクランクカウンタを算出し直す。
すなわち、クランクシャフト59が2回転する場合、欠け歯部153に対応する2つのクランク角は360°CA分離れているため、一方のクランク角に対して、他方のクランク角は1回転分増大又は減少させたクランク角になる。
したがって、エンジン50の始動が失敗した場合には、カウンタ算出部302が仮決定したクランク角から1回転分増大又は減少させたクランク角に基づいてクランクカウンタを算出し直し、算出し直したクランクカウンタに基づいてエンジン50を再度始動するようになっていればよい。
・仮決定したクランク角に基づく始動が失敗したときにクランクカウンタの値を切り替える図16を参照して説明した処理を省略してもよい。少なくとも、欠け歯部153に対応する2つのクランク角のうち一方のクランク角に仮決定して始動を行えば、約50%の確率で始動を成功させることができる。
・モータジェネレータの回転角を参照してクランクカウンタを算出することができなくなった場合に間欠停止を禁止する構成を省略してもよい。この場合、次に始動する際には、クランク角を仮決定し、図16を参照して説明した処理を実行して始動を試みればよい。
・エンジン50の運転を停止させている間も、モータジェネレータの回転角を参照してクランクカウンタの算出を継続する構成を省略してもよい。
・第3間欠停止禁止フラグを不揮発性メモリ104に記憶させる例を示したが、不揮発性メモリ104ではない、給電が停止された場合に記憶が消去されるメモリに第3間欠停止禁止フラグを記憶させてもよい。この場合には、次回、エンジン50を運転させて図17を示して説明したルーチンを実行したときに、第3間欠停止禁止フラグがONにされる。
・エンジン50を運転させている際に、第2モータジェネレータ12による駆動力の変更又は第1モータジェネレータ11による発電量の変更などがあった直後は、機関回転速度が安定しにくい。そのため、このときには、ISC学習を禁止して、ISC学習を行わないようにしてもよい。また、このときには、ISC学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。また、ISC学習を禁止せずにISC学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。
・エンジン50の始動時などの燃料増量補正を行った場合にも機関回転速度が安定しにくい。そのため、燃料増量補正を行っているとき、及び行った直後には、ISC学習を禁止して、ISC学習を行わないようにしてもよい。また、このときには、ISC学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。また、ISC学習を禁止せずにISC学習の実行機会を確保するための間欠停止禁止処理を実行しないようにしてもよい。
・インバランスの診断処理を実行するときには、信号とノイズの比率であるS/N比を確保するために、点火時期を遅角させ、吸入空気量を増大させている。そのため、ISC学習における学習値にずれが生じる可能性がある。そこで、インバランスの診断処理を実行しているときには、ISC学習を行わないようにしてもよい。
・ISC学習を行う場合、他の制御との兼ね合いで、学習値にずれが生じてしまう場合であっても、制御の影響によるずれの大きさを予め把握できるのであれば、それを相殺して学習を行うことができる。そのため、そうした相殺を行う場合には、上記実施形態のように間欠停止禁止処理を行って学習を実行する。例えば、第2モータジェネレータ12による駆動力の変更又は第1モータジェネレータ11による発電量の変更などがあった場合には、クランクシャフト59にかかるトルクが変化するため、そのままでは、ISC学習を正しく行えないが、トルクの変化を予め織り込んでおき、相殺することで学習を行うことができる。その場合には、上記実施形態のように間欠停止禁止を実施して、学習を行うことができる。
・なお、アイドリング運転中には第1モータジェネレータ11への通電を制御してクランクシャフト59に第1モータジェネレータ11による負荷が作用しないようにしている。しかし、その制御には第1モータジェネレータ11の回転数毎に誤差がある。その結果、ISC学習における学習値にずれが生じてしまう。そこで、第1モータジェネレータの回転数毎に補正量を設定し、補正を施して第1モータジェネレータ11への通電を制御してISC学習を行うようにすることもできる。第1モータジェネレータ11の回転数は車速に比例するため、補正量は車速に基づいて算出すればよい。
・モータジェネレータの回転角を参照してクランクカウンタを算出できなくなったか否かを判定する例として、レゾネータの故障を例示した。しかし、モータジェネレータの回転角を参照してクランクカウンタを算出できなくなる要因は、レゾネータの故障に限らない。例えば、図18に示すような1モータハイブリッド車両の場合には、クラッチ230によってエンジン50のクランクシャフト59と駆動モータ210との接続を解除することによって、駆動モータ210の回転角を参照してクランクカウンタを算出することができなくなる。
こうした構成の場合の制御の例について図18及び図19を参照して説明する。
図18に示すように、このハイブリッド車両は、エンジン50と変速機220との間に駆動モータ210が設けられている。また、駆動モータ210とエンジン50との間にはクラッチ230が介在している。駆動モータ210は変速機220の入力軸221に繋がっており、変速機の出力軸222には、差動機構22を介して、車輪23の駆動軸24が連結されている。
制御装置400は停止禁止部101とカウンタ算出部302とを備えている。制御装置400は、エンジン50とクラッチ230と駆動モータ210を制御する。
この制御装置400では、図17に示したルーチンに替えて、図19に示したルーチンを実行する。このルーチンは制御装置400によって、カムポジションセンサ160が故障している状態であり、第3間欠停止フラグがOFFになっているエンジン50の運転中に、繰り返し実行される。
図19に示すように、このルーチンを開始すると、制御装置400は、まずステップS900の処理において、クラッチ230がクランクシャフト59と駆動モータ210との接続を解除した状態であるOFFの状態になっているか否かを判定する。すなわち、制御装置400は、このステップS900の処理を通じて、駆動モータ210の回転角を参照してクランクカウンタを算出することができない状態になっているか否かを判定する。
ステップS900の処理において、クラッチがOFFになっていると判定した場合(ステップS900:YES)には、制御装置400は、処理をステップS910へと進める。そして、制御装置400は、ステップS910の処理において第3間欠停止禁止フラグをメモリに記憶する。これにより、第3間欠停止禁止フラグがONになる。こうして第3間欠停止禁止フラグをONにすると、制御装置400は、このルーチンを一旦終了させる。なお、初期状態では、第3間欠停止禁止フラグはメモリに記憶されておらず、OFFになっている。また、この制御装置400の場合には、第3間欠停止禁止フラグを記憶するメモリは不揮発性メモリではないため、給電が停止された場合には、第3間欠停止禁止フラグは消去される。
一方で、ステップS900の処理において、クラッチがOFFになっておらず、クランクシャフト59と駆動モータ210とを接続させた状態であるONの状態になっていると判定した場合(ステップS900:NO)には、制御装置400は、ステップS910の処理を実行せずにこのルーチンを一旦終了させる。
こうした構成を採用した場合にも、モータジェネレータの回転角を参照してクランクカウンタの算出を行うことができない状態になった場合に、停止禁止部101が、間欠停止禁止処理を実行してエンジンの運転を継続させることができる。そのため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。
上記実施形態及び変更例から把握できる技術的思想について記載する。
(1)エンジンとモータとを駆動力源として備えたハイブリッド車両に適用され、前記エンジンの運転を自動で停止させ、再始動させる間欠停止制御と、前記エンジンの制御に用いる学習値を学習する学習処理と、を実行するハイブリッド車両の制御装置であり、前記間欠停止制御による前記エンジンの運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部と、直近の前記学習処理による前記学習値の学習が完了してからの前記エンジンの積算稼働量を示す指標値を算出する稼働量算出部と、前記稼働量算出部が算出した指標値に基づいて車速閾値を算出する閾値算出部と、を備え、前記閾値算出部が、前記指標値に基づいて前記積算稼働量が多いときほど、小さな値を前記車速閾値として算出し、前記停止禁止部が、前記ハイブリッド車両の車速が前記車速閾値以上である場合に、前記間欠停止禁止処理を実行するハイブリッド車両の制御装置。
エンジンの稼働が継続するほど、制御対象における経時的な変化、例えばスロットル弁におけるデポジットの堆積などが蓄積されるため、学習値を更新する必要性は高くなる。これに対して、上記構成によれば、学習が完了してからのエンジンの稼働量が多くなるほど、車速閾値が小さな値になり、間欠停止禁止処理を実行する機会が拡大し、間欠停止禁止処理が実行されやすくなる。すなわち、上記構成によれば、エンジンの稼働量が増えることに伴って学習値を更新する必要性が高まるのに応じて、間欠停止禁止処理の実行機会を拡大し、学習値の更新機会の確保と、間欠停止制御の実行による燃料消費量の抑制との調和を図ることができる。
(2)前記閾値算出部が、前記学習値を学習する対象の制御における補正量が大きいときほど、小さな値を前記車速閾値として算出する(1)に記載のハイブリッド車両の制御装置。
制御における補正量が大きいときには、速やかに学習値を更新することが望ましい。これに対して、上記構成によれば、補正量が大きいときほど、車速閾値が小さくなり、間欠停止禁止処理の実行機会が拡大される。すなわち、補正量が大きいときに、学習値の更新機会を拡大して制御のずれの速やかな解消を図ることができる。
(3)前記稼働量算出部が、前記指標値として、直近の前記学習処理による前記学習値の学習が完了してからの前記ハイブリッド車両の積算走行距離を算出する(1)又は(2)に記載のハイブリッド車両の制御装置。
積算走行距離が長くなるほど、エンジンの積算稼働量は多くなりやすい。そのため、学習が完了してからの積算走行距離を、学習が完了してからのエンジンの積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
(4)前記稼働量算出部が、前記指標値として、直近の前記学習処理による前記学習値の学習が完了してからの前記エンジンの積算吸入空気量を算出する(1)又は(2)に記載のハイブリッド車両の制御装置。
積算吸入空気量が多くなるほど、エンジンの積算稼働量が多いといえる。そのため、学習が完了してからのエンジンの積算吸入空気量を、学習が完了してからのエンジンの積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
(5)前記稼働量算出部が、前記指標値として、直近の前記学習処理による前記学習値の学習が完了してからの前記エンジンの積算稼働時間を算出する(1)又は(2)に記載のハイブリッド車両の制御装置。
積算稼働時間が長くなるほど、エンジンの積算稼働量が多いといえる。そのため、学習が完了してからのエンジンの積算稼働時間を、学習が完了してからのエンジンの積算稼働量の指標値として算出することによって、算出した指標値に基づいて学習が完了してからのエンジンの積算稼働量を推定することができる。
(6)エンジンとモータとを駆動力源として備えたハイブリッド車両に適用され、前記エンジンの運転を自動で停止させ、再始動させる間欠停止制御を実行するハイブリッド車両の制御装置であり、前記エンジンのクランクシャフトの回転に伴って一定のクランク角毎にクランクポジションセンサが出力するパルス信号の検知及び前記クランクシャフトが1回転する間に1度発生する欠け歯部の検知及び前記クランクシャフトと連動して回転して前記クランクシャフトが2回転する間に1回転するカムシャフトの特定のカム角の到来を検出するカムポジションセンサが出力する信号の検知に基づいて前記クランクシャフトが2回転する分のクランク角に対応するクランクカウンタの値を算出するカウンタ算出部を備え、前記カムポジションセンサが故障しているときには、前記カウンタ算出部は、前記クランクポジションセンサによる前記欠け歯部の検知に基づいてクランク角を仮決定してクランクカウンタの値を算出し、前記カムポジションセンサが故障しているときには、仮決定したクランク角に基づいて前記カウンタ算出部が算出したクランクカウンタの値に基づいてエンジンを制御するハイブリッド車両の制御装置。
クランクシャフトが2回転する間に欠け歯部は2回検知されるため、欠け歯部に対応するクランク角は1回転目におけるクランク角と、その1回転目のクランク角から360°CA分離れた2回転目におけるクランク角との2つがある。
上記構成によれば、カムポジションセンサが故障しているときにはクランクポジションセンサによる欠け歯部の検知に基づいて欠け歯部に対応する2つのクランク角のうち、一方のクランク角をクランク角として仮決定し、仮決定されたクランク角に基づいてクランクカウンタの値が算出される。そして、仮決定されたクランク角に基づいて算出したクランクカウンタの値に基づいてエンジンが制御される。そのため、カムポジションセンサが故障しても、仮決定したクランク角に基づいて算出したクランクカウンタの値に基づいてエンジンを制御することによって、約50%の確率で、エンジンを始動させることができる。
(7)仮決定したクランク角に基づいて算出したクランクカウンタの値に基づいて実行した前記エンジンの始動が成功した場合には、前記カウンタ算出部が前記仮決定したクランク角に基づく前記クランクカウンタの算出を継続する一方、仮決定したクランク角に基づいて算出したクランクカウンタの値に基づいて実行した前記エンジンの始動が失敗した場合には、前記カウンタ算出部が仮決定したクランク角から1回転分増大又は減少させたクランク角に基づいて前記クランクカウンタを算出し直し、算出し直した前記クランクカウンタに基づいて前記エンジンを再度始動する(6)に記載のハイブリッド車両の制御装置。
上記構成によれば、仮決定したクランク角に基づいて算出したクランクカウンタの値を用いた始動が失敗した場合には、欠け歯部に対応する2つのクランク角のうち仮決定したクランク角ではない他方のクランク角に基づいてクランクカウンタを算出し直し、算出し直したクランクカウンタを利用してエンジンの始動を再度試みる。そのため、仮決定した一方のクランク角に基づく始動が失敗した場合でも、他方のクランク角に基づいて算出し直したクランクカウンタを用いた始動によってエンジンの始動を完了させることができる。
(8)前記カウンタ算出部が、前記モータの回転角を参照して前記クランクカウンタの算出を行う(6)又は(7)に記載のハイブリッド車両の制御装置。
クランクポジションセンサは、クランクシャフトの回転速度が極めて遅いときにはクランク角を検出できない。また、クランクシャフトの回転方向を特定できないため、エンジンの停止直前にクランクシャフトが逆回転方向に回転すると、クランク角を把握できなくなる。これに対して、モータとエンジンとを利用して走行するハイブリッド車両の場合には、エンジンの駆動を補助しているモータの回転角に基づいて、クランクシャフトの回転角を推定することができる。この場合、エンジンが停止するようなクランクシャフトの回転速度が極めて遅い場合や、逆回転方向への回転が生じた場合であってもクランクシャフトの回転角を推定することができる。そのため、上記構成によれば、エンジンの運転を停止させる場合であってもモータの回転角を参照してクランクシャフトの回転角を推定することができる。こうしてエンジンが停止している間のクランク角を把握できれば、次回のエンジン始動の際には、把握しているクランク角に基づいて始動を行うことができる。そのため、カムポジションセンサが故障していても速やかにエンジンの始動を完了させることができる。
(9)前記間欠停止制御による前記エンジンの運転の停止を禁止する間欠停止禁止処理を実行する停止禁止部を備え、前記カムポジションセンサが故障しており、且つ前記モータの回転角を参照して前記クランクカウンタの算出を行うことができない状態になった場合には、前記停止禁止部が、間欠停止禁止処理を実行して前記エンジンの運転を継続させる(8)に記載のハイブリッド車両の制御装置。
カムポジションセンサが故障しているときに、間欠停止制御によりエンジンの運転が停止されると、再び、欠け歯部の検知に基づいて仮決定したクランク角を利用した始動を行う必要がある。
カムポジションセンサが故障している状態での再始動は失敗するおそれがあり、エンジンの運転を継続させる場合と比較して燃料の無駄な消費や未燃ガスの排出をまねくおそれがある。これに対して、上記の構成によれば、エンジンの運転を継続させるため、失敗するおそれのある再始動の実施を抑制し、始動の失敗を避けることができる。