Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3564146B2 - Engine ignition timing learning control method - Google Patents
[go: Go Back, main page]

JP3564146B2 - Engine ignition timing learning control method - Google Patents

Engine ignition timing learning control method Download PDF

Info

Publication number
JP3564146B2
JP3564146B2 JP19554391A JP19554391A JP3564146B2 JP 3564146 B2 JP3564146 B2 JP 3564146B2 JP 19554391 A JP19554391 A JP 19554391A JP 19554391 A JP19554391 A JP 19554391A JP 3564146 B2 JP3564146 B2 JP 3564146B2
Authority
JP
Japan
Prior art keywords
ignition timing
learning
value
knock
acceleration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP19554391A
Other languages
Japanese (ja)
Other versions
JPH0539770A (en
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.)
Subaru Corp
Original Assignee
Fuji Jukogyo KK
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 Fuji Jukogyo KK filed Critical Fuji Jukogyo KK
Priority to JP19554391A priority Critical patent/JP3564146B2/en
Publication of JPH0539770A publication Critical patent/JPH0539770A/en
Application granted granted Critical
Publication of JP3564146B2 publication Critical patent/JP3564146B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Electrical Control Of Ignition Timing (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、ノック発生の有無に応じて点火時期を学習制御するエンジンの点火時期学習制御方法に関する。
【0002】
【従来の技術】
最近では、エンジンの異常燃焼によるノッキングを検出し、点火時期を最適に制御する技術が広く採用されている。
【0003】
この場合、エンジンのノックは、混合気の異常燃焼による圧力振動を、シリンダヘッドあるいはシリンダブロックに取付けた加速度センサなどにより機械的振動として検出するものが多く、エンジン高回転時などにはノックによる振動成分とエンジン自体の振動成分との区別が困難となる。
【0004】
従って、ノック検出の困難な運転領域では、ノック検出の可能な運転領域で学習した学習値により点火時期の補正を行なうようにしており、例えば、特開昭60−27782号公報には、エンジン(機関)の状態が急変する過渡時に学習遅角量の更新を停止し、学習遅角量が異常に大きくなることによる不必要なトルクの低下を防止する技術が開示されている。
【0005】
【発明が解決しようとする課題】
しかしながら、加速時には、車輌の変速機のシフト位置(シフトレンジ)によってエンジンの運転状態が左右されるため、加速が比較的緩やかであっても、ノック発生を正確に検出することが困難で、適切な学習ができない場合がある。また、ノック発生期間も一定でないため、一義的に点火時期学習を停止すると制御性の悪化を招くおそれがある。
【0006】
本発明は上記事情に鑑みてなされたもので、加速時に、エンジンの状態に応じた期間だけ点火時期学習を停止することにより制御性の悪化を防止し、安定した点火時期制御を行なうことのできるエンジンの点火時期学習制御方法を提供することを目的としている。
【0007】
【課題を解決するための手段】
上記目的を達成するため、本発明は、ノックの有無に応じた点火時期補正量を学習し、この学習した点火時期補正量に基づいて点火時期を制御すると共に、加速を判断し、加速時は所定の点火回数の間、上記点火時期補正量の学習を禁止するエンジンの点火時期学習制御方法において、自動変速機搭載車のエンジンの点火時期学習制御であって、スロットル開度の変化により加速度合いを示す加速判定レベルを設定し、加速判定レベルと設定値との比較により加速が大きいと判断されるとき、点火時期補正量の学習を禁止し、且つ、このときの学習禁止期間を定める点火回数を、車速が設定値以上の高車速の場合は、車速が設定値未満の低車速の場合に比べ、大きく設定することを特徴とする。
【0009】
【作用】
本発明は、自動変速機搭載車のエンジンの点火時期学習制御において、加速時に所定の点火回数の間、点火時期補正量の学習を禁止するに際し、スロットル開度の変化により加速度合いを示す加速判定レベルを設定する。そして、加速判定レベルと設定値との比較により加速が大きいと判断されるとき、点火時期補正量の学習を禁止すると共に、このときの学習禁止期間を定める点火回数を、車速が設定値以上の高車速の場合は、車速が設定値未満の低車速の場合に比べ、大きく設定する。
【0011】
【実施例】
以下、図面を参照して本発明の実施例を説明する。図面は本発明の一実施例を示し、図1は全体補正係数及び部分補正点火時期学習手順のフローチャート(その1)、図2は全体補正係数及び部分補正点火時期学習手順のフローチャート(その2)、図3は全体補正係数及び部分補正点火時期学習手順のフローチャート(その3)、図4は加速判定手順のフローチャート(その1)、図5は加速判定手順のフローチャート(その2)、図6は気筒判別・エンジン回転数算出手順のフローチャート、図7は点火時期設定手順のフローチャート(その1)、図8は点火時期設定手順のフローチャート(その2)、図9は通電・点火制御手順におけるθ2割込みのフローチャート、図10は通電・点火制御手順におけるθ3割込みのフローチャート、図11は全体補正係数学習のサブルーチンを示すフローチャート(その1)、図12は全体補正係数学習のサブルーチンを示すフローチャート(その2)、図13は全体補正係数学習のサブルーチンを示すフローチャート(その3)、図14は部分補正点火時期学習のサブルーチンを示すフローチャート(その1)、図15は部分補正点火時期学習のサブルーチンを示すフローチャート(その2)、図16は部分補正点火時期学習のサブルーチンを示すフローチャート(その3)、図17は部分補正点火時期学習のサブルーチンを示すフローチャート(その4)、図18は部分補正テーブルの概念図、図19はエンジン制御系の概略図、図20はクランクロータとクランク角センサの正面図、図21はカムロータとカム角センサの正面図、図22は制御装置の回路構成図、図23は点火タイミングを示すタイムチャートである。
【0012】
(エンジン制御系の構成)
図19において、符号1はエンジン本体であり、図においては水平対向4気筒型エンジンを示す。このエンジン本体1のシリンダヘッド2に形成された各吸気ポート2aにインテークマニホルド3が連通され、このインテークマニホルド3にエアチャンバ4を介してスロットルチャンバ5が連通され、このスロットルチャンバ5上流側に吸気管6を介してエアクリーナ7が取付けられている。
【0013】
また、上記吸気管6の上記エアクリーナ7の直下流に吸入空気量センサ(図においては、ホットワイヤ式エアフローメータ)8が介装され、さらに、上記スロットルチャンバ5に設けられたスロットルバルブ5aに、スロットル開度センサ9aとスロットルバルブ全閉を検出するアイドルスイッチ9bとが連設されている。
【0014】
さらに、上記スロットルバルブ5aの上流側と下流側とを連通するバイパス通路10に、アイドルスピードコントロールバルブ(ISCV)11が介装され、上記インテークマニホルド3の各気筒の各吸気ポート2a直上流側に、インジェクタ12が臨まされている。さらに、上記シリンダヘッド2の各気筒毎に、その先端を燃焼室に露呈する点火プラグ13aが取付けられ、この点火プラグ13aに連設される点火コイル13bにイグナイタ14が接続されている。
【0015】
上記インジェクタ12は、燃料供給路15を介して燃料タンク16に連通されており、この燃料タンク16内にはインタンク式の燃料ポンプ17が設けられている。この燃料ポンプ17からの燃料は、上記燃料供給路15に介装された燃料フィルタ18を経て上記インジェクタ12、プレッシャレギュレータ19に圧送され、このプレッシャレギュレータ19から上記燃料タンク16にリターンされて所定の圧力に調圧される。
【0016】
また、上記エンジン本体1のシリンダブロック1aにノックセンサ20が取付けられるとともに、このシリンダブロック1aに形成された冷却水通路(図示せず)に冷却水温センサ21が臨まされ、さらに、上記シリンダヘッド2の排気ポート2bに連通するエグゾーストマニホルド22の集合部に、O2 センサ23が臨まされている。尚、符号24は触媒コンバータである。
【0017】
また、上記シリンダブロック1aに支承されたクランクシャフト1bに、クランクロータ25が軸着され、このクランクロータ25の外周に、所定のクランク角に対応する突起(あるいはスリット)を検出する電磁ピックアップなどからなるクランク角センサ26が対設され、さらに、上記シリンダヘッド2のカムシャフト1cに連設されたカムロータ27に、電磁ピックアップなどからなる気筒判別用のカム角センサ28が対設されている。
【0018】
上記クランクロータ25は、図20に示すように、その外周に突起25a,25b,25cが形成され、これらの各突起25a,25b,25cが、各気筒(#1,#2と#3,#4) の圧縮上死点前(BTDC)θ1,θ2,θ3 の位置(例えば、θ1 =97°,θ2 =65°,θ3 =10°)に形成されている。
【0019】
すなわち、突起25a,25b間の通過時間からエンジン回転数NEが算出され、突起25b、突起25cが、それぞれ、点火時期及び燃料噴射タイミング設定の際の基準クランク角、固定点火時期を示す基準クランク角となる。
【0020】
また、上記カムロータ27の外周には、図21に示すように、気筒判別用の突起27a,27b,27cが形成され、例えば、突起27aが#3,#4の圧縮上死点後(ATDC)θ4 の位置(例えばθ4 =20°)に形成され、突起27bが3個の突起で構成されて最初の突起が#1気筒のATDCθ5 の位置(例えばθ5 =5°)に形成されている。さらに、突起27cが2個の突起で形成され、最初の突起が#2気筒のATDCθ6 の位置(例えばθ6 =20°)に形成されている。
【0021】
尚、上記クランク角センサ26、カム角センサ28は、電磁ピックアップなどの磁気センサに限らず、光センサなどでも良い。
【0022】
(制御装置の回路構成)
一方、図22において、符号30は、マイクロコンピュータなどからなる制御装置(ECU)であり、このECU30は、点火時期制御、燃料噴射制御などを行なうメインコンピュータ31と、ノック検出処理を行なう専用のサブコンピュータ32との2つのマイクロコンピュータを中核として構成されている。
【0023】
上記ECU30内には、各部に安定化電圧を供給する定電圧回路33が内蔵されており、この定電圧回路33は、直接、及びECUリレー34のリレー接点を介して、バッテリ35に接続されている。このバッテリ35には、上記ECUリレー34のリレーコイルがキースイッチ36を介して接続されるとともに、燃料ポンプリレー37のリレー接点を介して燃料ポンプ17が接続されている。
【0024】
上記メインコンピュータ31は、メインCPU38、ROM39、RAM40、バックアップRAM40a、タイマ41、シリアルインターフェース(SCI)42、及び、I/Oインターフェース43がバスライン44を介して互いに接続されて構成され、具体的には、例えば1つのLSIチップとしてECU30内に実装されている。
【0025】
上記I/Oインターフェース43の入力ポートには、吸入空気量センサ8、スロットル開度センサ9a、冷却水温センサ21、O2センサ23、及び、車速センサ60が、A/D変換器45を介して接続されるとともに、スタータスイッチ46、アイドルスイッチ9b、クランク角センサ26、カム角センサ28が接続され、さらに、上記バッテリ35が接続されてバッテリ電圧がモニタされる。
【0026】
また、上記I/Oインターフェース43の出力ポートには、イグナイタ14が接続され、さらに、駆動回路47を介して、ISCV11、インジェクタ12、燃料ポンプリレー37のリレーコイルが接続されている。
【0027】
一方、サブコンピュータ32は、サブCPU48、ROM49、RAM50、タイマ51、SCI52、及び、I/Oインターフェース53がバスライン54を介して互いに接続されて構成され、具体的には、上記メインコンピュータ31同様、例えば1つのLSIチップとしてECU30内に実装されている。
【0028】
上記I/Oインターフェース53の入力ポートには、クランク角センサ26、カム角センサ28が接続されるとともに、ノックセンサ20が、アンプ55、周波数フィルタ56、A/D変換器57を介して接続されている。
【0029】
上記ノックセンサ20は、例えばノック振動とほぼ同じ固有周波数を持つ振動子と、この振動子の振動加速度を検知して電気信号に変換する圧電素子とから構成される共振形のノックセンサであり、エンジンの爆発行程における燃焼圧力波によりシリンダブロック1aに伝わる振動を検出し、その振動波形を検出信号として出力する。
【0030】
上記ノックセンサ20の検出信号は上記アンプ55により所定のレベルに増幅された後、上記周波数フィルタ56により必要な周波数成分が抽出され、A/D変換器57でアナログデータからデジタルデータに変換される。
【0031】
また、上記メインコンピュータ31と上記サブコンピュータ32とは、SCI42,52を介したシリアル回線により接続されるとともに、上記サブコンピュータ32のI/Oインターフェース53の出力ポートが、上記メインコンピュータ31のI/Oインターフェース43の入力ポートに接続されている。
【0032】
上記メインコンピュータ31では、クランク角センサ26からのクランクパルスに基づいて点火時期などを設定するとともに、カム角センサ28からのカムパルスに基づいて点火対象となる該当気筒を判別し、所定の点火時期に達すると、イグナイタ14に点火信号を出力して該当気筒の点火を行なう。
【0033】
一方、上記サブコンピュータ32では、エンジン回転数とエンジン負荷とに基づいてノックセンサ20からの検出信号のサンプル区間を設定し、このサンプル区間でノックセンサ20からの検出信号を高速にA/D変換して振動波形を忠実にデジタルデータに変換し、ノック発生の有無を判定する。
【0034】
このノック発生の有無のノック判定データは、サブコンピュータ32のI/Oインターフェース53に出力され、ノック発生の場合には、SCI52,42を介したシリアル回線を通じてサブコンピュータ32から上記メインコンピュータ31にノックデータが読込まれる。上記メインコンピュータ31では、このノックデータに基づいて直ちに該当気筒の点火時期を遅らせ、ノックを回避する。
【0035】
上記メインコンピュータ31による点火時期制御に際しては、低オクタン価燃料用の基本進角値テーブルと高オクタン価燃料用進角値テーブルとの2つの点火時期テーブルに対して学習制御が行なわれ、この学習制御は、加速時、停止される。以下、この点火時期学習制御に係わる動作について説明する。
【0036】
(気筒判別・エンジン回転数算出手順)
図6は、クランク角センサ26からのクランクパルス入力により割込みスタートする気筒判別・エンジン回転数算出のルーチンであり、まず、ステップS101で、カム角センサ28の出力に基づき、#iの点火対象気筒を判別すると、次に、ステップS102で、クランクパルスを識別する。
【0037】
図23のタイムチャートに示すように、例えば、上記カム角センサ28からθ5 (突起27b)のカムパルスが出力された場合、次の圧縮上死点は#3気筒であり、この#3気筒が点火対象気筒(#4気筒が燃料噴射対象気筒)となることが判別できる。
【0038】
また、上記θ5 のカムパルスの後にθ4 (突起27a)のカムパルスが出力された場合、次の圧縮上死点は#2気筒であり、この#2気筒が点火対象気筒(#1気筒が燃料噴射対象気筒)となることが判別できる。
【0039】
同様にθ6 (突起27c)のカムパルスが出力された後の圧縮上死点は#4気筒であり、この#4気筒が点火対象気筒(#3気筒が燃料噴射対象気筒)となる。さらに、上記θ6 のカムパルスの後にθ4 (突起27a)のカムパルスが出力された場合、その後の圧縮上死点は#1気筒であり、この#1気筒が点火対象気筒(#2気筒が燃料噴射対象気筒)となることが判別できる。
【0040】
さらに、上記カム角センサ28からカムパルスが出力された後に、クランク角センサ26から出力されるクランクパルスが周期(回転数)を算出する際の基準クランク角(θ1)を示し、次のクランクパルスが該当気筒の点火時期及び燃料噴射開始時期を設定する際の基準クランク角(θ2 )を示すものであることが判別できる。
【0041】
すなわち、本実施例の4サイクル4気筒エンジンでは、燃焼行程は#1→#3→#2→#4の気筒順であり、#i気筒の点火対象気筒が#1気筒とすると、このときの燃料噴射対象気筒#i(+2)は#2気筒であり、次の燃料噴射対象気筒#i(+2)のは#4気筒となる。そして、点火が#1→#3→#2→#4の気筒順に行われ、燃料噴射は該当気筒に対して720℃A(エンジン2回転)毎に1回のシーケンシャル噴射が行われる。
【0042】
その後、ステップS103で、例えば、クランク角センサ26から出力されるBTDCθ1 ,θ2 のクランクパルスの入力間隔時間(周期)Tθ12を計時し、ステップS104で、この入力間隔時間Tθ12からエンジン回転数NE を算出し、RAM40の所定アドレスに回転数データとしてストアしてルーチンを抜ける。
【0043】
(点火時期設定手順)
一方、所定時間毎に実行される図7及び図8の割込みルーチンにて点火時期が設定される。この点火時期設定ルーチンでは、まず、ステップS201,S202で、それぞれ、スタータスイッチ46がONされているか否か、エンジン回転数NEが完爆回転数NESET(例えば、NESET=400rpm)に達しているか否かを判別する。
【0044】
そして、スタータスイッチ46がONのエンジン始動時、あるいは、NE≦NESETのときには、ステップS201あるいはステップS202からステップS216へ分岐してエンジン始動時及び極低回転時を判別するための始動時・極低回転時判別フラグFLAGSTをセットし(FLAGST←1)、ルーチンを抜ける。
【0045】
一方、スタータスイッチ46のONによるエンジンのクランキング後、スタータスイッチ46がOFFされ、NE>NESETとなってエンジンが完爆したときには、ステップS201,S202からステップS203へ進んで、始動時・極低回転時判別フラグFLAGSTをクリアし(FLAGST←0)、ステップS204で、冷却水温TWに基づき水温補正値ADVTW(角度データ)を設定する。
【0046】
次いで、ステップS205へ進み、エンジン回転数NE、エンジン負荷としての基本燃料噴射量TPに基づき、部分補正テーブルTBADVPRTを参照して部分補正点火時期ADVPRTを設定する。この部分補正テーブルTBADVPRTは、運転領域毎に部分的な補正を行なうための部分補正点火時期ADVPRTをバックアップRAM40aにストアしたものであり、図18に示すように、エンジン回転数NE、基本燃料噴射量TPをパラメータとして特定される各領域毎に部分補正点火時期ADVPRTがストアされている。
【0047】
尚、上述の基本燃料噴射量TPは、エンジン負荷の一例であり、その他、燃料噴射量あるいは1行程当たりの吸入空気量などを用いても良い。
【0048】
ステップS206では、エンジン回転数NE、基本燃料噴射量TPに基づき、基本進角値テーブルを補間計算付きで参照して基本進角値IGREGを設定する。この基本進角値テーブルは、レギュラーガソリンなどの低オクタン価の燃料を使用した際に、ノッキングを許容範囲内に抑えることのできるノック限界の点火時期を基本進角値として、エンジン回転数NE、基本燃料パルス幅TPをパラメータとして予め実験などにより求めてROM39にストアされているものであり、例えば、16×16格子の三次元テーブルとして構成されている。
【0049】
その後、ステップS207へ進むと、バックアップRAM40aにストアされている全体補正係数TCMPを読出し、ステップS208で、エンジン回転数NE、基本燃料噴射量TPに基づき、高オクタン価燃料用進角値テーブルを補間計算付きで参照して高オクタン価燃料用進角値IGMBTを設定する。
【0050】
上記高オクタン価燃料用進角値テーブルは、プレミアムガソリンなどの高オクタン価で耐ノック性の高い燃料を使用した際に発揮することのできる許容最大トルクを得られる点火時期を、エンジン回転数NE、基本燃料パルス幅TPをパラメータとして予め実験などにより求め、ROM39に、例えば、16×16格子の三次元テーブルとしてストアされているものである。
【0051】
次いで、ステップS209へ進み、上記ステップS206で設定した基本進角値IGREGと、上記ステップS208で設定した高オクタン価燃料用進角値IGMBTに上記ステップS207で読出した全体補正係数TCMPを乗算した値とを加算し、全体補正点火時期(°CAを単位とする角度データ)ADVTOTを算出する(ADVTOT←IGREG+TCMP×IGMBT)。
【0052】
そして、ステップS210へ進み、上記ステップS209で算出した全体補正点火時期ADVTOTに、部分補正点火時期ADVPRT及び水温補正値ADVTWを加算して制御進角ADVを算出し(ADV←ADVTOT+ADVPRT+ADVTW)、ステップS211で、制御進角ADVをθ2パルスを基準とした点火時刻、すなわち角度を時間データに変換した点火タイミングTADVを設定する(TADV←Tθ12×(θ2−ADV)/θ12)。但し、θ12はθ1クランクパルスとθ2クランクパルスに対応する角度差(例えば、θ1=97°CA、θ2=65°CAのとき、θ12=32°CA)である。
【0053】
次に、ステップS212へ進むと、バッテリ電圧に基づき基本通電時間テーブルを補間計算付きで参照して基本通電時間DWLBを設定すると、ステップS213で、エンジン回転数NEに基づき回転補正テーブルを補間計算付きで参照して回転補正KDWLNを設定する。尚、上記基本通電時間DWLBは、バッテリ電圧が高いほど短く設定され、上記回転補正KDWLNは、エンジン回転数NEが高いほど小さく設定される。
【0054】
そして、ステップS214へ進んで、基本通電時間DWLBに回転補正KDWLNを乗じて通電時間DWLを算出すると(DWL←DWLB×KDWLN)、ステップS215で、θ2クランクパルスを基準とした通電開始時刻すなわち通電開始タイミングTDWLを設定して(TDWL←TADV−DWL)ルーチンを抜ける。
【0055】
この点火時期設定ルーチンで設定した点火時期に対し、図9及び図10に示す通電・点火制御手順のルーチンが、θ2、θ3クランクパルス割込みにより起動され、点火対象気筒#iのドエル(通電)及びドエルカット(点火)を行なう。
【0056】
図9に示すθ2クランクパルスによる割込みでは、ステップS301で、始動時・極低回転時判別フラグFLAGSTの値を参照し、FLAGST=1、すなわち、始動時あるいは極低回転時にはステップS302へ分岐して点火対象気筒#iのドエルを開始してルーチンを抜け、FLAGST=0、すなわち、通常時には、ステップS303へ進んで、ドエルセットタイマTIM1及び点火セットタイマTIM2のカウントを開始する。
【0057】
次いで、ステップS304へ進むと、ドエルセットタイマTIM1のカウント値が通電開始タイミングTDWLに達したか否かを判別するループとなり、通電開始タイミングTDWLに達すると、ステップS305へ進んで、点火対象気筒#iのドエルを開始し、ステップS306で、ドエルセットタイマTIM1をクリアして(TIM1←0)、ステップS307で、点火セットタイマTIM2のカウント値が点火タイミングTADVに達したか否かを判別する。
【0058】
そして、上記ステップS307で、点火セットタイマTIM2のカウント値が点火タイミングTADVに達すると、ステップS308へ進んで、点火対象気筒#iのドエルカットすなわち点火を行ない、ステップS309で、点火セットタイマTIM2をクリアして(TIM2←0)ルーチンを抜ける。
【0059】
次に、θ3のクランクパルスが入力されると、図10の割込みルーチンが起動され、ステップS401で、始動時・極低回転時判別フラグFLAGSTの値を参照し、FLAGST=0、すなわち、通常時にはそのままルーチンを抜け、FLAGST=1、すなわち、始動時あるいは極低回転時には、ステップS402で、点火対象気筒#iのドエルカットを行ない、ルーチンを抜ける。
【0060】
すなわち、図23に示すように、始動時あるいは極低回転時には、θ2(例えば、BTDC65°)クランクパルスが入力されると直ちに該当気筒#iのドエルを開始し、θ3(例えば、BTDC10°)クランクパルスで点火を行なう固定点火時期となり、一方、通常時には、θ2クランクパルスを基準として、この基準から所定時間経過した通電開始タイミングTDWLにてドエルを開始し、点火タイミングTADVにて点火を行なうのである。
【0061】
また、通常時の点火時期制御においては、現在のエンジンの要求する点火時期の値が、低オクタン価燃料用の基本進角値テーブルと高オクタン価燃料用進角値テーブルとの2つの点火時期テーブルのどの位置にあるかを決定する全体補正と、エンジン回転数とエンジン負荷とをパラメータとする領域毎にノック発生の有無により点火時期の値を補正する部分補正とが行われる。以下、その手順について説明する。
【0062】
図1〜図3は全体補正係数及び部分補正点火時期学習手順を示し、本実施例の4気筒エンジンにおいては、エンジン1/2回転毎の点火に対し実行される(6気筒エンジンではエンジン1/3回転毎)。
【0063】
まず、ステップS501,S502,503で学習条件の判別を行なう。すなわち、ステップS501で、始動時・極低回転時判別フラグFLAGSTが”0”か否かを判別し、ステップS502で、ノックセンサ20、ISCV11などの点火時期に影響するセンサ、アクチュエータが正常か否かをECU30の内部データにより判別し、ステップS503で、冷却水温TWが暖機完了温度TWSET以上か否かを判別する。
【0064】
そして、上記ステップS501,S502,S503で満足されない条件がある場合には、そのステップからルーチンを抜け、一方、ステップS501でFLAGST=0で通常時であり、且つ、ステップS502でノックセンサ20、ISCV11などの点火時期に影響するセンサ、アクチュエータが正常であり、さらに、ステップS503で冷却水温TWが暖機完了温度TWSET以上の場合、学習条件成立と判別してステップS504へ進み、加速状態での点火時期学習を中止する点火回数を示す学習中止点火回数COUNTACCの値が0か否かを判別する。
【0065】
上記ステップS504で、COUNTACC≠0のときには、ステップS509へジャンプし、学習中止点火回数COUNTACCをカウントダウンして(COUNTACC←COUNTACC−1)ルーチンを抜け、COUNTACC=0のときには、ステップS505で、加速判定レベルLEVACC(後述する加速判定ルーチンにて設定され、数値が小さいほど加速が大きい)と設定値ACCDVG(例えば、ACCDVG=4)とを比較する。
【0066】
その結果、上記ステップS505で、LEVACC≦ACCDVGのときには、ステップS506へ進んで、車速VSPが設定値VSPACT(例えば、VSPACT=20〜60Km)未満か否かを判別し、VSP<VSPACTのとき、ステップS507で、学習中止点火回数COUNTACCに設定値ACCTN(例えば、30回)をセットして(COUNTACC←ACCTN)、ステップS509でカウントダウンを行なってルーチンを抜け、VSP≧VSPACTのとき、ステップS508で、学習中止点火回数COUNTACCに設定値ACCNTV(例えば、150回)をセットして(COUNTACC←ACCNTV)、ステップS509でカウントダウンを行なってルーチンを抜ける。
【0067】
すなわち、加速時には、正確なノック検出が困難であって的確な点火時期学習が期待できず、また、加速状態は短時間であるため、学習を中止しても問題はないため、加速レベルLEVACCが設定値ACCDVG以下のとき、所定点火回数の間、加速と判定して学習を中止するのである。
【0068】
この際、自動変速機を搭載した自動車では、車速VSPが高い(VSP≧VSPACT)とキックダウンが起こり、エンジン回転数が急激に変化し、安定化するに至るまで時間を要し、車速VSPが低い(VSP<VSPACT)と、キックダウンは起こらず、比較的エンジン回転数変化が少ない。従って、学習中止の際、VSP≧VSPACTの場合には、VSP<VSPACTの場合よりも学習中止の点火回数を大きくするのである。
【0069】
一方、上記ステップS505で、LEVACC>ACCDVGのときには、上記ステップS505からステップS510以降へ分岐して学習を行なう。以下、学習手順について説明すると、ステップS510で、バックアップRAM40aの所定アドレスから全体補正終了フラグFLAGTCMPの値を読出し、全体補正が終了したか否かを判別する。
【0070】
そして、FLAGTCMP=0、すなわち、全体補正が終了していないときには、ステップS510からステップS511へ進んで、ノック無しの状態の継続時間をカウントするノック無し継続時間タイマTIM3をクリアし(TIM3←0)、ステップS512で、全体補正係数学習のサブルーチンを呼び出して全体補正係数TCMPを学習し、ルーチンを終了する。
【0071】
一方、上記ステップS510で、FLAGTCMP=1、すなわち、全体補正が終了しているときには、ステップS510からステップS513以降へと分岐し、ステップS513,S514で、それぞれ、後述する全体補正係数学習のサブルーチンにて、全体補正係数TCMPが上下限に達した状態をカウントするための制限カウント値COUNTTCMP、ノック発生無しの状態をカウントするためのノック発生無しカウント値COUNTNKをクリアする(COUNTTCMP←0、COUNTNK←0)。
【0072】
その後、ステップS515で、部分補正点火時期学習のサブルーチンを呼び出して部分補正点火時期ADVPRTを学習し、次いで、部分補正の結果、全体補正が不適当となって、再度、全体補正を行なう全体補正復帰条件が成立するか否かを、ステップS516〜S520において判別する。
【0073】
すなわち、ステップS516で、学習した運転領域の部分補正点火時期ADVPRTが負の値か否か(リタードか否か)を判別するとともに、ステップS517で、全体補正係数TCMPが設定値TCLOW(但し、1.0>TCLOW>0)以上か否かを判別し、ADVPRT<0(リタード)且つTCMP≧TCLOWのときステップS518へ進み、これ以外のときにはルーチンを抜ける。
【0074】
ステップS518では、エンジン回転数NE、基本燃料噴射量TPに基づき、高オクタン価燃料用進角値テーブルから高オクタン価燃料用進角値IGMBTを設定し、この高オクタン価燃料用進角値IGMBTに設定値PCMPL(例えば、PCMPL=0.1〜0.4)を乗算した値IGMBT×PCMPLと、部分補正点火時期ADVPRTの絶対値|ADVPRT|とを、ステップS519にて比較する。
【0075】
そして、|ADVPRT|<IGMBT×PCMPLのときには、ステップS519からルーチンを抜け、|ADVPRT|≧IGMBT×PCMPLのとき、ステップS519からステップS520へ進んで、エンジン回転数NE及び基本燃料噴射量TPが設定範囲内(NESETL3≦NE≦NESETH3、且つ、TPSETL3≦TP≦TPSETH3)にあるか否かを判別し、設定範囲内にないときにはルーチンを抜け、設定範囲内のとき、ステップS521で、全体補正終了フラグFLAGTCMPをクリアして(FLAGTCMP←0)ルーチンを抜ける。
【0076】
上述のステップS505における加速判定レベルLEVACCは、所定時間毎に実行される加速判定ルーチン(図4及び図5)にて設定される。この加速判定ルーチンでは、まず、ステップS601で、スロットル開度センサ9aからのスロットル開度θを読込み、ステップS602で、前回のルーチン実行時のスロットル開度θMEMOをRAM40から読出す。
【0077】
次いで、ステップS603へ進んで、今回のスロットル開度θと前回のスロットル開度θMEMOからスロットル開度変化d(θ−θMEMO)/dtを算出し、ステップS604以降におけるスロットル開度変化d(θ−θMEMO)/dtの設定値SET0,SET1,SET2,SET3,SET4,SET5,SET6(SET0>SET1>SET2>SET3>SET4>SET5>SET6)に対する大小比較結果により、加速判定レベルLEVACCを決定する。
【0078】
すなわち、ステップS604で、d(θ−θMEMO)/dt>SET0のときには、ステップS605へ進んで、加速判定レベルLEVACCを0として(LEVACC←0)RAM40にストアし、d(θ−θMEMO)/dt≦SET0のときには、ステップS606へ分岐して、スロットル開度変化d(θ−θMEMO)/dtを設定値SET1と比較する。
【0079】
上記ステップS606での比較結果、d(θ−θMEMO)/dt>SET1のときには、ステップS607で、加速判定レベルLEVACCを1として(LEVACC←1)RAM40にストアし、d(θ−θMEMO)/dt≦SET1のときには、ステップS608以降へ分岐する。
【0080】
そして、以下、同様にして、スロットル開度変化d(θ−θMEMO)/dtと設定値SET2,SET3,SET4,SET5,SET6とを順に比較し、スロットル開度変化d(θ−θMEMO)/dtが設定値より大きいとき、ステップS609,S611,S613,S615,S617のいずれかのステップで、加速判定レベルLEVACCを2、3、4、5、あるいは6として(LEVACC←2、LEVACC←3、LEVACC←4、LEVACC←5、あるいは、LEVACC←6)RAM40にストアし、最終的に、ステップS616で、d(θ−θMEMO)/dt≦SET6のとき、ステップS618へ進んで、加速判定レベルLEVACCを7として(LEVACC←7)RAM40にストアする。
【0081】
その後、加速判定レベルLEVACCを決定すると、ステップS619へ進み、今回読込んだスロットル開度θをスロットル開度θMEMOとしてRAM40の所定アドレスにストアし、ルーチンを抜ける。
【0082】
また、上述の全体補正係数及び部分補正点火時期学習ルーチンのステップS512,S515における全体補正係数学習のサブルーチン、部分補正点火時期学習のサブルーチンは、それぞれ、図11〜図13、図14〜図17に示される。
【0083】
図11〜図13の全体補正係数学習のサブルーチンでは、ステップS701で、エンジン回転数NE、基本燃料噴射量TPが学習領域内(NESETL1≦NE≦NESETH1、且つ、TPSETL1≦TP≦TPSETH1)にあるか否かを判別し、学習領域内にないときにはルーチンを抜け、学習領域内にあるときには、ステップS702で、ノック発生の有無を判別して、ノック発生有りのとき、ステップS703以降へ進み、、ノック発生無しのとき、ステップS713以降へ分岐する。
【0084】
まず、ノック発生有りの場合について説明すると、ステップS703で、ノックの有無の変化を判別するための全体補正ノック有無変化判別フラグFLAGNK1の値を参照し、FLAGNK1=1のとき、すなわち、前回もノック発生有りの状態であり、ノック有無の状態が変化していないときには、ステップS705へジャンプし、FLAGNK1=0のとき、すなわち、前回、ノック発生無しであり、今回ノック発生有りとなったときには、ステップS704で、全体補正係数TCMPを更新するための変化量ΔTCMPを前回の値の1/2に更新し(ΔTCMP←ΔTCMP/2)、ステップS705へ進む。
【0085】
ステップS705では、前回までの全体補正係数TCMPを変化量ΔTCMPを減算して更新し(TCMP←TCMP−ΔTCMP)、ステップS706で、部分補正テーブルTBADVPRTを初期化する。すなわち、ノックが発生しているときには、エンジン1/2回転毎に全体補正係数TCMPを遅角側に更新し、この全体補正係数TCMPの更新に伴い部分補正テーブルTBADVPRTのテーブル値を全て”0”にクリアして初期化するのである。
【0086】
尚、部分補正テーブルTBADVPRTは、バックアップ電源がOFFとなってバックアップRAM40a内のデータが破壊された場合には、電源再投入時、テーブル値は全てクリアされ初期化される。
【0087】
その後、ステップS707へ進むと、全体補正係数TCMPが遅角側に更新されて負の値になったか否かを判別し、TCMP≦0のとき、ステップS708で、全体補正係数TCMPを”0”に固定して(TCMP←0)遅角制限すると、ステップS709で、全体補正係数TCMPが上下限に達した状態をカウントするための制限カウント値COUNTTCMPをカウントアップし(COUNTTCMP←COUNTTCMP+1)、ステップS711へ進む。
【0088】
また、上記ステップS707で、TCMP>0のときには、ステップS709で、制限カウント値COUNTTCMPをクリアし(COUNTTCMP←0)、ステップS711で、全体補正ノック有無変化判別フラグFLAGNK1をセットすると(FLAGNK1←1)、ステップS712で、ノック発生無しの状態をカウントするためのノック発生無しカウント値COUNTNKをクリアし(COUNTNK←0)、ステップS725へ進む。
【0089】
一方、上記ステップS702で、ノック発生無しの場合には、ステップS713で、全体補正ノック有無変化判別フラグFLAGNK1の値を参照し、FLAGNK1=1のとき、すなわち、前回、ノック発生有りの状態からノック無しの状態に変化したときには、ステップS714へ進んで、変化量ΔTCMPを前回の値の1/2に更新し(ΔTCMP←ΔTCMP/2)、ステップS724で、全体補正ノック有無変化判別フラグFLAGNK1をクリアして(FLAGNK1←0)ステップS725へ進む。
【0090】
また、上記ステップS713で、FLAGNK1=0であり、前回から引き続きノック発生無しの状態が継続しているときには、上記ステップS713からステップS715へ進んで、ノック発生無しカウント値COUNTNKをカウントアップすると(COUNTNK←COUNTNK+1)、ステップS716で、ノック発生無しカウント値COUNTNKが設定値CTOTJD以上となったか否かを判別する。
【0091】
そして、上記ステップS716で、COUNTNK<CTOTJDのときには、前述のステップS724へ分岐し、COUNTNK≧CTOTJDのとき、すなわち、ノックが設定回数の点火で発生しなかったときには、ステップS717へ進んで、前回までの全体補正係数TCMPに変化量ΔTCMPを加算して進角側に更新し(TCMP←TCMP+ΔTCMP)、ステップS718で、部分補正テーブルTBADVPRTを初期化する。
【0092】
次いで、ステップS719へ進み、進角側への更新により全体補正係数TCMPが1.0以上となったか否かを判別し、TCMP≧1.0のとき、ステップS720で、全体補正係数TCMPを1.0に固定して(TCMP←1.0)進角制限すると、ステップS721で、制限カウント値COUNTTCMPをカウントアップし(COUNTTCMP←COUNTTCMP+1)、TCMP<1.0のときには、ステップS722で、制限カウント値COUNTTCMPをクリアする(COUNTTCMP←0)。
【0093】
次いで、上記ステップS721あるいはステップS722からステップS723へ進むと、ノック発生無しカウント値COUNTNKをクリアして(COUNTNK←0)、ステップS724で、全体補正ノック有無変化判別フラグFLAGNK1をクリアし(FLAGNK1←0)、その後、ステップS725で、変化量ΔTCMPを設定値DTCMP2(例えば、1/16)と比較するとともに、ステップS726で、制限カウント値COUNTTCMPを設定値NTCMPと比較する。
【0094】
そして、上記ステップS725,S726において、ΔTCMP≦DTCMP2、あるいは、COUNTTCMP≧NTCMPの条件が不成立のときには、ステップS727で、全体補正終了フラグFLAGTCMPをクリアして(FLAGTCMP←0)ルーチンを抜け、条件が1つでも成立したとき、すなわち、変化量ΔTCMPが設定値DTCMP2以下のとき、あるいは、全体補正係数TCMPが上下限となった状態が設定回連続したときには、ステップS728で、全体補正終了フラグFLAGTCMPをセットして(FLAGTCMP←1)ルーチンを抜け、前述した全体補正係数及び部分補正点火時期学習手順のルーチンが次回に起動されたとき、全体補正を終了させて部分補正に移行させる。
【0095】
尚、全体補正係数TCMP、変化量ΔTCMP、全体補正終了フラグFLAGTCMPは、バックアップRAM40aにストアされており、バッテリ35を取外すなどしてバックアップ電源がOFFとなり、バックアップRAM40a内のデータが破壊された場合には、電源再投入時に、それぞれ、初期値にイニシャルセットされる(TCMP←TCMPINI(例えば、1/2)、ΔTCMP←ΔTCMPINI(例えば、1/4)、FLAGTCMP←0)
また、図14〜図17の部分補正点火時期学習のサブルーチンでは、ステップS801で、エンジン回転数NE、基本燃料噴射量TPが、部分補正テーブルTBADVPRTの領域内(NE0≦NE≦NEN、且つ、TP0≦TP≦TPN)か否かを判別し、領域内にないときにはルーチンを抜け、領域内にあるとき、ステップS802で、ノック発生の有無を判別する。
【0096】
そして、ノック発生有りの場合には、ステップS802からステップS803へ進み、ノック無しの状態の継続時間をカウントするためのノック無し継続時間タイマTIM3をクリアし(TIM3←0)、ステップS804で、エンジン回転数NE、基本燃料噴射量TPに基づき、部分補正テーブルTBADVPRTを参照して部分補正点火時期ADVPRTを設定する。
【0097】
次いで、ステップS805へ進み、上記ステップS804で設定した部分補正点火時期ADVPRTを旧テーブル値(ADVPRT)OLDとし((ADVPRT)OLD←ADVPRT)、ステップS806で、旧テーブル値(ADVPRT)OLDから設定値DRETPを減算して新テーブル値(ADVPRT)NEWとする((ADVPRT)NEW←(ADVPRT)OLD−DRETP)ことにより、1回ノックが発生する毎に設定値DRETPずつ遅角させ、ステップS807へ進む。
【0098】
ステップS807では、新テーブル値(ADVPRT)NEWを遅角制限値LWLMTPと比較し、(ADVPRT)NEW>LWLMTPのときには、ステップS809にジャンプする一方、(ADVPRT)NEW≦LWLMTPのときには、ステップS808で、新テーブル値(ADVPRT)NEWを遅角制限値LWLMTPに固定して((ADVPRT)NEW←LWLMTP)ステップS809に進み、制限値以上の遅角化を防止する。
【0099】
ステップS809では、部分補正テーブルTBADVPRTの該当領域ADDRESSの部分補正点火時期ADVPRTを新テーブル値(ADVPRT)NEWで更新し(ADVPRT←(ADVPRT)NEW)、ステップS810で、ノックの有無の変化を判別するための部分補正ノック有無変化判別フラグFLAGNK2をセットして(FLAGNK2←1)ルーチンを抜ける。
【0100】
一方、上記ステップS802で、ノック発生無しの場合には、上記ステップS802からステップS811へ分岐し、部分補正ノック有無変化判別フラグFLAGNK2の値を参照し、FLAGNK2=1のとき、すなわち、前回、ノック発生有りの状態からノック無しの状態に変化したときには、ステップS832へジャンプして、ノック無し継続時間タイマTIM3をスタートさせ、ステップS833で、部分補正ノック有無変化判別フラグFLAGNK2をクリアして(FLAGNK2←0)ルーチンを抜ける。
【0101】
また、部分補正ノック有無変化判別フラグFLAGNK2がFLAGNK2=0のとき、すなわち、前回ルーチン実行時もノック発生無しのときには、上記ステップS811からステップS812へ進んで、エンジン回転数NE、基本燃料噴射量TPに基づき部分補正テーブルTBADVPRTにおける領域ADDRESSを特定し、ステップS813で、この領域ADDRESSを新領域(ADDRESS)NEWとする((ADDRESS)NEW←ADDRESS)。
【0102】
そして、今回のルーチン実行時の新領域(ADDRESS)NEWが前回の旧領域(ADDRESS)OLDと同じか否かをステップS814で判別し、新領域(ADDRESS)NEWが前回のルーチン実行時の旧領域(ADDRESS)OLDと異なる場合には、ステップS814からステップS830へ分岐してノック無し継続時間タイマTIM3をクリアし(TIM3←0)、ステップS831で、新領域(ADDRESS)NEWを旧領域(ADDRESS)OLDとして((ADDRESS)OLD←(ADDRESS)NEW)、前述したステップS832,S833を経てルーチンを抜ける。
【0103】
一方、今回のルーチン実行時の新領域(ADDRESS)NEWが前回のルーチン実行時の旧領域(ADDRESS)OLDと同じ場合には、上記ステップS814からステップS815へ進んで、新領域(ADDRESS)NEWを旧領域(ADDRESS)OLDとし((ADDRESS)OLD←(ADDRESS)NEW)、ステップS816で、ノック無し継続時間タイマTIM3の計時が設定時間TIMPRT以上経過したか否かを判別する。
【0104】
上記ステップS816で、ノック無し継続時間タイマTIM3の計時が設定時間TIMPRTを越えていないときには、前述のステップS833を経てルーチンを抜け、ノック無し継続時間タイマTIM3の計時が設定時間TIMPRT以上となったときには、ステップS817で、ノック無し継続時間タイマTIM3をクリアして(TIM3←0)ステップS818へ進み、部分補正テーブルTBADVPRTの該当領域ADDRESSから部分補正点火時期ADVPRTを読出す。
【0105】
その後、ステップS819へ進んで、読出した部分補正点火時期ADVPRTを旧テーブル値(ADVPRT)OLDとし((ADVPRT)OLD←ADVPRT)、ステップS820で、旧テーブル値(ADVPRT)OLDに設定値DADVPを加算して新テーブル値(ADVPRT)NEWとする((ADVPRT)NEW←(ADVPRT)OLD+DADVP)ことにより、同一の運転領域でノックが発生していなければ設定時間TIMPRT毎に設定値DADVPずつ進角させ、ステップS821へ進む。
【0106】
ステップS821では、エンジン回転数NE、基本燃料噴射量TPに基づき、高オクタン価燃料用進角値テーブルを参照して高オクタン価燃料用進角値IGMBTを設定すると、ステップS822で、全体補正係数TCMPをバックアップRAM40aから読出す。
【0107】
次に、ステップS823で、高オクタン価燃料用進角値IGMBTに全体補正係数TCMPの上限との差(1−TCMP)を乗算した値を、部分補正点火時期制限値ADVPRTLIMとし(ADVPRTLIM←IGMBT×(1−TCMP))、この新テーブル値(ADVPRT)NEWを、ステップS824以降で、設定値UPLMTPと部分補正点火時期制限値ADVPRTLIMとの小さい方の値に進角制限する。
【0108】
すなわち、ステップS824で、部分補正点火時期制限値ADVPRTLIMと設定値UPLMTPと比較し、UPLMTP≦ADVPRTLIMのときには、上記ステップS824からステップS825へ進んで、上記ステップS820で設定した新テーブル値(ADVPRT)NEWと設定値UPLMTPとを比較する。
【0109】
その比較結果、(ADVPRT)NEW<UPLMTPのときには、上記ステップS825からステップS829へジャンプし、(ADVPRT)NEW≧UPLMTPのときには、ステップS826で、設定値UPLMTPを新テーブル値(ADVPRT)NEWとして((ADVPRT)NEW←UPLMTP)、ステップS829へ進む。
【0110】
一方、上記ステップS824での比較結果、UPLMTP>ADVPRTLIMのときには、上記ステップS824からステップS827へ分岐して新テーブル値(ADVPRT)NEWと部分補正点火時期制限値ADVPRTLIMとを比較し、(ADVPRT)NEW<ADVPRTLIMのときにはステップS829にジャンプし、(ADVPRT)NEW≧ADVPRTLIMのときには、ステップS828で、部分補正点火時期制限値ADVPRTLIMを新テーブル値(ADVPRT)NEWとして((ADVPRT)NEW←ADVPRTLIM)、ステップS829へ進む。
【0111】
そして、一連の進角制限のステップを経てステップS829へ進むと、部分補正テーブルTBADVPRTの該当領域ADDRESSの部分補正点火時期ADVPRTを、新テーブル値(ADVPRT)NEWにて更新し(ADVPRT←(ADVPRT)NEW)、ステップS833で、部分補正ノック有無変化判別フラグFLAGNK2をクリアして(FLAGNK2←0)ルーチンを抜ける。
【0112】
これにより、全体補正点火時期ADVTOT(=IGREG+TCMP×IGMBT)と部分補正点火時期ADVPRTとの加算値は、IGREG+IGMBT以下に制限され、過進角が防止される。
【0113】
【発明の効果】
以上説明したように本発明によれば、自動変速機搭載車のエンジンの点火時期学習制御において、加速時に所定の点火回数の間、点火時期補正量の学習を禁止するに際し、スロットル開度の変化により加速度合いを示す加速判定レベルを設定する。そして、加速判定レベルと設定値との比較により加速が大きいと判断されるとき、点火時期補正量の学習を禁止すると共に、このときの学習禁止期間を定める点火回数を、車速が設定値以上の高車速の場合は、車速が設定値未満の低車速の場合に比べ、大きく設定する。すなわち、自動変速機搭載車においては、スロットル開度と車速により変速パターンが定義されており、スロットル開度が変化する加速時に、車速が高い場合、キックダウンが生じてエンジン回転数が急変し、エンジン状態が安定化に至るまで時間を要し、車速が低いと、キックダウンは起こらず比較的エンジン回転数変化が少なくエンジン安定化に至るまでの時間が短い。ここで、キックダウンに影響を与える変速パターンを定める同一パラメータ、すなわち、スロットル開度と車速とを用い、スロットル開度の変化により加速度合いを示す加速判定レベルを設定して、加速判定レベルと設定値との比較により加速が大きいと判断されるとき、学習禁止期間を定める点火回数を、車速が設定値以上の高車速の場合は、車速が設定値未満の低車速の場合に比べて大きく設定し、この点火回数により加速時の学習禁止期間を定めるので、加速時のキックダウンによる影響と学習禁止期間とを的確に整合させることができる。
従って、自動変速機搭載車において加速時に、キックダウンの影響によるエンジン回転数の変化によりエンジン状態が安定化するまでの期間に対応して学習停止期間を適正に定めることができ、制御性の悪化を防止して安定した点火時期制御を確実に実現し、点火時期制御性を著しく向上することができる。
【図面の簡単な説明】
【図1】全体補正係数及び部分補正点火時期学習手順のフローチャート(その1)
【図2】全体補正係数及び部分補正点火時期学習手順のフローチャート(その2)
【図3】全体補正係数及び部分補正点火時期学習手順のフローチャート(その3)
【図4】加速判定手順のフローチャート(その1)
【図5】加速判定手順のフローチャート(その2)
【図6】気筒判別・エンジン回転数算出手順のフローチャート
【図7】点火時期設定手順のフローチャート(その1)
【図8】点火時期設定手順のフローチャート(その2)
【図9】通電・点火制御手順におけるθ2割込みのフローチャート
【図10】通電・点火制御手順におけるθ3割込みのフローチャート
【図11】全体補正係数学習のサブルーチンを示すフローチャート(その1)
【図12】全体補正係数学習のサブルーチンを示すフローチャート(その2)
【図13】全体補正係数学習のサブルーチンを示すフローチャート(その3)
【図14】部分補正点火時期学習のサブルーチンを示すフローチャート(その1)
【図15】部分補正点火時期学習のサブルーチンを示すフローチャート(その2)
【図16】部分補正点火時期学習のサブルーチンを示すフローチャート(その3)
【図17】部分補正点火時期学習のサブルーチンを示すフローチャート(その4)
【図18】部分補正テーブルの概念図
【図19】エンジン制御系の概略図
【図20】クランクロータとクランク角センサの正面図
【図21】カムロータとカム角センサの正面図
【図22】制御装置の回路構成図
【図23】点火タイミングを示すタイムチャート
【符号の説明】
LEVACC 加速判定レベル
ACCDVG 設定値
VSP 車速
COUNTACC 学習中止点火回数
[0001]
[Industrial applications]
The present invention relates to an ignition timing learning control method for an engine that performs learning control of an ignition timing according to whether knock has occurred.
[0002]
[Prior art]
Recently, technology for detecting knocking due to abnormal combustion of the engine and optimally controlling the ignition timing has been widely adopted.
[0003]
In this case, the engine knock often detects pressure vibration due to abnormal combustion of the air-fuel mixture as mechanical vibration using an acceleration sensor or the like attached to a cylinder head or a cylinder block. It becomes difficult to distinguish the component from the vibration component of the engine itself.
[0004]
Therefore, in an operation region where knock detection is difficult, the ignition timing is corrected based on a learning value learned in an operation region where knock detection is possible. For example, Japanese Patent Laid-Open No. 60-27782 discloses an engine ( A technique is disclosed in which the updating of the learning retard amount is stopped at the time of a transient transition of the state of the engine) to prevent unnecessary decrease in torque due to an abnormal increase in the learning retard amount.
[0005]
[Problems to be solved by the invention]
However, at the time of acceleration, the operating state of the engine is affected by the shift position (shift range) of the transmission of the vehicle. Therefore, it is difficult to accurately detect knocking even if acceleration is relatively moderate. Learning may not be possible. In addition, since the knock occurrence period is not constant, if the ignition timing learning is uniquely stopped, controllability may be deteriorated.
[0006]
The present invention has been made in view of the above circumstances, and it is possible to prevent deterioration in controllability by stopping ignition timing learning for a period according to the state of the engine during acceleration, and to perform stable ignition timing control. It is an object of the present invention to provide an ignition timing learning control method for an engine.
[0007]
[Means for Solving the Problems]
In order to achieve the above object, the present invention providesThe ignition timing correction amount according to the presence or absence of knock is learned, and the ignition timing is controlled based on the learned ignition timing correction amount.At the same time, acceleration is determined, and during acceleration, learning of the ignition timing correction amount is prohibited for a predetermined number of ignitions.In the ignition timing learning control method of the engine,An ignition timing learning control for an engine of a vehicle equipped with an automatic transmission, wherein an acceleration determination level indicating an acceleration level is set based on a change in throttle opening, and it is determined that acceleration is large by comparing the acceleration determination level with the set value. At this time, the learning of the ignition timing correction amount is prohibited, and the number of ignitions that defines the learning prohibition period at this time is set to be higher in the case where the vehicle speed is higher than the set value than in the case where the vehicle speed is lower than the set value. , Set largeIt is characterized by doing.
[0009]
[Action]
According to the present invention, in the ignition timing learning control of an engine of a vehicle equipped with an automatic transmission, when learning of an ignition timing correction amount is prohibited during a predetermined number of ignitions during acceleration, an acceleration determination indicating a degree of acceleration by a change in a throttle opening is performed. Set the level. When it is determined that the acceleration is large by comparing the acceleration determination level with the set value, learning of the ignition timing correction amount is prohibited, and the number of ignitions that defines the learning prohibition period at this time is set to a value equal to or greater than the vehicle speed set value. When the vehicle speed is high, the speed is set to be higher than when the vehicle speed is lower than the set value.
[0011]
【Example】
Hereinafter, embodiments of the present invention will be described with reference to the drawings. The drawings show an embodiment of the present invention. FIG. 1 is a flowchart (part 1) of a learning procedure of a whole correction coefficient and a partial correction ignition timing, and FIG. 2 is a flowchart (part 2) of a learning procedure of a whole correction coefficient and a partial correction ignition timing. FIG. 3 is a flowchart (part 3) of a procedure for learning the whole correction coefficient and the partial correction ignition timing, FIG. 4 is a flowchart (part 1) of the acceleration determination procedure, FIG. 5 is a flowchart (part 2) of the acceleration determination procedure, and FIG. 7 is a flowchart of an ignition timing setting procedure (part 1), FIG. 8 is a flowchart of an ignition timing setting procedure (part 2), and FIG. 9 is a θ2 interrupt in the energization / ignition control procedure. 10 is a flowchart of the θ3 interrupt in the energization / ignition control procedure, and FIG. 11 is a flowchart showing a subroutine for learning the overall correction coefficient. 12 is a flowchart showing a subroutine for learning the whole correction coefficient (part 2), FIG. 13 is a flowchart showing a subroutine for learning the whole correction coefficient (part 3), and FIG. 15 is a flowchart showing a subroutine for learning partially corrected ignition timing (part 2), FIG. 16 is a flowchart showing a subroutine for learning partially corrected ignition timing (part 3), and FIG. FIG. 18 is a conceptual diagram of a partial correction table, FIG. 19 is a schematic diagram of an engine control system, FIG. 20 is a front view of a crank rotor and a crank angle sensor, and FIG. 21 is a cam rotor. FIG. 22 is a circuit configuration diagram of the control device, and FIG. 23 is an ignition timing diagram. Is a time chart showing a grayed.
[0012]
(Configuration of engine control system)
In FIG. 19, reference numeral 1 denotes an engine body, and in the figure, a horizontally opposed four-cylinder engine is shown. An intake manifold 3 communicates with each intake port 2 a formed in a cylinder head 2 of the engine body 1, a throttle chamber 5 communicates with the intake manifold 3 via an air chamber 4, and intake air flows upstream of the throttle chamber 5. An air cleaner 7 is attached via a pipe 6.
[0013]
Further, an intake air amount sensor (in the figure, a hot wire type air flow meter) 8 is interposed immediately downstream of the air cleaner 7 of the intake pipe 6, and a throttle valve 5a provided in the throttle chamber 5 is provided with a throttle valve 5a. A throttle opening sensor 9a and an idle switch 9b for detecting that the throttle valve is fully closed are connected in series.
[0014]
Further, an idle speed control valve (ISCV) 11 is interposed in a bypass passage 10 that connects the upstream side and the downstream side of the throttle valve 5a, and is located immediately upstream of each intake port 2a of each cylinder of the intake manifold 3. , An injector 12 is provided. Further, an ignition plug 13a whose tip is exposed to the combustion chamber is attached to each cylinder of the cylinder head 2, and an igniter 14 is connected to an ignition coil 13b connected to the ignition plug 13a.
[0015]
The injector 12 is connected to a fuel tank 16 via a fuel supply path 15, and an in-tank type fuel pump 17 is provided in the fuel tank 16. The fuel from the fuel pump 17 is pressure-fed to the injector 12 and the pressure regulator 19 through a fuel filter 18 interposed in the fuel supply path 15, and is returned from the pressure regulator 19 to the fuel tank 16 to a predetermined pressure. Regulated to pressure.
[0016]
A knock sensor 20 is attached to a cylinder block 1a of the engine body 1, and a coolant temperature sensor 21 faces a coolant passage (not shown) formed in the cylinder block 1a. An O2 sensor 23 faces a collecting portion of the exhaust manifold 22 communicating with the exhaust port 2b. Reference numeral 24 denotes a catalytic converter.
[0017]
A crank rotor 25 is axially mounted on a crankshaft 1b supported by the cylinder block 1a. An electromagnetic pickup or the like that detects a projection (or a slit) corresponding to a predetermined crank angle on the outer periphery of the crank rotor 25 is provided. And a cam angle sensor 28 for discriminating a cylinder, such as an electromagnetic pickup, is provided on a cam rotor 27 connected to the camshaft 1c of the cylinder head 2.
[0018]
As shown in FIG. 20, the crank rotor 25 has projections 25a, 25b, 25c formed on the outer periphery thereof, and these projections 25a, 25b, 25c are connected to the cylinders (# 1, # 2, # 3, # 3). 4) before compression top dead center (BTDC) θ1, θ2, θ3 (for example, θ1 = 97 °, θ2 = 65 °, θ3 = 10 °).
[0019]
That is, the engine rotational speed NE is calculated from the passage time between the protrusions 25a and 25b, and the protrusions 25b and 25c respectively indicate the reference crank angle at the time of setting the ignition timing and the fuel injection timing, and the reference crank angle indicating the fixed ignition timing. It becomes.
[0020]
As shown in FIG. 21, projections 27a, 27b and 27c for cylinder discrimination are formed on the outer periphery of the cam rotor 27. For example, the projections 27a are located after the compression top dead center of the # 3 and # 4 (ATDC). The protrusion 27b is formed of three protrusions, and the first protrusion is formed at the position of ATDC θ5 of the # 1 cylinder (for example, θ5 = 5 °). Further, the protrusion 27c is formed by two protrusions, and the first protrusion is formed at the position of ATDC θ6 (for example, θ6 = 20 °) of the # 2 cylinder.
[0021]
The crank angle sensor 26 and the cam angle sensor 28 are not limited to magnetic sensors such as an electromagnetic pickup, but may be optical sensors.
[0022]
(Circuit configuration of control device)
On the other hand, in FIG. 22, reference numeral 30 denotes a control device (ECU) including a microcomputer or the like. The ECU 30 includes a main computer 31 for performing ignition timing control, fuel injection control, and the like, and a dedicated sub-processor for performing knock detection processing. Two microcomputers with the computer 32 are configured as cores.
[0023]
The ECU 30 has a built-in constant voltage circuit 33 for supplying a stabilized voltage to each unit. The constant voltage circuit 33 is connected to a battery 35 directly and via a relay contact of an ECU relay 34. I have. A relay coil of the ECU relay 34 is connected to the battery 35 via a key switch 36, and the fuel pump 17 is connected to the battery 35 via a relay contact of a fuel pump relay 37.
[0024]
The main computer 31 includes a main CPU 38, a ROM 39, a RAM 40, a backup RAM 40a, a timer 41, a serial interface (SCI) 42, and an I / O interface 43 connected to each other via a bus line 44. Are mounted in the ECU 30 as one LSI chip, for example.
[0025]
An input port of the I / O interface 43 is connected to an intake air amount sensor 8, a throttle opening sensor 9a, a cooling water temperature sensor 21, an O2 sensor 23, and a vehicle speed sensor 60 via an A / D converter 45. At the same time, the starter switch 46, the idle switch 9b, the crank angle sensor 26, and the cam angle sensor 28 are connected, and the battery 35 is connected to monitor the battery voltage.
[0026]
The igniter 14 is connected to the output port of the I / O interface 43, and the ISCV 11, the injector 12, and the relay coil of the fuel pump relay 37 are connected via the drive circuit 47.
[0027]
On the other hand, the sub-computer 32 is configured by connecting a sub-CPU 48, a ROM 49, a RAM 50, a timer 51, an SCI 52, and an I / O interface 53 to each other via a bus line 54. For example, it is mounted in the ECU 30 as one LSI chip.
[0028]
The crank angle sensor 26 and the cam angle sensor 28 are connected to the input ports of the I / O interface 53, and the knock sensor 20 is connected via an amplifier 55, a frequency filter 56, and an A / D converter 57. ing.
[0029]
The knock sensor 20 is, for example, a resonance type knock sensor including a vibrator having substantially the same natural frequency as the knock vibration and a piezoelectric element that detects a vibration acceleration of the vibrator and converts the vibration acceleration into an electric signal. Vibration transmitted to the cylinder block 1a is detected by the combustion pressure wave during the explosion stroke of the engine, and the vibration waveform is output as a detection signal.
[0030]
After the detection signal of the knock sensor 20 is amplified to a predetermined level by the amplifier 55, necessary frequency components are extracted by the frequency filter 56, and are converted from analog data to digital data by the A / D converter 57. .
[0031]
The main computer 31 and the sub-computer 32 are connected by a serial line via SCIs 42 and 52, and the output port of the I / O interface 53 of the sub-computer 32 is connected to the I / O of the main computer 31. It is connected to the input port of the O interface 43.
[0032]
The main computer 31 sets the ignition timing and the like based on the crank pulse from the crank angle sensor 26, determines the target cylinder to be ignited based on the cam pulse from the cam angle sensor 28, and sets a predetermined ignition timing. When it reaches, the ignition signal is output to the igniter 14 to ignite the corresponding cylinder.
[0033]
On the other hand, the sub-computer 32 sets a sample section of the detection signal from the knock sensor 20 based on the engine speed and the engine load, and performs high-speed A / D conversion of the detection signal from the knock sensor 20 in this sample section. Then, the vibration waveform is faithfully converted into digital data, and it is determined whether or not knock has occurred.
[0034]
The knock determination data indicating whether or not knock has occurred is output to the I / O interface 53 of the sub-computer 32. In the case of knock occurrence, the knock is transmitted from the sub-computer 32 to the main computer 31 via a serial line via the SCIs 52 and 42. The data is read. The main computer 31 immediately delays the ignition timing of the corresponding cylinder based on the knock data to avoid knocking.
[0035]
When the ignition timing is controlled by the main computer 31, learning control is performed on two ignition timing tables, a basic advance value table for low octane fuel and an advanced value table for high octane fuel, and this learning control is performed. , Is stopped during acceleration. Hereinafter, the operation related to the ignition timing learning control will be described.
[0036]
(Cylinder discrimination / engine speed calculation procedure)
FIG. 6 shows a routine of cylinder discrimination and engine speed calculation which is interrupted by the input of a crank pulse from the crank angle sensor 26. First, in step S101, based on the output of the cam angle sensor 28, the ignition target cylinder of #i Is determined, the crank pulse is identified in step S102.
[0037]
As shown in the time chart of FIG. 23, for example, when a cam pulse of θ5 (projection 27b) is output from the cam angle sensor 28, the next compression top dead center is # 3 cylinder, and this # 3 cylinder is ignited. It can be determined that the target cylinder (the # 4 cylinder is the fuel injection target cylinder).
[0038]
If a cam pulse of θ4 (projection 27a) is output after the cam pulse of θ5, the next compression top dead center is cylinder # 2, and this cylinder # 2 is an ignition target cylinder (# 1 is a fuel injection target cylinder). Cylinder).
[0039]
Similarly, the compression top dead center after the output of the cam pulse of θ6 (projection 27c) is # 4 cylinder, and this # 4 cylinder is the ignition target cylinder (# 3 cylinder is the fuel injection target cylinder). Further, when the cam pulse of θ4 (projection 27a) is output after the cam pulse of θ6, the compression top dead center is the # 1 cylinder, and the # 1 cylinder is the cylinder to be ignited (the # 2 cylinder is the fuel injection target). Cylinder).
[0040]
Further, after the cam pulse is output from the cam angle sensor 28, the crank pulse output from the crank angle sensor 26 indicates a reference crank angle (θ1) for calculating a cycle (rotation speed), and the next crank pulse is It can be determined that it indicates the reference crank angle (θ2) when setting the ignition timing and the fuel injection start timing of the corresponding cylinder.
[0041]
That is, in the four-stroke four-cylinder engine of the present embodiment, the combustion stroke is in the order of # 1 → # 3 → # 2 → # 4, and assuming that the cylinder to be ignited of the #i cylinder is the # 1 cylinder, The fuel injection target cylinder #i (+2) is the # 2 cylinder, and the next fuel injection target cylinder #i (+2) is the # 4 cylinder. Then, ignition is performed in the order of cylinders # 1, # 3, # 2, and # 4, and fuel injection is performed once for each cylinder at 720 ° C. (two engine revolutions).
[0042]
Then, in step S103, for example, the input interval time (cycle) Tθ12 of the BTDC θ1 and θ2 crank pulses output from the crank angle sensor 26 is measured, and in step S104, the engine speed NE is calculated from the input interval time Tθ12. Then, the data is stored as the rotation speed data at a predetermined address in the RAM 40, and the routine exits.
[0043]
(Ignition timing setting procedure)
On the other hand, the ignition timing is set in the interrupt routine of FIGS. 7 and 8 that is executed every predetermined time. In this ignition timing setting routine, first, in steps S201 and S202, whether or not the starter switch 46 is ON, and whether or not the engine speed NE has reached the complete explosion speed NESET (for example, NESET = 400 rpm). Is determined.
[0044]
When the starter switch 46 is ON when the engine is started, or when NE ≦ NESET, the flow branches from step S201 or step S202 to step S216 to start the engine and determine whether the engine is running at an extremely low speed. The rotation flag FLAGST is set (FLAGST ← 1), and the routine exits.
[0045]
On the other hand, after cranking the engine by turning on the starter switch 46, when the starter switch 46 is turned off and NE> NESET, and the engine completely explodes, the process proceeds from steps S201 and S202 to step S203, and when starting, extremely low The rotation determination flag FLAGST is cleared (FLAGST ← 0), and in step S204, a water temperature correction value ADVTW (angle data) is set based on the cooling water temperature TW.
[0046]
Next, the process proceeds to step S205, and based on the engine speed NE and the basic fuel injection amount TP as the engine load, the partial correction ignition timing ADVPRT is set with reference to the partial correction table TBADVPRT. The partial correction table TBADVPRT stores partial correction ignition timing ADVPRT for performing partial correction for each operation region in the backup RAM 40a. As shown in FIG. 18, the engine speed NE, the basic fuel injection amount The partial correction ignition timing ADVPRT is stored for each area specified using TP as a parameter.
[0047]
The above-described basic fuel injection amount TP is an example of the engine load, and the fuel injection amount or the intake air amount per stroke may be used.
[0048]
In step S206, based on the engine speed NE and the basic fuel injection amount TP, the basic advance value IGREG is set by referring to the basic advance value table with interpolation calculation. The basic advance value table uses the ignition timing at the knock limit capable of suppressing knocking within an allowable range when a low octane number fuel such as regular gasoline is used as the basic advance value, and sets the engine speed NE, The fuel pulse width TP is obtained as a parameter in advance by an experiment or the like and stored in the ROM 39, and is configured as, for example, a three-dimensional table of a 16 × 16 grid.
[0049]
Thereafter, when the process proceeds to step S207, the overall correction coefficient TCMP stored in the backup RAM 40a is read, and in step S208, the high octane fuel advance value table is interpolated based on the engine speed NE and the basic fuel injection amount TP. A high octane fuel advance angle value IGMBT is set with reference to FIG.
[0050]
The advance value table for high octane fuel has the ignition timing at which the maximum allowable torque that can be exhibited when using high octane fuel with high knock resistance, such as premium gasoline, is determined by the engine speed NE, The fuel pulse width TP is obtained as a parameter in advance by an experiment or the like, and is stored in the ROM 39 as a three-dimensional table of, for example, a 16 × 16 grid.
[0051]
Next, proceeding to step S209, the basic advance value IGREG set in step S206 and the value obtained by multiplying the high octane fuel advance value IGMBT set in step S208 by the overall correction coefficient TCMP read in step S207 are used. To calculate the overall corrected ignition timing (angle data in units of ° CA) ADVTOT (ADVTOT ← IGREG + TCMP × IGMBT).
[0052]
Then, the process proceeds to step S210, where the control advance angle ADV is calculated by adding the partial correction ignition timing ADVPRT and the water temperature correction value ADVTW to the overall correction ignition timing ADVTOT calculated in step S209 (ADV ← ADVTOT + ADVPRT + ADVTW), and in step S211. Then, the ignition timing based on the control advance angle ADV based on the θ2 pulse, that is, the ignition timing TADV obtained by converting the angle into time data is set (TADV ← Tθ12 × (θ2−ADV) / θ12). Here, θ12 is an angle difference corresponding to the θ1 crank pulse and the θ2 crank pulse (for example, when θ1 = 97 ° CA and θ2 = 65 ° CA, θ12 = 32 ° CA).
[0053]
Next, in step S212, the basic energizing time DWLB is set by referring to the basic energizing time table with the interpolation calculation based on the battery voltage, and in step S213, the rotation correction table is interpolated based on the engine speed NE. To set the rotation correction KDWLN. The basic energization time DWLB is set shorter as the battery voltage is higher, and the rotation correction KDWLN is set smaller as the engine speed NE is higher.
[0054]
Then, proceeding to step S214, when the energization time DWL is calculated by multiplying the basic energization time DWLB by the rotation correction KDWLN (DWL ← DWLB × KDWLN), in step S215, the energization start time based on the θ2 crank pulse, that is, energization start The timing TDWL is set (TDWL ← TADV-DWL) and the process exits.
[0055]
With respect to the ignition timing set in this ignition timing setting routine, the routine of the energization / ignition control procedure shown in FIGS. 9 and 10 is started by the θ2 and θ3 crank pulse interruption, and the dwell (energization) and Perform dwell cut (ignition).
[0056]
In the interruption by the θ2 crank pulse shown in FIG. 9, in step S301, the value of the start-time / extremely low-speed discrimination flag FLAGST is referred to, and FLAGST = 1, that is, the process branches to step S302 at the time of start-up or at extremely low speed. The dwell of the cylinder #i to be ignited is started to exit the routine, and FLAGST = 0, that is, at normal time, the process proceeds to step S303, and the counting of the dwell set timer TIM1 and the ignition set timer TIM2 is started.
[0057]
Next, when the routine proceeds to step S304, a loop for determining whether or not the count value of the dwell set timer TIM1 has reached the energization start timing TDWL. When the energization start timing TDWL has been reached, the routine proceeds to step S305 and the ignition target cylinder # The dwell of i is started, the dwell set timer TIM1 is cleared in step S306 (TIM1 ← 0), and in step S307, it is determined whether or not the count value of the ignition set timer TIM2 has reached the ignition timing TADV.
[0058]
When the count value of the ignition set timer TIM2 reaches the ignition timing TADV in step S307, the process proceeds to step S308, in which dwell cut, that is, ignition is performed on the cylinder #i to be ignited. In step S309, the ignition set timer TIM2 is reset. Clear (TIM2 ← 0) and exit the routine.
[0059]
Next, when the crank pulse of θ3 is input, the interruption routine of FIG. 10 is started, and in step S401, the value of the start-time / extremely-low-speed discrimination flag FLAGST is referred to, and FLAGST = 0, that is, at the normal time, The process exits the routine as it is, and when FLAGST = 1, that is, at the time of starting or extremely low rotation, in step S402, the cylinder to be ignited #i is cut off, and the routine exits.
[0060]
That is, as shown in FIG. 23, at the time of starting or extremely low rotation, the dwell of the corresponding cylinder #i is started immediately after the θ2 (for example, BTDC 65 °) crank pulse is input, and the θ3 (for example, BTDC 10 °) crank is started. The ignition timing is a fixed ignition timing for igniting with a pulse. On the other hand, in normal times, the dwell is started at the energization start timing TDWL after a lapse of a predetermined time from the reference with reference to the θ2 crank pulse, and the ignition is performed at the ignition timing TADV. .
[0061]
In the normal ignition timing control, the value of the ignition timing required by the current engine is determined by two ignition timing tables: a basic advance value table for low octane fuel and an advanced value table for high octane fuel. An overall correction for determining the position is performed, and a partial correction for correcting the value of the ignition timing based on whether knock has occurred or not for each region using the engine speed and the engine load as parameters. Hereinafter, the procedure will be described.
[0062]
1 to 3 show a procedure for learning the whole correction coefficient and the partly corrected ignition timing. In the four-cylinder engine according to the present embodiment, the procedure is executed for ignition every 1/2 engine revolution (for a 6-cylinder engine, the engine 1 / Every three rotations).
[0063]
First, learning conditions are determined in steps S501, S502, and 503. That is, in a step S501, it is determined whether or not the start-up / extremely low rotation time determination flag FLAGST is “0”. Whether the cooling water temperature TW is equal to or higher than the warm-up completion temperature TWSET is determined in step S503.
[0064]
If there is a condition that is not satisfied in steps S501, S502, and S503, the routine exits from that step. On the other hand, FLAGST = 0 in step S501, which is normal time, and knock sensor 20, ISCV11 in step S502. If the sensors and actuators that affect the ignition timing are normal and the cooling water temperature TW is equal to or higher than the warm-up completion temperature TWSET in step S503, it is determined that the learning condition is satisfied, and the process proceeds to step S504. It is determined whether or not the value of the learning stop ignition number COUNTACC indicating the number of ignitions at which the timing learning is stopped is 0.
[0065]
If COUNTACC ≠ 0 in step S504, the process jumps to step S509, counts down the learning suspension ignition count COUNTACC, and exits the (COUNTACC ← COUNTACC-1) routine. If COUNTACC = 0, in step S505, the acceleration determination level is set. LEVACC (set in an acceleration determination routine to be described later, the smaller the value, the greater the acceleration) is compared with a set value ACCDVG (for example, ACCDVG = 4).
[0066]
As a result, when LEVACC ≦ ACCDVG in the above step S505, the process proceeds to step S506, where it is determined whether or not the vehicle speed VSP is less than a set value VSPACT (for example, VSPACT = 20 to 60 km). In step S507, the set value ACTN (for example, 30) is set in the learning suspension ignition count COUNTACC (COUNTACC ← ACCTN), the countdown is performed in step S509, and the routine is exited. When VSP ≧ VSPACT, learning is performed in step S508. The set value ACCNTV (for example, 150 times) is set in the number of times of suspension ignition COUNTACC (COUNTACC ← ACCNTV), the countdown is performed in step S509, and the routine exits.
[0067]
That is, at the time of acceleration, accurate knock detection is difficult, and accurate ignition timing learning cannot be expected. In addition, since the acceleration state is short, there is no problem even if learning is stopped. When the value is equal to or less than the set value ACCDVG, the acceleration is determined and the learning is stopped during the predetermined number of ignitions.
[0068]
At this time, in a vehicle equipped with an automatic transmission, when the vehicle speed VSP is high (VSP ≧ VSPACT), a kick-down occurs, and it takes time for the engine speed to rapidly change and stabilize. If it is low (VSP <VSPACT), kickdown does not occur and the change in engine speed is relatively small. Therefore, when learning is stopped, if VSP ≧ VSPACT, the number of ignitions at which learning is stopped is made larger than in the case where VSP <VSPACT.
[0069]
On the other hand, if LEVACC> ACCDVG in step S505, the process branches from step S505 to step S510 and thereafter to perform learning. The learning procedure will be described below. In step S510, the value of the overall correction end flag FLAGTCMP is read from a predetermined address in the backup RAM 40a, and it is determined whether or not the overall correction has been completed.
[0070]
When FLAGTCMP = 0, that is, when the overall correction has not been completed, the process proceeds from step S510 to step S511, in which the knock-free duration timer TIM3 that counts the duration of the knock-free state is cleared (TIM3 ← 0). In step S512, the subroutine for learning the overall correction coefficient is called to learn the overall correction coefficient TCMP, and the routine ends.
[0071]
On the other hand, when FLAGTCMP = 1 in step S510, that is, when the overall correction has been completed, the process branches from step S510 to step S513 and thereafter. Then, the limit count value COUNTTCMP for counting the state where the total correction coefficient TCMP has reached the upper and lower limits and the knock value count value COUNTNK for counting the state where no knock has occurred are cleared (COUNTTCMP ← 0, COUNTNK ← 0). ).
[0072]
Thereafter, in step S515, the subroutine for learning the partially corrected ignition timing is called to learn the partially corrected ignition timing ADVPRT. Then, as a result of the partial correction, the entire correction becomes inappropriate, and the whole correction is returned to perform the whole correction again. It is determined in steps S516 to S520 whether or not the condition is satisfied.
[0073]
That is, in step S516, it is determined whether or not the learned partial correction ignition timing ADVPRT in the operation region is a negative value (whether or not retard), and in step S517, the overall correction coefficient TCMP is set to the set value TCLOW (where 1 .0> TCLOW> 0) is determined, and if ADVPRT <0 (retard) and TCMP ≧ TCLOW, the process proceeds to step S518. Otherwise, the routine exits.
[0074]
In step S518, a high octane fuel advance value IGMBT is set from the high octane fuel advance value table based on the engine speed NE and the basic fuel injection amount TP, and the set value for the high octane fuel advance value IGMBT is set. In step S519, the value IGMBT × PCMPL multiplied by PCMPL (for example, PCMPL = 0.1 to 0.4) is compared with the absolute value | ADVPRT | of the partial correction ignition timing ADVPRT in step S519.
[0075]
When | ADVPRT | <IGMBT × PCMPL, the routine exits from step S519, and when | ADVPRT | ≧ IGMBT × PCMPL, the routine proceeds from step S519 to step S520, where the engine speed NE and the basic fuel injection amount TP are set. It is determined whether or not it is within the range (NESETL3 ≦ NE ≦ NESETH3 and TPSETL3 ≦ TP ≦ TPSETH3). If it is not within the set range, the routine exits. If it is within the set range, the overall correction end flag is set at step S521. FLAGTCMP is cleared (FLAGTCMP ← 0), and the routine exits.
[0076]
The acceleration determination level LEVACC in the above-described step S505 is set in an acceleration determination routine (FIGS. 4 and 5) executed every predetermined time. In this acceleration determination routine, first, in step S601, the throttle opening θ from the throttle opening sensor 9a is read, and in step S602, the throttle opening θ MEMO during the previous execution of the routine is read from the RAM 40.
[0077]
Next, the routine proceeds to step S603, where the throttle opening change d (θ−θ MEMO) / dt is calculated from the current throttle opening θ and the previous throttle opening θ MEMO, and the throttle opening change d (θ−θ) after step S604. The acceleration determination level LEVACC is determined based on a magnitude comparison result of the set values SET0, SET1, SET2, SET3, SET4, SET5, and SET6 of (θMEMO) / dt (SET0> SET1> SET2> SET3> SET4> SET5> SET6).
[0078]
That is, when d (θ−θMEMO) / dt> SET0 in step S604, the process proceeds to step S605, in which the acceleration determination level LEVACC is set to 0 (LEVACC ← 0) and stored in the RAM 40, and d (θ−θMEMO) / dt If .ltoreq.SET0, the flow branches to step S606 to compare the throttle opening change d (.theta .-. Theta.MEMO) / dt with the set value SET1.
[0079]
If d (θ−θMEMO) / dt> SET1 as a result of the comparison in step S606, in step S607, the acceleration determination level LEVACC is set to 1 (LEVACC ← 1) and stored in the RAM 40, and d (θ−θMEMO) / dt If ≤ SET1, the flow branches to step S608 and subsequent steps.
[0080]
Then, similarly, the throttle opening change d (θ-θMEMO) / dt and the set values SET2, SET3, SET4, SET5, SET6 are sequentially compared in the same manner, and the throttle opening change d (θ-θMEMO) / dt. Is larger than the set value, in one of the steps S609, S611, S613, S615, and S617, the acceleration determination level LEVACC is set to 2, 3, 4, 5, or 6, (LEVACC ← 2, LEVACC ← 3, LEVACC). ← 4, LEVACC ← 5, or LEVAC ← 6) Store in the RAM 40, and finally, in step S616, when d (θ−θMEMO) / dt ≦ SET6, proceed to step S618 to set the acceleration determination level LEVACC. 7 is stored in the RAM 40 (LEVACC ← 7).
[0081]
Thereafter, when the acceleration determination level LEVACC is determined, the process proceeds to step S619, where the throttle opening θ read this time is stored as a throttle opening θ MEMO at a predetermined address of the RAM 40, and the routine exits.
[0082]
The subroutines for learning the whole correction coefficient and the partial correction ignition timing in steps S512 and S515 of the above-described whole correction coefficient and partial correction ignition timing learning routine are shown in FIGS. 11 to 13 and FIGS. 14 to 17, respectively. Is shown.
[0083]
In the subroutine for learning the entire correction coefficient shown in FIGS. 11 to 13, whether the engine speed NE and the basic fuel injection amount TP are within the learning range (NESETL1 ≦ NE ≦ NESETH1 and TPSETL1 ≦ TP ≦ TPSETH1) in step S701. If it is not in the learning region, the process exits the routine. If it is in the learning region, it is determined in step S702 whether or not knocking has occurred. If knocking has occurred, the process proceeds to step S703 and subsequent steps. If no occurrence has occurred, the flow branches to step S713 and subsequent steps.
[0084]
First, the case where knock has occurred will be described. In step S703, the value of the overall correction knock presence / absence change determination flag FLAGNK1 for determining the change of presence / absence of knock is referred to, and when FLAGNK1 = 1, that is, If the knocking state is present and the knocking presence state has not changed, the process jumps to step S705. If FLAGNK1 = 0, that is, if there was no knocking last time and this time knocking occurred, the process proceeds to step S705. In step S704, the variation ΔTCMP for updating the overall correction coefficient TCMP is updated to の of the previous value (ΔTCMP ← ΔTCMP / 2), and the process proceeds to step S705.
[0085]
In step S705, the total correction coefficient TCMP up to the previous time is updated by subtracting the variation ΔTCMP (TCMP ← TCMP−ΔTCMP), and in step S706, the partial correction table TBADVPRT is initialized. That is, when knocking has occurred, the overall correction coefficient TCMP is updated to the retard side every 1/2 engine revolution, and the table values of the partial correction table TBADVPRT are all set to "0" with the update of the overall correction coefficient TCMP. It is cleared and initialized.
[0086]
When the backup power is turned off and the data in the backup RAM 40a is destroyed, the partial correction table TBADVPRT is cleared and initialized when the power is turned on again.
[0087]
Thereafter, when the flow proceeds to step S707, it is determined whether or not the overall correction coefficient TCMP has been updated to the retard side and has become a negative value. When TCMP ≦ 0, the overall correction coefficient TCMP is set to “0” in step S708. (TCMP ← 0) and the retarding is limited, the limit count value COUNTTCMP for counting the state where the total correction coefficient TCMP has reached the upper and lower limits is counted up in step S709 (COUNTTCMP ← COUNTTCMP + 1), and step S711 is performed. Proceed to.
[0088]
If TCMP> 0 in the above step S707, the limit count value COUNTTCMP is cleared in step S709 (COUNTTCMP ← 0). In step S711, the overall correction knock presence / absence change determination flag FLAGNK1 is set (FLAGNK1 ← 1). In step S712, the knock occurrence non-occurrence count value COUNTNK for counting the state where no knock occurs is cleared (COUNTNK ← 0), and the flow proceeds to step S725.
[0089]
On the other hand, if no knock has occurred in step S702, the value of the overall correction knock presence / absence change determination flag FLAGNK1 is referred to in step S713, and when FLAGNK1 = 1, that is, from the previous knock occurrence state, the knock has occurred. When the state has changed to the absence state, the process proceeds to step S714, in which the change amount ΔTCMP is updated to 1 / of the previous value (ΔTCMP ← ΔTCMP / 2), and in step S724, the overall correction knock presence / absence change determination flag FLAGNK1 is cleared. (FLAGNK1 ← 0) and the process proceeds to step S725.
[0090]
If FLAGNK1 = 0 in step S713 and the knock-free state continues from the previous time, the process proceeds from step S713 to step S715 to count up the knock-free count value COUNTNK (COUNTNK). ← COUNTNK + 1), and in a step S716, it is determined whether or not the knock occurrence non-occurrence count value COUNTNK is equal to or larger than the set value CTOTJD.
[0091]
If COUNTNK <CTOTJD in step S716, the process branches to step S724, and if COUNTNK ≧ CTOTJD, that is, if knock has not occurred by the set number of ignitions, the process proceeds to step S717 and continues until the previous time. The amount of change ΔTCMP is added to the total correction coefficient TCMP of (1) to update the value on the advance side (TCMP ← TCMP + ΔTCMP), and in step S718, the partial correction table TBADVPRT is initialized.
[0092]
Next, the process proceeds to step S719, where it is determined whether or not the total correction coefficient TCMP has become 1.0 or more by updating to the advance side. When TCMP ≧ 1.0, in step S720, the total correction coefficient TCMP is set to 1 .0 (TCMP ← 1.0) and the advance limit is performed, the limit count value COUNTTCMP is counted up in step S721 (COUNTTCMP ← COUNTTCMP + 1). If TCMP <1.0, the limit count value is counted in step S722. Clear the value COUNTTCMP (COUNTTCMP ← 0).
[0093]
Next, when the process proceeds from step S721 or step S722 to step S723, the knock occurrence-free count value COUNTNK is cleared (COUNTNK ← 0), and in step S724, the overall correction knock presence / absence change determination flag FLAGNK1 is cleared (FLAGNK1 ← 0). Then, in step S725, the variation ΔTCMP is compared with the set value DTCMP2 (for example, 1/16), and in step S726, the limit count value COUNTTCMP is compared with the set value NTCMP.
[0094]
If the conditions of ΔTCMP ≦ DTCMP2 or COUNTTCMP ≧ NTCMP are not satisfied in steps S725 and S726, in step S727, the overall correction end flag FLAGTCMP is cleared and the routine exits (FLAGTCMP ← 0), and the condition becomes 1 If at least one is satisfied, that is, if the change amount ΔTCMP is equal to or less than the set value DTCMP2, or if the state in which the total correction coefficient TCMP is at the upper and lower limits has continued for a set number of times, the overall correction end flag FLAGTCMP is set in step S728. Then, the (FLAGTCMP ← 1) routine is exited, and when the routine of the learning procedure of the overall correction coefficient and the partial correction ignition timing described above is started next time, the entire correction is terminated and the process is shifted to the partial correction.
[0095]
The overall correction coefficient TCMP, the change amount ΔTCMP, and the overall correction end flag FLAGTCMP are stored in the backup RAM 40a, and when the backup power is turned off by removing the battery 35 or the like, the data in the backup RAM 40a is destroyed. Are initially set to initial values when the power is turned on again (TCMP ← TCMPINI (for example,)), ΔTCMP ← ΔTCMPINI (for example, 4), FLAGTCMP ← 0).
In the subroutine for learning the partial correction ignition timing shown in FIGS. 14 to 17, in step S801, the engine speed NE and the basic fuel injection amount TP are set within the range of the partial correction table TBADVPRT (NE0 ≦ NE ≦ NEN and TP0). ≤TP≤TPN), the routine exits if it is not in the area, and if it is in the area, it is determined in step S802 whether knock has occurred.
[0096]
If knock has occurred, the process proceeds from step S802 to step S803, in which a knock-free duration timer TIM3 for counting the duration of the absence of knock is cleared (TIM3 ← 0), and in step S804, the engine is stopped. Based on the rotational speed NE and the basic fuel injection amount TP, the partial correction ignition timing ADVPRT is set with reference to the partial correction table TBADVPRT.
[0097]
Next, the process proceeds to step S805, in which the partial correction ignition timing ADVPRT set in step S804 is set to the old table value (ADVPRT) OLD ((ADVPRT) OLD ← ADVPRT), and in step S806, the set value is calculated from the old table value (ADVPRT) OLD. By subtracting DRETP to obtain a new table value (ADVPRT) NEW ((ADVPRT) NEW ← (ADVPRT) OLD-DRETP), the retard is set by the set value DRETP each time knock occurs once, and the process proceeds to step S807. .
[0098]
In step S807, the new table value (ADVPRT) NEW is compared with the retard limit value LWLMTP. When (ADVPRT) NEW> LWLMTP, the process jumps to step S809. On the other hand, when (ADVPRT) NEW ≦ LWLMTP, the process proceeds to step S808. The new table value (ADVPRT) NEW is fixed to the retardation limit value LWLMTP ((ADVPRT) NEW ← LWLMTP), and the process proceeds to step S809 to prevent the retardation beyond the limit value.
[0099]
In step S809, the partial correction ignition timing ADVPRT in the corresponding area ADDRESS of the partial correction table TBADVPRT is updated with the new table value (ADVPRT) NEW (ADVPRT ← (ADVPRT) NEW), and in step S810, it is determined whether or not knocking has occurred. The flag FLAGNK2 for setting the partial correction knock presence / absence change is set for this purpose (FLAGNK2 ← 1), and the routine exits.
[0100]
On the other hand, if no knock has occurred in step S802, the process branches from step S802 to step S811 to refer to the value of the partial correction knock presence / absence change determination flag FLAGNK2, and when FLAGNK2 = 1, that is, When the state has changed from the occurrence state to the no knock state, the process jumps to step S832 to start the no-knock duration timer TIM3. In step S833, the partial correction knock presence / absence change determination flag FLAGNK2 is cleared (FLAGNK2 ← 0) Exit the routine.
[0101]
When the partial correction knock presence / absence change determination flag FLAGNK2 is FLAGNK2 = 0, that is, when no knock occurs during the previous execution of the routine, the process proceeds from step S811 to step S812, where the engine speed NE and the basic fuel injection amount TP are set. The area ADDRESS in the partial correction table TBADVPRT is specified based on the above, and in step S813, the area ADDRESS is set as a new area (ADDRESS) NEW ((ADDRESS) NEW ← ADDRESS).
[0102]
Then, it is determined in step S814 whether or not the new area (ADDRESS) NEW at the time of execution of the current routine is the same as the previous area (ADDRESS) OLD, and the new area (ADDRESS) NEW is set to the old area at the time of execution of the previous routine. If it is different from (ADDRESS) OLD, the process branches from step S814 to step S830 to clear the knock-free duration timer TIM3 (TIM3 ← 0), and in step S831, the new area (ADDRESS) NEW is replaced with the old area (ADDRESS). As OLD ((ADDRESS) OLD ← (ADDRESS) NEW), the routine exits through the above-described steps S832 and S833.
[0103]
On the other hand, if the new area (ADDRESS) NEW at the time of executing the current routine is the same as the old area (ADDRESS) OLD at the time of executing the previous routine, the process proceeds from step S814 to step S815, where the new area (ADDRESS) NEW is set. The old area (ADDRESS) OLD is set ((ADDRESS) OLD ← (ADDRESS) NEW), and in step S816, it is determined whether or not the time measured by the knock-free duration timer TIM3 has exceeded a set time TIMPRT.
[0104]
In step S816, when the timer of the knock-free duration timer TIM3 does not exceed the set time TIMPRT, the process exits the routine through the above-described step S833, and when the timer of the knock-free duration timer TIM3 exceeds the set time TIMPRT. In step S817, the knock-free duration timer TIM3 is cleared (TIM3 ← 0), and the flow advances to step S818 to read the partial correction ignition timing ADVPRT from the corresponding area ADDRESS of the partial correction table TBADVPRT.
[0105]
Thereafter, the process proceeds to step S819, where the read partial correction ignition timing ADVPRT is set to the old table value (ADVPRT) OLD ((ADVPRT) OLD ← ADVPRT), and in step S820, the set value DADVP is added to the old table value (ADVPRT) OLD. By setting the new table value (ADVPRT) NEW ((ADVPRT) NEW ← (ADVPRT) OLD + DADVP), if no knock occurs in the same operation region, the set value DADVP is advanced by the set value DIMPVP for each set time TIMPRT. Proceed to step S821.
[0106]
In step S821, based on the engine speed NE and the basic fuel injection amount TP, the high octane fuel advance value IGMBT is set with reference to the high octane fuel advance value table. In step S822, the overall correction coefficient TCMP is set. Read from backup RAM 40a.
[0107]
Next, in step S823, the value obtained by multiplying the high octane fuel advance value IGMBT by the difference (1-TCMP) from the upper limit of the overall correction coefficient TCMP is set as the partial correction ignition timing limit value ADVPRTLIM (ADVPRTLIM ← IGMBT × ( 1-TCMP)), and the advance of the new table value (ADVPRT) NEW is limited to a smaller value of the set value UPLMTP and the partial correction ignition timing limit value ADVPRTLIM in step S824 and thereafter.
[0108]
That is, in step S824, the partial correction ignition timing limit value ADVPRTLIM is compared with the set value UPLMTP. When UPLMTP ≦ ADVPRTLIM, the process proceeds from step S824 to step S825, and the new table value (ADVPRT) NEW set in step S820 is set. And the set value UPLMTP.
[0109]
As a result of the comparison, when (ADVPRT) NEW <UPLMTP, the process jumps from step S825 to step S829, and when (ADVPRT) NEW ≧ UPLMTP, in step S826, the set value UPLMTP is set as a new table value (ADVPRT) NEW ((( ADVPRT) NEW ← UPLMTP), and the process proceeds to step S829.
[0110]
On the other hand, if UPLMTP> ADVPRTLIM as a result of the comparison in step S824, the process branches from step S824 to step S827 to compare the new table value (ADVPRT) NEW with the partially corrected ignition timing limit value ADVPRTLIM, and (ADVPRT) NEW. If <ADVPRTLIM, the process jumps to step S829; if (ADVPRT) NEW ≧ ADVPRTLIM, in step S828, the partial correction ignition timing limit value ADVPRTLIM is set to a new table value (ADVPRT) NEW (((ADVPRT) NEW ← ADVPRTLIM), step S829). Proceed to.
[0111]
When the process proceeds to step S829 through a series of advance angle limiting steps, the partial correction ignition timing ADVPRT of the corresponding area ADDRESS of the partial correction table TBADVPRT is updated with the new table value (ADVPRT) NEW (ADVPRT ← (ADVPRT)). NEW), in step S833, the partial correction knock presence / absence change determination flag FLAGNK2 is cleared (FLAGNK2 ← 0), and the routine exits.
[0112]
As a result, the added value of the overall corrected ignition timing ADVTOT (= IGREG + TCMP × IGMBT) and the partially corrected ignition timing ADVPRT is limited to IGREG + IGMBT or less, and an over-advance angle is prevented.
[0113]
【The invention's effect】
According to the present invention as described above,In the ignition timing learning control of an engine of a vehicle equipped with an automatic transmission, an acceleration determination level indicating an acceleration level is set by a change in a throttle opening when learning of an ignition timing correction amount is prohibited for a predetermined number of ignitions during acceleration. . When it is determined that the acceleration is large by comparing the acceleration determination level with the set value, learning of the ignition timing correction amount is prohibited, and the number of ignitions that defines the learning prohibition period at this time is set to a value equal to or greater than the vehicle speed set value. When the vehicle speed is high, the speed is set to be higher than when the vehicle speed is lower than the set value. That is, in a vehicle equipped with an automatic transmission, a shift pattern is defined by the throttle opening and the vehicle speed. During acceleration when the throttle opening changes, if the vehicle speed is high, a kick-down occurs and the engine speed rapidly changes, It takes time for the engine state to stabilize, and when the vehicle speed is low, kickdown does not occur, the change in engine speed is relatively small, and the time until the engine stabilizes is short. Here, using the same parameters that determine the shift pattern affecting kickdown, that is, the throttle opening and the vehicle speed, an acceleration determination level that indicates the degree of acceleration by changing the throttle opening is set, and the acceleration determination level is set. When it is judged that the acceleration is large by comparing with the value, the number of ignitions that determines the learning inhibition period is set larger when the vehicle speed is higher than the set value and higher than when the vehicle speed is lower than the set value. Since the learning inhibition period during acceleration is determined by the number of ignitions, the effect of kickdown during acceleration and the learning inhibition period can be accurately matched.
Therefore, when the vehicle equipped with an automatic transmission is accelerating, the learning suspension period can be appropriately determined in accordance with the period until the engine state is stabilized due to the change in the engine speed due to the kickdown, thereby deteriorating the controllability. Thus, stable ignition timing control can be reliably realized, and the ignition timing controllability can be significantly improved.
[Brief description of the drawings]
FIG. 1 is a flowchart (part 1) of a procedure for learning a whole correction coefficient and a partial correction ignition timing.
FIG. 2 is a flowchart (part 2) of a procedure for learning a whole correction coefficient and a partly corrected ignition timing.
FIG. 3 is a flowchart (part 3) of a procedure for learning a whole correction coefficient and a partial correction ignition timing;
FIG. 4 is a flowchart of an acceleration determination procedure (part 1).
FIG. 5 is a flowchart of an acceleration determination procedure (part 2).
FIG. 6 is a flowchart of a cylinder discrimination / engine speed calculation procedure;
FIG. 7 is a flowchart of an ignition timing setting procedure (part 1).
FIG. 8 is a flowchart of an ignition timing setting procedure (part 2).
FIG. 9 is a flowchart of a θ2 interrupt in the energization / ignition control procedure.
FIG. 10 is a flowchart of a θ3 interrupt in the energization / ignition control procedure.
FIG. 11 is a flowchart showing a subroutine for learning the entire correction coefficient (part 1).
FIG. 12 is a flowchart showing a subroutine for learning the entire correction coefficient (part 2);
FIG. 13 is a flowchart showing a subroutine for learning the entire correction coefficient (part 3).
FIG. 14 is a flowchart showing a subroutine for learning a partially corrected ignition timing (part 1);
FIG. 15 is a flowchart showing a subroutine for learning a partially corrected ignition timing (part 2);
FIG. 16 is a flowchart showing a subroutine for learning a partially corrected ignition timing (part 3);
FIG. 17 is a flowchart illustrating a subroutine for learning a partially corrected ignition timing (part 4);
FIG. 18 is a conceptual diagram of a partial correction table.
FIG. 19 is a schematic diagram of an engine control system.
FIG. 20 is a front view of a crank rotor and a crank angle sensor.
FIG. 21 is a front view of a cam rotor and a cam angle sensor.
FIG. 22 is a circuit configuration diagram of a control device.
FIG. 23 is a time chart showing ignition timing.
[Explanation of symbols]
LEVACC acceleration judgment level
ACCDVG setting value
VSP vehicle speed
COUNTACC Learning stop ignition count

