(57)【要約】【課題】組成の異なるガス燃料が使用されても、空燃比を好適に制御することのできるバイフューエルエンジンの空燃比制御装置を提供する。【解決手段】ガス燃料運転と液体燃料運転とを切り換え可能なバイフューエルエンジン１０において、メイン制御ユニット３４は、酸素濃度センサー２５による排気の酸素濃度の検出値が理論空燃比時の値に近づくようにフィードバック補正を行って液体燃料用噴射時間を演算し、サブ制御ユニット３５はその液体燃料用噴射時間からガス燃料用噴射時間を演算する。そして、サブ制御ユニット３５は、ガス燃料の補給が確認されると、その後のガス燃料運転中に、制御空燃比を理論空燃比とするために必要な噴射時間の想定値である基準噴射時間とガス燃料用噴射時間との比較結果に基づき、同ガス燃料用噴射時間を補正するガス燃料組成学習値の値を設定する。【選択図】図１
2016109030.tif 000002
【特許請求の範囲】
【請求項１】
ガス燃料を使用するガス燃料運転と液体燃料を使用する液体燃料運転とを切り換え可能なバイフューエルエンジンに適用されて、そのバイフューエルエンジンで燃焼される混合気中の空気と燃料との比である制御空燃比を理論空燃比に近づけるように制御するバイフューエルエンジンの空燃比制御装置において、
排気の酸素濃度の検出結果に基づき、同酸素濃度が理論空燃比時の値に近づくようにフィードバック補正を行って液体燃料の噴射時間を演算する第１制御部と、
前記第１制御部が演算した液体燃料の噴射時間からガス燃料の噴射時間を演算する第２制御部と、
を備えて、液体燃料運転時には前記第１制御部が演算した液体燃料の噴射時間に応じて液体燃料の噴射を行い、ガス燃料運転時には前記第２制御部が演算したガス燃料の噴射時間に応じてガス燃料の噴射を行うとともに、
前記第２制御部は、液体燃料の噴射時間から演算したガス燃料の噴射時間の演算値に対してガス燃料組成学習値による補正を行うとともに、ガス燃料の補給後におけるガス燃料運転中に、
（１）液体燃料の噴射量に対する現在のシリンダー流入空気量の比が液体燃料の理論空燃比の想定値となる液体燃料の噴射時間を基準噴射時間として求めること、
（２）前記第１制御部が演算した液体燃料の噴射時間の演算値と上記（１）で求めた基準噴射時間とを比較すること、
を行うとともに、
（３）上記（２）での比較の結果、液体燃料の噴射時間の演算値が前記基準噴射時間よりも長い場合、ガス燃料の噴射時間をより短くするように前記ガス燃料組成学習値の値を設定すること、
（４）上記（２）での比較の結果、液体燃料の噴射時間の演算値が前記基準噴射時間よりも短い場合、ガス燃料の噴射時間をより長くするように前記ガス燃料組成学習値の値を設定すること、
の少なくとも一方を行う、バイフューエルエンジンの空燃比制御装置。
【請求項２】
当該空燃比制御装置は、前記（３）及び（４）の双方を行うものであって、
前記（３）における前記ガス燃料組成学習値の値の設定は、ガス燃料の噴射時間をより短くする側に前記ガス燃料組成学習値の値を徐々に更新することで行われ、
前記（４）における前記ガス燃料組成学習値の値の設定は、ガス燃料の噴射時間をより長くする側に、同ガス燃料組成学習値の値を徐々に更新することで行われる、
請求項１に記載のバイフューエルエンジンの空燃比制御装置。
【請求項３】
前記第２制御部は、前記基準噴射時間と液体燃料の噴射時間の演算値との差が規定値以内となった状態が既定時間継続した場合、ガス燃料が再び補給されるまで、前記ガス燃料組成学習値の値の更新を停止する、
請求項２に記載のバイフューエルエンジンの空燃比制御装置。
【請求項４】
ガス燃料を使用するガス燃料運転と液体燃料を使用する液体燃料運転とを切り換え可能なバイフューエルエンジンに適用されて、そのバイフューエルエンジンで燃焼される混合気中の空気と燃料との比である制御空燃比を理論空燃比に近づけるように制御するバイフューエルエンジンの空燃比制御装置において、
排気の酸素濃度の検出結果に基づき、同酸素濃度が理論空燃比時の値に近づくようにフィードバック補正を行って液体燃料の噴射時間を演算する第１制御部と、
前記第１制御部が演算した液体燃料の噴射時間からガス燃料の噴射時間を演算する第２制御部と、
を備えて、液体燃料運転時には前記第１制御部が演算した液体燃料の噴射時間に応じて液体燃料の噴射を行い、ガス燃料運転時には前記第２制御部が演算したガス燃料の噴射時間に応じてガス燃料の噴射を行うとともに、
前記第２制御部は、液体燃料の噴射時間から演算したガス燃料の噴射時間の演算値に対してガス燃料組成学習値による補正を行うとともに、ガス燃料の補給後におけるガス燃料運転中に、
（い）ガス燃料の噴射量に対する現在のシリンダー流入空気量の比がガス燃料の理論空燃比の想定値となるガス燃料の噴射時間を基準噴射時間として求めること、
（ろ）前記ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値と上記（い）で求めた基準噴射時間とを比較すること、
を行うとともに、
（は）上記（ろ）での比較の結果、前記ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値が前記基準噴射時間よりも長い場合、ガス燃料の噴射時間をより短くするように、前記ガス燃料組成学習値の値を設定すること、
（に）上記（ろ）での比較の結果、前記ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値が前記基準噴射時間よりも短い場合、ガス燃料の噴射時間をより長くするように、前記ガス燃料組成学習値の値を設定すること、
の少なくとも一方を行う、バイフューエルエンジンの空燃比制御装置。
【請求項５】
当該空燃比制御装置は、前記（は）及び（に）の双方を行うものであって、
前記（は）における前記ガス燃料組成学習値の値の設定は、ガス燃料の噴射時間をより短くする側に同ガス燃料組成学習値の値を徐々に更新することで行われ、
前記（に）における前記ガス燃料組成学習値の値の設定は、ガス燃料の噴射時間をより長くする側に同ガス燃料組成学習値の値を徐々に更新することで行われる、
請求項４に記載のバイフューエルエンジンの空燃比制御装置。
【請求項６】
前記第２制御部は、前記ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値が前記基準噴射時間から規定値以内の値になった状態が規定時間継続した場合、ガス燃料が再び補給されるまで、前記ガス燃料組成学習値の値の更新を停止する、
請求項５に記載のバイフューエルエンジンの空燃比制御装置。
【請求項７】
前記第２制御部は、ガス燃料の噴射時間の演算値に対して液体燃料組成学習値による補正を行うとともに、液体燃料の補給後の液体燃料運転中に、
（ａ）液体燃料の噴射量に対する現在のシリンダー流入空気量の比が液体燃料の理論空燃比の想定値となる液体燃料の噴射時間を基準噴射時間として求めること、
（ｂ）上記（ａ）で求めた基準噴射時間と前記第１制御部が演算した液体燃料の噴射時間の演算値と比較すること、
を行うとともに、
（ｃ）上記（ｂ）での比較の結果、液体燃料の噴射時間の演算値が前記基準噴射時間よりも長い場合、ガス燃料の噴射時間をより長くするように前記液体燃料組成学習値の値を設定すること、
（ｄ）上記（ｂ）での比較の結果、液体燃料の噴射時間の演算値が前記基準噴射時間よりも短い場合、ガス燃料の噴射時間をより短くするように前記液体燃料組成学習値の値を設定すること、
の少なくとも一方を行う、請求項１〜６のいずれか１項に記載のバイフューエルエンジンの空燃比制御装置。
【請求項８】
当該空燃比制御装置は、前記（ｃ）及び（ｄ）の双方を行うものであって、
前記（ｃ）における前記液体燃料組成学習値の値の設定は、ガス燃料の噴射時間をより長くする側に、前記液体燃料組成学習値の値を徐々に更新することで行われ、
前記（ｄ）における前記液体燃料組成学習値の値の設定は、ガス燃料の噴射時間をより短くする側に、前記液体燃料組成学習値の値を徐々に更新することで行われる、
請求項７に記載のバイフューエルエンジンの空燃比制御装置。
【請求項９】
前記第２制御部は、前記液体燃料組成学習値の値を液体燃料の噴射時間に換算した値が、液体燃料の噴射時間の演算値に対する前記基準噴射時間の差から規定値以内の値となった状態が規定時間継続した場合、液体燃料が再び補給されるまで、前記液体燃料組成学習値の更新を停止する、
請求項８に記載のバイフューエルエンジンの空燃比制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ガス燃料運転と液体燃料運転とを切り換え可能なバイフューエルエンジンの空燃比制御装置に関する。
【背景技術】
【０００２】
周知のように、車載等のエンジンでは、燃焼される混合気の空燃比を理論空燃比とするための空燃比制御が行われる。空燃比制御では、排気の酸素濃度の検出結果から把握される実際の空燃比（制御空燃比）と理論空燃比とのずれに応じたインジェクターの噴射時間のフィードバック調整が、いわゆる空燃比フィードバックが行われる。また、空燃比制御では、そうした空燃比フィードバックの応答を高めるため、制御空燃比と理論空燃比との定常偏差を空燃比学習値として学習する空燃比学習も行われる。
【０００３】
こうした空燃比制御は、圧縮天然ガス（ＣＮＧ：Compressed Natural Gas）や液化石油ガス（ＬＰＧ：Liquid Petroleum Gus）などのガス燃料を使用するガス燃料エンジンでも、同様に行われることがある。そして従来、ＣＮＧをガス燃料として使用するガス燃料エンジンにおいて、空燃比学習値がしきい値を超えたときに空燃比フィードバックの目標空燃比を理論空燃比から出力空燃比へと切り換えることで、想定よりも単位質量当たりの発熱量の低いＣＮＧが使用される場合の制御空燃比のリーン化を抑える技術が開示されている（特許文献１）。なお、理論空燃比は、噴射した燃料のすべてが過不足なく完全燃焼される空燃比であり、出力空燃比は、エンジン出力が最大となる空燃比である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３５７１５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、近年には、ガソリンなどの液体燃料を使用する液体燃料運転と、ＣＮＧ、ＬＰＧなどのガス燃料を使用するガス燃料運転とを切り換え可能なバイフューエルエンジンを搭載した車両が実用されている。こうした車両が使用される国や地域では、流通するガス燃料の品質（純度など）に大きなばらつきが存在することがある。
【０００６】
そうした場合、それまで使用していたガス燃料とは異なる組成のガス燃料が補給されると、その補給の前後で、ガス燃料の単位質量当たりの発熱量が、ひいては噴射したガス燃料を完全燃焼させるために必要な空気の量が変化してしまう。そしてその結果、燃料補給後における最初のガス燃料運転の開始直後に、理論空燃比からの制御空燃比のずれが、すなわち制御空燃比の乱れが生じてしまう。
【０００７】
このときの制御空燃比の乱れは、やがては空燃比フィードバックにより補償される。しかしながら、その状態で空燃比学習が行われると、ガス燃料の組成の違いによる制御空燃比のずれ分まで、空燃比学習値に反映されてしまうことになる。こうした場合の空燃比学習値は、ガス燃料運転中には適切な値であっても、ガス燃料の組成とは無関係な液体燃料運転時には、不適切な値となる。そのため、その後にバイフューエルエンジンの運転が液体燃料運転に切り換えられると、その直後に再び制御空燃比が乱れてしまう。
【０００８】
さらに、その液体燃料運転中には、ガス燃料の補給前の値に空燃比学習値が戻される。そのため、液体燃料運転とガス燃料運転とが切り換えられる毎に、制御空燃比の乱れが生じてしまうようになる。
【０００９】
ちなみに、上述の従来のＣＮＧエンジンの技術を、こうしたバイフューエルエンジンにおけるガス燃料運転時の制御に採用しても、より発熱量の低いガス燃料が補給されたときの制御空燃比のリーン化が抑制されるだけで、液体燃料運転とガス燃料運転との切り換え毎の制御空燃比の乱れは避けられない。
【００１０】
本発明は、こうした実情に鑑みてなされたものであり、その解決しようとする課題は、組成の異なるガス燃料が使用されても、空燃比を好適に制御することのできるバイフューエルエンジンの空燃比制御装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記課題を解決するバイフューエルエンジンの空燃比制御装置は、ガス燃料を使用するガス燃料運転と液体燃料を使用する液体燃料運転とを切り換え可能なバイフューエルエンジンに適用されて、そのバイフューエルエンジンで燃焼された混合気の空気と燃料との比である制御空燃比を理論空燃比に近づけるように制御する。また、同空燃比制御装置は、排気の酸素濃度の検出結果に基づき、同酸素濃度が理論空燃比時の値に近づくようにフィードバック補正を行って液体燃料の噴射時間を演算する第１制御部と、その第１制御部が演算した液体燃料の噴射時間から前記ガス燃料の噴射時間を演算する第２制御部と、を備えている。そして、同空燃比制御装置は、液体燃料運転時には、第１制御部が演算した液体燃料の噴射時間に応じて液体燃料の噴射を行い、ガス燃料運転時には、第２制御部が演算したガス燃料の噴射時間に応じてガス燃料の噴射を行っている。
【００１２】
こうした空燃比制御装置では、第１制御部は、排気の酸素濃度の検出結果に基づいて、その酸素濃度が理論空燃比時の値（理論的には０）となるようにフィードバック補正を行いつつ、液体燃料の噴射時間を演算する。これにより、液体燃料運転時の制御空燃比が理論空燃比に近づくように制御される。一方、ガス燃料運転時には、第１制御部が演算した液体燃料の噴射時間から、第２制御部がガス燃料の噴射時間を演算してガス燃料の噴射を行う。このときにも、理論空燃比からの制御空燃比のずれが生じれば、第１制御部の演算する液体燃料の噴射時間がそのずれを補償すべく補正される。そのため、第２制御部自身が制御空燃比の状況を直接確認していなくても、制御空燃比が理論空燃比に近づくようにガス燃料の噴射時間が調整される。
【００１３】
さらに、液体燃料運転とガス燃料運転との切り換え時にも、液体燃料とガス燃料の理論空燃比の比が既知であれば、液体燃料とガス燃料の理論空燃比に違いに関わらず、制御空燃比を乱れさせずに運転を切り換えられる。すなわち、液体燃料の理論空燃比に対するガス燃料の理論空燃比の比率が一定であれば、制御空燃比を理論空燃比とするために必要な両噴射時間の比率は一定となる。そのため、両燃料の理論空燃比の比率に応じて、液体燃料の噴射時間に対するガス燃料の噴射時間の換算比を設定して、液体燃料の噴射時間からガス燃料の噴射時間の演算を行うようにすれば、制御空燃比が理論空燃比となる液体燃料の噴射時間が分かれば、制御空燃比を理論空燃比とするために必要なガス燃料の噴射時間を求めることができる。よって、切り換え前の液体燃料運転に制御空燃比が液体燃料の理論空燃比となっていれば、ガス燃料運転への切り換え後の制御空燃比を直ちにガス燃料の理論空燃比とすることが可能となる。
【００１４】
しかしながら、流通するガス燃料の組成にばらつきがある場合、補給されたガス燃料の組成により、その実質的な理論空燃比が変わってしまうことがある。そうした場合、上記理論空燃比の比が想定とは異なる値となり、上記換算比が不適切な値となってしまうため、液体燃料運転とガス燃料運転とが切り換えられる毎に制御空燃比が乱れるようになる。
【００１５】
そこで、上記課題を解決するバイフューエルエンジンの空燃比制御装置では、第２制御部は、液体燃料の噴射時間の演算値から演算したガス燃料の噴射時間の演算値に対してガス燃料組成学習値による補正を行うとともに、ガス燃料の補給後におけるガス燃料運転中に、下記（１）および（２）と、下記（３）および（４）の少なくとも一方と、を行っている。
（１）液体燃料の噴射量に対する現在のシリンダー流入空気量の比が液体燃料の理論空燃比の想定値となる液体燃料の噴射時間を基準噴射時間として求めること。
（２）第１制御部が演算した液体燃料の噴射時間の演算値と上記（１）で求めた基準噴射時間とを比較すること。
（３）上記（２）での比較の結果、液体燃料の噴射時間の演算値が基準噴射時間よりも長い場合、ガス燃料の噴射時間をより短くするようにガス燃料組成学習値の値を設定すること。
（４）上記（２）での比較の結果、液体燃料の噴射時間の演算値が基準噴射時間よりも短い場合、ガス燃料の噴射時間をより長くするようにガス燃料組成学習値の値を設定すること。
【００１６】
また、上記課題を解決する、もう一つのバイフューエルエンジンの空燃比制御装置では、液体燃料の噴射時間から演算したガス燃料の噴射時間の演算値に対してガス燃料組成学習値による補正を行うとともに、ガス燃料の補給後におけるガス燃料運転中に、下記（い）および（ろ）と、下記（は）および（に）の少なくとも一方と、を行っている。
（い）ガス燃料の噴射量に対する現在のシリンダー流入空気量の比がガス燃料の理論空燃比の想定値となるガス燃料の噴射時間を基準噴射時間として求めること。
（ろ）ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値と上記（い）で求めた基準噴射時間とを比較すること。
（は）上記（ろ）での比較の結果、ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値が基準噴射時間よりも長い場合、同ガス燃料の噴射時間をより短くするように、ガス燃料組成学習値の値を設定すること。
（に）上記（ろ）での比較の結果、ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値が基準噴射時間よりも短い場合、同ガス燃料の噴射時間をより長くするように、ガス燃料組成学習値の値を設定すること。
【００１７】
使用中のガス燃料の組成の違いにより、その実質的な理論空燃比に想定値との相違が生じれば、空燃比フィードバックが安定し、制御空燃比が理論空燃比となったときのガス燃料の噴射時間にも、それらの比に応じた相違が生じる。よって、ガス燃料運転中の実際の噴射時間の演算値とその想定値である基準噴射時間の比較結果からは、使用中のガス燃料の理論空燃比の想定した値からのずれを確認することができる。そこで、そうした比較結果に応じて、ガス燃料組成学習値の値を設定し、それにより、ガス燃料の噴射時間を予め補正しておけば、ガス燃料の組成の違いに起因した、液体燃料運転とガス燃料運転との切り換えに際しての制御空燃比の乱れを抑えることが可能となる。なお、ガス燃料の組成の変化は、その補給時にのみ生じるため、そうした学習は、ガス燃料が補給されたときにのみ行えばよい。したがって、上記のように構成されたバイフューエルエンジンの空燃比制御装置によれば、組成が想定と異なるガス燃料が使用されても、空燃比を好適に制御することができる。
【００１８】
なお、上記（３）および（４）におけるガス燃料組成学習値の値の設定は、例えば次のように行うことができる。すなわち、上記（３）におけるガス燃料組成学習値の値の設定を、ガス燃料の噴射時間をより短くする側にガス燃料組成学習値の値を徐々に更新することで行うとともに、かつ上記（４）におけるガス燃料組成学習値の値の設定を、ガス燃料の噴射時間をより長くする側に、同ガス燃料組成学習値の値を徐々に更新することで行うようにする。そうした場合、基準噴射時間と液体燃料の噴射時間の演算値との差が規定値以内となった状態が既定時間継続した場合、ガス燃料が再び補給されるまで、そうしたガス燃料組成学習値の値の更新は停止するようにするとよい。
【００１９】
一方、上記（は）及び（に）におけるガス燃料組成学習値の値の設定は、例えば次のように行うことができる。すなわち、上記（は）におけるガス燃料組成学習値の値の設定は、ガス燃料の噴射時間をより短くする側に同ガス燃料組成学習値の値を徐々に更新することで行うとともに、上記（に）におけるガス燃料組成学習値の値の設定は、ガス燃料の噴射時間をより長くする側に同ガス燃料組成学習値の値を徐々に更新することで行うようにする。ガス燃料組成学習値による補正前のガス燃料の噴射時間の演算値が基準噴射時間から規定値以内の値になった状態が規定時間継続した場合、ガス燃料が再び補給されるまで、ガス燃料組成学習値の値の更新を停止するようにするとよい。
【００２０】
ところで、ガス燃料運転と液体燃料運転との切り換えに際しての制御空燃比の乱れは、液体燃料の組成の違いによっても生じることがある。すなわち、液体燃料の組成により、その理論空燃比が変化すれば、液体燃料およびガス燃料の理論空燃比の比が、ひいては液体燃料の噴射時間からのガス燃料の噴射時間の適正な換算比が変わってしまう。その点、液体燃料の補給後の液体燃料運転中に第２制御部が、ガス燃料の噴射時間の演算値に対して液体燃料組成学習値による補正を行うとともに、液体燃料の補給後の液体燃料運転中に、下記（ａ）および（ｂ）と、下記（ｃ）および（ｄ）の少なくとも一方と、を行うようにすれば、そうした液体燃料の組成の違いに起因した制御空燃比の乱れを好適に抑えられる。
（ａ）液体燃料の噴射量に対する現在のシリンダー流入空気量の比が液体燃料の理論空燃比の想定値となる液体燃料の噴射時間を基準噴射時間として求めること。
（ｂ）上記（ａ）で求めた基準噴射時間と第１制御部が演算した液体燃料の噴射時間の演算値と比較すること。
（ｃ）上記（ｂ）での比較の結果、液体燃料の噴射時間の演算値が基準噴射時間よりも長い場合、同ガス燃料の噴射時間の演算値を補正する液体燃料組成学習値の値をガス燃料の噴射時間をより長くするように設定すること。
（ｄ）上記（ｂ）での比較の結果、液体燃料の噴射時間の演算値が基準噴射時間よりも短い場合、液体燃料組成学習値の値をガス燃料の噴射時間をより短くするように設定すること。
【００２１】
なお、上記（ｃ）及び（ｄ）での液体燃料組成学習値の値の設定は、例えば次のように行うことができる。すなわち、上記（ｃ）における液体燃料組成学習値の値の設定を、ガス燃料の噴射時間をより長くする側に、液体燃料組成学習値の値を徐々に更新することで行い、かつ上記（ｄ）における液体燃料組成学習値の値の設定を、ガス燃料の噴射時間をより短くする側に、液体燃料組成学習値の値を徐々に更新することで行うようにすることができる。そうした場合、液体燃料組成学習値の値を液体燃料の噴射時間に換算した値が、液体燃料の噴射時間の演算値に対する基準噴射時間の差から規定値以内の値となった状態が規定時間継続した場合、液体燃料が再び補給されるまで、液体燃料組成学習値の更新を停止するとよい。
【図面の簡単な説明】
【００２２】
【図１】第１実施形態にかかるバイフューエルエンジンの空燃比制御装置の構成を模式的に示す略図。
【図２】同空燃比制御装置がガス燃料組成学習制御を行わなかった場合の空燃比制御の実行結果の一例を示すタイムチャート。
【図３】同空燃比制御装置で実行される組成学習制御ルーチンの処理手順を示すフローチャート。
【図４】同組成学習制御ルーチンでの基準噴射時間の演算に使用する演算マップの一例におけるエンジン回転速度と基準噴射時間との関係を示すグラフ。
【図５】同組成学習制御ルーチンでの基準噴射時間の演算に使用する演算マップの他の例におけるエンジン回転速度およびスロットル開度と基準噴射時間との関係を示すグラフ。
【図６】同実施形態の空燃比制御装置による空燃比制御の実行結果の一例を示すタイムチャート。
【図７】第２実施形態にかかるバイフューエルエンジンの空燃比制御装置で実行される組成学習制御ルーチンの処理手順を示すフローチャート。
【図８】液体燃料として混合燃料を使用するバイフューエルエンジンで上記実施形態のガス燃料組成学習制御を行ったときの空燃比制御の実行結果の一例を示すタイムチャート。
【図９】第３実施形態にかかるバイフューエルエンジンの空燃比制御装置で実行される組成学習制御ルーチンの処理手順の一部を示すフローチャート。
【図１０】同組成学習制御ルーチンの処理手順の残りの部分を示すフローチャート。
【図１１】同組成学習制御ルーチンでの基準噴射時間の演算に使用する演算マップの一例におけるエンジン回転速度と基準噴射時間との関係を示すグラフ。
【図１２】同組成学習制御ルーチンでの基準噴射時間の演算に使用する演算マップの他の例におけるエンジン回転速度およびスロットル開度と基準噴射時間との関係を示すグラフ。
【図１３】同実施形態の空燃比制御装置による空燃比制御の実行結果の一例を示すタイムチャート。
【図１４】図３の組成学習制御ルーチンにおけるガス燃料組成学習値の更新を噴射時間差に基づき行う場合の同ルーチンの変更部分のフローチャート。
【図１５】図７の組成学習制御ルーチンにおけるガス燃料組成学習値の更新を噴射時間差に基づき行う場合の同ルーチンの変更部分のフローチャート。
【図１６】図１０，１１の組成学習制御ルーチンにおける推定液体燃料組成学習値の更新を噴射時間差に基づき行う場合の同ルーチンの変更部分のフローチャート。
【発明を実施するための形態】
【００２３】
（第１実施形態）
以下、バイフューエルエンジンの空燃比制御装置の第１実施形態を、図１〜図６を参照して詳細に説明する。
【００２４】
図１に示すバイフューエルエンジン１０は、液体燃料であるガソリンを燃料として使用するガソリンエンジンに、ガス燃料供給システムを追加設置したものとなっている。そして、これにより、ガソリンを使用する液体燃料運転とガス燃料を使用するガス燃料運転とを運転中に切り換え可能とされている。
【００２５】
こうしたバイフューエルエンジン１０は、燃料と空気との混合気が燃焼される、各気筒の燃焼室１１と、燃焼室１１に導入される吸気が通る吸気通路１２と、燃焼室１１での混合気の燃焼により発生した排気が通る排気通路１３とを備える。
【００２６】
吸気通路１２には、上流側から順に、吸気通路１２を通って燃焼室１１に送られる吸気の流量（吸入空気量ＧＡ）を検出するエアフローメーター１４、吸入空気量を調整するスロットルバルブ１５、および吸気の脈動を低減するための容積部であるサージタンク１６が設けられている。吸気通路１２におけるサージタンク１６の下流には、吸気を気筒別に分流させる分枝管である吸気マニホールド１７が設けられている。そして、この吸気マニホールド１７において気筒毎に分岐された吸気通路１２は、気筒別に設けられた吸気ポート１８を介して各気筒の燃焼室１１にそれぞれ接続されている。
【００２７】
各気筒の吸気ポート１８には、その内部を流れる吸気中にガソリンを噴射するガソリンインジェクター１９がそれぞれ設置されている。また、各吸気ポート１８における燃焼室１１への接続部分には、吸気バルブ２０がそれぞれ設置されている。吸気バルブ２０は、その開閉に応じて間欠的に、吸気通路１２から燃焼室１１に吸気を流入させる。なお、各気筒の燃焼室１１には、その内部に導入された吸気と燃料との混合気を火花放電により着火する点火プラグ２１がそれぞれ設置されている。
【００２８】
排気通路１３は、気筒別の排気ポート２２を介して各気筒の燃焼室１１に接続されている。各排気ポート２２における燃焼室１１との接続部分には、排気バルブ２３がそれぞれ設置されている。排気バルブ２３は、その開閉に応じて間欠的に、燃焼室１１から排気通路１３に排気を排出させる。また、排気通路１３における各排気ポート２２の下流には、各気筒の排気を合流する集合管である排気マニホールド２４が設けられている。さらに排気通路１３における排気マニホールド２４の下流側の部分には、排気の酸素濃度に応じた信号を出力する酸素濃度センサー２５と、排気を浄化する触媒装置２６と、が設けられている。
【００２９】
さらに、バイフューエルエンジン１０のガス燃料供給システムは、ガス燃料を貯蔵するガスボンベ２７、そのガスボンベ２７から供給されたガス燃料を吸気中に噴射する気筒別のガスインジェクター２８、およびガスボンベ２７から送られたガス燃料を減圧してガスインジェクター２８に供給するレギュレーター２９を備える。ガスボンベ２７とレギュレーター２９とは、ガス配管３０により接続されている。ガス配管３０におけるガスボンベ２７との接続部分、およびレギュレーター２９との接続部分には、ガスボンベ２７からレギュレーター２９へのガス燃料の供給を停止／許容するための電磁弁３１，３２がそれぞれ設置されている。また、各ガスインジェクター２８は、吸気マニホールド１７における各気筒の分枝通路に、燃料ホース３３を介してそれぞれ接続されている。
【００３０】
こうしたバイフューエルエンジン１０の制御系には、空燃比制御を行うための制御部として、第１制御部としてのメイン制御ユニット３４と、第２制御部としてのサブ制御ユニット３５とを備える。メイン制御ユニット３４は、ベースとなったガソリンエンジンの燃料噴射制御ユニットそのものであり、サブ制御ユニット３５は、ガス燃料供給システムと共に追加設置されたものである。ベースとなったガソリンエンジンでは、噴射指令用の信号線３６がメイン制御ユニット３４からガソリンインジェクター１９に直接接続されているが、このバイフューエルエンジン１０では、そうした信号線３６が、メイン制御ユニット３４からサブ制御ユニット３５を経由してガソリンインジェクター１９に接続されている。
【００３１】
メイン制御ユニット３４には、上述のエアフローメーター１４、酸素濃度センサー２５に加え、クランク角センサー３７、アクセルペダルセンサー３８、およびスロットルセンサー３９が接続されている。クランク角センサー３７は、エンジン回転速度ＮＥの算出に使用されるクランク角信号を出力する。また、アクセルペダルセンサー３８は、アクセルペダルの踏み込み量（アクセル操作量ＡＣＣＰ）を検出し、スロットルセンサー３９は、スロットルバルブ１５の開度（スロットル開度ＴＡ）を検出する。
【００３２】
一方、サブ制御ユニット３５には、高圧側ガス圧センサー４０、低圧側ガス圧センサー４１、およびガス温センサー４２が接続されている。高圧側ガス圧センサー４０は、レギュレーター２９による減圧前のガス燃料の圧力（高圧側ガス圧ＰＨ）を検出する。また、低圧側ガス圧センサー４１は、レギュレーター２９による減圧後のガス燃料の圧力（低圧側ガス圧ＰＬ）を、ガス温センサー４２は、そのガス燃料の温度（ガス温度ＴＨＧ）をそれぞれ検出する。さらに、サブ制御ユニット３５には、ガソリンを使用する液体燃料運転モードとガス燃料を使用するガス燃料運転モードとの、バイフューエルエンジン１０の運転モードＭＯＤＥの切り換えに使用する運転モード切換スイッチ４３が接続されている。
【００３３】
なお、エンジン回転速度ＮＥやスロットル開度ＴＡ等は、トランスミッションやブレーキなどのエンジン以外の制御にも使用されるため、メイン制御ユニット３４は、それらの値を、サブ制御ユニット３５を含む、外部の各制御ユニットに送信している。一方、このバイフューエルエンジン１０のベースとなったガソリンエンジンでは、酸素濃度センサー２５の検出結果は、メイン制御ユニット３４の内部での演算処理にのみ使用され、外部には出力されない仕様となっている。そのため、このバイフューエルエンジン１０でも、酸素濃度センサー２５の検出結果は、サブ制御ユニット３５を含む、メイン制御ユニット３４の外部には出力されないようになっている。
【００３４】
こうしたバイフューエルエンジン１０では、排気浄化性能を確保するため、燃焼室１１で燃焼される混合気の空気と燃料の比である制御空燃比を理論空燃比とする、いわゆる空燃比制御が行われている。本実施形態では、液体燃料運転モードおよびガス燃料運転モードにおける制御空燃比をそれぞれ、ガソリンおよびガス燃料の理論空燃比とするように空燃比制御が行われる。以下、本実施形態の空燃比制御装置における空燃比制御の詳細を説明する。
【００３５】
上述したように、本実施形態では、バイフューエルエンジン１０のベースとなったガソリンエンジンの燃料噴射制御ユニットがそのままメイン制御ユニット３４として使用されている。こうしたメイン制御ユニット３４は、空燃比制御に際して、排気の酸素濃度の検出結果に基づき、制御空燃比をガソリンの理論空燃比とするために必要なガソリンインジェクター１９の噴射時間を演算して、燃料噴射指令信号を出力する。
【００３６】
すなわち、メイン制御ユニット３４は、まず、現状のエンジン回転速度ＮＥおよびエンジン負荷率ＫＬに基づき、ガソリンインジェクター１９のベース噴射時間ＴＡＵｂｓｅを算出する。ベース噴射時間ＴＡＵｂｓｅは、現状の燃焼室１１の吸気の充填率に対して混合気の空燃比をガソリンの理論空燃比とするために必要なガソリンインジェクター１９の噴射時間のフィードフォワード値である。ベース噴射時間ＴＡＵｂｓｅの演算は、メイン制御ユニット３４に予め記憶された、エンジン回転速度ＮＥおよびエンジン負荷率ＫＬに基づく２次元の演算マップを用いて行われる。ちなみに、エンジン負荷率ＫＬは、燃焼室１１の吸気の充填率の、現時点のエンジン回転速度ＮＥにおける最大値に対する現状値の比率である。メイン制御ユニット３４は、そうしたエンジン負荷率ＫＬを、エンジン回転速度ＮＥやアクセル操作量ＡＣＣＰから演算して求めている。
【００３７】
次に、メイン制御ユニット３４は、酸素濃度センサー２５による排気の酸素濃度の検出結果に応じて、噴射時間のフィードバック補正値である空燃比フィードバック補正値ＦＡＦを算出する。具体的には、メイン制御ユニット３４は、酸素濃度センサー２５の検出値が、理論空燃比時の値よりもリーン側の値のときには、噴射時間をより長くする側（リッチ側）の値へと空燃比フィードバック補正値ＦＡＦの値を徐々に更新する。一方、メイン制御ユニット３４は、酸素濃度センサー２５の検出値が、理論空燃比時の値よりもリッチ側の値であるときには、噴射時間をより短くする側（リーン側）へと空燃比フィードバック補正値ＦＡＦの値を徐々に更新する。そして、こうして更新される空燃比フィードバック補正値ＦＡＦにより、ベース噴射時間ＴＡＵｂｓｅを補正することで、制御空燃比を理論空燃比に徐々に近づけるようにしている。
【００３８】
一方、制御空燃比を理論空燃比とするために必要な噴射時間とベース噴射時間ＴＡＵｂｓｅとの間には、インジェクターの噴射特性、酸素濃度センサー２５の出力特性の個体差や経時変化などに起因して、定常的な偏差（以下、空燃比の定常偏差と記載する）が生じることがある。そこで、本実施形態では、こうした空燃比の定常偏差を空燃比学習値ＬＡＦとして学習する、いわゆる空燃比学習制御を行うことで、空燃比フィードバックの応答性の向上を図っている。空燃比学習値ＬＡＦの値は、制御空燃比が理論空燃比の近傍の値に安定しているときの空燃比フィードバック補正値ＦＡＦに応じて更新される。具体的には、メイン制御ユニット３４は、そのときの空燃比フィードバック補正値ＦＡＦが、ベース噴射時間ＴＡＵｂｓｅをリーン側に一定値以上補正する値であるときには、より噴射時間を短くする側（リーン側）の値へと空燃比学習値ＬＡＦの値を徐々に更新する。一方、メイン制御ユニット３４は、そのときの空燃比フィードバック補正値ＦＡＦが、ベース噴射時間ＴＡＵｂｓｅをリッチ側に一定値以上補正する値であるときには、より噴射時間を長くする側（リッチ側）の値へと空燃比学習値ＬＡＦの値を徐々に更新する。
【００３９】
なお、本実施形態では、空燃比フィードバック補正値ＦＡＦおよび空燃比学習値ＬＡＦはいずれも、ベース噴射時間ＴＡＵｂｓｅの増大側への補正率としてその値が設定されている。よって、これらによる補正後の噴射時間、すなわちガソリンインジェクター１９への噴射時間の指令値である液体燃料用噴射時間ＴＡＵｍの演算は、下式（１）のように行われる。
【００４０】
【数１】
2016109030.tif 000003
さて、このバイフューエルエンジン１０のベースとなったガソリンエンジンでは、メイン制御ユニット３４は、こうして演算した液体燃料用噴射時間ＴＡＵｍを噴射時間の指令値としてガソリンインジェクター１９に直接出力する。これに対して、このバイフューエルエンジン１０では、その液体燃料用噴射時間ＴＡＵｍは、サブ制御ユニット３５に送信される。
【００４１】
サブ制御ユニット３５は、バイフューエルエンジン１０の運転モードＭＯＤＥが液体燃料運転モードに設定されているときには、メイン制御ユニット３４から受信した液体燃料用噴射時間ＴＡＵｍをそのままガソリンインジェクター１９に出力する。一方、サブ制御ユニット３５は、バイフューエルエンジン１０の運転モードＭＯＤＥがガス燃料運転モードに設定されているときには、メイン制御ユニット３４から受信した液体燃料用噴射時間ＴＡＵｍに基づいてガス燃料の噴射時間を演算して、ガスインジェクター２８に出力する。
【００４２】
ここで、現状の燃焼室１１の吸気の充填率において、制御空燃比をガソリンの理論空燃比Ｘとするために必要なガソリンの噴射量をＱ１とする。このとき、制御空燃比をガス燃料の理論空燃比Ｙとするために必要なガス燃料の噴射量Ｑ２は、ガソリンの理論空燃比Ｘに対するガス燃料の理論空燃比Ｙの比を上記ガソリンの噴射量Ｑ１に乗算した値（Ｑ２＝Ｑ１×Ｙ／Ｘ）となる。以下の説明では、ガソリンおよびガス燃料の噴射量がそうした関係となるガソリンおよびガス燃料の噴射時間を「等価の噴射時間」と言うこととする。
【００４３】
このバイフューエルエンジン１０では、酸素濃度センサー２５の検出結果が入力されていないため、サブ制御ユニット３５は、制御空燃比の状況を直接確認することができない。そこで、サブ制御ユニット３５は、メイン制御ユニット３４から受信した液体燃料用噴射時間ＴＡＵｍと等価のガス燃料の噴射時間を求め、その値を噴射時間の指令値としてガスインジェクター２８に出力することで、ガス燃料運転中のガス燃料の噴射制御を行っている。
【００４４】
そうした場合にも、ガス燃料運転中に理論空燃比からの制御空燃比のずれが生じれば、酸素濃度センサー２５の検出値はそのずれに応じた値となり、メイン制御ユニット３４では、そのずれを縮小すべく空燃比制御が行われる。そのため、サブ制御ユニット３５は、現状の排気の酸素濃度を直接確認せずとも、メイン制御ユニット３４から受信した液体燃料用噴射時間ＴＡＵｍと等価のガス燃料の噴射時間を求め、その値をガスインジェクター２８に指令することで、ガス燃料運転中の制御空燃比を理論空燃比に制御することが可能となる。
【００４５】
ところが、こうしたバイフューエルエンジン１０の搭載車両が使用される国や地域によっては、流通するガス燃料の品質（純度など）に大きなばらつきが存在することがある。そうした場合、補給したガス燃料の組成により、その実質的な理論空燃比が変化することがある。例えば、ガス燃料の品質が低く、ガス燃料中の不活性ガス（二酸化炭素など）の濃度が高い場合には、ガスインジェクター２８の噴射時間が同じでも、噴射されたガス燃料に含まれる可燃成分（メタンなど）の量はより少なくなる。そうした場合、制御空燃比を理論空燃比とするためには、噴射時間をより長くする必要がある。
【００４６】
一方、サブ制御ユニット３５は、設計時に想定した標準的な組成のガス燃料の使用を前提に、液体燃料およびガス燃料の噴射時間の換算比を設定して、液体燃料用噴射時間ＴＡＵｍからのガス燃料の噴射時間を演算している。そのため、想定と異なる組成のガス燃料がバイフューエルエンジン１０に補給されたときには、演算したガス燃料の噴射時間と液体燃料用噴射時間ＴＡＵｍとの等価性が崩れてしまい、空燃比制御を適切に行うことができなくなる虞がある。
【００４７】
図２に、可燃成分濃度が想定よりも高いガス燃料、すなわち高発熱量のガス燃料が補給された場合に、メイン制御ユニット３４から受信した液体燃料用噴射時間ＴＡＵｍと等価のガス燃料の噴射時間をそのままガス燃料運転中のガスインジェクター２８の噴射時間に設定して制御を行った場合の空燃比制御の結果の一例を示す。同図では、高発熱量のガス燃料が補給された後、しばらくは、液体燃料運転モードでバイフューエルエンジン１０が運転されている。そして、時刻ｔ１において、その補給後において始めての、ガス燃料運転への切り換えが行われている。なお、この時刻ｔ１における空燃比学習値ＬＡＦの値は、それまでの液体燃料運転モードでのバイフューエルエンジン１０の運転においては、適切な値となっている。
【００４８】
時刻ｔ１において、液体燃料運転からガス燃料運転に切り換えられると、ガソリンインジェクター１９からのガソリンの噴射に代えて、ガスインジェクター２８からのガス燃料の噴射が開始される。このときに噴射されるガス燃料の組成が想定通りのものであれば、液体燃料用噴射時間ＴＡＵｍと等価のガス燃料の噴射時間をガスインジェクター２８に指令するだけで、ガソリンの理論空燃比からガス燃料の理論空燃比へと制御空燃比を円滑に推移させられる。すなわち、切り換え後にも、理論空燃比に対する制御空燃比の比率λａｆを１．０の近傍に維持することが可能となる。しかしながら、このときに噴射されるガス燃料には、想定よりも多い比率の可燃成分が含まれており、その実質的な理論空燃比は、想定値よりもリッチ側にずれている。そのため、ガス燃料運転モードへの切り換え直後に、使用中のガス燃料の理論空燃比が想定値であるとしてガス燃料の噴射時間を設定すれば、制御空燃比がガス燃料の理論空燃比よりもリッチ側にずれてしまう。
【００４９】
こうした制御空燃比のずれが生じると、そのずれを補償するための空燃比フィードバックが行われ、制御空燃比はやがて、使用中のガス燃料の理論空燃比の近傍に収束される。そして、空燃比フィードバックが収束して、制御空燃比が安定すると、そのときの空燃比フィードバック補正値ＦＡＦの値に応じて空燃比学習値ＬＡＦが更新される。
【００５０】
その結果、このときのガス燃料運転中に、空燃比学習値ＬＡＦの値は、液体燃料運転における適正値よりもリーン側にずれた値となってしまう。したがって、その後の時刻ｔ２に、バイフューエルエンジン１０の運転モードＭＯＤＥがガス燃料運転モードから液体燃料運転モードに再び切り換えられると、今度は、制御空燃比がガソリンの理論空燃比よりもリーン側にずれてしまう。
【００５１】
このように、想定よりも高発熱量のガス燃料が補給された場合、運転モードＭＯＤＥの切り換え毎に、制御空燃比に乱れが発生してしまう。ちなみに、想定よりも低発熱量のガス燃料が補給された場合には、そのガス燃料の実質的な理論空燃比は想定値よりもリーン側の値となるため、これとは逆の現象が生じる。すなわち、このときの制御空燃比は、ガス燃料運転モードへの切り換えの直後には使用中のガス燃料の理論空燃比よりもリーン側にずれ、液体燃料運転モードへの切り換えの直後にはガソリンの理論空燃比よりもリッチ側にずれてしまう。
【００５２】
ここで、空燃比学習値ＬＡＦの学習が適切に行われているとすれば、上記のようなガス燃料運転への切り換え直後における、理論空燃比からの制御空燃比のずれは、補給したガス燃料の組成の違いに起因するものと考えられる。そこで、サブ制御ユニット３５は、ガス燃料の補給後のガス燃料運転の開始直後に生じた、理論空燃比からの制御空燃比のずれ分をガス燃料組成学習値ＬＣＡＬとして学習するようにしている。そして、その学習の結果をガス燃料の噴射時間に反映することで、上記のような運転モードＭＯＤＥの切り換え時の制御空燃比のずれを抑制している。以下、こうしたガス燃料組成学習値ＬＣＡＬの学習およびその学習結果の噴射時間への反映にかかる制御を、ガス燃料組成学習制御と記載する。
【００５３】
ただし、上述のようにサブ制御ユニット３５には、酸素濃度センサー２５の検出結果が入力されていないため、ガス燃料運転の開始直後に生じた、理論空燃比からの制御空燃比のずれを直接確認する術はない。そこで、サブ制御ユニット３５は、ガス燃料組成学習を以下の態様で行うようにしている。すなわち、ガス燃料運転の開始直後に、ガス燃料の組成の違いによる制御空燃比のずれが生じた場合にも、メイン制御ユニット３４の空燃比制御によって、制御空燃比はやがて、使用中のガス燃料の理論空燃比の近傍の値で安定する。このときのガス燃料の噴射時間は、使用中のガス燃料の可燃成分の濃度が高ければ、より短くなり、低ければ、より長くなる。したがって、ガス燃料運転中、空燃比フィードバックが安定した状態となったときのガス燃料の噴射時間は、使用中のガス燃料の組成に応じた値となる。
【００５４】
一方、燃焼室１１内の吸気量（シリンダー流入空気量）、ガスインジェクター２８の噴射特性、および使用中のガス燃料の理論空燃比が既知であれば、制御空燃比を理論空燃比とするために必要なガス燃料の噴射時間を演算により求めることができる。そこで、ガス燃料の噴射量に対する現状のシリンダー流入空気量の比が理論空燃比の想定値となるガス燃料の噴射時間（基準噴射時間ＴＡＵＳ１）を求めて、現在のガス燃料の噴射時間と比較すれば、ガス燃料の組成の違いに起因した制御空燃比のずれの度合を確認することができる。そこで、本実施形態では、そうした基準噴射時間ＴＡＵＳ１と現在のガス燃料の噴射時間の演算値との比較結果に基づき、両者の差分に相当する値となるようにガス燃料組成学習値ＬＣＡＬの値を更新している。そしてこれにより、ガス燃料の組成の違いによる制御空燃比のずれ分の学習、すなわちガス燃料の組成学習を行うようにしている。
【００５５】
図３に、そうした組成学習制御のために実行される組成学習制御ルーチンのフローチャートを示す。同ルーチンの処理は、バイフューエルエンジン１０のガス燃料運転中に、サブ制御ユニット３５によって規定の制御周期毎に繰り返し実行される。
【００５６】
なお、本ルーチンにおいては、演算処理を簡単とするため、演算過程では、ガス燃料の噴射時間を等価のガソリン噴射時間（以下、「ガス燃料用噴射時間ＴＡＵＧ」と記載する）として求めている。そして、サブ制御ユニット３５は、噴射時間の演算の最終段階で、ガス燃料用噴射時間ＴＡＵＧを等価のガス燃料の噴射時間に換算して、ガスインジェクター２８への指令している。ちなみに、このときの換算は、設定時に想定された標準的な組成のガス燃料が使用されているものとして行われる。また、その換算に際しては、ガスインジェクター２８に供給されるガス燃料の圧力、温度がその噴射特性に与える影響を考慮して、低圧側ガス圧ＰＬおよびガス温度ＴＨＧの検出値が参照される。
【００５７】
さて、本処理が開始されると、まずステップＳ１００において、ガス燃料の補給が行われたか否かが判定される。この判定は、高圧側ガス圧ＰＨに基づいて行われる。すなわち、この判定においては、高圧側ガス圧センサー４０から取得した現在の高圧側ガス圧ＰＨの検出値（現在値）と、イグニッションオフ時にも記憶を保持する不揮発性のメモリーに記憶された以前の高圧側ガス圧ＰＨの検出値（ＲＡＭ値）とが読み込まれる。そして、現在値からＲＡＭ値を引いた値が既定の判定値以上であれば、すなわち高圧側ガス圧ＰＨが以前よりも判定値以上上昇していれば、ガス燃料の補給が行われたと判定される。なお、ここでの判定後、高圧側ガス圧ＰＨのＲＡＭ値は、現在値に書き換えられる。
【００５８】
ここで、ガス燃料の補給が行われていれば（ＹＥＳ）、ステップＳ１０１において、学習完了フラグＦＬＡＧ１がクリア（ＯＦＦ）された後、ステップＳ１０２に処理が進められ、行われていなければ（ＮＯ）、そのままステップＳ１０２に処理が進められる。なお、学習完了フラグＦＬＡＧ１の状態は、上記不揮発性メモリーに記憶され、エンジン停止中も保持される。
【００５９】
ステップＳ１０２に処理が進められると、そのステップＳ１０２において、メイン制御ユニット３４から受信した液体燃料用噴射時間ＴＡＵｍをガス燃料組成学習値ＬＣＡＬに応じて補正した値が、ガス燃料用噴射時間ＴＡＵＧの値に設定される。このときのガス燃料用噴射時間ＴＡＵＧの設定は、下式（２）に従って行われる。
【００６０】
【数２】
2016109030.tif 000004
続いて、ステップＳ１０３において、ガス燃料組成学習値ＬＣＡＬの更新条件が成立しているか否かが判定される。ガス燃料組成学習値ＬＣＡＬの更新条件は、下記要件（イ）〜（ハ）のすべてが満たされるときに成立する。
（イ）エンジン回転速度ＮＥが、規定値α１よりも高く、規定値α２よりも低いこと。
（ロ）スロットル開度ＴＡが、規定値β１よりも大きく、規定値β２よりも小さいこと。
（ハ）学習完了フラグＦＬＡＧ１がクリア（ＯＦＦ）されていること。
【００６１】
なお、上記条件（イ）は、制御空燃比に乱れが比較的生じにくい回転速度域にあるか否かを確認するためのものである。一方、燃焼室１１の吸気の充填率は、一定のスロットル開度ＴＡまでは、その開度が大きくなるほど増加するが、ある開度を超えると飽和して、それ以上開度を大きくしても増加しなくなる。上記条件（ロ）は、スロットル開度が、そうした吸気の充填率の飽和域にあるか否かを確認するためのものである。さらに、上記条件（ハ）は、ガス燃料の補給後に、ガス燃料組成学習が既に完了しているか否かを確認するためのものである。
【００６２】
ここで、ガス燃料組成学習値ＬＣＡＬの更新条件が成立していれば（ＹＥＳ）、ステップＳ１０４に処理が進められ、成立していなければ（ＮＯ）、そのまま今回の本ルーチンの処理が終了される。
【００６３】
ステップＳ１０４に処理が進められると、そのステップＳ１０４において、上述の基準噴射時間ＴＡＵＳ１の演算が行われる。なお、本実施形態では、ガス燃料組成学習値ＬＣＡＬの更新が、燃焼室１１内の吸気の充填率が飽和するスロットル開度域にあるときに限定されており、エンジン回転速度ＮＥからシリンダー流入空気量が一義的に定まるため、基準噴射時間ＴＡＵＳ１の演算は、エンジン回転速度ＮＥにのみ基づいて行われる。
【００６４】
図４は、このときの基準噴射時間ＴＡＵＳ１の演算に使用される演算マップにおける、エンジン回転速度ＮＥと基準噴射時間ＴＡＵＳ１との関係を示している。この演算マップは、エンジン回転速度ＮＥに基づく１次元マップとして構成され、予めサブ制御ユニット３５に記憶されている。
【００６５】
なお、充填率が飽和するスロットル開度域以外でも、ガス燃料組成学習値ＬＣＡＬの更新を行いたい場合、すなわち更新条件における要件（ロ）を省きたい場合には、次のように基準噴射時間ＴＡＵＳ１を演算するとよい。すなわち、現在のシリンダー流入空気量は、エンジン回転速度ＮＥおよびエンジン負荷から求めることが可能なため、基準噴射時間ＴＡＵＳ１の演算を、エンジン回転速度ＮＥおよびエンジン負荷に基づき行うようにするとよい。この場合のエンジン負荷の指標値としては、吸入空気量ＧＡやスロットル開度ＴＡ、燃料噴射量などを用いることができる。
【００６６】
図５は、そうした場合の基準噴射時間ＴＡＵＳ１の演算に使用する演算マップの一例における、エンジン回転速度ＮＥおよびスロットル開度ＴＡと、基準噴射時間ＴＡＵＳ１との関係を示している。
【００６７】
基準噴射時間ＴＡＵＳ１が演算されると、続くステップＳ１０５において、この基準噴射時間ＴＡＵＳ１に対するガス燃料用噴射時間ＴＡＵＧの比が、噴射時間比ＤＣＡＬの値として設定される。
【００６８】
ここで、ガス燃料運転中の制御空燃比のずれがガス燃料の組成の違いのみによって生じるとすると、制御空燃比が理論空燃比となったときの噴射時間比ＤＣＡＬは、ガス燃料の理論空燃比の想定値に対する現在値の比となる。この場合には、ガス燃料組成学習値ＬＣＡＬによる補正前のガス燃料の噴射時間と同補正後のガス燃料の噴射時間の比が噴射時間比ＤＣＡＬとなるようにガス燃料組成学習値ＬＣＡＬの値を設定すれば、ガス燃料運転時の制御空燃比を当初から理論空燃比とすることが可能となる。すなわち、ガス燃料組成学習値ＬＣＡＬは、噴射時間比ＤＣＡＬから「１」を引いた値に設定すれば良いことになる。
【００６９】
ただし、サブ制御ユニット３５は、制御空燃比の状況を直接確認できないため、ここでは、次のようにガス燃料組成学習値ＬＣＡＬの更新を行っている。すなわち、サブ制御ユニット３５は、噴射時間比ＤＣＡＬからガス燃料組成学習値ＬＣＡＬを引いた値が「１」に近づくように、ガス燃料組成学習値ＬＣＡＬの値を徐々に更新している。そして、サブ制御ユニット３５は、噴射時間比ＤＣＡＬからガス燃料組成学習値ＬＣＡＬを引いた値が「１」近傍の値となった状態が十分な時間継続していれば、制御空燃比も安定した状態にあるとして、その時点の値をもってガス燃料組成学習を完了する。このようにすれば、噴射時間比ＤＣＡＬの値が大きく変動しても、ガス燃料組成学習値ＬＣＡＬの値は直ちに変化しないため、制御空燃比の一時の乱れでガス燃料組成学習値ＬＣＡＬに不適切な値が設定されないようにすることができる。
【００７０】
もっとも、実際には、ガス燃料の組成の違い以外の要因によっても、制御空燃比のずれが生じることがある。そこで、本実施形態では、最終的に、噴射時間比ＤＣＡＬからガス燃料組成学習値ＬＣＡＬを引いた値が「１」から規定値γ以内の値（１−γ≦ＤＣＡＬ−ＬＣＡＬ≦１＋γ）となるように、ガス燃料組成学習値ＬＣＡＬの更新を行っている。このときの規定値γには、想定される空燃比学習値ＬＡＦの値の振れ幅（例えばγ＝０．０５）が設定されている。
【００７１】
すなわち、噴射時間比ＤＣＡＬから現在のガス燃料組成学習値ＬＣＡＬを引いた値が、「１」に上記γを加えた値よりも大きいときには（Ｓ１０６：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも規定値δだけ小さい値に更新される（Ｓ１０７）。また、噴射時間比ＤＣＡＬから現在のガス燃料組成学習値ＬＣＡＬを引いた値が、「１」から上記γを引いた値よりも小さいときには（Ｓ１０８：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも上記δだけ大きい値に更新される（Ｓ１０９）。そして、ガス燃料組成学習値ＬＣＡＬの更新後、今回の本ルーチンの処理が終了される。なお、更新されたガス燃料組成学習値ＬＣＡＬの値は、不揮発性メモリーに記憶され、エンジン停止中も保持される。
【００７２】
一方、噴射時間比ＤＣＡＬからガス燃料組成学習値ＬＣＡＬを引いた値が、「１」からγ以内の値であるときには（Ｓ１０６：ＮＯ、かつＳ１０８：ＮＯ）、ステップＳ１１０に処理が進められる。ステップＳ１１０に処理が進められると、そのステップＳ１１０において、ガス燃料組成学習安定カウンターＣＯＵＮＴ１がインクリメントされ、続くステップＳ１１１において、その値が規定値εを超えるか否かが判定される。そして、ガス燃料組成学習安定カウンターＣＯＵＮＴ１の値が規定値εを超える場合には（ＹＥＳ）、ステップＳ１１２において、学習完了フラグＦＬＡＧ１がセット（ＯＮ）された後、今回の本ルーチンの処理が終了される。
【００７３】
なお、上記噴射時間比ＤＣＡＬからガス燃料組成学習値ＬＣＡＬを引いた値が「１」となるときには、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１と等しくなる。すなわち、本ルーチンでは、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１よりも長いときにはガス燃料の噴射時間をより短くする側に、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１よりも短いときにはガス燃料の噴射時間をより長くする側に、ガス燃料組成学習値ＬＣＡＬの値を徐々に更新している。そして、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１から規定値γ以内の状態が規定時間継続した場合には、ガス燃料が再び補給されるまで、ガス燃料組成学習値ＬＣＡＬの値の更新を停止している。なお、液体燃料用噴射時間ＴＡＵｍの値は、ガス燃料組成学習値ＬＣＡＬによる補正前のガス燃料用噴射時間ＴＡＵＧの値に相当している。
【００７４】
次に、こうした組成学習制御ルーチンの処理がバイフューエルエンジン１０の空燃比制御の実行結果に与える作用を説明する。
図６に、本実施形態の空燃比制御の実行結果の一例を示す。同図のタイムチャートは、想定よりも高発熱量のガス燃料が、すなわち実質的な理論空燃比が想定値よりもリッチ側の値であるガス燃料が補給された後、液体燃料運転がしばらく行われた後の期間における空燃比制御の実行結果が示されている。
【００７５】
同図の時刻ｔ１０には、上記ガス燃料が行われてから始めて、運転モードＭＯＤＥがガス燃料運転モードに切り換えられている。この時刻ｔ１０までの液体燃料運転中に空燃比学習は完了している。そのため、切換後に使用されるガス燃料が標準的な組成のガス燃料であれば、制御空燃比はガソリンの理論空燃比から使用中のガス燃料の理論空燃比へと円滑に推移することになる。すなわち、理論空燃比に対する制御空燃比の比率λａｆの値は、運転モードＭＯＤＥの切り換え後も、「１．０」近傍に保持される。
【００７６】
ただし、このときには、標準よりも高発熱量のガス燃料が使用されている。そのため、ガス燃料運転モードへの切り換えと共に、使用中のガス燃料の実際の理論空燃比に対して制御空燃比がリッチ側にずれてしまう。
【００７７】
こうした制御空燃比のずれが生じると、そのずれを補償すべく、空燃比フィードバック補正値ＦＡＦの更新が行われて、制御空燃比が現状のガス燃料の理論空燃比に近づけられる。そして、制御空燃比が安定すると、そのときの空燃比フィードバック補正値ＦＡＦの値に応じて、空燃比学習値ＬＡＦが更新される。その結果、このガス燃料運転中に、空燃比学習値ＬＡＦは、そのガス燃料運転の開始前よりもリーン側の値とされる。
【００７８】
その後の時刻ｔ１１において、アクセルペダルの踏み込み（アクセル操作量ＡＣＣＰの増大）に応じてスロットル開度ＴＡが拡大されると、ガス燃料組成学習値ＬＣＡＬの更新が開始される。このときのガス燃料用噴射時間ＴＡＵＧは、ガス燃料運転開始時の制御空燃比のリッチ側へのずれを補償するための空燃比フィードバックにより、基準噴射時間ＴＡＵＳ１よりも短くなっている。そのため、このときのガス燃料組成学習値ＬＣＡＬは、リーン側の値へと更新される。
【００７９】
ガス燃料組成学習値ＬＣＡＬがリーン側に更新されると、ガス燃料用噴射時間ＴＡＵＧは短縮される。ただし、ガス燃料用噴射時間ＴＡＵＧの短縮により、制御空燃比がリーン側に変化すると、メイン制御ユニット３４での空燃比フィードバックにより直ちに液体燃料用噴射時間ＴＡＵｍがその分増大される。そのため、ガス燃料組成学習値ＬＣＡＬが更新されても、ガス燃料用噴射時間ＴＡＵＧは直ちに元の値に戻る。一方、メイン制御ユニット３４の演算する液体燃料用噴射時間ＴＡＵｍは、上記のような空燃比フィードバックの結果、ガス燃料組成学習値ＬＣＡＬの更新に応じて増大される。
【００８０】
ガス燃料組成学習値ＬＣＡＬの更新が完了して、空燃比フィードバック補正値ＦＡＦが安定すると、空燃比学習値ＬＡＦが更新される。その結果、空燃比学習値ＬＡＦは、ガス燃料運転の開始前と同程度の値に戻される。
【００８１】
その後の時刻ｔ１２には、バイフューエルエンジン１０の運転モードＭＯＤＥが液体燃料運転モードへと切り換えられる。このときの空燃比学習値ＬＡＦは、補給されたガス燃料の組成の違いにより生じた制御空燃比のずれの影響を受けていない値となっている。そのため、制御空燃比は、ガス燃料の理論空燃比からガソリンの理論空燃比へと円滑に移行される。
【００８２】
さらにその後の時刻ｔ１３には、バイフューエルエンジン１０の運転モードＭＯＤＥが液体燃料運転モードから再びガス燃料運転モードに切り換えられる。このときのガスインジェクター２８の噴射時間には、先に学習したガス燃料組成学習値ＬＣＡＬが反映されるため、制御空燃比は、このときにも、ガソリンの理論空燃比からガス燃料の理論空燃比へと円滑に移行される。
【００８３】
なお、こうした本実施形態では、液体燃料用噴射時間ＴＡＵｍが、第１制御部としてのメイン制御ユニット３４の液体燃料の噴射時間の演算値に相当する。また、ガス燃料用噴射時間ＴＡＵＧが、第２制御部としてのサブ制御ユニット３５のガス燃料の噴射時間の演算値に相当する。また、本実施形態では、液体燃料用噴射時間ＴＡＵｍが、第１制御部が演算した液体燃料の噴射時間の演算値に、ガス燃料用噴射時間ＴＡＵＧが、第２制御部が演算したガス燃料の噴射時間の演算値にそれぞれ相当する。
【００８４】
以上説明した本実施形態のバイフューエルエンジンの空燃比制御装置によれば、以下の効果を奏することができる。
（１）本実施形態のバイフューエルエンジンの空燃比制御装置は、空燃比制御のための制御ユニットとして、メイン制御ユニット３４とサブ制御ユニット３５との２つの制御ユニットを備える。メイン制御ユニット３４は、排気の酸素濃度の検出結果に基づき、同排気の酸素濃度が理論空燃比時の値に近づくようにフィードバック補正を行って液体燃料の噴射時間（液体燃料用噴射時間ＴＡＵｍ）を演算する。サブ制御ユニット３５は、メイン制御ユニット３４が演算した液体燃料用噴射時間ＴＡＵｍからガス燃料の噴射時間（ガス燃料用噴射時間ＴＡＵＧ）を演算する。また、サブ制御ユニット３５は、ガス燃料用噴射時間ＴＡＵＧに対してガス燃料組成学習値ＬＣＡＬによる補正を行うとともに、ガス燃料の補給後におけるガス燃料運転中に、下記（い）〜（に）を行う。
（い）ガス燃料の噴射量に対する現在のシリンダー流入空気量の比がガス燃料の理論空燃比となるガス燃料の噴射時間を基準噴射時間ＴＡＵＳ１として求めること。なお、本実施形態では、ガス燃料噴射時間の演算過程では、ガス燃料噴射時間を等価な液体燃料噴射時間として扱っているため、基準噴射時間ＴＡＵＳ１も、上記ガス燃料の噴射時間と等価な液体燃料の噴射時間として求められている。
（ろ）ガス燃料組成学習値ＬＣＡＬによる補正前のガス燃料用噴射時間ＴＡＵＧ（液体燃料用噴射時間ＴＡＵｍ）と上記（い）で求めた基準噴射時間ＴＡＵＳ１とを比較すること。
（は）上記（ろ）での比較の結果、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１よりも長い場合、ガス燃料の噴射時間をより短くするように、ガス燃料組成学習値ＬＣＡＬの値を設定すること。
（に）上記（ろ）での比較の結果、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１よりも短い場合、ガス燃料の噴射時間をより長くするように、ガス燃料組成学習値ＬＣＡＬの値を設定すること。
【００８５】
これにより、ガス燃料の組成の違いによる制御空燃比のずれ分を予め補正しておくことが可能となり、ガス燃料運転および液体燃料運転の切り換えに際しての制御空燃比の乱れを抑えられる。したがって、組成の異なるガス燃料が使用されても、空燃比を好適に制御することができる。
【００８６】
（２）ガス燃料組成学習値ＬＣＡＬの値が一時に大きく変更されれば、ガス燃料用噴射時間ＴＡＵＧが急変して制御空燃比に一時的な乱れが生じる。その点、本実施形態では、上記（は）におけるガス燃料組成学習値ＬＣＡＬの値の設定を、ガス燃料の噴射時間をより短くする側に同ガス燃料組成学習値ＬＣＡＬの値を徐々に更新することで行っている。また、上記（に）におけるガス燃料組成学習値ＬＣＡＬの値の設定を、ガス燃料の噴射時間をより長くする側に同ガス燃料組成学習値ＬＣＡＬの値を徐々に更新することで行っている。そのため、制御空燃比に乱れを生じさせることなく円滑にその値の設定を行うことができる。
【００８７】
（３）ガス燃料組成学習値ＬＣＡＬを適正に学習するには、制御空燃比が理論空燃比となっているときの基準噴射時間ＴＡＵＳ１とガス燃料用噴射時間ＴＡＵＧとの比較結果に基づきその値の設定を行う必要がある。しかしながら、サブ制御ユニット３５は、現状の制御空燃比を直接確認できないため、その値の設定に適切なタイミングを知ることができない。その点、本実施形態では、ガス燃料組成学習値ＬＣＡＬの値の設定を、ガス燃料組成学習値ＬＣＡＬによる補正前のガス燃料用噴射時間ＴＡＵＧ（液体燃料用噴射時間ＴＡＵｍ）と基準噴射時間ＴＡＵＳ１との比較結果に応じて同ガス燃料組成学習値ＬＣＡＬの値を徐々に更新することで行っている。制御空燃比は、空燃比フィードバックにより、理論空燃比に収束されるため、上記のように更新を行っていけば、ガス燃料組成学習値ＬＣＡＬの値はやがて適正な値となる。したがって、制御空燃比を直接確認しなくても、ガス燃料組成学習値ＬＣＡＬを適正な値に設定することができる。
【００８８】
（４）本実施形態では、サブ制御ユニット３５は、ガス燃料組成学習値ＬＣＡＬによる補正前のガス燃料噴射時間の演算値（液体燃料用噴射時間ＴＡＵｍ）が基準噴射時間ＴＡＵＳ１から規定値γ以内の状態が規定時間継続した場合には、ガス燃料が再び補給されるまでガス燃料組成学習値ＬＣＡＬの値の更新を停止している。そのため、現状の制御空燃比を直接確認することができなくても、制御空燃比が理論空燃比となっているときの基準噴射時間ＴＡＵＳ１とガス燃料用噴射時間ＴＡＵＧとの比較結果に基づく適正な値をガス燃料組成学習値ＬＣＡＬとして学習することができる。また、一旦、適正な値が学習された後は、再びガス燃料が補給されるまで、その値が固定されるため、ガス燃料の組成以外の要因による制御空燃比のずれ分のガス燃料組成学習値ＬＣＡＬへの反映を好適に抑えることが可能となる。
【００８９】
（第２実施形態）
続いて、バイフューエルエンジンの空燃比制御装置の第２実施形態を、図７を併せ参照して詳細に説明する。なお、本実施形態にあって、上記第１実施形態と共通する構成については、同一の符号を付してその詳細な説明は省略する。
【００９０】
第１実施形態の組成学習制御ルーチンでは、ガス燃料用噴射時間ＴＡＵＧと基準噴射時間ＴＡＵＳ１との比較結果に基づき、ガス燃料組成学習値ＬＣＡＬを更新していた。なお、ガス燃料用噴射時間ＴＡＵＧは、メイン制御ユニット３４が演算した液体燃料用噴射時間ＴＡＵｍをガス燃料組成学習値ＬＣＡＬにより補正した値であるため、液体燃料用噴射時間ＴＡＵｍと基準噴射時間ＴＡＵＳ１との比較結果に基づいても、ガス燃料組成学習値ＬＣＡＬの更新を同様に行うことが可能である。本実施形態では、ガス燃料組成学習値ＬＣＡＬの更新を、液体燃料用噴射時間ＴＡＵｍと基準噴射時間ＴＡＵＳ１との比較結果に基づいて行う場合の処理の手順を説明する。
【００９１】
なお、本実施形態においても基準噴射時間ＴＡＵＳ１の値は、第１実施形態と同じ態様で設定され、その演算に使用される演算マップも同じものを使用しており、条件が同じであれば、本実施形態でも第１実施形態の場合と設定される値は同じとなる。しかしながら、その値の持つ意味合いには、次の違いがある。すなわち、第１実施形態での基準噴射時間ＴＡＵＳ１は、ガス燃料の噴射量に対する現在のシリンダー流入空気量の比が、ガス燃料の理論空燃比の想定値となるガス燃料の噴射時間を等価な液体燃料の噴射時間に換算した値として求められている。これに対して、本実施形態での基準噴射時間ＴＡＵＳ１は、液体燃料の噴射量に対する現在のシリンダー流入空気量の比が液体燃料の理論空燃比の想定値となる液体燃料の噴射時間として求められている。
【００９２】
さて、ガス燃料運転中の制御空燃比のずれがガス燃料の組成の違いのみによって生じるとすると、ガス燃料組成学習値ＬＣＡＬが適正な値に学習されたときの液体燃料用噴射時間ＴＡＵｍは、基準噴射時間ＴＡＵＳ１と一致する筈である。よって、この場合には、基準噴射時間ＴＡＵＳ１に対する液体燃料用噴射時間ＴＡＵｍの比が「１」に近づくように、そして最終的に「１」から規定値γ以内の値となるように、ガス燃料組成学習値ＬＣＡＬの更新を行えば良いことになる。
【００９３】
図７に、そうした本実施形態における組成学習制御ルーチンのフローチャートを示す。同ルーチンの処理は、バイフューエルエンジン１０のガス燃料運転中に、サブ制御ユニット３５によって規定の制御周期毎に繰り返し実行される。
【００９４】
本ルーチンの処理が開始されると、まずステップＳ２００において、ガス燃料の補給が行われたか否かが判定される。この判定は、第１実施形態の場合と同様に行うことができる。ここで、ガス燃料の補給が行われていれば（ＹＥＳ）、ステップＳ２０１において、学習完了フラグＦＬＡＧ１がクリア（ＯＦＦ）された後、ステップＳ２０２に処理が進められ、行われていなければ（ＮＯ）、そのままステップＳ２０２に処理が進められる。
【００９５】
ステップＳ２０２に処理が進められると、そのステップＳ２０２において、ガス燃料組成学習値ＬＣＡＬの更新条件の成立の有無が判定される。ここで、更新条件が成立していれば（ＹＥＳ）、ステップＳ２０３に、成立していなければ（ＮＯ）、ステップＳ２１２に、それぞれ処理が進められる。なお、ガス燃料組成学習値ＬＣＡＬの更新条件は、第１実施形態の場合と同じである。
【００９６】
更新条件の成立により、ステップＳ２０３に処理が進められると、そのステップＳ２０３において、基準噴射時間ＴＡＵＳ１が演算される。そして、次のステップＳ２０４において、この基準噴射時間ＴＡＵＳ１に対する液体燃料用噴射時間ＴＡＵｍの比（＝ＴＡＵｍ／ＴＡＵＳ１）が、噴射時間比ＤＣＡＬ’の値として設定される。
【００９７】
次に、こうした噴射時間比ＤＣＡＬ’に基づき、ガス燃料組成学習値ＬＣＡＬの更新が行われる。すなわち、噴射時間比ＤＣＡＬ’が、「１」に上記γを加えた値よりも大きいときには（Ｓ２０５：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも規定値δだけ小さい値に更新された後（Ｓ２０６）、ステップＳ２１２に処理が進められる。また、噴射時間比ＤＣＡＬが、「１」から上記γを引いた値よりも小さいときには（Ｓ２０７：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも規定値δだけ大きい値に更新された後（Ｓ２０８）、ステップＳ２１２に処理が進められる。
【００９８】
一方、噴射時間比ＤＣＡＬ’が「１」からγ以内の値のときには（Ｓ２０５：ＮＯかつＳ２０７：ＮＯ）、ガス燃料組成学習安定カウンターＣＯＵＮＴ１がインクリメントされた後（Ｓ２０９）、その値が規定値εを超えるか否かが判定される（Ｓ２１０）。ここで、ガス燃料組成学習安定カウンターＣＯＵＮＴ１が規定値εを超えていれば（ＹＥＳ）、ステップＳ２１１において学習完了フラグＦＬＡＧ１がセット（ＯＮ）された後、ステップＳ２１２に処理が進められ、超えていなければ（ＮＯ）、そのままステップＳ２１２に処理が進められる。
【００９９】
ステップＳ２１２に処理が進められると、そのステップＳ２１２において、液体燃料用噴射時間ＴＡＵｍをガス燃料組成学習値ＬＣＡＬにより補正した値が、ガス燃料用噴射時間ＴＡＵＧの値に設定された後、今回の本ルーチンの処理が終了される。なお、このときのガス燃料用噴射時間ＴＡＵＧの設定は、上述の式（２）に従って行われる。
【０１００】
なお、上記噴射時間比ＤＣＡＬ’の値は、液体燃料用噴射時間ＴＡＵｍの値が基準噴射時間ＴＡＵＳ１と等しいときに「１」となる。すなわち、上記ルーチンでは、液体燃料用噴射時間ＴＡＵｍの値が基準噴射時間ＴＡＵＳ１よりも長いときにはガス燃料の噴射時間をより短くする側に、短いときにはガス燃料の噴射時間をより長くする側に、ガス燃料組成学習値ＬＣＡＬの値を徐々に更新している。そして、液体燃料用噴射時間ＴＡＵｍの値が基準噴射時間ＴＡＵＳ１から規定値γ以内の状態が規定時間継続した場合には、ガス燃料が再び補給されるまで、ガス燃料組成学習値ＬＣＡＬの値の更新を停止している。
【０１０１】
こうした本実施形態では、ガス燃料の補給後におけるガス燃料運転中に、サブ制御ユニット３５によって下記（１）〜（４）が行われる。
（１）液体燃料の噴射量に対する現在のシリンダー流入空気量の比が液体燃料の理論空燃比の想定値となる液体燃料の噴射時間を基準噴射時間ＴＡＵＳ１として求めること。
（２）メイン制御ユニット３４が演算した液体燃料用噴射時間ＴＡＵｍと上記（１）で求めた基準噴射時間ＴＡＵＳ１とを比較すること。
（３）上記（２）での比較の結果、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１よりも長い場合、ガス燃料の噴射時間をより短くするようにガス燃料組成学習値ＬＣＡＬの値を設定すること。
（４）上記（２）での比較の結果、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ１よりも短い場合、ガス燃料の噴射時間をより長くするようにガス燃料組成学習値ＬＣＡＬの値を設定すること。
【０１０２】
こうした本実施形態においても、ガス燃料組成学習値ＬＣＡＬの値は、第１実施形態の場合と同様に設定される。すなわち、本実施形態によっても、第１実施形態と同様の作用効果を奏することができる。
【０１０３】
（第３実施形態）
続いて、バイフューエルエンジンの空燃比制御装置の第３実施形態を、図８〜図１３を併せ参照して詳細に説明する。なお、本実施形態にあって、上述の各実施形態と共通する構成については、同一の符号を付してその詳細な説明は省略する。
【０１０４】
上記各実施形態の空燃比制御装置は、ガソリンを液体燃料として使用するバイフューエルエンジン１０に適用されていた。一方、近年には、純粋なガソリンに加え、ガソリンとエタノールとの混合燃料、および純粋なエタノールを液体燃料として使用可能なエンジンが実用されている。なお、以下では、それらすべてを混合燃料と記載する。すなわち、純粋なガソリンは、エタノール濃度が０％の混合燃料として、純粋なエタノールは、エタノール濃度が１００％の混合燃料として扱う。ちなみに、こうした混合燃料エンジンのハード構成は、燃料配管やインジェクターが混合燃料に対応したものとなっている以外、ガソリンエンジンとほぼ同じとなっている。
【０１０５】
一方、ガソリンとエタノールとでは理論空燃比が異なるため、混合燃料の理論空燃比は、そのエタノール濃度により変化する。そこで、こうした混合燃料エンジンでは、混合燃料の補給後に生じた制御空燃比のずれ分をエタノール濃度学習値として学習し、その結果を混合燃料の噴射時間に反映することで、エタノール濃度の違いに関わらず、好適な空燃比制御を可能としている。具体的には、混合燃料の補給が確認されたときには、空燃比学習値ＬＡＦの更新を一時停止し、その代わりにエタノール濃度学習値ＬＣＯＮを更新することで、補給された混合燃料のエタノール濃度の違いより生じた制御空燃比のずれ分をエタノール濃度学習値ＬＣＯＮに学習させている。
【０１０６】
そして、液体燃料用噴射時間ＴＡＵｍの演算に際し、その学習したエタノール濃度学習値ＬＣＯＮによる補正を適用するようにしている。このときの液体燃料用噴射時間ＴＡＵｍの演算は、下式（３）に従って行われる。
【０１０７】
【数３】
2016109030.tif 000005
こうした液体燃料組成学習を行う混合燃料エンジンにガス燃料供給システムを追加設置して、混合燃料を液体燃料として使用するバイフューエルエンジンを製造することが考えられる。こうしたバイフューエルエンジンに、上記各実施形態の組成学習制御をそのまま適用すると、次の問題が発生してしまう。
【０１０８】
図８に、そうした場合の空燃比制御の実行結果の一例を示す。なお、同図には、想定よりもエタノール濃度が高い混合燃料と、想定よりも高発熱量のガス燃料とが補給された後の空燃比制御の実行結果が示されている。
【０１０９】
上記混合燃料およびガス燃料の補給後、液体燃料運転モードでのバイフューエルエンジンの運転が開始されると、その開始直後に、液体燃料運転に使用される混合燃料のエタノール濃度の想定との相違に起因した制御空燃比の乱れが発生する。エタノールの単位質量当たりの発熱量は、ガソリンよりも小さく、理論空燃比もガソリンより小さいため、混合燃料の理論空燃比は、そのエタノール濃度が高いほどリーン側の値となる。よって、エタノール濃度が想定よりも高い混合燃料が使用されるこのときには、液体燃料運転の開始直後に、リーン側への制御空燃比のずれが発生する。
【０１１０】
メイン制御ユニット３４は、このずれに応じてエタノール濃度学習値ＬＣＯＮの学習を行う。その結果、エタノール濃度学習値ＬＣＯＮは、混合燃料のエタノール濃度の違いによる制御空燃比のずれを補償する値に設定され、空燃比学習値ＬＡＦは、それ以外の要因による制御空燃比のずれを補償する値とされる。
【０１１１】
時刻ｔ３０に、液体燃料運転からガス燃料運転に切り換えられると、制御空燃比のずれが発生する。この場合、補給されたガス燃料の組成の違いだけでなく、補給された液体燃料の組成の違いも、このときの制御空燃比のずれの要因となる。すなわち、混合燃料の噴射時間の指令値である液体燃料用噴射時間ＴＡＵｍには、エタノール濃度学習値ＬＣＯＮによる補正が適用されているが、この補正は、ガス燃料を使用するガス燃料運転では、その補正は本来不要な補正である。一方、ガス燃料用噴射時間ＴＡＵＧは、液体燃料用噴射時間ＴＡＵｍをガス燃料組成学習値ＬＣＡＬで補正して求められているため、その値には、エタノール濃度学習値ＬＣＯＮによる補正の結果が反映されてしまっている。そのため、ガス燃料運転への切り換え直後には、ガス燃料の組成の違いによる分と、混合燃料の組成（エタノール濃度）の違いによる分とを足した分の制御空燃比のずれが発生することになる。ちなみに、このときには、想定よりも高発熱量のガス燃料が使用されており、また、エタノール濃度学習値ＬＣＯＮは制御空燃比をリッチ側に補正する値となっているため、いずれの要因によってもリッチ側への制御空燃比のずれが生じる。
【０１１２】
その後の空燃比フィードバックにより、制御空燃比は、ガス燃料の理論空燃比に制御される。そして、制御空燃比が安定すると、空燃比学習値ＬＡＦが更新される。このときの空燃比学習値ＬＡＦは、ガス燃料運転への切り換え直後に発生した制御空燃比のずれの大きさに応じた量だけ更新される。
【０１１３】
ここで、混合燃料の組成の違いにより生じる制御空燃比のずれの補償に必要な噴射時間の補正値を「Δ１」、ガス燃料の組成の違いにより生じる制御空燃比のずれの補償に必要な噴射時間の補正値を「Δ２」、それ以外の要因により生じる制御空燃比のずれの補償に必要な補正値を「Δ３」とする。このとき、上記の空燃比学習値ＬＡＦの更新は、Δ１とΔ２との合計の分、その値をリーン側に変化させるものとなる。なお、同図は、Δ３が「０」の場合、すなわち空燃比学習値ＬＡＦの適正値が「０」の場合を示している。
【０１１４】
さらにその後の時刻ｔ３１に、アクセルペダルの踏み込みによりスロットル開度ＴＡが増大されると、ガス燃料組成学習値ＬＣＡＬの更新が開始される。このときのガス燃料組成学習値ＬＣＡＬは、リーン側にΔ２だけ、その値が更新される。
【０１１５】
一方、ガス燃料組成学習値ＬＣＡＬが更新されると、それに併せて空燃比学習値ＬＡＦの値も更新される。これにより、空燃比学習値ＬＡＦの値は、ガス燃料組成学習値ＬＣＡＬの更新量分、すなわちΔ２だけ、リッチ側に変化する。したがって、このガス燃料運転中に空燃比学習値ＬＡＦは、最終的に、その開始時の値よりもΔ１だけ、すなわちエタノール濃度学習値ＬＣＯＮの分だけリーン側に変化した値となる。すなわち、このときの液体燃料用噴射時間ＴＡＵｍには、空燃比学習値ＬＡＦによるリーン側へのΔ１分の補正と、エタノール濃度学習値ＬＣＯＮによるリッチ側へのΔ１分の補正とが行われることに、すなわちエタノール濃度学習値ＬＣＯＮによる補正が空燃比学習値ＬＡＦによる補正により相殺されてしまうことになる。ガス燃料運転中に限れば、エタノール濃度学習値ＬＣＯＮによる補正は本来不要であるため、この結果は妥当なものである。
【０１１６】
しかしながら、時刻ｔ３２に、ガス燃料運転から再び液体燃料運転に切り換えられると、このときには必要なエタノール濃度学習値ＬＣＯＮによる補正が実質的に行われないことになる。そのため、液体燃料運転の開始直後に、混合燃料のエタノール濃度の違いに応じたリーン側への制御空燃比のずれが再び発生してしまう。しかも、この液体燃料運転の間には、空燃比学習値ＬＡＦが本来の適正値に戻されるため、その後の時刻ｔ３３におけるガス燃料運転への切り換え時には、エタノール濃度学習値ＬＣＯＮによる補正が有効となり、その分が過補正となって、リッチ側への制御空燃比のずれが発生してしまう。すなわち、液体燃料運転の開始時には、必要なエタノール濃度学習値ＬＣＯＮによる補正が行われず、ガス燃料運転の開始時には、不要なエタノール濃度学習値ＬＣＯＮによる補正が有効となるという、ちぐはぐな結果となる。
【０１１７】
この結果を回避するには、エタノール濃度学習の状況を考慮して上述の組成学習制御を行う必要がある。しかしながら、エタノール濃度学習値ＬＣＯＮは、空燃比フィードバック補正値ＦＡＦや空燃比学習値ＬＡＦと同様に、メイン制御ユニット３４の内部での演算処理で使用されるだけで、外部には出力されないため、サブ制御ユニット３５には、その現在の値を確認する術はない。そこで、本実施形態では、サブ制御ユニット３５は、混合燃料運転中に、メイン制御ユニット３４から受信した液体燃料用噴射時間ＴＡＵｍから、エタノール濃度学習値ＬＣＯＮの現在値を独自に推定し、その結果を組成学習制御に反映することで、上述のような運転モードＭＯＤＥの切り換え毎の制御空燃比のずれを抑えるようにしている。
【０１１８】
図９および図１０は、そうした本実施形態における組成学習制御ルーチンのフローチャートを示す。同ルーチンの処理は、バイフューエルエンジンの運転中、サブ制御ユニット３５によって規定の制御周期毎に繰り返し実行される。
【０１１９】
さて、本ルーチンの処理が開始されると、まずステップＳ３００において、現在のバイフューエルエンジンが液体燃料運転中であるか、ガス燃料運転中であるかが判定される。ここで、液体燃料運転中であれば（ＹＥＳ）、ステップＳ３０１に、ガス燃料運転中であれば（ＮＯ）、図１０のステップＳ１００に、それぞれ処理が進められる。
【０１２０】
液体燃料運転中であって、処理がステップＳ３０１に進められると、そのステップＳ３０１において、混合燃料の補給が行われたか否かが判定される。この判定は、混合燃料が貯留される燃料タンクの液面レベルを検出する燃料ゲージの検出結果に基づき、液面レベルの上昇が確認されたか否かによって行われる。
【０１２１】
ここで、燃料タンクの液面レベルの上昇が確認され、混合燃料の補給が行われたと判定されれば（ＹＥＳ）、ステップＳ３０２に処理が進められ、そのステップＳ３０２において、液体燃料組成学習値ＬＣＯＮ’用の学習完了フラグＦＬＡＧ２がクリア（ＯＦＦ）された後、ステップＳ３０３に処理が進められる。一方、液面レベルの上昇が確認されず、混合燃料の補給が行われていないと判定されれば（ＮＯ）、そのままステップＳ３０３に処理が進められる。
【０１２２】
ステップＳ３０３に処理が進められると、そのステップＳ３０３において、液体燃料組成学習値ＬＣＯＮ’の更新条件が成立しているか否かが判定される。そして、更新条件が成立していれば（ＹＥＳ）、ステップＳ３０４に処理が進められ、成立していなければ（ＮＯ）、そのまま今回の本ルーチンの処理が終了される。なお、液体燃料組成学習値ＬＣＯＮ’は、メイン制御ユニット３４が空燃比制御に使用するエタノール濃度学習値ＬＣＯＮの現在値を、サブ制御ユニット３５が推定した値である。また、その更新条件は、下記要件（イ）、（ロ）、（ニ）のすべてが満たされるときに成立する。なお、要件（イ）、（ロ）は、ガス燃料組成学習値ＬＣＡＬの更新条件と共通の要件となっている。
（イ）エンジン回転速度ＮＥが、規定値α１よりも高く、規定値α２よりも低いこと。
（ロ）スロットル開度ＴＡが、規定値β１よりも大きく、規定値β２よりも小さいこと。
（ニ）学習完了フラグＦＬＡＧ２がクリア（ＯＦＦ）されていること。
【０１２３】
ステップＳ３０４に処理が進められると、そのステップＳ３０４において、基準噴射時間ＴＡＵＳ２が演算される。基準噴射時間ＴＡＵＳ２は、設定時に想定した標準的な組成の混合燃料の使用時に、混合燃料の噴射量に対する現在のシリンダー流入空気量の比が上記混合燃料の理論空燃比の想定値となる混合燃料の噴射時間として演算される。こうした基準噴射時間ＴＡＵＳ２は、現在のシリンダー流入空気量さえ確認できれば、演算で求めることができる。本実施形態では、液体燃料組成学習値ＬＣＯＮ’の更新が、燃焼室１１内の吸気の充填率が飽和するスロットル開度域にあるときに限定されており、このときには、エンジン回転速度ＮＥにより、シリンダー流入空気量が一義に定まる。そのため、ここでは、基準噴射時間ＴＡＵＳ２を、エンジン回転速度ＮＥに基づき演算している。
【０１２４】
図１１は、このときの基準噴射時間ＴＡＵＳ２の演算に使用される演算マップにおける、エンジン回転速度ＮＥと基準噴射時間ＴＡＵＳ２との関係を示している。この演算マップは、エンジン回転速度ＮＥに基づく１次元マップとして構成され、予めサブ制御ユニット３５に記憶されている。
【０１２５】
なお、燃焼室１１内の吸気の充填率が飽和するスロットル開度域以外でも、液体燃料組成学習値ＬＣＯＮ’の更新を行いたい場合、すなわちその更新条件における要件（ロ）を省きたい場合には、次のように基準噴射時間ＴＡＵＳ２を演算するとよい。すなわち、シリンダー流入空気量は、エンジン回転速度ＮＥおよびエンジン負荷から求めることが可能なため、基準噴射時間ＴＡＵＳ１の演算を、エンジン回転速度ＮＥとエンジン負荷とに基づき行うようにするとよい。この場合のエンジン負荷の指標値としては、吸入空気量ＧＡやスロットル開度ＴＡ、燃料噴射量などを用いることができる。
【０１２６】
図１２は、そうした場合の基準噴射時間ＴＡＵＳ２の演算に使用する演算マップの一例における、エンジン回転速度ＮＥおよびスロットル開度ＴＡと基準噴射時間ＴＡＵＳ１との関係を示している。ちなみに、図１１および図１２には、図４および図５に示した基準噴射時間ＴＡＵＳ１についての同様の関係が点線で併せ示されている。本実施形態では、標準的な組成のガス燃料として低発熱量のガス燃料を想定しているのに対して、標準的な組成の混合燃料としては高エタノール濃度の混合燃料を想定している。そのため、基準噴射時間ＴＡＵＳ２は、基準噴射時間ＴＡＵＳ１よりも全体的に長い時間となっている。
【０１２７】
続いて、ステップＳ３０５において、こうした基準噴射時間ＴＡＵＳ２に対する液体燃料用噴射時間ＴＡＵｍの比が、噴射時間比ＤＣＯＮの値として設定される。液体燃料運転中の制御空燃比のずれが液体燃料の組成の違いのみによって生じるとすると、制御空燃比が理論空燃比となったときの噴射時間比ＤＣＯＮの値は、液体燃料の理論空燃比の想定値と現状値との比となる。この場合、液体燃料組成学習値ＬＣＯＮ’を、噴射時間比ＤＣＯＮから「１」を引いた値に設定すれば、その値をエタノール濃度学習値ＬＣＯＮと概ね一致させられる。ただし、サブ制御ユニット３５は、制御空燃比が理論空燃比となっているかどうかを直接確認することはできないため、どの時点の噴射時間比ＤＣＯＮの値を液体燃料組成学習値ＬＣＯＮ’に設定して良いのかの判断を行えない。
【０１２８】
そのため、サブ制御ユニット３５は、上述のガス燃料組成学習値ＬＣＡＬの場合と同様の態様で液体燃料組成学習値ＬＣＯＮ’を更新することで、その値の設定を行っている。すなわち、噴射時間比ＤＣＯＮから液体燃料組成学習値ＬＣＯＮ’を引いた値が、上記γを「１」に加えた値よりも大きいときには（Ｓ３０６：ＹＥＳ）、液体燃料組成学習値ＬＣＯＮ’の値がそれまでの値よりも規定値ιだけ小さい値に更新された後（Ｓ３０７）、今回の本ルーチンの処理が終了される。また、噴射時間比ＤＣＯＮから液体燃料組成学習値ＬＣＯＮ’を引いた値が、上記γを「１」から引いた値よりも小さいときには（Ｓ３０８：ＹＥＳ）、液体燃料組成学習値ＬＣＯＮ’の値がそれまでの値よりも規定値ιだけ大きい値に更新された後（Ｓ３０９）、今回の本ルーチンの処理が終了される。なお、更新された液体燃料組成学習値ＬＣＯＮ’の値は、不揮発性メモリーに記憶され、エンジン停止中も保持される。
【０１２９】
一方、噴射時間比ＤＣＯＮの値が、「１」から上記γ以内の値のときには（Ｓ３０６：ＮＯ、かつＳ３０８：ＮＯ）、推定液体燃料組成学習安定カウンターＣＯＵＮＴ２がインクリメントされ（Ｓ３１０）、その値が規定値ξを超えるか否かが判定される（Ｓ３１１）。ここで、推定液体燃料組成学習安定カウンターＣＯＵＮＴ２が規定値ξを超えていれば（ＹＥＳ）、ステップＳ３１２において学習完了フラグＦＬＡＧ２がセット（ＯＮ）された後、超えていなければ（ＮＯ）、そのまま、今回の処理が終了される。
【０１３０】
なお、上記噴射時間比ＤＣＯＮの値は、液体燃料用噴射時間ＴＡＵｍの値が基準噴射時間ＴＡＵＳ２と等しいときに「１」となる。すなわち、本ルーチンでは、液体燃料用噴射時間ＴＡＵｍと液体燃料組成学習値ＬＣＯＮ’との和が基準噴射時間ＴＡＵＳ２よりも長いときにはガス燃料の噴射時間をより長くする側に、それらの和が基準噴射時間ＴＡＵＳ２よりも短いときにはガス燃料の噴射時間をより短くする側に、液体燃料組成学習値ＬＣＯＮ’の値を徐々に更新している。そして、液体燃料用噴射時間ＴＡＵｍと液体燃料組成学習値ＬＣＯＮ’との和が基準噴射時間ＴＡＵＳ２から規定値γ以内の状態が規定時間継続した場合には、混合燃料が再び補給されるまで、液体燃料組成学習値ＬＣＯＮ’の値の更新を停止している。
【０１３１】
これに対して、ガス燃料運転中であるときには、図１０のステップＳ１００以降の処理が実行される。なお、図１０のステップＳ１００〜ステップＳ１１２の処理は、図３に示した第１実施形態の組成学習制御ルーチンのステップＳ１００〜ステップＳ１１２の処理と概ね同じとなっている。すなわち、本ルーチンにおいても、ガス燃料組成学習値ＬＣＡＬの更新が、第１実施形態の場合と同様に行われる。
【０１３２】
ただし、本ルーチンでは、図２のステップＳ１０２の処理に替えて、次のステップＳ１０２’の処理が行われる。このステップＳ１０２’では、メイン制御ユニット３４の液体燃料用噴射時間ＴＡＵｍを、ガス燃料組成学習値ＬＣＡＬと液体燃料組成学習値ＬＣＯＮ’とにより補正した値が、ガス燃料用噴射時間ＴＡＵＧの値に設定される。ここでのガス燃料用噴射時間ＴＡＵＧの設定は、下式（４）に従って行われる。
【０１３３】
【数４】
2016109030.tif 000006
なお、ガス燃料用噴射時間ＴＡＵＧの演算に際しての液体燃料組成学習値ＬＣＯＮ’による補正は、液体燃料用噴射時間ＴＡＵｍの演算に際してのエタノール濃度学習値ＬＣＯＮによる補正とは逆の側に行われる。すなわち、液体燃料用噴射時間ＴＡＵｍに対するエタノール濃度学習値ＬＣＯＮの補正は、使用中の混合燃料のエタノール濃度が想定よりも低い場合にはリーン側に行われ、高い場合にはリッチ側に行われる。一方、ガス燃料用噴射時間ＴＡＵＧに対する液体燃料組成学習値ＬＣＯＮ’の補正は、使用中の混合燃料のエタノール濃度が想定よりも低い場合にはリッチ側に行われ、高い場合にはリーン側に行われる。
【０１３４】
以上のように本実施形態では、液体燃料運転中の液体燃料用噴射時間ＴＡＵｍから、メイン制御ユニット３４が設定したエタノール濃度学習値ＬＣＯＮをサブ制御ユニット３５側で推定している。そして、その推定した値（液体燃料組成学習値ＬＣＯＮ’）をガス燃料用噴射時間ＴＡＵＧから予め差し引いておくようにしている。そして、これにより、ガス燃料用噴射時間ＴＡＵＧの演算時に、液体燃料用噴射時間ＴＡＵｍに適用されたエタノール濃度学習値ＬＣＯＮによる補正分を相殺して、ガス燃料用噴射時間ＴＡＵＧにエタノール濃度学習値ＬＣＯＮが反映されないようにしている。
【０１３５】
次に、こうした本実施形態の組成学習制御ルーチンの処理がバイフューエルエンジンの空燃比制御の実行結果に与える作用を説明する。
図１３に、本実施形態のバイフューエルエンジンの空燃比制御装置による空燃比制御の実行結果の一例を示す。なお、同図には、想定よりもエタノール濃度が高い混合燃料と、想定よりも高発熱量のガス燃料とが補給された後の空燃比制御の実行結果が示されている。
【０１３６】
混合燃料のエタノール濃度が想定よりも高い場合、液体燃料運転中の制御空燃比を理論空燃比とするため、より長い噴射時間が必要となる。このときのメイン制御ユニット３４では、エタノール濃度学習値ＬＣＯＮがリッチ側の値に、すなわち液体燃料用噴射時間ＴＡＵｍを増大側に補正する値に設定される。
【０１３７】
こうした液体燃料運転中の時刻ｔ４０において、アクセルペダルの踏み込み（アクセル操作量ＡＣＣＰの増大）により、スロットル開度ＴＡが拡大されると、サブ制御ユニット３５により、液体燃料組成学習値ＬＣＯＮ’の更新が行われる。このときの液体燃料用噴射時間ＴＡＵｍは、上記のように増大側に補正されているため、液体燃料組成学習値ＬＣＯＮ’の更新はリッチ側に行われ、最終的には、現状のエタノール濃度学習値ＬＣＯＮとほぼ同じ値とされる。
【０１３８】
その後の時刻ｔ４１には、運転モードＭＯＤＥがガス燃料運転モードに切り換えられる。このときには、想定よりも高発熱量のガス燃料が使用されているため、理論空燃比に対する制御空燃比のリッチ側へのずれが生じる。ただし、このときのガス燃料用噴射時間ＴＡＵＧには、先に更新された液体燃料組成学習値ＬＣＯＮ’によるリーン側への補正が適用されており、それにより、液体燃料用噴射時間ＴＡＵｍへのエタノール濃度学習値ＬＣＯＮのリッチ側への補正分が相殺される。そしてその結果、ガス燃料運転時には不要なエタノール濃度学習値ＬＣＯＮによってガス燃料用噴射時間ＴＡＵＧが過補正された状態とならないようになる。そのため、このときの制御空燃比のずれは、ガス燃料の組成の違いに起因するもののみとなり、比較的小さなものに留まる。
【０１３９】
その後、このときに制御空燃比のずれを補償すべく、空燃比フィードバックが行われ、液体燃料用噴射時間ＴＡＵｍが、ひいてはガス燃料用噴射時間ＴＡＵＧがリーン側に補正される。そして、制御空燃比が安定すると、空燃比学習値ＬＡＦがリーン側に更新される。
【０１４０】
こうしたガス燃料運転中の時刻ｔ４２において、アクセルペダルの踏み込み（アクセル操作量ＡＣＣＰの増大）により、スロットル開度ＴＡが拡大されると、基準噴射時間ＴＡＵＳ１に対するガス燃料用噴射時間ＴＡＵＧの比（噴射時間比ＤＣＡＬ）に応じてガス燃料組成学習値ＬＣＡＬの更新が行われる。
【０１４１】
このときのガス燃料用噴射時間ＴＡＵＧは、高発熱量のガス燃料の使用による制御空燃比のリッチ側へのずれを補償するため、リーン側に補正されている。そのため、このときのガス燃料組成学習値ＬＣＡＬは、リーン側の値に更新される。なお、このときの空燃比フィードバック補正値ＦＡＦは、更新の結果、ガス燃料組成学習値ＬＣＡＬの値がリーン側に変化した分、その値がリッチ側に変化する。そして、ガス燃料組成学習値ＬＣＡＬの更新が完了して、空燃比フィードバック補正値ＦＡＦの値が安定すると、その値の分、空燃比学習値ＬＡＦがリッチ側に更新される。
【０１４２】
なお、この場合には、ガス燃料運転の開始時に発生する制御空燃比のずれは、ガス燃料の組成の違いよるもののみとなっている。そのため、その制御空燃比のずれを補償するための空燃比フィードバックに応じた空燃比学習値ＬＡＦのリーン側への更新量と、ガス燃料組成学習値ＬＣＡＬの更新に応じた空燃比学習値ＬＡＦのリッチ側への更新量とは、ほぼ同じ量となる。したがって、ガス燃料運転中に空燃比学習値ＬＡＦの値は、ガス燃料運転の開始前とほぼ同じ値に戻ることになる。
【０１４３】
したがって、その後の時刻ｔ４３において運転モードＭＯＤＥが液体燃料運転モードに再び切り換えられたときには、空燃比学習値ＬＡＦは、液体燃料運転における適正な値となっている。そのため、このときの制御空燃比は、ガス燃料の理論空燃比から混合燃料の理論空燃比へと円滑に移行される。さらに、その後の時刻ｔ４４において運転モードＭＯＤＥが再びガス燃料運転モードに切り換えられたときにも、ガス燃料組成学習値ＬＣＡＬの学習が完了しているため、ガス燃料の理論空燃比から混合燃料の理論空燃比へと制御空燃比が円滑に移行される。
【０１４４】
なお、本実施形態では、ガス燃料用噴射時間ＴＡＵＧの値は、ガスインジェクター２８に指令されるガス燃料噴射時間と等価となる混合燃料の噴射時間として演算されている。こうしたガス燃料用噴射時間ＴＡＵＧの値を、実際にガスインジェクター２８に指令されるガス燃料噴射時間として演算する場合には、上記組成学習制御ルーチンにおける液体燃料組成学習値ＬＣＯＮ’の値の更新の仕方を次のように変更する必要がある。すなわち、そうした場合には、液体燃料組成学習値ＬＣＯＮ’の値を等価の混合燃料の噴射時間に換算した値を用いてステップＳ３０６およびステップＳ３０８での判定を行うようにする必要がある。こうした場合には、液体燃料組成学習値ＬＣＯＮ’の値を混合燃料（液体燃料）の噴射時間に換算した値が、液体燃料用噴射時間ＴＡＵｍに対する基準噴射時間ＴＡＵＳ２の差から規定値γ以内の値となった状態が規定時間継続した場合、混合燃料が再び補給されるまで、液体燃料組成学習値ＬＣＯＮ’の更新が停止されることになる。
【０１４５】
以上説明した本実施形態のバイフューエルエンジンの空燃比制御装置によれば、上記（１）〜（４）の効果に加え、更に次の効果を奏することができる。
（５）本実施形態では、サブ制御ユニット３５は、ガス燃料の噴射時間の演算値に対して液体燃料組成学習値ＬＣＯＮ‘による補正を行うとともに、液体燃料（混合燃料）の補給後の液体燃料運転中に、下記（ａ）〜（ｄ）を行っている。
（ａ）液体燃料の噴射量に対する現在のシリンダー流入空気量の比が液体燃料の理論空燃比の想定値となる液体燃料の噴射時間を基準噴射時間ＴＡＵＳ２として求めること。
（ｂ）上記（ａ）で求めた基準噴射時間ＴＡＵＳ２とメイン制御ユニット３４が演算した液体燃料の噴射時間の演算値（液体燃料用噴射時間ＴＡＵｍ）と比較すること。
（ｃ）上記（ｂ）での比較の結果、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ２よりも長い場合、ガス燃料の噴射時間をより長くするように液体燃料組成学習値ＬＣＯＮ’の値を設定すること。
（ｄ）上記（ｂ）での比較の結果、液体燃料用噴射時間ＴＡＵｍが基準噴射時間ＴＡＵＳ２よりも短い場合、ガス燃料の噴射時間をより短くするように液体燃料組成学習値ＬＣＯＮ’の値を設定すること。
【０１４６】
これにより、液体燃料の組成の違いによる制御空燃比のずれの影響のガス燃料用噴射時間ＴＡＵＧへの反映が抑制され、その影響によるガス燃料運転および液体燃料運転の切り換えに際しての制御空燃比の乱れを好適に抑えられる。したがって、組成の異なる液体燃料が使用されても、空燃比を好適に制御することができる。
【０１４７】
（６）本実施形態では、上記（ｃ）における液体燃料組成学習値ＬＣＯＮ’の値の設定を、ガス燃料の噴射時間をより長くする側に、同液体燃料組成学習値ＬＣＯＮ’の値を徐々に更新することで行っている。また、上記（ｄ）における液体燃料組成学習値ＬＣＯＮ’の値の設定を、ガス燃料の噴射時間をより短くする側に、同液体燃料組成学習値ＬＣＯＮ’の値を徐々に更新することで行っている。そして、液体燃料用噴射時間ＴＡＵｍと液体燃料組成学習値ＬＣＯＮ’との和が基準噴射時間ＴＡＵＳ２から規定値γ以内の状態が規定時間継続した場合には、混合燃料が再び補給されるまで、液体燃料組成学習値ＬＣＯＮ’の値の更新を停止している。すなわち、液体燃料組成学習値ＬＣＯＮ’の値を液体燃料の噴射時間に換算した値が、液体燃料用噴射時間ＴＡＵｍの演算値に対する基準噴射時間ＴＡＵＳ２の差から規定値以内の値となった状態が規定時間継続した場合、混合燃料が再び補給されるまで、液体燃料組成学習値ＬＣＯＮ’の更新を停止している。そのため、現状の制御空燃比を直接確認することができなくても、制御空燃比が理論空燃比となっているときの噴射時間比ＤＣＯＮに基づく適正な値を液体燃料組成学習値ＬＣＯＮ’として学習することができる。また、一旦、適正な値が学習された後は、再び液体燃料（混合燃料）が補給されるまで、その値が固定されるため、混合燃料の組成以外の要因による制御空燃比のずれ分の液体燃料組成学習値ＬＣＯＮ’への反映を好適に抑えることが可能となる。
【０１４８】
（他の実施形態）
上記各実施形態では、ガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’の更新を、基準噴射時間ＴＡＵＳ１,ＴＡＵＳ２に対する噴射時間の演算値（ガス燃料用噴射時間ＴＡＵＧ、液体燃料用噴射時間ＴＡＵｍ）の比に基づいて行うようにしていた。なお、それらの更新は、基準噴射時間ＴＡＵＳ１,ＴＡＵＳ２に対する噴射時間の演算値（ガス燃料用噴射時間ＴＡＵＧ、液体燃料用噴射時間ＴＡＵｍ）の差に基づいても同様に行うことが可能である。
【０１４９】
図１４は、第１実施形態でのガス燃料組成学習値ＬＣＡＬの更新を、基準噴射時間ＴＡＵＳ１とガス燃料用噴射時間ＴＡＵＧとの差（噴射時間差ΔＣＡＬ）に基づき行うようにした場合の、先の図３の組成学習制御ルーチンのフローチャートの変更部分を示している。この場合、最終的にガス燃料組成学習値ＬＣＡＬが、噴射時間差ΔＣＡＬを基準噴射時間ＴＡＵＳ１で割った値の近傍の値となるように、その更新が行われる。
【０１５０】
この場合、先の図３の組成学習制御ルーチンのステップＳ１０４において基準噴射時間ＴＡＵＳ１が演算された後、同図１４のステップＳ１５０に処理が進められる。そして、そのステップＳ１５０において、基準噴射時間ＴＡＵＳ１とガス燃料用噴射時間ＴＡＵＧとの差が、噴射時間差ΔＣＡＬの値として設定される。
【０１５１】
ここで、噴射時間差ΔＣＡＬが、ガス燃料組成学習値ＬＣＡＬに規定値γを加えた値に基準噴射時間ＴＡＵＳ１を乗算した値（＝（ＬＣＡＬ＋γ）×ＴＡＵＳ１）よりも大きければ（Ｓ１５１：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも規定値δだけ小さい値に更新された後（Ｓ１５２）、今回の本ルーチンの処理が終了される。また、噴射時間差ΔＣＡＬが、ガス燃料組成学習値ＬＣＡＬから規定値γを引いた値に基準噴射時間ＴＡＵＳ１を乗算した値（＝（ＬＣＡＬ−γ）×ＴＡＵＳ１）よりも小さければ（Ｓ１５３：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも上記δだけ大きい値に更新された後（Ｓ１５４）、今回の本ルーチンの処理が終了される。一方、噴射時間差ΔＣＡＬを基準噴射時間ＴＡＵＳ１で割った値が、そのときのガス燃料組成学習値ＬＣＡＬから規定値γ以内の値であるときには（Ｓ１５１：ＮＯ、かつＳ１５３：ＮＯ）、先の図３のステップＳ１１０に処理が進められる。
【０１５２】
図１５は、第２実施形態でのガス燃料組成学習値ＬＣＡＬの更新を、基準噴射時間ＴＡＵＳ１と液体燃料用噴射時間ＴＡＵｍとの差（噴射時間差ΔＣＡＬ’）に基づき行うようにした場合の、先の図７の組成学習制御ルーチンのフローチャートの変更部分を示している。この場合、最終的に噴射時間差ΔＣＡＬ’が「０」の近傍の値となるように、ガス燃料組成学習値ＬＣＡＬの更新が行われる。
【０１５３】
この場合、先の図７の組成学習制御ルーチンのステップＳ２０３において基準噴射時間ＴＡＵＳ１が演算された後、同図１５のステップＳ２５０に処理が進められる。そして、そのステップＳ２５０において、基準噴射時間ＴＡＵＳ１と液体燃料用噴射時間ＴＡＵｍとの差が噴射時間差ΔＣＡＬ’の値として設定される。
【０１５４】
ここで、噴射時間差ΔＣＡＬ’が上記γよりも大きければ（Ｓ２５１：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも規定値δだけ小さい値に更新された後（Ｓ２５２）、先の図７のステップＳ２１２に処理が進められる。また、噴射時間差ΔＣＡＬ’が−γよりも小さければ（Ｓ２５３：ＹＥＳ）、ガス燃料組成学習値ＬＣＡＬの値がそれまでの値よりも上記δだけ大きい値に更新された後（Ｓ２５４）、先の図７のステップＳ２１２に処理が進められる。一方、噴射時間差ΔＣＡＬが「０」からγ以内の値のときには（Ｓ２５１：ＮＯ、かつＳ２５３：ＮＯ）、先の図７のステップＳ２０９に処理が進められる。
【０１５５】
図１６は、第３実施形態での液体燃料組成学習値ＬＣＯＮ’を、基準噴射時間ＴＡＵＳ２と液体燃料用噴射時間ＴＡＵｍとの差（噴射時間差ΔＣＯＮ）に基づき行うようにした場合の、先の図９の組成学習制御ルーチンのフローチャートの変更部分を示している。この場合、最終的に液体燃料組成学習値ＬＣＯＮ’が、噴射時間差ΔＣＯＮを基準噴射時間ＴＡＵＳ２で割った値の近傍の値となるように、その更新が行われる。
【０１５６】
この場合、先の図９のステップＳ３０４において基準噴射時間ＴＡＵＳ２が演算された後、同図１６のステップＳ３５０に処理が進められる。そして、そのステップＳ３５０において、基準噴射時間ＴＡＵＳ２と液体燃料用噴射時間ＴＡＵｍとの差が、噴射時間差ΔＣＯＮの値として設定される。
【０１５７】
ここで、噴射時間差ΔＣＯＮが、液体燃料組成学習値ＬＣＯＮ’に規定値γを加えた値に基準噴射時間ＴＡＵＳ２を乗算した値（＝（ＬＣＯＮ’＋γ）×ＴＡＵＳ２）よりも大きければ（Ｓ３５１：ＹＥＳ）、液体燃料組成学習値ＬＣＯＮ’の値がそれまでの値よりも規定値δだけ小さい値に更新される（Ｓ３５２）。また、噴射時間差ΔＣＯＮが、液体燃料組成学習値ＬＣＯＮ’から規定値γを引いた値に基準噴射時間ＴＡＵＳ２を乗算した値（＝（ＬＣＯＮ’−γ）×ＴＡＵＳ２）よりも小さければ（Ｓ３５３：ＹＥＳ）、液体燃料組成学習値ＬＣＯＮ’の値がそれまでの値よりも上記δだけ大きい値に更新される（Ｓ３５４）。これらの場合、液体燃料組成学習値ＬＣＯＮ’の更新後、今回の本ルーチンの処理が終了される。一方、噴射時間差ΔＣＯＮを基準噴射時間ＴＡＵＳ２で割った値が、そのときの液体燃料組成学習値ＬＣＯＮ’から規定値γ以内の値であるときには（ＳＳ３５１：ＮＯ、かつＳ３５３：ＮＯ）、先の図９のステップＳ３１０に処理が進められる。
【０１５８】
これらのように、噴射時間差ΔＣＡＬ，ΔＣＡＬ’や噴射時間差ΔＣＯＮに基づき、ガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’の更新を行った場合にも、最終的に得られる結果は、噴射時間比ＤＣＡＬ，ＤＣＡＬ’や噴射時間比ＤＣＯＮに基づく場合と同じである。したがって、これらのように更新を行った場合にも、上記各実施形態と同様の作用効果を奏することができる。
【０１５９】
さらに、上記各実施形態は以下のように変更して実施することもできる。
・第１実施形態においてサブ制御ユニット３５は、上記（い）〜（に）を行って、ガス燃料組成学習値ＬＣＡＬの値を使用中のガス燃料の組成に応じた適切な値へと更新するようにしていた。以下のように処理を行えば、上記（は）および（に）のいずれかを行わずに、同様のガス燃料組成学習値ＬＣＡＬの値の更新を行うことができる。すなわち、ガス燃料組成学習値ＬＣＡＬが取り得る値の範囲の最大値または最小値のいずれかを、同ガス燃料組成学習値ＬＣＡＬの初期値に設定する。ガス燃料の補給が確認されたときに、ガス燃料組成学習値ＬＣＡＬの値を初期値に設定する。ガス燃料組成学習値ＬＣＡＬによる補正前のガス燃料用噴射時間ＴＡＵＧ（液体燃料用噴射時間ＴＡＵｍ）と上記（い）で求めた基準噴射時間ＴＡＵＳ１とを比較し、液体燃料用噴射時間ＴＡＵｍの値が基準噴射時間ＴＡＵＳ１の値に十分近づくまで、ガス燃料組成学習値ＬＣＡＬの値を初期値から減少（初期値に最大値を設定した場合）または増大（初期値に最小値を設定した場合）させる。こうした場合、上記（い）および（ろ）を行うとともに、上記（は）および（に）のいずれかを行うことで、ガス燃料の組成の違いに起因した、ガス燃料運転および液体燃料運転の切り換えに際しての制御空燃比の乱れを抑えられる。
【０１６０】
・第２実施形態においてサブ制御ユニット３５は、上記（１）〜（４）を行って、ガス燃料組成学習値ＬＣＡＬの値を使用中のガス燃料の組成に応じた適切な値へと更新するようにしていた。この場合にも、以下のように処理を行えば、上記（３）および（４）のいずれかを行わずに、同様のガス燃料組成学習値ＬＣＡＬの値の更新を行うことができる。すなわち、ガス燃料組成学習値ＬＣＡＬが取り得る値の範囲の最大値または最小値のいずれかを、同ガス燃料組成学習値ＬＣＡＬの初期値に設定する。ガス燃料の補給が確認されたときに、ガス燃料組成学習値ＬＣＡＬの値を初期値に設定する。そして、液体燃料用噴射時間ＴＡＵｍと上記（１）で求めた基準噴射時間ＴＡＵＳ１とを比較し、液体燃料用噴射時間ＴＡＵｍの値が基準噴射時間ＴＡＵＳ１の値に十分近づくまで、ガス燃料組成学習値ＬＣＡＬの値を初期値から減少（初期値に最大値を設定した場合）または増大（初期値に最小値を設定した場合）させる。こうした場合、上記（１）および（２）を行うとともに、上記（３）および（４）のいずれかを行うことで、ガス燃料の組成の違いに起因した、ガス燃料運転および液体燃料運転の切り換えに際しての制御空燃比の乱れを抑えられる。
【０１６１】
・第３実施形態においてサブ制御ユニット３５は、上記（ａ）〜（ｄ）を行って、液体燃料組成学習値ＬＣＯＮ’の値を使用中の液体燃料の組成に応じた適切な値へと更新するようにしていた。以下のように処理を行えば、上記（ｃ）および（ｄ）のいずれかを行わずに、同様の液体燃料組成学習値ＬＣＯＮ’の値の更新を行うことができる。すなわち、液体燃料組成学習値ＬＣＯＮ’が取り得る値の範囲の最大値または最小値のいずれかを、同液体燃料組成学習値ＬＣＯＮ’の初期値に設定する。液体燃料の補給が確認されたときに、液体燃料組成学習値ＬＣＯＮ’の値を初期値に設定する。基準噴射時間ＴＡＵＳ２と液体燃料用噴射時間ＴＡＵｍとを比較し、両者が十分近づくまで、液体燃料組成学習値ＬＣＯＮ’の値を初期値から減少（初期値に最大値を設定した場合）または増大（初期値に最小値を設定した場合）させる。こうした場合、上記（ａ）および（ｂ）を行うとともに、上記（ｃ）および（ｄ）のいずれかを行うことで、液体燃料の組成の違いに起因した、ガス燃料運転および液体燃料運転の切り換えに際しての制御空燃比の乱れを抑えられる。
【０１６２】
・上記実施形態では、実際にガスインジェクター２８に指令する噴射時間と等価のガソリンの噴射時間として求められたガス燃料用噴射時間ＴＡＵＧを用いてガス燃料組成学習値ＬＣＡＬの値を設定していたが、ガスインジェクター２８に実際に指令する噴射時間を用いてその設定を行うようにしてもよい。その場合、基準噴射時間ＴＡＵＳ１は、想定した組成のガス燃料の使用時における、現在の燃焼室１１の吸気の充填率での制御空燃比を理論空燃比とするために必要なガス燃料の噴射時間として求める必要がある。
【０１６３】
・第３実施形態では、メイン制御ユニット３４が学習したエタノール濃度学習値ＬＣＯＮを、サブ制御ユニット３５がその推定値として液体燃料組成学習値ＬＣＯＮ’を学習してガス燃料用噴射時間ＴＡＵＧを補正するようにしていた。なお、メイン制御ユニット３４がエタノール濃度学習を行わない場合にも、こうした液体燃料組成学習値ＬＣＯＮ’の学習は、同様の効果を発揮する。すなわち、メイン制御ユニット３４がエタノール濃度学習を行っていなくても、液体燃料の組成の違いに起因した制御空燃比のずれが生じれば、エタノール濃度学習値ＬＣＯＮ分が空燃比学習値ＬＡＦに取り込まれる。そして、ガス燃料運転時には、その取り込まれた分の補正が過補正となるため、ガス燃料運転と液体燃料運転の切り換え毎に制御空燃比にその分ずれが生じる。その点、液体燃料組成学習値ＬＣＯＮ’の学習を行えば、そうした過補正となる分を予めガス燃料用噴射時間ＴＡＵＧから差し引いておくことが可能となり、運転切り換え時の制御空燃比の乱れが抑えられる。
【０１６４】
・第３実施形態では、ガス燃料組成学習値ＬＣＡＬの学習に使用する基準噴射時間ＴＡＵＳ１と、液体燃料組成学習値ＬＣＯＮ’の学習に使用する基準噴射時間ＴＡＵＳ２を別々の演算マップを用いてそれぞれ演算するようにしていたが、これらを共通の演算マップから求めるようにしてもよい。要は、基準噴射時間ＴＡＵＳ１，ＴＡＵＳ２は、燃料の組成の違いによる制御空燃比のずれを計るための噴射時間の基準値であれば良く、それがどの様な組成の燃料を想定した値であっても、基準噴射時間ＴＡＵＳ１や液体燃料組成学習値ＬＣＯＮ’の学習を好適に行うことが可能である。ただし、初回の学習をより速やかに行うためには、基準噴射時間ＴＡＵＳ１，ＴＡＵＳ２は、使用される可能性が最も高い組成の燃料を想定した値とすることが望ましい。
【０１６５】
・上記各実施形態でのガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’の更新完了の条件（学習完了フラグＦＬＡＧ１，ＦＬＡＧ２のセット条件）は、適宜変更してもよい。例えば、更新の開始からの経過時間が規定値に達することや、運転の切り換えからの経過時間が既定値に達することをもって、更新を完了するようにしてもよい。また、液体燃料用噴射時間ＴＡＵｍやガス燃料用噴射時間ＴＡＵＧの変動量が規定値以内の状態が規定時間継続していることなどから、空燃比フィードバックの安定を確認して、更新を完了することも可能である。
【０１６６】
・上記各実施形態での燃料補給の判定を、他の方法で行うようにしてもよい。例えば、バイフューエルエンジンの始動後における最初の液体燃料運転、ガス燃料運転の開始直後に、液体燃料用噴射時間ＴＡＵｍの変化量が規定値を超えていることをもって、液体燃料、ガス燃料の補給が行われたと判定するようにすることも可能である。
【０１６７】
・上記各実施形態では、基準噴射時間ＴＡＵＳ１，ＴＡＵＳ２とガス燃料用噴射時間ＴＡＵＧ、液体燃料用噴射時間ＴＡＵｍとの比較結果に基づいて、ガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’の値を徐々に更新することでそれらの学習を行っていた。空燃比フィードバックの安定を確認できるのであれば、その時点の基準噴射時間ＴＡＵＳ１，ＴＡＵＳ２やガス燃料用噴射時間ＴＡＵＧ、液体燃料用噴射時間ＴＡＵｍの値に基づいて、ガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’を一時に更新するようにしてもよい。ただし、ガス燃料組成学習値ＬＣＡＬの値が一時に大きく変化されると、制御空燃比が乱れてしまう。そうした場合にも、ガス燃料組成学習値ＬＣＡＬの値は一時に変化しても、それによるガス燃料用噴射時間ＴＡＵＧに対する補正量を徐々に変化させるようにすれば、制御空燃比の乱れを抑えることが可能となる。
【０１６８】
・上記各実施形態でのガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’の更新が一旦完了すると、該当燃料が再度補給されるまで、その更新を停止するようにしていたが、完了条件を設定せず、更新を終始継続するようにしてもよい。
【０１６９】
・上記各実施形態でのガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’の更新条件は、適宜変更してもよい。ガス燃料組成学習値ＬＣＡＬや液体燃料組成学習値ＬＣＯＮ’の更新は、空燃比フィードバックの実施中であれば行うことが可能であり、更新条件は、空燃比フィードバックの実施中であることが保証されるような条件であればよい。もっとも、学習の精度を求めるのであれば、空燃比フィードバックに対する外乱が少ない条件に更新条件を設定することが望ましい。
【０１７０】
・上記実施形態では、運転モード切換スイッチ４３による運転者の手動操作により、液体燃料運転とガス燃料運転とが切り替えられるようになっていたが、こうした運転の切り換えをサブ制御ユニット３５が自動で行うようにしてもよい。例えば低負荷時にはガス燃料運転を行い、アクセルペダルが踏み込まれるなどにより負荷が高まったときには、発熱量がより高く、より高い出力が得られる液体燃料運転を行うように、サブ制御ユニット３５が運転モードＭＯＤＥの自動切換を行うことが考えられる。
【符号の説明】
【０１７１】
１０…バイフューエルエンジン、１１…燃焼室、１２…吸気通路、１３…排気通路、１４…エアフローメーター、１５…スロットルバルブ、１６…サージタンク、１７…吸気マニホールド、１８…吸気ポート、１９…ガソリンインジェクター、２０…吸気バルブ、２１…点火プラグ、２２…排気ポート、２３…排気バルブ、２４…排気マニホールド、２５…酸素濃度センサー、２６…触媒装置、２７…ガスボンベ、２８…ガスインジェクター、２９…レギュレーター、３０…ガス配管、３１…電磁弁、３２…電磁弁、３３…燃料ホース、３４…メイン制御ユニット（第１制御部）、３５…サブ制御ユニット（第２制御部）、３６…信号線、３７…クランク角センサー、３８…アクセルペダルセンサー、３９…スロットルセンサー、４０…高圧側ガス圧センサー、４１…低圧側ガス圧センサー、４２…ガス温センサー、４３…運転モード切換スイッチ。
【図１】
2016109030.tif 000007
【図２】
2016109030.tif 000008
【図３】
2016109030.tif 000009
【図４】
2016109030.tif 000010
【図５】
2016109030.tif 000011
【図６】
2016109030.tif 000012
【図７】
2016109030.tif 000013
【図８】
2016109030.tif 000014
【図９】
2016109030.tif 000015
【図１０】
2016109030.tif 000016
【図１１】
2016109030.tif 000017
【図１２】
2016109030.tif 000018
【図１３】
2016109030.tif 000019
【図１４】
2016109030.tif 000020
【図１５】
2016109030.tif 000021
【図１６】
2016109030.tif 000022