JP3064547B2 - エンジンの空燃比制御装置 - Google Patents
エンジンの空燃比制御装置Info
- Publication number
- JP3064547B2 JP3064547B2 JP3226209A JP22620991A JP3064547B2 JP 3064547 B2 JP3064547 B2 JP 3064547B2 JP 3226209 A JP3226209 A JP 3226209A JP 22620991 A JP22620991 A JP 22620991A JP 3064547 B2 JP3064547 B2 JP 3064547B2
- Authority
- JP
- Japan
- Prior art keywords
- air
- fuel ratio
- sensor
- value
- ratio sensor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
Description
【0001】
【産業上の利用分野】本発明は、空燃比センサの異常を
確実に検出して空燃比制御に反映するエンジンの空燃比
制御装置に関する。
確実に検出して空燃比制御に反映するエンジンの空燃比
制御装置に関する。
【0002】
【従来の技術】周知のように、エンジンの空燃比フィー
ドバック制御においては、吸入空気量とエンジン回転数
とから定まる基本燃料噴射量を、排気系に設けたO2 セ
ンサなどの空燃比センサによるクロ−ズドル−プの補正
係数すなわち空燃比フィ−ドバック補正係数により補正
し、空燃比が目標空燃比(理論空燃比)となるようにし
ている。
ドバック制御においては、吸入空気量とエンジン回転数
とから定まる基本燃料噴射量を、排気系に設けたO2 セ
ンサなどの空燃比センサによるクロ−ズドル−プの補正
係数すなわち空燃比フィ−ドバック補正係数により補正
し、空燃比が目標空燃比(理論空燃比)となるようにし
ている。
【0003】従って、この空燃比センサに異常があると
フィードバック制御に狂いが生じ、空燃比が不適切とな
ってエンジン不調を生じるため、従来より、空燃比セン
サの異常を検出する方法が種々提案されており、例え
ば、特開昭60−173332号公報には、内燃機関が
特定運転状態の場合、基本燃料噴射量に対する減量補正
値が零であり、かつ基本燃料噴射量に対する増量補正値
が零でなく、空燃比センサの出力信号がリーンである場
合に、空燃比センサが異常であると判断することによ
り、実際の空燃比がリーンであっても正確な空燃比セン
サの異常検出を行なうことのできる技術が開示されてい
る。
フィードバック制御に狂いが生じ、空燃比が不適切とな
ってエンジン不調を生じるため、従来より、空燃比セン
サの異常を検出する方法が種々提案されており、例え
ば、特開昭60−173332号公報には、内燃機関が
特定運転状態の場合、基本燃料噴射量に対する減量補正
値が零であり、かつ基本燃料噴射量に対する増量補正値
が零でなく、空燃比センサの出力信号がリーンである場
合に、空燃比センサが異常であると判断することによ
り、実際の空燃比がリーンであっても正確な空燃比セン
サの異常検出を行なうことのできる技術が開示されてい
る。
【0004】
【発明が解決しようとする課題】しかしながら、エンジ
ン暖機再始動時などのように、実際の空燃比がリーンの
場合には、始動のための燃料増量によって空燃比が実際
にリッチ化するまでには時間遅れがあり、燃料の増量及
び減量補正値と空燃比センサの出力信号とから空燃比セ
ンサの異常検出を行なうと、誤判定となるおそれがあ
る。
ン暖機再始動時などのように、実際の空燃比がリーンの
場合には、始動のための燃料増量によって空燃比が実際
にリッチ化するまでには時間遅れがあり、燃料の増量及
び減量補正値と空燃比センサの出力信号とから空燃比セ
ンサの異常検出を行なうと、誤判定となるおそれがあ
る。
【0005】本発明は上記事情に鑑み、エンジン暖機再
始動時等においても、確実に空燃比センサの異常を検出
し、空燃比制御に反映することが可能なエンジンの空燃
比制御装置を提供することを目的とする。
始動時等においても、確実に空燃比センサの異常を検出
し、空燃比制御に反映することが可能なエンジンの空燃
比制御装置を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するため
本発明は、活性に伴いリッチ空燃比での出力値が上昇す
る空燃比センサをエンジンの排気系に配設すると共に、
上記空燃比センサの出力値に基づき該空燃比センサの活
性及び正常を判断し、空燃比センサが未活性或いは異常
と判断されるときは、空燃比オープンループ制御を継続
し、空燃比センサが活性且つ正常と判断されるとき、空
燃比オープンループ制御から空燃比センサの出力値に基
づく空燃比フィードバック制御に移行するエンジンの空
燃比制御装置において、エンジン冷却水温が空燃比セン
サ活性と見做し得る設定値以上で、空燃比センサの出力
値が断線時に取り得る中間値よりも高く完全にリッチ空
燃比と見做し得るリッチ判定基準電圧以上の状態、また
は、空燃比センサの出力値が上記中間値よりも低く空燃
比リーンと見做し得るリーン判定基準電圧と該リーン判
定基準電圧よりも低く設定され短絡を判断するための故
障判定電圧とによる電圧範囲内に在る状態が、所定時間
以上継続したとき、空燃比センサ活性且つ正常と判断
し、空燃比フィードバック制御に移行する第1の手段
と、エンジン始動の時間がエンジン始動直後の燃料増量
期間にあると見做し得る所定時間範囲内にあるとき、上
記リーン基準判定電圧よりも低く且つ上記故障判定電圧
よりも高く設定された設定値以上に、一度でも空燃比セ
ンサの出力値が上昇した場合は、エンジン冷却水温が空
燃比センサ活性と見做し得る設定値以上で、空燃比セン
サの出力値が上記リッチ判定基準電圧以上の状態または
上記リーン判定基準電圧未満の状態が、所定時間以上継
続したとき、空燃比センサ活性且つ正常と判断し、空燃
比フィードバック制御に移行する第2の手段と、上記条
件が何れも成立しないときは、空燃比センサが非活性或
いは空燃比センサ系の異常と判断し、空燃比オープンル
ープ制御を継続する第3の手段とを備えたことを特徴と
する。
本発明は、活性に伴いリッチ空燃比での出力値が上昇す
る空燃比センサをエンジンの排気系に配設すると共に、
上記空燃比センサの出力値に基づき該空燃比センサの活
性及び正常を判断し、空燃比センサが未活性或いは異常
と判断されるときは、空燃比オープンループ制御を継続
し、空燃比センサが活性且つ正常と判断されるとき、空
燃比オープンループ制御から空燃比センサの出力値に基
づく空燃比フィードバック制御に移行するエンジンの空
燃比制御装置において、エンジン冷却水温が空燃比セン
サ活性と見做し得る設定値以上で、空燃比センサの出力
値が断線時に取り得る中間値よりも高く完全にリッチ空
燃比と見做し得るリッチ判定基準電圧以上の状態、また
は、空燃比センサの出力値が上記中間値よりも低く空燃
比リーンと見做し得るリーン判定基準電圧と該リーン判
定基準電圧よりも低く設定され短絡を判断するための故
障判定電圧とによる電圧範囲内に在る状態が、所定時間
以上継続したとき、空燃比センサ活性且つ正常と判断
し、空燃比フィードバック制御に移行する第1の手段
と、エンジン始動の時間がエンジン始動直後の燃料増量
期間にあると見做し得る所定時間範囲内にあるとき、上
記リーン基準判定電圧よりも低く且つ上記故障判定電圧
よりも高く設定された設定値以上に、一度でも空燃比セ
ンサの出力値が上昇した場合は、エンジン冷却水温が空
燃比センサ活性と見做し得る設定値以上で、空燃比セン
サの出力値が上記リッチ判定基準電圧以上の状態または
上記リーン判定基準電圧未満の状態が、所定時間以上継
続したとき、空燃比センサ活性且つ正常と判断し、空燃
比フィードバック制御に移行する第2の手段と、上記条
件が何れも成立しないときは、空燃比センサが非活性或
いは空燃比センサ系の異常と判断し、空燃比オープンル
ープ制御を継続する第3の手段とを備えたことを特徴と
する。
【0007】
【作用】本発明は、エンジン冷却水温が空燃比センサ活
性と見做し得る設定値以上で、空燃比センサの出力値が
断線時に取り得る中間値よりも高く完全にリッチ空燃比
と見做し得るリッチ判定基準電圧以上の状態、または、
空燃比センサの出力値が上記中間値よりも低く空燃比リ
ーンと見做し得るリーン判定基準電圧と該リーン判定基
準電圧よりも低く設定され短絡を判断するための故障判
定電圧とによる電圧範囲内に在る状態が、所定時間以上
継続したとき、空燃比センサ活性且つ正常と判断し、空
燃比フィードバック制御に移行する。但し、エンジン始
動の時間がエンジン始動直後の燃料増量期間にあると見
做し得る所定時間範囲内にあるとき、上記リーン基準判
定電圧よりも低く且つ上記故障判定電圧よりも高く設定
された設定値以上に、一度でも空燃比センサの出力値が
上昇した場合は、エンジン冷却水温が空燃比センサ活性
と見做し得る設定値以上で、空燃比センサの出力値が上
記リッチ判定基準電圧以上の状態または上記リーン判定
基準電圧未満の状態が、所定時間以上継続したとき、空
燃比センサ活性且つ正常と判断し、空燃比フィードバッ
ク制御に移行する。
性と見做し得る設定値以上で、空燃比センサの出力値が
断線時に取り得る中間値よりも高く完全にリッチ空燃比
と見做し得るリッチ判定基準電圧以上の状態、または、
空燃比センサの出力値が上記中間値よりも低く空燃比リ
ーンと見做し得るリーン判定基準電圧と該リーン判定基
準電圧よりも低く設定され短絡を判断するための故障判
定電圧とによる電圧範囲内に在る状態が、所定時間以上
継続したとき、空燃比センサ活性且つ正常と判断し、空
燃比フィードバック制御に移行する。但し、エンジン始
動の時間がエンジン始動直後の燃料増量期間にあると見
做し得る所定時間範囲内にあるとき、上記リーン基準判
定電圧よりも低く且つ上記故障判定電圧よりも高く設定
された設定値以上に、一度でも空燃比センサの出力値が
上昇した場合は、エンジン冷却水温が空燃比センサ活性
と見做し得る設定値以上で、空燃比センサの出力値が上
記リッチ判定基準電圧以上の状態または上記リーン判定
基準電圧未満の状態が、所定時間以上継続したとき、空
燃比センサ活性且つ正常と判断し、空燃比フィードバッ
ク制御に移行する。
【0008】また、上記条件が何れも成立しないとき
は、空燃比センサが非活性或いは空燃比センサ系の異常
と判断し、空燃比オープンループ制御を継続する。
は、空燃比センサが非活性或いは空燃比センサ系の異常
と判断し、空燃比オープンループ制御を継続する。
【0009】
【実施例】以下、図面を参照して本発明の実施例を説明
する。図面は本発明の一実施例を示し、図1は第1O2
センサ側フィードバック制御条件判別手順のフローチャ
ート(その1)、図2は第1O2センサ側フィードバッ
ク制御条件判別手順のフローチャート(その2)、図3
は第1O2センサ側フィードバック制御条件判別手順の
フローチャート(その3)、図4は第2O2センサ側フ
ィードバック制御条件判別手順のフローチャート(その
1)、図5は第2O2センサ側フィードバック制御条件
判別手順のフローチャート(その2)、図6は第2O2
センサ側フィードバック制御条件判別手順のフローチャ
ート(その3)、図7は燃料噴射量設定手順のフローチ
ャート、図8はエンジン回転数算出及び気筒判別手順の
フローチャート、図9は燃料噴射開始設定手順のフロー
チャート、図10は燃料噴射手順のフローチャート、図
11は空燃比フィードバック補正係数設定手順のフロー
チャート、図12は第1空燃比フィードバック補正係数
演算手順のフローチャート(その1)、図13は第1空
燃比フィードバック補正係数演算手順のフローチャート
(その2)、図14は第2空燃比フィードバック補正係
数演算手順のフローチャート(その1)、図15は第2
空燃比フィードバック補正係数演算手順のフローチャー
ト(その2)、図16は空燃比フィードバック補正係数
初期設定及びタイマ設定手順のフローチャート(その
1)、図17は空燃比フィードバック補正係数初期設定
及びタイマ設定手順のフローチャート(その2)、図1
8は空燃比フィードバック補正係数初期設定及びタイマ
設定手順のフローチャート(その3)、図19はエンジ
ン制御系の概略図、図20はクランクロータとクランク
角センサの正面図、図21は図20の側面図、図22は
第1のクランクロータと第1のクランク角センサの正面
図、図23は第2のクランクロータと第2のクランク角
センサの正面図、図24はカムロータとカム角センサの
正面図、図25は制御装置の回路構成図、図26はO2
センサの出力特性図、図27はO2センサ出力電圧と空
燃比フィードバック補正係数との関係を示す説明図、図
28はエンジン冷態始動時の制御条件判定を示す説明
図、図29はエンジン暖機再始動時の制御条件判定を示
す説明図、図30はO2センサ系短絡状態における制御
条件判定を示す説明図、図31はO2センサ系断線状態
における制御条件判定を示す説明図、図32は燃料噴射
及び点火のタイミングチャートである。
する。図面は本発明の一実施例を示し、図1は第1O2
センサ側フィードバック制御条件判別手順のフローチャ
ート(その1)、図2は第1O2センサ側フィードバッ
ク制御条件判別手順のフローチャート(その2)、図3
は第1O2センサ側フィードバック制御条件判別手順の
フローチャート(その3)、図4は第2O2センサ側フ
ィードバック制御条件判別手順のフローチャート(その
1)、図5は第2O2センサ側フィードバック制御条件
判別手順のフローチャート(その2)、図6は第2O2
センサ側フィードバック制御条件判別手順のフローチャ
ート(その3)、図7は燃料噴射量設定手順のフローチ
ャート、図8はエンジン回転数算出及び気筒判別手順の
フローチャート、図9は燃料噴射開始設定手順のフロー
チャート、図10は燃料噴射手順のフローチャート、図
11は空燃比フィードバック補正係数設定手順のフロー
チャート、図12は第1空燃比フィードバック補正係数
演算手順のフローチャート(その1)、図13は第1空
燃比フィードバック補正係数演算手順のフローチャート
(その2)、図14は第2空燃比フィードバック補正係
数演算手順のフローチャート(その1)、図15は第2
空燃比フィードバック補正係数演算手順のフローチャー
ト(その2)、図16は空燃比フィードバック補正係数
初期設定及びタイマ設定手順のフローチャート(その
1)、図17は空燃比フィードバック補正係数初期設定
及びタイマ設定手順のフローチャート(その2)、図1
8は空燃比フィードバック補正係数初期設定及びタイマ
設定手順のフローチャート(その3)、図19はエンジ
ン制御系の概略図、図20はクランクロータとクランク
角センサの正面図、図21は図20の側面図、図22は
第1のクランクロータと第1のクランク角センサの正面
図、図23は第2のクランクロータと第2のクランク角
センサの正面図、図24はカムロータとカム角センサの
正面図、図25は制御装置の回路構成図、図26はO2
センサの出力特性図、図27はO2センサ出力電圧と空
燃比フィードバック補正係数との関係を示す説明図、図
28はエンジン冷態始動時の制御条件判定を示す説明
図、図29はエンジン暖機再始動時の制御条件判定を示
す説明図、図30はO2センサ系短絡状態における制御
条件判定を示す説明図、図31はO2センサ系断線状態
における制御条件判定を示す説明図、図32は燃料噴射
及び点火のタイミングチャートである。
【0010】[エンジン制御系の構成]図19におい
て、図中の符号1はエンジンであり、図においては4サ
イクル6気筒水平対向型エンジンを示す。このエンジン
1は、シリンダブロック2がクランクシャフト1aを中
心として両側のバンク(図の右側が左バンク、左側が右
バンク)に2分割されており、例えば、右バンクに#
1,#3,#5気筒の気筒群が配置され、左バンクに#
2,#4,#6気筒の気筒群が配置されている。
て、図中の符号1はエンジンであり、図においては4サ
イクル6気筒水平対向型エンジンを示す。このエンジン
1は、シリンダブロック2がクランクシャフト1aを中
心として両側のバンク(図の右側が左バンク、左側が右
バンク)に2分割されており、例えば、右バンクに#
1,#3,#5気筒の気筒群が配置され、左バンクに#
2,#4,#6気筒の気筒群が配置されている。
【0011】上記各バンクの各シリンダヘッド3には、
それぞれ吸気ポート4が形成され、各吸気ポート4にイ
ンテークマニホルド5が連通されている。また、上記イ
ンテークマニホルド5の上流に、各バンクに対応して共
鳴管6a,6bが連通され、この各共鳴管6a,6b間
を結ぶ通路6cに可変吸気バルブ11cが介装されてい
る。尚、この共鳴管6a,6b、通路6c、可変吸気バ
ルブ11cで可変共鳴過給システムが構成されている。
それぞれ吸気ポート4が形成され、各吸気ポート4にイ
ンテークマニホルド5が連通されている。また、上記イ
ンテークマニホルド5の上流に、各バンクに対応して共
鳴管6a,6bが連通され、この各共鳴管6a,6b間
を結ぶ通路6cに可変吸気バルブ11cが介装されてい
る。尚、この共鳴管6a,6b、通路6c、可変吸気バ
ルブ11cで可変共鳴過給システムが構成されている。
【0012】さらに、各共鳴管6a,6bの上流がスロ
ットルチャンバ11a,11bを介してサージタンク7
に連通されており、このサージタンク7上流側に、吸気
管8を介してエアクリーナ9が取付けられ、このエアク
リーナ9の直下流に、吸入空気量センサ(図において
は、ホットフィルム式エアフローメータ)10が介装さ
れている。
ットルチャンバ11a,11bを介してサージタンク7
に連通されており、このサージタンク7上流側に、吸気
管8を介してエアクリーナ9が取付けられ、このエアク
リーナ9の直下流に、吸入空気量センサ(図において
は、ホットフィルム式エアフローメータ)10が介装さ
れている。
【0013】また、上記各スロットルチャンバ11a,
11bに、スロットルバルブ11c,11d(いわゆ
る、ツインスロットルバルブ)が介装され、一方のスロ
ットルバルブ11dに、スロットル開度センサ12aと
スロットルバルブ全閉を検出するアイドルスイッチ12
bとが連設されている。
11bに、スロットルバルブ11c,11d(いわゆ
る、ツインスロットルバルブ)が介装され、一方のスロ
ットルバルブ11dに、スロットル開度センサ12aと
スロットルバルブ全閉を検出するアイドルスイッチ12
bとが連設されている。
【0014】さらに、上記スロットルチャンバ11a,
11bのスロットルバルブ11c,11dの下流側が通
路6dによって連通され、この通路6dと上記サージタ
ンク7とを連通するエアーバイパス通路6eに、アイド
ルスピードコントロール(ISC)バルブ13が介装さ
れている。
11bのスロットルバルブ11c,11dの下流側が通
路6dによって連通され、この通路6dと上記サージタ
ンク7とを連通するエアーバイパス通路6eに、アイド
ルスピードコントロール(ISC)バルブ13が介装さ
れている。
【0015】また、上記インテークマニホルド5の各気
筒の各吸気ポート4の直上流側にインジェクタ14が配
設され、さらに、上記各シリンダヘッド3の各気筒毎
に、その先端を燃焼室に露呈する点火プラグ15が取付
けられている。この点火プラグ15の端子部には、点火
コイル15aが直接取付けられ、イグナイタ16に接続
されている。
筒の各吸気ポート4の直上流側にインジェクタ14が配
設され、さらに、上記各シリンダヘッド3の各気筒毎
に、その先端を燃焼室に露呈する点火プラグ15が取付
けられている。この点火プラグ15の端子部には、点火
コイル15aが直接取付けられ、イグナイタ16に接続
されている。
【0016】上記インジェクタ14には、燃料タンク1
7内に設けられたインタンク式の燃料ポンプ18から燃
料フィルタ19を経て燃料が圧送され、プレッシャレギ
ュレータ20にて調圧される。
7内に設けられたインタンク式の燃料ポンプ18から燃
料フィルタ19を経て燃料が圧送され、プレッシャレギ
ュレータ20にて調圧される。
【0017】また、上記シリンダブロック2に形成され
た冷却水通路(図示せず)に冷却水温センサ21が臨ま
されるとともに、上記シリンダブロック2の各バンク
に、それぞれ、右バンクノックセンサ22a、左バンク
ノックセンサ22bが取付けられており、上記各シリン
ダヘッド3の各排気ポート23から、各バンク毎に設け
た各排気管24a,24bが連通されている。
た冷却水通路(図示せず)に冷却水温センサ21が臨ま
されるとともに、上記シリンダブロック2の各バンク
に、それぞれ、右バンクノックセンサ22a、左バンク
ノックセンサ22bが取付けられており、上記各シリン
ダヘッド3の各排気ポート23から、各バンク毎に設け
た各排気管24a,24bが連通されている。
【0018】上記各ノックセンサ22a,22bは、例
えばノック振動とほぼ同じ固有周波数を持つ振動子と、
この振動子の振動加速度を検知して電気信号に変換する
圧電素子とから構成される共振形のノックセンサであ
り、エンジンの爆発行程における燃焼圧力波によりシリ
ンダブロックなどに伝わる振動を検出し、その振動波形
に応じた検出信号を出力する。
えばノック振動とほぼ同じ固有周波数を持つ振動子と、
この振動子の振動加速度を検知して電気信号に変換する
圧電素子とから構成される共振形のノックセンサであ
り、エンジンの爆発行程における燃焼圧力波によりシリ
ンダブロックなどに伝わる振動を検出し、その振動波形
に応じた検出信号を出力する。
【0019】また、上記各排気管24a,24bには、
空燃比センサとしての第1,第2のO2センサ25a,
25bがそれぞれ臨まされ、第1のO2 センサ25aに
より右バンクの気筒群からの排気ガス中の酸素濃度が検
出されるとともに、第2のO2 センサ25bにより左バ
ンクの気筒群からの排気ガス中の酸素濃度が検出され
る。さらに、これらの第1,第2のO2 センサ25a,
25bの下流側には、それぞれ、触媒コンバータ26
a,26bが介装され、各触媒コンバータ26a,26
bの下流側合流部に、触媒コンバータ27が介装されて
いる。
空燃比センサとしての第1,第2のO2センサ25a,
25bがそれぞれ臨まされ、第1のO2 センサ25aに
より右バンクの気筒群からの排気ガス中の酸素濃度が検
出されるとともに、第2のO2 センサ25bにより左バ
ンクの気筒群からの排気ガス中の酸素濃度が検出され
る。さらに、これらの第1,第2のO2 センサ25a,
25bの下流側には、それぞれ、触媒コンバータ26
a,26bが介装され、各触媒コンバータ26a,26
bの下流側合流部に、触媒コンバータ27が介装されて
いる。
【0020】上記第1,第2のO2 センサ25a,25
bは、例えば、周知のジルコニア管の内外面に白金電極
がコーティングされたものであり、図26に示すよう
に、高温で活性化すると、理論空燃比を境として空燃比
リッチ側と空燃比リーン側とで出力電圧VO2の値が急変
する。
bは、例えば、周知のジルコニア管の内外面に白金電極
がコーティングされたものであり、図26に示すよう
に、高温で活性化すると、理論空燃比を境として空燃比
リッチ側と空燃比リーン側とで出力電圧VO2の値が急変
する。
【0021】尚、第1,第2のO2 センサ25a,25
bには、活性化を促進するために、PTCピル(Positi
ve Temperature Coefficient Pill)などからなるヒー
タ(図示せず)が内蔵されている。
bには、活性化を促進するために、PTCピル(Positi
ve Temperature Coefficient Pill)などからなるヒー
タ(図示せず)が内蔵されている。
【0022】一方、上記エンジン1のクランクシャフト
1aには、クランクスプロケット1bが軸着され、この
クランクスプロケット1bにタイミングベルト28が張
設されている(図21参照)。そして、上記クランクシ
ャフト1aの回転が上記タイミングベルト28を介して
カムシャフト1cに伝達され、このカムシャフト1cが
上記クランクシャフト1aに対し1/2 回転する。
1aには、クランクスプロケット1bが軸着され、この
クランクスプロケット1bにタイミングベルト28が張
設されている(図21参照)。そして、上記クランクシ
ャフト1aの回転が上記タイミングベルト28を介して
カムシャフト1cに伝達され、このカムシャフト1cが
上記クランクシャフト1aに対し1/2 回転する。
【0023】また、上記クランクシャフト1aにクラン
ク角検出用の第1のクランクロータ29と、グループ
(#1,#2気筒、#3,#4気筒、及び、#5,#6
気筒の3グループ)気筒判別用の第2のクランクロータ
30とが軸着され、第1,第2のクランクロータ29,
30の外周に、被検出体である突起を検出する電磁ピッ
クアップなどからなる第1,第2のクランク角センサ3
1,32が、それぞれ対設されている。また、上記カム
シャフト1cにカムロータ33が軸着され、このカムロ
ータ33の外周に電磁ピックアップなどからなるカム角
センサ34が対設されている。
ク角検出用の第1のクランクロータ29と、グループ
(#1,#2気筒、#3,#4気筒、及び、#5,#6
気筒の3グループ)気筒判別用の第2のクランクロータ
30とが軸着され、第1,第2のクランクロータ29,
30の外周に、被検出体である突起を検出する電磁ピッ
クアップなどからなる第1,第2のクランク角センサ3
1,32が、それぞれ対設されている。また、上記カム
シャフト1cにカムロータ33が軸着され、このカムロ
ータ33の外周に電磁ピックアップなどからなるカム角
センサ34が対設されている。
【0024】図21に示すように、上記各クランクロー
タ29,30は、所定の間隔L2 をもって互いに近接し
て軸着され、各クランクロータ29,30の外周に、上
記各クランク角センサ31,32が所定のクリアランス
Sを介して対設されている。また、上記各クランクロー
タ29,30の間隔L2 は、各クランク角センサ31,
32の間隔L1 ( 上記クランクシャフト1aの軸方向の
間隔)よりも小さく、従って、上記第1のクランク角セ
ンサ31の軸中心は、上記第1のクランクロータ29
(クランク角検出用クランクロータ)の板厚中心に対し
て上記クランクスプロケット1b側へ僅かにオフセット
しており、また、上記第2のクランク角センサ32の軸
中心は、上記第2のクランクロータ30(グループ気筒
判別用クランクロータ)の板厚中心に対して上記エンジ
ン1の本体側へ僅かにオフセットしている。
タ29,30は、所定の間隔L2 をもって互いに近接し
て軸着され、各クランクロータ29,30の外周に、上
記各クランク角センサ31,32が所定のクリアランス
Sを介して対設されている。また、上記各クランクロー
タ29,30の間隔L2 は、各クランク角センサ31,
32の間隔L1 ( 上記クランクシャフト1aの軸方向の
間隔)よりも小さく、従って、上記第1のクランク角セ
ンサ31の軸中心は、上記第1のクランクロータ29
(クランク角検出用クランクロータ)の板厚中心に対し
て上記クランクスプロケット1b側へ僅かにオフセット
しており、また、上記第2のクランク角センサ32の軸
中心は、上記第2のクランクロータ30(グループ気筒
判別用クランクロータ)の板厚中心に対して上記エンジ
ン1の本体側へ僅かにオフセットしている。
【0025】さらに、図20に示すように、上記各クラ
ンク角センサ31,32は、上記クランクシャフト1a
の軸中心に対して所定の開き角θ0 (例えば25°)で
配置され、上記各クランク角センサ31,32を被検出
体が通過する際に生じる磁束変化により互いに影響を受
けてノイズが発生しないよう所定の空間的距離が保たれ
る。
ンク角センサ31,32は、上記クランクシャフト1a
の軸中心に対して所定の開き角θ0 (例えば25°)で
配置され、上記各クランク角センサ31,32を被検出
体が通過する際に生じる磁束変化により互いに影響を受
けてノイズが発生しないよう所定の空間的距離が保たれ
る。
【0026】すなわち、上記各クランクロータ29,3
0の軸方向の取付け長さが最小にされるとともに上記ク
ランク角センサ31,32の相互干渉が防止されてコン
パクト化を図ることができ、上記各クランクロータ2
9,30の構成を簡単にすることができる。
0の軸方向の取付け長さが最小にされるとともに上記ク
ランク角センサ31,32の相互干渉が防止されてコン
パクト化を図ることができ、上記各クランクロータ2
9,30の構成を簡単にすることができる。
【0027】また、上記クランク角検出用の第1のクラ
ンクロータ29は、図22に示すように、その外周に突
起29aが形成されており、また、上記グループ気筒判
別用の第2のクランクロータ30は、図23に示すよう
に、その外周にグループ気筒判別用の突起30aが形成
されている。
ンクロータ29は、図22に示すように、その外周に突
起29aが形成されており、また、上記グループ気筒判
別用の第2のクランクロータ30は、図23に示すよう
に、その外周にグループ気筒判別用の突起30aが形成
されている。
【0028】そして、上記各クランク角センサ31,3
2を上記各突起29a,30aが通過する際に磁束を変
化させ、その結果、電磁誘導により上記各クランク角セ
ンサ31,32から交流電圧の信号列が出力され、それ
ぞれ、クランクパルス、グループ判別パルスに変換され
る。
2を上記各突起29a,30aが通過する際に磁束を変
化させ、その結果、電磁誘導により上記各クランク角セ
ンサ31,32から交流電圧の信号列が出力され、それ
ぞれ、クランクパルス、グループ判別パルスに変換され
る。
【0029】上記クランク角検出用の第1のクランクロ
ータ29は、詳細には、突起29aが、例えば、各気筒
の圧縮上死点前(BTDC)10°を起点として30°
間隔で等間隔に形成され、この突起29aを検出する上
記第1のクランク角センサ31からの信号が波形整形さ
れ、クランク角30°毎のクランクパルスが得られるよ
うになっている。
ータ29は、詳細には、突起29aが、例えば、各気筒
の圧縮上死点前(BTDC)10°を起点として30°
間隔で等間隔に形成され、この突起29aを検出する上
記第1のクランク角センサ31からの信号が波形整形さ
れ、クランク角30°毎のクランクパルスが得られるよ
うになっている。
【0030】図32に示すように、例えば、BTDC1
00°を示すクランクパルスは、燃料噴射時期設定の際
の基準クランク角を示し、BTDC70°を示すクラン
クパルスは、エンジン回転数NEの算出及び点火時期A
DVの設定の際の基準クランク角を示す。尚、BTDC
10°を示すクランクパルスは、始動時の固定点火時期
のクランク角を示す。
00°を示すクランクパルスは、燃料噴射時期設定の際
の基準クランク角を示し、BTDC70°を示すクラン
クパルスは、エンジン回転数NEの算出及び点火時期A
DVの設定の際の基準クランク角を示す。尚、BTDC
10°を示すクランクパルスは、始動時の固定点火時期
のクランク角を示す。
【0031】また、上記グループ気筒判別用の第2のク
ランクロータ30の突起30aは、例えば、#1,#2
気筒のBTDC55°の位置に1個形成され、#3,#
4気筒のBTDC55°の位置から30°毎に2個、#
5,#6気筒のBTDC55°の位置から30°毎に3
個形成されており、上記突起30aを検出する上記第2
のクランク角センサ32からの信号が同様に波形整形さ
れ、グループ判別パルスが得られる。
ランクロータ30の突起30aは、例えば、#1,#2
気筒のBTDC55°の位置に1個形成され、#3,#
4気筒のBTDC55°の位置から30°毎に2個、#
5,#6気筒のBTDC55°の位置から30°毎に3
個形成されており、上記突起30aを検出する上記第2
のクランク角センサ32からの信号が同様に波形整形さ
れ、グループ判別パルスが得られる。
【0032】一方、図24に示すように、上記カムロー
タ33には、特定気筒の圧縮上死点を判別するため、例
えば#1気筒の圧縮上死点後(ATDC)43.2°の
位置に、突起33aが1個形成されており、カム角セン
サ34からのカムパルスと上記グループ判別パルスとに
より、個々の気筒を判別することができる。
タ33には、特定気筒の圧縮上死点を判別するため、例
えば#1気筒の圧縮上死点後(ATDC)43.2°の
位置に、突起33aが1個形成されており、カム角セン
サ34からのカムパルスと上記グループ判別パルスとに
より、個々の気筒を判別することができる。
【0033】尚、上記第1,第2のクランクロータ2
9,30、あるいは、上記カムロータ33の外周には、
突起の代わりにスリットを設けても良く、さらには、上
記第1,第2のクランク角センサ31,32、及び、カ
ム角センサ34は、電磁ピックアップなどの磁気センサ
に限らず、光センサなどでも良い。
9,30、あるいは、上記カムロータ33の外周には、
突起の代わりにスリットを設けても良く、さらには、上
記第1,第2のクランク角センサ31,32、及び、カ
ム角センサ34は、電磁ピックアップなどの磁気センサ
に限らず、光センサなどでも良い。
【0034】[制御装置の回路構成]図25において、
符号40は、マイクロコンピュータからなる制御装置
(ECU)であり、このECU40は、例えば、点火時
期制御、燃料噴射制御などを行なうメインコンピュータ
41と、例えば、ノック検出処理を行なう専用のサブコ
ンピュータ42との2つのコンピュータから構成されて
いる。
符号40は、マイクロコンピュータからなる制御装置
(ECU)であり、このECU40は、例えば、点火時
期制御、燃料噴射制御などを行なうメインコンピュータ
41と、例えば、ノック検出処理を行なう専用のサブコ
ンピュータ42との2つのコンピュータから構成されて
いる。
【0035】また、上記ECU40内には定電圧回路4
3が内蔵され、この定電圧回路43から各部に安定化電
圧が供給されるようになっている。この定電圧回路43
は、直接、及び、ECUリレー44のリレー接点を介し
てバッテリ45に接続され、上記ECUリレー44のリ
レーコイルがキースイッチ46を介して上記バッテリ4
5に接続されている。また、上記バッテリ45に、燃料
ポンプリレー47のリレー接点を介して燃料ポンプ18
が接続されている。
3が内蔵され、この定電圧回路43から各部に安定化電
圧が供給されるようになっている。この定電圧回路43
は、直接、及び、ECUリレー44のリレー接点を介し
てバッテリ45に接続され、上記ECUリレー44のリ
レーコイルがキースイッチ46を介して上記バッテリ4
5に接続されている。また、上記バッテリ45に、燃料
ポンプリレー47のリレー接点を介して燃料ポンプ18
が接続されている。
【0036】上記メインコンピュータ41は、メインC
PU48、ROM49、RAM50、バックアップRA
M50a、タイマ51、シリアルインターフェース(S
CI)52、及び、I/O インターフェース53がバ
スライン54を介して互いに接続されている。また、上
記バックアップRAM50aには、上記定電圧回路43
を介して常時バックアップ電圧が印加されている。
PU48、ROM49、RAM50、バックアップRA
M50a、タイマ51、シリアルインターフェース(S
CI)52、及び、I/O インターフェース53がバ
スライン54を介して互いに接続されている。また、上
記バックアップRAM50aには、上記定電圧回路43
を介して常時バックアップ電圧が印加されている。
【0037】上記I/O インターフェース53の入力
ポートには、吸入空気量センサ10、スロットル開度セ
ンサ12a、冷却水温センサ21、第1のO2センサ2
5a、第2のO2センサ25b、大気圧センサ55、及
び、車速センサ56がA/D変換器57aを介して接続
されるとともに、アイドルスイッチ(アイドルSW)1
2b、第1,第2のクランク角センサ31,32、カム
角センサ34が接続され、また、上記バッテリ45が接
続されてバッテリ電圧がモニタされる。
ポートには、吸入空気量センサ10、スロットル開度セ
ンサ12a、冷却水温センサ21、第1のO2センサ2
5a、第2のO2センサ25b、大気圧センサ55、及
び、車速センサ56がA/D変換器57aを介して接続
されるとともに、アイドルスイッチ(アイドルSW)1
2b、第1,第2のクランク角センサ31,32、カム
角センサ34が接続され、また、上記バッテリ45が接
続されてバッテリ電圧がモニタされる。
【0038】さらに、上記I/O インターフェース5
3の入力ポートには、転舵状態を検出するパワーステア
リング転舵スイッチ58、オートマチックトランスミッ
ションのセレクトレバーがニュートラルにセットされて
いるかどうかを判断するニュートラルスイッチ59、パ
ーキングにセットされているかどうかを判断するパーキ
ングスイッチ60、始動状態を検出するスタータスイッ
チ61が接続されている。
3の入力ポートには、転舵状態を検出するパワーステア
リング転舵スイッチ58、オートマチックトランスミッ
ションのセレクトレバーがニュートラルにセットされて
いるかどうかを判断するニュートラルスイッチ59、パ
ーキングにセットされているかどうかを判断するパーキ
ングスイッチ60、始動状態を検出するスタータスイッ
チ61が接続されている。
【0039】上記I/O インターフェース53の出力
ポートには、イグナイタ16が接続され、さらに、駆動
回路57bを介して、ISCバルブ13、インジェクタ
14、ラジエータファン62の駆動を制御するラジエー
タファンリレー63のリレーコイル、可変容量コンプレ
ッサ64のマグネットクラッチ64aの断続を操作する
エアコンクラッチリレー65のリレーコイル、及び、燃
料ポンプリレー47のリレーコイルが接続されている。
ポートには、イグナイタ16が接続され、さらに、駆動
回路57bを介して、ISCバルブ13、インジェクタ
14、ラジエータファン62の駆動を制御するラジエー
タファンリレー63のリレーコイル、可変容量コンプレ
ッサ64のマグネットクラッチ64aの断続を操作する
エアコンクラッチリレー65のリレーコイル、及び、燃
料ポンプリレー47のリレーコイルが接続されている。
【0040】一方、サブコンピュータ42は、サブCP
U66、ROM67、RAM68、タイマ69、SCI
70、及び、I/Oインターフェース71がバスライン
72を介して互いに接続されて構成されている。
U66、ROM67、RAM68、タイマ69、SCI
70、及び、I/Oインターフェース71がバスライン
72を介して互いに接続されて構成されている。
【0041】上記I/Oインターフェース71の入力ポ
ートには、第1,第2のクランク角センサ31,32、
及び、カム角センサ34が接続されるとともに、右バン
クノックセンサ22a、左バンクノックセンサ22b
が、それぞれ、アンプ73、周波数フィルタ74、A/
D変換器75を介して接続されている。
ートには、第1,第2のクランク角センサ31,32、
及び、カム角センサ34が接続されるとともに、右バン
クノックセンサ22a、左バンクノックセンサ22b
が、それぞれ、アンプ73、周波数フィルタ74、A/
D変換器75を介して接続されている。
【0042】上記各ノックセンサ22a,22bからの
検出信号は、上記アンプ73により所定のレベルに増幅
された後、上記周波数フィルタ74により必要な周波数
成分が抽出され、A/D変換器75でアナログデータか
らデジタルデータに変換され、上記サブコンピュータ4
2にてノック発生の有無が判定される。
検出信号は、上記アンプ73により所定のレベルに増幅
された後、上記周波数フィルタ74により必要な周波数
成分が抽出され、A/D変換器75でアナログデータか
らデジタルデータに変換され、上記サブコンピュータ4
2にてノック発生の有無が判定される。
【0043】メインコンピュータ41とサブコンピュー
タ42とは、SCI52,70を介したシリアル回線に
より接続されるとともに、上記サブコンピュータ42の
I/Oインターフェース71の出力ポートが、上記メイ
ンコンピュータ41のI/Oインターフェース53の入
力ポートに接続されており、サブコンピュータ42にお
けるノック発生の有無の判定結果すなわちノック判定デ
ータは、I/Oインターフェース71,53を介してメ
インコンピュータ41に読込まれる。
タ42とは、SCI52,70を介したシリアル回線に
より接続されるとともに、上記サブコンピュータ42の
I/Oインターフェース71の出力ポートが、上記メイ
ンコンピュータ41のI/Oインターフェース53の入
力ポートに接続されており、サブコンピュータ42にお
けるノック発生の有無の判定結果すなわちノック判定デ
ータは、I/Oインターフェース71,53を介してメ
インコンピュータ41に読込まれる。
【0044】そして、ノック発生の場合には、SCI7
0,52を介したシリアル回線を通じてサブコンピュー
タ42から上記メインコンピュータ41にノックデータ
が送信され、その結果、メインコンピュータ41では、
このノックデータに基づいて直ちに該当気筒の点火時期
を遅らせ、ノックを回避する。
0,52を介したシリアル回線を通じてサブコンピュー
タ42から上記メインコンピュータ41にノックデータ
が送信され、その結果、メインコンピュータ41では、
このノックデータに基づいて直ちに該当気筒の点火時期
を遅らせ、ノックを回避する。
【0045】以上の構成のECU40における空燃比制
御は、メインコンピュータ41のメインCPU48によ
り、ROM49に記憶されている制御プログラムに従っ
て実行される。すなわち、メインCPU48では、吸入
空気量センサ10の出力信号から吸入空気量を算出し、
RAM50及びバックアップRAM50aに記憶されて
いる各種データに基づき、吸入空気量に見合った燃料噴
射量を演算し、また、点火時期を算出する。
御は、メインコンピュータ41のメインCPU48によ
り、ROM49に記憶されている制御プログラムに従っ
て実行される。すなわち、メインCPU48では、吸入
空気量センサ10の出力信号から吸入空気量を算出し、
RAM50及びバックアップRAM50aに記憶されて
いる各種データに基づき、吸入空気量に見合った燃料噴
射量を演算し、また、点火時期を算出する。
【0046】そして、上記燃料噴射量に相応する駆動パ
ルス幅信号を、駆動回路57bを介して所定のタイミン
グで該当気筒のインジェクタ14に出力して燃料を噴射
し、また、所定のタイミングでイグナイタ16に点火信
号を出力し、該当気筒の点火プラグ15を点火する。
ルス幅信号を、駆動回路57bを介して所定のタイミン
グで該当気筒のインジェクタ14に出力して燃料を噴射
し、また、所定のタイミングでイグナイタ16に点火信
号を出力し、該当気筒の点火プラグ15を点火する。
【0047】その結果、該当気筒に供給された混合気が
爆発燃焼し、排気管24aに臨まされた第1のO2 セン
サ25a、あるいは、排気管24bに臨まされた第2の
O2センサ25bにより排出ガス中に含まれる酸素濃度
が検出される。この検出信号が波形整形された後、上記
CPU48で基準電圧信号と比較され、エンジンの空燃
比状態が目標空燃比に対し、リッチ側にあるか、リーン
側にあるかが判別され、空燃比が目標空燃比となるよう
フィードバック制御される。
爆発燃焼し、排気管24aに臨まされた第1のO2 セン
サ25a、あるいは、排気管24bに臨まされた第2の
O2センサ25bにより排出ガス中に含まれる酸素濃度
が検出される。この検出信号が波形整形された後、上記
CPU48で基準電圧信号と比較され、エンジンの空燃
比状態が目標空燃比に対し、リッチ側にあるか、リーン
側にあるかが判別され、空燃比が目標空燃比となるよう
フィードバック制御される。
【0048】また、符号81はエアコン制御ユニットで
あり、CPU82、ROM83、RAM84、I/Oイ
ンターフェース85がバスライン86を介して接続さ
れ、イグニッションスイッチ87を介してバッテリ45
に接続する定電圧回路88から各部に安定化電圧が供給
される。
あり、CPU82、ROM83、RAM84、I/Oイ
ンターフェース85がバスライン86を介して接続さ
れ、イグニッションスイッチ87を介してバッテリ45
に接続する定電圧回路88から各部に安定化電圧が供給
される。
【0049】上記I/Oインターフェース85の入力ポ
ートには、エアコンスイッチ89、上記メインコンピュ
ータ41のI/Oインターフェース53が接続されてお
り、上記メインコンピュータ41から上記エアコン制御
ユニット81へ上記可変容量コンプレッサ64に対する
要求容量信号(DUTY信号)を出力する。
ートには、エアコンスイッチ89、上記メインコンピュ
ータ41のI/Oインターフェース53が接続されてお
り、上記メインコンピュータ41から上記エアコン制御
ユニット81へ上記可変容量コンプレッサ64に対する
要求容量信号(DUTY信号)を出力する。
【0050】また、上記I/Oインターフェース85の
出力ポートには、上記可変容量コンプレッサ64に設け
た可変容量制御バルブ(図示せず)が接続されて、容量
信号信号(DUTY信号)を出力するとともに、上記メ
インコンピュータ41のI/Oインターフェース53の
入力ポートに接続されて、エアコンスイッチ89がON
したどうかの信号(A/C SW信号)が出力される。
出力ポートには、上記可変容量コンプレッサ64に設け
た可変容量制御バルブ(図示せず)が接続されて、容量
信号信号(DUTY信号)を出力するとともに、上記メ
インコンピュータ41のI/Oインターフェース53の
入力ポートに接続されて、エアコンスイッチ89がON
したどうかの信号(A/C SW信号)が出力される。
【0051】[動 作]次に、ECU40の空燃比制御
動作を説明するとともに、第1,第2のO2センサ25
a,25bに対する異常検出処理について説明する。
動作を説明するとともに、第1,第2のO2センサ25
a,25bに対する異常検出処理について説明する。
【0052】ECU40のメインコンピュータ41で
は、まず、図8に示すように、クランクパルス入力によ
って、エンジン回転数算出及び気筒判別手順のルーチン
が割込み起動され、ステップS201で、第1のクランク角
センサ31からのクランクパルス入力間隔時間T0 をタ
イマ51により計測し、この入力間隔時間T0 から求ま
る周期によりエンジン回転数NEを算出し、ステップS20
2で、第1,第2のクランク角センサ31,32、及
び、カム角センサ34の出力信号に基づいて気筒判別を
行ない、ルーチンを抜ける。
は、まず、図8に示すように、クランクパルス入力によ
って、エンジン回転数算出及び気筒判別手順のルーチン
が割込み起動され、ステップS201で、第1のクランク角
センサ31からのクランクパルス入力間隔時間T0 をタ
イマ51により計測し、この入力間隔時間T0 から求ま
る周期によりエンジン回転数NEを算出し、ステップS20
2で、第1,第2のクランク角センサ31,32、及
び、カム角センサ34の出力信号に基づいて気筒判別を
行ない、ルーチンを抜ける。
【0053】この気筒判別は、図32のタイミングチャ
ートに示すように、第2のクランク角センサ32からの
グループ判別パルスが、30°CA毎のクランクパルス
間に0個ないし1個出力され、BTDC100°とBT
DC70°との間には、いずれの気筒においてもグルー
プ判別パルスは存在せず、上記グループ判別パルスが、
無し、有りのパターンの後のクランクパルスは、常にB
TDC40°を示し、次のクランクパルスはBTDC1
0°を示すことから、例えば、ある気筒のBTDC10
0°を起点として次の気筒のBTDC100°までの間
に存在するグループ判別パルスのパターンを調べること
により、まず、#1,#2気筒、#3,#4気筒、#
5,#6気筒の各グループ毎の気筒判別を行ない、さら
に、カム角センサ34からのカムパルスにより、個々の
気筒を判別する。
ートに示すように、第2のクランク角センサ32からの
グループ判別パルスが、30°CA毎のクランクパルス
間に0個ないし1個出力され、BTDC100°とBT
DC70°との間には、いずれの気筒においてもグルー
プ判別パルスは存在せず、上記グループ判別パルスが、
無し、有りのパターンの後のクランクパルスは、常にB
TDC40°を示し、次のクランクパルスはBTDC1
0°を示すことから、例えば、ある気筒のBTDC10
0°を起点として次の気筒のBTDC100°までの間
に存在するグループ判別パルスのパターンを調べること
により、まず、#1,#2気筒、#3,#4気筒、#
5,#6気筒の各グループ毎の気筒判別を行ない、さら
に、カム角センサ34からのカムパルスにより、個々の
気筒を判別する。
【0054】メインコンピュータ41では、各バンクに
対応する第1,第2のO2センサ25a,25bからの
出力信号を取込み、気筒判別した該当気筒に対する空燃
比をフィードバック制御する。
対応する第1,第2のO2センサ25a,25bからの
出力信号を取込み、気筒判別した該当気筒に対する空燃
比をフィードバック制御する。
【0055】その際、燃料噴射量は、図7のフローチャ
ートに示す燃料噴射量設定のルーチンにより左右バンク
に対応して2つ設定され、第1のO2センサ25aから
の出力に基づく右バンクの気筒群の空燃比学習結果が取
入れられる。
ートに示す燃料噴射量設定のルーチンにより左右バンク
に対応して2つ設定され、第1のO2センサ25aから
の出力に基づく右バンクの気筒群の空燃比学習結果が取
入れられる。
【0056】まず、ステップS101で、エンジン回転数N
E及び吸入空気量Qに基づいて基本燃料噴射パルス幅TP
を算出し(TP←K×Q/NE;但し、Kはインジェクタ
特性補正係数)、ステップS102で、冷却水温センサ21
からの冷却水温TW、スロットル開度センサ12aから
のスロットル開度θ、アイドルスイッチ12bからの出
力などに基づいて、冷却水温補正、加減速補正、全開増
量補正、アイドル後増量補正などに係わる各種増量分補
正係数COEFを設定する。
E及び吸入空気量Qに基づいて基本燃料噴射パルス幅TP
を算出し(TP←K×Q/NE;但し、Kはインジェクタ
特性補正係数)、ステップS102で、冷却水温センサ21
からの冷却水温TW、スロットル開度センサ12aから
のスロットル開度θ、アイドルスイッチ12bからの出
力などに基づいて、冷却水温補正、加減速補正、全開増
量補正、アイドル後増量補正などに係わる各種増量分補
正係数COEFを設定する。
【0057】次いで、ステップS103へ進み、後述する空
燃比フィードバック補正係数設定ルーチンにて設定され
る各バンクの気筒群に対する第1,第2空燃比フィード
バック補正係数α1,α2をRAM50の所定アドレスか
ら読出し、ステップS104で、学習補正係数KBLRCを設定
すると、ステップS105で、バッテリ電圧に基づいてイン
ジェクタ14の無効噴射時間を補間する電圧補正係数T
Sを設定する。
燃比フィードバック補正係数設定ルーチンにて設定され
る各バンクの気筒群に対する第1,第2空燃比フィード
バック補正係数α1,α2をRAM50の所定アドレスか
ら読出し、ステップS104で、学習補正係数KBLRCを設定
すると、ステップS105で、バッテリ電圧に基づいてイン
ジェクタ14の無効噴射時間を補間する電圧補正係数T
Sを設定する。
【0058】尚、上記学習補正係数KBLRCについては、
本出願人による特願平1−293276号に詳述されて
いる。
本出願人による特願平1−293276号に詳述されて
いる。
【0059】その後、ステップS106へ進み、上記ステッ
プS101で設定した基本燃料噴射パルス幅TPを、各種増
量分補正係数COEF、第1空燃比フィードバック補正
係数α1により空燃比補正するとともに学習補正係数KB
LRCにより学習補正し、電圧補正係数TSにより電圧補正
して、右バンクの気筒群(#1,#3,#5気筒)に対
する第1燃料噴射パルス幅Ti1を設定する(Ti1←TP
×COEF×α1×KBLRC+TS)。
プS101で設定した基本燃料噴射パルス幅TPを、各種増
量分補正係数COEF、第1空燃比フィードバック補正
係数α1により空燃比補正するとともに学習補正係数KB
LRCにより学習補正し、電圧補正係数TSにより電圧補正
して、右バンクの気筒群(#1,#3,#5気筒)に対
する第1燃料噴射パルス幅Ti1を設定する(Ti1←TP
×COEF×α1×KBLRC+TS)。
【0060】さらに、上記ステップS106からステップS1
07へ進むと、上記基本燃料噴射パルス幅TPを、各種増
量分補正係数COEF、第2空燃比フィードバック補正
係数α2により空燃比補正するとともに学習補正係数KB
LRCにより学習補正し、電圧補正係数TSにより電圧補正
して、左バンクの気筒群(#2,#4,#6気筒)に対
する第2燃料噴射パルス幅Ti2を設定する(Ti2←TP
×COEF×α2×KBLRC+TS)。
07へ進むと、上記基本燃料噴射パルス幅TPを、各種増
量分補正係数COEF、第2空燃比フィードバック補正
係数α2により空燃比補正するとともに学習補正係数KB
LRCにより学習補正し、電圧補正係数TSにより電圧補正
して、左バンクの気筒群(#2,#4,#6気筒)に対
する第2燃料噴射パルス幅Ti2を設定する(Ti2←TP
×COEF×α2×KBLRC+TS)。
【0061】そして、ステップS108で、エンジン回転数
NEに基づき噴射開始タイミングTMSTARTを設定し、ル
ーチンを抜ける。尚、この噴射開始タイミングTMSTART
は、エンジン高回転になるほど進角側に設定される。
NEに基づき噴射開始タイミングTMSTARTを設定し、ル
ーチンを抜ける。尚、この噴射開始タイミングTMSTART
は、エンジン高回転になるほど進角側に設定される。
【0062】次に、上記第1,第2燃料噴射パルス幅T
i1,Ti2は、BTDC100°のクランクパルスによっ
て割込みスタートする図9のルーチンにより該当気筒に
対する燃料噴射パルス幅Tiとしてセットされる。
i1,Ti2は、BTDC100°のクランクパルスによっ
て割込みスタートする図9のルーチンにより該当気筒に
対する燃料噴射パルス幅Tiとしてセットされる。
【0063】このBTDC100°の割込みルーチンで
は、ステップS301で、噴射対象気筒が、#1,#3,#
5の右バンクの気筒群に属する気筒か否かを調べ、噴射
対象気筒が、#1,#3,#5の右バンクの気筒群に属
する場合には、ステップS302へ進んで、第1燃料噴射パ
ルス幅Ti1を該当気筒に対する燃料噴射パルス幅Tiと
し(Ti←Ti1)、噴射対象気筒が、#2,#4,#6
の気筒群に属する場合には、ステップS303へ分岐して、
第2燃料噴射パルス幅Ti2を該当気筒に対する燃料噴射
パルス幅Tiとする(Ti←Ti2)。
は、ステップS301で、噴射対象気筒が、#1,#3,#
5の右バンクの気筒群に属する気筒か否かを調べ、噴射
対象気筒が、#1,#3,#5の右バンクの気筒群に属
する場合には、ステップS302へ進んで、第1燃料噴射パ
ルス幅Ti1を該当気筒に対する燃料噴射パルス幅Tiと
し(Ti←Ti1)、噴射対象気筒が、#2,#4,#6
の気筒群に属する場合には、ステップS303へ分岐して、
第2燃料噴射パルス幅Ti2を該当気筒に対する燃料噴射
パルス幅Tiとする(Ti←Ti2)。
【0064】そして、上記ステップS302あるいはステッ
プS303からステップS304へ進み、このBTDC100°
を基準としてタイマの計時をスタートさせ、噴射開始タ
イミングTMSTARTの割込みを許可してルーチンを抜け
る。
プS303からステップS304へ進み、このBTDC100°
を基準としてタイマの計時をスタートさせ、噴射開始タ
イミングTMSTARTの割込みを許可してルーチンを抜け
る。
【0065】その後、BTDC100°でスタートした
タイマの計時が、噴射開始タイミングTMSTARTになる
と、図10に示す燃料噴射手順のルーチンが割込み起動
し、ステップS401で、燃料噴射対象気筒のインジェクタ
14へ燃料噴射パルス幅Tiの駆動パルス信号を出力し
てルーチンを抜ける。
タイマの計時が、噴射開始タイミングTMSTARTになる
と、図10に示す燃料噴射手順のルーチンが割込み起動
し、ステップS401で、燃料噴射対象気筒のインジェクタ
14へ燃料噴射パルス幅Tiの駆動パルス信号を出力し
てルーチンを抜ける。
【0066】すなわち、図32に示すように、本実施例
の4サイクル6気筒エンジンでは、燃焼行程は#1→#
6→#3→#2→#5→#4であり、燃料噴射対象気筒
に対し、BTDC100°CAを基準とする燃料噴射開
始タイミングTMSTARTから燃料噴射が開始され、720
°CA毎(エンジン2回転毎)に1回のシーケンシャル
噴射が行なわれる。
の4サイクル6気筒エンジンでは、燃焼行程は#1→#
6→#3→#2→#5→#4であり、燃料噴射対象気筒
に対し、BTDC100°CAを基準とする燃料噴射開
始タイミングTMSTARTから燃料噴射が開始され、720
°CA毎(エンジン2回転毎)に1回のシーケンシャル
噴射が行なわれる。
【0067】次に、空燃比フィードバック補正係数の設
定手順について説明する。図11に示される空燃比フィ
ードバック補正係数設定ルーチンは、エンジン1回転毎
に割込み実行されるプログラムであり、まず、ステップ
S501で、第1O2センサ側フィードバック制御判別フラ
グFLAGF/B1の値を参照する。
定手順について説明する。図11に示される空燃比フィ
ードバック補正係数設定ルーチンは、エンジン1回転毎
に割込み実行されるプログラムであり、まず、ステップ
S501で、第1O2センサ側フィードバック制御判別フラ
グFLAGF/B1の値を参照する。
【0068】この第1O2センサ側フィードバック制御
条件判別フラグFLAGF/B1は、第1のO2センサ25
aによるフィードバック条件が成立したとき1にセット
されるものであり、上記ステップS501で、FLAGF/B1
=0のときには、現在、右バンクの気筒群はオープンル
ープ制御中と判別してステップS502へ進み、第1O2セ
ンサ側フィードバック制御条件判別サブルーチンを呼び
出す。
条件判別フラグFLAGF/B1は、第1のO2センサ25
aによるフィードバック条件が成立したとき1にセット
されるものであり、上記ステップS501で、FLAGF/B1
=0のときには、現在、右バンクの気筒群はオープンル
ープ制御中と判別してステップS502へ進み、第1O2セ
ンサ側フィードバック制御条件判別サブルーチンを呼び
出す。
【0069】この第1O2センサ側フィードバック制御
条件判別サブルーチンでは、後述するクローズドループ
条件1判別処理及びクローズドループ条件2判別処理に
より、第1のO2センサ25aに短絡あるいは断線など
の故障がなく、活性化が完了してクローズドループ制御
すなわちフィードバック制御へ移行可能か否かを判別す
る。
条件判別サブルーチンでは、後述するクローズドループ
条件1判別処理及びクローズドループ条件2判別処理に
より、第1のO2センサ25aに短絡あるいは断線など
の故障がなく、活性化が完了してクローズドループ制御
すなわちフィードバック制御へ移行可能か否かを判別す
る。
【0070】一方、上記ステップS501で、FLAGF/B1
=1のときには、現在、右バンクの気筒群はフィードバ
ック制御中と判別してステップS503へ分岐し、第1空燃
比フィードバック補正係数演算サブルーチンを呼び出し
て右バンクの気筒群に対する第1空燃比フィードバック
補正係数α1を設定する。
=1のときには、現在、右バンクの気筒群はフィードバ
ック制御中と判別してステップS503へ分岐し、第1空燃
比フィードバック補正係数演算サブルーチンを呼び出し
て右バンクの気筒群に対する第1空燃比フィードバック
補正係数α1を設定する。
【0071】その後、上記ステップS502あるいは上記ス
テップS503からステップS504へ進み、第2のO2センサ
25bによるフィードバック条件が成立したとき1にセ
ットされる第2O2センサ側フィードバック制御条件判
別フラグFLAGF/B2の値を参照する。
テップS503からステップS504へ進み、第2のO2センサ
25bによるフィードバック条件が成立したとき1にセ
ットされる第2O2センサ側フィードバック制御条件判
別フラグFLAGF/B2の値を参照する。
【0072】そして、FLAGF/B2=0のときには、現
在、左バンクの気筒群はオープンループ制御中と判別し
て上記ステップS504からステップS505へ進むと、第2O
2センサ側フィードバック制御条件判別サブルーチンを
呼び出し、上記第1O2センサ側フィードバック制御条
件判別サブルーチンと同様に、第2のO2センサ25b
に短絡あるいは断線などの故障がなく、活性化が完了し
てフィードバック制御へ移行可能か否かを判別し、ルー
チンを抜ける。
在、左バンクの気筒群はオープンループ制御中と判別し
て上記ステップS504からステップS505へ進むと、第2O
2センサ側フィードバック制御条件判別サブルーチンを
呼び出し、上記第1O2センサ側フィードバック制御条
件判別サブルーチンと同様に、第2のO2センサ25b
に短絡あるいは断線などの故障がなく、活性化が完了し
てフィードバック制御へ移行可能か否かを判別し、ルー
チンを抜ける。
【0073】一方、FLAGF/B2=1のときには、現
在、左バンクの気筒群はフィードバック制御中と判別し
て上記ステップS504からステップS506へ分岐し、第2空
燃比フィードバック補正係数演算サブルーチンを呼び出
して左バンクの気筒群に対する第2空燃比フィードバッ
ク補正係数α2を設定してルーチンを抜ける。
在、左バンクの気筒群はフィードバック制御中と判別し
て上記ステップS504からステップS506へ分岐し、第2空
燃比フィードバック補正係数演算サブルーチンを呼び出
して左バンクの気筒群に対する第2空燃比フィードバッ
ク補正係数α2を設定してルーチンを抜ける。
【0074】ここで、上述の空燃比フィードバック補正
係数設定ルーチンにおける各サブルーチンの説明に先立
ち、第1,第2空燃比フィードバック補正係数α1,α2
の初期設定、及び、タイマ設定手順について説明する。
係数設定ルーチンにおける各サブルーチンの説明に先立
ち、第1,第2空燃比フィードバック補正係数α1,α2
の初期設定、及び、タイマ設定手順について説明する。
【0075】図16〜図18に示される空燃比フィード
バック補正係数初期設定及びタイマ設定手順のルーチン
は、所定時間毎に実行され、ステップS1001,S1002で、
それぞれ、エンジン回転数NEが0か否か、スタータス
イッチ61がONか否かを調べる。
バック補正係数初期設定及びタイマ設定手順のルーチン
は、所定時間毎に実行され、ステップS1001,S1002で、
それぞれ、エンジン回転数NEが0か否か、スタータス
イッチ61がONか否かを調べる。
【0076】上記ステップS1001,S1002で、NE=0のエ
ンジン非回転状態、あるいは、NE≠0且つスタータス
イッチ61がONのクランキング中であるときには、ス
テップS1036へ分岐し、エンジン始動後(スタータスイ
ッチ61がONからOFF状態となった後)の経過時間
を計時するための始動後経過時間カウント値COUNT
STをクリアすると(COUNTST←0)、ステップS103
7,S1038で、それぞれ、第1,第2空燃比フィードバッ
ク補正係数α1,α2を1.0に固定し(α1←1.0、α2←1.
0)、ステップS1039で、各フラグをクリアしてルーチン
を抜ける。
ンジン非回転状態、あるいは、NE≠0且つスタータス
イッチ61がONのクランキング中であるときには、ス
テップS1036へ分岐し、エンジン始動後(スタータスイ
ッチ61がONからOFF状態となった後)の経過時間
を計時するための始動後経過時間カウント値COUNT
STをクリアすると(COUNTST←0)、ステップS103
7,S1038で、それぞれ、第1,第2空燃比フィードバッ
ク補正係数α1,α2を1.0に固定し(α1←1.0、α2←1.
0)、ステップS1039で、各フラグをクリアしてルーチン
を抜ける。
【0077】一方、NE≠0且つスタータスイッチ61
がOFFのときには、上記ステップS1001,S1002を経て
ステップS1003へ進み、始動後経過時間カウント値CO
UNTSTが設定値TO2SHC(例えば、30sec相当)
以上となったか否かを判別する。そして、COUNTST
≧TO2SHCのとき、ステップS1003からステップS1006へ
ジャンプし、COUNTST<TO2SHCのとき、ステップS
1003からステップ1004へ進む。
がOFFのときには、上記ステップS1001,S1002を経て
ステップS1003へ進み、始動後経過時間カウント値CO
UNTSTが設定値TO2SHC(例えば、30sec相当)
以上となったか否かを判別する。そして、COUNTST
≧TO2SHCのとき、ステップS1003からステップS1006へ
ジャンプし、COUNTST<TO2SHCのとき、ステップS
1003からステップ1004へ進む。
【0078】ステップS1004では、始動後経過時間カウ
ント値COUNTSTをカウントアップし(COUNTST
←COUNTST+1)、ステップS1005で、このカウン
トアップした始動後経過時間カウント値COUNTSTが
所定時間INLDS以下か否か、すなわち、スタータス
イッチ61がONからOFFになった後の経過時間が所
定時間INLDS以下か否かを判別する。
ント値COUNTSTをカウントアップし(COUNTST
←COUNTST+1)、ステップS1005で、このカウン
トアップした始動後経過時間カウント値COUNTSTが
所定時間INLDS以下か否か、すなわち、スタータス
イッチ61がONからOFFになった後の経過時間が所
定時間INLDS以下か否かを判別する。
【0079】但し、INLDS<TO2SHD<TO2SHCであ
り、設定値TO2SHD(1sec相当)は、後述する第1
O2センサ側フィードバック制御条件判別サブルーチン
及び第2O2センサ側フィードバック制御条件判別サブ
ルーチンにおけるクローズドループ条件1判別処理及び
クローズドループ条件2判別処理に対する分岐条件の1
つである。
り、設定値TO2SHD(1sec相当)は、後述する第1
O2センサ側フィードバック制御条件判別サブルーチン
及び第2O2センサ側フィードバック制御条件判別サブ
ルーチンにおけるクローズドループ条件1判別処理及び
クローズドループ条件2判別処理に対する分岐条件の1
つである。
【0080】そして、上記ステップS1005において、C
OUNTST≦INLDSのときには、前述のステップS1
037,S1038,S1039を経てルーチンを抜け、COUNTST
>INLDSのときには、上記ステップS1005からステ
ップS1006以降へ進む。
OUNTST≦INLDSのときには、前述のステップS1
037,S1038,S1039を経てルーチンを抜け、COUNTST
>INLDSのときには、上記ステップS1005からステ
ップS1006以降へ進む。
【0081】このステップS1006以降は、ステップS1006
〜S1023が、第1O2センサ側フィードバック制御条件判
別サブルーチンにおいて使用する各タイマカウント値
(第1タイマカウント値COUNTTIM1、第2タイマカ
ウント値COUNTTIM2、第1O2センサ側制御周期タ
イマカウント値COUNTTIMTO21)、第2O2センサ側
フィードバック制御条件判別サブルーチンにおいて使用
する各タイマカウント値(第3タイマカウント値COU
NTTIM3、第4タイマカウント値COUNTTIM4、第2
O2センサ側制御周期タイマカウント値COUNTTIMTO
22)を、フラグの値に応じてカウントアップあるいはク
リアする処理であり、ステップS1024以降が、後述する
第1,第2空燃比フィードバック補正係数演算サブルー
チンにおけるモニタ機能を作動させるための第1,第2
O2センサ側モニタ機能作動フラグFLAGMP1,FLA
GMP2をセットする処理である。
〜S1023が、第1O2センサ側フィードバック制御条件判
別サブルーチンにおいて使用する各タイマカウント値
(第1タイマカウント値COUNTTIM1、第2タイマカ
ウント値COUNTTIM2、第1O2センサ側制御周期タ
イマカウント値COUNTTIMTO21)、第2O2センサ側
フィードバック制御条件判別サブルーチンにおいて使用
する各タイマカウント値(第3タイマカウント値COU
NTTIM3、第4タイマカウント値COUNTTIM4、第2
O2センサ側制御周期タイマカウント値COUNTTIMTO
22)を、フラグの値に応じてカウントアップあるいはク
リアする処理であり、ステップS1024以降が、後述する
第1,第2空燃比フィードバック補正係数演算サブルー
チンにおけるモニタ機能を作動させるための第1,第2
O2センサ側モニタ機能作動フラグFLAGMP1,FLA
GMP2をセットする処理である。
【0082】すなわち、ステップS1006で、第1タイマ
作動フラグFLAGTIM1の値を参照し、FLAGTIM1=
1のときには、ステップS1007で第1タイマカウント値
COUNTTIM1をカウントアップ(COUNTTIM1←C
OUNTTIM1+1)する一方、FLAGTIM1=0のとき
には、ステップS1008で第1タイマカウント値COUN
TTIM1をクリアする(COUNTTIM1←0)。
作動フラグFLAGTIM1の値を参照し、FLAGTIM1=
1のときには、ステップS1007で第1タイマカウント値
COUNTTIM1をカウントアップ(COUNTTIM1←C
OUNTTIM1+1)する一方、FLAGTIM1=0のとき
には、ステップS1008で第1タイマカウント値COUN
TTIM1をクリアする(COUNTTIM1←0)。
【0083】次いで、上記ステップS1007あるいは上記
ステップS1008からステップS1009へ進んで、第2タイマ
作動フラグFLAGTIM2の値を参照し、FLAGTIM2=
1のとき、ステップS1010で第2タイマカウント値CO
UNTTIM2をカウントアップし(COUNTTIM2←CO
UNTTIM2+1)、FLAGTIM2=0のときには、ステ
ップS1011で第2タイマカウント値COUNTTIM2をク
リアする(COUNTTIM2←0)。
ステップS1008からステップS1009へ進んで、第2タイマ
作動フラグFLAGTIM2の値を参照し、FLAGTIM2=
1のとき、ステップS1010で第2タイマカウント値CO
UNTTIM2をカウントアップし(COUNTTIM2←CO
UNTTIM2+1)、FLAGTIM2=0のときには、ステ
ップS1011で第2タイマカウント値COUNTTIM2をク
リアする(COUNTTIM2←0)。
【0084】さらに、上記ステップS1010あるいはステ
ップS1011からステップS1012へ進むと、第3タイマ作動
フラグFLAGTIM3の値を参照し、FLAGTIM3=1の
とき、ステップS1013で第3タイマカウント値COUN
TTIM3をカウントアップして(COUNTTIM3←COU
NTTIM3+1)ステップS1015へ進む一方、FLAGTIM
3=0のとき、ステップS1014で第3タイマカウント値C
OUNTTIM3をクリアして(COUNTTIM3←0)ステ
ップS1015へ進む。
ップS1011からステップS1012へ進むと、第3タイマ作動
フラグFLAGTIM3の値を参照し、FLAGTIM3=1の
とき、ステップS1013で第3タイマカウント値COUN
TTIM3をカウントアップして(COUNTTIM3←COU
NTTIM3+1)ステップS1015へ進む一方、FLAGTIM
3=0のとき、ステップS1014で第3タイマカウント値C
OUNTTIM3をクリアして(COUNTTIM3←0)ステ
ップS1015へ進む。
【0085】ステップS1015では、第4タイマ作動フラ
グFLAGTIM4の値を参照し、FLAGTIM4=1のと
き、ステップS1016で第4タイマカウント値COUNTT
IM4をカウントアップして(COUNTTIM4←COUN
TTIM4+1)ステップS1018へ進む一方、FLAGTIM4
=0のとき、ステップS1017で第4タイマカウント値C
OUNTTIM4をクリアして(COUNTTIM4←0)ステ
ップS1018へ進む。
グFLAGTIM4の値を参照し、FLAGTIM4=1のと
き、ステップS1016で第4タイマカウント値COUNTT
IM4をカウントアップして(COUNTTIM4←COUN
TTIM4+1)ステップS1018へ進む一方、FLAGTIM4
=0のとき、ステップS1017で第4タイマカウント値C
OUNTTIM4をクリアして(COUNTTIM4←0)ステ
ップS1018へ進む。
【0086】その後、ステップS1018では、第1O2セン
サ側制御周期タイマ作動フラグFLAGTIMTO21の値を
参照し、FLAGTIMTO21=1のとき、ステップS1019
で、第1のO2センサ25aの制御周期をカウントする
ための第1O2センサ側制御周期タイマカウント値CO
UNTTIMTO21をカウントアップして(COUNTTIMTO
21←COUNTTIMTO21+1)ステップS1021へ進み、F
LAGTIMTO21=0のとき、ステップS1020で、第1O2
センサ側制御周期タイマカウント値COUNTTIMTO21
をクリアして(COUNTTIMTO21←0)ステップS1021
へ進む。
サ側制御周期タイマ作動フラグFLAGTIMTO21の値を
参照し、FLAGTIMTO21=1のとき、ステップS1019
で、第1のO2センサ25aの制御周期をカウントする
ための第1O2センサ側制御周期タイマカウント値CO
UNTTIMTO21をカウントアップして(COUNTTIMTO
21←COUNTTIMTO21+1)ステップS1021へ進み、F
LAGTIMTO21=0のとき、ステップS1020で、第1O2
センサ側制御周期タイマカウント値COUNTTIMTO21
をクリアして(COUNTTIMTO21←0)ステップS1021
へ進む。
【0087】ステップS1021では、第2O2センサ側制御
周期タイマ作動フラグFLAGTIMTO22の値を参照し、
FLAGTIMTO22=1のとき、ステップS1022で、第2の
O2センサ25bの制御周期をカウントするための第2
O2センサ側制御周期タイマカウント値COUNTTIMTO
22をカウントアップして(COUNTTIMTO22←COU
NTTIMTO22+1)ステップS1024へ進み、FLAGTIMT
O22=0のとき、ステップS1023で、第2O2センサ側制
御周期タイマカウント値COUNTTIMTO22をクリアし
て(COUNTTIMTO22←0)ステップS1024へ進む。
周期タイマ作動フラグFLAGTIMTO22の値を参照し、
FLAGTIMTO22=1のとき、ステップS1022で、第2の
O2センサ25bの制御周期をカウントするための第2
O2センサ側制御周期タイマカウント値COUNTTIMTO
22をカウントアップして(COUNTTIMTO22←COU
NTTIMTO22+1)ステップS1024へ進み、FLAGTIMT
O22=0のとき、ステップS1023で、第2O2センサ側制
御周期タイマカウント値COUNTTIMTO22をクリアし
て(COUNTTIMTO22←0)ステップS1024へ進む。
【0088】ステップS1024では、第1のO2センサ25
aによるフィードバック条件が成立したとき1にセット
される第1O2センサ側フィードバック制御条件判別フ
ラグFLAGF/B1の値を参照し、FLAGF/B1=0のと
きには、ステップS1029へジャンプし、FLAGF/B1=
1のときには、ステップS1025で、第1O2センサ側モニ
タ機能作動フラグFLAGMP1の値を参照して既にモニ
タ機能作動中であるか否かを調べる。
aによるフィードバック条件が成立したとき1にセット
される第1O2センサ側フィードバック制御条件判別フ
ラグFLAGF/B1の値を参照し、FLAGF/B1=0のと
きには、ステップS1029へジャンプし、FLAGF/B1=
1のときには、ステップS1025で、第1O2センサ側モニ
タ機能作動フラグFLAGMP1の値を参照して既にモニ
タ機能作動中であるか否かを調べる。
【0089】上記ステップS1025で、FLAGMP1=1の
ときには、ステップS1030へジャンプし、FLAGMP1=
0のとき、ステップS1026で、フィードバック制御開始
からの時間を計時するためのタイマカウント値COUN
TTIMF/B1をカウントアップし(COUNTTIMF/B1←C
OUNTTIMF/B1+1)、ステップS1027で、このカウン
ト値が設定値MONTに達したか否かを判別する。
ときには、ステップS1030へジャンプし、FLAGMP1=
0のとき、ステップS1026で、フィードバック制御開始
からの時間を計時するためのタイマカウント値COUN
TTIMF/B1をカウントアップし(COUNTTIMF/B1←C
OUNTTIMF/B1+1)、ステップS1027で、このカウン
ト値が設定値MONTに達したか否かを判別する。
【0090】そして、上記ステップS1027で、COUN
TTIMF/B1<MONTであり、フィードバック制御開始
から設定時間が経過していないときには、ステップS103
0へジャンプし、COUNTTIMF/B1≧MONTであり、
フィードバック制御開始から設定時間が経過していると
きには、ステップS1028で、第1O2センサ側モニタ機能
作動フラグFLAGMP1をセットすると(FLAGMP1←
1)、ステップS1029で、タイマカウント値COUNTT
IMF/B1をクリアし(COUNTTIMF/B1←0)、ステッ
プS1030へ進む。
TTIMF/B1<MONTであり、フィードバック制御開始
から設定時間が経過していないときには、ステップS103
0へジャンプし、COUNTTIMF/B1≧MONTであり、
フィードバック制御開始から設定時間が経過していると
きには、ステップS1028で、第1O2センサ側モニタ機能
作動フラグFLAGMP1をセットすると(FLAGMP1←
1)、ステップS1029で、タイマカウント値COUNTT
IMF/B1をクリアし(COUNTTIMF/B1←0)、ステッ
プS1030へ進む。
【0091】ステップS1030では、第2のO2センサ25
bによるフィードバック条件が成立したとき1にセット
される第2O2センサ側フィードバック制御条件判別フ
ラグFLAGF/B2の値を参照し、FLAGF/B2=0のと
き、ステップS1035へジャンプし、FLAGF/B2=0の
とき、ステップS1031で、第2O2センサ側モニタ機能作
動フラグFLAGMP2の値を参照して既にモニタ機能作
動中であるか否かを調べる。
bによるフィードバック条件が成立したとき1にセット
される第2O2センサ側フィードバック制御条件判別フ
ラグFLAGF/B2の値を参照し、FLAGF/B2=0のと
き、ステップS1035へジャンプし、FLAGF/B2=0の
とき、ステップS1031で、第2O2センサ側モニタ機能作
動フラグFLAGMP2の値を参照して既にモニタ機能作
動中であるか否かを調べる。
【0092】そして、上記ステップS1031で、FLAGM
P2=1のとき、ルーチンを抜け、FLAGMP2=0のと
きには、ステップS1032で、フィードバック制御開始か
らの時間を計時するためのタイマカウント値COUNT
TIMF/B2をカウントアップする(COUNTTIMF/B2←C
OUNTTIMF/B2+1)。
P2=1のとき、ルーチンを抜け、FLAGMP2=0のと
きには、ステップS1032で、フィードバック制御開始か
らの時間を計時するためのタイマカウント値COUNT
TIMF/B2をカウントアップする(COUNTTIMF/B2←C
OUNTTIMF/B2+1)。
【0093】その後、ステップS1033へ進み、タイマカ
ウント値COUNTTIMF/B2が設定値MONTに達した
か否かを判別し、COUNTTIMF/B2<MONTで、フ
ィードバック制御開始から設定時間が経過していないと
きには、ルーチンを抜け、COUNTTIMF/B2≧MON
Tであり、フィードバック制御開始から設定時間が経過
しているときには、ステップS1034で、第2O2センサ側
モニタ機能作動フラグFLAGMP2をセットすると(F
LAGMP2←1)、ステップS1035で、タイマカウント値
COUNTTIMF/B2をクリアし(COUNTTIMF/B2←
0)、ルーチンを抜ける。
ウント値COUNTTIMF/B2が設定値MONTに達した
か否かを判別し、COUNTTIMF/B2<MONTで、フ
ィードバック制御開始から設定時間が経過していないと
きには、ルーチンを抜け、COUNTTIMF/B2≧MON
Tであり、フィードバック制御開始から設定時間が経過
しているときには、ステップS1034で、第2O2センサ側
モニタ機能作動フラグFLAGMP2をセットすると(F
LAGMP2←1)、ステップS1035で、タイマカウント値
COUNTTIMF/B2をクリアし(COUNTTIMF/B2←
0)、ルーチンを抜ける。
【0094】一方、前述の空燃比フィードバック補正係
数設定ルーチンにおける第1O2センサ側フィードバッ
ク制御条件判別サブルーチン及び第2O2センサ側フィ
ードバック制御条件判別サブルーチンは、それぞれ、図
1〜図3、図4〜図6に示される。
数設定ルーチンにおける第1O2センサ側フィードバッ
ク制御条件判別サブルーチン及び第2O2センサ側フィ
ードバック制御条件判別サブルーチンは、それぞれ、図
1〜図3、図4〜図6に示される。
【0095】これらの各サブルーチンは、機能的には同
様であり、第1O2センサ側フィードバック制御条件判
別サブルーチンのステップS6…が、第2O2センサ側フ
ィードバック制御条件判別サブルーチンのステップS8…
に対応する。
様であり、第1O2センサ側フィードバック制御条件判
別サブルーチンのステップS6…が、第2O2センサ側フ
ィードバック制御条件判別サブルーチンのステップS8…
に対応する。
【0096】以下、主として第1O2センサ側フィード
バック制御条件判別サブルーチンについて説明し、第2
O2センサ側フィードバック制御条件判別サブルーチン
においては、第1のO2センサ25aを第2のO2センサ
25bと読み代え、その出力電圧VO21をVO22と読み代
える。
バック制御条件判別サブルーチンについて説明し、第2
O2センサ側フィードバック制御条件判別サブルーチン
においては、第1のO2センサ25aを第2のO2センサ
25bと読み代え、その出力電圧VO21をVO22と読み代
える。
【0097】また、第2O2センサ側フィードバック制
御条件判別サブルーチンにおいては、第1O2センサ側
フィードバック制御条件判別サブルーチンに対し、第1
空燃比フィードバック補正係数α1、積分定数I1を、そ
れぞれ、第2空燃比フィードバック補正係数α2、積分
定数I2とし、第1モニタオープンループ制御判別フラ
グFLAGMONI1、第1O2センサ側モニタ機能作動フラ
グFLAGMP1、第1O2センサ側クローズドループ条件
2移行判別フラグFLAGCL21、及び、第1O2センサ
側フィードバック制御条件判別フラグFLAGF/B1の各
フラグの第1…を第2…と読み代え、符号末尾の添字…
1を…2と読み代える。
御条件判別サブルーチンにおいては、第1O2センサ側
フィードバック制御条件判別サブルーチンに対し、第1
空燃比フィードバック補正係数α1、積分定数I1を、そ
れぞれ、第2空燃比フィードバック補正係数α2、積分
定数I2とし、第1モニタオープンループ制御判別フラ
グFLAGMONI1、第1O2センサ側モニタ機能作動フラ
グFLAGMP1、第1O2センサ側クローズドループ条件
2移行判別フラグFLAGCL21、及び、第1O2センサ
側フィードバック制御条件判別フラグFLAGF/B1の各
フラグの第1…を第2…と読み代え、符号末尾の添字…
1を…2と読み代える。
【0098】さらに、第2O2センサ側フィードバック
制御条件判別サブルーチンにおいては、第1O2センサ
側フィードバック制御条件判別サブルーチンに対し、第
1タイマ作動フラグFLAGTIM1、第2タイマ作動フラ
グFLAGTIM2に代えて、それぞれ、第3タイマ作動フ
ラグFLAGTIM3、第4タイマ作動フラグFLAGTIM4
を用い、第1タイマカウント値COUNTTIM1、第2タ
イマカウント値COUNTTIM2に代えて、それぞれ、第
3タイマカウント値COUNTTIM3、第4タイマカウン
ト値COUNTTIM4を用いる。
制御条件判別サブルーチンにおいては、第1O2センサ
側フィードバック制御条件判別サブルーチンに対し、第
1タイマ作動フラグFLAGTIM1、第2タイマ作動フラ
グFLAGTIM2に代えて、それぞれ、第3タイマ作動フ
ラグFLAGTIM3、第4タイマ作動フラグFLAGTIM4
を用い、第1タイマカウント値COUNTTIM1、第2タ
イマカウント値COUNTTIM2に代えて、それぞれ、第
3タイマカウント値COUNTTIM3、第4タイマカウン
ト値COUNTTIM4を用いる。
【0099】まず、第1O2センサ側フィードバック制
御条件判別サブルーチンのステップS601では、第1モニ
タオープンループ制御判別フラグFLAGMONI1の値を
参照し、オープンループ制御に移行しているか否かを判
別する。
御条件判別サブルーチンのステップS601では、第1モニ
タオープンループ制御判別フラグFLAGMONI1の値を
参照し、オープンループ制御に移行しているか否かを判
別する。
【0100】上記第1モニタオープンループ制御判別フ
ラグFLAGMONI1は、後述する第1空燃比フィードバ
ック補正係数演算サブルーチンのモニタ機能により監視
される第1のO2センサ25aの制御周期が設定値を越
えたとき、クローズドループ制御からオープンループ制
御に移行させるためセットされるものであり、上記ステ
ップS601で、FLAGMONI1=0のときには、クローズ
ドループ制御のままのため、ステップS610へジャンプ
し、FLAGMONI1=1のときには、オープンループ制
御へ移行しているため、ステップ602へ進む。
ラグFLAGMONI1は、後述する第1空燃比フィードバ
ック補正係数演算サブルーチンのモニタ機能により監視
される第1のO2センサ25aの制御周期が設定値を越
えたとき、クローズドループ制御からオープンループ制
御に移行させるためセットされるものであり、上記ステ
ップS601で、FLAGMONI1=0のときには、クローズ
ドループ制御のままのため、ステップS610へジャンプ
し、FLAGMONI1=1のときには、オープンループ制
御へ移行しているため、ステップ602へ進む。
【0101】ステップS602では、第1O2センサ側モニ
タ機能作動フラグFLAGMP1をクリアし(FLAGMP1
←0)、ステップS603〜S606で、第1空燃比フィードバ
ック補正係数α1を中心値1.0に収束させる。すなわち、
ステップS603で、第1空燃比フィードバック補正係数α
1が1.0より大きいか否かを判別し、1.0より大きいとき
には、ステップS604で、第1空燃比フィードバック補正
係数α1を比例積分制御における積分定数I1だけ小さく
して(α1←α1−I1)ステップS607へ進み、1.0より大
きくないときには、ステップS605へ分岐し、第1空燃比
フィードバック補正係数α1が1.0より小さいか否かを判
別する。
タ機能作動フラグFLAGMP1をクリアし(FLAGMP1
←0)、ステップS603〜S606で、第1空燃比フィードバ
ック補正係数α1を中心値1.0に収束させる。すなわち、
ステップS603で、第1空燃比フィードバック補正係数α
1が1.0より大きいか否かを判別し、1.0より大きいとき
には、ステップS604で、第1空燃比フィードバック補正
係数α1を比例積分制御における積分定数I1だけ小さく
して(α1←α1−I1)ステップS607へ進み、1.0より大
きくないときには、ステップS605へ分岐し、第1空燃比
フィードバック補正係数α1が1.0より小さいか否かを判
別する。
【0102】そして、上記ステップS605で、α1<1.0の
ときには、ステップS606で、第1空燃比フィードバック
補正係数α1を比例積分制御における積分定数I1だけ大
きくして(α1←α1+I1)ステップS607へ進み、上記
ステップS605で、α1=1.0のときには、ステップS607へ
ジャンプする。
ときには、ステップS606で、第1空燃比フィードバック
補正係数α1を比例積分制御における積分定数I1だけ大
きくして(α1←α1+I1)ステップS607へ進み、上記
ステップS605で、α1=1.0のときには、ステップS607へ
ジャンプする。
【0103】次に、ステップS607では、アイドルスイッ
チ12bがOFFか否かを判別し、アイドルスイッチ1
2bがONしているときには、ステップS608,S609で、
それぞれ、クローズドループ条件1判別処理において使
用する第1タイマ作動フラグFLAGTIM1、クローズド
ループ条件2判別処理において使用する第2タイマ作動
フラグFLAGTIM2をクリアして(FLAGTIM1←0、
FLAGTIM2←0)ルーチンを抜け、一方、上記ステッ
プS607で、アイドルスイッチ12bがOFFのときに
は、ステップS610以降の処理へ進む。
チ12bがOFFか否かを判別し、アイドルスイッチ1
2bがONしているときには、ステップS608,S609で、
それぞれ、クローズドループ条件1判別処理において使
用する第1タイマ作動フラグFLAGTIM1、クローズド
ループ条件2判別処理において使用する第2タイマ作動
フラグFLAGTIM2をクリアして(FLAGTIM1←0、
FLAGTIM2←0)ルーチンを抜け、一方、上記ステッ
プS607で、アイドルスイッチ12bがOFFのときに
は、ステップS610以降の処理へ進む。
【0104】すなわち、モニタ機能によりクローズドル
ープ制御からオープンループ制御に移行した場合には、
アイドルスイッチ12bがONのスロットル全閉状態に
ある限り、クローズドループ制御へ再び移行可能か否か
の判別処理は行なわず、第1モニタオープンループ制御
判別フラグFLAGMONI1がクリアされた状態のクロー
ズドループ制御のとき、あるいは、モニタ機能によりオ
ープンループ制御に移行した後、アイドルスイッチ12
bがOFFのスロットル開状態を継続したときに、ステ
ップS610以降の処理に進むのである。
ープ制御からオープンループ制御に移行した場合には、
アイドルスイッチ12bがONのスロットル全閉状態に
ある限り、クローズドループ制御へ再び移行可能か否か
の判別処理は行なわず、第1モニタオープンループ制御
判別フラグFLAGMONI1がクリアされた状態のクロー
ズドループ制御のとき、あるいは、モニタ機能によりオ
ープンループ制御に移行した後、アイドルスイッチ12
bがOFFのスロットル開状態を継続したときに、ステ
ップS610以降の処理に進むのである。
【0105】ステップS610では、始動後経過時間カウン
ト値COUNTSTの値が設定値TO2SHC(例えば、30
sec相当)以上か否かを判別し、COUNTST<TO2
SHCのとき、さらに、ステップS611で、始動後経過時間
カウント値COUNTSTの値が設定値TO2SHD(例え
ば、1sec相当)未満か否かを判別する。
ト値COUNTSTの値が設定値TO2SHC(例えば、30
sec相当)以上か否かを判別し、COUNTST<TO2
SHCのとき、さらに、ステップS611で、始動後経過時間
カウント値COUNTSTの値が設定値TO2SHD(例え
ば、1sec相当)未満か否かを判別する。
【0106】そして、エンジン始動後の経過時間が、設
定値TO2SHC以上あるいは設定値TO2SHD未満のときに
は、ステップS610あるいはステップS611からステップS6
15へ分岐して第2タイマ作動フラグFLAGTIM2をクリ
アすると(FLAGTIM2←0)、ステップS616以降のク
ローズドループ条件1判別処理へ移行し、設定値TO2SH
D以上設定値TO2SHC未満のときには、ステップS610,S61
1を経てステップS612へ進み、第1O2センサ側クローズ
ドループ条件2移行判別フラグFLAGCL21の値を参照
する。
定値TO2SHC以上あるいは設定値TO2SHD未満のときに
は、ステップS610あるいはステップS611からステップS6
15へ分岐して第2タイマ作動フラグFLAGTIM2をクリ
アすると(FLAGTIM2←0)、ステップS616以降のク
ローズドループ条件1判別処理へ移行し、設定値TO2SH
D以上設定値TO2SHC未満のときには、ステップS610,S61
1を経てステップS612へ進み、第1O2センサ側クローズ
ドループ条件2移行判別フラグFLAGCL21の値を参照
する。
【0107】上記ステップS612では、FLAGCL21=1
のとき、ステップS624へジャンプして第1タイマ作動フ
ラグFLAGTIM1をクリアして(FLAGTIM1←0)ス
テップS625以降のクローズドループ条件2判別処理へ移
行し、FLAGCL21=0(イニシャル値)のときには、
ステップS613で、第1のO2センサ25aの出力電圧
(第1O2センサ出力電圧)VO21が設定値O2SHIN(例
えば、200mV)以上か否かを判別する。
のとき、ステップS624へジャンプして第1タイマ作動フ
ラグFLAGTIM1をクリアして(FLAGTIM1←0)ス
テップS625以降のクローズドループ条件2判別処理へ移
行し、FLAGCL21=0(イニシャル値)のときには、
ステップS613で、第1のO2センサ25aの出力電圧
(第1O2センサ出力電圧)VO21が設定値O2SHIN(例
えば、200mV)以上か否かを判別する。
【0108】その結果、VO21<O2SHINのときには、ス
テップS615で、第2タイマ作動フラグFLAGTIM2をク
リアして(FLAGTIM2←0)、ステップS616以降のク
ローズドループ条件1判別処理へ移行し、VO21≧O2SH
INのときには、以後、第1のO2センサ25aは短絡状
態でないとみなせるため、ステップS614で、第1O2セ
ンサ側クローズドループ条件2移行判別フラグFLAG
CL21をセットして(FLAGCL21←1)次回のルーチン
実行時にステップS612からステップS624へ強制的にジャ
ンプさせるようにし、前述のステップS624で、第1タイ
マ作動フラグFLAGTIM1をクリアすると、ステップS6
25以降のクローズドループ条件2判別処理へ移行する。
テップS615で、第2タイマ作動フラグFLAGTIM2をク
リアして(FLAGTIM2←0)、ステップS616以降のク
ローズドループ条件1判別処理へ移行し、VO21≧O2SH
INのときには、以後、第1のO2センサ25aは短絡状
態でないとみなせるため、ステップS614で、第1O2セ
ンサ側クローズドループ条件2移行判別フラグFLAG
CL21をセットして(FLAGCL21←1)次回のルーチン
実行時にステップS612からステップS624へ強制的にジャ
ンプさせるようにし、前述のステップS624で、第1タイ
マ作動フラグFLAGTIM1をクリアすると、ステップS6
25以降のクローズドループ条件2判別処理へ移行する。
【0109】次に、クローズドループ条件1判別処理に
ついて説明する。このクローズドループ条件1判別処理
には、第1のO2センサ25aの短絡状態を検出するた
めのステップS616〜S618からなる第1の条件と、第1の
O2センサ25aの断線状態を検出するためのステップS
616〜S619からなる第2の条件とが設けられており、ま
ず、ステップS616で、冷却水温TWが設定値WOPN
(例えば、22°C)以上か否かを判別する。
ついて説明する。このクローズドループ条件1判別処理
には、第1のO2センサ25aの短絡状態を検出するた
めのステップS616〜S618からなる第1の条件と、第1の
O2センサ25aの断線状態を検出するためのステップS
616〜S619からなる第2の条件とが設けられており、ま
ず、ステップS616で、冷却水温TWが設定値WOPN
(例えば、22°C)以上か否かを判別する。
【0110】上記ステップS616で、TW<WOPNのと
きには、第1のO2センサ25aが活性化されておらず
クローズドループ条件不成立としてステップS623へジャ
ンプし、第1タイマ作動フラグFLAGTIM1をクリアし
て(FLAGTIM1←0)ルーチンを抜け、TW≧WOP
Nのときには、第1のO2センサ25aが図示しない内
蔵のヒータにより活性化されているとして上記ステップ
S616からステップS617へ進み、第1O2センサ出力電圧
VO21がリッチ判定基準電圧VE(例えば、650mV)
以上か否かを判別する。
きには、第1のO2センサ25aが活性化されておらず
クローズドループ条件不成立としてステップS623へジャ
ンプし、第1タイマ作動フラグFLAGTIM1をクリアし
て(FLAGTIM1←0)ルーチンを抜け、TW≧WOP
Nのときには、第1のO2センサ25aが図示しない内
蔵のヒータにより活性化されているとして上記ステップ
S616からステップS617へ進み、第1O2センサ出力電圧
VO21がリッチ判定基準電圧VE(例えば、650mV)
以上か否かを判別する。
【0111】その結果、VO21≧VEであり、空燃比が完
全にリッチ状態であるときには、上記ステップS617から
ステップS620へ進み、VO21<VEのとき、ステップS618
へ分岐し、さらに、第1O2センサ出力電圧VO21が故障
判定電圧O2SHRT(例えば、100mV)以上か否かを
判別し、VO21≧O2SHRTのとき、ステップS619で、第1
O2センサ出力電圧VO21がリーン判定基準電圧VL(例
えば、350mV)より低いか否かを判別する。
全にリッチ状態であるときには、上記ステップS617から
ステップS620へ進み、VO21<VEのとき、ステップS618
へ分岐し、さらに、第1O2センサ出力電圧VO21が故障
判定電圧O2SHRT(例えば、100mV)以上か否かを
判別し、VO21≧O2SHRTのとき、ステップS619で、第1
O2センサ出力電圧VO21がリーン判定基準電圧VL(例
えば、350mV)より低いか否かを判別する。
【0112】そして、上記ステップS619で、VO21<VL
のとき、すなわち、O2SHRT≦VO21<VLであり空燃比
がリーン状態のとき、あるいは、上記ステップS617で、
VO21≧VEであり空燃比が完全にリッチ状態であるとき
には、ステップS620で、第1タイマ作動フラグFLAG
TIM1をセットして(FLAGTIM1←1)前述の空燃比フ
ィードバック補正係数初期設定及びタイマ設定ルーチン
による第1タイマカウント値COUNTTIM1のカウント
をスタートさせ、ステップS621で、第1タイマカウント
値COUNTTIM1が設定値INLD(例えば、0.5s
ec相当)に達したか否かを判別する。
のとき、すなわち、O2SHRT≦VO21<VLであり空燃比
がリーン状態のとき、あるいは、上記ステップS617で、
VO21≧VEであり空燃比が完全にリッチ状態であるとき
には、ステップS620で、第1タイマ作動フラグFLAG
TIM1をセットして(FLAGTIM1←1)前述の空燃比フ
ィードバック補正係数初期設定及びタイマ設定ルーチン
による第1タイマカウント値COUNTTIM1のカウント
をスタートさせ、ステップS621で、第1タイマカウント
値COUNTTIM1が設定値INLD(例えば、0.5s
ec相当)に達したか否かを判別する。
【0113】上記ステップS621で、COUNTTIM1<I
NLDのときには、そのままルーチンを抜け、COUN
TTIM1≧INLDのときには、VO21≧VEあるいはO2S
HRT≦VO21<VLの状態が設定値INLDに相当する所
定時間以上継続したため、クローズドループ条件成立と
判別してステップS622へ進み、第1O2センサ側フィー
ドバック制御条件判別フラグFLAGF/B1をセットする
と(FLAGF/B1←1)、前述のステップS623を経てル
ーチンを抜ける。
NLDのときには、そのままルーチンを抜け、COUN
TTIM1≧INLDのときには、VO21≧VEあるいはO2S
HRT≦VO21<VLの状態が設定値INLDに相当する所
定時間以上継続したため、クローズドループ条件成立と
判別してステップS622へ進み、第1O2センサ側フィー
ドバック制御条件判別フラグFLAGF/B1をセットする
と(FLAGF/B1←1)、前述のステップS623を経てル
ーチンを抜ける。
【0114】一方、ステップS618でVO21<O2SHRTのと
きには、第1のO2センサ25aの配線の一部が短絡し
て車体にアースされたか、あるいは、活性化が完了して
いないため、第1O2センサ出力電圧VO21が0V付近の
電圧であると判別し、また、上記ステップS619でVO21
≧VLのとき(VE>VO21≧VLのとき)には、第1のO
2センサ25aの配線の一部が断線しているか、あるい
は活性化が完了していないため、出力電圧が中間の値に
なっていると判別し、各ステップから前述のステップS6
23へジャンプして第1タイマ作動フラグFLAGTIM1を
クリアし、ルーチンを抜ける。
きには、第1のO2センサ25aの配線の一部が短絡し
て車体にアースされたか、あるいは、活性化が完了して
いないため、第1O2センサ出力電圧VO21が0V付近の
電圧であると判別し、また、上記ステップS619でVO21
≧VLのとき(VE>VO21≧VLのとき)には、第1のO
2センサ25aの配線の一部が断線しているか、あるい
は活性化が完了していないため、出力電圧が中間の値に
なっていると判別し、各ステップから前述のステップS6
23へジャンプして第1タイマ作動フラグFLAGTIM1を
クリアし、ルーチンを抜ける。
【0115】すなわち、O2センサ系が短絡して車体に
アースされていると、その出力電圧VO2は略0Vとなる
が、空燃比が過度にリーンである場合においても、出力
電圧VO2は略0Vとなる。従って、短絡によるO2セン
サ系の故障であるのか、O2センサ系は正常であって空
燃比がリーンなのか見分けがつかない。
アースされていると、その出力電圧VO2は略0Vとなる
が、空燃比が過度にリーンである場合においても、出力
電圧VO2は略0Vとなる。従って、短絡によるO2セン
サ系の故障であるのか、O2センサ系は正常であって空
燃比がリーンなのか見分けがつかない。
【0116】このため、クローズドループ条件1判別処
理では、エンジン冷態始動直後の空燃比が、水温補正、
始動後増量補正などにより燃料増量補正がされリッチ状
態となることを利用し、O2センサ(第1のO2センサ2
5a、第2のO2センサ25b)が図示しない内部ヒー
タにより活性化したとみなせる冷却水温以上で、図28
に示すように、エンジン始動後、所定時間(設定値TO2
SHCに相当する時間)が経過し、O2センサ出力電圧VO2
(第1O2センサ出力電圧VO21、第2O2センサ出力電
圧VO22)がV02≧O2SHRTである状態が設定値INLD
に相当する所定時間以上継続した場合には、O2センサ
系は正常であると判断してクローズドループ制御すなわ
ちフィードバック制御に移行する。
理では、エンジン冷態始動直後の空燃比が、水温補正、
始動後増量補正などにより燃料増量補正がされリッチ状
態となることを利用し、O2センサ(第1のO2センサ2
5a、第2のO2センサ25b)が図示しない内部ヒー
タにより活性化したとみなせる冷却水温以上で、図28
に示すように、エンジン始動後、所定時間(設定値TO2
SHCに相当する時間)が経過し、O2センサ出力電圧VO2
(第1O2センサ出力電圧VO21、第2O2センサ出力電
圧VO22)がV02≧O2SHRTである状態が設定値INLD
に相当する所定時間以上継続した場合には、O2センサ
系は正常であると判断してクローズドループ制御すなわ
ちフィードバック制御に移行する。
【0117】また、図30に示すように、O2センサ出
力電圧VO2が略0V付近(VO2<O2SHRT)のときに
は、O2センサ系が短絡して車体にアースされているか
あるいは未活性であると判別し、図31に示すように、
中間の値(VE>VO2≧VL)のときには、O2センサ系
が断線あるいは未活性の状態と判別してオープンループ
制御を継続するのである。
力電圧VO2が略0V付近(VO2<O2SHRT)のときに
は、O2センサ系が短絡して車体にアースされているか
あるいは未活性であると判別し、図31に示すように、
中間の値(VE>VO2≧VL)のときには、O2センサ系
が断線あるいは未活性の状態と判別してオープンループ
制御を継続するのである。
【0118】一方、クローズドループ条件2判別処理に
おいては、第1のO2センサ25aの断線状態を検出す
るためのステップS625〜S627からなる第2の条件のみが
設けられており、ステップS625で、冷却水温TWが設定
値WOPN以上か否かを判別し、TW<WOPNのと
き、クローズドループ条件不成立としてステップS632へ
ジャンプし、第2タイマ作動フラグFLAGTIM2をクリ
アして(FLAGTIM2←0)ルーチンを抜ける。
おいては、第1のO2センサ25aの断線状態を検出す
るためのステップS625〜S627からなる第2の条件のみが
設けられており、ステップS625で、冷却水温TWが設定
値WOPN以上か否かを判別し、TW<WOPNのと
き、クローズドループ条件不成立としてステップS632へ
ジャンプし、第2タイマ作動フラグFLAGTIM2をクリ
アして(FLAGTIM2←0)ルーチンを抜ける。
【0119】また、上記ステップS625で、TW≧WOP
Nのときには、ステップS626へ進んで、第1O2センサ
出力電圧VO21がリッチ判定基準電圧VE以上か否かを判
別し、VO21<VEのとき、ステップS627へ分岐して、第
1O2センサ出力電圧VO21がリーン判定基準電圧VLよ
り低いか否かを判別する。
Nのときには、ステップS626へ進んで、第1O2センサ
出力電圧VO21がリッチ判定基準電圧VE以上か否かを判
別し、VO21<VEのとき、ステップS627へ分岐して、第
1O2センサ出力電圧VO21がリーン判定基準電圧VLよ
り低いか否かを判別する。
【0120】そして、上記ステップS626でVO21≧VEで
あり、空燃比が完全にリッチ状態であるとき、あるい
は、上記ステップS627でVO21<VLであり、空燃比がリ
ーン状態のときには、ステップS628で、第2タイマ作動
フラグFLAGTIM2をセットして(FLAGTIM2←1)
前述の空燃比フィードバック補正係数初期設定及びタイ
マ設定ルーチンによる第2タイマカウント値COUNT
TIM2のカウントをスタートさせ、ステップS629で、第2
タイマカウント値COUNTTIM2が設定値INLDに達
したか否かを判別する。
あり、空燃比が完全にリッチ状態であるとき、あるい
は、上記ステップS627でVO21<VLであり、空燃比がリ
ーン状態のときには、ステップS628で、第2タイマ作動
フラグFLAGTIM2をセットして(FLAGTIM2←1)
前述の空燃比フィードバック補正係数初期設定及びタイ
マ設定ルーチンによる第2タイマカウント値COUNT
TIM2のカウントをスタートさせ、ステップS629で、第2
タイマカウント値COUNTTIM2が設定値INLDに達
したか否かを判別する。
【0121】その結果、上記ステップS629で、COUN
TTIM2<INLDのときには、そのままルーチンを抜
け、COUNTTIM2≧INLDのとき、第1のO2セン
サ25aの活性化が完了してクローズドループ条件が成
立したと判別し、ステップS630で、第1O2センサ側フ
ィードバック制御条件判別フラグFLAGF/B1をセット
すると(FLAGF/B1←1)、ステップS631で、第1モ
ニタオープンループ制御判別フラグFLAGMONI1をク
リアした後(FLAGMONI1←0)、前述のステップS63
2を経てルーチンを抜ける。
TTIM2<INLDのときには、そのままルーチンを抜
け、COUNTTIM2≧INLDのとき、第1のO2セン
サ25aの活性化が完了してクローズドループ条件が成
立したと判別し、ステップS630で、第1O2センサ側フ
ィードバック制御条件判別フラグFLAGF/B1をセット
すると(FLAGF/B1←1)、ステップS631で、第1モ
ニタオープンループ制御判別フラグFLAGMONI1をク
リアした後(FLAGMONI1←0)、前述のステップS63
2を経てルーチンを抜ける。
【0122】一方、ステップS627で、VO21<VLのとき
には、第1のO2センサ25aが断線しているかあるい
は未活性と判別し、前述のステップS632へジャンプして
第2タイマ作動フラグFLAGTIM2をクリアし、ルーチ
ンを抜ける。
には、第1のO2センサ25aが断線しているかあるい
は未活性と判別し、前述のステップS632へジャンプして
第2タイマ作動フラグFLAGTIM2をクリアし、ルーチ
ンを抜ける。
【0123】すなわち、エンジン暖機再始動の場合に
は、実空燃比がリーンの場合があり、O2センサは既に
活性化しているにもかかわらず、O2センサ出力電圧VO
2は略0Vとなる場合がある。従って、前述のクローズ
ドループ条件1判別処理のみでは誤判定となってフィー
ドバック制御に移行できず、空燃比が不適切となってエ
ンジン不調を生じるおそれがある。
は、実空燃比がリーンの場合があり、O2センサは既に
活性化しているにもかかわらず、O2センサ出力電圧VO
2は略0Vとなる場合がある。従って、前述のクローズ
ドループ条件1判別処理のみでは誤判定となってフィー
ドバック制御に移行できず、空燃比が不適切となってエ
ンジン不調を生じるおそれがある。
【0124】この場合、エンジン始動直後には増量補正
による空燃比がリッチ状態となることから、図29に示
すように、エンジン始動後の経過時間が設定値TO2SHD
から設定値TO2SHCまでの間に、一度でも、O2センサ出
力電圧VO2が設定値O2SHIN以上になれば、O2センサ系
は短絡してないと判断することができる。
による空燃比がリッチ状態となることから、図29に示
すように、エンジン始動後の経過時間が設定値TO2SHD
から設定値TO2SHCまでの間に、一度でも、O2センサ出
力電圧VO2が設定値O2SHIN以上になれば、O2センサ系
は短絡してないと判断することができる。
【0125】そして、以後、第1O2センサ側クローズ
ドループ条件2移行判別フラグFLAGCL21(第2O2
センサ側クローズドループ条件2移行判別フラグFLA
GCL22)をセットし、常に、ステップS625(S825)以降
のクローズドループ条件2判別処理へ強制的に移行さ
せ、このクローズドループ条件2判別処理にO2センサ
系に断線などの異常が発生していないかを判別するよう
にしているのである。
ドループ条件2移行判別フラグFLAGCL21(第2O2
センサ側クローズドループ条件2移行判別フラグFLA
GCL22)をセットし、常に、ステップS625(S825)以降
のクローズドループ条件2判別処理へ強制的に移行さ
せ、このクローズドループ条件2判別処理にO2センサ
系に断線などの異常が発生していないかを判別するよう
にしているのである。
【0126】さらに、オープンループ制御からフィード
バック制御に移行した場合の空燃比フィードバック補正
係数は、図12及び図13に示される第1空燃比フィー
ドバック補正係数演算サブルーチン、図14及び図15
に示される第2空燃比フィードバック補正係数演算サブ
ルーチンによって演算・設定される。
バック制御に移行した場合の空燃比フィードバック補正
係数は、図12及び図13に示される第1空燃比フィー
ドバック補正係数演算サブルーチン、図14及び図15
に示される第2空燃比フィードバック補正係数演算サブ
ルーチンによって演算・設定される。
【0127】これらの各サブルーチンにおいては、ステ
ップS7…とステップS9…とが互いに対応し、機能的には
同等である。従って、以下同様に、主として第1空燃比
フィードバック補正係数演算サブルーチンについて説明
し、第2空燃比フィードバック補正係数演算サブルーチ
ンにおいては、第1空燃比フィードバック補正係数演算
サブルーチンに対し、第1のO2センサ25aを第2の
O2センサ25bと読み代え、その出力電圧VO21をVO2
2と読み代える。そして、スライスレベルSL1、設定値
VS1、第1空燃比フィードバック補正係数α1、修正値
α1NEW、積分定数I1、比例定数P1を、それぞれ、スラ
イスレベルSL2、設定値VS2、第2空燃比フィードバ
ック補正係数α2、修正値α2NEW、積分定数I2、比例定
数P2とし、また、第1のO2センサリッチ/リーン判別
フラグFLAGAF1、第1O2センサ側制御周期タイマ作
動フラグFLAGTIMTO21、第1O2センサ側モニタ機能
作動フラグFLAGMP1、第1O2センサ側フィードバッ
ク制御条件判別フラグFLAGF/B1、及び、第1モニタ
オープンループ制御判別フラグFLAGMONI1の各フラ
グ、第1O2センサ側制御周期タイマカウント値COU
NTTIMTO21に対して、第1…を第2…と読み代え、符
号末尾の添字…1を…2と読み代える。
ップS7…とステップS9…とが互いに対応し、機能的には
同等である。従って、以下同様に、主として第1空燃比
フィードバック補正係数演算サブルーチンについて説明
し、第2空燃比フィードバック補正係数演算サブルーチ
ンにおいては、第1空燃比フィードバック補正係数演算
サブルーチンに対し、第1のO2センサ25aを第2の
O2センサ25bと読み代え、その出力電圧VO21をVO2
2と読み代える。そして、スライスレベルSL1、設定値
VS1、第1空燃比フィードバック補正係数α1、修正値
α1NEW、積分定数I1、比例定数P1を、それぞれ、スラ
イスレベルSL2、設定値VS2、第2空燃比フィードバ
ック補正係数α2、修正値α2NEW、積分定数I2、比例定
数P2とし、また、第1のO2センサリッチ/リーン判別
フラグFLAGAF1、第1O2センサ側制御周期タイマ作
動フラグFLAGTIMTO21、第1O2センサ側モニタ機能
作動フラグFLAGMP1、第1O2センサ側フィードバッ
ク制御条件判別フラグFLAGF/B1、及び、第1モニタ
オープンループ制御判別フラグFLAGMONI1の各フラ
グ、第1O2センサ側制御周期タイマカウント値COU
NTTIMTO21に対して、第1…を第2…と読み代え、符
号末尾の添字…1を…2と読み代える。
【0128】第1空燃比フィードバック補正係数演算サ
ブルーチンでは、まず、ステップS701で、第1空燃比フ
ィードバック補正係数α1を設定値にクランプするため
の第1のO2センサ側クランプ条件が成立するか否かを
判別する。
ブルーチンでは、まず、ステップS701で、第1空燃比フ
ィードバック補正係数α1を設定値にクランプするため
の第1のO2センサ側クランプ条件が成立するか否かを
判別する。
【0129】このクランプ条件は、例えば、基本燃料噴
射パルス幅TP が所定値以上の高負荷時、エンジン回転
数NEが所定回転数以上の高回転時、燃料カット中、減
速中、全開加速のフル燃料増量中、低水温時の加減速
中、あるいは、エアコン作動による燃料増量中などのと
き成立と判断され、ステップS702で、第1空燃比フィー
ドバック補正係数α1を設定値にクランプし、ルーチン
を抜ける。
射パルス幅TP が所定値以上の高負荷時、エンジン回転
数NEが所定回転数以上の高回転時、燃料カット中、減
速中、全開加速のフル燃料増量中、低水温時の加減速
中、あるいは、エアコン作動による燃料増量中などのと
き成立と判断され、ステップS702で、第1空燃比フィー
ドバック補正係数α1を設定値にクランプし、ルーチン
を抜ける。
【0130】一方、上記ステップS701で、クランプ条件
不成立と判別されると、上記ステップS701からステップ
S703へ進んで、第1のO2センサリッチ/リーン判別フ
ラグFLAGAF1の値を参照する。この第1のO2センサ
リッチ/リーン判別フラグFLAGAF1は、第1O2セン
サ出力電圧VO21が空燃比リッチ側にあるとき0にクリ
アされ、空燃比リーン側にあるとき1にセットされるも
のであり、前回のルーチン実行時に、右バンクの気筒群
の空燃比がリッチ側にあったかリーン側にあったかを判
別することができる。
不成立と判別されると、上記ステップS701からステップ
S703へ進んで、第1のO2センサリッチ/リーン判別フ
ラグFLAGAF1の値を参照する。この第1のO2センサ
リッチ/リーン判別フラグFLAGAF1は、第1O2セン
サ出力電圧VO21が空燃比リッチ側にあるとき0にクリ
アされ、空燃比リーン側にあるとき1にセットされるも
のであり、前回のルーチン実行時に、右バンクの気筒群
の空燃比がリッチ側にあったかリーン側にあったかを判
別することができる。
【0131】従って、上記ステップS703で、FLAGAF
1 =0のときには、前回、右バンクの気筒群の空燃比が
リッチ側にあったため、ステップS704で、所定値VS1を
スライスレベルSL1とし(SL1←VS1)、FLAGAF
1 =1のときには、前回、右バンクの気筒群の空燃比が
リーン側にあったため、ステップS705へ分岐して、所定
値VS1にヒステリシス分HISを加算してスライスレベ
ルSL1を設定する(SL1←VS1+HIS)。
1 =0のときには、前回、右バンクの気筒群の空燃比が
リッチ側にあったため、ステップS704で、所定値VS1を
スライスレベルSL1とし(SL1←VS1)、FLAGAF
1 =1のときには、前回、右バンクの気筒群の空燃比が
リーン側にあったため、ステップS705へ分岐して、所定
値VS1にヒステリシス分HISを加算してスライスレベ
ルSL1を設定する(SL1←VS1+HIS)。
【0132】そして、上記ステップS704あるいはステッ
プS705でスライスレベルSL1を設定すると、ステップS
706へ進んで、第1O2センサ出力電圧VO21とスライス
レベルSL1とを比較し、現在、右バンクの気筒群の空
燃比がリッチ側にあるかリーン側にあるかを判別し、V
O21≧SL1、すなわち空燃比がリッチ側と判別される
と、上記ステップS706からステップS707へ進み、第1の
O2センサリッチ/リーン判別フラグFLAGAF1がセッ
トされているか否かを判別する。
プS705でスライスレベルSL1を設定すると、ステップS
706へ進んで、第1O2センサ出力電圧VO21とスライス
レベルSL1とを比較し、現在、右バンクの気筒群の空
燃比がリッチ側にあるかリーン側にあるかを判別し、V
O21≧SL1、すなわち空燃比がリッチ側と判別される
と、上記ステップS706からステップS707へ進み、第1の
O2センサリッチ/リーン判別フラグFLAGAF1がセッ
トされているか否かを判別する。
【0133】上記ステップS707で、FLAGAF1=1の
とき、すなわち、前回のルーチン実行時には空燃比リー
ン側であり、今回、空燃比リッチ側となったときには、
上記ステップS707からステップS708へ進んで、第1空燃
比フィードバック補正係数α1を比例定数P1だけマイナ
ス方向へスキップさせて修正値α1NEWを設定する(α1N
EW←α1−P1)。
とき、すなわち、前回のルーチン実行時には空燃比リー
ン側であり、今回、空燃比リッチ側となったときには、
上記ステップS707からステップS708へ進んで、第1空燃
比フィードバック補正係数α1を比例定数P1だけマイナ
ス方向へスキップさせて修正値α1NEWを設定する(α1N
EW←α1−P1)。
【0134】次いで、ステップS709へ進み、第1O2セ
ンサ側制御周期タイマカウント値COUNTTIMTO21を
クリアすると(COUNTTIMTO21←0)、ステップS71
0で、第1O2センサ側制御周期タイマ作動フラグFLA
GTIMTO21をセットし(FLAGTIMTO21←1)、前述の
空燃比フィードバック補正係数初期設定及びタイマ設定
ルーチンによる第1O2センサ側制御周期タイマカウン
ト値COUNTTIMTO21のカウントをスタートさせる。
ンサ側制御周期タイマカウント値COUNTTIMTO21を
クリアすると(COUNTTIMTO21←0)、ステップS71
0で、第1O2センサ側制御周期タイマ作動フラグFLA
GTIMTO21をセットし(FLAGTIMTO21←1)、前述の
空燃比フィードバック補正係数初期設定及びタイマ設定
ルーチンによる第1O2センサ側制御周期タイマカウン
ト値COUNTTIMTO21のカウントをスタートさせる。
【0135】その後、ステップS712へ進んで、現在の第
1O2センサ出力電圧VO21が空燃比リッチ側にあること
を示すため、第1のO2センサリッチ/リーン判別フラ
グFLAGAF1をクリアし(FLAGAF1←0)、ステッ
プS717へ進む。
1O2センサ出力電圧VO21が空燃比リッチ側にあること
を示すため、第1のO2センサリッチ/リーン判別フラ
グFLAGAF1をクリアし(FLAGAF1←0)、ステッ
プS717へ進む。
【0136】また、上記ステップS707で、FLAGAF1
=0、すなわち、前回のルーチン実行時から今回まで空
燃比リッチ側であるときには、上記ステップS707からス
テップS711へ分岐し、第1空燃比フィードバック補正係
数α1を積分定数I1だけ小さくして修正値α1NEWを設定
し(α1NEW←α1−I1)、前述のステップS712で、同様
に、第1のO2センサリッチ/リーン判別フラグFLA
GAF1をクリアした後(FLAGAF1←0)、ステップS7
17へ進む。
=0、すなわち、前回のルーチン実行時から今回まで空
燃比リッチ側であるときには、上記ステップS707からス
テップS711へ分岐し、第1空燃比フィードバック補正係
数α1を積分定数I1だけ小さくして修正値α1NEWを設定
し(α1NEW←α1−I1)、前述のステップS712で、同様
に、第1のO2センサリッチ/リーン判別フラグFLA
GAF1をクリアした後(FLAGAF1←0)、ステップS7
17へ進む。
【0137】一方、上記ステップS706で、VO21<SL
1、すなわち空燃比がリーン側と判別されると、上記ス
テップS706からステップS713へ分岐し、第1のリッチ/
リーン判別フラグFLAGAF1がセットされているか否
かを判別する。
1、すなわち空燃比がリーン側と判別されると、上記ス
テップS706からステップS713へ分岐し、第1のリッチ/
リーン判別フラグFLAGAF1がセットされているか否
かを判別する。
【0138】上記ステップS713で、FLAGAF1=0、
すなわち、前回のルーチン実行時には空燃比リッチ側で
あり、今回、空燃比リーン側となったときには、上記ス
テップS713からステップS714へ進んで、第1空燃比フィ
ードバック補正係数α1を比例定数P1だけプラス方向へ
スキップさせて修正値α1NEWを設定し(α1NEW←α1+
P1)、ステップS716で、現在の第1のO2センサ25a
の出力電圧VO21が空燃比リーン側にあることを示すた
め、第1のO2センサリッチ/リーン判別フラグFLA
GAF1をセットした後(FLAGAF1←1)、ステップS7
17へ進む。
すなわち、前回のルーチン実行時には空燃比リッチ側で
あり、今回、空燃比リーン側となったときには、上記ス
テップS713からステップS714へ進んで、第1空燃比フィ
ードバック補正係数α1を比例定数P1だけプラス方向へ
スキップさせて修正値α1NEWを設定し(α1NEW←α1+
P1)、ステップS716で、現在の第1のO2センサ25a
の出力電圧VO21が空燃比リーン側にあることを示すた
め、第1のO2センサリッチ/リーン判別フラグFLA
GAF1をセットした後(FLAGAF1←1)、ステップS7
17へ進む。
【0139】また、上記ステップS713で、FLAGAF1
=1、すなわち、前回のルーチン実行時から今回まで空
燃比リーン側であるときには、上記ステップS713からス
テップS715へ分岐し、第1空燃比フィードバック補正係
数α1を積分定数I1だけ増加させて修正値α1NEWを設定
すると(α1NEW←α1+I1)、前述のステップS716を経
てステップS717へ進む。
=1、すなわち、前回のルーチン実行時から今回まで空
燃比リーン側であるときには、上記ステップS713からス
テップS715へ分岐し、第1空燃比フィードバック補正係
数α1を積分定数I1だけ増加させて修正値α1NEWを設定
すると(α1NEW←α1+I1)、前述のステップS716を経
てステップS717へ進む。
【0140】すなわち、図27に示すように、O2セン
サ出力電圧VO2(第1O2センサ出力電圧VO21、第2O
2センサ出力電圧VO22)が、スライスレベルSL(第1
O2センサ出力電圧VO21に対するスライスレベルSL
1、第2O2センサ出力電圧VO22に対するスライスレベ
ルSL2)をリッチ側に横切ったとき、空燃比フィード
バック補正係数α(第1空燃比フィードバック補正係数
α1、第2空燃比フィードバック補正係数α2)を比例定
数P(第1空燃比フィードバック補正係数α1に対する
比例定数P1、第2空燃比フィードバック補正係数α2に
対する比例定数P2)によりマイナス方向へスキップさ
せ、次に、積分定数I(第1空燃比フィードバック補正
係数α1に対する積分定数I1、第2空燃比フィードバッ
ク補正係数α2に対する積分定数I2)により徐々にマイ
ナス方向へ補正する。
サ出力電圧VO2(第1O2センサ出力電圧VO21、第2O
2センサ出力電圧VO22)が、スライスレベルSL(第1
O2センサ出力電圧VO21に対するスライスレベルSL
1、第2O2センサ出力電圧VO22に対するスライスレベ
ルSL2)をリッチ側に横切ったとき、空燃比フィード
バック補正係数α(第1空燃比フィードバック補正係数
α1、第2空燃比フィードバック補正係数α2)を比例定
数P(第1空燃比フィードバック補正係数α1に対する
比例定数P1、第2空燃比フィードバック補正係数α2に
対する比例定数P2)によりマイナス方向へスキップさ
せ、次に、積分定数I(第1空燃比フィードバック補正
係数α1に対する積分定数I1、第2空燃比フィードバッ
ク補正係数α2に対する積分定数I2)により徐々にマイ
ナス方向へ補正する。
【0141】その結果、O2センサ出力電圧VO2が反転
し、ヒステリシスHISをもって設定されたスライスレ
ベルSLをリーン側に横切ると、今度は、空燃比フィー
ドバック補正係数αを比例定数Pだけプラス方向へスキ
ップさせ、積分定数Iにより徐々にプラス方向へ補正す
ることにより、制御ハンチングの防止と制御性の向上を
図るのである。
し、ヒステリシスHISをもって設定されたスライスレ
ベルSLをリーン側に横切ると、今度は、空燃比フィー
ドバック補正係数αを比例定数Pだけプラス方向へスキ
ップさせ、積分定数Iにより徐々にプラス方向へ補正す
ることにより、制御ハンチングの防止と制御性の向上を
図るのである。
【0142】また、O2センサ出力電圧VO2がリーン側
からリッチ側にスライスレベルSLを横切ったとき、第
1O2センサ側制御周期タイマカウント値COUNTTIM
TO21(第2O2センサ側制御周期タイマカウント値CO
UNTTIMTO22)のカウントを開始し、リッチ側からリ
ーン側を経て再びリッチ側になったときに、第1O2セ
ンサ側制御周期タイマカウント値COUNTTIMTO21
(第2O2センサ側制御周期タイマカウント値COUN
TTIMTO22)の値を参照することにより、第1のO2セン
サ25a(第2のO2センサ25b)の制御周期TO2を
得ることができる。
からリッチ側にスライスレベルSLを横切ったとき、第
1O2センサ側制御周期タイマカウント値COUNTTIM
TO21(第2O2センサ側制御周期タイマカウント値CO
UNTTIMTO22)のカウントを開始し、リッチ側からリ
ーン側を経て再びリッチ側になったときに、第1O2セ
ンサ側制御周期タイマカウント値COUNTTIMTO21
(第2O2センサ側制御周期タイマカウント値COUN
TTIMTO22)の値を参照することにより、第1のO2セン
サ25a(第2のO2センサ25b)の制御周期TO2を
得ることができる。
【0143】そして、上記ステップS712あるいは上記ス
テップS716からステップS717へ進むと、修正値α1NEWが
下限値LMDMINより小さいか否かを調べ、α1NEW<L
MDMINのときには、ステップS721へ分岐し、下限値L
MDMINをリミッタとして第1空燃比フィードバック補
正係数α1を設定して(α1←LMDMIN)ステップS722
へ進み、α1NEW≧LMDMINのときには、上記ステップS
717からステップS718へ進む。
テップS716からステップS717へ進むと、修正値α1NEWが
下限値LMDMINより小さいか否かを調べ、α1NEW<L
MDMINのときには、ステップS721へ分岐し、下限値L
MDMINをリミッタとして第1空燃比フィードバック補
正係数α1を設定して(α1←LMDMIN)ステップS722
へ進み、α1NEW≧LMDMINのときには、上記ステップS
717からステップS718へ進む。
【0144】ステップS718では、修正値α1NEWが上限値
LMDMAXを越えているか否かを調べ、α1NEW≦LMDM
AXのとき、ステップS719で、修正値α1NEWを第1空燃比
フィードバック補正係数α1として(α1←α1NEW)ステ
ップS722へ進み、α1NEW>LMDMAXのときには、ステ
ップS720で、上限値LMDMAXをリミッタとして第1の
空燃比フィードバック補正係数α1を設定し(α1←LM
DMAX)、ステップS722へ進む。
LMDMAXを越えているか否かを調べ、α1NEW≦LMDM
AXのとき、ステップS719で、修正値α1NEWを第1空燃比
フィードバック補正係数α1として(α1←α1NEW)ステ
ップS722へ進み、α1NEW>LMDMAXのときには、ステ
ップS720で、上限値LMDMAXをリミッタとして第1の
空燃比フィードバック補正係数α1を設定し(α1←LM
DMAX)、ステップS722へ進む。
【0145】ステップS722以降は、第1のO2センサ2
5aの制御周期を監視してフィードバック制御からオー
プンループ制御に移行させるためのモニタ機能を実現す
る処理であり、ステップS722で、第1O2センサ側モニ
タ機能作動フラグFLAGMP1がセットされているか否
か、すなわち、フィードバック制御開始から設定時間が
経過しているか否かを判別し、FLAGMP1=0で設定
時間が経過していないときには、そのままルーチンを抜
ける。
5aの制御周期を監視してフィードバック制御からオー
プンループ制御に移行させるためのモニタ機能を実現す
る処理であり、ステップS722で、第1O2センサ側モニ
タ機能作動フラグFLAGMP1がセットされているか否
か、すなわち、フィードバック制御開始から設定時間が
経過しているか否かを判別し、FLAGMP1=0で設定
時間が経過していないときには、そのままルーチンを抜
ける。
【0146】一方、上記ステップS722で、FLAGMP1
=1のとき、すなわち、フィードバック制御開始から設
定時間が経過しているときには、ステップS723へ進ん
で、第1O2センサ側制御周期タイマカウント値COU
NTTIMTO21が設定値MONTを越えているか否かを判
別し、制御周期TO2が通常よりも長くなっていないか
を調べる。
=1のとき、すなわち、フィードバック制御開始から設
定時間が経過しているときには、ステップS723へ進ん
で、第1O2センサ側制御周期タイマカウント値COU
NTTIMTO21が設定値MONTを越えているか否かを判
別し、制御周期TO2が通常よりも長くなっていないか
を調べる。
【0147】その結果、COUNTTIMTO21≦MONT
のときには、そのままルーチンを抜け、COUNTTIMT
O21>MONTのときには、図28に示すように、空燃
比がリッチ側にはりついた状態、あるいは、リーン側に
はりついた状態であるので、第1O2センサ側のフィー
ドバック制御を中止してオープンループ制御に移行させ
るべく、ステップS724で、第1O2センサ側フィードバ
ック制御判別フラグFLAGF/B1をクリアする(FLA
GF/B1←0)。
のときには、そのままルーチンを抜け、COUNTTIMT
O21>MONTのときには、図28に示すように、空燃
比がリッチ側にはりついた状態、あるいは、リーン側に
はりついた状態であるので、第1O2センサ側のフィー
ドバック制御を中止してオープンループ制御に移行させ
るべく、ステップS724で、第1O2センサ側フィードバ
ック制御判別フラグFLAGF/B1をクリアする(FLA
GF/B1←0)。
【0148】次いで、ステップS725へ進み、前述の第1
O2センサ側フィードバック制御条件判別サブルーチン
に対し、モニタ機能によりオープンループ制御に移行し
たことを知らせるため、第1モニタオープンループ制御
判別フラグFLAGMONI1をセットし(FLAGMONI1←
1)、ステップS726で、第1O2センサ側制御周期タイ
マ作動フラグFLAGTIMTO21をクリアして(FLAGT
IMTO21←0)ルーチンを抜ける。
O2センサ側フィードバック制御条件判別サブルーチン
に対し、モニタ機能によりオープンループ制御に移行し
たことを知らせるため、第1モニタオープンループ制御
判別フラグFLAGMONI1をセットし(FLAGMONI1←
1)、ステップS726で、第1O2センサ側制御周期タイ
マ作動フラグFLAGTIMTO21をクリアして(FLAGT
IMTO21←0)ルーチンを抜ける。
【0149】
【発明の効果】以上説明したように本発明によれば、エ
ンジン冷却水温が空燃比センサ活性と見做し得る設定値
以上で、空燃比センサの出力値が断線時に取り得る中間
値よりも高く完全にリッチ空燃比と見做し得るリッチ判
定基準電圧以上の状態、または、空燃比センサの出力値
が上記中間値よりも低く空燃比リーンと見做し得るリー
ン判定基準電圧と該リーン判定基準電圧よりも低く設定
され短絡を判断するための故障判定電圧とによる電圧範
囲内に在る状態が、所定時間以上継続したとき、空燃比
センサ活性且つ正常と判断し、空燃比フィードバック制
御に移行するので、空燃比センサ出力値が正規領域に移
行することによる動的観点から、空燃比センサ系の異常
診断と空燃比センサの活性判断とを行うことが可能とな
り、空燃比センサ系の短絡や断線等の異常判断と、空燃
比センサの活性判断とを的確且つ同時に、短時間で判断
することができる。そして、空燃比センサの正常且つ活
性時には早期に空燃比フィードバック制御に移行するこ
とができるため、空燃比制御性が向上し、排気エミッシ
ョンを改善することができる。 また、エンジン始動直後
は燃料増量補正が行われることに着目し、エンジン始動
の時間がエンジン始動直後の燃料増量期間にあると見做
し得る所定時間範囲内にあるとき、上記リーン基準判定
電圧よりも低く且つ上記故障判定電圧よりも高く設定さ
れた設定値以上に、一度でも空燃比センサの出力値が上
昇した場合は、空燃比センサ活性且つ正常と仮判断し、
さらに、エンジン冷却水温が空燃比センサ活性と見做し
得る設定値以上で、空燃比センサの出力値が上記リッチ
判定基準電圧以上の状態または上記リーン判定基準電圧
未満の状態が、所定時間以上継続したか否かにより検証
を行い、これら条件の成立時に、空燃比センサ活性且つ
正常と確定判断して空燃比フィードバック制御に移行す
るので、エンジン暖機再始動で空燃比センサが既活性あ
るいは直ちに活性化し、このとき実空燃比がリーンの場
合であっても、確実に空燃比センサの活性及び正常状態
を短時間で判断することができ、空燃比センサが正常且
つ活性のときには直ちに空燃比フィードバック制御に移
行することが可能となり、空燃比制御性を著しく向上し
て排気エミッションを改善することができる。 更に、上
記条件が何れも成立しないときは、空燃比センサが非活
性或いは空燃比センサ系の異常と判断し、空燃比オープ
ンループ制御を継続するので、空燃比センサ系の短絡や
断線等の異常時、及び空燃比センサの非活性時は、確実
に空燃比オープンループ制御を継続して空燃比制御性を
維持することができる。従って、実空燃比状態を適正に
検出できないときに空燃比フィードバック制御に移行す
ることによる空燃比制御性の悪化を確実に防止して排気
エミッションの悪化を的確に防止することができる。
ンジン冷却水温が空燃比センサ活性と見做し得る設定値
以上で、空燃比センサの出力値が断線時に取り得る中間
値よりも高く完全にリッチ空燃比と見做し得るリッチ判
定基準電圧以上の状態、または、空燃比センサの出力値
が上記中間値よりも低く空燃比リーンと見做し得るリー
ン判定基準電圧と該リーン判定基準電圧よりも低く設定
され短絡を判断するための故障判定電圧とによる電圧範
囲内に在る状態が、所定時間以上継続したとき、空燃比
センサ活性且つ正常と判断し、空燃比フィードバック制
御に移行するので、空燃比センサ出力値が正規領域に移
行することによる動的観点から、空燃比センサ系の異常
診断と空燃比センサの活性判断とを行うことが可能とな
り、空燃比センサ系の短絡や断線等の異常判断と、空燃
比センサの活性判断とを的確且つ同時に、短時間で判断
することができる。そして、空燃比センサの正常且つ活
性時には早期に空燃比フィードバック制御に移行するこ
とができるため、空燃比制御性が向上し、排気エミッシ
ョンを改善することができる。 また、エンジン始動直後
は燃料増量補正が行われることに着目し、エンジン始動
の時間がエンジン始動直後の燃料増量期間にあると見做
し得る所定時間範囲内にあるとき、上記リーン基準判定
電圧よりも低く且つ上記故障判定電圧よりも高く設定さ
れた設定値以上に、一度でも空燃比センサの出力値が上
昇した場合は、空燃比センサ活性且つ正常と仮判断し、
さらに、エンジン冷却水温が空燃比センサ活性と見做し
得る設定値以上で、空燃比センサの出力値が上記リッチ
判定基準電圧以上の状態または上記リーン判定基準電圧
未満の状態が、所定時間以上継続したか否かにより検証
を行い、これら条件の成立時に、空燃比センサ活性且つ
正常と確定判断して空燃比フィードバック制御に移行す
るので、エンジン暖機再始動で空燃比センサが既活性あ
るいは直ちに活性化し、このとき実空燃比がリーンの場
合であっても、確実に空燃比センサの活性及び正常状態
を短時間で判断することができ、空燃比センサが正常且
つ活性のときには直ちに空燃比フィードバック制御に移
行することが可能となり、空燃比制御性を著しく向上し
て排気エミッションを改善することができる。 更に、上
記条件が何れも成立しないときは、空燃比センサが非活
性或いは空燃比センサ系の異常と判断し、空燃比オープ
ンループ制御を継続するので、空燃比センサ系の短絡や
断線等の異常時、及び空燃比センサの非活性時は、確実
に空燃比オープンループ制御を継続して空燃比制御性を
維持することができる。従って、実空燃比状態を適正に
検出できないときに空燃比フィードバック制御に移行す
ることによる空燃比制御性の悪化を確実に防止して排気
エミッションの悪化を的確に防止することができる。
【図1】第1O2センサ側フィードバック制御条件判別
手順のフローチャート(その1)
手順のフローチャート(その1)
【図2】第1O2センサ側フィードバック制御条件判別
手順のフローチャート(その2)
手順のフローチャート(その2)
【図3】第1O2センサ側フィードバック制御条件判別
手順のフローチャート(その3)
手順のフローチャート(その3)
【図4】第2O2センサ側フィードバック制御条件判別
手順のフローチャート(その1)
手順のフローチャート(その1)
【図5】第2O2センサ側フィードバック制御条件判別
手順のフローチャート(その2)
手順のフローチャート(その2)
【図6】第2O2センサ側フィードバック制御条件判別
手順のフローチャート(その3)
手順のフローチャート(その3)
【図7】燃料噴射量設定手順のフローチャート、
【図8】エンジン回転数算出及び気筒判別手順のフロー
チャート
チャート
【図9】燃料噴射開始設定手順のフローチャート
【図10】燃料噴射手順のフローチャート
【図11】空燃比フィードバック補正係数設定手順のフ
ローチャート
ローチャート
【図12】第1空燃比フィードバック補正係数演算手順
のフローチャート(その1)
のフローチャート(その1)
【図13】第1空燃比フィードバック補正係数演算手順
のフローチャート(その2)
のフローチャート(その2)
【図14】第2空燃比フィードバック補正係数演算手順
のフローチャート(その1)
のフローチャート(その1)
【図15】第2空燃比フィードバック補正係数演算手順
のフローチャート(その2)
のフローチャート(その2)
【図16】空燃比フィードバック補正係数初期設定及び
タイマ設定手順のフローチャート(その1)
タイマ設定手順のフローチャート(その1)
【図17】空燃比フィードバック補正係数初期設定及び
タイマ設定手順のフローチャート(その2)
タイマ設定手順のフローチャート(その2)
【図18】空燃比フィードバック補正係数初期設定及び
タイマ設定手順のフローチャート(その3)
タイマ設定手順のフローチャート(その3)
【図19】エンジン制御系の概略図
【図20】クランクロータとクランク角センサの正面図
【図21】図20の側面図
【図22】第1のクランクロータと第1のクランク角セ
ンサの正面図
ンサの正面図
【図23】第2のクランクロータと第2のクランク角セ
ンサの正面図
ンサの正面図
【図24】カムロータとカム角センサの正面図
【図25】制御装置の回路構成図
【図26】O2センサの出力特性図
【図27】O2センサ出力電圧と空燃比フィードバック
補正係数との関係を示す説明図
補正係数との関係を示す説明図
【図28】エンジン冷態始動時における制御条件判定を
示す説明図
示す説明図
【図29】エンジン暖機再始動時における制御条件判定
を示す説明図
を示す説明図
【図30】O2センサ系短絡状態における制御条件判定
を示す説明図
を示す説明図
【図31】O2センサ系断線状態における制御条件判定
を示す説明図
を示す説明図
【図32】燃料噴射及び点火のタイミングチャート
1 エンジン 25a 第1のO2センサ 25b 第2のO2センサ VO21 第1O2センサ出力電圧 VO22 第2O2センサ出力電圧 O2SHIN 設定値
Claims (1)
- 【請求項1】活性に伴いリッチ空燃比での出力値が上昇
する空燃比センサをエンジンの排気系に配設すると共
に、上記空燃比センサの出力値に基づき該空燃比センサ
の活性及び正常を判断し、空燃比センサが未活性或いは
異常と判断されるときは、空燃比オープンループ制御を
継続し、空燃比センサが活性且つ正常と判断されると
き、空燃比オープンループ制御から空燃比センサの出力
値に基づく空燃比フィードバック制御に移行するエンジ
ンの空燃比制御装置において、 エンジン冷却水温が空燃比センサ活性と見做し得る設定
値以上で、空燃比センサの出力値が断線時に取り得る中
間値よりも高く完全にリッチ空燃比と見做し得るリッチ
判定基準電圧以上の状態、または、空燃比センサの出力
値が上記中間値よりも低く空燃比リーンと見做し得るリ
ーン判定基準電圧と該リーン判定基準電圧よりも低く設
定され短絡を判断するための故障判定電圧とによる電圧
範囲内に在る状態が、所定時間以上継続したとき、空燃
比センサ活性且つ正常と判断し、空燃比フィードバック
制御に移行する第1の手段と、 エンジン始動の時間がエンジン始動直後の燃料増量期間
にあると見做し得る所定時間範囲内にあるとき、上記リ
ーン基準判定電圧よりも低く且つ上記故障判定電圧より
も高く設定された設定値以上に、一度でも空燃比センサ
の出力値が上昇した場合は、エンジン冷却水温が空燃比
センサ活性と見做し得る設定値以上で、空燃比センサの
出力値が上記リッチ判定基準電圧以上の状態または上記
リーン判定基準電圧未満の状態が、所定時間以上継続し
たとき、空燃比センサ活性且つ正常と判断し、空燃比フ
ィードバック制御に移行する第2の手段と、 上記条件が何れも成立しないときは、空燃比センサが非
活性或いは空燃比センサ系の異常と判断し、空燃比オー
プンループ制御を継続する第3の手段とを備えたことを
特徴とするエンジンの空燃比制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3226209A JP3064547B2 (ja) | 1991-09-05 | 1991-09-05 | エンジンの空燃比制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3226209A JP3064547B2 (ja) | 1991-09-05 | 1991-09-05 | エンジンの空燃比制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0565840A JPH0565840A (ja) | 1993-03-19 |
JP3064547B2 true JP3064547B2 (ja) | 2000-07-12 |
Family
ID=16841611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3226209A Expired - Fee Related JP3064547B2 (ja) | 1991-09-05 | 1991-09-05 | エンジンの空燃比制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3064547B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5706758B2 (ja) * | 2011-05-30 | 2015-04-22 | 本田技研工業株式会社 | 自動二輪車の酸素センサの故障検出装置 |
JP6789752B2 (ja) * | 2016-10-14 | 2020-11-25 | 新電元工業株式会社 | 内燃機関制御装置、内燃機関制御システム、および、内燃機関制御装置の制御方法 |
-
1991
- 1991-09-05 JP JP3226209A patent/JP3064547B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0565840A (ja) | 1993-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS60237142A (ja) | 内燃機関の制御装置 | |
JP3560263B2 (ja) | エンジンの触媒下流酸素センサの劣化診断装置 | |
JP3064547B2 (ja) | エンジンの空燃比制御装置 | |
JP3963993B2 (ja) | エンジンの空燃比制御装置 | |
JPS6022034A (ja) | 内燃機関の回転数制御方法 | |
JPH06200833A (ja) | 排気ガス再循環装置の異常判定装置 | |
JPS61116044A (ja) | 内燃エンジンの空燃比フイ−ドバツク制御方法における排気ガス濃度センサ系の異常検出方法 | |
JPH10121991A (ja) | エンジンの吸気制御システムの故障診断装置 | |
JP2775676B2 (ja) | 内燃機関の燃料供給制御装置 | |
JP2000291467A (ja) | 内燃機関の制御装置 | |
JPS6019936A (ja) | 内燃機関の回転数制御方法 | |
JP3064531B2 (ja) | エンジンの空燃比制御方法 | |
JPH0988786A (ja) | エンジンの点火時期制御装置 | |
JP2780754B2 (ja) | エンジンの吸気量制御装置 | |
JP2004116372A (ja) | エンジンの点火時期制御装置 | |
JPH045818B2 (ja) | ||
JP2615680B2 (ja) | 内燃機関の空燃比学習制御方法 | |
JP2001271696A (ja) | エンジンの触媒劣化診断装置 | |
JP2000170586A (ja) | エンジンの制御装置 | |
JP3544765B2 (ja) | エンジンの触媒活性状態判別装置 | |
JP2001132590A (ja) | エンジンのアシストエア供給系の診断装置 | |
JP3559164B2 (ja) | 内燃機関の大気圧補正進角制御方法 | |
JPS63227938A (ja) | 燃料噴射弁の故障診断装置 | |
JPH0710059Y2 (ja) | エンジンの点火時期制御装置 | |
JP3334453B2 (ja) | 内燃機関の触媒劣化検出装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |