(57)【要約】クランクパルスだけでは行程が分からないエンジン始動時に確実に行程を検出する。上死点に対する下死点のエンジン回転数差ΔＮから行程を検出し、行程未検出時の仮の行程と検出された行程とが一致しているときと異なるときとでフラグＦＮを変え、同時に下死点間の吸気圧力差ΔＰからも行程を検出し、仮の行程と検出された行程とが一致しているときと異なるときとでフラグＦＰを変え、双方のフラグＦＮ、ＦＰが一致しているときに行程検出を完了する。仮の行程と検出された行程とが異なるときには、行程を３６０°位相ずらしすると共にクランクパルスのナンバリングを変更する。
2004013476.tif 000002
【特許請求の範囲】
【請求項１】
クランクシャフトの位相を検出するクランクシャフト位相検出手段と、エンジンの吸気管内の吸気圧力を検出する吸気圧力検出手段と、少なくとも前記クランクシャフト位相検出手段で検出されたクランクシャフトの位相に基づいてエンジンの行程を検出する行程検出手段と、前記行程検出手段で検出されたエンジンの行程及び前記吸気圧力検出手段で検出された吸気圧力に基づいてエンジンの運転状態を制御するエンジン制御手段と、エンジンの回転数を検出するエンジン回転数検出手段とを備え、前記行程検出手段は、前記吸気圧力検出手段で検出された吸気圧力の変動から行程を検出すると共に前記エンジン回転数検出手段で検出されたエンジン回転数の変動から行程を検出し、夫々の検出された行程が一致したときに行程検出を完了することを特徴とするエンジン制御装置。
【発明の詳細な説明】
【技術分野】  本発明は、エンジンを制御するエンジン制御装置に関するものであり、特に燃料を噴射する燃料噴射装置を備えたエンジンの制御に好適なものである。
【背景技術】  近年、インジェクタと呼ばれる燃料噴射装置が普及するにつれて、燃料を噴射するタイミングや噴射燃料量、つまり空燃比などの制御が容易になり、高出力化、低燃費化、排ガスのクリーン化などを促進することができるようになった。このうち、特に燃料を噴射するタイミングについては、厳密には吸気バルブの状態、つまり一般的にはカムシャフトの位相状態を検出し、それに合わせて燃料を噴射するのが一般的である。しかしながら、カムシャフトの位相状態を検出するための所謂カムセンサは高価であり、特に二輪車両などではシリンダヘッドが大型化するなどの問題があって採用できないことが多い。そのため、例えば特開平１０−２２７２５２号公報では、クランクシャフトの位相状態及び吸気圧力を検出し、それらから気筒の行程状態を検出するエンジン制御装置が提案されている。従って、この従来技術を用いることにより、カムシャフトの位相を検出することなく、行程状態を検出することができるので、その行程状態に合わせて燃料の噴射タイミングなどを制御することが可能となる。
また、１サイクル内のエンジン回転数の変動からも行程状態を検出することが可能である。即ち、爆発（膨張）行程では、エンジンの回転数が大きく、排気、吸気、圧縮の順にエンジン回転数が小さくなる。従って、このエンジン回転数の変動と前記クランクシャフトの位相からも行程状態を検出することができる。そして、特開２０００−３３７２０６号公報に記載されるエンジン制御装置では、エンジンの運転状態に応じて、前記吸気圧力変動による行程検出とエンジン回転数変動による行程検出とを選別し、何れかの手法によって行程を検出するようにしている。
しかしながら、前記特開２０００−３３７２０６号公報に記載されるエンジン制御装置では、エンジンの運転状態全般にわたって最適な行程検出方法を設定するのは困難であるし、場合によっては何れの行程検出方法も最適でないこともあることから、検出された行程の信頼性が低いという問題がある。
本発明は前記諸問題を解決すべく開発されたものであり、信頼性の高い行程検出が可能なエンジン制御装置を提供することを目的とするものである。
【発明の開示】
上記諸問題を解決するため、本発明のエンジン制御装置は、クランクシャフトの位相を検出するクランクシャフト位相検出手段と、エンジンの吸気管内の吸気圧力を検出する吸気圧力検出手段と、少なくとも前記クランクシャフト位相検出手段で検出されたクランクシャフトの位相に基づいてエンジンの行程を検出する行程検出手段と、前記行程検出手段で検出されたエンジンの行程及び前記吸気圧力検出手段で検出された吸気圧力に基づいてエンジンの運転状態を制御するエンジン制御手段と、エンジンの回転数を検出するエンジン回転数検出手段とを備え、前記行程検出手段は、前記吸気圧力検出手段で検出された吸気圧力の変動から行程を検出すると共に前記エンジン回転数検出手段で検出されたエンジン回転数の変動から行程を検出し、夫々の検出された行程が一致したときに行程検出を完了することを特徴とするものである。
【図面の簡単な説明】  図１は、オートバイ用のエンジン及びその制御装置の概略構成図である。
図２は、図１のエンジンでクランクパルスを送出する原理の説明図である。
図３は、本発明のエンジン制御装置の一実施形態を示すブロック図である。
図４は、図３の行程検出許可部で行われる演算処理を示すフローチャートである。
図５は、クランクシャフトの位相と吸気圧力から行程状態を検出する説明図である。
図６は、図３のクランクタイミング検出部で行われる演算処理を示すフローチャートである。
図７は、シリンダ内空気質量算出部に記憶されたシリンダ内空気質量算出のためのマップである。
図８は、目標空燃比算出部に記憶された目標空燃比算出のためのマップである。
図９は、過渡期補正部の作用説明図である。
図１０は、図３の燃料噴射量算出部で行われる演算処理を示すフローチャートである。
図１１は、図３の点火時期算出部で行われる演算処理を示すフローチャートである。
図１２は、図１０で設定される点火時期の説明図である。
図１３は、図３の演算処理によるエンジン始動時の作用説明図である。
図１４は、図３の演算処理によるエンジン始動時の作用説明図である。
【発明を実施するための最良の形態】  以下、本発明の実施の形態について説明する。
図１は、例えばオートバイ用のエンジン及びその制御装置の一例を示す概略構成である。このエンジン１は、比較的小排気量の単気筒４サイクルエンジンであり、シリンダボディ２、クランクシャフト３、ピストン４、燃焼室５、吸気管６、吸気バルブ７、排気管８、排気バルブ９、点火プラグ１０、点火コイル１１を備えている。また、吸気管６内には、スロットル開度に応じて開閉されるスロットルバルブ１２が設けられ、このスロットルバルブ１２の下流側の吸気管６に、燃料噴射装置としてのインジェクタ１３が設けられている。このインジェクタ１３は、燃料タンク１９内に配設されているフィルタ１８、燃料ポンプ１７、圧力制御バルブ１６に接続されている。
このエンジン１の運転状態は、エンジンコントロールユニット１５によって制御される。そして、このエンジンコントロールユニット１５の制御入力、つまりエンジン１の運転状態を検出する手段として、クランクシャフト３の回転角度、つまり位相を検出するためのクランク角度センサ２０、シリンダボディ２の温度又は冷却水温度、即ちエンジン本体の温度を検出する冷却水温度センサ２１、排気管８内の空燃比を検出する排気空燃比センサ２２、吸気管６内の吸気圧力を検出するための吸気圧力センサ２４、吸気管６内の温度、即ち吸気温度を検出する吸気温度センサ２５が設けられている。そして、前記エンジンコントロールユニット１５は、これらのセンサの検出信号を入力し、前記燃料ポンプ１７、圧力制御バルブ１６、インジェクタ１３、点火コイル１１に制御信号を出力する。
ここで、前記クランク角度センサ２０から出力されるクランク角度信号の原理について説明する。本実施形態では、図２ａに示すように、クランクシャフト３の外周に、略等間隔で複数の歯２３を突設し、その接近を磁気センサ等のクランク角度センサ２０で検出して、適宜電気的処理を施してパルス信号を送出する。各歯２３間の周方向へのピッチは、クランクシャフト３の位相（回転角度）にして３０°であり、各歯２３の周方向への幅は、クランクシャフト３の位相（回転角度）にして１０°としている。但し、一箇所だけ、このピッチに従っておらず、その他の歯２３のピッチに対して二倍のピッチになっている箇所がある。それは、図２ａに二点鎖線で示すように、本来、歯のある部分に歯がない、特殊な設定になっており、この部分が不等間隔に相当する。以下、この部分を歯抜け部とも記す。
従って、クランクシャフト３が等速回転しているときの各歯２３のパルス信号列は図２ｂのように表れる。そして、図２ａは圧縮上死点時の状態を示している（排気上死点も形態としては同じである）が、この圧縮上死点時の直前のパルス信号を図示“０”とし、その次のパルス信号に図示“１”、次のパルス信号に図示“２”、といった順で図示“４”までナンバリング（番号付け）する。この図示“４”のパルス信号に相当する歯２３の次は歯抜け部なので、それを、あたかも歯が存在すると考えて１歯余分にカウントし、次の歯２３のパルス信号には図示“６”とナンバリングする。これを繰り返してゆくと、今度は図示“１６”のパルス信号の次に歯抜け部が接近するので、前述と同様に１歯余分にカウントし、次の歯２３のパルス信号には図示“１８”とナンバリングする。クランクシャフト３が二回転すると、４つの行程のサイクルが全て完了するので、図示“２３”までナンバリングが済んだら、次の歯２３のパルス信号には再び図示“０”とナンバリングする。原則的に、この図示“０”とナンバリングされた歯２３のパルス信号の直後が圧縮上死点になっているはずである。このように、検出されたパルス信号列、又はその単体のパルス信号をクランクパルスと定義する。そして、このクランクパルスに基づいて、後述のようにして行程検出を行うと、クランクタイミングを検出することができる。なお、前記歯２３は、クランクシャフト３と同期回転する部材の外周に設けても、全く同じである。
一方、前記エンジンコントロールユニット１５は、図示されないマイクロコンピュータなどによって構成されている。図３は、このエンジンコントロールユニット１５内のマイクロコンピュータで行われるエンジン制御演算処理の実施形態を示すブロック図である。この演算処理では、前記クランク角度信号からエンジン回転数を算出するエンジン回転数算出部２６と、同じくクランク角度信号及び前記吸気圧力信号及び前記エンジン回転数算出部２６で算出されたエンジン回転数からクランクタイミング情報、即ち行程状態を検出するクランクタイミング検出部２７と、前記エンジン回転数算出部２６で算出されたエンジン回転数を読込み、前記クランクタイミング検出部２７に対して行程検出許可情報を出力すると共に、当該クランクタイミング検出部２７による行程検出情報を取込んで出力する行程検出許可部２９と、前記クランクタイミング検出部２７で検出されたクランクタイミング情報を読込み、前記吸気温度信号及び前記冷却水温度（エンジン温度）信号及び前記吸気管圧信号及び前記エンジン回転数算出部２６で算出されたエンジン回転数からシリンダ内空気質量（吸入空気量）を算出するシリンダ内空気質量算出部２８と、前記エンジン回転数算出部２６で算出されたエンジン回転数及び前記吸気圧力信号から目標空燃比を算出する目標空燃比算出部３３と、この目標空燃比算出部３３で算出された目標空燃比及び前記吸気圧力信号及び前記シリンダ内空気質量算出部２８で算出されたシリンダ内空気質量及び前記行程検出許可部２９から出力された行程検出情報及び前記冷却水温度信号から燃料噴射量及び燃料噴射時期を算出する燃料噴射量算出部３４と、前記クランクタイミング検出部２７で検出されたクランクタイミング情報を読込み、前記燃料噴射量算出部３４で算出された燃料噴射量及び燃料噴射時期に応じた噴射パルスを前記インジェクタ１３に向けて出力する噴射パルス出力部３０と、前記エンジン回転数算出部２６で算出されたエンジン回転数及び前記目標空燃比算出部３３で設定された目標空燃比及び前記行程検出許可部２９から出力された行程検出情報から点火時期を算出する点火時期算出部３１と、前記クランクタイミング検出部２７で検出されたクランクタイミング情報を読込み、前記点火時期算出部３１で設定された点火時期に応じた点火パルスを前記点火コイル１１に向けて出力する点火パルス出力部３２とを備えて構成される。
前記エンジン回転数算出部２６は、前記クランク角度信号の時間変化率から、エンジンの出力軸であるクランクシャフトの回転速度をエンジン回転数として算出する。具体的には、前記隣合う歯２３間の位相を、対応するクランクパルス検出所要時間で除したエンジン回転数の瞬間値と、その移動平均値からなるエンジン回転数の平均値とを算出する。
前記行程検出許可部２９は、図４に示す演算処理に従って、前記クランクタイミング検出部２７に対する行程検出許可情報を出力する。前述のように、前記クランクパルスから行程を検出するには、最低、クランクシャフト二回転を要する。この間、前記歯抜け部を含むクランクパルスが安定していることが必要である。しかしながら、本実施形態のような比較的小排気量、単気筒のエンジンでは、始動時の、所謂クランキング時には、エンジンの回転状態が安定しない。そこで、図４の演算処理によってエンジンの回転状態の判定を行い、行程検出を許可する。
この図４の演算処理は、例えば前記クランクパルスの入力をトリガとして実行される。なお、このフローチャートでは、特に通信のためのステップを設けていないが、演算処理によって得られた情報は随時記憶装置に更新記憶され、また演算処理に必要な情報やプログラムは随時記憶装置から読出される。
この演算処理では、まずステップＳ１１で、前記エンジン回転数算出部２６で算出された上死点及び下死点の瞬時エンジン回転数を読込む。
次にステップＳ１２に移行して、前記ステップＳ１１で読込んだ下死点での瞬時エンジン回転数と上死点での瞬時エンジン回転数との差が、初爆時相当の予め設定された初爆検出所定回転数以上であるか否かを判定し、当該瞬時エンジン回転数差が初爆検出所定回転数以上である場合にはステップＳ１３に移行し、そうでない場合にはステップＳ１４に移行する。
前記ステップＳ１３では、初爆検出を出力してから前記ステップＳ１４に移行する。
前記ステップＳ１４では、前記エンジン回転数算出部２６で算出されたエンジン回転数の平均値を読込む。
次にステップＳ１５に移行して、前記ステップＳ１４で読込んだエンジン回転数の平均値が、完爆時相当の予め設定された完爆検出所定回転数以上であるか否かを判定し、当該エンジン回転数の平均値が完爆検出所定回転数以上である場合にはステップＳ１６に移行し、そうでない場合にはステップＳ１７に移行する。
前記ステップＳ１６では、完爆検出を出力してから前記ステップＳ１７に移行する。
前記ステップＳ１７では、前記ステップＳ１３での初爆検出出力があったか否か、或いは前記ステップＳ１６での完爆検出出力があったか否かを判定し、初爆検出出力又は完爆検出出力があった場合にはステップＳ１８に移行し、そうでない場合にはステップＳ１９に移行する。
前記ステップＳ１８では、行程検出を許可する旨の情報を出力してからメインプログラムに復帰する。
また、前記ステップＳ１９では、行程検出を許可しない旨の情報を出力してからメインプログラムに復帰する。
この演算処理によれば、エンジンの状態が初爆後であるか、又はエンジン回転数の平均値が完爆時相当の回転数以上となってから行程検出が許可されるので、クランクパルスが安定し、正確な行程検出が可能となる。
前記クランクタイミング検出部２７は、前述した特開平１０−２２７２５２号公報に記載される行程判別装置と同様に吸気圧力変動から行程を検出すると共にエンジン回転数変動からも行程を検出し、その行程状態に関する情報をクランクタイミング情報として出力する。ここで、吸気圧力変動から行程を検出する原理について説明する。即ち、４ストロークエンジンにおいて、クランクシャフトとカムシャフトとは所定の位相差で常時回転し続けているから、例えば図５に示すようにクランクパルスが読込まれているとき、前述した歯抜け部から四番目の図示“９”又は“２１”のクランクパルスは排気行程か又は圧縮行程の何れかである。周知のように、排気行程では排気バルブが開き、吸気バルブが閉じているので吸気圧力が高く、圧縮行程の初期は、未だ吸気バルブが開いているために吸気圧力が低く、若しくは吸気バルブが閉じていても、先行する吸気行程で吸気圧力が低くなっている。従って、吸気圧力が低いときの図示“２１”のクランクパルスは圧縮行程にあることを示しており、図示“０”のクランクパルスが得られた直後が圧縮上死点になる。具体的には、二つの下死点間の吸気圧力差が負値の所定値以下ならば現在の下死点は吸気行程後の下死点であり、吸気圧力差が正値の所定値以上ならば現在の下死点は排気行程前の下死点である。このようにして、何れかの行程状態が検出できたら、この行程の間を、クランクシャフトの回転速度で補間すれば、現在の行程状態を更に細かく検出することができる。
同様に、エンジン回転数の瞬間値に着目すると、吸気、圧縮、膨張（爆発）、排気行程のうち、膨張行程が最もエンジン回転数が大きく、排気、吸気、圧縮行程の順にエンジン回転数が小さくなる。このエンジン回転数の変動と前記クランクパルスによるクランクシャフトの位相とを組合わせれば、吸気圧力差と同様に行程を検出することができる。具体的には、上死点と下死点とのエンジン回転数差が負値の所定値以下ならば現在の下死点は吸気行程後の下死点であり、上死点と下死点とのエンジン回転数差が正値の所定値以上ならば現在の下死点は排気行程前の下死点である。
そこで、前記クランクタイミング検出部２７では、図６に示す運転モード設定並びに行程検出のための演算処理を行う。この図６の演算処理は、例えば前記クランクパルスの入力をトリガとして実行される。なお、このフローチャートでは、特に通信のためのステップを設けていないが、演算処理によって得られた情報は随時記憶装置に更新記憶され、また演算処理に必要な情報やプログラムは随時記憶装置から読出される。
この演算処理では、まずステップＳ１０１で、設定されている運転モードが“４”であるか否かを判定し、運転モードが“４”である場合にはメインプログラムに復帰し、そうでない場合にはステップＳ１０２に移行する。
前記ステップＳ１０２では、設定されている運転モードが“３”であるか否かを判定し、運転モードが“３”である場合にはステップＳ１１４に移行し、そうでない場合にはステップＳ１０４に移行する。
前記ステップＳ１０４では、設定されている運転モードが“２”であるか否かを判定し、運転モードが“２”である場合にはステップＳ１０５に移行し、そうでない場合にはステップＳ１０６に移行する。
前記ステップＳ１０６では、設定されている運転モードが“１”であるか否かを判定し、運転モードが“１”である場合にはステップＳ１０７に移行し、そうでない場合にはステップＳ１０８に移行する。
前記ステップＳ１０８では、運転モードを“０”に設定してからステップＳ１０９に移行する。
前記ステップＳ１０９では、所定時間内に所定値以上のクランクパルスを検出したか否かを判定し、所定時間内に所定値以上のクランクパルスを検出した場合にはステップＳ１１０に移行し、そうでない場合にはメインプログラムに復帰する。
前記ステップＳ１１０では、運転モードを“１”に設定してから前記ステップＳ１０７に移行する。
前記ステップＳ１０７では、前述した歯抜け部が検出されたか否かを判定し、歯抜け部が検出された場合にはステップＳ１１１に移行し、そうでない場合にはメインプログラムに復帰する。歯抜け部の判定については、前のクランクパルス幅をＴ１、クランクパルスのオフ部の幅をＴ２、次のクランクパルス幅をＴ３（何れも時間相当）としたとき、前記オフ部の幅Ｔ２を前のクランクパルス幅Ｔ１と次のクランクパルス幅Ｔ３との平均値で除した値が所定値αより大きいときに歯抜け部であると判定する。
前記ステップＳ１１１では、運転モードを“２”に設定してから前記ステップＳ１０５に移行する。
前記ステップＳ１０５では、歯抜け部を二度連続して検出したか否かを判定し、歯抜け部を二度連続して検出した場合にはステップＳ１１２に移行し、そうでない場合にはメインプログラムに復帰する。
前記ステップＳ１１２では、エンジンの初爆又は完爆を検出したか否かを判定し、初爆又は完爆を検出した場合にはステップＳ１１３に移行し、そうでない場合にはメインプログラムに復帰する。
前記ステップＳ１１３では、運転モードを“３”に設定してから前記ステップＳ１１４に移行する。
前記ステップＳ１１４では、前記クランクパルスの状態から、現在、下死点か否かを判定し、下死点である場合にはステップＳ１１５に移行し、そうでない場合にはステップＳ１１６に移行する。
前記ステップＳ１１５では、前回上死点とのエンジン回転数差ΔＮを算出してからステップＳ１１７に移行する。なお、エンジン回転数差ΔＮは現在のエンジン回転数から前回上死点のエンジン回転数を減じた値とする。
前記ステップＳ１１７では、前記ステップＳ１１５で算出されたエンジン回転数差ΔＮが予め設定された正値の排気行程前エンジン回転数差閾値ΔＮＥＸ以上であるか否かを判定し、当該エンジン回転数差ΔＮが排気行程前エンジン回転数差閾値ΔＮＥＸ以上である場合にはステップＳ１１８に移行し、そうでない場合にはステップＳ１１９に移行する。
前記ステップＳ１１９では、前記ステップＳ１１５で算出されたエンジン回転数差ΔＮが予め設定された負値の吸気行程後エンジン回転数差閾値ΔＮＩＮ以下であるか否かを判定し、当該エンジン回転数差ΔＮが吸気行程後エンジン回転数差閾値ΔＮＩＮ以下である場合には前記ステップＳ１１８に移行し、そうでない場合にはステップＳ１２０に移行する。
前記ステップＳ１１８では、前述のようにしてエンジン回転数差ΔＮによる行程検出を行ってからステップＳ１２１に移行する。
前記ステップＳ１２１では、行程が検出されるまでの間、仮に設定した行程と前記ステップＳ１１８で検出された行程とが一致するか否かを判定し、仮の行程と検出された行程とが一致する場合にはステップＳ１２２に移行し、そうでない場合にはステップＳ１２３に移行する。
前記ステップＳ１２２では、エンジン回転数差行程検出フラグＦＮを“１”にセットしてからステップＳ１２４に移行する。
前記ステップＳ１２３では、前記エンジン回転数差行程検出フラグＦＮを“２”にセットしてから前記ステップＳ１２４に移行する。
前記ステップＳ１２４では、エンジン回転数差行程検出カウンタＣＮＴＮをインクリメントしてからステップＳ１２５に移行する。
前記ステップＳ１２５では、前記エンジン回転数差行程検出フラグＦＮが“１”にセットされ且つ前記エンジン回転数差行程検出カウンタＣＮＴＮが予め設定された所定値ＣＮＴＮＯ以上であるか否かを判定し、当該エンジン回転数差行程検出フラグＦＮが“１”にセットされ且つエンジン回転数差行程検出カウンタＣＮＴＮが所定値ＣＮＴＮＯ以上である場合にはステップＳ１２６に移行し、そうでない場合には前記ステップＳ１１６に移行する。
前記ステップＳ１２６では、エンジン回転数差による仮の行程検出が完了したものとし、前記ステップＳ１１６に移行する。
一方、前記ステップＳ１２０では、前記エンジン回転数差行程検出フラグＦＮを“０”にリセットしてからステップＳ１２７に移行する。
前記ステップＳ１２７では、前記エンジン回転数差行程検出カウンタＣＮＴＮを“０”にクリアしてから前記ステップＳ１１６に移行する。
前記ステップＳ１１６では、前記クランクパルスの状態から、現在、下死点か否かを判定し、下死点である場合にはステップＳ１２８に移行し、そうでない場合にはステップＳ１２９に移行する。
前記ステップＳ１２８では、前回下死点との吸気圧力差ΔＰを算出してからステップＳ１３０に移行する。なお、吸気圧力差ΔＰは、現在の吸気圧力から前回下死点の吸気圧力を減じた値とする。
前記ステップＳ１３０では、前記ステップＳ１２８で算出された吸気圧力差ΔＰが予め設定された正値の排気行程前吸気圧力差閾値ΔＰＥＸ以上であるか否かを判定し、当該吸気圧力差ΔＰが排気行程前吸気圧力差閾値ΔＰＥＸ以上である場合にはステップＳ１３１に移行し、そうでない場合にはステップＳ１３２に移行する。
前記ステップＳ１３２では、前記ステップＳ１２８で算出された吸気圧力差ΔＰが予め設定された負値の吸気行程後吸気圧力差閾値ΔＰＩＮ以下であるか否かを判定し、当該吸気圧力差ΔＰが吸気行程後吸気圧力差閾値ΔＰＩＮ以下である場合には前記ステップＳ１３１に移行し、そうでない場合にはステップＳ１３３に移行する。
前記ステップＳ１３１では、前述のようにして吸気圧力差ΔＰによる行程検出を行ってからステップＳ１３４に移行する。
前記ステップＳ１３４では、行程が検出されるまでの間、仮に設定した行程と前記ステップＳ１３１で検出された行程とが一致するか否かを判定し、仮の行程と検出された行程とが一致する場合にはステップＳ１３５に移行し、そうでない場合にはステップＳ１３６に移行する。
前記ステップＳ１３５では、吸気圧力差行程検出フラグＦＰを“１”にセットしてからステップＳ１３７に移行する。
前記ステップＳ１３６では、前記吸気圧力差行程検出フラグＦＰを“２”にセットしてから前記ステップＳ１３７に移行する。
前記ステップＳ１３７では、吸気圧力差行程検出カウンタＣＮＴＰをインクリメントしてからステップＳ１３８に移行する。
前記ステップＳ１３８では、前記吸気圧力差行程検出フラグＦＰが“１”にセットされ且つ前記吸気圧力差行程検出カウンタＣＮＴＰが予め設定された所定値ＣＮＴＰＯ以上であるか否かを判定し、当該吸気圧力差行程検出フラグＦＰが“１”にセットされ且つ吸気圧力差行程検出カウンタＣＮＴＰが所定値ＣＮＴＰＯ以上である場合にはステップＳ１３９に移行し、そうでない場合には前記ステップＳ１２９に移行する。
前記ステップＳ１３９では、吸気圧力差による仮の行程検出が完了したものとし、前記ステップＳ１２９に移行する。
一方、前記ステップＳ１３３では、前記吸気圧力差行程検出フラグＦＰを“０”にリセットしてからステップＳ１４０に移行する。
前記ステップＳ１４０では、前記吸気圧力差行程検出カウンタＣＮＴＰを“０”にクリアしてから前記ステップＳ１２９に移行する。
前記ステップＳ１２９では、前記エンジン回転数差行程検出カウンタＣＮＴＮが前記所定値ＣＮＴＮＯ以上であるか、又は前記吸気圧力差行程検出カウンタＣＮＴＰが前記所定値ＣＮＴＰＯ以上であるかの何れかであるか否かを判定し、それらの何れかである場合にはステップＳ１４１に移行し、そうでない場合にはメインプログラムに復帰する。
前記ステップＳ１４１では、前記エンジン回転数差行程検出フラグＦＮが“１”にセットされ且つ前記吸気圧力差行程検出フラグＦＰが“１”にセットされているか否かを判定し、双方のフラグが“１”にセットされている場合にはステップＳ１４２に移行し、そうでない場合にはステップＳ１４３に移行する。
前記ステップＳ１４３では、前記エンジン回転数差行程検出フラグＦＮが“２”にセットされ且つ前記吸気圧力差行程検出フラグＦＰが“２”にセットされているか否かを判定し、双方のフラグが“２”にセットされている場合にはステップＳ１４４に移行し、そうでない場合にはステップＳ１４５に移行する。
前記ステップＳ１４２では、前述したように行程検出まで仮に設定されていた行程をそのまま真の行程とし、行程検出を完了してからステップＳ１４６に移行する。
一方、前記ステップＳ１４４では、前記仮の行程を３６０°位相ずらしして、つまりクランクシャフト一回転分ずらして真の行程とする、具体的には前述したクランクパルスを“１２”変更してから前記ステップＳ１４６に移行する。
また、前記ステップＳ１４５では、フェールカウンタＣＮＴＦをインクリメントしてからステップＳ１４６に移行する。
前記ステップＳ１４６では、前記フェールカウンタＣＮＴＦが予め設定された所定値ＣＮＴＦＯ以上であるか否かを判定し、当該フェールカウンタＣＮＴＦが所定値ＣＮＴＦＯ以上である場合意はステップＳ１４８に移行し、そうでない場合には前記ステップＳ１４６に移行する。
前記ステップＳ１４６では、前記フェールカウンタＣＮＴＦを“０”にクリアしてからステップＳ１４９に移行する。
前記ステップＳ１４９では、前記運転モードを“４”に設定してからメインプログラムに復帰する。
また、前記ステップＳ１４８では、所定のフェールセーフ処理を行ってからプログラムを終了する。このフェールセーフ処理では、例えば気筒毎に点火を次第に間引くとか、各気筒の点火を次第に遅角側に移行するとか、スロットルを、最初は速く、その後、ゆっくりと閉じるなどにより、エンジントルクを漸減することや、或いは異常表示を行うことなどが挙げられる。
この演算処理によれば、例えばエンジンの回転始動時に、まずクランクパルスが所定時間内に所定値異常検出された時点で運転モードが“１”となり、次いで歯抜け部が検出された時点で運転モードが“２”となり、次いで歯抜け部が二度連続して検出され且つ前記行程検出許可部２９により初爆又は完爆が検出されて行程検出が許可された時点で運転モードが“３”となる。そして、前述のように上死点と下死点のエンジン回転数差ΔＮが排気行程前エンジン回転数差閾値ΔＮＥＸ以上であるか、或いは吸気行程後エンジン回転数差閾値ΔＮＩＮ以下であるかを判定してエンジン回転数差による行程検出が行われ、同時に下死点間の吸気圧力差ΔＰが排気行程前吸気圧力差閾値ΔＰＥＸ以上であるか、或いは吸気行程後吸気圧力差閾値ΔＰＩＮ以下であるかを判定して吸気圧力差による行程検出が行われ、何れかの行程検出が所定値ＣＮＴＮＯ、ＣＮＴＰＯ繰り返され、しかもそれまでの仮の行程と検出された行程とが一致したら、つまり行程検出フラグＦＮ、ＦＰが“１”であったら仮の行程検出が完了したものとする。
更に、前記エンジン回転数差ΔＮによる行程検出が所定値ＣＮＴＮＯ以上繰り返されるか、若しくは吸気圧力差ΔＰによる行程検出が所定値ＣＮＴＰＯ以上繰り返され、且つエンジン回転数差ΔＮによる行程検出の結果、仮の行程と検出された行程とが同じ、つまり前記エンジン回転数差行程検出フラグＦＮが“１”であり、且つ吸気圧力差ΔＰによる行程検出の結果、仮の行程と検出された行程とが同じ、つまり前記吸気圧力差行程検出フラグＦＰが“１”であるときには、仮の行程をそのまま真の行程として行程検出を完了し、運転モードを“４”とする。また、同じく前記エンジン回転数差ΔＮによる行程検出が所定値ＣＮＴＮＯ以上繰り返されるか、若しくは吸気圧力差ΔＰによる行程検出が所定値ＣＮＴＰＯ以上繰り返され、且つエンジン回転数差ΔＮによる行程検出の結果、仮の行程と検出された行程とが異なる、つまり前記エンジン回転数差行程検出フラグＦＮが“２”であり、且つ吸気圧力差ΔＰによる行程検出の結果、仮の行程と検出された行程とが異なる、つまり前記吸気圧力差行程検出フラグＦＰが“２”であるときには、仮の行程を３６０°位相ずらしして真の行程として行程検出を完了し、運転モードを“４”とする。なお、行程の位相ずらしには、前記クランクパルスのナンバリング変更を合わせて行う。
前記シリンダ内空気質量算出部２８は、図７に示すように、前記吸気圧力信号及び前記エンジン回転数算出部２６で算出されたエンジン回転数からシリンダ内空気質量を算出するための三次元マップを備えている。このシリンダ内空気質量の三次元マップは、例えば実際にエンジンを所定の回転数で回転させながら吸気圧力を変化させたときのシリンダ内空気質量を計測するだけでよく、比較的簡単な実験によって計測でき、従ってマップの作成は容易である。また、高度なエンジンシミュレーションがあれば、それを用いてマップを作成することも可能である。なお、シリンダ内空気質量は、エンジンの温度によって変化するので、前記冷却水温度（エンジン温度）信号を用いて補正してもよい。
前記目標空燃比算出部３３は、図８に示すように、前記吸気圧力信号及び前記エンジン回転数算出部２６で算出されたエンジン回転数から目標空燃比を算出するための三次元マップを備えている。この三次元マップは、或る程度まで机上でも設定することができる。空燃比は、一般にトルクと相関があり、空燃比が小さい、つまり燃料が多く且つ空気が少ないと、トルクが増す一方、効率は低下する。逆に、空燃比が大きい、つまり燃料が少なく且つ空気が多いと、トルクが減少するが、効率は向上する。空燃比が小さい状態をリッチ、空燃比が大きい状態をリーンと呼んでおり、最もリーンな状態は、所謂理想空燃比、或いはストイキオメトリックと呼ばれ、ガソリンが完全燃焼する空燃比、即ち１４．７である。
エンジン回転数は、エンジンの運転状態であり、一般に高回転側で空燃比を大きくし、低回転側で小さくする。これは、低回転側でトルクの応答性を高め、高回転側で回転状態の応答性を高めるためである。また、吸気圧力は、スロットル開度などのエンジン負荷状態であり、一般にエンジン負荷の大きい状態、つまりスロットル開度が大きく、吸気圧力も大きいときに空燃比を小さくし、エンジン負荷の小さい状態、つまりスロットル開度が小さく、吸気圧力も小さいときに空燃比を大きくする。これは、エンジン負荷が大きいときにトルクを重視し、エンジン負荷が小さいときに効率を重視するためである。
このように目標空燃比とは、物理的意味を把握しやすい数値であり、従って要求されるエンジンの出力特性に合わせて、目標空燃比を或る程度設定することが可能なのである。勿論、実車のエンジン出力特性に合わせて、チューニングを行ってもよいことはいうまでもない。
また、この目標空燃比算出部３３は、前記吸気圧力信号からエンジンの運転状態の過渡期、具体的には加速状態や減速状態を検出し、それに合わせて目標空燃比を補正する過渡期補正部２９を備えている。例えば図９に示すように、吸気圧力は、スロットル操作の結果でもあるから、吸気圧力が大きくなるときは、スロットルが開けられて加速が要求されている、即ち加速状態であることが分かる。そのような加速状態が検出されたら、それに合わせて、例えば前記目標空燃比を一時的にリッチ側に設定し、その後、本来の目標空燃比に戻す。目標空燃比への戻し方は、例えば過渡期でリッチ側に設定された空燃比と、本来の目標空燃比との重み付け平均の重み付け係数を次第に変化させるなど、既存の方法が利用できる。逆に、減速状態を検出したら、本来の目標空燃比よりリーン側に設定し、効率を重視するようにしてもよい。
前記燃料噴射量算出部３４では、図１０に示す演算処理に従って、エンジン始動時並びに通常運転時の燃料噴射量及び燃料噴射時期を算出設定する。この図１０の演算処理は、例えば前記クランクパルスの入力をトリガとして実行される。なお、このフローチャートでは、特に通信のためのステップを設けていないが、演算処理によって得られた情報は随時記憶装置に更新記憶され、また演算処理に必要な情報やプログラムは随時記憶装置から読出される。
この演算処理では、まずステップＳ２１で、前記行程検出許可部２９から出力されている行程検出情報を読込む。
次にステップＳ２２に移行して、前記クランクタイミング検出部２７による行程検出が未完了である（運転モード“３”）か否かを判定し、行程検出未完了である場合にはステップＳ２３に移行し、そうでない場合にはステップＳ２４に移行する。
前記ステップＳ２３では、燃料噴射回数カウンタｎが“０”であるか否かを判定し、当該燃料噴射回数カウンタｎが“０”である場合にはステップＳ２５に移行し、そうでない場合にはステップＳ２６に移行する。
前記ステップＳ２５では、これからの燃料噴射がエンジン始動開始から３回目以降の燃料噴射であるか否かを判定し、３回目以降の燃料噴射である場合にはステップＳ２７に移行し、そうでない場合にはステップＳ２８に移行する。
前記ステップＳ２７では、クランクシャフト２回転間において、予め設定された所定クランク角度、本実施例では前記図２、図５の図示“６”又は図示“１８”のクランクパルスでの吸気圧力を、例えば図示されない吸気圧力記憶部から読込み、両者の吸気圧力差を算出してからステップＳ２９に移行する。
前記ステップＳ２９では、前記ステップＳ２８で算出された吸気圧力差が、例えば行程を或る程度識別できる程度の所定値以上であるか否かを判定し、当該吸気圧力差が所定値以上である場合にはステップＳ３０に移行し、そうでない場合には前記ステップＳ２８に移行する。
前記ステップＳ３０では、前記ステップＳ２７で読込まれたクランクシャフト２回転間における所定クランク角度での吸気圧力のうち、何れか小さい方の吸気圧力に基づいて総燃料噴射量を算出してからステップＳ３１に移行する。
一方、前記ステップＳ２８では、前記冷却水温度、つまりエンジン温度を読込み、例えば冷却水温度が低いほど燃料噴射量を多くするなど、冷却水温度に応じた総燃料噴射量を算出してから前記ステップＳ３１に移行する。このステップＳ２８或いは前記ステップＳ３０で算出する総燃料噴射量とは、本来、１サイクル、つまりクランクシャフト２回転に一回、吸気行程の前に噴射すればよい燃料噴射量を意味している。従って、行程が既に検出され、吸気行程前に冷却水温度対応燃料噴射量を１回だけ噴射すれば、エンジンは冷却水温度、即ちエンジン温度に応じて適切に回転する。
前記ステップＳ３１では、前記ステップＳ３０で設定された総燃料噴射量の半分を今回の燃料噴射量に設定すると共に、各回転毎、つまりクランクシャフト一回転毎に、所定のクランク角度、本実施形態では前記図２、図５の図示“１０”又は図示“２２”のクランクパルス立下がり時を燃料噴射時期に設定してからステップＳ３２に移行する。
前記ステップＳ３２では、前記燃料噴射回数カウンタ“１”としてからメインプログラムに復帰する。
一方、前記ステップＳ２４では、前回の燃料噴射が吸気行程の直前か否かを判定し、前回の燃料噴射が吸気行程の直前である場合にはステップＳ３３に移行し、そうでない場合にはステップＳ２６に移行する。
前記ステップＳ２６では、前回の燃料噴射量を今回の燃料噴射量に設定すると共に、前記ステップＳ３１と同様に、各回転毎、つまりクランクシャフト一回転毎に、所定のクランク角度を燃料噴射時期に設定してからステップＳ３４に移行する。
前記ステップＳ３４では、前記燃料噴射回数カウンタ“０”としてからメインプログラムに復帰する。
また、前記ステップＳ３３では、目標空燃比、シリンダ内空気質量、吸気圧力に応じた通常運転時の燃料噴射量及び燃料噴射時期を設定してからステップＳ３５に移行する。具体的には、例えば前記シリンダ内空気質量算出部２８で算出されたシリンダ内空気質量を前記目標空燃比算出部３３で算出された目標空燃比で除すことで、シリンダ内必要燃料質量を得ることができるので、これに例えばインジェクタ１３の流量特性を乗じて燃料噴射時間を求めることができ、これから燃料噴射量及び燃料噴射時期を算出することができる。
前記ステップＳ３４では、前記燃料噴射回数カウンタ“０”としてからメインプログラムに復帰する。
この演算処理では、前記クランクタイミング検出部２７による行程検出が未完了であるとき（運転モード“３”）には、本来、１サイクルに一回、吸気行程の前に噴射すればエンジンを適切に回転させることができる総燃料噴射量の半分を、クランクシャフト一回転毎の一度、所定のクランク角度で噴射することにより、後述するように、エンジンの始動時、クランキング開始から最初の吸気行程では、必要な燃料の半分しか吸気されない可能性があるが、圧縮上死点又はその近傍で点火すれば、弱いながらも、確実に爆発を得てエンジンを始動することが可能となる。勿論、クランキング開始から最初の吸気行程で必要な燃料が吸気される場合、つまりクランクシャフト一回転毎に一度噴射された燃料を二回分吸気することができた場合には、十分な爆発力を得て確実にエンジンを始動することが可能である。
また、行程が検出された場合であっても、前回の燃料噴射が吸気行程の直前でない場合、例えば排気行程以前である場合には、未だ、前記必要な燃料噴射量の半分しか、噴射されていないので、もう一度、前回と同じ燃料噴射量を噴射するようにすることで、次の吸気行程には必要な燃料が吸気され、十分な爆発力を得てエンジンを運転することができる。
更に、前記行程検出が未完了であるとき、クランクシャフト２回転間における予め設定された所定クランク角度、具体的には前記図２、図５の図示“６”又は図示“１８”のクランクパルスでの吸気圧力、つまり吸気行程か若しくは膨張行程の吸気圧力を読込み、両者の吸気圧力差を算出する。前述のように、スロットルバルブがいきなり大きく開かれていなければ、吸気行程の吸気圧力と膨張行程の吸気圧力とでは相応の圧力差があるので、前記算出された吸気圧力差が、前記行程検出可能な程度の所定値以上であるときには、そのうちの何れか小さい方の吸気圧力が吸気行程の吸気圧力であるとし、その吸気圧力、即ち或る程度スロットル開度に応じた吸気圧力に応じて総燃料噴射量を設定することにより、スロットル開度に応じたエンジン回転上昇を得ることが可能となる。
一方、前記クランクシャフト２回転間における所定クランク角度での吸気圧力差が所定値未満か、若しくは始動開始直後の燃料噴射時には、冷却水温度、即ちエンジン温度に応じた総燃料噴射量を設定することにより、少なくともフリクションに抗して確実にエンジンを回転始動させることが可能となる。
なお、本実施形態では、前記図１０の演算処理に先立って、前述した運転モード“１”でクランクパルスに仮番号がナンバリングされた時点で、クランクパルスとは非同期に一定量の燃料を噴射する始動時非同期噴射が行われる。
前記点火時期算出部３１では、図１１に示す演算処理に従って、エンジン始動時並びに通常運転時の点火時期を算出設定する。この図１１の演算処理は、前記クランクパルスの入力をトリガとして実行される。なお、このフローチャートでは、特に通信のためのステップを設けていないが、演算処理によって得られた情報は随時記憶装置に更新記憶され、また演算処理に必要な情報やプログラムは随時記憶装置から読出される。
この演算処理では、まずステップＳ４１で、前記行程検出許可部２９から出力されている行程検出情報を読込む。
次にステップＳ４２に移行して、前記クランクタイミング検出部２７による行程検出が未完了である（運転モード“３”）か否かを判定し、行程検出未完了である場合にはステップＳ４７に移行し、そうでない場合にはステップＳ４４に移行する。
前記ステップＳ４７では、例えばエンジン始動時、クランキング開始から初爆による爆発力を得る以前であって、エンジン回転数が低く、不安定であるとして始動初期点火時期をクランクシャフト１回転毎に、上死点（圧縮、排気を問わない）、即ち前記図２又は図５の図示“０”又は図示“１２”のクランクパルス立下がり時±クランクシャフト回転角度１０°に設定してからメインプログラムに復帰する。なお、±クランクシャフト回転角度１０°とは、電気的、或いは機械的な応答性を加味したもので、実質的には前記図２又は図５の図示“０”又は図示“１２”のクランクパルス立下がりと同時に点火を行う。
前記ステップＳ４４では、前記エンジン回転数の平均値が所定値以上か否か、当該エンジン回転数の平均値が所定値以上である場合にはステップＳ４８に移行し、そうでない場合には前記ステップＳ４６に移行する。
前記ステップＳ４６では、例えばエンジン始動時、初爆による爆発力を得た以後であって、エンジン回転数が或る程度高い（しかしエンジン回転数は安定していない）として始動後期点火時期を１サイクルに一回、圧縮上死点前、進角側１０°、即ち図１２の図示“０”のクランクパルス立上がり時±クランクシャフト回転角度１０°に設定してからメインプログラムに復帰する。なお、±クランクシャフト回転角度１０°とは、電気的、或いは機械的な応答性を加味したもので、実質的には前記図２又は図５の図示“０”又は図示“１２”のクランクパルス立上がりと同時に点火を行う。
前記ステップＳ４８では、行程１サイクルに一回の通常点火時期設定を行ってからメインプログラムに復帰する。例えば、一般に、通常の点火では、上死点よりも少し進角側で最もトルクフルになるから、その点火時期を中心として、吸気圧力に反映される運転者の加速意思に応じて点火時期を調整するようにする。
この演算処理では、行程検出未完了の初爆以前のクランキング開始時、即ち始動初期には、前記クランクシャフト１回転毎の燃料噴射と合わせて、確実にエンジンを回転始動させるためにクランクシャフト１回転毎に上死点近傍を点火時期としてエンジンの逆回転を防止する。また、行程が検出されてからも、エンジン回転数が所定値以上となるまでは、比較的トルクフルな圧縮上死点前、進角側１０°近傍を始動後期点火時期に設定することにより、エンジン回転数を高めに安定させる。
このように本実施形態では、吸気圧力及びエンジンの運転状態から、予め記憶されたシリンダ内空気質量三次元マップに従って、シリンダ内空気質量を算出すると共に、当該吸気圧力及びエンジンの運転状態から、予め記憶された目標空燃比マップに従って、目標空燃比を算出し、シリンダ内空気質量を目標空燃比で除すことにより、燃料噴射量を算出することができるので、制御を容易且つ正確なものとすると共に、シリンダ内空気質量マップは計測し易く、目標空燃比マップは設定し易いため、マップ作成が容易になる。また、エンジン負荷を検出するためのスロットル開度センサやスロットルポジションセンサなどのスロットルセンサが不要である。
また、吸気圧力から加速状態や減速状態などの過渡期であることを検出し、目標空燃比を補正することにより、加速時や減速時でのエンジンの出力特性を、単に目標空燃比マップに従って設定されるものから、運転者が要求するもの或いは運転者の感覚に近いものに変更することができる。
また、クランクシャフトの位相からエンジンの回転数を検出することにより、エンジン回転数を容易に検出することができると共に、例えばカムセンサに代えてクランクシャフトの位相から行程状態を検出するようにすれば、高価で大がかりなカムセンサをなくすことができる。
このようにカムセンサを用いない本実施形態では、クランクシャフトの位相や行程検出が重要である。しかしながら、クランクパルスと吸気圧力とだけから行程検出を行う本実施形態では、最低でも、クランクシャフトが二回転しないと行程を検出することができない。ところが、エンジンが停止されるのは、どの行程か、分からない。つまり、どの行程からクランキングが開始されるかは、分からないのである。そこで、本実施形態では、クランキング開始から行程が検出されるまでの間、前記クランクパルスを用いて、クランクシャフト１回転毎に所定クランク角度で燃料噴射すると共に同じくクランクシャフト１回転毎に圧縮上死点近傍で点火を行う。また、行程が検出されてからは、スロットル開度に応じた目標空燃比を達成可能な燃料噴射を、１サイクルに一回行うが、エンジン回転数が所定値以上となるまでは、前記クランクパルスを用いて、トルクの出易い圧縮上死点前、進角側１０°近傍で点火を行う。
このように、本実施形態では、行程が検出されるまでは、クランクシャフト１回転毎に所定クランク角度で燃料噴射すると共に同じくクランクシャフト１回転毎に圧縮上死点近傍で点火を行うことにより、弱くても、確実な初爆を得ることができると共に、エンジンの逆回転を防止することができる。つまり、初爆が得られる以前に、圧縮上死点よりも進角側で点火を行うと、エンジンが逆回転する恐れがあるのである。また、行程が検出されてからは、１サイクルの一回、燃料噴射と点火を行う。この点火に際しては、圧縮上死点前、進角側１０°近傍で行うことにより、エンジン回転数を速やかに立ち上げることができる。
もし、行程検出前に、１サイクルに一回、つまりクランクシャフト２回転に一回、燃料噴射と点火を行うと、燃料噴射が吸気後であったり、点火が圧縮上死点でなかったりしたときに、確実な初爆が得られない。つまり、エンジンが滑らかに始動する場合と始動しない場合とが発生する。また、行程検出後に、クランクシャフトの１回転に一回、燃料噴射を行うと、エンジン回転数の使用領域が高い二輪車両では、燃料を噴射し続けなければならなくなって、インジェクタのダイナミックレンジが規制されてしまう。また、行程検出後も、クランクシャフトの１回転に一回、点火し続けるのは、エネルギの無駄である。
また、エンジン回転数差による行程検出と吸気圧力差による行程検出とを同時に行い、双方の行程検出結果が同じであるときに行程検出を完了するようにしたため、信頼性の低さを互いに補い合い、信頼性の高い行程検出が可能となる。
図１３は、排気上死点からセルモータによってエンジン回転始動したときのクランクパルス（番号だけを記載）、運転モード、噴射パルス、点火パルス、吸気圧力、エンジン回転数の経時変化を示したものである。また、このシミュレーションの前記各行程検出カウンタＣＮＴＮ、ＣＮＴＰのカウントアップ所定値ＣＮＴＮＤ、ＣＮＴＰＯは“２”とする。回転開始直後のクランクパルス番号は、単なるカウント値であり、本実施形態では、クランクパルスを５つ検出した時点で運転モード“１”とする。運転モードが“１”となったら、クランクパルスには、仮番号“仮０、仮１、…”をナンバリングし、歯抜け部が検出された時点で運転モードが“２”となる。運転モードが“２”となったら、歯抜け部の次のクランクパルスを“６”とナンバリングする。前述のようにクランクパルス番号“６”は、爆発後の下死点に付けるべき番号であるが、ここでは未だ行程が検出されていないので、このナンバリングが仮の行程ということになる。本実施形態では、排気上死点からエンジンを回転始動するため、この最初のクランクパルス番号“６”のナンバリングは間違っている。また、歯抜け部が二回連続して検出され且つ初爆又は完爆を検出したら運転モードを“３”とする。
一方、本実施形態では、前述のように運転モード“１”のときにクランクパルスに仮番号がナンバリングされたら、前述した始動時非同期噴射によって一定量の燃料が噴射される。また、前述の燃料噴射量及び燃料噴射時期設定の演算処理により、行程が未検出のとき（運転モード“２”又は“３”）にはクランクシャフト一回転に一度、所定のクランク角度で、具体的にはクランクパルス番号“７”又は“１９”のときに、１サイクルに必要な燃料量の半分ずつを噴射する。また、前記点火時期設定の演算処理により、行程検出が完了されていないとき（運転モード“２”又は“３”）にはクランクシャフト一回転に一度、所定のクランク角度で、具体的にはクランクパルス番号“０”又は“１２”のときに点火されるように点火パルスを発生する（具体的には点火パルスが立ち下がるときに点火する）。従って、前記始動時非同期噴射による燃料がクランクシャフト一回転目の吸気行程で燃焼室内に吸入され、次の圧縮上死点での点火によって初爆し、これによりエンジンが回転始動する。これにより、エンジン回転数は前記行程検出許可所定回転数以上となり、行程検出が許可される。但し、未だエンジンの回転は不安定であり、安定したアイドリング状態には至っていない。
前記運転モードが“３”に設定されて以後、各下死点でエンジン回転数差ΔＮによる行程検出と吸気圧力差ΔＰによる行程検出とが行われるが、エンジン回転数も吸気圧力も不安定なため、なかなか行程を検出できない。その後、三回目の下死点でエンジン回転数差ΔＮが前記吸気行程後エンジン回転数差閾値ΔＮＩＮ以下となり、仮の行程と検出された行程とが異なるためにエンジン回転数差行程検出フラグＦＮは“２”にセットされ、エンジン回転数差行程検出カウンタＣＮＴＮが“１”にインクリメントされる。そして、次の四回目の下死点でもエンジン回転数差ΔＮが前記排気行程前エンジン回転数差閾値ΔＮＩＮ以下となり、仮の行程と検出された行程とが異なるためにエンジン回転数差行程検出フラグＦＮは“２”にセットされたままとなり、エンジン回転数差行程検出カウンタＣＮＴＮは“２”にインクリメントされ、カウントアップする。同時に、この四回目の下死点で、吸気圧力差ΔＰが前記排気行程前吸気圧力差閾値ΔＰＥＸ以上となり、仮の行程と検出された行程とが異なるために吸気圧力差行程検出フラグＦＰは“２”にセットされ、吸気圧力差行程検出カウンタＣＮＴＰが“１”にインクリメントされる。この結果、運転モードが“４”に設定され、クランクパルスのナンバリングを３６０°位相ずらしして真の行程が検出され、行程検出が完了する。
これに対し、図１４は、圧縮上死点からエンジンを回転始動したときのクランクパルス（ナンバリング）、運転モード、噴射パルス、点火パルス、吸気圧力、エンジン回転数の経時変化を示したものである。回転開始直後のナンバリングや運転モードの設定、或いは燃料噴射量及び燃料噴射時期設定や点火時期設定は、前記図１２と同様である。なお、運転モードが“２”となった後の、歯抜け部の次のクランクパルス“６”は爆発後の下死点であるので、仮の行程と真の行程とは一致している。また、このシミュレーションでは、圧縮上死点からエンジン回転始動しているので、前記始動時非同期噴射による燃料及びクランクシャフト二回転目の始動時同期噴射による燃料が同じくクランクシャフト二回転目の吸気行程で燃焼室内に吸入され、クランクシャフト三回転目の圧縮上死点での点火によって初爆し、これによりエンジンが回転始動する。また、それより以前に、セルモータによって回転始動されるエンジン回転数は前記行程検出許可所定回転数以上となり、行程検出が許可される。但し、未だエンジンの回転は不安定であり、安定したアイドリング状態には至っていない。
このシミュレーションでも、運転モードが“３”に設定されて以後、各下死点でエンジン回転数差ΔＮによる行程検出と吸気圧力差ΔＰによる行程検出とが行われる。このシミュレーションでは、運転モード“３”設定後、最初の下死点でエンジン回転数差ΔＮが前記排気行程前エンジン回転数差閾値ΔＮＥＸ以上となり、仮の行程と検出された行程とが一致しているためにエンジン回転数差行程検出フラグＦＮは“１”にセットされ、エンジン回転数差行程検出カウンタＣＮＴＮが“１”にインクリメントされる。そして、次の二回目の下死点でもエンジン回転数差ΔＮが前記吸気行程後エンジン回転数差閾値ΔＮＩＮ以下となり、仮の行程と検出された行程とが一致しているためにエンジン回転数差行程検出フラグＦＮは“１”にセットされたままとなり、エンジン回転数差行程検出カウンタＣＮＴＮは“２”にインクリメントされ、カウントアップする。すると、エンジン回転数差行程検出フラグＦＮが“１”にセットされた状態でエンジン回転数差行程検出カウンタＣＮＴＮがカウントアップしたため、仮の行程検出が完了したものとする。
その後の下死点でも、エンジン回転数差ΔＮが前記排気行程前エンジン回転数差閾値ΔＮＥＸ以上となり、仮の行程と検出された行程とが一致しているためにエンジン回転数差行程検出フラグＦＮは“１”にセットされたままとなり、エンジン回転数差行程検出カウンタＣＮＴＮが“３”にインクリメントされ、次の下死点でもエンジン回転数差ΔＮが前記吸気行程後エンジン回転数差閾値ΔＮＩＮ以下となり、仮の行程と検出された行程とが一致しているためにエンジン回転数差行程検出フラグＦＮは“１”にセットされたままとなり、エンジン回転数差行程検出カウンタＣＮＴＮは“４”にインクリメントされる。同時に、この下死点で、吸気圧力差ΔＰが前記吸気行程後吸気圧力差閾値ΔＰＩＮ以下となり、仮の行程と検出された行程とが一致しているために吸気圧力差行程検出フラグＦＰは“１”にセットされ、吸気圧力差行程検出カウンタＣＮＴＰが“１”にインクリメントされる。この結果、運転モードが“４”に設定され、クランクパルスのナンバリングをそのまま継続して真の行程が検出され、行程検出が完了する。
なお、前記実施形態では、吸気管内噴射型エンジンについて詳述したが、本発明のエンジン制御装置は、気筒内噴射型エンジン、所謂直噴型エンジンにも同様に展開できる。
また、前記実施形態では、単気筒エンジンについて詳述したが、本発明のエンジン制御装置は、気筒数が２気筒以上の、所謂マルチシリンダ型エンジンについても同様に展開できる。
また、エンジンコントロールユニットは、マイクロコンピュータに代えて各種の演算回路で代用することも可能である。
【産業上の利用の可能性】
以上説明したように、本発明のエンジン制御装置によれば、吸気圧力の変動から行程を検出すると共にエンジン回転数の変動からも行程を検出し、夫々の検出された行程が一致したときに行程検出を完了する構成としたため、エンジンの運転状態に応じて行程検出方法を選択する面倒がなく、信頼性の低さを互いに補うことができるので、検出された行程の信頼性も高い。
【図１】
2004013476.tif 000003
【図２】
2004013476.tif 000004
【図３】
2004013476.tif 000005
【図４】
2004013476.tif 000006
【図５】
2004013476.tif 000007
【図６】
2004013476.tif 000008
【図７】
2004013476.tif 000009
【図８】
2004013476.tif 000010
【図９】
2004013476.tif 000011
【図１０】
2004013476.tif 000012
【図１１】
2004013476.tif 000013
【図１２】
2004013476.tif 000014
【図１３】
2004013476.tif 000015
【図１４】
2004013476.tif 000016
【国際調査報告】
2004013476.tif 000017
2004013476.tif 000018