(第1の実施形態)
本発明の第1の実施形態に係る燃料レベルセンサ診断装置(以下、診断装置と略記する)を、図1〜7を用いて説明する。
図1は診断装置1を搭載した自動車100の一部の構成を示す図である。
自動車100は、診断装置1、燃料レベルセンサ(FLS:fuel level sensor)2、燃料タンク3、燃料ポンプ4、燃料パイプ5、インジェクタ6、ECU(electronic control unit)7、吸気量センサ8および速度計9を含む。自動車100は、図1に示すこれらの各要素の他に、既存の自動車が備える各種の要素を含むがそれらの図示は省略している。
診断装置1は、燃料レベルセンサ2の動作状況を診断する。
燃料レベルセンサ2は、燃料タンク3の内部に配置されている。燃料レベルセンサ2は、フロート2aを含む。フロート2aは、燃料タンク3内の燃料Fの液面FLで浮き、その液面のレベルに応じて上下方向に位置を変える。燃料レベルセンサ2は、フロート2aの位置に応じた値を出力する。燃料レベルセンサ2は典型的には、フロート2aの位置を抵抗値として検出し、抵抗値をそのまま出力する場合と、抵抗値を燃料残量の割合に換算して出力する場合とがある。本実施形態においては、燃料レベルセンサ2は、フロート2aの可動範囲の幅とその可動範囲の最下端からフロート2aの現在位置までの距離とのパーセンテージを出力することとする。燃料レベルセンサ2の出力を、以降においてはFLS出力と称する。
なお、燃料Fは燃料ポンプ4によって燃料パイプ5を介してインジェクタ6へと供給されて、図示しないエンジンの吸気ポート内へと噴射される。インジェクタ6による燃料噴射量は、ECU7によって制御される。ECU7は、吸気ポートから燃焼室への吸入空気量の吸気量センサ8での検出値に応じて燃料噴射量を決める。
ECU7には、自動車100の走行速度、すなわち車速を検出する速度計9も接続されている。
さて診断装置1は、CPU(central processing unit)1a、ROM(read-only memory)1b、RAM(random-access memory)1c、通信デバイス1dおよびインタフェースユニット(I/F)1eを含む。そしてこれらの各要素は、バス1fにそれぞれ接続されている。
CPU1aは、ROM1bに記憶された診断処理プログラムに基づいて後述する診断処理を行う。
ROM1bは、上記の診断処理プログラムを記憶する。
RAM1cは、CPU1aが各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアとして利用される。
診断処理プログラムは、EEPROMなどの別の補助記憶デバイスを備えて、そこに診断処理プログラムを記憶しても良い。なお、診断処理プログラムを補助記憶デバイスが記憶する場合、診断装置1、診断装置1を含んだユニット、あるいは診断装置1を搭載した自動車100の譲渡は、一般的に上記の診断処理プログラムが補助記憶デバイスに記憶された状態にて行われる。しかし、診断装置1、診断装置1を含んだユニット、あるいは診断装置1を搭載した自動車100が上記の診断処理プログラムが補助記憶デバイスに記憶されない状態で譲渡されるとともに、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリなどのようなリムーバブルな記録媒体に記録して、あるいはネットワークを介して上記の診断処理プログラムが譲渡され、このように譲渡された診断処理プログラムが補助記憶デバイスに書き込まれても良い。
通信デバイス1dは、ECU7との間で例えばCAN(control area network)を介したデータ通信を行う。
インタフェースユニット1eは、FLS出力を取り込む。
次に以上のように構成された自動車100における診断装置1の動作について説明する。なお、本実施形態の自動車100は既存の別の自動車が備えるのと同様な様々な機能を備えるが、それらの機能に関する動作は既存の別の自動車と同様であるので、その詳細な説明は省略する。そして以下においては、診断装置1による燃料レベルセンサ2の診断処理に関して詳細に説明する。
診断処理の説明に先立ち、燃料レベルセンサ2について説明する。
図1において実線で表したフロート2aは、最上端に位置する状態を示している。また図1において破線で表したフロート2aは、最下端に位置する状態を示している。かくしてフロート2aは、図1にRaで表す範囲を可動範囲とする。
図1において、破線LHは燃料Fの液面FLの最高レベルを表し、破線LLは液面FLの最低レベルを表す。なお、破線LLのレベルよりも下に存在する燃料Fを燃料ポンプ4が吸い上げることができないため、液面FLが最低レベルLLにある状態が残量ゼロの状態となる。
かくして、フロート2aの可動範囲Raは液面FLの変動範囲よりも狭く、燃料タンク3内の燃料Fの残量が満量付近または空付近であるときには、フロート2aの位置は液面FLの変化に追従しない。
図2は燃料タンク3内の燃料Fの残量とFLS出力との関係を表す図である。
図2において実残量0%は液面FLが最低レベルLLにある状態に相当し、実残量100%は液面FLが最高レベルLHにある状態に相当する。FLS出力100%はフロート2aが図1に実線で表す状態にあるときに相当し、FLS出力0%はフロート2aが図1に破線で示す状態にあるときに相当する。
図3は診断処理のフローチャートである。
CPU1aは、診断処理を実行していないときに、図3に示す診断処理を一定の時間間隔で繰り返し開始する。診断処理を開始する時間間隔は、診断装置1の設計者などにより任意に定められて良い。
ステップSa1においてCPU1aは、診断のための燃料レベルセンサ2のモニタを実施するか否かを判定するための条件(以下、モニタ実施条件と称する)が成立しているか否かを確認する。このモニタ実施条件は、診断装置1の設計者などにより任意に定められ、診断処理プログラム中に記述される。モニタ実施条件は例えば、イグニションスイッチがオンであり、速度計9が検出した車速をECU7から取得できる状況であり、かつエンスト状態およびエンジン始動時ではないこととする。そしてモニタ実施条件が成立せず、ステップSa1でNOと判定した場合には、CPU1aは診断処理を終了する。このため、モニタ実施条件が成立しない状況にあっては、CPU1aは図3に示す診断処理を一定の時間間隔で繰り返し開始することとなり、モニタ実施条件が成立するのを待ち受けることになる。そしてモニタ実施条件が成立するためにステップSa1でYESと判定したならばCPU1aは、ステップSa1からステップSa2へ進む。
ステップSa2においてCPU1aは、単位時間が経過したか否かを確認する。そしてここでNOと判定したならばCPU1aは、ステップSa1に戻る。かくしてCPU1aは、ステップSa1およびステップSa2の待ち受け状態となる。なお、ステップSa2においてCPU1aは、この待ち受け状態に入った時点からの経過時間が単位時間以上となったか否かを確認する。単位時間は、診断装置1の設計者などにより任意に定められて良い。ただし単位時間は、後述する閾値THVに相当する量の燃料Fを消費するのに要する最短の時間よりも十分に短く定めることとする。
モニタ実施条件が成立した状態のままで単位時間が経過したならば、CPU1aはステップSa2でYESと判定し、ステップSa3へと進む。
ステップSa3においてCPU1aは、FLS値をインタフェースユニット1eを介して取り込み、このFLS値が閾値THmin以上で、かつ閾値THmax以下であるか否かを確認する。閾値THminおよび閾値THmaxは、それぞれ診断装置1の設計者などにより任意に定められて良い。ただし閾値THminはFLS出力の最低値より若干大きな値として、閾値THmaxはFLS出力の最高値より若干小さな値として、図2に示すような値として定めることとする。従って、THmin<THmaxである。THminは例えば5%、THmaxは例えば95%と定めることが想定される。そしてFLS値がTHmin未満であるか、または閾値THmaxよりも大きいためにここでNOと判定したならばCPU1aは、ステップSa4へ進む。
ステップSa4においてCPU1aは、継続フラグFをセットする。継続フラグFは、RAM1cの1ビットまたは数ビットを利用する。そしてこののちにCPU1aは、後述するステップSa6へ進む。
一方でFLS値が閾値THmin以上で、かつ閾値THmax以下であるためにステップSa3でYESと判定したならばCPU1aは、ステップSa5へ進む。
ステップSa5においてCPU1aは、継続フラグFがセットされているか否かを確認する。そして、継続フラグFがセットされているためにここでYESと判定したならばCPU1aは、ステップSa5からステップSa6へと進む。
ステップSa6においてCPU1aは、速度計9が検出した車速をECU7および通信デバイス1dを介して取得し、この車速が閾値THSよりも大きいか否かを確認する。閾値THSは自動車100が走行しているか否かを判定するためのものであり、診断装置1の設計者などにより小さな値に定められる。閾値THSは例えば、1.5km/hとすることが想定される。そして自動車100が走行していることが確かであり、車速が閾値THSよりも大きいためにステップSa6にてYESと判定したならばCPU1aは、ステップSa7へと進む。なお、継続フラグFがリセットされているためにステップSa5でNOと判定した場合にもCPU1aはステップSa7へと進む。
ステップSa7においてCPU1aは、現時点までの単位時間に渡る期間におけるインジェクタ6からの燃料噴射量をECU7から通信デバイス1dを介して取得し、この燃料噴射量を変数INJSUMの値に加算する。かくして変数INJSUMは燃料噴射量の積算値を表す。燃料噴射量は、燃料Fの消費量とほぼ一致し、燃料の消費量と相関を有する数値の一例である。従ってCPU1aは、単位時間における燃料の消費量と相関を有する数値を取得する取得手段として機能する。
そしてステップSa8においてCPU1aは、ステップSa7で新たに求まった変数INJSUMの値が閾値THL以上であるか否かを確認する。閾値THLは診断装置1の設計者などにより任意に定められて良いが、後述する閾値THVよりも大きな値に定めることとする。閾値THLは例えば10リットルと定めることが想定される。変数INJSUMの値が閾値THL未満であるためにステップSa8にてNOと判定したならばCPU1aは、ステップSa9へ進む。なお、車速が閾値THS以下であるためにステップSa6にてNOと判定したならばCPU1aは、ステップSa9へ進む。
ステップSa9においてCPU1aは、ステップSa3にて取り込んだFLS値の変数RA0に対する差としてFLS値の変化量ΔFLSを求め、これが閾値THV未満であるか否かを確認する。変数RA0については後述する。閾値THVは診断装置1の設計者などにより任意に定められて良いが、前述したように閾値THLよりも大きな値に定めることとする。閾値THLは例えば、2リットルと定めることが想定される。そして、変化量ΔFLSが閾値THV未満であり、ステップSa9でYESと判定したならばCPU1aは、ステップSa1およびステップSa2の待ち受け状態に戻る。しかしながら、変化量ΔFLSが閾値THV以上であり、ステップSa9でNOと判定したならばCPU1aは、ステップSa10へ進む。
ステップSa10においてCPU1aは、変数INJSUMを予め定められた初期値にリセットするとともに、ステップSa3にて取り込んだFLS値を変数RA0に代入する。かくして変数RA0は、変数INJSUMを最も新しくリセットした際のFLS値を表す。かくして前述のステップSa9においては、変数INJSUMを最も新しくリセットした際から現在までのFLS値の変化量ΔFLSが閾値THV未満であるか否かを確認していることになる。なお、初期値は診断装置1の設計者などにより任意に定められて良いが、典型的には0である。
ステップSa11においてCPU1aは、ステップSa3にて取り込んだFLS値が閾値THmaxよりも大きいか否かを確認する。そしてCPU1aは、ここでYESと判定したならばステップSa1およびステップSa2の待ち受け状態に戻り、NOと判定したならばステップSa12へと進む。
ステップSa12においてCPU1aは、継続フラグFをリセットする。そしてこののちにCPU1aは、ステップSa1およびステップSa2の待ち受け状態に戻る。つまりCPU1aは、変数INJSUMを最も新しくリセットした際の燃料Fの実残量が満量付近ではないときに継続フラグFをリセットする。なお、ステップSa3にて取り込んだFLS値が閾値THmaxよりも大きいためにステップSa11にてYESと判定したならばCPU1aは、ステップSa11からステップSa12をパスしてステップSa1およびステップSa2の待ち受け状態に戻る。
以上のような処理の結果としてステップSa3乃至ステップSa6においてCPU1aは、次の3つの状態のいずれかであるか否かを判断する。
(1) 燃料Fの実残量が空付近または満量付近ではなく、かつFLS値が最も新しく閾値THmaxを下回るか、閾値THminを上回った後に燃料噴射量の積算値のリセットが一度でもなされている状態。
(2) 燃料Fの実残量が空付近または満量付近ではなく、FLS値が最も新しく閾値THmaxを下回るか、閾値THminを上回った後に燃料噴射量の積算値のリセットが一度もなされておらず、かつ自動車100が規定速度以上で走行している状態。
(3) 燃料Fの実残量が空付近または満量付近であり、かつ自動車100が規定速度以上で走行している状態。
そしてCPU1aは、上記の3つの状態のいずれかであるときにステップSa7にて燃料噴射量の積算を行い、それ以外の状態では燃料噴射量を積算しない。
かくしてCPU1aは、単位時間における燃料Fの消費量と相関を有する数値(燃料噴射量)の積算値を算出するために、上記の数値を速度計9が計測した走行速度(車速)に拘わらずに積算する第1の積算処理と、上記の数値を速度計9が計測した走行速度が規定速度(閾値THS)以上であるときにのみ積算する第2の積算処理とを選択的に実施するとともに、燃料Fの残量の変化量ΔFLSが規定変化量(閾値THV)となる毎に積算値を初期値にリセットするのであり、積算手段として機能する。さらにCPU1aは、燃料レベルセンサ2が検出した残量が第1の規定量(閾値THmin)以上、かつ第1の規定量よりも大きな第2の規定量(閾値THmax)未満である第1の状態のときには第1の積算処理を実施し、燃料レベルセンサ2が検出した残量が第1の規定量未満または前記第2の規定量以上である第2または第3の状態のときには第2の積算処理を実施するように制御するのであり、制御手段として機能する。
そして、上記のようにして求めた積算値を表した変数INJSUMが閾値THL以上になったならば、CPU1aはステップSa8にてYESと判定し、ステップSa13へ進む。
ステップSa13においてCPU1aは、予め定めた異常処理を実行する。この異常処理の内容は診断装置1の設計者などにより任意に定められて良い。異常処理としては例えば、燃料レベルセンサ2が故障している旨を通知するためのコマンドを通信デバイス1dを介してECU7に送る処理とすることが想定される。そして異常処理を終えたならばCPU1aは、図3に示す診断処理を終了する。かくしてCPU1aは、積算値が限度値以上となったことに応じて燃料レベルセンサ2が異常であると判定しているのであり、異常判定手段として機能する。
なお、異常処理を行った上で診断処理を終了した場合には、前述したように一定の時間間隔で診断処理を再開しても良いし、異常に対する何らかの対処が行われたことに応じて診断処理を再開するよう例えばECU7から指示されたことを受けてから診断処理を再開しても良い。
以上の診断処理による実現される動作の具体例について説明する。
図4から図7はモニタ実施条件の成立/不成立、変数INJSUM、FLS値、車速および積算処理の実施/不実施の経時変化の一例を表す図である。
図4のT1時点においてモニタ実施条件が成立したが、このT1時点から始まる期間P1においてはFLS値が閾値THmaxよりも大きく、かつ車速も閾値THS以下であるために積算処理は不実施とされ、変数INJSUMは変化しない。
期間P2においては、FLS値は閾値THmax未満のままであるが、車速が閾値THSよりも大きいために積算処理が実施され、変数INJSUMが変化する。ただし、時点T2,T3ではそれぞれ、FLS値の変化量ΔFLS(1),ΔFLS(2)が閾値THV以上になったことに応じてリセットされている。また、当初は変数RA0の値は、当初のRA0(1)からRA0(2),RA0(3)と順次に変化している。
そして、時点T4において車速が閾値THS以下に低下したことに応じて、積算処理が不実施とされる。この結果として変数INJSUMは、時点T4における値にホールドされる。
図5の期間P11においては、FLS値が閾値THmin以上、かつ閾値THmax以下となっているから、車速が閾値THS以下であっても積算処理が実施され、変数INJSUMが変化する。
時点T11においては、車両の揺れなどに起因したFLS値の一時的な上昇により、FLS値が閾値THmaxよりも大きくなっている。しかも、車速が閾値THS以下である。そしてこの場合には、即座に積算処理を不実施とする。
時点T12においては、FLS値が閾値THmaxを下回るが、時点T11において継続フラグFをセットしているために、積算処理を実施しない状態を継続する。
時点T13においては、車速が閾値THSよりも大きくなったために積算処理を実施する状態に移行する。
時点T15においては、車速が閾値THS以下に低下するが、それよりも前の時点T14において変数INJSUMがリセットされたことによって継続フラグFをリセットしているために、積算処理を実施する状態を継続する。
図6のT21においては、車両の揺れなどに起因したFLS値の一時的な低下により、FLS値が閾値THmin未満となっている。しかし、車速が閾値THSよりも大きいので、積算処理を実施する状態を継続する。
時点T23においては、車速が閾値THS以下に低下する。このとき、FLS値が閾値閾値THmin以上で、かつ閾値THmax以下であるが、時点T22においてFLS値が閾値THmin以上になってから変数INJSUMのリセットが一度もなされていないために、積算処理を実施しない状態に移行する。
図7の期間P31においては、例えばイグニションスイッチがオフされるなどの要因でモニタ実施条件が不成立である。このため、期間P31における積算処理は不実施とされ、変数INJSUMは期間P31の開始時点T31における値にホールドされる。
時点T32においては、変数INJSUMの値が閾値THL以上になっているが、この時点T32での変数RA0の値RA0(31)に対するFLS値の変化量ΔFLS(31)は閾値THV未満である。従って時点T32において、燃料レベルセンサ2が異常であると判定される。
かくして診断装置1によれば、ある基準タイミングからの燃料噴射量の積算値と、同じ基準タイミングからのFLS値の変化量ΔFLSとを観察するが、積算値が閾値THL以上になるよりも前に変化量ΔFLSが閾値THV以上になったことに応じて、基準タイミングをそのタイミングに更新して積算値と変化量ΔFLSとの観察をやり直す。そして、変化量ΔFLSが閾値THV以上になるよりも前に積算値が閾値THL以上になったことに応じて、燃料レベルセンサ2に異常があると判定する。ただし、燃料Fの実残量が満量付近または空付近である状態にあっては、車両が規定速度以上で走行している場合に限って燃料噴射量の積算を行うこととし、車両がほぼ停止している状態における燃料噴射量は燃料レベルセンサ2の異常判定のためには考慮しないこととする。
これにより、燃料噴射量と燃料レベルセンサ2が検出する燃料Fの残量の検出値との相関に応じて燃料レベルセンサ2の異常判定を行うが、燃料Fの実残量が満量付近または空付近であり、かつ車両がほぼ停車している状況においては、燃料レベルセンサ2が正常であってもFLS値がほとんど変化しない恐れがあるために、燃料噴射量の積算を止めることにより異常であるか否かの判断を行わないことにより、燃料レベルセンサ2が異常であると誤判定してしまうことを防止できる。さらに、燃料Fの実残量が満量付近または空付近であっても、車両がある程度の速度で走行している状況においては、車両の振動に伴って燃料Fの液面が揺れることによってFLS値にも変化が生じるはずであることから、FLS値に規定の変化が生じないことに応じて燃料レベルセンサ2に固着などの異常が生じていることを判定可能である。つまり、燃料Fの実残量が満量付近または空付近であるときにおいて燃料レベルセンサ2の診断を完全に停止する場合に比べて、燃料レベルセンサ2の異常をより早く検知することができる。
なお、燃料Fの実残量が満量付近および空付近のいずれでもない時には、FLS値の変化は燃料Fの実残量の変化にほぼ比例するので、車両の走行速度に拘わらずに原則的に燃料噴射量の積算を常時行うことによって、燃料レベルセンサ2の異常を速やかに検知することができる。
また、燃料Fの実残量が満量付近および空付近のいずれでもない状態から満量付近または空付近である状態に変化した場合には、車両が規定速度以上で走行している場合に限って燃料噴射量の積算を行う状態に速やかに移行する。これにより、FLS値の変化が燃料Fの実残量に比例しない状況を燃料レベルセンサ2が異常であると誤判定してしまう状況が継続してしまうことがない。
さらに、燃料Fの実残量が満量付近または空付近である状態から満量付近および空付近のいずれでもない状態に変化した場合には、車両が規定速度以上で走行している場合に限って燃料噴射量の積算を行う状態を継続する。これにより、燃料Fの実残量が閾値THminまたは閾値THmaxに近い状況において燃料Fの液面の一時的な変動によりFLS値が閾値THminまたは閾値THmaxの付近で頻繁に変化するような状況においては、車両が規定速度以上で走行している場合に限って燃料噴射量の積算を行う状態を継続することによって、誤判定を防止する可能性を高める。
(第2の実施形態)
本発明の第2の実施形態に係る燃料レベルセンサ診断装置(以下、診断装置と略記する)を、図8〜11を用いて説明する。
図8は診断装置10を搭載した自動車200の一部の構成を示す図である。なお、図8において図1と同一の要素には同一の符号を付し、その詳細な説明は省略する。
自動車200は、燃料ポンプ4、燃料パイプ5、インジェクタ6、ECU7、吸気量センサ8、速度計9、診断装置10、燃料タンク11および燃料レベルセンサ12,13を含む。自動車200は、図8に示すこれらの各要素の他に、既存の自動車が備える各種の要素を含むがそれらの図示は省略している。すなわち自動車200は、前述した第1の実施形態における自動車100の診断装置1、燃料レベルセンサ2および燃料タンク3に代えて、診断装置10、燃料レベルセンサ12,13および燃料タンク11を備える。
診断装置10は、燃料レベルセンサ12,13の動作状況を診断する。
燃料タンク11は、プロペラシャフトを配置する空間を形成するための凹部を下面に有したいわゆる鞍型をなす。燃料タンク11の内部の空間は、凹部によって2つの空間が形成されており、これらの空間にそれぞれ燃料Fを蓄える。燃料ポンプ4は、上記の2つの空間の一方の内部に配置されて、当該空間に蓄えられた燃料Fを吸い出す。なお、以下においては、燃料タンク11のうちの燃料ポンプ4が配置される空間の側をメインタンク11aと称し、また他方の空間の側をサブタンク11bと称する。燃料タンク11は、図示は省略しているが、メインタンク11aが蓄える燃料Fの減少に伴って、サブタンク11bが蓄える燃料Fをメインタンク11aへと送り込む機構を備える。
燃料レベルセンサ12,13はそれぞれ、第1の実施形態における燃料レベルセンサ2と同等な構造を持つ。燃料レベルセンサ12がメインタンク11aの内部に、かつ燃料レベルセンサ13がサブタンク11bの内部にそれぞれ配置され、メインタンク11aおよびサブタンク11bに蓄えられた燃料Fの残量を個別に検出する。ただし燃料レベルセンサ12,13は、フロート12a,13aの位置に応じた電気抵抗値をそのままFLS出力として出力する。
さて診断装置10は、CPU(central processing unit)10a、ROM(read-only memory)10b、RAM(random-access memory)10c、通信デバイス10dおよびインタフェースユニット(I/F)10eを含む。そしてこれらの各要素は、バス10fにそれぞれ接続されている。
CPU10aは、ROM10bに記憶された診断処理プログラムに基づいて後述する診断処理を行う。
ROM10bは、上記の診断処理プログラムを記憶する。
RAM10cは、CPU10aが各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアとして利用される。
診断処理プログラムは、EEPROMなどの別の補助記憶デバイスを備えて、そこに診断処理プログラムを記憶しても良い。なお、診断処理プログラムを補助記憶デバイスが記憶する場合、診断装置10、診断装置10を含んだユニット、あるいは診断装置10を搭載した自動車200の譲渡は、一般的に上記の診断処理プログラムが補助記憶デバイスに記憶された状態にて行われる。しかし、診断装置10、診断装置10を含んだユニット、あるいは診断装置10を搭載した自動車200が上記の診断処理プログラムが補助記憶デバイスに記憶されない状態で譲渡されるとともに、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリなどのようなリムーバブルな記録媒体に記録して、あるいはネットワークを介して上記の診断処理プログラムが譲渡され、このように譲渡された診断処理プログラムが補助記憶デバイスに書き込まれても良い。
通信デバイス10dは、ECU7との間で例えばCAN(control area network)を介したデータ通信を行う。
インタフェースユニット10eは、燃料レベルセンサ12,13が個別に出力するFLS出力をそれぞれ取り込む。
次に以上のように構成された自動車200における診断装置10の動作について説明する。なお、本実施形態の自動車200は既存の別の自動車が備えるのと同様な様々な機能を備えるが、それらの機能に関する動作は既存の別の自動車と同様であるので、その詳細な説明は省略する。そして以下においては、診断装置10による燃料レベルセンサ12,13の診断処理に関して詳細に説明する。
図9は燃料タンク11内の燃料Fの残量とFLS出力との関係を表す図である。
図9の下側のグラフは燃料レベルセンサ12に関し、上側のグラフは燃料レベルセンサ13に関する。両グラフとも、横軸は燃料タンク11の全体での燃料Fの実残量を表し、縦軸はFLS出力の値を示す。なお、燃料レベルセンサ12,13は、フロート12a,13aの位置が高い程に小さな値を出力する。従って、燃料レベルセンサ12,13のFLS出力は燃料Fの残量を表す数値ではあるが、FLS値と残量とは反比例する。
燃料ポンプ4はメインタンク11aから燃料Fを吸い出すが、燃料タンク11が備える前述の機構により、メインタンク11aが蓄える燃料Fの減少に伴って、サブタンク11bが蓄える燃料Fをメインタンク11aへと送り込む。このため、燃料タンク11の実残量が一定量以上である状態では、メインタンク11aにおける液面FLは大きくは変化せず、サブタンク11bにおける液面FLが変化する。
そして、燃料タンク11の実残量が一定量未満となってサブタンク11bからメインタンク11aへと燃料Fを送り込めない状況においては、メインタンク11aにおける液面FLが変化する。
CPU10aは、燃料レベルセンサ12,13のそれぞれについての診断処理を個別に実行する。
図10は燃料レベルセンサ12についての診断処理(以下、第1の診断処理と称する)のフローチャートである。なお、図3に示されるのと同一の処理を行うステップには同一の符号を付し、その詳細な説明は省略する。
第1の診断処理は、ステップSb1を追加するととともに、ステップSa3〜Sa5およびステップSa7〜Sa13に代えてステップSa3a〜Sa5aおよびステップSa7a〜Sa13aを含む点で第1の実施形態における診断処理とは異なっている。なお、ステップSa3a〜Sa5aおよびステップSa7a〜Sa12aは、ステップSa3〜Sa5およびステップSa7〜Sa12と処理内容は実質的に同様であるが、それらの処理の対象とする情報が一部異なる。つまり、第1の実施形態におけるFLS値、閾値THmin、閾値THmax、変化量ΔFLS、変数INJSUM、変数RA0、ならびに継続フラグFに代えて、FLS値Rm、閾値THmmin、閾値THmmax、変化量ΔRm、変数INJSUMm、変数RAm0、ならびに継続フラグFmを使用する。ステップSa13aは、例えば、異常であるのが燃料レベルセンサ12であることをECU7にて識別可能なコマンドをECU7に送る処理とすることが想定される。
CPU10aは、第1の診断処理を実行していないときに、図10に示す第1の診断処理を一定の時間間隔で繰り返し開始する。診断処理を開始する時間間隔は、診断装置10の設計者などにより任意に定められて良い。
ステップSa1およびステップSa2の待ち受け状態にあるときにモニタ実施条件が成立した状態のままで単位時間が経過したならば、CPU10aはステップSa2でYESと判定し、ステップSb1へと進む。
ステップSb1においてCPU10aは、燃料レベルセンサ12のFLS値Rmと燃料レベルセンサ13のFLS値Rsとをインタフェースユニット10eを介して取り込み、このFLS値Rsが閾値THsmaxよりも小さく、かつFLS値Rmが閾値THmminよりも小さいか否かを確認する。閾値THsmin、閾値THsmax、閾値THmminおよび閾値THmmaxは、それぞれ診断装置10の設計者などにより任意に定められて良い。ただし閾値THsminはFLS値Rsの最低値より若干大きな値として、閾値THsmaxはFLS値Rsの最高値より若干小さな値として、図9に示すような値として定めることとする。従って、THsmin<THsmaxである。THsminは例えば13Ω、THsmaxは例えば70Ωと定めることが想定される。閾値THmminはFLS値Rmの最低値より若干大きな値として、閾値THmmaxはFLS値Rmの最高値より若干小さな値として、図9に示すような値として定めることとする。従って、THmmin<THmmaxである。THmminは例えば13Ω、THmmaxは例えば30Ωと定めることが想定される。そしてFLS値RsがTHsmax以上であるか、またはFLS値Rmが閾値THmmin以上であるためにここでNOと判定したならばCPU10aは、ステップSa3aへ進み、FLS値Rsが閾値THsmaxよりも小さく、かつFLS値Rmが閾値THmminよりも小さいためにステップSb1にてYESと判定したならばCPU10aは、ステップSa9aに進む。そしてCPU10aは、以降においては第1の実施形態における診断処理と実質的に同様な処理を行う。
図11は燃料レベルセンサ13についての診断処理(以下、第2の診断処理と称する)のフローチャートである。なお、図3に示されるのと同一の処理を行うステップには同一の符号を付し、その詳細な説明は省略する。
第2の診断処理は、ステップSc1を追加するととともに、ステップSa3〜Sa5およびステップSa7〜Sa13に代えてステップSa3b〜Sa5bおよびステップSa7b〜Sa13bを含む点で第1の実施形態における診断処理とは異なっている。なお、ステップSa3b〜Sa5bおよびステップSa7b〜Sa12bは、ステップSa3〜Sa5およびステップSa7〜Sa12と処理内容は実質的に同様であるが、それらの処理の対象とする情報が一部異なる。つまり、第1の実施形態におけるFLS値、閾値THmin、閾値THmax、変化量ΔFLS、変数INJSUM、変数RA0、ならびに継続フラグFに代えて、FLS値Rm、閾値THmmin、閾値THmmax、変化量ΔRm、変数INJSUMm、変数RAm0、ならびに継続フラグFmを使用する。ステップSa13bは、例えば、異常であるのが燃料レベルセンサ13であることをECU7にて識別可能なコマンドをECU7に送る処理とすることが想定される。
CPU10aは、第2の診断処理を実行していないときに、図11に示す第2の診断処理を一定の時間間隔で繰り返し開始する。診断処理を開始する時間間隔は、診断装置10の設計者などにより任意に定められて良い。
ステップSa1およびステップSa2の待ち受け状態にあるときにモニタ実施条件が成立した状態のままで単位時間が経過したならば、CPU10aはステップSa2でYESと判定し、ステップSc1へと進む。
ステップSc1においてCPU10aは、燃料レベルセンサ12のFLS値Rmと燃料レベルセンサ13のFLS値Rsとをインタフェースユニット10eを介して取り込み、このFLS値Rsが閾値THsmaxよりも大きく、かつFLS値Rmが閾値THmminよりも大きいか否かを確認する。そしてFLS値RsがTHsmax以下であるか、またはFLS値Rmが閾値THmmin以下であるためにここでNOと判定したならばCPU10aは、ステップSa3bへ進み、FLS値Rsが閾値THsmaxよりも大きく、かつFLS値Rmが閾値THmminよりも大きいためにステップSc1にてYESと判定したならばCPU10aは、ステップSa9bに進む。そしてCPU10aは、以降においては第1の実施形態における診断処理と実質的に同様な処理を行う。
かくして、サブタンク11bが第2の燃料タンクに、燃料レベルセンサ13が第2の燃料レベルセンサに、変数INJSUMsの値が第2の積算値に、閾値THsmaxに相当する残量が第3の規定量に、そして閾値THsminに相当する残量が第4の規定量にそれぞれ相当することになり、CPU1aが第2の積算手段、第2の制御手段および第2の異常判定手段のそれぞれとして機能する。
以上のような第1および第2の診断処理により、燃料レベルセンサ12,13の状態が別々の変数INJSUMm,INJSUMsを用いて個別に診断される。
ところで、変数INJSUMm,INJSUMsは、いずれもインジェクタ6での燃料噴射量に関する積算値を表す。
しかしながら、変数INJSUMmを用いた積算処理は、燃料Fの実残量が図9中の範囲R11内にあるときには常時行われ、実残量が範囲R12,R13内にあるときには自動車200が規定速度以上で走行している状態に限って行われ、実残量が範囲R14内にあるときには行われない。ただし、FLS値RmがTHmmin以下である状態からTHmminよりも大きい状態に変化したのちに変数INJSUMmがリセットされるまでの間と、FLS値RmがTHmmax以上である状態からTHmmaxよりも小さい状態に変化したのちに変数INJSUMmがリセットされるまでの間とでは、実残量が範囲R11内にあるときでも、自動車200が規定速度以上で走行している状態に限って変数INJSUMmを用いた積算処理が行われる。
また、変数INJSUMsの積算処理は、燃料Fの実残量が図9中の範囲R21内にあるときには常時行われ、実残量が範囲R22,R23内にあるときには自動車200が規定速度以上で走行している状態に限って行われ、実残量が範囲R24内にあるときには行われない。ただし、FLS値RsがTHsmin以下である状態からTHsminよりも大きい状態に変化したのちに変数INJSUMsがリセットされるまでの間と、FLS値RsがTHsmax以上である状態からTHsmaxよりも小さい状態に変化したのちに変数INJSUMsがリセットされるまでの間とでは、実残量が範囲R21内にあるときでも、自動車200が規定速度以上で走行している状態に限って変数INJSUMsを用いた積算処理が行われる。
かくして、変数INJUSUMmを用いた積算処理が行われる期間と変数INJUSUMsを用いた積算処理が行われる期間とは互いに一致せず、変数INJSUMm,INJSUMsは多くの期間において互いに別々の値を呈する。
そして、燃料レベルセンサ12,13についての診断はそれぞれ、基本的には第1の実施形態における診断と同様な処理により行われるので、燃料レベルセンサ12,13についての診断のそれぞれに関して第1の実施形態と同様な効果が達成できる。
ところで、メインタンク11aに十分な量の燃料Fが蓄えられ、かつサブタンク11bが空ではない状態においては、燃料Fの消費に伴ってサブタンク11bの残量が主に減少し、メインタンク11aの残量が変化しない状況であることが明らかである。そこで診断装置10では、FLS値Rmが閾値THmminよりも小さく、かつFLS値Rsが閾値THsmaxよりも小さいときとしてステップSb1にて上記の状態であるか否かを判断し、上記の状態であるときには燃料噴射量を変数INJSUMmに加算しないこととして、実質的に燃料レベルセンサ12の診断を禁止している。これにより、上記のような状況を燃料レベルセンサ12の異常として誤検知してしまうことを確実に防止できる。
また、サブタンク11bが空に近く、かつメインタンク11aが満量状態にはないときには、燃料Fの消費に伴ってメインタンク11aの残量が主に減少し、サブタンク11bの残量が変化しない状況にあることが明らかである。そこで診断装置10では、FLS値Rmが閾値THmminよりも大きく、かつFLS値Rsが閾値THsmaxよりも大きいときとしてステップSc1にて上記の状態であるか否かを判断し、上記の状態であるときには燃料噴射量を変数INJSUMsに加算しないこととして、実質的に燃料レベルセンサ13の診断を禁止している。これにより、上記のような状況を燃料レベルセンサ13の異常として誤検知してしまうことを確実に防止できる。
この実施形態は、次のような種々の変形実施が可能である。
燃料の消費量と相関を有する数値は、燃料噴射量の他に、吸入空気量、走行量、インジェクタ通電時間などのような様々なパラメータを用いることができる。
燃料Fの実残量が満量付近または空付近である状態から満量付近および空付近のいずれでもない状態に変化した場合に、車速に関わらずに燃料噴射量の積算を行う状態に速やかに移行しても良い。
燃料レベルセンサ12,13のいずれか一方または双方について、診断を禁止しないようにしても良い。
この発明は、上述した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述した実施の形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、上述した実施の形態に示される全構成要素から幾つかの構成要素を削除しても良い。更に、異なる実施の形態に亘る構成要素を適宜組み合わせても良い。