以下、図面を参照して本発明の一実施形態について詳細に説明する。本発明は、2以上の気筒を有する多気筒エンジンに広く適用することができる。本実施形態では、3気筒エンジンに本発明を適用する。
図1において、1は3気筒エンジンである。エンジン1は、第1気筒#1ないし第3気筒#3を有するエンジン本体1aと、エンジン本体1aに設けられた第1気筒#1ないし第3気筒#3の吸気ポートに一端が接続された第1ないし第3の吸気マニホールド1c1ないし1c3と、第1気筒#1ないし第3気筒#3の排気ポートに一端が接続された第1ないし第3の排気マニホールド1d1ないし1d3とを有している。第1ないし第3の排気マニホールド1d1ないし1d3の他端は集合させられて、触媒や消音器を備えた排気装置1eを介して排気管1fに接続されている。
第1ないし第3の吸気マニホールド1c1ないし1c3の他端は、サージタンク1gに接続されている。サージタンク1g にはまた第1気筒#1ないし第3気筒#3に対して共通に設けられた吸気管1hの一端が接続されている。吸気管1hの他端は、エアフィルタ1iを介して空気取り入れ口1jに接続されている。吸気管1hには、第1ないし第3気筒に対して共通に設けられたスロットルバルブ1kが取り付けられている。空気取り入れ口1j から取り入れられた空気は、エアフィルタ1iを通して吸気管1hに導入される。吸気管1hに導入された空気のうち、スロットルバルブ1kを通過した空気がサージタンク1gを介して第1ないし第3の吸気マニホールド1c1ないし1c3に供給される。第1ないし第3の吸気マニホールド1c1ないし1c3には、これらの吸気マニホールド内に燃料を噴射する第1ないし第3のインジェクタ1m1ないし1m3が取り付けられている。
第1乃至第3のインジェクタ1m1ないし1m3には、図示しない燃料タンクから燃料ポンプを介して燃料が与えられている。インジェクタ1m1ないし1m3から噴射される燃料の量は、インジェクタ1m1ないし1m3に与えられている燃料の圧力と、インジェクタ1m1ないし1m3のバルブが開く時間とにより決まる。インジェクタ1m1ないし1m3に与えられる燃料の圧力は、圧力調整器により一定に調整されているため、インジェクタ1m1ないし1m3からの燃料噴射量は、インジェクタ1m1ないし1m3の弁を開く時間により管理される。
吸気管1hには、スロットルバルブ1kの開度を検出するスロットルセンサ2が取り付けられている。サージタンク1gには、サージタンク1g内の圧力を吸気圧として、該吸気圧を絶対圧として検出する吸気圧センサ3が取り付けられている。吸入空気の密度を補正するために必要な吸気温度の情報を得るため、サージタンク1g内の空気の温度を検出する温度センサ6が設けられている。
1nはエンジン本体1aに設けられたクランク軸で、このクランク軸により、磁石式交流発電機Gが駆動される。発電機Gは、クランク軸1nに取り付けられたロータ4と、ロータ4の内側に配置されたステータ(図示せず。)とからなっている。ロータ4は、ロータヨークを構成するカップ状のフライホイール4aと、該フライホイールの内周に取り付けられた永久磁石とからなっている。発電機Gのステータは、ロータ4の磁極に対向する磁極部を有するステータ鉄心と、この鉄心に巻回された電機子コイルとを備えていて、エンジンの回転に伴って、電機子コイルから交流電圧を出力する。
ロータヨークを構成しているフライホイール4aの外周にはリラクタ4bが設けられ、リラクタ4bに回転センサ5の磁極が対向させられている。リラクタ4bは、ロータ4の外周面に形成された突起や凹部からなっていて、ロータ4が回転する過程で回転センサ5の磁極部の位置を通過する際に、回転センサ5が検出する磁束に変化を生じさせる。
回転センサ5は、ロータ4のリラクタ4bが形成された領域に空隙を介して対向させられる磁極部と、該磁極部とロータのリラクタ4bが形成された領域とを含む磁路に磁束を流す磁石と、ロータが回転する過程でリラクタが前記磁路を流れる磁束に変化を生じさせる毎に正極性又は負極性の信号を発生する信号発生部とを備えている。回転センサ5の信号発生部は、クランク軸1nの回転に同期して、正極性の信号と負極性の信号とを、クランク軸の回転位置の情報や回転速度の情報を含む信号として発生する。
本実施形態では、センサ類としてスロットルセンサ2と吸気圧センサ3と温度センサ6とが設けられているが、エンジンを制御する際に用いる制御条件に応じて更に他のセンサがエンジンが取り付けられることがある。
多気筒エンジン1を制御するため、電子制御ユニット(ECU)10が設けられている。電子制御ユニット10は、CPU11、入力インターフェース12、出力インターフェース13、ROM14、RAM15,タイマー16等を有するマイクロコンピュータMCと、エンジンが回転しているときに発電機Gが出力する交流電圧をマイクロコンピュータMCの電源端子に与えるのに適した直流電圧に変換する電源回路17と、回転センサ5が出力する信号をパルス波形に変換する波形整形回路18と、インジェクタ1m1~1m3に駆動電圧を与えるインジェクタ駆動回路19と、エンジン1の第1気筒ないし第3気筒のそれぞれの点火時期に第1気筒ないし第3気筒の点火プラグに点火用の高電圧を与える点火回路20とを備えている。
電源回路17は、発電機Gが出力する交流電圧を整流する整流回路と、該整流回路から出力される直流電圧を調整する電圧調整回路とを備えていて、発電機Gが出力する交流電圧をマイクロコンピュータMCの電源電圧として適した電圧値(例えば5V)を有する直流電圧に変換する。電源回路17の出力電圧は、マイクロコンピュータMCの電源端子21に与えられている。
波形整形回路18は、回転センサ5が出力する正負の電圧信号を、CPU11が認識し得る波形の信号に変換する。波形整形回路18から出力される信号は、エンジンの回転情報を含む信号として、マイクロコンピュータMCの入力インターフェース12を通してCPU11に入力されている。CPU11にはまた、スロットルセンサ2の出力信号、吸気圧センサ3の出力信号及び温度センサ6の出力信号が入力インターフェース12を通して入力されている。
マイクロコンピュータMCは、例えば、回転センサ5から波形整形回路18を介して与えられるパルス信号の発生間隔から検出したエンジンの回転速度の情報と、吸気圧センサ3から与えられる吸気圧の情報とからエンジンに吸入される空気量を推定する。また吸気圧センサ3から与えられる吸気圧の情報から大気圧を推定して、推定した吸入空気量と大気圧とに対して、エンジンに与える混合気の空燃比を所定の範囲に保つためにインジェクタから噴射させる必要がある燃料の量を演算する。マイクロコンピュータMCは、第1ないし第3のインジェクタからそれぞれ燃料を噴射するタイミングを検出した時に、第1ないし第3のインジェクタから燃料を噴射させることを指令する噴射指令信号をインジェクタ駆動回路19に与える。
インジェクタ駆動回路19は、第1ないし第3のインジェクタからそれぞれ燃料を噴射させることを指令する噴射指令信号がマイクロコンピュータから与えられたときに、燃料噴射量を所定の値にするために必要なパルス幅を有するパルス波形の駆動信号を、第1ないし第3のインジェクタ1m1ないし1m3に与える。第1ないし第3のインジェクタ1m1ないし1m3は、その駆動コイルに閾値以上のレベルの駆動信号が与えられている間それぞれのバルブを開いてエンジンの吸気マニホールド1c1ないし1c3内に燃料を噴射する。
マイクロコンピュータMCはまた、回転センサ5から波形整形回路18を介して与えられるパルス信号の発生間隔からエンジンの回転速度を検出して、検出した回転速度に対して第1気筒ないし第3気筒の点火時期を演算する。マイクロコンピュータは、点火時期の計測を開始する位置である基準クランク角位置の情報が回転センサ5から与えられた時に、演算された第1気筒ないし第3気筒の点火時期の計測を開始し、それぞれの点火時期の計測が完了したときに、第1気筒ないし第3気筒で点火を行わせることを指令する点火指令信号を点火回路20に与える。
点火回路20は、マイクロコンピュータが第1気筒ないし第3気筒のそれぞれの点火時期に点火指令信号を発生した時に、エンジンの第1気筒ないし第3気筒に対してそれぞれ設けられた点火プラグに二次コイルが接続された第1気筒ないし第3気筒用の点火コイルの一次電流を制御して、第1気筒ないし第3気筒用の点火コイルの二次側に点火用の高電圧を誘起させる。第1気筒ないし第3気筒用の点火コイルの二次側に誘起した高電圧が第1気筒ないし第3気筒の点火プラグに与えられることにより、それぞれの点火プラグで火花放電が生じて第1気筒ないし第3気筒で燃焼が行われる。
本実施形態では、吸気圧センサ3が検出するサージタンク1g内の吸気圧と、回転センサ5から波形整形回路18を通して与えられるパルス信号の発生間隔から検出したエンジンの回転速度とから大気圧の推定値を検出して、検出した大気圧の推定値を燃料噴射量に反映させる。そのため、本実施形態では、スロットルセンサ2と吸気圧センサ3とを設けるとともに、吸気圧センサ3が検出する吸気圧の情報と、回転センサ5から与えられる回転速度の情報とに基づいて吸気圧から大気圧を推定するための処理を電子制御ユニット10に行わせることにより、大気圧検出装置を構成する。
ここで、エンジンが始動する過程で観察されるサージタンク1g内の吸気圧の変化の一例と、サージタンク内の吸気圧とエンジンの回転速度とから大気圧を検出する大気圧検出装置を構成するために電子制御ユニット10のマイクロコンピュータMCに行わせる処理について説明する。
図2は、3気筒エンジン1が始動する過程で観察されるサージタンク内の吸気圧Piの変化の一例と、エンジンの回転速度Veの変化の一例とを時間tを横軸にとって模式的に示したものである。本実施形態では、リコイルスタータやキックスタータのような、人力により操作される始動装置によりエンジンの始動操作が行われる。エンジンが始動する過程では、スロットルバルブの開度が設定値以下に保たれている。
図2において、#1SUC,#2SUC及び#3SUCはそれぞれエンジンの第1気筒ないし第3気筒で吸気行程が行われる期間を示している。この例では第1気筒、第3気筒、第2気筒の順に点火が行われる。図2において、t1はエンジンの始動操作の起点のタイミングを示している。このタイミングでは、サージタンク内の吸気圧Piがほぼ大気圧Atpに等しくなっている。第1気筒#1の吸気バルブが開いて第1の気筒での吸気行程が開始されると、サージタンク内の圧力は低下していく。
図2においてt2は、エンジンの始動操作が行われて発電機Gの出力電圧が上昇したことにより、電子制御ユニット10の電源が確立して、CPU11が起動した時刻を示している。第1気筒の吸気バルブが開いているため、時刻t2におけるサージタンク1g内の圧力Piは、大気圧Atpよりも僅かに低くなっている。CPU11は、時刻t2で起動した直後に吸気圧センサが検出している圧力を吸気圧の最大値の初期値として読み込んでRAMに記憶する。CPU11はまた、読み込んだ吸気圧の最大値の初期値に基づいて大気圧の推定値の初期値を設定する。この大気圧の推定値の初期値は、吸気圧の最大値の初期値に等しくても良く、吸気圧の最大値の初期値を予め定めた補正量だけ補正することにより求めた値でも良い。
図2において、t3は、第1気筒の吸気行程が終了して第1気筒の吸気バルブが閉じたタイミングを示し、t4は、エンジンの何れかの気筒(この例では第1気筒)で初爆が行われてエンジンが起動したタイミングを示している。時刻t4でエンジンが起動した後、第3気筒の吸気バルブが開くまでの間はサージタンク内の圧力が上昇していく。時刻t5で第3気筒の吸気バルブが開くと、サージタンク内の圧力は下降していく。時刻t6で第3気筒の吸気バルブが閉じるとサージタンク内の圧力が上昇していき、時刻t7で第2気筒の吸気バルブが開くと、サージタンク内の圧力は再び下降していく。時刻t8で第2気筒の吸気バルブが閉じるとサージタンク内の圧力は上昇していく。
上記のように、サージタンク1g内の圧力は、何れかの気筒の吸気バルブが開かれたときに低下していき、その吸気バルブが閉じられると上昇していく。エンジンの回転速度の上昇に伴って、吸気行程にある気筒内の圧力がサージタンク内の圧力に影響を与える頻度が高くなっていくため、スロットル開度が同一である場合、サージタンク内の吸気圧は、エンジンの回転速度の上昇に伴って脈動しながら低下していく。
このように、エンジンが始動する過程では、サージタンク内の圧力が大きく変動するため、サージタンク内の吸気圧を大気圧に補正するために用いる補正値を適確に決定することが困難であり、サージタンク内の圧力に基づいて大気圧を検出することが困難である。そこで本発明においては、エンジンが始動する過程で検出される吸気圧の最大値に着目して、この吸気圧の最大値を補正変数を用いて補正することにより大気圧の推定値を求める。
そのため、図1に示された電子制御ユニット10は、電源回路17から与えられる電源が確立して動作を開始した際に、先ず吸気圧センサ3が検出しているサージタンク1g内の圧力を吸気圧の最大値の初期値Atp_temp_iとして設定するとともに、多気筒エンジンの回転速度の参照値の初期値を設定する初期化処理を行う。電子制御ユニット10はまた、吸気圧の最大値の初期値Atp_temp_iに基づいて大気圧の推定値の初期値を設定する。
電子制御ユニット10は、初期化処理を行った後、エンジンが始動する過程でスロットルセンサにより検出されるスロットルバルブの開度が設定値未満であるか否かを判定するスロットル開度判定処理を行う。エンジンが始動する過程では、スロットルバルブの開度が設定値未満に保たれるため、この判定処理において、スロットルバルブの開度が設定値未満であると判定される。スロットルバルブの開度が設定値未満であると判定されると、電子制御ユニット10は、多気筒エンジンの回転速度と吸気圧センサが検出している吸気圧とを微小な時間間隔で検出して、新たに検出された吸気圧が既に検出されている吸気圧の最大値(吸気圧の初期値の最大値を含む)よりも高いか否かを判定し、新たに検出された吸気圧が吸気圧の最大値よりも高いと判定されたときに、新たに検出された吸気圧で吸気圧の最大値を更新するとともに、新たに検出された多気筒エンジンの回転速度で該多気筒エンジンの回転速度の参照値を更新する更新処理を行う。
電子制御ユニット10は、上記の更新処理において更新された吸気圧の最大値を大気圧の推定値に補正するために用いる補正変数を、更新された多気筒エンジンの回転速度の参照値と更新された吸気圧の最大値とに対してマップ演算する補正変数演算処理と、この補正変数演算処理により演算された補正変数を用いて更新された吸気圧の最大値を補正することにより大気圧の推定値を求める大気圧推定値演算処理とを行う。
エンジンの始動が完了すると、スロットル開度判定処理において、スロットルバルブの開度が設定値以上であると判定されるようになる。スロットルバルブの開度が設定値以上であると判定された場合、電子制御ユニット10は、吸気圧の最大値及び回転速度の参照値を更新して更新された吸気圧の最大値及び回転速度の参照値に対してマップ演算した補正変数を用いて吸気圧の最大値を補正する方法以外の他の方法により大気圧の推定値を求める。
更に詳細に説明すると、図1に示された電子制御ユニット10は、図2の時刻t2で電源回路17から与えられる電源が確立してマイクロコンピュータMCが動作を開始した際に、先ず、吸気圧センサ2が検出している圧力を吸気圧の最大値の初期値Atp_temp_iとして設定するとともに、多気筒エンジン1の回転速度の参照値の初期値を設定する初期化処理を行う。回転速度の参照値は、吸気圧の最大値を補正して大気圧の推定値を求める際に用いる補正変数をマップ演算するために、補正変数演算用マップを参照する際に用いる回転速度の値である。
補正変数演算用マップは、吸気圧の最大値と、この吸気圧の最大値が検出された際の多気筒エンジンの回転速度である「回転速度の参照値」と、補正変数との間の関係を与える三次元マップである。吸気圧の最大値が検出される毎に、検出された吸気圧の最大値と回転速度の参照値とに対してこのマップを参照して、マップから読み出した補正変数に補間演算を施すことにより、吸気圧の最大値を大気圧に補正するために用いる補正変数を演算する。回転速度の参照値の初期値は0であってもよく、予め設定した回転速度であってもよく、電子制御ユニット10が動作を開始した直後に検出したエンジンの回転速度であってもよい。
電子制御ユニット10は、時刻t2で初期化処理を行った後、多気筒エンジンの回転速度と吸気圧センサが検出している吸気圧とを微小な時間間隔で検出して、回転速度及び吸気圧が新たに検出される毎に、新たに検出された吸気圧が既に検出されている吸気圧の最大値よりも高いか否かを判定する。この判定により、新たに検出された吸気圧が既に検出されている吸気圧の最大値よりも高いと判定されたときに、新たに検出された吸気圧で吸気圧の最大値を更新するとともに、新たに検出された多気筒エンジンの回転速度で該多気筒エンジンの回転速度の参照値を更新する更新処理を行う。電子制御ユニット10は、この更新処理を行った後、更新された吸気圧の最大値と多気筒エンジンの回転速度の参照値とに対して補正変数をマップ演算する補正変数演算処理を行い、この補正変数演算処理により演算された補正変数を用いて前記吸気圧の最大値を補正することにより大気圧の推定値を求める大気圧推定値演算処理を行う。
図2に示された例では、時刻t5において検出された吸気圧Atp_tempが、吸気圧の最大値の初期値Atp_tempiを超えているため、時刻t5において吸気圧の最大値の更新が行われる。時刻t5よりも後の時刻においては、吸気圧が時刻t5で検出された最大値 Atp_tempを超えることがなかったため、時刻t5よりも後の時刻では、吸気圧の最大値の更新は行われていない。従って、図2に示された例では、時刻t5において検出された吸気圧の最大値Atp_tempと、この最大値が検出された時のエンジンの回転速度の参照値Rev_tempとに対して吸気圧の最大値Atp_tempを大気圧に補正するために用いる補正変数をマップ演算して、この補正変数を用いて吸気圧の最大値Atp_tempを補正することにより大気圧の推定値を求める。
エンジンが始動する過程にあって、スロットルバルブの開度が設定値未満の状態にある間に、吸気圧が、吸気圧の最大値の初期値Atpiを超えることがなかった場合には、マイクロコンピュータMCが起動した直後に検出された吸気圧の最大値の初期値Atp_temp_iを、スロットルバルブの開度が設定値未満の状態にある間に検出された吸気圧の最大値として、この吸気圧の最大値に基づいて大気圧の推定値を求める。この場合には、吸気圧の最大値の初期値Atp_temp_iそのものをエンジンが始動する過程における大気圧の推定値とするか、又はマイクロコンピュータMCが起動して電子制御ユニットが動作を開始した際のエンジンの回転速度に対して決定した補正変数を用いて吸気圧の最大値の初期値Atp_temp_iを補正することにより、エンジンが始動する過程における大気圧の推定値を求める。
マイクロコンピュータMCが起動した際のエンジンの回転速度は、例えば、エンジンにより駆動される発電機Gの出力電圧等から検出することができる。電源回路17の出力電圧が確立する際のエンジンの回転速度は、発電機Gの特性から予め知ることができるので、マイクロコンピュータが起動した際のエンジンの回転速度は既知の値とすることもでき、吸気圧の最大値の初期値Atp_temp_iを大気圧に補正するために用いる補正変数は予め求めておくことができる。また多くの場合、吸気圧の最大値の初期値Atp_temp_iは大気圧に近い値を示すので、吸気圧の最大値の初期値Atp_temp_iそのものを大気圧の推定値として採用することも可能である。
上記のように、エンジンが始動する過程における吸気圧の最大値は、吸気圧が新たに検出される毎に、検出された吸気圧を既に検出されている吸気圧の最大値と比較するだけで検出することができるため、エンジンが始動する過程のように、吸気圧が大きく変動する状態にある場合でも、容易に検出することができる。
また吸気圧の最大値と大気圧との間の差圧は、吸気圧が最大値を示した時のエンジンの回転速度と相関関係を有するため、吸気圧の最大値が検出された時のエンジンの回転速度を回転速度の参照値として、この回転速度の参照値と、吸気圧の最大値と、該吸気圧の最大値を大気圧に補正するために用いる補正変数との間の関係を与える補正変数演算用マップを予め実験に基づいて作成しておいて、検出された吸気圧の最大値と回転速度の参照値とに対してこのマップを参照することにより、吸気圧の最大値を大気圧に補正するために用いる補正変数を容易に求めることができる。
エンジンが始動する過程で検出される吸気圧の最大値は大気圧に近い値を示すため、本発明のように、エンジンが始動する過程で検出される吸気圧の最大値を補正することにより大気圧の推定値を求めるようにすれば、エンジンが始動する過程でも、大気圧の推定値を高い精度で求めることができる。
エンジンの始動が完了し、スロットルバルブがある程度以上開かれた状態では、サージタンク1g内の圧力がエンジンの回転速度により決まるほぼ一定の値を示すため、吸気圧の最大値に基づく方法以外の他の大気圧検出処理により、大気圧の推定値を適確に求めることができる。例えば、サージタンク内の圧力の平均値を、エンジンの回転速度に対して演算した補正量だけ補正する等の方法により、大気圧を推定することができる。従って本発明においては、スロットルバルブの開度が一度設定値を超えた後の大気圧の推定の仕方については特に限定しない。
上記の実施形態では、吸気圧の最大値の初期値及び多気筒エンジンの回転速度の参照値をそれぞれ設定する初期化処理と、多気筒エンジンが始動する過程でスロットルセンサにより検出されるスロットルバルブの開度が設定値未満であるか否かを判定するスロットル開度判定処理と、多気筒エンジンの回転速度と吸気圧センサが検出している吸気圧とを微小な時間間隔で検出して新たに検出された吸気圧が吸気圧の最大値よりも高いか否かを判定し、新たに検出された吸気圧が吸気圧の最大値よりも高いと判定されたときに新たに検出された吸気圧で吸気圧の最大値を更新するとともに新たに検出された多気筒エンジンの回転速度で多気筒エンジンの回転速度の参照値を更新する更新処理と、吸気圧の最大値と前記多気筒エンジンの回転速度参照値とに対して補正変数をマップ演算する補正変数演算処理と、この補正変数演算処理により演算された補正変数を用いて吸気圧の最大値を補正することにより大気圧の推定値を求める大気圧推定値演算処理とを電子制御ユニット10に実行させることにより大気圧検出装置を構成している。電子制御ユニット10のマイクロコンピュータMCは、これらの処理を実行させるように、プログラムされている。
図3を参照すると、本発明に係る大気圧検出装置を構成するために、電子制御ユニット10のマイクロコンピュータMCに一定の時間間隔で実行させる処理の要部のアルゴリズムの一例を示したフローチャートが示されている。図3には示されていないが、マイクロコンピュータMCは、時刻t2で起動したときに先ず各部を初期化する初期化処理を行う。この初期化処理では、吸気圧センサ2が検出している吸気圧を読み込んで、この吸気圧を吸気圧の最大値の初期値としてRAMに記憶させるとともに、マイクロコンピュータが起動した際のエンジンの回転速度を回転速度の参照値としてRAMに記憶させる。次いで上記吸気圧の最大値の初期値に基づいて大気圧の推定値の初期値を設定してRAMに記憶させる。また後述する大気圧検出制御切替フラグ[Atp_Ctr1_f]を0にリセットする。
マイクロコンピュータMCは、上記の初期化処理を行った後、微小な時間間隔でエンジンの回転速度と吸気圧センサ2が検出しているサージタンク1g内の吸気圧とを検出し、エンジンの回転速度及び吸気圧を新たに検出する毎に、図3に示した処理を行う。
図3に示したフローチャートで用いられている文字、記号の意味は下記の通りである。
[Map_N0]… 吸気圧センサ2が検出した吸気圧
[Atp]… 吸気圧から推定された大気圧
[Atp_temp]… 吸気圧の最大値
[Rev]… エンジンの回転速度[rpm]
[Rev_temp]… 吸気圧の最大値を更新した際のエンジンの回転速度の参照値
[Atp_offset]… 大気圧補正用の補正変数(本例ではオフセット値)
Atp_Offset_MAP … 補正変数演算マップ
[TPS]… スロットル開度
《TPS_ATP_D》… 大気圧検出制御切替判定スロットル開度(スロットル開度の設定値)
[Atp_Ctrl_f]… 大気圧検出制御切替フラグ
図3において、[ ]は RAMに記憶されているデータであることを示し、《 》は ROMに記憶されているデータであることを示している。また補正値演算マップAtp_Offset_MAPは、吸気圧の最大値[Atp_temp]と、吸気圧の最大値[Atp_temp]が更新された際のエンジンの回転速度である回転速度の参照値[Rev_temp]と、吸気圧の最大値[Atp_temp]を大気圧の推定値に補正する際に吸気圧の最大値に加算される補正値[Atp_offset]との間の関係を与える三次元マップである。吸気圧の最大値[Atp_temp]と吸気圧の最大値[Atp_temp]が更新された際のエンジンの回転速度の参照値[Rev_temp]とに対してこのマップを参照して補間演算を行うことにより、補正変数[Atp_offset]が演算される。大気圧[Atp]は、マイクロコンピュータMCが起動した直後に初期化処理を行う際に吸気圧センサ2が検出している吸気圧[Map_N0]で初期化される。また大気圧検出制御切替フラグ[Atp_Ctrl_f]は、初期化処理において0にリセットされる。本例で用いる補正変数[Atp_offset]は、吸気圧の最大値[Atp_temp]を補正して大気圧の推定値を求めるために、吸気圧の最大値[Atp_temp]に加算する補正値(オフセット値)である。
図3の処理が開始されると、先ずステップ001でスロットル開度[TPS]が大気圧検出制御切替判定スロットル開度《TPS_ATP_D》未満で、且つ大気圧検出制御切替フラグ[ATP_Ctrl_f]が0であるか否かを判定する。その結果がYesであるときにはステップ002に進んで吸気圧センサにより検出されている吸気圧[Map_N0]が既に検出されている吸気圧の最大値[Attp_temp]よりも大きいか否かを判定する。その結果がNoであるときには以後何もしないでこの処理から抜ける。
ステップ002でYesと判定されたときには、ステップ003に進んで吸気圧の最大値[Atp_temp]を今回検出された吸気圧[Map_N0]で更新し、吸気圧の最大値更新時の回転速度の参照値[Rev_temp]を今回検出された回転速度[Rev]で更新する。また更新された吸気圧の最大値[Atp_temp]と吸気圧最大値更新時の回転速度の参照値[Rev_temp]とに対して大気圧補正値演算マップAtp_Offset_MAPを参照することにより大気圧の補正値[Atp_offset]を演算し、今回更新された吸気圧の最大値[Atp_temp]に補正値[Atp_offset]を加算することにより求めた値で大気圧[Atp]を更新してこの処理から抜ける。
大気圧補正値演算マップは、実験結果に基づいて作成される。大気圧補正値演算マップの一例を図4に示した。図4に示したマップを用いて補正変数を演算する場合、回転速度の参照値[Rev_temp]が0~800 [r/min]である場合には、同参照値[Rev_temp]を800[r/min]とし、回転速度の参照値[Rev_temp]が801~900 [r/min]である場合には、同参照値[Rev_temp]を900[r/min]として同マップを参照する。また回転速度の参照値[Rev_temp]が901~950 [r/min]である場合には、同参照値[Rev_temp]を950[r/min]とし、回転速度の参照値[Rev_temp]が951~1000 [r/min]である場合には、同参照値[Rev_temp]を1000 [r/min]として同マップを参照する。同様に、吸気圧の最大値[Atp_temp] が1~200 [hpa]である場合には、同最大値[Atp_temp]を200 [hpa]とし、吸気圧の最大値[Atp_temp] が201~500 [hpa]である場合には、同最大値[Atp_temp]を500 [hpa]とし、吸気圧の最大値[Atp_temp] が501~1000 [hpa]である場合には、同最大値[Atp_temp]を1000 [hpa]として同マップを参照する。
図3に示した処理のステップ001において、スロットルバルブの開度[TPS]が大気圧検出制御切替判定スロットル開度《TPS_Atp_D》未満で且つ大気圧検出制御切替フラグ[Atp_Ctrl_f]が0であるとの条件が成立していないと判定されたときには、同ステップ001における判定結果がNoであるため、ステップ004に進んで他の適宜の大気圧検出処理を起動して大気圧を更新し、フラグ[Atp_Ctrl_f]を1にセットして、フラグ[Atp_Ctrl_f]が1である状態を電源OFF時まで保持する。従って、エンジンを起動した後、一度スロットルバルブの開度が大気圧検出制御切替判定スロットル開度《TPS_Atp_D》以上とされた後は、上記提案の方式の更新処理、補正変数演算処理及び大気圧推定値演算処理を行わない。
ステップ004で行う他の大気圧検出処理としては、サージタンク内の圧力が安定している状態でサージタンク内の圧力から大気圧を推定する適宜の処理を用いる。他の大気圧検出処理としては、例えば、サージタンク内の吸気圧の平均値と、当該吸気圧を検出した時のエンジンの回転速度とに対して補正値をマップ演算して、この補正値を吸気圧の平均値に加算することにより大気圧の推定値を求める公知の処理を用いることができる。
上記の実施形態では、電子制御ユニットが起動した際にマイクロコンピュータが初期化処理を行う過程により、電子制御ユニットが動作を開始した際に吸気圧センサが検出している圧力を吸気圧の最大値の初期値として、該吸気圧の最大値の初期値に基づいて大気圧の推定値の初期値を設定する初期化処理手段が構成される。また図3のステップ001により、多気筒エンジンが始動する過程でスロットルセンサにより検出されるスロットルバルブの開度が設定値未満であるか否かを判定するスロットル開度判定処理手段が構成される。
また図3のステップ002と、ステップ003の吸気圧[Map_N0]を吸気圧最大値[Attp_temp]とする過程により、スロットルセンサにより検出されるスロットルバルブの開度が設定値未満であると判定されている状態で前記エンジンの回転速度と前記吸気圧センサが検出している吸気圧とを微小な時間間隔で検出して前記回転速度及び前記吸気圧を新たに検出する毎に新たに検出した吸気圧が既に検出されている吸気圧の最大値よりも高いか否かを判定し、新たに検出した吸気圧が既に検出されている吸気圧の最大値よりも高いと判定されたときに新たに検出した吸気圧で吸気圧の最大値を更新する吸気圧最大値更新処理手段が構成される。
更に、図3のステップ003において、吸気圧の最大値[Atp_temp]と吸気圧の最大値が更新された際のエンジンの回転速度の参照値[Rev_temp]とに対して大気圧補正変数演算マップAtp_Offset_Mapを参照して補正変数[Atp_offset]を演算する過程により、吸気圧の最大値を大気圧の推定値に補正するために用いる補正変数を吸気圧の最大値が検出された時の多気筒エンジンの回転速度と吸気圧の最大値とに対してマップ演算する補正変数演算処理手段が構成される。更に、図3のステップ003において吸気圧の最大値[Atp_temp]に補正変数[Atp_offset]を加算して大気圧[Atp]の推定値を求める過程により、補正変数演算処理により演算された補正変数を用いて吸気圧の最大値を補正することにより大気圧の推定値を求める大気圧推定値演算処理手段が構成される。
上記の実施形態では、エンジンに燃料を供給するインジェクタからの燃料噴射量を制御する際に用いる制御条件の一つとして大気圧を用いるとしたが、本発明は、燃料噴射量を制御する際に大気圧を制御条件として用いる場合に限定されない。
上記の実施形態では、回転センサ5が発生する信号に基づいてエンジンの回転速度を検出している。しかし本発明は回転センサの出力信号に基づいてエンジンの回転速度を検出する場合に限定されるものではなく、例えば、エンジンにより駆動される交流発電機Gの出力周波数によりエンジンの回転速度を検出することもできる。また発電機Gの出力電圧がエンジンの回転速度の上昇に伴って上昇していく場合には、発電機Gの出力電圧からエンジンの回転速度を検出することができる。
上記の実施形態では、回転センサ5として、リラクタ4bと対向する際に生じる磁束変化に応答して信号を発生する形式のものを用いたが、エンジンが微小角度回転する毎にパルス信号を発生する回転センサを用いることもできる。
上記の実施形態では、図3のステップ001において、スロットルバルブの開度に応じてその後の処理を分けるようにしているが、ステップ001及び004を省略することもできる。この場合、スロットルセンサの情報を必要としないため、システムの他の構成でスロットルセンサを必要としない場合には、スロットルセンサ2を省略することができる。
上記の実施形態では、電子制御ユニットが動作を開始した際に吸気圧センサが検出している圧力を吸気圧の最大値の初期値としたが、吸気圧の最大値の初期値は、任意の固定値(例えば1気圧)としたり、外部システムから得られる情報に基づく推定値としたりすることもできる。
上記の実施形態において、電子制御ユニット10のマイクロコンピュータMCは、初期化処理、スロットル開度判定処理、更新処理、補正変数演算処理及び大気圧推定値演算処理を行うようにプログラムされていれば良く、マイクロコンピュータが実行するプログラムのアルゴリズムを表すフローチャートは、図3に示した例に限定されない。
上記の実施形態においては、初期化処理、スロットル開度判定処理、更新処理、補正変数演算処理及び大気圧推定値演算処理をマイクロコンピュータに行わせるようにしたが、本発明において、スロットル開度判定処理を行うことは必須ではなく、場合によっては、スロットル開度判定処理を省略することもできる。
即ち、本発明に係る大気圧検出装置は、基本的には、サージタンク内の圧力を吸気圧として検出する吸気圧センサが設けられて、電子制御ユニットが下記の(1)ないし(4)の処理を行うように構成されていればよい。
(1) 吸気圧の最大値の初期値及び前記多気筒エンジンの回転速度の参照値の初期値をそれぞれ設定する初期化処理。
(2) 前記多気筒エンジンの回転速度と前記吸気圧センサが検出している吸気圧とを微小な時間間隔で検出して、新たに検出された吸気圧が既に検出されている吸気圧の最大値よりも高いか否かを判定し、新たに検出された吸気圧が吸気圧の最大値よりも高いと判定されたときに新たに検出された吸気圧で吸気圧の最大値を更新するとともに、新たに検出された回転速度で前記多気筒エンジンの回転速度の参照値を更新する更新処理。
(3) 前記吸気圧の最大値と前記多気筒エンジンの回転速度の参照値とに対して補正変数をマップ演算する補正変数演算処理。
(4) 前記補正変数演算処理により演算された補正変数を用いて前記吸気圧の最大値を補正することにより前記大気圧の推定値を求める大気圧推定値演算処理。
またスロットルバルブの開度を検出するスロットルセンサが設けられる場合、
電子制御ユニットは、前記多気筒エンジンが始動する過程で前記スロットルセンサにより検出されるスロットルバルブの開度が設定値未満であるか否かを判定して、前記スロットルバルブの開度が設定値未満であると判定されているときに前記更新処理と補正変数演算処理と大気圧推定値演算処理とを含む大気圧検出処理を行って前記大気圧の推定値を求め、前記スロットルバルブの開度が前記設定値以上であると判定されたときには他の大気圧検出処理により前記大気圧の推定値を求めるように構成される。