(57)【要約】【課題】  筒内圧センサを備えた多気筒エンジンにおいて、ＮＥセンサを用いることなくエンジン回転数を検出する装置を提供する。【解決手段】  最低１つの気筒に筒内圧センサが設けられている多気筒エンジンにおいて、エンジン回転数の検出装置を、筒内圧センサの出力信号から抽出したデータに基づいて気筒の筒内圧のピーク値を検出するピーク値検出部と、検出した複数の筒内圧のピーク値の間の関係を用いてエンジンの回転数を算出する回転数算出部とから構成する。ピーク値検出部は、或る気筒の筒内圧センサの出力信号から抽出したデータに基づいて、１サイクル毎に現れる筒内圧のピーク値を連続して検出することができ、回転数算出部はピーク値検出部が検出した筒内圧のピーク値と１サイクル後のピーク値との間隔から、エンジンの回転数を算出することができる。【選択図】      図５
2005163726.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの気筒に筒内圧センサが設けられているエンジン回転数検出装置において、
前記筒内圧センサの出力信号から抽出したデータに基づいて、前記気筒の筒内圧のピーク値を検出するピーク値検出手段と、
前記ピーク値検出手段により検出された複数の前記ピーク値の間の関係を用いて、エンジンの回転数を算出する回転数算出手段とを備えることを特徴とするエンジン回転数の検出装置。
【請求項２】
前記回転数算出手段は、前記ピーク値検出手段により検出された或る１つの前記気筒における複数の前記ピーク値の間隔からエンジン回転数を算出することを特徴とする請求項１に記載のエンジン回転数の検出装置。
【請求項３】
前記回転数算出手段は、前記ピーク値検出手段により検出された或る１つの前記気筒における複数の前記ピーク値の間隔からエンジン回転数を複数算出し、該複数のエンジン回転数の平均値を、制御で使用するエンジン回転数として算出することを特徴とする請求項１に記載のエンジン回転数の検出装置。
【請求項４】
前記ピーク値検出手段は、前記筒内圧センサの出力信号からサンプリング間隔ｄｔ（秒）で抽出したデータに基づいて、前記気筒の筒内圧のピーク値を検出し、
前記回転数算出手段は、前記エンジンの回転数Ｎｅの算出を、前記ピーク値検出手段より検出された或る１つの前記気筒における或る１つの前記ピーク値と前記ピーク値から１サイクル後のピーク値との間のデータ数がｎである時に、前記ピーク値と１サイクル後のピーク値の間の時間ｔをｄｔ×ｎで算出し、１サイクルのクランクアングルを７２０°ＣＡとして、
Ｎｅ＝１２０／（ｄｔ×ｎ）
（ｒｐｍ）で算出することを特徴とする請求項２または３に記載のエンジン回転数の検出装置。
【請求項５】
前記エンジンは、それぞれの前記気筒に前記筒内圧センサが設けられている多気筒エンジンであり、
前記ピーク値検出手段は、前記筒内圧センサの出力信号から抽出したデータに基づいて、第１の前記気筒の筒内圧のピーク値と、該第１の前記気筒とは異なる第２の前記気筒の筒内圧のピーク値とを検出し、
前記回転数算出手段は、前記ピーク値検出手段により検出された複数の前記ピーク値との間隔から、エンジンの回転数を算出することを特徴とする請求項１に記載のエンジン回転数の検出装置。
【請求項６】
前記ピーク値検出手段は、前記筒内圧センサの出力信号からサンプリング間隔ｄｔ（秒）で抽出したデータに基づいて、前記気筒の筒内圧のピーク値を検出し、
前記回転数算出手段は、前記エンジンの回転数Ｎｅの算出を、前記ピーク値検出手段により検出された或る１つの前記気筒における或る１つの前記ピーク値と該気筒の次に点火される次期点火気筒のピーク値との間のデータ数がｍである時に、前記ピーク値と前記次期点火気筒のピーク値の間の時間Ｔをｄｔ×ｍで算出し、前記ピーク値と前記次期点火気筒のピーク値との間のクランクアングルを７２０／（気筒数）°ＣＡとして、
Ｎｅ＝（１２０／気筒数）／（ｄｔ×ｍ）
（ｒｐｍ）で算出することを特徴とする請求項５に記載のエンジン回転数の検出装置。
【請求項７】
前記筒内圧センサの出力信号波形を監視する波形監視手段を更に備え、
前記ピーク値検出手段は、前記波形監視手段により前記出力信号波形に圧縮によるピーク値と燃焼によるピーク値とが検出された時には、前記圧縮によるピーク値を、エンジン回転数を算出するためのピーク値として使用することを特徴とする請求項１から６の何れか１項に記載のエンジン回転数の検出装置。
【請求項８】
エンジンの点火時期を検出する点火時期検出手段を更に備え、
前記ピーク値検出手段は、前記点火時期検出手段により点火時期が所定角度以上遅角されたと検出された時には、エンジン回転数を検出する前記気筒において点火前に前記筒内圧センサから出力されるピーク値を、エンジン回転数を算出するためのピーク値として使用することを特徴とする請求項１から６の何れか１項に記載のエンジン回転数の検出装置。
【請求項９】
前記ピーク値検出手段は、或る１つの前記気筒の或る１サイクルにおける前記筒内圧のピーク値の検出を、
（Ａ）予想される最低エンジン回転数の１サイクルに含まれる前記筒内圧センサの出力信号から抽出したデータ数の２倍のデータ数の中からピーク値と最小値とを算出し、
（Ｂ）前記ピーク値と最小値の差に１未満の正の係数を乗算し、得られた値に前記最小値を加えた値を判定レベルとして設定し、
（Ｃ）前記ピーク値より後の時点において、前記判定レベルと同値又は前記判定レベルに最も近い値をピーク後判定点として算出し、
（Ｄ）このピーク後判定点から後の時点において、前記判定レベルと同値又は前記判定レベルを挟んで連続する２値の内の前記判定レベルに近い値をピーク前判定点として算出し、そして、
（Ｅ）前記ピーク前判定点の後の時点において、今回の値よりも次の値の方が小さくなる点をピーク値とすることによって行い、
以後は（Ｂ）から（Ｅ）の動作を必要サイクル数繰り返すことによってピーク値を検出することを特徴とする請求項２または３に記載のエンジン回転数の検出装置。
【請求項１０】
前記ピーク値検出手段は、或る１つの前記気筒の或る１サイクルにおける前記筒内圧のピーク値の検出を、
（Ａ）予想される最低エンジン回転数の１サイクルに含まれる前記筒内圧センサの出力信号から抽出したデータ数の２倍のデータ数の中からピーク値と最小値とを算出し、
（Ｂ）前記ピーク値と最小値の差に１未満の正の係数を乗算し、得られた値に前記最小値を加えた値を判定レベルとして設定し、
（Ｃ）前記ピーク値より後の時点において、前記判定レベルと同値又は前記判定レベルに最も近い値を第１のピーク後判定点として算出し、
（Ｄ）前記第１のピーク後判定点から後の時点において、前記判定レベルと同値又は前記判定レベルを挟んで連続する２値の内の前記判定レベルに近い値をピーク前判定点として算出し、そして、
（Ｆ）前記ピーク前判定点の後の時点において、前記判定レベルと同値又は前記判定レベルを挟んで連続する２値の内の前記判定レベルに近い値を第２のピーク後判定点として算出し、前記ピーク前判定点と該第２のピーク後判定点の間の最大値をピーク値とすることによって行い、
以後は（Ｂ）から（Ｆ）の動作を必要サイクル数繰り返すことによってピーク値を検出することを特徴とする請求項２または３に記載のエンジン回転数の検出装置。
【請求項１１】
前記ピーク値検出手段は、前記ピーク前判定点または前記ピーク後判定点を算出するに際して、前記筒内圧センサの出力信号から抽出したデータを所定個数ずつ間引く間引き処理を行ったデータを用いることを特徴とする請求項９または１０に記載のエンジン回転数の検出装置。
【請求項１２】
前記ピーク値検出手段は、少なくとも２つのピーク値を算出した後は、この２つのピーク値からエンジン回転数を算出し、算出したエンジン回転数に応じて、前記間引き処理において前記筒内圧センサの出力信号から抽出したデータから間引くデータ数を決定することを特徴とする請求項１１に記載のエンジン回転数の検出装置。
【請求項１３】
前記ピーク値検出手段は、前記ピーク後判定点を算出した後、所定の区間が経過した後に、前記ピーク前判定点の算出を実行することを特徴とする請求項９または１０に記載のエンジン回転数の検出装置。
【請求項１４】
前記ピーク値検出手段は、第１の前記気筒の前記ピーク後判定点を算出した後は、該第１の前記気筒の１つ前に点火が行われる前記気筒の前記ピーク前判定点または前記ピーク値を検出した点から、該第１の前記気筒の前記ピーク前判定点を算出する処理を実行することを特徴とする請求項９または１０に記載のエンジン回転数の検出装置。
【請求項１５】
前記ピーク値検出手段は、前記筒内圧センサの出力信号から抽出したデータは、高周波ノイズ成分を除去する処理を行った後に使用することを特徴とする請求項１から１４の何れか１項に記載のエンジン回転数の検出装置。
【請求項１６】
少なくとも１つの気筒に筒内圧センサが設けられているエンジン回転数検出方法において、
前記筒内圧センサの出力信号から抽出したデータに基づいて、前記気筒の筒内圧のピーク値を検出し、
検出した複数の筒内圧の前記ピーク値の間の関係を用いてエンジンの回転数を算出することを特徴とするエンジン回転数の検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はエンジン回転数の検出装置及び検出方法に関し、特に、エンジンのシリンダ内圧を測定する筒内圧センサからの出力信号を使用してエンジン回転数を検出する装置及び方法に関する。
【背景技術】
【０００２】
従来から、エンジン（主に内燃機関）の回転数は、エンジンを搭載した自動車や機械装置における運転状態を知る上で必要なパラメータである。
【０００３】
一般に、エンジンの回転数は、エンジンの出力軸の回転数を検出する回転数検出センサ（ＮＥセンサ）によって検出している。エンジンを実験室で架台に載せて試験を行う場合のエンジンベンチであれば、クランクシャフトに取り付けられたエンコーダから出力される信号を用いてエンジン回転数を検出する場合もある。
【０００４】
このＮＥセンサやエンコーダは、或るクランクアングル（°ＣＡ）毎にパルスを発生させるものであり、このパルスが入力された計測制御装置側で、その間隔（時間）からエンジン回転数を算出している。ＮＥセンサとしては、例えば、クランクシャフトに取り付けたギヤとクランクポジションセンサを組み合わせたものがある。クランクシャフトに取り付けるギヤには１０°毎のクランク回転信号が得られるように信号歯が設けられており、上死点を検出するために、この信号歯には欠歯部が設けられている。この形態のＮＥセンサでは、欠歯した箇所の信号を検出することにより、正確な上死点を検出することができる。このクランクポジションセンサがＮＥセンサとして使用される場合には、その出力信号のパルス間隔が３０°ＣＡ間隔に整形されて使用される。
【０００５】
図１（ａ）はこのＮＥセンサから得られた波形の整形後の波形を示すものである。このようなパルスが得られた場合は、パルスの１周期に要する時間がｄｔ（ｓｅｃ（秒））で、その間隔が３０°ＣＡに相当する場合、一回転に要する時間Ａは以下の式で算出される。
【０００６】
Ａ＝ｄｔ×３６０／３０（ｓｅｃ／ｒｅｖ）
＝１２ｄｔ（ｓｅｃ／ｒｅｖ）
よって、エンジンの１分当たりの回転数（ｒｐｍ）は、６０／Ａ（ｒｐｍ）となる。
【０００７】
この方法の場合、ＮＥセンサやエンコーダの取り付け、ＮＥセンサやエンコーダから信号を入力する回路、信号の立ち上がり、立ち下がりを検出する回路やロジックが必要であり、そのロジックで上記計算を行う必要がある。
【０００８】
ピストン、クランクシャフトの正確な位置が必要な場合は、このようなＮＥセンサやエンコーダを用いなければならない。ところが、詳細なクランクの位置等は必要なく、おおまかなエンジン回転数のみで良い場合はこのような信号を使用する必要はなく、過品質のデータとなる。また、エンジン回転数が必要な運転制御装置では、ＮＥセンサの信号を取り込むための回路を増設したり、入力チャンネルを増設しなければならないため、コストが上昇するといった問題がある。即ち、運転制御装置でエンジン回転数を算出したい場合に、ＮＥセンサやエンコーダを使用すると、その処理部が追加で必要となるのである。
【０００９】
更に、エンジン回転数のデータは必要であるが、何らかの事情でこのデータの取得にＮＥセンサが使用できない場合、例えば、エンジン回転数データを必要とする装置側のサンプリング能力が低くて回転数を検出できない場合、装置側に設けられた入力端子数が不足している場合、或いは、装置のＣＰＵの信号処理能力が低い場合等は、ＮＥセンサからの出力信号をエンジン回転数を検出するのに使用できないという問題がある。このような場合は、エンジン回転数の算出に別の方法を検討する必要がある。
【００１０】
一方、近年、エンジンの点火時期制御、特にクランクアングルセンサの故障時にもエンジンの運転を継続するためや、エンジンのノッキングを防止するために、エンジンの各気筒に筒内圧センサが設けられているものが提案されている。例えば、特許文献１では、筒内圧センサの出力信号から点火時期を演算し、その演算結果から点火を実行する制御が行われており、特許文献２では筒内圧センサからの出力信号で着火時期を予測する制御が行われている。また、エンジンのトルク測定又は燃焼バラツキを検出するため等に、エンジンの各気筒に筒内圧センサを設けることが考えられる。
【００１１】
【特許文献１】特開平２−９１４７１号公報
【特許文献２】特開２００１−２０７８８９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来の筒内圧センサによって検出された信号は、各気筒内の燃焼圧力を検出するためだけに使用されており、他の用途には使用されておらず、筒内圧センサからの出力信号でエンジンの回転数を検出する用途には使用されていなかった。
【００１３】
図１（ｂ）は筒内圧センサ４を備えた従来の４気筒エンジン１において、計測制御装置１０がエンジン１の回転数を検出する場合の構成を示すものである。筒内圧センサ４からの筒内圧センサ信号は計測制御装置１０内の筒内圧センサ処理部１１で処理され、ノッキングの検出に使用されている。また、エンジン１に取り付けられたＮＥセンサ２からのＮＥ信号は、エンジン１に設けられた図示しないセンサ類からの吸気温度信号、吸気量信号、水温信号や、油温信号等と共にエンジン制御ユニット（ＥＦＩＥＣＵ）３に入力されてエンジン制御に使用される。また、ＥＦＩＥＣＵ３と計測制御装置１０との間にもデータの遣り取りがある。
【００１４】
そして、ＮＥセンサ２からのＮＥ信号に基づいて、ＥＦＩＥＣＵ３内でエンジン回転数が検出され、これが計測制御装置１０のＮＥセンサ信号処理部１２に入力される。この場合にはＥＦＩＥＣＵ３内で検出されたエンジン回転数が回路を経由して計測制御装置１０に入力されるので、エンジン回転数の値に遅れが生じる場合がある。一方、ＮＥセンサからのＮＥ信号は、点線で示すように、ＥＦＩＥＣＵ３を介さずに直接計測制御装置１０に入力される場合もある。この場合は、計測制御装置１０内のＮＥセンサ信号処理部１２でエンジン回転数が算出されるが、ＮＥセンサ信号処理部１２内にそのための回路やロジックが必要となる。
【００１５】
このように、ＮＥセンサ２からのＮＥ信号を使用し、計測制御装置１０においてエンジン回転数を算出する場合には、計測制御装置１０側にＮＥセンサ信号処理部１２が必要であった。
【００１６】
そこで本発明は、筒内圧センサが設けられているエンジンにおいて、ＮＥセンサが使用できない場合や、詳細なクランクの位置等が必要ない場合でも、筒内圧センサからの信号からエンジン回転数を検出することが可能となると共に、計測制御装置における信号処理部の増加やコストの上昇を回避することができるエンジン回転数の検出装置及び検出方法を提供することを目的としている。
【課題を解決するための手段】
【００１７】
前記目的を達成する本発明のエンジン回転数の検出装置は、少なくとも１つの気筒に筒内圧センサが設けられているエンジン回転数検出装置において、筒内圧センサの出力信号から抽出したデータに基づいて、気筒の筒内圧のピーク値を検出するピーク値検出手段と、ピーク値検出手段により検出された複数のピーク値の間の関係を用いて、エンジンの回転数を算出する回転数算出手段とを備えることを特徴とするものである。
【００１８】
本発明のエンジン回転数の検出装置は、この形態を第１の形態として、以下の第２から第１５の形態が可能である。
【００１９】
（ａ）第１の形態のエンジン回転数の検出装置において、回転数算出手段が、ピーク値検出手段により検出された或る１つの気筒における複数のピーク値の間隔からエンジン回転数を算出するする第２の形態。
【００２０】
（ｂ）第１の形態のエンジン回転数の検出装置において、回転数算出手段が、ピーク値検出手段により検出された或る１つの気筒における複数の前記ピーク値の間隔からエンジン回転数を複数算出し、該複数のエンジン回転数の平均値を、制御で使用するエンジン回転数として算出するする第３の形態。
【００２１】
（ｃ）第２または３の形態のエンジン回転数の検出装置において、ピーク値検出手段は、筒内圧センサの出力信号からサンプリング間隔ｄｔ（秒）で抽出したデータに基づいて、気筒の筒内圧のピーク値を検出し、回転数算出手段は、エンジンの回転数Ｎｅの算出を、ピーク値検出手段より検出された或る１つの気筒における或る１つのピーク値とこのピーク値から１サイクル後のピーク値との間のデータ数がｎである時に、ピーク値と１サイクル後のピーク値の間の時間ｔをｄｔ×ｎで算出し、１サイクルのクランクアングルを７２０°ＣＡとして、Ｎｅ＝１２０／（ｄｔ×ｎ）（ｒｐｍ）で算出する第４の形態。
【００２２】
（ｄ）第１の形態のエンジン回転数の検出装置において、エンジンは、それぞれの気筒に筒内圧センサが設けられている多気筒エンジンであり、ピーク値検出手段が、筒内圧センサの出力信号から抽出したデータに基づいて、第１の前記気筒の筒内圧のピーク値と、この第１の前記気筒とは異なる第２の前記気筒の筒内圧のピーク値とを検出し、回転数算出手段が、ピーク値検出手段により検出された複数のピーク値との間隔から、エンジンの回転数を算出する第５の形態。
（ｅ）第５の形態のエンジン回転数の検出装置において、ピーク値検出手段は、筒内圧センサの出力信号からサンプリング間隔ｄｔ（秒）で抽出したデータに基づいて、気筒の筒内圧のピーク値を検出し、回転数算出手段は、エンジンの回転数Ｎｅの算出を、ピーク値検出手段により検出された或る１つの気筒における或る１つのピーク値とこの気筒の次に点火される次期点火気筒のピーク値との間のデータ数がｍである時に、ピーク値と次期点火気筒のピーク値の間の時間Ｔをｄｔ×ｍで算出し、ピーク値と次期点火気筒のピーク値との間のクランクアングルを７２０／（気筒数）°ＣＡとして、Ｎｅ＝（１２０／気筒数）／（ｄｔ×ｍ）（ｒｐｍ）で算出する第６の形態。
【００２３】
（ｆ）第１から第６の何れかの形態のエンジン回転数の検出装置において、筒内圧センサの出力信号波形を監視する波形監視手段を更に備え、ピーク値検出手段が、波形監視手段により出力信号波形に圧縮によるピーク値と燃焼によるピーク値とが検出された時には、圧縮によるピーク値を、エンジン回転数を算出するためのピーク値として使用する第７の形態。
【００２４】
（ｇ）第１から第６の何れかの形態のエンジン回転数の検出装置において、エンジンの点火時期を検出する点火時期検出手段を更に備え、ピーク値検出手段が、点火時期検出手段により点火時期が所定角度以上遅角されたと検出された時には、エンジン回転数を検出する気筒において点火前に筒内圧センサから出力されるピーク値を、エンジン回転数を算出するためのピーク値として使用する第８の形態。
【００２５】
（ｈ）第２または３の形態のエンジン回転数の検出装置において、ピーク値検出手段が、或る１つの気筒の或る１サイクルにおける前記筒内圧のピーク値の検出を、（Ａ）予想される最低エンジン回転数の１サイクルに含まれる筒内圧センサの出力信号から抽出したデータ数の２倍のデータ数の中からピーク値と最小値とを算出し、（Ｂ）ピーク値と最小値の差に１未満の正の係数を乗算し、得られた値に前記最小値を加えた値を判定レベルとして設定し、（Ｃ）ピーク値より後の時点において、判定レベルと同値又は判定レベルに最も近い値をピーク後判定点として算出し、（Ｄ）このピーク後判定点から後の時点において、判定レベルと同値又は判定レベルを挟んで連続する２値の内の判定レベルに近い値をピーク前判定点として算出し、そして、（Ｅ）ピーク前判定点の後の時点において、今回の値よりも次の値の方が小さくなる点をピーク値とすることによって行い、以後は（Ｂ）から（Ｅ）の動作を必要サイクル数繰り返すことによってピーク値を検出する第９の形態。
【００２６】
（ｉ）第２または３の形態のエンジン回転数の検出装置において、ピーク値検出手段が、或る１つの気筒の或る１サイクルにおける前記筒内圧のピーク値の検出を、（Ａ）予想される最低エンジン回転数の１サイクルに含まれる筒内圧センサの出力信号から抽出したデータ数の２倍のデータ数の中からピーク値と最小値とを算出し、（Ｂ）ピーク値と最小値の差に１未満の正の係数を乗算し、得られた値に最小値を加えた値を判定レベルとして設定し、（Ｃ）ピーク値より後の時点において、判定レベルと同値又は判定レベルに最も近い値を第１のピーク後判定点として算出し、（Ｄ）この第１のピーク後判定点から後の時点において、判定レベルと同値又は判定レベルを挟んで連続する２値の内の前記判定レベルに近い値をピーク前判定点として算出し、そして、（Ｆ）ピーク前判定点の後の時点において、判定レベルと同値又は判定レベルを挟んで連続する２値の内の判定レベルに近い値を第２のピーク後判定点として算出し、ピーク前判定点とこの第２のピーク後判定点の間の最大値をピーク値とすることによって行い、以後は（Ｂ）から（Ｆ）の動作を必要サイクル数繰り返すことによってピーク値を検出する第１０の形態。
【００２７】
（ｊ）第９または１０の形態のエンジン回転数の検出装置において、ピーク値検出手段は、ピーク前判定点またはピーク後判定点を算出するに際して、筒内圧センサの出力信号から抽出したデータを所定個数ずつ間引く間引き処理を行ったデータを用いる第１１の形態。
【００２８】
（ｋ）第１１の形態のエンジン回転数の検出装置において、ピーク値検出手段が、少なくとも２つのピーク値を算出した後は、この２つのピーク値からエンジン回転数を算出し、算出したエンジン回転数に応じて、間引き処理において筒内圧センサの出力信号から抽出したデータから間引くデータ数を決定する第１２の形態。
【００２９】
（ｌ）第９または１０の形態のエンジン回転数の検出装置において、ピーク値検出手段は、ピーク後判定点を算出した後、所定の区間が経過した後に、ピーク前判定点の算出を実行する第１３の形態。
【００３０】
（ｍ）第９または１０の形態のエンジン回転数の検出装置において、ピーク値検出手段は、第１の気筒のピーク後判定点を算出した後は、この第１の気筒の１つ前に点火が行われる気筒のピーク前判定点またはピーク値を検出した点から、この第１の気筒のピーク前判定点を算出する処理を実行する第１４の形態。
【００３１】
（ｎ）第１から１５の何れかの形態のエンジン回転数の検出装置において、ピーク値検出手段は、筒内圧センサの出力信号から抽出したデータは、高周波ノイズ成分を除去する処理を行った後に使用する第１５の形態。
【００３２】
前記目的を達成する本発明のエンジン回転数の検出方法は、少なくとも１つの気筒に筒内圧センサが設けられているエンジン回転数検出方法であって、筒内圧センサの出力信号から抽出したデータに基づいて、気筒の筒内圧のピーク値を検出し、
検出した複数の筒内圧のピーク値の間の関係を用いてエンジンの回転数を算出することを特徴とするものである。
【発明の効果】
【００３３】
本発明のエンジン回転数の検出装置及び検出方法によれば、クランクアングル信号を用いることなく、筒内圧センサ信号からエンジン回転数を算出することができるため、以下のような効果を奏する。
（１）ＮＥセンサ不良時にもエンジン回転数を検出することができる。また、ＥＦＩＥＣＵ以外のエンジン回転数を必要とする装置における装置コストを抑えることができる。
（２）２つ以上の区間で算出したエンジン回転数の平均値を使用することにより、算出したエンジン回転数が燃焼のばらつきの影響を受けにくい。
（３）次に点火する気筒との間隔からエンジン回転数を算出することにより、より早くエンジン回転数を算出することができる。
（４）遅角状態では１つ目の圧力ピーク値を使用することにより、ほぼ正確な上死点位置を知ることができ、クランクアングル信号を使用した場合と同等の精度でエンジン回転数を算出することができる。
（５）筒内圧のピーク値を探索する方法を工夫することにより、探索時間の短縮、エンジンの回転変動に影響されない等の効果がある。
（６）筒内圧センサの信号をローパスフィルタに通すことにより、ノイズ成分の影響を受けにくくすることができる。
【発明を実施するための最良の形態】
【００３４】
以下、添付図面を使用して本発明に係るエンジン回転数の検出方法の実施の形態を具体的な実施例に基づいて詳細に説明する。
【００３５】
図２（ａ）は本発明のエンジン回転数の検出方法を実施するためのエンジン１及び計測制御装置１０の構成を示すものである。この実施例のエンジン１は４気筒であり、各気筒に筒内圧センサ４が設けられている。筒内圧センサ４からの筒内圧センサ信号は計測制御装置１０内の筒内圧センサ処理部１１で処理され、ノッキングの検出に使用される他、本発明では後述するエンジン回転数の検出に使用される。
【００３６】
また、エンジン１に取り付けられたＮＥセンサ２からのＮＥ信号は、エンジン１に設けられた図示しないセンサ類からの吸気温度信号、吸気量信号、水温信号や、油温信号等と共にエンジン制御ユニット（ＥＦＩＥＣＵ）３に入力されてエンジン制御に使用される。本発明では、ＮＥセンサ２からのＮＥ信号は、ＥＦＩＥＣＵ３内でのみ使用され、計測制御装置１０に入力されることはない。よって、計測制御装置１０には図１（ｂ）に示したＮＥセンサ信号処理部１２は設けられていない。
【００３７】
一般に、筒内圧センサ４からの筒内圧センサ信号（図２（ａ），（ｂ）には筒内圧データと記載）は、図２（ｂ）に示すようなノイズが重畳された波形をしている。この場合、筒内圧データの大小判定に基準値Ｌを使用すると、筒内圧データが基準値Ｌと３カ所で交差してしまい、大小判定が困難になる。そこで、このような不具合を無くすために、筒内圧センサ信号はローパスフィルタを通して高周波成分を除去した後に使用する。図２（ｃ）は、ローパスフィルタを通過した後の筒内圧データ波形を示すものである。
【００３８】
このローパスフィルタは図２（ａ）に示す筒内圧センサ信号処理部１１の内部に設けられることが多く、その具体的な実施例を図３（ａ），（ｂ）に示す。図３（ａ）に示す実施例では、筒内圧センサ信号は、ノック処理用の信号を分岐した後にローパスフィルタ１３に入力される。そして、ノイズ成分が取り除かれた筒内圧センサ信号はＡ／Ｄ変換器１４でデジタル信号化され、デジタル信号化された信号がＮＥ算出回路１５に入力されてここでエンジン回転数Ｎｅが算出されて出力される。なお、図示はしないが、ＮＥ算出回路１５には、エンジン回転数を算出するために必要な演算手段であるＣＰＵや、演算プログラムの記憶やデータの一時記憶に必要なメモリが内蔵されている。
【００３９】
図３（ｂ）に示す実施例では、筒内圧センサ信号は先にＡ／Ｄ変換器１４に入力され、デジタル信号化された後に、ノック処理用の信号とデジタルローパスフィルタ１６に入力される信号に分岐される。デジタルローパスフィルタ１６はデジタル化された信号からノイズ成分を取り除く。そして、ノイズ成分が取り除かれた筒内圧センサ信号がＮＥ算出回路１５に入力され、ここでエンジン回転数Ｎｅが算出されて出力される。
【００４０】
なお、ローパスフィルタを通さなくても、データの間引き処理を行う（データを検出する角度を間引く）ようにすれば、ノイズの影響を受けることがなくなる。
【００４１】
次に、図２（ａ）に示した４気筒エンジン１における筒内圧センサ４からの信号を利用したエンジン回転数の算出方法を幾つかの実施例に基づいて説明する。
（１）第１の実施例
図４は、本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出手順の、第１の実施例を示す筒内圧センサからの出力波形を示すものである。例えば、第１の実施例の４気筒エンジンでは、第１気筒♯１、第３気筒♯３、第４気筒♯４、及び第２気筒♯２の順に点火が行われるものとする（点火がこの順序でないエンジンも存在する）。また、４サイクルエンジンでは、吸入、圧縮、膨張、及び排気の４行程があり、この間にピストンは２回上死点を通過し、筒内圧が上昇してピーク値となるのは膨張行程である。よって、第１気筒♯１に取り付けられた筒内圧センサからの出力信号に注目すると、第１気筒♯１の筒内圧がピーク値Ｐmaxとなるのは圧縮行程の上死点（ＴＤＣ）の直後であり、ピーク値Ｐmax（図４の♯１Ｐmax）と次のピーク値Ｐmax（図４の♯１−２Ｐmax）の間隔は約７２０°ＣＡであることが分かる。
【００４２】
また、第１気筒♯１の次に点火される第３気筒♯３の筒内圧がピーク値Ｐmaxとなるのも圧縮行程の上死点（ＴＤＣ）の直後であり、そのピーク値Ｐmaxは第１気筒♯１のピーク値Ｐmaxに対して約１８０°ＣＡ遅れている。同様に、順次点火される第４気筒♯４と第２気筒♯２のピーク値Ｐmaxは、第１気筒♯１のピーク値Ｐmaxに対してそれぞれ約３６０°ＣＡと、約５４０°ＣＡだけ遅れている。
【００４３】
このように、各気筒に取り付けられた筒内圧センサからの信号には、エンジンの回転数に応じて周期的にピーク値Ｐmaxが現れる。よって、１つの気筒の筒内圧センサからの信号におけるピーク値Ｐmaxの間隔を検出すれば、この時のエンジン回転数を算出することができる。この算出手順を図５を用いて説明する。
【００４４】
図５は図４に示した第１の実施例のエンジン回転数の検出手順を示すフローチャートである。この手順は、所定時間毎、例えば、エンジンの最高回転数においてクランクシャフトがクランクアングル１０°ＣＡだけ回転するのに要する時間に相当する時間毎に行われる。この検出手順の実行間隔が筒内圧センサからの出力をサンプリングするサンプリング間隔ｄｔ（ｓｅｃ）である。なお、エンジンが低速回転の時には、このサンプリング間隔ｄｔ（ｓｅｃ）が長くなるように、サンプリング間隔を可変とすることも可能である。
【００４５】
この手順ではまず、ステップ５０１において筒内圧センサからの出力信号を読み込んでデータとして記憶する。そして、ステップ５０２において、４気筒のうちの１つの気筒、例えば、第１気筒♯１のピーク値Ｐmaxの位置を、前回のピーク値Ｐmaxより後の期間で読み込んだ値の中から検索する。ステップ５０２における第１気筒♯１のピーク値Ｐmaxの位置の検索については、後に詳細に説明するので、ここではその説明を省略する。
【００４６】
次のステップ５０３では、ステップ５０２における検索の結果、ピーク値Ｐmaxが検出されたか否かを判定する。そして、ピーク値Ｐmaxが検出されていない時はこのままこのルーチンを終了する。一方、ステップ５０３でピーク値Ｐmaxが検出されたと判定した場合はステップ５０４に進み、前回のピーク値Ｐmax0の位置をメモリから読み出す。そして、次のステップ５０５において、今回のピーク値Ｐmaxと前回のピーク値Ｐmax0の位置間隔から、エンジン回転数Ｎｅを算出する。
【００４７】
サンプリング間隔がｄｔ（ｓｅｃ）、今回のピーク値Ｐmaxと前回のピーク値Ｐmax0の間のデータ数をｎ（個）とすると、今回のピーク値Ｐmaxと前回のピーク値Ｐmax0の間の時間ＴはＴ＝ｄｔ×ｎ（ｓｅｃ）で表すことができる。これは約７２０°ＣＡの時間であるので、１分当たりのエンジン回転数Ｎｅ（ｒｐｍ）は、
Ｎｅ＝６０÷（Ｔ／２）＝２×６０÷（ｄｔ×ｎ）
で算出することができる。
【００４８】
このようにしてエンジン回転数Ｎｅを算出した後は、次のステップ５０６で前回のピーク値Ｐmax0の位置をクリアし、続くステップ５０７で今回のピーク値Ｐmaxを、前回のピーク値Ｐmax0としてメモリに記憶してこのルーチンを終了する。
（２）第２の実施例
図６は、本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出手順の、第２の実施例を示すものであり、１つの気筒に取り付けられた筒内圧センサからの出力波形を示すものである。第１の実施例では、今回のピーク値Ｐmaxと前回のピーク値Ｐmax0の位置間隔からエンジン回転数Ｎｅを算出した。しかしながら、エンジンの燃焼は定常状態で運転していても様々な要因により、全く同じ燃焼状態が続くとは限らない。そのため、エンジンが同じ状態で回転していても、クランクアングルに対するピーク値Ｐmaxの位置も若干前後する。例えば、図６の中央のピーク値Ｐmax2が破線で示すようにずれることがある。
【００４９】
即ち、図２に破線で示すようにピーク値Ｐmax2がずれ、データ数ｎ１＞データ数ｎ２となり、エンジン回転数Ｎｅ１＜エンジン回転数Ｎｅ２となることがあるが、実際のエンジン回転数Ｎｅは安定している。
【００５０】
そこで、この際に、エンジン回転数の変動が必要以上に大きくなるのを防止するために、第２の実施例では、少なくとも或るピーク値Ｐmax2の前のピーク値Ｐmax1と後のピーク値Ｐmaxとの間で算出した２つのエンジン回転数の平均値をエンジン回転数としている。即ち、第２の実施例では、ピーク値Ｐmax１とピーク値Ｐmax2の間のデータ数をｎ１としてこの間のエンジン回転数Ｎｅ１を算出し、ピーク値Ｐmax2とピーク値Ｐmaxの間のデータ数をｎ２としてこの間のエンジン回転数Ｎｅ２を算出し、この時のエンジン回転数Ｎｅを、
Ｎｅ＝（Ｎｅ１＋Ｎｅ２）÷２
として算出している。この算出手順を図７を用いて説明する。
【００５１】
図７は図６に示した第２の実施例のエンジン回転数の検出手順を示すフローチャートである。この検出手順の実行間隔も筒内圧センサからの出力をサンプリングするサンプリング間隔ｄｔ（ｓｅｃ）である。なお、以後の実施例において、第１の実施例の手順と同じ手順については同じステップ番号を付して説明する。
【００５２】
この手順ではまず、第１の実施例と同様に、ステップ５０１では筒内圧センサからの出力信号を読み込んでデータとして記憶する。そして、ステップ５０２において、４気筒のうちの１つの気筒、例えば、第１気筒♯１のピーク値Ｐmaxの位置を、前回のピーク値Ｐmax2より後の期間で読み込んだ値の中から検索する。ステップ５０２における第１気筒♯１のピーク値Ｐmaxの位置の検索については、後に詳細に説明するので、ここではその説明を省略する。
【００５３】
次のステップ５０３では、ステップ５０２における検索の結果、ピーク値Ｐmaxが検出されたか否かを判定する。そして、ピーク値Ｐmaxが検出されていない時はこのままこのルーチンを終了する。一方、ステップ５０３でピーク値Ｐmaxが検出されたと判定した場合はステップ７０１に進み、前々回のピーク値Ｐmax１と前回のピーク値Ｐmax2の位置がメモリに記憶されているか否かを判定する。前々回のピーク値Ｐmax１と前回のピーク値Ｐmax2の位置がメモリに記憶されていない場合はこのルーチンを終了する。
【００５４】
前々回のピーク値Ｐmax１と前回のピーク値Ｐmax2の位置がメモリに記憶されている場合はステップ７０２に進み、ここで前々回のピーク値Ｐmax１と前回のピーク値Ｐmax2の位置をメモリから読み出す。そして、次のステップ７０３において、前々回のピーク値Ｐmax１と前回のピーク値Ｐmax2の位置間隔からエンジン回転数Ｎｅ１を算出し、前回のピーク値Ｐmax1と今回のピーク値Ｐmaxの位置間隔からエンジン回転数Ｎｅ２を算出する。エンジン回転数の算出方法は前に述べたので、ここではその説明を省略する。
【００５５】
そして、第２の実施例では、次のステップ７０４において、エンジン回転数Ｎｅ１とエンジン回転数Ｎｅ２の平均値を算出して、これを制御で使用するエンジン回転数Ｎｅとする。このようにしてエンジン回転数Ｎｅを算出した後は、次のステップ７０５で前々回のピーク値Ｐmax1の位置をクリアして、前回のピーク値Ｐmax2の位置を前々回のピーク値Ｐmax1の位置としてメモリに記憶し、続くステップ７０６で前回のピーク値Ｐmax2の位置をクリアして今回のピーク値Ｐmaxの位置を前回のピーク値Ｐmax2の位置としてメモリに記憶してこのルーチンを終了する。
（３）第３の実施例
図８は、本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出装置の、第３の実施例を示す筒内圧センサからの出力波形を示すものである。第１の実施例では、今回のピーク値Ｐmaxと前回のピーク値Ｐmax0の位置間隔からエンジン回転数を算出した。ところで、或る気筒の今回のピーク値Ｐmaxと前回のピーク値Ｐmax0の位置間隔からエンジン回転数を算出する場合は、燃焼２サイクル（７２０×２°ＣＡ）を含むデータがある場合に算出可能である。しかしながら、データが７２０×２°ＣＡ分存在しない場合や、もっと早くエンジン回転数Ｎｅを算出したい場合には、この方法は最適ではなかった。
【００５６】
第３の実施例は、データが７２０×２°ＣＡ分存在しない場合や、もっと早くエンジン回転数Ｎｅを算出したい場合に有効なエンジン回転数の検出方法であり、或る気筒の筒内圧センサからの信号のピーク値と、この気筒の次に点火される気筒の筒内圧センサからの信号のピーク値とからエンジン回転数を算出するものである。即ち、第３の実施例では、例えば、第１気筒♯１の或る時点におけるピーク値Ｐ1maxと次に点火される第３気筒♯３の、このピーク値Ｐ1maxの後に入力されるピーク値Ｐ3maxの間のデータ数をｎとしてこの間のエンジン回転数Ｎｅを算出している。この算出手順を図９を用いて説明する。
【００５７】
図９は図８に示した第２の実施例のエンジン回転数の検出手順を示すフローチャートである。この検出手順の実行間隔も筒内圧センサからの出力をサンプリングするサンプリング間隔ｄｔ（ｓｅｃ）である。
【００５８】
この手順ではまず、第１の実施例と同様に、ステップ５０１では筒内圧センサからの出力信号を読み込んでデータとして記憶する。そして、ステップ９０１において、４気筒のうちの点火順序が連続する２つの気筒、例えば、第１気筒♯１と第３気筒♯３のそれぞれのピーク値Ｐ1maxとＰ3maxの位置を、第１気筒♯１の前回のピーク値Ｐ1maxより後の期間で読み込んだ値の中から検索する。ステップ９０１における第１気筒♯１のピーク値Ｐ1maxの位置と第３気筒♯３のピーク値Ｐ3maxの検索については、後に詳細に説明するのでここではその説明を省略する。
【００５９】
次のステップ９０２では、ステップ９０１における検索の結果、第１気筒♯１のピーク値Ｐ1maxが検出されたか否かを判定する。そして、ピーク値Ｐ1maxが検出されていない時はこのままこのルーチンを終了する。一方、ステップ９０２で第１気筒♯１のピーク値Ｐ1maxが検出されたと判定した場合はステップ９０３に進み、この第１気筒♯１のピーク値Ｐ1maxをメモリに記憶する。
【００６０】
この後のステップ９０４では、ステップ９０１における検索の結果、第３気筒♯３のピーク値Ｐ3maxが検出されたか否かを判定する。そして、ピーク値Ｐ3maxが検出されていない時はこのままこのルーチンを終了する。一方、ステップ９０４で第３気筒♯３のピーク値Ｐ3maxが検出されたと判定した場合はステップ９０５に進み、第１気筒♯１のピーク値Ｐ1maxの位置をメモリから読み出す。そして、次のステップ９０６おいて、第１気筒♯１のピーク値Ｐ1maxと第３気筒♯３のピーク値Ｐ3maxの位置間隔から、エンジン回転数Ｎｅを算出する。
【００６１】
サンプリング間隔がｄｔ（ｓｅｃ）、第１気筒♯１のピーク値Ｐ1maxと第３気筒♯３のピーク値Ｐ3maxの間のデータ数をｎ（個）とすると、今回の第１気筒♯１のピーク値Ｐ1maxと第３気筒♯３のピーク値Ｐ3maxの間の時間ＴはＴ＝ｄｔ×ｎ（ｓｅｃ）で表すことができる。これは略７２０°ＣＡの四分の一の時間１８０°ＣＡであるので、一分当たりのエンジン回転数Ｎｅ（ｒｐｍ）は、
Ｎｅ＝６０÷（Ｔ／２）＝２×６０÷（ｄｔ×ｎ）
で算出することができる。
【００６２】
このようにしてエンジン回転数Ｎｅを算出した後は、次のステップ９０７で今回の第１気筒♯１のピーク値Ｐ1maxと第３気筒♯３のピーク値Ｐ3maxの位置をクリアしてこのルーチンを終了する。
（４）第４の実施例
図１０は、本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出手順の第４の実施例を示すものであり、或る気筒に取り付けられた筒内圧センサからの出力波形を示すものである。以上説明した第１から第３の実施例では、エンジンの通常運転状態における筒内圧センサからの信号に基づいてエンジン回転数を算出する場合を説明した。これらの実施例では、筒内圧センサからの検出波形は孤立波であった。ところで、エンジンの運転状態を制御するパラメータの１つに点火時期があり、この点火時期を遅らせていく（遅角していく）と、図１０に示すように、筒内圧センサの出力波形が孤立波ではなくなり、燃焼によるピークの前にもう１つのピーク（極大値）が現れる。
【００６３】
点火時期を遅らせた時の最初のピークは、シリンダ内の未燃焼ガスがピストンの上昇によって圧縮されて増大した圧力によって発生するものであり、２番目のピークが点火によるシリンダ内のガスの燃焼、膨張によって発生するものである。燃焼による波形にはバラツキがあるが、圧縮によるシリンダ内の圧力上昇はほぼ正確にピストンが上死点に達した時に発生する。そこで、第４の実施例では、点火時期が遅角された時に上死点で発生する今回の極大値Ｐkmaxと、前回の極大値Ｐkmax0の位置間隔から、エンジン回転数を算出する。第４の実施例で算出されたエンジン回転数は、正確な上死点の間隔によって算出されるので、第１から第３の実施例で算出されたエンジン回転数よりも正確である。ここで、第４の実施例のエンジン回転数の算出手順を図１１を用いて説明する。
【００６４】
図１１は図１０に示した第４の実施例のエンジン回転数の検出手順を示すフローチャートである。この検出手順の実行間隔も筒内圧センサからの出力をサンプリングするサンプリング間隔ｄｔ（ｓｅｃ）である。
【００６５】
この手順ではまず、第１の実施例と同様に、ステップ５０１では筒内圧センサからの出力信号を読み込んでデータとして記憶する。そして、ステップ１１０１において、４気筒のうちの或る１つの気筒、例えば、第１気筒♯１の燃焼波形を判定する。次のステップ１１０２では、ステップ１１０１における燃焼波形の判定の結果、燃焼波形が孤立波か否かを判定する。そして、燃焼波形が孤立波と判定した場合は点火時期が遅角されていないと判定してステップ１１０８に進み、通常のエンジン回転数の算出方法、例えば、第１の実施例で説明したステップ５０２からステップ５０７のエンジン回転数の算出方法を実行してエンジン回転数Ｎｅを検出し、このルーチンを終了する。
【００６６】
一方、ステップ１１０２における判定で、燃焼波形が孤立波でないと判定された場合はステップ１１０３に進み、前回の燃焼波形が孤立波であったか否かを判定する。前回の燃焼波形が孤立波と判定した場合は点火時期が遅角されていないと判定してステップ１１０８に進み、前述した通常のエンジン回転数の算出方法を実行してエンジン回転数を検出し、このルーチンを終了する。
【００６７】
そして、ステップ１１０３における判定で、前回も燃焼波形が孤立波でないと判定された場合はステップ１１０４に進み、今回の極大値Ｐkmaxの位置を、第１気筒♯１の前回のピーク値Ｐmax0より後の期間で読み込んだ値の中から検索する。ステップ１１０４における第１気筒♯１の極大値Ｐkmaxは、通常はその後の燃焼によるピーク値Ｐmaxよりも小さいが、Ｐkmax≧Ｐmaxとなる場合もある。そこで、この実施例では、筒内圧センサによって検出される２つの近接する極大値を検索し、先に検索された方の極大値を今回の極大値Ｐkmaxとし、後の方の極大値を燃焼によるピーク値Ｐmaxとしている。なお、極大値の位置の検索については、後に詳細に説明するピーク値Ｐmaxとほぼ同じであるのでここではその説明を省略する。
【００６８】
ステップ１１０５において前回の第１気筒♯１の極大値Ｐkmax0が読み出されると、続くステップ１１０６において、第１気筒♯１の前回の極大値Ｐkmax0と今回の極大値Ｐmaxの位置間隔からエンジン回転数を算出する。サンプリング間隔がｄｔ（ｓｅｃ）、第１気筒♯１の前回の極大値Ｐkmax0と今回の極大値Ｐkmaxの間のデータ数をｎ（個）とすると、今回の極大値Ｐkmaxと前回の極大値Ｐkmax0の間の時間ＴはＴ＝ｄｔ×ｎ（ｓｅｃ）で表すことができる。これは７２０°ＣＡであるので、一分当たりのエンジン回転数Ｎｅ（ｒｐｍ）は、前述の実施例における計算と同様に、
Ｎｅ＝６０÷（Ｔ／２）＝２×６０÷（ｄｔ×ｎ）
で算出することができる。
【００６９】
このようにしてエンジン回転数Ｎｅを算出した後は、次のステップ１１０７で前回の極大値Ｐkmax0の位置をクリアし、今回の極大値Ｐkmaxの位置を前回の極大値Ｐkmax0 として記憶してこのルーチンを終了する。
【００７０】
なお、この第４の実施例の変形例として、エンジンの点火時期を検出しておき、検出した点火時期が所定角度以上遅角された時には、エンジン回転数を検出する気筒の点火前に筒内圧センサから出力される信号の極大値を、エンジン回転数を検出するためのピーク値Ｐmaxとしてエンジン回転数を算出することができる。
（５）本発明におけるピーク値Ｐmaxの算出手順の第１の実施例
以上説明した実施例においてエンジン回転数を算出する場合は、ＮＥセンサからの上死点の検出信号やエンコーダ信号等の、クランクアングルを特定する信号がないため、筒内圧センサからの信号のみを使用してピーク値Ｐmaxを算出しなければならない。そこで、本発明におけるピーク値Ｐmaxの算出方法の第１の実施例を、図１２及び図１３を用いて説明する。
【００７１】
図１２（ａ）は、本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順を示す波形図である。また、図１３は、図１２（ａ）に示した本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順を示すフローチャートである。
【００７２】
ここでは、図１２（ａ）に示す波形図を参照しながら、図１３に示すフローチャートによりエンジン回転数の検出方法における筒内圧センサからの出力波形からピーク値を検出する手順を説明する。エンジン回転数が全く分からない状態で筒内圧センサからの出力信号からピーク値を検出するためには、最低でも２サイクル分のデータが必要である。そこで、この実施例では、このデータを抽出するための或る区間Ａを定める。この或る区間Ａは、或る１サイクル（７２０°ＣＡ）におけるピーク値Ｐmaxを検出するために予想される最低回転数の、１サイクル分の２倍のサイクルに相当する時間に対応するものである。即ち、この或る区間Ａは、エンジン回転数が最も低い場合でも、図１２（ｂ）に示すように、区間Ａの中に２サイクル分のデータが存在し、エンジン回転数が高くなれば、図１２（ｃ）に示すように区間Ａの中に多数のサイクル分のデータが存在するように設定したものである。
【００７３】
この実施例では、まず、ステップ１３０１において筒内圧センサからの出力信号を或る区間Ａ分だけ読み込む。次のステップ１３０２では、この区間Ａの中にあるデータの中からピーク値Ｐmaxと最小値Ｐminを算出する。そして、ステップ１３０３において、このピーク値Ｐmaxと最小値Ｐminを使用して、基準値となる所定レベルＬ１を設定する。所定レベルＬ１の値は、例えば、
Ｌ１＝Ｐmin＋（Ｐmax−Ｐmin）×ｍ    （但し、ｍ＜１）
のように設定する。図１２（ａ）は、このピーク値Ｐmaxと最小値Ｐmin、及び所定レベルＬ１の例を示すものである。ｍの値は、例えば、１／４や１／２である。
【００７４】
次のステップ１３０４では、ピーク値Ｐmaxよりも後で、所定レベルＬ１を上から下に
横切る点Ｐ１（１）を検索する。点Ｐ１（１）はサンプリング間隔ｄｔの大きさにより、所定レベルＬ１の上に一致しない場合があるが、この場合は、ピーク値Ｐmaxよりも後で、所定レベルＬ１に最も近い点（ピーク後判定点）をＰ１（１）とする。
【００７５】
点Ｐ１（１）を検索した後はステップ１３０５において、点Ｐ１（１）よりも後で、所定レベルＬ１を下から上に横切る点Ｐ１（２）を検索する。点Ｐ１（２）もサンプリング間隔ｄｔの大きさにより、所定レベルＬ１の上に一致しない場合があるが、この場合は、所定レベルＬ１を挟んで連続する２値の内の所定レベルＬ１に最も近い点（ピーク前判定点）をＰ１（２）とする。
【００７６】
なお、ステップ１３０４，１３０５における所定レベルＬ１を上から下に横切る点、または下から上に横切る点は、所定レベルＬ１の上の点、または所定レベルＬ１を挟んで連続する２点の内の、所定レベルＬ１に近い方の点を意味するものとする。
【００７７】
点Ｐ１（２）を検索した後はステップ１３０６に進み、抽出してステップ１３０１で読み込んだデータの中から点Ｐ１（２）よりも後のデータの傾きを順次算出して行く。データの傾きは、そのデータの前後のデータとの関係で算出することができる。
【００７８】
そして、ステップ１３０７ではこのデータの傾きが正から負に変化したか否かを判定し、データの傾きが正から負に変化していない場合はステップ１３０６に戻ってデータの傾きの算出を続行するが、データの傾きが正から負に変化した場合はステップ１３０８に進み、傾きが正から負に変化した点を第１気筒♯１のＰmaxとしてその位置を記憶する。
【００７９】
このようにして第１気筒♯１のＰmaxを算出した後はステップ１３０９に進み、必要サイクル数終了したか否かを判定し、必要サイクル数終了した場合はこのルーチンを終了するが、必要サイクル数終了していない場合はステップ１３０４に戻り、ステップ１３０４からステップ１３０８の手順を繰り返す。必要サイクル数終了した場合とは、エンジン回転数Ｎｅを算出する必要がなくなった場合を示す。
【００８０】
図１４は、図１３で説明した本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順の変形例を示すフローチャートであり、図１３で説明した手順とは、ステップ１３０５以降の手順が異なる。図１３で説明した手順では、ステップ１３０５で点Ｐ１（１）よりも後で、所定レベルＬ１を下から上に横切る点Ｐ１（２）を検索し、その後に抽出したデータの傾きが反転する点をピーク値Ｐmaxとしていた。
【００８１】
一方、図１４に示す手順では、ステップ１３０５で点Ｐ１（１）よりも後で、所定レベルＬ１を下から上に横切る点Ｐ１（２）を検索した後に、ステップ１４０１において、点Ｐ１（２）よりも後の点で、所定レベルＬ１を上から下に横切る点Ｐ１（３）を検索している。そして、続くステップ１４０２において、点Ｐ１（２）から点Ｐ１（３）の間の点の中の点で、ピーク値をとる点を第１気筒♯１のピーク値Ｐmaxとしてその位置を記憶している。
【００８２】
このようにして第１気筒♯１のＰmaxを算出した後はステップ１３０９に進み、必要サイクル数終了したか否かを判定し、必要サイクル数終了した場合はこのルーチンを終了するが、必要サイクル数終了していない場合はステップ１３０４に戻り、ステップ１３０４からステップ１３０８の手順を繰り返す。
（６）本発明におけるピーク値Ｐmaxの算出手順の第２の実施例
前述の第１の実施例では、ステップ１３０４で所定レベルＬ１を上から下に横切る点Ｐ１（１）を検索する際、或いは、ステップ１３０５で所定レベルＬ１を下から上に横切る点Ｐ１（２）を探索する際に、サンプリングデータを１点ずつ探索していた。ところが、或る区間Ａにあるサンプリングデータ数は多く、点Ｐ１（１）や点Ｐ１（２）を検索するまでに時間がかかっていた。
【００８３】
そこで、第２の実施例では、サンプリングデータを１点ずつ探索せず、サンプリングデータを１つ置き、または２〜３個置きに探索して、点Ｐ１（１）や点Ｐ１（２）の探索時間を短縮している。即ち、第２の実施例では、筒内圧センサの出力信号から抽出したデータを、所定個数ずつ間引く間引き処理を行うことにより、点Ｐ１（１）や点Ｐ１（２）を検索するまでに要する時間を短縮しているのである。間引くデータの数は特に限定されるものではない。
【００８４】
なお、このサンプリングデータの間引き処理は、ステップ１３０４で所定レベルＬ１を上から下に横切る点Ｐ１（１）を検索した後に、ステップ１３０５で所定レベルＬ１を下から上に横切る点Ｐ１（２）を探索するまでの間の、他の区間に比べて多時間的に長い区間に限定して行っても良い。
（７）本発明におけるピーク値Ｐmaxの算出手順の第２の実施例の変形例
第２の実施例において、少なくとも２つのピーク値Ｐmaxを算出した後は、この２つのピーク値Ｐmaxの値からエンジン回転数を算出することができる。そこで、第２の実施例の変形例では、算出したエンジン回転数に応じて、第２の実施例の間引き処理において筒内圧センサの出力信号から抽出したデータから間引くデータ数を決定する処理を行っている。この変形例では、エンジン回転数が低いほど、間引くデータ数を増大させている。
（８）本発明におけるピーク値Ｐmaxの算出手順の第３の実施例
第１の実施例では、ステップ１３０４で所定レベルＬ１を上から下に横切る点Ｐ１（１）を検索した後に、ステップ１３０５で所定レベルＬ１を下から上に横切る点Ｐ１（２）を探索する際に、サンプリングデータを１点ずつ探索していた。ところが、点Ｐ１（１）から点Ｐ１（２）までの間にあるサンプリングデータ数は多く、点Ｐ１（２）を検索するまでに時間がかかっていた。
【００８５】
そこで、第３の実施例では、ステップ１３０４で所定レベルＬ１を上から下に横切る点Ｐ１（１）を検索した後に、サンプリングデータをまとめて所定個数探索せず、所定個数隔たったサンプリングデータから、再び点Ｐ１（２）の探索を開始して、点Ｐ１（２）の探索時間を短縮している。即ち、第３の実施例では、点Ｐ１（１）を検索した後に、サンプリングデータを３６０°ＣＡ分飛ばし、その次のサンプリングデータから点Ｐ１（２）を検索するようにし、点Ｐ１（２）を検索するまでに要する時間を短縮しているのである。探索を行わないクランクアングルは３６０°ＣＡに限定されるものではなく、少なくとも２つのピーク値Ｐmaxを算出した後に、この２つのピーク値Ｐmaxの値からエンジン回転数を算出することができるので、算出したエンジン回転数に応じて、探索を行わないクランクアングルを決定しても良い。
（９）本発明におけるピーク値Ｐmaxの算出手順の第４の実施例
第３の実施例では、図１５（ａ）に示すように、少なくとも２つのピーク値Ｐmaxを算出してエンジン回転数が判明した後に、サンプリングデータを３６０°ＣＡ分飛ばし、その次のサンプリングデータから点Ｐ１（２）を検索するようにしている。ところが、２つのピーク値Ｐmaxからエンジン回転数を算出した後にエンジンが急に高回転になった場合は、サンプリングデータを３６０°ＣＡ分飛ばしてしまうと、飛ばし過ぎて次の点Ｐ１（２）やピーク値Ｐmaxが飛ばされる虞がある。
【００８６】
そこで、第４の実施例では、或る気筒、例えば図１５（ｂ）に示す第１気筒♯１の点Ｐ１（１）を検出した後は、この気筒の１つ前に点火が行われる第２気筒♯２の、所定レベルＬ１（♯２）を下から上に横切る点Ｐ２（０）を検出した位置から、第１気筒♯１の所定レベルＬ１（♯１）を下から上に横切る点Ｐ１（２）を検索する処理を実行する。なお、第１気筒♯１の所定レベルＬ１（♯１）を下から上に横切る点Ｐ１（２）を検索する処理の実行は、第２気筒♯２のピーク値Ｐ2maxを検出した点からでも良い。
【００８７】
一方、第２気筒♯２の、所定レベルＬ１（♯２）を下から上に横切る点Ｐ２（０）の検出には、第２気筒♯２の１つ前に点火が行われる第４気筒♯４の、所定レベルＬ１（♯４）を下から上に横切る点Ｐ４（０）の検出が必要であり、第４気筒♯４の、所定レベルＬ１（♯４）を下から上に横切る点Ｐ４（０）の検出には、第４気筒♯４の１つ前に点火が行われる第３気筒♯３の、所定レベルＬ１（♯３）を下から上に横切る点Ｐ３（０）の検出が必要である。更に、第３気筒♯３の所定レベルＬ１（♯３）を下から上に横切る点Ｐ３（０）の検出には、第３気筒♯３の１つ前に点火が行われる第１気筒♯１の、所定レベルＬ１（♯１）を下から上に横切る点Ｐ１（０）の検出が必要である。
【００８８】
ここでは、図１５（ｂ）に示す波形図を参照しながら、図１６に示すフローチャートにより、エンジン回転数の検出装置における筒内圧センサからの出力波形から第１気筒♯１ピーク値Ｐ1maxを検出する手順を説明する。なお、図１６に示すフローチャートには、第２気筒のピーク値Ｐ2maxを検出する手順、及び第４気筒のピーク値Ｐ4maxと第３気筒のピーク値Ｐ3maxを検出する手順についての説明は省略してある。
【００８９】
この実施例では、まず、ステップ１３０１において筒内圧センサからの出力信号を或る区間Ａ分だけ読み込む。次のステップ１３０２では、この区間Ａの中にあるデータの中からピーク値Ｐmaxと最小値Ｐminを算出する。そして、ステップ１３０３において、このピーク値Ｐmaxと最小値Ｐminを使用して、基準値となる所定レベルＬ１を設定する。所定レベルＬ１の値は、例えば、
Ｌ１＝Ｐmin＋（Ｐmax−Ｐmin）×ｍ    （但し、ｍ＜１）
のように設定する。
【００９０】
次のステップ１３０４では、第１気筒♯１のピーク値Ｐ1maxよりも後で、所定レベルＬ１（♯１）を上から下に横切る点Ｐ１（１）を検索する。点Ｐ１（１）はサンプリング間隔ｄｔの大きさにより、所定レベルＬ１（♯１）の上に一致しない場合があるが、この場合は、所定レベルＬ１（♯１）を挟んで連続する２点の内の、所定レベルＬ１（♯１）に最も近い点（ピーク後判定点）をＰ１（１）とする。
【００９１】
点Ｐ１（１）を検索した後はステップ１６０１において、点Ｐ１（１）よりも後で、１つ前に点火する第２気筒♯２の所定レベルＬ１（♯２）を下から上に横切る点Ｐ２（０）を検索する。点Ｐ２（０）もサンプリング間隔ｄｔの大きさにより、所定レベルＬ１（♯２）の上に一致しない場合があるが、この場合は、所定レベルＬ１（♯２）を挟んで連続する２点の内の、所定レベルＬ１（♯２）に最も近い点（ピーク前判定点）をＰ２（０）とする。
【００９２】
点Ｐ２（０）を検索した後はステップ１６０２において、点Ｐ２（０）よりも後の第１気筒♯１の所定レベルＬ１（♯１）を下から上に横切る点Ｐ１（２）を検索する。点Ｐ１（２）もサンプリング間隔ｄｔの大きさにより、所定レベルＬ１（♯１）の上に一致しない場合があるが、この場合は、所定レベルＬ１（♯１）を挟んで連続する２点の内の、所定レベルＬ１（♯１）に最も近い点（ピーク前判定点）をＰ１（２）とする。
【００９３】
点Ｐ１（２）を検索した後はステップ１３０６に進み、抽出してステップ１３０１で読み込んだデータの中から点Ｐ１（２）よりも後のデータの傾きを順次算出して行く。そして、ステップ１３０７ではこのデータの傾きが正から負に変化したか否かを判定し、データの傾きが正から負に変化していない場合はステップ１３０６に戻ってデータの傾きの算出を続行するが、データの傾きが正から負に変化した場合はステップ１３０８に進み、傾きが正から負に変化した点を第１気筒♯１のＰ1maxとしてその位置を記憶する。
【００９４】
このようにして第１気筒♯１のＰ1maxを算出した後はステップ１３０９に進み、必要サイクル数終了したか否かを判定し、必要サイクル数終了した場合はこのルーチンを終了するが、必要サイクル数終了していない場合はステップ１３０４に戻り、ステップ１３０４からステップ１３０８の手順を繰り返す。
【００９５】
なお、以上説明した実施例では、本発明のエンジン回転数の検出装置とこの装置が行う検出方法を、４気筒エンジンに適用したものを説明したが、本発明のエンジン回転数の検出装置及び方法は筒内圧センサが少なくとも１つの気筒に取り付けられているエンジンであれば、気筒数に関係なく適用することができる。
【００９６】
以上説明したように、本発明のエンジン回転数の検出装置及び検出方法によれば、筒内圧センサが備えられているエンジンにおいて、ＮＥセンサが使用できない場合やクランクの位置等が必要ない場合でも、筒内圧センサからの信号からエンジン回転数を検出することが可能となると共に、計測制御装置における信号処理部の増加やコストの上昇を回避することができる。また、本発明は、例えば、クランクの位置等の情報が必要ないノック検出や、ＮＥセンサ故障時のフェイルセーフに使用することができる。
【図面の簡単な説明】
【００９７】
【図１】（ａ）は従来のＮＥセンサから出力されるＮＥセンサ信号或いはエンコーダ出力信号の波形を示す波形図、（ｂ）は従来の筒内圧センサが設けられたエンジンにおけるＮＥセンサからの信号を処理するＮＥセンサ信号処理部が設けられた計測制御装置の構成を示すブロック回路図である。
【図２】（ａ）は本発明のエンジン回転数の検出方法を実施するためのエンジン及び計測制御装置の構成を示すブロック回路図、（ｂ）はノイズが重畳された筒内圧データ波形を示す波形図、（ｃ）はローパスフィルタを通した後の筒内圧データ波形を示す波形図である。
【図３】（ａ）はローパスフィルタが内蔵された本発明の筒内圧センサ信号処理部の構成の一実施例を示すブロック回路図、（ｂ）はデジタルローパスフィルタが内蔵された本発明の筒内圧センサ信号処理部の構成の一実施例を示すブロック回路図である。
【図４】本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出手順の第１の実施例を示す筒内圧センサからの出力波形を示す波形図である。
【図５】図４に示した第１の実施例のエンジン回転数の検出手順を示すフローチャートである。
【図６】本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出手順の第２の実施例を示す筒内圧センサからの出力波形を示す波形図である。
【図７】図６に示した第２の実施例のエンジン回転数の検出手順を示すフローチャートである。
【図８】本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出手順の第３の実施例を示す筒内圧センサからの出力波形を示す波形図である。
【図９】図８に示した第３の実施例のエンジン回転数の検出手順を示すフローチャートである。
【図１０】本発明のエンジン回転数の検出装置が実施するエンジン回転数の検出手順の第４の実施例を示す筒内圧センサからの出力波形を示す波形図である。
【図１１】図１０に示した第４の実施例のエンジン回転数の検出手順を示すフローチャートである。
【図１２】本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順の第１の実施例を示す波形図である。
【図１３】図１２に示した本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順の第１の実施例の検出手順を示すフローチャートである。
【図１４】図１２に示した本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順の第１の実施例の変形例の検出手順を示すフローチャートである。
【図１５】（ａ）は本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順の第３の実施例の問題点を示す波形図、（ｂ）は本発明のエンジン回転数の検出装置における改良された筒内圧センサからの出力波形からピーク値を検出する手順の第４の実施例を示す波形図である。
【図１６】図１４に示した本発明のエンジン回転数の検出装置における筒内圧センサからの出力波形からピーク値を検出する手順の第４の実施例の検出手順を示すフローチャートである。
【符号の説明】
【００９８】
１…４気筒エンジン
２…ＮＥセンサ
３…ＥＦＩＥＣＵ
４…筒内圧センサ
１０…計測制御装置
１１…筒内圧センサ信号処理部
１２…ＮＥセンサ信号処理部
１３…ローパスフィルタ
１５…ＮＥ算出回路
１６…デジタルローパスフィルタ
【図１】
2005163726.tif 000003
【図２】
2005163726.tif 000004
【図３】
2005163726.tif 000005
【図４】
2005163726.tif 000006
【図５】
2005163726.tif 000007
【図６】
2005163726.tif 000008
【図７】
2005163726.tif 000009
【図８】
2005163726.tif 000010
【図９】
2005163726.tif 000011
【図１０】
2005163726.tif 000012
【図１１】
2005163726.tif 000013
【図１２】
2005163726.tif 000014
【図１３】
2005163726.tif 000015
【図１４】
2005163726.tif 000016
【図１５】
2005163726.tif 000017
【図１６】
2005163726.tif 000018