(57)【要約】【課題】エンジンのロストルク特性について好適なる学習を実現する。【解決手段】ＥＣＵ４０は、エンジンのロストルク特性の学習値を記憶するバックアップＲＡＭ４１を備える。ＥＣＵ４０は、実エンジン回転挙動に基づいて算出したロストルク特性によりバックアップＲＡＭ４１の学習値を更新する。ＥＣＵ４０は、バックアップＲＡＭ４１に記憶されている学習値と新たに算出したロストルク特性とに基づいて学習値を更新する第１学習手段と、バックアップＲＡＭ４１に記憶されている学習値を用いず、新たに算出したロストルク特性に基づいて学習値を更新する第２学習手段とを備え、それら第１学習手段と第２学習手段とのいずれにより学習値を更新するかを切り替える。【選択図】      図１
2010242633.tif 000002
【特許請求の範囲】
【請求項１】
エンジンのロストルク特性を学習値として記憶する記憶手段と、実エンジン回転挙動に基づいて算出したロストルク特性により前記記憶手段の学習値を更新するロストルク学習手段とを備えるエンジン制御装置において、
前記ロストルク学習手段は、
前記記憶手段に記憶されている学習値と新たに算出したロストルク特性とに基づいて前記学習値を更新する第１学習手段と、
前記記憶手段に記憶されている学習値を用いず、新たに算出したロストルク特性に基づいて前記学習値を更新する第２学習手段と、
前記第１学習手段と前記第２学習手段とのいずれにより前記学習値を更新するかを切り替える切替手段と、
を備えることを特徴とするエンジン制御装置。
【請求項２】
前記記憶手段に記憶されている学習値と前記ロストルク特性の今回算出値との差異が所定以上となる場合であることを判定する手段を備え、
前記切替手段は、前記差異が所定以上となる旨判定された場合に、前記第２学習手段により前記学習値を更新させるものである請求項１に記載のエンジン制御装置。
【請求項３】
前記ロストルク特性についての学習実行条件の成否を判定する手段を備え、
前記切替手段は、前記学習実行条件の成立に伴う学習実行期間において、前記差異が所定以上となる旨が所定回数連続して判定された場合に、前記第２学習手段により前記学習値を更新させるものである請求項２に記載のエンジン制御装置。
【請求項４】
前記エンジンのフリクションロスに影響を及ぼす要因の変化が生じたことを判定する手段を備え、
前記切替手段は、前記フリクションロスの要因変化が生じた場合に、前記第２学習手段により前記学習値を更新させるものである請求項１乃至３のいずれか一項に記載のエンジン制御装置。
【請求項５】
前記記憶手段に記憶されている学習値が消失したこと又は同学習値が未学習の初期値であることを判定する手段を備え、
前記切替手段は、前記学習値の消失又は未学習の判定がなされた場合に、前記第２学習手段により前記学習値を更新させるものである請求項１乃至４のいずれか一項に記載のエンジン制御装置。
【請求項６】
前記第１学習手段は、前記記憶手段に記憶されている学習値に対して、新たに算出したロストルク特性をなまし処理にて反映させて前記学習値を更新し、
前記第２学習手段は、前記なまし処理を行わず、新たに算出したロストルク特性に基づいて前記学習値を更新する請求項１乃至５のいずれか一項に記載のエンジン制御装置。
【請求項７】
エンジン停止要求が発生した場合に燃焼を停止させてエンジン回転を停止させるエンジン制御装置において、
エンジン回転が目標停止クランク角で停止するまでの回転挙動である目標軌道を前記記憶手段に記憶されているロストルク特性の学習値を用いて算出する目標軌道算出手段と、
エンジン回転を停止させる際に実エンジン回転挙動を前記目標軌道に合わせるようにエンジンの補機の負荷を制御するエンジン回転停止制御を実行する停止制御手段と、
を備える請求項１乃至６のいずれか一項に記載のエンジン制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンのロストルク特性を学習するロストルク学習機能を備えたエンジン制御装置に関するものである。
【背景技術】
【０００２】
この種のエンジン制御装置として例えば特許文献１の技術が知られている。特許文献１は、エンジン停止要求が発生した場合に燃焼を停止させてエンジン回転を所望のクランク角位置で停止させるエンジン回転停止制御装置に関するものであり、同制御装置では、エンジン回転が目標停止クランク角で停止するまでの回転挙動である目標軌道をロストルク特性の学習値を用いて算出するとともに、エンジン回転を停止させる際に実エンジン回転挙動を前記目標軌道に合わせるようにエンジンの補機の負荷を制御するようにしていた。また、少なくとも実エンジン回転挙動に基づいてエンジンのロストルク特性を学習するようにしていた。
【０００３】
そして上記構成によれば、エンジン停止過程のエンジン回転挙動のばらつきを十分に補償することができ、エンジンの回転停止クランク角を精度良く制御することができるとしていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２１５１８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１では、ロストルク特性の学習処理において、フリクションロスの瞬間的な変動等によりロストルクが瞬間的に大きく変動する可能性があることを考慮して、その瞬間的なロストルク変動の影響を排除すべくロストルク特性の学習値をなまし処理する構成を採用している。しかしながら、かかる構成では、エンジンオイルが交換される等してエンジンフリクションが大きく変化した場合に、本来学習すべき実際のロストルクに対して学習値の収束に時間がかかるという不都合が生じると考えられる。
【０００６】
本発明は、エンジンのロストルク特性について好適なる学習を実現することができるエンジン制御装置を提供することを主たる目的とするものである。
【課題を解決するための手段】
【０００７】
以下、上記課題を解決するための手段、及びその作用効果について説明する。
【０００８】
本発明のエンジン制御装置では、エンジンのロストルク特性を学習値として記憶する記憶手段と、実エンジン回転挙動に基づいて算出したロストルク特性により前記記憶手段の学習値を更新するロストルク学習手段とを備える。そして特に、前記ロストルク学習手段は、前記記憶手段に記憶されている学習値と新たに算出したロストルク特性とに基づいて前記学習値を更新する第１学習手段と、前記記憶手段に記憶されている学習値を用いず、新たに算出したロストルク特性に基づいて前記学習値を更新する第２学習手段と、前記第１学習手段と前記第２学習手段とのいずれにより前記学習値を更新するかを切り替える切替手段と、を備えている。
【０００９】
上記構成において、第１学習手段によれば、過去の学習値を継続的に用いながら学習値の更新が行われるため、ロストルク特性が一時的に変化する場合等の影響を排除して信頼性の高い学習値を取得できる。一方、第２学習手段によれば、その時々の実際のロストルク特性に即した学習値をいち早く取得できる。そして、それら第１学習手段及び第２学習手段が適宜切り替えられることで、例えば、信頼性向上の観点から徐々に学習値を更新することが要求される場合と、収束性向上の観点からその時々の実際のロストルク特性だけで学習値を更新することが要求される場合とのいずれにおいても適宜の対応が可能となる。その結果、ロストルク特性について好適なる学習を実現できる。
【００１０】
なお、第１学習手段による学習値の更新は、過去の学習値（記憶手段に記憶済みの学習値）により更新ごとに変更量が制限されるのに対し、第２学習手段による学習値の更新は、過去の学習値による制限がないものとなっている。したがって、第２学習手段による学習は、本来学習すべき実際のロストルク特性に対して学習値の収束（到達）が早く、その意味から高速学習であるとも言える。
【００１１】
第１，第２学習手段としてより具体的には、第１学習手段は、前記記憶手段に記憶されている学習値に対して、新たに算出したロストルク特性をなまし処理にて反映させて前記学習値を更新し、第２学習手段は、前記なまし処理を行わず、新たに算出したロストルク特性に基づいて前記学習値を更新するものであるとよい（請求項６）。なお、なまし処理は、一次遅れ処理、重み付き平均化処理、フィルタ処理とも称される。
【００１２】
請求項２に記載の発明では、前記記憶手段に記憶されている学習値と前記ロストルク特性の今回算出値との差異が所定以上となる場合であることを判定し、前記差異が所定以上となる旨判定された場合に、前記第２学習手段により前記学習値を更新させる。
【００１３】
要するに、記憶済み学習値を反映させつつ徐々に学習値を更新していく場合（第１学習手段に相当）、記憶済みの学習値とロストルク特性の今回算出値との差異が所定以上であると、本来学習すべき実際のロストルク特性に対して学習値の収束に時間がかかる。この点、上記構成では、記憶済みの学習値とロストルク特性の今回算出値との差異が所定以上である場合に、第２学習手段による学習を行うことで所望の学習値をいち早く取得できる。
【００１４】
ちなみに、第２学習手段による学習が行われた後に、記憶済みの学習値とロストルク特性の今回算出値との差異が所定未満になれば、以降第１学習手段による学習が行われる（通常の学習処理に復帰する）。つまり、ロストルク特性が急激に変化することが希であることを考慮すると、第２学習手段による学習は一時的に行われることとなる。
【００１５】
ここで、請求項３に記載したように、前記ロストルク特性についての学習実行条件の成否を判定し、前記学習実行条件の成立に伴う学習実行期間において、前記差異が所定以上となる旨が所定回数連続して判定された場合に、前記第２学習手段により前記学習値を更新させるとよい。これにより、ロストルク特性の学習が一層好適なものとなる。
【００１６】
なお、第２学習手段では、実エンジン回転挙動に基づき算出したロストルク特性の複数の算出値の平均値により前記学習値を更新するとよい。
【００１７】
第２学習手段による学習値の更新を行わせる条件として以下が想定される。すなわち、
（１）エンジンのフリクションロスに影響を及ぼす要因の変化が生じたことを判定し、前記フリクションロスの要因変化が生じた場合に、前記第２学習手段により前記学習値を更新させる（請求項４）。
（２）前記記憶手段に記憶されている学習値が消失したこと又は同学習値が未学習の初期値であることを判定し、前記学習値の消失又は未学習の判定がなされた場合に、前記第２学習手段により前記学習値を更新させる（請求項５）。
【００１８】
上記（１）について具体的には、エンジンオイルの交換やエンジンフリクションに関わる部品（ピストンリング等）の交換等が生じた場合に、その履歴情報などに基づいてフリクションロスの要因変化を判定するとよい。
【００１９】
また、上記（２）について具体的には、前記記憶手段がバッテリ電力の供給により記憶データを記憶保持するものである構成において、バッテリ交換やバッテリ電源端子の切り離しが行われた場合に、その履歴情報などに基づいて学習値の消失時又は未学習時であることを判定するとよい。
【００２０】
ロストルク特性の学習値は、エンジン停止要求が発生した場合に燃焼を停止させてエンジン回転を停止させるエンジン回転停止制御に用いられることが考えられる。つまり、請求項７に記載の発明では、エンジン回転が目標停止クランク角で停止するまでの回転挙動である目標軌道を前記記憶手段に記憶されているロストルク特性の学習値を用いて算出する目標軌道算出手段と、エンジン回転を停止させる際に実エンジン回転挙動を前記目標軌道に合わせるようにエンジンの補機の負荷を制御するエンジン回転停止制御を実行する停止制御手段と、を備える。
【００２１】
上記のエンジン回転停止制御では、上記のとおり好適に算出されたロストルク特性の学習値を用いつつ、エンジン回転停止クランク角を適正に制御できる。かかる場合において、個体差や経時的要因により実際のロストルク特性に変化が生じても、そのロストルク特性のずれを学習によって補償しながら目標軌道を高精度に算出できる。そして、エンジン回転を停止させる際に実エンジン回転挙動を目標軌道に合わせるようにエンジンの補機負荷を制御することにより、エンジン停止過程の実エンジン回転挙動のばらつきを十分に補償することができ、エンジン回転停止クランク角を精度良く目標のクランク角範囲内に制御することができる。
【図面の簡単な説明】
【００２２】
【図１】発明の実施形態におけるエンジン制御システムの概略構成図。
【図２】（ａ）はオルタネータ負荷特性を説明する図、（ｂ）はエンジン回転停止制御時の見掛上のオルタネータ負荷特性を説明する図。
【図３】（ａ）は準負荷トルクＴref＝０に設定してエンジン回転停止制御を行った比較例を説明するタイムチャート、（ｂ）は基準負荷トルクＴrefを最大負荷の半分に設定してエンジン回転停止制御を行った実施例を説明するタイムチャート。
【図４】エンジン回転停止学習制御のメインルーチンの処理の流れを示すフローチャート。
【図５】ロストルク特性学習ルーチンの処理の流れを示すフローチャート。
【図６】目標軌道算出ルーチンの処理の流れを示すフローチャート。
【図７】エンジン回転停止制御ルーチンの処理の流れを示すフローチャート。
【図８】目標エンジン回転速度の算出方法を説明する図。
【発明を実施するための形態】
【００２３】
以下、本発明を具体化した実施の形態について図面を参照しつつ説明する。本実施の形態は、車載多気筒ガソリンエンジンを対象にエンジン制御システムを構築するものとしている。当該制御システムにおいては、電子制御ユニット（以下、ＥＣＵという）を中枢として燃料噴射量の制御や点火時期の制御、アイドルストップ制御等を実施する。このエンジン制御システムの概略構成図を図１に示す。
【００２４】
図１に示すエンジン１０において、吸気管１１（吸気通路）にはＤＣモータ等のスロットルアクチュエータ１５によって開度調節されるスロットルバルブ１４が設けられている。スロットルバルブ１４の開度（スロットル開度）は、スロットルアクチュエータ１５に内蔵されたスロットル開度センサにより検出される。スロットルバルブ１４の下流側にはサージタンク１６が設けられ、このサージタンク１６には、吸気管圧力を検出するための吸気管圧力センサ１７が設けられている。また、サージタンク１６には、エンジン１０の各気筒に空気を導入する吸気マニホールド１８が接続されており、吸気マニホールド１８において各気筒の吸気ポート近傍には燃料を噴射供給する電磁駆動式の燃料噴射弁１９が取り付けられている。
【００２５】
エンジン１０の吸気ポート及び排気ポートには、それぞれ吸気バルブ２１及び排気バルブ２２が設けられている。この吸気バルブ２１の開動作により空気と燃料との混合気が燃焼室２３内に導入され、排気バルブ２２の開動作により燃焼後の排ガスが排気管２４（排気通路）に排出される。
【００２６】
エンジン１０のシリンダヘッドには気筒毎に点火プラグ２７が取り付けられている。点火プラグ２７には、点火コイル等よりなる点火装置（図示略）を通じて、所望とする点火時期において高電圧が印加される。この高電圧の印加により、各点火プラグ２７の対向電極間に火花放電が発生し、燃焼室２３内に導入した混合気が着火され燃焼に供される。
【００２７】
排気管２４には、排気中のＣＯ，ＨＣ，ＮＯｘ等を浄化するための三元触媒等の触媒３１が設けられている。触媒３１の上流側には、排ガスを検出対象として混合気の空燃比（酸素濃度）を検出するためのＡ／Ｆセンサ３２が設けられている。また、エンジン１０には、冷却水温を検出する冷却水温センサ３３や、クランク軸の回転に伴い所定クランク角ごとに（例えば３０°ＣＡ周期で）矩形状のクランク角信号を出力するクランク角センサ３４や、カム軸の回転に伴い所定カム角ごとにカム角信号を出力するカム角センサ３５が取り付けられている。その他、本システムには、アクセル開度を検出するアクセルセンサ３６や、ブレーキペダルの踏み込み量を検出するブレーキセンサ３７、車両速度を検出する車速センサ３８などが取り付けられている。
【００２８】
また、エンジン１０の代表的な補機であるオルタネータ（発電機）３９には、クランク軸の回転がベルトを介して伝達される。これにより、エンジン１０の動力でオルタネータ３９が回転駆動されて発電が行われるようになっている。オルタネータ３９の発電制御電流（フィールド電流）をデューティ制御することで、オルタネータ３９の負荷を制御することができる。
【００２９】
ＥＣＵ４０は、周知の通りＣＰＵ、ＲＯＭ、ＲＡＭ等よりなるマイクロコンピュータを主体として構成され、ＲＯＭに記憶された各種の制御プログラムを実行することで、都度のエンジン運転状態に応じてエンジン１０の各種制御を実施する。すなわち、ＥＣＵ４０は、前述した各種センサなどから各々検出信号を入力し、それらの各種検出信号に基づいて燃料噴射量や点火時期等を演算して燃料噴射弁１９や点火装置の駆動を制御したり、あるいはアイドルストップ制御を実施したりする。
【００３０】
ＥＣＵ４０は、アイドルストップ制御として、アイドル運転中に所定のエンジン停止条件が成立した場合に燃料噴射及び点火を停止してエンジン１０の自動停止を行う。また、エンジン停止中に所定のエンジン再始動条件が成立した場合には、スタータ（図示略）のクランキングによりエンジン１０に初期回転を付与した後、燃料噴射及び点火を再開してエンジン１０の自動再始動を行う。ここで、所定のエンジン停止条件としては、例えばアクセルオフであることや、ブレーキオンであること、車速がゼロであること等とする。また、所定のエンジン再始動条件としては、例えばブレーキオフであること等とする。
【００３１】
さらに、ＥＣＵ４０は、エンジン回転が目標停止クランク角で停止するまでの回転挙動である目標軌道を算出する目標軌道算出手段として機能するとともに、エンジン回転を停止させる際にエンジン回転挙動を目標軌道に合わせるようにオルタネータ３９の負荷を制御する停止制御手段として機能し、さらに、少なくとも実エンジン回転挙動に基づいてロストルク特性を学習するロストルク学習手段として機能する。
【００３２】
ここで、目標軌道は、エンジンのロストルクを考慮したエネルギ保存則の関係式を用いて、エンジンの目標停止クランク角と、エンジン停止過程（エンジン停止要求に伴う回転低下中）の所定クランク角における目標エンジン回転速度とに基づいてクランク角を溯る方向に算出される。エネルギ保存則の関係式は次式で表される。
【００３３】
Ｎe(i+1)2 ＝Ｎe(i)2−２／Ｊ×｛Ｔloss−Ｔref(Ne(i))｝
Ｎe(i+1)は、現時点(i) よりも所定クランク角（本実施形態では１８０°ＣＡ）前の時点(i+1) のエンジン回転速度、Ｎe(i)は現時点(i) のエンジン回転速度、Ｊはエンジン１０の慣性モーメント、Ｔlossは、所定クランク角（例えばＴＤＣ）におけるポンピングロスとフリクションロスを合計したロストルクである。ＥＣＵ４０は、その電源オフ時でも記憶データを保持する書き換え可能な記憶手段であるバックアップＲＡＭ４１を備えており、そのバックアップＲＡＭ４１にはロストルク特性の学習値としてロストルクＴlossが記憶されている。Ｔref(Ne(i))は、現時点(i) のエンジン回転速度Ｎe(i)におけるオルタネータ３９の基準負荷トルクである。
【００３４】
なお、目標軌道は、目標停止クランク角に至るまでのクランク角と目標エンジン回転速度との関係を所定クランク角間隔（例えば１８０°ＣＡ間隔）で算出してテーブル等に割り付けたものであってもよい。
【００３５】
本実施形態では、オルタネータ３９の基準負荷トルクＴref(Ne(i))は、図２（ａ）に示すように、オルタネータ３９の制御可能な最大負荷の半分（１／２）に設定されている。このようにすれば、オルタネータ３９は、モータジェネレータと異なり、アシストトルクを出力できないという事情があっても、仮想的にオルタネータ３９の負荷トルクを正負両方向に制御することが可能となり（基準負荷Ｔref 以下の負荷トルクを仮想的に負の負荷トルクとし、基準負荷Ｔref 以上の負荷トルクを正の負荷トルクとしてオルタネータ３９の負荷トルクを制御することが可能となり）、目標軌道へのエンジン回転挙動の追従性を向上することができる。
【００３６】
なお、オルタネータ３９の基準負荷トルクＴref(Ne(i))は、最大負荷の半分（１／２）に限定されず、例えば、最大負荷の１／３、１／４、２／３、３／４等であってもよく、要は、オルタネータ３９の制御可能な最大負荷よりも小さく、０よりも大きい適宜の負荷を基準負荷トルクＴref(Ne(i))に設定されればよい（０＜Ｔref(Ne(i))＜オルタ最大負荷）。
【００３７】
図３（ａ）は、基準負荷トルクＴref(Ne(i))＝０に設定してエンジン回転停止制御を行った比較例を示している。この比較例では、オルタネータ３９の負荷トルクを正方向にしか制御できないため、実エンジン回転挙動がオーバーシュートした場合は、実エンジン回転挙動を目標軌道に一致させることができなくなる。これに対して、本実施形態のように、オルタネータ３９の基準負荷トルクＴref(Ne(i))を最大負荷よりも小さい適宜の負荷に設定すれば、図２（ｂ）に示すように、仮想的にオルタネータ３９の負荷トルクを正負両方向に制御することが可能となるため、図３（ｂ）に示すように、実回転挙動がオーバーシュートした場合でも、実回転挙動を目標軌道に一致させることができる。
【００３８】
さらに本実施形態では、目標軌道を算出する際に、ロストルクＴlossに基づいて目標軌道を算出する。また、エンジン回転停止制御中は、エンジン回転速度Ｎe(i)に応じた基準負荷トルクＴref(Ne(i))を算出するとともに、所定クランク角θ（例えばＴＤＣ）における目標エンジン回転速度と実エンジン回転速度との偏差を小さくするようにベース負荷トルクを算出し、このベース負荷トルクに基準負荷トルクＴref(Ne(i))を加算して要求負荷トルクＴaltを算出する（実際には、要求負荷トルクＴaltにプーリ比Ｒatioを乗算して要求軸トルクＴfinalに変換する）。そして、現時点(i) の要求負荷トルクＴalt（要求軸トルクＴfinal）とエンジン回転速度Ｎe(i)に応じた発電指令を算出し、この発電指令でオルタネータ３９の発電制御電流（フィールド電流）を制御してオルタネータ３９の負荷トルクを制御する。
【００３９】
このようなオルタネータ３９の負荷トルクの制御を、実エンジン回転速度がオルタネータ３９の発電限界回転速度Ｎelow（図２参照）以下に低下するまで所定クランク間隔（例えば１８０°ＣＡ間隔）で周期的に実行することで、実エンジン回転挙動を目標軌道に合わせるようにオルタネータ３９の負荷トルクをフィードバック制御する。
【００４０】
ところで、目標軌道を算出する際に用いるロストルク特性（すなわちロストルクＴloss）は、エンジン１０の製造ばらつきや経時変化等によって変化するため、予め設定された標準的なロストルク特性を用いて目標軌道を算出すると、エンジン１０の製造ばらつきや経時変化や油温の変化等によって実際のロストルク特性と標準的なロストルク特性との間にずれが生じている場合に、目標軌道の算出精度が低下する。
【００４１】
この対策として、本実施形態では、ロストルク特性の変化の影響が実エンジン回転挙動に現れることに着目して、ロストルク特性を実エンジン回転挙動に基づいて学習してバックアップＲＡＭ４１に更新記憶し、このロストルク特性を用いて目標軌道を算出するようにしている。
【００４２】
本実施形態では、エンジン停止要求（アイドルストップ信号）に応じて燃焼が停止されてからエンジン回転停止制御が開始されるまでの期間において実エンジン回転挙動から所定クランク角間（例えばＴＤＣ間）でロストルクにより消費されたエネルギを算出し、その消費エネルギに基づいてロストルク特性を学習するようにしている。つまり、エンジン停止要求に応じて燃焼が停止されると、エンジン１０が惰性回転しながら、ロストルク（ポンピングロスやフリクションロス）による消費エネルギによって実エンジン回転速度が低下していく。この場合、実エンジン回転挙動によれば所定クランク角間（例えばＴＤＣ間）でロストルクにより消費されたエネルギを精度良く算出でき、このロストルクによる消費エネルギに基づいてロストルク特性を精度良く学習することができる。
【００４３】
付言すると、実エンジン回転速度の低下期間においてオルタネータ３９の駆動を停止する構成としてもよい。この場合、オルタネータ３９の駆動停止状態でエンジン１０を惰性回転させることにより、ロストルクによる消費エネルギを一層精度良く算出することが可能となり、ロストルク特性の学習精度を高めることができると考えられる。
【００４４】
なお、ロストルク特性であるロストルクＴlossは、同一行程であってもエンジン１０のクランク角（すなわちピストン位置）に応じて相違する。そのため、所定クランク角間隔（例えば３０°ＣＡ間隔）にテーブル等を設定しておき、所定クランク角間隔のクランク角ごとにロストルクＴlossが記憶される構成であってもよい。記憶手段として、バックアップＲＡＭ４１に代えてＥＥＰＲＯＭを用いることも可能である。
【００４５】
以上説明した本実施形態のロストルク特性の学習とエンジン回転停止制御は、ＥＣＵ４０により図４〜図７の各ルーチンに従って実行される。以下、これら各ルーチンの処理内容を説明する。
【００４６】
［エンジン回転停止学習制御のメインルーチン］
図４のエンジン回転停止学習制御のメインルーチンは、エンジン運転中に所定周期で実行される。本ルーチンが起動されると、まずステップＳ１００では、後述する図５のロストルク特性学習ルーチンを実行し、学習実行条件が成立している場合においてロストルク特性を学習する。その後、ステップＳ２００では、後述する図６の目標軌道算出ルーチンを実行して、図５のロストルク特性学習ルーチンで学習したロストルク特性に基づいて目標軌道を算出する。さらに、ステップＳ３００では、後述する図７のエンジン回転停止制御ルーチンを実行して、エンジン回転を停止させる際に実エンジン回転挙動を目標軌道に合わせるようにオルタネータ３９の負荷トルクを制御する。
【００４７】
［ロストルク特性学習ルーチン］
図５のロストルク特性学習ルーチンは、図４のメインルーチンのステップＳ１００で実行されるサブルーチンであり、ロストルク学習手段としての役割を果たす。
【００４８】
本ルーチンが起動されると、まずステップＳ１０１では、所定の学習実行条件が成立しているか否かを判定する。ここで、学習実行条件には、エンジン１０の暖機完了後であってかつアイドルストップ時（エンジン停止条件の成立に伴うエンジンの自動停止時）であることが含まれる。暖機完了の判定手法としては、例えば以下のいずれかの手法が用いられるとよい。
・冷却水温センサ３３により検出される冷却水温が所定の暖機判定値まで上昇した場合に暖機完了したと判定する。
・エンジン始動後（イグニッションスイッチのオン後）における吸入空気量の積算値が所定の暖機判定値に達した場合に暖機完了したと判定する。
・エンジン始動後（イグニッションスイッチのオン後）における燃料噴射量の積算値が所定の暖機判定値に達した場合に暖機完了したと判定する。
【００４９】
なお、学習実行条件として、冷却水温が暖機完了温度に達した後の最初のアイドルストップ時であることが含まれていてもよい。ただし、最初のアイドルストップ時に限定せず、２回目以降のアイドルストップ時にも学習することも可能である。あるいは、所定アイドルストップ回数毎、所定走行回数毎、所定積算走行距離毎、所定期間経過毎のいずれかの間隔で適宜のアイドルストップ時に学習するようにしてもよい。このステップＳ１０１で学習実行条件が成立していないと判定されれば、そのまま本ルーチンを終了する。
【００５０】
一方、ステップＳ１０１で学習実行条件が成立していると判定されれば、ステップＳ１０２に進み、クランク角センサ３４とカム角センサ３５との各出力パルスに基づいて現在のクランク角θとエンジン回転速度とを算出する。この際、クランク角θは吸気ＡＴＤＣで演算される。
【００５１】
その後、ステップＳ１０３では、現在のクランク角θが学習値算出タイミングであるＴＤＣ（すなわちＡＴＤＣ０°ＣＡ）であるか否かを判定し、ＴＤＣでなければそのまま本ルーチンを終了する。これに対して、現在のクランク角θがＴＤＣであればステップＳ１０４に進み、上記算出したエンジン回転速度を、今回のＴＤＣにおけるエンジン回転速度Ｎe(i)としてＥＣＵ４０のＲＡＭに記憶する。
【００５２】
その後、ステップＳ１０５では、ＴＤＣ間（１８０°ＣＡ間）でロストルクにより消費されたエネルギ消費量ΔＥを次式により算出する。
【００５３】
ΔＥ＝１／２・Ｊ・Ｎe(i-1)2 −１／２・Ｊ・Ｎe(i)2
Ｊはエンジン１０の慣性モーメント、Ｎe(i-1)は、前回のＴＤＣにおけるエンジン回転速度である。
【００５４】
その後、ステップＳ１０６では、上記算出したＴＤＣ間のロストルクによるエネルギ消費量ΔＥを用いて、仮の学習補正トルクＴggと実ロストルクＴlossgとを次式により算出する。
【００５５】
Ｔgg＝ΔＥ−ΔＥtg
Ｔlossg＝ΔＥ
ΔＥtgは、前回の目標軌道の算出に使用したＴＤＣ間のロストルクによるエネルギ消費量である。ΔＥtgは、バックアップＲＡＭ４１に記憶されているとよい。なお、仮の学習補正トルクＴggと実ロストルクＴlossgとを、
Ｔgg＝（ΔＥ−ΔＥtg）／Δθ
Ｔlossg＝ΔＥ／Δθ
として算出してもよい。この場合、ΔθはＴＤＣ間のクランク角（１８０°ＣＡ）である。
【００５６】
ここで、仮の学習補正トルクＴggは、エネルギ消費量の前回値と今回値との誤差分（ΔＥ−ΔＥtg）に基づいて算出される。また、実ロストルクＴlossgは、実際に今回生じたエネルギ消費量ΔＥに基づいて算出される。
【００５７】
その後、ステップＳ１０７では、前回の目標軌道の算出に使用したロストルクＴlossに対する仮の学習補正トルクＴggの比率（すなわち、今回算出値の誤差比率）が所定の判定値以下であるかを判定する。具体的には、（Ｔgg／Ｔloss）値が±０．１５以内（±１５％以内）であるか否かを判定する。ステップＳ１０７は、バックアップＲＡＭ４１に記憶されているロストルク特性の学習値と、今回のロストルク特性学習での算出値との差異が所定以上となる場合であるか否かを判定する手段に相当する。
【００５８】
そして、｜Ｔgg／Ｔloss｜≦０．１５である場合、ステップＳ１０８に進み、仮の学習補正トルクＴggを例えば次式によりなまし処理して学習補正トルクＴg を算出する。この場合、学習補正トルクＴg の前回値に対する変化が制限されつつ、当該学習補正トルクＴg が徐々に修正される。
【００５９】
Ｔg(今回値) ＝｛ａ×Ｔg(前回値）＋ｂ×Ｔgg｝／（ａ＋ｂ）
ここで、ａ，ｂは係数である。Ｔg(前回値）は、バックアップＲＡＭ４１に記憶されているとよい。
【００６０】
その後、ステップＳ１０９では、前回の目標軌道の算出に使用したロストルクＴloss（バックアップＲＡＭ４１に記憶されているＴloss）に学習補正トルクＴgを加算することで、新たなロストルクＴlossを算出し、これをバックアップＲＡＭ４１に更新記憶する。
【００６１】
一方、｜Ｔgg／Ｔloss｜＞０．１５である場合、ステップＳ１１０に進み、ｎカウンタを１インクリメントする。このｎカウンタは、学習実行条件の初回成立時（ロストルク特性の学習開始時）及びステップＳ１０７の肯定時に０に初期化され、ロストルク特性の学習開始後にステップＳ１０７が連続して否定される場合に、１ずつインクリメントされるものとなっている。ステップＳ１１１では、ｎカウンタが所定値以上（本実施形態では３以上）であるか否かを判定する。
【００６２】
そして、ｎ＜３であればステップＳ１０８に進み、上述したとおり仮の学習補正トルクＴggをなまし処理して学習補正トルクＴg を算出するとともに、ロストルクＴlossの前回値に学習補正トルクＴg を加算して得られた新たなロストルクＴlossによりバックアップＲＡＭ４１内の学習値を更新する。
【００６３】
また、ｎ≧３であれば、すなわちステップＳ１０７の否定判定が３回連続して行われると、ステップＳ１１２に進む。ステップＳ１１２では、上記ステップＳ１０６で算出した実ロストルクＴlossgを新たなロストルクＴlossとし、これをバックアップＲＡＭ４１に更新記憶する。すなわち、ステップＳ１１２では、前回の目標軌道の算出に使用したロストルクＴlossや学習補正トルクＴg の前回値を用いることなく、新たなロストルクＴlossが算出されるようになっている。
【００６４】
なお、本実施形態では、ステップＳ１０９が第１学習手段に相当し、ステップＳ１１２が第２学習手段に相当し、ステップＳ１０７が切替手段に相当する。
【００６５】
［目標軌道算出ルーチン］
図６の目標軌道算出ルーチンは、図４のメインルーチンのステップＳ２００で実行されるサブルーチンであり、目標軌道算出手段としての役割を果たす。
【００６６】
はじめに、目標軌道算出処理の概要を説明する。本実施形態では、エンジンの目標停止クランク角と、エンジン回転停止過程の所定クランク角（ＴＤＣ）における目標回転速度（目標回転エネルギでも可）と、ロストルクＴloss（ロストルク特性の学習値）とに基づいて目標軌道を設定する構成としている。また特に、都度の実エンジン回転速度を目標軌道上の目標エンジン回転速度に一致させる場合において、１８０°ＣＡだけ前後にずれた２つの目標軌道を設定するとともに、それら各目標軌道のうち、実エンジン回転速度の修正を行う上で必要となるエネルギ量が小さい方の目標軌道を選んで目標エンジン回転速度を算出するものとしている。
【００６７】
より具体的には、図８に示すように、エンジンの目標停止クランク角が「φ＋１８０×ｋ」、「φ＋１８０×（ｋ＋１）」として２通り設定されている場合に、それら各目標停止クランク角に対する回転軌道が２通り規定される（軌道１，軌道２）。この場合、各軌道１，２において１８０°ＣＡずれたクランク角でのエネルギ差はエンジンのロストルク特性に対応するものである。そして、現在のエンジン回転速度Ｎeに基づく現在の回転エネルギと、２つの目標軌道上の各目標回転速度Ｎt(i+1)，Ｎt(i)に基づく２つの目標回転エネルギとのそれぞれの差（エネルギ差）を比較し、そのうち現在の回転エネルギに対して必要なエネルギ量の絶対値が小さい方の回転軌道を選択し、その回転軌道と都度のクランク角位置とから目標エンジン回転速度を算出する。
【００６８】
図６のルーチンでは、まずステップＳ２０１で、現在のクランク角θが目標軌道算出タイミングであるＴＤＣであるか否かを判定し、ＴＤＣでなければそのまま本ルーチンを終了する。これに対して、現在のクランク角θがＴＤＣであればステップＳ２０２に進み、次式により目標回転速度Ｎt(i+1)の二乗値を算出する。
【００６９】
Ｎt(i+1)2 ＝Ｎt(i)2＋２／Ｊ・Ｔloss
ここで、Ｎt(i)は、エンジン回転停止途中（Ｎe＞０）における所定ＴＤＣでの目標回転速度であり、Ｎt(i+1)は、Ｎt(i)に対して１８０°ＣＡだけ遡った時点（１８０°ＣＡ前）の目標回転速度である。例えば、Ｎt(i)の初期値として２００ｒｐｍが設定されている。ステップＳ２０２によれば、１８０°ＣＡだけ離れた２位置での目標回転速度（大小２つの目標回転速度）が算出される。
【００７０】
その後、ステップＳ２０３では、現在のエンジン回転速度Ｎeが、上記ステップＳ２０２で算出した目標回転速度Ｎt(i+1)（Ｎt(i+1)の二乗値の平方根）よりも小さいか否かを判定する。この場合、Ｎe≧Ｎt(i+1)であれば、今回算出した目標回転速度Ｎt(i+1)に対して現在のエンジン回転速度Ｎeが過大であり、より大きい目標回転速度Ｎt(i+1)を算出する必要があるため、ステップＳ２０４に進み、ｉカウンタを１インクリメントした後にステップＳ２０２で再度目標回転速度Ｎt(i+1)を算出する。これにより、１８０°ＣＡだけ更に遡って目標回転速度Ｎt(i+1)が算出される。ステップＳ２０２における目標回転速度Ｎt(i+1)の算出は、ステップＳ２０２がＹＥＳになるまで繰り返される。
【００７１】
そして、Ｎe＜Ｎt(i+1)になるとステップＳ２０５に進み、現在のエンジン回転速度Ｎeに対して、大小２つの目標回転速度Ｎt(i+1)，Ｎt(i)のいずれに合わせる方が必要なエネルギ量が少ないかを判定する。具体的には、
Ｎt(i+1)−Ｎe＞Ｎe−Ｎt(i)
が成立するか否かを判定する。この場合、Ｎt(i+1)−Ｎe＞Ｎe−Ｎt(i)であれば、目標回転速度Ｎt(i)に合わせる方が必要なエネルギ量が少ないと判断でき、Ｎt(i+1)−Ｎe≦Ｎe−Ｎt(i)であれば、目標回転速度Ｎt(i+1)に合わせる方が必要なエネルギ量が少ないと判断できる。
【００７２】
ステップＳ２０５がＹＥＳの場合、ステップＳ２０６に進み、目標回転速度Ｎt(i)を目標エンジン回転速度として設定する。続くステップＳ２０７では、ｉカウンタを「ｉ」から１デクリメントする（ｉ＝ｉ−１）。また、ステップＳ２０５がＮＯの場合、ステップＳ２０８に進み、目標回転速度Ｎt(i+1)を目標エンジン回転速度として設定する。続くステップＳ２０９では、ｉカウンタを「ｉ＋１」から１デクリメントする（ｉ＝（ｉ＋１）−１）。
【００７３】
［エンジン回転停止制御ルーチン］
図７のエンジン回転停止制御ルーチンは、図４のメインルーチンのステップＳ３００で実行されるサブルーチンであり、停止制御手段としての役割を果たす。
【００７４】
本ルーチンが起動されると、まずステップＳ３０１では、エンジン停止要求（アイドルストップ信号）が発生したか否かを判定し、エンジン停止要求が発生していなければそのまま本ルーチンを終了して、エンジン運転（燃料噴射制御及び点火制御）を継続する。そして、エンジン停止要求が発生したと判定された時点でステップＳ３０２に進み、現在のクランク角θとエンジン回転速度Ｎe とを算出する。
【００７５】
その後、ステップＳ３０３では、現在のクランク角θがオルタネータ３９の負荷トルクの制御タイミング（ＴＤＣ）であるか否かを判定する。また、ステップＳ３０４では、現在のエンジン回転速度Ｎｅがエンジン回転停止制御を実行可能な最大エンジン回転速度Ｎemaxよりも小さいか否かを判定する。そして、ステップＳ３０３，Ｓ３０４のいずれかがＮＯであれば、そのまま本ルーチンを終了し、ステップＳ３０３，Ｓ３０４が共にＹＥＳであれば後続のステップＳ３０５に進む。
【００７６】
ステップＳ３０５では、エンジン停止要求後において未だエンジンが燃焼状態にあるか否かを判定する。そして、燃焼状態であればステップＳ３０６に進み、現在のエンジン回転速度Ｎeに基づいて算出されるオルタネータ３９の基準負荷トルクＴref(Ｎe)を、同オルタネータ３９の要求負荷トルクＴaltとする（Ｔalt＝Ｔref(Ｎe)）。
【００７７】
また、燃焼状態でなければステップＳ３０７に進み、エネルギ保存則の関係とオルタネータ３９の基準負荷トルクＴref(Ｎe)とを用い、エンジン回転速度Ｎeを目標回転速度Ｎetgに一致させるための要求負荷トルクＴaltを算出する。具体的には、次式を用いて要求負荷トルクＴaltを算出する。
【００７８】
【数１】
2010242633.tif 000003
【００７９】
ここで、Ｊはエンジン１０の慣性モーメント、Ｋはフィードバックゲイン、Δθはクランク角変化量（１８０°ＣＡ）である。目標エンジン回転速度Ｎetgはマップ演算や数式演算により算出されるとよい。なお、エンジン回転速度の偏差について不感帯を設けることも可能である。
【００８０】
その後、ステップＳ３０８では、要求負荷トルクＴaltにエンジンクランク軸側とオルタネータ軸側とのプーリ比Ｒatioを乗算することで、要求負荷トルクＴaltをオルタネータ３９の要求軸トルクＴfinalに変換する。
【００８１】
Ｔfinal＝Ｔalt×Ｒatio
続くステップＳ３０９では、エンジン回転速度Ｎeとプール比Ｒatioとからオルタネータ回転速度Ｎaltを算出する。
【００８２】
Ｎalt＝Ｎe×Ｒatio
その後、ステップＳ３１０ではバッテリ電圧を検出する。そして、ステップＳ３１１では、オルタネータ３９の要求軸トルクＴfinal、オルタネータ回転速度Ｎalt及びバッテリ電圧に基づいて励磁電流ＩＦを算出する。詳しくは、所定間隔のバッテリ電圧ごとに作成された複数の要求負荷トルク特性マップの中から現在のバッテリ電圧に対応する要求負荷トルク特性マップを選択し、その特性マップを用いて、現在の要求軸トルクＴfinalとオルタネータ回転速度Ｎaltとに応じた励磁電流ＩＦを算出する。そして、この励磁電流ＩＦが発電指令（デューティＤuty）に変換され、そのデューティＤutyによりオルタネータ３９の負荷トルクが制御される。
【００８３】
以上詳述した本実施形態によれば、以下の優れた効果が得られる。
【００８４】
目標軌道を算出する際に用いるロストルク特性（Ｔloss）がエンジン１０の製造ばらつきや経時変化等によって変化することを考慮して、ロストルク特性を実エンジン回転挙動に基づいて学習してバックアップＲＡＭ４１に更新記憶するようにしたので、エンジン１０の製造ばらつきや経時変化や油温の変化等によって実際のロストルク特性にばらつきが生じても、そのロストルク特性のばらつきを学習によって補償することができ、目標軌道の算出精度を向上できる。これにより、本実施形態のように、エンジン回転を停止させる際に実エンジン回転挙動を目標軌道に合わせるようにオルタネータ３９の負荷トルクを制御すれば、エンジン停止過程の実エンジン回転挙動のばらつきを十分に補償できて、エンジン回転停止位置を精度良く目標のクランク角範囲内に制御することができる。
【００８５】
また、ロストルク特性学習処理において、バックアップＲＡＭ４１に記憶済みの学習値（Ｔloss）と新たに算出したロストルク特性とに基づいて学習値を更新する第１学習手段と、バックアップＲＡＭ４１に記憶済みの学習値（Ｔloss）を用いず、新たに算出したロストルク特性に基づいて学習値を更新する第２学習手段とを、適宜切り替える構成としたため、信頼性向上の観点から徐々に学習値を更新することが要求される場合と、収束性向上の観点からその時々の実際のロストルク特性だけで学習値を更新することが要求される場合とのいずれにおいても適宜の対応が可能となる。その結果、ロストルク特性について好適なる学習を実現できる。
【００８６】
特に第２学習手段による学習値の更新について補足すると、同学習手段では、前回の目標軌道の算出に使用したロストルクＴlossに対する仮の学習補正トルクＴggの比率（すなわち、今回算出値の誤差比率）が所定の判定値よりも大きい場合に、そのロストルクＴlossを用いず、今回算出した実ロストルクＴlossgにより学習値を更新する構成とした。これにより、本来学習すべき実際のロストルク特性に対して学習値の収束に時間がかからなくなり、所望の学習値をいち早く取得できる。
【００８７】
（他の実施形態）
本発明は上記実施形態の記載内容に限定されず、例えば次のように実施されてもよい。
【００８８】
・ロストルク特性学習処理において、エンジンの回転停止過程でオルタネータ３９の駆動を停止してエンジンを惰性回転状態とし、その惰性回転状態での実エンジン回転挙動に基づいてロストルクＴlossに関する各種演算（エネルギ消費量ΔＥの算出、学習補正トルクＴgの算出等）を実施する構成としてもよい。
【００８９】
・ロストルク特性学習処理において、第２学習手段が、実エンジン回転挙動に基づき算出したロストルク特性の複数の算出値の平均値により学習値を更新するものであってもよい。具体的には、ロストルク特性学習ルーチン（図５）のステップＳ１１２において、ステップＳ１０７の否定判定が３回連続して行われた場合の実ロストルクＴlossgの各算出値（Ｔlossgｎ，Ｔlossgｎ-1，Ｔlossgｎ-2）の平均値を算出し、その平均値を新たなロストルクＴlossとしてバックアップＲＡＭ４１に更新記憶する。算出式は次式である。
【００９０】
Ｔloss＝（Ｔlossgｎ＋Ｔlossgｎ-1＋Ｔlossgｎ-2）／３
上記構成によれば、記憶済みの学習値とロストルク特性の今回算出値との差異が所定以上となる場合であっても、ロストルク特性の学習精度を確保できる。
【００９１】
・エンジンのフリクションロスに影響を及ぼす要因の変化が生じたことを判定し、フリクションロスの要因変化が生じた場合に、第１学習手段に代えて、第２学習手段による学習値の更新を実施する構成としてもよい。例えば、エンジンオイルの交換やエンジンフリクションに関わる部品（ピストンリング等）の交換等が生じた場合に、その履歴情報などに基づいてフリクションロスの要因変化を判定するとよい。具体的な構成としては、ロストルク特性学習ルーチン（図５）のステップＳ１０７において、エンジンオイルの交換やピストンリングの交換等の履歴情報を確認し、当該履歴が存在すれば、第２学習手段による学習値の更新（ステップＳ１１２）を実施する。
【００９２】
・バックアップＲＡＭ４１に記憶されている学習値が消失したこと又は同学習値が未学習の初期値であることを判定し、学習値の消失又は未学習の判定がなされた場合に、第１学習手段に代えて、第２学習手段による学習値の更新を実施する構成としてもよい。例えば、バッテリ電力の供給により記憶データを記憶保持するバックアップＲＡＭ４１において、バッテリ交換やバッテリ電源端子の切り離しが行われた場合に、その履歴情報などに基づいて学習値の消失時又は未学習時であることを判定するとよい。具体的な構成としては、ロストルク特性学習ルーチン（図５）のステップＳ１０７において、バッテリ交換やバッテリ電源端子の切り離しが行われた履歴情報を確認し、当該履歴が存在すれば、第２学習手段による学習値の更新（ステップＳ１１２）を実施する。
【００９３】
・ロストルク特性の学習値（Ｔloss）に関するなまし処理として、一次遅れ処理、重み付き平均化処理、フィルタ処理などを任意に適用できる。いずれにしろ、バックアップＲＡＭ４１に記憶されている学習値に対して、新たに算出したロストルク特性をなまし処理にて反映させるものであればよい。
【００９４】
・本発明は、エンジン回転停止制御中にオルタネータ３９（発電機）の負荷を制御する構成に限定されず、オルタネータ３９以外の補機、例えば空調装置のコンプレッサ等の負荷を制御するようにしてもよい。
【符号の説明】
【００９５】
１０…エンジン、３９…オルタネータ、４０…ＥＣＵ（ロストルク学習手段、第１学習手段、第２学習手段、切替手段、目標軌道算出手段、停止制御手段）、４１…バックアップＲＡＭ（記憶手段）。
【図１】
2010242633.tif 000004
【図２】
2010242633.tif 000005
【図３】
2010242633.tif 000006
【図４】
2010242633.tif 000007
【図５】
2010242633.tif 000008
【図６】
2010242633.tif 000009
【図７】
2010242633.tif 000010
【図８】
2010242633.tif 000011