(57)【要約】【課題】気筒別可変バルブ制御精度の悪化による悪影響を回避する。【解決手段】気筒別可変バルブ制御では、気筒間の吸入空気量ばらつきに基づいて各気筒の目標リフト量を設定し、所定タイミング毎に可変バルブリフト機構を次の吸気気筒の目標リフト量に相当する位置まで高速駆動する。この気筒別可変バルブ制御の実行中に、各気筒の実リフト量と目標リフト量との偏差に基づいて気筒別可変バルブ制御の制御精度を表す気筒別可変バルブ制御精度値を求め、この気筒別可変バルブ制御精度値が所定の許容範囲を越えて悪化した時に、筒別可変バルブ制御禁止フラグＸＳＴＯＰがＯＮされ、気筒別可変バルブ制御が禁止される。気筒別可変バルブ制御の禁止中は、リフト量制限モード可変バルブ制御を実行して、各気筒共通の目標リフト量を所定値以上に制限して可変バルブリフト機構を各気筒共通の目標リフト量に相当する位置に制御する。【選択図】  図１１
2004308611.tif 000002
【特許請求の範囲】
【請求項１】
内燃機関の複数気筒の吸気バルブ又は排気バルブ（以下単に「バルブ」という）のバルブ可変量を一括して１つの可変バルブ機構で制御する内燃機関の可変バルブ制御装置において、
気筒間の実バルブ可変量又は実吸入空気量のばらつきの情報（以下「気筒間ばらつき情報」という）を算出する気筒間ばらつき算出手段と、
前記気筒間ばらつき情報を考慮して各気筒毎に目標バルブ可変量を設定する気筒別目標バルブ可変量設定手段と、
所定タイミング毎に前記可変バルブ機構を次にバルブが開かれる気筒の目標バルブ可変量に相当する位置まで駆動することでバルブ可変量を気筒別に制御する気筒別可変バルブ制御を行う気筒別可変バルブ制御手段と、
前記気筒別可変バルブ制御の制御精度を表す気筒別可変バルブ制御精度値を算出する制御精度算出手段と、
前記気筒別可変バルブ制御精度値が所定の許容範囲を越えて悪化した場合に、前記気筒別可変バルブ制御を禁止する気筒別可変バルブ制御禁止手段と
を備えていることを特徴とする内燃機関の可変バルブ制御装置。
【請求項２】
前記制御精度算出手段は、各気筒又は所定気筒の実バルブ可変量と目標バルブ可変量との偏差に基づいて前記気筒別可変バルブ制御精度値を算出することを特徴とする請求項１に記載の内燃機関の可変バルブ制御装置。
【請求項３】
前記制御精度算出手段は、各気筒又は所定気筒の実バルブ可変量のサイクル間ばらつきに基づいて前記気筒別可変バルブ制御精度値を算出することを特徴とする請求項１に記載の内燃機関の可変バルブ制御装置。
【請求項４】
前記制御精度算出手段は、前記可変バルブ機構の駆動時間のサイクル間ばらつきに基づいて前記気筒別可変バルブ制御御精度値を算出することを特徴とする請求項１に記載の内燃機関の可変バルブ制御装置。
【請求項５】
前記気筒別可変バルブ制御精度値の許容範囲は、内燃機関の回転速度変動又は燃焼圧変動が所定値以下になる範囲に設定されていることを特徴とする請求項１乃至４のいずれかに記載の内燃機関の可変バルブ制御装置。
【請求項６】
前記気筒別可変バルブ制御の禁止中に、各気筒共通の目標バルブリフト量を所定値以上に制限して前記可変バルブ機構を各気筒共通の目標バルブ可変量に相当する位置に制御するリフト量制限モード可変バルブ制御を行うリフト量制限モード可変バルブ制御手段を備えていることを特徴とする請求項１乃至５のいずれかに記載の内燃機関の可変バルブ制御装置。
【請求項７】
前記可変バルブ機構を制御して吸入空気量を制御するシステムに適用され、
前記気筒別可変バルブ制御の禁止中に、内燃機関のスロットルバルブを制御して吸入空気量を制御するスロットル制御手段を備えていることを特徴とする請求項１乃至６のいずれかに記載の内燃機関の可変バルブ制御装置。
【請求項８】
前記気筒別可変バルブ制御の禁止中に所定の復帰条件が成立したときに前記気筒別可変バルブ制御を復帰させる復帰制御手段を備えていることを特徴とする請求項１乃至７のいずれかに記載の内燃機関の可変バルブ制御装置。
【請求項９】
前記気筒別可変バルブ制御の禁止中に前記可変バルブ機構を駆動するバッテリ電圧が所定値よりも低下している場合、前記復帰条件は、該バッテリ電圧が所定電圧以上に回復したときに成立することを特徴とする請求項８に記載の内燃機関の可変バルブ制御装置。
【請求項１０】
前記気筒別可変バルブ制御の禁止中の燃料カット中又は減速中に一時的に前記気筒別可変バルブ制御を試行する試行手段を備え、
前記復帰条件は、前記気筒別可変バルブ制御を一時的に試行したときの前記気筒別可変バルブ制御精度値が所定の許容範囲内に回復したときに成立することを特徴とする請求項８又は９に記載の内燃機関の可変バルブ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、内燃機関の吸気バルブ又は排気バルブのバルブ可変量（リフト量、作用角、バルブタイミング等）を制御する内燃機関の可変バルブ制御装置に関するものである。
【０００２】
【従来の技術】
一般に、内燃機関の吸入空気量の制御はスロットルバルブによって行われるが、最近では、吸気バルブのリフト量を可変する可変バルブ機構を設け、アクセル開度やエンジン運転状態等に応じて吸気バルブのリフト量を可変することで吸入空気量を制御する技術が開発されている。この可変吸気バルブ制御による吸入空気量制御は、吸気バルブのリフト量を小さくすることによって、吸気通路をスロットルバルブで絞ることなく吸入空気量を少なくすることができるので、ポンピングロスを低減することができると共に、吸気バルブのリフト量を小さくすることによって、カム軸の駆動力も低減することができて、燃費を向上させることができるという利点がある。
【０００３】
このような可変バルブリフト制御システムにおいては、特許文献１（特開２００１−２６３１１０号公報）に示すように、各気筒毎に吸気バルブを駆動する電磁アクチュエータを設けたものがあるが、この構成では、気筒数と同数の電磁アクチュエータが必要になるため、システム構成が複雑化して高コストになる欠点がある。
【０００４】
そこで、複数気筒の吸気バルブのリフト量を一括して１つの可変バルブ機構で制御するシステムが開発されている。
【０００５】
しかし、この可変吸気バルブ制御による吸入空気量制御では、低負荷時に吸気バルブのリフト量が小さくなるため、各気筒で目標リフト量に対する実リフト量のばらつき（各気筒の部品公差や組付公差によるばらつき）の割合が大きくなって、気筒間の吸入空気量ばらつきが大きくなる傾向がある。このため、気筒間の吸入空気量ばらつきの影響を受けて各気筒のトルクや空燃比が変動し易く、気筒間のトルクばらつきや空燃比ばらつきが大きくなる傾向がある。
【０００６】
このような気筒間のトルクばらつきや空燃比ばらつきを補正する方法が幾つか提案されている。例えば、特許文献２（特開昭６２−１７３４２号公報）に示すように、クランク軸に設けたトルクセンサで各気筒毎にトルクを検出して、各気筒のトルクが全気筒の平均トルクになるように各気筒毎に燃料噴射量を補正するようにしたものがある。
【０００７】
或は、特許文献３（特開２０００−２２０４８９号公報）に示すように、排気管に設置した空燃比センサの出力に基づいて各気筒の空燃比を推定し、気筒間の空燃比ばらつきが小さくなるように各気筒毎に燃料噴射量を補正するようにしたものがある。
【０００８】
【特許文献１】
特開２００１−２６３１１０号公報（第３頁〜第６頁等）
【特許文献２】
特開昭６２−１７３４２号公報（第２頁等）
【特許文献３】
特開２０００−２２０４８９号公報（第２頁〜第３頁等）
【０００９】
【発明が解決しようとする課題】
ところで、上記特許文献２、３では、各気筒毎にトルクや空燃比を検出して、その検出結果に基づいて各気筒毎に燃料噴射量を補正することで、各気筒のトルクばらつきや空燃比ばらつきを補正するようにしている。しかし、気筒間の吸入空気量ばらつきが大きくなると、単に燃料噴射量を補正するだけでは、各気筒のトルクばらつきや空燃比ばらつきを十分な精度で補正することは困難である。しかも、気筒間の吸入空気量ばらつきや吸入燃料量ばらつき等の複数の要因が絡み合って気筒間のトルクばらつきや空燃比ばらつきが発生している場合も、十分な精度で補正することは困難である。
【００１０】
この対策として、各気筒の部品公差や組付公差を小さくして（つまり気筒間の吸気バルブリフト量のばらつきを小さくして）気筒間の吸入空気量のばらつきを小さくすることが考えられるが、これを実現するには、部品の加工精度を向上させたり、部品を選択して組み付けたりする必要があり、部品コストや製造コストが高くなってしまうという欠点がある。
【００１１】
そこで、本発明者らは、複数気筒の吸気バルブのリフト量を一括して１つの可変バルブ機構で制御するシステムにおいて、各気筒の吸気行程毎（４気筒エンジンであれば１８０℃Ａ毎）に可変バルブ機構を高速駆動することで、気筒間の吸気バルブリフト量のばらつき（又は吸入空気量のばらつき）を補正する“気筒別可変バルブ制御”を研究している。
【００１２】
しかし、この気筒別可変バルブ制御では、可変バルブ機構を駆動するバッテリ電圧の低下（又は油圧の低下）や可変バルブ機構の経時劣化、故障等により可変バルブ機構の応答性が変化すると、各気筒の目標リフト量に対する実リフト量の収束性が悪化したり、或は、同一気筒における実リフト量のサイクル毎（７２０℃Ａ毎）のばらつきが増大したりして、気筒別可変バルブ制御の制御精度が悪化する可能性がある。このように制御精度が悪化した状態で気筒別可変バルブ制御を続行すると、気筒間の吸入空気量ばらつきの低減効果が小さくなるだけては済まず、場合によっては、気筒間の吸入空気量ばらつきを増大させてしまう可能性がある。また、同一気筒のサイクル間の吸入空気量ばらつきも増大させてしまう可能性もある。その結果、気筒間のトルクばらつきや空燃比ばらつきが大きくなったり、或は、同一気筒のサイクル間のトルクばらつきや空燃比ばらつきが大きくなったり、燃焼圧変動が大きくなり、ドライバビリティ・排気エミッション等のエンジン諸性能が悪化してしまう可能性がある。
【００１３】
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、複数気筒のバルブ可変量を一括して１つの可変バルブ機構で制御するシステムにおいて、気筒別可変バルブ制御精度の悪化によるエンジン諸性能への悪影響を回避することができる内燃機関の可変バルブ制御装置を提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１は、複数気筒の吸気バルブ又は排気バルブ（以下単に「バルブ」という）のバルブ可変量を一括して１つの可変バルブ機構で制御するシステムにおいて、気筒間ばらつき算出手段により気筒間の実バルブ可変量又は実吸入空気量のばらつきの情報（以下「気筒間ばらつき情報」という）を算出し、この気筒間ばらつき情報を考慮して、気筒別目標バルブ可変量設定手段により各気筒毎に目標バルブ可変量を設定し、気筒別可変バルブ制御手段により、所定タイミング毎に可変バルブ機構を次にバルブが開かれる気筒の目標バルブ可変量に相当する位置まで駆動することでバルブ可変量を気筒別に制御する気筒別可変バルブ制御を実行する。そして、制御精度算出手段により気筒別可変バルブ制御の制御精度を表す気筒別可変バルブ制御精度値を算出し、この気筒別可変バルブ制御精度値が所定の許容範囲を越えて悪化した場合に、気筒別可変バルブ制御禁止手段により気筒別可変バルブ制御を禁止するようにしたものである。
【００１５】
このようにすれば、気筒別可変バルブ制御精度が悪化して、気筒別可変バルブ制御精度値が所定の許容範囲を越えると、気筒別可変バルブ制御が実行されなくなるため、気筒別可変バルブ制御精度の悪化による気筒間のバルブ可変量のばらつき（又は吸入空気量のばらつき）の悪化や同一気筒のサイクル間のバルブ可変量のばらつき（又は吸入空気量のばらつき）の悪化を未然に防止することができ、気筒別可変バルブ制御精度の悪化によるドライバビリティ・排気エミッション等のエンジン諸性能への悪影響を回避することができる。
【００１６】
この場合、請求項２のように、各気筒又は所定気筒の実バルブ可変量と目標バルブ可変量との偏差に基づいて気筒別可変バルブ制御精度値を算出するようにすると良い。このようにすれば、気筒別可変バルブ制御精度として、各気筒又は所定気筒の目標バルブ可変量に対する実バルブ可変量の収束精度を評価することができ、目標バルブ可変量に対する実バルブ可変量の収束性が悪化したときに、気筒別可変バルブ制御を禁止することができる。
【００１７】
また、請求項３のように、各気筒又は所定気筒の実バルブ可変量のサイクル間ばらつきに基づいて気筒別可変バルブ制御精度値を算出するようにしても良い。このようにすれば、気筒別可変バルブ制御精度として、各気筒又は所定気筒の実バルブ可変量のサイクル間ばらつき（繰り返し精度）を評価することができ、実バルブ可変量のサイクル間ばらつきが悪化したときに、気筒別可変バルブ制御を禁止することができる。
【００１８】
更に、請求項４のように、可変バルブ機構の駆動時間のサイクル間ばらつきに基づいて気筒別可変バルブ制御精度値を算出するようにしても良い。このようにすれば、気筒別可変バルブ制御精度として、可変バルブ機構の駆動時間のサイクル間ばらつき（繰り返し精度）を評価することができ、可変バルブ機構の駆動時間のサイクル間ばらつきが悪化したときに、気筒別可変バルブ制御を禁止することができる。
【００１９】
また、気筒別可変バルブ制御精度が悪化すると、各気筒のバルブを目標バルブ可変量に対応した適正なバルブプロフィール（バルブリフトカーブ）で開くことができなくなるため、各気筒の吸入空気量、吸気流速、筒内温度等が変動して燃焼状態が変動し、内燃機関の燃焼圧変動や回転速度変動が発生する。この燃焼圧変動や回転速度変動が大きくなると、ドライバビリティ等に悪影響を及ぼす。
【００２０】
そこで、請求項５のように、気筒別可変バルブ制御精度値の許容範囲は、内燃機関の回転速度変動又は燃焼圧変動が所定値以下になる範囲に設定すると良い。このようにすれば、気筒別可変バルブ制御精度値が許容範囲を越えて回転速度変動や燃焼圧変動が著しく増大した場合に、気筒別可変バルブ制御を禁止することができるので、気筒別可変バルブ制御精度の悪化による回転速度変動や燃焼圧変動を所定値以下に抑えて、ドライバビリティ等への悪影響を未然に防止することができる。
【００２１】
ところで、気筒別可変バルブ制御の禁止中に、通常の可変バルブ制御（つまり可変バルブ機構を各気筒共通の目標バルブ可変量に相当する位置に制御する可変バルブ制御）を行うと、気筒別可変バルブ制御によって抑えていたばらつきが再び増大する。つまり、目標バルブリフト量が小さい領域では、各気筒で目標バルブリフト量に対する実バルブリフト量のばらつき（各気筒の部品公差や組付公差によるばらつき）の割合が大きくなって、気筒間の吸入空気量ばらつきが大きくなる。
【００２２】
この対策として、請求項６のように、気筒別可変バルブ制御の禁止中に、各気筒共通の目標バルブリフト量を所定値以上に制限して可変バルブ機構を各気筒共通の目標バルブ可変量に相当する位置に制御するリフト量制限モード可変バルブ制御を行うようにしても良い。このように、目標バルブリフト量を所定値以上に制限すれば、目標バルブリフト量に対する実バルブリフト量のばらつき（各気筒の部品公差や組付公差によるばらつき）の割合を小さくして、気筒間の吸入空気量ばらつきを許容範囲内に抑えることができる。従って、気筒別可変バルブ制御の禁止中に、リフト量制限モード可変バルブ制御を実行すれば、気筒間の吸入空気量ばらつきをドライバビリティや排気エミッションが悪化しない許容範囲内に抑えながら、可変バルブ制御を行うことができる。
【００２３】
更に、可変バルブ機構を制御して吸入空気量を制御するシステムでは、請求項７のように、気筒別可変バルブ制御の禁止中に、内燃機関のスロットルバルブを制御して吸入空気量を制御するようにしても良い。このように、気筒別可変バルブ制御の禁止中に、リフト量制限モード可変バルブ制御を行って目標バルブリフト量を所定値以上に制限すると、可変バルブ制御による吸入空気量制御だけでは吸入空気量の制御領域の下限側が制限されて、アイドル等の低負荷時に吸入空気量を通常の最小空気量（アイドル時の目標空気量）付近に制御できなくなるが、スロットルバルブ制御による吸入空気量制御を併用することで、吸入空気量の制御領域の下限側を通常の最小空気量まで広げることができる。
【００２４】
ところで、可変バルブ機構を駆動するバッテリ電圧の低下や可変バルブ機構の一時的な故障により気筒別可変バルブ制御精度が悪化した場合には、その後、気筒別可変バルブ制御の禁止中に、気筒別可変バルブ制御精度が回復する可能性がある。
【００２５】
そこで、請求項８のように、気筒別可変バルブ制御の禁止中に所定の復帰条件が成立した場合に、気筒別可変バルブ制御を復帰させるようにしても良い。このようにすれば、所定の復帰条件が成立した場合に、気筒別可変バルブ制御精度が回復したと判断して、気筒別可変バルブ制御を再開することができる。
【００２６】
例えば、請求項９のように、気筒別可変バルブ制御の禁止中に可変バルブ機構を駆動するバッテリ電圧が所定値よりも低下している場合、復帰条件は、該バッテリ電圧が所定値以上に回復したときに成立するようにすると良い。バッテリ電圧の低下によって気筒別可変バルブ制御精度が悪化した場合、バッテリ電圧が所定値以上に回復すると、気筒別可変バルブ制御精度が回復するため、バッテリ電圧が所定値以上に回復したときに、復帰条件が成立するようにすれば、気筒別可変バルブ制御精度が回復したときに、気筒別可変バルブ制御を再開することができる。
【００２７】
また、請求項１０のように、気筒別可変バルブ制御の禁止中の燃料カット中又は減速中に一時的に気筒別可変バルブ制御を試行し、復帰条件は、気筒別可変バルブ制御を一時的に試行したときの気筒別可変バルブ制御精度値が所定の許容範囲以内に回復したときに成立するようにしても良い。このようにすれば、気筒別可変バルブ制御精度が回復したことを実際に確認してから気筒別可変バルブ制御再開することができる。しかも、燃料カット中又は減速中に気筒別可変バルブ制御を試行するので、もし、気筒別可変バルブ制御精度が回復していない場合でも、気筒別可変バルブ制御の試行によるドライバビリティ等への悪影響を少なくすることができる。
【００２８】
【発明の実施の形態】
《実施形態（１）》
以下、本発明の実施形態（１）を図１乃至図１３に基づいて説明する。まず、図１に基づいてエンジン制御システム全体の概略構成を説明する。内燃機関である例えば直列４気筒のエンジン１１は、第１気筒＃１〜第４気筒＃４の４つの気筒を有し、このエンジン１１の吸気管１２の最上流部には、エアクリーナ１３が設けられ、このエアクリーナ１３の下流側に、吸入空気量を検出するエアフローメータ１４が設けられている。このエアフローメータ１４の下流側には、ＤＣモータ等によって開度調節されるスロットルバルブ１５とスロットル開度を検出するスロットル開度センサ１６とが設けられている。
【００２９】
更に、スロットルバルブ１５の下流側には、サージタンク１７が設けられ、このサージタンク１７には、吸気管圧力を検出する吸気管圧力センサ１８が設けられている。また、サージタンク１７には、エンジン１１の各気筒に空気を導入する吸気マニホールド１９が設けられ、各気筒の吸気マニホールド１９の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁２０が取り付けられている。また、エンジン１１のシリンダヘッドには、各気筒毎に点火プラグ２１が取り付けられ、各点火プラグ２１の火花放電によって筒内の混合気に着火される。
【００３０】
また、エンジン１１の吸気バルブ２８と排気バルブ２９には、それぞれリフト量を可変する可変バルブリフト機構３０，３１（可変バルブ機構）が設けられている。更に、吸気バルブ２８と排気バルブ２９に、それぞれバルブタイミング（開閉タイミング）を可変する可変バルブタイミング機構を設けるようにしても良い。
【００３１】
一方、エンジン１１の排気管２２には、排出ガス中のＣＯ，ＨＣ，ＮＯｘ等を浄化する三元触媒等の触媒２３が設けられ、この触媒２３の上流側に、排出ガスの空燃比又はリッチ／リーン等を検出する排出ガスセンサ２４（空燃比センサ、酸素センサ等）が設けられている。また、エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２５や、エンジン１１のクランク軸が一定クランク角（例えば３０℃Ａ）回転する毎にパルス信号を出力するクランク角センサ２６が取り付けられている。このクランク角センサ２６の出力信号に基づいてクランク角やエンジン回転速度が検出される。
【００３２】
これら各種センサの出力は、エンジン制御回路（以下「ＥＣＵ」と表記する）２７に入力される。このＥＣＵ２７は、マイクロコンピュータを主体として構成され、内蔵されたＲＯＭ（記憶媒体）に記憶された各種のエンジン制御プログラムを実行することで、エンジン運転状態に応じて燃料噴射弁２０の燃料噴射量や点火プラグ２１の点火時期を制御する。
【００３３】
次に、図２に基づいて吸気バルブ２８の可変バルブリフト機構３０の構成を説明する。尚、排気バルブ２９の可変バルブリフト機構３１は、吸気バルブ２８の可変バルブリフト機構３０と実質的に同一構成であるため、説明を省略する。
【００３４】
図２に示すように、吸気バルブ２８を駆動するためのカムシャフト３２とロッカーアーム３３との間に、リンクアーム３４が設けられ、このリンクアーム３４の上方に、ステッピングモータ等のモータ４１で回動駆動されるコントロールシャフト３５が設けられている。モータ４１の回動軸４１ａに連結されたウォーム４２と、コントロールシャフト３５と一体的に回動するように設けられたウォームホイール４３とが噛み合うことで、モータ４１の回転力がコントロールシャフト３５に伝達されるようになっている。また、モータ４１には、モータ４１の回転角度（回動軸４１ａの回転角度）を検出するエンコーダ等のモータ回転角度センサ４４（図１参照）が設けられている。
【００３５】
コントロールシャフト３５には、偏心カム３６が一体的に回動可能に設けられ、この偏心カム３６の軸心に対して偏心した位置に、リンクアーム３４が支持軸（図示せず）を介して揺動可能に支持されている。このリンクアーム３４の中央部には、揺動カム３８が設けられ、この揺動カム３８の側面が、カムシャフト３２に設けられたカム３７の外周面に当接している。また、リンクアーム３４の下端部には、押圧カム３９が設けられ、この押圧カム３９の下端面が、ロッカーアーム３３の中央部に設けられたローラ４０の上端面に当接している。
【００３６】
これにより、カムシャフト３２の回転によってカム３７が回転すると、そのカム３７の外周面形状に追従してリンクアーム３４の揺動カム３８が左右に移動して、リンクアーム３４が左右に揺動する。リンクアーム３４が左右に揺動すると、押圧カム３９が左右に移動するため、押圧カム３９の下端面形状に応じてロッカーアーム３３のローラ４０が上下に移動して、ロッカーアーム３３が上下に揺動する。このロッカーアーム３３の上下動によって吸気バブル２８が上下動するようになっている。
【００３７】
一方、コントロールシャフト３５の回転によって偏心カム３６が回転すると、リンクアーム３４の支持軸の位置が移動して、リンクアーム３４の押圧カム３９とロッカーアーム３３のローラ４０との初期の接触点位置が変化する。また、リンクアーム３４の押圧カム３９の下端面は、左側部分にロッカーアーム３３の押圧量が０（吸気バルブ２８のリフト量が０）となるような曲率でベース曲面３９ａが形成され、このベース曲面３９ａから右方に向かうに従ってロッカーアーム３３の押圧量が大きくなる（吸気バルブ２８のリフト量が大きくなる）ような曲率で押圧曲面３９ｂが形成されている。
【００３８】
吸気バルブ２８の最大リフト量を大きくする高リフトモードの場合には、コントロールシャフト３５の回転によってリンクアーム３４の押圧カム３９とロッカーアーム３３のローラ４０との初期の接触点位置を右方に移動させる。これにより、カム３７の回転によって押圧カム３９が左右に移動したときに押圧カム３９の下端面のうちローラ４０に接触する区間が右方に移動するため、ロッカーアーム３３の最大押圧量が大きくなって吸気バルブ２８の最大リフト量が大きくなると共に、ロッカーアーム３３が押圧される期間が長くなって吸気バブル２８の開弁期間が長くなる。
【００３９】
一方、吸気バルブ２８の最大リフト量を小さくする低リフトモードの場合には、コントロールシャフト３５の回転によってリンクアーム３４の押圧カム３９とロッカーアーム３３のローラ４０との初期の接触点位置を左方に移動させる。これにより、カム３７の回転によって押圧カム３９が左右に移動したときに押圧カム３９の下端面のうちローラ４０に接触する区間が左方に移動するため、ロッカーアーム３３の最大押圧量が小さくなって吸気バルブ２８の最大リフト量が小さくなると共に、ロッカーアーム３３が押圧される期間が短くなって吸気バブル２８の開弁期間が短くなる。
【００４０】
以上説明した可変バルブリフト機構３０では、モータ４１でコントロールシャフト３５を回転させてリンクアーム３４の押圧カム３９とロッカーアーム３３のローラ４０との初期の接触点位置を連続的に移動させれば、例えば図３に示すように、直列４気筒エンジン１１の全ての気筒（＃１〜＃４）の吸気バルブ２８の最大リフト量と開弁期間（以下単に「リフト量」という）を一括して連続的に可変することができる。
【００４１】
ＥＣＵ２７は、ＲＯＭに記憶された可変バルブ制御ルーチン（図示せず）を実行することで、アクセル開度やエンジン運転状態等に基づいて吸気バルブ２８の可変バルブリフト機構３０を制御して、吸気バルブ２８のリフト量を連続的に可変して吸入空気量を制御する。尚、可変バルブリフト機構３０と可変バルブタイミング機構を併用したシステムの場合には、リフト量とバルブタイミングの両方を連続的に可変して吸入空気量を制御するようにしても良い。
【００４２】
その際、ＥＣＵ２７は、後述する図４乃至図９に示す可変バルブ制御用の各ルーチンを実行することで、次のようにして吸気バルブ２８の可変バルブリフト機構３０を制御する。
【００４３】
ＥＣＵ２７は、エアフローメータ１４の出力に基づいて各気筒の気筒間吸入空気量ばらつき率ＤＥＶを算出し、この気筒間吸入空気量ばらつき率ＤＥＶに基づいて気筒間の実吸入空気量のばらつきが小さくなるように各気筒毎に目標リフト量ＶＶＬＭを設定する。そして、図１２に示すように、全気筒の吸気バルブ２８が閉弁している期間（以下「全吸気バルブ閉弁期間」という）になる毎に、可変バルブリフト機構３０のモータ４１を次の吸気気筒の目標リフト量ＶＶＬＭに相当する位置まで高速駆動することで、吸入空気量を気筒別に制御して気筒間の吸入空気量ばらつきを補正する“気筒別可変バルブ制御”を実行する。
【００４４】
一般に、可変吸気バルブ制御による吸入空気量制御では、吸気バルブ２８のリフト量が小さくなるほど、気筒間の吸入空気量ばらつきが大きくなって、気筒間の目標リフト量ＶＶＬＭの変化量が大きくなる傾向があるが、吸気バルブ２８のリフト量が小さくなるほど、吸気バルブ２８の開弁期間が短くなって、全吸気バルブ閉弁期間が長くなるため、全吸気バルブ閉弁期間内に可変バルブリフト機構３０の駆動（目標リフト量ＶＶＬＭへのリフト可変動作）を実行することが可能である。
【００４５】
また、ＥＣＵ２７は、気筒別可変バルブ制御の実行中に、各気筒の吸気バルブ２８の実リフト量と目標リフト量ＶＶＬＭとの偏差を積算して各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡを求める。尚、本実施形態（１）では、気筒別可変バルブ制御精度値ＡＣＣＵＲＡを求める際に、吸気バルブ２８の実リフト量と目標リフト量ＶＶＬＭの代用情報として、可変バルブリフト機構３０の実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴを用いる。そして、気筒別可変バルブ制御精度値ＡＣＣＵＲＡが所定の許容範囲を越えたときに、気筒別可変バルブ制御精度（目標リフト量に対する実リフト量の収束性）が悪化したと判断して、気筒別可変バルブ制御を禁止する。これにより、気筒別可変バルブ制御精度の悪化による気筒間のリフト量ばらつき（又は吸入空気量ばらつき）の悪化や同一気筒のサイクル間のリフト量ばらつき（又は吸入空気量ばらつき）の悪化を未然に防止する。
【００４６】
更に、ＥＣＵ２７は、気筒別可変バルブ制御の禁止中に、アクセル開度やエンジン運転状態等に基づいて設定した各気筒共通の目標リフト量ＴＧＶＶＬを所定の下限リフト量ＶＶＬｍｉｎ  以上に制限して、可変バルブリフト機構３０のモータ４１を各気筒共通の目標リフト量ＴＧＶＶＬに相当する位置に制御するリフト量制限モード可変バルブ制御を行う。この場合、目標リフト量ＴＧＶＶＬを下限リフト量ＶＶＬｍｉｎ  以上に制限することで、目標リフト量ＴＧＶＶＬに対する実リフト量のばらつき（各気筒の部品公差や組付公差によるばらつき）の割合を所定のばらつき許容値（例えば５％）以下に抑えて、気筒間の吸入空気量ばらつきをドライバビリティや排気エミッションが悪化しない許容範囲内に抑えることができる。
【００４７】
また、ＥＣＵ２７は、気筒別可変バルブ制御の禁止中に所定の復帰条件が成立したときには、気筒別可変バルブ制御精度が回復したと判断して、気筒別可変バルブ制御を再開する。
【００４８】
以下、ＥＣＵ２７が実行する図４乃至図９に示す可変バルブ制御用の各ルーチンの処理内容を説明する。
【００４９】
［気筒別可変バルブ制御実行・禁止ルーチン］
図４の気筒別可変バルブ制御実行・禁止ルーチンは、例えばイグニッションスイッチ（図示せず）のオン後に所定周期で実行される。本ルーチンが起動されると、まず、ステップ１０１で、気筒別可変バルブ制御禁止フラグＸＳＴＯＰのセット状態（ＯＮ／ＯＦＦ）を読み込む。この気筒別可変バルブ制御禁止フラグＸＳＴＯＰは、後述する図５の気筒別可変バルブ制御禁止判定ルーチンによって、気筒別可変バルブ制御の禁止条件が成立したときに「ＯＮ」にセットされる。
【００５０】
この後、ステップ１０２に進み、気筒別可変バルブ制御の禁止条件が成立しているか否かを、気筒別可変バルブ制御禁止フラグＸＳＴＯＰが「ＯＮ」か否かによって判定する。その結果、気筒別可変バルブ制御の禁止条件が不成立であると判定された場合には、ステップ１１０に進み、後述する図８の気筒別可変バルブ制御ルーチンを実行して、気筒別可変バルブ制御を実行する。
【００５１】
一方、上記ステップ１０２で、気筒別可変バルブ制御の禁止条件が成立していると判定された場合には、気筒別可変バルブ制御を禁止したまま、ステップ１０３に進み、気筒別可変バルブ制御復帰フラグＸＲＥＡＣＴのセット状態（ＯＮ／ＯＦＦ）を読み込む。この気筒別可変バルブ制御復帰フラグＸＲＥＡＣＴは、後述する図７の気筒別可変バルブ制御復帰判定ルーチンによって、気筒別可変バルブ制御の復帰条件成立が成立したときに「ＯＮ」にセットされる。
【００５２】
この後、ステップ１０４に進み、気筒別可変バルブ制御の復帰条件が成立しているか否かを、気筒別可変バルブ制御復帰フラグＸＲＥＡＣＴが「ＯＮ」か否かによって判定する。その結果、気筒別可変バルブ制御の復帰条件が成立していると判定された場合には、ステップ１１０に進み、後述する図８の気筒別可変バルブ制御ルーチンを実行して、気筒別可変バルブ制御を再開する。
【００５３】
一方、上記ステップ１０２で気筒別可変バルブ制御の禁止条件が成立していると判定され、且つ、上記ステップ１０４で気筒別可変バルブ制御の復帰条件が不成立であると判定された場合には、気筒別可変バルブ制御を禁止したまま、ステップ１０５以降のリフト量制限モード可変バルブ制御に関する処理を次のようにして実行する。
【００５４】
まず、ステップ１０５で、アクセル開度やエンジン運転状態等に基づいて設定した各気筒共通の目標リフト量ＴＧＶＶＬを制限するための下限リフト量ＶＶＬｍｉｎ  を読み込む。この下限リフト量ＶＶＬｍｉｎ  は、目標リフト量ＴＧＶＶＬに対する実リフト量のばらつき（各気筒の部品公差や組付公差によるばらつき）の割合を所定のばらつき許容値以下にする目標リフト量ＴＧＶＶＬの下限値であり、例えば、ばらつき許容値が５％で、実リフト量の最大ばらつきが５０μｍの場合、下限リフト量ＶＶＬｍｉｎ  は１ｍｍに設定される。
【００５５】
この後、ステップ１０６に進み、各気筒共通の目標リフト量ＴＧＶＶＬが下限リフト量ＶＶＬｍｉｎ  よりも小さいか否かを判定する。その結果、各気筒共通の目標リフト量ＴＧＶＶＬが下限リフト量ＶＶＬｍｉｎ  以上であると判定された場合には、ステップ１０７に進み、アクセル開度やエンジン運転状態等に基づいて設定した各気筒共通の目標リフト量ＴＧＶＶＬをそのまま採用して（目標リフト量ＴＧＶＶＬ＝ＴＧＶＶＬ）、可変バルブリフト機構３０のモータ４１を該目標リフト量ＴＧＶＶＬに相当する位置に制御する。
【００５６】
一方、上記ステップ１０６で、各気筒共通の目標リフト量ＴＧＶＶＬが下限リフト量ＶＶＬｍｉｎ  よりも小さいと判定された場合には、ステップ１０８に進み、目標リフト量ＴＧＶＶＬを下限リフト量ＶＶＬｍｉｎ  でガード処理して（目標リフト量ＴＧＶＶＬ＝ＶＶＬｍｉｎ  ）、可変バルブリフト機構３０のモータ４１を該目標リフト量ＴＧＶＶＬ（＝ＶＶＬｍｉｎ  ）に相当する位置に制御する。
【００５７】
これらのステップ１０５〜１０８の処理により、気筒別可変バルブ制御の禁止中に、各気筒共通の目標リフト量ＴＧＶＶＬを下限リフト量ＶＶＬｍｉｎ  以上に制限して、可変バルブリフト機構３０のモータ４１を各気筒共通の目標リフト量ＴＧＶＶＬに相当する位置に制御するリフト量制限モード可変バルブ制御を行う。これらのステップ１０５〜１０８の処理が特許請求の範囲でいうリフト量制限モード可変バルブ制御手段としての役割を果たす。
【００５８】
また、ステップ１０８で、目標リフト量ＴＧＶＶＬを下限リフト量ＶＶＬｍｉｎ  でガード処理した場合には、ステップ１０９に進み、アクセル開度やエンジン運転状態等に基づいてスロットルバルブ１５を制御して吸入空気量を制御する。このステップ１０９の処理が特許請求の範囲でいうスロットル制御手段としての役割を果たす。
【００５９】
［気筒別可変バルブ制御禁止判定ルーチン］
図５の気筒別可変バルブ制御禁止判定ルーチンは、例えばイグニッションスイッチのオン後に所定周期で実行される。本ルーチンが起動されると、まず、ステップ２０１で、気筒別可変バルブ制御を実行中であるか否かを判定し、気筒別可変バルブ制御を実行していなければ、そのまま本ルーチンを終了する。
【００６０】
一方、気筒別可変バルブ制御を実行中であると判定された場合には、ステップ２０２に進み、後述する図６の気筒別可変バルブ制御精度値算出ルーチンを実行して、各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を算出する。ここで、（＃ｉ）は気筒番号であり、（＃１）〜（＃４）のいずれかを意味する。
【００６１】
この後、ステップ２０３に進み、気筒別可変バルブ制御の禁止条件が成立したか否かを、各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）のうちの少なくとも１つが所定の判定値よりも大きくなったか否かによって判定する。
【００６２】
この判定値は、気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）の許容範囲の上限値を設定する値であり、気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）の許容範囲がエンジン１１の回転速度変動又は燃焼圧変動を所定値以下にする範囲となるように判定値が設定されている。
【００６３】
このステップ２０３で、気筒別可変バルブ制御の禁止条件が不成立と判定された場合、つまり、各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）が全て判定値以下であると判定された場合には、気筒別可変バルブ制御が精度良く行われていると判断して、そのまま本ルーチンを終了する。
【００６４】
これに対して、気筒別可変バルブ制御の禁止条件が成立した場合、つまり、各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）のうちの少なくとも１つが判定値よりも大きいと判定された場合には、気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）が許容範囲を越えて回転速度変動や燃焼圧変動が許容レベルを越えて悪化したと判断して、ステップ２０４に進み、気筒別可変バルブ制御禁止フラグＸＳＴＯＰを「ＯＮ」にセットする。これにより、図４のステップ１０２で「Ｙｅｓ」と判定されて気筒別可変バルブ制御が禁止される。この機能が特許請求の範囲でいう気筒別可変バルブ制御禁止手段としての役割を果たす。
【００６５】
この後、ステップ２０５に進み、気筒別可変バルブ制御復帰フラグＸＲＥＡＣＴを「ＯＦＦ」にリセットして、本ルーチンを終了する。
【００６６】
［気筒別可変バルブ制御精度値算出ルーチン］
図６の気筒別可変バルブ制御精度値算出ルーチンは、図５のステップ２０２で起動され、特許請求の範囲でいう制御精度算出手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ３０１で、モータ回転角度センサ４４により検出した可変バルブリフト機構３０の実モータ回転角度ＶＶＬＡＣＴを読み込む。
【００６７】
この後、ステップ３０２に進み、可変バルブリフト機構３０の目標モータ回転角度ＴＧＶＶＬＡＣＴ（後述する気筒別目標リフト量ＶＶＬＭに相当する回転角度）を読み込む。
【００６８】
この後、ステップ３０３に進み、クランク角カウンタＣＣＲＮＫのカウント値を読み込む。このクランク角カウンタＣＣＲＮＫは、クランク角センサ２６の出力信号に基づいて例えば３０℃Ａ毎に「１」ずつインクリメントされるため、クランク角カウンタＣＣＲＮＫの２４カウントが１サイクル（７２０℃Ａ）に相当する。尚、クランク角カウンタＣＣＲＮＫは、「２４」になった時点で「０」にリセットされる。また、クランク角カウンタＣＣＲＮＫ＝０のクランク回転位置が、第１気筒＃１の圧縮上死点（圧縮ＴＤＣ）に相当し、クランク角カウンタＣＣＲＮＫ＝６、１２、１８のクランク回転位置が、それぞれ第３気筒＃３、第４気筒＃４、第２気筒＃２の圧縮ＴＤＣに相当するように設定されている。
【００６９】
この後、ステップ３０４に進み、各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を算出する。
この場合、クランク角カウンタＣＣＲＮＫ＝１２〜１７の期間（つまり第１気筒＃１の吸気行程に対応する期間）は、その期間の１点又は複数点で検出した実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差を積算して、第１気筒＃１の吸気行程の実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差の積算値を更新し、その積算値を第１気筒＃１の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃１）とする。
【００７０】
クランク角カウンタＣＣＲＮＫ＝６〜１１の期間（つまり第２気筒＃２の吸気行程に対応する期間）は、その期間の１点又は複数点で検出した実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差を積算して、第２気筒＃２の吸気行程の実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差の積算値を更新し、その積算値を第２気筒＃２の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃２）とする。
【００７１】
クランク角カウンタＣＣＲＮＫ＝１８〜２３の期間（つまり第３気筒＃３の吸気行程に対応する期間）は、その期間の１点又は複数点で検出した実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差を積算して、第３気筒＃３の吸気行程の実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差の積算値を更新し、その積算値を第３気筒＃３の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃３）とする。
【００７２】
クランク角カウンタＣＣＲＮＫ＝０〜５の期間（つまり第４気筒＃４の吸気行程に対応する期間）は、その期間の１点又は複数点で検出した実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差を積算して、第４気筒＃４の吸気行程の実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差の積算値を更新し、その積算値を第４気筒＃４の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃４）とする。
【００７３】
［気筒別可変バルブ制御復帰判定ルーチン］
図７の気筒別可変バルブ制御復帰判定ルーチンは、例えばイグニッションスイッチのオン後に所定周期で実行される。本ルーチンが起動されると、まず、ステップ４０１で、燃料カット中又は減速中であるか否かを判定し、燃料カット中でも減速中でもなければ、そのまま本ルーチンを終了する。
【００７４】
一方、燃料カット中又は減速中であると判定された場合には、ステップ４０２に進み、後述する図８の気筒別可変バルブ制御ルーチンを実行して、気筒別可変バルブ制御の禁止中に、一時的に気筒別可変バルブ制御を試行する。このステップ４０２の処理が特許請求の範囲でいう試行手段としての役割を果たす。
【００７５】
この後、ステップ４０３に進み、前述した図６の気筒別可変バルブ制御精度値算出ルーチンを実行して、各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を算出する。
【００７６】
この後、ステップ４０４に進み、気筒別可変バルブ制御の復帰条件が成立しているか否かを判定する。ここで、気筒別可変バルブ制御の復帰条件は、例えば、次の２つの条件▲１▼、▲２▼を両方とも満たすことである。
【００７７】
▲１▼各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）が全て判定値以下であること
▲２▼バッテリ電圧が所定電圧（例えば１２Ｖ）以上であること
これら２つの条件▲１▼、▲２▼を両方とも満たせば、気筒別可変バルブ制御の復帰条件が成立するが、いずれか一方でも満たさない条件があれば、気筒別可変バルブ制御の復帰条件が不成立となる。
【００７８】
もし、気筒別可変バルブ制御の復帰条件が不成立と判定されれば、気筒別可変バルブ制御精度が回復していないと判断して、ステップ４０５に進み、気筒別可変バルブ制御復帰フラグＸＲＥＡＣＴを「ＯＦＦ」にリセットしたまま、本ルーチンを終了する。
【００７９】
一方、上記ステップ４０４で、気筒別可変バルブ制御の復帰条件が成立していると判定された場合には、気筒別可変バルブ制御精度が回復したと判断して、ステップ４０６に進み、気筒別可変バルブ制御復帰フラグＸＲＥＡＣＴを「ＯＮ」にセットする。これにより、図４のステップ１０４で「Ｙｅｓ」と判定されて気筒別可変バルブ制御が再開される。この機能が特許請求の範囲でいう復帰制御手段としての役割を果たす。
この後、ステップ４０７に進み、気筒別可変バルブ制御禁止フラグＸＲＥＡＣＴを「ＯＦＦ」にリセットして、本ルーチンを終了する。
【００８０】
［気筒別可変バルブ制御ルーチン］
図４のステップ１１０で、図８の気筒別可変バルブ制御ルーチンが起動されると、まず、ステップ５０１で、気筒別可変バルブ制御実行条件が成立しているか否かを判定する。ここで、気筒別可変バルブ制御実行条件は、例えば、次の２つの条件▲１▼、▲２▼を両方とも満たすことである。
▲１▼始動後所定時間以上が経過していること（つまり始動直後の不安定な運転状態でないこと）
▲２▼過渡運転状態でないこと（つまり定常運転状態であること）
【００８１】
これら２つの条件▲１▼、▲２▼を両方とも満たせば、気筒別可変バルブ制御実行条件が成立するが、いずれか一方でも満たさない条件があれば、気筒別可変バルブ制御実行条件が不成立となる。もし、気筒別可変バルブ制御実行条件が不成立と判定されれば、ステップ５０２以降の気筒別可変バルブ制御に関する処理を実行することなく、本ルーチンを終了する。
【００８２】
一方、上記ステップ５０１で、気筒別可変バルブ制御実行条件が成立していると判定された場合には、ステップ５０２以降の気筒別可変バルブ制御に関する処理を次のようにして実行する。まず、ステップ５０２で、後述する図９の気筒間吸入空気量ばらつき率算出ルーチンを実行して、各気筒の気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）を算出する。
【００８３】
この後、ステップ５０３に進み、各気筒毎に気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）に応じたリフト補正量ＦＶＶＬ（＃ｉ）を図１０のマップを用いて算出する。図１０のマップは、気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）が１よりも大きい領域では、リフト補正量ＦＶＶＬ（＃ｉ）が減量値（マイナス値）となり、気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）が１よりも小さい領域では、リフト補正量ＦＶＶＬ（＃ｉ）が増量値（プラス値）となる。つまり、ある気筒の吸入空気量が全気筒の平均吸入空気量よりも多くなるほど、リフト補正量ＦＶＶＬ（＃ｉ）による減量補正量が大きくなり、反対に、ある気筒の吸入空気量が全気筒の平均吸入空気量よりも少なくなるほど、リフト補正量ＦＶＶＬ（＃ｉ）による増量補正量が大きくなって、気筒間の実吸入空気量のばらつきが小さくなるようにしている。尚、気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）が１付近の所定領域では、リフト補正量ＦＶＶＬ（＃ｉ）＝０に設定され、吸気バルブリフト量ＶＶＬが補正されない。
【００８４】
リフト補正量ＦＶＶＬ（＃ｉ）の算出後、ステップ５０４に進み、全気筒の吸気バルブ２８が閉弁しているか否かを判定し、少なくとも１つの吸気バルブ２８が開弁していると判定されれば、そのまま本ルーチンを終了する。
【００８５】
その後、ステップ５０４で、全気筒の吸気バルブ２８が閉弁していると判定されたときに、ステップ５０５に進み、補正前の全気筒の平均リフト量ＶＶＬに次の吸気気筒のリフト補正量ＦＶＶＬ（＃ｉ）を加算して、気筒別目標リフト量ＶＶＬＭを求める。
【００８６】
次の吸気気筒が第１気筒＃１のとき（つまり第１気筒＃１の吸気行程前）には、第１気筒＃１のリフト補正量ＦＶＶＬ（＃１）を全気筒の平均リフト量ＶＶＬに加算して気筒別目標リフト量ＶＶＬＭを求める。
ＶＶＬＭ＝ＶＶＬ＋ＦＶＶＬ（＃１）
【００８７】
次の吸気気筒が第２気筒＃２のとき（つまり第２気筒＃２の吸気行程前）には、第２気筒＃２のリフト補正量ＦＶＶＬ（＃２）を全気筒の平均リフト量ＶＶＬに加算して気筒別目標リフト量ＶＶＬＭを求める。
ＶＶＬＭ＝ＶＶＬ＋ＦＶＶＬ（＃２）
【００８８】
次の吸気気筒が第３気筒＃３のとき（つまり第３気筒＃３の吸気行程前）には、第３気筒＃３のリフト補正量ＦＶＶＬ（＃３）を全気筒の平均リフト量ＶＶＬに加算して気筒別目標リフト量ＶＶＬＭを求める。
ＶＶＬＭ＝ＶＶＬ＋ＦＶＶＬ（＃３）
【００８９】
次の吸気気筒が第４気筒＃４のとき（つまり第４気筒＃４の吸気行程前）には、第４気筒＃４のリフト補正量ＦＶＶＬ（＃４）を全気筒の平均リフト量ＶＶＬに加算して気筒別目標リフト量ＶＶＬＭを求める。
ＶＶＬＭ＝ＶＶＬ＋ＦＶＶＬ（＃４）
【００９０】
このようにして、全気筒の吸気バルブ２８が閉弁している全吸気バルブ閉弁期間になる毎に、次の吸気気筒のリフト補正量ＦＶＶＬ（＃ｉ）を用いて、次の吸気気筒の目標リフト量ＶＶＬＭを設定する。このステップ５０５の処理が特許請求の範囲でいう気筒別目標バルブ可変量設定手段としての役割を果たす。
【００９１】
この後、ステップ５０６に進み、全吸気バルブ閉弁期間になる毎に、気筒別目標リフト量ＶＶＬＭに応じて可変バルブリフト機構３０のモータ４１を高速駆動して、全吸気バルブ閉弁期間内に可変バルブリフト機構３０を次の吸気気筒の目標リフト量ＶＶＬＭに相当する位置まで駆動する。これにより、各気筒の吸気バルブ２８の開弁タイミング前に可変バルブリフト機構３０の駆動（目標リフト量ＶＶＬＭへのリフト可変動作）を実行して吸入空気量を気筒別に制御して、気筒間の吸入空気量ばらつきを補正する。このステップ５０６の処理が特許請求の範囲でいう気筒別可変バルブ制御手段としての役割を果たす。
【００９２】
［気筒間吸入空気量ばらつき率算出ルーチン］
図８のステップ５０２で、図９の気筒間ばらつき率算出ルーチンが起動されると、まず、ステップ６０１で、エアフローメータ１４で検出した瞬時空気流量ＧＡを読み込んだ後、ステップ６０２に進み、クランク角カウンタＣＣＲＮＫのカウント値を読み込む。
【００９３】
この後、ステップ６０３に進み、各気筒の吸入空気量平均値ＧＡａｖｅ（＃ｉ）  を算出する。
この場合、クランク角カウンタＣＣＲＮＫ＝１２〜１７の期間（つまり第１気筒＃１の吸気行程に対応する期間）は、その期間の瞬時空気流量ＧＡの平均値を第１気筒＃１の吸入空気流量平均値ＧＡａｖｅ（＃１）  とする。
【００９４】
クランク角カウンタＣＣＲＮＫ＝６〜１１の期間（つまり第２気筒＃２の吸気行程に対応する期間）は、その期間の瞬時空気流量ＧＡの平均値を、第２気筒＃２の吸入空気流量平均値ＧＡａｖｅ（＃２）  とする。
【００９５】
クランク角カウンタＣＣＲＮＫ＝１８〜２３の期間（つまり第３気筒＃３の吸気行程に対応する期間）は、その期間の瞬時空気流量ＧＡの平均値を、第３気筒＃３の吸入空気流量平均値ＧＡａｖｅ（＃３）  とする。
【００９６】
クランク角カウンタＣＣＲＮＫ＝０〜５の期間（つまり第４気筒＃４の吸気行程に対応する期間）は、その期間の瞬時空気流量ＧＡの平均値を、第４気筒＃４の吸入空気流量平均値ＧＡａｖｅ（＃４）  とする。
この後、ステップ６０４で、各気筒の気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）を次式により算出する。
【００９７】
【数１】
2004308611.tif 000003
【００９８】
上式の分母は、全気筒の吸入空気流量平均値ＧＡａｖｅ（＃１）  〜ＧＡａｖｅ（＃４）  の平均値である。
尚、図９の気筒間吸入空気量ばらつき率算出ルーチンでは、各気筒の吸入空気流量平均値ＧＡａｖｅ（＃ｉ）  を用いて気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）を算出したが、各気筒の吸入空気流量極大値や吸入空気量積算値を用いて気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）を算出するようにしても良い。また、各気筒の吸入空気量に応じて発生する吸気脈動がエアフローメータ１４で検出されるまでの時間遅れ等を考慮して、各気筒の吸入空気流量平均値の算出期間を適宜変更しても良い。
【００９９】
また、吸気管圧力センサ１８の出力に基づいて気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）を算出するようにしても良い。また、各気筒の筒内圧を検出する筒内圧センサや各気筒のバルブリフト量を検出するリフトセンサを備えたシステムでは、筒内圧センサの出力やリフトセンサの出力に基づいて気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）を算出するようにしても良い。
【０１００】
以上説明した本実施形態（１）の実行例を図１１乃至図１３に示すタイムチャートを用いて説明する。図１１に示すように、気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）が許容範囲内にあり、気筒別可変バルブ制御禁止フラグＸＳＴＯＰがＯＦＦされている期間は、気筒別可変バルブ制御を実行して吸入空気量を制御する。この気筒別可変バルブ制御では、各気筒の気筒間吸入空気量ばらつき率ＤＥＶ（＃ｉ）に基づいて各気筒の目標リフト量ＶＶＬＭを設定し、図１２に示すように、全吸気バルブ閉弁期間になる毎に、可変バルブリフト機構３０のモータ４１を次の吸気気筒の目標リフト量ＶＶＬＭに相当する位置まで高速駆動することで、吸入空気量を気筒別に制御して気筒間の吸入空気量ばらつきを補正する。
【０１０１】
この気筒別可変バルブ制御の実行中は、各気筒の吸気バルブ２８の実リフト量と目標リフト量ＶＶＬＭとの偏差（各気筒の吸気行程の実モータ回転角度ＶＶＬＡＣＴと目標モータ回転角度ＴＧＶＶＬＡＣＴとの偏差）を積算して各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を求める。
【０１０２】
その後、図１３に示すように、バッテリ電圧の低下等により各気筒の目標リフト量ＶＶＬＭに対する実リフト量の収束性が悪化して、気筒別可変バルブ制御精度が悪化し、それによって、気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）が許容範囲を越えたた時点（図１１のｔ１  ）で、気筒別可変バルブ制御禁止フラグＸＳＴＯＰがＯＮされて、気筒別可変バルブ制御が禁止される。
【０１０３】
これにより、気筒別可変バルブ制御精度の悪化による気筒間のリフト量のばらつき（又は吸入空気量のばらつき）の悪化や、同一気筒のサイクル間のリフト量のばらつき（又は吸入空気量のばらつき）の悪化を未然に防止することができ、ドライバビリティや排気エミッションへの悪影響を回避することができる。
【０１０４】
また、図１１に示すように、気筒別可変バルブ制御の禁止中は、リフト量制限モード可変バルブ制御とスロットルバルブ制御により吸入空気量を制御する。リフト量制限モード可変バルブ制御では、各気筒共通の目標リフト量ＴＧＶＶＬを下限リフト量ＶＶＬｍｉｎ  （例えば１ｍｍ）以上に制限して可変バルブリフト機構３０のモータ４１を各気筒共通の目標リフト量ＴＧＶＶＬに相当する位置に制御する。
【０１０５】
目標リフト量ＴＧＶＶＬを下限リフト量ＶＶＬｍｉｎ  以上に制限すれば、目標リフト量ＴＧＶＶＬに対する実リフト量のばらつき（各気筒の部品公差や組付公差によるばらつき）の割合を所定のばらつき許容値（例えば５％）以下に抑えて、気筒間の吸入空気量ばらつきをに許容範囲内に抑えることができる。従って、気筒別可変バルブ制御の禁止中に、リフト量制限モード可変バルブ制御を実行すれば、気筒間の吸入空気量ばらつきをドライバビリティや排気エミッションが悪化しない許容範囲内に抑えながら、可変バルブ制御による吸入空気量制御を行うことができ、気筒別可変バルブ制御の禁止中に、スロットルバルブ制御のみで吸入空気量制御を行う場合よりも燃費を少なくすることができる。
【０１０６】
また、気筒別可変バルブ制御の禁止中に、リフト量制限モード可変バルブ制御を行って目標リフト量ＴＧＶＶＬを下限リフト量ＶＶＬｍｉｎ  以上に制限する場合、可変バルブ制御による吸入空気量制御だけでは吸入空気量の制御領域の下限側が制限されて、アイドル等の低負荷時に吸入空気量を通常の最小空気量（アイドル時の目標空気量）付近に制御できなくなるが、スロットルバルブ制御による吸入空気量制御を併用することで、吸入空気量の制御領域の下限側を通常の最小空気量まで広げることができる。
【０１０７】
更に、図１１に示すように、気筒別可変バルブ制御の禁止中に、燃料カット（又は減速）が開始された時点ｔ２  で、気筒別可変バルブ制御を試行し、そのときの気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）が許容範囲以内で且つバッテリ電圧が所定値以上と判定されて復帰条件が成立した時点ｔ３  で、気筒別可変バルブ制御復帰フラグＸＲＥＡＣＴがＯＮされて、気筒別可変バルブ制御が再開される。
【０１０８】
これにより、気筒別可変バルブ制御精度が回復したことを実際に確認してから気筒別可変バルブ制御を再開することができる。しかも、燃料カット中又は減速中に気筒別可変バルブ制御を試行するので、もし、気筒別可変バルブ制御精度が回復していない場合でも、気筒別可変バルブ制御の試行によるドライバビリティ等への悪影響を少なくすることができる。
【０１０９】
《実施形態（２）》
前記実施形態（１）では、各気筒の吸気バルブ２８の実リフト量と目標リフト量ＶＶＬＭとの偏差に基づいて各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を求めたが、本発明の実施形態（２）では、図１４に示す気筒別可変バルブ制御精度値算出ルーチンを実行することで、各気筒の吸気バルブ２８の実リフト量のサイクル間ばらつきに基づいて各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を求めるようにしている。尚、本実施形態（２）では、気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を求める際に、吸気バルブ２８の実リフト量の代用情報として、可変バルブリフト機構３０の実モータ回転角度ＶＶＬＡＣＴを用いる。
【０１１０】
本実施形態（２）で実行する図１４の気筒別可変バルブ制御精度値算出ルーチンでは、まず、ステップ７０１で、モータ回転角度センサ４４により検出した可変バルブリフト機構３０の実モータ回転角度ＶＶＬＡＣＴを読み込み、次のステップ７０２で、クランク角カウンタＣＣＲＮＫのカウント値を読み込む。
【０１１１】
この後、ステップ７０３に進み、各気筒別に吸気行程毎（サイクル毎）に検出した実モータ回転角度の１番目の記憶値ＶＶＬＡＣＴ（＃ｉ）（１）  からｎ番目（例えば２０番目）の記憶値ＶＶＬＡＣＴ（＃ｉ）（ｎ）  を更新する。
【０１１２】
この場合、クランク角カウンタＣＣＲＮＫ＝１２〜１７の期間（つまり第１気筒＃１の吸気行程に対応する期間）は、その期間の１点で検出した実モータ回転角度ＶＶＬＡＣＴを記憶すると共に、第１気筒＃１の吸気行程の実モータ回転角度の１番目の記憶値ＶＶＬＡＣＴ（＃１）（１）  から（ｎ−１）番目の記憶値ＶＶＬＡＣＴ（＃１）（ｎ−１）  を、それぞれ２番目の記憶値ＶＶＬＡＣＴ（＃１）（２）  からｎ番目の記憶値ＶＶＬＡＣＴ（＃１）（ｎ）  で更新し、ｎ番目の記憶値ＶＶＬＡＣＴ（＃１）（ｎ）  を今回の記憶値ＶＶＬＡＣＴで更新する。
【０１１３】
同じようにして、クランク角カウンタＣＣＲＮＫ＝６〜１１の期間（つまり第２気筒＃２の吸気行程に対応する期間）は、第２気筒＃２の吸気行程の実モータ回転角度の１番目の記憶値ＶＶＬＡＣＴ（＃２）（１）  からｎ番目の記憶値ＶＶＬＡＣＴ（＃２）（ｎ）  を更新し、クランク角カウンタＣＣＲＮＫ＝１８〜２３の期間（つまり第３気筒＃３の吸気行程に対応する期間）は、第３気筒＃３の吸気行程の実モータ回転角度の１番目の記憶値ＶＶＬＡＣＴ（＃３）（１）  からｎ番目の記憶値ＶＶＬＡＣＴ（＃３）（ｎ）  を更新し、クランク角カウンタＣＣＲＮＫ＝０〜５の期間（つまり第４気筒＃４の吸気行程に対応する期間）は、第４気筒＃４の吸気行程の実モータ回転角度の１番目の記憶値ＶＶＬＡＣＴ（＃４）（１）  からｎ番目の記憶値ＶＶＬＡＣＴ（＃４）（ｎ）  を更新する。
【０１１４】
この後、ステップ７０４に進み、各気筒の吸気行程毎（サイクル毎）に検出した実モータ回転角度の１番目の記憶値ＶＶＬＡＣＴ（＃ｉ）（１）  からｎ番目の記憶値ＶＶＬＡＣＴ（＃ｉ）（ｎ）  のばらつき度合（例えば標準偏差）を算出し、それを気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）とする。
【０１１５】
以上説明した本実施形態（２）では、各気筒の吸気バルブ２８の実リフト量（実モータ回転角度ＶＶＬＡＣＴ）のサイクル間ばらつきに基づいて気筒別可変バルブ制御精度値ＡＣＣＵＲＡを算出するようにしたので、気筒別可変バルブ制御精度として、各気筒の吸気バルブ２８の実リフト量のサイクル間ばらつき（繰り返し精度）を評価することができ、吸気バルブ２８の実リフト量のサイクル間ばらつきが悪化したときに、気筒別可変バルブ制御を禁止することができる。
【０１１６】
《実施形態（３）》
本発明の実施形態（３）では、図１５に示す気筒別可変バルブ制御精度値算出ルーチンを実行することで、可変バルブリフト機構３０のモータ駆動時間ＴＡＣＴ（図１２、図１３参照）のサイクル間ばらつきに基づいて各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）を求めるようにしている。
【０１１７】
本実施形態（３）で実行する図１５の気筒別可変バルブ制御精度値算出ルーチンでは、まず、ステップ８０１で、モータ回転角度センサ４４の出力に基づいて可変バルブリフト機構３０のモータ４１を次の吸気気筒の目標リフト量ＶＶＬＭに相当する位置まで駆動するのに要したモータ駆動時間ＴＡＣＴを検出する。
【０１１８】
この後、ステップ８０２に進み、各気筒別に吸気行程を迎える毎（サイクル毎）に検出したモータ駆動時間の１番目の記憶値ＴＡＣＴ（＃ｉ）（１）  からｎ番目（例えば２０番目）の記憶値ＴＡＣＴ（＃ｉ）（ｎ）  を更新する。
【０１１９】
この場合、次の吸気気筒が第１気筒＃１のときは、第１気筒＃１の吸気行程前のモータ駆動時間の１番目の記憶値ＴＡＣＴ（＃１）（１）  から（ｎ−１）番目の記憶値ＴＡＣＴ（＃１）（ｎ−１）  を、それぞれ２番目の記憶値ＴＡＣＴ（＃１）（２）  からｎ番目の記憶値ＴＡＣＴ（＃１）（ｎ）  で更新し、ｎ番目の記憶値ＴＡＣＴ（＃１）（ｎ）  を今回の記憶値ＴＡＣＴで更新する。
【０１２０】
同じようにして、次の吸気気筒が第２気筒＃２のときは、第２気筒＃２の吸気行程前のモータ駆動時間の１番目の記憶値ＴＡＣＴ（＃２）（１）  からｎ番目の記憶値ＴＡＣＴ（＃２）（ｎ）  を更新し、次の吸気気筒が第３気筒＃３のときは、第３気筒＃３の吸気行程前のモータ駆動時間の１番目の記憶値ＴＡＣＴ（＃３）（１）  からｎ番目の記憶値ＴＡＣＴ（＃３）（ｎ）  を更新し、次の吸気気筒が第４気筒＃４のときは、第４気筒＃４の吸気行程前のモータ駆動時間の１番目の記憶値ＴＡＣＴ（＃４）（１）  からｎ番目の記憶値ＴＡＣＴ（＃４）（ｎ）  を更新する。
【０１２１】
この後、ステップ８０３に進み、各気筒の吸気行程を迎える毎（サイクル毎）に検出したモータ駆動時間の１番目の記憶値ＴＡＣＴ（＃ｉ）（１）  からｎ番目の記憶値ＴＡＣＴ（＃ｉ）（ｎ）  のばらつき度合（例えば標準偏差）を算出し、それを気筒別可変バルブ制御精度値ＡＣＣＵＲＡ（＃ｉ）とする。
【０１２２】
以上説明した本実施形態（３）では、可変バルブリフト機構３０のモータ駆動時間ＴＡＣＴのサイクル間ばらつきに基づいて気筒別可変バルブ制御精度値ＡＣＣＵＲＡを算出するようにしたので、気筒別可変バルブ制御精度として、可変バルブリフト機構３０のモータ駆動時間ＴＡＣＴのサイクル間ばらつき（繰り返し精度）を評価することができ、可変バルブリフト機構３０のモータ駆動時間ＴＡＣＴのサイクル間ばらつきが悪化したときに、気筒別可変バルブ制御を禁止することができる。
【０１２３】
尚、上記各実施形態（１）〜（３）では、各気筒の気筒別可変バルブ制御精度値ＡＣＣＵＲＡを算出するようにしたが、全気筒のうちの１つ又は２つ以上の気筒について気筒別可変バルブ制御精度値ＡＣＣＵＲＡを算出するようにしても良い。
【０１２４】
また、上記各実施形態（１）〜（３）では、気筒別可変バルブ制御の禁止中にリフト量制限モード可変バルブ制御による吸入空気量制御とスロットルバルブ制御による吸入空気量制御を併用するようにしたが、スロットルバルブ制御による吸入空気量制御のみを行うようにしても良い。
【０１２５】
また、上記各実施形態（１）〜（３）では、気筒別可変バルブ制御の禁止中に気筒別可変バルブ制御を試行し、そのときの気筒別可変バルブ制御精度値ＡＣＣＵＲＡが許容範囲以内で且つバッテリ電圧が所定電圧以上と判定されたときに復帰条件が成立するようにしたが、気筒別可変バルブ制御精度値ＡＣＣＵＲＡが許容範囲以内と判定されたときに復帰条件が成立するようにしても良い。
【０１２６】
勿論、バッテリ電圧が所定値以上と判定されたときに復帰条件が成立するようにしても良い。バッテリ電圧の低下によって気筒別可変バルブ制御精度が悪化した場合、バッテリ電圧が所定電圧以上に回復すると、気筒別可変バルブ制御精度が回復するため、バッテリ電圧が所定電圧以上に回復したときに、復帰条件が成立するようにすれば、気筒別可変バルブ制御精度が回復したときに、気筒別可変バルブ制御を再開することができる。
【０１２７】
また、本発明の適用範囲は、吸気バルブのリフト量を可変する可変バルブ制御システムに限定されず、吸気バルブのリフト量、作用角、バルブタイミングの少なくとも１つを可変する可変バルブ制御システムに広く適用することができる。また、排気バルブについても、本発明を適用して実施できる。
【０１２８】
更に、本発明は、気筒間の吸入空気量ばらつきに基づいて気筒別可変バルブ制御を行うシステムに限定されず、気筒間のバルブ可変量ばらつきに基づいて気筒別可変バルブ制御を行うシステムに適用しても良い。
【０１２９】
その他、本発明は、直列エンジンに限定されず、Ｖ型エンジン、水平対抗エンジン等、種々の複数気筒エンジンに適用でき、気筒数も適宜変更しても良いことは言うまでもない。
【図面の簡単な説明】
【図１】本発明の実施形態（１）におけるエンジン制御システム全体の概略構成図
【図２】可変バルブリフト機構の正面図
【図３】可変バルブリフト機構によるバルブリフト量の連続可変動作を説明するためのバルブリフト特性図
【図４】実施形態（１）の気筒別可変バルブ制御実行・禁止ルーチンの処理の流れを示すフローチャート
【図５】実施形態（１）の気筒別可変バルブ制御禁止判定ルーチンの処理の流れを示すフローチャート
【図６】実施形態（１）の気筒別可変バルブ制御精度値算出ルーチンの処理の流れを示すフローチャート
【図７】実施形態（１）の気筒別可変バルブ制御復帰判定ルーチンの処理の流れを示すフローチャート
【図８】実施形態（１）の気筒別可変バルブ制御ルーチンの処理の流れを示すフローチャート
【図９】実施形態（１）の気筒間吸入空気量ばらつき率算出ルーチンの処理の流れを示すフローチャート
【図１０】リフト補正量ＦＶＶＬのマップを概念的に示す図
【図１１】実施形態（１）の可変バルブ制御の実行例を示すタイムチャート
【図１２】気筒別可変バルブ制御精度の正常時の気筒別可変バルブ制御の実行例を示すタイムチャート
【図１３】気筒別可変バルブ制御精度の悪化時の気筒別可変バルブ制御の実行例を示すタイムチャート
【図１４】実施形態（２）の気筒別可変バルブ制御精度値算出ルーチンの処理の流れを示すフローチャート
【図１５】実施形態（３）の気筒別可変バルブ制御精度値算出ルーチンの処理の流れを示すフローチャート
【符号の説明】
１１…エンジン（内燃機関）、１２…吸気管、１４…エアフローメータ、１５…スロットルバルブ、２０…燃料噴射弁、２１…点火プラグ、２２…排気管、２６…クランク角センサ、２７…ＥＣＵ（気筒間ばらつき算出手段，気筒別目標バルブ可変量設定手段，気筒別可変バルブ制御手段，制御精度算出手段，気筒別可変バルブ制御禁止手段，リフト量制限モード可変バルブ制御手段，スロットル制御手段，復帰制御手段，試行手段）、２８…吸気バルブ、２９…排気バルブ、３０，３１…可変バルブリフト機構（可変バルブ機構）、４１…モータ、４４…モータ回転角度センサ。
【図１】
2004308611.tif 000004
【図２】
2004308611.tif 000005
【図３】
2004308611.tif 000006
【図４】
2004308611.tif 000007
【図５】
2004308611.tif 000008
【図６】
2004308611.tif 000009
【図７】
2004308611.tif 000010
【図８】
2004308611.tif 000011
【図９】
2004308611.tif 000012
【図１０】
2004308611.tif 000013
【図１１】
2004308611.tif 000014
【図１２】
2004308611.tif 000015
【図１３】
2004308611.tif 000016
【図１４】
2004308611.tif 000017
【図１５】
2004308611.tif 000018