(57)【特許請求の範囲】
【請求項１】
入力を受けて要求値を算出する手段と、この算出手段の出力と先送り量を加算する手段と、この加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限する手段と、この制限された加算結果を、また制限されなかったときはその制限されなかった加算結果を出力とする手段と、前記制限手段により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとする手段とを設けたことを特徴とする信号処理装置。
【請求項２】
セラミックの周囲に発熱体を設けたセンサ部および発熱体が一定の温度となるように発熱体への供給電流を制御する回路とからなる熱線式エアフローメータと、このエアフローメータの指示流量の所定時間当たりの変化量を算出する手段と、この変化量で前記エアフローメータ指示流量を補正した値を高周波分補正流量として算出する手段と、この高周波補正流量の所定時間当たりの変化量を算出する手段と、この変化量を所定区間ごとに積分しつつその積分値を所定の速度で減衰させる手段と、この積分減衰手段の出力で前記高周波分補正流量を補正した値をエアフローメータ部流量として算出する手段と、このエアフローメータ部流量に先送り量を加算する手段と、この加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限する手段と、この制限された加算結果を、また制限されなかったときはその制限されなかった加算結果を出力とする手段と、前記制限手段により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとする手段とを設けたことを特徴とする信号処理装置。
【請求項３】
運転条件信号がリーン条件であるかどうかを判定する手段と、この判定結果よりリーン条件ではこの条件に応じた目標空燃比を、またリーン条件以外の条件になるとこのリーン条件以外の条件に応じた目標空燃比を運転条件信号に応じて算出する手段と、この目標空燃比と運転条件信号から基本噴射量を算出する手段と、この基本噴射量にもとづいて算出された燃料を吸気管に供給する装置と、吸気絞り弁をバイパスする補助空気流量を調整する制御弁と、絞り弁開度信号から絞り弁流路面積を算出する手段と、前記制御弁の開度信号から制御弁流路面積を算出する手段と、この制御弁流路面積と前記絞り弁流路面積の合計を基本流路面積として算出する手段と、この基本流路面積と前記目標空燃比から目標空燃比の切換時に切換の前後でトルクを同一にするための目標流路面積を算出する手段と、この目標流路面積に先送り量を加算する手段と、この加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限する手段と、この制限された加算結果に応じて、また制限されなかったときはその制限されなかった加算結果に応じて前記制御弁を駆動する手段と、前記制限手段により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとする手段とを設けたことを特徴とする信号処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は信号処理装置、特にエンジン制御に使われるものに関する。
【０００２】
【従来の技術】
エンジンに供給する燃料を制御するものとして、吸気絞り弁の上流に設けたエアフローメータ出力から供給燃料量を計算するものがある（特開平３−２２２８４９号公報参照）。
【０００３】
これは、エンジン制御をマイコンからなるコントロールユニットにより行うもので、エアフローメータからの出力（電圧値）がデジタル値に変換されてコントロールユニットに入力される。
【０００４】
この入力値は、そのままでは吸入空気流量に比例するものでなく、また過渡時には応答遅れを伴った信号となっているため、入力値に一定の信号処理を加えることによって、エアフローメータ部流量に精度良く対応した値を算出するのである。
【０００５】
また、こうして算出したエアフローメータ部流量Ｑｓには、急加速時に吸気管内容積の圧力変化に伴うオーバーシュートが生じるので、これをならすため、
Ｔｐ＝（Ｑｓ／Ｎ）×Ｋ
Ａｖｔｐ＝Ｔｐ×Ｆｌｏａｄ＋Ａｖｔｐn-1×（１−Ｆｌｏａｄ）…▲１▼
ただし、Ｎ；エンジン回転数
Ｋ；ベース空燃比を与える定数
Ｆｌｏａｄ；吸気管空気遅れ係数
Ａｖｔｐn-1；前回のＡｖｔｐ
によりシリンダ吸気相当の基本噴射パルス幅Ａｖｔｐを求め、これを吸気ポートに設けた燃料噴射弁に出力している。
【０００６】
【発明が解決しようとする課題】
ところで、絞り弁全開で吸気脈動が非常に大きい場合（６気筒未満のエンジンの場合）に、吸気脈動に伴う空気の逆流により吸入空気流量の算出結果が負の値になり、また急加速時に算出結果が算出上の最大値をオーバーフローすると、上記の装置では、算出結果が負で０が、オーバーフローしたときは算出上の最大値が燃料制御にそれぞれ用いられる。負の値を考慮するほど高精度の空燃比制御が要求されておらず、また算出上の最大値を上げるためには、吸入空気流量のデータに与えるバイト数を大きくすることが必要で、そうなると演算時間やコストが上昇してしまうため、算出範囲外の値を切り捨てていたわけである。
【０００７】
しかしながら、この切り捨て処理の後に、上記の▲１▼式のように特に積分処理を行う制御システムにあっては、切り捨てられた量が積分後の遅れとなって制御精度を落としてしまう。たとえば、図３７に急加速時の波形を示すと、吸入空気流量の算出結果（細線で示す）が負となった部分が切り捨てられると、積分後の出力であるシリンダ空気量相当信号（図ではＡｖｔｐｒ）の出力が破線のように上昇してしまい、空燃比がリッチ側にずれるエラーが生じるのである。また、急加速の初期には吸気管内の空気充填のために算出結果がオーバーフローするが、この算出上の最大値を上回ったオーバーフロー分が切り捨てられるとシリンダ空気量相当信号に遅れが生じ、リーン側にずれるエラーが発生する。
【０００８】
上記の切り捨て処理は、空気流量信号に限るものでなく、他の信号（たとえば吸気絞り弁や制御弁の開度信号、燃料信号など）を処理するときにも行われており、排気性能への要求が厳しく問われる現在では、このような切り捨て分が空燃比制御に与える影響を無視できない。
【０００９】
そこでこの発明は、算出結果が負の値となりオーバーフローして切り捨てられる量を先送り量として保持し、次回以降の算出結果にこの保持量を加算することにより、制御精度を向上させることを目的とする。
【００１０】
【課題を解決するための手段】
第１の発明は、図１に示すように、入力を受けて要求値を算出する手段４１と、この算出手段４１の出力と先送り量を加算する手段４２と、この加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限する手段４３と、この制限された加算結果を、また制限されなかったときはその制限されなかった加算結果を出力とする手段４４と、前記制限手段４３により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとする手段４５とを設けた。
【００１１】
第２の発明は、図３９に示したように、セラミックの周囲に発熱体を設けたセンサ部および発熱体が一定の温度となるように発熱体への供給電流を制御する回路とからなる熱線式エアフローメータ７１と、このエアフローメータ７１の指示流量Ｑｓｈｗの所定時間当たりの変化量ΔＱｓｈｗ（＝Ｑｓｈｗ−Ｑｓｈｗn-1）を算出する手段７２と、この変化量ΔＱｓｈｗで前記エアフローメータ指示流量Ｑｓｈｗを補正した値を高周波分補正流量Ｑｓｓとして算出する手段７３と、この高周波補正流量Ｑｓｓの所定時間当たりの変化量ΔＱｓｓ（＝Ｑｓｓ−Ｑｓｓn-1）を算出する手段７４と、この変化量ΔＱｓｓを所定区間ごと（所定の時間または所定のクランク角ごと）に積分しつつその積分値を所定の速度で減衰させる手段７５と、この積分減衰手段７５の出力Ａｆｌｅで前記高周波分補正流量Ｑｓｓを補正した値（たとえばＱｓｓ＋Ａｆｌｅ）をエアフローメータ部流量として算出する手段７６と、このエアフローメータ部流量Ｑｓに先送り量Ｏｋｕｒｉを加算する手段７７と、この加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限する手段７８と、この制限された加算結果を、また制限されなかったときはその制限されなかった加算結果を出力とする手段７９と、前記制限手段７８により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとする手段８０とを設けた。
【００１２】
第３の発明は、図４０に示したように、運転条件信号がリーン条件であるかどうかを判定する手段５１と、この判定結果よりリーン条件ではこの条件に応じた目標空燃比を、またリーン条件以外の条件になるとこのリーン条件以外の条件に応じた目標空燃比を運転条件信号に応じて算出する手段５２と、この目標空燃比と運転条件信号から基本噴射量を算出する手段５３と、この基本噴射量にもとづいて算出された燃料を吸気管に供給する装置５４と、吸気絞り弁５５をバイパスする補助空気流量を調整する制御弁５６と、絞り弁開度信号から絞り弁流路面積を算出する手段５７と、前記制御弁５６の開度信号から制御弁流路面積を算出する手段５８と、この制御弁流路面積と前記絞り弁流路面積の合計を基本流路面積として算出する手段５９と、この基本流路面積と前記目標空燃比から目標空燃比の切換時に切換の前後でトルクを同一にするための目標流路面積を算出する手段６０と、この目標流路面積に先送り量Ａｏｋｕｒｉを加算する手段６１と、この加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限する手段６２と、この制限された加算結果に応じて、また制限されなかったときはその制限されなかった加算結果に応じて前記制御弁５６を駆動する手段６３と、前記制限手段６２により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとする手段６４とを設けた。
【００１３】
【作用】
第１の発明では、加算結果が算出上の最大値を越えてオーバーフローしたときは、そのオーバーフロー分が保持され、また算出上の最小値を下回ったときはこの下回った分が保持され、これらが先送り量として次回の加算時に加算される。オーバーフローの途中や加算結果が最小値を下回っている途中では要求値に応じられなかった分を先送りすることで、時間的に遅れても要求に応じるわけで、これにより出力手段４４の出力を積分処理する制御システムにあっても、積分後の信号の精度を落とすことがない。
【００１４】
なお、加算結果が算出上の最大値を越えてオーバーフローすることはあるが、算出上の最小値を下回ることはない信号や加算結果が算出上の最小値を下回ることはあるが、算出上の最大値を越えることのない信号についても同様である。
【００１５】
第２の発明でも、加算結果が算出上の最大値を越えてオーバーフローしたときは、そのオーバーフロー分が保持され、また算出上の最小値を下回ったときはこの下回った分が保持され、これらが先送り量として次回の加算時に加算されると、出力手段７９の出力を積分処理することによってシリンダ空気量相当の信号を求めるときにも、このシリンダ空気量相当の信号の精度を落とすことがなく、目標空燃比への制御精度が高まる。
【００１６】
第３の発明はリーンバーンエンジンに適用したもので、リーンバーンエンジンではリーン空燃比への切換時に制御弁５６に対する目標流路面積を増量することによって、切換前後でトルクが同一となるようにする。
【００１７】
この場合に、目標流路面積と先送り量の加算結果が算出上の最大値を越えてオーバーフローすると、そのオーバーフロー分が保持され、これが先送り量として次回の加算時に加算される。オーバーフローの途中では最大値に制限されるため要求値に沿うことができなくても、オーバーフローの終了後に先送り量の分だけ余計に制御弁５６が開かれると、オーバーフロー時の足りない空気量が時間的に遅れて補われ、これによって空燃比切換時のトルクの低下が防止される。
【００１８】
理論空燃比への切換時に目標流路面積を減量するとき、加算結果が最小値（たとえばゼロ）を下回っても制御弁５６を逆向きに流すことができず、加算結果がゼロに制限されると、空気量の供給が多すぎるのであるが、この場合に、後で先送り量の分だけ余計に制御弁５６が閉じられることで、加算結果をゼロに制限していた間の供給過多の空気量が、時間的に遅れて相殺され、これによって空燃比切換時のトルクの増加が防止される。
【００１９】
【実施例】
図２において、エアクリーナ１１から吸入された空気は、一定の容積を有するコレクタ部１２ａにいったん蓄えられ、ここから分岐管を経て各気筒のシリンダに流入する。各気筒の吸気ポート１２ｂにはインジェクタ３が設けられ、このインジェクタ３からエンジン回転に同期して間欠的に燃料が噴射される。
【００２０】
一定の条件が成立したとき空燃比目標値を理論空燃比からリーン側の空燃比に切換えるのであるが、この切換時に補助空気流量を増量補正（理論空燃比への切換時は減量補正）することによって、切換の前後でトルクが同一となるようにトルク制御を行う。
【００２１】
このため、吸気絞り弁５をバイパスする補助空気通路２１に大流量の流量制御弁２２が設けられている。この制御弁２２は比例ソレノイド式で、コントロールユニット２からのオンデューティ（一定周期のＯＮ時間割合）が大きくなるほど通路２１を流れる補助空気流量が増加する。
【００２２】
制御弁２２を大流量としたのは、空燃比切換時のトルク制御を余裕をもってかつ確実に行わせるためである。ただし、大流量としたときは、制御弁２２の誤動作によりドライバーの要求以上のトルクが発生することがあるので、後述するようにフェイルセーフ機能を設けている。
【００２３】
なお、リーン空燃比域での燃焼不安定により増加するＣＯ，ＨＣを抑えるため、燃焼室内に流れ込む吸気にスワールが与えられるよう、吸気ポート１２ｂの近くに、一部に切欠き（図示せず）を有するスワールコントロールバルブ１３を設けている。リーン空燃比域でスワールコントロールバルブ１３を全閉位置にして吸気を絞ることにより吸気の流速を高め、燃焼室内にスワールを生じさせるのである。理論空燃比域では排気管１８に設けた三元触媒１９によってＮＯｘを浄化する。
【００２４】
インジェクタ３からの供給燃料量と流量制御弁２２を流れる補助空気流量とを制御するため、コントロールユニット２には、制御上必要となるエンジンの運転条件を検出する各種のセンサからの信号が入力されている。４はエアクリーナ１１から吸入される空気流量を検出する熱線式のエアフローメータ、６は吸気絞り弁５の開度を検出するスロットルセンサ、７は単位クランク角度ごとの信号とｒｅｆ信号（クランク角度の基準位置ごとの信号）とを出力するクランク角度センサ、８は水温センサ、９は理論空燃比からリーン側の空燃比までの実際の空燃比を幅広く検出することのできる広域空燃比センサである。
【００２５】
ところで、空燃比切換時のトルク制御のため、制御弁２２の目標流路面積Ｔａｔｃｖ（後述する）を算出するのであるが、この算出結果が負の値になったときは算出結果を０とし、また算出上の最大値を上回ってオーバーフローしたときは算出結果をその最大値とすることにより、負の値やオーバーフロー分を切り捨てたままにすると、その切り捨て分だけ制御精度が落ちることになる。
【００２６】
これに対処するため、この例では算出結果が負の値になったりオーバーフローしたときに切り捨てられる量を保持しておき、次回以降の目標流路面積の算出時にこの保持した量を加算する。これを説明する前に全体の制御を、図３から図２９までに示すフローチャートとこの制御に使われるテーブルやマップの内容を表す特性図を用いて、〈１〉制御弁２２の流量制御、〈２〉目標空燃比の設定、〈３〉噴射量制御の順に概説する。
【００２７】
なお、燃料制御は目標空燃比をめざして行い、空気流量の検出値から最終的に供給燃料量を求めていることを考えると、（空気流量）×（燃空比）＝（供給燃料量）の関係が成立することから、燃空比のほうが空燃比よりも扱いやすいため、以下では一部の数値に燃空比を用いている。
【００２８】
〈１〉制御弁２２の流量制御
〈１−１〉アイドル回転数制御との関係
図１５で示したように、アイドル回転数制御用のオンデューティＩＳＣＯＮＰとは別個にトルク制御デューティＴｃｖｄｔｙを計算しておき（図１５のステップ７２）、アイドル回転数のフィードバック補正条件（図ではクローズド条件で示す）ではＩＳＣＯＮＰを出力し（図１５のステップ７３，７５）、フィードバック補正条件でなくなると、ＩＳＣＯＮＰに代えてトルク制御デューティＴｃｖｄｔｙを出力する（図１５のステップ７３，７４）。
【００２９】
ここで、アイドル回転数制御用のオンデューティＩＳＣＯＮＰは、たとえば
ＩＳＣＯＮＰ＝Ａｒｅｇ＋ＩＳＣｃｌ＋ＩＳＣｔｒ＋ＩＳＣａｔ＋ＩＳＣａ＋ＩＳＣｒｆｎ  …（１）
ただし、Ａｒｅｇ；ウォームアップデューティ（エアレギュレータ相当）
ＩＳＣｃｌ；フィードバック補正量
ＩＳＣｔｒ；減速時空気増量分（ダッシュポット相当）
ＩＳＣａｔ；Ａ／Ｔ車のＮ←→Ｄレンジ補正分（Ｄレンジで大）ＩＳＣａ；エアコンＯＮ時の補正分
ＩＳＣｒｆｎ；ラジエータファンＯＮ時の補正分
により計算する（図１５のステップ７１）。
【００３０】
（１）式のウォームアップデューティＡｒｅｇは、エンジン始動後の１回目はそのときの冷却水温に応じてテーブル参照により求めた値（テーブル値）をそのまま変数としてのＡｒｅｇに入れて使用し、その後は一定の周期（たとえば１ｓｅｃごと）で冷却水温に応じたテーブル値と前回の値を比較してＡｒｅｇの値を増減しながら（たとえばテーブル値＞前回のＡｒｅｇでＡｒｅｇ＝Ａｒｅｇ＋１、テーブル値＜前回のＡｒｅｇでＡｒｅｇ＝Ａｒｅｇ−１）暖機完了まで働く値である。このため吸気管にエアレギュレータは設けられていない。
【００３１】
〈１−２〉アイドル回転数のフィードバック補正
アイドル回転数の目標値は、冷却水温、エアコンスイッチ、自動変速機のギア位置および始動後の経過時間により定まっており、目標値から所定値（たとえば２５ｒｐｍ）外れると目標値に戻るように微小な流量制御を行う。フィードバック補正に入る条件は、たとえば
〈ア〉絞り弁の全閉スイッチがＯＮの状態で車速が８ｋｍ／ｈ以下
〈イ〉絞り弁の全閉スイッチがＯＮの状態でニュートラルスイッチもＯＮの状態であること
のいずれかが成立したときで、フィードバック補正によりアイドル回転数が目標値に戻った状態では、（１）式のフィードバック補正量ＩＳＣｃｌ（＝ＩＳＣｉ＋ＩＳＣｐ、ただしＩＳＣｉは積分分、ＩＳＣｐは比例分）がゼロでないある値をもつ。
【００３２】
このフィードバック補正量ＩＳＣｃｌは、運転条件が非フィードバック補正条件に移った時点でアイドル回転数制御用に保持しておき、次にフィードバック補正条件に戻ったときこのアイドル回転数制御用の保持値でフィードバック補正を開始する。
【００３３】
〈１−３〉トルク制御デューティＴｃｖｄｔｙ
これは、図１６，図１７に示したようにサブルーチンで計算する。
【００３４】
まず絞り弁開度ＴＶＯから図１８を内容とするテーブルを参照して絞り弁流路面積Ａｔｖｏを、また制御弁２２に与える基本デューティＩｓｃｄｔから図１９を内容とするテーブルを参照して制御弁流路面積Ａｉｓｃ０を求め、これらの和を基本流路面積として変数Ａａ０に入れる（図１６のステップ８１，８２）。なお、テーブル参照（マップ参照についても）はいずれも補間計算付きであるため、以下では単にテーブル参照（マップ参照）という。
【００３５】
ここで、基本デューティＩｓｃｄｔは
Ｉｓｃｄｔ＝（Ｉｓｃｄｔｙ−Ｔｃｖｏｆｓ）×Ｔｃｖｇｉｎ  …（２）
ただし、Ｉｓｃｄｔｙ；減量基本デューティ
Ｔｃｖｏｆｓ；制御弁立上がりデューティ
Ｔｃｖｇｉｎ；デューティ補正率
である。
【００３６】
（２）式の減量基本デューティＩｓｃｄｔｙは、前回のフィードバック補正条件の終了時に保持されるフィードバック補正量ＩＳＣｃｌを減量補正したもので、
Ｉｓｃｄｔｙ＝ＩＳＣｃｌ×Ｇｉｓｔｖ                    …（２１）
ただし、Ｇｉｓｔｖ；減量補正率（０以上１以下の値）
である。この減量補正は、空燃比切換時のトルク制御のために制御弁２２を動かしうる範囲を拡大することによって制御弁２２の最大流量を小さくし、目標値をめざして微小な流量制御を行うフィードバック補正条件での弁精度を落とさないようにするためである。
【００３７】
（２）式の制御弁立上がりデューティＴｃｖｏｆｓとデューティ補正率Ｔｃｖｇｉｎについてはバッテリ電圧低下時の補正で、後述する。
【００３８】
基本流路面積Ａａ０からは増量平衡面積Ｔａｔｃｖｈを
Ｔａｔｃｖｈ＝Ａａ０×Ｋｑｈ０
×（１／（Ｄｍｌ×ＬＴＣＧＩＮ＃）−１）        …（３）
ただし、Ｋｑｈ０；差圧補正率
ＬＴＣＧＩＮ＃；トルク制御ゲイン
Ｄｍｌ；目標燃空比ランプ応答値
により求める（図１６のステップ８４）。
【００３９】
（３）式をわかりやすくするため、
Ｔａｔｃｖｈ＝Ａａ０×（１／Ｔｄｍｌ−１）            …（３−１）
ただし、Ｔｄｍｌ；目標燃空比のマップ値
とすれば、（３−１）式において、（１／Ｔｄｍｌ−１）は理論空燃比からの空燃比差相当であるため、これに総流路面積としてのＡａ０をかけた値はリーン空燃比への切換時の増量面積分（理論空燃比への切換時は減量面積分）を表しているのである。
【００４０】
たとえば、理論空燃比（１４．５）で目標燃空比マップ値Ｔｄｍｌは１、空燃比がリーン側の２０でＴｄｍｌはほぼ０．６６といった値である。なお、Ｔｄｍｌが１や０．６６という値であるのは、後述するように燃空比に空燃比の逆数そのものでなく、理論燃空比を１とする相対値を採用しているためである。
【００４１】
ここで、（３−１）式のＴｄｍｌに１を入れるとＴａｔｃｖｈ＝０、またＴｄｍｌに０．６６を入れるとＴａｔｃｖｈ＝１／０．６６−１≒０．５２となり、（０．５２−０）×Ａａ０が理論空燃比からリーン空燃比への切換時の増量面積分となるわけである。
【００４２】
（３）式に戻り、差圧補正率Ｋｑｈ０は、同じ流路面積でも高負荷になるほど絞り弁５と制御弁２２の前後差圧が小さくなり流量が小さくなるため、前後差圧が相違しても流量を同じにするための補正である。このため、負荷としてのＱｈ０（公知のリニアライズ流量のことで、絞り弁開度ＴＶＯとエンジン回転数Ｎおよびシリンダ容積Ｖから定まっている）から図２０を内容とするテーブルを参照することにより差圧補正率Ｋｑｈ０を求める（図１６のステップ８３）。（３）式のトルク制御ゲインＬＴＣＧＩＮ＃はマッチングに必要となる値である。
【００４３】
増量平衡面積Ｔａｔｃｖｈは、その上限を制御弁２２の最大流量時の流路面積ＴＣＶＭＡＸ＃から上記の制御弁流路面積Ａｉｓｃ０を差し引いた値（ＴＣＶＭＡＸ＃−Ａｉｓｃ０）に制限する（図１６のステップ８５）。Ａｉｓｃ０の分はアイドル回転数制御ですでに使用されている値であるため、これを差し引いた残りが、空燃比切換時のトルク制御のために制御弁２２を動かしうる範囲となるからである。
【００４４】
Ｔａｔｃｖｈ＞ＴＣＶＭＡＸ＃−Ａｉｓｃ０になったとき（つまり上限にかかったとき）は、ＦＡＡＣＯＦ＝１とする（図１６のステップ８６，８８）。このフラグＦＡＡＣＯＦはランプ応答値Ｄｍｌの変化速度を可変にするためのフラグで、ＦＡＡＣＯＦ＝１になると変化速度を遅くする。これは、上限にかかるまでは速い変化速度で制御弁２２を動かすことができても、上限にかかった後は変化速度を速くせず、急激なトルク変化を防止するためである。
【００４５】
増量平衡面積Ｔａｔｃｖｈに対し、
Ｔａｔｃｖ０＝Ｔａｔｃｖｏ＋（Ｔａｔｃｖｈ−Ｔａｔｃｖｏ）×Ｔｃｖｔｃ              …（４）
ただし、Ｔａｔｃｖｏ；Ｔａｔｃｖｈの前回値
Ｔｃｖｔｃ；進み補償時定数相当値（１以上の値）
により１次進みの式で進み補償面積を求める（図１６のステップ９１）。ＭＰＩ方式で制御弁２２の下流の吸気管容積が大きいときは、燃料の遅れよりも吸気管での空気の遅れのほうが相対的に大きいため、応答のよい燃料に合わせて空気を進ませることで、シリンダへの空気流量と燃料の両者の供給の位相を一致させるのである。
【００４６】
また、ＳＰＩ方式で制御弁下流の吸気管容積が小さいときは、空気よりも燃料のほうが遅れてシリンダに流入するので、燃料に合わせて空気のシリンダへの流入を遅らせるため、
Ｔａｔｃｖ０＝Ｔａｔｃｖ０n-1＋（Ｔａｔｃｖｈ−Ｔａｔｃｖ０n-1）×Ｔｃｖｔｃ              …（５）
ただし、Ｔａｔｃｖ０n-1；Ｔａｔｃｖ０の前回値
Ｔｃｖｔｃ；遅れ補償時定数相当値（１未満の値）
により１次遅れの式で遅れ補償面積を求めることで（図１６のステップ９２）、シリンダへの空気と燃料の供給の位相を一致させる。
【００４７】
図１６と図１７のフローチャートは、ＭＰＩ方式で吸気管容積の大きいエンジンとＳＰＩ方式で吸気管容積の小さいエンジンの２種類のタイプのいずれにも共用できるようにするため、Ｔｃｖｔｃ≧１．０であるかどうかみて、Ｔｃｖｔｃ≧１．０のとき吸気管容積の大きなエンジンであると判断して上記の（４）式を、Ｔｃｖｔｃ＜１．０であれば（５）式を採用するようにしている（図１６のステップ９０，９１、ステップ９０，９２）。
【００４８】
（４），（５）式の進み補償または遅れ補償時定数相当値Ｔｃｖｔｃは、エンジン回転数Ｎから図２１を内容とするテーブルを参照して求める（図１６のステップ８９）。図２１には吸気管容積の大きい用と小さい用の両方の特性を示しているが、図２に示したエンジンでは吸気管容積が小さい用の特性は不要である。
【００４９】
このようにして求めた進み補償または遅れ補償面積Ｔａｔｃｖ０から目標流路面積Ｔａｔｃｖを
Ｔａｔｃｖ＝Ｔａｔｃｖ０n-DLYIS＋Ａｉｓｃ０            …（６−１）
により求める（図１７のステップ９３）。なお、図１７の流れ図では先送り分Ａｏｋｕｒｉが入っているが、これについては後述する。
【００５０】
（６−１）式のＴａｔｃｖ０n-DLYISは進み補償または遅れ補償面積Ｔａｔｃｖ０の所定回（たとえばＤＬＹＩＳ＃）前の値である。これはインジェクタ３に開弁信号が送られてからインジェクタ３が実際に開き始めるまでのデッドタイムを考慮するものである。
【００５１】
（６−１）式で算出した結果は、最小を０、最大を制御弁最大流量時の流路面積ＴＣＶＭＡＸ＃と進み補償のための余裕分ＭＸＯＳ＃を加えた値（ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃）に制限するため、Ｔａｔｃｖ＜０であれば、Ｔａｔｃｖ＝０とし（図１７のステップ９４，９５）、Ｔａｔｃｖ＞ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃になると、Ｔａｔｃｖ＝ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃とする（図１７のステップ９６，９７）。
【００５２】
こうして得た目標流路面積Ｔａｔｃｖは図２２を内容とするテーブルを参照してオンデューティＤｔｙｔｃに変換し（図１７のステップ９９）、トルク制御デューティＴｃｖｄｔｙを
Ｔｃｖｄｔｙ＝Ｄｔｙｔｃ／Ｔｃｖｇｉｎ＋Ｔｃｖｏｆｓ      …（７）
ただし、Ｔｃｖｇｉｎ；デューティ補正率
Ｔｃｖｏｆｓ；制御弁立上がりデューティ
により計算する（図１７のステップ１００，１０１）。この式は、（２）式をＩｓｃｄｔｙについて求めた式と同等である。
【００５３】
（７）式の制御弁立上がりデューティＴｃｖｏｆｓは、オンデューティがある値になるまでは、図２５のように実質的に制御弁２２が働かない分で、バッテリ電圧Ｖｂから図２４を内容とするテーブルを参照することにより求める。図２５のように、比例ソレノイド式の制御弁２２ではバッテリ電圧Ｖｂが低下するほど制御弁立上がりデューティＴｃｖｏｆｓが大きくなることを考慮しているわけである。
【００５４】
デューティ補正率Ｔｃｖｇｉｎは、図２３を内容とするテーブルを参照して求める。これは、図２５の制御弁２２の流量特性において、斜めに立ち上がる直線の傾きがバッテリ電圧Ｖｂの低下とともに小さくなるため、バッテリ電圧Ｖｂが低下しても、制御弁流量を同一とするための補正である。
【００５５】
〈２〉目標燃空比の設定
目標燃空比はマップ値Ｔｄｍｌ→ランプ応答値Ｄｍｌ→ダンパ値Ｋｍｒの順に求める。
【００５６】
〈２−１〉目標燃空比のマップ値Ｔｄｍｌ
図６に示したように、リーン条件であれば図７を内容とするリーンマップを参照して目標燃空比ＭＤＭＬＬを、またリーン条件でなければ図８の非リーンマップを参照して目標燃空比ＭＤＭＬＳをそれぞれ求め（図６のステップ３１，３２、ステップ３１，３３）、これを目標燃空比のマップ値として変数Ｔｄｍｌに入れる（図６のステップ３４）。
【００５７】
ここで、目標燃空比マップ値となるＭＤＭＬＬ，ＭＤＭＬＳの値は、図７，図８のように燃空比そのものの値でなく、理論燃空比を１．０とする相対値である。
【００５８】
〈２−２〉目標燃空比のランプ応答値Ｄｍｌ
ランプ応答値Ｄｍｌの波形はその名のとおり、図１０に示したように、ステップ変化するマップ値Ｔｄｍｌに対してランプ応答にしたもので、具体的には図９のように、リーン方向への燃空比の変化速度をＤｍｌｌ、リッチ方向への燃空比変化速度をＤｍｌｒとすれば、Ｄｍｌｏｌｄ（前回のＤｍｌ）とＴｄｍｌの比較によりいずれの方向への変化であるかがわかるため、Ｄｍｌｏｌｄ＜Ｔｄｍｌであればリッチ方向への切換であるとして、Ｔｄｍｌと（Ｄｍｌｏｌｄ＋Ｄｍｌｒ）の小さいほうをＤｍｌに入れ、この逆にＤｍｌｏｌｄ≧Ｔｄｍｌのときはリーン方向への切換であるとしてＴｄｍｌと（Ｄｍｌｏｌｄ−Ｄｍｌｌ）の大きいほうをＤｍｌに入れることで（図９のステップ４４，４５、ステップ４４，４６）、ランプ応答値が得られる。ＮＯｘで考えた場合、理論空燃比からリーン空燃比への切換時のほうが触媒の活性度合いがよいので、ＤｍｌｌのほうがＤｍｌｒより小さくできる。
【００５９】
一方、次の条件
〈ア〉スタートスイッチがＯＮであること
〈イ〉Ｔｄｍｌ≧上限値ＴＤＭＬＲ＃のとき
のいずれかが成立したときはＤｍｌ＝Ｔｄｍｌとする（図９のステップ４１，４２，４３）。
【００６０】
なお、ランプ応答値Ｄｍｌはエンジン回転に同期（ｒｅｆ信号に同期）させて求めている。エンジン回転に同期させて求めるのは、排気性能がエンジン回転に同期して変化するためである。
【００６１】
図１１は、上記２つの変化速度Ｄｍｌｌ，Ｄｍｌｒを求めるためのサブルーチンで、増量平衡面積Ｔａｔｃｖｈが上限値や下限値にかかる前（つまりＦＡＡＣＯＦ＝０のとき）は空燃比の切換速度を速くするため、大きな値の所定値ＤＤＭＬＬＨ＃、ＤＤＭＬＲＨ＃をそれぞれ変数Ｄｍｌｌ，Ｄｍｌｒにいれる（図１１のステップ５１，５２）。
【００６２】
これに対して、増量平衡面積Ｔａｔｃｖｈが上限値や下限値にかかった後（つまりＦＡＡＣＯＦ＝１のとき）は、絞り弁開度変化量の絶対値｜ΔＴＶＯ｜に応じた大きさの値を選択して変数Ｄｍｌｌ，Ｄｍｌｒに入れている（図１１のステップ５１，５３）。たとえば、一方の変数Ｄｍｌｌで代表させると、｜ΔＴＶＯ｜＜ＤＴＶＯ１＃で所定値ＤＤＭＬＬ０＃を、ＤＴＶＯ１＃≦｜ΔＴＶＯ｜＜ＤＴＶＯ２＃で所定値ＤＤＭＬＬ１＃を、ＤＴＶＯ２＃≦｜ΔＴＶＯ｜＜ＤＴＶＯ３＃で所定値ＤＤＭＬＬ２＃を、ＤＴＶＯ３＃≦｜ΔＴＶＯ｜で所定値ＤＤＭＬＬ３＃をそれぞれ選択する。ただし、ＤＤＭＬＬ０＃＜ＤＤＭＬＬ１＃＜ＤＤＭＬＬ２＃＜ＤＤＭＬＬ３＃＜ＤＤＭＬＬＨ＃である。
【００６３】
〈２−３〉目標燃空比のダンパ値Ｋｍｒ
図１２のように、ランプ応答値Ｄｍｌに対して、
Ｄｍｌｏ＝Ｄｍｌ×Ｆｂｙａｔｃ＋Ｄｍｌｏn-1×（１−Ｆｂｙａｔｃ）    …（９）
ただし、Ｆｂｙａｔｃ；遅れ時定数相当値（１未満の値）
により１次の遅れを加える（図１２のステップ６５）。
【００６４】
これは、ＭＰＩ方式で吸気管容積が大きいときに、制御弁からシリンダに達するまでに遅れをもつ補助空気流量の増量量に合わせて（９）式により燃料供給を遅らせることで（（９）式で目標空燃比を遅らせると、最終的に燃料の供給が遅れることになる）、空燃比切換時にシリンダへの燃料と空気の供給の位相を一致させるのである。
【００６５】
（９）式のダンパ値Ｄｍｌｏは、３回前までの値をストアしておき、所定回前（たとえばＤＬＹＦＢＡ＃回前）の値を変数Ｋｍｒに入れる（図１２のステップ６６）。ＤＬＹＦＢＡ＃回前の値とするのは、図１４に示したように、制御弁２２の遅れ（デッドタイム）を考慮したものである。
【００６６】
ただし、次の条件
〈ア〉スタートスイッチがＯＮであること
〈イ〉Ｄｍｌ＞１．０であること
〈ウ〉｜ΔＴＶＯ｜≧所定値ＤＴＶＯＴＲ＃であること
のいずれかが成立したときは、遅れ処理を行わない（図１２のステップ６１，６２，６３，６７）。
【００６７】
（９）式の遅れ時定数相当値Ｆｂｙａｔｃは、図１３を内容とするテーブルのうち吸気管容積大用を参照して求める（図１２のステップ６４）。空燃比切換時の空気流量の増量量の遅れは、エンジン回転数Ｎが低下するほど大きくなるため、この傾向に合わせて図１３のようにＦｂｙａｔｃの値を設定している（吸気管容積が小さいエンジンに対しては低回転域でだけ）。
【００６８】
図１３にはまた、吸気管容積小用の特性を重ねて示しており、ＳＰＩ方式で吸気管容積が小さいエンジンでは、燃料よりも空気のほうが応答がよいので、燃料を遅らせる必要がないため、Ｆｂｙａｔｃ＝１．０としている。つまり、図１３を内容とするテーブルを実際に装着するエンジンの吸気管容積の大小に合わせて、不要となる図１３の一方の特性を削除することで、図１２のフローチャートをＳＰＩ方式にも共用できるのである。
【００６９】
なお、ＭＰＩ方式で吸気管容積が大きい場合に、空燃比切換時に補助空気流量の増量量と燃料量の両者の供給の位相を一致させるには、（ａ）補助空気流量の増量量に合わせて燃料量を遅らせるか、（ｂ）燃料量に合わせて補助空気流量の増量量を進めてやるかの２つの実施例があり、図１２と図１６のフローチャートは２つの実施例（ＳＰＩ方式に対する分まで含めると合計で４つの実施例）をともに織り込んだものとなっている。したがって、実施例レベルではいずれかを選択するため、
（ａ）に対する実施例のとき図１６のステップ９０，９１，９２を削除、
（ｂ）に対する別の実施例のとき図１２のステップ６４，６５を削除
しなければならない。
【００７０】
〈２−４〉目標燃空比Ｔｆｂｙａ
これは図６のように、
Ｔｆｂｙａ＝Ｋｍｒ＋Ｋａｓ＋Ｋｔｗ                        …（８）
ただし、Ｋｍｒ；目標燃空比のダンパ値
Ｋａｓ；始動後増量補正係数
Ｋｔｗ；水温増量補正係数
により計算する（図６のステップ３８）。
【００７１】
ここで、始動後増量補正係数Ｋａｓは、クランキング中はその値が冷却水温に応じて定まり、エンジン始動直後より時間とともに徐々に減少する値、水温増量補正係数Ｋｔｗは冷却水温からテーブルを参照して求める値（図６のステップ３７，３６）で、いずれも公知である。
【００７２】
〈３〉噴射量制御
〈３−１〉制御弁２２のフェイルセーフ
図５に示したように、エアフローメータ４の出力電圧ＱａはＡ／Ｄ変換した後でテーブル参照により空気流量単位に変換するが（図５のステップ２１，２２）、この変換により得た空気流量Ｑを上限値Ｆｑｍａｘに制限する（図５のステップ２３，２４）。これは、大流量の制御弁２２に誤作動が生じると、大流量の補助空気がシリンダに流入してドライバーの要求以上のトルクが発生するので、これを防止するためである。
【００７３】
図２６は上限値Ｆｑｍａｘを求めるためのフローチャートである。図２６において、絞り弁流路面積Ｆａｔｖｏを図２７を内容とするテーブルを参照して、また制御弁２２が正常に働くとしたときの制御弁流路面積の予測値Ａｉｓｃを図２８を内容とするテーブルを参照してそれぞれ求める（図２６のステップ１１１，１１２）。
【００７４】
なお、図２７で横軸のＴｖｏａｂｓは絞り弁開度ＴＶＯから全閉時のＴＶＯを引いた値、またＡＯＦＳＴ＃は絞り弁開度ＴＶＯを実空気流量に対応させるためのオフセット量である。図２８で横軸のＡａｃｄｔｙはＩＳＣＯＮＰ（アイドル回転数制御用のオンデューティ）かＴｃｖｄｔｙ（トルク制御デューティ）のいずれかの値である。
【００７５】
絞り弁流路面積Ｆａｔｖｏと制御弁流路面積の予測値Ａｉｓｃの合計の流路面積（Ｆａｔｖｏ＋Ａｉｓｃ）は、
Ｐｑｍａｘ＝（Ｆａｔｖｏ＋Ａｉｓｃ）×ＫＡＱＧＩＮ＃    …（１０）
ただし、ＫＡＱＧＩＮ＃；定数
により空気流量単位に変換する（図２６のステップ１１３）。（１０）式のＰｑｍａｘは制御弁２２が正常に働くとしたときの総吸入空気流量の予測値である。
【００７６】
この予測値Ｐｑｍａｘから上限値Ｆｑｍａｘを
Ｆｑｍａｘ＝Ｐｑｍａｘ×Ｑｍｘｇ                        …（１１）
ただし、Ｑｍｘｇ；ゲイン
により求める（図２６のステップ１１５）。
【００７７】
ゲインＱｍｘｇはエアフローメータ４から得た空気流量Ｑと予測値Ｐｑｍａｘの比（Ｑ／Ｐｑｍａｘ）より図２９を内容とするテーブルを参照して求める（図２６のステップ１１４）。図２９において、Ｑ／Ｐｑｍａｘが小さな領域ではゲインＱｍｘｇの値が一定であるが、Ｑ／Ｐｑｍａｘの大きな領域になるとゲインＱｍｘｇの値を大きくしている。これは、たとえば絞り弁開度ＴＶＯが小さい領域で制御弁２２が全開固着したとき空燃比が過度にリーン側にずれてリーン失火を生じ回転が下がりすぎるので、このリーン失火を防止するためである。Ｑ／Ｐｑｍａｘは制御弁２２の誤作動の度合いを表すため、この度合いが大きいときはリーン失火を生じないように予測値Ｐｑｍａｘに対する上限値Ｆｑｍａｘの割合を大きくするのである。
【００７８】
〈３−２〉シリンダ吸気相当の基本噴射パルス幅Ｔｐ
図５において、Ｑ＞Ｆｑｍａｘのときは上限値Ｆｑｍａｘ（＝Ｑ）から、またそれ以外ではＱをそのまま用いてシリンダ吸気相当の基本噴射パルス幅Ｔｐを、公知の式
Ｔｐ０＝（Ｑ／Ｎｅ）×ＫＣＯＮＳＴ＃×Ｋｔｒｍ          …（１２）
Ｔｐ＝Ｔｐ０×Ｆｌｏａｄ＋Ｔｐ×（１−Ｆｌｏａｄ）      …（１３）
ただし、Ｔｐ０；絞り弁部相当の基本噴射パルス幅
ＫＣＯＮＳＴ＃；ベース空燃比を与える定数
Ｋｔｒｍ；トリミング係数
Ｆｌｏａｄ；吸気管空気遅れ係数
により計算する（図５のステップ２５）。
【００７９】
（１３）式は過渡時（運転条件の変化に関するもので、空燃比の切換とは関係ない）の吸気管の空気の応答遅れを考慮するものである。
【００８０】
〈３−３〉燃料噴射パルス幅Ｔｉ
図３は吸気ポート１２ｂに設けたインジェクタ３への燃料噴射パルス幅Ｔｉを算出するためのフローチャートで、これを、
Ｔｉ＝Ｔｐ×Ｔｆｂｙａ×（α＋αｍ）×Ｋｔｒ＋Ｔｓ      …（１４）
ただし、α：空燃比のフィードバック補正係数
αｍ；空燃比学習制御係数
Ｋｔｒ；過渡補正係数
Ｔｓ：バッテリ電圧に応じた無効パルス幅
によって計算し（図３のステップ２）、これを図４で示したように噴射タイミングで出力する（図４のステップ１１）。
【００８１】
（１４）式の過渡補正係数Ｋｔｒは、燃料の吸気管での輸送遅れを補正するもので、従来例の過渡補正係数ＫACCと同様の値である。たとえば、初期値は絞り弁開度変化量の絶対値｜ΔＴＶＯ｜が所定値を越えた時点（つまり加速や減速を判定した時点）の｜ΔＴＶＯ｜に応じて定まり、時間とともに減少する値である。
【００８２】
以上で概説を終える。
さて、上記のように、目標流路面積Ｔａｔｃｖについて、Ｔａｔｃｖ＜０のときはＴａｔｃｖ＝０、Ｔａｔｃｖ＞ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃のときは、Ｔａｔｃｖ＝ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃として負の値やオーバーフロー分を切り捨てるのであるが（図１７のステップ９４，９５、ステップ９６，９７）、この切り捨て分をメモリに保持するため、Ｔａｔｃｖ＜０のときはＴａｔｃｖの値（負の値）を変数Ａｏｋｕｒｉに入れ（図１７のステップ９４，９５）、Ｔａｔｃｖ＞ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃のときも、Ｔａｔｃｖ−（ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃）のオーバーフロー分を変数Ａｏｋｕｒｉに入れる（図１７のステップ９６，９７）。
【００８３】
なお、Ｔａｔｃｖが負の値やオーバーフローしてないとき（切り捨て分がないとき）は、Ａｏｋｕｒｉ＝０である（図１７のステップ９４，９６，９８）。
【００８４】
こうして記憶した切り捨て分を次回（１０ｍｓ後）のＴａｔｃｖの算出時に反映させるため、上記の（６−１）式の右辺にＡｏｋｕｒｉを加算した式、
Ｔａｔｃｖ＝Ｔａｔｃｖ０n-DLYIS＋Ａｉｓｃ０＋Ａｏｋｕｒｉ…（６）
により、目標流路面積Ｔａｔｃｖを求める（図１７のステップ９３）。
【００８５】
（６）式の加算結果が前回に続けて今回もまたＴａｔｃｖ＜０となれば、今回のＴａｔｃｖとしては再び負の値を切り捨て、切り捨て分をＡｏｋｕｒｉに入れる（図１７のステップ９４，９５）。つまり、今回の切り捨て分は、Ｔａｔｃｖ≧０となるまで次回以降に先送りするわけで、変数Ａｏｋｕｒｉは先送り分である。（６）式の加算結果が今回もまたＴａｔｃｖ＝ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃となったときも同様である。
【００８６】
ここで、この例の作用を図３０を参照しながら説明すると、同図の左半分は理論空燃比からリーン側の空燃比へと切換えたときの、また右半分はこの逆に空燃比を切換えたときの各波形である。
【００８７】
リーン側の空燃比への切換時でみると、（６）式により算出された目標流路面積Ｔａｔｃｖが速い速度で上昇し、これが破線のように最大値（ＴＣＶＭＡＸ＃＋ＭＸＯＳ＃）を越えてオーバーフローした後、ＴＣＶＭＡＸ＃（制御弁２２の最大流量時の流路面積）にまで低下し、このＴＣＶＭＡＸ＃の値に落ち着いている。
【００８８】
この場合に、Ｔａｔｃｖのオーバーフロー分を切り捨ててしまうと、その分の面積に相当する空気量が足りないことになって、シリンダ空気流量が要求から不足し、これによって空燃比の切換直後にトルク減少が生じる（破線参照）。
【００８９】
これに対して、この例でオーバーフロー分がメモリに記憶され、これが次回以降のＴａｔｃｖの算出時に加算されると、オーバーフロー分の面積が、ハッチングで示した部分に移される。つまり、目標空燃比を得るためには、オーバーフロー分の面積に相当する空気量も供給しないといけないのであるから、この分の空気量を時間的に後にずらしても供給することによって、要求の全量を供給しきるのである。
【００９０】
これにより、シリンダ空気流量を要求に近づけることができることになり、切換の前後でトルク変動を招くことがない（実線参照）。
【００９１】
また、最大値をＴＣＶＭＡＸ＃としたときは、ＴａｔｃｖがＴＣＶＭＡＸ＃に張り付き、オーバーフロー分がたまったままで使われず、その後にＴａｔｃｖがＴＣＶＭＡＸ＃よりも低下したときに一気に吐き出される（つまり、オーバーフローの生じた運転条件とかけ離れた運転条件で吐き出される）ことになり、従来例と同じにリーン空燃比への切換時にシリンダ空気流量が不足するばかりか、吐き出された運転条件での空燃比の精度をも落としてしまう。
【００９２】
これに対して、ＭＸＯＳ＃のオフセット分をＴＣＶＭＡＸ＃に加算した値を最大値とすることで、Ａｏｋｕｒｉにためておいた分が、Ｔａｔｃｖのオーバーフローの終了直後に吐き出されることになり、上記のような問題を起こさないのである。つまり、ＭＸＯＳ＃はＴａｔｃｖのオーバーフロー分が、オーバーフローの生じた運転条件とかけ離れた運転条件で投入されないようにするための余裕分であるわけである。
【００９３】
一方、理論空燃比への切換時にＴａｔｃｖが負の値になったときも、負の値が記憶され、これが次回移行のＴａｔｃｖの算出時に加算される（実質的には負の値により減算される）ことで、理論空燃比への切換時に切換前後でトルクをフラットに保つことができている。
【００９４】
図３１〜図３７は他の実施例で、これはエアフローメータからの空気量信号に適用したものである。
【００９５】
この例でも、後述するエアフローメータ部流量Ｑｓの計算結果が、最小値の０を下回って負の値になったり最大値を上回ってオーバーフローした場合の制御を述べる前に、〈４〉エアフローメータ出力の信号処理と、〈５〉噴射量制御を概説する。信号処理の概説部分は特開平３−２２２８４９号公報に公知である。
【００９６】
〈４−１〉前処理
エアフローメータ出力（電圧値である）Ｑａを、図３５を内容とするテーブルを用いてリニアライズしている（図３３のステップ１２２）。このリニアライズされた流量がエアフローメータ指示流量Ｑｓｈｗである。
【００９７】
〈４−２〉エアフローメータ部流量Ｑｓ
熱線式エアフローメータのセンサ部３０が、図３１のようにボビン形状のセラミック３２に線状の発熱体３１がコイルのように巻き付けられているときは、熱線３１に空気流れに触れる側と触れない側とが生じる（熱の逃げがその両側面で異なる）ことから、過渡時に２種類の遅れ（高周波分の遅れと低周波分の遅れ）が生じる。
【００９８】
これを図解したのが図３２で、同図のように加速時には真の流量Ｑに対するエアフローメータ指示流量Ｑｓｈｗの遅れ分が、高周波分と低周波分の２つの遅れからなるわけである。
【００９９】
図３２で高周波分補正流量（Ｑｓｈｗに対して高周波分遅れをまず加えた流量のこと）をＱｓｓ、残りの低周波分補正量をＡｆｌｅとおくと、エアフローメータ部流量Ｑｓは、
Ｑｓ＝Ｑｓｓ＋Ａｆｌｅ×ＡＦＬＥＡ＃                    …（３１）
：Ａｆｌｅが正のとき（加速時）
Ｑｓ＝Ｑｓｓ＋Ａｆｌｅ                                  …（３２）
：Ａｆｌｅが負のとき（減速時）
ただし、ＡＦＬＥＡ＃；加速時補正率
により計算することができる（図３３のステップ１３０）。
【０１００】
加速時補正率ＡＦＬＥＡ＃はエアフローメータの出力応答が加速時と減速時とで異なる分を補正するための値で、たとえば１．３０といった値である。
【０１０１】
高周波分補正流量Ｑｓｓは、エアフローメータ指示流量Ｑｓｈｗに１次の進み補償を加えた式、
Ｑｓｓ＝Ｑｓｈｗn-1＋（Ｑｓｈｗ−Ｑｓｈｗn-1）×ＡＦＭＴＣ＃  …（３３）
ただし、Ｑｓｈｗn-1；前回のＱｓｈｗ
ＡＦＭＴＣ＃；時定数係数（高周波分）
でよく（第３３図のステップ１２３）、また低周波分補正量Ａｆｌｅは、高周波分補正流量Ｑｓｓの所定の時間（４ｍｓｅｃ）当たりの変化量を積算（積分）しつつその積算値（積分値）を所定の速度で減衰する値で、つまり
Ａｆｌｅ＝（Ａｆｌｅn-1＋（Ｑｓｓ−Ｑｓｓn-1）×Ｂ／Ａ）×ＡＦＬＥＴＣ＃…（３４）
ただし、Ａｆｌｅn-1；前回のＡｆｌｅ
Ｑｓｓn-1；前回のＱｓｓ
Ｂ／Ａ；定数
ＡＦＬＥＴＣ＃；時定数係数（低周波分でたとえば０．９９）
により求めることができる。
【０１０２】
（３４）式はこれを変形して、
Ａｆｌｅ＝Ａｆｌｅn-1×ＡＦＬＥＴＣ＃
＋（Ｑｓｓ−Ｑｓｓn-1）×ＡＦＬＥＧ＃        …（３５）
ただし、ＡＦＬＥＧ＃；低周波分遅れゲイン（たとえば０．３）
とすれば、次の２段階の式
Ａｆｌｅ＝Ａｆｌｅn-1×ＡＦＬＥＴＣ＃                    …（３６）
Ａｆｌｅ＝Ａｆｌｅ＋（Ｑｓｓ−Ｑｓｓn-1）×ＡＦＬＥＧ＃  …（３７）
により求めることもできる（図３３のステップ１２８，１２９）。
【０１０３】
このようにして求めたエアフローメータ部流量Ｑｓによれば、ボビン状のセラミックに線状の熱線をコイルのように巻き付けたり、ボビン状のセラミック表面にフィルム状の発熱体を設けたようなセンサ部を有する熱線式のエアフローメータであっても、過渡時にも吸入空気流量が応答精度良く計測されるのである。
【０１０４】
〈５−１〉シリンダ吸気相当の基本噴射パルス幅Ｔｐ
これは、
Ｔｐ０＝（Ｑｓ／Ｎｅ）×ＫＣＯＮＳＴ＃                   …（３８）
Ｔｐｔｒｍ＝Ｔｐ０×Ｋｔｒｍ                             …（３９）
Ａｖｔｐｒ＝Ｔｐｔｒｍ×Ｆｌｏａｄ＋Ａｖｔｐｒn-1×（１−Ｆｌｏａｄ）…（４０）
ただし、Ａｖｔｐｒn-1；前回のＡｖｔｐｒ
で求めたＡｖｔｐｒをシリンダ空気量相当の基本噴射パルス幅のリアル値とし（図３４のステップ１４０，１４１，１４２，１４３）、これからシリンダ吸気相当の基本噴射パルス幅Ｔｐを
Ｔｐ＝Ａｖｔｐｒ＋Ｔｐｓｋ                               …（４１）
ただし、Ｔｐｓｋ；先取り補正量
により求めている（図３４のステップ１４５）。
【０１０５】
（３８），（３９），（４０），（４１）式の４つの式は先の実施例の（１２），（１３）式に相当するもので、先の実施例と異なるのは、先取り補正量Ｔｐｓｋを導入している点だけである。したがって、これらの式中のＮｅ、ＫＣＯＮＳＴ＃、Ｋｔｒｍ、Ｆｌｏａｄの内容は、先の実施例と同じである。
【０１０６】
（４１）式の先取り補正量Ｔｐｓｋは、Ａｖｔｐｒの変化量から
Ｔｐｓｋ＝（Ａｖｔｐｒ−Ａｖｔｐｒn-1）×ＧＡＤＶＴＰ＃  …（４２）
ただし、ＧＡＤＶＴＰ＃；先取り補正ゲイン
により求める（図３４のステップ１４４）。
【０１０７】
Ｔｐｓｋは、デッドタイム（噴射弁の応答遅れおよびエアフローメータと吸気絞り弁の間のソニック遅れのこと）を補正するものである。このデッドタイムにより加速時には空燃比がリーン側にずれるため、図３６に示したように噴射量をＴｐｓｋの分だけ多くすることによって、デッドタイムがあっても空燃比が加速初期にリーン側にかたよらないようにするのである。
【０１０８】
〈５−２〉燃料噴射パルス幅Ｔｉ
図３１のセンサ部３０をもつ熱線式エアフローメータを、先の実施例のリーンバーンエンジンに用いるときは、先の実施例と同じに燃料噴射パルス幅Ｔｉを（１４）式で与えてやればよい。
【０１０９】
リーンバーンエンジンでなく、三元触媒方式の通常のエンジンに用いるときも（１４）式で燃料噴射パルス幅Ｔｉを与えればよい。ただし、目標燃空比Ｔｆｂｙａは（８）式において、Ｋｍｒ＝１とおいた値である。
【０１１０】
以上で概説を終える。
さて、上記の（３１）または（３２）式で得たエアフローメータ部流量Ｑｓが計算範囲上の最小値である０を下回った（アンダーフロー）ときはＱｓ＝０、計算範囲上の最大値（たとえばデータサイズを２バイトとしてＦＦＦＦH、以下では「＃ＦＦＦＦH」で表現する。）を上回る（オーバーフロー）と、Ｑｓ＝＃ＦＦＦＦHとして制限するのであるが（図３３のステップ１３１，１３２、ステップ１３３，１３４）、この例でもアンダーフロー分とオーバーフロー分をそれぞれ記憶しておき、アンダーフローとオーバーフローがなくなったタイミングでこれをＱｓに加算する。
【０１１１】
〈６−１〉Ｑｓ＜０またはＱｓ＞＃ＦＦＦＦHのとき
先送り分Ｏｋｕｒｉを、Ｑｓ＜０で
Ｏｋｕｒｉ＝Ｏｋｕｒｉn-1＋Ｑｓ                          …（４４）
ただし、Ｏｋｕｒｉn-1；前回のＯｋｕｒｉ
により（図３３のステップ１３１，１３２）、またＱｓ＞＃ＦＦＦＦHで
Ｏｋｕｒｉ＝Ｏｋｕｒｉn-1＋（Ｑｓ−＃ＦＦＦＦH）         …（４５）
により（図３３のステップ１３３，１３４）、それぞれ更新する。
【０１１２】
ここで、（４４）式のＱｓがアンダーフロー分、（４５）式の（Ｑｓ−＃ＦＦＦＦH）がオーバーフロー分である。
【０１１３】
〈６−２〉Ｑｓ＜０でもＱｓ＞＃ＦＦＦＦHでもないとき
Ｑｓ＝Ｑｓ＋Ｏｋｕｒｉ                                   …（４６）
によりＱｓを更新する（図３３のステップ１３１，１３３，図３４のステップ１３５）。
【０１１４】
ただし、（４６）式の更新結果が、Ｑｓ＜０となったりＱｓ＞＃ＦＦＦＦHとなることがあるので、（４６）式の更新結果がＱｓ＜０のときはＱｓを先送り分Ｏｋｕｒｉに入れ（図３４のステップ１３６，１３７）、またＱｓ＞＃ＦＦＦＦHでオーバーフロー分（Ｑｓｓ−＃ＦＦＦＦH）をＯｋｕｒｉに入れる（図３４のステップ１３８，１３９）。
【０１１５】
〈６−３〉高周波分補正流量Ｑｓｓ
Ｑｓｓについても、（３３）式の計算結果がＱｓｓ＜０やＱｓｓ＞＃ＦＦＦＦHであるときはそれぞれＱｓｓ＝０、Ｑｓｓ＝＃ＦＦＦＦHとするため（図３３のステップ１２４，１２５、ステップ１２６，１２７）、アンダーフロー分とオーバーフロー分を計算する。ただし、ＱｓｓはＱｓの途中で計算される値であることから、Ｑｓｓについてのアンダーフロー分とオーバーフロー分は最終流量のＱｓに反映させるため、Ｑｓｓ＜０で
Ｏｋｕｒｉ＝Ｏｋｕｒｉn-1＋Ｑｓｓ                        …（４７）
により（図３３のステップ１２４，１２５）、Ｑｓｓ＞＃ＦＦＦＦHで
Ｏｋｕｒｉ＝Ｏｋｕｒｉn-1＋（Ｑｓｓ−＃ＦＦＦＦH）       …（４８）
によりＯｋｕｒｉを更新する（図３３のステップ１２６，１２７）。
【０１１６】
図３７は、絞り弁全開時の吸気脈動が非常に大きいエンジン（たとえば６気筒未満のエンジン）について絞り弁を全開にしての急加速を行ったときの波形で、（３１）式の計算結果（この値は図３７の真の流量にほぼ等しい）が負となったり、計算上の最大値＃ＦＦＦＦHを越えてオーバーフローしている。
【０１１７】
この例の信号処理では先の実施例と相違して、負の値やオーバーフロー分を切り捨てた後の信号を（４０）式で積分しているため、積分後の出力であるシリンダ吸気相当の基本噴射パルス幅のリアル値Ａｖｔｐｒが、図３７の破線のように負の値の切り捨てによりＡｖｔｐｒが要求より上昇して空燃比がリッチとなり、またオーバーフロー分の切り捨てによりリーン側にかたよるエラーが発生している。負の値を切り捨てた分だけ不要にＡｖｔｐｒが大きくなり、またオーバーフロー分を切り捨てることでＡｖｔｐに遅れが生じるわけである。
【０１１８】
これに対して、切り捨て処理後に積分処理のある制御システムにあっても、この例で負の値やオーバーフロー分として切り捨てられた量が次回の計算時に（つまり負の値でなくったタイミングやオーバーフローしなくなったタイミングで）用いられると、Ａｖｔｐｒの計算精度を落とすことがなく、これにより空燃比をフラットに保つことができる。
【０１１９】
図３８は第３の実施例で、これは図３２において高周波分の遅れが非常に小さく、これを無視できる場合に適用したものである。
【０１２０】
実施例では、入力を受けて算出した要求値と先送り量の加算結果（第１の実施例では目標流路面積Ｔａｔｃｖ、第２の実施例ではエアフローメータ部流量Ｑｓのこと）が算出上の最小値を下回ることもあり、最大値を上回ることもある場合で説明したが、加算結果が算出上の最小値を下回るだけの信号であったり、加算結果が算出上の最大値を上回るだけの信号であるときにも同様に適用することができる。
【０１２１】
また、実施例で説明した信号の場合であっても、算出上の最小値を下回るだけの加算結果としたり、算出上の最大値を上回るだけの加算結果としたりすることもできる。たとえば、図３７において算出上の最小値である０点だけ（つまり算出上の最大値はそのまま）を下方にオフセットすれば、吸入空気流量の算出結果が負となることはなくなるのである。
【０１２２】
【発明の効果】
第１の発明では、入力を受けて算出した要求値と先送り量の加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限し、この制限された加算結果を、また制限されなかったときはその制限されなかった加算結果を出力とする一方で、前記制限により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとするように構成したため、上記の出力を積分処理する制御システムにあっても、積分後の信号の精度を落とすことがない。
【０１２３】
第２の発明は、セラミックの周囲に発熱体を設けたセンサ部を有する熱線式エアフローメータからの指示流量に対して高周波分と低周波分の遅れをともに補正して求めたエアフローメータ部流量について、このエアフローメータ部流量と先送り量の加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限し、この制限された加算結果を、また制限されなかったときはその制限されなかった加算結果を出力とする一方で、前記制限により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとするように構成したため、上記の応答遅れの補正後に積分処理を行ってシリンダ空気量相当の信号を求めるものにあって、エンジンの全開で吸気脈動が非常に大きい場合でも、シリンダ空気量相当の信号の精度を高めることができる。
【０１２４】
第３の発明では、吸気絞り弁をバイパスする補助空気流量を調整する制御弁を設けるとともに、目標空燃比の切換時に切換の前後でトルクを同一にするための目標流路面積を算出し、この目標流路面積と先送り量の加算結果が算出上の最小値を下回ったとき加算結果をこの最小値に、また加算結果が算出上の最大値を上回ったとき加算結果をこの最大値に制限し、この制限された加算結果に応じて、また制限されなかったときはその制限されなかった加算結果に応じて前記制御弁を駆動する一方で、前記制限により切り捨てられる量を求め、その値を前記先送り量として保持し、また切り捨てられる量がないとき保持値をゼロとするように構成したため、加算結果を制限していた間の供給不足や供給過多の空気量が、時間的に遅れて相殺され、これによって空燃比切換時のトルクの段差を防止することができる。
【図面の簡単な説明】
【図１】第１の発明のクレーム対応図である。
【図２】一実施例のシステム図である。
【図３】燃料噴射パルス幅Ｔｉの算出を説明するための流れ図である。
【図４】燃料噴射パルス幅Ｔｉの出力を説明するための流れ図である。
【図５】シリンダ吸気相当の基本噴射パルス幅Ｔｐの算出を説明するための流れ図である。
【図６】目標燃空比Ｔｆｂｙａの算出を説明するための流れ図である。
【図７】リーンマップの内容を説明するための特性図である。
【図８】非リーンマップの内容を説明するための特性図である。
【図９】目標燃空比のランプ応答値Ｄｍｌの算出を説明するための流れ図である。
【図１０】目標燃空比のランプ応答値Ｄｍｌの波形図である。
【図１１】変化速度Ｄｄｍｌｒ、Ｄｄｍｌｌの計算を説明するための流れ図である。
【図１２】目標燃空比のダンパ値Ｋｍｒの算出を説明するための流れ図である。
【図１３】２つの実施例の遅れ時定数相当値Ｆｂｙａｔｃのテーブル内容を重ねて示す特性図である。
【図１４】制御弁２２のデッドタイムを説明するための波形図である。
【図１５】制御弁２２へのオンデューティの算出を説明するための流れ図である。
【図１６】前記２つの実施例とは別の２つの実施例に共用のトルク制御デューティＴｃｖｄｔｙの算出を説明するための流れ図である。
【図１７】前記２つの実施例とは別の２つの実施例に共用のトルク制御デューティＴｃｖｄｔｙの算出を説明するための流れ図である。
【図１８】絞り弁流路面積Ａｔｖｏのテーブル内容を示す特性図である。
【図１９】制御弁流路面積Ａｉｓｃ０のテーブル内容を示す特性図である。
【図２０】差圧補正率Ｋｇｈ０のテーブル内容を示す特性図である。
【図２１】前記２つの実施例とは別の２つの実施例の遅れ進み補償時定数相当値Ｔｃｖｔｃのテーブル内容を重ねて示す特性図である。
【図２２】基本デューティＤｔｙｔｃのテーブル内容を示す特性図である。
【図２３】デューティ補正率Ｔｃｖｇｉｎのテーブル内容を示す特性図である。
【図２４】制御弁立上がりデューティＴｃｖｏｆｓのテーブル内容を示す特性図である。
【図２５】制御弁２２の流量特性図である。
【図２６】上限値Ｆｑｍａｘの算出を説明するための流れ図である。
【図２７】絞り弁流路面積Ｆａｔｖｏのテーブル内容を示す特性図である。
【図２８】制御弁流路面積の予測値Ａｉｓｃのテーブル内容を示す特性図である。
【図２９】ゲインＱｍｘｇのテーブル内容を示す特性図である。
【図３０】前記実施例の作用を説明するための波形図である。
【図３１】第２の実施例の熱線式エアフローメータのセンサ部の拡大断面図である。
【図３２】２種類の１次遅れの組み合わせを示す波形図である。
【図３３】第２実施例のシリンダ吸気相当の基本噴射パルス幅Ｔｐの算出を説明するための流れ図である。
【図３４】第２実施例のシリンダ吸気相当の基本噴射パルス幅Ｔｐの算出を説明するための流れ図である。
【図３５】エアフローメータ指示流量Ｑｓｈｗのテーブル内容を示す特性図である。
【図３６】先送り補正量Ｔｐｓｋを説明するための波形図である。
【図３７】第２実施例の急加速時の作用を説明するための波形図である。
【図３８】第３の実施例のシリンダ吸気相当の基本噴射パルス幅Ｔｐの算出を説明するための流れ図である。
【図３９】第２の発明のクレーム対応図である。
【図４０】第３の発明のクレーム対応図である。
【符号の説明】
２  コントロールユニット
３  インジェクタ（燃料供給装置）
４  エアフローメータ
５  吸気絞り弁
６  スロットルセンサ
７  クランク角度センサ（回転数センサ）
１２ａ  コレクタ部
１２ｂ  吸気ポート
２１  補助空気通路
２２  流量制御弁
３１  熱線（発熱体）
３２  セラミック
４１  要求値算出手段
４２  加算手段
４３  最大最小算出手段
４４  出力手段
４５  切り捨て量保持手段
５１  リーン条件判定手段
５２  目標空燃比算出手段
５３  基本噴射量算出手段
５４  燃料供給装置
５５  吸気絞り弁
５６  流量制御弁
５７  絞り弁流路面積算出手段
５８  制御弁流路面積算出手段
５９  基本流路面積算出手段
６０  目標流路面積算出手段
６１  加算手段
６２  最大最小制限手段
６３  駆動手段
６４  切り捨て量保持手段
７１  熱線式エアフローメータ
７２  変化量算出手段
７３  高周波分補正流量算出手段
７４  変化量算出手段
７５  積分減衰手段
７６  エアフローメータ部流量算出手段
７７  加算手段
７８  最大最小算出手段
７９  出力手段
８０  切り捨て量保持手段
【図１】
0003543337.tif 000002
【図２】
0003543337.tif 000003
【図３】
0003543337.tif 000004
【図４】
0003543337.tif 000005
【図５】
0003543337.tif 000006
【図６】
0003543337.tif 000007
【図７】
0003543337.tif 000008
【図８】
0003543337.tif 000009
【図９】
0003543337.tif 000010
【図１０】
0003543337.tif 000011
【図１１】
0003543337.tif 000012
【図１２】
0003543337.tif 000013
【図１３】
0003543337.tif 000014
【図１４】
0003543337.tif 000015
【図１５】
0003543337.tif 000016
【図１６】
0003543337.tif 000017
【図１７】
0003543337.tif 000018
【図１８】
0003543337.tif 000019
【図１９】
0003543337.tif 000020
【図２０】
0003543337.tif 000021
【図２１】
0003543337.tif 000022
【図２２】
0003543337.tif 000023
【図２３】
0003543337.tif 000024
【図２４】
0003543337.tif 000025
【図２５】
0003543337.tif 000026
【図２６】
0003543337.tif 000027
【図２７】
0003543337.tif 000028
【図２８】
0003543337.tif 000029
【図２９】
0003543337.tif 000030
【図３０】
0003543337.tif 000031
【図３１】
0003543337.tif 000032
【図３２】
0003543337.tif 000033
【図３３】
0003543337.tif 000034
【図３４】
0003543337.tif 000035
【図３５】
0003543337.tif 000036
【図３６】
0003543337.tif 000037
【図３７】
0003543337.tif 000038
【図３８】
0003543337.tif 000039
【図３９】
0003543337.tif 000040
【図４０】
0003543337.tif 000041