JP4033138B2 - 燃焼圧信号処理装置 - Google Patents

燃焼圧信号処理装置 Download PDF

Info

Publication number
JP4033138B2
JP4033138B2 JP2004028522A JP2004028522A JP4033138B2 JP 4033138 B2 JP4033138 B2 JP 4033138B2 JP 2004028522 A JP2004028522 A JP 2004028522A JP 2004028522 A JP2004028522 A JP 2004028522A JP 4033138 B2 JP4033138 B2 JP 4033138B2
Authority
JP
Japan
Prior art keywords
time
signal
value
memory
timing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004028522A
Other languages
English (en)
Other versions
JP2005220796A (ja
Inventor
隆芳 本多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2004028522A priority Critical patent/JP4033138B2/ja
Priority to US11/049,969 priority patent/US7079936B2/en
Publication of JP2005220796A publication Critical patent/JP2005220796A/ja
Application granted granted Critical
Publication of JP4033138B2 publication Critical patent/JP4033138B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/263Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the program execution being modifiable by physical parameters
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D35/00Controlling engines, dependent on conditions exterior or interior to engines, not otherwise provided for
    • F02D35/02Controlling engines, dependent on conditions exterior or interior to engines, not otherwise provided for on interior conditions
    • F02D35/023Controlling engines, dependent on conditions exterior or interior to engines, not otherwise provided for on interior conditions by determining the cylinder pressure
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/28Interface circuits
    • F02D2041/281Interface circuits between sensors and control unit
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D2250/00Engine control related to specific problems or objectives
    • F02D2250/14Timing of measurement, e.g. synchronisation of measurements to the engine cycle

Landscapes

  • Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Description

本発明は、エンジンを制御する技術に関し、特にエンジンのシリンダ内の圧力を検出するための燃焼圧センサから出力される燃焼圧信号を処理する技術に関するものである。
従来より、エンジン制御の分野においては、エンジンのシリンダヘッド側に燃焼室(シリンダ)内の圧力を検出するための燃焼圧センサ(燃焼室圧センサとも呼ばれる)を設け、そのセンサからの燃焼圧信号を燃焼1サイクル中の所定の複数点で取り込こんで、燃焼割合(燃焼1サイクルで燃焼する燃料に対するあるクランク角度までに燃焼した燃料の割合)を算出し、その算出した燃焼割合を用いて点火時期や空燃比を制御することが知られている(例えば、特許文献1参照)。
しかし、燃焼圧センサからの燃焼圧信号は、燃焼割合の他にも、失火検出、ノック検出、吸入空気量検出、点火した気筒の判別など、色々な情報検出のために用いることができる。例えば、点火後の燃焼圧信号のクランク角度に応じた立ち上がり状態によって、正常に点火したか失火しかたを判定することができ、また、燃焼圧信号に対してデジタルフィルタ処理を行うことで、ノッキングの有無を判定することができる。
その際、燃焼圧信号を、上記燃焼割合を算出するのに必要なまばらなタイミングだけでなく、波形をトレースするようなもっと細かいタイミングでA/D変換して信号値を得ることが望ましい。
そこで、例えば、1°CA毎(エンジンのクランク軸が1°回転する毎)程度の細かいタイミングで燃焼圧信号の信号値を取り込むようにすることが考えられる。尚、「CA」とは、クランクアングルを意味している。
一方、エンジン制御装置では、エンジンのクランク軸の回転に同期して燃料噴射弁や点火装置等を作動させるが、例えば特許文献2に記載されているように、クランクセンサより出力されてクランク軸が所定角度回転する毎(一般には10°CA毎)にパルスエッジが発生する回転信号(クランク信号とも呼ばれる)から、その回転信号を逓倍した逓倍クロック(詳しくは、周期が回転信号の周期の逓倍数分の1であるクロック)を生成すると共に、その逓倍クロックの時間間隔で、カウント値がクランク角度を表す角度カウンタをカウントアップさせ、その角度カウンタのカウント値に基づきエンジン回転に同期した制御を行うようにしたものがある。このようにすることで、元の回転信号よりも細かい「1/逓倍数」の分解能でクランク角度を把握できるようにしているのである。
そして、上記逓倍クロックを生成するための手段は、回転信号に上記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔(つまり、所定角度間隔)毎に、その1パルス間隔を計測するエッジ時間計測カウンタと、回転信号に特定エッジが発生すると上記エッジ時間計測カウンタによる今回の計測値を逓倍数Nで除算した値がセットされるエッジ時間記憶レジスタと、そのエッジ時間記憶レジスタに記憶された時間毎に、逓倍クロックとしてのパルスを発生させる逓倍カウンタとから構成される。つまり、今回計測した回転信号の1パルス間隔時間に基づいて、回転信号に次の特定エッジが発生するまでの逓倍クロックの周期を決定している。
そして更に、この種のエンジン制御装置では、回転信号の特定エッジ毎に、次の特定エッジのタイミングで角度カウンタがとるべき値の1つ前の値をガード値として設定し、エンジンが急に加減速した場合でも、回転信号の次の特定エッジで角度カウンタの値が正しい値となるようにしている。
例えば、回転信号を32逓倍した逓倍クロックで角度カウンタをカウントアップする場合(逓倍数が32である場合)を例に挙げると、図29において、回転信号NEの今回のパルス間隔「Tn」では、前回のパルス間隔「Tn-1」を32分の1にした時間毎に角度カウンタが1ずつカウントアップされることとなる。
よって、エンジン回転が一定ならば、回転信号のどのパルス間でも、角度カウンタは一定の時間間隔でカウントアップされることとなる。例えば、回転信号の特定エッジ(この例では立ち上がりエッジ)が10°CA毎に発生する場合、32逓倍しているため、角度カウンタは0.3125°CAを分解能(LSB)としてカウントアップされることになる。
ここで、エンジンが急に加速して回転信号のパルス間隔が短くなった場合には、角度カウンタが32カウントする前(カウント値が32だけ増加する前)に、回転信号の次の特定エッジが発生してしまうため、何も処置をしないとカウント値が小さめにずれてしまう。また、エンジンが急に減速して回転信号のパルス間隔が長くなった場合においても、何ら処置をしないと、カウント値が大きめにずれてしまう。
そこで、従来のエンジン制御装置では、図30に示す如く、回転信号NEの特定エッジ毎に、角度カウンタのカウント値に対するガード値を設定し、「Tn」の期間のような急加速時には、次の特定エッジタイミング(「Tn+1」の開始タイミング)で、角度カウンタを逓倍クロックよりも周期が非常に短い内部クロックである最速クロックで強制的にカウントアップさせることにより、その角度カウンタの値を正しいガード値へと瞬時に変化させるようにしている。また、「Tn-1」の期間のような急減速時には、角度カウンタがガード値に到達すると、回転信号に次の特定エッジが発生するまでカウントアップを止めるようにしている。
以上のことから、燃焼圧センサからの燃焼圧信号を例えば1°CA毎といった細かいタイミングで取り込んでエンジンの制御に用いようとした場合、その燃焼圧信号の取り込みタイミングは、上記のように回転信号を逓倍した逓倍クロックでカウントアップされる角度カウンタのカウント値に基づいて発生させることが考えられる。例えば、角度カウンタの値が1°CAに相当する値だけ進む毎に、燃焼圧信号をA/D変換してそのA/D変換値を取り込む、といった処理を行えば良い。
特開平9−273437号公報 特開2001−200747号公報
ところが、燃焼圧信号の取り込みタイミングを逓倍クロックでカウントアップされる角度カウンタのカウント値から発生させる手法では、次のような問題が発生する。
尚、ここでは、図31に示すように、回転信号NEには10°CA毎に立ち上がりエッジが発生すると共に、その回転信号NEを逓倍した逓倍クロックによってカウントアップされる角度カウンタのカウント値が1°CAに相当する値だけ進む毎に、燃焼圧信号をA/D変換してそのA/D変換値を取り込む場合を例に挙げる。また、図31における「角度カウンタ上位」とは、角度カウンタにおいて10°CAの位のビットよりも上位のビット(即ち、LSBが10°CAであるカウンタ部分)であり、図31における「角度カウンタ下位」とは、角度カウンタにおいて角度カウンタ上位よりも下位のビットであって、LSBが「10°CA/逓倍数」であるカウンタ部分である。そして、図31における「波形A」は、角度カウンタの値が1°CAに相当する値だけ進む毎に、燃焼圧信号をA/D変換してそのA/D変換値を取り込んだ場合の、その各A/D変換値を示している。一方、この図31では、見やすさを優先して、逓倍数が10(つまり、角度カウンタのLSBが1°CA)であるものとして図示しているが、逓倍数は、実際には256や1024等、もっと大きい値に設定される。
まず、図31にて角度カウンタ上位の値が200になっている期間(つまり、200°CA〜210°CAの10°CA分の期間)に示すように、エンジンが急に加速して回転信号NEのパルス間隔が前回よりも短くなった場合には、本来ならばその10°CA分の期間内に1°CA毎のタイミングが10回発生しなければならないのに、その発生回数が10回よりも少なくなってしまう。このため、燃焼圧信号の取り込み回数が少なくなってしまい、図31における「波形B」に示す如く、取り込んだ燃焼圧信号のA/D変換値を一定のクランク角度毎(この例では1°CA毎)にプロットした場合に、データが無い領域が生じてしまう。
また、図31にて角度カウンタ上位の値が210になっている期間(つまり、210°CA〜220°CAの10°CA分の期間)に示すように、エンジンが急に減速して回転信号NEのパルス間隔が前回よりも長くなった場合には、回転信号NEが立ち上がってから1°CA毎のタイミングが9回発生した後、次に回転信号NEが立ち上がるまで、1°CA毎のタイミングが発生しなくなる。このため、燃焼圧信号の取り込みが休止される期間が発生してしまい、図31における「波形B」に示す如く、取り込んだ燃焼圧信号のA/D変換値を一定のクランク角度毎(この例では1°CA毎)にプロットした場合に、データ値が急に飛んでしまうところが生じてしまう。
このように、回転信号を逓倍した逓倍クロックでカウントアップされる角度カウンタの値に基づいて燃焼圧信号の取り込みタイミングを発生させる手法では、エンジンの加減速により、燃焼圧信号値のデータ抜けやデータ飛びが生じてしまうのである。
そして、そもそも、上記の手法では、燃焼圧信号の値がどのクランク角度でどういう値かを細かく正確に把握することのできるデータを得ることができなかった。
つまり、上記の手法でも、角度カウンタの値が常に正確にクランク角度を表すのであれば、取り込まれる燃焼圧信号の各A/D変換値は、クランク軸が一定の微小角度(図31の例では1°)回転したとき毎の本当のデータとなる(換言すれば、各A/D変換値がどのクランク角度でのデータかが正確なものとなる)。
しかし、実際には、角度カウンタをカウントアップさせる逓倍クロックの周期は回転信号の前回の1パルス間隔から予測算出されるものであるため、エンジンの回転速度が急に変化した場合には、角度カウンタの値に誤差が生じることとなり、その結果、取り込まれる燃焼圧信号の各A/D変換値は、クランク軸が一定の微小角度回転したとき毎の本当のデータとはならない。これは、図31の「波形A」からも分かる。このため、そのようなデータからでは、燃焼圧信号の値がどのクランク角度でどういう値かを細かく正確に把握することができなくなってしまうのである。
また、上記の手法では、取得される各A/D変換値が一定時間毎のデータでは無いため、ノック検出(ノッキングの有無の判定)用のデジタルフィルタ処理を実施することができないという欠点もある。
本発明は、以上のような問題に鑑みなされたものであり、燃焼圧信号の値がどのクランク角度でどういう値かを細かく正確に把握することのできる情報を作成可能な燃焼圧信号処理装置の提供を目的としている。
上記目的を達成するためになされた請求項1の燃焼圧信号処理装置では、カウンタ処理手段が、エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジである特定エッジが発生してから該特定エッジが次に発生するまでの1パルス間隔毎に、該1パルス間隔を計測して、その計測値に基づきクランク軸が前記所定角度よりも小さい一定の微小角度回転する時間間隔を算出し、カウント値がクランク角度を表す角度カウンタを、その算出した時間間隔でカウントアップさせる。
また、タイミング出力手段が、回転信号の1パルス間隔時間の最小値よりも短い一定時間毎にタイミング信号を出力する。
そして、第1記憶処理手段が、少なくともクランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、回転信号に特定エッジが発生する毎に、該回転信号の今回の1パルス間隔時間が把握可能な時間情報を、その時間情報がどのクランク角度からどのクランク角度までの1パルス間隔時間に該当するものであるかを識別可能となるように第1メモリに順次記憶していく。
また、第2記憶処理手段が、前記処理対象区間において、タイミング出力手段からタイミング信号が出力される毎に、エンジンのシリンダ内圧力を検出する燃焼圧センサからの燃焼圧信号の信号値を取り込むと共に、その時点での角度カウンタのカウント値と該取り込んだ信号値とを対応させて第2メモリに順次記憶していく。
そして、演算処理手段が、第2メモリに燃焼圧信号の各信号値と対応して記憶された各カウント値であって、その各信号値が取り込まれたときのクランク角度をそれぞれ表す角度カウンタの各カウント値を、第1メモリ内の各時間情報を用いて補正する演算処理を行う。
つまり、カウンタ処理手段が角度カウンタをカウントアップさせる周期は、回転信号の前回の1パルス間隔から算出されるものであるため、エンジンの回転速度が急に変化した場合には、角度カウンタのカウント値に誤差が生じてしまう。一方、第1記憶処理手段によって第1メモリに記憶された各時間情報を見れば、処理対象区間において回転信号に特定エッジが発生した時の所定角度毎の各クランク角度タイミングについて、どのクランク角度からどのクランク角度までの時間がどれだけであったかを知ることができる。そこで、本装置では、第2記憶処理手段によって第2メモリに記憶された角度カウンタの各カウント値を、処理対象区間が終了した後に、第1メモリに記憶しておいた各時間情報を用いて正しい値に補正するようにしている。
このような請求項1の燃焼圧信号処理装置によれば、下記(1)〜(5)の効果が得られる。
(1)演算処理手段によって補正された後の各カウント値は、第2メモリ内の各信号値が取り込まれたときのクランク角度を、回転速度の変動に影響されることなく正確に表すものとなる。このため、第2メモリ内の各信号値と補正後の各カウント値とからなる情報は、燃焼圧信号の値がどのクランク角度でどういう値かを細かく正確に把握することのできる情報となる。
(2)第2メモリ内の各信号値を、補正後の各カウント値に基づいて、例えば横軸をクランク角度としてプロットした場合、図31の「波形B」に示したように、データが横軸の広い範囲で無くなってしまったり、データ値が急に変化するデータ飛びが生じたりすることがない。このため、そのデータをエンジン制御に用いた場合に、制御状態の急変を招く心配がない。
(3)演算処理手段による演算処理は、処理対象区間が終了してから1回行うだけで良く、例えばエンジンの気筒の1行程当たりに1回行えば良いため、CPUなどの処理負荷を軽減することができる。
(4)第2メモリに記憶される燃焼圧信号の各信号値は、一定時間毎に取り込んだデータであるため、ノック検出用のデジタルフィルタ処理にも使用することができる。
つまり、本燃焼圧信号処理装置をエンジン制御装置に適用した場合、第2メモリに記憶された燃焼圧信号の各信号値は、クランク角度に依存する失火検出などの処理(即ち、どのクランク角度でのデータであるかが分かることが必要な処理)と、時間に依存するノック検出用デジタルフィルタなどの処理(即ち、一定時間毎のデータであることが必要な処理)との、両方に使用することができる。
(5)本燃焼圧信号処理装置をエンジン制御装置に設けた場合、次のように構成することで、制御精度を向上させることができる。
まず、複数通りのクランク角度毎についてエンジン制御に使用する制御係数を記憶したデータマップを用意しておく。
そして、そのデータマップから、演算処理手段によって補正された後の各カウント値が表すクランク角度に対応する制御係数を算出し、その各制御係数と第2メモリに記憶された燃焼圧信号の各信号値とを用いて、エンジン制御を行う。
つまり、前述したように、演算処理手段によって補正された後の各カウント値は、第2メモリ内の各信号値が取り込まれたときのクランク角度を正確に表すものとなるため、上記の手順で算出される制御係数は、第2メモリに記憶された各信号値に正確に対応したものとなり、そのような制御係数と各信号値とを用いてエンジン制御を行うことで、制御精度が向上するのである。
例えば、制御係数が燃焼圧信号の信号値に対する補正値であるならば、第2メモリに記憶された各信号値に対する正しい補正値をデータマップから算出して、その各信号値を精度良く補正することができるようになる。
また例えば、制御係数が燃焼圧信号の信号値と大小比較される目標値であるならば、第2メモリに記憶された各信号値に対する正しい目標値をデータマップから算出して、その各信号値と目標値との大小関係を正しく判定できるようになる。
次に、請求項2の燃焼圧信号処理装置においても、タイミング出力手段が、回転信号に所定角度毎のパルスエッジである特定エッジが発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い一定時間毎に、タイミング信号を出力する。
そして、この燃焼圧信号処理装置では、第1記憶処理手段が、少なくともクランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、回転信号に特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に第1メモリに順次記憶していく。
また、第2記憶処理手段が、前記処理対象区間において、タイミング出力手段からタイミング信号が出力される毎に、燃焼圧センサからの燃焼圧信号の信号値を取り込むと共に、その取り込み時の時刻と該取り込んだ信号値とを対応させて第2メモリに順次記憶していく。
そして、演算処理手段が、第2メモリに記憶された各時刻と、第1メモリに記憶された特定エッジ発生時の各時刻とから、第2メモリ内の各信号値が取り込まれたときのクランク角度を算出する。
つまり、第1記憶処理手段によって第1メモリに記憶された各時刻を見れば、処理対象区間において回転信号に特定エッジが発生した時の時刻とクランク角度とを知ることができる。そこで、本装置では、第2メモリに記憶された各時刻に該当するクランク角度を、第1メモリの記憶内容から把握される特定エッジ発生時の時刻及びクランク角度から算出するようにしている。換言すれば、第2メモリに記憶された各時刻を、第1メモリの記憶内容を用いてクランク角度に換算している。
このような請求項2の燃焼圧信号処理装置によっても、演算処理手段によって算出される各カウント値は、第2メモリ内の各信号値が取り込まれたときのクランク角度を、回転速度の変動に影響されることなく正確に表すものとなる。このため、第2メモリ内の各信号値と算出された各カウント値とからなる情報は、燃焼圧信号の値がどのクランク角度でどういう値かを細かく正確に把握することのできる情報となる。つまり、上記(1)と同じ効果が得られる。
そして更に、この請求項2の燃焼圧信号処理装置によっても、請求項1の装置について述べた(2)〜(5)と同じ効果を得ることができる。
尚、上記(2)については、第2メモリ内の各信号値を、演算処理手段によって算出された各カウント値に基づいてプロットしたイメージとなる。また、上記(5)については、前述のデータマップから、演算処理手段によって算出された各カウント値が表すクランク角度に対応する制御係数を算出して、その各制御係数と第2メモリに記憶された燃焼圧信号の各信号値とを用いて、エンジン制御を行うようにすれば良い。
しかも、この請求項2の燃焼圧信号処理装置によれば、カウンタ処理手段が無くても、請求項1の装置と同様の効果を得ることができ有利である。
次に、請求項3の燃焼圧信号処理装置においても、タイミング出力手段が、回転信号に所定角度毎の特定エッジが発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い一定時間毎に、タイミング信号を出力し、第1記憶処理手段が、少なくともクランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、回転信号に特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に第1メモリに順次記憶していく。
そして、請求項3の燃焼圧信号処理装置では、第2記憶処理手段が、前記処理対象区間において、タイミング出力手段からタイミング信号が出力される毎に、燃焼圧センサからの燃焼圧信号の信号値を取り込み、その取り込んだ信号値を第2メモリに順次記憶していく。
また、開始時刻記憶処理手段が、処理対象区間において、タイミング出力手段からタイミング信号が最初に出力された時刻を開始時刻記憶メモリに記憶する。
そして、時刻算出手段が、開始時刻記憶メモリに記憶された時刻と、タイミング出力手段がタイミング信号を出力する時間間隔とから、処理対象区間においてタイミング出力手段によりタイミング信号が出力された各時刻を算出し、演算処理手段が、その時刻算出手段により算出された各時刻と、第1メモリに記憶された特定エッジ発生時の各時刻とから、第2メモリ内の各信号値が取り込まれたときのクランク角度を算出する。
つまり、請求項3の燃焼圧信号処理装置は、請求項2の装置と比較すると、処理対象区間において燃焼圧信号の信号値を取り込んだ各時刻を、第2メモリに信号値とセットで記憶させていくのではなく、処理対象区間にてタイミング出力手段からタイミング信号が最初に出力された時刻と、タイミング出力手段がタイミング信号を出力する時間間隔とから、算出するようにしている。
このため、請求項3の燃焼圧信号処理装置によれば、処理対象区間中に第2メモリへ各時刻を記憶していかなくても、請求項2の装置と同じ効果を得ることができる。
一方、請求項4の燃焼圧信号処理装置では、請求項1の燃焼圧信号処理装置と比較して、演算処理手段のみ異なっており、その演算処理手段は、第2メモリに記憶された各カウント値及び信号値と、第1メモリ内の各時間情報とから、クランク軸が前記所定角度よりも小さい一定角度回転したとき毎の燃焼圧信号の信号値を算出する。
また、請求項5の燃焼圧信号処理装置では、請求項2の燃焼圧信号処理装置と比較して、演算処理手段のみ異なっており、その演算処理手段は、第2メモリに記憶された各時刻及び信号値と、第1メモリに記憶された特定エッジ発生時の各時刻とから、クランク軸が前記所定角度よりも小さい一定角度回転したとき毎の燃焼圧信号の信号値を算出する。
同様に、請求項6の燃焼圧信号処理装置では、請求項3の燃焼圧信号処理装置と比較して、演算処理手段のみ異なっており、その演算処理手段は、時刻算出手段により算出された各時刻及び第2メモリに記憶された各信号値と、第1メモリに記憶された特定エッジ発生時の各時刻とから、クランク軸が前記所定角度よりも小さい一定角度回転したとき毎の燃焼圧信号の信号値を算出する。
このような請求項4〜6の燃焼圧信号処理装置によれば、回転信号に特定エッジが発生する角度間隔よりも小さい一定クランク角度毎の燃焼圧信号の各信号値が正確に得られる。よって、そのような一定クランク角度毎の燃焼圧信号値が必要なエンジン制御の精度を向上させることができる。また、請求項4の装置における演算処理手段を請求項1の装置に、請求項5の装置における演算処理手段を請求項2の装置に、請求項6の装置における演算処理手段を請求項3の装置に、それぞれ追加するようにしても良い。
次に、請求項7の燃焼圧信号処理装置では、請求項2又は5の燃焼圧信号処理装置において、第2記憶処理手段が複数の燃焼圧信号の信号値を取り込むための手段として、A/D変換手段を備えており、そのA/D変換手段は、タイミング出力手段からタイミング信号が出力されると、複数の燃焼圧信号を順次切り替えてA/D変換する。
そして、第2記憶処理手段は、処理対象区間において、タイミング出力手段からタイミング信号が出力されると、A/D変換手段による各燃焼圧信号のA/D変換値を該各燃焼圧信号の信号値として取り込むと共に、タイミング信号出力時の時刻を信号値取り込み時の時刻として、その時刻と今回取り込んだ各燃焼圧信号の信号値とを対応させて第2メモリに記憶するようになっている。
そして更に、演算処理手段は、複数の各燃焼圧信号について前記演算処理を行うが、特に、A/D変換手段がA/D変換する順番がn番目(nは2以上の整数)の燃焼圧信号については、A/D変換手段が1つの燃焼圧信号をA/D変換するのに要する時間をTadとすると、タイミング信号が出力された時毎に第2メモリに記憶された各時刻に代えて、その各時刻に「Tad×(n−1)」を加えた各時刻を用いて前記演算処理を行う。
このような請求項7の燃焼圧信号処理装置によれば、1つのA/D変換手段を使用して複数の燃焼圧信号を取り込む構成でありながら、その各燃焼圧信号についての演算処理結果を正確なものにすることができる。
つまり、請求項2又は5の燃焼圧信号処理装置における演算処理は、第2メモリに記憶された各時刻が燃焼圧信号の取り込み時刻であるとして行われるものであるが、複数の燃焼圧信号を1つのA/D変換手段により順次切り替えてA/D変換する場合、A/D変換される順番が最初ではないn(n≧2)番目の燃焼圧信号については、それのA/D変換タイミング(即ち、実際の信号値の取り込みタイミング)が、第2メモリに記憶される時刻よりも「Tad×(n−1)」だけ遅れたものとなってしまう。
そこで、請求項7の装置では、そのn番目の燃焼圧信号については、第2メモリに記憶された各時刻に代えて、その各時刻に「Tad×(n−1)」を加えた各時刻を用いて演算処理を行うことにより、より正確な演算処理結果(請求項2ではクランク角度であり、請求項5では信号値)が得られるようにしているのである。
同様に、請求項8の燃焼圧信号処理装置では、請求項3又は6の燃焼圧信号処理装置において、第2記憶処理手段が複数の燃焼圧信号の信号値を取り込むための手段として、A/D変換手段を備えており、そのA/D変換手段は、タイミング出力手段からタイミング信号が出力されると、複数の燃焼圧信号を順次切り替えてA/D変換する。
そして、第2記憶処理手段は、処理対象区間において、タイミング出力手段からタイミング信号が出力されると、A/D変換手段による各燃焼圧信号のA/D変換値を該各燃焼圧信号の信号値として取り込んで、その各燃焼圧信号の信号値を同じタイミングでのデータとして第2メモリに記憶するようになっている。
そして更に、演算処理手段は、複数の各燃焼圧信号について前記演算処理を行うが、特に、A/D変換手段がA/D変換する順番がn番目(nは2以上の整数)の燃焼圧信号については、A/D変換手段が1つの燃焼圧信号をA/D変換するのに要する時間をTadとすると、時刻算出手段により算出された各時刻に代えて、その各時刻に「Tad×(n−1)」を加えた各時刻を用いて前記演算処理を行う。
このような請求項8の燃焼圧信号処理装置によれば、請求項7の装置について述べた効果と同じ効果が得られる。
次に、請求項9の燃焼圧信号処理装置では、請求項1〜8の燃焼圧信号処理装置において、タイミング出力手段がタイミング信号を出力する時間間隔が、クランク軸の回転速度(エンジンの回転速度)に反比例して設定されると共に、処理対象区間中は変更されないようになっている。
この構成によれば、燃焼圧信号値の取り込み間隔がエンジンの低回転時には長く、高回転時には短く設定されることとなる。つまり、エンジン回転数に拘わらず、一定のクランク角度相当の時間毎に燃焼圧信号値を取り込むことができ、エンジンの運転状態を検出し易いデータが常に得られることとなる。
以下に、本発明の燃焼圧信号処理装置が適用された実施形態のエンジン制御装置について説明する。尚、ここでは、4気筒エンジンを制御するものとする。
まず図1に示すように、第1本実施形態のエンジン制御装置11には、周知のCPU13と、一定周波数の内部クロックによって常時カウントアップされるフリーランタイマ15と、CPU13によって設定される一定時間毎にタイミング信号を出力するタイミング発生器17と、第1メモリM1、第2メモリM2、及び第3メモリM3と、各気筒#1〜#4のシリンダ内圧力を検出する燃焼圧センサP1〜P4からの燃焼圧信号をA/D変換するA/D変換器19と、そのA/D変換器19に各気筒#1〜#4の燃焼圧信号を択一的に切り替えて入力させるマルチプレクサ(MPX)21と、クランクセンサ23からの回転信号NEが入力されるカウンタ処理部25及びエッジ時刻キャプチャ部27とが備えられている。
また、このエンジン制御装置11では、水温信号、吸気(吸入空気)温度情報信号、吸気量情報信号、スロットル開度信号等といった燃焼圧信号以外の各種アナログセンサ信号が、マルチプレクサ31を介してA/D変換器33に択一的に入力され、スタータスイッチ信号(STA)やシフト位置を示す変速スイッチ信号等といった各種スイッチ信号が、マルチプレクサ35を介してスイッチ判定部37に択一的に入力される。そして、A/D変換器33によってA/D変換された各種アナログセンサ信号のA/D変換値と、スイッチ判定部37によって判定された各種スイッチ信号の論理レベル(ハイかローか)が、CPU13に取り込まれるようになっている。更に、このエンジン制御装置11では、出力回路39が、CPU13からの指令に基づいて、点火装置、燃料噴射弁、リレー、及びランプ等といった各種アクチュエータを駆動するようになっている。また、このエンジン制御装置11には、CPU13が他の装置とデータ通信するための通信回路41も備えられている。
ここで、クランクセンサ23から出力される回転信号NEは、エンジンのクランク軸が所定角度(本実施形態では10°)回転する毎に有効エッジとしての立ち上がりエッジ(特定エッジに相当)が発生すると共に、クランク軸の回転位置が基準位置に来たときには、立ち上がりエッジが2回分連続して抜けることで立ち上がりエッジ間隔が30°CA分の長さになる欠歯部が発生する信号である(図7及び図15の1段目参照)。
そして、エッジ時刻キャプチャ部27には、回転信号NEに立ち上がりエッジが発生すると、その時のフリーランタイマ15の値(以下、フリーランタイマ値ともいう)が更新記憶される。尚、本実施形態では、フリーランタイマ15のクロックが例えば1MHzであり、フリーランタイマ値は、時刻を1μs単位で表すものとなっている。
また、カウンタ処理部25は、下記(a)〜(c)の機能を有している。
(a)回転信号NEの立ち上がりエッジ間隔(以下、パルス間隔ともいう)を計測すると共に、今回計測中のパルス間隔が、前回計測したパルス間隔を所定の欠歯判定比倍した長さ以上になると、その今回計測中のパルス間隔が欠歯部であると判定する。これは、一般に“欠歯判定”と呼ばれる機能である。
(b)回転信号NEの各パルス間隔を計測すると共に、回転信号NEに立ち上がりエッジが発生する毎に、今回計測したパルス間隔の計測値を逓倍数Nで割った値(即ち、クランク軸が「10°/N」だけ回転すると見なされる時間間隔)を求め、その値を1周期とした逓倍クロックを生成する。但し、上記(a)の欠歯判定で欠歯部であると判定したパルス間隔の直後では、その欠歯部のパルス間隔の計測値を更に3で割った値(即ち、計測値を「N×3」で割った値)を、逓倍クロックの1周期とする。欠歯部のパルス間隔は通常の3倍であるためである。
(c)そして、上記(b)の手順で生成される逓倍クロックの時間間隔で、角度カウンタ26をカウントアップさせる処理を行う。
詳しく説明すると、まず、カウンタ処理部25に備えられた角度カウンタ26は、そのカウント値がエンジンの1行程におけるクランク角度を表すものであり、0から720の1つ前の値になると次に0へ戻る、といった具合にラップラウンドを繰り返すようにカウントアップされる。尚、本実施形態では、第1気筒#1の圧縮行程上死点(以下、TDCという)のタイミングをエンジン1行程における0°CAとしており(図7の1段目参照)、その0°CAのタイミングで角度カウンタ26の値が0となるようになっている。
また、本実施形態において、この角度カウンタ26は、図15の2段目及び3段目に示すように、LSBが10°CAであるカウンタ部分の角度カウンタ上位と、その角度カウンタ上位よりも下位のビットであって、LSBが「10°CA/N」であるカウンタ部分の角度カウンタ下位とからなっている。尚、本実施形態では、逓倍数Nが2のn乗であり、角度カウンタ下位のビット数はnであるが、図15では、前述した図31と同様に、見やすさを優先して、逓倍数Nが10(つまり、角度カウンタ26のLSBが1°CA)であるものとして図示している。
そして、角度カウンタ上位は、回転信号NEの立ち上がりエッジでカウントアップされ、角度カウンタ下位は、上記逓倍クロックでカウントアップされると共に、回転信号NEの立ち上がりエッジで0にクリアされる。
また、回転信号NEが欠歯部とならない通常の10°CA毎の期間では、角度カウンタ下位は、ラップラウンド(オーバーフロー)が禁止され、その値は、最大値(2のn乗−1)でガードされる(止まる)ようになっている。
これに対して、回転信号NEが欠歯部となる30°CA分の期間では、角度カウンタ下位のラップラウンドが2回だけ許可されると共に、角度カウンタ上位は、角度カウンタ下位がラップラウンドして該角度カウンタ下位の値が0に戻る毎にカウントアップされる。よって、LSBが10°CAである角度カウンタ上位は、回転信号NEの欠歯部においても最大で3回カウントアップされることとなる。
以上のようなカウンタ処理部25の構成及び動作により、角度カウンタ26は、前述した図30及び図31に示したのと同様にカウントアップされることとなる。
つまり、図15にて角度カウンタ上位の値が200になっている期間(つまり、200°CA〜210°CAの10°CA分の期間)T200に示すように、急加速が起こった場合には、回転信号NEの次の立ち上がりエッジタイミングで、角度カウンタ26の値は、強制的にそのタイミングで取るべき値(ここでは210)に設定されることとなり、また、図15にて角度カウンタ上位の値が210になっている期間(つまり、210°CA〜220°CAの10°CA分の期間)T210に示すように、急減速が起こった場合には、角度カウンタ26の値が、回転信号NEの次の立ち上がりエッジタイミングでとるべき値の1つ前の値(ここでは220の1つ前の219)でガードされる(即ち、角度カウンタ下位の値が最大値で止まる)こととなり、その後、回転信号NEに立ち上がりエッジが生じると、角度カウンタ26の値は、そのタイミングで取るべき値に設定されることとなる。
尚、こうした角度カウンタのカウント手法については、本願出願人が先に出願した特願2003−369365号に詳しく記載されている。
一方、第1メモリM1には、図2(A)における左側の「NEタイミング」の欄に示すように、エンジンの1行程(720°CAの期間)において回転信号NEに立ち上がりエッジが発生する各クランク角度(NEタイミングクランク角度)にそれぞれ対応して、アドレス設けられている。そして、この第1メモリM1には、回転信号NEに立ち上がりエッジが発生する毎に、図2(A)に示す如く、その時のフリーランタイマ値が、その時の時刻として、その時のクランク角度(即ち、その時の角度カウンタ上位の値)に対応したアドレスへとエッジ時刻キャプチャ部27から転送されて記憶される。
よって、第1メモリM1にて隣接する2つのアドレスに記憶された両フリーランタイマ値の差を求めれば、その2つのアドレスに対応するクランク角度間での回転信号NEのパルス間隔時間が分かる。このため、回転信号NEが立ち上がる毎に第1メモリM1の各アドレスに記憶されるフリーランタイマ値は、回転信号NEに立ち上がりエッジが発生する各クランク角度間の時間間隔を表す時間情報であると言える。
尚、第1メモリM1の先頭アドレスは、角度カウンタ26の値が0になるときの0°CAのNEタイミングクランク角度に対応している。また、図2にて第1メモリM1のアドレスを示す「NEタイミング」の欄において、120°CAの次に150°CAになっているのは、本実施形態では、その間のクランク角度(120°CA〜150°CA)で回転信号NEが欠歯部となるからである。
次に、第2メモリM2には、図3に示すように、タイミング発生器17からタイミング信号が発生される毎に、その時点での角度カウンタ26のカウント値(以下、角度カウンタ値ともいう)と、その時のA/D変換器19による燃焼圧信号のA/D変換値とが、ペアで順次記憶される。
尚、角度カウンタ値とA/D変換値とがペアで記憶されるとは、角度カウンタ値とA/D変換値とが対応付けされて記憶されるというということであり、どの角度カウンタ値がどのA/D変換値に対応するのかが識別可能に記憶されるということである。そして、本第1実施形態では、図3の左側列に示す第2メモリM2の角度カウンタ値記憶領域と、図3の右側列に示す第2メモリM2のA/D変換値記憶領域との各々に、その各領域の先頭アドレスから順に、互いに対応した角度カウンタ値とA/D変換値とを記憶するようにしているため、互いに対応した角度カウンタ値とA/D変換値とは、それらが記憶される各領域の先頭からのアドレスが同じとなり、これによって対応付けされる。
また、第3メモリM3には、図4に示すように、0°CA〜720°CAまでの10°CA毎の各クランク角度について、エンジン制御に使用する制御係数(ここでは、検出した燃焼圧信号の検出値を補正するための補正値)を記憶したデータマップが格納されている。
例えば、図5に示すように、エンジンのシリンダに取り込まれた空気が逃げない密閉の状態を考えた場合、点火による爆発が起こらなくても、シリンダ内の圧力はピストンの上下動作により変化する。
このため、燃焼圧センサP1〜P4から出力される燃焼圧信号は図6のような波形となるが、その燃焼圧信号から点火制御にのみ起因する圧力値を得るためには、燃焼圧信号の検出値を、図5の如く変化する圧力をオフセット圧力として補正してやる必要がある。
そこで、第3メモリM3には、図5のオフセット電圧の符号を正負反対にした値が、補正値として、各気筒#1〜#4毎に格納されており、その補正値を燃焼圧信号の検出値に加算することで、点火制御にのみ起因するシリンダ内圧力の値が得られるようにしている。
尚、図5、図6及び以下の説明において、例えば、「BTDC90°CA」とは、TDCより90°CA前のことであり、「ATDC180°CA」とは、TDCより180°CA後のことである。また、図5の圧力波形は、図4における第3気筒#3用の補正値に該当するものであり、他の各気筒#4,#2,#1用の補正値は、その第3気筒の補正値を180°CA分ずつずらした値となっている。一方、図4の「NEタイミング」の欄において、720°CAというクランク角度は、0°CAと同じである。また、第3メモリM3に記憶しておく制御係数は、補正値に限らず、例えば燃焼圧センサ出力の目標値などであってもよい。また更に、制御係数は、10°CA毎の値に限らず、5°CA毎や20°CA毎の値でもよいし、不等間隔毎の値でもよい。
次に、エンジン制御装置11のCPU13が実行する処理の内容について説明する。
まず図7は、CPU13の処理タイミングを、各気筒#1〜#4の燃焼圧信号(但し、図5で述べたオフセット圧力分だけ補正したもの)と共に表すタイムチャートである。
CPU13は、回転信号NEに図7の1段目に示す如く立ち上がりエッジが発生する毎に、図8の割り込み処理を実行する。
そして、CPU13は、図8の割り込み処理を開始すると、S110にて、その時のフリーランタイマ値(FRT)を、エッジ時刻キャプチャ部27から読み出して、前述した第1メモリM1のアドレスのうち、その時の角度カウンタ上位の値で示されるアドレスへ記憶する。そして、その後、当該割り込み処理を終了する。
このため、図2(A)に示したように、第1メモリM1には、回転信号NEに立ち上がりエッジが発生する毎に、その時のフリーランタイマ値が順次記憶されていくと共に、その記憶先アドレスは、その記憶時のクランク角度に対応したアドレスとなる。
尚、第1メモリM1には、図2(B)に示すように、回転信号NEに立ち上がりエッジが発生する毎に、その時のフリーランタイマ値から前回の回転信号NEの立ち上がりエッジタイミングでのフリーランタイマ値を引いた値(つまり、回転信号NEの今回のパルス間隔時間)を順次記憶していくようにしても良い。
また、図7に示すように、CPU13は、各気筒#1〜#4のATDC80°CAのタイミング(第1気筒#1のTDCを0°CAとした場合の、80°CA、260°CA、440°CA、620°CAの各タイミング)になったことを角度カウンタ値に基づき検知する毎に、マルチプレクサ21を切り替えて、次にTDCとなる点火予定の気筒の燃焼圧信号がA/D変換器19に入力されてA/D変換されるようにする。
また更に、CPU13は、各気筒#1〜#4のBTDC80°CAのタイミング(即ち、マルチプレクサ21を切り替えてから20°CA後のタイミング)になったことを角度カウンタ値に基づき検知する毎に、図9の処理を実行する。
そして、CPU13が図9の処理を開始すると、まずS210にて、タイミング発生器17がタイミング信号を出力する時間間隔を算出して設定する。
このタイミング信号の出力間隔は、エンジンが最大回転数であるときの回転信号NEのパルス間隔時間(即ち、回転信号NEのパルス間隔時間の最小値)よりも短い一定時間に設定されるが、本実施形態では、エンジンの回転速度に反比例した値となるように、10°CAよりも小さい所定クランク角度(具体的には1°CA)相当の時間の平均値を算出して、その平均値に設定している。例えば、最新の180°CA分の時間を180で割った値を、タイミング信号の出力間隔として設定している。尚、タイミング信号の出力間隔は、例えば前回のBTDC80°CA〜ATDC80°CAの160°CA分の時間を160で割って求めたり、直前の10°CA分の時間などから求めても良い。また、タイミング信号の出力間隔は、S210とは別のタイミングで予め算出しておいても良い。
次にS220にて、第2メモリM2にて角度カウンタ値が順次記憶される角度カウンタ値記憶領域のアドレスを示す変数であるポインタMem2Aと、第2メモリM2にて燃焼圧信号のA/D変換値が順次記憶されるA/D変換値記憶領域のアドレスを示す変数であるポインタMem2Bとを、先頭アドレスを示す0に初期化する。
そして、続くS230にて、タイミング発生器17を起動し、その後、当該図9の処理を終了する。
尚、タイミング発生器17は、上記S230で起動されると、その時点で一発目のタイミング信号を出力し、以後は、上記S210で設定された時間間隔毎にタイミング信号を出力する。そして、タイミング発生器17は、その後、今回点火される気筒のATDC80°CAのタイミングが到来して、CPU13が後述する図12の処理におけるS410で当該タイミング発生器17の動作を停止させると、タイミング信号の出力を止める。
次に、CPU13は、タイミング発生器17からタイミング信号が出力される毎に、図10の処理を実行する。
CPU13が図10の処理を開始すると、まずS310にて、その時点での角度カウンタ値を、ポインタMem2Aで示される第2メモリM2のアドレスに記憶し、続くS320にて、A/D変換器19から燃焼圧信号のA/D変換値を読み込むと共に、その読み込んだA/D変換値を、ポインタMem2Bで示される第2メモリM2のアドレスに記憶する。そして、続くS330にて、ポインタMem2Aを1インクリメントし、更に続くS340にて、ポインタMem2Bを1インクリメントした後、当該図10の処理を終了する。
このため、本実施形態では、図7の如く各気筒#1〜#4の点火時期を含むBTDC80°CA〜ATDC80°CAまでの160°CA分の期間が処理対象区間となり、その処理対象区間において、タイミング発生器17からタイミング信号が出力される一定時間毎に、該当する気筒の燃焼圧信号のA/D変換値と角度カウンタ値とが、第2メモリM2に図3の如くペアで順次記憶されていくこととなる。
尚、図10のS320で第2メモリM2にA/D変換値を記憶するためのA/D変換器19の使用方法としては、次の2通りの方法がある。
<方法1>
図11(A)に示すように、タイミング信号が発生したタイミングでA/D変換器19に燃焼圧信号をA/D変換させ、A/D変換が終了したら、そのA/D変換値を読み込む。また、タイミング信号が発生するタイミングよりもA/D変換に必要な時間だけ早いタイミングで、A/D変換器19に燃焼圧信号をA/D変換させるようにしても良い。
<方法2>
図11(B)に示すように、A/D変換器19がタイミング信号の出力間隔よりも短い間隔(例えば5μs)でA/D変換を常時実施するようにし、S320では、その時点での最新のA/D変換値を読み込む。
そして、方法1によればA/D変換回数を低減でき、方法2によればCPU13側の処理が簡単になる。尚、図11は、マルチプレクサ21によって第3気筒#3の燃料圧信号が選択されている場合を例示している。
次に、CPU13は、各気筒#1〜#4のATDC80°CAのタイミング(即ち、処理対象区間の終了タイミング)になったことを角度カウンタ値に基づき検知する毎に、図12の処理を実行する。
CPU13が図12の処理を開始すると、まずS410にて、タイミング発生器17の動作を停止させる。これにより、1つの気筒についての処理対象区間が終了することとなる。
そして、続くS420にて、今回終了した処理対象区間(以下、今回の処理対象区間という)において第2メモリM2にペアで順次記憶された各角度カウンタ値及びA/D変換値と、その時点で第1メモリM1に記憶されている各フリーランタイマ値とを用いて、演算処理を行う。
この第1実施形態における演算処理は、第2メモリM2に図3の如くA/D変換値と対応して記憶された各角度カウンタ値であて、第2メモリM2内の各A/D変換値がA/D変換されたときのクランク角度をそれぞれ表す各角度カウンタ値を、第1メモリM1内の各フリーランタイマ値を用いて正しい値に補正するものであり、詳細は後で説明する。
そして、続くS430にて、上記演算処理で補正された後の各角度カウンタ値と、それらに対応する第2メモリM2内の各A/D変換値とからなる情報を、第2メモリM2とは別の結果保存用メモリ(図示省略)に退避させる。そして更に、その結果保存用メモリに退避させた情報を、第3メモリM3に記憶されている各制御係数を使ってエンジン制御に反映させる。
ここでは、図4に示したように、第3メモリM3には、10°CA毎の各クランク角度について、燃焼圧信号の検出値(即ちA/D変換値)を補正するための補正値が制御係数として記憶されているため、その第3メモリM3から、上記演算処理によって補正された後の各角度カウンタ値が表すクランク角度に対応した補正値を補間演算によって算出すると共に、その算出した各補正値を用いて、対応する燃焼圧信号のA/D変換値を補正することにより、その各A/D変換値を、点火制御にのみ起因したシリンダ内圧力を表す値にすることができる。そして、その補正後のA/D変換値をエンジン制御のための処理に用いるのである。
そして更に、続くS440にて、マルチプレクサ21を切り替えて、次にTDCとなる点火予定の気筒の燃焼圧信号がA/D変換器19に入力されるようにする。つまり、今回の処理起動時の角度カウンタ値が80であれば第3気筒#3の燃焼圧信号がA/D変換器19に入力されるようにし、今回の処理起動時の角度カウンタ値が260であれば第4気筒#4の燃焼圧信号がA/D変換器19に入力されるようにし、今回の処理起動時の角度カウンタ値が440であれば第2気筒#2の燃焼圧信号がA/D変換器19に入力されるようにし、今回の処理起動時の角度カウンタ値が620であれば第1気筒#1の燃焼圧信号がA/D変換器19に入力されるようにする。そして、その後、当該図12の処理を終了する。
次に、図12のS420で実行される演算処理の詳しい内容について、図13を用いて説明する。
図13に示すように、CPU13が演算処理の実行を開始すると、まずS510にて、第2メモリM2の角度カウンタ値記憶領域(即ち、図10のS310で角度カウンタ値が順次記憶された領域)の先頭アドレスを、ポインタM2Adにセットする。
そして、続くS520にて、ポインタM2Adが示す第2メモリM2のアドレス(以下、アドレス「M2Ad」という)に記憶されている角度カウンタ値を読み出すと共に、その読み出した角度カウンタ値に関連する情報を第1メモリM1からサーチして、上記読み出した角度カウンタ値を補正し、補正後の角度カウンタ値をアドレス「M2Ad」に記憶し直す。
その後、次のS530にて、ポインタM2Adを1インクリメントし、続くS540にて、ポインタM2Adの値が第2メモリM2における角度カウンタ値記憶領域の最終アドレスを超えたか否かを判定する。そして、最終アドレスを超えていなければ、次のアドレスの角度カウンタ値を補正するべくS520に戻り、最終アドレスを超えていれば、第2メモリM2内の全ての角度カウンタ値を補正し終えたということになるため、当該演算処理を終了する。
ここで、S520の処理を更に詳しく説明すると、その処理は、下記[1−1]〜[1−5]の手順で行われる。
[1−1]
まず、アドレス「M2Ad」から今回の補正対象となる角度カウンタ値(以下、CTと記す)を読み出す。
[1−2]
次に、回転信号NEに立ち上がりエッジが発生する各クランク角度(以下、NEタイミングクランク角度という)のうち、CT(詳しくは、CTが表すクランク角度)を挟む2つのNEタイミングクランク角度(即ち、CTの直前と直後との両NEタイミングクランク角度)を特定し、その特定した両NEタイミングクランク角度間の時間間隔Taを、第1メモリM1から算出する。
つまり、第1メモリM1には、図2(A)に示したように、NEタイミングクランク角度のそれぞれに対応して、その時の時刻としてのフリーランタイマ値が記憶されているため、CTを挟む2つのNEタイミングクランク角度の各時刻の差を、時間間隔Taとして求める。よって、Taは、CTが第2メモリM2に記憶された時点での、回転信号NEの今回のパルス間隔時間であると言える。また、図2(B)の如く第1メモリM1に、NEタイミングクランク角度間の各時間を記憶していった場合には、その第1メモリM1から該当する時間を読み出してTaとすれば良い。
但し、CTを挟む2つのNEタイミングクランク角度が、回転信号NEにおける欠歯部に該当するクランク角度であったならば、上記の手順で算出したTaを更に3で割った値を、改めてTaとする。
一方、もし、CTが何れかのNEタイミングクランク角度と同じ値であったならば、そのCTは補正する必要がないため、そのままS530に進む。
[1−3]
そして更に、CTを挟む2つのNEタイミングクランク角度よりも回転信号NEの1パルス間隔分だけ前の2つのNEタイミングクランク角度(即ち、CTの直前のNEタイミングクランク角度と、その1つ前のNEタイミングクランク角度)を特定し、その特定した両NEタイミングクランク角度間の時間間隔Tbを、上記Taと同様の手順で第1メモリM1から算出する。よって、Tbは、CTが第2メモリM2に記憶された時点での、回転信号NEの前回のパルス間隔時間であると言える。
但し、ここで特定した2つのNEタイミングクランク角度が、回転信号NEにおける欠歯部に該当するクランク角度であったならば、上記の手順で算出したTbを更に3で割った値を、改めてTbとする。
[1−4]
そして、CTを、下記の式1で補正し、その補正後の角度カウンタ値CTdをアドレス「M2Ad」に記憶し直す。
CTd=CTH+CTL×(Tb/Ta)…式1
尚、CTLは、CTの下位nビットの値(即ち、角度カウンタ下位に相当する部分の値)である。また、CTHは、CTにおけるCTLよりも上位のビットで表される値(即ち、角度カウンタ上位に相当する値であり、換言すれば、CTにおけるCTLの全ビットを0にした場合の値)である。
[1−5]
但し、CTにおけるCTLの値が、最大値である「2のn乗−1」であった場合(即ち、CTLの全ビットが1であった場合)には、CTを、上記式1ではなく、下記の式2で補正する。
CTd=CTde+ΔCT×(Tb/Ta)×J…式2
尚、CTdeは、その時点で式1により算出された最新の補正後のクランク角度である。また、ΔCTは、1サンプリング当たりのクランク角度であって、詳しくは、第2メモリM2に記憶されているクランク角度のうち、CT(今回の補正対象)の直前のNEタイミングクランク角度以降で、且つ、CTdeの補正前のクランク角度までの、各クランク角度同士の差である。そして、Jは、今回の補正対象であるCTが、第2メモリM2内において、CTLの値が連続して最大値となっているもののうちの何番目であるかを示す番号値である。
次に、以上のような演算処理が、図7における第3気筒#3のATDC80°CAのタイミングで実施された場合を例に挙げて説明する。
まず、第2メモリM2には、図14の「補正前」の欄に示すような値の角度カウンタ値が記憶されているものとする。そして、第1メモリM1には、各NEタイミングクランク角度の時刻(フリーランタイマ値)として、図15の最上段に示すように、180°CA〜190°CAの時間T180が1.666msで、190°CA〜200°CAの時間T190が1.666msで、200°CA〜210°CAの時間T200が1.000msで、210°CA〜220°CAの時間T210が2.000msである、といったことを表す値が記憶されているものとする。尚、図15は、図7におけるH1の範囲を拡大して表している。
この場合、図14の領域R1における補正前の各角度カウンタ値(即ち、200°CAから210°CAまでの各角度カウンタ値)は、図15から分かるように、回転信号NEのパルス間隔が前回のT190よりも短くなったT200の期間でのデータ(即ち、加速時のデータ)であり、その各角度カウンタ値の下位nビットは最大値にはならない。
このため、その領域R1の各角度カウンタ値は、式1により、Ta=T200=1.000ms、Tb=T190=1.666msとして補正される。例えば、図14における補正前の「203.00°CA」に関しては、式1から、「CTd=200+3.00×(1.666/1.000)=205.00°CA」となる。
また、図14の領域R2における補正前の各角度カウンタ値(即ち、210°CAから220°CAまでの各角度カウンタ値)は、図15から分かるように、回転信号NEのパルス間隔が前回のT200よりも長くなったT210の期間でのデータ(即ち、減速時のデータ)であるため、それらのうち、図14の領域R2aに示すように、前半のものは、下位nビットが最大値にならず、後半のものは、下位nビットが最大値になる。尚、図14では、逓倍数Nが1024で、角度カウンタ下位が10ビットであるものとしており、下位n(=10)ビットの最大値は9.99となっている。
そして、領域R2aの各角度カウンタ値は、式1により、Ta=T210=2.000ms、Tb=T200=1.000msとして補正される。例えば、図14における補正前の「218.33°CA」に関しては、式1から、「CTd=210+8.33×(1.000/2.000)=214.17°CA」となる。
また、領域R2bの各角度カウンタ値(=219.99°CA)は、式2により、Ta=T210=2.000ms、Tb=T200=1.000msとして補正されるが、この場合、図14の右側における直線矢印に示すように、CTdeとしては214.17°CAが用いられ、また、図14の左側における曲線矢印に示すように、ΔCTとしては1.67°CA(例えば「216.67°CA−215.00°CA」)が用いられる。そして例えば、領域R2bの角度カウンタ値のうち、3番目の角度カウンタ値に関しては、J=3となり、式2から、「CTd=214.17+1.67×(1.000/2.000)×3=216.67°CA」となる。
尚、式2におけるΔCTの代わりに、図14の右側における曲線矢印に示すように、下位nビットが最大値でなかった角度カウンタ値の補正後の値同士の差を求め、その値を、式2における「ΔCT×(Tb/Ta)」として用いるようにしても同じことである。また、その「ΔCT×(Tb/Ta)」やΔCTとしては、複数の値の平均値を用いても良い。
一方、本第1実施形態では、カウンタ処理部25がカウンタ処理手段に相当し、タイミング発生器17がタイミング出力手段に相当し、図8の処理が第1記憶処理手段に相当している。そして、図10の処理が請求項1の第2記憶処理手段に相当し、図12のS420で実行される図13の処理が、請求項1の演算処理手段に相当している。また、各気筒#1〜#4のBTDC80°CAというクランク角度が、処理対象区間の開始タイミングとしての情報収集開始角度に相当している。
以上のように、本第1実施形態のエンジン制御装置11では、図15における「波形A」に示すように、まず、角度カウンタ値には同期せずに、タイミング発生器17からタイミング信号が出力される一定時間毎に、燃焼圧信号のA/D変換値を角度カウンタ値とペアで第2メモリM2に記憶していき、その後、図13の演算処理を実施して、第2メモリM2に記憶された角度カウンタ値を、第1メモリM1に記憶しておいた各時間情報を用いて正しい値に補正するようにしている。
このため、補正された後の各角度カウンタ値は、第2メモリM2内の各A/D変換値が取り込まれたときのクランク角度を、回転速度の変動に影響されることなく正確に表すものとなる。よって、第2メモリM2に記憶された各A/D変換値と補正後の各角度カウンタ値とからなる情報は、燃焼圧信号の値がどのクランク角度でどういう値かを細かく正確に把握することのできる情報となる。
そして、第2メモリM2に記憶された各A/D変換値を、補正後の各角度カウンタ値に基づいて、例えば横軸をクランク角度としてプロットしたならば、図15の「波形B」に示すように、データ抜けやデータ飛びの無い連続した波形が再現される。このため、第2メモリM2に記憶されたデータをエンジン制御に用いた場合に、制御状態の急変を招く心配がない。尚、図15では、分かりやすいように180°CAのタイミングなどでは、1°CA毎のタイミングと燃焼圧信号の取り込みタイミングとが同期しているが、同期しなくても良い。また、加速時には信号の取り込み間隔が本来の1°CA毎よりも粗くなるが、例えば、タイミング発生器17からタイミング信号が出力される間隔を0.5°CA相当の時間などにすれば良い。
また更に、図13の演算処理は、処理対象区間が終了してから1回行うだけで良いため、CPU13の処理負荷を軽減することができる。
しかも、第2メモリM2に記憶される燃焼圧信号の各A/D変換値は、一定時間毎に取り込んだデータであるため、クランク角度に依存する失火検出などの処理と、時間に依存するノック検出用デジタルフィルタ処理との、両方に使用することができる。
そして更に、本第1実施形態のエンジン制御装置11によれば、第3メモリM3のデータマップ(図4)から、演算処理によって補正した後の各角度カウンタ値に対応する制御係数を算出し、その各制御係数と燃焼圧信号の各A/D変換値とを用いてエンジン制御を行うようにしているため、制御精度を向上させることができる。
また、本第1実施形態では、タイミング発生器17からタイミング信号が出力される時間間隔を、図9のS210にてエンジンの回転速度に応じて設定するようにしているため、エンジン回転数に拘わらず一定のクランク角度相当の時間毎に燃焼圧信号値を取り込むことができる。
尚、上記第1実施形態では、各気筒#1〜#4毎の処理対象区間を互いに重複しないように設定したが、それらを重複して設定するのであれば、第2メモリM2を各気筒#1〜#4毎に設けて同様の処理を行えば良い。
次に、第2実施形態のエンジン制御装置について説明する。尚、本第2実施形態を始め、以下に説明する他の実施形態においても、ハードウェア構成は第1実施形態と同じであるため、各部の符号は第1実施形態と同じものを用いる。
第2実施形態のエンジン制御装置11は、第1実施形態のエンジン制御装置11と比較すると、下記の2点が異なっている。
第1の点として、第2メモリM2には、図16に示す如く、角度カウンタ値に代えて、フリーランタイマ値が記憶される。
つまり、CPU13は、タイミング発生器17からタイミング信号が出力される毎に、図10の処理に代えて、図17の処理を実行する。そして、図10のS310に代わるS315にて、その時点でのフリーランタイマ値(FRT)を、ポインタMem2Aで示される第2メモリM2のアドレスに記憶するのである。尚、図17において、ポインタMem2Aは、第2メモリM2にてフリーランタイマ値が順次記憶されるフリーランタイマ値記憶領域(図16の左側列の領域)のアドレスを示す変数である。また、図17において、S320〜S340の処理は、図10と同じである。
このため、第2メモリM2には、各気筒#1〜#4のBTDC80°CA〜ATDC80°CAまでの処理対象区間においてタイミング発生器17からタイミング信号が発生される一定時間毎に、該当する気筒の燃焼圧信号のA/D変換値と、その時の時刻としてのフリーランタイマ値とが、ペアで順次記憶されることとなる。
第2の点として、本第2実施形態では、CPU13が、図12のS420にて、図13の演算処理に代えて、図18の演算処理を実行する。
そして、CPU13が図18の演算処理の実行を開始すると、まずS610にて、第1メモリM1の先頭アドレスをポインタM1Adにセットし、また、作業用メモリM1s(図19参照)の先頭アドレスをポインタM1sAdにセットする。
次に、S620にて、ポインタM1Adが示す第1メモリM1のアドレス(以下、アドレス「M1Ad」という)に記憶されているフリーランタイマ値と、その次のアドレス「M1Ad+1」に記憶されているフリーランタイマ値との差から、その各アドレス「M1Ad」,「M1Ad+1」にそれぞれに対応する両NEタイミングクランク角度間での1°CA当たりの時間を算出し、その算出値を、ポインタM1sAdが示す作業用メモリM1sのアドレス(アドレス「M1sAd」)に記憶する。
尚、1°CA当たりの時間は、アドレス「M1Ad」に記憶されているフリーランタイマ値をFT1とし、アドレス「M1Ad+1」に記憶されているフリーランタイマ値をFT2とし、アドレス「M1Ad」に対応するNEタイミングクランク角度をCA1とし、アドレス「M1Ad+1」に対応するNEタイミングクランク角度をCA2とすると、下記の式3によって算出する。
1°CA当たりの時間=(FT2−FT1)/(CA2−CA1)…式3
そして、続くS630にて、ポインタM1AdとポインタM1sAdとをそれぞれ1インクリメントし、続くS640にて、ポインタM1Adの値が第1メモリM1の最終アドレスになったか否かを判定する。そして、最終アドレスでなければ(S640:NO)、次のNEタイミングクランク角度間での1°CA当たりの時間を算出するべくS620に戻り、最終アドレスであれば(S640:YES)、全てのNEタイミングクランク角度間での1°CA当たりの時間を算出し終えたということになるため、S650に進む。
こうしたS610〜S640の処理により、図19に例示するように、第1メモリM1に記憶されている各NEタイミングクランク角度でのフリーランタイマ値から、各NEタイミングクランク角度間での1°CA当たりの時間がそれぞれ算出され、その算出された各時間が、作業用メモリM1sに先頭アドレスから順に記憶されることとなる。例えば、200°CA〜210°CA間での1°CA当たりの時間は、100.0μs=「(44333−43333)/10°CA」と算出され、210°CA〜220°CA間での1°CA当たりの時間は、200.0μs=「(46333−44333)/10°CA」と算出される。また、作業用メモリM1s各アドレスも、第1メモリM1のアドレスと同様に、各NEタイミングクランク角度に対応することとなるため、その作業用メモリM1sから、所望のNEタイミングクランク角度間での1°CA当たりの時間を検索することができる。
次に、上記S640からS650に進むと、第2メモリM2のフリーランタイマ値記憶領域(即ち、図17のS315でフリーランタイマ値が順次記憶された領域)の先頭アドレスを、ポインタM2Adにセットする。
そして、続くS660にて、ポインタM2Adが示す第2メモリM2のアドレス(アドレス「M2Ad」)に記憶されているフリーランタイマ値を読み出すと共に、その読み出したフリーランタイマ値に関連する情報を第1メモリM1及び作業用メモリM1sからサーチして補間計算を行うことにより、上記読み出したフリーランタイマ値に該当するクランク角度を算出し、その算出したクランク角度の値(角度値)を、図19の右側に例示する如く第2メモリM2のアドレス「M2Ad」に記憶し直す。
その後、次のS670にて、ポインタM2Adを1インクリメントし、続くS680にて、ポインタM2Adの値が第2メモリM2におけるフリーランタイマ値記憶領域の最終アドレスを超えたか否かを判定する。そして、最終アドレスを超えていなければ、次のアドレスのフリーランタイマ値をクランク角度に変換するべくS660に戻り、最終アドレスを超えていれば、第2メモリM2におけるフリーランタイマ値記憶領域内の全てのフリーランタイマ値をクランク角度に変換し終えたということになるため、当該演算処理を終了する。
ここで、S660の処理を更に詳しく説明すると、その処理は、下記[2−1]〜[2−3]の手順で行われる。
[2−1]
まず、第2メモリM2(詳しくは、フリーランタイマ値記憶領域)のアドレス「M2Ad」から今回の演算対象となるフリーランタイマ値(以下、FTtと記す)を読み出す。
[2−2]
次に、第1メモリM1から、各NEタイミングクランク角度でのフリーランタイマ値のうち、FTtの直前のフリーランタイマ値FTkをサーチして読み出すと共に、そのFTkに対応するNEタイミングクランク角度CAkを特定する。
そして更に、作業用メモリM1sから、CAkと該CAkの次のNEタイミングクランク角度との間での1°CA当たりの時間Tsをサーチして読み出す。尚、Tsは、FTtの時刻が含まれた回転信号NEのパルス間隔における1°CA当たりの時間である。
[2−3]
そして、FTtに該当するクランク角度(即ち、第2メモリM2にて、そのFTtとペアで記憶されているA/D変換値が取り込まれたときのクランク角度)CAtを、下記の式4で算出し、その算出したCAtを第2メモリM2のアドレス「M2Ad」に記憶し直す。
CAt=CAk+(FTt−FTk)/Ts…式4
例えば、図19の例において、第2メモリM2に記憶されたフリーランタイマ値のうち、43999が演算対象のFTtとされた場合、第1メモリM1からは、FTkとして43333が読み出されると共に、CAkは200°CAであると特定される。また、作業用メモリM1sからは、Tsとして、200°CA〜210°CA間での1°CA当たりの時間である100μsが読み出されることとなる。そして、算出されるCAtは、「CAt=200°CA+(43999−43333)/100=206.66°CA」となる(図19における[*1]印参照)。
また、第2メモリM2に記憶されたフリーランタイマ値のうち、45666が演算対象のFTtとされた場合、第1メモリM1からは、FTkとして44333が読み出されると共に、CAkは210°CAであると特定される。また、作業用メモリM1sからは、Tsとして、210°CA〜220°CA間での1°CA当たりの時間である200μsが読み出されることとなる。そして、算出されるCAtは、「CAt=210°CA+(45666−44333)/200=216.67°CA」となる(図19における[*2]印参照)。
尚、本第2実施形態において、図12のS430では、図18の演算処理で算出された各クランク角度の値と、それらに対応する第2メモリM2内の各A/D変換値とからなる情報を、第2メモリM2とは別の結果保存用メモリに退避させる。そして、第1実施形態と同様に、その結果保存用メモリに退避させた情報を、第3メモリM3内の制御係数を使ってエンジン制御に反映させる。
また、本第2実施形態では、図17の処理が請求項2の第2記憶処理手段に相当し、図12のS420で実行される図18の処理が、請求項2の演算処理手段に相当している。
以上のように、本第2実施形態のエンジン制御装置11では、図20における「波形A」に示すように、まず、タイミング発生器17からタイミング信号が出力される一定時間毎に、燃焼圧信号のA/D変換値を、そのときのフリーランタイマ値と対応させて第2メモリM2に記憶していき、その後、図18の演算処理を実施して、第2メモリM2に記憶された各フリーランタイマ値と、第1メモリM1に記憶された各NEタイミングクランク角度でのフリーランタイマ値とから、第2メモリM2内の各A/D変換値が取り込まれたときのクランク角度を算出している。つまり、第2メモリM2に記憶されたA/D変換値とペアの各フリーランタイマ値は、そのA/D変換値が取り込まれた時刻を表すものであるが、その各フリーランタイマ値を、第1メモリM1の情報を用いて、そのフリーランタイマ値が表す時刻に該当するクランク角度に換算するようにしている。
そして、本第2実施形態によっても、図18の演算処理で算出される各クランク角度の値は、第2メモリM2内の各A/D変換値が取り込まれたときのクランク角度を、回転速度の変動に影響されることなく正確に表すものとなる。よって、第2メモリM2に記憶された各A/D変換値と、算出された各クランク角度とからなる情報は、燃焼圧信号の値がどのクランク角度でどういう値かを細かく正確に把握することのできる情報となる。また、第2メモリM2に記憶された各A/D変換値を、図18の演算処理で算出された各クランク角度の値に基づいて、例えば横軸をクランク角度としてプロットしたならば、図20の「波形B」に示す如く、第1実施形態と同様にデータ抜けやデータ飛びの無い連続した波形が再現される。
よって、本第2実施形態のエンジン制御装置11によっても、第1実施形態のエンジン制御装置11と同様の効果を得ることができる。
しかも、本第2実施形態によれば、カウンタ処理部25に逓倍クロックを生成する機能がなく、角度カウンタ26を回転信号NEの有効エッジだけでカウントアップさせる簡素な装置構成であっても適用でき、また、演算処理が第1実施形態のものよりも簡単であるという2つの点で有利である。
次に、第3実施形態のエンジン制御装置について説明する。
第3実施形態のエンジン制御装置11は、第2実施形態のエンジン制御装置11と比較すると、下記の3点が異なっている。
第1の点として、タイミング発生器17からタイミング信号が出力される毎に実行される図17の処理では、S315の処理を行わない。
このため、第2メモリM2には、各気筒#1〜#4のBTDC80°CA〜ATDC80°CAまでの処理対象区間において、タイミング発生器17からタイミング信号が発生される一定時間毎に、該当する気筒の燃焼圧信号のA/D変換値だけが順次記憶されることとなる。但し、第2メモリM2には、第2実施形態と同様に、A/D変換値を順次記憶するためのA/D変換値記憶領域だけでなく、その第2メモリM2内の各A/D変換値が取り込まれたときのフリーランタイマ値を、そのA/D変換値と対応付けて記憶するためのフリーランタイマ値記憶領域も設けられている。
第2の点として、CPU13は、処理対象区間の開始タイミングに相当する各気筒#1〜#4のBTDC80°CAのタイミング毎に、図9の処理に代えて、図21の処理を実行する。
そして、図21の処理では、S230に続くS240にて、上記S230でタイミング発生器17を起動させたときのフリーランタイマ値を、処理対象区間においてタイミング発生器17からタイミング信号が最初に出力された時刻として、開始時刻記憶メモリMst(図23参照)に記憶する。尚、図21において、S210〜S230の処理は、図9と同じであるため説明は省略する。
第3の点として、CPU13は、処理対象区間の終了時に実行される図12の処理のS420にて、図18の演算処理に代えて、図22の演算処理を実行する。
そして、CPU13が図22の演算処理の実行を開始すると、まずS710にて、変数Qを1に初期化する。
次にS720にて、Qの値と、タイミング発生器17が起動された時のフリーランタイマ値(即ち、図21のS240で開始時刻記憶メモリMstに記憶されたフリーランタイマ値)FTstと、今回の処理対象区間においてタイミング発生器17がタイミング信号を出力した時間間隔(即ち、図21のS210で設定した時間間隔)Toとから、下記の式5に基づき、今回の処理対象区間においてタイミング発生器17がQ番目のタイミング信号を出力したときのフリーランタイマ値(即ち、第2メモリM2内のQ番目のA/D変換値が取り込まれたときのフリーランタイマ値)FTqを算出し、その算出したFTqを、第2メモリM2におけるフリーランタイマ値記憶領域のアドレスのうち、Q番目のアドレスに記憶する。尚、Q番目とは、最初のものを1番目とした場合のQ番目ということである。
FTq=FTst+To×(Q−1)…式5
そして、続くS730にて、変数Qを1インクリメントし、更に続くS740にて、変数Qの値が第2メモリM2におけるフリーランタイマ値記憶領域のアドレス数(=A/D変換値記憶領域のアドレス数)を超えたか否かを判定する。そして、アドレス数を超えていなければ(S740:NO)、次のフリーランタイマ値を算出するべくS720に戻り、アドレス数を超えていれば(S740:YES)、第2メモリM2内の全てのA/D変換値が取り込まれたときの各フリーランタイマ値を算出し終えたということになるため、S610へ進む。
ここで、図22において、上記S740から進むS610以降の処理(S610〜S680)は、図18と同じである。つまり、本第3実施形態では、図18の演算処理におけるS610の前に、S710〜S740の処理を実行している。
このため、本第3実施形態では、上記S710〜S740の処理で算出された各フリーランタイマ値が、前述したS650〜S680の処理により、第2メモリM2内の各A/D変換値が取り込まれたときのクランク角度に変換されて第2メモリM2のフリーランタイマ値記憶領域に記憶し直されることとなる。
例えば、図23に示すように、開始時刻記憶メモリMstに記憶されたフリーランタイマ値)FTstが26666であり、タイミング発生器17によるタイミング信号の出力間隔Toが166.667[μs]であったとすると、第2メモリM2内の105番目のA/D変換値が取り込まれたときのフリーランタイマ値は、S720の処理(式5)により、43999(=26666+166.667×(105−1))と算出される。そして、その43999は、前述したS660の処理(式4)でFTtとされることにより、206.66°CAというクランク角度に変換される。また、第2メモリM2内の115番目のA/D変換値が取り込まれたときのフリーランタイマ値は、S720の処理(式5)により、45666(=26666+166.667×(115−1))と算出される。そして、その45666は、前述したS660の処理(式4)でFTtとされることにより、216.67°CAというクランク角度に変換される。
以上のように本第3実施形態では、第2実施形態と比較すると、処理対象区間において燃焼圧信号のA/D変換値を取り込んだときの各フリーランタイマ値を、第2メモリM2にA/D変換値とペアで記憶させていくのではなく、処理対象区間にてタイミング発生器17からタイミング信号が最初に出力されたときのフリーランタイマ値FTstと、タイミング発生器17がタイミング信号を出力する時間間隔Toとから、算出するようにしている。
このため、処理対象区間中に第2メモリM2へフリーランタイマ値を記憶していかなくても、第2実施形態のエンジン制御装置11と同じ効果を得ることができる。
尚、本第3実施形態では、S315を削除した図17の処理が請求項3の第2記憶処理手段に相当し、図21におけるS240の処理が開始時刻記憶処理手段に相当し、図22におけるS710〜S740の処理が時刻算出手段に相当し、図22におけるS610〜S680の処理が請求項3の演算処理手段に相当している。
一方、上記第3実施形態では、S610〜S680の処理を行う前に、第2メモリM2内の各A/D変換値が取り込まれたときのフリーランタイマ値を全て算出するようにしたが、その各フリーランタイマ値は、図22のS660にて、第2メモリM2内の各A/D変換値が取り込まれたときのクランク角度を算出する際毎に、1つずつ算出するようにしても良い。
つまり、この場合、まず、第2メモリM2のフリーランタイマ値記憶領域には、実際にはフリーランタイマ値が記憶されず、図22のS660で算出されるクランク角度(第2メモリM2内の各A/D変換値が取り込まれたときのクランク角度)だけが順次記憶されることとなるため、その記憶領域は、クランク角度記憶領域と呼ぶことにする。そして、図22からS710〜S740を削除すると共に、図22のS650では、上記クランク角度記憶領域の先頭アドレス(1番目のアドレス)を、ポインタM2Adにセットする。
次に、図22のS660では、アドレス「M2Ad」から演算対象のフリーランタイマ値(FTt)を読み出すのではなく、アドレス「M2Ad」がクランク角度記憶領域のQ番目のアドレスであるとすると、第2メモリM2におけるA/D変換値記憶領域のQ番目のアドレスに記憶されているA/D変換値(以下、Q番目のA/D変換値という)が取り込まれたときのフリーランタイマ値を、前述した式5から算出し、更に、その算出したフリーランタイマ値を前述した手順[2−1]〜[2−3]でのFTtとして、Q番目のA/D変換値が取り込まれたときのクランク角度を算出し、その算出したクランク角度をクランク角度記憶領域のアドレス「M2Ad」に記憶すれば良い。尚、この場合、式5におけるQには、クランク角度記憶領域の先頭アドレスを1番目とした場合のアドレス「M2Ad」の順番値を代入すれば良い。
このようにすれば、各A/D変換値に対応する全てのフリーランタイマ値を一度に記憶しておく必要がないため、メモリ容量の節約が可能となる。
次に、第4実施形態のエンジン制御装置について説明する。
第4実施形態のエンジン制御装置11は、第2実施形態のエンジン制御装置11と比較すると、図12のS420にて、図18の演算処理に代えて、下記[4−1]及び[4−2]の手順の演算処理を実行する点が異なっている。
[4−1]
まず、図24の右側に示すように、今回の処理対象区間における1°CA毎の各クランク角度(角度値)と、その各クランク角度でのフリーランタイマ値と、その各クランク角度での燃焼圧信号のA/D変換値とを対応付けて記憶するための第4メモリM4を用意する。尚、この場合の「用意する」とは、RAMなどのメモリ内に第4メモリM4としての領域を確保するということである。また、1°CA毎のクランク角度については、特に記憶するのではなく、第4メモリM4の先頭アドレスからの各アドレスが、その各クランク角度に対応するようにしておいても良い。
そして、第1メモリM1に記憶されている各フリーランタイマ値から、今回の処理対象区間における1°CA毎の各クランク角度でのフリーランタイマ値を算出して、その算出した各フリーランタイマ値を、該当する1°CA毎のクランク角度と対応するように第4メモリM4に記憶する。
ここで、ある1°CA毎のクランク角度CAmでのフリーランタイマ値FTmの算出方法について具体的に説明する。
まず、CAmの直前のNEタイミングクランク角度をCAaとし、CAmの直後のNEタイミングクランク角度をCAbとすると、第1メモリM1から、CAaに対応するフリーランタイマ値FTaと、CAbに対応するフリーランタイマ値FTbとを読み出す。
そして、CAmが、CAaを1番目として数えた場合のm番目のクランク角度であるとすると、FTmを、下記の式6で算出する。
FTm=FTa+(m−1)×(FTb−FTa)/(CAb−CAa)…式6
例えば、図24の例において、200°CA〜210°CAまでの1°CA毎の各クランク角度については、式6において、CAa=200,CAb=210,FTa=43333,FTb=44333となるため、その各クランク角度でのフリーランタイマ値は、43333から44333まで100[μs]ずつ増加する各値となる。また、210°CA〜220°CAまでの1°CA毎の各クランク角度については、式6において、CAa=210,CAb=220,FTa=44333,FTb=46333となるため、その各クランク角度でのフリーランタイマ値は、44333から46333まで200[μs]ずつ増加する各値となる。
[4−2]
次に、上記[4−1]で第4メモリM4に記憶した各フリーランタイマ値をもとにして、第2メモリM2の記憶内容を補間することにより、今回の処理対象区間における1°CA毎の各クランク角度での燃焼圧信号のA/D変換値を算出し、その算出した各A/D変換値を、該当する1°CA毎のクランク角度と対応するように第4メモリM4に記憶する。
具体的に説明すると、ある1°CA毎のクランク角度CAmでのA/D変換値ADmは、次のように算出される。
まず、第4メモリM4から、クランク角度CAmでのフリーランタイマ値FTmを読み出す。そして、第2メモリM2から、FTmの直前のフリーランタイマ値FTcと、そのFTcに対応して記憶されているA/D変換値ADcと、FTmの直後のフリーランタイマ値FTdと、そのFTdに対応して記憶されているA/D変換値ADdとを読み出す。
そして、ADmを下記の式7から算出する。
ADm=ADc+(FTm−FTc)×(ADd−ADc)/(FTd−FTc)…式7
例えば、図24の例において、CAm=207°CAについては、式7において、FTm=44033、FTc=43999、ADc=1036、FTd=44166、ADd=1039となるため、その207°CAでのA/D変換値は1036.6と算出される(図24における[*1]印参照)。
また、CAm=217°CAについては、式7において、FTm=45733、FTc=45666、ADc=1082、FTd=45833、ADd=1087となるため、その217°CAでのA/D変換値は1084.0と算出される(図24における[*2]印参照)。
以上のように、本第4実施形態のエンジン制御装置11では、処理対象区間において第2メモリM2に一定時間毎に順次記憶したA/D変換値を補間して、図25の波形Cに示すような1°CA毎のA/D変換値を算出するようにしている。尚、図25の「波形B」は、比較のために、図20の「波形B」と同じ波形を記載したものである。
よって、回転信号NEに立ち上がりエッジが発生する角度間隔よりも小さい1°CA毎の燃焼圧信号のA/D変換値が正確に得られ、そのような1°CA毎のA/D変換値が必要なエンジン制御の精度を向上させることができる。
尚、上記説明では、処理対象区間における1°CA毎の各フリーランタイマ値を先に全部算出して第4メモリM4に記憶しておくようにしたが、その各フリーランタイマ値は、上記式7により1°CA毎の各A/D変換値を算出するとき毎に、その都度算出するようにしても良い。つまり、上記[4−1]及び[4−2]の演算処理では、1°CA毎の各クランク角度について、式6の計算に続き式7の計算を行うようにしても良く、このようにすれば、第4メモリM4の記憶容量を削減することができる。
また、本第4実施形態において、上記[4−1]及び[4−2]の演算処理と共に、前述した図18の演算処理(即ち第2実施形態の演算処理)も実行するようにしても良い。
また更に、上記第4実施形態では1°CA毎のA/D変換値を算出したが、例えば0.5°CA毎や0.2°CA毎など、他の一定角度毎のA/D変換値を算出するようにしても良い。
また、上記第4実施形態では、図17の処理が請求項5の第2記憶処理手段に相当し、図12のS420で実行される上記[4−1]及び[4−2]の演算処理が、請求項5の演算処理手段に相当している。
一方、変形例1として、第3実施形態のエンジン制御装置11においても、例えば図22のS710〜S740の処理が終わった時点(即ち、第2メモリM2内の各A/D変換値に対応するフリーランタイマ値を全て算出して第2メモリM2のフリーランタイマ値記憶領域に記憶し終えた時点)で、上記[4−1]及び[4−2]の演算処理を行い、その後、図22のS610〜S680の処理を行うようにしても良い。また、この場合、S610〜S680の処理は行わずに、1°CA毎のA/D変換値のみ算出するようにしても良い。
そして、この変形例1の場合には、S315を削除した図17の処理が請求項6の第2記憶処理手段にも相当し、上記[4−1]及び[4−2]の演算処理が、請求項6の演算処理手段に相当することとなる。
また、変形例2として、上記第1実施形態のエンジン制御装置においても、第1メモリM1に記憶した情報と、第2メモリM2に順次記憶した角度カウンタ値及びA/D変換値とから、例えば1°CA毎のA/D変換値を算出するようにしても良い。
例えば、図13の演算処理によって角度カウンタ値が補正された後の第2メモリM2(以下、補正後の第2メモリM2ともいう)の記憶内容を補間して、1°CA毎のA/D変換値を算出するように構成すれば良い。
つまり、ある1°CA毎のクランク角度CAmでのA/D変換値ADmは、まず、補正後の第2メモリM2から、CAmの直前のクランク角度を示す角度カウンタ値CT1と、そのCT1に対応して記憶されているA/D変換値AD1と、CAmの直後のクランク角度を示す角度カウンタ値CT2と、そのCT2に対応して記憶されているA/D変換値AD2とを読み出し、それらを用いて下記の式8から算出することができる。
ADm=AD1+(CAm−CT1)×(AD2−AD1)/(CT2−CT1)…式8
例えば、図14に示された補正後の第2メモリM2において、A/D変換値の図示は省略されているが、仮に、補正後の206.67°CAに対応するA/D変換値が1036であるとし、補正後の208.33°CAに対応するA/D変換値が1039であるとすると、CAm=207°CAについては、式8において、CT1=206.67、AD1=1036、CT2=208.33、AD2=1039となり、その207°CAでのA/D変換値は1036.6と算出されることとなる。
そして、この変形例2の場合には、図10の処理が請求項4の第2記憶処理手段にも相当し、図13の処理と上記式8の処理とが、請求項4の演算処理手段に相当することとなる。
ところで、上記各実施形態及び変形例において、A/D変換器19により燃焼圧信号以外の各種アナログ信号も切り替えてA/D変換する場合(つまり、図1のA/D変換器33をA/D変換器19に統合した場合)には、A/D変換器19の使用方法として、次の2通りの方法が考えられる。
<方法A>
図26(A)に示すように、タイミング発生器17によるタイミング信号が発生したタイミング(タイミング信号の立ち上がりタイミング)で、A/D変換器19に、まず現在の処理対象区間に該当する気筒(この例では第3気筒#3)の燃焼圧信号をA/D変換させる。そして、燃焼圧信号のA/D変換が終了したら、そのA/D変換値を読み込み、その後、次にタイミング信号が立ち上がるまでの間に、他のアナログ信号を順次切り替えてA/D変換器19にA/D変換させる。
より具体的に説明すると、図26(A)の例では、タイミング信号のハイレベル期間が8.3μs、ローレベル期間が25μsであると共に、タイミング信号の立ち上がりタイミングで何れかの気筒の燃焼圧信号をA/D変換し、タイミング信号の立ち下がりタイミングから次の立ち上がりタイミングまでのローレベル期間中に、他のアナログ信号を順次切り替えてA/D変換していくようにしている。
尚、図26において、ch0,ch1,ch2,ch3,ch4…は、燃焼圧信号以外の各アナログ信号を選択してA/D変換している期間を示している。また、上記例において、1つの信号(チャンネル)のA/D変換時間が5μsであるとすると、タイミング信号のローレベル期間中には最大で5回のA/D変換が可能である。一方、上記例では、5000rpmの場合(つまり、1°CA分の時間が33.3μsである場合)を示しているが、例えば1000rpmならば、1°CA分の時間は5倍の166.66μsとなり、タイミング信号のローレベル期間が長くなるため、その分、他のアナログ信号のA/D変換回数を多くすることができる。
<方法B>
図26(B)に示すように、A/D変換器19にタイミング信号の出力間隔よりも短い間隔(この例では5μs)で燃焼圧信号以外のアナログ信号を順次切り替えてA/D変換させると共に、タイミング信号が立ち上がると、そのとき選択されていた信号のA/D変換を中止させて、現在の処理対象区間に該当する気筒(この例では第3気筒#3)の燃焼圧信号をA/D変換させ、その燃焼圧信号のA/D変換が終了した後、先ほど中止した信号のA/D変換を再度実行させる。尚、A/D変換速度が速い場合や燃焼圧信号のA/D変換が多少遅れても良い場合には、上記中止をせずに、現在A/D変換中の信号のA/D変換が終わってから、A/D変換対象を燃焼圧信号に切り替えるようにしてもよい。
次に、第5実施形態のエンジン制御装置について説明する。
第5実施形態のエンジン制御装置11は、第2実施形態又は第4実施形態のエンジン制御装置11と比較すると、次の点が異なっている。
まず、本第5実施形態では、図27に示すように、各気筒#1〜#4の処理対象区間(即ち、燃焼圧信号の値を検出する期間)がオーバーラップするように設定されている。具体的には、各気筒#1〜#4について、BTDC170°CAのタイミングから700°CA分の期間が、その気筒の処理対象区間となっている。よって、タイミング発生器17は常時動作させている。
そして、本第5実施形態では、図28(A)に示すように、タイミング発生器17からタイミング信号が出力されると(タイミング信号が立ち上がると)、A/D変換器19が、各気筒#1〜#4の燃焼圧信号を「#1→#2→#3→#4」の順に切り替えてA/D変換するようになっている。
また、本第5実施形態では、各気筒#1〜#4毎に第2メモリM2が設けられている。
そして、本第5実施形態では、各気筒#1〜#4のそれぞれについて、該当する気筒#X(Xは1〜4の何れか)の処理対象区間の開始タイミングで、該当する気筒#X用の第2メモリM2を対象とした図9のS220の処理(即ち、ポインタMem2A,Mem2Bの初期化)を行うと共に、処理対象区間においてタイミング発生器17からタイミング信号が出力される毎に、図17の処理を行って、A/D変換器19から各気筒#1〜#4の燃焼圧信号のA/D変換値を読み込むと共に、その読み込んだA/D変換値のうち、該当する気筒#XのA/D変換値と、タイミング信号が出力されたときのフリーランタイマ値とを、対応付けて該当する気筒#X用の第2メモリM2に記憶する。
このため、結局、各気筒#1〜#4用の第2メモリM2を1つの第2メモリM2としてみれば、その第2メモリM2には、図28(B)の左側に示すように、タイミング発生器17からタイミング信号が出力されたとき毎の各フリーランタイマ値と、そのフリーランタイマ値が示す時刻にA/D変換器19により順次A/D変換された各気筒#1〜#4の燃焼圧信号のA/D変換値とが、対応付けて記憶されることとなる。つまり、タイミング信号が出力される毎にA/D変換器19から取り込んだ各気筒#1〜#4の燃焼圧信号のA/D変換値が、同じタイミングでのデータとして第2メモリM2に記憶されることとなる。
尚、図28(A)では、前述した<方法A>と同様に、A/D変換器19によって燃焼圧信号以外の他のアナログ信号も切り替えてA/D変換する場合を示しているが、図1に示したように他のアナログ信号を別のA/D変換器33でA/D変換する場合には、各気筒#1〜#4の燃焼圧信号のA/D変換が終了してから次にタイミング信号が立ち上がるまでの間に、A/D変換器19に他のアナログ信号を順次切り替えてA/D変換させる必要はない。また、図28(B)は、図27におけるH2の範囲での状態を例示している。
そして更に、本第5実施形態では、各気筒#1〜#4のそれぞれについて、該当する気筒#Xの処理対象区間の終了タイミングで、該当する気筒#X用の第2メモリM2内の記憶内容を対象として、図12のS420の演算処理(詳しくは、図18の演算処理、又は上記[4−1],[4−2]の演算処理)とS430の処理とを行うが、特に、A/D変換器19が燃焼圧信号をA/D変換する順番がn番目(nは2以上の整数)の気筒については、A/D変換器19が1つの燃焼圧信号をA/D変換するのに要する時間をTad(図28の例では5μs)とすると、図28(B)の左側に示すように、第2メモリM2に記憶された各フリーランタイマ値に代えて、その各フリーランタイマ値に「Tad×(n−1)」を加えた各フリータイマ値を用いて演算処理を行う。
例えば、図28の例では、第1気筒#1の燃焼圧信号に関する演算処理では、第2メモリM2に記憶された各フリーランタイマ値をそのまま使用するが、A/D変換順序が2番目である第2気筒#2の燃焼圧信号に関する演算処理では、第2メモリM2に記憶された各フリーランタイマ値に5μsを加えて使用する。そして、A/D変換順序が3番目である第3気筒#3の燃焼圧信号に関する演算処理では、第2メモリM2に記憶された各フリーランタイマ値に10μsを加えて使用し、同様に、A/D変換順序が4番目である第4気筒#4の燃焼圧信号に関する演算処理では、第2メモリM2に記憶された各フリーランタイマ値に15μsを加えて使用する。
そして、このような第5実施形態によれば、各気筒#1〜#4の燃焼圧信号を1つのA/D変換器19により順次切り替えてA/D変換する構成でありながら、その各燃焼圧信号についての演算処理結果を正確なものにすることができる。演算処理を、燃焼圧信号のA/D変換タイミングをより正確に示すフリーランタイマ値を用いて行うことができるからである。
一方、上記第5実施形態の手法は、第3実施形態及び変形例1に対しても同様に適用することができる。この場合、前述した演算処理を各気筒#1〜#4のそれぞれについて行う場合に、A/D変換器19が燃焼圧信号をA/D変換する順番がn番目(nは2以上の整数)の気筒については、図22のS710〜S740の処理で第2メモリM2に記憶した各フリーランタイマ値を、上記第5実施形態で述べたように補正して(+「Tad×(n−1)」して)使用すれば良い。
以上、本発明の一実施形態について説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々なる態様で実施し得ることは勿論である。
例えば、第1メモリM1への時刻(フリーランタイマ値)の記憶は、処理対象区間だけ行うようにしても良い。
また、前述した各メモリM1〜M4,Mstとしては、物理的に別々のメモリ(RAMなど)を使用しても良いし、1つのメモリの異なる記憶領域を使用しても良い。
また、第1メモリM1と第2メモリM2とに記憶する時刻の情報としては、共通のフリーランタイマ15の値に限らず、互いに同期した異なるタイマの値であっても良い。つまり、第1メモリM1に記憶される時刻の情報と、第2メモリM2に記憶される時刻の情報とに、常に一定の相関関係があれば良いからである。
また、回転信号NEの有効エッジ(所定クランク角度毎に発生するエッジ)は、立ち下がりエッジであっても、立ち上がりと立ち下がりとの両方のエッジでも良い。
また、エンジンとしては、ディーゼルエンジンでも、ガソリンエンジンでも良い。
また、燃焼圧センサP1〜P4からの燃焼圧信号を本装置の外部でデジタル値に変換し、その変換されたデジタル値が通信にて本装置へ送信される構成でも良い。
一方、例えば第1実施形態において、図9のS210では、タイミング発生器17がタイミング信号を出力する時間間隔を、エンジンの回転速度に応じて設定したが、その時間間隔を固定としてA/D変換するようにしても良い。
また更に、その時間間隔を固定(例えば10μs)としてA/D変換を実施し、その変換結果を間引いて図13の演算処理を実施するようにしても良い。つまり、S530では、「M2Ad+y→M2Ad」となり、そのyを、エンジンの回転速度に応じて、高回転時なら小さく、低回転時なら大きくするのである。理由としては、デジタルフィルタ処理を行うことを考えた場合、そのデジタルフィルタのサンプリング間隔(即ち、A/D変換間隔)を変えると、フィルタ係数が変わるため、サンプリング間隔は一定の方が有利であるが、細かすぎると図13の処理が増えてしまうため、A/D変換値を間引いて使用するのである。
そして、ここで述べた第1実施形態に対する変形例は、前述した第2実施形態以降の他の実施形態及び変形例についても同様に適用することができる。
また、前述した各実施形態及び変形例では、演算処理(図13や図18等)を、処理対象区間終了後にまとめて実施するようにしたが、CPU13の処理負荷を分散させるのであれば、回転信号NEの有効エッジ毎に実施するようにしても良い。
第1実施形態のエンジン制御装置の構成を表すブロック図である。 第1メモリに記憶される内容を説明する説明図である。 第1実施形態の第2メモリに記憶される内容を説明する説明図である。 第3メモリに記憶された内容を説明する説明図である。 ピストンの上下動に起因するシリンダ内圧力の変化を説明する図である。 燃焼圧信号の波形の一例を表す図である。 第1実施形態におけるCPUの処理実行タイミングを、各気筒#1〜#4の燃焼圧信号と共に表すタイムチャートである。 回転信号の立ち上がり毎に実行される割り込み処理を表すフローチャートである。 第1実施形態において各気筒のBTDC80°CAのタイミングで実行される処理を表すフローチャートである。 第1実施形態においてタイミング発生器からタイミング信号が出力される毎に実行される処理を表すフローチャートである。 A/D変換器のA/D変換タイミングを説明する説明図である。 第1実施形態において各気筒のATDC80°CAのタイミングで実行される処理を表すフローチャートである。 第1実施形態の演算処理を表すフローチャートである。 図13の演算処理の内容を説明するための説明図である。 第1実施形態の作用を表すタイムチャートである。 第2実施形態の第2メモリに記憶される内容を説明する説明図である。 第2実施形態においてタイミング発生器からタイミング信号が出力される毎に実行される処理を表すフローチャートである。 第2実施形態の演算処理を表すフローチャートである。 図18の演算処理の内容を説明するための説明図である。 第2実施形態の作用を表すタイムチャートである。 第3実施形態において各気筒のBTDC80°CAのタイミングで実行される処理を表すフローチャートである。 第3実施形態の演算処理を表すフローチャートである。 図22の演算処理の内容を説明するための説明図である。 第4実施形態の演算処理の内容を説明するための説明図である。 第4実施形態の作用を表すタイムチャートである。 燃焼圧信号と他のアナログ信号とを切り替えてA/D変換する場合のA/D変換タイミングを説明する説明図である。 第5実施形態におけるCPUの処理実行タイミングを、各気筒#1〜#4の燃焼圧信号と共に表すタイムチャートである。 第5実施形態の作用を説明する説明図である。 従来技術を説明する第1の説明図である。 従来技術を説明する第2の説明図である。 問題を説明する説明図である。
符号の説明
11…エンジン制御装置、13…CPU、15…フリーランタイマ、17…タイミング発生器、19,33…A/D変換器、21,31,35…マルチプレクサ、P1〜P4…燃焼圧センサ、23…クランクセンサ、25…カウンタ処理部、26…角度カウンタ、27…エッジ時刻キャプチャ部、37…スイッチ判定部、39…出力回路、41…通信回路、M1…第1メモリ、M1s…作業用メモリ、M2…第2メモリ、M3…第3メモリ、M4…第4メモリ、Mst…開始時刻記憶メモリ

Claims (9)

  1. エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔毎に、該1パルス間隔を計測して、該計測値に基づき前記クランク軸が前記所定角度よりも小さい一定の微小角度回転する時間間隔を算出し、カウント値がクランク角度を表す角度カウンタを、前記算出した時間間隔でカウントアップさせるカウンタ処理手段と、
    前記回転信号の1パルス間隔時間の最小値よりも短い一定時間毎にタイミング信号を出力するタイミング出力手段と、
    少なくとも前記クランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、前記回転信号に前記特定エッジが発生する毎に、該回転信号の今回の1パルス間隔時間が把握可能な時間情報を、その時間情報がどのクランク角度からどのクランク角度までの1パルス間隔時間に該当するものであるかを識別可能に第1メモリに順次記憶していく第1記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力される毎に、前記エンジンのシリンダ内圧力を検出する燃焼圧センサからの燃焼圧信号の信号値を取り込むと共に、その時点での前記角度カウンタのカウント値と該取り込んだ信号値とを対応させて第2メモリに順次記憶していく第2記憶処理手段と、
    前記第2メモリに前記信号値と対応して記憶された前記各カウント値であって、その各信号値が取り込まれたときのクランク角度をそれぞれ表す各カウント値を、前記第1メモリ内の各時間情報を用いて補正する演算処理を行う演算処理手段と、
    を備えていることを特徴とする燃焼圧信号処理装置。
  2. エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い一定時間毎に、タイミング信号を出力するタイミング出力手段と、
    少なくとも前記クランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、前記回転信号に前記特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に第1メモリに順次記憶していく第1記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力される毎に、前記エンジンのシリンダ内圧力を検出する燃焼圧センサからの燃焼圧信号の信号値を取り込むと共に、その取り込み時の時刻と該取り込んだ信号値とを対応させて第2メモリに順次記憶していく第2記憶処理手段と、
    前記第2メモリに記憶された各時刻と、前記第1メモリに記憶された前記特定エッジ発生時の各時刻とから、前記第2メモリ内の前記各信号値が取り込まれたときのクランク角度を算出する演算処理を行う演算処理手段と、
    を備えていることを特徴とする燃焼圧信号処理装置。
  3. エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い一定時間毎に、タイミング信号を出力するタイミング出力手段と、
    少なくとも前記クランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、前記回転信号に前記特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に第1メモリに順次記憶していく第1記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力される毎に、前記エンジンのシリンダ内圧力を検出する燃焼圧センサからの燃焼圧信号の信号値を取り込み、該取り込んだ信号値を第2メモリに順次記憶していく第2記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が最初に出力された時刻を開始時刻記憶メモリに記憶する開始時刻記憶処理手段と、
    前記開始時刻記憶メモリに記憶された時刻と、前記タイミング出力手段が前記タイミング信号を出力する時間間隔とから、前記処理対象区間において前記タイミング信号が出力された各時刻を算出する時刻算出手段と、
    該時刻算出手段により算出された各時刻と、前記第1メモリに記憶された前記特定エッジ発生時の各時刻とから、前記第2メモリ内の前記各信号値が取り込まれたときのクランク角度を算出する演算処理を行う演算処理手段と、
    を備えていることを特徴とする燃焼圧信号処理装置。
  4. エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔毎に、該1パルス間隔を計測して、該計測値に基づき前記クランク軸が前記所定角度よりも小さい一定の微小角度回転する時間間隔を算出し、カウント値がクランク角度を表す角度カウンタを、前記算出した時間間隔でカウントアップさせるカウンタ処理手段と、
    前記回転信号の1パルス間隔時間の最小値よりも短い一定時間毎にタイミング信号を出力するタイミング出力手段と、
    少なくとも前記クランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、前記回転信号に前記特定エッジが発生する毎に、該回転信号の今回の1パルス間隔時間が把握可能な時間情報を、その時間情報がどのクランク角度からどのクランク角度までの1パルス間隔時間に該当するものであるかを識別可能に第1メモリに順次記憶していく第1記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力される毎に、前記エンジンのシリンダ内圧力を検出する燃焼圧センサからの燃焼圧信号の信号値を取り込むと共に、その時点での前記角度カウンタのカウント値と該取り込んだ信号値とを対応させて第2メモリに順次記憶していく第2記憶処理手段と、
    前記第2メモリに記憶された前記各カウント値及び信号値と、前記第1メモリ内の各時間情報とから、前記クランク軸が前記所定角度よりも小さい一定角度回転したとき毎の前記燃焼圧信号の信号値を算出する演算処理を行う演算処理手段と、
    を備えていることを特徴とする燃焼圧信号処理装置。
  5. エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い一定時間毎に、タイミング信号を出力するタイミング出力手段と、
    少なくとも前記クランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、前記回転信号に前記特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に第1メモリに順次記憶していく第1記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力される毎に、前記エンジンのシリンダ内圧力を検出する燃焼圧センサからの燃焼圧信号の信号値を取り込むと共に、その取り込み時の時刻と該取り込んだ信号値とを対応させて第2メモリに順次記憶していく第2記憶処理手段と、
    前記第2メモリに記憶された前記各時刻及び信号値と、前記第1メモリに記憶された前記特定エッジ発生時の各時刻とから、前記クランク軸が前記所定角度よりも小さい一定角度回転したとき毎の前記燃焼圧信号の信号値を算出する演算処理を行う演算処理手段と、
    を備えていることを特徴とする燃焼圧信号処理装置。
  6. エンジンのクランク軸が所定角度回転する毎にパルスエッジが発生する回転信号に前記所定角度毎のパルスエッジ(以下、特定エッジという)が発生してから該特定エッジが次に発生するまでの1パルス間隔時間の最小値よりも短い一定時間毎に、タイミング信号を出力するタイミング出力手段と、
    少なくとも前記クランク軸が所定の情報収集開始角度からある角度回転するまでの処理対象区間において、前記回転信号に前記特定エッジが発生する毎に、その時の時刻を、該時刻がどのクランク角度での時刻であるかを識別可能に第1メモリに順次記憶していく第1記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力される毎に、前記エンジンのシリンダ内圧力を検出する燃焼圧センサからの燃焼圧信号の信号値を取り込み、該取り込んだ信号値を第2メモリに順次記憶していく第2記憶処理手段と、
    前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が最初に出力された時刻を開始時刻記憶メモリに記憶する開始時刻記憶処理手段と、
    前記開始時刻記憶メモリに記憶された時刻と、前記タイミング出力手段が前記タイミング信号を出力する時間間隔とから、前記処理対象区間において前記タイミング信号が出力された各時刻を算出する時刻算出手段と、
    該時刻算出手段により算出された各時刻及び前記第2メモリに記憶された各信号値と、前記第1メモリに記憶された前記特定エッジ発生時の各時刻とから、前記クランク軸が前記所定角度よりも小さい一定角度回転したとき毎の前記燃焼圧信号の信号値を算出する演算処理を行う演算処理手段と、
    を備えていることを特徴とする燃焼圧信号処理装置。
  7. 請求項2又は請求項5に記載の燃焼圧信号処理装置において、
    前記第2記憶処理手段が複数の燃焼圧信号の信号値を取り込むための手段として、前記タイミング出力手段から前記タイミング信号が出力されると、前記複数の燃焼圧信号を順次切り替えてA/D変換するA/D変換手段を備え、
    前記第2記憶処理手段は、前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力されると、前記A/D変換手段による前記各燃焼圧信号のA/D変換値を該各燃焼圧信号の信号値として取り込むと共に、前記タイミング信号出力時の時刻を前記取り込み時の時刻として、該時刻と今回取り込んだ各燃焼圧信号の信号値とを対応させて前記第2メモリに記憶し、
    前記演算処理手段は、前記各燃焼圧信号について前記演算処理を行うと共に、前記A/D変換手段がA/D変換する順番がn番目(nは2以上の整数)の燃焼圧信号については、前記A/D変換手段が1つの燃焼圧信号をA/D変換するのに要する時間をTadとすると、前記タイミング信号が出力された時毎に前記第2メモリに記憶された各時刻に代えて、その各時刻に「Tad×(n−1)」を加えた各時刻を用いて前記演算処理を行うこと、
    を特徴とする燃焼圧信号処理装置。
  8. 請求項3又は請求項6に記載の燃焼圧信号処理装置において、
    前記第2記憶処理手段が複数の燃焼圧信号の信号値を取り込むための手段として、前記タイミング出力手段から前記タイミング信号が出力されると、前記複数の燃焼圧信号を順次切り替えてA/D変換するA/D変換手段を備え、
    前記第2記憶処理手段は、前記処理対象区間において、前記タイミング出力手段から前記タイミング信号が出力されると、前記A/D変換手段による前記各燃焼圧信号のA/D変換値を該各燃焼圧信号の信号値として取り込んで、その各燃焼圧信号の信号値を同じタイミングでのデータとして前記第2メモリに記憶し、
    前記演算処理手段は、前記各燃焼圧信号について前記演算処理を行うと共に、前記A/D変換手段がA/D変換する順番がn番目(nは2以上の整数)の燃焼圧信号については、前記A/D変換手段が1つの燃焼圧信号をA/D変換するのに要する時間をTadとすると、前記時刻算出手段により算出された各時刻に代えて、その各時刻に「Tad×(n−1)」を加えた各時刻を用いて前記演算処理を行うこと、
    を特徴とする燃焼圧信号処理装置。
  9. 請求項1ないし請求項8の何れか1項に記載の燃焼圧信号処理装置において、
    前記タイミング出力手段が前記タイミング信号を出力する時間間隔は、前記クランク軸の回転速度に反比例して設定されると共に、前記処理対象区間中は変更されないこと、
    を特徴とする燃焼圧信号処理装置。
JP2004028522A 2004-02-04 2004-02-04 燃焼圧信号処理装置 Expired - Fee Related JP4033138B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004028522A JP4033138B2 (ja) 2004-02-04 2004-02-04 燃焼圧信号処理装置
US11/049,969 US7079936B2 (en) 2004-02-04 2005-02-04 Method and apparatus for sampling a sensor signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004028522A JP4033138B2 (ja) 2004-02-04 2004-02-04 燃焼圧信号処理装置

Publications (2)

Publication Number Publication Date
JP2005220796A JP2005220796A (ja) 2005-08-18
JP4033138B2 true JP4033138B2 (ja) 2008-01-16

Family

ID=34805919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004028522A Expired - Fee Related JP4033138B2 (ja) 2004-02-04 2004-02-04 燃焼圧信号処理装置

Country Status (2)

Country Link
US (1) US7079936B2 (ja)
JP (1) JP4033138B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1705352B1 (en) * 2005-03-04 2012-11-21 STMicroelectronics Srl Method and relative device for sensing the air/fuel ratio of an internal combustion engine
US7251990B2 (en) * 2005-03-04 2007-08-07 Stmicroelectronics S.R.L. Method and a relative device for diagnosing misfire or partial combustion conditions in an internal combustion engine
JP4605035B2 (ja) * 2006-01-27 2011-01-05 株式会社デンソー ノックセンサ信号処理装置
US7448254B2 (en) * 2006-02-14 2008-11-11 Kulite Semiconductor Products, Inc. Method and apparatus for measuring knocking in internal combustion engines
DE102006038281B4 (de) * 2006-08-16 2020-03-26 Andreas Stihl Ag & Co. Kg Verfahren zur Bestimmung der Kurbelwellenlage einer umlaufenden Kurbelwelle eines Verbrennungsmotors
JP4532450B2 (ja) * 2006-09-06 2010-08-25 株式会社デンソー エンジン制御用データの処理装置及びエンジン制御装置
US7606655B2 (en) * 2006-09-29 2009-10-20 Delphi Technologies, Inc. Cylinder-pressure-based electronic engine controller and method
JP4640324B2 (ja) * 2006-12-01 2011-03-02 株式会社デンソー 多気筒内燃機関の制御装置
US7320308B1 (en) * 2006-12-05 2008-01-22 Delphi Technologies, Inc. Method of cylinder pressure sensor data/angle capture for low and high resolution
JP2008169728A (ja) * 2007-01-10 2008-07-24 Denso Corp エンジン制御用センサ信号の処理装置
US7440841B2 (en) * 2007-01-12 2008-10-21 Delphi Technologies, Inc. Method of efficiently determining pressure-based combustion parameters for an IC engine
JP4752807B2 (ja) * 2007-05-08 2011-08-17 株式会社デンソー マイクロコンピュータ
ITTO20070589A1 (it) * 2007-08-06 2009-02-07 Global Technology Operations I Sistema di monitoraggio della pressione
EP2022966A3 (en) * 2007-08-06 2009-08-26 GM Global Technology Operations, Inc. Pressure monitoring system
US8909499B2 (en) 2008-07-03 2014-12-09 Freescale Semiconductor, Inc. Processing position-related input data from a rotational machine whose angular speed is variable
JP4586903B2 (ja) * 2008-07-22 2010-11-24 株式会社デンソー エンジン制御装置
US8375777B2 (en) * 2008-11-21 2013-02-19 Bg Soflex Llc Manifold pressure determination device
DE102010029349A1 (de) * 2010-05-27 2011-12-01 Robert Bosch Gmbh Steuereinheit zum Austausch von Daten mit einer Peripherieeinheit, Peripherieeinheit, und Verfahren zum Datenaustausch
JP5691438B2 (ja) * 2010-11-25 2015-04-01 いすゞ自動車株式会社 筒内圧力波形処理装置
JP5392337B2 (ja) 2011-10-18 2014-01-22 株式会社デンソー センサ信号の処理装置
US20130103283A1 (en) * 2011-10-19 2013-04-25 Delphi Technologies, Inc. Digital filter for an event driven engine controller having a variable sample rate
JP5653331B2 (ja) * 2011-10-26 2015-01-14 株式会社小野測器 内燃機関の圧力計測システムおよび圧力計測装置
JP5678868B2 (ja) * 2011-11-11 2015-03-04 株式会社デンソー 信号処理装置
JP5578158B2 (ja) * 2011-11-11 2014-08-27 株式会社デンソー 信号処理装置
JP5626182B2 (ja) * 2011-11-16 2014-11-19 トヨタ自動車株式会社 内燃機関の制御装置
JP5673565B2 (ja) * 2012-01-10 2015-02-18 トヨタ自動車株式会社 内燃機関の制御装置
JP5516622B2 (ja) * 2012-03-14 2014-06-11 株式会社デンソー センサ信号の処理装置
JP5799891B2 (ja) * 2012-05-18 2015-10-28 株式会社デンソー Ad変換処理装置
DE102014101305A1 (de) * 2014-02-03 2015-08-06 Heraeus Medical Gmbh Vorrichtung zum Lagern und Mischen von Knochenzement
JP6332069B2 (ja) * 2015-02-09 2018-05-30 株式会社デンソー センサ信号処理装置
KR102085896B1 (ko) * 2018-12-07 2020-03-06 현대오트론 주식회사 파워트레인 엔진 정밀 제어방법 및 이에 의해 운용되는 자동차
CN113204011B (zh) * 2021-03-29 2022-05-20 上海星秒光电科技有限公司 一种脉冲时间输出方法、装置、信号处理设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0810362B1 (en) * 1995-10-02 2004-01-02 Yamaha Hatsudoki Kabushiki Kaisha Method for controlling an internal combustion engine
US5778857A (en) * 1995-10-02 1998-07-14 Yamaha Hatsudoki Kabushiki Kaisha Engine control system and method
JPH09273437A (ja) 1995-11-10 1997-10-21 Yamaha Motor Co Ltd エンジンの制御方法
JPH10196429A (ja) * 1997-01-10 1998-07-28 Toyota Motor Corp 内燃機関の制御装置
JP2000186611A (ja) * 1998-12-21 2000-07-04 Saginomiya Seisakusho Inc ディーゼル機関の燃焼圧力データ収集装置およびディーゼル機関の燃焼圧力データ解析装置
JP3539327B2 (ja) 2000-01-18 2004-07-07 株式会社デンソー エンジン制御装置

Also Published As

Publication number Publication date
US20050166665A1 (en) 2005-08-04
US7079936B2 (en) 2006-07-18
JP2005220796A (ja) 2005-08-18

Similar Documents

Publication Publication Date Title
JP4033138B2 (ja) 燃焼圧信号処理装置
EP2495421B1 (en) Misfire detection device for internal combustion engine
US4461257A (en) Method and system for controlling engine ignition timing
JP2948828B2 (ja) エンジンのノック検出装置
JP4532450B2 (ja) エンジン制御用データの処理装置及びエンジン制御装置
JP2623921B2 (ja) 内燃機関の失火検出装置
JP2606019B2 (ja) 内燃機関の失火検出装置
JP4039295B2 (ja) ノッキング検出装置
JPS6132498B2 (ja)
JP4243600B2 (ja) 内燃機関の燃焼状態判定装置
EP0967379B1 (en) Engine speed calculating apparatus
JP2014009591A (ja) エンジンの燃焼状態解析システム
JPH08165950A (ja) エンジンの燃焼状態検出装置
JP2527798B2 (ja) 内燃機関の燃焼状態検出装置
JP2000110652A (ja) 内燃エンジンのノッキング検出装置
JP3777963B2 (ja) エンジン制御装置
JP2675921B2 (ja) 内燃機関の失火検出装置
JP2005201236A (ja) 内燃機関の筒内圧検出装置
JP4281037B2 (ja) 内燃機関用点火装置
JPS6314766B2 (ja)
JP3550153B2 (ja) 内燃エンジンに係る能動振動制御装置の参照信号生成装置
JP2007023974A (ja) 内燃機関の図示平均有効圧の推定方法
JP2023017273A (ja) 内燃機関制御装置
JP4407816B2 (ja) エンジン用点火装置
JPS59150976A (ja) 点火時期制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071002

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071015

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101102

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4033138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111102

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121102

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131102

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees