JP3939777B2 - 電子制御燃料噴射装置の学習制御方法および装置 - Google Patents
電子制御燃料噴射装置の学習制御方法および装置 Download PDFInfo
- Publication number
- JP3939777B2 JP3939777B2 JP00405496A JP405496A JP3939777B2 JP 3939777 B2 JP3939777 B2 JP 3939777B2 JP 00405496 A JP00405496 A JP 00405496A JP 405496 A JP405496 A JP 405496A JP 3939777 B2 JP3939777 B2 JP 3939777B2
- Authority
- JP
- Japan
- Prior art keywords
- learning
- control
- value
- fuel injection
- cylinder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Description
【発明の属する技術分野】
本発明は、電子制御内燃機関の燃料噴射方法および装置に関し、特に酸素濃度センサ(O2センサ)を用いた酸素濃度(O2)フィードバック制御における学習制御方法および装置に関するものである。
【0002】
【従来の技術】
多気筒4サイクル内燃機関においては、通常排気管の集合部後方に排気ガス浄化用の三元触媒が設けられる。この三元触媒の触媒作用効率が最大となる空燃比で排気ガス浄化を行うために、三元触媒の前にO2センサを設け、このO2センサの出力に応じてほぼ理論空燃比(A/F=14.7)となるように燃料噴射量のフィードバック制御を行っている。この場合、目標値となる理論空燃比に向けてリーン方向およびリッチ方向の燃料噴射が全気筒に対し繰り返される。
【0003】
このO2センサの出力は、理論空燃比近傍を境として大きく変化するため、このO2センサを用いて、三元触媒による浄化の目的以外に空燃比制御による燃料噴射制御を行うことが考えられる。
【0004】
一方、2サイクル内燃機関においては、その掃気行程で新気の吹き抜け現象が起こり、排気ガス中に新気中のO2成分が混入する。この新気中のO2成分の量は気筒燃焼状態や運転状態により大きく変化し既燃ガス中のO2成分に対する比率が変動する。このため、排気管にO2センサを取付けても、気筒内で実際に燃焼したガス中のO2成分の量を正確に検出できず、従って、この検出結果によっては空燃比を適正に制御することはできない。
【0005】
この問題に対処するため、燃焼室から排気ポートを介して燃焼ガスが排出されるタイミング以前に、燃焼ガスを燃焼室シリンダ壁の別のポートを介して取り出し、この燃焼ガスのO2濃度を検出することによりO2センサによる空燃比のフィードバック制御を行うことが考えられる。
【0006】
【発明が解決しようとする課題】
このような4サイクルあるいは2サイクルの多気筒内燃機関におけるO2センサによる空燃比フィードバック制御(以下単にO2フィードバック制御という)は、各気筒について点火時期および燃料噴射等の基本制御量を演算しさらにエンジン温度その他の運転状態検出データに基づく補正演算を行った後に行うことになる。これにより、各気筒について演算した燃料噴射量等の制御結果に基づいてフィードバック制御により最適な空燃比が確実に得られるようにできる。
【0007】
また、多気筒内燃機関においては、各気筒の燃焼状態が一定の傾向をもっているため、特定気筒の既燃ガスを検出することにより、全気筒の燃焼状態を把握することができる。従って、特定気筒のO2センサによる検出結果に基づいて他の気筒の制御を行うことができる。
【0008】
一方、例えば船舶用エンジンにおいては、スロットルをほぼ全開にしたクルージング運転領域において、特に燃費の向上を目的として、燃料を通常運転時の理論混合比よりリーン側にセットするリーン制御が行われることになる。
【0009】
しかしながら、前述の燃費向上のためのリーンセット領域において、O2フィードバック制御を行うと、O2フィードバックが収束するまでの間、燃料噴射量の変化に応じエンジン回転数が変動するという不具合を生ずる。即ち、このO2フィードバック制御によるリッチ側およびリーン側への噴射量の変動がエンジン回転数に大きく影響し、特にリーン側の燃料噴射時にエンジン回転数が低下し回転が不安定となり出力低下の原因となる。
【0010】
また、経時変化等により、最適噴射量と演算結果との間にズレを生じた場合、O2フィードバック制御開始後収束までに時間を要し、さらにその間の噴射量変動によりエンジン回転数が変動するという不具合がある。
【0011】
本発明は、上記従来の4サイクルエンジンにおける三元触媒の触媒作用効率向上のためのO2フィードバック制御を燃費向上のために電子制御燃料噴射式の4サイクルエンジンあるいは2サイクルエンジンに適用しようとする場合に考えられる問題点に鑑みなされたものであって、O2フィードバック制御条件下におけるリーンセット領域において、エンジン回転数の変動を抑制し、安定したエンジン回転が得られる内燃機関の空燃比制御方法の提供を目的とする。
【0012】
【課題を解決するための手段】
前記目的を達成するため、本発明では、運転状態に対応して所定の制御量に基づき燃料を噴射するとともに、検知された排気ガス中の酸素濃度に基づいて前記制御量を補正する酸素濃度フィードバック運転制御領域内に、所定のリーンセット領域を有し、該リーンセット領域内においては前回のリーンセット領域内における運転時のデータに基づいて更新された学習マップに基づいて燃料噴射制御を行う学習制御によりリーンセット領域運転が実施される電子制御燃料噴射装置の学習制御方法であって、前記リーンセット領域運転中は、前記酸素濃度に基づき補正した前記制御量の算出を実施し、該補正した制御量の算出値により学習マップを更新することなく、該補正した制御量の算出値を一時的にメモリに格納し、前記リーンセット領域運転状態から外れると直ちに前記メモリに格納された最新データに基づいて前記学習マップを更新するようにしたことを特徴とする電子制御燃料噴射装置の学習制御方法を提供する。
【0013】
さらに、本発明においては、所定条件の酸素濃度フィードバック運転制御領域内で、所定のリーンセット領域運転状態になったときに、前回のリーンセット領域運転状態のときのデータに基づいて更新した学習マップに基づいて燃料噴射制御を行う電子制御燃料噴射装置の学習制御方法であって、前記リーンセット領域運転中は、制御量を演算するとともに学習マップを更新することなくこの演算結果を一時的にメモリに格納し、前記リーンセット領域運転状態から外れると直ちに前記メモリに格納された最新データに基づいて前記学習マップを更新することを特徴とする電子制御燃料噴射装置の学習制御方法を提供する。
【0014】
好ましい実施例においては、前記リーンセット領域運転状態の判断は、スロットル開度またはエンジン回転数に基づいて行うことを特徴としている。
【0015】
さらに好ましい実施例においては、前記学習マップに書込むべき学習値は、基本噴射量に対する補正係数であって、酸素濃度フィードバック制御が収束した後、リーンからリッチ、またはリッチからリーンへと制御が切換わったときの補正係数を8個取込み、4つの各ペアの最大値および最小値の中央値を平均した値であることを特徴としている。
【0016】
本発明ではさらに、酸素濃度フィードバック制御による燃料噴射の補正量を演算するための補正マップと、所定のリーンセット領域における学習制御を行うための学習マップと、前記リーンセット領域において学習制御条件を判断する判別手段と、酸素濃度フィードバック制御が収束した後、リーンからリッチ、またはリッチからリーンへと制御が切換わったときの所定数の補正係数を取込み、これらの平均値を演算して学習値とするための演算手段と、前記演算手段により求めた学習値を学習マップに書込む前に、一時的にその値を保存するための記憶手段と、リーンセット領域内では酸素濃度フィードバック制御は行わずオープン制御である学習制御を行い所定のプログラムに従って燃料噴射制御を行う制御手段とを具備し、前記プログラムは、酸素濃度フィードバック制御の条件において、一旦前記リーンセット領域に入ったときに、前記学習値を演算してこれを一時的に前記記憶手段に格納し、前記リーンセット領域から外れると直ちに、格納した学習値を読み出してこれを学習マップに書込んで学習マップを更新するように構成したことを特徴とする電子制御燃料噴射装置の学習制御装置を提供する。
【0017】
【作用】
O2フィードバック制御領域において、所定のリーンセット領域を学習制御領域として、この領域にはいると、以前この学習制御領域において演算した制御データに基づく学習値により空燃比制御を行う。この場合、学習値は学習マップから読み出す。この学習制御領域内で、新たな運転状態のデータに基づいて学習値の演算を行い、この新たな学習値を一時的にメモリに格納する。このとき、新たな学習値の演算結果は学習マップには書込まない。このように学習マップを更新することなく、以前の学習マップデータにより制御を続け、この学習制御領域を外れたときに、この学習領域内で演算した最新の学習値を学習マップに書込んで更新する。
【0018】
また、この学習制御領域内では、O2フィードバック制御による補正は行わずオープン制御とし、運転状態に応じて状態が変るごとに学習マップから補正データを読み出し、これに基づいて噴射制御を行う。
【0019】
【実施例】
図1は本発明が適用される船舶用2機掛け船外機の外観図である。図に示すように、船体405の船尾に2機のエンジンを包含する船外機406−1、406−2が装着される。これは、海上等において充分な推進力を得るとともに、どちらか一方の船外機が故障した場合であっても航行を可能として帰港の確保を図るための構成である。
【0020】
このような船外機の2機掛け航行時、エンジンは2機駆け状態で運転される。この2機駆けエンジンの駆動制御を行う場合、各エンジンはそれぞれ独自に運転可能とする必要があるため、各エンジンごとに駆動制御装置を有している。各制御装置は、エンジン回転速度、スロットル開度、アクセル位置、吸気管負圧等のいわゆる負荷、吸気温度、排気ガス酸素濃度、シフト位置等の各種運転状態を検出し、この検出情報に基づいて、予め定めた制御プログラムに従って、そのときの最適空燃比や燃料噴射量、噴射タイミング、点火タイミング等を演算し、この演算値を基にエンジンを駆動制御している。この場合、上記制御プログラムは、検出情報の読み込みルーチンと、読み込んだ検出情報に基づいて各制御量を演算する複数の演算ルーチンを予め定めたシーケンスに従って配置したメインルーチンを有し、このメインルーチンに従って演算処理が行われる。
【0021】
図2は、前述の2機掛け船外機にそれぞれ搭載されるV型6気筒エンジンの内、一つの気筒まわりのエンジン詳細図である。
【0022】
図2に示すように、クランク室22には、吸気マニホルド24に連通する吸気ポート80が開口する。吸気ポート80にはリード弁23が設けられる。吸気マニホルド24にはインジェクター26が設けられるとともにスロットル弁25が備る。吸気マニホルド24には吸気温度センサー32が設けられる。また、吸気マニホルド24の外側において、スロットル弁25にはスロットル開度センサー15が設けられる。
【0023】
インジェクター26に供給される燃料は燃料タンク63内に溜められている。この燃料タンク63内の燃料は低圧燃料ポンプ64により水分離およびゴミ除去用フィルター66を介してサブタンク67に送られる。この駆動は、サブタンク67内の燃料残量が所定量を下回るまで減少した時メインタンク63からサブタンク67内へ燃料を送るべく実施される。サブタンク67内の燃料は、高圧燃料ポンプ65により分配管を経て各気筒のインジェクター26に送られ、後述のように制御された噴射量および噴射タイミングで燃料が吸気マニホルド24内に噴射され所定空燃比の混合気を形成する。インジェクター26で噴射されなかった高圧燃料は、戻り配管70を通してサブタンク67に回収される。戻り配管70上には圧力レギュレータ69が設けられ、インジェクター26の噴射圧力を一定に保つ。これにより、インジェクター26の開弁による噴射時間を制御することにより燃料噴射量が制御できる。
【0024】
図3は、上記2機掛けの内一方の船外機のスロットル及びギヤシフトの駆動操作系統の構成図である。船外機本体38は、ブラケット37aおよびクランプブラケット37bを介して船体36に対しチルト軸305廻りにトリム角θを変更可能に取付けられる。306はトリム角可変アクチュエータ、39はトリム角センサーを表している。トリム角θとはプロペラ10の中心軸の方向が船底からどれだけ傾いたかを示すものである。トリム角が0°すなわちプロペラ10中心軸が船底と平行の時、一般的に船外機本体38の前縁が鉛直線に一致するように船外機は形成されるので、船外機の鉛直線に対する相対角度θをトリム角と言っても良い。
【0025】
カム51を端部に有するシフトレバー50は、カウリング内でピボット片52を介してリンクバー53に連結される。このカム51は、エンジンとプロペラ軸とを連結するクラッチをシフトさせるためのものである。リンクバー53の端部にはピン55が突出して設けられる。このピン55は、カウリング内に固定した長孔ガイド54内で矢印Aのようにスライド可能に装着される。
【0026】
一方、船内にはギヤシフトおよびスロットル操作用のリモコンボックス56が各船外機406−1,406−2用に2個設けられる。このリモコンボックス56は、船外機本体38に対しシフトケーブル57、スロットルケーブル58および電気信号ケーブル59の3本のケーブルを介して連結さていれる。シフトケーブル57はカウリング内で前述のリンクバー53のピン55に結合されている。リモコンボックス56には操作レバー60が設けられ、これを中立位置(N)から前進または後進側に駆動操作してシフトケーブル57を介してピン55を長孔リング54内でスライドさせる。これにより、リンクバー53が平行移動するとともに、その根元部のピボット片52を矢印Bのように回転させる。これにより、シフトレバー50がその軸廻りに回転し、カム51が回転して、ドッグクラッチを介してクランク軸と前進用ギヤまたは後進用ギヤとを連結する。操作レバー60を前進または後進のシフト操作完了位置即ちスロットル弁全閉位置からさらにF方向(前進時)またはR方向(後進時)に移動させることにより、スロットルケーブル58を介して船外機38内のエンジンのスロットル弁が全開方向に動作する。このシフトケーブル57には、シフトカットスイッチ(図示しない)が設けられている。これは、高負荷運転時にドッグクラッチをギヤから切り離そうとする際、クラッチとギヤ間の噛み合い面圧が非常に大きくなるため、ケーブルに大きな負荷がかかる。シフトカットスイッチは、この負荷によるケーブルの弾性変形量を検出することにより過大なクラッチ噛み合い圧力を検知し、エンジン回転を下げてクラッチの切り替えを楽に行うようにするためのものである。このようなシフトカットスイッチはカウリング内に設けてもよいし、あるいはリモコンボックス内に設けてもよい。
【0027】
リモコンボックス56にはさらに落水検知スイッチ(図示しない)が設けられている。この落水検知スイッチは、例えば乗員の身体に結び付けたワイヤにスイッチを連結し、乗員が落水した時にはスイッチを動作させてエンジンを停止させ直ちに船を停止させるためのものである。また、リモコンボックス56には独立のエンジン停止操作スイッチ(図示しない)も設けられている。
【0028】
図4は、前述のエンジンを含む船外機の各種運転状態を検出するための検出手段および燃料噴射や点火を駆動する手段を含む駆動制御システムの詳細を示す。この例は2機掛けされる船舶用6気筒エンジンを搭載した船外機の一方の制御システムを代表して示す。
【0029】
気筒検出手段#1〜#6は、クランク軸廻りに6個配置され、メインルーチンで実施される各気筒についてイベント割込み(TDC割込み)を実行するためのトリガ信号を発生する。これは、例えば各気筒のピストンが上死点またはそれより所定角度(クランク角度)手前に位置する瞬間に信号を発するように構成する。従って、本実施例ではクランク軸の1回転中に60度ごとに1つの気筒検出信号(TDC信号)が各気筒#1〜#6から順番に演算処理装置に送られる。このイベント割込みフローの中で、メインルーチン中に求められた各気筒についての制御演算結果に基づいて点火及び燃料噴射が実施される。
【0030】
クランク角検出手段は、点火時期制御のベースとなる角度パルスを発するものであり、クランク軸に係合するリングギヤの歯数に対応してパルス信号を発する。例えばギヤ歯数112歯に対応して1回転中に448パルスを発するように構成すれば、1パルスごとにクランク軸が0.8度回転することになる。
【0031】
スロットル開度検出手段15は、吸気マニホルド24に設けたスロットル弁25の開度に応じてアナログ電圧信号を発する。演算処理装置はこのアナログ信号をA/D変換してマップ読取り等の演算処理を行う。
【0032】
さらに詳しくいうと、前述のスロットルレバー60(図2)に連結されたスロットルワイヤのリンクがスロットル弁25の弁軸の一端に接続されている。この弁軸の反対側の端部に抵抗摺動式のセンサーが取りつけられる。スロットル弁の開度に応じて弁軸が回転しセンサーの抵抗値が変わる。この抵抗値変化を電圧変化としてとり出しスロットル開度の検出信号とする。
【0033】
次のトリム角度検出手段から吸気温度検出手段までは、エンジンの運転条件に対する環境変化があった場合にこの変化に応じて制御量を補正するためのものである。トリム角度検出手段は、船外機の取付け角度を検出するものである。E/G温度検出手段は、各気筒(または特定の基準気筒)のシリンダブロックに温度センサーを取付けその気筒の温度を検出するものである。大気圧検出手段は、カウリング内の適当な位置に設けられる。吸気温度検出手段32は吸気通路上の適当な位置に設けられる。大気圧および吸気温度は空気の体積に直接影響するものであり、演算処理装置は、これらの大気圧および吸気温度の検出値に応じて空燃比等の制御量に対する補正演算を行う。
【0034】
既燃ガス検出手段は、所定の気筒例えば#1気筒に設けられる酸素濃度センサー(O2センサ)のことである。検出した酸素濃度に応じて燃料噴射量等のフィードバック制御を行う。
【0035】
ノック検出手段34は、各気筒の異常燃焼を検出するものであり、ノッキングがおきた場合に点火を遅角側にシフトさせたりまたは燃料をリッチ側に設定してノッキングを解消し、エンジンの損傷発生を防止する。
【0036】
船外機38の上部のカウリング内に不図示のオイルタンクが設けられ、このオイルタンク内の潤滑油のレベルを検知するのがオイルレベル検知手段12である。オイルタンク内の潤滑油は不図示の潤滑油供給箇所へ不図示のオイルポンプにより供給される。オイルタンク内の潤滑油残量が所定量を下回る時、オイルレベル検知手段12はオイルエンプティ情報を出力する。これはエンジンの焼付きを防止するための処理をするためである。
【0037】
V型バンクの左右各バンクに1個づつ設けられたサーモスイッチは、バイメタル式温度センサー等の応答性の速いセンサーからなり、冷却系異常等によるエンジンの温度上昇等を検出し焼き付きを防止するための失火制御を行う。なお、前述のエンジン温度検出手段はシリンダブロックに設けられ燃料噴射の制御量補正のために使用されるが、このサーモスイッチはエンジンの温度上昇に直ちに対処するため応答性が速いことが要求される。
【0038】
シフトカットスイッチは、クラッチを切り替えるためのシフトケーブルのテンションを検出してプロペラに直結するドッグクラッチの切り替えを容易にするためのものである。
【0039】
運転状態検出手段とは、他方の船外機の運転状態を検出するためのものである。該手段にはDES検出手段が含まれる。DES検出手段は、2機掛け運転の場合他のエンジンが異常により失火運転状態にある時これを知らせるための信号であるDESを検知するものである。すなわち、該手段は船尾に船外機を2台並列して備えた型式の船舶において、一方の船外機のエンジンがオイル不足、温度上昇等により失火制御を行っている場合には、そのエンジンのDES出力手段からDESが出力されており、このDESを検出しこの失火運転状態を検知するためのものである。このDESの検出により、他方のエンジンも同様に失火制御を行って、両方のエンジンの運転状態を同じにして走行のバランスを保つ。
【0040】
バッテリ電圧検出手段は、インジェクタの駆動電源電圧の変化によりバルブの開閉動作の速さが変り吐出量が変化するため、バッテリ電圧を検出してこの電圧に基づいて噴射量を補正制御するために用いる。
【0041】
スタータスイッチ検出手段は、エンジンが始動運転中かどうかを検出するためのものである。始動状態であれば、燃料のリッチ化等を行い始動運転用の制御を行う。
【0042】
2種類あるE/Gストップスイッチ検出手段は、エンジン停止操作スイッチや落水検知スイッチのことであり、このうち落水検知スイッチは乗員が落水した場合これを検出するものであり、エンジンを直ちに停止するように制御する。この2種のE/Gストップスイッチ検出手段を図中便宜上一つのE/Gストップスイッチ検出手段として表示する。
【0043】
以上のような各検出手段からの入力信号に基づいて、演算処理装置内で各制御量の演算を行い、演算結果に基づいて出力側(図4の右側)の燃料噴射手段#1〜#6、点火手段#1〜#6、燃料ポンプおよびオイルポンプを駆動制御する。なお、燃料噴射手段および点火手段はそれぞれ、インジェクタおよび点火プラグであり、各気筒ごとに独立して順番に制御される。
【0044】
このような演算処理装置での演算を実行するために、図示したように、演算処理装置には、制御プログラムやマップ等を格納したROM等からなる不揮発性メモリおよび各検出信号やこれに基づく演算のための一時的なデータを記憶するためのRAM等からなる揮発性メモリが備る。
【0045】
次に、図5を参照して、本発明が適用される船外機エンジンの点火時期制御および燃料噴射制御について説明する。図5はこのような制御フローを実行するための構成を示すブロック図である。各ブロックは、前述の図4の演算処理装置内に演算処理回路として組込まれている。
【0046】
気筒判別手段201は、気筒検出手段#1〜#6(図4)に対応するものであり、各気筒からの入力信号に基づいてその気筒番号を判別する。周期計測手段1000は、この気筒検出手段からの検出信号に基づいて、各気筒からの入力信号の時間間隔を計測し、これを6倍することにより1回転の時間(周期)を算出する。エンジン回転数算出手段203は、この周期の逆数を演算して回転数を求める。スロットル開度読み込み手段204は、スロットル開度に対応したアナログ電圧信号により開度を読み込む。
【0047】
スロットル開度読み込み手段204からのスロットル開度信号はA/D変換され、E/G回転数算出手段203からの回転数信号さらにスタータスイッチからの始動情報とともに、基本点火時期算出手段210および基本燃料噴射算出手段211に送られ、基準気筒である#1の気筒の点火時期および燃料噴射量が通常運転モードあるいは始動モードのそれぞれにおいてそれぞれ3次元マップを用いて算出される。このエンジン回転数信号およびスロットル開度信号は、さらに気筒別点火時期補正値演算手段208および気筒別燃料噴射量補正値演算手段209に送られ、残りの気筒#2〜#6についての基本点火時期および基本噴射量に対する補正値を各気筒ごとにマップ演算して求める。
【0048】
一方、トリム角度読み込み手段205、機関温度読み込み手段206および大気圧読み込み手段207は、それぞれの検出手段(図4)からの検出信号を読取り、これを点火時期補正値算出手段212および燃料噴射量補正係数算出手段213に送り、各運転状態に応じた補正値及び補正係数を算出する。この場合、点火時期補正値については、基本点火進角の値に対して加算する補正進角(あるいは遅角)の角度数を、各読み込みデータの種類ごとに予め記憶させたマップにより求める。また、燃料噴射量の補正係数については、予め記憶されたマップデータにより運転状態に応じた値を求める。
【0049】
なお、点火時期補正および燃料噴射量補正について、図示していないが、さらに吸気温度の検出データを各算出手段212、213に入力して吸気温度に基づく補正を行ってもよい。燃料の噴射量補正値・補正係数算出手段213にはスタータSWからの始動開始情報、及びエンジン回転数情報あるいはさらにE/G(エンジン)温度検出手段からの温度情報に基づき、始動運転モードから通常運転モードへの移行時点からスタートするタイマーの経過時間情報も入力される。燃料噴射量補正値・補正係数算出手段213においては基本噴射量に乗算される補正係数と、気筒別補正値以外の補正値、即ち始動後補正値及び始動運転モードから通常運転モードへの移行時点からの時間経過に対応した過渡期補正値が算出される。
【0050】
点火時期補正値算出手段212および燃料噴射量補正値・補正係数算出手段213の算出出力は、それぞれ点火時期補正手段214および燃料噴射量補正手段215に入力され、ここで基本点火時期に補正値が加算されるとともに基本燃料噴射の算出値に補正係数が乗算され、且つ始動後補正値と過渡時補正値が加算されて#1気筒の点火時期および燃料噴射の制御量が算出される。
【0051】
この基準気筒#1の点火時期および燃料噴射の制御量は気筒別点火時期補正手段216および気筒別燃料噴射量補正手段217に入力され、ここで#1気筒についての補正された点火時期および燃料噴射量に対し、#2〜#6の気筒についての気筒別点火時期補正量演算手段208および気筒別燃料噴射量補正値演算手段209による制御補正量を加えることにより、#2〜#6までの気筒の点火時期および燃料噴射量の制御量が算出される。
【0052】
このようにして算出された#1から#6までの各気筒に対する点火時期および燃料噴射の制御量に基づいて、点火出力手段218は、各気筒ごとの点火進角の角度の値で算出された制御量をタイマーセットし、燃料出力手段219は開弁時間に相当するクランク角をタイマーセットする。
【0053】
図6および図7は、本発明の実施例に係る2機掛け船外機のそれぞれのエンジンについての制御全体のフローチャートである。このフローチャートは、各エンジンの制御装置(演算処理装置)のCPUに組込まれた制御プロセス全体のシーケンスプログラムを示すメインルーチンのフローである。
【0054】
メインスイッチが投入され電源が立上がってエンジン操作が開始されると、所定のリセット時間後まず制御処理装置内の各処理回路が初期化される(ステップS11)。
【0055】
次にステップS12において、運転状態が判断され結果がメモリに保持される。ここでは、メインスイッチのON,0FF情報、図4のスタータSW検出手段を使って読み込まれたスタータSWのON,OFF情報、及びクランク角検出手段から読み取られるクランク角パルス列から算出されるエンジン回転数情報により始動状態か否か判断する始動判断、スロットル開度検出手段から読み取られるスロットル開度情報、エンジン回転数情報、運転状態検出手段により読み取られる他方の船外機の運転状態情報である運転状態情報、あるいは下記するオーバーヒート、オイル不足等の異常状態情報、あるいはスロットル開度情報の時間変化から算出される急加減速情報等に基づき特定気筒を休止すべきかどうかの気筒休止判断、主にスロットル開度情報、エンジン回転数情報に基づき酸素濃度のフィードバック制御を行うかどうかの判断、及び主に同2つの情報に基づき特定の制御条件の場合に制御データを学習記憶させるかどうかの判断、エンジン回転数情報に基づき過剰回転にあるかどうかのオーバーレボ判断、スロットル開度情報、エンジン回転数情報及びエンジン(E/G)温度検出手段あるいはそのより具体的手段であるサーモSWによる温度情報に基づきオーバーヒート状態であるかどうかのオーバーヒート判断、スロットル開度情報、エンジン回転数情報及びオイルレベル検出手段による残存オイル量情報に基づき残存オイル量が少ないかどうかのオイルエンプティ判断を行う。過剰回転状態、オーバーヒート状態及び残存オイル量少状態の場合は下記するように失火制御を行う。ステップS12においてはさらに、スロットル情報、クランク角情報、O2センサ情報あるいはクランク角検出手段の一種であるパルサーコイルからのパルサー情報に基づき、これらの情報が欠落あるいは異常であるフェール状態であるか否かのフェール判断、運転状態情報により他の船外機も運転されている2機掛け運転状態にあるかどうかの判断、気筒休止状態信号により他方の船外機が気筒休止運転状態にあるかの判断、及びDES(異常対応の失火制御状態を報知する信号)により他方の船外機が異常対応の失火制御状態にあるかの判断の3つの判断からなる2機掛け運転状態判断、前記したスロットル開度情報の時間変化から急加減速状態にあるかどうかの急加減速判断、高速回転状態からのシフト操作時作動するシフトカットSWのON,OFF情報に基づくシフトカット状態にあるかどうかのシフトカット判断がなされる。
【0056】
このような判断は、前のルーチンにおいて読取ったセンサーからの検出情報や演算結果等の各種情報に基づいて行われる。
【0057】
次にステップS13において、ループ1のルーチンワークを行うかどうかの判別が行われる。YESであれば、ステップS14に進みスイッチ情報の読み込みが行われる。ここではE/Gストップスイッチ検出手段、メインスイッチ、スタータスイッチ検出手段およびサーモSWからの情報が読取られる。続いてステップS15において、ノックセンサー(ノック検出手段)およびスロットルセンサー(スロットル開度検出手段)からの情報が読取られる。このループ1による情報読み込みの終了後ステップS16に進み、ループ2のルーチンワークを行うかどうかが判別される。
【0058】
演算処理装置はハード的あるいはソフト的に4ms間隔でループ1の処理用フラグ1を1にセットし、8ms間隔でループ2の処理用フラグ2を1にセットする。
【0059】
図8はこのようなループ1およびループ2を実行するためのタイマー割込みのフローチャートである。このようなタイマーのセットはイニシャライズステップS11において行われ、各ループ1、2のルーチンを実行中にはそのフラグがセットされるとともに次回のそのルーチンのためのタイマーがセットされる。
【0060】
図6に戻り、ステップS13において、フラグ1をチェックし1であればステップS14、ステップS15を実施する。なお、ステップS14に進むと同時にフラグ1はクリアされ0となる。ステップS13において、フラグ1が0であることが確認されると、ステップS16に進み、フラグ2が1であるかをチェックする。フラグ2が1であればステップS17に進むと同時にフラグ2はクリアされ0となる。ステップS16でフラグ2が0である場合はステップS12に戻る。
【0061】
ステップS17においては、オイルレベルの検出、高回転状態からのシフト操作時大となるシフトケーブルのテンションに応じて作動し、テンションが大なる時ONとなるシフトカットスイッチのON,OFF状態の検知、およびエンジン2機掛け運転信号、気筒休止状態信号及びDES信号の検出が行われる。さらにステップS18において、大気圧情報、吸気温度情報、トリム角情報、エンジン温度情報、バッテリ電圧情報、および排気ガス中の酸素濃度情報が大気圧検出手段、吸気温度検出手段、トリム角度検出手段、E/G(エンジン)温度検出手段、バッテリ電圧検出手段、及びO2センサーによりそれぞれ読取られる。なお、酸素濃度情報に基づき燃焼前のA/F情報が算出される。
【0062】
次に、ステップS19において、失火制御が行われる。これは、読み込んだ情報から、前記ステップS12の運転状態判断において、過回転、所定以上のスロットル開度及びエンジン回転数におけるオーバーヒート、オイルエンプティ等の異常状態にある、あるいは他のエンジンが異常状態にあるとの判断結果が検出されたときに、特定気筒の失火を行うように燃料制御するものである。さらに、下記するステップS24の気筒別補正において、失火させる気筒の燃料噴射量を他の気筒より半減させるべく、失火制御状態にあることをメモリに出力する失火時燃料制御が実施される。次に、エンジンが回転しているかどうかの判断およびオイルタンクのレベルセンサーからの情報に基づいて、燃料ポンプおよびオイルポンプが駆動制御される(ステップS20)。これは、燃料については、エンジンが回転中ならば燃料ポンプを駆動し、エンジン停止中ならば燃料ポンプを停止し、オイルについては、オイルタンク内の量が少ないときにポンプを駆動して船体内のオイルタンクからオイルを補給するかエンジン回転数を低下させオイル消費量を低下させるものである。
【0063】
次に、ステップS21において、気筒休止判断結果の判別を行う。これは、前述の運転状態判断ステップS12において、所定の低負荷低回転状態のときに休筒運転を行う判断をした場合に、演算処理のマップを選択するための判別ステップである。休筒運転でなければ通常の全気筒運転による通常運転マップを用いて点火時期および噴射時間の基本演算およびこれに対する気筒別の補正演算を行う(ステップS22)。なお、失火制御状態にあるかどうかの判断もなされ、失火制御状態にある場合は失火気筒にも、他の点火気筒への燃料噴射量と同じか所定割合を減じた燃料を供給すべく噴射時間の設定がなされる。これにより所定以上のスロットル開度及びエンジン回転数の時からの失火制御においても燃料を供給するので、気化熱によりピストン等を冷却でき損傷を防止できる。休筒運転状態であれば、特定の気筒を休止した休筒運転用の気筒休止マップを用いて点火時期および噴射時間の演算および気筒別の補正演算を行う(ステップS24)。
【0064】
次に、図7のステップS23において、大気圧やトリム角等の運転状態に応じて、基本の点火時期や燃料噴射に対する補正値が演算される。続いて、ステップS25において、酸素濃度のフィードバック制御に伴う補正値が演算される。このとき、演算情報の学習判定とO2センサーの活性化の判定が行われる。さらに、ステ ップS26において、ノックセンサーからの検出信号に基づいて、エンジンの焼き付き防止等のために制御量の補正値が演算される。
【0065】
次にステップS27において、基本の点火時期および燃料噴射の制御量に対し補正係数を乗算しさらに補正値を加えてあるいは補正係数を乗算して最適な点火時期、噴射時間および噴射時期を演算する。この後、ステップS290において、エンジン停止前制御の演算が行われる。これは、ステップS12で、メインスイッチあるいはエンジンストップスイッチ等が切られて、エンジン停止状態と判断された場合に、再始動を考慮して点火のみを止めて燃料噴射は所定時間継続するための制御ルーチンである。以上によりループ2のルーチンを終了し、元の運転状態判断ステップS12に戻る。
【0066】
図9はTDC割込みルーチンのフローを示す。クランク軸には各気筒検出手段近傍を順次通過する時各気筒においてピストンが上死点にあることを知らせる信号を各気筒検出手段から出力させるマーカが固着されている。TDC割込みとは、#1から#6までの気筒検出手段による各気筒からのTDC信号の入力に基づき、随時メインルーチンに割込まれるルーチンである。
【0067】
まず、信号が入力された気筒の番号を判定する(ステップS28)。次にその気筒番号を前回の入力信号の気筒番号と比較することにより、運転すべき回転方向に対するエンジンの正逆回転を判定する(ステップS29)。逆転していればエンジンを直ちに停止する(ステップS33)。エンジンが正転していれば、例えば#1と#2の気筒間の時間間隔をカウントしてこれを6倍することによりエンジン回転の周期を算出する(ステップS30)。続いてこの周期の逆数を演算することにより、回転数を算出する(ステップS31)。この回転数が予め定めた所定の回転数よりも小さいときには、エンジンを停止する(ステップS32、33)。
【0068】
次に、ステップS34において、入力されたTDC割込み信号が特定の基準気筒#1からのものかどうかが判別される。基準気筒#1からの信号であれば、休筒運転状態かどうかが判別され(ステップS35)、休筒運転中であれば、休止すべき気筒のパターンを変更すべきかどうかが判別され(ステップS37)、パターンを切り替え(ステップS38)または切り替えずにそのままステップS39に進み、点火制御による休筒運転情報をセットする。割込み信号が#1からでない場合(ステップS34)あるいは休筒運転中でない場合(ステップS35)には、そのまま、あるいは休筒情報をクリアして(ステップS36)ステップS39に進み、点火制御による休筒運転情報をセットする。この点火休筒情報に基づき点火すべき気筒の点火パルスをセットする(ステップS40)。
【0069】
この点火パルスセットの詳細は以下の通りである。演算により求められる点火時期は、V型6気筒エンジンにおいて、TDCより60度前のクランク角すなわち基準に何度になるかに換算され、0.8で割ってパルス数にまるめられる。60度前にTDCとなる気筒のTDC信号が入力されると、点火出力手段218を構成するタイマーにまるめられたパルス数のデータが保持されると同時に、以降クランク角検出手段からのパルスがタイマーに届くごとに、保持するパルス数を1づつ減じていき、保持パルス数が0となると、点火出力手段218が点火プラグ19をスパークさせる。
【0070】
本実施例は、例えば6気筒のV型2バンク型式のエンジンを対象とし、奇数番号の気筒(#1、3、5)を左バンクに配設し、偶数番号の気筒(#2、4、6)を右バンクに配設している。これらの気筒をバンクごとに制御するために、バンクごとに別のタイマーを有している。これらのタイマーに点火時期に対応するクランク角パルス数をセットする場合、図10に図示したように、まず気筒番号が偶数か奇数かを判別し、偶数か奇数かに応じてそれぞれ点火時期データを対応するバンクのタイマー(図では奇数バンクをタイマ3、偶数バンクをタイマ4としている)にセットし、点火気筒番号をセットする。
【0071】
その後、点火制御において失火させる休止気筒について燃料噴射制御における燃料噴射量を減少させる気筒を燃料噴射制御による休筒情報としてセットし(図9のステップS41)、該点火制御において失火させる休止気筒について算出される燃料噴射の制御量より減少させた燃料噴射量に対応する噴射時間と、その他の気筒について算出される燃料噴射の制御量に対応した噴射時間に、それぞれ気筒ごとに対応した噴射パルスをセットする(ステップS42)。
【0072】
前述のエンジン周期を計測する場合、1つの気筒からの入力信号(TDC信号)があると、これに応じて図9のTDC割込みが行われるとともに、TDC周期計測タイマーがTDC信号の入力時点で一定周波数パルスのパルス数のカウントを開始し、次の気筒のTDC信号が入力した時点でリセットされ次の気筒のカウントを開始する。この場合、カウント値が所定値以上になると、オーバーフローとなりカウントがリセットされる。このオーバーフローが起きた時点、即ち、クランク角60度の周期が所定以上の時間である低速回転であることが検知された時点でタイマーオーバーフロー割込みが実行される。
【0073】
図11は、このオーバーフロー割込みを示す。オーバーフローが起きるとまずその回数を記憶するとともに、エンジンの始動運転状態かどうかが判別される。始動状態の運転モードであればオーバーフローはエンジン回転が低いためであり、そのまま運転を続ける。始動モードでない場合には、TDC信号のパルスが抜けた、即ち何等かのトラブルによりTDC信号パルスが伝えられなかったためのオーバーフローかどうかが判別され、パルス抜けのない正常な信号伝達によるオーバーフロー検出であればエンジンが低回転であるためエンジンを停止する。パルス抜けがあった場合には、オーバーフロー検出が2回目かどうかが判別され、2回目となった場合も回転が低すぎるとしてエンジンを停止する。これにより、低回転において信号発信系統に異常があるときには必ずエンジン停止することとなる。
【0074】
図12は、各気筒の点火タイミングを設定するための前述の各バンクに対応したタイマー3、4の割込みルーチンを示す。エンジン回転信号(TDC信号)が各気筒から入力されるとこのタイマー3、4の割込みが行われる。まず、エンジンが所定の低回転以下の状態のために点火休筒運転を行うかどうかの休筒情報およびオーバーヒートあるいはオーバーレボ(過回転)検出により点火を失火させるかどうかの失火情報を読み込む。この後気筒番号に応じたタイマー3あるいは4に点火タイミングに応じたタイマー値をセットする。その後、休筒情報あるいは失火情報により失火させる場合には、点火処理のルーチンは行わないためタイマーで設定されたタイミングになっても点火プラグへの放電はさせないようにして、120°位相が遅れた気筒の点火タイミングをメモリより読み込み、該タイマにタイミングをセットし、そのままメインフローに戻る。失火させない場合には、点火すべき気筒の番号を読み込み、タイマーで設定されたタイミングでその気筒の点火駆動回路の点火出力ポートからパルス(HI)を出力して点火プラグを放電させる。点火時間はパルス幅に対応しタイマにより設定される、又は、所定回数、実行に所定時間必要となるループを実行し、必要なパルス幅を得る。この所定の点火時間が経過後、点火出力ポートからの信号をLOWとし点火プラグの放電が終了する。また、点火駆動回路がLOWアクティブであれば論理は上記と逆となる。
【0075】
以上が本発明が適用される船外機エンジンの機構上の構成および制御系全体のシステム構成およびその作用のフローである。
【0076】
本発明は前述のように、O2センサを用いた空燃比のフィードバック制御において、所定のリーンセット制御領域の条件になった場合に、エンジンの回転変動を抑制して安定したエンジン回転が得られる空燃比制御方法の提供を目的としている。
【0077】
このような本発明の実施例について、図13〜図30を参照して以下にさらに説明する。この実施例は、前述の船外機用6気筒V型バンクエンジンの気筒#1〜#6のO2フィードバック制御を行う例を示すものである。
【0078】
図13は、エンジン制御の演算処理に用いるマップの使用領域を示すマップ遷移図である。マップ領域は、エンジン温度TEと、エンジン回転数Nと、スロットル開度θとによって定まる。全気筒マップ領域は、6気筒全てを燃焼可能とする制御量を計算する領域であり、エンジン温度TEと、エンジン回転数Nと、スロットル開度θのほぼ全使用領域をカバーする。この全気筒運転領域のうち、特に2サイクルエンジンにおいて、特定の運転状態の場合に一部の気筒の燃焼を停止し、不正燃焼を抑えガス交換を促進して燃焼安定性および燃費の向上等を図るために、休筒運転が行われる。即ち、この領域は全気筒マップ領域内にあり、全気筒について演算は行われるが、休筒気筒では実際の燃焼はなされない。この休筒運転で用いる休筒マップ領域は、エンジン回転数Nが約400〜1900rpm、スロットル開度θは全閉から約10°(スロットルセンサ出力約1V)の範囲である。また、エンジン温度については、40℃以下(矢印Aの領域)では暖機運転のため全回転域で全気筒マップを使用し、休筒マップは使用しない。これは、例えば冷気始動時の温度が低い状態であり、休筒運転を行うと休止気筒の温度が上昇しないため、休筒運転を行わない領域である。
【0079】
なお、基準気筒の吸気マニホールド24のスロットル弁25の下流側に配置される吸気センサー32の近傍に吸気負圧センサーを配置(図2参照)しても良い。またスロットル弁を開閉するアクセル装置にアクセル位置センサーを配置してもよい。これらの検出値はいわゆる負荷と言われるものである。
【0080】
この場合、図13は、Thrθ軸を、スロットル弁開度と同様負荷と言われる吸気負圧、あるいはアクセル位置に置き換えたマップ遷移図となる。休筒マップ領域、O2フィードバック制御領域、学習制御領域の位置関係に変化はない。この場合、図6のステップS15で実施されるセンサ情報読み込み1において、スロットルセンサ情報の代りに吸気管負圧情報あるいはアクセル位置情報等の負荷情報を読み込ませ、これら負荷情報を用いた基本制御量マップ、等により各制御量を演算させるようにする。
【0081】
つまり、吸気マニホールド24のスロットル弁25の下流側に抵抗性あるいはカルマン渦カウンター等による空気量検知装置を配置し、時間当たりの空気量を算出するか、クランク室31に圧力センサーを配置し、最大圧力と最小圧力の差圧から時間当たりの空気量を算出するようにしても良い。空気量はスロットル弁角度Thθとエンジン回転数と一定の関係があり、上記負荷情報の代りに空気量情報を用いて基本制御量マップ等により各制御量を演算させるようにしても良い。そしてこの場合には、図13は、Thθ軸を空気量軸に置き換える。これに応じ各領域の位置関係に変化はないものの、それぞれの領域の形状は変ることとなる。
【0082】
O2フィードバック制御領域は、エンジン回転数が約500〜5200rpmの範囲であり、スロットル開度はほぼ全域に対応する。またサーモスイッチが所定のオーバーヒート温度に達してONになると(矢印Bの領域)、燃料をリッチ化して焼き付き防止を図る必要があり、O2フィードバック制御によるリッチ、リーンの繰り返し噴射を避けるためにO2フィードバック制御を行わない。
【0083】
このO2フィードバック制御領域の一部(エンジン回転数約3000〜4300rpm,スロットル開度約20°〜30°(中負荷域1.5V〜2.0V)の範囲)に学習制御領域がある。この領域は、例えば一定の高めの中速運転を行うクルージング領域であり、常にリーン状態にセットされる領域である。この学習制御領域では、リーン状態にセットされた運転状態において、O2フィードバック制御のマップ演算によるリッチ、リーンの最適繰り返し噴射量時のO2センサの検出値を記憶し、この検出値に基づき噴射量の学習補正係数演算マップを書換えることにより、次回のO2フィードバック制御開始後の収束までの時間短縮を図る。
【0084】
この場合マップの書換えは、後述のように、一旦この学習制御領域を外れたときに行う。
【0085】
図14はO2センサの出力電圧を示すグラフである。出力電圧は、理論空燃比Stを境に急激に変化する。この変化位置の傾きは2サイクルエンジンでは緩くなる傾向にあり、またリッチ側に移行する傾向にある。本実施例においては、このO2センサを基準気筒である#1気筒に設け、O2センサからの出力電圧に基づいて基準気筒#1の空燃比フィードバック制御を行っている。このO2フィードバック制御は、前述の図6および図7のメインフローに示したように、点火時期および燃料噴射について各気筒について基本演算を行って基本制御量を算出し(ステップS22またはS24)、その後トリム角やエンジン温度等に基づいて補正係数演算を行った後(ステップS23)、O2フィードバック制御の補正係数の演算を行い(ステップS25)、各気筒についての制御量を算出した後(ステップS27)、この演算した制御量をもとに、O2センサを用いて燃料噴射量のフィードバック制御を行うものである(ステップS25)。このO2フィードバック制御は、目標とするA/Fにするためにマップを用いて補正係数を演算し、O2センサの出力に応じてこの補正係数を付加した燃料噴射を行う。
【0086】
図15は、基準気筒のO2フィードバック制御における補正係数の変化の状態を示す図であり、上方が補正係数大、下方が補正係数小となる。O2フィードバック制御が開始されると、まずリッチ方向の制御パラメータに基づいて噴射量が制御される。Δt1は制御開始直後の収束前の制御周期であり、Δt2は収束後の制御周期である。収束前は、目標とする空燃比に近づいていない状態であり、短時間で収束させるためにΔt1はΔt2よりも短く設定されている。Δt1の周期で一旦収束した後は空燃比の制御精度を高めるために周期を変えてΔt2の周期で制御が行われる。P1、P2はそれぞれリッチ側およびリーン側に切り替えたときの比例定数であり、次の切り替え点に速く達するために噴射量をステップ的に変化させる係数の変化分である。I1,I2はそれぞれリッチ方向およびリーン方向の積分定数である。これらは前述の周期Δt1またはΔt2における補正係数の増加量を表す。このように、比例定数P1、P2および積分定数I1,I2をリッチ方向およびリーン方向にそれぞれ独立してもつのは、O2センサの応答性が制御方向により異なるためである。図中mSoは理論空燃比が得られる時の補正係数値である。
【0087】
図16は、補正係数を演算する場合の上記各制御パラメータのマップテーブルを示す。これらの図は、上記パラメータ、P1,P2,I1,I2,Δt1,Δt2およびリッチからリーンへの切り替え電圧V1とリーンからリッチへの切り替え電圧V2のテーブルを示す。V1およびV2は、それぞれ基準気筒#1をO2センサの出力に基づいて制御する場合に、目標とする空燃比を越えた時点でリッチからリーンへおよびその逆の方向へ制御を切り替えるための閾値電圧である。このような8つの図示したテーブルには、エンジン回転数(rpm)に対応して各パラメータの値が書込まれている。このように各パラメータをエンジン回転数に応じて変えているのは、エンジン回転数に応じエンジン圧力波が変化し、O2センサに対する既燃ガスの入替わり速度が異なってくるためである。この場合、片方向側(例えばリッチ側)の比例定数と積分定数のみをエンジン回転数に応じて可変とするマップテーブルを作成し、もう一方(リーン側)は、リッチ側の定数に予め実験等により求めた係数を乗ずることにより演算してもよい。これにより、メモリ量を低下させるとともに演算時間の短縮が図られる。
【0088】
図17は、上記マップテーブルのパラメータを用いて演算した補正係数の変化状態を示す。時間t1でO2フィードバック制御がスタートすると、まずリッチ方向への燃料噴射が行われる。ここでは、図15に示したように、P1による増加後周期Δt1での短いステップ状に補正係数が演算されこれに基づきリッチ方向に燃料噴射が行われる。時間t2でA/Fが目標空燃比を上回ると、O2センサの出力電圧がV1に達し、リッチからリーン方向へ制御方向が切り替わる。ここで補正係数がP2(図15)に対応して減少する。これがリッチ側からリーン側への第1回目の切り替わり点A1である。ここからリーン方向への噴射を行い周期Δt2ごとにI2に対応して補正係数を減少させ噴射量を減少させると、時間t3で再び目標空燃比を下回り、O2センサの出力電圧がV2になる。この時点で再びリーン方向からリッチ方向へ制御方向を切り替える。ここがリーン方向からリッチ方向への第1回目の切り替え点B1(切り替え点としては2回目)である。ここで前述の比例定数P1に対応して噴射量を立上げ、その後周期Δt2ごとに積分定数I1に対応して燃料を増量する。これにより、再びA/Fが目標空燃比を上回り、時間t4でO2センサの出力電圧がV1に達する。この時点でリッチからリーンへ制御方向が切り替わり、この方向の2回目の補正係数の方向切り替わり点A2となる。ここで前記切り替え点A1のときと同様に、比例定数P2に対応して燃料を減量し、さらに周期Δt2ごとに積分定数I2に対応して補正係数を減少させることにより、時間t5で再び切り替え点B2に達する。以降同様にしてリッチ側およびリーン側への噴射制御が繰り返し行われる。
【0089】
補正係数を付加した燃料噴射時間TINJは以下のようにして演算される。燃料噴射量はこの燃料噴射時間に時間当りの噴射量を掛けたものである。
【0090】
TINJ=TINJB×TINJC+(TINJB+TL)×C+TL+TINV (1)
ここで、TINJBは、図6〜図7のメインルーチンのステップS22またはS24で演算した基本燃料噴射時間、TINJCは、ステップS23で演算したエンジン温度補正係数、大気圧補正係数およびトリム角補正係数を乗じた噴射補正係数である。Cは本実施例に係るO2フィードバック制御により演算した補正係数である(図7のステップS25)。Cは0.15≧C≧−0.15を満足するものであり、前記mSoは0となる。またTINVは、無効噴射時間である。これはバッテリ電圧によりインジェクタの弁の開閉時間が変るため、これを補正するためのものである。また、TLは学習補正噴射時間であり、学習制御領域において、所定の学習マップから求められる。この学習制御は、例えば所定の運転状態で燃料噴射をリーン側にセットした領域において、マップ演算した所定の補正量に基づいて燃料噴射制御を行うとともに、この補正量から所定の学習値を算出してこれを、後述のように、学習マップに書込んで更新し、次回の学習制御領域の運転ではこの学習値に基づいて空燃比を制御するものである。なお、図17において、時刻t2、t4におけるA/F検知値は目標A/Fを僅かに上回り、時刻t3、t5においては僅かに下回る。
【0091】
以上のようにして、基準気筒#1に対しては、O2センサの出力に基づいてO2フィードバック制御が行われる。残りの気筒#2〜#6に対しては、第1回目のリッチ側からリーン側への補正係数の切り替わり点A1を除くこの方向の切り替わり点A2、A3・・・、およびリーン側からリッチ側への補正係数の切り替わり点B1、B2・・・のうち、連続して隣り合う2つの切り替わり点の補正係数から代表値を算出し、この代表値に基づき一定量の燃料を噴射する。即ち、反転するごとに代表値の値を更新する(なお、実施例に示すように、反転のペアができるごとに値を更新してもよい)。従って、#2〜#6気筒に対しては、リッチ、リーンの周期的繰り返し制御は行われず、一定の補正係数に基づいて燃料噴射制御が行われる。代表値としては、2つの反転位置の補正係数の平均値あるいは所定の中間値を演算する。この場合、基準気筒#1のO2フィードバック制御開始後の最初の補正係数の反転位置は、制御の方向が必ずリッチ側から行われるため、この最初の反転位置の補正係数を代表値の演算に用いると、代表値が基準気筒の補正係数と大きく異なり燃費が悪化することあるいはエンジン回転変動等が発生することが考えられる。これを防止するために、安定して目標空燃比に近づく収束後の状態となった2回目からの反転位置の補正係数を代表値演算に用いる。 図18は、メインフロー(図7)におけるO2フィードバック制御の補正演算ステップS25の詳細フローを示す。まずステップS3191で、O2センサが一定以上の温度となってO2濃度の検出が可能状態かどうかの判定(活性化の判定)が行われる。次に、ステップS3192で、O2フィードバック制御を行うかどうかが判別される。これは、エンジンが急加減速中でないこと、始動制御中でないこと、スロットルおよび回転数が所定の範囲内でかつ変動が一定範囲内で所定時間以上続くこと、失火制御中でないことおよびノック制御中でないこと等の条件を判定するものである。続いて、ステップS3193で、O2フィードバック制御の学習制御を行うどうかが判別される。これは、図13のマップ遷移図において、O2フィードバック制御領域の内、学習制御領域の条件となっているかどうかを判別するものである。これらの判別ステップS3192およびS3193の結果に基づき、学習領域であれば各運転状態より学習マップから学習補正噴射時間を求め、その値に基づいて燃料噴射量を演算する(ステップS3194)。その後、この学習制御領域を外れたときに学習マップを更新する(ステップS3195)。
【0092】
前述の基準気筒#1に対するO2フィードバック制御は以下に示す条件1が満足された場合に行われる。即ち、(イ)急加速あるいは急減速中でないこと、(ロ)始動時あるいは始動後の始動制御中でないこと、(ハ)エンジン回転およびスロットル開度が一定範囲内にあること、(ニ)エンジン回転およびスロットル開度の変動が一定範囲内にある状態が一定期間以上継続すること、(ホ)エンジン温度が一定値以上であること、の5つである。(イ)の急加減速中は、出力増加あるいはエンジンストールや焼き付き防止のために燃料を濃くする必要があるため、O2フィードバック制御は行わない。(ロ)の始動制御中は、エンジン温度が低く暖機のために燃料を増量する必要があるため、O2フィードバック制御は行わない。(ハ)のエンジン回転およびスロットル開度一定範囲の条件は、例えばスロットル開度70度以上、回転数5200rpm以上等の高負荷高回転時には、燃料噴射量を振らせずに一定量を供給して安定した運転状態とする必要があるためである。(ニ)の安定したエンジン回転等の状態が一定期間以上続く条件は、変動が激しい場合には、O2フィードバック制御により燃料噴射量を振らせることは好ましくないからである。(ホ)のエンジン温度が一定値以上の条件は、エンジン温度が低いと、O2センサが活性化していない場合があり、O2濃度検出値の信頼性が確かでない場合があるためであり、またエンジン温度が低いとリッチ側にセットして暖機されるため、O2フィードバック制御により噴射量を振らせてリーン側になると暖機に時間がかかり、またエンジンストールの可能性があるためである。O2フィードバック制御はこのような条件1をクリアした場合にのみ行われる。
【0093】
さらに、船外機特有の条件として、以下の条件2による失火制御中の場合および粗悪ガソリン使用等によるノック制御中については、O2フィードバック制御によるリーン方向制御時の基準気筒のリーン化によってエンジンが焼き付くことを防止するためO2フィードバック制御は行わない。条件2の失火制御中とは、(イ)オーバーヒート状態、(ロ)オーバーレボ(過回転)状態、(ハ)オイルエンプティ状態、および(ニ)2機がけ運転時の片方のエンジンが上記(イ)〜(ハ)の状態となってDES検出された状態の場合である。
【0094】
上記(イ)のオーバーヒート状態の失火制御とは、例えばシリンダヘッドに設けたバイメタルスイッチによりエンジン過熱が検出された場合に、燃焼を抑えて温度を下げるために回転数を例えば2000rpm以下に抑える目的で、特定気筒の点火を止めるものである。また、(ロ)のオーバーレボ状態とは、エンジン回転数が例えば6000rpm以上の高回転となった場合であり、この場合にも回転を抑えるために特定気筒の失火を行う。(ハ)のオイルエンプティ状態とは、オイルレベルスイッチによりカウリング内のオイルタンク内のオイル量が減った場合に、オイルの消費を抑えるために回転数を低下させるものである。このようなオイルエンプティの場合にも特定気筒を失火させ回転数を例えば2000rpm以下に抑えることにより、オイルの消費を抑え、特に船外機の場合、少ないオイルで確実な帰港を図るものである。
【0095】
図19は、本実施例に係る学習制御ルーチンを含むO2フィードバック制御ルーチンの一例を示すフローチャートである。
【0096】
まずステップS220で、前記判別ステップS3192の結果に基づきO2フィードバック制御を行うフラグが立ったかどうかが判別される。O2フィードバック制御を行うのであれば、ステップS221に進み、O2フィードバック制御が開始され初めてこの処理に入ったかどうかが判断される。初回(YES)であれば、ステップS222で周期計測のタイマO2F/B補正係数や制御方向フラグのリセット等の初期化を行う。続いて、ステップS223において、制御周期が計算される。これは、前述の図16に示した収束前の周期Δt1あるいは収束後の周期Δt2をマップ演算するものであり、その詳細フローを図20に示す。図示したように、制御方向が1回以上反転していれば既に収束した状態であり、周期Δt2をテーブル(図16)から演算し、1回も反転していない状態であれば収束前であるため周期Δt1を演算する。
【0097】
次にステップS224において、各周期ごとに周期時間に達しているかどうかが判別される。周期時間内の途中であれば何もせず周期時間に達するまでフローを循環する。所定の制御周期時間(Δt1またはΔt2)に達すると、ステップS225に進み、O2フィードバックの制御の方向状態が判定される。この詳細フローを図21に示す。まずO2フィードバック制御が初回かどうかが判別される(ステップS249)。初回であれば反転フラグを立てリッチ方向へ制御するフラグを立てる。初回でなければ、ステップS250でリーン方向へ制御中かが判別され、リーン方向であれば切り替え電圧V2を図16のテーブルより演算する(ステップS251)。このV2とO2センサの出力を比較し(ステップS252)、O2センサ出力がV2に達して反転が必要であれば、反転フラグを立てリッチ方向へ制御するフラグをセットする(ステップS256)。一方、O2センサ出力がV2に達せず反転が必要なければ、反転フラグをクリアし、現在立てられているリーン方向のフラグをそのままセットする(ステップS259)。一方、ステップS250でリッチ方向の制御中であれば、上記リーンの場合と全く逆にステップS253、S254、S268、S259、(またはS260、S256)を介して、リーン方向への反転またはリッチ制御の続行が行われる。
【0098】
図19のフローチャートに戻り、前述のようにステップS225で制御方向が判定されいずれかの方向にセットされさらに反転フラグがセットもしくはクリアされている状態で、ステップS226に進む。ここで反転フラグの状態が判別される。方向反転時であれば、比例定数P1またはP2(図16)を演算する(ステップS227)。さらにステップS228で、残りの気筒#2〜#6についての補正係数の代表値を計算し、学習制御中であれば、学習により学習マップに書込む値を計算する(ステップS229)。
【0099】
一方、ステップS226で方向反転時でなければ、周期ごとのステップ状に燃料を増加または減少するための積分定数I1またはI2(図16)がマップテーブルより演算される(ステップS230)。
【0100】
これらのステップS227の比例定数計算およびステップS230の積分定数計算のフローチャートをそれぞれ図22および図23に示す。図示したように、比例定数計算においては、リッチかリーンの方向が判別され(ステップS261)、リッチ方向であれば図16のP1が演算され(ステップS262)、リーン方向であればP2が演算される(ステップS264)。その後、反転前の方向の積分演算の回数がクリアされる(ステップS263)。
【0101】
図23の積分定数計算においては、リッチかリーンの方向が判別され(ステップS265)、リッチ方向であれば図16のI1が演算され(ステップS266)、リーン方向であればI2が演算される(ステップS268)。その後、積分演算の回数が増加される(ステップS267)。この積分回数は#1気筒の補正係数演算に用いる(ステップS277)。
【0102】
このようにして基準気筒#1のO2フィードバック制御におけるP1、P2,I1,I2,積分回数及び反転位置の補正係数から算出した代表値に基づいて、図19のステップS231において、全気筒#1〜#6の補正係数が演算される。 このようにして全気筒の補正係数が計算されたなら、ステップS232において、全気筒について、前述の燃料噴射時間TINJ中の(TINJB+TL)×Cを計算する。
【0103】
図24は、本発明の実施例に係る学習制御方法の説明図である。図24のリーンセット領域は所定のスロットル開度範囲およびエンジン回転数範囲内の領域である。本実施例の学習制御を行う条件の1つは、このリーンセット領域内において、スロットル開度の変化ΔTHθが所定の判定値より小さいことおよびエンジン回転数の変化Δrpmが所定の判定値より小さいこと、およびこのようにスロットル開度およびエンジン回転数の変化が小さい状態が所定時間以上継続することである。このような条件を含み前述の条件1および条件2の失火制御およびノック制御に関する条件に適合した場合に、学習制御が行われ学習補正係数が演算される。
【0104】
本実施例における学習補正係数の演算は以下のように行われる。
【0105】
O2フィードバック制御がスタートして最初のリッチからリーンの反転位置の補正係数γ0’を除き、リッチからリーンへの4つの反転位置の補正係数γ1、γ3、γ5、γ7およびリーンからリッチへの4つの反転位置の補正係数γ0、γ2、γ4、γ6をメモリに格納する。演算時には格納されたこれらの8つのデータを読み出しこれに基づき、以下の学習補正係数▲1▼〜▲4▼をまず算出する。
【0106】
学習補正係数▲1▼=(γ1+γ0)/2
学習補正係数▲2▼=(γ3+γ2)/2
学習補正係数▲3▼=(γ5+γ4)/2
学習補正係数▲4▼=(γ7+γ6)/2
次にこれらの学習補正係数▲1▼〜▲4▼の平均をとってこれを学習補正係数平均値とする。即ち、
学習補正係数平均値=(学習補正係数▲1▼+▲2▼+▲3▼+▲4▼)/4
とする。
【0107】
さらにこの学習補正係数平均値より学習マップの更新値を計算により求める。このような学習マップの更新値は、上記8つの反転位置のエンジン回転数およびスロットル開度のそれぞれの平均値を座標とするマップ上の位置に学習値として書込まれる。即ち、エンジン回転数NE(rpm)およびスロットル開度THθ(V)について、
NE(rpm)=(REVMAX0+REVMAX1+REVMAX2+REVMAX3+REVMIN0+REVMIN1+REVMIN2+REVMIN3)/8
THθ(V)=(THθMAX0+THθMAX1+THθMAX2+THθMAX3+THθMIN0+THθMIN1+THθMIN2+THθMIN3)/8
を算出し、この値と学習マップの軸のデータと比較し、最も近い軸データのマップ上の座標に上記学習値を書込む。
【0108】
このように学習値が更新された学習マップを用いて、学習補正噴射時間を求め、さらに燃料噴射時間TINJを前述のように(1)式から算出する。
【0109】
TINJ=TINJB×TINJC+(TINJB+TL)×C+TL+TINV (1)
(TINJ:補正係数を付加した燃料噴射時間、TINJB:基本噴射時間、TINJC:噴射補正係数、(TINJB+TL)×C:O2フィードバック制御による補正量、TL:学習補正噴射時間(マップ値)、C:O2フィードバック制御の補正係数、TINV:無効噴射時間)
ここで、学習補正噴射時間TLは、前述のように、学習補正係数▲1▼〜▲4▼の平均を求め、さらにそれから学習補正量平均値に変換し、これを前回のマップ値に加えることにより学習値を更新する。即ち、
TL(更新値)=TL+学習補正量平均値
である。ここで学習補正量平均値=(TINJB+TL)×(学習補正係数平均値)である。
【0110】
以下図25〜図30を参照して、本発明の学習制御方法についてさらに説明する。
【0111】
図25は、本発明の実施例に係るO2フィードバック制御における学習制御のメインルーチンでのフローチャートである。このフローは、前述の図18のフローチャートの一部に対応するものであり、ステップS3001、3002、3003はそれぞれ、図18のステップS3193、3194、3195に対応する。即ち、ステップS3001において、O2フィードバック制御領域内でのリーンセット領域(学習領域)の状態かどうかが判別される。学習領域であれば、ステップS3002において、学習噴射時間および学習マップの演算を行う。その後、学習マップの更新条件になったならば、学習マップの書込みを行う(ステップS3003)。
【0112】
図26は、上記ステップS3001のO2フィードバック制御での学習制御実行判定の詳細フローチャートである。
【0113】
まず学習制御を行う前提となるO2フィードバック制御を行うフラグがセットされているかどうかを判定する(ステップS3004)。これは、O2フィードバック制御を行うための条件1、条件2の失火制御およびノック制御の各条件に適合しているかどうかを判定するものである。続いて、図24で説明したように、エンジン回転数がリーンセット領域に対応する所定の範囲内かどうかが判別される(ステップS3005)。ここでエンジン回転数が所定の範囲に入っていないときには、即ち学習領域から外れている場合には、学習マップの更新許可フラグをセットする(ステップS3006)。これは、このルーチンに入る前にリーンセット領域で学習制御を行っていた場合に、その前回の学習値を学習マップに書込むことを許可するフラグである。エンジン回転数が学習領域の範囲内であれば、学習値の更新を許可することなく、次のステップS3007に進む。ここでエンジン回転数の変動が所定の範囲内かどうかが判別される。回転変動が所定値を越えて大きいときには状態が不安定となるためリーンセットは行わない。エンジン回転数の変動が小さく所定の範囲内であれば、次にステップS3008でその状態が所定時間以上継続しているかどうかが判別される。リーンセットを行うためには状態が安定して継続していることが必要だからである。
【0114】
このようにエンジン回転数の条件を判別後、次にスロットル開度の条件を判別する。まず、スロットル開度がリーンセット領域に対応する所定の範囲内かどうかが判別される(ステップS3009)。ここでスロットル開度が所定の範囲に入っていないときには、即ち学習領域から外れている場合には、学習マップの更新許可フラグをセットする(ステップS3010)。これは、このルーチンに入る前にリーンセット領域で学習制御を行っていた場合に、その前回の学習値を学習マップに書込むことを許可するフラグである。スロットル開度が学習領域の範囲内であれば、学習値の更新を許可することなく、次のステップS3011に進む。ここでスロットル開度の変動が所定の範囲内かどうかが判別される。変動が所定値を越えて大きいときには状態が不安定となるためリーンセットは行わない。スロットル開度の変動が小さく所定の範囲内であれば、次にステップS3012でその状態が所定時間以上継続しているかどうかが判別される。リーンセットを行うためには状態が安定して継続していることが必要だからである。
【0115】
スロットル開度の変動が小さいまま一定時間以上継続していれば、学習値更新の不許可のフラグをセットするとともに(ステップS3014)、学習制御の許可フラグをセットする(ステップS3015)。即ち、O2フィードバック制御条件の判別(ステップS3004)、エンジン回転数条件の判別(ステップS3005、3007、3008)およびスロットル開度条件の判別(ステップS3009、3011、3012)の全てが条件適合(YES)の場合に、所定のリーンセット領域内に入っているとして学習制御を行う(ステップS3015)。この場合、この学習制御領域内では学習マップの更新は行わない(ステップS3014)。
【0116】
一方、前記O2フィードバック制御条件、エンジン回転数条件およびスロットル開度条件のいづれかが不適合(NO)であれば、所定のリーンセット領域外であるため、学習制御の禁止フラグをセットし(ステップS3013)、学習制御は行わない。この場合、リーンセット領域(学習制御領域)に入っているときに演算した学習値の更新を許可する。
【0117】
図27は、前述の図25のフローにおける学習噴射時間計算および学習マップ演算(ステップS3002)の詳細フローチャートである。まず、学習制御が許可状態かどうかを判別する(ステップS3016)。これは前記図26のステップS3015でセットした学習許可フラグの有無により判別する。許可フラグが立っていなければ、学習制御を行わないため、学習補正値をゼロにする(ステップS3017)。即ち、前述の式(1)において、学習補正値TL=0とする。
【0118】
一方、学習許可のフラグが立っていれば、前述の式(1)において、(TINJB+TL)×C=0とする(ステップS3018)。即ち、O2フィードバック制御による補正を行わない。この場合、学習制御による補正値TLは、学習マップから求めた補間値とする。
【0119】
続いて、学習噴射時間を計算し(ステップS3019)、学習マップ演算を行う(ステップS3020)。これらのステップのフローについては、以下に詳述する。
【0120】
図28は、上記ステップS3019の学習噴射時間計算のフローチャートである。まず、ステップS3021において、リッチからリーンまたはその逆への方向が反転したかどうかを判別する。これは、それぞれの方向反転位置での補正係数(図24のγ0〜γ7)のMAX側かMIN側かを判定するためのものである。リーンからリッチ側に方向が反転した状態(ステップS3021がNO)であれば、反転直前(反転位置)の補正係数γn-1(MIN側)を揮発性メモリに保管し(ステップS3029)、フラグを立てる。さらにこのときの反転直前のスロットル開度およびエンジン回転数データをメモリに保管する(ステップS3030)。この状態ではまだ学習値は演算されていないため、学習更新値は無の状態、即ち計算前の状態である(ステップS3031)。このとき、学習値計算済みのフラグをクリヤしてもよい。
【0121】
次に再びこのルーチンに入って、リッチからリーンに方向が反転してステップS3021がYESになると、前記補正係数γn-1(MIN側)のデータが保管されていることをフラグにより確認し(ステップS3022)、このリッチからリーンへの反転直前(反転位置)の補正係数γn(MAX側)を保管しフラグを立てる(ステップS3023)。続いて、この反転直前の補正係数γnの演算ベースとなったスロットル開度とエンジン回転数のデータを保管する(ステップS3024)。
【0122】
次に、ステップS3025で、保管した反転位置の補正係数データから平均補正係数(学習補正係数▲1▼〜▲4▼)(γn+γn-1)/2を演算する。さらに反転が8回終了した時点でこれに基づいて学習補正係数平均値を求め、これを新学習値として一時的にメモリに保管する(ステップS3027)。このとき、この新学習値の演算ベースとなったエンジン回転数の平均値およびスロットル開度をメモリから読み出しこれらの平均値を演算して、これも一時的にメモリに保管する。
【0123】
このようにして新学習値(学習更新値)が計算され、学習更新値が有の状態となり(ステップS3028)、ここで新学習値計算済のフラグを立てる。
【0124】
図29は、前述の図27のステップS3020の学習マップ演算のフローチャートである。まず、スロットル開度およびエンジン回転数のデータから、学習マップの縦横の各軸のデータに最も近い先頭アドレスをセットする(ステップS3032)。次に、スロットル開度およびエンジン回転数のそれぞれについて、マップのデータを補間して、3次元マップを補間する(ステップS3033)。次に、この補間した位置のマップデータを演算することにより、学習補正値を算出する(ステップS3034)。
【0125】
図30は、前述の図25のステップS3003の学習マップ書込みのフローチャートである。まず、新学習値の更新許可状態かどうかを判別する(ステップS3035)。これは、前述の図26におけるステップS3006または3010において、更新許可のフラグが立っているかどうかを判別するものである。次に、ステップS3036において、学習更新値があるかどうか、即ち学習更新値を計算済かどうかを判別する。これは、前述の図28におけるステップS3028での新学習値計算済のフラグにより判別する。次に、学習値演算に用いた8ヵ所の反転位置のスロットル開度平均値をメモリから読み出し、このデータに最も近い学習マップのスロットル軸の値をサーチする(ステップS3037)。このスロットル開度の平均値データは、前述の図28のフローのステップS3027で、メモリに保管されたデータである。次に、同様に、メモリからエンジン回転数平均値のデータを読み出し、これに最も近い学習マップのエンジン回転数軸の値をサーチする(ステップS3038)。次に、このようにサーチした学習マップの軸データから、学習マップ上の学習値書込みアドレスを計算し(ステップS3039)、このアドレス位置に前述のように演算した学習値(=TL(更新値))を書込む(ステップS3040)。
【0126】
このようにして、γ0〜γ7の8つの反転位置における補正係数とスロットル開度とエンジン回転数のデータを平均しそれぞれのメモリエリアに保管した後、これらのデータに基づいて、この学習領域を外れたときに、学習マップの所定の演算したアドレスに学習値を書込んで更新する。なお、学習マップには、初期値として、試験運転や実験等により求めた最適な噴射量補正データを予め記録しておき、最初に学習領域に入ったときには、この初期値に基づいて補正演算を行う。
【0127】
次に本発明による電子制御燃料噴射装置の学習制御装置を搭載する例えば船外機における、学習補正量の算出状況、さらに学習補正値の更新後のエンジン運転状況を以下に説明する。
【0128】
図31は、船舶用エンジンが工場から出荷後、始めて海上で使用され、学習補正量が算出されるまでの各種運転状態の変化を示す経過図である。
【0129】
エンジン始動後t1までの間は、スロットル開度が全閉状態にあり、アイドリング状態を経て、前進へクラッチが接続されて低速航行状態(いわゆるトローリング状態)とされる。時刻t11からゆっくりスロットル開度ThOが開かれ、それに連れて第1気筒噴射量第2〜第6噴射量がゆっくり増加される。その後スロットル開度ThOがO2フィードバック領域の低目の中開度に保持されると、図17に示すO2フィードバック制御が時刻t12よりスタートする。スロットル開度が所定スロットル開度ThO以下の運転領域においてはA/Fリーン運転がされるように基本噴射量そのものが少なめに設定してあり、O2フィードバック制御が開始されるまではリーン状態にある。この領域におけるO2フィードバック制御は、O2フィードバック係数をプラス側に変位した状態で実施される。O2フィードバック係数をプラス側に変位することにより噴射量が増加し、これに連れて第1気筒のA/F(空燃比)が変化し、O2センサ反応空燃比に近づく。O2センサの反応に応じてO2フィードバック係数をプラス側において変動させ、この結果として第1気筒のA/F(空燃比)はO2センサ反応空燃比の値を挟んで変動しつつも保持される。なお、第2〜第6気筒のA/F挙動も燃料噴射量が第1気筒と同一値を取るので、第1気筒のA/F(空燃比)の挙動と同様になる。また、各気筒の噴射量は時刻t12からt13の間、O2フィードバック係数の変化に併せて僅かに変動しているが、絶対量が小さいので変動は図示されていない。
【0130】
その後時刻t13においてスロットル弁が開けられるように動作され始めると、加速増量装置が動作して全気筒における噴射量が一時的に増加する。これに伴い各気筒のA/Fはリッチ側に振れる。スロットル開度ThOの増加とともに各気筒の噴射量が増加する。スロットル開度ThOがクルージング航行領域である20°〜30°(中負荷域)に到達し保持されても、さらに各気筒の噴射量は増加する。これによりエンジン回転数が増加し、途中時刻t4においてリーンセット領域すなわち学習制御領域に入る。この場合においては学習補正量が工場出荷時の0のままであり、第1気筒のみについてリーンセット制御が実施される。つまり、時刻t14後の短時間、一般的に第1気筒のO2フィードバック係数をプラス側に振った後、少しづつマイナス側に変化させる。これに伴い第1気筒の噴射量の増加割合が減少する。そして、予め工場出荷前に与えた仮の補正量だけO2フィードバック係数が変位した状態となる時刻t15から図24に示すO2フィードバック制御が第1気筒についてスタートする。時刻t16に到ると補正係数平均値が算出され、噴射量の学習補正量が算出される。学習補正量が算出された後直ちに、第2〜第6気筒の噴射量制御に反映させると急激に変化し、エンジン回転数が急激に急減速することとなり、円滑な運転ができなくなるが、本発明においては、第2〜第6について学習補正量の算出前の噴射状態を維持するので、急減速は発生しない。図中Qaは全気筒における加速増量を、q1の値が学習補正量となる。また11の値が学習補正量算出のための補正係数平均値となる。
【0131】
図31に示すように平均化された学習補正値は、学習制御域における運転中に更新されることはない。スロットル開度ThOを全開域までさらに開けるか、低負荷域まで絞ると、リーンセット領域から外れる。この時噴射量の学習補正量はメモリーに記録保持される。
【0132】
図32は、エンジンを一度停止し、再始動してクルージング領域までスロットル開度ThOを変化させる場合の各運転状態の変化を示す。t11’,t12’,t13’,t14’,t16’はそれぞれ図31のt11,t12,t13,t14,t16に相当する。但し、既にメモリーに学習補正係数が保持されており、時刻t14’後の短時間、一時的に第1気筒のO2フィードバック係数をプラス側に振った後、直ちに学習補正量に基づく第1気筒のO2フィードバック制御と、第2〜第6気筒の学習補正量を織込んだ燃料噴射制御(リーンセット領域運転)をそれぞれスタートさせる。これにより全気筒においてリーンセット領域運転が可能となり、低燃費・低大気汚染航行が可能となるのみでなく、第1気筒について学習補正量を織込んだ分O2フィードバック係数を0%と近い部分から変動させることとなり、図中Tの時間だけ収束時間が学習制御により短縮される。そして、t16’までに補正係数平均値が算出され、噴射量の学習補正量が算出されメモリーに記録保持される。この噴射量の学習補正量は、再度運転状態(スロットル開度ThO、エンジン回転数等)が変化し、リーンセット制御領域から一旦外れた後、再びリーンセット制御領域に入る場合のO2フィードバック制御において学習補正量に基づいた噴射を実施するに際して使用される。図中r1は、本学習制御運転中のエンジン回転数がこの範囲に入ることを示しており、リーンセット域を示している。もし万一学習制御運転が何らかの原因により中断されれば、エンジン回転数はこのリーンセット域から外れることとなる。また、スロットル開度を図31の場合と全く同じ操作をした時、エンジン回転数がリーンセット域に達した場合、第2〜第6気筒の噴射量は前回の学習値が反映されているので、エンジン回転数は図に示すように図31の挙動とは異なり、全開のスロットル開度に対してエンジン回転数は低めの値となる。
【0133】
なお、工場出荷時において仮の学習補正量をメモリーに保持させる場合において、図31に示す制御を実施することなく図32に示す制御を実施するようにしても良い。この場合でも、リーンセット制御領域に入った後算出される噴射量の学習補正量を使用するのは、次に再びリーンセット制御領域に入った時に使用するようにする。これにより、学習制御によるエンジン回転数の急激な変化が防止される。さらに、工場出荷後直ちにクルージング航行状態に入ってもリーンセット領域運転が可能となり、燃費の節約が可能となる。
【0134】
【発明の効果】
以上説明したように、本発明では、O2フィードバック制御を行う場合に、所定のリーンセット領域で学習制御を行って前回の学習補正量に基づいて噴射量制御を行うとともに、この学習値の更新を一旦リーンセット領域(学習領域)から外れたときに行っており、リーンセット領域におけるエンジン回転変動が軽減されるとともに、経時変化による最適噴射量にズレを生じた場合、O2フィードバック制御収束までの噴射量変化によるエンジン回転変動が軽減され安定したエンジン駆動が達成される。これにより、特に船舶用エンジンにおける、クルージング運転でのエンジン回転の安定性が向上し、燃費の向上およびエンジン動作の信頼性が高められる。
【図面の簡単な説明】
【図1】 本発明が適用される2機掛け船外機の外観図である。
【図2】 本発明の船外機の燃料系統を含む構成図である。
【図3】 本発明が適用される船外機のスロットルレバーの構成説明図である。
【図4】 2機掛け船外機の駆動制御系の構成説明図である。
【図5】 図3の制御系の制御ブロック図である。
【図6】 本発明が適用される内燃機関の制御シーケンスにおけるメインルーチンのフローチャートである。
【図7】 図5のフローチャートの続き部分である。
【図8】 図5のフローチャートにおけるタイマー割込みルーチンのフローチャートである。
【図9】 図5のフローチャートにおけるTDC割込みルーチンのフローチャートである。
【図10】 点火パルスのセットルーチンのフローチャートである。
【図11】 タイマーオーバーフロー割込みルーチンのフローチャートである。
【図12】 バンクごとのタイマー割込みルーチンのフローチャートである。
【図13】 本発明の実施例に係るマップ領域の遷移図である。
【図14】 O2センサの出力電圧を示す図である。
【図15】 本発明の実施例に係るO2フィードバック制御方法の補正係数の変化の説明図である。
【図16】 本発明の実施例に係るマップテーブルの説明図である。
【図17】 本発明の実施例に係るO2フィードバック制御の動作説明図である。
【図18】 図7のフローチャートの補正係数演算ステップS25の詳細フローを示す図である。
【図19】 図18のO2フィードバック制御の詳細フローチャートである。
【図20】 図19のフローにおける制御周期計算ステップの詳細フローチャートである。
【図21】 図19のフローにおけるO2フィードバック制御の状態判定ステップの詳細フローチャートである。
【図22】 図19のフローにおける比例定数計算ステップの詳細フローチャートである。
【図23】 図19のフローにおける積分定数計算ステップの詳細フローチャートである。
【図24】 本発明の学習制御の演算データの説明図である。
【図25】 本発明の実施例に係るメインルーチンにおける学習制御のフローチャートである。
【図26】 図25のステップS3001の詳細フローチャートである。
【図27】 図25のステップS3002の詳細フローチャートである。
【図28】 図27のステップS3019の詳細フローチャートである。
【図29】 図27のステップS3020の詳細フローチャートである。
【図30】 図25のステップS3003の詳細フローチャートである。
【図31】 学習補正量が算出されるまでの各種運転状態の変化を示す経過図である。
【図32】 学習補正量算出後トローリング状態から再び学習制御領域に入る時の運転状態の変化を示す経過図である。
【符号の説明】
25:スロットル弁、26:インジェクタ、201:気筒判別手段、203:エンジン回転数算出手段、205:トリム角度読み込み手段、210:基本点火時期算出手段、211:基本燃料噴射量算出手段、214:点火時期補正手段、215:燃料噴射量補正手段、218:点火出力手段、219:燃料出力手段。
Claims (5)
- 運転状態に対応して所定の制御量に基づき燃料を噴射するとともに、検知された排気ガス中の酸素濃度に基づいて前記制御量を補正する酸素濃度フィードバック運転制御領域内に、所定のリーンセット領域を有し、該リーンセット領域内においては前回のリーンセット領域内における運転時のデータに基づいて更新された学習マップに基づいて燃料噴射制御を行う学習制御によりリーンセット領域運転が実施される電子制御燃料噴射装置の学習制御方法であって、前記リーンセット領域運転中は、前記酸素濃度に基づき補正した前記制御量の算出を実施し、該補正した制御量の算出値により学習マップを更新することなく、該補正した制御量の算出値を一時的にメモリに格納し、前記リーンセット領域運転状態から外れると直ちに前記メモリに格納された最新データに基づいて前記学習マップを更新するようにしたことを特徴とする電子制御燃料噴射装置の学習制御方法。
- 所定条件の酸素濃度フィードバック運転制御領域内で、所定のリーンセット領域運転状態になったときに、前回のリーンセット領域運転状態のときのデータに基づいて更新した学習マップに基づいて燃料噴射制御を行う電子制御燃料噴射装置の学習制御方法であって、前記リーンセット領域運転中は、制御量を演算するとともに学習マップを更新することなくこの演算結果を一時的にメモリに格納し、前記リーンセット領域運転状態から外れると直ちに前記メモリに格納された最新データに基づいて前記学習マップを更新することを特徴とする電子制御燃料噴射装置の学習制御方法。
- 前記リーンセット領域運転状態の判断は、スロットル開度またはエンジン回転数に基づいて行うことを特徴とする請求項1ないし2に記載の電子制御燃料噴射装置の学習制御方法。
- 前記学習マップに書込むべき学習値は、基本噴射量に対する補正係数であって、酸素濃度フィードバック制御が収束した後、リーンからリッチ、またはリッチからリーンへと制御が切換わったときの補正係数を8個取込み、4つの各ペアの最大値および最小値の中央値を平均した値であることを特徴とする請求項1ないし2に記載の電子制御燃料噴射装置の学習制御方法。
- 酸素濃度フィードバック制御による燃料噴射の補正量を演算するための補正マップと、所定のリーンセット領域における学習制御を行うための学習マップと、前記リーンセット領域において学習制御条件を判断する判別手段と、酸素濃度フィードバック制御が収束した後、リーンからリッチ、またはリッチからリーンへと制御が切換わったときの所定数の補正係数を取込み、これらの平均値を演算して学習値とするための演算手段と、前記演算手段により求めた学習値を学習マップに書込む前に、一時的にその値を保存するための記憶手段と、リーンセット領域内では酸素濃度フィードバック制御は行わずオープン制御である学習制御を行い所定のプログラムに従って燃料噴射制御を行う制御手段とを具備し、前記プログラムは、酸素濃度フィードバック制御の条件において、一旦前記リーンセット領域に入ったときに、前記学習値を演算してこれを一時的に前記記憶手段に格納し、前記リーンセット領域から外れると直ちに、格納した学習値を読み出してこれを学習マップに書込んで学習マップを更新するように構成したことを特徴とする電子制御燃料噴射装置の学習制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00405496A JP3939777B2 (ja) | 1996-01-12 | 1996-01-12 | 電子制御燃料噴射装置の学習制御方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP00405496A JP3939777B2 (ja) | 1996-01-12 | 1996-01-12 | 電子制御燃料噴射装置の学習制御方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09195824A JPH09195824A (ja) | 1997-07-29 |
JP3939777B2 true JP3939777B2 (ja) | 2007-07-04 |
Family
ID=11574178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP00405496A Expired - Fee Related JP3939777B2 (ja) | 1996-01-12 | 1996-01-12 | 電子制御燃料噴射装置の学習制御方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3939777B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11159371A (ja) * | 1997-11-25 | 1999-06-15 | Sanshin Ind Co Ltd | 直接筒内噴射式エンジン |
DE102006038281B4 (de) * | 2006-08-16 | 2020-03-26 | Andreas Stihl Ag & Co. Kg | Verfahren zur Bestimmung der Kurbelwellenlage einer umlaufenden Kurbelwelle eines Verbrennungsmotors |
JP5116871B1 (ja) * | 2011-10-17 | 2013-01-09 | 三菱電機株式会社 | エンジンの記憶制御装置およびエンジンの記憶制御方法 |
JP5821676B2 (ja) * | 2012-02-10 | 2015-11-24 | トヨタ自動車株式会社 | 内燃機関の制御装置 |
CN113404603B (zh) * | 2020-03-16 | 2023-06-27 | 日立安斯泰莫汽车系统(苏州)有限公司 | 车辆发动机控制装置及车辆发动机控制方法 |
-
1996
- 1996-01-12 JP JP00405496A patent/JP3939777B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09195824A (ja) | 1997-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3283405B2 (ja) | エンジン駆動式船舶推進機のシフト制御方法および装置 | |
JP3687923B2 (ja) | 酸素濃度センサを用いた内燃機関の制御方法及び装置及びその内燃機関 | |
JP3591916B2 (ja) | 内燃機関の制御方法および装置 | |
JPH0988661A (ja) | 筒内噴射エンジンの制御装置 | |
JP5772634B2 (ja) | 多気筒内燃機関の制御装置 | |
JPH0960543A (ja) | エンジン制御装置 | |
US6032653A (en) | Engine control system and method | |
US5813390A (en) | Engine feedback control embodying learning | |
JP3745406B2 (ja) | 内燃機関の気筒休止制御方法及び装置及びその内燃機関 | |
JP3939777B2 (ja) | 電子制御燃料噴射装置の学習制御方法および装置 | |
JPH0932605A (ja) | 多気筒内燃機関の始動時制御方法および装置 | |
JPH08270478A (ja) | 酸素濃度センサを用いた内燃機関の制御方法及び装置及びその内燃機関 | |
US5762053A (en) | Engine feedback control embodying learning | |
JP3712280B2 (ja) | 内燃機関の学習制御方法及びその内燃機関 | |
JPH0979125A (ja) | 2サイクル燃料噴射式内燃機関の逆転防止方法および装置 | |
JP3618145B2 (ja) | 内燃機関のエンジン停止制御方法および装置 | |
JP3410867B2 (ja) | 内燃機関の制御方法および装置 | |
JP3839503B2 (ja) | 内燃機関の始動後制御方法 | |
JP3882055B2 (ja) | 内燃機関の空燃比制御方法 | |
JP3744961B2 (ja) | 内燃機関の気筒休止制御方法及び装置及びその内燃機関 | |
JPH0942013A (ja) | 船外機の燃料噴射式内燃機関の制御方法 | |
JPH08284726A (ja) | 内燃機関の気筒休止制御方法及び装置及びその内燃機関 | |
JPH0953500A (ja) | 電子制御内燃機関の信号フェール時制御方法及び装置 | |
JPH094488A (ja) | 内燃機関の急加減速制御方法および装置 | |
JPH08270479A (ja) | 酸素濃度センサを用いた内燃機関の制御方法及び装置及びその内燃機関 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050422 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051129 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060130 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20060221 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060905 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061106 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070329 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |