JP3324767B2 - エンジンの点火時期制御方法 - Google Patents
エンジンの点火時期制御方法Info
- Publication number
- JP3324767B2 JP3324767B2 JP20090591A JP20090591A JP3324767B2 JP 3324767 B2 JP3324767 B2 JP 3324767B2 JP 20090591 A JP20090591 A JP 20090591A JP 20090591 A JP20090591 A JP 20090591A JP 3324767 B2 JP3324767 B2 JP 3324767B2
- Authority
- JP
- Japan
- Prior art keywords
- ignition timing
- area
- grid
- engine
- value
- 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
Links
- 238000000034 method Methods 0.000 title claims description 96
- 238000012937 correction Methods 0.000 description 145
- 239000000446 fuel Substances 0.000 description 63
- 230000008569 process Effects 0.000 description 44
- HLYCTXRRGDDBOW-UHFFFAOYSA-N 2-methylpiperazine-1-carbodithioic acid Chemical compound CC1CNCCN1C(S)=S HLYCTXRRGDDBOW-UHFFFAOYSA-N 0.000 description 35
- 238000002347 injection Methods 0.000 description 34
- 239000007924 injection Substances 0.000 description 34
- 230000008859 change Effects 0.000 description 25
- 238000013500 data storage Methods 0.000 description 17
- TVMXDCGIABBOFY-UHFFFAOYSA-N octane Chemical compound CCCCCCCC TVMXDCGIABBOFY-UHFFFAOYSA-N 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 8
- 239000000498 cooling water Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 101150074789 Timd2 gene Proteins 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 239000007858 starting material Substances 0.000 description 5
- 101001068136 Homo sapiens Hepatitis A virus cellular receptor 1 Proteins 0.000 description 4
- 101000831286 Homo sapiens Protein timeless homolog Proteins 0.000 description 4
- 101000752245 Homo sapiens Rho guanine nucleotide exchange factor 5 Proteins 0.000 description 4
- 102100021688 Rho guanine nucleotide exchange factor 5 Human genes 0.000 description 4
- 238000002485 combustion reaction Methods 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000002828 fuel tank Substances 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000003502 gasoline Substances 0.000 description 2
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 2
- 101100328887 Caenorhabditis elegans col-34 gene Proteins 0.000 description 1
- 101000694320 Drosophila melanogaster RuvB-like helicase 2 Proteins 0.000 description 1
- 101100229651 Ginkgo biloba GNK1 gene Proteins 0.000 description 1
- 101100435070 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) APN2 gene Proteins 0.000 description 1
- 101100268779 Solanum lycopersicum ACO1 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003197 catalytic effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000003870 depth resolved spectroscopy Methods 0.000 description 1
- 208000009743 drug hypersensitivity syndrome Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000001046 rapid expansion of supercritical solution Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Electrical Control Of Ignition Timing (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Description
【0001】
【産業上の利用分野】本発明は、データテーブルを検索
して点火時期を設定するエンジンの点火時期制御方法に
関する。
して点火時期を設定するエンジンの点火時期制御方法に
関する。
【0002】
【従来の技術】最近では、エンジンの異常燃焼によるノ
ッキングを検出し、点火時期を最適に制御する技術が広
く採用されており、エンジン回転数とエンジン負荷とを
パラメータとするデータテーブルから読出したデータに
基づいて設定した点火時期での運転中、ノックが発生し
た場合には、補正値を算出して点火時期を学習補正する
ようにしている。
ッキングを検出し、点火時期を最適に制御する技術が広
く採用されており、エンジン回転数とエンジン負荷とを
パラメータとするデータテーブルから読出したデータに
基づいて設定した点火時期での運転中、ノックが発生し
た場合には、補正値を算出して点火時期を学習補正する
ようにしている。
【0003】さらに、この点火時期学習制御において
は、燃料のオクタン価やエンジン個々のばらつき、ある
いは、経時変化によるノック発生限界の変化を考慮し、
高低2つの点火時期テーブルを備え、大まかに現在のエ
ンジンの要求している点火時期の値が2つのテーブルの
どの位置にあるかを決定する全体補正と、ノック発生の
有無により小さな運転領域毎の点火時期の値を補正する
部分補正とを行なう技術がある。
は、燃料のオクタン価やエンジン個々のばらつき、ある
いは、経時変化によるノック発生限界の変化を考慮し、
高低2つの点火時期テーブルを備え、大まかに現在のエ
ンジンの要求している点火時期の値が2つのテーブルの
どの位置にあるかを決定する全体補正と、ノック発生の
有無により小さな運転領域毎の点火時期の値を補正する
部分補正とを行なう技術がある。
【0004】例えば、本出願人による特開平1−294
966号公報においては、今までの全体補正を無効とし
て新たな全体補正を行なうための、部分補正量に対する
判定基準を、エンジン回転数に応じて設定するように
し、エンジン再始動の際や交通渋滞などによる低エンジ
ン回転時、吸入空気温度が上昇して一時的なノック限界
の変化が生じても部分補正のみで対応でき、ガソリンオ
クタン価やエンジンの経時変化に対応すべき全体補正の
実行に影響が及ばず、安定した点火時期学習が可能とな
る技術を提案している。
966号公報においては、今までの全体補正を無効とし
て新たな全体補正を行なうための、部分補正量に対する
判定基準を、エンジン回転数に応じて設定するように
し、エンジン再始動の際や交通渋滞などによる低エンジ
ン回転時、吸入空気温度が上昇して一時的なノック限界
の変化が生じても部分補正のみで対応でき、ガソリンオ
クタン価やエンジンの経時変化に対応すべき全体補正の
実行に影響が及ばず、安定した点火時期学習が可能とな
る技術を提案している。
【0005】
【発明が解決しようとする課題】しかしながら、点火時
期設定のためのデータテーブルを検索する際に、パラメ
ータがテーブルのデータ格納領域の境界付近で変動する
と、運転領域がそれほど異ならないにもかかわらず読出
されるテーブル値が頻繁に変動する。
期設定のためのデータテーブルを検索する際に、パラメ
ータがテーブルのデータ格納領域の境界付近で変動する
と、運転領域がそれほど異ならないにもかかわらず読出
されるテーブル値が頻繁に変動する。
【0006】このため、パラメータの僅かな変動に応じ
て点火時期が頻繁に進角あるいは遅角されてしまい、制
御ハンチングを生じるおそれがある。
て点火時期が頻繁に進角あるいは遅角されてしまい、制
御ハンチングを生じるおそれがある。
【0007】本発明は上記事情に鑑みてなされたもの
で、データテーブルを検索して点火時期を設定する際
に、パラメータの変動による点火時期の変動を防止し、
安定した点火時期制御を行なうことのできるエンジンの
点火時期制御方法を提供することを目的としている。
で、データテーブルを検索して点火時期を設定する際
に、パラメータの変動による点火時期の変動を防止し、
安定した点火時期制御を行なうことのできるエンジンの
点火時期制御方法を提供することを目的としている。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の発明は、エンジン回転数とエンジン
負荷とをパラメータとして格子状に区切られたデータテ
ーブルを検索して点火時期を設定するエンジンの点火時
期制御方法において、上記データテーブルは、点火時期
データが格納された各領域の境界が上記エンジン回転数
の値を番号化した格子番号と上記エンジン負荷の値を番
号化した格子番号とによって形成されると共に、各格子
番号によって決定される各パラメータの領域番号によっ
て各領域を特定することができ、上記各パラメータの領
域番号により上記データテーブルの領域を特定してデー
タを読み出す際に、前回検索時に特定された領域の領域
番号より一つ小さい番号の領域の格子番号と現在のパラ
メータとを比較し、現在のパラメータが上記格子番号よ
り大きいときには、現在のパラメータが何れの格子番号
より小さいか否かを順次判別して上記領域番号を決定
し、一方、現在のパラメータが上記格子番号以下のとき
には、現在のパラメータが各格子番号からヒステリシス
値を減算した値の何れより小さいか否かを順次判別して
上記領域番号を決定し、上記決定された領域番号により
上記データテーブルの領域を特定し、特定した領域に格
納されている点火時期データを読み出すことを特徴とす
る。請求項2記載の発明は、エンジン回転数とエンジン
負荷とをパラメータとして格子状に区切られたデータテ
ーブルを検索して点火時期を設定するエンジンの点火時
期制御方法において、上記データテーブルは、点火時期
データが格納された各領域の境界が上記エンジン回転数
の値を番号化した格子番号と上記エンジン負荷の値を番
号化した格子番号とによって形成されると共に、各格子
番号によって決定される各パラメータの領域番号によっ
て各領域を特定することができ、上記各パラメータの領
域番号により上記データテーブルの領域を特定してデー
タを読み出す際に、前回検索時に特定された領域の領域
番号より一つ小さい番号の領域の格子番号と現在のパラ
メータとを比較し、現在のパラメータが上記格子番号よ
り大きいときには、現在のパラメータが何れの格子番号
より小さいか否かを順次判別して上記領域番号を決定
し、一方、現在のパラメータが上記格子番号以下のとき
には、現在のパラメータにオフセット値を加算した値が
何れの格子番号より小さいか否かを順次判別して上記領
域番号を決定し、上記決定された領域番号により上記デ
ータテーブルの領域を特定し、特定した領域に格納され
ている点火時期データを読み出すことを特徴とする。
め、請求項1記載の発明は、エンジン回転数とエンジン
負荷とをパラメータとして格子状に区切られたデータテ
ーブルを検索して点火時期を設定するエンジンの点火時
期制御方法において、上記データテーブルは、点火時期
データが格納された各領域の境界が上記エンジン回転数
の値を番号化した格子番号と上記エンジン負荷の値を番
号化した格子番号とによって形成されると共に、各格子
番号によって決定される各パラメータの領域番号によっ
て各領域を特定することができ、上記各パラメータの領
域番号により上記データテーブルの領域を特定してデー
タを読み出す際に、前回検索時に特定された領域の領域
番号より一つ小さい番号の領域の格子番号と現在のパラ
メータとを比較し、現在のパラメータが上記格子番号よ
り大きいときには、現在のパラメータが何れの格子番号
より小さいか否かを順次判別して上記領域番号を決定
し、一方、現在のパラメータが上記格子番号以下のとき
には、現在のパラメータが各格子番号からヒステリシス
値を減算した値の何れより小さいか否かを順次判別して
上記領域番号を決定し、上記決定された領域番号により
上記データテーブルの領域を特定し、特定した領域に格
納されている点火時期データを読み出すことを特徴とす
る。請求項2記載の発明は、エンジン回転数とエンジン
負荷とをパラメータとして格子状に区切られたデータテ
ーブルを検索して点火時期を設定するエンジンの点火時
期制御方法において、上記データテーブルは、点火時期
データが格納された各領域の境界が上記エンジン回転数
の値を番号化した格子番号と上記エンジン負荷の値を番
号化した格子番号とによって形成されると共に、各格子
番号によって決定される各パラメータの領域番号によっ
て各領域を特定することができ、上記各パラメータの領
域番号により上記データテーブルの領域を特定してデー
タを読み出す際に、前回検索時に特定された領域の領域
番号より一つ小さい番号の領域の格子番号と現在のパラ
メータとを比較し、現在のパラメータが上記格子番号よ
り大きいときには、現在のパラメータが何れの格子番号
より小さいか否かを順次判別して上記領域番号を決定
し、一方、現在のパラメータが上記格子番号以下のとき
には、現在のパラメータにオフセット値を加算した値が
何れの格子番号より小さいか否かを順次判別して上記領
域番号を決定し、上記決定された領域番号により上記デ
ータテーブルの領域を特定し、特定した領域に格納され
ている点火時期データを読み出すことを特徴とする。
【0009】
【作用】請求項1記載の発明は、点火時期を設定するた
めに、エンジン回転数とエンジン負荷とによるパラメー
タによりデータテーブルのデータ格納領域を特定してデ
ータを読み出すに際し、現在のパラメータを、前回検索
時に特定された領域の領域番号より一つ小さい番号の領
域の格子番号と比較する。そして、現在のパラメータが
上記格子番号より大きいときには、現在のパラメータが
何れの格子番号より小さいか否かを順次判別して領域番
号を決定し、この領域番号によりデータ格納領域を特定
して格納されている点火時期データを読み出す。一方、
現在のパラメータが上記格子番号以下のときには、現在
のパラメータが各格子番号からヒステリシス値を減算し
た値の何れより小さいか否かを順次判別して領域番号を
決定し、この領域番号によりデータ格納領域を特定して
格納されている点火時期データを読み出す。請求項2記
載の発明は、点火時期を設定するために、エンジン回転
数とエンジン負荷とによるパラメータによりデータテー
ブルのデータ格納領域を特定してデータを読み出すに際
し、現在のパラメータを、前回検索時に特定された領域
の領域番号より一つ小さい番号の領域の格子番号と比較
する。そして、現在のパラメータが上記格子番号より大
きいときには、現在のパラメータが何れの格子番号より
小さいか否かを順次判別して領域番号を決定し、この領
域番号によりデータ格納領域を特定して格納されている
点火時期データを読み出す。一方、現在のパラメータが
上記格子番号以下のときには、現在のパラメータにオフ
セット値を加算した値が何れの格子番号より小さいか否
かを順次判別して領域番号を決定し、この領域番号によ
りデータ格納領域を特定して格納されている点火時期デ
ータを読み出す。
めに、エンジン回転数とエンジン負荷とによるパラメー
タによりデータテーブルのデータ格納領域を特定してデ
ータを読み出すに際し、現在のパラメータを、前回検索
時に特定された領域の領域番号より一つ小さい番号の領
域の格子番号と比較する。そして、現在のパラメータが
上記格子番号より大きいときには、現在のパラメータが
何れの格子番号より小さいか否かを順次判別して領域番
号を決定し、この領域番号によりデータ格納領域を特定
して格納されている点火時期データを読み出す。一方、
現在のパラメータが上記格子番号以下のときには、現在
のパラメータが各格子番号からヒステリシス値を減算し
た値の何れより小さいか否かを順次判別して領域番号を
決定し、この領域番号によりデータ格納領域を特定して
格納されている点火時期データを読み出す。請求項2記
載の発明は、点火時期を設定するために、エンジン回転
数とエンジン負荷とによるパラメータによりデータテー
ブルのデータ格納領域を特定してデータを読み出すに際
し、現在のパラメータを、前回検索時に特定された領域
の領域番号より一つ小さい番号の領域の格子番号と比較
する。そして、現在のパラメータが上記格子番号より大
きいときには、現在のパラメータが何れの格子番号より
小さいか否かを順次判別して領域番号を決定し、この領
域番号によりデータ格納領域を特定して格納されている
点火時期データを読み出す。一方、現在のパラメータが
上記格子番号以下のときには、現在のパラメータにオフ
セット値を加算した値が何れの格子番号より小さいか否
かを順次判別して領域番号を決定し、この領域番号によ
りデータ格納領域を特定して格納されている点火時期デ
ータを読み出す。
【0010】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図1〜図25は本発明の第1実施例に係わり、図
1は部分補正テーブル領域特定手順のフローチャート
(その1)、図2は部分補正テーブル領域特定手順のフ
ローチャート(その2)、図3は部分補正テーブル領域
特定手順のフローチャート(その3)、図4は部分補正
テーブル領域特定手順のフローチャート(その4)、図
5は部分補正テーブル領域特定手順のフローチャート
(その5)、図6は気筒判別・エンジン回転数算出手順
のフローチャート、図7は点火時期設定手順のフローチ
ャート(その1)、図8は点火時期設定手順のフローチ
ャート(その2)、図9は通電・点火制御手順における
θ2割込みのフローチャート、図10は通電・点火制御
手順におけるθ3割込みのフローチャート、図11は全
体補正係数及び部分補正点火時期学習手順のフローチャ
ート(その1)、図12は全体補正係数及び部分補正点
火時期学習手順のフローチャート(その2)、図13は
全体補正係数学習のサブルーチンを示すフローチャート
(その1)、図14は全体補正係数学習のサブルーチン
を示すフローチャート(その2)、図15は全体補正係
数学習のサブルーチンを示すフローチャート(その
3)、図16は部分補正点火時期学習のサブルーチンを
示すフローチャート(その1)、図17は部分補正点火
時期学習のサブルーチンを示すフローチャート(その
2)、図18は部分補正点火時期学習のサブルーチンを
示すフローチャート(その3)、図19は部分補正点火
時期学習のサブルーチンを示すフローチャート(その
4)、図20は部分補正テーブルの概念図、図21はエ
ンジン制御系の概略図、図22はクランクロータとクラ
ンク角センサの正面図、図23はカムロータとカム角セ
ンサの正面図、図24は制御装置の回路構成図、図25
は点火タイミングを示すタイムチャートである。
する。図1〜図25は本発明の第1実施例に係わり、図
1は部分補正テーブル領域特定手順のフローチャート
(その1)、図2は部分補正テーブル領域特定手順のフ
ローチャート(その2)、図3は部分補正テーブル領域
特定手順のフローチャート(その3)、図4は部分補正
テーブル領域特定手順のフローチャート(その4)、図
5は部分補正テーブル領域特定手順のフローチャート
(その5)、図6は気筒判別・エンジン回転数算出手順
のフローチャート、図7は点火時期設定手順のフローチ
ャート(その1)、図8は点火時期設定手順のフローチ
ャート(その2)、図9は通電・点火制御手順における
θ2割込みのフローチャート、図10は通電・点火制御
手順におけるθ3割込みのフローチャート、図11は全
体補正係数及び部分補正点火時期学習手順のフローチャ
ート(その1)、図12は全体補正係数及び部分補正点
火時期学習手順のフローチャート(その2)、図13は
全体補正係数学習のサブルーチンを示すフローチャート
(その1)、図14は全体補正係数学習のサブルーチン
を示すフローチャート(その2)、図15は全体補正係
数学習のサブルーチンを示すフローチャート(その
3)、図16は部分補正点火時期学習のサブルーチンを
示すフローチャート(その1)、図17は部分補正点火
時期学習のサブルーチンを示すフローチャート(その
2)、図18は部分補正点火時期学習のサブルーチンを
示すフローチャート(その3)、図19は部分補正点火
時期学習のサブルーチンを示すフローチャート(その
4)、図20は部分補正テーブルの概念図、図21はエ
ンジン制御系の概略図、図22はクランクロータとクラ
ンク角センサの正面図、図23はカムロータとカム角セ
ンサの正面図、図24は制御装置の回路構成図、図25
は点火タイミングを示すタイムチャートである。
【0011】(エンジン制御系の構成)図21におい
て、符号1はエンジン本体であり、図においては水平対
向4気筒型エンジンを示す。このエンジン本体1のシリ
ンダヘッド2に形成された各吸気ポート2aにインテー
クマニホルド3が連通され、このインテークマニホルド
3にエアチャンバ4を介してスロットルチャンバ5が連
通され、このスロットルチャンバ5上流側に吸気管6を
介してエアクリーナ7が取付けられている。
て、符号1はエンジン本体であり、図においては水平対
向4気筒型エンジンを示す。このエンジン本体1のシリ
ンダヘッド2に形成された各吸気ポート2aにインテー
クマニホルド3が連通され、このインテークマニホルド
3にエアチャンバ4を介してスロットルチャンバ5が連
通され、このスロットルチャンバ5上流側に吸気管6を
介してエアクリーナ7が取付けられている。
【0012】また、上記吸気管6の上記エアクリーナ7
の直下流に吸入空気量センサ(図においては、ホットワ
イヤ式エアフローメータ)8が介装され、さらに、上記
スロットルチャンバ5に設けられたスロットルバルブ5
aに、スロットル開度センサ9aとスロットルバルブ全
閉を検出するアイドルスイッチ9bとが連設されてい
る。
の直下流に吸入空気量センサ(図においては、ホットワ
イヤ式エアフローメータ)8が介装され、さらに、上記
スロットルチャンバ5に設けられたスロットルバルブ5
aに、スロットル開度センサ9aとスロットルバルブ全
閉を検出するアイドルスイッチ9bとが連設されてい
る。
【0013】さらに、上記スロットルバルブ5aの上流
側と下流側とを連通するバイパス通路10に、アイドル
スピードコントロールバルブ(ISCV)11が介装さ
れ、上記インテークマニホルド3の各気筒の各吸気ポー
ト2a直上流側に、インジェクタ12が臨まされてい
る。さらに、上記シリンダヘッド2の各気筒毎に、その
先端を燃焼室に露呈する点火プラグ13aが取付けら
れ、この点火プラグ13aに連設される点火コイル13
bにイグナイタ14が接続されている。
側と下流側とを連通するバイパス通路10に、アイドル
スピードコントロールバルブ(ISCV)11が介装さ
れ、上記インテークマニホルド3の各気筒の各吸気ポー
ト2a直上流側に、インジェクタ12が臨まされてい
る。さらに、上記シリンダヘッド2の各気筒毎に、その
先端を燃焼室に露呈する点火プラグ13aが取付けら
れ、この点火プラグ13aに連設される点火コイル13
bにイグナイタ14が接続されている。
【0014】上記インジェクタ12は、燃料供給路15
を介して燃料タンク16に連通されており、この燃料タ
ンク16内にはインタンク式の燃料ポンプ17が設けら
れている。この燃料ポンプ17からの燃料は、上記燃料
供給路15に介装された燃料フィルタ18を経て上記イ
ンジェクタ12、プレッシャレギュレータ19に圧送さ
れ、このプレッシャレギュレータ19から上記燃料タン
ク16にリターンされて所定の圧力に調圧される。
を介して燃料タンク16に連通されており、この燃料タ
ンク16内にはインタンク式の燃料ポンプ17が設けら
れている。この燃料ポンプ17からの燃料は、上記燃料
供給路15に介装された燃料フィルタ18を経て上記イ
ンジェクタ12、プレッシャレギュレータ19に圧送さ
れ、このプレッシャレギュレータ19から上記燃料タン
ク16にリターンされて所定の圧力に調圧される。
【0015】また、上記エンジン本体1のシリンダブロ
ック1aにノックセンサ20が取付けられるとともに、
このシリンダブロック1aに形成された冷却水通路(図
示せず)に冷却水温センサ21が臨まされ、さらに、上
記シリンダヘッド2の排気ポート2bに連通するエグゾ
ーストマニホルド22の集合部に、O2センサ23が臨
まされている。尚、符号24は触媒コンバータである。
ック1aにノックセンサ20が取付けられるとともに、
このシリンダブロック1aに形成された冷却水通路(図
示せず)に冷却水温センサ21が臨まされ、さらに、上
記シリンダヘッド2の排気ポート2bに連通するエグゾ
ーストマニホルド22の集合部に、O2センサ23が臨
まされている。尚、符号24は触媒コンバータである。
【0016】また、上記シリンダブロック1aに支承さ
れたクランクシャフト1bに、クランクロータ25が軸
着され、このクランクロータ25の外周に、所定のクラ
ンク角に対応する突起(あるいはスリット)を検出する
電磁ピックアップなどからなるクランク角センサ26が
対設され、さらに、上記シリンダヘッド2のカムシャフ
ト1cに連設されたカムロータ27に、電磁ピックアッ
プなどからなる気筒判別用のカム角センサ28が対設さ
れている。
れたクランクシャフト1bに、クランクロータ25が軸
着され、このクランクロータ25の外周に、所定のクラ
ンク角に対応する突起(あるいはスリット)を検出する
電磁ピックアップなどからなるクランク角センサ26が
対設され、さらに、上記シリンダヘッド2のカムシャフ
ト1cに連設されたカムロータ27に、電磁ピックアッ
プなどからなる気筒判別用のカム角センサ28が対設さ
れている。
【0017】上記クランクロータ25は、図22に示す
ように、その外周に突起25a,25b,25cが形成
され、これらの各突起25a,25b,25cが、各気
筒(#1,#2と#3,#4) の圧縮上死点前(BTD
C)θ1,θ2,θ3 の位置(例えば、θ1 =97°,θ2
=65°,θ3 =10°)に形成されている。
ように、その外周に突起25a,25b,25cが形成
され、これらの各突起25a,25b,25cが、各気
筒(#1,#2と#3,#4) の圧縮上死点前(BTD
C)θ1,θ2,θ3 の位置(例えば、θ1 =97°,θ2
=65°,θ3 =10°)に形成されている。
【0018】すなわち、突起25a,25b間の通過時
間からエンジン回転数NEが算出され、突起25b、突
起25cが、それぞれ、点火時期及び燃料噴射タイミン
グ設定の際の基準クランク角、固定点火時期を示す基準
クランク角となる。
間からエンジン回転数NEが算出され、突起25b、突
起25cが、それぞれ、点火時期及び燃料噴射タイミン
グ設定の際の基準クランク角、固定点火時期を示す基準
クランク角となる。
【0019】また、上記カムロータ27の外周には、図
23に示すように、気筒判別用の突起27a,27b,
27cが形成され、例えば、突起27aが#3,#4の
圧縮上死点後(ATDC)θ4 の位置(例えばθ4 =2
0°)に形成され、突起27bが3個の突起で構成され
て最初の突起が#1気筒のATDCθ5 の位置(例えば
θ5 =5°)に形成されている。さらに、突起27cが
2個の突起で形成され、最初の突起が#2気筒のATD
Cθ6の位置(例えばθ6 =20°)に形成されてい
る。
23に示すように、気筒判別用の突起27a,27b,
27cが形成され、例えば、突起27aが#3,#4の
圧縮上死点後(ATDC)θ4 の位置(例えばθ4 =2
0°)に形成され、突起27bが3個の突起で構成され
て最初の突起が#1気筒のATDCθ5 の位置(例えば
θ5 =5°)に形成されている。さらに、突起27cが
2個の突起で形成され、最初の突起が#2気筒のATD
Cθ6の位置(例えばθ6 =20°)に形成されてい
る。
【0020】尚、上記クランク角センサ26、カム角セ
ンサ28は、電磁ピックアップなどの磁気センサに限ら
ず、光センサなどでも良い。
ンサ28は、電磁ピックアップなどの磁気センサに限ら
ず、光センサなどでも良い。
【0021】(制御装置の回路構成)一方、図24にお
いて、符号30は、マイクロコンピュータなどからなる
制御装置(ECU)であり、このECU30は、点火時
期制御、燃料噴射制御などを行なうメインコンピュータ
31と、ノック検出処理を行なう専用のサブコンピュー
タ32との2つのマイクロコンピュータを中核として構
成されている。
いて、符号30は、マイクロコンピュータなどからなる
制御装置(ECU)であり、このECU30は、点火時
期制御、燃料噴射制御などを行なうメインコンピュータ
31と、ノック検出処理を行なう専用のサブコンピュー
タ32との2つのマイクロコンピュータを中核として構
成されている。
【0022】上記ECU30内には、各部に安定化電圧
を供給する定電圧回路33が内蔵されており、この定電
圧回路33は、直接、及びECUリレー34のリレー接
点を介して、バッテリ35に接続されている。このバッ
テリ35には、上記ECUリレー34のリレーコイルが
キースイッチ36を介して接続されるとともに、燃料ポ
ンプリレー37のリレー接点を介して燃料ポンプ17が
接続されている。
を供給する定電圧回路33が内蔵されており、この定電
圧回路33は、直接、及びECUリレー34のリレー接
点を介して、バッテリ35に接続されている。このバッ
テリ35には、上記ECUリレー34のリレーコイルが
キースイッチ36を介して接続されるとともに、燃料ポ
ンプリレー37のリレー接点を介して燃料ポンプ17が
接続されている。
【0023】上記メインコンピュータ31は、メインC
PU38、ROM39、RAM40、バックアップRA
M40a、タイマ41、シリアルインターフェース(S
CI)42、及び、I/Oインターフェース43がバス
ライン44を介して互いに接続されて構成され、具体的
には、例えば1つのLSIチップとしてECU30内に
実装されている。
PU38、ROM39、RAM40、バックアップRA
M40a、タイマ41、シリアルインターフェース(S
CI)42、及び、I/Oインターフェース43がバス
ライン44を介して互いに接続されて構成され、具体的
には、例えば1つのLSIチップとしてECU30内に
実装されている。
【0024】上記I/Oインターフェース43の入力ポ
ートには、吸入空気量センサ8、スロットル開度センサ
9a、冷却水温センサ21、及び、O2センサ23が、
A/D変換器45を介して接続されるとともに、スター
タスイッチ46、アイドルスイッチ9b、クランク角セ
ンサ26、カム角センサ28が接続され、さらに、上記
バッテリ35が接続されてバッテリ電圧がモニタされ
る。
ートには、吸入空気量センサ8、スロットル開度センサ
9a、冷却水温センサ21、及び、O2センサ23が、
A/D変換器45を介して接続されるとともに、スター
タスイッチ46、アイドルスイッチ9b、クランク角セ
ンサ26、カム角センサ28が接続され、さらに、上記
バッテリ35が接続されてバッテリ電圧がモニタされ
る。
【0025】また、上記I/Oインターフェース43の
出力ポートには、イグナイタ14が接続され、さらに、
駆動回路47を介して、ISCV11、インジェクタ1
2、燃料ポンプリレー37のリレーコイルが接続されて
いる。
出力ポートには、イグナイタ14が接続され、さらに、
駆動回路47を介して、ISCV11、インジェクタ1
2、燃料ポンプリレー37のリレーコイルが接続されて
いる。
【0026】一方、サブコンピュータ32は、サブCP
U48、ROM49、RAM50、タイマ51、SCI
52、及び、I/Oインターフェース53がバスライン
54を介して互いに接続されて構成され、具体的には、
上記メインコンピュータ31同様、例えば1つのLSI
チップとしてECU30内に実装されている。
U48、ROM49、RAM50、タイマ51、SCI
52、及び、I/Oインターフェース53がバスライン
54を介して互いに接続されて構成され、具体的には、
上記メインコンピュータ31同様、例えば1つのLSI
チップとしてECU30内に実装されている。
【0027】上記I/Oインターフェース53の入力ポ
ートには、クランク角センサ26、カム角センサ28が
接続されるとともに、ノックセンサ20が、アンプ5
5、周波数フィルタ56、A/D変換器57を介して接
続されている。
ートには、クランク角センサ26、カム角センサ28が
接続されるとともに、ノックセンサ20が、アンプ5
5、周波数フィルタ56、A/D変換器57を介して接
続されている。
【0028】上記ノックセンサ20は、例えばノック振
動とほぼ同じ固有周波数を持つ振動子と、この振動子の
振動加速度を検知して電気信号に変換する圧電素子とか
ら構成される共振形のノックセンサであり、エンジンの
爆発行程における燃焼圧力波によりシリンダブロック1
aに伝わる振動を検出し、その振動波形を検出信号とし
て出力する。
動とほぼ同じ固有周波数を持つ振動子と、この振動子の
振動加速度を検知して電気信号に変換する圧電素子とか
ら構成される共振形のノックセンサであり、エンジンの
爆発行程における燃焼圧力波によりシリンダブロック1
aに伝わる振動を検出し、その振動波形を検出信号とし
て出力する。
【0029】上記ノックセンサ20の検出信号は上記ア
ンプ55により所定のレベルに増幅された後、上記周波
数フィルタ56により必要な周波数成分が抽出され、A
/D変換器57でアナログデータからデジタルデータに
変換される。
ンプ55により所定のレベルに増幅された後、上記周波
数フィルタ56により必要な周波数成分が抽出され、A
/D変換器57でアナログデータからデジタルデータに
変換される。
【0030】また、上記メインコンピュータ31と上記
サブコンピュータ32とは、SCI42,52を介した
シリアル回線により接続されるとともに、上記サブコン
ピュータ32のI/Oインターフェース53の出力ポー
トが、上記メインコンピュータ31のI/Oインターフ
ェース43の入力ポートに接続されている。
サブコンピュータ32とは、SCI42,52を介した
シリアル回線により接続されるとともに、上記サブコン
ピュータ32のI/Oインターフェース53の出力ポー
トが、上記メインコンピュータ31のI/Oインターフ
ェース43の入力ポートに接続されている。
【0031】上記メインコンピュータ31では、クラン
ク角センサ26からのクランクパルスに基づいて点火時
期などを設定するとともに、カム角センサ28からのカ
ムパルスに基づいて点火対象となる該当気筒を判別し、
所定の点火時期に達すると、イグナイタ14に点火信号
を出力して該当気筒の点火を行なう。
ク角センサ26からのクランクパルスに基づいて点火時
期などを設定するとともに、カム角センサ28からのカ
ムパルスに基づいて点火対象となる該当気筒を判別し、
所定の点火時期に達すると、イグナイタ14に点火信号
を出力して該当気筒の点火を行なう。
【0032】一方、上記サブコンピュータ32では、エ
ンジン回転数とエンジン負荷とに基づいてノックセンサ
20からの検出信号のサンプル区間を設定し、このサン
プル区間でノックセンサ20からの検出信号を高速にA
/D変換して振動波形を忠実にデジタルデータに変換
し、ノック発生の有無を判定する。
ンジン回転数とエンジン負荷とに基づいてノックセンサ
20からの検出信号のサンプル区間を設定し、このサン
プル区間でノックセンサ20からの検出信号を高速にA
/D変換して振動波形を忠実にデジタルデータに変換
し、ノック発生の有無を判定する。
【0033】このノック発生の有無のノック判定データ
は、サブコンピュータ32のI/Oインターフェース5
3に出力され、ノック発生の場合には、SCI52,4
2を介したシリアル回線を通じてサブコンピュータ32
から上記メインコンピュータ31にノックデータが読込
まれる。上記メインコンピュータ31では、このノック
データに基づいて直ちに該当気筒の点火時期を遅らせ、
ノックを回避する。
は、サブコンピュータ32のI/Oインターフェース5
3に出力され、ノック発生の場合には、SCI52,4
2を介したシリアル回線を通じてサブコンピュータ32
から上記メインコンピュータ31にノックデータが読込
まれる。上記メインコンピュータ31では、このノック
データに基づいて直ちに該当気筒の点火時期を遅らせ、
ノックを回避する。
【0034】上記メインコンピュータ31による点火時
期制御に際しては、低オクタン価燃料用の基本進角値テ
ーブルと高オクタン価燃料用進角値テーブルとの2つの
点火時期テーブルに対して学習制御が実行される。以
下、この点火時期学習制御に係わる動作について説明す
る。
期制御に際しては、低オクタン価燃料用の基本進角値テ
ーブルと高オクタン価燃料用進角値テーブルとの2つの
点火時期テーブルに対して学習制御が実行される。以
下、この点火時期学習制御に係わる動作について説明す
る。
【0035】(気筒判別・エンジン回転数算出手順)図
6は、クランク角センサ26からのクランクパルス入力
により割込みスタートする気筒判別・エンジン回転数算
出のルーチンであり、まず、ステップS101で、カム角セ
ンサ28の出力に基づき、#iの点火対象気筒を判別す
ると、次に、ステップS102で、クランクパルスを識別す
る。
6は、クランク角センサ26からのクランクパルス入力
により割込みスタートする気筒判別・エンジン回転数算
出のルーチンであり、まず、ステップS101で、カム角セ
ンサ28の出力に基づき、#iの点火対象気筒を判別す
ると、次に、ステップS102で、クランクパルスを識別す
る。
【0036】図25のタイムチャートに示すように、例
えば、上記カム角センサ28からθ5 (突起27b)の
カムパルスが出力された場合、次の圧縮上死点は#3気
筒であり、この#3気筒が点火対象気筒(#4気筒が燃
料噴射対象気筒)となることが判別できる。
えば、上記カム角センサ28からθ5 (突起27b)の
カムパルスが出力された場合、次の圧縮上死点は#3気
筒であり、この#3気筒が点火対象気筒(#4気筒が燃
料噴射対象気筒)となることが判別できる。
【0037】また、上記θ5 のカムパルスの後にθ4
(突起27a)のカムパルスが出力された場合、次の圧
縮上死点は#2気筒であり、この#2気筒が点火対象気
筒(#1気筒が燃料噴射対象気筒)となることが判別で
きる。
(突起27a)のカムパルスが出力された場合、次の圧
縮上死点は#2気筒であり、この#2気筒が点火対象気
筒(#1気筒が燃料噴射対象気筒)となることが判別で
きる。
【0038】同様にθ6 (突起27c)のカムパルスが
出力された後の圧縮上死点は#4気筒であり、この#4
気筒が点火対象気筒(#3気筒が燃料噴射対象気筒)と
なる。さらに、上記θ6 のカムパルスの後にθ4 (突起
27a)のカムパルスが出力された場合、その後の圧縮
上死点は#1気筒であり、この#1気筒が点火対象気筒
(#2気筒が燃料噴射対象気筒)となることが判別でき
る。
出力された後の圧縮上死点は#4気筒であり、この#4
気筒が点火対象気筒(#3気筒が燃料噴射対象気筒)と
なる。さらに、上記θ6 のカムパルスの後にθ4 (突起
27a)のカムパルスが出力された場合、その後の圧縮
上死点は#1気筒であり、この#1気筒が点火対象気筒
(#2気筒が燃料噴射対象気筒)となることが判別でき
る。
【0039】さらに、上記カム角センサ28からカムパ
ルスが出力された後に、クランク角センサ26から出力
されるクランクパルスが、周期(エンジン回転数)を算
出する際の基準クランク角(θ1)を示し、次のクラン
クパルスが該当気筒の点火時期及び燃料噴射開始時期を
設定する際の基準クランク角(θ2)を示すものである
ことが判別できる。
ルスが出力された後に、クランク角センサ26から出力
されるクランクパルスが、周期(エンジン回転数)を算
出する際の基準クランク角(θ1)を示し、次のクラン
クパルスが該当気筒の点火時期及び燃料噴射開始時期を
設定する際の基準クランク角(θ2)を示すものである
ことが判別できる。
【0040】すなわち、本実施例の4サイクル4気筒エ
ンジンでは、燃焼行程は#1→#3→#2→#4の気筒
順であり、#i気筒の点火対象気筒が#1気筒とする
と、このときの燃料噴射対象気筒#i(+2)は#2気筒で
あり、次の燃料噴射対象気筒#i(+2)は#4気筒とな
る。そして、点火が#1→#3→#2→#4の気筒順に
行われ、燃料噴射は該当気筒に対して720℃A(エン
ジン2回転)毎に1回のシーケンシャル噴射が行われ
る。
ンジンでは、燃焼行程は#1→#3→#2→#4の気筒
順であり、#i気筒の点火対象気筒が#1気筒とする
と、このときの燃料噴射対象気筒#i(+2)は#2気筒で
あり、次の燃料噴射対象気筒#i(+2)は#4気筒とな
る。そして、点火が#1→#3→#2→#4の気筒順に
行われ、燃料噴射は該当気筒に対して720℃A(エン
ジン2回転)毎に1回のシーケンシャル噴射が行われ
る。
【0041】その後、ステップS103で、例えば、クラン
ク角センサ26から出力されるBTDCθ1 ,θ2 のク
ランクパルスの入力間隔時間(周期)Tθ12を計時し、
ステップS104で、この入力間隔時間Tθ12からエンジン
回転数NE を算出し、RAM40の所定アドレスに回転
数データとしてストアしてルーチンを抜ける。
ク角センサ26から出力されるBTDCθ1 ,θ2 のク
ランクパルスの入力間隔時間(周期)Tθ12を計時し、
ステップS104で、この入力間隔時間Tθ12からエンジン
回転数NE を算出し、RAM40の所定アドレスに回転
数データとしてストアしてルーチンを抜ける。
【0042】(点火時期設定手順)一方、所定時間毎に
実行される図7及び図8の割込みルーチンにて点火時期
が設定される。この点火時期設定ルーチンでは、まず、
ステップS201,S202で、それぞれ、スタータスイッチ4
6がONされているか否か、エンジン回転数NEが完爆
回転数NESET(例えば、NESET=400rpm)に達し
ているか否かを判別する。
実行される図7及び図8の割込みルーチンにて点火時期
が設定される。この点火時期設定ルーチンでは、まず、
ステップS201,S202で、それぞれ、スタータスイッチ4
6がONされているか否か、エンジン回転数NEが完爆
回転数NESET(例えば、NESET=400rpm)に達し
ているか否かを判別する。
【0043】そして、スタータスイッチ46がONのエ
ンジン始動時、あるいは、NE≦NESETのときには、ス
テップS201あるいはステップS202からステップS218へ分
岐してエンジン始動時及び極低回転時を判別するための
始動時・極低回転時判別フラグFLAGSTをセットし
(FLAGST←1)、ルーチンを抜ける。
ンジン始動時、あるいは、NE≦NESETのときには、ス
テップS201あるいはステップS202からステップS218へ分
岐してエンジン始動時及び極低回転時を判別するための
始動時・極低回転時判別フラグFLAGSTをセットし
(FLAGST←1)、ルーチンを抜ける。
【0044】一方、スタータスイッチ46のONによる
エンジンのクランキング後、スタータスイッチ46がO
FFされ、NE>NESETとなってエンジンが完爆したと
きには、ステップS201,S202からステップS203へ進ん
で、始動時・極低回転時判別フラグFLAGSTをクリア
し(FLAGST←0)、ステップS204で、冷却水温TW
に基づき水温補正値ADVTW(角度データ)を設定す
る。
エンジンのクランキング後、スタータスイッチ46がO
FFされ、NE>NESETとなってエンジンが完爆したと
きには、ステップS201,S202からステップS203へ進ん
で、始動時・極低回転時判別フラグFLAGSTをクリア
し(FLAGST←0)、ステップS204で、冷却水温TW
に基づき水温補正値ADVTW(角度データ)を設定す
る。
【0045】次いで、ステップS205へ進み、後述する部
分補正テーブル領域特定手順のルーチンにおいてリター
ン先を決定するための定数Cに1をセットすると(C←
1)、ステップS206で、運転領域毎に部分的な補正を行
なうための部分補正テーブルTBADVPRTにおける領域A
DDRESSを特定し、ステップS207へ進む。
分補正テーブル領域特定手順のルーチンにおいてリター
ン先を決定するための定数Cに1をセットすると(C←
1)、ステップS206で、運転領域毎に部分的な補正を行
なうための部分補正テーブルTBADVPRTにおける領域A
DDRESSを特定し、ステップS207へ進む。
【0046】ステップS207では、上記ステップS206で特
定した部分補正テーブルTBADVPRTの領域ADDRES
Sから部分補正点火時期ADVPRTを読出し、次いで、
ステップS208で、エンジン回転数NEと、エンジン負荷
としての基本燃料噴射量TPとに基づき、基本進角値テ
ーブルを補間計算付きで参照して基本進角値IGREGを
設定する。
定した部分補正テーブルTBADVPRTの領域ADDRES
Sから部分補正点火時期ADVPRTを読出し、次いで、
ステップS208で、エンジン回転数NEと、エンジン負荷
としての基本燃料噴射量TPとに基づき、基本進角値テ
ーブルを補間計算付きで参照して基本進角値IGREGを
設定する。
【0047】上記基本進角値テーブルは、レギュラーガ
ソリンなどの低オクタン価の燃料を使用した際に、ノッ
キングを許容範囲内に抑えることのできるノック限界の
点火時期を基本進角値として、エンジン回転数NE、基
本燃料パルス幅TPをパラメータとして予め実験などに
より求めてROM39にストアされているものであり、
例えば、16×16格子の三次元テーブルとして構成さ
れている。
ソリンなどの低オクタン価の燃料を使用した際に、ノッ
キングを許容範囲内に抑えることのできるノック限界の
点火時期を基本進角値として、エンジン回転数NE、基
本燃料パルス幅TPをパラメータとして予め実験などに
より求めてROM39にストアされているものであり、
例えば、16×16格子の三次元テーブルとして構成さ
れている。
【0048】その後、ステップS209へ進むと、バックア
ップRAM40aにストアされている全体補正係数TCM
Pを読出し、ステップS210で、エンジン回転数NE、基本
燃料噴射量TPに基づき、高オクタン価燃料用進角値テ
ーブルを補間計算付きで参照して高オクタン価燃料用進
角値IGMBTを設定する。
ップRAM40aにストアされている全体補正係数TCM
Pを読出し、ステップS210で、エンジン回転数NE、基本
燃料噴射量TPに基づき、高オクタン価燃料用進角値テ
ーブルを補間計算付きで参照して高オクタン価燃料用進
角値IGMBTを設定する。
【0049】上記高オクタン価燃料用進角値テーブル
は、プレミアムガソリンなどの高オクタン価で耐ノック
性の高い燃料を使用した際に発揮することのできる許容
最大トルクを得られる点火時期を、エンジン回転数N
E、基本燃料パルス幅TPをパラメータとして予め実験な
どにより求め、ROM39に、例えば、16×16格子
の三次元テーブルとしてストアされているものである。
は、プレミアムガソリンなどの高オクタン価で耐ノック
性の高い燃料を使用した際に発揮することのできる許容
最大トルクを得られる点火時期を、エンジン回転数N
E、基本燃料パルス幅TPをパラメータとして予め実験な
どにより求め、ROM39に、例えば、16×16格子
の三次元テーブルとしてストアされているものである。
【0050】次いで、ステップS211へ進み、上記ステッ
プS208で設定した基本進角値IGREGと、上記ステップS
210で設定した高オクタン価燃料用進角値IGMBTに上記
ステップS209で読出した全体補正係数TCMPを乗算した
値とを加算し、全体補正点火時期(°CAを単位とする
角度データ)ADVTOTを算出する(ADVTOT←IGRE
G+TCMP×IGMBT)。
プS208で設定した基本進角値IGREGと、上記ステップS
210で設定した高オクタン価燃料用進角値IGMBTに上記
ステップS209で読出した全体補正係数TCMPを乗算した
値とを加算し、全体補正点火時期(°CAを単位とする
角度データ)ADVTOTを算出する(ADVTOT←IGRE
G+TCMP×IGMBT)。
【0051】そして、ステップS212へ進み、上記ステッ
プS211で算出した全体補正点火時期ADVTOTに、部分
補正点火時期ADVPRT及び水温補正値ADVTWを加算
して制御進角ADVを算出し(ADV←ADVTOT+A
DVPRT+ADVTW)、ステップS213で、制御進角AD
Vをθ2パルスを基準とした点火時刻、すなわち角度を
時間データに変換した点火タイミングTADVを設定する
(TADV←Tθ12×(θ2−ADV)/θ12)。但し、θ
12はθ1クランクパルスとθ2クランクパルスに対応する
角度差(例えば、θ1=97°CA、θ2=65°CAの
とき、θ12=32°CA)である。
プS211で算出した全体補正点火時期ADVTOTに、部分
補正点火時期ADVPRT及び水温補正値ADVTWを加算
して制御進角ADVを算出し(ADV←ADVTOT+A
DVPRT+ADVTW)、ステップS213で、制御進角AD
Vをθ2パルスを基準とした点火時刻、すなわち角度を
時間データに変換した点火タイミングTADVを設定する
(TADV←Tθ12×(θ2−ADV)/θ12)。但し、θ
12はθ1クランクパルスとθ2クランクパルスに対応する
角度差(例えば、θ1=97°CA、θ2=65°CAの
とき、θ12=32°CA)である。
【0052】次に、ステップS214へ進むと、バッテリ電
圧に基づき基本通電時間テーブルを補間計算付きで参照
して基本通電時間DWLBを設定すると、ステップS215
で、エンジン回転数NEに基づき回転補正テーブルを補
間計算付きで参照して回転補正KDWLNを設定する。尚、
上記基本通電時間DWLBは、バッテリ電圧が高いほど短
く設定され、上記回転補正KDWLNは、エンジン回転数N
Eが高いほど小さく設定される。
圧に基づき基本通電時間テーブルを補間計算付きで参照
して基本通電時間DWLBを設定すると、ステップS215
で、エンジン回転数NEに基づき回転補正テーブルを補
間計算付きで参照して回転補正KDWLNを設定する。尚、
上記基本通電時間DWLBは、バッテリ電圧が高いほど短
く設定され、上記回転補正KDWLNは、エンジン回転数N
Eが高いほど小さく設定される。
【0053】そして、ステップS216へ進んで、基本通電
時間DWLBに回転補正KDWLNを乗じて通電時間DWLを算
出すると(DWL←DWLB×KDWLN)、ステップS217で、
θ2クランクパルスを基準とした通電開始時刻すなわち
通電開始タイミングTDWLを設定して(TDWL←TADV−
DWL)ルーチンを抜ける。
時間DWLBに回転補正KDWLNを乗じて通電時間DWLを算
出すると(DWL←DWLB×KDWLN)、ステップS217で、
θ2クランクパルスを基準とした通電開始時刻すなわち
通電開始タイミングTDWLを設定して(TDWL←TADV−
DWL)ルーチンを抜ける。
【0054】この点火時期設定ルーチンで設定した点火
時期に対し、図9及び図10に示す通電・点火制御手順
のルーチンが、θ2、θ3クランクパルス割込みにより起
動され、点火対象気筒#iのドエル(通電)及びドエル
カット(点火)を行なう。
時期に対し、図9及び図10に示す通電・点火制御手順
のルーチンが、θ2、θ3クランクパルス割込みにより起
動され、点火対象気筒#iのドエル(通電)及びドエル
カット(点火)を行なう。
【0055】図9に示すθ2クランクパルスによる割込
みでは、ステップS301で、始動時・極低回転時判別フラ
グFLAGSTの値を参照し、FLAGST=1、すなわ
ち、始動時あるいは極低回転時にはステップS302へ分岐
して点火対象気筒#iのドエルを開始してルーチンを抜
け、FLAGST=0、すなわち、通常時には、ステップ
S303へ進んで、ドエルセットタイマTIM1及び点火セ
ットタイマTIM2のカウントを開始する。
みでは、ステップS301で、始動時・極低回転時判別フラ
グFLAGSTの値を参照し、FLAGST=1、すなわ
ち、始動時あるいは極低回転時にはステップS302へ分岐
して点火対象気筒#iのドエルを開始してルーチンを抜
け、FLAGST=0、すなわち、通常時には、ステップ
S303へ進んで、ドエルセットタイマTIM1及び点火セ
ットタイマTIM2のカウントを開始する。
【0056】次いで、ステップS304へ進むと、ドエルセ
ットタイマTIM1のカウント値が通電開始タイミング
TDWLに達したか否かを判別するループとなり、通電開
始タイミングTDWLに達すると、ステップS305へ進ん
で、点火対象気筒#iのドエルを開始し、ステップS306
で、ドエルセットタイマTIM1をクリアして(TIM1
←0)、ステップS307で、点火セットタイマTIM2の
カウント値が点火タイミングTADVに達したか否かを判
別する。
ットタイマTIM1のカウント値が通電開始タイミング
TDWLに達したか否かを判別するループとなり、通電開
始タイミングTDWLに達すると、ステップS305へ進ん
で、点火対象気筒#iのドエルを開始し、ステップS306
で、ドエルセットタイマTIM1をクリアして(TIM1
←0)、ステップS307で、点火セットタイマTIM2の
カウント値が点火タイミングTADVに達したか否かを判
別する。
【0057】そして、上記ステップS307で、点火セット
タイマTIM2のカウント値が点火タイミングTADVに達
すると、ステップS308へ進んで、点火対象気筒#iのド
エルカットすなわち点火を行ない、ステップS309で、点
火セットタイマTIM2をクリアして(TIM2←0)ル
ーチンを抜ける。
タイマTIM2のカウント値が点火タイミングTADVに達
すると、ステップS308へ進んで、点火対象気筒#iのド
エルカットすなわち点火を行ない、ステップS309で、点
火セットタイマTIM2をクリアして(TIM2←0)ル
ーチンを抜ける。
【0058】次に、θ3のクランクパルスが入力される
と、図10の割込みルーチンが起動され、ステップS401
で、始動時・極低回転時判別フラグFLAGSTの値を参
照し、FLAGST=0、すなわち、通常時にはそのまま
ルーチンを抜け、FLAGST=1、すなわち、始動時あ
るいは極低回転時には、ステップS402で、点火対象気筒
#iのドエルカットを行ない、ルーチンを抜ける。
と、図10の割込みルーチンが起動され、ステップS401
で、始動時・極低回転時判別フラグFLAGSTの値を参
照し、FLAGST=0、すなわち、通常時にはそのまま
ルーチンを抜け、FLAGST=1、すなわち、始動時あ
るいは極低回転時には、ステップS402で、点火対象気筒
#iのドエルカットを行ない、ルーチンを抜ける。
【0059】すなわち、図25に示すように、始動時あ
るいは極低回転時には、θ2(例えば、BTDC65
°)クランクパルスが入力されると直ちに該当気筒#i
のドエルを開始し、θ3(例えば、BTDC10°)ク
ランクパルスで点火を行なう固定点火時期となり、一
方、通常時には、θ2クランクパルスを基準として、こ
の基準から所定時間経過した通電開始タイミングTDWL
にてドエルを開始し、点火タイミングTADVにて点火を
行なうのである。
るいは極低回転時には、θ2(例えば、BTDC65
°)クランクパルスが入力されると直ちに該当気筒#i
のドエルを開始し、θ3(例えば、BTDC10°)ク
ランクパルスで点火を行なう固定点火時期となり、一
方、通常時には、θ2クランクパルスを基準として、こ
の基準から所定時間経過した通電開始タイミングTDWL
にてドエルを開始し、点火タイミングTADVにて点火を
行なうのである。
【0060】また、通常時の点火時期制御においては、
現在のエンジンの要求する点火時期の値が、低オクタン
価燃料用の基本進角値テーブルと高オクタン価燃料用進
角値テーブルとの2つの点火時期テーブルのどの位置に
あるかを決定する全体補正と、エンジン回転数とエンジ
ン負荷とをパラメータとする領域毎にノック発生の有無
により点火時期の値を補正する部分補正とが行われる。
以下、その手順について説明する。
現在のエンジンの要求する点火時期の値が、低オクタン
価燃料用の基本進角値テーブルと高オクタン価燃料用進
角値テーブルとの2つの点火時期テーブルのどの位置に
あるかを決定する全体補正と、エンジン回転数とエンジ
ン負荷とをパラメータとする領域毎にノック発生の有無
により点火時期の値を補正する部分補正とが行われる。
以下、その手順について説明する。
【0061】図11及び図12は全体補正係数及び部分
補正点火時期学習手順を示し、本実施例の4気筒エンジ
ンにおいては、エンジン1/2回転毎の点火に対し実行さ
れる(6気筒エンジンではエンジン1/3回転毎)。
補正点火時期学習手順を示し、本実施例の4気筒エンジ
ンにおいては、エンジン1/2回転毎の点火に対し実行さ
れる(6気筒エンジンではエンジン1/3回転毎)。
【0062】まず、ステップS501,S502,503で学習条件
の判別を行なう。すなわち、ステップS501で、始動時・
極低回転時判別フラグFLAGSTが”0”か否かを判別
し、ステップS502で、ノックセンサ20、ISCV11
などの点火時期に影響するセンサ、アクチュエータが正
常か否かをECU30の内部データにより判別し、ステ
ップS503で、冷却水温TWが暖機完了温度TWSET以上か
否かを判別する。
の判別を行なう。すなわち、ステップS501で、始動時・
極低回転時判別フラグFLAGSTが”0”か否かを判別
し、ステップS502で、ノックセンサ20、ISCV11
などの点火時期に影響するセンサ、アクチュエータが正
常か否かをECU30の内部データにより判別し、ステ
ップS503で、冷却水温TWが暖機完了温度TWSET以上か
否かを判別する。
【0063】そして、上記ステップS501,S502,S503で満
足されない条件がある場合には、そのステップからルー
チンを抜け、一方、ステップS501でFLAGST=0で通
常時であり、且つ、ステップS502でノックセンサ20、
ISCV11などの点火時期に影響するセンサ、アクチ
ュエータが正常であり、さらに、ステップS503で冷却水
温TWが暖機完了温度TWSET以上の場合、学習条件成立
と判別してステップS504へ進む。
足されない条件がある場合には、そのステップからルー
チンを抜け、一方、ステップS501でFLAGST=0で通
常時であり、且つ、ステップS502でノックセンサ20、
ISCV11などの点火時期に影響するセンサ、アクチ
ュエータが正常であり、さらに、ステップS503で冷却水
温TWが暖機完了温度TWSET以上の場合、学習条件成立
と判別してステップS504へ進む。
【0064】ステップS504では、バックアップRAM4
0aの所定アドレスから全体補正終了フラグFLAGTC
MPの値を読出し、全体補正が終了したか否かを判別す
る。そして、FLAGTCMP=0、すなわち、全体補正が
終了していないときには、ステップS504からステップS5
05へ進んで、ノック無しの状態の継続時間をカウントす
るノック無し継続時間タイマTIM3をクリアし(TI
M3←0)、ステップS506で、全体補正係数学習のサブ
ルーチンを呼び出して全体補正係数TCMPを学習し、ル
ーチンを終了する。
0aの所定アドレスから全体補正終了フラグFLAGTC
MPの値を読出し、全体補正が終了したか否かを判別す
る。そして、FLAGTCMP=0、すなわち、全体補正が
終了していないときには、ステップS504からステップS5
05へ進んで、ノック無しの状態の継続時間をカウントす
るノック無し継続時間タイマTIM3をクリアし(TI
M3←0)、ステップS506で、全体補正係数学習のサブ
ルーチンを呼び出して全体補正係数TCMPを学習し、ル
ーチンを終了する。
【0065】一方、上記ステップS504で、FLAGTCMP
=1、すなわち、全体補正が終了しているときには、ス
テップS504からステップS507以降へと分岐し、ステップ
S507,S508で、それぞれ、後述する全体補正係数学習の
サブルーチンにて、全体補正係数TCMPが上下限に達し
た状態をカウントするための制限カウント値COUNT
TCMP、ノック発生無しの状態をカウントするためのノッ
ク発生無しカウント値COUNTNKをクリアする(CO
UNTTCMP←0、COUNTNK←0)。
=1、すなわち、全体補正が終了しているときには、ス
テップS504からステップS507以降へと分岐し、ステップ
S507,S508で、それぞれ、後述する全体補正係数学習の
サブルーチンにて、全体補正係数TCMPが上下限に達し
た状態をカウントするための制限カウント値COUNT
TCMP、ノック発生無しの状態をカウントするためのノッ
ク発生無しカウント値COUNTNKをクリアする(CO
UNTTCMP←0、COUNTNK←0)。
【0066】その後、ステップS509で、部分補正点火時
期学習のサブルーチンを呼び出して部分補正点火時期A
DVPRTを学習し、次いで、部分補正の結果、全体補正
が不適当となって、再度、全体補正を行なう全体補正復
帰条件が成立するか否かを、ステップS510〜S514におい
て判別する。
期学習のサブルーチンを呼び出して部分補正点火時期A
DVPRTを学習し、次いで、部分補正の結果、全体補正
が不適当となって、再度、全体補正を行なう全体補正復
帰条件が成立するか否かを、ステップS510〜S514におい
て判別する。
【0067】すなわち、ステップS510で、学習した運転
領域の部分補正点火時期ADVPRTが負の値か否か(リ
タードか否か)を判別するとともに、ステップS511で、
全体補正係数TCMPが設定値TCLOW(但し、1.0>TCLOW
>0)以上か否かを判別し、ADVPRT<0(リタード)
且つTCMP≧TCLOWのときステップS512へ進み、これ以
外のときにはルーチンを抜ける。
領域の部分補正点火時期ADVPRTが負の値か否か(リ
タードか否か)を判別するとともに、ステップS511で、
全体補正係数TCMPが設定値TCLOW(但し、1.0>TCLOW
>0)以上か否かを判別し、ADVPRT<0(リタード)
且つTCMP≧TCLOWのときステップS512へ進み、これ以
外のときにはルーチンを抜ける。
【0068】ステップS512では、エンジン回転数NE、
基本燃料噴射量TPに基づき、高オクタン価燃料用進角
値テーブルから高オクタン価燃料用進角値IGMBTを設
定し、この高オクタン価燃料用進角値IGMBTに設定値
PCMPL(例えば、PCMPL=0.1〜0.4)を乗算した値IG
MBT×PCMPLと、部分補正点火時期ADVPRTの絶対値|
ADVPRT|とを、ステップS513にて比較する。
基本燃料噴射量TPに基づき、高オクタン価燃料用進角
値テーブルから高オクタン価燃料用進角値IGMBTを設
定し、この高オクタン価燃料用進角値IGMBTに設定値
PCMPL(例えば、PCMPL=0.1〜0.4)を乗算した値IG
MBT×PCMPLと、部分補正点火時期ADVPRTの絶対値|
ADVPRT|とを、ステップS513にて比較する。
【0069】そして、|ADVPRT|<IGMBT×PCMPL
のときには、ステップS513からルーチンを抜け、|AD
VPRT|≧IGMBT×PCMPLのとき、ステップS513からス
テップS514へ進んで、エンジン回転数NE及び基本燃料
噴射量TPが設定範囲内(NESETL3≦NE≦NESETH3、且
つ、TPSETL3≦TP≦TPSETH3)にあるか否かを判別
し、設定範囲内にないときにはルーチンを抜け、設定範
囲内のとき、ステップS515で、全体補正終了フラグFL
AGTCMPをクリアして(FLAGTCMP←0)ルーチンを
抜ける。
のときには、ステップS513からルーチンを抜け、|AD
VPRT|≧IGMBT×PCMPLのとき、ステップS513からス
テップS514へ進んで、エンジン回転数NE及び基本燃料
噴射量TPが設定範囲内(NESETL3≦NE≦NESETH3、且
つ、TPSETL3≦TP≦TPSETH3)にあるか否かを判別
し、設定範囲内にないときにはルーチンを抜け、設定範
囲内のとき、ステップS515で、全体補正終了フラグFL
AGTCMPをクリアして(FLAGTCMP←0)ルーチンを
抜ける。
【0070】上述のステップS506,S509における全体補
正係数学習のサブルーチン、部分補正点火時期学習のサ
ブルーチンは、それぞれ、図13〜図15、図16〜図
19に示される。
正係数学習のサブルーチン、部分補正点火時期学習のサ
ブルーチンは、それぞれ、図13〜図15、図16〜図
19に示される。
【0071】図13〜図15の全体補正係数学習のサブ
ルーチンでは、ステップS601で、エンジン回転数NE、
基本燃料噴射量TPが学習領域内(NESETL1≦NE≦NES
ETH1、且つ、TPSETL1≦TP≦TPSETH1)にあるか否か
を判別し、学習領域内にないときにはルーチンを抜け、
学習領域内にあるときには、ステップS602で、ノック発
生の有無を判別して、ノック発生有りのとき、ステップ
S603以降へ進み、、ノック発生無しのとき、ステップS6
13以降へ分岐する。
ルーチンでは、ステップS601で、エンジン回転数NE、
基本燃料噴射量TPが学習領域内(NESETL1≦NE≦NES
ETH1、且つ、TPSETL1≦TP≦TPSETH1)にあるか否か
を判別し、学習領域内にないときにはルーチンを抜け、
学習領域内にあるときには、ステップS602で、ノック発
生の有無を判別して、ノック発生有りのとき、ステップ
S603以降へ進み、、ノック発生無しのとき、ステップS6
13以降へ分岐する。
【0072】まず、ノック発生有りの場合について説明
すると、ステップS603で、ノックの有無の変化を判別す
るための全体補正ノック有無変化判別フラグFLAGNK
1の値を参照し、FLAGNK1=1のとき、すなわち、前
回もノック発生有りの状態であり、ノック有無の状態が
変化していないときには、ステップS605へジャンプし、
FLAGNK1=0のとき、すなわち、前回、ノック発生
無しであり、今回ノック発生有りとなったときには、ス
テップS604で、全体補正係数TCMPを更新するための変
化量ΔTCMPを前回の値の1/2に更新し(ΔTCMP←ΔTC
MP/2)、ステップS605へ進む。
すると、ステップS603で、ノックの有無の変化を判別す
るための全体補正ノック有無変化判別フラグFLAGNK
1の値を参照し、FLAGNK1=1のとき、すなわち、前
回もノック発生有りの状態であり、ノック有無の状態が
変化していないときには、ステップS605へジャンプし、
FLAGNK1=0のとき、すなわち、前回、ノック発生
無しであり、今回ノック発生有りとなったときには、ス
テップS604で、全体補正係数TCMPを更新するための変
化量ΔTCMPを前回の値の1/2に更新し(ΔTCMP←ΔTC
MP/2)、ステップS605へ進む。
【0073】ステップS605では、前回までの全体補正係
数TCMPを変化量ΔTCMPを減算して更新し(TCMP←TC
MP−ΔTCMP)、ステップS606で、部分補正テーブルT
BADVPRTを初期化する。すなわち、ノックが発生してい
るときには、エンジン1/2回転毎に全体補正係数TCMPを
遅角側に更新し、この全体補正係数TCMPの更新に伴い
部分補正テーブルTBADVPRTのテーブル値を全て”0”
にクリアして初期化するのである。
数TCMPを変化量ΔTCMPを減算して更新し(TCMP←TC
MP−ΔTCMP)、ステップS606で、部分補正テーブルT
BADVPRTを初期化する。すなわち、ノックが発生してい
るときには、エンジン1/2回転毎に全体補正係数TCMPを
遅角側に更新し、この全体補正係数TCMPの更新に伴い
部分補正テーブルTBADVPRTのテーブル値を全て”0”
にクリアして初期化するのである。
【0074】尚、部分補正テーブルTBADVPRTは、バッ
クアップRAM40aにストアされており、バックアッ
プ電源がOFFとなってバックアップRAM40a内の
データが破壊された場合には、電源再投入時、テーブル
値は全てクリアされ初期化される。
クアップRAM40aにストアされており、バックアッ
プ電源がOFFとなってバックアップRAM40a内の
データが破壊された場合には、電源再投入時、テーブル
値は全てクリアされ初期化される。
【0075】その後、ステップS607へ進むと、全体補正
係数TCMPが遅角側に更新されて負の値になったか否か
を判別し、TCMP≦0のとき、ステップS608で、全体補
正係数TCMPを”0”に固定して(TCMP←0)遅角制限
すると、ステップS609で、全体補正係数TCMPが上下限
に達した状態をカウントするための制限カウント値CO
UNTTCMPをカウントアップし(COUNTTCMP←CO
UNTTCMP+1)、ステップS611へ進む。
係数TCMPが遅角側に更新されて負の値になったか否か
を判別し、TCMP≦0のとき、ステップS608で、全体補
正係数TCMPを”0”に固定して(TCMP←0)遅角制限
すると、ステップS609で、全体補正係数TCMPが上下限
に達した状態をカウントするための制限カウント値CO
UNTTCMPをカウントアップし(COUNTTCMP←CO
UNTTCMP+1)、ステップS611へ進む。
【0076】また、上記ステップS607で、TCMP>0の
ときには、ステップS610で、制限カウント値COUNT
TCMPをクリアし(COUNTTCMP←0)、ステップS611
で、全体補正ノック有無変化判別フラグFLAGNK1を
セットすると(FLAGNK1←1)、ステップS612で、
ノック発生無しの状態をカウントするためのノック発生
無しカウント値COUNTNKをクリアし(COUNTNK
←0)、ステップS625へ進む。
ときには、ステップS610で、制限カウント値COUNT
TCMPをクリアし(COUNTTCMP←0)、ステップS611
で、全体補正ノック有無変化判別フラグFLAGNK1を
セットすると(FLAGNK1←1)、ステップS612で、
ノック発生無しの状態をカウントするためのノック発生
無しカウント値COUNTNKをクリアし(COUNTNK
←0)、ステップS625へ進む。
【0077】一方、上記ステップS602で、ノック発生無
しの場合には、ステップS613で、全体補正ノック有無変
化判別フラグFLAGNK1の値を参照し、FLAGNK1=
1のとき、すなわち、前回、ノック発生有りの状態から
ノック無しの状態に変化したときには、ステップS614へ
進んで、変化量ΔTCMPを前回の値の1/2に更新し(ΔT
CMP←ΔTCMP/2)、ステップS624で、全体補正ノック
有無変化判別フラグFLAGNK1をクリアして(FLA
GNK1←0)ステップS625へ進む。
しの場合には、ステップS613で、全体補正ノック有無変
化判別フラグFLAGNK1の値を参照し、FLAGNK1=
1のとき、すなわち、前回、ノック発生有りの状態から
ノック無しの状態に変化したときには、ステップS614へ
進んで、変化量ΔTCMPを前回の値の1/2に更新し(ΔT
CMP←ΔTCMP/2)、ステップS624で、全体補正ノック
有無変化判別フラグFLAGNK1をクリアして(FLA
GNK1←0)ステップS625へ進む。
【0078】また、上記ステップS613で、FLAGNK1
=0であり、前回から引き続きノック発生無しの状態が
継続しているときには、上記ステップS613からステップ
S615へ進んで、ノック発生無しカウント値COUNTNK
をカウントアップすると(COUNTNK←COUNTNK
+1)、ステップS616で、ノック発生無しカウント値C
OUNTNKが設定値CTOTJD以上となったか否かを判別
する。
=0であり、前回から引き続きノック発生無しの状態が
継続しているときには、上記ステップS613からステップ
S615へ進んで、ノック発生無しカウント値COUNTNK
をカウントアップすると(COUNTNK←COUNTNK
+1)、ステップS616で、ノック発生無しカウント値C
OUNTNKが設定値CTOTJD以上となったか否かを判別
する。
【0079】そして、上記ステップS616で、COUNT
NK<CTOTJDのときには、前述のステップS624へ分岐
し、COUNTNK≧CTOTJDのとき、すなわち、ノック
が設定回数の点火で発生しなかったときには、ステップ
S617へ進んで、前回までの全体補正係数TCMPに変化量
ΔTCMPを加算して進角側に更新し(TCMP←TCMP+Δ
TCMP)、ステップS618で、部分補正テーブルTBADVPR
Tを初期化する。
NK<CTOTJDのときには、前述のステップS624へ分岐
し、COUNTNK≧CTOTJDのとき、すなわち、ノック
が設定回数の点火で発生しなかったときには、ステップ
S617へ進んで、前回までの全体補正係数TCMPに変化量
ΔTCMPを加算して進角側に更新し(TCMP←TCMP+Δ
TCMP)、ステップS618で、部分補正テーブルTBADVPR
Tを初期化する。
【0080】次いで、ステップS619へ進み、進角側への
更新により全体補正係数TCMPが1.0以上となったか否か
を判別し、TCMP≧1.0のとき、ステップS620で、全体補
正係数TCMPを1.0に固定して(TCMP←1.0)進角制限す
ると、ステップS621で、制限カウント値COUNTTCMP
をカウントアップし(COUNTTCMP←COUNTTCMP
+1)、TCMP<1.0のときには、ステップS622で、制限
カウント値COUNTTCMPをクリアする(COUNTTC
MP←0)。
更新により全体補正係数TCMPが1.0以上となったか否か
を判別し、TCMP≧1.0のとき、ステップS620で、全体補
正係数TCMPを1.0に固定して(TCMP←1.0)進角制限す
ると、ステップS621で、制限カウント値COUNTTCMP
をカウントアップし(COUNTTCMP←COUNTTCMP
+1)、TCMP<1.0のときには、ステップS622で、制限
カウント値COUNTTCMPをクリアする(COUNTTC
MP←0)。
【0081】次いで、上記ステップS621あるいはステッ
プS622からステップS623へ進むと、ノック発生無しカウ
ント値COUNTNKをクリアして(COUNTNK←
0)、ステップS624で、全体補正ノック有無変化判別フ
ラグFLAGNK1をクリアし(FLAGNK1←0)、その
後、ステップS625で、変化量ΔTCMPを設定値DTCMP2
(例えば、1/16)と比較するとともに、ステップS626
で、制限カウント値COUNTTCMPを設定値NTCMPと比
較する。
プS622からステップS623へ進むと、ノック発生無しカウ
ント値COUNTNKをクリアして(COUNTNK←
0)、ステップS624で、全体補正ノック有無変化判別フ
ラグFLAGNK1をクリアし(FLAGNK1←0)、その
後、ステップS625で、変化量ΔTCMPを設定値DTCMP2
(例えば、1/16)と比較するとともに、ステップS626
で、制限カウント値COUNTTCMPを設定値NTCMPと比
較する。
【0082】そして、上記ステップS625,S626におい
て、ΔTCMP≦DTCMP2、あるいは、COUNTTCMP≧N
TCMPの条件が不成立のときには、ステップS627で、全体
補正終了フラグFLAGTCMPをクリアして(FLAGTC
MP←0)ルーチンを抜け、条件が1つでも成立したと
き、すなわち、変化量ΔTCMPが設定値DTCMP2以下のと
き、あるいは、全体補正係数TCMPが上下限となった状
態が設定回連続したときには、ステップS628で、全体補
正終了フラグFLAGTCMPをセットして(FLAGTCMP
←1)ルーチンを抜け、前述した全体補正係数及び部分
補正点火時期学習手順のルーチンが次回に起動されたと
き、全体補正を終了させて部分補正に移行させる。
て、ΔTCMP≦DTCMP2、あるいは、COUNTTCMP≧N
TCMPの条件が不成立のときには、ステップS627で、全体
補正終了フラグFLAGTCMPをクリアして(FLAGTC
MP←0)ルーチンを抜け、条件が1つでも成立したと
き、すなわち、変化量ΔTCMPが設定値DTCMP2以下のと
き、あるいは、全体補正係数TCMPが上下限となった状
態が設定回連続したときには、ステップS628で、全体補
正終了フラグFLAGTCMPをセットして(FLAGTCMP
←1)ルーチンを抜け、前述した全体補正係数及び部分
補正点火時期学習手順のルーチンが次回に起動されたと
き、全体補正を終了させて部分補正に移行させる。
【0083】尚、全体補正係数TCMP、変化量ΔTCMP、
全体補正終了フラグFLAGTCMPは、バックアップRA
M40aにストアされており、バッテリ35を取外すな
どしてバックアップ電源がOFFとなり、バックアップ
RAM40a内のデータが破壊された場合には、電源再
投入時に、それぞれ、初期値にイニシャルセットされる
(TCMP←TCMPINI(例えば、1/2)、ΔTCMP←ΔTCMP
INI(例えば、1/4)、FLAGTCMP←0)。
全体補正終了フラグFLAGTCMPは、バックアップRA
M40aにストアされており、バッテリ35を取外すな
どしてバックアップ電源がOFFとなり、バックアップ
RAM40a内のデータが破壊された場合には、電源再
投入時に、それぞれ、初期値にイニシャルセットされる
(TCMP←TCMPINI(例えば、1/2)、ΔTCMP←ΔTCMP
INI(例えば、1/4)、FLAGTCMP←0)。
【0084】また、図16〜図19の部分補正点火時期
学習のサブルーチンでは、ステップS701で、エンジン回
転数NE、基本燃料噴射量TPが、部分補正テーブルTB
ADVPRTの領域内(NE0≦NE≦NEN、且つ、TP0≦TP≦
TPN)か否かを判別し、領域内にないときにはルーチン
を抜け、領域内にあるとき、ステップS702で、ノック発
生の有無を判別する。
学習のサブルーチンでは、ステップS701で、エンジン回
転数NE、基本燃料噴射量TPが、部分補正テーブルTB
ADVPRTの領域内(NE0≦NE≦NEN、且つ、TP0≦TP≦
TPN)か否かを判別し、領域内にないときにはルーチン
を抜け、領域内にあるとき、ステップS702で、ノック発
生の有無を判別する。
【0085】そして、ノック発生有りの場合には、ステ
ップS702からステップS703へ進み、ノック無しの状態の
継続時間をカウントするためのノック無し継続時間タイ
マTIM3をクリアし(TIM3←0)、ステップS704
で、後述する部分補正テーブル領域特定手順のルーチン
においてリターン先を決定するための定数Cに2をセッ
トすると(C←2)、ステップS705で、部分補正テーブ
ルTBADVPRTにおける領域ADDRESSを特定し、ス
テップS706へ進む。
ップS702からステップS703へ進み、ノック無しの状態の
継続時間をカウントするためのノック無し継続時間タイ
マTIM3をクリアし(TIM3←0)、ステップS704
で、後述する部分補正テーブル領域特定手順のルーチン
においてリターン先を決定するための定数Cに2をセッ
トすると(C←2)、ステップS705で、部分補正テーブ
ルTBADVPRTにおける領域ADDRESSを特定し、ス
テップS706へ進む。
【0086】ステップS706では、上記ステップS705で特
定した部分補正テーブルTBADVPRTの領域ADDRES
Sから部分補正点火時期ADVPRTを読出し、ステップS
707で、この読出した部分補正点火時期ADVPRTを旧テ
ーブル値(ADVPRT)OLDとし((ADVPRT)OLD←ADV
PRT)、ステップS708で、旧テーブル値(ADVPRT)OLD
から設定値DRETPを減算して新テーブル値(ADVPRT)N
EWとする((ADVPRT)NEW←(ADVPRT)OLD−DRETP)
ことにより、1回ノックが発生する毎に設定値DRETPず
つ遅角させる。
定した部分補正テーブルTBADVPRTの領域ADDRES
Sから部分補正点火時期ADVPRTを読出し、ステップS
707で、この読出した部分補正点火時期ADVPRTを旧テ
ーブル値(ADVPRT)OLDとし((ADVPRT)OLD←ADV
PRT)、ステップS708で、旧テーブル値(ADVPRT)OLD
から設定値DRETPを減算して新テーブル値(ADVPRT)N
EWとする((ADVPRT)NEW←(ADVPRT)OLD−DRETP)
ことにより、1回ノックが発生する毎に設定値DRETPず
つ遅角させる。
【0087】次いで、ステップS709へ進み、新テーブル
値(ADVPRT)NEWを遅角制限値LWLMTPと比較し、(A
DVPRT)NEW>LWLMTPのときには、ステップS711にジ
ャンプする一方、(ADVPRT)NEW≦LWLMTPのときに
は、ステップS710で、新テーブル値(ADVPRT)NEWを遅
角制限値LWLMTPに固定して((ADVPRT)NEW←LWLM
TP)ステップS711に進み、制限値以上の遅角化を防止す
る。
値(ADVPRT)NEWを遅角制限値LWLMTPと比較し、(A
DVPRT)NEW>LWLMTPのときには、ステップS711にジ
ャンプする一方、(ADVPRT)NEW≦LWLMTPのときに
は、ステップS710で、新テーブル値(ADVPRT)NEWを遅
角制限値LWLMTPに固定して((ADVPRT)NEW←LWLM
TP)ステップS711に進み、制限値以上の遅角化を防止す
る。
【0088】ステップS711では、部分補正テーブルTB
ADVPRTの該当領域ADDRESSの部分補正点火時期A
DVPRTを新テーブル値(ADVPRT)NEWで更新し(AD
VPRT←(ADVPRT)NEW)、ステップS712で、ノックの
有無の変化を判別するための部分補正ノック有無変化判
別フラグFLAGNK2をセットして(FLAGNK2←1)
ルーチンを抜ける。
ADVPRTの該当領域ADDRESSの部分補正点火時期A
DVPRTを新テーブル値(ADVPRT)NEWで更新し(AD
VPRT←(ADVPRT)NEW)、ステップS712で、ノックの
有無の変化を判別するための部分補正ノック有無変化判
別フラグFLAGNK2をセットして(FLAGNK2←1)
ルーチンを抜ける。
【0089】一方、上記ステップS702で、ノック発生無
しの場合には、上記ステップS702からステップS713へ分
岐し、部分補正ノック有無変化判別フラグFLAGNK2
の値を参照し、FLAGNK2=1のとき、すなわち、前
回、ノック発生有りの状態からノック無しの状態に変化
したときには、ステップS735へジャンプして、ノック無
し継続時間タイマTIM3をスタートさせ、ステップS73
6で、部分補正ノック有無変化判別フラグFLAGNK2を
クリアして(FLAGNK2←0)ルーチンを抜ける。
しの場合には、上記ステップS702からステップS713へ分
岐し、部分補正ノック有無変化判別フラグFLAGNK2
の値を参照し、FLAGNK2=1のとき、すなわち、前
回、ノック発生有りの状態からノック無しの状態に変化
したときには、ステップS735へジャンプして、ノック無
し継続時間タイマTIM3をスタートさせ、ステップS73
6で、部分補正ノック有無変化判別フラグFLAGNK2を
クリアして(FLAGNK2←0)ルーチンを抜ける。
【0090】また、部分補正ノック有無変化判別フラグ
FLAGNK2がFLAGNK2=0のとき、すなわち、前回
ルーチン実行時もノック発生無しのときには、上記ステ
ップS713からステップS714へ進んで、定数Cに3をセッ
トし(C←3)、ステップS715で部分補正テーブルTB
ADVPRTにおける領域ADDRESSを特定する。
FLAGNK2がFLAGNK2=0のとき、すなわち、前回
ルーチン実行時もノック発生無しのときには、上記ステ
ップS713からステップS714へ進んで、定数Cに3をセッ
トし(C←3)、ステップS715で部分補正テーブルTB
ADVPRTにおける領域ADDRESSを特定する。
【0091】その後、ステップS716へ進んで、上記ステ
ップS715で特定した領域ADDRESSを新領域(AD
DRESS)NEWとし((ADDRESS)NEW←ADDR
ESS)、ステップS717で、この新領域(ADDRES
S)NEWが前回の旧領域(ADDRESS)OLDと同じか否
かを判別する。
ップS715で特定した領域ADDRESSを新領域(AD
DRESS)NEWとし((ADDRESS)NEW←ADDR
ESS)、ステップS717で、この新領域(ADDRES
S)NEWが前回の旧領域(ADDRESS)OLDと同じか否
かを判別する。
【0092】そして、今回のルーチン実行時の新領域
(ADDRESS)NEWが前回のルーチン実行時の旧領域
(ADDRESS)OLDと異なる場合には、上記ステップS
717からステップS733へ分岐してノック無し継続時間タ
イマTIM3をクリアし(TIM3←0)、ステップS734
で、新領域(ADDRESS)NEWを旧領域(ADDRES
S)OLDとして((ADDRESS)OLD←(ADDRES
S)NEW)、前述したステップS735,S736を経てルーチン
を抜ける。
(ADDRESS)NEWが前回のルーチン実行時の旧領域
(ADDRESS)OLDと異なる場合には、上記ステップS
717からステップS733へ分岐してノック無し継続時間タ
イマTIM3をクリアし(TIM3←0)、ステップS734
で、新領域(ADDRESS)NEWを旧領域(ADDRES
S)OLDとして((ADDRESS)OLD←(ADDRES
S)NEW)、前述したステップS735,S736を経てルーチン
を抜ける。
【0093】一方、今回のルーチン実行時の新領域(A
DDRESS)NEWが前回のルーチン実行時の旧領域(A
DDRESS)OLDと同じ場合には、上記ステップS717か
らステップS718へ進んで、新領域(ADDRESS)NEW
を旧領域(ADDRESS)OLDとし((ADDRESS)O
LD←(ADDRESS)NEW)、ステップS719で、ノック
無し継続時間タイマTIM3の計時が設定時間TIMPRT
以上経過したか否かを判別する。
DDRESS)NEWが前回のルーチン実行時の旧領域(A
DDRESS)OLDと同じ場合には、上記ステップS717か
らステップS718へ進んで、新領域(ADDRESS)NEW
を旧領域(ADDRESS)OLDとし((ADDRESS)O
LD←(ADDRESS)NEW)、ステップS719で、ノック
無し継続時間タイマTIM3の計時が設定時間TIMPRT
以上経過したか否かを判別する。
【0094】上記ステップS719で、ノック無し継続時間
タイマTIM3の計時が設定時間TIMPRTを越えていな
いときには、前述のステップS736を経てルーチンを抜
け、ノック無し継続時間タイマTIM3の計時が設定時
間TIMPRT以上となったときには、ステップS720で、
ノック無し継続時間タイマTIM3をクリアして(TI
M3←0)ステップS721へ進み、部分補正テーブルTBA
DVPRTの該当領域ADDRESSから部分補正点火時期
ADVPRTを読出す。
タイマTIM3の計時が設定時間TIMPRTを越えていな
いときには、前述のステップS736を経てルーチンを抜
け、ノック無し継続時間タイマTIM3の計時が設定時
間TIMPRT以上となったときには、ステップS720で、
ノック無し継続時間タイマTIM3をクリアして(TI
M3←0)ステップS721へ進み、部分補正テーブルTBA
DVPRTの該当領域ADDRESSから部分補正点火時期
ADVPRTを読出す。
【0095】その後、ステップS722へ進んで、読出した
部分補正点火時期ADVPRTを旧テーブル値(ADVPRT)
OLDとし((ADVPRT)OLD←ADVPRT)、ステップS723
で、旧テーブル値(ADVPRT)OLDに設定値DADVPを加算
して新テーブル値(ADVPRT)NEWとする((ADVPRT)N
EW←(ADVPRT)OLD+DADVP)ことにより、同一の運転
領域でノックが発生していなければ、設定時間TIMPR
T毎に設定値DADVPずつ進角させ、ステップS724へ進
む。
部分補正点火時期ADVPRTを旧テーブル値(ADVPRT)
OLDとし((ADVPRT)OLD←ADVPRT)、ステップS723
で、旧テーブル値(ADVPRT)OLDに設定値DADVPを加算
して新テーブル値(ADVPRT)NEWとする((ADVPRT)N
EW←(ADVPRT)OLD+DADVP)ことにより、同一の運転
領域でノックが発生していなければ、設定時間TIMPR
T毎に設定値DADVPずつ進角させ、ステップS724へ進
む。
【0096】ステップS724では、エンジン回転数NE、
基本燃料噴射量TPに基づき、高オクタン価燃料用進角
値テーブルを参照して高オクタン価燃料用進角値IGMB
Tを設定すると、ステップS725で、全体補正係数TCMPを
バックアップRAM40aから読出す。
基本燃料噴射量TPに基づき、高オクタン価燃料用進角
値テーブルを参照して高オクタン価燃料用進角値IGMB
Tを設定すると、ステップS725で、全体補正係数TCMPを
バックアップRAM40aから読出す。
【0097】次に、ステップS726で、高オクタン価燃料
用進角値IGMBTに全体補正係数TCMPの上限との差(1
−TCMP)を乗算した値を、部分補正点火時期制限値A
DVPRTLIMとし(ADVPRTLIM←IGMBT×(1−TCM
P))、この新テーブル値(ADVPRT)NEWを、ステップS7
27以降で、設定値UPLMTPと部分補正点火時期制限値A
DVPRTLIMとの小さい方の値に進角制限する。
用進角値IGMBTに全体補正係数TCMPの上限との差(1
−TCMP)を乗算した値を、部分補正点火時期制限値A
DVPRTLIMとし(ADVPRTLIM←IGMBT×(1−TCM
P))、この新テーブル値(ADVPRT)NEWを、ステップS7
27以降で、設定値UPLMTPと部分補正点火時期制限値A
DVPRTLIMとの小さい方の値に進角制限する。
【0098】すなわち、ステップS727で、部分補正点火
時期制限値ADVPRTLIMと設定値UPLMTPと比較し、U
PLMTP≦ADVPRTLIMのときには、上記ステップS727か
らステップS728へ進んで、上記ステップS723で設定した
新テーブル値(ADVPRT)NEWと設定値UPLMTPとを比較
する。
時期制限値ADVPRTLIMと設定値UPLMTPと比較し、U
PLMTP≦ADVPRTLIMのときには、上記ステップS727か
らステップS728へ進んで、上記ステップS723で設定した
新テーブル値(ADVPRT)NEWと設定値UPLMTPとを比較
する。
【0099】その比較結果、(ADVPRT)NEW<UPLMTP
のときには、上記ステップS728からステップS732へジャ
ンプし、(ADVPRT)NEW≧UPLMTPのときには、ステッ
プS729で、設定値UPLMTPを新テーブル値(ADVPRT)N
EWとして((ADVPRT)NEW←UPLMTP)、ステップS732
へ進む。
のときには、上記ステップS728からステップS732へジャ
ンプし、(ADVPRT)NEW≧UPLMTPのときには、ステッ
プS729で、設定値UPLMTPを新テーブル値(ADVPRT)N
EWとして((ADVPRT)NEW←UPLMTP)、ステップS732
へ進む。
【0100】一方、上記ステップS727での比較結果、U
PLMTP>ADVPRTLIMのときには、上記ステップS727か
らステップS730へ分岐して新テーブル値(ADVPRT)NEW
と部分補正点火時期制限値ADVPRTLIMとを比較し、
(ADVPRT)NEW<ADVPRTLIMのときにはステップS732
にジャンプし、(ADVPRT)NEW≧ADVPRTLIMのときに
は、ステップS731で、部分補正点火時期制限値ADVPR
TLIMを新テーブル値(ADVPRT)NEWとして((ADVPR
T)NEW←ADVPRTLIM)、ステップS732へ進む。
PLMTP>ADVPRTLIMのときには、上記ステップS727か
らステップS730へ分岐して新テーブル値(ADVPRT)NEW
と部分補正点火時期制限値ADVPRTLIMとを比較し、
(ADVPRT)NEW<ADVPRTLIMのときにはステップS732
にジャンプし、(ADVPRT)NEW≧ADVPRTLIMのときに
は、ステップS731で、部分補正点火時期制限値ADVPR
TLIMを新テーブル値(ADVPRT)NEWとして((ADVPR
T)NEW←ADVPRTLIM)、ステップS732へ進む。
【0101】そして、一連の進角制限のステップを経て
ステップS732へ進むと、部分補正テーブルTBADVPRTの
該当領域ADDRESSの部分補正点火時期ADVPRT
を、新テーブル値(ADVPRT)NEWにて更新し(ADVPR
T←(ADVPRT)NEW)、ステップS736で、部分補正ノッ
ク有無変化判別フラグFLAGNK2をクリアして(FL
AGNK2←0)ルーチンを抜ける。
ステップS732へ進むと、部分補正テーブルTBADVPRTの
該当領域ADDRESSの部分補正点火時期ADVPRT
を、新テーブル値(ADVPRT)NEWにて更新し(ADVPR
T←(ADVPRT)NEW)、ステップS736で、部分補正ノッ
ク有無変化判別フラグFLAGNK2をクリアして(FL
AGNK2←0)ルーチンを抜ける。
【0102】これにより、全体補正点火時期ADVTOT
(=IGREG+TCMP×IGMBT)と部分補正点火時期A
DVPRTとの加算値は、IGREG+IGMBT以下に制限さ
れ、過進角が防止される。
(=IGREG+TCMP×IGMBT)と部分補正点火時期A
DVPRTとの加算値は、IGREG+IGMBT以下に制限さ
れ、過進角が防止される。
【0103】次に、この部分補正点火時期学習サブルー
チンのステップS705,S715、及び、前述した点火時期設
定ルーチンのステップS206において呼び出される部分補
正テーブル領域特定サブルーチンについて説明する。
チンのステップS705,S715、及び、前述した点火時期設
定ルーチンのステップS206において呼び出される部分補
正テーブル領域特定サブルーチンについて説明する。
【0104】まず、部分補正テーブルTBADVPRTは、図
20に示すように、エンジン回転数NEをパラメータと
する格子番号(NE格子番号;NE0,NE1,NE2,NE3,
…,NEn-1,NEn)と、エンジン負荷としての基本燃料
噴射量TPをパラメータとする格子番号(TP格子番号;
TP0,TP1,TP2,TP3,…,TPn-1,TPn)とによ
り、部分補正点火時期ADVPRTが格納された各領域A
DDRESS11,…,ADDRESSnnの境界が形成さ
れる。
20に示すように、エンジン回転数NEをパラメータと
する格子番号(NE格子番号;NE0,NE1,NE2,NE3,
…,NEn-1,NEn)と、エンジン負荷としての基本燃料
噴射量TPをパラメータとする格子番号(TP格子番号;
TP0,TP1,TP2,TP3,…,TPn-1,TPn)とによ
り、部分補正点火時期ADVPRTが格納された各領域A
DDRESS11,…,ADDRESSnnの境界が形成さ
れる。
【0105】尚、上述の基本燃料噴射量TPは、エンジ
ン負荷の一例であり、その他、燃料噴射量あるいは1行
程当たりの吸入空気量などを用いても良い。
ン負荷の一例であり、その他、燃料噴射量あるいは1行
程当たりの吸入空気量などを用いても良い。
【0106】そして、各領域はエンジン回転数領域(N
E領域)番号と基本燃料噴射量領域(TP領域)番号とに
よって特定することができ、例えば、NE格子番号NE3
とTP格子番号TP2の図中のA位置の領域は、NE領域番
号N3とTP領域番号T2とによって特定することができ
る。
E領域)番号と基本燃料噴射量領域(TP領域)番号とに
よって特定することができ、例えば、NE格子番号NE3
とTP格子番号TP2の図中のA位置の領域は、NE領域番
号N3とTP領域番号T2とによって特定することができ
る。
【0107】従って、図1〜図5に示される部分補正テ
ーブル領域特定サブルーチンでは、ステップS801で、前
回のルーチン実行時に決定された部分補正テーブルTB
ADVPRTのNE領域番号データを読出すと、ステップS802
で、このNE領域番号より1つ小さい番号のNE領域のN
E格子番号NEi(例えば、前回のNE領域番号がN3であ
れば、NE領域番号N2のNE格子番号NE2)を読出す。
ーブル領域特定サブルーチンでは、ステップS801で、前
回のルーチン実行時に決定された部分補正テーブルTB
ADVPRTのNE領域番号データを読出すと、ステップS802
で、このNE領域番号より1つ小さい番号のNE領域のN
E格子番号NEi(例えば、前回のNE領域番号がN3であ
れば、NE領域番号N2のNE格子番号NE2)を読出す。
【0108】次いで、上記ステップS802からステップS8
03へ進み、現在のエンジン回転数NEと、上記ステップS
802で読出したNE格子番号NEiとを比較し、NE>NEi
の場合には、ステップS804以下で、現在のエンジン回転
数NEが具体的にどのNE格子番号よりも小さいか否かを
判別することによりNE領域番号を決定し、NE≦NEiの
場合には、ステップS823以下へ分岐し、NE格子番号に
ヒステリシスを設けた相対位置に対して現在のエンジン
回転数NEが小さいか否かを判別することにより、NE領
域番号を決定する。
03へ進み、現在のエンジン回転数NEと、上記ステップS
802で読出したNE格子番号NEiとを比較し、NE>NEi
の場合には、ステップS804以下で、現在のエンジン回転
数NEが具体的にどのNE格子番号よりも小さいか否かを
判別することによりNE領域番号を決定し、NE≦NEiの
場合には、ステップS823以下へ分岐し、NE格子番号に
ヒステリシスを設けた相対位置に対して現在のエンジン
回転数NEが小さいか否かを判別することにより、NE領
域番号を決定する。
【0109】すなわち、ステップS803での比較結果、N
E>NEiの場合、ステップS804で、エンジン回転数NEと
NE格子番号NE1とを比較し、NE<NE1のとき、ステッ
プS805で、NE領域番号をN1とし、NE≧NE1のとき、
ステップS806へ分岐して、エンジン回転数NEとNE格子
番号NE2とを比較する。
E>NEiの場合、ステップS804で、エンジン回転数NEと
NE格子番号NE1とを比較し、NE<NE1のとき、ステッ
プS805で、NE領域番号をN1とし、NE≧NE1のとき、
ステップS806へ分岐して、エンジン回転数NEとNE格子
番号NE2とを比較する。
【0110】その結果、NE<NE2のときには、ステッ
プS807でNE領域番号をN2とし、NE≧NE2のときに
は、ステップS808でエンジン回転数NEとNE格子番号N
E3とを比較して、NE<NE3のとき、ステップS809で、
NE領域番号をN3とする。
プS807でNE領域番号をN2とし、NE≧NE2のときに
は、ステップS808でエンジン回転数NEとNE格子番号N
E3とを比較して、NE<NE3のとき、ステップS809で、
NE領域番号をN3とする。
【0111】さらに、上記ステップS808での比較結果、
NE≧NE3のときには、順にNE格子番号を大きくして比
較を続け、最終的に、ステップS820で、エンジン回転数
NEとNE格子番号NEn-1とを比較し、NE<NEn-1のと
き、ステップS821で、NE領域番号をNn-1とし、NE≧
NEn-1のとき、ステップS822で、NE領域番号をNnとす
る。
NE≧NE3のときには、順にNE格子番号を大きくして比
較を続け、最終的に、ステップS820で、エンジン回転数
NEとNE格子番号NEn-1とを比較し、NE<NEn-1のと
き、ステップS821で、NE領域番号をNn-1とし、NE≧
NEn-1のとき、ステップS822で、NE領域番号をNnとす
る。
【0112】一方、上記ステップS803での比較結果、N
E≦NEiの場合には、ステップS823で、NE格子番号NE1
から設定値NEHISを減算した値とエンジン回転数NEと
を比較し、NE<NE1−NEHISのとき、ステップS824
で、NE領域番号をN1とし、NE≧NE1−NEHISのと
き、ステップS825へ分岐して、NE格子番号NE2から設
定値NEHISを減算した値とエンジン回転数NEとを比較
する。
E≦NEiの場合には、ステップS823で、NE格子番号NE1
から設定値NEHISを減算した値とエンジン回転数NEと
を比較し、NE<NE1−NEHISのとき、ステップS824
で、NE領域番号をN1とし、NE≧NE1−NEHISのと
き、ステップS825へ分岐して、NE格子番号NE2から設
定値NEHISを減算した値とエンジン回転数NEとを比較
する。
【0113】そして、上記ステップS825での比較結果、
NE<NE2−NEHISのときには、ステップS826でNE領域
番号をN2とし、NE≧NE2−NEHISのときには、ステッ
プS827でNE格子番号NE3から設定値NEHISを減算した
値とエンジン回転数NEとを比較して、NE<NE3−NEH
ISのとき、ステップS828で、NE領域番号をN3とする。
NE<NE2−NEHISのときには、ステップS826でNE領域
番号をN2とし、NE≧NE2−NEHISのときには、ステッ
プS827でNE格子番号NE3から設定値NEHISを減算した
値とエンジン回転数NEとを比較して、NE<NE3−NEH
ISのとき、ステップS828で、NE領域番号をN3とする。
【0114】さらに、上記ステップS827での比較結果、
NE≧NE3−NEHISのときには、順にNE格子番号を大き
くして比較を続け、最終的に、ステップS840で、NE格
子番号NEn-1から設定値NEHISを減算した値とエンジン
回転数NEとを比較し、NE<NEn-1−NEHISのとき、ス
テップS841で、NE領域番号をNn-1とし、NE≧NEn-1
−NEHISのとき、ステップS842で、NE領域番号をNnと
する。
NE≧NE3−NEHISのときには、順にNE格子番号を大き
くして比較を続け、最終的に、ステップS840で、NE格
子番号NEn-1から設定値NEHISを減算した値とエンジン
回転数NEとを比較し、NE<NEn-1−NEHISのとき、ス
テップS841で、NE領域番号をNn-1とし、NE≧NEn-1
−NEHISのとき、ステップS842で、NE領域番号をNnと
する。
【0115】以上の手順によりNE領域番号を決定する
と、次に、ステップS843へ進んで前回のTP領域番号デ
ータを読出し、ステップS844で、このTP領域番号より
1つ小さい番号のTP領域のTP格子番号TPiを読出す。
と、次に、ステップS843へ進んで前回のTP領域番号デ
ータを読出し、ステップS844で、このTP領域番号より
1つ小さい番号のTP領域のTP格子番号TPiを読出す。
【0116】次いで、ステップS845へ進み、現在の基本
燃料噴射量TPと、上記ステップS844で読出したTP格子
番号TPiとを比較し、TP>TPiの場合には、ステップS
846以下で、現在の基本燃料噴射量TPが具体的にどのT
P格子番号よりも小さいか否かを判別することによりTP
領域番号を決定し、TP≦TPiの場合には、ステップS87
3以下へ分岐して、TP格子番号から設定値TPHISを減算
してヒステリシスを設け、このヒステリシスを設けた相
対位置に対して現在の基本燃料噴射量TPが小さいか否
かを判別することによりTP領域番号を決定する。
燃料噴射量TPと、上記ステップS844で読出したTP格子
番号TPiとを比較し、TP>TPiの場合には、ステップS
846以下で、現在の基本燃料噴射量TPが具体的にどのT
P格子番号よりも小さいか否かを判別することによりTP
領域番号を決定し、TP≦TPiの場合には、ステップS87
3以下へ分岐して、TP格子番号から設定値TPHISを減算
してヒステリシスを設け、このヒステリシスを設けた相
対位置に対して現在の基本燃料噴射量TPが小さいか否
かを判別することによりTP領域番号を決定する。
【0117】すなわち、上述したNE領域番号の決定と
同様の手順で、基本燃料噴射量TPとTP格子番号TP1,
TP2,TP3,…,TPn-1とを比較する各ステップ(ステ
ップS846,S848,S850,…,S870)での比較結果により、T
P領域をT1,T2,T3,…,Tn-1,Tnのいずれかに決
定する(ステップS847,S849,S851,…,S871,S872)。
同様の手順で、基本燃料噴射量TPとTP格子番号TP1,
TP2,TP3,…,TPn-1とを比較する各ステップ(ステ
ップS846,S848,S850,…,S870)での比較結果により、T
P領域をT1,T2,T3,…,Tn-1,Tnのいずれかに決
定する(ステップS847,S849,S851,…,S871,S872)。
【0118】あるいは、上述したNE領域番号の決定と
同様の手順で、TP格子番号から設定値TPHISを減算し
た値TP1−TPHIS,TP2−TPHIS,TP3−TPHIS,…,
TPn-1−TPHISと基本燃料噴射量TPとを比較する各ス
テップ(ステップS873,S875,S877,…,S890)での比較結
果により、TP領域をT1,T2,T3,…,Tn-1,Tnの
いずれかに決定する(ステップS874,S876,S878,…,S89
1,S892)。
同様の手順で、TP格子番号から設定値TPHISを減算し
た値TP1−TPHIS,TP2−TPHIS,TP3−TPHIS,…,
TPn-1−TPHISと基本燃料噴射量TPとを比較する各ス
テップ(ステップS873,S875,S877,…,S890)での比較結
果により、TP領域をT1,T2,T3,…,Tn-1,Tnの
いずれかに決定する(ステップS874,S876,S878,…,S89
1,S892)。
【0119】次いで、TP領域番号を決定するとステッ
プS893へ進み、決定したNE領域及びTP領域により、部
分補正テーブルTBADVPRTの領域ADDRESSを特定
する(例えば、NE領域番号がN2、TP領域番号がT2の
場合、領域ADDRESS22を特定する)。
プS893へ進み、決定したNE領域及びTP領域により、部
分補正テーブルTBADVPRTの領域ADDRESSを特定
する(例えば、NE領域番号がN2、TP領域番号がT2の
場合、領域ADDRESS22を特定する)。
【0120】この際、例えば、エンジン運転状態が、図
20のA位置(領域ADDRESS32)からB1位置に
変化すると、NE領域番号がN2、TP領域番号がT2と決
定されて新たな領域がADDRESS22が特定される
が、B2の位置に変化した場合には、図中に破線で示す
ヒステリシス内のため、NE領域番号はN3、TP領域番
号はT2と決定されて、前回と同じ領域ADDRESS3
2となる。
20のA位置(領域ADDRESS32)からB1位置に
変化すると、NE領域番号がN2、TP領域番号がT2と決
定されて新たな領域がADDRESS22が特定される
が、B2の位置に変化した場合には、図中に破線で示す
ヒステリシス内のため、NE領域番号はN3、TP領域番
号はT2と決定されて、前回と同じ領域ADDRESS3
2となる。
【0121】これにより、部分補正テーブルTBADVPRT
の格子上あるいは格子近傍で、エンジン回転数NE、基
本燃料噴射量TPなどのパラメータが変動しても、読出
されるテーブル値が変動することが防止され、点火時期
が急激に遅角あるいは進角されることによる制御ハンチ
ングの発生を防止して安定した点火時期制御を行なうこ
とができる。尚、本発明は、補間計算なしでテーブルを
参照する場合には、特に有効である。
の格子上あるいは格子近傍で、エンジン回転数NE、基
本燃料噴射量TPなどのパラメータが変動しても、読出
されるテーブル値が変動することが防止され、点火時期
が急激に遅角あるいは進角されることによる制御ハンチ
ングの発生を防止して安定した点火時期制御を行なうこ
とができる。尚、本発明は、補間計算なしでテーブルを
参照する場合には、特に有効である。
【0122】その後、上記ステップS893からステップS8
94へ進むと、サブルーチンのリターン先決定のための定
数Cの値を参照し、C=1のとき、前述した点火時期設
定ルーチンのステップS207へ復帰し、C≠1のとき、ス
テップS895へ進んで、C=2のとき、部分補正点火時期
学習サブルーチンのステップS706へ復帰し、C≠2のと
き、部分補正点火時期学習サブルーチンのステップS716
へと復帰する。
94へ進むと、サブルーチンのリターン先決定のための定
数Cの値を参照し、C=1のとき、前述した点火時期設
定ルーチンのステップS207へ復帰し、C≠1のとき、ス
テップS895へ進んで、C=2のとき、部分補正点火時期
学習サブルーチンのステップS706へ復帰し、C≠2のと
き、部分補正点火時期学習サブルーチンのステップS716
へと復帰する。
【0123】[第2実施例]図26及び図27は本発明
の第2実施例に係わり、図26は部分補正テーブル領域
特定手順のフローチャート(その1)、図27は部分補
正テーブル領域特定手順のフローチャート(その2)で
ある。
の第2実施例に係わり、図26は部分補正テーブル領域
特定手順のフローチャート(その1)、図27は部分補
正テーブル領域特定手順のフローチャート(その2)で
ある。
【0124】この第2実施例においては、前述の第1実
施例に対し、部分補正テーブルTBADVPRTの領域ADD
RESSを特定する際に、NE格子及びTP格子にヒステ
リシスを設けず、エンジン回転数NE及び基本燃料噴射
量TP自体をオフセットさせることにより相対位置関係
を設定し、NE格子及びTP格子との大小比較を行なうも
のである。
施例に対し、部分補正テーブルTBADVPRTの領域ADD
RESSを特定する際に、NE格子及びTP格子にヒステ
リシスを設けず、エンジン回転数NE及び基本燃料噴射
量TP自体をオフセットさせることにより相対位置関係
を設定し、NE格子及びTP格子との大小比較を行なうも
のである。
【0125】すなわち、図26に示すように、NE格子
番号の決定は、前述の第1実施例と同じステップS801,S
802を経てステップS803でエンジン回転数NEとNE格子
番号NEiとを比較し、NE>NEiのとき、ステップS803
からステップS901へ進んで、エンジン回転数NEをオフ
セット回転数NESとする(NES←NE)一方、NE≦NEi
のときには、ステップS803からステップS902へ分岐し
て、エンジン回転数NEに設定値NEHISを加算した値を
オフセット回転数NESとする(NES←NE+NEHIS)。
番号の決定は、前述の第1実施例と同じステップS801,S
802を経てステップS803でエンジン回転数NEとNE格子
番号NEiとを比較し、NE>NEiのとき、ステップS803
からステップS901へ進んで、エンジン回転数NEをオフ
セット回転数NESとする(NES←NE)一方、NE≦NEi
のときには、ステップS803からステップS902へ分岐し
て、エンジン回転数NEに設定値NEHISを加算した値を
オフセット回転数NESとする(NES←NE+NEHIS)。
【0126】次いで、上記ステップS901あるいはステッ
プS902からステップS903へ進み、オフセット回転数NES
とNE格子番号NE1とを比較し、NES<NE1のとき、ス
テップS904で、NE領域番号をN1とし、NES≧NE1のと
き、ステップS905へ分岐して、オフセット回転数NESと
NE格子番号NE2とを比較する。
プS902からステップS903へ進み、オフセット回転数NES
とNE格子番号NE1とを比較し、NES<NE1のとき、ス
テップS904で、NE領域番号をN1とし、NES≧NE1のと
き、ステップS905へ分岐して、オフセット回転数NESと
NE格子番号NE2とを比較する。
【0127】その結果、NES<NE2のときには、ステッ
プS906でNE領域番号をN2とし、NES≧NE2のときに
は、ステップS907で、オフセット回転数NESとNE格子
番号NE3とを比較し、NES<NE3のとき、ステップS908
へ進んで、NE領域番号をN3とする。
プS906でNE領域番号をN2とし、NES≧NE2のときに
は、ステップS907で、オフセット回転数NESとNE格子
番号NE3とを比較し、NES<NE3のとき、ステップS908
へ進んで、NE領域番号をN3とする。
【0128】さらに、上記ステップS907での比較結果、
NES≧NE3のときには、順にNE格子番号を大きくして
比較を続け、最終的に、ステップS920で、オフセット回
転数NESとNE格子番号NEn-1とを比較し、NES<NEn-
1のとき、ステップS921で、NE領域番号をNn-1とし、
NES≧NEn-1のとき、ステップS922で、NE領域番号を
Nnとする。
NES≧NE3のときには、順にNE格子番号を大きくして
比較を続け、最終的に、ステップS920で、オフセット回
転数NESとNE格子番号NEn-1とを比較し、NES<NEn-
1のとき、ステップS921で、NE領域番号をNn-1とし、
NES≧NEn-1のとき、ステップS922で、NE領域番号を
Nnとする。
【0129】以上の手順によりNE領域番号を決定する
と、第1実施例と同様、ステップS843,S844を経て、ス
テップS845で、現在の基本燃料噴射量TPとTP格子番号
TPiとを比較する。そして、TP>TPiのとき、ステッ
プS845からステップS951へ進んで、基本燃料噴射量TP
をオフセット燃料噴射量TPSとし(TPS←TP)、TP≦
TPiのとき、ステップS845からステップS952へ分岐し
て、基本燃料噴射量TPに設定値TPHISを加算した値を
オフセット燃料噴射量TPSとする(TPS←TP+TPHI
S)。
と、第1実施例と同様、ステップS843,S844を経て、ス
テップS845で、現在の基本燃料噴射量TPとTP格子番号
TPiとを比較する。そして、TP>TPiのとき、ステッ
プS845からステップS951へ進んで、基本燃料噴射量TP
をオフセット燃料噴射量TPSとし(TPS←TP)、TP≦
TPiのとき、ステップS845からステップS952へ分岐し
て、基本燃料噴射量TPに設定値TPHISを加算した値を
オフセット燃料噴射量TPSとする(TPS←TP+TPHI
S)。
【0130】次に、上記ステップS951あるいはステップ
S952からステップS953へ進むと、同様の手順で、オフセ
ット燃料噴射量TPSとTP格子番号TP1,TP2,TP3,
…,TPn-1とを比較する各ステップ(ステップS953,S95
5,S957,…,S970)での比較結果により、TP領域をT1,
T2,T3,…,Tn-1,Tnのいずれかに決定する(ステ
ップS954,S956,S958,…,S971,S972)。
S952からステップS953へ進むと、同様の手順で、オフセ
ット燃料噴射量TPSとTP格子番号TP1,TP2,TP3,
…,TPn-1とを比較する各ステップ(ステップS953,S95
5,S957,…,S970)での比較結果により、TP領域をT1,
T2,T3,…,Tn-1,Tnのいずれかに決定する(ステ
ップS954,S956,S958,…,S971,S972)。
【0131】そして、TP領域番号を決定すると、前述
の第1実施例において説明した図5の部分補正テーブル
領域特定手順のフローチャート(その5)のステップS8
93へ進み、リターン先決定のための定数Cの値を参照す
ると、この定数Cの値に応じ、点火時期設定ルーチンの
ステップS207、部分補正点火時期学習サブルーチンのス
テップS706、あるいは、部分補正点火時期学習サブルー
チンのステップS716へとリターンする。
の第1実施例において説明した図5の部分補正テーブル
領域特定手順のフローチャート(その5)のステップS8
93へ進み、リターン先決定のための定数Cの値を参照す
ると、この定数Cの値に応じ、点火時期設定ルーチンの
ステップS207、部分補正点火時期学習サブルーチンのス
テップS706、あるいは、部分補正点火時期学習サブルー
チンのステップS716へとリターンする。
【0132】この第2実施例においては、前述の第1実
施例に対し、部分補正テーブルTBADVPRTの領域境界付
近でのパラメータの変動による点火時期の変動を抑制し
て制御ハンチングを防止する際に、プログラムステップ
数を低減してメモリ容量の余裕を確保することができる
という利点がある。
施例に対し、部分補正テーブルTBADVPRTの領域境界付
近でのパラメータの変動による点火時期の変動を抑制し
て制御ハンチングを防止する際に、プログラムステップ
数を低減してメモリ容量の余裕を確保することができる
という利点がある。
【0133】
【発明の効果】以上説明したように、請求項1記載の発
明によれば、下記の効果を有する。 (イ)点火時期を設定するために、エンジン回転数とエ
ンジン負荷とによるパラメータによりデータテーブルの
データ格納領域を特定してデータを読み出すに際し、デ
ータテーブルのデータ格納領域境界に対するパラメータ
の位置に応じてパラメータとデータ格納領域との相対位
置を設定してヒステリシスを設けることが可能となり、
パラメータがデータ格納領域境界付近で変動しても、パ
ラメータとデータ格納領域との相対位置関係から特定さ
れるデータ格納領域の変化を小さくすることができる。
従って、データテーブルから読み出されるデータの変動
を抑制し、点火時期が頻繁に変動することによる制御ハ
ンチングを防止することができる。 (ロ)また、パラメータに基づいてデータテーブルの該
当領域に格納されたデータを検索し、このデータにより
直接的に点火時期が設定されるので、点火時期を直ちに
適正点火時期に設定することができる。請求項2記載の
発明によれば、上記請求項1記載の発明の前記(ロ)の
作用効果と同様の作用効果を有すると共に、下記の作用
効果を有する。 (ハ)点火時期を設定するために、エンジン回転数とエ
ンジン負荷とによるパラメータによりデータテーブルの
データ格納領域を特定してデータを読み出すに際し、上
記請求項1記載の発明と同様に、データテーブルのデー
タ格納領域境界に対するパラメータの位置に応じてパラ
メータとデータ格納領域との相対位置を設定してヒステ
リシスを設けることが可能となり、パラメータがデータ
格納領域境界付近で変動しても、パラメータとデータ格
納領域との相対位置関係から特定されるデータ格納領域
の変化を小さくすることができる。従って、データテー
ブルから読み出されるデータの変動を抑制し、点火時期
が頻繁に変動することによる制御ハンチングを防止する
ことができる。 (ニ)上記請求項1記載の発明に対し、パラメータが前
回の領域番号よりも一つ小さい番号の領域の格子番号以
下のとき、各格子番号にヒステリシスを持たせることな
く、単に、パラメータにオフセット値を加算した値によ
り対処するので、データテーブルの領域境界付近でのパ
ラメータ変動による点火時期の変動を抑制して制御ハン
チングを防止する際に、プログラムステップ数を低減し
てメモリ容量の余裕を確保することができる。
明によれば、下記の効果を有する。 (イ)点火時期を設定するために、エンジン回転数とエ
ンジン負荷とによるパラメータによりデータテーブルの
データ格納領域を特定してデータを読み出すに際し、デ
ータテーブルのデータ格納領域境界に対するパラメータ
の位置に応じてパラメータとデータ格納領域との相対位
置を設定してヒステリシスを設けることが可能となり、
パラメータがデータ格納領域境界付近で変動しても、パ
ラメータとデータ格納領域との相対位置関係から特定さ
れるデータ格納領域の変化を小さくすることができる。
従って、データテーブルから読み出されるデータの変動
を抑制し、点火時期が頻繁に変動することによる制御ハ
ンチングを防止することができる。 (ロ)また、パラメータに基づいてデータテーブルの該
当領域に格納されたデータを検索し、このデータにより
直接的に点火時期が設定されるので、点火時期を直ちに
適正点火時期に設定することができる。請求項2記載の
発明によれば、上記請求項1記載の発明の前記(ロ)の
作用効果と同様の作用効果を有すると共に、下記の作用
効果を有する。 (ハ)点火時期を設定するために、エンジン回転数とエ
ンジン負荷とによるパラメータによりデータテーブルの
データ格納領域を特定してデータを読み出すに際し、上
記請求項1記載の発明と同様に、データテーブルのデー
タ格納領域境界に対するパラメータの位置に応じてパラ
メータとデータ格納領域との相対位置を設定してヒステ
リシスを設けることが可能となり、パラメータがデータ
格納領域境界付近で変動しても、パラメータとデータ格
納領域との相対位置関係から特定されるデータ格納領域
の変化を小さくすることができる。従って、データテー
ブルから読み出されるデータの変動を抑制し、点火時期
が頻繁に変動することによる制御ハンチングを防止する
ことができる。 (ニ)上記請求項1記載の発明に対し、パラメータが前
回の領域番号よりも一つ小さい番号の領域の格子番号以
下のとき、各格子番号にヒステリシスを持たせることな
く、単に、パラメータにオフセット値を加算した値によ
り対処するので、データテーブルの領域境界付近でのパ
ラメータ変動による点火時期の変動を抑制して制御ハン
チングを防止する際に、プログラムステップ数を低減し
てメモリ容量の余裕を確保することができる。
【図1】本発明の第1実施例に係わり、部分補正テーブ
ル領域特定手順のフローチャート(その1)
ル領域特定手順のフローチャート(その1)
【図2】本発明の第1実施例に係わり、部分補正テーブ
ル領域特定手順のフローチャート(その2)
ル領域特定手順のフローチャート(その2)
【図3】本発明の第1実施例に係わり、部分補正テーブ
ル領域特定手順のフローチャート(その3)
ル領域特定手順のフローチャート(その3)
【図4】本発明の第1実施例に係わり、部分補正テーブ
ル領域特定手順のフローチャート(その4)
ル領域特定手順のフローチャート(その4)
【図5】本発明の第1実施例に係わり、部分補正テーブ
ル領域特定手順のフローチャート(その5)
ル領域特定手順のフローチャート(その5)
【図6】本発明の第1実施例に係わり、気筒判別・エン
ジン回転数算出手順のフローチャート
ジン回転数算出手順のフローチャート
【図7】本発明の第1実施例に係わり、点火時期設定手
順のフローチャート(その1)
順のフローチャート(その1)
【図8】本発明の第1実施例に係わり、点火時期設定手
順のフローチャート(その2)
順のフローチャート(その2)
【図9】本発明の第1実施例に係わり、通電・点火制御
手順におけるθ2割込みのフローチャート
手順におけるθ2割込みのフローチャート
【図10】本発明の第1実施例に係わり、通電・点火制
御手順におけるθ3割込みのフローチャート
御手順におけるθ3割込みのフローチャート
【図11】本発明の第1実施例に係わり、全体補正係数
及び部分補正点火時期学習手順のフローチャート(その
1)
及び部分補正点火時期学習手順のフローチャート(その
1)
【図12】本発明の第1実施例に係わり、全体補正係数
及び部分補正点火時期学習手順のフローチャート(その
2)
及び部分補正点火時期学習手順のフローチャート(その
2)
【図13】本発明の第1実施例に係わり、全体補正係数
学習のサブルーチンを示すフローチャート(その1)
学習のサブルーチンを示すフローチャート(その1)
【図14】本発明の第1実施例に係わり、全体補正係数
学習のサブルーチンを示すフローチャート(その2)
学習のサブルーチンを示すフローチャート(その2)
【図15】本発明の第1実施例に係わり、全体補正係数
学習のサブルーチンを示すフローチャート(その3)
学習のサブルーチンを示すフローチャート(その3)
【図16】本発明の第1実施例に係わり、部分補正点火
時期学習のサブルーチンを示すフローチャート(その
1)
時期学習のサブルーチンを示すフローチャート(その
1)
【図17】本発明の第1実施例に係わり、部分補正点火
時期学習のサブルーチンを示すフローチャート(その
2)
時期学習のサブルーチンを示すフローチャート(その
2)
【図18】本発明の第1実施例に係わり、部分補正点火
時期学習のサブルーチンを示すフローチャート(その
3)
時期学習のサブルーチンを示すフローチャート(その
3)
【図19】本発明の第1実施例に係わり、部分補正点火
時期学習のサブルーチンを示すフローチャート(その
4)
時期学習のサブルーチンを示すフローチャート(その
4)
【図20】本発明の第1実施例に係わり、部分補正テー
ブルの概念図
ブルの概念図
【図21】本発明の第1実施例に係わり、エンジン制御
系の概略図
系の概略図
【図22】本発明の第1実施例に係わり、クランクロー
タとクランク角センサの正面図
タとクランク角センサの正面図
【図23】本発明の第1実施例に係わり、カムロータと
カム角センサの正面図
カム角センサの正面図
【図24】本発明の第1実施例に係わり、制御装置の回
路構成図
路構成図
【図25】本発明の第1実施例に係わり、点火タイミン
グを示すタイムチャート
グを示すタイムチャート
【図26】本発明の第2実施例に係わり、部分補正テー
ブル領域特定手順のフローチャート(その1)
ブル領域特定手順のフローチャート(その1)
【図27】本発明の第2実施例に係わり、部分補正テー
ブル領域特定手順のフローチャート(その2)
ブル領域特定手順のフローチャート(その2)
NE エンジン回転数 TP 基本燃料噴射量 TBADVPRT 部分補正テーブル
Claims (2)
- 【請求項1】エンジン回転数とエンジン負荷とをパラメ
ータとして格子状に区切られたデータテーブルを検索し
て点火時期を設定するエンジンの点火時期制御方法にお
いて、 上記データテーブルは、点火時期データが格納された各
領域の境界が上記エンジン回転数の値を番号化した格子
番号と上記エンジン負荷の値を番号化した格子番号とに
よって形成されると共に、各格子番号によって決定され
る各パラメータの領域番号によって各領域を特定するこ
とができ、 上記各パラメータの領域番号により上記データテーブル
の領域を特定してデータを読み出す際に、 前回検索時に特定された領域の領域番号より一つ小さい
番号の領域の格子番号と現在のパラメータとを比較し、 現在のパラメータが上記格子番号より大きいときには、
現在のパラメータが何れの格子番号より小さいか否かを
順次判別して上記領域番号を決定し、 一方、現在のパラメータが上記格子番号以下のときに
は、現在のパラメータが各格子番号からヒステリシス値
を減算した値の何れより小さいか否かを順次判別して上
記領域番号を決定し、 上記決定された領域番号により上記データテーブルの領
域を特定し、特定した領域に格納されている点火時期デ
ータを読み出す ことを特徴とするエンジンの点火時期制
御方法。 - 【請求項2】エンジン回転数とエンジン負荷とをパラメ
ータとして格子状に区切られたデータテーブルを検索し
て点火時期を設定するエンジンの点火時期制御方法にお
いて、 上記データテーブルは、点火時期データが格納された各
領域の境界が上記エンジン回転数の値を番号化した格子
番号と上記エンジン負荷の値を番号化した格子番号とに
よって形成されると共に、各格子番号によって決定され
る各パラメータの領域番号によって各領域を特定するこ
とができ、 上記各パラメータの領域番号により上記データテーブル
の領域を特定してデータを読み出す際に、 前回検索時に特定された領域の領域番号より一つ小さい
番号の領域の格子番号と現在のパラメータとを比較し、 現在のパラメータが上記格子番号より大きいときには、
現在のパラメータが何れの格子番号より小さいか否かを
順次判別して上記領域番号を決定し、 一方、現在のパラメータが上記格子番号以下のときに
は、現在のパラメータにオフセット値を加算した値が何
れの格子番号より小さいか否かを順次判別して上記領域
番号を決定し、 上記決定された領域番号により上記データテーブルの領
域を特定し、特定した領域に格納されている点火時期デ
ータを読み出す ことを特徴とするエンジンの点火時期制
御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20090591A JP3324767B2 (ja) | 1991-08-09 | 1991-08-09 | エンジンの点火時期制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20090591A JP3324767B2 (ja) | 1991-08-09 | 1991-08-09 | エンジンの点火時期制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0544619A JPH0544619A (ja) | 1993-02-23 |
JP3324767B2 true JP3324767B2 (ja) | 2002-09-17 |
Family
ID=16432219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20090591A Expired - Fee Related JP3324767B2 (ja) | 1991-08-09 | 1991-08-09 | エンジンの点火時期制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3324767B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5995894B2 (ja) * | 2014-03-18 | 2016-09-21 | 本田技研工業株式会社 | 車両用エンジンの点火制御装置 |
-
1991
- 1991-08-09 JP JP20090591A patent/JP3324767B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0544619A (ja) | 1993-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS58217775A (ja) | 内燃機関の点火時期制御方法 | |
US7753028B2 (en) | Control apparatus and method for internal combustion engine | |
JP5003571B2 (ja) | 内燃機関の制御装置および制御方法 | |
JPH0237171A (ja) | エンジンの点火時期制御装置 | |
JPS6225871B2 (ja) | ||
JP3324767B2 (ja) | エンジンの点火時期制御方法 | |
JP6420365B2 (ja) | 内燃機関制御装置 | |
JP3846191B2 (ja) | 内燃機関の点火時期制御装置 | |
JP3564146B2 (ja) | エンジンの点火時期学習制御方法 | |
JP2682651B2 (ja) | エンジンの点火時期制御装置 | |
JP5012960B2 (ja) | 内燃機関の異常判定装置 | |
JP2894624B2 (ja) | エンジンの点火時期制御装置 | |
JPH11343914A (ja) | 内燃機関の始動制御装置 | |
JP3064547B2 (ja) | エンジンの空燃比制御装置 | |
JP5086922B2 (ja) | 内燃機関の点火時期制御装置 | |
JPH05141334A (ja) | 内燃機関のノツク制御装置 | |
JP3064531B2 (ja) | エンジンの空燃比制御方法 | |
JP2967588B2 (ja) | エンジンの点火時期制御装置 | |
JP3294365B2 (ja) | エンジンの点火制御方法 | |
JPH02230958A (ja) | 内燃機関の点火時期制御装置 | |
JPH0555708B2 (ja) | ||
JPH0784861B2 (ja) | 内燃機関の点火時期制御方法 | |
JPH06272650A (ja) | エンジンの点火制御における処理遅れ解消方法 | |
JPS6375355A (ja) | 内燃機関のノツキング制御装置 | |
JPS6332162A (ja) | 内燃機関の点火時期制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |