(57)【特許請求の範囲】
【請求項１】
第１燃料と第２燃料とを選択的に切替えて単一エンジンの運転制御を行うエンジン制御システムであって、
前記エンジンの排気系に配置された空燃比センサと、
各燃料によるエンジン運転時に、前記空燃比センサの出力信号に基づいて空燃比フィードバック制御に必要なフィードバック補正係数を算出すると共に、当該フィードバック補正係数を学習値として不揮発性メモリに記憶させる制御装置と、
を具備し、
前記制御装置は、一方の燃料による運転中にエンジン運転状態が他方の燃料の強制学習運転状態にある場合、他方の燃料によるエンジン運転に切替えることを特徴とするエンジン制御システム。
【請求項２】
前記制御装置は、前記エンジンの冷却水温を基に前記エンジン運転状態が強制学習運転状態にあるか否かを判定することを特徴とする請求項１に記載のエンジン制御システム。
【請求項３】
前記制御装置は、前記冷却水温が暖気運転時の規定温度範囲内に含まれている場合に、前記エンジン運転状態が強制学習運転状態にあると判定することを特徴とする請求項２に記載のエンジン制御システム。
【請求項４】
前記制御装置は、一方の燃料による運転中にエンジン運転状態が学習禁止運転状態にある場合、前記フィードバック補正係数の算出及び学習値の記憶を行わないことを特徴とする請求項１〜３のいずれか一項に記載のエンジン制御システム。
【請求項５】
前記制御装置は、前記エンジンの回転数、冷却水温、吸気圧力、吸気温度の少なくとも１つを基に前記エンジン運転状態が前記学習禁止運転状態にあるか否かを判定することを特徴とする請求項４に記載のエンジン制御システム。
【請求項６】
前記制御装置は、一方の燃料によるエンジン運転状態が強制学習運転状態にある場合、他方の燃料の残量が規定量以上か否かを判定し、否の場合には他方の燃料によるエンジン運転への切替えを行わないことを特徴とする請求項１〜５のいずれか一項に記載のエンジン制御システム。
【請求項７】
前記制御装置は、前記不揮発性メモリに記憶された各燃料についての学習値に基づいて各燃料の供給系に異常が発生したか否かを判定することを特徴とする請求項１〜６のいずれか一項に記載のエンジン制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン制御システムに関する。
【背景技術】
【０００２】
周知のように、エンジンの運転制御において、実空燃比が目標空燃比（理論空燃比）となるように燃料噴射量を制御することを空燃比フィードバック制御と呼ぶ。燃料噴射量の制御は、インジェクタの通電時間を制御することで実現される。そのため、空燃比フィードバック制御では、実空燃比が目標空燃比に対して「リッチ」であれば、燃料噴射量が減少するように、また、実空燃比が目標空燃比に対して「リーン」であれば、燃料噴射量が増加するようにインジェクタ通電時間を補正する。
【０００３】
インジェクタ通電時間の補正に用いられるフィードバック補正係数は、エンジンの排気系に設置された空燃比センサ（例えばＯ２センサ）の出力信号を基に算出され、その時のエンジン運転状態を示す情報（例えばエンジン回転数及びスロットル開度）と共に電源が切られても消去されないよう不揮発性メモリに記憶される。次回のエンジン運転時には、不揮発性メモリからエンジン運転状態に応じたフィードバック補正係数が読み出されて、インジェクタ通電時間の補正に用いられる。
【０００４】
上記のように、フィードバック補正係数をエンジン運転状態と対応付けて不揮発性メモリに記憶させることを「学習」と呼び、この「学習」によって不揮発性メモリに記憶されたフィードバック補正係数を「学習値」と呼ぶ。このようなフィードバック補正係数の学習を行うことにより、システム構成部品（インジェクタ等）の個体差や経年劣化に起因する空燃比ズレを継続的且つ適切に補正することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６２−１０１８６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、近年では、車両の燃費性能及び環境保護性能を向上させる技術として、ガソリン等の液体燃料と圧縮天然ガス（ＣＮＧ）等の気体燃料とを選択的に切替えて単一エンジンの運転制御を行うバイフューエルエンジンシステムの導入が進んでいる。
【０００７】
このバイフューエルエンジンシステムでは、ガソリン運転時とガス運転時とのそれぞれで空燃比フィードバック制御を行う必要があるが、一方の燃料で長期間運転していると、他方の燃料についての学習値は更新されず古い値のままとなる。そのため、一方の燃料から他方の燃料へ切替えた際、一時的に現在のシステム状態に適さない古い学習値が空燃比フィードバック制御に使用されることになり、エミッションの悪化を招く虞がある。
【０００８】
本発明は、上述した事情に鑑みてなされたものであり、第１燃料と第２燃料とを選択的に切替えて単一エンジンの運転制御を行うエンジン制御システムにおいて、システム状態に対して適切な空燃比フィードバック制御を行い、以ってエミッションの悪化を防止することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明では、エンジン制御システムに係る第１の解決手段として、第１燃料と第２燃料とを選択的に切替えて単一エンジンの運転制御を行うエンジン制御システムであって、前記エンジンの排気系に配置された空燃比センサと、各燃料によるエンジン運転時に、前記空燃比センサの出力信号に基づいて空燃比フィードバック制御に必要なフィードバック補正係数を算出すると共に、当該フィードバック補正係数を学習値として不揮発性メモリに記憶させる制御装置と、を具備し、前記制御装置は、一方の燃料による運転中にエンジン運転状態が他方の燃料の強制学習運転状態にある場合、他方の燃料によるエンジン運転に切替えることを特徴とする。
このような特徴を有するエンジン制御システムによれば、一方の燃料で長期間運転している場合でも、エンジン運転状態が強制学習運転状態になる度に、他方の燃料についての学習値が更新されるため、一方の燃料から他方の燃料へ切替えた際、現在のシステム状態に適した最新の学習値が空燃比フィードバック制御に使用されることになり、燃料切替時におけるエミッションの悪化を防止することが可能となる。
【００１０】
また、本発明では、エンジン制御システムに係る第２の解決手段として、上記第１の解決手段において、前記制御装置は、前記エンジンの冷却水温を基に前記エンジン運転状態が強制学習運転状態にあるか否かを判定することを特徴とする。
これによれば、既存の冷却水温センサの出力信号を利用して、容易にエンジン運転状態が強制学習運転状態にあるか否かを判定することができる。
【００１１】
また、本発明では、エンジン制御システムに係る第３の解決手段として、上記第２の解決手段において、前記制御装置は、前記冷却水温が暖気運転時の規定温度範囲内に含まれている場合に、前記エンジン運転状態が強制学習運転状態にあると判定することを特徴とする。
これによれば、パージの影響が少ない暖気運転時に燃料の切替え及び学習値の記憶が実施されることになり、現在のシステム状態に適した学習値を得ることができる。
【００１２】
また、本発明では、エンジン制御システムに係る第４の解決手段として、上記第１〜第３のいずれか１つの解決手段において、前記制御装置は、一方の燃料による運転中にエンジン運転状態が学習禁止運転状態にある場合、前記フィードバック補正係数の算出及び学習値の記憶を行わないことを特徴とする。
これによれば、より適切なタイミングでフィードバック補正係数の算出及び学習値の記憶を行うことができる。
【００１３】
また、本発明では、エンジン制御システムに係る第５の解決手段として、上記第４の解決手段において、前記制御装置は、前記エンジンの回転数、冷却水温、吸気圧力、吸気温度の少なくとも１つを基に前記エンジン運転状態が前記学習禁止運転状態にあるか否かを判定することを特徴とする。
これにより、既存センサの出力信号を利用して、容易にエンジン運転状態が学習禁止運転状態にあるか否かを判定することができる。
【００１４】
また、本発明では、エンジン制御システムに係る第６の解決手段として、上記第１〜第５のいずれか１つの解決手段において、前記制御装置は、一方の燃料によるエンジン運転状態が強制学習運転状態にある場合、他方の燃料の残量が規定量以上か否かを判定し、否の場合には他方の燃料によるエンジン運転への切替えを行わないことを特徴とする。
これにより、強制的な燃料切替えによる燃料供給不足を回避することができる。
【００１５】
また、本発明では、エンジン制御システムに係る第７の解決手段として、上記第１〜第６のいずれか１つの解決手段において、前記制御装置は、前記不揮発性メモリに記憶された各燃料についての学習値に基づいて各燃料の供給系に異常が発生したか否かを判定することを特徴とする。
不揮発性メモリに記憶された各燃料についての学習値は、実空燃比と目標空燃比とのズレ量、言い換えれば、各燃料の供給系の劣化状態を示す指標となる。従って、不揮発性メモリに記憶された各燃料についての学習値に基づいて各燃料の供給系に異常が発生したか否かを判定することができる。
【発明の効果】
【００１６】
本発明によれば、システム状態に対して適切な空燃比フィードバック制御を行い、以ってエミッションの悪化を防止することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態におけるエンジン制御システムの構成概略図である。
【図２】１ｓｔ−ＥＣＵ１５のＣＰＵ１５ｋ及び２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉが連携して実行する強制学習処理を表すフローチャートである。
【図３】エンジン始動時に液体燃料或いは気体燃料が選択されている場合の燃料切替及び強制学習のタイミングを表すタイミングチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態について、図面を参照しながら説明する。なお、以下では、本発明に係るエンジン制御システムとして、ガソリン等の液体燃料（第１燃料）と圧縮天然ガス（ＣＮＧ）等の気体燃料（第２燃料）とを選択的に切替えて単一エンジンの運転制御を行うバイフューエルエンジンシステムを例示して説明する。
【００１９】
図１は、本実施形態におけるエンジン制御システムの構成概略図である。この図１に示すように、本実施形態におけるエンジン制御システムは、クランク角度センサ１、吸気圧センサ２、吸気温センサ３、スロットル開度センサ４、冷却水温センサ５、Ｏ２センサ６、燃料圧力センサ７、燃料温度センサ８、点火コイル９、液体燃料噴射弁１０、燃料ポンプ１１、気体燃料噴射弁１２、遮断弁１３、燃料切替スイッチ１４、１ｓｔ−ＥＣＵ（Electronic Control Unit）１５及び２ｎｄ−ＥＣＵ１６から構成されている。
なお、１ｓｔ−ＥＣＵ１５及び２ｎｄ−ＥＣＵ１６は、本発明における制御装置に相当する構成要素である。
【００２０】
クランク角度センサ１は、例えば電磁式ピックアップセンサであり、エンジンのクランクシャフトが一定角度回転する毎に極性の異なる１対のパルス信号を１ｓｔ−ＥＣＵ１５及び２ｎｄ−ＥＣＵ１６に出力する。吸気圧センサ２は、感部が吸気流路に露出するようにエンジンの吸気管に設置されており、吸気管の内部圧力（吸気圧）に応じた吸気圧信号を１ｓｔ−ＥＣＵ１５に出力する。
【００２１】
吸気温センサ３は、感部が吸気流路に露出するようにエンジンの吸気管に設置されており、吸気管の内部温度（吸気温度）に応じた吸気温信号を１ｓｔ−ＥＣＵ１５に出力する。スロットル開度センサ４は、エンジンの吸気管に設けられたスロットルバルブの開度に応じたスロットル開度信号を１ｓｔ−ＥＣＵ１５に出力する。冷却水温センサ５は、エンジンの冷却水温度に応じた冷却水温信号を１ｓｔ−ＥＣＵ１５に出力する。
【００２２】
Ｏ２センサ６は、例えばガス検知物質としてジルコニアを用いた酸素センサ（空燃比センサ）であって、ガス接触部が排気流路に露出するようにエンジンの排気管に設置されており、排気ガスの酸素濃度に応じた電圧信号を１ｓｔ−ＥＣＵ１５に出力する。燃料圧力センサ７は、気体燃料タンクから気体燃料噴射弁１２へ至る気体燃料供給経路におけるレギュレータ下流側の気体燃料の圧力を検出し、その検出結果を表す燃料圧力信号を２ｎｄ−ＥＣＵ１６に出力する。燃料温度センサ８は、上記レギュレータ下流側の気体燃料の温度を検出し、その検出結果を表す燃料温度信号を２ｎｄ−ＥＣＵ１６に出力する。
【００２３】
点火コイル９は、１次巻線と２次巻線からなるトランスであり、１ｓｔ−ＥＣＵ１５から１次巻線に供給される点火用電圧信号を昇圧して２次巻線からエンジンの点火プラグに供給する。液体燃料噴射弁１０は、吸気流路に噴射口が露出するように吸気管に設置された電磁弁であり、１ｓｔ−ＥＣＵ１５から供給される燃料噴射弁駆動信号に応じて、液体燃料タンクから供給される液体燃料（ガソリン等）を噴射口から噴射する。燃料ポンプ１１は、１ｓｔ―ＥＣＵ１５から供給されるポンプ駆動信号に応じて、液体燃料タンク内の液体燃料を汲み出して液体燃料噴射弁１０の燃料入口に圧送する。
【００２４】
気体燃料噴射弁１２は、吸気流路に噴射口が露出するように吸気管に設置された電磁弁であり、２ｎｄ−ＥＣＵ１６から供給される燃料噴射弁駆動信号に応じて、気体燃料タンクから供給される気体燃料（ＣＮＧ等）を噴射口から噴射する。遮断弁１３は、気体燃料タンクからレギュレータに至る気体燃料供給経路に介挿された電磁弁であり、２ｎｄ−ＥＣＵ１６から供給される遮断弁駆動信号に応じて開弁動作及び閉弁動作を行うことで、気体燃料タンクから気体燃料噴射弁１２への気体燃料の供給開始と停止を切替える役割を担っている。
【００２５】
燃料切替スイッチ１４は、手動操作による燃料の切替えを可能とするスイッチであり、そのスイッチの状態、つまりエンジンで使用する燃料として液体燃料が選択されているのか、気体燃料が選択されているのかを示す燃料選択信号を２ｎｄ−ＥＣＵ１６に出力する。
【００２６】
１ｓｔ−ＥＣＵ１５は、液体燃料によるエンジン運転制御を行うものであり、波形整形回路１５ａ、回転数カウンタ１５ｂ、Ａ／Ｄ変換器１５ｃ、点火回路１５ｅ、燃料噴射弁駆動回路１５ｆ、ポンプ駆動回路１５ｇ、ＲＯＭ(Read Only Memory)１５ｈ、ＲＡＭ(Random Access Memory)１５ｉ、通信回路１５ｊ及びＣＰＵ（Central Processing Unit）１５ｋを備えている。
【００２７】
波形整形回路１５ａは、クランク角度センサ１から入力されるパルス信号を、方形波のパルス信号に波形整形し、回転数カウンタ１５ｂ及びＣＰＵ１５ｋに出力する。つまり、この方形波のパルス信号は、クランクシャフトが一定角度回転するのに要した時間を１周期とする信号である。以下では、この波形整形回路１５ａから出力される方形波のパルス信号をクランクパルス信号と称す。
【００２８】
回転数カウンタ１５ｂは、上記波形整形回路１５ａから入力されるクランクパルス信号に基づいてエンジン回転数を算出し、その算出結果をＣＰＵ１５ｋに出力する。Ａ／Ｄ変換器１５ｃは、吸気圧センサ２から入力される吸気圧信号、吸気温センサ３から入力される吸気温信号、スロットル開度センサ４から入力されるスロットル開度信号、冷却水温センサ５から入力される冷却水温信号、及びＯ２センサ６から入力される電圧信号を、デジタル信号（吸気圧値、吸気温値、スロットル開度値、冷却水温値、Ｏ２センサ出力電圧値）に変換してＣＰＵ１５ｋに出力する。
【００２９】
点火回路１５ｅは、不図示のバッテリから供給される電源電圧を蓄積するコンデンサを備え、ＣＰＵ１５ｋからの要求に応じて、コンデンサに蓄積された電荷を点火用電圧信号として点火コイル９の１次巻線に放電する。燃料噴射弁駆動回路１５ｆは、ＣＰＵ１５ｋからの要求に応じて燃料噴射弁駆動信号を生成して液体燃料噴射弁１０に出力する。ポンプ駆動回路１５ｇは、ＣＰＵ１５ｋからの要求に応じてポンプ駆動信号を生成して燃料ポンプ１１に出力する。
【００３０】
ＲＯＭ１５ｈは、ＣＰＵ１５ｋの各種機能を実現するためのエンジン制御プログラムや各種設定データを予め記憶している不揮発性メモリである。ＲＡＭ１５ｉは、ＣＰＵ１５ｋがエンジン制御プログラムを実行して各種動作を行う際に、データの一時保存先に用いられる揮発性のワーキングメモリである。通信回路１５ｊは、ＣＰＵ１５ｋによる制御の下、１ｓｔ−ＥＣＵ１５と２ｎｄ−ＥＣＵ１６とのデジタル通信（例えばＣＡＮ通信）を実現する通信インターフェイスであり、通信ケーブルを介して２ｎｄ−ＥＣＵ１６と接続されている。
【００３１】
ＣＰＵ１５ｋは、ＲＯＭ１５ｈに記憶されているエンジン制御プログラムに従って、波形整形回路１５ａから入力されるクランクパルス信号と、回転数カウンタ１５ｂから得られるエンジン回転数と、Ａ／Ｄ変換器１５ｃから得られる吸気圧値、吸気温値、スロットル開度値、冷却水温値及びＯ２センサ出力電圧値と、通信回路１５ｊを介して２ｎｄ−ＥＣＵ１６から得られる各種情報に基づいて液体燃料によるエンジン運転制御を行う。
【００３２】
具体的には、ＣＰＵ１５ｋは、波形整形回路１５ａから入力されるクランクパルス信号に基づいてクランクシャフトの回転状態（換言すれば、シリンダ内におけるピストン位置）を監視し、ピストンが点火時期に対応する位置に到達した時点で、点火回路１５ｅに対して点火用電圧信号の放電を要求することにより、点火コイル９による点火プラグのスパークを実施する。
【００３３】
また、このＣＰＵ１５ｋは、通信回路１５ｊを介して２ｎｄ−ＥＣＵ１６から受信した燃料切替信号を基に、現在選択中の燃料が液体燃料であると判断した場合、ポンプ駆動回路１５ｇに対してポンプ駆動信号の生成を要求すると共に、ピストンが燃料噴射時期に対応する位置に到達した時点で、燃料噴射弁駆動回路１５ｆに対して燃料噴射弁駆動信号の生成を要求することにより、液体燃料噴射弁１０による液体燃料の噴射を実施する。
【００３４】
ここで、ＣＰＵ１５ｋは、液体燃料噴射弁１０の通電時間（つまり燃料噴射弁駆動信号のパルス幅）を制御することで液体燃料の噴射量を制御する。詳細には、ＲＯＭ１５ｈに、エンジン回転数とスロットル開度値と基本通電時間（基本燃料噴射量）との対応関係を示す三次元マップデータが予め記憶されており、ＣＰＵ１５ｋは、回転数カウンタ１５ｂから得られるエンジン回転数と、Ａ／Ｄ変換器１５ｃから得られるスロットル開度値に対応する基本通電時間を上記三次元マップデータから取得し、その基本通電時間に相当するパルス幅を有する燃料噴射弁駆動信号が液体燃料噴射弁１０に供給されるよう、燃料噴射弁駆動回路１５ｆを制御する。
【００３５】
さらに、ＣＰＵ１５ｋは、エンジンが所定の運転状態にある場合、Ａ／Ｄ変換器１５ｃから得られるＯ２センサ出力電圧値に基づいて、実空燃比が目標空燃比（理論空燃比）となるように燃料噴射量を制御する（空燃比フィードバック制御）。詳細には、ＣＰＵ１５ｋは、実空燃比が目標空燃比に対して「リッチ」であれば、燃料噴射量が減少するように、また、実空燃比が目標空燃比に対して「リーン」であれば、燃料噴射量が増加するように基本通電時間を補正する。
【００３６】
ＣＰＵ１５ｋは、Ｏ２センサ出力電圧値に基づいて基本通電時間の補正に用いられるフィードバック補正係数を算出すると共に、その時のエンジン運転状態を示す情報（例えばエンジン回転数及びスロットル開度値）と共に電源が切られても消去されないよう当該算出したフィードバック補正係数を学習値（以下、液体燃料学習値と称す）としてＲＯＭ１５ｈに記憶させる、いわゆる学習機能を備えている。
なお、ＣＰＵ１５ｋは、気体燃料によるエンジン運転時において、三次元マップデータから取得した基本通電時間と、Ｏ２センサ出力電圧値に基づいて算出したフィードバック補正係数を、通信回路１５ｊを介して２ｎｄ−ＥＣＵ１６へ送信する機能も有する。
【００３７】
一方、２ｎｄ−ＥＣＵ１６は、気体燃料によるエンジン運転制御を行うものであり、波形整形回路１６ａ、回転数カウンタ１６ｂ、Ａ／Ｄ変換器１６ｃ、通信回路１６ｄ、燃料噴射弁駆動回路１６ｅ、遮断弁駆動回路１６ｆ、ＲＯＭ１６ｇ、ＲＡＭ１６ｈ及びＣＰＵ１６ｉを備えている。
【００３８】
波形整形回路１６ａは、クランク角度センサ１から入力されるクランク信号を、方形波のパルス信号（クランクパルス信号）に波形整形して回転数カウンタ１６ｂ及びＣＰＵ１６ｉに出力する。回転数カウンタ１６ｂは、上記波形整形回路１６ａから入力されるクランクパルス信号に基づいてエンジン回転数を算出し、その算出結果をＣＰＵ１６ｉに出力する。
【００３９】
Ａ／Ｄ変換器１６ｃは、燃料圧力センサ７から入力される燃料圧力信号及び燃料温度センサ８から入力される燃料温度信号を、デジタル信号（燃料圧力値、燃料温度値）に変換してＣＰＵ１６ｉに出力する。通信回路１６ｄは、ＣＰＵ１６ｉによる制御の下、１ｓｔ−ＥＣＵ１５と２ｎｄ−ＥＣＵ１６とのデジタル通信（例えばＣＡＮ通信）を実現する通信インターフェイスであり、通信ケーブルを介して１ｓｔ−ＥＣＵ１５（詳細には通信回路１５ｊ）と接続されている。
【００４０】
燃料噴射弁駆動回路１６ｅは、ＣＰＵ１６ｉからの要求に応じて燃料噴射弁駆動信号を生成して気体燃料噴射弁１２に出力する。遮断弁駆動回路１６ｆは、ＣＰＵ１６ｉからの要求に応じて遮断弁駆動信号を生成して遮断弁１３に出力する。
【００４１】
ＲＯＭ１６ｇは、ＣＰＵ１６ｉの各種機能を実現するためのエンジン制御プログラムや各種設定データを予め記憶している不揮発性メモリである。ＲＡＭ１６ｈは、ＣＰＵ１６ｉがエンジン制御プログラムを実行して各種動作を行う際に、データの一時保存先に用いられる揮発性のワーキングメモリである。
【００４２】
ＣＰＵ１６ｉは、ＲＯＭ１６ｇに記憶されているエンジン制御プログラムに従って、燃料切替スイッチ１４から入力される燃料選択信号と、波形整形回路１６ａから入力されるクランクパルス信号と、回転数カウンタ１６ｂから得られるエンジン回転数と、Ａ／Ｄ変換器１６ｃから得られる燃料圧力値及び燃料温度値と、通信回路１６ｄを介して１ｓｔ−ＥＣＵ１５から得られる各種情報とに基づいて気体燃料によるエンジン運転制御を行う。
【００４３】
具体的には、ＣＰＵ１６ｉは、燃料切替スイッチ１４から入力される燃料指定信号を基に現在選択中の燃料が気体燃料であると判断した場合、その判断結果を示す燃料切替信号を通信回路１６ｄを介して１ｓｔ−ＥＣＵ１５に送信する一方、遮断弁駆動回路１６ｆに対して遮断弁駆動信号の生成を要求して遮断弁１３を開放させると共に、ピストンが燃料噴射時期に対応する位置に到達した時点で、燃料噴射弁駆動回路１６ｅに対して燃料噴射弁駆動信号の生成を要求することにより、気体燃料噴射弁１２による気体燃料の噴射を実施する。
【００４４】
ここで、ＣＰＵ１６ｉは、通信回路１６ｄを介して１ｓｔ−ＥＣＵ１５から基本通電時間及びフィードバック補正係数を受信して、基本通電時間をフィードバック補正係数、気体燃料補正係数、燃料圧力値から算出した燃料圧力補正係数、及び燃料温度値から算出した燃料温度補正係数を用いて補正することで最終通電時間を算出し、その最終通電時間に相当するパルス幅を有する燃料噴射弁駆動信号が気体燃料噴射弁１２に供給されるよう、燃料噴射弁駆動回路１６ｅを制御する。
【００４５】
また、このＣＰＵ１６ｉは、１ｓｔ−ＥＣＵ１５から受信したフィードバック補正係数を、その時のエンジン運転状態を示す情報（例えばエンジン回転数及びスロットル開度値）と共に電源が切られても消去されないよう学習値（以下、気体燃料学習値と称す）としてＲＯＭ１６ｇに記憶させる、いわゆる学習機能を備えている。
【００４６】
なお、詳細は後述するが、上述した１ｓｔ−ＥＣＵ１５のＣＰＵ１５ｋ及び２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉは、互いに連携して、一方の燃料による運転中にエンジン運転状態が他方の燃料の強制学習運転状態にある場合、燃料切替スイッチ１４の状態に関わらず、他方の燃料によるエンジン運転に自動的且つ強制的に切替える強制学習機能を有している。
【００４７】
以下では、上記の強制学習機能を実現するために、１ｓｔ−ＥＣＵ１５のＣＰＵ１５ｋ及び２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉが連携して実行する強制学習処理について、図２のフローチャートを参照しながら詳細に説明する。なお、図２に示す強制学習処理は、エンジン運転中に一定周期で繰り返し実行されるものである。
【００４８】
図２に示すように、１ｓｔ−ＥＣＵ１５のＣＰＵ１５ｋは、まず、回転数カウンタ１５ｂから得られるエンジン回転数が学習許可範囲内に含まれているか否かを判定し（ステップＳ１）、「Ｎｏ」の場合には強制学習処理を終了する。
上記ステップＳ１において「Ｙｅｓ」の場合、ＣＰＵ１５ｋは、Ａ／Ｄ変換器１５ｃから得られる冷却水温値が学習許可範囲内に含まれているか否かを判定し（ステップＳ２）、「Ｎｏ」の場合には強制学習処理を終了する。
【００４９】
上記ステップＳ２において「Ｙｅｓ」の場合、ＣＰＵ１５ｋは、Ａ／Ｄ変換器１５ｃから得られる吸気圧値が学習許可範囲内に含まれているか否かを判定し（ステップＳ３）、「Ｎｏ」の場合には強制学習処理を終了する。
上記ステップＳ３において「Ｙｅｓ」の場合、ＣＰＵ１５ｋは、Ａ／Ｄ変換器１５ｃから得られる吸気温値が学習許可範囲内に含まれているか否かを判定し（ステップＳ４）、「Ｎｏ」の場合には強制学習処理を終了する。
【００５０】
以上の４つのステップＳ１〜Ｓ４は、現在のエンジン運転状態が学習禁止運転状態にある場合に、フィードバック補正係数の学習（つまりフィードバック補正係数の算出及び学習値の記憶）を行わないための処理である。
【００５１】
例えば、エンジン運転状態が高回転高負荷状態である場合、エンジン出力向上を目的として空燃比を下げる必要があるため、効率的な学習には適していない。従って、エンジン回転数、冷却水温値、吸気圧値が学習許可範囲内か否かを判定することで、エンジン運転状態が高回転高負荷状態であるか否かを判定し、いずれか１つでも「Ｎｏ」であれば、学習を行うべきではないと判断して強制学習処理を終了する。
また、吸気温度が異常温度である場合、吸入空気量のズレが大きいため、効率的な学習には適していない。従って、吸気温値が学習許可範囲内か否かを判定することで、吸気温度が異常か否かを判定し、「Ｎｏ」であれば、学習を行うべきではないと判断して強制学習処理を終了する。
【００５２】
続いて、上記ステップＳ４において「Ｙｅｓ」の場合、つまり現在のエンジン運転状態がフィードバック補正係数の学習を行うべき状態である場合、ＣＰＵ１５ｋは、Ａ／Ｄ変換器１５ｃから得られる冷却水温値が暖気運転時の規定温度範囲（強制学習許可範囲）内に含まれているか否かを判定する（ステップＳ５）。
【００５３】
このステップＳ５は、エンジンの冷却水温値を基にエンジン運転状態が強制学習運転状態にあるか否かを判定するための処理である。つまり、ＣＰＵ１５ｋは、ステップＳ５において、冷却水温値が暖気運転時の強制学習許可範囲内に含まれている場合に、エンジン運転状態が強制学習運転状態にあると判定する。本実施形態では、強制学習許可範囲の上限値はパージ発生温度に設定され、下限値はパージ発生温度から１０°Ｃ低い温度に設定されている。
【００５４】
ここで、パージとは、液体燃料タンク内に存在する蒸発ガスを暖気運転時にエンジンの吸気系に導入して燃焼させることを指し、また、パージ発生温度とは、パージを実施する暖気運転時の冷却水温値を指す。１ｓｔ−ＥＣＵ１５のＣＰＵ１５ｋは、現在選択中の燃料に関わらず、冷却水温値がパージ発生温度に達した場合にパージを実施する機能を有している。従って、現在選択中の燃料に関わらず、パージが実施されると、エンジンの空燃比がリッチとなる。
【００５５】
このように、パージが実施されると、エンジンの空燃比がリッチとなるため、フィードバック補正係数の効率的な学習には適していない。そこで、上述したように、強制学習許可範囲の上限値をパージ発生温度に設定し、下限値をパージ発生温度から１０°Ｃ低い温度に設定することにより、パージが実施される前、つまりパージによる影響が少ない運転状態で後述の強制学習が行われることになる。
特に、液体燃料の場合は、パージが発生する温度と燃焼が安定する温度の間（強制学習許可範囲の上限値と下限値の間）でフィードバック補正係数の学習を行わせることが望ましい。なお、バイフューエルシステムにおいて、暖気運転完了温度（液体燃料のパージ発生開始温度）と燃焼が安定する温度を等分するように強制学習許可範囲の下限値は設定される（気体燃料と液体燃料の学習を等しく行わせるため）。
【００５６】
さて、上記ステップＳ５において「Ｙｅｓ」の場合、つまり現在のエンジン運転状態が強制学習運転状態（パージによる影響が少ない運転状態）にある場合、ＣＰＵ１５ｋは、強制学習中フラグを「１」にセットし（ステップＳ６）、２ｎｄ−ＥＣＵ１６から受信した燃料切替信号を基に現在選択中の燃料が液体燃料か気体燃料かを判定する（ステップＳ７）。
【００５７】
上記ステップＳ７において現在選択中の燃料が気体燃料である場合、ＣＰＵ１５ｋは、液体燃料の残量が規定量以上か否かを判定し（ステップＳ８）、「Ｎｏ」の場合にはステップＳ１２へ移行する一方、「Ｙｅｓ」の場合には液体燃料によるエンジン運転に切替え（ステップＳ９）、液体燃料学習値の更新処理を行う（ステップＳ１０）。
【００５８】
つまり、ステップＳ９及びＳ１０において、ＣＰＵ１５ｋは、Ａ／Ｄ変換器１５ｃから得られたエンジン回転数及びスロットル開度値に対応する基本通電時間を三次元マップデータから取得すると共に、Ａ／Ｄ変換器１５ｃから得られたＯ２センサ出力電圧値に基づいてフィードバック補正係数を算出し、その時のエンジン運転状態を示す情報（例えばエンジン回転数及びスロットル開度値）と共に当該算出したフィードバック補正係数を液体燃料学習値としてＲＯＭ１５ｈに記憶させる（液体燃料学習値の強制学習）。
そして、ＣＰＵ１５ｋは、基本通電時間をフィードバック補正係数を用いて補正することで最終通電時間を算出し、その最終通電時間に相当するパルス幅を有する燃料噴射弁駆動信号が液体燃料噴射弁１０に供給されるよう、燃料噴射弁駆動回路１５ｆを制御する。
【００５９】
一方、上記ステップＳ７において現在選択中の燃料が液体燃料である場合、ＣＰＵ１５ｋは、気体燃料の残量が規定量以上か否かを判定し（ステップＳ１１）、「Ｎｏ」の場合にはステップＳ９へ移行する一方、「Ｙｅｓ」の場合には気体燃料によるエンジン運転に切替え（ステップＳ１２）、２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉは気体燃料によるエンジン運転及び気体燃料学習値の更新処理を行う（ステップＳ１３）。
【００６０】
つまり、ステップＳ１２において、ＣＰＵ１５ｋは、Ａ／Ｄ変換器１５ｃから得られたエンジン回転数及びスロットル開度値に対応する基本通電時間を三次元マップデータから取得すると共に、Ａ／Ｄ変換器１５ｃから得られたＯ２センサ出力電圧値に基づいてフィードバック補正係数を算出し、これら基本通電時間及びフィードバック補正係数を、通信回路１５ｊを介して２ｎｄ−ＥＣＵ１６へ送信する。
【００６１】
そして、ステップＳ１３において、２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉは、１ｓｔ−ＥＣＵ１５から受信したフィードバック補正係数を、その時のエンジン運転状態を示す情報と共に気体燃料学習値としてＲＯＭ１６ｇに記憶させる（気体燃料学習値の強制学習）。また、ＣＰＵ１６ｉは、基本通電時間をフィードバック補正係数、気体燃料補正係数、燃料圧力補正係数及び燃料温度補正係数を用いて補正することで最終通電時間を算出し、その最終通電時間に相当するパルス幅を有する燃料噴射弁駆動信号が気体燃料噴射弁１２に供給されるよう、燃料噴射弁駆動回路１６ｅを制御する。
【００６２】
また、上記ステップＳ５において「Ｎｏ」の場合、つまり現在のエンジン運転状態が強制学習運転状態でない場合、ＣＰＵ１５ｋは、強制学習中フラグを「０」にセットし（ステップＳ１４）、２ｎｄ−ＥＣＵ１６から受信した燃料切替信号を基に現在選択中の燃料が液体燃料か気体燃料かを判定する（ステップＳ１５）。
【００６３】
上記ステップＳ１５において現在選択中の燃料が液体燃料である場合、ＣＰＵ１５ｋは、液体燃料によるエンジン運転に切替え（ステップＳ１６）、液体燃料学習値の更新処理を行う（ステップＳ１７）。なお、これらのステップＳ１６及びＳ１７の処理は、上述したステップＳ９及びＳ１０と同じである。
【００６４】
一方、上記ステップＳ１５において現在選択中の燃料が気体燃料である場合、ＣＰＵ１５ｋは、気体燃料によるエンジン運転に切替え（ステップＳ１８）、２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉは気体燃料によるエンジン運転及び気体燃料学習値の更新処理を行う（ステップＳ１９）。なお、これらのステップＳ１８及びＳ１９の処理は、上述したステップＳ１２及びＳ１３と同じである。
【００６５】
以上のような処理を、１ｓｔ−ＥＣＵ１５のＣＰＵ１５ｋ及び２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉが互いに連携して実行することにより、一方の燃料による運転中にエンジン運転状態が他方の燃料の強制学習運転状態にある場合には、燃料切替スイッチ１４の状態に関わらず、他方の燃料によるエンジン運転に自動的且つ強制的に切替わり、他方の燃料についてのフィードバック補正係数が強制学習されることになる。
【００６６】
図３（ａ）は、エンジン始動時に液体燃料が選択されている場合に、冷却水温値に応じて、どのようなタイミングで液体燃料から気体燃料への強制切替及び気体燃料学習値の強制学習が実施されるかを表したタイミングチャートである。
【００６７】
この図に示すように、エンジン始動時から冷却水温値が強制学習許可範囲の下限値に達するまでの期間（図中のｔ０〜ｔ１の期間）では、液体燃料によるエンジン運転及び液体燃料学習値の学習が実施される。そして、時刻ｔ１において、冷却水温値が強制学習許可範囲の下限値に達すると、気体燃料によるエンジン運転に強制的に切替わり、気体燃料学習値の強制学習が実施される。この強制学習は冷却水温値が強制学習許可範囲の上限値に達する時刻ｔ２まで続き、時刻ｔ２以降は再び液体燃料によるエンジン運転に切替わり、液体燃料学習値の学習が実施されることになる。
【００６８】
一方、図３（ｂ）は、エンジン始動時に気体燃料が選択されている場合に、冷却水温値に応じて、どのようなタイミングで気体燃料から液体燃料への強制切替及び液体燃料学習値の強制学習が実施されるかを表したタイミングチャートである。
【００６９】
この図に示すように、エンジン始動時から冷却水温値が強制学習許可範囲の下限値に達するまでの期間（図中のｔ０〜ｔ１の期間）では、気体燃料によるエンジン運転及び気体燃料学習値の学習が実施される。そして、時刻ｔ１において、冷却水温値が強制学習許可範囲の下限値に達すると、液体燃料によるエンジン運転に強制的に切替わり、液体燃料学習値の強制学習が実施される。この強制学習は冷却水温値が強制学習許可範囲の上限値に達する時刻ｔ２まで続き、時刻ｔ２以降は再び気体燃料によるエンジン運転に切替わり、気体燃料学習値の学習が実施されることになる。
【００７０】
以上説明したように、本実施形態によれば、一方の燃料で長期間運転している場合でも、エンジン運転状態が強制学習運転状態になる度に、他方の燃料についての学習値が更新されるため、一方の燃料から他方の燃料へ切替えた際、現在のシステム状態に適した最新の学習値が空燃比フィードバック制御に使用されることになり、燃料切替時におけるエミッションの悪化を防止することが可能となる。
【００７１】
また、一方の燃料によるエンジン運転状態が強制学習運転状態にある場合、他方の燃料の残量が規定量以上か否かを判定し、否の場合には他方の燃料によるエンジン運転への切替えを行わないことにより、強制的な燃料切替えによる燃料供給不足を回避することができる。
【００７２】
なお、本発明は上記実施形態に限定されず、以下のような変形例が挙げられる。
（１）ＲＯＭ１５ｈに記憶された液体燃料学習値及びＲＯＭ１６ｇに記憶された気体燃料学習値は、実空燃比と目標空燃比とのズレ量、言い換えれば、各燃料の供給系の劣化状態を示す指標となる。従って、ＲＯＭ１５ｈに記憶された液体燃料学習値及びＲＯＭ１６ｇに記憶された気体燃料学習値に基づいて、各燃料の供給系に異常が発生したか否かを判定することができる。
【００７３】
例えば、液体燃料供給系の異常を判定する場合、１ｓｔ−ＥＣＵ１５のＣＰＵ１５ｋが、ＲＯＭ１５ｈから最新の液体燃料学習値を読み出し、当該液体燃料学習値が予め設定されている異常検知範囲内に含まれている場合に、液体燃料供給系に異常が発生したと判定する。ここで、異常検知範囲の上限値及び下限値は、エミッションがファールする場合の液体燃料学習値を事前に計測して設定すれば良い。
【００７４】
同様に、気体燃料供給系の異常を判定する場合、２ｎｄ−ＥＣＵ１６のＣＰＵ１６ｉが、ＲＯＭ１６ｇから最新の気体燃料学習値を読み出し、当該気体燃料学習値が予め設定されている異常検知範囲内に含まれている場合に、気体燃料供給系に異常が発生したと判定する。ここで、異常検知範囲の上限値及び下限値は、エミッションがファールする場合の気体燃料学習値を事前に計測して設定すれば良い。
【００７５】
（２）上記実施形態では、エンジン運転制御を行う制御装置が、液体燃料による運転制御を行う１ｓｔ−ＥＣＵ１５と、気体燃料による運転制御を行う２ｎｄ−ＥＣＵ１６とに分割されている場合を例示して説明したが、これに限らず、これら１ｓｔ−ＥＣＵ１５と２ｎｄ−ＥＣＵ１６の機能を１つのＥＣＵに統合しても良い。この場合、ＣＰＵ１５ｋとＣＰＵ１６ｉの機能を１つのＣＰＵに統合し、ＲＯＭ１５ｈとＲＯＭ１６ｇの機能も１つのＲＯＭに統合しても良い。
【符号の説明】
【００７６】
１…クランク角度センサ、２…吸気圧センサ、３…吸気温センサ、４…スロットル開度センサ、５…冷却水温センサ、６…Ｏ２センサ、７燃料圧力センサ、８燃料温度センサ、９…点火コイル、１０…液体燃料噴射弁、１１…燃料ポンプ、１２…気体燃料噴射弁、１３…遮断弁、１４…燃料切替スイッチ、１５…１ｓｔ−ＥＣＵ、１６…２ｎｄ−ＥＣＵ
【図１】
0005427727.tif 000002
【図２】
0005427727.tif 000003
【図３】
0005427727.tif 000004