JP4399997B2 - エンジン制御装置 - Google Patents

エンジン制御装置 Download PDF

Info

Publication number
JP4399997B2
JP4399997B2 JP2001078562A JP2001078562A JP4399997B2 JP 4399997 B2 JP4399997 B2 JP 4399997B2 JP 2001078562 A JP2001078562 A JP 2001078562A JP 2001078562 A JP2001078562 A JP 2001078562A JP 4399997 B2 JP4399997 B2 JP 4399997B2
Authority
JP
Japan
Prior art keywords
signal
value
count
timing
counter
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 - Lifetime
Application number
JP2001078562A
Other languages
English (en)
Other versions
JP2002276453A (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 JP2001078562A priority Critical patent/JP4399997B2/ja
Publication of JP2002276453A publication Critical patent/JP2002276453A/ja
Application granted granted Critical
Publication of JP4399997B2 publication Critical patent/JP4399997B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、4サイクルエンジンを制御するエンジン制御装置に関し、特にエンジンの気筒判別に関するものである。
【0002】
【従来の技術】
一般に、エンジンを制御するエンジン制御装置においては、図10に示す如く、エンジンのクランク軸の回転に応じてクランク角センサ1から出力されるクランク角信号(回転信号とも呼ばれる)NEと、クランク軸の回転に対し1/2の比率で回転するエンジンのカム軸の回転に応じてカム角センサ2から出力される気筒判別用信号Gとが入力される。そして、信号処理回路3が、上記両信号NE,Gから気筒判別用の各種信号NE2,TDC,G2を生成してマイクロコンピュータ(以下、CPUという)4に出力し、CPU4は、その信号処理回路3からの信号NE2,TDC,G2に基づき気筒判別を行ってエンジンを制御するようにしている。
【0003】
ここで、カム角センサとして、電磁ピックアップ(MPU)式のセンサを用いた場合の気筒判別方法の従来例について、図11を用いて説明する。
まず、この例において、クランク角センサから出力されるクランク角信号NEは、クランク軸の回転位置が予め設定された1つの特定位置でない時には、クランク軸が10°回転する期間を1周期としたパルス信号となり、クランク軸の回転位置が特定位置に来た時には、クランク軸が30°回転する期間を1周期とした欠歯信号Kとなる。つまり、クランク角信号NEは、クランク軸が10°回転する毎(10°CA毎)にローレベル→ハイレベル→ローレベルといった具合にパルス状に変化すると共に、クランク軸の回転位置が特定位置に来た時には、立ち上がりの間隔が3倍長くなり、その3倍長くなった期間が欠歯信号Kとなる。そして、この欠歯信号Kは、クランク軸が1回転する毎(360°CA毎)に発生する。
【0004】
また、この例において、MPU式のカム角センサから出力される気筒判別用信号Gは、カム軸が1回転する毎(即ちクランク軸が2回転する毎)に、且つ、クランク角信号NEが欠歯信号Kとなって10°CA毎のパルス信号に戻るタイミングからクランク軸が120°回転するまでの期間(120°CA分の期間)内に、ローレベル→ハイレベル→ローレベルといった具合にパルス状に変化する。
【0005】
次に、エンジン制御装置においては、信号処理回路が、上記クランク角信号NE及び気筒判別用信号Gと、エンジンを始動させるためのスタータスイッチがオンされた時にハイレベルとなるスタータ信号STAとに基づいて、下記の[S1−1]〜[S1−4]の動作を行う。
【0006】
[S1−1]:まず、信号処理回路は、図11の時刻t1に示すように、スタータ信号STAがハイレベルになると(スタータスイッチがオンされると)、クランク角信号NE中における欠歯信号Kの検出動作(即ち、クランク角信号NEが欠歯信号Kになったことを検出する動作)を開始する。
【0007】
[S1−2]:そして、時刻t2以降に示すように、クランク角信号NEが欠歯信号Kになったことを最初に検出すると、以後、クランク角信号NEを分周して、クランク軸が30°回転する期間を1周期とした(換言すれば、クランク軸が30°回転する毎(30°CA毎)に立ち上がる)第2パルス信号としての30°CA信号NE2を生成し、その30°CA信号NE2をCPUへ出力すると共に、欠歯信号Kを検出してから30°CA信号NE2の所定周期分の期間(この例では、4周期分の期間であり120°CA分の期間)を、カム角センサからの気筒判別用信号Gが立ち上がるか否かの判定区間HKとして設定する。
【0008】
尚、このような判定区間HKを設けているのは、欠歯信号Kが発生するタイミングと気筒判別用信号Gが立ち上がるタイミングとの時間差が、センサの個体差や経時変化、或いは更に、カム軸を操作して吸排気バルブの開閉タイミングを可変にする制御などによって、常に一定とはならないためである。
【0009】
[S1−3]:また、信号処理回路は、図11の時刻t2’,t3’t4’,…,t7’に示すように、上記判定区間HKの終了タイミング毎に30°CA分だけアクティブレベル(この例ではローレベル)となる基準位置信号TDCを生成して、その基準位置信号TDCをCPUに出力する。よって、この基準位置信号TDCは、クランク軸の回転位置が欠歯信号Kの発生する特定位置から120°進んだ基準位置に来た時に、30°CA分だけローレベルとなる。
【0010】
[S1−4]:そして更に、信号処理回路は、上記基準位置信号TDCがアクティブレベルとなる毎にレベルが反転する第2気筒判別用信号G2を、以下の手順で生成してCPUへ出力する。
即ち、信号処理回路は、初期状態では第2気筒判別用信号G2をローレベルにしており、上記判定区間HK内で気筒判別用信号Gが立ち上がった場合には、その判定区間HKの終了時の基準位置信号TDCの立ち下がりタイミングにて、第2気筒判別用信号G2をハイレベルに設定し(図11の時刻t2’,t4’,t6’参照)、逆に、判定区間HK内で気筒判別用信号Gが立ち上がらなかった場合には、その判定区間HKの終了時の基準位置信号TDCの立ち下がりタイミングにて、第2気筒判別用信号G2をローレベルに設定する(図11の時刻t3’,t5’,t7’参照)。
【0011】
一方、エンジン制御装置において、CPUは、図11の時刻t1に示すように、スタータ信号STAがハイレベルになると、内部のクランクカウンタの値(カウント値)CNTを−1に設定し、以後、信号処理回路からの30°CA信号NE2が立ち上がる毎に起動される処理により、下記の[C1−1]〜[C1−4]の手順でクランクカウンタの値CNTを更新する。尚、クランクカウンタの値CNTは、クランク軸の2回転分の累積回転角度であるクランク角を、30°CA信号NE2の周期に相当する30°を分解能として示すものであり、この例では0から23までの値となる。
【0012】
[C1−1]:信号処理回路からの基準位置信号TDCがハイレベルであり、且つ、現在のクランクカウンタの値CNTが0よりも小さければ(即ち−1であれば)、クランクカウンタの値CNTを変えずに、そのまま処理を終了する。
[C1−2]:信号処理回路からの基準位置信号TDCがハイレベルであり、且つ、現在のクランクカウンタの値CNTが0以上であれば、クランクカウンタの値CNTを1つカウントアップ(+1)させる。
【0013】
[C1−3]:これに対して、信号処理回路からの基準位置信号TDCがローレベルであれば、信号処理回路からの第2気筒判別用信号G2の論理レベルを読み取り、その読み取った第2気筒判別用信号G2の論理レベルがハイレベルであれば、クランクカウンタの値CNTを強制的に0へと初期化する。
【0014】
[C1−4]:また、信号処理回路からの基準位置信号TDCがローレベルであり、且つ、第2気筒判別用信号G2の論理レベルもローレベルであれば、現在のクランクカウンタの値CNT(現在値)が0〜23の中間値である12以上か否かを判定して、現在値が12よりも小さければ、クランクカウンタの値CNTを12にし、逆に現在値が12以上であれば、クランクカウンタの値CNTを0にする、といった補正処理を行う。
【0015】
即ち、CPUは、信号処理回路からの30°CA信号NE2が立ち上がる毎に、下記の表1の規則でクランクカウンタの値CNTを更新している。尚、表1及び後述する他の表において、CNT(n-1) は、今回の処理で更新する前のクランクカウンタの値(現在値)を示しており、CNT(n) は、今回の処理で更新する新たなクランクカウンタの値(今回値)を示している。また、「L」はローレベルを示し、「H」はハイレベルを示している。
【0016】
【表1】
Figure 0004399997
【0017】
このため、図11の時刻t2〜t2’に示すように、スタータ信号STAがハイレベルになってからの最初の判定区間HKで気筒判別用信号Gが立ち上がったならば、その判定区間HKが終了する時刻t2’にて、信号処理回路からCPUへの基準位置信号TDCがローレベルになると共に、第2気筒判別用信号G2がハイレベルとなり、CPUでは、クランクカウンタの値CNTが0に初期化される。
【0018】
そして以後、CPUにおいては、クランクカウンタの値CNTが、0→1→2→3…とカウントアップされていき、時刻t3’に示すように、次の欠歯信号Kの発生に伴う判定区間HKの終了タイミングでは、信号処理回路からの第2気筒判別用信号G2が時刻t2’とは反対のローレベルとなるため、その時刻t3’では、クランクカウンタの値CNTを12にする補正処理が行われる。
【0019】
そして更に、時刻t4’に示すように、次の欠歯信号Kの発生に伴う判定区間HKの終了タイミングでは、第2気筒判別用信号G2が時刻t3’とは反対のハイレベルとなるため、その時刻t4’では、クランクカウンタの値CNTが0に初期化され、その後は、図11の時刻t4’以降に示すように、時刻t2’〜時刻t4’と同様の動作が繰り返される。
【0020】
そして、CPUは、このように周回されるクランクカウンタの値CNTの値に基づいて、点火すべき気筒を判別する。具体例を挙げると、エンジンが直列4気筒エンジンであるとすると、例えば、クランクカウンタの値CNTが0の時に、第1気筒#1の上死点前(BTDC)30°CAと判断し、クランクカウンタの値CNTが6の時に、第2気筒#2のBTDC30°CAと判断し、クランクカウンタの値CNTが12の時に、第3気筒#3のBTDC30°CAと判断し、クランクカウンタの値CNTが18の時に、第4気筒#4のBTDC30°CAと判断する。
【0021】
尚、CPUが最初に基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ハイであることを検出した時だけでなく、その後も、同じ条件が成立する毎にクランクカウンタの値CNTを0に初期化するようにしているのは、万一、クランクカウンタの値CNTがノイズ等の影響によって正常値から増減しても、それを速やかに正常値へと戻せるようにするためである。また、CPUが基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ローであることを検出した時に、クランクカウンタの値CNTを、その時の値に応じて(詳しくは12以上か否かに応じて)0又は12に補正するようにしているのは、ノイズ等の影響によって信号処理回路からCPUへの30°CA信号NE2が数発欠落したとしても、クランクカウンタの値CNTを正常値へと復帰させることができるようにするためである。
【0022】
一方、近年では、カム角センサとして、カム軸の回転位置に応じて出力レベルがハイレベルとローレベルとに変化する磁気抵抗素子(MRE)式のセンサを採用する方向に移行している。
そこで次に、カム角センサとして、MRE式のセンサを用いた場合の気筒判別方法の従来例について、図12を用いて説明する。
【0023】
まず、図12の例において、クランク角センサから出力されるクランク角信号NEは、図11の場合と同じであるが、MRE式のカム角センサから出力される気筒判別用信号Gは、カム軸の回転位置に応じて、クランク角センサからのクランク角信号NEがパルス信号となっている期間中に論理レベルが1回反転するようになっている。このため、気筒判別用信号Gは、クランク軸が2回転する期間(720°CAの期間)を1周期とし、クランク角信号NEが欠歯信号Kとなるタイミングでは、その各タイミング毎に交互に異なった論理レベルとなる。
【0024】
次に、エンジン制御装置においては、信号処理回路が、上記クランク角信号NE及び気筒判別用信号Gと、スタータ信号STAとに基づいて、下記の[S2−1]〜[S2−4]の動作を行う。
[S2−1]:まず、MRE式のカム角センサを用いた場合でも、信号処理回路は、図12の時刻t1に示す如くスタータ信号STAに立ち上がりが生じると、クランク角信号NE中における欠歯信号Kの検出動作を開始する。
【0025】
[S2−2]:そして、この場合でも、信号処理回路は、図12の時刻t2以降に示すように、クランク角信号NEが欠歯信号Kになったことを最初に検出すると、以後、クランク角信号NEを分周して、30°CA毎に立ち上がる第2パルス信号としての30°CA信号NE2を生成し、その30°CA信号NE2をCPUへ出力する。
【0026】
[S2−3]:また、信号処理回路は、図12の時刻t2’,t3’t4’,…,t7’に示す如く、欠歯信号Kを検出してから30°CA信号NE2の所定周期分の期間(この例では、4周期分の期間であり120°CA分の期間)が経過する毎に、30°CA分だけアクティブレベル(この例ではローレベル)となる基準位置信号TDCを生成して、その基準位置信号TDCをCPUに出力する。よって、この場合でも、CPUへの基準位置信号TDCは、クランク軸の回転位置が欠歯信号Kの発生する特定位置から120°進んだ基準位置に来た時に、30°CA分だけローレベルとなる。
【0027】
[S2−4]:そして更に、信号処理回路は、上記基準位置信号TDCがアクティブレベルとなる毎にレベルが反転する第2気筒判別用信号G2を、以下の手順で生成してCPUへ出力する。
即ち、まず、信号処理回路は、初期状態では第2気筒判別用信号G2をローレベルにしており、また、図12にて「○」印で示すように、クランク角信号NEが欠歯信号Kになったことを検出する毎に気筒判別用信号Gの論理レベルを読み取る。そして、信号処理回路は、図12の時刻t2’,t3’,t4’,…,t7’に示す如く、基準位置信号TDCの立ち下がりタイミング毎に、第2気筒判別用信号G2を、そのタイミングの直前の欠歯信号Kの検出時に読み取った気筒判別用信号Gの論理レベルとは反対のレベルに設定する(図12における斜めの点線矢印参照)。
【0028】
このため、図12の例において、信号処理回路からCPUに出力される基準位置信号TDCと第2気筒判別用信号G2は、MPU式のカム角センサを用いた場合(図11)と同様に変化することとなる。
そして、エンジン制御装置において、CPUは、図12の時刻t1に示すように、スタータ信号STAに立ち上がりが生じると、内部のクランクカウンタの値(カウント値)CNTを−1に設定し、以後、信号処理回路からの30°CA信号NE2が立ち上がる毎に起動される処理により、MPU式のカム角センサを用いた場合の前述した[C1−1]〜[C1−4]と同じ手順(即ち表1の規則)でクランクカウンタの値CNTを更新する。尚、この場合においても、クランクカウンタの値CNTは、クランクを、30°CA信号NE2の周期に相当する30°を分解能として示すものであり、0から23までの値となる。
【0029】
このため、図12の時刻t2に示すように、スタータ信号STAがハイレベルになってから最初の欠歯信号Kの発生タイミングで、気筒判別用信号Gがローレベルであったならば、その時点の120°CA後である時刻t2’にて、信号処理回路からCPUへの基準位置信号TDCがローレベルになると共に、第2気筒判別用信号G2がハイレベルとなり、CPUでは、上記[C1−3]の処理によりクランクカウンタの値CNTが0に初期化される。
【0030】
そして以後、CPUにおいては、クランクカウンタの値CNTが、信号処理回路からの30°CA信号NE2が立ち上がる毎に0→1→2…とカウントアップされていき、時刻t3’に示す如く基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ローになった時には、上記[C1−4]の処理により、クランクカウンタの値CNTが、その時の現在値に応じて12又は0(図12の例では12)に補正され、その後、時刻t4’に示す如く、再び基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ハイになると、クランクカウンタの値CNTは上記[C1−3]の処理により0に初期化される。
【0031】
その後は、図12の時刻t4’以降に示すように、時刻t2’〜時刻t4’と同様の動作が繰り返される。そして、CPUは、MPU式のカム角センサを用いた場合と同様に、クランクカウンタの値CNTの値に基づいて、点火すべき気筒を判別する。
【0032】
【発明が解決しようとする課題】
ところで、図11,図12を用いて説明した従来の各エンジン制御装置では、エンジンの始動検知時から早期に気筒判別を行うことができないという欠点がある。
【0033】
つまり、スタータスイッチがオンされてスタータ信号STAに立ち上がりが生じた後、クランク角信号NEに最初に欠歯信号Kが発生しても、その時点から基準位置信号TDCが立ち下がる120°CA後のタイミングまでは、クランクカウンタの値CNTが確定されず、その分、クランクカウンタのカウント動作の開始が遅れると共に、気筒判別の開始が遅れてしまう。
【0034】
このため、従来のエンジン制御装置では、エンジンの制御性(特に、始動制御の性能)を向上させるのに限界が生じていた。
そこで、本発明は、エンジンの始動検知時から早期に気筒判別を行うことができるエンジン制御装置を提供することを目的としている。
【0035】
【課題を解決するための手段及び発明の効果】
上記目的を達成するためになされた請求項1に記載の本発明のエンジン制御装置には、エンジンのクランク軸の回転に応じて第1の信号出力手段から出力されるクランク角信号と、クランク軸の回転に対し1/2の比率で回転する回転軸の回転に応じて第2の信号出力手段から出力される気筒判別用信号とが入力される。
【0036】
そして、第1の信号出力手段から出力されるクランク角信号は、クランク軸の回転位置が予め設定された1つの特定位置でない時には、クランク軸が所定の単位角度回転する期間を1周期としたパルス信号となり、クランク軸の回転位置が前記特定位置に来た時には、クランク軸が前記単位角度よりも大きい所定角度回転する期間を1周期とした欠歯信号となる。また、第2の信号出力手段から出力される気筒判別用信号は、上記クランク角信号がパルス信号となっている期間中に論理レベルが変化することにより、クランク角信号が欠歯信号となるタイミングでは、その各タイミング毎に交互に異なった論理レベルとなる。
【0037】
また更に、本発明のエンジン制御装置は、カウント値がクランク軸の2回転分の累積回転角度であるクランク角を示すカウンタ(所謂クランクカウンタ)と、そのカウンタのカウント値を繰り返し周回させるカウント制御手段とを備えている。
そして、カウント制御手段は、エンジンの始動を検知すると共に、該エンジンの始動を検知してから最初にクランク角信号が欠歯信号になったことを検出すると、カウンタのカウント値を、その時の気筒判別用信号の論理レベル(即ち、エンジンの始動を検知してから最初にクランク角信号が欠歯信号になったことを検出した時に読み取った気筒判別用信号の論理レベルであり、以下、始動直後検出レベルという)に応じた所定の計数開始値であって、検出した欠歯信号の発生タイミングでのクランク角に対応する計数開始値に初期設定する始動時用処理を行う
【0038】
具体的には、請求項2に記載の如く、カウント制御手段は、始動時用処理として、始動直後検出レベルがローレベルの場合には、カウンタのカウント値を第1の計数開始値に初期設定し、逆に、始動直後検出レベルがハイレベルの場合には、カウンタのカウント値を、上記第1の計数開始値とはクランク軸の1回転分(360°CA分)に相当する値だけ異なった第2の計数開始値に初期設定する。
【0039】
そして更に、カウント制御手段は、カウンタのカウント値を計数開始値に初期設定した後は、カウンタのカウント値を、上記クランク角信号に基づき更新してクランク軸の2回転分に相当する値の範囲で周回させる。具体的には、クランク角信号に基づいて、クランク軸がカウンタのカウント値の分解能に相当する角度回転したことを検出すると共に、その検出時毎に、カウンタのカウント値をカウントアップ或いはカウントダウンさせる。
【0040】
そして、本発明のエンジン制御装置は、上記カウンタのカウント値に基づいてエンジンの気筒判別を行うが、その気筒判別用の処理を、カウント制御手段がカウンタのカウント値を計数開始値に初期設定した時点(即ち、カウント制御手段によりエンジンの始動が検知されて最初にクランク角信号が欠歯信号になった時)から開始する。
【0041】
つまり、第2の信号出力手段から出力される気筒判別用信号は、図12に例示した気筒判別用信号Gと同様のものであり、クランク角信号が欠歯信号となる360°CA毎のタイミングでは、その各タイミング毎に交互に異なった論理レベルとなるため、クランク角信号が欠歯信号になった時の気筒判別用信号の論理レベルを見れば、ランク角特定することができる。
【0042】
そこで、本発明のエンジン制御装置では、エンジンの始動を検知してから最初にクランク角信号が欠歯信号になったことを検出した時(図12の時刻t2に相当する時)に、その時の気筒判別用信号の論理レベルに応じて、その論理レベルから特定されるクランク角に応じた値を、カウンタに計数開始値としてセットし、更に、そのセット時から、カウンタのカウント値に基づく気筒判別用の処理を行うようにしている。
【0043】
このため、本発明のエンジン制御装置によれば、エンジンの始動を検知してから最初にクランク角信号が欠歯信号となるタイミングから、カウンタのカウント値を確定させて気筒判別を開始することができる。よって、エンジンの始動を検知した時から従来装置よりも早期に気筒判別を行うことができ、その結果、エンジンの制御性(特に、始動制御の性能)を向上させることができる。
【0044】
ところで、この種のエンジン制御装置では、一般に、エンジンの各気筒に関する該各気筒毎の制御処理を、本発明でのカウンタに相当するクランクカウンタのカウント値に応じて択一的に切り替えて実行するように構成される。そして、この場合、何れかの気筒に関する制御処理の実行期間から他の気筒に関する制御処理の実行期間への切り替わりタイミングは、クランク角信号が欠歯信号となるタイミング(以下、欠歯タイミングともいう)ではなく、その欠歯タイミングからクランク軸が所定の一定角度だけ回転したタイミングを基準にして設定されることが多い。
【0045】
また、本発明のエンジン制御装置においても、図12を用いて説明した従来装置のように、クランク角信号に基づき特定のクランク角になったことを検知する毎に、カウンタのカウント値を、その特定のクランク角に対応した正常値に設定するための正常化処理(前述の初期化或いは補正処理に相当)を実施することが好ましい。つまり、万一、カウンタのカウント値がノイズ等の影響によって正常な値から外れても、それを正常値へと戻せるからである。
【0046】
ここで、各気筒毎の制御処理をクランクカウンタのカウント値に応じて択一的に切り替えて実行すると共に、その各制御処理の実行期間の切り替わりタイミングが、欠歯タイミングとは異なるタイミングを基準にして設定されている場合に、各欠歯タイミングで上記正常化処理を行うように構成すると、クランクカウンタのカウント値がノイズ等の影響によってずれてしまった場合に、各気筒毎の制御処理を正常に実行できなくなる期間が比較的長くなってしまうという欠点がある。
【0047】
具体例を挙げて説明すると、まず、例えば図12を用いて説明したエンジン制御装置において、CPUは、図13に示すように、クランクカウンタの値CNTが0〜5の期間に、第1気筒#1の点火に関する学習処理(例えば、各気筒毎に設けられたノックセンサのうち、該当する気筒のノックセンサから信号を読み取って、その気筒の点火時期の補正値等を学習演算する制御処理)を実行し、クランクカウンタの値CNTが6〜11の期間に、第2気筒#2の点火に関する学習処理を実行し、クランクカウンタの値CNTが12〜17の期間に、第3気筒#3の点火に関する学習処理を実行し、クランクカウンタの値CNTが18〜23の期間に、第4気筒#4の点火に関する学習処理を実行するものとする。
【0048】
つまり、この例では、各気筒毎の制御処理の実行期間の切り替わりタイミングが、欠歯タイミングから120°CA後のタイミング(基準位置信号TDCがローレベルとなるタイミング)を基準にして設定されている。尚、図13は、図12の下段と同じ状況を表している。
【0049】
ここで、この例において、図14に例示するように、図12の時刻t5に相当する欠歯タイミングの時刻tnで、気筒判別用信号Gにローレベルのノイズが発生したとする。
すると、その時刻tnから120°CA後の基準位置信号TDCの立ち下がりりタイミングでは、前述した[S2−4]の作用により、第2気筒判別用信号G2がハイレベルのままとなり、その結果、クランクカウンタの値CNTが、前述した[C1−3]の初期化により、誤って0に設定されてしまう。そして、クランクカウンタの値CNTは、本来12,13,…,23とカウントアップされるはずが、0,1,…11とカウントアップされていき、基準位置信号TDCの次の立ち下がりタイミングで、上記[C1−3]の初期化により、正しい値の0に戻されることとなる。
【0050】
よって、この場合には、図14の時刻tnから120°CA後の基準位置信号TDCの立ち下がりタイミングから、その基準位置信号TDCが次に立ち下がるまでの360°CA分の期間(図14にて「誤学習」と記した期間)であって、本来は第3気筒#3に関する学習処理と第4気筒#4に関する学習処理とが順次行われるべき期間に、第1気筒#1に関する学習処理と第2気筒#2に関する学習処理とが誤って実施されることとなる。
【0051】
一方、クランクカウンタの値CNTに対する正常化処理として、前述した[C1−3]の初期化及び[C1−4]の補正処理に代えて、例えば、クランク角信号NEが欠歯信号になったことを検出した時に、その時の気筒判別用信号Gの論理レベルに応じて、その論理レベルがローであったならば、クランクカウンタの値CNTを強制的に20に設定し、逆に上記論理レベルがハイであったならば、クランクカウンタの値CNTを強制的に8に設定する、といった処理を行うようにしても、図13と同様の動作が得られる。
【0052】
但し、このように構成した場合、図15に例示するように、図12の時刻t5に相当する欠歯タイミングの時刻tnで、気筒判別用信号Gにローレベルのノイズが発生したとすると、クランクカウンタの値CNTは、その時刻tnで誤って20に設定され、その後、次の欠歯タイミングで20に設定されるまで、正常な値から外れた状態でカウントアップされることとなる。
【0053】
そして、この場合には、図15の時刻tnから次の欠歯タイミングまでの360°CA分の期間(図15にて「誤学習」と記した期間)に、第4気筒#4に関する学習処理と第1気筒#1に関する学習処理と第2気筒#2に関する学習処理とが誤って実施されてしまうだけでなく、時刻tnの直前に正常に実施されていた第2気筒#2に関する学習処理が中途半端に終了されてしまうと共に、時刻tnの次の欠歯タイミングで第4気筒#4に関する学習制御が中途半端に開始されてしまう。
【0054】
つまり、通常時において、欠歯タイミング毎にカウント値に対する正常化処理を実施するように構成すると、図14と図15との比較からも分かるように、各気筒毎の制御処理を適切に行うことができない期間が長くなってしまうのである。
【0055】
そこで、請求項のエンジン制御装置では、エンジンの各気筒に関する該各気筒毎の制御処理を、前記カウンタのカウント値に応じて択一的に切り替えて実行するように構成されていると共に、クランク角信号が欠歯信号になってからクランク軸が所定の一定角度だけ回転した基準タイミングが、何れかの気筒に関する制御処理を実行する期間から他の気筒に関する制御処理を実行する期間への切り替わりタイミングとなっている
【0056】
そして更に、カウント制御手段は、カウンタのカウント値を計数開始値に初期設定した後は、欠歯タイミングではなく、クランク角信号に基づき前記基準タイミング(クランク角信号が欠歯信号になってからクランク軸が所定の一定角度だけ回転したタイミング)が到来したことを検知した時に、カウンタのカウント値を、その基準タイミングに対応した正常値に設定するための正常化処理を行うようになっている。
【0057】
このため、カウンタのカウント値がノイズ等の影響によって正常な値から外れてしまった場合に、各気筒毎の制御処理の実行状態(実行順序や実行期間)に与える影響を最小限に抑えつつ、そのカウンタのカウント値を正常値へと戻すことができる
【0058】
尚、正常化処理としては、前述した[C1−3]のように、カウンタのカウント値を無条件に設定するものでも良いし、前述した[C1−4]のように、カウンタの値を、その現在値に応じて設定するものでも良い。つまり、正常化処理は、カウンタのカウント値を、通常のカウントとは別に、正常値と思われる値に設定し直す処理であれば良い。
【0059】
【発明の実施の形態】
以下、本発明が適用された実施形態のエンジン制御装置について、図面を用いて説明する。
まず図1は、第1実施形態のエンジン制御装置(以下、ECUという)10の構成を表す構成図である。尚、このECU10は、例えば直列4気筒の4サイクルエンジンを制御対象としており、4個の気筒に夫々対応した燃料噴射弁11〜14及び点火コイル21〜24を駆動してエンジンを制御する。そして、このECU10は、前述した図12とほぼ同様の要領で気筒判別を行うものである。
【0060】
図1に示すように、ECU10は、エンジンを制御するための各種処理を行うCPU(マイクロコンピュータ)31と、入力バッファ33,35,37と、A/D変換器39と、出力バッファ41と、信号処理回路43とを備えている。
そして、エンジンに取り付けられたクランク角センサ47から出力されるクランク角信号NEが、入力バッファ33を介して信号処理回路43に入力され、また、エンジンに取り付けられたカム角センサ49から出力される気筒判別用信号Gが、入力バッファ35を介して信号処理回路43に入力される。
【0061】
ここで、クランク角センサ47は、第1の信号出力手段に相当するものであり、エンジンのクランク軸に固定されたロータ47aと、そのロータ47aの外周に対向して設けられ、該ロータ47aの外周に10°CAの間隔で形成された歯を検出してパルス信号を出力する光電式やホールIC式の信号出力部47bとからなる。そして、上記ロータ47aの外周には、歯が2個欠損した欠歯部が設けられている。
【0062】
このため、クランク角センサ47から入力バッファ33を介して信号処理回路43に入力されるクランク角信号NEは、前述の図12に示したように、クランク軸が10°回転する毎(10°CA毎)にローレベル→ハイレベル→ローレベルといった具合にパルス状に変化すると共に、クランク軸の回転位置が上記ロータ47aの欠歯部に対応する1つの特定位置(即ち、ロータ47aの欠歯部が信号出力部47bに対向する位置)に来た時には、立ち上がりの間隔が3倍長くなる。そして、10°CA毎にパルス状に変化する部分がパルス信号となり、また、立ち上がりの間隔が3倍長くなる(即ちパルス信号が2回欠落する)期間が360°CA毎に発生して、この期間が欠歯信号Kとなっている(図2及び図4参照)。
【0063】
また、カム角センサ49は、第2の信号出力手段に相当するものであり、クランク軸の回転に対し1/2の比率で回転するエンジンのカム軸に固定されたロータ49aと、そのロータ49aの回転に応じて、該ロータ49aが1/2回転する毎(即ち360°CA毎)に論理レベルが反転する気筒判別用信号Gを出力する磁気抵抗素子(MRE)を有した信号出力部49bとからなる。
【0064】
そして、カム角センサ49から入力バッファ35を介して信号処理回路43に入力される気筒判別用信号Gは、前述の図12に示したように、クランク角センサ47からパルス信号が出力されている期間中に論理レベルが1回反転して、クランク角センサ47から上記欠歯信号Kが出力されるタイミングでは、その各タイミング毎に交互に異なった論理レベルとなる。
【0065】
一方、ECU10内のCPU31には、エンジンを始動させるためのスタータスイッチ51がオンされた時にハイレベルとなるスタータ信号STAや、アクセルペダルが全閉の時にオンされるアイドルスイッチ53からの信号など、エンジンの運転状態を示す各種スイッチ信号が、入力バッファ37を介して入力される。
【0066】
そして更に、CPU31には、吸入空気量を検出するエアフロメータ55,スロットル操作量を検出するスロットルセンサ57,及び冷却水温を検出する水温センサ59などの各種センサからの信号が、A/D変換器39を介して入力される。
【0067】
また、信号処理回路43には、入力バッファ37からスタータ信号STAも入力されており、この信号処理回路43は、そのスタータ信号STAと上記クランク角信号NE及び気筒判別用信号Gとに基づいて、後述する手順により、30°CA毎に立ち上がる第2パルス信号としての30°CA信号NE2と、クランク軸の回転位置が欠歯信号Kの発生する特定位置から120°進んだ基準位置に来た時に30°CA分だけアクティブレベル(本実施形態ではローレベル)となる基準位置信号TDCと、その基準位置信号TDCがアクティブレベルとなる毎にレベルが反転する第2気筒判別用信号G2とを生成して、CPU31へ出力する。
【0068】
そして、CPU31は、信号処理回路43から出力される上記信号NE2,TDC,G2に基づいて気筒判別を行うと共に、その判別結果と上記各種スイッチ信号及び上記各種センサからの信号とに基づいて、エンジンの最適な点火時期や燃料噴射時期及び噴射量等を演算し、その演算結果に基づき、出力バッファ41を介して、各気筒の燃料噴射弁11〜14を駆動すると共に、イグナイタ61を駆動して所定の気筒の点火コイル21〜24に通電する。
【0069】
次に、信号処理回路43は、クランク角センサ47から欠歯信号Kが出力されたこと(即ち、クランク角信号NEが欠歯信号Kになったこと)を検出する欠歯検出部63と、この欠歯検出部63により上記欠歯信号Kの発生が検出された時に、カム角センサ49からの気筒判別用信号Gの論理レベルを読み取るレベル読取部65と、クランク角信号NEから30°CA信号NE2を生成する30°CA信号生成部67と、それら各部63,65,67と連携して上記基準位置信号TDC及び第2気筒判別用信号G2を生成する判別用信号生成部69とを備えている。
【0070】
尚、前述したように、クランク角センサ47からは、クランク軸の回転に伴いロータ47aの欠歯部が信号出力部47bに対向する位置に来た時に、欠歯信号Kが出力されるため、本実施形態では、その欠歯信号Kの検出を“欠歯検出”ともいっている。
【0071】
そして、欠歯検出部63は、スタータ信号STAに立ち上がりが生じると(スタータスイッチがオンされると)、エンジンが始動されたと判断して、以後、図2に示す手順により、クランク角信号NE中における欠歯信号Kの検出を行う。即ち、図2に示すように、まず欠歯検出部63は、クランク角信号NEがローレベルからハイレベルへと立ち上がる毎に、計時用のタイマ値T2を0にリセットすると共に、そのリセットする直前のタイマ値T2から、クランク角信号NEの最新の立ち上がり間隔T1を計測している。そして更に、図2における一点鎖線に示す如く、上記計測した立ち上がり間隔T1をN倍して、欠歯信号検出用のしきい値時間(N×T1)を設定する。
【0072】
ここで、本実施形態では、前述したように、クランク角センサ47のロータ47aに設けられた欠歯部が、歯を2個欠損させたものであり、欠歯信号Kは、10°CA毎のパルス信号が2回欠落する期間であるため、上記Nは、2〜3の間の例えば2.5に設定されている。
【0073】
そして、欠歯検出部63は、上記タイマ値T2がしきい値時間(N×T1)を越えた時、即ち、図2の例では時刻taであり、クランク角信号NEの前回の立ち上がりタイミングから、その時に設定しているしきい値時間(N×T1)が経過しても、クランク角信号NEが立ち上がらないことを検出した時に、クランク角センサ47から欠歯信号Kが出力されたと判断して、欠歯検出信号FKを一定の期間だけハイレベルにする。
【0074】
尚、欠歯検出信号FKは、例えばクランク角信号NEが次に立ち下がったタイミングで、ローレベルに戻される。また、この欠歯検出信号FKのハイレベルへの立ち上がりにより、レベル読取部65、30°CA信号生成部67、及び判別用信号生成部69が、欠歯信号Kの発生を知ることとなる。
【0075】
そして、レベル読取部65は、図2に示すように、上記欠歯検出信号FKが立ち上がると、そのタイミングで、カム角センサ49からの気筒判別用信号Gの論理レベルを読み取り、その読み取った気筒判別用信号Gの論理レベル(以下、読取レベルともいう)Grを記憶する。尚、この読取レベルGrは、後述するように、判別用信号生成部69によって参照される。
【0076】
次に、30°CA信号生成部67は、スタータ信号STAがハイレベルになってから上記欠歯検出信号FKが最初に立ち上がると、内部カウンタの値を0にリセットして、以後、クランク角信号NEが立ち上がる毎に図3のフローチャートで示す動作を行うことにより、30°CA信号NE2を生成する。
【0077】
即ち、図3に示すように、30°CA信号生成部67は、クランク角信号NEが立ち上がると、まず、上記内部カウンタの値を1インクリメントし(S110)、次に、その内部カウンタの値が34になったか否かを判定する(S120)。
【0078】
そして、内部カウンタの値が34になっていなければ(S120:NO)、内部カウンタの値を3で割った余りが1であるか否かを判定して(S130)、1であれば(S130:YES)、30°CA信号NE2をハイレベルにする(S140)。また、内部カウンタの値を3で割った余りが1でなければ(S130:NO)、内部カウンタの値を3で割った余りが0であるか否かを判定して(S150)、0であれば(S150:YES)、30°CA信号NE2をローレベルにし(S160)、0でなければ(S150:NO)、30°CA信号NE2の論理レベルを変えることなく、クランク角信号NEの次の立ち上がりを待つ。
【0079】
一方、内部カウンタの値が34になった場合には(S120:YES)、その時点から一定時間後に30°CA信号NE2がローレベルとなるように内部タイマをセットすると共に(S170)、内部カウンタの値を0に戻し(S180)、更に、30°CA信号NE2をハイレベルにする(S140)。このため、内部カウンタの値が34から0に戻された場合、30°CA信号NE2は、ローレベルからハイレベルになると共に、上記内部タイマによる一定時間後にローレベルへ戻ることとなる。
【0080】
つまり、30°CA信号生成部67は、図4に示すように、欠歯信号Kの発生時を起点として、クランク角信号NEが立ち上がる毎に、内部カウンタの値を1ずつカウントアップさせると共に、その値が34になると0に戻すようにしている。そして更に、内部カウンタの値が1〜33の場合には、その内部タイマの値を3で割った余りが1と2の場合に30°CA信号NE2をハイレベルにし、内部タイマの値を3で割った余りが0の場合に30°CA信号NE2をローレベルにし、また、内部カウンタの値を34から0に戻した時には、30°CA信号NE2を上記内部タイマによる一定時間だけハイレベルにするようにしている。
【0081】
そして、30°CA信号生成部67は、こうした動作により、クランク角信号NEを分周して、そのクランク角信号NEに同期し且つ30°CA毎に立ち上がる30°CA信号NE2を生成している。
次に、判別用信号生成部69は、スタータ信号STAが立ち上がると、CPU31への基準位置信号TDCをハイレベルに初期設定すると共に、CPU31への第2気筒判別用信号G2をローレベルに初期設定する(図7,図8参照)。
【0082】
そして、判別用信号生成部69は、以後、30°CA信号生成部67で生成される30°CA信号NE2の立ち上がりタイミング毎に図5のフローチャートで示す処理を行うことにより、基準位置信号TDC及び第2気筒判別用信号G2のレベルを変化させる。尚、図5において、G(n) は、レベル読取部65によって今回読み取られた気筒判別用信号Gの最新の読取レベルGrを格納するための1ビットの記憶部である。
【0083】
図5に示すように、判別用信号生成部69は、30°CA信号NE2が立ち上がると、まずS210にて、欠歯検出部63からの欠歯検出信号FKがハイレベルであるか否かを判定することにより、欠歯検出部63によってクランク角信号NE中の欠歯信号Kが検出された欠歯検出タイミングであるか否かを判断する。
【0084】
ここで、欠歯検出タイミングであると判断した場合には、今回30°CA信号NE2が立ち上がる直前に、レベル読取部65によって気筒判別用信号Gの論理レベルが読み取られているため、続くS220にて、レベル読取部65により今回読み取られた気筒判別用信号Gの読取レベルGrをG(n) に格納し、その後、S230に進む。また、上記S210にて欠歯検出タイミングではないと判断した場合には、そのままS230に移行する。
【0085】
次に、判別用信号生成部69は、S230にて、スタータ信号STAが立ち上がってから30°CA信号NE2が最初に立ち上がったタイミング(即ち、スタータ信号STAに基づきエンジンの始動を検知してから、欠歯検出部63により最初にクランク角信号NEが欠歯信号Kになったと検出されたタイミング)であるか否かを判定し、肯定判定した場合には、クランク角信号NE中に欠歯信号Kが最初に発生したエンジンの始動直後であると判断して、S240に進む。そして、このS240にて、CPU31への第2気筒判別用信号G2の出力レベルを、G(n) 内の論理レベルに設定して、処理を終了する。
【0086】
一方、判別用信号生成部69は、上記S230にて、エンジンの始動直後ではないと否定判定した場合には、S250に移行して、基準位置信号TDCをローレベルにするタイミング(以下、TDC出力タイミングという)であるか否かを判定する。尚、TDC出力タイミングであるか否かは、上記S210で欠歯検出タイミングであると判断した時から、30°CA信号NE2が4回立ち上がったタイミングであるか否かによって判定する。
【0087】
そして、TDC出力タイミングではないと判定した場合には、そのまま処理を終了するが、TDC出力タイミングであると判定した場合には、S260に進んで、CPU31への基準位置信号TDCを、30°CA信号NE2が次に立ち上がるまでの間(即ち、次回の処理開始時までの間)、ローレベルにする。そして更に、続くS270にて、CPU31への第2気筒判別用信号G2の出力レベルを、G(n) 内の論理レベルとは反対のレベルに設定して、処理を終了する。
【0088】
このような図5の処理により、基準位置信号TDCの論理レベルは、クランク軸の回転位置が欠歯信号Kの発生する特定位置から120°進んだ基準位置に来た時に、30°CA分だけローレベルとなる。また、第2気筒判別用信号G2の論理レベルは、スタータ信号STAが立ち上がってからクランク角信号NE中に欠歯信号Kが最初に発生すると、その時の気筒判別用信号Gの論理レベルと同じレベルに設定され、それ以後は、基準位置信号TDCがローレベルとなるタイミング(以下、基準タイミングともいう)毎に、その基準タイミングの直前の欠歯検出時に読み取った気筒判別用信号Gの論理レベルとは反対のレベルに設定される。
【0089】
つまり、信号処理回路43は、前述した[S2−1]〜[S2−4]の動作に加えて、「スタータ信号STAに基づきエンジンの始動を検知してから、クランク角信号NEが欠歯信号Kになったことを最初に検出した時に、第2気筒判別用信号G2を、その時に読み取った気筒判別用信号Gの論理レベルと同じレベルに設定する」という図5のS240の動作を追加して行うことにより、基準位置信号TDCと第2気筒判別用信号G2とを生成してCPU31に出力している。
【0090】
このため、本実施形態のECU10において、スタータ信号STAが立ち上がってから最初の欠歯タイミング(クランク角信号NEが欠歯信号Kとなるタイミング)で、気筒判別用信号Gがローレベルならば、図7の時刻t2のように、その時点で第2気筒判別用信号G2がローレベルに設定され、また、スタータ信号STAが立ち上がってから最初の欠歯タイミングで、気筒判別用信号Gがハイレベルならば、図8の時刻t2のように、その時点で第2気筒判別用信号G2がハイレベルに設定されることとなる。尚、図7では、時刻t2で気筒判別用信号Gがローレベルであるため、第2気筒判別用信号G2は、基準位置信号TDCが最初に立ち下がる時刻t2’までローレベルのままとなっている。
【0091】
一方、本第1実施形態のECU10において、CPU31は、スタータ信号STAに立ち上がりが生じると、エンジンが始動されたと判断して、内部のクランクカウンタの値(詳しくはカウント値)CNTを−1に設定し、以後、信号処理回路43からの30°CA信号NE2が立ち上がる毎に図6の処理を行って、クランクカウンタの値CNTを更新していく。
【0092】
尚、本実施形態において、クランクカウンタは、実際には、CPU31のRAM(図示省略)にてカウント値CNTを格納するために設定された記憶領域である。そして、このクランクカウンタが、本発明におけるカウンタに相当している。また、本実施形態においても、クランクカウンタの値CNTは、クランク軸の2回転分の累積回転角度であるクランク角を、30°CA信号NE2の周期に相当する30°を分解能として示すものであり、0から23までの値となる。
【0093】
図6に示すように、CPU31は、信号処理回路43からの30°CA信号NE2が立ち上がると、まずS300にて、現在のクランクカウンタの値CNTが0よりも小さいか否かを判定し、0よりも小さければ(即ち−1ならば)、エンジンの始動時から最初の欠歯タイミングであると判断して、S305に進む。尚、この状態において、信号処理回路43からの基準位置信号TDCはハイレベルになっている。
【0094】
そして、S305では、信号処理回路43からの第2気筒判別用信号G2の論理レベルを読み取って、その読み取った論理レベルがハイレベルであるか否かを判定し、ハイレベルでなければ(即ちローレベルであれば)、S310に進んで、クランクカウンタの値CNTを第の1計数開始値としての20に初期設定し、その後、処理を終了する。また、上記S305にて、読み取った第2気筒判別用信号G2の論理レベルがハイレベルであると判定した場合には、S315に移行して、クランクカウンタの値CNTを第2の計数開始値としての8に初期設定し、その後、処理を終了する。尚、S305で読み取られる第2気筒判別用信号G2の論理レベルは、前述した信号処理回路43の動作から明らかなように、スタータ信号STAに基づきエンジンの始動が検知されてから、最初に欠歯検出部63により欠歯信号Kの発生が検出された時に、レベル読取部65により読み取られた気筒判別用信号Gの論理レベル(始動直後検出レベルに相当)である。
【0095】
一方、上記S300にて、現在のクランクカウンタの値CNTが0より小さくない(即ち0以上である)と判定した場合には、S320に移行して、信号処理回路43からの基準位置信号TDCがローレベルであるか否かを判定する。
ここで、基準位置信号TDCがローレベルではない(即ちハイレベルである)と判定した場合には、欠歯タイミングから120°CAだけ進んだ基準タイミングではないことから、S325に進んで、クランクカウンタの値CNTを1つカウントアップし、続くS330にて、クランクカウンタの値CNTが24以上になったか否かを判定する。そして、クランクカウンタの値CNTが24以上であれば、続くS335にて、クランクカウンタの値CNTを0に戻してから処理を終了し、また、上記S330でクランクカウンタの値CNTが24以上でないと判定した場合には、そのまま処理を終了する。
【0096】
また、上記S320にて、基準位置信号TDCがローレベルであると判定した場合には、基準タイミングであることから、S340に移行して、信号処理回路43からの第2気筒判別用信号G2の論理レベルを読み取る。
そして、続くS345にて、上記S340で今回読み取られた第2気筒判別用信号G2の論理レベルG2(n) がローレベルであるか否かを判定し、ローレベルではない(ハイレベルである)と判定した場合には、S350に進んで、クランクカウンタの値CNTを強制的に0へと初期化した後、処理を終了する。
【0097】
これに対し、S345にて、上記S340で今回読み取られた論理レベルG2(n) がローレベルであると判定した場合には、S360に進み、クランクカウンタの値CNTに対する以下のS360〜S370の補正処理を行った後、処理を終了する。
【0098】
この補正処理では、まずS360にて、現在のクランクカウンタの値CNT(現在値)が0〜23の中間値である12以上か否かを判定し、現在値が12よりも小さければ、S365にて、クランクカウンタの値CNTを12にし、逆に現在値が12以上であれば、S370にて、クランクカウンタの値CNTを0にする。
【0099】
つまり、CPU31は、信号処理回路43からの30°CA信号NE2が立ち上がる毎に、下記の表2の規則でクランクカウンタの値CNTを更新している。
【0100】
【表2】
Figure 0004399997
【0101】
具体的には、S300,及びS320〜S335の処理により、前述した[C1−2]と同じ[C2−2]の処理を行い、S320,S340,S345,及びS350の処理により、前述した[C1−3]と同じ[C2−3]の処理を行い、S320,S340,S345,及びS360〜S370処理により、前述した[C1−4]と同じ[C2−4]の処理を行っている。尚、S330及びS335の処理は、クランクカウンタの値CNTを必ず0〜23の値にするガード用の処理である。
【0102】
そして特に、本第1実施形態のCPU31では、S300〜S315の処理により、前述した[C1−1]の処理に代えて、表2にて「※」印を付した下記の[C2−1]の始動時用処理を行っている。
[C2−1]:現在のクランクカウンタの値CNTが0よりも小さければ(即ち、CNT=−1であり、この場合には、信号処理回路43からの基準位置信号TDCが常にハイレベルである)、エンジンの始動時から最初の欠歯タイミングであると判断して、第2気筒判別用信号G2の論理レベルを読み取り、その読み取った第2気筒判別用信号G2の論理レベルがローレベルであれば、クランクカウンタの値CNTを第1の計数開始値としての20に初期設定し、逆に、第2気筒判別用信号G2の論理レベルがハイレベルであれば、クランクカウンタの値CNTを第2の計数開始値としての8に初期設定する。
【0103】
尚、この[C2−1]の始動時用処理で初期設定される計数開始値としての20と8は、欠歯タイミングでのクランク角対応する値であり、クランク軸の1回転分(360°CA分)に相当する値だけ互いに異なった値である。このため、上記[C2−1]の処理によってクランクカウンタの値CNTの連続性が損なわれることはない。
【0104】
このような第1実施形態のECU10においては、例えば図7の時刻t2に示すように、スタータ信号STAがハイレベルになってから最初の欠歯タイミング(欠歯信号Kの発生タイミング)で、気筒判別用信号Gがローレベルであったならば、信号処理回路43からCPU31への第2気筒判別用信号G2もローレベルとなるため、信号処理回路43による30°CA信号NE2の出力開始に伴い、CPU31では、上記[C2−1]の処理によりクランクカウンタの値CNTが20に初期設定される。
【0105】
そして以後、CPU31においては、図7に示すように、クランクカウンタの値CNTが、上記[C2−2]の処理により、信号処理回路43からの30°CA信号NE2が立ち上がる毎に20→21→22…とカウントアップされていき、時刻t2’に示す如く基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ハイになった時には、上記[C2−3]の処理によりクランクカウンタの値CNTが0に初期化される。また、時刻t3’に示す如く基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ローになった時には、上記[C2−4]の処理により、クランクカウンタの値CNTが、その時の現在値に応じて12又は0(図7の時刻t3’では12)に補正され、その後、時刻t4’に示す如く、再び基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ハイになると、クランクカウンタの値CNTは上記[C2−3]の処理により0に初期化される。以後は、図7の時刻t4’以降に示すように、時刻t2’〜時刻t4’と同様の動作が繰り返されることにより、クランクカウンタの値CNTが0〜23の範囲で周回される。
【0106】
また例えば、図8の時刻t2に示すように、スタータ信号STAがハイレベルになってから最初の欠歯タイミングで、気筒判別用信号Gがハイレベルであったならば、信号処理回路43からCPU31への第2気筒判別用信号G2もハイレベルとなるため、信号処理回路43による30°CA信号NE2の出力開始に伴い、CPU31では、上記[C2−1]の処理によりクランクカウンタの値CNTが8に初期設定される。
【0107】
そして以後、CPU31においては、図8に示すように、クランクカウンタの値CNTが、上記[C2−2]の処理により、信号処理回路43からの30°CA信号NE2が立ち上がる毎に8→9→10…とカウントアップされていき、時刻t2’に示す如く基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ローになった時には、上記[C2−4]の処理により、クランクカウンタの値CNTが、その時の現在値に応じて12又は0(図8の時刻t2’では12)に補正される。また、時刻t3’に示す如く基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ハイになった時には、上記[C2−3]の処理によりクランクカウンタの値CNTが0に初期化され、その後、時刻t4’に示す如く、再び基準位置信号TDC=ロー且つ第2気筒判別用信号G2=ローになると、クランクカウンタの値CNTは上記[C2−4]の処理により、その時の現在値に応じて12又は0(図8の時刻t4’では12)に補正される。以後は、図8の時刻t4’以降に示すように、時刻t2’〜時刻t4’と同様の動作が繰り返されることにより、クランクカウンタの値CNTが0〜23の範囲で周回される。
【0108】
そして、CPU31は、このように周回されるクランクカウンタの値CNTに基づいて、点火すべき気筒を判別するが、その気筒判別用の処理を、図6のS310又はS315でクランクカウンタの値CNTを20又は8に初期設定した時点(即ち、スタータ信号STAの立ち上がりによりエンジンの始動を検知した時から最初の欠歯タイミング)から開始する。尚、この気筒判別用処理では、「従来の技術」の欄で説明したような要領で点火すべき気筒を判別する。例えば、CNT=0の時に第1気筒#1のBTDC30°CAと判断し、CNT=6の時に第2気筒#2のBTDC30°CAと判断し、CNT=12の時に第3気筒#3のBTDC30°CAと判断し、CNT=18の時に第4気筒#4のBTDC30°CAと判断する。
【0109】
そして更に、CPU31は、各気筒毎の制御処理として、図13を用いて説明した従来例と同様に、クランクカウンタの値CNTが0〜5の期間に、第1気筒#1の点火に関する学習処理(本実施形態では、各気筒毎に設けられたノックセンサのうち、該当する気筒のノックセンサから信号を読み取って、その気筒の点火時期の補正値等を学習演算する制御処理)を実行し、クランクカウンタの値CNTが6〜11の期間に、第2気筒#2の点火に関する学習処理を実行し、クランクカウンタの値CNTが12〜17の期間に、第3気筒#3の点火に関する学習処理を実行し、クランクカウンタの値CNTが18〜23の期間に、第4気筒#4の点火に関する学習処理を実行している。つまり、ECU10では、各気筒毎の制御処理の実行期間の切り替わりタイミングが、欠歯タイミングでははく、欠歯タイミングから120°CA後のタイミング(基準位置信号TDCがローレベルとなる基準タイミング)を基準にして設定されている。
【0110】
以上のような本実施形態のECU10では、カム角センサ49からの気筒判別用信号Gが各欠歯タイミング毎に交互に異なった論理レベルとなり、その欠歯タイミングでの気筒判別用信号Gの論理レベルを見ればランク角を特定することができる、という点に着目して、スタータ信号STAの立ち上がりによりエンジンの始動を検知してから、最初にクランク角信号NEが欠歯信号Kになったことを検出した時(図7,8の時刻t2に相当する時)に、その時の気筒判別用信号Gの論理レベルから特定されるクランク角に対応した計数開始値(本実施形態では20又は8)をクランクカウンタにセットし、更に、そのセット時から、クランクカウンタのカウント値CNTに基づく気筒判別用処理を開始するようにしている。
【0111】
このため、本実施形態のECU10によれば、スタータ信号STAの立ち上がりによりエンジンの始動を検知してから最初の欠歯タイミングで、クランクカウンタの値CNTを確定させて、その時点から気筒判別を開始することができる。よって、エンジンの始動を検知した時から従来装置よりも早期に気筒判別を行うことができ、エンジンの制御性(特に、始動制御の性能)を向上させることができる。
【0112】
また更に、本実施形態のECU10では、各気筒毎の制御処理の実行期間の切り替わりタイミングが、欠歯タイミングでははく、欠歯タイミングから120°CA後の基準タイミングを基準にして設定されているため、図6のS310又はS315により、クランクカウンタの値CNTを20又は8の計数開始値に初期設定した後は、クランクカウンタの値CNTを正常値に設定するための正常化処理(本実施形態では、上記[C2−3]の初期化と上記[C2−4]の補正処理)を、欠歯タイミングではなく、クランク角信号NEに基づき上記基準タイミングが到来したことを検知した時毎に行うようにしている。
【0113】
このため、クランクカウンタの値CNTがノイズ等の影響によって正常な値から外れてしまった場合には、図15を用いて説明したような中途半端な制御処理が発生してしまうことを防止でき、各気筒毎の制御処理の実行状態(実行順序や実行期間)に与える影響を前述した図14の如く最小限に抑えつつ、クランクカウンタの値CNTを正常値へと戻すことができるようになる。
【0114】
尚、本第1実施形態では、CPU31が、図6の処理により、信号処理回路43からの30°CA信号NE2と第2気筒判別用信号G2とに基づいて、クランクカウンタの値CNTの設定と更新とを実施しているが、30°CA信号NE2と第2気筒判別用信号G2は、クランク角信号NEと気筒判別用信号Gとから生成される信号であるため、結局、クランクカウンタの値CNTの設定と更新は、クランク角信号NEと気筒判別用信号Gとに基づいて行われていることになる。そして、本第1実施形態では、信号処理回路43とCPU31(特に図6の処理を行う部分)とが、カウント制御手段に相当している。
【0115】
次に、第2実施形態のエンジン制御装置(ECU)について説明する。尚、本第2実施形態のECUも、図1に示した第1実施形態のECU10と同様の構成要素からなるため、ここでは、それら構成要素及び各信号について、第1実施形態の場合と同じ符号を用いる。
【0116】
本第2実施形態のECU10は、前述した第1実施形態と比較して、CPU31が、信号処理回路43からの30°CA信号NE2が立ち上がる毎に、図6の処理に代えて図9の処理を行う、という点だけが異なっている。
そして、図9の処理では、図6の処理と比較すると、S360とS370の処理が削除されている。具体的に説明すると、CPU31は、S345にて、S340で今回読み取られた第2気筒判別用信号G2の論理レベルG2(n) がローレベルであると判定すると、そのままS365に移行して、クランクカウンタの値CNTを強制的に12へと初期化する。尚、図9において、他の部分については、図6と同じステップ番号を付しているため、説明を省略する。
【0117】
つまり、本第2実施形態において、CPU31は、下記の表3における「初期化」の欄に示す如く、信号処理回路43からの基準位置信号TDCがローレベルとなった時に、第2気筒判別用信号G2がハイレベルならばクランクカウンタの値CNTを強制的に0へと初期化し(S345:NO,S350)、逆に第2気筒判別用信号G2がローレベルならばクランクカウンタの値CNTを強制的に12へと初期化するようにしている(S345:YES,S365)。
【0118】
【表3】
Figure 0004399997
【0119】
そして、このような本第2実施形態のECU10によっても、前述した第1実施形態のECU10と同じ効果を得ることができる。
また、本第2実施形態のECU10によれば、クランクカウンタの値CNTがノイズ等の影響で正常値から外れた場合には、最悪でも360°CA分の期間内に、そのクランクカウンタの値CNTを正常値へと確実に戻すことができ、有利である。これは、図7の時刻t3’,t5’,t7’,…に相当する各タイミング、或いは、図8のt2’,t4’,t6’,…に相当する各タイミングにて、クランクカウンタの値CNTが、それの現在値に拘わらず、12へと強制的に初期化されるようになるからである。
【0120】
尚、本第2実施形態においても、信号処理回路43とCPU31(特に図9の処理を行う部分)とが、カウント制御手段に相当している。
以上、本発明の一実施形態について説明したが、本発明は、種々の形態を採り得ることは言うまでもない。
【0121】
例えば、本発明は、電磁ピックアップ(MPU)式のカム角センサを用いた場合の図11に例示した判定区間HKの考え方を残したまま、適用することもできる。
具体的には、エンジンの始動を検知してから最初に欠歯信号Kを検出した時に、クランクカウンタの値CNTを、その時の気筒判別用信号Gの論理レベルに応じた計数開始値(20又は8)に初期設定し、その後は、図11の場合と同様に、欠歯タイミングから120°CA後の基準タイミングが到来する毎に、欠歯タイミングからその基準タイミングまでの判定区間HK内で気筒判別用信号Gが立ち上がったか否かに応じて、気筒判別用信号Gが立ち上がった場合には、クランクカウンタの値CNTを強制的に0へと初期化し、気筒判別用信号Gが立ち上がらなかった場合には、クランクカウンタの値CNTを現在値に従い12又は0にする補正処理を行うようにしても良い。
【0122】
また、上記各実施形態では、欠歯信号Kの発生から基準位置信号TDCがアクティブレベルとなるまでの期間が、120°CA分の期間であるものを例に挙げたが、その期間は、120°CA以外のクランク角度に相当する期間でも良い。また更に、上記各実施形態では、制御対象が4気筒エンジンである場合を例に挙げたが、それに限るものではなく、例えば6気筒エンジンや8気筒エンジンでも良い。
【0123】
一方、上記各実施形態では、カム角センサ49から出力される気筒判別用信号Gが、360°CA毎に1回だけレベル反転するものであったが、気筒判別用信号Gは、クランク角センサ47から欠歯信号Kが出力される各タイミング毎に交互に異なった論理レベルとなっていれば良く、クランク角センサ47からパルス信号が出力されている期間中に複数回レベル反転する信号であっても良い。
【0124】
また、信号処理回路43において、レベル読取部65は、欠歯検出部63からの欠歯検出信号FKが立ち上がってからクランク角信号NEが最初に立ち上がったタイミング、即ち図2の時刻tbにて、気筒判別用信号Gの論理レベルを読み取るように構成しても良い。
【0125】
また更に、上記各実施形態のECU10では、スタータ信号STAの立ち上がりによってエンジンの始動を検知するようにしたが、エンジンの始動は、スタータ信号STA以外の情報から検知するように構成しても良い。
例えば、クランク角信号NEの周期から求められるエンジン回転数が所定の始動判定値を上回った時に、エンジンが始動されたと判定することができる。そして、この例の場合、より具体的には、信号処理回路43が、クランク角信号NEの周期からエンジンの始動を検知すると、前述の各実施形態にてスタータ信号STAが立ち上がった時と同様に、最初から動作すると共に、エンジンの始動を示す指示信号をCPU31へ出力し、CPU31は、その信号処理回路43からの指示信号を受けると、クランクカウンタの値CNTを−1に設定して、以後は、信号処理回路43からの30°CA信号NE2が立ち上がる毎に図6又は図9の処理を行えば良い。
【0126】
また、上記各実施形態では、クランクカウンタの値CNTをカウントアップさせたが、クランクカウンタの値CNTをカウントダウンさせるようにしても良い。
また更に、クランクカウンタの値CNTを周回させる範囲は、0〜23に限るものではなく、例えば5〜28や10〜33等、適宜設定することができる。そして、計数開始値も、20と8に限るものではなく、クランクカウンタの値CNTを周回させる範囲等に応じて適宜決定すれば良い。
【図面の簡単な説明】
【図1】 第1実施形態のエンジン制御装置の構成を表す構成図である。
【図2】 第1実施形態の信号処理回路における欠歯検出部及びレベル読取部の動作を表すタイムチャートである。
【図3】 第1実施形態の信号処理回路における30°CA信号生成部の動作を表すフローチャートである。
【図4】 第1実施形態の信号処理回路における30°CA信号生成部の動作を表すタイムチャートである。
【図5】 第1実施形態の信号処理回路における判別用信号生成部の動作を表すフローチャートである。
【図6】 第1実施形態のCPUで実行される処理を表すフローチャートである。
【図7】 第1実施形態の作用を説明するタイムチャートの、その1である。
【図8】 第1実施形態の作用を説明するタイムチャートの、その2である。
【図9】 第2実施形態のCPUで実行される処理を表すフローチャートである。
【図10】 エンジン制御装置の一般的なハードウエア構成を表すブロック図である。
【図11】 電磁ピックアップ(MPU)式のカム角センサを用いた従来のエンジン制御装置で行われる気筒判別用の動作を表すタイムチャートである。
【図12】 磁気抵抗素子(MRE)式のカム角センサを用いた従来のエンジン制御装置で行われる気筒判別用の動作を表すタイムチャートである。
【図13】 各気筒毎の制御処理の実行順序及び実行期間の一例を説明する説明図である。
【図14】 クランクカウンタのカウント値に対する正常化処理を欠歯タイミング毎に実施した場合の問題を説明するための図の、その1である。
【図15】 クランクカウンタのカウント値に対する正常化処理を欠歯タイミング毎に実施した場合の問題を説明するための図の、その2である。
【符号の説明】
10…エンジン制御装置(ECU)、11〜14…燃料噴射弁、21〜24…点火コイル、31…マイクロコンピュータ(CPU)、33,35,37…入力バッファ、39…A/D変換器、41…出力バッファ、43…信号処理回路、47…クランク角センサ、49…カム角センサ、51…スタータスイッチ、53…アイドルスイッチ、55…エアフロメータ、57…スロットルセンサ、59…水温センサ、61…イグナイタ、63…欠歯検出部、65…レベル読取部、67…30°CA信号生成部、69…判別用信号生成部

Claims (2)

  1. 第1の信号出力手段からエンジンのクランク軸の回転に応じて出力され、前記クランク軸の回転位置が予め設定された1つの特定位置でない時には、前記クランク軸が所定の単位角度回転する期間を1周期としたパルス信号となり、前記クランク軸の回転位置が前記特定位置に来た時には、前記クランク軸が前記単位角度よりも大きい所定角度回転する期間を1周期とした欠歯信号となるクランク角信号と、
    第2の信号出力手段から前記クランク軸の回転に対し1/2の比率で回転する回転軸の回転に応じて出力され、前記クランク角信号がパルス信号となっている期間中に論理レベルが変化することにより、前記クランク角信号が欠歯信号となるタイミングでは、その各タイミング毎に交互に異なった論理レベルとなる気筒判別用信号とを入力すると共に、
    カウント値が前記クランク軸の2回転分の累積回転角度であるクランク角を示すカウンタと、
    前記エンジンの始動を検知すると共に、該エンジンの始動を検知してから最初に前記クランク角信号が欠歯信号になったことを検出すると、前記カウンタのカウント値を、その時の前記気筒判別用信号の論理レベルに応じた所定の計数開始値であって、前記検出した欠歯信号の発生タイミングでのクランク角に対応する計数開始値に初期設定する始動時用処理を行い、その後は、前記カウンタのカウント値を、前記クランク角信号に基づき更新して前記クランク軸の2回転分に相当する値の範囲で周回させるカウント制御手段とを備え、
    前記カウンタのカウント値に基づき前記エンジンの気筒判別を行う処理を、前記カウント制御手段が前記カウント値を前記計数開始値に初期設定した時点から開始するように構成されているンジン制御装置であり、
    更に、当該装置は、前記エンジンの各気筒に関する該各気筒毎の制御処理を、前記カウンタのカウント値に応じて択一的に切り替えて実行するように構成されていると共に、前記クランク角信号が欠歯信号になってから前記クランク軸が所定の一定角度だけ回転した基準タイミングが、何れかの気筒に関する制御処理を実行する期間から他の気筒に関する制御処理を実行する期間への切り替わりタイミングとなっており、
    前記カウント制御手段は、前記カウンタのカウント値を前記計数開始値に初期設定した後は、前記クランク角信号に基づき前記基準タイミングが到来したことを検知した時に、前記カウンタのカウント値を、その基準タイミングに対応した正常値に設定するための正常化処理を行うこと、
    を特徴とするエンジン制御装置。
  2. 請求項1に記載のエンジン制御装置において、
    前記カウント制御手段は、
    前記始動時用処理として、前記エンジンの始動を検知してから最初に前記クランク角信号が欠歯信号になったことを検出した時の、前記気筒判別用信号の論理レベル(以下、始動直後検出レベルという)がローレベルの場合には、前記カウンタのカウント値を第1の計数開始値に初期設定し、前記始動直後検出レベルがハイレベルの場合には、前記カウンタのカウント値を、前記第1の計数開始値とは前記クランク軸の1回転分に相当する値だけ異なった第2の計数開始値に初期設定すること、
    を特徴とするエンジン制御装置
JP2001078562A 2001-03-19 2001-03-19 エンジン制御装置 Expired - Lifetime JP4399997B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001078562A JP4399997B2 (ja) 2001-03-19 2001-03-19 エンジン制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001078562A JP4399997B2 (ja) 2001-03-19 2001-03-19 エンジン制御装置

Publications (2)

Publication Number Publication Date
JP2002276453A JP2002276453A (ja) 2002-09-25
JP4399997B2 true JP4399997B2 (ja) 2010-01-20

Family

ID=18935160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001078562A Expired - Lifetime JP4399997B2 (ja) 2001-03-19 2001-03-19 エンジン制御装置

Country Status (1)

Country Link
JP (1) JP4399997B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4160990B2 (ja) 2006-11-20 2008-10-08 株式会社豊田自動織機 内燃機関における燃料噴射制御装置
JP2008267145A (ja) * 2007-04-16 2008-11-06 The Ship Machinery Manufacturers Association Of Japan 4ストロークディーゼル機関の制御装置及びカムパルス信号生成方法
JP5984508B2 (ja) * 2012-05-25 2016-09-06 ルネサスエレクトロニクス株式会社 半導体データ処理装置及びエンジン制御装置
WO2022153598A1 (ja) 2021-01-12 2022-07-21 日立Astemo株式会社 クランク角センサ制御装置及び内燃機関制御装置

Also Published As

Publication number Publication date
JP2002276453A (ja) 2002-09-25

Similar Documents

Publication Publication Date Title
JP3379271B2 (ja) エンジンの気筒判別装置
JP4586903B2 (ja) エンジン制御装置
US6341253B1 (en) Engine control apparatus with cylinder discrimination function
JP3407338B2 (ja) エンジン制御装置
JP4168907B2 (ja) エンジン制御装置
US6679223B2 (en) Engine control system with cam sensor
JP4399997B2 (ja) エンジン制御装置
JP2009002193A (ja) エンジンの制御装置
JP2004044437A (ja) 内燃機関制御装置
JP4332971B2 (ja) エンジン制御装置及びそれに用いられる信号処理回路
JPH11229951A (ja) 可変バルブタイミング制御装置付多気筒内燃機関のノッキング制御装置
JP4475704B2 (ja) エンジン制御装置
JP3979161B2 (ja) エンジン制御装置
JP2007064015A (ja) 信号出力装置及び電子制御装置
JP2005264862A (ja) エンジン制御装置
JP2005351212A (ja) エンジン制御装置
JP4196426B2 (ja) 内燃機関のクランク角判定装置
JP2004003454A (ja) エンジン制御装置
JP6394447B2 (ja) クランク角検出装置
JP4406324B2 (ja) エンジン制御装置
JPH03971A (ja) 内燃機関の点火時期制御装置
JP5794012B2 (ja) 電子制御装置
JP2006125240A (ja) エンジン制御装置
JP4390033B2 (ja) 内燃機関制御装置
JP2009121407A (ja) 内燃機関の回転速度検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090410

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: 20091006

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

R151 Written notification of patent or utility model registration

Ref document number: 4399997

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091019

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

Free format text: PAYMENT UNTIL: 20121106

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131106

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term