(57)【特許請求の範囲】
【請求項１】
通常運転時にスロットル開度およびエンジン回転数に基づいて点火時期および／または燃料噴射の基本制御量を演算する通常運転マップを有し、この通常運転マップを用いてプログラム制御を行う内燃機関の制御方法において、上記スロットル開度の検出信号に異常が生じた場合に、スロットルセンサー異常時用のルーチンに基づいてプログラム制御を行う内燃機関の制御方法であって、
前記スロットルセンサー異常時用のルーチンは、予め前記通常運転マップにおいて通常運転時には用いない特定スロットル開度位置に基本制御量の値を書込み、センサー異常時には、スロットル開度を上記特定スロットル開度位置に固定し、上記通常運転マップを用いて前記基本制御量を演算するように構成されたことを特徴とする内燃機関の制御方法。
【請求項２】
通常運転時にスロットル開度およびエンジン回転数に基づいて点火時期および／または燃料噴射の基本制御量を演算する通常運転マップを有し、この通常運転マップを用いてプログラム制御を行う船外機用内燃機関の制御方法において、上記スロットル開度の検出信号に異常が生じた場合に、スロットルセンサー異常時用のルーチンに基づいてプログラム制御を行う船外機用内燃機関の制御方法であって、
前記スロットルセンサー異常時用のルーチンは、エンジン回転数のみに基づいてその回転数でのスロットル開度を予測演算し、この予測演算によるスロットル開度と上記エンジン回転数に基づいて前記通常運転マップを用いて基本制御量を演算するように構成されたことを特徴とする船外機用内燃機関の制御方法。
【請求項３】
スロットル開度検出手段と、エンジン回転数検出手段と、これらの検出手段の検出結果に基づいて点火時期および／または燃料噴射の基本制御量を演算するための通常運転時用の基本演算マップと、この基本演算マップを用いてエンジンの駆動制御を行うメインルーチンからなるプログラムとを有する内燃機関の制御装置において、
前記スロットル開度検出手段の異常を判別するスロットル開度検出異常判別手段を備え、前記プログラムは、このスロットル開度検出手段が異常と判別されたときに実行する異常時用のルーチンを有し、
前記異常時用のルーチンは、その基本制御量が、予め前記通常運転時用の基本演算マップにおいて通常運転時には用いない特定スロットル開度位置に書込まれたことを特徴とする請求項１に記載の内燃機関の制御方法を実施するための内燃機関の制御装置。
【請求項４】
スロットル開度検出手段と、エンジン回転数検出手段と、これらの検出手段の検出結果に基づいて点火時期および／または燃料噴射の基本制御量を演算するための通常運転時用の基本演算マップと、この基本演算マップを用いてエンジンの駆動制御を行うメインルーチンからなるプログラムとを有する船外機用内燃機関の制御装置において、
前記スロットル開度検出手段の異常を判別するスロットル開度検出異常判別手段を備え、前記プログラムは、このスロットル開度検出手段が異常と判別されたときに実行する異常時用のルーチンを有し、
前記異常時用のルーチンは、その基本制御量が、エンジン回転数のみに基づいてその回転数でのスロットル開度を予測演算し、この予測演算によるスロットル開度と上記エンジン回転数に基づいて前記通常運転マップを用いて演算されるように構成されたことを特徴とする請求項２に記載の内燃機関の制御方法を実施するための船外機用内燃機関の制御装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は内燃機関の制御方法および装置に関し、特にスロットル開度を含む複数のパラメータに基づいて制御量を演算する制御方法において、スロットル開度信号に異常があった場合に対処するための制御方法および装置に関するものである。
【０００２】
【従来の技術】
２サイクルあるいは４サイクルの電子制御エンジンにおいては、エンジンの運転状態に応じて最適な点火時期および燃料噴射量を演算しさらに燃料噴射タイミング等の制御量を得るために、各制御パラメータについて予めスロットル開度とエンジン回転数に基づく３次元演算マップを作成し、この演算マップを用いて点火時期および燃料噴射についての基本制御量を演算している。さらにこの基本制御量に対しエンジン温度や吸気温度その他の運転状態パラメータに応じた補正演算を行ってエンジンの点火系および燃料噴射系の駆動制御を行っている。
【０００３】
【発明が解決しようとする課題】
しかしながら、前記従来の電子制御方法において、スロットルセンサーの故障等によりスロットル開度信号に異常が生じた場合、実際と異なる誤ったスロットル開度に基づき演算マップが用いられるので、正しい制御量の算出ができなくなり、適正な点火時期および燃料噴射制御ができなくなる。これによりノッキング等の異常燃焼が発生したり、十分な燃焼が終了する前に排気され排気管内で不規則な燃焼が発生したり、空燃比が可燃域から不規則にずれて不規則に失火し、エンジン回転が不安定になったりし、これらにより大きな振動や騒音を発生させることになる。
【０００４】
このような電子制御エンジンを、自動車等の車輌用や船舶の船外機や船内機として用いている時、スロットルセンサー異常が生じた場合には、修理工場や港までの間不快な運転を強いられることになる。
【０００５】
本発明は上記の点に鑑みなされたものであって、スロットル開度とエンジン回転数の検出データに基づいて点火時期および燃料噴射を制御する内燃機関の制御方法において、スロットル開度検出系に異常が生じた場合にスロットル開度の検出データを用いずにエンジン制御を続けることを図った内燃機関の制御方法の提供を目的とする。
【０００６】
【課題を解決するための手段】
前記目的を達成するため、本発明では、通常運転時にスロットル開度およびエンジン回転数に基づいて点火時期および／または燃料噴射の基本制御量を演算する通常運転マップを有し、この通常運転マップを用いてプログラム制御を行う内燃機関の制御方法において、上記スロットル開度の検出信号に異常が生じた場合に、スロットルセンサー異常時用のルーチンに基づいてプログラム制御を行うことを特徴とする内燃機関の制御方法を提供する。
【０００７】
好ましい実施例においては、前記スロットルセンサー異常時用のルーチンは、予め前記通常運転マップとは別にエンジン回転数のみに基づくセンサー異常時用の基本制御量演算マップを作成して備え、この異常時用の演算マップに基づいて前記基本制御量を演算するように構成されたことを特徴としている。
【０００８】
別の好ましい実施例においては、前記スロットルセンサー異常時用のルーチンは、予め前記通常運転マップの特定スロットル開度位置に基本制御量の値を書込み、センサー異常時には、スロットル開度を上記特定スロットル開度位置に固定し、上記通常運転マップに基づいて前記基本制御量を演算するように構成されたことを特徴としている。
【０００９】
さらに別の好ましい実施例においては、前記スロットルセンサー異常時用のルーチンは、エンジン回転数に基づいてその回転数でのスロットル開度を予測演算し、この予測演算によるスロットル開度と上記エンジン回転数に基づいて前記通常運転マップにより基本制御量を演算するように構成されたことを特徴としている。
【００１０】
さらに別の好ましい実施例においては、前記スロットルセンサー異常時用のルーチンは、スロットル開度およびエンジン回転数に拘わらず前記基本制御量を一定の値に固定することを特徴としている。
【００１１】
本発明ではさらに、スロットル開度検出手段と、エンジン回転数検出手段と、これらの検出手段の検出結果に基づいて点火時期および／または燃料噴射の基本制御量を演算するための通常運転時用の基本演算マップと、この基本演算マップを用いてエンジンの駆動制御を行うメインルーチンからなるプログラムとを有する内燃機関の制御装置において、前記スロットル開度検出手段の異常を判別するスロットル開度検出異常判別手段を備え、前記プログラムは、このスロットル開度検出手段が異常と判別されたときに実行する異常時用のルーチンを有することを特徴とする内燃機関の制御装置を提供する。
【００１２】
【作用】
スロットルセンサーの故障あるいは信号伝達系の故障等によりスロットル開度信号に異常が生じた場合、エンジン回転数のみに基づいて点火時期および燃料噴射の基本制御量を演算する。この演算ルーチンの例は以下の通りである。
【００１３】
▲１▼点火時期と燃料噴射量の各々について予めエンジン回転数のみによる二次元マップを準備し、この二次元マップを用いてセンサー異常時に基本制御量を算出してエンジン制御を行う。
【００１４】
▲２▼センサー異常時にスロットル開度を特定の値、例えば通常は使用されないスロットル開度０°等の領域に予め基本制御量を書込んでおき、センサー異常時にはスロットル開度をこの特定の値に固定してマップ演算を行う。
【００１５】
▲３▼予め各エンジン回転数でのスロットル開度を予測する予測手段（マップや計算式等）をもち、スロットルセンサーの故障時等にこの予測手段により各エンジン回転数の検出値に対応したスロットル開度を予測演算して、この予測スロットル開度とエンジン回転数データから通常の演算マップを用いて点火時期および燃料噴射の基本制御量を演算する。
【００１６】
▲４▼スロットルセンサーの故障時等には、点火時期および燃料噴射量を一定値に固定する。
【００１７】
このようなセンサー異常時の基本制御量の演算ルーチンを含むプログラムを予め作成しておくことにより、センサー異常時にスロットル開度の検出データが得られなくても基本制御量が算出され、これに基づいてエンジンの駆動制御をすることができる。
【００１８】
【実施例】
図１は本発明が適用される船舶用２機掛け内燃機関（エンジン）の外観図である。図に示すように、この船外機は船体４０５の船尾に２機のエンジン４０６−１、４０６−２を装着したものである。これは、海上等において充分な推進力を得るとともに、どちらか一方のエンジンが故障した場合であっても航行を可能として帰港の確保を図るための構成である。
【００１９】
このような２機掛けエンジンの駆動制御を行う場合、各エンジンはそれぞれ独自に運転可能とする必要があるため、各エンジンごとに駆動制御装置を有している。各制御装置は、エンジン回転速度、スロットル開度、アクセル位置、吸気管負圧等のいわゆる負荷、吸気温度、排気ガス酸素濃度、シフト位置等の各種運転状態を検出し、この検出情報に基づいて、予め定めた制御プログラムに従って、そのときの最適空燃比や燃料噴射量、噴射タイミング、点火タイミング等を演算し、この演算値を基にエンジンを駆動制御している。この場合、上記制御プログラムは、検出情報の読み込みルーチンと、読み込んだ検出情報に基づいて各制御量を演算する複数の演算ルーチンを予め定めたシーケンスに従って配置したメインルーチンを有し、このメインルーチンに従って演算処理が行われる。
【００２０】
図２は、上記２機掛けエンジンのスロットルを駆動するギヤシフトの駆動操作系統の構成図である。船外機３８は、ブラケット３７ａおよびクランプブラケット３７ｂを介して船体３６に対しチルト軸３０５廻りにトリム角θを変更可能に取付けられる。３０６はトリム角可変アクチュエータ、３９はトリム角センサーを表している。
【００２１】
カム５１を端部に有するシフトレバー５０は、カウリング内でピボット片５２を介してリンクバー５３に連結される。このカム５１は、エンジンとプロペラ軸とを連結するクラッチをシフトさせるためのものである。リンクバー５３の端部にはピン５５が突出して設けられる。このピン５５は、カウリング内に固定した長孔ガイド５４内で矢印Ａのようにスライド可能に装着される。
【００２２】
一方、船内にはギヤシフトおよびスロットル操作用のリモコンボックス５６が設けられる。このリモコンボックス５６は、船外機３８に対しシフトケーブル５７、スロットルケーブル５８および電気信号ケーブル５９の３本のケーブルを介して連結さていれる。シフトケーブル５７はカウリング内で前述のリンクバー５３のピン５５に結合されている。リモコンボックス５６には操作レバー６０が設けられ、これを中立位置（Ｎ）から前進または後進側に駆動操作してシフトケーブル５７を介してピン５５を長孔リング５４内でスライドさせる。これにより、リンクバー５３が平行移動するとともに、その根元部のピボット片５２を矢印Ｂのように回転させる。これにより、シフトレバー５０がその軸廻りに回転し、カム５１が回転して、ドッグクラッチを介してクランク軸と前進用ギヤまたは後進用ギヤとを連結する。操作レバー６０を前進または後進のシフト操作完了位置即ちスロットル弁全閉位置からさらにＦ方向（前進時）またはＲ方向（後進時）に移動させることにより、スロットルケーブル５８を介して船外機３８内のエンジンのスロットル弁が全開方向に動作する。このシフトケーブル５７には、シフトカットスイッチ（図示しない）が設けられている。これは、高負荷運転時にドッグクラッチをギヤから切り離そうとする際、クラッチとギヤ間の噛み合い面圧が非常に大きくなるため、ケーブルに大きな負荷がかかる。シフトカットスイッチは、この負荷によるケーブルの弾性変形量を検出することにより過大なクラッチ噛み合い圧力を検知し、エンジン回転を下げてクラッチの切り替えを楽に行うようにするためのものである。このようなシフトカットスイッチはカウリング内に設けてもよいし、あるいはリモコンボックス内に設けてもよい。
【００２３】
リモコンボックス５６にはさらに落水検知スイッチ（図示しない）が設けられている。この落水検知スイッチは、例えば乗員の身体に結び付けたワイヤにスイッチを連結し、落水事故等の緊急時にスイッチを動作させてエンジンを停止させ直ちに船を停止させるためのものである。また、リモコンボックス５６には独立のエンジン停止操作スイッチ（図示しない）も設けられている。
【００２４】
図３は、前述の２機掛けエンジンの各種運転状態を検出するための検出手段および燃料噴射や点火を駆動する手段を含む駆動制御システムの詳細を示す。この例は２機掛けされる船舶用６気筒エンジンの一方の制御システムを代表して示す。
【００２５】
気筒検出手段＃１〜＃６は、クランク軸廻りに６個配置され、メインルーチンで実施される各気筒についてイベント割込み（ＴＤＣ割込み）を実行するためのトリガ信号を発生する。これは、例えば各気筒のピストンが上死点またはそれより所定角度（クランク角度）手前に位置する瞬間に信号を発するように構成する。従って、本実施例ではクランク軸の１回転中に６０度ごとに１つの気筒検出信号（ＴＤＣ信号）が各気筒＃１〜＃６から順番に演算処理装置に送られる。このイベント割込みフローの中で、メインルーチン中に求められた各気筒についての制御演算結果に基づいて点火及び燃料噴射が実施される。
【００２６】
クランク角検出手段は、点火時期制御のベースとなる角度パルスを発するものであり、クランク軸に係合するリングギヤの歯数に対応してパルス信号を発する。例えばギヤ歯数１１２歯に対応して１回転中に４４８パルスを発するように構成すれば、１パルスごとにクランク軸が０．８度回転することになる。
【００２７】
スロットル開度検出手段は、吸気マニホルドに設けたスロットル弁の開度に応じてアナログ電圧信号を発する。演算処理装置はこのアナログ信号をＡ／Ｄ変換してマップ読取り等の演算処理を行う。
【００２８】
さらに詳しくいうと、前述のスロットルレバー６０（図２）に連結されたスロットルワイヤのリンクがスロットル弁の弁軸の一端に接続されている。この弁軸の反対側の端部に抵抗摺動式のセンサーが取りつけられる。スロットル弁の開度に応じて弁軸が回転しセンサーの抵抗値が変わる。この抵抗値変化を電圧変化としてとり出しスロットル開度の検出信号とする。
【００２９】
次のトリム角度検出手段から吸気温度検出手段までは、エンジンの運転条件に対する環境変化があった場合にこの変化に応じて制御量を補正するためのものである。トリム角度検出手段は、船外機の取付け角度を検出するものである。Ｅ／Ｇ温度検出手段は、各気筒（または特定の基準気筒）のシリンダブロックに温度センサーを取付けその気筒の温度を検出するものである。大気圧検出手段は、カウリング内の適当な位置に設けられる。吸気温度検出手段は吸気通路上の適当な位置に設けられる。大気圧および吸気温度は空気の体積に直接影響するものであり、演算処理装置は、これらの大気圧および吸気温度の検出値に応じて空燃比等の制御量に対する補正演算を行う。
【００３０】
既燃ガス検出手段は、酸素濃度センサー（Ｏ２センサ）のことである。検出した酸素濃度に応じて燃料噴射量等のフィードバック制御を行う。
【００３１】
ノック検出手段は、各気筒の異常燃焼を検出するものであり、ノッキングがおきた場合に点火を遅角側にシフトさせたりまたは燃料をリッチ側に設定してノッキングを解消し、エンジンの損傷発生を防止する。
【００３２】
オイルレベル検出手段は、カウリング内のサブタンクおよび船内のメインタンクの両方にレベルセンサーを設けたものである。
【００３３】
サーモスイッチは、バイメタル式温度センサー等の応答性の速いセンサーからなり、冷却系異常等によるエンジンの温度上昇等を検出し焼き付きを防止するための失火制御を行う。なお、前述のエンジン温度検出手段はシリンダブロックに設けられ燃料噴射の制御量補正のために使用されるが、このサーモスイッチはエンジンの温度上昇に直ちに対処するため応答性が速いことが要求される。
【００３４】
シフトカットスイッチは、クラッチを切り替えるためのシフトケーブルのテンションを検出してプロペラに直結するドッグクラッチの切り替えを容易にするためのものである。
【００３５】
ＤＥＳ検出手段は、２機掛け運転の場合他のエンジンに異常により失火運転状態を知らせるための信号であるＤＥＳを検知するものである。すなわち、該手段は船尾に船外機を２台並列して備えた型式の船舶において、一方の船外機のエンジンがオイル不足、温度上昇等により失火制御を行っている場合には、そのエンジンのＤＥＳ出力手段からＤＥＳが出力されており、このＤＥＳを検出しこの失火運転状態を検知するためのものである。このＤＥＳの検出により、他方のエンジンも同様に失火制御を行って、両方のエンジンの運転状態を同じにして走行のバランスを保つ。
【００３６】
バッテリ電圧検出手段は、インジェクタの駆動電源電圧の変化によりバルブの開閉動作の速さが変り吐出量が変化するため、バッテリ電圧を検出してこの電圧に基づいて噴射量を補正制御するために用いる。
【００３７】
スタータスイッチ検出手段は、エンジンが始動運転中かどうかを検出するためのものである。始動状態であれば、燃料のリッチ化等を行い始動運転用の制御を行う。
【００３８】
２種類あるＥ／Ｇストップスイッチ検出手段は、エンジン停止操作スイッチや落水検知スイッチのことであり、このうち落水検知スイッチは落水事故等の緊急状態を検出するものであり、緊急時にエンジンを直ちに停止するように制御する。この２種のＥ／Ｇストップスイッチ検出手段を図中便宜上一つのＥ／Ｇストップスイッチ検出手段として表示する。
【００３９】
以上のような各検出手段からの入力信号に基づいて、演算処理装置内で各制御量の演算を行い、演算結果に基づいて出力側（図３の右側）の燃料噴射手段＃１〜＃６、点火手段＃１〜＃６、燃料ポンプおよびオイルポンプを駆動制御する。なお、燃料噴射手段および点火手段はそれぞれ、インジェクタおよび点火プラグであり、各気筒ごとに独立して順番に制御される。
【００４０】
このような演算処理装置での演算を実行するために、図示したように、演算処理装置には、制御プログラムやマップ等を格納したＲＯＭ等からなる不揮発性メモリおよび各検出信号やこれに基づく演算のための一時的なデータを記憶するためのＲＡＭ等からなる揮発性メモリが備る。
【００４１】
次に、図４を参照して、本発明が適用される船外機エンジンの点火時期制御および燃料噴射制御について説明する。図４はこのような制御フローを実行するための構成を示すブロック図である。各ブロックは、前述の図３の演算処理装置内に演算処理回路として組込まれている。
【００４２】
気筒判別手段２０１は、気筒検出手段＃１〜＃６（図３）に対応するものであり、各気筒からの入力信号に基づいてその気筒番号を判別する。周期計測手段１０００は、この気筒検出手段からの検出信号に基づいて、各気筒からの入力信号の時間間隔を計測し、これを６倍することにより１回転の時間（周期）を算出する。エンジン回転数算出手段２０３は、この周期の逆数を演算して回転数を求める。スロットル開度読み込み手段２０４は、スロットル開度に対応したアナログ電圧信号により開度を読み込む。
【００４３】
スロットル開度読み込み手段２０４からのスロットル開度信号はＡ／Ｄ変換され、Ｅ／Ｇ回転数算出手段２０３からの回転数信号とともに、基本点火時期算出手段２１０および基本燃料噴射算出手段２１１に送られ、基準気筒である＃１の気筒の点火時期および燃料噴射量がそれぞれ３次元マップを用いて算出される。このエンジン回転数信号およびスロットル開度信号は、さらに気筒別点火時期補正値演算手段２０８および気筒別燃料噴射量補正値演算手段２０９に送られ、残りの気筒＃２〜＃６についての基本点火時期および基本噴射量に対する補正値を各気筒ごとにマップ演算して求める。
【００４４】
一方、トリム角度読み込み手段２０５、機関温度読み込み手段２０６および大気圧読み込み手段２０７は、それぞれの検出手段（図３）からの検出信号を読取り、これを点火時期補正値算出手段２１２および燃料噴射量補正値算出手段２１３に送り、各運転状態に応じた補正値を算出する。この場合、点火時期補正値については、基本点火進角の値に対して加算する補正進角（あるいは遅角）の角度数を、各読み込みデータの種類ごとに予め記憶させたマップにより求める。また、燃料噴射量の補正値については、予め定めた比例係数を基本噴射量に対し乗算することにより求める。
【００４５】
なお、点火時期補正および燃料噴射量補正について、図示していないが、さらに吸気温度の検出データを各算出手段２１２、２１３に入力して吸気温度に基づく補正を行ってもよい。
【００４６】
点火時期補正値算出手段２１２および燃料噴射量補正値算出手段２１３の算出出力は、それぞれ点火時期補正手段２１４および燃料噴射量補正手段２１５に入力され、ここで基本点火時期および基本燃料噴射の算出値に加算して＃１気筒の点火時期および燃料噴射の制御量が算出される。
【００４７】
この基準気筒＃１の点火時期および燃料噴射の制御量は気筒別点火時期補正手段２１６および気筒別燃料噴射量補正手段２１７に入力され、ここで＃１気筒についての補正された基本点火時期および燃料噴射量に対し、＃２〜＃６の気筒についての気筒別点火時期補正量演算手段２０８および気筒別燃料噴射量補正値演算手段２０９による制御補正量を加えることにより、＃２〜＃６までの気筒の点火時期および燃料噴射量の制御量が算出される。
【００４８】
このようにして算出された＃１から＃６までの各気筒に対する点火時期および燃料噴射の制御量に基づいて、点火出力手段２１８は、各気筒ごとの点火進角の角度の値で算出された制御量をタイマーセットし、燃料出力手段２１９は開弁時間に相当するクランク角をタイマーセットする。
【００４９】
図５および図６は、本発明の実施例に係る２機掛けエンジンのそれぞれのエンジンについての制御全体のフローチャートである。このフローチャートは、各エンジンの制御装置（演算処理装置）のＣＰＵに組込まれた制御プロセス全体のシーケンスプログラムを示すメインルーチンのフローである。
【００５０】
メインスイッチが投入され電源が立上がってエンジン操作が開始されると、所定のリセット時間後まず制御処理装置内の各処理回路が初期化される（ステップＳ１１）。
【００５１】
次にステップＳ１２において、運転状態が判断され結果がメモリに保持される。ここでは、メインスイッチのＯＮ，０ＦＦ情報、図３のスタータＳＷ検出手段を使って読み込まれたスタータＳＷのＯＮ，ＯＦＦ情報、及びクランク角検出手段から読み取られるクランク角パルス列から算出されるエンジン回転数情報により始動状態か否か判断する始動判断、スロットル開度検出手段から読み取られるスロットル開度情報、エンジン回転数情報、ＤＥＳ検出手段により読み取られる他方の船外機の運転状態情報であるＤＥＳ情報、あるいは下記するオーバーヒート、オイル不足等の異常状態情報、あるいはスロットル開度情報の時間変化から算出される急加減速情報等に基づき特定気筒を休止すべきかどうかの気筒休止判断、主にスロットル開度情報、エンジン回転数情報に基づき酸素濃度のフィードバック制御を行うかどうかの判断、及び主に同２つの情報に基づき特定の制御条件の場合に制御データを学習記憶させるかどうかの判断、エンジン回転数情報に基づき過剰回転にあるかどうかのオーバーレボ判断、スロットル開度情報、エンジン回転数情報及びエンジン（Ｅ／Ｇ）温度検出手段あるいはそのより具体的手段であるサーモＳＷによる温度情報に基づきオーバーヒート状態であるかどうかのオーバーヒート判断、スロットル開度情報、エンジン回転数情報及びオイルレベル検出手段による残存オイル量情報に基づき残存オイル量が少ないかどうかのオイルエンプティ判断を行う。過剰回転状態、オーバーヒート状態及び残存オイル量少状態の場合は下記するように失火制御を行う。ステップＳ１２においてはさらに、スロットル情報、クランク角情報、Ｏ２センサ情報あるいはクランク角検出手段の一種であるパルサーコイルからのパルサー情報に基づき、これらの情報が欠落あるいは異常であるフェール状態であるか否かのフェール判断、２機掛け運転信号により他の船外機も運転されている２機掛け運転状態にあるかどうかの判断、及び気筒休止状態信号により他方の船外機が気筒休止運転状態にあるかの判断、及びＤＥＳ（異常対応の失火制御状態を報知する信号）により他方の船外機が異常対応の失火制御状態にあるかの判断の３つの判断からなる２機掛け運転状態判断、前記したスロットル開度情報の時間変化から急加減速状態にあるかどうかの急加減速判断、高速回転状態からのシフト操作時作動するシフトカットＳＷのＯＮ，ＯＦＦ情報に基づくシフトカット状態にあるかどうかのシフトカット判断がなされる。
【００５２】
このような判断は、前のルーチンにおいて読取ったセンサーからの検出情報や演算結果等の各種情報に基づいて行われる。
【００５３】
次にステップＳ１３において、ループ１のルーチンワークを行うかどうかの判別が行われる。ＹＥＳであれば、ステップＳ１４に進みスイッチ情報の読み込みが行われる。ここではＥ／Ｇストップスイッチ検出手段、メインスイッチ、スタータスイッチ検出手段およびサーモＳＷからの情報が読取られる。続いてステップＳ１５において、ノックセンサー（ノック検出手段）およびスロットルセンサー（スロットル開度検出手段）からの情報が読取られる。このループ１による情報読み込みの終了後ステップＳ１６に進み、ループ２のルーチンワークを行うかどうかが判別される。
【００５４】
演算処理装置はハード的あるいはソフト的に４ｍｓ間隔でループ１の処理用フラグ１を１にセットし、８ｍｓ間隔でループ２の処理用フラグ２を１にセットする。
【００５５】
図７はこのようなループ１およびループ２を実行するためのタイマー割込みのフローチャートである。このようなタイマーのセットはイニシャライズステップＳ１１において行われ、各ループ１、２のルーチンを実行中にはそのフラグがセットされるとともに次回のそのルーチンのためのタイマーがセットされる。
【００５６】
図５に戻り、ステップＳ１３において、フラグ１をチェックし１であればステップＳ１４、ステップＳ１５を実施する。なお、ステップＳ１４に進むと同時にフラグ１はクリアされ０となる。ステップＳ１３において、フラグ１が０であることが確認されると、ステップＳ１６に進み、フラグ２が１であるかをチェックする。フラグ２が１であればステップＳ１７に進むと同時にフラグ２はクリアされ０となる。ステップＳ１６でフラグ２が０である場合はステップＳ１２に戻る。
【００５７】
ステップＳ１７においては、オイルレベルの検出、高回転状態からのシフト操作時大となるシフトケーブルのテンションに応じて作動し、テンションが大なる時ＯＮとなるシフトカットスイッチのＯＮ，ＯＦＦ状態の検知、およびエンジン２機掛け運転信号、気筒休止状態信号及びＤＥＳ信号の検出が行われる。さらにステップＳ１８において、大気圧情報、吸気温度情報、トリム角情報、エンジン温度情報、バッテリ電圧情報、およびノックセンサからのノッキング情報が大気圧検出手段、吸気温度検出手段、トリム角度検出手段、Ｅ／Ｇ（エンジン）温度検出手段、バッテリ電圧検出手段、及びノック検出手段によりそれぞれ読取られる。
【００５８】
次に、ステップＳ１９において、失火制御が行われる。これは、読み込んだ情報から、前記ステップＳ１２の運転状態判断において、過回転、所定以上のスロットル開度及びエンジン回転数におけるオーバーヒート、オイルエンプティ等の異常状態にある、あるいは他のエンジンが異常状態にあるとの判断結果が検出されたときに、特定気筒の失火を行うように燃料制御するものである。さらに、下記するステップＳ２４の気筒別補正において、失火させる気筒の燃料噴射量を他の気筒より半減させるべく、失火制御状態にあることをメモリに出力する失火時燃料制御が実施される。次に、エンジンが回転しているかどうかの判断およびオイルタンクのレベルセンサーからの情報に基づいて、燃料ポンプおよびオイルポンプが駆動制御される（ステップＳ２０）。これは、燃料については、エンジンが回転中ならば燃料ポンプを駆動し、エンジン停止中ならば燃料ポンプを停止し、オイルについては、オイルタンク内の量が少ないときにポンプを駆動して船体内のオイルタンクからオイルを補給するかエンジン回転数を低下させオイル消費量を低下させるものである。
【００５９】
次に、ステップＳ２１において、気筒休止判断結果の判別を行う。これは、前述の運転状態判断ステップＳ１２において、所定の低負荷低回転状態のときに休筒運転を行う判断をした場合に、演算処理のマップを選択するための判別ステップである。休筒運転でなければ通常の全気筒運転による通常運転マップを用いて点火時期および噴射時間の基本演算およびこれに対する気筒別の補正演算を行う（ステップＳ２２）。なお、失火制御状態にあるかどうかの判断もなされ、失火制御状態にある場合は失火気筒にも、他の点火気筒への燃料噴射量と同じか所定割合を減じた燃料を供給すべく噴射時間の設定がなされる。これにより所定以上のスロットル開度及びエンジン回転数の時からの失火制御においても燃料を供給するので、気化熱によりピストン等を冷却でき損傷を防止できる。休筒運転状態であれば、特定の気筒を休止した休筒運転用の気筒休止マップを用いて点火時期および噴射時間の演算および気筒別の補正演算を行う（ステップＳ２４）。
【００６０】
次に、図６のステップＳ２３において、大気圧やトリム角等の運転状態に応じて、基本の点火時期や燃料噴射に対する補正値が演算される。続いて、ステップＳ２５において、酸素濃度のフィードバック制御に伴う補正値が演算される。このとき、演算情報の学習判定とＯ２センサーの活性化の判定が行われる。さらに、ステ  ップＳ２６において、ノックセンサーからの検出信号に基づいて、エンジンの焼き付き防止等のために制御量の補正値が演算される。
【００６１】
次にステップＳ２７において、基本の点火時期および燃料噴射の制御量に対し補正値を加えて最適な点火時期、噴射時間および噴射時期を演算する。この後、ステップＳ２９０において、エンジン停止前制御の演算が行われる。これは、ステップＳ１２で、メインスイッチあるいはエンジンストップスイッチ等が切られて、エンジン停止状態と判断された場合に、再始動を考慮して点火のみを止めて燃料噴射は所定時間継続するための制御ルーチンである。以上によりループ２のルーチンを終了し、元の運転状態判断ステップＳ１２に戻る。
【００６２】
図８はＴＤＣ割込みルーチンのフローを示す。クランク軸には各気筒検出手段近傍を順次通過する時各気筒においてピストンが上死点にあることを知らせる信号を各気筒検出手段から出力させるマーカが固着されている。ＴＤＣ割込みとは、＃１から＃６までの気筒検出手段による各気筒からのＴＤＣ信号の入力に基づき、随時メインルーチンに割込まれるルーチンである。
【００６３】
まず、信号が入力された気筒の番号を判定する（ステップＳ２８）。次にその気筒番号を前回の入力信号の気筒番号と比較することにより、運転すべき回転方向に対するエンジンの正逆回転を判定する（ステップＳ２９）。逆転していればエンジンを直ちに停止する（ステップＳ３３）。エンジンが正転していれば、例えば＃１と＃２の気筒間の時間間隔をカウントしてこれを６倍することによりエンジン回転の周期を算出する（ステップＳ３０）。続いてこの周期の逆数を演算することにより、回転数を算出する（ステップＳ３１）。この回転数が予め定めた所定の回転数よりも小さいときには、エンジンを停止する（ステップＳ３２、３３）。
【００６４】
次に、ステップＳ３４において、入力されたＴＤＣ割込み信号が特定の基準気筒＃１からのものかどうかが判別される。基準気筒＃１からの信号であれば、休筒運転状態かどうかが判別され（ステップＳ３５）、休筒運転中であれば、休止すべき気筒のパターンを変更すべきかどうかが判別され（ステップＳ３７）、パターンを切り替え（ステップＳ３８）または切り替えずにそのままステップＳ３９に進み、点火制御による休筒運転情報をセットする。割込み信号が＃１からでない場合（ステップＳ３４）あるいは休筒運転中でない場合（ステップＳ３５）には、そのまま、あるいは休筒情報をクリアして（ステップＳ３６）ステップＳ３９に進み、点火制御による休筒運転情報をセットする。この点火休筒情報に基づき点火すべき気筒の点火パルスをセットする（ステップＳ４０）。
【００６５】
この点火パルスセットの詳細を図９に示す。演算により求められる点火時期は、Ｖ型６気筒エンジンにおいて、ＴＤＣより６０度前のクランク角すなわち基準に何度になるかに換算され、０．８で割ってパルス数にまるめられる。６０度前にＴＤＣとなる気筒のＴＤＣ信号が入力されると、点火出力手段２１８を構成するタイマーにまるめられたパルス数のデータが保持されると同時に、以降クランク角検出手段からのパルスがタイマーに届くごとに、保持するパルス数を１づつ減じていき、保持パルス数が０となると、点火出力手段２１８が点火プラグ１９をスパークさせる。
【００６６】
本実施例は、例えば６気筒のＶ型２バンク型式のエンジンを対象とし、奇数番号の気筒（＃１、３、５）を左バンクに配設し、偶数番号の気筒（＃２、４、６）を右バンクに配設している。これらの気筒をバンクごとに制御するために、バンクごとに別のタイマーを有している。これらのタイマーに点火時期に対応するクランク角パルス数をセットする場合、図示したように、まず気筒番号が偶数か奇数かを判別し、偶数か奇数かに応じてそれぞれ点火時期データを対応するバンクのタイマー（図では奇数バンクをタイマ３、偶数バンクをタイマ４としている）にセットし、点火気筒番号をセットする。
【００６７】
その後、点火制御において失火させる休止気筒について燃料噴射制御における燃料噴射量を減少させる気筒を燃料噴射制御による休筒情報としてセットし（図８のステップＳ４１）、該点火制御において失火させる休止気筒について算出される燃料噴射の制御量より減少させた燃料噴射量に対応する噴射時間と、その他の気筒について算出される燃料噴射の制御量に対応した噴射時間に、それぞれ気筒ごとに対応した噴射パルスをセットする（ステップＳ４２）。
【００６８】
前述のエンジン周期を計測する場合、１つの気筒からの入力信号（ＴＤＣ信号）があると、これに応じて図８のＴＤＣ割込みが行われるとともに、ＴＤＣ周期計測タイマーがＴＤＣ信号の入力時点で一定周波数パルスのパルス数のカウントを開始し、次の気筒のＴＤＣ信号が入力した時点でリセットされ次の気筒のカウントを開始する。この場合、カウント値が所定値以上になると、オーバーフローとなりカウントがリセットされる。このオーバーフローが起きた時点、即ち、クランク角６０度の周期が所定以上の時間である低速回転であることが検知された時点でタイマーオーバーフロー割込みが実行される。
【００６９】
図１０は、このオーバーフロー割込みを示す。オーバーフローが起きるとまずその回数を記憶するとともに、エンジンの始動運転状態かどうかが判別される。始動状態の運転モードであればオーバーフローはエンジン回転が低いためであり、そのまま運転を続ける。始動モードでない場合には、ＴＤＣ信号のパルスが抜けた、即ち何等かのトラブルによりＴＤＣ信号パルスが伝えられなかったためのオーバーフローかどうかが判別され、パルス抜けのない正常な信号伝達によるオーバーフロー検出であればエンジンが低回転であるためエンジンを停止する。パルス抜けがあった場合には、オーバーフロー検出が２回目かどうかが判別され、２回目となった場合も回転が低すぎるとしてエンジンを停止する。これにより、低回転において信号発信系統に異常があるときには必ずエンジン停止することとなる。
【００７０】
図１１は、各気筒の点火タイミングを設定するための前述の各バンクに対応したタイマー３、４の割込みルーチンを示す。エンジン回転信号（ＴＤＣ信号）が各気筒から入力されるとこのタイマー３、４の割込みが行われる。まず、エンジンが所定の低回転以下の状態のために点火休筒運転を行うかどうかの休筒情報およびオーバーヒートあるいはオーバーレボ（過回転）検出により点火を失火させるかどうかの失火情報を読み込む。この後気筒番号に応じたタイマー３あるいは４に点火タイミングに応じたタイマー値をセットする。その後、休筒情報あるいは失火情報により失火させる場合には、点火処理のルーチンは行わないためタイマーで設定されたタイミングになっても点火プラグへの放電はさせないようにして、１２０°位相が遅れた気筒の点火タイミングをメモリより読み込み、該タイマにタイミングをセットし、そのままメインフローに戻る。失火させない場合には、点火すべき気筒の番号を読み込み、タイマーで設定されたタイミングでその気筒の点火駆動回路の点火出力ポートからパルス（ＨＩ）を出力して点火プラグを放電させる。点火時間はパルス幅に対応しタイマにより設定される、又は、所定回数、実行に所定時間必要となるループを実行し、必要なパルス幅を得る。この所定の点火時間が経過後、点火出力ポートからの信号をＬＯＷとし点火プラグの放電が終了する。また、点火駆動回路がＬＯＷアクティブであれば論理は上記と逆となる。
【００７１】
以上が本発明が適用される船外機エンジンの機構上の構成および制御系全体のシステム構成およびその作用のフローである。
【００７２】
図１２は、本発明に係るエンジン制御方法のフローチャートである。このフローチャートのルーチンは、前述の図５のメインルーチンにおけるステップＳ２２またはＳ２４でのマップ演算処理で行われる。この例は、スロットル開度とエンジン回転数に基づく３次元マップにより基本噴射量を演算する場合のフローを示す。スロットル開度は前述のスロットル弁軸に取付けたスロットルセンサーからのアナログ電圧信号により検出し、エンジン回転数は前述のＴＤＣ割込みルーチン（図８）におけるステップＳ３１のエンジン回転演算処理で各気筒からのＴＤＣ信号に基づいて算出される。
【００７３】
このフローチャートに示すように、マップ演算の前にまずスロットルセンサーが正常かどうかが判別される。このセンサーの判別は、例えば、スロットルの全閉から全開の間の位置に対応する電圧値より外れた電圧が入力された場合に異常（センサーフェール）と判別する。このセンサーフェールは、スロットルセンサー自体が故障した場合およびセンサーからの信号線の断線や受信側の故障等の信号伝達系の異常の場合に発生する。
【００７４】
センサーが正常であれば、センサー情報読み込みステップＳ１５（図５のメインルーチン）で読み込んだスロットル開度検出データとＴＤＣ割込みルーチンで算出したエンジン回転数データに基づいて、通常の基本噴射量演算マップを用いて基本噴射量が算出される。
【００７５】
センサーフェールの場合には、センサー異常時用の演算ルーチンが行われる。このフェール時マップ演算は、例えば以下のようにして行われる。
【００７６】
図１３はフェール時マップ演算の第１の例を示すフローチャートである。この第１の例においては、予め図１７（Ａ）に示すように、エンジン回転数のみに基づく２次元マップを作成してＲＯＭに格納しておく。センサーフェールと判別されると、まずエンジン回転数を読み込み（ステップＳ１０１１）、続いてこのエンジン回転数データに基づいて、図１７（Ａ）の２次元演算マップを用いて基本噴射量を演算する（ステップＳ１０１２）。この後は、通常のメインルーチンに従って補正演算が行われる（図６のステップＳ２３）。
【００７７】
図１４はフェール時マップ演算の第２の例を示すフローチャートである。この第２の例においては、予め図１７（Ｂ）に示すような基本噴射量マップを作成しておく。この基本噴射量マップは、通常の基本噴射量演算マップにおいて通常は使用しない特定のスロットル開度領域（例えばスロットル開度０度の領域）に基本噴射量のデータを書込んだものである（図の斜線部）。センサーフェールと判別されると、まずスロットル開度をこの特定の開度に固定する（ステップＳ１０１３）。次にエンジン回転数を読み込み（ステップＳ１０１４）、このエンジン回転数に基づいて上記図１７（Ｂ）のマップを用いて基本噴射量の演算を行う（ステップＳ１０１５）。即ち、この実施例では、通常運転時もセンサーフェール時も同じ演算マップを用いるが、この演算マップには通常運転時には用いない特定スロットル開度領域に噴射量データが書込んであり、センサーフェール時にスロットル開度をこの特定開度に固定してエンジン回転数のみに基づいて噴射量を算出する。
【００７８】
図１５はフェール時マップ演算の第３の例を示すフローチャートである。この第３の例においては、通常の基本噴射量マップを用いて演算を行うが、フェール時にはスロットル開度データが得られないため、このスロットル開度を別のマップあるいは計算式等を用いて予測演算し、この予測演算のデータに基づいて通常のマップ演算を行うものである。センサーフェールと判別されると、まずエンジン回転数を読み込み（ステップＳ１０１６）、続いてこのエンジン回転数におけるスロットル開度を予測演算する（ステップＳ１０１７）。この予測は、特に船外機の場合には水上での運転であるためエンジンにかかる負荷がある程度一定値に定まり、このため、スロットル開度の検出データがなくても正しい演算ができる。図１７（Ｃ）はエンジン回転数に対応したスロットル開度の予測位置を斜線で示したマップである。センサーフェール時には、この斜線部に書込まれた噴射量データにより演算処理を行う（ステップＳ１０１８）。
【００７９】
図１６はフェール時マップ演算の第４の例を示すフローチャートである。この第４の例においては、スロットルセンサーフェール時に燃料噴射量を一定値に固定し、この固定値を予めメモリに格納しておき、フェール時にこれを読み込んで燃料噴射量の基本制御量とするものである。
【００８０】
なお、上記各実施例は、特に２サイクル６気筒の２機掛け船外機についての基本燃料噴射量の制御を例として説明したが、点火時期や噴射タイミングについても同様にスロットル開度とエンジン回転数に基づく演算マップを用いて制御することができ、この場合にも本発明が適用可能である。また本発明は４サイクルエンジンや通常の自動車エンジンに対しても適用可能である。
【００８１】
なお、本発明はスロットル開度とエンジン回転数の２つのパラメータの検出データに基づくマップ演算を行う場合に一方のパラメータであるスロットル開度信号に異常が起きた場合の対処方法のみを示し、エンジン回転数の検出に異常が起きた場合については対処していない。これは、エンジンの電子制御はエンジン回転数に基づく駆動制御であるため、エンジン回転数の検出データに異常が起きた場合には、制御そのものが不可能になるからである。
【００８２】
【発明の効果】
以上説明したように、本発明においては、スロットルセンサーの異常時にエンジン停止に至らせることなくエンジン回転数のみに基づいて適正な点火時期および燃料噴射の制御を行うことができ、特に船外機に適用した場合、センサーフェール時に大きな振動や騒音を伴うことなくエンジン運転を続行して港に戻ることができる。
【図面の簡単な説明】
【図１】本発明が適用される２機掛け船外機の外観図である。
【図２】本発明が適用される船外機のスロットルレバーの構成説明図である。
【図３】２機掛け船外機の駆動制御系の構成説明図である。
【図４】図３の制御系の制御ブロック図である。
【図５】本発明が適用される内燃機関の制御シーケンスにおけるメインルーチンのフローチャートである。
【図６】図５のフローチャートの続き部分である。
【図７】図５のフローチャートにおけるタイマー割込みルーチンのフローチャートである。
【図８】図５のフローチャートにおけるＴＤＣ割込みルーチンのフローチャートである。
【図９】点火パルスのセットルーチンのフローチャートである。
【図１０】タイマーオーバーフロー割込みルーチンのフローチャートである。
【図１１】バンクごとのタイマー割込みルーチンのフローチャートである。
【図１２】本発明の実施例に係る基本噴射量の制御フローの説明図である。
【図１３】図１２の制御フローにおけるフェール時マップ演算の第１の例を示すフローチャートである。
【図１４】図１２の制御フローにおけるフェール時マップ演算の第２の例を示すフローチャートである。
【図１５】図１２の制御フローにおけるフェール時マップ演算の第３の例を示すフローチャートである。
【図１６】図１２の制御フローにおけるフェール時マップ演算の第４の例を示すフローチャートである。
【図１７】本発明で用いるスロットルセンサーフェール時の基本噴射量を演算するためのマップの説明図である。
【符号の説明】
２０１：気筒判別手段、２０３：エンジン回転数算出手段、２０４：スロットル開度読み込み手段、２１０：基本点火時期算出手段、２１１：基本燃料噴射量算出手段、２１４：点火時期補正手段、２１５：燃料噴射量補正手段、２１８：点火出力手段、２１９：燃料出力手段。
【図１】
0003591916.tif 000002
【図２】
0003591916.tif 000003
【図３】
0003591916.tif 000004
【図４】
0003591916.tif 000005
【図５】
0003591916.tif 000006
【図６】
0003591916.tif 000007
【図７】
0003591916.tif 000008
【図８】
0003591916.tif 000009
【図９】
0003591916.tif 000010
【図１０】
0003591916.tif 000011
【図１１】
0003591916.tif 000012
【図１２】
0003591916.tif 000013
【図１３】
0003591916.tif 000014
【図１４】
0003591916.tif 000015
【図１５】
0003591916.tif 000016
【図１６】
0003591916.tif 000017
【図１７】
0003591916.tif 000018