(57)【特許請求の範囲】
【請求項１】
気筒を複数の気筒群に分割すると共に各気筒群が夫々排気通路を具備し、各排気通路内に夫々三元触媒を配置すると共に三元触媒上流の各排気通路内に夫々空燃比センサを配置し、各気筒群に分配される吸入空気量を算出する分配空気量算出手段を具備した内燃機関の空燃比制御装置において、三元触媒下流の各排気通路内に夫々下流側空燃比センサを配置し、各気筒群に分配された吸入空気量と対応する気筒群の空燃比センサにより検出された空燃比とから対応する気筒群の三元触媒に貯蔵された酸素の脱離量を示す貯蔵酸素脱離量を各気筒群について夫々算出する脱離量算出手段と、各貯蔵酸素脱離量が目標脱離量となるように各気筒群の空燃比を個別に制御する空燃比制御手段とを具備し、上記脱離量算出手段は各気筒群に分配された吸入空気量と、対応する気筒群の三元触媒上流に配置された空燃比センサにより検出された空燃比と、対応する三元触媒における酸素の脱離速度と吸着速度の速度比とから各気筒群の三元触媒についての上記貯蔵酸素脱離量を算出し、各気筒群の三元触媒について算出された貯蔵酸素脱離量が零に達していないにもかかわらずに対応する下流側空燃比センサにより検出された空燃比がリーンであるときには脱離速度を吸着速度に対し相対的に減少すべく対応する三元触媒についての上記速度比を修正し、かつ各気筒群の三元触媒について算出された貯蔵酸素脱離量が零に達しているにもかかわらず対応する下流側空燃比センサにより検出された空燃比がリーンでないときには脱離速度を吸着速度に対し相対的に増大すべく対応する三元触媒についての上記速度比を修正する速度比修正手段とを具備した内燃機関の空燃比制御装置。
【請求項２】
各気筒群の三元触媒について算出された貯蔵酸素脱離量が最大脱離量に達していないにもかかわらずに対応する下流側空燃比センサにより検出された空燃比がリッチであるときには対応する三元触媒についての最大脱離量を減量修正し、かつ各気筒の三元触媒について算出された貯蔵酸素脱離量が最大脱離量に達しているにもかかわらずに対応する下流側空燃比センサにより検出された空燃比がリッチでないときには対応する三元触媒についての最大脱離量を増量修正する最大脱離量修正手段を具備した請求項１に記載の内燃機関の空燃比制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は内燃機関の空燃比制御装置に関する。
【０００２】
【従来の技術】
三元触媒は空燃比がほぼ理論空燃比のときにＨＣ，ＣＯを酸化しかつＮＯｘを還元する機能を有し、従って空燃比をほぼ理論空燃比に維持しえれば三元触媒を用いてＨＣ，ＣＯ，ＮＯｘを同時に浄化することができる。ところが空燃比をほぼ理論空燃比に維持することは困難であり、実際には空燃比が理論空燃比からずれてしまう。しかしながら空燃比が理論空燃比からずれたとしても三元触媒のＯ2 スレージ機能、即ち酸素貯蔵機能によってＨＣ，ＣＯ，ＮＯｘを浄化することができる。
【０００３】
即ち、三元触媒は空燃比がリーンのときに排気ガス中の過剰酸素を取込んで貯蔵する機能を有し、この機能によってＮＯｘが還元せしめられる。一方、空燃比がリッチになると排気ガス中の未燃ＨＣ，ＣＯが三元触媒内に貯蔵されている酸素を奪い、それによって未燃ＨＣ，ＣＯが酸化せしめられる。従って空燃比が理論空燃比からずれたときにＮＯｘを還元せしめるには三元触媒が酸素を貯蔵しえる状態になければならず、即ち三元触媒の酸素吸蔵量が最大酸素吸蔵量に対して余裕がなければならず、一方このとき未燃ＨＣ，ＣＯを酸化せしめるには三元触媒が或る程度の酸素を貯蔵していなければならないことになる。即ち、空燃比が理論空燃比からリーン側にずれたときにＮＯｘを還元でき、空燃比が理論空燃比に対してリッチ側にずれたときに未燃ＨＣ，ＣＯを酸化できるようにするためには三元触媒の酸素吸蔵量を最大酸素吸蔵量の半分程度に維持しておく必要がある。
【０００４】
ところで三元触媒に吸着される酸素量および三元触媒から脱離される酸素量は吸入空気量および理論空燃比に対する空燃比のずれ量から算出することができ、従ってこれら吸入空気量および空燃比のずれ量から三元触媒の貯蔵酸素量を算出することができる。そこで三元触媒に貯蔵しておくべき目標貯蔵酸素量を予め定めておき、算出された三元触媒の貯蔵酸素量がこの目標貯蔵酸素量となるように燃料噴射量を制御するようにした内燃機関が公知である（特開昭６−２４９０２８号公報参照）。
【０００５】
【発明が解決しようとする課題】
ところで気筒が複数の気筒群に分割されていて各気筒群が夫々独立した排気通路を具備しており、各排気通路内に夫々三元触媒を配置した内燃機関においては、通常全気筒に吸入される空気量に基づいて空燃比を制御するようにしている。しかしながら各三元触媒の貯蔵酸素量を算出するためには各気筒群に供給される吸入空気量を知る必要があり、従って上述の公知の内燃機関における空燃比制御方法をそのまま適用することができないという問題がある。
【０００６】
【課題を解決するための手段】
上記問題点を解決するために１番目の発明によれば、気筒を複数の気筒群に分割すると共に各気筒群が夫々排気通路を具備し、各排気通路内に夫々三元触媒を配置すると共に三元触媒上流の各排気通路内に夫々空燃比センサを配置し、各気筒群に分配される吸入空気量を算出する分配空気量算出手段を具備した内燃機関の空燃比制御装置において、三元触媒下流の各排気通路内に夫々下流側空燃比センサを配置し、各気筒群に分配された吸入空気量と対応する気筒群の空燃比センサにより検出された空燃比とから対応する気筒群の三元触媒に貯蔵された酸素の脱離量を示す貯蔵酸素脱離量を各気筒群について夫々算出する脱離量算出手段と、各貯蔵酸素脱離量が目標脱離量となるように各気筒群の空燃比を個別に制御する空燃比制御手段とを具備し、脱離量算出手段は各気筒群に分配された吸入空気量と、対応する気筒群の三元触媒上流に配置された空燃比センサにより検出された空燃比と、対応する三元触媒における酸素の脱離速度と吸着速度の速度比とから各気筒群の三元触媒についての貯蔵酸素脱離量を算出し、各気筒群の三元触媒について算出された貯蔵酸素脱離量が零に達していないにもかかわらずに対応する下流側空燃比センサにより検出された空燃比がリーンであるときには脱離速度を吸着速度に対し相対的に減少すべく対応する三元触媒についての速度比を修正し、かつ各気筒群の三元触媒について算出された貯蔵酸素脱離量が零に達しているにもかかわらず対応する下流側空燃比センサにより検出された空燃比がリーンでないときには脱離速度を吸着速度に対し相対的に増大すべく対応する三元触媒についての速度比を修正する速度比修正手段とを具備している。
【０００９】
即ち、算出された貯蔵酸素脱離量が零に達していないにもかかわらずに下流側空燃比センサにより検出された空燃比がリーンであるときには、即ち計算上では貯蔵酸素脱離量が零に達していないのに実際には零になっているときには計算上の酸素の脱離速度が実際よりも速すぎると考えられる。従ってこのときには脱離速度を吸着速度に対し相対的に減少させる。これに対して算出された貯蔵酸素脱離量が零であるにもかかわらずに下流側空燃比センサにより検出された空燃比がリーンでないとき、即ち計算上では貯蔵酸素脱離量が零であるのに実際には零でないときには計算上の酸素の脱離速度が実際よりも遅すぎると考えられる。従ってこのときには逆に脱離速度を吸着速度に対し相対的に増大させる。
【００１０】
２番目の発明では１番目の発明において、各気筒群の三元触媒について算出された貯蔵酸素脱離量が最大脱離量に達していないにもかかわらずに対応する下流側空燃比センサにより検出された空燃比がリッチであるときには対応する三元触媒についての最大脱離量を減量修正し、かつ各気筒の三元触媒について算出された貯蔵酸素脱離量が最大脱離量に達しているにもかかわらずに対応する下流側空燃比センサにより検出された空燃比がリッチでないときには対応する三元触媒についての最大脱離量を増量修正する最大脱離量修正手段を具備している。
【００１１】
即ち、算出された貯蔵酸素脱離量が最大脱離量に達していないにもかかわらずに下流側空燃比センサにより検出された空燃比がリッチであるときには、即ち計算上では貯蔵酸素脱離量が最大脱離量に達しているのに実際には最大脱離量に達していないときには計算上の最大脱離量が大きすぎると考えられる。従ってこのときには最大脱離量が減少せしめられる。これに対して算出された貯蔵酸素脱離量が最大脱離量に達しているにもかかわらずに下流側空燃比センサにより検出された空燃比がリッチでないとき、即ち計算上では貯蔵酸素脱離量が最大脱離量に達しているのに実際には最大脱離量に達していないときには計算上の最大脱離量が小さすぎると考えられる。従ってこのときには最大脱離量が増大せしめられる。
【００１２】
【発明の実施の形態】
図１は本発明をＶ型６気筒エンジンに適用した場合を示している。
図１を参照すると、１は左右バンクを有する機関本体を示しており、一方のバンクには３つの気筒２ａが、他方のバンクにも３つの気筒２ｂが夫々配置される。本発明では以下、一方のバンクの３つの気筒２ａを第１の気筒群と称し、他方のバンクの３つの気筒３ｂを第２の気筒群と称する。この場合、第１の気筒群と第２の気筒群で交互に点火が行われる。
【００１３】
第１気筒群の各気筒２ａは対応する吸気枝管３ａを介して第１の吸気通路４ａに連結され、各吸気枝管３ａ内には夫々対応する気筒２ａの吸気ポート内に向けて燃料を噴射するための燃料噴射弁５ａが取付けられる。一方、第２気筒群の各気筒２ｂは対応する吸気枝管３ｂを介して第２の吸気通路４ｂに連結され、各吸気枝管３ｂ内には夫々対応する気筒２ｂの吸気ポート内に向けて燃料を噴射するための燃料噴射弁５ｂが取付けられる。
【００１４】
第１の吸気通路４ａおよび第２の吸気通路４ｂは共通の吸気ダクト６に連結され、この共通の吸気ダクト６は全気筒に対して一個設けられたエアフローメータ７を介してエアクリーナ８に連結される。吸気ダクト６内には全気筒に対して共通のスロットル弁９が配置される。従って図１に示される実施例では全気筒に吸入される吸入空気量がエアフローメータ７によって検出され、各気筒に供給される吸入空気量がスロットル弁９によって制御される。
【００１５】
一方、第１気筒群の各気筒２ａは第１の排気マニホルド１０ａおよび第１の三元触媒１１ａを内蔵した触媒コンバータ１２ａを介して第１の排気管１３ａに連結され、第２気筒群の各気筒２ｂは第２の排気マニホルド１０ｂおよび第２の三元触媒１１ｂを内蔵した触媒コンバータ１２ｂを介して第２の排気管１３ｂに連結される。第１の排気管１３ａおよび第２の排気管１３ｂは共通の排気管１４に連結される。
【００１６】
電子制御ユニット３０はディジタルコンピュータからなり、双方向性バス３１によって相互に接続されたＲＯＭ（リードオンリメモリ）３２，ＲＡＭ（ランダムアクセスメモリ）３３，ＣＰＵ（マイクロプロセッサ）３４、常時電源に接続されたバックアップＲＡＭ３５、入力ポート３６および出力ポート３７を具備する。エアフローメータ７は吸入空気量に比例した出力電圧を発生し、この出力電圧が対応するＡＤ変換器３８を介して入力ポート３６に入力される。スロットル弁９にはスロットル弁９がアイドリング位置にあることを示す出力信号を発生するアイドルスイッチ１５が取付けられ、このアイドルスイッチ１５の出力信号が入力ポート３６に入力される。
【００１７】
第１の三元触媒１１ａ上流の排気マニホルド１０ａ内には空燃比センサ１６ａ（以下、第１の上流側空燃比センサと称する）が配置され、三元触媒１１ａ下流の排気管１３ａ内にも空燃比センサ１７ａ（以下、第１の下流側空燃比センサと称する）が配置される。これら空燃比センサ１６ａ，１７ａの出力信号は対応するＡＤ変換器３８を介して入力ポート３６に入力される。また、第１の三元触媒１１ａ内には第１の三元触媒１１ａの温度に比例した出力電圧を発生する温度センサ１８ａが配置され、この温度センサ１８ａの出力電圧が対応するＡＤ変換器３８を介して入力ポート３６に入力される。
【００１８】
一方、第２の三元触媒１１ｂ上流の排気マニホルド１０ｂ内には空燃比センサ１６ｂ（以下、第２の上流側空燃比センサと称する）が配置され、第２の三元触媒１１ｂ下流の排気管１３ｂ内にも空燃比センサ１７ｂ（以下、第２の下流側空燃比センサと称する）が配置される。これら空燃比センサ１６ｂ，１７ｂの出力信号は対応するＡＤ変換器３８を介して入力ポート３６に入力される。また、第２の三元触媒１１ｂ内には第２の三元触媒１１ｂの温度に比例した出力電圧を発生する温度センサ１８ｂが配置され、この温度センサ１８ｂの出力電圧が対応するＡＤ変換器３８を介して入力ポート３６に入力される。また、入力ポート３６には機関回転数を表わす出力パルスを発生する回転数センサ１９が接続される。一方、出力ポート３７は駆動回路３９を介して夫々燃料噴射弁５ａ，５ｂに接続される。
【００１９】
各上流側空燃比センサ１６ａ，１６ｂは図２（Ａ）に示されるように空燃比Ａ／Ｆに応じた電流Ｉを発生する。この電流Ｉは電圧に変換されてＡＤ変換器３８を介し入力ポート３６に入力される。従って各上流側空燃比センサ１６ａ，１６ｂの出力信号から対応する三元触媒１１ａ，１１ｂ上流における空燃比Ａ／Ｆを知ることができる。
【００２０】
これに対して各下流側空燃比センサ１７ａ，１７ｂは図２（Ｂ）に示されるように理論空燃比において急変する出力電圧Ｖを発生する。即ち、各下流側空燃比センサ１７ａ，１７ｂは空燃比がリーンのときには０．１（Ｖ）程度の出力電圧Ｖを発生し、空燃比がリッチのときには０．９（Ｖ）程度の出力電圧を発生する。なお、本発明による実施例では下流側空燃比センサ１７ａ，１７ｂの出力電圧Ｖが設定値ＶL 、例えば０．２（Ｖ）よりも低いときに対応する三元触媒１１ａ，１１ｂの下流側における空燃比がリーンであると判断し、下流側空燃比センサ１７ａ，１７ｂの出力電圧Ｖが設定値ＶR 、例えば０．７（Ｖ）よりも高いときに対応する三元触媒１１ａ，１１ｂの下流側における空燃比がリッチであると判断するようにしている。
【００２１】
ところで三元触媒１１ａ，１１ｂは空燃比がほぼ理論空燃比のときにＨＣ，ＣＯを酸化しかつＮＯｘを還元する機能、即ちＨＣ，ＣＯおよびＮＯｘを同時に浄化する機能を有する。しかしながら冒頭で述べたように三元触媒１１ａ，１１ｂはＯ2 ストレージ機能、即ちその内部に酸素を貯蔵する機能を有し、このＯ2 ストレージ機能によってたとえ空燃比が理論空燃比からずれたとしても三元触媒１１ａ，１１ｂによってＨＣ，ＣＯおよびＮＯｘを浄化することができる。この酸素の貯蔵作用は三元触媒１１ａ，１１ｂ内に含まれるセリウムＣｅによって行われる。
【００２２】
即ち、セリウムＣｅは金属単体の状態であると不安定であり、酸素が結合するとセリアＣｅＯ2 となって安定する。従ってセリウムＣｅの周囲の酸素が存在すれば、即ち空燃比がリーンであればただちに酸素を奪ってセリアＣｅＯ2 となる。一方、空燃比がリッチになると、即ち排気ガス中に多量の未燃ＨＣ，ＣＯが存在するとこれら未燃ＨＣ，ＣＯはセリアＣｅＯ2 から酸素を奪い、従ってセリアＣｅＯ2 は再び不安定なセリウムＣｅとなる。この場合、セリウムＣｅが周囲から酸素を奪うのに要する時間は極めて短かく、即ち酸素の吸着速度は極めて速く、これに対して未燃ＨＣ，ＣＯがセリアＣｅＯ2 から酸素を奪うのに要する時間は若干長いこと、即ち酸素の脱離速度は吸着速度に比べて遅いことが判明している。
【００２３】
このように空燃比がリーンになると排気ガス中から酸素が奪われるので排気ガス中に含まれるＮＯｘが還元せしめられ、空燃比がリッチになると排気ガスの未燃ＨＣ，ＣＯがセリアＣｅＯ2 から酸素を奪うので未燃ＨＣ，ＣＯが酸化せしめられる。従って空燃比が理論空燃比からずれたとしてもＨＣ，ＣＯおよびＮＯｘを浄化することができる。ただし、この場合ＨＣ，ＣＯおよびＮＯｘを浄化することができるのは空燃比がリーンになったときに三元触媒１１ａ，１１ｂが酸素を貯蔵しうる状態になければならず、空燃比がリッチになったときに三元触媒１１ａ，１１ｂが或る程度の酸素を貯蔵していなければならないことになる。
【００２４】
ところで三元触媒１１ａ，１１ｂが貯蔵しうる酸素量には限度があり、三元触媒１１ａ，１１ｂは三元触媒１１ａ，１１ｂが貯蔵しうる酸素量以上の酸素は貯蔵することができない。一方、空燃比が理論空燃比からずれた場合にリーン側にずれるかリッチ側にずれるかはわからず、従ってどちら側にずれても排気ガス中の有害成分を浄化しうるためにはこれから貯蔵しうる酸素量とこれから脱離しうる酸素量とを等しくしておくことが必要となる。即ち、三元触媒１１ａ，１１ｂが貯蔵しうる酸素量に限度があることを考えると三元触媒１１ａ，１１ｂに貯蔵されている酸素量を三元触媒１１ａ，１１ｂが貯蔵しうる最大酸素量の半分に維持しておく必要がある。
【００２５】
ところで三元触媒１１ａ，１１ｂに貯蔵されている酸素量は直接計測することはできず、従ってこの酸素量は通常計算することによって求めるようにしている。この場合、通常は酸素の貯蔵量が零のときを基準として酸素の貯蔵量を算出するようにしているがこのような酸素の貯蔵量が零の状態を確実に創り出すためには空燃比がリッチである状態を積極的に創り出さなければならないという問題がある。更に、三元触媒１１ａ，１１ｂからの酸素の脱離速度は比較的遅く、またこの脱離速度は雰囲気温度の影響を大きく受けるので空燃比が一時的にリッチになったからといって酸素の貯蔵量が必ず零になるとは言えないという欠点がある。即ち、酸素の貯蔵量が零のときを基準とすると基準値が狂うという危険性がある。
【００２６】
これに対して三元触媒１１ａ，１１ｂの酸素の貯蔵量が最大となる状態は容易かつ確実に創り出すことができる。即ち、機関停止中は三元触媒１１ａ，１１ｂは大気にさらされているので三元触媒１１ａ，１１ｂの酸素の貯蔵量は最大となっており、これが三元触媒１１ａ，１１ｂの通常の状態である。従って酸素の貯蔵量が最大である状態を基準とすることは極く自然である。また、減速運転中に燃料の供給を停止することは普通に行われており、このときには三元触媒１１ａ，１１ｂは大気にさらされる。大気中には多量の酸素が存在しており、しかも三元触媒１１ａ，１１ｂの酸素の吸着速度は速いために燃料の供給停止時間が極めて短時間であっても三元触媒１１ａ，１１ｂの酸素の貯蔵量は確実に最大となる。従って本発明による実施例では酸素の貯蔵量が最大のときを基準として酸素の貯蔵量を算出するようにしている。
【００２７】
ところで酸素の貯蔵量が最大であるということは三元触媒に貯蔵されている酸素が全く脱離していないことを意味している。従って本発明による実施例ではこのような状態、即ち貯蔵酸素の脱離量が零の状態を基準として酸素の脱離量を求めるようにしている。この貯蔵酸素脱離量は以下記号ＯＳＣによって表される。従って貯蔵酸素脱離量ＯＳＣが零であるということは酸素の貯蔵量が最大であるときを示しており、貯蔵酸素脱離量ＯＳＣが最大のときには脱離可能な酸素が全部脱離しているときを示している。貯蔵酸素脱離量ＯＳＣが最大のときが以下記号ＯＳＣｍａｘでもって表される。
【００２８】
次に酸素の吸着量および脱離量の計算方法について説明する。なお、本発明による実施例では酸素の吸着量および脱離量の計算、およびこの計算に基づく空燃比の制御は第１気筒群と第２気筒群について夫々別個に行われるがこれら吸着量および脱離量の計算方法および空燃比の制御方法は基本的には第１の気筒群と第２の気筒群とで全く同一である。従って以下、第１気筒群に対する吸着量および脱離量の計算方法および空燃比の制御方法を中心に説明する。
【００２９】
本発明による実施例では第１気筒群の三元触媒１１ａについての時間Δｔ当りの酸素吸着量および酸素脱離量が次式を用いて算出される。
吸着量＝ＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）｝・Δｔ
脱離量＝ＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）／ｋ１｝・Δｔ
ここでＫＯ2 は空気中の酸素濃度を示しており、Ｇａは全気筒への吸入空気量（ｇ／ｓ）を示しており、ＫＲＡＴＥ１は全吸入空気量Ｇａのうちで第１気筒群に分配される吸入空気量の分配率を示しており、（Ａ／Ｆ）は第１の上流側空燃比センサ１６ａにより検出された空燃比を示しており、（ΔＡ／Ｆ）はこの空燃比（Ａ／Ｆ）と理論空燃比との偏差（Ａ／Ｆ−理論空燃比）を表している。
【００３０】
空燃比がリーンのときには三元触媒１１ａに酸素が吸着されるのでこのときには上述の吸着量を求める式が用いられる。この式においてＫＯ2 ・Ｇａ・ＫＲＡＴＥ１は第１気筒群のシリンダ内に単位時間当りに供給される酸素量（ｇ／ｓ）を示しており、（ΔＡ／Ｆ）／（Ａ／Ｆ）は燃焼した際に余剰となる酸素の割合を示している。従ってＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）｝・Δｔは時間Δｔ当りの余剰酸素量（ｇ）を表している。ここでΔＡ／Ｆは正である。このような余剰酸素が存在するとこの余剰酸素はただちに三元触媒１１ａに吸着されるものと考えられるので時間Δｔ当りの吸着量は余剰酸素量と同一量となり、従って時間Δｔ当りの吸着量は上式の如く表されることになる。
【００３１】
このように空燃比がリーンのときには時間Δｔ当り上述の余剰酸素量が貯蔵されることになり、従って上述の貯蔵酸素脱離量ＯＳＣは逆に時間Δｔ当り上述の余剰酸素量だけ減少することになる。従って三元触媒１１ａについての貯蔵酸素脱離量ＯＳＣ１は次式で表されることになる。
ＯＳＣ１＝ＯＳＣ１−ＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）｝・Δｔ
また、全吸入空気量Ｇａのうちで第２気筒群に分配される吸入空気量の分配率をＫＲＡＴＥ２とすると第２気筒群の三元触媒１１ｂについての貯蔵酸素脱離量ＯＳＣ２は次式で表されることになる。
【００３２】
ＯＳＣ２＝ＯＳＣ２−ＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ２・（ΔＡ／Ｆ）／（Ａ／Ｆ）｝・Δｔ
一方、空燃比がリッチのときには三元触媒１１ａから酸素が脱離するのでこのときには上述の脱離量を求める式が用いられる。この式においてもＫＯ2 ・Ｇａ・ＫＲＡＴＥ１は第１気筒群のシリンダ内に単位時間当りに供給される酸素量（ｇ／ｔ）を示している。これに対しこの式において（ΔＡ／Ｆ）／（Ａ／Ｆ）は燃焼した際に不足する酸素の割合を示しており、従ってＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）｝・Δｔは時間Δｔ当りの不足酸素量（ｇ）を表している。ここでΔＡ／Ｆは負である。
【００３３】
燃焼する際に酸素が不足するとこの不足酸素量分だけ未燃ＨＣ，ＣＯが発生し、この未燃ＨＣ，ＣＯの発生量に比例した量の酸素、即ち不足酸素量に比例した量の酸素が三元触媒１１ａから脱離せしめられる。ところが前述したように三元触媒１１ａからの酸素の脱離速度は三元触媒１１ａへの酸素の吸着速度よりも遅く、従ってこのとき三元触媒１１ａから脱離せしめられる酸素量は吸着速度に対して脱離速度が遅い分だけ不足酸素量よりも少なくなる。云い換えると三元触媒１１ａから脱離せしめられる酸素量は不足酸素量の（脱離速度／吸着速度）倍となる。従ってこの脱離速度と吸着速度との速度比を１／ｋ１（＝脱離速度／吸着速度）とすると時間Δｔ当りの脱離量は上述の不足酸素量に速度比１／ｋ１を乗算した量となり、従って時間Δｔ当りの脱離量は上式の如く表されることになる。
【００３４】
このように空燃比がリッチのときには時間Δｔ当り不足酸素量・速度比１／ｋ１が脱離することになり、従って上述の貯蔵酸素脱離量ＯＳＣは時間Δｔ当り不足酸素量・速度比１／ｋ１だけ増大することになる。従ってΔＡ／Ｆ＜０であることを考えると三元触媒１１ａについての貯蔵酸素脱離量ＯＳＣ１は次式で表されることになる。
【００３５】
ＯＳＣ１＝ＯＳＣ１−ＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）／ｋ１｝・Δｔ
また、第２気筒群の三元触媒１１ｂについての貯蔵酸素脱離量ＯＳＣ２は次式で表されることになる。
ＯＳＣ２＝ＯＳＣ２−ＫＯ2 ・｛Ｇａ・ＫＲＡＴＥ２・（ΔＡ／Ｆ）／（Ａ／Ｆ）／ｋ２｝・Δｔ
なお、空燃比が理論空燃比に維持されているときには酸素の吸着作用および脱離作用は行われていないと考えられるのでこのときには貯蔵酸素脱離量ＯＳＣ１およびＯＳＣ２は変化しない。
【００３６】
このように貯蔵酸素脱離量ＯＳＣ１およびＯＳＣ２は各気筒群に分配される吸入空気量と、第１の上流側空燃比センサ１６ａ，１６ｂにより検出された空燃比と、三元触媒１１ａ，１１ｂにおける酸素の脱離速度と吸着速度の速度比１／ｋ１，１／ｋ２とから算出することができる。
これに対して第１気筒群の三元触媒１１ａの貯蔵酸素の最大脱離量ＯＳＣ１ｍａｘは基本的には三元触媒１１ａが新品のときの最大脱離量Ｇ１（Ｔｃ）と三元触媒１１ａの劣化係数ＤＫ１との積（＝Ｇ１（Ｔｃ）・ＤＫ１）によって表される。三元触媒１１ａが新品のときの最大脱離量Ｇ１（Ｔｃ）は図３（Ａ）に示されるように三元触媒１１ａの温度Ｔｃの関数であり、この最大脱離量Ｇ１（Ｔｃ）は三元触媒１１ａの温度Ｔｃが高くなるほど大きくなる。
【００３７】
一方、三元触媒１１ａの劣化係数ＤＫ１は三元触媒１１ａが新品のときには１．０である。しかしながら三元触媒１１ａの使用期間が長くなるにつれて三元触媒１１ａが次第に劣化し、Ｏ2 ストレージ機能が次第に弱くなる。本発明による実施例では三元触媒１１ａの使用期間の代表値として累積運転時間ＴＤを用いており、この場合三元触媒１１ａの劣化係数ＤＫ１は図３（Ｂ）に示されるように累積運転時間ＴＤが長くなるにつれて次第に小さくなる。
【００３８】
一方、第２気筒群の三元触媒１１ｂの貯蔵酸素の最大脱離量ＯＳＣ２ｍａｘも基本的には三元触媒１１ｂが新品のときの最大脱離量Ｇ２（Ｔｃ）と三元触媒１１ｂの劣化係数ＤＫ２との積（＝Ｇ２（Ｔｃ）・ＤＫ２）によって表される。この三元触媒１１ｂについても三元触媒１１ｂが新品のときの最大脱離量Ｇ２（Ｔｃ）は図４（Ａ）に示されるように三元触媒１１ｂの温度Ｔｃの関数であり、この最大脱離量Ｇ２（Ｔｃ）は三元触媒１１ｂの温度Ｔｃが高くなるほど大きくなる。また、三元触媒１１ｂの劣化係数ＤＫ２も図４（Ｂ）に示されるように累積運転時間ＴＤが長くなるにつれて次第に小さくなる。
【００３９】
図３（Ａ），（Ｂ）および図４（Ａ），（Ｂ）に示されるＧ１（Ｔｃ）Ｇ２（Ｔｃ），ＤＫ１，ＤＫ２は実験により求められ、従ってこれらＧ１（Ｔｃ），Ｇ２（Ｔｃ）とＤＫ１，ＤＫ２の積から求められる最大脱離量ＯＳＣ１ｍａｘ，ＯＳＣ２ｍａｘは実際の最大脱離量をよく表している。しかしながら三元触媒１１ａ，１１ｂの使用のしかたによってはＧ１（Ｔｃ），Ｇ２（Ｔｃ）とＤＫ１，ＤＫ２の積から求められる最大脱離量ＯＳＣ１ｍａｘ，ＯＳＣ２ｍａｘが実際の最大脱離量を正確に表さなくなる危険性がある。そこで本発明による実施例では後述するように最大脱離量ＯＳＣ１ｍａｘが実際の最大脱離量を正確に表すように最大脱離量ＯＳＣ１ｍａｘを修正係数ＫＯＳＣ１により修正し、最大脱離量ＯＳＣ２ｍａｘが実際の最大脱離量を正確に表すように最大脱離量ＯＳＣ２ｍａｘを修正係数ＫＯＳＣ２により修正するようにしている。
【００４０】
本発明による実施例では空燃比が理論空燃比に対してリーン側或いはリッチ側のいずれにずれた場合でも排気ガス中の有害成分を浄化しうるように最大脱離量ＯＳＣ１ｍａｘの半分を目標脱離量ＯＳＣ１ｒｅｆとして設定して計算により得られた貯蔵酸素脱離量ＯＳＣ１がこの目標脱離量ＯＳＣ１ｒｅｆとなるように燃料噴射量が制御され、最大脱離量ＯＳＣ２ｍａｘの半分を目標脱離量ＯＳＣ２ｒｅｆとして設定して計算により得られた貯蔵酸素脱離量ＯＳＣ２がこの目標脱離量ＯＳＣ２ｒｅｆとなるように燃料噴射量が制御される。
【００４１】
即ち、本発明による実施例では第１気筒群の空燃比を理論空燃比にするのに必要な基本燃料噴射時間ＴＡＵＢ１が予め実験により求められており、この基本燃料噴射時間ＴＡＵＢ１は図５（Ａ）に示されるように機関負荷（吸入空気量Ｑ／機関回転数Ｎ）および機関回転数Ｎの関数として予めＲＯＭ３２内に記憶されている。更に、第２気筒群の空燃比を理論空燃比にするのに必要な基本燃料噴射時間ＴＡＵＢ２も予め実験により求められており、この基本燃料噴射時間ＴＡＵＢ２は図５（Ｂ）に示されるように機関負荷（吸入空気量Ｑ／機関回転数Ｎ）および機関回転数Ｎの関数として予めＲＯＭ３２内に記憶されている。燃料噴射時間をこれら基本燃料噴射時間ＴＡＵＢ１，ＴＡＵＢ２に維持しておくと空燃比は理論空燃比に維持され、従って貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２が夫々目標脱離量ＯＳＣ１ｒｅｆ，ＯＳＣ２ｒｅｆに維持されているときには燃料噴射時間は基本燃料噴射時間ＴＡＵＢ１，ＴＡＵＢ２に維持される。これに対して貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆからずれると貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆに戻るように第１気筒群に対する燃料噴射時間が増大又は減少せしめられ、貯蔵酸素脱離量ＯＳＣ２が目標脱離量ＯＳＣ２ｒｅｆからずれると貯蔵酸素脱離量ＯＳＣ２が目標脱離量ＯＳＣ２ｒｅｆに戻るように第２気筒群に対する燃料噴射時間が増大又は減少せしめられる。次にこのことについて第１気筒群に対する制御を例にとり図６を参照しつつ説明する。
【００４２】
図６に示されるように貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆに維持されているときには燃料噴射時間ＴＡＵ１が基本燃料噴射時間ＴＡＵＢ１に維持される。次いで酸素の脱離量が増大し、貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆよりも大きくなると機関空燃比をリーンにすべく燃料噴射時間ＴＡＵ１が基本燃料噴射時間ＴＡＵＢ１に対して減少せしめられる。第１気筒群の空燃比がリーンになると三元触媒１１ａに酸素が吸着され、斯くして貯蔵酸素脱離量ＯＳＣ１は再び目標脱離量ＯＳＣ１ｒｅｆに戻る。
【００４３】
次いで酸素の吸着量が増大し、貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆよりも小さくなると第１気筒群の空燃比をリッチにすべく燃料噴射時間ＴＡＵ１が基本燃料噴射時間ＴＡＵＢ１に対して増大せしめられる。第１気筒群の空燃比がリッチになると三元触媒１１ａから酸素が脱離され、斯くして貯蔵酸素脱離量ＯＳＣ１は再び目標脱離量ＯＳＣ１ｒｅｆに戻る。
【００４４】
このように貯蔵酸素脱離量ＯＳＣ１に応じて燃料噴射時間ＴＡＵ１を制御することにより貯蔵酸素脱離量ＯＳＣ１を目標脱離量ＯＳＣ１ｒｅｆに維持することができる。この場合、第１気筒群の空燃比がリーンになると過剰酸素が三元触媒１１ａに奪われるために排気ガス中のＮＯｘが還元され、第１気筒群の空燃比がリッチになると三元触媒１１ａから酸素を奪うことによって排気ガス中の未燃ＨＣ，ＣＯは酸化され、斯くして三元触媒１１ａから流出する排気ガス中にはほとんど未燃ＨＣ，ＣＯおよびＮＯｘが含まれないことになる。このとき図６に示されるように第１の下流側空燃比センサ１７ａの出力電圧Ｖは理論空燃比であることを示す０．４５（Ｖ）付近に維持される。
【００４５】
ところで本発明による実施例では例えば減速運転時において燃料の供給が停止されたときのように三元触媒１１ａ，１１ｂへの流入ガスが空気過剰であるとき、即ち貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２が零であるときを基準として貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２の計算が開始される。このとき計算上の貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２や計算上の最大脱離量ＯＳＣ１ｍａｘ，ＯＳＣ２ｍａｘが実際の貯蔵酸素脱離量や実際の最大脱離量に対してずれると貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２を実際の最大脱離量の半分である目標脱離量に維持することができなくなる。そこで本発明による実施例では計算上の貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２が実際の貯蔵酸素脱離量に一致しかつ最大脱離量ＯＳＣ１ｍａｘ，ＯＳＣ２ｍａｘが実際の最大脱離量に一致するように脱離速度と吸着速度の速度比１／ｋ１，１／ｋ２を修正し、かつ最大脱離量ＯＳＣ１ｍａｘ，ＯＳＣ２ｍａｘを夫々修正係数ＫＯＳＣ１，ＫＯＳＣ２により修正するようにしている。次にこのことについて第１気筒群に対する制御を例にとり図７から図１２を参照しつつ説明する。
【００４６】
本発明による実施例では最大脱離量ＯＳＣ１ｍａｘに修正係数ＫＯＳＣ１を乗算することによって最大脱離量ＯＳＣ１ｍａｘが修正される。即ち、次式の計算が行われる。
ＯＳＣ１ｍａｘ＝ＯＳＣ１ｍａｘ・ＫＯＳＣ１
従って修正係数ＫＯＳＣ１が増大すると最大脱離量ＯＳＣ１ｍａｘが増大し、修正係数ＫＯＳＣ１が減少すると最大脱離量ＯＳＣ１ｍａｘが減少することになる。
【００４７】
図７は貯蔵酸素脱離量ＯＳＣ１および最大脱離量ＯＳＣ１ｍａｘが夫々実際の貯蔵酸素脱離量および実際の最大脱離量に完全に一致しており、このような状態で何らかの理由により一時的に第１気筒群の空燃比が大巾にリーンになった場合を示している。第１気筒群の空燃比が大巾にリーンになったとすると排気ガス中の酸素が急激に三元触媒１１ａに吸着されるので貯蔵酸素脱離量ＯＳＣ１は急激に減少し、零に達する。貯蔵酸素脱離量ＯＳＣ１が零に達すると三元触媒１１ａはもはや酸素を吸着しえなくなるために三元触媒１１ａの下流における空燃比もリーンになり、欺くして図７に示されるように第１の下流側空燃比センサ１７ａの出力電圧Ｖは０．２（Ｖ）よりも低くなる。即ち、第１の下流側空燃比センサ１７ａにより検出された空燃比はリーンとなる。このときには図７に示されるように修正係数ＫＯＳＣ１は変化せず、また速度比１／ｋ１のｋ１の値も変化しない。
【００４８】
図８は何らかの理由により第１気筒群の空燃比が一時的に大巾にリーンになったときに計算上の貯蔵酸素脱離量ＯＳＣ１が零に達する前に第１の下流側空燃比センサ１７ａにより検出された空燃比がリーンになった場合を示している。貯蔵酸素脱離量ＯＳＣ１が零に達する前に第１の下流側空燃比センサ１７ａにより検出された空燃比がリーンになったということは貯蔵酸素脱離量ＯＳＣ１が零に達していなくても実際の貯蔵酸素脱離量は零になっていることを意味している。このように計算上の貯蔵酸素脱離量ＯＳＣ１と実際の貯蔵酸素脱離量ＯＳＣ１との間で差が生じるのは酸素の脱離速度を速く設定しすぎ、その結果計算上の貯蔵酸素脱離量ＯＳＣが実際の貯蔵酸素脱離量よりも大きくなるからである。そこでこの場合には酸素の脱離速度を遅くさせるために、即ち速度比１／ｋ１を低下させるために図８に示される如く速度比１／ｋ１のｋ１の値を大きくするようにしている。なお、このとき実際の貯蔵酸素脱離量は零になっているので計算上の貯蔵酸素脱離量ＯＳＣ１は零とされる。
【００４９】
図９は何らかの理由により第１気筒群の空燃比が一時的に大巾にリーンになったときに計算上の貯蔵酸素脱離量ＯＳＣ１が零に達しているにもかかわらずに第１の下流側空燃比センサ１７ａにより検出された空燃比がリーンになっていない場合を示している。貯蔵酸素脱離量ＯＳＣ１が零に達しているにもかかわらずに第１の下流側空燃比センサ１７ａにより検出された空燃比がリーンになっていないということは貯蔵酸素脱離量ＯＳＣ１が零に達していても実際の貯蔵酸素脱離量は零に達していないことを意味している。このように計算上の貯蔵酸素脱離量ＯＳＣ１と実際の貯蔵酸素脱離量ＯＳＣ１との間で差が生じるのは酸素の脱離速度を遅く設定しすぎ、その結果計算上の貯蔵酸素脱離量ＯＳＣ１が実際の貯蔵酸素脱離量よりも小さくなるからである。そこでこの場合には酸素の脱離速度を速くさせるために、即ち速度比１／ｋ１を増大させるために図９に示される如く速度比１／ｋ１のｋ１の値を小さくするようにしている。
【００５０】
図１０は貯蔵酸素脱離量ＯＳＣ１および最大脱離量ＯＳＣ１ｍａｘが夫々実際の貯蔵酸素脱離量および実際の最大脱離量に完全に一致しており、このような状態で何らかの理由により一時的に第１気筒群の空燃比が大巾にリッチになった場合を示している。第１気筒群の空燃比が大巾にリッチになったとすると排気ガス中の酸素が急激に三元触媒１１ａから脱離されるので貯蔵酸素脱離量ＯＳＣ１は急激に増大し、最大脱離量ＯＳＣ１ｍａｘに達する。貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘに達すると三元触媒１１ａにはもはや脱離すべき酸素が存在しなくなるために三元触媒１１ａの下流における空燃比もリッチになり、欺くして図１０に示されるように第１の下流側空燃比センサ１７ａの出力電圧Ｖは０．７（Ｖ）よりも高くなる。即ち、第１の下流側空燃比センサ１７ａにより検出された空燃比はリッチとなる。このときには図１０に示されるように修正係数ＫＯＳＣ１は変化せず、また速度比１／ｋ１のｋ１の値も変化しない。
【００５１】
図１１は何らかの理由により第１気筒群の空燃比が一時的に大巾にリッチになったときに計算上の貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘに達する前に第１の下流側空燃比センサ１７ａにより検出された空燃比がリッチになった場合を示している。即ち、計算上の貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘに達していないのに実際の貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘに達している場合を示している。
【００５２】
このように計算上の最大脱離量ＯＳＣ１ｍａｘと実際の最大脱離量との間で差を生じるのは酸素の脱離速度を低く設定しすぎているか、計算上の最大脱離量ＯＳＣ１ｍａｘが誤まっているからである。この場合、酸素の脱離速度については図８および図９に示す方法で修正されているので酸素の脱離速度は正しいと考えられ、欺くして計算上の最大脱離量ＯＳＣ１ｍａｘが誤まっているものと考えられる。従ってこの場合には図１１に示されるように最大脱離量ＯＳＣ１ｍａｘを低下させるために修正係数ＫＯＳＣ１が低下せしめられる。更にこのとき貯蔵酸素脱離量ＯＳＣ１は最大脱離量ＯＳＣ１ｍａｘとされる。
【００５３】
図１２は何らかの理由により第１気筒群の空燃比が一時的に大巾にリッチになったときに計算上の貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘに達しているにもかかわらずに第１の下流側空燃比センサ１７ａにより検出された空燃比がリッチになっていない場合を示している。即ち、計算上の貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘに達しているのに実際の貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘに達していない場合を示している。
【００５４】
このように計算上の最大脱離量ＯＳＣ１ｍａｘと実際の最大脱離量との間で差を生じるのは酸素の脱離速度を速く設定しすぎているか、計算上の最大脱離量ＯＳＣ１ｍａｘが誤まっているからである。この場合、前述したように酸素の脱離速度については図８および図９に示す方法で修正されているので酸素の脱離速度は正しいと考えられ、欺くして計算上の最大脱離量ＯＳＣ１ｍａｘが誤まっているものと考えられる。従ってこの場合には図１２に示されるように最大脱離量ＯＳＣ１ｍａｘを増大させるために修正係数ＫＯＳＣ１が増大せしめられる。
【００５５】
このように計算上の貯蔵酸素脱離量ＯＳＣ１および計算上の最大脱離量ＯＳＣ１ｍａｘが夫々実際の貯蔵酸素脱離量および実際の最大脱離量に正確に一致せしめられる。従って実際の貯蔵酸素脱離量が実際の最大脱離量の半分に維持せしめられるので空燃比が理論空燃比からリーン側或いはリッチ側のいずれにずれても排気ガス中の有害成分を確実に浄化できることになる。
【００５６】
図１３に第１気筒群および第２気筒群に分配される吸入空気量の分配率の算出ルーチンを示す。
図１３を参照するとまず初めにステップ５０においていずれかの気筒が圧縮上死点ＴＤＣであるか否かが判別される。本発明による実施例は６気筒エンジンであり、従って１２０°クランク角毎にいずれかの気筒が圧縮上死点ＴＤＣとなる。いずれかの気筒が圧縮上死点ＴＤＣであるときにはステップ５１に進んで現在の時刻ＴＩＭＥが取込まれる。次いでステップ５２では現在１番気筒群のいずれかの気筒が圧縮上死点ＴＤＣであるか否かが判別される。現在１番気筒群のいずれかの気筒が圧縮上死点ＴＤＣであるときにはステップ５３に進んで２番気筒群の爆発行程に要した時間ＴＩＮＴ２が算出される。即ち、１番気筒群が圧縮上死点ＴＤＣであるときには１２０°クランク角度前の時刻ＴＩＭＥＯのときには２番気筒群が圧縮上死点ＴＤＣにあり、従ってＴＩＮＴ２（＝ＴＩＭＥ−ＴＩＭＥＯ）は２番気筒群が圧縮上死点ＴＤＣから圧縮上死点後１２０°クランクに達するまでの時間、即ち爆発行程に要した時間を表わしている。ＴＩＮＴ２が算出されるとステップ５５に進む。
【００５７】
一方、ステップ５２において現在２番気筒群のいずれかの気筒が圧縮上死点ＴＤＣであると判断されたときにはステップ５４に進んで１番気筒群の爆発行程に要した時間ＴＩＮＴ１が算出される。即ち、２番気筒群が圧縮上死点ＴＤＣであるときには１２０°クランク角度前の時刻ＴＩＭＥＯのときには１番気筒群が圧縮上死点ＴＤＣにあり、従ってＴＩＮＴ１（＝ＴＩＭＥ−ＴＩＭＥＯ）は１番気筒群が圧縮上死点ＴＤＣから圧縮上死点後１２０°クランクに達するまでの時間、即ち爆発行程に要した時間を表わしている。ＴＩＮＴ１が算出されるとステップ５５に進む。
【００５８】
ステップ５５では次式に基づいて第１気筒群への吸入空気量の分配率ＫＲＡＴＥ１および第２気筒群への吸入空気量の分配率ＫＲＡＴＥ２が算出される。
ＫＲＡＴＥ１＝ＴＩＮＴ２／（ＴＩＮＴ１＋ＴＩＮＴ２）
ＫＲＡＴＥ２＝ＴＩＮＴ１／（ＴＩＮＴ１＋ＴＩＮＴ２）
即ち、爆発行程に要する時間が短かくなるほど吸入空気量の分配率は増大するので各気筒群への吸入空気量の分配率ＫＲＡＴＥ１，ＫＲＡＴＥ２は上式の如く表されることになる。
【００５９】
次いでステップ５６においてＴＩＭＥがＴＩＭＥＯとされる。
次に貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２の算出ルーチンについて図１４から図１７を参照しつつ説明する。なお、このルーチンは一定時間毎の割込みによって実行される。
図１４から図１７を参照するとまず初めにステップ１００において累積運転時間を求めるためのカウント値ＴＤが１だけインクリメントされる。次いでステップ１０１では機関始動後一定時間経過したか否かが判別され、機関始動後一定時間経過していないときにはステップ１１３に進む。ステップ１１３では貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２が零とされ、次いで処理サイクルを完了する。一方、ステップ１０１において機関始動後一定時間経過したと判断されたときにはステップ１０２に進んで温度センサ１８ａ，１８ｂにより検出された各三元触媒１１ａ，１１ｂの温度Ｔｃが一定値Ｔｃｏよりも高くなったか否かが判別される。Ｔｃ≦Ｔｃｏのときにはステップ１１３に進み、Ｔｃ＞Ｔｃｏのときにはステップ１０３に進む。
【００６０】
ステップ１０３では減速運転時において燃料噴射が停止せしめられているか否かが判別され、燃料噴射が停止せしめられているときにはステップ１１３に進む。これに対して燃料噴射が停止せしめられていないときにはステップ１０４に進み、ステップ１０４からステップ１１２において貯蔵酸素脱離量ＯＳＣ１が算出される。この貯蔵酸素脱離量ＯＳＣ１の算出が開始される前はステップ１１３において貯蔵酸素脱離量ＯＳＣ１は零とされており、従って貯蔵酸素脱離量ＯＳＣ１は零の状態から計算が開始されることがわかる。
【００６１】
ステップ１０４では第１の上流側空燃比センサ１６ａの出力から図２（Ａ）に示す関係に基づいて算出された空燃比Ａ／Ｆが読込まれる。次いでステップ１０５ではこの空燃比Ａ／Ｆが理論空燃比であるか否かが判別され、空燃比Ａ／Ｆが理論空燃比のときには図１５に示す修正ルーチンに進む。これに対して空燃比Ａ／Ｆが理論空燃比でないときにはステップ１０６に進んで空燃比Ａ／Ｆがリーンであるか否かが判別される。空燃比Ａ／Ｆがリーンであるときにはステップ１０７に進み、エアフローメータ７により求められた吸入空気量Ｇａ、分配率ＫＲＡＴＥ１、第１の上流側空燃比センサ１６ａの出力に基づき算出された空燃比の偏差ΔＡ／Ｆ（＝空燃比Ａ／Ｆ−理論空燃比）および割込み時間間隔Δｔを用いて次式から貯蔵酸素脱離量ＯＳＣ１が算出される。
【００６２】
ＯＳＣ１←ＯＳＣ１−ＫＯ2 ・Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）・Δｔ
次いでステップ１０８では貯蔵酸素脱離量ＯＳＣ１が零よりも大きいか否かが判別される。ＯＳＣ１≧０のときには図１５に示す修正ルーチンに進み、ＯＳＣ１＜０のときにはステップ１０９に進んでＯＳＣ１を零とした後図１５に示す修正ルーチンに進む。
【００６３】
一方、ステップ１０６において空燃比Ａ／Ｆがリーンでないと判別されたとき、即ち空燃比Ａ／Ｆがリッチであるときにはステップ１１０に進み、エアフローメータ７により求められた吸入空気量Ｇａ、分配率ＫＲＡＴＥ１、第１の上流側空燃比センサ１６ａの出力に基づき算出された空燃比の偏差ΔＡ／Ｆ（＝空燃比Ａ／Ｆ−理論空燃比）および割込み時間間隔Δｔを用いて次式から貯蔵酸素脱離量ＯＳＣ１が算出される。
【００６４】
ＯＳＣ１←ＯＳＣ１−ＫＯ2 ・Ｇａ・ＫＲＡＴＥ１・（ΔＡ／Ｆ）／（Ａ／Ｆ）／ｋ１・Δｔ
次いでステップ１１１では貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘよりも大きいか否かが判別される。ＯＳＣ１≦ＯＳＣ１ｍａｘのときには図１５に示す修正ルーチンに進み、ＯＳＣ１＞ＯＳＣ１ｍａｘのときにはステップ１１２に進んでＯＳＣ１をＯＳＣ１ｍａｘとした後図１５に示す修正ルーチンに進む。
【００６５】
図１５に示す修正ルーチンではまず初めにステップ１１４において貯蔵酸素脱離量ＯＳＣ１が零と最大脱離量ＯＳＣ１ｍａｘとの間にあるか否かが判別される。ＯＳＣ１ｍａｘ＞ＯＳＣ１＞０であるときにはステップ１１５に進んで第１の下流側空燃比センサ１７ａの出力電圧Ｖが０．２（Ｖ）と０．７（Ｖ）の間であるか否か、即ち第１の下流側空燃比センサ１７ａにより検出された空燃比が理論空燃比であるか否かが判別される。０．２＜Ｖ＜０．７のときにはステップ１２７に進む。これに対して０．２＜Ｖ＜０．７でないときにはステップ１１６に進む。
【００６６】
ステップ１１６ではＶ≧０．７であるか否かが判別される。Ｖ≧０．７であるとき、即ち第１の下流側空燃比センサ１７ａにより検出された空燃比がリッチであるときにはステップ１１７に進み、次式に基づいて修正係数ＫＯＳＣ１が更新される。
ＫＯＳＣ１＝ＫＯＳＣ１・（１−β１）
ここでβ１は１よりも小さい正の定数である。従ってこのときには修正係数ＫＯＳＣ１が図１１に示されるように減少せしめられる。次いでステップ１１８ではＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘとされる。
【００６７】
一方、ステップ１１６においてＶ＜０．７であると判断されたとき、即ち第１の下流側空燃比センサ１７ａにより検出された空燃比がリーンであるときにはステップ１１９に進み、次式に基づいて速度比１／ｋ１のｋ１の値が更新される。
ｋ１＝ｋ１・（１＋γ１）
ここでγ１は１よりも小さい正の定数である。従ってこのときにはｋ１の値が図８に示されるように増大せしめられる。次いでステップ１２０ではＯＳＣ１が零とされる。
【００６８】
一方、ステップ１１４においてＯＳＣ１ｍａｘ＞ＯＳＣ１＞０でないと判別されたときにはステップ１２１に進んで貯蔵酸素脱離量ＯＳＣ１が最大脱離量ＯＳＣ１ｍａｘであるか否かが判別される。ＯＳＣ１＝ＯＳＣ１ｍａｘのときにはステップ１２２に進んでＶ≧０．７であるか否かが判別される。Ｖ＜０．７のとき、即ち第１の下流側空燃比センサ１７ａにより検出された空燃比がリッチでないときにはステップ１２３に進んで次式に基づき修正係数ＫＯＳＣ１が更新される。
【００６９】
ＫＯＳＣ１＝ＫＯＳＣ１・（１＋β２）
ここでβ２は１よりも小さい正の定数である。従ってこのときには修正係数ＫＯＳＣ１が図１２に示されるように増大せしめられる。
これに対し、ステップ１２１においてＯＳＣ１＝ＯＳＣ１ｍａｘではないと判別されたときにはステップ１２４に進んで貯蔵酸素脱離量ＯＳＣ１が零であるか否かが判別される。ＯＳＣ１＝０のときにはステップ１２５に進んでＶ≦０．２であるか否かが判別される。Ｖ＞０．２のとき、即ち第１の下流側空燃比センサ１７ａにより検出された空燃比がリーンでないときにはステップ１２６に進んで次式に基づき速度比１／ｋ１のｋ１の値が更新される。
【００７０】
ｋ１＝ｋ１・（１−γ２）
ここでγ２は１よりも小さい正の定数である。従ってこのときにはｋ１の値は図９に示されるように減少せしめられる。
ステップ１２７では第２の上流側空燃比センサ１６ｂの出力から図２（Ａ）に示す関係に基づいて算出された空燃比Ａ／Ｆが読込まれる。次いでステップ１２８ではこの空燃比Ａ／Ｆが理論空燃比であるか否かが判別され、空燃比Ａ／Ｆが理論空燃比のときには図１７に示す修正ルーチンに進む。これに対して空燃比Ａ／Ｆが理論空燃比でないときにはステップ１２９に進んで空燃比Ａ／Ｆがリーンであるか否かが判別される。空燃比Ａ／Ｆがリーンであるときにはステップ１３０に進み、エアフローメータ７により求められた吸入空気量Ｇａ、分配率ＫＲＡＴＥ２、第２の上流側空燃比センサ１６ｂの出力に基づき算出された空燃比の偏差ΔＡ／Ｆ（＝空燃比Ａ／Ｆ−理論空燃比）および割込み時間間隔Δｔを用いて次式から貯蔵酸素脱離量ＯＳＣ２が算出される。
【００７１】
ＯＳＣ２←ＯＳＣ２−ＫＯ2 ・Ｇａ・ＫＲＡＴＥ２・（ΔＡ／Ｆ）／（Ａ／Ｆ）・Δｔ
次いでステップ１３１では貯蔵酸素脱離量ＯＳＣ２が零よりも大きいか否かが判別される。ＯＳＣ２≧０のときには図１７に示す修正ルーチンに進み、ＯＳＣ２＜０のときにはステップ１３２に進んでＯＳＣ２を零とした後図１７に示す修正ルーチンに進む。
【００７２】
一方、ステップ１２９において空燃比Ａ／Ｆがリーンでないと判別されたとき、即ち空燃比Ａ／Ｆがリッチであるときにはステップ１３３に進み、エアフローメータ７により求められた吸入空気量Ｇａ、分配率ＫＲＡＴＥ２、第２の上流側空燃比センサ１６ｂの出力に基づき算出された空燃比の偏差ΔＡ／Ｆ（＝空燃比Ａ／Ｆ−理論空燃比）および割込み時間間隔Δｔを用いて次式から貯蔵酸素脱離量ＯＳＣ２が算出される。
【００７３】
ＯＳＣ２←ＯＳＣ２−ＫＯ2 ・Ｇａ・ＫＲＡＴＥ２・（ΔＡ／Ｆ）／（Ａ／Ｆ）／ｋ２・Δｔ
次いでステップ１３４では貯蔵酸素脱離量ＯＳＣ２が最大脱離量ＯＳＣ２ｍａｘよりも大きいか否かが判別される。ＯＳＣ２≦ＯＳＣ２ｍａｘのときには図１７に示す修正ルーチンに進み、ＯＳＣ２＞ＯＳＣ２ｍａｘのときにはステップ１３５に進んでＯＳＣ２をＯＳＣ２ｍａｘとした後図１７に示す修正ルーチンに進む。
【００７４】
図１７に示す修正ルーチンではまず初めにステップ１３６において貯蔵酸素脱離量ＯＳＣ２が零と最大脱離量ＯＳＣ２ｍａｘとの間にあるか否かが判別される。ＯＳＣ２ｍａｘ＞ＯＳＣ２＞０であるときにはステップ１３７に進んで第２の下流側空燃比センサ１７ｂの出力電圧Ｖが０．２（Ｖ）と０．７（Ｖ）の間であるか否か、即ち第２の下流側空燃比センサ１７ｂにより検出された空燃比が理論空燃比であるか否かが判別される。０．２＜Ｖ＜０．７のときには処理サイクルを完了する。これに対して０．２＜Ｖ＜０．７でないときにはステップ１３８に進む。
【００７５】
ステップ１３８ではＶ≧０．７であるか否かが判別される。Ｖ≧０．７であるとき、即ち第２の下流側空燃比センサ１７ｂにより検出された空燃比がリッチであるときにはステップ１３９に進み、次式に基づいて修正係数ＫＯＳＣ２が更新される
ＫＯＳＣ２＝ＫＯＳＣ２・（１−β１）
ここでβ１は１よりも小さい正の定数である。従ってこのときには修正係数ＫＯＳＣ２が減少せしめられる。次いでステップ１４０ではＯＳＣ２が最大脱離量ＯＳＣ２ｍａｘとされる。
【００７６】
一方、ステップ１３８においてＶ＜０．７であると判断されたとき、即ち第２の下流側空燃比センサ１７ｂにより検出された空燃比がリーンであるときにはステップ１４１に進み、次式に基づいて速度比１／ｋ２のｋ２の値が更新される。
ｋ２＝ｋ２・（１＋γ１）
ここでγ１は１よりも小さい正の定数である。従ってこのときにはｋ２の値が増大せしめられる。次いでステップ１４２ではＯＳＣ２が零とされる。
【００７７】
一方、ステップ１３６においてＯＳＣ２ｍａｘ＞ＯＳＣ２＞０でないと判別されたときにはステップ１４３に進んで貯蔵酸素脱離量ＯＳＣ２が最大脱離量ＯＳＣ２ｍａｘであるか否かが判別される。ＯＳＣ２＝ＯＳＣ２ｍａｘのときにはステップ１４４に進んでＶ≧０．７であるか否かが判別される。Ｖ＜０．７のとき、即ち第２の下流側空燃比センサ１７ｂにより検出された空燃比がリッチでないときにはステップ１４５に進んで次式に基づき修正係数ＫＯＳＣ２が更新される。
【００７８】
ＫＯＳＣ２＝ＫＯＳＣ２・（１＋β２）
ここでβ２は１よりも小さい正の定数である。従ってこのときには修正係数ＫＯＳＣ２が増大せしめられる。
これに対し、ステップ１４３においてＯＳＣ２＝ＯＳＣ２ｍａｘではないと判別されたときにはステップ１４６に進んで貯蔵酸素脱離量ＯＳＣ２が零であるか否かが判別される。ＯＳＣ２＝０のときにはステップ１４７に進んでＶ≦０．２であるか否かが判別される。Ｖ＞０．２のとき、即ち第２の下流側空燃比センサ１７ｂにより検出された空燃比がリーンでないときにはステップ１４８に進んで次式に基づき速度比１／ｋ２のｋ２の値が更新される。
【００７９】
ｋ２＝ｋ２・（１−γ２）
ここでγ２は１よりも小さい正の定数である。従ってこのときにはｋ２の値は減少せしめられる。
次に第１気筒群への燃料噴射時間ＴＡＵ１および第２気筒群への燃料噴射時間ＴＡＵ２の算出ルーチンについて図１８および図１９を参照しつつ説明する。なお、このルーチンは繰返し実行される。
【００８０】
図１８および図１９を参照するとまず初めにステップ２００において図３（Ａ）に示す関係から求められた最大脱離量Ｇ１（Ｔｃ）と、図３（Ｂ）に示す関係から求められた劣化係数ＤＫ１との積である最大脱離量ＯＳＣ１ｍａｘ（＝Ｇ１（Ｔｃ）・ＤＫ１）が算出される。次いでステップ２０１では次式に示すように最大脱離量ＯＳＣ１ｍａｘに修正係数ＫＯＳＣ１を乗算することによって最大脱離量ＯＳＣ１ｍａｘが更新される。
【００８１】
ＯＳＣ１ｍａｘ＝ＯＳＣ１ｍａｘ・ＫＯＳＣ１
次いでステップ２０２では最大脱離量ＯＳＣ１ｍａｘの半分が目標脱離量ＯＳＣ１ｒｅｆとされる。次いでステップ２０３では図５（Ａ）に示すマップから基本燃料噴射時間ＴＡＵＢ１が算出される。
次いでステップ２０４では貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆと等しいか否かが判別される。ＯＳＣ１＝ＯＳＣ１ｒｅｆのときにはステップ２０５に進んで燃料噴射時間ＴＡＵ１が基本燃料噴射時間ＴＡＵＢ１とされる。これに対してＯＳＣ１＝ＯＳＣ１ｒｅｆでないときにはステップ２０６に進んで貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆよりも少ないか否かが判別される。ＯＳＣ１＜ＯＳＣ１ｒｅｆのときにはステップ２０７に進んで基本燃料噴射時間ＴＡＵＢ１にリッチ補正係数ＫＲ（ＫＲ＞１．０）を乗算することによって燃料噴射時間ＴＡＵ１（＝ＴＡＵＢ１・ＫＲ）が算出される。これに対してＯＳＣ１＞ＯＳＣ１ｒｅｆのときにはステップ２０８に進んで基本燃料噴射時間ＴＡＵＢ１にリーン補正係数ＫＬ（０＜ＫＬ＜１．０）を乗算することによって燃料噴射時間ＴＡＵ１（＝ＴＡＵＢ１・ＫＬ）が算出される。
【００８２】
次いでステップ２０９では図４（Ａ）に示す関係から求められた最大脱離量Ｇ２（Ｔｃ）と、図４（Ｂ）に示す関係から求められた劣化係数ＤＫ２との積である最大脱離量ＯＳＣ２ｍａｘ（＝Ｇ２（Ｔｃ）・ＤＫ２）が算出される。次いでステップ２１０では次式に示すように最大脱離量ＯＳＣ２ｍａｘに修正係数ＫＯＳＣ２を乗算することによって最大脱離量ＯＳＣ２ｍａｘが更新される。
【００８３】
ＯＳＣ２ｍａｘ＝ＯＳＣ２ｍａｘ・ＫＯＳＣ２
次いでステップ２１１では最大脱離量ＯＳＣ２ｍａｘの半分が目標脱離量ＯＳＣ２ｒｅｆとされる。次いでステップ２１２では図５（Ｂ）に示すマップから基本燃料噴射時間ＴＡＵＢ２が算出される。
次いでステップ２１３では貯蔵酸素脱離量ＯＳＣ２が目標脱離量ＯＳＣ２ｒｅｆと等しいか否かが判別される。ＯＳＣ２＝ＯＳＣ２ｒｅｆのときにはステップ２１４に進んで燃料噴射時間ＴＡＵ２が基本燃料噴射時間ＴＡＵＢ２とされる。これに対してＯＳＣ２＝ＯＳＣ２ｒｅｆでないときにはステップ２１５に進んで貯蔵酸素脱離量ＯＳＣ２が目標脱離量ＯＳＣ２ｒｅｆよりも少ないか否かが判別される。ＯＳＣ２＜ＯＳＣ２ｒｅｆのときにはステップ２１６に進んで基本燃料噴射時間ＴＡＵＢ２にリッチ補正係数ＫＲ（ＫＲ＞１．０）を乗算することによって燃料噴射時間ＴＡＵ２（＝ＴＡＵＢ２・ＫＲ）が算出される。これに対してＯＳＣ２＞ＯＳＣ２ｒｅｆのときにはステップ２１７に進んで基本燃料噴射時間ＴＡＵＢ２にリーン補正係数ＫＬ（０＜ＫＬ＜１．０）を乗算することによって燃料噴射時間ＴＡＵ２（＝ＴＡＵＢ２・ＫＬ）が算出される。
【００８４】
なお、修正係数ＫＯＳＣ１，ＫＯＳＣ２の値および速度比１／ｋ１，１／ｋ２のｋ１，ｋ２の値はバックアップＲＡＭ３５内に記憶される。
図２０から図２３に第２実施例を示す。図２０を参照するとこの第２実施例では第１の吸気通路４ａの入口部および第２の吸気通路４ｂの入口部に夫々第１のスロットル弁９ａおよび第２のスロットル弁９ｂが配置される。これらのスロットル弁９ａ，９ｂは夫々対応する駆動モータ４０ａ，４０ｂに直結される。図２１（Ａ）は第１のスロットル弁９ａの目標開度ＴＡ１とアクセルペダルの踏込み量Ｌとの関係を示しており、図２１（Ｂ）は第２のスロットル弁９ｂの目標開度ＴＡ２とアクセルペダルの踏込み量Ｌとの関係を示している。各スロットル弁９ａ，９ｂはそれらの開度が目標開度ＴＡ１，ＴＡ２となるように対応する駆動モータ４０ａ，４０ｂによって駆動制御される。
【００８５】
この第２実施例においても図１３から図１７に示すルーチンがそのまま用いられる。ただし、この実施例ではいずれかの気筒群の空燃比がリッチとされるときには機関出力トルクの上昇によるトルク変動を阻止するために空燃比がリッチとされる気筒群のスロットル弁９ａ又は９ｂの開度が減少せしめられ、いずれかの気筒群の空燃比がリーンとされるときには機関出力トルクの低下によるトルク変動を阻止するために空燃比がリーンとされる気筒群のスロットル弁９ａ又は９ｂの開度が増大せしめられる。
【００８６】
次にこの第２実施例において用いられている燃料噴射時間ＴＡＵ１，ＴＡＵ２の算出ルーチンについて図２２および図２３を参照しつつ説明する。なお、このルーチンは繰返し実行される。
図２２および図２３を参照するとまず初めにステップ３００において図３（Ａ）に示す関係から求められた最大脱離量Ｇ１（Ｔｃ）と、図３（Ｂ）に示す関係から求められた劣化係数ＤＫ１との積である最大脱離量ＯＳＣ１ｍａｘ（＝Ｇ１（Ｔｃ）・ＤＫ１）が算出される。次いでステップ３０１では次式に示すように最大脱離量ＯＳＣ１ｍａｘに修正係数ＫＯＳＣ１を乗算することによって最大脱離量ＯＳＣ１ｍａｘが更新される。
【００８７】
ＯＳＣ１ｍａｘ＝ＯＳＣ１ｍａｘ・ＫＯＳＣ１
次いでステップ３０２では最大脱離量ＯＳＣ１ｍａｘの半分が目標脱離量ＯＳＣ１ｒｅｆとされる。次いでステップ３０３では図５（Ａ）に示すマップから基本燃料噴射時間ＴＡＵＢ１が算出される。
次いでステップ３０４では貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆと等しいか否かが判別される。ＯＳＣ１＝ＯＳＣ１ｒｅｆのときにはステップ３０５に進んで燃料噴射時間ＴＡＵ１が基本燃料噴射時間ＴＡＵＢ１とされる。これに対してＯＳＣ１＝ＯＳＣ１ｒｅｆでないときにはステップ３０６に進んで貯蔵酸素脱離量ＯＳＣ１が目標脱離量ＯＳＣ１ｒｅｆよりも少ないか否かが判別される。ＯＳＣ１＜ＯＳＣ１ｒｅｆのときにはステップ３０７に進んで基本燃料噴射時間ＴＡＵＢ１にリッチ補正係数ＫＲ（ＫＲ＞１．０）を乗算することによって燃料噴射時間ＴＡＵ１（＝ＴＡＵＢ１・ＫＲ）が算出される。
【００８８】
次いでステップ３０８では図２１（Ａ）に示される第１スロットル弁９ａの目標開度ＴＡ１に減少補正係数ＫＤ（０＜ＫＤ＜１．０）を乗算することによって目標開度ＴＡ１が補正される。従って第１気筒群の空燃比がリッチにされると第１気筒群への吸入空気量を制御する第１のスロットル弁９ａの開度が減少せしめられる。
【００８９】
一方、ステップ３０６においてＯＳＣ１＞ＯＳＣ１ｒｅｆであると判断されたときにはステップ３０９に進んで基本燃料噴射時間ＴＡＵＢ１にリーン補正係数ＫＬ（０＜ＫＬ＜１．０）を乗算することによって燃料噴射時間ＴＡＵ１（＝ＴＡＵＢ１・ＫＬ）が算出される。次いでステップ３１０では図２１（Ａ）に示される第１スロットル弁９ａの目標開度ＴＡ１に増大補正係数ＫＵ（ＫＵ＞１．０）を乗算することによって目標開度ＴＡ１が補正される。従って第１気筒群の空燃比がリーンにされると第１気筒群への吸入空気量を制御する第１のスロットル弁９ａの開度が増大せしめられる。
【００９０】
次いでステップ３１１では図４（Ａ）に示す関係から求められた最大脱離量Ｇ２（Ｔｃ）と、図４（Ｂ）に示す関係から求められた劣化係数ＤＫ２との積である最大脱離量ＯＳＣ２ｍａｘ（＝Ｇ２（Ｔｃ）・ＤＫ２）が算出される。次いでステップ３１２では次式に示すように最大脱離量ＯＳＣ２ｍａｘに修正係数ＫＯＳＣ２を乗算することによって最大脱離量ＯＳＣ２ｍａｘが更新される。
【００９１】
ＯＳＣ２ｍａｘ＝ＯＳＣ２ｍａｘ・ＫＯＳＣ２
次いでステップ３１３では最大脱離量ＯＳＣ２ｍａｘの半分が目標脱離量ＯＳＣ２ｒｅｆとされる。次いでステップ３１４では図５（Ｂ）に示すマップから基本燃料噴射時間ＴＡＵＢ２が算出される。
次いでステップ３１５では貯蔵酸素脱離量ＯＳＣ２が目標脱離量ＯＳＣ２ｒｅｆと等しいか否かが判別される。ＯＳＣ２＝ＯＳＣ２ｒｅｆのときにはステップ３１６に進んで燃料噴射時間ＴＡＵ２が基本燃料噴射時間ＴＡＵＢ２とされる。これに対してＯＳＣ２＝ＯＳＣ２ｒｅｆでないときにはステップ３１７に進んで貯蔵酸素脱離量ＯＳＣ２が目標脱離量ＯＳＣ２ｒｅｆよりも少ないか否かが判別される。ＯＳＣ２＜ＯＳＣ２ｒｅｆのときにはステップ３１８に進んで基本燃料噴射時間ＴＡＵＢ２にリッチ補正係数ＫＲ（ＫＲ＞１．０）を乗算することによって燃料噴射時間ＴＡＵ２（＝ＴＡＵＢ２・ＫＲ）が算出される。
【００９２】
次いでステップ３１９では図２１（Ｂ）に示される第２スロットル弁９ｂの目標開度ＴＡ２に減少補正係数ＫＤ（０＜ＫＤ＜１．０）を乗算することによって目標開度ＴＡ２が補正される。従って第２気筒群の空燃比がリッチにされると第２気筒群への吸入空気量を制御する第２のスロットル弁９ｂの開度が減少せしめられる。
【００９３】
一方、ステップ３１７においてＯＳＣ２＞ＯＳＣ２ｒｅｆであると判断されるとステップ３２０に進んで基本燃料噴射時間ＴＡＵＢ２にリーン補正係数ＫＬ（０＜ＫＬ＜１．０）を乗算することによって燃料噴射時間ＴＡＵ２（＝ＴＡＵＢ２・ＫＬ）が算出される。
次いでステップ３２１では図２１（Ｂ）に示される第２スロットル弁９ｂの目標開度ＴＡ２に増大補正係数ＫＵ（ＫＵ＞１．０）を乗算することによって目標開度ＴＡ２が補正される。従って第２気筒群の空燃比がリーンにされると第２気筒群への吸入空気量を制御する第２のスロットル弁９ｂの開度が増大せしめられる。
【００９４】
【発明の効果】
いずれの気筒群から排出される未燃ＨＣ，ＣＯおよびＮＯｘを良好に浄化することができる。
【図面の簡単な説明】
【図１】内燃機関の全体図である。
【図２】空燃比センサの出力を示す図である。
【図３】三元触媒が新品のときの最大脱離量Ｇ１（Ｔｃ）および劣化係数ＤＫ１を示す図である。
【図４】三元触媒が新品のときの最大脱離量Ｇ２（Ｔｃ）および劣化係数ＤＫ２を示す図である。
【図５】基本燃料噴射時間ＴＡＵＢ１，ＴＡＵＢ２のマップを示す図である。
【図６】貯蔵酸素脱離量ＯＳＣ１の制御方法を説明するためのタイムチャートである。
【図７】修正係数ＫＯＳＣ１および速度比１／ｋ１のｋ１の値の更新方法を説明するためのタイムチャートである。
【図８】修正係数ＫＯＳＣ１および速度比１／ｋ１のｋ１の値の更新方法を説明するためのタイムチャートである。
【図９】修正係数ＫＯＳＣ１および速度比１／ｋ１のｋ１の値の更新方法を説明するためのタイムチャートである。
【図１０】修正係数ＫＯＳＣ１および速度比１／ｋ１のｋ１の値の更新方法を説明するためのタイムチャートである。
【図１１】修正係数ＫＯＳＣ１および速度比１／ｋ１のｋ１の値の更新方法を説明するためのタイムチャートである。
【図１２】修正係数ＫＯＳＣ１および速度比１／ｋ１のｋ１の値の更新方法を説明するためのタイムチャートである。
【図１３】空気量分配率を算出するためのルーチンである。
【図１４】貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２を算出するためのフローチャートである。
【図１５】貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２を算出するためのフローチャートである。
【図１６】貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２を算出するためのフローチャートである。
【図１７】貯蔵酸素脱離量ＯＳＣ１，ＯＳＣ２を算出するためのフローチャートである。
【図１８】燃料噴射時間ＴＡＵ１，ＴＡＵ２を算出するためのフローチャートである。
【図１９】燃料噴射時間ＴＡＵ１，ＴＡＵ２を算出するためのフローチャートである。
【図２０】第２実施例を示す内燃機関の全体図である。
【図２１】スロットル弁の目標開度ＴＡ１，ＴＡ２を示す図である。
【図２２】燃料噴射時間ＴＡＵ１，ＴＡＵ２を算出するためのフローチャートである。
【図２３】燃料噴射時間ＴＡＵ１，ＴＡＵ２を算出するためのフローチャートである。
【符号の説明】
５ａ，５ｂ…燃料噴射弁
７…エアフローメータ
１０ａ，１０ｂ…排気マニホルド
１１ａ，１１ｂ…三元触媒
１６ａ，１６ｂ…上流側空燃比センサ
１７ａ，１７ｂ…下流側空燃比センサ
【図１】
0003767062.tif 000002
【図２】
0003767062.tif 000003
【図３】
0003767062.tif 000004
【図４】
0003767062.tif 000005
【図５】
0003767062.tif 000006
【図６】
0003767062.tif 000007
【図７】
0003767062.tif 000008
【図８】
0003767062.tif 000009
【図９】
0003767062.tif 000010
【図１０】
0003767062.tif 000011
【図１１】
0003767062.tif 000012
【図１２】
0003767062.tif 000013
【図１３】
0003767062.tif 000014
【図１４】
0003767062.tif 000015
【図１５】
0003767062.tif 000016
【図１６】
0003767062.tif 000017
【図１７】
0003767062.tif 000018
【図１８】
0003767062.tif 000019
【図１９】
0003767062.tif 000020
【図２０】
0003767062.tif 000021
【図２１】
0003767062.tif 000022
【図２２】
0003767062.tif 000023
【図２３】
0003767062.tif 000024