(57)【要約】【課題】単気筒の４サイクル内燃エンジンの安定状態を判断し正確なエンジンサイクルの行程判別が可能である行程判別装置を提供する。【解決手段】検知手段においてエンジン負荷が安定状態であると検知された場合にのみ、判別手段が、エンジンサイクル中の吸気管内圧値の変化に基づいて単気筒の４サイクル内燃エンジンの行程を判別する。【選択図】  図２
2004340094.tif 000002
【特許請求の範囲】
【請求項１】
単気筒４のサイクル内燃エンジンの行程判別装置であって、
前記４サイクル内燃エンジンの吸気管内圧を所定クランク角度位置毎に順次ＰＭ値として検出する吸気管内圧検出手段と、
前記４サイクル内燃エンジンの負荷の安定状態を検知する検知手段と、
前記検知手段によってエンジン負荷の安定状態を検知した場合にのみ、前記ＰＭ値の変化状態に基づいて前記４サイクル内燃エンジンの行程判別を実行する行程判別手段と、
からなることを特徴とする行程判別装置。
【請求項２】
前記検知手段は、現在のクランク角度位置におけるＰＭ値とその直前のエンジンサイクルでの前記クランク角度位置と同一のクランク角度位置におけるＰＭ値との差が所定閾値より小である場合にエンジン負荷が安定状態であると判断する判定手段を含むことを特徴とする請求項１記載の行程判別装置。
【請求項３】
前記判別手段は、１つのエンジンサイクル中におけるＰＭ値の最大値及び最小値に基づいて前記４サイクル内燃エンジンの行程を判別することを特徴とする請求項１記載の行程判別装置。
【請求項４】
前記判別手段は、前記判定手段において前記エンジン負荷の安定状態が所定回数以上判断されたときにのみ、前記４サイクル内燃エンジンの行程判別を行うことを特徴とする請求項１記載の行程判別装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、単気筒の４サイクル内燃エンジン（以下単にエンジンと称する）の行程判別装置に関する。
【０００２】
【従来の技術】
エンジンの行程を判別する装置として、特開２０００−２６５８９４号に開示されている如き装置が知られている。この装置は、クランク角パルスを発生するパルス発生手段と、クランク軸（クランクシャフト）の２回転中に複数回測定する吸気管内圧値測定手段とを有し、エンジン始動時における吸気管内圧測定値の大小関係によってクランクの上死点がどの行程にあるかを判断するものである。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来の装置では、エンジンの運転条件が過渡状態すなわちエンジン回転数の変化率が大きい場合（例えば加速時または減速時など）において、吸気・圧縮行程での吸気管内圧値と膨張・排気行程での吸気管内圧値とが逆転することがある。特に、加速時においては、吸気・圧縮行程での吸気管内圧値が大気圧に近くなるため、直前の膨張・排気行程での吸気管内圧値よりもより大気圧に近い大きな値をとることがある。それ故、単に前後のエンジンサイクルの吸気管内圧値の大小関係のみで行程を判断すると、誤判別してしまう場合があった。
【０００４】
そこで、本発明は、エンジンの安定状態を判断し正確なエンジンサイクルの行程判別が可能である行程判別装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明によるエンジンの行程判別装置は、前記エンジンの吸気管内圧を所定クランク角度位置毎に順次ＰＭ値として検出する吸気管内圧検出手段と、前記エンジンの負荷の安定状態を検知する検知手段と、前記検知手段によってエンジン負荷の安定状態を検知した場合にのみ、前記ＰＭ値の変化状態に基づいて前記エンジンの行程判別を実行する行程判別手段と、からなることを特徴とする。
【０００６】
【発明の実施の形態】
以下に、本発明による行程判別装置の実施例について図面に基づいて説明する。
図１は、エンジン及びエンジン制御部の構成を示すブロック図を示している。エンジン１０においては、吸気管１２から吸入した空気と吸気管１２に設けられたインジェクタ２８から噴射された燃料との混合気が燃焼室２０に吸入され、吸入した混合気が燃焼せしめられてピストン１６が往復運動し、クランクシャフト（クランク軸）１８が回転する。燃焼室２０において燃焼した混合気は、排気ガスとして排気管１４へ排出される。吸気管１２には、吸入する空気量を制御するスロットル２２及び吸気管内圧センサ２６が設けられている。スロットル２２にはスロットル開度センサ２４が設けられており、スロットルの開度を検出しスロットル開度信号Ｓｔを発する。また、吸気管内圧センサ２６は、吸気管内圧に対応する圧力信号Ｓｐを出力する。
【０００７】
クランクシャフト１８には、回転体３０が、クランクシャフト１８に連動するように設けられている。回転体３０の外周部には、複数の被検出片である複数の磁性突起（図示せず）が設けられている。また、磁性突起の回転軌跡の近傍の位置には、クランク角センサ３２が設けられている。クランク角センサ３２は、所定のクランク角毎、例えばクランク角２０度毎に、磁性突起による磁束の変化に応じて、磁性突起を検出したことを示す検出信号Ｓｄを発する。
【０００８】
スロットル開度センサ２４、吸気管内圧センサ２６及びクランク角センサ３２から発せられた信号は、ＥＣＵ（電子制御ユニット）５０のインターフェース５２に供給される。インターフェース５２では、スロットル開度信号Ｓｔ及び圧力信号Ｓｐが適当な手段によって数値化され、クランク角信号Ｓｄは、インターフェース５２内の波形成形回路（図示せず）によってパルス列からなるクランク角パルスに波形整形される。インターフェース５２からの数値データ信号及びクランク角パルスが、入出力バス５６を介してＣＰＵ５４に供給される。よって、ＣＰＵ５４は、所定のクランク角毎に後述するメインルーチンを実行することができる。
【０００９】
ＣＰＵ５４は、入出力バス５６を介してデータ信号又はアドレス信号をＲＯＭ（リードオンリーメモリ）５８、ＲＡＭ（ランダムアクセスメモリ）６０、インジェクタ駆動回路６２及び点火プラグ駆動回路６４との間で送受信する。インジェクタ駆動回路６２は、インジェクタ２８に接続されており、ＣＰＵ５４からの噴射指令に基づいて駆動電流Ｉｊを供給する。同様に、点火プラグ駆動回路６４は、点火プラグ３４に接続されており、ＣＰＵ５４からの点火指令に基づいて駆動電流Ｉｇを供給する。駆動電流Ｉｇが点火プラグ３４に供給されることによって、点火プラグ３４から火花が発せられる。この火花は燃焼室２０に吸入された混合気に引火し、混合気の燃焼によりエンジンの爆発行程が始まることになる。また、ＲＯＭ５８は、ＣＰＵ５４が実行するプログラム等を記憶しており、ＲＡＭ６０は、プログラムで用いられる変数データやフラグ値を記憶する。
【００１０】
図２は、ＣＰＵ５４がクランク角センサ３２から発せられるクランク角パルスを検知する毎に実行するエンジン行程判別メインルーチンを示すフローチャートである。エンジン行程判別メインルーチンにおいては、まず、エンジンのクランク角毎の吸気管内圧値（すなわちＰＭ値）をＣＰＵ５４のバッファＲＡＭ６０に記憶するＰＭ値記憶サブルーチンＳＳ１を実行する。ＰＭ値記憶サブルーチンＳＳ１は、バッファＲＡＭ６０にＰＭ値を記憶するとともに、本ルーチンの以後のステップで用いる現クランク角度位置から２回転前の同一のクランク角度位置でのＰＭ値を示す２ＰＭｐ、現クランク角度位置から１回転前の同一クランク角度位置でのＰＭ値を示す１ＰＭｐ、及び現在のＰＭ値を示すＰＭｃを設定する。ＰＭ値記憶サブルーチンＳＳ１の動作については、後に説明する。
【００１１】
エンジン行程判別メインルーチンでは、ＰＭ値記憶サブルーチンＳＳ１において設定された２ＰＭｐ、１ＰＭｐ及びＰＭｃを用いて、まず、２ＰＭｐが０であるか否かを判別する（ステップＳ１）。動作の初期状態において、バッファＲＡＭ６０のメモリに初期値０が設定されているため、クランクが２回転するまでは、２ＰＭｐ値は０となる。つまり、ステップＳ１では、クランク２回転分のＰＭ値データが記憶されたか否かを判別するのである。よって、ステップＳ１において２ＰＭｐが０のときは、メインルーチンをそのまま終了する。ステップＳ１で２ＰＭｐが０でないときは、ＰＭ値記憶サブルーチンから与えられた２ＰＭｐ及びＰＭｃを用いて吸気管内圧差ΔＰＭ２ＴＤＣを算出する（ステップＳ２）。ここで、ΔＰＭ２ＴＤＣは以下の式を用いて算出される。
【００１２】
ΔＰＭ２ＴＤＣ＝｜ＰＭｃ−２ＰＭｐ｜
次に、算出されたΔＰＭ２ＴＤＣ値が所定の安定閾値より大か否かを判別する（ステップＳ３）。ΔＰＭ２ＴＤＣが所定安定閾値より小さい場合は、エンジン運転状態が安定状態と判断して安定判定カウントを示す変数ＳＴｃを１だけインクリメントする（ステップＳ４）。これに対して、ΔＰＭ２ＴＤＣが所定安定閾値より大きい場合は、エンジン運転状態が不安定状態と判断して変数ＳＴｃを１だけデクリメントする（ステップＳ５）。続いて、ＳＴｃが所定数以上か否かを判別する（ステップＳ６）。ＳＴｃが所定数以上である場合は、は、エンジン運転状態が十分に安定状態にあるとして、続くエンジン行程確認用ＰＭ値検索サブルーチンＳＳ２を実行する。これに対して、ＳＴｃが所定数に達していない場合は、エンジン運転状態が十分に安定状態ではないと判断してルーチンを終了する。ステップＳ６の判別においては、ある一定の時間内にＳＴｃが所定数以上であるか否かを判別すること、もしくは別のカウンタ（図示せず）を用いて所定ルーチン実行回数中にＳＴｃが所定数以上に達したか否かを判別すること、などを追加することができる。行程確認用ＰＭ値検索サブルーチンＳＳ２を実行した後、続いて現在のクランク位置番号が所定番号であるか否かを判別する（ステップＳ７）。この所定番号は、クランク１回転中の任意の位置に対応する任意の数の番号を取り得る。現在のクランク位置番号が所定番号のときは、エンジン行程判別サブルーチンＳＳ３へと進み、サブルーチンの実行後、メインルーチンへ戻りルーチンを終了する。現在のクランク位置番号が所定番号でないときは、そのままエンジン行程判別メインルーチンを終了する。
【００１３】
行程確認用ＰＭ値検索サブルーチンＳＳ２は、後に続くエンジン行程判別サブルーチンＳＳ３において用いるいくつかの変数を設定するルーチンである。行程確認用ＰＭ値検索サブルーチンＳＳ２の動作については、後に説明する。
図３は、ＰＭ値記憶サブルーチンＳＳ１を示すフローチャートである。ＰＭ値記憶サブルーチンにおいては、まず、現在の吸気管内圧値ＰＭを読み込む（ステップＳ３１）。次に、バッファＲＡＭ６０に記憶されているＰＭ１Ｐｎ値をＰＭ２Ｐｎに上書きする（ステップＳ３２）。ここで、ｎはクランク角パルスによって表されるエンジンのステージ番号であり、例えば初期値を１とする１から１６の範囲の整数である。続いて、バッファＲＡＭ６０に記憶されているＰＭＣｎ値をＰＭ１Ｐｎに上書きし（ステップＳ３３）、更に、ステップＳ３１で読み込んだＰＭ値をＰＭＣｎに上書きする（ステップＳ３４）。例えば、ｎ＝１のとき、ステップＳ３２では、ＰＭ１Ｐ１に記憶された値がＰＭ２Ｐ１に上書きされる。続いて、ステップＳ３３では、ＰＭＣ１に記憶された値がＰＭ１Ｐ１に上書きされ、ステップ３４では、読み取られた現在ＰＭ値がＰＭＣ１に上書きされる。かかる動作を実行することによって、ＰＭＣｎには、現在のＰＭ値が記憶され、ＰＭ１Ｐｎ及びＰＭ２Ｐｎには、クランク１回転前のＰＭ値及びクランク２回転前のＰＭ値が、それぞれ記憶されるのである。
【００１４】
次に、現在のＰＭ２Ｐｎ値を２ＰＭｐとする（ステップＳ３５）。続いて、現在のＰＭ１Ｐｎ値を１ＰＭｐとし（ステップＳ３６）、現在のＰＭＣｎ値をＰＭｃとする（ステップＳ３７）。次に、ｎが所定数すなわち１６に達したか否かを判別する（ステップＳ３８）。ｎが所定数に達していない場合は、ｎを１だけ増加し（ステップＳ３９）、サブルーチンを終了する。これに対して、ｎが所定数に達していた場合は、ｎを１に戻し（ステップＳ４０）、サブルーチンを終了する。かかるサブルーチンを用いることによって、現在のクランク回転におけるＰＭ値ＰＭｃ、クランクの１回転前におけるＰＭ値１ＰＭｐ、及びクランクの２回転前におけるＰＭ値２ＰＭｐを設定かつ記憶することが可能となる。
【００１５】
図４は、行程確認用ＰＭ値検索サブルーチンＳＳ２を示すフローチャートである。行程確認用ＰＭ値検索サブルーチンＳＳ２においては、まず、Ｆ＿ＣＹＣが１か否かを判別する（ステップＳ５１）。Ｆ＿ＣＹＣはエンジン行程が既に判別済みかどうかを表すフラグ値であり、エンジン行程が既に判別済みの場合は１、未判別の場合は０となる。よって、ステップＳ５１において、Ｆ＿ＣＹＣが１でない場合は、エンジン行程は未判別であるとしてそのままルーチンを終了する。一方、ステップＳ５１においてＦ＿ＣＹＣが１であると判別した場合は、クランク角度位置がエンジン行程基準位置か否かを判別する（ステップＳ５２）。エンジン行程基準位置とは、４サイクルエンジンの１エンジンサイクルの４行程（吸気・圧縮・膨張・排気）を１単位としたときの基準位置であり、本実施例では、吸気行程の開始位置である。
【００１６】
ステップＳ５２において、クランク角度位置がエンジン行程基準位置ではない場合は、ＥＮＧＤＴＣが０か否かを判別する（ステップＳ５３）。ＥＮＧＤＴＣは、エンジン行程を「吸気・圧縮行程」及び「膨張・排気行程」に分類したときの分類番号を表すものであり、吸気・圧縮行程の場合は０、膨張・排気行程の場合は１となる。よって、ステップＳ５３においてＥＮＧＤＴＣが０と判別した場合は、エンジンが吸気・圧縮行程として、現在ＰＭ値ＰＭｃがＰＭＬＯＷより小さいか否かを判別する（ステップＳ５４）。ここで、ＰＭＬＯＷは、メインルーチン動作中に検知した吸気管内圧の最小値であり、すなわち吸気・圧縮行程での吸気管内圧の最小値である。ＰＭｃがＰＭＬＯＷより小さい場合は、現在のＰＭｃ値をＰＭＬＯＷに上書き更新する（ステップＳ５５）。
【００１７】
続いて、現在クランク位置番号をＰＭＰＫＳＴＧに上書き更新し（ステップＳ５６）、サブルーチンを終了する。ここで、ＰＭＰＫＳＴＧは、上述のＰＭＬＯＷを検出したクランク位置番号を記憶する変数である。ステップＳ５３において、ＥＮＧＤＴＣが０でないと判別した場合は、現在のクランク位置番号がＰＭＰＫＳＴＧの番号と一致するか否かを判別する（ステップＳ５７）。現在クランク位置番号がＰＭＰＫＳＴＧと一致する場合は、ＰＭｃ値をＰＭＨＩＧＨに上書き更新し（ステップＳ５８）、サブルーチンを終了する。ここで、ＰＭＨＩＧＨは、現在までに検知した吸気管内圧の最大値である。ステップＳ５７において、現在クランク位置番号がＰＭＰＫＳＴＧと一致しない場合は、そのままサブルーチンを終了する。
【００１８】
一方、ステップＳ５２において、クランク角度位置がエンジン行程基準位置である場合は、現在のＰＭｃ値をＰＭＬＯＷに上書き更新し（ステップＳ５９）、同様にＰＭｃ値をＰＭＨＩＧＨに上書き更新する（ステップＳ６０）。続いて、現在クランク位置番号をＰＭＰＫＳＴＧに上書き更新し（ステップＳ６１）、サブルーチンを終了する。Ｓ５９〜Ｓ６１のステップを経ることによって、吸気行程の開始位置でのＰＭ値の基準値が与えられる。
【００１９】
図５は、エンジン行程判別サブルーチンＳＳ３を示すフローチャートである。エンジン行程判別サブルーチンＳＳ３においては、まず、Ｆ＿ＣＹＣが１か否かを判別する（ステップＳ７１）。Ｆ＿ＣＹＣが１でない場合は、エンジン行程未判別として、現在ＰＭ値ＰＭｃが１回転前のＰＭ値１ＰＭｐより大きいか否かを判別する（ステップＳ７２）。ＰＭｃが１ＰＭｐより大きい場合は、ＰＭｃ及び１ＰＭｐを用いて吸気管内圧差ΔＰＭ１ＴＤＣを算出する（ステップＳ７３）。ここで、ΔＰＭ１ＴＤＣは以下の式を用いて算出される。
【００２０】
ΔＰＭ１ＴＤＣ＝ＰＭｃ−１ＰＭｐ
次に、算出されたΔＰＭ１ＴＤＣ値が所定閾値ＴＨ１より大か否かを判別する（ステップＳ７４）。ΔＰＭ１ＴＤＣがＴＨ１より大きい場合は、エンジン行程が膨張・排気行程であると判断し、変数ＥＮＧＤＴＣを１とする（ステップＳ７５）。続いて、エンジン行程判別が行われたことを示すフラグ値Ｆ＿ＣＹＣを１にして（ステップＳ７６）、サブルーチンを終了する。ステップＳ７２においてＰＭｃが１ＰＭより小さいと判別した場合、及びステップＳ７４においてΔＰＭ１ＴＤＣがＴＨ１より小さいと判別した場合は、ともにエンジン行程が不明又は判別不能と判断して、フラグ値Ｆ＿ＣＹＣを０とし（ステップＳ７７）、サブルーチンを終了する。
【００２１】
一方、ステップＳ７１において、Ｆ＿ＣＹＣが１であると判別した場合は、ＥＮＧＤＴＣが１か否かすなわちエンジン行程が膨張・排気行程か否かを判別する（ステップＳ７８）。ＥＮＧＤＴＣが１でない場合は、エンジン行程の確認は実施せず、現在のＦ＿ＣＹＣ値及びＥＮＧＤＴＣ値を維持して（ステップＳ７９）、サブルーチンを終了する。ステップＳ７８において、ＥＮＧＤＴＣが１である場合は、行程確認用ＰＭ値検索サブルーチンＳＳ２で設定されたＰＭＨＩＧＨ値がＰＭＬＯＷ値以上であるか否かを判別する（ステップＳ８０）。ＰＭＨＩＧＨがＰＭＬＯＷ以上である場合は、ＰＭＨＩＧＨ及びＰＭＬＯＷを用いて吸気管内圧差ΔＰＭ１ＴＤＣを算出する（ステップＳ８１）。ここで、ΔＰＭ１ＴＤＣは以下の式を用いて算出される。
【００２２】
ΔＰＭ１ＴＤＣ＝ＰＭＨＩＧＨ−ＰＭＬＯＷ
次に、算出されたΔＰＭ１ＴＤＣ値が所定閾値ＴＨａより大か否かを判別する（ステップＳ８２）。ΔＰＭ１ＴＤＣがＴＨａより小さい場合は、続いてΔＰＭ１ＴＤＣが所定閾値ＴＨｂより大か否かを判別する（ステップＳ８３）。ΔＰＭ１ＴＤＣがＴＨｂよりも小さい場合は、エンジン行程が不明又は判別不能と判断して、フラグ値Ｆ＿ＣＹＣを０とし（ステップＳ８４）、サブルーチンを終了する。また、ステップＳ８０においてＰＭＨＩＧＨがＰＭＬＯＷより小さいと判別した場合、及びステップＳ８３においてΔＰＭ１ＴＤＣがＴＨｂより大きいと判別した場合は、エンジン行程の確認は実施せず、ステップＳ７９に進んで現在のＦ＿ＣＹＣ値及びＥＮＧＤＴＣ値を維持し、サブルーチンを終了する。ステップＳ８２において、ΔＰＭ１ＴＤＣがＴＨａより大きいと判別した場合は、エンジン行程が膨張・排気行程であると判断し、変数ＥＮＧＤＴＣを１とする（ステップＳ８５）。続いて、エンジン行程判別が行われたことを示すフラグ値Ｆ＿ＣＹＣを１にして（ステップＳ８６）、サブルーチンを終了する。
【００２３】
かかるサブルーチンを実行することによって、エンジン行程判別が行われていないすなわちＦ＿ＣＹＣが０の場合は、ステップＳ７１〜ステップＳ７６までのステップを経て、エンジン行程が膨張・排気行程であることを判別し、エンジン行程が既に行われているすなわちＦ＿ＣＹＣが１の場合は、ステップＳ７１〜ステップＳ８２〜ステップＳ８６までのステップを経て、エンジン行程が膨張・排気行程であることを確認することができるのである。
【００２４】
図６は、定常状態にあるエンジンのスロットル開度、エンジン行程、吸気管内圧及びクランク角パルスのタイミングを示している。クランク角パルスは、１つのエンジンサイクル（吸気・圧縮・膨張・排気）において３２回検出される。従って、クランク角パルスは、クランク１回転毎に１６回検出されることになる。定常状態にあるエンジンでは、スロットル開度はほぼ一定であり、吸気管内圧は１つのエンジンサイクル毎に周期的に増減を繰り返している。図２で示されたエンジン行程判別メインルーチンは、クランク角パルスを検知する毎に実行されるが、現在のＰＭ値とクランク２回転前のＰＭ値との差が小さいため、ステップＳ３で行われる判別は常に安定状態となる。例えば、Ａ２を現在のクランク角度位置とした場合、Ａ１はクランク２回転前のクランク角度位置、Ｂ１はクランク１回転前のクランク角度位置をそれぞれ示すことになる。このとき、ΔＰＭ２ＴＤＣであるＡ１でのＰＭ値とＡ２でのＰＭ値との差の絶対値は、ほぼ０又は非常に小さい値となり、所定の安定閾値よりは小さいと判別されるのである。
【００２５】
また、ステップＳ７で実行される判別の所定位置番号をそれぞれＡ１、Ｂ１、Ａ２、Ｂ２とすると、一つの例として、現在クランク角度位置がＡ２でかつエンジン行程が未判別すなわちＦ＿ＣＹＣが０である場合は、行程確認用ＰＭ値検索サブルーチンＳＳ２においては、ステップＳ５１の判別によりそのままの変数データを維持したままサブルーチンを終了する。エンジン行程判別サブルーチンＳＳ３においては、ステップＳ７１からステップＳ７２に進む。ここで図６より、ＰＭｃすなわちＡ２での吸気管内圧は、１ＰＭｐすなわちＢ１での吸気管内圧より小さいため、ステップＳ７７に進み、エンジン行程未判別すなわちＦ＿ＣＹＣが０としてルーチンを終了する。別の例として、現在クランク角度位置がＢ２でかつＦ＿ＣＹＣが０である場合は、エンジン行程判別サブルーチンＳＳ３においては、ステップＳ７１からステップＳ７２に進む。ここでＰＭｃすなわちＢ２での吸気管内圧は、１ＰＭｐすなわちＡ２での吸気管内圧より非常に大きいため、ステップＳ７３〜ステップＳ７６へと進んでＥＮＧＤＴＣ及びＦ＿ＣＹＣをそれぞれ１に設定する。つまり現在のエンジン行程が膨張・排気行程であることを判別するのである。
【００２６】
また、現在クランク角度位置がＢ２でかつＦ＿ＣＹＣ及びＥＮＧＤＴＣがともに１である場合は、行程確認用ＰＭ値検索サブルーチンＳＳ２においては、ステップＳ５１〜ステップＳ５８に進み、ＰＭＰＫＳＴＧのクランク位置番号（例えば今回すなわちＢ２）における吸気管内圧値をＰＭＨＩＧＨに設定する。続いて、エンジン行程判別サブルーチンＳＳ３においては、ステップＳ７１〜ステップＳ８０と進む。このとき、ＰＭＬＯＷは以前のクランク角度位置における吸気管内圧の最小値（例えばＡ２における吸気管内圧値、図６参照）であるため、ステップＳ８０〜ステップＳ８２に進む。ここでステップＳ８１において算出されるΔＰＭ１ＴＤＣは所定閾値ＴＨａより大きくなり、ステップＳ８５以降へと進んでＥＮＧＤＴＣ及びＦ＿ＣＹＣをそれぞれ１に設定する。つまり現在のエンジン行程が膨張・排気行程であることを確認するのである。
【００２７】
図７は、別の一例として、膨張行程中に加速すなわちスロットル開度を大きくしたときのエンジンのスロットル開度、エンジン行程、吸気管内圧及びクランク角パルスのタイミングを示している。加速状態にあるエンジンでは、スロットル開度の増加とともにエンジン回転数が増加するため、吸気管内圧はそれまでの定常状態より増加し、周期的な増減を示さなくなる。このとき、エンジン行程判別メインルーチンＳＳ３は、ステップＳ３における判別で安定カウントダウンすなわち不安定状態と判別することになる。例えば、現在のクランク角度位置をＡ２とすると、ＰＭｃはＡ２におけるＰＭ値となり、２ＰＭｐはＡ１におけるＰＭ値となる。よってΔＰＭ２ＴＤＣは大きな値となり、ステップＳ３における安定閾値を超えてしまう。また、Ａ２近傍のクランク角度位置におけるＰＭ値も、同様に２回転前のＰＭ値よりも非常に大きいため、Ａ２の前後の割り込み処理においてもメインルーチンは不安定状態と判別することになる。かかる場合には、本発明のエンジン行程判別装置は、安定カウンタＳＴｃをデクリメントすることによって行程判別を実行しないことにして、システムがエンジン運転状態を誤判断しないように制御される。
【００２８】
以上のような構成による装置を用いることによって、エンジンのエンジン行程を、エンジンの運転状態が定常状態又は過渡状態（加速・減速状態）にかかわらず、正しく判別することが可能となる。
【００２９】
【発明の効果】
上記したことから明らかなように、本発明によるエンジンの行程判別装置は、エンジンの負荷の不安定状態における誤判断を回避することが可能となる。
【図面の簡単な説明】
【図１】エンジン及びエンジン制御部の構成を示すブロック図である。
【図２】エンジン行程判別メインルーチンを示すフローチャートである。
【図３】図２で示されたエンジン行程判別メインルーチン中に実行されるＰＭ値記憶サブルーチンを示すフローチャートである。
【図４】図２で示されたエンジン行程判別メインルーチン中に実行される行程確認用ＰＭ値検索サブルーチンを示すフローチャートである。
【図５】図２で示されたエンジン行程判別メインルーチン中に実行されるエンジン行程判別サブルーチンを示すフローチャートである。
【図６】エンジンが定常状態にある場合における、スロットル開度、エンジン行程、吸気管内圧及びクランク角パルスの変化の関係を示すタイムチャートである。
【図７】エンジンが過渡状態すなわち膨張行程中の加速状態にある場合における、スロットル開度、エンジン行程、吸気管内圧及びクランク角パルスの変化の関係を示すタイムチャートである。
【符号の説明】
１０  エンジン
１２  吸気管
１８  クランクシャフト
２６  吸気管内圧センサ
３２  クランク角センサ
５０  電子制御ユニット（ＥＣＵ）
５４  中央処理装置（ＣＰＵ）
【図１】
2004340094.tif 000003
【図２】
2004340094.tif 000004
【図３】
2004340094.tif 000005
【図４】
2004340094.tif 000006
【図５】
2004340094.tif 000007
【図６】
2004340094.tif 000008
【図７】
2004340094.tif 000009