(57)【要約】  排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得する。そして、燃料噴射量の設定値及びエンジン回転数の設定値に対応する排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値、又はエンジンの新気量制御系による、新気量の測定値に応じた排気循環器のバルブ開度の制御値及びエンジンの吸気圧制御系による、吸気圧の測定値に応じた可変ノズルターボのノズル開度の制御値に応じて、新気量制御系と吸気圧制御系と新気量制御系から吸気圧制御系への第１干渉補償系と吸気圧制御系から新気量制御系への第２干渉補償系と動作させるモードと、新気量制御系と吸気圧制御系とのうちいずれかを動作させるモードとに動的に切り替える。
2011077504.tif 000002
【特許請求の範囲】
【請求項１】
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に対応する前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値、又は前記エンジンの新気量制御系による、前記新気量の測定値に応じた前記排気循環器のバルブ開度の制御値及び前記エンジンの吸気圧制御系による、前記吸気圧の測定値に応じた前記可変ノズルターボのノズル開度の制御値に応じて、前記新気量制御系と、前記吸気圧制御系と、前記新気量制御系から前記吸気圧制御系への第１干渉補償系と、前記吸気圧制御系から前記新気量制御系への第２干渉補償系とを制御する制御ステップと、
をプロセッサに実行させ、
前記制御ステップが、
前記排気循環器のバルブ開度の基準値又は制御値が前記排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と前記可変ノズルターボのノズル開度の基準値又は制御値が前記可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、前記吸気圧制御系と前記新気量制御系と前記第１及び第２干渉補償系とを有効化するステップと、
前記第１の条件を満たすが前記第２の条件を満たさない場合には、前記新気量制御系並びに前記第１及び第２干渉補償系とを無効化又は出力調整を行い、前記吸気圧制御系を有効化するステップと、
前記第２の条件を満たすが前記第１の条件を満たさない場合には、前記吸気圧制御系並びに前記第１及び第２干渉補償系とを無効化又は出力調整を行い、前記新気量制御系を有効化するステップと、
を含むエンジン制御プログラム。
【請求項２】
前記吸気圧制御系と前記新気量制御系と前記第１及び第２干渉補償系とが、ゲイン要素を有しており、
前記制御ステップにおいて、有効化、無効化又は出力調整については、前記ゲイン要素に値を設定することで実施される
請求項１記載のエンジン制御プログラム。
【請求項３】
前記出力調整が、前記排気循環器のバルブ開度の基準値又は制御値若しくは前記可変ノズルターボのノズル開度の基準値又は制御値の関数であって０より大きく１未満の値を出力する関数の出力値で実施される
請求項１又は２記載のエンジン制御プログラム。
【請求項４】
前記関数が、一次関数又はシグモイド関数である
請求項３記載のエンジン制御プログラム。
【請求項５】
前記一次関数又はシグモイド関数が、前記ノズル又は前記バルブを開放する方向と閉鎖する方向で異なる値を出力するヒステリシス関数として定義される
請求項４記載のエンジン制御プログラム。
【請求項６】
前記制御ステップが、
前記第１の条件と前記第２の条件とも満たす場合には、前記吸気圧制御系と前記新気量制御系と前記第１及び第２干渉補償系とを無効化するステップ
をさらに含む請求項１乃至５のいずれか１つ記載のエンジン制御プログラム。
【請求項７】
排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、前記エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、
前記燃料噴射量の設定値及び前記エンジン回転数の設定値に対応する前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値、又は前記エンジンの新気量制御系による、前記新気量の測定値に応じた前記排気循環器のバルブ開度の制御値及び前記エンジンの吸気圧制御系による、前記吸気圧の測定値に応じた前記可変ノズルターボのノズル開度の制御値に応じて、前記新気量制御系と、前記吸気圧制御系と、前記新気量制御系から前記吸気圧制御系への第１干渉補償系と、前記吸気圧制御系から前記新気量制御系への第２干渉補償系とを制御する制御ステップと、
を含み、
前記制御ステップが、
前記排気循環器のバルブ開度の基準値又は制御値が前記排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と前記可変ノズルターボのノズル開度の基準値又は制御値が前記可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、前記吸気圧制御系と前記新気量制御系と前記第１及び第２干渉補償系とを有効化するステップと、
前記第１の条件を満たすが前記第２の条件を満たさない場合には、前記新気量制御系並びに前記第１及び第２干渉補償系とを無効化又は出力調整を行い、前記吸気圧制御系を有効化するステップと、
前記第２の条件を満たすが前記第１の条件を満たさない場合には、前記吸気圧制御系並びに前記第１及び第２干渉補償系とを無効化又は出力調整を行い、前記新気量制御系を有効化するステップと、
を含むエンジン制御方法。
【請求項８】
排気循環器及び可変ノズルターボを有するエンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部と、
前記エンジンに対する燃料噴射量の設定値及びエンジン回転数の設定値に対応する前記排気循環器のバルブ開度の基準値及び前記可変ノズルターボのノズル開度の基準値、又は前記エンジンの新気量制御系による、前記新気量の測定値に応じた前記排気循環器のバルブ開度の制御値及び前記エンジンの吸気圧制御系による、前記吸気圧の測定値に応じた前記可変ノズルターボのノズル開度の制御値に応じて、前記新気量制御系と、前記吸気圧制御系と、前記新気量制御系から前記吸気圧制御系への第１干渉補償系と、前記吸気圧制御系から前記新気量制御系への第２干渉補償系とを制御する制御部と、
を有し、
前記制御部が、
前記排気循環器のバルブ開度の基準値又は制御値が前記排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と前記可変ノズルターボのノズル開度の基準値又は制御値が前記可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、前記吸気圧制御系と前記新気量制御系と前記第１及び第２干渉補償系とを有効化し、
前記第１の条件を満たすが前記第２の条件を満たさない場合には、前記新気量制御系並びに前記第１及び第２干渉補償系とを無効化又は出力調整を行い、前記吸気圧制御系を有効化し、
前記第２の条件を満たすが前記第１の条件を満たさない場合には、前記吸気圧制御系並びに前記第１及び第２干渉補償系とを無効化又は出力調整を行い、前記新気量制御系を有効化する
ことを特徴とするエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンの制御技術に関する。
【背景技術】
【０００２】
近年のエンジン（例えばディーゼルエンジン）においては、エミッションの低減及び燃費の向上を目的として、吸気制御系により新気量（ＭＡＦ：Mass Air Flow）及び吸気圧（ＭＡＰ：Manifold Air Pressure）が最適に制御されている。【０００３】
一般的に、ディーゼルエンジンの吸気制御系は、図１に示すように、吸気圧制御系と新気量制御系を含み、吸気圧と新気量は、互いに独立に制御されている。吸気圧制御系は、排気中のスス（ＰＭ：Particulate Matter）を低減するために、可変ノズルターボＶＮＴ（Variable Nozzle Turbo）のノズル径を制御して吸気圧を制御している。一方、新気量制御系は、排気中の窒素酸化物（ＮＯｘ）を低減するために、排気をシリンダ内に再循環させる排気循環器ＥＧＲ（Exhaust Gas Recirculation）のバルブ開度を制御して新気量を制御している。これらの制御系に対し、運転条件（例えば、燃料噴射量、エンジン回転数）に応じて、実験的に決められた最適な吸気圧及び新気量の目標値が計画器によって上記制御系に出力されると共に、実験的に決められたＶＮＴノズル開度の基準値及びＥＧＲバルブ開度の基準値もフィードフォワード値として、上記制御系に出力される。このように、従来、吸気圧制御系と新気量制御系は、独立に動作しており、これを単入力単出力（ＳＩＳＯ：Single Input Single Output）制御と呼ぶ。ＳＩＳＯ制御において、吸気圧制御系と新気量制御系とが互いに干渉する場合には、吸気圧と新気量とを同時に目標に追従させることが難しくなる。【０００４】
このため、図２に示すように、これら２つの制御系の干渉を補償する干渉補償部（すなわち、第１及び第２干渉補償部）を設けた協調制御系が考えられている。このような制御系を、多入力多出力（ＭＩＭＯ：Multi-Input Multi-Output）協調制御系と呼ぶ。このような協調制御系では、吸気圧制御系から新気量制御系への、第１干渉補償部による制御入力及び新気量制御系から吸気圧制御系への、第２干渉補償部による制御入力が、エンジンにおける両制御系間の干渉を補償する。このようなＭＩＭＯ協調制御系（以下、ＭＩＭＯ制御系と略記する。）を導入することによって、目標追従性を向上させることができるとされる。【０００５】
なお、ＥＧＲ制御系において、ＥＧＲバルブを全閉から開弁させるときに、オープン制御で目標開度に、傾き、ヒステリシス、時間遅れを付けて、チャタリングやオーバーシュートを起きにくくする技術は存在する。また、同じく高圧ＥＧＲと低圧ＥＧＲを併用する内燃機関で、フィードバック制御対象を高圧ＥＧＲと低圧ＥＧＲの切り替える際にヒステリシスを設けて、制御を安定させる技術も存在している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３６４１３号公報
【特許文献２】特開２００７−３１５３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
環境問題の観点からエミッションの低減が強く要請され、計画器において、積極的にＥＧＲやＶＮＴの全閉を利用した制御が提案されている。しかしながら、このようなＥＧＲやＶＮＴの全閉を利用したＭＩＭＯ制御系を採用すると、エミッション、特にＮＯｘが増加してしまうことが本願発明者により新たに検証された。【０００８】
従って、本技術の目的は、排気循環器及び可変ノズルターボを有するエンジンのエミッションを低減するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本エンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）燃料噴射量の設定値及びエンジン回転数の設定値に対応する排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値、又はエンジンの新気量制御系による、新気量の測定値に応じた排気循環器のバルブ開度の制御値及びエンジンの吸気圧制御系による、吸気圧の測定値に応じた可変ノズルターボのノズル開度の制御値に応じて、新気量制御系と吸気圧制御系と新気量制御系から吸気圧制御系への第１干渉補償系と吸気圧制御系から新気量制御系への第２干渉補償系とを制御する制御ステップとを含む。そして、制御ステップが、（Ｂ１）排気循環器のバルブ開度の基準値又は制御値が排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と可変ノズルターボのノズル開度の基準値又は制御値が可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、吸気圧制御系と新気量制御系と第１及び第２干渉補償系とを有効化するステップと、（Ｂ２）第１の条件を満たすが第２の条件を満たさない場合には、新気量制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、吸気圧制御系を有効化するステップと、（Ｂ３）第２の条件を満たすが第１の条件を満たさない場合には、吸気圧制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、新気量制御系を有効化するステップとを含む。
【図面の簡単な説明】
【００１０】
【図１】図１は、従来のエンジン制御装置のブロック線図を示す図である。
【図２】図２は、多入力多出力協調制御系の一例を示す図である。
【図３】図３は、エンジンの概要を表す図である。
【図４】図４は、従来技術の問題を説明するための図である。
【図５】図５は、従来技術の問題及び本技術の実施の形態の効果について説明するための図である。
【図６】図６は、制御モード分布図を表す図である。
【図７】図７は、領域Ｃにおけるブロック線図を表す図である。
【図８】図８は、領域Ｂにおけるブロック線図を表す図である。
【図９】図９は、領域Ｄにおけるブロック線図を表す図である。
【図１０】図１０は、実施の形態１の具体例１におけるブロック線図を表す図である。
【図１１】図１１は、領域Ａにおけるゲイン要素の設定例を示す図である。
【図１２】図１２は、領域Ｄにおけるゲイン要素の設定例を示す図である。
【図１３】図１３は、領域Ｃにおけるゲイン要素の設定例を示す図である。
【図１４】図１４は、領域Ｂにおけるゲイン要素の設定例を示す図である。
【図１５】図１５は、実施の形態１の具体例１における処理フローを示す図である。
【図１６】図１６は、実施の形態１の具体例２におけるブロック線図を表す図である。
【図１７】図１７は、領域Ａにおけるゲイン要素の設定例を示す図である。
【図１８】図１８は、領域Ｄにおけるゲイン要素の設定例を示す図である。
【図１９】図１９は、領域Ｃにおけるゲイン要素の設定例を示す図である。
【図２０】図２０は、領域Ｂにおけるゲイン要素の設定例を示す図である。
【図２１】図２１は、実施の形態１の具体例２における処理フローを示す図である。
【図２２】図２２は、新気量、吸気圧、ＥＧＲバルブ開度及びＶＮＴノズル開度の時間変化を表す図である。
【図２３】図２３は、ゲイン関数の一例を表す図である。
【図２４】図２４は、実施の形態２の具体例１における処理フローを示す図である。
【図２５】図２５は、実施の形態２の具体例２における処理フローを示す図である。
【図２６】図２６は、ゲイン関数にシグモイド関数を用いる例を示す図である。
【図２７】図２７は、シグモイド関数の例を示す図である。
【図２８】図２８は、実施の形態２の具体例３における処理フローを示す図である。
【図２９】図２９は、実施の形態２の具体例４における処理フローを示す図である。
【図３０】図３０は、ゲイン関数にヒステリシスを伴う一次関数を採用した場合の例を示す図である。
【図３１】図３１は、実施の形態２の具体例５における処理フローを示す図である。
【図３２】図３２は、実施の形態２の具体例５における処理フローを示す図である。
【図３３】図３３は、実施の形態２の具体例６における処理フローを示す図である。
【図３４】図３４は、実施の形態２の具体例６における処理フローを示す図である。
【図３５】図３５は、ゲイン関数にヒステリシスを伴うシグモイド関数を採用した場合の例を示す図である。
【図３６】図３６は、実施の形態２の具体例７における処理フローを示す図である。
【図３７】図３７は、実施の形態２の具体例７における処理フローを示す図である。
【図３８】図３８は、実施の形態２の具体例８における処理フローを示す図である。
【図３９】図３９は、実施の形態２の具体例８における処理フローを示す図である。
【図４０】図４０は、コンピュータの機能ブロック図である。
【図４１】図４１は、エンジン制御装置の機能ブロック図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図３に、本技術の実施の形態に係るエンジンの一例としてディーゼルエンジンを示す。エンジン本体１には、エンジン本体１からの排ガスを供給する排気循環器ＥＧＲと、排ガスの圧力にてタービンを回して新気（Fresh Air）を圧縮してエンジン本体１に供給する可変ノズルターボＶＮＴとが接続されている。可変ノズルターボＶＮＴのノズル開度を調整することによって、可変ノズルターボＶＮＴのタービンの回転が調整され、吸気圧（ＭＡＰ）センサで測定される吸気圧（ＭＡＰ）が調整される。一方、排気循環器ＥＧＲに設けられているＥＧＲバルブのバルブ開度を調整することによって、新気量（ＭＡＦ）センサで測定される新気量（ＭＡＦ）が調整される。
【００１２】
本実施の形態に係るエンジン制御装置１００には、ＭＡＰセンサからの吸気圧測定値と、ＭＡＦセンサからの新気量測定値と、外部から与えられる燃料噴射量の設定値と、同じく外部から与えられるエンジン回転数の設定値とが入力されるようになっている。また、エンジン制御装置１００からは、ＥＧＲバルブのバルブ開度がＥＧＲバルブに出力され、ＶＮＴノズルのノズル開度がＶＮＴノズルに出力されるようになっている。
【００１３】
上でも述べたように、環境問題の観点からエミッションの低減が強く要請され、計画器において、積極的にＥＧＲやＶＮＴの全閉を利用した制御が提案されている。しかしながら、ＭＩＭＯ制御系において全閉を利用しない制御（以下、ＭＩＭＯ制御（飽和なし））から全閉を利用する制御（以下、ＭＩＭＯ制御（飽和あり））に変更すると、エミッション、特にＮＯｘが増加してしまうという現象が観測された。
【００１４】
この原因を図４を用いて簡単に述べる。図４の左列がＭＩＭＯ制御（飽和なし）の場合における新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表す。また、図４の中央列がＭＩＭＯ制御（飽和あり）の場合における新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表す。さらに、図４の右列がＳＩＳＯ制御の場合における新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表す。なお、新気量及び吸気圧の波形図における実線は目標値、点線は実際の値を表す。
【００１５】
ここで注目すべきは、新気量及びＶＮＴノズル開度の時間変化であり、ＭＩＭＯ制御（飽和なし）では、ＶＮＴノズル開度は全閉になっていないが、ＭＩＭＯ制御（飽和あり）では、ＶＮＴノズル開度が全閉になっている部分がある。そして、新気量の時間変化を確認すると、ＭＩＭＯ制御（飽和なし）であればオーバーシュート（Ｏ／Ｓ）は小さいが、ＭＩＭＯ制御（飽和あり）になると大きなオーバーシュートが発生してしまう。この大きなオーバーシュートが、ＮＯｘの増大を引き起こしている。なお、以下にも示すが、エミッションのうちＰＭについてはＭＩＭＯ制御（飽和あり）は有効であり、その他の要素を考慮に入れると、ＭＩＭＯ制御（飽和あり）の方が総合的に良いことは分かっている。図示していないが、ＭＩＭＯ制御では、ＶＮＴ全開時新気量の時間変化を見ると、逆にアンダーシュート（Ｕ／Ｓ）が発生することも分かっている。
【００１６】
そこで本実施の形態では、部分的にＳＩＳＯ制御を導入する。すなわち、ＶＮＴノズル開度が全閉又はＥＧＲバルブ開度が全閉若しくは両方が全閉となる部分について、ＳＩＳＯ制御を導入する。ＳＩＳＯ制御では、図４右側の新気量の波形を見ても分かるようにオーバーシュートは小さくなっており、ＮＯｘの削減が可能となる。又、ＶＮＴノズル開度が全開又はＥＧＲバルブ開度が全開若しくは両方が全開となる部分についても、ＳＩＳＯ制御を導入する。このようにすれば、上で述べたアンダーシュートは改善され、同様にＮＯｘの削減が可能となる。
【００１７】
図５に、ＮＯｘとＰＭの量の関係を表す。図５では、縦軸がＰＭの量を表し、横軸がＮＯｘの量を表す。従来方式（２つのＳＩＳＯ独立制御）の場合におけるＰＭの量及びＮＯｘの量をそれぞれ「１」として菱形の点でプロットすると、ＭＩＭＯ制御（飽和あり）については四角の点がプロットされる。すなわち、ＮＯｘについては増加しているがＰＭについては減少している。一方、本実施の形態のようにＭＩＭＯ制御とＳＩＳＯ制御を動的に切り替える方式を採用すれば、丸の点がプロットされる。すなわち、前２つの方式よりも、ＮＯｘ及びＰＭ共に減少しており、有効であることが分かる。
【００１８】
どのような場合にＭＩＭＯ制御とＳＩＳＯ制御を切り替えるのかについては、図６を用いて説明する。図６では、縦軸が燃料噴射量（％）を表し、横軸が回転数（ｒｐｍ）を表す。図６の上方は高負荷状態を表し、下方は低負荷状態を表す。また、図６の左側は低回転状態を表し、右側は高回転状態を表す。図６に示すように、このような平面は６つの領域Ａ乃至Ｆに分割される。より具体的には、中回転から高回転状態の一部で且つ低負荷状態であるＥＧＲ全開領域Ｅでは、ＳＩＳＯ制御モードで吸気圧制御系を有効にして、ＥＧＲバルブを全開にする。また、中回転から高回転状態の一部で且つ高負荷状態であるＥＧＲ全閉領域Ｂでは、ＳＩＳＯ制御モードで吸気圧制御系を有効にして、ＥＧＲバルブを全閉にする。さらに、高回転状態で且つ中負荷から高負荷状態であるＶＮＴ全開領域Ｆでは、ＳＩＳＯ制御モードで新気量制御系を有効にして、ＶＮＴノズルを全開にする。また、中回転から高回転状態で領域Ｂ、Ｅ及びＦを除いた領域ＡにおいてはＭＩＭＯ制御モードで、吸気圧制御系及び新気量制御系並びに第１及び第２干渉補償部を有効にする。一方、低回転状態であるＶＮＴ全閉領域Ｃでは、ＶＮＴノズル開度を全閉にする。すなわちＳＩＳＯ制御モードで新気量制御系を有効にする。但し、低回転状態で非常に高い高負荷状態であるＶＮＴ＆ＥＧＲ全閉領域ＤになるとＶＮＴノズル開度もＥＧＲバルブ開度も全閉にする。この領域は、ＳＩＳＯ制御モードであるが、以下にも述べるように、吸気圧制御系、新気量制御系並びに第１及び第２干渉補償部を全て無効化する。このようなモード分布に従って、領域の境界をまたぐ場合にモード切替を行う。
【００１９】
本実施の形態において、ＭＩＭＯ制御モードでは、図２のブロック線図に示すような制御が行われる。すなわち、計画器１１０は、エンジン回転数の設定値及び燃料噴射量の設定値に対応して新気量目標値及び吸気圧目標値並びにＥＧＲバルブ開度の基準値及びＶＮＴノズル開度の基準値とを出力する。新気量制御器１２０は、新気量目標値と新気量の測定値との差に対してＥＧＲバルブ開度の制御値を出力する。第２干渉補償部１３０は、新気量目標値と新気量の測定値との差に対してＶＮＴノズル開度の補償量を出力する。吸気圧制御器１４０は、吸気圧目標値と吸気圧の測定値との差に対してＶＮＴノズル開度の制御値を出力する。第１干渉補償部１５０は、吸気圧目標値と吸気圧の測定値との差に対してＥＧＲバルブ開度の補償量を出力する。最終的なＥＧＲバルブ開度Ｅｉｎは、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量と計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとの和である。また、最終的なＶＮＴノズル開度Ｖｉｎは、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量と計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとの和である。なお、エンジン本体１に設けられた新気量センサにより新気量が測定されフィードバックされる。また、吸気圧センサにより吸気圧が測定されフィードバックされる。これらの計画器１１０、新気量制御器１２０、第１干渉補償部１５０、第２干渉補償部１３０及び吸気圧制御器１４０は、全てエンジン本体１に応じて設定されており、従来と同じ動作を行うものであるから、これ以上の説明は省略する。
【００２０】
ＶＮＴノズル開度が全閉（全閉とみなされる範囲に入る場合を含む。以下同じ。）又は全開（全開とみなされる範囲に入る場合を含む。以下同じ。）で吸気圧制御系が無効になり新気量制御系が有効になっているＳＩＳＯ制御モードでは、図７のブロック線図のような制御が行われる。すなわち、図示されていない第１及び第２干渉補償部１５０及び１３０は無効化され、さらに出力が点線で示されている吸気圧制御器１４０も無効化されている。従って、ＶＮＴノズル開度Ｖｉｎは、計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとなる。一方、ＥＧＲバルブ開度Ｅｉｎは、新気量制御器１２０からの制御値と計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとの和となる。
【００２１】
一方、ＥＧＲバルブ開度が全閉又は全開で新気量制御系が無効になり吸気圧制御系が有効になっているＳＩＳＯ制御モードでは、図８のブロック線図のような制御が行われる。すなわち、図示されていない第１及び第２干渉補償部１５０及び１３０は無効化され、さらに出力が点線で示されている新気量制御器１２０も無効化されている。従って、ＶＮＴノズル開度Ｖｉｎは、吸気圧制御器１４０からの制御値と計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとの和となる。一方、ＥＧＲバルブ開度Ｅｉｎは、計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとなる。
【００２２】
また、ＥＧＲバルブ開度が全閉又は全開で且つＶＮＴノズル開度が全閉又は全開で吸気圧制御系及び新気量制御系が両方無効となるＳＩＳＯ制御モードでは、図９のブロック線図のような制御が行われる。すなわち、図示されていない第１及び第２干渉補償部１５０及び１３０は無効化され、さらに出力が点線で示されている新気量制御器１２０及び吸気圧制御器１４０も無効化されている。従って、ＶＮＴノズル開度Ｖｉｎは、計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとなる。一方、ＥＧＲバルブ開度Ｅｉｎは、計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとなる。
【００２３】
［実施の形態１の具体例１］
上で述べたモード切替を実現するための第１の具体例に係るブロック線図を図１０に示す。図１０に示すように、新気量制御器１２０の出力に対して作用する可変のゲイン要素（ゲイン関数とも呼ぶ）Ｋｄｆと、第２干渉補償部１３０の出力に対して作用する可変のゲイン要素Ｋｃｆと、第１干渉補償部１５０の出力に対して作用する可変のゲイン要素Ｋｃｐと、吸気圧制御器１４０の出力に対して作用する可変のゲイン要素Ｋｄｐと、ゲイン要素Ｋｄｆ、Ｋｃｐ、Ｋｃｆ及びＫｄｐの値を設定するゲイン関数設定器１６０とを導入する。本具体例１ではゲイン関数設定器１６０は、計画器１１０が出力するＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度Ｅｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断すると共に、ＶＮＴノズル開度Ｖｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断し、その判断に基づきゲイン要素の値を設定する。
【００２４】
図１１に、図６の領域ＡのＭＩＭＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉でも全開でもなく、ＶＮＴノズル開度が全閉でも全開でもないと判断すると、図１１に示すように、Ｋｄｆ＝１、Ｋｃｐ＝１、Ｋｃｆ＝１、Ｋｄｐ＝１に設定する。このようにすることによって、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０を全て有効化して、実質的に図２に示すようなブロック線図となる。
【００２５】
図１２に、図６のＶＮＴ及びＥＧＲ全閉領域ＤのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉又は全開で、ＶＮＴノズル開度が全閉又は全開であると判断すると、図１２に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図９に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０の全ての出力に「０」のゲインを乗じることによって無効化している。
【００２６】
図１３に、図６のＶＮＴ全閉領域Ｃ又はＶＮＴ全開領域ＦのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉でも全開でもないが、ＶＮＴノズル開度は全閉又は全開であると判断すると、図１３に示すように、Ｋｄｆ＝１、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図７に示すようなブロック線図となる。このように、新気量制御器１２０については有効化し、第２干渉補償部１３０、第１干渉補償部１５０及び吸気圧制御器１４０の出力に「０」のゲインを乗じることによって無効化する。
【００２７】
図１４に、図６のＥＧＲ全閉領域Ｂ又はＥＧＲ全開領域ＥのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉又は全開であるが、ＶＮＴノズル開度は全閉でも全開でもないと判断すると、図１４に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝１に設定する。このようにすることによって、実質的に図８に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０及び第１干渉補償部１５０の出力に「０」のゲインを乗じることによって無効化する一方、吸気圧制御器１４０については有効化する。
【００２８】
次に、図１５を用いてゲイン関数設定器１６０等の処理について説明する。まず、時刻ｋを０に初期化する（ステップＳ１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下（全閉を０，全開を１）に規格された値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００２９】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ５）。そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ７）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【００３０】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ９）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１１）。
【００３１】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１３）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１５）。
【００３２】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagのみが０でない状態であるか判断する（ステップＳ１７）。この条件を満たす場合には、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１３に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０且つＫｄｆ＝１を設定する（ステップＳ１９）。
【００３３】
さらに、V-flagのみが０でないわけではない場合、ゲイン関数設定器１６０は、E-flagのみが０でない状態であるか判断する（ステップＳ２１）。この条件を満たす場合には、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１４に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０且つＫｄｐ＝１を設定する（ステップＳ２３）。
【００３４】
ステップＳ１１の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００３５】
また、ステップＳ１５の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００３６】
さらに、ステップＳ１９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出する。そして、新気量制御器１２０からの制御値とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。一方、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００３７】
また、ステップＳ２３の後には、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出する。そして、吸気圧制御器１４０からの制御値とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。一方、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。
【００３８】
ステップＳ２１の条件を満たさないと判断された場合、ステップＳ１１、Ｓ１５、Ｓ１９及びＳ２３の後に、ｋが１インクリメントされ（ステップＳ２５）、ステップＳ５に戻る。このような処理を、エンジン本体を停止するまで実施する。
【００３９】
このようにゲイン要素を導入することによって、有効無効を容易に設定することができる。
【００４０】
［実施の形態１の具体例２］
上で述べたモード切替を実現するための第２の具体例に係るブロック線図を図１６に示す。図１６に示すように、新気量制御器１２０の出力に対して作用する可変のゲイン要素（ゲイン関数とも呼ぶ）Ｋｄｆと、第２干渉補償部１３０の出力に対して作用する可変のゲイン要素Ｋｃｆと、第１干渉補償部１５０の出力に対して作用する可変のゲイン要素Ｋｃｐと、吸気圧制御器１４０の出力に対して作用する可変のゲイン要素Ｋｄｐと、ゲイン要素Ｋｄｆ、Ｋｃｐ、Ｋｃｆ及びＫｄｐの値を設定するゲイン関数設定器１７０とを導入する。ここまではほぼ図１０と同様である。
【００４１】
しかし、本具体例２ではゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎの値からそのままＥＧＲバルブ開度Ｅｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断すると共に、ＶＮＴノズル開度Ｖｉｎの値からそのままＶＮＴノズル開度Ｖｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断し、その判断に基づきゲイン要素の値を設定する。
【００４２】
図１７に、図６の領域ＡのＭＩＭＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉でも全開でもなく、ＶＮＴノズル開度が全閉でも全開でもないと判断すると、図１７に示すように、Ｋｄｆ＝１、Ｋｃｐ＝１、Ｋｃｆ＝１、Ｋｄｐ＝１を設定する。このようにすることによって、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０を全て有効化して、実質的に図２に示すようなブロック線図となる。
【００４３】
図１８に、図６のＶＮＴ及びＥＧＲ全閉領域ＤのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉又は全開で、ＶＮＴノズル開度が全閉又は全開であると判断すると、図１８に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図９に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０の出力の全てに「０」のゲインを乗じることによって無効化している。
【００４４】
図１９に、図６のＶＮＴ全閉領域Ｃ又はＶＮＴ全開領域ＦのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉でも全開でもないが、ＶＮＴノズル開度は全閉又は全開であると判断すると、図１９に示すように、Ｋｄｆ＝１、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図７に示すようなブロック線図となる。このように、新気量制御器１２０については有効化し、第２干渉補償部１３０、第１干渉補償部１５０及び吸気圧制御器１４０の出力に「０」のゲインを乗じることによって無効化する。
【００４５】
図２０に、図６のＥＧＲ全閉領域Ｂ又はＥＧＲ全開領域ＥのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉又は全開であるが、ＶＮＴノズル開度は全閉でも全開でもないと判断すると、図２０に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝１に設定する。このようにすることによって、実質的に図８に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０及び第１干渉補償部１５０の出力に「０」のゲインを乗じることによって無効化する一方、吸気圧制御器１４０については有効化する。
【００４６】
次に、図２１を用いてゲイン関数設定器１７０等の処理について説明する。まず、時刻ｋを０に初期化する（ステップＳ３１）。時刻ｋはエンジン制御装置１００共通の時刻とする。
【００４７】
また、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ３３）。そして、ゲイン関数設定器１７０は、時刻ｋにおけるＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、ＶＮＴノズル開度Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ３５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。なお、Ｅｉｎ（ｋ）及びＶｉｎ（ｋ）は、０以上１以下（全閉を０，全開を１）に規格された値である。
【００４８】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ３７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１７に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ３９）。
【００４９】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ４１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１８に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ４３）。
【００５０】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagのみが０でない状態であるか判断する（ステップＳ４５）。この条件を満たす場合には、ＶＮＴ全閉領域Ｃ又はＶＮＴ全開領域ＦのＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１９に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０且つＫｄｆ＝１を設定する（ステップＳ４７）。
【００５１】
さらに、V-flagのみが０でないわけではない場合、ゲイン関数設定器１７０は、E-flagのみが０でない状態であるか判断する（ステップＳ４９）。この条件を満たす場合には、ＥＧＲ全閉領域Ｂ又はＥＧＲ全開領域ＥのＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図２０に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０且つＫｄｐ＝１を設定する（ステップＳ５１）。
【００５２】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００５３】
そして、ステップＳ３９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００５４】
また、ステップＳ４３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００５５】
さらに、ステップＳ４７の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出する。そして、新気量制御器１２０からの制御値とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。一方、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００５６】
また、ステップＳ５１の後には、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出する。そして、吸気圧制御器１４０からの制御値とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。一方、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。
【００５７】
ステップＳ４９の条件を満たさないと判断された場合、ステップＳ３９、Ｓ４３、Ｓ４７及びＳ５１の後に、ｋが１インクリメントされ（ステップＳ５３）、ステップＳ３３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【００５８】
このように、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎを直接参照して処理を行うようにしてもよい。
【００５９】
［実施の形態２］
第１の実施の形態に従って、ＭＩＭＯ制御モードとＳＩＳＯ制御モードとを動的に切り替えることによって、図５で示したようにＰＭ及びＮＯｘを減少させることができる。しかしながら、例えば図６で示した制御モード分布における領域の境界あたりで過渡状態（加速又は減速時）にあると、ＶＮＴやＥＧＲの状態によって、ＭＩＭＯ制御モードにおいて干渉補償パスが加わったり、加わらなかったりするという現象が発生する場合があることが分かってきた。すなわち、ＭＩＭＯ制御モードからＳＩＳＯ制御モードへ、ＳＩＳＯ制御モードからＭＩＭＯ制御モードへと頻繁に制御モードが切り替わるため、図２２に示すように、チャタリングが発生して制御系が不安定になる場合がある。図２２は、新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表しており、新気量及び吸気圧については実線が目標値を、点線が実際の値を表している。また、ＥＧＲバルブ開度及びＶＮＴノズル開度については実際の値を示している。図２２において、楕円で囲まれた部分でチャタリングが発生している。
【００６０】
そこで、急にモードの切り替えを行うのではなく、ＶＮＴノズルやＥＧＲバルブが全閉近傍又は全開近傍においてゲイン要素の値を調整して徐々にモード切替を行うことによって、干渉補償パスの有り無しが頻繁に切り替わるというリアクションを緩和する。
【００６１】
［実施の形態２の具体例１］
例えば、図２３に示すような、ＶＮＴノズル開度又はＥＧＲバルブ開度を引数とする関数をゲイン関数として採用する。図２３は、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図２３の例では、開度０（すなわち全閉）から開度Ｎまでの全閉とみなされる範囲については、ゲイン関数は、傾き１／Ｎでバルブ又はノズルの開度の１次関数となる。また、Ｎ以上（１−Ｎ）以下の範囲については定数「１」となる。さらに、（１−Ｎ）以上の範囲については傾き（−１／Ｎ）でバルブ又はノズルの開度の１次関数となる。
【００６２】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図２４に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ６１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００６３】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ６３）。そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ６５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【００６４】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ６７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ６９）。
【００６５】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ７１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ７３）。
【００６６】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ７５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｂｓ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ７７）。このように図２３の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値Ｖｂｓ（ｋ）／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【００６７】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ７９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｂｓ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ８１）。このように図２３の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（１−Ｖｂｓ（ｋ））／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【００６８】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ８３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｂｓ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ８５）。このように図２３の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値Ｅｂｓ（ｋ）／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【００６９】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ８７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｂｓ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ８９）。このように図２３の右側における傾き−１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値（１−Ｅｂｓ（ｋ））／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【００７０】
ステップＳ６９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００７１】
また、ステップＳ７３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００７２】
さらに、ステップＳ７７、Ｓ８１、Ｓ８５及びＳ８９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００７３】
ステップＳ８７の条件を満たさないと判断された場合、ステップＳ６９、Ｓ７３、Ｓ７７、Ｓ８１、Ｓ８５及びＳ８９の後に、ｋが１インクリメントされ（ステップＳ９１）、ステップＳ６３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【００７４】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【００７５】
［実施の形態２の具体例２］
本具体例でも、第１の具体例と同様に図２３に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図２５に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ１０１）。
【００７６】
また、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ１０３）。そして、ゲイン関数設定器１７０は、時刻ｋにおけるＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、ＶＮＴノズル開度Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ１０５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。なお、Ｅｉｎ（ｋ）及びＶｉｎ（ｋ）は、０以上１以下の値である。
【００７７】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ１０７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１７に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１０９）。
【００７８】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１１１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１８に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１１３）。
【００７９】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ１１５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｉｎ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ１１７）。このように図２３の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値Ｖｉｎ（ｋ）／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【００８０】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ１１９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｉｎ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ１２１）。このように図２３の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値（１−Ｖｉｎ（ｋ））／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【００８１】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ１２３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｉｎ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ１２５）。このように図２３の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値Ｅｉｎ（ｋ）／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【００８２】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ１２７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｉｎ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ１２９）。このように図２３の右側における傾き−１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値（１−Ｅｉｎ（ｋ））／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【００８３】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００８４】
そして、ステップＳ１０９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００８５】
また、ステップＳ１１３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００８６】
さらに、ステップＳ１１７、Ｓ１２１、Ｓ１２５及びＳ１２９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００８７】
ステップＳ１２７の条件を満たさないと判断された場合、ステップＳ１０９、Ｓ１１３、Ｓ１１７、Ｓ１２１、Ｓ１２５及びＳ１２９の後に、ｋが１インクリメントされ（ステップＳ１３１）、ステップＳ１０３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【００８８】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【００８９】
［実施の形態２の具体例３］
実施の形態２の具体例１及び２においては図２３に示すようなゲイン関数を採用していたが、本実施の形態は図２３に示したようなゲイン関数に限定されるものではない。例えば図２６に示すようなゲイン関数を採用することも可能である。図２６では、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図２６の例では、開度０（すなわち全閉）から開度Ｎまでの全閉とみなされる範囲については、シグモイド関数を採用する。シグモイド関数ｓ（ｘ）は、以下のように定義され、単調増加連続関数の１つであり、図２７に示すように１つの変曲点を持つ。図２７は、ゲイン１の標準シグモイド関数を表している。
【００９０】
【数１】
2011077504.tif 000003
【００９１】
シグモイド関数を用いる方が、全体として滑らかな関数となっているので、チャタリング防止に有効である。
【００９２】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図２８に示すような処理を実施する。
【００９３】
まず、時刻ｋを０に初期化する（ステップＳ１４１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００９４】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ１４３）。そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）がＮより大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ１４５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【００９５】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ１４７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１４９）。
【００９６】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１５１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１５３）。
【００９７】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ１５５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ１５７）。
【００９８】
Ｖ-1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【００９９】
【数２】
2011077504.tif 000004
【０１００】
この式で、Ｎは上で述べた全閉又は全開とみなす範囲を決定する値であり、Ｓは例えば１０以上の定数である。この式は、Ｖｂｓ（ｋ）＝０の時に０に、Ｖｂｓ（ｋ）＝Ｎ／２の時に１／２に、Ｖｂｓ（ｋ）＝Ｎの時に１となるようにしたシグモイド関数の一例である。Ｓは１０より大きくするほど、この条件に近くなる。例えばＮ＝０．２でＳ＝１０であれば、Ｖｂｓ（ｋ）＝０の時に０．０００４５となり、Ｖｂｓ（ｋ）＝Ｎ／２＝０．１の時に０．５となり、Ｖｂｓ（ｋ）＝Ｎ＝０．２の時に０．９９９９６となる。
【０１０１】
このように図２６の左側におけるＶ-1関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ほぼＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１０２】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ１５９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ１６１）。
【０１０３】
Ｖ1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０１０４】
【数３】
2011077504.tif 000005
【０１０５】
Ｎ及びＳの定義はＶ-1関数と同じである。この式は、Ｖｂｓ（ｋ）＝（１−Ｎ）の時に１に、Ｖｂｓ（ｋ）＝１−Ｎ／２の時に１／２に、Ｖｂｓ（ｋ）＝１の時に０となるようにしたシグモイド関数の一例である。Ｓは１０より大きくするほど、この条件に近くなる。例えばＮ＝０．２でＳ＝１０であれば、Ｖｂｓ（ｋ）＝（１−０．２）＝０．８の時に０．９９９６となり、Ｖｂｓ（ｋ）＝１−０．２／２＝０．９の時に０．５となり、Ｖｂｓ（ｋ）＝１の時に０．０００４５となる。
【０１０６】
このように図２６の右側におけるＶ1関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでほぼＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１０７】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ１６３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ１６５）。
【０１０８】
Ｅ-1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０１０９】
【数４】
2011077504.tif 000006
【０１１０】
基本的に（２）式と同じ形の関数である。このように図２６の左側におけるＥ-1関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ほぼＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１１１】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ１６７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ１６９）。
【０１１２】
Ｅ1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０１１３】
【数５】
2011077504.tif 000007
【０１１４】
基本的に（３）式と同じ形の関数である。このように図２６の右側における関数Ｅ1に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでほぼＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１１５】
ステップＳ１４９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１１６】
また、ステップＳ１５３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１１７】
さらに、ステップＳ１５７、Ｓ１６１、Ｓ１６５及びＳ１６９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１１８】
ステップＳ１６７の条件を満たさないと判断された場合、ステップＳ１４９、Ｓ１５３、Ｓ１５７、Ｓ１６１、Ｓ１６５及びＳ１６９の後に、ｋが１インクリメントされ（ステップＳ１７１）、ステップＳ１４３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【０１１９】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【０１２０】
［実施の形態２の具体例４］
本具体例でも、第３の具体例と同様に図２６に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図２９に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ１０１）。
【０１２１】
また、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ１８３）。そして、ゲイン関数設定器１７０は、時刻ｋにおけるＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、ＶＮＴノズル開度Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）がＮより大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ１８５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。なお、Ｅｉｎ（ｋ）及びＶｉｎ（ｋ）は、０以上１以下の値である。
【０１２２】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ１８７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１８９）。
【０１２３】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１９１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１９３）。
【０１２４】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ１９５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ１９７）。
【０１２５】
Ｖ-1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０１２６】
【数６】
2011077504.tif 000008
【０１２７】
基本的に（２）式と同じ形の関数である。このように図２６の左側における関数Ｖ-1に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ほぼＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１２８】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ１９９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ２０１）。
【０１２９】
Ｖ1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０１３０】
【数７】
2011077504.tif 000009
【０１３１】
基本的に（３）式と同じ形の関数である。このように図２６の右側における関数Ｖ1に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１３２】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ２０３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ２０５）。
【０１３３】
Ｅ-1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０１３４】
【数８】
2011077504.tif 000010
【０１３５】
基本的に（４）式と同じ形の関数である。このように図２６の左側における関数Ｅ-1に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ほぼＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１３６】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ２０７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ２０９）。
【０１３７】
Ｅ1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０１３８】
【数９】
2011077504.tif 000011
【０１３９】
基本的に（５）式と同じ形の関数である。このように図２６の右側における関数Ｅ1に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでほぼＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１４０】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１４１】
そして、ステップＳ１８９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１４２】
また、ステップＳ１９３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１４３】
さらに、ステップＳ１９７、Ｓ２０１、Ｓ２０５及びＳ２０９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１４４】
ステップＳ２０７の条件を満たさないと判断された場合、ステップＳ１８９、Ｓ１９３、Ｓ１９７、Ｓ２０１、Ｓ２０５及びＳ２０９の後に、ｋが１インクリメントされ（ステップＳ２１１）、ステップＳ１８３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【０１４５】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【０１４６】
［実施の形態２の具体例５］
本具体例では、図３０に示すような、ＶＮＴノズル開度又はＥＧＲバルブ開度を引数とする関数をゲイン関数として採用する。図３０では、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図３０の例では、ヒステリシス特性を採用した１次関数を採用している。すなわち、ＶＮＴノズル開度又はＥＧＲバルブ開度が全開から全閉に向かう場合には、ノズル又はバルブ開度０以上Ｎ以下の範囲において図２３と同じ１次関数が採用されている。すなわち、開度０（すなわち全閉）から開度Ｎまでの全閉とみなされる範囲については、傾き１／Ｎでバルブ又はノズルの開度の１次関数となる。これに対して、全閉から全開に向かう場合には、ヒステリシス幅Ｍだけ右にシフトした一次関数が採用されている。すなわち、ノズル又はバルブ開度が０以上Ｍ以下でゲインは「０」であり、Ｍ以上Ｎ＋Ｍ以下で傾き１／Ｎの一次関数に従う。
【０１４７】
また、全開から全閉の方向の場合にはＮ以上（１−Ｎ−Ｍ）以下の範囲は定数「１」となる。逆に、全閉から全開の方向の場合には（Ｎ＋Ｍ）以上（１−Ｎ）以下の範囲は定数「１」となる。
【０１４８】
一方、ＶＮＴノズル開度又はＥＧＲバルブ開度が全閉から全開に向かう場合には、ノズル又はバルブ開度が（１−Ｎ）以上１以下の範囲（全開とみなされる範囲）については、傾き（−１／Ｎ）でノズル又はバルブの開度の一次関数となる。これに対して、全開から全閉に向かう場合には、ヒステリシス幅Ｍだけ左にシフトした関数が採用されている。Ｍは、例えば０．０５から０．１程度の値である。すなわち、ノズル又はバルブ開度が１から（１−Ｍ）まではゲインは「０」であり、（１−Ｍ）から（１−Ｎ−Ｍ）までは傾き（−１／Ｎ）の一次関数に従う。
【０１４９】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図３１及び図３２に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ２２１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１５０】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vbs-D(k)に（Ｖｂｓ（ｋ）−Ｖｂｓ（ｋ−Ｊ））を設定し、Ebs-D(k)に（Ｅｂｓ（ｋ）−Ｅｂｓ（ｋ−Ｊ））を設定する（ステップＳ２２３）。Ｖｂｓ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶｂｓ値である。同様にＥｂｓ（ｋ−Ｊ）は、Ｊサンプル前のＥｂｓ値である。すなわち、Vbs-D(k)は、ＶＮＴノズルの状態を表しており、現Ｖｂｓ値とＪサンプル前のＶｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ebs-D(k)は、ＥＧＲバルブの状態を表しており、現Ｅｂｓ値とＪサンプル前のＥｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０１５１】
そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）がＮより大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１６０は、Vbs-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vbs-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１６０は、Ebs-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ebs−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ２２５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０１５２】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ２２７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ２２９）。
【０１５３】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ２３１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ２３３）。
【０１５４】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ２３５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１６０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ２３７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｂｓ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２３９）。このように図３０の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値Ｖｂｓ（ｋ）／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１５５】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（Ｖｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２４１）。図３０の左側において、ヒステリシス幅Ｍだけ右シフトさせた傾き１／Ｎの直線に従って、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（Ｖｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１５６】
V-flagが「−１」でない場合については、端子Ａを介して図３２の処理に移行する。
【０１５７】
図３２の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ２４３）。V-flagが「１」であれば、ゲイン関数設定器１６０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ２４５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｂｓ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２４７）。このように図３０の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（１−Ｖｂｓ（ｋ））／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１５８】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２４９）。このように図３０の右側における、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（１−Ｖｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１５９】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ２５１）。E-flagが「−１」であれば、ゲイン関数設定器１６０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ２５３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０の左側におけるゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｂｓ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２５５）。このように図３０の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値Ｅｂｓ（ｋ）／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１６０】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（Ｅｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２５７）。このように図３０の左側における、ヒステリシス幅Ｍだけ右にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値（Ｅｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１６１】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ２５９）。E-flagが「１」であれば、ゲイン関数設定器１６０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ２６１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｂｓ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２６３）。このように図３０の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｅｂｓ（ｋ）に応じた値（１−Ｅｂｓ（ｋ））／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１６２】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２６５）。このように図３０の右側において、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値（１−Ｅｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１６３】
ステップＳ２２９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１６４】
また、ステップＳ２３３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１６５】
さらに、ステップＳ２３９、Ｓ２４１、Ｓ２４７、Ｓ２４９、Ｓ２５５、Ｓ２５７、Ｓ２６３及びＳ２６５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１６６】
ステップＳ２５９の条件を満たさないと判断された場合、ステップＳ２４９、Ｓ２５５、Ｓ２５７、Ｓ２６３及びＳ２６５の後に、端子Ｂを介して図３１の処理に戻る。
【０１６７】
図３１において端子Ｂを介した後に、又はステップＳ２２９、Ｓ２３３、Ｓ２３９及びＳ２４１の後に、ｋが１インクリメントされ（ステップＳ２６７）、ステップＳ２２３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【０１６８】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０１６９】
［実施の形態２の具体例６］
本具体例でも、第５の具体例と同様に図３０に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図３３及び図３４に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ２７１）。時刻ｋはエンジン制御装置１００共通の時刻とする。
【０１７０】
次に、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vin-D(k)に（Ｖｉｎ（ｋ）−Ｖｉｎ（ｋ−Ｊ））を設定し、Ein-D(k)に（Ｅｉｎ（ｋ）−Ｅｉｎ（ｋ−Ｊ））を設定する（ステップＳ２７３）。Ｖｉｎ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶＮＴノズル開度Ｖｉｎ値である。同様にＥｉｎ（ｋ−Ｊ）は、Ｊサンプル前のＥＧＲバルブ開度Ｅｉｎ値である。すなわち、Vin-D(k)は、ＶＮＴノズルの状態を表しており、Ｊサンプル前のＶｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ein-D(k)は、ＥＧＲバルブの状態を表しており、Ｊサンプル前のＥＧＲバルブ開度Ｅｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０１７１】
そして、ゲイン関数設定器１７０は、ＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）がＮより大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１７０は、Vin-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vin-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１７０は、Ein-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ein−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ２７５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０１７２】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ２７７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ２７９）。
【０１７３】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ２８１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ２８３）。
【０１７４】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ２３５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１６０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ２８７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｉｎ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２８９）。このように図３０の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値Ｖｉｎ（ｋ）／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１７５】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（Ｖｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２９１）。図３０の左側において、ヒステリシス幅Ｍだけ右シフトさせた傾き１／Ｎの直線に従って、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（Ｖｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１７６】
V-flagが「−１」でない場合については、端子Ｃを介して図３４の処理に移行する。
【０１７７】
図３４の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ２９３）。V-flagが「１」であれば、ゲイン関数設定器１７０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ２９５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｉｎ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２９７）。このように図３０の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値（１−Ｖｉｎ（ｋ））／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１７８】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２９９）。このように図３０の右側における、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値（１−Ｖｉｎ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１７９】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ３０１）。E-flagが「−１」であれば、ゲイン関数設定器１７０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ３０３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０の左側におけるゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｉｎ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３０５）。このように図３０の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ基準値Ｅｉｎ（ｋ）に応じた値Ｅｉｎ（ｋ）／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１８０】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（Ｅｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３０７）。このように図３０の左側において、ヒステリシス幅Ｍだけ右にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値（Ｅｉｎ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１８１】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ３０９）。E-flagが「１」であれば、ゲイン関数設定器１７０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ３１１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｉｎ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３１３）。このように図３０の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度Ｅｉｎ（ｋ）に応じた値（１−Ｅｉｎ（ｋ））／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１８２】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３１５）。このように図３０の右側における、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値（１−Ｅｉｎ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１８３】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１８４】
そして、ステップＳ２７９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１８５】
また、ステップＳ２８３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１８６】
さらに、ステップＳ２８９、Ｓ２９１、Ｓ２９７、Ｓ２９９、Ｓ３０５、Ｓ３０７、Ｓ３１３及びＳ３１５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１８７】
ステップＳ３０９の条件を満たさないと判断された場合、ステップＳ２９７、Ｓ２９９、Ｓ３０５、Ｓ３０７、Ｓ３１３及びＳ３１５の後に、端子Ｄを介して図３３の処理に戻る。
【０１８８】
図３３において端子Ｄを介した後に、又はステップＳ２７９、Ｓ２８３、Ｓ２８９及びＳ２９１の後に、ｋが１インクリメントされ（ステップＳ３１７）、ステップＳ２７３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【０１８９】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０１９０】
［実施の形態２の具体例７］
例えば、図３５に示すような、ＶＮＴノズル開度又はＥＧＲバルブ開度を引数とする関数をゲイン関数として採用する。図３５では、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図３５の例では、ヒステリシス特性を有するシグモイド関数を採用している。すなわち、ＶＮＴノズル開度又はＥＧＲバルブ開度が全開から全閉に向かう場合には、ノズル又はバルブ開度０以上Ｎ以下の範囲において図２６と同じシグモイド関数が採用されている。これに対して、全閉から全開に向かう場合には、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数が採用されている。
【０１９１】
また、全開から全閉の方向の場合にはＮ以上（１−Ｎ−Ｍ）以下の範囲で定数「１」となる。逆に、全閉から全開の方向の場合には（Ｎ＋Ｍ）以上（１−Ｎ）以下の範囲で定数「１」となる。
【０１９２】
一方、ＶＮＴノズル開度又はＥＧＲバルブ開度が全閉から全開に向かう場合には、ノズル又はバルブ開度が（１−Ｎ）以上１以下の範囲（全開とみなされる範囲）については、図２６で示したシグモイド関数と同じになる。これに対して、全開から全閉に向かう場合には、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数が採用されている。Ｍは、例えば０．０５から０．１程度の値である。
【０１９３】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図３６及び図３７に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ３２１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１９４】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vbs-D(k)に（Ｖｂｓ（ｋ）−Ｖｂｓ（ｋ−Ｊ））を設定し、Ebs-D(k)に（Ｅｂｓ（ｋ）−Ｅｂｓ（ｋ−Ｊ））を設定する（ステップＳ３２３）。Ｖｂｓ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶｂｓ値である。同様にＥｂｓ（ｋ−Ｊ）は、Ｊサンプル前のＥｂｓ値である。すなわち、Vbs-D(k)は、ＶＮＴノズルの状態を表しており、Ｊサンプル前のＶｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ebs-D(k)は、ＥＧＲバルブの状態を表しており、Ｊサンプル前のＥｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０１９５】
そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）がＮより大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１６０は、Vbs-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vbs-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１６０は、Ebs-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ebs−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ３２５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０１９６】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ３２７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ３２９）。
【０１９７】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ３３１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ３３３）。
【０１９８】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ３３５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１６０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ３３７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,-1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３３９）。
【０１９９】
Ｖ-1,-1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２００】
【数１０】
2011077504.tif 000012
【０２０１】
このように図３５の左側におけるシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０２０２】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３４１）。
【０２０３】
Ｖ-1,1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２０４】
【数１１】
2011077504.tif 000013
【０２０５】
このように図３５の左側において、ヒステリシス幅Ｍだけ右シフトさせたシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。また、このような条件を満たす場合にも出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２０６】
V-flagが「−１」でない場合については、端子Ｅを介して図３７の処理に移行する。
【０２０７】
図３７の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ３４３）。V-flagが「１」であれば、ゲイン関数設定器１６０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ３４５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３４７）。
【０２０８】
Ｖ1,1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２０９】
【数１２】
2011077504.tif 000014
【０２１０】
このように図３５の右側におけるシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０２１１】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,-1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３４９）。
【０２１２】
Ｖ1,-1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２１３】
【数１３】
2011077504.tif 000015
【０２１４】
このように図３５の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２１５】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ３５１）。E-flagが「−１」であれば、ゲイン関数設定器１６０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ３５３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５の左側におけるゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1,-1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３５５）。
【０２１６】
Ｅ-1,-1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２１７】
【数１４】
2011077504.tif 000016
【０２１８】
このように図３０の左側におけるシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０２１９】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1,1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３５７）。
【０２２０】
Ｅ-1,1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２２１】
【数１５】
2011077504.tif 000017
【０２２２】
このように図３５の左側において、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２２３】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ３５９）。E-flagが「１」であれば、ゲイン関数設定器１６０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ３６１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３６３）。
【０２２４】
Ｅ1,1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２２５】
【数１６】
2011077504.tif 000018
【０２２６】
このように図３５の右側におけるシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０２２７】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,-1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３６５）。
【０２２８】
Ｅ1,-1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２２９】
【数１７】
2011077504.tif 000019
【０２３０】
このように図３５の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２３１】
ステップＳ３２９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２３２】
また、ステップＳ３３３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２３３】
さらに、ステップＳ３３９、Ｓ３４１、Ｓ３４７、Ｓ３４９、Ｓ３５５、Ｓ３５７、Ｓ３６３及びＳ３６５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２３４】
ステップＳ３５９の条件を満たさないと判断された場合、ステップＳ３４７、Ｓ３４９、Ｓ３５５、Ｓ３５７、Ｓ３６３及びＳ３６５の後に、端子Ｆを介して図３６の処理に戻る。
【０２３５】
図３６において端子Ｆを介した後に、又はステップＳ３２９、Ｓ３３３、Ｓ３３９及びＳ３４１の後に、ｋが１インクリメントされ（ステップＳ３６７）、ステップＳ３２３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【０２３６】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０２３７】
［実施の形態２の具体例８］
本具体例でも、第７の具体例と同様に図３５に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図３８及び図３９に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ３７１）。時刻ｋはエンジン制御装置１００共通の時刻とする。
【０２３８】
次に、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vin-D(k)に（Ｖｉｎ（ｋ）−Ｖｉｎ（ｋ−Ｊ））を設定し、Ein-D(k)に（Ｅｉｎ（ｋ）−Ｅｉｎ（ｋ−Ｊ））を設定する（ステップＳ３７３）。Ｖｉｎ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶＮＴノズル開度Ｖｉｎ値である。同様にＥｉｎ（ｋ−Ｊ）は、Ｊサンプル前のＥｉｎ値である。すなわち、Vin-D(k)は、ＶＮＴノズルの状態を表しており、Ｊサンプル前のＶｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ein-D(k)は、ＥＧＲバルブの状態を表しており、Ｊサンプル前のＥＧＲバルブ開度Ｅｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０２３９】
そして、ゲイン関数設定器１７０は、ＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）がＮより大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１７０は、Vin-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vin-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１７０は、Ein-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ein−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ３７５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０２４０】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ３７７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ３７９）。
【０２４１】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ３８１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ３８３）。
【０２４２】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ３８５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１６０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ３８７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,-1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３８９）。
【０２４３】
Ｖ-1,-1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２４４】
【数１８】
2011077504.tif 000020
【０２４５】
このように図３５の左側におけるシグモイド関数に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０２４６】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３９１）。
【０２４７】
Ｖ-1,1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２４８】
【数１９】
2011077504.tif 000021
【０２４９】
このように図３５の左側において、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｉｎ（ｋ）に応じた値が算出される。また、上記条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２５０】
V-flagが「−１」でない場合については、端子Ｇを介して図３９の処理に移行する。
【０２５１】
図３９の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ３９３）。V-flagが「１」であれば、ゲイン関数設定器１７０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ３９５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３９７）。
【０２５２】
Ｖ1,1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２５３】
【数２０】
2011077504.tif 000022
【０２５４】
このように図３５の右側におけるシグモイド関数に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０２５５】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,-1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３９９）。
【０２５６】
Ｖ1,-1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２５７】
【数２１】
2011077504.tif 000023
【０２５８】
このように図３０の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。これによって、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２５９】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ４０１）。E-flagが「−１」であれば、ゲイン関数設定器１７０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ４０３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５の左側におけるゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1,-1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ４０５）。
【０２６０】
Ｅ-1,-1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２６１】
【数２２】
2011077504.tif 000024
【０２６２】
このように図３５の左側におけるシグモイド関数に従ってＥＧＲバルブ基準値Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０２６３】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,1（Ｅｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ４０７）。
【０２６４】
Ｅ-1,1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２６５】
【数２３】
2011077504.tif 000025
【０２６６】
このように図３５の左側において、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２６７】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ４０９）。E-flagが「１」であれば、ゲイン関数設定器１７０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ４１１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ４１３）。
【０２６８】
Ｅ1,1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２６９】
【数２４】
2011077504.tif 000026
【０２７０】
このように図３５の右側におけるシグモイド関数に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０２７１】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,-1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ４１５）。
【０２７２】
Ｅ1,-1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２７３】
【数２５】
2011077504.tif 000027
【０２７４】
このように図３５の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２７５】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０２７６】
そして、ステップＳ３７９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０２７７】
また、ステップＳ３８３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０２７８】
さらに、ステップＳ３８９、Ｓ３９１、Ｓ３９７、Ｓ３９９、Ｓ４０５、Ｓ４０７、Ｓ４１３及びＳ４１５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２７９】
ステップＳ４０９の条件を満たさないと判断された場合、ステップＳ３９７、Ｓ３９９、Ｓ４０５、Ｓ４０７、Ｓ４１３及びＳ４１５の後に、端子Ｈを介して図３８の処理に戻る。
【０２８０】
図３８において端子Ｈを介した後に、又はステップＳ３７９、Ｓ３８３、Ｓ３８９及びＳ３９１の後に、ｋが１インクリメントされ（ステップＳ４１７）、ステップＳ３７３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【０２８１】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０２８２】
以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、図１０や図１６に示したブロック線図は一例であって、例えばゲイン要素を１又は０にするだけの制御であれば、ゲイン要素を導入せずに処理を切り替えるようにしてもよい。
【０２８３】
さらに、上で述べた処理フローについても一例であって、条件判断及び対応する処理については、順番を入れ替えても実質的に同一の機能を果たすように組み替えることも可能である。
【０２８４】
なお、上では説明を省略しているが、Ｖｂｓ、Ｅｂｓ、Ｖｉｎ、Ｅｉｎなどの各時点における値については、メインメモリなどの記憶装置に格納して用いる。
【０２８５】
また、例えば直噴型のガソリンエンジンのノズルターボが可変式になった場合にも、本技術を適用可能である。
【０２８６】
なお、本技術のエンジン制御装置１００は、コンピュータ装置であって、図４０に示すように、ＲＡＭ（Random Access Memory）２５０１とプロセッサ２５０３とＲＯＭ（Read Only Memory）２５０７とセンサ群２５１５とがバス２５１９で接続されている。本実施の形態における処理を実施するための制御プログラム（及び存在している場合にはオペレーティング・システム（ＯＳ：Operating System））は、ＲＯＭ２５０７に格納されており、プロセッサ２５０３により実行される際にはＲＯＭ２５０７からＲＡＭ２５０１に読み出される。必要に応じてプロセッサ２５０３は、センサ群（ＭＡＰセンサ及びＭＡＦセンサ。場合によっては燃料噴射量測定部及びエンジン回転数測定部など。）を制御して、必要な測定値を取得する。また、処理途中のデータについては、ＲＡＭ２５０１に格納される。なお、プロセッサ２５０３は、ＲＯＭ２５０７を含む場合もある、さらに、ＲＡＭ２５０１を含む場合もある。本技術の実施の形態では、上で述べた処理を実施するための制御プログラムは、コンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ＲＯＭライタによってＲＯＭ２５０７に書き込まれる場合もある。このようなコンピュータ装置は、上で述べたプロセッサ２５０３、ＲＡＭ２５０１、ＲＯＭ２５０７などのハードウエアと制御プログラム（場合によってはＯＳも）とが有機的に協働することにより、上で述べたような各種機能を実現する。
【０２８７】
以上述べた本実施の形態をまとめると以下のようになる。
【０２８８】
本エンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）燃料噴射量の設定値及びエンジン回転数の設定値に対応する排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値、又はエンジンの新気量制御系による、新気量の測定値に応じた排気循環器のバルブ開度の制御値及びエンジンの吸気圧制御系による、吸気圧の測定値に応じた可変ノズルターボのノズル開度の制御値に応じて、新気量制御系と吸気圧制御系と新気量制御系から吸気圧制御系への第１干渉補償系と吸気圧制御系から新気量制御系への第２干渉補償系とを制御する制御ステップとを含む。そして、制御ステップが、（Ｂ１）排気循環器のバルブ開度の基準値又は制御値が排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と可変ノズルターボのノズル開度の基準値又は制御値が可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、吸気圧制御系と新気量制御系と第１及び第２干渉補償系とを有効化するステップと、（Ｂ２）第１の条件を満たすが第２の条件を満たさない場合には、新気量制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、吸気圧制御系を有効化するステップと、（Ｂ３）第２の条件を満たすが第１の条件を満たさない場合には、吸気圧制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、新気量制御系を有効化するステップとを含む。
【０２８９】
このように動作モードの切り替えを行うことによって、エミッションの削減が可能となる。
【０２９０】
また、上記吸気圧制御系と上記新気量制御系と上記第１及び第２干渉補償系とが、ゲイン要素を有する場合もある。このような場合には、上で述べた制御ステップにおいて、有効化、無効化又は出力調整については、ゲイン要素に値を設定することで実施するようにしてもよい。
【０２９１】
このようにすれば簡単に動作モードの切り替えを行うことができるようになる。
【０２９２】
さらに、上で述べた出力調整が、排気循環器のバルブ開度の基準値又は制御値若しくは可変ノズルターボのノズル開度の基準値又は制御値の関数であって０より大きく１未満の値を出力する関数の出力値により実施される場合もある。
【０２９３】
出力調整を適切に実施することによって、単なる動作モード切替に比して安定性が向上する。
【０２９４】
また、上で述べた関数が、一次関数又はシグモイド関数である場合もある。このような関数であれば、滑らかに値が変化するので、安定的な制御が可能となる。
【０２９５】
さらに、上で述べた一次関数又はシグモイド関数が、ノズル又はバルブを開放する方向と閉鎖する方向で異なる値を出力するヒステリシス関数として定義される場合もある。このようにすることにより、より安定的に制御することができるようになる。
【０２９６】
また、上で述べた制御ステップが、第１の条件と第２の条件とも満たす場合には、吸気圧制御系と新気量制御系と第１及び第２干渉補償系とを無効化するステップをさらに含むようにしてもよい。このような現象が発生する場合にも対処することができる。
【０２９７】
本エンジン制御装置は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部（図４１：３０００）と、（Ｂ）エンジンに対する燃料噴射量の設定値及びエンジン回転数の設定値に対応する排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値、又はエンジンの新気量制御系による、新気量の測定値に応じた排気循環器のバルブ開度の制御値及び前記エンジンの吸気圧制御系による、吸気圧の測定値に応じた可変ノズルターボのノズル開度の制御値に応じて、新気量制御系と吸気圧制御系と新気量制御系から吸気圧制御系への第１干渉補償系と吸気圧制御系から新気量制御系への第２干渉補償系とを制御する制御部（図４１：４０００）とを有する。
【０２９８】
そして、上記制御部が、（Ｂ１）排気循環器のバルブ開度の基準値又は制御値が排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と可変ノズルターボのノズル開度の基準値又は制御値が前記可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、前記吸気圧制御系と前記新気量制御系と前記第１及び第２干渉補償系とを有効化する。また、（Ｂ２）上記制御部は、第１の条件を満たすが第２の条件を満たさない場合には、新気量制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、吸気圧制御系を有効化する。さらに、（Ｂ３）上記制御部は、第２の条件を満たすが第１の条件を満たさない場合には、吸気圧制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、新気量制御系を有効化する。
【０２９９】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【図１】
2011077504.tif 000028
【図２】
2011077504.tif 000029
【図３】
2011077504.tif 000030
【図４】
2011077504.tif 000031
【図５】
2011077504.tif 000032
【図６】
2011077504.tif 000033
【図７】
2011077504.tif 000034
【図８】
2011077504.tif 000035
【図９】
2011077504.tif 000036
【図１０】
2011077504.tif 000037
【図１１】
2011077504.tif 000038
【図１２】
2011077504.tif 000039
【図１３】
2011077504.tif 000040
【図１４】
2011077504.tif 000041
【図１５】
2011077504.tif 000042
【図１６】
2011077504.tif 000043
【図１７】
2011077504.tif 000044
【図１８】
2011077504.tif 000045
【図１９】
2011077504.tif 000046
【図２０】
2011077504.tif 000047
【図２１】
2011077504.tif 000048
【図２２】
2011077504.tif 000049
【図２３】
2011077504.tif 000050
【図２４】
2011077504.tif 000051
【図２５】
2011077504.tif 000052
【図２６】
2011077504.tif 000053
【図２７】
2011077504.tif 000054
【図２８】
2011077504.tif 000055
【図２９】
2011077504.tif 000056
【図３０】
2011077504.tif 000057
【図３１】
2011077504.tif 000058
【図３２】
2011077504.tif 000059
【図３３】
2011077504.tif 000060
【図３４】
2011077504.tif 000061
【図３５】
2011077504.tif 000062
【図３６】
2011077504.tif 000063
【図３７】
2011077504.tif 000064
【図３８】
2011077504.tif 000065
【図３９】
2011077504.tif 000066
【図４０】
2011077504.tif 000067
【図４１】
2011077504.tif 000068
【手続補正書】
【提出日】平成24年4月5日(2012.4.5)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンの制御技術に関する。
【背景技術】
【０００２】
近年のエンジン（例えばディーゼルエンジン）においては、エミッションの低減及び燃費の向上を目的として、吸気制御系により新気量（ＭＡＦ：Mass Air Flow）及び吸気圧（ＭＡＰ：Manifold Air Pressure）が最適に制御されている。
【０００３】
一般的に、ディーゼルエンジンの吸気制御系は、図１に示すように、吸気圧制御系と新気量制御系を含み、吸気圧と新気量は、互いに独立に制御されている。吸気圧制御系は、排気中のスス（ＰＭ：Particulate Matter）を低減するために、可変ノズルターボＶＮＴ（Variable Nozzle Turbo）のノズル径を制御して吸気圧を制御している。一方、新気量制御系は、排気中の窒素酸化物（ＮＯｘ）を低減するために、排気をシリンダ内に再循環させる排気循環器ＥＧＲ（Exhaust Gas Recirculation）のバルブ開度を制御して新気量を制御している。これらの制御系に対し、運転条件（例えば、燃料噴射量、エンジン回転数）に応じて、実験的に決められた最適な吸気圧及び新気量の目標値が計画器によって上記制御系に出力されると共に、実験的に決められたＶＮＴノズル開度の基準値及びＥＧＲバルブ開度の基準値もフィードフォワード値として、上記制御系に出力される。このように、従来、吸気圧制御系と新気量制御系は、独立に動作しており、これを単入力単出力（ＳＩＳＯ：Single Input Single Output）制御と呼ぶ。ＳＩＳＯ制御において、吸気圧制御系と新気量制御系とが互いに干渉する場合には、吸気圧と新気量とを同時に目標に追従させることが難しくなる。
【０００４】
このため、図２に示すように、これら２つの制御系の干渉を補償する干渉補償部（すなわち、第１及び第２干渉補償部）を設けた協調制御系が考えられている。このような制御系を、多入力多出力（ＭＩＭＯ：Multi-Input Multi-Output）協調制御系と呼ぶ。このような協調制御系では、吸気圧制御系から新気量制御系への、第１干渉補償部による制御入力及び新気量制御系から吸気圧制御系への、第２干渉補償部による制御入力が、エンジンにおける両制御系間の干渉を補償する。このようなＭＩＭＯ協調制御系（以下、ＭＩＭＯ制御系と略記する。）を導入することによって、目標追従性を向上させることができるとされる。
【０００５】
なお、ＥＧＲ制御系において、ＥＧＲバルブを全閉から開弁させるときに、オープン制御で目標開度に、傾き、ヒステリシス、時間遅れを付けて、チャタリングやオーバーシュートを起きにくくする技術は存在する。また、同じく高圧ＥＧＲと低圧ＥＧＲを併用する内燃機関で、フィードバック制御対象を高圧ＥＧＲと低圧ＥＧＲとを切り替える際にヒステリシスを設けて、制御を安定させる技術も存在している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３６４１３号公報
【特許文献２】特開２００７−３１５３７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
環境問題の観点からエミッションの低減が強く要請され、計画器において、積極的にＥＧＲやＶＮＴの全閉を利用した制御が提案されている。しかしながら、このようなＥＧＲやＶＮＴの全閉を利用したＭＩＭＯ制御系を採用すると、エミッション、特にＮＯｘが増加してしまうことが本願発明者により新たに検証された。
【０００８】
従って、本技術の目的は、排気循環器及び可変ノズルターボを有するエンジンのエミッションを低減するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本エンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）燃料噴射量の設定値及びエンジン回転数の設定値に対応する排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値、又はエンジンの新気量制御系による、新気量の測定値に応じた排気循環器のバルブ開度の制御値及びエンジンの吸気圧制御系による、吸気圧の測定値に応じた可変ノズルターボのノズル開度の制御値に応じて、新気量制御系と吸気圧制御系と新気量制御系から吸気圧制御系への第１干渉補償系と吸気圧制御系から新気量制御系への第２干渉補償系とを制御する制御ステップとを含む。そして、制御ステップが、（Ｂ１）排気循環器のバルブ開度の基準値又は制御値が排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と可変ノズルターボのノズル開度の基準値又は制御値が可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、吸気圧制御系と新気量制御系と第１及び第２干渉補償系とを有効化するステップと、（Ｂ２）第１の条件を満たすが第２の条件を満たさない場合には、新気量制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、吸気圧制御系を有効化するステップと、（Ｂ３）第２の条件を満たすが第１の条件を満たさない場合には、吸気圧制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、新気量制御系を有効化するステップとを含む。
【図面の簡単な説明】
【００１０】
【図１】図１は、従来のエンジン制御装置のブロック線図を示す図である。
【図２】図２は、多入力多出力協調制御系の一例を示す図である。
【図３】図３は、エンジンの概要を表す図である。
【図４】図４は、従来技術の問題を説明するための図である。
【図５】図５は、従来技術の問題及び本技術の実施の形態の効果について説明するための図である。
【図６】図６は、制御モード分布図を表す図である。
【図７】図７は、領域Ｃにおけるブロック線図を表す図である。
【図８】図８は、領域Ｂにおけるブロック線図を表す図である。
【図９】図９は、領域Ｄにおけるブロック線図を表す図である。
【図１０】図１０は、実施の形態１の具体例１におけるブロック線図を表す図である。
【図１１】図１１は、領域Ａにおけるゲイン要素の設定例を示す図である。
【図１２】図１２は、領域Ｄにおけるゲイン要素の設定例を示す図である。
【図１３】図１３は、領域Ｃにおけるゲイン要素の設定例を示す図である。
【図１４】図１４は、領域Ｂにおけるゲイン要素の設定例を示す図である。
【図１５】図１５は、実施の形態１の具体例１における処理フローを示す図である。
【図１６】図１６は、実施の形態１の具体例２におけるブロック線図を表す図である。
【図１７】図１７は、領域Ａにおけるゲイン要素の設定例を示す図である。
【図１８】図１８は、領域Ｄにおけるゲイン要素の設定例を示す図である。
【図１９】図１９は、領域Ｃにおけるゲイン要素の設定例を示す図である。
【図２０】図２０は、領域Ｂにおけるゲイン要素の設定例を示す図である。
【図２１】図２１は、実施の形態１の具体例２における処理フローを示す図である。
【図２２】図２２は、新気量、吸気圧、ＥＧＲバルブ開度及びＶＮＴノズル開度の時間変化を表す図である。
【図２３】図２３は、ゲイン関数の一例を表す図である。
【図２４】図２４は、実施の形態２の具体例１における処理フローを示す図である。
【図２５】図２５は、実施の形態２の具体例２における処理フローを示す図である。
【図２６】図２６は、ゲイン関数にシグモイド関数を用いる例を示す図である。
【図２７】図２７は、シグモイド関数の例を示す図である。
【図２８】図２８は、実施の形態２の具体例３における処理フローを示す図である。
【図２９】図２９は、実施の形態２の具体例４における処理フローを示す図である。
【図３０】図３０は、ゲイン関数にヒステリシスを伴う一次関数を採用した場合の例を示す図である。
【図３１】図３１は、実施の形態２の具体例５における処理フローを示す図である。
【図３２】図３２は、実施の形態２の具体例５における処理フローを示す図である。
【図３３】図３３は、実施の形態２の具体例６における処理フローを示す図である。
【図３４】図３４は、実施の形態２の具体例６における処理フローを示す図である。
【図３５】図３５は、ゲイン関数にヒステリシスを伴うシグモイド関数を採用した場合の例を示す図である。
【図３６】図３６は、実施の形態２の具体例７における処理フローを示す図である。
【図３７】図３７は、実施の形態２の具体例７における処理フローを示す図である。
【図３８】図３８は、実施の形態２の具体例８における処理フローを示す図である。
【図３９】図３９は、実施の形態２の具体例８における処理フローを示す図である。
【図４０】図４０は、コンピュータの機能ブロック図である。
【図４１】図４１は、エンジン制御装置の機能ブロック図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図３に、本技術の実施の形態に係るエンジンの一例としてディーゼルエンジンを示す。エンジン本体１には、エンジン本体１からの排ガスを供給する排気循環器ＥＧＲと、排ガスの圧力にてタービンを回して新気（Fresh Air）を圧縮してエンジン本体１に供給する可変ノズルターボＶＮＴとが接続されている。可変ノズルターボＶＮＴのノズル開度を調整することによって、可変ノズルターボＶＮＴのタービンの回転が調整され、吸気圧（ＭＡＰ）センサで測定される吸気圧（ＭＡＰ）が調整される。一方、排気循環器ＥＧＲに設けられているＥＧＲバルブのバルブ開度を調整することによって、新気量（ＭＡＦ）センサで測定される新気量（ＭＡＦ）が調整される。
【００１２】
本実施の形態に係るエンジン制御装置１００には、ＭＡＰセンサからの吸気圧測定値と、ＭＡＦセンサからの新気量測定値と、外部から与えられる燃料噴射量の設定値と、同じく外部から与えられるエンジン回転数の設定値とが入力されるようになっている。また、エンジン制御装置１００からは、ＥＧＲバルブのバルブ開度がＥＧＲバルブに出力され、ＶＮＴノズルのノズル開度がＶＮＴノズルに出力されるようになっている。
【００１３】
上でも述べたように、環境問題の観点からエミッションの低減が強く要請され、計画器において、積極的にＥＧＲやＶＮＴの全閉を利用した制御が提案されている。しかしながら、ＭＩＭＯ制御系において全閉を利用しない制御（以下、ＭＩＭＯ制御（飽和なし））から全閉を利用する制御（以下、ＭＩＭＯ制御（飽和あり））に変更すると、エミッション、特にＮＯｘが増加してしまうという現象が観測された。
【００１４】
この原因を図４を用いて簡単に述べる。図４の左列がＭＩＭＯ制御（飽和なし）の場合における新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表す。また、図４の中央列がＭＩＭＯ制御（飽和あり）の場合における新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表す。さらに、図４の右列がＳＩＳＯ制御の場合における新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表す。なお、新気量及び吸気圧の波形図における実線は目標値、点線は実際の値を表す。
【００１５】
ここで注目すべきは、新気量及びＶＮＴノズル開度の時間変化であり、ＭＩＭＯ制御（飽和なし）では、ＶＮＴノズル開度は全閉になっていないが、ＭＩＭＯ制御（飽和あり）では、ＶＮＴノズル開度が全閉になっている部分がある。そして、新気量の時間変化を確認すると、ＭＩＭＯ制御（飽和なし）であればオーバーシュート（Ｏ／Ｓ）は小さいが、ＭＩＭＯ制御（飽和あり）になると大きなオーバーシュートが発生してしまう。この大きなオーバーシュートが、ＮＯｘの増大を引き起こしている。なお、以下にも示すが、エミッションのうちＰＭについてはＭＩＭＯ制御（飽和あり）は有効であり、その他の要素を考慮に入れると、ＭＩＭＯ制御（飽和あり）の方が総合的に良いことは分かっている。図示していないが、ＭＩＭＯ制御では、ＶＮＴ全開時新気量の時間変化を見ると、逆にアンダーシュート（Ｕ／Ｓ）が発生することも分かっている。
【００１６】
そこで本実施の形態では、部分的にＳＩＳＯ制御を導入する。すなわち、ＶＮＴノズル開度が全閉又はＥＧＲバルブ開度が全閉若しくは両方が全閉となる部分について、ＳＩＳＯ制御を導入する。ＳＩＳＯ制御では、図４右側の新気量の波形を見ても分かるようにオーバーシュートは小さくなっており、ＮＯｘの削減が可能となる。又、ＶＮＴノズル開度が全開又はＥＧＲバルブ開度が全開若しくは両方が全開となる部分についても、ＳＩＳＯ制御を導入する。このようにすれば、上で述べたアンダーシュートは改善され、同様にＮＯｘの削減が可能となる。
【００１７】
図５に、ＮＯｘとＰＭの量の関係を表す。図５では、縦軸がＰＭの量を表し、横軸がＮＯｘの量を表す。従来方式（２つのＳＩＳＯ独立制御）の場合におけるＰＭの量及びＮＯｘの量をそれぞれ「１」として菱形の点でプロットすると、ＭＩＭＯ制御（飽和あり）については四角の点がプロットされる。すなわち、ＮＯｘについては増加しているがＰＭについては減少している。一方、本実施の形態のようにＭＩＭＯ制御とＳＩＳＯ制御を動的に切り替える方式を採用すれば、丸の点がプロットされる。すなわち、前２つの方式よりも、ＮＯｘ及びＰＭ共に減少しており、有効であることが分かる。
【００１８】
どのような場合にＭＩＭＯ制御とＳＩＳＯ制御を切り替えるのかについては、図６を用いて説明する。図６では、縦軸が燃料噴射量（％）を表し、横軸が回転数（ｒｐｍ）を表す。図６の上方は高負荷状態を表し、下方は低負荷状態を表す。また、図６の左側は低回転状態を表し、右側は高回転状態を表す。図６に示すように、このような平面は６つの領域Ａ乃至Ｆに分割される。より具体的には、中回転から高回転状態の一部で且つ低負荷状態であるＥＧＲ全開領域Ｅでは、ＳＩＳＯ制御モードで吸気圧制御系を有効にして、ＥＧＲバルブを全開にする。また、中回転から高回転状態の一部で且つ高負荷状態であるＥＧＲ全閉領域Ｂでは、ＳＩＳＯ制御モードで吸気圧制御系を有効にして、ＥＧＲバルブを全閉にする。さらに、高回転状態で且つ中負荷から高負荷状態であるＶＮＴ全開領域Ｆでは、ＳＩＳＯ制御モードで新気量制御系を有効にして、ＶＮＴノズルを全開にする。また、中回転から高回転状態で領域Ｂ、Ｅ及びＦを除いた領域ＡにおいてはＭＩＭＯ制御モードで、吸気圧制御系及び新気量制御系並びに第１及び第２干渉補償部を有効にする。一方、低回転状態であるＶＮＴ全閉領域Ｃでは、ＶＮＴノズル開度を全閉にする。すなわちＳＩＳＯ制御モードで新気量制御系を有効にする。但し、低回転状態で非常に高い高負荷状態であるＶＮＴ＆ＥＧＲ全閉領域ＤになるとＶＮＴノズル開度もＥＧＲバルブ開度も全閉にする。この領域は、ＳＩＳＯ制御モードであるが、以下にも述べるように、吸気圧制御系、新気量制御系並びに第１及び第２干渉補償部を全て無効化する。このようなモード分布に従って、領域の境界をまたぐ場合にモード切替を行う。
【００１９】
本実施の形態において、ＭＩＭＯ制御モードでは、図２のブロック線図に示すような制御が行われる。すなわち、計画器１１０は、エンジン回転数の設定値及び燃料噴射量の設定値に対応して新気量目標値及び吸気圧目標値並びにＥＧＲバルブ開度の基準値及びＶＮＴノズル開度の基準値とを出力する。新気量制御器１２０は、新気量目標値と新気量の測定値との差に対してＥＧＲバルブ開度の制御値を出力する。第２干渉補償部１３０は、新気量目標値と新気量の測定値との差に対してＶＮＴノズル開度の補償量を出力する。吸気圧制御器１４０は、吸気圧目標値と吸気圧の測定値との差に対してＶＮＴノズル開度の制御値を出力する。第１干渉補償部１５０は、吸気圧目標値と吸気圧の測定値との差に対してＥＧＲバルブ開度の補償量を出力する。最終的なＥＧＲバルブ開度Ｅｉｎは、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量と計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとの和である。また、最終的なＶＮＴノズル開度Ｖｉｎは、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量と計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとの和である。なお、エンジン本体１に設けられた新気量センサにより新気量が測定されフィードバックされる。また、吸気圧センサにより吸気圧が測定されフィードバックされる。これらの計画器１１０、新気量制御器１２０、第１干渉補償部１５０、第２干渉補償部１３０及び吸気圧制御器１４０は、全てエンジン本体１に応じて設定されており、従来と同じ動作を行うものであるから、これ以上の説明は省略する。
【００２０】
ＶＮＴノズル開度が全閉（全閉とみなされる範囲に入る場合を含む。以下同じ。）又は全開（全開とみなされる範囲に入る場合を含む。以下同じ。）で吸気圧制御系が無効になり新気量制御系が有効になっているＳＩＳＯ制御モードでは、図７のブロック線図のような制御が行われる。すなわち、図示されていない第１及び第２干渉補償部１５０及び１３０は無効化され、さらに出力が点線で示されている吸気圧制御器１４０も無効化されている。従って、ＶＮＴノズル開度Ｖｉｎは、計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとなる。一方、ＥＧＲバルブ開度Ｅｉｎは、新気量制御器１２０からの制御値と計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとの和となる。
【００２１】
一方、ＥＧＲバルブ開度が全閉又は全開で新気量制御系が無効になり吸気圧制御系が有効になっているＳＩＳＯ制御モードでは、図８のブロック線図のような制御が行われる。すなわち、図示されていない第１及び第２干渉補償部１５０及び１３０は無効化され、さらに出力が点線で示されている新気量制御器１２０も無効化されている。従って、ＶＮＴノズル開度Ｖｉｎは、吸気圧制御器１４０からの制御値と計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとの和となる。一方、ＥＧＲバルブ開度Ｅｉｎは、計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとなる。
【００２２】
また、ＥＧＲバルブ開度が全閉又は全開で且つＶＮＴノズル開度が全閉又は全開で吸気圧制御系及び新気量制御系が両方無効となるＳＩＳＯ制御モードでは、図９のブロック線図のような制御が行われる。すなわち、図示されていない第１及び第２干渉補償部１５０及び１３０は無効化され、さらに出力が点線で示されている新気量制御器１２０及び吸気圧制御器１４０も無効化されている。従って、ＶＮＴノズル開度Ｖｉｎは、計画器１１０からのＶＮＴノズル開度の基準値Ｖｂｓとなる。一方、ＥＧＲバルブ開度Ｅｉｎは、計画器１１０からのＥＧＲバルブ開度の基準値Ｅｂｓとなる。
【００２３】
［実施の形態１の具体例１］
上で述べたモード切替を実現するための第１の具体例に係るブロック線図を図１０に示す。図１０に示すように、新気量制御器１２０の出力に対して作用する可変のゲイン要素（ゲイン関数とも呼ぶ）Ｋｄｆと、第２干渉補償部１３０の出力に対して作用する可変のゲイン要素Ｋｃｆと、第１干渉補償部１５０の出力に対して作用する可変のゲイン要素Ｋｃｐと、吸気圧制御器１４０の出力に対して作用する可変のゲイン要素Ｋｄｐと、ゲイン要素Ｋｄｆ、Ｋｃｐ、Ｋｃｆ及びＫｄｐの値を設定するゲイン関数設定器１６０とを導入する。本具体例１ではゲイン関数設定器１６０は、計画器１１０が出力するＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度Ｅｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断すると共に、ＶＮＴノズル開度Ｖｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断し、その判断に基づきゲイン要素の値を設定する。
【００２４】
図１１に、図６の領域ＡのＭＩＭＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉でも全開でもなく、ＶＮＴノズル開度が全閉でも全開でもないと判断すると、図１１に示すように、Ｋｄｆ＝１、Ｋｃｐ＝１、Ｋｃｆ＝１、Ｋｄｐ＝１に設定する。このようにすることによって、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０を全て有効化して、実質的に図２に示すようなブロック線図となる。
【００２５】
図１２に、図６のＶＮＴ及びＥＧＲ全閉領域ＤのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉又は全開で、ＶＮＴノズル開度が全閉又は全開であると判断すると、図１２に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図９に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０の全ての出力に「０」のゲインを乗じることによって無効化している。
【００２６】
図１３に、図６のＶＮＴ全閉領域Ｃ又はＶＮＴ全開領域ＦのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉でも全開でもないが、ＶＮＴノズル開度は全閉又は全開であると判断すると、図１３に示すように、Ｋｄｆ＝１、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図７に示すようなブロック線図となる。このように、新気量制御器１２０については有効化し、第２干渉補償部１３０、第１干渉補償部１５０及び吸気圧制御器１４０の出力に「０」のゲインを乗じることによって無効化する。
【００２７】
図１４に、図６のＥＧＲ全閉領域Ｂ又はＥＧＲ全開領域ＥのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１６０が、ＥＧＲバルブ開度の基準値Ｅｂｓ及びＶＮＴノズル開度の基準値Ｖｂｓから、ＥＧＲバルブ開度が全閉又は全開であるが、ＶＮＴノズル開度は全閉でも全開でもないと判断すると、図１４に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝１に設定する。このようにすることによって、実質的に図８に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０及び第１干渉補償部１５０の出力に「０」のゲインを乗じることによって無効化する一方、吸気圧制御器１４０については有効化する。
【００２８】
次に、図１５を用いてゲイン関数設定器１６０等の処理について説明する。まず、時刻ｋを０に初期化する（ステップＳ１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下（全閉を０，全開を１）に規格された値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００２９】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ５）。そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ７）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【００３０】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ９）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１１）。
【００３１】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１３）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１５）。
【００３２】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagのみが０でない状態であるか判断する（ステップＳ１７）。この条件を満たす場合には、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１３に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０且つＫｄｆ＝１を設定する（ステップＳ１９）。
【００３３】
さらに、V-flagのみが０でないわけではない場合、ゲイン関数設定器１６０は、E-flagのみが０でない状態であるか判断する（ステップＳ２１）。この条件を満たす場合には、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１４に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０且つＫｄｐ＝１を設定する（ステップＳ２３）。
【００３４】
ステップＳ１１の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００３５】
また、ステップＳ１５の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００３６】
さらに、ステップＳ１９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出する。そして、新気量制御器１２０からの制御値とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。一方、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００３７】
また、ステップＳ２３の後には、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出する。そして、吸気圧制御器１４０からの制御値とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。一方、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。
【００３８】
ステップＳ２１の条件を満たさないと判断された場合、ステップＳ１１、Ｓ１５、Ｓ１９及びＳ２３の後に、ｋが１インクリメントされ（ステップＳ２５）、ステップＳ５に戻る。このような処理を、エンジン本体を停止するまで実施する。
【００３９】
このようにゲイン要素を導入することによって、有効無効を容易に設定することができる。
【００４０】
［実施の形態１の具体例２］
上で述べたモード切替を実現するための第２の具体例に係るブロック線図を図１６に示す。図１６に示すように、新気量制御器１２０の出力に対して作用する可変のゲイン要素（ゲイン関数とも呼ぶ）Ｋｄｆと、第２干渉補償部１３０の出力に対して作用する可変のゲイン要素Ｋｃｆと、第１干渉補償部１５０の出力に対して作用する可変のゲイン要素Ｋｃｐと、吸気圧制御器１４０の出力に対して作用する可変のゲイン要素Ｋｄｐと、ゲイン要素Ｋｄｆ、Ｋｃｐ、Ｋｃｆ及びＫｄｐの値を設定するゲイン関数設定器１７０とを導入する。ここまではほぼ図１０と同様である。
【００４１】
しかし、本具体例２ではゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎの値からそのままＥＧＲバルブ開度Ｅｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断すると共に、ＶＮＴノズル開度Ｖｉｎの値からそのままＶＮＴノズル開度Ｖｉｎが全閉又は全開若しくは全閉又は全開とみなされる範囲になっているかを判断し、その判断に基づきゲイン要素の値を設定する。
【００４２】
図１７に、図６の領域ＡのＭＩＭＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉でも全開でもなく、ＶＮＴノズル開度が全閉でも全開でもないと判断すると、図１７に示すように、Ｋｄｆ＝１、Ｋｃｐ＝１、Ｋｃｆ＝１、Ｋｄｐ＝１を設定する。このようにすることによって、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０を全て有効化して、実質的に図２に示すようなブロック線図となる。
【００４３】
図１８に、図６のＶＮＴ及びＥＧＲ全閉領域ＤのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉又は全開で、ＶＮＴノズル開度が全閉又は全開であると判断すると、図１８に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図９に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０、吸気圧制御器１４０及び第１干渉補償部１５０の出力の全てに「０」のゲインを乗じることによって無効化している。
【００４４】
図１９に、図６のＶＮＴ全閉領域Ｃ又はＶＮＴ全開領域ＦのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉でも全開でもないが、ＶＮＴノズル開度は全閉又は全開であると判断すると、図１９に示すように、Ｋｄｆ＝１、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝０に設定する。このようにすることによって、実質的に図７に示すようなブロック線図となる。このように、新気量制御器１２０については有効化し、第２干渉補償部１３０、第１干渉補償部１５０及び吸気圧制御器１４０の出力に「０」のゲインを乗じることによって無効化する。
【００４５】
図２０に、図６のＥＧＲ全閉領域Ｂ又はＥＧＲ全開領域ＥのＳＩＳＯ制御モードにおけるゲイン要素の設定を示す。すなわち、ゲイン関数設定器１７０が、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎから、ＥＧＲバルブ開度が全閉又は全開であるが、ＶＮＴノズル開度は全閉でも全開でもないと判断すると、図２０に示すように、Ｋｄｆ＝０、Ｋｃｐ＝０、Ｋｃｆ＝０、Ｋｄｐ＝１に設定する。このようにすることによって、実質的に図８に示すようなブロック線図となる。このように、新気量制御器１２０、第２干渉補償部１３０及び第１干渉補償部１５０の出力に「０」のゲインを乗じることによって無効化する一方、吸気圧制御器１４０については有効化する。
【００４６】
次に、図２１を用いてゲイン関数設定器１７０等の処理について説明する。まず、時刻ｋを０に初期化する（ステップＳ３１）。時刻ｋはエンジン制御装置１００共通の時刻とする。
【００４７】
また、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ３３）。そして、ゲイン関数設定器１７０は、時刻ｋにおけるＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、ＶＮＴノズル開度Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ３５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。なお、Ｅｉｎ（ｋ）及びＶｉｎ（ｋ）は、０以上１以下（全閉を０，全開を１）に規格された値である。
【００４８】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ３７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１７に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ３９）。
【００４９】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ４１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１８に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ４３）。
【００５０】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagのみが０でない状態であるか判断する（ステップＳ４５）。この条件を満たす場合には、ＶＮＴ全閉領域Ｃ又はＶＮＴ全開領域ＦのＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１９に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０且つＫｄｆ＝１を設定する（ステップＳ４７）。
【００５１】
さらに、V-flagのみが０でないわけではない場合、ゲイン関数設定器１７０は、E-flagのみが０でない状態であるか判断する（ステップＳ４９）。この条件を満たす場合には、ＥＧＲ全閉領域Ｂ又はＥＧＲ全開領域ＥのＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図２０に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０且つＫｄｐ＝１を設定する（ステップＳ５１）。
【００５２】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００５３】
そして、ステップＳ３９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００５４】
また、ステップＳ４３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００５５】
さらに、ステップＳ４７の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出する。そして、新気量制御器１２０からの制御値とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。一方、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００５６】
また、ステップＳ５１の後には、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出する。そして、吸気圧制御器１４０からの制御値とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。一方、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。
【００５７】
ステップＳ４９の条件を満たさないと判断された場合、ステップＳ３９、Ｓ４３、Ｓ４７及びＳ５１の後に、ｋが１インクリメントされ（ステップＳ５３）、ステップＳ３３に戻る。このような処理を、エンジン本体１を停止するまで実施する。
【００５８】
このように、ＥＧＲバルブ開度Ｅｉｎ及びＶＮＴノズル開度Ｖｉｎを直接参照して処理を行うようにしてもよい。
【００５９】
［実施の形態２］
第１の実施の形態に従って、ＭＩＭＯ制御モードとＳＩＳＯ制御モードとを動的に切り替えることによって、図５で示したようにＰＭ及びＮＯｘを減少させることができる。しかしながら、例えば図６で示した制御モード分布における領域の境界あたりで過渡状態（加速又は減速時）にあると、ＶＮＴやＥＧＲの状態によって、ＭＩＭＯ制御モードにおいて干渉補償パスが加わったり、加わらなかったりするという現象が発生する場合があることが分かってきた。すなわち、ＭＩＭＯ制御モードからＳＩＳＯ制御モードへ、ＳＩＳＯ制御モードからＭＩＭＯ制御モードへと頻繁に制御モードが切り替わるため、図２２に示すように、チャタリングが発生して制御系が不安定になる場合がある。図２２は、新気量、吸気圧、ＥＧＲバルブ開度、ＶＮＴノズル開度の時間変化を表しており、新気量及び吸気圧については実線が目標値を、点線が実際の値を表している。また、ＥＧＲバルブ開度及びＶＮＴノズル開度については実際の値を示している。図２２において、楕円で囲まれた部分でチャタリングが発生している。
【００６０】
そこで、急にモードの切り替えを行うのではなく、ＶＮＴノズルやＥＧＲバルブが全閉近傍又は全開近傍においてゲイン要素の値を調整して徐々にモード切替を行うことによって、干渉補償パスの有り無しが頻繁に切り替わるというリアクションを緩和する。
【００６１】
［実施の形態２の具体例１］
例えば、図２３に示すような、ＶＮＴノズル開度又はＥＧＲバルブ開度を引数とする関数をゲイン関数として採用する。図２３は、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図２３の例では、開度０（すなわち全閉）から開度Ｎまでの全閉とみなされる範囲については、ゲイン関数は、傾き１／Ｎでバルブ又はノズルの開度の１次関数となる。また、Ｎ以上（１−Ｎ）以下の範囲については定数「１」となる。さらに、（１−Ｎ）以上の範囲については傾き（−１／Ｎ）でバルブ又はノズルの開度の１次関数となる。
【００６２】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図２４に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ６１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００６３】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ６３）。そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ６５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【００６４】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ６７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ６９）。
【００６５】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ７１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ７３）。
【００６６】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ７５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｂｓ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ７７）。このように図２３の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値Ｖｂｓ（ｋ）／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【００６７】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ７９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｂｓ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ８１）。このように図２３の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（１−Ｖｂｓ（ｋ））／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【００６８】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ８３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｂｓ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ８５）。このように図２３の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値Ｅｂｓ（ｋ）／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【００６９】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ８７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｂｓ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ８９）。このように図２３の右側における傾き−１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値（１−Ｅｂｓ（ｋ））／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【００７０】
ステップＳ６９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００７１】
また、ステップＳ７３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００７２】
さらに、ステップＳ７７、Ｓ８１、Ｓ８５及びＳ８９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００７３】
ステップＳ８７の条件を満たさないと判断された場合、ステップＳ６９、Ｓ７３、Ｓ７７、Ｓ８１、Ｓ８５及びＳ８９の後に、ｋが１インクリメントされ（ステップＳ９１）、ステップＳ６３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【００７４】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【００７５】
［実施の形態２の具体例２］
本具体例でも、第１の具体例と同様に図２３に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図２５に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ１０１）。
【００７６】
また、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ１０３）。そして、ゲイン関数設定器１７０は、時刻ｋにおけるＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、ＶＮＴノズル開度Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ１０５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。なお、Ｅｉｎ（ｋ）及びＶｉｎ（ｋ）は、０以上１以下の値である。
【００７７】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ１０７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１７に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１０９）。
【００７８】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１１１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１８に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１１３）。
【００７９】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ１１５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｉｎ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ１１７）。このように図２３の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値Ｖｉｎ（ｋ）／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【００８０】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ１１９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｉｎ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ１２１）。このように図２３の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値（１−Ｖｉｎ（ｋ））／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【００８１】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ１２３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｉｎ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ１２５）。このように図２３の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値Ｅｉｎ（ｋ）／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【００８２】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ１２７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２３のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｉｎ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ１２９）。このように図２３の右側における傾き−１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値（１−Ｅｉｎ（ｋ））／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【００８３】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００８４】
そして、ステップＳ１０９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００８５】
また、ステップＳ１１３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【００８６】
さらに、ステップＳ１１７、Ｓ１２１、Ｓ１２５及びＳ１２９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【００８７】
ステップＳ１２７の条件を満たさないと判断された場合、ステップＳ１０９、Ｓ１１３、Ｓ１１７、Ｓ１２１、Ｓ１２５及びＳ１２９の後に、ｋが１インクリメントされ（ステップＳ１３１）、ステップＳ１０３に戻る。このような処理を、エンジン本体を停止するまで実施する。
【００８８】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【００８９】
［実施の形態２の具体例３］
実施の形態２の具体例１及び２においては図２３に示すようなゲイン関数を採用していたが、本実施の形態は図２３に示したようなゲイン関数に限定されるものではない。例えば図２６に示すようなゲイン関数を採用することも可能である。図２６では、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図２６の例では、開度０（すなわち全閉）から開度Ｎまでの全閉とみなされる範囲については、シグモイド関数を採用する。シグモイド関数ｓ（ｘ）は、以下のように定義され、単調増加連続関数の１つであり、図２７に示すように１つの変曲点を持つ。図２７は、ゲイン１の標準シグモイド関数を表している。
【００９０】
【数１】
2011077504.tif 000069
【００９１】
シグモイド関数を用いる方が、全体として滑らかな関数となっているので、チャタリング防止に有効である。
【００９２】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図２８に示すような処理を実施する。
【００９３】
まず、時刻ｋを０に初期化する（ステップＳ１４１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【００９４】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ１４３）。そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ１４５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【００９５】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ１４７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１４９）。
【００９６】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１５１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１５３）。
【００９７】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ１５５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ１５７）。
【００９８】
Ｖ-1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【００９９】
【数２】
2011077504.tif 000070
【０１００】
この式で、Ｎは上で述べた全閉又は全開とみなす範囲を決定する値であり、Ｓは例えば１０以上の定数である。この式は、Ｖｂｓ（ｋ）＝０の時に０に、Ｖｂｓ（ｋ）＝Ｎ／２の時に１／２に、Ｖｂｓ（ｋ）＝Ｎの時に１となるようにしたシグモイド関数の一例である。Ｓは１０より大きくするほど、この条件に近くなる。例えばＮ＝０．２でＳ＝１０であれば、Ｖｂｓ（ｋ）＝０の時に０．０００４５となり、Ｖｂｓ（ｋ）＝Ｎ／２＝０．１の時に０．５となり、Ｖｂｓ（ｋ）＝Ｎ＝０．２の時に０．９９９９６となる。
【０１０１】
このように図２６の左側におけるＶ-1関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ほぼＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１０２】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ１５９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ１６１）。
【０１０３】
Ｖ1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０１０４】
【数３】
2011077504.tif 000071
【０１０５】
Ｎ及びＳの定義はＶ-1関数と同じである。この式は、Ｖｂｓ（ｋ）＝（１−Ｎ）の時に１に、Ｖｂｓ（ｋ）＝１−Ｎ／２の時に１／２に、Ｖｂｓ（ｋ）＝１の時に０となるようにしたシグモイド関数の一例である。Ｓは１０より大きくするほど、この条件に近くなる。例えばＮ＝０．２でＳ＝１０であれば、Ｖｂｓ（ｋ）＝（１−０．２）＝０．８の時に０．９９９６となり、Ｖｂｓ（ｋ）＝１−０．２／２＝０．９の時に０．５となり、Ｖｂｓ（ｋ）＝１の時に０．０００４５となる。
【０１０６】
このように図２６の右側におけるＶ1関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでほぼＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１０７】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ１６３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ１６５）。
【０１０８】
Ｅ-1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０１０９】
【数４】
2011077504.tif 000072
【０１１０】
基本的に（２）式と同じ形の関数である。このように図２６の左側におけるＥ-1関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ほぼＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１１１】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ１６７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ１６９）。
【０１１２】
Ｅ1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０１１３】
【数５】
2011077504.tif 000073
【０１１４】
基本的に（３）式と同じ形の関数である。このように図２６の右側における関数Ｅ1に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでほぼＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１１５】
ステップＳ１４９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１１６】
また、ステップＳ１５３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１１７】
さらに、ステップＳ１５７、Ｓ１６１、Ｓ１６５及びＳ１６９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１１８】
ステップＳ１６７の条件を満たさないと判断された場合、ステップＳ１４９、Ｓ１５３、Ｓ１５７、Ｓ１６１、Ｓ１６５及びＳ１６９の後に、ｋが１インクリメントされ（ステップＳ１７１）、ステップＳ１４３に戻る。このような処理を、エンジン本体１を停止するまで実施する。
【０１１９】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【０１２０】
［実施の形態２の具体例４］
本具体例でも、第３の具体例と同様に図２６に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図２９に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ１８１）。
【０１２１】
また、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に設定する（ステップＳ１８３）。そして、ゲイン関数設定器１７０は、時刻ｋにおけるＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、ＶＮＴノズル開度Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）がＮより大きければ（すなわち全開状態）、E-flagに「１」を設定する（ステップＳ１８５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。なお、Ｅｉｎ（ｋ）及びＶｉｎ（ｋ）は、０以上１以下の値である。
【０１２２】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ１８７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１７に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ１８９）。
【０１２３】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ１９１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１８に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ１９３）。
【０１２４】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ１９５）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ１９７）。
【０１２５】
Ｖ-1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０１２６】
【数６】
2011077504.tif 000074
【０１２７】
基本的に（２）式と同じ形の関数である。このように図２６の左側における関数Ｖ-1に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ほぼＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１２８】
さらに、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ１９９）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ２０１）。
【０１２９】
Ｖ1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０１３０】
【数７】
2011077504.tif 000075
【０１３１】
基本的に（３）式と同じ形の関数である。このように図２６の右側における関数Ｖ1に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１３２】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ２０３）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ２０５）。
【０１３３】
Ｅ-1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０１３４】
【数８】
2011077504.tif 000076
【０１３５】
基本的に（４）式と同じ形の関数である。このように図２６の左側における関数Ｅ-1に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ほぼＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１３６】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ２０７）。この条件を満たす場合には、本具体例では出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図２６のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ２０９）。
【０１３７】
Ｅ1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０１３８】
【数９】
2011077504.tif 000077
【０１３９】
基本的に（５）式と同じ形の関数である。このように図２６の右側における関数Ｅ1に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでほぼＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１４０】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１４１】
そして、ステップＳ１８９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１４２】
また、ステップＳ１９３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１４３】
さらに、ステップＳ１９７、Ｓ２０１、Ｓ２０５及びＳ２０９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１４４】
ステップＳ２０７の条件を満たさないと判断された場合、ステップＳ１８９、Ｓ１９３、Ｓ１９７、Ｓ２０１、Ｓ２０５及びＳ２０９の後に、ｋが１インクリメントされ（ステップＳ２１１）、ステップＳ１８３に戻る。このような処理を、エンジン本体１を停止するまで実施する。
【０１４５】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングを有効に防止できるようになる。
【０１４６】
［実施の形態２の具体例５］
本具体例では、図３０に示すような、ＶＮＴノズル開度又はＥＧＲバルブ開度を引数とする関数をゲイン関数として採用する。図３０では、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図３０の例では、ヒステリシス特性を採用した１次関数を採用している。すなわち、ＶＮＴノズル開度又はＥＧＲバルブ開度が全開から全閉に向かう場合には、ノズル又はバルブ開度０以上Ｎ以下の範囲において図２３と同じ１次関数が採用されている。すなわち、開度０（すなわち全閉）から開度Ｎまでの全閉とみなされる範囲については、傾き１／Ｎでバルブ又はノズルの開度の１次関数となる。これに対して、全閉から全開に向かう場合には、ヒステリシス幅Ｍだけ右にシフトした一次関数が採用されている。すなわち、ノズル又はバルブ開度が０以上Ｍ以下でゲインは「０」であり、Ｍ以上Ｎ＋Ｍ以下で傾き１／Ｎの一次関数に従う。
【０１４７】
また、全開から全閉の方向の場合にはＮ以上（１−Ｎ−Ｍ）以下の範囲は定数「１」となる。逆に、全閉から全開の方向の場合には（Ｎ＋Ｍ）以上（１−Ｎ）以下の範囲は定数「１」となる。
【０１４８】
一方、ＶＮＴノズル開度又はＥＧＲバルブ開度が全閉から全開に向かう場合には、ノズル又はバルブ開度が（１−Ｎ）以上１以下の範囲（全開とみなされる範囲）については、傾き（−１／Ｎ）でノズル又はバルブの開度の一次関数となる。これに対して、全開から全閉に向かう場合には、ヒステリシス幅Ｍだけ左にシフトした関数が採用されている。Ｍは、例えば０．０５から０．１程度の値である。すなわち、ノズル又はバルブ開度が１から（１−Ｍ）まではゲインは「０」であり、（１−Ｍ）から（１−Ｎ−Ｍ）までは傾き（−１／Ｎ）の一次関数に従う。
【０１４９】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図３１及び図３２に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ２２１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１５０】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vbs-D(k)に（Ｖｂｓ（ｋ）−Ｖｂｓ（ｋ−Ｊ））を設定し、Ebs-D(k)に（Ｅｂｓ（ｋ）−Ｅｂｓ（ｋ−Ｊ））を設定する（ステップＳ２２３）。Ｖｂｓ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶｂｓ値である。同様にＥｂｓ（ｋ−Ｊ）は、Ｊサンプル前のＥｂｓ値である。すなわち、Vbs-D(k)は、ＶＮＴノズルの状態を表しており、現Ｖｂｓ値とＪサンプル前のＶｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ebs-D(k)は、ＥＧＲバルブの状態を表しており、現Ｅｂｓ値とＪサンプル前のＥｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０１５１】
そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１６０は、Vbs-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vbs-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１６０は、Ebs-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ebs−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ２２５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０１５２】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ２２７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ２２９）。
【０１５３】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ２３１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ２３３）。
【０１５４】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ２３５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１６０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ２３７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｂｓ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２３９）。このように図３０の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値Ｖｂｓ（ｋ）／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１５５】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（Ｖｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２４１）。図３０の左側において、ヒステリシス幅Ｍだけ右シフトさせた傾き１／Ｎの直線に従って、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（Ｖｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１５６】
V-flagが「−１」でない場合については、端子Ａを介して図３２の処理に移行する。
【０１５７】
図３２の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ２４３）。V-flagが「１」であれば、ゲイン関数設定器１６０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ２４５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｂｓ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２４７）。このように図３０の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（１−Ｖｂｓ（ｋ））／Ｎが算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１５８】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２４９）。このように図３０の右側における、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（１−Ｖｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１５９】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ２５１）。E-flagが「−１」であれば、ゲイン関数設定器１６０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ２５３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０の左側におけるゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｂｓ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２５５）。このように図３０の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値Ｅｂｓ（ｋ）／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１６０】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（Ｅｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２５７）。このように図３０の左側における、ヒステリシス幅Ｍだけ右にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値（Ｅｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１６１】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ２５９）。E-flagが「１」であれば、ゲイン関数設定器１６０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ２６１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｂｓ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２６３）。このように図３０の右側における傾き−１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値（１−Ｅｂｓ（ｋ））／Ｎが算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１６２】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｂｓ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ２６５）。このように図３０の右側において、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値（１−Ｅｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１６３】
ステップＳ２２９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１６４】
また、ステップＳ２３３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１６５】
さらに、ステップＳ２３９、Ｓ２４１、Ｓ２４７、Ｓ２４９、Ｓ２５５、Ｓ２５７、Ｓ２６３及びＳ２６５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１６６】
ステップＳ２５９の条件を満たさないと判断された場合、ステップＳ２４９、Ｓ２５５、Ｓ２５７、Ｓ２６３及びＳ２６５の後に、端子Ｂを介して図３１の処理に戻る。
【０１６７】
図３１において端子Ｂを介した後に、又はステップＳ２２９、Ｓ２３３、Ｓ２３９及びＳ２４１の後に、ｋが１インクリメントされ（ステップＳ２６７）、ステップＳ２２３に戻る。このような処理を、エンジン本体１を停止するまで実施する。
【０１６８】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０１６９】
［実施の形態２の具体例６］
本具体例でも、第５の具体例と同様に図３０に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図３３及び図３４に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ２７１）。時刻ｋはエンジン制御装置１００共通の時刻とする。
【０１７０】
次に、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vin-D(k)に（Ｖｉｎ（ｋ）−Ｖｉｎ（ｋ−Ｊ））を設定し、Ein-D(k)に（Ｅｉｎ（ｋ）−Ｅｉｎ（ｋ−Ｊ））を設定する（ステップＳ２７３）。Ｖｉｎ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶＮＴノズル開度Ｖｉｎ値である。同様にＥｉｎ（ｋ−Ｊ）は、Ｊサンプル前のＥＧＲバルブ開度Ｅｉｎ値である。すなわち、Vin-D(k)は、ＶＮＴノズルの状態を表しており、Ｊサンプル前のＶｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ein-D(k)は、ＥＧＲバルブの状態を表しており、Ｊサンプル前のＥＧＲバルブ開度Ｅｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０１７１】
そして、ゲイン関数設定器１７０は、ＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１７０は、Vin-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vin-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１７０は、Ein-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ein−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ２７５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０１７２】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ２７７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１７に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ２７９）。
【０１７３】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ２８１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１８に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ２８３）。
【０１７４】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ２３５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１７０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ２８７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖｉｎ（ｋ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２８９）。このように図３０の左側における傾き１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値Ｖｉｎ（ｋ）／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０１７５】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（Ｖｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２９１）。図３０の左側において、ヒステリシス幅Ｍだけ右シフトさせた傾き１／Ｎの直線に従って、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値（Ｖｂｓ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１７６】
V-flagが「−１」でない場合については、端子Ｃを介して図３４の処理に移行する。
【０１７７】
図３４の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ２９３）。V-flagが「１」であれば、ゲイン関数設定器１７０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ２９５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｉｎ（ｋ））／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２９７）。このように図３０の右側における傾き−１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値（１−Ｖｉｎ（ｋ））／Ｎが算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０１７８】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝（１−Ｖｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｆ＝１を設定する（ステップＳ２９９）。このように図３０の右側における、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値（１−Ｖｉｎ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０１７９】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ３０１）。E-flagが「−１」であれば、ゲイン関数設定器１７０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ３０３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０の左側におけるゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅｉｎ（ｋ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３０５）。このように図３０の左側における傾き１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値Ｅｉｎ（ｋ）／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０１８０】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（Ｅｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３０７）。このように図３０の左側において、ヒステリシス幅Ｍだけ右にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値（Ｅｉｎ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１８１】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ３０９）。E-flagが「１」であれば、ゲイン関数設定器１７０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ３１１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３０のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｉｎ（ｋ））／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３１３）。このように図３０の右側における傾き−１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値（１−Ｅｉｎ（ｋ））／Ｎが算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０１８２】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝（１−Ｅｉｎ（ｋ）−Ｍ）／Ｎ且つＫｄｐ＝１を設定する（ステップＳ３１５）。このように図３０の右側における、ヒステリシス幅Ｍだけ左にシフトした傾き−１／Ｎの直線に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値（１−Ｅｉｎ（ｋ）−Ｍ）／Ｎが算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０１８３】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１８４】
そして、ステップＳ２７９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１８５】
また、ステップＳ２８３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０１８６】
さらに、ステップＳ２８９、Ｓ２９１、Ｓ２９７、Ｓ２９９、Ｓ３０５、Ｓ３０７、Ｓ３１３及びＳ３１５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０１８７】
ステップＳ３０９の条件を満たさないと判断された場合、ステップＳ２９７、Ｓ２９９、Ｓ３０５、Ｓ３０７、Ｓ３１３及びＳ３１５の後に、端子Ｄを介して図３３の処理に戻る。
【０１８８】
図３３において端子Ｄを介した後に、又はステップＳ２７９、Ｓ２８３、Ｓ２８９及びＳ２９１の後に、ｋが１インクリメントされ（ステップＳ３１７）、ステップＳ２７３に戻る。このような処理を、エンジン本体１を停止するまで実施する。
【０１８９】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０１９０】
［実施の形態２の具体例７］
例えば、図３５に示すような、ＶＮＴノズル開度又はＥＧＲバルブ開度を引数とする関数をゲイン関数として採用する。図３５では、縦軸がゲイン関数の値（０以上１以下）を表し、横軸がＶＮＴノズル開度の基準値Ｖｂｓ又はＥＧＲバルブ開度の基準値Ｅｂｓ若しくはＶＮＴノズル開度Ｖｉｎ又はＥＧＲバルブ開度Ｅｉｎを表す。図３５の例では、ヒステリシス特性を有するシグモイド関数を採用している。すなわち、ＶＮＴノズル開度又はＥＧＲバルブ開度が全開から全閉に向かう場合には、ノズル又はバルブ開度０以上Ｎ以下の範囲において図２６と同じシグモイド関数が採用されている。これに対して、全閉から全開に向かう場合には、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数が採用されている。
【０１９１】
また、全開から全閉の方向の場合にはＮ以上（１−Ｎ−Ｍ）以下の範囲で定数「１」となる。逆に、全閉から全開の方向の場合には（Ｎ＋Ｍ）以上（１−Ｎ）以下の範囲で定数「１」となる。
【０１９２】
一方、ＶＮＴノズル開度又はＥＧＲバルブ開度が全閉から全開に向かう場合には、ノズル又はバルブ開度が（１−Ｎ）以上１以下の範囲（全開とみなされる範囲）については、図２６で示したシグモイド関数と同じになる。これに対して、全開から全閉に向かう場合には、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数が採用されている。Ｍは、例えば０．０５から０．１程度の値である。
【０１９３】
このような関数を実現するために、本具体例では、図１０に示したブロック線図におけるゲイン関数設定器１６０等は図３６及び図３７に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ３２１）。時刻ｋはエンジン制御装置１００共通の時刻とする。そして、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。Ｖｂｓ（ｋ）及びＥｂｓ（ｋ）は、０以上１以下の値である。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０１９４】
次に、ゲイン関数設定器１６０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vbs-D(k)に（Ｖｂｓ（ｋ）−Ｖｂｓ（ｋ−Ｊ））を設定し、Ebs-D(k)に（Ｅｂｓ（ｋ）−Ｅｂｓ（ｋ−Ｊ））を設定する（ステップＳ３２３）。Ｖｂｓ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶｂｓ値である。同様にＥｂｓ（ｋ−Ｊ）は、Ｊサンプル前のＥｂｓ値である。すなわち、Vbs-D(k)は、ＶＮＴノズルの状態を表しており、Ｊサンプル前のＶｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ebs-D(k)は、ＥＧＲバルブの状態を表しており、Ｊサンプル前のＥｂｓ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０１９５】
そして、ゲイン関数設定器１６０は、ＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１６０は、ＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｂｓ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１６０は、Vbs-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vbs-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１６０は、Ebs-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ebs−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ３２５）。このように、Ｖｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｂｓ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０１９６】
その後、ゲイン関数設定器１６０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ３２７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１６０は、図１１に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ３２９）。
【０１９７】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ３３１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１６０は、図１２に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ３３３）。
【０１９８】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１６０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ３３５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１６０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ３３７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,-1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３３９）。
【０１９９】
Ｖ-1,-1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２００】
【数１０】
2011077504.tif 000078
【０２０１】
このように図３５の左側におけるシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０２０２】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３４１）。
【０２０３】
Ｖ-1,1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２０４】
【数１１】
2011077504.tif 000079
【０２０５】
このように図３５の左側において、ヒステリシス幅Ｍだけ右シフトさせたシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。また、このような条件を満たす場合にも出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２０６】
V-flagが「−１」でない場合については、端子Ｅを介して図３７の処理に移行する。
【０２０７】
図３７の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１６０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ３４３）。V-flagが「１」であれば、ゲイン関数設定器１６０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ３４５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３４７）。
【０２０８】
Ｖ1,1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２０９】
【数１２】
2011077504.tif 000080
【０２１０】
このように図３５の右側におけるシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。なお、Ｖｂｓ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０２１１】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,-1（Ｖｂｓ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３４９）。
【０２１２】
Ｖ1,-1（Ｖｂｓ（ｋ））は、以下のように定義される関数である。
【０２１３】
【数１３】
2011077504.tif 000081
【０２１４】
このように図３５の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２１５】
また、V-flagが「１」ではない場合、ゲイン関数設定器１６０は、E-flagが「−１」であるか判断する（ステップＳ３５１）。E-flagが「−１」であれば、ゲイン関数設定器１６０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ３５３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５の左側におけるゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1,-1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３５５）。
【０２１６】
Ｅ-1,-1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２１７】
【数１４】
2011077504.tif 000082
【０２１８】
このように図３５の左側におけるシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０２１９】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1,1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３５７）。
【０２２０】
Ｅ-1,1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２２１】
【数１５】
2011077504.tif 000083
【０２２２】
このように図３５の左側において、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２２３】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１６０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ３５９）。E-flagが「１」であれば、ゲイン関数設定器１６０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ３６１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３６３）。
【０２２４】
Ｅ1,1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２２５】
【数１６】
2011077504.tif 000084
【０２２６】
このように図３５の右側におけるシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。なお、Ｅｂｓ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０２２７】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１６０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,-1（Ｅｂｓ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ３６５）。
【０２２８】
Ｅ1,-1（Ｅｂｓ（ｋ））は、以下のように定義される関数である。
【０２２９】
【数１７】
2011077504.tif 000085
【０２３０】
このように図３５の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｂｓ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２３１】
ステップＳ３２９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２３２】
また、ステップＳ３３３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎとして採用され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎとして採用され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２３３】
さらに、ステップＳ３３９、Ｓ３４１、Ｓ３４７、Ｓ３４９、Ｓ３５５、Ｓ３５７、Ｓ３６３及びＳ３６５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２３４】
ステップＳ３５９の条件を満たさないと判断された場合、ステップＳ３４７、Ｓ３４９、Ｓ３５５、Ｓ３５７、Ｓ３６３及びＳ３６５の後に、端子Ｆを介して図３６の処理に戻る。
【０２３５】
図３６において端子Ｆを介した後に、又はステップＳ３２９、Ｓ３３３、Ｓ３３９及びＳ３４１の後に、ｋが１インクリメントされ（ステップＳ３６７）、ステップＳ３２３に戻る。このような処理を、エンジン本体１を停止するまで実施する。
【０２３６】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０２３７】
［実施の形態２の具体例８］
本具体例でも、第７の具体例と同様に図３５に示すようなゲイン関数を採用する。このような関数を実現するために、本具体例では、図１６に示したブロック線図におけるゲイン関数設定器１７０等は図３８及び図３９に示すような処理を実施する。まず、時刻ｋを０に初期化する（ステップＳ３７１）。時刻ｋはエンジン制御装置１００共通の時刻とする。
【０２３８】
次に、ゲイン関数設定器１７０は、ＶＮＴノズルの開閉の状態を表すV-flagを０に設定し、ＥＧＲバルブの開閉の状態を表すE-flagを０に、ＶＮＴノズルが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すVD-flagに０を、ＥＧＲバルブが開方向に制御されている状態なのか閉方向に制御されている状態なのかを表すED-flagに０を設定する。さらに、Vin-D(k)に（Ｖｉｎ（ｋ）−Ｖｉｎ（ｋ−Ｊ））を設定し、Ein-D(k)に（Ｅｉｎ（ｋ）−Ｅｉｎ（ｋ−Ｊ））を設定する（ステップＳ３７３）。Ｖｉｎ（ｋ−Ｊ）は、Ｊ（例えば１乃至１０程度）サンプル前のＶＮＴノズル開度Ｖｉｎ値である。同様にＥｉｎ（ｋ−Ｊ）は、Ｊサンプル前のＥｉｎ値である。すなわち、Vin-D(k)は、ＶＮＴノズルの状態を表しており、Ｊサンプル前のＶｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。同様に、Ein-D(k)は、ＥＧＲバルブの状態を表しており、Ｊサンプル前のＥＧＲバルブ開度Ｅｉｎ値との差であり、負なら閉方向を表し、正なら開方向を表す。
【０２３９】
そして、ゲイン関数設定器１７０は、ＶＮＴノズル開度Ｖｉｎ（ｋ）がＮ（例えば０．１から０．１５程度の値を有し、全開又は全閉とみなされる範囲を規定する定数。）未満であれば（すなわち全閉状態）、V-flagに「−１」を設定する。一方、Ｖｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、V-flagに「１」を設定する。また、ゲイン関数設定器１７０は、ＥＧＲバルブ開度Ｅｉｎ（ｋ）がＮ未満であれば（すなわち全閉状態）、E-flagに「−１」を設定する。一方、Ｅｉｎ（ｋ）が（１−Ｎ）より大きければ（すなわち全開状態）、E-flagに「１」を設定する。さらに、ゲイン関数設定器１７０は、Vin-D(k)が０以上であれば（すなわち開方向）、VD-flagに「１」を設定し、Vin-D(k)が０未満であれば（すなわち閉方向）、VD-flagに「−１」を設定する。さらに、ゲイン関数設定器１７０は、Ein-D(k)が０以上であれば（すなわち開方向）、ED-flagに「１」を設定し、Ein−D(k)が０未満であれば（すなわち閉方向）、ED-flagに「−１」を設定する（ステップＳ３７５）。このように、Ｖｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、V-flagは０のままであり、同様にＥｉｎ（ｋ）がＮ以上（１−Ｎ）以下であれば、E-flagは０のままとなる。
【０２４０】
その後、ゲイン関数設定器１７０は、V-flagが０であり且つE-flagも０であるという状態に該当するのか判断する（ステップＳ３７７）。この条件を満たす場合には、ＭＩＭＯ制御モードであるから、ゲイン関数設定器１７０は、図１７に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝１を設定する（ステップＳ３７９）。
【０２４１】
一方、V-flagとE-flagとのうち少なくともいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagは０でなく且つE-flagも０ではないという状態に該当するのか判断する（ステップＳ３８１）。この条件を満たす場合には、ＶＮＴ及びＥＧＲ全閉領域Ｄ（両方共に全開又は全閉のいずれかに該当する場合）のＳＩＳＯ制御モードであるから、ゲイン関数設定器１７０は、図１８に示したようにＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｋｄｐ＝０を設定する（ステップＳ３８３）。
【０２４２】
また、V-flagとE-flagとのうちいずれかが０でない場合、ゲイン関数設定器１７０は、V-flagが「−１」である（ＶＮＴノズル開度が全閉状態）か判断する（ステップＳ３８５）。V-flagが「−１」である場合には、さらに、ゲイン関数設定器１７０は、VD-flagが「−１」である（すなわちＶＮＴノズルが閉方向）か判断する（ステップＳ３８７）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,-1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３８９）。
【０２４３】
Ｖ-1,-1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２４４】
【数１８】
2011077504.tif 000086
【０２４５】
このように図３５の左側におけるシグモイド関数に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝０であれば、ＶＮＴ全閉領域ＣのＳＩＳＯ制御モードとなる。
【０２４６】
一方、VD-flagが「−１」ではない場合はVD-flagは「１」（すなわちＶＮＴノズルが開方向）であるので、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ-1,1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３９１）。
【０２４７】
Ｖ-1,1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２４８】
【数１９】
2011077504.tif 000087
【０２４９】
このように図３５の左側において、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。また、上記条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２５０】
V-flagが「−１」でない場合については、端子Ｇを介して図３９の処理に移行する。
【０２５１】
図３９の処理の説明に移行して、V-flagが「−１」ではない場合、ゲイン関数設定器１７０は、V-flagが「１」である（ＶＮＴノズル開度が全開状態）か判断する（ステップＳ３９３）。V-flagが「１」であれば、ゲイン関数設定器１７０は、VD-flagが「１」であるか、すなわちＶＮＴノズルが開方向であるか判断する（ステップＳ３９５）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３９７）。
【０２５２】
Ｖ1,1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２５３】
【数２０】
2011077504.tif 000088
【０２５４】
このように図３５の右側におけるシグモイド関数に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。なお、Ｖｉｎ（ｋ）＝１であれば、ＶＮＴ全開領域ＦのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０となる。
【０２５５】
一方、VD-flagが１ではない、すなわちＶＮＴノズルが閉方向である場合には、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｖ1,-1（Ｖｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ３９９）。
【０２５６】
Ｖ1,-1（Ｖｉｎ（ｋ））は、以下のように定義される関数である。
【０２５７】
【数２１】
2011077504.tif 000089
【０２５８】
このように図３５の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＶＮＴノズル開度Ｖｉｎ（ｋ）に応じた値が算出される。これによって、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｖｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｐ＝０を設定する。
【０２５９】
また、V-flagが「１」ではない場合、ゲイン関数設定器１７０は、E-flagが「−１」であるか判断する（ステップＳ４０１）。E-flagが「−１」であれば、ゲイン関数設定器１７０は、ED-flagが「−１」であるか、すなわちＥＧＲバルブが閉方向であるか判断する（ステップＳ４０３）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５の左側におけるゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ-1,-1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ４０５）。
【０２６０】
Ｅ-1,-1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２６１】
【数２２】
2011077504.tif 000090
【０２６２】
このように図３５の左側におけるシグモイド関数に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝０であれば、ＥＧＲ全閉領域ＢのＳＩＳＯ制御モードとなる。
【０２６３】
一方、ED-flagが「−１」ではない、すなわちED-flag＝１で、ＥＧＲバルブ開度が開方向であれば、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｐ＝Ｅ-1,1（Ｅｉｎ（ｋ））且つＫｄｆ＝１を設定する（ステップＳ４０７）。
【０２６４】
Ｅ-1,1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２６５】
【数２３】
2011077504.tif 000091
【０２６６】
このように図３５の左側において、ヒステリシス幅Ｍだけ右にシフトしたシグモイド関数に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２６７】
さらに、E-flagが「−１」ではない場合、ゲイン関数設定器１７０は、E-flagが「１」である（ＥＧＲバルブ開度が全開状態）か判断する（ステップＳ４０９）。E-flagが「１」であれば、ゲイン関数設定器１７０は、ED-flagが「１」であるか、すなわちＥＧＲバルブが開方向であるか判断する（ステップＳ４１１）。この条件を満たす場合には、出力調整されたＭＩＭＯ制御モードのように動作する。すなわち、図３５のゲイン関数に従って、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ４１３）。
【０２６８】
Ｅ1,1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２６９】
【数２４】
2011077504.tif 000092
【０２７０】
このように図３５の右側におけるシグモイド関数に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。なお、Ｅｉｎ（ｋ）＝１であれば、ＥＧＲ全開領域ＥのＳＩＳＯ制御モードでＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０となる。
【０２７１】
一方、ED-flagが「１」ではない、すなわちＥＧＲバルブ開度が閉方向である場合、ゲイン関数設定器１７０は、Ｋｃｆ＝Ｋｃｐ＝Ｋｄｆ＝Ｅ1,-1（Ｅｉｎ（ｋ））且つＫｄｐ＝１を設定する（ステップＳ４１５）。
【０２７２】
Ｅ1,-1（Ｅｉｎ（ｋ））は、以下のように定義される関数である。
【０２７３】
【数２５】
2011077504.tif 000093
【０２７４】
このように図３５の右側において、ヒステリシス幅Ｍだけ左にシフトしたシグモイド関数に従ってＥＧＲバルブ開度Ｅｉｎ（ｋ）に応じた値が算出される。これにより、出力調整されたＭＩＭＯ制御モードのように動作する。但し、ノズル又はバルブ開度を負に設定することはできないので、（１−Ｅｉｎ（ｋ）−Ｍ）が負になるとＫｃｆ＝Ｋｃｐ＝Ｋｄｆ＝０を設定する。
【０２７５】
なお、上記処理フローとは別に、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値が入力され、計画器１１０は、時刻ｋにおけるエンジン回転数及び燃料噴射量の設定値に対応するＶＮＴノズル開度の基準値Ｖｂｓ（ｋ）及びＥＧＲバルブ開度の基準値Ｅｂｓ（ｋ）を出力する。さらに、計画器１１０は、同じようにして新気量目標値を新気量制御器１２０を含む新気量制御系に出力し、吸気圧目標値を吸気圧制御器１４０を含む吸気圧制御系に出力する。
【０２７６】
そして、ステップＳ３７９の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値と第１干渉補償部１５０からの補償量とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として算出され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値と第２干渉補償部１３０からの補償量とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として算出され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０２７７】
また、ステップＳ３８３の後には、Ｅｂｓ（ｋ）がＥＧＲバルブ開度Ｅｉｎ（ｋ＋１）として採用され、当該Ｅｉｎ（ｋ＋１）に従ってエンジン本体１のＥＧＲバルブが制御される。また、Ｖｂｓ（ｋ）がＶＮＴノズル開度Ｖｉｎ（ｋ＋１）として採用され、当該Ｖｉｎ（ｋ＋１）に従ってエンジン本体１のＶＮＴノズルが制御される。
【０２７８】
さらに、ステップＳ３８９、Ｓ３９１、Ｓ３９７、Ｓ３９９、Ｓ４０５、Ｓ４０７、Ｓ４１３及びＳ４１５の後には、新気量目標値と新気量の測定値との差に応じて新気量制御器１２０が制御値を算出し、吸気圧目標値と吸気圧の測定値との差に応じて第１干渉補償部１５０が補償量を算出する。そして、新気量制御器１２０からの制御値とＫｄｆの積と第１干渉補償部１５０からの補償量とＫｃｐの積とＥｂｓ（ｋ）との和がＥＧＲバルブ開度Ｅｉｎとして算出され、当該Ｅｉｎに従ってエンジン本体１のＥＧＲバルブが制御される。また、吸気圧目標値と吸気圧の測定値との差に応じて吸気圧制御器１４０が制御値を算出し、新気量目標値と新気量の測定値との差に応じて第２干渉補償部１３０が補償量を算出する。そして、吸気圧制御器１４０からの制御値とＫｄｐの積と第２干渉補償部１３０からの補償量とＫｃｆの積とＶｂｓ（ｋ）との和がＶＮＴノズル開度Ｖｉｎとして算出され、当該Ｖｉｎに従ってエンジン本体１のＶＮＴノズルが制御される。
【０２７９】
ステップＳ４０９の条件を満たさないと判断された場合、ステップＳ３９７、Ｓ３９９、Ｓ４０５、Ｓ４０７、Ｓ４１３及びＳ４１５の後に、端子Ｈを介して図３８の処理に戻る。
【０２８０】
図３８において端子Ｈを介した後に、又はステップＳ３７９、Ｓ３８３、Ｓ３８９及びＳ３９１の後に、ｋが１インクリメントされ（ステップＳ４１７）、ステップＳ３７３に戻る。このような処理を、エンジン本体１を停止するまで実施する。
【０２８１】
このようにゲイン要素を調整することによって、制御モードの境界部分で動作する際にチャタリングをより有効に防止できるようになる。特にヒステリシスが導入されているので、安定的な制御が可能となる。
【０２８２】
以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、図１０や図１６に示したブロック線図は一例であって、例えばゲイン要素を１又は０にするだけの制御であれば、ゲイン要素を導入せずに処理を切り替えるようにしてもよい。
【０２８３】
さらに、上で述べた処理フローについても一例であって、条件判断及び対応する処理については、順番を入れ替えても実質的に同一の機能を果たすように組み替えることも可能である。
【０２８４】
なお、上では説明を省略しているが、Ｖｂｓ、Ｅｂｓ、Ｖｉｎ、Ｅｉｎなどの各時点における値については、メインメモリなどの記憶装置に格納して用いる。
【０２８５】
また、例えば直噴型のガソリンエンジンのノズルターボが可変式になった場合にも、本技術を適用可能である。
【０２８６】
なお、本技術のエンジン制御装置１００は、コンピュータ装置であって、図４０に示すように、ＲＡＭ（Random Access Memory）２５０１とプロセッサ２５０３とＲＯＭ（Read Only Memory）２５０７とセンサ群２５１５とがバス２５１９で接続されている。本実施の形態における処理を実施するための制御プログラム（及び存在している場合にはオペレーティング・システム（ＯＳ：Operating System））は、ＲＯＭ２５０７に格納されており、プロセッサ２５０３により実行される際にはＲＯＭ２５０７からＲＡＭ２５０１に読み出される。必要に応じてプロセッサ２５０３は、センサ群（ＭＡＰセンサ及びＭＡＦセンサ。場合によっては燃料噴射量測定部及びエンジン回転数測定部など。）を制御して、必要な測定値を取得する。また、処理途中のデータについては、ＲＡＭ２５０１に格納される。なお、プロセッサ２５０３は、ＲＯＭ２５０７を含む場合もある、さらに、ＲＡＭ２５０１を含む場合もある。本技術の実施の形態では、上で述べた処理を実施するための制御プログラムは、コンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ＲＯＭライタによってＲＯＭ２５０７に書き込まれる場合もある。このようなコンピュータ装置は、上で述べたプロセッサ２５０３、ＲＡＭ２５０１、ＲＯＭ２５０７などのハードウエアと制御プログラム（場合によってはＯＳも）とが有機的に協働することにより、上で述べたような各種機能を実現する。
【０２８７】
以上述べた本実施の形態をまとめると以下のようになる。
【０２８８】
本エンジン制御方法は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンに対する燃料噴射量の設定値、エンジン回転数の設定値、エンジンの吸気圧の測定値及び新気量の測定値を取得するステップと、（Ｂ）燃料噴射量の設定値及びエンジン回転数の設定値に対応する排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値、又はエンジンの新気量制御系による、新気量の測定値に応じた排気循環器のバルブ開度の制御値及びエンジンの吸気圧制御系による、吸気圧の測定値に応じた可変ノズルターボのノズル開度の制御値に応じて、新気量制御系と吸気圧制御系と新気量制御系から吸気圧制御系への第１干渉補償系と吸気圧制御系から新気量制御系への第２干渉補償系とを制御する制御ステップとを含む。そして、制御ステップが、（Ｂ１）排気循環器のバルブ開度の基準値又は制御値が排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と可変ノズルターボのノズル開度の基準値又は制御値が可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、吸気圧制御系と新気量制御系と第１及び第２干渉補償系とを有効化するステップと、（Ｂ２）第１の条件を満たすが第２の条件を満たさない場合には、新気量制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、吸気圧制御系を有効化するステップと、（Ｂ３）第２の条件を満たすが第１の条件を満たさない場合には、吸気圧制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、新気量制御系を有効化するステップとを含む。
【０２８９】
このように動作モードの切り替えを行うことによって、エミッションの削減が可能となる。
【０２９０】
また、上記吸気圧制御系と上記新気量制御系と上記第１及び第２干渉補償系とが、ゲイン要素を有する場合もある。このような場合には、上で述べた制御ステップにおいて、有効化、無効化又は出力調整については、ゲイン要素に値を設定することで実施するようにしてもよい。
【０２９１】
このようにすれば簡単に動作モードの切り替えを行うことができるようになる。
【０２９２】
さらに、上で述べた出力調整が、排気循環器のバルブ開度の基準値又は制御値若しくは可変ノズルターボのノズル開度の基準値又は制御値の関数であって０より大きく１未満の値を出力する関数の出力値により実施される場合もある。
【０２９３】
出力調整を適切に実施することによって、単なる動作モード切替に比して安定性が向上する。
【０２９４】
また、上で述べた関数が、一次関数又はシグモイド関数である場合もある。このような関数であれば、滑らかに値が変化するので、安定的な制御が可能となる。
【０２９５】
さらに、上で述べた一次関数又はシグモイド関数が、ノズル又はバルブを開放する方向と閉鎖する方向で異なる値を出力するヒステリシス関数として定義される場合もある。このようにすることにより、より安定的に制御することができるようになる。
【０２９６】
また、上で述べた制御ステップが、第１の条件と第２の条件とも満たす場合には、吸気圧制御系と新気量制御系と第１及び第２干渉補償系とを無効化するステップをさらに含むようにしてもよい。このような現象が発生する場合にも対処することができる。
【０２９７】
本エンジン制御装置は、（Ａ）排気循環器及び可変ノズルターボを有するエンジンの吸気圧の測定値及び新気量の測定値を取得するデータ取得部（図４１：３０００）と、（Ｂ）エンジンに対する燃料噴射量の設定値及びエンジン回転数の設定値に対応する排気循環器のバルブ開度の基準値及び可変ノズルターボのノズル開度の基準値、又はエンジンの新気量制御系による、新気量の測定値に応じた排気循環器のバルブ開度の制御値及び前記エンジンの吸気圧制御系による、吸気圧の測定値に応じた可変ノズルターボのノズル開度の制御値に応じて、新気量制御系と吸気圧制御系と新気量制御系から吸気圧制御系への第１干渉補償系と吸気圧制御系から新気量制御系への第２干渉補償系とを制御する制御部（図４１：４０００）とを有する。
【０２９８】
そして、上記制御部が、（Ｂ１）排気循環器のバルブ開度の基準値又は制御値が排気循環器のバルブ開度が全閉又は全開とみなされる範囲に入っているという第１の条件と可変ノズルターボのノズル開度の基準値又は制御値が前記可変ノズルターボのノズル開度が全閉又は全開とみなされる範囲に入っているという第２の条件とのいずれもが満たされない場合には、前記吸気圧制御系と前記新気量制御系と前記第１及び第２干渉補償系とを有効化する。また、（Ｂ２）上記制御部は、第１の条件を満たすが第２の条件を満たさない場合には、新気量制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、吸気圧制御系を有効化する。さらに、（Ｂ３）上記制御部は、第２の条件を満たすが第１の条件を満たさない場合には、吸気圧制御系並びに第１及び第２干渉補償系とを無効化又は出力調整を行い、新気量制御系を有効化する。
【０２９９】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【国際調査報告】
2011077504.tif 000094
2011077504.tif 000095