(57)【要約】【課題】エンジンの行程判別を確実に行えるようにする。【解決手段】エンジンの制御装置は、クランク軸が１回転する間の吸気管の圧力の最大値Ｐ２と最小値Ｐ１を測定し、その差を変動幅ＤＰＭＴＤＣとして算出する。この変動幅ＤＰＭＴＤＣを記憶しておき、次にクランク軸が１回転したときの変動幅ＤＰＭＴＤＣとの大小を比較する。変動幅ＤＰＭＴＤＣの大小の変化が連続して３回発生したら、行程判別を行って変動幅ＤＰＭＴＤＣが大から小に変化したときに、その工程を膨張・排気行程とする。その後は工程判別結果に基づいて点火処理を実施する。【選択図】図８
2011026979.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の燃焼室に空気を供給する吸気管内の圧力を取得し、前記内燃機関の出力軸が１回転する間の前記吸気管内の圧力の最大値、及び最小値を計測する吸気圧算出部と、
前記吸気管内の圧力の最大値、最小値の差から、前記出力軸が１回転する間の圧力変動幅を算出する変動幅算出部と、
前記クランク軸が２回転する間に得られる圧力変動幅の前回値と今回値の大小を比較する変動幅比較部と、
圧力変動幅の前回値と今回値の大小を比較し、前記内燃機関の行程を判別する行程判別部と、
前記内燃機関の行程判別を行った後、前記出力軸が２回転するたびに１回、燃料噴射出力及び点火出力を行わせる出力処理部と、
を含む内燃機関の制御装置。
【請求項２】
前記行程判別部は、前記吸気管内の圧力変動幅の前回値と今回値の大小を比較し、前記出力軸が所定回数の回転する期間において圧力変動幅の大小の変化が交互に、かつ連続して発生した場合に、エンジン行程を判別することを特徴とする請求項１に記載の内燃機関の制御装置。
【請求項３】
前記行程判別部は、前記吸気管内の圧力変動幅の大小の変化が３回連続したときに、エンジン行程を判別する請求項２に記載の内燃機関の制御装置。
【請求項４】
前記行程判別部は、圧力変動幅の前回値から今回値の変化が大から小であった場合に、今回値に相当する行程を膨張・排気行程と判別することを特徴とする請求項１から請求項３のいずれか一項に記載の内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の制御装置に関する。
【背景技術】
【０００２】
内燃機関、例えば４サイクルの単気筒エンジンにおいては、吸気行程、圧縮行程、膨張行程、排気行程の４つのサイクルを繰り返すことで出力が生み出されている。エンジンの制御装置は、これらエンジンの各行程を判別することで、燃料の噴射や点火などのタイミングを計っている。
【０００３】
ここで、制御装置がエンジンの行程判別を行う方法としては、例えば、エンジン始動時に、クランク軸が１回転する間の吸気管圧力特性を、１回転目と２回転目、即ち７２０ＣＡ（クランク・アングル、クランク角）の間で比較してエンジン行程判別を行うものが知られている。
【０００４】
エンジン始動時の行程判別の具体例としては、例えば、クランク軸が１回転する毎に吸気管圧力の最小値を測定し、クランク軸の１回転目の吸気管圧力の最小値と、２回転目の最小値を比較して、クランク軸の２回転目においてエンジンの行程判別を行うものがある（例えば、特許文献１参照）。また、他の例としては、クランク軸の回転に伴って規則的に出力されるパルス信号毎にエンジンの吸気管の圧力値を累積し、クランク軸が２回転したときに、クランク軸の１回転目の吸気管圧力の累積値と、２回転目の吸気管圧力の累積値を比較してエンジン行程判別を行うことが知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２６５８９４号公報
【特許文献１】特開２００３−３８８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、クランク軸が１回転する間の吸気管圧力特性を７２０ＣＡの間で比較すると、１回転目の吸気管圧力の最小値、又は累積値と、２回転目の吸気管圧力の最小値、又は累積値との間の大小関係がエンジン行程と不一致になり、行程判別を誤ることがあった。このような現象は、エンジンの始動時や、エンジンが過渡的な運転状態にあるときに生じることがあり、例えば、吸入空気量を調整するスロットルバルブが開閉操作されている場合や、エンジンが高回転し、かつスロットルバルブが高開度(例えば全開)である場合などに生じる。
本発明は、このような事情に鑑みてなされたものであり、エンジンの行程判別を確実に行えるようにすることを主な目的とする。
【課題を解決するための手段】
【０００７】
本願の一観点によれば、内燃機関の燃焼室に空気を供給する吸気管内の圧力を取得し、前記内燃機関の出力軸が１回転する間の前記吸気管内の圧力の最大値、及び最小値を計測する吸気圧算出部と、前記吸気管内の圧力の最大値、最小値の差から、前記出力軸が１回転する間の圧力変動幅を算出する変動幅算出部と、前記クランク軸が２回転する間に得られる圧力変動幅の前回値と今回値の大小を比較する変動幅比較部と、圧力変動幅の前回値と今回値の大小を比較し、前記内燃機関の行程を判別する行程判別部と、前記内燃機関の行程判別を行った後、前記出力軸が２回転するたびに１回、燃料噴射出力及び点火出力を
行わせる出力処理部と、を含む内燃機関の制御装置が提供される。
【０００８】
また、本発明の別の観点によれば、前記行程判別部は、前記吸気管内の圧力変動幅の前回値と今回値の大小を比較し、前記出力軸が所定回数の回転する期間において圧力変動幅の大小の変化が交互に、かつ連続して発生した場合に、エンジン行程を判別することを特徴とする請求項１に記載の内燃機関の制御装置が提供される。
【０００９】
また、本発明の別の観点によれば、前記行程判別部は、前記吸気管内の圧力変動幅の大小の変化が３回連続したときに、エンジン行程を判別する請求項２に記載の内燃機関の制御装置が提供される。
【００１０】
また、本発明の別の観点によれば、前記行程判別部は、圧力変動幅の前回値から今回値の変化が大から小であった場合に、今回値に相当する行程を膨張・排気行程と判別することを特徴とする請求項１から請求項３のいずれか一項に記載の内燃機関の制御装置が提供される。
【発明の効果】
【００１１】
本発明によれば、吸気管内の圧力の変動幅の大小の変化によって行程判別を行うようにしたので、従来では誤判定し易い条件でも行程判別を精度良く行なえる。正しい行程判別結果に基づいて点火出力などを行えるようになるので、点火系構成部品の耐久性を向上できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の実施の形態に係る内燃機関及び制御装置の構成を示す図である。
【図２】図２は、制御装置のブロック図である。
【図３】図３は、内燃機関の制御のフローチャートである。
【図４】図４は、タイミングロータを用いてクランク角検出の処理を説明するための図である。
【図５】図５は、エンジン行程判別用の吸気圧を算出する処理のフローチャートである（その１）。
【図６】図６は、エンジン行程判別処理のフローチャートである（その１）。
【図７】図７は、エンジン行程判別処理のフローチャートである（その２）。
【図８】図８は、エンジンの行程判別を行う際のタイミングチャートである（その１）。
【図９】図９は、エンジンの行程判別を行う際のタイミングチャートである（その２）。
【図１０】図１０は、行程判別の実験結果を示す図である（その１）。
【図１１】図１１は、行程判別の実験結果を示す図である（その２）。
【発明を実施するための最良の形態】
【００１３】
本発明を実施するための形態について以下に詳細に説明する。
図１に内燃機関及びその制御装置を含むシステムの概略構成図を示す。
内燃機関であるエンジン１は、空気を吸い込む吸気管２を有する。吸気管２は、上流側の吸気口２Ａにエアクリーナ３が取り付けられており、吸気温度センサ４が設けられた後、スロットルバルブ５で流路面積を調整可能になっている。スロットルバブル５の開度は、スロットル開度センサ６によりモニタされている。さらに、スロットルバルブ５の下流には、吸気圧センサ７と、燃料噴射用のインジェクタ８が順番に設けられた後、シリンダヘッド１２とシリンダブロック１１で形成される燃焼室１３に接続されている。吸気管２と燃焼室１３の間には吸気バルブ１４が管路を開閉自在に挿入されている。
【００１４】
シリンダブロック１１には、ピストン１５が摺動自在に挿入されている。ピストン１５は、クランクアーム１６を介してクランク軸１７に連結されており、ピストン１５の直線的な往復運動を出力軸であるクランク軸１７の回転運動に変換するように構成されている。クランク軸１７は、シリンダブロック１１に回転自在に支持されており、その回転数を検出するためのタイミングロータ１８が固定されている。タイミングロータ１８の近傍には、クランク角センサ１９が配置されている。さらに、シリンダブロック１１には、冷却水を循環させるための流路２０が形成されると共に、冷却水の温度を測定するための冷却水温センサ２１も取り付けられている。
【００１５】
シリンダヘッド１２には、吸気管２の他に、点火プラグ２４と、排気管２５が取り付けられている。点火プラグ２４は、点火コイル２７に電気的に接続され、高電圧が印加されるようになっている。また、排気管２５の燃焼室１３に連なる開口部には、排気バルブ２８が開閉自在に取り付けられている。さらに、排気管２５の途中には、触媒コンバータ２９が設けられている。
【００１６】
次に、このようなエンジン１の制御を行う制御装置４１の構成について図２を参照して説明する。なお、制御装置４１は、ＥＣＵ（Electronic Control Unit）と呼ばれることもある。
制御装置４１は、バッテリ４２に接続されると共に、クランク角センサ１９と、スロットル開度センサ６と、吸気圧センサ７と、冷却水温センサ２１と、吸気温度センサ４からの信号が入力可能に構成されている。さらに、制御装置４１からは、点火コイル２７と、インジェクタ８に信号を出力可能に構成されている。
【００１７】
また、制御装置４１は、クランク角センサ１９から出力されるデジタル信号を成形する波形整形回路５１と、４つのセンサ４，６，７，２１が出力するアナログ信号をデジタル信号に変換するＡ／Ｄ（Analog/Digital）変換器５２とを有し、これらはＣＰＵ（Central Processing Unit）５３に接続されている。ＣＰＵ５３には、ＲＯＭ（Read Only Memory）５４や、ＲＡＭ（Random Access Memory）５５、タイマ５６も接続されている。さらに、ＣＰＵ５３の出力は、点火回路５７と、駆動回路５８に接続されている。点火回路５７は、所定のタイミングで点火コイル２７に信号を出力するように構成されている。駆動回路５８は、所定のタイミングでインジェクタ８を駆動させる信号を出力するように構成されている。
【００１８】
さらに、この実施の形態で、ＣＰＵ５３は、クランク軸１７の回転角やエンジン回転数を算出するクランク信号処理部６１と、スロットル開度を算出するスロットル信号処理部６２と、吸気管圧力の算出や、最大値、及び最小値の算出を行う吸気圧算出部６３と、吸気管圧力の最大値、最小値の差から、クランク軸１７が１回転する間の吸気管２内の圧力変動幅を算出する変動幅算出部６４と、クランク軸１７が２回転する間に得られる圧力変動幅の前回値と今回値の大小を比較する変動幅比較部６５と、圧力変動幅の変化からエンジン１の行程を判別する行程判別部６６と、行程判別の結果に従って、燃料噴射出力及び点火出力を行わせる出力処理部６７と、に機能分割できる。
【００１９】
次に、この実施の形態における内燃機関の制御について説明する。
図３のフローチャートに示すように、最初に、クランク角の基準位置を検出する（ステップＳ１０１）。例えば、図４に示すように、タイミングロータ１８は、回転角２０°刻みに１８個の突起７１が形成されており、その内の一つを基準突起７１Ａとし、他の突起７１より周方向に長く形成されている。制御装置４１のクランク信号処理部６１は、基準突起７１Ａの次の突起７１を検出したら３６０ＣＡ（クランク・アングル、クランク角）のステージ数を「０」にし、ここから、突起７１を検出するたびにステージ数をインクリ
メントする。そして、基準突起７１Ａを検出したときのステージ数を「１７」とし、その後、基準突起７１Ａの次の突起７１を検出したらステージ数をリセットして再び「０」からカウントを繰り返す。なお、ピストン１５の上死点（ＴＤＣ）は、基準突起７１Ａと、次の突起７１の間にあり、基準突起７１Ａの終点が上死点から１０°手前の位置（ＢＴＤＣ１０°）に配置されている。また、基準突起７１Ａの次の突起７１の終点は、上死点から１０°遅れた位置（ＡＴＤＣ１０°）に配置されている。
【００２０】
クランク角１７の基準位置の検出は、タイミングロータ１８の外周に周期的に形成された突起７１の長さ、及び次の突起７１が現れるまでに要する時間を計測することで行われる。前記したように、タイミングロータ１８は、基準突起７１Ａだけ回転方向に長く形成されているので、クランク角センサ１９を用いて突起７１の長さ、及び次の突起７１が現れるまでに要する時間を計測し、その比率を算出する。基準突起７１Ａ以外の突起７１の比率は一定で、基準突起７１Ａは、突起部分が長いために他の突起７１より比率が相対的に大きくなる。したがって、比率の前回値と今回値の差を調べれば、基準突起７１Ａであるか、その他の突起７１であるかを判別できる。
【００２１】
続いて、タイミングロータ１８の基準突起７１Ａの後端位置を検出したことを示すクランク後端位置信号が出力されていなければ（ステップＳ１０２でＮｏ）、ここでの処理を終了する。これに対し、クランク後端位置信号が出力されていれば（ステップＳ１０２でＹｅｓ）、クランク角基準位置を検出しているか調べる（ステップＳ１０４）。クランク角基準位置を検出していない場合（ステップＳ１０４でＮｏ）、制御装置４１はエンジン行程判別のためのパラメータをリセットし（ステップＳ１０５）、ここでの処理を終了する。
【００２２】
これに対し、既にクランク角基準位置を検出していれば（ステップＳ１０４でＹｅｓ）、制御装置４１はエンジン回転数を算出する（ステップＳ１０６）。例えば、エンジン回転数は、タイミングロータ１８に設けられた突起７１間の時間計測値の３６０ＣＡ分の合計を基にして計算することで得られる。次に、制御装置４１のスロットル信号処理部６２は、スロットル開度センサ６の出力から、スロットル開度を算出する（ステップＳ１０７）。さらに、吸気圧算出部６３が吸気圧センサの出力から、吸気圧ＰＭＢを算出する（ステップＳ１０８）。
【００２３】
この後、制御装置４１の吸気圧算出部６３及び変動幅算出部６４は、吸気圧を用いてエンジン行程を判別するために使われる判別用吸気圧を算出する（ステップＳ１０９）。ここでは、クランク軸１７が１回転するたびに、その間の吸気圧の最大値と最小値が決定され、さらに吸気圧の最大値と最小値の差が算出される。この行程の詳細は、後に説明する。
さらに、制御装置４１の変動幅比較部６５及び行程判別部６６は、判別用の吸気圧からエンジン行程を判別する（ステップＳ１１０）。この実施の形態では、クランク軸が１回転する間の吸気圧の最大値と最小値の差のデータをクランク軸１７の４回転分取得し、差の変化が大→小→大→小、又は小→大→小→大であったときに、４回目以降の差の変化が前回値より小さい場合にエンジン１が膨張・排気行程である判別する。この行程の詳細については、後に説明する。
【００２４】
続いて、制御装置４３の出力処理部６７は、エンジン１の行程判別結果、エンジン回転数、スロットル開度から、点火時期を算出する（ステップＳ１１１）。さらに、燃料噴射量算出処理として、エンジン１の行程判別結果、エンジン回転数、スロットル開度から燃料噴射量、及び燃料噴射を開始するタイミングを決定する（ステップＳ１１２）。
【００２５】
さらに、出力処理部６７は、点火出力処理を実施し、点火プラグ２４に放電をさせて、
燃焼室１３内の可燃性混合気に点火する（ステップＳ１１３）。点火出力処理は、エンジン１の行程判別を行った後は、吸気・圧縮行程のみに点火出力を行うようになっており、クランク軸１７が２回転するたびに１回の点火出力が行われる。これに対し、エンジン１の行程判別が済んでいない段階では、クランク軸１７が１回転するたびに１回の点火出力を行う。
【００２６】
そして、出力処理部６７は、燃料噴射処理を実施し、吸気管２に吸い込まれた空気に燃料を噴射させて可燃性混合気を形成させる（ステップＳ１１４）。燃料噴射処理は、エンジン１の行程判別を行った後は、クランク軸１７が２回転するたびに燃料が１回噴射される。これに対し、エンジン１の行程判別が済んでいない段階では、クランク軸１７が１回転するたびに燃料が１回噴射される。
【００２７】
次に、図３のステップＳ１０９の行程判別用吸気圧の算出処理の詳細について、図５のフローチャートを参照して説明する。
最初に、タイミングロータ１８の回転に伴って算出されるステージ数を調べる（ステップＳ２０１）。クランク軸１７の回転角度に応じて定まるステージ数が、上死点直後のステージ、すなわちステージ数＝０である場合（ステップＳ２０１でＹｅｓ）には、吸気圧算出部６３が吸気圧のボトム値をリセットし、現在の吸気圧を吸気圧ボトム値ＰＭＢとする（ステップＳ２０２）。また、吸気圧のトップ値をリセットし、現在の吸気圧を吸気圧トップ値ＰＭＴとする（ステップＳ２０３）。吸気圧変動幅ＤＰＭＴＤＣもリセットし、現在の値をゼロにする（ステップＳ２０４）。その後、後述するステップＳ２１０に進む。
【００２８】
一方、ステップＳ２０１で、現在のステージが、上死点直後のステージでないと判定された場合（ステップＳ２０１でＮｏ）、吸気圧算出部６３は、吸気圧ボトム値ＰＭＢが測定されたか調べる（ステップＳ２０５）。すなわち、吸気圧の現在値が、吸気圧ボトム値ＰＭＢ以下の場合には、吸気圧ボトム値ＰＭＢが新たに検出されたとみなし、吸気圧ボトム値ＰＭＢを吸気圧の現在値で更新する（ステップＳ２０６）。吸気圧の現在値が、吸気圧ボトム値ＰＭＢより大きい場合には（ステップＳ２０５でＮｏ）、吸気圧ボトム値ＰＭＢは更新せずに、ステップＳ２０７に進む。
さらに、吸気圧算出部６３は、吸気圧トップ値ＰＭＴが測定されたか調べる（ステップＳ２０７）。吸気圧の現在値が、吸気圧トップ値ＰＭＴ以上の場合には、吸気圧トップ値ＰＭＴが新たに検出されたとみなし、吸気圧トップ値ＰＭＴを吸気圧の現在値で更新する（ステップＳ２０８）。吸気圧の現在値が、吸気圧トップ値ＰＭＴより小さい場合には（ステップＳ２０７でＮｏ）、吸気圧トップ値ＰＭＴは更新せずに、ステップＳ２０９に進む。
【００２９】
続く、ステップＳ２０９では、変動幅算出部６４が吸気圧変動幅ＤＰＭＴＤＣを算出する。吸気圧変動幅ＤＰＭＴＤＣは、吸気圧トップ値ＰＭＴから吸気圧ボトム値ＰＭＢを引くことで得られる。
【００３０】
次に、ステップＳ２１０の処理を実施する。現在のステージが上死点直前のステージでなければ、ここでの処理を終了する。これにより、上死点に相当するステージを過ぎて、次の上死点に相当するステージに達するまでの間、前記のステップＳ２０１〜ステップＳ２０９までの処理が繰り返され、吸気圧ボトム値ＰＭＢの更新と、吸気圧トップ値ＰＭＴの更新と、吸気圧変動幅ＤＰＭＴＤＣの算出とが繰り返される。
【００３１】
これに対し、現在のステージが上死点直前のステージになったときは（ステップＳ２１０でＹｅｓ）、ステップＳ２１１に進み、変動幅算出部６４が既にメモリされている今回吸気圧変動幅ＤＰＭＴＤＣ１の値を前回の吸気圧変動幅ＤＰＭＴＤＣ２として記憶させる
。その後、現在の吸気圧変動幅ＤＰＭＴＤＣの値を今回の吸気圧変動幅ＤＰＭＴＤＣ１として記憶する（ステップＳ２１２）。そして、前回の吸気圧変動幅ＤＰＭＴＤＣ２から今回の吸気圧変動幅ＤＰＭＴＤＣ１を引いて、吸気圧変動幅の変化量ＤＤＰＭＴＤＣを算出する（ステップＳ２１３）。ここまでの処理で、クランク軸１７が１回転するまでの間の吸気圧ボトム値ＰＭＢと、吸気圧トップ値ＰＭＴ、吸気圧変動幅の今回値（ＤＰＭＴＤＣ１）、並びに吸気圧変動幅の前回値と今回値の差である吸気圧変動幅の変化量ＤＤＰＭＴＤＣが算出されたので、ここでの処理を終了する。
【００３２】
次に、図３のステップＳ１１０のエンジン行程判別処理の詳細について、図６及び図７のフローチャートを参照して説明する。
まず、制御装置４１の変動幅算出部は、現在のステージを調べ、上死点直前のステージでなければ（ステップＳ３０１でＮｏ）、端子Ａから進む図７のステップＳ３２０を実施する。これに対して、上死点直前のステージであれば（ステップＳ３０１でＹｅｓ）、変動幅比較部６５が吸気圧変動幅ＤＰＭＴＤＣの変化量ＤＤＰＭＴＤＣが予め定められた所定値以上であるか調べる（ステップＳ３０２）。ここでの所定値は、エンジン１の排気量等によって異なるが、例えば５ｋＰａ程度とする。吸気圧変動幅ＤＰＭＴＤＣの変化量が所定値を下回っているときは、前回吸気圧変動フラグをリセットする（ステップＳ３０３）。さらに、今回吸気圧変動フラグをリセットし（ステップＳ３０４）、吸気圧変動周期カウンタＣＣをリセットし（ステップＳ３０５）、端子Ｂから進む図７のステップＳ３１２を実施する。
【００３３】
一方、ステップＳ３０２で吸気圧変動幅ＤＰＭＴＤＣの変化量が所定値以上であれば、前回吸気圧変動フラグＦ＿ＤＢを更新する（ステップＳ３０６）。具体的には、前回吸気圧変動フラグＦ＿ＤＢを今回吸気圧変動フラグＦ＿ＤＴの値で更新する。
さらに、吸気圧変動幅の前回値ＤＰＭＴＤＣ２と今回値ＤＰＭＴＤＣ１の大小関係を調べて今回吸気圧変動フラグＦ＿ＤＴを設定する（ステップＳ３０７）。例えば、吸気圧変動幅の前回値ＤＰＭＴＤＣ２が今回値ＤＰＭＴＤＣ１以上の場合には、吸気圧変動が大から小への変化であるので、今回吸気圧変動フラグＦ＿ＤＴを「１」に設定する。これに対し、吸気圧変動幅の前回値ＤＰＭＴＤＣ２が今回値ＤＰＭＴＤＣ１より小さい場合には、吸気圧変動が小から大への変化であるので、今回吸気圧変動フラグＦ＿ＤＴを「０」に設定する。
【００３４】
ここで、吸気圧の変動が周期的に生じているとみなせない場合（ステップＳ３０８でＮｏ）、ステップＳ３０９に進む。なお、吸気圧の変動が周期的に生じているとみなせない場合とは、吸気圧変動周期カウンタＣＣの値が「１」未満の場合をいう。ステップＳ３０９では、吸気圧変動幅の前回値ＤＰＭＴＤＣ２との今回値ＤＰＭＴＤＣ１との大小を比べる。そして、吸気圧変動幅の前回値ＤＰＭＴＤＣ２から今回値ＤＰＭＴＤＣ１への変化が、大→小への変化であり（ステップＳ３０９でＹｅｓ）、かつ吸気圧変動フラグの前回値（Ｆ＿ＤＢ）に対して今回値（Ｆ＿ＤＴ）が反転している場合（ステップＳ３１０でＹｅｓ）、吸気圧変動周期カウンタＣＣをインクリメントする（ステップＳ３１１）。その後、端子Ｂから進む図７のステップＳ３１２を実施する。
【００３５】
これに対し、ステップＳ３０９で、吸気圧変動幅の前回値ＤＰＭＴＤＣ２から今回値ＤＰＭＴＤＣ１への変化が、小→大への変化である場合には、ステップＳ３０５に進んで、吸気圧変動周期カウンタＣＣを「０」にリセットする。その後、端子Ｂから進む図７のステップＳ３１２を実施する。また、ステップＳ３１０で吸気圧変動フラグが反転していない場合、例えば、前回値Ｆ＿ＤＢと今回値Ｆ＿ＤＴが共に「１」である場合や、共に「０」である場合、ステップＳ３０５に進んで吸気圧変動周期カウンタＣＣを「０」にリセットする。そして、端子Ｂから進む図７のステップＳ３１２を実施する。
【００３６】
一方、ステップＳ３０８で吸気圧の変動が周期的に生じている場合、すなわち吸気圧変動周期カウンタＣＣの値が「１」以上の場合（ステップＳ３０８でＹｅｓ）には、ステップＳ３１０に進む。そして、吸気圧変動フラグが前回値Ｆ＿ＤＢに対して今回値Ｆ＿ＤＴが反転している場合（ステップＳ３１０でＹｅｓ）、吸気圧変動カウンタＣＣをインクリメントし（ステップＳ３１１）、ステップＳ３１２に進む。ステップＳ３１０で吸気圧変動フラグが反転していない場合には、ステップＳ３０５で吸気圧変動周期カウンタＣＣをリセットする。そして、端子Ｂから進む図７のステップＳ３１２を実施する。
【００３７】
図７に示すステップＳ３１２では、行程判別部６６が吸気圧変動周期カウンタＣＣの値を調べる。吸気圧変動周期カウンタＣＣの値が「３」以上であれば（ステップＳ３１２でＹｅｓ）、吸気圧変動幅が大→小に変化しているか調べる（ステップＳ３１３）。すなわち、吸気圧変動フラグの今回値Ｆ＿ＤＴを調べ、その値が「１」であれば（ステップＳ３１３でＹｅｓ）、ステップＳ３１４に進む。そして、エンジン１の行程判別が済んでいる場合（ステップＳ３１４でＹｅｓ）、７２０ＣＡにおけるステージ数が「２５」であれば（ステップＳ３１５でＹｅｓ）、ステップＳ３１６に進む。同様に、ステップＳ３１４でエンジン１の行程判別が済んでいない場合も、ステップＳ３１６に進む。
【００３８】
ステップＳ３１６では、エンジン１の行程判別ができたものとみなし、行程判別フラグＦ＿ＳＴを「１」にセットする。さらに、７２０ＣＡステージを「２６」にセットする（ステップＳ３１７）。なお、７２０ＣＡステージとは、クランク軸が７２０°回転する間に、タイミングロータ１８の突起７１の位置を検出するたびにインクリメントされる数字である。
【００３９】
なお、ステップＳ３１２で、吸気変動周期カウンタＣＣの値が「３」未満の場合と、ステップＳ３１３で吸気圧変動幅が小→大に変化していた場合は、ステップＳ３２０に進む。ここで、行程判別部６６は、行程判別フラグＦ＿ＳＴを参照し、エンジン１の行程判別が済んでいるか調べる。行程判別が済んでいなければ（ステップＳ３２０でＮｏ）、エンジン１の行程判別ができないと判断する（ステップＳ３２１）。このとき、行程判別フラグＦ＿ＳＴには、「０」が代入される。さらに、７２０ＣＡステージがリセットされる（ステップＳ３２２）。また、前記したステップＳ３１５で７２０ＣＡステージとエンジン行程が不一致な場合にも、ステップＳ３２１及びステップＳ３２２が実施される。
【００４０】
また、ステップＳ３２０で、行程判別が済んでいる場合、すなわち、行程判別フラグＦ＿ＳＴが「１」の場合（ステップＳ３２０でＹｅｓ）、７２０ＣＡステージが最大値のときは（ステップＳ３２３でＹｅｓ）、７２０ＣＡステージをゼロに設定する（ステップＳ３２４）。それ以外の場合には、７２０ＣＡステージを１つインクリメントする（ステップＳ３２５）。
【００４１】
そして、ステップＳ３１７、Ｓ３２２、Ｓ３２４、Ｓ３２５で７２０ＣＡステージの設定を行った後、エンジン１の行程判別が済んでいるか否かで、ステップＳ３２６以降の処理が分かれる。
すなわち、行程判別フラグＦ＿ＳＴが「０」、つまり行程判別が済んでいなければ（ステップＳ３２６でＮｏ）、エンジン行程フラグＦ＿ＥＮＧに「０」を代入し（ステップＳ３２７）、ここでの処理を終了する。これに対し、行程判別が済んでいれば（ステップＳ３２６でＹｅｓ）、７２０ＣＡステージが「９」の場合に（ステップＳ３２８でＹｅｓ）、エンジン１が膨張・排気行程であるとみなし、エンジン行程フラグＦ＿ＥＮＧを「１」に設定する（ステップＳ３２９）。その後、ここでの処理を終了する。また、７２０ＣＡステージが「９」でない場合（ステップＳ３２８でＮｏ）、７２０ＣＡステージが「２７」であれば（ステップＳ３３０でＹｅｓ）、吸気・圧縮行程とみなし、エンジン行程フラグＦ＿ＥＮＧを「０」に設定する（ステップＳ３１１）。この後、ここでの処理を終了す
る。そして、７２０ＣＡステージが「９」でもなく、「２７」でもない場合（ステップＳ３３０でＮｏ）には、エンジン行程フラグＦ＿ＥＮＧを設定することなくここでの処理を終了する。
【００４２】
なお、図３のフローチャートにおける点火時期算出処理（ステップＳ１１１）、燃料噴射量算出処理（ステップＳ１１２）、点火出力処理（ステップＳ１１３）、及び燃料噴射処理（ステップＳ１１４）は、行程判別フラグＦ＿ＳＴが「１」のときに、クランク軸１７が２回転するごとに１回ずつ燃料噴射等を行うように処理が実施される。また、燃料噴射等の時期は、エンジン判別フラグＦ＿ＥＮＧを参照することで、エンジン１の各行程に合わせて最適なタイミングで実施される。
【００４３】
次に、エンジン始動時の処理について、図８のタイミングチャートを主に参照しながら詳細に説明する。なお、図８の横軸は、時刻を示す。縦軸は、上から、ＴＤＣ／ＢＤＣがピストン１５が上死点（ＴＤＣ）又は下死点（ＢＤＣ）にあることを示し、エンジン行程は、エンジン１がいずれの行程にあるかを示す。また、クランク信号は、タイミングロータ１８の回転に伴ってクランク角センサ１９から出力されるアナログ信号を示す。Ｆ＿ＴＣＴＤＣは、基準位置を検出したことを示すフラグである。３６０ＣＡステージは、クランク軸１７が１回転（３６０°）する間で、タイミングロータ１８の突起７１が検出されるたびにインクリメントされるデータで、０〜１７の値が繰り返して割り当てられる。７２０ＣＡステージは、クランク軸１７が２回転（７２０°）する間で、タイミングロータ１８の突起７１が検出されるたびにインクリメントされるデータで、０〜３５の値が繰り返して割り当てられる。なお、３６０ＣＡステージ及び７２０ＣＡステージは、検出されていない場合には「ＦＦ」が割り当てられている。さらに、Ｆ＿ＥＮＧは、エンジン行程フラグであり、吸気圧は吸気管２の内圧の値である。Ｆ＿ＤＴは、吸気圧変動フラグの今回値であり、ＣＣは吸気圧変動カウンタＣＣの値である。さらに、Ｆ＿ＳＴは、エンジン１の行程判別フラグを示す。
【００４４】
時刻ｔ０でクランキングが開始されると、クランク軸１７の回転に伴って、クランク角センサ１９からアナログのクランク信号が出力される。クランク信号は、例えば２０°ごとにピークが周期的に現れる信号である。
時刻ｔ１でクランク軸１７と共に回転するタイミングロータ１８の基準位置が検出されると、基準位置を検出したことを示すフラグＦ＿ＴＣＴＤＣが「１」にセットされる。これにより、３６０ＣＡステージの値が更新され、以降は０〜１７の値が繰り返して割り当てられる。また、吸気圧ＰＭの読み込みが開始される。さらに、図５のフローチャートに示すような行程判別用吸気圧算出処理によって、吸気圧ボトム値ＰＭＢ、吸気圧トップ値ＰＭＴ、及び吸気圧変動幅ＤＰＭＴＤＣの算出が開始される。
【００４５】
そして、クランク信号のピークを検出する度に、３６０ＣＡステージがインクリメントされ、時刻ｔ２において３６０ＣＡステージが上死点の直前に相当する「１７」になると、このときの吸気圧変動幅が吸気圧変動幅の今回値ＤＰＭＴＤＣ１として記憶される。また、今まで記憶されていた吸気圧変動幅の今回値ＤＰＭＴＤＣ１は、前回値ＤＰＭＴＤＣ２として記憶される。さらに、吸気圧変動幅の今回値ＤＰＭＴＤＣ１と前回値ＤＰＭＴＤＣ２の間の変化量ＤＤＰＭＴＤＣも算出される。しかしながら、時刻ｔ２では、初回の処理なので、吸気圧変動幅の変化量ＤＤＰＭＴＤＣは０である。
【００４６】
この後、３６０ＣＡステージがリセットされて、再び「０」からカウントし直される。これと共に、図５のフローチャートに示すような行程判別用吸気圧算出処理によって、吸気圧ボトム値ＰＭＢ、吸気圧トップ値ＰＭＴ、及び吸気圧変動幅ＤＰＭＴＤＣの算出が開始される。時刻ｔ２から時刻ｔ３に至る過程では、ステージが「５」付近までは、吸気圧が徐々に減少する。このため、吸気圧トップ値ＰＭＴは初期値が維持される。その一方で
、吸気圧ボトム値ＰＭＢが吸気圧の減少に伴って適宜更新され、ステージ「５」で最小値Ｐ１になる。この後、ステージ「１７」にかけて、吸気圧が徐々に増加すると、吸気圧ボトム値ＰＭＢはＰ１が維持されるが、ステージ「１７」で吸気圧トップ値ＰＭＴが最大値Ｐ２になる。この結果、吸気圧変動幅ＤＰＭＴＤＣは、図中の四角で囲んだ範囲の高さに相当し、Ｐ２−Ｐ１になる。
【００４７】
ここで、このときの吸気圧変動幅ＤＰＭＴＤＣは、図６のステップＳ３０２に示す所定値を越える大きさであるとする。この場合、吸気圧変動幅の前回値ＤＰＭＴＤＣ２と今回値ＤＰＭＴＤＣ１の大小を比較すると、変動幅が小→大に変化しているので、吸気圧変動フラグの今回値Ｆ＿ＤＴには「０」がセットされる。この段階では、未だ行程判別は済んでおらず、吸気圧変動フラグの反転も確認できない。このため、吸気圧変動周期カウンタＣＣは、「０」のままである。
【００４８】
続く時刻ｔ３から時刻ｔ４の間も前記と同様の処理が行われる。ここでは、吸気圧変動幅の前回値ＤＰＭＴＤＣ２（時刻ｔ２から時刻ｔ３の間）と今回値ＤＰＭＴＤＣ１（時刻ｔ３から時刻ｔ４の間）の大小を比較する。時刻ｔ４における吸気圧変動幅の今回値ＤＰＭＴＤＣ１は、時刻ｔ３における前回値ＤＰＭＴＤＣ２より小さい、つまり時刻３から時刻ｔ４で変動幅が大→小に変化しているので、吸気圧変動フラグの今回値Ｆ＿ＤＴに「１」がセットされる。この段階では、未だ行程判別は済んでいないが、吸気圧変動フラグの今回値Ｆ＿ＤＴが「０」から「１」に反転している。すなわち、前回の上死点から今回の上死点に至るまでの間で吸気圧変動の周期があったとみなせるので、吸気圧変動周期カウンタＣＣがインクリメントされ、「１」になる。
【００４９】
次の時刻ｔ４から時刻ｔ５までの間では、吸気圧変動幅ＤＰＭＴＤＣの今回値が計算される。前回値（時刻ｔ３から時刻ｔ４の間）と今回値（時刻ｔ４から時刻ｔ５の間）の変動幅が小→大になるので、吸気圧変動フラグの今回値Ｆ＿ＤＴに「０」がセットされる。この段階でも未だ行程判別は済んでいないが、吸気圧変動フラグの反転（「１」→「０」）が確認されたので、吸気圧変動周期カウンタＣＣがインクリメントされ、「２」になる。
【００５０】
さらに、時刻ｔ５から時刻ｔ６の間は、吸気圧変動幅ＤＰＭＴＤＣの今回値が計算される。吸気圧変動幅ＤＰＭＴＤＣの変動幅が大→小になっているので、吸気圧変動フラグの今回値Ｆ＿ＤＴが前回値に対して反転する。このため、吸気圧変動周期カウンタＣＣがインクリメントされ、「３」になる。
【００５１】
ここまでの行程で、吸気圧変動周期カウンタＣＣが「３」以上になる。つまり、クランク軸１７の４回転分に相当する期間において、７２０ＣＡ間の吸気管圧力変動幅の大小の変化が交互に連続して発生したことになるので、行程判別が可能になる。
さらに、このときの吸気圧変動幅ＤＰＭＴＤＣの変動幅が大→小であることから、直前の１回転(３６０ＣＡ)が膨張・排気行程と判別される。
これに伴い、７２０ＣＡステージにおける行程判別フラグＦ＿ＳＴに「１」がセットされると共に、このときの７２０ＣＡステージＳＴＡＧＥに「２６」をセットする。
以降は、エンジン１の行程判別結果に基づいて、２回転に１回の燃料噴射出力、点火出力が行われる。
【００５２】
次に、車両が減速から加速に転じるときの行程判別の処理について図９のタイミングチャートを主に参照して説明する。なお、時刻ｔ１０でエンジン１は減速運転状態にあり、例えばエンジン回転数５０００ｒｐｍ、スロットル開度はアイドル開度で運転されている状態とする。また、時刻ｔ１０以前において行程判別は行われていたものとし、例えば、吸気圧変動幅ＤＰＭＴＤＣの変動幅が小→大で、吸気圧変動周期カウンタＣＣは「２５５
」とする。吸気圧変動周期カウンタＣＣは、「２５５」が上限リミットであることから、２５５回以上の大小の変化が交互に連続した変動周期回数があったことを示している。
【００５３】
時刻ｔ１１で、減速運転状態から、スロットルバルブ５を開方向へ操作されることで、加速運転が開始される。このときのエンジン行程が膨張・排気行程にあることから、吸気管２にエンジン１は何の作用も及ぼさない。スロットルバルブ５が開くことで、スロットルバルブ５の下流側は上流側即ち、大気と導通する。その結果、膨張・排気行程における吸気管圧力は大気圧近傍に変化し、膨張・排気行程の吸気圧変動幅ＤＰＭＴＤＣは、前回の吸気・圧縮行程の吸気圧変動幅ＤＰＭＴＤＣと比較して大きくなる。
【００５４】
時刻ｔ１２で３６０ＣＡステージが上死点前ステージに達すると、時刻ｔ１０を過ぎた後のステージから時刻ｔ１２までの間の吸気圧変動幅ＤＰＭＴＤＣが算出される。吸気圧変動幅ＤＰＭＴＤＣの前回値から今回値への変化は、小→大なので、吸気圧変動フラグの今回値Ｆ＿ＤＴが「０」にセットされる。吸気圧変動フラグは「０」が維持されることになるので、前回の上死点から今回の上死点に至るまで間で吸気圧変動の周期性が失われたことになり、吸気圧変動周期カウンタＣＣがリセットされて「０」になる。
【００５５】
時刻ｔ１３で３６０ＣＡステージが上死点前ステージに達すると、時刻ｔ１２を過ぎた後のステージから時刻ｔ１３までの間の吸気圧変動幅ＤＰＭＴＤＣが算出される。吸気圧変動幅ＤＰＭＴＤＣの前回値から今回値への変化は、大→小なので、吸気圧変動フラグの今回値Ｆ＿ＤＴが「１」にセットされる。吸気圧変動周期カウンタＣＣが「０」なので、吸気圧変動フラグが前回値に対して反転したことから、前回の上死点から今回の上死点に至るまで間で吸気圧変動の周期性が満たされたことになり、吸気圧変動周期カウンタＣＣがインクリメントされて「１」になる。
【００５６】
時刻ｔ１４で３６０ＣＡステージが上死点前ステージに達すると、時刻ｔ１３を過ぎた後のステージから時刻ｔ１４までの間の吸気圧変動幅ＤＰＭＴＤＣが算出される。吸気圧変動幅ＤＰＭＴＤＣの前回値から今回値への変化は、大→小なので、吸気圧変動フラグの今回値Ｆ＿ＤＴが「１」にセットされる。吸気圧変動フラグは「１」が維持されることになるので、前回の上死点から今回の上死点に至るまで間で吸気圧変動の周期性が失われたことになり、吸気圧変動周期カウンタＣＣがリセットされて「０」になる。
【００５７】
時刻ｔ１５で３６０ＣＡステージが上死点前ステージに達すると、時刻ｔ１４を過ぎた後のステージから時刻ｔ１５までの間の吸気圧変動幅ＤＰＭＴＤＣが算出される。吸気圧変動幅ＤＰＭＴＤＣの前回値から今回値への変化は、小→大である。この段階で気圧変動周期カウンタＣＣが「０」なので、吸気圧変動周期カウンタＣＣが再びリセットされて「０」になる。
【００５８】
時刻ｔ１６で３６０ＣＡステージが上死点前ステージに達すると、時刻ｔ１５を過ぎた後のステージから時刻ｔ１６までの間の吸気圧変動幅ＤＰＭＴＤＣが算出される。吸気圧変動幅ＤＰＭＴＤＣの前回値から今回値への変化は、大→小なので、吸気圧変動フラグの今回値Ｆ＿ＤＴが「１」にセットされる。吸気圧変動周期カウンタＣＣが「０」で、吸気圧変動フラグが前回値に対して反転したことから、前回の上死点から今回の上死点に至るまで間で吸気圧変動の周期性が満たされたことになり、吸気圧変動周期カウンタＣＣがインクリメントされて「１」になる。
【００５９】
以降は、３６０ＣＡステージが上死点前ステージに達する度に、前記の処理が繰り返えされる。時刻ｔ１７では、吸気圧変動周期カウンタＣＣが「１」で、かつ変動幅が反転しているので、吸気圧変動周期カウンタＣＣがインクリメントされて「２」になる。時刻ｔ１８では、吸気圧変動周期カウンタＣＣが「２」で、かつ変動幅が反転しているので、吸
気圧変動周期カウンタＣＣがインクリメントされて「３」になる。
【００６０】
ここで、時刻ｔ１８までの処理で、吸気圧変動周期カウンタＣＣが「３」になり、変動幅が大→小であるので、行程判別が行われる。即ち、クランク４回転の期間において、クランク２回転(７２０ＣＡ)の間の吸気管圧力変動幅の大小の変化が交互に連続して発生すると共に、今回の吸気管圧力変動幅ＤＰＭＴＤＣの大小の変化が大から小であったことから、直前の１回転(３６０ＣＡ)を膨張・排気行程と判別する。
この結果、行程判別フラグＦ＿ＳＴに「１」がセットされ、７２０ＣＡステージＳＴＡＧＥに＃２６がセットされる。
【００６１】
このように、エンジン減速運転中にスロットルバルブ５の開き方向への操作が実施され、即ち加速運転が実施されると、吸気圧変動幅ＤＰＭＴＤＣの周期性が失われる。従来の制御装置では、このように周期性が失われた場合には行程を誤判定しまう。これに対し、この制御装置４１では、吸気管圧力変動幅の大小の変化が交互にクランク軸１７の４回転の期間において連続して発生することをエンジン行程判別条件とすることで、周期性が失われた後でも行程判別が行える。
また、ｔ１４以降の吸気圧信号は、高負荷、例えばスロットル全開時の信号波形を示しており、高負荷においては、吸気管内に図９の時刻ｔ１１から時刻ｔ１２の間のような吸気圧脈動が発生するので、従来の吸気圧最小値、または累積値の比較によるエンジン行程判別では判別不能や、誤判別となる場合がある。この制御装置４１は、吸気圧変動幅をクランク２回転間(７２０ＣＡ)で比較することから、高負荷時の吸気圧脈動が発生するエンジン運転状態であっても精度良くエンジン行程判別を行うことが可能である。
【００６２】
以上、説明したように、クランク軸１７が１回転（３６０ＣＡ）する間の吸気管圧力変動幅の今回値と前回値の大小を比較するようにしたので、エンジン１を高回転、高負荷で運転させて吸気管圧力脈動が大きくなる条件においても精度良くエンジン行程を判別することができる。
吸気管圧力変動幅の大小比較によってエンジン行程判別を行なうので、吸気管圧力の偏差を大きく検出することができ、スロットル開度、エンジン回転数で構成されるエンジン運転領域において、エンジン行程判別が可能な領域を従来技術と比較して広くすることができる。
【００６３】
また、吸気管圧力変動幅の大小の変化が交互に連続して発生する周期性に着目してエンジン行程を判別するようにしたので、吸入空気量を調整するスロットルバルブ５が開閉操作されている場合であっても、より精度良くエンジン行程を判別することができる。
吸気管圧力変動幅の大小の変化が３回発生したときに行程判別を行うようにしたので、スロットルバルブ５が開閉操作されている場合であっても、エンジン行程を短期間で精度良く判別できる。
【００６４】
これらのことから、エンジン行程誤判別によるエンストを防止し、エンジン行程判別によってクランク軸１７が２回転(７２０ＣＡ)する間にエンジン行程に基づいた１回の燃料噴射出力と、点火出力を行なうことができるので、エネルギー損失(消費)が低減されると共に、コンデンサやコイルなどの点火系構成部品の耐久性を向上できる。
【００６５】
なお、エンジン１の運転中にスロットルバルブ５の開度が一定で安定していれば、膨張・排気行程の吸気管圧力変動幅は前回値より小さくなる。しかしながら、膨張・排気行程においてスロットルバルブ５が開き方向に操作された場合は、吸気管２にエンジン１は何の作用も及ぼしていないことから、スロットルバルブ５の下流の吸気管２は上流の吸気管即ち、大気と導通することとなり、膨張・排気行程の吸気管圧力は大気圧近傍へ変化し、膨張・排気行程の吸気管圧力変動幅は吸気・圧縮行程の吸気管圧力変動幅と比較して大き
くなる。さらに、その直後の行程における吸気管圧力変動幅は、直前の膨張・排気行程の吸気管圧力変動幅と比較して小さくなる。これに対し、膨張・排気行程においてスロットルバルブ５が閉まり方向に操作されても、吸気管圧力変動幅が直前の吸気・圧縮行程の吸気管圧力変動幅より大きくなることはない。つまり、スロットルバルブ５の開閉操作が行なわれた場合であっても、膨張・排気行程の吸気管圧力変動幅が、吸気・圧縮行程の吸気管圧力変動幅より大きくなることは、クランク軸１７の４回転以上連続して発生することはない。
【００６６】
ここで、図１０及び図１１に実験結果を示す。図１０は、高負荷状態（例えば、エンジン回転数約９０００ｒｐｍ）から減速したときの各パラメータと判別結果を示す。また、図１１は、減速運転から加速（例えば、エンジン回転数約９０００ｒｐｍまで）したときの各パラメータと判別結果を示す。
図１０は、高負荷から減速した場合の吸気管圧力の変化を示す。上死点間の吸気管圧力変動幅をクランク軸１７が２回転(７２０ＣＡ)する間で大小を比較した場合、大小の変化が交互に連続して発生していることがわかる。従来の判別方法では、吸気圧ボトム値ＰＭＢに着目していたので、連続する２つの行程の間で吸気圧ボトム値ＰＭＢの差が小さい場合に、判定ミスが生じる可能性があった。これに対して、この実施の形態では、吸気圧トップ値ＰＭＴの吸気圧ボトム値ＰＭ
Ｂの間の変化量に着目することで、吸気圧ボトム値ＰＭＢの差が小さい場合でも、吸気・圧縮行程と、膨張・排気行程とを区別することができる。
【００６７】
図１１は、減速運転から加速した場合の吸気管圧力の変化を示す。４０ｍｓｅｃ付近でスロットル５を開き始めたときに、吸気圧変動幅の大小の変化が交互に発生しない状態が生じるが、すぐに吸気圧変動幅の大小の変化が交互に発生し始める。クランク軸１７の４回転に相当する期間、大小の変化が交互に連続して発生するようになり、加速時においても精度良くエンジン行程を判別可能であることがわかる。
【００６８】
エンジン１の上死点間の吸気管圧力変動幅をクランク軸１７が２回転(７２０ＣＡ)する間で大小を比較した場合において、大小の変化が交互にクランク軸１７が４回転するまでの期間において連続して発生するとともに、今回の吸気管圧力変動幅の大小の変化が大から小であれば直前の１回転(３６０ＣＡ)を膨張・排気行程と判別する。スロットル開度が閉じ方向(減速)、開き方向(加速)の操作をされた場合においても精度良くエンジン行程を判別することができる。
【００６９】
なお、本発明は、前記の実施の形態に限定されずに広く応用することができる。
例えば、本実施の形態は、多気筒エンジンに適用することも可能である。また、内燃機関は、図１に示すエンジン１に限定されない。
また、吸気管圧力変動幅の大小の変化が４回以上生じたときに行程判別を行っても良い。
【符号の説明】
【００７０】
１      エンジン（内燃機関）
２      吸気管
１７      クランク軸（出力軸）
４１      制御装置
５３      ＣＰＵ
６１      クランク信号処理部
６２      スロットル信号処理部
６３      吸気圧算出部
６４      変動幅算出部
６５      変動幅比較部
６６      行程判別部
６７      出力処理部
【図１】
2011026979.tif 000003
【図２】
2011026979.tif 000004
【図３】
2011026979.tif 000005
【図４】
2011026979.tif 000006
【図５】
2011026979.tif 000007
【図６】
2011026979.tif 000008
【図７】
2011026979.tif 000009
【図８】
2011026979.tif 000010
【図９】
2011026979.tif 000011
【図１０】
2011026979.tif 000012
【図１１】
2011026979.tif 000013