JP3303732B2 - Control device for internal combustion engine - Google Patents
Control device for internal combustion engineInfo
- Publication number
- JP3303732B2 JP3303732B2 JP19283797A JP19283797A JP3303732B2 JP 3303732 B2 JP3303732 B2 JP 3303732B2 JP 19283797 A JP19283797 A JP 19283797A JP 19283797 A JP19283797 A JP 19283797A JP 3303732 B2 JP3303732 B2 JP 3303732B2
- Authority
- JP
- Japan
- Prior art keywords
- fuel ratio
- air
- cylinder
- crank angle
- misfire
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Electrical Control Of Ignition Timing (AREA)
Description
【0001】[0001]
【発明の属する技術分野】本発明は、内燃機関の制御装
置、特に少なくとも所定運転状態において空燃比を理論
空燃比よりリーン側に制御する内燃機関の制御装置に関
する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a control device for an internal combustion engine, and more particularly to a control device for an internal combustion engine that controls an air-fuel ratio to be leaner than a stoichiometric air-fuel ratio at least in a predetermined operating state.
【0002】[0002]
【従来の技術】燃料消費率を低減するために、少なくと
も所定運転状態において理論空燃比よりリーンな空燃比
で燃焼を行う希薄燃焼内燃機関が公知である。希薄燃焼
において、空燃比をリーンにするほどNOX 発生量が少
なくなり、さらなる燃料消費率の低減も実現されるため
に、燃焼が悪化しない程度に空燃比をリーンとすること
が好ましい。2. Description of the Related Art In order to reduce the fuel consumption rate, there is known a lean burn internal combustion engine which burns at an air-fuel ratio leaner than a stoichiometric air-fuel ratio at least in a predetermined operation state. In lean combustion, the less the more NO X generation amount to the air-fuel ratio to lean, in order to be implemented further reduction in fuel consumption rate, it is preferable that the air-fuel ratio lean to the extent that combustion is not deteriorated.
【0003】それにより、希薄燃焼内燃機関において、
各気筒におけるトルク変動量を監視し、各気筒のトルク
変動量の平均値を目標トルク変動量にするように空燃比
を緩やかに制御することによって、可能な限り空燃比を
リーンにするリーンリミット制御が提案されている。こ
のようなリーンリミット制御においては、各気筒毎の正
確なトルク変動量を把握することが必要である。そのた
めには、各気筒毎に燃焼圧センサを設ければよいが、か
なりのコストアップとなる。[0003] Accordingly, in a lean burn internal combustion engine,
Lean limit control that monitors the amount of torque fluctuation in each cylinder and gently controls the air-fuel ratio so that the average value of the amount of torque fluctuation in each cylinder becomes the target amount of torque fluctuation, thereby making the air-fuel ratio as lean as possible Has been proposed. In such lean limit control, it is necessary to grasp an accurate torque fluctuation amount for each cylinder. For this purpose, a combustion pressure sensor may be provided for each cylinder, but this considerably increases the cost.
【0004】特公平7−33809号公報には、高価な
燃焼圧センサを使用することなく、内燃機関の一般的な
制御に必要とされるクランク角センサを利用して各気筒
毎の正確なトルク変動を算出し、前述のリーンリミット
燃料噴射量制御を実施することが開示されている。Japanese Patent Publication No. 7-33809 discloses an accurate torque for each cylinder utilizing a crank angle sensor required for general control of an internal combustion engine without using an expensive combustion pressure sensor. It is disclosed that the fluctuation is calculated and the above-described lean limit fuel injection amount control is performed.
【0005】[0005]
【発明が解決しようとする課題】前述の従来技術によれ
ば、通常時であれば、燃料消費率及びNOX 発生量が大
巾に低減された希薄燃焼を、高価な燃焼圧センサを使用
することなく実現することができる。しかしながら、希
薄燃焼では失火が発生し易く、例えば、一つの気筒で燃
焼が途中で終了するような軽度の失火が発生した場合
に、各気筒のトルク変動量の平均値に応じた緩やかな空
燃比制御では、このような失火を抑制することができな
いだけでなく、全く燃焼が起こらない重度の失火に発展
させる可能性もある。According to the 0005] The foregoing prior art, if the normal time, fuel consumption and NO X generation amount of reduced lean combustion by a large margin, the use of expensive combustion pressure sensor It can be realized without. However, in lean combustion, misfires are likely to occur. The control cannot not only suppress such misfires, but also may lead to severe misfires in which no combustion occurs.
【0006】従って、本発明の目的は、クランク角セン
サを使用して失火を確実に検出すると共に、この失火を
確実に抑制可能な内燃機関の制御装置を提供することで
ある。SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a control device for an internal combustion engine which can reliably detect misfire by using a crank angle sensor and can surely suppress the misfire.
【0007】[0007]
【0008】[0008]
【課題を解決するための手段】本発明による請求項1に
記載の内燃機関の制御装置は、少なくとも所定運転状態
において空燃比を理論空燃比よりリーン側に制御する内
燃機関の制御装置において、圧縮行程末期から爆発行程
初期までのクランク角度範囲内に第1のクランク角度範
囲を設定すると共に前記第1のクランク角度範囲から一
定のクランク角を隔てた爆発行程中期のクランク角度範
囲内に第2のクランク角度範囲を設定して前記第1のク
ランク角度範囲内におけるクランクシャフトの第1の角
速度を検出すると共に前記第2のクランク角度範囲内に
おけるクランクシャフトの第2の角速度を検出し、前記
第1の角速度および前記第2の角速度に基づき各気筒が
発生する駆動力変動量を演算する駆動力変動量演算手段
と、前記駆動力変動量演算手段により演算された各気筒
の前記駆動力変動量の平均値が目標駆動力変動量となる
ように空燃比を制御する第1空燃比制御手段と、前記駆
動力変動量演算手段により演算された少なくとも一つの
気筒の前記駆動力変動量の大きさに応じて失火レベルを
判定する失火レベル判定手段と、失火が発生して前記失
火レベル判定手段により判定された前記失火レベルが第
1レベルを越えるときに前記第1空燃比制御手段による
空燃比制御を中止して前記失火レベルに応じて空燃比を
制御する第2空燃比制御手段とを具備することを特徴と
する。According to a first aspect of the present invention, there is provided a control apparatus for an internal combustion engine for controlling an air-fuel ratio to be leaner than a stoichiometric air-fuel ratio in at least a predetermined operating state. The first crank angle range is set within the crank angle range from the end of the stroke to the beginning of the explosion stroke, and the second crank angle is set within the crank angle range of the middle of the explosion stroke separated by a certain crank angle from the first crank angle range. Setting a crank angle range to detect a first angular velocity of the crankshaft within the first crank angle range and detecting a second angular velocity of the crankshaft within the second crank angle range; A driving force variation calculating means for calculating a driving force variation generated by each cylinder based on the angular velocity of the cylinder and the second angular velocity; First air-fuel ratio control means for controlling the air-fuel ratio so that the average value of the driving force fluctuation amount of each cylinder calculated by the amount calculating means becomes the target driving force fluctuation amount, and calculation by the driving force fluctuation amount calculating means A misfire level judging means for judging a misfire level in accordance with the magnitude of the driving force variation of at least one of the cylinders, and a misfire level determined by the misfire level judging means as a first level. And a second air-fuel ratio control means for stopping the air-fuel ratio control by the first air-fuel ratio control means and controlling the air-fuel ratio in accordance with the misfire level.
【0009】また、本発明による請求項2に記載の内燃
機関の制御装置は、請求項1に記載の内燃機関の制御装
置において、前記失火レベル判定手段により判定された
前記失火レベルが前記第1レベルより大きな第2レベル
を越えたときには、その後、前記第1空燃比制御手段又
は前記第2空燃比制御手段による空燃比制御において前
記失火レベルが前記第2レベルを越えたときの空燃比よ
りリーンとならないようにガードするガード手段をさら
に具備することを特徴とする。According to a second aspect of the present invention, in the control device for an internal combustion engine according to the first aspect, the misfire level determined by the misfire level determining means is equal to the first misfire level. When the misfire level exceeds the second level, the air-fuel ratio is leaner than the air-fuel ratio when the misfire level exceeds the second level in the air-fuel ratio control by the first air-fuel ratio control means or the second air-fuel ratio control means. It is further characterized by further comprising a guard means for guarding against occurrence.
【0010】また、本発明による請求項3に記載の内燃
機関の制御装置は、少なくとも所定運転状態において空
燃比を理論空燃比よりリーン側に制御する内燃機関の制
御装置において、圧縮行程末期から爆発行程初期までの
クランク角度範囲内に第1のクランク角度範囲を設定す
ると共に前記第1のクランク角度範囲から一定のクラン
ク角を隔てた爆発行程中期のクランク角度範囲内に第2
のクランク角度範囲を設定して前記第1のクランク角度
範囲内におけるクランクシャフトの第1の角速度を検出
すると共に前記第2のクランク角度範囲内におけるクラ
ンクシャフトの第2の角速度を検出し、前記第1の角速
度および前記第2の角速度に基づき各気筒が発生する駆
動力変動量を演算する駆動力変動量演算手段と、前記駆
動力変動量演算手段により演算された各気筒の前記駆動
力変動量の平均値が目標駆動力変動量となるように空燃
比を制御する空燃比制御手段と、機関運転状態に基づき
算出された最適点火時期となるように点火時期を制御す
る点火時期制御手段と、前記駆動力変動量演算手段によ
り演算された少なくとも一つの気筒の前記駆動力変動量
の大きさに応じて失火レベルを判定する失火レベル判定
手段と、前記失火レベル判定手段により判定された前記
失火レベルに応じて前記最適点火時期を補正する点火時
期補正手段とを具備することを特徴とする。According to a third aspect of the present invention, there is provided a control apparatus for an internal combustion engine for controlling an air-fuel ratio to be leaner than a stoichiometric air-fuel ratio at least in a predetermined operating state. The first crank angle range is set within the crank angle range up to the beginning of the stroke, and the second crank angle range is set within the mid-explosion stroke crank angle range separated by a certain crank angle from the first crank angle range.
And detecting a first angular velocity of the crankshaft within the first crank angle range and detecting a second angular velocity of the crankshaft within the second crank angle range. Driving force variation calculating means for calculating a driving force variation generated by each cylinder based on the first angular velocity and the second angular velocity; and the driving force variation of each cylinder calculated by the driving force variation calculating means Air-fuel ratio control means for controlling the air-fuel ratio so that the average value of the target driving force fluctuation amount, and ignition timing control means for controlling the ignition timing so as to be the optimal ignition timing calculated based on the engine operating state, A misfire level determining means for determining a misfire level according to the magnitude of the driving force fluctuation amount of at least one cylinder calculated by the driving force fluctuation amount calculating means; Depending on the misfire level determined by Bell determining means characterized by comprising an ignition timing correction means for correcting the optimum ignition timing.
【0011】[0011]
【発明の実施の形態】図1を参照すると、1は1番気筒
#1、2番気筒#2、3番気筒#3、4番気筒#4から
なる4つの気筒を具備した機関本体を示す。各気筒#
1,#2,#3,#4は夫々対応する吸気枝管2を介し
てサージタンク3に連結され、各吸気枝管2内には夫々
対応する吸気ポート内に向って燃料を噴射する燃料噴射
弁4が取付けられる。サージタンク3は吸気ダクト5お
よびエアフローメータ6を介してエアクリーナ7に連結
され、吸気ダクト5内にはスロットル弁8が配置され
る。一方、各気筒#1,#2,#3,#4は排気マニホ
ルド9および排気管10を介してNOx 吸収剤11を内
蔵したケーシング12に連結される。このNOx 吸収剤
11は空燃比がリーンのときに排気ガス中に含まれるN
Ox を吸収し、空燃比が理論空燃比又はリッチになると
吸収したNOx を放出しかつ還元する機能を有する。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring to FIG. 1, reference numeral 1 denotes an engine main body having four cylinders including a first cylinder # 1, a second cylinder # 2, a third cylinder # 3, and a fourth cylinder # 4. . Each cylinder #
1, # 2, # 3, and # 4 are connected to the surge tank 3 via the corresponding intake branch pipes 2, and each fuel branch pipe 2 has a fuel that injects fuel toward the corresponding intake port. The injection valve 4 is attached. The surge tank 3 is connected to an air cleaner 7 via an intake duct 5 and an air flow meter 6, and a throttle valve 8 is arranged in the intake duct 5. On the other hand, the cylinders # 1, # 2, # 3, # 4 is connected to the casing 12 with a built-in the NO x absorbent 11 via an exhaust manifold 9 and an exhaust pipe 10. This the NO x absorbent 11 is N the air-fuel ratio in the exhaust gas when the lean
It has a function of absorbing O x and releasing and reducing the absorbed NO x when the air-fuel ratio becomes stoichiometric or rich.
【0012】電子制御ユニット20はディジタルコンピ
ュータからなり、双方向性バス21によって相互に接続
されたROM(リードオンリメモリ)22、RAM(ラ
ンダムアクセスメモリ)23、CPU(マイクロプロセ
ッサ)24、常時電源に接続されたバックアップRAM
25、入力ポート26および出力ポート27を具備す
る。機関の出力軸13には外歯付ロータ14が取付けら
れ、ロータ14の外歯に対面して電磁ピックアップから
なるクランク角センサ15が配置される。図1に示され
る実施例ではロータ14の外周上に30°クランク角度
毎に外歯が形成されており、例えば1番気筒の圧縮上死
点を検出するために一部の外歯が削除されている。従っ
てこの外歯が削除された部分、即ち欠歯部分を除いてク
ランク角センサ15は出力軸13が30°クランク角度
回転する毎に出力パルスを発生し、この出力パルスが入
力ポート26に入力される。The electronic control unit 20 is composed of a digital computer, and is connected to a ROM (read only memory) 22, a RAM (random access memory) 23, a CPU (microprocessor) 24, and a power supply connected to each other by a bidirectional bus 21. Backup RAM connected
25, an input port 26 and an output port 27. A rotor 14 with external teeth is attached to the output shaft 13 of the engine, and a crank angle sensor 15 composed of an electromagnetic pickup is arranged facing the external teeth of the rotor 14. In the embodiment shown in FIG. 1, external teeth are formed on the outer periphery of the rotor 14 at every 30 ° crank angle. For example, some external teeth are deleted in order to detect the compression top dead center of the first cylinder. ing. Therefore, the crank angle sensor 15 generates an output pulse every time the output shaft 13 rotates by 30 ° crank angle except for the portion where the external teeth are deleted, that is, the missing tooth portion, and the output pulse is input to the input port 26. You.
【0013】エアフローメータ6は吸入空気量に比例し
た出力電圧を発生し、この出力電圧が対応するAD変換
器28を介して入力ポート26に入力される。また、ス
ロットル弁8にはスロットル弁8がアイドリング開度に
あることを検出するためのアイドルスイッチ16が取付
けられ、このアイドルスイッチ16の出力信号が入力ポ
ート26に入力される。また、排気マニホルド9内には
空燃比を検出するための空燃比センサ(O2 センサ)1
7が配置されており、この空燃比センサ17の出力信号
が対応するAD変換器28を介して入力ポート26に入
力される。一方、出力ポート27は対応する駆動回路2
9を介して各燃料噴射弁4に接続される。40は、各気
筒に配置された点火プラグである。出力ポート27は対
応する駆動回路30を介して各点火プラグ40に接続さ
れ、点火時期制御が実施される。The air flow meter 6 generates an output voltage proportional to the amount of intake air, and the output voltage is input to an input port 26 via a corresponding AD converter 28. An idle switch 16 for detecting that the throttle valve 8 is at an idling opening is attached to the throttle valve 8, and an output signal of the idle switch 16 is input to an input port 26. An air-fuel ratio sensor (O 2 sensor) 1 for detecting an air-fuel ratio is provided in the exhaust manifold 9.
The output signal of the air-fuel ratio sensor 17 is input to the input port 26 via the corresponding AD converter 28. On the other hand, the output port 27 is connected to the corresponding drive circuit 2
9 is connected to each fuel injection valve 4. Reference numeral 40 denotes a spark plug arranged in each cylinder. The output port 27 is connected to each ignition plug 40 via the corresponding drive circuit 30, and the ignition timing is controlled.
【0014】図1に示す内燃機関では燃料噴射時間TA
Uが次式に基づいて算出される。 TAU=TP・FLEAN・FLLFB・FAF+TA
UV ここでTPは基本燃料噴射時間を、FLEANはリーン
補正係数を、FLLFBはリーンリミットフィードバッ
ク補正係数を、FAFは理論空燃比フィードバック補正
係数を、TAUVは無効噴射時間を夫々示している。In the internal combustion engine shown in FIG. 1, the fuel injection time TA
U is calculated based on the following equation. TAU = TP ・ FLEAN ・ FLLFB ・ FAF + TA
UV Here, TP indicates a basic fuel injection time, FLEAN indicates a lean correction coefficient, FLLFB indicates a lean limit feedback correction coefficient, FAF indicates a stoichiometric air-fuel ratio feedback correction coefficient, and TAUV indicates an invalid injection time.
【0015】基本燃料噴射時間TPは空燃比を理論空燃
比とするのに必要な噴射時間を示している。この基本燃
料噴射時間TPは実験により求められ、この基本燃料噴
射時間TPは機関負荷Q/N(吸入空気量Q/機関回転
数N)および機関回転数Nの関数として図2に示すマッ
プの形で予めROM22内に記憶されている。リーン補
正係数FLEANは空燃比をリーン空燃比とするための
補正係数であり、このリーン補正係数FLEANは機関
負荷Q/Nおよび機関回転数Nの関数として図4に示す
マップの形で予めROM22内に記憶されている。The basic fuel injection time TP indicates an injection time required to make the air-fuel ratio a stoichiometric air-fuel ratio. The basic fuel injection time TP is obtained by an experiment. The basic fuel injection time TP is a function of the engine load Q / N (intake air amount Q / engine speed N) and the engine speed N in the form of the map shown in FIG. Is stored in the ROM 22 in advance. The lean correction coefficient FLEAN is a correction coefficient for making the air-fuel ratio a lean air-fuel ratio. The lean correction coefficient FLEAN is stored in the ROM 22 in advance as a function of the engine load Q / N and the engine speed N in the form of a map shown in FIG. Is stored in
【0016】リーンリミットフィードバック補正係数F
LLFBは空燃比をリーン限界に維持するための補正係
数である。本発明による実施例では吸入空気量Qと機関
回転数Nに対してリーン空燃比フィードバック制御に対
する学習領域が図5に示されるように例えば9つの領域
で分けられており、各学習領域に対して夫々リーンリミ
ットフィードバック補正係数FLLFB11〜FLLFB
33が設定されている。The lean limit feedback correction coefficient F
LLFB is a correction coefficient for maintaining the air-fuel ratio at the lean limit. In the embodiment according to the present invention, the learning region for the lean air-fuel ratio feedback control is divided into, for example, nine regions with respect to the intake air amount Q and the engine speed N as shown in FIG. Lean limit feedback correction coefficients FLLFFB 11 to FLLFB, respectively
33 is set.
【0017】理論空燃比フィードバック補正係数FAF
は空燃比を理論空燃比に維持するための係数である。理
論空燃比フィードバック補正係数FAFは空燃比を理論
空燃比に維持すべきときに空燃比センサ17の出力信号
に基づいて制御され、このとき理論空燃比フィードバッ
ク補正係数FAFはほぼ1.0を中心として上下動す
る。The stoichiometric air-fuel ratio feedback correction coefficient FAF
Is a coefficient for maintaining the air-fuel ratio at the stoichiometric air-fuel ratio. The stoichiometric air-fuel ratio feedback correction coefficient FAF is controlled based on the output signal of the air-fuel ratio sensor 17 when the air-fuel ratio is to be maintained at the stoichiometric air-fuel ratio. Move up and down.
【0018】図4に示されるように破線により囲まれた
運転領域内については機関の運転状態に応じてリーン補
正係数FLEANが定められており、この運転領域内で
は空燃比がリーン空燃比に維持される。これに対して図
4の破線で囲まれた領域外の運転領域では空燃比が理論
空燃比に維持される。空燃比を理論空燃比に維持すべき
ときにはリーン補正係数FLEANおよびリーンリミッ
トフィードバック補正係数FLLFBは1.0に固定さ
れ、理論空燃比フィードバック補正係数FAFが空燃比
センサ17の出力信号に基づいて制御される。As shown in FIG. 4, a lean correction coefficient FLEAN is determined in accordance with the operating state of the engine in an operating region surrounded by a broken line, and the air-fuel ratio is maintained at a lean air-fuel ratio in this operating region. Is done. On the other hand, the air-fuel ratio is maintained at the stoichiometric air-fuel ratio in the operation region outside the region surrounded by the broken line in FIG. When the air-fuel ratio is to be maintained at the stoichiometric air-fuel ratio, the lean correction coefficient FLEAN and the lean limit feedback correction coefficient FLLFB are fixed to 1.0, and the stoichiometric air-fuel ratio feedback correction coefficient FAF is controlled based on the output signal of the air-fuel ratio sensor 17. You.
【0019】一方、空燃比をリーン空燃比に維持すべき
ときには理論空燃比フィードバック補正係数FAFが
1.0に固定され、即ち空燃比センサ17の出力信号に
基づくフィードバック制御が停止され、リーン補正係数
FLEANとリーンリミットフィードバック補正係数F
LLFBとにより空燃比がリーン限界の空燃比に制御さ
れる。On the other hand, when the air-fuel ratio is to be maintained at the lean air-fuel ratio, the stoichiometric air-fuel ratio feedback correction coefficient FAF is fixed at 1.0, that is, the feedback control based on the output signal of the air-fuel ratio sensor 17 is stopped, and the lean correction coefficient FLEAN and lean limit feedback correction coefficient F
The air-fuel ratio is controlled to the lean-limit air-fuel ratio by the LLFB.
【0020】次に図3を参照しつつリーンリミットフィ
ードバック制御について説明する。図3は機関出力トル
ク変動量およびNOx 発生量と空燃比との関係を示して
いる。空燃比がリーンになるほど燃料消費率は小さくな
り、また空燃比がリーンになるほどNOx の発生量が少
なくなる。従ってこれらの点からみると空燃比はできる
だけリーンにすることが好ましいことになる。ところが
空燃比が或る程度以上リーンになると燃焼が不安定とな
り、その結果図3に示されるようにトルク変動量が大き
くなる。そこで本発明による実施例では図3に示される
ようにトルク変動が増大し始める空燃比制御領域内に空
燃比を維持するようにしている。Next, the lean limit feedback control will be described with reference to FIG. Figure 3 shows the relationship between the engine output torque variation amount and NO x generation amount and the air-fuel ratio. Fuel consumption rate as the air-fuel ratio is lean becomes small, and the generation amount of the more NO x air-fuel ratio becomes lean is reduced. Therefore, from these points, it is preferable that the air-fuel ratio be as lean as possible. However, when the air-fuel ratio becomes lean to a certain degree or more, combustion becomes unstable, and as a result, the amount of torque fluctuation increases as shown in FIG. Therefore, in the embodiment according to the present invention, as shown in FIG. 3, the air-fuel ratio is maintained within the air-fuel ratio control region where the torque fluctuation starts to increase.
【0021】即ち具体的に云うとリーン補正係数FLE
ANはリーンリミットフィードバック補正係数FLLF
BをFLLFB=1.0としたときに空燃比が図3に示
される空燃比制御領域の中央部となるように定められて
いる。一方、リーンリミットフィードバック補正係数F
LLFBはトルク変動量に応じて図3に示されるトルク
変動制御領域内において制御され、トルク変動量が大き
くなればリーンリミットフィードバック補正係数FLL
FBが増大せしめられ、即ち空燃比が小さくされ、トル
ク変動量が小さくなればリーンリミットフィードバック
補正係数FLLFBが減少せしめられ、即ち空燃比が大
きくされる。このようにして空燃比が図3に示される空
燃比制御領域内に制御される。That is, specifically, the lean correction coefficient FLE
AN is the lean limit feedback correction coefficient FLLF
When B is set to FLLFFB = 1.0, the air-fuel ratio is determined to be at the center of the air-fuel ratio control region shown in FIG. On the other hand, the lean limit feedback correction coefficient F
LLFB is controlled in the torque fluctuation control region shown in FIG. 3 in accordance with the torque fluctuation amount, and when the torque fluctuation amount becomes large, the lean limit feedback correction coefficient FLL
When FB is increased, that is, the air-fuel ratio is reduced, and the torque fluctuation amount is reduced, the lean limit feedback correction coefficient FLLFB is reduced, that is, the air-fuel ratio is increased. Thus, the air-fuel ratio is controlled within the air-fuel ratio control region shown in FIG.
【0022】なお、リーンリミットフィードバック補正
係数FLLFBはリーン補正係数FLEANが定められ
ている機関運転領域をカバーするように設定されてい
る。トルク変動量が図3に示されるトルク変動制御領域
内に制御されると良好な車両の運転性を確保しつつ燃料
消費率およびNOx の発生量を大巾に低減することがで
きる。ただし、このようにトルク変動量をトルク変動制
御領域内に制御するためにはトルク変動量を検出しなけ
ればならない。Note that the lean limit feedback correction coefficient FLLFB is set so as to cover the engine operating region in which the lean correction coefficient FLEAN is determined. Can amount of torque fluctuation is reduced by a large margin the generation amount of the fuel consumption rate and NO x while ensuring the operation of the good vehicle when it is controlled to within the torque fluctuation control region shown in FIG. However, in order to control the amount of torque fluctuation within the torque fluctuation control region, the amount of torque fluctuation must be detected.
【0023】ところでトルク変動量を算出する方法は従
来より種々の方法が提案されている。代表的な例を挙げ
ると燃焼室内に燃焼圧センサを取付けてこの燃焼圧セン
サの出力信号に基づきトルク変動量を算出する方法や、
圧縮行程末期から爆発行程初期までのクランク角度領域
内の第1の角速度ωaの2乗と、爆発行程中期のクラン
ク角度領域内の第2の角速度ωbの2乗との差に基づい
てトルク変動量を算出する方法が挙げられる。By the way, various methods have been conventionally proposed for calculating the amount of torque fluctuation. A typical example is a method of mounting a combustion pressure sensor in a combustion chamber and calculating a torque fluctuation amount based on an output signal of the combustion pressure sensor,
The amount of torque fluctuation based on the difference between the square of the first angular velocity ωa in the crank angle region from the end of the compression stroke to the early stage of the explosion stroke and the square of the second angular velocity ωb in the crank angle region in the middle of the explosion stroke. Is calculated.
【0024】燃焼圧センサを用いると燃焼圧センサを取
付けた気筒が発生するトルクを確実に検出することがで
きるという利点がある反面、燃焼圧センサが必要である
という欠点を有している。これに対して角速度ωa,ω
bは従来より内燃機関が備えているクランク角センサの
出力信号から算出することができるので角速度ωa,ω
bに基づき出力トルクを算出するようにした場合には新
たなセンサを設ける必要がないという利点がある。ただ
し、この場合、機関駆動系が捩り振動を生ずるとトルク
変動量を正確に検出できなくなるという問題を有してい
る。しかしながらこの問題を解決しさえすれば新たなセ
ンサを必要としない角速度に基づくトルク算出方法の方
が好ましいことは明らかである。そこで本実施形態にお
いては、発生トルクを角速度に基づき算出するように
し、その際機関駆動系が捩り振動を生じたとしてもトル
ク変動量を正確に検出しうるようにしている。The use of a combustion pressure sensor has the advantage that the torque generated by the cylinder to which the combustion pressure sensor is attached can be reliably detected, but has the disadvantage that a combustion pressure sensor is required. On the other hand, the angular velocities ωa, ω
b can be calculated from the output signal of the crank angle sensor provided in the internal combustion engine, so that the angular velocities ωa, ω
When the output torque is calculated based on b, there is an advantage that it is not necessary to provide a new sensor. However, in this case, if the engine drive system generates torsional vibration, there is a problem that the amount of torque fluctuation cannot be accurately detected. However, it is clear that a torque calculation method based on angular velocity that does not require a new sensor is preferable as long as this problem is solved. Therefore, in the present embodiment, the generated torque is calculated based on the angular velocity, and at this time, even if the engine drive system generates torsional vibration, the amount of torque fluctuation can be accurately detected.
【0025】次に機関の出力変動およびトルク変動を算
出するための方法について説明する。まず初めに、機関
駆動系が捩り振動を生じていない定常運転時を示す図6
(A),(B)を参照しつつ各気筒が発生する駆動力お
よび各気筒が発生するトルクを算出する方法について説
明する。前述したようにクランク角センサ15はクラン
クシャフトが30°クランク角度回転する毎に出力パル
スを発生し、更にクランク角センサ15は各気筒#1,
#2,#3,#4の圧縮上死点TDCにおいて出力パル
スを発生するように配置されている。従ってクランク角
センサ15は各気筒#1,#2,#3,#4の圧縮上死
点TDCから30°クランク角毎に出力パルスを発生す
ることになる。なお、本実施形態において用いられてい
る内燃機関の点火順序は1−3−4−2である。Next, a method for calculating the output fluctuation and the torque fluctuation of the engine will be described. First, FIG. 6 shows a time of steady operation in which the engine drive system does not generate torsional vibration.
A method of calculating the driving force generated by each cylinder and the torque generated by each cylinder will be described with reference to (A) and (B). As described above, the crank angle sensor 15 generates an output pulse every time the crankshaft rotates by 30 ° crank angle.
It is arranged to generate an output pulse at the compression top dead center TDC of # 2, # 3 and # 4. Therefore, the crank angle sensor 15 generates an output pulse every 30 ° crank angle from the compression top dead center TDC of each of the cylinders # 1, # 2, # 3, and # 4. The ignition sequence of the internal combustion engine used in the present embodiment is 1-3-4-2.
【0026】図6(A),(B)において縦軸T30は
クランク角センサ15が出力パルスを発生してから次の
出力パルスを発生するまでの30°クランク角度の経過
時間を表わしている。また、Ta(i)はi番気筒の圧
縮上死点(以下TDCと称す)から圧縮上死点後(以下
ATDCと称す)30°までの経過時間を示しており、
Tb(i)はi番気筒のATDC60°からATDC9
0°までの経過時間を示している。従って例えばTa
(1)は1番気筒のTDCからATDC30°までの経
過時間を示しており、Tb(1)は1番気筒のATDC
60°からATDC90°までの経過時間を示している
ことになる。一方、30°クランク角度を経過時間T3
0で除算するとこの除算結果は角速度ωを表わしてい
る。本発明による実施例では30°クランク角度/Ta
(i)をi番気筒における第1の角速度ωaと称し、3
0°クランク角度/Tb(i)をi番気筒における第2
の角速度ωbと称する。従って30°クランク角度/T
a(1)は1番気筒の第1の角速度ωaを表わし、30
°クランク角度/Tb(1)は1番気筒の第2の角速度
ωbを表わすことになる。6 (A) and 6 (B), the vertical axis T30 represents the elapsed time of 30 ° crank angle from the time when the crank angle sensor 15 generates an output pulse to the time when the next output pulse is generated. Further, Ta (i) indicates the elapsed time from the compression top dead center (hereinafter, referred to as TDC) of the i-th cylinder to 30 ° after the compression top dead center (hereinafter, referred to as ATDC),
Tb (i) is from ATDC60 ° of the i-th cylinder to ATDC9
The elapsed time up to 0 ° is shown. Therefore, for example, Ta
(1) indicates the elapsed time from TDC of the first cylinder to 30 ° ATDC, and Tb (1) indicates the ATDC of the first cylinder.
This indicates the elapsed time from 60 ° to ATDC 90 °. On the other hand, the 30 ° crank angle is changed to the elapsed time T3
When divided by 0, the result of the division represents the angular velocity ω. In the embodiment according to the present invention, 30 ° crank angle / Ta
(I) is referred to as a first angular velocity ωa in the i-th cylinder, and 3
0 ° crank angle / Tb (i) is set to the second
Is referred to as the angular velocity ωb. Therefore, 30 ° crank angle / T
a (1) represents the first angular velocity ωa of the first cylinder,
° Crank angle / Tb (1) represents the second angular velocity ωb of the first cylinder.
【0027】図6(A),(B)の1番気筒に注目して
みると、燃焼が開始されて燃焼圧が高まると経過時間が
Ta(1)からTb(1)まで低下し、次いでTb
(1)から再び上昇する。云い換えるとクランクシャフ
トの角速度ωが第1の角速度ωaから第2の角速度ωb
まで上昇し、次いで第2の角速度ωbから再び下降す
る。即ち、燃焼圧によってクランクシャフトの角速度ω
が第1の角速度ωaから第2の角速度ωbへと増大せし
められたことになる。図6(A)は燃焼圧が比較的高い
場合を示しており、図6(B)は燃焼圧が比較的低い場
合を示している。図6(A),(B)から燃焼圧が高い
場合には燃焼圧が低い場合に比べて経過時間の減少量
(Ta(i)−Tb(i))が大きくなり、従って角速
度ωの増大量(ωb−ωa)が大きくなる。燃焼圧が高
くなればその気筒の発生する駆動力が大きくなり、従っ
て角速度ωの増大量(ωb−ωa)が大きくなれば気筒
の発生する駆動力が大きくなることになる。従って第1
の角速度ωaと第2の角速度ωbとの差(ωb−ωa)
から気筒の発生する駆動力を算出することができる。Looking at the first cylinder in FIGS. 6A and 6B, when the combustion starts and the combustion pressure increases, the elapsed time decreases from Ta (1) to Tb (1), and then. Tb
It rises again from (1). In other words, the angular velocity ω of the crankshaft is changed from the first angular velocity ωa to the second angular velocity ωb
And then fall again from the second angular velocity ωb. That is, the angular velocity ω of the crankshaft is determined by the combustion pressure.
Has been increased from the first angular velocity ωa to the second angular velocity ωb. FIG. 6A shows a case where the combustion pressure is relatively high, and FIG. 6B shows a case where the combustion pressure is relatively low. 6A and 6B, when the combustion pressure is high, the amount of decrease in the elapsed time (Ta (i) −Tb (i)) is greater than when the combustion pressure is low, and therefore the angular velocity ω is increased. The large amount (ωb−ωa) increases. When the combustion pressure increases, the driving force generated by the cylinder increases. Therefore, when the increase amount (ωb−ωa) of the angular velocity ω increases, the driving force generated by the cylinder increases. Therefore the first
(Ωb−ωa) between the second angular velocity ωb and the second angular velocity ωa
, The driving force generated by the cylinder can be calculated.
【0028】一方、機関の回転慣性モーメントをIとす
ると燃焼圧によって運動エネルギが(1/2)Iωa2
から(1/2)Iωb2 に増大せしめられる。この運動
エネルギの増大量(1/2)・I・(ωb2 −ωa2 )
はその気筒が発生するトルクを表わしており、従って第
1の角速度ωaの2乗と第2の角速度ωbの2乗との差
(ωb2 −ωa2 )から気筒の発生するトルクを算出で
きることになる。On the other hand, assuming that the rotational inertia moment of the engine is I, the kinetic energy is (1/2) Iωa 2 due to the combustion pressure.
From () Iωb 2 . Increased amount of kinetic energy (1/2) · I · (ωb 2 -ωa 2)
It is capable of calculating the square and the torque generated by the cylinder from the difference (ωb 2 -ωa 2) of the square of the second angular velocity [omega] b for represents the torque that cylinder will occur, thus the first angular velocity ωa Become.
【0029】このように第1の角速度ωaと第2の角速
度ωbを検出すればこれらの検出値から対応する気筒の
発生する駆動力および対応する気筒の発生するトルクを
算出できることになる。なお、図6(A),(B)に示
される経過時間T30の変化は機関によって若干異な
り、従って第1の角速度ωaを検出すべきクランク角度
範囲および第2の角速度ωbを検出すべきクランク角度
範囲は機関に応じて(ωb−ωa)が機関の発生する駆
動力を最もよく表わすように、或いは(ωb2 −ω
a2 )が機関の発生するトルクを最もよく表わすように
定められる。従って機関によっては第1の角速度ωaを
検出すべきクランク角度範囲が圧縮上死点前BTDC3
0°からTDCであり、第2の角速度ωbを検出すべき
クランク角度範囲がATDC90°からATDC120
°となることもあり得る。By detecting the first angular velocity ωa and the second angular velocity ωb as described above, the driving force generated by the corresponding cylinder and the torque generated by the corresponding cylinder can be calculated from these detected values. The changes in the elapsed time T30 shown in FIGS. 6A and 6B slightly differ depending on the engine. Therefore, the crank angle range for detecting the first angular velocity ωa and the crank angle for detecting the second angular velocity ωb The range is set so that (ωb−ωa) best represents the driving force generated by the engine, or (ωb 2 −ω) depending on the engine.
a 2 ) is determined to best represent the torque generated by the engine. Therefore, depending on the engine, the crank angle range in which the first angular velocity ωa should be detected is BTDC3 before compression top dead center.
0 ° to TDC, and the crank angle range in which the second angular velocity ωb is to be detected is from ATDC90 ° to ATDC120.
°.
【0030】従って各角速度ωa,ωbの検出のしかた
について一般的に表現すると、圧縮行程末期から爆発行
程初期までのクランク角度領域内に第1のクランク角度
範囲を設定し、第1のクランク角度範囲から一定のクラ
ンク角を隔てた爆発行程中期のクランク角度領域内に第
2のクランク角度範囲を設定し、第1のクランク角度範
囲内におけるクランクシャフトの第1の角速度ωaを検
出し、第2のクランク角度範囲内におけるクランクシャ
フトの第2の角速度ωbを検出するということになる。Therefore, in general terms, how to detect each of the angular velocities ωa and ωb is as follows. The first crank angle range is set in the crank angle range from the end of the compression stroke to the beginning of the explosion stroke. A second crank angle range is set in a crank angle region in a middle stage of an explosion stroke separated by a certain crank angle from the first crank angle range, a first angular velocity ωa of the crankshaft in the first crank angle range is detected, This means that the second angular velocity ωb of the crankshaft within the crank angle range is detected.
【0031】上述したように角速度ωa,ωbを検出す
れば検出値に基づいて対応する気筒の発生する駆動力お
よびトルクを算出することができる。しかしながら機関
駆動系には各気筒において順次行われる爆発作用により
駆動系の固有振動数でもって振動する捩り振動が発生し
ており、このように機関駆動系に捩り振動が発生してい
ると角速度ωa,ωbに基づいて気筒の発生する駆動力
およびトルクを正確に算出することができなくなる。次
にこのことについて図7および図8を参照しつつ説明す
る。If the angular velocities ωa and ωb are detected as described above, the driving force and torque generated by the corresponding cylinder can be calculated based on the detected values. However, in the engine drive system, torsional vibration oscillating at the natural frequency of the drive system is generated by the explosion effect sequentially performed in each cylinder, and when the torsional vibration is generated in the engine drive system, the angular velocity ωa , Ωb, the driving force and torque generated by the cylinder cannot be accurately calculated. Next, this will be described with reference to FIGS.
【0032】図7は機関駆動系に捩り振動が発生してい
るときに各気筒に対し順次算出される経過時間Ta
(i)の変化を示している。機関駆動系に捩り振動が発
生するとこの捩り振動によってクランクシャフトの角速
度が周期的に増大減少せしめられるので経過時間Ta
(i)は図7に示されるように周期的に増大減少するこ
とになる。FIG. 7 shows an elapsed time Ta sequentially calculated for each cylinder when torsional vibration occurs in the engine drive system.
The change of (i) is shown. When torsional vibration occurs in the engine drive system, the torsional vibration causes the angular velocity of the crankshaft to periodically increase and decrease, so that the elapsed time Ta
(I) periodically increases and decreases as shown in FIG.
【0033】一方、図8は図7において経過時間Ta
(i)が減少している部分を拡大して示している。図8
に示されるように経過時間Ta(i)はTa(1)とT
a(3)との間でho時間だけ減少しており、このho
時間の減少は捩り振動による捩れ量の増大によるものと
考えられる。この場合、Ta(1)とTa(3)との間
では捩り振動による経過時間の減少量は時間の経過と共
にほぼ直線的に増大するものと考えられ、従ってこの捩
り振動による経過時間の減少量はTa(1)およびTa
(3)を結ぶ破線とTa(1)を通る水平線との差で表
わされることになる。従ってTa(1)とTb(1)と
の間では捩り振動によって経過時間がhだけ減少してい
ることになる。FIG. 8 shows the elapsed time Ta in FIG.
The portion where (i) is decreasing is shown in an enlarged manner. FIG.
The elapsed time Ta (i) is equal to Ta (1) and T as shown in FIG.
a (3) decreases by ho time.
It is considered that the decrease in time is due to an increase in the amount of torsion due to torsional vibration. In this case, between Ta (1) and Ta (3), the amount of decrease in the elapsed time due to the torsional vibration is considered to increase almost linearly with the passage of time, and therefore, the amount of decrease in the elapsed time due to the torsional vibration. Are Ta (1) and Ta
It is represented by the difference between the dashed line connecting (3) and the horizontal line passing through Ta (1). Therefore, between Ta (1) and Tb (1), the elapsed time is reduced by h due to torsional vibration.
【0034】このように機関駆動系に捩り振動が発生す
るとTb(1)はTa(1)に対して経過時間が減少
し、この減少した経過時間は燃焼圧による経過時間の減
少量fと捩り振動による経過時間の減少量hとを含んで
いることになる。従って燃焼圧により減少した経過時間
Tb(1)だけを求めるためにはTb(1)にhを加算
しなければならないことになる。即ち、検出された経過
時間Ta(i)およびTb(i)に基づいて各気筒が発
生する駆動力或いはトルクを求めても真の駆動力或いは
トルクを求めることができず、斯くして真の機関の出力
変動或いはトルク変動を求めることができない。As described above, when torsional vibration occurs in the engine drive system, the elapsed time of Tb (1) decreases with respect to Ta (1). This includes the amount of decrease h of the elapsed time due to the vibration. Therefore, in order to obtain only the elapsed time Tb (1) reduced by the combustion pressure, h must be added to Tb (1). That is, even if the driving force or torque generated by each cylinder is obtained based on the detected elapsed times Ta (i) and Tb (i), the true driving force or torque cannot be obtained, and thus the true driving force or torque cannot be obtained. The engine output fluctuation or torque fluctuation cannot be determined.
【0035】更に、多気筒内燃機関ではこのような機関
駆動系の捩り振動に加えてクランクシャフト自体の捩り
振動を発生し、このようなクランクシャフト自体の捩り
振動が発生した場合にも真の機関の出力変動或いはトル
ク変動を求めることができなくなる。次にこのことにつ
いて図9を参照しつつ説明する。多気筒内燃機関、例え
ば図1に示されるような4気筒内燃機関では1番気筒お
よび2番気筒において大きなクランクシャフト自体の捩
り振動が発生する。即ち、クランクシャフト13自体の
捩り振動がほとんど発生しない気筒、例えば3番気筒#
3では図9に示されるようにTa(3)からTb(3)
に向けて経過時間は徐々に減少するが1番気筒#1にお
いてはTa(1)からTb(1)に向けて経過時間は徐
々に減少せず、クランクシャフト自体の捩り振動によっ
てTb(1)の経過時間が長くなってしまう。その結
果、1番気筒#1については検出された経過時間Ta
(1)およびTb(1)に基づいて1番気筒#1が発生
する駆動力或いはトルクを求めても真の駆動力或いはト
ルクを求めることができず、斯くして真の機関の出力変
動或いはトルク変動を求めることができない。Further, in a multi-cylinder internal combustion engine, in addition to such torsional vibration of the engine drive system, torsional vibration of the crankshaft itself is generated. Output fluctuation or torque fluctuation cannot be obtained. Next, this will be described with reference to FIG. In a multi-cylinder internal combustion engine, for example, a four-cylinder internal combustion engine as shown in FIG. 1, a large torsional vibration of the crankshaft itself occurs in the first and second cylinders. That is, a cylinder in which torsional vibration of the crankshaft 13 itself hardly occurs, for example, a third cylinder #
In FIG. 3, from Ta (3) to Tb (3) as shown in FIG.
, The elapsed time gradually decreases from Ta (1) to Tb (1) in the first cylinder # 1, and Tb (1) due to torsional vibration of the crankshaft itself. The elapsed time becomes longer. As a result, for the first cylinder # 1, the detected elapsed time Ta
Even if the driving force or torque generated by the first cylinder # 1 is obtained based on (1) and Tb (1), the true driving force or torque cannot be obtained, and thus the true engine output fluctuation or The torque fluctuation cannot be determined.
【0036】そこで本実施形態では機関駆動系の捩り振
動が発生しても、またクランクシャフト13自体の捩り
振動が発生しても真の機関の出力変動或いはトルク変動
を算出することができる算出方法を採用している。次に
この算出方法について図10を参照しつつ説明する。図
10においてTa(1)j-1 およびTb(1)j-1 は1
番気筒#1の先の燃焼時における経過時間を表してお
り、Ta(1)j およびTb(1)j は1番気筒#1の
次の燃焼時における経過時間を表している。一方、Ta
(3)j-1 は1番気筒#1の先の燃焼にひき続いて行わ
れる3番気筒#3の先の燃焼時における経過時間を表し
ており、Ta(3)j は3番気筒#3の次の燃焼時にお
ける経過時間を表わしている。Therefore, in the present embodiment, even if torsional vibration of the engine drive system occurs, or even if torsional vibration of the crankshaft 13 itself occurs, a calculation method capable of calculating a true engine output fluctuation or torque fluctuation. Is adopted. Next, this calculation method will be described with reference to FIG. In FIG. 10, Ta (1) j-1 and Tb (1) j-1 are 1
The elapsed time of the first cylinder # 1 during the previous combustion is shown, and Ta (1) j and Tb (1) j represent the elapsed time of the first cylinder # 1 during the next combustion. On the other hand, Ta
(3) j-1 represents the elapsed time at the time of the preceding combustion of the third cylinder # 3, which is performed subsequent to the combustion of the first cylinder # 1, and Ta (3) j is the third cylinder # 3 represents the elapsed time at the time of the next combustion.
【0037】まず初めにTa(1)j とTa(1)j-1
との差DTa(1)(=Ta(1) j −Ta
(1)j-1 )、およびTa(3)j とTa(3)j-1 と
の差DTa(3)(=Ta(3)j −Ta(3)j-1 )
とを求める。次いで1番気筒#1の先の燃焼時の出力ト
ルクと次の燃焼時の出力トルクとが同一であったと仮定
したときの1番気筒#1の次の燃焼時におけるATDC
60°からATDC90°までの仮想の経過時間をT
b′(1)j とし、このTb′(1)j とTb(1)
j-1 との差Kb(1)(=Tb′(1)j −Tb(1)
j-1 )を求める。これらの差DTa(1),Kb(1)
およびDTa(3)を一直線上における高さとして書き
直すと図11に示されるようになる。First, Ta (1)jAnd Ta (1)j-1
DTa (1) (= Ta (1) j-Ta
(1)j-1), And Ta (3)jAnd Ta (3)j-1When
Difference DTa (3) (= Ta (3)j-Ta (3)j-1)
And ask. Next, the output torque of the first cylinder # 1 during the preceding combustion
Assuming that the output torque during the next combustion is the same
ATDC at the time of the next combustion of the first cylinder # 1
The virtual elapsed time from 60 ° to 90 ° ATDC is T
b '(1)jAnd Tb '(1)jAnd Tb (1)
j-1Difference Kb (1) (= Tb '(1)j-Tb (1)
j-1). These differences DTa (1) and Kb (1)
And DTa (3) as the height on a straight line
When corrected, the result is as shown in FIG.
【0038】図11に示されるように経過時間差DTa
(1)とDTa(3)との間では経過時間差がI0 時間
だけ減少している。クランクシャフト自体に捩り振動が
発生したとしてもこの捩り振動による影響は経過時間差
には表れず、従って経過時間差のI0 時間の減少は機関
駆動系の捩り振動によるものである。この場合、DTa
(1)とDTa(3)との間では機関駆動系の捩り振動
による経過時間差の減少量は時間の経過と共にほぼ直線
的に増大するものと考えられる。従って1番気筒#1の
先の燃焼時の出力トルクと次の燃焼時の出力トルクとが
同一であると仮定すると経過時間差DTa(1)とKb
(1)との間では機関駆動系の捩り振動によって経過時
間差がIだけ減少するものと考えられる。従って図11
からわかるように1番気筒#1の先の燃焼時の出力トル
クと次の燃焼時の出力トルクとが同一であると仮定した
場合に経過時間差Kb(1)は次式で表される。 Kb(1)=(2DTa(1)+DTa(3))/3As shown in FIG. 11, the elapsed time difference DTa
The elapsed time difference between (1) and DTa (3) is reduced by I0 time. Even if torsional vibration occurs in the crankshaft itself, the effect of the torsional vibration does not appear in the elapsed time difference, and therefore, the decrease in the I0 time of the elapsed time difference is due to the torsional vibration of the engine drive system. In this case, DTa
It is considered that the amount of decrease in the elapsed time difference between (1) and DTa (3) due to torsional vibration of the engine drive system increases almost linearly with time. Therefore, assuming that the output torque of the first cylinder # 1 during the previous combustion is the same as the output torque during the next combustion, the elapsed time difference DTa (1) and Kb
It is considered that the elapsed time difference decreases by I due to torsional vibration of the engine drive system between (1). Therefore, FIG.
As can be seen from the above, the elapsed time difference Kb (1) is expressed by the following equation, assuming that the output torque of the first cylinder # 1 during the previous combustion and the output torque during the next combustion are the same. Kb (1) = (2DTa (1) + DTa (3)) / 3
【0039】ところで1番気筒#1の先の燃焼時の出力
トルクと次の燃焼時の出力トルクとが同一であると仮定
したときの1番気筒#1の仮想の経過時間Tb′(1)
j は次式で表される。 Tb′(1)j =Tb(1)j-1 +Kb(1) 従って1番気筒#1の先の燃焼時の出力トルクと次の燃
焼時における出力トルクが同一であると仮定したときの
1番気筒#1の次の燃焼時における仮想の出力トルクD
NS(1)は次式で表される。 DNS(1)={30°/Tb′(1)j }2 −{30°/Ta(1)j }2 ={30°/(Tb(1)j-1 +Kb(1))}2 −{30°/Ta(1)j }2 By the way, assuming that the output torque of the first cylinder # 1 during the previous combustion and the output torque during the next combustion are the same, the virtual elapsed time Tb '(1) of the first cylinder # 1
j is represented by the following equation. Tb '(1) j = Tb (1) j-1 + Kb (1) Accordingly, when the output torque of the first cylinder # 1 during the previous combustion is assumed to be the same as the output torque during the next combustion, 1 Virtual output torque D during the next combustion of cylinder # 1
NS (1) is represented by the following equation. DNS (1) = {30 ° / Tb ′ (1) j } 2 − {30 ° / Ta (1) j } 2 = {30 ° / (Tb (1) j−1 + Kb (1))} 2 − {30 ° / Ta (1) j } 2
【0040】一方、1番気筒#1の次の燃焼時における
ATDC60°からATDC90°までの実際の経過時
間Tb(1)j を用いて実際の出力トルクを算出すると
この出力トルクDN(1)は次式で表される。 DN(1)={30°/Tb(1)j }2 −{30°/
Ta(1)j }2 この場合、1番気筒#1の仮想の出力トルクDNS
(1)と実際の出力トルクDN(1)との差は1番気筒
#1のトルク変動量を表しており、従って1番気筒#1
のトルク変動量DLN(1)は次式で表されることにな
る。 DLN(1)=DNS(1)−DN(1)={30°/
Tb′(1)j }2−{30°/Tb(1)j }2 一般的に表すとi番気筒のトルク変動量DLN(i)は
次式で表すことができる。 DLN(i)=DNS(i)−DN(i)={30°/
Tb′(i)}2−{30°/Tb(i)}2 On the other hand, when the actual output torque is calculated using the actual elapsed time Tb (1) j from ATDC60 ° to ATDC90 ° during the next combustion of the first cylinder # 1, this output torque DN (1) becomes It is expressed by the following equation. DN (1) = {30 ° / Tb (1) j } 2 − {30 ° /
Ta (1) j } 2 In this case, the virtual output torque DNS of the first cylinder # 1
The difference between (1) and the actual output torque DN (1) represents the amount of torque fluctuation of the first cylinder # 1, and therefore, the first cylinder # 1
The torque fluctuation amount DLN (1) is expressed by the following equation. DLN (1) = DNS (1) −DN (1) = {30 ° /
Tb ′ (1) j } 2 − {30 ° / Tb (1) j } 2 Generally, the torque fluctuation amount DLN (i) of the i-th cylinder can be expressed by the following equation. DLN (i) = DNS (i) −DN (i) = {30 ° /
Tb ′ (i)} 2 − {30 ° / Tb (i)} 2
【0041】即ち、i番気筒のトルク変動量はi番気筒
の仮想の第2の角速度の2乗と実際の第2の角速度の2
乗との偏差から求まることになる。このような方法でも
ってトルク変動量を算出することによって機関駆動系に
捩り振動が発生したとしても、更にクランクシャフト自
体に捩り振動が発生したとしても各気筒のトルク変動量
を正確に検出できることになる。That is, the torque fluctuation amount of the i-th cylinder is equal to the square of the virtual second angular velocity of the i-th cylinder and the actual second angular velocity.
It is obtained from the deviation from the power. By calculating the amount of torque fluctuation by such a method, it is possible to accurately detect the amount of torque fluctuation of each cylinder even if torsional vibration occurs in the engine drive system or even if torsional vibration occurs in the crankshaft itself. Become.
【0042】一方、このような方法でもってトルク変動
量を算出する場合、ロータ14(図1)の外周に沿って
形成されている外歯の間隔にばらつきがあると各気筒の
トルク変動量を正確に検出することができない。そこで
本発明による実施例ではロータ14の外歯の間隔にばら
つきがあったとしても各気筒のトルク変動量を正確に検
出しうるように検出された各経過時間Ta(i),Tb
(i)を補正するようにしている。次に経過時間Ta
(i)の補正方法について図12を参照しつつ説明す
る。On the other hand, when calculating the torque fluctuation amount by such a method, if there is a variation in the interval between the external teeth formed along the outer periphery of the rotor 14 (FIG. 1), the torque fluctuation amount of each cylinder is calculated. It cannot be detected accurately. Therefore, in the embodiment according to the present invention, even if the interval between the external teeth of the rotor 14 varies, the elapsed times Ta (i), Tb detected so as to accurately detect the torque fluctuation amount of each cylinder.
(I) is corrected. Next, the elapsed time Ta
The correction method (i) will be described with reference to FIG.
【0043】本発明による実施例では経過時間Ta
(i)が次式に基づいて算出される。 Ta(i)=(i番気筒のTDCからATDC30°ま
での所要時間)・(1+KTa(i)) ここでKTa(i)はi番気筒に対する補正係数を表し
ており、これらの補正係数KTa(i)は機関駆動系の
捩り振動が発生せず、クランクシャフト自体の捩り振動
も発生しない減速運転時の燃料供給停止時に算出され
る。In the embodiment according to the present invention, the elapsed time Ta
(I) is calculated based on the following equation. Ta (i) = (time required from TDC of cylinder i to 30 ° ATDC) · (1 + KTa (i)) where KTa (i) represents a correction coefficient for the i-th cylinder, and these correction coefficients KTa ( i) is calculated when fuel supply is stopped during deceleration operation in which no torsional vibration of the engine drive system occurs and no torsional vibration of the crankshaft itself occurs.
【0044】図12は減速運転時における経過時間Ta
(i)の変化を示している。減速運転時にはクランクシ
ャフトの回転速度が次第に低下するので経過時間Ta
(i)はTa(1)j-1 ,Ta(3)j-1 ,Ta(4)
j-1 ,Ta(2)j-1 ,Ta(1)j ,Ta(3)j ,
Ta(4)j ,Ta(2)j で表されるように次第に増
大する。このときロータ14の外歯の間隔が同一であっ
たとすると各経過時間Ta(i)は図12の実線に沿っ
て変化するものと考えられ、検出された経過時間Ta
(i)が図12の実線からずれている場合には図12の
実線からずれている経過時間Ta(i)を検出するため
の外歯の間隔が正規の間隔からずれているものと考えら
れる。そこで本発明による実施例では経過時間Ta
(i)が図12に示す直線からずれている場合にはその
経過時間Ta(i)が図12の実線上に位置するように
経過時間Ta(i)を補正係数KTa(i)によって補
正するようにしている。FIG. 12 shows the elapsed time Ta during the deceleration operation.
The change of (i) is shown. Since the rotation speed of the crankshaft gradually decreases during the deceleration operation, the elapsed time Ta
(I) is Ta (1) j−1 , Ta (3) j−1 , Ta (4)
j-1 , Ta (2) j-1 , Ta (1) j , Ta (3) j ,
It gradually increases as represented by Ta (4) j and Ta (2) j . At this time, if the intervals between the external teeth of the rotor 14 are the same, each elapsed time Ta (i) is considered to change along the solid line in FIG. 12, and the detected elapsed time Ta
If (i) deviates from the solid line in FIG. 12, it is considered that the interval between the external teeth for detecting the elapsed time Ta (i) deviating from the solid line in FIG. 12 deviates from the regular interval. . Therefore, in the embodiment according to the present invention, the elapsed time Ta
When (i) deviates from the straight line shown in FIG. 12, the elapsed time Ta (i) is corrected by the correction coefficient KTa (i) so that the elapsed time Ta (i) is located on the solid line in FIG. Like that.
【0045】具体的に云うと、本発明による実施例では
720°クランク角範囲(j−1),(j)…における
4気筒の経過時間Ta(i)の平均値TaAVj-1 {=
(Ta(1)j-1 +Ta(3)j-1 +Ta(4)j-1 +
Ta(2)j-1 )/4},TaAVj {=(Ta(1)
j +Ta(3)j +Ta(4)j +Ta(2)j )/
4},…を順次算出する。次いで各経過時間Ta(4)
j-1 ,Ta(2)j-1 ,Ta(1)j ,Ta(3)j が
平均値TaAVj-1 から平均値TaAVj まで平均的な
一定の増大率でもって増大したと考え、平均的な一定の
増大率でもって増大したと考えたときの各気筒について
の経過時間AAV(4),AAV(2),AAV
(1),AAV(3)を次式より求める。 AAV(4)=(TaAVj −TaAVj-1 )・(1/
8)+TaAVj-1 AAV(2)=(TaAVj −TaAVj-1 )・(3/
8)+TaAVj-1 AAV(1)=(TaAVj −TaAVj-1 )・(5/
8)+TaAVj-1 AAV(3)=(TaAVj −TaAVj-1 )・(7/
8)+TaAVj-1 More specifically, in the embodiment according to the present invention, the average value TaAV j-1 of the elapsed time Ta (i) of the four cylinders in the 720 ° crank angle range (j-1), (j).
(Ta (1) j-1 + Ta (3) j-1 + Ta (4) j-1 +
Ta (2) j-1 ) / 4}, TaAV j } = (Ta (1)
j + Ta (3) j + Ta (4) j + Ta (2) j ) /
Are sequentially calculated. Next, each elapsed time Ta (4)
j-1 , Ta (2) j-1 , Ta (1) j , Ta (3) j are considered to have increased from the average value TaAV j -1 to the average value TaAV j at an average constant increase rate; Elapsed time AAV (4), AAV (2), AAV for each cylinder when considered to have increased at an average constant increase rate
(1), AAV (3) is obtained from the following equation. AAV (4) = (TaAV j −TaAV j−1 ) · (1 /
8) + TaAV j−1 AAV (2) = (TaAV j −TaAV j−1 ) · (3 /
8) + TaAV j−1 AAV (1) = (TaAV j −TaAV j−1 ) · (5 /
8) + TaAV j−1 AAV (3) = (TaAV j −TaAV j−1 ) · (7 /
8) + TaAV j-1
【0046】次いで次式に基づき各気筒についてこれら
経過時間AAV(4),AAV(2),AAV(1),
AAV(3)に対する実際に検出された経過時間Ta
(4) j-1 ,Ta(2)j-1 ,Ta(1)j ,Ta
(3)j のずれ割合KAFC(4),KAFC(2),
KAFC(1),KAFC(3)を求める。 KAFC(4)={Ta(4)j-1 −AAV(4)}/
AAV(4) KAFC(2)={Ta(2)j-1 −AAV(2)}/
AAV(2) KAFC(1)={Ta(1)j −AAV(1)}/A
AV(1) KAFC(3)={Ta(3)j −AAV(3)}/A
AV(3)Next, based on the following equation, these
Elapsed time AAV (4), AAV (2), AAV (1),
Elapsed time Ta actually detected for AAV (3)
(4) j-1, Ta (2)j-1, Ta (1)j, Ta
(3)jKAFC (4), KAFC (2),
KAFC (1) and KAFC (3) are obtained. KAFC (4) = {Ta (4)j-1−AAV (4)} /
AAV (4) KAFC (2) = {Ta (2)j-1−AAV (2)} /
AAV (2) KAFC (1) = {Ta (1)j−AAV (1)} / A
AV (1) KAFC (3) = {Ta (3)j−AAV (3)} / A
AV (3)
【0047】次に次式を用いて基本補正係数KTaB
(i)を各気筒毎に求める。 KTaB(i)=KTa(i)j-1 −KAFC(i)/
4 即ち、各気筒に対するこれまでの補正係数KTa(i)
j-1 からずれ割合KAFC(i)の1/4を減算するこ
とによって基本補正係数KTaB(i)が算出される。
次いで基本補正係数KTaB(i)の平均値tKTaM
が次式に基づき算出される。 tKTaM={KTaB(1)+KTaB(2)+KT
aB(3)+KTaB(4)}/4Next, the basic correction coefficient KTaB is calculated using the following equation.
(I) is obtained for each cylinder. KTaB (i) = KTa (i) j-1 -KAFC (i) /
4 That is, the previous correction coefficient KTa (i) for each cylinder
The basic correction coefficient KTaB (i) is calculated by subtracting 1/4 of the deviation ratio KAFC (i) from j-1 .
Next, the average value tKTaM of the basic correction coefficient KTaB (i)
Is calculated based on the following equation. tKTaM = {KTaB (1) + KTaB (2) + KT
aB (3) + KTaB (4)} / 4
【0048】次いで次式に示されるように各基本補正係
数KTaB(i)から平均値tKTaMを減算すること
によって各気筒に対する補正係数KTa(i)が算出さ
れる。 KTa(i)=KTaB(i)−tKTaMNext, as shown in the following equation, the correction coefficient KTa (i) for each cylinder is calculated by subtracting the average value tKTaM from each basic correction coefficient KTaB (i). KTa (i) = KTaB (i) -tKTaM
【0049】上述したように補正係数KTa(i)j-1
をずれ割合KAFC(i)に基づいて直接補正せず、一
旦基本補正係数KTaB(i)を求めるようにしている
のは次の理由による。例えば1番気筒#1についてのみ
ずれ割合KAFC(1)が存在し、このずれ割合KAF
C(1)に基づいて1番気筒#1の補正係数KTa
(1)のみを補正したとする。この場合、1番気筒#1
のみの経過時間Ta(1)が増大又は減少せしめられ
る。しかしながら1番気筒#1のみの経過時間Ta
(1)が増大又は減少せしめられると今度は残りの気筒
#2,#3,#4の補正係数KTa(2),KTa
(3),KTa(4)がずれを生じることになる。As described above, the correction coefficient KTa (i) j-1
Is not directly corrected based on the deviation ratio KAFC (i), and the basic correction coefficient KTaB (i) is once obtained for the following reason. For example, there is a shift ratio KAFC (1) only for the first cylinder # 1, and this shift ratio KAF
The correction coefficient KTa of the first cylinder # 1 based on C (1)
It is assumed that only (1) is corrected. In this case, the first cylinder # 1
Only the elapsed time Ta (1) is increased or decreased. However, the elapsed time Ta of only the first cylinder # 1
When (1) is increased or decreased, the correction coefficients KTa (2) and KTa of the remaining cylinders # 2, # 3, and # 4 are changed.
(3), KTa (4) is shifted.
【0050】このような問題が生じないようにするため
に基本補正係数KTaB(i)を一旦求め、この基本補
正係数KTaB(i)から基本補正係数の平均値tKT
aMを減算することによって最終的な補正係数KTa
(i)を求めるようにしている。即ち、例えば1番気筒
#1の基本補正係数KTaB(1)が増大せしめられた
場合には全ての気筒#1,#2,#3,#4の基本補正
係数KTaB(i)から基本補正係数の平均値tKTa
Mが減算される。このように全ての気筒の基本補正係数
KTaB(i)からtKTaMが減算されると1番気筒
#1の補正係数KTa(1)は増大するが、残りの気筒
#2,#3,#4の補正係数KTa(2),KTa
(3),KTa(4)は減少せしめられ、KTa
(1),KTa(2),KTa(3)およびKTa
(4)の和は常に零に維持される。このようにKTa
(1),KTa(2),KTa(3)およびKTa
(4)の和が常に零になるように各補正係数KTa
(i)を補正するといずれか一つの補正係数KTa
(i)が補正されても他の補正係数KTa(i)はずれ
を生じなくなる。In order to prevent such a problem from occurring, a basic correction coefficient KTaB (i) is once obtained, and an average value tKT of the basic correction coefficient is calculated from the basic correction coefficient KTaB (i).
The final correction coefficient KTa is obtained by subtracting aM.
(I) is obtained. That is, for example, when the basic correction coefficient KTaB (1) of the first cylinder # 1 is increased, the basic correction coefficient KTaB (i) of all the cylinders # 1, # 2, # 3, and # 4 is calculated. Average value of tKTa
M is subtracted. Thus, when tKTaM is subtracted from the basic correction coefficient KTaB (i) of all cylinders, the correction coefficient KTa (1) of the first cylinder # 1 increases, but the correction coefficient KTa (1) of the remaining cylinders # 2, # 3, # 4 Correction coefficient KTa (2), KTa
(3), KTa (4) is reduced and KTa
(1), KTa (2), KTa (3) and KTa
The sum of (4) is always maintained at zero. Thus, KTa
(1), KTa (2), KTa (3) and KTa
Each correction coefficient KTa is such that the sum of (4) is always zero.
When (i) is corrected, one of the correction coefficients KTa
Even if (i) is corrected, other correction coefficients KTa (i) do not shift.
【0051】図12に示される実施例では例えば1番気
筒#1の経過時間Ta(1)j が平均的な一定の増大率
でもって増大したと考えたときの経過時間AAV(1)
よりも大きいときには1番気筒#1に対するずれ割合K
AFC(1)が正の値となる。その結果補正係数KTa
(1)は、ずれ割合KAFC(1)が零となるまで減少
せしめられ、ずれ割合KAFC(1)が零になると補正
係数KTa(1)の値は一定値に落ち着くことになる。
このとき経過時間Ta(1)は経過時間AAV(1)に
一致する。全ての気筒についての補正係数KTa(i)
が一定値に落ち着くとロータ14の回転速度が一定のと
きには補正係数KTa(i)を用いて補正された各気筒
の経過時間Ta(i)は全て等しくなる。従ってロータ
14の外歯の間隔にばらつきがあったとしても各気筒の
トルク変動を正確に検出することができる。In the embodiment shown in FIG. 12, for example, the elapsed time AAV (1) when the elapsed time Ta (1) j of the first cylinder # 1 is considered to have increased at an average constant increasing rate.
Is larger than the cylinder # 1, the deviation ratio K with respect to the first cylinder # 1.
AFC (1) has a positive value. As a result, the correction coefficient KTa
(1) is decreased until the deviation ratio KAFC (1) becomes zero, and when the deviation ratio KAFC (1) becomes zero, the value of the correction coefficient KTa (1) becomes a constant value.
At this time, the elapsed time Ta (1) matches the elapsed time AAV (1). Correction coefficient KTa (i) for all cylinders
Reaches a constant value, when the rotation speed of the rotor 14 is constant, the elapsed time Ta (i) of each cylinder corrected using the correction coefficient KTa (i) becomes equal. Therefore, even if the interval between the external teeth of the rotor 14 varies, the torque fluctuation of each cylinder can be accurately detected.
【0052】再びトルク変動の算出に話しを戻すと機関
駆動系に捩り振動が発生したときに経過時間差DTa
(i)は図10に示されるように変動する。しかしなが
らこの経過時間差DTa(i)は車両が凸凹道を走行し
たときにも変動し、しかもこのときにはDTa(i)の
変動巾が極めて大きくなる場合がある。図13は車両が
凸凹道を走行したときのDTa(i)の変動を示してお
り、図13のAMPは最小のDTa(i)と最大のDT
a(i)との差、即ち振幅を示している。この振幅AM
Pが小さいときにはこれまで述べた方法によって各気筒
の出力変動およびトルク変動を正確に検出することがで
きる。Returning again to the calculation of the torque fluctuation, when the torsional vibration occurs in the engine drive system, the elapsed time difference DTa
(I) varies as shown in FIG. However, the elapsed time difference DTa (i) fluctuates even when the vehicle travels on an uneven road, and at this time, the fluctuation range of DTa (i) may be extremely large. FIG. 13 shows the fluctuation of DTa (i) when the vehicle travels on an uneven road, and the AMP of FIG. 13 shows the minimum DTa (i) and the maximum DTa (i).
a (i), that is, the amplitude. This amplitude AM
When P is small, the output fluctuation and torque fluctuation of each cylinder can be accurately detected by the method described above.
【0053】しかしながら振幅AMPが大きくなるとD
Ta(i)が最大又は最小となる気筒の出力変動又はト
ルク変動を正確に検出できなくなる。即ち、図13にお
いて例えば最初にDTa(i)が最大になる気筒が1番
気筒#1であったとすると1番気筒#1の仮想の経過時
間差Kb(1)の捩り振動による減少量Iは図11のD
Ta(1)とDTa(3)とを結ぶ鎖線の傾きから求め
られる。しかしながらDTa(1)が最大となる付近で
は捩り振動による経過時間の増大量又は減少量はDTa
(2),DTa(1),DTa(3)を通る滑らかな曲
線で変化しており、従って1番気筒#1のKb(1)を
DTa(1)とDTa(3)から求めるとKb(1)の
値は実際の値よりもかなり小さく計算される。その結
果、Kb(1)が正規の値を示さなくなり、斯くして出
力変動量およびトルク変動量を正確に検出できなくな
る。振幅AMPが大きくなるとDTa(i)が最小とな
る気筒においても同じことが生ずる。However, when the amplitude AMP increases, D
The output fluctuation or torque fluctuation of the cylinder in which Ta (i) becomes maximum or minimum cannot be detected accurately. That is, assuming that, for example, in FIG. 13, for example, the first cylinder having the maximum DTa (i) is the first cylinder # 1, the decrease I due to the torsional vibration of the virtual elapsed time difference Kb (1) of the first cylinder # 1 is shown in FIG. 11 D
It is obtained from the inclination of the chain line connecting Ta (1) and DTa (3). However, near the time when DTa (1) becomes maximum, the amount of increase or decrease of the elapsed time due to torsional vibration is DTa (1).
(2), DTa (1), and a smooth curve passing through DTa (3). Therefore, when Kb (1) of the first cylinder # 1 is obtained from DTa (1) and DTa (3), Kb (1) is obtained. The value of 1) is calculated to be much smaller than the actual value. As a result, Kb (1) does not show a regular value, and thus the output fluctuation amount and the torque fluctuation amount cannot be accurately detected. When the amplitude AMP increases, the same occurs in a cylinder in which DTa (i) is minimized.
【0054】また、一つ前に燃焼が行われた気筒のDT
a(i)に対してDTa(i)が急変した気筒において
もKb(i)の値が実際の値からずれ、斯くして出力変
動およびトルク変動を正確に検出できなくなる。そこで
本発明による実施例では振幅AMPが大きいときにはD
Ta(i)が最大又は最小となる気筒については出力変
動量又はトルク変動量を求めずに、更に一つ前に燃焼が
行われた気筒のDTa(i)に対してDTa(i)が急
変した気筒についても出力変動量又はトルク変動量を求
めないようにしている。Further, the DT of the cylinder in which combustion was performed immediately before
Even in a cylinder in which DTa (i) suddenly changes with respect to a (i), the value of Kb (i) deviates from the actual value, so that output fluctuation and torque fluctuation cannot be detected accurately. Therefore, in the embodiment according to the present invention, when the amplitude AMP is large, D
The output fluctuation amount or the torque fluctuation amount is not obtained for the cylinder in which Ta (i) becomes the maximum or the minimum, and DTa (i) changes abruptly with respect to DTa (i) of the cylinder in which the combustion was performed immediately before. Also, the output fluctuation amount or the torque fluctuation amount is not calculated for the set cylinder.
【0055】次に図14から図25を参照しつつ各気筒
のトルク変動量を求めるためのルーチンについて説明す
る。なお、図25は各ルーチンにおいて行われる各値の
計算タイミングを示している。図14は30°クランク
角度毎に行われる割込みルーチンを示している。図14
を参照するとまず初めに経過時間差DTa(i)および
経過時間Tb(i)を算出するためのルーチン(ステッ
プ100)に進む。このルーチンは図15から図18に
示されている。次いでトルク変動の算出を許可するか否
かをチェックするためのルーチン(ステップ200)に
進む。このルーチンは図19から図21に示されてい
る。次いでトルク変動を算出するためのルーチン(ステ
ップ300)に進む。このルーチンは図23に示されて
いる。次いでリーンリミットフィードバック補正係数F
LLFBの算出に用いる機関回転数平均値および吸入空
気量平均値の算出ルーチンに進む。このルーチンは図2
4に示されている。Next, a routine for obtaining the torque fluctuation amount of each cylinder will be described with reference to FIGS. FIG. 25 shows the calculation timing of each value performed in each routine. FIG. 14 shows an interrupt routine performed every 30 ° crank angle. FIG.
First, the process proceeds to a routine (step 100) for calculating the elapsed time difference DTa (i) and the elapsed time Tb (i). This routine is shown in FIGS. Next, the routine proceeds to a routine (step 200) for checking whether calculation of torque fluctuation is permitted. This routine is shown in FIGS. Next, the routine proceeds to a routine (step 300) for calculating the torque fluctuation. This routine is shown in FIG. Next, the lean limit feedback correction coefficient F
The routine proceeds to a routine for calculating the average engine speed and the average intake air amount used for calculating LLFB. This routine is shown in FIG.
It is shown in FIG.
【0056】経過時間差DTa(i)および経過時間T
b(i)の算出ルーチンを示す図15から図18を参照
すると、まず初めにステップ101において時刻TIM
EがTIMEOとされる。電子制御ユニット20は時刻
を表わすフリーランカウンタを備えており、このフリー
ランカウンタのカウント値から時刻TIMEが算出され
る。次いでステップ102では現在の時刻TIMEが取
込まれる。従ってステップ101のTIMEOは30°
クランク角度前の時刻を表わしていることになる。Elapsed time difference DTa (i) and elapsed time T
Referring to FIGS. 15 to 18 showing the calculation routine of b (i), first, at step 101, the time TIM
E is set to TIMEO. The electronic control unit 20 includes a free-run counter that indicates the time, and the time TIME is calculated from the count value of the free-run counter. Next, at step 102, the current time TIME is taken. Therefore, the TIMEO of step 101 is 30 °
This represents the time before the crank angle.
【0057】次いでステップ103では現在i番気筒の
ATDC30°であるか否かが判別される。現在i番気
筒のATDC30°でない場合にはステップ111にジ
ャンプして現在i番気筒のATDC90°であるか否か
が判別される。現在i番気筒のATDC90°でない場
合には経過時間差DTa(i)および経過時間Tb
(i)の算出ルーチンを完了する。Next, at step 103, it is determined whether the i-th cylinder is at ATDC 30 ° or not. If the ATDC of the i-th cylinder is not 30 °, the process jumps to step 111 to determine whether or not the ATDC of the i-th cylinder is 90 °. If the current i-th cylinder is not at ATDC 90 °, the elapsed time difference DTa (i) and the elapsed time Tb
The calculation routine of (i) is completed.
【0058】これに対してステップ103において現在
i番気筒のATDC30°であると判別されたときには
ステップ104に進んで720°クランク角度前に算出
された経過時間Ta(i)がTaO(i)とされる。次
いでステップ105では次式に基づいてi番気筒のTD
CからATDC30°までの最終的な経過時間Ta
(i)が算出される。On the other hand, if it is determined in step 103 that the ATDC of the i-th cylinder is 30 °, the routine proceeds to step 104, where the elapsed time Ta (i) calculated before the 720 ° crank angle is TaO (i). Is done. Next, at step 105, the TD of the i-th cylinder is calculated based on the following equation.
Final elapsed time Ta from C to 30 ° ATDC
(I) is calculated.
【0059】Ta(i)=(TIME−TIMEO)・
(1+KTa(i)) 即ち、例えば現在1番気筒#1のATDC30°である
とすると1番気筒#1のTDCからATDC30°まで
の最終的な経過時間Ta(1)が(TIME−TIME
O)・(1+KTa(1))から算出される。ここで
(TIME−TIMEO)はクランク角センサ15によ
り実測された経過時間Ta(1)を表わしており、KT
a(1)はロータ13の外歯間隔による誤差を補正する
ための補正係数であり、従って(TIME−TIME
O)に(1+KTa(1))を乗算することによって得
られた最終的な経過時間Ta(1)はクランクシャフト
が30°クランク角度回転する間の経過時間を正確に表
わしていることになる。Ta (i) = (TIME-TIMEO).
(1 + KTa (i)) That is, for example, if it is the ATDC 30 ° of the first cylinder # 1 now, the final elapsed time Ta (1) from TDC of the first cylinder # 1 to ATDC 30 ° is (TIME−TIME)
O) · (1 + KTa (1)). Here, (TIME-TIMEO) represents the elapsed time Ta (1) actually measured by the crank angle sensor 15, and KT
a (1) is a correction coefficient for correcting an error due to the external tooth interval of the rotor 13, and accordingly, (TIME-TIME)
The final elapsed time Ta (1) obtained by multiplying (O) by (1 + KTa (1)) accurately represents the elapsed time during which the crankshaft rotates by 30 ° crank angle.
【0060】次いでステップ106では今回算出された
経過時間Ta(i)から720°クランク角度前に算出
された経過時間TaO(i)を減算することによって経
過時間差DTa(i)(=Ta(i)−TaO(i))
が算出される。次いでステップ107では現在2番気筒
#2のATDC30°であるか否かが判別される。現在
2番気筒#2のATDC30°でないときにはステップ
110にジャンプし、一つ前に燃焼が行われた(i−
1)番気筒のトルク変動量を算出すべきことを示すフラ
グXCAL(i−1)がセット(XCAL(i−1)←
1)される。次いでステップ111に進む。本発明によ
る実施例では前述したように点火順序が1−3−4−2
であるので現在1番気筒#1のATDC30°であると
すると一つ前に燃焼が行われた2番気筒#2のトルク変
動量を算出すべきことを示すフラグXCAL(2)がセ
ットされる。同様に図25に示される如く最終的な経過
時間Ta(3)が算出されるとフラグXCAL(1)が
セットされ、最終的な経過時間Ta(4)が算出される
とフラグXCAL(3)がセットされ、最終的な経過時
間Ta(2)が算出されるとフラグXCAL(4)がセ
ットされる。Next, at step 106, the elapsed time difference DTa (i) (= Ta (i) is obtained by subtracting the elapsed time TaO (i) calculated 720 ° crank angle before from the currently calculated elapsed time Ta (i). -TaO (i))
Is calculated. Next, at step 107, it is determined whether or not the ATDC of the second cylinder # 2 is 30 °. When the ATDC of the second cylinder # 2 is not 30 °, the process jumps to step 110, and the combustion is performed immediately before (i-
1) A flag XCAL (i-1) indicating that the torque variation of the cylinder No. should be calculated is set (XCAL (i-1) ←
1) is done. Next, the routine proceeds to step 111. In the embodiment according to the present invention, as described above, the ignition order is 1-3-4-2.
Therefore, assuming that the ATDC of the first cylinder # 1 is 30 ° at present, the flag XCAL (2) indicating that the torque fluctuation amount of the second cylinder # 2 in which combustion was performed immediately before should be calculated is set. . Similarly, as shown in FIG. 25, when the final elapsed time Ta (3) is calculated, the flag XCAL (1) is set, and when the final elapsed time Ta (4) is calculated, the flag XCAL (3) is calculated. Is set, and when the final elapsed time Ta (2) is calculated, the flag XCAL (4) is set.
【0061】一方、ステップ111において現在i番気
筒のATDC90°であると判別されたときにはステッ
プ112に進んで720°クランク角度前に算出された
経過時間Tb(i)がTbO(i)とされる。次いでス
テップ113では次式に基づいてi番気筒のATDC6
0°からATDC90°までの最終的な経過時間Tb
(i)が算出される。On the other hand, if it is determined in step 111 that the ATDC of the i-th cylinder is 90 °, the process proceeds to step 112, where the elapsed time Tb (i) calculated before the 720 ° crank angle is set to TbO (i). . Next, at step 113, the ATDC6 of the i-th cylinder is determined based on the following equation.
Final elapsed time Tb from 0 ° to 90 ° ATDC
(I) is calculated.
【0062】Tb(i)=(TIME−TIMEO)・
(1+KTb(i)) 即ち、例えば現在1番気筒#1のATDC90°である
とすると1番気筒#1のATDC60°からATDC9
0°までの最終的な経過時間Tb(1)が(TIME−
TIMEO)・(1+KTb(i))から算出される。
この場合にもロータ13の外歯間隔による誤差を補正す
るための値(1+KTb(i))が(TIME−TIM
EO)に乗算されているので最終的な経過時間Tb
(1)はクランクシャフトが30°クランク角度回転す
る間の経過時間を正確に表わしていることになる。次い
でステップ114では現在2番気筒#2のATDC90
°であるか否かが判別される。現在2番気筒#2のAT
DC90°でないときには経過時間差DTa(i)およ
び経過時間Tb(i)の算出ルーチンを完了する。Tb (i) = (TIME-TIMEO).
(1 + KTb (i)) That is, for example, if the ATDC of the first cylinder # 1 is currently 90 °, the ATDC of the first cylinder # 1 is 60 ° to ATDC9.
The final elapsed time Tb (1) up to 0 ° is (TIME-
TIMEO) · (1 + KTb (i)).
Also in this case, the value (1 + KTb (i)) for correcting the error due to the external tooth interval of the rotor 13 is (TIME-TIM).
EO), the final elapsed time Tb
(1) accurately represents the elapsed time during which the crankshaft rotates by 30 ° crank angle. Next, at step 114, the ATDC 90 of the current second cylinder # 2
° is determined. AT of current cylinder # 2
If DC is not 90 °, the calculation routine of the elapsed time difference DTa (i) and the elapsed time Tb (i) is completed.
【0063】一方、ステップ107において現在2番気
筒#2のATDC30°であると判別されたときにはス
テップ108に進んで次式に基づき図12の720°ク
ランク角度範囲(j)における経過時間Ta(i)の平
均値TaAVj が算出される。 TaAVj =(Ta(1)+Ta(3)+Ta(4)+
Ta(2))/4 ここでTa(1),Ta(3),Ta(4),Ta
(2)は図12におけるTa(1)j ,Ta(3)j ,
Ta(4)j ,Ta(2)j に夫々相当する。次いでス
テップ109の補正係数KTa(i)の算出ルーチンに
進む。このルーチンは図17に示されている。On the other hand, if it is determined in step 107 that the ATDC of the second cylinder # 2 is currently 30 ° ATDC, the routine proceeds to step 108, where the elapsed time Ta (i) in the 720 ° crank angle range (j) of FIG. average TaAV j of) is calculated. TaAV j = (Ta (1) + Ta (3) + Ta (4) +
Ta (2)) / 4 where Ta (1), Ta (3), Ta (4), Ta
(2) is Ta (1) j , Ta (3) j ,
Ta (4) j and Ta (2) j respectively. Next, the routine proceeds to a routine for calculating the correction coefficient KTa (i) in step 109. This routine is shown in FIG.
【0064】図17を参照するとまず初めにステップ1
20において減速運転中の燃料供給停止時であるか否か
が判別される。減速運転中の燃料供給停止時でないとき
には処理サイクルを完了し、減速運転中の燃料供給停止
時にはステップ121に進む。ステップ121ではステ
ップ108において算出された経過時間Ta(i)の平
均値TaAVj と、既に算出されている図12の720
°クランク角度範囲(j−1)における経過時間Ta
(i)の平均値TaAVj-1 (=(Ta(1)+Ta
(3)+Ta(4)+Ta(2))/4)(ここでTa
(1),Ta(3),Ta(4),Ta(2)は夫々図
12に示されるTa(1)j-1 ,Ta(3) j-1 ,Ta
(4)j-1 ,Ta(2)j-1 に相当する)から、平均的
な一定の増大率でもって増大したと考えたときの図12
に示す経過時間AAV(4),AAV(2),AAV
(1),AAV(3)が次のようにして算出される。 AAV(4)=(TaAVj −TaAVj-1 )・(1/
8)+TaAVj-1 AAV(2)=(TaAVj −TaAVj-1 )・(3/
8)+TaAVj-1 AAV(1)=(TaAVj −TaAVj-1 )・(5/
8)+TaAVj-1 AAV(3)=(TaAVj −TaAVj-1 )・(7/
8)+TaAVj-1 Referring to FIG. 17, first, in step 1
In 20 whether or not the fuel supply is stopped during deceleration operation
Is determined. When fuel supply is not stopped during deceleration operation
Completes the processing cycle and stops fuel supply during deceleration operation
Sometimes the process proceeds to step 121. Step 121
Of the elapsed time Ta (i) calculated in step 108
Average value TaAVjAnd 720 of FIG. 12 which has already been calculated.
° Elapsed time Ta in crank angle range (j-1)
Average value TaAV of (i)j-1(= (Ta (1) + Ta
(3) + Ta (4) + Ta (2)) / 4) (where Ta
(1), Ta (3), Ta (4), Ta (2)
Ta (1) shown in 12j-1, Ta (3) j-1, Ta
(4)j-1, Ta (2)j-1Is equivalent to)
FIG. 12 when it is considered that the increase has occurred at a certain constant increase rate.
Elapsed time AAV (4), AAV (2), AAV
(1), AAV (3) is calculated as follows. AAV (4) = (TaAVj-TaAVj-1) ・ (1 /
8) + TaAVj-1 AAV (2) = (TaAVj-TaAVj-1) ・ (3 /
8) + TaAVj-1 AAV (1) = (TaAVj-TaAVj-1) ・ (5 /
8) + TaAVj-1 AAV (3) = (TaAVj-TaAVj-1) ・ (7 /
8) + TaAVj-1
【0065】次いでステップ122では次式に基づいて
これら経過時間AAV(4),AAV(2),AAV
(1),AAV(3)に対する実際に検出された経過時
間TaO(4),TaO(2),Ta(1),Ta
(3)のずれ割合KAFC(4),KAFC(2),K
AFC(1),KAFC(3)が算出される。ここでT
aO(4),TaO(2),Ta(1),Ta(3)は
夫々図12に示されるTa(4)j-1 ,Ta
(2)j-1 ,Ta(1)j ,Ta(3)j に相当する。 KAFC(4)={TaO(4)−AAV(4)}/A
AV(4) KAFC(2)={TaO(2)−AAV(2)}/A
AV(2) KAFC(1)={Ta(1)−AAV(1)}/AA
V(1) KAFC(3)={Ta(3)−AAV(3)}/AA
V(3)Next, at step 122, these elapsed times AAV (4), AAV (2), AAV
(1) Elapsed time TaO (4), TaO (2), Ta (1), Ta actually detected for AAV (3)
(3) deviation ratio KAFC (4), KAFC (2), K
AFC (1) and KAFC (3) are calculated. Where T
aO (4), TaO (2), Ta (1) and Ta (3) are Ta (4) j-1 and Ta shown in FIG. 12, respectively.
(2) j-1 , Ta (1) j , and Ta (3) j . KAFC (4) = {TaO (4) -AAV (4)} / A
AV (4) KAFC (2) = {TaO (2) −AAV (2)} / A
AV (2) KAFC (1) = {Ta (1) -AAV (1)} / AA
V (1) KAFC (3) = {Ta (3) -AAV (3)} / AA
V (3)
【0066】次いでステップ123では補正係数KTa
(i)の学習条件が成立しているか否かが判別される。
例えば燃料供給停止から一定時間経過しており、機関回
転数が予め定められた範囲内にあり、かつ車両が悪路を
走行していないとき、例えば図13に示される経過時間
差DTa(i)の振幅AMPが設定値を越えていないと
きに学習条件が成立していると判断される。学習条件が
成立していないときにはステップ128に進んでずれ割
合KAFC(i)の積算値KAFCI(i)が零とさ
れ、次いでステップ129において積算カウント値CK
AFCがクリアされる。Next, at step 123, the correction coefficient KTa
It is determined whether the learning condition of (i) is satisfied.
For example, when a certain period of time has elapsed since the fuel supply was stopped, the engine speed is within a predetermined range, and the vehicle is not traveling on a rough road, for example, the elapsed time difference DTa (i) shown in FIG. When the amplitude AMP does not exceed the set value, it is determined that the learning condition is satisfied. When the learning condition is not satisfied, the routine proceeds to step 128, where the integrated value KAFCI (i) of the deviation ratio KAFC (i) is made zero, and then at step 129, the integrated count value CK
AFC is cleared.
【0067】これに対して学習条件が成立している場合
にはステップ124に進んで各気筒に対するずれ割合K
AFC(i)が対応する積算値KAFCI(i)に加算
され、次いでステップ125において積算カウント値C
KAFCが1だけインクリメントされる。次いでステッ
プ126では積算カウント値CKAFCが8になったか
否かが判別される。積算カウント値CKAFCが8でな
いときには処理サイクルを完了し、積算カウント値CK
AFCが8になるとステップ127に進んで補正係数K
Ta(i)が算出される。即ち、各気筒についてずれ割
合KAFC(i)が8回積算されるとステップ127に
進んで補正係数KTa(i)が算出される。On the other hand, if the learning condition is satisfied, the routine proceeds to step 124, where the deviation ratio K for each cylinder is determined.
AFC (i) is added to the corresponding integrated value KAFCI (i), and then at step 125, the integrated count value C
KAFC is incremented by one. Next, at step 126, it is determined whether or not the integrated count value CKAFC has reached 8. When the accumulated count value CKAFC is not 8, the processing cycle is completed and the accumulated count value CK
When AFC reaches 8, the routine proceeds to step 127, where the correction coefficient K
Ta (i) is calculated. That is, when the deviation ratio KAFC (i) is integrated eight times for each cylinder, the routine proceeds to step 127, where the correction coefficient KTa (i) is calculated.
【0068】ステップ127では次のようにして補正係
数KTa(i)が算出される。即ち、まず初めに各積算
値KAFCI(i)がKAFCE(i)に置き換えられ
る。次いで次式に基づき基本補正係数KTaB(i)が
算出される。 KTaB(i)=KTa(i)−(KAFCI(i)/
8)/4 即ち、実際に検出された経過時間Ta(i)が平均的な
一定の増大率でもって増大したと考えたときの経過時間
AAV(i)に対してずれを生じている場合には現在の
補正係数KTa(i)を積算値KAFCI(i)の平均
値の1/4だけ修正した値が基本補正係数KTaB
(i)とされる。次いで次式に基づき全気筒に対する基
本補正係数KTaB(i)の平均値tKTaMが算出さ
れる。 tKTaM=(KTaB(1)+KTaB(2)+KT
aB(3)+KTaB(4))/4In step 127, the correction coefficient KTa (i) is calculated as follows. That is, first, each integrated value KAFCI (i) is replaced with KAFCE (i). Next, the basic correction coefficient KTaB (i) is calculated based on the following equation. KTaB (i) = KTa (i)-(KAFCI (i) /
8) / 4 That is, when the elapsed time Ta (i) actually detected is shifted from the elapsed time AAV (i) when it is considered that the elapsed time Ta (i) has increased at an average constant increase rate. Is the basic correction coefficient KTaB obtained by correcting the current correction coefficient KTa (i) by 4 of the average value of the integrated value KAFCI (i).
(I). Next, an average value tKTaM of the basic correction coefficient KTaB (i) for all cylinders is calculated based on the following equation. tKTaM = (KTaB (1) + KTaB (2) + KT
aB (3) + KTaB (4)) / 4
【0069】次いで次式に示されるように基本補正係数
KTaB(i)をその平均値tKTaMでもって修正す
ることにより補正係数KTa(i)が更新される。 KTa(i)=KTaB(i)−tKTaM このようにして減速運転中の燃料噴射停止時に各気筒に
対する補正係数KTa(i)の更新が行われる。Next, the correction coefficient KTa (i) is updated by correcting the basic correction coefficient KTaB (i) with its average value tKTaM as shown in the following equation. KTa (i) = KTaB (i) -tKTaM In this way, the correction coefficient KTa (i) for each cylinder is updated when fuel injection is stopped during deceleration operation.
【0070】一方、図16のステップ114において現
在2番気筒#2のATDC90°であると判別されたと
きにはステップ115に進んでTaAVj を求めたとき
と同じ方法により次式に基づいて720°クランク角度
範囲における経過時間Tb(i)の平均値TbAVj が
算出される。 TbAVj =(Tb(1)+Tb(3)+Tb(4)+
Tb(2))/4 次いでステップ116の補正係数KTb(i)の算出ル
ーチンに進む。このルーチンは図18に示されている。On the other hand, if it is determined in step 114 of FIG. 16 that the ATDC of the second cylinder # 2 is 90 ° at present, the routine proceeds to step 115, and the 720 ° crank angle is obtained by the same method as when TaAV j is obtained based on the following equation. average TbAV j of the elapsed time in the angular range Tb (i) is calculated. TbAV j = (Tb (1) + Tb (3) + Tb (4) +
Tb (2)) / 4 Next, the routine proceeds to a routine for calculating the correction coefficient KTb (i) in step 116. This routine is shown in FIG.
【0071】図18を参照するとまず初めにステップ1
30において減速運転中の燃料供給停止時であるか否か
が判別される。減速運転中の燃料供給停止時でないとき
には処理サイクルを完了し、減速運転中の燃料供給停止
時にはステップ131に進む。ステップ131ではステ
ップ115において算出された経過時間Tb(i)の平
均値TbAVj と、一つ前の720°クランク角度範囲
における経過時間Tb(i)の平均値TbAVj-1 (=
(Tb(1)+Tb(3)+Tb(4)+Tb(2))
/4)から、平均的な一定の増大率でもって増大したと
考えたときの経過時間BAV(4),BAV(2),B
AV(1),BAV(3)が算出される。 BAV(4)=(TbAVj −TbAVj-1 )・(1/
8)+TbAVj-1 BAV(2)=(TbAVj −TbAVj-1 )・(3/
8)+TbAVj-1 BAV(1)=(TbAVj −TbAVj-1 )・(5/
8)+TbAVj-1 BAV(3)=(TbAVj −TbAVj-1 )・(7/
8)+TbAVj-1 Referring to FIG. 18, first, in step 1
At 30, it is determined whether or not the fuel supply is stopped during the deceleration operation. When the fuel supply is not stopped during the deceleration operation, the processing cycle is completed, and when the fuel supply is stopped during the deceleration operation, the process proceeds to step 131. The average value TbAV j in step 131 the elapsed time Tb which is calculated in step 115 (i), the average value of the time elapsed in 720 ° crank angle range immediately preceding Tb (i) TbAV j-1 (=
(Tb (1) + Tb (3) + Tb (4) + Tb (2))
/ 4), the elapsed times BAV (4), BAV (2), and BAV when considered to increase at an average constant increase rate
AV (1) and BAV (3) are calculated. BAV (4) = (TbAV j −TbAV j−1 ) · (1 /
8) + TbAV j−1 BAV (2) = (TbAV j −TbAV j−1 ) · (3 /
8) + TbAV j−1 BAV (1) = (TbAV j −TbAV j−1 ) · (5 /
8) + TbAV j−1 BAV (3) = (TbAV j −TbAV j−1 ) · (7 /
8) + TbAV j-1
【0072】次いでステップ132では次式に基づいて
これら経過時間BAV(4),BAV(2),BAV
(1),BAV(3)に対する実際に検出された経過時
間TbO(4),TbO(2),Tb(1),Tb
(3)のずれ割合KBFC(4),KBFC(2),K
BFC(1),KBFC(3)が算出される。 KBFC(4)={TbO(4)−BAV(4)}/B
AV(4) KBFC(2)={TbO(2)−BAV(2)}/B
AV(2) KBFC(1)={Tb(1)−BAV(1)}/BA
V(1) KBFC(3)={Tb(3)−BAV(3)}/BA
V(3)Next, at step 132, these elapsed times BAV (4), BAV (2), BAV
(1), elapsed times TbO (4), TbO (2), Tb (1), Tb actually detected for BAV (3)
(3) Deviation ratio KBFC (4), KBFC (2), K
BFC (1) and KBFC (3) are calculated. KBFC (4) = {TbO (4) -BAV (4)} / B
AV (4) KBFC (2) = {TbO (2) -BAV (2)} / B
AV (2) KBFC (1) = {Tb (1) -BAV (1)} / BA
V (1) KBFC (3) = {Tb (3) -BAV (3)} / BA
V (3)
【0073】次いでステップ133では補正係数KTb
(i)の学習条件が成立しているか否かが判別される。
前述したように、例えば燃料供給停止から一定時間経過
しており、機関回転数が予め定められた範囲内にあり、
かつ車両が悪路を走行していないとき、例えば図13に
示される経過時間差DTa(i)の振幅AMPが設定値
を越えていないときに学習条件が成立していると判断さ
れる。学習条件が成立していないときにはステップ13
8に進んでずれ割合KBFC(i)の積算値KBFCI
(i)が零とされ、次いでステップ139において積算
カウント値CKBFCがクリアされる。Next, at step 133, the correction coefficient KTb
It is determined whether the learning condition of (i) is satisfied.
As described above, for example, a certain time has elapsed since the fuel supply was stopped, the engine speed is within a predetermined range,
When the vehicle is not traveling on a rough road, for example, when the amplitude AMP of the elapsed time difference DTa (i) shown in FIG. 13 does not exceed the set value, it is determined that the learning condition is satisfied. Step 13 when the learning condition is not satisfied
Proceeding to 8, the integrated value KBFCI of the deviation ratio KBFC (i)
(I) is set to zero, and then at step 139, the integrated count value CKBFC is cleared.
【0074】これに対して学習条件が成立している場合
にはステップ134に進んで各気筒に対するずれ割合K
BFC(i)が対応する積算値KBFCI(i)に加算
され、次いでステップ135において積算カウント値C
KBFCが1だけインクリメントされる。次いでステッ
プ136では積算カウント値CKBFCが8になったか
否かが判別される。積算カウント値CKBFCが8でな
いときには処理サイクルを完了し、積算カウント値CK
BFCが8になるとステップ137に進んで補正係数K
Tb(i)が算出される。即ち、各気筒についてずれ割
合KBFC(i)が8回積算されるとステップ137に
進んで補正係数KTb(i)が算出される。On the other hand, if the learning condition is satisfied, the routine proceeds to step 134, where the deviation ratio K for each cylinder is determined.
BFC (i) is added to the corresponding integrated value KBFCI (i), and then at step 135, the integrated count value C
KBFC is incremented by one. Next, at step 136, it is determined whether or not the integrated count value CKBFC has reached 8. When the accumulated count value CKBFC is not 8, the processing cycle is completed, and the accumulated count value CK
When BFC reaches 8, the routine proceeds to step 137, where the correction coefficient K
Tb (i) is calculated. That is, when the deviation ratio KBFC (i) is integrated eight times for each cylinder, the routine proceeds to step 137, where the correction coefficient KTb (i) is calculated.
【0075】ステップ137では次のようにして補正係
数KTb(i)が算出される。即ち、まず初めに各積算
値KBFCI(i)がKBFCE(i)に置き換えられ
る。次いで次式に基づき基本補正係数KTbB(i)が
算出される。 KTbB(i)=KTb(i)−(KBFCI(i)/
8)/4 即ち、実際に検出された経過時間Tb(i)が平均的な
一定の増大率でもって増大したと考えたときの経過時間
BAV(i)に対してずれを生じている場合には現在の
補正係数KTb(i)を積算値KBFCI(i)の平均
値の1/4だけ修正した値が基本補正係数KTbB
(i)とされる。次いで次式に基づき全気筒に対する基
本補正係数KTbB(i)の平均値tKTbMが算出さ
れる。 tKTbM=(KTbB(1)+KTbB(2)+KT
bB(3)+KTbB(4))/4In step 137, the correction coefficient KTb (i) is calculated as follows. That is, first, each integrated value KBFCI (i) is replaced with KBFCE (i). Next, the basic correction coefficient KTbB (i) is calculated based on the following equation. KTbB (i) = KTb (i)-(KBFCI (i) /
8) / 4 That is, when the actually detected elapsed time Tb (i) is shifted from the elapsed time BAV (i) when it is considered that the elapsed time Tb (i) increases at an average constant increase rate. Is the basic correction coefficient KTbB obtained by correcting the current correction coefficient KTb (i) by 4 of the average value of the integrated value KBFCI (i).
(I). Next, an average value tKTbM of the basic correction coefficients KTbB (i) for all cylinders is calculated based on the following equation. tKTbM = (KTbB (1) + KTbB (2) + KT
bB (3) + KTbB (4)) / 4
【0076】次いで次式に示されるように基本補正係数
KTbB(i)をその平均値tKTbMでもって修正す
ることにより補正係数KTb(i)が更新される。 KTb(i)=KTbB(i)−tKTbM このようにして減速運転中の燃料噴射停止時に各気筒に
対する補正係数KTb(i)の更新が行われる。Next, the correction coefficient KTb (i) is updated by correcting the basic correction coefficient KTbB (i) with its average value tKTbM as shown in the following equation. KTb (i) = KTbB (i) -tKTbM In this manner, when the fuel injection is stopped during the deceleration operation, the correction coefficient KTb (i) for each cylinder is updated.
【0077】次に図19から図21に示されるトルク変
動算出許可チェックルーチンについて図22を参照しつ
つ説明する。このルーチンは車両が凸凹道を走行するこ
とにより経過時間差DTa(i)の変動の振幅AMP
(図13)が大きくなったときには特定の気筒について
のトルク変動量の算出を禁止するために設けられてい
る。Next, the torque variation calculation permission check routine shown in FIGS. 19 to 21 will be described with reference to FIG. In this routine, the amplitude AMP of the variation of the elapsed time difference DTa (i) due to the vehicle traveling on the uneven road
This is provided to prohibit calculation of the torque fluctuation amount for a specific cylinder when (FIG. 13) becomes large.
【0078】即ち、図19から図21を参照すると、ま
ず初めにステップ201において現在いずれかの気筒の
ATDC30°であるか否かが判別される。現在いずれ
かの気筒のATDC30°でないときには処理サイクル
を完了し、現在いずれかの気筒のATDC30°である
ときにはステップ202に進む。ステップ202からス
テップ204では経過時間差DTa(i)が増大し次い
で減少する際の最大経過時間差DT30maxが算出さ
れる。即ち、ステップ202では図15のステップ10
6において算出されたDTa(i)が最大経過時間差D
T30maxよりも大きいか否かが判別される。DT3
0max>DTa(i)のときにはステップ205にジ
ャンプし、これに対してDT30max≦DTa(i)
のときにはステップ203に進んでDTa(i)がDT
30maxとされる。次いでステップ204ではDTa
(i)が増大していることを示す増大フラグXMXRE
Cがセット(XMXREC←1)され、次いでステップ
205に進む。That is, referring to FIGS. 19 to 21, first, at step 201, it is determined whether or not the ATDC of any of the cylinders is currently 30 °. If the ATDC of any of the cylinders is not 30 ° at present, the processing cycle is completed. If the ATDC of any of the cylinders is at 30 ° at present, the process proceeds to step 202. In steps 202 to 204, the maximum elapsed time difference DT30max when the elapsed time difference DTa (i) increases and then decreases is calculated. That is, in step 202, step 10 in FIG.
6, the DTa (i) calculated is the maximum elapsed time difference D
It is determined whether it is larger than T30max. DT3
If 0max> DTa (i), the routine jumps to step 205, whereas DT30max ≦ DTa (i)
In the case of, the routine proceeds to step 203, where DTa (i) is DT
30 max. Next, at step 204, DTa
An increase flag XMXRE indicating that (i) is increasing
C is set (XMXREC ← 1), and then the routine proceeds to step 205.
【0079】ステップ205からステップ207では経
過時間差DTa(i)が減少し次いで増大する際の最小
経過時間差DT30minが算出される。即ち、ステッ
プ205では図15のステップ106において算出され
たDTa(i)が最小経過時間差DT30minよりも
小さいか否かが判別される。DT30min<DTa
(i)のときにはステップ208にジャンプし、これに
対してDT30min≧DTa(i)のときにはステッ
プ206に進んでDTa(i)がDT30minとされ
る。次いでステップ207ではDTa(i)が減少して
いることを示す減少フラグXMNRECがセット(XM
NREC←1)され、次いでステップ208に進む。In steps 205 to 207, the minimum elapsed time difference DT30min when the elapsed time difference DTa (i) decreases and then increases is calculated. That is, in step 205, it is determined whether or not DTa (i) calculated in step 106 in FIG. 15 is smaller than the minimum elapsed time difference DT30min. DT30min <DTa
In the case of (i), the process jumps to step 208. On the other hand, when DT30min ≧ DTa (i), the process proceeds to step 206, where DTa (i) is set to DT30min. Next, at step 207, a decrease flag XMNREC indicating that DTa (i) is decreasing is set (XM
NREC ← 1), and then go to step 208.
【0080】ステップ208からステップ214ではD
Ta(i)の変動の振幅AMP(図13)が設定値A0
を越えたときにはDTa(i)が最大となった気筒につ
いてのトルク変動量の算出を禁止する禁止フラグがセッ
トされる。即ち、ステップ208ではDT30max>
DTa(i)でかつXMXREC=1であるか否かが判
別される。DT30max≦DTa(i)であるか、又
は増大フラグXMXRECがリセット(XMXREC=
0)されているときにはステップ215にジャンプし、
これに対してDT30max>DTa(i)でかつXM
XREC=1のときにはステップ209に進む。In steps 208 to 214, D
The amplitude AMP of the fluctuation of Ta (i) (FIG. 13) is equal to the set value A 0.
Is exceeded, a prohibition flag is set to prohibit the calculation of the amount of torque fluctuation for the cylinder in which DTa (i) is maximized. That is, in step 208, DT30max>
It is determined whether DTa (i) and XMXREC = 1. DT30max ≦ DTa (i) or the increase flag XMXREC is reset (XMXREC =
If 0), jump to step 215,
On the other hand, if DT30max> DTa (i) and XM
When XREC = 1, the process proceeds to step 209.
【0081】即ち、図22に示されるように時刻t1 に
おいて1番気筒#1の経過時間差DTa(1)が最大に
なったとする。この場合、時刻t1 において行われる割
込みルーチンではステップ202からステップ203に
進んでDTa(1)がDT30maxとされ、次いでス
テップ204において最大フラグXMXRECがセット
される。一方、図22の時刻t2 において行われる割込
みルーチンではステップ202からステップ205にジ
ャンプする。このときステップ208ではDT30ma
x>DTa(3)であり、かつXMXREC=1である
と判断されるのでステップ209に進む。即ち、ステッ
プ209に進むのは経過時間差DTa(i)が減少しは
じめる時刻t2 である。[0081] That is, the No. 1 cylinder # 1 of the difference of elapsed times DTa at time t 1 as shown in FIG. 22 (1) is to become the maximum. In this case, in the interruption routine performed at the time t 1 proceeds from step 202 to step 203 DTa (1) is a DT30max, then the maximum flag XMXREC is set in step 204. On the other hand, in the interruption routine performed at the time t 2 in FIG. 22 jumps from step 202 to step 205. At this time, in step 208, DT30ma
Since it is determined that x> DTa (3) and XMXREC = 1, the process proceeds to step 209. That is, the time t 2 the flow proceeds to step 209 where the elapsed time DTa (i) starts to decrease.
【0082】ステップ209では最大経過時間差DT3
0maxがTMXRECとされる。次いでステップ21
0では最大経過時間差TMXRECから最小経過時間差
TMNREC(後述するステップ216で求められる)
を減算することによってDTa(i)の変動の振幅AM
Pが算出される。次いでステップ211では最小経過時
間差DT30minの初期値がDTa(i)とされる。
次いでステップ212では増大フラグXMXRECがリ
セット(XMXREC←0)される。次いでステップ2
13では振幅AMPが設定値A0 よりも大きいか否かが
判別される。AMP<A0 のときにはステップ215に
ジャンプする。これに対してAMP≧A 0 のときにはス
テップ214に進んでトルク変動算出禁止フラグXNO
CALがセット(XNOCAL←1)される。即ち、図
22の時刻t2 において行われる割込みルーチンでは前
述したように1番気筒#1のトルク変動量が算出され
る。従ってこの割込みルーチンにおいてAMP≧A0 と
なり、トルク変動算出禁止フラグXNOCALがセット
されると1番気筒#1のトルク変動量の算出、即ち、D
Ta(i)が最大となる気筒のトルク変動量の算出が禁
止される。At step 209, the maximum elapsed time difference DT3
0max is set to TMXREC. Then step 21
At 0, the minimum elapsed time difference from the maximum elapsed time difference TMXREC
TMNREC (determined in step 216 described later)
Is subtracted to obtain the amplitude AM of the variation of DTa (i).
P is calculated. Next, at step 211, when the minimum time elapses
The initial value of the difference DT30min is set to DTa (i).
Next, at step 212, the increase flag XMXREC is reset.
Set (XMXREC ← 0). Then step 2
At 13 the amplitude AMP is equal to the set value A0Is greater than
Is determined. AMP <A0At step 215
Jump. On the other hand, AMP ≧ A 0When
Proceeding to step 214, the torque fluctuation calculation prohibition flag XNO
CAL is set (XNOCAL ← 1). That is,
22 time tTwoIn the interrupt routine performed in
As described above, the torque fluctuation amount of the first cylinder # 1 is calculated.
You. Therefore, in this interrupt routine, AMP ≧ A0When
And the torque fluctuation calculation prohibition flag XNOCAL is set.
Then, the calculation of the torque fluctuation amount of the first cylinder # 1, that is, D
Calculation of the torque fluctuation amount of the cylinder that maximizes Ta (i) is prohibited.
Is stopped.
【0083】ステップ215からステップ221ではD
Ta(i)の変動の振幅AMPが設定値A0 を越えたと
きにはDTa(i)が最小となった気筒についてのトル
ク変動量の算出を禁止する禁止フラグがセットされる。
即ち、ステップ215ではDT30min<DTa
(i)でかつXMNREC=1であるか否かが判別され
る。DT30min≧DTa(i)であるか、又は減少
フラグXMNRECがリセット(XMNREC=0)さ
れているときにはステップ222にジャンプし、これに
対してDT30min<DTa(i)でかつXMNRE
C=1のときにはステップ216に進む。In steps 215 to 221, D
Amplitude AMP of the variation of ta (i) is set prohibition flag for prohibiting calculation of the amount of torque fluctuation for cylinder DTa (i) is minimized when it exceeds the set value A 0.
That is, in step 215, DT30min <DTa
It is determined whether or not (i) and XMNREC = 1. If DT30min ≧ DTa (i) or the decrease flag XMNREC is reset (XMNREC = 0), the process jumps to step 222, whereas DT30min <DTa (i) and XMNRE
When C = 1, the process proceeds to step 216.
【0084】即ち、図22に示されるように時刻t3 に
おいて1番気筒#1の経過時間差DTa(1)が最小に
なったとする。この場合、時刻t3 において行われる割
込みルーチンではステップ205からステップ206に
進んでDTa(1)がDT30minとされ、次いでス
テップ207において減少フラグXMNRECがセット
される。一方、図22の時刻t4 において行われる割込
みルーチンではステップ205からステップ208にジ
ャンプする。このときステップ215ではDT30mi
n<DTa(3)であり、かつXMNREC=1である
と判断されるのでステップ216に進む。即ち、ステッ
プ216に進むのは経過時間差DTa(i)が増大しは
じめる時刻t4 である。[0084] That is, the first cylinder # 1 of the difference of elapsed times DTa at time t 3 as shown in FIG. 22 (1) is minimized. In this case, in the interruption routine performed at the time t 3 proceeds from step 205 to step 206 DTa (1) is a DT30min, then decrease flag XMNREC is set in step 207. On the other hand, in the interruption routine performed at the time t 4 in FIG. 22 jumps from step 205 to step 208. At this time, in step 215, DT30mi
Since it is determined that n <DTa (3) and XMNREC = 1, the process proceeds to step 216. That is, the time t 4 when the elapsed time difference DTa proceed to step 216 (i) starts to increase.
【0085】ステップ216では最小経過時間差DT3
0minがTMNRECとされる。次いでステップ21
7では最大経過時間差TMXRECから最小経過時間差
TMNRECを減算することによってDTa(i)の変
動の振幅AMPが算出される。次いでステップ218で
は最大経過時間差DT30maxの初期値がDTa
(i)とされる。次いでステップ219では減少フラグ
XMNRECがリセット(XMNREC←0)される。
次いでステップ220では振幅AMPが設定値A0より
も大きいか否かが判別される。AMP<A0 のときには
ステップ222にジャンプする。これに対してAMP≧
A0 のときにはステップ221に進んでトルク変動算出
禁止フラグXNOCALがセット(XNOCAL←1)
される。即ち、図22の時刻t4 において行われる割込
みルーチンでは1番気筒#1のトルク変動量が算出され
る。従ってこの割込みルーチンにおいてAMP≧A0 と
なり、トルク変動算出禁止フラグXNOCALがセット
されると1番気筒#1のトルク変動量の算出、即ち、D
Ta(i)が最小となる気筒のトルク変動量の算出が禁
止される。In step 216, the minimum elapsed time difference DT3
0 min is set as TMNREC. Then step 21
In step 7, the amplitude AMP of the fluctuation of DTa (i) is calculated by subtracting the minimum elapsed time difference TMNREC from the maximum elapsed time difference TMXREC. Next, at step 218, the initial value of the maximum elapsed time difference DT30max is set to DTa.
(I). Next, at step 219, the decrease flag XMNREC is reset (XMNREC ← 0).
Then whether step 220 the amplitude AMP is greater than the set value A 0 is judged. At the time of the AMP <A 0 jumps to step 222. AMP ≧
Torque fluctuation calculation prohibition flag XNOCAL proceeds to step 221 when the A 0 is set (XNOCAL ← 1)
Is done. That is, the torque variation of the first cylinder # 1 is in the interruption routine performed at the time t 4 in FIG. 22 is calculated. Therefore calculation of AMP ≧ A 0 becomes, when the torque fluctuation calculation prohibition flag XNOCAL is set 1 cylinder # 1 of the amount of torque fluctuation in this interrupt routine, i.e., D
Calculation of the torque fluctuation amount of the cylinder in which Ta (i) is minimized is prohibited.
【0086】ステップ222およびステップ223では
経過時間差DTa(i)が急変した気筒についてのトル
ク変動量の算出が禁止される。即ち、ステップ222で
は|DTa(i−2)−DTa(i−1)|がKo ・|
DTa(i−1)−DTa(i)|よりも大きいか否か
が判別される。ここで定数Ko は3.0から4.0程度
の値である。ステップ222において|DTa(i−
2)−DTa(i−1)|<Ko ・|DTa(i−1)
−DTa(i)|であると判別されたときには処理ルー
チンを完了し、|DTa(i−2)−DTa(i−1)
|≧Ko ・|DTa(i−1)−DTa(i)|である
と判別されたときにはステップ223に進んでトルク変
動算出禁止フラグXNOCALがセットされる。In steps 222 and 223, the calculation of the torque fluctuation amount for the cylinder in which the elapsed time difference DTa (i) has suddenly changed is prohibited. That is, at step 222 | DTa (i-2) -DTa (i-1) | is K o · |
DTa (i-1) -DTa (i) | is determined. Here, the constant Ko is a value of about 3.0 to 4.0. In step 222, | DTa (i−
2) -DTa (i-1) | <K o · | DTa (i-1)
When it is determined that -DTa (i) |, the processing routine is completed, and | DTa (i-2) -DTa (i-1).
| ≧ K o · | DTa ( i-1) -DTa (i) | a is judged to be the torque fluctuation calculation prohibition flag XNOCAL proceeds to step 223 when the are set.
【0087】即ち、今図22の時刻t3 における割込み
ルーチンであるとするとこのときには|DTa(4)−
DTa(2)|≧Ko ・|DTa(2)−DTa(1)
|であるか否かが判別される。図22に示されるように
DTa(4)に対してDTa(2)が急変すると|DT
a(4)−DTa(2)|はKo ・|DTa(2)−D
Ta(1)|よりも大きくなる。このときトルク変動算
出禁止フラグがセットされ、経過時間差DTa(i)が
急変した2番気筒#2のトルク変動量の算出が禁止され
る。[0087] That is, when an interrupt routine at time t 3 now Figure 22 at this time | DTa (4) -
DTa (2) | ≧ K o · | DTa (2) −DTa (1)
| Is determined. As shown in FIG. 22, when DTa (2) changes rapidly with respect to DTa (4), | DT
a (4) -DTa (2) | is K o · | DTa (2) -D
Ta (1) |. At this time, the torque fluctuation calculation prohibition flag is set, and the calculation of the torque fluctuation amount of the second cylinder # 2 in which the elapsed time difference DTa (i) has suddenly changed is prohibited.
【0088】次に図23に示すトルク変動算出ルーチン
について説明する。図23を参照すると、まず初めにス
テップ301において一つ前に燃焼が行われた(i−
1)番気筒のトルク変動量を算出すべきことを示すフラ
グXCAL(i−1)がセットされているか否かが判別
される。フラグXCAL(i−1)=0のとき、即ちフ
ラグXCAL(i−1)がセットされていないときには
処理サイクルを完了する。これに対してフラグXCAL
(i−1)=1のとき、即ちフラグXCAL(i−1)
がセットされているときにはステップ302に進んでフ
ラグXCAL(i−1)がリセットされ、次いでステッ
プ303に進む。Next, the torque fluctuation calculation routine shown in FIG. 23 will be described. Referring to FIG. 23, first, in step 301, combustion was performed immediately before (i-
1) It is determined whether or not a flag XCAL (i-1) indicating that the torque variation of the cylinder No. should be calculated is set. When the flag XCAL (i-1) = 0, that is, when the flag XCAL (i-1) is not set, the processing cycle is completed. On the other hand, the flag XCAL
When (i-1) = 1, that is, the flag XCAL (i-1)
Is set, the process proceeds to step 302, where the flag XCAL (i-1) is reset, and then proceeds to step 303.
【0089】ステップ303では一つ前に燃焼が行われ
た気筒についてのトルク変動量の算出を禁止する禁止フ
ラグXNOCALがリセット(XNOCAL=0)され
ているか否かが判別される。この禁止フラグがセット
(XNOCAL=1)されているときにはステップ31
1に進んで禁止フラグXNOCALがリセットされる。
これに対して禁止フラグがリセットされているときには
ステップ304に進む。即ち、フラグXCALがセット
されており、かつ禁止フラグXNOCALがリセットさ
れているときのみステップ304に進む。In step 303, it is determined whether or not a prohibition flag XNOCAL for prohibiting the calculation of the amount of torque fluctuation for the cylinder in which combustion has been performed immediately before is reset (XNOCAL = 0). When this prohibition flag is set (XNOCAL = 1), step 31
Proceeding to 1, the prohibition flag XNOCAL is reset.
On the other hand, when the prohibition flag has been reset, the routine proceeds to step 304. That is, the process proceeds to step 304 only when the flag XCAL is set and the prohibition flag XNOCAL is reset.
【0090】ステップ304では一つ前に燃焼が行われ
た(i−1)番気筒の仮想の経過時間差Kb(i−1)
(図10および図11参照)が次式に基づいて算出され
る。 Kb(i−1)={2・DTa(i−1)+DTa
(i)}/3 次いでステップ305では次式に基づいて一つ前に燃焼
が行われた(i−1)番気筒の実際の出力トルクDN
(i−1)が算出される。 DN(i−1)={30°/Tb(i−1)}2−{3
0°/Ta(i−1)}2 In step 304, a virtual elapsed time difference Kb (i-1) of the (i-1) th cylinder in which combustion was performed immediately before.
(See FIGS. 10 and 11) is calculated based on the following equation. Kb (i−1) = {2 · DTa (i−1) + DTa
(I)} / 3 Next, at step 305, based on the following equation, the actual output torque DN of the (i-1) th cylinder in which combustion was performed immediately before:
(I-1) is calculated. DN (i−1) = {30 ° / Tb (i−1)} 2 − {3
0 ° / Ta (i-1)} 2
【0091】次いでステップ306では次式に基づいて
一つ前に燃焼が行われた(i−1)番気筒の仮想の出力
トルクDNS(i−1)が算出される。 DNS(i−1)={30°/(TbO(i−1)+K
b(i−1))}2−{30°/Ta(i−1)}2 次いでステップ307では次式に示すように仮想の出力
トルクDNS(i−1)から実際の出力トルクDN(i
−1)を減算することによって一つ前に燃焼が行われた
(i−1)番気筒のトルク変動量DLN(i−1)が算
出される。 DLN(i−1)=DNS(i−1)−DN(i−1)Next, at step 306, the virtual output torque DNS (i-1) of the (i-1) th cylinder in which combustion was performed immediately before is calculated based on the following equation. DNS (i−1) = {30 ° / (TbO (i−1) + K
b (i-1)) 2- {30 / Ta (i-1)} 2 Then, in step 307, as shown in the following equation, the virtual output torque DNS (i-1) is converted to the actual output torque DN (i
By subtracting -1), the torque fluctuation amount DLN (i-1) of the (i-1) th cylinder in which combustion was performed immediately before is calculated. DLN (i-1) = DNS (i-1) -DN (i-1)
【0092】即ち、例えば今3番気筒#3のATDC3
0°であってフラグXCAL(1)がセットされている
とするとステップ304において1番気筒#1に対する
仮想の経過時間差Kb(1)が算出され、次いでステッ
プ305において1番気筒#1の実際の出力トルクDN
(1)が算出され、ステップ306において1番気筒#
1の仮想の出力トルクDNS(1)が算出され、次いで
ステップ307において1番気筒#1のトルク変動量D
LN(1)が算出される。That is, for example, the ATDC3 of the third cylinder # 3
If it is 0 ° and the flag XCAL (1) is set, a virtual elapsed time difference Kb (1) with respect to the first cylinder # 1 is calculated in step 304, and then in step 305, the actual time difference Kb (1) of the first cylinder # 1 is calculated. Output torque DN
(1) is calculated, and in step 306, the first cylinder #
1 is calculated, and then in step 307, the torque fluctuation amount D of the first cylinder # 1 is calculated.
LN (1) is calculated.
【0093】なお、各気筒の出力変動量GLN(i−
1)を求める場合にはステップ305からステップ30
7において以下のような計算を行えばよい。即ち、ステ
ップ305では実際のトルク変動量DN(i−1)を求
める代りに次式に基づいて実際の出力変動量GN(i−
1)を算出する。 GN(i−1)={30°/Tb(i−1)}−{30
°/Ta(i−1)} 次いでステップ306では仮想のトルク変動量DNS
(i−1)を求める代りに次式に基づいて仮想の出力変
動量GNS(i−1)を算出する。 GNS(i−1)={30°/(TbO(i−1)+K
b(i−1))}−{30°/Ta(i−1)}The output fluctuation amount GLN (i-
When determining 1), steps 305 to 30
7, the following calculation may be performed. That is, in step 305, instead of obtaining the actual torque fluctuation amount DN (i-1), the actual output fluctuation amount GN (i-
1) is calculated. GN (i-1) = {30 ° / Tb (i-1)}-{30
° / Ta (i-1)} Next, at step 306, the virtual torque fluctuation amount DNS
Instead of obtaining (i-1), a virtual output fluctuation amount GNS (i-1) is calculated based on the following equation. GNS (i−1) = {30 ° / (TbO (i−1) + K
b (i-1))}-{30 ° / Ta (i-1)}
【0094】次いでステップ307ではトルク変動量D
LN(i−1)を求める代りに次式に基づいて出力変動
量GLN(i−1)を算出する。 GLN(i−1)=GNS(i−1)−GN(i−1) さて、ステップ307においてトルク変動量DLN(i
−1)が算出されるとステップ308に進んでトルク変
動量DLN(i−1)が正であるか否かが判別される。
DLN(i−1)≧0であればステップ310にジャン
プして一つ前に燃焼が行われた気筒のトルク変動量DL
N(i−1)を積算すべきことを示す積算要求フラグX
DLNI(i−1)がセット(XDLNI(i−1)←
1)される。これに対してDLN(i−1)<0であれ
ばステップ309に進んでDLN(i−1)が零とさ
れ、次いでステップ310に進む。なお、各気筒のトル
クは上昇と低下を繰返し、この場合トルク変動量を求め
るにはトルクの上昇分かトルクの減少分のいずれかを積
算すればよい。図23に示すルーチンではトルクの減少
分のみを積算するようにしており、従って上述したよう
にDLN(i−1)<0のときにはDLN(i−1)を
零にしている。Next, at step 307, the torque variation D
Instead of obtaining LN (i-1), output fluctuation amount GLN (i-1) is calculated based on the following equation. GLN (i-1) = GNS (i-1) -GN (i-1) In step 307, the torque fluctuation amount DLN (i
When -1) is calculated, the routine proceeds to step 308, where it is determined whether or not the torque fluctuation amount DLN (i-1) is positive.
If DLN (i−1) ≧ 0, the routine jumps to step 310 to change the torque fluctuation amount DL of the cylinder in which the combustion was performed immediately before.
Integration request flag X indicating that N (i-1) should be integrated
DLNI (i-1) is set (XDLNI (i-1) ←
1) is done. On the other hand, if DLN (i-1) <0, the routine proceeds to step 309, where DLN (i-1) is made zero, and then proceeds to step 310. Note that the torque of each cylinder repeatedly increases and decreases. In this case, the amount of torque fluctuation may be obtained by integrating either the increase in torque or the decrease in torque. In the routine shown in FIG. 23, only the amount of decrease in torque is integrated, and therefore, when DLN (i-1) <0, DLN (i-1) is set to zero as described above.
【0095】次に図24を参照しつつ機関回転数平均値
NAVE および吸入空気量平均値QAV E の算出について説
明する。この機関回転数平均値NAVE および吸入空気量
平均値QAVE は後に説明するリーンリミットフィードバ
ック補正係数FLLFBを算出する際に使用される。図
24を参照すると、まず初めにステップ401において
現在3番気筒#3のATDC30°であるか否かが判別
される。現在3番気筒#3のATDC30°でないとき
には処理サイクルを完了し、現在3番気筒#3のATD
C30°であるときにはステップ402に進む。ステッ
プ402では機関のトルク変動値を算出するためのトル
ク変動値算出条件が成立しているか否かが判別される。
例えば空燃比をリーンとする条件が成立していないか、
或いは吸入空気量Qの単位時間当りの変化量ΔQが設定
値以上であるか、或いは機関回転数の単位時間当りの変
化量ΔNが設定値以上であるときにはトルク変動値算出
条件が成立していないと判断され、それ以外のときには
トルク変動値算出条件が成立していると判断される。[0095] Next referring to FIG. 24 the engine speed average value N AVE and the calculation of the intake air amount average value Q AV E is described. The average engine speed N AVE and the average intake air amount Q AVE are used when calculating a lean limit feedback correction coefficient FLLFFB which will be described later. Referring to FIG. 24, first, in step 401, it is determined whether or not the ATDC of the third cylinder # 3 is currently 30 °. When the ATDC of the third cylinder # 3 is not 30 °, the processing cycle is completed.
When it is C30 °, the process proceeds to step 402. In step 402, it is determined whether a torque fluctuation value calculation condition for calculating a torque fluctuation value of the engine is satisfied.
For example, whether the condition to make the air-fuel ratio lean is not satisfied,
Alternatively, when the change amount ΔQ per unit time of the intake air amount Q is equal to or larger than a set value, or when the change amount ΔN per unit time of the engine speed is equal to or larger than the set value, the torque fluctuation value calculation condition is not satisfied. Otherwise, it is determined that the torque fluctuation value calculation condition is satisfied.
【0096】ステップ402においてトルク変動値算出
条件が成立していると判断されたときにはステップ40
9に進んで機関回転数の平均値NAVE および吸入空気量
Qの平均値QAVE が算出される。If it is determined in step 402 that the torque fluctuation value calculation condition is satisfied, step 40 is executed.
Proceeding to 9, the average value N AVE of the engine speed and the average value Q AVE of the intake air amount Q are calculated.
【0097】一方、ステップ402においてトルク変動
値算出条件が成立していないと判断されたときにはステ
ップ404に進んで各気筒に対するトルク変動量DLN
(i)の積算値DLNI(i)(この積算値は後に説明
するルーチンにおいて算出される)がクリアされ、次い
でステップ405では各気筒に対する積算カウント値C
DLNI(i)(この積算カウント値は後に説明するル
ーチンにおいて算出される)がクリアされる。On the other hand, if it is determined in step 402 that the torque fluctuation value calculation condition is not satisfied, the routine proceeds to step 404, where the torque fluctuation amount DLN for each cylinder is determined.
The integrated value DLNI (i) of (i) (this integrated value is calculated in a routine described later) is cleared, and then at step 405, the integrated count value C for each cylinder is cleared.
DLNI (i) (this integrated count value is calculated in a routine described later) is cleared.
【0098】次いでステップ406では目標トルク変動
値LVLLFBが算出される。本発明による実施例では
後に説明するように算出されたトルク変動値がこの目標
トルク変動値LVLLFBとなるように空燃比がフィー
ドバック制御される。この目標トルク変動値LVLLF
Bは等しい変動値を実線で示した図26(A)に示され
るように機関負荷Q/Nが高くなるほど大きくなり、機
関回転数Nが高くなるほど大きくなる。この目標トルク
変動値LVLLFBは図26(B)に示されるように機
関負荷Q/Nおよび機関回転数Nの関数としてマップの
形で予めROM22内に記憶されている。次いでステッ
プ407では各気筒のトルク変動値DLNISM(i)
(このトルク変動値は後に説明するルーチンにおいて算
出される)が図26(B)のマップから算出された目標
トルク変動値LVLLFBとされる。Next, at step 406, a target torque fluctuation value LVLLFB is calculated. In the embodiment according to the present invention, the air-fuel ratio is feedback-controlled such that the torque fluctuation value calculated as described later becomes the target torque fluctuation value LVLLFB. This target torque fluctuation value LVLLLF
B increases as the engine load Q / N increases, and increases as the engine speed N increases, as shown in FIG. The target torque fluctuation value LVLLFB is stored in the ROM 22 in advance in the form of a map as a function of the engine load Q / N and the engine speed N as shown in FIG. Next, at step 407, the torque fluctuation value DLNISM (i) of each cylinder
(This torque fluctuation value is calculated in a routine to be described later) is set as a target torque fluctuation value LVLLFB calculated from the map of FIG.
【0099】図28は繰返し実行されるメインルーチン
を示している。このメインルーチンではまず初めにトル
ク変動値算出および失火レベル判定ルーチン(ステップ
600)が実行される。このルーチンが図29から図3
1に示されている。次いでリーンリミットフィードバッ
ク補正係数FLLFBの算出ルーチン(ステップ70
0)が実行される。このルーチンが図32から図34に
示されている。次いで予め定められたクランク角になっ
たときに噴射時間算出ルーチン(ステップ800)が実
行される。このルーチンが図35に示されている。次い
でその他のルーチン(ステップ900)が実行される。FIG. 28 shows a main routine that is repeatedly executed. In this main routine, first, a torque fluctuation value calculation and misfire level determination routine (step 600) is executed. This routine is shown in FIGS.
It is shown in FIG. Next, a routine for calculating the lean limit feedback correction coefficient FLLFB (step 70)
0) is executed. This routine is shown in FIGS. Next, when a predetermined crank angle is reached, an injection time calculation routine (step 800) is executed. This routine is shown in FIG. Next, another routine (step 900) is executed.
【0100】次に図29から図31に示されるトルク変
動値算出および失火レベル判定ルーチンについて説明す
る。まず初めにステップ601においてトルク変動量D
LN(i)を積算すべきことを示す積算要求フラグXD
LNI(i)がセット(XDLNI(i)=1)されて
いるか否かが判別される。積算要求フラグXDLNI
(i)がセットされていないときには処理サイクルを完
了し、積算要求フラグXDLNI(i)がセットされて
いるときはステップ602に進む。ステップ602では
積算要求フラグXDLNI(i)がリセットされる。次
いでステップ603では現在においてトルク変動量の積
算を行う当該気筒番号がiとして記憶される。次いでス
テップ604ではトルク変動量DLN(i)がトルク変
動量積算値DLNI(i)に加算される。次いでステッ
プ605では積算カウント値CDLNI(i)が1だけ
インクリメントされる。即ち、例えば、ステップ601
において1番気筒についての積算要求フラグXDLNI
(1)がセットされたとするとステップ602において
このフラグXDLNI(1)がリセットされ、ステップ
603において気筒番号1がiとして記憶され、ステッ
プ604においてトルク変動量積算値DLNI(1)が
算出され、ステップ605において積算カウント値CD
LNI(1)が1だけインクリメントされる。Next, the torque fluctuation value calculation and misfire level determination routine shown in FIGS. 29 to 31 will be described. First, at step 601, the torque fluctuation amount D
Integration request flag XD indicating that LN (i) should be integrated
It is determined whether LNI (i) is set (XDLNI (i) = 1). Integration request flag XDLNI
When (i) is not set, the processing cycle is completed, and when the integration request flag XDLNI (i) is set, the process proceeds to step 602. In step 602, the integration request flag XDLNI (i) is reset. Next, at step 603, the cylinder number for which the torque variation is currently integrated is stored as i. Next, at step 604, the torque variation DLN (i) is added to the torque variation integrated value DLNI (i). Next, at step 605, the integrated count value CDLNI (i) is incremented by one. That is, for example, step 601
, The integration request flag XDLNI for the first cylinder
If (1) is set, the flag XDLNI (1) is reset in step 602, the cylinder number 1 is stored as i in step 603, and the torque variation integrated value DLNI (1) is calculated in step 604. In 605, the accumulated count value CD
LNI (1) is incremented by one.
【0101】次いでステップ606では当該気筒番号i
が1であるか否かが判別される。当該気筒番号が1でな
いときにはステップ608にジャンプするが、当該気筒
番号が1であるときにはステップ607に進む。ステッ
プ607では1番気筒の積算カウント値CDLNI
(1)のインクリメント中における各気筒毎のトルク変
動量DLN(i)の最大値がDLNMX(i)として記
憶される。このトルク変動量の最大値DLNMX(i)
は、詳しくは後述されるように失火レベルを判定するの
に使用されるために、例えば、1番気筒のトルク変動量
が積算されるタイミングにおいて同一時期における各気
筒毎のトルク変動量の最大値が記憶されるようになって
いる。次いでステップ608では積算カウント値CDL
NI(i)が16になったか否かが判別される。CDL
NI(i)が16でないときには処理サイクルを完了
し、CDLNI(i)が16になるとステップ609に
進んで次式から各気筒のトルク変動値DLNISM
(i)が算出される。 DLNISM(i)=DLNISM(i)+{DLNI
(i)−DLNISM(i)}/4Next, at step 606, the cylinder number i
Is 1 or not. If the cylinder number is not 1, the process jumps to step 608. If the cylinder number is 1, the process proceeds to step 607. In step 607, the integrated count value CDLNI of the first cylinder
The maximum value of the torque fluctuation amount DLN (i) for each cylinder during the increment of (1) is stored as DLNMX (i). The maximum value DLNMX (i) of this torque fluctuation amount
Is used to determine the misfire level as will be described in detail later. For example, the maximum value of the torque fluctuation amount of each cylinder at the same time at the timing when the torque fluctuation amount of the first cylinder is integrated Is stored. Next, at step 608, the integrated count value CDL
It is determined whether NI (i) has become 16 or not. CDL
When NI (i) is not 16, the processing cycle is completed. When CDLNI (i) becomes 16, the routine proceeds to step 609, where the torque fluctuation value DLNISM of each cylinder is obtained from the following equation.
(I) is calculated. DLNISM (i) = DLNISM (i) + {DLNI
(I) -DLNISM (i)} / 4
【0102】次いでステップ610では各気筒に対する
トルク変動量積算値DLNI(i)がクリアされ、次い
でステップ611では積算カウント値CDLNI(i)
がリセットされる。Next, at step 610, the integrated torque variation DLNI (i) for each cylinder is cleared, and then at step 611, the integrated count value CDLNI (i).
Is reset.
【0103】即ち、算出されたトルク変動量積算値DL
NI(i)とこれまで用いられてきたトルク変動値DL
NISM(i)との間に差があるときにはこの差{DL
NI(i)−DLNISM(i)}に1/4を乗算した
値がトルク変動値DLNISM(i)に加算される。従
って例えば1番気筒#1についての積算カウント値CD
LNI(1)が16になるとステップ609においてト
ルク変動値DLNISM(1)が算出されることにな
る。That is, the calculated torque variation integrated value DL
NI (i) and torque fluctuation value DL used so far
When there is a difference from NISM (i), this difference {DL
NI (i) -DLNISM (i)} multiplied by 1/4 is added to torque fluctuation value DLNISM (i). Therefore, for example, the integrated count value CD for the first cylinder # 1
When LNI (1) becomes 16, the torque fluctuation value DLNISM (1) is calculated in step 609.
【0104】次いでステップ612ではステップ606
と同様に当該気筒番号iが1であるか否かが判別され
る。当該気筒番号が1でないときには処理サイクルを完
了するが、当該気筒番号が1であるときにはステップ6
13に進んで各気筒毎のトルク変動量の最大値DLNM
X(i)のうちの最大値がDLNMAXとして記憶され
る。即ち、1番気筒についてトルク変動量DLN(1)
が16回積算されるまでに、いずれかの気筒で発生した
最大のトルク変動量がDLNMAXとして記憶されるこ
とになる。Next, at step 612, step 606 is executed.
It is determined whether or not the cylinder number i is 1 in the same manner as described above. If the cylinder number is not 1, the processing cycle is completed, but if the cylinder number is 1, step 6 is executed.
Proceeding to 13, the maximum value DLNM of the torque fluctuation amount for each cylinder
The maximum value of X (i) is stored as DLNMAX. That is, the torque fluctuation amount DLN (1) for the first cylinder
Is accumulated 16 times, the maximum torque variation generated in any one of the cylinders is stored as DLNMAX.
【0105】次いでステップ614ではこの最大トルク
変動量DLNMAXが設定値LVLMF以下であるか否
かが判別され、最大トルク変動量DLNMAXが設定値
LVLMFより大きいときには、失火によって燃焼悪化
より大きなトルクの落ち込みが発生しているとしてステ
ップ615に進む。ステップ615では最大トルク変動
量DLNMAXが設定値LVLMFの2.5倍以下であ
るか否かが判別される。失火には、程度によって、全く
燃焼が行われずに運転者にも感じ取れるほどの大きなト
ルクの落ち込みが発生する場合(以下、大失火と称す
る)や、燃焼が途中で終了し運転者には感じ取れないが
燃焼悪化よりは大きなトルクの落ち込みが発生する場合
(以下、小失火と称する)があり、最大トルク変動量D
LNMAXが設定値LVLMFの2.5倍より大きいと
きには、大失火が発生しているとして、ステップ618
において失火発生フラグXMFIREがセットされる
(XMFIRE←1)と共に、大失火発生フラグXMF
IREHがセットされる(XMFIREH←1)。Next, at step 614, it is determined whether or not the maximum torque fluctuation amount DLNMAX is equal to or less than the set value LVLMF. When the maximum torque fluctuation amount DLNMAX is larger than the set value LVLMF, a drop in torque larger than combustion deterioration due to misfire is determined. Proceed to step 615 as it has occurred. In step 615, it is determined whether or not the maximum torque fluctuation amount DLNMAX is equal to or less than 2.5 times the set value LVLMF. Depending on the degree of misfire, depending on the degree, there is a case where a large drop in torque occurs that is not perceived by the driver without any combustion (hereinafter, referred to as a large misfire), or combustion is terminated on the way and cannot be perceived by the driver May cause a larger torque drop than the combustion deterioration (hereinafter referred to as a small misfire), and the maximum torque fluctuation amount D
If LNMAX is greater than 2.5 times the set value LVLMF, it is determined that a large misfire has occurred, and step 618 is performed.
, The misfire occurrence flag XMFIRE is set (XMFIRE ← 1), and the large misfire occurrence flag XMF
IREH is set (XMFIREH ← 1).
【0106】一方、最大トルク変動量DLNMAXが設
定値LVLMFより大きいがその2.5倍以下であると
きには、ステップ617において失火発生フラグXMF
IREがセット(XMFIRE←1)されるが、大失火
発生フラグXMFIREHはリセット(XMFIREH
←0)される。また、最大トルク変動量DLNMAXが
設定値LVLMF以下であるときには、ステップ616
において失火発生フラグXMFIRE及び大失火発生フ
ラグXMFIREHはいずれもリセットされる(XMF
IRE←0,XMFIREH←0)。On the other hand, when the maximum torque fluctuation amount DLNMAX is larger than the set value LVLMF but is smaller than 2.5 times the set value LVLMF, in step 617, the misfire occurrence flag XMF
The IRE is set (XMFIRE ← 1), but the large misfire occurrence flag XMFIREH is reset (XMFIREH).
← 0). If the maximum torque fluctuation amount DLNMAX is equal to or smaller than the set value LVLMF, step 616 is executed.
, The misfire occurrence flag XMFIRE and the large misfire occurrence flag XMFIREH are both reset (XMF
IRE ← 0, XMFIREH ← 0).
【0107】このようにして機関の失火レベルが判定さ
れ、次いでステップ619に進んで各気筒のトルク変動
値DLNISM(i)の平均値である平均トルク変動値
DLNISM(={DLNISM(1)+DLNISM
(2)+DLNISM(3)+DLNISM(4)}/
4)が算出される。即ち、1番気筒についてトルク変動
量DLN(1)が16回積算されて1番気筒のトルク変
動値DLNISM(1)が算出されたときの各気筒のト
ルク変動値DLNISM(i)の平均値が算出される。
1番気筒のトルク変動量DLN(1)が16回積算され
る間において、1番気筒のトルク変動量の算出が禁止さ
れた回数以上にトルク変動量の算出が禁止された気筒に
ついてのトルク変動値DLNISM(i)は、ステップ
609において新たに算出されていないために、平均ト
ルク変動値DLNISMの算出には以前の値が使用され
る。Thus, the misfire level of the engine is determined, and then the routine proceeds to step 619, where the average torque fluctuation value DLNISM (= {DLNISM (1) + DLNISM), which is the average of the torque fluctuation values DLNISM (i) of each cylinder.
(2) + DLNISM (3) + DLNISM (4)} /
4) is calculated. That is, the average value of the torque fluctuation values DLNISM (i) of the respective cylinders when the torque fluctuation amount DLNSM (1) for the first cylinder is calculated 16 times and the torque fluctuation value DLNISM (1) of the first cylinder is calculated. Is calculated.
While the torque fluctuation amount DLN (1) of the first cylinder is accumulated 16 times, the torque fluctuation of the cylinder in which the calculation of the torque fluctuation amount is prohibited more than the number of times the calculation of the torque fluctuation amount of the first cylinder is prohibited. Since the value DLNISM (i) has not been newly calculated in step 609, the previous value is used for calculating the average torque fluctuation value DLNISM.
【0108】次いでステップ620では失火発生フラグ
XMFIREがセット(XMFIRE=1)されている
か否かが判別され、失火発生フラグXMFIREがセッ
トされていないときにはステップ625に進んで失火発
生間隔カウント値CMFINTが15以上でかつ平均ト
ルク変動値DLNISMが目標トルク変動値LVLLF
Bより大きいか否かが判別される。失火発生間隔カウン
ト値CMFINTは、以下のステップ628を通過する
毎に1だけインクリメントされる値であり、即ち、前述
のように機関の失火レベルが判定された結果、いずれの
気筒においても失火は発生していないときに1だけイン
クリメントされる。目標トルク変動値LVLLFBは、
機関負荷Q/Nと機関回転数Nから図26(B)に示す
マップに基づいて算出される。失火発生間隔カウント値
CMFINTが15以上でかつ平均トルク変動値DLN
ISMが目標トルク変動値LVLLFBより大きいとき
には、ステップ626に進んで失火警告フラグXMFI
REWはリセットされ(XMFIREW←0)、ステッ
プ627においてリーン補正実行カウント値CNOMF
が1だけインクリメントされ、ステップ628において
失火発生間隔カウント値CMFINTが1だけインクリ
メントされる。一方、失火発生間隔カウント値CMFI
NTが15より小さく又は平均トルク変動値DLNIS
Mが目標トルク変動値LVLLFB以下であるときに
は、失火警告フラグXMFIREWをリセットすること
なくステップ627にジャンプする。失火警告フラグX
MFIREWおよびリーン側補正実行カウント値CNO
MFは、図32から図34に示されているFLLFB算
出ル−チンで使用されるものであり、このルーチンで説
明される。次いでステップ629においてトルク変動タ
イミングフラグXHENDOがセット(XHENDO←
1)され処理サイクルが完了する。このトルク変動タイ
ミングフラグXHENDOに関しては後述される。本ル
ーチンにおいて使用されるトルク変動量DLN(i)
は、前述のトルク変動算出ルーチンによって機関駆動系
の捩じり振動およびクランクシャフト自体の捩じり振動
を考慮して算出された非常に正確なものである。しかし
ながら、制御を簡素化するために、トルク変動量DLN
(i)として、これらの捩じり振動の一方又は両方を考
慮することなく算出されたトルク変動量を使用しても、
ある程度の失火レベルの判定は可能である。Next, at step 620, it is determined whether or not the misfire occurrence flag XMFIRE is set (XMFIRE = 1). If the misfire occurrence flag XMFIRE is not set, the routine proceeds to step 625, where the misfire occurrence interval count value CMFINT is set to 15 Above and the average torque fluctuation value DLNISM is equal to the target torque fluctuation value LVLLLF.
It is determined whether it is larger than B or not. The misfire occurrence interval count value CMFINT is a value that is incremented by 1 every time the following step 628 is passed. That is, as a result of the determination of the misfire level of the engine as described above, a misfire occurs in any cylinder. If not, it is incremented by one. The target torque fluctuation value LVLLFB is
It is calculated from the engine load Q / N and the engine speed N based on the map shown in FIG. The misfire occurrence interval count value CMFINT is 15 or more and the average torque fluctuation value DLN
When the ISM is larger than the target torque fluctuation value LVLLFB, the routine proceeds to step 626, where the misfire warning flag XMFI
REW is reset (XMFIREW ← 0), and in step 627, the lean correction execution count value CNOMF
Is incremented by one, and in step 628, the misfire occurrence interval count value CMFINT is incremented by one. On the other hand, the misfire occurrence interval count value CMFI
NT is less than 15 or average torque fluctuation value DLNIS
When M is equal to or smaller than the target torque fluctuation value LVLLFB, the routine jumps to step 627 without resetting the misfire warning flag XMFIREW. Misfire warning flag X
MFIREW and lean-side correction execution count value CNO
The MF is used in the FLLB calculation routine shown in FIGS. 32 to 34, and will be described in this routine. Next, at step 629, the torque fluctuation timing flag XHENDO is set (XHENDO ←
1) The processing cycle is completed. The torque variation timing flag XHENDO will be described later. Torque fluctuation amount DLN (i) used in this routine
Is very accurate calculated in consideration of the torsional vibration of the engine drive system and the torsional vibration of the crankshaft itself by the aforementioned torque fluctuation calculation routine. However, in order to simplify the control, the torque variation DLN
As (i), even if the torque variation calculated without considering one or both of these torsional vibrations is used,
It is possible to determine a certain level of misfire.
【0109】一方、ステップ620において失火発生フ
ラグXMFIREがセットされているときには、ステッ
プ621に進んで失火発生間隔カウント値CMFINT
が3以下であるか否かが判別され、失火発生間隔カウン
ト値CMFINTが3以下であるときにはステップ62
2に進んで失火警告フラグXMFIREWをセット(X
MFIREW←1)してステップ623に進み、失火発
生間隔カウント値CMFINTが3より大きいときには
失火警告フラグXMFIREWをセットすることなくス
テップ623に進む。ステップ623ではリーン側補正
実行カウント値CNOMFをリセット(CNOMF←
0)し、ステップ624において失火発生間隔カウント
値CMFINTをリセット(CMFINT←0)し、次
いでステップ629においてトルク変動タイミングフラ
グXHENDOがセット(XHENDO←1)され処理
サイクルが完了する。On the other hand, when the misfire occurrence flag XMFIRE is set at step 620, the routine proceeds to step 621, where the misfire occurrence interval count value CMFINT is set.
Is determined to be 3 or less, and if the misfire occurrence interval count value CMFINT is 3 or less, step 62 is executed.
2 to set the misfire warning flag XMFIREW (X
MFIREW ← 1), and proceeds to step 623. If the misfire occurrence interval count value CMFINT is greater than 3, the routine proceeds to step 623 without setting the misfire warning flag XMFIREW. In step 623, the lean-side correction execution count value CNOMF is reset (CNOMF ←
0), the misfire occurrence interval count value CMFINT is reset (CMFINT ← 0) in step 624, and then the torque fluctuation timing flag XHENDO is set (XHENDO ← 1) in step 629, and the processing cycle is completed.
【0110】次に図32から図34に示されたFLLF
B算出ルーチンについて説明する。まず初めにステップ
701においてリーンリミットフィードバック補正係数
FLLFBの更新条件が成立しているか否かが判別され
る。例えば、前述のトルク変動値算出および失火レベル
判定ルーチンにおいてトルク変動タイミングフラグXH
ENDOがセットされていないとき(XHENDO=
0)、或いは暖機運転時であるとき、或いは機関の運転
状態が図5において破線で囲まれた学習領域にないとき
には更新条件が成立していないと判断され、その他のと
きには更新条件が成立していると判断される。更新条件
が成立していないときには処理サイクルを完了し、更新
条件が成立しているときにはステップ702に進む。Next, the FLLF shown in FIGS.
The B calculation routine will be described. First, at step 701, it is determined whether or not the condition for updating the lean limit feedback correction coefficient FLLFB is satisfied. For example, in the aforementioned torque fluctuation value calculation and misfire level determination routine, the torque fluctuation timing flag XH
When ENDO is not set (XHENDO =
0), or during the warm-up operation, or when the operating state of the engine is not in the learning region surrounded by the broken line in FIG. 5, it is determined that the update condition is not satisfied. Is determined to be. When the update condition is not satisfied, the processing cycle is completed, and when the update condition is satisfied, the process proceeds to step 702.
【0111】ステップ702では機関負荷Q/Nと機関
回転数Nから図26(B)に示すマップに基づいて目標
トルク変動値LVLLFBが算出される。次いでステッ
プ703およびステップ704では目標トルク変動値L
VLLFBに応じた変動量判別値DH(n),DL
(n)に基づいて次式に示されるトルク変動レベルLV
LH(n),LVLL(n)が算出される。 LVLH(n)=LVLLFB+DH(n) LVLL(n)=LVLLFB+DL(n)In step 702, a target torque fluctuation value LVLLFB is calculated from the engine load Q / N and the engine speed N based on the map shown in FIG. Next, at step 703 and step 704, the target torque fluctuation value L
Fluctuation discrimination value DH (n), DL according to VLLFB
Based on (n), the torque fluctuation level LV represented by the following equation:
LH (n) and LVLL (n) are calculated. LVLH (n) = LVLLFB + DH (n) LVLL (n) = LVLLFB + DL (n)
【0112】ここで、変動量判別値DH(n)およびD
L(n)は図27(A)に示されるように予め定められ
ている。即ち、図27(A)からわかるようにDH
(n)については3つの正の値が定められており、DH
(3)>DH(2)>DH(1)の関係を有する。更
に、これらDH(1),DH(2),DH(3)は目標
トルク変動値LVLLFBが大きくなるにつれて次第に
増大する。一方、DL(n)については3つの負の値が
定められており、DL(1)>DL(2)>DL(3)
の関係を有する。更に、これらDL(1),DL
(2),DL(3)の絶対値は目標トルク変動値LVL
LFBが大きくなるにつれて次第に増大する。Here, the variation discrimination values DH (n) and D
L (n) is predetermined as shown in FIG. That is, as can be seen from FIG.
For (n), three positive values are defined, and DH
(3)> DH (2)> DH (1). Further, these DH (1), DH (2), DH (3) gradually increase as the target torque fluctuation value LVLLFB increases. On the other hand, three negative values are defined for DL (n), and DL (1)> DL (2)> DL (3)
Has the relationship Furthermore, these DL (1), DL
The absolute values of (2) and DL (3) are the target torque fluctuation values LVL
It gradually increases as the LFB increases.
【0113】ところで今、ステップ702において算出
された目標トルク変動値LVLLFBが破線で示される
値だったとする。この場合、ステップ703では破線上
のDH(1),DH(2),DH(3)を目標トルク変
動値LVLLFBに加算した値が夫々トルク変動レベル
LVLH(1),LVLH(2),LVLH(3)とさ
れ、ステップ704では破線上のDL(1),DL
(2),DL(3)を目標トルク変動値LVLLFBに
加算した値が夫々トルク変動レベルLVLL(1),L
VLL(2),LVLL(3)とされる。Now, suppose that the target torque fluctuation value LVLLFB calculated in step 702 is a value indicated by a broken line. In this case, in step 703, the values obtained by adding DH (1), DH (2), and DH (3) on the broken line to the target torque fluctuation value LVLFB are the torque fluctuation levels LVLH (1), LVLH (2), and LVLH ( 3), and in step 704, DL (1), DL on the broken line
The values obtained by adding (2) and DL (3) to the target torque fluctuation value LVLLFB are the torque fluctuation levels LVLL (1) and LLL, respectively.
VLL (2) and LVLL (3).
【0114】一方、図27(B)に示されるように各ト
ルク変動レベルLVLH(n),LVLL(n)間の領
域に対してフィードバック補正値+a1 ,+a2 ,+a
3 ,+a4 ,−b1 ,−b2 ,−b3 ,−b4 が予め定
められており、例えばトルク変動レベルがLVLH
(1)とLVLH(2)の間の領域に対してはフィード
バック補正値は+a2 となる。これらフィードバック補
正値は+a4 >+a3 >+a2 >+a1 でありかつ−b
1 >−b2 >−b3 >−b4 である。図27(B)に示
す各フィードバック補正値+a1 ,+a2 ,+a3 ,+
a4 ,−b1 ,−b 2 ,−b3 ,−b4 が図27(A)
の対応する領域に示されている。On the other hand, as shown in FIG.
Area between the torque fluctuation levels LVLH (n) and LVLL (n)
Feedback correction value + a1, + ATwo, + A
Three, + AFour, -B1, -BTwo, -BThree, -BFourIs predetermined
For example, when the torque fluctuation level is LVLH
Feed for the area between (1) and LVLH (2)
The back correction value is + aTwoBecomes These feedback supplements
Positive value is + aFour> + AThree> + ATwo> + A1And -b
1> -BTwo> -BThree> -BFourIt is. As shown in FIG.
Each feedback correction value + a1, + ATwo, + AThree, +
aFour, -B1, -B Two, -BThree, -BFourIs shown in FIG.
In the corresponding area.
【0115】ステップ703およびステップ704にお
いて夫々トルク変動レベルLVLH(n),LVLL
(n)が算出されるとステップ705に進んで図24に
示す機関回転数平均値および吸入空気量平均値の算出ル
ーチンのステップ409において求められた機関回転数
の平均値NAVE および吸入空気量の平均値QAVE に基づ
いて更新すべきリーンリミットフィードバック補正係数
FLLFBijが図5に示されるどの学習領域のリーンリ
ミットフィードバック補正係数であるかが決定される。
次いでステップ707においてトルク変動タイミングフ
ラグXHENDOがリセット(XHENDO←0)さ
れ、前述のルーチンにおいて新たなトルク変動値の算出
および新たな失火レベルの判定が実施されるまでは、ス
テップ701における更新条件が成立しないようになっ
ている。In steps 703 and 704, the torque fluctuation levels LVLH (n) and LVLL are respectively set.
When (n) is calculated, the routine proceeds to step 705, where the average engine speed N AVE and the intake air amount obtained in step 409 of the routine for calculating the average engine speed and the average intake air amount shown in FIG. The lean limit feedback correction coefficient FLLFB ij to be updated is determined based on the average value Q AVE of the learning region shown in FIG.
Next, at step 707, the torque fluctuation timing flag XHENDO is reset (XHENDO ← 0), and the update condition at step 701 is satisfied until a new torque fluctuation value is calculated and a new misfire level is determined in the above-described routine. Not to be.
【0116】次いでステップ708において失火発生フ
ラグXMFIREがセット(XMFIRE=1)されて
いるか否かが判別され、失火発生フラグXMFIREが
リセットされている(XMFIRE=0)とき、即ち、
前述のトルク変動値算出および失火レベル判定ルーチン
で失火が発生していないと判定されているときには、ス
テップ709に進んで前述のトルク変動値算出および失
火レベル判定ルーチンで算出された平均トルク変動値D
LNISMが図27(B)に示されるどのトルク変動レ
ベルLVLH(n),LVLL(n)の間にあるかが判
別される。次いでステップ710では対応するフィード
バック補正量DLFBが算出される。例えば今、目標ト
ルク変動値LVLLFBが図27(A)において破線で
示される値であり、算出された平均トルク変動値DLN
ISMが図27(B)のLVLH(1)とLVLH
(2)との間である場合、即ち目標トルク変動値LVL
LFBに対する平均トルク変動値DLNISMの偏差が
図27(A)の破線上においてDH(1)とDH(2)
の間にある場合にはフィードバック補正値DLFBは+
a2 とされる。Next, at step 708, it is determined whether or not the misfire occurrence flag XMFIRE is set (XMFIRE = 1). When the misfire occurrence flag XMFIRE is reset (XMFIRE = 0), that is,
If it is determined in the aforementioned torque fluctuation value calculation and misfire level determination routine that no misfire has occurred, the routine proceeds to step 709, where the average torque fluctuation value D calculated in the aforementioned torque fluctuation value calculation and misfire level determination routine is obtained.
It is determined which of the torque fluctuation levels LVLH (n) and LVLL (n) shown in FIG. 27 (B) is LNISM. Next, at step 710, the corresponding feedback correction amount DLFB is calculated. For example, now, the target torque fluctuation value LVLLFB is a value indicated by a broken line in FIG. 27 (A), and the calculated average torque fluctuation value DLN
ISM is LVLH (1) and LVLH in FIG.
(2), that is, the target torque fluctuation value LVL
The deviation of the average torque fluctuation value DLNISM with respect to LFB is DH (1) and DH (2) on the broken line in FIG.
In the case where the feedback correction value DLFB is between
are a 2.
【0117】次いでステップ711において平均トルク
変動値DLNISMが目標トルク変動値LVLLFB以
上であるか否かが判別され、平均トルク変動値DLNI
SMが目標トルク変動値LVLLFB以上であるときに
はステップ715に進んでリーンリミットフィードバッ
ク補正係数FLLFBijにはステップ710において算
出されたプラス側のフィードバック補正値DLFBが加
算される。その結果、空燃比が小さくなるので各気筒の
トルク変動量が減少せしめられる。Next, at step 711, it is determined whether or not the average torque fluctuation value DLNISM is equal to or greater than the target torque fluctuation value LVLLFB, and the average torque fluctuation value DLNIFB is determined.
When SM is equal to or greater than the target torque fluctuation value LVLLFB, the routine proceeds to step 715, where the positive limit feedback correction value DLFB calculated in step 710 is added to the lean limit feedback correction coefficient FLLFB ij . As a result, the air-fuel ratio becomes smaller, so that the torque fluctuation amount of each cylinder is reduced.
【0118】一方、ステップ711において平均トルク
変動値DLNISMが目標トルク変動値LVLLFBよ
り小さいときにはステップ712に進んで前述のトルク
変動値算出および失火レベル判定ルーチンで失火警告フ
ラグXMFIREWがリセットされているか否かが判別
される。失火警告フラグXMFIREWがリセットされ
ており、即ち、平均トルク変動値DLNISMが目標ト
ルク変動値LVLLFBより大きくなっても失火は十分
な期間(例えば、240サイクル)発生しておらず、か
つ、平均トルク変動値DLNISMが目標トルク変動値
LVLLFBより小さいときには、ステップ716に進
んでリーンリミットフィードバック補正係数FLLFB
ijにはステップ710において算出されたマイナス側の
フィードバック補正値DLFBが加算される。その結
果、空燃比が大きくなるので各気筒のトルク変動量が増
大せしめられる。On the other hand, if the average torque fluctuation value DLNISM is smaller than the target torque fluctuation value LVLLFB in step 711, the flow advances to step 712 to determine whether or not the misfire warning flag XMFIREW has been reset in the aforementioned torque fluctuation value calculation and misfire level determination routine. Is determined. If the misfire warning flag XMFIREW is reset, that is, even if the average torque fluctuation value DLNISM becomes larger than the target torque fluctuation value LVLLFB, a misfire has not occurred for a sufficient period (for example, 240 cycles), and the average torque fluctuation has not occurred. When the value DLNISM is smaller than the target torque fluctuation value LLLFB, the routine proceeds to step 716, where the lean limit feedback correction coefficient FLLFFB is performed.
The negative feedback correction value DLFB calculated in step 710 is added to ij. As a result, the air-fuel ratio increases, so that the amount of torque fluctuation in each cylinder is increased.
【0119】一方、ステップ712において、失火警告
フラグXMFIREWがセットされているときはステッ
プ713に進んでステップ710で算出されたフィード
バック補正値DLFBが−b2 以下であり、かつ、前述
のトルク変動値算出および失火レベル判定ルーチンでリ
ーン側補正実行カウント値CNOMFが8以上であるか
否かが判別される。失火警告フラグXMFIREWがセ
ットされており、即ち、現在において失火は発生してい
ないが、過去において失火が比較的短い間隔(例えば、
48サイクル以下)で連続して発生しており、フィード
バック補正値DLFBが−b2 以下であり、即ち、現在
における平均トルク変動値が目標トルク変動値に対して
比較的小さく、かつ、リーン側補正実行カウント値CN
OMFが8以上であるとき、即ち、ある程度の期間(例
えば、128サイクル)失火が発生していないときに
は、ステップ717に進んでリーンリミットフィードバ
ック補正係数FLLFBijには(1−β)が乗算され、
ステップ719においてリーン側補正実行カウント値C
NOMFはリセット(CNOMF←0)される。即ち、
過去において失火が比較的短い間隔で連続して発生して
も、128サイクルの間失火が発生しておらず、平均ト
ルク変動値DLNISMが目標トルク変動値に対して比
較的小さい時には、リーンリミットフィードバック補正
係数FLLFB ijは128サイクル毎にβ%(例えば、
0.04%)だけ減少させられ、空燃比は徐々にリーン
に補正されるようになっている。On the other hand, in step 712, a misfire warning
If the flag XMFIREW is set,
Go to step 713 and feed calculated in step 710
The back correction value DLFB is -bTwoThe following and
The torque fluctuation value calculation and misfire level judgment routine
The side correction execution count value CNOMF is 8 or more
It is determined whether or not it is. The misfire warning flag XMFIREW
That is, a misfire has occurred
No, but in the past misfires were relatively short intervals (for example,
(48 cycles or less)
The back correction value DLFB is -bTwoIs the current
The average torque fluctuation value at
Relatively small and lean-side correction execution count value CN
When OMF is 8 or more, that is, for a certain period (eg,
For example, 128 cycles) when misfire has not occurred
Proceeds to step 717 and proceeds to lean limit feedback.
Correction coefficient FLLFBijIs multiplied by (1-β),
In step 719, the lean-side correction execution count value C
NOMF is reset (CNOMF ← 0). That is,
In the past, misfires occurred continuously at relatively short intervals
No misfire occurred for 128 cycles, and the average
The torque fluctuation value DLNISM is compared with the target torque fluctuation value.
When relatively small, lean limit feedback compensation
Coefficient FLLFB ijIs β% every 128 cycles (eg,
0.04%), and the air-fuel ratio gradually decreases
Is corrected.
【0120】一方、ステップ708において失火発生フ
ラグXMFIREがセットされている(XMFIRE=
1)ときには、ステップ714に進んでリーンリミット
フィードバック補正係数FLLFBijには(1+α)が
乗算され、ステップ718において失火発生フラグXM
FIREはリセット(XMFIRE←0)される。即
ち、失火が発生している時には、リーンリミットフィー
ドバック補正係数FLLFBijは16サイクル毎にα%
(例えば、0.8%)だけ増大させられ、空燃比は大き
くリッチ側に補正されるようになっている。On the other hand, in step 708, the misfire occurrence flag XMFIRE is set (XMFIRE =
In step 1), the routine proceeds to step 714, where the lean limit feedback correction coefficient FLLFB ij is multiplied by (1 + α).
FIRE is reset (XMFIRE ← 0). That is, when a misfire has occurred, the lean limit feedback correction coefficient FLLFB ij becomes α% every 16 cycles.
(For example, 0.8%), and the air-fuel ratio is largely corrected to the rich side.
【0121】次に、ステップ720に進んで大失火発生
フラグXMFIREHがセット(XMFIREH=1)
されているか否かが判別される。大失火が発生していな
いときにはステップ725にジャンプするが、大失火が
発生したときにはステップ721に進んでステップ71
4と同様にリーンリミットフィードバック補正係数FL
LFBijには(1+α)が乗算される。このように、大
失火が発生したときには、リーンリミットフィードバッ
ク補正係数FLLFBijは、ステップ714に加えてさ
らに16サイクル毎にα%(例えば、0.8%)だけ増
大させられ、即ち、結果的に約1.6%増大させられ、
空燃比はかなり大きくリッチ側に補正されるようになっ
ている。Next, the routine proceeds to step 720, where the large misfire occurrence flag XMFIREH is set (XMFIREH = 1).
It is determined whether or not it has been performed. If no major misfire has occurred, the process jumps to step 725, but if a major misfire has occurred, the process proceeds to step 721 and proceeds to step 71.
4 as well as the lean limit feedback correction coefficient FL
LFB ij is multiplied by (1 + α). Thus, when a large misfire occurs, the lean limit feedback correction coefficient FLLFB ij is increased by α% (for example, 0.8%) every 16 cycles in addition to step 714, that is, as a result, About 1.6% increased,
The air-fuel ratio is corrected to a considerably large value on the rich side.
【0122】次いでステップ722に進んで大失火が発
生したときのリーンリミットフィードバック補正係数F
LLFBijが、対応する下限ガード値FLLFBMIN
ijより大きいか否かが判別される。下限ガード値FLL
FBMINijは各リーンリミットフィードバック補正係
数FLLFBij毎に設定されている。このリーンリミッ
トフィードバック補正係数は、ステップ714において
リッチ側に補正させる以前の値FLLFBk-2 であり、
下限ガード値FLLFBMINijより大きいときには、
ステップ723に進んでこの下限ガード値FLLFBM
INijは、大失火が発生したときのリーンリミットフィ
ードバック補正係数FLLFBijとされ、ステップ72
4に進む。一方、大失火が発生したときのリーンリミッ
トフィードバック補正係数FLLFBijが、対応する下
限ガード値FLLFBMINij以下であるときにはステ
ップ724にジャンプする。次いでステップ724では
大失火発生フラグXMFIREHはリセットされ、ステ
ップ725に進む。Next, the routine proceeds to step 722, where the lean limit feedback correction coefficient F when a large misfire occurs
LLFB ij is the corresponding lower guard value FLLFBMIN
It is determined whether it is greater than ij . Lower guard value FLL
FBMIN ij is set for each lean limit feedback correction coefficient FLLFB ij . This lean limit feedback correction coefficient is a value FLLFB k−2 before correction to the rich side in step 714,
When the lower guard value FLLFBMIN ij is larger than
Proceeding to step 723, the lower guard value FLLFBM
IN ij is a lean limit feedback correction coefficient FLLFB ij when a large misfire occurs.
Proceed to 4. On the other hand, when the lean limit feedback correction coefficient FLLFB ij at the time of the occurrence of the large misfire is equal to or smaller than the corresponding lower limit guard value FLLFBMIN ij , the routine jumps to step 724. Next, at step 724, the large misfire occurrence flag XMFIREH is reset, and the routine proceeds to step 725.
【0123】ステップ725では、本ルーチンにおいて
算出されたリーンリミットフィードバック補正係数FL
LFBijが、対応する上限ガード値FLLFBMAXij
より大きいか否かが判別され、リーンリミットフィード
バック補正係数FLLFBijが、対応する上限ガード値
FLLFBMAXijより大きいときにはステップ726
に進んでリーンリミットフィードバック補正係数FLL
FBijは、対応する上限ガード値FLLFBMAXijと
され処理ルーチンを完了する。一方、ステップ725に
おいて、本ルーチンで算出されたリーンリミットフィー
ドバック補正係数FLLFBijが、対応する上限ガード
値FLLFBMAXij以下であるときには、ステップ7
27に進んでリーンリミットフィードバック補正係数F
LLFB ijが、対応する下限ガード値FLLFBMIN
ijより小さいか否かが判別され、リーンリミットフィー
ドバック補正係数FLLFBijが、対応する下限ガード
値FLLFBMINij以上であるときには、処理ルーチ
ンを完了するが、リーンリミットフィードバック補正係
数FLLFBijが、対応する下限ガード値FLLFBM
INijより小さいときには、ステップ728に進んでリ
ーンリミットフィードバック補正係数FLLFBijは、
対応する下限ガード値FLLFBMINijとされ処理ル
ーチンを完了する。In step 725, in this routine
The calculated lean limit feedback correction coefficient FL
LFBijIs the corresponding upper guard value FLLFFBMAXij
Is greater than or equal to the lean limit feed.
Back correction coefficient FLLFBijIs the corresponding upper guard value
FLLFBMAXijIf greater, step 726
To the lean limit feedback correction coefficient FLL
FBijIs the corresponding upper guard value FLLFFBMAXijWhen
And the processing routine is completed. On the other hand, to step 725
The lean limit fee calculated in this routine
Dbackback correction coefficient FLLFBijBut the corresponding upper limit guard
Value FLLFBMAXijIf not, step 7
Proceeding to 27, the lean limit feedback correction coefficient F
LLFB ijIs the corresponding lower guard value FLLFBMIN
ijIt is determined whether it is smaller than
Dbackback correction coefficient FLLFBijBut the corresponding lower guard
Value FLLFBMINijIf it is more than the processing routine
Completed, but the lean limit feedback
Number FLLFFBijIs the corresponding lower guard value FLLFBM
INijIf smaller, proceed to step 728 to reset
Limit feedback correction coefficient FLLFBijIs
Corresponding lower guard value FLLFBMINijTo be processed
Complete the routine.
【0124】このように、一度大失火が発生すると、下
限ガード値FLLFBMINijは大失火発生時における
リーンリミットフィードバック補正係数の値まで引き上
げられ、その後において失火が発生しなくなってステッ
プ716又は717においてリーンリミットフィードバ
ック補正係数FLLFBijが小さくされても大失火発生
時におけるリーンリミットフィードバック補正係数より
下回ることは防止され、即ち、空燃比は大失火発生時に
おける空燃比よりリーンとされることはなく、再び大失
火が発生することを防止することができる。失火の発生
し易さは、機関運転中の気象条件等によって大きく変化
するために、このように引き上げられた下限ガード値
は、機関運転中は保持され、機関停止後に初期値に戻さ
れるようになっている。なお、上記では下限ガード値を
大失火発生時におけるリーンリミットフィードバック補
正係数の値まで引き上げるようにしたが、下限ガード値
をステップ714又はステップ721において補正され
た後のリーンリミットフィードバック補正係数まで引き
上げることで、再び大失火が発生することをさらに確実
に防止することができる。As described above, once a large misfire occurs, the lower limit guard value FLLFBMIN ij is raised to the value of the lean limit feedback correction coefficient at the time of the large misfire, and thereafter the misfire does not occur. Even if the limit feedback correction coefficient FLLFB ij is reduced, it is prevented from being lower than the lean limit feedback correction coefficient at the time of occurrence of a large misfire, that is, the air-fuel ratio is not made leaner than the air-fuel ratio at the time of occurrence of a large misfire. It is possible to prevent a large misfire from occurring. Since the likelihood of misfire greatly changes depending on weather conditions during engine operation, the lower guard value thus raised is maintained during engine operation and returned to the initial value after the engine stops. Has become. In the above description, the lower limit guard value is raised to the value of the lean limit feedback correction coefficient when a large misfire occurs. However, the lower limit guard value is raised to the lean limit feedback correction coefficient corrected in step 714 or step 721. Thus, it is possible to more reliably prevent the occurrence of a large misfire again.
【0125】なお、図24に示すルーチンに示されるよ
うにトルク変動値の算出条件が成立しないときにはステ
ップ407において全ての気筒に対するDLNISM
(i)がLVLLFBとされ、斯くして平均トルク変動
値DLNISMも目標トルク変動値LVLLFBとされ
る。従ってこのときにはリーンリミットフィードバック
補正係数FLLFBijの更新は行われない。When the calculation condition of the torque fluctuation value is not satisfied as shown in the routine shown in FIG. 24, at step 407, the DLNISM for all the cylinders is set.
(I) is LVLLFB, and thus the average torque fluctuation value DLNISM is also the target torque fluctuation value LVLLFB. Accordingly, at this time, the lean limit feedback correction coefficient FLLFB ij is not updated.
【0126】次に図35を参照しつつ燃料噴射時間の算
出ルーチンについて説明する。図35を参照すると、ま
ず初めにステップ801において図2に示すマップから
基本燃料噴射時間TPが算出される。次いでステップ8
02ではリーン運転を行うべき運転状態か否かが判別さ
れる。リーン運転を行うべき運転状態のときにはステッ
プ803に進んで理論空燃比フィードバック補正係数F
AFの値が1.0に固定される。次いでステップ804
では図4に示すマップからリーン補正係数FLEANが
算出され、次いでステップ805では図5に示すマップ
からリーンリミットフィードバック補正係数FLLFB
が読込まれる。次いでステップ809では次式に基づい
て燃料噴射時間TAUが算出される。 TAU=TP・FLEAN・FLLFB・FAF+TA
UVNext, a routine for calculating the fuel injection time will be described with reference to FIG. Referring to FIG. 35, first, in step 801, the basic fuel injection time TP is calculated from the map shown in FIG. Then step 8
In 02, it is determined whether or not the operating state is such that the lean operation should be performed. When the vehicle is in the operating state in which the lean operation is to be performed, the routine proceeds to step 803, where the stoichiometric air-fuel ratio feedback correction coefficient F
The value of AF is fixed at 1.0. Then step 804
Then, the lean correction coefficient FLEAN is calculated from the map shown in FIG.
Is read. Next, at step 809, the fuel injection time TAU is calculated based on the following equation. TAU = TP ・ FLEAN ・ FLLFB ・ FAF + TA
UV
【0127】これに対し、ステップ802においてリー
ン運転を行うべき運転状態でないと判別されたとき、即
ち空燃比を理論空燃比にすべきときにはステップ806
に進んでリーン補正係数FLEANが1.0に固定さ
れ、次いでステップ807においてリーンリミットフィ
ードバック補正係数FLLFBが1.0に固定される。
次いでステップ808では空燃比センサ17の出力信号
に基づいて空燃比が理論空燃比となるように理論空燃比
フィードバック補正係数FAFが制御される。次いでス
テップ809に進み、燃料噴射時間TAUが算出され
る。On the other hand, when it is determined in step 802 that the operating state is not such that lean operation should be performed, that is, when the air-fuel ratio should be set to the stoichiometric air-fuel ratio, step 806 is executed.
Then, the lean correction coefficient FLEAN is fixed at 1.0, and then at step 807, the lean limit feedback correction coefficient FLLFB is fixed at 1.0.
Next, at step 808, the stoichiometric air-fuel ratio feedback correction coefficient FAF is controlled based on the output signal of the air-fuel ratio sensor 17 so that the air-fuel ratio becomes the stoichiometric air-fuel ratio. Next, the routine proceeds to step 809, where the fuel injection time TAU is calculated.
【0128】図36は、前述した本実施形態によるリー
ン運転時の空燃比制御におけるトルク変動量DLNの変
化に対するリーンリミットフィードバック補正係数FL
LFBの変化を示すタイムチャートである。これを以下
に説明する。トルク変動量DLNが設定値LVLMFの
2.5倍より大きくなると(T1)、大失火が発生した
と判定され、リーンリミットフィードバック補正係数F
LLFBは約1.6%増大される。この時点では、失火
警告フラグXMFIREWはリセットされており、FL
LFB算出ルーチンのステップ715又は717におい
て平均トルク変動値DLNISMに基づき決定されるフ
ィードバック補正値によってリーンリミットフィードバ
ック補正係数が更新される。FIG. 36 shows a lean limit feedback correction coefficient FL for a change in the torque fluctuation DLN in the air-fuel ratio control during the lean operation according to the above-described embodiment.
It is a time chart which shows a change of LFB. This will be described below. When the torque variation DLN becomes larger than 2.5 times the set value LVLMF (T1), it is determined that a large misfire has occurred, and the lean limit feedback correction coefficient F
LLFB is increased by about 1.6%. At this point, the misfire warning flag XMFIREW has been reset and FL
In step 715 or 717 of the LFB calculation routine, the lean limit feedback correction coefficient is updated by the feedback correction value determined based on the average torque fluctuation value DLNISM.
【0129】次いでトルク変動量DLNが設定値LVL
MFの2.5倍より小さいが設定値LVLMFより大き
くなると(T2)、小失火が発生したと判定され、リー
ンリミットフィードバック補正係数FLLFBは約0.
8%増大される。約48サイクル以下の比較的短い期間
で再び小失火が発生すると(T3)、リーンリミットフ
ィードバック補正係数FLLFBは約0.8%増大さ
れ、失火警告フラグXMFIREWがセットされる。そ
の後、平均トルク変動値DLNISMが目標トルク変動
値LVLLFB以上であれば、FLLFB算出ルーチン
のステップ715において平均トルク変動値DLNIS
Mに基づき決定されるフィードバック補正値によってリ
ーンリミットフィードバック補正係数が増大されるが、
平均トルク変動値DLNISMが目標トルク変動値LV
LLFBより小さければ、FLLFB算出ルーチンのス
テップ716における処理によってリーンリミットフィ
ードバック補正係数FLLFBは約128サイクル毎に
0.04%減少される。Next, the torque variation DLN is set to the set value LVL.
If it is smaller than 2.5 times the MF but larger than the set value LVLMF (T2), it is determined that a small misfire has occurred, and the lean limit feedback correction coefficient FLLFB is set to about 0.
Increased by 8%. When a small misfire occurs again in a relatively short period of about 48 cycles or less (T3), the lean limit feedback correction coefficient FLLFB is increased by about 0.8%, and the misfire warning flag XMFIREW is set. Thereafter, if the average torque fluctuation value DLNISM is equal to or greater than the target torque fluctuation value LVLLFB, the average torque fluctuation value DLNIS is determined in step 715 of the FLLFB calculation routine.
Although the lean limit feedback correction coefficient is increased by the feedback correction value determined based on M,
The average torque fluctuation value DLNISM is equal to the target torque fluctuation value LV.
If it is smaller than LLFB, the lean limit feedback correction coefficient FLLFB is reduced by 0.04% about every 128 cycles by the processing in step 716 of the FLLFB calculation routine.
【0130】その後、再び小失火が発生すれば(T
4)、リーンリミットフィードバック補正係数FLLF
Bは約0.8%増大され、その後、平均トルク変動値D
LNISMが目標トルク変動値LVLLFBより小さけ
れば、リーンリミットフィードバック補正係数FLLF
Bは約128サイクル毎に0.04%減少される。この
ようなリーンリミットフィードバック補正係数FLLF
Bの減少によって平均トルク変動値DLNISMが目標
トルク変動値LVLLFBより大きくなっても約240
サイクル以上失火が発生しないときには(T5)、失火
警告フラグXMFIREWはリセットされ、FLLFB
算出ルーチンのステップ715又は717において平均
トルク変動値DLNISMに基づき決定されるフィード
バック補正値によってリーンリミットフィードバック補
正係数が更新される。このリーンリミットフィードバッ
ク補正係数FLLFBの更新および前述の0.04%減
少において、リーンリミットフィードバック補正係数F
LLFBは、大失火発生時(T1)のフィードバック補
正係数FLLFBMINによって下限ガードされてい
る。Thereafter, if a small misfire occurs again (T
4), lean limit feedback correction coefficient FLLF
B is increased by about 0.8%, after which the average torque variation D
If LNISM is smaller than the target torque fluctuation value LLLFB, the lean limit feedback correction coefficient FLLF
B is reduced by 0.04% about every 128 cycles. Such a lean limit feedback correction coefficient FLLF
Even if the average torque fluctuation value DLNISM becomes larger than the target torque fluctuation value LVLLFB due to the decrease of B, approximately 240
When the misfire does not occur for more than one cycle (T5), the misfire warning flag XMFIREW is reset and FLLFB
In step 715 or 717 of the calculation routine, the lean limit feedback correction coefficient is updated by the feedback correction value determined based on the average torque fluctuation value DLNISM. When the lean limit feedback correction coefficient FLLFFB is updated and the aforementioned 0.04% decrease, the lean limit feedback correction coefficient F
LLFB is guarded at the lower limit by the feedback correction coefficient FLLFBMIN at the time of the occurrence of the large misfire (T1).
【0131】このような空燃比制御に対して、点火時期
制御は、一般的なものであり、図38に示すマップから
機関負荷Q/Nおよび機関回転数Nに基づき最適点火時
期IGmnが読み込まれて実施される。最適点火時期は、
一般的にMBTと称され、最大トルクを発生する最も遅
角側の点火時期であり、図38に示すマップにおいて
は、機関負荷Q/Nおよび機関回転数Nにより定まる機
関運転状態毎に、この時の空燃比を考慮して設定されて
いる。こうして、失火レベルに応じた空燃比制御によ
り、失火を確実に抑制することができるが、失火は、点
火時期の制御によっても抑制可能であり、このような点
火時期制御を以下に説明する。In contrast to the air-fuel ratio control, the ignition timing control is general. The optimum ignition timing IGmn is read from the map shown in FIG. 38 based on the engine load Q / N and the engine speed N. It is implemented. The optimal ignition timing is
Generally referred to as MBT, it is the ignition timing on the most retarded side that generates the maximum torque. In the map shown in FIG. 38, this ignition timing is determined for each engine operating state determined by the engine load Q / N and the engine speed N. It is set in consideration of the air-fuel ratio at the time. Thus, the misfire can be reliably suppressed by the air-fuel ratio control according to the misfire level, but the misfire can also be suppressed by controlling the ignition timing. Such an ignition timing control will be described below.
【0132】図37は、このための点火時期算出ルーチ
ンを示している。このルーチンでは、まず、ステップ9
01において、図38に示すマップから機関負荷Q/N
および機関回転数Nに基づき最適点火時期IGmnが読み
込まれ、次いでステップ902において、図39に示す
マップから吸入空気量Qおよび機関回転数Nに基づき点
火時期補正係数Kijが読み込まれ、次いでステップ90
3において、最適点火時期IGmnに点火時期補正係数K
ijが乗算されて実際の点火時期IGとされるようになっ
ている。FIG. 37 shows an ignition timing calculation routine for this purpose. In this routine, first, step 9
01, the engine load Q / N from the map shown in FIG.
And engine speed on the basis of the N optimum ignition timing IGmn are read, then in step 902, the ignition timing correction coefficient K ij based on the intake air amount Q and engine speed N from the map shown in FIG. 39 is read, then steps 90
In 3, the ignition timing correction coefficient K is set to the optimum ignition timing IG mn.
ij is multiplied to obtain the actual ignition timing IG.
【0133】図39の点火時期補正係数Kijのマップ
は、図5に示すリーンリミットフィードバック補正係数
FLLFBのマップと同様な各学習領域毎に対して夫々
点火時期補正係数Kijが設定されているものである。ま
た、全学習領域の外側の領域、すなわち、理論空燃比で
の運転が実施される領域にも点火時期補正係数K00が設
定されている。当初、全ての点火時期補正係数Kは1と
されている。理論空燃比での運転が実施される領域の点
火時期補正係数K00が更新されずに1に維持されるため
に、理論空燃比での運転の場合には、図37の点火時期
算出ルーチンにおいて、最適点火時期IGmnは補正され
ることなく、そのまま実際の点火時期とされる。In the map of the ignition timing correction coefficient K ij shown in FIG. 39, the ignition timing correction coefficient K ij is set for each learning region similar to the map of the lean limit feedback correction coefficient FLLFB shown in FIG. Things. Also, the ignition timing correction coefficient K00 is set in a region outside the entire learning region, that is, in a region where the operation at the stoichiometric air-fuel ratio is performed. Initially, all the ignition timing correction coefficients K are set to 1. For ignition timing correction coefficient K 00 of the area operated at the stoichiometric air-fuel ratio is performed is maintained to 1 without being updated, in the case of the operation at the stoichiometric air-fuel ratio, the ignition timing calculating routine shown in FIG. 37 , The optimum ignition timing IGmn is used as the actual ignition timing without correction.
【0134】一方、リーン運転を実施する領域の各点火
時期補正係数Kijは、図40から42に示すFLLF
B,Kの算出ルーチンによって1から更新されるように
なっており、それにより、図37の点火時期算出ルーチ
ンにおいて、最適点火時期IG mnは進角側(点火時期補
正係数Kijが1より大きく更新された場合)又は遅角側
(点火時期補正係数Kijが1より小さく更新された場
合)に補正される。図40から42に示すFLLFB,
Kの算出ルーチンは、図32から34の前述したFLL
FB算出ルーチンの代わりに実施されるものであり、対
応するステップは、ダッシュ付きの番号によって示され
ている。両方のルーチンの違いについてのみ以下に説明
する。On the other hand, each ignition in the region where the lean operation is performed
Timing correction coefficient KijIs the FLLF shown in FIGS.
Be updated from 1 by the calculation routine of B and K
The ignition timing calculation routine shown in FIG.
At the optimal ignition timing IG mnIs the advance side (ignition timing supplement
Positive coefficient KijIs updated to be greater than 1) or the retard side
(Ignition timing correction coefficient KijIs updated to less than 1
Is corrected. FLLFFB shown in FIGS. 40 to 42,
The calculation routine of K is based on the FLL described above with reference to FIGS.
This is performed instead of the FB calculation routine.
The corresponding steps are indicated by numbers with dashes.
ing. Only the differences between the two routines are described below
I do.
【0135】本FLLFB,Kの算出ルーチンでは、ス
テップ713’において、失火警告フラグXMFIRE
Wがセットされており、即ち、現在において失火は発生
していないが、過去において失火が比較的短い間隔(例
えば、48サイクル以下)で連続して発生しており、フ
ィードバック補正値DLFBが−b2 以下であり、即
ち、現在における平均トルク変動値が目標トルク変動値
に対して比較的小さく、かつ、リーン側補正実行カウン
ト値CNOMFが8以上であるとき、即ち、ある程度の
期間(例えば、128サイクル)失火が発生していない
ときには、ステップ717’に進んで点火時期補正係数
Kijには(1+γ)が乗算され、ステップ719’にお
いてリーン側補正実行カウント値CNOMFはリセット
(CNOMF←0)される。即ち、過去において失火が
比較的短い間隔で連続して発生しても、128サイクル
の間失火が発生しておらず、平均トルク変動値DLNI
SMが目標トルク変動値に対して比較的小さい時には、
点火時期補正係数Kijは128サイクル毎にγ%だけ増
大させられ、最適点火時期IGmnは進角側に補正される
ようになっている。In the routine for calculating FLFLFB, K in step 713 ', the misfire warning flag XMFIRE is set.
W is set, that is, a misfire has not occurred at present, but a misfire has occurred continuously at relatively short intervals (for example, 48 cycles or less) in the past, and the feedback correction value DLFB is -b. 2 or less, that is, when the current average torque fluctuation value is relatively smaller than the target torque fluctuation value and the lean-side correction execution count value CNOMF is 8 or more, that is, for a certain period (for example, when the cycle) misfire has not occurred, step 717 'in the ignition timing correction coefficient K ij proceeds to the multiplied (1 + gamma), the step 719' lean correction execution count CNOMF in is reset (CNOMF ← 0) You. That is, even if misfires occur continuously at relatively short intervals in the past, no misfires have occurred for 128 cycles, and the average torque fluctuation value DLNI
When SM is relatively small with respect to the target torque fluctuation value,
The ignition timing correction coefficient K ij is increased by γ% every 128 cycles, and the optimum ignition timing IGmn is corrected to the advanced side.
【0136】一方、ステップ708’において失火発生
フラグXMFIREがセットされている(XMFIRE
=1)ときには、ステップ714’に進んで点火時期補
正係数Kijには(1−δ)が乗算され、ステップ71
8’において失火発生フラグXMFIREはリセット
(XMFIRE←0)される。即ち、失火が発生してい
る時には、点火時期補正係数Kijは16サイクル毎にδ
%だけ減少させられ、最適点火時期IGmnは遅角側に補
正されるようになっている。On the other hand, in step 708 ', the misfire occurrence flag XMFIRE is set (XMFIRE).
= 1), the routine proceeds to step 714 ′, where the ignition timing correction coefficient K ij is multiplied by (1−δ).
At 8 ', the misfire occurrence flag XMFIRE is reset (XMFIRE ← 0). That is, when a misfire occurs, the ignition timing correction coefficient K ij becomes δ every 16 cycles.
%, And the optimum ignition timing IGmn is corrected to the retard side.
【0137】次に、ステップ720’に進んで大失火発
生フラグXMFIREHがセット(XMFIREH=
1)されているか否かが判別される。大失火が発生して
いないときにはステップ725’にジャンプするが、大
失火が発生したときにはステップ721’に進んでステ
ップ714’と同様に点火時期補正係数Kijには(1−
δ)が乗算される。このように、大失火が発生したとき
には、点火時期補正係数Kijは、ステップ714’に加
えてさらに16サイクル毎にδ%だけ減少させられ、即
ち、結果的に約2δ%減少させられ、最適点火時期IG
mnは大きく遅角側に補正されるようになっている。Next, the routine proceeds to step 720 ', in which the large misfire occurrence flag XMFIREH is set (XMFIREH =
1) It is determined whether or not it has been performed. When a large misfire has not occurred, the process jumps to step 725 '. However, when a large misfire has occurred, the process proceeds to step 721', and similarly to step 714 ', the ignition timing correction coefficient Kij contains (1--
δ) is multiplied. As described above, when a large misfire occurs, the ignition timing correction coefficient K ij is further reduced by δ% every 16 cycles in addition to step 714 ′, that is, by about 2δ% as a result, and the optimal Ignition timing IG
mn is largely corrected to the retard side.
【0138】次いでステップ722’に進んで大失火が
発生したときの点火時期補正係数K ijが、対応する上限
ガード値KMAXijより小さいか否かが判別される。上
限ガード値KMAXijは各点火時期補正係数Kij毎に設
定されている。この点火時期補正係数は、ステップ71
4’において遅角側に補正させる以前の値Kk-2 であ
り、上限ガード値KMAXijより小さいときには、ステ
ップ723に進んでこの上限ガード値KMAXijは、大
失火が発生したときの点火時期補正係数Kijとされ、ス
テップ724’に進む。一方、大失火が発生したときの
点火時期補正係数Kijが、対応する上限ガード値KMA
Xij以上であるときにはステップ724’にジャンプす
る。次いでステップ724’では大失火発生フラグXM
FIREHはリセットされ、ステップ725’に進む。Next, the routine proceeds to step 722 ', where a great misfire occurs.
Ignition timing correction coefficient K when it occurs ijBut the corresponding upper limit
Guard value KMAXijIt is determined whether or not it is smaller. Up
Limit guard value KMAXijIs the ignition timing correction coefficient KijSet for each
Is defined. This ignition timing correction coefficient is calculated in step 71
4 ', the value K before correction to the retard sidek-2In
The upper limit guard value KMAXijWhen smaller,
Proceeding to step 723, this upper limit guard value KMAXijIs large
Ignition timing correction coefficient K when misfire occursijAnd
Proceed to step 724 '. On the other hand, when a major misfire
Ignition timing correction coefficient KijIs the corresponding upper guard value KMA
XijIf so, jump to step 724 '.
You. Next, at step 724 ', the large misfire occurrence flag XM
FIREH is reset and goes to step 725 '.
【0139】ステップ725’から728’において、
リーンリミットフィードバック補正係数FLLFBの上
限および下限ガード処理が行われた後、ステップ72
9’において、点火時期補正係数Kijが、対応する上限
ガード値KMAXijより大きいか否かが判別され、点火
時期補正係数Kijが、対応する上限ガード値KMAXij
より大きいときにはステップ730’に進んで点火時期
補正係数Kijは、対応する上限ガード値KMAXijとさ
れ処理ルーチンを完了する。一方、ステップ729’に
おいて、点火時期補正係数Kijが、対応する上限ガード
値KMAXij以下であるときには、ステップ731’に
進んで点火時期補正係数Kijが、対応する下限ガード値
KMINijより小さいか否かが判別され、点火時期補正
係数Kijが、対応する下限ガード値KMINij以上であ
るときには、処理ルーチンを完了するが、点火時期補正
係数Kijが、対応する下限ガード値KMINijより小さ
いときには、ステップ732’に進んで点火時期補正係
数Kijは、対応する下限ガード値KMINijとされ処理
ルーチンを完了する。In steps 725 'to 728',
After the upper and lower limit guard processing of the lean limit feedback correction coefficient FLLFB is performed, step 72 is executed.
In 9 ', the ignition timing correction coefficient K ij is whether greater than the corresponding upper limit guard value KMAX ij is determined, the ignition timing correction coefficient K ij is the corresponding upper limit guard value KMAX ij
Ignition timing correction coefficient K ij proceeds to step 730 'when larger completes is a corresponding upper guard value KMAX ij routine. On the other hand, when the ignition timing correction coefficient K ij is equal to or smaller than the corresponding upper guard value KMAX ij in step 729 ′, the routine proceeds to step 731 ′, where the ignition timing correction coefficient K ij is smaller than the corresponding lower guard value KMIN ij. If the ignition timing correction coefficient K ij is equal to or greater than the corresponding lower limit guard value KMIN ij , the processing routine is completed, but the ignition timing correction coefficient K ij is set to a value smaller than the corresponding lower limit guard value KMIN ij . when small, the ignition timing correction coefficient K ij proceeds to step 732 'completes the set to the corresponding lower limit guard value KMIN ij routine.
【0140】このように、一度大失火が発生すると、点
火時期補正係数Kの上限ガード値KMAXijは大失火発
生時における点火時期補正係数の値まで引き下げられ、
その後において失火が発生しなくなってステップ71
6’において点火時期補正係数Kijが大きくされても大
失火発生時における点火時期補正係数より上回ることは
防止され、即ち、最適点火時期は大失火発生時における
点火時期より進角側とされることはなく、再び大失火が
発生することを防止することができる。失火の発生し易
さは、機関運転中の気象条件等によって大きく変化する
ために、このように引き下げられた上限ガード値は、機
関運転中は保持され、機関停止後に初期値に戻されるよ
うになっている。なお、上記では上限ガード値を大失火
発生時における点火時期補正係数の値まで引き下げるよ
うにしたが、上限ガード値をステップ714’又はステ
ップ721’において補正された後の点火時期補正係数
まで引き下げることで、再び大失火が発生することをさ
らに確実に防止することができる。[0140] Thus, once a large misfire occurs, the upper limit guard value KMAX ij of the ignition timing correction coefficient K is pulled up to the value of the ignition timing correction coefficient at the time of large-misfiring,
After that, the misfire no longer occurs and step 71
Even if the ignition timing correction coefficient K ij is increased in 6 ′, it is prevented from exceeding the ignition timing correction coefficient at the time of the occurrence of a large misfire, that is, the optimal ignition timing is advanced to the ignition timing at the time of the occurrence of the large misfire. It is possible to prevent the occurrence of a large misfire again. Since the likelihood of misfire greatly changes depending on weather conditions during operation of the engine, the lowered upper guard value is maintained during operation of the engine and returned to the initial value after the engine stops. Has become. In the above description, the upper limit guard value is reduced to the value of the ignition timing correction coefficient when a large misfire occurs, but the upper limit guard value is reduced to the ignition timing correction coefficient corrected in step 714 ′ or 721 ′. Thus, it is possible to more reliably prevent the occurrence of a large misfire again.
【0141】なお、図24に示すルーチンに示されるよ
うにトルク変動値の算出条件が成立しないときにはステ
ップ407において全ての気筒に対するDLNISM
(i)がLVLLFBとされ、斯くして平均トルク変動
値DLNISMも目標トルク変動値LVLLFBとされ
る。従ってこのときには点火時期補正係数Kijの更新は
行われない。When the calculation condition of the torque fluctuation value is not satisfied, as shown in the routine shown in FIG. 24, at step 407, the DLNISM for all the cylinders is set.
(I) is LVLLFB, and thus the average torque fluctuation value DLNISM is also the target torque fluctuation value LVLLFB. Accordingly, at this time, the ignition timing correction coefficient K ij is not updated.
【0142】こうして、リーンリミットフィードバック
補正係数FLLFBは、トルク変動値DLNISMに応
じて更新され、前述同様、空燃比が制御されると共に、
失火発生の際には、リーンリミットフィードバック補正
係数FLLFBを更新して空燃比をリッチ側に補正する
ことに代えて、前述同様な考え方に基づいて点火時期を
遅角側に補正するようになっており、空燃比のリッチ化
による燃料消費率の悪化を伴うことなく失火を確実に抑
制することが可能となる。As described above, the lean limit feedback correction coefficient FLLFB is updated in accordance with the torque fluctuation value DLNISM.
In the event of a misfire, instead of updating the lean limit feedback correction coefficient FLLFB to correct the air-fuel ratio to the rich side, the ignition timing is corrected to the retard side based on the same concept as described above. Thus, it is possible to reliably suppress misfire without deteriorating the fuel consumption rate due to the enrichment of the air-fuel ratio.
【0143】[0143]
【発明の効果】本発明による内燃機関の空燃比制御装置
によれば、少なくとも一つの気筒が発生する駆動力変動
量の大きさに応じて失火レベルが判定され、失火を確実
に検出することができると共に、この失火レベルに応じ
て空燃比又は点火時期が制御されるために、失火を確実
に抑制することができる。According to the air-fuel ratio control apparatus for an internal combustion engine according to the present invention, the misfire level is determined in accordance with the magnitude of the driving force fluctuation generated by at least one cylinder, and the misfire can be reliably detected. In addition, since the air-fuel ratio or the ignition timing is controlled according to the misfire level, misfire can be reliably suppressed.
【図1】内燃機関の全体図である。FIG. 1 is an overall view of an internal combustion engine.
【図2】基本燃料噴射時間のマップを示す図である。FIG. 2 is a diagram showing a map of a basic fuel injection time.
【図3】NOx の発生量とトルク変動を示す図である。3 is a diagram showing a generation amount and the torque fluctuation of the NO x.
【図4】リーン補正係数のマップを示す図である。FIG. 4 is a diagram showing a map of a lean correction coefficient.
【図5】リーンリミットフィードバック補正係数のマッ
プを示す図である。FIG. 5 is a diagram showing a map of a lean limit feedback correction coefficient.
【図6】30°クランク角度の経過時間Ta(i),T
b(i)の変化を示すタイムチャートである。FIG. 6 shows elapsed times Ta (i) and T of a 30 ° crank angle.
It is a time chart which shows the change of b (i).
【図7】30°クランク角度の経過時間Ta(i)の変
化を示すタイムチャートである。FIG. 7 is a time chart showing a change in elapsed time Ta (i) at a 30 ° crank angle.
【図8】30°クランク角度の経過時間Ta(i),T
b(i)の変化を示すタイムチャートである。FIG. 8 shows elapsed times Ta (i) and T of a 30 ° crank angle.
It is a time chart which shows the change of b (i).
【図9】30°クランク角度の経過時間Ta(i),T
b(i)の変化を示すタイムチャートである。FIG. 9 shows elapsed times Ta (i) and T of a 30 ° crank angle.
It is a time chart which shows the change of b (i).
【図10】30°クランク角度の経過時間Ta(i)の
変化を示すタイムチャートである。FIG. 10 is a time chart showing changes in elapsed time Ta (i) at a 30 ° crank angle.
【図11】経過時間差DTa(i)とKb(i)との関
係を示す図である。FIG. 11 is a diagram showing a relationship between elapsed time differences DTa (i) and Kb (i).
【図12】減速運転時における経過時間Ta(i)の変
化を示すタイムチャートである。FIG. 12 is a time chart showing changes in elapsed time Ta (i) during deceleration operation.
【図13】経過時間差DTa(i)の変化を示すタイム
チャートである。FIG. 13 is a time chart showing a change of an elapsed time difference DTa (i).
【図14】割込みルーチンを示すフローチャートであ
る。FIG. 14 is a flowchart showing an interrupt routine.
【図15】経過時間差DTa(i)および経過時間Tb
(i)を算出するためのフローチャートである。FIG. 15 shows an elapsed time difference DTa (i) and an elapsed time Tb.
It is a flowchart for calculating (i).
【図16】経過時間差DTa(i)および経過時間Tb
(i)を算出するためのフローチャートである。FIG. 16 shows an elapsed time difference DTa (i) and an elapsed time Tb.
It is a flowchart for calculating (i).
【図17】KTa(i)を算出するためのフローチャー
トである。FIG. 17 is a flowchart for calculating KTa (i).
【図18】KTb(i)を算出するためのフローチャー
トである。FIG. 18 is a flowchart for calculating KTb (i).
【図19】トルク変動量算出の許可をチェックするため
のフローチャートである。FIG. 19 is a flowchart for checking permission for calculating a torque fluctuation amount.
【図20】トルク変動量算出の許可をチェックするため
のフローチャートである。FIG. 20 is a flowchart for checking permission for calculating a torque fluctuation amount.
【図21】トルク変動量算出の許可をチェックするため
のフローチャートである。FIG. 21 is a flowchart for checking permission of calculation of a torque fluctuation amount.
【図22】経過時間差DTa(i)の変化とフラグXM
XREC,XMNRECの変化を示すタイムチャートで
ある。FIG. 22 shows changes in elapsed time difference DTa (i) and flag XM.
It is a time chart which shows a change of XREC and XMREC.
【図23】トルク変動量を算出するためのフローチャー
トである。FIG. 23 is a flowchart for calculating a torque fluctuation amount.
【図24】機関回転数平均値および吸入空気量平均値を
算出するためのフローチャートである。FIG. 24 is a flowchart for calculating an average engine speed and an average intake air amount.
【図25】種々の値の計算タイミングを示す図である。FIG. 25 is a diagram showing calculation timings of various values.
【図26】目標トルク変動値を示す図である。FIG. 26 is a diagram showing a target torque fluctuation value.
【図27】変動量判別値DH(n),DL(n)および
トルク変動レベルLVLH(n),LVLL(n)を示
す図である。FIG. 27 is a diagram showing fluctuation amount determination values DH (n) and DL (n) and torque fluctuation levels LVLH (n) and LVLL (n).
【図28】メインルーチンを示すフローチャートであ
る。FIG. 28 is a flowchart showing a main routine.
【図29】トルク変動値を算出すると共に失火レベルを
判定するためのフローチャートである。FIG. 29 is a flowchart for calculating a torque fluctuation value and determining a misfire level.
【図30】トルク変動値を算出すると共に失火レベルを
判定するためのフローチャートである。FIG. 30 is a flowchart for calculating a torque fluctuation value and determining a misfire level.
【図31】トルク変動値を算出すると共に失火レベルを
判定するためのフローチャートである。FIG. 31 is a flowchart for calculating a torque fluctuation value and determining a misfire level.
【図32】リーンリミットフィードバック補正係数を算
出するためのフローチャートである。FIG. 32 is a flowchart for calculating a lean limit feedback correction coefficient.
【図33】リーンリミットフィードバック補正係数を算
出するためのフローチャートである。FIG. 33 is a flowchart for calculating a lean limit feedback correction coefficient.
【図34】リーンリミットフィードバック補正係数を算
出するためのフローチャートである。FIG. 34 is a flowchart for calculating a lean limit feedback correction coefficient.
【図35】燃料噴射時間を算出するためのフローチャー
トである。FIG. 35 is a flowchart for calculating a fuel injection time.
【図36】リーン運転時の空燃比制御におけるトルク変
動量の変化に対するリーンリミットフィードバック補正
係数の変化を示すタイムチャートである。FIG. 36 is a time chart showing changes in the lean limit feedback correction coefficient with respect to changes in the amount of torque fluctuation in air-fuel ratio control during lean operation.
【図37】点火時期を算出するためにフローチャートで
ある。FIG. 37 is a flowchart for calculating an ignition timing.
【図38】最適点火時期のマップを示す図である。あ
る。FIG. 38 is a view showing a map of an optimum ignition timing. is there.
【図39】点火時期補正係数のマップを示す図である。FIG. 39 is a diagram showing a map of an ignition timing correction coefficient.
【図40】リーンリミットフィードバック補正係数およ
び点火時期補正係数を算出するためのフローチャートで
ある。FIG. 40 is a flowchart for calculating a lean limit feedback correction coefficient and an ignition timing correction coefficient.
【図41】リーンリミットフィードバック補正係数およ
び点火時期補正係数を算出するためのフローチャートで
ある。FIG. 41 is a flowchart for calculating a lean limit feedback correction coefficient and an ignition timing correction coefficient.
【図42】リーンリミットフィードバック補正係数およ
び点火時期補正係数を算出するためのフローチャートで
ある。FIG. 42 is a flowchart for calculating a lean limit feedback correction coefficient and an ignition timing correction coefficient.
3…サージタンク 4…燃料噴射弁 8…スロットル弁 14…ロータ 15…クランク角センサ 3. Surge tank 4. Fuel injection valve 8. Throttle valve 14. Rotor 15. Crank angle sensor
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI F02P 5/15 F02P 5/15 B (56)参考文献 特開 昭60−27748(JP,A) 特開 昭60−27761(JP,A) 特開 平4−301161(JP,A) 特開 平6−117291(JP,A) 特開 平5−222989(JP,A) 特開 平6−307285(JP,A) 特開 昭63−302163(JP,A) 実開 平3−51178(JP,U) 特公 平7−33809(JP,B2) (58)調査した分野(Int.Cl.7,DB名) F02D 41/00 - 41/40 F02D 43/00 F02D 45/00 F02P 5/15 ──────────────────────────────────────────────────続 き Continuation of the front page (51) Int.Cl. 7 Identification symbol FI F02P 5/15 F02P 5/15 B (56) References JP-A-60-27748 (JP, A) JP-A-60-27761 ( JP, A) JP-A-4-301161 (JP, A) JP-A-6-117291 (JP, A) JP-A-5-222989 (JP, A) JP-A-6-307285 (JP, A) JP Sho 63-302163 (JP, A) JP-A 3-51178 (JP, U) JP-B 7-33809 (JP, B2) (58) Fields investigated (Int. Cl. 7 , DB name) F02D 41 / 00-41/40 F02D 43/00 F02D 45/00 F02P 5/15
Claims (3)
を理論空燃比よりリーン側に制御する内燃機関の制御装
置において、圧縮行程末期から爆発行程初期までのクラ
ンク角度範囲内に第1のクランク角度範囲を設定すると
共に前記第1のクランク角度範囲から一定のクランク角
を隔てた爆発行程中期のクランク角度範囲内に第2のク
ランク角度範囲を設定して前記第1のクランク角度範囲
内におけるクランクシャフトの第1の角速度を検出する
と共に前記第2のクランク角度範囲内におけるクランク
シャフトの第2の角速度を検出し、前記第1の角速度お
よび前記第2の角速度に基づき各気筒が発生する駆動力
変動量を演算する駆動力変動量演算手段と、前記駆動力
変動量演算手段により演算された各気筒の前記駆動力変
動量の平均値が目標駆動力変動量となるように空燃比を
制御する第1空燃比制御手段と、前記駆動力変動量演算
手段により演算された少なくとも一つの気筒の前記駆動
力変動量の大きさに応じて失火レベルを判定する失火レ
ベル判定手段と、失火が発生して前記失火レベル判定手
段により判定された前記失火レベルが第1レベルを越え
るときに前記第1空燃比制御手段による空燃比制御を中
止して前記失火レベルに応じて空燃比を制御する第2空
燃比制御手段とを具備することを特徴とする内燃機関の
制御装置。1. A control device for an internal combustion engine for controlling an air-fuel ratio to be leaner than a stoichiometric air-fuel ratio at least in a predetermined operation state, wherein a first crank angle range is set within a crank angle range from the end of a compression stroke to the beginning of an explosion stroke. And setting a second crank angle range within a middle crank angle range of an explosion stroke separated by a certain crank angle from the first crank angle range, and setting a second crank angle range of the crankshaft within the first crank angle range. 1 and the second angular speed of the crankshaft within the second crank angle range is detected, and the driving force variation generated by each cylinder based on the first angular speed and the second angular speed is calculated. A driving force variation calculating means for calculating, and an average value of the driving force variation of each cylinder calculated by the driving force variation calculating means is a target value. First air-fuel ratio control means for controlling the air-fuel ratio so as to obtain the driving force fluctuation amount; A misfire level judging means for judging the air-fuel ratio control by the first air-fuel ratio control means when a misfire occurs and the misfire level judged by the misfire level judging means exceeds a first level. A control device for an internal combustion engine, comprising: second air-fuel ratio control means for controlling an air-fuel ratio according to a misfire level.
た前記失火レベルが前記第1レベルより大きな第2レベ
ルを越えたときには、その後、前記第1空燃比制御手段
又は前記第2空燃比制御手段による空燃比制御において
前記失火レベルが前記第2レベルを越えたときの空燃比
よりリーンとならないようにガードするガード手段をさ
らに具備することを特徴とする請求項1に記載の内燃機
関の制御装置。2. When the misfire level determined by the misfire level determination means exceeds a second level which is larger than the first level, thereafter, the first misfire level is controlled by the first air-fuel ratio control means or the second air-fuel ratio control means. 2. The control device for an internal combustion engine according to claim 1, further comprising a guard means for guarding the air-fuel ratio from being leaner than the air-fuel ratio when the misfire level exceeds the second level in the air-fuel ratio control.
を理論空燃比よりリーン側に制御する内燃機関の制御装
置において、圧縮行程末期から爆発行程初期までのクラ
ンク角度範囲内に第1のクランク角度範囲を設定すると
共に前記第1のクランク角度範囲から一定のクランク角
を隔てた爆発行程中期のクランク角度範囲内に第2のク
ランク角度範囲を設定して前記第1のクランク角度範囲
内におけるクランクシャフトの第1の角速度を検出する
と共に前記第2のクランク角度範囲内におけるクランク
シャフトの第2の角速度を検出し、前記第1の角速度お
よび前記第2の角速度に基づき各気筒が発生する駆動力
変動量を演算する駆動力変動量演算手段と、前記駆動力
変動量演算手段により演算された各気筒の前記駆動力変
動量の平均値が目標駆動力変動量となるように空燃比を
制御する空燃比制御手段と、機関運転状態に基づき算出
された最適点火時期となるように点火時期を制御する点
火時期制御手段と、前記駆動力変動量演算手段により演
算された少なくとも一つの気筒の前記駆動力変動量の大
きさに応じて失火レベルを判定する失火レベル判定手段
と、前記失火レベル判定手段により判定された前記失火
レベルに応じて前記最適点火時期を補正する点火時期補
正手段とを具備することを特徴とする内燃機関の制御装
置。3. A control device for an internal combustion engine that controls an air-fuel ratio to be leaner than a stoichiometric air-fuel ratio at least in a predetermined operating state, wherein the first crank angle range is within a crank angle range from the end of a compression stroke to the beginning of an explosion stroke. And setting a second crank angle range within a middle crank angle range of an explosion stroke separated by a certain crank angle from the first crank angle range, and setting a second crank angle range of the crankshaft within the first crank angle range. 1 and the second angular speed of the crankshaft within the second crank angle range is detected, and the driving force variation generated by each cylinder based on the first angular speed and the second angular speed is calculated. A driving force variation calculating means for calculating, and an average value of the driving force variation of each cylinder calculated by the driving force variation calculating means is a target value. Air-fuel ratio control means for controlling the air-fuel ratio so as to obtain the driving force fluctuation amount; ignition timing control means for controlling the ignition timing so as to obtain the optimum ignition timing calculated based on the engine operating state; A misfire level judging means for judging a misfire level according to the magnitude of the driving force fluctuation amount of at least one cylinder calculated by the arithmetic means, and the optimum misfire level according to the misfire level determined by the misfire level judgment means. A control device for an internal combustion engine, comprising: ignition timing correction means for correcting an ignition timing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19283797A JP3303732B2 (en) | 1996-12-19 | 1997-07-17 | Control device for internal combustion engine |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8-339897 | 1996-12-19 | ||
JP33989796 | 1996-12-19 | ||
JP19283797A JP3303732B2 (en) | 1996-12-19 | 1997-07-17 | Control device for internal combustion engine |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10231749A JPH10231749A (en) | 1998-09-02 |
JP3303732B2 true JP3303732B2 (en) | 2002-07-22 |
Family
ID=26507545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19283797A Expired - Fee Related JP3303732B2 (en) | 1996-12-19 | 1997-07-17 | Control device for internal combustion engine |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3303732B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19946873A1 (en) * | 1999-09-30 | 2001-04-05 | Bosch Gmbh Robert | Misfire detection |
JP2001182573A (en) * | 1999-12-22 | 2001-07-06 | Nissan Diesel Motor Co Ltd | Combustion control device for internal combustion engine |
JP2005291182A (en) * | 2004-04-05 | 2005-10-20 | Denso Corp | Misfire detection device |
JP5575319B1 (en) * | 2013-09-18 | 2014-08-20 | 三菱電機株式会社 | Misfire detection device and misfire detection method for internal combustion engine |
JP6006189B2 (en) * | 2013-09-30 | 2016-10-12 | 本田技研工業株式会社 | Engine fuel injection control device |
KR102406503B1 (en) * | 2016-12-14 | 2022-06-10 | 현대자동차주식회사 | Method of misfire detection for catalyst damage |
EP3604779B1 (en) * | 2017-03-31 | 2021-04-14 | Honda Motor Co., Ltd. | Engine vehicle, inter-gear teeth error removal method for crank pulsar rotor, and device |
-
1997
- 1997-07-17 JP JP19283797A patent/JP3303732B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10231749A (en) | 1998-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5759133A (en) | Method and engine control for suppressing vibration of the drive train in a motor vehicle | |
JP3303739B2 (en) | Air-fuel ratio control method for internal combustion engine | |
JP3303732B2 (en) | Control device for internal combustion engine | |
US6199426B1 (en) | Method of detection of output fluctuation in internal combustion engine | |
JPH0275760A (en) | Ignition timing control device for internal combustion engine | |
JP3216577B2 (en) | Air-fuel ratio control method for internal combustion engine | |
JP3262003B2 (en) | Output fluctuation detection method for multi-cylinder internal combustion engine | |
JP3279179B2 (en) | Detection method in a multi-cylinder internal combustion engine | |
JP3246328B2 (en) | Detection method in internal combustion engine | |
JP3085220B2 (en) | Air-fuel ratio control method for internal combustion engine | |
EP0799983B1 (en) | Method of detection of angular velocity and torque in an internal combustion engine | |
JP3303669B2 (en) | Air-fuel ratio control method for internal combustion engine | |
JPH1182119A (en) | Output control device for internal combustion engine | |
JP3246325B2 (en) | Detection method in internal combustion engine | |
JPH1182086A (en) | Method for controlling air-fuel ratio of internal combustion engine | |
JP3218970B2 (en) | Detection method in internal combustion engine | |
JPH10331685A (en) | Air-fuel ratio controller for internal combustion engine | |
JPH1130148A (en) | Method for controlling air-fuel ratio of internal combustion engine | |
JP3156588B2 (en) | Air-fuel ratio control method for internal combustion engine | |
JPH1191409A (en) | Motive power transmission control device for internal combustion engine | |
JPH09281006A (en) | Change detection method in internal-combustion engine | |
JPH02291459A (en) | Surging prevention device for vehicle | |
JPS58155226A (en) | Control method for fuel injection of internal-combustion engine | |
JPH0751929B2 (en) | Ignition timing control device for internal combustion engine | |
JPH0759924B2 (en) | Ignition control method for internal combustion engine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080510 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090510 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100510 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |