(57)【特許請求の範囲】
【請求項１】
吸気通路に設けられた吸気絞り弁によって当該吸気絞り弁を通過する空気量が通過空気量として変更されるとともに、アイドル運転中の回転数が目標回転数に収束するように、前記吸気絞り弁の開度がフィードバック制御される内燃機関において、当該吸気通路内の空気の状態を表す吸気パラメータを算出する内燃機関の吸気パラメータ算出装置であって、
前記吸気パラメータの基本値として基本吸気パラメータを算出する基本吸気パラメータ算出手段と、
所定のモデリング手法によって導出された、前記吸気絞り弁の上流側おける前記吸気通路内の圧力である上流側圧力と、前記吸気絞り弁の下流側における前記吸気通路内の圧力である下流側圧力と、前記吸気絞り弁の開度によって定まる開度関数値と、前記通過空気量との関係を定義したモデル式を用いて、当該開度関数値の第１の算出値として第１開度関数値を算出する第１開度関数値算出手段と、
前記吸気絞り弁の開度と前記開度関数値との相関関係を表す相関関係モデルを用いて、前記開度関数値の第２の算出値として第２開度関数値を算出する第２開度関数値算出手段と、
前記吸気絞り弁の開度をフィードバック制御するためのフィードバック補正量に応じて、前記吸気通路の詰まり度合を表す詰まり度合値を算出する詰まり度合値算出手段と、
当該算出された詰まり度合値を用いて、前記算出された第２開度関数値を補正することにより、補正後第２開度関数値を算出する補正後第２開度関数値算出手段と、
前記算出された第１開度関数値および前記算出された補正後第２開度関数値の一方と他方との比である関数値比を用いて、補正値を算出する補正値算出手段と、
当該算出された補正値で前記基本吸気パラメータを補正することにより、前記吸気パラメータを算出する吸気パラメータ算出手段と、
を備えることを特徴とする内燃機関の吸気パラメータ算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内燃機関の吸気圧および吸入空気量などの、吸気通路内の空気の状態を表す吸気パラメータを算出する内燃機関の吸気パラメータ算出装置に関する。
【背景技術】
【０００２】
従来、内燃機関の吸気パラメータ算出装置として、特許文献１に記載されたものが知られている。この吸気パラメータ算出装置は、吸気パラメータとしての要求吸気圧Ｐを算出するものであり、エアフローメータ、吸気圧センサおよびスロットルセンサなどを備えている。この吸気パラメータ算出装置では、アクセルペダルの操作量であるアクセル開度Ａｃｃがスロットルセンサの検出信号に基づいて、実吸気量Ｇａｃｔがエアフローメータの検出信号に基づいて、実吸気圧Ｐａｃｔが吸気圧センサの検出信号に基づいてそれぞれ算出される。
【０００３】
さらに、アクセル開度Ａｃｃおよびエンジン回転数Ｎｅを用いて、要求軸トルクを算出し、これと要求吸気圧Ｐとの関係を定義した式（３）の吸気系モデルを用いて、要求吸気圧Ｐが算出される。この吸気系モデルは、気体の状態方程式から導出されたものであり、学習値Ｋｎを乗算係数として含んでいる。この学習値Ｋｎは、モデル化誤差を修正するためのものであり、その前回値とベース値Ｋｎｂａｓｅとのなまし演算（加重平均演算）によって算出される。このベース値Ｋｎｂａｓｅは、実吸気圧Ｐａｃｔと実吸気量Ｇａｃｔとの比を、吸気系モデルに基づいて算出した要求吸気圧Ｐと要求吸気量Ｇとの比で除算することにより算出される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−３０９９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の内燃機関のように、スロットル弁などの、吸気通路の開口面積を変更する吸気絞り弁が吸気通路に設けられている場合、吸気圧は、吸気通路の吸気絞り弁の下流側の圧力である関係上、吸気絞り弁の開度変化の影響を受けやすいという特性を有している。これに対して、特許文献１の吸気パラメータ算出装置の場合、要求吸気圧Ｐを、吸気絞り弁の開度を考慮することなく、気体の状態方程式から導出した吸気系モデルを用いて算出しているものに過ぎないので、算出精度が低いという問題がある。特に、過渡運転状態のように、吸気絞り弁の開度が変化しやすい条件下では、算出精度の低下度合が大きくなってしまう。
【０００６】
本発明は、上記課題を解決するためになされたもので、吸気絞り弁が設けられている場合において、吸気パラメータを精度よく算出することができる内燃機関の吸気パラメータ算出装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、請求項１に係る発明は、吸気通路６に設けられた吸気絞り弁（スロットル弁７ａ）によって吸気絞り弁を通過する空気量が通過空気量として変更されるとともに、アイドル運転中の回転数ＮＥが目標回転数ＮＯＢＪに収束するように、吸気絞り弁の開度（スロットル弁開度ＴＨ）がフィードバック制御される内燃機関３において、吸気通路６内の空気の状態を表す吸気パラメータ（通過空気量ＧＡＩＲＴＨ、吸入空気量ＧＡＩＲ、吸気圧ＰＢＡ）を算出する内燃機関３の吸気パラメータ算出装置１であって、吸気パラメータの基本値として基本吸気パラメータ（基本通過空気量ＧＡＩＲＴＨＮ，基本吸入空気量ＧＡＩＲＮ，基本吸気圧ＰＢＡＮ）を算出する基本吸気パラメータ算出手段（ＥＣＵ２、ステップ６，９０，１１０）と、所定のモデリング手法によって導出された、吸気絞り弁の上流側おける吸気通路６内の圧力である上流側圧力（大気圧ＰＡ）と、吸気絞り弁の下流側における吸気通路６内の圧力である下流側圧力（吸気圧ＰＢＡ）と、吸気絞り弁の開度によって定まる開度関数値ＫＴＨと、通過空気量ＧＡＩＲＴＨとの関係を定義したモデル式［式（７），（１４），（２４）］を用いて、開度関数値の第１の算出値として第１開度関数値（モデル式値ＫＴＨＣＡＬ）を算出する第１開度関数値算出手段（ＥＣＵ２、ステップ１４，１０３，１２３）と、吸気絞り弁の開度（スロットル弁開度ＴＨ）と開度関数値ＫＴＨとの相関関係を表す相関関係モデル（図２）を用いて、開度関数値の第２の算出値として第２開度関数値（マップ値ＫＴＨ）を算出する第２開度関数値算出手段（ＥＣＵ２、ステップ１１，１００，１２０）と、吸気絞り弁の開度（スロットル弁開度ＴＨ）をフィードバック制御するためのフィードバック補正量（積分項の学習値ＩＸＲＥＦ）に応じて、吸気通路６の詰まり度合を表す詰まり度合値（詰まり係数ＫＣＬＳ）を算出する詰まり度合値算出手段（ＥＣＵ２、ステップ１６２〜１６６）と、算出された詰まり度合値（詰まり係数ＫＣＬＳ）を用いて、算出された第２開度関数値（マップ値ＫＴＨ）を補正することにより、補正後第２開度関数値（補正後マップ値ＫＴＨ＿Ｆ）を算出する補正後第２開度関数値算出手段（ＥＣＵ２、ステップ１１，１００，１２０）と、算出された第１開度関数値および算出された補正後第２開度関数値の一方と他方との比である関数値比（関数値誤差ＫＴＨＥＲＲ）を用いて、補正値（補正係数ＫＴＨＣＯＲ、補正係数ＫＡＦＭＥＲＲ、補正項ＰＢＡＥＲＲＣＯＲ）を算出する補正値算出手段（ＥＣＵ２、ステップ３，１００〜１０７，１２０〜１３１）と、算出された補正値で基本吸気パラメータを補正することにより、吸気パラメータ（通過空気量ＧＡＩＲＴＨ、吸入空気量ＧＡＩＲ、吸気圧ＰＢＡ）を算出する吸気パラメータ算出手段（ＥＣＵ２、ステップ６，９１，１１１）と、を備えることを特徴とする。
【０００８】
この内燃機関の吸気パラメータ算出装置によれば、第１開度関数値が、吸気絞り弁の上流側おける吸気通路内の圧力である上流側圧力と、吸気絞り弁の下流側における吸気通路内の圧力である下流側圧力と、吸気絞り弁の開度によって定まる開度関数値と、通過空気量との関係を定義したモデル式を用いて算出され、第２開度関数値が、吸気絞り弁の開度と開度関数値との相関関係を表す相関関係モデルを用いて算出される。また、吸気絞り弁の開度をフィードバック制御するためのフィードバック補正量に応じて、吸気通路の詰まり度合を表す詰まり度合値が算出され、算出された詰まり度合値を用いて、算出された第２開度関数値を補正することにより、補正後第２開度関数値が算出される。さらに、算出された第１開度関数値および算出された補正後第２開度関数値の一方と他方との比である関数値比を用いて、補正値が算出され、このように算出された補正値で基本吸気パラメータを補正することにより、吸気パラメータが算出される。この場合、補正後第２開度関数値は、吸気通路の詰まり度合を表す詰まり度合値を用いて、第２開度関数値を補正することによって算出されるので、補正後第２開度関数値を、吸気通路の詰まり度合が反映された値として算出することができる。また、第１開度関数値および補正後第２開度関数値はいずれも、吸気絞り弁の開度によって定まる関数値であるとともに、そのような２つの値の比を用いて算出した補正値で基本吸気パラメータを補正することにより、吸気パラメータが算出されるので、吸気絞り弁の開度状態を反映させながら、吸気パラメータを算出することができる。これに加えて、第１開度関数値および補正後第２開度関数値の一方と他方との比である関数値比は、２つの開度関数値の間の差異、すなわちモデル式と相関関係モデルとの間の誤差を表すものとなるので、補正値を、そのような誤差を補正できるものとして算出することができる。以上により、過渡運転状態のような吸気絞り弁の開度が変化しやすい条件下や、吸気通路の詰まりが発生している条件下でも、吸気パラメータを従来よりも精度よく算出することができ、商品性を向上させることができる（なお、本明細書における「吸気通路の詰まり」は、吸気通路の詰まりに限らず、吸気絞り弁の詰まりも含むものとする）。
【図面の簡単な説明】
【０００９】
【図１】本願発明の一実施形態に係る吸気パラメータ算出装置およびこれを適用した内燃機関の概略構成図である。
【図２】開度関数値のマップ値ＫＴＨの算出に用いるマップの一例を示す図である。
【図３】誤差モデル式として、関数値誤差ＫＴＨＥＲＲとスロットル弁開度ＴＨとの関係を定義した２次式を用いた場合の演算結果例を示す図である。
【図４】実施形態の誤差モデル式を用いた場合の演算結果例を示す図である。
【図５】通過空気量ＧＡＩＲＴＨの算出処理を示すフローチャートである。
【図６】流量関数値ＦＰＢＡＰＡの算出に用いるマップの一例を示す図である。
【図７】モデルパラメータ学習処理を示すフローチャートである。
【図８】学習条件判定処理を示すフローチャートである。
【図９】モデルパラメータＡの同定演算処理を示すフローチャートである。
【図１０】吸気パラメータ算出装置による同定演算処理結果の一例を示す図である。
【図１１】同定演算処理結果の比較例を示す図である。
【図１２】大気圧推定処理を示すフローチャートである。
【図１３】推定大気圧ＨＰＡの算出処理を示すフローチャートである。
【図１４】回転補正係数ＫＴＨＮＥの算出に用いるマップの一例を示す図である。
【図１５】補正項ＣＯＲＨＰＡの算出に用いるマップの一例を示す図である。
【図１６】吸入空気量ＧＡＩＲの算出処理を示すフローチャートである。
【図１７】基本吸入空気量ＧＡＩＲＮの算出に用いるマップの一例を示す図である。
【図１８】補正係数ＫＡＦＭＥＲＲの算出処理を示すフローチャートである。
【図１９】吸気圧ＰＢＡの算出処理を示すフローチャートである。
【図２０】補正項ＰＢＡＥＲＲＣＯＲの算出に用いるマップの一例を示す図である。
【図２１】圧力比の補正演算用値Ｒ＿ＰＣＯＲの算出に用いるマップの一例を示す図である。
【図２２】アイドルＦＢ制御処理を示すフローチャートである。
【図２３】詰まり係数算出処理を示すフローチャートである。
【図２４】スロットル弁開度の基準上限値ｔｈｍａｘおよび基準下限値ｔｈｍｉｎの算出にそれぞれ用いるマップの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明の一実施形態に係る内燃機関の吸気パラメータ算出装置について説明する。図１に示すように、本実施形態の吸気パラメータ算出装置１は、ＥＣＵ２を備えており、このＥＣＵ２は、後述するように、吸気パラメータとして、通過空気量ＧＡＩＲＴＨ、吸入空気量ＧＡＩＲおよび吸気圧ＰＢＡを算出する。
【００１１】
エンジン３は、図示しない車両に搭載されたガソリンエンジンタイプのものであり、このエンジン３には、燃料噴射弁４および点火プラグ５が気筒ごとに取り付けられている。この燃料噴射弁４は、ＥＣＵ２に電気的に接続されており、その開弁時間および開弁タイミングがＥＣＵ２によって制御され、それにより、燃料噴射制御が実行される。
【００１２】
また、点火プラグ５も、ＥＣＵ２に電気的に接続されており、ＥＣＵ２によって、点火時期に応じたタイミングで燃焼室内の混合気を燃焼させるように、放電状態が制御される。すなわち、点火時期制御が実行される。
【００１３】
エンジン３の吸気通路６には、上流側から順に、エアフローセンサ２０、スロットル弁機構７、スロットル弁開度センサ２１および吸気圧センサ２２が設けられている。このエアフローセンサ２０は、吸気通路６のエアフローセンサ２０付近を流れる空気の流量（以下「吸入空気量」という）を検出して、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、後述するように、このエアフローセンサ２０の検出信号に基づいて、吸入空気量ＧＡＩＲを算出する。この吸入空気量ＧＡＩＲは、質量流量として算出される。
【００１４】
スロットル弁機構７は、スロットル弁７ａおよびこれを開閉駆動するＴＨアクチュエータ７ｂなどを備えている。スロットル弁７ａは、吸気通路６の途中に回動自在に設けられており、当該回動に伴う開度の変化によりスロットル弁７ａを通過する空気量を変化させる。ＴＨアクチュエータ７ｂは、ＥＣＵ２に接続されたモータにギヤ機構（いずれも図示せず）を組み合わせたものであり、ＥＣＵ２からの制御入力信号によって制御されることにより、スロットル弁７ａの開度を変化させる。
【００１５】
また、スロットル弁開度センサ２１は、例えばポテンショメータなどで構成されており、スロットル弁７ａの開度（以下「スロットル弁開度」という）ＴＨを検出して、それを表す検出信号を、ＥＣＵ２に出力する。ＥＣＵ２は、このスロットル弁開度センサ２１の検出信号に基づいて、スロットル弁開度ＴＨを算出する。このスロットル弁開度ＴＨは、角度（゜）として算出される。なお、本実施形態では、スロットル弁７ａが吸気絞り弁に相当し、スロットル弁開度ＴＨが吸気絞り弁の開度に相当する。
【００１６】
さらに、吸気圧センサ２２は、吸気通路６のスロットル弁７ａよりも下流側のサージタンクの部分に配置されており、吸気通路６内の圧力（以下「吸気圧」という）を検出して、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、後述するように、この吸気圧センサ２２の検出信号に基づいて、吸気圧ＰＢＡを算出する。この吸気圧ＰＢＡは絶対圧として算出される。
【００１７】
一方、ＥＣＵ２には、吸気温センサ２３、大気圧センサ２４、クランク角センサ２５および４つの車輪速度センサ２６（１つのみ図示）がそれぞれ電気的に接続されている。これらの吸気温センサ２３および大気圧センサ２４はそれぞれ、吸気通路６内の空気の温度（以下「吸気温」という）および大気の圧力（以下「大気圧」という）を検出して、それを表す検出信号をＥＣＵ２に出力する。
【００１８】
ＥＣＵ２は、これらの吸気温センサ２３および大気圧センサ２４の検出信号に基づき、吸気温ＴＡおよび大気圧ＰＡをそれぞれ算出する。この吸気温ＴＡは絶対温度として、大気圧ＰＡは絶対圧としてそれぞれ算出される。
【００１９】
また、クランク角センサ２５は、マグネットロータおよびＭＲＥピックアップで構成されており、図示しないクランクシャフトの回転に伴い、いずれもパルス信号であるＣＲＫ信号およびＴＤＣ信号をＥＣＵ２に出力する。このＣＲＫ信号は、所定クランク角（例えば２゜）毎に１パルスが出力され、ＥＣＵ２は、このＣＲＫ信号に基づき、エンジン３の回転数（以下「エンジン回転数」という）ＮＥを算出する。また、ＴＤＣ信号は、各気筒のピストンが吸気行程のＴＤＣ位置よりも若干、手前の所定のクランク角位置にあることを表す信号であり、所定クランク角毎に１パルスが出力される。
【００２０】
さらに、４つの車輪速センサ２６の各々は、対応する車輪の回転速度を検出して、それを表す検出信号をＥＣＵ２に出力する。ＥＣＵ２は、これらの車輪速センサの検出信号に基づいて、車速ＶＰや、エンジン始動後の総走行距離ＤＩＳＴなどを算出する。
【００２１】
一方、ＥＣＵ２は、ＣＰＵ、ＲＡＭ、ＲＯＭおよびＩ／Ｏインターフェース（いずれも図示せず）などからなるマイクロコンピュータで構成されており、以上の各種のセンサ２０〜２６の検出信号などに基づいて、エンジン回転数ＮＥなどの、エンジン３の運転状態を表す各種の運転状態パラメータを算出するとともに、以下に述べるように、通過空気量ＧＡＩＲＴＨの算出処理などの各種の算出処理や、アイドルＦＢ制御処理などの各種の制御処理を実行する。
【００２２】
なお、本実施形態では、ＥＣＵ２が、基本吸気パラメータ算出手段、第１開度関数値算出手段、第２開度関数値算出手段、詰まり度合値算出手段、補正後第２開度関数値算出手段、補正値算出手段および吸気パラメータ算出手段に相当する。
【００２３】
以下、本実施形態における通過空気量ＧＡＩＲＴＨの算出手法の原理について説明する。本実施形態のエンジン３の場合、スロットル弁７ａが吸気通路６に設けられているので、このスロットル弁７ａを通過する空気（以下「通過空気」という）を圧縮性流体かつ断熱流であると見なしかつスロットル弁７ａをノズルと見なしてモデリングすると、下式（１）に示すモデル式が得られる。
【数１】
0005611166.tif 000002
【００２４】
上式（１）において、ｕは通過空気の流速を、Ｐ1，Ｐ2はスロットル弁７ａの上流側および下流側圧力を、ρ1はスロットル弁７ａの上流側の吸入空気の密度を、κは吸入空気の比熱比をそれぞれ表している。
【００２５】
次に、通過空気の流量をＧ、スロットル弁７ａの開口面積をＡｔｈ、スロットル弁７ａの流量係数をＣｄ、空気の温度をＴ、空気のガス定数をＲとし、連続の式および気体の状態方程式を適用して変形すると、下式（２）が得られる。
【数２】
0005611166.tif 000003
【００２６】
ここで、上式（２）の圧力比Ｐ2／Ｐ1の項を流量関数値Ψとして下式（３）のように定義し、これを用いて上式（２）を書き換えると、下式（４）が得られる。
【数３】
0005611166.tif 000004
【数４】
0005611166.tif 000005
【００２７】
上式（４）において、開口面積Ａｔｈおよび流量係数Ｃｄはいずれも、スロットル弁開度ＴＨによって決まる関数であるので、値Ｃｄ・Ａｔｈを開度関数値ＫＴＨ（＝Ｃｄ・Ａｔｈ）と定義し、これを用いて上式（４）を書き換えると、下式（５）が得られる。
【数５】
0005611166.tif 000006
【００２８】
上式（５）において、スロットル弁７ａの上流側における圧力損失を無視し、上流側圧力Ｐ1を大気圧ＰＡに置き換え、流量Ｇを通過空気量ＧＡＩＲＴＨに、温度Ｔを吸気温ＴＡにそれぞれ置き換えるとともに、流量関数値ΨをＦＰＢＡＰＡ、気体定数Ｒの平方根をＲＧＡＳ（＝Ｒ1/2）、吸気温ＴＡの平方根をＲＴＴＡ（＝ＴＡ1/2）とそれぞれ表記すると、下式（６）に示すモデル式が得られる。なお、下式（６）のＫＣは、通過空気量ＧＡＩＲＴＨの単位を（ｇ／ｓｅｃ）に変換するための変換係数である。
【数６】
0005611166.tif 000007
【００２９】
上式（６）において、流量関数値ＦＰＢＡＰＡは、吸気圧ＰＢＡと大気圧ＰＡとの比である圧力比Ｒ＿Ｐ（＝ＰＢＡ／ＰＡ）によって決まる値であるので、後述するように、圧力比Ｒ＿Ｐに応じて、マップを検索することにより算出される。また、上式（６）をＫＴＨについて整理するとともに、通過空気量ＧＡＩＲＴＨを吸入空気量ＧＡＩＲに置き換えると、下式（７）が得られる。
【数７】
0005611166.tif 000008
【００３０】
ここで、開度関数値ＫＴＨは、スロットル弁開度ＴＨによって決まる関数値であり、この開度関数値ＫＴＨとスロットル弁開度ＴＨとの実際の関係を測定し、マップを作成した場合（すなわちオフラインで同定した場合）、図２に示すものが得られる。上記式（７）によって算出した開度関数値をモデル式値ＫＴＨＣＡＬとし、図２のマップ検索により算出した開度関数値をマップ値ＫＴＨとするとともに、モデル式値ＫＴＨＣＡＬとマップ値ＫＴＨとの比を値ＫＴＨＥＲＲ（＝ＫＴＨＣＡＬ／ＫＴＨ）とした場合、ＫＴＨＥＲＲ＝１のときには、ＫＴＨ＝ＫＴＨＣＡＬとなり、モデル式（６）のモデル化誤差がないことになる。一方、値ＫＴＨＥＲＲが値１に対して乖離している場合、その乖離度合が大きいほど、マップ値ＫＴＨに対するモデル式値ＫＴＨＣＡＬの乖離度合が大きいことになり、前述したモデル式（６）のモデル化誤差が大きいことになる。
【００３１】
以上のように、値ＫＴＨＥＲＲはモデル式（６）のモデル化誤差を表すものであり、以下の説明では、値ＫＴＨＥＲＲを「関数値誤差ＫＴＨＥＲＲ」という。この関数値誤差ＫＴＨＥＲＲは、主に、標準品（基準品）に対するスロットル弁７ａの開口面積のずれに起因して発生する。このずれは、標準品に基づいて設定されたマップ値ＫＴＨに対する実製品のずれであり、例えば、スロットルボア径の精度ばらつきや、スロットルボアに付着したカーボンなどの異物に起因して発生するものである。以下の説明では、このずれを「第１誤差」という。また、関数値誤差ＫＴＨＥＲＲの算出において、エアフローセンサ２０および吸気圧センサ２２の検出信号を用いている関係上、関数値誤差ＫＴＨＥＲＲは、エアフローセンサ２０の検出誤差（以下「第２誤差」という）や、吸気圧センサ２２の検出誤差（以下「第３誤差」という）に起因しても発生する。
【００３２】
この第１誤差の場合、スロットル弁開度ＴＨが大きくなるほど（すなわち、スロットル弁７ａの開口面積が大きくなるほど）、関数値誤差ＫＴＨＥＲＲに対する影響は小さくなるので、スロットル弁開度ＴＨが所定開度ＴＨＢ以上となる領域では、第１誤差を無視することができる。なお、この所定開度ＴＨＢは、実験的に求めることも可能であるとともに、スロットル弁７ａの開口面積の許容誤差に基づいて演算することも可能である。また、圧力比Ｒ＿Ｐが臨界圧力比Ｒ＿ＣＲＩＴ未満の場合、流量関数値ＦＰＢＡＰＡは一定値となるので、Ｒ＿Ｐ＜Ｒ＿ＣＲＩＴの領域では、関数値誤差ＫＴＨＥＲＲは吸気圧センサ２２の検出誤差の影響を受けなくなる。したがって、圧力比Ｒ＿Ｐが臨界圧力比Ｒ＿ＣＲＩＴとなるスロットル弁開度ＴＨをＴＨ＿ＣＲＩＴとすると、ＴＨ＜ＴＨ＿ＣＲＩＴの領域（すなわちＲ＿Ｐ＜Ｒ＿ＣＲＩＴの領域）では、第３誤差を無視することができる。その結果、ＴＨＢ≦ＴＨ＜ＴＨ＿ＣＲＩＴの領域（すなわちＴＨＢ≦ＴＨかつＲ＿Ｐ＜Ｒ＿ＣＲＩＴが成立する領域）では、第１誤差および第３誤差を無視することができるので、関数値誤差ＫＴＨＥＲＲによって第２誤差を特定することが可能となる。
【００３３】
以上の理由により、本実施形態の場合、後述するように、ＴＨ＜ＴＨＢの領域では、第１誤差を補償（補正）するために、関数値誤差ＫＴＨＥＲＲを用いて、基本通過空気量ＧＡＩＲＴＨＮ補正用の補正係数ＫＴＨＣＯＲが算出され、ＴＨＢ≦ＴＨかつＲ＿Ｐ＜Ｒ＿ＣＲＩＴの領域では、第２誤差を補償するために、関数値誤差ＫＴＨＥＲＲを用いて、基本吸入空気量ＧＡＩＲＮ補正用の補正係数ＫＡＦＭＥＲＲが算出され、ＴＨ＿ＣＲＩＴ≦ＴＨの領域（すなわちＲ＿ＣＲＩＴ≦Ｒ＿Ｐの領域）では、第３誤差を補償するために、関数値誤差ＫＴＨＥＲＲを用いて、基本吸気圧ＰＢＡＮ補正用の補正項ＰＢＡＥＲＲＣＯＲが算出される。
【００３４】
また、エンジン３の使用期間が長くなるのに伴って、吸気通路６やスロットル弁１４ａの詰まり（以下「吸気通路６の詰まり」という）が発生すると、図２のスロットル弁開度ＴＨとマップ値ＫＴＨｍａｐとの関係は、スロットル弁開度ＴＨと開度関数値との実際の関係に対して誤差（以下「詰まり誤差」という）を生じてしまうことになる。この詰まり誤差を補償するために、本実施形態では、後述する手法によって、吸気通路６の詰まり度合を表す詰まり係数ＫＣＬＳを算出し、これを用いてマップ値ＫＴＨを補正することによって、開度関数値の補正後マップ値ＫＴＨ＿Ｆが算出される。そして、この補正後マップ値ＫＴＨ＿Ｆがマップ値ＫＴＨに代えて用いられるとともに、関数値誤差ＫＴＨＥＲＲとして、上記モデル式値ＫＴＨＣＡＬと補正後マップ値ＫＴＨ＿Ｆとの比（＝ＫＴＨＣＡＬ／ＫＴＨ＿Ｆ）が用いられる。なお、本実施形態では、図２のマップが相関関係モデルに、モデル式値ＫＴＨＣＡＬが第１開度関数値に、マップ値ＫＴＨが第２開度関数値に、補正後マップ値ＫＴＨ＿Ｆが補正後第２開度関数値に、関数値誤差ＫＴＨＥＲＲが関数値比にそれぞれ相当する。
【００３５】
以下、上述した第１誤差を補償しながら、通過空気量ＧＡＩＲＴＨを算出する手法について説明する。まず、関数値誤差ＫＴＨＥＲＲから値１を減算した値を誤差ＫＴＨＥＲＲＣＯＲ（＝ＫＴＨＥＲＲ−１）とする。この場合、前述したように、値ＫＴＨＥＲＲが値１に対して乖離している度合がモデル化誤差を表すので、誤差ＫＴＨＥＲＲＣＯＲは、モデル化誤差を表すものとなり、誤差モデル式を、下式（８）のように定義する。なお、この誤差モデル式（８）を用いた理由については後述する。
【数８】
0005611166.tif 000009
【００３６】
この誤差モデル式（８）のＡはモデルパラメータであり、このモデルパラメータＡをオンボード同定する演算手法として、最小２乗法を用いた場合、モデルパラメータＡの同定演算式として、下式（９）が得られる。
【数９】
0005611166.tif 000010
【００３７】
なお、後述するように、モデルパラメータＡの実際の演算では、上式（９）に基づき、スロットル弁開度ＴＨのサンプリング領域が偏った場合でも、モデルパラメータＡの同定結果における算出精度の低下を回避できるような演算手法が用いられる。
【００３８】
次に、同定したモデルパラメータＡを用いて、前述した（８）により、誤差ＫＴＨＥＲＲＣＯＲを算出した後、下式（１０）により、誤差補正係数ＫＴＨＣＯＲを算出する。
【数１０】
0005611166.tif 000011
【００３９】
上式（１０）に示すように、誤差補正係数ＫＴＨＣＯＲは、誤差ＫＴＨＥＲＲＣＯＲと値１との和、すなわち関数値誤差ＫＴＨＥＲＲの逆数に相当する値として算出される。これは以下の理由による。すなわち、関数値誤差ＫＴＨＥＲＲがモデル式値ＫＴＨＣＡＬと補正後マップ値ＫＴＨ＿Ｆとの比である以上、例えば、ＫＴＨＥＲＲ＞１の場合、言い換えればモデル式値ＫＴＨＣＡＬが補正後マップ値ＫＴＨ＿Ｆを上回っている場合には、その上回っている分を補正するために、関数値誤差ＫＴＨＥＲＲで通過空気量ＧＡＩＲＴＨを除算すればよいことになる。一方、ＫＴＨＥＲＲ＜１の場合、すなわちモデル式値ＫＴＨＣＡＬが補正後マップ値ＫＴＨ＿Ｆを下回っている場合には、その下回っている分を補正するために、関数値誤差ＫＴＨＥＲＲで通過空気量ＧＡＩＲＴＨを除算すればよいことになる。これに対して、誤差補正係数ＫＴＨＣＯＲは、後述するように乗算係数として用いられるので、モデル式値ＫＴＨＣＡＬが補正後マップ値ＫＴＨ＿Ｆに対して下回っている分または上回っている分を補正するために、関数値誤差ＫＴＨＥＲＲの逆数に相当する値として算出される。
【００４０】
そして、最終的に、誤差補正係数ＫＴＨＣＯＲを用いて、下式（１１），（１２）により、通過空気量ＧＡＩＲＴＨが算出される。
【数１１】
0005611166.tif 000012
【数１２】
0005611166.tif 000013
【００４１】
ここで、上式（１１）のＧＡＩＲＴＨＮは、基本通過空気量であり、ＨＰＡは、後述するように算出される推定大気圧である。この式（１１）は、前述した式（７）の通過空気量ＧＡＩＲＴＨを基本通過空気量ＧＡＩＲＴＨＮに、開度関数値ＫＴＨを補正後マップ値ＫＴＨ＿Ｆに、大気圧ＰＡを推定大気圧ＨＰＡにそれぞれ置き換えたものに相当する。この式（１１）において、大気圧ＰＡに代えて、推定大気圧ＨＰＡを用いたのは、大気圧ＰＡの変動を回避しながら、通過空気量ＧＡＩＲＴＨの算出精度を向上させるためである。上式（１２）に示すように、通過空気量ＧＡＩＲＴＨは、基本通過空気量ＧＡＩＲＴＨＮを補正係数ＫＴＨＣＯＲで補正することにより算出される。なお、本実施形態では、基本通過空気量ＧＡＩＲＴＨＮが基本吸気パラメータに相当し、補正係数ＫＴＨＣＯＲが補正値に相当する。
【００４２】
次に、前述した誤差モデル式（８）を用いた理由について説明する。まず、開度関数値ＫＴＨは、前述したように、開口面積Ａｔｈおよび流量係数Ｃｄの積であり、スロットル弁７ａの半径の２乗値との相関性が高い以上、誤差モデル式としては、誤差を従属変数とし、スロットル弁開度ＴＨを独立変数とする２次式を用いた方が、良好な算出精度が得られることになる。その場合、ＴＨＢ≦ＴＨの領域では、関数値誤差ＫＴＨＥＲＲは、前述したように、スロットル弁開度ＴＨの算出誤差ではなく、吸入空気量ＧＡＩＲまたは吸気圧ＰＢＡの算出誤差に起因して発生する関係上、吸入空気量ＧＡＩＲおよび吸気圧ＰＢＡの算出誤差がない条件下では、図３に示すように、関数値誤差ＫＴＨＥＲＲ＝１となるので、誤差モデル式のモデルパラメータＡを同定する必要がないことになる。
【００４３】
これに加えて、図３に示すように、誤差モデル式として、関数値誤差ＫＴＨＥＲＲを従属変数Ｙとし、スロットル弁開度ＴＨを独立変数Ｘとする２次式を用いた場合、その誤差モデル式は、Ｙ＝ａ・Ｘ2＋ｂ・Ｘ＋ｃ（ａ，ｂ，ｃはモデルパラメータ）の形式となることで、３つのモデルパラメータａ，ｂ，ｃを同定する必要が生じる。その結果、同定演算が複雑になり、演算負荷が高くなってしまう。なお、図３の黒丸は、関数値誤差ＫＴＨＥＲＲの制御タイミングごとの演算結果を示している。
【００４４】
これに対して、上記（８）式を用いた場合、図４に示すように、誤差ＫＴＨＥＲＲＣＯＲを従属変数Ｙとし、ＴＨ−ＴＨＢを独立変数Ｘとすると、誤差モデル式がＹ＝Ａ・Ｘ2の形式となることで、１つのモデルパラメータＡのみを同定すればよくなり、それによって、同定演算も容易になり、その演算負荷を低減できることになる。以上の理由により、本実施形態では、誤差モデル式として式（８）が用いられる。なお、図４の黒丸は、誤差ＫＴＨＥＲＲＣＯＲの制御タイミングごとの演算結果を示している。
【００４５】
以下、図５を参照しながら、通過空気量ＧＡＩＲＴＨの算出処理について説明する。この算出処理は、前述した算出手法によって通過空気量ＧＡＩＲＴＨを算出するものであり、ＥＣＵ２によって、ＣＲＫ信号が所定回数発生するごと（すなわち所定クランク角ごと）に実行される。なお、以下の説明では、算出された各種の値はすべてＥＣＵ２のＲＡＭ内に記憶されるものとするとともに、今回の制御タイミングにおいてＲＡＭから読み出す値すなわち前回の制御タイミングで算出された値を前回値という。
【００４６】
同図に示すように、まず、ステップ１（図では「Ｓ１」と略す。以下同じ）で、スロットル弁開度ＴＨが所定開度ＴＨＢ未満であるか否かを判別する。この判別結果がＹＥＳのときには、誤差補正係数ＫＴＨＣＯＲによって通過空気量ＧＡＩＲＴＨを補正する必要があると判定して、ステップ２に進み、前述した式（８）により、誤差ＫＴＨＥＲＲＣＯＲを算出する。
【００４７】
次いで、ステップ３で、前述した式（１０）により、誤差補正係数ＫＴＨＣＯＲを算出する。
【００４８】
一方、ステップ１の判別結果がＮＯのときには、誤差補正係数ＫＴＨＣＯＲによって通過空気量ＧＡＩＲＴＨを補正する必要がないと判定して、ステップ４に進み、誤差補正係数ＫＴＨＣＯＲを値１に設定する。
【００４９】
以上のステップ３または４に続くステップ５で、圧力比Ｒ＿ＰＨに応じて、図６に示すマップを検索することにより、流量関数値ＦＰＢＡＰＡを算出する。この圧力比Ｒ＿ＰＨは、吸気圧ＰＢＡと前述した推定大気圧ＨＰＡとの比ＰＢＡ／ＨＰＡに相当する値である。この場合、圧力比Ｒ＿ＰＨを用いた理由は、前述した推定大気圧ＨＰＡを用いた理由と同じであり、推定大気圧ＨＰＡは、ＲＡＭ内に記憶されている、大気圧推定処理で算出された値を用いる。
【００５０】
次に、ステップ６に進み、前述した式（１１），（１２）により、通過空気量ＧＡＩＲＴＨを算出する。この場合、吸気温ＴＡの平方根ＲＴＴＡおよび開度関数値ＫＴＨは、ＲＡＭ内に記憶されている、後述するモデルパラメータ学習処理において算出された値を用いる。以上のように、ステップ６で、通過空気量ＧＡＩＲＴＨを算出した後、本処理を終了する。
【００５１】
なお、図５の算出処理で算出された通過空気量ＧＡＩＲＴＨは、ＥＣＵ２によって実行される各種の制御処理において用いられる。例えば、燃料噴射制御処理および点火時期制御処理において、過渡運転条件下で、燃料噴射量や点火時期を算出する際、後述するように算出された吸入空気量ＧＡＩＲを補正するのに用いられる。
【００５２】
以下、図７を参照しながら、モデルパラメータ学習処理について説明する。この処理は、関数値誤差ＫＴＨＥＲＲを反映させながら、誤差モデルのモデルパラメータＡの同定演算を行うもの、言い換えればモデルパラメータＡの同定値を学習するものであり、ＥＣＵ２によって、ＣＲＫ信号が所定回数発生するごとに実行される。
【００５３】
同図に示すように、まず、ステップ１０で、学習条件フラグＦ＿ＬＥＡＲＮが「１」であるか否かを判別する。この学習条件フラグＦ＿ＬＥＡＲＮは、モデルパラメータＡの同定値の学習条件が成立しているか否かを表すものであり、その値は、図８に示す手法により設定される。
【００５４】
同図８に示すように、まず、ステップ２０で、エンジン始動後の車両の総走行距離ＤＩＳＴが所定値ＤＬＥＡＲＮ未満であるか否かを判別する。この判別結果がＹＥＳのときには、モデルパラメータＡの同定値の学習条件が成立していると判定して、ステップ２１に進み、それを表すために、学習条件フラグＦ＿ＬＥＡＲＮを「１」に設定する。その後、本処理を終了する。
【００５５】
一方、ステップ２０の判別結果がＮＯのときには、モデルパラメータＡの同定値の学習条件が成立していないと判定して、ステップ２２に進み、それを表すために、学習条件フラグＦ＿ＬＥＡＲＮを「０」に設定する。その後、本処理を終了する。
【００５６】
図７に戻り、ステップ１０の判別結果がＮＯで、モデルパラメータＡの同定値の学習条件が成立していないときには、そのまま本処理を終了する。一方、ステップ１０の判別結果がＹＥＳで、モデルパラメータＡの同定値の学習条件が成立しているときには、ステップ１１に進み、下式（１３）により、開度関数値の補正後マップ値ＫＴＨ＿Ｆ（補正後第２開度関数値）を算出する。
【数１３】
0005611166.tif 000014
【００５７】
上式（１３）において、ＫＲＥＦは、所定の定数（例えば値０．００３）であり、ＴＨＲＥＦは、詰まりの影響がなくなるような開度（例えば１５度）である。さらに、詰まり係数ＫＣＬＳ（詰まり度合値）は、吸気通路６の詰まり度合を表すものであり、後述する手法により算出されるとともに、吸気通路６の詰まり度合が最も大きいときにＫＣＬＳ＝１となる。また、マップ値ＫＴＨは、スロットル弁開度ＴＨに応じて、前述した図２のマップを検索することにより算出される。上式（１３）に示すように、補正後マップ値ＫＴＨ＿Ｆは、マップ値ＫＴＨを値ＫＲＥＦ・（ＴＨ−ＴＨＲＥＦ）2・ＫＣＬＳで補正することにより、吸気通路６の詰まり度合が反映された値として算出されるとともに、ＫＣＬＳ＝１のときに最も詰まり度合が大きい状態での開度関数値として算出される。
【００５８】
次いで、ステップ１２に進み、流量関数値の同定用値ＦＰＢＡＰＡｉｎｉを算出する。この同定用値ＦＰＢＡＰＡｉｎｉは、前述した図６の縦軸の流量関数値ＦＰＢＡＰＡを同定用値ＦＰＢＡＰＡｉｎｉに、横軸の圧力比Ｒ＿ＰＨを圧力比Ｒ＿ＰＨｉにそれぞれ置き換えたマップを、圧力比Ｒ＿ＰＨｉに応じて検索することにより算出される。この圧力比Ｒ＿ＰＨｉは、吸気圧ＰＢＡと初期推定大気圧ＨＰＡｉｎｉとの比ＰＢＡ／ＨＰＡｉｎｉとして算出され、この初期推定大気圧ＨＰＡｉｎｉは、ＲＡＭ内に記憶されている、大気圧推定処理で算出された値を用いる。この初期推定大気圧ＨＰＡｉｎｉを用いた理由については後述する。
【００５９】
次に、ステップ１３で、吸気温ＴＡに応じて、図示しないマップを検索することにより、吸気温ＴＡの平方根ＲＴＴＡを算出する。その後、ステップ１４で、下式（１４）により、開度関数値のモデル式値ＫＴＨＣＡＬを算出する。
【数１４】
0005611166.tif 000015
【００６０】
この場合、上式（１４）は、前述した式（７）において、開度関数値ＫＴＨをモデル式値ＫＴＨＣＡＬに、大気圧ＰＡを推定大気圧の初期値ＨＰＡｉｎｉに、流量関数値ＦＰＢＡＰＡを流量関数値の同定用値ＦＰＢＡＰＡｉｎｉにそれぞれ置き換えたものに相当する。なお、これらの値ＨＰＡｉｎｉ，ＦＰＢＡＰＡｉｎｉを用いた理由については後述する。
【００６１】
ステップ１４に続くステップ１５で、関数値誤差ＫＴＨＥＲＲを、モデル式値と補正後マップ値との比ＫＴＨＣＡＬ／ＫＴＨ＿Ｆに設定する。
【００６２】
次いで、ステップ１６に進み、スロットル弁開度ＴＨが前述した所定開度ＴＨＢ未満であるか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。
【００６３】
一方、ステップ１６の判別結果がＹＥＳのときには、スロットル弁開度ＴＨが、前述した第１誤差に起因してモデル化誤差が発生する領域にあり、モデルパラメータＡの同定演算を行うべきであると判定して、ステップ１７に進み、後述するように、モデルパラメータＡの同定演算処理を実行する。その後、本処理を終了する。
【００６４】
以上のように、このモデルパラメータ学習処理では、学習条件フラグＦ＿ＬＥＡＲＮ＝１のときに、初期推定大気圧ＨＰＡｉｎｉおよび流量関数値の同定用値ＦＰＢＡＰＡｉｎｉを用いて、関数値誤差ＫＴＨＥＲＲが算出される。このような手法によって、関数値誤差ＫＴＨＥＲＲを算出するのは以下の理由による。すなわち、本実施形態の場合、大気圧ＰＡの推定値を用いて、関数値誤差ＫＴＨＥＲＲを算出している関係上、この大気圧の推定値に誤差が含まれていると、前述した第１〜第３誤差の補償精度（修正精度）が低下し、ひいては、後述するように、これらの第１〜第３誤差を補償しながら算出された３つの値ＨＧＡＩＲＴＨ，ＧＡＩＲ，ＰＢＡを用いて算出される推定大気圧ＨＰＡの算出精度（推定精度）も低下してしまう。この場合、そのような大気圧ＰＡの推定誤差の影響を排除するには、吸気圧センサ２２の検出信号から算出された吸気圧ＰＢＡが大気圧ＰＡの真値と等しくなり、かつ大気圧ＰＡの真値がほとんど変動しない条件下で、関数値誤差ＫＴＨＥＲＲを算出する必要がある。したがって、それを達成するために、本実施形態では、学習条件フラグＦ＿ＬＥＡＲＮを用いて、学習条件の成立を確認するととともに、初期推定大気圧ＨＰＡｉｎｉおよび流量関数値の同定用値ＦＰＢＡＰＡｉｎｉを用いて、関数値誤差ＫＴＨＥＲＲを算出するように構成されている。
【００６５】
次に、図９を参照しながら、モデルパラメータＡの同定演算処理について説明する。この処理では、以下に述べるように、スロットル弁開度ＴＨの領域を、０≦ＴＨ＜ＴＨＮ１の第１領域と、ＴＨＮ１≦ＴＨ＜ＴＨＮ２の第２領域と、ＴＨＮ２≦ＴＨ＜ＴＨＮ３の第３領域と、ＴＨＮ３≦ＴＨ＜ＴＨＢの第４領域とに区分けするとともに、これらの４つの領域に対して均等な重み付け処理を施しながら、前述した同定演算式（９）に基づく演算手法によって、モデルパラメータＡが算出される。この場合、ＴＨＮ１〜３は、スロットル弁開度ＴＨの所定開度であり、０＜ＴＨＮ１＜ＴＨＮ２＜ＴＨＮ３＜ＴＨＢが成立するように設定される。
【００６６】
同図に示すように、まず、ステップ４０で、誤差ＫＴＨＥＲＲＣＯＲを、関数値誤差ＫＴＨＥＲＲと値１との偏差ＫＴＨＥＲＲ−１に設定する。次いで、ステップ４１に進み、スロットル弁開度ＴＨが所定値ＴＨＮ１未満であるか否かを判別する。この判別結果がＹＥＳで、スロットル弁開度ＴＨが第１領域にあるときには、ステップ４４に進み、領域値ｎを値１に設定する。
【００６７】
一方、ステップ４１の判別結果がＮＯで、ＴＨＮ１≦ＴＨのときには、ステップ４２に進み、スロットル弁開度ＴＨが所定値ＴＨＮ２未満であるか否かを判別する。この判別結果がＹＥＳで、スロットル弁開度ＴＨが第２領域にあるときには、ステップ４５に進み、領域値ｎを値２に設定する。
【００６８】
一方、ステップ４２の判別結果がＮＯで、ＴＨＮ２≦ＴＨのときには、ステップ４３に進み、スロットル弁開度ＴＨが所定値ＴＨＮ３未満であるか否かを判別する。この判別結果がＹＥＳで、スロットル弁開度ＴＨが第３領域にあるときには、ステップ４６に進み、領域値ｎを値３に設定する。
【００６９】
一方、ステップ４３の判別結果がＮＯで、スロットル弁開度ＴＨが第４領域にあるときには、ステップ４７に進み、領域値ｎを値４に設定する。以上のように、領域値ｎは、スロットル弁開度ＴＨの４つの領域を表す値として算出される。
【００７０】
以上のステップ４４〜４７に続くステップ４８で、下式（１５）により、第ｎ領域の積分項ＸＸＸＸ［ｎ］を算出する。
【数１５】
0005611166.tif 000016
【００７１】
上式（１５）において、積分項ＸＸＸＸ［ｎ］は、前述した同定演算式（９）の分母に相当する値であり、値ＸＸＸＸ［ｎ］ｚは積分項の前回値を表している。また、積分項ＸＸＸＸ［ｎ］の［］内の値ｎは、上述した領域値であり、この点は以下の説明においても同様である。すなわち、このステップ４８では、例えば、領域値ｎ＝１のときには第１領域の積分項ＸＸＸＸ［１］が、ｎ＝２のときには第２領域の積分項ＸＸＸＸ［２］がそれぞれ算出される。
【００７２】
次いで、ステップ４９で、下式（１６）により、第ｎ領域の積分項ＸＸＹ［ｎ］を算出する。
【数１６】
0005611166.tif 000017
【００７３】
上式（１６）において、積分項ＸＸＹ［ｎ］は、前述した同定演算式（９）の分子に相当する値であり、値ＸＸＹ［ｎ］ｚは積分項の前回値を表している。
【００７４】
ステップ４９に続くステップ５０で、第ｎ領域のサンプリング数ＳＡＭＰＬ［ｎ］を、その前回値と値１の和（ＳＡＭＰＬ［ｎ］ｚ＋１）に設定する。このサンプリング数ＳＡＭＰＬ［ｎ］は、第ｎ領域における積分項のサンプリング数すなわち演算結果数を表している。
【００７５】
次いで、ステップ５１に進み、下式（１７）により、加重平均値ＸＸＸＸＴＴＬを算出する。
【数１７】
0005611166.tif 000018
【００７６】
上式（１７）を参照すると明らかなように、加重平均値ＸＸＸＸＴＴＬは、値（ＴＨ−ＴＨＢ）4の相加平均値を領域ごとに算出するとともに、これらの相加平均値に対して、均等重み付けでの加重平均演算を施すことにより算出される。
【００７７】
次に、ステップ５２で、下式（１８）により、加重平均値ＸＸＹＴＴＬを算出する。
【数１８】
0005611166.tif 000019
【００７８】
上式（１８）を参照すると明らかなように、加重平均値ＸＸＹＴＴＬは、値ＫＴＨＥＲＲＣＯＲ・（ＴＨ−ＴＨＢ）2の相加平均値を領域ごとに算出するとともに、これらの相加平均値に対して、均等重み付けでの加重平均演算を施すことにより算出される。
【００７９】
ステップ５２に続くステップ５３で、下式（１９）により、モデルパラメータＡを算出した後、本処理を終了する。
【数１９】
0005611166.tif 000020
【００８０】
以上のように、このモデルパラメータＡの同定演算処理では、スロットル弁開度ＴＨの領域ごとに算出した値ＫＴＨＥＲＲＣＯＲ・（ＴＨ−ＴＨＢ）2の４つの相加平均値に対して、均等重み付けでの加重平均演算を施すことにより、加重平均値ＸＸＹＴＴＬを算出し、領域ごとに算出した値（ＴＨ−ＴＨＢ）4の４つの相加平均値に対して、均等重み付けでの加重平均演算を施すことにより、加重平均値ＸＸＸＸＴＴＬを算出し、前者を後者で除算することにより、モデルパラメータＡが算出される。この演算手法の利点を、図１０および図１１を参照しながら説明する。
【００８１】
図１０は、本実施形態の上述した同定演算手法で算出したモデルパラメータＡを用いて、誤差ＫＴＨＥＲＲＣＯＲを演算した場合の演算結果例を示しており、図１１は、比較のために、前述した式（９）により算出したモデルパラメータＡを用いて、誤差ＫＴＨＥＲＲＣＯＲを演算した場合の演算結果例を示している。なお、両図中の■で示すデータは演算開始直後のものを、▽で示すデータは■で示すデータよりも演算時間が経過したときのものを、×で示すデータは▽で示すデータよりも演算時間がさらに経過したときのものをそれぞれ表している。
【００８２】
両図を比較すると明らかなように、図１１の場合、演算時間の経過に伴い、スロットル弁開度ＴＨのサンプリングデータの多い領域での演算結果が、モデルパラメータＡの演算結果に反映される度合が高くなってしまい、その結果、誤差ＫＴＨＥＲＲＣＯＲの演算結果を示す曲線が変化していることが判る。すなわち、モデルパラメータＡの同定精度が低下していることが判る。これに対して、図１０に示す本実施形態の手法の場合、演算時間が経過した際、スロットル弁開度ＴＨのサンプリングデータがある領域に偏った状態になったとしても、前述した均等重み付けの手法により、その領域での演算結果がモデルパラメータＡの演算結果に反映される度合が他の領域と同じようになることで、誤差ＫＴＨＥＲＲＣＯＲの演算結果を示す曲線が変化していないことが判る。すなわち、モデルパラメータＡの同定演算結果において、高い算出精度を確保できていることが判る。
【００８３】
次に、図１２を参照しながら、大気圧推定処理について説明する。この処理は、以下に述べるように、推定大気圧ＨＰＡおよびその初期値である初期推定大気圧ＨＰＡｉｎｉを算出するものであり、ＥＣＵ２によって、クランキング開始以降、ＣＲＫ信号が所定回数発生するごとに実行される。
【００８４】
同図に示すように、まず、ステップ６０で、初期圧算出済みフラグＦ＿ＦＩＮＨＰＡＩＮＩが「１」であるか否かを判別する。この判別結果がＮＯのときには、ステップ６１に進み、初期推定大気圧ＨＰＡｉｎｉを算出する。このステップ６１では、初期推定大気圧の前回値ＨＰＡｉｎｉｚと吸気圧ＰＢＡを比較し、両者のうちの大きい方が、初期推定大気圧ＨＰＡｉｎｉとして設定される。
【００８５】
次いで、ステップ６２に進み、始動モードフラグＦ＿ＳＴＭＯＤが「１」であるか否かを判別する。この始動モードフラグＦ＿ＳＴＭＯＤは、エンジン３のクランキングが終了するまでの間は「１」に設定され、クランキングが終了したときに「０」に設定される。このステップ６２の判別結果がＹＥＳで、クランキング中のときには、そのまま本処理を終了する。
【００８６】
一方、ステップ６２の判別結果がＮＯで、クランキングが終了したときには、初期推定大気圧ＨＰＡｉｎｉの算出を終了すべきであると判定して、ステップ６３に進み、それを表すために、初期圧算出済みフラグＦ＿ＦＩＮＨＰＡＩＮＩを「１」に設定した後、本処理を終了する。
【００８７】
このように、ステップ６３で、初期圧算出済みフラグＦ＿ＦＩＮＨＰＡＩＮＩが「１」に設定されると、前述したステップ６０の判別結果がＹＥＳとなり、その場合には、ステップ６４に進み、推定大気圧ＨＰＡの算出処理を以下に述べるように実行する。その後、本処理を終了する。
【００８８】
次に、図１３を参照しながら、推定大気圧ＨＰＡの算出処理について説明する。同図に示すように、まず、ステップ７０で、初期設定フラグＦ＿ＦＩＮＨＰＡＩＮＩＲが「１」であるか否かを判別する。今回のループが本処理の１回目の制御タイミングであるときには、ステップ７０の判別結果がＮＯとなり、その場合には、ステップ７１に進み、推定大気圧ＨＰＡおよび遅延大気圧ＨＰＡＤをいずれも初期推定大気圧ＨＰＡｉｎｉに設定する。
【００８９】
次いで、ステップ７２に進み、初期設定フラグＦ＿ＦＩＮＨＰＡＩＮＩＲを「１」に設定した後、本処理を終了する。
【００９０】
このように、ステップ７２で、初期設定フラグＦ＿ＦＩＮＨＰＡＩＮＩＲが「１」に設定されると、前述したステップ７０の判別結果がＹＥＳとなり、その場合には、ステップ７３に進み、前述した図７のステップ１１と同じ手法により、開度関数値の補正後マップ値ＫＴＨ＿Ｆを算出する。
【００９１】
次いで、ステップ７４に進み、流量関数値ＦＰＢＡＰＡを算出する。このステップ７４では、圧力比Ｒ＿ＰＨＤを、吸気圧ＰＢＡと前述した遅延推定大気圧ＨＰＡＤとの比ＰＢＡ／ＨＰＤＡとして算出するとともに、前述した図６のマップにおいて、横軸の圧力比Ｒ＿ＰＨを圧力比Ｒ＿ＰＨＤに置き換えたマップを用い、このマップを圧力比Ｒ＿ＰＨＤに応じて検索することにより、流量関数値ＦＰＢＡＰＡが算出される。
【００９２】
次に、ステップ７５に進み、前述した図７のステップ１３と同様に、吸気温ＴＡに応じて、図示しないマップを検索することにより、吸気温ＴＡの平方根ＲＴＴＡを算出する。その後、ステップ７６で、エンジン回転数ＮＥに応じて、図１４に示すマップを検索することにより、回転数補正係数ＫＴＨＮＥを算出する。この回転補正係数ＫＴＨＮＥは、エアフローセンサ２０よりも上流側に配置されたエアクリーナ（図示せず）の圧力損失を補正するための値である。
【００９３】
ステップ７６に続くステップ７７で、下式（２０）により、推定通過空気量ＨＧＡＩＲＴＨを算出する。
【数２０】
0005611166.tif 000021
【００９４】
この式（２０）は、前述した式（６）において、右辺の通過空気量ＧＡＩＲＴＨを推定通過空気量ＨＧＡＩＲＴＨに、左辺の大気圧ＰＡおよび開度関数ＫＴＨを遅延推定大気圧ＨＰＡＤおよび補正後マップ値ＫＴＨ＿Ｆにそれぞれ置き換えたものに相当する。
【００９５】
次いで、ステップ７８に進み、下式（２１）により、空気量偏差ＤＧＡＩＲを算出する。
【数２１】
0005611166.tif 000022
【００９６】
次に、ステップ７９で、車速ＶＰが所定車速ＶＰＬよりも大きいか否かを判別する。この判別結果がＹＥＳのときには、車両が走行中であると判定して、ステップ８０に進み、空気量偏差ＤＧＡＩＲに応じて、図１５に示すマップを検索することにより、補正項ＣＯＲＨＰＡを算出する。
【００９７】
一方、ステップ７９の判別結果がＮＯのときには、停車中であると判定して、ステップ８１に進み、補正項ＣＯＲＨＰＡを値０に設定する。
【００９８】
以上のステップ８０または８１に続くステップ８２で、下式（２２）により、更新推定大気圧ＨＰＡＣＡＬを算出する。
【数２２】
0005611166.tif 000023
【００９９】
次いで、ステップ８３に進み、下式（２３）に示す加重平均演算（なまし演算）により、推定大気圧ＨＰＡを算出する。
【数２３】
0005611166.tif 000024
【０１００】
上式（２３）のＣＡ１は、重み係数であり、０＜ＣＡ１＜１が成立するような所定値に設定されている。また、ＨＡＰｚは、推定大気圧ＨＰＡの前回値である。
【０１０１】
次に、ステップ８４で、上記のように算出した推定大気圧の今回値ＨＰＡを遅延推定大気圧ＨＰＡＤに設定した後、本処理を終了する。
【０１０２】
以上のように、この推定大気圧ＨＰＡの算出処理では、更新推定大気圧ＨＰＡＣＡＬが、推定大気圧の前回値ＨＰＡｚを補正項ＣＯＲＨＰＡで補正することにより算出されるとともに、補正項ＣＯＲＨＰＡが空気量偏差ＤＧＡＩＲに応じて算出されるので、更新推定大気圧ＨＰＡＣＡＬは、空気量偏差ＤＧＡＩＲが値０になるように算出される。言い換えれば、更新推定大気圧ＨＰＡＣＡＬは、推定通過空気量ＨＧＡＩＲＴＨが吸入空気量ＧＡＩＲに一致するように算出され、そのような更新推定大気圧ＨＰＡＣＡＬと推定大気圧の前回値ＨＰＡｚとの加重平均演算によって、推定大気圧ＨＰＡが算出されるので、推定大気圧ＨＰＡを実際の大気圧ＰＡに精度よく追従するように算出することができる。
【０１０３】
以下、図１６を参照しながら、吸入空気量ＧＡＩＲの算出処理について説明する。この処理は、以下に述べるように、エアフローセンサ２０の検出信号の出力電圧値ＶＡＦＭを用いて、吸入空気量ＧＡＩＲを算出するものであり、ＥＣＵ２によって、ＣＲＫ信号が所定回数発生するごとに実行される。
【０１０４】
まず、ステップ９０で、出力電圧値ＶＡＦＭに応じて、図１７に示すマップを検索することにより、基本吸入空気量ＧＡＩＲＮを算出する。
【０１０５】
次いで、ステップ９１に進み、基本吸入空気量ＧＡＩＲＮを補正係数ＫＡＦＭＥＲＲで割った値ＧＡＩＲＮ／ＫＡＦＭＥＲＲを、吸入空気量ＧＡＩＲとして設定する。この補正係数ＫＡＦＭＥＲＲの算出手法については後述する。以上のようにステップ９１で、吸入空気量ＧＡＩＲを算出した後、本処理を終了する。なお、本実施形態では、基本吸入空気量ＧＡＩＲＮが基本吸気パラメータに相当し、補正係数ＫＡＦＭＥＲＲが補正値に相当する。
【０１０６】
上記ステップ９１において、補正係数ＫＡＦＭＥＲＲを基本吸入空気量ＧＡＩＲＮを除算するための値として用いた理由は、前述した誤差補正係数ＫＴＨＣＯＲを、関数値誤差ＫＴＨＥＲＲの逆数として算出した理由と同じである。
【０１０７】
なお、図１６の算出処理で算出された吸入空気量ＧＡＩＲは、ＥＣＵ２によって実行される各種の制御処理において用いられる。例えば、燃料噴射制御処理および点火時期制御処理において、燃料噴射量や点火時期を算出する際に用いられる。
【０１０８】
次に、図１８を参照しながら、上記の補正係数ＫＡＦＭＥＲＲの算出処理について説明する。この処理は、前述した関数値誤差ＫＴＨＥＲＲを用いる手法によって、補正係数ＫＡＦＭＥＲＲを算出するものであり、ＥＣＵ２によって、ＣＲＫ信号が所定回数発生するごとに実行される。
【０１０９】
同図に示すように、まず、ステップ１００で、前述した図７のステップ１１と同じ手法により、開度関数値の補正後マップ値ＫＴＨ＿Ｆを算出する。
【０１１０】
次いで、ステップ１０１に進み、流量関数値ＦＰＢＡＰＡを算出する。この場合、流量関数値ＦＰＢＡＰＡは、前述した図６の横軸の圧力比Ｒ＿ＰＨを圧力比Ｒ＿Ｐ（＝ＰＢＡ／ＰＡ）に置き換えたマップを用い、このマップを圧力比Ｒ＿Ｐに応じて検索することにより算出される。
【０１１１】
次に、ステップ１０２で、前述した図７のステップ１３と同じ手法により、吸気温ＴＡの平方根ＲＴＴＡを算出する。その後、ステップ１０３で、下式（２４）により、開度関数値のモデル式値ＫＴＨＣＡＬを算出する。この式（２４）は、前述した式（７）において、左辺のＫＴＨをＫＴＨＣＡＬに置き換えたものに相当する。
【数２４】
0005611166.tif 000025
【０１１２】
ステップ１０３に続くステップ１０４で、関数値誤差ＫＴＨＥＲＲを、モデル式値と補正後マップ値との比ＫＴＨＣＡＬ／ＫＴＨ＿Ｈに設定する。
【０１１３】
次いで、ステップ１０５に進み、スロットル弁開度ＴＨが前述した所定開度ＴＨＢ未満であるか否かを判別する。この判別結果がＹＥＳのときには、そのまま本処理を終了する。
【０１１４】
一方、ステップ１０５の判別結果がＮＯのときには、ステップ１０６に進み、圧力比Ｒ＿Ｐが臨界圧力比Ｒ＿ＣＲＩＴ未満であるか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。
【０１１５】
一方、ステップ１０６の判別結果がＹＥＳのとき、すなわちＴＨＢ≦ＴＨかつＲ＿ＣＲＩＴ＜Ｒ＿Ｐのときには、前述した第２誤差に起因して、モデル化誤差が発生する領域にあり、補正係数ＫＡＦＭＥＲＲを更新すべきであると判定して、ステップ１０７に進み、下式（２５）により、補正係数ＫＡＦＭＥＲＲを算出する。その後、本処理を終了する。
【数２５】
0005611166.tif 000026
【０１１６】
上式（２５）のＣＡ２は、重み係数であり、０＜ＣＡ２＜１が成立するような所定値に設定されている。なお、この重み係数ＣＡ２を、エンジン回転数ＮＥに応じてマップを検索する手法により算出してもよい。また、式（２５）のＫＡＦＭＥＲＲｚは、補正係数ＫＡＦＭＥＲＲの前回値である。
【０１１７】
以上のように、図１８の算出処理では、補正係数ＫＡＦＭＥＲＲは、その前回値ＫＡＦＭＥＲＲｚと関数値誤差ＫＴＨＥＲＲの加重平均演算により算出されるので、補正係数ＫＡＦＭＥＲＲを、関数値誤差ＫＴＨＥＲＲが表すモデル化誤差を反映した値として算出することができる。同じ理由により、何らかの原因で、関数値誤差ＫＴＨＥＲＲの演算結果において演算誤差が一時的に急増した場合でも、その影響を回避しながら、補正係数ＫＡＦＭＥＲＲを精度よく算出することができる。
【０１１８】
次に、図１９を参照しながら、吸気圧ＰＢＡの算出処理について説明する。この処理は、以下に述べるように、吸気圧センサ２２の検出信号の出力電圧値ＶＰＢＡを用いて、吸気圧ＰＢＡを算出するものであり、ＥＣＵ２によって、ＣＲＫ信号が所定回数発生するごとに実行される。
【０１１９】
まず、ステップ１１０で、出力電圧値ＶＰＢＡに基づき、下式（２６）により、基本吸気圧ＰＢＡＮを算出する。なお、下式（２６）のα、β、γは所定値である。
【数２６】
0005611166.tif 000027
【０１２０】
次いで、ステップ１１１に進み、吸気圧ＰＢＡを、基本吸気圧ＰＢＡＮと補正項ＰＢＡＥＲＲＣＯＲとの和（ＰＢＡＮ＋ＰＢＡＥＲＲＣＯＲ）に設定する。この補正項ＰＢＡＥＲＲＣＯＲの算出手法については後述する。以上のようにステップ１１１で、吸気圧ＰＢＡを算出した後、本処理を終了する。なお、本実施形態では、基本吸気圧ＰＢＡＮが基本吸気パラメータに相当し、補正項ＰＢＡＥＲＲＣＯＲが補正値に相当する。
【０１２１】
この場合、図１９の算出処理で算出された吸気圧ＰＢＡは、ＥＣＵ２によって実行される各種の制御処理において用いられる。例えば、燃料噴射制御処理および点火時期制御処理において、燃料噴射量や点火時期を算出する際に用いられる。
【０１２２】
次に、図２０を参照しながら、上記の補正項ＰＢＡＥＲＲＣＯＲの算出処理について説明する。この処理は、前述した関数値誤差ＫＴＨＥＲＲを用いる手法によって、補正項ＰＢＡＥＲＲＣＯＲを算出するものであり、ＥＣＵ２によって、ＣＲＫ信号が所定回数発生するごとに実行される。
【０１２３】
同図を参照すると明らかなように、この処理のステップ１２０〜１２５は、図１８のステップ１００〜１０５と同様に構成されているので、以下の説明では、ステップ１２６以降を中心に説明する。この処理の場合、ステップ１２５の判別結果がＹＥＳで、ＴＨＢ≦ＴＨのときには、ステップ１２６に進み、圧力比Ｒ＿Ｐが臨界圧力比Ｒ＿ＣＲＩＴ以上であるか否かを判別する。この判別結果がＮＯのときには、そのまま本処理を終了する。
【０１２４】
一方、ステップ１２６の判別結果がＹＥＳで、Ｒ＿ＣＲＩＴ≦Ｒ＿Ｐのときには、前述した第３誤差に起因して、モデル化誤差が発生する領域にあり、補正項ＰＢＡＥＲＲＣＯＲを更新すべきであると判定して、ステップ１２７に進み、流量関数値の補正演算用値ＦＰＢＡＰＡＣＯＲを、流量関数値と関数値誤差との比ＦＰＢＡＰＡ／ＫＴＨＥＲＲに設定する。この流量関数値の補正演算用値ＦＰＢＡＰＡＣＯＲは、モデル化誤差によって生じている流量関数値ＦＰＢＡＰＡの誤差を表す値である。
【０１２５】
次いで、ステップ１２８に進み、流量関数値の補正演算用値ＦＰＢＡＰＡＣＯＲに応じて、図２１に示すマップを検索することにより、圧力比の補正演算用値Ｒ＿ＰＣＯＲを算出する。このマップは、前述した図６のマップにおいて、横軸と縦軸の関係を入れ換えるとともに、縦軸を圧力比の補正演算用値Ｒ＿ＰＣＯＲに、横軸を流量関数値の補正演算用値ＦＰＢＡＰＡＣＯＲにそれぞれ置き換えたものに相当する。以上のように算出される圧力比の補正演算用値Ｒ＿ＰＣＯＲは、モデル化誤差によって生じている圧力比Ｒ＿Ｐの誤差を表す値である。
【０１２６】
次に、ステップ１２９で、吸気圧の補正演算用値ＰＢＡＣＯＲを、大気圧ＰＡと圧力比の補正演算用値Ｒ＿ＰＣＯＲとの積ＰＡ・Ｒ＿ＰＣＯＲに設定する。この吸気圧の補正演算用値ＰＢＡＣＯＲは、モデル化誤差によって生じている吸気圧ＰＢＡの誤差を表す値である。さらに、ステップ１２９に続くステップ１３０で、吸気圧誤差ＰＢＡＥＲＲを、吸気圧の補正演算用値ＰＢＡＣＯＲと基本吸気圧ＰＢＡＮとの偏差ＰＢＡＣＯＲ−ＰＢＡＮに設定する。
【０１２７】
次いで、ステップ１３１に進み、下式（２７）により、補正項ＰＢＡＥＲＲＣＯＲを算出した後、本処理を終了する。
【数２７】
0005611166.tif 000028
【０１２８】
上式（２７）のＣＡ３は、重み係数であり、０＜ＣＡ３＜１が成立するような所定値に設定されている。なお、この重み係数ＣＡ３を、エンジン回転数ＮＥに応じてマップを検索する手法により算出してもよい。また、式（２７）のＰＢＡＥＲＲＣＯＲｚは、補正項ＰＢＡＥＲＲＣＯＲの前回値である。
【０１２９】
以上のように、図２０の算出処理では、補正項ＰＢＡＥＲＲＣＯＲは、その前回値ＰＢＡＥＲＲＣＯＲｚと吸気圧誤差ＰＢＡＥＲＲの加重平均演算により算出されるので、補正項ＰＢＡＥＲＲＣＯＲを、関数値誤差ＫＴＨＥＲＲが表すモデル化誤差を反映した値として算出することができる。同じ理由により、何らかの原因で、関数値誤差ＫＴＨＥＲＲの演算結果において演算誤差が一時的に急増した場合でも、その影響を回避しながら、補正項ＰＢＡＥＲＲＣＯＲを精度よく算出することができる。
【０１３０】
次に、図２２を参照しながら、ＥＣＵ２によって実行されるアイドルＦＢ制御処理について説明する。このアイドルＦＢ制御処理は、アイドル運転中、エンジン回転数ＮＥが目標回転数ＮＯＢＪに収束するように、スロットル弁開度ＴＨをフィードバック制御するものであり、所定の制御周期（例えば１０ｍｓｅｃ）で実行される。
【０１３１】
同図に示すように、まず、ステップ１４０で、アイドルＦＢ許可フラグＦ＿ＩＤＬＥＦＢが「１」であるか否かを判別する。このアイドルＦＢ許可フラグＦ＿ＩＤＬＥＦＢは、アイドルＦＢ制御処理の実行条件が成立しているか否かを表すものであり、図示しない設定処理において、エンジン３の運転状態（例えば、スロットル弁開度ＴＨ、エンジン回転数ＮＥおよび車速ＶＰなど）に基づき、アイドルＦＢ制御処理の実行条件が成立しているときには「１」に、実行条件が不成立のときには「０」にそれぞれ設定される。
【０１３２】
ステップ１４０の判別結果がＮＯのときには、そのまま本処理を終了する。一方、ステップ１４０の判別結果がＹＥＳのときには、アイドルＦＢ制御処理を実行すべきであると判定して、ステップ１４１に進み、下式（２８）により、積分項の前回値ＩＡＩＮｚを算出する。
【数２８】
0005611166.tif 000029
【０１３３】
上式（２８）において、ＩＴＷは、水温補正項であり、エンジン３の冷却水温度に応じてマップ検索により算出される。また、ＩＸＲＥＦは、積分項ＩＡＩＮの学習値であり、後述する手法によって算出される。さらに、ＩＵＰは、回転数補正項であり、エンジン回転数ＮＥに応じてマップ検索により算出される。
【０１３４】
次に、ステップ１４２で、下式（２９）により、回転数偏差ＤＮＥを算出する。
【数２９】
0005611166.tif 000030
この式（２９）の目標回転数ＮＯＢＪは、図示しない設定処理において、エンジン３の冷却水温度などに応じて設定される。
【０１３５】
次いで、ステップ１４３に進み、下式（３０）により、積分項ＩＡＩＮを算出する。
【数３０】
0005611166.tif 000031
この式（３０）のＫＩは積分項ゲインであり、エンジン３の運転状態（冷却水温度など）に応じてマップ検索により算出される。
【０１３６】
ステップ１４３に続くステップ１４４で、下式（３１）により、比例項ＩＰを算出する。
【数３１】
0005611166.tif 000032
この式（３１）のＫＰは比例項ゲインであり、エンジン３の運転状態（冷却水温度など）に応じてマップ検索により算出される。
【０１３７】
次に、ステップ１４５で、下式（３２）により、微分項ＩＤを算出する。
【数３２】
0005611166.tif 000033
この式（３２）において、ＫＰは比例項ゲインであり、エンジン３の運転状態（冷却水温度など）に応じてマップ検索により算出される。また、ＤＮＥｚは、回転数偏差ＤＮＥの前回値である。
【０１３８】
次いで、ステップ１４６に進み、フィードバック補正項ＩＦＢを算出する。具体的には、下式（３３）により、フィードバック補正項ＩＦＢを算出し、その算出値にリミット処理を施すことによって、フィードバック補正項ＩＦＢが最終的に算出される。
【数３３】
0005611166.tif 000034
【０１３９】
以上のように、フィードバック補正項ＩＦＢは、ＰＩＤ制御アルゴリズムを適用した制御アルゴリズムによって、エンジン回転数ＮＥを目標回転数ＮＯＢＪに収束させるための値として算出される。
【０１４０】
次に、ステップ１４７で、下式（３４）により、制御入力ＩＣＭＤを算出する。
【数３４】
0005611166.tif 000035
【０１４１】
この式（３４）において、ＩＬＯＡＤは、負荷補正項であり、補機負荷などに応じて算出される。また、ＫＩＰＡ，ＩＰＡはそれぞれ、大気圧補正係数および大気圧補正項であり、大気圧ＰＡに応じて算出される。
【０１４２】
ステップ１４７に続くステップ１４８で、学習値算出許可フラグＦ＿ＩＸＲＥＦが「１」であるか否かを判別する。この学習値算出許可フラグＦ＿ＩＸＲＥＦは、積分項の学習値ＩＸＲＥＦの算出条件が成立しているか否かを表すものであり、図示しない設定処理において、エンジン３の運転状態（例えば、スロットル弁開度ＴＨ、エンジン回転数ＮＥおよび車速ＶＰなど）に基づき、学習値ＩＸＲＥＦの算出条件が成立しているときには「１」に、算出条件が不成立のときには「０」にそれぞれ設定される。
【０１４３】
ステップ１４８の判別結果がＮＯのときには、そのまま本処理を終了する。一方、ステップ１４８の判別結果がＹＥＳのときには、学習値ＩＸＲＥＦを算出すべきであると判定して、ステップ１４９に進み、学習値ＩＸＲＥＦ（フィードバック補正量）を算出する。具体的には、下式（３５）に示す加重平均演算によって、学習値ＩＸＲＥＦを算出し、その算出値にリミット処理を施すことにより、学習値ＩＸＲＥＦが最終的に算出される。
【数３５】
0005611166.tif 000036
【０１４４】
この式（３５）において、ＣＢ１は、重み係数であり、０＜ＣＢ１＜１が成立するような所定値に設定されている。また、ＩＸＲＥＦｚは、学習値ＩＸＲＥＦの前回値である。このように、ステップ１４９で、学習値ＩＸＲＥＦを算出した後、本処理を終了する。
【０１４５】
図２２のアイドルＦＢ制御処理において、制御入力ＩＣＭＤが以上のように算出されると、この制御入力ＩＣＭＤに対応する制御入力信号がＴＨアクチュエータ７ｂに供給される。それにより、制御入力ＩＣＭＤに含まれているフィードバック補正項ＩＦＢの効果によって、エンジン回転数ＮＥが目標回転数ＮＯＢＪに収束するように、スロットル弁開度ＴＨがフィードバック制御される。
【０１４６】
次に、図２３，２４を参照しながら、ＥＣＵ２によって実行される詰まり係数算出処理について説明する。この算出処理は、以下に述べるように、吸気通路６の詰まり度合を表す値として、詰まり係数ＫＣＬＳを算出するものであり、所定の制御周期（例えば１０ｍｓｅｃ）で実行される。
【０１４７】
図２３に示すように、まず、ステップ１６０で、算出許可フラグＦ＿ＫＣＬＳが「１」であるか否かを判別する。この算出許可フラグＦ＿ＫＣＬＳは、詰まり係数ＫＣＬＳの算出条件が成立しているか否かを表すものであり、図示しない設定処理において、ブローバイガスのリークの有無などに基づき、詰まり係数ＫＣＬＳの算出条件が成立しているときには「１」に、算出条件が不成立のときには「０」にそれぞれ設定される。
【０１４８】
ステップ１６０の判別結果がＮＯのときには、そのまま本処理を終了する。一方、ステップ１６０の判別結果がＹＥＳのときには、詰まり係数ＫＣＬＳを算出すべきであると判定して、ステップ１６１に進み、詰まり係数の前回値ＫＣＬＳｚをＲＡＭ内に記憶されている詰まり係数ＫＣＬＳの値に設定する。
【０１４９】
次に、ステップ１６２，１６３において、学習値ＩＸＲＥＦに応じて、図２４に示すマップを検索することにより、スロットル弁開度の基準上限値ｔｈｍａｘおよび基準下限値ｔｈｍｉｎをそれぞれ算出する。同図において、破線で示す基準上限値ｔｈｍａｘは、吸気通路６がスロットル弁７ａを制御可能な限界の詰まり状態にあるときの、学習値ＩＸＲＥＦに対するスロットル弁開度の値を表している。一方、実線で示す基準下限値ｔｈｍｉｎは、吸気通路６の詰まりが発生していないときの、学習値ＩＸＲＥＦに対するスロットル弁開度の値を表している。したがって、吸気通路６の詰まり度合が増大するのに伴い、学習値ＩＸＲＥＦに対するスロットル弁開度の値は、基準下限値ｔｈｍｉｎから基準上限値ｔｈｍａｘ側に向かって変化することになる。
【０１５０】
また、図２４において、ＩＸＢＡＳＥは、学習値ＩＸＲＥＦの所定のしきい値であり、このしきい値ＩＸＢＡＳＥは、ＩＸＲＥＦ＞ＩＸＢＡＳＥが成立しているときに、吸気通路６の詰まりが発生していると推定できる値に設定されている。また、ＴＨＭＡＸ，ＴＨＭＩＮはそれぞれ、ＩＸＲＥＦ＝ＩＸＢＡＳＥのときの、基準上限値ｔｈｍａｘおよび基準下限値ｔｈｍｉｎの所定値である。
【０１５１】
ステップ１６３に続くステップ１６４で、下式（３６）により、スロットル弁開度の暫定値ｔｈｔｍｐを算出する。
【数３６】
0005611166.tif 000037
この式（３６）から明らかなように、スロットル弁開度の暫定値ｔｈｔｍｐは、詰まり係数の前回値ＫＣＬＳｚを重み係数とする、基準上限値ｔｈｍａｘおよび基準下限値ｔｈｍｉｎの加重平均演算によって算出される。
【０１５２】
次いで、ステップ１６５に進み、下式（３７）により、詰まり係数の暫定値ｋｃｌｓｔｍｐを算出する。
【数３７】
0005611166.tif 000038
この式（３７）から明らかなように、詰まり係数の暫定値ｋｃｌｓｔｍｐは、スロットル弁開度の暫定値ｔｈｔｍｐが基準下限値ｔｈｍｉｎから基準上限値ｔｈｍａｘに近づくほど（すなわち、吸気通路６の詰まり度合がより大きくなるほど）、値０から値１により近づくように算出される。
【０１５３】
次に、ステップ１６６で、下式（３８）〜（４２）により、詰まり係数ＫＣＬＳを算出した後、本処理を終了する。
【０１５４】
【数３８】
0005611166.tif 000039
【数３９】
0005611166.tif 000040
【数４０】
0005611166.tif 000041
【数４１】
0005611166.tif 000042
【数４２】
0005611166.tif 000043
【０１５５】
上式（３８）において、ＫＣＬＳ＿Ｌは下限しきい値を、ＣＲＥＦは所定値をそれぞれ表している。この下限しきい値ＫＣＬＳ＿Ｌは、式（３８）による算出結果が値０を下回っているときには、値０に設定される。また、上式（３９）のＫＣＬＳ＿Ｈは上限しきい値を表しており、この上限しきい値ＫＣＬＳ＿Ｈは、式（３９）による算出結果が値１を上回っているときには、値１に設定される。式（４０）〜（４２）から明らかなように、下限しきい値ＫＣＬＳ＿Ｌを下限とし、上限しきい値ＫＣＬＳ＿Ｈを上限とするリミット処理を暫定値ｋｃｌｓｔｍｐに施すことによって、詰まり係数ＫＣＬＳが算出される。
【０１５６】
以上のように、本実施形態では、図２３に示す手法によって詰まり係数ＫＣＬＳが算出される。これは、以下の理由による。すなわち、前述したように、アイドルＦＢ制御処理では、制御入力ＩＣＭＤに含まれるフィードバック補正項ＩＦＢが、エンジン回転数ＮＥを目標回転数ＮＯＢＪに収束させるための値として算出される。その場合、フィードバック補正項ＩＦＢに含まれる積分項ＩＡＩＮは、その学習値ＩＸＲＥＦを用いて算出されるとともに、この学習値ＩＸＲＥＦは、積分項ＩＡＩＮと学習値の前回値ＩＸＲＥＦｚの加重平均演算によって算出されるので、吸気通路６の詰まりが発生した際、学習値ＩＸＲＥＦが増大することになるとともに、詰まり度合が大きいほど、学習値ＩＸＲＥＦの増大度合がより大きくなる。したがって、吸気通路６の詰まり度合と相関性の高い学習値ＩＸＲＥＦを用いることによって、詰まり係数ＫＣＬＳを、吸気通路６の詰まり度合を適切に表す値として算出できることになる。この理由により、本実施形態では、図２３に示す手法を用いて、詰まり係数ＫＣＬＳが算出される。
【０１５７】
以上のように、本実施形態の吸気パラメータ算出装置１によれば、補正後マップ値ＫＴＨ＿Ｆが、マップ値ＫＴＨを詰まり係数ＫＣＬＳを含む値ＫＲＥＦ・（ＴＨ−ＴＨＲＥＦ）2・ＫＣＬＳで補正することによって算出されるので、補正後マップ値ＫＴＨ＿Ｆを、吸気通路６の詰まり度合を反映させた値として算出することができる。それにより、吸気通路６の詰まりに起因して、前述した詰まり誤差を生じている場合でも、この詰まり誤差の影響を回避しながら、補正後マップ値ＫＴＨ＿Ｆを精度よく算出することができる。
【０１５８】
また、通過空気量ＧＡＩＲＴＨを算出する際、関数値誤差ＫＴＨＥＲＲが、モデル式値ＫＴＨＣＡＬと補正後マップ値ＫＴＨ＿Ｆとの比として算出されるので、モデル式（６）のモデル化誤差を表すものとして算出される。そして、ＴＨ＜ＴＨＢの領域では、そのような関数値誤差ＫＴＨＥＲＲを用いて、モデルパラメータＡがオンボード同定され、オンボード同定されたモデルパラメータＡを用いて、補正係数ＫＴＨＣＯＲが算出されるとともに、その補正係数ＫＴＨＣＯＲで基本通過空気量ＧＡＩＲＴＨＮを補正することにより、通過空気量ＧＡＩＲＴＨが算出されるので、通過空気量ＧＡＩＲＴＨを、モデル式（６）のモデル化誤差と、吸気通路６の詰まりに起因する詰まり誤差とが補正された値として算出することができる。それにより、通過空気量ＧＡＩＲＴＨを精度よく算出することができる。
【０１５９】
また、通過空気量ＧＡＩＲＴＨの算出式（１１），（１２）において、大気圧ＰＡに代えて、推定大気圧ＨＰＡを用いているので、大気圧ＰＡが変動しやすい条件下でも、大気圧変動の影響を回避しながら、通過空気量ＧＡＩＲＴＨを算出することができ、その算出精度をさらに向上させることができる。
【０１６０】
さらに、モデルパラメータＡがオンボード同定されるので、スロットル弁７ａにおける経年変化および個体間のばらつきなどに起因して、誤差モデル式（８）が誤差ＫＴＨＥＲＲＣＯＲとスロットル弁開度ＴＨとの間の実際の関係から乖離した場合、すなわちモデル化誤差を生じた場合でも、オンボード同定されたモデルパラメータＡを用いることによって、そのようなモデル化誤差を迅速に補償でき、誤差モデル式（８）を誤差ＫＴＨＥＲＲＣＯＲとスロットル弁開度ＴＨとの実際の関係に迅速に適合させることができる。それにより、補正係数ＫＴＨＣＯＲによる補正精度を向上させることができ、通過空気量ＧＡＩＲＴＨの算出精度をより一層、向上させることができる。
【０１６１】
また、モデルパラメータＡの同定演算では、スロットル弁開度ＴＨの領域ごとに算出した値ＫＴＨＥＲＲＣＯＲ・（ＴＨ−ＴＨＢ）2の４つの相加平均値に対して、均等重み付けでの加重平均演算を施すことにより、加重平均値ＸＸＹＴＴＬを算出し、領域ごとに算出した値（ＴＨ−ＴＨＢ）4の４つの相加平均値に対して、均等重み付けでの加重平均演算を施すことにより、加重平均値ＸＸＸＸＴＴＬを算出し、前者を後者で除算することにより、モデルパラメータＡが算出される。それにより、モデルパラメータＡの同定演算中、スロットル弁開度ＴＨのサンプリングデータがある領域に偏った状態になったとしても、その領域での演算結果がモデルパラメータＡの演算結果に反映される度合を他の領域と同じようにすることができ、モデルパラメータＡの演算結果において、高い演算精度を確保することができる。
【０１６２】
さらに、エンジン始動後における車両の総走行距離ＤＩＳＴが所定値ＤＬＥＡＲＮ未満であるときに、大気圧ＰＡに代えて初期推定大気圧ＨＰＡｉｎｉを用いながら、モデルパラメータＡの同定演算が実行され、ＤＩＳＴ≧ＤＬＥＡＲＮのときに、モデルパラメータＡの同定演算が禁止される。この場合、エンジン始動後での車両の総走行距離が小さいときには、スロットル弁開度ＴＨが低開度域で推移し、ＴＨ＜ＴＨＢの状態になる頻度が高いことで、モデルパラメータＡの同定演算頻度を高めることができ、その演算精度をさらに向上させることができる。
【０１６３】
これに加えて、開度関数値のモデル式値ＫＴＨＣＡＬの算出において、大気圧ＰＡに代えて、初期推定大気圧ＨＰＡｉｎｉが用いられるので、大気圧ＰＡが変化しやすいような条件下でも、関数値誤差ＫＴＨＥＲＲを精度よく算出することができ、それにより、モデルパラメータＡの演算精度をより一層、向上させることができる。以上のようにモデルパラメータＡの演算において、高い演算精度を確保できることで、補正係数ＫＴＨＣＯＲの算出精度すなわち通過空気量ＧＡＩＲＴＨの算出精度をさらに向上させることができる。
【０１６４】
一方、ＴＨＢ≦ＴＨの領域では、モデルパラメータＡの同定演算が停止されるので、モデル化誤差が発生しない領域での無用な同定演算を回避することができ、演算負荷を低減することができる。
【０１６５】
また、吸入空気量ＧＡＩＲを算出する際、補正係数ＫＡＦＭＥＲＲで基本吸入空気量ＧＡＩＲＮを補正することにより、吸入空気量ＧＡＩＲが算出され、この補正係数ＫＡＦＭＥＲＲは、ＴＨＢ≦ＴＨかつＲ＿Ｐ＜Ｒ＿ＣＲＩＴのとき、すなわち前述した第２誤差に起因して、モデル式（６）のモデル化誤差が発生していると推定されるときに、そのモデル化誤差を表す関数値誤差ＫＴＨＥＲＲと、補正係数の前回値ＫＡＦＭＥＲＲｚとの加重平均演算によって算出される。それにより、補正係数ＫＡＦＭＥＲＲを、関数値誤差ＫＴＨＥＲＲが表すモデル化誤差を反映した値として算出することができ、吸入空気量ＧＡＩＲを精度よく算出することができる。
【０１６６】
さらに、吸気圧ＰＢＡを算出する際、補正項ＰＢＡＥＲＲＣＯＲで基本吸気圧ＰＢＡＮを補正することにより、吸気圧ＰＢＡが算出され、この補正項ＰＢＡＥＲＲＣＯＲは、Ｒ＿ＣＲＩＴ≦Ｒ＿Ｐのとき、すなわち前述した第３誤差に起因して、モデル式（６）のモデル化誤差が発生していると推定されるときに、そのモデル化誤差を表す関数値誤差ＫＴＨＥＲＲを用いて算出されるので、この補正項ＰＢＡＥＲＲＣＯＲを、関数値誤差ＫＴＨＥＲＲが表すモデル化誤差を反映した値として算出することができ、吸気圧ＰＢＡを精度よく算出することができる。
【０１６７】
また、以上のように補正された吸気圧ＰＢＡおよび吸入空気量ＧＡＩＲと、前述した補正係数ＫＴＨＣＯＲとを用いて、推定通過空気量ＨＧＡＩＲＴＨが算出されるので、この推定通過空気量ＨＧＡＩＲＴＨの算出精度を向上させることができる。さらに、そのような推定通過空気量ＨＧＡＩＲＴＨから吸入空気量ＧＡＩＲを減算した値である空気量偏差ＤＧＡＩＲを用いて、補正項ＣＯＲＨＰＡが算出され、この補正項ＣＯＲＨＰＡを用いて、推定大気圧ＨＰＡが更新されるので、その算出精度を向上させることができる。これに加えて、そのような推定大気圧ＨＰＡを用いて通過空気量ＧＡＩＲＴＨが算出されるので、通過空気量ＧＡＩＲＴＨの算出精度をさらに向上させることができる。
【０１６８】
なお、実施形態では、モデルパラメータＡの同定演算手法として、図９のステップ５１，５２で、前述した式（１７），（１８）により２つの加重平均値ＸＸＸＸＴＴＬ，ＸＸＹＴＴＬをそれぞれ算出し、ステップ５３で、前述した式（１９）により、モデルパラメータＡを算出する手法を用いたが、これに代えて、以下の同定演算手法を用いてもよい。
【０１６９】
すなわち、ステップ５１，５２で、前述した式（１７），（１８）に代えて、下式（４３），（４４）を用いて、２つの加重平均値ＸＸＸＸＴＴＬ，ＸＸＹＴＴＬをそれぞれ算出した後、ステップ５３で前述した式（１９）により、モデルパラメータＡを算出するように構成してもよい。
【数４３】
0005611166.tif 000044
【数４４】
0005611166.tif 000045
【０１７０】
上式（４３），（４４）のＫＧ１〜ＫＧ４は、重み係数であり、ＫＧ１＞ＫＧ２＞ＫＧ３＞ＫＧ４が成立し、かつＫＧ１＋ＫＧ２＋ＫＧ３＋ＫＧ４＝１が成立するように設定される。上式（４３）を参照すると明らかなように、加重平均値ＸＸＸＸＴＴＬは、４つの領域における値（ＴＨ−ＴＨＢ）4の相加平均値に対して、加重平均演算を施すことにより算出されるとともに、その重み係数ＫＧ１〜ＫＧ４は、スロットル弁開度ＴＨが小さい領域ほど、より大きな値に設定されている。また、加重平均値ＸＸＹＴＴＬも、４つの領域における値ＫＴＨＥＲＲＣＯＲ・（ＴＨ−ＴＨＢ）2の相加平均値に対して、加重平均演算を施すことにより算出されるとともに、その重み係数ＫＧ１〜ＫＧ４は、加重平均値ＸＸＸＸＴＴＬと同じ値に設定されている。
【０１７１】
この場合、関数値誤差ＫＴＨＥＲＲは、前述したように、標準品（基準品）に対するスロットル弁７ａの開口面積のずれに起因して発生するものであり、そのずれの影響度合は、スロットル弁開度ＴＨが小さいほど、より大きくなる。したがって、４つの重み係数ＫＧ１〜ＫＧ４を上記のように設定することによって、そのようなずれの影響度合を反映させながら、モデルパラメータＡを同定することができ、それにより、補正係数ＫＴＨＣＯＲの算出精度を向上させることができる。なお、上記重み係数ＫＧ１〜ＫＧ４は、これらのうちのいずかが互いに同じ値になるように設定してもよい。
【０１７２】
また、実施形態は、誤差モデル式として、Ｙ＝Ａ・Ｘ2の形式のものを用いた例であるが、本発明の誤差モデル式はこれに限らず、Ｙ＝ａ・Ｘ2＋ｂ・Ｘ＋ｃの形式のものや、Ｙ＝ａ・Ｘ＋ｂの形式のものを用いてもよい。なお、これらの形式の誤差モデル式を用いた場合、実施形態の誤差モデル式（８）を用いた場合と比較すると、演算精度の向上と演算負荷の低減とを両立させる観点からは、実施形態の誤差モデル式（８）を用いた場合の方が優れている。
【０１７３】
さらに、実施形態は、モデルパラメータＡの同定演算を、エンジン始動後の車両の総走行距離ＤＩＳＴが所定値ＤＬＥＡＲＮ未満であるときに実行した例であるが、本発明のモデルパラメータＡの同定演算の実行条件はこれに限らず、モデルパラメータＡを精度よく同定できる条件であればよい。例えば、始動後のエンジン３の運転時間が所定時間が経過していないことを、モデルパラメータＡの同定演算の実行条件としてもよい。
【０１７４】
また、実施形態は、詰まり度合値として、詰まり係数ＫＣＬＳを用いた例であるが、本発明の詰まり度合値はこれに限らず、吸気通路の詰まり度合を表す値であればよい。例えば、詰まり度合値として、詰まり係数ＫＣＬＳの逆数（１／ＫＣＬＳ）を用いてもよく、その場合には、マップ値ＫＴＨと値ＫＲＥＦ・（ＴＨ−ＴＨＲＥＦ）2の積をこの逆数（１／ＫＣＬＳ）で除算することにより、補正後マップ値ＫＴＨ＿Ｆを算出すればよい。
【０１７５】
さらに、実施形態は、フィードバック補正量として、積分項の学習値ＩＸＲＥＦを用いた例であるが、本発明のフィードバック補正量はこれに限らず、吸気絞り弁の開度をフィードバック制御するための値であればよい。例えば、フィードバック補正量として、積分項ＩＡＩＮやフィードバック補正項ＩＦＢを用いてもよく、その場合には、図２４の横軸の学習値ＩＸＲＥＦを積分項ＩＡＩＮまたはフィードバック補正項ＩＦＢに置き換えたマップを用いて、基準上限値ｔｈｍａｘおよび基準下限値ｔｈｍｉｎを算出するように構成すればよい。このように構成した場合でも、吸気通路６の詰まり度合が増大すると、それに伴って、積分項ＩＡＩＮまたはフィードバック補正項ＩＦＢが増大するので、実施形態と同じ効果を得ることができる。
【０１７６】
一方、実施形態は、相関関係モデルとして、図２のマップを用いた例であるが、本発明の相関関係モデルはこれに限らず、吸気絞り弁の開度と開度関数値との相関関係を表すものであればよい。例えば、吸気絞り弁の開度と開度関数値との相関関係を定義した数式を、オフライン同定により決定し、そのような数式を相関関係モデルとして用いてもよい。
【０１７７】
また、実施形態は、吸気絞り弁としてスロットル弁７ａを用いた例であるが、本発明の吸気絞り弁はこれに限らず、吸気通路に設けられ、吸気絞り弁を通過する空気量を変更可能な弁であればよい。
【符号の説明】
【０１７８】
１  吸気パラメータ算出装置
２  ＥＣＵ（基本吸気パラメータ算出手段、第１開度関数値算出手段、第２開度関数        値算出手段、詰まり度合値算出手段、補正後第２開度関数値算出手段、補正値算        出手段、吸気パラメータ算出手段）
３  内燃機関
６  吸気通路
７ａ  スロットル弁（吸気絞り弁）
ＮＥ  回転数
ＮＯＢＪ  目標回転数
ＰＡ  大気圧（上流側圧力）
ＴＨ  スロットル弁の開度（吸気絞り弁の開度）
ＫＴＨＣＡＬ  開度関数値のモデル式値（第１開度関数値）
ＫＴＨ  開度関数値のマップ値（第２開度関数値）
ＩＸＲＥＦ  積分項の学習値（フィードバック補正量）
ＫＣＬＳ  詰まり係数（詰まり度合値）
ＫＴＨ＿Ｆ  補正後マップ値（補正後第２開度関数値）
ＫＴＨＥＲＲ  関数値誤差（関数値比）
ＧＡＩＲＴＨ  通過空気量（吸気パラメータ）
ＧＡＩＲＴＨＮ  基本通過空気量（基本吸気パラメータ）
ＫＴＨＣＯＲ  補正係数（補正値）
Ａ  モデルパラメータ
ＧＡＩＲ  吸入空気量（吸気パラメータ）
ＧＡＩＲＮ  基本吸入空気量（基本吸気パラメータ）
ＫＡＦＭＥＲＲ  補正係数（補正値）
ＰＢＡ  吸気圧（吸気パラメータ、下流側圧力）
ＰＢＡＮ  基本吸気圧（基本吸気パラメータ）
ＰＢＡＥＲＲＣＯＲ  補正項（補正値）
【図１】
0005611166.tif 000046
【図２】
0005611166.tif 000047
【図３】
0005611166.tif 000048
【図４】
0005611166.tif 000049
【図５】
0005611166.tif 000050
【図６】
0005611166.tif 000051
【図７】
0005611166.tif 000052
【図８】
0005611166.tif 000053
【図９】
0005611166.tif 000054
【図１０】
0005611166.tif 000055
【図１１】
0005611166.tif 000056
【図１２】
0005611166.tif 000057
【図１３】
0005611166.tif 000058
【図１４】
0005611166.tif 000059
【図１５】
0005611166.tif 000060
【図１６】
0005611166.tif 000061
【図１７】
0005611166.tif 000062
【図１８】
0005611166.tif 000063
【図１９】
0005611166.tif 000064
【図２０】
0005611166.tif 000065
【図２１】
0005611166.tif 000066
【図２２】
0005611166.tif 000067
【図２３】
0005611166.tif 000068
【図２４】
0005611166.tif 000069