(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フィードバック制御における補正係数の変化の状態を示す図である。Ｏ2フィードバック制御が開始されると、まずリッチ方向の制御パラメータに基づいて噴射量が制御される。Δｔ１は制御開始直後の収束前の制御周期であり、Δｔ２は収束後の制御周期である。収束前は、目標とする空燃比に短時間で収束させるためにΔｔ１はΔｔ２よりも短く設定されている。Δｔ１の周期で一旦収束した後は空燃比の制御精度を高めるために周期を変えてΔｔ２の周期で制御が行われる。Ｐ１、Ｐ２はそれぞれリッチ側およびリーン側に切り替えたときの比例定数であり、次の切り替え点に速く達するために噴射量をステップ的に変化させる係数である。Ｉ１，Ｉ２はそれぞれリッチ方向およびリーン方向の積分定数である。前述の周期Δｔ１またはΔｔ２における補正係数の増加量を表す。このように、比例定数Ｐ１、Ｐ２および積分定数Ｉ１，Ｉ２をリッチ方向およびリーン方向にそれぞれ独立してもつのは、Ｏ2センサの応答性が制御方向により異なるためである。
【０１３０】
図２２は、補正係数を演算する場合の上記各制御パラメータのマップテーブルを示す。これらの図は、上記パラメータ、Ｐ１，Ｐ２，Ｉ１，Ｉ２，Δｔ１，Δｔ２およびリッチからリーンへの切り替え電圧Ｖ１とリーンからリッチへの切り替え電圧Ｖ２のテーブルを示す。Ｖ１およびＶ２は、それぞれ基準気筒＃１をＯ2センサの出力に基づいて制御する場合に、目標とする空燃比を越えた時点でリッチからリーンへおよびその逆の方向へ制御を切替えるための閾値電圧である。このような８つの図示したテーブルには、エンジン回転数（ｒｐｍ）に対応して各パラメータの値が書込まれている。このように各パラメータをエンジン回転数に応じて変えているのは、エンジン回転数に応じエンジン圧力波が変化し、Ｏ2センサに対する既燃ガスの入替わり速度が異なってくるためである。この場合、片方向側（例えばリッチ側）の比例定数と積分定数のみをエンジン回転数に応じて可変とするマップテーブルを作成し、もう一方（リーン側）は、リッチ側の定数に予め実験等により求めた係数を乗ずることにより演算してもよい。これにより、メモリ量を低下させるとともに演算時間の短縮が図られる。
【０１３１】
図２３は、上記マップテーブルのパラメータを用いて演算した補正係数の変化状態を示す。時間ｔ１でＯ2フィードバック制御がスタートすると、まずリッチ方向への燃料噴射が行われる。ここでは、図２１に示したように、Ｐ１による増加後周期Δｔ１での短いステップ状に補正係数が演算されこれに基づきリッチ方向に燃料噴射が行われる。時間ｔ２でＡ／Ｆが目標空燃比を上回ると、Ｏ2センサの出力電圧がＶ１に達し、リッチからリーン方向へ制御方向が切り替わる。ここで補正係数がＰ２（図２１）に対応して減少する。これがリッチ側からリーン側への第１回目の切り替わり点Ａ１である。ここからリーン方向への噴射を行い周期Δｔ２ごとにＩ２に対応して補正係数を減少させ噴射量を減少させると、時間ｔ３で再び目標空燃比を下回り、Ｏ2センサの出力電圧がＶ２になる。この時点で再びリーン方向からリッチ方向へ制御方向を切り替える。ここがリーン方向からリッチ方向への第１回目の切り替え点Ｂ１（切り替え点としては２回目）である。ここで前述の比例定数Ｐ１に対応して噴射量を立上げ、その後周期Δｔ２ごとに積分定数Ｉ１に対応して燃料を増量する。これにより、再びＡ／Ｆが目標空燃比を上回り、時間ｔ４でＯ2センサの出力電圧がＶ１に達する。この時点でリッチからリーンへ制御方向が切り替わり、この方向の２回目の補正係数の方向切り替わり点Ａ２となる。ここで前記切り替え点Ａ１のときと同様に、比例定数Ｐ２に対応して燃料を減量し、さらに周期Δｔ２ごとに積分定数Ｉ２に対応して補正係数を減少させることにより、時間ｔ５で再び切り替え点Ｂ２に達する。以降同様にしてリッチ側およびリーン側への噴射制御が繰り返し行われる。
【０１３２】
補正係数を付加した燃料噴射量ＴINJは以下のようにして演算される。
【０１３３】
ＴINJ＝ＴINJB×ＴINJC＋（ＴINJB＋ＴL）×Ｃ＋ＴL＋ＴINV      （１）
ここで、ＴINJBは、図１４のステップＳ２２またはＳ２４で演算した基本燃料噴射時間、ＴINJCは、ステップＳ２３で演算したエンジン温度補正係数、大気圧補正係数およびトリム角補正係数を乗じた噴射補正係数である。Ｃは本実施例に係るＯ2フィードバック制御により演算した補正係数である（図１４のステップＳ２５）。またＴINVは、無効噴射時間である。これはバッテリ電圧によりインジェクタの弁の開閉時間が異なるため、バッテリ電圧に応じてこれを補正するためのものである。また、ＴLは学習補正噴射時間であり、学習制御領域において、所定の学習マップから求められる。この学習制御は、例えば所定の運転状態で燃料噴射をリーン側にセットした領域において、マップ演算した所定の補正量に基づいて燃料噴射制御を行うとともに、この補正量から所定の学習値を算出してこれを学習マップに書込んで更新し、次回の学習制御領域の運転ではこの学習値に基づいて空燃比を制御するものである。
【０１３４】
なお、図２３において、時刻ｔ２、ｔ４におけるＡ／Ｆ検知値は目標Ａ／Ｆを僅かに上回り、時差ｔ３、ｔ５においては僅かに下回る。
【０１３５】
以上のようにして、基準気筒＃１に対しては、Ｏ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センサ出力がＶ２に達せず反転が必要なければ、反転フラグをクリアし、現在立てられているリーン方向のフラグをそのままセットする。（ステップＳ２５９）。一方、ステップＳ２５０でリッチ方向の制御中であれば、上記リーンの場合と全く逆にステップＳ２５３、Ｓ２５４、Ｓ２６８、Ｓ２５９、（またはＳ２６０、Ｓ２５６）を介して、リーン方向への反転またはリッチ制御の続行が行われる。
【０１４１】
図２５のフローチャートに戻り、前述のようにステップＳ２２５で制御方向が判定されいずれかの方向にセットされさらに反転フラグがセットもしくはクリアされている状態で、ステップＳ２２６に進む。ここで反転フラグの状態が判別される。方向反転時であれば、比例定数Ｐ１またはＰ２（図２２）を演算する（ステップＳ２２７）。さらにステップＳ２２８で、残りの気筒＃２〜＃６についての補正係数の代表値を計算し、学習制御中であれば、学習により学習マップに書込む値を計算する（ステップＳ２２９）。
【０１４２】
一方、ステップＳ２２６で方向反転時でなければ、周期ごとのステップ状に燃料を増加または減少するための積分定数Ｉ１またはＩ２（図２２）がマップテーブルより演算される（ステップＳ２３０）。
【０１４３】
これらのステップＳ２２７の比例定数計算およびステップＳ２３０の積分定数計算のフローチャートをそれぞれ図２９および図３０に示す。図示したように、比例定数計算においては、リッチかリーンの方向が判別され（ステップＳ２６１）、リッチ方向であれば図２２のＰ１が演算され（ステップＳ２６２）、リーン方向であればＰ２が演算される（ステップＳ２６４）。その後、反転前の方向の積分演算の回数がクリアされる（ステップＳ２６３）。
【０１４４】
図３０の積分定数計算においては、リッチかリーンの方向が判別され（ステップＳ２６５）、リッチ方向であれば図２２のＩ１が演算され（ステップＳ２６６）、リーン方向であればＩ２が演算される（ステップＳ２６８）。その後、積分演算の回数がインクリメントされる（ステップＳ２６７）。この積分回数は＃１気筒の補正係数演算に用いる（ステップＳ２７７）。
【０１４５】
図３１は、上記ステップＳ２２８における補正係数の代表値計算のフローを示す。まずリッチからリーン（またはその逆）に方向を反転した時点かどうかが判別される。リーンからリッチの反転時であれば、反転直前の＃１気筒の補正係数Ｃをβn-1としてメモリに保管する（ステップＳ２７０）。リーンからリッチの反転後であれば、データβn-1が保管されているかどうかが判別される（ステップＳ２７１）。保管されてなければ、リーンからリッチの反転前の状態であり代表値の演算を行なわない。βn-1が保管されていれば、反転直前の＃１気筒の補正係数Ｃをβnとして保管する（ステップＳ２７２）。続いて、ステップＳ２７３で、代表値を計算する。この代表値は、２つの連続する反転位置の補正係数の平均値となる。この場合、平均値をとる補正係数のデータは２点に限らず、リッチ側からリーン側およびその逆方向の反転位置におけるそれぞれ２点づつの４点の平均あるいはさらにそれ以上の点の平均を計算してもよい。また、平均化の方法についても、常に新しい反転位置のデータを用いる移動平均や新しいデータを順次加える加算平均等を用いて演算してもよい。また、代表値は平均値に限らず、２つあるいはそれ以上の反転位置の補正係数の予め設定した所定の中間値としてもよい。
【０１４６】
このようにして基準気筒＃１のＯ2フィードバック制御におけるＰ1、Ｐ2、Ｉ1、Ｉ2、積分回数及び反転位置の補正係数から算出した代表値に基づいて、図２５のステップＳ２３１において、全気筒＃１〜＃６の補正係数が演算される。この補正係数演算のフローを図３２に示す。前述のように、燃料噴射時間は（１）式から算出する。
【０１４７】
ＴINJ＝ＴINJB×ＴINJC＋（ＴINJB＋ＴL）×Ｃ＋ＴL＋ＴINV      （１）
（ＴINJ：補正係数を付加した燃料噴射量、ＴINJB：基本噴射時間、ＴINJC：噴射補正係数、（ＴINJB＋ＴL）×Ｃ：Ｏ2フィードバック制御による補正量、ＴL：学習補正噴射時間（マップ値）、Ｃ：Ｏ2フィードバック制御の補正係数、ＴINV：無効噴射時間）
まず、ステップＳ２７４で＃２〜＃６についての代表値が演算されているかどうかが判別される。Ｏ2フィードバック制御開始直後等で反転位置のデータ量が不足しているために代表値が計算されていない場合には、補正係数Ｃを０として演算を続ける。代表値が演算されている場合には、この代表値を補正係数Ｃとする（ステップＳ２７５）。次に、ステップＳ２７７において、＃１気筒について図２２の各パラメータ及び積分回数を用いて補正係数を演算する。
【０１４８】
補正係数は、Ｃ＝Ｃ0＋Ｐx＋ｎ×Ｉxにて、表わされる。ここで、
Ｃ0：補正係数初期値（Ｏ2Ｆ／Ｂスタート時はθ。リッチ／リーン切替え時は、切替え直前のＣの値。）
Ｐx：Ｐ１、Ｐ２を方向により選択
Ｉx：Ｉ1、Ｉ2を方向により選択
ｎ：積分回数（リッチ／リーン切替え時クリア）
である。
【０１４９】
このようにして全気筒の補正係数が計算されたなら、ステップＳ２３２において、全気筒について、前述の燃料噴射時間ＴINJ中の（ＴINJB＋ＴL）×Ｃを計算する。またＴINJの計算は、図１４Ｓ２７にて行なう。
【０１５０】
【発明の効果】
以上説明したように、本発明においては、基準気筒に対してのみＯ2フィードバック制御によるリッチ、リーンの繰り返し制御を行い、他の気筒については、基準気筒の補正係数に基づいて代表値を算出し、この代表値による一定の補正係数に基づいて噴射制御を行っているため、運転の安定性が高められる。特に燃費向上のためにリーンセットしたエンジンにおいて、空燃比変化によるエンジン回転の変動が抑えられるため、安定した回転で燃費の向上が図られる。また、Ｏ2センサは基準気筒に対し設けるだけでよくまたマップテーブルも基準気筒に対してのみ準備すればよいため、構成が簡単になり、演算の処理時間の短縮が図られるとともにマップ用のメモリ容量を小さくすることができる。
【図面の簡単な説明】
【図１】  本発明が適用される船外機の要部構成図である。
【図２】  図１のエンジンの平面図である。
【図３】  図１の船外機の燃料系統を含む構成図である。
【図４】  図１の船外機の側面外観図である。
【図５】  図１のエンジンの左バンクの詳細図である。
【図６】  図１のエンジンの排気通路の説明図である。
【図７】  図１のエンジンの吸気系を含む構成図である。
【図８】  図１のエンジン制御に用いる排気センサーの構成図である。
【図９】  排気センサーの別の取付け例の説明図である。
【図１０】  船外機プロペラ軸への伝達機構の構成図である。
【図１１】  船外機のシフト機構の要部構成図である。
【図１２】  本発明実施例に係るシステムブロック図である。
【図１３】  本発明実施例に係る制御手段のブロック図である。
【図１４】  本発明実施例に係るメインルーチンのフロー図である。
【図１５】  図１４のメインルーチンにおけるＴＤＣ割込みのフロー図である。
【図１６】  図１６の点火パルスセットの詳細フロー図である。
【図１７】  図１４のルーチンにおけるタイマーオーバーフローの詳細フロー図である。
【図１８】  図１４のルーチンにおける点火時期制御用タイマーの割込みフロー図である。
【図１９】  本発明の実施例に係るマップ領域の遷移図である。
【図２０】  Ｏ2センサの出力電圧を示す図である。
【図２１】  本発明の実施例に係るＯ2フィードバック制御方法の補正係数の変化の説明図である。
【図２２】  本発明の実施例に係るマップテーブルの説明図である。
【図２３】  本発明の実施例に係るＯ2フィードバック制御の動作説明図である。
【図２４】  図１４のメインルーチンのＯ2フィードバック制御の補正係数演算ステップの詳細フローチャートである。
【図２５】  図２４のＯ2フィードバック制御の詳細フローチャートである
。
【図２６】  図２４のＯ2フィードバック制御の実行判定ステップの詳細フローチャートである。
【図２７】  図２５のフローにおける制御周期計算ステップの詳細フローチャートである。
【図２８】  図２５のフローにおけるＯ2フィードバック制御の状態判定ステップの詳細フローチャートである。
【図２９】  図２５のフローにおける比例定数計算ステップの詳細フローチャートである。
【図３０】  図２５のフローにおける積分定数計算ステップの詳細フローチャートである。
【図３１】  図２５のフローにおける代表値計算ステップの詳細フローチャートである。
【図３２】  図２５のフローにおける全気筒補正係数演算ステップの詳細フローチャートである。
【符号の説明】
１：エンジン
２：左バンク
３：右バンク
４：シリンダ本体
５：排気ポート
６：排気管
７：カウリング
８：アッパーケーシング
９：ロアケーシング
１３：主排気口
１４：排気センサー
２１：クランク軸
２５：スロットル弁
２６：インジェクタ
【図１】
0003687923.tif 000002
【図２】
0003687923.tif 000003
【図３】
0003687923.tif 000004
【図４】
0003687923.tif 000005
【図５】
0003687923.tif 000006
【図６】
0003687923.tif 000007
【図７】
0003687923.tif 000008
【図８】
0003687923.tif 000009
【図９】
0003687923.tif 000010
【図１０】
0003687923.tif 000011
【図１１】
0003687923.tif 000012
【図１２】
0003687923.tif 000013
【図１３】
0003687923.tif 000014
【図１４】
0003687923.tif 000015
【図１５】
0003687923.tif 000016
【図１６】
0003687923.tif 000017
【図１７】
0003687923.tif 000018
【図１８】
0003687923.tif 000019
【図１９】
0003687923.tif 000020
【図２０】
0003687923.tif 000021
【図２１】
0003687923.tif 000022
【図２２】
0003687923.tif 000023
【図２３】
0003687923.tif 000024
【図２４】
0003687923.tif 000025
【図２５】
0003687923.tif 000026
【図２６】
0003687923.tif 000027
【図２７】
0003687923.tif 000028
【図２８】
0003687923.tif 000029
【図２９】
0003687923.tif 000030
【図３０】
0003687923.tif 000031
【図３１】
0003687923.tif 000032
【図３２】
0003687923.tif 000033