Claims (1)

ノックの有無に応じた点火時期補正量を学習し、この学習した点火時期補正量に基づいて点火時期を制御すると共に、加速を判断し、加速時は所定の点火回数の間、上記点火時期補正量の学習を禁止するエンジンの点火時期学習制御方法において、
自動変速機搭載車のエンジンの点火時期学習制御であって、スロットル開度の変化により加速度合いを示す加速判定レベルを設定し、
加速判定レベルと設定値との比較により加速が大きいと判断されるとき、点火時期補正量の学習を禁止し、
且つ、このときの学習禁止期間を定める点火回数を、車速が設定値以上の高車速の場合は、車速が設定値未満の低車速の場合に比べ、大きく設定することを特徴とするエンジンの点火時期学習制御方法。
The ignition timing correction amount according to the presence or absence of knock is learned, the ignition timing is controlled based on the learned ignition timing correction amount , the acceleration is determined, and the acceleration timing correction is performed for a predetermined number of ignitions during acceleration. In the engine ignition timing learning control method for prohibiting the learning of the amount ,
An ignition timing learning control of an engine of a vehicle equipped with an automatic transmission, wherein an acceleration determination level indicating an acceleration level is set by a change in a throttle opening,
When it is determined that the acceleration is large by comparing the acceleration determination level with the set value, learning of the ignition timing correction amount is prohibited,
In addition, the ignition count for setting the learning inhibition period at this time is set larger when the vehicle speed is higher than the set value, when the vehicle speed is higher than the set value, compared to when the vehicle speed is lower than the set value. Timing learning control method.
JP19554391A 1991-08-05 1991-08-05 Engine ignition timing learning control method Expired - Fee Related JP3564146B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19554391A JP3564146B2 (en) 1991-08-05 1991-08-05 Engine ignition timing learning control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19554391A JP3564146B2 (en) 1991-08-05 1991-08-05 Engine ignition timing learning control method

