(57)【特許請求の範囲】
【請求項１】
単気筒の内燃エンジンのクランクシャフトに連動し複数の被検出片が設けられた回転体と、前記被検出片が近傍を通過する毎に検出信号を発する検出手段と、前回検出信号が発せられたときの時刻と今回検出信号が発せられたときの時刻との時間差に基づいて内燃エンジンの行程を判別する判別手段と、からなる内燃エンジンの行程判別装置であって、
前記回転体の外周部は、回転方向に等角度間隔をもって前記複数の被検出片が形成された被検出片形成域と、被検出片が形成されていない非形成域と、からなり、
前記非形成域は、前記等角度間隔より大きい角度間隔を有し、かつ前記内燃エンジンのピストンが上死点から下死点へ移動する間において、前記非形成域が前記検出手段の近傍を通過するように前記回転体に設けられており、
前記判別手段は、前記非形成域を挟む相隣り合う２つの被検出片のうちの一方が通過したときの時刻と前記２つの被検出片のうちの他方が通過したときの時刻との間の時間差を演算し、前記検出手段の近傍を前記非形成域が今回通過したときにおける時間差が、前記検出手段の近傍を前記非形成域が前回通過したときにおける時間差を下回るとき前記内燃エンジンの行程が爆発行程であると判定する爆発行程判定手段を有することを特徴とする内燃エンジンの行程判別装置。
【請求項２】
単気筒の内燃エンジンのクランクシャフトに連動し複数の被検出片が設けられた回転体と、前記被検出片が近傍を通過する毎に検出信号を発する検出手段と、前回検出信号が発せられたときの時刻と今回検出信号が発せられたときの時刻との時間差に基づいて内燃エンジンの行程を判別する判別手段と、からなる内燃エンジンの行程判別装置であって、
前記回転体の外周部は、回転方向に等角度間隔をもって前記複数の被検出片が形成された被検出片形成域と、被検出片が形成されていない非形成域と、からなり、
前記非形成域は、前記等角度間隔より大きい角度間隔を有し、かつ前記内燃エンジンのピストンが上死点から下死点へ移動する間において、前記非形成域が前記検出手段の近傍を通過するように前記回転体に設けられており、
前記判別手段は、前記ピストンが前記下死点から前記上死点へ近づくときに前記検出手段の近傍を通過する２つ以上の被検出片のうちの第１の被検出片が通過するときの時刻と、前記２つ以上の被検出片のうちの第２の被検出片が通過するときの時刻と、の間の第１時間差を演算し、
前記非形成域を挟む相隣り合う２つの被検出片のいずれか一方が前記検出手段の近傍を通過するときの時刻と、該一方の被検出片に前記等角度間隔をもって隣接する被検出片が前記検出手段の近傍を通過するときの時刻と、の間の第２時間差を演算し、
前記第１時間差に対する前記第２時間差の比が所定値より大きいときには、前記内燃エンジンの行程が爆発行程であると判定する爆発行程判定手段を有することを特徴とする内燃エンジンの行程判別装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、単気筒の内燃エンジンの行程判別に関する。
【０００２】
【従来の技術】
内燃エンジンの行程を判別する装置として、特開昭６１−８９９５９号公報に開示されている如き装置が知られている。この装置は、クランク軸の近傍に設けられた２つのクランク角センサの各々から発せられる２つの検出信号を用いてエンジン行程を判別するものであった。
【０００３】
【発明が解決しようとする課題】
しかし乍ら、従来の装置は、２つのクランク角センサを必要とするものであったが故に複雑な構成とならざるを得なかった。また、２つの検出信号を用いてエンジンの行程を判別するものであったが故に、エンジン行程を判別する為の時間を要するという不都合も生じた。
【０００４】
本発明は、上述の点に鑑みてなされたものであり、その目的とするところは、簡素な構成で内燃エンジンの行程を速やかに確定することができる内燃エンジンの行程判別装置を提供することにある。
【０００５】
【課題を解決するための手段】
本発明による内燃エンジンの行程判別装置は、単気筒の内燃エンジンのクランクシャフトに連動し複数の被検出片が設けられた回転体と、前記被検出片が近傍を通過する毎に検出信号を発する検出手段と、前回検出信号が発せられたときの時刻と今回検出信号が発せられたときの時刻との時間差に基づいて内燃エンジンの行程を判別する判別手段と、からなる内燃エンジンの行程判別装置であって、  前記回転体の外周部は、回転方向に等角度間隔をもって前記複数の被検出片が形成された被検出片形成域と、被検出片が形成されていない非形成域と、からなり、  前記非形成域は、前記等角度間隔より大きい角度間隔を有し、かつ前記内燃エンジンのピストンが上死点から下死点へ移動する間において、前記非形成域が前記検出手段の近傍を通過するように前記回転体に設けられており、前記判別手段は、前記非形成域を挟む相隣り合う２つの被検出片のうちの一方が通過したときの時刻と前記２つの被検出片のうちの他方が通過したときの時刻との間の時間差を演算し、前記検出手段の近傍を前記非形成域が今回通過したときにおける時間差が、前記検出手段の近傍を前記非形成域が前回通過したときにおける時間差を下回るとき前記内燃エンジンの行程が爆発行程であると判定する爆発行程判定手段を有することを特徴とする。
【０００６】
すなわち、本発明の特徴によれば、簡素な構成で内燃エンジンの行程を短時間に確定することができる。
【０００７】
【発明の実施の形態】
以下に、本発明の実施例について図面に基づいて説明する。
図１に示す如く、単気筒の内燃エンジン１０は、吸気管（図示せず）から吸入した吸気と燃料噴射装置（図示せず）から噴射された燃料との混合気を燃焼室２０に吸入し、吸入した混合気を燃焼させてピストン１２を往復駆動せしめてクランクシャフト１４を回転駆動する。燃焼室２０において燃焼した混合気は、排気ガスとして、排気管（図示せず）へ排出される。
【０００８】
上述したクランクシャフト１４には、回転体５０がクランクシャフト１４に連動するように設けられている。後述する如く、回転体５０の外周部には、複数の被検出片である複数の磁気突起（図示せず）が設けられている。クランク角センサ１６は、磁気突起の回転軌跡の近傍に位置するように設けられている。クランク角センサ１６は、所定のクランク角毎、例えばクランク角２０度毎に、磁気突起から発せられる磁束の変化に応じて磁気突起を検出したことを示す検出信号を発する。
【０００９】
クランク角センサ１６から発せられた検出信号は、電子制御ユニット（以下、ＥＣＵと称する）３０の波形整形回路３２に供給されてパルス列からなるパルス信号に波形整形される。波形整形回路３２の出力端子は、中央処理装置（以下、ＣＰＵと称する）３４の割り込み入力端子に接続されており、波形整形回路３２から発せられたパルス信号は、ＣＰＵ３４に供給される。上述した如く、磁気突起がクランク角センサ１６の近傍を通過する毎にクランク角センサ１６から発せられたパルスがＣＰＵ３４に供給され、ＣＰＵ３４は、パルスを検出する毎に割り込み処理を実行する。このような構成としたことにより、ＣＰＵ３４は、所定のクランク角度毎に所定の処理を実行することができるのである。
【００１０】
ＣＰＵ３４には入出力バス３６が接続されており、入出力バス３６は、ＣＰＵ３４にデータ信号又はアドレス信号が入出力されるようになされている。この入出力バス３６には、ＲＯＭ（リードオンリーメモリ）３８、ＲＡＭ（ランダムアクセスメモリ）４０及び駆動回路４２が接続されている。駆動回路４２は、点火プラグ１８に接続されている。点火指令がＣＰＵ３４から駆動回路４２へ発せられたときには、駆動回路４２は点火プラグ１８に駆動電流を供給する。駆動電流が点火プラグ１８に供給されると点火プラグ１８から火花が発せられる。火花は燃焼室２０に吸入された混合気に引火し、混合気の燃焼により内燃エンジンの爆発行程が始まるのである。上述したＲＯＭ３８は、後述する図３、図７及び図９〜図１１に示す如きフローチャートに従って内燃エンジンの行程を判別するプログラムを記憶している。また、ＲＡＭ４０は、後述する如きプログラムの変数やフラグの値を記憶する。
【００１１】
上述した回転体５０の外周部に形成された複数の被検出片である複数の磁気突起の配置を図２に示す。尚、図２は、内燃エンジン１０のピストン１２が上死点に位置するときにおける磁気突起の配置を示すものであり、ピストン１２が下死点に位置するときにおける磁気突起の配置は、クランク軸１４の回りに１８０度回転したものとなる。
【００１２】
図２に示す如く、円盤型の回転体５０は、クランクシャフト１４の回転運動に連動するようにクランクシャフト１４上に設けられている。図中の矢印に示す如くクランクシャフト１４が反時計方向に回転した場合には、回転体５０も反時計方向に回転する。また、回転体５０の外周部には、複数の被検出片である磁気突起５２ａ〜５２ｏが所定の等角度間隔毎、例えば２０度毎に設けられている。また、磁気突起５２ｏと５２ａとが相隣り合ってなす角の角度間隔は、上述した等角度間隔より大きい角度間隔、例えば８０度である。
【００１３】
クランク角センサ１６は、磁気突起５２ａ〜５２ｏの回転軌跡近傍に位置するように設けられており、クランク角センサ１６は、磁気突起５２ａ〜５２ｏがクランク角センサ１６の近傍を通過する毎に、磁気突起から発せられる磁束の変化に応じて磁気突起を検出したことを示す検出信号を発する。
以下においては、等角度間隔ごとに磁気突起が形成されている領域、即ち図２の一点破線で示す領域の如く、磁気突起５２ａ〜５２ｏが形成されている回転体５０の外周部の領域を被検出片形成域と称する。また、等角度間隔より大きい角度間隔を有して磁気突起が形成されていない領域、即ち図２の破線で示す領域の如く、磁気突起５２ｏと５２ａとが相隣り合ってなす間において磁気突起が形成されていない回転体５０の外周部の領域を非形成域と称する。
【００１４】
図２に示した如く、内燃エンジン１０のピストン１２が上死点から下死点へ移動する間において、磁気突起５２ｏと５２ａとの２つの磁気突起がクランク角センサ１６の近傍を通過するように、磁気突起５２ｏと５２ａとは回転体５０に設けられている。このような構成としたことにより、内燃エンジン１０のピストン１２が上死点から下死点へ移動する間において、磁気突起５２ｏと５２ａとの２つの磁気突起に挟まれた非形成域の全域がクランク角センサ１６の近傍を通過することとなる。また、ピストン１２が上死点から下死点へ移動する間における内燃エンジンの行程は、爆発行程又は吸気行程のいずれかの行程である。上述した如き構成としたことにより、非形成域の全域がクランク角センサ１６の近傍を通過するときにおける内燃エンジンの行程は、爆発行程又は吸気行程のいずれかの行程となるのである。
【００１５】
また、ピストン１２が上死点近傍に位置したときに、内燃エンジン１０の燃焼室２０に吸入された混合気への点火がなされるが故に、ピストン１２が上死点から下死点へ至るまでの間においてピストン１２が上死点と下死点との中間近傍に位置するときに、ピストン１２の速度は最大の速度となり、クランク軸及びクランク軸に連動する回転体５０の回転速度も最大の速度となる。また、上述した如く、非形成域がクランク角センサ１６の近傍を通過するときのエンジンの行程は、爆発行程又は吸気行程のいずれかの行程であり、また、爆発行程においては爆発によりピストン１２が付勢されるが故に、爆発行程において非形成域がクランク角センサ１６の近傍を通過する速度は、吸気行程において非形成域がクランク角センサ１６の近傍を通過する速度よりも速い速度となるのである。
【００１６】
上述したクランク角センサ１６から検出手段が構成され、ＥＣＵ３０から判別手段と爆発行程判定手段とが構成され、磁気突起５２ａ〜５２ｏから複数の被検出片が構成される。
以下の説明においては、ＥＣＵ３０は、起動されており、ＣＰＵ３４において使用される変数の初期化等の起動処理を終えて定常動作しているものとする。また、後述するタイマーは内燃エンジンの始動と同時に起動されるものとする。
【００１７】
上述した如く、クランク角センサ１６から発せられて波形整形回路３２により波形整形されたパルス信号のパルスをＣＰＵ３４が検出したときには、ＣＰＵ３４は割り込み処理を実行する。この割り込み処理において実行されるサブルーチンを示すフローチャートを図３に示す。尚、このフローチャートの説明は、図４及び図５に示すタイムチャートの例と共に説明する。図４は、後述する如く、経過時間TM1とTM2とを示すタイムチャートであり、図５は、波形整形回路３２からＣＰＵ３４に供給されるパルス信号を示したものであり、各々のパルスに対応する磁気突起の符号をパルスの各々の近傍に付した。また、図３のフローチャートを実行することにより定まるステージ番号を対応するパルスの各々の近傍に付した。
【００１８】
図５に示す如く、内燃エンジンが始動されてから最初に発せられたパルスＰ1が検出されて、図３に示す本サブルーチンが呼び出されて実行されたときには、予め起動していたタイマーを停止させる（ステップＳ１１）。次いで、タイマーからタイマー値を読み込んで、変数TM1にタイマー値を代入し（ステップＳ１２）、タイマーを起動する（ステップＳ１３）。このようなタイミングでタイマーの起動及び停止並びにタイマー値の読み込みをすることとしたことにより、変数TM1は、図４に示す如く、前回検出したパルス（以下、前回パルスと称する）の立ち上がり部から今回検出したパルス（以下、今回パルスと称する）の立ち上がり部に至るまでの経過時間を示すものとなる。尚、内燃エンジンが始動されてから最初に発せられたパルスＰ1を検出したときにおける変数TM1の値は、内燃エンジンが始動されたことによりタイマが起動された時点からパルスＰ1が検出されたときまでにおける経過時間を示すこととなる。また、後述する変数TM2は、図４に示す如く前前回検出したパルス（以下、前前回パルスと称する）の立ち上がり部から前回パルスの立ち上がり部に至るまでの経過時間を示すものとなる。
【００１９】
次に、フラグF_1stPCの値が１であるか否かを判断する（ステップＳ１４）。このフラグF_1stPCは、内燃エンジンが始動されてから最初に発せられたパルスＰ1を検出したか否かを示すフラグであり、最初のパルスＰ1を既に検出したときにおけるF_1stPCの値は１であり、最初のパルスＰ1を未だに検出していないときにおけるF_1stPCの値は０である。
【００２０】
内燃エンジンが始動されてから最初に発せられたパルスＰ1を検出して本サブルーチンが実行されたときには、フラグF_1stPCの値は０のままであるが故に、ステップＳ１４においてはフラグF_1stPCの値は１でないと判別する。次いで、今回検出したパルスＰ1が最初のパルスであるので、フラグF_1stPCの値を１に設定し（ステップＳ１５）、本サブルーチンを終了する。
【００２１】
次に、図５に示す如く、内燃エンジン１０が始動されてから２番目に発せられたパルスＰ2を検出して本サブルーチンが実行されたときには、上述したステップＳ１１〜Ｓ１３までの処理を実行した後、ステップＳ１４においては、既に最初のパルスＰ1を検出しているので、フラグF_1stPCの値は１であると判別し、フラグF_2ndPCの値が１であるか否かを判断する（ステップＳ１６）。このフラグF_2ndPCは、内燃エンジンが始動されてから２番目に発せられたパルスＰ2を検出したか否かを示すフラグであり、２番目のパルスＰ2を既に検出したときにおけるF_2ndPCの値は１であり、２番目のパルスＰ2を未だに検出していないときにおけるF_2ndPCの値は０である。この時点においては、２番目のパルスＰ2を検出した直後であるのでフラグF_2ndPCの値は初期値のままであるが故に、フラグF_2ndPCの値は１でないと判別する。次いで、今回検出したパルスが２番目のパルスＰ2であるので、フラグF_2ndPCの値を１に設定し（ステップＳ１７）、変数TM1の値をTM2に代入した（ステップＳ１８）後、本サブルーチンを終了する。上述したステップＳ１８において、変数TM1の値を変数TM2に代入することとしたことにより、図５に示すパルスＰ2以降のパルスが検出されて本サブルーチンが実行されたときには、図４に示す如く、変数TM1は、前回パルスの立ち上がり部を検出したときから今回パルスの立ち上がり部を検出したときに至るまでの経過時間を示し、変数TM2は、前前回パルスの立ち上がり部を検出したときから前回パルスの立ち上がり部を検出したときに至るまでの経過時間を示すのである。上述した如き構成としたことにより、隣り合う２つの被検出片である磁気突起のうちの一方が検出手段であるクランク角センサ１６を通過したときの時刻と、２つの磁気突起のうちの他方がクランク角センサ１６を通過したときの時刻と、の時間差を得ることができるのである。
【００２２】
内燃エンジン１０が始動されてから３番目に発せられたパルスＰ3を検出して本サブルーチンが実行されたときには、フラグF_1stPC及びF_2ndPCの値は１となっているので、上述したステップＳ１１〜Ｓ１４及びＳ１６までの処理を実行した後、後述する非形成域判別サブルーチンを実行し、非形成域を検出したか否かを判断する（ステップＳ１９）。
【００２３】
次いで、フラグF_LONG_PCの値が１であるか否かを判断する（ステップＳ２０）。このフラグF_LONG_PCは、非形成域を前回検出したか否かを示すフラグであり、非形成域を前回検出していないときにおけるフラグの値は０であり、非形成域を前回検出したときにおけるフラグの値は１である。図５に示す如きパルスＰ3が検出された時点においては、非形成域を未だに検出していないが故に、フラグF_LONG_PCの値は１でないと判別し、次いで、変数STAGEの値を１だけ加算する（ステップＳ２１）。変数STAGEの値は予め初期化されているが故に、パルスＰ3が検出された時点における変数STAGEの値は１となる。
【００２４】
次に、変数STAGEの値が１５より小さいか否かを判断する（ステップＳ２２）。上述した如く、パルスＰ3が検出された時点における変数STAGEの値は１であるが故に、変数STAGEの値は１５より小さいと判別し、フラグF_360STGの値が１であるかを判断する（ステップＳ２３）。フラグF_360STGは、ステージ番号を確定することができたか否かを示すフラグであり、ステージ番号が未だに確定されていないときにおけるフラグの値は０であり、ステージ番号が既に確定されたときにおけるフラグの値は１である。パルスＰ3が検出された時点においては、ステージ番号は未だに確定されていないので、フラグF_STAGEの値は１でないと判別し、ステップＳ１８の処理を実行した後、本サブルーチンを終了する。
【００２５】
次に、内燃エンジン１０が始動されてから４番目に発せられたパルスＰ4を検出して本サブルーチンが実行されたときにおいても、上述した如きステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１６→Ｓ１９→Ｓ２０→Ｓ２１→Ｓ２２→Ｓ２３→Ｓ１８の処理を実行する。
内燃エンジン１０が始動されてから５番目に発せられたパルスＰ5を検出して本サブルーチンが実行されたときにおいては、上述した如きステップＳ１１〜Ｓ１３及びＳ１６の処理を実行した後、ステップＳ１９の非形成域判別サブルーチンにおいて、非形成域を前回検出しているが故に、フラグF_LONG_PCの値を１に設定する（後述するステップＳ４７）。これにより、ステップＳ２０においては、フラグF_LONG_PCの値は１であると判別し、フラグF_1stLONG_PCの値が１であるか否かを判断する（ステップＳ２４）。フラグF_1stLONG_PCは、内燃エンジン１０が始動されてから最初の非形成域を検出したか否かを示すフラグであり、最初の非形成域を未だに検出していないときにおけるフラグの値は０であり、最初の非形成域を既に検出したときにおけるフラグの値は１である。パルスＰ5を検出した時点においては、フラグF_1stLONG_PCの値は０であると判別した後、フラグF_1stLONG_PCの値を１に設定し（ステップＳ２５）、変数STAGEの値を０に設定し（ステップＳ２６）、フラグF_360STGの値を０に設定し（ステップＳ２７）、ステップＳ１８の処理を実行し、本サブルーチンを終了する。
【００２６】
この後、図５に示す如きパルスＰ6〜Ｐ19を検出して本サブルーチンが実行されたときにおいては、上述した如きステップＳ１１〜Ｓ１３及びＳ１６の処理を実行した後、ステップＳ１９の非形成域判別サブルーチンにおいて、非形成域を前回検出していないが故に、フラグF_LONG_PCの値を再び０に設定する（後述するステップＳ４２）。これにより、ステップＳ２０においては、フラグF_LONG_PCの値は１でないと判別し、上述したステップＳ２１〜Ｓ２３及びＳ１８の処理を実行する。尚、上述したステップＳ２１の処理を実行する毎にステージ番号を１ずつ加算するが故に、パルスＰ6が検出されたときにはステージ番号は１となり、パルスＰ7のときにはステージ番号は２、パルスＰ8のときにはステージ番号は３の如く、ステージ番号は１ずつ増加し、パルスＰ19が検出されたときにはステージ番号は１４となる。
【００２７】
次に、図５に示す如きパルスＰ20を検出して本サブルーチンが実行されたときには、上述した如きステップＳ１１〜Ｓ１３及びＳ１６の処理を実行した後、ステップＳ１９の非形成域判別サブルーチンにおいて、非形成域を前回検出しているが故に、フラグF_LONG_PCの値を再び１に設定する（後述するステップＳ４７）。このため、ステップＳ２０においては、フラグF_LONG_PCの値は１であると判別し、フラグF_1stLONG_PCの値が１であるか否かを判断する（ステップＳ２４）。上述したステップＳ２５において、フラグF_1stLONG_PCの値を１に設定しているが故に、ステップＳ２４において、フラグF_1stLONG_PCの値は１であると判別し、変数STAGEの値が１４であるか否かを判断する（ステップＳ２８）。上述した如く、パルスが検出されたときにはステージ番号は１４となっているが故に、ステップＳ２８においては、変数STAGEの値は１４であると判別し、フラグF_360STGの値を１に設定する（ステップＳ２９）。このステップＳ２９の処理により、ステージ番号が確定されたこととなる。尚、上述したステップＳ２８において、変数STAGEの値は１４でないと判別した場合には、ステップＳ２７に処理を進めフラグF_360STGの値を０に設定する。この処理は、パルス信号にノイズによる信号が含まれている場合に、ノイズ成分を検出したことにより磁気突起が通過したと誤って判断したような場合においても誤動作しないようにするためのものである。
【００２８】
ステップＳ２９の処理を実行した後、後述するエンジン行程判別処理を実行し（ステップＳ３０）、変数STAGEを０に設定し（ステップＳ３１）、フラグF_360STGの値が１であるか否かを判断する（ステップＳ２３）。上述したステップＳ２９において、フラグF_360STGの値を１に設定しているので、フラグF_360STGの値は１であると判別した後、変数STAGEの値が１０であるか否かを判断する（ステップＳ３２）。上述したステップＳ３１において、変数STAGEの値を０に設定しているが故に、変数STAGEの値は１０でないと判別した後、ステップＳ１８に処理を進め、本サブルーチンを終了する。
【００２９】
次に、図５に示すパルスＰ21〜Ｐ28を検出して本サブルーチンが実行されたときには、上述したステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１４→Ｓ１６→Ｓ１９→Ｓ２０→Ｓ２１→Ｓ２２→Ｓ２３→Ｓ３２→Ｓ１８の如き処理を実行する。この場合において、上述したステップＳ２１の処理においてステージ番号を１ずつ加算するが故に、パルスＰ21が検出されたときにはステージ番号は１となり、パルスＰ22のときにはステージ番号は２、パルスＰ23のときにはステージ番号は３の如く、ステージ番号は１ずつ増加し、パルスＰ29が検出されたときにはステージ番号は９となる。
【００３０】
次いで、図５に示すパルスＰ30を検出して本サブルーチンが実行されたときには、上述したステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１４→Ｓ１６→Ｓ１９→Ｓ２０→Ｓ２１→Ｓ２２→Ｓ２３→Ｓ３２の如き処理を実行する。この処理のステップＳ２１において、変数STAGEの値は１０となるが故に、ステップＳ３２において、変数STAGEの値は１０であると判別し、変数TM3にTM1の値を代入し（ステップＳ３３）、ステップＳ１８の処理を実行し、本サブルーチンを終了する。上述したステップＳ３３は、変数STAGEの値が１０であるときのみに実行されるものであるが故に、変数TM3は、磁気突起５２ｋの立ち上がり部を検出したときから磁気突起５２ｌの立ち上がり部を検出したときに至るまでの経過時間を示すものとなる。
【００３１】
また、上述した如き構成とした場合には、変数STAGEの値は１５以上の値となることがなく、ステップＳ２２において、変数STAGEの値が１５より大きいか否かを判断することとしたのは、パルス信号にノイズによる信号が含まれている場合に、ノイズ成分を検出したことにより磁気突起が通過したと誤って判断したような場合においても誤動作しないようにするためである。ステップＳ２２において、変数STAGEの値が１５より大きいと判別したときには、変数を初期化し（ステップＳ３４〜Ｓ３９）、ステップＳ１８に処理を進めるのである。
【００３２】
図５に示すパルスＰ31以降のパルスを検出して本サブルーチンが実行されたときには、ステージ番号が１０であると判別された場合には、ステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１４→Ｓ１６→Ｓ１９→Ｓ２０→Ｓ２１→Ｓ２２→Ｓ２３→Ｓ３２→Ｓ３３→Ｓ１８の如き処理を実行し、ステージ番号が１０でないと判別された場合には、ステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１４→Ｓ１６→Ｓ１９→Ｓ２０→Ｓ２１→Ｓ２２→Ｓ２３→Ｓ３２→Ｓ１８の如き処理を実行する。また、フラグF_LONG_PCの値が１であると判別された場合には、ステップＳ１１→Ｓ１２→Ｓ１３→Ｓ１４→Ｓ１６→Ｓ１９→Ｓ２０→Ｓ２４→Ｓ２８→Ｓ２９→Ｓ３０→Ｓ３１→Ｓ２３→Ｓ３２→Ｓ３３→Ｓ１８の如き処理を実行するのである。
【００３３】
上述した経過時間TM1及びTM2と、非形成域及び被検出片形成域と、の関係を示すタイムチャートを図６（ａ）〜（ｃ）に示す。
前回パルスと今回パルスとの間が非形成域に対応する場合には、図６（ａ）に示す如きタイムチャートとなる。図６（ａ）においては、今回パルスは磁気突起５２ａを検出したときに発せられるパルスであり、前回パルスは磁気突起５２ｏを検出したときに発せられたパルスであり、前前回パルスは磁気突起５２ｎを検出したときに発せられたパルスである。この図６（ａ）の場合は、前回パルスと今回パルスとの間が非形成域に対応する場合であるが故に、経過時間TM1の値は、経過時間TM2の値より大きい値となり、経過時間TM1に対する経過時間TM2の比は１より小さい値となる。
【００３４】
また、前前回パルスと前回パルスとの間、及び前回パルスと今回パルスとの間が共に被検出片形成域に対応する場合の例を示すタイムチャートは、図６（ｂ）に示す如きものとなる。図６（ｂ）の例においては、今回パルスは磁気突起５２ｈを検出して発せられるパルスであり、前回パルスは磁気突起５２ｇを検出したときに発せられたパルスであり、前前回パルスは磁気突起５２ｆを検出したときに発せられたパルスである。この図６（ｂ）の例の場合には、内燃エンジンのクランク軸が一定の回転数で回転しているときには、経過時間TM1の値は、経過時間TM2の値と略等しい値となり、経過時間TM1に対する経過時間TM2の比は略１となる。
【００３５】
更に、前前回パルスと前回パルスとの間が非形成域に対応する場合におけるタイムチャートは、図６（ｃ）に示す如きものとなる。図６（ｃ）の場合においては、今回パルスは磁気突起５２ｂを検出したときに発せられるパルスであり、前回パルスは磁気突起５２ａを検出したときに発せられたパルスであり、前前回パルスは磁気突起５２ｏを検出したときに発せられたパルスである。この場合には、経過時間TM1の値は、経過時間TM2の値より小さい値となり、経過時間TM1に対する経過時間TM2の比は１より大きい値となる。
【００３６】
上述した図３に示したフローチャートのステップＳ１９において実行される非形成域判別サブルーチンを示すフローチャートを図７に示す。
図３のステップＳ１９において本サブルーチンが呼び出されて実行されたときには、経過時間TM1に対する経過時間TM2の比が第１所定値より大きいか否かを判断する（ステップＳ４１）。
【００３７】
前前回パルスを検出したときから前回パルスを検出したときに至るまでの間に非形成域を検出しなかった場合（上述した図６（ａ）又は（ｂ）に示す場合）には、上述したステップＳ４１において、経過時間TM1に対する経過時間TM2の比が第１所定値以下であると判別する。この第１所定値は、被検出片形成域における相隣り合う磁気突起の角度間隔及び非形成域をなす角度間隔と、内燃エンジン１０のクランク軸の回転数の変動と、を考慮して予め定められた値、例えば２．５である。このステップＳ４１の処理を実行した後、フラグF_LONG_PCの値を０に設定し（ステップＳ４２）、本サブルーチンを終了する。尚、上述した如く、フラグF_LONG_PCは、前前回パルスと前回パルスとの間が非形成域に対応するか否かを示すフラグであり、前前回パルスと前回パルスとの間が非形成域に対応しないときにおけるフラグの値は０であり、前前回パルスと前回パルスとの間が非形成域に対応するときにおけるフラグの値は１である。
【００３８】
また、前前回パルスを検出したときから前回パルスを検出したときに至るまでの間に非形成域を検出した場合（上述した図６（ｃ）に示す場合）には、上述したステップＳ４１において、経過時間TM1に対する経過時間TM2の比が第１所定値より大きいと判別する。次いで、経過時間TM1に対する経過時間TM3の比が第２所定値より大きいか否かを判断する（ステップＳ４３）。上述した図３のフローチャートのステップＳ３２及びＳ３３において、ステージ番号が１０であると判別したときに経過時間TM3の値が定められるものであるが故に、経過時間TM3は、磁気突起５２ｋの立ち上がり部を検出したときから磁気突起５２ｌの立ち上がり部を検出したときに至るまでの経過時間を示すものとなる。また、図５に示した如く、この磁気突起５２ｋと５２ｌとは、圧縮行程又は排気行程において検出されるものであるので、経過時間TM3は、圧縮行程又は排気行程における経過時間となる。一方、経過時間TM1は、上述したステップＳ４１において、前前回パルスを検出したときから前回パルスを検出したときに至るまでの間に非形成域を検出したと判別されたときのものであるが故に、図６（ｃ）に示す如く、経過時間TM1は、磁気突起５２ａの立ち上がり部を検出したときから磁気突起５２ｂの立ち上がり部を検出したときに至るまでの経過時間を示すものとなる。この磁気突起５２ａと５２ｂとは、図５に示す如く爆発行程又は吸気行程において検出されるものであるので、経過時間TM1は爆発行程又は吸気行程における経過時間となる。上述した如き構成としたことにより、圧縮行程における経過時間TM3は、爆発行程における経過時間TM1に対応し、排気行程における経過時間TM3は、吸気行程における経過時間TM1に対応することとなる。
【００３９】
経過時間TM3が圧縮行程におけるものであり、経過時間TM1が爆発行程におけるものであるときには、燃焼行程の際においてクランク軸の回転運動は加速されてタイマ値が短くなるが故に、経過時間TM1の値は経過時間TM3の値よりも小さい値となり、経過時間TM1に対する経過時間TM3の比は１より大きい値となる。一方、経過時間TM3が排気行程におけるものであり、経過時間TM1が吸気行程におけるものであるときには、経過時間TM1の値は経過時間TM3の値と略同じ値となり、経過時間TM1に対する経過時間TM3の比は略１となる。
【００４０】
上述したステップＳ４３において、経過時間TM1に対する経過時間TM3の比が第２所定値より大きいと判別した場合には、内燃エンジンの行程は燃焼行程であると判別することができ、フラグF_720STGの値を１に設定する（ステップＳ４４）。尚、上述した第２所定値は、被検出片形成域における相隣り合う磁気突起の角度間隔と、内燃エンジン１０のクランク軸の回転数の変動と、を考慮して予め定められた値、例えば１．５である。次いで、後述する如き変数LONG_TM1の値を変数LONG_TM2に代入し（ステップＳ４５）、変数TM1の値を変数LONG_TM1に代入し（ステップＳ４６）、フラグF_LONG_PCの値を１に設定し（ステップＳ４７）、本サブルーチンを終了する。
【００４１】
上述したステップＳ４３において、経過時間TM1に対する経過時間TM3の比が第２所定値以下であると判別した場合には、上述したステップＳ４５〜Ｓ４７の処理を実行して、本サブルーチンを終了する。
また、上述した実施例においては、磁気突起５２ｋの立ち上がり部を検出した時刻と磁気突起５２ｌの立ち上がり部を検出した時刻との間の時間差を経過時間TM3、即ち隣合う磁気突起の各々を検出した２つの時刻の間の時間差を経過時間TM3としたが、隣合わない位置に設けられた２つの磁気突起の各々を検出した２つの時刻の間の時間差を経過時間TM3としてもよい。即ち、ピストンが下死点から上死点へ近づくときにクランク角センサ１６の近傍を通過する磁気突起である５２ｄ〜５２ｌのうちのいずれかの２つの磁気突起のうち一方の磁気突起の立ち上がり部を検出した時刻と、他方の磁気突起の立ち上がり部を検出した時刻と、間の時間差を経過時間TM3としてもよい。例えば、磁気突起５２ｉの立ち上がり部を検出した時刻と、磁気突起５２ｌの立ち上がり部を検出した時刻と、の間の時間差や、磁気突起５２ｊの立ち上がり部を検出した時刻と、磁気突起５２ｋの立ち上がり部を検出した時刻と、の間の時間差を経過時間TM3としてもよい。尚、この場合には、上述したステップＳ４３における第２所定値も経過時間TM3に応じて所定の値に変更するのである。
【００４２】
更に、上述した図７のステップＳ４１においては、経過時間TM1に対する経過時間TM2の比が第１所定値より大きいと判別することにより、非形成域を検出したと判別したが、経過時間TM1に対する経過時間TM2の比が所定の値より小さいと判別することにより、非形成域を検出したと判別することとしてもよい。この場合は、上述した図６（ａ）に示した如く、前回パルスを検出したときから今回パルスを検出したときに至るまでの間において非形成域が存在することとなる。
【００４３】
上述した変数LONG_TM1は、図８に示す如く、磁気突起５２ｏを今回検出したときから磁気突起５２ａを今回検出したときまでの経過時間を示すものであり、非形成域がクランク角センサ１６の近傍を今回通過した時間に応じた時間を示すものであり、以下においては、変数LONG_TMを1今回非形成域通過時間と称する。一方、変数LONG_TM2は、磁気突起５２ｏを前回検出したときから磁気突起５２ａを前回検出したときまでの経過時間を示すものであり、非形成域がクランク角センサ１６の近傍を前回通過した時間に応じた時間を示すものであり、以下においては、変数LONG_TM2を前回非形成域通過時間と称する。
【００４４】
上述した図３のステップＳ３０において実行される内燃エンジンの行程を判別するサブルーチンを示すフローチャートを図９に示す。
最初に、後述する図１０に示すパラメータ読み込みルーチンを実行してパラメータを読み込み（ステップＳ６１）、後述する如き図１１に示す内燃エンジン安定度判別ルーチンを実行する（ステップＳ６２）。次に、フラグF_STBLの値が１であるか否かを判断する（ステップＳ６３）。このフラグF_STBLは、内燃エンジンが安定した動作をしているか否かを示すもので、後述する如く、内燃エンジンは安定した動作をしていると判別したときにおけるフラグF_STBLの値は１であり、内燃エンジンは安定した動作をしていないと判別したときにおけるフラグF_STBLの値は０である。
【００４５】
ステップＳ６３において、フラグF_STBLの値が１であると判別した場合には、上述したLONG_TM1の値がLONG_TM2の値より小さいか否かを判断する（ステップＳ６４）。LONG_TM1の値がLONG_TM2の値より小さいと判別した場合、即ち、今回非形成域通過時間が前回非形成域通過時間より短いと判別した場合には、フラグF_IGの値を０に設定し（ステップＳ６５）、フラグF_720STGの値を１に設定し（ステップＳ６６）、本サブルーチンを終了する。上述したフラグF_IGは、点火の許否を示すフラグであり、現在の行程が点火すべき行程であると判別したときにおけるフラグF_IGの値は１であり、現在の行程が点火すべきでない行程であると判別したときにおけるフラグF_IGの値は０である。
【００４６】
上述したステップＳ６４においてLONG_TM1の値がLONG_TM2の値以上であると判別した場合には、LONG_TM1の値がLONG_TM2の値より大きいか否かを判断する（ステップＳ６７）。LONG_TM1の値がLONG_TM2の値より大きいと判別した場合には、フラグF_IGの値を１に設定し（ステップＳ６８）、フラグF_720STGの値を１に設定し（ステップＳ６９）、本サブルーチンを終了する。一方、ステップＳ６７においてLONG_TM1の値がLONG_TM2の値以下と判別した場合には、フラグF_IGの値を１に設定し（ステップＳ７０）、フラグF_720STGの値を０に設定し（ステップＳ７１）、本サブルーチンを終了する。
【００４７】
上述した図８の磁気突起５２ｏと５２ａとが非形成域を挟む相隣り合う２つの被検出片としてなし、磁気突起５２ｏが一方の被検出片をなし、磁気突起５２ａが他方の被検出片をなす。また、この磁気突起５２ｏが検出手段であるクランク角センサ１６の近傍を通過したときの時刻と磁気突起５２ａが検出手段であるクランク角センサ１６の近傍を通過したときの時刻と差の時間が時間差をなす。クランク角センサ１６の近傍を前回通過したときにおける時間差が前回非形成域通過時間LONG_TM2をなし、クランク角センサ１６の近傍を今回通過したときにおける時間差が今回非形成域通過時間LONG_TM1をなす。この今回非形成域通過時間LONG_TM1が前回非形成域通過時間LONG_TM2より下回るときに、内燃エンジンの行程は爆発行程であると判別するのである。
【００４８】
上述したステップＳ６３において、フラグF_STBLの値が１でないと判別した場合には、フラグF_720STGの値が１であるか否かを判断する（ステップＳ７２）。フラグF_720STGの値が１であると判別した場合には、フラグF_IGの値が１であるか否かを判断する（ステップＳ７３）。フラグF_IGの値が１であると判別した場合には、フラグF_IGの値を０に設定し（ステップＳ７４）、フラグF_IGの値が１でないと判別した場合には、フラグF_IGの値を１に設定し（ステップＳ７５）、本サブルーチンを終了する。
【００４９】
また、上述したステップＳ７２において、フラグF_720STGの値が１でないと判別した場合には、フラグF_IGの値を１に設定し（ステップＳ７５）、本サブルーチンを終了する。
単気筒の内燃エンジンの場合においては、爆発行程に要する時間は吸気行程に要する時間よりも短い。図２の説明において述べた如く、爆発行程又は吸気行程に対応するように非形成域を回転体５０に設ける構成としたことにより、爆発行程における非形成域経過時間は吸気行程における非形成域経過時間よりも短いものとなるのである。このことから上述したステップＳ６４又はＳ６７において、今回非形成域通過時間が前回非形成域通過時間より短いと判別したときには、今回の行程が爆発行程であり前回の行程が吸気行程であると判別することができるのである。また、今回非形成域通過時間が前回非形成域通過時間より長いと判別したときには、今回の行程が吸気行程であり前回の行程が爆発行程であると判別することができるのである。
【００５０】
上述した図９のステップＳ６１において実行されるパラメータを読み出すサブルーチンを示すフローチャートを図１０に示す。
最初に、変数PB3にPB2の値を代入し、変数TH3にTH2の値を代入し、変数Ne3にNe2の値を代入する（ステップＳ８１）。上述したPB3は前前回検出した吸気管負圧の値を示し、PB2は前回検出した吸気管負圧の値を示し、TH3は前前回検出したスロットルバルブ開度の値を示し、TH2は前回検出したスロットルバルブ開度の値を示し、Ne3は前前回検出した内燃エンジンの回転数の値を示し、Ne2は前回検出した内燃エンジンの回転数の値を示す。
【００５１】
次いで、変数PB2にPB1の値を代入し、変数TH2にTH1の値を代入し、変数Ne2にNe1の値を代入する（ステップＳ８２）。ここで、PB1は今回検出した吸気管負圧の値を示し、TH1は今回検出したスロットルバルブ開度の値を示し、Ne1は今回検出した内燃エンジンの回転数の値を示す。
次に、新たに、今回値として、吸気管負圧の値を検出してPB1に代入し（ステップＳ８３）、スロットルバルブ開度の値を検出してTH1に代入し（ステップＳ８４）、内燃エンジンの回転数の値を検出してNe1に代入し（ステップＳ８５）、本サブルーチンを終了する。上述した吸気管負圧は、図５に示す如く、内燃エンジンのサイクルに応じて変動するものである。後述する如く、内燃エンジンの安定度を判定すべく、この吸気管負圧を検出するのである。
【００５２】
上述した図９のステップＳ６２において実行される内燃エンジンの安定度を判別するサブルーチンを示すフローチャートを図１１に示す。
最初に、エンジン回転数、スロットルバルブ開度及び吸気管負圧の値が所定の範囲内に含まれるか否かを判断する（ステップＳ９１）。これらのパラメータの値が所定の範囲内に含まれていないと判別した場合には、変数STBL_CNTの値を０に設定し（ステップＳ９２）、フラグF_STBLの値を０に設定し（ステップＳ９３）、本サブルーチンを終了する。変数STBL_CNTは、本サブルーチンにより内燃エンジンが安定であると判別された回数を示すものである。また、フラグF_STBLは、内燃エンジンが安定であると判別されたか否かを示すフラグであり、内燃エンジンが安定であると判別されたときにおけるフラグF_STBLの値は１であり、内燃エンジンが安定でないと判別されたときにおけるフラグF_STBLの値は０である。
【００５３】
ステップＳ９１において、エンジン回転数、スロットルバルブ開度及び吸気管負圧の値が所定の範囲内に含まれていると判別した場合には、前前回のエンジン回転数Ne3と今回のエンジン回転数Ne1との差の絶対値が所定回転数、例えば２０ｒｐｍより小さいか否かを判断する（ステップＳ９４）。Ne3とNe1との差の絶対値が所定回転数以上であると判別した場合には、変数STBL_CNTの値を０に設定し（ステップＳ９２）、フラグF_STBLの値を０に設定し（ステップＳ９３）、本サブルーチンを終了する。
【００５４】
ステップＳ９４においてNe3とNe1との差の絶対値が所定回転数より小さいと判別した場合には、前前回のスロットルバルブ開度TH3と今回のスロットルバルブ開度TH1との差の絶対値が所定開度、例えば０．１度より小さいか否かを判断する（ステップＳ９５）。TH3とTH1との差の絶対値が所定開度以上であると判別した場合には、上述したステップＳ９２とＳ９３との処理を実行し、本サブルーチンを終了する。
【００５５】
ステップＳ９５においてTH3とTH1との差の絶対値が所定開度より小さいと判別した場合には、前前回の吸気管負圧PB3と今回の吸気管負圧PB1との差の絶対値が所定開度、例えば２０mmＨｇより小さいか否かを判断する（ステップＳ９６）。PB3とPB1との差の絶対値が所定値以上であると判別した場合には、上述したステップＳ９２とＳ９３との処理を実行し、本サブルーチンを終了する。図５に示した如く、単気筒の内燃エンジンにおける吸気管負圧は、内燃エンジンのサイクルに応じて変動する。一方、本サブルーチンは、図９に示したエンジン行程判別のサブルーチンのステップＳ６２で実行されるものである。また、エンジン行程判別のサブルーチンは、図３に示した割り込み処理サブルーチンのステップＳ２８及びＳ３０に示す如く、ステージ番号が１４であると判別されたときに実行されるものである。このように内燃エンジンの所定のサイクルで吸気管負圧を検出するとしたことにより、吸気管負圧の値によっても内燃エンジンの安定度を判別することができるのである。
【００５６】
ステップＳ９６においてPB3とPB1との差の絶対値が所定値より小さいと判別した場合には、変数STBL_CTの値を１だけ加算し（ステップＳ９７）、変数STBL_CNTの値が２より大きいか否かを判断する（ステップＳ９８）。変数STBL_CNTの値が所定回数、例えば２回未満であると判別した場合には、上述したステップＳ９３の処理を実行した後、本サブルーチンを終了する。一方、変数STBL_CNTの値が２より大きいと判別した場合には、フラグF_STBLの値を１に設定し（ステップＳ９９）、本サブルーチンを終了する。
【００５７】
上述した如き構成としたことにより、前前回検出したエンジン回転数と今回検出したエンジン回転数との差、及び前前回検出したスロットルバルブ開度と今回検出したスロットルバルブ開度との差の各々が、所定範囲内に含まれているか否かを判断し、所定範囲内に含まれていると判別した回数が所定回数以上であると判別したときに、内燃エンジンは安定した状態であると判別するのである。
【００５８】
尚、上述した実施例においては、複数の被検出片である磁気突起の等角度間隔を２０度とし、非形成域における角度間隔を８０度とした場合を示したが、等角度間隔や非形成域における角度間隔を他の角度間隔として磁気突起や非形成域を設けることとしてもよい。
【００５９】
【発明の効果】
以上説明した如く、本発明による内燃エンジンの行程判別装置によれば、簡素な構成で内燃エンジンの行程を速やかに確定することができるすることができる。
【図面の簡単な説明】
【図１】内燃エンジン及び内燃エンジンの制御部の構成を示すブロック図である。
【図２】本発明の実施例であるクランクシャフトに連動する回転体の外周部に形成された磁気突起の配置を示す概略図である。
【図３】クランク角センサから発せられる検出信号のパルスを検出したときに割り込み処理により実行されるサブルーチンを示すフローチャートである。
【図４】検出信号のパルスと経過時間TM1及びTM2とを示すタイムチャートである。
【図５】パルス信号、磁気突起、非形成域、ステージ番号、内燃エンジンの行程及び吸気管負圧の変化の関係を示すタイムチャートである。
【図６】経過時間TM1及びTM2と、被検出片形成域及び非形成域と、の関係を示すタイムチャートである。
【図７】図３に示した割り込み処理ルーチンのステップＳ１９において実行される非形成域判別サブルーチンを示すフローチャートである。
【図８】前回検出した非形成域と今回検出した非形成域との関係を示すタイムチャートである。
【図９】図３に示した割り込み処理ルーチンのステップＳ３０において実行されるエンジン行程を判別するサブルーチンを示すフローチャートである。
【図１０】図９に示したエンジン行程を判別するサブルーチンのステップＳ６１において実行されるパラメータ読込サブルーチンを示すフローチャートである。
【図１１】図９に示したエンジン行程を判別するサブルーチンのステップＳ６２において実行される内燃エンジンの安定度を判別するサブルーチンを示すフローチャートである。
【符号の説明】
１０  内燃エンジン
１６  クランク角センサ（検出手段）
３０  ＥＣＵ（判別手段、爆発行程判定手段）
５２  磁気突起（被検出片）
【図１】
0003869198.tif 000002
【図２】
0003869198.tif 000003
【図３】
0003869198.tif 000004
【図４】
0003869198.tif 000005
【図５】
0003869198.tif 000006
【図６】
0003869198.tif 000007
【図７】
0003869198.tif 000008
【図８】
0003869198.tif 000009
【図９】
0003869198.tif 000010
【図１０】
0003869198.tif 000011
【図１１】
0003869198.tif 000012