説明

船外機用内燃機関の空燃比制御装置、空燃比制御方法およびプログラム

【課題】エンジン回転数に応じて発生する空燃比のズレを、エンジン回転数のゾーン毎に補正できるようにする。
【解決手段】所定のエンジン回転数域にあるときに内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御手段と、前記オープンループ制御手段により目標空燃比を所定の希薄側の空燃比に制御している状態から、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記O2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御手段と、前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出手段と、を有し、前記所定のエンジン回転数域を複数のゾーンに分けて、各ゾーンで学習値を設定している。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、船外機用内燃機関の空燃比制御装置、空燃比制御方法およびプログラムに関するものである。特に、船外機用内燃機関の空燃比を所定の希薄側の空燃比に制御する場合に用いられて好適である。
【背景技術】
【0002】
従来から内燃機関の空燃比を制御しようとする場合、内燃機関の排気系に配置される空燃比センサやO2センサが用いられている。空燃比センサは、O2センサよりも広い範囲で空燃比を精度よく検出することができるものの、O2センサよりも高価であり内燃機関のコストアップの要因になってしまう。一方、O2センサは、空燃比センサよりも安価であるものの、空燃比が理論空燃比近傍でしか検出することができない。具体的には、O2センサは、内燃機関の実際の空燃比が理論空燃比に対してリーン側(希薄側)であるかリッチ側であるかを検出することしかできない。
【0003】
一方、燃費を向上させるために、空燃比を理論空燃比よりも所定の希薄側の空燃比にして運転する場合がある。このような場合、実際の空燃比が所定の希薄側の空燃比になっていれば、燃費を向上させることができるが、例えばインジェクタ等の部品のばらつきにより、実際の空燃比が、所定の希薄側の空燃比に対してズレた空燃比になっている場合がある。しかしながら、O2センサでは、上述したように実際の空燃比が理論空燃比に対してリーン側であるかリッチ側であるかを検出するのみであり、実際の空燃比が所定の希薄側の空燃比になっているか否かは検出できない。
【0004】
このような問題に対して特許文献1では、まず理論空燃比を目標の空燃比にして運転させ、O2センサを用いて実際の空燃比とのズレをフィードバック制御によりフィードバック補正係数を算出しながら補正する。次に、フィードバック補正係数から学習補正係数を算出して、算出した学習補正係数を適用してオープンループ制御することで、実際の空燃比を所定の希薄側の空燃比に制御するようにしている。したがって、特許文献1に記載の内燃機関の空燃比制御によれば、O2センサを用いても、内燃機関の実際の空燃比を所定の希薄側の空燃比に制御することができ、燃費の向上を図ることができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開昭57−105530号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
船外機は、自動二輪車や自動車等の車両と異なり、様々な種類の船体に搭載することが可能である。例えば高速船や重量船に取り付けたり、あるいは1つの船体に複数の船外機が搭載されたりする場合がある。このように使用環境が異なる場合、内燃機関では目標の空燃比に対する実際の空燃比のズレが生じてしまう。
【0007】
また、諸外国を中心に内燃機関の燃料としてアルコール混合ガソリンが使用されるようになっている。純正ガソリンとアルコール混合ガソリンとでは、理論空燃費が異なるので、内燃機関についての燃料噴射量等も異なる。したがって、純正ガソリンからアルコール混合ガソリンに燃料を変更したときにも、内燃機関では目標の空燃比に対する実際の空燃比のズレが生じてしまう。
【0008】
一方、内燃機関で生じる目標空燃比に対する実際の空燃比のズレは、上述したようなインジェクタ等の部品のばらつき、使用環境や燃料の変更に起因して発生する場合だけでなく、運転領域(エンジン回転数)に応じて発生する場合がある。この場合、あるエンジン回転数域での空燃比のズレを基準にして空燃比のズレを補正すると、逆にそれが他のエンジン回転数域での空燃比のズレとなってしまうおそれもある。
【0009】
本発明は、上述したような問題点に鑑みてなされたものであり、エンジン回転数に応じて発生する空燃比のズレを、エンジン回転数のゾーン毎に補正できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る船外機用内燃機関の空燃比制御装置は、内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するO2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御装置であって、所定のエンジン回転数域にあるときに前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御手段と、前記オープンループ制御手段により目標空燃比を所定の希薄側の空燃比に制御している状態から、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記O2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御手段と、前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出手段と、を有し、前記所定のエンジン回転数域を複数のゾーンに分けて、前記各ゾーンで学習値を設定したことを特徴とする。
また、本発明の船外機用内燃機関の空燃比制御装置の他の特徴とするところは、前記学習値算出手段は、前記フィードバック補正係数に基づいて算出した学習値を、前記記憶部の全ゾーンの学習値に書き換えることと、前記記憶部の現在のエンジン回転数が属するゾーンの学習値にのみ書き換えることとを選択的に実行する点にある。
また、本発明の船外機用内燃機関の空燃比制御装置の他の特徴とするところは、前記学習値算出手段は、前記フィードバック補正係数に基づいて算出した学習値と、前記記憶部の前回の学習値との差が所定の閾値を超えて大きい場合、前記フィードバック補正係数に基づいて算出した学習値を、前記記憶部の全ゾーンの学習値に書き換える点にある。
また、本発明の船外機用内燃機関の空燃比制御装置の他の特徴とするところは、前記学習値算出手段は、前記フィードバック補正係数に基づいて学習値を算出する際に、前回の学習値α´から新たな学習値α´への変化分を少なくするような補正を行う点にある。
また、本発明の船外機用内燃機関の空燃比制御装置の他の特徴とするところは、学習値を書き換えるときに、前回の学習値から新たな学習値へと滑らかに変化するように処理を施す点にある。
また、本発明の船外機用内燃機関の空燃比制御装置の他の特徴とするところは、エンジン回転数があるゾーンから他のゾーンに移るときの学習値の切替時に、前記あるゾーンの学習値から前記他のゾーンの学習値へと滑らかに変化するように処理を施す点にある。
本発明の船外機用内燃機関の空燃比制御方法は、内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するO2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御方法であって、所定のエンジン回転数域にあるときに前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御ステップと、前記オープンループ制御ステップにより目標空燃比を所定の希薄側の空燃比に制御している状態から、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記O2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御ステップと、前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出ステップと、を有し、前記所定のエンジン回転数域を複数のゾーンに分けて、前記各ゾーンで学習値を設定したことを特徴とする。
本発明のプログラムは、内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するO2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御するためのプログラムであって、所定のエンジン回転数域にあるときに前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御手段と、前記オープンループ制御手段により目標空燃比を所定の希薄側の空燃比に制御している状態から、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記O2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御手段と、前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出手段と、してコンピュータを機能させ、前記所定のエンジン回転数域を複数のゾーンに分けて、前記各ゾーンで学習値を設定したことを特徴とする。
【発明の効果】
【0011】
本発明によれば、オープンループ制御を行うエンジン回転数域を複数のゾーンに分けて、各ゾーンで学習値を設定したので、エンジン回転数に応じて発生する空燃比のズレを、エンジン回転数のゾーン毎に補正することができる。更に、フィードバック補正係数に基づいて算出した学習値を、全ゾーンの学習値に書き換え可能にしておくことにより、部品のばらつき、使用環境や燃料の変更に起因して発生する空燃比のズレを、効率よく補正することができる。
【図面の簡単な説明】
【0012】
【図1】船外機の外観図である。
【図2】船外機の内部構成を示すブロック図である。
【図3】O2センサが配置されている位置を示す船外機の模式図である。
【図4】空燃比制御の処理を示すメインフローチャートである。
【図5】フィードバック制御の処理を示すフローチャートである。
【図6】フィードバック制御において次の処理に進む条件を判定するためのフローチャートである。
【図7】フィードバック制御の内容をグラフで示した図である。
【図8】フィードバック制御の内容をグラフで示した図である。
【図9】エンジン回転数と負荷との関係の例を示す特性図である。
【図10】第2の実施形態におけるフィードバック制御の処理を示すフローチャートである。
【図11】第2の実施形態におけるフィードバック制御の内容をグラフで示した図である。
【発明を実施するための形態】
【0013】
以下、本発明に係る実施形態について図面を参照して説明する。以下では、本発明を適用した実施形態を第2の実施形態で説明し、第2の実施形態の前提となる技術を第1の実施形態で説明する。
(第1の実施形態)
図1は、船外機の外観図である。図1に示すように、船外機10は船体1のトランサムボード2に取り付けられる。船外機10は全体がカバー11によって覆われることで、形状が整えられて構成されている。このカバー11の内部には、船外機用内燃機関としてのエンジン12が収容されている。また、船外機10の下方には、エンジン12を動力とし船体1を推進させるためのスクリュー13が配設されている。なお、本実施形態に係るエンジン12は、水冷4サイクルV型6気筒が採用されている。
【0014】
図2は、船外機の内部構成を示すブロック図である。船外機10は、各種の構成機器を制御するコンピュータとしてのエンジンコントロールユニット20を有している。エンジンコントロールユニット20は、本実施形態に係る空燃比制御装置であって、CPU21、ROM22、RAM23、EEPROM24、入力インタフェース25、出力インタフェース26を含んで構成されている。
CPU21は、ROM22に格納されたプログラムを実行して、各種センサ等から出力される信号に基づいて、インジェクタ30を介して空燃比を制御する。ROM22は、不揮発性メモリであって、CPU21が実行するプログラムやCPU21が各機器を制御するときの初期値や閾値等を格納している。RAM23は、揮発性メモリであって、CPU21が各機器を制御するときに算出した情報等を一時的に記憶している。EEPROM24は、書き換え可能な記憶部としての不揮発性メモリであって、CPU21が各機器を制御する場合の情報等、例えば空燃比を制御するための学習値を記憶している。
【0015】
入力インタフェース25は、図2に示すように、クランク角センサ41、スロットル開度センサ42、吸気管圧力センサ43、シリンダ壁温センサ44、冷却水温度センサ45、イグニッションスイッチ46、チルト&トリム角センサ47、O2センサ48、姿勢計49等から出力される信号を受信する入力回路である。
クランク角センサ41は、各気筒のクランクシャフト(不図示)に近接して配置され、所定のクランク角度で信号を出力する。なお、CPU21は、クランク角センサ41から出力された信号をカウントすることで、エンジン回転数を検出することができる。
【0016】
また、操船者によるスロットルレバーの操作に応じて、吸気管(不図示)に配置されたスロットバルブ(不図示)が閉閉し、エンジン12に供給される空気量が調整される。このとき、スロットル開度センサ42は、スロットバルブの開度に応じた信号を出力する。
吸気管圧力センサ43は、吸気管に配置され、吸気管内圧力の信号を出力する。
シリンダ壁温センサ44は、エンジン12のシリンダブロック(不図示)の温度の信号を出力する。
冷却水温度センサ45は、冷却水の温度の信号を出力する。
イグニッションスイッチ46は、操船者によりオンとオフとが選択できるように構成され、オンされることにより各機器に電力が供給され、オフされることにより各機器への電力が遮断される。
チルト&トリム角センサ47は、図1に示すように船体1に対する船外機10のトリム角βを検出し信号を出力する。
【0017】
2センサ48は、エンジン12の排気系に配置され、理論空燃比近傍で特性が変化する出力を生じる。具体的には、O2センサ48は、エンジン12の実際の空燃比が理論空燃比に対してリーン側であるかリッチ側であるかを示す信号を出力する。
図3は、O2センサ48が配置されている位置を示す船外機の模式図であり、船外機を後方から見た図である。本実施形態では上述したようにV型6気筒のエンジン12が用い
られている。V型エンジンは、複数の気筒がシリンダ内であって、クランクシャフト(不図示)を中心に所定のバンク角でV字型に配置される。本実施形態のエンジン12では、6気筒のうち右側バンク14に3つの気筒(♯1、♯3、♯5)が配置され、左側バンク15に3つの気筒(♯2、♯4、♯6)が配置されている。
【0018】
右側の各気筒(♯1、♯3、♯5)には排気管16が接続され、左側の各気筒(♯2、♯4、♯6)には排気管17が接続されている。排気管16と排気管17とは、船外機10の下方に向かって延出され、船外機10の略中央で結合され、さらに下方に向かうように延設されている。各気筒から排気された排気ガスは、各排気管16、17を通って、水中に排気される。
【0019】
本実施形態に係るエンジン12では、O2センサ48は、排気管17であって気筒♯2に近接した位置に配設されている。したがって、O2センサ48は、主に気筒♯2によって排気された排気ガスの空燃比が理論空燃比に対してリーン側であるかリッチ側であるかを検出している。ただし、本実施形態では、左側バンク15の3つの気筒(♯2、♯4、♯6)の排気ガスは共通の排気管17によって排気される。したがって、O2センサ48は、気筒♯2よりも影響は少ないものの、気筒(♯4、♯6)の排気ガスを含んだ排気ガスの空燃比を検出している。このようにO2センサ48は、一方のバンクに配置されている気筒の排気系のみに設置されている。すなわち、O2センサ48は、エンジン12に配置された複数気筒のうち、一部の気筒の排気ガスの空燃比を検出できるように構成されている。
姿勢計49は、例えばジャイロセンサであって、船外機10の姿勢を検出し信号を出力する。
また、出力インタフェース26は、インジェクタ30やイグニッションコイル31を制御するための信号を送信する出力回路である。
【0020】
エンジンコントロールユニット20は、各種センサ等が出力する信号に基づいてインジェクタ30の燃料噴射量を制御し空燃比の制御を行う。
特に、燃費を向上させるために、空燃比を理論空燃比よりも所定の希薄側の空燃比にして運転(希薄燃焼運転)させたい場合がある。しかし、例えばインジェクタ等の部品のばらつきにより、実際の空燃比が所定の希薄側の空燃比よりズレた空燃比になっている場合があり、この場合、O2センサ48は実際の空燃比が所定の希薄側の空燃比よりもどのくらいズレているかを検出することができない。したがって、例えば、実際の空燃比が所定の希薄側の空燃比よりもリッチ側にズレて運転されている場合、燃費を向上させることは困難である。
【0021】
したがって、本実施形態では、まず目標空燃比を理論空燃比にして、O2センサ48を用いてフィードバック制御を実行し、フィードバック補正係数を算出しながら、実際の空燃比を目標空燃比に補正するための後述する学習値を算出する。次に、算出した学習値を適用させてオープンループ制御することで、実際の空燃比を所定の希薄側の空燃比に精度よく制御することができ、燃費を向上させた運転を行うことができる。
また、例えば学習値が算出された後に、船外機10が異なる船体に取り付けたり、純正ガソリンに代えてアルコール混合ガソリンが使用されたりする場合がある。この場合、前回学習した学習値で空燃比を制御しても、実際の空燃比は、所定の希薄側の空燃比よりズレた空燃比になってしまう。通常、船外機10の取り付けや燃料の給油はエンジン12を停止した状態で行うので、本実施形態では、エンジン始動後に初めて所定の条件を満たしたときに、再び学習値を算出し、算出した学習値を適用させてオープンループ制御することで、実際の空燃比を異なる使用環境や燃料に応じた所定の希薄側の空燃比に制御することができる。
【0022】
以下、上述した空燃比制御について具体的に説明する。
まず、本実施形態では、空燃比制御をするときの燃料噴射量を、次式(1)によって算出する。
燃料噴射量Ti=基本燃料噴射量TP×
(1+フィードバック補正係数α+学習値α´+各種補正係数Coef)・・・式(1)
ここで、基本燃料噴射量TPは、吸気管圧力センサ43により検出された吸気管圧力に基づいて算出され、吸気温度や大気圧等により補正される値である。すなわち、現在の運転状態に応じた値が適用される。
フィードバック補正係数αは、フィードバック制御時にO2センサ48の出力に基づいて算出される値(%)であり、オープンループ制御時にはα=0になる。
学習値α´は、フィードバック制御時に算出されたフィードバック補正係数αの出力に基づいて算出される値(%)であり、フィードバック制御時およびオープンループ制御時にそれぞれ代入される。
各種補正係数Coefは、エンジン12の始動時、暖機時、加減速時等の条件で補正される係数(%)である。
【0023】
以下、エンジンコントロールユニット20が行う処理について図4〜図7を参照して説明する。図4は、空燃比制御の処理を示すメインフローチャートである。図5は、フィードバック制御の処理を示すフローチャートである。図6は、フィードバック制御において次の処理に進む条件を判定するためのフローチャートである。図7は、フィードバック制御の内容をグラフで示した図である。なお、図4〜図6に示すフローチャートは、エンジンコントロールユニット20のCPU21がROM22に格納されたプログラムを実行することにより実現される。
【0024】
まず、ステップS10では、操船者によりイグニッションスイッチ46がオンされることで、CPU21は各機器に電力を供給するように制御し、エンジン12が始動される。CPU21は、ROM22に格納されたプログラムをRAM23に読み出し、プログラムに基づいて空燃比制御の処理を開始する。
【0025】
ステップS11において、エンジン始動後、初めて本処理を行うとき、CPU21は前回の運転でエンジン12をオフしたときにEEPROM24に記憶した学習値α´を読み出し、RAM23に記憶する。CPU21は、RAM23に記憶した学習値α´を上述した式(1)に代入すると共に、フィードバック補正係数α=0を式(1)に代入して燃料噴射量を算出し、オープンループ制御にて空燃比を制御する。このとき、基本噴射量TPは、上述したように吸気管圧力センサ43により検出された吸気管圧力やエンジン回転数等に基づいて算出される。吸気管圧力は運転状態に応じて変動するので、CPU21は、運転状態とRAM23に記憶された学習値α´とに応じて燃料噴射量Tiが算出され、オープンループ制御にて空燃比を制御することとなる。なお、エンジン12を購入して初めて運転する場合、EEPROM24に記憶された初期値の学習値α´を適用することができる。
【0026】
ステップS12では、CPU21は、今回エンジン12を始動してから学習値α´を前回の学習値から書き換えたか否か、すなわち再び学習値を学習したか否かを判定する。具体的には、CPU21は、RAM23に記憶されている学習完了フラグFfを読み出して判定する。学習が既に完了し学習完了フラグFfが1の場合、ステップS14に処理を進め、学習が完了しておらず学習完了フラグFfが0の場合、ステップS13に処理を進める。
【0027】
ステップS13では、CPU21は、後述するフィードバック制御を行い、RAM23から読み出した学習値α´を今回学習した学習値に書き換えて更新する。すなわち、CPU21は、現時点におけるエンジン12の使用環境や燃料に応じた学習値α´を再学習する。このように、学習値α´を再学習するのは、イグニッションスイッチ46がオンされる前に、船外機10が前回とは異なる船体1に取り付けられたり、燃料にアルコール混合ガソリンが給油されたりするためである。ステップS13の処理については、図5のフローチャートを参照して後述する。
【0028】
ステップS14では、CPU21は、操船者によりイグニッションスイッチ46がオフされたか否かを判定する。オフされた場合、CPU21は、RAM23に記憶されている学習値α´をEEPROM24に記憶して、各機器に電力の供給を停止すると共に、エンジン12を停止する。ここで、学習値α´をEEPROM24に記憶することで、CPU21は、電力の供給が停止されても次回のエンジン12の始動時にステップS11においてEEPROM24から学習値α´を読み出すことができる。
イグニッションスイッチ46がオフされない場合、CPU21は、ステップS11に処理を戻し、RAM23に記憶されている学習値α´を用いて、オープンループ制御を行うことで、空燃比を目標空燃比に制御することができる。
【0029】
次に、上述したステップS13におけるフィードバック制御について、図5に示すフローチャートおよび図7に示す空燃比の制御方法を示すグラフを参照して説明する。
まず、ステップS20では、CPU21は、全ての気筒(♯1〜♯6)について、目標空燃比を所定の希薄側の空燃比にして運転(希薄燃焼運転)する。なお、本実施形態では、所定の希薄側の空燃比として18を適用するものとする。
具体的に、ステップS20では、CPU21は、RAM23に記憶された学習値α´を上述した式(1)に代入すると共に、フィードバック補正係数α=0を式(1)に代入して燃料噴射量を算出し、オープンループ制御にて目標空燃比が18になるように制御する。ここで、RAM23に記憶されている学習値α´は、前回のエンジン始動時において記憶した学習値であるため、今回、異なる船体に取り付けられていたり、アルコール混合ガソリンが給油されたりして、使用環境や燃料が異なっている場合には、目標空燃比に対して実際の空燃比がズレてしまう。
図7(a)は目標空燃比に対して実際の空燃比の変動を示すグラフであり、図7(b)はフィードバック補正係数の変位を示すグラフである。ここでは、図7(a)に示すように、目標空燃比に対して実際の空燃比がSだけズレているものとする。
【0030】
上述したようにO2センサ48は、実際の空燃比が理論空燃比のリーン側かリッチ側かしか検出することしかできず、所定の希薄側の空燃比に対してどのくらいズレているか、すなわち図7(a)に示すSの値を検出することができない。そこで、CPU21は、目標空燃比を理論空燃比にして、実際の空燃比をO2センサ48で検出して、目標空燃比に対する実際の空燃比のズレを補正するフィードバック制御を実行する。
【0031】
ステップS21では、CPU21は、目標空燃比を理論空燃比に移行させる前に、以下で説明する所定の条件が成立しているか否かを判定する。具体的には、CPU21は、RAM23に記憶されている移行条件成立フラグFaを読み出して判定する。移行条件が成立し移行条件成立フラグFaが1の場合、ステップS22に処理を進め、移行条件が成立せず移行条件成立フラグFaが0の場合、移行条件が成立するのを待機する。
【0032】
次に、上述したステップS21における条件成立の判定方法について、図6に示すフローチャートを参照して説明する。
まず、ステップS41では、CPU21は、現在のエンジン回転数が、空燃比が安定するエンジン回転数であるか否かを判定する。空燃比が安定するエンジン回転数の場合ステップ42に処理を進め、条件を満たさない場合ステップS48に処理を進める。ステップS48では、移行条件成立フラグFaを0にしてRAM23に記憶し、目標空燃比を理論空燃比に移行させないようにする。ステップS41のような判定を行うのは、エンジン回転数が高回転である場合、あるいは低回転である場合、空燃比が安定せず正確なフィードバック制御を行うことができないためである。ステップS41では、エンジン回転数が、例えば2000rpm以上4000rpm以下であるか否か等、ROM22に記憶された閾値に基づいて判定される。
【0033】
ステップS42では、CPU21は、船外機10が安定した姿勢で所定時間が経過しているか否かを判定する。具体的には、CPU21は、姿勢計49が出力する信号に基づいて船外機10が安定した姿勢で所定時間が経過しているか否かを判定する。船外機10が安定した姿勢で所定時間が経過している場合ステップS43に処理を進め、条件を満たさない場合ステップS48に処理を進め移行条件成立フラグFaを0にしてRAM23に記憶する。ステップS42のような判定を行うのは、例えば滑走状態になる前のように船体1がプレーニングしていて、船体1の姿勢が変化している場合、エンジン回転数および空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。なお、船体1の姿勢は姿勢計で検出する場合に限られず、スロットル開度およびエンジン回転数が一定で所定時間が経過しているか否かを判定してもよい。
【0034】
ステップS43では、CPU21は、操船者により船外機10のトリム角βを変更する操作がされた後、所定時間が経過しているか否かを判定する。具体的には、CPU21は、チルト&トリム角センサ47が出力する信号に基づいて船外機10のトリム角βが変更されたかを判定する。船外機10のトリム角βを変更する操作がされた後、所定時間が経過している場合ステップS44に処理を進め、条件を満たさない場合ステップS48に処理を進め移行条件成立フラグFaを0にしてRAM23に記憶する。ステップS43のような判定を行うのは、トリム角βを変更する操作をしている場合船外機10の姿勢が変化し、エンジン回転数および空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【0035】
ステップS44では、CPU21は、エンジン12が暖機運転中ではないか否かを判定する。具体的には、CPU21は、シリンダ壁温センサ44が出力する信号に基づいて例えばROM22に記憶されている閾値以上の温度であるか否かを判定する。暖機運転中でない場合ステップS45に処理を進め、暖機運転中である場合ステップS48に処理を進め移行条件成立フラグFaを0にしてRAM23に記憶する。ステップS44のような判定を行うのは、暖機運転中の場合空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【0036】
なお、本実施形態のように、水冷エンジンの場合、上述した閾値の温度をサーモスタット(不図示)の開温度に応じた値に設定することができる。したがって、寒冷地仕様のエンジン12では開温度が高いサーモスタットが用いられることがあるため、この場合、閾値の温度をサーモスタットの開温度に応じて高く設定する。このように、閾値の温度を設定することで、より安定した空燃比でのフィードバック制御ができる。
【0037】
ステップS45では、CPU21は、エンジン回転数の変化が少ない状態で、所定時間が経過したか否かを判定する。具体的には、CPU21は、クランク角センサ41が出力する信号をカウントすることでエンジン回転数を検出し、エンジン回転数の変化が少ないか否かを判定する。エンジン回転数の変化が少ない状態で、所定時間が経過した場合ステップS46に処理を進め、条件を満たさない場合ステップS48に処理を進め移行条件成立フラグFaを0にしてRAM23に記憶する。ステップS45のような判定を行うのは、加速時や減速時のようなエンジン回転数の変化が大きい間は、空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【0038】
ステップS46では、CPU21は、スロットル開度の変化が少ない状態で、所定時間が経過したか否かを判定する。具体的には、CPU21は、スロットル開度センサ42が出力する信号に基づいて単位時間当たりのスロットル開度の変化が少ないか否かを判定する。スロットル開度の変化が少ない状態で、所定時間が経過している場合ステップS47に処理を進め、条件を満たさない場合ステップS48に処理を進め移行条件成立フラグFaを0にしてRAM23に記憶する。ステップS46のような判定を行うのは、スロットル開度の変化が大きい場合、空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【0039】
ステップS47では、上述した各ステップの所定の条件を満たしエンジン12が正確なフィードバック制御を行うことができる状態であるため、CPU21は、移行条件成立フラグFaを1にしてRAM23に記憶し、図5に示すステップS21の処理に戻る。
【0040】
上述したように、ステップS21では、CPU21は、移行条件成立フラグFaが1の場合、ステップS22に処理を進める。
ステップS22では、CPU21は、目標空燃比を所定の希薄側の空燃比18にして運転している状態から、目標空燃比を理論空燃比14.7に移行させる。本実施形態では、CPU21は、6つの気筒(♯1〜♯6)のうち一部の気筒であって、O2センサ48が配置された左側バンク15の気筒(♯2、♯4、♯6)についてのみ理論空燃比に移行させる。このとき、CPU21は、フィードバック補正係数α=0にしたまま、基本噴射量TPを増加させ、目標空燃比が理論空燃比14.7になるように運転する。なお、このとき、CPU21は式(1)の学習値α´には、前回の学習値を代入したまま、基本噴射量TPを変動させる。
【0041】
ステップS23では、CPU21は、そのまま目標空燃比を理論空燃比にした状態で運転を継続させる。なお、図7(a)に示すように、目標空燃比を理論空燃比にしたとしても、学習値α´の値が前回のエンジン12の始動時において記憶した学習値で運転しているため、実際の空燃比は理論空燃比に対してズレてしまっている。
ステップS24では、CPU21は、目標空燃比を理論空燃比に移行してから、所定時間が経過したか否かを判定する。所定時間が経過した場合ステップS25に処理を進め、所定時間が経過していない場合ステップS23に処理を戻し、所定時間が経過するのを待機する。ステップS24のような処理を行うのは、図7(a)に示すように、移行条件が成立した後、目標空燃比を理論空燃比にしてから実際の空燃比が一定の空燃比になるまでにタイムラグがあるためである。なお、ここでの所定時間は、現在のエンジン回転数に応じた時間が適用される。
【0042】
ステップS25では、CPU21は、フィードバック制御に移行する前に、所定の条件が成立しているか否かを判定する。具体的には、CPU21は、RAM23に記憶されている実行条件成立フラグFbを読み出して判定する。実行条件が成立し実行条件成立フラグFbが1の場合ステップS26に処理を進め、実行条件が成立せず実行条件成立フラグFbが0の場合実行条件が成立するのを待機する。
【0043】
ステップS25における条件成立の判定方法は、上述した図6に示すフローチャートと同様であり、詳細な説明は省略する。ここでは、上述したステップS41からステップS46までの処理で説明したように、所定の条件を満たし、現在のエンジン12の運転状態が正確なフィードバック制御を行うことができる場合、ステップS47に処理を進め、CPU21は、実行条件成立フラグFbに1を代入し、RAM23に記憶する。一方、正確なフィードバック制御を行うことができない場合、ステップS48に処理を進め、CPU21は、実行条件成立フラグFbに0を代入し、RAM23に記憶する。その後、ステップS25に処理を戻す。このように、実行条件が成立する場合にのみフィードバック制御を実行することにより、正確なフィードバック制御を行うことができる。
【0044】
上述したように、ステップS25では、CPU21は、実行条件が成立し実行条件成立フラグFbが1の場合、ステップS26に処理を進める。
ステップS26では、CPU21は、フィードバック制御を実行する。本実施形態では、CPU21は、6つの気筒(♯1〜♯6)のうち一部の気筒であって、O2センサ48が配置された左側バンク15の気筒(♯2、♯4、♯6)についてのみフィードバック制御を行う。
具体的には、図7(a)および(b)に示すように、現在の空燃比を検出しているO2センサ48が理論空燃比よりもリッチ側の信号を出力している場合、CPU21はフィードバック補正係数αを減少させて、空燃比をリーン側に制御する。逆に、O2センサ48が理論空燃比よりもリーン側の信号を出力している場合、CPU21はフィードバック補正係数αを増加させて、空燃比をリッチ側に制御する。このような処理を繰り返すことで、図7(b)に示すように、フィードバック補正係数αの値が減少と増加とが交互に繰り返される。また、図7(a)に示すように、実際の空燃比が理論空燃比を中心としてリッチ側とリーン側とを交互に反転が繰り返され、フィードバック制御が行われる。なお、このとき、CPU21は式(1)の学習値α´には、前回の学習値を代入したまま、フィードバック補正係数αを変動させる。このように、前回の学習値を適用させた状態でフィードバック補正係数αを変動させることで、前回の学習を利用することができるので、フィードバック補正係数αの変動を少なくすることができる。すなわち、フィードバック補正係数αの変動を少なくすることは、燃料噴射量Tiの変動も少なくなることであり、結果としてエンジン12の挙動の変動を少なくすることができる。
【0045】
なお、燃料にアルコール混合ガソリンが給油された場合、アルコールの濃度が濃くなるにしたがって、理論空燃比は14.7から小さい値になってしまう。しかしながら、O2センサ48は、アルコールの濃度に応じた理論空燃比に対して、実際の空燃比がリッチ側であるかリーン側であるかを出力することができるために、図7(a)に示すグラフと同じように、実際の空燃比がアルコールの濃度に応じた理論空燃比を中心としてリッチ側とリーン側とを交互に反転が繰り返され、フィードバック制御が行われる。すなわち、燃料にアルコール混合ガソリンが給油された場合、異なる使用環境と燃料との両方による実際の空燃比と目標理論空燃とのズレを補正するようにフィードバック制御が行われる。
【0046】
次に、ステップS27では、CPU21は、実際の空燃比がリッチ側およびリーン側の反転を所定回数繰り返したか否かを判定する。リッチ側とリーン側との反転を所定回数繰り返した場合ステップS28に処理を進め、所定回数に満たない場合ステップS26に処理を戻して、所定回数になるまで待機する。ステップS27のような判定を行うのは、フィードバック制御を実行した直後は、リッチ側とリーン側との反転が安定しないためである。なお、エンジン回転数により、リッチ側とリーン側との反転が安定する回数が異なるため、ここでの所定回数とは、エンジン回転数に応じて適用される。また、実際の空燃比がリッチ側とリーン側との反転を所定回数繰り返したか否かを判定する場合に限られず、リッチ側とリーン側との反転が安定するような所定時間が経過したか否かを判定してもよい。
【0047】
ステップS28では、CPU21は、フィードバック補正係数から学習値を実際に算出する前に、所定の条件が成立しているか否かを判定する。具体的には、CPU21は、RAM23に記憶されている学習条件成立フラグFcを読み出して判定する。学習条件が成立し学習条件成立フラグFcが1の場合、ステップS29に処理を進め、学習条件が成立せず学習条件成立フラグFcが0の場合、学習条件が成立するのを待機する。
【0048】
ステップS28における条件成立の判定方法は、上述した図6に示すフローチャートと同様であり、詳細な説明は省略する。ここでは、上述したステップS41からステップS46までの処理で説明したように、所定の条件を満たし、現在のエンジン12の運転状態が精度の高い学習値を学習できる場合、ステップS47に処理を進め、CPU21は、学習条件成立フラグFcに1を代入し、RAM23に記憶する。一方、精度の高い学習値を学習ができない場合、ステップS48に処理を進め、CPU21は、学習条件成立フラグFcに0を代入し、RAM23に記憶する。その後、ステップS28に処理を戻す。
【0049】
上述したように、ステップS28では、CPU21は、学習条件が成立し学習条件成立フラグFcが1の場合、ステップS29に処理を進める。
ステップS29では、CPU21は、学習条件が成立した後、空燃比がリーン側からリッチ側に反転するときのフィードバック補正係数およびリッチ側からリーン側に反転するときのフィードバック補正係数をサンプリングして、RAM23に記憶する。具体的には、図7(b)に示すように、例えば、リッチ側の反転時のフィードバック係数をそれぞれR1、R2・・・Rnとし、リーン側の反転時のフィードバック係数をそれぞれL1、L2・・・Lnとする。この場合、CPU21は、各フィードバック補正係数(R1、R2・・・RnおよびL1、L2・・・Ln)をRAM23に記憶する。本実施形態では、例えばn=6として、R1〜R6、L1〜L6の合計12のフィードバック補正係数をサンプリングする。
【0050】
ステップS30では、CPU21は、ステップS29でサンプリングした複数のフィードバック補正係数に基づいて、学習値を算出し、RAM23に記憶する。具体的には、CPU21は、まず、次式(2)のようにサンプリングしたフィードバック補正係数の平均値Aを算出する。
平均値A=(R1+R2+・・+Rn+L1+L2+・・+Ln)/2×n・・式(2)
なお、図7(b)では、平均値Aを一点鎖線で示している。
次に、CPUは、式(3)のように、前回の学習値α´に平均値Aを加算して、新たな学習値α´を算出する。
新たな学習値α´=(前回の学習値α´+平均値A)・・式(3)
この時点で、学習値が再学習され、前回の学習値α´が今回、式(3)で算出された新たな学習値α´に書き換えられ更新される。すなわち、CPU21は、RAM23に新たな学習値α´を記憶する。また、CPU21は、学習完了フラグFfに1を代入し、RAM23に記憶する。
RAM23に記憶された新たな学習値α´を用いて、燃料噴射量Tiを算出することで、現在の使用環境および燃料に応じた目標空燃比と実際の空燃比とのズレを補正することができる。
【0051】
ステップS31では、CPU21は、更新された新たな学習値α´を全気筒、すなわち6つの気筒(♯1〜♯6)に適用して、目標空燃比を所定の希薄側の空燃比にしてオープンループ制御に移行する。具体的には、CPU21は、上述した式(1)に、フィードバック補正係数α=0を代入すると共に、式(1)に再学習した学習値α´を代入し、目標空燃比が所定の希薄側の空燃比になるように、燃料噴射量Tiを算出して運転する。
図7(a)に示すように、再学習した学習値α´を適用することで、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
したがって、部品のばらつきに限られず、異なる使用環境や燃料による実際の空燃比と目標理論空燃とのズレを補正でき、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
【0052】
ステップS32では、CPU21は以降、ステップS31で説明した学習値α´を適用し、所定の希薄側の空燃比での運転を継続して行う。
その後、上述した図4に示すメインフローチャートに戻り、ステップS14において、CPU21は、イグニッションスイッチ46がオフされた場合、CPU21は、ステップS30にてRAM23に記憶されている再学習された学習値α´を次回のエンジン12の始動時に適用できるようにEEPROM24に記憶する。
なお、上述した説明では、図7のフィードバック制御の内容を示すグラフのように、実際の空燃比が目標空燃比に対してリッチ側にズレている場合を例にして説明した。しかし、この場合に限られず、図8のフィードバック制御の内容を示すグラフのように、実際の空燃比が目標空燃比に対してリーン側にズレている場合(例えば純正ガソリンからアルコール混合ガソリンに燃料が変更されたとき等)がある。図8(a)は目標空燃比に対して実際の空燃比の変動を示すグラフであり、図8(b)はフィードバック補正係数の変位を示すグラフである。この場合であっても、同様に異なる使用環境や燃料による実際の空燃比と目標理論空燃とのズレを補正でき、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
【0053】
このように、本実施形態によれば、目標空燃比を理論空燃比にしてO2センサを用いてフィードバック制御し、目標空燃比に対する実際の空燃比のズレを学習することで、機器のコストを削減させることができる。
また、エンジン始動後に初めて所定の条件を満たしたときに、目標空燃比に対する実際の空燃比のズレを学習することで、部品のばらつきに限られず使用環境や燃料に応じた学習値を算出でき、結果として、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
また、目標空燃比を所定の希薄側の空燃比に制御している状態から目標空燃比を理論空燃比にしてフィードバック制御を行うので、従来のように空燃比が所定の希薄側の空燃比で運転され続けてしまうと学習値を再学習できないおそれがあるという問題を解消することができる。
【0054】
また、本実施形態では、V型エンジンにおける一方のバンクである一部の気筒にて学習値を算出した後、その学習値を全気筒に反映するので、CPU21は、学習値を算出するときの処理を削減することができ、迅速に学習値を算出することができる。
また、本実施形態では、目標空燃比を理論空燃比に移行したり、フィードバック制御を実行したり、フィードバック補正係数をサンプリングしたりするとき、所定の条件を満たしたときに初めて次の処理に移行するので、正確な学習値を算出することができる。
【0055】
以上、本発明を種々の実施形態と共に説明したが、本発明はこれらの実施形態にのみ限定されるものではなく、本発明の範囲内で変更等が可能である。
例えば、上述では図5のフローチャートに示すステップS21の移行条件、ステップS25の実行条件およびステップS28の学習条件は、全て図6に示す条件成立の判定方法のフローチャートと同一であるものとして説明した。しかしながら、この場合に限られず、ステップS21の移行条件、ステップS25の実行条件、ステップS28の学習条件に進むにしたがい、条件が厳しくなるように設定してもよい。
【0056】
すなわち、例えばステップS42において、船外機10が安定して姿勢で所定時間が経過しているかを判定するとき、ステップS21の移行条件、ステップS25の実行条件、ステップS28の学習条件に進むにしたがい、所定時間が長くなるように設定してもよい。
また、例えば、ステップS28の学習条件では、図6に示すフローチャートのステップS41からステップS46の全てを判定し、ステップS21の移行条件およびステップS25の実行条件では、図6に示すフローチャートのステップS41からステップS46のうち、一部のステップの処理を省略するようにしてもよい。
【0057】
また、本実施形態では、V型6気筒のエンジンを適用する場合について説明したが、この場合に限られず、直列型気筒のエンジンであってもよく、6気筒以外の複数気筒のエンジンであってもよい。
また、本実施形態では、O2センサ48が配置されている排気管に対応する3つの気筒をフィードバック制御する場合について説明したが、この場合に限られない。例えば、O2センサ48に最も近接した気筒♯2のみをフィードバック制御し、フィードバック制御した結果を全気筒に反映させてもよい。このように、1つの気筒のみをフィードバック制御することで、CPU21は、迅速に学習値を算出することができる。
【0058】
(第2の実施形態)
内燃機関で生じる目標空燃比に対する実際の空燃比のズレは、インジェクタ等の部品のばらつき、使用環境や燃料の変更に起因して発生する場合だけでなく、運転領域(エンジン回転数)に応じて発生する場合がある。そこで、本実施形態では、オープンループ制御を行うエンジン回転数域を複数のゾーンに分けて、各ゾーンで学習値α´を設定するようにしている。なお、船外機の構成や基本的な空燃比制御は第1の実施形態と同様であり、以下、第1の実施形態との相違点を中心に説明する。
【0059】
本実施形態では、図9に示すように、所定のエンジン回転数域Rmin〜Rmaxにあるときにオープンループ制御による希薄燃焼運転を実行するものとする。そして、このエンジン回転数域Rmin〜Rmaxを例えばゾーン1(低回転域)、ゾーン2(中回転域)、ゾーン3(高回転域)に分けて、各ゾーンで学習値α´を設定している。ゾーン分けの際には、例えば各ゾーンでの負荷変動の差が一定の範囲内に収まるようにする。なお、ゾーン数は限定されるものでなく、例えばゾーンを細かく分けて学習値を設定すれば、それだけエンジン回転数に応じて発生する空燃比のズレを高精度に補正することができる。
【0060】
空燃比制御の処理を示すメインフローチャートは、第1の実施形態で述べた図4と同様であるが、本実施形態では、ステップS12での判定に用いる学習完了フラグFfがゾーン毎に設定されている。すなわち、ステップS12で、CPU21は、現在のエンジン回転数が属するゾーンm(m:ゾーン番号)において、今回エンジン12を始動してから学習値α´(m)を学習したか否かを判定し、当該ゾーンmで学習が完了しておらず学習完了フラグFf(m)が0の場合、ステップS13に処理を進める。
【0061】
次に、上述したステップS13におけるフィードバック制御について、図10に示すフローチャートおよび図11に示す空燃比の制御方法を示すグラフを参照して説明する。図10において、第1の実施形態で説明した図5と同じ処理には同一の符号を付し、その詳細な説明は省略する。なお、以下では、エンジン回転数域Rmin〜Rmaxをゾーン1〜Mに分けており、現在のエンジン回転数がゾーンmに属しているとする。
【0062】
まず、ステップS20では、CPU21は、全ての気筒(♯1〜♯6)について、目標空燃比を所定の希薄側の空燃比にして運転(希薄燃焼運転)する。すなわち、ステップS20では、CPU21は、RAM23に記憶された学習値α´(m)を上述した式(1)に代入すると共に、フィードバック補正係数α=0を式(1)に代入して燃料噴射量を算出し、オープンループ制御にて目標空燃比が18になるように制御する。
【0063】
ステップS21では、CPU21は、目標空燃比を理論空燃比に移行させる前に、移行条件が成立しているか否かを判定する。その結果、移行条件が成立している場合、ステップS22に処理を進める。ステップS22では、CPU21は、目標空燃比を所定の希薄側の空燃比18にして運転している状態から、一部の気筒(♯2、♯4、♯6)について目標空燃比を理論空燃比14.7に移行させる。
【0064】
ステップS23では、CPU21は、そのまま目標空燃比を理論空燃比にした状態で運転を継続させる。ステップS24では、CPU21は、目標空燃比を理論空燃比に移行してから、所定時間が経過したか否かを判定する。所定時間が経過した場合ステップS25に処理を進め、所定時間が経過していない場合ステップS23に処理を戻し、所定時間が経過するのを待機する。
【0065】
ステップS25では、CPU21は、フィードバック制御に移行する前に、実行条件が成立しているか否かを判定する。その結果、実行条件が成立している場合、ステップS26に処理を進める。ステップS26では、CPU21は、一部の気筒(♯2、♯4、♯6)についてフィードバック制御を実行する。すなわち、図7、8に示したように、現在の空燃比を検出しているO2センサ48が理論空燃比よりもリッチ側の信号を出力している場合、CPU21はフィードバック補正係数αを減少させて、空燃比をリーン側に制御する。逆に、O2センサ48が理論空燃比よりもリーン側の信号を出力している場合、CPU21はフィードバック補正係数αを増加させて、空燃比をリッチ側に制御する。
【0066】
次に、ステップS27では、CPU21は、実際の空燃比がリッチ側およびリーン側の反転を所定回数繰り返したか否かを判定する。リッチ側とリーン側との反転を所定回数繰り返した場合ステップS28に処理を進め、所定回数に満たない場合ステップS26に処理を戻して、所定回数になるまで待機する。
【0067】
ステップS28では、CPU21は、フィードバック補正係数から学習値を実際に算出する前に、学習条件が成立しているか否かを判定する。その結果、学習条件が成立している場合、ステップS29に処理を進める。ステップS29では、CPU21は、学習条件が成立した後、空燃比がリーン側からリッチ側に反転するときのフィードバック補正係数およびリッチ側からリーン側に反転するときのフィードバック補正係数をサンプリングして、RAM23に記憶する。
【0068】
ステップS50では、CPU21は、ステップS29でサンプリングした複数のフィードバック補正係数に基づいて、上述した式(2)のようにサンプリングしたフィードバック補正係数の平均値Aを算出する。
【0069】
次に、ステップS51では、CPU21は、ステップS50で算出した平均値Aが所定の閾値を超えて大きいか否かを判定する。上述した式(3)を参照すれば、平均値Aは、新たな学習値α´(m)と前回の学習値α´(m)との差となるものである。平均値Aが所定の閾値を超えて大きい場合、ステップS52に処理を進め、所定の閾値を超えていない場合、ステップS54に処理を進める。
【0070】
ここで、平均値Aが所定の閾値を超えて大きい場合を具体例を挙げて説明する。当該ゾーンmでの学習が、今回エンジン12を始動してから全ゾーン1〜Mにおいて初めての学習であるとする。そして、前回エンジン12を始動したときと比較して、部品が大きくばらついている、あるいは、船外機10が異なる船体に取り付けられたり、純正ガソリンに代えてアルコール混合ガソリンが使用されたりしているとする。この場合、ステップS50で算出した平均値Aは大きくなり、所定の閾値を超えるので、ステップS52に処理が進むことになる。
【0071】
このように部品のばらつき、使用環境や燃料の変更に起因して空燃比のズレが発生している場合、エンジン回転数域Rmin〜Rmaxの全ゾーン1〜Mで空燃比がズレているといえる。したがって、エンジン回転数域Rmin〜Rmaxの一部のゾーンだけで新たな学習値を反映させるよりも、いち早く全ゾーン1〜Mで新たな学習値を反映させるのが効率的で好ましい。
【0072】
そこで、ステップS52で、CPU21は、式(4)のように、前回の学習値α´に、所定のフィルタ値(0〜1の値)(全ゾーンフィルタ値と称する)を乗算して補正した平均値Aを加算して、新たな学習値α´を算出する。
新たな学習値α´=(前回の学習値α´+平均値A×全ゾーンフィルタ値)・・式(4)
そして、ステップS53で、エンジン回転数域Rmin〜Rmaxの全ゾーン1〜Mに新たな学習値α´を反映させる。すなわち、RAM23上の前回の学習値α´(1)〜α´(M)の全てが式(4)で算出した新たな学習値α´に書き換えられ更新される。その後、ステップS27に処理を戻す。
【0073】
本実施形態では、ステップS52で新たな学習値α´を算出するに際して、平均値Aそのものを用いるのではなく、平均値Aを全ゾーンフィルタ値で補正している。これは、ステップS52で算出した新たな学習値α´がフィードバック制御を行っていない気筒(♯1、♯3、♯5)にも適用されることから、エンジントルクの変動による急激な回転変動を抑えるためである。すなわち、理論空燃比付近での運転時に比べて、希薄燃焼運転時では、空燃比の変化に対するエンジントルクの変動の度合いが高いことが知られている。そのため、学習値α´を急に変えると、特に希薄燃焼運転を続けている気筒(♯1、♯3、♯5)でエンジントルクの変動による急激な回転変動が発生するおそれがあることから、、前回の学習値α´から新たな学習値α´への変化分を少なくするように平均値Aを全ゾーンフィルタ値で補正して学習値α´を算出するようにしたものである。
【0074】
このように平均値Aを全ゾーンフィルタ値で補正することから、ステップS27に処理を戻した後、ステップS50、S51を経て算出される平均値Aが再度所定の閾値を超えて大きくなることもある。この場合、ステップS52で、CPU21は、上述した式(4)のように、前回の学習値α´に、全ゾーンフィルタ値(0〜1の値)を乗算して補正した平均値Aを加算して、新たな学習値α´を算出する。いうまでもないが、この場合の「前回の学習値α´」は1回前のループで式(4)で算出された「新たな学習値α´」となる。
【0075】
次に、平均値Aが所定の閾値を超えていない場合を具体例を挙げて説明する。既にステップS27〜S29、S50〜S53のループを経ている、あるいは、当該ゾーンmでの学習が、今回エンジン12を始動してから全ゾーン1〜Mにおいて初めての学習であるが、前回エンジン12を始動したときと比較して部品のばらつきがなく、使用環境や燃料が変更されていないとする。この場合、空燃比のズレが発生していたとしても、それはエンジン回転数に応じて発生するものといえる。したがって、ステップS50で算出した平均値Aは小さく、所定の閾値を超えないので、ステップS54に処理が進むことになる。
【0076】
そこで、ステップS54で、CPU21は、式(5)のように、前回の学習値α´に、所定のフィルタ値(0〜1の値)(ゾーンフィルタ値と称する)を乗算して補正した平均値Aを加算して、新たな学習値α´を算出する。
新たな学習値α´=(前回の学習値α´+平均値A×ゾーンフィルタ値)・・式(5)
そして、ステップS55で、エンジン回転数域Rmin〜Rmaxの当該ゾーンmに新たな学習値α´を反映させる。すなわち、RAM23上の前回の学習値α´(m)が式(5)で算出された新たな学習値α´に書き換えられ更新される。
【0077】
ステップS54で新たな学習値α´を算出するに際しても、平均値Aをゾーンフィルタ値で補正することにより、エンジントルクの変動による急激な回転変動を抑えるようにしている。ステップS54、S55の場合の平均値Aは小さいが、それでもなお特に希薄燃焼運転を続けている気筒(♯1、♯3、♯5)でのエンジントルクの変動は発生することから、それを抑えるようにしている。
【0078】
その後、ステップS56では、CPU21は、目標空燃比を所定の希薄側の空燃比にしてオープンループ制御に移行する。
【0079】
図11に示す例では、目標空燃比に対して実際の空燃比がリーン側にズレている。また、エンジン回転数域Rmin〜Rmaxをゾーン1〜3に分けており、現在のエンジン回転数がゾーン2に属している。
【0080】
移行条件、実行条件が成立して(ステップS21、S25)、最初に学習条件が成立した後(ステップS28)、フィードバック補正係数をサンプリングして(ステップS29)、その平均値Aを算出する(ステップS50)。図11の例では、このとき平均値Aが大きいので(ステップS51)、上述した式(4)により新たな学習値α´を算出し、エンジン回転数域Rmin〜Rmaxの全ゾーン1〜3に反映させている(ステップS52、S53)(1回目学習(全ゾーン))。その後、ステップS27に処理を戻す。
【0081】
そして、2回目に学習条件が成立した後(ステップS28)、フィードバック補正係数をサンプリングして(ステップS29)、その平均値Aを算出する(ステップS50)。図11の例では、このとき平均値Aもまだ大きいので(ステップS51)、上述した式(4)により新たな学習値α´を算出し、エンジン回転数域Rmin〜Rmaxの全ゾーン1〜3に反映させている(ステップS52、S53)(2回目学習(全ゾーン))。その後、ステップS27に処理を戻す。
【0082】
そして、3回目に学習条件が成立した後(ステップS28)、フィードバック補正係数をサンプリングして(ステップS29)、その平均値Aを算出する(ステップS50)。図11の例では、このとき平均値Aは所定の閾値を超えないので(ステップS51)、上述した式(5)により新たな学習値α´を算出し、エンジン回転数域Rmin〜Rmaxの当該ゾーン2にのみ反映させている(ステップS54、S55)(3回目学習(ゾーン))。その後、目標空燃比を所定の希薄側の空燃比にしてオープンループ制御に移行する。
【0083】
この結果、図11(c)に示すように、1回目学習、2回目学習の時点ではゾーン1〜3の学習値α´(1)〜α´(3)は同じ値となっているが、3回目学習の時点ではゾーン2の学習値α´(2)が学習結果を独自に反映させたかたちとなる。
【0084】
ところで、本実施形態では、図11の符号110で示すように、学習値α´を更新する(書き換える)ときに、所謂テーリング処理を施して滑らかに変化するようにしている。ここで、テーリング処理を施している間の学習値α´を補正学習値と称すると、式(6)で表わされ、これをiを1、2、・・・と変えながら一定周期で更新していく。なお、補正学習値(0)は前回の学習値α´である。
補正学習値(i)=a×補正学習値(i−1)+(1−a)×新たな補正値α´・・式(6)
a:定数
【0085】
なお、テーリング処理を施す考え方は、例えば現在のエンジン回転数があるゾーンから他のゾーンに移るときの学習値α´の切替時に適用して、あるゾーンの学習値α´から他のゾーンの学習値α´へと滑らかに変化するようにしてもよい。
【符号の説明】
【0086】
10:船外機 12:エンジン 20:エンジンコントロールユニット 21:CPU 22:ROM 23:RAM 24:EEPROM 25:入力インタフェース 26:出力インタフェース 30:インジェクタ 31:イグニッションコイル 413:クランク角センサ 42:スロットル開度センサ 43:吸気管圧力センサ 44:シリンダ壁温センサ 45:冷却水温度センサ 46:イグニッションスイッチ 47:チルト&トリム角センサ 48:O2センサ 49:姿勢計

