(57)【要約】【課題】エンジン回転停止制御が実行されたときの実エンジン回転挙動に基づいて目標軌道情報（目標軌道の算出に用いる基準回転速度とロストルクのずれ量）を学習するシステムにおいて、大気圧の変化による目標軌道の算出精度の低下を抑制する。【解決手段】エンジン停止要求が発生したときに大気圧センサ３８で大気圧を検出して、前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差に応じた大気圧補正量を算出し、その大気圧補正量を用いて目標軌道情報（基準回転速度とロストルクのずれ量）の学習値を補正することで、大気圧に応じて実際の目標軌道情報（目標軌道情報の真値）が変化するのに対応して、目標軌道情報の学習値を適正に補正して、目標軌道情報の学習値を真値に近付ける。この補正後の目標軌道情報の学習値を用いて目標軌道を算出することで、大気圧の変化による目標軌道の算出精度の低下を抑制する。【選択図】図１
2012082808.tif 000002
【特許請求の範囲】
【請求項１】
エンジン回転が目標停止クランク角で停止するようにエンジン回転挙動の目標軌道を算出する目標軌道算出手段と、エンジン停止要求に応じてエンジン回転を停止させる際に実エンジン回転挙動を前記目標軌道に合わせるように発電機の負荷を制御するエンジン回転停止制御を実行する停止制御手段とを備えたエンジン回転停止制御装置において、
前記エンジン回転停止制御が実行されたときの実エンジン回転挙動に基づいて前記目標軌道の算出に用いる情報（以下「目標軌道情報」という）の学習値を算出して記憶することで前記目標軌道情報を学習する学習手段と、
大気圧を検出又は推定する大気圧取得手段と、
前記大気圧取得手段で検出又は推定した大気圧に応じて補正量を算出し、その補正量を用いて前記目標軌道情報の学習値を補正する学習値補正手段とを備え、
前記目標軌道算出手段は、前記学習値補正手段で補正した目標軌道情報の学習値を用いて前記目標軌道を算出することを特徴とするエンジン回転停止制御装置。
【請求項２】
前記学習値補正手段は、前記エンジン停止要求が発生したときに前記大気圧取得手段で検出又は推定した大気圧（以下「エンジン停止要求時の大気圧」という）に基づいて前記補正量を算出して前記目標軌道情報の学習値を補正することを特徴とする請求項１に記載のエンジン回転停止制御装置。
【請求項３】
前記学習値補正手段は、前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差に応じて前記補正量を算出する又は今回のエンジン停止要求時の大気圧に応じて前記補正量を算出することを特徴とする請求項２に記載のエンジン回転停止制御装置。
【請求項４】
エンジン回転が目標停止クランク角で停止するようにエンジン回転挙動の目標軌道を算出する目標軌道算出手段と、エンジン停止要求に応じてエンジン回転を停止させる際に実エンジン回転挙動を前記目標軌道に合わせるように発電機の負荷を制御するエンジン回転停止制御を実行する停止制御手段とを備えたエンジン回転停止制御装置において、
前記エンジン回転停止制御が実行されたときの実エンジン回転挙動に基づいて前記目標軌道の算出に用いる情報（以下「目標軌道情報」という）の学習値を算出して記憶することで前記目標軌道情報を学習する学習手段と、
エンジン温度情報を検出又は推定する温度情報取得手段と、
前記温度情報取得手段で検出又は推定したエンジン温度情報に応じて補正量を算出し、その補正量を用いて前記目標軌道情報の学習値を補正する学習値補正手段とを備え、
前記目標軌道算出手段は、前記学習値補正手段で補正した目標軌道情報の学習値を用いて前記目標軌道を算出することを特徴とするエンジン回転停止制御装置。
【請求項５】
前記学習値補正手段は、前記エンジン停止要求が発生したときに前記温度情報取得手段で検出又は推定したエンジン温度情報に基づいて前記補正量を算出して前記目標軌道情報の学習値を補正することを特徴とする請求項４に記載のエンジン回転停止制御装置。
【請求項６】
エンジン回転が目標停止クランク角で停止するようにエンジン回転挙動の目標軌道を算出する目標軌道算出手段と、エンジン停止要求に応じてエンジン回転を停止させる際に実エンジン回転挙動を前記目標軌道に合わせるように発電機の負荷を制御するエンジン回転停止制御を実行する停止制御手段とを備えたエンジン回転停止制御装置において、
前記エンジン回転停止制御が実行されたときの実エンジン回転挙動に基づいて前記目標軌道の算出に用いる情報（以下「目標軌道情報」という）の学習値を算出して記憶することで前記目標軌道情報を学習する学習手段と、
大気圧を検出又は推定する大気圧取得手段とエンジン温度情報を検出又は推定する温度情報取得手段のうちの少なくとも一方とを備え、
前記学習手段は、前記大気圧取得手段で検出又は推定した大気圧と前記温度情報取得手段で検出又は推定したエンジン温度情報のうちの少なくとも一方に応じて前記目標軌道情報を学習する際のゲインを変化させることを特徴とするエンジン回転停止制御装置。
【請求項７】
前記温度情報取得手段は、前記エンジン温度情報として水温と油温のうちの少なくとも一方を検出又は推定することを特徴とする請求項４乃至６のいずれかに記載のエンジン回転停止制御装置。
【請求項８】
前記目標軌道算出手段は、エンジン回転の停止クランク角が目標停止クランク角となる基準タイミングのエンジン回転速度（以下「基準回転速度」という）と、エンジンのロストルクとに基づいて前記目標軌道を算出し、
前記学習手段は、前記目標軌道情報として前記基準回転速度と前記ロストルクのずれ量を学習することを特徴とする請求項１乃至７のいずれかに記載のエンジン回転停止制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジン回転停止位置（停止クランク角）を制御する機能を備えたエンジン回転停止制御装置に関する発明である。
【背景技術】
【０００２】
近年、例えば、特許文献１（特開２００８−２１５２３０号公報）に記載されているように、エンジン自動停止・始動システム（アイドルストップシステム）を搭載した車両では、再始動性を向上させるために、エンジン停止時（アイドルストップ時）にエンジン回転停止位置（停止クランク角）を始動に適したクランク角範囲に制御することを目的として、エンジン回転が目標停止クランク角で停止するまでの回転挙動を目標軌道として算出し、エンジン回転を停止させる際に実エンジン回転挙動を目標軌道に合わせるように発電機（オルタネータ）の負荷トルクを制御するエンジン回転停止制御を行うようにしたものがある。具体的には、実エンジン回転挙動を目標軌道に合わせるように発電機の要求負荷トルクを算出し、発電機の負荷トルク特性（発電指令値とエンジン回転速度と負荷トルクとの関係）を用いて、現在のエンジン回転速度と要求負荷トルクに応じた発電指令値を算出し、この発電指令値で発電機の発電制御電流（フィールド電流）を制御して発電機の負荷トルクを制御するようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１５２３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、エンジン回転停止制御の際に、エンジン回転速度が発電機の発電限界回転速度以下に低下すると、発電機の負荷トルクがほとんど発生しなくなる（図３参照）。このような回転速度領域では、発電機の負荷トルクの影響をほとんど受けずにエンジン回転速度が低下してエンジン回転が停止するため、所定の基準タイミング（例えばＴＤＣ）を通過する際のエンジン回転速度に応じた停止クランク角でエンジン回転が停止する。
【０００５】
このような特性に着目して、本出願人は、基準タイミングのエンジン回転速度（基準タイミングを通過する際のエンジン回転速度）と停止クランク角との関係を用いて、停止クランク角が目標停止クランク角となる基準タイミングのエンジン回転速度を基準回転速度として求め、エンジンのロストルク（ポンピングロスやフリクションロスを合計したトルク）を考慮したエネルギ保存則の関係式を用いて、基準回転速度を初期値としてクランク角を溯る方向に目標軌道を設定するシステムを研究しているが、その研究過程で次のような新たな課題が判明した。
【０００６】
エンジンのオイル交換や経時変化等によってエンジンのフリクション等が変化すると、目標軌道の算出に用いる基準回転速度やロストルクも変化する。そこで、目標軌道の算出精度を確保するために、エンジンの完全暖機後にエンジン回転停止制御によってエンジン回転速度が発電機の発電限界回転速度以下に低下したときの実エンジン回転挙動に基づいて基準回転速度の学習値とロストルクのずれ量の学習値を算出して記憶することで、基準回転速度とロストルクのずれ量を学習するシステムを研究している。
【０００７】
しかし、大気圧やエンジン温度（暖機状態）が変化すると、ポンピングロスやフリクションロスが変化して、基準回転速度やロストルクも変化する。このため、例えば、平地でエンジン回転停止制御が実行されて基準回転速度とロストルクのずれ量を学習した後、一度もエンジン回転停止制御が実行されずに高地へ移動したときにエンジン回転停止制御が実行される場合には、大気圧の変化により実際の基準回転速度やロストルクのずれ量が変化しているにも拘らず、平地で学習した基準回転速度の学習値とロストルクのずれ量の学習値をそのまま用いて目標軌道を算出することになるため、その後、学習が何回か実行されて基準回転速度やロストルクのずれ量の学習値が真値（実際の基準回転速度やロストルクのずれ量）に近付くまでは、目標軌道を精度良く設定することができず、エンジン回転停止制御の精度が低下するという問題がある。尚、この問題は、平地から高地に移動した場合だけでなく、高地から平地に移動した場合にも同様に起こり得る。
【０００８】
また、エンジンの完全暖機後にエンジン回転停止制御が実行されて基準回転速度とロストルクのずれ量を学習した後、車両が駐車されてエンジン温度が低下した後にエンジンが始動されて、エンジンの暖機中（暖機前）にエンジン回転停止制御が実行される場合には、エンジン温度の変化により実際の基準回転速度やロストルクのずれ量が変化しているにも拘らず、エンジンの完全暖機後に学習した基準回転速度の学習値とロストルクのずれ量の学習値を用いて目標軌道を算出することになるため、目標軌道を精度良く設定することができず、エンジン回転停止制御の精度が低下するという問題がある。
【０００９】
そこで、本発明が解決しようとする課題は、大気圧やエンジン温度の変化による目標軌道の算出精度の低下を抑制することができ、エンジン回転停止制御の精度を向上させることができるエンジン回転停止制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、請求項１に係る発明は、エンジン回転が目標停止クランク角で停止するようにエンジン回転挙動の目標軌道を算出する目標軌道算出手段と、エンジン停止要求に応じてエンジン回転を停止させる際に実エンジン回転挙動を目標軌道に合わせるように発電機の負荷を制御するエンジン回転停止制御を実行する停止制御手段とを備えたエンジン回転停止制御装置において、エンジン回転停止制御が実行されたときの実エンジン回転挙動に基づいて目標軌道の算出に用いる情報（以下「目標軌道情報」という）の学習値を算出して記憶することで目標軌道情報を学習する学習手段と、大気圧を検出又は推定する大気圧取得手段と、この大気圧取得手段で検出又は推定した大気圧に応じて補正量を算出し、その補正量を用いて目標軌道情報の学習値を補正する学習値補正手段とを備え、目標軌道算出手段は、学習値補正手段で補正した目標軌道情報の学習値を用いて目標軌道を算出するようにしたものである。
【００１１】
この構成では、大気圧に応じた補正量を用いて目標軌道情報の学習値を補正することで、大気圧に応じて実際の目標軌道情報が変化するのに対応して、目標軌道情報の学習値を適正に補正して、目標軌道情報の学習値を真値（実際の目標軌道情報）に近付けることができ、この補正後の目標軌道情報の学習値を用いて目標軌道を算出することで、大気圧の変化による目標軌道の算出精度の低下を抑制することができ、エンジン回転停止制御の精度を向上させることができる。
【００１２】
本発明は、例えば、所定時間毎や所定走行距離毎に大気圧取得手段で検出又は推定した大気圧に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしても良いが、請求項２のように、エンジン停止要求が発生したときに大気圧取得手段で検出又は推定した大気圧（以下「エンジン停止要求時の大気圧」という）に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしても良い。このようにすれば、大気圧に応じて目標軌道情報の学習値を補正する回数を必要最小限にして制御回路の演算負荷を軽減しながら、エンジン停止要求が発生してエンジン回転停止制御が実行される際には、そのときの大気圧に応じて適正に補正した目標軌道情報の学習値を用いて目標軌道を精度良く算出することができる。
【００１３】
この場合、請求項３のように、前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差に応じて補正量を算出する又は今回のエンジン停止要求時の大気圧に応じて補正量を算出するようにしても良い。前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差に応じて補正量を算出する場合には、その補正量を用いて、前回の目標軌道情報の学習値を補正することで、目標軌道情報の学習値を適正に補正することができる。一方、今回のエンジン停止要求時の大気圧のみに応じて補正量を算出する場合には、その補正量を用いて、所定の基準大気圧（例えば平地での大気圧）で学習した目標軌道情報の学習値を補正することで、目標軌道情報の学習値を適正に補正することができる。
【００１４】
また、請求項４のように、エンジン回転停止制御が実行されたときの実エンジン回転挙動に基づいて目標軌道の算出に用いる情報（以下「目標軌道情報」という）の学習値を算出して記憶することで目標軌道情報を学習する学習手段と、エンジン温度情報を検出又は推定する温度情報取得手段と、この温度情報取得手段で検出又は推定したエンジン温度情報に応じて補正量を算出し、その補正量を用いて目標軌道情報の学習値を補正する学習値補正手段とを備え、目標軌道算出手段は、学習値補正手段で補正した目標軌道情報の学習値を用いて目標軌道を算出するようにしても良い。
【００１５】
この構成では、エンジン温度情報に応じた補正量を用いて目標軌道情報の学習値を補正することで、エンジン温度に応じて実際の目標軌道情報が変化するのに対応して、目標軌道情報の学習値を適正に補正して、目標軌道情報の学習値を真値（実際の目標軌道情報）に近付けることができ、この補正後の目標軌道情報の学習値を用いて目標軌道を算出することで、エンジン温度の変化による目標軌道の算出精度の低下を抑制することができ、エンジン回転停止制御の精度を向上させることができる。
【００１６】
本発明は、例えば、所定時間毎や所定走行距離毎に温度情報取得手段で検出又は推定したエンジン温度情報に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしても良いが、請求項５のように、エンジン停止要求が発生したときに温度情報取得手段で検出又は推定したエンジン温度情報に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしても良い。このようにすれば、エンジン温度情報に応じて目標軌道情報の学習値を補正する回数を必要最小限にして制御回路の演算負荷を軽減しながら、エンジン停止要求が発生してエンジン回転停止制御が実行される際には、そのときのエンジン温度に応じて適正に補正した目標軌道情報の学習値を用いて目標軌道を精度良く算出することができる。
【００１７】
また、請求項６のように、エンジン回転停止制御が実行されたときの実エンジン回転挙動に基づいて目標軌道の算出に用いる情報（以下「目標軌道情報」という）の学習値を算出して記憶することで目標軌道情報を学習する学習手段と、大気圧を検出又は推定する大気圧取得手段とエンジン温度情報を検出又は推定する温度情報取得手段のうちの少なくとも一方とを備え、学習手段は、大気圧取得手段で検出又は推定した大気圧と温度情報取得手段で検出又は推定したエンジン温度情報のうちの少なくとも一方に応じて目標軌道情報を学習する際のゲイン（学習ゲイン）を変化させるようにしても良い。
【００１８】
この構成では、大気圧やエンジン温度情報に応じて学習ゲインを変化させることで、大気圧やエンジン温度に応じて実際の目標軌道情報が変化するのに対応して、学習ゲインを変化させて、目標軌道情報の学習値を速やかに真値（実際の目標軌道情報）に近付けることができ、この目標軌道情報の学習値を用いて目標軌道を算出することで、大気圧やエンジン温度の変化による目標軌道の算出精度の低下を抑制することができ、エンジン回転停止制御の精度を向上させることができる。
【００１９】
更に、請求項７のように、エンジン温度情報として水温と油温のうちの少なくとも一方を検出又は推定するようにしても良い。水温や油温は、エンジン温度を精度良く反映したパラメータとなるため、エンジン温度情報として用いることができる。
【００２０】
また、請求項８のように、エンジン回転の停止クランク角が目標停止クランク角となる基準タイミングのエンジン回転速度（以下「基準回転速度」という）と、エンジンのロストルクとに基づいて目標軌道を算出するシステムの場合には、目標軌道情報として基準回転速度とロストルクのずれ量を学習するようにすると良い。このようにすれば、基準回転速度とロストルクに基づいて目標軌道を算出するシステムにおいて、大気圧やエンジン温度の変化による目標軌道の算出精度の低下を抑制して、エンジン回転停止制御の精度を向上させることができる。
【図面の簡単な説明】
【００２１】
【図１】図１は本発明の実施例１におけるエンジン制御システムの概略構成を示す図である。
【図２】図２は目標軌道の算出方法を説明する図である。
【図３】図３はオルタネータ負荷特性を説明する図である。
【図４】図４はエンジン回転停止制御時の見掛上のオルタネータ負荷特性を説明する図である。
【図５】図５（ａ）は基準負荷トルクＴref(Ne(i))＝０に設定してエンジン回転停止制御を行った比較例を説明するタイムチャートであり、図５（ｂ）は基準負荷トルクＴref(Ne(i))を最大負荷の半分に設定してエンジン回転停止制御を行った実施例を説明するタイムチャートである。
【図６】図６はエンジンＥＣＵのエンジン回転停止制御機能を説明するブロック図である。
【図７】図７は負荷トルク特性のマップの一例を概略的に示す図である。
【図８】図８は制御全体の概要を説明するための図である。
【図９】図９はロストルクの学習方法を説明するための図である。
【図１０】図１０は基準回転速度の学習方法を説明するための図である。
【図１１】図１１はエネルギずれ量Δｅのマップの一例を概念的に示す図である。
【図１２】図１２は実施例１の学習値の補正を説明するタイムチャートである。
【図１３】図１３は実施例１の大気圧補正量のマップの一例を概念的に示す図である。
【図１４】図１４は実施例１の学習値補正ルーチンの処理の流れを説明するフローチャートである。
【図１５】図１５は目標軌道算出ルーチンの処理の流れを説明するフローチャートである。
【図１６】図１６はオルタＦ／Ｂ停止制御ルーチンの処理の流れを説明するフローチャートである。
【図１７】図１７は学習制御ルーチンの処理の流れを説明するフローチャートである。
【図１８】図１８はロストルク学習ルーチンの処理の流れを説明するフローチャートである。
【図１９】図１９は基準回転速度学習ルーチンの処理の流れを説明するフローチャートである。
【図２０】図２０は実施例２の学習値の補正を説明するタイムチャートである。
【図２１】図２１は実施例２の温度補正量のマップの一例を概念的に示す図である。
【図２２】図２２は実施例２の学習値補正ルーチンの処理の流れを説明するフローチャートである。
【図２３】図２３は実施例３の学習ゲイン変更ルーチンの処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明を実施するための形態を具体化した幾つかの実施例を説明する。
【実施例１】
【００２３】
本発明の実施例１を図１乃至図１９に基づいて説明する。
まず、図１に基づいてエンジン制御システム全体の構成を概略的に説明する。
エンジン１１の吸気ポート１２に接続された吸気管１３の途中には、スロットルバルブ１４が設けられ、このスロットルバルブ１４の開度（スロットル開度）がスロットル開度センサ１５によって検出される。また、スロットルバルブ１４の下流側には、吸気管圧力を検出する吸気管圧力センサ１８が設けられ、各気筒の吸気ポート１２の近傍には、それぞれ吸気ポート１２に向けて燃料を噴射する燃料噴射弁１９が取り付けられている。
【００２４】
一方、エンジン１１の排気ポート２０に接続された排気管２１の途中には、排気ガス浄化用の触媒２２が設置されている。エンジン１１のシリンダブロックには、冷却水温を検出する冷却水温センサ２３が設けられている。エンジン１１のクランク軸２４に取り付けられたシグナルロータ２５の外周に対向してクランク角センサ２６が設置され、このクランク角センサ２６からシグナルロータ２５の回転に同期して所定クランク角毎（例えば３０℃Ａ毎）にクランクパルス信号が出力される。また、エンジン１１のカム軸２７に取り付けられたシグナルロータ２８の外周に対向してカム角センサ２９が設置され、このカム角センサ２９からシグナルロータ２８の回転に同期して所定のカム角でカムパルス信号が出力される。更に、大気圧センサ３８（大気圧取得手段）によって大気圧が検出される。
【００２５】
また、オルタネータ３３（発電機）には、クランク軸２４に連結されたクランクプーリ３４の回転がベルト３５を介して伝達される。これにより、エンジン１１の動力でオルタネータ３３が回転駆動されて発電するようになっている。このオルタネータ３３の発電制御電流（フィールド電流）をデューティ制御することで、オルタネータ３３の負荷を制御することができる。
【００２６】
上述した各種センサの出力は、エンジン制御回路（以下「エンジンＥＣＵ」と表記する）３０に入力される。このエンジンＥＣＵ３０は、マイクロコンピュータを主体として構成され、各種センサで検出したエンジン運転状態に応じて、燃料噴射弁１９の燃料噴射量や燃料噴射時期、点火プラグ３１の点火時期を制御すると共に、エンジン運転中に所定の自動停止条件（例えばアクセル全閉、ブレーキ操作中、アイドル運転中等の条件）が成立してエンジン停止要求が発生したときに、燃焼（燃料噴射及び／又は点火）を停止させてエンジン回転を停止させるアイドルストップを実行し、このアイドルストップによるエンジン回転停止中（アイドルストップ中）に運転者が車両発進のための準備操作（ブレーキ解除、シフトレバーのドライブレンジへの操作等）や発進操作（アクセル踏み込み等）が行われたとき、或は車載機器の制御システムからの始動要求が発生したときに、所定の自動始動条件が成立してスタータ（図示せず）に通電してエンジン１１をクランキングして再始動させる。
【００２７】
更に、エンジンＥＣＵ３０は、後述する図１４乃至図１９の各ルーチンを実行することで、エンジン回転が目標停止クランク角で停止するようにエンジン回転挙動の目標軌道を算出する目標軌道算出手段として機能すると共に、エンジン停止要求に応じてエンジン回転を停止させる際に実エンジン回転挙動を目標軌道に合わせるように制御するエンジン回転停止制御を実行する停止制御手段として機能する。本実施例では、エンジン回転停止制御として、実エンジン回転挙動を目標軌道に合わせるようにオルタネータ３３の負荷をフィードバック制御するオルタＦ／Ｂ停止制御を実行する。更に、エンジン１１の燃焼停止前（燃焼中）に実エンジン回転挙動を目標軌道に合わせるように点火時期をフィードバック制御する点火Ｆ／Ｂ停止制御を実行するようにしても良い。
【００２８】
エンジン回転停止制御（オルタＦ／Ｂ停止制御）の際に、エンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下すると、オルタネータ３３の負荷トルクがほとんど発生しなくなる（図３参照）。このような回転速度領域では、オルタネータ３３の負荷トルクの影響をほとんど受けずにエンジン回転速度が低下してエンジン回転が停止するため、所定の基準タイミングを通過する際のエンジン回転速度に応じた停止クランク角でエンジン回転が停止する。ここで、基準タイミングは、エンジン回転速度がオルタネータ３３の発電限界回転速度以下の回転速度領域でクランク角が所定位置（例えばＴＤＣ）となるタイミングである。
【００２９】
このような特性に着目して、本実施例では、基準タイミングのエンジン回転速度（基準タイミングを通過する際のエンジン回転速度）と停止クランク角との関係を用いて、停止クランク角が目標停止クランク角となる基準タイミングのエンジン回転速度を基準回転速度として求め、目標軌道は、この基準回転速度に至るまでのクランク角と目標エンジン回転速度との関係を所定クランク角間隔で算出してテーブル（図示せず）に割り付けたものである。この目標軌道は、例えば、ロストルクを考慮したエネルギ保存則の関係式を用いて、基準回転速度を初期値としてクランク角を溯る方向に所定クランク角Δθ毎（例えばＴＤＣ毎）に算出される（図２参照）。
【００３０】
エネルギ保存則の関係式は次式で表される。
Ｎe(i+1)2 ＝Ｎe(i)2 ＋２／Ｊ×｛Ｔloss−Ｔref(Ne(i))｝×Δθ
ここで、Ｎe(i+1)は、現時点(i) よりも所定クランク角Δθ前の時点(i+1) のエンジン回転速度であり、Ｎe(i)は現時点(i) のエンジン回転速度である。また、Ｊはエンジン１１の慣性モーメントである。Ｔlossはポンピングロスとフリクションロスを合計したロストルクであり、Ｔref(Ne(i))は現時点(i) のエンジン回転速度Ｎe(i)におけるオルタネータ３３の基準負荷トルクである。
【００３１】
上記エネルギ保存則の関係式において、「Ｔloss−Ｔref(Ne(i))」は、ポンピングロスとフリクションロスとオルタネータ３３の基準負荷トルクＴref(Ne(i))を合計したロストルクに相当する。
【００３２】
本実施例では、オルタネータ３３の基準負荷トルクＴref(Ne(i))は、図３に示すようにオルタネータ３３の制御可能な最大負荷の半分（１／２）に設定されている。このようにすれば、オルタネータ３３は、モータジェネレータとは異なり、アシストトルクを出力できないという事情があっても、仮想的にオルタネータ３３の負荷トルクを正負両方向に制御することが可能となり（基準負荷Ｔref 以下の負荷トルクを仮想的に負の負荷トルクとし、基準負荷Ｔref 以上の負荷トルクを正の負荷トルクとしてオルタネータ３３の負荷トルクを制御することが可能となり）、目標軌道へのエンジン回転挙動の追従性を向上することができる。
【００３３】
尚、オルタネータ３３の基準負荷トルクＴref(Ne(i))は、最大負荷の半分（１／２）に限定されず、例えば、最大負荷の１／３、１／４、２／３、３／４等であっても良く、要は、オルタネータ３３の制御可能な最大負荷よりも小さく、０よりも大きい適宜の負荷を基準負荷トルクＴref(Ne(i))に設定すれば良い。
０＜Ｔref(Ne(i))＜最大負荷
【００３４】
図５（ａ）は、基準負荷トルクＴref(Ne(i))＝０に設定してエンジン回転停止制御（オルタＦ／Ｂ停止制御）を行った比較例を示している。この比較例では、オルタネータ３３の負荷トルクを正方向にしか制御できないため、実エンジン回転挙動がオーバーシュートした場合は、実エンジン回転挙動を目標軌道に一致させることができなくなる。
【００３５】
これに対して、本実施例のように、オルタネータ３３の基準負荷トルクＴref(Ne(i))を最大負荷よりも小さい適宜の負荷に設定すれば、図４に示すように、仮想的にオルタネータ３３の負荷トルクを正負両方向に制御することが可能となるため、図５（ｂ）に示すように、実回転挙動がオーバーシュートした場合でも、実回転挙動を目標軌道に一致させることができる。
【００３６】
更に、本実施例では、図６に示すように、目標軌道を算出する際に、オルタネータ３３の基準負荷トルクＴref(Ne(i))に応じた目標軌道を算出し、エンジン回転停止制御の実行中は、エンジン回転速度Ｎe(i)に応じた基準負荷トルクＴref(Ne(i))を算出すると共に、現時点(i) のクランク角θ(i) における目標エンジン回転速度と実エンジン回転速度との偏差を小さくするようにフィードバック負荷トルクを算出して、このフィードバック負荷トルクに基準負荷トルクＴref(Ne(i))を加算して要求負荷トルクＴalt を求める（実際には、この要求負荷トルクＴalt にプーリ比Ｒatioを乗算して要求軸トルクＴalt.final に変換する）。
【００３７】
この後、図７に示すオルタネータ３３の負荷トルク特性を用いて、オルタネータ３３の要求負荷トルクＴalt （要求軸トルクＴalt.final ）とエンジン回転速度Ｎe （又はエンジン回転速度Ｎe にプーリ比Ｒatioを乗算して求めたオルタネータ３３の回転速度Ｎalt ）に応じた発電指令値（デューティＤuty ）を算出する。この際、要求負荷トルクＴalt とエンジン回転速度Ｎe （又はオルタネータ３３の回転速度Ｎalt ）から発電指令値（デューティＤuty ）を直接算出するようにしても良いが、要求負荷トルクＴalt とエンジン回転速度Ｎe （又はオルタネータ３３の回転速度Ｎalt ）から要求フィールド電流（要求励磁電流）を算出し、この要求フィールド電流から発電指令値（デューティＤuty ）を算出するようにしても良い。
【００３８】
尚、図７に示す負荷トルク特性は、オルタネータ３３の出力電圧が所定値（例えば１３．５Ｖ）で一定の場合の特性であり、出力電圧毎に同様の特性が設定されている。この発電指令値（デューティＤuty ）に基づいてオルタネータ３３の発電制御電流（フィールド電流）を制御してオルタネータ３３の負荷トルクを制御する。
【００３９】
このようなオルタネータ３３の負荷トルクの制御を、エンジン回転速度がオルタネータ３３の発電限界回転速度Ｎelow（図３参照）以下に低下するまで所定クランク角間隔で周期的に実行することで、実エンジン回転挙動を目標軌道に合わせるようにオルタネータ３３の負荷トルクをフィードバック制御するエンジン回転停止制御（オルタＦ／Ｂ停止制御）を行う。
【００４０】
エンジン回転停止制御の際に、エンジンＥＣＵ３０は、所定クランク角周期で発電指令値を演算し、この発電指令値をＣＡＮ（Controller Area Network ）通信等により所定時間周期で電源系ＥＣＵ３６（図１参照）に送信する。更に、電源系ＥＣＵ３６は、受信した発電指令値をＬＩＮ（Local Interconnect Network）通信等により所定時間周期でオルタネータ３３に送信する。
【００４１】
ところで、エンジン１１のオイル交換や経時変化等によってエンジン１１のフリクション等が変化すると、目標軌道の算出に用いる基準回転速度やロストルクも変化する。そこで、本実施例では、目標軌道の算出精度を確保するために、図８に示すように、実エンジン回転挙動を目標軌道に合わせるようにオルタネータ３３の負荷トルクをフィードバック制御するエンジン回転停止制御を実行し、このエンジン回転停止制御によってエンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下したときの実エンジン回転挙動に基づいて基準回転速度の学習値とロストルクのずれ量の学習値を算出して記憶することで、基準回転速度とロストルクのずれ量を学習し、その基準回転速度の学習値と、ロストルクのずれ量の学習値から求めたロストルクの学習値を用いて目標軌道を算出する。
以下、ロストルクと基準回転速度の学習方法について説明する。
【００４２】
［ロストルクの学習方法］
図９に示すように、エンジン回転停止制御によってエンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下したときに、基準タイミング（例えば最初のＴＤＣ）の実エンジン回転速度Ｎe1を検出した後、所定の検出タイミング（例えば基準タイミングの次のＴＤＣ）の実エンジン回転速度Ｎe2を検出する。基準タイミングの実エンジン回転速度Ｎe1と、検出タイミングの実エンジン回転速度Ｎe2と、ロストルクＴlossとの関係は、エネルギ保存則を用いて、下記（１）式のように表すことができる。
【００４３】
【数１】
2012082808.tif 000003
【００４４】
上記（１）式によりロストルクＴlossを算出する。
また、エンジンＥＣＵ３０のバックアップＲＡＭ３７等の書き換え可能な不揮発性メモリ（エンジンＥＣＵ３０の電源オフ中でも記憶データを保持する書き換え可能なメモリ）に記憶されているロストルクの学習値Ｔlossの記憶データを、前回のロストルクの学習値Ｔloss(i-1) として読み込む。
【００４５】
この後、今回算出したロストルクＴlossと、前回のロストルクの学習値Ｔloss(i-1) を用いて、次式により今回のロストルクのずれ量の学習値ΔＴloss(i) を算出する。
ΔＴloss(i) ＝Ｔloss−Ｔloss(i-1)
【００４６】
この後、バックアップＲＡＭ３７等の不揮発性メモリに記憶されているロストルクのずれ量の学習値ΔＴlossの記憶データを、今回算出したロストルクのずれ量の学習値ΔＴloss(i) の算出データで更新する。
【００４７】
この後、目標軌道の算出に用いるロストルクの学習値Ｔloss(i) を算出する場合には、前回のロストルクの学習値Ｔloss(i-1) と、学習ゲインＧain と、バックアップＲＡＭ３７等の不揮発性メモリに記憶されているロストルクのずれ量の学習値ΔＴloss（又は後述する補正後のロストルクのずれ量の学習値ΔＴloss）を用いて、次式により今回のロストルクの学習値Ｔloss(i) を算出する。
Ｔloss(i) ＝Ｔloss(i-1) ＋Ｇain ×ΔＴloss
【００４８】
この後、バックアップＲＡＭ３７等の不揮発性メモリに記憶されているロストルクの学習値Ｔlossの記憶データを、今回算出したロストルクの学習値Ｔloss(i) の算出データで更新する。
【００４９】
［基準回転速度の学習方法］
図１０に示すように、エンジン回転停止制御によってエンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下したときに、基準タイミング（例えば最初のＴＤＣ）の実エンジン回転速度Ｎe1を検出した後、エンジン回転が停止した停止クランク角Ｘを検出し、停止クランク角Ｘと目標停止クランク角Ｘtgt とを用いて、次式により停止位置ずれ量ΔＸを算出する。
ΔＸ＝Ｘ−Ｘtgt
【００５０】
この後、図１１に示すエネルギずれ量Δｅのマップを参照して、停止位置ずれ量ΔＸに応じたエネルギずれ量Δｅを算出する。ここで、エネルギずれ量Δｅは、基準点（基準タイミングで基準回転速度となる点）に対するエネルギずれ量であり、エネルギずれ量Δｅのマップは、予め試験データや設計データ等に基づいて作成され、エンジンＥＣＵ３０のＲＯＭに記憶されている。
【００５１】
また、バックアップＲＡＭ３７等の不揮発性メモリに記憶されている基準回転速度の学習値Ｎetgtの記憶データを、前回の基準回転速度の学習値Ｎetgt(i-1) として読み込む。
この後、前回の基準回転速度の学習値Ｎetgt(i-1) と、エネルギずれ量Δｅと、ロストルク学習分の補正係数αを用いて、エンジン回転が停止クランク角Ｘで停止する基準タイミングの推定エンジン回転速度Ｎeestを下記（２）式により算出する。
【００５２】
【数２】
2012082808.tif 000004
【００５３】
この後、前回の基準回転速度の学習値Ｎetgt(i-1) と、学習ゲインＧain と、基準タイミングの実エンジン回転速度Ｎe1及び推定エンジン回転速度Ｎeestを用いて、次式により今回の基準回転速度の学習値Ｎetgt(i) を算出する。
Ｎetgt(i) ＝Ｎetgt(i-1) ＋Ｇain ×（Ｎe1−Ｎeest）
【００５４】
この後、バックアップＲＡＭ３７等の不揮発性メモリに記憶されている基準回転速度の学習値Ｎetgtの記憶データを、今回算出した基準回転速度の学習値Ｎetgt(i) の算出データで更新する。
【００５５】
ところで、大気圧やエンジン温度（暖機状態）が変化すると、ポンピングロスやフリクションロスが変化して、基準回転速度やロストルクも変化する。このため、例えば、図１２に示すように、平地でエンジン回転停止制御が実行されて基準回転速度とロストルクのずれ量（以下これらを「目標軌道情報」と総称する）を学習した後、一度もエンジン回転停止制御が実行されずに高地へ移動したときに、エンジン停止要求（アイドルストップ要求）が発生してエンジン回転停止制御が実行される場合には、図１２（ａ）に示す比較例のように、大気圧の変化により実際の目標軌道情報（目標軌道情報の真値）が変化しているにも拘らず、平地で学習した目標軌道情報の学習値をそのまま用いて目標軌道を算出するシステムでは、その後、学習が何回か実行されて目標軌道情報の学習値が真値に近付くまでは、目標軌道を精度良く設定することができず、エンジン回転停止制御の精度が低下するという問題がある。尚、この問題は、平地から高地に移動した場合だけでなく、高地から平地に移動した場合にも同様に起こり得る。
【００５６】
この対策として、本実施例１では、図１２（ｂ）に示すように、エンジン停止要求が発生したときに大気圧センサ３８で検出した大気圧に基づいて大気圧補正量を算出し、その大気圧補正量を用いて目標軌道情報の学習値を補正することで、大気圧に応じて実際の目標軌道情報が変化するのに対応して、目標軌道情報の学習値を適正に補正して、目標軌道情報の学習値を真値に近付ける。この補正後の目標軌道情報の学習値を用いて目標軌道を算出することで、大気圧の変化による目標軌道の算出精度の低下を抑制して、エンジン回転停止制御の精度を確保する。
【００５７】
具体的には、エンジン停止要求が発生したときに大気圧センサ３８で検出した大気圧をエンジン停止要求時の大気圧として検出する。この後、図１３に示す大気圧補正量のマップを参照して、前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差（大気圧差）に応じた大気圧補正量を算出する。この大気圧補正量のマップは、予め試験データや設計データ等に基づいて作成され、エンジンＥＣＵ３０のＲＯＭに記憶されている。尚、図１３は、ロストルクのずれ量の学習値を補正するための大気圧補正量のマップの一例を示している。
【００５８】
この後、大気圧補正量を用いて、前回の目標軌道情報の学習値（バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値）を補正して、補正後の目標軌道情報の学習値を求める。
【００５９】
補正後の目標軌道情報の学習値＝前回の目標軌道情報の学習値＋大気圧補正量
この補正後の目標軌道情報の学習値を用いて目標軌道を算出する。尚、バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値の記憶データは、更新せずにそのまま保持するようにしても良いし、或は、補正後の目標軌道情報の学習値で更新するようにしても良い。
【００６０】
以上説明した本実施例のエンジン回転停止制御及びそれに関連する制御は、エンジンＥＣＵ３０によって図１４乃至図１９の各ルーチンに従って実行される。以下、これら各ルーチンの処理内容を説明する。
【００６１】
［学習値補正ルーチン］
図１４に示す学習値補正ルーチンは、エンジンＥＣＵ３０の電源オン中に所定周期（所定クランク角周期）で繰り返し実行され、特許請求の範囲でいう学習値補正手段としての役割果たす。尚、実際には、ロストルクのずれ量の学習値補正ルーチンと基準回転速度の学習値補正ルーチンを別々に実行するが、以下の説明では、基準回転速度とロストルクのずれ量を「目標軌道情報」と総称して説明する。
【００６２】
本ルーチンが起動されると、まず、ステップ１０１で、エンジン停止要求（アイドルストップ要求）が発生したか否かを判定し、エンジン停止要求が発生していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【００６３】
その後、上記ステップ１０１で、エンジン停止要求が発生したと判定された時点で、ステップ１０２に進み、大気圧センサ３８で検出した現在の大気圧をエンジン停止要求時の大気圧として検出する。
【００６４】
この後、ステップ１０３に進み、エンジン停止要求時の大気圧（現在の大気圧）が所定の基準大気圧（例えば平地での大気圧）相当であるか否かを、例えば、エンジン停止要求時の大気圧と基準大気圧との差の絶対値が所定値以下であるか否かによって判定する。
【００６５】
このステップ１０３で、エンジン停止要求時の大気圧が基準大気圧相当であると判定された場合には、目標軌道情報の学習値を補正する必要が無いと判断して、ステップ１０４に進み、前回の目標軌道情報の学習値（バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値）を目標軌道の算出に用いる。
【００６６】
一方、上記ステップ１０３で、エンジン停止要求時の大気圧が基準大気圧相当ではないと判定された場合には、目標軌道情報の学習値を補正する必要が有ると判断して、ステップ１０５に進み、図１３の大気圧補正量のマップを参照して、前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差（大気圧差）に応じた大気圧補正量を算出する。
【００６７】
この後、ステップ１０６に進み、大気圧補正量を用いて、前回の目標軌道情報の学習値（バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値）を補正して、補正後の目標軌道情報の学習値を求める。
【００６８】
補正後の目標軌道情報の学習値＝前回の目標軌道情報の学習値＋大気圧補正量
この後、ステップ１０７に進み、補正後の目標軌道情報の学習値を目標軌道の算出に用いる。
【００６９】
上記ステップ１０４又は上記ステップ１０７で、目標軌道の算出に用いる目標軌道情報（基準回転速度とロストルクのずれ量）を設定した後、ステップ１０８に進み、後述する図１５の目標軌道算出ルーチンを実行して、目標軌道を算出する。
【００７０】
［目標軌道算出ルーチン］
図１５に示す目標軌道算出ルーチンは、前記図１４の学習値補正ルーチンのステップ１０８で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ２０１で、目標軌道算出完了フラグが目標軌道の算出前を意味する「０」にセットされているか否かを判定し、この目標軌道算出完了フラグが目標軌道算出完了を意味する「１」にセットされていれば、以降の処理を行うことなく、本ルーチンを終了する。
【００７１】
一方、このステップ２０１で、目標軌道算出完了フラグ＝０（目標軌道の算出前）と判定されれば、ステップ２０２に進み、ロストルクＴlossと、オルタネータ３３の基準負荷トルクＴref(Ne(i))を用いて、次式で表されるエネルギ保存則の関係式を用いて次の時点(i+1) の目標エンジン回転速度Ｎe(i+1)の二乗を算出する。
【００７２】
Ｎe(i+1)2 ＝Ｎe(i)2 ＋２／Ｊ×｛Ｔloss−Ｔref(Ne(i))｝×Δθ
ここで、Ｊはエンジン１１の慣性モーメント、Ｔlossはポンピングロスとフリクションロスを合計したロストルクである。上記エネルギ保存則の関係式において、「Ｔloss−Ｔref(Ne(i))」は、ポンピングロスとフリクションロスとオルタネータ３３の基準負荷トルクＴref(Ne(i))を合計したロストルクに相当する。
【００７３】
初期値は、ｉ＝０、θ(0) ＝基準タイミングのクランク角、Ｎe(0)＝基準回転速度である。この基準回転速度Ｎe(0)は、停止クランク角が目標停止クランク角となる基準タイミングのエンジン回転速度である。目標軌道は、基準回転速度Ｎe(0)を初期値としてクランク角を溯る方向に所定クランク角Δθ毎（例えばＴＤＣ毎）に算出する。
【００７４】
この後、ステップ２０３に進み、目標エンジン回転速度Ｎe(i+1)の二乗がエンジン回転停止制御を実行可能な最大エンジン回転速度Ｎemaxの二乗を越えたか否かを判定し、まだ最大エンジン回転速度Ｎemaxの二乗を越えていなければ、ステップ２０４に進み、目標軌道算出完了フラグを「０」に維持する（セットし直す）。
【００７５】
この後、ステップ２０６に進み、目標エンジン回転速度Ｎe(i+1)の二乗の平方根を算出して目標エンジン回転速度Ｎe(i+1)を求め、これを目標軌道のテーブル（図示せず）に割り付けて、本ルーチンを終了する。尚、エンジンＥＣＵ３０の演算負荷を低減するため、エンジン回転速度の二乗をそのままテーブルに割り付けても良い。目標軌道のテーブルは、エンジンＥＣＵ３０のメモリに記憶される。
【００７６】
以上のような処理を繰り返して、基準回転速度Ｎe(0)を初期値としてクランク角を溯る方向に所定クランク角毎（例えばＴＤＣ毎）に目標エンジン回転速度Ｎe(i+1)の二乗を算出して目標軌道のテーブルに目標エンジン回転速度Ｎe(i+1)を割り付ける処理を繰り返す。そして、上記ステップ２０３で、目標エンジン回転速度Ｎe(i+1)の二乗がエンジン回転停止制御を実行可能な最大エンジン回転速度Ｎemaxの二乗を越えたと判定された時点で、ステップ２０５に進み、目標軌道算出完了フラグを目標軌道算出完了を意味する「１」にセットして、ステップ２０６に進み、最後の目標エンジン回転速度Ｎe(i+1)の二乗の平方根を算出して目標エンジン回転速度Ｎe(i+1)を求め、これを目標軌道のテーブルに割り付けて、本ルーチンを終了する。
【００７７】
［オルタＦ／Ｂ停止制御ルーチン］
図１６に示すオルタＦ／Ｂ停止制御ルーチンは、エンジンＥＣＵ３０の電源オン中に所定周期（所定クランク角周期）で繰り返し実行される。本ルーチンが起動されると、まず、ステップ３０１で、エンジン停止要求（アイドルストップ要求）が発生したか否かを判定し、エンジン停止要求が発生していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【００７８】
その後、上記ステップ３０１で、エンジン停止要求が発生したと判定された時点で、ステップ３０２に進み、現在のクランク角θとエンジン回転速度Ｎe を算出する。この後、ステップ３０３に進み、現在のクランク角θがオルタネータ３３の負荷トルクの制御タイミング（例えばＴＤＣ）であるか否かを判定し、オルタネータ３３の負荷トルクの制御タイミングでなければ、以降の処理を行うことなく、本ルーチンを終了する。
【００７９】
上記ステップ３０３で、現在のクランク角θがオルタネータ３３の負荷トルクの制御タイミングであると判定されれば、ステップ３０４に進み、現在のエンジン回転速度Ｎe がエンジン回転停止制御を実行可能な最大エンジン回転速度Ｎemaxよりも低いか否かを判定し、現在のエンジン回転速度Ｎe が最大エンジン回転速度Ｎemax以上であれば、以降の処理を行うことなく、本ルーチンを終了する。
【００８０】
その後、上記ステップ３０４で、現在のエンジン回転速度Ｎe が最大エンジン回転速度Ｎemaxよりも低いと判定されれば、ステップ３０５に進み、エンジン１１が燃焼中であるか否かを判定する。このステップ３０５で、エンジン停止要求が発生した直後でエンジン１１がまだ燃焼中であると判定されれば、ステップ３０６に進み、エンジン回転停止制御を開始する際のオルタネータ３３の要求負荷トルクＴalt を初期値（例えば基準負荷トルクＴref(Ne) ）に設定する。
Ｔalt ＝Ｔref(Ne)
【００８１】
その後、上記ステップ３０５で、エンジン１１の燃焼が停止したと判定された場合には、ステップ３０７に進み、目標軌道のテーブルを参照して、今回の制御タイミングに対応した目標エンジン回転速度Ｎetg を求める。
【００８２】
この後、ステップ３０８に進み、現在の実エンジン回転速度Ｎe と目標エンジン回転速度Ｎetg とのエネルギ差分ΔＥを次式により算出する。
ΔＥ＝Ｊ／２×（Ｎe 2 −Ｎetg 2 ）
ここで、Ｊはエンジン１１の慣性モーメントである。
【００８３】
この後、ステップ３０９に進み、エネルギ差分ΔＥとオルタネータ３３の基準負荷トルクＴref(Ne) を用いて、次式により要求負荷トルクＴalt を算出する。
Ｔalt ＝Ｋ×ΔＥ／Δθ＋Ｔref(Ne)
ここで、「Ｋ×ΔＥ／Δθ」はフィードバック負荷トルクであり、Ｋはフィードバックゲイン、Δθはクランク角変化量である。
【００８４】
この後、ステップ３１０に進み、要求負荷トルクＴalt にプーリ比Ｒatioを乗算して、オルタネータ３３の要求軸トルクＴalt.final に変換する。
この後、ステップ３１１に進み、バッテリ電圧を検出した後、ステップ３１２に進み、バッテリ電圧毎に作成された複数の負荷トルク特性マップ（図７参照）の中から、現在のバッテリ電圧に対応する負荷トルク特性マップを選択して、現在の要求負荷トルクＴalt （要求軸トルクＴalt.final ）とエンジン回転速度Ｎe （又はオルタネータ３３の回転速度Ｎalt ）に応じた発電指令値（デューティＤuty ）を算出する。
【００８５】
この発電指令値（デューティＤuty ）に基づいてオルタネータ３３の発電制御電流（フィールド電流）を制御してオルタネータ３３の負荷トルクを制御することで、実エンジン回転挙動を目標軌道に合わせるようにオルタネータ３３の負荷トルクをフィードバック制御するオルタＦ／Ｂ停止制御を行う。
【００８６】
［学習制御ルーチン］
図１７に示す学習制御ルーチンは、エンジンＥＣＵ３０の電源オン中に所定周期（所定クランク角周期）で繰り返し実行され、特許請求の範囲でいう学習手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ４０１で、エンジン停止要求（アイドルストップ要求）が発生したか否かを判定し、エンジン停止要求が発生していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【００８７】
その後、上記ステップ４０１で、エンジン停止要求が発生したと判定された時点で、ステップ４０２に進み、学習実行条件が成立しているか否かを、例えば、エンジン１１が暖機状態（冷却水温が所定値以上）であるか否か等によって判定し、学習実行条件が成立していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【００８８】
一方、上記ステップ４０２で、学習実行条件が成立していると判定された場合には、ステップ４０３に進み、後述する図１８のロストルク学習ルーチンを実行することで、エンジン回転停止制御によってエンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下したときの実エンジン回転挙動に基づいてロストルクのずれ量を学習する。更に、次のステップ４０４で、後述する図１９の基準回転速度学習ルーチンを実行することで、エンジン回転停止制御によってエンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下したときの実エンジン回転挙動に基づいて基準回転速度を学習する。
【００８９】
［ロストルク学習ルーチン］
図１８に示すロストルク学習ルーチンは、前記図１７の学習制御ルーチンのステップ４０３で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ５０１で、エンジン回転停止制御によってエンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下したときに、現在のクランク角が基準タイミング（例えば最初のＴＤＣ）であるか否かを判定し、基準タイミングであると判定された時点で、ステップ５０２に進み、基準タイミングの実エンジン回転速度Ｎe1を検出する。
【００９０】
この後、ステップ５０３に進み、現在のクランク角が検出タイミング（例えば基準タイミングの次のＴＤＣ）であるか否かを判定し、検出タイミングであると判定された時点で、ステップ５０４に進み、検出タイミングの実エンジン回転速度Ｎe2を検出する。
【００９１】
この後、ステップ５０５に進み、基準タイミングの実エンジン回転速度Ｎe1と、検出タイミングの実エンジン回転速度Ｎe2を用いて、前記（１）式によりロストルクＴlossを算出した後、ステップ５０６に進み、エンジンＥＣＵ３０のバックアップＲＡＭ３７等の不揮発性メモリに記憶されているロストルクの学習値Ｔlossの記憶データを、前回のロストルクの学習値Ｔloss(i-1) として読み込む。
【００９２】
この後、ステップ５０７に進み、今回算出したロストルクＴlossと、前回のロストルクの学習値Ｔloss(i-1) を用いて、次式により今回のロストルクのずれ量の学習値ΔＴloss(i) を算出する。
ΔＴloss(i) ＝Ｔloss−Ｔloss(i-1)
【００９３】
この後、ステップ５０８に進み、バックアップＲＡＭ３７等の不揮発性メモリに記憶されているロストルクのずれ量の学習値ΔＴlossの記憶データを、今回算出したロストルクのずれ量の学習値ΔＴloss(i) の算出データで更新する。
【００９４】
［基準回転速度学習ルーチン］
図１９に示す基準回転速度学習ルーチンは、前記図１７の学習制御ルーチンのステップ４０４で実行されるサブルーチンである。本ルーチンが起動されると、まず、ステップ６０１で、エンジン回転停止制御によってエンジン回転速度がオルタネータ３３の発電限界回転速度以下に低下したときに、現在のクランク角が基準タイミング（例えば最初のＴＤＣ）であるか否かを判定し、基準タイミングであると判定された時点で、ステップ６０２に進み、基準タイミングの実エンジン回転速度Ｎe1を検出する。
【００９５】
この後、ステップ６０３に進み、エンジン回転が停止したか否かを判定し、エンジン回転が停止したと判定された時点で、ステップ６０４に進み、エンジン回転が停止した停止クランク角Ｘを検出する。
【００９６】
この後、ステップ６０５に進み、停止クランク角Ｘと目標停止クランク角Ｘtgt とを用いて、次式により停止位置ずれ量ΔＸを算出する。
ΔＸ＝Ｘ−Ｘtgt
【００９７】
この後、ステップ６０６に進み、図１１に示すエネルギずれ量Δｅのマップを参照して、停止位置ずれ量ΔＸに応じたエネルギずれ量Δｅを算出した後、ステップ６０７に進み、エンジンＥＣＵ３０のバックアップＲＡＭ３７等の不揮発性メモリに記憶されている基準回転速度の学習値Ｎetgtの記憶データを、前回の基準回転速度の学習値Ｎetgt(i-1) として読み込む。
【００９８】
この後、ステップ６０８に進み、前回の基準回転速度の学習値Ｎetgt(i-1) と、エネルギずれ量Δｅと、ロストルク学習分の補正係数αを用いて、エンジン回転が停止クランク角Ｘで停止する基準タイミングの推定エンジン回転速度Ｎeestを前記（２）式により算出する。
【００９９】
この後、ステップ６０９に進み、前回の基準回転速度の学習値Ｎetgt(i-1) と、学習ゲインＧain と、基準タイミングの実エンジン回転速度Ｎe1及び推定エンジン回転速度Ｎeestを用いて、次式により今回の基準回転速度の学習値Ｎetgt(i) を算出する。
Ｎetgt(i) ＝Ｎetgt(i-1) ＋Ｇain ×（Ｎe1−Ｎeest）
【０１００】
この後、ステップ６１０に進み、バックアップＲＡＭ３７等の不揮発性メモリに記憶されている基準回転速度の学習値Ｎetgtの記憶データを、今回算出した基準回転速度の学習値Ｎetgt(i) の算出データで更新する。
【０１０１】
以上説明した本実施例１では、エンジン停止要求が発生したときに大気圧センサ３８で検出した大気圧をエンジン停止要求時の大気圧として検出して、前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差（大気圧差）に応じた大気圧補正量を算出し、その大気圧補正量を用いて目標軌道情報（基準回転速度とロストルクのずれ量）の学習値を補正するようにしたので、大気圧に応じて実際の目標軌道情報が変化するのに対応して、目標軌道情報の学習値を適正に補正して、目標軌道情報の学習値を真値に近付けることができ、この補正後の目標軌道情報の学習値を用いて目標軌道を算出するようにしたので、大気圧の変化による目標軌道の算出精度の低下を抑制して、エンジン回転停止制御の精度を確保することができる。
【０１０２】
また、本実施例１では、エンジン停止要求が発生したときに大気圧センサ３８で検出した大気圧に基づいて大気圧補正量を算出して目標軌道情報の学習値を補正するようにしたので、大気圧に応じて目標軌道情報の学習値を補正する回数を必要最小限にしてエンジンＥＣＵ３０の演算負荷を軽減しながら、エンジン停止要求が発生してエンジン回転停止制御が実行される際には、そのときの大気圧に応じて適正に補正した目標軌道情報の学習値を用いて目標軌道を精度良く算出することができる。
【０１０３】
尚、上記実施例１では、前回のエンジン停止要求時の大気圧と今回のエンジン停止要求時の大気圧との差に応じて大気圧補正量を算出し、その補正量を用いて、前回の目標軌道情報の学習値を補正するようにしたが、これに限定されず、例えば、今回のエンジン停止要求時の大気圧のみに応じて大気圧補正量を算出し、その補正量を用いて、所定の基準大気圧（例えば平地での大気圧）で学習した目標軌道情報の学習値を補正するようにしても良い。
【０１０４】
また、上記実施例１では、エンジン停止要求時の大気圧が所定の基準大気圧（例えば平地での大気圧）相当であるか否かを判定し、エンジン停止要求時の大気圧が基準大気圧相当ではないと判定された場合に、大気圧に応じた補正量を用いて目標軌道情報の学習値を補正するようにしたが、これに限定されず、エンジン停止要求時の大気圧が基準大気圧であるか否かに拘らず、大気圧に応じた補正量を用いて目標軌道情報の学習値を補正するようにしても良い。
【０１０５】
また、上記実施例１では、エンジン停止要求が発生したときに大気圧センサ３８で検出した大気圧に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしたが、これ限定されず、例えば、所定時間毎や所定走行距離毎に大気圧センサ３８で検出した大気圧に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしても良い。
【０１０６】
また、上記実施例１では、大気圧センサ３８で大気圧を検出するようにしたが、これに限定されず、例えば、吸気管圧力センサ１８の出力等に基づいて大気圧を推定するようにしても良い。
【実施例２】
【０１０７】
次に、図２０乃至図２２を用いて本発明の実施例２を説明する。但し、前記実施例１と実質的に同一部分については説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【０１０８】
エンジン１１の完全暖機後にエンジン回転停止制御が実行されて目標軌道情報（基準回転速度とロストルクのずれ量）を学習した後、例えば、図２０に示すように、車両が駐車されてエンジン温度が低下した後にエンジン１１が始動されて、エンジン１１の暖機中（暖機前）にエンジン回転停止制御が実行される場合には、図２０（ａ）に示す比較例のように、エンジン温度（冷却水温）の変化により実際の目標軌道情報（目標軌道情報の真値）が変化しているにも拘らず、エンジン１１の完全暖機後に学習した目標軌道情報の学習値を用いて目標軌道を算出するシステムでは、目標軌道を精度良く設定することができず、エンジン回転停止制御の精度が低下するという問題がある。
【０１０９】
この対策として、本実施例２では、図２０（ｂ）に示すように、エンジン停止要求が発生したときに冷却水温センサ２３で検出した冷却水温（エンジン温度情報）に基づいて温度補正量を算出し、その温度補正量を用いて目標軌道情報の学習値を補正することで、エンジン温度に応じて実際の目標軌道情報が変化するのに対応して、目標軌道情報の学習値を適正に補正して、目標軌道情報の学習値を真値に近付ける。この補正後の目標軌道情報の学習値を用いて目標軌道を算出することで、エンジン温度の変化による目標軌道の算出精度の低下を抑制して、エンジン回転停止制御の精度を確保する。
【０１１０】
具体的には、エンジン停止要求が発生したときに冷却水温センサ２３で冷却水温を検出する。この後、図２１に示す温度補正量のマップを参照して、冷却水温に応じた温度補正量を算出する。この温度補正量のマップは、予め試験データや設計データ等に基づいて作成され、エンジンＥＣＵ３０のＲＯＭに記憶されている。尚、図２１は、ロストルクのずれ量の学習値を補正するための温度補正量のマップの一例を示している。
【０１１１】
この後、温度補正量を用いて、完全暖機後の目標軌道情報の学習値（バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値）を補正して、補正後の目標軌道情報の学習値を求める。
【０１１２】
補正後の目標軌道情報の学習値＝完全暖機後の目標軌道情報の学習値＋温度補正量
この補正後の目標軌道情報の学習値を用いて目標軌道を算出する。尚、バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値の記憶データは、更新せずにそのまま保持するようにしても良いし、或は、補正後の目標軌道情報の学習値で更新するようにしても良い。
【０１１３】
以下、本実施例２でエンジンＥＣＵ３０により実行される図２２の学習値補正ルーチンの処理内容を説明する。尚、実際には、ロストルクのずれ量の学習値補正ルーチンと基準回転速度の学習値補正ルーチンを別々に実行するが、以下の説明では、基準回転速度とロストルクのずれ量を「目標軌道情報」と総称して説明する。
【０１１４】
本ルーチンが起動されると、まず、ステップ７０１で、エンジン停止要求（アイドルストップ要求）が発生したか否かを判定し、エンジン停止要求が発生していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【０１１５】
その後、上記ステップ７０１で、エンジン停止要求が発生したと判定された時点で、ステップ７０２に進み、冷却水温センサ２３で現在の冷却水温を検出した後、ステップ７０３に進み、現在の冷却水温が完全暖機温度（例えば８０℃）よりも低いか否かによって、エンジン１１の暖機中であるか否かを判定する。
【０１１６】
このステップ７０３で、冷却水温が完全暖機温度以上である（エンジン１１の完全暖機後である）と判定された場合には、目標軌道情報の学習値を補正する必要が無いと判断して、ステップ７０４に進み、前回の目標軌道情報の学習値（バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値）を目標軌道の算出に用いる。
【０１１７】
一方、上記ステップ７０３で、冷却水温が完全暖機温度よりも低い（エンジン１１の暖機中である）と判定された場合には、目標軌道情報の学習値を補正する必要が有ると判断して、ステップ７０５に進み、図２１の温度補正量のマップを参照して、現在の冷却水温に応じた温度補正量を算出する。
【０１１８】
この後、ステップ７０６に進み、温度補正量を用いて、完全暖機後の目標軌道情報の学習値（バックアップＲＡＭ３７等の不揮発性メモリに記憶されている目標軌道情報の学習値）を補正して、補正後の目標軌道情報の学習値を求める。
【０１１９】
補正後の目標軌道情報の学習値＝完全暖機後の目標軌道情報の学習値＋温度補正量
この後、ステップ７０７に進み、補正後の目標軌道情報の学習値を目標軌道の算出に用いる。
【０１２０】
上記ステップ７０４又は上記ステップ７０７で、目標軌道の算出に用いる目標軌道情報（基準回転速度とロストルクのずれ量）を設定した後、ステップ７０８に進み、前記図１５の目標軌道算出ルーチンを実行して、目標軌道を算出する。
【０１２１】
以上説明した本実施例２では、エンジン停止要求が発生したときに冷却水温センサ２３で検出した冷却水温に応じた温度補正量を算出し、その温度補正量を用いて目標軌道情報（基準回転速度とロストルクのずれ量）の学習値を補正するようにしたので、エンジン温度に応じて実際の目標軌道情報が変化するのに対応して、目標軌道情報の学習値を適正に補正して、目標軌道情報の学習値を真値に近付けることができ、この補正後の目標軌道情報の学習値を用いて目標軌道を算出するようにしたので、エンジン温度の変化による目標軌道の算出精度の低下を抑制することが可能となり、エンジン１１の暖機中でも、エンジン回転停止制御の精度を確保することができる。
【０１２２】
また、本実施例２では、エンジン停止要求が発生したときに冷却水温センサ２３で検出した冷却水温に基づいて温度補正量を算出して目標軌道情報の学習値を補正するようにしたので、エンジン温度に応じて目標軌道情報の学習値を補正する回数を必要最小限にしてエンジンＥＣＵ３０の演算負荷を軽減しながら、エンジン停止要求が発生してエンジン回転停止制御が実行される際には、そのときのエンジン温度に応じて適正に補正した目標軌道情報の学習値を用いて目標軌道を精度良く算出することができる。
【０１２３】
尚、上記実施例２では、エンジン停止要求が発生したときに冷却水温センサ２３で検出した冷却水温に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしたが、これ限定されず、例えば、所定時間毎や所定走行距離毎に冷却水温センサ２３で検出した冷却水温に基づいて補正量を算出して目標軌道情報の学習値を補正するようにしても良い。
【０１２４】
また、上記実施例２では、エンジン温度情報として、冷却水温を検出するようにしたが、油温を検出するようにしても良い。或は、冷却水温や油温に基づいてエンジン温度を推定するようにしても良い。
【実施例３】
【０１２５】
次に、図２３を用いて本発明の実施例３を説明する。但し、前記実施例１と実質的に同一部分については説明を省略又は簡略化し、主として前記実施例１と異なる部分について説明する。
【０１２６】
本実施例３では、エンジンＥＣＵ３０により後述する図２３の学習ゲイン変更ルーチンを実行することで、エンジン停止要求が発生したときに大気圧センサ３８で検出した大気圧に応じて目標軌道情報を学習する際のゲイン（学習ゲイン）を変化させることで、大気圧に応じて実際の目標軌道情報が変化するのに対応して、学習ゲインを変化させて、目標軌道情報の学習値を速やかに真値（実際の目標軌道情報）に近付ける。この目標軌道情報の学習値を用いて目標軌道を算出することで、大気圧の変化による目標軌道の算出精度の低下を抑制して、エンジン回転停止制御の精度を確保する。
【０１２７】
以下、本実施例３でエンジンＥＣＵ３０により実行される図２３の学習ゲイン変更ルーチンの処理内容を説明する。尚、実際には、ロストルクのずれ量の学習ゲイン変更ルーチンと基準回転速度の学習ゲイン変更ルーチンを別々に実行するが、以下の説明では、基準回転速度とロストルクのずれ量を「目標軌道情報」と総称して説明する。
【０１２８】
本ルーチンが起動されると、まず、ステップ８０１で、エンジン停止要求（アイドルストップ要求）が発生したか否かを判定し、エンジン停止要求が発生していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【０１２９】
その後、上記ステップ６０１で、エンジン停止要求が発生したと判定された時点で、ステップ８０２に進み、大気圧センサ３８で現在の大気圧を検出した後、ステップ８０３に進み、現在の大気圧が所定の基準大気圧（例えば平地での大気圧）相当であるか否かを、例えば、現在の大気圧と基準大気圧との差の絶対値が所定値以下であるか否かによって判定する。
【０１３０】
このステップ８０３で、大気圧が基準大気圧相当であると判定された場合には、ステップ８０６に進み、学習ゲインを通常値に維持したまま、本ルーチンを終了する。
一方、上記ステップ８０３で、大気圧が基準大気圧相当ではないと判定された場合には、ステップ８０４に進み、学習ゲインを通常値よりも大きくする。これにより、目標軌道情報の学習値の更新速度を速くして（１回当りの更新量を大きくして）、目標軌道情報の学習値を速やかに目標軌道情報の真値に近付ける。
【０１３１】
この後、ステップ８０５に進み、目標軌道情報の学習値が収束状態（ほぼ一定）になったか否かを、例えば、前回の目標軌道情報の学習値と今回の目標軌道情報の学習値との差の絶対値が所定値以下であるか否かによって判定する。
【０１３２】
このステップ８０５で、目標軌道情報の学習値が収束状態（ほぼ一定）になったと判定されたときに、目標軌道情報の学習値が目標軌道情報の真値付近に収束したと判断して、ステップ８０６に進み、学習ゲインを通常値に戻して、本ルーチンを終了する。
【０１３３】
以上説明した本実施例３では、エンジン停止要求が発生したときに大気圧センサ３８で検出した大気圧に応じて目標軌道情報を学習する際のゲイン（学習ゲイン）を変化させるようにしたので、大気圧に応じて実際の目標軌道情報が変化するのに対応して、学習ゲインを変化させて、目標軌道情報の学習値を速やかに真値（実際の目標軌道情報）に近付けることができ、この目標軌道情報の学習値を用いて目標軌道を算出するようにしたので、大気圧の変化による目標軌道の算出精度の低下を抑制して、エンジン回転停止制御の精度を確保することができる。
【０１３４】
尚、上記実施例３では、大気圧センサ３８で大気圧を検出するようにしたが、これに限定されず、例えば、吸気管圧力センサ１８の出力等に基づいて大気圧を推定するようにしても良い。
【０１３５】
また、上記実施例３では、大気圧に応じて学習ゲインを変化させるようにしたが、エンジン温度情報（冷却水温や油温等）を検出又は推定して、そのエンジン温度情報に応じて学習ゲインを変化させるようにしても良い。
【０１３６】
また、上記各実施例１〜３では、目標軌道情報（目標軌道の算出に用いる情報）として基準回転速度とロストルクのずれ量の両方を学習するシステムに本発明を適用したが、これに限定されず、例えば、目標軌道情報として基準回転速度とロストルクのずれ量のうちの一方のみを学習するシステムに本発明を適用したり、或は、目標軌道情報として基準回転速度やロストルクのずれ量以外の他の情報（例えばポンピングロスやフリクションロス等）を学習するシステムに本発明を適用しても良い。
【０１３７】
また、本発明は、図１に示すような吸気ポート噴射式エンジンに限定されず、筒内噴射式エンジンや、吸気ポート噴射用の燃料噴射弁と筒内噴射用の燃料噴射弁の両方を備えたデュアル噴射式のエンジンにも適用して実施できる。
【０１３８】
更に、本発明の適用範囲は、車両の動力源としてエンジンのみを備えた一般的な車両に限定されず、車両の動力源としてエンジンとモータを備えたハイブリッド車に本発明を適用しても良い。
【符号の説明】
【０１３９】
１１…エンジン（内燃機関）、１３…吸気管、１４…スロットルバルブ、１８…吸気管圧力センサ、１９…燃料噴射弁、２１…排気管、２３…冷却水温センサ（温度情報取得手段）、３０…エンジンＥＣＵ（目標軌道算出手段，停止制御手段，学習手段，学習値補正手段）、３３…オルタネータ（発電機）、３７…バックアップＲＡＭ、３８…大気圧センサ（大気圧取得手段）
【図１】
2012082808.tif 000005
【図２】
2012082808.tif 000006
【図３】
2012082808.tif 000007
【図４】
2012082808.tif 000008
【図５】
2012082808.tif 000009
【図６】
2012082808.tif 000010
【図７】
2012082808.tif 000011
【図８】
2012082808.tif 000012
【図９】
2012082808.tif 000013
【図１０】
2012082808.tif 000014
【図１１】
2012082808.tif 000015
【図１２】
2012082808.tif 000016
【図１３】
2012082808.tif 000017
【図１４】
2012082808.tif 000018
【図１５】
2012082808.tif 000019
【図１６】
2012082808.tif 000020
【図１７】
2012082808.tif 000021
【図１８】
2012082808.tif 000022
【図１９】
2012082808.tif 000023
【図２０】
2012082808.tif 000024
【図２１】
2012082808.tif 000025
【図２２】
2012082808.tif 000026
【図２３】
2012082808.tif 000027