Publications (2)

Publication Number Publication Date
JPH0539770A JPH0539770A (en) 1993-02-19
JP3564146B2 true JP3564146B2 (en) 2004-09-08

Family

ID=16342849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19554391A Expired - Fee Related JP3564146B2 (en) 1991-08-05 1991-08-05 Engine ignition timing learning control method

Country Status (1)

Country Link
JP (1) JP3564146B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4207729B2 (en) 2003-09-16 2009-01-14 日産自動車株式会社 Control device for internal combustion engine with variable compression ratio mechanism
JP7059855B2 (en) * 2018-07-30 2022-04-26 トヨタ自動車株式会社 Ignition timing control device for internal combustion engine

Also Published As

Publication number Publication date
JPH0539770A (en) 1993-02-19

Similar Documents

Publication Publication Date Title
JPS58217775A (en) Ignition timing controlling method of internal-combustion engine
US7753028B2 (en) Control apparatus and method for internal combustion engine
JPH04353233A (en) Programmed fuel injection device for internal combustion engine
JPH0814271B2 (en) Ignition timing control device for internal combustion engine
JP3564146B2 (en) Engine ignition timing learning control method
JP2000205025A (en) Engine control device
JP2002195141A (en) Ignition timing control device for internal combustion engine
JPH1150900A (en) Control device for spark ignition engine
JP2929619B2 (en) Ignition timing control device for internal combustion engine
US8490599B2 (en) Abnormality determination apparatus and abnormality determination method for internal combustion engine
JPH05157033A (en) Ignition timing control device for internal combustion engine
JPH09112395A (en) Ignition control device for engine
JP4501760B2 (en) Ignition control device for internal combustion engine
JP2682651B2 (en) Engine ignition timing control device
JP6454539B2 (en) Internal combustion engine control device
JPH10103206A (en) Ignition timing control device for lean-burn engine
JPS63106365A (en) Method of controlling ignition timing of internal combustion engine
JP3324767B2 (en) Engine ignition timing control method
JP5086922B2 (en) Ignition timing control device for internal combustion engine
JP2005307844A (en) Ignition control method and ignition control device for two-cycle internal combustion engine
JP2967588B2 (en) Engine ignition timing control device
JP2023169652A (en) Internal combustion engine control device
JP2002349408A (en) Ignition timing control device for internal combustion engine
JPS6375355A (en) Knocking control device for internal combustion engine
US20070282517A1 (en) Ignition timing control apparatus for internal combustion engine

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040607

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080611

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090611

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090611

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100611

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees