JPH1130148A - 内燃機関の空燃比制御方法 - Google Patents
内燃機関の空燃比制御方法Info
- Publication number
- JPH1130148A JPH1130148A JP18407997A JP18407997A JPH1130148A JP H1130148 A JPH1130148 A JP H1130148A JP 18407997 A JP18407997 A JP 18407997A JP 18407997 A JP18407997 A JP 18407997A JP H1130148 A JPH1130148 A JP H1130148A
- Authority
- JP
- Japan
- Prior art keywords
- cylinder
- elapsed time
- torque fluctuation
- value
- torque
- 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.)
- Pending
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Abstract
(57)【要約】
【課題】 被動装置又は動力伝達手段が異常のときに空
燃比が誤補正されるのを阻止する。 【解決手段】 圧縮上死点付近の30°クランク角度の
経過時間と圧縮上死点後90°付近の30°クランク角
度の経過時間とを求める。第1の気筒と第1の気筒の次
に燃焼が行われる第2の気筒について720°クランク
角度間における経過時間の差を求める。第1の気筒およ
び第2の気筒の経過時間差からトルク変動がないと仮定
したときの仮想の経過時間を算出し、この仮想の経過時
間を用いてトルク変動量を算出する。クランクシャフト
13によりベルトのような動力伝達装置31を介して駆
動される補機のような被動装置32、又は動力伝達装置
31が異常であるか否かをトルク変動量から判断し、異
常であると判断されたときにはトルク変動量に基づく空
燃比の補正を禁止する。
燃比が誤補正されるのを阻止する。 【解決手段】 圧縮上死点付近の30°クランク角度の
経過時間と圧縮上死点後90°付近の30°クランク角
度の経過時間とを求める。第1の気筒と第1の気筒の次
に燃焼が行われる第2の気筒について720°クランク
角度間における経過時間の差を求める。第1の気筒およ
び第2の気筒の経過時間差からトルク変動がないと仮定
したときの仮想の経過時間を算出し、この仮想の経過時
間を用いてトルク変動量を算出する。クランクシャフト
13によりベルトのような動力伝達装置31を介して駆
動される補機のような被動装置32、又は動力伝達装置
31が異常であるか否かをトルク変動量から判断し、異
常であると判断されたときにはトルク変動量に基づく空
燃比の補正を禁止する。
Description
【0001】
【発明の属する技術分野】本発明は多気筒内燃機関にお
ける出力変動検出方法に関する。
ける出力変動検出方法に関する。
【0002】
【従来の技術】クランクシャフトが圧縮上死点後30°
から60°まで回転するのに要する時間からこの時にお
けるクランクシャフトの第1の角速度を求め、クランク
シャフトが圧縮上死点後90°から120°まで回転す
るのに要する時間からこの間におけるクランクシャフト
の第2の角速度を求め、第1の角速度の2乗と第2の角
速度の2乗から気筒が発生するトルクを求め、この発生
トルクの変動量からトルク変動量を算出するようにした
内燃機関が公知である。(特公平7−33809号公報
参照)。
から60°まで回転するのに要する時間からこの時にお
けるクランクシャフトの第1の角速度を求め、クランク
シャフトが圧縮上死点後90°から120°まで回転す
るのに要する時間からこの間におけるクランクシャフト
の第2の角速度を求め、第1の角速度の2乗と第2の角
速度の2乗から気筒が発生するトルクを求め、この発生
トルクの変動量からトルク変動量を算出するようにした
内燃機関が公知である。(特公平7−33809号公報
参照)。
【0003】即ち、各気筒において燃焼が行われると燃
焼圧によってクランクシャフトの角速度は第1の角速度
ωaから第2の角速度ωbへ上昇せしめられる。このと
き、機関の回転慣性モーメントをIとすると燃焼圧によ
って運動エネルギが(1/2)・Iωa2 から(1/
2)・Iωb2 へ上昇せしめられる。概略的に云うとこ
の運動エネルギの上昇量(1/2)・I・(ωb2 −ω
a2 )によってトルクが発生するので発生トルクは(ω
b2 −ωa2 )に比例することになる。従って発生トル
クは第1の角速度ωaの2乗と第2の角速度ωbの2乗
との差から求まることになり、従って上述の内燃機関で
はこのようにして求めた発生トルクからトルク変動量を
算出するようにしている。
焼圧によってクランクシャフトの角速度は第1の角速度
ωaから第2の角速度ωbへ上昇せしめられる。このと
き、機関の回転慣性モーメントをIとすると燃焼圧によ
って運動エネルギが(1/2)・Iωa2 から(1/
2)・Iωb2 へ上昇せしめられる。概略的に云うとこ
の運動エネルギの上昇量(1/2)・I・(ωb2 −ω
a2 )によってトルクが発生するので発生トルクは(ω
b2 −ωa2 )に比例することになる。従って発生トル
クは第1の角速度ωaの2乗と第2の角速度ωbの2乗
との差から求まることになり、従って上述の内燃機関で
はこのようにして求めた発生トルクからトルク変動量を
算出するようにしている。
【0004】
【発明が解決しようとする課題】ところでこのようにト
ルク変動量を算出することができるとこのトルク変動量
に基づいて空燃比をリーン限界に制御することができ
る。即ち、空燃比がリーン限界よりもリッチ側のときに
はトルク変動量は小さく、空燃比がリーン限界よりもリ
ーン側になるとトルク変動量が大きくなるのでトルク変
動量が予め定められた範囲となるようにトルク変動量に
基づき空燃比を補正すれば空燃比をリーン限界に制御す
ることができる。ただし、このような空燃比制御は、第
1の角速度ωaおよび第2の角速度ωbに基づいて算出
されたトルク変動が燃焼圧の変動によるトルク変動を表
している場合に可能となる。
ルク変動量を算出することができるとこのトルク変動量
に基づいて空燃比をリーン限界に制御することができ
る。即ち、空燃比がリーン限界よりもリッチ側のときに
はトルク変動量は小さく、空燃比がリーン限界よりもリ
ーン側になるとトルク変動量が大きくなるのでトルク変
動量が予め定められた範囲となるようにトルク変動量に
基づき空燃比を補正すれば空燃比をリーン限界に制御す
ることができる。ただし、このような空燃比制御は、第
1の角速度ωaおよび第2の角速度ωbに基づいて算出
されたトルク変動が燃焼圧の変動によるトルク変動を表
している場合に可能となる。
【0005】しかしながらクランクシャフトにより例え
ばベルトを介して駆動される例えば補機に取付けられた
プーリがクランクシャフトのプーリと同一平面上にない
場合や、ベルトの張力が低下したときにはクランクシャ
フトの回転速度に大きな変動が生じ、その結果第1の角
速度ωaと第2の角速度ωbに基づき算出されたトルク
が大きく変動する。このように燃焼圧の変動によらない
トルク変動が生じたときに大きなトルク変動が生じたと
いうことで空燃比が補正されると空燃比がリーン限界か
ら大巾にずれてしまうことになり、従って補機又はベル
トの異常により大きなトルク変動が生じた場合には空燃
比の補正を禁止する必要がある。
ばベルトを介して駆動される例えば補機に取付けられた
プーリがクランクシャフトのプーリと同一平面上にない
場合や、ベルトの張力が低下したときにはクランクシャ
フトの回転速度に大きな変動が生じ、その結果第1の角
速度ωaと第2の角速度ωbに基づき算出されたトルク
が大きく変動する。このように燃焼圧の変動によらない
トルク変動が生じたときに大きなトルク変動が生じたと
いうことで空燃比が補正されると空燃比がリーン限界か
ら大巾にずれてしまうことになり、従って補機又はベル
トの異常により大きなトルク変動が生じた場合には空燃
比の補正を禁止する必要がある。
【0006】しかしながら上述の内燃機関では補機又は
ベルトなどの異常によるトルクの変動の発生については
何ら示唆しておらず、従って上述の内燃機関に記載され
た方法を適用すると空燃比が目標とする空燃比からずれ
てしまうという問題がある。
ベルトなどの異常によるトルクの変動の発生については
何ら示唆しておらず、従って上述の内燃機関に記載され
た方法を適用すると空燃比が目標とする空燃比からずれ
てしまうという問題がある。
【0007】
【課題を解決するための手段】上記問題点を解決するた
めに本発明によれば、圧縮行程末期から爆発行程初期ま
でのクランク角度領域内に第1のクランク角度範囲を設
定し、第1のクランク角度範囲から一定のクランク角を
隔てた爆発行程中期のクランク角度領域内に第2のクラ
ンク角度範囲を設定し、第1のクランク角度範囲内にお
けるクランクシャフトの第1の角速度を検出すると共に
第2のクランク角度範囲内におけるクランクシャフトの
第2の角速度を検出して第1の角速度および第2の角速
度に基づき各気筒の出力変動を求め、クランクシャフト
により動力伝達手段を介し駆動される被動装置又は動力
伝達手段が異常であるか否かを出力変動に基いて判断
し、被動装置又は動力伝達手段が異常であると判断され
たときには出力変動に基づく空燃比の補正を禁止するよ
うにしている。即ち被動装置又は動力伝達手段が異常で
あると出力変動が大きくなるのでこの異常を検出するこ
とができ、このとき出力変動に基づく空燃比の補正が禁
止される。
めに本発明によれば、圧縮行程末期から爆発行程初期ま
でのクランク角度領域内に第1のクランク角度範囲を設
定し、第1のクランク角度範囲から一定のクランク角を
隔てた爆発行程中期のクランク角度領域内に第2のクラ
ンク角度範囲を設定し、第1のクランク角度範囲内にお
けるクランクシャフトの第1の角速度を検出すると共に
第2のクランク角度範囲内におけるクランクシャフトの
第2の角速度を検出して第1の角速度および第2の角速
度に基づき各気筒の出力変動を求め、クランクシャフト
により動力伝達手段を介し駆動される被動装置又は動力
伝達手段が異常であるか否かを出力変動に基いて判断
し、被動装置又は動力伝達手段が異常であると判断され
たときには出力変動に基づく空燃比の補正を禁止するよ
うにしている。即ち被動装置又は動力伝達手段が異常で
あると出力変動が大きくなるのでこの異常を検出するこ
とができ、このとき出力変動に基づく空燃比の補正が禁
止される。
【0008】
【発明の実施の形態】図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 を放出しかつ還元する機能を有する。
#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 を放出しかつ還元する機能を有する。
【0009】電子制御ユニット20はディジタルコンピ
ュータからなり、双方向性バス21によって相互に接続
されたROM(リードオンリメモリ)22、RAM(ラ
ンダムアクセスメモリ)23、CPU(マイクロプロセ
ッサ)24、常時電源に接続されたバックアップRAM
25、入力ポート26および出力ポート27を具備す
る。機関の出力軸13には外歯付ロータ14が取付けら
れ、ロータ14の外歯に対面して電磁ピックアップから
なるクランク角センサ15が配置される。図1に示され
る実施例ではロータ14の外周上に30°クランク角度
毎に外歯が形成されており、例えば1番気筒の圧縮上死
点を検出するために一部の外歯が削除されている。従っ
てこの外歯が削除された部分、即ち欠歯部分を除いてク
ランク角センサ15は出力軸13が30°クランク角度
回転する毎に出力パルスを発生し、この出力パルスが入
力ポート26に入力される。
ュータからなり、双方向性バス21によって相互に接続
されたROM(リードオンリメモリ)22、RAM(ラ
ンダムアクセスメモリ)23、CPU(マイクロプロセ
ッサ)24、常時電源に接続されたバックアップRAM
25、入力ポート26および出力ポート27を具備す
る。機関の出力軸13には外歯付ロータ14が取付けら
れ、ロータ14の外歯に対面して電磁ピックアップから
なるクランク角センサ15が配置される。図1に示され
る実施例ではロータ14の外周上に30°クランク角度
毎に外歯が形成されており、例えば1番気筒の圧縮上死
点を検出するために一部の外歯が削除されている。従っ
てこの外歯が削除された部分、即ち欠歯部分を除いてク
ランク角センサ15は出力軸13が30°クランク角度
回転する毎に出力パルスを発生し、この出力パルスが入
力ポート26に入力される。
【0010】エアフローメータ6は吸入空気量に比例し
た出力電圧を発生し、この出力電圧が対応するAD変換
器28を介して入力ポート26に入力される。また、ス
ロットル弁8にはスロットル弁8がアイドリング開度に
あることを検出するためのアイドルスイッチ16が取付
けられ、このアイドルスイッチ16の出力信号が入力ポ
ート26に入力される。また、排気マニホルド9内には
空燃比を検出するための空燃比センサ(O2 センサ)1
7が配置されており、この空燃比センサ17の出力信号
が対応するAD変換器28を介して入力ポート26に入
力される。一方、出力ポート27は対応する駆動回路2
9を介して各燃料噴射弁4および警告装置30に接続さ
れる。この警告装置30は機関異常時に作動してこの異
常を車両運転者に知らせるためのものであり、例えばラ
ンプのような表示装置やブザーなどからなる。
た出力電圧を発生し、この出力電圧が対応するAD変換
器28を介して入力ポート26に入力される。また、ス
ロットル弁8にはスロットル弁8がアイドリング開度に
あることを検出するためのアイドルスイッチ16が取付
けられ、このアイドルスイッチ16の出力信号が入力ポ
ート26に入力される。また、排気マニホルド9内には
空燃比を検出するための空燃比センサ(O2 センサ)1
7が配置されており、この空燃比センサ17の出力信号
が対応するAD変換器28を介して入力ポート26に入
力される。一方、出力ポート27は対応する駆動回路2
9を介して各燃料噴射弁4および警告装置30に接続さ
れる。この警告装置30は機関異常時に作動してこの異
常を車両運転者に知らせるためのものであり、例えばラ
ンプのような表示装置やブザーなどからなる。
【0011】さらに図1を参照すると、機関本体1はク
ランクシャフト13により動力伝達装置31を介して駆
動される被動装置32を具備する。被動装置32は例え
ば冷却水ポンプ、オルターネータ、エアコンのような補
機、カムシャフト、アイドラ、又は張力調節装置からな
る。一方、動力伝達装置31は例えばベルト、チェー
ン、又は歯車からなるが、図1のように動力伝達装置3
1をベルトから形成した場合にはクランクシャフト13
および各被動装置32の回転軸にプーリ33が夫々取付
けられ、これらプーリ33周りにベルト34が張架され
る。
ランクシャフト13により動力伝達装置31を介して駆
動される被動装置32を具備する。被動装置32は例え
ば冷却水ポンプ、オルターネータ、エアコンのような補
機、カムシャフト、アイドラ、又は張力調節装置からな
る。一方、動力伝達装置31は例えばベルト、チェー
ン、又は歯車からなるが、図1のように動力伝達装置3
1をベルトから形成した場合にはクランクシャフト13
および各被動装置32の回転軸にプーリ33が夫々取付
けられ、これらプーリ33周りにベルト34が張架され
る。
【0012】図1に示す内燃機関では燃料噴射時間TA
Uが次式に基づいて算出される。 TAU=TP・FLEAN・FLLFB・FAF+TA
UV ここでTPは基本燃料噴射時間を、FLEANはリーン
補正係数を、FLLFBはリーンリミットフィードバッ
ク補正係数を、FAFは理論空燃比フィードバック補正
係数を、TAUVは無効噴射時間を夫々示している。
Uが次式に基づいて算出される。 TAU=TP・FLEAN・FLLFB・FAF+TA
UV ここでTPは基本燃料噴射時間を、FLEANはリーン
補正係数を、FLLFBはリーンリミットフィードバッ
ク補正係数を、FAFは理論空燃比フィードバック補正
係数を、TAUVは無効噴射時間を夫々示している。
【0013】基本燃料噴射時間TPは空燃比を理論空燃
比とするのに必要な噴射時間を示している。この基本燃
料噴射時間TPは実験により求められ、この基本燃料噴
射時間TPは機関負荷Q/N(吸入空気量Q/機関回転
数N)および機関回転数Nの関数として図2に示すマッ
プの形で予めROM22内に記憶されている。リーン補
正係数FLEANは空燃比をリーン空燃比とするための
補正係数であり、このリーン補正係数FLEANは機関
負荷Q/Nおよび機関回転数Nの関数として図4に示す
マップの形で予めROM22内に記憶されている。
比とするのに必要な噴射時間を示している。この基本燃
料噴射時間TPは実験により求められ、この基本燃料噴
射時間TPは機関負荷Q/N(吸入空気量Q/機関回転
数N)および機関回転数Nの関数として図2に示すマッ
プの形で予めROM22内に記憶されている。リーン補
正係数FLEANは空燃比をリーン空燃比とするための
補正係数であり、このリーン補正係数FLEANは機関
負荷Q/Nおよび機関回転数Nの関数として図4に示す
マップの形で予めROM22内に記憶されている。
【0014】リーンリミットフィードバック補正係数F
LLFBは空燃比をリーン限界に維持するための補正係
数である。本発明による実施例では吸入空気量Qと機関
回転数Nに対してリーン空燃比フィードバック制御に対
する学習領域が図5に示されるように例えば9つの領域
で分けられており、各学習領域に対して夫々リーンリミ
ットフィードバック補正係数FLLFB11〜FLLFB
33が設定されている。
LLFBは空燃比をリーン限界に維持するための補正係
数である。本発明による実施例では吸入空気量Qと機関
回転数Nに対してリーン空燃比フィードバック制御に対
する学習領域が図5に示されるように例えば9つの領域
で分けられており、各学習領域に対して夫々リーンリミ
ットフィードバック補正係数FLLFB11〜FLLFB
33が設定されている。
【0015】理論空燃比フィードバック補正係数FAF
は空燃比を理論空燃比に維持するための係数である。理
論空燃比フィードバック補正係数FAFは空燃比を理論
空燃比に維持すべきときに空燃比センサ17の出力信号
に基づいて制御され、このとき理論空燃比フィードバッ
ク補正係数FAFはほぼ1.0を中心として上下動す
る。
は空燃比を理論空燃比に維持するための係数である。理
論空燃比フィードバック補正係数FAFは空燃比を理論
空燃比に維持すべきときに空燃比センサ17の出力信号
に基づいて制御され、このとき理論空燃比フィードバッ
ク補正係数FAFはほぼ1.0を中心として上下動す
る。
【0016】図4に示されるように破線により囲まれた
運転領域内については機関の運転状態に応じてリーン補
正係数FLEANが定められており、この運転領域内で
は空燃比がリーン空燃比に維持される。これに対して図
4の破線で囲まれた領域外の運転領域では空燃比が理論
空燃比に維持される。空燃比を理論空燃比に維持すべき
ときにはリーン補正係数FLEANおよびリーンリミッ
トフィードバック補正係数FLLFBは1.0に固定さ
れ、理論空燃比フィードバック補正係数FAFが空燃比
センサ17の出力信号に基づいて制御される。
運転領域内については機関の運転状態に応じてリーン補
正係数FLEANが定められており、この運転領域内で
は空燃比がリーン空燃比に維持される。これに対して図
4の破線で囲まれた領域外の運転領域では空燃比が理論
空燃比に維持される。空燃比を理論空燃比に維持すべき
ときにはリーン補正係数FLEANおよびリーンリミッ
トフィードバック補正係数FLLFBは1.0に固定さ
れ、理論空燃比フィードバック補正係数FAFが空燃比
センサ17の出力信号に基づいて制御される。
【0017】一方、空燃比をリーン空燃比に維持すべき
ときには理論空燃比フィードバック補正係数FAFが
1.0に固定され、即ち空燃比センサ17の出力信号に
基づくフィードバック制御が停止され、リーン補正係数
FLEANとリーンリミットフィードバック補正係数F
LLFBとにより空燃比がリーン空燃比に制御される。
次に図3を参照しつつリーンリミットフィードバック制
御について説明する。図3は機関出力トルク変動量およ
びNOx 発生量と空燃比との関係を示している。空燃比
がリーンになるほど燃料消費率は小さくなり、また空燃
比がリーンになるほどNOx の発生量が少なくなる。従
ってこれらの点からみると空燃比はできるだけリーンに
することが好ましいことになる。ところが空燃比が或る
程度以上リーンになると燃焼が不安定となり、その結果
図3に示されるようにトルク変動量が大きくなる。そこ
で本発明による実施例では図3に示されるようにトルク
変動が増大し始める空燃比制御領域内に空燃比を維持す
るようにしている。
ときには理論空燃比フィードバック補正係数FAFが
1.0に固定され、即ち空燃比センサ17の出力信号に
基づくフィードバック制御が停止され、リーン補正係数
FLEANとリーンリミットフィードバック補正係数F
LLFBとにより空燃比がリーン空燃比に制御される。
次に図3を参照しつつリーンリミットフィードバック制
御について説明する。図3は機関出力トルク変動量およ
びNOx 発生量と空燃比との関係を示している。空燃比
がリーンになるほど燃料消費率は小さくなり、また空燃
比がリーンになるほどNOx の発生量が少なくなる。従
ってこれらの点からみると空燃比はできるだけリーンに
することが好ましいことになる。ところが空燃比が或る
程度以上リーンになると燃焼が不安定となり、その結果
図3に示されるようにトルク変動量が大きくなる。そこ
で本発明による実施例では図3に示されるようにトルク
変動が増大し始める空燃比制御領域内に空燃比を維持す
るようにしている。
【0018】即ち具体的に云うとリーン補正係数FLE
ANはリーンリミットフィードバック補正係数FLLF
BをFLLFB=1.0としたときに空燃比が図3に示
される空燃比制御領域の中央部となるように定められて
いる。一方、リーンリミットフィードバック補正係数F
LLFBはトルク変動量に応じて図3に示されるトルク
変動制御領域内において制御され、トルク変動量が大き
くなればリーンリミットフィードバック補正係数FLL
FBが増大せしめられ、即ち空燃比が小さくされ、トル
ク変動量が小さくなればリーンリミットフィードバック
補正係数FLLFBが減少せしめられ、即ち空燃比が大
きくされる。このようにして空燃比が図3に示される空
燃比制御領域内に制御される。
ANはリーンリミットフィードバック補正係数FLLF
BをFLLFB=1.0としたときに空燃比が図3に示
される空燃比制御領域の中央部となるように定められて
いる。一方、リーンリミットフィードバック補正係数F
LLFBはトルク変動量に応じて図3に示されるトルク
変動制御領域内において制御され、トルク変動量が大き
くなればリーンリミットフィードバック補正係数FLL
FBが増大せしめられ、即ち空燃比が小さくされ、トル
ク変動量が小さくなればリーンリミットフィードバック
補正係数FLLFBが減少せしめられ、即ち空燃比が大
きくされる。このようにして空燃比が図3に示される空
燃比制御領域内に制御される。
【0019】なお、リーンリミットフィードバック補正
係数FLLFBはリーン補正係数FLEANが定められ
ている機関運転領域をカバーするように設定されてい
る。トルク変動量が図3に示されるトルク変動制御領域
内に制御されると良好な車両の運転性を確保しつつ燃料
消費率およびNOx の発生量を大巾に低減することがで
きる。ただし、このようにトルク変動量をトルク変動制
御領域内に制御するためにはトルク変動量を検出しなけ
ればならない。
係数FLLFBはリーン補正係数FLEANが定められ
ている機関運転領域をカバーするように設定されてい
る。トルク変動量が図3に示されるトルク変動制御領域
内に制御されると良好な車両の運転性を確保しつつ燃料
消費率およびNOx の発生量を大巾に低減することがで
きる。ただし、このようにトルク変動量をトルク変動制
御領域内に制御するためにはトルク変動量を検出しなけ
ればならない。
【0020】ところでトルク変動量を算出する方法は従
来より種々の方法が提案されている。代表的な例を挙げ
ると燃焼室内に燃焼圧センサを取付けてこの燃焼圧セン
サの出力信号に基づきトルク変動量を算出する方法や、
或いは冒頭で述べたように第1の角速度ωaの2乗と第
2の角速度ωbの2乗との差に基づいてトルク変動量を
算出する方法が挙げられる。
来より種々の方法が提案されている。代表的な例を挙げ
ると燃焼室内に燃焼圧センサを取付けてこの燃焼圧セン
サの出力信号に基づきトルク変動量を算出する方法や、
或いは冒頭で述べたように第1の角速度ωaの2乗と第
2の角速度ωbの2乗との差に基づいてトルク変動量を
算出する方法が挙げられる。
【0021】燃焼圧センサを用いると燃焼圧センサを取
付けた気筒が発生するトルクを確実に検出することがで
きるという利点がある反面、燃焼圧センサが必要である
という欠点を有している。これに対して角速度ωa,ω
bは従来より内燃機関が備えているクランク角センサの
出力信号から算出することができるので角速度ωa,ω
bに基づき出力トルクを算出するようにした場合には新
たなセンサを設ける必要がないという利点がある。ただ
し、この場合冒頭に述べたように動力伝達装置31又は
被動装置32に異常が生ずるとトルク変動量を正確に検
出できなくなるという問題を有している。しかしながら
この問題を解決しさえすれば新たなセンサを必要としな
い角速度に基づくトルク算出方法の方が好ましいことは
明らかである。そこで本発明では発生トルクを角速度に
基づき算出するようにし、動力電圧装置31又は被動装
置32が異常であると判断されたときには空燃比の補正
を禁止するようにしている。
付けた気筒が発生するトルクを確実に検出することがで
きるという利点がある反面、燃焼圧センサが必要である
という欠点を有している。これに対して角速度ωa,ω
bは従来より内燃機関が備えているクランク角センサの
出力信号から算出することができるので角速度ωa,ω
bに基づき出力トルクを算出するようにした場合には新
たなセンサを設ける必要がないという利点がある。ただ
し、この場合冒頭に述べたように動力伝達装置31又は
被動装置32に異常が生ずるとトルク変動量を正確に検
出できなくなるという問題を有している。しかしながら
この問題を解決しさえすれば新たなセンサを必要としな
い角速度に基づくトルク算出方法の方が好ましいことは
明らかである。そこで本発明では発生トルクを角速度に
基づき算出するようにし、動力電圧装置31又は被動装
置32が異常であると判断されたときには空燃比の補正
を禁止するようにしている。
【0022】クランクシャフト13の角速度に基づく限
り機関の出力変動およびトルク変動をどのように求めて
もよいが、機関駆動系が捩り振動を生じたとき、クラン
クシャフト自体が捩り振動を生じたとき、車両が悪路を
走行したとき、又はロータの外歯にばらつきがあるとき
には機関の出力変動およびトルク変動を正確に算出する
ことができない。そこで本発明による実施例では、機関
駆動系又はクランクシャフト自体が捩り振動を生じ、車
両が悪路を走行し、又はロータの外歯にばらつきがあっ
たとしても機関の出力変動およびトルク変動を正確に検
出しうるようにするためにこれら出力変動およびトルク
変動の新たな算出方法を採用している。
り機関の出力変動およびトルク変動をどのように求めて
もよいが、機関駆動系が捩り振動を生じたとき、クラン
クシャフト自体が捩り振動を生じたとき、車両が悪路を
走行したとき、又はロータの外歯にばらつきがあるとき
には機関の出力変動およびトルク変動を正確に算出する
ことができない。そこで本発明による実施例では、機関
駆動系又はクランクシャフト自体が捩り振動を生じ、車
両が悪路を走行し、又はロータの外歯にばらつきがあっ
たとしても機関の出力変動およびトルク変動を正確に検
出しうるようにするためにこれら出力変動およびトルク
変動の新たな算出方法を採用している。
【0023】次に機関の出力変動およびトルク変動を算
出するための方法について説明する。まず初めに、機関
駆動系が捩り振動を生じていない定常運転時を示す図6
(A),(B)を参照しつつ各気筒が発生する駆動力お
よび各気筒が発生するトルクを算出する方法について説
明する。前述したようにクランク角センサ15はクラン
クシャフトが30°クランク角度回転する毎に出力パル
スを発生し、更にクランク角センサ15は各気筒#1,
#2,#3,#4の圧縮上死点TDCにおいて出力パル
スを発生するように配置されている。従ってクランク角
センサ15は各気筒#1,#2,#3,#4の圧縮上死
点TDCから30°クランク角毎に出力パルスを発生す
ることになる。なお、本発明において用いられている内
燃機関の点火順序は1−3−4−2である。
出するための方法について説明する。まず初めに、機関
駆動系が捩り振動を生じていない定常運転時を示す図6
(A),(B)を参照しつつ各気筒が発生する駆動力お
よび各気筒が発生するトルクを算出する方法について説
明する。前述したようにクランク角センサ15はクラン
クシャフトが30°クランク角度回転する毎に出力パル
スを発生し、更にクランク角センサ15は各気筒#1,
#2,#3,#4の圧縮上死点TDCにおいて出力パル
スを発生するように配置されている。従ってクランク角
センサ15は各気筒#1,#2,#3,#4の圧縮上死
点TDCから30°クランク角毎に出力パルスを発生す
ることになる。なお、本発明において用いられている内
燃機関の点火順序は1−3−4−2である。
【0024】図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を表わすことになる。
クランク角センサ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を表わすことになる。
【0025】図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)
から気筒の発生する駆動力を算出することができる。
みると、燃焼が開始されて燃焼圧が高まると経過時間が
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)
から気筒の発生する駆動力を算出することができる。
【0026】一方、機関の回転慣性モーメントをIとす
ると燃焼圧によって運動エネルギが(1/2)Iωa2
から(1/2)Iωb2 に増大せしめられる。この運動
エネルギの増大量(1/2)・I・(ωb2 −ωa2 )
はその気筒が発生するトルクを表わしており、従って第
1の角速度ωaの2乗と第2の角速度ωbの2乗との差
(ωb2 −ωa2 )から気筒の発生するトルクを算出で
きることになる。
ると燃焼圧によって運動エネルギが(1/2)Iωa2
から(1/2)Iωb2 に増大せしめられる。この運動
エネルギの増大量(1/2)・I・(ωb2 −ωa2 )
はその気筒が発生するトルクを表わしており、従って第
1の角速度ωaの2乗と第2の角速度ωbの2乗との差
(ωb2 −ωa2 )から気筒の発生するトルクを算出で
きることになる。
【0027】このように第1の角速度ωaと第2の角速
度ωbを検出すればこれらの検出値から対応する気筒の
発生する駆動力および対応する気筒の発生するトルクを
算出できることになる。なお、図6(A),(B)に示
される経過時間T30の変化は機関によって若干異な
り、従って第1の角速度ωaを検出すべきクランク角度
範囲および第2の角速度ωbを検出すべきクランク角度
範囲は機関に応じて(ωb−ωa)が機関の発生する駆
動力を最もよく表わすように、或いは(ωb2 −ωa
2 )が機関の発生するトルクを最もよく表わすように定
められる。従って機関によっては第1の角速度ωaを検
出すべきクランク角度範囲が圧縮上死点前BTDC30
°からTDCであり、第2の角速度ωbを検出すべきク
ランク角度範囲がATDC90°からATDC120°
となることもあり得る。
度ωbを検出すればこれらの検出値から対応する気筒の
発生する駆動力および対応する気筒の発生するトルクを
算出できることになる。なお、図6(A),(B)に示
される経過時間T30の変化は機関によって若干異な
り、従って第1の角速度ωaを検出すべきクランク角度
範囲および第2の角速度ωbを検出すべきクランク角度
範囲は機関に応じて(ωb−ωa)が機関の発生する駆
動力を最もよく表わすように、或いは(ωb2 −ωa
2 )が機関の発生するトルクを最もよく表わすように定
められる。従って機関によっては第1の角速度ωaを検
出すべきクランク角度範囲が圧縮上死点前BTDC30
°からTDCであり、第2の角速度ωbを検出すべきク
ランク角度範囲がATDC90°からATDC120°
となることもあり得る。
【0028】従って各角速度ωa,ωbの検出のしかた
について一般的に表現すると、圧縮行程末期から爆発行
程初期までのクランク角度領域内に第1のクランク角度
範囲を設定し、第1のクランク角度範囲から一定のクラ
ンク角を隔てた爆発行程中期のクランク角度領域内に第
2のクランク角度範囲を設定し、第1のクランク角度範
囲内におけるクランクシャフトの第1の角速度ωaを検
出し、第2のクランク角度範囲内におけるクランクシャ
フトの第2の角速度ωbを検出するということになる。
について一般的に表現すると、圧縮行程末期から爆発行
程初期までのクランク角度領域内に第1のクランク角度
範囲を設定し、第1のクランク角度範囲から一定のクラ
ンク角を隔てた爆発行程中期のクランク角度領域内に第
2のクランク角度範囲を設定し、第1のクランク角度範
囲内におけるクランクシャフトの第1の角速度ωaを検
出し、第2のクランク角度範囲内におけるクランクシャ
フトの第2の角速度ωbを検出するということになる。
【0029】上述したように角速度ωa,ωbを検出す
れば検出値に基づいて対応する気筒の発生する駆動力お
よびトルクを算出することができる。しかしながら機関
駆動系には各気筒において順次行われる爆発作用により
駆動系の固有振動数でもって振動する捩り振動が発生し
ており、このように機関駆動系に捩り振動が発生してい
ると角速度ωa,ωbに基づいて気筒の発生する駆動力
およびトルクを正確に算出することができなくなる。次
にこのことについて図7および図8を参照しつつ説明す
る。
れば検出値に基づいて対応する気筒の発生する駆動力お
よびトルクを算出することができる。しかしながら機関
駆動系には各気筒において順次行われる爆発作用により
駆動系の固有振動数でもって振動する捩り振動が発生し
ており、このように機関駆動系に捩り振動が発生してい
ると角速度ωa,ωbに基づいて気筒の発生する駆動力
およびトルクを正確に算出することができなくなる。次
にこのことについて図7および図8を参照しつつ説明す
る。
【0030】図7は機関駆動系に捩り振動が発生してい
るときに各気筒に対し順次算出される経過時間Ta
(i)の変化を示している。機関駆動系に捩り振動が発
生するとこの捩り振動によってクランクシャフトの角速
度が周期的に増大減少せしめられるので経過時間Ta
(i)は図7に示されるように周期的に増大減少するこ
とになる。
るときに各気筒に対し順次算出される経過時間Ta
(i)の変化を示している。機関駆動系に捩り振動が発
生するとこの捩り振動によってクランクシャフトの角速
度が周期的に増大減少せしめられるので経過時間Ta
(i)は図7に示されるように周期的に増大減少するこ
とになる。
【0031】一方、図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だけ減少してい
ることになる。
(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だけ減少してい
ることになる。
【0032】このように機関駆動系に捩り振動が発生す
るとTb(1)はTa(1)に対して経過時間が減少
し、この減少した経過時間は燃焼圧による経過時間の減
少量fと捩り振動による経過時間の減少量hとを含んで
いることになる。従って燃焼圧により減少した経過時間
Tb(1)だけを求めるためにはTb(1)にhを加算
しなければならないことになる。即ち、検出された経過
時間Ta(i)およびTb(i)に基づいて各気筒が発
生する駆動力或いはトルクを求めても真の駆動力或いは
トルクを求めることができず、斯くして真の機関の出力
変動或いはトルク変動を求めることができない。
るとTb(1)はTa(1)に対して経過時間が減少
し、この減少した経過時間は燃焼圧による経過時間の減
少量fと捩り振動による経過時間の減少量hとを含んで
いることになる。従って燃焼圧により減少した経過時間
Tb(1)だけを求めるためにはTb(1)にhを加算
しなければならないことになる。即ち、検出された経過
時間Ta(i)およびTb(i)に基づいて各気筒が発
生する駆動力或いはトルクを求めても真の駆動力或いは
トルクを求めることができず、斯くして真の機関の出力
変動或いはトルク変動を求めることができない。
【0033】更に、多気筒内燃機関ではこのような機関
駆動系の捩り振動に加えてクランクシャフト自体の捩り
振動を発生し、このようなクランクシャフト自体の捩り
振動が発生した場合にも真の機関の出力変動或いはトル
ク変動を求めることができなくなる。次にこのことにつ
いて図9を参照しつつ説明する。多気筒内燃機関、例え
ば図1に示されるような4気筒内燃機関では1番気筒お
よび2番気筒において大きなクランクシャフト自体の捩
り振動が発生する。即ち、クランクシャフト自体の捩り
振動がほとんど発生しない気筒、例えば3番気筒#3で
は図9に示されるようにTa(3)からTb(3)に向
けて経過時間は徐々に減少するが1番気筒#1において
はTa(1)からTb(1)に向けて経過時間は徐々に
減少せず、クランクシャフト自体の捩り振動によってT
b(1)の経過時間が長くなってしまう。その結果、1
番気筒#1については検出された経過時間Ta(1)お
よびTb(1)に基づいて1番気筒#1が発生する駆動
力或いはトルクを求めても真の駆動力或いはトルクを求
めることができず、斯くして真の機関の出力変動或いは
トルク変動を求めることができない。
駆動系の捩り振動に加えてクランクシャフト自体の捩り
振動を発生し、このようなクランクシャフト自体の捩り
振動が発生した場合にも真の機関の出力変動或いはトル
ク変動を求めることができなくなる。次にこのことにつ
いて図9を参照しつつ説明する。多気筒内燃機関、例え
ば図1に示されるような4気筒内燃機関では1番気筒お
よび2番気筒において大きなクランクシャフト自体の捩
り振動が発生する。即ち、クランクシャフト自体の捩り
振動がほとんど発生しない気筒、例えば3番気筒#3で
は図9に示されるようにTa(3)からTb(3)に向
けて経過時間は徐々に減少するが1番気筒#1において
はTa(1)からTb(1)に向けて経過時間は徐々に
減少せず、クランクシャフト自体の捩り振動によってT
b(1)の経過時間が長くなってしまう。その結果、1
番気筒#1については検出された経過時間Ta(1)お
よびTb(1)に基づいて1番気筒#1が発生する駆動
力或いはトルクを求めても真の駆動力或いはトルクを求
めることができず、斯くして真の機関の出力変動或いは
トルク変動を求めることができない。
【0034】そこで本発明による実施例では機関駆動系
の捩り振動が発生しても、またクランクシャフト自体の
捩り振動が発生しても真の機関の出力変動或いはトルク
変動を算出することができる新たな算出方法を採用して
いる。次にこの新たな算出方法について図10を参照し
つつ説明する。図10においてTa(1)j-1 およびT
b(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の
次の燃焼時における経過時間を表わしている。
の捩り振動が発生しても、またクランクシャフト自体の
捩り振動が発生しても真の機関の出力変動或いはトルク
変動を算出することができる新たな算出方法を採用して
いる。次にこの新たな算出方法について図10を参照し
つつ説明する。図10においてTa(1)j-1 およびT
b(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の
次の燃焼時における経過時間を表わしている。
【0035】まず初めにTa(1)j とTa(1)j-1
との差DTa(1)(=Ta(1) j −Ta(1)
j-1 )、およびTa(3)j とTb(3)j-1 との差D
Ta(3)(=Ta(3)j −Ta(3)j-1 )とを求
める。次いで1番気筒#1の先の燃焼時の出力トルクと
次の燃焼時の出力トルクとが同一であったと仮定したと
きの1番気筒#1の次の燃焼時におけるATDC60°
からATDC90°までの仮想の経過時間をTb′
(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に示されるようになる。
との差DTa(1)(=Ta(1) j −Ta(1)
j-1 )、およびTa(3)j とTb(3)j-1 との差D
Ta(3)(=Ta(3)j −Ta(3)j-1 )とを求
める。次いで1番気筒#1の先の燃焼時の出力トルクと
次の燃焼時の出力トルクとが同一であったと仮定したと
きの1番気筒#1の次の燃焼時におけるATDC60°
からATDC90°までの仮想の経過時間をTb′
(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に示されるようになる。
【0036】図11に示されるように経過時間差DTa
(1)とDTa(3)との間では経過時間差がI0 時間
だけ減少している。クランクシャフト自体に捩り振動が
発生したとしてもこの捩り振動による影響は経過時間差
には表れず、従って経過時間差のI0 時間の減少は機関
駆動系の捩り振動によるものである。この場合、DTa
(1)とDTa(3)との間では機関駆動系の捩り振動
による経過時間差の減少量は時間の経過と共にほぼ直線
的に増大するものと考えられる。従って1番気筒#1の
先の燃焼時の出力トルクと次の燃焼時の出力トルクとが
同一であると仮定すると経過時間差DTa(1)とKb
(1)との間では機関駆動系の捩り振動によって経過時
間差がIだけ減少するものと考えられる。従って図11
からわかるように1番気筒#1の先の燃焼時の出力トル
クと次の燃焼時の出力トルクとが同一であると仮定した
場合に経過時間差Kb(1)は次式で表される。
(1)とDTa(3)との間では経過時間差がI0 時間
だけ減少している。クランクシャフト自体に捩り振動が
発生したとしてもこの捩り振動による影響は経過時間差
には表れず、従って経過時間差のI0 時間の減少は機関
駆動系の捩り振動によるものである。この場合、DTa
(1)とDTa(3)との間では機関駆動系の捩り振動
による経過時間差の減少量は時間の経過と共にほぼ直線
的に増大するものと考えられる。従って1番気筒#1の
先の燃焼時の出力トルクと次の燃焼時の出力トルクとが
同一であると仮定すると経過時間差DTa(1)とKb
(1)との間では機関駆動系の捩り振動によって経過時
間差がIだけ減少するものと考えられる。従って図11
からわかるように1番気筒#1の先の燃焼時の出力トル
クと次の燃焼時の出力トルクとが同一であると仮定した
場合に経過時間差Kb(1)は次式で表される。
【0037】Kb(1)=(2DTa(1)+DTa
(3))/3 ところで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 一方、1番気筒#1の次の燃焼時におけるATDC60
°からATDC90°までの実際の経過時間Tb(1)
j を用いて実際の出力トルクを算出するとこの出力トル
クDN(1)は次式で表される。
(3))/3 ところで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 一方、1番気筒#1の次の燃焼時におけるATDC60
°からATDC90°までの実際の経過時間Tb(1)
j を用いて実際の出力トルクを算出するとこの出力トル
クDN(1)は次式で表される。
【0038】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)は
次式で表すことができる。
−{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)は
次式で表すことができる。
【0039】DLN(i)=DNS(i)−DN(i)
={30°/Tb′(i)}2−{30°/Tb
(i)}2 即ち、i番気筒のトルク変動量はi番気筒の仮想の第2
の角速度の2乗と実際の第2の角速度の2乗との偏差か
ら求まることになる。このような方法でもってトルク変
動量を算出することによって機関駆動系に捩り振動が発
生したとしても、更にクランクシャフト自体に捩り振動
が発生したとしても各気筒のトルク変動量を正確に検出
できることになる。
={30°/Tb′(i)}2−{30°/Tb
(i)}2 即ち、i番気筒のトルク変動量はi番気筒の仮想の第2
の角速度の2乗と実際の第2の角速度の2乗との偏差か
ら求まることになる。このような方法でもってトルク変
動量を算出することによって機関駆動系に捩り振動が発
生したとしても、更にクランクシャフト自体に捩り振動
が発生したとしても各気筒のトルク変動量を正確に検出
できることになる。
【0040】一方、このような方法でもってトルク変動
量を算出する場合、ロータ14(図1)の外周に沿って
形成されている外歯の間隔にばらつきがあると各気筒の
トルク変動量を正確に検出することができない。そこで
本発明による実施例ではロータ14の外歯の間隔にばら
つきがあったとしても各気筒のトルク変動量を正確に検
出しうるように検出された各経過時間Ta(i),Tb
(i)を補正するようにしている。次に経過時間Ta
(i)の補正方法について図12を参照しつつ説明す
る。
量を算出する場合、ロータ14(図1)の外周に沿って
形成されている外歯の間隔にばらつきがあると各気筒の
トルク変動量を正確に検出することができない。そこで
本発明による実施例ではロータ14の外歯の間隔にばら
つきがあったとしても各気筒のトルク変動量を正確に検
出しうるように検出された各経過時間Ta(i),Tb
(i)を補正するようにしている。次に経過時間Ta
(i)の補正方法について図12を参照しつつ説明す
る。
【0041】本発明による実施例では経過時間Ta
(i)が次式に基づいて算出される。 Ta(i)=(i番気筒のTDCからATDC30°ま
での所要時間)・(1+KTa(i)) ここでKTa(i)はi番気筒に対する補正係数を表し
ており、これらの補正係数KTa(i)は機関駆動系の
捩り振動が発生せず、クランクシャフト自体の捩り振動
も発生しない減速運転時の燃料供給停止時に算出され
る。
(i)が次式に基づいて算出される。 Ta(i)=(i番気筒のTDCからATDC30°ま
での所要時間)・(1+KTa(i)) ここでKTa(i)はi番気筒に対する補正係数を表し
ており、これらの補正係数KTa(i)は機関駆動系の
捩り振動が発生せず、クランクシャフト自体の捩り振動
も発生しない減速運転時の燃料供給停止時に算出され
る。
【0042】図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)によって補
正するようにしている。
(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)によって補
正するようにしている。
【0043】具体的に云うと、本発明による実施例では
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)を次式より求める。
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)を次式より求める。
【0044】AAV(4)=(TaAVj −TaAV
j-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 次いで次式に基づき各気筒についてこれら経過時間AA
V(4),AAV(2),AAV(1),AAV(3)
に対する実際に検出された経過時間Ta(4) j-1 ,T
a(2)j-1 ,Ta(1)j ,Ta(3)j のずれ割合
KAFC(4),KAFC(2),KAFC(1),K
AFC(3)を求める。
j-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 次いで次式に基づき各気筒についてこれら経過時間AA
V(4),AAV(2),AAV(1),AAV(3)
に対する実際に検出された経過時間Ta(4) j-1 ,T
a(2)j-1 ,Ta(1)j ,Ta(3)j のずれ割合
KAFC(4),KAFC(2),KAFC(1),K
AFC(3)を求める。
【0045】KAFC(4)={Ta(4)j-1 −AA
V(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) 次に次式を用いて基本補正係数KTaB(i)を各気筒
毎に求める。
V(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) 次に次式を用いて基本補正係数KTaB(i)を各気筒
毎に求める。
【0046】KTaB(i)=KTa(i)j-1 −KA
FC(i)/4 即ち、各気筒に対するこれまでの補正係数KTa(i)
j-1 からずれ割合KAFC(i)の1/4を減算するこ
とによって基本補正係数KTaB(i)が算出される。
次いで基本補正係数KTaB(i)の平均値tKTaM
が次式に基づき算出される。
FC(i)/4 即ち、各気筒に対するこれまでの補正係数KTa(i)
j-1 からずれ割合KAFC(i)の1/4を減算するこ
とによって基本補正係数KTaB(i)が算出される。
次いで基本補正係数KTaB(i)の平均値tKTaM
が次式に基づき算出される。
【0047】tKTaM={KTaB(1)+KTaB
(2)+KTaB(3)+KTaB(4)}/4 次いで次式に示されるように各基本補正係数KTaB
(i)から平均値tKTaMを減算することによって各
気筒に対する補正係数KTa(i)が算出される。
(2)+KTaB(3)+KTaB(4)}/4 次いで次式に示されるように各基本補正係数KTaB
(i)から平均値tKTaMを減算することによって各
気筒に対する補正係数KTa(i)が算出される。
【0048】 KTa(i)=KTaB(i)−tKTaM 上述したように補正係数KTa(i)j-1 をずれ割合K
AFC(i)に基づいて直接補正せず、一旦基本補正係
数KTaB(i)を求めるようにしているのは次の理由
による。例えば1番気筒#1についてのみずれ割合KA
FC(1)が存在し、このずれ割合KAFC(1)に基
づいて1番気筒#1の補正係数KTa(1)のみを補正
したとする。この場合、1番気筒#1のみの経過時間T
a(1)が増大又は減少せしめられる。しかしながら1
番気筒#1のみの経過時間Ta(1)が増大又は減少せ
しめられると今度は残りの気筒#2,#3,#4の補正
係数KTa(2),KTa(3),KTa(4)がずれ
を生じることになる。
AFC(i)に基づいて直接補正せず、一旦基本補正係
数KTaB(i)を求めるようにしているのは次の理由
による。例えば1番気筒#1についてのみずれ割合KA
FC(1)が存在し、このずれ割合KAFC(1)に基
づいて1番気筒#1の補正係数KTa(1)のみを補正
したとする。この場合、1番気筒#1のみの経過時間T
a(1)が増大又は減少せしめられる。しかしながら1
番気筒#1のみの経過時間Ta(1)が増大又は減少せ
しめられると今度は残りの気筒#2,#3,#4の補正
係数KTa(2),KTa(3),KTa(4)がずれ
を生じることになる。
【0049】このような問題が生じないようにするため
に基本補正係数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)はずれ
を生じなくなる。
に基本補正係数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)はずれ
を生じなくなる。
【0050】図12に示される実施例では例えば1番気
筒#1の経過時間Ta(1)j が平均的な一定の増大率
でもって増大したと考えたときの経過時間AAV(1)
よりも大きいときには1番気筒#1に対するずれ割合K
AFC(1)が正の値となる。その結果補正係数KTa
(1)は、ずれ割合KAFC(1)が零となるまで減少
せしめられ、ずれ割合KAFC(1)が零になると補正
係数KTa(1)の値は一定値に落ち着くことになる。
このとき経過時間Ta(1)は経過時間AVV(1)に
一致する。全ての気筒についての補正係数KTa(i)
が一定値に落ち着くとロータ14の回転速度が一定のと
きには補正係数KTa(i)を用いて補正された各気筒
の経過時間Ta(i)は全て等しくなる。従ってロータ
14の外歯の間隔にばらつきがあったとしても各気筒の
トルク変動を正確に検出することができる。
筒#1の経過時間Ta(1)j が平均的な一定の増大率
でもって増大したと考えたときの経過時間AAV(1)
よりも大きいときには1番気筒#1に対するずれ割合K
AFC(1)が正の値となる。その結果補正係数KTa
(1)は、ずれ割合KAFC(1)が零となるまで減少
せしめられ、ずれ割合KAFC(1)が零になると補正
係数KTa(1)の値は一定値に落ち着くことになる。
このとき経過時間Ta(1)は経過時間AVV(1)に
一致する。全ての気筒についての補正係数KTa(i)
が一定値に落ち着くとロータ14の回転速度が一定のと
きには補正係数KTa(i)を用いて補正された各気筒
の経過時間Ta(i)は全て等しくなる。従ってロータ
14の外歯の間隔にばらつきがあったとしても各気筒の
トルク変動を正確に検出することができる。
【0051】再びトルク変動の算出に話しを戻すと機関
駆動系に捩り振動が発生したときに経過時間差DTa
(i)は図10に示されるように変動する。しかしなが
らこの経過時間差DTa(i)は車両が凸凹道を走行し
たときにも変動し、しかもこのときにはDTa(i)の
変動巾が極めて大きくなる場合がある。図13は車両が
凸凹道を走行したときのDTa(i)の変動を示してお
り、図13のAMPは最小のDTa(i)と最大のDT
a(i)との差、即ち振幅を示している。この振幅AM
Pが小さいときにはこれまで述べた方法によって各気筒
の出力変動およびトルク変動を正確に検出することがで
きる。
駆動系に捩り振動が発生したときに経過時間差DTa
(i)は図10に示されるように変動する。しかしなが
らこの経過時間差DTa(i)は車両が凸凹道を走行し
たときにも変動し、しかもこのときにはDTa(i)の
変動巾が極めて大きくなる場合がある。図13は車両が
凸凹道を走行したときのDTa(i)の変動を示してお
り、図13のAMPは最小のDTa(i)と最大のDT
a(i)との差、即ち振幅を示している。この振幅AM
Pが小さいときにはこれまで述べた方法によって各気筒
の出力変動およびトルク変動を正確に検出することがで
きる。
【0052】しかしながら振幅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)が最小とな
る気筒においても同じことが生ずる。
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)が最小とな
る気筒においても同じことが生ずる。
【0053】また、一つ前に燃焼が行われた気筒のDT
a(i)に対してDTa(i)が急変した気筒において
もKb(i)の値が実際の値からずれ、斯くして出力変
動およびトルク変動を正確に検出できなくなる。そこで
本発明による実施例では振幅AMPが大きいときにはD
Ta(i)が最大又は最小となる気筒については出力変
動量又はトルク変動量を求めずに、更に一つ前に燃焼が
行われた気筒のDTa(i)に対してDTa(i)が急
変した気筒についても出力変動量又はトルク変動量を求
めないようにしている。
a(i)に対してDTa(i)が急変した気筒において
もKb(i)の値が実際の値からずれ、斯くして出力変
動およびトルク変動を正確に検出できなくなる。そこで
本発明による実施例では振幅AMPが大きいときにはD
Ta(i)が最大又は最小となる気筒については出力変
動量又はトルク変動量を求めずに、更に一つ前に燃焼が
行われた気筒のDTa(i)に対してDTa(i)が急
変した気筒についても出力変動量又はトルク変動量を求
めないようにしている。
【0054】さらに、本発明による実施例では求められ
た出力変動量又はトルク変動量に基づいて動力伝達装置
31又は被動装置32が異常であるか否かを判断し、動
力伝達装置31又は被動装置32が異常であると判断さ
れたときには空燃比の補正を禁止すると共にリーン運転
を禁止するようにしている。まず被動装置32について
説明する。被動装置32の正常時には、例えば補機の回
転軸はクランクシャフトに対し平行に延びており、プー
リ33は対応する回転軸に対し垂直に取付けられてお
り、全プーリ33は同一平面内に整列されている。とこ
ろが、例えば組付けが不正確であると補機の回転軸がク
ランクシャフトに対し平行でなくなり、プーリ33が対
応する回転軸に対し垂直でなくなり、或いは全プーリ3
3が同一平面上に整列されなくなり、プーリ33の回転
速度が大きく変動する。このプーリ33の回転速度の変
動はベルト34を介してクランクシャフト13に伝達さ
れ、その結果クランクシャフト13の回転速度が大きく
変動してトルク変動量が大きくなる。云い換えると被動
装置32が異常であるとトルク変動量が大きくなる。一
方、燃焼圧が変動したときにもトルク変動量が大きくな
り、従って大きなトルク変動量が被動装置32の異常に
よるものであるのか或いは燃焼圧の変動によるものであ
るのかわからない。
た出力変動量又はトルク変動量に基づいて動力伝達装置
31又は被動装置32が異常であるか否かを判断し、動
力伝達装置31又は被動装置32が異常であると判断さ
れたときには空燃比の補正を禁止すると共にリーン運転
を禁止するようにしている。まず被動装置32について
説明する。被動装置32の正常時には、例えば補機の回
転軸はクランクシャフトに対し平行に延びており、プー
リ33は対応する回転軸に対し垂直に取付けられてお
り、全プーリ33は同一平面内に整列されている。とこ
ろが、例えば組付けが不正確であると補機の回転軸がク
ランクシャフトに対し平行でなくなり、プーリ33が対
応する回転軸に対し垂直でなくなり、或いは全プーリ3
3が同一平面上に整列されなくなり、プーリ33の回転
速度が大きく変動する。このプーリ33の回転速度の変
動はベルト34を介してクランクシャフト13に伝達さ
れ、その結果クランクシャフト13の回転速度が大きく
変動してトルク変動量が大きくなる。云い換えると被動
装置32が異常であるとトルク変動量が大きくなる。一
方、燃焼圧が変動したときにもトルク変動量が大きくな
り、従って大きなトルク変動量が被動装置32の異常に
よるものであるのか或いは燃焼圧の変動によるものであ
るのかわからない。
【0055】しかしながら被動装置32が異常であると
きには燃焼圧の変動が小さく維持されるべき機関運転状
態であってもトルク変動量は大きく維持される。一方、
図1の内燃機関では機関アイドル運転時に空燃比が理論
空燃比とされるのでこのとき燃焼が特に安定しており、
燃焼圧の変動が小さく維持される。従ってアイドル運転
時にトルク変動量が大きいときには被動装置32が異常
であると判断できることになる。そこで本発明による実
施例では、アイドル運転時にトルク変動量の平均値が一
定時間以上、一定値を越えたときには被動装置32が異
常であると判断して空燃比の補正を禁止すると共にリー
ン運転を禁止するようにしている。また、このとき警告
装置30が作動せしめられる。
きには燃焼圧の変動が小さく維持されるべき機関運転状
態であってもトルク変動量は大きく維持される。一方、
図1の内燃機関では機関アイドル運転時に空燃比が理論
空燃比とされるのでこのとき燃焼が特に安定しており、
燃焼圧の変動が小さく維持される。従ってアイドル運転
時にトルク変動量が大きいときには被動装置32が異常
であると判断できることになる。そこで本発明による実
施例では、アイドル運転時にトルク変動量の平均値が一
定時間以上、一定値を越えたときには被動装置32が異
常であると判断して空燃比の補正を禁止すると共にリー
ン運転を禁止するようにしている。また、このとき警告
装置30が作動せしめられる。
【0056】一方、動力伝達装置31が異常のとき、即
ち例えばベルト34の張力が最適値から逸脱したとき、
特に最適値よりも低下したときにもクランクシャフト1
3の回転速度が変動するが、この場合にはトルク変動値
が大きくばらつくようになる。一方、燃焼圧が変動した
ときもトルク変動量に大きなばらつきが生じ、従ってト
ルク変動量の大きなばらつきが動力伝達装置31の異常
によるものであるのか或いは燃焼圧の変動によるもので
あるのかわからない。
ち例えばベルト34の張力が最適値から逸脱したとき、
特に最適値よりも低下したときにもクランクシャフト1
3の回転速度が変動するが、この場合にはトルク変動値
が大きくばらつくようになる。一方、燃焼圧が変動した
ときもトルク変動量に大きなばらつきが生じ、従ってト
ルク変動量の大きなばらつきが動力伝達装置31の異常
によるものであるのか或いは燃焼圧の変動によるもので
あるのかわからない。
【0057】しかしながら動力伝達装置31が異常であ
るときには燃焼圧の変動が小さく維持されるべき機関運
転状態であってもトルク変動量のばらつきは大きく維持
される。一方、図1の内燃機関では上述したように機関
アイドル運転時に燃焼圧の変動が小さく維持される。従
ってアイドル運転時にトルク変動量に大きなばらつきが
生じているときには動力伝達装置31が異常であると判
断できることになる。そこで本発明による実施例では、
アイドル運転時にトルク変動量のばらつきが一定値を越
えたときには動力伝達装置31が異常であると判断して
空燃比の補正を禁止すると共にリーン運転を禁止するよ
うにしている。また、このとき警告装置30が作動せし
められる。
るときには燃焼圧の変動が小さく維持されるべき機関運
転状態であってもトルク変動量のばらつきは大きく維持
される。一方、図1の内燃機関では上述したように機関
アイドル運転時に燃焼圧の変動が小さく維持される。従
ってアイドル運転時にトルク変動量に大きなばらつきが
生じているときには動力伝達装置31が異常であると判
断できることになる。そこで本発明による実施例では、
アイドル運転時にトルク変動量のばらつきが一定値を越
えたときには動力伝達装置31が異常であると判断して
空燃比の補正を禁止すると共にリーン運転を禁止するよ
うにしている。また、このとき警告装置30が作動せし
められる。
【0058】次に図14から図25を参照しつつ各気筒
のトルク変動量を求めるためのルーチンについて説明す
る。なお、図25は各ルーチンにおいて行われる各値の
計算タイミングを示している。図14は30°クランク
角度毎に行われる割込みルーチンを示している。図14
を参照するとまず初めに経過時間差DTa(i)および
経過時間Tb(i)を算出するためのルーチン(ステッ
プ100)に進む。このルーチンは図15から図18に
示されている。次いでトルク変動の算出を許可するか否
かをチェックするためのルーチン(ステップ200)に
進む。このルーチンは図19から図21に示されてい
る。次いでトルク変動を算出するためのルーチン(ステ
ップ300)に進む。このルーチンは図23に示されて
いる。次いでトルク変動値の算出に用いるカウンタCD
LNIXの処理ルーチン(ステップ400)に進む。こ
のルーチンは図24に示されている。
のトルク変動量を求めるためのルーチンについて説明す
る。なお、図25は各ルーチンにおいて行われる各値の
計算タイミングを示している。図14は30°クランク
角度毎に行われる割込みルーチンを示している。図14
を参照するとまず初めに経過時間差DTa(i)および
経過時間Tb(i)を算出するためのルーチン(ステッ
プ100)に進む。このルーチンは図15から図18に
示されている。次いでトルク変動の算出を許可するか否
かをチェックするためのルーチン(ステップ200)に
進む。このルーチンは図19から図21に示されてい
る。次いでトルク変動を算出するためのルーチン(ステ
ップ300)に進む。このルーチンは図23に示されて
いる。次いでトルク変動値の算出に用いるカウンタCD
LNIXの処理ルーチン(ステップ400)に進む。こ
のルーチンは図24に示されている。
【0059】経過時間差DTa(i)および経過時間T
b(i)の算出ルーチンを示す図15から図18を参照
すると、まず初めにステップ101において時刻TIM
EがTIMEOとされる。電子制御ユニット20は時刻
を表わすフリーランカウンタを備えており、このフリー
ランカウンタのカウント値から時刻TIMEが算出され
る。次いでステップ102では現在の時刻TIMEが取
込まれる。従ってステップ101のTIMEOは30°
クランク角度前の時刻を表わしていることになる。
b(i)の算出ルーチンを示す図15から図18を参照
すると、まず初めにステップ101において時刻TIM
EがTIMEOとされる。電子制御ユニット20は時刻
を表わすフリーランカウンタを備えており、このフリー
ランカウンタのカウント値から時刻TIMEが算出され
る。次いでステップ102では現在の時刻TIMEが取
込まれる。従ってステップ101のTIMEOは30°
クランク角度前の時刻を表わしていることになる。
【0060】次いでステップ103では現在i番気筒の
ATDC30°であるか否かが判別される。現在i番気
筒のATDC30°でない場合にはステップ111にジ
ャンプして現在i番気筒のATDC90°であるか否か
が判別される。現在i番気筒のATDC90°でない場
合には経過時間差DTa(i)および経過時間Tb
(i)の算出ルーチンを完了する。
ATDC30°であるか否かが判別される。現在i番気
筒のATDC30°でない場合にはステップ111にジ
ャンプして現在i番気筒のATDC90°であるか否か
が判別される。現在i番気筒のATDC90°でない場
合には経過時間差DTa(i)および経過時間Tb
(i)の算出ルーチンを完了する。
【0061】これに対してステップ103において現在
i番気筒のATDC30°であると判別されたときには
ステップ104に進んで720°クランク角度前に算出
された経過時間Ta(i)がTaO(i)とされる。次
いでステップ105では次式に基づいてi番気筒のTD
CからATDC30°までの最終的な経過時間Ta
(i)が算出される。
i番気筒のATDC30°であると判別されたときには
ステップ104に進んで720°クランク角度前に算出
された経過時間Ta(i)がTaO(i)とされる。次
いでステップ105では次式に基づいてi番気筒のTD
CからATDC30°までの最終的な経過時間Ta
(i)が算出される。
【0062】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°クランク角度回転する間の経過時間を正確に表
わしていることになる。
(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°クランク角度回転する間の経過時間を正確に表
わしていることになる。
【0063】次いでステップ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)がセットされる。
経過時間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)がセットされる。
【0064】一方、ステップ111において現在i番気
筒のATDC90°であると判別されたときにはステッ
プ112に進んで720°クランク角度前に算出された
経過時間Tb(i)がTbO(i)とされる。次いでス
テップ113では次式に基づいてi番気筒のATDC6
0°からATDC90°までの最終的な経過時間Tb
(i)が算出される。
筒のATDC90°であると判別されたときにはステッ
プ112に進んで720°クランク角度前に算出された
経過時間Tb(i)がTbO(i)とされる。次いでス
テップ113では次式に基づいてi番気筒のATDC6
0°からATDC90°までの最終的な経過時間Tb
(i)が算出される。
【0065】Tb(i)=(TIME−TIMEO)・
(1+KTb(i)) 即ち、例えば現在1番気筒#1のATDC90°である
とすると1番気筒#1のATDC60°からATDC9
0°までの最終的な経過時間Tb(1)が(TIME−
TIMEO)・(1+KTb(1))から算出される。
この場合にもロータ13の外歯間隔による誤差を補正す
るための値(1+KTb(1))が(TIME−TIM
EO)に乗算されているので最終的な経過時間Tb
(1)はクランクシャフトが30°クランク角度回転す
る間の経過時間を正確に表わしていることになる。次い
でステップ114では現在2番気筒#2のATDC90
°であるか否かが判別される。現在2番気筒#2のAT
DC90°でないときには経過時間差DTa(i)およ
び経過時間Tb(i)の算出ルーチンを完了する。
(1+KTb(i)) 即ち、例えば現在1番気筒#1のATDC90°である
とすると1番気筒#1のATDC60°からATDC9
0°までの最終的な経過時間Tb(1)が(TIME−
TIMEO)・(1+KTb(1))から算出される。
この場合にもロータ13の外歯間隔による誤差を補正す
るための値(1+KTb(1))が(TIME−TIM
EO)に乗算されているので最終的な経過時間Tb
(1)はクランクシャフトが30°クランク角度回転す
る間の経過時間を正確に表わしていることになる。次い
でステップ114では現在2番気筒#2のATDC90
°であるか否かが判別される。現在2番気筒#2のAT
DC90°でないときには経過時間差DTa(i)およ
び経過時間Tb(i)の算出ルーチンを完了する。
【0066】一方、ステップ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に示されている。
筒#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に示されている。
【0067】図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)が次のようにして算出される。
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)が次のようにして算出される。
【0068】AAV(4)=(TaAVj −TaAV
j-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 次いでステップ122では次式に基づいてこれら経過時
間AAV(4),AAV(2),AAV(1),AAV
(3)に対する実際に検出された経過時間TaO
(4),TaO(2),Ta(1),Ta(3)のずれ
割合KAFC(4),KAFC(2),KAFC
(1),KAFC(3)が算出される。ここでTaO
(4),TaO(2),Ta(1),Ta(3)は夫々
図12に示されるTa(4)j-1 ,Ta(2)j-1 ,T
a(1)j ,Ta(3)j に相当する。
j-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 次いでステップ122では次式に基づいてこれら経過時
間AAV(4),AAV(2),AAV(1),AAV
(3)に対する実際に検出された経過時間TaO
(4),TaO(2),Ta(1),Ta(3)のずれ
割合KAFC(4),KAFC(2),KAFC
(1),KAFC(3)が算出される。ここでTaO
(4),TaO(2),Ta(1),Ta(3)は夫々
図12に示されるTa(4)j-1 ,Ta(2)j-1 ,T
a(1)j ,Ta(3)j に相当する。
【0069】KAFC(4)={TaO(4)−AAV
(4)}/AAV(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) 次いでステップ123では補正係数KTa(i)の学習
条件が成立しているか否かが判別される。例えば燃料供
給停止から一定時間経過しており、機関回転数が予め定
められた範囲内にあり、かつ車両が悪路を走行していな
いとき、例えば図13に示される経過時間差DTa
(i)の振幅AMPが設定値を越えていないときに学習
条件が成立していると判断される。学習条件が成立して
いないときにはステップ128に進んでずれ量KAFC
(i)の積算値KAFCI(i)が零とされ、次いでス
テップ129において積算カウント値CKAFCがクリ
アされる。
(4)}/AAV(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) 次いでステップ123では補正係数KTa(i)の学習
条件が成立しているか否かが判別される。例えば燃料供
給停止から一定時間経過しており、機関回転数が予め定
められた範囲内にあり、かつ車両が悪路を走行していな
いとき、例えば図13に示される経過時間差DTa
(i)の振幅AMPが設定値を越えていないときに学習
条件が成立していると判断される。学習条件が成立して
いないときにはステップ128に進んでずれ量KAFC
(i)の積算値KAFCI(i)が零とされ、次いでス
テップ129において積算カウント値CKAFCがクリ
アされる。
【0070】これに対して学習条件が成立している場合
にはステップ124に進んで各気筒に対するずれ量KA
FC(i)が対応する積算値KAFCI(i)に加算さ
れ、次いでステップ125において積算カウント値CK
AFCが1だけインクリメントされる。次いでステップ
126では積算カウント値CKAFCが8になったか否
かが判別される。積算カウント値CKAFCが8でない
ときには処理サイクルを完了し、積算カウント値CKA
FCが8になるとステップ127に進んで補正係数KT
a(i)が算出される。即ち、各気筒についてずれ量K
AFC(i)が8回積算されるとステップ127に進ん
で補正係数KTa(i)が算出される。
にはステップ124に進んで各気筒に対するずれ量KA
FC(i)が対応する積算値KAFCI(i)に加算さ
れ、次いでステップ125において積算カウント値CK
AFCが1だけインクリメントされる。次いでステップ
126では積算カウント値CKAFCが8になったか否
かが判別される。積算カウント値CKAFCが8でない
ときには処理サイクルを完了し、積算カウント値CKA
FCが8になるとステップ127に進んで補正係数KT
a(i)が算出される。即ち、各気筒についてずれ量K
AFC(i)が8回積算されるとステップ127に進ん
で補正係数KTa(i)が算出される。
【0071】ステップ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が算出さ
れる。
数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が算出さ
れる。
【0072】tKTaM=(KTaB(1)+KTaB
(2)+KTaB(3)+KTaB(4))/4 次いで次式に示されるように基本補正係数KTaB
(i)をその平均値tKTaMでもって修正することに
より補正係数KTa(i)が更新される。 KTa(i)=KTaB(i)−tKTaM このようにして減速運転中の燃料噴射停止時に各気筒に
対する補正係数KTa(i)の更新が行われる。
(2)+KTaB(3)+KTaB(4))/4 次いで次式に示されるように基本補正係数KTaB
(i)をその平均値tKTaMでもって修正することに
より補正係数KTa(i)が更新される。 KTa(i)=KTaB(i)−tKTaM このようにして減速運転中の燃料噴射停止時に各気筒に
対する補正係数KTa(i)の更新が行われる。
【0073】一方、図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に示されている。
在2番気筒#2のATDC90°であると判別されたと
きにはステップ115に進んでTaAVj を求めたとき
と同じ方法により次式に基づいて720°クランク角度
範囲における経過時間Tb(i)の平均値TbAVj が
算出される。 TbAVj =(Tb(1)+Tb(3)+Tb(4)+
Tb(2))/4 次いでステップ116の補正係数KTb(i)の算出ル
ーチンに進む。このルーチンは図18に示されている。
【0074】図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)が算出される。
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)が算出される。
【0075】BAV(4)=(TbAVj −TbAV
j-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 次いでステップ132では次式に基づいてこれら経過時
間BAV(4),BAV(2),BAV(1),BAV
(3)に対する実際に検出された経過時間TbO
(4),TbO(2),Tb(1),Tb(3)のずれ
割合KBFC(4),KBFC(2),KBFC
(1),KBFC(3)が算出される。
j-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 次いでステップ132では次式に基づいてこれら経過時
間BAV(4),BAV(2),BAV(1),BAV
(3)に対する実際に検出された経過時間TbO
(4),TbO(2),Tb(1),Tb(3)のずれ
割合KBFC(4),KBFC(2),KBFC
(1),KBFC(3)が算出される。
【0076】KBFC(4)={TbO(4)−BAV
(4)}/BAV(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) 次いでステップ133では補正係数KTb(i)の学習
条件が成立しているか否かが判別される。前述したよう
に、例えば燃料供給停止から一定時間経過しており、機
関回転数が予め定められた範囲内にあり、かつ車両が悪
路を走行していないとき、例えば図13に示される経過
時間差DTa(i)の振幅AMPが設定値を越えていな
いときに学習条件が成立していると判断される。学習条
件が成立していないときにはステップ138に進んでず
れ量KBFC(i)の積算値KBFCI(i)が零とさ
れ、次いでステップ139において積算カウント値CK
BFCがクリアされる。
(4)}/BAV(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) 次いでステップ133では補正係数KTb(i)の学習
条件が成立しているか否かが判別される。前述したよう
に、例えば燃料供給停止から一定時間経過しており、機
関回転数が予め定められた範囲内にあり、かつ車両が悪
路を走行していないとき、例えば図13に示される経過
時間差DTa(i)の振幅AMPが設定値を越えていな
いときに学習条件が成立していると判断される。学習条
件が成立していないときにはステップ138に進んでず
れ量KBFC(i)の積算値KBFCI(i)が零とさ
れ、次いでステップ139において積算カウント値CK
BFCがクリアされる。
【0077】これに対して学習条件が成立している場合
にはステップ134に進んで各気筒に対するずれ量KB
FC(i)が対応する積算値KBFCI(i)に加算さ
れ、次いでステップ135において積算カウント値CK
BFCが1だけインクリメントされる。次いでステップ
136では積算カウント値CKBFCが8になったか否
かが判別される。積算カウント値CKBFCが8でない
ときには処理サイクルを完了し、積算カウント値CKB
FCが8になるとステップ137に進んで補正係数KT
b(i)が算出される。即ち、各気筒についてずれ量K
BFC(i)が8回積算されるとステップ137に進ん
で補正係数KTb(i)が算出される。
にはステップ134に進んで各気筒に対するずれ量KB
FC(i)が対応する積算値KBFCI(i)に加算さ
れ、次いでステップ135において積算カウント値CK
BFCが1だけインクリメントされる。次いでステップ
136では積算カウント値CKBFCが8になったか否
かが判別される。積算カウント値CKBFCが8でない
ときには処理サイクルを完了し、積算カウント値CKB
FCが8になるとステップ137に進んで補正係数KT
b(i)が算出される。即ち、各気筒についてずれ量K
BFC(i)が8回積算されるとステップ137に進ん
で補正係数KTb(i)が算出される。
【0078】ステップ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が算出さ
れる。
数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が算出さ
れる。
【0079】tKTbM=(KTbB(1)+KTbB
(2)+KTbB(3)+KTbB(4))/4 次いで次式に示されるように基本補正係数KTbB
(i)をその平均値tKTbMでもって修正することに
より補正係数KTb(i)が更新される。 KTb(i)=KTbB(i)−tKTbM このようにして減速運転中の燃料噴射停止時に各気筒に
対する補正係数KTb(i)の更新が行われる。
(2)+KTbB(3)+KTbB(4))/4 次いで次式に示されるように基本補正係数KTbB
(i)をその平均値tKTbMでもって修正することに
より補正係数KTb(i)が更新される。 KTb(i)=KTbB(i)−tKTbM このようにして減速運転中の燃料噴射停止時に各気筒に
対する補正係数KTb(i)の更新が行われる。
【0080】次に図19から図21に示されるトルク変
動算出許可チェックルーチンについて図22を参照しつ
つ説明する。このルーチンは車両が凸凹道を走行するこ
とにより経過時間差DTa(i)の変動の振幅AMP
(図13)が大きくなったときには特定の気筒について
のトルク変動量の算出を禁止するために設けられてい
る。
動算出許可チェックルーチンについて図22を参照しつ
つ説明する。このルーチンは車両が凸凹道を走行するこ
とにより経過時間差DTa(i)の変動の振幅AMP
(図13)が大きくなったときには特定の気筒について
のトルク変動量の算出を禁止するために設けられてい
る。
【0081】即ち、図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に進む。
ず初めにステップ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に進む。
【0082】ステップ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に進
む。
過時間差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に進
む。
【0083】ステップ208からステップ214ではD
Ta(i)の変動の振幅AMP(図13)が設定値A0
を越えたときにはDTa(i)が最大となった気筒につ
いてのトルク変動量の算出を禁止する禁止フラグがセッ
トされる。即ち、ステップ208ではDT30max>
DTa(i)でかつXMXREC=“1”であるか否か
が判別される。DT30max≦DTa(i)である
か、又は増大フラグXMXRECがリセット(XMXR
EC=“0”)されているときにはステップ215にジ
ャンプし、これに対してDT30max>DTa(i)
でかつXMXREC=“1”のときにはステップ209
に進む。
Ta(i)の変動の振幅AMP(図13)が設定値A0
を越えたときにはDTa(i)が最大となった気筒につ
いてのトルク変動量の算出を禁止する禁止フラグがセッ
トされる。即ち、ステップ208ではDT30max>
DTa(i)でかつXMXREC=“1”であるか否か
が判別される。DT30max≦DTa(i)である
か、又は増大フラグXMXRECがリセット(XMXR
EC=“0”)されているときにはステップ215にジ
ャンプし、これに対してDT30max>DTa(i)
でかつXMXREC=“1”のときにはステップ209
に進む。
【0084】即ち、図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 である。
おいて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 である。
【0085】ステップ209では最大経過時間差DT3
0maxがTMXRECとされる。次いでステップ21
0では最大経過時間差TMXRECから最小経過時間差
TMNREC(後述するステップ216で求められる)
を減算することによってDTa(i)の変動の振幅AM
Pが算出される。次いでステップ211では最小経過時
間差DT30minの初期値がDTa(i)とされる。
次いでステップ212では増大フラグXMXRECがリ
セット(XMXREC←“0”)される。次いでステッ
プ213では振幅AMPが設定値A0 よりも大きいか否
かが判別される。AMP<A0 のときにはステップ21
5にジャンプする。これに対してAMP≧A0 のときに
はステップ214に進んでトルク変動算出禁止フラグX
NOCALがセット(XNOCAL←“1”)される。
即ち、図22の時刻t2 において行われる割込みルーチ
ンでは前述したように1番気筒#1のトルク変動量が算
出される。従ってこの割込みルーチンにおいてAMP≧
A0 となり、トルク変動算出禁止フラグXNOCALが
セットされると1番気筒#1のトルク変動量の算出、即
ち、DTa(i)が最大となる気筒のトルク変動量の算
出が禁止される。
0maxがTMXRECとされる。次いでステップ21
0では最大経過時間差TMXRECから最小経過時間差
TMNREC(後述するステップ216で求められる)
を減算することによってDTa(i)の変動の振幅AM
Pが算出される。次いでステップ211では最小経過時
間差DT30minの初期値がDTa(i)とされる。
次いでステップ212では増大フラグXMXRECがリ
セット(XMXREC←“0”)される。次いでステッ
プ213では振幅AMPが設定値A0 よりも大きいか否
かが判別される。AMP<A0 のときにはステップ21
5にジャンプする。これに対してAMP≧A0 のときに
はステップ214に進んでトルク変動算出禁止フラグX
NOCALがセット(XNOCAL←“1”)される。
即ち、図22の時刻t2 において行われる割込みルーチ
ンでは前述したように1番気筒#1のトルク変動量が算
出される。従ってこの割込みルーチンにおいてAMP≧
A0 となり、トルク変動算出禁止フラグXNOCALが
セットされると1番気筒#1のトルク変動量の算出、即
ち、DTa(i)が最大となる気筒のトルク変動量の算
出が禁止される。
【0086】ステップ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)でかつ
XMNREC=“1”のときにはステップ216に進
む。
Ta(i)の変動の振幅AMPが設定値A0 を越えたと
きにはDTa(i)が最小となった気筒についてのトル
ク変動量の算出を禁止する禁止フラグがセットされる。
即ち、ステップ215ではDT30min<DTa
(i)でかつXMNREC=“1”であるか否かが判別
される。DT30min≧DTa(i)であるか、又は
減少フラグXMNRECがリセット(XMNREC=
“0”)されているときにはステップ222にジャンプ
し、これに対してDT30min<DTa(i)でかつ
XMNREC=“1”のときにはステップ216に進
む。
【0087】即ち、図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 である。
おいて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 である。
【0088】ステップ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にジャンプする。これに対してAM
P≧A0 のときにはステップ221に進んでトルク変動
算出禁止フラグXNOCALがセット(XNOCAL←
“1”)される。即ち、図22の時刻t4 において行わ
れる割込みルーチンでは1番気筒#1のトルク変動量が
算出される。従ってこの割込みルーチンにおいてAMP
≧A0となり、トルク変動算出禁止フラグXNOCAL
がセットされると1番気筒#1のトルク変動量の算出、
即ち、DTa(i)が最小となる気筒のトルク変動量の
算出が禁止される。
0minがTMNRECとされる。次いでステップ21
7では最大経過時間差TMXRECから最小経過時間差
TMNRECを減算することによってDTa(i)の変
動の振幅AMPが算出される。次いでステップ218で
は最大経過時間差DT30maxの初期値がDTa
(i)とされる。次いでステップ219では減少フラグ
XMNRECがリセット(XMNREC←“0”)され
る。次いでステップ220では振幅AMPが設定値A0
よりも大きいか否かが判別される。AMP<A0 のとき
にはステップ222にジャンプする。これに対してAM
P≧A0 のときにはステップ221に進んでトルク変動
算出禁止フラグXNOCALがセット(XNOCAL←
“1”)される。即ち、図22の時刻t4 において行わ
れる割込みルーチンでは1番気筒#1のトルク変動量が
算出される。従ってこの割込みルーチンにおいてAMP
≧A0となり、トルク変動算出禁止フラグXNOCAL
がセットされると1番気筒#1のトルク変動量の算出、
即ち、DTa(i)が最小となる気筒のトルク変動量の
算出が禁止される。
【0089】ステップ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がセットされる。
経過時間差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がセットされる。
【0090】即ち、今図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のトルク変動量の算出が禁止され
る。
ルーチンであるとするとこのときには|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のトルク変動量の算出が禁止され
る。
【0091】次に図23に示すトルク変動算出ルーチン
について説明する。図23を参照すると、まず初めにス
テップ301において一つ前に燃焼が行われた(i−
1)番気筒のトルク変動量を算出すべきことを示すフラ
グXCAL(i−1)がセットされているか否かが判別
される。フラグXCAL(i−1)=“0”のとき、即
ちフラグXCAL(i−1)がセットされていないとき
には処理サイクルを完了する。これに対してフラグXC
AL(i−1)=“1”のとき、即ちフラグXCAL
(i−1)がセットされているときにはステップ302
に進んでフラグXCAL(i−1)がリセットされ、次
いでステップ303に進む。
について説明する。図23を参照すると、まず初めにス
テップ301において一つ前に燃焼が行われた(i−
1)番気筒のトルク変動量を算出すべきことを示すフラ
グXCAL(i−1)がセットされているか否かが判別
される。フラグXCAL(i−1)=“0”のとき、即
ちフラグXCAL(i−1)がセットされていないとき
には処理サイクルを完了する。これに対してフラグXC
AL(i−1)=“1”のとき、即ちフラグXCAL
(i−1)がセットされているときにはステップ302
に進んでフラグXCAL(i−1)がリセットされ、次
いでステップ303に進む。
【0092】ステップ303では一つ前に燃焼が行われ
た気筒についてのトルク変動量の算出を禁止する禁止フ
ラグXNOCALがリセット(XNOCAL=“0”)
されているか否かが判別される。この禁止フラグがセッ
ト(XNOCAL=“1”)されているときにはステッ
プ311に進んで禁止フラグXNOCALがリセットさ
れる。これに対して禁止フラグがリセットされていると
きにはステップ304に進む。即ち、フラグXCALが
セットされており、かつ禁止フラグXNOCALがリセ
ットされているときのみステップ304に進む。
た気筒についてのトルク変動量の算出を禁止する禁止フ
ラグXNOCALがリセット(XNOCAL=“0”)
されているか否かが判別される。この禁止フラグがセッ
ト(XNOCAL=“1”)されているときにはステッ
プ311に進んで禁止フラグXNOCALがリセットさ
れる。これに対して禁止フラグがリセットされていると
きにはステップ304に進む。即ち、フラグXCALが
セットされており、かつ禁止フラグXNOCALがリセ
ットされているときのみステップ304に進む。
【0093】ステップ304では一つ前に燃焼が行われ
た(i−1)番気筒の仮想の経過時間差Kb(i−1)
(図10および図11参照)が次式に基づいて算出され
る。 Kb(i−1)={2・DTa(i−1)+DTa
(i)}/3 次いでステップ305では次式に基づいて一つ前に燃焼
が行われた(i−1)番気筒の実際の出力トルクDN
(i−1)が算出される。
た(i−1)番気筒の仮想の経過時間差Kb(i−1)
(図10および図11参照)が次式に基づいて算出され
る。 Kb(i−1)={2・DTa(i−1)+DTa
(i)}/3 次いでステップ305では次式に基づいて一つ前に燃焼
が行われた(i−1)番気筒の実際の出力トルクDN
(i−1)が算出される。
【0094】DN(i−1)={30°/Tb(i−
1)}2−{30°/Ta(i−1)}2 次いでステップ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)が算
出される。
1)}2−{30°/Ta(i−1)}2 次いでステップ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)が算
出される。
【0095】DLN(i−1)=DNS(i−1)−D
N(i−1) 即ち、例えば今3番気筒#3のATDC30°であって
フラグXCAL(1)がセットされているとするとステ
ップ304において1番気筒#1に対する仮想の経過時
間差Kb(1)が算出され、次いでステップ305にお
いて1番気筒#1の実際の出力トルクDN(1)が算出
され、ステップ306において1番気筒#1の仮想の出
力トルクDNS(1)が算出され、次いでステップ30
7において1番気筒#1のトルク変動量DLN(1)が
算出される。
N(i−1) 即ち、例えば今3番気筒#3のATDC30°であって
フラグXCAL(1)がセットされているとするとステ
ップ304において1番気筒#1に対する仮想の経過時
間差Kb(1)が算出され、次いでステップ305にお
いて1番気筒#1の実際の出力トルクDN(1)が算出
され、ステップ306において1番気筒#1の仮想の出
力トルクDNS(1)が算出され、次いでステップ30
7において1番気筒#1のトルク変動量DLN(1)が
算出される。
【0096】なお、各気筒の出力変動量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)を算出する。
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)を算出する。
【0097】GNS(i−1)={30°/(TbO
(i−1)+Kb(i−1))}−{30°/Ta(i
−1)} 次いでステップ307ではトルク変動量DLN(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)
を零にしている。
(i−1)+Kb(i−1))}−{30°/Ta(i
−1)} 次いでステップ307ではトルク変動量DLN(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)
を零にしている。
【0098】次に図24を参照しつつカウンタCDLN
IXの処理について説明する。このカウンタCDLNI
Xのカウント値は後に説明する機関のトルク変動値を算
出する際に使用される。図24を参照すると、まず初め
にステップ401において現在3番気筒#3のATDC
30°であるか否かが判別される。現在3番気筒#3の
ATDC30°でないときには処理サイクルを完了し、
現在3番気筒#3のATDC30°であるときにはステ
ップ402に進む。ステップ402では機関のトルク変
動値を算出するためのトルク変動値算出条件が成立して
いるか否かが判別される。例えば空燃比をリーンとする
条件が成立していないか、或いは機関負荷Q/Nの単位
時間当りの変化量ΔQ/Nが設定値以上であるか、或い
は機関回転数の単位時間当りの変化量ΔNが設定値以上
であるときにはトルク変動値算出条件が成立していない
と判断され、それ以外のときにはトルク変動値算出条件
が成立していると判断される。
IXの処理について説明する。このカウンタCDLNI
Xのカウント値は後に説明する機関のトルク変動値を算
出する際に使用される。図24を参照すると、まず初め
にステップ401において現在3番気筒#3のATDC
30°であるか否かが判別される。現在3番気筒#3の
ATDC30°でないときには処理サイクルを完了し、
現在3番気筒#3のATDC30°であるときにはステ
ップ402に進む。ステップ402では機関のトルク変
動値を算出するためのトルク変動値算出条件が成立して
いるか否かが判別される。例えば空燃比をリーンとする
条件が成立していないか、或いは機関負荷Q/Nの単位
時間当りの変化量ΔQ/Nが設定値以上であるか、或い
は機関回転数の単位時間当りの変化量ΔNが設定値以上
であるときにはトルク変動値算出条件が成立していない
と判断され、それ以外のときにはトルク変動値算出条件
が成立していると判断される。
【0099】ステップ402においてトルク変動値算出
条件が成立していると判断されたときにはステップ40
8に進んでカウント値CDLNIXが1だけインクリメ
ントされる。このカウント値CDLNIXのインクリメ
ント作用は3番気筒#3がATDC30°となる毎に、
即ち720°クランク角度毎に行われる。次いでステッ
プ409ではカウント値CDLNIXのインクリメント
作用が開始されてからカウント値CDLNIXがクリア
されるまでの間の機関回転数の平均値NAVE および吸入
空気量Qの平均値QAVE が算出される。
条件が成立していると判断されたときにはステップ40
8に進んでカウント値CDLNIXが1だけインクリメ
ントされる。このカウント値CDLNIXのインクリメ
ント作用は3番気筒#3がATDC30°となる毎に、
即ち720°クランク角度毎に行われる。次いでステッ
プ409ではカウント値CDLNIXのインクリメント
作用が開始されてからカウント値CDLNIXがクリア
されるまでの間の機関回転数の平均値NAVE および吸入
空気量Qの平均値QAVE が算出される。
【0100】一方、ステップ402においてトルク変動
値算出条件が成立していないと判断されたときにはステ
ップ403に進んでカウント値CDLNIXがクリアさ
れる。次いでステップ404では各気筒に対するトルク
変動量DLN(i)の積算値DLNI(i)(この積算
値は後に説明するルーチンにおいて算出される)がクリ
アされ、次いでステップ405では各気筒に対する積算
カウント値CDLNI(i)(この積算カウント値は後
に説明するルーチンにおいて算出される)がクリアされ
る。
値算出条件が成立していないと判断されたときにはステ
ップ403に進んでカウント値CDLNIXがクリアさ
れる。次いでステップ404では各気筒に対するトルク
変動量DLN(i)の積算値DLNI(i)(この積算
値は後に説明するルーチンにおいて算出される)がクリ
アされ、次いでステップ405では各気筒に対する積算
カウント値CDLNI(i)(この積算カウント値は後
に説明するルーチンにおいて算出される)がクリアされ
る。
【0101】次いでステップ406では目標トルク変動
値LVLLFBが算出される。本発明による実施例では
後に説明するように算出されたトルク変動値がこの目標
トルク変動値LVLLFBとなるように空燃比がフィー
ドバック制御される。この目標トルク変動値LVLLF
Bは等しい変動値を実線で示した図26(A)に示され
るように機関負荷Q/Nが高くなるほど大きくなり、機
関回転数Nが高くなるほど大きくなる。この目標トルク
変動値LVLLFBは図26(B)に示されるように機
関負荷Q/Nおよび機関回転数Nの関数としてマップの
形で予めROM22内に記憶されている。次いでステッ
プ407では各気筒のトルク変動値DLNISM(i)
(このトルク変動値は後に説明するルーチンにおいて算
出される)が図26(B)のマップから算出された目標
トルク変動値LVLLFBとされる。
値LVLLFBが算出される。本発明による実施例では
後に説明するように算出されたトルク変動値がこの目標
トルク変動値LVLLFBとなるように空燃比がフィー
ドバック制御される。この目標トルク変動値LVLLF
Bは等しい変動値を実線で示した図26(A)に示され
るように機関負荷Q/Nが高くなるほど大きくなり、機
関回転数Nが高くなるほど大きくなる。この目標トルク
変動値LVLLFBは図26(B)に示されるように機
関負荷Q/Nおよび機関回転数Nの関数としてマップの
形で予めROM22内に記憶されている。次いでステッ
プ407では各気筒のトルク変動値DLNISM(i)
(このトルク変動値は後に説明するルーチンにおいて算
出される)が図26(B)のマップから算出された目標
トルク変動値LVLLFBとされる。
【0102】図28は繰返し実行されるメインルーチン
を示している。このメインルーチンではまず初めにトル
ク変動値の算出ルーチン(ステップ600)が実行され
る。このルーチンが図29および図30に示されてい
る。次いで動力伝達装置31の異常判断ルーチン(ステ
ップ650)が実行される。このルーチンが図31に示
されている。次いでリーンリミットフィードバック補正
係数FLLFBの算出ルーチン(ステップ700)が実
行される。このルーチンが図32に示されている。次い
で予め定められたクランク角になったときに噴射時間算
出ルーチン(ステップ800)が実行される。このルー
チンが図33に示されている。次いでその他のルーチン
(ステップ900)が実行される。
を示している。このメインルーチンではまず初めにトル
ク変動値の算出ルーチン(ステップ600)が実行され
る。このルーチンが図29および図30に示されてい
る。次いで動力伝達装置31の異常判断ルーチン(ステ
ップ650)が実行される。このルーチンが図31に示
されている。次いでリーンリミットフィードバック補正
係数FLLFBの算出ルーチン(ステップ700)が実
行される。このルーチンが図32に示されている。次い
で予め定められたクランク角になったときに噴射時間算
出ルーチン(ステップ800)が実行される。このルー
チンが図33に示されている。次いでその他のルーチン
(ステップ900)が実行される。
【0103】次に図29および図30に示されるトルク
変動値の算出ルーチンについて説明する。図29および
図30を参照すると、まず初めにステップ601におい
てトルク変動量DLN(i)を積算すべきことを示す積
算要求フラグXDLNI(i)がセット(XDLNI
(i)=“1”)されているか否かが判別される。積算
要求フラグXDLNI(i)がセットされていないとき
にはステップ616にジャンプし、積算要求フラグXD
LNI(i)がセットされているときにはステップ60
2に進む。ステップ602では積算要求フラグXDLN
I(i)がリセットされる。次いでステップ603では
トルク変動量DLN(i)がトルク変動量積算値DLN
I(i)に加算される。次いでステップ604では積算
カウント値CDLNI(i)が1だけインクリメントさ
れる。即ち、例えばステップ601において1番気筒に
ついての積算要求フラグXDLNI(1)がセットされ
たとするとステップ602においてこのフラグXDLN
I(1)がリセットされ、ステップ603においてトル
ク変動量積算値DLNI(1)が算出され、ステップ6
04において積算カウント値CDLNI(1)が1だけ
インクリメントされる。
変動値の算出ルーチンについて説明する。図29および
図30を参照すると、まず初めにステップ601におい
てトルク変動量DLN(i)を積算すべきことを示す積
算要求フラグXDLNI(i)がセット(XDLNI
(i)=“1”)されているか否かが判別される。積算
要求フラグXDLNI(i)がセットされていないとき
にはステップ616にジャンプし、積算要求フラグXD
LNI(i)がセットされているときにはステップ60
2に進む。ステップ602では積算要求フラグXDLN
I(i)がリセットされる。次いでステップ603では
トルク変動量DLN(i)がトルク変動量積算値DLN
I(i)に加算される。次いでステップ604では積算
カウント値CDLNI(i)が1だけインクリメントさ
れる。即ち、例えばステップ601において1番気筒に
ついての積算要求フラグXDLNI(1)がセットされ
たとするとステップ602においてこのフラグXDLN
I(1)がリセットされ、ステップ603においてトル
ク変動量積算値DLNI(1)が算出され、ステップ6
04において積算カウント値CDLNI(1)が1だけ
インクリメントされる。
【0104】次いでステップ605では積算カウント値
CDLNI(i)が“8”になったか否かが判別され
る。CDLNI(i)が“8”でないときにはステップ
616にジャンプし、CDLNI(i)が“8”になる
とステップ606に進んで次式から各気筒のトルク変動
値DLNISM(i)が算出される。 DLNISM(i)=DLNISM(i)+{DLNI
(i)−DLNISM(i)}/4 次いでステップ607では各気筒に対するトルク変動量
積算値DLNI(i)がクリアされ、次いでステップ6
08では積算カウント値CDLNI(i)がリセットさ
れる。
CDLNI(i)が“8”になったか否かが判別され
る。CDLNI(i)が“8”でないときにはステップ
616にジャンプし、CDLNI(i)が“8”になる
とステップ606に進んで次式から各気筒のトルク変動
値DLNISM(i)が算出される。 DLNISM(i)=DLNISM(i)+{DLNI
(i)−DLNISM(i)}/4 次いでステップ607では各気筒に対するトルク変動量
積算値DLNI(i)がクリアされ、次いでステップ6
08では積算カウント値CDLNI(i)がリセットさ
れる。
【0105】即ち、算出されたトルク変動量積算値DL
NI(i)とこれまで用いられてきたトルク変動値DL
NISM(i)との間に差があるときにはこの差{DL
NI(i)−DLNISM(i)}に1/4を乗算した
値がトルク変動値DLNISM(i)に加算される。従
って例えば1番気筒#1についての積算カウント値CD
LNI(1)が“8”になるとステップ606において
トルク変動値DLNISM(1)が算出されることにな
る。
NI(i)とこれまで用いられてきたトルク変動値DL
NISM(i)との間に差があるときにはこの差{DL
NI(i)−DLNISM(i)}に1/4を乗算した
値がトルク変動値DLNISM(i)に加算される。従
って例えば1番気筒#1についての積算カウント値CD
LNI(1)が“8”になるとステップ606において
トルク変動値DLNISM(1)が算出されることにな
る。
【0106】続くステップ609から615までは被動
装置32が異常であるか否かを判断する部分である。ま
ずステップ609では被動装置32の異常判断条件が成
立しているか否かが判別される。本実施例ではアイドル
運転時でありかつ空燃比が理論空燃比でありかつ機関回
転数の単位時間当りの変化量ΔNが設定値よりも小さい
ときに異常判断条件が成立していると判別され、それ以
外は異常判断条件が成立していないと判別される。
装置32が異常であるか否かを判断する部分である。ま
ずステップ609では被動装置32の異常判断条件が成
立しているか否かが判別される。本実施例ではアイドル
運転時でありかつ空燃比が理論空燃比でありかつ機関回
転数の単位時間当りの変化量ΔNが設定値よりも小さい
ときに異常判断条件が成立していると判別され、それ以
外は異常判断条件が成立していないと判別される。
【0107】異常判断条件が成立していると判別された
ときには次いでステップ610に進み、異常判断条件が
成立していないと判別されたときは次いでステップ61
2に進む。ステップ610では各気筒のトルク変動量D
LNISM(i)が一定値LVLAUXよりも大きいか
否かが判別される。このLVLAUXは被動装置32が
正常であればDLNISM(i)が越えないように定め
られている。DLNISM(i)>LVLAUXのとき
には次いでステップ611に進み、DLNISM(i)
>LVLAUXの状態が継続されている時間を表すカウ
ント値CFAIL(i)が1だけインクリメントされ
る。次いでステップ613に進む。一方、DLNISM
(i)≦LVLAUXのときには被動装置32が正常で
あると判断して次いでステップ612に進み、カウント
値CFAIL(i)をリセットした後にステップ616
にジャンプする。
ときには次いでステップ610に進み、異常判断条件が
成立していないと判別されたときは次いでステップ61
2に進む。ステップ610では各気筒のトルク変動量D
LNISM(i)が一定値LVLAUXよりも大きいか
否かが判別される。このLVLAUXは被動装置32が
正常であればDLNISM(i)が越えないように定め
られている。DLNISM(i)>LVLAUXのとき
には次いでステップ611に進み、DLNISM(i)
>LVLAUXの状態が継続されている時間を表すカウ
ント値CFAIL(i)が1だけインクリメントされ
る。次いでステップ613に進む。一方、DLNISM
(i)≦LVLAUXのときには被動装置32が正常で
あると判断して次いでステップ612に進み、カウント
値CFAIL(i)をリセットした後にステップ616
にジャンプする。
【0108】ステップ613ではカウント値CFAIL
(i)が一定値CAUXよりも大きいか否か、即ちDL
NISM(i)>LVLAUXの状態がCAUXで表わ
される時間だけ継続されたか否かが判別される。CFA
IL(i)>CAUXのときには被動装置32が異常で
あると判断して次いでステップ614に進み、異常フラ
グXFAILAがセット(XFAILA←“1”)され
る。この異常フラグXFAILAは予めリセット(XF
AILA←“0”)されており、被動装置32が異常で
あると判断されるとセット(XFAILA←“1”)さ
れる。次いでステップ615に進んで警告装置30を作
動(ON)させ、次いでステップ616に進む。一方、
ステップ613においてCFAIL(i)≦CAUXの
ときには被動装置32が正常であると判断してステップ
616にジャンプする。
(i)が一定値CAUXよりも大きいか否か、即ちDL
NISM(i)>LVLAUXの状態がCAUXで表わ
される時間だけ継続されたか否かが判別される。CFA
IL(i)>CAUXのときには被動装置32が異常で
あると判断して次いでステップ614に進み、異常フラ
グXFAILAがセット(XFAILA←“1”)され
る。この異常フラグXFAILAは予めリセット(XF
AILA←“0”)されており、被動装置32が異常で
あると判断されるとセット(XFAILA←“1”)さ
れる。次いでステップ615に進んで警告装置30を作
動(ON)させ、次いでステップ616に進む。一方、
ステップ613においてCFAIL(i)≦CAUXの
ときには被動装置32が正常であると判断してステップ
616にジャンプする。
【0109】なお、被動装置32が異常であるときに特
定の気筒のトルク変動値のみが大きくなる場合があり、
この場合後述する平均トルク変動値DLNISMに基づ
いて被動装置32の異常を検出するようにすると被動装
置32の異常を正確に検出することができない。そこで
本実施例では各気筒のトルク変動値DLNISM(i)
に基づいて被動装置32の異常を検出するようにしてい
る。
定の気筒のトルク変動値のみが大きくなる場合があり、
この場合後述する平均トルク変動値DLNISMに基づ
いて被動装置32の異常を検出するようにすると被動装
置32の異常を正確に検出することができない。そこで
本実施例では各気筒のトルク変動値DLNISM(i)
に基づいて被動装置32の異常を検出するようにしてい
る。
【0110】次いでステップ616では図24に示すル
ーチンにおいて算出されたカウント値CDLNIXが
“8”になったか否かが判別される。CDLNIXが
“8”でないときには処理サイクルを完了し、CDLN
IXが“8”になるとステップ617に進んで各気筒の
トルク変動値DLNISM(i)の平均値である平均ト
ルク変動値DLNISM(={DLNISM(1)+D
LNISM(2)+DLNISM(3)+DLNISM
(4)}/4)が算出される。次いでステップ618で
はカウント値CDLNIXがクリアされる。このように
して機関のトルク変動量を代表する値DLNISMが算
出される。
ーチンにおいて算出されたカウント値CDLNIXが
“8”になったか否かが判別される。CDLNIXが
“8”でないときには処理サイクルを完了し、CDLN
IXが“8”になるとステップ617に進んで各気筒の
トルク変動値DLNISM(i)の平均値である平均ト
ルク変動値DLNISM(={DLNISM(1)+D
LNISM(2)+DLNISM(3)+DLNISM
(4)}/4)が算出される。次いでステップ618で
はカウント値CDLNIXがクリアされる。このように
して機関のトルク変動量を代表する値DLNISMが算
出される。
【0111】なお、前述したようにカウント値CDLN
IXは720°クランク角度毎に1だけインクリメント
され、いずれの気筒についてもトルクの算出が禁止され
たことがなければカウント値CDLNIXが“8”にな
ったときには全ての気筒に対する積算カウント値CDL
NI(1),CDLNI(2),CDLNI(3),C
DLNI(4)は既に“8”となっている。従ってこの
場合には全ての気筒についてトルク変動値DLNISM
(i)が算出される。一方、例えば1番気筒#1につい
てトルク変動量の算出が禁止されたとするとカウント値
CDLNIXが“8”になったときに1番気筒#1の積
算カウント値CDLNI(1)だけは“8”になってお
らず、斯くして1番気筒#1については新たなトルク変
動量積算値DLNI(1)は算出されていない。従って
この場合、ステップ617において平均トルク変動値D
LNISMを求める際には1番気筒#1だけについては
以前に算出されたトルク変動値DLNISM(1)が使
用される。
IXは720°クランク角度毎に1だけインクリメント
され、いずれの気筒についてもトルクの算出が禁止され
たことがなければカウント値CDLNIXが“8”にな
ったときには全ての気筒に対する積算カウント値CDL
NI(1),CDLNI(2),CDLNI(3),C
DLNI(4)は既に“8”となっている。従ってこの
場合には全ての気筒についてトルク変動値DLNISM
(i)が算出される。一方、例えば1番気筒#1につい
てトルク変動量の算出が禁止されたとするとカウント値
CDLNIXが“8”になったときに1番気筒#1の積
算カウント値CDLNI(1)だけは“8”になってお
らず、斯くして1番気筒#1については新たなトルク変
動量積算値DLNI(1)は算出されていない。従って
この場合、ステップ617において平均トルク変動値D
LNISMを求める際には1番気筒#1だけについては
以前に算出されたトルク変動値DLNISM(1)が使
用される。
【0112】次に図31を参照しつつ動力伝達装置31
の異常判断ルーチンについて説明する。図31を参照す
ると、まず初めにステップ651では動力伝達装置31
の異常判断条件が成立しているか否かが判別される。本
実施例ではアイドル運転時でありかつ空燃比が理論空燃
比でありかつ機関回転数の単位時間当りの変化量ΔNが
設定値よりも小さいときに異常判断条件が成立している
と判別され、それ以外は異常判断条件が成立していない
と判別される。
の異常判断ルーチンについて説明する。図31を参照す
ると、まず初めにステップ651では動力伝達装置31
の異常判断条件が成立しているか否かが判別される。本
実施例ではアイドル運転時でありかつ空燃比が理論空燃
比でありかつ機関回転数の単位時間当りの変化量ΔNが
設定値よりも小さいときに異常判断条件が成立している
と判別され、それ以外は異常判断条件が成立していない
と判別される。
【0113】異常判断条件が成立していないと判別され
たときには次いでステップ660に進んでMAXBを初
期化し(MAXB←“0”)、次いでステップ661に
進んでMINBを初期化し(MINB←MIN0、ここ
でMIN0は平均トルク平動値DLNISMが通常とり
うる値よりも大きい一定値)、次いで処理サイクルを完
了する。これに対して、異常判断条件が成立していると
判別されたときには次いでステップ652に進む。ステ
ップ652では平均トルク平動値DLNISMがMAX
Bよりも大きいか否かが判別される。このMAXBは動
力伝達装置31の異常判断条件の成立時におけるDLN
ISMの最大値を表しており、DLNISM>MAXB
のときにはステップ653に進んでDLNISMをMA
XBとし、次いでステップ654に進む。一方、DLN
ISM≦MAXBのときにはステップ654にジャンプ
する。ステップ654ではDLNISMがMINBより
も小さいか否かが判別される。このMINBは動力伝達
装置31の異常判断条件の成立時におけるDLNISM
の最小値を表わしており、DLNISM<MINBのと
きにはDLNISMをMINBとし、次いでステップ6
56に進む。一方、DLNISM≧MINBのときには
ステップ656にジャンプする。
たときには次いでステップ660に進んでMAXBを初
期化し(MAXB←“0”)、次いでステップ661に
進んでMINBを初期化し(MINB←MIN0、ここ
でMIN0は平均トルク平動値DLNISMが通常とり
うる値よりも大きい一定値)、次いで処理サイクルを完
了する。これに対して、異常判断条件が成立していると
判別されたときには次いでステップ652に進む。ステ
ップ652では平均トルク平動値DLNISMがMAX
Bよりも大きいか否かが判別される。このMAXBは動
力伝達装置31の異常判断条件の成立時におけるDLN
ISMの最大値を表しており、DLNISM>MAXB
のときにはステップ653に進んでDLNISMをMA
XBとし、次いでステップ654に進む。一方、DLN
ISM≦MAXBのときにはステップ654にジャンプ
する。ステップ654ではDLNISMがMINBより
も小さいか否かが判別される。このMINBは動力伝達
装置31の異常判断条件の成立時におけるDLNISM
の最小値を表わしており、DLNISM<MINBのと
きにはDLNISMをMINBとし、次いでステップ6
56に進む。一方、DLNISM≧MINBのときには
ステップ656にジャンプする。
【0114】ステップ656では最大値MAXBと最小
値MINBとの偏差(MAXB−MINB)が平均トル
ク変動値DLNISMのばらつきを表すHENDOとさ
れる。次いでステップ657ではHENDOが一定値L
VLBLTよりも大きいか否かが判別される。HEND
O>LVLBLTのときには動力伝達装置31が異常で
あると判断して次いでステップ658に進み、異常フラ
グXFAILBをセット(XFAILB←“1”)した
後にステップ659に進んで警告装置30を作動(O
N)させる。異常フラグXFAILBは予めリセット
(XFAILB←“0”)されており、動力伝達装置3
1が異常であると判断されたときにセット(XFAIL
B←“1”)される。一方、HENDO≦LVLBLT
のときには動力伝達装置31が正常であると判断して処
理サイクルを完了する。
値MINBとの偏差(MAXB−MINB)が平均トル
ク変動値DLNISMのばらつきを表すHENDOとさ
れる。次いでステップ657ではHENDOが一定値L
VLBLTよりも大きいか否かが判別される。HEND
O>LVLBLTのときには動力伝達装置31が異常で
あると判断して次いでステップ658に進み、異常フラ
グXFAILBをセット(XFAILB←“1”)した
後にステップ659に進んで警告装置30を作動(O
N)させる。異常フラグXFAILBは予めリセット
(XFAILB←“0”)されており、動力伝達装置3
1が異常であると判断されたときにセット(XFAIL
B←“1”)される。一方、HENDO≦LVLBLT
のときには動力伝達装置31が正常であると判断して処
理サイクルを完了する。
【0115】次に図32を参照しつつFLLFB算出ル
ーチンについて説明する。図32を参照すると、まず初
めにステップ701においてリーンリミットフィードバ
ック補正係数FLLFBの更新条件が成立しているか否
かが判別される。本実施例では被動装置32の異常フラ
グXFAILAがセット(XFAILA←“1”)され
ているとき、動力伝達装置31の異常フラグXFAIL
Bがセット(XFAILB←“1”)されているとき、
暖機運転時であるとき、或いは機関の運転状態が図5に
おいて破線で囲まれた学習領域にないときには更新条件
が成立していないと判断され、その他のときには更新条
件が成立していると判断される。更新条件が成立してい
ないときには処理サイクルを完了し、更新条件が成立し
ているときにはステップ702に進む。
ーチンについて説明する。図32を参照すると、まず初
めにステップ701においてリーンリミットフィードバ
ック補正係数FLLFBの更新条件が成立しているか否
かが判別される。本実施例では被動装置32の異常フラ
グXFAILAがセット(XFAILA←“1”)され
ているとき、動力伝達装置31の異常フラグXFAIL
Bがセット(XFAILB←“1”)されているとき、
暖機運転時であるとき、或いは機関の運転状態が図5に
おいて破線で囲まれた学習領域にないときには更新条件
が成立していないと判断され、その他のときには更新条
件が成立していると判断される。更新条件が成立してい
ないときには処理サイクルを完了し、更新条件が成立し
ているときにはステップ702に進む。
【0116】ステップ702では機関負荷Q/Nと機関
回転数Nから図26(B)に示すマップに基づいて目標
トルク変動値LVLLFBが算出される。次いでステッ
プ703およびステップ704では目標トルク変動値L
VLLFBに応じた変動量判別値DH(n),DL
(n)に基づいて次式に示されるトルク変動レベルLV
LH(n),LVLL(n)が算出される。
回転数Nから図26(B)に示すマップに基づいて目標
トルク変動値LVLLFBが算出される。次いでステッ
プ703およびステップ704では目標トルク変動値L
VLLFBに応じた変動量判別値DH(n),DL
(n)に基づいて次式に示されるトルク変動レベルLV
LH(n),LVLL(n)が算出される。
【0117】 LVLH(n)=LVLLFB+DH(n) LVLL(n)=LVLLFB+DL(n) ここで、変動量判別値DH(n)およびDL(n)は図
27(A)に示されるように予め定められている。即
ち、図27(A)からわかるようにDH(n)について
は3つの正の値が定められており、DH(3)>DH
(2)>DH(1)の関係を有する。更に、これらDH
(1),DH(2),DH(3)は目標トルク変動値L
VLLFBが大きくなるにつれて次第に増大する。一
方、DL(n)については3つの負の値が定められてお
り、DL(1)>DL(2)>DL(3)の関係を有す
る。更に、これらDL(1),DL(2),DL(3)
の絶対値は目標トルク変動値LVLLFBが大きくなる
につれて次第に増大する。
27(A)に示されるように予め定められている。即
ち、図27(A)からわかるようにDH(n)について
は3つの正の値が定められており、DH(3)>DH
(2)>DH(1)の関係を有する。更に、これらDH
(1),DH(2),DH(3)は目標トルク変動値L
VLLFBが大きくなるにつれて次第に増大する。一
方、DL(n)については3つの負の値が定められてお
り、DL(1)>DL(2)>DL(3)の関係を有す
る。更に、これらDL(1),DL(2),DL(3)
の絶対値は目標トルク変動値LVLLFBが大きくなる
につれて次第に増大する。
【0118】ところで今、ステップ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)とされる。
された目標トルク変動値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)とされる。
【0119】一方、図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)
の対応する領域に示されている。
ルク変動レベル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)
の対応する領域に示されている。
【0120】ステップ703およびステップ704にお
いて夫々トルク変動レベルLVLH(n),LVLL
(n)が算出されるとステップ705に進んで図29お
よび図30に示すトルク変動値の算出ルーチンにより算
出された平均トルク変動値DLNISMが図27(B)
に示されるどのトルク変動レベルLVLH(n),LV
LL(n)の間にあるかが判別される。次いでステップ
706では対応するフィードバック補正値DLFBが算
出される。例えば今、目標トルク変動値LVLLFBが
図27(A)において破線で示される値であり、算出さ
れた平均トルク変動値DLNISMが図27(B)のL
VLH(1)とLVLH(2)との間である場合、即ち
目標トルク変動値LVLLFBに対する平均トルク変動
値DLNISMの偏差が図27(A)の破線上において
DH(1)とDH(2)の間にある場合にはフィードバ
ック補正値DLFBは+a2 とされる。
いて夫々トルク変動レベルLVLH(n),LVLL
(n)が算出されるとステップ705に進んで図29お
よび図30に示すトルク変動値の算出ルーチンにより算
出された平均トルク変動値DLNISMが図27(B)
に示されるどのトルク変動レベルLVLH(n),LV
LL(n)の間にあるかが判別される。次いでステップ
706では対応するフィードバック補正値DLFBが算
出される。例えば今、目標トルク変動値LVLLFBが
図27(A)において破線で示される値であり、算出さ
れた平均トルク変動値DLNISMが図27(B)のL
VLH(1)とLVLH(2)との間である場合、即ち
目標トルク変動値LVLLFBに対する平均トルク変動
値DLNISMの偏差が図27(A)の破線上において
DH(1)とDH(2)の間にある場合にはフィードバ
ック補正値DLFBは+a2 とされる。
【0121】次いでステップ707では図24に示すC
DLNIXの処理ルーチンのステップ409において求
められた機関回転数の平均値NAVE および吸入空気量Q
の平均値QAVE に基づいて更新すべきリーンリミットフ
ィードバック補正係数FLLFBijが図5に示される
どの学習領域のリーンリミットフィードバック補正係数
であるかが決定される。次いでステップ708ではステ
ップ707において決定されたリーンリミットフィード
バック補正係数FLLFBijにフィードバック補正値
DLFBが加算される。
DLNIXの処理ルーチンのステップ409において求
められた機関回転数の平均値NAVE および吸入空気量Q
の平均値QAVE に基づいて更新すべきリーンリミットフ
ィードバック補正係数FLLFBijが図5に示される
どの学習領域のリーンリミットフィードバック補正係数
であるかが決定される。次いでステップ708ではステ
ップ707において決定されたリーンリミットフィード
バック補正係数FLLFBijにフィードバック補正値
DLFBが加算される。
【0122】即ち、上述したように例えばDLNISM
>LVLLFBであって、LVLH(1)<DLNIS
M<LVLH(2)である場合にはリーンリミットフィ
ードバック補正係数FLLFBijに+a2 が加算され
る。その結果、空燃比が小さくなるので各気筒のトルク
変動量が減少せしめられる。一方、DLNISM<LV
LLFBであってLVLL(1)>DLNISM>LV
LL(2)である場合にはリーンリミットフィードバッ
ク補正係数FLLFBijに−b2 が加算される。その
結果、空燃比が大きくなるので各気筒のトルク変動量が
増大せしめられる。このようにして全気筒の平均トルク
変動値DLNISMが目標トルク変動値LVLLFBと
なるようにリーン運転時の空燃比が制御される。
>LVLLFBであって、LVLH(1)<DLNIS
M<LVLH(2)である場合にはリーンリミットフィ
ードバック補正係数FLLFBijに+a2 が加算され
る。その結果、空燃比が小さくなるので各気筒のトルク
変動量が減少せしめられる。一方、DLNISM<LV
LLFBであってLVLL(1)>DLNISM>LV
LL(2)である場合にはリーンリミットフィードバッ
ク補正係数FLLFBijに−b2 が加算される。その
結果、空燃比が大きくなるので各気筒のトルク変動量が
増大せしめられる。このようにして全気筒の平均トルク
変動値DLNISMが目標トルク変動値LVLLFBと
なるようにリーン運転時の空燃比が制御される。
【0123】なお、図24に示すルーチンに示されるよ
うにトルク変動値の算出条件が成立しないときにはステ
ップ407において全ての気筒に対するDLNISM
(i)がLVLLFBとされ、斯くして平均トルク変動
値DLNISMも目標トルク変動値LVLLFBとされ
る。従ってこのときにはリーンリミットフィードバック
補正係数FLLFBijの更新は行われない。
うにトルク変動値の算出条件が成立しないときにはステ
ップ407において全ての気筒に対するDLNISM
(i)がLVLLFBとされ、斯くして平均トルク変動
値DLNISMも目標トルク変動値LVLLFBとされ
る。従ってこのときにはリーンリミットフィードバック
補正係数FLLFBijの更新は行われない。
【0124】次に図33を参照しつつ燃料噴射時間の算
出ルーチンについて説明する。図33を参照すると、ま
ず初めにステップ801において図2に示すマップから
基本燃料噴射時間TPが算出される。次いでステップ8
01aでは被動装置32および動力伝達装置31の異常
フラグXFAILA,XFAILBが共にリセット(X
FAILA←“0”,XFAILB←“0”)されてい
るか否かが判別される。異常フラグXFAILA,XF
AILBが共にリセットされているときには次いでステ
ップ802に進んでリーン運転を行うべき運転状態か否
かが判別される。リーン運転を行うべき運転状態のとき
にはステップ803に進んで理論空燃比フィードバック
補正係数FAFの値が1.0に固定される。次いでステ
ップ804では図4に示すマップからリーン補正係数F
LEANが算出され、次いでステップ805では図5に
示すマップからリーンリミットフィードバック補正係数
FLLFBが読込まれる。次いでステップ809では次
式に基づいて燃料噴射時間TAUが算出される。
出ルーチンについて説明する。図33を参照すると、ま
ず初めにステップ801において図2に示すマップから
基本燃料噴射時間TPが算出される。次いでステップ8
01aでは被動装置32および動力伝達装置31の異常
フラグXFAILA,XFAILBが共にリセット(X
FAILA←“0”,XFAILB←“0”)されてい
るか否かが判別される。異常フラグXFAILA,XF
AILBが共にリセットされているときには次いでステ
ップ802に進んでリーン運転を行うべき運転状態か否
かが判別される。リーン運転を行うべき運転状態のとき
にはステップ803に進んで理論空燃比フィードバック
補正係数FAFの値が1.0に固定される。次いでステ
ップ804では図4に示すマップからリーン補正係数F
LEANが算出され、次いでステップ805では図5に
示すマップからリーンリミットフィードバック補正係数
FLLFBが読込まれる。次いでステップ809では次
式に基づいて燃料噴射時間TAUが算出される。
【0125】TAU=TP・FLEAN・FLLFB・
FAF+TAUV これに対し、ステップ801aにおいて異常フラグXF
AILA,XFAILBのいずれかがセット(XFAI
LA←“1”,XFAILB←“1”)されていると
き、又はステップ802においてリーン運転を行うべき
運転状態でないと判別されたとき、即ち空燃比を理論空
燃比にすべきときにはステップ806に進んでリーン補
正係数FLEANが1.0に固定され、次いでステップ
807においてリーンリミットフィードバック補正係数
FLLFBが1.0に固定される。次いでステップ80
8では空燃比センサ17の出力信号に基づいて空燃比が
理論空燃比となるように理論空燃比フィードバック補正
係数FAFが制御される。次いでステップ809に進
み、燃料噴射時間TAUが算出される。
FAF+TAUV これに対し、ステップ801aにおいて異常フラグXF
AILA,XFAILBのいずれかがセット(XFAI
LA←“1”,XFAILB←“1”)されていると
き、又はステップ802においてリーン運転を行うべき
運転状態でないと判別されたとき、即ち空燃比を理論空
燃比にすべきときにはステップ806に進んでリーン補
正係数FLEANが1.0に固定され、次いでステップ
807においてリーンリミットフィードバック補正係数
FLLFBが1.0に固定される。次いでステップ80
8では空燃比センサ17の出力信号に基づいて空燃比が
理論空燃比となるように理論空燃比フィードバック補正
係数FAFが制御される。次いでステップ809に進
み、燃料噴射時間TAUが算出される。
【0126】次に被動装置32の異常判断方法の別の実
施例を説明する。上述したように燃焼圧の変動が小さく
維持されるべき機関運転状態においてトルク変動量が大
きいときには被動装置32が異常であると判断すること
ができる。一方、減速運転中の燃料噴射停止時には燃焼
圧の変動は生じない。そこで本実施例では減速運転中の
燃料噴射停止時にトルク変動量の平均値が一定時間以
上、設定値を越えたときには被動装置32が異常である
と判断するようにしている。
施例を説明する。上述したように燃焼圧の変動が小さく
維持されるべき機関運転状態においてトルク変動量が大
きいときには被動装置32が異常であると判断すること
ができる。一方、減速運転中の燃料噴射停止時には燃焼
圧の変動は生じない。そこで本実施例では減速運転中の
燃料噴射停止時にトルク変動量の平均値が一定時間以
上、設定値を越えたときには被動装置32が異常である
と判断するようにしている。
【0127】図34および図35は本実施例におけるト
ルク変動値の算出ルーチンを示している。このルーチン
においてステップ601から608まで、およびステッ
プ616から618までは図29および30に示すルー
チンと同様であるので説明を省略する。また、このルー
チンは図28に示すようなメインルーチン内で実行され
る。
ルク変動値の算出ルーチンを示している。このルーチン
においてステップ601から608まで、およびステッ
プ616から618までは図29および30に示すルー
チンと同様であるので説明を省略する。また、このルー
チンは図28に示すようなメインルーチン内で実行され
る。
【0128】図34および35を参照すると、ステップ
609では被動装置32の異常判断条件が成立している
か否かが判別される。本実施例では減速運転中の燃料噴
射停止時に異常判断条件が成立していると判別され、そ
れ以外は異常判断条件が成立していないと判別される。
異常判断条件が成立していると判別されたときには次い
でステップ609aに進み、異常判断条件が成立してい
ないと判別されたときは次いでステップ612に進む。
ステップ609aでは設定値LVLAUX2が図36の
マップを用いて算出される。この設定値LVLAUX2
は機関運転状態例えば機関回転数の平均値NAVE が小さ
くなると大きくなるように予め定められており、図36
に示すマップの形で予めROM22内に記憶されてい
る。次いでステップ610aに進み、各気筒のトルク変
動値DLNISM(i)が設定値LVLAUX2よりも
大きいか否かが判別される。DLNISM(i)>LV
LAUX2のときには次いでステップ611に進み、D
LNISM(i)>LVLAUX2の状態が継続されて
いる時間を表すカウント値CFAIL(i)が1だけイ
ンクリメントされる。次いでステップ613aに進む。
一方、DLNISM(i)≦LVLAUX2のときには
被動装置32が正常であると判断して次いでステップ6
12に進み、カウント値CFAIL(i)をリセットし
た後にステップ616にジャンプする。
609では被動装置32の異常判断条件が成立している
か否かが判別される。本実施例では減速運転中の燃料噴
射停止時に異常判断条件が成立していると判別され、そ
れ以外は異常判断条件が成立していないと判別される。
異常判断条件が成立していると判別されたときには次い
でステップ609aに進み、異常判断条件が成立してい
ないと判別されたときは次いでステップ612に進む。
ステップ609aでは設定値LVLAUX2が図36の
マップを用いて算出される。この設定値LVLAUX2
は機関運転状態例えば機関回転数の平均値NAVE が小さ
くなると大きくなるように予め定められており、図36
に示すマップの形で予めROM22内に記憶されてい
る。次いでステップ610aに進み、各気筒のトルク変
動値DLNISM(i)が設定値LVLAUX2よりも
大きいか否かが判別される。DLNISM(i)>LV
LAUX2のときには次いでステップ611に進み、D
LNISM(i)>LVLAUX2の状態が継続されて
いる時間を表すカウント値CFAIL(i)が1だけイ
ンクリメントされる。次いでステップ613aに進む。
一方、DLNISM(i)≦LVLAUX2のときには
被動装置32が正常であると判断して次いでステップ6
12に進み、カウント値CFAIL(i)をリセットし
た後にステップ616にジャンプする。
【0129】ステップ613aではカウント値CFAI
L(i)が一定値CAUX2よりも大きいか否か、即ち
DLNISM(i)>LVLAUX2の状態がCAUX
2で表わされる時間だけ継続されたか否かが判別され
る。CFAIL(i)>CAUX2のときには被動装置
32が異常であると判断して次いでステップ614に進
み、異常フラグXFAILAがセット(XFAILA←
“1”)される。異常フラグXFAILAがセットされ
ると先に述べた実施例と同様にリーンリミットフィード
バック補正係数FLLFBの更新が禁止され、リーン運
転が禁止される。次いでステップ615に進んで警告装
置30を作動(ON)させ、次いでステップ616に進
む。一方、ステップ613においてCFAIL(i)≦
CAUX2のときには被動装置32が正常であると判断
してステップ616にジャンプする。
L(i)が一定値CAUX2よりも大きいか否か、即ち
DLNISM(i)>LVLAUX2の状態がCAUX
2で表わされる時間だけ継続されたか否かが判別され
る。CFAIL(i)>CAUX2のときには被動装置
32が異常であると判断して次いでステップ614に進
み、異常フラグXFAILAがセット(XFAILA←
“1”)される。異常フラグXFAILAがセットされ
ると先に述べた実施例と同様にリーンリミットフィード
バック補正係数FLLFBの更新が禁止され、リーン運
転が禁止される。次いでステップ615に進んで警告装
置30を作動(ON)させ、次いでステップ616に進
む。一方、ステップ613においてCFAIL(i)≦
CAUX2のときには被動装置32が正常であると判断
してステップ616にジャンプする。
【0130】次に動力伝達装置31の異常判断方法の別
の実施例を説明する。上述したように動力伝達装置31
が異常であるとクランクシャフト13の回転速度が変動
し、その結果求められた出力トルクに大きなばらつきが
生じる。一方、たとえ燃焼が安定している場合であって
も空燃比のリーン度合いが大きくなるにつれて出力トル
クのばらつきが大きくなり、従って出力トルクの大きな
ばらつきが動力伝達装置31の異常によるものであるの
か或いは空燃比の大きなリーン度合いによるものである
のかわからない。
の実施例を説明する。上述したように動力伝達装置31
が異常であるとクランクシャフト13の回転速度が変動
し、その結果求められた出力トルクに大きなばらつきが
生じる。一方、たとえ燃焼が安定している場合であって
も空燃比のリーン度合いが大きくなるにつれて出力トル
クのばらつきが大きくなり、従って出力トルクの大きな
ばらつきが動力伝達装置31の異常によるものであるの
か或いは空燃比の大きなリーン度合いによるものである
のかわからない。
【0131】しかしながら図37(A)に示されるよう
に動力伝達装置31が正常である限り出力トルクの平均
値よりも大きい出力トルクの領域における算出された出
力トルクの頻度分布は空燃比のリーン度合いによらずほ
ぼ一定である。一方、図37(B)に示されるように動
力伝達装置31が異常のとき(破線)には出力トルクの
平均値よりも大きい出力トルク領域における算出された
出力トルクの頻度分布が正常時(実線)よりも広がる。
従って出力トルクの最大値と平均値との偏差が大きいと
きには動力伝達装置が異常であると判断することができ
る。そこで本実施例では、求められた出力トルクの最大
値と平均値との偏差が一定値を越えたときには動力伝達
装置31が異常であると判断するようにしている。
に動力伝達装置31が正常である限り出力トルクの平均
値よりも大きい出力トルクの領域における算出された出
力トルクの頻度分布は空燃比のリーン度合いによらずほ
ぼ一定である。一方、図37(B)に示されるように動
力伝達装置31が異常のとき(破線)には出力トルクの
平均値よりも大きい出力トルク領域における算出された
出力トルクの頻度分布が正常時(実線)よりも広がる。
従って出力トルクの最大値と平均値との偏差が大きいと
きには動力伝達装置が異常であると判断することができ
る。そこで本実施例では、求められた出力トルクの最大
値と平均値との偏差が一定値を越えたときには動力伝達
装置31が異常であると判断するようにしている。
【0132】図38は本実施例において30°クランク
角度毎に行われる割込みルーチンを示しており、このル
ーチンはトルク変動を算出するためのルーチン(ステッ
プ300)とカウンタCDLNIXの処理ルーチン(ス
テップ400)間において動力伝達装置31の異常判断
ルーチン(ステップ350)が実行される点で図14の
割込みルーチンと異なっている。この異常判断ルーチン
は図39に示されている。
角度毎に行われる割込みルーチンを示しており、このル
ーチンはトルク変動を算出するためのルーチン(ステッ
プ300)とカウンタCDLNIXの処理ルーチン(ス
テップ400)間において動力伝達装置31の異常判断
ルーチン(ステップ350)が実行される点で図14の
割込みルーチンと異なっている。この異常判断ルーチン
は図39に示されている。
【0133】図39を参照すると、まず初めにステップ
351では動力伝達装置31の異常判断条件が成立して
いるか否かが判別される。本実施例では機関回転数の単
位時間当りの変化量ΔNが設定値よりも小さいときに異
常判断条件が成立していると判別され、それ以外は異常
判断条件が成立していないと判別される。異常判断条件
が成立していると判別されたときには次いでステップ3
52に進み、図23に示すトルク変動算出ルーチンで算
出された(i−1)番気筒の出力トルクDN(i−1)
が出力トルク積算値DNI(i−1)に加算される。次
いでステップ353では積算カウント値CDNI(i−
1)が1だけインクリメントされる。次いでステップ3
54では(i−1)番気筒の出力トルクDN(i−1)
が今回の出力トルク積算期間中における(i−1)番気
筒の出力トルクの最大値DNMAX(i−1)よりも大
きいか否かが判別される。DN(i−1)>DNMAX
(i−1)のときには次いでステップ355に進んでD
N(i−1)が最大値DNMAX(i−1)とされ、次
いでステップ356に進む。これに対してDN(i−
1)≦DNMAX(i−1)のときにはステップ356
にジャンプする。
351では動力伝達装置31の異常判断条件が成立して
いるか否かが判別される。本実施例では機関回転数の単
位時間当りの変化量ΔNが設定値よりも小さいときに異
常判断条件が成立していると判別され、それ以外は異常
判断条件が成立していないと判別される。異常判断条件
が成立していると判別されたときには次いでステップ3
52に進み、図23に示すトルク変動算出ルーチンで算
出された(i−1)番気筒の出力トルクDN(i−1)
が出力トルク積算値DNI(i−1)に加算される。次
いでステップ353では積算カウント値CDNI(i−
1)が1だけインクリメントされる。次いでステップ3
54では(i−1)番気筒の出力トルクDN(i−1)
が今回の出力トルク積算期間中における(i−1)番気
筒の出力トルクの最大値DNMAX(i−1)よりも大
きいか否かが判別される。DN(i−1)>DNMAX
(i−1)のときには次いでステップ355に進んでD
N(i−1)が最大値DNMAX(i−1)とされ、次
いでステップ356に進む。これに対してDN(i−
1)≦DNMAX(i−1)のときにはステップ356
にジャンプする。
【0134】ステップ356では積算カウント値CDN
I(i−1)が“n”になったか否かが判別される。C
DNI(i−1)が“n”でないときには処理サイクル
を完了し、CDNI(i−1)が“n”のときには次い
でステップ357に進んで(i−1)番気筒の出力トル
クの平均値である平均出力トルクDNAV(i−1)
(={DNI(i−1)/n})が算出される。次いで
ステップ358では(i−1)番気筒の出力トルクの最
大値DNMAX(i−1)と平均出力トルクDNAV
(i−1)との偏差(=DNMAX(i−1)−DNA
V(i−1))がDDN(i−1)とされる。このDD
N(i−1)は平均出力トルクよりも大きい出力トルク
領域における出力トルクの算出頻度分布のばらつきを表
している。次いでステップ359ではDDN(i−1)
が一定値LVLBLT2よりも大きいか否かが判別され
る。DDN(i−1)≦LVLBLT2のときには動力
伝達装置31が正常であると判断して処理サイクルを完
了し、DDN(i−1)>LVLBLT2のときには動
力伝達装置31が異常であると判断して次いでステップ
360に進み、異常フラグXFAILBをセットした後
にステップ361に進んで警告装置30を作動する。異
常フラグXFAILBがセットされるとリーンリミット
フィードバック補正係数FLLFBの更新が禁止され、
リーン運転が禁止される。
I(i−1)が“n”になったか否かが判別される。C
DNI(i−1)が“n”でないときには処理サイクル
を完了し、CDNI(i−1)が“n”のときには次い
でステップ357に進んで(i−1)番気筒の出力トル
クの平均値である平均出力トルクDNAV(i−1)
(={DNI(i−1)/n})が算出される。次いで
ステップ358では(i−1)番気筒の出力トルクの最
大値DNMAX(i−1)と平均出力トルクDNAV
(i−1)との偏差(=DNMAX(i−1)−DNA
V(i−1))がDDN(i−1)とされる。このDD
N(i−1)は平均出力トルクよりも大きい出力トルク
領域における出力トルクの算出頻度分布のばらつきを表
している。次いでステップ359ではDDN(i−1)
が一定値LVLBLT2よりも大きいか否かが判別され
る。DDN(i−1)≦LVLBLT2のときには動力
伝達装置31が正常であると判断して処理サイクルを完
了し、DDN(i−1)>LVLBLT2のときには動
力伝達装置31が異常であると判断して次いでステップ
360に進み、異常フラグXFAILBをセットした後
にステップ361に進んで警告装置30を作動する。異
常フラグXFAILBがセットされるとリーンリミット
フィードバック補正係数FLLFBの更新が禁止され、
リーン運転が禁止される。
【0135】一方、ステップ351において異常判断条
件が成立していないと判断されたときには次いでステッ
プ362に進んで出力トルク積算値DNI(i−1)が
リセット(DNI(i−1)←“0”)され、次いでス
テップ363では積算カウント値CDNI(i−1)も
リセット(CDNI(i−1)←“0”)され、次いで
ステップ364では出力トルクの最大値DNMAX(i
−1)もリセット(DNMAX(i−1)←“0”)さ
れる。
件が成立していないと判断されたときには次いでステッ
プ362に進んで出力トルク積算値DNI(i−1)が
リセット(DNI(i−1)←“0”)され、次いでス
テップ363では積算カウント値CDNI(i−1)も
リセット(CDNI(i−1)←“0”)され、次いで
ステップ364では出力トルクの最大値DNMAX(i
−1)もリセット(DNMAX(i−1)←“0”)さ
れる。
【0136】
【発明の効果】被動装置又は動力伝達手段が異常のとき
に空燃比が誤補正されるのを阻止することができる。
に空燃比が誤補正されるのを阻止することができる。
【図1】内燃機関の全体図である。
【図2】基本燃料噴射時間のマップを示す図である。
【図3】NOx の発生量とトルク変動を示す図である。
【図4】リーン補正係数のマップを示す図である。
【図5】リーンリミットフィードバック補正係数のマッ
プを示す図である。
プを示す図である。
【図6】30°クランク角度の経過時間Ta(i),T
b(i)の変化を示すタイムチャートである。
b(i)の変化を示すタイムチャートである。
【図7】30°クランク角度の経過時間Ta(i)の変
化を示すタイムチャートである。
化を示すタイムチャートである。
【図8】30°クランク角度の経過時間Ta(i),T
b(i)の変化を示すタイムチャートである。
b(i)の変化を示すタイムチャートである。
【図9】30°クランク角度の経過時間Ta(i),T
b(i)の変化を示すタイムチャートである。
b(i)の変化を示すタイムチャートである。
【図10】30°クランク角度の経過時間Ta(i)の
変化を示すタイムチャートである。
変化を示すタイムチャートである。
【図11】経過時間差DTa(i)とKb(i)との関
係を示す図である。
係を示す図である。
【図12】減速運転時における経過時間Ta(i)の変
化を示すタイムチャートである。
化を示すタイムチャートである。
【図13】経過時間差DTa(i)の変化を示すタイム
チャートである。
チャートである。
【図14】割込みルーチンを示すフローチャートであ
る。
る。
【図15】経過時間差DTa(i)および経過時間Tb
(i)を算出するためのフローチャートである。
(i)を算出するためのフローチャートである。
【図16】経過時間差DTa(i)および経過時間Tb
(i)を算出するためのフローチャートである。
(i)を算出するためのフローチャートである。
【図17】KTa(i)を算出するためのフローチャー
トである。
トである。
【図18】KTb(i)を算出するためのフローチャー
トである。
トである。
【図19】トルク変動量算出の許可をチェックするため
のフローチャートである。
のフローチャートである。
【図20】トルク変動量算出の許可をチェックするため
のフローチャートである。
のフローチャートである。
【図21】トルク変動量算出の許可をチェックするため
のフローチャートである。
のフローチャートである。
【図22】経過時間差DTa(i)の変化とフラグXM
XREC,XMNRECの変化を示すタイムチャートで
ある。
XREC,XMNRECの変化を示すタイムチャートで
ある。
【図23】トルク変動量を算出するためのフローチャー
トである。
トである。
【図24】カウンタCDLNIXを処理するためのフロ
ーチャートである。
ーチャートである。
【図25】種々の値の計算タイミングを示す図である。
【図26】目標トルク変動値を示す図である。
【図27】変動量判別値DH(n),DL(n)および
トルク変動レベルLVLH(n),LVLL(n)を示
す図である。
トルク変動レベルLVLH(n),LVLL(n)を示
す図である。
【図28】メインルーチンを示すフローチャートであ
る。
る。
【図29】トルク変動値を算出するためのフローチャー
トである。
トである。
【図30】トルク変動値を算出するためのフローチャー
トである。
トである。
【図31】動力伝達装置の異常を判断するためのフロー
チャートである。
チャートである。
【図32】リーンリミットフィードバック補正係数を算
出するためのフローチャートである。
出するためのフローチャートである。
【図33】燃料噴射時間を算出するためのフローチャー
トである。
トである。
【図34】別の実施例におけるトルク変動値を算出する
ためのフローチャートである。
ためのフローチャートである。
【図35】別の実施例におけるトルク変動値を算出する
ためのフローチャートである。
ためのフローチャートである。
【図36】設定値LVLAUX2を示す図である。
【図37】算出された出力トルクの頻度分布を示す図で
ある。
ある。
【図38】別の実施例における割込みルーチンを示すフ
ローチャートである。
ローチャートである。
【図39】別の実施例における動力伝達装置の異常を判
断するためのフローチャートである。
断するためのフローチャートである。
3…サージタンク 4…燃料噴射弁 8…スロットル弁 13…クランクシャフト 14…ロータ 15…クランク角センサ 31…動力伝達装置 32…移動装置
Claims (1)
- 【請求項1】 圧縮行程末期から爆発行程初期までのク
ランク角度領域内に第1のクランク角度範囲を設定し、
第1のクランク角度範囲から一定のクランク角を隔てた
爆発行程中期のクランク角度領域内に第2のクランク角
度範囲を設定し、該第1のクランク角度範囲内における
クランクシャフトの第1の角速度を検出すると共に該第
2のクランク角度範囲内におけるクランクシャフトの第
2の角速度を検出して該第1の角速度および第2の角速
度に基づき各気筒の出力変動を求め、クランクシャフト
により動力伝達手段を介し駆動される被動装置又は該動
力伝達手段が異常であるか否かを該出力変動に基いて判
断し、被動装置又は動力伝達手段が異常であると判断さ
れたときには該出力変動に基づく空燃比の補正を禁止す
るようにした内燃機関の空燃比制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18407997A JPH1130148A (ja) | 1997-07-09 | 1997-07-09 | 内燃機関の空燃比制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18407997A JPH1130148A (ja) | 1997-07-09 | 1997-07-09 | 内燃機関の空燃比制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1130148A true JPH1130148A (ja) | 1999-02-02 |
Family
ID=16147032
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP18407997A Pending JPH1130148A (ja) | 1997-07-09 | 1997-07-09 | 内燃機関の空燃比制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1130148A (ja) |
-
1997
- 1997-07-09 JP JP18407997A patent/JPH1130148A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH05149188A (ja) | 多気筒内燃機関の失火検出装置 | |
| JP3303739B2 (ja) | 内燃機関の空燃比制御方法 | |
| US6199426B1 (en) | Method of detection of output fluctuation in internal combustion engine | |
| JP3303732B2 (ja) | 内燃機関の制御装置 | |
| JP3216577B2 (ja) | 内燃機関の空燃比制御方法 | |
| JP3262003B2 (ja) | 多気筒内燃機関の出力変動検出方法 | |
| JP4135504B2 (ja) | 内燃機関の制御装置 | |
| JPH1130148A (ja) | 内燃機関の空燃比制御方法 | |
| EP0799983B1 (en) | Method of detection of angular velocity and torque in an internal combustion engine | |
| EP0811758B1 (en) | Method of controlling an air-fuel ratio of an engine | |
| JP3085220B2 (ja) | 内燃機関の空燃比制御方法 | |
| JP3246328B2 (ja) | 内燃機関における検出方法 | |
| JP3303669B2 (ja) | 内燃機関の空燃比制御方法 | |
| JPH1182086A (ja) | 内燃機関の空燃比制御方法 | |
| JP3246325B2 (ja) | 内燃機関における検出方法 | |
| JPH1182119A (ja) | 内燃機関の出力制御装置 | |
| JP3279179B2 (ja) | 多気筒内燃機関における検出方法 | |
| JP3218970B2 (ja) | 内燃機関における検出方法 | |
| JPH10331685A (ja) | 内燃機関の空燃比制御装置 | |
| JP3156588B2 (ja) | 内燃機関の空燃比制御方法 | |
| JPH1191409A (ja) | 内燃機関の動力伝達制御装置 | |
| JPH09281006A (ja) | 内燃機関における変動検出方法 | |
| JPH0452450Y2 (ja) | ||
| JPH0751929B2 (ja) | 内燃機関の点火時期制御装置 | |
| JPH02291459A (ja) | 車両のサージング防止装置 |