(57)【要約】【課題】不所望の周波数成分の励起を抑制してプラントをロバストに制御する。【解決手段】プラントの制御装置は、離散時間系にてモデル化されたプラントを制御する制御器を備える。制御器は、フィルタリング機能を備えた周波数整形応答指定型制御アルゴリズムを用いて、プラントの出力の目標値に対する偏差が収束するよう制御する。プラントが内燃機関の場合、入力を点火時期補正量、出力を回転数として内燃機関をモデル化することができる。制御器は、周波数整形応答指定型制御アルゴリズムを実行して、点火時期補正量を算出する。周波数整形応答指定型制御は、フィルタリング機能を備えたスライディングモード制御であることができる。一実施形態では、制御入力は、フィルタの内部変数を安定化するための補正項、プラントの出力の目標値に対する偏差を安定化するための補正項、および切換関数に応じて変化する補正項を含むことができる。【選択図】図１０
2004076716.tif 000002
【特許請求の範囲】
【請求項１】
離散時間系にてモデル化されたプラントを制御する制御器を備え、該制御器は、フィルタリング機能を備えた周波数整形応答指定型制御アルゴリズムを実行して、前記プラントの出力の目標値に対する偏差が収束するように制御する、プラント制御装置。
【請求項２】
前記制御器は、前記偏差に対して前記フィルタリング機能を実行するフィルタを備え、
前記制御器は、前記フィルタリングされた偏差を用いて、前記周波数整形応答指定型制御アルゴリズムを実行する、請求項１に記載のプラント制御装置。
【請求項３】
前記制御器は、前記フィルタリングされた偏差を用いて切換関数を決定し、該切換関数を用いて前記周波数整形応答指定型制御アルゴリズムを実行する、請求項２に記載のプラント制御装置。
【請求項４】
前記周波数整形応答指定型制御アルゴリズムは、フィルタリング機能を備えた周波数整形スライディングモード制御アルゴリズムである、請求項３または請求項４に記載のプラント制御装置。
【請求項５】
前記制御器は、前記プラントへの制御入力を構成する等価制御入力項を、前記フィルタの内部変数を用いて計算する、請求項３に記載のプラント制御装置。
【請求項６】
前記制御器は、前記プラントへの制御入力を構成する到達則入力項を、前記切換関数の値に応じて計算する、請求項３から請求項５のいずれかに記載のプラント制御装置。
【請求項７】
前記制御器は、前記プラントへの制御入力を構成する適応則入力項を、前記切換関数の積算値に応じて計算する、請求項３から請求項６のいずれかに記載のプラント制御装置。
【請求項８】
前記プラントへの制御入力は、前記フィルタの内部変数を安定化するための補正項を含む、請求項３または請求項４に記載のプラント制御装置。
【請求項９】
前記プラントへの制御入力は、前記プラントの出力の目標値に対する前記偏差を安定化するための補正項を含む、請求項３、４または８のいずれかに記載のプラント制御装置。
【請求項１０】
前記プラントへの制御入力は、前記切換関数に応じて変化する補正項を含む、請求項３、４、８または９に記載のプラント制御装置。
【請求項１１】
前記プラントへの制御入力は、前記切換関数の積算値に応じて変化する補正項を含む、請求項３、４、８、９または１０のいずれかに記載のプラント制御装置。
【請求項１２】
前記補正項のそれぞれは、最適レギュレータ制御によって決定される、請求項８から請求項１１のいずれかに記載のプラント制御装置。
【請求項１３】
前記フィルタの内部変数、前記プラントの出力の目標値に対する偏差、および前記切換関数を線形独立な状態変数として含む状態方程式が規定され、前記プラントへの制御入力は、該状態方程式に基づいて算出された、該状態変数のそれぞれが収束するための補正項を含む、請求項３に記載のプラント制御装置。
【請求項１４】
前記状態方程式は、さらに、前記切換関数の積算値を線形独立な状態変数として含む、請求項１３に記載のプラント制御装置。
【請求項１５】
前記補正項のそれぞれは、最適レギュレータ制御によって決定される、請求項１３または請求項１４に記載のプラント制御装置。
【請求項１６】
前記プラントは内燃機関であり、
前記プラントの出力は、前記内燃機関の出力回転数であり、
前記プラントの出力の目標値に対する偏差は、前記内燃機関の出力回転数の目標回転数に対する偏差である、請求項１から請求項１５のいずれかに記載のプラント制御装置。
【請求項１７】
前記プラントは、入力を前記内燃機関の点火時期補正量、出力を該内燃機関の回転数としてモデル化され、
前記制御器は、前記周波数整形応答指定型制御アルゴリズムを実行して、前記点火時期補正量を算出する、請求項１６に記載のプラント制御装置。
【請求項１８】
前記フィルタは、低域フィルタである請求項２から請求項１７のいずれかに記載のプラント制御装置。
【請求項１９】
前記フィルタのカットオフ周波数は、前記内燃機関と該内燃機関が搭載された車両の運転室内との間の振動音伝達系の共振点以下の周波数に設定される、請求項１６から請求項１８のいずれかに記載のプラント制御装置。
【請求項２０】
前記フィルタは、状態空間表現に基づいて構成される、請求項２から請求項１９のいずれかに記載のプラント制御装置。
【請求項２１】
前記フィルタは、コンピュータプログラムによって実現される、請求項２から請求項２０のいずれかに記載のプラント制御装置。
【請求項２２】
前記周波数整形応答指定型制御アルゴリズムは、コンピュータプログラムによって実現される、請求項１から請求項２１のいずれかに記載のプラント制御装置。
【請求項２３】
前記制御器は、前記周波数整形応答指定型制御アルゴリズムを、前記内燃機関がアイドリング運転状態にあるときに実行する、請求項１６から請求項２２のいずれかに記載のプラント制御装置。
【請求項２４】
前記制御器は、前記周波数整形応答指定型制御アルゴリズムを、前記内燃機関の始動直後に該内燃機関に吸入される空気量を増大して触媒の早期活性化を図る排気系の暖機制御において実行する、請求項１６から請求項２２のいずれかに記載のプラント制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、フィルタリング機能を備えた周波数整形応答指定型制御を実施するプラントの制御装置に関し、より具体的には、フィルタリング機能を備えた周波数整形応答指定型制御により、内燃機関の回転数をロバストに制御する制御装置に関する。
【０００２】
【従来の技術】
車両の内燃機関を冷間始動すると、該内燃機関の排気系に設けられた触媒が冷えた状態にあるために、排気ガスが、活性化されていない触媒を通って排出される。これを回避するため、内燃機関を始動する際に触媒を早期に暖めて活性化させる急速触媒暖機制御が提案されている。
【０００３】
急速触媒暖機制御の一例によると、内燃機関を始動させた際のアイドリング運転状態において、該内燃機関に吸入される空気量を増大してエンジン回転数を上昇させ、該内燃機関によって生成される排ガスの熱量を増やす。上昇したエンジン回転数を、点火時期を操作することによって目標回転数へとフィードバック制御する。点火時期を遅角側に操作するほど、内燃機関の回転数は低くなる。逆に、点火時期を進角側に操作するほど、内燃機関の回転数は上昇する。
【０００４】
上記の点火時期の操作は、従来の一方法によると、ＰＩ制御によって実現される。具体的には、内燃機関の実際の回転数（以下、実回転数と呼ぶ）と目標回転数の偏差を算出し、該偏差に基づいて比例ゲインおよび積分ゲインを算出する。比例ゲインおよび積分ゲインに基づいて点火時期の補正量が求められ、該補正量で補正された点火時期が、内燃機関に適用される。
【０００５】
また、本願出願人による特開２０００−１１０６５７では、上記の点火時期の操作をスライディングモード制御によって実現している。スライディングモード制御によれば、内燃機関の実回転数と目標回転数の偏差の減衰速度を、可変に設定可能なパラメータで指定することができる。
【０００６】
【発明が解決しようとする課題】
一般に、内燃機関を始動させた際のアイドリング運転状態における内燃機関の回転数制御（以下、アイドリング回転数制御と呼ぶ）は、いくつかの特性を満たすのが望ましい。第一に、内燃機関の実回転数が目標回転数に速やかに収束する速応性（収束性能）を満たすことが望ましい。速応性を満たせば、内燃機関を速やかに安定状態にしつつ、触媒を早期に活性化させることができる。第二に、制御精度が高いことが望ましい。制御精度が高ければ、点火時期を遅角側に操作したとき、内燃機関の回転数の低周波振動を防止することができる。第三に、高周波振動を抑制することが望ましい。高周波振動を抑制することができれば、運転室内に励起される騒音を抑制することができる。
【０００７】
上記のＰＩ制御によるアイドリング回転数制御では、点火時期が遅角側にあるか進角側にあるかによって回転数の変動が異なるので、ＰＩ制御のゲインを運転状態に適合するよう設定する必要がある。したがって、実回転数を目標回転数に収束させることが困難であり、制御精度を高く維持することが難しい。
【０００８】
上記のスライディングモード制御によるアイドリング回転数制御は、高周波振動を励起するおそれがある。図３５に、内燃機関と運転室内の間の振動音伝達系の共振点を示すグラフの一例を示す。このグラフは、内燃機関を始動させた際のアイドリング運転状態において、上記のスライディングモード制御を使用して内燃機関の回転数を制御した場合の、内燃機関と運転室内の間に励起される振動の周波数成分を、ある実験によって測定したものである。円５００で囲まれた比較的高い周波数成分は、内燃機関の回転数に直接起因するものではなく、内燃機関と運転室内の間の振動音伝達系において発生した共振に起因する。このような周波数成分は、運転室内のシートおよびディスプレイ等に振動を励起するおそれがあり、運転者に乗り心地の悪さを感じさせる原因となる。
【０００９】
したがって、内燃機関の始動時に触媒を急速に暖機制御する際に、速応性および制御精度を高く維持しつつ、運転室内に振動を励起させることのないアイドリング回転数制御が必要とされている。
【００１０】
さらに、スライディングモード制御においては、切換関数を求め、該切換関数をゼロにすることで、実回転数を目標回転数に収束させる。しかしながら、内燃機関の運転状態に依存して、切換関数をゼロに維持することができない場合がある。切換関数をゼロに維持することができないと、制御システム全体が不安定になるおそれがある。
【００１１】
したがって、切換関数をゼロに維持することができない場合でも、制御対象の出力を目標値に安定的に収束させることのできる制御が必要とされている。
【００１２】
【課題を解決するための手段】
この発明の一つの側面によると、プラントの制御装置は、離散時間系にてモデル化されたプラントを制御する制御器を備える。制御器は、フィルタリング機能を備えた周波数整形応答指定型制御アルゴリズムを実行して、プラントの出力の目標値に対する偏差が収束するように制御する。この発明によると、周波数整形によって不所望の周波数成分を励起することなく、ロバストにプラントの出力を安定させることができる。また、プラントが離散時間系にてモデル化されるので、周波数整形応答指定型制御を、ソフトウェアプログラムによって容易に実現することができる。
【００１３】
この発明の一実施形態によると、制御器は、プラントの目標値に対する偏差に対してフィルタリングを実行するフィルタを備える。制御器は、フィルタリングされた偏差を用いて、周波数整形応答指定型制御アルゴリズムを実行する。フィルタリングによって不所望の周波数成分が除去されるので、該不所望の周波数成分を励起することなく制御を行うことができる。
【００１４】
この発明の他の実施形態によると、制御器は、フィルタリングされた偏差を用いて切換関数を決定する。周波数整形応答指定型制御アルゴリズムは、該切換関数を用いて実行される。フィルタリングされた偏差を用いて切換関数を計算するので、望ましくない周波数成分による振動を励起することなく、制御のロバスト安定性を向上させることができる。
【００１５】
この発明の他の実施形態によると、周波数整形応答指定型制御アルゴリズムは、フィルタリング機能を備えたスライディングモード制御アルゴリズムである。スライディングモード制御により、外乱、モデル化誤差、および制御対象のむだ時間が存在している場合でも、高いレベルの追従特性を持つ制御を実現することができる。
【００１６】
この発明の他の実施形態によると、プラントへの制御入力を構成する等価制御入力項は、フィルタの内部変数を用いて計算される。等価制御入力項により、フィルタリングによる位相遅れが補償され、制御の安定性を向上させることができる。
【００１７】
この発明の他の実施形態によると、プラントへの制御入力を構成する到達則入力項は、切換関数の値に応じて計算される。到達則入力項により、制御量を切換関数上に載せて目標回転数に収束させることができる。
【００１８】
この発明の他の実施形態によると、プラントへの制御入力を構成する適応則入力項を、切換関数の積算値に応じて計算する。適応則入力項により、プラントの出力の目標値に対する定常偏差を収束させることができる。
【００１９】
この発明の他の側面によると、プラントへの制御入力は、フィルタの内部変数を安定化するための補正項を含む。この発明によると、切換関数をゼロに維持することができない場合でも、フィルタの内部変数を発散させることなくプラントを制御することができる。
【００２０】
この発明の他の実施形態によると、制御入力は、さらに、プラントの出力の目標値に対する偏差を安定化するための補正項を含む。したがって、切換関数をゼロに維持することができない場合でも、該偏差を安定的に収束させることができる。
【００２１】
この発明の他の実施形態によると、制御入力は、さらに、切換関数に応じて変化する補正項を含む。したがって、切換関数をゼロに維持することができない場合でも、切換関数をゼロに漸近させながら上記偏差を安定的に収束させることができる。
【００２２】
この発明の他の実施形態によると、制御入力は、さらに、切換関数の積算値に応じて変化する補正項を含む。したがって、切換関数をゼロに漸近させながら上記偏差を安定的に収束させることができる。
【００２３】
この発明の他の実施形態によると、上記補正項のそれぞれは、最適レギュレータ制御によって決定される。最適レギュレータにより、各補正項に対応する状態変数の収束度合いを調整して、制御システムの安定化を図ることができる。
【００２４】
この発明の他の側面によると、フィルタの内部変数、プラントの出力の目標値に対する偏差、および切換関数を線形独立な状態変数として含む状態方程式が規定される。制御入力は、該状態方程式に基づいて算出された、該状態変数のそれぞれが収束するための補正項を含む。状態方程式は、さらに、前記切換関数の積算値を線形独立な状態変数として含んでもよい。この発明によると、切換関数をゼロに維持することができない場合でも、制御システムを不安定にすることなく各状態変数を収束させることができる。
【００２５】
この発明の他の側面によると、プラントは内燃機関であり、プラントの出力は内燃機関の出力回転数である。また、プラントの出力の目標値に対する偏差は、内燃機関の出力回転数の目標回転数に対する偏差である。こうして、不所望の周波数成分を励起することなく、ロバストに内燃機関の実回転数を目標回転数に収束させることができる。
【００２６】
この発明の一実施形態によると、プラントは、入力を内燃機関の点火時期補正量、出力を内燃機関の回転数としてモデル化される。制御器は、周波数整形応答指定型制御アルゴリズムを実行して、点火時期補正量を算出する。点火時期補正量を入力としてプラントをモデル化するので、内燃機関の回転数制御の速応性を高めることができる。
【００２７】
この発明の他の実施形態によると、フィルタは低域フィルタである。こうして、不所望の高周波成分が励起されることなく制御を実行することができる。
【００２８】
この発明の他の実施形態によると、フィルタのカットオフ周波数は、内燃機関と該内燃機関が搭載される車両の運転室内との間の振動音伝達系の共振点以下の周波数に設定される。こうして、共振点を励起する周波数成分を回転数制御から排除することができる。
【００２９】
この発明の他の実施形態によると、フィルタは、状態空間表現に基づいて構成される。こうして、フィルタの内部変数を、制御入力演算に用いることができる。
【００３０】
この発明の他の実施形態によると、フィルタは、コンピュータプログラムによって実現される。プログラムでフィルタを実現することにより、制御入力演算のために、フィルタの内部変数を簡単に制御アルゴリズムに渡すことができる。また、周波数整形応答指定型制御も、コンピュータプログラムによって実現することができる。こうして、簡単かつ良好な精度で制御を実現することができる。
【００３１】
この発明の他の実施形態によると、周波数整形応答指定型制御アルゴリズムは、内燃機関がアイドリング運転状態にあるときに実行される。したがって、アイドリング運転状態における内燃機関の実回転数の目標回転数への追従特性を向上させることができる。さらに、アイドリング回転数制御の速応性、安定性およびロバスト性が向上する。
【００３２】
この発明の他の実施形態によると、周波数整形応答指定型制御アルゴリズムは、内燃機関の始動直後に該内燃機関に吸入される空気量を増大して触媒の早期活性化を図る排気系の暖機制御において実行される。したがって、回転数制御の速応性、安定性およびロバスト性を高く維持しながら、触媒の早期活性化を達成することができる。
【００３３】
【発明の実施の形態】
内燃機関および制御装置の構成
次に図面を参照してこの発明の実施の形態を説明する。図１は、この発明の実施形態による内燃機関（以下、「エンジン」という）およびその制御装置の全体的なシステム構成図である。
【００３４】
電子制御ユニット（以下、「ＥＣＵ」）という）５は、車両の各部から送られてくるデータを受け入れる入力回路５ａ、車両の各部の制御を行うための演算を実行するＣＰＵ５ｂ、読み取り専用メモリ（ＲＯＭ）およびランダムアクセスメモリ（ＲＡＭ）を有する記憶手段５ｃ、および車両の各部に制御信号を送る出力回路５ｄを備えている。記憶手段５ｃのＲＯＭには、車両の各部の制御を行うためのプログラムおよび各種のデータが格納されている。この発明に従う内燃機関の回転数制御を実現するためのプログラム、および該プログラムの実行の際に用いるデータおよびテーブルは、このＲＯＭに格納されている。読み取り専用メモリは、ＥＥＰＲＯＭのような書き換え可能なＲＯＭであってもよい。ＲＡＭには、ＣＰＵ５ａによる演算の作業領域が設けられ、車両の各部から送られてくるデータおよび車両の各部に送り出す制御信号が一時的に記憶される。
【００３５】
エンジン１は、たとえば４気筒を備えるエンジンであり、吸気管２が連結されている。吸気管２の上流側にはスロットル弁３が設けられている。スロットル弁３に連結されたスロットル弁開度センサ（θＴＨ）４は、スロットル弁３の開度に応じた電気信号を出力し、これをＥＣＵ５に供給する。
【００３６】
吸気管２には、スロットル弁３をバイパスする通路２１が設けられている。バイパス通路２１には、エンジン１に供給する空気量（以下、「吸入空気量」という）を制御するためのバイパス弁２２が設けられている。バイパス弁２２は、バイパス弁アクチュエータ２３によって駆動される。ＥＣＵ５は、バイパス弁の開度を示すバイパス開度信号を、バイパス弁アクチュエータ２３に供給することにより、バイパス弁２２の開弁量を制御する。
【００３７】
燃料噴射弁６は、エンジン１とスロットル弁３の間であって、吸気管２の吸気弁（図示せず）の少し上流側に各気筒毎に設けられている。燃料噴射弁６は、燃料ポンプ（図示せず）に接続され、該燃料ポンプを介して燃料タンク（図示せず）から燃料の供給を受ける。燃料噴射弁６は燃料噴射弁アクチュエータ２４によって駆動される。ＥＣＵ５は、燃料噴射弁の開弁時間を示す信号を燃料噴射弁アクチュエータ２４に供給することにより、燃料噴射弁６の開弁時間を制御する。
【００３８】
吸気管圧力（Ｐｂ）センサ８および吸気温（Ｔａ）センサ９は、吸気管２のスロットル弁３の下流側に設けられており、吸気管圧力Ｐｂおよび吸気温Ｔａをそれぞれ検出して電気信号に変換し、それをＥＣＵ５に送る。
【００３９】
エンジン水温（Ｔｗ）センサ１０は、エンジン１のシリンダブロックの、冷却水が充満した気筒周壁（図示せず）に取り付けられ、エンジン冷却水の温度Ｔｗを検出して電気信号に変換し、それをＥＣＵ５に送る。
【００４０】
回転数（Ｎｅ）センサ１３は、エンジン１のカム軸またはクランク軸（共に図示せず）周辺に取り付けられ、たとえばピストンのＴＤＣ位置に関連したクランク角度で出力されるＴＤＣ信号パルスの周期よりも短いクランク角度（たとえば、３０度）の周期で、ＣＲＫ信号パルスを出力する。ＣＲＫ信号パルスは、ＥＣＵ５によってカウントされ、エンジン回転数Ｎｅが検出される。
【００４１】
エンジン１の下流側には排気管１４が連結されている。エンジン１は、排気管１４の途中に設けられた排気ガス浄化装置である三元触媒１５を介して排気する。排気管１４の途中に設けられた排ガスセンサ１６は排気濃度センサであり、排気ガス中の酸素濃度を検出して電気信号に変換し、それをＥＣＵ５に送る。
【００４２】
エンジン１の燃焼室（図示せず）には点火プラグ２６が配置され、点火プラグ２６は、イグナイタ２５を介してＥＣＵ５に電気的に接続される。ＥＣＵ５は、イグナイタ２５に点火時期信号を供給することにより、点火プラグ２６に火花を飛ばし、燃焼室の混合気を点火する。
【００４３】
大気圧（Ｐａ）センサ１７はＥＣＵ５に接続されており、大気圧を検出して電気信号に変換し、それをＥＣＵ５に送る。
【００４４】
ＥＣＵ５に向けて送られた信号は入力回路５ａに渡される。入力回路５ａは、入力信号波形を整形して電圧レベルを所定レベルに修正し、アナログ信号値をデジタル信号値に変換する。ＣＰＵ５ｂは、変換されたデジタル信号を処理し、記憶手段５ｃに格納されているプログラムに従って演算を実行し、車両の各部のアクチュエータに送る制御信号を作り出す。出力回路５ｄは、これらの制御信号を、バイパス弁アクチュエータ２３、燃料噴射弁アクチュエータ２４、イグナイタ２５およびその他のアクチュエータに送る。
【００４５】
エンジン始動時の動作形態
図２を参照して、本発明の一実施形態に従う制御システムによる基本動作の概要を説明する。図２は、エンジン１を始動させたときの、バイパス弁の開度（以下、バイパス開度と呼ぶ）θＣＭＤ、点火時期、およびエンジン回転数の遷移の一例を示す。
【００４６】
曲線３１は、本発明の一実施形態に従う制御システムによって生成されるバイパス開度θＣＭＤの遷移を示す。バイパス開度θＣＭＤに従い、バイパス弁２２（図１）は駆動される。曲線３４は、本発明の一実施形態に従う制御システムによって生成される点火時期の補正量ＤＩＧの遷移を示す。曲線３２に示される基本値ｉｇｂａｓｅを補正量ＤＩＧで補正することによって、曲線３３で示される点火時期信号ｉｇｌｏｇが算出される。ここで、基本値ｉｇｂａｓｅは、エンジン１の通常運転時、すなわちＦＩＲＥモード以外の運転時における点火時期信号の値を示し、進角側の値を持つ。点火時期信号ｉｇｌｏｇに従い、点火プラグ２６（図１）は駆動される。
【００４７】
曲線３５は、バイパス開度θＣＭＤおよび点火時期ｉｇｌｏｇの変動に応じて出力されるエンジン１の実回転数Ｎｅの遷移を示す。曲線３６は、制御システムによって設定される目標回転数ｎｅ／ｆｉｒｅの遷移を示す。目標回転数ｎｅ／ｆｉｒｅは、設定回転数（最終目標回転数ＮＯＢＪよりも所定値ＮＥＦＳＬＤＳだけ高い回転数）から最終目標回転数ＮＯＢＪに向かって低下し、該最終目標回転数ＮＯＢＪに到達した後は、該最終目標回転数ＮＯＢＪに維持される。ここで、最終目標回転数ＮｏｂＪは、ＦＩＲＥモードにおいて最終的に維持すべき回転数として予め定められており、通常の（すなわちＦＩＲＥモード以外の動作モードの）アイドリング運転時の回転数よりも高い回転数に設定されている。
【００４８】
エンジン１をスタータモータ（図示せず）によりクランキングさせると、図１に示されるシステムは始動モードを開始する。図２の例における始動モードは、アクセルペダル（図示せず）が操作されていないアイドリング運転状態を示している。この状態においては、スロットル弁４の開度はゼロであり、よって燃焼室の吸気は、バイパス弁２２のみを介して行われる。始動モードにおいてエンジン１の完爆が確認されると、動作モードは、エンジン１のアイドリング運転を行いながら触媒１５の早期活性化を図るＦＩＲＥモードに移行する。
【００４９】
ＦＩＲＥモードにおいては、通常のアイドリング運転時よりも大きなバイパス開度θＣＭＤが生成される。排気系に排出される排ガスの熱量は概ね吸入空気量に比例する。したがって、ＦＩＲＥモード゛の制限時間ＴＦＩＲＥＬＭＴ内に触媒の温度を上昇させて触媒を活性化に至らせることができる空気量を吸入するように、バイパス開度θＣＭＤは生成される。
【００５０】
ＦＩＲＥモードにおける吸入空気量の増加に伴い、実回転数Ｎｅは、曲線３５に示されるように上昇する。実回転数Ｎｅが設定回転数に到達すると、エンジン回転数のフィードバック制御が開始される。この回転数制御は、実回転数Ｎｅを目標回転数ｎｅ／ｆｉｒｅに収束させるように、曲線３４に示されるような点火時期補正量ＤＩＧを算出する。算出された補正量ＤＩＧにより、点火時期の基本値ｉｇｂａｓｅが補正され、点火時期信号ｉｇｌｏｇを決定する。
【００５１】
曲線３５から明らかなように、吸入空気量の増加に伴い、回転数Ｎｅは目標回転数ｎｅ／ｆｉｒｅを超えて上昇する。よって、点火時期の補正量ＤＩＧは、曲線３４に示されるように、点火時期を基本値ｉｇｂａｓｅに対して遅角側に補正する値（≦０）を持つ。結果として、点火時期信号ｉｇｌｏｇは、曲線３３に示されるように、基本値ｉｇｂａｓｅが遅角側に補正された値を持つ。エンジン１の点火プラグ２６（図１）は、算出された点火時期信号ｉｇｌｏｇに従って点火動作を行う。こうして、曲線３５に示されるように、エンジン１の実回転数Ｎｅは目標回転数ｎｅ／ｆｉｒｅに収束されていく。
【００５２】
このように、エンジン１を始動した際のアイドリング運転時に実施されるＦＩＲＥモードは、吸入空気量を増量すると共に、点火時期を遅角側に操作することによってエンジン回転数Ｎｅを目標回転数ｎｅ／ｆｉｒｅ（最終的には最終目標回転数ＮＯＢＪ）に収束させる。したがって、エンジン１の燃焼室における混合気の燃焼によって生成される排ガスの熱量が、通常のアイドリング運転時よりも多くなる。この熱量が多くなった排ガスにより、触媒１５が早期に活性化され、排ガスの浄化性能を早期に確保することが可能となる。それと同時に、回転数制御により、吸入空気量の増量によって上昇する回転数を適正な値に維持することができる。
【００５３】
ここで、ＦＩＲＥモードに移行してからの経過時間を、“ｔ／ｆｉｒｅ”で表す。ＦＩＲＥモードは、所定の制限時間ＴＦＩＲＥＬＭＴに達するまで続く。ＦＩＲＥモードが終了した後、エンジン１の通常運転を行う通常モードに移行する。通常モードにおいては、バイパス開度θＣＭＤは、たとえばエンジン１の通常のアイドリング運転を行うための開度（すなわち、ＦＩＲＥモードにおける開度よりも小さい開度）に操作される。また、点火時期は、曲線３３に示されるように、基本値ｉｇｂａｓｅにより定まる通常の進角側の値に徐々に戻される。
【００５４】
ＦＩＲＥモードにおいて、アクセルペダルが操作される等によってアイドリング以外の運転を行う状況になった場合は、ＦＩＲＥモードの中断動作を実行し、ＦＩＲＥモードを抜ける。この中断動作にあたっては、触媒装置の昇温および活性化を確実にするために、バイパス開度を操作して吸入空気量を増量させることは継続される。しかしながら、エンジン１の動力性能を確保するため、点火時期は、基本値ｉｇｂａｓｅによって定まる通常の進角側の値に戻される。
【００５５】
以下、吸入空気量を増量させながら回転数制御を行う実施形態について説明する。しかしながら、吸入空気量の増量を行うことなく回転数制御を行う場合についても、本発明に従う回転数制御を適用することができる。
【００５６】
制御システムの全体構成
図３は、本発明の一実施形態に従う制御システムの機能ブロック図を示す。これらの機能ブロックは、典型的にはソフトウェアプログラムにより実現される。
【００５７】
始動モード判定部４１は、エンジン１の動作モードが、図２に示される始動モードにあるかどうかを判定する。この判定は、前述したように完爆を確認することによって行うことができる。完爆の確認は、検出されたエンジン回転数Ｎｅに基づいて行うことができる。始動モード判定部４１によって始動モードと判定されたならば、始動モード処理部４２が、始動モード処理を実行する。この処理は、エンジン１を始動するため、図１に示される各種センサの検出値から、予め記憶手段５ｃ（図１）に格納されたテーブルおよび演算式を参照することにより、点火時期、燃料供給量およびバイパス開度を決定する。決定された点火時期、燃料供給量およびバイパス開度に従って、点火プラグ２６、燃料噴射弁６およびバイパス弁２２が駆動される。
【００５８】
始動モード判定部４１によって始動モードでないと判定されたならば、燃料供給量算出部４３は、図１に示される各種センサの検出値から、予め記憶手段５ｃに格納されたテーブルおよび演算式を参照することにより、エンジン１への燃料供給量を算出する。動作モード判定部４４は、図２に示されるＦＩＲＥモードおよび通常モードのいずれを実行すべきかを判断する。
【００５９】
バイパス開度算出部４５は、図２に示されるように、触媒１５の早期活性化を実現するためのバイパス開度θＣＭＤを生成する。触媒１５に供給される排ガスの熱量は概ね吸入空気量に比例する。したがって、バイパス開度算出部４５は、吸入空気量をフィードバック制御することによりバイパス開度θＣＭＤを算出する。この制御を、以下「吸気量制御」と呼ぶ。吸気量制御を実行することにより、触媒１５の昇温形態のばらつきを解消することができる。この実施例においては、吸気量制御に、後述するスライディングモード制御を使用する。
【００６０】
点火時期算出部４６は、図２に示されるように、実回転数Ｎｅを目標回転数ｎｅ／ｆｉｒｅに収束させるための点火時期信号ｉｇｌｏｇを生成する。点火時期算出部４６は、エンジン回転数をフィードバック制御することにより点火時期ｉｇｌｏｇを算出する。この制御を、以下「回転数制御」と呼ぶ。この実施例においては、回転数制御に、後述する周波数整形スライディングモード制御を使用する。
【００６１】
吸気量制御の構成
図４は、本発明の一実施形態に従う、吸気量制御の制御ブロック図を示す。吸気量制御は、エンジン１を制御対象（プラントともいう）とする。エンジン１への実際の吸入空気量の積算値ｑａｉｒ／ｐｒｅ（以下、推定積算吸気量という）を推定手段５２によって推定し、目標設定手段５３によって算出された吸入空気量の積算値の目標（以下、目標積算吸気量という）ｑａｉｒ／ｃｍｄと比較する。上記の比較結果に基づいて、制御器５１は、バイパス開度の補正量ｉ／ｓｌｄを求める。補正量ｉ／ｓｌｄによって補正されたバイパス開度θＣＭＤに従って、エンジン１のバイパス弁２２が駆動される。その後、エンジン１への実際の積算吸気量ｑａｉｒ／ｐｒｅが再び推定手段５２によって推定される。このように、制御器５１は、推定積算吸気量ｑａｉｒ／ｐｒｅを目標積算吸気量ｑａｉｒ／ｃｍｄに収束させるようバイパス開度の補正量ｉ／ｓｌｄを求めるフィードバック制御を実行する。
【００６２】
以下に、推定手段５２、目標設定手段５３および制御器５１によって実行される具体的な計算について説明する。これらの計算は、典型的にはコンピュータプログラムによって実施される。
【００６３】
推定手段５２は、制御サイクルあたりのエンジン１への実際の吸入空気量ｇａｉｒ／ｐｒｅを、式（１）に従い推定する。ここで、Ｇａ１は、予め決められた値である。
【００６４】
【数１】
2004076716.tif 000003
【００６５】
式（１）で求められた推定吸気量ｇａｉｒ／ｐｒｅを、前回のサイクルで算出された推定積算吸気量ｑａｉｒ／ｐｒｅ（ｋ−１）に加算し、今回のサイクルにおける推定積算吸気量ｑａｉｒ／ｐｒｅ（ｋ）を求める。ここで、ｋは制御サイクルを識別する識別子である。（ｋ）は今回のサイクルを表し、（ｋ−１）は前回のサイクルを表す。
【００６６】
【数２】
2004076716.tif 000004
【００６７】
目標設定手段５３は、まず、触媒１５の早期活性化を達成するのに最適な吸入空気量を供給するという条件下で標準開度θ０を算出する。標準開度θ０は、エンジン水温Ｔｗから、予め定められたテーブルを参照して得た値を、ＦＩＲＥモード経過時間ｔ／ｆｉｒｅに基づく値で補正することにより求められる（詳細については後述される）。
【００６８】
１サイクル当たりの目標吸気量ｇａｉｒ／ｃｍｄを、標準開度θ０に対応する吸気量として、式（３）に従い求める。ここで、１／Ｎｅは、１サイクル（すなわち１ＴＤＣ）あたりの時間を表す。Ｇａ２は、標準大気圧、標準吸気温および標準吸気管圧力によって定まる定数を示す。
【００６９】
【数３】
2004076716.tif 000005
【００７０】
式（３）で求められた目標吸気量を、前回のサイクルで算出された目標積算吸気量ｑａｉｒ／ｃｍｄ（ｋ−１）に加算し、今回のサイクルにおける目標積算吸気量ｑａｉｒ／ｃｍｄ（ｋ）を求める。
【００７１】
【数４】
2004076716.tif 000006
【００７２】
次に、制御器５１によって実施される吸気量制御の概要を説明する。この実施例においては、吸気量制御を、所望の減衰速度を指定することができる応答指定型制御で実現する。より具体的には、吸気量制御は、応答指定型制御としてスライディングモード制御を用いて実施される。
【００７３】
制御対象であるエンジン１を、出力を積算吸気量ｑａｉｒ／ｐｒｅ、入力をバイパス開度Θとして、以下のようにモデル化することができる。エンジン１は、離散時間系モデルとしてモデル化される。このようにモデル化することにより、吸気量制御のアルゴリズムをコンピュータ処理に適した簡易なものとすることができる。
【００７４】
【数５】
2004076716.tif 000007
【００７５】
ａ１、ａ２およびｂ１は、大気圧Ｐａ、吸気温Ｔａ、回転数Ｎｅ等に応じたモデルパラメータである。式（５）に示されるように、次回のサイクルにおける推定積算吸気量ｑａｉｒ／ｐｒｅ　（ｋ＋１）は、今回のサイクルにおける推定積算吸気量ｑａｉｒ／ｐｒｅ（ｋ）と、前回のサイクルにおける推定積算吸気量ｑａｉｒ／ｐｒｅ（ｋ−１）と、今回のサイクルにおけるバイパス開度Θとを用いて表現されることができる。
【００７６】
スライディングモード制御を実行するため、切換関数σ１を式（６）のように設定する。ここで、Ｅｑは、推定積算吸気量と目標積算吸気量の偏差（以下、吸気量偏差という）を示す。ｐｏｌｅ／ｉは、切換関数σ１の設定パラメータであり、−１＜ｐｏｌｅ／ｉ＜１となるよう設定される。
【００７７】
【数６】
2004076716.tif 000008
【００７８】
切換関数σ１（ｋ）＝０とした式は等価入力系と呼ばれ、制御量である吸気量偏差Ｅｑの収束特性を規定する。σ１（ｋ）＝０とすると、式（６）は以下の式（７）のように変形することができる。
【００７９】
【数７】
2004076716.tif 000009
【００８０】
ここで、図５および式（７）を参照して、切換関数σ１の特性を説明する。図５は、縦軸がＥｑ（ｋ）および横軸がＥｑ（ｋ−１）の位相平面上に、式（７）を線６１で表現したものである。この線６１を切換線と呼ぶ。Ｅｑ（ｋ−１）およびＥｑ（ｋ）の組合せからなる状態量（Ｅｑ（ｋ−１），　Ｅｑ（ｋ））の初期値が、点６２で表されているとする。スライディングモード制御は、点６２で表される状態量を、切換線６１上に載せて該切換線６１上に拘束するよう動作する。スライディングモード制御によると、状態量を切換線６１上に保持することにより、該状態量を、外乱等に影響されることなく、極めて安定的に位相平面上の原点０に収束させることができる。言い換えると、状態量（Ｅｑ（ｋ−１），Ｅｑ（ｋ））を、式（７）に示される入力の無い安定系に拘束することにより、外乱およびモデル化誤差に対してロバストに推定積算吸気量ｑａｉｒ／ｐｒｅを目標積算吸気量ｑａｉｒ／ｃｍｄに収束させることができる。
【００８１】
この実施形態では、切換関数σ１に関する位相空間が２次元であるので、切換線は直線６１で表される。位相空間が３次元である場合には、切換線は平面で表され、位相空間が４次元以上になると、切換線は超平面となる。
【００８２】
切換関数設定パラメータｐｏｌｅ／ｉは、可変に設定することができるパラメータである。設定パラメータｐｏｌｅ／ｉを調整することにより、吸気量偏差Ｅｑの減衰（収束）特性を指定することができる。
【００８３】
図６は、スライディングモード制御の応答指定特性の一例を示すグラフである。線６３は、ｐｏｌｅ／ｉの値が“−１”である場合の応答特性を示し、線６４はｐｏｌｅ／ｉの値が“−０．８”である場合の応答特性を示し、線６５はｐｏｌｅ／ｉの値が“−０．５”である場合の応答特性を示す。線６３〜６５から明らかなように、ｐｏｌｅ／ｉの値に従って、吸気量偏差Ｅｑの収束速度が変化する。ｐｏｌｅ／ｉの絶対値の値を小さくするほど、収束速度が速くなることがわかる。
【００８４】
推定積算吸気量ｑａｉｒ／ｐｒｅを目標積算吸気量ｑａｉｒ／ｃｍｄに収束させるため、上記の式（５）のようにモデル化された制御対象に与えるべき入力として、制御器５１が生成する制御入力Θ（すなわち、バイパス開度）を求める。制御入力Θは、等価制御入力Θｅｑ、到達則入力Θｒｃｈおよび適応則入力Θａｄｐの総和として求められる。
【００８５】
等価制御入力Θｅｑは、状態量（Ｅｑ（ｋ−１），Ｅｑ（ｋ））を切換線に拘束するための入力であるので、σ１（ｋ）＝σ１（ｋ−１）を満たすことが条件となる。この条件と上記のモデル式（５）に基づき、以下の式（８）のように求められる。
【００８６】
【数８】
2004076716.tif 000010
【００８７】
式（８）から明らかなように、１番目の大括弧は吸気量偏差Ｅｑに基づくフィードバック項であり、２番目の大括弧は目標積算吸気量ｑａｉｒ／ｃｍｄに基づくフィードフォワード項である。フィードフォワード項は、吸気量偏差Ｅｑが定常的にゼロとなるような状態で制御対象に与えるべき入力である。一方、標準開度θ０は、前述したように目標積算吸気量ｑａｉｒ／ｃｍｄを規定するバイパス開度である。すなわち、標準開度θ０は、標準開度θ０に対応する吸入空気量がその目標値に一義的に定まるという条件下で、フィードフォワード的に設定される。したがって、フィードフォワード項を標準開度θ０に置き換えることができる。
【００８８】
フィードバック項は、この実施例においては省略される。本願発明者等は、各種検討により、状態量が切換直線の近傍に存在する状態においては、この吸気量制御の安定性が高いことを判明した。また、この実施例では、後述する適応則入力を用いるので、状態量の切換直線への収束の安定性を高めることができる。したがって、フィードバック項を省略しても、実用上吸気量制御の安定性が損なわれることがない。したがって、等価制御入力Θｅｑは、式（９）のように求められる。
【００８９】
【数９】
2004076716.tif 000011
【００９０】
次に、到達則入力Θｒｃｈおよび適応則入力Θａｄｐを、式（１０）および（１１）に従ってそれぞれ算出する。ここで、ＦｘおよびＦｙは、それぞれ、到達則のゲインおよび適応則のゲインを規定する係数である。これらの値は、切換関数σ１の値の切換線σ１＝０への収束の安定性および速応性等を考慮して、シミュレーション等を介して予め同定される。
【００９１】
【数１０】
2004076716.tif 000012
【００９２】
【数１１】
2004076716.tif 000013
【００９３】
こうして、バイパス開度Θが、式（１２）のように求められる。
【００９４】
【数１２】
2004076716.tif 000014
【００９５】
式（１２）により、補正量ｉ／ｓｌｄは、到達則入力Θｒｃｈおよび適応則入力Θａｄｐを加算したものとして求められる。補正量ｉ／ｓｌｄで標準開度θ０を補正することで、バイパス開度Θ、すなわち制御入力が求められる。図２を参照して説明したバイパス開度θＣＭＤは、このようにして求められたバイパス開度Θに基づいて決定される。
【００９６】
図７は、吸気量制御の動作態様の一例を示す。時間軸の原点は、ＦＩＲＥモードの開始時点を示す。曲線５３は、標準バイパス開度θ０の遷移を示す。標準バイパス開度θ０は、前述したように、ＦＩＲＥモードにおいて触媒の活性化を適正に行うために吸入されるべき吸入空気量を規定するバイパス開度である。曲線５５は、標準バイパス開度θ０に基づいて算出される目標積算吸気量ｑａｉｒ／ｃｍｄの遷移を示す。目標積算吸気量ｑａｉｒ／ｃｍｄは、触媒に与えられる熱量の積算値の目標を示す。曲線５６は、実際の触媒に与えられる熱量を推定して算出した推定積算吸気量ｑａｉｒ／ｐｒｅの遷移を示す。曲線５４は、目標積算吸気量ｑａｉｒ／ｃｍｄと推定積算吸気量ｑａｉｒ／ｐｒｅの偏差Ｅｑに基づくスライディングモード制御によって求められた補正量ｉ／ｓｌｄで標準バイパス開度θ０（曲線５３）を補正した値Θの遷移を示す。曲線５７は、切換関数σ１の設定パラメータｐｏｌｅ／ｉの遷移を示す。
【００９７】
バイパス開度算出部４５（図３）は、ＦＩＲＥモードが開始されると、吸入空気量を増量させる。このとき、ＦＩＲＥモードが開始されてから時間ＴＩＳＬＤＬＭＴが経過するまで、目標および推定積算吸気量ｑａｉｒ／ｃｍｄおよびｑａｉｒ／ｐｒｅを強制的にゼロにし、標準バイパス開度θ０に対する補正を行わないようにする。これは、吸入空気量の増量を開始した直後においては、推定および目標積吸気量の信頼性が乏しいと考えられるからである。時間ＴＩＳＬＤＬＭＴが経過した後、バイパス開度算出部４５は、一定の制御サイクルで、目標積算吸気量ｑａｉｒ／ｃｍｄと推定積算吸気量ｑａｉｒ／ｐｒｅの偏差Ｅｑを算出する。算出された偏差Ｅｑをゼロにするように前述したような方法でスライディングモード制御が実行される。
【００９８】
バイパス開度算出部４５は、式（６）に示される切換関数σ１の値をゼロにするよう、該切換関数σ１の制御入力を求め、補正量ｉ／ｓｌｄを算出する。補正量ｉ／ｓｌｄは標準バイパス開度θ０に加算される。この加算された値Θの遷移が曲線５４に示されており、このΘに基づいてバイパス開度θＣＭＤが決定される。
【００９９】
一方、曲線５７に示されるように、バイパス開度算出部４５は、時間ＴＰＯＬＥＸに達するまでは、切換関数σ１の設定パラメータｐｏｌｅ／ｉを−１から徐々に増加させ、時間ＴＰＯＬＥＸに達した後は、設定パラメータｐｏｌｅ／ｉを一定に維持する。すなわち、時間ＴＰＯＬＥＸに達する前の偏差Ｅｑの減衰速度を、時間ＴＰＯＬＥＸに達した後の偏差Ｅｑの減衰速度よりも遅くする。こうすることにより、吸入空気量の急激な変化が回避され、エンジン１の始動直後において安定的な燃焼状態を維持することができる。
【０１００】
図２を参照して説明したように、吸入空気量の増量は、点火時期を通常よりも遅角側に操作させながら行われる。増量形態が不適切な場合、エンジン１の燃焼状態およびエミッション状態を劣化させるおそれがある。標準開度θ０に基づいてバイパス開度θＣＭＤを算出することにより、エンジン１の燃焼状態およびエミッション状態を損なうことなく、安定したアイドリング運転状態を実現することができる。
【０１０１】
回転数制御の構成
図８は、本発明の一実施形態に従う回転数制御の制御ブロック図を示す。この実施形態においては、回転数制御を、所望の減衰速度を指定することができ、かつ周波数整形を考慮した、周波数整形応答指定型制御で実現する。より具体的には、回転数制御は、周波数整形応答指定型制御として周波数整形スライディングモード制御を用いて実施される。
【０１０２】
図８に示されるように、この実施形態に従う周波数整形スライディングモード制御は、エンジン１を制御対象（プラント）とする。エンジン１の実回転数Ｎｅを回転数センサ１３（図１）により検出して、目標回転数ｎｅ／ｆｉｒｅと比較する。上記の比較結果に基づいて、制御器７１は、点火時期の補正量ＤＩＧを求める。点火時期補正量ＤＩＧによって補正された点火時期ｉｇｌｏｇに従って、エンジン１の点火動作が実施される。その後、エンジン１の実回転数Ｎｅが回転数センサ１３によって再び検出される。
【０１０３】
このように、制御器７１は、エンジンの実回転数Ｎｅを目標回転数ｎｅ／ｆｉｒｅにするよう点火時期補正量ＤＩＧを求めるフィードバック制御を実行する。制御対象であるエンジン１を、出力をエンジン回転数Ｎｅ、入力を点火時期補正量ＤＩＧとして、以下のようにモデル化することができる。式（１３）から明らかなように、エンジンは、離散時間系モデルとしてモデル化される。このようにモデル化することにより、回転数制御のアルゴリズムをコンピュータ処理に適した簡易なものとすることができる。
【０１０４】
【数１３】
2004076716.tif 000015
【０１０５】
ここで、ｋは制御サイクルを識別する識別子である。（ｋ）は現在のサイクルを示し、（ｋ−１）は前回のサイクルを示し、（ｋ＋１）は次回のサイクルを示す。
【０１０６】
Ｅｎは、式（１３）に示されるように、エンジンの実回転数Ｎｅの目標回転数ｎｅ／ｆｉｒｅに対する偏差（以下、回転数偏差と呼ぶ）を示す。ｄは、むだ時間を示す。ａ３、ａ４およびｂ２はモデルパラメータであり、制御モデルの挙動特性が実際のエンジンの挙動特性に整合するようシミュレーション等を通じて予め同定される。
【０１０７】
式（１３）に示されるように、次回のサイクルにおける回転数偏差Ｅｎ（ｋ＋１）は、今回のサイクルにおける回転数偏差Ｅｎ（ｋ）と、前回のサイクルにおける回転数偏差Ｅｎ（ｋ−１）と、今回のサイクルにおける点火時期補正量ＤＩＧとを用いて表現されることができる。
【０１０８】
図９に、実際のエンジンと上記モデル化されたエンジンの周波数特性を示す。曲線７５および７７は、実際のエンジンの周波数特性を示し、曲線７６および７８は、式（１３）に従ってモデル化されたエンジンの周波数特性を示す。図から明らかなように、楕円７９で囲まれる高い周波数領域を除き、上記のモデルが実際のエンジンに追従していることがわかる。言い換えると、所定の周波数以下の領域においては、上記モデルを用いて制御器７１を構成すればよいことがわかる。該所定の周波数より大きい高周波領域では、モデル化誤差が含まれることがわかる。この発明の周波数整形スライディングモード制御は、実際のエンジンの周波数特性におけるこのような高周波成分を除去することを含む。
【０１０９】
回転数制御における第１の制御器の構成
図１０は、本発明の第１の実施例に従う、図８に示される制御器７１の詳細なブロック図を示す。制御器７１は、低域フィルタ８１および周波数整形スライディングモードコントローラ（以下、単に「スライディングモードコントローラ」と呼ぶ）８２をさらに備える。低域フィルタ８１には、回転数センサ１３によって検出された実回転数Ｎｅと目標回転数ｎｅ／ｆｉｒｅの偏差Ｅｎが入力される。低域フィルタ８１は、回転数偏差Ｅｎから高周波成分を除去した信号ＮＥｌｏｗを出力する。
【０１１０】
スライディングモードコントローラ８２には、回転数偏差Ｅｎ、低域フィルタ８１の内部の状態変数（内部変数）Ｚ、および低域フィルタ８１から出力された信号ＮＥｌｏｗが入力される。スライディングモードコントローラ８２は、スライディングモード制御を実行し、回転数偏差Ｅｎがゼロに収束するよう、点火時期補正量ＤＩＧを求める。
【０１１１】
以下に、低域フィルタ８１およびスライディングコントローラ８２で実行される具体的な計算について説明する。これらの計算は、典型的にはコンピュータプログラムによって実施される。
【０１１２】
当業者に既知の状態空間表現を用いると、低域フィルタ８１を、式（１４）で表される状態方程式および式（１５）で表される出力方程式で表すことができる。
【０１１３】
【数１４】
2004076716.tif 000016
【０１１４】
【数１５】
2004076716.tif 000017
【０１１５】
ここで、Ｅｎは、前述したように、実回転数Ｎｅと目標回転数ｎｅ／ｆｉｒｅの偏差を示す。Ｚは、低域フィルタ８１の内部変数を表す（ｎ×１）の行列である。Ｆ、Ｇ、ＨおよびＬはいずれもモデルパラメータ行列であり、Ｆはｎ×ｎ行列、Ｇはｎ×１行列、Ｈは１×ｎ行列、Ｌはスカラー値である。低域フィルタ８１を設計する際に、カットオフ周波数等のフィルタ特性を指定することにより、これらのモデルパラメータ行列の値は予め定められる。
【０１１６】
また、式（１４）および式（１５）から明らかなように、低域フィルタ８１から、低域フィルタ８１の内部変数Ｚと、回転数偏差Ｅｎがフィルタリングされた信号ＮＥｌｏｗが出力される。
【０１１７】
カットオフ周波数は、エンジンと運転室内の間の振動音伝達系の共振点以下の周波数とすることが好ましい。そうすることにより、エンジンと運転室内の間の振動音伝達系で発生する共振を抑制することができる。
【０１１８】
図１１は、本発明の実施形態に従う低域フィルタ８１の周波数特性の一例を示す。低域フィルタ８１は、モデル化誤差を考慮してカットオフ周波数が設定されたバタワースフィルタとして実現されている。カットオフ周波数より高い周波数領域において、ゲインおよび位相が減衰していることがわかる。このような低域フィルタによって回転数偏差Ｅｎをフィルタリングすると、回転数偏差Ｅｎの高周波成分が除去される。したがって、低域フィルタ８１からの出力信号ＮＥｌｏｗには、望ましくない高周波成分が含まれていない。この信号ＮＥｌｏｗに基づいて周波数整形スライディングモードを実行することにより、望ましくない高周波振動の励起を抑制してエンジン回転数を収束させることができる。
【０１１９】
式（１４）および（１５）に示されるように、この実施例においては、状態空間表現を用いてＩＩＲ型の低域フィルタを設計した。しかしながら、ＦＩＲフィルタ型の低域フィルタを用いてもよい。
【０１２０】
スライディングモードコントローラ８２は、周波数整形スライディングモード制御を実行するため、切換関数σ２を式（１６）のように設定する。
【０１２１】
【数１６】
2004076716.tif 000018
【０１２２】
ここで、ＮＥｌｏｗは、前述したように低域フィルタ８１から出力される、高周波成分が除去された回転数偏差信号を示す。Ｅｎは、実回転数と目標回転数の偏差を示す。ｐｏｌｅ／ｉｇは、切換関数σ２の設定パラメータであり、−１＜ｐｏｌｅ／ｉｇ＜１となるよう設定される。
【０１２３】
切換関数σ２（ｋ）＝０とした式は等価入力系と呼ばれ、制御量である回転数偏差Ｅｎの収束特性を規定する。σ２（ｋ）＝０とすると、式（１６）は以下の式（１７）のように変形することができる。
【０１２４】
【数１７】
2004076716.tif 000019
【０１２５】
前述したように、図５と同様の位相平面上に式（１７）を表現することができる。式（１７）は、縦軸がＥｎ（ｋ）および横軸がＮＥｌｏｗ（ｋ−１）の位相平面上に切換線として表現される。周波数整形スライディングモードは、ＮＥｌｏｗ（ｋ−１）およびＥｎ（ｋ）の組合せからなる状態量（ＮＥｌｏｗ（ｋ−１），　Ｅｎ（ｋ））を、切換線上に載せて該切換線上に拘束するよう動作する。状態量を切換線上に保持することにより、該状態量を、外乱等に影響されることなく、極めて安定的に位相平面上の原点０に収束させることができる。言い換えると、状態量（ＮＥｌｏｗ（ｋ−１），Ｅｎ（ｋ））を、式（１７）に示される入力の無い安定系に拘束することにより、外乱およびモデル化誤差に対してロバストにエンジン回転数Ｎｅを目標回転数ｎｅ／ｆｉｒｅに収束させることができる。
【０１２６】
切換関数設定パラメータｐｏｌｅ／ｉｇは、可変に設定することができるパラメータである。パラメータｐｏｌｅ／ｉｇを調整することにより、回転数偏差Ｅｎの減衰特性を指定することができる。図６に示される応答指定特性は、パラメータｐｏｌｅ／ｉｇにも同様にあてはまる。
【０１２７】
図１２は、上記の式（１７）の概念を模式的に示すグラフである。線９１は、回転数偏差Ｅｎの遷移を示し、曲線９２は、高周波成分の除去された信号ＮＥｌｏｗの遷移を示し、曲線９３は、信号ＮＥｌｏｗに設定パラメータｐｏｌｅ／ｉｇを乗算した値の遷移を示す。
【０１２８】
回転数偏差Ｅｎは、高周波等の外乱の影響で、実際には線９１に示されるようにジグザグに変動することがある。しかしながら、式（１６）のように切換関数σ２を設定して、σ２＝０になるよう制御することにより、外乱の影響を受けずに回転数偏差Ｅｎをゼロに収束させることができる。すなわち、式（１７）から明らかなように、σ２＝０に制御するということは、今回のサイクルの回転数偏差Ｅｎ（ｋ）を、前回のサイクルで高周波成分を除去するようフィルタリングされた回転数偏差ＮＥｌｏｗ（ｋ−１）のｐｏｌｅ／ｉｇ倍（前述したように、ｐｏｌｅ／ｉｇの絶対値は１未満である）になるよう制御することを意味する。具体的にいうと、図の矢印で示されるように、この発明の回転数制御は、今回のサイクルｋにおいてフィルタリングされた回転数偏差ＮＥｌｏｗの値（参照番号９４によって示される点）をｐｏｌｅ／ｉｇ倍した所（参照番号９５によって示される点）に、次回のサイクル（ｋ＋１）における回転数偏差Ｅｎが来るよう制御する。こうして、回転数偏差Ｅｎ（ｋ）は、外乱を含まない信号ＮＥｌｏｗ（ｋ−１）に基づき、設定パラメータｐｏｌｅ／ｉｇで指定された速度で、ゼロに向かって収束する。
【０１２９】
従来のスライディングモード制御では、設定パラメータｐｏｌｅ／ｉｇの大きさを小さくして回転数偏差Ｅｎの減衰特性を向上させると、高周波振動に対する安定性が損なわれるおそれがあった。しかしながら、本発明によれば、回転数偏差Ｅｎの高周波成分が低域フィルタによって除去され、該高周波成分が除去された制御量ＮＥｌｏｗに基づいて、切換関数σ２が設定される。したがって、切換関数σ２には不所望の高周波成分が含まれなくなり、回転数偏差Ｅｎの減衰特性を損なうことなく、回転数偏差Ｅｎの不所望の振動を抑制することが可能となる。
【０１３０】
図１３は、周波数整形スライディングモードコントローラ８２のさらに詳細な機能ブロック図を示す。これらの機能ブロックは、典型的にはコンピュータプログラムによって実現される。
【０１３１】
スライディングモードコントローラ８２は、前述したように、回転数偏差Ｅｎおよびフィルタリングされた回転数偏差ＮＥｌｏｗに基づいて切換関数σ２を計算する切換関数算出部９５を有する。切換関数算出部９５によって計算された切換関数σ２をゼロにするよう、３つの制御入力算出部９６〜９８によって制御入力が決定される。等価制御入力算出部９６は、状態量を切換直線上に拘束するための制御入力Ｕｅｑを、低域フィルタの内部変数Ｚを考慮に入れて算出する。
【０１３２】
到達則入力算出部９７は、状態量を切換直線上に載せるための制御入力Ｕｒｃｈを算出する。適応則入力算出部９８は、モデル化誤差および外乱を抑制しつつ、状態量を切換直線に載せるための制御入力Ｕａｄｐを算出する。点火時期補正量算出部９９は、上記の３つの制御入力Ｕｅｑ、ＵｒｃｈおよびＵａｄｐの和を算出し、点火時期補正量ＤＩＧを求める。
【０１３３】
等価制御入力算出部９６によって実行される具体的な計算式を説明する。等価制御入力Ｕｅｑは、状態量を切換線上に拘束するための入力であるので、式（１８）を満たすことが条件となる。
【０１３４】
【数１８】
2004076716.tif 000020
【０１３５】
また、式（１３）において、むだ時間ｄ＝０としたモデルを設定する。
【０１３６】
【数１９】
2004076716.tif 000021
【０１３７】
むだ時間ｄ＝０としたので、上記の式（１９）は、むだ時間のモデル化誤差を有する。しかしながら、このモデル化誤差は、適応則入力を持つスライディングモード制御のロバスト性によって補償されることができる。
【０１３８】
一方、低域フィルタ８１の状態方程式および出力方程式は、前述したように、式（１４）および（１５）のように表される。式（１４）、（１５）、（１８）および（１９）から、σ２（ｋ）およびσ２（ｋ＋１）は式（２０）および（２１）のように算出される。
【０１３９】
【数２０】
2004076716.tif 000022
【０１４０】
【数２１】
2004076716.tif 000023
【０１４１】
したがって、σ２（ｋ＋１）＝σ２（ｋ）とするための等価制御入力Ｕｅｑは、式（２０）および（２１）から、式（２２）ように求めることができる。
【０１４２】
【数２２】
2004076716.tif 000024
【０１４３】
式（２２）から明らかなように、等価制御入力Ｕｅｑには、低域フィルタ８１の内部変数Ｚ（ｋ）と、フィルタ特性を表すパラメータＦ、Ｇ、ＨおよびＬが含まれている。これにより、フィルタリングによる位相遅れが補償され、ＮＥｌｏｗを切換線に維持することができる。
【０１４４】
次に、到達則入力算出部９７は、切換関数σ２の値に応じた値を持つ到達則入力Ｕｒｃｈを、式（２３）に従い算出する。この実施例では、到達則入力Ｕｒｃｈを、切換関数σ２の値に比例した値を持つよう計算する。Ｋｒｃｈは到達則のフィードバックゲインを示し、これは、切換直線σ２＝０への収束の安定性および速応性等を考慮して、シミュレーション等に基づいて予め定められる。
【０１４５】
【数２３】
2004076716.tif 000025
【０１４６】
次に、適応則入力算出部９８は、切換関数σ２の積算値に応じた値を持つ適応則入力Ｕａｄｐを、式（２４）に従い算出する。この実施例では、適応則入力Ｕａｄｐを、切換関数σ２の積算値に比例した値を持つよう計算する。Ｋａｄｐは適応則のフィードバックゲインを示し、これは、切換直線σ２＝０への収束の安定性および速応性等を考慮して、シミュレーション等に基づいて予め定められる。
【０１４７】
【数２４】
2004076716.tif 000026
【０１４８】
スライディングモード制御においては、この適応則は考慮されないのが通常である。本発明の実施形態に従う周波数整形スライディングモード制御においては、上記のような適応則を考慮することにより、切換関数σ２の定常偏差を補償することができる。すなわち、上記の式（２３）のように表される到達則入力を用いた場合でも、式（２４）で表される適応則入力を用いることにより、状態量を切換直線に近づけることができる。具体的にいえば、通常のスライディングモード制御においては、到達則入力を切換直線に対してスイッチングさせることにより、状態量を切換直線に近づける。しかしながらそのような制御を行うと、チャタリングを発生させるおそれがある。したがって、本発明においては、切換関数に比例する値を持つよう到達則入力を規定し、さらに、状態量を切換直線に安定的に近づけるため、切換関数の積算値に比例する値を持つ適応則入力を制御入力に付加する。こうして、チャタリングを起こすことなく、安定的に状態量を切換直線に載せることができ、よって切換関数に対する外乱およびモデル化誤差を抑制することができる。
【０１４９】
点火時期補正量算出部９９は、式（２５）に示されるように、等価制御入力Ｕｅｑ、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐを加算することによって、点火時期補正量ＤＩＧを求める。
【０１５０】
【数２５】
2004076716.tif 000027
【０１５１】
このように、本発明に従う周波数整形スライディングモード制御は、低域フィルタによって制御量（すなわち回転数偏差）の低周波成分を抽出し、該低周波成分を用いて切換関数を定義する。周波数整形スライディングモード制御によれば、制御量の目標値への追随特性を、切換関数設定パラメータによって指定することができる。また、切換関数の収束特性を、到達則および適合則のフィードバックゲインによって規定することができる。さらに、抑制すべき周波数成分を低域フィルタによって規定することができる。このような特性をそれぞれ別個に設計することができるので、本発明の周波数整形スライディングモードは容易に実現することが可能である。
【０１５２】
図１４は、回転数制御を開始したｔ１秒後に外乱を付加した場合のエンジン回転数の変動の一例を示す。図１４の（ａ）は、回転数制御を従来のＰＩ制御によって実施した場合を示す。図１４の（ｂ）は、回転数制御を、低域フィルタを用いない従来のスライディングモード制御によって実施した場合を示す。図１４の（ｃ）は、回転数制御を、本発明の一実施形態に従う周波数整形スライディングモード制御で実施した場合を示す。
【０１５３】
ＰＩ制御によると、外乱を付加した時に回転数の偏差の最大はｎ１に達しており、かつ回転数の振動が不安定な状態が継続している。また、従来のスライディングモード制御によると、外乱を付加した時の偏差はＰＩ制御に比べて減少し、振動安定性もＰＩ制御に比べてかなり向上している。
【０１５４】
本発明の周波数整形スライディングモード制御は、従来のスライディングモード制御と比較して、外乱付加時における偏差を増やすことなく、振動安定性がさらに良好になっていることがわかる。このように、周波数整形スライディングモード制御によると、高周波成分が除去されるので、回転数偏差を増やすことなく振動安定性を向上させることができる。その結果、エンジンと運転室内の間の振動音伝達系における共振を抑制することができる。とりわけ、エンジンを始動させた際のアイドリング運転状態において、回転数制御による振動が運転室内に励起されるのを抑制することができる。
【０１５５】
回転数制御における第２の制御器の構成
図１５は、本発明の第２の実施例に従う、制御器７１（図８）の詳細なブロック図を示す。図１０と比較して明らかなように、第１の実施例と異なる点は、線形変換型周波数整形スライディングモードコントローラ（以下、単に「線形スライディングモードコントローラ」と呼ぶ）１８２を備える点である。線形スライディングモードコントローラ１８２は、線形独立な状態変数を制御入力に含むように、応答指定型制御を実施する。この応答指定型制御を、線形変換型周波数整形応答指定型制御と呼ぶ。この実施例では、該制御を、線形変換型周波数整形スライディングモード制御を用いて実現する。
【０１５６】
低域フィルタ８１は、図１０に示されるものと同様のフィルタを用いることができる。低域フィルタ８１の状態方程式および出力方程式は、前述した式（１４）および（１５）で表される。また、線形スライディングモードコントローラ１８２は、式（１６）で示される切換関数σ２を設定する。切換直線は、式（１７）のように表される。
【０１５７】
線形変換型周波数整形スライディングモード制御は、詳細は後述されるが、ＮＥｌｏｗ（ｋ−１）およびＥｎ（ｋ）の組合せからなる状態量（ＮＥｌｏｗ（ｋ−１），　Ｅｎ（ｋ））を、切換直線上に漸近させると同時に、該状態量を位相平面上の原点０に収束させる。言い換えると、切換関数σ２をゼロに漸近させると同時に、偏差Ｅｎをゼロに収束させる。こうして、最終的には、状態量（ＮＥｌｏｗ（ｋ−１），　Ｅｎ（ｋ））が、式（１７）に示される入力の無い安定系に拘束され、エンジン回転数Ｎｅが目標回転数ｎｅ／ｆｉｒｅに収束する。線形変換型スライディングモードの詳細な挙動は、後述される。
【０１５８】
線形スライディングモードコントローラ１８２は、式（２６）に従って制御入力ＤＩＧを求める。Ｋ１〜Ｋ３は状態フィードバック係数であり、Ｋ１は（１×ｎ）行列、Ｋ２およびＫ３はスカラー値である。
【０１５９】
【数２６】
2004076716.tif 000028
【０１６０】
式（２６）に示されるように、制御入力ＤＩＧは、フィルタの内部変数Ｚを安定化するための補正項Ｋ１、回転数偏差Ｅｎを安定化するための補正項Ｋ２、および切換関数σ２に応じて変化する補正項Ｋ３を持つ。これらの補正項は、最適レギュレータ制御を用いて、予め同定される。
【０１６１】
ここで、上記補正項Ｋ１〜Ｋ３を同定する手法を、説明する。式（１３）のモデル式は、むだ時間ｄ＝０と設定すると、状態空間表現を用いて式（２７）のように表されることができる。
【０１６２】
【数２７】
2004076716.tif 000029
【０１６３】
むだ時間ｄ＝０としたので、上記の式（２７）は、むだ時間のモデル化誤差を有する。しかしながら、このモデル化誤差は、スライディングモード制御のロバスト性によって補償されることができる。
【０１６４】
一方、低域フィルタ８１の上記式（１５）を用いると、切換関数σ２は、式（２８）のように表される。
【０１６５】
【数２８】
2004076716.tif 000030
【０１６６】
ここで、制御システム全体の安定性を考慮しながら、切換関数σ２の値をゼロに収束すると共に、制御量Ｅｎを漸近収束させるため、該制御システムのシステム式を、以下のようにして求める。まず、式（２７）に示される制御対象の状態方程式と、式（１４）に示されるフィルタの状態方程式をまとめると、式（２９）が導かれる。
【０１６７】
【数２９】
2004076716.tif 000031
【０１６８】
切換関数σ２を状態変数に含めるため、式（２８）に基づいて、式（３０）に示されるような状態変数の線形変換式を導く。ここで、Ｉは単位行列を示す。
【０１６９】
【数３０】
2004076716.tif 000032
【０１７０】
式（３０）を式（２９）に適用すると、式（３１）が導かれる。式（３１）は、Ｔによって線形変換された、フィルタを含む制御対象の状態方程式を表している。線形独立な状態変数として、フィルタの内部変数Ｚ、回転数偏差Ｅｎおよび切換関数σ２を含む。
【０１７１】
【数３１】
2004076716.tif 000033
【０１７２】
式（３１）の状態方程式によって表されるシステムに対して状態フィードバック制御を実施することにより、状態変数Ｚ、Ｅｎおよびσ２の収束度合いを個々に調整することができる。こうして、該システムを不安定にすることなく、個々の状態変数を安定的に収束させることができる。
【０１７３】
式（３１）に基づいて、制御入力ＤＩＧは上記の式（２６）のように求められる。制御入力ＤＩＧの状態フィードバックゲイン（補正項）Ｋ１、Ｋ２およびＫ３は、式（３１）で表されるシステムが安定化するように求められる。
【０１７４】
一実施形態において、状態フィードバックゲインＫ１、Ｋ２およびＫ３は、最適レギュレータ制御を用いて決定される。最適レギュレータ制御において、評価関数Ｊは、式（３２）のように表されることができる。該評価関数Ｊを最小にする制御入力は、式（３３）に示されるＲｉｃｃａｔｉ方程式の解Ｐを用いて求められることができる。こうして、状態フィードバックゲインＫ１〜Ｋ３は、式（３４）のように算出される。
【０１７５】
【数３２】
2004076716.tif 000034
【０１７６】
【数３３】
2004076716.tif 000035
【０１７７】
【数３４】
2004076716.tif 000036
【０１７８】
この発明の他の実施形態では、制御入力ＤＩＧが、式（３５）に示されるように、状態変数としてさらに切換関数σ２の積算値を持つ。
【０１７９】
【数３５】
2004076716.tif 000037
【０１８０】
状態フィードバックゲインＫ１〜Ｋ４は、以下のようにして求められる。まず、線形変換した、フィルタを含む制御対象の状態方程式は、式（３６）のように表されることができる。
【０１８１】
【数３６】
2004076716.tif 000038
【０１８２】
評価関数、Ｒｉｃｃａｔｉ方程式および状態フィードバックゲインＫ１〜Ｋ４は、式（３７）〜（３９）で表される。
【０１８３】
【数３７】
2004076716.tif 000039
【０１８４】
【数３８】
2004076716.tif 000040
【０１８５】
【数３９】
2004076716.tif 000041
【０１８６】
このように、本発明に従う線形変換型周波数整形スライディングモード制御によれば、制御入力に、線形独立な状態変数であるフィルタの内部変数、制御量、切換関数、および／または切換関数の積算値を含む。したがって、低域フィルタの内部変数、制御量、および切換関数、および／または切換関数の積算値のそれぞれの状態フィードバックゲインを個々に調整することができる。こうして、制御システムを不安定にさせることなく、それぞれの状態変数を安定的に収束させることができる。
【０１８７】
図１６の（ａ）の直線１９８は、前述した切換直線を表している。曲線１９６は、第２の実施例に従う線形変換型周波数整形スライディングモード制御における、位相平面上の状態量の挙動の一例を示す。曲線１９７は、第１の実施例に従う周波数整形スライディングモード制御における、位相平面上の状態量の挙動の一例を示す。
【０１８８】
前述したように、第２の実施例に従う線形変換型周波数整形スライディングモード制御は、状態フィードバックゲインのそれぞれを、制御システムが安定するよう個々に調整する点で、第１の実施例に従う周波数整形スライディングモード制御と異なる。周波数整形スライディングモード制御では、切換関数値をゼロに維持してから回転数偏差Ｅｎを収束させる制御であるのに対し、線形変換型周波数整形スライディングモード制御では、切換関数値をゼロに漸近させると同時に回転数偏差Ｅｎを収束させる。
【０１８９】
曲線１９７は、モデル化誤差のために、切換関数σ２の値をゼロに維持することができない（すなわち、状態量（ＮＥｌｏｗ（ｋ−１），　Ｅｎ（ｋ））の値を切換直線１９８上に維持することができない）状態を表している。一方、曲線１９６は、モデル化誤差が存在していても、切換関数σ２の値をゼロに収束させつつ、回転数偏差Ｅｎをゼロに収束させることができる状態を表している。
【０１９０】
図１６の（ｂ）に示される曲線１９９は、第２の実施例に従う、線形変換型周波数整形スライディングモード制御における回転数偏差Ｅｎの応答の一例を示す。曲線２００は、第１の実施例に従う、周波数整形スライディングモード制御における回転数偏差Ｅｎの応答の一例を示す。曲線２００に示されるように、モデル化誤差が有る場合、周波数整形スライディングモード制御では、回転数偏差Ｅｎが収束しない。これは、図１６の（ａ）の曲線１９７に示されるように、周波数整形スライディングモード制御において切換関数σ２の値をゼロに維持することができないためである。それに対し、曲線１９９に示されるように、線形変換型周波数整形スライディングモード制御では、回転数偏差Ｅｎを収束させることができる。これは、図１６の（ａ）の曲線１９６に示されるように、該制御が、切換関数σ２の値をゼロに維持することができなくても、回転数偏差Ｅｎと切換関数σ２の値を同時に収束させるよう動作するからである。
【０１９１】
このように、線形変換型周波数整形スライディングモード制御によれば、切換関数をゼロに維持することができない場合でも、制御量および切換関数値（および／または切換関数の積算値）を同時に収束させることができる。したがって、切換関数がゼロに維持することができない場合に引き起こされるシステムの不安定を回避することができる。
【０１９２】
図１７の（ａ）は、第１の実施例に従う、周波数整形スライディングモード制御に従うフィルタの内部変数の挙動の一例を示す。図１７の（ｂ）は、第２の実施例に従う、線形変換型周波数整形スライディングモード制御に従うフィルタの内部変数の挙動の一例を示す。両者とも、モデル化誤差があり、切換関数をゼロに維持することができない場合を示している。周波数整形スライディングモード制御では、切換関数をゼロに維持することができないために、フィルタの内部変数の発散が生じている。一方、線形変換型周波数整形スライディングモード制御では、切換関数をゼロに維持することができなくても、フィルタの内部変数が安定的に収束している。
【０１９３】
制御システムのメインフロー
図１８は、本発明の一実施形態に従う、図３に示される制御システムの機能ブロックを具体的に実現するフローチャートを示す。図１８は、エンジンが始動したときに実行されるメインルーチンである。メインルーチンは、所定の制御周期、たとえばＴＤＣ周期で実行される。
【０１９４】
ステップＳ１０１において、動作モードが始動モードかどうか判断される。エンジン１の完爆が確認されるまでの間は、始動モードと判定される。完爆の確認は、エンジン回転数Ｎｅに基づいて行うことができる。
【０１９５】
始動モードならば、ステップＳ１０２に進み、始動モード処理を行う。具体的には、予め記憶手段５ｃ（図１）に記憶されたテーブルおよび予め決められた演算式に基づいて、燃料供給量、バイパス開度および点火時期を求める。求められた燃料供給量、バイパス開度および点火時期に従い、燃料噴射弁６、バイパス弁２２および点火プラグ２６（図１）が駆動され、エンジンのクランキングが行われる。
【０１９６】
始動モード処理は、さらに、ＦＩＲＥモードにおいて使用されるフラグおよび変数をゼロに初期化する。ＦＩＲＥモード経過時間ｔ／ｆｉｒｅ（図２参照）も、ゼロに初期化される。さらに、始動モード処理は、図１に示される各種センサによって検出されたエンジン水温Ｔｗ、吸気温Ｔａおよび大気圧Ｐａを記憶する。
【０１９７】
ステップＳ１０１において始動モードでないと判断されたならば、ステップＳ１０３に進み、燃料供給量を算出する。具体的には、図１のＮｅセンサ１３およびＰｂセンサ８によって検出されたエンジン回転数Ｎｅおよび吸気圧Ｐｂに基づいて、予め記憶されたテーブルを参照し、基本燃料供給量を求める。基本燃料供給量を、Ｔａセンサ９およびＴｗセンサ１０によってそれぞれ検出された吸気温Ｔａおよびエンジン水温Ｔｗ等に応じて補正し、燃料供給量を求める。求められた燃料供給量が供給されるよう、燃料噴射弁６が駆動される。
【０１９８】
ステップＳ１０４に進み、動作モード判定ルーチン（図１９）を実行する。このルーチンにおいて、ＦＩＲＥモードを実施するか、通常モードを実施するかが決められる。
【０１９９】
ステップＳ１０５に進み、ＦＩＲＥモードにおけるバイパス開度θＣＭＤを算出するバイパス開度算出ルーチン（図２０）を実行する。このルーチンでは、スライディングモード制御を実行し、前述したように、推定積算吸気量ｑａｉｒ／ｐｒｅを目標積算吸気量ｑａｉｒ／ｃｍｄに収束させるようにバイパス開度の補正量ｉ／ｓｌｄを求め、補正量ｉ／ｓｌｄで補正されたバイパス開度θＣＭＤを算出する。
【０２００】
ステップＳ１０６に進み、点火時期ｉｇｌｏｇを算出する点火時期算出ルーチン（図２２）を実行する。このルーチンでは、周波数整形スライディングモードまたは線形変換型周波数整形スライディングモードを実行し、前述したように、実回転数Ｎｅを目標回転数ｎｅ／ｆｉｒｅに収束させるように点火時期の補正量ＤＩＧを求める。補正量ＤＩＧで補正された点火時期ｉｇｌｏｇが算出される。
【０２０１】
動作モード判定
図１９は、図１８のステップＳ１０４において実施される、動作モード判定ルーチンの詳細を示すフローチャートである。ステップＳ１１１において、ＦＩＲＥモードに入ってからの経過時間、すなわち完爆が確認されてからの経過時間ｔ／ｆｉｒｅが、予め決められた制限時間ＴＦＩＲＥＬＭＴに達したならば、ＦＩＲＥモードを抜けるためにステップＳ１１９に進む。また、ステップ１１２および１１３において、エンジン回転数Ｎｅが所定範囲内に無い場合、またはエンジン水温Ｔｗが所定範囲内に無い場合、ＦＩＲＥモードを抜けるため、ステップＳ１１９に進む。
【０２０２】
ステップＳ１１１〜Ｓ１１３の判断がすべてＹＥＳの場合は、アクセルペダルに対する操作が行われたかどうか判断する（Ｓ１１４）。これは、スロットル弁開度センサ４（図１）によって検出することができる。アクセルペダルに対する操作が行われた場合は、ＦＩＲＥモードを一時的に中断するため、ステップ１２５に進む。ステップ１１５において、フュエルカットが実施されているかどうか判断する。これは、フュエルカットが実行されるときにセットされるフラグを調べることにより検出することができる。フュエルカットは燃料供給を一時的に遮断する処理である。フュエルカット実行中は、ＦＩＲＥモードを一時的に中断するため、ステップＳ１２５に進む。ステップＳ１２５に進む状況は、混合気の燃焼を行いながら、エンジン１のアイドリング運転以外の運転を行う状況を示す。このような状況としては、たとえば車両の走行を行う、エンジン１の空ぶかしを行う等が考えられる。
【０２０３】
ステップＳ１１４および１１５の判断がいずれもＮｏの場合は、アイドリング運転を行うべき状態にあることを示す。ＦＩＲＥ中断フラグｆ／ｆｐａｕｓｅをゼロにセットしてＦＩＲＥモードは中断されないことを示し（ステップＳ１１６）、ＦＩＲＥモード許可フラグｆ／ｆｉｒｅｏｎを１にセットして（ステップＳ１１７）、ＦＩＲＥモードを実行する。
【０２０４】
ステップＳ１１９〜Ｓ１２４は、通常モードに移行するための処理を示す。ステップＳ１１９において、後述する学習演算処理を終了する際に１がセットされるフラグｆ／ｆｌｒｎｅｎｄの値を調べる。値がゼロならば、学習演算処理がまだ終了していないことを示す。現在のＦＩＲＥ経過時間ｔ／ｆｉｒｅを、学習終了時刻を示す変数ｔ／ｋｉｌにセットし（Ｓ１２０）、学習演算を終了するためにフラグｆ／ｆｌｒｎｅｎｄに１をセットする（Ｓ１２１）。
【０２０５】
ステップＳ１２２において、ＦＩＲＥ経過時間ｔ／ｆｉｒｅに、強制的に制限時間ＴＦＩＲＥＬＭＴをセットする。これにより、以降のサイクルにおいてはステップＳ１１１の判断が必ずＮｏとなり、ＦＩＲＥモードではなく通常モードが実施される。ＦＩＲＥ中断フラグｆ／ｆｐａｕｓｅにゼロをセットし（Ｓ１２３）、ＦＩＲＥ許可フラグｆ／ｆｉｒｅｏｎをゼロにセットする（Ｓ１２４）。こうして、動作モードとして通常モードが選択される。
【０２０６】
ステップＳ１２５〜Ｓ１２９は、ＦＩＲＥモードを中断する処理を示す。ステップＳ１２５において、ＦＩＲＥ中断フラグｆ／ｆｐａｕｓｅに１をセットする。ステップＳ１２６〜Ｓ１２８において、前述したステップＳ１１９〜Ｓ１２１と同じ処理を行い、学習演算処理を終了させる。ステップＳ１２９において、後述する点火時期算出処理で使用するダウンタイマｃｎｔ／ｉｇｖｐｌに初期値ＸＣＮＴを設定する。ステップＳ１１７に進み、ＦＩＲＥ許可フラグｆ／ｆｉｒｅｏｎに１をセットし、ＦＩＲＥモードを終了させないようにする。
【０２０７】
バイパス開度算出ルーチン
図２０は、図１８のステップＳ１０５において実行される、バイパス開度θＣＭＤを算出するフローチャートである。ステップＳ１４１において、ＦＩＲＥ許可フラグｆ／ｆｉｒｅｏｎの値が１かどうか判断する。値が１ならば、ＦＩＲＥモード用のバイパス開度を求めるため、ステップＳ１４２に進む。値がゼロならば、通常モード用のバイパス開度を求めるため、ステップＳ１５２に進む。
【０２０８】
ステップＳ１４２において、標準開度θ０を算出する。具体的にいうと、検出されたエンジン水温Ｔｗから、予め記憶手段５ｃ（図１）に格納されたテーブルを参照し、標準開度θ０の基本値ｉ／ｆｔｂｌを求める。標準開度θ０は、ＦＩＲＥモードにおいて触媒の活性化を適正に行うために吸入されるべき吸入空気量を規定するバイパス開度であり、その基本値ｉ／ｆｔｂｌは、標準開度指令値θ０の最大値を示す。上記テーブルは、エンジン水温Ｔｗが高いほど基本値ｉ／ｆｔｂｌが小さくなるよう設定されている。これは、エンジンの始動時の温度Ｔｗは触媒の初期温度に相当すると考えることができるので、エンジン水温が高いほど、触媒の活性化を行うのに必要な熱量が小さくてすむからである。
【０２０９】
自動変速機がエンジンに設けられている場合、シフト位置がドライブレンジにあるときの基本値ｉ／ｆｔｂｌを、シフト位置がニュートラルレンジにあるときの基本値ｉ／ｆｔｂｌよりも大きく設定するのが好ましい。これは、ドライブレンジの方がニュートラルレンジよりもエンジンにかかる負荷が大きいからである。触媒の温度を直接検出する他の実施形態においては、該触媒の温度から上記テーブルを検索して基本値ｉ／ｆｔｂｌを算出するようにしてもよい。
【０２１０】
次に、基本値ｉ／ｆｔｂｌを補正するための補正係数ｋｍ／ｆｉｒｅ（≦１）を、ＦＩＲＥ経過時間ｔ／ｆｉｒｅから、予め記憶されたテーブルを参照することによって求める。このテーブルにおいて、補正係数ｋｍ／ｆｉｒｅは、ＦＩＲＥ経過時間ｔ／ｆｉｒｅが所定値に達するまでは増加し、該所定値に達した後は、所定時間の間は一定（たとえば、１）に維持されるよう設定されている。さらに、補正係数ｋｍ／ｆｉｒｅは、該所定時間が経過した後は減少するよう設定されている。これは、ＦＩＲＥモードがある程度進行した後は標準開度θ０を緩やかに減少させて、フリクション低下による回転数Ｎｅの上昇傾向を抑制するためである。標準開度θ０は、補正係数ｋｍ／ｆｉｒｅを基本値ｉ／ｆｔｂｌに乗算することによって算出される。
【０２１１】
ステップＳ１４３〜Ｓ１４５において、前述した吸気量制御を行う。ステップＳ１４３において、推定積算吸気量ｑａｉｒ／ｐｒｅおよび目標積算吸気量ｑａｉｒ／ｃｍｄを、前述の式（１）〜（４）に従って求め、それらの偏差Ｅｑを算出する。
【０２１２】
図７を参照して前述したように、ＦＩＲＥ経過時間ｔ／ｆｉｒｅが所定時間ＴＩＳＬＤＬＭＴを経過するまでは、推定積算吸気量ｑａｉｒ／ｐｒｅおよび目標積算吸気量ｑａｉｒ／ｃｍｄは強制的にゼロにされるのが好ましい（図２０には、簡略化のため示していない）。
【０２１３】
ステップ１４４に進み、点火時期フラグｆ／ｄｅｃの値を判断する。フラグｆ／ｄｅｃは、後述する点火時期ｉｇｌｏｇの生成処理において、点火時期ｉｇｌｏｇがしきい値ＩＧＸよりも遅角側にあるときに１がセットされるフラグである。進角側にあるときはゼロにセットされる。フラグｆ／ｄｅｃは、始動モード処理（図１８のステップＳ１０２）においてゼロに初期化されている。
【０２１４】
点火時期フラグｆ／ｄｅｃの値がゼロであるとき、補正量ｉ／ｓｌｄ算出ルーチン（図２１）を実行する（Ｓ１４５）。このルーチンにおいては、スライディングモード制御を実行し、吸気量偏差Ｅｑがゼロに収束するよう、バイパス開度の補正量ｉ／ｓｌｄを求める。
【０２１５】
点火時期フラグｆ／ｄｅｃの値が１であるとき、ステップＳ１４６に進み、開度補正量θｄｅｃをΔθｄｅｃだけ増加させる。ここで、開度補正量θは、標準開度θ０を補正する量である（ステップＳ１４７参照）。点火時期がしきい値ＩＧＸよりも遅角側にあるので、開度補正量θｄｅｃを増やして点火時期を進角側に操作する。こうして、点火時期が過剰に遅角側に操作されることを回避する。Δθｄｅｃは、エンジン水温Ｔｗから、予め記憶されたテーブルを参照して求めることができる。このテーブルは、エンジン水温Ｔｗが高温領域にあるΔθｄｅｃが、中低温領域にあるΔθｄｅｃよりも大きくなるよう設定されている。これは、フリクション低下が、エンジン水温Ｔｗが高温である場合の方が中低温である場合よりも生じやすいからである。
【０２１６】
ステップＳ１４７に進み、式（４０）に従い、バイパス開度の予備値θｉ／ｆｉｒｅを求める。ステップＳ１４６が実行されたときは、式（４０）のｉ／ｓｌｄには、フラグｆ／ｄｅｃが１にセットされる前に算出された補正量ｉ／ｓｌｄの値が用いられる。
【０２１７】
【数４０】
2004076716.tif 000042
【０２１８】
ステップＳ１４８に進み、学習演算終了フラグｆ／ｆｌｒｎｅｎｄの値を調べる。フラグｆ／ｆｌｒｎｅｎｄは、ＦＩＲＥモードの中断が行われるとき（図１９のステップＳ１２８）、ＦＩＲＥモードを終了するとき（図１９のステップＳ１２１）、または点火時期フラグｆ／ｄｅｃに１がセットされるとき（図２２のステップＳ２１０）に１がセットされるフラグである。フラグｆ／ｆｌｒｎｅｎｄがゼロのとき、式（４１）〜（４３）に従い、基本学習補正係数ｖｐｓｋｉｓｌｄを算出する（Ｓ１４９）。基本学習補正係数ｖｐｓｋｉｓｌｄは、学習補正係数ｋｉｌｅａｒｎを求めるために算出される。
【０２１９】
学習補正係数ｋｉｌｅａｒｎは、標準開度θ０を補正するための係数であり、後述するステップＳ１５３で使用される。学習補正係数ｋｉｌｅａｒｎで補正することにより、標準開度θ０の時間的変化のパターンと整合した安定な時間的変化を呈するバイパス開度θＣＭＤを求めることができる。
【０２２０】
【数４１】
2004076716.tif 000043
【０２２１】
【数４２】
2004076716.tif 000044
【０２２２】
【数４３】
2004076716.tif 000045
【０２２３】
ここで、ｇａｉｒ／ｓｌｄは、バイパス開度の補正量ｉ／ｓｌｄに対応する実際の吸入空気量の補正量を示す。言い換えると、バイパス開度をｉ／ｓｌｄだけ補正した場合、ｇａｉｒ／ｓｌｄだけ吸入空気量が補正される。Ｇａ２は、前述の式（３）と同じものであり、予め決められた定数である。式（４２）に示されるように、前回のサイクルにおける積算吸気補正量ｑａｉｒ／ｓｌｄ（ｋ−１）に、式（４１）で算出された補正量ｇａｉｒ／ｓｌｄを加算し、今回のサイクルにおける積算吸気補正量ｑａｉｒ／ｓｌｄ（ｋ）を求める。この積算吸気補正量ｑａｉｒ／ｓｌｄと、目標の積算吸気量ｑａｉｒ／ｃｍｄの比に基づき、式（４３）のように、基本学習補正係数ｖｐｓｋｉｓｌｄを求める。
【０２２４】
ステップＳ１５０に進み、バイパス開度の予備値θｉ／ｆｉｒｅのリミット処理を行う。このリミット処理において、予備値θｉ／ｆｉｒｅは、予め決められた上限値および下限値の間の値に制限される。
【０２２５】
ステップＳ１５１に進み、予備値θｉ／ｆｉｒｅに、大気圧補正係数ｋｐａ、吸気温補正係数ｋｔａ、および学習補正係数ｋｉｌｅａｒｎを乗算し、今回のサイクルにおけるバイパス開度θＣＭＤを算出する。
【０２２６】
ここで、大気圧補正係数ｋｐａは、式（４４）に従い算出される。
【０２２７】
【数４４】
2004076716.tif 000046
【０２２８】
ここで、Ｐａは始動時の大気圧を示す。Ｐａ０は、所定の標準大気圧を示す。Ｐｂ０は、標準大気圧Ｐａ０において、バイパス開度を標準開度θ０にしたときの吸気管圧力を示す。大気圧補正係数ｋｐａを考慮に入れることにより、大気圧による吸入空気量のばらつきを補償することができる。
【０２２９】
また、吸気温補正係数ｋｔａは、始動時の吸気温Ｔａから、予め記憶されたテーブルを参照して算出される。このテーブルは、吸気温が高くなるほど、補正係数ｋｐａが大きくなるよう設定されている。これは、吸気温が高くなるほど大気密度が小さくなり、吸入空気量が減少するからである。吸気温補正係数ｋｔａを考慮に入れることにより、吸気温による吸入空気量のばらつきを補償することができる。
【０２３０】
こうして、バイパス弁の動作特性のばらつきまたは経時的なバイパス弁の動作特性の変化等に起因する、バイパス弁の開度に対する実際の吸入空気量のばらつきが、補正係数ｋｐａ、ｋｔａおよびｋｉｌｅａｒｎによって補償され、適正なバイパス開度θＣＭＤが算出される。
【０２３１】
ステップＳ１４１に戻り、ＦＩＲＥ許可フラグｆ／ｆｉｒｅｏｎの値がゼロならば、ステップＳ１５２において、前回のサイクルにおけるフラグｆ／ｆｉｒｅｏｎの値を調べる。値が１ならば、前回のサイクルまでＦＩＲＥモードが実施されていたことを示す。ステップＳ１４９で求めた基本学習補正係数ｖｐｓｋｉｓｌｄに基づいて、式（４５）に従い、次回のＦＩＲＥモードの動作時にバイパス開度θＣＭＤを補正する係数ｋｉｌｅａｒｎを算出する（Ｓ１５３）。
【０２３２】
【数４５】
2004076716.tif 000047
【０２３３】
ここで、ｋｉｌｅａｒｎ（ｊ）は、今回のＦＩＲＥモードの動作によって新たに算出する学習補正係数を示し、ｋｉｌｅａｒｎ（ｊ−１）は、前回のＦＩＲＥモードの実施によって算出された学習補正係数を示す。また、Ｃｋｉは、予め決められた１以下の定数を示す。基本学習補正係数ｖｐｓｋｉｓｌｄは、前述したように、前回のサイクルにおいてステップＳ１４９において算出されている。
【０２３４】
なお、ステップＳ１４９で基本学習補正係数ｖｐｓｋｉｓｌｄを求めた時のＦＩＲＥ経過時間ｔ／ｆｉｒｅが所定値に達していない場合は、現在の学習補正係数ｋｉｌｅａｒｎの値を維持する。これは、経過時間が短い段階で得られる基本学習補正係数の信頼性が乏しいからである。その後、算出されたｋｉｌｅａｒｎに対して、上限値および下限値でリミット処理を行う。
【０２３５】
ステップＳ１５４に進み、バイパス開度θＣＭＤを、通常モード用の開度に設定する。通常モード用の開度は、ＦＩＲＥモード用の開度よりも小さく、エンジン１の通常的な運転を行うための値である。
【０２３６】
図２１は、補正量ｉ／ｓｌｄ算出ルーチンの詳細を示す図である。ステップＳ１７１において、ＦＩＲＥ中断フラグｆ／ｆｐａｕｓｅの値を調べる。値が１ならば、ＦＩＲＥモードが中断状態にあることを示す。スライディングモード制御を行う際の偏差Ｅｑの減衰速度を規定する設定パラメータｐｏｌｅ／ｉの値を、予め決められた下限値ｐｏｌｅ／ｉ０に初期化する（Ｓ１７２）。補正量ｉ／ｓｌｄの値は、中断前の値に維持される。
【０２３７】
中断フラグｆ／ｆｐａｕｓｅの値がゼロならば、ＦＩＲＥモードが動作中であることを示す。ステップＳ１７３〜Ｓ１７６において、今回のサイクルにおける設定パラメータｐｏｌｅ／ｉ（ｋ）を算出する。具体的には、ＦＩＲＥ経過時間ｔ／ｆｉｒｅから、予め記憶されたテーブルを参照し、設定パラメータの基本値ｐｏｌｅ／ｉｔｂｌを求める（Ｓ１７３）。
【０２３８】
中断動作が実行された場合には、前述したように設定パラメータは下限値ｐｏｌｅ／ｉ０に設定されている。このような場合に、設定パラメータの値を徐々に基本値ｐｏｌｅ／ｉｔｂｌに戻すようにする。そのため、現在の設定パラメータ値ｐｏｌｅ／ｉ（ｋ−１）に、予め決められた量ΔＰＯＬＥ／Ｉを加算したものが、基本値ｐｏｌｅ／ｉｔｂｌよりも小さいかどうか判断する（Ｓ１７４）。この判断がＹＥＳならば、現在の設定パラメータ値ｐｏｌｅ／ｉ（ｋ−１）にΔＰＯＬＥ／Ｉを加算したものを、今回のサイクルの設定パラメータ値ｐｏｌｅ／ｉ（ｋ）とする（Ｓ１７５）。この判断がＮＯならば、基本値ｐｏｌｅ／ｉｔｂｌを、今回のサイクルの設定パラメータ値ｐｏｌｅ／ｉ（ｋ）とする（Ｓ１７６）。
【０２３９】
ステップＳ１７７およびＳ１７８は、吸気量制御のスライディングモード制御における設定パラメータ値ｐｏｌｅ／ｉと、前述した回転数制御の周波数整形スライディングモード制御（線形変換型周波数整形スライディングモード制御を含む）における設定パラメータ値ｐｏｌｅ／ｉｇとの間の関係を調整する処理を示す。両者の制御は独立して実行されるが、どちらもエンジン回転数に影響を及ぼす制御である。
【０２４０】
一般に、バイパス開度の変化に対する吸入空気量の応答性は、点火時期の変化に対する回転数の応答性に比して遅い。そのため、吸気量偏差Ｅｑの減衰速度を回転数偏差Ｅｎの減衰速度よりも速めると、両者の制御が互いに干渉してエンジン回転数を不安定にするおそれがある。したがって、吸気量偏差Ｅｑの減衰速度を、回転数偏差Ｅｎの減衰速度よりも遅くするように、両者の設定パラメータを調整する。
【０２４１】
ここで、吸気量制御に関連する設定パラメータｐｏｌｅ／ｉ、および回転数制御に関連する設定パラメータｐｏｌｅ／ｉｇについて、−１＜ｐｏｌｅ／ｉ＜０および−１＜ｐｏｌｅ／ｉｇ＜０を満たすよう設定される。ステップＳ１７７において、設定パラメータｐｏｌｅ／ｉが、設定パラメータｐｏｌｅ／ｉｇから所定量ΔＰＯＬＥ／ＩＧ（＞０）を引いた値以上ならば、吸気量制御に関連する設定パラメータｐｏｌｅ／ｉの値を、“ｐｏｌｅ／ｉｇ−ΔＰＯＬＥ／ＩＧ”に設定し直す（Ｓ１７８）。
【０２４２】
ステップＳ１７９において、設定パラメータｐｏｌｅ／ｉの値を“−１”と比較する。設定パラメータｐｏｌｅ／ｉの値が−１以下ならば、該設定パラメータｐｏｌｅ／ｉの値を強制的に−１にセットし直す（Ｓ１８０）。
【０２４３】
ステップＳ１８１において、吸気量制御における切換関数σ１を、前述の式（６）に表されるように設定し、切換関数σ１の値を求める。ステップＳ１８２に進み、到達則入力Θｒｃｈおよび適応則入力Θａｄｐを、前述の式（１０）および（１１）に従ってそれぞれ算出する。ステップＳ１８３において、到達則入力Θｒｃｈと適応則入力Θａｄｐを加算し、補正量ｉ／ｓｌｄを算出する。
【０２４４】
点火時期算出ルーチン　
図２２は、図１８のステップ１０６で実行される、点火時期ｉｇｌｏｇ算出ルーチンのフローチャートである。ステップＳ２０１において、点火時期の基本値ｉｇｂａｓｅを求める。基本値ｉｇｂａｓｅは、たとえば回転数Ｎｅ、吸気圧Ｐｂ、エンジン温度Ｔｗおよび吸気温Ｔａ等から、予め記憶されたテーブルおよび演算式に基づいて求めることができる。ステップＳ２０２において、点火時期の補正量ＤＩＧ算出ルーチン（図２３）を実行し、補正量ＤＩＧを算出する。
【０２４５】
ステップＳ２０３に進み、基本値ｉｇｂａｓｅに補正量ＤＩＧを加算し、点火時期ｉｇｌｏｇを算出する。ステップＳ２０４に進み、点火時期の遅角側の限界値ＩＧＬＧＧおよびしきい値ＩＧＸを求める。限界値ＩＧＬＧＧは、エンジン水温Ｔｗから、予め記憶されたテーブルを参照することによって求められる。限界値ＩＧＬＧＧは、該限界値以上の点火時期では、エンジン１の正常な運転を行うことができるよう設定される。具体的には、限界値ＩＧＬＧＧは、エンジン水温Ｔｗが通常の温度範囲にある場合は一定値であり、エンジン水温がかなり低い温度範囲にある場合は、該一定値よりも進角側の値になるよう設定される。また、しきい値ＩＧＸは、限界値ＩＧＬＧＧに、予め決められた値を加算した値に設定される。
【０２４６】
ステップＳ２０５に進み、ステップＳ２０３で求めた点火時期ｉｇｌｏｇと、しきい値ＩＧＸを比較する。点火時期ｉｇｌｏｇがしきい値ＩＧＸよりも進角側にあるとき、すなわちｉｇｌｏｇ≧ＩＧＸであるとき、点火時期フラグｆ／ｄｅｃをゼロにセットし、図２０のステップ１４６で実行される、点火時期を進角側に補正する処理を行わないようにする（Ｓ２０６）。点火時期ｉｇｌｏｇがしきい値ＩＧＸよりも遅角側にあるとき、すなわちｉｇｌｏｇ＜ＩＧＸであるとき、フラグｆ／ｄｅｃに１をセットし、図２０のステップ１４６で実行される処理を実行するようにする（Ｓ２０７）。
【０２４７】
ステップＳ２０８に進み、学習演算終了フラグｆ／ｆｌｒｎｅｎｄの値を調べる。フラグｆ／ｆｌｒｎｅｎｄがゼロならば、現在のＦＩＲＥ経過時間ｔ／ｆｉｒｅの値を、学習終了時刻ｔ／ｋｉｌに保持する（Ｓ２０９）。さらに、基本学習補正係数ｖｐｓｋｉｓｌｄの算出を終了するため、フラグｆ／ｆｌｒｎｅｎｄの値を１にセットする（Ｓ２１０）。基本学習補正係数ｖｐｓｋｉｓｌｄの算出を終了するのは、フラグｆ／ｄｅｃが１にセットされた場合は、バイパス開度の補正量ｉ／ｓｌｄの算出が行われないからである（図２０のステップＳ１４５およびＳ１４６参照）
ステップＳ２１１に進み、点火時期ｉｇｌｏｇと、限界値ＩＧＬＧＧを比較する。点火時期ｉｇｌｏｇが遅角側の限界値ＩＧＬＧＧより小さければ、点火時期ｉｇｌｏｇが限界値ＩＧＬＧＧを超えて遅角側の値を持つことを示す。この場合、点火時期ｉｇｌｏｇに、強制的に限界値ＩＧＬＧＧをセットする（Ｓ２１２）。さらに、回転数制御の切換関数σ２の積算値ＳＵＭＳＧＭＦの値を、前回のサイクルで求めた積算値に戻す。これは、点火時期ｉｇｌｏｇに限界値ＩＧＬＧＧをセットした状態で補正量ＤＩＧの算出を継続して行うと、積算値ＳＵＭＳＧＭＦの値が過剰に大きくなり、適応則入力の値の信頼性が低下するからである。
【０２４８】
図２３は、図２２のステップＳ２０２で実行される、点火時期の補正量ＤＩＧを算出する処理を示すフローチャートである。ステップＳ２３１において、ＦＩＲＥ許可フラグｆ／ｆｉｒｅｏｎを調べ、ＦＩＲＥモードが動作中かどうか判断する。フラグｆ／ｆｉｒｅｏｎの値が１ならば、動作モードがＦＩＲＥモードであることを示す。ステップＳ２３２に進み、回転数制御許可フラグｆ／ｎｅｆｂを調べる。フラグｆ／ｎｅｆｂがゼロならば、回転数制御を行うべき状態にないので、回転数制御の経過時間Δｔ／ｎｆｂをゼロにリセットする（Ｓ２３３）。回転数制御許可フラグｆ／ｎｅｆｂは、図１８のステップＳ１０２の始動モード処理においてゼロに初期化されているフラグである。
【０２４９】
ステップＳ２３４に進み、今回のサイクルにおける目標回転数ｎｅ／ｆｉｒｅ（ｋ）を、式（４６）に従い求める。
【０２５０】
【数４６】
2004076716.tif 000048
【０２５１】
ここで、Ｋ／ＮＥは、目標回転数ｎｅ／ｆｉｒｅの時間的な減少の傾きを規定する一定値（＞０）である。式（４６）の右辺の演算結果が、アイドリング運転用に設定される最終目標回転数ＮＯＢＪを下回る場合（すなわち、Δｔ／ｎｆｂ＞ＮＥＦＳＬＤＳ／Ｋ／ＮＥの場合）には、目標回転数ｎｅ／ｆｉｒｅを最終目標回転数ＮＯＢＪに固定する。
【０２５２】
式（４６）に示されるように、目標回転数ｎｅ／ｆｉｒｅは、回転数制御を開始してから、最終目標回転数ＮＯＢＪに向かって直線的に徐々に減少し、最終目標回転数ＮＯＢＪに達した後は、該最終目標回転数ＮＯＢＪに維持される。
【０２５３】
また、この実施例においては、１サイクル（すなわち１ＴＤＣ）が回転数Ｎｅに反比例するので、１サイクルの時間ΔＴは１／Ｎｅで表される。よって、次回のサイクルの回転数制御経過時間は、該サイクル時間ΔＴを、今回のサイクルの回転数制御経過時間Δｔ／ｎｆｂに加算して求められる。こうして、次回のサイクルにおける目標回転数ｎｅ／ｆｉｒｅ（ｋ＋１）は、式（４７）のように算出される。
【０２５４】
【数４７】
2004076716.tif 000049
【０２５５】
なお、ステップＳ２３３において回転数制御経過時間Δｔ／ｎｆｂがゼロに設定されている間は、今回のサイクルにおける目標回転数ｎｅ／ｆｉｒｅ（ｋ）は、前述の設定回転数（ＮＯＢＪ＋ＮＥＦＳＬＤＳ）となる。
【０２５６】
ステップＳ２３５に進み、現在の実回転数Ｎｅが、現在の目標回転数ｎｅ／ｆｉｒｅ（ｋ）以上になったかどうか判断する。また、ステップＳ２３６において、ＦＩＲＥ経過時間ｔ／ｆｉｒｅが、所定値ＴＳＬＤＩＧＳＴ以上になったかどうか判断する。ステップＳ２３５またはＳ２３６の判断のいずれかがＹＥＳのとき、回転数制御許可フラグｆ／ｎｅｆｂに１をセットし、回転数制御が実行されるようにする（Ｓ２３７）。ステップＳ２３５およびＳ２３６の両方の判断がＮＯのとき、フラグｆ／ｎｅｆｂはゼロに維持される。フラグｆ／ｎｅｆｂは、値１がセットされると、そのＦＩＲＥモード中にゼロにリセットされることはない。
【０２５７】
ステップＳ２３８に進み、回転数偏差Ｅｎ（ｋ）を、式（４８）に従い算出する。
【０２５８】
【数４８】
2004076716.tif 000050
【０２５９】
ステップＳ２３９に進み、ＦＩＲＥ中断フラグｆ／ｆｐａｕｓｅの値を調べる。値がゼロならば、ＦＩＲＥモードの中断動作が行われていない状態を示し、値が１ならば、ＦＩＲＥモードの中断動作が行われている状態を示す。ステップＳ２４０において、回転数制御許可フラグｆ／ｎｅｆｂの値を調べる。値が１ならば、回転数制御が実行される状態を示し、値がゼロならば、回転数制御が実行されない状態を示す。
【０２６０】
フラグｆ／ｎｅｆｂの値がゼロならば、補正量ＤＩＧ（ｋ）にゼロをセットし（Ｓ２４１）、値が１ならば、補正量ＤＩＧ（ｋ）を算出するルーチン（図２４）を実行する（Ｓ２４２）。ステップＳ２４３において、ステップＳ２４２において求められた補正量ＤＩＧ（ｋ）に対し、予め決められた上限値および下限値でリミット処理を行う。
【０２６１】
ステップＳ２３９で、ＦＩＲＥ中断フラグｆ／ｆｐａｕｓｅの値が１ならば、回転数制御を中断する処理を行うため、ステップＳ２４５に進む。ステップＳ２４５において、点火時期ｉｇｌｏｇを基本値ｉｇｂａｓｅに徐々に戻すため、点火時期ｉｇｌｏｇに対するサイクル毎の戻し量ｄｅｃ／ｉｇ（＞０）を算出する。戻し量ｄｅｃ／ｉｇは、スロットル弁の開度に比例する値が設定される。中断動作は、アクセルペダルが操作された場合等に実施されるので、エンジン１の動作性能を確保するために点火時期をなるべく速やかに通常の点火時期（すなわち、基本値ｉｇｂａｓｅ）に戻すのが好ましい。したがって、スロットル弁の開度に応じて点火時期の戻し量を設定する。また、ステップＳ２３１において、ＦＩＲＥ許可フラグｆ／ｆｉｒｅｏｎの値がゼロでＦＩＲＥモードの動作が行われない状態のとき、戻し量ｄｅｃ／ｉｇには所定値がセットされる（Ｓ２４４）。
【０２６２】
ステップＳ２４６において、現在の補正量ＤＩＧの値（これは、前回のサイクルで求められた補正量ＤＩＧ（ｋ−１）である）が、ゼロより小さいかどうか、すなわち遅角側の値であるかどうか判断する。遅角側の値であるならば、前回のサイクルで求めた補正量ＤＩＧ（ｋ−１）に戻し量ｄｅｃ／ｉｇを加算して、今回のサイクルの補正量ＤＩＧ（ｋ）を求める（Ｓ２４７）。このとき、補正量ＤＩＧ（ｋ）の上限値をゼロとし、算出された補正量ＤＩＧ（ｋ）の値がゼロより大きい場合には、該補正量は強制的にゼロにセットされるのが好ましい。
【０２６３】
ステップＳ２４６において、現在の補正量ＤＩＧの値がゼロ以上ならば、ＦＩＲＥ許可フラグｆ／ｆｉｒｅｏｎの値を調べる（Ｓ２４８）。フラグの値が１ならば、ＦＩＲＥモードが中断されていることを示す。この場合、今回のサイクルにおける補正量ＤＩＧ（ｋ）にゼロをセットする（Ｓ２５０）。フラグの値がゼロならば、ＦＩＲＥモードの終了状態を示すので、ＦＩＲＥ中断フラグｆ／ｆｐａｕｓｅ、回転数制御許可フラグｆ／ｎｅｆｂをゼロにリセットする。また、補正量ＤＩＧ（ｋ）、切換関数σ２の値、およびその積算値ＳＵＭＳＧＭＦの値をゼロに初期化する（Ｓ２４９）。上記の第１の実施例に従う回転数制御の場合には、等価制御入力Ｕｅｑ、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐの値もゼロに初期化する。
【０２６４】
図２４は、図２３のステップＳ２４２で実行される、今回のサイクルにおける補正量ＤＩＧ（ｋ）を算出する処理の詳細を示すフローチャートである。図２４に示されるプロセスは、図１０に示される第１の実施例に従う回転数制御に基づいている。
【０２６５】
ステップＳ２６１において、点火時期の現在の値ｉｇｌｏｇ（ｋ−１）（これは、前回のサイクルで算出された点火時期である）から、予め記憶されたテーブルを参照して、基本値ｐｏｌｅ／ｉｇｔｂｌを求める。このテーブルの一例を図２５に示す。図に示されるように、基本値ｐｏｌｅ／ｉｇｔｂｌは、点火時期ｉｇｌｏｇが遅角側にあるほど、その絶対値｜ｐｏｌｅ／ｉｇｔｂｌ｜が大きくなるよう設定されている（ただし、−１＜ｐｏｌｅ／ｉｇｔｂｌ＜０である）。これは、点火時期が遅角側にあるほど、点火時期の変化に対する回転数の変化が大きくなるので、回転数偏差の減衰速度を遅くするためである。また、基本値ｐｏｌｅ／ｉｇｔｂｌにより規定される回転数偏差Ｅｎの減衰速度は、吸気量制御の基本値ｐｏｌｅ／ｉｔｂｌに規定される吸気量偏差Ｅｑの減衰速度よりも速くなるよう設定される。
【０２６６】
ステップＳ２６２に進み、回転数制御の経過時間Δｔ／ｎｆｂから、予め記憶されたテーブルを参照して、補正係数ｋｉｇｔを求める。補正係数ｋｉｇｔは、回転数制御の初期段階において回転数偏差Ｅｎの減衰速度を遅くするよう基本値ｐｏｌｅ／ｉｇｔｂｌを補正する係数である。この補正により、回転数制御を開始した際に点火時期を急変させないようにし、エンジン１の燃焼状態が悪化するのを防ぐ。
【０２６７】
このテーブルの一例を図２６に示す。図に示されるように、回転数制御の初期段階においては、補正係数ｋｉｇｔは、基本値ｐｏｌｅ／ｉｇｔｂｌの絶対値を若干大きくする値（＞１）に設定されている。回転数制御の経過時間Δｔ／ｎｆｂが所定値に達した後は、補正係数ｋｉｇｔは１に保持され、基本値ｐｏｌｅ／ｉｇｔｂｌを補正しないようにする。
【０２６８】
ステップＳ２６３において、回転数Ｎｅから、予め記憶されたテーブルを参照し、補正係数ｋｉｇｎｅを求める。補正係数ｋｉｇｎｅは、回転数偏差Ｅｎの減衰速度を遅くして、点火時期ｉｇｌｏｇを過大に遅角側にするような補正量ＤＩＧが求められるのを回避するための係数である。このような状況は、ＦＩＲＥモードの中断動作が解除されて回転数制御が再開されるときなど、エンジン回転数Ｎｅが目標回転数ｎｅ／ｆｉｒｅから大きく離れているときに起こる。補正係数ｋｉｇｎｅを考慮することにより、点火時期ｉｇｌｏｇが急激に遅角側になってエンジン１の燃焼状態を悪化させることを防ぐことができる。
【０２６９】
このテーブルの一例を図２７に示す。図に示されるように、補正係数ｋｉｇｎｅは、回転数Ｎｅが高いほど、すなわち回転数Ｎｅが目標回転数ｎｅ／ｆｉｒｅから離れているほど、基本値ｐｏｌｅ／ｉｇｔｂｌの絶対値を大きくするよう設定されている（ｋｉｇｎｅ＞１）。
【０２７０】
ステップＳ２６４に進み、補正係数ｋｉｇｎｅに基づいて、補正係数ｋｉｇｎｅｆを式（４９）に従い算出する。
【０２７１】
【数４９】
2004076716.tif 000051
【０２７２】
ここで、ｃｎｔ／ｉｇｖｐｌは、ＦＩＲＥモードの中断動作中に常時設定されるダウンタイマの値であり、ＸＣＮＴは、該ダウンタイマに設定される初期値である（図１９のステップＳ１２９）。中断動作が解除されると回転数制御が再開され、ダウンタイマが起動される。所定期間ＸＣＮＴの間だけ、ステップＳ２６３で求めた補正係数を、式（４９）に従って修正する。言い換えると、所定期間ＸＣＮＴが経過するまでは、補正係数ｋｉｇｎｅｆは回転数Ｎｅに応じた値（≧１）を取るが、所定期間ＸＣＮＴを経過した後は、ｋｉｇｎｅｆは１に設定される。こうして、回転数に応じた補正が、回転数制御が開始されてから所定期間の間だけ行われる。
【０２７３】
ステップＳ２６５において、基本値ｐｏｌｅ／ｉｇｔｂｌに、補正係数ｋｉｇｔおよびｋｉｇｎｅｆを乗算し、回転数制御の設定パラメータｐｏｌｅ／ｉｇを算出する。
【０２７４】
【数５０】
2004076716.tif 000052
【０２７５】
ステップＳ２６６において、図１０を参照して説明した低域フィルタの内部変数Ｚおよびフィルタリングされた回転数偏差ＮＥｌｏｗを算出するルーチン（図２８）を実行する。ステップＳ２６６は、ステップＳ２６１〜Ｓ２６５の設定パラメータｐｏｌｅ／ｉｇ算出処理と並行して実行してもよい。
【０２７６】
ステップＳ２６７において、切換関数σ２を算出するルーチン（図２９）を実行する。ステップＳ２６８において、切換関数σ２の積算値ＳＵＭＳＧＭＦを算出するルーチン（図３０）を実行する。これは、前述したように、適応則入力Ｕａｄｐを求めるために算出される。
【０２７７】
ステップＳ２６９〜Ｓ２７１において、等価制御入力Ｕｅｑ、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐをそれぞれ算出する。これらのステップは、並列に実行してもよい。ステップＳ２７２において、ステップＳ２６９〜Ｓ２７１で求めた等価制御入力Ｕｅｑ、到達則入力Ｕｒｃｈおよび適応則入力Ｕａｄｐの和を算出し、点火時期補正量ＤＩＧを求める。
【０２７８】
図２８は、図２４のステップＳ２６６で実行される、低域フィルタリングのルーチンを示す。ステップＳ３０１において、今回のサイクルにおけるフィルタの内部変数Ｚ（ｋ）を求める。具体的には、前述の式（１４）に示されるように、前回のサイクルで算出された内部変数Ｚ（ｋ−１）と、前々回のサイクルにおいて算出された回転数偏差Ｅｎ（ｋ−２）に基づいて、今回のサイクルにおける内部変数Ｚ（ｋ）を算出する。
【０２７９】
ステップＳ３０２において、前述の式（１５）に示されるように、今回のサイクルにおける内部変数Ｚ（ｋ）と、前回のサイクルにおける回転数偏差Ｅｎ（ｋ−１）に基づいて、フィルタリングされた回転数偏差ＮＥｌｏｗ（ｋ−１）を算出する。
【０２８０】
図２９は、図２４のステップＳ２６７で実行される切換関数算出ルーチンを示す。ステップＳ３２１において、前述の式（１６）に示されるように、図２８のステップＳ３０２で算出されたフィルタリングされた回転数偏差ＮＥｌｏｗ（ｎ−１）に、図２４のステップＳ２６５で求められた設定パラメータｐｏｌｅ／ｉｇを掛けたものと、今回のサイクルにおける回転数偏差Ｅｎ（ｋ）とを加算し、一時変数ｓｉｇｍｆ＿ｔｍｐに格納する。
【０２８１】
ステップＳ３２２〜Ｓ３２６は、切換関数σ２のリミット処理を示す。具体的には、一時変数ｓｉｇｍｆ＿ｔｍｐが、予め決められた最大値ＳＩＧＭＦＨよりも大きければ、切換関数σ２の値に該最大値を設定する（Ｓ３２３）。一時変数ｓｉｇｍｆ＿ｔｍｐが、予め決められた最小値ＳＩＧＭＦＬよりも小さければ、切換関数σ２の値に該最小値を設定する（Ｓ３２５）。一時変数ｓｉｇｍｆ＿ｔｍｐが、最大値ＳＩＧＭＦＨと最小値ＳＩＧＭＦＬの間にあるならば、一時変数ｓｉｇｍｆ＿ｔｍｐの値を切換関数σ２に代入する（Ｓ３２６）。
【０２８２】
図３０は、図２４のステップＳ２６８で実行される切換関数の積算値ＳＵＭＳＧＭＦの算出ルーチンを示す。ステップＳ３４１において、前回のサイクルで算出された積算値ＳＵＭＳＧＭＦ（ｋ−１）の値が予め決められたリミット値に達しているかどうかを判断する。達していたならば、ステップＳ３４２に進み、前回のサイクルで算出された積算値の値ＳＵＭＳＧＭＦ　（ｋ−１）に、予め決められた値ＳＵＭＳＧＭＦＬをセットする。これは、積算値の値が過剰に大きくなると、適応則入力の値の信頼性が低下するおそれがあるからである。
【０２８３】
ステップＳ３４３において、前回のサイクルで算出された積算値ＳＵＭＳＧＭＦに、今回のサイクルで算出された切換関数σ２の値を加算し、それを一時変数ｓｓｉｇｍｆ＿ｔｍｐに入れる。ステップＳ３４４〜Ｓ３４８は、積算値のリミット処理である。具体的には、一時変数ｓｓｉｇｍｆ＿ｔｍｐが、予め決められた最大値ＳＵＭＳＦＨよりも大きければ、積算値ＳＵＭＳＧＭＦに該最大値を設定する（Ｓ３４５）。一時変数ｓｓｉｇｍｆ＿ｔｍｐが、予め決められた最小値ＳＵＭＳＦＬよりも小さければ、積算値ＳＵＭＳＧＭＦに該最小値を設定する（Ｓ３４７）。一時変数ｓｓｉｇｍｆ＿ｔｍｐが、最大値ＳＵＭＳＦＨと最小値ＳＵＭＳＦＬの間にあるならば、一時変数ｓｓｉｇｍｆ＿ｔｍｐの値を切換関数σ２の積算値にセットする（Ｓ３４８）。
【０２８４】
図３１は、図２４のステップＳ２６９で実行される、等価制御入力算出ルーチンを示す。ステップＳ３６１において、前述した式（２２）に示されるＺ（ｋ）項にかかる係数ＫＵｅｑ１を計算する。ステップＳ３６２において、式（２２）の今回のサイクルにおける回転数偏差Ｅｎ（ｋ）項にかかる係数ＫＵｅｑ２を計算する。ステップＳ３６３において、式（２２）の前回のサイクルにおける回転数偏差Ｅｎ（ｋ−１）項にかかる係数ＫＵｅｑ３を計算する。
【０２８５】
ステップＳ３６４において、ステップＳ３６１〜３６３で求められた係数を使用して、式（２２）に基づき、等価制御Ｕｅｑを求める。ここで、ステップ３６１〜３６３は、並列に実行してもよい。
【０２８６】
図３２は、図２４のステップＳ２７０で実行される、到達則入力算出ルーチンを示す。ステップＳ３８１において、前述した式（２３）に従い、切換関数σ２にフィードバックゲインＫｒｃｈを乗算し、それを一時変数ｕｒｃｈ＿ｔｍｐに代入する。ステップＳ３８２〜Ｓ３８６は、到達則入力のリミット処理である。具体的には、一時変数ｕｒｃｈ＿ｔｍｐが、予め決められた最大値ＵＲＣＨＦＨよりも大きければ、到達則入力Ｕｒｃｈ該最大値を設定する（Ｓ３８３）。一時変数ｕｒｃｈ＿ｔｍｐが、予め決められた最小値ＵＲＣＨＦＬよりも小さければ、到達則入力Ｕｒｃｈに該最小値を設定する（Ｓ３８５）。一時変数ｕｒｃｈ＿ｔｍｐが、最大値ＵＲＣＨＦＨと最小値ＵＲＣＨＦＬの間にあるならば、一時変数ｕｒｃｈ＿ｔｍｐの値を到達則入力Ｕｒｃｈに代入する（Ｓ３８６）。
【０２８７】
図３３は、図２４のステップＳ２７１で実行される、適応則入力算出ルーチンを示す。ステップＳ３９１において、前述した式（２４）に従い、切換関数σ２の積算値ＳＵＭＳＧＭＦにフィードバックゲインＫａｄｐを乗算し、適応則入力Ｕａｄｐを求める。
【０２８８】
図３４は、図２３のステップＳ２４２で実行される、今回のサイクルにおける補正量ＤＩＧ（ｋ）を算出する処理の詳細を示すフローチャートである。図３４に示されるプロセスは、図１５に示される第２の実施例に基づいている。
【０２８９】
ステップＳ２６１〜Ｓ２６８は、図２４と同じである。ステップＳ３６９において、式（３５）に従い、補正項Ｋ１〜Ｋ４を用いて、制御入力である点火時期補正量ＤＩＧを求める。
【０２９０】
上記の実施形態は、吸気量制御において、制御対象を離散系でモデル化した。しかしながら、連続系でモデル化してもよい。さらに、上記の実施形態では、吸気量制御および回転数制御の制御態様を２次の自己回帰モデルで表現したが、より高次の自己回帰モデルで表現することもできる。この場合でも、切換関数の設定パラメータによって制御量の減衰速度を指定することができる。
【０２９１】
また、本発明に従う吸気量制御は、エンジンの他の運転パラメータを目標値に収束させるために吸入空気量を操作する場合について適用されることができる。同様に、本発明に従う回転数制御は、エンジンの他の運転パラメータを目標値に収束させるために回転数を操作する場合について適用されることができる。
【０２９２】
さらに、本発明に従う周波数整形および線形変換型周波数整形応答指定型制御は、離散時間系にてモデル化された任意のプラントを制御するのに適用されることができる。上記の実施形態の説明では、低域フィルタを用いている。しかしながら、本発明に従う周波数整形および線形変換型周波数整形応答指定型制御は、高域フィルタおよび帯域フィルタのような他のフィルタを用いて周波数整形を行うよう考慮された応答指定型制御にも応用することができる。
【０２９３】
線形変換型周波数整形応答指定制御において、制御入力は、補正項として、補正項Ｋ１からＫ４のうちの任意のものを含むことができる。代替的に、制御入力に、他の制御量についての補正項を含むようにしてもよい。また、補正項を決定するために、最適レギュレータとは異なる他の適切な方法を用いてもよい。
【０２９４】
本発明は、クランク軸を鉛直方向とした船外機などのような船舶推進機用エンジンにも適用が可能である。
【図面の簡単な説明】
【図１】この発明の一実施例に従う、内燃機関およびその制御装置を概略的に示す図。
【図２】この発明の一実施例に従う、内燃機関の始動時における動作態様を示す図。
【図３】この発明の一実施例に従う、制御システムの全体的な機能ブロック図。
【図４】この発明の一実施例に従う、吸気量制御の制御ブロック図。
【図５】この発明の一実施例に従う、スライディングモード制御における切換線を概略的に示す図。
【図６】この発明の一実施例に従う、スライディングモード制御における切換関数の設定パラメータに依存する制御量の応答特性を示す図。
【図７】この発明の一実施例に従う、吸気量制御によって実現される動作態様を概略的に示す図。
【図８】この発明の一実施例に従う、回転数制御の制御ブロック図。
【図９】この発明の一実施例に従う、モデル化された制御対象の実際の制御対象に対する追従特性を示す図。
【図１０】この発明の一実施例に従う、回転数制御の制御器のブロック図。
【図１１】この発明の一実施例に従う、低域フィルタの周波数特性を示す図。
【図１２】この発明の一実施例に従う、回転数制御による回転数の収束態様を概略的に示す図。
【図１３】この発明の一実施例に従う、回転数制御の周波数整形スライディングモードコントローラの機能ブロック図。
【図１４】回転数制御を（ａ）ＰＩ制御、（ｂ）従来のスライディングモード制御、および（ｃ）本の発明の一実施例に従う周波数整形スライディングモードで実施した場合の回転数の変動を示す図。
【図１５】この発明の他の実施例に従う、回転数制御の制御器のブロック図。
【図１６】この発明の一実施例に従う、線形変換型周波数整形スライディングモードによる、制御量の収束挙動を示す図。
【図１７】この発明の一実施例に従う、線形変換型周波数整形スライディングモードによる、フィルタの内部変数の収束挙動を示す図。
【図１８】この発明の一実施例に従う、制御システムのメインルーチンを示す図。
【図１９】この発明の一実施例に従う、動作モード判定ルーチンを示す図。
【図２０】この発明の一実施例に従う、バイパス開度θＣＭＤ算出ルーチンを示すフローチャート。
【図２１】この発明の一実施例に従う、バイパス開度の補正量ｉ／ｓｌｄを算出するルーチンを示すフローチャート。
【図２２】この発明の一実施例に従う、点火時期ｉｇｌｏｇ算出ルーチンを示すフローチャート。
【図２３】この発明の一実施例に従う、点火時期の補正量ＤＩＧを算出するルーチンを示すフローチャート。
【図２４】この発明の一実施例に従う、点火時期の補正量ＤＩＧの算出処理を詳細に示すフローチャート。
【図２５】この発明の一実施例に従う、回転数制御の切換関数の設定パラメータの基本値ｐｏｌｅ／ｉｇを求めるためのテーブルを示す図。
【図２６】この発明の一実施例に従う、回転数制御の切換関数の設定パラメータの基本値ｐｏｌｅ／ｉｇを補正する係数ｋｉｇｔを求めるためのテーブルを示す図。
【図２７】この発明の一実施例に従う、回転数制御の切換関数の設定パラメータの基本値ｐｏｌｅ／ｉｇを補正する係数ｋｉｇｎｅを求めるためのテーブルを示す図。
【図２８】この発明の一実施例に従う、回転数制御の低域フィルタリングを示すフローチャート。
【図２９】この発明の一実施例に従う、回転数制御の切換関数の算出を示すフローチャート。
【図３０】この発明の一実施例に従う、回転数制御の切換関数の積算値算出を示すフローチャート。
【図３１】この発明の一実施例に従う、回転数制御の切換関数の等価制御入力の算出を示すフローチャート。
【図３２】この発明の一実施例に従う、回転数制御の切換関数の到達則入力の算出を示すフローチャート。
【図３３】この発明の一実施例に従う、回転数制御の切換関数の適応則入力の算出を示すフローチャート。
【図３４】この発明の他の実施例に従う、点火時期の補正量ＤＩＧの算出処理を詳細に示すフローチャート。
【図３５】エンジンと運転室内の間の振動音伝達系において励起される共振の一例を示す図。
【符号の説明】
１　エンジン
５　ＥＣＵ
６　燃料噴射弁
２２　バイパス弁
２３バイパス弁アクチュエータ
２４　燃料噴射弁アクチュエータ
２５　イグナイタ
２６　点火プラグ
８１　低域フィルタ
８２　周波数整形スライディングモードコントローラ
１８２　線形変換型周波数整形スライディングモードコントローラ
【図１】
2004076716.tif 000053
【図２】
2004076716.tif 000054
【図３】
2004076716.tif 000055
【図４】
2004076716.tif 000056
【図５】
2004076716.tif 000057
【図６】
2004076716.tif 000058
【図７】
2004076716.tif 000059
【図８】
2004076716.tif 000060
【図９】
2004076716.tif 000061
【図１０】
2004076716.tif 000062
【図１１】
2004076716.tif 000063
【図１２】
2004076716.tif 000064
【図１３】
2004076716.tif 000065
【図１４】
2004076716.tif 000066
【図１５】
2004076716.tif 000067
【図１６】
2004076716.tif 000068
【図１７】
2004076716.tif 000069
【図１８】
2004076716.tif 000070
【図１９】
2004076716.tif 000071
【図２０】
2004076716.tif 000072
【図２１】
2004076716.tif 000073
【図２２】
2004076716.tif 000074
【図２３】
2004076716.tif 000075
【図２４】
2004076716.tif 000076
【図２５】
2004076716.tif 000077
【図２６】
2004076716.tif 000078
【図２７】
2004076716.tif 000079
【図２８】
2004076716.tif 000080
【図２９】
2004076716.tif 000081
【図３０】
2004076716.tif 000082
【図３１】
2004076716.tif 000083
【図３２】
2004076716.tif 000084
【図３３】
2004076716.tif 000085
【図３４】
2004076716.tif 000086
【図３５】
2004076716.tif 000087