(57)【特許請求の範囲】
【請求項１】
内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するＯ2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御装置であって、
前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御手段と、
前記オープンループ制御手段により目標空燃比を所定の希薄側の空燃比に制御している状態で、エンジン始動後に初めて所定の条件を満たしたときに、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記Ｏ2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御手段と、
前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出手段と、を有し、
前記オープンループ制御手段は、前記記憶部に記憶されている学習値を前記内燃機関の全気筒に反映させて所定の希薄側の空燃比に制御することを特徴とする船外機用内燃機関の空燃比制御装置。
【請求項２】
内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するＯ2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御方法であって、
前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御ステップと、
前記オープンループ制御ステップにより目標空燃比を所定の希薄側の空燃比に制御している状態で、エンジン始動後に初めて所定の条件を満たしたときに、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記Ｏ2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御ステップと、
前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出ステップと、を有し、
前記オープンループ制御ステップでは、前記記憶部に記憶されている学習値を前記内燃機関の全気筒に反映させて所定の希薄側の空燃比に制御することを特徴とする船外機用内燃機関の空燃比制御方法。
【請求項３】
内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するＯ2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御するためのプログラムであって、
前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御ステップと、
前記オープンループ制御ステップにより目標空燃比を所定の希薄側の空燃比に制御している状態で、エンジン始動後に初めて所定の条件を満たしたときに、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記Ｏ2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御ステップと、
前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出ステップと、をコンピュータに実行させ、
前記オープンループ制御ステップでは、前記記憶部に記憶されている学習値を前記内燃機関の全気筒に反映させて所定の希薄側の空燃比に制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、船外機用内燃機関の空燃比制御装置、空燃比制御方法およびプログラムに関するものである。特に、船外機用内燃機関の空燃比を所定の希薄側の空燃比に制御する場合に用いられて好適である。
【背景技術】
【０００２】
従来から内燃機関の空燃比を制御しようとする場合、内燃機関の排気系に配置される空燃比センサやＯ2センサが用いられている。空燃比センサは、Ｏ2センサよりも広い範囲で空燃比を精度よく検出することができるものの、Ｏ2センサよりも高価であり内燃機関のコストアップの要因になってしまう。一方、Ｏ2センサは、空燃比センサよりも安価であるものの、空燃比が理論空燃比近傍でしか検出することができない。具体的には、Ｏ2センサは、内燃機関の実際の空燃比が理論空燃比に対してリーン側（希薄側）であるかリッチ側であるかを検出することしかできない。
【０００３】
一方、燃費を向上させるために、空燃比を理論空燃比よりも所定の希薄側の空燃比にして運転する場合がある。このような場合、実際の空燃比が所定の希薄側の空燃比になっていれば、燃費を向上させることができるが、例えばインジェクタ等の部品のばらつきにより、実際の空燃比が、所定の希薄側の空燃比に対してズレた空燃比になっている場合がある。しかしながら、Ｏ2センサでは、上述したように実際の空燃比が理論空燃比に対してリーン側であるかリッチ側であるかを検出するのみであり、実際の空燃比が所定の希薄側の空燃比になっているか否かは検出できない。
【０００４】
このような問題に対して特許文献１では、まず理論空燃比を目標の空燃比にして運転させ、Ｏ2センサを用いて実際の空燃比とのズレをフィードバック制御によりフィードバック補正係数を算出しながら補正する。次に、フィードバック補正係数から学習補正係数を算出して、算出した学習補正係数を適用してオープンループ制御することで、実際の空燃比を所定の希薄側の空燃比に制御するようにしている。したがって、特許文献１に記載の内燃機関の空燃比制御によれば、Ｏ2センサを用いても、内燃機関の実際の空燃比を所定の希薄側の空燃比に制御することができ、燃費の向上を図ることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭５７−１０５５３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
船外機は、自動二輪車や自動車等の車両と異なり、様々な種類の船体に搭載することが可能である。例えば高速船や重量船に取り付けたり、あるいは１つの船体に複数の船外機を取り付けたりする場合がある。このように使用環境が異なる場合、内燃機関では目標の空燃比に対する実際の空燃比のズレが生じてしまう。
【０００７】
また、諸外国を中心に内燃機関の燃料としてアルコール混合ガソリンが使用されるようになっている。純正ガソリンとアルコール混合ガソリンとでは、理論空燃比が異なるので、内燃機関についての燃料噴射量等も異なる。したがって、純正ガソリンからアルコール混合ガソリンに燃料を変更したときにも、内燃機関では目標の空燃比に対する実際の空燃比のズレが生じてしまう。
【０００８】
本発明は、上述したような問題点に鑑みてなされたものであり、燃費向上の為に希薄側の空燃比での運転の割合（機会）を増やすとともに、搭載される船体や船体への取付け位置が異なったり、燃料を変更したりした場合であっても、エンジンを始動させ希薄側の空燃比で運転させた後に、目標空燃比に対する実際の空燃比のズレを補正することで、空燃比を所定の希薄側の空燃比に制御することができるようにする。
【課題を解決するための手段】
【０００９】
本発明に係る船外機用内燃機関の空燃比制御装置は、内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するＯ2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御装置であって、前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御手段と、前記オープンループ制御手段により目標空燃比を所定の希薄側の空燃比に制御している状態で、エンジン始動後に初めて所定の条件を満たしたときに、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記Ｏ2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御手段と、前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出手段と、を有し、前記オープンループ制御手段は、前記記憶部に記憶されている学習値を前記内燃機関の全気筒に反映させて所定の希薄側の空燃比に制御することを特徴とする。
また、本発明に係る空燃比制御方法は、内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するＯ2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御する空燃比制御方法であって、前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御ステップと、前記オープンループ制御ステップにより目標空燃比を所定の希薄側の空燃比に制御している状態で、エンジン始動後に初めて所定の条件を満たしたときに、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記Ｏ2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御ステップと、前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出ステップと、を有し、前記オープンループ制御ステップでは、前記記憶部に記憶されている学習値を前記内燃機関の全気筒に反映させて所定の希薄側の空燃比に制御することを特徴とする。
また、本発明に係るプログラムは、内燃機関の排気系に配置され理論空燃比近傍で出力特性が変化するＯ2センサを備えた船外機用内燃機関における複数気筒の空燃比を制御するためのプログラムであって、前記内燃機関の運転状態と記憶部に記憶されている学習値とに基づいて、空燃比を目標空燃比に制御するオープンループ制御ステップと、前記オープンループ制御ステップにより目標空燃比を所定の希薄側の空燃比に制御している状態で、エンジン始動後に初めて所定の条件を満たしたときに、前記内燃機関の一部の気筒において、目標空燃比を理論空燃比に移行させ、前記Ｏ2センサの出力に基づいて決定されるフィードバック補正係数を用いて空燃比を理論空燃比にフィードバック制御するフィードバック制御ステップと、前記フィードバック補正係数に基づいて学習値を算出し、前記記憶部を書き換える学習値算出ステップと、をコンピュータに実行させ、前記オープンループ制御ステップでは、前記記憶部に記憶されている学習値を前記内燃機関の全気筒に反映させて所定の希薄側の空燃比に制御することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、船外機を異なる船体に取り付けたり、アルコール混合ガソリンに燃料を変更したりした場合であっても、エンジン始動してから希薄側の空燃比で運転させた後、目標空燃比を理論空燃比にしてフィードバック制御し、目標空燃比に対する実際の空燃比のズレを学習することで、空燃比を所定の希薄側の空燃比に制御することができる。
【図面の簡単な説明】
【００１１】
【図１】船外機の外観図である。
【図２】船外機の内部構成を示すブロック図である。
【図３】Ｏ2センサが配置されている位置を示す船外機の模式図である。
【図４】空燃比制御の処理を示すメインフローチャートである。
【図５】フィードバック制御の処理を示すフローチャートである。
【図６】フィードバック制御において次の処理に進む条件を判定するためのフローチャートである。
【図７】フィードバック制御の内容をグラフで示した図である。
【図８】フィードバック制御の内容をグラフで示した図である。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施形態について図面を参照して説明する。
図１は、船外機の外観図である。図１に示すように、船外機１０は船体１のトランサムボード２に取り付けられる。船外機１０は全体がカバー１１によって覆われることで、形状が整えられて構成されている。このカバー１１の内部には、船外機用内燃機関としてのエンジン１２が収容されている。また、船外機１０の下方には、エンジン１２を動力とし船体１を推進させるためのスクリュー１３が配設されている。なお、本実施形態に係るエンジン１２は、水冷４サイクルＶ型６気筒が採用されている。
【００１３】
図２は、船外機の内部構成を示すブロック図である。船外機１０は、各種の構成機器を制御するコンピュータとしてのエンジンコントロールユニット２０を有している。エンジンコントロールユニット２０は、本実施形態に係る空燃比制御装置であって、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＥＥＰＲＯＭ２４、入力インタフェース２５、出力インタフェース２６を含んで構成されている。
ＣＰＵ２１は、ＲＯＭ２２に格納されたプログラムを実行して、各種センサ等から出力される信号に基づいて、インジェクタ３０を介して空燃比を制御する。ＲＯＭ２２は、不揮発性メモリであって、ＣＰＵ２１が実行するプログラムやＣＰＵ２１が各機器を制御するときの初期値や閾値等を格納している。ＲＡＭ２３は、揮発性メモリであって、ＣＰＵ２１が各機器を制御するときに算出した情報等を一時的に記憶している。ＥＥＰＲＯＭ２４は、書き換え可能な記憶部としての不揮発性メモリであって、ＣＰＵ２１が各機器を制御する場合の情報等、例えば空燃比を制御するための学習値を記憶している。
【００１４】
入力インタフェース２５は、図２に示すように、クランク角センサ４１、スロットル開度センサ４２、吸気管圧力センサ４３、シリンダ壁温センサ４４、冷却水温度センサ４５、イグニッションスイッチ４６、チルト＆トリム角センサ４７、Ｏ2センサ４８、姿勢計４９等から出力される信号を受信する入力回路である。
クランク角センサ４１は、各気筒のクランクシャフト（不図示）に近接して配置され、所定のクランク角度で信号を出力する。なお、ＣＰＵ２１は、クランク角センサ４１から出力された信号をカウントすることで、エンジン回転数を検出することができる。
【００１５】
また、操船者によるスロットルレバーの操作に応じて、吸気管（不図示）に配置されたスロットバルブ（不図示）が閉閉し、エンジン１２に供給される空気量が調整される。このとき、スロットル開度センサ４２は、スロットバルブの開度に応じた信号を出力する。
吸気管圧力センサ４３は、吸気管に配置され、吸気管内圧力の信号を出力する。
シリンダ壁温センサ４４は、エンジン１２のシリンダブロック（不図示）の温度の信号を出力する。
冷却水温度センサ４５は、冷却水の温度の信号を出力する。
イグニッションスイッチ４６は、操船者によりオンとオフとが選択できるように構成され、オンされることにより各機器に電力が供給され、オフされることにより各機器への電力が遮断される。
チルト＆トリム角センサ４７は、図１に示すように船体１に対する船外機１０のトリム角βを検出し信号を出力する。
【００１６】
Ｏ2センサ４８は、エンジン１２の排気系に配置され、理論空燃比近傍で特性が変化する出力を生じる。具体的には、Ｏ2センサ４８は、エンジン１２の実際の空燃比が理論空燃比に対してリーン側であるかリッチ側であるかを示す信号を出力する。
図３は、Ｏ2センサ４８が配置されている位置を示す船外機の模式図であり、船外機を後方から見た図である。本実施形態では上述したようにＶ型６気筒のエンジン１２が用い
られている。Ｖ型エンジンは、複数の気筒がシリンダ内であって、クランクシャフト（不図示）を中心に所定のバンク角でＶ字型に配置される。本実施形態のエンジン１２では、６気筒のうち右側バンク１４に３つの気筒（♯１、♯３、♯５）が配置され、左側バンク１５に３つの気筒（♯２、♯４、♯６）が配置されている。
【００１７】
右側の各気筒（♯１、♯３、♯５）には排気管１６が接続され、左側の各気筒（♯２、♯４、♯６）には排気管１７が接続されている。排気管１６と排気管１７とは、船外機１０の下方に向かって延出され、船外機１０の略中央で結合され、さらに下方に向かうように延設されている。各気筒から排気された排気ガスは、各排気管１６、１７を通って、水中に排気される。
【００１８】
本実施形態に係るエンジン１２では、Ｏ2センサ４８は、排気管１７であって気筒♯２に近接した位置に配設されている。したがって、Ｏ2センサ４８は、主に気筒♯２によって排気された排気ガスの空燃比が理論空燃比に対してリーン側であるかリッチ側であるかを検出している。ただし、本実施形態では、左側バンク１５の３つの気筒（♯２、♯４、♯６）の排気ガスは共通の排気管１７によって排気される。したがって、Ｏ2センサ４８は、気筒♯２よりも影響は少ないものの、気筒（♯４、♯６）の排気ガスを含んだ排気ガスの空燃比を検出している。このようにＯ2センサ４８は、一方のバンクに配置されている気筒の排気系のみに設置されている。すなわち、Ｏ2センサ４８は、エンジン１２に配置された複数気筒のうち、一部の気筒の排気ガスの空燃比を検出できるように構成されている。
姿勢計４９は、例えばジャイロセンサであって、船外機１０の姿勢を検出し信号を出力する。
また、出力インタフェース２６は、インジェクタ３０やイグニッションコイル３１を制御するための信号を送信する出力回路である。
【００１９】
エンジンコントロールユニット２０は、各種センサ等が出力する信号に基づいてインジェクタ３０の燃料噴射量を制御し空燃比の制御を行う。
特に、燃費を向上させるために、空燃比を理論空燃比よりも所定の希薄側の空燃比にして運転（希薄燃焼運転）させたい場合がある。しかし、例えばインジェクタ等の部品のばらつきにより、実際の空燃比が所定の希薄側の空燃比よりズレた空燃比になっている場合があり、この場合、Ｏ2センサ４８は実際の空燃比が所定の希薄側の空燃比よりもどのくらいズレているかを検出することができない。したがって、例えば、実際の空燃比が所定の希薄側の空燃比よりもリッチ側にズレて運転されている場合、燃費を向上させることは困難である。
【００２０】
したがって、本実施形態では、まず目標空燃比を理論空燃比にして、Ｏ2センサ４８を用いてフィードバック制御を実行し、フィードバック補正係数を算出しながら、実際の空燃比を目標空燃比に補正するための後述する学習値を算出する。次に、算出した学習値を適用させてオープンループ制御することで、実際の空燃比を所定の希薄側の空燃比に精度よく制御することができ、燃費を向上させた運転を行うことができる。
また、例えば学習値が算出された後に、船外機１０が異なる船体に取り付けたり、純正ガソリンに代えてアルコール混合ガソリンが使用されたりする場合がある。この場合、前回学習した学習値で空燃比を制御しても、実際の空燃比は、所定の希薄側の空燃比よりズレた空燃比になってしまう。通常、船外機１０の取り付けや燃料の給油はエンジン１２を停止した状態で行うので、本実施形態では、エンジン始動後に初めて所定の条件を満たしたときに、再び学習値を算出し、算出した学習値を適用させてオープンループ制御することで、実際の空燃比を異なる使用環境や燃料に応じた所定の希薄側の空燃比に制御することができる。
【００２１】
以下、上述した空燃比制御について具体的に説明する。
まず、本実施形態では、空燃比制御をするときの燃料噴射量を、次式（１）によって算出する。
燃料噴射量Ｔｉ＝基本燃料噴射量ＴＰ×
（１＋フィードバック補正係数α＋学習値α´＋各種補正係数Ｃｏｅｆ）・・・式（１）
ここで、基本燃料噴射量ＴＰは、吸気管圧力センサ４３により検出された吸気管圧力に基づいて算出され、吸気温度や大気圧等により補正される値である。すなわち、現在の運転状態に応じた値が適用される。
フィードバック補正係数αは、フィードバック制御時にＯ2センサ４８の出力に基づいて算出される値（％）であり、オープンループ制御時にはα＝０になる。
学習値α´は、フィードバック制御時に算出されたフィードバック補正係数αの出力に基づいて算出される値（％）であり、フィードバック制御時およびオープンループ制御時にそれぞれ代入される。
各種補正係数Ｃｏｅｆは、エンジン１２の始動時、暖機時、加減速時等の条件で補正される係数（％）である。
【００２２】
以下、エンジンコントロールユニット２０が行う処理について図４〜図７を参照して説明する。図４は、空燃比制御の処理を示すメインフローチャートである。図５は、フィードバック制御の処理を示すフローチャートである。図６は、フィードバック制御において次の処理に進む条件を判定するためのフローチャートである。図７は、フィードバック制御の内容をグラフで示した図である。なお、図４〜図６に示すフローチャートは、エンジンコントロールユニット２０のＣＰＵ２１がＲＯＭ２２に格納されたプログラムを実行することにより実現される。
【００２３】
まず、ステップＳ１０では、操船者によりイグニッションスイッチ４６がオンされることで、ＣＰＵ２１は各機器に電力を供給するように制御し、エンジン１２が始動される。ＣＰＵ２１は、ＲＯＭ２２に格納されたプログラムをＲＡＭ２３に読み出し、プログラムに基づいて空燃比制御の処理を開始する。
【００２４】
ステップＳ１１において、エンジン始動後、初めて本処理を行うとき、ＣＰＵ２１は前回の運転でエンジン１２をオフしたときにＥＥＰＲＯＭ２４に記憶した学習値α´を読み出し、ＲＡＭ２３に記憶する。ＣＰＵ２１は、ＲＡＭ２３に記憶した学習値α´を上述した式（１）に代入すると共に、フィードバック補正係数α＝０を式（１）に代入して燃料噴射量を算出し、オープンループ制御にて空燃比を制御する。このとき、基本噴射量ＴＰは、上述したように吸気管圧力センサ４３により検出された吸気管圧力やエンジン回転数等に基づいて算出される。吸気管圧力は運転状態に応じて変動するので、ＣＰＵ２１は、運転状態とＲＡＭ２３に記憶された学習値α´とに応じて燃料噴射量Ｔｉが算出され、オープンループ制御にて空燃比を制御することとなる。なお、エンジン１２を購入して初めて運転する場合、ＥＥＰＲＯＭ２４に記憶された初期値の学習値α´を適用することができる。
【００２５】
ステップＳ１２では、ＣＰＵ２１は、今回エンジン１２を始動してから学習値α´を前回の学習値から書き換えたか否か、すなわち再び学習値を学習したか否かを判定する。具体的には、ＣＰＵ２１は、ＲＡＭ２３に記憶されている学習完了フラグＦｆを読み出して判定する。学習が既に完了し学習完了フラグＦｆが１の場合、ステップＳ１４に処理を進め、学習が完了しておらず学習完了フラグＦｆが０の場合、ステップＳ１３に処理を進める。
【００２６】
ステップＳ１３では、ＣＰＵ２１は、後述するフィードバック制御を行い、ＲＡＭ２３から読み出した学習値α´を今回学習した学習値に書き換えて更新する。すなわち、ＣＰＵ２１は、現時点におけるエンジン１２の使用環境や燃料に応じた学習値α´を再学習する。このように、学習値α´を再学習するのは、イグニッションスイッチ４６がオンされる前に、船外機１０が前回とは異なる船体１に取り付けられたり、燃料にアルコール混合ガソリンが給油されたりするためである。ステップＳ１３の処理については、図５のフローチャートを参照して後述する。
【００２７】
ステップＳ１４では、ＣＰＵ２１は、操船者によりイグニッションスイッチ４６がオフされたか否かを判定する。オフされた場合、ＣＰＵ２１は、ＲＡＭ２３に記憶されている学習値α´をＥＥＰＲＯＭ２４に記憶して、各機器に電力の供給を停止すると共に、エンジン１２を停止する。ここで、学習値α´をＥＥＰＲＯＭ２４に記憶することで、ＣＰＵ２１は、電力の供給が停止されても次回のエンジン１２の始動時にステップＳ１１においてＥＥＰＲＯＭ２４から学習値α´を読み出すことができる。
イグニッションスイッチ４６がオフされない場合、ＣＰＵ２１は、ステップＳ１１に処理を戻し、ＲＡＭ２３に記憶されている学習値α´を用いて、オープンループ制御を行うことで、空燃比を目標空燃比に制御することができる。
【００２８】
次に、上述したステップＳ１３におけるフィードバック制御について、図５に示すフローチャートおよび図７に示す空燃比の制御方法を示すグラフを参照して説明する。
まず、ステップＳ２０では、ＣＰＵ２１は、全ての気筒（♯１〜♯６）について、目標空燃比を所定の希薄側の空燃比にして運転（希薄燃焼運転）する。なお、本実施形態では、所定の希薄側の空燃比として１８を適用するものとする。
具体的に、ステップＳ２０では、ＣＰＵ２１は、ＲＡＭ２３に記憶された学習値α´を上述した式（１）に代入すると共に、フィードバック補正係数α＝０を式（１）に代入して燃料噴射量を算出し、オープンループ制御にて目標空燃比が１８になるように制御する。ここで、ＲＡＭ２３に記憶されている学習値α´は、前回のエンジン始動時において記憶した学習値であるため、今回、異なる船体に取り付けられていたり、アルコール混合ガソリンが給油されたりして、使用環境や燃料が異なっている場合には、目標空燃比に対して実際の空燃比がズレてしまう。
図７（ａ）は目標空燃比に対して実際の空燃比の変動を示すグラフであり、図７（ｂ）はフィードバック補正係数の変位を示すグラフである。ここでは、図７（ａ）に示すように、目標空燃比に対して実際の空燃比がＳだけズレているものとする。
【００２９】
上述したようにＯ2センサ４８は、実際の空燃比が理論空燃比のリーン側かリッチ側かしか検出することしかできず、所定の希薄側の空燃比に対してどのくらいズレているか、すなわち図７（ａ）に示すＳの値を検出することができない。そこで、ＣＰＵ２１は、目標空燃比を理論空燃比にして、実際の空燃比をＯ2センサ４８で検出して、目標空燃比に対する実際の空燃比のズレを補正するフィードバック制御を実行する。
【００３０】
ステップＳ２１では、ＣＰＵ２１は、目標空燃比を理論空燃比に移行させる前に、以下で説明する所定の条件が成立しているか否かを判定する。具体的には、ＣＰＵ２１は、ＲＡＭ２３に記憶されている移行条件成立フラグＦａを読み出して判定する。移行条件が成立し移行条件成立フラグＦａが１の場合、ステップＳ２２に処理を進め、移行条件が成立せず移行条件成立フラグＦａが０の場合、移行条件が成立するのを待機する。
【００３１】
次に、上述したステップＳ２１における条件成立の判定方法について、図６に示すフローチャートを参照して説明する。
まず、ステップＳ４１では、ＣＰＵ２１は、現在のエンジン回転数が、空燃比が安定するエンジン回転数であるか否かを判定する。空燃比が安定するエンジン回転数の場合ステップ４２に処理を進め、条件を満たさない場合ステップＳ４８に処理を進める。ステップＳ４８では、移行条件成立フラグＦａを０にしてＲＡＭ２３に記憶し、目標空燃比を理論空燃比に移行させないようにする。ステップＳ４１のような判定を行うのは、エンジン回転数が高回転である場合、あるいは低回転である場合、空燃比が安定せず正確なフィードバック制御を行うことができないためである。ステップＳ４１では、エンジン回転数が、例えば２０００ｒｐｍ以上４０００ｒｐｍ以下であるか否か等、ＲＯＭ２２に記憶された閾値に基づいて判定される。
【００３２】
ステップＳ４２では、ＣＰＵ２１は、船外機１０が安定した姿勢で所定時間が経過しているか否かを判定する。具体的には、ＣＰＵ２１は、姿勢計４９が出力する信号に基づいて船外機１０が安定した姿勢で所定時間が経過しているか否かを判定する。船外機１０が安定した姿勢で所定時間が経過している場合ステップＳ４３に処理を進め、条件を満たさない場合ステップＳ４８に処理を進め移行条件成立フラグＦａを０にしてＲＡＭ２３に記憶する。ステップＳ４２のような判定を行うのは、例えば滑走状態になる前のように船体１がプレーニングしていて、船体１の姿勢が変化している場合、エンジン回転数および空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。なお、船体１の姿勢は姿勢計で検出する場合に限られず、スロットル開度およびエンジン回転数が一定で所定時間が経過しているか否かを判定してもよい。
【００３３】
ステップＳ４３では、ＣＰＵ２１は、操船者により船外機１０のトリム角βを変更する操作がされた後、所定時間が経過しているか否かを判定する。具体的には、ＣＰＵ２１は、チルト＆トリム角センサ４７が出力する信号に基づいて船外機１０のトリム角βが変更されたかを判定する。船外機１０のトリム角βを変更する操作がされた後、所定時間が経過している場合ステップＳ４４に処理を進め、条件を満たさない場合ステップＳ４８に処理を進め移行条件成立フラグＦａを０にしてＲＡＭ２３に記憶する。ステップＳ４３のような判定を行うのは、トリム角βを変更する操作をしている場合船外機１０の姿勢が変化し、エンジン回転数および空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【００３４】
ステップＳ４４では、ＣＰＵ２１は、エンジン１２が暖機運転中ではないか否かを判定する。具体的には、ＣＰＵ２１は、シリンダ壁温センサ４４が出力する信号に基づいて例えばＲＯＭ２２に記憶されている閾値以上の温度であるか否かを判定する。暖機運転中でない場合ステップＳ４５に処理を進め、暖機運転中である場合ステップＳ４８に処理を進め移行条件成立フラグＦａを０にしてＲＡＭ２３に記憶する。ステップＳ４４のような判定を行うのは、暖機運転中の場合空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【００３５】
なお、本実施形態のように、水冷エンジンの場合、上述した閾値の温度をサーモスタット（不図示）の開温度に応じた値に設定することができる。したがって、寒冷地仕様のエンジン１２では開温度が高いサーモスタットが用いられることがあるため、この場合、閾値の温度をサーモスタットの開温度に応じて高く設定する。このように、閾値の温度を設定することで、より安定した空燃比でのフィードバック制御ができる。
【００３６】
ステップＳ４５では、ＣＰＵ２１は、エンジン回転数の変化が少ない状態で、所定時間が経過したか否かを判定する。具体的には、ＣＰＵ２１は、クランク角センサ４１が出力する信号をカウントすることでエンジン回転数を検出し、エンジン回転数の変化が少ないか否かを判定する。エンジン回転数の変化が少ない状態で、所定時間が経過した場合ステップＳ４６に処理を進め、条件を満たさない場合ステップＳ４８に処理を進め移行条件成立フラグＦａを０にしてＲＡＭ２３に記憶する。ステップＳ４５のような判定を行うのは、加速時や減速時のようなエンジン回転数の変化が大きい間は、空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【００３７】
ステップＳ４６では、ＣＰＵ２１は、スロットル開度の変化が少ない状態で、所定時間が経過したか否かを判定する。具体的には、ＣＰＵ２１は、スロットル開度センサ４２が出力する信号に基づいて単位時間当たりのスロットル開度の変化が少ないか否かを判定する。スロットル開度の変化が少ない状態で、所定時間が経過している場合ステップＳ４７に処理を進め、条件を満たさない場合ステップＳ４８に処理を進め移行条件成立フラグＦａを０にしてＲＡＭ２３に記憶する。ステップＳ４６のような判定を行うのは、スロットル開度の変化が大きい場合、空燃比が変化してしまい、正確なフィードバック制御を行うことができないためである。
【００３８】
ステップＳ４７では、上述した各ステップの所定の条件を満たしエンジン１２が正確なフィードバック制御を行うことができる状態であるため、ＣＰＵ２１は、移行条件成立フラグＦａを１にしてＲＡＭ２３に記憶し、図５に示すステップＳ２１の処理に戻る。
【００３９】
上述したように、ステップＳ２１では、ＣＰＵ２１は、移行条件成立フラグＦａが１の場合、ステップＳ２２に処理を進める。
ステップＳ２２では、ＣＰＵ２１は、目標空燃比を所定の希薄側の空燃比１８にして運転している状態から、目標空燃比を理論空燃比１４．７に移行させる。本実施形態では、ＣＰＵ２１は、６つの気筒（♯１〜♯６）のうち一部の気筒であって、Ｏ2センサ４８が配置された左側バンク１５の気筒（♯２、♯４、♯６）についてのみ理論空燃比に移行させる。このとき、ＣＰＵ２１は、フィードバック補正係数α＝０にしたまま、基本噴射量ＴＰを増加させることで、燃料噴射量Ｔｉを増加させ、目標空燃比が理論空燃比１４．７になるように運転する。なお、このとき、ＣＰＵ２１は式（１）の学習値α´には、前回の学習値を代入したまま、基本噴射量ＴＰを変動させる。
【００４０】
ステップＳ２３では、ＣＰＵ２１は、そのまま目標空燃比を理論空燃比にした状態で運転を継続させる。なお、図７（ａ）に示すように、目標空燃比を理論空燃比にしたとしても、学習値α´の値が前回のエンジン１２の始動時において記憶した学習値で運転しているため、実際の空燃比は理論空燃比に対してズレてしまっている。
ステップＳ２４では、ＣＰＵ２１は、目標空燃比を理論空燃比に移行してから、所定時間が経過したか否かを判定する。所定時間が経過した場合ステップＳ２５に処理を進め、所定時間が経過していない場合ステップＳ２３に処理を戻し、所定時間が経過するのを待機する。ステップＳ２４のような処理を行うのは、図７（ａ）に示すように、移行条件が成立した後、目標空燃比を理論空燃比にしてから実際の空燃比が一定の空燃比になるまでにタイムラグがあるためである。なお、ここでの所定時間は、現在のエンジン回転数に応じた時間が適用される。
【００４１】
ステップＳ２５では、ＣＰＵ２１は、フィードバック制御に移行する前に、所定の条件が成立しているか否かを判定する。具体的には、ＣＰＵ２１は、ＲＡＭ２３に記憶されている実行条件成立フラグＦｂを読み出して判定する。実行条件が成立し実行条件成立フラグＦｂが１の場合ステップＳ２６に処理を進め、実行条件が成立せず実行条件成立フラグＦｂが０の場合実行条件が成立するのを待機する。
【００４２】
ステップＳ２５における条件成立の判定方法は、上述した図６に示すフローチャートと同様であり、詳細な説明は省略する。ここでは、上述したステップＳ４１からステップＳ４６までの処理で説明したように、所定の条件を満たし、現在のエンジン１２の運転状態が正確なフィードバック制御を行うことができる場合、ステップＳ４７に処理を進め、ＣＰＵ２１は、実行条件成立フラグＦｂに１を代入し、ＲＡＭ２３に記憶する。一方、正確なフィードバック制御を行うことができない場合、ステップＳ４８に処理を進め、ＣＰＵ２１は、実行条件成立フラグＦｂに０を代入し、ＲＡＭ２３に記憶する。その後、ステップＳ２５に処理を戻す。このように、実行条件が成立する場合にのみフィードバック制御を実行することにより、正確なフィードバック制御を行うことができる。
【００４３】
上述したように、ステップＳ２５では、ＣＰＵ２１は、実行条件が成立し実行条件成立フラグＦｂが１の場合、ステップＳ２６に処理を進める。
ステップＳ２６では、ＣＰＵ２１は、フィードバック制御を実行する。本実施形態では、ＣＰＵ２１は、６つの気筒（♯１〜♯６）のうち一部の気筒であって、Ｏ2センサ４８が配置された左側バンク１５の気筒（♯２、♯４、♯６）についてのみフィードバック制御を行う。
具体的には、図７（ａ）および（ｂ）に示すように、現在の空燃比を検出しているＯ2センサ４８が理論空燃比よりもリッチ側の信号を出力している場合、ＣＰＵ２１はフィードバック補正係数αを減少させて、空燃比をリーン側に制御する。逆に、Ｏ2センサ４８が理論空燃比よりもリーン側の信号を出力している場合、ＣＰＵ２１はフィードバック補正係数αを増加させて、空燃比をリッチ側に制御する。このような処理を繰り返すことで、図７（ｂ）に示すように、フィードバック補正係数αの値が減少と増加とが交互に繰り返される。また、図７（ａ）に示すように、実際の空燃比が理論空燃比を中心としてリッチ側とリーン側とを交互に反転が繰り返され、フィードバック制御が行われる。なお、このとき、ＣＰＵ２１は式（１）の学習値α´には、前回の学習値を代入したまま、フィードバック補正係数αを変動させる。このように、前回の学習値を適用させた状態でフィードバック補正係数αを変動させることで、前回の学習を利用することができるので、フィードバック補正係数αの変動を少なくすることができる。すなわち、フィードバック補正係数αの変動を少なくすることは、燃料噴射量Ｔｉの変動も少なくなることであり、結果としてエンジン１２の挙動の変動を少なくすることができる。
【００４４】
なお、燃料にアルコール混合ガソリンが給油された場合、アルコールの濃度が濃くなるにしたがって、理論空燃比は１４．７から小さい値になってしまう。しかしながら、Ｏ2センサ４８は、アルコールの濃度に応じた理論空燃比に対して、実際の空燃比がリッチ側であるかリーン側であるかを出力することができるために、図７（ａ）に示すグラフと同じように、実際の空燃比がアルコールの濃度に応じた理論空燃比を中心としてリッチ側とリーン側とを交互に反転が繰り返され、フィードバック制御が行われる。すなわち、燃料にアルコール混合ガソリンが給油された場合、異なる使用環境と燃料との両方による実際の空燃比と目標理論空燃とのズレを補正するようにフィードバック制御が行われる。
【００４５】
次に、ステップＳ２７では、ＣＰＵ２１は、実際の空燃比がリッチ側およびリーン側の反転を所定回数繰り返したか否かを判定する。リッチ側とリーン側との反転を所定回数繰り返した場合ステップＳ２８に処理を進め、所定回数に満たない場合ステップＳ２６に処理を戻して、所定回数になるまで待機する。ステップＳ２７のような判定を行うのは、フィードバック制御を実行した直後は、リッチ側とリーン側との反転が安定しないためである。なお、エンジン回転数により、リッチ側とリーン側との反転が安定する回数が異なるため、ここでの所定回数とは、エンジン回転数に応じて適用される。また、実際の空燃比がリッチ側とリーン側との反転を所定回数繰り返したか否かを判定する場合に限られず、リッチ側とリーン側との反転が安定するような所定時間が経過したか否かを判定してもよい。
【００４６】
ステップＳ２８では、ＣＰＵ２１は、フィードバック補正係数から学習値を実際に算出する前に、所定の条件が成立しているか否かを判定する。具体的には、ＣＰＵ２１は、ＲＡＭ２３に記憶されている学習条件成立フラグＦｃを読み出して判定する。学習条件が成立し学習条件成立フラグＦｃが１の場合、ステップＳ２９に処理を進め、学習条件が成立せず学習条件成立フラグＦｃが０の場合、学習条件が成立するのを待機する。
【００４７】
ステップＳ２８における条件成立の判定方法は、上述した図６に示すフローチャートと同様であり、詳細な説明は省略する。ここでは、上述したステップＳ４１からステップＳ４６までの処理で説明したように、所定の条件を満たし、現在のエンジン１２の運転状態が精度の高い学習値を学習できる場合、ステップＳ４７に処理を進め、ＣＰＵ２１は、学習条件成立フラグＦｃに１を代入し、ＲＡＭ２３に記憶する。一方、精度の高い学習値を学習ができない場合、ステップＳ４８に処理を進め、ＣＰＵ２１は、学習条件成立フラグＦｃに０を代入し、ＲＡＭ２３に記憶する。その後、ステップＳ２８に処理を戻す。
【００４８】
上述したように、ステップＳ２８では、ＣＰＵ２１は、学習条件が成立し学習条件成立フラグＦｃが１の場合、ステップＳ２９に処理を進める。
ステップＳ２９では、ＣＰＵ２１は、学習条件が成立した後、空燃比がリーン側からリッチ側に反転するときのフィードバック補正係数およびリッチ側からリーン側に反転するときのフィードバック補正係数をサンプリングして、ＲＡＭ２３に記憶する。具体的には、図７（ｂ）に示すように、例えば、リッチ側の反転時のフィードバック係数をそれぞれＲ１、Ｒ２・・・Ｒｎとし、リーン側の反転時のフィードバック係数をそれぞれＬ１、Ｌ２・・・Ｌｎとする。この場合、ＣＰＵ２１は、各フィードバック補正係数（Ｒ１、Ｒ２・・・ＲｎおよびＬ１、Ｌ２・・・Ｌｎ）をＲＡＭ２３に記憶する。本実施形態では、例えばｎ＝６として、Ｒ１〜Ｒ６、Ｌ１〜Ｌ６の合計１２のフィードバック補正係数をサンプリングする。
【００４９】
ステップＳ３０では、ＣＰＵ２１は、ステップＳ２９でサンプリングした複数のフィードバック補正係数に基づいて、学習値を算出し、ＲＡＭ２３に記憶する。具体的には、ＣＰＵ２１は、まず、次式（２）のようにサンプリングしたフィードバック補正係数の平均値Ａを算出する。
平均値Ａ＝（Ｒ１＋Ｒ２＋・・＋Ｒｎ＋Ｌ１＋Ｌ２＋・・＋Ｌｎ）／２×ｎ・・式（２）
なお、図７（ｂ）では、平均値Ａを一点鎖線で示している。
次に、ＣＰＵは、式（３）のように、前回の学習値α´に平均値Ａを加算して、新たな学習値α´を算出する。
新たな学習値α´＝（前回の学習値α´＋平均値Ａ）・・式（３）
この時点で、学習値が再学習され、前回の学習値α´が今回、式（３）で算出された新たな学習値α´に書き換えられ更新される。すなわち、ＣＰＵ２１は、ＲＡＭ２３に新たな学習値α´を記憶する。また、ＣＰＵ２１は、学習完了フラグＦｆに１を代入し、ＲＡＭ２３に記憶する。
ＲＡＭ２３に記憶された新たな学習値α´を用いて、燃料噴射量Ｔｉを算出することで、現在の使用環境および燃料に応じた目標空燃比と実際の空燃比とのズレを補正することができる。
【００５０】
ステップＳ３１では、ＣＰＵ２１は、更新された新たな学習値α´を全気筒、すなわち６つの気筒（♯１〜♯６）に適用して、目標空燃比を所定の希薄側の空燃比にしてオープンループ制御に移行する。具体的には、ＣＰＵ２１は、上述した式（１）に、フィードバック補正係数α＝０を代入すると共に、式（１）に再学習した学習値α´を代入し、目標空燃比が所定の希薄側の空燃比になるように、燃料噴射量Ｔｉを算出して運転する。
図７（ａ）に示すように、再学習した学習値α´を適用することで、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
したがって、部品のばらつきに限られず、異なる使用環境や燃料による実際の空燃比と目標理論空燃とのズレを補正でき、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
【００５１】
ステップＳ３２では、ＣＰＵ２１は以降、ステップＳ３１で説明した学習値α´を適用し、所定の希薄側の空燃比での運転を継続して行う。
その後、上述した図４に示すメインフローチャートに戻り、ステップＳ１４において、ＣＰＵ２１は、イグニッションスイッチ４６がオフされた場合、ＣＰＵ２１は、ステップＳ３０にてＲＡＭ２３に記憶されている再学習された学習値α´を次回のエンジン１２の始動時に適用できるようにＥＥＰＲＯＭ２４に記憶する。
なお、上述した説明では、図７のフィードバック制御の内容を示すグラフのように、実際の空燃比が目標空燃比に対してリッチ側にズレている場合を例にして説明した。しかし、この場合に限られず、図８のフィードバック制御の内容を示すグラフのように、実際の空燃比が目標空燃比に対してリーン側にズレている場合（例えば純正ガソリンからアルコール混合ガソリンに燃料が変更されたとき等）がある。図８（ａ）は目標空燃比に対して実際の空燃比の変動を示すグラフであり、図８（ｂ）はフィードバック補正係数の変位を示すグラフである。この場合であっても、同様に異なる使用環境や燃料による実際の空燃比と目標理論空燃とのズレを補正でき、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
【００５２】
このように、本実施形態によれば、目標空燃比を理論空燃比にしてＯ2センサを用いてフィードバック制御し、目標空燃比に対する実際の空燃比のズレを学習することで、機器のコストを削減させることができる。
また、エンジン始動後に初めて所定の条件を満たしたときに、目標空燃比に対する実際の空燃比のズレを学習することで、部品のばらつきに限られず使用環境や燃料に応じた学習値を算出でき、結果として、実際の空燃比を目標とする所定の希薄側の空燃比に一致させることができる。
また、目標空燃比を所定の希薄側の空燃比に制御している状態から目標空燃比を理論空燃比にしてフィードバック制御を行うので、従来のように空燃比が所定の希薄側の空燃比で運転され続けてしまうと学習値を再学習できないおそれがあるという問題を解消することができる。
【００５３】
また、本実施形態では、Ｖ型エンジンにおける一方のバンクである一部の気筒にて学習値を算出した後、その学習値を全気筒に反映するので、ＣＰＵ２１は、学習値を算出するときの処理を削減することができ、迅速に学習値を算出することができる。
また、本実施形態では、目標空燃比を理論空燃比に移行したり、フィードバック制御を実行したり、フィードバック補正係数をサンプリングしたりするとき、所定の条件を満たしたときに初めて次の処理に移行するので、正確な学習値を算出することができる。
【００５４】
以上、本発明を種々の実施形態と共に説明したが、本発明はこれらの実施形態にのみ限定されるものではなく、本発明の範囲内で変更等が可能である。
例えば、上述では図５のフローチャートに示すステップＳ２１の移行条件、ステップＳ２５の実行条件およびステップＳ２８の学習条件は、全て図６に示す条件成立の判定方法のフローチャートと同一であるものとして説明した。しかしながら、この場合に限られず、ステップＳ２１の移行条件、ステップＳ２５の実行条件、ステップＳ２８の学習条件に進むにしたがい、条件が厳しくなるように設定してもよい。
【００５５】
すなわち、例えばステップＳ４２において、船外機１０が安定して姿勢で所定時間が経過しているかを判定するとき、ステップＳ２１の移行条件、ステップＳ２５の実行条件、ステップＳ２８の学習条件に進むにしたがい、所定時間が長くなるように設定してもよい。
また、例えば、ステップＳ２８の学習条件では、図６に示すフローチャートのステップＳ４１からステップＳ４６の全てを判定し、ステップＳ２１の移行条件およびステップＳ２５の実行条件では、図６に示すフローチャートのステップＳ４１からステップＳ４６のうち、一部のステップの処理を省略するようにしてもよい。
【００５６】
また、本実施形態では、Ｖ型６気筒のエンジンを適用する場合について説明したが、この場合に限られず、直列型気筒のエンジンであってもよく、６気筒以外の複数気筒のエンジンであってもよい。
また、本実施形態では、Ｏ2センサ４８が配置されている排気管に対応する３つの気筒をフィードバック制御する場合について説明したが、この場合に限られない。例えば、Ｏ2センサ４８に最も近接した気筒♯２のみをフィードバック制御し、フィードバック制御した結果を全気筒に反映させてもよい。このように、１つの気筒のみをフィードバック制御することで、ＣＰＵ２１は、迅速に学習値を算出することができる。
【符号の説明】
【００５７】
１０：船外機  １２：エンジン  ２０：エンジンコントロールユニット  ２１：ＣＰＵ  ２２：ＲＯＭ  ２３：ＲＡＭ  ２４：ＥＥＰＲＯＭ  ２５：入力インタフェース  ２６：出力インタフェース  ３０：インジェクタ  ３１：イグニッションコイル  ４１３：クランク角センサ  ４２：スロットル開度センサ  ４３：吸気管圧力センサ  ４４：シリンダ壁温センサ  ４５：冷却水温度センサ  ４６：イグニッションスイッチ  ４７：チルト＆トリム角センサ  ４８：Ｏ2センサ  ４９：姿勢計
【図１】
0005482462.tif 000002
【図２】
0005482462.tif 000003
【図３】
0005482462.tif 000004
【図４】
0005482462.tif 000005
【図５】
0005482462.tif 000006
【図６】
0005482462.tif 000007
【図７】
0005482462.tif 000008
【図８】
0005482462.tif 000009