(57)【要約】【課題】アルコール濃度による空燃比の変化を空燃比学習値に誤って反映するのを抑制する内燃機関の制御装置を提供する。【解決手段】アルコール含有燃料が給油される内燃機関を制御する内燃機関の制御装置であって、燃料給油判定しない場合にもアルコール濃度推定を実施した上で、アルコール濃度推定値が変動した場合には、アルコール濃度の変化による空燃比のずれを反映した空燃比学習値からアルコール濃度の変化による空燃比のずれ分を除去し、適切な空燃比による燃料制御を実施する。また、燃料給油判定しない場合のアルコール濃度推定時には、燃料噴射量を補正する空燃比学習値を燃料給油判定した場合のアルコール濃度推定時の空燃比学習値に切換えることにより、アルコール濃度推定の精度を向上させる。【選択図】図２
2010248967.tif 000002
【特許請求の範囲】
【請求項１】
アルコールとガソリンの混合されたアルコール含有燃料が給油される内燃機関を制御する内燃機関の制御装置であって、
前記アルコール含有燃料のアルコール濃度値を推定するアルコール濃度推定手段と、
前記アルコール濃度推定手段により推定されたアルコール濃度値により燃料量を補正する手段と、
前記内燃機関に供給された燃料混合気の空燃比を学習し、空燃比学習値を得る空燃比学習手段と、
前記アルコール濃度推定手段によりアルコール濃度値を検出した時に前記空燃比学習値を見直す手段と、
を備えたことを特徴とする内燃機関の制御装置。
【請求項２】
前記アルコール濃度推定手段は、所定のエンジン運転時間毎にアルコール濃度推定することを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
前記アルコール濃度推定手段は、アルコール濃度推定する場合に、前回アルコール濃度推定時の空燃比学習値を用いて燃料量を補正することを特徴とする請求項１または請求項２に記載の内燃機関の制御装置。
【請求項４】
前記空燃比学習値を見直す手段は、前記アルコール濃度推定により検出したアルコール濃度に変化がある場合に前記空燃比学習値を見直すことを特徴とする請求項１〜請求項３のいずれか一項に記載の内燃機関の制御装置。
【請求項５】
前記空燃比学習値を見直す手段が、前記アルコール濃度推定により検出したアルコール濃度の変化に基づいて前記空燃比学習値を見直す場合に、現在の空燃比学習値からアルコール濃度変化割合を除去することを特徴とする請求項１〜請求項４のいずれか一項に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アルコールとガソリンの混合されたアルコール含有燃料が給油される内燃機関を制御する内燃機関の制御装置に関するものである。
【０００２】
ガソリンの他にアルコールとガソリンの混合されたアルコール含有燃料が給油された場合でも走行可能な、所謂、フレキシブルフューエルビークル（ＦＦＶ）と言われる自動車がある。
【０００３】
アルコールは、通常のガソリン（混合燃料）に対してＣ（炭素）原子の含有量が異なるため、フレキシブルフューエルビークルに用いられる内燃機関にアルコールとガソリンの混合燃料を供給するにあたっては、燃料内のアルコール濃度値に従って燃料噴射量を調整する必要がある。
【０００４】
このため、このようなフレキシブルフューエルビークルにおいては、燃料内のアルコール濃度値を燃料タンク内に設けられたアルコール濃度センサにより検出したり、排気空燃比に基づいて算出される空燃比フィードバック補正係数の平均値とアルコール濃度値との相関関係により、アルコール濃度推定を行うものが従来から知られている。
【０００５】
例えば、特許文献１においては、燃料給油がなされた場合に、空燃比制御により得られる空燃比補正量の基準値からのずれに基づくアルコール濃度学習を実施する方法が提案されており、給油がなされたか否かの判定を燃料タンク内の燃料量が予め設定された給油判定量以上増加したか否かにより判定する方法が提案されている。
【０００６】
つまり、車両の揺れや燃料レベルセンサの精度を考慮して確実に燃料給油がなされたかを検出し、燃料給油された場合には、燃料に含まれるアルコール濃度が変動している可能性があることから、アルコール濃度推定を実施する方法である。
【０００７】
また、特許文献２においては、例えばアルコール濃度に対応して予め設定された噴射量で燃料を噴射した際に出力されるトルク値と、アルコール濃度に対応して予め設定された基準となるトルク値を比較することによって濃度推定を行うことにより、給油判定しない場合でも定期または不定期にアルコール濃度を推定する方法が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１９８３０号公報（要約の欄、図１）
【特許文献２】特開２００７−１３７３２１号公報（要約の欄、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１において開示された方法では、燃料タンク内の燃料量が予め設定された給油判定量以下の場合には、燃料給油判定がなされないため、燃料給油を検出できない程度の継ぎ足し給油をしたような場合に、給油されたにもかかわらず燃料給油判定されず、アルコール濃度推定を実施しないことになる。
【００１０】
その結果、給油後もアルコール濃度推定されないため、給油前の推定したアルコール濃度と給油後の実際の燃料タンク内に現在ある燃料のアルコール濃度が一致しない場合が発生し、次回燃料給油まで誤ったアルコール濃度推定値にて燃料量を調整することになる。
【００１１】
このため、給油後の燃料のアルコール濃度変化による空燃比のずれは、空燃比フィードバック制御時は前述のフィードバック補正係数で調整されることで解消される。更に、全運転領域で空燃比のずれを解消するために、一般的にはフィードバック補正係数を元に空燃比を学習し、その結果を空燃比学習値として記憶することになる。つまり、アルコール濃度変化は、アルコール濃度推定を実施しない場合、その後のフィードバック制御により最終的には空燃比学習値に反映されることになる。
【００１２】
一方、空燃比学習値は、本来、燃料系デバイスの経年変化やばらつきによる空燃比のずれ量を前述のフィードバック制御により学習し、フィードバック制御時には、前記フィードバック補正係数がリッチ（過濃）側またはリーン（希薄）側のいずれかに偏った値にならないように、また、フィードバック制御時以外は、フィードバック補正係数が反映されないことによる空燃比のずれが生じないように空燃比学習値を反映し、最適な燃料噴射量の調整を行うことが目的である。
【００１３】
また、空燃比学習値を、燃料系の経年変化やばらつきによる空燃比のずれを学習することを利用して、異常に学習値がリッチ側またはリーン側に偏った場合は燃料系に異常が発生していると判断する燃料系異常を検出し、故障判定することにも使用している。
【００１４】
ところが、給油判定できずにアルコール濃度を推定しない場合、アルコール濃度の変化による空燃比のずれを空燃比学習値に反映されてしまうと、本来の目的以外の空燃比のずれを学習してしまうことになり、本来の目的である燃料系デバイスの経年変化やばらつきによる空燃比のずれを十分に学習できなくなり、その結果最適な燃料噴射量を行うことができなくなる恐れがある。
【００１５】
また、燃料系に異常が発生していないにもかかわらず、空燃比学習値にアルコール濃度による空燃比のずれが反映されてしまうことにより、燃料系異常の故障誤判定する場合がある。
【００１６】
更に、アルコール濃度による空燃比の変化分を空燃比学習値として学習後に給油判定し、アルコール濃度推定を行う際に、空燃比学習値にすでに給油判定しなかった場合のアルコール濃度変化による空燃比のずれが反映されていることで、実際のアルコール濃度に応じた空燃比の変化が正しく検出されず、アルコール濃度推定が正しく行えない問題もある。
【００１７】
また、特許文献２において開示された方法のように、燃料給油判定の有無にかかわらず定期または不定期に濃度推定を実施したとしても、アルコール濃度変化があった場合にアルコール濃度を推定する前に空燃比学習が実施された場合、空燃比学習値に誤ってアルコール濃度が反映されることになってしまい、特許文献１で開示された方法と同様の問題が考えられる。
【００１８】
つまり、定期または不定期に濃度推定をした場合でも、空燃比学習を最適に行い、アルコール濃度推定の精度を向上させるには不十分である。
【００１９】
この発明は、前記課題を解決するためになされたもので、アルコール濃度による空燃比の変化を空燃比学習値に誤って反映するのを抑制する内燃機関の制御装置を提供するものである。
【課題を解決するための手段】
【００２０】
この発明に係る内燃機関の制御装置は、アルコールとガソリンの混合されたアルコール含有燃料が給油される内燃機関を制御する内燃機関の制御装置であって、前記アルコール含有燃料のアルコール濃度値を推定するアルコール濃度推定手段と、前記アルコール濃度推定手段により推定されたアルコール濃度値により燃料量を補正する手段と、前記内燃機関に供給された燃料混合気の空燃比を学習し、空燃比学習値を得る空燃比学習手段と、前記アルコール濃度推定手段によりアルコール濃度値を検出した時に前記空燃比学習値を見直す手段と、を備えたものである。
【発明の効果】
【００２１】
この発明の内燃機関の制御装置によれば、アルコール濃度による空燃比の変化を空燃比学習値に誤って反映するのを抑制できる。
【図面の簡単な説明】
【００２２】
【図１】この発明の実施の形態１に係る内燃機関の制御装置の概略構成を示す説明図である。
【図２】この発明の実施の形態１に係る内燃機関の制御装置におけるアルコール濃度推定を実施する制御の流れを示すフローチャートである。
【図３】この発明の実施の形態１に係る内燃機関の制御装置における燃料給油を判定する制御の流れを示すフローチャートである。
【図４】この発明の実施の形態１に係る内燃機関の制御装置におけるアルコール濃度推定の制御の流れを示すフローチャートである。
【図５】この発明の実施の形態１に係る内燃機関の制御装置におけるアルコール濃度推定を実施するタイムチャートである。
【発明を実施するための形態】
【００２３】
以下、添付の図面を参照して、この発明に係る内燃機関の制御装置について好適な実施の形態を説明する。
【００２４】
実施の形態１．
図１は、この発明の実施の形態１に係る内燃機関の制御装置の概略構成を示している。なお、図１に示す内燃機関は、アルコールを含む燃料を用いる内燃機関であって、車両に搭載されるものである。
【００２５】
エンジン１の燃焼室１ａには、点火プラグ２が設けられており、吸気バルブ３を介して吸気マニホールド４が接続されると共に、排気バルブ５を介して排気マニホールド６が接続されている。また、エンジン冷却水の水温を検出する水温センサ７が設けられている。
【００２６】
吸気マニホールド４には、吸入空気量を制御するスロットル弁８と、吸入空気量を測定する吸気量センサ９、及び吸気中に燃料を噴射供給するインジェクタ１０が設けられている。
【００２７】
エンジンコントロールユニット（以下、ＥＣＵと言う。）１１は、噴射指令信号により運転条件に応じて所定の空燃比となるように、吸気中にインジェクタ１０から燃料を噴射供給するように制御している。なお、ＥＣＵ１０には、各種演算処理を実行する中央処理装置であるＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）１２と、制御プログラムを格納したＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）（図示せず）と、各種データを格納するＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）１３と、ＥＣＵ１１への電源供給が行われない場合にもデータを保持するバックアップＲＡＭ（図示せず）が設けられている。
【００２８】
排気マニホールド６には、排気中の酸素濃度を検出することによって排気中の空燃比を算出可能にする空燃比検出手段としての第１酸素濃度センサ１４、第１三元触媒１５、第２酸素濃度センサ１６、及び第２三元触媒１７が設けられている。
【００２９】
第１三元触媒１５、第２三元触媒１７は、理論空燃比を中心とする、所謂、ウィンドウに空燃比がある場合に最大の転化効率をもって排気中のＮＯｘ（窒素酸化物）、ＨＣ（炭化水素）、ＣＯ（一酸化炭素）を同時に浄化できるため、ＥＣＵ１１では、三元触媒１５の上流側に設けた第１酸素濃度センサ１４からの出力に基づいて排気空燃比が前述のウィンドウの範囲内で変動するように、排気空燃比のフィードバック（以下、Ｆ／Ｂと言う。）制御を行う。
【００３０】
また、ＥＣＵ１１には回転数センサ１８からの信号が入力され、エンジン回転数を検出すると共に、エンジン運転状態を把握することが可能となっている。
【００３１】
前述の通り、アルコールを含む燃料は、通常のガソリンに対してＣ（炭素）原子の含有量が異なるため、同一の当量比を得るには大きな噴射量が要求されることになり、アルコールとガソリンの混合燃料をエンジンに供給するにあたっては、燃料内のアルコール濃度値に従って燃料噴射量を調整する必要がある。
【００３２】
ＥＣＵ１１では、燃料貯溜装置（以下、燃料タンクと言う。）１９に設けられている燃料レベルセンサ２０の出力値が増加した場合、エンジン運転時間が所定時間を越えた場合にアルコール濃度推定を行う。
【００３３】
そこで、図１に示す本実施の形態における内燃機関の制御装置のＥＣＵ１１内における実際の処理について、図２〜図４のフローチャートに従って説明する。
【００３４】
図２〜図４は、アルコール濃度推定の実施、燃料演算用空燃比学習値の切換え、空燃比学習値の見直しをするまでのフローチャートであり、ＥＣＵ１１の動作中に繰り返し実行される。
【００３５】
図２は、ＥＣＵ１１の動作中の燃料演算、空燃比学習、アルコール濃度推定実施時の燃料演算用空燃比学習値の切換え、及びアルコール濃度推定完了時の空燃比学習値の見直しをするルーチンである。
【００３６】
図２の判定ルーチンにおいて、ＥＣＵ１１は、まずステップＳ２００では燃料給油判定処理を実施する。その燃料給油判定処理については図３のフローチャートで説明する。
【００３７】
図３の燃料給油判定処理では、まずステップＳ３０１にて、今回、燃料レベルセンサ２０の出力値により検出された燃料タンク１９内の燃料量今回値ＦＴＡＮＫとして更新し、ステップＳ３０２に進む。
【００３８】
ステップＳ３０２では、前回ステップＳ３０３で更新された燃料タンク１９内の燃料量前回値ＦＴＡＮＫＢと今回値ＦＴＡＮＫを比較する。そして、今回値ＦＴＡＮＫの方が小さければ、すなわち燃料タンク１９内の燃料量が前回に比べて減少していると判定し、ステップＳ３０３へ進み、前回値ＦＴＡＮＫＢを更新した後にステップＳ３０４へ進む。
【００３９】
ステップＳ３０２において、今回値ＦＴＡＮＫが大きければ、すなわち燃料タンク１９内の燃料量が増加していると判定し、ステップＳ３０３をスキップしてＳ３０４へ進む。
【００４０】
つまり、ステップＳ３０３では燃料量が消費されて減少しているか、給油などにより増加しているかを判定し、燃料を消費している場合にのみ、前回値ＦＴＡＮＫＢを更新している。
【００４１】
なお、今回値ＦＴＡＮＫ及び前回値ＦＴＡＮＫＢは、ＥＣＵ１１内のメモリ（例えば、ＲＡＭ１３）に格納される情報であって、図示しないバックアップＲＡＭにより、ＥＣＵ１１の電源が切れたときも再電源ＯＮで情報は保持しており、最初の電源ＯＮ時の今回値ＦＴＡＮＫ、前回値ＦＴＡＮＫＢの初期値は、例えば、燃料レベルセンサ２０の出力値を格納するなどして不定値にならないようにしてある。
【００４２】
次に、ステップＳ３０４では給油量ＦＴＡＮＫＩＮを下式により求めている。
ＦＴＡＮＫＩＮ＝ＦＴＡＮＫ−ＦＴＡＮＫＢ
前記前回値ＦＴＡＮＫＢは、前述の通り燃料タンク１９内の燃料が消費されたときに更新されている。つまり、燃料が消費されているときには、ＦＴＡＮＫ＜ＦＴＡＮＫＢであり、ＦＴＡＮＫＩＮ＜０となって給油はされていない状態といえる。
【００４３】
一方、燃料タンク１９内の燃料が増加しているときは、前回値ＦＴＡＮＫＢは更新されないため、ＦＴＡＮＫ≧ＦＴＡＮＫＢであり、ＦＴＡＮＫＩＮ≧０となって、給油されているかも知れない状態となっているといえる。つまり、前記演算により求めた給油量ＦＴＡＮＫＩＮを使用することにより、給油されたか否かをステップＳ３０５で判定することになる。
【００４４】
ステップＳ３０５では、給油量ＦＴＡＮＫＩＮが予め設定された給油判定量より大きいか否かで給油されたか否かを判定している。ここで、給油量ＦＴＡＮＫＩＮは、前述の通り、燃料レベルセンサ２０の出力値から求められた情報を元に演算された結果である。また、燃料レベルセンサ２０の出力値は必ずしも給油された場合にのみ増加側に変動するとは限らない。燃料タンク１９の揺れなどでも変動する可能性はある。
【００４５】
そのため本実施の形態では、確実に給油したことを判定する方法の一例として、前述の通りステップＳ３０５である程度給油量ＦＴＡＮＫＩＮが大きくなったとき、すなわち燃料タンク１９内の燃料が消費状態から増加となってある一定量をこえた時に給油判定をするようにしたが、給油したことが判定できれば本判定方法に限らなくてもよい。
【００４６】
ステップＳ３０５にて給油判定された場合には、ステップＳ３０６へ進み、給油したことを判定するためのフラグＦＬＡＧ１をセットし、本ルーチンの処理を終える。ステップＳ３０５で給油判定されなかった場合は、ステップＳ３０６はスキップされ、本ルーチンの処理を終える。
【００４７】
ここで、ＦＬＡＧ１はＥＣＵ１１内のメモリ（例えば、ＲＡＭ１３）に格納される情報であって、前述の通り、ＥＣＵ１１の電源が切れたときも再電源ＯＮで情報は保持しており、後述の図２のフローで濃度推定が実施されるまでは給油判定結果は保持される。
【００４８】
ここで図２に戻り、ステップＳ２００で給油判定処理した後は、ステップＳ２０１でアルコール濃度推定許可判定処理を実施する。アルコール濃度推定許可判定処理については図４のフローチャートで説明する。
【００４９】
図４に示すように、アルコール濃度推定許可判定処理では、まずステップＳ４００でＦＬＡＧ１が１であるかどうか、すなわち給油がなされているかどうか判定する。給油がなされていると判定すれば、ステップＳ４０１へ進み、アルコール濃度推定許可判定を実行することになる。
【００５０】
給油がなされていなければ、ステップＳ４０２へ進み、後述するエンジン運転時間Ｔ１が予め設定された所定時間Ｔｓ以上か否かの判断を行い、所定時間Ｔｓ以上であればステップＳ４０１へ進み、アルコール濃度推定許可判定を実行することになる。
【００５１】
ここで、前記所定時間Ｔｓは、給油判定されていないにもかかわらず継ぎ足し給油などで燃料の補給が行われていなければ、本来、エンジンが運転できないような時間を設定する。
【００５２】
また、前記の所定時間Ｔｓは、エンジンの燃料タンクの容量と燃費性能などで推測可能であり、また実験的に求めた値に対して、ある程度余裕を持たせた値にするなどして設定することができる。
【００５３】
ステップＳ４０２の判定で、エンジン運転時間Ｔ１が所定時間Ｔｓ未満であれば、ステップ４０５でアルコール濃度推定を許可しないこととし、許可フラグＦＬＡＧ３＝０とし、ステップＳ４０６で後述の濃度推定完了判定で使用するアルコール濃度推定時間Ｔ２＝０として本ルーチンの処理を終える。
【００５４】
よって、ステップＳ４０２は、給油判定がなされていなくても、継ぎ足し給油などで燃料タンク１９内のアルコール濃度が変化した可能性が高い場合には、アルコール濃度推定許可判定を実行するための処理である。
【００５５】
次に、ステップＳ４０１では空燃比Ｆ／Ｂ制御中か否かを判定する。空燃比Ｆ／Ｂ制御中であれば濃度推定許可と判定してステップＳ４０３へ進み、アルコール濃度推定可能とみなしてアルコール濃度推定許可フラグＦＬＡＧ３＝１とする。
【００５６】
その後、ステップＳ４０４でアルコール濃度推定時間Ｔ２をカウントし、本ルーチンの処理を終える。
【００５７】
ステップＳ４０１において、空燃比Ｆ／Ｂ制御中でなければ、ステップＳ４０５、ステップＳ４０６の処理を実行し、本ルーチンの処理を終える。
【００５８】
つまり、本実施の形態では、図４のアルコール濃度推定許可判定処理は給油判定がなされた場合か、エンジン運転時間が所定時間Ｔｓ経過した場合の空燃比Ｆ／Ｂ制御中であればアルコール濃度推定を許可する判定としている。
【００５９】
ここで、エンジン運転時間Ｔ１は、ＥＣＵ１１内のメモリ（例えば、ＲＡＭ１３）にあって、ＥＣＵ１１の電源がＯＮからＯＦＦ、ＯＦＦからＯＮにかかわらず、エンジン運転停止や運転を繰りかえした場合のエンジン運転時間をカウントするものであり、初めての電源ＯＮ時の初期値は０としてある。また、濃度推定時間Ｔ２、ＦＬＡＧ３についてはＥＣＵ１１内のＲＡＭ１３に格納される情報である。
【００６０】
なお、ここではアルコール濃度推定可否判断を行うための条件に空燃比Ｆ／Ｂ制御中か否かを用いたが、空燃比を用いたアルコール濃度推定が可能であれば、特に方法はどのような方法でもよく、また、濃度推定許可判定条件も必要に応じて、例えば、水温センサ７による水温情報や、回転数センサ１８によるエンジン回転情報などのほかの情報についての条件を追加しても何ら差し支えない。
【００６１】
また、本実施の形態では、エンジン運転時間Ｔ１の条件以外でアルコール濃度推定する条件の一例として給油判定を説明したが、無駄な処理を省くために給油判定処理を省くことも可能である。
【００６２】
再び図２に戻り、ステップＳ２０２以降の処理について説明する。
ステップＳ２０２では、図４で判定されたアルコール濃度推定許可フラグＦＬＡＧ３が１か否か、即ち、アルコール濃度推定許可条件が成立しているか否かの判断を行う。アルコール濃度推定許可条件が不成立ＦＬＡＧ３＝０と判断された場合は、ステップＳ２０３へ進む。
【００６３】
ステップＳ２０３では、エンジン回転数が０ｒｐｍか否かの判断、即ち、エンジン運転中か否かの判断を行う。エンジン回転数が０ｒｐｍでない（エンジン運転中）と判断された場合は、ステップＳ２０４にてエンジン運転時間Ｔ１をカウントし、ステップＳ２０５に移行する。逆にエンジン回転数が０ｒｐｍ（エンジン運転中でない）と判断された場合は、エンジン運転時間Ｔ１をカウントせずにステップＳ２０５に移行する。
【００６４】
エンジン運転時間Ｔ１は、前述の図４のステップＳ４０２で給油判定がなされていなくても、継ぎ足し給油などで燃料タンク１９内のアルコール濃度に変化した可能性が高いか否かを判定するために用いられる値である。
【００６５】
ステップＳ２０５では、燃料噴射量演算を行う。一般に燃料噴射量の演算には、回転数センサ１８で検出された回転数と吸気量センサ９で検出された吸入空気量とに基づいて基本燃料噴射量Ｆｕｅｌ_Ｂａｓｅを演算する。そして、その基本燃料噴射量Ｆｕｅｌ_Ｂａｓｅを、空燃比学習値ＡＦＬＲＮ、アルコール濃度推定値ＡＬＣＨから予め設定されたアルコール濃度に対する補正係数Ｋ_ＡＬＣＨ、内燃機関の温度（冷却水温）等に基づく環境補正Ｋ_ＥＮＶ、及び空燃比Ｆ／Ｂ中の空燃比Ｆ／Ｂ補正係数αに基づき補正することで燃料噴射量Ｆｕｅｌを決定しており、例えば、次の（１）式で与えられる。
Ｆｕｅｌ＝Ｆｕｅｌ_ｂａｓｅ×ＡＦＬＲＮ×Ｋ_ＡＬＣＨ×Ｋ_ＥＮＶ×α
・・・・・・（１）
【００６６】
なお、空燃比Ｆ／Ｂ中でない場合は、αは強制的に１．０に設定されたり、エンジンの運転条件により他の固定値として扱われたりする場合もあるが、空燃比Ｆ／Ｂ中でない場合のαの処置については、この発明の主旨とは直接的な関係が薄いので説明は割愛する。
【００６７】
次に、ステップＳ２０６にてアルコール濃度推定値前回値ＡＬＣＨ_ＯＬＤにアルコール濃度推定値ＡＬＣＨを代入し、アルコール濃度推定値前回値の更新を行い、ステップＳ２１７に移行する。本情報は後述する濃度推定完了後における空燃比学習値の見直しのために、濃度推定を実施しないときに前回値として記憶しておく処置である。
【００６８】
ステップ２１７では、空燃比学習条件が成立しているか否かを判定し、成立していればステップＳ２１８に進み空燃比学習を行う。
【００６９】
ここで、ステップＳ２１７の空燃比学習条件について説明する。空燃比学習条件には、一般に、空燃比Ｆ／Ｂ中であることや、内燃機関の温度（冷却水温）等の環境条件などが挙げられるが、ここでは学習が適正に行える条件であれば特に条件についてはこだわらない。
【００７０】
ステップＳ２１８では、空燃比学習値ＡＦＬＲＮを算出する。ここで、空燃比学習方法の一例について説明する。空燃比学習値ＡＦＬＲＮは、一般に、空燃比Ｆ／Ｂ中に空燃比Ｆ／Ｂ補正係数αの平均値αａｖｅが基準値１．０（空燃比＝理論空燃比１４．７）より大きい場合に、空燃比学習値前回値ＡＦＬＲＮ（ｎ−１）に予め設定された所定値を加算する。逆に、空燃比Ｆ／Ｂ補正係数αの平均値αａｖｅが基準値１．０より小さい場合は、空燃比学習値前回値ＡＦＬＲＮ（ｎ−１）から予め設定された所定値を減算する。
【００７１】
つまり、空燃比Ｆ／Ｂ中に空燃比Ｆ／Ｂ補正係数αの定常的な値が基準値１．０（空燃比＝理論空燃比１４．７）に対して、リッチであるかリーンであるかを判定し、急激な空燃比の変動がないように徐々に空燃比学習を行い、（１）式の演算式に反映し、ＥＣＵ１１動作中は、図２の処理が繰り返し実行されることで最終的にはαが基準値１．０（空燃比＝理論空燃比１４.７）近傍となるようになっている。
【００７２】
ステップＳ２１８の処理が終了すれば、図２のルーチンを終了する。
【００７３】
次に、ステップＳ２０２において、アルコール濃度推定許可条件成立ＦＬＡＧ３＝１と判断された場合の処理につき説明する。
ステップＳ２０２でアルコール濃度推定開始条件成立ＦＬＡＧ３＝１と判断された場合は、ステップＳ２１９に進み給油判定されたか否かをＦＬＡＧ１により判定する。
【００７４】
ステップＳ２１９でＦＬＡＧ１＝１、即ち、給油判定されている状態であれば、ステップＳ２２３へ進み、ステップＳ２２３で前記（１）式と同一の演算式で燃料噴射量Ｆｕｅｌを設定する。
【００７５】
ステップＳ２１９でＦＬＡＧ１＝０、即ち、給油判定されていない状態であれば、ステップＳ２０７へ進む。
【００７６】
ステップＳ２０７では給油判定されていない場合のアルコール濃度推定のための燃料噴射量の演算を行う。ここでの燃料噴射量の演算には、ステップＳ２０５にて説明した基本燃料噴射量と（１）式と類似の演算を行うが、次の（２）式の通り、演算に使用する空燃比学習値がステップＳ２０５の場合と異なり、前回濃度推定完了時に見直された空燃比学習値ＡＦＬＲＮ１を使用している。
Ｆｕｅｌ＝Ｆｕｅｌ_ｂａｓｅ×ＡＦＬＲＮ１×Ｋ_ＡＬＣＨ×Ｋ_ＥＮＶ×α
・・・・・・（２）
【００７７】
ここで、前回アルコール濃度推定完了時に見直された空燃比学習値ＡＦＬＲＮ１を使用する理由について説明する。
【００７８】
継ぎ足し給油などで、燃料タンク１９内のアルコール濃度が変化したにもかかわらずアルコール濃度推定が実施されない状態では、アルコール濃度変化量が空燃比Ｆ／Ｂ中に空燃比Ｆ／Ｂ補正係数αに反映されることになる。
【００７９】
前述の通り、濃度推定しない場合はステップＳ２１７の学習条件が成立すればステップＳ２１８で空燃比学習を実施することになり、つまりは、アルコール濃度変化が含まれた空燃比Ｆ／Ｂ補正係数αにより空燃比学習されることになる。よってこの場合、空燃比学習値ＡＦＬＲＮはアルコール濃度変化が含まれた値になってしまう。
【００８０】
従って、前述のアルコール濃度変化が含まれた学習値を使用しないで、前回濃度推定時に見直された学習値がより適正な値と考えられるため、ＡＦＬＲＮ１を使用して燃料演算する方が後述のＦ／Ｂ補正値を使用して濃度推定を実施した場合、Ｆ／Ｂ補正値にのみアルコール濃度変化量が反映されることになり、より精度よいアルコール濃度推定が実施できる。
【００８１】
この場合、空燃比Ｆ／Ｂ補正係数αは初期値１．０としてもよいが、使用する空燃比学習値が変更されることによる空燃比Ｆ／Ｂ補正係数の変動分（例えば、ＡＦＡＬＲＮとＡＦＬＲＮ１の偏差）を予め初期値として設定するなどして、アルコール濃度推定実施前後で、急激な燃料噴射量の変化を抑制すればよりよい。
【００８２】
本実施の形態では、給油判定している状態と給油判定していない状態で演算式を分けて、給油判定している状態でのアルコール濃度推定時には、後述の通り学習値を見直さず、給油判定していない状態でのアルコール濃度推定時にのみ見直す方式として説明する。
【００８３】
次に、ステップ２０７で燃料演算され噴射する燃料量を設定した後は、ステップＳ２２０でアルコール濃度推定が実施される。
【００８４】
以下に本実施の形態におけるステップＳ２２０でのアルコール濃度推定方法について説明する。
アルコール燃料の理論空燃比（例えばエタノール１００％の場合は８．９）は、ガソリンの理論空燃比（例えば、１４．７）よりも小さく、アルコール燃料を使用した場合にガソリンと同じ条件で燃料噴射制御を実施すると燃料噴射量が不足するため、Ｆ／Ｂ制御にて空燃比Ｆ／Ｂ補正係数αを変化させることにより、燃料噴射量の調節を行う。このアルコール濃度の変化が、Ｆ／Ｂ制御の空燃比Ｆ／Ｂ補正係数αの変化に反映されることにより、以下に示す手段にて空燃比Ｆ／Ｂ補正係数αよりアルコール濃度を算出することができる。
【００８５】
アルコール濃度推定値の算出は、まず、Ｆ／Ｂ中の空燃比Ｆ／Ｂ補正係数αの最大値αｍａｘ及び最小値αｍｉｎを読み込み、αｍａｘ、αｍｉｎの平均値、即ち、空燃比Ｆ／Ｂ補正係数αの平均値αａｖｅを算出する。
αａｖｅ＝（αｍａｘ＋αｍｉｎ）／２
そして、前記平均値αａｖｅと、空燃比Ｆ／Ｂ補正係数αによる補正が実質的に行われないことになる基準値１．０との偏差ΔＭを算出する。
ΔＭ＝αａｖｅ−１．０
あらかじめ設定してある前記偏差ΔＭを軸とするマップより、アルコール濃度推定値（ＡＬＣＨ）を算出する。ここで、前記ΔＭが大きいほど、より大きなアルコール濃度を算出する。
【００８６】
本実施の形態では、空燃比Ｆ／Ｂ補正係数αを用いてアルコール濃度を算出したが、アルコール濃度が算出できれば特にその方法についてはこだわらない。
【００８７】
次に、ステップＳ２２１では、アルコール濃度推定時間Ｔ２が予め設定されたアルコール濃度推定に所要する時間以上か否かの判断を行う。アルコール濃度推定時間Ｔ２が所定時間以上と判断された場合は、ステップＳ２２２にてアルコール濃度推定完了フラグをセットＦＬＡＧ５＝１し、当該処理を終了する。逆に、アルコール濃度推定時間Ｔ２が所定時間未満と判断された場合は、当該処理を終了する。
【００８８】
これは、前述のアルコール濃度推定を実施する上では空燃比Ｆ／Ｂ補正係数αがある程度安定した値となるために時間を要するための処置で、本実施の形態ではアルコール濃度推定のためのアルコール濃度推定時間Ｔ２は前述の図４のステップＳ４０４でカウントされた濃度推定許可となってからの時間である。
【００８９】
次に、ステップＳ２０８ではＦＬＡＧ５＝１か否か、つまりアルコール濃度推定完了か否かの判定を行う。アルコール濃度推定未完了ＦＬＡＧ５＝０と判断された場合は、以下の処理をスキップし本ルーチンの処理を終える。
【００９０】
アルコール濃度推定完了ＦＬＡＧ５＝１と判断された場合は、ステップＳ２０９にてＦＬＡＧ１＝１か否か、つまり燃料給油判定したか否かの判断を行い、燃料給油判定していないＦＬＡＧ１＝０と判断された場合は、ステップＳ２１０にてアルコール濃度推定値の変化量が予め設定された判定値以上か否かの判断を行う。この判定では、アルコール濃度推定値ＡＬＣＨとアルコール濃度推定値前回値ＡＬＣＨ_ＯＬＤの絶対差｜ＡＬＣＨ−ＡＬＣＨ_ＯＬＤ｜が判定値以上か否かの判断を行う。
【００９１】
アルコール濃度の今回値と前回値の偏差｜ＡＬＣＨ−ＡＬＣＨ_ＯＬＤ｜の判定を実施するのは、見直すための十分なアルコール濃度偏差があるかどうかを判定するためで、濃度偏差が少ない場合は、例えば誤差範囲として学習値の見直しを行わないためである。
【００９２】
ここで、アルコール濃度推定値の変化量が判定値以上と判断された場合は、ステップＳ２１１にて空燃比学習値の見直しを行う。逆に燃料給油判定したＦＬＡＧ１＝１と判断された場合、及びアルコール濃度推定値の変化量が判定値未満と判断された場合は、ステップＳ２１２に移行する。
【００９３】
つまり、燃料給油判定されていないアルコール濃度推定時の場合は、前回アルコール濃度推定時から十分時間がたっており、その間継ぎ足し給油などでアルコール濃度が変化し、学習値に誤って反映されている可能性が高いため、その場合に学習値を見直していることになる。燃料給油判定がなされた場合にはその限りではなく、学習値の見直しを行っていない。
【００９４】
ここで、ステップＳ２１１での空燃比学習値見直し方法について説明する。アルコール濃度推定値が更新された場合には、空燃比学習値にアルコール濃度による空燃比の変化が反映されていることが考えられるため、以下に示す手段にて空燃比学習値からアルコール濃度による空燃比の変化を除去する。
【００９５】
空燃比学習値ＡＦＬＲＮのリセット方法としては、リセット前の空燃比学習値ＡＦＬＲＮ、現在のアルコール濃度推定値ＡＬＣＨ、アルコール濃度推定値前回値ＡＬＣＨ_ＯＬＤから、前記（１）式で説明した予めアルコール濃度に応じて設定された補正係数Ｋ_ＡＬＣＨ、アルコール濃度推定値前回値による補正係数Ｋ_ＡＬＣＨ_ＯＬＤを使用する。
【００９６】
そして、リセット前の空燃比学習値すなわちアルコール濃度推定前の空燃比学習値をＡＦＬＲＮ（ｎ−１）とした場合、アルコール濃度推定値に応じた補正係数の変化割合を乗算することで空燃比学習値ＡＦＬＲＮのリセットを行う。
ＡＦＬＲＮ＝ＡＦＬＲＮ（ｎ−１）×Ｋ_ＡＬＣＨ_ＯＬＤ÷Ｋ_ＡＬＣＨ
【００９７】
つまり、今回アルコール濃度推定で、前回の空燃比学習値を使用することによって得られたアルコール濃度の変化量は、アルコール濃度推定前の空燃比学習値に反映されているため、その分だけ空燃比学習値に補正することになり、空燃比学習値ＡＦＬＲＮに誤って反映されたアルコール濃度の変化量を除去し適正な値にリセットすることができる。
【００９８】
次に、ステップＳ２１２からステップＳ２１５まではアルコール濃度推定完了時の処置であり、次回のアルコール濃度推定に備える処置である。
【００９９】
ステップＳ２１２で空燃比学習値ＡＦＬＲＮ１に空燃比学習値ＡＦＬＲＮを設定し、ステップＳ２１３にて燃料給油判定フラグをクリアＦＬＡＧ１＝０し、ステップＳ２１４にてアルコール濃度推定開始条件フラグをクリアＦＬＡＧ３＝０し、ステップＳ２１５にてエンジン運転時間Ｔ１を０にリセットし本ルーチンの処理を終える。
【０１００】
以上のように、実施の形態１に係る内燃機関の制御装置について説明したが、この発明は、この実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内にて、種々の態様を採ることができる。例えば、本実施の形態では、ステップＳ２００の燃料給油判定手段を図３にて説明したが、燃料給油が検出できれば特に判定手段はこだわらない。
【０１０１】
また、本実施の形態では、ステップＳ４１５のアルコール濃度推定手段は、空燃比変化に基づくアルコール濃度推定が実施できれば特に推定手段はこだわらない。
【０１０２】
また、本実施の形態では、エンジン運転時間の条件以外でアルコール濃度推定する条件の一例として給油判定を説明したが、無駄な処理を省くために給油判定処理は省くことも可能である。給油判定処理を省いた場合は、ステップＳ２１９、ステップＳ２２３、ステップＳ２０９の処理を省くことになる。
【０１０３】
以上のように、実施の形態１に係る内燃機関の制御装置について説明したが、次に、図５によりその効果についてタイムチャートを用いて説明する。
【０１０４】
図５はアルコール濃度推定を実施するタイムチャートで、実線が実施の形態１に係る内燃機関の制御装置の動作を示し、点線が従来技術の動作を示している。
【０１０５】
まず、時刻ｔ０までは燃料タンク１９内のアルコール濃度が０％である状態で、時刻ｔ０のタイミングで燃料を給油し、燃料タンク１９内のアルコール濃度が３０％に変動する。また、ここで燃料給油判定を行う。
【０１０６】
時刻ｔ０から時刻ｔ１までは、アルコール濃度の影響により空燃比が変動し、その変動した空燃比からアルコール濃度推定により、時刻ｔ１のタイミングでアルコール濃度推定値３０％を算出する。一般にアルコール濃度推定値を算出した場合は、空燃比をリセットしている。
【０１０７】
次に、時刻ｔ２のタイミングで継ぎ足し給油を行い、燃料タンク１９内のアルコール濃度が４０％に増加する。ここでは、燃料給油判定しないため、アルコール濃度推定は実施しない。時刻ｔ２から時刻ｔ３までの期間は、アルコール濃度の影響により、空燃比が変動している。
【０１０８】
そして、時刻ｔ３のタイミングから空燃比学習により空燃比学習値が変動する。これにより、時刻ｔ３から時刻ｔ４までに空燃比は１．０に収束し、空燃比学習値はアルコール濃度の変化による空燃比の変動を吸収する。
【０１０９】
次に、時刻ｔ５のタイミングから、給油判定に関わらないアルコール濃度推定を実施する。ここで、従来技術では、燃料演算にアルコール濃度１０％分の空燃比の変動を吸収した空燃比学習値を使用するため、空燃比が変動せず、アルコール濃度推定を実施してもアルコール濃度推定値は変化しない。
【０１１０】
しかし、実施の形態１に係る内燃機関の制御装置では、燃料演算用空燃比学習値を前回アルコール濃度推定完了時の空燃比学習値に置き換える。これにより、空燃比は変動を開始する。その変動した空燃比からアルコール濃度推定により時刻ｔ６のタイミングでアルコール濃度推定値４０％を算出し、空燃比をリセットする。ここで、アルコール濃度推定値が変動したため、空燃比学習値を見直し、アルコール濃度の影響による変化分を除去する。
【０１１１】
次に、時刻ｔ７のタイミングで燃料給油を行い、燃料タンク１９内のアルコール濃度が８０％に変動する。時刻ｔ７から時刻ｔ８までに空燃比がアルコール濃度の影響により変動し、時刻ｔ８のタイミングで変動した空燃比からアルコール濃度推定が完了する。空燃比をリセットする。ここで、従来技術では、空燃比学習値にアルコール濃度１０％分の影響を吸収しているため、アルコール濃度推定値は７０％となり、燃料タンク１９内のアルコール濃度とアルコール濃度推定値が一致せず、空燃比学習値にもアルコール濃度１０％の影響を吸収したままとなる。
【０１１２】
逆に、実施の形態１に係る内燃機関の制御装置では、アルコール濃度推定値８０％を算出し、燃料タンク１９内のアルコール濃度とアルコール濃度推定値が一致し、アルコール濃度の影響を空燃比学習値には反映しなくすることができる。
【０１１３】
このように、実施の形態１に係る内燃機関の制御装置によれば、アルコール濃度推定を実施した時に、例えば継ぎ足し給油などで濃度が変化した状態にもかかわらず、給油判定できずＥＣＵ１１がアルコール濃度の変化を引き起こすことがあったことを検知できない状態で、今回推定したアルコール濃度が前回推定したアルコール濃度から変化した場合に、アルコール濃度の変化は空燃比の変化分による変化とみなして空燃比学習値から除去する。つまり、アルコール濃度による空燃比の変化を空燃比学習値に誤って反映することを抑制することができる。これにより、経年変化やばらつきによる空燃比のずれを空燃比学習値に最適に反映することができる。
【０１１４】
また、空燃比学習値に最適に反映することで燃料系異常を検出する燃料システムモニタの故障誤判定を防止することができる。
【０１１５】
更に、燃料給油に関わらないアルコール濃度推定時には、燃料量の調整にアルコール濃度の変化による空燃比の変化を含まない前回給油判定時の空燃比学習値により学習値見直すことで、最適な空燃比学習値を燃料噴射量に反映することができ、アルコール濃度推定の精度を向上させることができる。
【符号の説明】
【０１１６】
１  エンジン
１ａ  燃焼室
２  点火プラグ
３  吸気バルブ
４  吸気マニホールド
５  排気バルブ
６  排気マニホールド
７  水温センサ
８  スロットル弁
９  吸気量センサ
１０  インジェクタ
１１  エンジンコントロールユニット（ＥＣＵ）
１２  ＣＰＵ
１３  ＲＡＭ
１４  第１酸素濃度センサ
１５  第１三元触媒
１６  第２酸素濃度センサ
１７  第２三元触媒
１８  回転数センサ
１９  燃料貯溜装置（燃料タンク）
２０  燃料レベルセンサ
【図１】
2010248967.tif 000003
【図２】
2010248967.tif 000004
【図３】
2010248967.tif 000005
【図４】
2010248967.tif 000006
【図５】
2010248967.tif 000007