"内燃機関の排出ガスの一部をEGRガスとして吸気通路に還流させる際のEGRガス流量を調節するEGR弁を備えた内燃機関のEGR制御装置において、前記EGR弁は、前記EGRガス流量が最小となる開度以下全閉位置というに対して該EGR弁の開度を増加方向と減少方向の両方向に駆動可能に設けられ、前記EGR弁の開度に対する内燃機関の挙動に基づいて前記全閉位置を学習する全閉位置学習手段を備えていることを特徴とする内燃機関のEGR制御装置。前記全閉位置学習手段は、前記EGR弁の開度を所定開度から増加させたときと減少させたときの内燃機関の挙動に基づいて前記全閉位置を学習することを特徴とする請求項1に記載の内燃機関のEGR制御装置。前記全閉位置学習手段は、前記EGR弁を可動範囲の限界位置まで駆動したときの開度に基づいて前記EGR弁の開度を所定開度から変化させる際の方向を増加方向と減少方向のうちの一方に決定して、前記EGR弁の開度を所定開度から変化させたときの内燃機関の挙動に基づいて前記全閉位置を学習することを特徴とする請求項1に記載の内燃機関のEGR制御装置。前記全閉位置学習手段は、前記全閉位置を学習する際に前記内燃機関の挙動として内燃機関の回転変動を用いることを特徴とする請求項1乃至3のいずれかに記載の内燃機関のEGR制御装置。前記全閉位置学習手段は、前記全閉位置を学習する際に前記内燃機関の挙動として内燃機関の回転変動を抑制するための補正量を用いることを特徴とする請求項1乃至3のいずれかに記載の内燃機関のEGR制御装置。前記全閉位置学習手段は、前記EGR弁の開度を変化させたときに内燃機関の回転変動が最小となるEGR弁の開度のうちの最大値を前記全閉位置として学習することを特徴とする請求項1乃至5のいずれかに記載の内燃機関のEGR制御装置。前記全閉位置学習手段は、前記EGR弁の開度を変化させたときに内燃機関の回転変動が最小となるEGR弁の開度のうちの最大値と最小値の平均値を前記全閉位置として学習することを特徴とする請求項1乃至5のいずれかに記載の内燃機関のEGR制御装置。前記全閉位置学習手段は、前記全閉位置の学習値を書き換え可能な不揮発性メモリに記憶することを特徴とする請求項1乃至7のいずれかに記載の内燃機関のEGR制御装置。ところで、特にガソリンエンジンでは、EGRガス流量に対する燃焼安定性の感度が高いため、EGRガス流量を精度良く制御する必要があると共に、EGRガス停止時はEGRガスの漏れによる燃焼悪化を防止するためにEGR弁の開度を全閉位置EGRガス流量が最小となる開度に精度良く制御する必要があり、それらを実現するには、EGR弁の開度制御の基準となる全閉位置を精度良く学習する必要がある。本出願人は、EGR弁のデポジットの対策等を目的として、EGR弁の開度を全閉位置に対して増加方向と減少方向の両方向に駆動できるようつまりEGR弁の可動範囲の途中で全閉位置となるようにEGR弁を設けたEGR装置を研究開発しているが、このEGR装置は、EGR弁の全閉位置が可動範囲の限界位置例えばストッパに突き当たる位置と一致していないため、EGR弁を可動範囲の限界位置まで駆動して全閉位置を学習するといった方法を実施することができない。そこで、上記特許文献1,2の技術の利用して、吸気通路に設けた酸素センサや吸気圧センサの出力に基づいてEGR弁の全閉位置を学習することも考えられるが、この場合、吸気通路に酸素センサや吸気圧センサを必ず設ける必要があるため、近年の重要な技術的課題である低コスト化の要求を満たすことができないことがある。そこで、本発明が解決しようとする課題は、低コスト化の要求を満たしながら、EGR弁の全閉位置EGRガス流量が最小となる開度を精度良く学習することができる内燃機関のEGR制御装置を提供することにある。上記課題を解決するために、請求項1に係る発明は、内燃機関の排出ガスの一部をEGRガスとして吸気通路に還流させる際のEGRガス流量を調節するEGR弁を備えた内燃機関のEGR制御装置において、EGR弁は、EGRガス流量が最小となる開度以下全閉位置というに対して該EGR弁の開度を増加方向と減少方向の両方向に駆動可能に設けられ、EGR弁の開度に対する内燃機関の挙動に基づいて全閉位置を学習する全閉位置学習手段を備えた構成としたものである。EGR弁の開度に応じてEGRガス流量が変化して内燃機関の挙動が変化するため、EGR弁の開度に対する内燃機関の挙動を監視すれば、EGR弁の全閉位置EGRガス流量が最小となる開度を精度良く学習することができる。しかも、全閉位置を学習するためのセンサを新たに設ける必要がないため、近年の重要な技術的課題である低コスト化の要求を満たすことができる。この場合、請求項2のように、EGR弁の開度を所定開度例えば設計上の全閉位置から増加させたときと減少させたときの内燃機関の挙動に基づいて全閉位置を学習するようにしても良い。このようにすれば、全閉位置が所定開度に対して増加側と減少側のどちら側にずれていても、全閉位置を学習することができる。或は、請求項3のように、EGR弁を可動範囲の限界位置まで駆動したときの開度に基づいてEGR弁の開度を所定開度から変化させる際の方向を増加方向と減少方向のうちの一方に決定して、EGR弁の開度を所定開度から変化させたときの内燃機関の挙動に基づいて全閉位置を学習するようにしても良い。このようにすれば、EGR弁を可動範囲の限界位置例えばストッパに突き当たる位置まで駆動したときの開度に基づいて全閉位置が所定開度に対して増加側と減少側のどちら側にずれているかを判定して、EGR弁の開度を所定開度から変化させる際の方向を増加方向と減少方向のうちの全閉位置を通過する方向に決定することができ、EGR弁の開度を所定開度から全閉位置を通過する方向に変化させたときの内燃機関の挙動に基づいて全閉位置を学習することができる。この場合、全閉位置を学習する際にEGR弁の開度を所定開度から増加方向と減少方向のうちの一方に変化させるだけで良く、学習時間を短縮化することができる。また、請求項4のように、全閉位置を学習する際に内燃機関の挙動として内燃機関の回転変動を用いるようにしても良い。EGR弁の開度に応じてEGRガス流量が変化し、それに応じて内燃機関の燃焼状態が変化して内燃機関の回転変動が変化するため、EGR弁の開度に対する内燃機関の回転変動を監視すれば、EGR弁の全閉位置を精度良く学習することができる。或は、請求項5にように、全閉位置を学習する際に内燃機関の挙動として内燃機関の回転変動を抑制するための補正量例えば、アイドル回転速度制御量、点火時期補正量、燃料噴射補正量等を用いるようにしても良い。このようにしても、EGR弁の全閉位置を精度良く学習することができる。ところで、EGR装置は、EGRガス流量が最小となるEGR弁の開度が必ずしも1点になるとは限らず、EGRガス流量が最小となる開度領域不感帯が存在する場合もある。そこで、請求項6のように、EGR弁の開度を変化させたときに内燃機関の回転変動が最小となるEGR弁の開度のうちの最大値を全閉位置として学習するようにしても良い。このようにすれば、EGRガス流量が最小となる開度領域不感帯が存在する場合でも、EGRガス流量が最小となる開度のうちの最大値を全閉位置として学習することができる。また、EGRガス流量が最小となる開度のうちの最大値を全閉位置として学習すれば、EGRガス流量制御の応答性を高めることができる。或は、請求項7のように、EGR弁の開度を変化させたときに内燃機関の回転変動が最小となるEGR弁の開度のうちの最大値と最小値の平均値を全閉位置として学習するようにしても良い。このようにすれば、EGRガス流量が最小となる開度領域不感帯が存在する場合でも、EGRガス流量が最小となる開度のうちの最大値と最小値の平均値を全閉位置として学習することができる。また、EGRガス流量が最小となる開度のうちの最大値と最小値の平均値を全閉位置として学習すれば、EGR弁の開度を全閉位置に制御したときのEGRガス流量EGRガスの漏れを確実に少なくする或は0にすることができる。また、請求項8のように、全閉位置の学習値を書き換え可能な不揮発性メモリに記憶するようにしても良い。このようにすれば、常に最新の全閉位置の学習値を用いてEGR弁を制御することができる。以下、本発明を実施するための形態を具体化した幾つかの実施例を説明する。本発明の実施例1を図1乃至図6に基づいて説明する。まず、図1に基づいてエンジン制御システム全体の構成を概略的に説明する。内燃機関であるエンジン11の吸気管12の最上流部には、エアクリーナ13が設けられ、このエアクリーナ13の下流側に、吸入空気量を検出するエアフローメータ14が設けられている。このエアフローメータ14の下流側には、モータ15によって開度調節されるスロットルバルブ16と、このスロットルバルブ16の開度スロットル開度を検出するスロットル開度センサ17とが設けられている。更に、スロットルバルブ16の下流側には、サージタンク18が設けられている。このサージタンク18には、エンジン11の各気筒に空気を導入する吸気マニホールド19が設けられ、各気筒毎に筒内噴射又は吸気ポート噴射を行う燃料噴射弁図示せずが取り付けられている。エンジン11のシリンダヘッドには、各気筒毎に点火プラグ図示せずが取り付けられ、各点火プラグの火花放電によって各気筒内の混合気に着火される。一方、エンジン11の各気筒の排気マニホールド20が排気管21に接続され、この排気管21に、排出ガス中のCO,HC,NOx等を浄化する三元触媒等の触媒22が設置されている。このエンジン11には、触媒22の上流側の排気通路排気マニホールド20又は排気管21から排出ガスの一部をEGRガスとしてスロットルバルブ16の下流側の吸気通路サージタンク18又は吸気マニホールド19に還流させるEGR装置23が搭載されている。このEGR装置23は、触媒22の上流側の排気通路とスロットルバルブ16の下流側の吸気通路との間にEGR配管24が接続され、このEGR配管24に、EGRガスを冷却するEGRクーラ25と、EGRガス流量を調節するバタフライ式のEGR弁26が設けられている。このEGR弁26は、モータ図示せずによって開度が調整され、そのEGR弁26の開度がEGR開度センサ27によって検出される。図2に示すように、EGR弁26のデポジットの対策等を目的として、EGR装置23は、EGR弁26の全閉位置EGRガス流量が最小となる開度からEGR弁26の開度の減少方向に離れた開度位置にストッパ31がEGR弁26のギアボックス内に設けられ、EGR弁26の開度を全閉位置に対して増加方向と減少方向の両方向に駆動できるようつまりEGR弁26の可動範囲の途中で全閉位置となるようにEGR弁26が設けられている。従って、このEGR装置23は、EGR弁26の全閉位置が可動範囲の限界位置ストッパ31に突き当たる位置と一致していない。図1に示すように、その他、エンジン11には、冷却水温を検出する冷却水温センサ28や、クランク軸図示せずが所定クランク角回転する毎にパルス信号を出力するクランク角センサ29等が設けられ、クランク角センサ29の出力信号に基づいてクランク角やエンジン回転速度が検出される。これら各種センサの出力は、電子制御ユニット以下ECUと表記する30に入力される。このECU30は、マイクロコンピュータを主体として構成され、内蔵されたROM記憶媒体に記憶された各種のエンジン制御用のプログラムを実行することで、エンジン運転状態に応じて、燃料噴射量、点火時期、スロットル開度吸入空気量等を制御する。その際、ECU30は、エンジン運転状態例えばエンジン回転速度や負荷等に応じて目標EGR流量又は目標EGR率を算出し、この目標EGR流量又は目標EGR率を実現するようにEGR弁26の開度を制御する。この場合、例えば、目標EGR流量又は目標EGR率に応じた目標EGR開度EGR弁26の目標開度を算出し、EGR開度センサ27で検出したEGR弁26の開度が目標EGR開度になるようにEGR弁26を制御する。ところで、特にガソリンエンジンでは、EGRガス流量に対する燃焼安定性の感度が高いため、EGRガス流量を精度良く制御する必要があると共に、EGRガス停止時はEGRガスの漏れによる燃焼悪化を防止するためにEGR弁26の開度を全閉位置EGRガス流量が最小となる開度に精度良く制御する必要があり、それらを実現するには、EGR弁26の開度制御の基準となる全閉位置を精度良く学習する必要がある。しかし、EGR装置23は、EGR弁26の全閉位置が可動範囲の限界位置ストッパ31に突き当たる位置と一致していないため、EGR弁26を可動範囲の限界位置まで駆動して全閉位置を学習するといった方法を実施することができない。そこで、ECU30は、EGR弁26の開度に対するエンジン回転変動に基づいて全閉位置を学習する。図3aに示すように、EGR弁26の開度に応じてEGRガス流量が変化し、それに応じてエンジン11の燃焼状態が変化してエンジン回転変動例えばエンジン回転速度の標準偏差が変化するため、EGR弁26の開度に対するエンジン回転変動を監視すれば、EGR弁26の全閉位置EGRガス流量が最小となる開度を精度良く学習することができる。本実施例1では、ECU30により後述する図5の全閉位置学習ルーチンを実行することで、EGR弁26の開度を所定開度例えば設計上の全閉位置から所定ステップ量ずつ増加させてエンジン回転変動例えばエンジン回転速度の標準偏差を算出する処理を繰り返した後、EGR弁26の開度を所定開度から所定ステップ量ずつ減少させてエンジン回転変動を算出する処理を繰り返し、このようにしてEGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動が最小となるEGR弁26の開度のうちの最大値を全閉位置として学習する図4参照。以下、本実施例1でECU30が実行する図5の全閉位置学習ルーチンの処理内容を説明する。図5に示す全閉位置学習ルーチンは、ECU30の電源オン期間中イグニッションスイッチのオン期間中に所定周期で繰り返し実行され、特許請求の範囲でいう全閉位置学習手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ101で、アイドル運転中であるか否かを判定し、アイドル運転中ではないと判定された場合には、ステップ102以降の全閉位置学習に関する処理を実行することなく、本ルーチンを終了する。一方、上記ステップ101で、アイドル運転中であると判定された場合には、ステップ102以降の全閉位置学習に関する処理を次のようにして実行する。まず、ステップ102で、目標EGR開度Eを所定開度に設定して、EGR弁26の開度を所定開度に制御する。ここで、所定開度は、設計上の全閉位置例えば0degに設定されている。この後、ステップ103に進み、目標EGR開度Eを所定ステップ量Aだけ増加させて、EGR弁26の開度を所定ステップ量Aだけ増加させる。目標EGR開度E=目標EGR開度EAこの後、ステップ104に進み、目標EGR開度Eを所定ステップ量Aだけ増加させた後のエンジン回転変動NSを算出する。この場合、例えば、所定期間におけるエンジン回転速度の標準偏差をエンジン回転変動NSとして算出する。或は、所定期間におけるエンジン回転速度の所定時間当りの変化量の最大値や平均値をエンジン回転変動NSとして算出するようにしても良い。この後、ステップ105に進み、現在の目標EGR開度Eとエンジン回転変動NSを記憶する。この後、ステップ106に進み、目標EGR開度Eが所定値B以上であるか否かを判定し、目標EGR開度が所定値Bよりも小さいと判定された場合には、上記ステップ103に戻り、目標EGR開度Eを所定ステップ量Aだけ増加させる毎に、エンジン回転変動NSを算出して、そのときの目標EGR開度Eとエンジン回転変動NSを記憶する処理ステップ103~105を繰り返す。その後、上記ステップ106で、目標EGR開度Eが所定値B以上であると判定された時点で、ステップ107に進み、目標EGR開度Eを所定開度例えば0degに設定して、EGR弁26の開度を所定開度に戻す。この後、ステップ108に進み、目標EGR開度Eを所定ステップ量Aだけ減少させて、EGR弁26の開度を所定ステップ量Aだけ減少させる。目標EGR開度E=目標EGR開度E-Aこの後、ステップ109に進み、目標EGR開度Eを所定ステップ量Aだけ減少させた後のエンジン回転変動NSを算出した後、ステップ110に進み、現在の目標EGR開度Eとエンジン回転変動NSを記憶する。この後、ステップ111に進み、目標EGR開度Eが所定値-B以下であるか否かを判定し、目標EGR開度が所定値-Bよりも大きいと判定された場合には、上記ステップ108に戻り、目標EGR開度Eを所定ステップ量Aだけ減少させる毎に、エンジン回転変動NSを算出して、そのときの目標EGR開度Eとエンジン回転変動NSを記憶する処理ステップ108~110を繰り返す。その後、上記ステップ111で、目標EGR開度Eが所定値-B以下であると判定された時点で、ステップ112に進み、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動NSが最小となるEGR弁26の開度目標EGR開度Eのうちの最大値を全閉位置として学習し、目標EGR開度Eを全閉位置に設定する。尚、エンジン回転変動NSが最小となるEGR弁26の開度目標EGR開度Eが1点の場合は、そのEGR弁26の開度を全閉位置として学習する。この後、ステップ113に進み、全閉位置の学習値をECU30のバックアップRAM図示せず等の書き換え可能な不揮発性メモリECU30の電源オフ中でも記憶データを保持する書き換え可能なメモリに記憶して、本ルーチンを終了する。尚、今回のアイドル運転中に全閉位置を学習した後は、今回のアイドル運転中に全閉位置の学習を実行しないようにしても良い。本実施例1の全閉位置学習の実行例を図6のタイムチャートを用いて説明する。アイドル運転中に、まず、目標EGR開度Eを所定開度例えば設計上の全閉位置に設定して、目標EGR開度Eを所定開度から所定ステップ量Aずつ増加させてエンジン回転変動NS例えばエンジン回転速度の標準偏差を算出する処理を目標EGR開度Eが所定値B以上になるまで繰り返す。この後、目標EGR開度Eを所定開度に戻して、目標EGR開度Eを所定開度から所定ステップ量Aずつ減少させてエンジン回転変動NSを算出する処理を目標EGR開度Eが所定値-B以下になるまで繰り返す。この後、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動NSが最小となるEGR弁26の開度のうちの最大値[図6に示す実行例では目標EGR開度E]を全閉位置として学習し、目標EGR開度Eを全閉位置に設定する。以上説明した本実施例1では、EGR弁26の開度に応じてEGRガス流量が変化し、それに応じてエンジン11の燃焼状態が変化してエンジン回転変動例えばエンジン回転速度の標準偏差が変化することに着目して、EGR弁26の開度を変化させたときのエンジン回転変動に基づいてEGR弁26の全閉位置を学習するようにしたので、EGR弁26の全閉位置を精度良く学習することができる。しかも、全閉位置を学習するためのセンサを新たに設ける必要がないため、近年の重要な技術的課題である低コスト化の要求を満たすことができる。また、本実施例1では、EGR弁26の開度を所定開度例えば設計上の全閉位置から増加させたときと減少させたときのエンジン回転変動に基づいて全閉位置を学習するようにしたので、EGR弁26の全閉位置が所定開度に対して増加側と減少側のどちら側にずれていても、全閉位置を学習することができる。ところで、EGR装置23は、EGRガス流量が最小となるEGR弁26の開度が必ずしも1点になるとは限らず、図4に示すように、EGRガス流量が最小となる開度領域不感帯が存在する場合もある。その点、本実施例1では、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動が最小となるEGR弁26の開度のうちの最大値を全閉位置として学習するようにしたので、EGRガス流量が最小となる開度領域不感帯が存在する場合でも、EGRガス流量が最小となる開度のうちの最大値を全閉位置として学習することができる。このようにEGRガス流量が最小となる開度のうちの最大値を全閉位置として学習すれば、EGRガス流量制御の応答性を高めることができる。また、本実施例1では、全閉位置の学習値をECU30のバックアップRAM等の書き換え可能な不揮発性メモリに記憶するようにしたので、常に最新の全閉位置の学習値を用いてEGR弁26を制御することができる。次に、図7乃至図9を用いて本発明の実施例2を説明する。但し、前記実施例1と実質的に同一部分については説明を省略又は簡略化し、主として前記実施例1と異なる部分について説明する。前記実施例1では、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動が最小となるEGR弁26の開度のうちの最大値を全閉位置として学習するようにしたが、本実施例2では、ECU30により後述する図8の全閉位置学習ルーチンを実行することで、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動が最小となるEGR弁26の開度のうちの最大値と最小値の平均値を全閉位置として学習する図7参照。本実施例2で実行する図8のルーチンは、前記実施例1で説明した図5のルーチンのステップ112の処理を、ステップ112aの処理に変更したものであり、それ以外の各ステップの処理は図5と同じである。図8の全閉位置学習ルーチンでは、ステップ101で、アイドル運転中であると判定された場合に、ステップ102に進み、目標EGR開度Eを所定開度に設定した後、目標EGR開度Eを所定ステップ量Aだけ増加させる毎に、エンジン回転変動NSを算出して、そのときの目標EGR開度Eとエンジン回転変動NSを記憶する処理を目標EGR開度Eが所定値B以上になるまで繰り返すステップ103~106。この後、ステップ107に進み、目標EGR開度Eを所定開度に設定した後、目標EGR開度Eを所定ステップ量Aだけ減少させる毎に、エンジン回転変動NSを算出して、そのときの目標EGR開度Eとエンジン回転変動NSを記憶する処理を目標EGR開度Eが所定値-B以下になるまで繰り返すステップ108~111。この後、ステップ112aに進み、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動NSが最小となるEGR弁26の開度目標EGR開度Eのうちの最大値と最小値の平均値を全閉位置として学習し、目標EGR開度Eを全閉位置に設定する。尚、エンジン回転変動NSが最小となるEGR弁26の開度目標EGR開度Eが1点の場合は、そのEGR弁26の開度を全閉位置として学習する。この後、ステップ113に進み、全閉位置の学習値をECU30のバックアップRAM等の書き換え可能な不揮発性メモリに記憶して、本ルーチンを終了する。尚、今回のアイドル運転中に全閉位置を学習した後は、今回のアイドル運転中に全閉位置の学習を実行しないようにしても良い。本実施例2の全閉位置学習の実行例を図9のタイムチャートを用いて説明する。アイドル運転中に、目標EGR開度Eを所定開度から所定ステップ量Aずつ増加させてエンジン回転変動NSを算出する処理を目標EGR開度Eが所定値B以上になるまで繰り返した後、目標EGR開度Eを所定開度から所定ステップ量Aずつ減少させてエンジン回転変動NSを算出する処理を目標EGR開度Eが所定値-B以下になるまで繰り返す。この後、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動NSが最小となるEGR弁26の開度のうちの最大値と最小値[図9に示す実行例では目標EGR開度Eと目標EGR開度E]の平均値を全閉位置として学習し、目標EGR開度Eを全閉位置に設定する。以上説明した本実施例2では、EGR弁26の開度を所定開度から変化増加及び減少させたときにエンジン回転変動が最小となるEGR弁26の開度のうちの最大値と最小値の平均値を全閉位置として学習するようにしたので、EGRガス流量が最小となる開度領域不感帯が存在する場合でも、EGRガス流量が最小となる開度のうちの最大値と最小値の平均値を全閉位置として学習することができる。このようにEGRガス流量が最小となる開度のうちの最大値と最小値の平均値を全閉位置として学習すれば、EGR弁26の開度を全閉位置に制御したときのEGRガス流量EGRガスの漏れを確実に少なくする或は0にすることができる。尚、上記各実施例1,2では、エンジン運転中にアイドル運転になる毎に全閉位置学習を実行するようにしているが、全閉位置学習を実行するタイミングは、これに限定されず、適宜変更しても良く、例えば、エンジン始動後の最初のアイドル運転中にのみ全閉位置学習を実行するようにしたり、或は、前回の全閉位置学習の実行から所定期間が経過した後例えば、エンジン運転時間が所定時間を越えた後、走行距離が所定距離を越えた後等のアイドル運転中に全閉位置学習を実行するようにしても良い。次に、図10及び図11を用いて本発明の実施例3を説明する。但し、前記実施例1と実質的に同一部分については説明を省略又は簡略化し、主として前記実施例1と異なる部分について説明する。本実施例3では、ECU30により後述する図10の全閉位置学習ルーチンを実行することで、まず、EGR弁26を可動範囲の限界位置ストッパ31に突き当たる位置まで駆動したときの開度EGR開度センサ27の検出値に基づいて全閉位置が所定開度例えば設計上の全閉位置に対して増加側と減少側のどちら側にずれているかを判定して、EGR弁26の開度を所定開度から変化させる際の方向を増加方向と減少方向のうちの全閉位置を通過する方向に決定し、その後、EGR弁26の開度を所定開度から全閉位置を通過する方向に変化させたときのエンジン回転変動に基づいて全閉位置を学習するようにしている。図10の全閉位置学習ルーチンでは、まず、ステップ201で、エンジン11の始動中クランキング中であるか否かを判定し、エンジン11の始動中ではないと判定された場合には、ステップ202以降の全閉位置学習に関する処理を実行することなく、本ルーチンを終了する。一方、上記ステップ202で、エンジン11の始動中であると判定された場合には、ステップ202以降の全閉位置学習に関する処理を次のようにして実行する。まず、ステップ202で、EGR弁26を突き当て位置まで駆動する。この突き当て位置は、EGR弁26の可動範囲の限界位置ストッパ31に突き当たる位置である。この後、ステップ203に進み、EGR弁26を突き当て位置まで駆動したときのEGR弁26の開度EGR開度センサ27の検出値を突き当て開度として記憶した後、ステップ204に進み、突き当て開度が所定値D以下であるか否かを判定する。ここで、所定値Dは、設計上の突き当て開度、つまり、設計上の可動範囲の限界位置ストッパ31に突き当たる位置に設定されている。このステップ204で、突き当て開度が所定値D以下であると判定された場合には、全閉位置が所定開度例えば設計上の全閉位置に対して減少側にずれていると判断して、ステップ205に進み、所定ステップ量Aをマイナス値に設定することで、EGR弁26の開度を所定開度から変化させる際の方向を減少方向全閉位置を通過する方向に決定する。一方、上記ステップ204で、突き当て開度が所定値Dよりも大きいと判定された場合には、全閉位置が所定開度例えば設計上の全閉位置に対して増加側にずれていると判断して、ステップ206に進み、所定ステップ量Aをプラス値に設定することで、EGR弁26の開度を所定開度から変化させる際の方向を増加方向全閉位置を通過する方向に決定する。この後、ステップ207に進み、アイドル運転中であるか否かを判定し、アイドル運転中ではないと判定された場合には、ステップ208以降の処理を実行することなく、本ルーチンを終了する。一方、上記ステップ207で、アイドル運転中であると判定された場合には、ステップ208以降の処理を次のようにして実行する。まず、ステップ208で、目標EGR開度Eを所定開度に設定して、EGR弁26の開度を所定開度に制御する。この後、ステップ209に進み、目標EGR開度Eを所定ステップ量Aだけ変化させて、EGR弁26の開度を所定ステップ量Aだけ変化させる。目標EGR開度E=目標EGR開度EAこれにより、所定ステップ量Aがマイナス値に設定されている場合には目標EGR開度を減少させてEGR弁26の開度を減少させることになり、所定ステップ量Aがプラス値に設定されている場合には目標EGR弁開度を増加させてEGR弁26の開度を増加させることになる。この後、ステップ210に進み、目標EGR開度Eを所定ステップ量Aだけ変化させた後のエンジン回転変動NSを算出した後、ステップ211に進み、現在の目標EGR開度Eとエンジン回転変動NSを記憶する。この後、ステップ212に進み、目標EGR開度を増加させる場合には目標EGR開度Eが所定値B1以上であるか否かを判定し、目標EGR開度を減少させる場合には目標EGR開度Eが所定値B2以下であるか否かを判定する。このステップ212で、目標EGR開度Eが所定値B1よりも小さい又は目標EGR開度Eが所定値B2よりも大きいと判定された場合には、ステップ209に戻り、目標EGR開度Eを所定ステップ量Aだけ変化させる毎に、エンジン回転変動NSを算出して、そのときの目標EGR開度Eとエンジン回転変動NSを記憶する処理ステップ209~211を繰り返す。その後、上記ステップ212で、目標EGR開度Eが所定値B1以上である又は目標EGR開度Eが所定値B2以下であると判定された時点で、ステップ213に進み、EGR弁26の開度を所定開度から変化増加又は減少させたときにエンジン回転変動NSが最小となるEGR弁26の開度目標EGR開度Eのうちの最大値を全閉位置として学習し、目標EGR開度Eを全閉位置に設定する。尚、エンジン回転変動NSが最小となるEGR弁26の開度目標EGR開度Eが1点の場合は、そのEGR弁26の開度を全閉位置として学習する。この後、ステップ214に進み、全閉位置の学習値をECU30のバックアップRAM等の書き換え可能な不揮発性メモリに記憶して、本ルーチンを終了する。本実施例3の全閉位置学習の実行例を図11のタイムチャートを用いて説明する。まず、エンジン11の始動中クランキング中に、EGR弁26を突き当て位置ストッパ31に突き当たる位置まで駆動したときのEGR弁26の開度を突き当て開度として記憶する。この突き当て開度が所定値D以下の場合には、全閉位置が所定開度例えば設計上の全閉位置に対して減少側にずれていると判断して、EGR弁26の開度を所定開度から変化させる際の方向を減少方向全閉位置を通過する方向に決定する。一方、突き当て開度が所定値Dよりも大きい場合には、全閉位置が所定開度に対して増加側にずれていると判断して、EGR弁26の開度を所定開度から変化させる際の方向を増加方向全閉位置を通過する方向に決定する。この後、アイドル運転中に、目標EGR開度Eを所定開度例えば設計上の全閉位置から所定ステップ量Aずつ変化させてエンジン回転変動NSを算出する処理を目標EGR開度Eが所定値B1以上又は所定値B2以下になるまで繰り返す。この後、EGR弁26の開度を所定開度から変化増加又は減少させたときにエンジン回転変動NSが最小となるEGR弁26の開度のうちの最大値[図11に示す実行例では目標EGR開度E]を全閉位置として学習し、目標EGR開度Eを全閉位置に設定する。以上説明した本実施例3では、EGR弁26を突き当て位置まで駆動したときの開度に基づいてEGR弁26の開度を所定開度から変化させる際の方向を増加方向と減少方向のうちの一方に決定して、EGR弁26の開度を所定開度から変化させたときのエンジン回転変動に基づいて全閉位置を学習するようにしたので、全閉位置を学習する際にEGR弁26の開度を所定開度から増加方向と減少方向のうちの一方に変化させるだけで良く、学習時間を短縮化することができる。尚、上記実施例3では、EGR弁26の開度を所定開度から変化増加又は減少させたときにエンジン回転変動が最小となるEGR弁26の開度のうちの最大値を全閉位置として学習するようにしたが、これに限定されず、EGR弁26の開度を所定開度から変化増加又は減少させたときにエンジン回転変動が最小となるEGR弁26の開度のうちの最大値と最小値の平均値を全閉位置として学習するようにしても良い。また、上記各実施例1~3では、EGR弁26の開度を所定開度から変化増加及び/又は減少させたときのエンジン回転変動に基づいて全閉位置を学習するようにしたが、これに限定されず、例えば、EGR弁26の開度を所定開度よりも小さい開度から所定開度よりも大きい開度まで増加させたときのエンジン回転変動に基づいて全閉位置を学習するようにしたり、或は、EGR弁26の開度を所定開度よりも大きい開度から所定開度よりも小さい開度まで減少させたときのエンジン回転変動に基づいて全閉位置を学習するようにしても良い。また、上記各実施例1~3では、EGR弁26の開度を変化させたときのエンジン回転変動に基づいて全閉位置を学習するようにしたが、これに限定されず、例えば、エンジン回転変動を抑制するための補正量に基づいて全閉位置を学習するようにしても良い。ここで、エンジン回転変動を抑制するための補正量としては、例えば、ISC制御量アイドル回転速度制御量、点火時期補正量、燃料噴射補正量等が挙げられる。図3に示すように、EGR弁26の開度に応じてEGRガス流量が変化し、それに応じてエンジン回転変動例えばエンジン回転速度の標準偏差が変化して、エンジン回転変動を抑制するための補正量例えば、ISC制御量、点火時期補正量、燃料噴射補正量等が変化するため、エンジン回転変動を抑制するための補正量を用いても、EGR弁の全閉位置を精度良く学習することができる。また、上記各実施例1~3では、アイドル運転中に全閉位置学習を実行するようにしたが、これに限定されず、アイドル運転以外のエンジン運転中例えば定常運転中に全閉位置学習を実行するようにしても良い。また、上記各実施例1~3では、過給機を搭載していない自然吸気エンジンNAエンジンに本発明を適用したが、これに限定されず、例えば、排気タービン駆動式の過給機いわゆるターボチャージャを搭載したエンジンや、機械駆動式の過給機いわゆるスーパーチャージャを搭載したエンジンや、電動式の過給機を搭載したエンジンに本発明を適用しても良い。排気タービン駆動式の過給機を搭載したエンジンの場合、排気管のうちの排気タービンの下流側例えば触媒の下流側から吸気管のうちのコンプレッサの上流側へEGRガスを還流させるLPL方式低圧ループ方式のEGR装置を採用した過給機付きエンジンに本発明を適用しても良いし、或は、排気管のうちの排気タービンの上流側から吸気管のうちのコンプレッサの下流側例えばスロットルバルブの下流側へEGRガスを還流させるHPL方式高圧ループ方式のEGR装置を採用した過給機付きエンジンに本発明を適用しても良い。"