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