【特許請求の範囲】
【請求項1】
内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するO2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御装置であって、
所定のエンジン回転数域にあるときに前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御手段と、
前記オープンループ制御手段により目標空燃比を所定の希薄側の空燃比に制御している状態から、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記O2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御手段と、
前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出手段と、を有し、
前記所定のエンジン回転数域を複数のゾーンに分けて、前記各ゾーンで学習値を設定したことを特徴とする船外機用内燃機関の空燃比制御装置。
【請求項2】
前記学習値算出手段は、前記フィードバック補正係数に基づいて算出した学習値を、前記記憶部の全ゾーンの学習値に書き換えることと、前記記憶部の現在のエンジン回転数が属するゾーンの学習値にのみ書き換えることとを選択的に実行することを特徴とする請求項1に記載の船外機用内燃機関の空燃比制御装置。
【請求項3】
前記学習値算出手段は、前記フィードバック補正係数に基づいて算出した学習値と、前記記憶部の前回の学習値との差が所定の閾値を超えて大きい場合、前記フィードバック補正係数に基づいて算出した学習値を、前記記憶部の全ゾーンの学習値に書き換えることを特徴とする請求項2に記載の船外機用内燃機関の空燃比制御装置。
【請求項4】
前記学習値算出手段は、前記フィードバック補正係数に基づいて学習値を算出する際に、前回の学習値α´から新たな学習値α´への変化分を少なくするような補正を行うことを特徴とする請求項1乃至3のいずれか1項に記載の船外機用内燃機関の空燃比制御装置。
【請求項5】
学習値を書き換えるときに、前回の学習値から新たな学習値へと滑らかに変化するように処理を施すことを特徴とする請求項1乃至4のいずれか1項に記載の船外機用内燃機関の空燃比制御装置。
【請求項6】
エンジン回転数があるゾーンから他のゾーンに移るときの学習値の切替時に、前記あるゾーンの学習値から前記他のゾーンの学習値へと滑らかに変化するように処理を施すことを特徴とする請求項1乃至4のいずれか1項に記載の船外機用内燃機関の空燃比制御装置。
【請求項7】
内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するO2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御方法であって、
所定のエンジン回転数域にあるときに前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御ステップと、
前記オープンループ制御ステップにより目標空燃比を所定の希薄側の空燃比に制御している状態から、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記O2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御ステップと、
前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出ステップと、を有し、
前記所定のエンジン回転数域を複数のゾーンに分けて、前記各ゾーンで学習値を設定したことを特徴とする船外機用内燃機関の空燃比制御方法。
【請求項8】
内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するO2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御するためのプログラムであって、
所定のエンジン回転数域にあるときに前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御手段と、
前記オープンループ制御手段により目標空燃比を所定の希薄側の空燃比に制御している状態から、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記O2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御手段と、
前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出手段と、してコンピュータを機能させ、
前記所定のエンジン回転数域を複数のゾーンに分けて、前記各ゾーンで学習値を設定したことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−252400(P2011−252400A)
【公開日】平成23年12月15日(2011.12.15)
【国際特許分類】
【出願番号】特願2010−124791(P2010−124791)
【出願日】平成22年5月31日(2010.5.31)
【出願人】(000002082)スズキ株式会社 (3,196)
【Fターム(参考)】