JPS6212385B2 - - Google Patents

Info

Publication number
JPS6212385B2
JPS6212385B2 JP957380A JP957380A JPS6212385B2 JP S6212385 B2 JPS6212385 B2 JP S6212385B2 JP 957380 A JP957380 A JP 957380A JP 957380 A JP957380 A JP 957380A JP S6212385 B2 JPS6212385 B2 JP S6212385B2
Authority
JP
Japan
Prior art keywords
feedback
map
value
engine
control
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
Application number
JP957380A
Other languages
Japanese (ja)
Other versions
JPS56106040A (en
Inventor
Hiroyasu Fukaya
Haruhiko Ogiso
Kenzo Ito
Daisaku Sawada
Takashi Shigematsu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
NipponDenso Co Ltd
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 Toyota Motor Corp, NipponDenso Co Ltd filed Critical Toyota Motor Corp
Priority to JP957380A priority Critical patent/JPS56106040A/en
Publication of JPS56106040A publication Critical patent/JPS56106040A/en
Publication of JPS6212385B2 publication Critical patent/JPS6212385B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Electrical Control Of Ignition Timing (AREA)
  • Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

本発明は内燃エンジンの燃焼状態を決定する要
素となる点火時期、空燃比等のエンジンの制御要
素を最適とすべくフイードバツク制御するエンジ
ン制御方法に関する。 エンジンのこの種のフイードバツク制御におい
て、点火時期等制御要素のフイードバツク制御量
に応じた値をフイードバツクマツプ値としてエン
ジン運転状態区分毎に記憶装置に書換え記憶し、
この記憶したマツプ値のうちそのときのエンジン
運転状態に対応したマツプ値を用いて制御要素の
フイードバツク要因を評価しつつフイードバツク
制御量として計算し制御要素を制御する方法が、
エンジン過渡時における制御応答性を向上させる
理由で提案され始めている。 ところで上記の制御方法においては記憶したフ
イードバツクマツプ値は新たに制御要素のフイー
ドバツク要因の評価処理により修正、書換えられ
なければ、値は変わらない。従つて長時間運転さ
れない運転状態区分のマツプ値は、古い過去の値
が残ることになる。 しかし、制御要素としての点火時期や供給燃料
量を含む空燃比の最適値は冷却水温等のエンジン
状態及び大気条件等の環境条件で変化していく。 従つて修正変更されないままの過去のマツプ値
は現在のエンジン状態や環境条件に適合しない可
能性がある。 このため本発明では、記憶したフイードバツク
マツプ値を、フイードバツク要因に関係なく、時
間又はエンジンの回転の経過に伴なつて目標値に
収束するよう書換え処理することを特徴としてい
る。 目標値は、時間又はエンジン回転の経過ととも
に諸要因のため変化するエンジンの点火時期等の
制御要素の最適値に一番早くフイードバツク制御
できる値が望ましい。例えば記憶したフイードバ
ツクマツプ値が正負の値を持つ場合で、時間の経
過とともに制御要素(フイードバツク制御量)の
最適値が正負の値を全く無秩序にとるときは、マ
ツプ値が長時間フイードバツクにより変更されな
い場合、このマツプ値を0にしておくことが、制
御要素の最適値にフイードバツク制御量を近づけ
るための時間の平均を最小にできるので目標値は
0にするのが良い。 以下本発明を燃焼状態を決定する制御要素とし
ての点火時期を、フイードバツク要因としてのエ
ンジンノツキング信号によりフイードバツク制御
する装置に適用した一実施例につき説明する。第
1図において、1は4気筒4サイクルエンジン、
2はエンジン1に固着され、ノツキング発生時の
特有のエンジン振動を検出するノツク検出器、3
はスタータであり、31はスタータスイツチであ
る。4はエンジン1の回転角度位置を測定する回
転センサであり、エンジン1が回転して上死点位
置になつた時に上死点信号を発生し、また上死点
位置からエンジン1回転を等分した一定クランク
角度(例えば本実施例においては7.5度)回転す
る毎に回転角度信号を発生する。21は制御コン
ピユータ6に内蔵された圧力センサであり、エン
ジン1の吸気マニホールド12から配管13によ
り圧力が圧力入力口に伝達され、吸気マニホール
ド圧力Pmを測定する。5は公知の燃料供給装置
である。7,8はコイルを2個使用し、デイスト
リビユータを廃止した点火アクチユエータとして
のそれぞれ点火コイル、イグナイタである。制御
コンピユータ6は、回転センサ4で発生される回
転角度パルスの発生する時間間隔からエンジン回
転数Nを求め、また、圧力センサ21の出力電圧
から吸気マニホールド圧力を計算して、エンジン
の運転状態を測定するとともに、ノツクセンサ
(ノツク検出器)2の出力信号からノツキング発
生状態を検知して、点火時期を制御する。また、
エンジン始動時は特定の点火時期に制御するた
め、スタータスイツチ31からスタータ3へ供給
される電圧がスタータ信号として制御コンピユー
タ6に入力される。また、点火コイルの通電時間
をバツテリ電圧に応じて変えるため、バツテリ電
圧がバツテリ電圧信号として制御コンピユータ6
に取込まれる。15は、制御コンピユータ6の必
要とする電圧の電力を、車輛が塔載するバツテリ
19の電圧から生成する電源である。 次に第2図により、上記の制御コンピユータ6
を詳細に説明する。60は点火時期を算出する中
央処理ユニツト(CPU)で16ビツド構成のTI
製TMS9900を用いている。70は制御プログラ
ム、制御定数を記憶している読出し専用記憶ユニ
ツト(ROM)、69はCPU60が制御プログラム
に従つて動作中、制御データの記憶に使用される
一時記憶ユニツト(RAM)を示す。 61は割込み制御部であり、3レベルの優先順
位をつけてCPUに割込みの発生を知らせる。本
実施例の割込み要因としては、エンジンの回転セ
ンサ4の回転角度信号パルス発生による割込み、
CPU60自身がデイジタル入出力ポート64の
プログラム割込み出力ポートのレベルを“0”レ
ベルにして起すプログラム割込み、及びタイマー
が8ミリ秒(ms)経過する毎に起すタイマー割
込みの3種類がある。 タイマー部62は8μsのクロツク信号をカウ
ントする16ビツトのカウンタと回転センサ4の回
転角度信号パルスが発生する毎にカウンタの値を
格納保持するラツチから構成される。従つて、回
転角度パルス発生の割込み処理にてCPU60が
クランク角カウンタ部63の値を読出して、エン
ジンの回転角度位置を知るとともに、タイマー部
62のラツチの値を読出し、この操作を2つの回
転角度位置にて行ないラツチの値の差を求めるこ
とにより、2つの回転角度位置の間をエンジンが
回転する時間が、測定でき、また、エンジン回転
数を計測できる。 クランク角カウンタ部63は、下位桁12進、上
位桁4進のカウンタであり、回転センサ4の回転
角度信号でカウントアツプし上死点信号の発生の
次の回転角度信号が発生した時、このカウンタは
値“0”にリセツトされエンジン回転と同期がと
られる。従つて、クランク角カウンタの値を
CPUが読出すことによりエンジン回転角度位置
を7.5度クランク角度単位で知ることができる。 デイジタル入出力ポート64は、論理信号の入
出力に使用されるポートであり、エンジン始動時
のスタータスイツチ31がONされていることを
認識するために、スタータスイツチ31からスタ
ータ3へ供給される電圧レベルを入力する。また
割込み制御部61へ供給するプログラム割込信号
を発生するのに使用される。 ノツク検出回路65は公知の如くノツク信号の
瞬時値が平均レベルより大きく越した場合、内部
でノツク検出パルス信号を発生するもので、この
パルス数をCPU60が指定する期間だけ計数す
る。 アナログ入力ポート67はアナログ信号の電圧
値を計測するものであり、エンジン1の吸気マニ
ホールド圧力を測定する圧力センサー21の出力
電圧信号と、点火コイル7の通電時間のバツテリ
ー電圧補正を行なうため、バツテリー電圧をアナ
ログ−デイジタル(A/D)変換する。 通電点火制御部68は、イグナイタ8の2つの
コイル電流アクチユエータ回路に通電、点火信号
を生成するものである。この通電点火制御部68
は、ダウンカウンタをいくつか持つており、通
電、点火制御を行なうべき点火コイル7の判別と
ダウンカウンタのカウント開始すべきクランク角
カウンタの値及びダウンカウント値とをCPUか
ら指示され、ダウンカウンタの値が“0”になつ
た時に#1コイル通電信号、#2コイル通電信号
を、通電の場合はレベル“0”に、点火の場合は
レベル“1”にする。71はコモンバスであり、
CPUはこのバス信号線に制御及データ信号を乗
せ、周辺回路の制御及びデータの送受を行なう。 以下に本実施例の制御プログラムの構成、動作
及び制御の方法を説明する。
The present invention relates to an engine control method that performs feedback control to optimize engine control elements such as ignition timing and air-fuel ratio, which are elements that determine the combustion state of an internal combustion engine. In this type of feedback control of an engine, a value corresponding to the feedback control amount of a control element such as ignition timing is rewritten and stored in a storage device as a feedback map value for each engine operating state classification,
Among the stored map values, the map value corresponding to the engine operating state at that time is used to evaluate the feedback factor of the control element and calculate the feedback control amount to control the control element.
It has begun to be proposed for the reason of improving control responsiveness during engine transients. However, in the above control method, the stored feedback map value does not change unless it is newly modified or rewritten by the feedback factor evaluation process of the control element. Therefore, old past values remain as map values for operating state categories that are not operated for a long time. However, the optimum value of the air-fuel ratio including the ignition timing and the amount of fuel supplied as control elements changes depending on engine conditions such as cooling water temperature and environmental conditions such as atmospheric conditions. Therefore, past map values that remain unmodified may not be compatible with current engine and environmental conditions. Therefore, the present invention is characterized in that the stored feedback map value is rewritten so that it converges to the target value as time or engine rotation progresses, regardless of the feedback factor. It is desirable that the target value be a value that can provide the quickest feedback control to the optimum value of a control element such as engine ignition timing, which changes due to various factors with the passage of time or engine rotation. For example, if the memorized feedback map value has positive and negative values, and the optimal value of the control element (feedback control amount) takes positive and negative values in a completely chaotic manner as time passes, the map value may change due to long-term feedback. If it is not changed, it is preferable to set the target value to 0 because by setting this map value to 0, the average time required to bring the feedback control amount close to the optimum value of the control element can be minimized. Hereinafter, an embodiment will be described in which the present invention is applied to a device that performs feedback control of ignition timing as a control element that determines the combustion state using an engine knocking signal as a feedback factor. In Fig. 1, 1 is a 4-cylinder 4-stroke engine;
2 is a knock detector fixed to the engine 1 and detects the characteristic engine vibration when knocking occurs; 3;
is a starter, and 31 is a starter switch. 4 is a rotation sensor that measures the rotation angle position of the engine 1, which generates a top dead center signal when the engine 1 rotates and reaches the top dead center position, and also divides one engine rotation equally from the top dead center position. A rotation angle signal is generated each time the crank angle is rotated by a certain crank angle (for example, 7.5 degrees in this embodiment). A pressure sensor 21 is built into the control computer 6, and pressure is transmitted from the intake manifold 12 of the engine 1 to a pressure input port through a pipe 13 to measure the intake manifold pressure Pm. 5 is a known fuel supply device. Reference numerals 7 and 8 designate an ignition coil and an igniter, respectively, as ignition actuators that use two coils and eliminate a distributor. The control computer 6 determines the engine rotation speed N from the time interval at which the rotation angle pulses generated by the rotation sensor 4 occur, and also calculates the intake manifold pressure from the output voltage of the pressure sensor 21 to determine the operating state of the engine. At the same time, the knocking occurrence state is detected from the output signal of the knock sensor (knock detector) 2, and the ignition timing is controlled. Also,
In order to control the ignition timing to a specific value when starting the engine, the voltage supplied from the starter switch 31 to the starter 3 is input to the control computer 6 as a starter signal. In addition, since the energization time of the ignition coil is changed according to the battery voltage, the battery voltage is sent to the control computer 6 as a battery voltage signal.
be taken into account. Reference numeral 15 denotes a power source that generates power at a voltage required by the control computer 6 from the voltage of a battery 19 mounted on the vehicle. Next, according to FIG.
will be explained in detail. 60 is a central processing unit (CPU) that calculates the ignition timing, and uses TMS9900 manufactured by TI with a 16-bit configuration. Reference numeral 70 indicates a read-only memory unit (ROM) that stores control programs and control constants, and 69 indicates a temporary memory unit (RAM) that is used to store control data while the CPU 60 is operating according to the control program. 61 is an interrupt control unit which notifies the CPU of the occurrence of an interrupt with three levels of priority. The interrupt factors in this embodiment include an interrupt caused by the generation of a rotation angle signal pulse from the engine rotation sensor 4;
There are three types of interrupts: a program interrupt which is caused by the CPU 60 itself setting the level of the program interrupt output port of the digital input/output port 64 to "0" level, and a timer interrupt which is caused by the timer every 8 milliseconds (ms). The timer section 62 is composed of a 16-bit counter that counts an 8 μs clock signal and a latch that stores and holds the counter value every time a rotation angle signal pulse of the rotation sensor 4 is generated. Therefore, in the interrupt processing for generation of rotation angle pulses, the CPU 60 reads the value of the crank angle counter section 63 to know the rotation angle position of the engine, reads the latch value of the timer section 62, and repeats this operation for two rotations. By determining the difference between the latch values at each angular position, it is possible to measure the time it takes for the engine to rotate between two rotational angular positions, and also to measure the engine speed. The crank angle counter section 63 is a counter with a lower digit in decimal notation and an upper digit in 4 decimal notation, and counts up based on the rotation angle signal of the rotation sensor 4, and when the next rotation angle signal is generated after the generation of the top dead center signal. The counter is reset to the value "0" and synchronized with the engine rotation. Therefore, the value of the crank angle counter is
By reading it out by the CPU, the engine rotational angular position can be determined in units of 7.5 degrees of crank angle. The digital input/output port 64 is a port used for inputting and outputting logic signals, and in order to recognize that the starter switch 31 is turned on when starting the engine, the digital input/output port 64 is a port used for inputting and outputting logic signals. Enter your level. It is also used to generate a program interrupt signal to be supplied to the interrupt control section 61. As is well known, the knock detection circuit 65 internally generates a knock detection pulse signal when the instantaneous value of the knock signal greatly exceeds the average level, and counts the number of pulses for a period designated by the CPU 60. The analog input port 67 is for measuring the voltage value of an analog signal, and is connected to the output voltage signal of the pressure sensor 21 that measures the intake manifold pressure of the engine 1 and the battery voltage for correcting the energization time of the ignition coil 7. Analog-to-digital (A/D) conversion of voltage. The energization ignition control section 68 energizes the two coil current actuator circuits of the igniter 8 and generates an ignition signal. This energization ignition control section 68
has several down counters, and is instructed by the CPU to determine which ignition coil 7 should be energized and ignited, and to determine the crank angle counter value and down count value at which the down counter should start counting. When the value becomes "0", the #1 coil energization signal and the #2 coil energization signal are set to level "0" for energization and to level "1" for ignition. 71 is a common bus,
The CPU carries control and data signals on this bus signal line to control peripheral circuits and send and receive data. The configuration, operation, and control method of the control program of this embodiment will be explained below.

【表】 制御プログラムは、表1の如く優先順位関係の
ある3種類の割込み処理ルーチンと割込み処理が
行なわれない場合、常時実行されるベースルーチ
ンの4階層の処理で構成される。割込み処理ルー
チンでは、エンジン回転や経過時間に同期して行
なう必要のある処理が行なわれる。 まず第14図に示すギヤ割込み処理ルーチンに
ついて説明する。ギヤ割込み信号は、#1気筒又
は#4気筒の上死点位置を0度として7.5度クラ
ンク回転角度毎に発生する。ギヤ割込み処理ルー
チンでは、まずステツプ1100でクランク角カ
ウンタ部63からクランク角カウンタの値を読取
り、エンジン1の回転角度位置を知る。次にステ
ツプ1200の通電点火処理で後述するプログラ
ム割込みで計算された、通電点火制御データに従
つて通電点火制御部68にデータを供給し制御を
する。次にステツプ1300の固定位置処理で固
定した角度位置で行なう処理を行なう。 第15図に、上記ステツプ1200の通電点火
処理のフローチヤートを示す。まずステツプ12
05で、2つの点火コイル7のうち、#1コイル
の通電開始用のダウンカウントを開始する角度位
置に現在エンジンが達しているか否かを判断し、
判断が“YES”ならばステツプ1210で#1
コイル通電用のダウンカウンタの初期値を設定す
ると同時に、ダウンカウントを開始させる。この
ダウンカウンタはこの実施例では8μsのクロツ
ク信号ダウンカウントして値が“0”になつたと
きに、#1コイル通電信号を“0”にし通電を開
始させる。 ステツプ1215では、#1コイルの点火用の
ダウンカウントを開始する角度位置にエンジンが
達しているかを判断し、判断が“Yes”ならば、
ステツプ1220で#1コイル通電用のダウンカ
ウンタの初期値を設定すると同時にダウンカウン
トを開始させる。このダウンカウンタは、この実
施例では8μsのクロツク信号でダウンカウント
して値が“0”になつたとき、点火コイルの通電
を停止することが点火に相当するので、#1コイ
ルの通電信号を論理“1”にして、点火コイル
#1の通電が停止される。 #2コイルについてもステツプ1225,12
30,1235,1240で同様に通電点火制御
が行なわれる。 次に上記ステツプ1300の固定位置処理につ
いて説明する。通電点火処理がプログラム割込み
で計算した値によつて、実効的に処理が働く角度
位置が変動するのに対して、固定位置処理は定め
られた角度位置で処理が行なわれる。 固定位置処理1300がどの回転角度位置で行
なわれるかを第4図に示す。クランク角度0〜60
度、180〜240度で、60度クランク角度を回転する
回転時間を計測する。0、180度の位置で吸気マ
ニホールド圧力を計測する。角度22.5〜60度、
202.5〜240度でノツク検出パルスを計数する。ま
た、60、240度でプログラム割込みを発生し、プ
ログラム割込み処理ルーチンを起動する。第16
図にこの固定位置処理1300のフローチヤート
を示す。 ステツプ1310でクランク角度を判断し、
0、180度でTDC処理1320を行ない、22.5、
200.5度で22.5度処理1330を行ない、60度、
240度で60度処理1340を行ない、その他は何
もしない。 第17図に上記TDC処理1320のフローチ
ヤートを示す。ステツプ1321でタイマー部6
2のタイマーラツチ値を取込みTP1とし、次に
ステツプ1321で吸気マニホールド圧力Pmの
A/D変換値を取込む。 第18図に上記225度処理1330のフローチ
ヤートを示す。ステツプ1331でデイジタル入
出力ポート64の信号ポートを“0”にす
る。これにより、ノツク検出回路65でノツク検
出パルスの計数が開始される。 第19図に60度処理1340のフローチヤート
を示す。ステツプ1341でタイマーラツチ値を
取込みTP2とする。ステツプ1342で60度ク
ランク角度回転時間Tmを(1)式で求める。 Tm=TP2−TP1 ……(1) ステツプ1343でデイジタル入出力ポート6
4の信号出力ポートをレベル“1”にし
て、ノツク検出パルスの計数を終了させる。ま
た、ステツプ1344でデイジタル入出力ポート
64のプログラム割込み出力ポートをレベル
“0”にした後、再びレベル“1”にしてプログ
ラム割込み信号を発生させ、プログラム割込み処
理ルーチンを起動する。 第20図にプログラム割込み処理のフローチヤ
ートを示す。 ステツプ2100で、後述するベースルーチン
で計算されたフイードバツク結果に基づいて現在
の運転状態に適用すべき点火時期を計算する。実
際の通電点火制御部の制御は前述した様にギヤ割
込み処理ルーチンで行なう。 ステツプ2200では、フイードバツクフラグ
FBが“1”であるときは、ステツプ2300の
ノツク評価処理でフイードバツクの開始が指示さ
れて、後述するようなマツプの書換え等のフイー
ドバツク処理が終了していないことを意味するの
で、ステツプ2300のノツク評価を行なわずプ
ログラム割込み処理を終了する。フラグfFB
“1”でないときには、値は“0”であり、この
ときフイードバツクの開始が指示されておらず、
フイードバツク処理も進行中でないのでステツプ
2300のノツク評価処理を行なう。フラグfFB
が“1”のときに、ノツク評価を行なわないの
は、マツプの書換えが進行しているときにノツク
評価を行なつても、制御条件が明確でないので、
フイードバツクの方法が複雑になるからであり、
フイードバツク制御の安定性を損うおそれがある
からである。 ステツプ2300のノツク評価処理では、ノツ
ク検出回路65のノツク検出パルスの計数値及び
ノツクの検出されない点火回路からフイードバツ
ク処理を開始すべきか否かを判断して、実際にフ
イードバツク処理を行なうベースルーチンの処理
ルーチンに起動をかける。起動をかけるにはフラ
グfFBを“1”にする。 ここで、本実施例の点火時期の計算方法につい
て説明する。 第3図に、あるエンジン回転数の点火時期に対
するトルク曲線のグラフを示す。 点火時期は、上死点前角度(度BTDC)で表現
されており、値が大きい程進角していることにな
る。トルク曲線1はスロツトル弁が全開に近い状
態を示し、MBT1はトルク曲線1のMBT(MI
IMUM ADVANCE FOR BEST TORQUE)
の点火時期であり、この場合のノツクが発生し始
める点火時期をノツク限界1として示す。MBT
で点火するのがエンジンの効率、燃費の観点から
最良であるが、ノツキングが発生するとエンジン
自体に悪影響を与え、特有の発生音が運転者への
聴感上に良くないので、ノツク限界またはノツク
限界より少し遅角側に点火時期を設定するのが通
例である。トルク曲線2は、スロツトル弁が半開
状態での点火時期に対するトルクの関係を示す。 MBT及びノツク限界をMBT2及びノツク限界
2として表示する。この場合には、ノツク限界が
MBTより進角側にあるので、MBTで点火するの
が最良である。 従つて、本実施例ではMBTを最大進角点火時
期として、この値からノツクセンサーの出力信号
により、遅角側にフイードバツク制御している。 点火時期計算式を(2)式に示す。 θx=θPP−θFM−PxθT ……(2) θx:最終点火時期(度BTDC) θPP:固定マツプ進角 θFM:フイードバツクマツプ値 P:学習係数 θT:フイードバツク遅角量 以下、(2)式各項の求め方を第21図の点火時期
計算処理2100のフローチヤートに従つて説明
する。ステツプ2105ではギヤ割込み処理で計
算した60度クランク角度回転時間Tmから(3)式に
よりエンジン回転数Nを求める。 N(rpm)=107×1/Tm(マイクロ秒) ……(3) ステツプ2110では、ギヤ割込み処理で取込
んだ吸気マニホールド圧力のA/D変換値Vpm
から(4)式により吸気マニホールド圧力を求める。 Pm(mmHg)=A1×Vpm+A2 ……(4) A1、A2:変換係数 ステツプ2115では、エンジン始動時のスタ
ータ作動時かどうか判断し、“YES”ならばステ
ツプ2120で点火時期7.5度(通電時間を11.5
ミリ秒の固定的な値に設定して、ステツプ217
5に進む。スタータ作動時でない場合はステツプ
2125に進む。 固定マツプ進角(θPP)、フイードバツクマツ
プ値(θFM)、及び学習係数Pを求めるためのフ
イードバツク回数(NFB)はそれぞれエンジン回
転数(N)及び吸気マニホールド圧力Pmを2軸
とする固定進角マツプ(θPPマツプ、第5図参
照)、フイードバツクマツプ(θFMマツプ、第6
図参照)フイードバツク回数マツプ(NFBマツ
プ、第7図参照)から求められる。 θPPマツプはMBTを記憶している固定データ
のマツプであり、θFMマツプ、NFBマツプは制御
の進行に従つてフイードバツク等により書換えら
れる可変データのマツプである。θFMマツプは運
転状態区分毎にMBTからの遅角量を記憶するも
のであり、NFBマツプはθFMマツプの各値が過去
のフイードバツクの結果どれ程書換えられたかを
示すものである。 第5図のθPPマツプの横軸はエンジン回転数N
であり、1000回転未満の低回転域では横軸に対応
する欄番号Xに対して、エンジン回転数Nの増分
は小さく全体に比例関係(単一の一次関数型)に
はなつていない。θPPマツプの縦軸は吸気マニホ
ールド圧力Pmであり、縦軸に対応する行番号Y
に対する比例関係(単一の一次関数型)になつて
いる。第6図のθFMマツプ、第7図のNFBマツプ
は、第5図のθPPマツプの高負荷領域に対しての
み定義されているが、定義されている領域につい
てはエンジン回転、吸気マニホールド圧力と欄番
号X、行番号Yの関係はθPPマツプと同じであ
る。 θPPマツプ、θFMマツプ、NFBマツプからθP
、θFM、NFBの各値を求める場合はX、Yによ
る。 従つて、第21図のステツプ2125では回転
数(N)から欄番号Xへ(5)式に従つて変換され
る。 Xiは欄番号で整数、 Xの小数点部は、マツプの横軸に指定された回
転数の中間の回転数であることを示す。 ステツプ2130では、吸気マニホールド圧力
pmから行番号Yへ(6)式に従つて変換される。 Yiは行番号で整数 Yの小数点部は、マツプの縦軸に指定された吸
気マニホールド圧力の中間の吸気マニホールド圧
力であることを示す。 ステツプ2135では固定マツプ進角θPPを、
ステツプ2125,2130で求めたX、Yにて
固定進角マツプ(θPPマツプ)から読み出し、 (7)式により4点補間計算して求める。 ステツプ2140ではX、Yにて、フイードバ
ツクマツプ(θFMマツプ)からフイードバツクマ
ツプ値θFMを(8)式により4点補間計算する。 ステツプ2145ではX、Yにて、フイードバ
ツク回数マツプ(NFBマツプ)からフイードバツ
ク回数NFBを(9)式により4点補間計算する。 フイードバツク回数マツプの各値は、同じ
(X、Y)番号のθFMマツプの値が過去のどれ程
フイードバツクされているかを表わすものであ
り、フイードバツクマツプ(θFMマツプ)、フイ
ードバツク回数マツプ(NFBマツプ)の各値の書
換え手順は、後述するベースルーチンの項で説明
する。 ステツプ2150では、フイードバツク回数N
FBにて第9図の如き学習係数マツプ(Pマツプ)
より学習係数Pを検索する。学習係数Pは第9図
の学習係数マツプ(Pマツプ)から明らかなよう
に、フイードバツク回数が大きくなるに従つて小
さくなつている。これは、フイードバツクが行な
われるに従つてθFMマツプの各マツプ値はフイー
ドバツク最適値に近づくと考えられ、フイードバ
ツク量を小さくして制御の安定性を高めるためで
ある。 ステツプ2155では、(10)式により点火時期フ
イードバツク制御量としてのフイードバツク角度
θFBマツプを求める。 θFB=θFM+PxθT ……(10) PxθTの項があるのは、後述するように加減速
時のようにノツク評価時期の間のエンジン回転数
及び吸気マニホールド圧力の分布が一定範囲内に
ない場合、フイードバツクマツプ値θFMにフイー
ドバツクしないため、この項によりフイードバツ
クするためである。 点火時期は、MBTより進角しないようにする
ため、ステツプ2160でθFBが負でないことを
調べ、負である場合はステツプ2165で0にす
る。 ステツプ2170では、最終点火時期θxを(11)
式により計算する。 θx=θPP−θFB ……(11) ステツプ2175では、ステツプ2170から
の場合は後述する8ms割込み処理ルーチンで計
算する。コイル通電時間ToNからエンジン回転数
によりコイル通電角度を計算し、最終点火時期θ
xから通電開始角度θoNを求め、コイル#1,
#2について通電用ダウンカウントの開始角度位
置とダウンカウンタに設定する初期値及び点火用
のダウンカウントの開始角度位置とダウンカウン
タに設定する初期値を計算する。 第22図に前記ノツク評価処理ステツプ230
0のフローチヤートを示す。 ステツプ2305では、後述するベースルーチ
ンでノツク評価が開始されてからの点火数のソフ
トウエア上のカウンタであるノツクインターバル
WNOを1だけ増加する。 ステツプ2310,2315では、エンジン回
転数N及び吸気マニホールド圧力Pmがそれぞれ
の比較基準値Ns、Pmsから一定差△N、△Pm以
内に入るような定常状態か否かを判断し、“NO”
ならばステツプ2325で定常フラグfSTを値
“0”にする。 定常状態ならば、ステツプ2320でノツク評
価期間中のエンジン回転数Nに対応する欄番号
X、吸気マニホールド圧力Pmに対応する行番号
Yの平均値を計算するためX、Yの積算値Σx、
Σyに現在のX、Yを加算する。 ステツプ2335では、ギヤ割込み処理で22.5
〜60度、200.5〜240度の間、ノツク検出パルスを
計数させたノツク検出回路65からノツクパルス
計数値Nkplsを取込み、ステツプ2340では
Nkplsの値が比較基準値kpより大きいかを判断
し、“YES”ならばノツクが検出されたとしてス
テツプ2350でフイードバツクフラグfFB
“1”にする。判断ステツプ2340で“NO”の
場合は、ステツプ2345でノツク評価が開始さ
れてからの点火数が所定の点火数Nmax(例えば
100点火)を経過しているか否かを判断し、経過
している場合はステツプ2350でフイードバツ
ク開始フラグfFB“1”にして、ベース処理ルー
チンにフイードバツクを開始させる。ステツプ2
345の判断が“NO”の場合は何もせずノツク
評価処理を終了する。 第23図に8ミリ秒(ms)割込み処理ルーチ
ンのフローチヤートを示す。ステツプ3100で
アナログ入力ポート67からバツテリ電圧VB
取込む、ステツプ3200ではバツテリ電圧VB
により第13図に示す通電時間特性によつて、コ
イル通電時間ToNを計算する。次にステツプ33
00で、1分ごとの時間信号を作るためのソフト
ウエア上のカウンタC1Mに1を加算する。 第24図にベース処理のフローチヤートを示
す。ステツプ4100では、初期化処理を行ない
前記θFMマツプ、NFBマツプのクリア、ソフトウ
エア上のカウンタのクリア、パラメター等の初期
値設定を行なう。ステツプ4200で割込み許可
を行なう。ステツプ4300ではプログラム割込
み処理で設定され、フイードバツク処理の開始を
指示する、フイードバツクフラグfFBが“1”で
あるか否かを判断し、“Yes”であればステツプ
4400でフイードバツク処理を行なう。 “NO”の場合、何も行なわずステツプ450
0に進む。 ステツプ4500では、1分のソフトウエア上
のカウンタC1MがK1M(=60秒/8ms=750)
より大きいかどうかを判断し“YES”ならば1
分を経過しているのでステツプ4600の忘却処
理を行なう。 第25図に前記フイードバツク処理4400の
フローチヤートを示す。この処理では、θFMマツ
プのフイードバツクはあるノツク評価期間のデー
タにより生成されたマツプフイードバツクデータ
を直ちにフイードバツクせず、次のノツク評価期
間終了後マツプにフイードバツクして、1ノツク
評価期間遅れて行なう。 何故ならば、フイードバツク角度θFBは、θFB
=θFM+P×θTと表わされ、後述する様にθFM
にも概略P×θTの量がフイードバツクされるの
で、フイードバツク角度θFBはθFMマツプにフイ
ードバツクされない時に比べて約2倍になるから
である。 ステツプ4405では、(12)式、(13)式でノツ
ク評価期間中の運転状態中心として、プログラム
割込み処理の点火時期計算2100で使用する欄
番号X、行番号Yの平均値で求める。 =ΣX/WNO ……(12) =ΣY/WNO ……(13) ΣX:ノツク評価期間中のXの積算値 ΣY:ノツク評価期間中のYの積算値 WNO:ノツクインターバル(ノツク評価期間中
の点火数) θFMマツプ上の座標(、)の点はマツプフ
イードバツクする時のフイードバツク中心として
使用される。 ステツプ4410で、運転状態の中心()
が第6図の如きθFMマツプの定義されているフイ
ードバツク領域内にあるか判断して、“YES”な
らばステツプ4415でフイードバツク量θT
算を行なう。ステツプ4425で定常フラグfST
が“1”か判断し、“YES”ならばステツプ44
30でマツプフイードバツクフラグfMFB
“1”にする。“NO”ならばステツプ4435に
進み、マツプフイードバツクフラグfMFB
“0”にする。従つて、この場合フイードバツク
量θTは計算されるが、マツプフイードバツクを
行なうか否かを示すマツプフイードバツクフラグ
MFBが“1”でないので、マツプにフイードバ
ツクされない。 ステツプ4410でフイードバツク領域内にな
い場合は、ステツプ4420でθTを“0”に
し、ステツプ4435に進みフラグfMFBを0に
する。 ステツプ4440では、前回のフイードバツク
処理のフラグfMFBの値が移されたマツプフイー
ドバツクフラグ2fMFB2の値が“1”か否かを判
断し、“YES”ならばステツプ4445でマツプ
フイードバツク処理を行なう。この時、マツプフ
イードバツクに使用するデータは前回のフイード
バツク処理で計算されたものである。ステツプ4
440で判断が“NO”の場合、マツプフイード
バツクは行なわずステツプ4450に進む。 ステツプ4450では、今回計算したマツプフ
イードバツクデータを次回のフイードバツク処理
でマツプフイードバツクするパラメーターに設定
する。 :マツプフイードバツクに使用するフイード
バツク中心のX座標 :マツプフイードバツクに使用するフイード
バツク中心のY座標 θT2:マツプフイードバツクに使用するフイード
バツク量 fMFM2:マツプフイードバツクフラグ2 ステツプ4455ではノツク評価を開始する処
理を行なう。すなわち、ノツクインターバル
WNO,ΣX,ΣYの“0”クリア、フイードバ
ツクフラグfFBの“0”設定、定常フラグfST
“1”設定、定常判定の比較基準値Ns、Pmsに現
在のエンジン回転数N、吸気マニホールド圧力
Pmの設定を行なう。 第26図に前記ステツプ4415のフイードバ
ツク量θT計算処理のフローチヤートを示す。 本実施例では、ノツク評価開始からノツク評価
終了までの点火数であるノツクインターバル
WNOによりフイードバツク量θTを決定してい
る。ノツク評価期間はノツクが検出されるか、打
切り回数Nmaxが経過した時終了する。 第8図にノツクインターバルWNOからフイー
ドバツク量θTを求める関係のグラフを示す。θT
の値が正の場合が遅角側へのフイードバツクであ
り、θTの値が負の場合が進角側へのフイードバ
ツクである。 基本的には、遅角側は直線a2、進角側は直線b2
のグラフで決定される。実際には、直線a2,c,
b2の端点のWNOとθTの値が基本フイードバツク
量θfマツプとして記憶されており、ノツクイン
ターバルWNOによりこのマツプから1次補間計
算してθfを求める。このθfに後述の補正係数
を乗じてθTとしている。 また、大きな角度を遅角しなければならないと
きは第8図のグラフのa2の部分の値が大きい程遅
角側への応答性が早く、また、大きな角度を進角
しなければならないときは、グラフのb2の部分の
値が大きい程進角側への応答性が早い。そのた
め、この実施例では過去に遅角が続いたならば、
遅角特性をa2からa3に変更し過去に進角が続いた
ならば進角特性をb2からb3に変更して制御の応答
性を早めている。また、進角と遅角が交互に続く
フイードバツク目標値に到達したような場合には
遅角、進角のフイードバツク量を小さくした方が
点火時期の安定性が良くなる。従つて本実施例で
は、進角と遅角が交互に続いた場合には遅角特性
をa2からa1に、進角特性をb2からb1にして制御の
安定性を高めている。 これを第26図に示すフイードバツク量θT
算処理4415のフローチヤートで説明するとス
テツプ4415−1では、ノツクインターバル
WNOによりθfマツプからθfを補間計算を行
ない求める。ステツプ4415−2では、プログ
ラム割込み処理で管理される定常フラグfST
“0”又は“1”を判断し、“0”の非定常の場合
はステツプ4415−3,4415−4で遅角特
性パラメーターia、進角特性パラメーターibをと
もに0にし、ステツプ4415−5でフイードバ
ツク量θTに基本フイードバツク量θfをそのま
ま設定する。ステツプ4415−2の判断で、定
常フラグfSTの値が“1”で定常の場合はステツ
プ4415−6の今回のフイードバツク量θfの
値をチエツクする。θf>0で遅角の場合、ステ
ツプ4415−7に進み、前回のフイードバツク
覆歴を示すflの値を判断する。 fl>0のとき 前回は遅角 fl<0のとき 前回は進角 fl=0のとき 前回は進遅角なし fl>0で前回も遅角の場合はステツプ4415
−8の進み、遅角特性パラメーターiaの値を判断
する。 ia=1:遅角特性は第8図のa3 ia=0:遅角特性は第8図のa2 ia=−1:遅角特性は第8図のa1 ia≦0の場合はステツプ2223−9でiaに1
を加算して遅角特性を増強し、ステツプ4415
−12に進む。ia>0の場合は、遅角特性をこれ
以上増強できないのでそのままステツプ4415
−12に進む。 ステツプ4415−7の判断でfl=0の場合
は、そのままステツプ4415−12に進む。 ステツプ4415−7の判断でfl<0の場合
は、つまりは前回進角で今回遅角の場合である
が、この場合はステツプ4415−10で進角特
性係数ibの値を判断し、ib≧0の場合は、ステツ
プ4415−11でibを1減算してステツプ44
15−12に進む。ステツプ4415−12では
(15)式により θT=θf×2ia ……(15) フイードバツク量θTを計算する。その後ステ
ツプ4415−20に進む。ステツプ4415−
6でθf=0の場合はθT=0としてステツプ4
415−20に進む。 ステツプ4415−6でθf<0つまり、今回
のフイードバツク量が進角側である場合はステツ
プ4415−13に進む。ステツプ4415−1
3でfl>0で前回フイードバツクが遅角である場
合はステツプ4415−14に進む。ステツプ4
415−14で遅角特性係数iaがia≧0の場合は
ステツプ4415−15でiaから1だけ減ずる。
そしてステツプ4415−18に進む。 ステツプ4415−14でia<0の場合は、何
もせずステツプ4415−18に進む。 ステツプ4415−13で、fl=0で前回フイ
ードバツクで進遅角量が0の場合は直ちにステツ
プ4415−18に進む。 ステツプ4415−13で、fl<0で前回フイ
ードバツクが進角の場合は、ステツプ4415−
16に進み、進角特性係数ibの値を調べる。 ib=1:遅角特性は第8図のb3 ib=0:遅角特性は第8図のb2 ib=−1:遅角特性は第8図のb1 ib≦0の場合は1加算して、進角フイードバツ
ク量を大きくする。そしてステツプ4415−1
8に進む。ステツプ4415−16でib>0の場
合は、これ以上進角フイードバツク量を大きくで
きない為、そのままステツプ4415−18に進
む。 θT←θf×2ib ……(16) そして、ステツプ4415−20に進む。ステ
ツプ4415−20では、今回計算したフイード
バツク量θTをflに移す。 第27図に前記マツプフイードバツク処理ステ
ツプ4445のフローチヤートを示す。 本実施例では、マツプフイードバツクはノツク
評価期間中の回転数Nに対応する欄番号Xの前回
までの平均値、吸気マニホールド圧力Pmに
対応する行番号Yの前回までの平均値を2座
標とするフイードバツク中心()から
2欄または2行以内のθFMマツプの各要素につい
てフイードバツクを行なう。 ステツプ4445−1〜4445−4でθFM
ツプの書換えを行なう領域の欄番号Xの下限値X
L、上限値XH、行番号Yの下限値YL、上限値YH
を(17)式〜(20)式で求める。 XL=(−1)の整数部又は
−2(が整数値のとき)又はXFML (上記の値がθFMマツプのX下
限値XFMLより小さいとき) ……(17) YL=(−1)の整数部又は
−2(が整数値のとき)又はYFML (上記の値がθFMマツプのY下
限値YFMLより小さいとき) ……(18) XH=(+2)の整数部 又はXFMH(上記の値がθFM
ツプのX上限値XFMHより大きいとき)
……(19) YH=(+2)の整数部 又はYFMH(上記の値がθLM
ツプのY上限値YFMHより大きいとき)
……(20) ステツプ4445−5で書換える要素の欄番号
JにXLを、行番号YJにYLを設定する。ステツ
プ4445−6でフイードバツク中心(
)と(XJ、YJ)点のX方向偏差△X、Y方向
偏差△Yを求める。 但し、△X、△Yは実際の偏差を4倍にして整
数部のみにしたものである。 ステツプ4445−7では、△X、△Yにより
距離Lマツプを検索し距離lを求める。第10
図、第11図に距離マツプ例を示す。第10図の
例は、△X、△Yについて同等の重みで距離lが
増大する。第11図の例2は、△Yが△Xに対し
て2倍の重みで距離が増大する。フイードバツク
量は距離が大きい程小さくなつているので、第1
1図の例2の場合だと△Y方向つまり吸気マニホ
ールド圧力方向にフイードバツク中心から離れる
に従つて急激にフイードバツク量が減少する。 ステツプ4445−8は距離lによりフイード
バツク率マツプ(Kマツプ)からフイードバツク
率kを検索する。距離lとフイードバツク率kの
関係を第12図のkマツプの特性に示す。 ステツプ4445−9で、NFBマツプのフイー
ドバツク回数NFB(XJ、YJ)を検索する。ステ
ツプ4445−10では、第9図のPマツプから
FB(XJ、YJ)により学習係数Pを検索する。 ステツプ4445−11では、前回のフイード
バツク量θT2の正負を判断してθT2≧0ならば、
ステツプ4445−13で(21)式によりマツプ
値θFM(XJ、YJ)を書換える。 θFM(XJJ)=最小値{θPP(XJ、Y
J)、θFM(XJ、YJ)+k×P×θT2
……(21) θT2<0ならば、ステツプ4445−12で
(22)式によりθFM(XJ、YJ)を書換える。 θFM(XJ、YJ)=最大値{0、
θFM(XJ、YJ)+K×P×θT2
……(22) その後、ステツプ4445−14でθFMマツプ
の書換えマツプ値θFM(XJ、YJ)に対応するフ
イードバツク回数NFBマツプのマツプ値NFB(X
J、XJ)を(23)式に従つて書換える。 NFB(XJ、YJ)=NFB(XJ、YJ)+k
……(23) これによりθFMマツプのマツプ値θFM(XJ
J)がどれ程フイードバツクされたかを記憶す
る。 ステツプ4445−15で書換え要素の位置を
変更するためXJに1加算する。 ステツプ4445−16で、XJとXHの大小関
係を判断し、XJHならばステツプ4445−
6に進み書換え操作を続ける。XJ>XHならばス
テツプ4445−17でXJにXLを設定し、ステ
ツプ4445−18でYを1だけ加算する。そし
てステツプ4445−19でXJとYHの大小関係
を判断し、YJHならばステツプ4445−6
に進み書換え操作を続ける。YJ>YHならばマツ
プフイードバツク処理を終了する。 上記した第27図のマツプフイードバツク処理
ステツプ4445において、θFMマツプへのフイ
ードバツクの範囲と分布をフイードバツク中心
)と書換え要素(XJ、YJ)の欄番
号Xの偏差△Xと行番号Yの偏差△Yから距離l
を求めて行なうのは、次の利点がある。 θFMマツプとθPPマツプと各行、各欄に対応す
る吸気マニホールド圧力、エンジン回転数が計算
処理上の有利さから同一になつている。θPPマツ
プは、この実施例ではMBTが記憶されているが
値が急変する低回転部分では、隣り合う欄のエン
ジン回転数の差を小さくし、精度良くMBTを表
現している。このような運転領域では、フイード
バツク制御値も変動が激しいので、フイードバツ
ク中心からのエンジン回転数の差により、その要
素のフイードバツク量を決定するよりも、欄番号
の偏差によりフイードバツク量を決定する方法が
マツプ構造に調和する。 また、このマツプフイードバツク処理ステツプ
4445においては、フイードバツク中心(
)とθFMマツプの書換えマツプ値θFM
(XJ、YJ)の実際の座標の偏差を4倍して整数
部のみにしたX方向偏差△X、Y方向偏差△Yに
て距離マツプ(Lマツプ)から距離lを検索し、
lにてフイードバツク係数マツプ(Kマツプ)か
らフイードバツク係数kを検索する。従つて1/
4欄番号、行番号毎の偏差について、フイードバ
ツク係数を指示できる。このように微細にフイー
ドバツク量分布を指定できることによりフイード
バツク性能が向上する。 第28図に第24図のベース処理における忘却
処理ステツプ4600のフローチヤートを示す。
本実施例ではノツクイシターバルが小さい時に遅
角し、大きい時に進角するフイードバツク制御を
行なつており、進角側への制御速度は、遅角側へ
の制御速度に比べて遅い。 また、θFMマツプの長時間使用されない運転状
態区分の各マープ値は、現在のフイードバツク目
標値から大きく離れている可能性がある。従つ
て、各マツプ値をそのまま残しておくより忘却さ
せてしまつた方がフイードバツク目標値に早く到
達する可能性がある。そこで、本実施例では遅角
側への制御速度が早いので、θFMマツプの全マツ
プ値を1分毎に所定量だけ減算して忘却効果とし
て作用させている。 ステツプ4605で減算量計算済フラグF1M
“1”が立つているか判断し、“0”ならばまだ減
算量の計算が済んでいないのでステツプ4610
で(24)式に従つて減算量θfgtを計算し、ステ
ツプ4615で分単位のソフトウエア上経過時 θfgt=θFGT/(T+1) ……(24) θFGT:減算初期量 T:経過時間 間Tに1を加算する。 ステツプ4620では忘却のために書換えを行
なうθFMマツプのマツプ値の欄番号XkにθFM
ツプのX下限値XFMLを設定し、行番号YkにθFM
マツプのY下限値YFMLを設定する。そしてステ
ツプ4625では、減算量計算済のフラグF1M
“1”にする。 そして、ステツプ4630ではθFMマツプのマ
ツプ値θFM(Xk、Yk)をθfgtだけ減算し、ステ
ツプ4640でθFM(Xk、Yk)<0のときはス
テツプ4645でθFM(Xk、Yk)を0とする。
ステツプ4650では、Xkを1だけ加算し、ス
テツプ4655ではXkとθFMマツプのX上限値
FMHとの大小関係を比較し、Xk≦XFMHの場合
はこのままこの忘却処理を終了して、次に忘却処
理が実行されるときにθFMマツプの次の要素に忘
却操作がなされる。 ステツプ4655でXk>XFMHの場合は、ステ
ツプ4660でXkにXFMLを設定し、ステツプ4
665でYkに1だけ加算する。ステツプ467
0でYkをYFMHと大小関係を比較しYk≦YFMH
場合は、このままこの忘却処理を終了して、次に
忘却処理が実行されるときにθFMマツプの次の要
素に忘却操作がなされる。 ステツプ4670でYk>YFMHの場合には、ス
テツプ4675で1分のソフトウエア上のカウン
タC1Mを経過時間1分に対応する時間K1Mだけ減
算する。また、ステツプ4680で減算量済フラ
グF1Mに“0”を設定する。 従つて、C1Mに再びK1Mだけの値が加算された
とき次の忘却処理が開始される。 以上の実施例においては、マツプ値をフイード
バツク要因とは関係なく所定時間経過するのに判
つて目標値に収束するよう書換え処理つまり忘却
処理するものについて述べたが、勿論エンジン回
転が所定回転経過するに伴つて忘却処理するよう
にしてもよい。その概要は上記実施例とほとんど
同じであり、以下に上記実施例との変更点を中心
に説明する。即ち第23図の8ms割込み処理ル
ーチンにおけるステツプ3300を廃止し、その
代り第20図のプログラム割込み処理に第29図
の如くステツプ2199を挿入する。これによ
り、エンジン180度回転毎にプログラム割込みが
起動されるのでエンジン180度回転毎にC1Mは1
づつ加算され、1/2K1Mエンジン回転毎にこの
忘却処理が実行される。 また以上の実施例では制御要素としての点火時
期をフイードバツク制御するものについて述べた
が、本発明は制御要素としての空燃比をフイード
バツク制御するものにも適用できるものであり、
以下に説明する。ここでは一例としてフイードバ
ツク制御量としては燃料供給量であり、特に電子
制御燃料噴射装置を有するエンジンにおける噴射
時間の時間幅を制御するものについて述べる。フ
イードバツク要因としては排気管中の酸素濃度に
より空燃比を検出する空燃比センサの空燃比信号
である。エンジン運転状態を表わす信号としては
エンジン回転数N(rpm)、吸入空気量Q(g/
s)の信号を用いる。燃焼1回当りの燃料供給量
(つまり1回当りの噴射時間幅に相当)Mは次式
で表わされる。 M=Mm(N、Q)+△M(N、Q)
……(30) Mm(N、Q):NとQとの関係又はN、Qをパ
ラメータとする固定マツプから算出される量。 △M(N、Q):N、Qをパラメータとする書き
換え可能なフイードバツクマツプ値でそのまま
フイードバツク制御量を与えるもの。 △Mマツプについては上記実施例と同様の手法
により一定時間毎に空燃比センサの信号を元にリ
ツチリーンを判別し、そのときの回転数N、空気
量Qに属する運転状態区分のマツプ量△M
(Ni、Qi)を所定値△Mcだけ加減算する。また△
Mマツプは各マツプ値△M(Ni、Qi)を所定時
間又は所定エンジン回転径過毎にS(0<S<
1)倍することによつて各マツプ値を目標値0に
近づくように書換え(忘却)処理される。 従つて自動車用エンジンのように通常使用され
る所定領域の運転状態区分のマツプ値△Mしか更
新されず他の領域のマツプ値が古くなつてフイー
ドバツク制御の最適値からかけ離れた値となつて
かえつて制御応答性を悪くするといつた問題は解
消される。 なお上記実施例ではフイードバツクマツプ値の
書換え(忘却)処理はマツプ値から一定値(θ
fgt)減算したり、マツプ値に所定値(s)だけ
乗算するものを示したが、他にそのときのマツプ
値を指標にして更新値を検索しこの検索した更新
値を新しいマツプ値とするようにしてもよい。 以上述べてきたように本発明ではエンジン燃焼
状態を決定する制御要素がこの制御要素のフイー
ドバツク要因を評価することにより最適となるよ
うフイードバツク制御量を計算し、このフイード
バツク制御量を元にこの制御要素を制御する方法
であつて、かつ前記計算により求められるフイー
ドバツク制御量に応じた値をフイードバツクマツ
プ値としてエンジンの運転状態に対応させて運転
状態区分毎に記憶装置に記憶し、この記憶したフ
イードバツクマツプ値のうちそのときのエンジン
運転状態に対応した運転状態区分のマツプ値に基
づいて前記フイードバツク制御量が算出される制
御方法において、記憶したマツプ値を上記フイー
ドバツク要因とは関係なく所定時間又はエンジン
所定回転経過に伴つて目標値に収束するよう書換
え処理することを特徴としており、特に長時間使
用されていない領域の運転状態区分のマツプ値は
目標値に近づいた値をとるためこのマツプ値から
算出されるフイードバツク制御量によつて制御要
素を最適値に制御するまでに応答時間を短縮向上
できるという優れた効果がある。
[Table] As shown in Table 1, the control program consists of four levels of processing: three types of interrupt processing routines that have a priority relationship and a base routine that is constantly executed when no interrupt processing is performed. In the interrupt processing routine, processing that needs to be performed in synchronization with engine rotation and elapsed time is performed. First, the gear interrupt processing routine shown in FIG. 14 will be explained. The gear interrupt signal is generated every 7.5 degrees of crank rotation angle, with the top dead center position of cylinder #1 or #4 being 0 degrees. In the gear interrupt processing routine, first, in step 1100, the value of the crank angle counter is read from the crank angle counter section 63, and the rotational angular position of the engine 1 is determined. Next, in the energization ignition processing at step 1200, data is supplied to the energization ignition control unit 68 for control in accordance with energization ignition control data calculated by a program interrupt to be described later. Next, in step 1300, fixed position processing is performed to perform processing at a fixed angular position. FIG. 15 shows a flowchart of the energization ignition process in step 1200. First step 12
At 05, it is determined whether the engine has currently reached the angular position at which to start counting down to start energizing the #1 coil of the two ignition coils 7,
If the judgment is “YES”, step 1210 #1
At the same time as setting the initial value of the down counter for coil energization, down counting is started. In this embodiment, this down counter counts down the clock signal for 8 μs and when the value reaches "0", it sets the #1 coil energization signal to "0" and starts energizing. In step 1215, it is determined whether the engine has reached the angular position to start counting down for ignition of the #1 coil, and if the determination is "Yes",
At step 1220, the initial value of the down counter for energizing the #1 coil is set and at the same time down counting is started. In this embodiment, this down counter counts down with an 8 μs clock signal, and when the value reaches "0", stopping the energization of the ignition coil corresponds to ignition, so the energization signal of the #1 coil is When set to logic "1", energization of ignition coil #1 is stopped. Steps 1225 and 12 for #2 coil as well.
Similarly, energization ignition control is performed at 30, 1235, and 1240. Next, the fixed position processing in step 1300 will be explained. In the energization ignition process, the angular position at which the process effectively operates varies depending on the value calculated by the program interrupt, whereas in the fixed position process, the process is performed at a predetermined angular position. FIG. 4 shows at which rotational angular position the fixed position process 1300 is performed. Crank angle 0~60
Measure the rotation time to rotate a 60 degree crank angle at 180 to 240 degrees. Measure the intake manifold pressure at 0 and 180 degrees. Angle 22.5~60 degrees,
Count the knock detection pulses from 202.5 to 240 degrees. Also, a program interrupt is generated at 60 and 240 degrees, and the program interrupt processing routine is activated. 16th
A flowchart of this fixed position processing 1300 is shown in the figure. In step 1310, the crank angle is determined,
0, TDC treatment 1320 at 180 degrees, 22.5,
Perform 22.5 degree processing 1330 at 200.5 degrees, 60 degrees,
Perform 60 degree processing 1340 at 240 degrees, and do nothing else. FIG. 17 shows a flowchart of the TDC processing 1320. In step 1321, the timer section 6
The timer latch value of step 2 is taken in as TP1, and then in step 1321, the A/D converted value of the intake manifold pressure Pm is taken in. FIG. 18 shows a flowchart of the 225 degree processing 1330. In step 1331, the signal port of the digital input/output port 64 is set to "0". As a result, the knock detection circuit 65 starts counting knock detection pulses. FIG. 19 shows a flowchart of the 60 degree process 1340. At step 1341, the timer latch value is fetched and set as TP2. In step 1342, the 60 degree crank angle rotation time Tm is determined using equation (1). Tm=TP2-TP1...(1) Digital input/output port 6 in step 1343
The signal output port No. 4 is set to level "1" and counting of the knock detection pulses is completed. Further, in step 1344, the program interrupt output port of the digital input/output port 64 is set to level "0" and then set to level "1" again to generate a program interrupt signal and start the program interrupt processing routine. FIG. 20 shows a flowchart of program interrupt processing. At step 2100, the ignition timing to be applied to the current operating condition is calculated based on the feedback results calculated in the base routine described below. Actual control of the energization ignition control section is performed by the gear interrupt processing routine as described above. In step 2200, when the feedback flag fFB is "1", the start of feedback is instructed in the check evaluation process in step 2300, and the feedback process such as map rewriting, which will be described later, has not yet been completed. Therefore, the program interrupt processing is ended without performing the check evaluation in step 2300. When the flag fFB is not "1", the value is "0", and at this time, the start of feedback is not instructed,
Since the feedback processing is not in progress, the knock evaluation processing of step 2300 is performed. Flag f FB
The reason why nok evaluation is not performed when is "1" is because the control conditions are not clear even if nok evaluation is performed while map rewriting is in progress.
This is because the feedback method becomes complicated,
This is because the stability of feedback control may be impaired. In the knock evaluation process of step 2300, it is determined whether or not feedback processing should be started based on the count value of the knock detection pulses of the knock detection circuit 65 and the ignition circuit in which no knock is detected, and the base routine processing actually performs the feedback processing. Activate the routine. To activate, set flag fFB to “1”. Here, a method of calculating ignition timing in this embodiment will be explained. FIG. 3 shows a graph of a torque curve with respect to ignition timing at a certain engine speed. Ignition timing is expressed in angle before top dead center (degrees BTDC), and the larger the value, the more advanced the ignition timing is. Torque curve 1 indicates a state where the throttle valve is close to fully open, and MBT1 is MBT (M I
N I MUM ADVANCE FOR BEST TORQUE)
The ignition timing at which knock starts to occur in this case is indicated as knock limit 1. M.B.T.
It is best from the standpoint of engine efficiency and fuel efficiency to ignite the ignition at this point, but if knocking occurs, it will have a negative effect on the engine itself, and the unique sound produced will not be good for the driver's hearing, so the knocking limit or knocking limit should be set. It is customary to set the ignition timing to a slightly more retarded side. Torque curve 2 shows the relationship between torque and ignition timing when the throttle valve is in a half-open state. Display MBT and Knock Limit as MBT2 and Knock Limit 2. In this case, the knock limit is
Since it is on the advance side of MBT, it is best to ignite at MBT. Therefore, in this embodiment, MBT is set as the maximum advance ignition timing, and feedback control is performed from this value to the retard side using the output signal of the knock sensor. The ignition timing calculation formula is shown in equation (2). θx=θ PPFM -Pxθ T ...(2) θx: Final ignition timing (degrees BTDC) θ PP : Fixed map advance angle θ FM : Feedback map value P: Learning coefficient θ T : Feedback retard amount Hereinafter, how to obtain each term in equation (2) will be explained according to the flowchart of the ignition timing calculation process 2100 in FIG. 21. In step 2105, the engine rotational speed N is determined from the 60 degree crank angle rotation time Tm calculated in the gear interrupt process using equation (3). N (rpm) = 10 7 × 1/Tm (microseconds) ... (3) In step 2110, the A/D conversion value Vpm of the intake manifold pressure taken in by the gear interrupt processing is
Find the intake manifold pressure from equation (4). Pm (mmHg) = A 1 × Vpm + A 2 ... (4) A 1 , A 2 : Conversion coefficient In step 2115, it is determined whether the starter is activated when starting the engine, and if "YES", the ignition timing is changed to 7.5 in step 2120. degree (energizing time 11.5
Set it to a fixed value of milliseconds and proceed to step 217.
Proceed to step 5. If the starter is not operating, the process advances to step 2125. The fixed map advance angle (θ PP ), the feedback map value (θ FM ), and the number of feedbacks (N FB ) for determining the learning coefficient P are calculated using the engine speed (N) and intake manifold pressure Pm as two axes. Fixed advance angle map (θ PP map, see Figure 5), Feedback map (θ FM map, see Figure 6)
(See figure) It is determined from the feedback frequency map ( NFB map, see Figure 7). The θ PP map is a fixed data map that stores MBT, and the θ FM map and N FB map are variable data maps that are rewritten by feedback or the like as control progresses. The θ FM map stores the amount of retardation from the MBT for each operating state classification, and the N FB map shows how much each value in the θ FM map has been rewritten as a result of past feedback. The horizontal axis of the θ PP map in Figure 5 is the engine speed N
In the low rotation range of less than 1000 rotations, the increment of the engine rotation speed N is small with respect to the column number X corresponding to the horizontal axis, and there is no overall proportional relationship (single linear function type). The vertical axis of the θ PP map is the intake manifold pressure Pm, and the line number Y corresponding to the vertical axis
The relationship is proportional to (single linear function type). The θ FM map in Fig. 6 and the N FB map in Fig. 7 are defined only for the high load region of the θ PP map in Fig. 5, but for the defined region, engine rotation, intake manifold The relationship between pressure, column number X, and row number Y is the same as the θ PP map. θ PP map, θ FM map, N FB map to θ P
When determining the values of P , θ FM and N FB , use X and Y. Therefore, in step 2125 of FIG. 21, the number of revolutions (N) is converted into column number X according to equation (5). Xi is a column number and is an integer, and the decimal point of X indicates the middle rotation speed between the rotation speeds specified on the horizontal axis of the map. In step 2130, the intake manifold pressure
It is converted from pm to line number Y according to equation (6). Yi is a row number and an integer. The decimal point part of Y indicates the intake manifold pressure that is between the intake manifold pressures specified on the vertical axis of the map. In step 2135, the fixed map advance angle θ PP is set as
The X and Y values obtained in steps 2125 and 2130 are read from the fixed advance angle map (θ PP map), and are determined by 4-point interpolation calculation using equation (7). In step 2140, a feedback map value θ FM is calculated from the feedback map (θ FM map) in X and Y by four-point interpolation using equation (8). In step 2145, the number of feedbacks N FB is calculated from the feedback number map (N FB map) in X and Y by four-point interpolation using equation (9). Each value in the feedback count map represents how much the value of the θ FM map with the same (X, Y ) number has been feedbacked in the past. The procedure for rewriting each value of the NFB map will be explained in the base routine section below. In step 2150, the number of feedback N
Learning coefficient map (P map) as shown in Figure 9 on FB
Search for learning coefficient P. As is clear from the learning coefficient map (P map) in FIG. 9, the learning coefficient P becomes smaller as the number of feedback increases. This is because it is thought that as feedback is performed, each map value of the θ FM map approaches the optimum feedback value, and the amount of feedback is reduced to improve control stability. In step 2155, a feedback angle θFB map as an ignition timing feedback control amount is determined using equation (10). θ FB = θ FM + Pxθ T ……(10) The term Pxθ T exists because, as will be explained later, the distribution of engine speed and intake manifold pressure during the knock evaluation period is within a certain range, such as during acceleration/deceleration. This is because if the term does not exist, there will be no feedback to the feedback map value θFM , so feedback is provided by this term. In order to prevent the ignition timing from advancing beyond MBT, it is checked in step 2160 that θFB is not negative, and if it is negative, it is set to 0 in step 2165. In step 2170, the final ignition timing θx is set to (11)
Calculate by formula. θx=θ PP −θ FB (11) In step 2175, in the case from step 2170, the calculation is performed using the 8 ms interrupt processing routine described later. Calculate the coil energization angle from the coil energization time To N and the engine speed to determine the final ignition timing θ.
Find the energization start angle θo N from x, coil #1,
Regarding #2, the starting angular position of the down-count for energization and the initial value to be set to the down counter, and the starting angular position of the down-counting for ignition and the initial value to be set to the down counter are calculated. FIG. 22 shows the knock evaluation processing step 230.
0 is shown. In step 2305, the knock interval, which is a software counter of the number of ignitions since the start of knock evaluation in the base routine described later, is set.
Increase WNO by 1. In steps 2310 and 2315, it is determined whether the engine speed N and intake manifold pressure Pm are in a steady state within a certain difference △N, △Pm from the comparison reference values Ns, Pms, respectively, and the answer is "NO".
If so, in step 2325, the steady state flag fST is set to the value "0". If it is in a steady state, in step 2320, in order to calculate the average value of the column number X corresponding to the engine rotation speed N during the knock evaluation period and the row number Y corresponding to the intake manifold pressure Pm, the integrated value Σx of X and Y is calculated.
Add the current X and Y to Σy. In step 2335, 22.5
-60 degrees and between 200.5 and 240 degrees, the knock pulse count value Nkpls is taken from the knock detection circuit 65 that counts the knock detection pulses, and in step 2340, the knock pulse count value Nkpls is acquired.
It is determined whether the value of Nkpls is larger than the comparison reference value kp, and if "YES", it is assumed that a knock has been detected and the feedback flag fFB is set to "1" in step 2350. If “NO” in the judgment step 2340, the number of ignitions after the start of knock evaluation in step 2345 is equal to the predetermined number of ignitions Nmax (for example,
100 ignitions) has elapsed, and if it has elapsed, the feedback start flag fFB is set to "1" in step 2350, and the base processing routine starts feedback. Step 2
If the determination at step 345 is "NO", no action is taken and the knot evaluation process is ended. FIG. 23 shows a flowchart of the 8 millisecond (ms) interrupt processing routine. In step 3100, the battery voltage V B is taken from the analog input port 67, and in step 3200, the battery voltage V B is taken in.
According to the energization time characteristics shown in FIG. 13, the coil energization time To N is calculated. Next step 33
00, 1 is added to the counter C1M on the software for creating a time signal every minute. FIG. 24 shows a flowchart of base processing. In step 4100, initialization processing is performed to clear the θ FM map and N FB map, clear the counters on the software, and set initial values of parameters and the like. In step 4200, interrupts are enabled. In step 4300, it is determined whether the feedback flag fFB , which is set by the program interrupt processing and instructs the start of feedback processing, is "1". If "Yes", the feedback processing is performed in step 4400. . If “NO”, do nothing and proceed to step 450.
Go to 0. At step 4500, the counter C1M on the software for 1 minute becomes K1M (=60 seconds/8ms=750)
Determine whether it is larger than the
Since the number of minutes has elapsed, forgetting processing in step 4600 is performed. FIG. 25 shows a flowchart of the feedback processing 4400. In this process, the θ FM map feedback does not immediately feed back the map feedback data generated from the data of a certain knot evaluation period, but feeds back to the map after the next knot evaluation period ends, and is delayed by one knot evaluation period. Let's do it. This is because the feedback angle θ FB is
It is expressed as = θ FM +P×θ T , and as described later, θ FM
This is because approximately an amount of P×θ T is fed back to the θ FM map, so the feedback angle θ FB is approximately twice as much as when it is not fed back to the θ FM map. In step 4405, the operating state during the knock evaluation period is determined by the average value of the column number X and line number Y used in the ignition timing calculation 2100 of the program interrupt processing using equations (12) and (13). = ΣX / WNO ... (12) = ΣY / WNO ... (13) Σ (number of ignitions) θ The point at coordinates (,) on the FM map is used as the feedback center when performing map feedback. In step 4410, the center of the operating state ()
is within the defined feedback region of the θ FM map as shown in FIG. In step 4425, the steady state flag f ST
is “1”, and if “YES”, step 44
At 30, the map feedback flag f MFB is set to "1". If "NO", the process advances to step 4435, and the map feedback flag fMFB is set to "0". Therefore, in this case, the feedback amount .theta.T is calculated, but it is not fed back to the map because the map feedback flag fMFB , which indicates whether map feedback is to be performed, is not "1". If it is determined in step 4410 that it is not within the feedback region, θ T is set to "0" in step 4420, and the process proceeds to step 4435, in which the flag fMFB is set to 0. In step 4440, it is determined whether the value of the map feedback flag 2f MFB2 to which the value of the flag f MFB of the previous feedback processing has been transferred is "1". If "YES", the map feedback flag is transferred in step 4445. Process. At this time, the data used for map feedback is the data calculated in the previous feedback process. Step 4
If the determination at 440 is "NO", the process proceeds to step 4450 without performing map feedback. In step 4450, the map feedback data calculated this time is set as a parameter for map feedback in the next feedback process. 2 : X coordinate of the feedback center used for map feedback 2 : Y coordinate of the feedback center used for map feedback θ T2 : Feedback amount f used for map feedback MFM2 : Map feedback flag 2 Step At step 4455, processing for starting the knot evaluation is performed. That is, the knock interval
WNO, ΣX, ΣY are cleared to "0", feedback flag f FB is set to "0", steady state flag f ST is set to "1", steady state judgment comparison reference value Ns, Pms is the current engine rotation speed N, intake manifold pressure
Configure Pm settings. FIG. 26 shows a flowchart of the feedback amount θ T calculation process in step 4415. In this example, the knock interval is the number of ignitions from the start of the knock evaluation to the end of the knock evaluation.
The feedback amount θ T is determined by WNO. The knock evaluation period ends when a knock is detected or the number of aborts Nmax has elapsed. FIG. 8 shows a graph of the relationship in which the feedback amount θ T is determined from the knock interval WNO. θT
When the value of θ T is positive, it is feedback toward the retard side, and when the value of θ T is negative, it is feedback toward the advance side. Basically, the retard side is a straight line a 2 and the advance side is a straight line b 2
determined by the graph of Actually, the straight lines a 2 , c,
The values of WNO and θT at the end points of b2 are stored as a basic feedback amount θf map, and θf is obtained by linear interpolation calculation from this map using the knock interval WNO. This θf is multiplied by a correction coefficient, which will be described later, to obtain θT . Also, when a large angle must be retarded, the larger the value of the a2 part of the graph in Figure 8, the faster the response to the retard side, and when a large angle must be advanced, The larger the value of b2 in the graph, the faster the response to the advance angle side. Therefore, in this example, if the retardation continued in the past,
If the retard angle characteristic is changed from a 2 to a 3 and the advance angle has continued in the past, the advance angle characteristic is changed from b 2 to b 3 to speed up control responsiveness. Further, when the feedback target value is reached where the advance angle and the retard angle continue alternately, the stability of the ignition timing is improved by reducing the amount of feedback of the retard angle and the advance angle. Therefore, in this embodiment, when the advance angle and the retard angle continue alternately, the retard angle characteristic is changed from a 2 to a 1 , and the advance angle characteristic is changed from b 2 to b 1 to improve control stability. . This will be explained using the flowchart of the feedback amount θ T calculation process 4415 shown in FIG. 26. In step 4415-1, the knock interval
θf is determined by interpolation calculation from the θf map using WNO. In step 4415-2, it is determined whether the steady state flag f ST managed by the program interrupt processing is "0" or "1", and if it is unsteady at "0", the retardation characteristic is determined in steps 4415-3 and 4415-4. Both the parameter ia and the lead angle characteristic parameter ib are set to 0, and in step 4415-5, the basic feedback amount θf is directly set as the feedback amount θT . If it is determined in step 4415-2 that the value of the steady state flag f ST is "1" indicating steady state, the value of the current feedback amount θf is checked in step 4415-6. If θf>0 and the angle is retarded, the process proceeds to step 4415-7, where the value of fl indicating the previous feedback history is determined. When fl > 0, the previous time was a retard When fl < 0, the previous time was a lead When fl = 0 There was no lead or retard last time When fl>0 and the previous time was also a retard, step 4415
Determine the value of the advance and retard characteristic parameter ia of −8. ia = 1: Retard angle characteristic is a in Fig. 8. 3 ia = 0: Retard angle characteristic is a in Fig. 8. 2 ia = -1: Retard angle characteristic is a in Fig . 8. If ia≦0, step 2223-9 to ia
is added to enhance the retardation characteristic, and step 4415
Proceed to -12. If ia > 0, the retard characteristic cannot be further enhanced, so proceed to step 4415.
Proceed to -12. If fl=0 as determined in step 4415-7, the process directly advances to step 4415-12. If the judgment in step 4415-7 is fl<0, that is, the previous angle was advanced and the current angle is retarded. In this case, the value of the advance angle characteristic coefficient ib is determined in step 4415-10, and ib≧ If it is 0, subtract 1 from ib in step 4415-11 and proceed to step 44.
Proceed to 15-12. In step 4415-12, the feedback amount θ T is calculated using equation (15): θ T =θf×2 ia (15). The process then proceeds to step 4415-20. Step 4415-
If θf = 0 in step 6, set θ T = 0 and proceed to step 4.
Proceed to 415-20. If θf<0 in step 4415-6, that is, the current feedback amount is on the advance side, the process advances to step 4415-13. Step 4415-1
3, if fl>0 and the previous feedback was delayed, the process advances to step 4415-14. Step 4
If the retard characteristic coefficient ia is ia≧0 in step 415-14, 1 is subtracted from ia in step 4415-15.
The process then proceeds to step 4415-18. If ia<0 in step 4415-14, the process proceeds to step 4415-18 without doing anything. In step 4415-13, if fl=0 and the advance/lag amount in the previous feedback is 0, the process immediately proceeds to step 4415-18. In step 4415-13, if fl<0 and the previous feedback was advanced, step 4415-13
Proceed to step 16 and check the value of the advance angle characteristic coefficient ib. ib=1: The retard characteristic is b in Fig. 8. 3 ib=0: The retard characteristic is b in Fig. 8. 2 ib=-1: The retard characteristic is b in Fig. 8. If 1 ib≦0, then 1 Increase the lead angle feedback amount. And step 4415-1
Proceed to step 8. If ib>0 in step 4415-16, the advance angle feedback amount cannot be increased any further, so the process directly advances to step 4415-18. θ T ← θf×2 ib (16) Then, the process proceeds to step 4415-20. In step 4415-20, the feedback amount θ T calculated this time is transferred to fl. FIG. 27 shows a flowchart of the map feedback processing step 4445. In this embodiment, the map feedback includes the previous average value 2 of column number X corresponding to the rotation speed N during the knock evaluation period, and the previous average value 2 of row number Y corresponding to the intake manifold pressure Pm. Feedback is performed for each element of the θ FM map within two columns or two lines from the feedback center ( 2 , 2 ), which is defined as two coordinates. In steps 4445-1 to 4445-4 , the lower limit value X of the column number
L , upper limit value X H , lower limit value Y L of line number Y, upper limit value Y H
is obtained using equations (17) to (20). X L = ( 2 - 1) integer part or
2 -2 (when 2 is an integer value) or X FML (when the above value is smaller than the lower limit of
2 - 2 (when 2 is an integer value) or Y FML (when the above value is smaller than the Y lower limit value Y FML of the θ FM map) ...... (18) Integer part of X H = ( 2 + 2) or X FMH (When the above value is larger than the θ FM map's X upper limit X FMH )
...(19) Y H = Integer part of ( 2 + 2) or Y FMH (When the above value is larger than the Y upper limit value Y FMH of the θ LM map)
...(20) Set X L in column number X J and Y L in line number Y J of the element to be rewritten in step 4445-5. In step 4445-6, the feedback center ( 2 ,
2 ) Find the X-direction deviation △X and Y-direction deviation △Y between the points (X J , Y J ). However, △X and △Y are the actual deviations multiplied by 4 to include only the integer part. In step 4445-7, the distance L map is searched using ΔX and ΔY to find the distance l. 10th
An example of a distance map is shown in FIG. In the example of FIG. 10, the distance l increases with equal weight for ΔX and ΔY. In example 2 of FIG. 11, the distance increases with ΔY weighing twice as much as ΔX. The amount of feedback decreases as the distance increases, so the first
In the case of Example 2 in FIG. 1, the amount of feedback decreases rapidly as it moves away from the feedback center in the ΔY direction, that is, in the intake manifold pressure direction. Step 4445-8 searches the feedback rate k from the feedback rate map (K map) using the distance l. The relationship between the distance l and the feedback rate k is shown in the characteristics of the k map in FIG. In step 4445-9, the feedback frequency N FB (X J , Y J ) of the N FB map is searched. In step 4445-10, the learning coefficient P is searched from the P map shown in FIG. 9 using N FB (X J , Y J ). In step 4445-11, it is determined whether the previous feedback amount θ T2 is positive or negative, and if θ T2 ≧0,
At step 4445-13, the map value θ FM (X J , Y J ) is rewritten using equation (21). θ FM (X J X J ) = minimum value {θ PP (X J , Y
J ), θ FM (X J , Y J )+k×P×θ T2 }
...(21) If θ T2 <0, in step 4445-12, θ FM (X J , Y J ) is rewritten according to equation (22). θ FM (X J , Y J ) = maximum value {0,
θ FM (X J , Y J ) + K×P×θ T2 }
...(22) After that, in step 4445-14, the number of times of feedback N FB corresponding to the rewritten map value θ FM (X J , Y J ) of the θ FM map is determined.
J , X J ) according to equation (23). N FB (X J , Y J )=N FB (X J , Y J )+k
...(23) As a result , the map value θ FM (X J ,
Y J ) remembers how much feedback has been received. In step 4445-15, 1 is added to X J to change the position of the rewritten element. In step 4445-16, the magnitude relationship between X J and X H is determined, and if X J
Proceed to step 6 to continue the rewriting operation. If X J >X H , set X L to X J in step 4445-17, and add 1 to Y in step 4445-18. Then, in step 4445-19, the magnitude relationship between X J and Y H is determined, and if Y J Y H , step 4445-6
Go to and continue the rewrite operation. If Y J > Y H , map feedback processing is ended. In the above-described map feedback processing step 4445 of FIG. 27, the range and distribution of feedback to the θ FM map are determined by the deviation △ between the feedback center ( 2 , 2 ) and the column number X of the rewritten element (X J , Y J ). Deviation between X and line number Y △ Distance l from Y
Searching for this has the following advantages: The intake manifold pressure and engine speed corresponding to each row and each column of the θ FM map and the θ PP map are the same for the sake of computational advantages. In this embodiment, the θ PP map stores the MBT, but in the low-speed portion where the value changes suddenly, the difference between the engine speeds in adjacent columns is reduced to accurately represent the MBT. In such an operating range, the feedback control value also fluctuates rapidly, so rather than determining the amount of feedback for that element based on the difference in engine speed from the feedback center, it is better to determine the amount of feedback based on the deviation of the column number. Harmonizes with the map structure. In addition, in this map feedback processing step 4445, the feedback center (
2 , 2 ) and the rewritten map value θ FM of the θ FM map
Search the distance l from the distance map (L map) using the X direction deviation △X and Y direction deviation △Y, which are obtained by multiplying the deviation of the actual coordinates of (X J , Y J ) by 4 and using only the integer part,
The feedback coefficient k is searched from the feedback coefficient map (K map) at l. Therefore 1/
Feedback coefficients can be specified for deviations for each column number and line number. Feedback performance is improved by being able to specify the feedback amount distribution in such a fine manner. FIG. 28 shows a flowchart of forgetting processing step 4600 in the base processing of FIG. 24.
In this embodiment, feedback control is performed to retard the angle when the trigger interval is small and advance the angle when it is large, and the control speed to the advance side is slower than the control speed to the retard side. Furthermore, each map value of the operating state category that is not used for a long time in the θ FM map may be far away from the current feedback target value. Therefore, there is a possibility that the feedback target value will be reached more quickly if each map value is forgotten than if it is left as is. Therefore, in this embodiment, since the control speed to the retard side is fast, all map values of the θ FM map are subtracted by a predetermined amount every minute to act as a forgetting effect. In step 4605, it is determined whether the subtraction amount calculation completed flag F1M is set to "1". If it is "0", the subtraction amount has not been calculated yet, so step 4610 is performed.
Then, the subtraction amount θfgt is calculated according to the formula (24), and in step 4615 , the elapsed time on the software in minutes is calculated. Add 1 to T. In step 4620 , the column number Xk of the map value of the θ FM map to be rewritten for forgetting is set to the lower limit of
Set the Y lower limit value Y FML of the map. Then, in step 4625, the subtraction amount calculated flag F1M is set to "1". Then, in step 4630, the map value θ FM (Xk, Yk) of the θ FM map is subtracted by θfgt, and if θ FM (Xk, Yk) < 0 in step 4640, θ FM (Xk, Yk) is subtracted in step 4645. Set to 0.
In step 4650, Xk is added by 1, and in step 4655, the magnitude relationship between Xk and the upper limit of X of the θ FM map When the forgetting process is executed in , the forgetting operation is performed on the next element of the θ FM map. If Xk > X FMH in step 4655, set X FML to Xk in step 4660, and then
At 665, add 1 to Yk. Step 467
If Yk is 0 and Y FMH is compared in size, if Yk≦Y FMH , this forgetting process is terminated and the next time the forgetting process is executed, the forgetting operation is performed on the next element of the θ FM map. It will be done. If Yk> YFMH in step 4670, step 4675 subtracts a one-minute software counter C1M by a time K1M corresponding to one minute of elapsed time. Further, in step 4680, the subtraction amount flag F1M is set to "0". Therefore, when the value of K 1M is added to C 1M again, the next forgetting process is started. In the above embodiment, the map value is rewritten or forgotten so that it converges to the target value after a predetermined time has elapsed regardless of the feedback factor. It is also possible to perform forgetting processing in conjunction with this. The outline is almost the same as the above embodiment, and the following will mainly explain the changes from the above embodiment. That is, step 3300 in the 8ms interrupt processing routine of FIG. 23 is abolished, and instead, step 2199 as shown in FIG. 29 is inserted in the program interrupt processing of FIG. 20. As a result, a program interrupt is activated every 180 degrees of engine rotation, so C 1M is 1 every 180 degrees of engine rotation.
This forgetting process is executed every 1/2K 1M engine rotation. Further, in the above embodiments, the ignition timing as a control element is feedback-controlled, but the present invention can also be applied to an apparatus that performs feedback control on the air-fuel ratio as a control element.
This will be explained below. Here, as an example, the feedback control amount is the fuel supply amount, and in particular, the control of the time width of the injection time in an engine having an electronically controlled fuel injection device will be described. The feedback factor is an air-fuel ratio signal from an air-fuel ratio sensor that detects the air-fuel ratio based on the oxygen concentration in the exhaust pipe. Signals representing engine operating conditions include engine speed N (rpm), intake air amount Q (g/
s) is used. The amount of fuel supplied per combustion (that is, equivalent to the injection time width per combustion) M is expressed by the following equation. M=Mm(N,Q)+△M(N,Q)
...(30) Mm (N, Q): A quantity calculated from the relationship between N and Q or a fixed map with N and Q as parameters. ΔM(N, Q): A rewritable feedback map value with N and Q as parameters, which directly gives the feedback control amount. Regarding the △M map, rich lean is determined based on the signal of the air-fuel ratio sensor at regular intervals using the same method as in the above embodiment, and the map amount △M of the operating state category belonging to the rotational speed N and air amount Q at that time is determined.
(Ni, Qi) is added or subtracted by a predetermined value △Mc. Also △
The M map calculates each map value △M (Ni, Qi) by S (0<S<
1) By multiplying each map value, each map value is rewritten (forgotten) so as to approach the target value 0. Therefore, only the map value △M of the operating state classification in a predetermined region normally used such as an automobile engine is updated, and the map values in other regions become old and become values far from the optimum values for feedback control. This solves the problem of worsening control responsiveness. In the above embodiment, the rewriting (forgetting) process of the feedback map value is performed by converting the map value to a constant value (θ
fgt) subtracting or multiplying the map value by a predetermined value (s), but there are also ways to search for an updated value using the map value at that time as an index, and use this searched updated value as the new map value. You can do it like this. As described above, in the present invention, the feedback control amount is calculated so that the control element that determines the engine combustion state is optimized by evaluating the feedback factor of this control element, and the control element is controlled based on this feedback control amount. A method for controlling the engine speed, wherein a value corresponding to the feedback control amount obtained by the above calculation is stored as a feedback map value in a storage device for each operating state classification in correspondence with the operating state of the engine, and the stored value is stored in a storage device for each operating state classification. In a control method in which the feedback control amount is calculated based on a map value of an operating state category corresponding to the engine operating state at that time among the feedback map values, the stored map value is set to a predetermined value regardless of the feedback factor. It is characterized by rewriting processing so that it converges to the target value as time or a predetermined engine rotation progresses. In particular, the map value of the operating state classification in the area that has not been used for a long time takes a value close to the target value. The feedback control amount calculated from the map value has the excellent effect of shortening and improving the response time until the control element is controlled to the optimum value.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実施例を示す構成図、第2
図は第1図に示す制御コンピユータのブロツク回
路図、第3図は本発明の第1図に示す実施例の説
明に供する点火時期−トルク特性図、第4〜13
図はそれぞれ第1図に示す実施例の作動説明に供
するもので、第4図はエンジンクランク角度−固
定位置処理関係図、第5図は固定進角マツプ、第
6図はフイードバツクマツプ、第7図はフイード
バツク回数マツプ、第8図はノツクインターバル
−フイードバツク量特性図、第9図は学習係数マ
ツプ特性図、第10図は距離マツプ例1、第11
図は距離マツプ例2、第12図はフイードバツク
率マツプ特性図、第13図は通電時間マツプ特性
図、第14〜28図はそれぞれ第1図の実施例の
制御プログラムのフローチヤート、第29図は本
発明の他の実施例の制御プログラムの要部のフロ
ーチヤートである。 1……エンジン、2……ノツクセンサ、6……
制御コンピユータ、7……点火コイル。
FIG. 1 is a configuration diagram showing one embodiment of the present invention, and FIG.
1 is a block circuit diagram of the control computer shown in FIG. 1; FIG. 3 is an ignition timing-torque characteristic diagram for explaining the embodiment shown in FIG. 1 of the present invention;
The figures serve to explain the operation of the embodiment shown in Fig. 1. Fig. 4 is a relationship diagram between engine crank angle and fixed position processing, Fig. 5 is a fixed advance angle map, and Fig. 6 is a feedback map. Fig. 7 is a feedback number map, Fig. 8 is a knock interval-feedback amount characteristic diagram, Fig. 9 is a learning coefficient map characteristic diagram, and Fig. 10 is a distance map example 1 and 11.
12 is a characteristic diagram of a feedback rate map, FIG. 13 is a characteristic diagram of an energization time map, FIGS. 14 to 28 are a flowchart of the control program of the embodiment shown in FIG. 1, and FIG. 29 is a diagram of distance map example 2. is a flowchart of the main part of a control program according to another embodiment of the present invention. 1...Engine, 2...Knock sensor, 6...
Control computer, 7...Ignition coil.

Claims (1)

【特許請求の範囲】[Claims] 1 エンジンの燃焼状態を決定する制御要素がこ
の制御要素のフイードバツク要因を評価すること
により最適となるようフイードバツク制御量を計
算し、このフイードバツク制御量を元にこの制御
要素を制御する方法であつて、かつ前記計算によ
り求められるフイードバツク制御量に応じた値を
フイードバツクマツプ値としてエンジンの運転状
態に対応させて運転状態区分毎に記憶装置に記憶
し、この記憶したフイードバツクマツプ値のうち
そのときのエンジン運転状態に対応した運転状態
区分のマツプ値に基づいて前記フイードバツク制
御量が算出される制御方法において、前記記憶し
たマツプ値を前記フイードバツク要因とは関係な
く所定時間又はエンジン所定回転経過に伴つて目
標値に収束するよう書換え処理することを特徴と
するエンジン制御方法。
1. A method of calculating a feedback control amount so that a control element that determines the combustion state of an engine is optimized by evaluating feedback factors of this control element, and controlling this control element based on this feedback control amount. , and a value corresponding to the feedback control amount obtained by the above calculation is stored as a feedback map value in a storage device for each operating state category in correspondence with the operating state of the engine, and among the stored feedback map values, In a control method in which the feedback control amount is calculated based on a map value of an operating state classification corresponding to the engine operating state at that time, the stored map value is calculated for a predetermined period of time or after a predetermined engine revolution, regardless of the feedback factor. An engine control method characterized by performing rewriting processing so as to converge to a target value in accordance with the engine control method.
JP957380A 1980-01-29 1980-01-29 Engine controlling method Granted JPS56106040A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP957380A JPS56106040A (en) 1980-01-29 1980-01-29 Engine controlling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP957380A JPS56106040A (en) 1980-01-29 1980-01-29 Engine controlling method

Publications (2)

Publication Number Publication Date
JPS56106040A JPS56106040A (en) 1981-08-24
JPS6212385B2 true JPS6212385B2 (en) 1987-03-18

Family

ID=11724042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP957380A Granted JPS56106040A (en) 1980-01-29 1980-01-29 Engine controlling method

Country Status (1)

Country Link
JP (1) JPS56106040A (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58176469A (en) * 1982-04-12 1983-10-15 Nippon Soken Inc Method of and apparatus for controlling air-fuel ratio of internal-combustion engine
JPS59119069A (en) * 1982-12-23 1984-07-10 Mazda Motor Corp Ignition timing controlling apparatus for engine
JPS59196951A (en) * 1983-04-22 1984-11-08 Mitsubishi Electric Corp Knocking preventing apparatus for internal-combustion engine
JPS59196953A (en) * 1983-04-22 1984-11-08 Mitsubishi Electric Corp Knocking preventing apparatus for internal-combustion engine
JPS59196952A (en) * 1983-04-22 1984-11-08 Mitsubishi Electric Corp Knock preventing apparatus for internal-combustion engine
JPS6065254A (en) * 1983-09-20 1985-04-15 Hitachi Ltd Electronic controller for internal-combustion engine
JPH0733804B2 (en) * 1984-05-12 1995-04-12 マツダ株式会社 Engine controller
JPH0617661B2 (en) * 1984-08-20 1994-03-09 富士重工業株式会社 Learning control method for automobile engine
JPS623146A (en) * 1985-06-28 1987-01-09 Japan Electronic Control Syst Co Ltd Learning control device for internal combustion engine idle speed
US7559298B2 (en) 2006-04-18 2009-07-14 Cleeves Engines Inc. Internal combustion engine
US9650951B2 (en) 2010-10-08 2017-05-16 Pinnacle Engines, Inc. Single piston sleeve valve with optional variable compression ratio capability
BR112013009242A2 (en) 2010-10-08 2016-07-26 Pinnacle Engines Inc variable compression ratio systems for opposed-piston internal combustion engines and others, and related production and use methods
US8881708B2 (en) 2010-10-08 2014-11-11 Pinnacle Engines, Inc. Control of combustion mixtures and variability thereof with engine load
US9316150B2 (en) 2012-07-02 2016-04-19 Pinnacle Engines, Inc. Variable compression ratio diesel engine

Also Published As

Publication number Publication date
JPS56106040A (en) 1981-08-24

Similar Documents

Publication Publication Date Title
JPS6212385B2 (en)
US4467765A (en) Method and system for operating an engine at maximum torque with variable amount of dither
JP3323974B2 (en) Control device for internal combustion engine
JPS5851243A (en) Method of detecting combustion condition of internal- combustion engine
JPS6246690B2 (en)
JP2749181B2 (en) Internal combustion engine operation control method and electronic control device thereof
JP3191676B2 (en) Ignition timing control device for internal combustion engine
JPH034746B2 (en)
JPS6250662B2 (en)
JPH0615842B2 (en) Fuel injection timing control device for internal combustion engine
JP2000205025A (en) Engine control device
JP2006214408A (en) Control device for internal combustion engine
JPH0711265B2 (en) Knotting control method for internal combustion engine
JPH0411742B2 (en)
JP2625763B2 (en) Ignition timing control device for internal combustion engine
JP2543380B2 (en) Knocking control device for internal combustion engine
JPH0826838B2 (en) Ignition timing control method for internal combustion engine
JPH0472987B2 (en)
JP2629204B2 (en) Ignition timing control device for internal combustion engine
JPH0826839B2 (en) Ignition timing control method for internal combustion engine
JPH029184B2 (en)
JPH0256516B2 (en)
JP2546368B2 (en) Internal combustion engine speed control device
JPS59138773A (en) Control method for knocking of internal-combustion engine
JPH03141846A (en) Knocking detecting device for internal combustion engine