(57)【特許請求の範囲】
【請求項１】
吸気通路と、
前記吸気通路の一方端に接続されるエンジン本体と、
気体燃料を貯蔵する燃料貯蔵装置と、
前記吸気通路に前記気体燃料を供給する燃料供給装置と、
前記エンジン本体から排出される排気ガスを流通する排気通路と、
前記排気通路に設けられ、実空燃比を検出するための空燃比センサと、
前記空燃比センサにより検出される実空燃比がエンジンの運転状態に応じて予め設定される目標空燃比に近づくように決定される制御量にしたがって前記燃料供給装置を制御する制御装置と、を備え、
前記制御装置は、検出された実空燃比と目標空燃比とのずれに基づいて前回の制御量を補正して今回の制御量を決定するための学習値を算出し、前記学習値が前記制御量をリッチ側となるように補正する値であって、かつ、単位時間当たりの前記学習値の変化量がしきい値よりも大きい場合には、前記燃料貯蔵装置内の前記気体燃料の残量が欠乏したと判定し、
前記制御装置は、前記学習値の履歴を用いて前記しきい値を設定する、エンジン。
【請求項２】
前記制御装置は、前記エンジンの起動中に算出された前記学習値を用いて次回起動時の前記学習値を前記エンジンの停止処理時に更新し、少なくとも２つの更新された前記学習値の履歴を用いて前記しきい値を設定する、請求項１に記載のエンジン。
【請求項３】
前記制御装置は、前記エンジンの起動中に、前記学習値が算出される毎に前回の学習値が算出されてからの単位時間当たりの前記学習値の変化量が前記しきい値よりも大きいか否かを判定し、前記学習値の変化量が前記しきい値よりも大きいと判定される回数が予め定められた回数よりも大きくなる場合に前記燃料貯蔵装置内の前記気体燃料の残量が欠乏したと判定する、請求項１に記載のエンジン。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンに供給される燃料の残量を推定する技術に関する。
【背景技術】
【０００２】
ＬＰＧ（Liquefied  Petroleum  Gas）等の気体燃料を液化して貯蔵する燃料貯蔵装置（たとえば、燃料ボンベ）から燃料の供給を受けて作動するエンジンが公知である。このようなエンジンにおいて、たとえば、燃料貯蔵装置内の気体燃料の残量が欠乏した状態（以下、ガス欠状態という）等の燃料の供給状態をユーザに知らせるために、燃料貯蔵装置内の燃料の残量を検出する必要がある。
【０００３】
たとえば、特開２０１５−３４４９１号公報（特許文献１）は、燃料タンクの圧力から燃料残量を検出する技術が開示される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−３４４９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１においては、燃料の残量を検出するために、燃料残量確認用の燃料圧力センサが燃料タンクに別途設けられている。そのため、燃料圧力センサを設けるためにコストが増加する場合がある。
【０００６】
本発明は、上述した課題を解決するためになされたものであって、その目的は、コストの増加を抑制しつつ、ガス欠状態であることを精度高く検出可能なエンジンを提供することである。
【課題を解決するための手段】
【０００７】
この発明のある局面に係るエンジンは、吸気通路と、吸気通路の一方端に接続されるエンジン本体と、気体燃料を貯蔵する燃料貯蔵装置と、吸気通路に気体燃料を供給する燃料供給装置と、エンジン本体から排出される排気ガスを流通する排気通路と、排気通路に設けられ、実空燃比を検出するための空燃比センサと、空燃比センサにより検出される実空燃比がエンジンの運転状態に応じて予め設定される目標空燃比に近づくように決定される制御量にしたがって燃料供給装置を制御する制御装置と、を備える。制御装置は、検出された実空燃比と目標空燃比とのずれに基づいて前回の制御量を補正して今回の制御量を決定するための学習値を算出し、学習値が制御量をリッチ側となるように補正する値であって、かつ、単位時間当たりの学習値の変化量がしきい値よりも大きい場合には、燃料貯蔵装置内の気体燃料の残量が欠乏したと判定する。
【０００８】
このようにすると、学習値が制御量をリッチ側となるように補正する値である場合には、実空燃比がリーン側に偏っていることが示される。また、単位時間当たりの学習値の変化量がしきい値よりも大きい場合には、実空燃比のリーン側への偏りが急速に進行していることが示される。そのため、このような急速な実空燃比のリーン側への偏りを検出することによってガス欠状態であることを精度高く判定することができる。また、既存の空燃比センサを用いてガス欠状態であることを判定することができるため、コストの増加を抑制することができる。
【０００９】
好ましくは、制御装置は、学習値の履歴を用いてしきい値を設定する。
このようにすると、学習値の履歴を用いてしきい値を設定することによって、ガス欠状態であるか否かを精度高く判定することができる。
【００１０】
さらに好ましくは、制御装置は、エンジンの起動中に算出された学習値を用いて次回起動時の学習値をエンジンの停止処理時に更新し、少なくとも２つの更新された学習値の履歴を用いてしきい値を設定する。
【００１１】
このようにすると、少なくとも２つの更新された学習値の履歴を用いてしきい値を設定することによって、ガス欠状態であるか否かを精度高く判定することができる。
【００１２】
さらに好ましくは、制御装置は、エンジンの起動中に、学習値が算出される毎に前回の学習値が算出されてからの単位時間当たりの学習値の変化量がしきい値よりも大きいか否かを判定し、学習値の変化量がしきい値よりも大きいと判定される回数が予め定められた回数よりも大きくなる場合に燃料貯蔵装置内の気体燃料の残量が欠乏したと判定する。
【００１３】
このようにすると、エンジンの起動中に算出される学習値を用いてガス欠状態であるか否かを精度高く判定することができる。
【発明の効果】
【００１４】
この発明によると、コストの増加を抑制しつつ、ガス欠状態であることを精度高く検出可能なエンジンを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態に係るエンジンの概略構成を示す図である。
【図２】空燃比のフィードバック制御の一例を説明するための制御ブロック図である。
【図３】学習値を算出する制御処理を示すフローチャートである。
【図４】ガス欠状態を判定する制御処理を示すフローチャートである。
【図５】学習値がリッチ側に変化する場合の制御装置の動作を説明するためのタイミングチャートである。
【図６】学習値がリーン側に変化する場合の制御装置の動作を説明するためのタイミングチャートである。
【図７】変形例におけるガス欠状態を判定する制御処理を示すフローチャートである。
【図８】変形例における制御装置の動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号が付されている。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００１７】
図１は、本実施の形態に係るエンジン１００の概略構成を示す。本実施の形態において、エンジン１００は、内燃機関であって、たとえば、天然ガスやＬＰＧ等の気体燃料を用いて作動するガスエンジンを一例として説明する。エンジン１００は、たとえば、車両等の駆動源として搭載される。
【００１８】
エンジン１００は、吸気通路４と、インテークマニホールド６と、エンジン本体８と、エキゾーストマニホールド１０と、排気通路１２と、排気浄化装置１４と、燃料供給装置２０と、燃料ボンベ２２と、空燃比センサ２４と、制御装置２００とを含む。
【００１９】
吸気通路４の一方端には、エアクリーナー（図示せず）が設けられ、吸気通路４の他方端には、インテークマニホールド６に接続される。吸気通路４の一方端と他方端との間の所定の位置には、燃料供給装置２０が設けられる。燃料供給装置２０には、燃料貯蔵装置である燃料ボンベ２２に貯蔵される液化燃料が燃料配管等を経由して供給される。燃料ボンベ２２から供給された燃料は、燃料供給装置２０を経由して気化した後に吸気通路４内に供給される。燃料供給装置２０には、制御装置２００の制御信号に基づいて燃料の供給量を調整するための調整装置が設けられる。調整装置は、たとえば、燃料の流路の断面積を調整することによって燃料の供給量を調整する。
【００２０】
吸気通路４内に供給された気体燃料は、エアクリーナから吸入された空気と混合し、混合気が形成される。形成された混合気は、インテークマニホールド６を経由してエンジン本体８に供給される。
【００２１】
エンジン本体８には、たとえば、複数の気筒が設けられる。気筒内には、ピストンが格納される。吸気行程において、ピストンが下降することによって、インテークマニホールド６から混合気が導入される。圧縮行程において、ピストンが上昇することによって、気筒内の混合気が圧縮される。ピストンが上死点まで上昇した付近で点火プラグ（図示せず）により点火されると、気筒内の圧縮された混合気が燃焼する。膨張行程においては、混合気の燃焼圧によってピストンが押し下げられ、クランク機構を介してエンジン本体８のクランクシャフトが回転させられる。そして、排気行程においては、ピストンが上昇することによって、気筒内の排気ガスがエキゾーストマニホールド１０に排出される。
【００２２】
エキゾーストマニホールド１０には、排気通路１２の一方端が接続される。排気通路１２の他方端には、排気浄化装置１４が設けられる。
【００２３】
排気浄化装置１４は、たとえば、三元触媒であって、排気ガス中の炭化水素、一酸化炭素、および、窒素酸化物を浄化する機能を有する。
【００２４】
なお、特に図示しないが、吸気通路４において燃料供給装置２０とインテークマニホールド６との間には、燃料供給装置２０により供給される燃料量を調整するための燃料噴射インジェクタが設けられてもよいし、あるいは、点火プラグに代えて着火用燃料（たとえば、軽油等）を噴射するための燃料噴射インジェクタが設けられてもよい。
【００２５】
制御装置２００は、いずれも図示しないが、ＣＰＵ（Central  Processing  Unit）と、メモリと、入出力バッファ等とを含んで構成される。制御装置２００は、各センサおよび機器からの信号、ならびにメモリに格納されたマップおよびプログラムに基づいて、エンジン１００が所望の運転状態となるように各種機器を制御する。なお、各種制御については、ソフトウェアによる処理に限られず、専用のハードウェア（電子回路）により処理することも可能である。
【００２６】
制御装置２００は、たとえば、エンジン１００に対する要求トルクに基づいて燃料供給装置２０の供給量を設定し、設定された供給量にしたがって燃料供給装置２０を制御する。エンジン１００が、たとえば、車両に搭載される場合には、制御装置２００は、アクセル開度等に基づいてエンジン１００の要求トルクを設定する。
【００２７】
空燃比センサ２４は、排気通路１２におけるエキゾーストマニホールド１０と排気浄化装置１４との間の所定の位置に設けられる。空燃比センサ２４は、空燃比を検出するための検出装置である。具体的には、空燃比センサ２４は、排気通路１２における酸素濃度を検出する。空燃比センサ２４は、検出された酸素濃度を制御装置２００に送信する。制御装置２００は、検出された排気通路１２における酸素濃度に基づいてエンジン本体８における空燃比を算出する。
【００２８】
制御装置２００は、たとえば、フィードバック制御により空燃比が目標空燃比に近づくように燃料供給装置２０を制御する。制御装置２００は、たとえば、理論空燃比を目標空燃比として設定してもよいし、あるいは、エンジン１００の状態（たとえば、エンジン回転数や吸入空気量等によって規定された運転領域）に応じて目標空燃比を設定してもよい。
【００２９】
以上のような構成を有するエンジン１００において、たとえば、燃料ボンベ２２内の気体燃料の残量が欠乏したガス欠状態等の燃料の供給状態をユーザに知らせるため、燃料ボンベ２２の燃料の残量を取得する必要がある。燃料の残量を検出するためには、たとえば、燃料ボンベ２２内の圧力を検出する燃料圧力センサ等の各種センサを別途設けることが考えられる。しかしながら、各種センサを設けるためにコストが増加する場合がある。
【００３０】
そこで、本実施の形態においては、制御装置２００は、空燃比センサ２４により検出された実空燃比と目標空燃比とのずれに基づいて前回の燃料供給装置２０の制御量を補正して今回の制御量を決定するための学習値を算出する。さらに制御装置２００は、学習値が制御量をリッチ側となるように補正する値であって、かつ、単位時間当たりの学習値の変化量がしきい値よりも大きい場合にガス欠状態であると判定する。
【００３１】
このようにすると、急速な実空燃比のリーン側への偏りを検出することができるため、ガス欠状態であることを精度高く判定することができる。また、既存の空燃比センサを用いてガス欠状態であることを判定することができるため、コストの増加を抑制することができる。なお、本実施の形態において、「ガス欠状態」とは、燃料ボンベ２２内の気体燃料の残量が欠乏した状態であると説明したが、より具体的には、燃料ボンベ２２内の燃料の残量がしきい値以下となる状態である。しきい値は、エンジン１００の動作が困難となる燃料の残量を基準として設定される値であって、たとえば、エンジン１００の動作が困難となる燃料の残量に予め定められた量を加算した値であってもよい。
【００３２】
以下に、本実施の形態に係るエンジン１００の制御として行なわれる空燃比制御および学習値の算出の一例について説明した後に、学習値を用いたガス欠状態の判定について説明する。
【００３３】
図２は、制御装置２００によって実行される空燃比制御の制御ブロック図の一例を示す。制御装置２００は、エンジン１００の始動が開始すると、ブロック２０２にて、目標空燃比を設定する。制御装置２００は、たとえば、アクセル開度等に基づいて目標空燃比を設定する。
【００３４】
制御装置２００は、加算点２０４にて、ブロック２０２にて算出された目標空燃比から後述するブロック２０８にて算出された実空燃比を減算して、減算した値をブロック２１０に出力する。
【００３５】
制御装置２００は、ブロック２０６にて、メモリ等の格納領域から学習値Ｌを読み出す。制御装置２００は、加算点２１４にて、空燃比センサ２４からの出力値にブロック２０６にて読み出された学習値Ｌを加算して、加算した値をブロック２０８に出力する。制御装置２００は、ブロック２０８にて、加算された値に基づいて実空燃比を算出し、算出された実空燃比を加算点２０４に出力する。
【００３６】
制御装置２００は、ブロック２１０にて、加算点２０４から入力された値に基づいてフィードバック量ＦＢを算出する。制御装置２００は、ブロック２１２にて、フィードバック量ＦＢを燃料供給量に換算する。制御装置２００は、換算された燃料供給量と、目標空燃比に対応する燃料供給量の初期値との和を燃料供給装置２０の制御量として制御信号を生成する。制御装置２００は、生成した制御信号を燃料供給装置２０に出力する。
【００３７】
このようにして、学習値Ｌは、エンジン１００の動作中に燃料供給制御における実空燃比と目標空燃比とのずれを補正する。
【００３８】
以下に、図３を参照して学習値Ｌを算出する制御処理について説明する。図３は、学習値Ｌを算出する制御処理を示すフローチャートである。制御装置２００は、たとえば、図３に示される制御処理を所定時間間隔毎に実行する。
【００３９】
ステップ（以下、ステップをＳと記載する）１００にて、制御装置２００は、学習開始条件が成立するか否かを判定する。
【００４０】
学習開始条件は、たとえば、エンジン１００の暖機が完了しているという条件と、エンジン１００の負荷が一定の状態であるという条件と、空燃比センサ２４の出力値にずれが発生しているという条件とを含む。
【００４１】
制御装置２００は、たとえば、エンジン１００の冷却水温が予め定められた温度（たとえば、７０℃）よりも高い場合に暖機が完了していると判定する。
【００４２】
制御装置２００は、たとえば、現在よりも予め定められた時間前から現在までの所定期間におけるエンジン１００の吸入空気量の変化量およびエンジン１００の回転数の変化量がそれぞれ対応するしきい値よりも小さい場合に、エンジン１００の負荷が一定の状態であると判定する。
【００４３】
制御装置２００は、所定期間における空燃比センサ２４の出力の平均値を今回の変動中心として算出する。制御装置２００は、前回算出された変動中心と今回算出した変動中心との差分をオフセット量として算出する。制御装置２００は、算出されたオフセット量の大きさがしきい値以上である場合に空燃比センサ２４の出力値にずれが発生していると判定する。
【００４４】
制御装置２００は、上述した学習開始条件が成立していると判定する場合に（Ｓ１００にてＹＥＳ）、処理をＳ１０２に移す。
【００４５】
Ｓ１０２にて、制御装置２００は、学習値Ｌを算出する。制御装置２００は、上述したオフセット量を変動値として前回の学習値に加算した値を今回の学習値として算出する。
【００４６】
Ｓ１０４にて、制御装置２００は、メモリの格納領域に算出された学習値Ｌを記憶する。本実施の形態においては、制御装置２００は、たとえば、算出された今回の学習値をエンジン１００の全運転領域における学習値Ｌとしてメモリ等の格納領域に記憶するものとして説明するが、たとえば、複数の運転領域に区分して運転領域毎に学習値Ｌが設定される場合には、制御装置２００は、メモリに格納された学習値Ｌのうち、学習値を算出したときの運転領域に対応する学習値Ｌを更新してもよい。運転領域は、たとえば、吸入空気量とエンジン回転数とにより区分されてもよい。
【００４７】
Ｓ１０６にて、制御装置２００は、トリップ終了であるか否かを判定する。本実施の形態において、トリップとは、エンジン１００が始動してから停止するまでの期間であるものとする。制御装置２００は、たとえば、エンジン１００の停止処理が実行される場合にトリップ終了であると判定する。トリップ終了であると判定される場合（Ｓ１０６にてＹＥＳ）、処理はＳ１０８に移される。
【００４８】
Ｓ１０８にて、制御装置２００は、エンジン１００の次回の始動時の学習値Ｌを更新する。制御装置２００は、たとえば、直近に算出された学習値Ｌを次回の始動時の学習値Ｌとして更新する。なお、制御装置２００は、たとえば、トリップ中の学習値Ｌの平均値を次回の始動時の学習値Ｌとして更新してもよい。
【００４９】
Ｓ１１０にて、制御装置２００は、更新回数判定用カウント値を更新する。制御装置２００は、たとえば、前回のカウント値に１を加算して今回のカウント値に更新する。
【００５０】
制御装置２００は、たとえば、トリップ数が予め定められた回数以上になる場合にカウント値を初期値（たとえば、ゼロ）にリセットしてもよいし、あるいは、エンジン１００の累積した運転時間が予め定められた時間以上になる毎にカウント値を初期値にリセットしてもよい。
【００５１】
なお、制御装置２００は、学習開始条件が成立しない場合（Ｓ１００にてＮＯ）や、トリップ終了でないと判定される場合（Ｓ１０６にてＮＯ）、処理をＳ１００に戻す。
【００５２】
次に、図４を参照して、上述のように算出された学習値Ｌを用いたガス欠状態を判定する制御処理について説明する。図４は、ガス欠状態を判定する制御処理を示すフローチャートである。制御装置２００は、たとえば、図４に示される制御処理を所定時間間隔毎に実行する。
【００５３】
Ｓ２００にて、制御装置２００は、前提条件が成立するか否かを判定する。前提条件は、たとえば、エンジン１００の暖機が完了しているという条件と、トリップが開始されてから予め定められた時間が経過したという条件とを含む。なお、暖機完了の判定方法については上述したとおりであるため、その詳細な説明は繰り返さない。
【００５４】
Ｓ２０２にて、制御装置２００は、更新回数判定用カウント値がしきい値Ａよりも大きいか否かを判定する。しきい値Ａは、たとえば、学習値Ｌの算出回数が学習値Ｌの推移量として適切な値が算出可能な回数であることを判定するための値であって、実験等によって適合される値である。本実施の形態において、しきい値Ａは、たとえば、「３」として説明する。カウント値がしきい値Ａよりも大きいと判定される場合（Ｓ２０２にてＹＥＳ）、処理はＳ２０４に移される。
【００５５】
Ｓ２０４にて、制御装置２００は、メモリの格納領域から学習値Ｌを読み出す。制御装置２００は、たとえば、現在のトリップが開始されてから算出された複数の学習値を読み出す。
【００５６】
Ｓ２０６にて、制御装置２００は、現在のトリップ中において学習値Ｌがリッチ側に推移しているか否かを判定する。制御装置２００は、たとえば、Ｓ２０４にて読み出された学習値Ｌが制御量をリッチ側となるように補正する値である場合に、現在のトリップ中において学習値Ｌがリッチ側に推移していると判定する。より具体的には、制御装置２００は、たとえば、Ｓ２０４にて読み出された学習値Ｌと予め定められた過去の時点における学習値（たとえば、前回算出された学習値や現在のトリップ当初の学習値や現在よりも予め定められた時間前の学習値）との差がリッチ側に推移していることを示す値である場合に、現在のトリップ中において学習値Ｌがリッチ側に推移していると判定する。現在のトリップ中において学習値Ｌがリッチ側に推移していると判定される場合（Ｓ２０６にてＹＥＳ）、処理はＳ２０８に移される。
【００５７】
Ｓ２０８にて、制御装置２００は、現在のトリップ中における学習値の変化率がしきい値Ｂよりも大きいか否かを判定する。本実施の形態において、学習値の変化率は、単位時間当たりの学習値の変化量を示す。制御装置２００は、たとえば、現在の学習値と、上述した予め定められた過去の時点における学習値との差分を現在のトリップの運転時間で除算した値を学習値の変化率として算出する。しきい値Ｂは、予め定められた値であってもよいし、あるいは、過去のトリップ毎に学習値の変化率を算出し、算出された変化率の平均値に所定のマージンを加算した値であってもよい。現在のトリップ中における学習値の変化率がしきい値Ｂよりも大きいと判定される場合（Ｓ２０８にてＹＥＳ）、処理はＳ２１０に移される。
【００５８】
Ｓ２１０にて、制御装置２００は、燃料ボンベ２２がガス欠状態であると判定する。制御装置２００は、ガス欠状態であると判定する場合、ユーザにガス欠状態である旨を警告ランプ、警告表示あるいは警告音等により通知する。
【００５９】
なお、前提条件が成立しない場合や（Ｓ２００にてＮＯ）、カウント値がしきい値Ａ以下である場合や（Ｓ２０２にてＮＯ）、現在のトリップ中において学習値Ｌがリッチ側に推移していない場合や（Ｓ２０６にてＮＯ）、現在のトリップ中における学習値の変化率がしきい値Ｂ以下である場合には（Ｓ２０８にてＮＯ）、制御装置２００は、処理をＳ２００に戻す。
【００６０】
以上のような構造およびフローチャートに基づく本実施の形態に係るエンジン１００の制御装置２００の動作について図５および図６を用いて説明する。
【００６１】
図５および図６の縦軸は、いずれも学習値の変化（図５および図６の紙面上方向がリッチ側）を示し、図５および図６の横軸はいずれも時間の変化を示す。なお、図５および図６においては、説明の便宜上、トリップとトリップとの間のエンジン１００の停止時間を省略し、トリップの終了時点と次のトリップの開始時点とを同時刻として示している。
【００６２】
図５に示されるように、たとえば、時間Ｔ（０）にてトリップが開始される場合、時間Ｔ（０）以降において学習開始条件が成立する場合に（Ｓ１００にてＹＥＳ）、学習値が算出され（Ｓ１０２）、算出された学習値がメモリに記憶される（Ｓ１０４）。このような動作は、トリップ終了と判定されるまで継続される（Ｓ１０６にてＮＯ）。そして、時間Ｔ（１）にてトリップ終了と判定される場合（Ｓ１０６にてＹＥＳ）、次回始動時の学習値が更新されるとともに（Ｓ１０８）、カウント値が更新される（Ｓ１１０）。
【００６３】
時間Ｔ（１）から時間Ｔ（２）までの１トリップの期間、時間Ｔ（２）から時間Ｔ（３）までの１トリップの期間および時間Ｔ（３）から時間Ｔ（４）までの１トリップの期間の各々において同様に学習値の算出とカウント値の更新が行なわれ、時間Ｔ（４）において、カウント値は、「４」となる。時間Ｔ（１）から時間Ｔ（４）までの間、学習値Ｌは、時間が経過するとともにリッチ側に変化するものとする。
【００６４】
時間Ｔ（５）にて、前提条件が成立する場合には（Ｓ２００にてＹＥＳ）、カウント値がしきい値Ａよりも大きいため（Ｓ２０２にてＹＥＳ）、学習値Ｌが読み出される（Ｓ２０６）。
【００６５】
現在のトリップでの学習値Ｌはリッチ側に推移しているため（Ｓ２０６にてＹＥＳ）、現在のトリップでの学習値Ｌの変化率が算出され、算出された変化率がしきい値Ｂよりも大きいか否かが判定される（Ｓ２０８）。学習値Ｌの変化率がしきい値Ｂよりも大きいと判定される場合（Ｓ２０８にてＹＥＳ）、ガス欠状態であると判定される（Ｓ２１０）。
【００６６】
図６に示されるように、たとえば、時間Ｔ’（０）にてトリップが開始される場合、時間Ｔ’（０）以降において学習開始条件が成立する場合に（Ｓ１００にてＹＥＳ）、学習値が算出され（Ｓ１０２）、算出された学習値がメモリに記憶される（Ｓ１０４）。このような動作は、トリップ終了と判定されるまで継続される（Ｓ１０６にてＮＯ）。そして、時間Ｔ’（１）にてトリップ終了と判定される場合（Ｓ１０６にてＹＥＳ）、次回始動時の学習値が更新されるとともに（Ｓ１０８）、カウント値が更新される（Ｓ１１０）。
【００６７】
時間Ｔ’（１）から時間Ｔ’（２）までの１トリップの期間、時間Ｔ’（２）から時間Ｔ’（３）までの１トリップの期間および時間Ｔ’（３）から時間Ｔ’（４）までの１トリップの期間の各々において同様に学習値の算出とカウント値の更新が行なわれ、時間Ｔ’（４）において、カウント値は、「４」となる。時間Ｔ’（１）から時間Ｔ’（４）までの間、学習値Ｌは、時間が経過するとともにリーン側に変化するものとする。
【００６８】
時間Ｔ’（５）にて、前提条件が成立する場合には（Ｓ２００にてＹＥＳ）、カウント値がしきい値Ａよりも大きいため（Ｓ２０２にてＹＥＳ）、学習値Ｌが読み出される（Ｓ２０６）。
【００６９】
現在のトリップでの学習値Ｌはリッチ側に推移しているため（Ｓ２０６にてＹＥＳ）、現在のトリップでの学習値Ｌの変化率が算出され、算出された変化率がしきい値Ｂよりも大きいか否かが判定される（Ｓ２０８）。学習値Ｌの変化率がしきい値Ｂよりも大きいと判定される場合（Ｓ２０８にてＹＥＳ）、ガス欠状態であると判定される（Ｓ２１０）。
【００７０】
以上のようにして、本実施の形態に係るエンジン１００によると、学習値Ｌが制御量をリッチ側となるように補正する値である場合には、実空燃比がリーン側に偏っていることが示される。また、単位時間当たりの学習値の変化量がしきい値よりも大きい場合には、実空燃比のリーン側の偏りが急速に進行していることが示される。そのため、このような急速な実空燃比のリーン側への偏りを検出することによってガス欠状態であることを精度高く判定することができる。また、既存の空燃比センサ２４を用いてガス欠状態であるか否かを判定することができるため、コストの増加を抑制することができる。したがって、コストの増加を抑制しつつ、ガス欠状態であることを精度高く検出可能なエンジンを提供することができる。
【００７１】
さらにガス欠状態であることを精度高く検出することができるため、ユーザに通知することによってエンジンの動作中に燃料ボンベ２２内の燃料が完全になくなり、排気浄化装置１４が高温時のときにリーン雰囲気になることを抑制することができる。そのため、排気浄化装置１４の浄化能力の低下したり、エンジン１００が故障していると誤診断したりすることを抑制できる。
【００７２】
以下、変形例について説明する。
本実施の形態において、制御装置２００は、学習値の変化率が予め定められたしきい値Ｂよりも大きい場合に、ガス欠状態であると判定するものとして説明したが、しきい値Ｂは、予め定められた値に限定されるものではない。
【００７３】
制御装置２００は、たとえば、少なくとも２つの学習値の履歴に基づいてしきい値を設定してもよい。具体的には、制御装置２００は、たとえば、トリップ終了毎に更新される次回始動時の学習値を用いてしきい値を設定してもよい。制御装置２００は、たとえば、前回のトリップ終了時に更新された学習値と、前々回のトリップ終了時に更新された学習値との差分を、前回のトリップにおけるエンジン１００の運転時間で除算して単位時間当たりの学習値の変化率を算出する。制御装置２００は、算出された学習値の変化率に所定のマージンを加算してしきい値Ｂを設定してもよい。あるいは、トリップ毎に学習値の変化率を算出し、算出された学習値の変化率の平均値あるいは最大値に所定マージンを加算してしきい値Ｂを設定してもよい。
【００７４】
このようにすると、過去の学習値の履歴を用いてしきい値Ｂを適切な値に設定することができるため、ガス欠状態であるか否かを精度高く判定することができる。
【００７５】
さらに、本実施の形態においては、前提条件として、トリップが開始してから予め定められた時間が経過したという条件を含むものとして説明したが、当該条件に代えてトリップが終了したという条件を含むものとしてもよい。このようにすると、トリップ終了毎にガス欠状態であるか否かを判定することができる。
【００７６】
さらに、本実施の形態においては、トリップ中の学習値の変化率をしきい値と比較した結果に基づいてガス欠状態であるか否かを判定するものとして説明したが、たとえば、前回の学習値と今回の学習値とから学習値の変化率を算出し、算出された学習値の変化率がしきい値よりも大きいと判定される回数が予め定められた回数を超える場合にガス欠状態であると判定してもよい。
【００７７】
以下に、図７を参照して、変形例における学習値を用いたガス欠状態を判定する制御処理について説明する。図７は、変形例におけるガス欠状態を判定する制御処理を示すフローチャートである。制御装置２００は、たとえば、図７に示される制御処理を所定時間間隔毎に実行する。
【００７８】
Ｓ３００にて、制御装置２００は、前提条件が成立するか否かを判定する。前提条件は、たとえば、エンジン１００の暖機が完了しているという条件と、エンジン１００の回転数、負荷および吸入空気量が一定状態で作動しているという条件とを含む。前提条件が成立すると判定される場合（Ｓ３００にてＹＥＳ）、処理はＳ３０２に移される。
【００７９】
Ｓ３０２にて、制御装置２００は、メモリの格納領域から学習値Ｌを読み出す。制御装置２００は、たとえば、現在のトリップが開始されてから算出された複数の学習値を読み出す。
【００８０】
Ｓ３０４にて、制御装置２００は、読み出した複数の学習値を用いて、学習値が継続してリッチ側に推移しているか否かを判定する。制御装置２００は、たとえば、学習値が算出される毎に前回の学習値からリーン側に変化したかリッチ側に変化したかを判定し、フラグ等を用いて記憶する。制御装置２００は、たとえば、予め定められた過去の時点（たとえば、現在よりも予め定められた時間だけ前の時点）から現在の学習値が読み出されるまでの間に学習値がリーン側に変化したと判定された期間がない場合、学習値が継続してリッチ側に推移していると判定する。学習値が継続してリッチ側に推移していると判定される場合（Ｓ３０４にてＹＥＳ）、処理はＳ３０６に移される。なお、予め定められた過去の時点は、たとえば、現在のトリップが開始された時点であってもよいし、前提条件が成立した時点であってもよい。
【００８１】
Ｓ３０６にて、制御装置２００は、前回の学習値からの変化率がしきい値Ｃよりも大きいか否かを判定する。しきい値Ｃは、予め定められた値であって、上述のしきい値Ｂと同じ値であってもよい。制御装置２００は、前回の学習値と現在の学習値との差分を前回の学習値が算出された時点から現在までの時間で除算することによって単位時間当たりの学習値の変化率を算出する。前回の学習値からの変化率がしきい値Ｃよりも大きいと判定される場合（Ｓ３０６にてＹＥＳ）、処理はＳ３０８に移される。
【００８２】
Ｓ３０８にて、制御装置２００は、ガス欠状態判定用カウント値に１を加算する。制御装置２００は、たとえば、トリップ終了時あるいはトリップ開始時にカウント値を初期値（たとえば、ゼロ）にリセットする。
【００８３】
Ｓ３１０にて、制御装置２００は、カウント値がしきい値Ｄよりも大きいか否かを判定する。しきい値Ｄは、実験等により適合される予め定められた値であって、ガス欠状態を判定するための適切な値に設定される。本変形例においてしきい値Ｄは、たとえば、「６」であるものとする。カウント値がしきい値Ｄよりも大きいと判定される場合（Ｓ３１０にてＹＥＳ）、処理はＳ３１２に移される。
【００８４】
Ｓ３１２にて、制御装置２００は、燃料ボンベ２２がガス欠状態であると判定する。制御装置２００は、ガス欠状態であると判定する場合、ユーザにガス欠状態である旨を警告ランプ、警告表示あるいは警告音等により通知する。
【００８５】
なお、制御装置２００は、前提条件が成立しない場合や（Ｓ２００にてＮＯ）、カウント値がしきい値Ｃ以下であると判定される場合（Ｓ３１０にてＮＯ）、処理をＳ３００に戻す。一方、制御装置２００は、学習値が継続してリッチ側に推移していないと判定される場合や（Ｓ３０４にてＮＯ）、前回の学習値からの学習値の変化率がしきい値以下であると判定される場合（Ｓ３０６にてＮＯ）、処理をＳ３１０に移す。
【００８６】
このようなフローチャートに基づく本変形例に係るエンジン１００の制御装置２００の動作について図８を用いて説明する。
【００８７】
図８の縦軸は、学習値の変化（図８の紙面上方がリッチ側）を示し、図８の横軸は、時間の変化を示す。
【００８８】
図８に示されるように、たとえば、時間Ｔ（１０）にてトリップが開始される場合、暖機が完了するまでは前提条件が成立しないため（Ｓ３００にてＮＯ）、ガス欠状態であるか否かの判定は行なわれない。
【００８９】
時間Ｔ（１２）にて、前提条件が成立する場合（Ｓ３００にてＹＥＳ）、学習値がメモリから読み出される（Ｓ３０２）。読み出された学習値が継続してリッチ側の推移する場合（Ｓ３０４）、時間Ｔ（１１）にて算出された前回の学習値からの学習値の変化率がしきい値よりも大きい場合（Ｓ３０６にてＹＥＳ）、ガス欠判定用カウント値に「１」が加算される。
【００９０】
時間Ｔ（１３）、時間Ｔ（１４）、時間Ｔ（１５）、時間Ｔ（１６）、時間Ｔ（１７）および時間Ｔ（１８）においても同様に前回の学習値からの学習値の変化率がしきい値よりも大きい場合に、ガス欠判定カウント値が７になる。そのため、時間Ｔ（１８）にて、カウント値がしきい値Ｃよりも大きいと判定されるため（Ｓ３１０にてＹＥＳ）、燃料ボンベ２２がガス欠状態であると判定される（Ｓ３１２）。
【００９１】
このようにすると、エンジンの起動中に算出された学習値を用いてガス欠状態であるか否かを精度高く判定することができる。
【００９２】
なお、本実施の形態においては、学習値は、空燃比センサ２４の出力値に加算されて燃料供給装置の制御量が補正されるものとして説明したが、学習値は、空燃比センサ２４の出力値に基づく実空燃比と目標空燃比とから算出されるフィードバック量に加算されるものであってもよい。
【００９３】
なお、上記した変形例は、その全部または一部を組み合わせて実施してもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９４】
４  吸気通路、６  インテークマニホールド、８  エンジン本体、１０  エキゾーストマニホールド、１２  排気通路、１４  排気浄化装置、２０  燃料供給装置、２２  燃料ボンベ、２４  空燃比センサ、１００  エンジン、２００  制御装置。
【図１】
0006631401.tif 000002
【図２】
0006631401.tif 000003
【図３】
0006631401.tif 000004
【図４】
0006631401.tif 000005
【図５】
0006631401.tif 000006
【図６】
0006631401.tif 000007
【図７】
0006631401.tif 000008
【図８】
0006631401.tif 000009