(57)【要約】      （修正有）【課題】エンジンの性能悪化を最小限にとどめつつ、排気還流量の予期せぬ増減に対応する。【解決手段】エンジン燃焼悪化度を検出する手段と、前記エンジンの燃焼悪化度が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段とを備える。【選択図】図３
2015117642.tif 000002
【特許請求の範囲】
【請求項１】
吸気側への排気還流を行う内燃機関の制御装置において、
排気還流中の前記内燃機関の燃焼悪化度を検出する手段と、
少なくとも前記内燃機関の燃焼悪化度が所定範囲を越える気筒に対して、
排気還流量を減少させるＥＧＲ補正手段と、を備えたことを特徴とする内燃機関の制御装置。
【請求項２】
請求項１において、
前記燃焼悪化度を検出する手段は、気筒毎の回転変動を検出する回転変動検出手段であり、
前記ＥＧＲ補正手段は、前記気筒毎の回転変動が所定範囲を越える気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項３】
請求項２において、
前記回転変動検出手段は、気筒毎の角加速度の平均値を演算する手段であり、
前記ＥＧＲ補正手段は、前記角加速度平均値が所定値以下の気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項４】
請求項２において、
前記回転変動検出手段は、気筒毎の角加速度のばらつき度合いを演算する手段であり、
前記ＥＧＲ補正手段は、前記角加速度のばらつき度合いが所定範囲を所定値以上の気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項５】
請求項２において、
前記ＥＧＲ補正手段は、
全気筒の排気還流量を減少させることで、
前記回転変動が所定範囲を越える気筒の排気還流量を
減少させることを
特徴とする内燃機関の制御装置。
【請求項６】
請求項２において、
前記ＥＧＲ補正手段は、
前記回転変動が所定範囲を越える気筒の排気還流量のみ
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項７】
請求項２において、
前記ＥＧＲ補正手段は、排気還流を実施していないときに
前記気筒毎の回転変動が所定範囲を越えておらず、かつ
前記ＥＧＲ手段が排気還流を実施中のとき、
エンジンの回転変動が所定範囲を越える気筒が発生したときに、当該気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項８】
請求項２において、
前記排気還流量を所定量減少させた後、
前記排気還流量を所定量減少させた気筒の前記回転変動が所定範囲を越えているとき、
前記気筒の点火時期を進角側に補正する手段とを備えたことを
特徴とする内燃機関の制御装置。
【請求項９】
請求項２において、
全気筒の排気還流量を所定量減少させる前に、
回転変動が所定範囲を越えている気筒以外の点火時期を遅角側に補正した後、
全気筒の排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項１０】
請求項２において、
複数気筒間の空燃比ばらつきを検出する空燃比ばらつき検出手段を備え、
前記ＥＧＲ補正手段は、排気還流を実施中で、かつ
前記複数気筒間の空燃比ばらつきが所定以下のときに、
回転変動が所定範囲を越える気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項１１】
請求項１０において、
各気筒の排気管に空燃比を検出する手段を備え、
前記ＥＧＲ補正手段は、前記各気筒の空燃比の最大値と最小値の差が所定値以下のときに、
少なくとも回転変動が所定範囲を越える気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項１２】
請求項１０において、
排気管集合部に空燃比を検出する手段と、
排気管集合部の空燃比信号の内、エンジンが２回転する周期の成分の振幅を検出する手段と、を備え、
前記ＥＧＲ補正手段は、前記エンジン２回転周期成分の振幅が所定値以下のときに、
少なくとも回転変動が所定範囲を越える気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項１３】
請求項１０において、
前記ＥＧＲ補正手段は、排気還流を実施していないときに
前記複数気筒間の空燃比ばらつきが所定以下かつ前記気筒毎の回転変動が所定範囲を越えておらず、かつ
排気還流を実施中で前記複数気筒間の空燃比ばらつきが所定以下のときに、
少なくとも回転変動が所定範囲を越える気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項１４】
請求項１において、
前記燃焼悪化度を検出する手段は、気筒毎の燃焼圧変動を検出する燃焼圧変動検出手段であり、
前記ＥＧＲ補正手段は、気筒毎の燃焼圧変動が所定範囲を越える気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項１５】
請求項１において、
前記燃焼悪化度を検出する手段は、気筒毎のイオン電流変動を検出するイオン電流変動検出手段であり、
前記ＥＧＲ補正手段は、気筒毎のイオン電流変動が所定範囲を越える気筒に対して、
排気還流量を減少させることを
特徴とする内燃機関の制御装置。
【請求項１６】
請求項２において、
排気還流量を所定量減少させた後、
排気還流量を所定量減少させた気筒の燃焼悪化度が所定範囲を越えているとき、
異常を報知する手段を備えたことを
特徴とする内燃機関の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンの制御装置に関するものであり、特に、ＥＧＲ量の制御に関する。
【背景技術】
【０００２】
従来より、燃費向上等を目的とした、エンジンの排気を吸気側へ還流させる排気還流制御（ＥＧＲ制御）が知られている（例えば、特許文献１記載）。
【０００３】
また、エンジンの複数気筒で回転変動が生じたときに、変動を抑制することが知られている（例えば、特許文献２記載）。この公報には、エンジンの回転変動が起こっている異常気筒の情報と、空燃比が目標空燃比に対してリッチまたはリーン側にずれているかを判定結果とに基づいて、各気筒のずれレベルを算出し、ずれレベル情報に基づいて、各気筒の燃料噴射弁の燃料噴射量に対する補正量を算出することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１１２７１号公報
【特許文献２】特開２００４−３４６８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
吸気側へ排気ガスを還流する際に、排気還流管に堆積物が生じた時や、還流する排気ガス量を制御するためのＥＧＲ弁の経年劣化や異常が発生した時等に、予期せず排気還流量が増減する可能性が考えられる。特に、予期せぬ排気還流量の増加が発生した時には、気筒内に流入する排気ガス量が失火限界を超えてエンジンの燃焼不安定化に繋がる畏れがある。このような場合に先行技術記載のように燃料噴射量補正等の失火防止制御を行うと、燃費性能・排気性能等が低下してしまう。
【０００６】
本発明はこのような課題に鑑みてなされたものであって、その目的はエンジンの性能悪化を最小限にとどめつつ、排気還流量の予期せぬ増減に対応することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。本発明は上記課題を解決する手段を複数含んでいるが、例えば本発明の制御装置は、吸気側への排気還流を行う内燃機関の制御装置において、排気還流中の前記内燃機関の燃焼悪化度を検出する手段と、少なくとも前記内燃機関の燃焼悪化度が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段と、を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、予期せぬ排気還流量増加が発生しても、排気還流量を適切に減少させることができるので、エンジンの性能悪化を最小限にとどめることができる。
【図面の簡単な説明】
【０００９】
【図１】実施例１、２、４〜６、８、９、１２におけるエンジン制御システム図
【図２】実施例１、２、４〜６、８、９、１２におけるコントロールユニットの内部を表した図
【図３】実施例１、２における制御全体を表したブロック図
【図４】実施例１、３、４〜９、１２における気筒別回転変動検出部のブロック図
【図５】実施例１、３、４〜９、１２における気筒別回転変動平均値演算部のブロック図
【図６】実施例１、３、４〜９、１２における回転変動発生気筒番号演算部のブロック図
【図７】実施例１、２、５、１０〜１２におけるＥＧＲ補正値演算部のブロック図
【図８】実施例２における気筒別回転変動検出部のブロック図
【図９】実施例２における気筒別回転変動分散値演算部のブロック図
【図１０】実施例２における回転変動発生気筒番号演算部のブロック図
【図１１】実施例３におけるエンジン制御システム図
【図１２】実施例３におけるエンジン制御システム図
【図１３】実施例３におけるコントロールユニットの内部を表した図
【図１４】実施例３における制御全体を表したブロック図
【図１５】実施例３における気筒別ＥＧＲ補正値演算部のブロック図
【図１６】実施例４における制御全体を表したブロック図
【図１７】実施例４における制御モード演算部を表したブロック図
【図１８】実施例４におけるＥＧＲ補正値演算部を表したブロック図
【図１９】実施例４、９におけるＥＧＲ値切換部を表したブロック図
【図２０】実施例５における制御全体を表したブロック図
【図２１】実施例５における気筒別点火時期補正値演算部を表したブロック図
【図２２】実施例６における制御全体を表したブロック図
【図２３】実施例６における気筒別点火時期補正値演算部を表したブロック図
【図２４】実施例６におけるＥＧＲ補正値演算部を表したブロック図
【図２５】実施例７におけるエンジン制御システム図
【図２６】実施例７におけるエンジン制御システム図
【図２７】実施例７におけるコントロールユニットの内部を表した図
【図２８】実施例７における制御全体を表したブロック図
【図２９】実施例７における空燃比ばらつき検出部のブロック図
【図３０】実施例７、８、１０〜１２におけるＥＧＲ補正値演算部のブロック図
【図３１】実施例８における制御全体を表したブロック図
【図３２】実施例８〜１２における空燃比ばらつき検出部のブロック図
【図３３】実施例８〜１２における２回転成分演算部のブロック図
【図３４】実施例８〜１２における空燃比ばらつき発生フラグ演算部のブロック図
【図３５】実施例９における制御全体を表したブロック図
【図３６】実施例９における制御モード演算部を表したブロック図
【図３７】実施例９におけるＥＧＲ補正値演算部のブロック図
【図３８】実施例１０におけるエンジン制御システム図
【図３９】実施例１０におけるエンジン制御システム図
【図４０】実施例１０におけるコントロールユニットの内部を表した図
【図４１】実施例１０における制御全体を表したブロック図
【図４２】実施例１０における気筒別筒内圧変動検出部を表したブロック図
【図４３】実施例１０における気筒別図示平均有効圧演算部を表したブロック図
【図４４】実施例１０における筒内圧変動発生気筒番号演算部を表したブロック図
【図４５】実施例１１におけるエンジン制御システム図
【図４６】実施例１１におけるエンジン制御システム図
【図４７】実施例１１におけるコントロールユニットの内部を表した図
【図４８】実施例１１における制御全体を表したブロック図
【図４９】実施例１１における気筒別イオン電流変動検出部を表したブロック図
【図５０】実施例１１における気筒別イオン電流分散値演算部を表したブロック図
【図５１】実施例１１におけるイオン電流変動発生気筒番号演算部を表したブロック図
【図５２】実施例１２における制御全体を表したブロック図
【図５３】実施例１２における異常判定部を表したブロック図
【発明を実施するための形態】
【００１０】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１１】
本実施例では、排気還流を実施しているとき、かつクランク角センサ１５の信号に基づいて、気筒毎の角加速度の平均値が所定値より小さい気筒が検出されたときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御について説明する。
【００１２】
図１は、本実施例を示すシステム図である。多気筒（ここでは４気筒）で構成されるエンジン９において、外部からの空気はエアクリーナ１を通過し、吸気マニホールド４、コレクタ５を経てシリンダー内に流入する。流入空気量は電子スロットル３により調節される。エアフローセンサ２では流入空気量が検出される。また、吸気温センサ２９で、吸気温が検出される。クランク角センサ１５では、クランク軸の回転角１０゜毎の信号と燃焼周期毎の信号が出力される。水温センサ１４はエンジン９の冷却水温度を検出する。またアクセル開度センサ１３は、アクセル６の踏み込み量を検出し、それによって運転者の要求トルクを検出する。
【００１３】
アクセル開度センサ１３、エアフローセンサ２、吸気温センサ２９、電子スロットル３に取り付けられたスロットル開度センサ１７、クランク角センサ１５、水温センサ１４のそれぞれの信号は、後述のコントロールユニット１６に送られ、これらセンサ出力からエンジン９の運転状態を得て、空気量、燃料噴射量、点火時期のエンジン９の主要な操作量が最適に演算される。
【００１４】
コントロールユニット１６内で演算された目標空気量は、目標スロットル開度→電子スロットル駆動信号に変換され、電子スロットル３に送られる。燃料噴射量は開弁パルス信号に変換され、燃料噴射弁(インジェクタ)７に送られる。またコントロールユニット１６で演算された点火時期で点火されるよう駆動信号が点火プラグ８に送られる。
【００１５】
噴射された燃料は吸気マニホールドからの空気と混合されエンジン９のシリンダー内に流入し混合気を形成する。混合気は所定の点火時期で点火プラグ８から発生される火花により爆発し、その燃焼圧によりピストンを押し下げてエンジン９の動力となる。爆発後の排気は排気マニホールド１０を経て三元触媒１１に送り込まれる。排気還流管１８を通って排気の一部は吸気側に還流される。還流量はＥＧＲ弁１９によって制御される。
【００１６】
排気管集合部に空燃比センサ１２が取り付けられている。触媒下流Ｏ２センサ２０は三元触媒１１の下流に取り付けられている。
【００１７】
図２はコントロールユニット１６の内部を示したものである。ＥＣＵ１６内にはエアフローセンサ２、空燃比センサ１２、アクセル開度センサ１３、水温センサ１４、クランク角センサ１５、スロットル弁開度センサ１７、触媒下流Ｏ２センサ２０、吸気温センサ２９、車速センサ３０の各センサ出力値が入力され、入力回路２４にてノイズ除去等の信号処理を行った後、入出力ポート２５に送られる。入力ポートの値はＲＡＭ２３に保管され、ＣＰＵ２１内で演算処理される。演算処理の内容を記述した制御プログラムはＲＯＭ２２に予め書き込まれている。制御プログラムに従って演算された各アクチュエータ作動量を表す値はＲＡＭ２３に保管された後、入出力ポート２５に送られる。点火プラグ８の作動信号は点火出力回路２６内の一次側コイルの通流時はＯＮとなり、非通流時はＯＦＦとなるＯＮ・ＯＦＦ信号がセットされる。点火時期はＯＮからＯＦＦになる時である。出力ポートにセットされた点火プラグ８用の信号は点火出力回路２６で燃焼に必要な十分なエネルギーに増幅され点火プラグ８に供給される。また燃料噴射弁７の駆動信号は開弁時ＯＮ、閉弁時ＯＦＦとなるＯＮ・ＯＦＦ信号がセットされ、燃料噴射弁駆動回路２７で燃料噴射弁７を開くに十分なエネルギーに増幅され燃料噴射弁７に送られる。電子スロットル３の目標開度を実現する駆動信号は、電子スロットル駆動回路２８を経て、電子スロットル３に送られる。ＥＧＲ弁１９の目標開度を実現する駆動信号は、ＥＧＲ弁駆動回路３４を経て、ＥＧＲ弁１９に送られる。
【００１８】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３は制御全体を表したブロック図であり、以下の演算部から構成される。
【００１９】
・気筒別回転変動検出部（図４〜図６）
・ＥＧＲ補正値演算部（図７）
「気筒別回転変動検出部」では、クランク角センサ１５の信号から排気還流中の気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、Cyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁１９の開度を制御する。TgOpの演算方法は、従来、様々な制御方式が示されているので、ここでは詳述しない。例えば、エンジン９の運転条件(負荷、回転速度)から求める。以下、各演算部の詳細を説明する。
【００２０】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示される。「気筒別回転変動平均値演算部」では、Ne(回転速度)とCYLCNT(シリンダ番号)から、mdNe_1〜4(１〜４番気筒回転変動平均値)を演算する。CYLCNT(シリンダ番号)は、Ｎ番気筒のピストン位置が所定値にあるときに更新される値である。ここでは、当該気筒の圧縮ＴＤＣ前１１０degで更新されるものとする。「回転変動発生気筒番号演算部」では、mdNe_1〜4から、Cyl_dNeを演算する。以下に、気筒別回転変動平均値演算部と回転変動発生気筒番号演算部の詳細を述べる。
【００２１】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示される。
【００２２】
・Ne(回転速度)の今回値と前回値の差を演算し、dNe(回転変動)とする。
【００２３】
・CYLCNT=1のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe_2(前回値)
dNe_3=dNe_3(前回値), dNe_4=dNe
・CYLCNT=2のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe_2(前回値)
dNe_3=dNe, dNe_4=dNe_4(前回値)
・CYLCNT=3のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe
dNe_3=dNe_3(前回値), dNe_4=dNe_4(前回値)
・CYLCNT=4のとき、
dNe_1=dNe, dNe_2=dNe_2(前回値)
dNe_3=dNe_3(前回値), dNe_4=dNe_4(前回値)
ここに、
dNe_1：１番気筒回転変動
dNe_2：２番気筒回転変動
dNe_3：３番気筒回転変動
dNe_4：４番気筒回転変動
である。次に、以下の処理を行う。
【００２４】
・CYLCNT=1のとき、
過去K回分のdNe_4の平均値をmdNe_4とし、
mdNe_1, mdNe_2, mdNe_3,は、前回値を維持する。
【００２５】
・CYLCNT=2のとき、
過去K回分のdNe_4の平均値をmdNe_3とし、
mdNe_1, mdNe_2, mdNe_4,は、前回値を維持する。
【００２６】
・CYLCNT=3のとき、
過去K回分のdNe_2の平均値をmdNe_2とし、
mdNe_1, mdNe_3, mdNe_4,は、前回値を維持する。
【００２７】
・CYLCNT=4のとき、
過去K回分のdNe_1の平均値をmdNe_1とし、
mdNe_2, mdNe_3, mdNe_4,は、前回値を維持する。
【００２８】
Kの値は、平均値として収束する程度の値に経験的に決めるのが良い。また、平均値を求める処理は、メモリ量の負担が少ない移動平均処理でも良い。
【００２９】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示される。
【００３０】
・もっとも小さいmdNe_n(n：気筒番号)をmin_mdNeとする。
【００３１】
また、気筒番号をmin_cylとする。
【００３２】
・min_mdNe≦k_min_mdNeのとき、Cyl_dNe=min_cylとする。
【００３３】
・min_mdNe＞k_min_mdNeのとき、Cyl_dNe=0とする。
【００３４】
k_min_mdNeは、ＥＧＲ増加によるトルク低下を判定する値であり、エンジン性能、目標性能等に応じて決めるのが良い。
【００３５】
＜ＥＧＲ補正値演算部（図７）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図９に示される。
i)Cyl_dNe≧1のとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
とする。
ii)上記以外のとき、
TgOp_hos=TgOp_hos(前回値)＋k2_TgOp_hos
とする。
ただし、TgOp_hosは、下記範囲とする。
【００３６】
min_TgOp_hos≦TgOp_hos≦max_TgOp_hos
k1_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁１９の開度を減少させる値であり、k2_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁１９の開度を増加(元に戻す値)である。k1_TgOp_hos,k2_TgOp_hos,min_TgOp_hos,max_TgOp_hosは、エンジン性能、目標性能等に応じて決めるのが良い。なお、ＥＧＲ弁１９の開度が、ＥＧＲ弁目標開度基本値(TgOp)より大きくならないように、max_TgOp_hosは、０に設定してもよい。また、ＥＧＲ弁開度を減少させた後は、増加側に補正しないように、上述のii)の処理は、
TgOp_hos=TgOp_hos(前回値)
としてもよい。
【実施例２】
【００３７】
本実施例では、排気還流を実施しているとき、かつクランク角センサ１５の信号に基づいて、気筒毎の角加速度の分散値が所定値より大きい気筒が検出されたときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御を説明する。
【００３８】
図１は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図２はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【００３９】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３は制御全体を表したブロック図であり、以下の演算部から構成される。
【００４０】
・気筒別回転変動検出部（図８〜図１０）
・ＥＧＲ補正値演算部（図７）
「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度分散値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、Cyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁１９の開度を制御する。以下、各演算部の詳細を説明する。
【００４１】
＜気筒別回転変動検出部（図８）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図８に示される。「気筒別回転変動分散値演算部」では、Ne(回転速度)とCYLCNT(シリンダ番号)から、vdNe_1〜4(１〜４番気筒回転変動分散値)を演算する。「回転変動発生気筒番号演算部」では、vdNe_1〜4から、Cyl_dNeを演算する。以下に、気筒別回転変動分散値演算部と回転変動発生気筒番号演算部の詳細を述べる。
【００４２】
＜気筒別回転変動平均値演算部（図９）＞
気筒別の回転変動分散値(vdNe_1, vdNe_2, vdNe_3, vdNe_4)を演算する。具体的には、図９に示される。
【００４３】
・Ne(回転速度)の今回値と前回値の差を演算し、dNe(回転変動)とする。
【００４４】
・CYLCNT=1のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe_2(前回値)
dNe_3=dNe_3(前回値), dNe_4=dNe
・CYLCNT=2のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe_2(前回値)
dNe_3=dNe, dNe_4=dNe_4(前回値)
・CYLCNT=3のとき、
dNe_1=dNe_1(前回値), dNe_2=dNe
dNe_3=dNe_3(前回値), dNe_4=dNe_4(前回値)
・CYLCNT=4のとき、
dNe_1=dNe, dNe_2=dNe_2(前回値)
dNe_3=dNe_3(前回値), dNe_4=dNe_4(前回値)
ここに、
dNe_1：１番気筒回転変動
dNe_2：２番気筒回転変動
dNe_3：３番気筒回転変動
dNe_4：４番気筒回転変動
である。次に、以下の処理を行う。
【００４５】
・CYLCNT=1のとき、
過去K回分のdNe_4の分散値をvdNe_4とし、
vdNe_1, vdNe_2, vdNe_3,は、前回値を維持する。
【００４６】
・CYLCNT=2のとき、
過去K回分のdNe_4の分散値をvdNe_3とし、
vdNe_1, vdNe_2, vdNe_4,は、前回値を維持する。
【００４７】
・CYLCNT=3のとき、
過去K回分のdNe_2の分散値をvdNe_2とし、
vdNe_1, vdNe_3, vdNe_4,は、前回値を維持する。
【００４８】
・CYLCNT=4のとき、
過去K回分のdNe_1の分散値をvdNe_1とし、
vdNe_2, vdNe_3, vdNe_4,は、前回値を維持する。
【００４９】
Kの値は、分散値として収束する程度の値に経験的に決めるのが良い。また、分散値を求める処理として、メモリ量の負担が少ないdNe_1〜dNe_4の絶対値に対して加重移動平均を実施する処理でも良い。
【００５０】
＜回転変動発生気筒番号演算部（図１０）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図１０に示される。
【００５１】
・もっとも大きいvdNe_n(n：気筒番号)をmax_vdNeとする。
【００５２】
また、気筒番号をmax_cylとする。
【００５３】
・max_vdNe≦k_max_vdNeのとき、Cyl_dNe=max_cylとする。
【００５４】
・max_vdNe＞k_max_vdNeのとき、Cyl_dNe=0とする。
【００５５】
k_max_vdNeは、ＥＧＲ増加によるトルクのばらつき度を判定する値であり、エンジン性能、目標性能等に応じて決めるのが良い。
【００５６】
＜ＥＧＲ補正値演算部（図７）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図７に示されるが、実施例１と同じであるので詳述しない。
【実施例３】
【００５７】
本実施例では、排気還流を実施しているとき、かつ回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量のみ減少させる制御を説明する。
【００５８】
図１１は本実施例を示すシステム図である。実施例１〜２では、排気還流量はＥＧＲ弁１９によって、全気筒一律に制御したが、実施例３では、１番気筒〜４番気筒独立に排気還流量が独立に制御できるようＥＧＲ弁３５〜３８が気筒別に備えられている（図１２参照）。このようなシステムにおいては、ＥＧＲ弁３５〜３８のいずれかに経年劣化や故障が発生した場合等に、対応する気筒のみ予期せぬ排気還流量の増減が発生してしまう。
【００５９】
図１３はコントロールユニット１６の内部を示したものである。実施例１〜２では、ＥＧＲ弁駆動回路３４が一つであったが、実施例２では、気筒別のＥＧＲ弁駆動回路３９〜４２によりＥＧＲ弁３５〜３８に駆動信号が送られる。
【００６０】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図１４は制御全体を表したブロック図であり、以下の演算部から構成される。
【００６１】
・気筒別回転変動検出部（図４〜図６）
・気筒別ＥＧＲ補正値演算部（図１５）
「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「気筒別ＥＧＲ補正値演算部」では、Cyl_dNeから、気筒別ＥＧＲ弁目標開度補正値(TgOp_hos1〜4)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hos1〜4を加えた値を最終的な気筒別ＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【００６２】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【００６３】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【００６４】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【００６５】
＜気筒別ＥＧＲ補正値演算部（図１５）＞
本演算部では、気筒別ＥＧＲ弁目標開度補正値(TgOp_hos1〜4)を演算する。具体的には、図１５に示される。
【００６６】
・Cyl_dNe=1のとき、
TgOp_hos1=TgOp_hos1(前回値)−k1_TgOp_hos・・・（１）
TgOp_hos2=TgOp_hos2(前回値)＋k2_TgOp_hos・・・（２）
TgOp_hos3=TgOp_hos3(前回値)＋k2_TgOp_hos・・・（３）
TgOp_hos4=TgOp_hos4(前回値)＋k2_TgOp_hos・・・（４）
・Cyl_dNe=2のとき、
TgOp_hos1=TgOp_hos1(前回値)＋k2_TgOp_hos・・・（５）
TgOp_hos2=TgOp_hos2(前回値)−k1_TgOp_hos・・・（６）
TgOp_hos3=TgOp_hos3(前回値)＋k2_TgOp_hos・・・（７）
TgOp_hos4=TgOp_hos4(前回値)＋k2_TgOp_hos・・・（８）
・Cyl_dNe=3のとき、
TgOp_hos1=TgOp_hos1(前回値)＋k2_TgOp_hos・・・（９）
TgOp_hos2=TgOp_hos2(前回値)＋k2_TgOp_hos・・・（１０）
TgOp_hos3=TgOp_hos3(前回値)−k1_TgOp_hos・・・（１１）
TgOp_hos4=TgOp_hos4(前回値)＋k2_TgOp_hos・・・（１２）
・Cyl_dNe=4のとき、
TgOp_hos1=TgOp_hos1(前回値)＋k2_TgOp_hos・・・（１３）
TgOp_hos2=TgOp_hos2(前回値)＋k2_TgOp_hos・・・（１４）
TgOp_hos3=TgOp_hos3(前回値)＋k2_TgOp_hos・・・（１５）
TgOp_hos4=TgOp_hos4(前回値)−k1_TgOp_hos・・・（１６）
・上記以外のとき、
TgOp_hos1=TgOp_hos1(前回値)＋k2_TgOp_hos・・・（１７）
TgOp_hos2=TgOp_hos2(前回値)＋k2_TgOp_hos・・・（１８）
TgOp_hos3=TgOp_hos3(前回値)＋k2_TgOp_hos・・・（１９）
TgOp_hos4=TgOp_hos4(前回値)＋k2_TgOp_hos・・・（２０）
ただし、TgOp_hos1〜4は、下記範囲とする。
【００６７】
min_TgOp_hos≦TgOp_hos1〜4≦max_TgOp_hos
k1_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を減少させる値であり、k2_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を増加(元に戻す値)である。k1_TgOp_hos,k2_TgOp_hos,min_TgOp_hos,max_TgOp_hosは、エンジン性能、目標性能等に応じて決めるのが良い。なお、ＥＧＲ弁の開度が、ＥＧＲ弁目標開度基本値(TgOp)より大きくならないように、max_TgOp_hosは、０に設定してもよい。また、各気筒のＥＧＲ弁開度を減少させた後は、増加側に補正しないように、上述の(2)〜(5),(7)〜(10),(12)〜(15),(17)〜(20)の処理は、k2_TgOp_hosを加えず、前回値を維持する、としてもよい。
【実施例４】
【００６８】
本実施例では、ＥＧＲにより排気還流を実施していないときは、回転変動が所定範囲内で、また、排気還流を実施しているときは、回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御について説明する。
【００６９】
図１は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図２はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【００７０】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図１６は制御全体を表したブロック図であり、以下の演算部から構成される。
【００７１】
・制御モード演算部（図１７）
・気筒別回転変動検出部（図４〜図６）
・ＥＧＲ補正値演算部（図１８）
・ＥＧＲ値切り換え部（図１９）
「制御モード演算部」で、f_mode_z(制御モードフラグ(前回値))とCyl_dNe_z(回転変動発生気筒番号(前回値))からf_mode(制御モードフラグ)を演算する。「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、Cyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値をTgOp_1(ＥＧＲ弁目標回度補正後値）とする。「ＥＧＲ値切り換え部」では、f_modeとTgOp_1から、最終的なＥＧＲ弁目標開度値であるTgOp_F(ＥＧＲ弁目標開度最終値)を求め、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【００７２】
＜制御モード演算部（図１７）＞
本演算部では、f_mode(制御モードフラグ)を演算する。具体的には、図１７に示される。
・f_modeの初期値は0。
・f_mode_z=0のとき、
Cyl_dNe_z=0が、K_f_mode_ｚ回連続で成立したとき、
f_mode=1とする。
・上記以外は、
f_mode=f_mode_zとする。
【００７３】
K_f_mode_zは、ＥＧＲにより排気還流を実施していないときに、回転変動がないことを判断する期間を指すパラメータであり、エンジン性能、目標性能等に応じて決めるのが良い。
【００７４】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【００７５】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【００７６】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【００７７】
＜ＥＧＲ補正値演算部（図１８）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図１８に示される。
・f_mode=0のとき、
TgOp_hos=0
・f_mode=1のとき、
i)Cyl_dNe≧1のとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
ii)上記以外のとき、
TgOp_hos=TgOp_hos(前回値)＋k2_TgOp_hos
ただし、TgOp_hosは、下記範囲とする。
min_TgOp_hos≦TgOp_hos≦max_TgOp_hos
k1_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を減少させる値であり、k2_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を増加(元に戻す値)である。k1_TgOp_hos,k2_TgOp_hos,min_TgOp_hos,max_TgOp_hosは、エンジン性能、目標性能等に応じて決めるのが良い。なお、ＥＧＲ弁の開度が、ＥＧＲ弁目標開度基本値(TgOp)より大きくならないように、max_TgOp_hosは、０に設定してもよい。また、ＥＧＲ弁開度を減少させた後は、増加側に補正しないように、上述のii)の処理は、
TgOp_hos=TgOp_hos(前回値)
としてもよい。
【００７８】
＜ＥＧＲ値切換部（図１９）＞
本演算部では、TgOp_F(ＥＧＲ弁目標開度最終値)を演算する。具体的には、図１９に示される。
・f_mode=1のとき
TgOp_F=TgOp_1
・f_mode=0のとき
TgOp_F=0
【実施例５】
【００７９】
本実施例では、排気還流を実施しているとき、かつ燃焼が不安定になった（回転変動が所定範囲を越えている）と判断したときは、排気還流量を減少し、さらに、排気還流量を所定量減少させても燃焼不安定が解消されない（回転変動が所定範囲を越えている）ときは、点火時期を進角側に補正する制御について説明する。
【００８０】
図１は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図２はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【００８１】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図２０は制御全体を表したブロック図であり、以下の演算部から構成される。
【００８２】
・気筒別回転変動検出部（図４〜図６）
・ＥＧＲ補正値演算部（図７）
・気筒別点火時期補正値演算部（図２１）
「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、Cyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。「気筒別点火時期補正値演算部」では、Cyl_dNeとTgOp_hosから、気筒別の点火時期補正値(ADV_hos1〜4)を演算する。点火時期基本値(ADV0)にADV_hos1〜4を加えた値を最終的な気筒別点火時期として、各気筒の点火時期を制御する。ADV0の演算方法は、従来、様々な制御方式が示されているので、ここでは詳述しない。例えば、エンジン９の運転条件(負荷、回転速度)から求める。以下、各演算部の詳細を説明する。
【００８３】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【００８４】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【００８５】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【００８６】
＜気筒別点火時期補正値演算部（図２１）＞
本演算部では、気筒別点火時期補正値(ADV_hos1〜4)を演算する。具体的には、図２１に示される。
【００８７】
・Cyl_dNe=1かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)＋k1_ADV_hos    
ADV_hos2=ADV_hos2(前回値)
ADV_hos3=ADV_hos3(前回値)
ADV_hos4=ADV_hos4(前回値)
・Cyl_dNe=2かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)
ADV_hos2=ADV_hos2(前回値)＋k1_ADV_hos
ADV_hos3=ADV_hos3(前回値)
ADV_hos4=ADV_hos4(前回値)
・Cyl_dNe=3かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)
ADV_hos2=ADV_hos2(前回値)
ADV_hos3=ADV_hos3(前回値)＋k1_ADV_hos
ADV_hos4=ADV_hos4(前回値)
・Cyl_dNe=4かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)
ADV_hos2=ADV_hos2(前回値)
ADV_hos3=ADV_hos3(前回値)
ADV_hos4=ADV_hos4(前回値)＋k1_ADV_hos
・上記以外のとき、
ADV_hos1=ADV_hos1(前回値)
ADV_hos2=ADV_hos2(前回値)
ADV_hos3=ADV_hos3(前回値)
ADV_hos4=ADV_hos4(前回値)
ただし ADV_hos1〜4は、下記範囲とする。
0≦ADV_hos1〜4≦max_ADV_hos
k1_ADV_hosは、補正一回当たり(10ms毎)の点火時期を進角させる値である。また、max_ADV_hosは、進角補正の限界値を決める。k1_ADV_hos、max_ADV_hosは、エンジン性能、目標性能等に応じて決めるのが良い。
【００８８】
＜ＥＧＲ補正値演算部（図７）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図７に示されるが、実施例１と同じであるので詳述しない。
【実施例６】
【００８９】
本実施例では、排気還流を実施しているとき、かつ燃焼が不安定になったと判断した(回転変動が所定範囲を越えている)ときは回転変動が所定範囲を越えていない気筒の点火時期を遅角側に補正した後、排気還流量を減少させる制御について説明する。
【００９０】
図１０は本実施例を示すシステム図であるが、実施例２と同じであるので詳述しない。図１１はコントロールユニット１６の内部を示したものであるが、実施例２と同じであるので、詳述しない。
【００９１】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図２２は制御全体を表したブロック図であり、以下の演算部から構成される。
【００９２】
・気筒別回転変動検出部（図４〜図６）
・気筒別点火時期補正値演算部（図２３）
・ＥＧＲ補正値演算部（図２４）
「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「気筒別点火時期補正値演算部」では、Cyl_dNeから、気筒別の点火時期補正値(ADV_hos1〜4)を演算する。点火時期基本値(ADV0)にADV_hos1〜4を加えた値を最終的な気筒別点火時期として、各気筒の点火時期を制御する。「ＥＧＲ補正値演算部」では、Cyl_dNeとADV_hos1〜4から、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【００９３】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【００９４】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【００９５】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【００９６】
＜気筒別点火時期補正値演算部（図２３）＞
本演算部では、気筒別点火時期補正値(ADV_hos1〜4)を演算する。具体的には、図２３に示される。
【００９７】
・Cyl_dNe=1かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)
ADV_hos2=ADV_hos2(前回値)−K2_ADV_hos
ADV_hos3=ADV_hos3(前回値)−K2_ADV_hos
ADV_hos4=ADV_hos4(前回値)−K2_ADV_hos
・Cyl_dNe=2かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)−K2_ADV_hos
ADV_hos2=ADV_hos2(前回値)
ADV_hos3=ADV_hos3(前回値)−K2_ADV_hos
ADV_hos4=ADV_hos4(前回値)−K2_ADV_hos
・Cyl_dNe=3かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)−K2_ADV_hos
ADV_hos2=ADV_hos2(前回値)−K2_ADV_hos
ADV_hos3=ADV_hos3(前回値)
ADV_hos4=ADV_hos4(前回値)−K2_ADV_hos
・Cyl_dNe=4かつTgOp_hos≧K3_TgOp_hosのとき、
ADV_hos1=ADV_hos1(前回値)−K2_ADV_hos
ADV_hos2=ADV_hos2(前回値)−K2_ADV_hos
ADV_hos3=ADV_hos3(前回値)−K2_ADV_hos
ADV_hos4=ADV_hos4(前回値)
・上記以外のとき、
ADV_hos1=ADV_hos1(前回値)
ADV_hos2=ADV_hos2(前回値)
ADV_hos3=ADV_hos3(前回値)
ADV_hos4=ADV_hos4(前回値)
ただし ADV_hos1〜4は、下記範囲とする。
【００９８】
min_ADV_hos≦ADV_hos1〜4
k2_ADV_hosは、補正一回当たり(10ms毎)の点火時期を遅角させる値である。また、min_ADV_hosは、遅角補正の限界値を決める。K2_ADV_hos、min_ADV_hosは、エンジン性能、目標性能等に応じて決めるのが良い。
【００９９】
＜ＥＧＲ補正値演算部（図２４）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図２４に示される。
【０１００】
i)
・Cyl_dNe＝1かつADV_hos2≦k3_ADV_hosかつADV_hos3≦k3_ADV_hosかつADV_hos4≦k3_ADV_hosのとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
・Cyl_dNe＝2かつ  ADV_hos1≦k3_ADV_hosかつADV_hos3≦k3_ADV_hosかつADV_hos4≦k3_ADV_hosのとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
・Cyl_dNe＝3かつADV_hos1≦k3_ADV_hosかつADV_hos2≦k3_ADV_hosかつ
ADV_hos4≦k3_ADV_hosのとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
・Cyl_dNe＝4かつADV_hos1≦k3_ADV_hosかつADV_hos2≦k3_ADV_hosかつADV_hos3≦k3_ADV_hosのとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
ii)上記以外のとき、
TgOp_hos=TgOp_hos(前回値)＋k2_TgOp_hos
とする。
【０１０１】
ただし、TgOp_hosは、下記範囲とする。
min_TgOp_hos≦TgOp_hos≦max_TgOp_hos
k3_ADV_hosは、遅角補正が十分に実施されているかを判定するための値であり、エンジン性能、目標性能に応じて決めるのが良い。また、k1_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を減少させる値であり、k2_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を増加(元に戻す値)である。k1_TgOp_hos,k2_TgOp_hos,min_TgOp_hos,max_TgOp_hosは、エンジン性能、目標性能等に応じて決めるのが良い。なお、ＥＧＲ弁の開度が、ＥＧＲ弁目標開度基本値(TgOp)より大きくならないように、max_TgOp_hosは、０に設定してもよい。また、ＥＧＲ弁開度を減少させた後は、増加側に補正しないように、上述のii)の処理は、
TgOp_hos=TgOp_hos(前回値)
としてもよい。
【実施例７】
【０１０２】
本実施例では、排気還流を実施しているとき、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、気筒間の空燃比ばらつきが所定以下であることを検出し、気筒毎の角加速度の平均値が所定値より小さい気筒が検出されたときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御について説明する。
【０１０３】
図２５は本実施例を示すシステム図である。空燃比センサ１２が、排気管集合部に一つ取り付けられていたが、本実施例では、１番気筒〜４番気筒の排気管１０にそれぞれ、空燃比センサ３０〜３３が取り付けられている（図２６参照）。それ以外は、実施例１と同じであるので詳述しない。図２７はコントロールユニット１６の内部を示したものである。実施例１では、空燃比センサ１２の出力信号が、入力されていたが、本実施例では、空燃比センサ１２の出力信号が入力されている。それ以外は、実施例１と同じであるので詳述しない。
【０１０４】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図２８は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１０５】
・空燃比ばらつき検出部（図２９）
・気筒別回転変動検出部（図４〜図６）
・ＥＧＲ補正値演算部（図３０）
「空燃比ばらつき検出部」で、気筒毎の空燃比センサ３０〜３３の信号(Rabf1〜Rabf2)から気筒間空燃比ばらつきの発生有無(f_af)を演算する。「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、f_afとCyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【０１０６】
＜空燃比ばらつき検出部（図２９）＞
本演算部では、f_af(空燃比発生ばらつきフラグ)を演算する。具体的には、図２９に示される。Rabf_1, Rabf_2, Rabf_3, Rabf_4の最大値と最小値の差をInd_Imb(空燃比ばらつき度)とする。Ind_Imb＞K1_Ind_Imbのとき、f_af(空燃比ばらつき発生フラグ)を１とする。Ind_Imb≦K1_Ind_Imbのとき、f_afを0とする。K1_Ind_Imbは、ばらつきの発生有無を判定するばらつき度であり、エンジン性能、目標性能等に応じて決めるのが良い。
【０１０７】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【０１０８】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【０１０９】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【０１１０】
＜ＥＧＲ補正値演算部（図３０）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図３０に示される。
【０１１１】
i)f_af=0 かつ Cyl_dNe≧1のとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
とする。
【０１１２】
ii)上記以外のとき、
TgOp_hos=TgOp_hos(前回値)＋k2_TgOp_hos
とする。
【０１１３】
ただし、TgOp_hosは、下記範囲とする。
min_TgOp_hos≦TgOp_hos≦max_TgOp_hos
k1_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を減少させる値であり、k2_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を増加(元に戻す値)である。k1_TgOp_hos,k2_TgOp_hos,min_TgOp_hos,max_TgOp_hosは、エンジン性能、目標性能等に応じて決めるのが良い。なお、ＥＧＲ弁の開度が、ＥＧＲ弁目標開度基本値(TgOp)より大きくならないように、max_TgOp_hosは、０に設定してもよい。また、ＥＧＲ弁開度を減少させた後は、増加側に補正しないように、上述のii)の処理は、
TgOp_hos=TgOp_hos(前回値)
としてもよい。
【実施例８】
【０１１４】
本実施例では、排気還流を実施しているとき、かつ触媒上流空燃比センサ１２の信号(Rabf)のエンジン２回転成分に基づいて、気筒間の空燃比ばらつきが所定以下であることを検出し、気筒毎の角加速度の平均値が所定値より小さい気筒が検出されたときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御について説明する。
【０１１５】
図１は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図２はコントロールユニット１６の内部を示したものであるが、実施例２と同じであるので、詳述しない。
【０１１６】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３１は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１１７】
・空燃比ばらつき検出部（図３２〜図３４）
・気筒別回転変動検出部（図４〜図６）
・ＥＧＲ補正値演算部（図３０）
「空燃比ばらつき検出部」で、空燃比センサ１２の信号(Rabf)の２回転成分から気筒間空燃比ばらつきの発生有無(f_af)を演算する。「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度分散値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、f_afとCyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【０１１８】
＜空燃比ばらつき検出部（図３２）＞
本演算部では、f_af(空燃比発生ばらつきフラグ)を演算する。具体的には、図３２に示される。「２回転成分演算部」で、 Rabfの２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。「空燃比ばらつき発生フラグ演算部」では、R_2revとI_2revから、f_afを演算する。以下に、気筒別回転変動平均値演算部と回転変動発生気筒番号演算部の詳細を述べる。
【０１１９】
＜２回転成分演算部（図３３）＞
本演算部では、Rabfの２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。具体的には、図３３に示される。Rabfの今回値と前回値の差を演算し、dRabf(触媒上流空燃比センサ信号差分値)とする。dRabfに対して図中の波線で囲まれた処理(離散フーリエ変換)を実施する。
C_R×dRabfの今回値と前回値と前々回値と前々々回値の和をR_2revとする。
C_I×dRabfの今回値と前回値と前々回値と前々々回値の和をI_2revとする。
【０１２０】
ここに、C_RおよびC_Iは、CYLCNTに応じて、次の様に演算する。
【０１２１】
CYLCNT=1のとき、C_R=1
CYLCNT=3もしくは2のとき、C_R=0
CYLCNT=4のとき、C_R=-1
また、
CYLCNT=1もしくは4のとき、C_I=0
CYLCNT=3のとき、C_I=1
CYLCNT=2のとき、C_I=-1
【０１２２】
＜空燃比ばらつき発生フラグ演算部（図３４）＞
本演算部では、f_af(空燃比ばらつき発生フラグ)を演算する。具体的には、図３４に示される。R_2revとI_2revから、下式により、Ind_Imbを求める。
【０１２３】
Ind_Imb=√((R_2rev×R_2rev)＋(I_2rev×I_2rev))
Ind_Imbは、エンジン２回転成分のパワー相当値である。パワーは、振幅と相関のある値であり、パワーの大きさから、空燃比センサ信号のエンジン２回転相当周波数の振動幅を得る。次に、以下の処理を行う。
【０１２４】
・Ind_Imb＞K2_Ind_Imbのとき、f_af=1とする。
【０１２５】
・Ind_Imb≦K2_Ind_Imbのとき、f_af=0とする。
【０１２６】
K2_Ind_Imbは、ばらつきの発生有無を判定するばらつき度であり、エンジン性能、目標性能等に応じて決めるのが良い。
【０１２７】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【０１２８】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【０１２９】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【０１３０】
＜ＥＧＲ補正値演算部（図３０）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図３０に示されるが、実施例７と同じであるので詳述しない。
【実施例９】
【０１３１】
本実施例では、ＥＧＲにより排気還流を実施していないときは、空燃比ばらつきが所定以下で、かつ回転変動が所定範囲内で、また、排気還流を実施しているときは、空燃比ばらつきが所定以下で、かつ回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御について説明する。
【０１３２】
図１は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図２はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので詳述しない。
【０１３３】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３５は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１３４】
・制御モード演算部（図３６）
・空燃比ばらつき検出部（図３２〜図３４）
・気筒別回転変動検出部（図４〜図６）
・ＥＧＲ補正値演算部（図３７）
・ＥＧＲ値切り換え部（図１９）
「制御モード演算部」で、f_mode_z(制御モードフラグ(前回値))とf_af_z(空燃比ばらつき発生フラグ(前回値))とCyl_dNe_z(回転変動発生気筒番号(前回値))からf_mode(制御モードフラグ)を演算する。「空燃比ばらつき検出部」で、空燃比センサ１２の信号(Rabf)の２回転成分から気筒間空燃比ばらつきの発生有無(f_af)を演算する。「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、f_afとCyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値をTgOp_1(ＥＧＲ弁目標回度補正後値）とする。「ＥＧＲ値切り換え部」では、f_modeとTgOp_1から、最終的なＥＧＲ弁目標開度値であるTgOp_F(ＥＧＲ弁目標開度最終値)を求め、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【０１３５】
＜制御モード演算部（図３６）＞
本演算部では、f_mode(制御モードフラグ)を演算する。具体的には、図２０に示される。
【０１３６】
・f_modeの初期値は0。
【０１３７】
・f_mode_z=0のとき、
f_af_z=0かつCyl_dNe_z=0が、
K_f_mode_ｚ回連続で成立したとき、
f_mode=1とする。
【０１３８】
・上記以外は、
f_mode=f_mode_zとする。
【０１３９】
K_f_mode_zは、ＥＧＲにより排気還流を実施していないときに、空燃比ばらつきが所定以下で、かつ回転変動がないことを判断する期間を指すパラメータであり、エンジン性能、目標性能等に応じて決めるのが良い。
【０１４０】
＜空燃比ばらつき検出部（図３２）＞
本演算部では、f_af(空燃比発生ばらつきフラグ)を演算する。具体的には、図３２に示されるが、実施例８と同じであるので詳述しない。
【０１４１】
＜２回転成分演算部（図３３）＞
本演算部では、Rabfの２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。具体的には、図３３に示されるが、実施例８同じであるので詳述しない。
【０１４２】
＜空燃比ばらつき発生フラグ演算部（図３４）＞
本演算部では、f_af(空燃比ばらつき発生フラグ)を演算する。具体的には、図３４に示されるが、実施例８と同じであるので詳述しない。
【０１４３】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【０１４４】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【０１４５】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【０１４６】
＜ＥＧＲ補正値演算部（図３７）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図３７に示される。
・f_mode=0のとき、
TgOp_hos=0
・f_mode=1のとき、
i)f_af=0 かつ Cyl_dNe≧1のとき、
TgOp_hos=TgOp_hos(前回値)−k1_TgOp_hos
ii)上記以外のとき、
TgOp_hos=TgOp_hos(前回値)＋k2_TgOp_hos
ただし、TgOp_hosは、下記範囲とする。
【０１４７】
min_TgOp_hos≦TgOp_hos≦max_TgOp_hos
k1_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を減少させる値であり、k2_TgOp_hosは、補正一回当たり(10ms毎)のＥＧＲ弁の開度を増加(元に戻す値)である。k1_TgOp_hos,k2_TgOp_hos,min_TgOp_hos,max_TgOp_hosは、エンジン性能、目標性能等に応じて決めるのが良い。なお、ＥＧＲ弁の開度が、ＥＧＲ弁目標開度基本値(TgOp)より大きくならないように、max_TgOp_hosは、０に設定してもよい。また、ＥＧＲ弁開度を減少させた後は、増加側に補正しないように、上述のii)の処理は、
TgOp_hos=TgOp_hos(前回値)
としてもよい。
【０１４８】
＜ＥＧＲ値切換部（図１９）＞
本演算部では、TgOp_F(ＥＧＲ弁目標開度最終値)を演算する。具体的には、図１９に示されるが、実施例４と同じであるので詳述しない。
【実施例１０】
【０１４９】
本実施例では、排気還流を実施しているとき、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、気筒間の空燃比ばらつきが所定以下であることを検出し、気筒毎の筒内圧の分散値が所定値より大きい気筒が検出されたときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御について説明する。
【０１５０】
図３８は本実施例を示すシステム図である。本実施例では、１番気筒〜４番気筒の燃焼室内にそれぞれ、筒内圧センサ４３〜４６が取り付けられている（図３９参照）。それ以外は、実施例１と同じであるので詳述しない。図４０はコントロールユニット１６の内部を示したものである。本実施例では、筒内圧センサ４３〜４６の出力信号が入力されている。それ以外は、実施例１と同じであるので詳述しない。
【０１５１】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図３１は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１５２】
・空燃比ばらつき検出部（図３２〜図３４）
・気筒別筒内圧変動検出部（図４２〜図４４）
・ＥＧＲ補正値演算部（図３０）
「空燃比ばらつき検出部」で、空燃比センサ１２の信号(Rabf)の２回転成分から気筒間空燃比ばらつきの発生有無(f_af)を演算する。「気筒別筒内圧変動検出部」では、筒内圧センサ４３〜４６の信号から気筒毎の図示平均有効圧の分散値を求め、分散値が所定値より大きい（回転変動が発生している）気筒(Cyl_Pi)を求める。「ＥＧＲ補正値演算部」では、f_afとCyl_Piから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【０１５３】
＜空燃比ばらつき検出部（図３２）＞
本演算部では、f_af(空燃比発生ばらつきフラグ)を演算する。具体的には、図３２に示されるが、実施例８と同じであるので詳述しない。
【０１５４】
＜２回転成分演算部（図３３）＞
本演算部では、Rabfの２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。具体的には、図３３に示されるが、実施例８同じであるので詳述しない。
【０１５５】
＜空燃比ばらつき発生フラグ演算部（図３４）＞
本演算部では、f_af(空燃比ばらつき発生フラグ)を演算する。具体的には、図３４に示されるが、実施例８と同じであるので詳述しない。
【０１５６】
＜気筒別筒内圧変動検出部（図４２）＞
本演算部では、Cyl_Pi（筒内圧変動発生気筒番号）を演算する。具体的には、図４２に示される。「気筒別図示平均有効圧分散値演算部」では、P_1（１〜４番気筒筒内圧）から、vPi_1〜4（１〜４番気筒図示平均有効圧分散値）を演算する。「筒内圧変動発生気筒番号演算部」では、vPi_1〜4から、Cyl_Piを演算する。以下に、気筒別図示平均有効圧分散値演算部と筒内圧変動発生気筒番号演算部の詳細を述べる。
【０１５７】
＜気筒別図示平均有効圧分散値演算部（図４３）＞
本演算部では、気筒別の図示平均有効圧分散値(vPi_1, vPi_2, vPi_3, vPi_4)を演算する。具体的には、図４３に示される。
・P_1から、１番気筒図示平均有効圧を演算し、Pi_1する。Pi_1のサイクル間の分散値をvPi_1とする。
・P_2から、２番気筒図示平均有効圧を演算し、Pi_2する。Pi_2のサイクル間の分散値をvPi_2とする。
・P_3から、３番気筒図示平均有効圧を演算し、Pi_3する。Pi_3のサイクル間の分散値をvPi_3とする。
・P_4から、４番気筒図示平均有効圧を演算し、Pi_4する。Pi_4のサイクル間の分散値をvPi_4とする。
【０１５８】
本演算部では、１０ｄｅｇ周期で、各気筒の筒内圧をサンプリングし、各気筒の図示平均有効圧を求めるが、図示平均有効圧の演算方法については、公知であるので、ここでは、詳述しない。
【０１５９】
＜筒内圧変動発生気筒番号演算部（図４４）＞
本演算部では、Cyl_Pi(筒内圧変動発生気筒番号)を演算する。具体的には、図４４に示される。
・もっとも大きいPi_n(n：気筒番号)をmax_vPiとする。
【０１６０】
また、気筒番号をmax_cylとする。
・max_vPi≧k_max_vPiのとき、
Cyl_Pi=max_cyl
・max_vPi＜k_max_vPiのとき、
Cyl_Pi=0
とする。
【０１６１】
k_max_vPiは、ＥＧＲ増加による燃焼圧のばらつき度を判定する値であり、エンジン性能、目標性能等に応じて決めるのが良い。
【０１６２】
＜ＥＧＲ補正値演算部（図３０）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図３０に示されるが、実施例７と同じであるので詳述しない。
【実施例１１】
【０１６３】
本実施例では、排気還流を実施しているとき、各気筒の排気管１０に設置された空燃比センサ信号に基づいて、気筒間の空燃比ばらつきが所定以下であることを検出し、気筒毎のイオン電流の分散値が所定値より大きい気筒が検出されたときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、排気還流量を減少させる制御について説明する。
【０１６４】
図４５は本実施例を示すシステム図である。本実施例では、１番気筒〜４番気筒の点火プラグ８にそれぞれ、イオン電流センサ４７〜５０が取り付けられている（図４６参照）。それ以外は、実施例１と同じであるので詳述しない。図４７はコントロールユニット１６の内部を示したものである。本実施例では、イオン電流センサ４７〜５０の出力信号が入力されている。それ以外は、実施例１と同じであるので詳述しない。
【０１６５】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図４８は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１６６】
・空燃比ばらつき検出部（図３２〜図３４）
・気筒別イオン電流変動検出部（図４９〜図５１）
・ＥＧＲ補正値演算部（図３０）
「空燃比ばらつき検出部」で、空燃比センサ１２の信号(Rabf)の２回転成分から気筒間空燃比ばらつきの発生有無(f_af)を演算する。「気筒別イオン電流変動検出部」では、イオン電流センサ４７〜５０の信号から気筒毎のイオン電流積算値の分散値を求め、分散値が所定値より大きい（回転変動が発生している）気筒(Cyl_I)を求める。「ＥＧＲ補正値演算部」では、f_afとCyl_Iから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。以下、各演算部の詳細を説明する。
【０１６７】
＜空燃比ばらつき検出部（図３２）＞
本演算部では、f_af(空燃比発生ばらつきフラグ)を演算する。具体的には、図３２に示されるが、実施例８と同じであるので詳述しない。
【０１６８】
＜２回転成分演算部（図３３）＞
本演算部では、Rabfの２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。具体的には、図３３に示されるが、実施例８同じであるので詳述しない。
【０１６９】
＜空燃比ばらつき発生フラグ演算部（図３４）＞
本演算部では、f_af(空燃比ばらつき発生フラグ)を演算する。具体的には、図３４に示されるが、実施例８と同じであるので詳述しない。
【０１７０】
＜気筒別イオン電流変動検出部（図４９）＞
本演算部では、Cyl_I（イオン電流変動発生気筒番号）を演算する。具体的には、図４９に示される。「気筒別イオン電流分散値演算部」では、I_1（１〜４番気筒イオン電流）から、vI_1（１〜４番気筒イオン電流分散値）を演算する。「イオン電流変動発生気筒番号演算部」では、vI_1〜4から、Cyl_Iを演算する。以下に、気筒別イオン電流分散値演算部とイオン電流変動発生気筒番号演算部の詳細を述べる。
【０１７１】
＜気筒別イオン電流分散値演算部（図５０）＞
本演算部では、気筒別のイオン電流分散値(vI_1, vI_2, vI_3, vI_4)を演算する。具体的には、図５０に示される。
・１番気筒の行程が所定期間にあるときのI_1積算値を演算し、サイクル間の分散値をvI_1とする。
・２番気筒の行程が所定期間にあるときのI_2積算値を演算し、サイクル間の分散値をvI_2とする。
・３番気筒の行程が所定期間にあるときのI_3積算値を演算し、サイクル間の分散値をvI_3とする。
・４番気筒の行程が所定期間にあるときのI_4積算値を演算し、サイクル間の
分散値をvI_4とする。
【０１７２】
本演算部では、１０ｄｅｇ周期で、各気筒が所定期間にあるときのイオン電流の積算値を演算し、積算値の分散値を求める。
【０１７３】
＜イオン電流変動発生気筒番号演算部（図５１）＞
本演算部では、Cyl_I(イオン電流変動発生気筒番号)を演算する。具体的には、図５１に示される。
・もっとも大きいvI_n(n：気筒番号)をmax_vIとする。
【０１７４】
また、気筒番号をmax_cylとする。
・max_vI≧k_max_vIのとき、
Cyl_I=max_cyl
・max_vI＜k_max_vIのとき、
Cyl_I=0
とする。
【０１７５】
k_max_vIは、ＥＧＲ増加による所定期間イオン電流積算値のばらつき度を判定する値であり、エンジン性能、目標性能等に応じて決めるのが良い。
【０１７６】
＜ＥＧＲ補正値演算部（図３０）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図３０に示されるが、実施例７と同じであるので詳述しない。
【実施例１２】
【０１７７】
本実施例では、排気還流を実施しているとき、燃焼が不安定になったと判断したときは、排気還流量を減少し、さらに、排気還流量を所定量減少させても燃焼不安定が解消されない（回転変動が所定範囲を越えている）ときは、なんらかの異常が発生しているとして、それを報知する制御について説明する。
【０１７８】
図１は本実施例を示すシステム図であるが、実施例１と同じであるので詳述しない。図２はコントロールユニット１６の内部を示したものであるが、実施例１と同じであるので、詳述しない。
【０１７９】
以下、ＲＯＭ２２に書き込まれる制御プログラムについて述べる。図５２は制御全体を表したブロック図であり、以下の演算部から構成される。
【０１８０】
・空燃比ばらつき検出部（図３２〜図３４）
・気筒別回転変動検出部（図４〜図６）
・ＥＧＲ補正値演算部（図３０）
・異常判定部（図５３）
「空燃比ばらつき検出部」で、空燃比センサ１２の信号(Rabf)の２回転成分から気筒間空燃比ばらつきの発生有無(f_af)を演算する。「気筒別回転変動検出部」では、クランク角センサ１５の信号から気筒毎の角加速度平均値を求め、回転変動が発生している気筒(Cyl_dNe)を求める。「ＥＧＲ補正値演算部」では、f_afとCyl_dNeから、ＥＧＲ弁目標開度補正値(TgOp_hos)を求める。ＥＧＲ弁目標開度基本値(TgOp)にTgOp_hosを加えた値を最終的なＥＧＲ弁目標開度値として、ＥＧＲ弁の開度を制御する。「異常判定部」では、f_afとCyl_dNeとTgOp_hosから、異常フラグ(f_MIL)を演算する。以下、各演算部の詳細を説明する。
【０１８１】
＜空燃比ばらつき検出部（図３２）＞
本演算部では、f_af(空燃比発生ばらつきフラグ)を演算する。具体的には、図３２に示されるが、実施例８と同じであるので詳述しない。
【０１８２】
＜２回転成分演算部（図３３）＞
本演算部では、Rabfの２回転成分の実数部(R_2rev)と虚数部(I_2rev)を演算する。具体的には、図３３に示されるが、実施例８と同じであるので詳述しない。
【０１８３】
＜空燃比ばらつき発生フラグ演算部（図３４）＞
本演算部では、f_af(空燃比ばらつき発生フラグ)を演算する。具体的には、図３４に示されるが、実施例８と同じであるので詳述しない。
【０１８４】
＜気筒別回転変動検出部（図４）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図４に示されるが、実施例１と同じであるので詳述しない。
【０１８５】
＜気筒別回転変動平均値演算部（図５）＞
本演算部では、気筒別の回転変動平均値(mdNe_1, mdNe_2, mdNe_3, mdNe_4)を演算する。具体的には、図５に示されるが、実施例１と同じであるので詳述しない。
【０１８６】
＜回転変動発生気筒番号演算部（図６）＞
本演算部では、Cyl_dNe(回転変動発生気筒番号)を演算する。具体的には、図６に示されるが、実施例１と同じであるので詳述しない。
【０１８７】
＜ＥＧＲ補正値演算部（図３０）＞
本演算部では、ＥＧＲ弁目標開度補正値(TgOp_hos)を演算する。具体的には、図３０に示されるが、実施例１と同じであるので詳述しない。
【０１８８】
＜異常判定部（図５３）＞
本演算部では、異常フラグ(f_MIL)を演算する。具体的には、図５３に示される。
i)f_af=0かつCyl_dNe≧1かつTgOp_hos≦K4_TgOp_hosが連続してK_MIL回続いたとき、
f_MIL=1
ii)上記以外のとき、
f_MIL=0
K4_TgOp_hosは、排気還流量を十分に減少させたかを判定するための値であり、エンジン性能、目標性能等に応じて決めるのが良い。K_MILは、排気還流を減少させた後、異常判定するまでの期間を指すパラメータであり、同じく、エンジン性能、目標性能等に応じて決めるのが良い。
【０１８９】
以上説明した通り、本発明は複数の実施形態を含んでいるが、例えばエンジン燃焼悪化度を検出する手段と、前記エンジンの燃焼悪化度が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段とを備えたことを特徴とする。
【０１９０】
すなわち、気筒毎の燃焼悪化度を検出する手段により、燃焼悪化度が所定範囲を超える気筒があるとき、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量を減少させるものである。
【０１９１】
また、例えば、気筒毎の回転変動を検出する回転変動検出手段と前記気筒毎の回転変動が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段とを備えたことを特徴とする。
【０１９２】
すなわち、燃焼悪化度検出手段として、気筒毎の回転変動検出手段により、回転変動が所定範囲を超える気筒があるとき、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量を減少させるものである。
【０１９３】
また、例えば、気筒毎の角加速度の平均値を演算する手段と、前記角加速度平均値が所定値以下の気筒に対して、排気還流量を減少させるＥＧＲ補正手段を備えたことを特徴とする。
【０１９４】
すなわち、気筒毎の角加速度は、気筒毎のトルクと相関がある。ＥＧＲ量が予期せず増加した気筒の燃焼は不安定になり、トルクが減少する。検出精度を上げるため、角加速度の平均値を演算し、その値が所定値以下の気筒は、予期せず排気還流量が増加したと判定し、少なくとも当該気筒の排気還流量を減少させるものである。
【０１９５】
また、例えば、気筒毎の角加速度のばらつき度合いを演算する手段と、前記角加速度のばらつき度合いが所定範囲を所定値以上の気筒に対して、排気還流量を減少させるＥＧＲ補正手段を備えたことを特徴とする。
【０１９６】
すなわち、気筒毎の角加速度は、気筒毎のトルクと相関がある。ＥＧＲ量が予期せず増加した気筒の燃焼は不安定になり、トルクが変動する。角加速度の分散などばらつき度合いを演算し、その値が所定値以上の気筒は、予期せず排気還流量が増加したと判定し、少なくとも当該気筒の排気還流量を減少させるものである。
【０１９７】
また、例えば、前記排気還流量を減少させるＥＧＲ補正手段は、全気筒の排気還流量を減少させることで、前記回転変動が所定範囲を越える気筒の排気還流量を減少させるＥＧＲ補正手段を備えたことを特徴とする。
【０１９８】
すなわち、回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量を減少させるが、気筒毎に排気還流量を制御可能な装置があるとは限らないので、その場合は、全気筒の排気還流量を減少させることで、当該気筒の排気還流量を減少させるものである。
【０１９９】
また、例えば、前記排気還流量を減少させるＥＧＲ補正手段は、前記回転変動が所定範囲を越える気筒の排気還流量のみ排気還流量を減少させるＥＧＲ補正手段を備えたことを特徴とする。
【０２００】
すなわち、回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量を減少させるが、気筒毎に排気還流量を制御可能な装置がある場合は、当該気筒の排気還流量のみ減少させるものである。
【０２０１】
また、例えば、気筒毎の回転変動を検出する回転変動検出手段と前記ＥＧＲ手段が排気還流を実施していないとき、前記気筒毎の回転変動が所定範囲を越えてなく、前記ＥＧＲ手段が排気還流を実施中のとき、エンジンの回転変動が所定範囲を越える気筒に対して、
排気還流量を減少させるＥＧＲ補正手段とを備えたことを特徴とする。
【０２０２】
すなわち、ＥＧＲ手段により排気還流を実施していないときは、回転変動がない一方で、排気還流を実施しているときは、回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量を減少させるものである。
【０２０３】
また、例えば、前記排気還流量を所定量減少させた後、前記排気還流量を所定量減少させた気筒の前記回転変動が所定範囲を越えているとき、前記気筒の点火時期を進角側に補正する手段とを備えたことを特徴とする。
【０２０４】
すなわち、排気還流量と点火時期から決まる最適領域は、排気還流量が多くなるほど、点火時期は進角側にシフトする。ここに、最適領域とは、ノックが発生せず、また、排気還流量による安定性が悪化しない、双方を満たす領域を指す。このことから、排気還流量を所定量減少させても前記回転変動が所定範囲を越えているときは、点火時期を進角側に補正し、最適領域に制御することを試みるものである。
【０２０５】
また、例えば、全気筒の排気還流量を所定量減少させる前に、回転変動が所定範囲を越えている気筒以外の点火時期を遅角側に補正した後、全気筒の排気還流量を減少させることを備えたことを特徴とする。
【０２０６】
すなわち、回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量を減少させるが、気筒毎に排気還流量を制御可能な装置があるとは限らないので、その場合は、全気筒の排気還流量を減少させることで、当該気筒の排気還流量を減少させるものである。
【０２０７】
また、例えば、複数気筒間の空燃比ばらつきを検出する空燃比ばらつき検出手段と、気筒毎の回転変動を検出する回転変動検出手段と、前記ＥＧＲ手段が排気還流を実施中で、かつ前記複数気筒間の空燃比ばらつきが所定以下のときに、回転変動が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段とを備えたことを特徴とする。
【０２０８】
すなわち、ＥＧＲにより排気還流を実施しているとき、空燃比ばらつき検出手段で、気筒間の空燃比がばらついていないことを確認し、気筒毎の回転変動検出手段により、回転変動が所定範囲を超える気筒があるとき、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量を減少させるものである。空燃比がリーンになったり、極度にリッチになったりすると、同じく、燃焼が不安定になるが空燃比ばらつき検出手段により、空燃比がばらついていないことを確認しているので、空燃比ずれによる回転変動発生の可能性を排除する。
【０２０９】
また、例えば、各気筒の排気管に空燃比を検出する手段を備え、前記各気筒の空燃比の最大値と最小値の差が所定値以下のときに、少なくとも回転変動が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段を備えたことを特徴とする。
【０２１０】
すなわち、空燃比のばらつきを検出する方法として、各気筒の排気管に空燃比を検出する手段を設置して、もっともリーンな気筒の空燃比ともっともリッチな気筒の空燃比の差が所定値以下のとき、気筒間の空燃比のばらつきがないと判定するものである。
【０２１１】
また、例えば、排気管集合部に空燃比を検出する手段を備え、排気管集合部の空燃比信号の内、エンジンが２回転する周期の成分の振幅を検出する手段と、前記エンジン２回転周期成分の振幅が所定値以下のときに、少なくとも回転変動が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段を備えたことを特徴とする。
【０２１２】
すなわち、空燃比のばらつきを検出する方法として、気筒間の空燃比にばらつきが発生すると、排気管集合部の空燃比信号が、エンジンが２回転する周期で振動する現象を用いる。この振動現象の振幅は、ばらつき度が大きいほど、大きくなる。したがって、排気管集合部の空燃比信号の内、エンジン２回転周期成分の振幅が所定値以下のとき、気筒間の空燃比のばらつきがないと判定するものである。
【０２１３】
また、例えば、ＥＧＲ手段により排気還流を実施していないとき、前記複数気筒間の空燃比ばらつきが所定以下かつ前記気筒毎の回転変動が所定範囲を越えてなく、前記ＥＧＲ手段が排気還流を実施中で、かつ前記複数気筒間の空燃比ばらつきが所定以下のときに、
少なくとも回転変動が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段を備えたことを特徴とする。
【０２１４】
すなわち、ＥＧＲ手段により排気還流を実施していないときは、空燃比ばらつきがなく、また、回転変動がない一方で、排気還流を実施しているときは、空燃比ばらつきがなく、回転変動が所定範囲を越える気筒があるときは、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量を減少させるものである。
【０２１５】
また、例えば、気筒毎の燃焼圧変動を検出する燃焼圧変動検出手段と、気筒毎の燃焼圧変動が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段とを備えたことを特徴とする。
【０２１６】
すなわち、燃焼悪化度検出手段として、気筒毎の燃焼圧変動検出手段により、燃焼圧変動が所定範囲を超える気筒があるとき、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量を減少させるものである。
【０２１７】
また、例えば、気筒毎のイオン電流変動を検出するイオン電流変動検出手段と  気筒毎のイオン電流変動が所定範囲を越える気筒に対して、排気還流量を減少させるＥＧＲ補正手段とを備えたことを特徴とする。
【０２１８】
すなわち、燃焼悪化度検出手段として、気筒毎のイオン電流変動検出手段により、イオン電流変動が所定範囲を超える気筒があるとき、少なくとも当該気筒の排気還流量が予期せず増加したことにより、燃焼が不安定になったと判断し、当該気筒の排気還流量を減少させるものである。
【０２１９】
また、例えば、前記排気還流量を所定量減少させた後、前記排気還流量を所定量減少させた気筒の前記燃焼悪化度が所定範囲を越えているとき、異常を報知する手段を備えたことを特徴とする。
【０２２０】
すなわち、排気還流量を減少させても、依然として燃焼悪化度が所定範囲を越えているときは、ＥＧＲを含めたエンジンシステムになんらかの異常が発生しているとして、それを報知するものである。
【符号の説明】
【０２２１】
１  エアクリーナ
２  エアフローセンサ
３  電子スロットル
４  吸気管
５  コレクタ
６  アクセル
７  燃料噴射弁
８  点火プラグ
９  エンジン
１０  排気管
１１  三元触媒
１２  空燃比センサ
１３  アクセル開度センサ
１４  水温センサ
１５  クランク角センサ
１６  コントロールユニット
１７  スロットル開度センサ
１８  排気還流管
１９  ＥＧＲ弁
２０  触媒下流O2センサ
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  入力回路
２５  入出力ポート
２６  点火出力回路
２７  燃料噴射弁駆動回路
２８  電子スロットル駆動回路
２９  吸気温センサ
３０  １番気筒空燃比センサ
３１  ２番気筒空燃比センサ
３２  ３番気筒空燃比センサ
３３  ４番気筒空燃比センサ
３４  ＥＧＲ弁駆動回路
３５  １番気筒ＥＧＲ弁
３６  ２番気筒ＥＧＲ弁
３７  ３番気筒ＥＧＲ弁
３８  ４番気筒ＥＧＲ弁
３９  １番気筒ＥＧＲ弁駆動回路
４０  ２番気筒ＥＧＲ弁駆動回路
４１  ３番気筒ＥＧＲ弁駆動回路
４２  ４番気筒ＥＧＲ弁駆動回路
４３  １番気筒燃焼圧センサ
４４  ２番気筒燃焼圧センサ
４５  ３番気筒燃焼圧センサ
４６  ４番気筒燃焼圧センサ
４７  １番気筒イオン電流センサ
４８  ２番気筒イオン電流センサ
４９  ３番気筒イオン電流センサ
５０  ４番気筒イオン電流センサ
【図１】
2015117642.tif 000003
【図２】
2015117642.tif 000004
【図３】
2015117642.tif 000005
【図４】
2015117642.tif 000006
【図５】
2015117642.tif 000007
【図６】
2015117642.tif 000008
【図７】
2015117642.tif 000009
【図８】
2015117642.tif 000010
【図９】
2015117642.tif 000011
【図１０】
2015117642.tif 000012
【図１１】
2015117642.tif 000013
【図１２】
2015117642.tif 000014
【図１３】
2015117642.tif 000015
【図１４】
2015117642.tif 000016
【図１５】
2015117642.tif 000017
【図１６】
2015117642.tif 000018
【図１７】
2015117642.tif 000019
【図１８】
2015117642.tif 000020
【図１９】
2015117642.tif 000021
【図２０】
2015117642.tif 000022
【図２１】
2015117642.tif 000023
【図２２】
2015117642.tif 000024
【図２３】
2015117642.tif 000025
【図２４】
2015117642.tif 000026
【図２５】
2015117642.tif 000027
【図２６】
2015117642.tif 000028
【図２７】
2015117642.tif 000029
【図２８】
2015117642.tif 000030
【図２９】
2015117642.tif 000031
【図３０】
2015117642.tif 000032
【図３１】
2015117642.tif 000033
【図３２】
2015117642.tif 000034
【図３３】
2015117642.tif 000035
【図３４】
2015117642.tif 000036
【図３５】
2015117642.tif 000037
【図３６】
2015117642.tif 000038
【図３７】
2015117642.tif 000039
【図３８】
2015117642.tif 000040
【図３９】
2015117642.tif 000041
【図４０】
2015117642.tif 000042
【図４１】
2015117642.tif 000043
【図４２】
2015117642.tif 000044
【図４３】
2015117642.tif 000045
【図４４】
2015117642.tif 000046
【図４５】
2015117642.tif 000047
【図４６】
2015117642.tif 000048
【図４７】
2015117642.tif 000049
【図４８】
2015117642.tif 000050
【図４９】
2015117642.tif 000051
【図５０】
2015117642.tif 000052
【図５１】
2015117642.tif 000053
【図５２】
2015117642.tif 000054
【図５３】
2015117642.tif 000055