エンジン停止制御装置
【課題】アイドルストップ時にエンジン回転停止位置を精度良く目標停止位置に制御できるようにする。
【解決手段】エンジン回転の目標停止位置から所定クランク角手前の上死点(TDC)に設定した基準点の目標回転速度を設定すると共に、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(目標軌道)を基準点の目標回転速度とエンジンフリクションとに基づいて算出する。そして、エンジン回転停止挙動中に、エンジン回転挙動を前記目標軌道に一致させるようにオルタネータ(電動機)のトルクを制御する。基準点の目標回転速度は、オルタネータのトルクが発生する回転速度範囲の下限回転速度以下で且つ該下限回転速度に近い回転速度に設定されている。
【解決手段】エンジン回転の目標停止位置から所定クランク角手前の上死点(TDC)に設定した基準点の目標回転速度を設定すると共に、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(目標軌道)を基準点の目標回転速度とエンジンフリクションとに基づいて算出する。そして、エンジン回転停止挙動中に、エンジン回転挙動を前記目標軌道に一致させるようにオルタネータ(電動機)のトルクを制御する。基準点の目標回転速度は、オルタネータのトルクが発生する回転速度範囲の下限回転速度以下で且つ該下限回転速度に近い回転速度に設定されている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エンジン停止時に、エンジン回転停止位置(停止クランク角)を制御する機能を備えたエンジン停止制御装置に関する発明である。
【背景技術】
【0002】
近年、特許文献1(特開2005−315202号公報)に記載されているように、エンジン自動停止・始動システム(アイドルストップシステム)を搭載した車両では、再始動性を向上させるために、エンジン停止時(アイドルストップ時)にエンジン回転停止位置(停止クランク角)を始動に適したクランク角範囲に制御することを目的として、エンジンを自動停止させる際に、オルタネータの目標電流値を予め大きな値に設定された初期値に上昇させた後に低下させる制御を実行するようにしたものがある。
【特許文献1】特開2005−315202号公報(第2頁等)
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記特許文献1に記載のエンジン停止制御装置は、エンジンを自動停止させる際にオルタネータの負荷を制御することでエンジン回転停止位置を目標のクランク角範囲に制御しようとするものであるが、実際には、ピストンが圧縮上死点(TDC)を通過する時点で検出されたエンジン回転速度が480rpm〜540rpm内であるときに、予め設定されたマップを用いてオルタネータの目標電流値をその時点のエンジン回転速度に応じて設定するだけであるので(特許文献1の段落[0069]参照)、オルタネータ負荷の制御が大雑把であり、エンジン停止過程のエンジン回転挙動のばらつきを十分に補償することが困難である。このため、上記特許文献1のものでは、エンジン回転停止位置のばらつきを十分に低減できず、再始動性向上の効果が少ないと思われる。
【0004】
この課題を解決するために、本願の出願人は、特願2007−53598号、特願2007−54775号の明細書に記載したように、エンジン回転が目標停止位置で停止するまでの目標とするエンジン回転挙動(以下「目標軌道」という)を算出し、エンジン回転挙動を当該目標軌道に合わせるようにエンジンの補機負荷を制御する発明を出願している。
【0005】
ところで、エンジン停止過程では、エンジンの回転による筒内空気の圧縮・膨張により筒内圧が変化するが、エンジン回転停止時のクランク角によってエンジン回転停止時の筒内圧が変化してクランク軸に作用するコンプレッショントルク(筒内圧によって生じるトルク)が変化するため、エンジン回転を目標停止位置で停止させるための適正な目標軌道も変化する。上記出願発明では、このような目標軌道の変化は考慮されていないため、その分、目標軌道の精度が悪くなる。
【0006】
このような課題を解決するために、本願の出願人は、特願2007−325520号の明細書に記載したように、コンプレッションの影響を考慮して、目標停止位置に応じて目標軌道を補正する発明を出願している。この発明では、誤差のない状況であれば、精度良く目標軌道を設定できるが、エンジン回転停止挙動を支配するフリクションやコンプレッションの特性は、オイル温度、オイル劣化、経年変化等で変動する。そのため、目標軌道を精度良く設定するには、停止位置誤差からフリクションとコンプレッションを別々に学習する必要があるが、停止位置誤差からコンプレッションとフリクションを別々に学習することは困難である。
【0007】
本発明は、このような事情を考慮してなされたものであり、従って本発明の目的は、エンジン回転停止挙動の目標軌道を精度良く設定できて、エンジン回転停止位置を精度良く目標停止位置に制御することができるエンジン停止制御装置を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、請求項1に係る発明は、エンジン停止要求に応じてエンジン回転を停止させる際に、エンジン回転停止位置を目標停止位置に制御するようにエンジン回転挙動を電動機のトルクで制御するエンジン停止制御を実行するエンジン停止制御装置において、前記目標停止位置から所定クランク角手前に設定した基準点の目標回転速度を設定する基準点目標回転速度設定手段と、前記エンジン停止制御開始から前記基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(以下「目標軌道」という)を前記基準点の目標回転速度とエンジンフリクションとに基づいて算出する目標軌道算出手段と、前記エンジン停止制御の実行中にエンジン回転挙動を前記目標軌道に一致させるように前記電動機のトルクを制御する停止制御手段とを備えた構成としたものである。
【0009】
コンプレッションの影響は、エンジン回転が停止する直前の極低回転領域で現れるため、本発明のように、目標停止位置から所定クランク角手前に設定した基準点の目標回転速度に至るまでの目標軌道を設定するようにすれば、コンプレッションの影響が現れる極低回転領域に至る前の領域で目標軌道を設定することができる。これにより、エンジン回転停止挙動中に、コンプレッションの影響を受けずにエンジン回転挙動を電動機により精度良く目標軌道に一致させることができて、基準点で実回転速度を目標回転速度に精度良く一致させることができる。基準点の目標回転速度は、基準点からエンジン回転を目標停止位置で停止させるのに必要な基準値のエンジン回転速度に設定されているため(つまり基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため)、本発明により基準点で実回転速度を目標回転速度に精度良く一致させることが可能になれば、エンジン回転の実停止位置を目標停止位置に精度良く一致させることが可能となる。
【0010】
この場合、請求項2のように、基準点の目標回転速度を電動機のトルクが発生する回転速度範囲の下限回転速度以下に設定するようにすると良い。このようにすれば、基準点から目標停止位置に至るまでのエンジン回転挙動に電動機のトルクの影響が現れなくなり、電動機のトルクによる停止位置の誤差を無くすことができて、停止位置の精度を向上させることができる。
【0011】
また、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの過程で、基準点までのクランク角に応じて内燃機関の複数の補機等によりエンジンフリクションの特性が変化する場合があることを考慮して、請求項3のように、複数のエンジンフリクションの中から、基準点までのクランク角に応じたエンジンフリクションを選択して目標軌道を算出するようにすると良い。このようにすれば、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの過程で、基準点までのクランク角に応じて内燃機関の複数の補機等によりエンジンフリクションの特性が変化するのに対応して、目標軌道の算出に用いるエンジンフリクションを変化させることができ、目標軌道の精度を向上させることができる。
【0012】
また、請求項4のように、エンジン回転の実際の停止位置と目標停止位置との差(つまり停止位置の誤差)に基づいて基準点の目標回転速度を学習補正する学習補正手段を備えた構成としても良い。要するに、基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため、停止位置の誤差は、基準点の目標回転速度の誤差(目標軌道の誤差)により生じるものと考えられる。従って、停止位置の誤差に基づいて基準点の目標回転速度を学習補正するようにすれば、基準点の目標回転速度の精度を向上させることができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態を具体化した一実施例を説明する。
まず、図1に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関であるエンジン11の吸気管12の最上流部には、エアクリーナ13が設けられ、このエアクリーナ13の下流側には、吸入空気量を検出するエアフローメータ14が設けられている。このエアフローメータ14の下流側には、モータ15によって開度調節されるスロットルバルブ16と、このスロットルバルブ16の開度(スロットル開度)を検出するスロットル開度センサ17とが設けられている。スロットルバルブ16の下流側には、サージタンク18が設けられ、このサージタンク18には、エンジン11の各気筒に空気を導入する吸気マニホールド20が設けられ、各気筒の吸気マニホールド20の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁21が取り付けられている。また、エンジン11のシリンダヘッドには、各気筒毎に点火プラグ22が取り付けられ、各点火プラグ22の火花放電によって筒内の混合気に着火される。
【0014】
一方、エンジン11の排気管23には、排出ガスの空燃比又はリッチ/リーン等を検出する排出ガスセンサ24(空燃比センサ、酸素センサ等)が設けられ、この排出ガスセンサ24の下流側に、排出ガスを浄化する三元触媒等の触媒25が設けられている。
【0015】
また、エンジン11のシリンダブロックには、冷却水温を検出する冷却水温センサ26が取り付けられている。エンジン11のクランク軸27には、外周部に所定クランク角ピッチで歯が形成されたシグナルロータ29が嵌着され、このシグナルロータ29の外周部に対向してクランク角センサ28が取り付けられ、シグナルロータ29の歯がクランク角センサ28に対向する毎(クランク軸27が所定クランク角回転する毎)にクランク角センサ28からクランクパルス信号が出力される。このクランク角センサ28の出力パルスの周期(パルス出力周波数)からエンジン回転速度が検出される。また、図示はしないが、エンジン11のカム軸の回転に同期して所定のカム角でカムパルス信号を出力するカム角センサが設置されている。
【0016】
エンジン11の代表的な補機であるオルタネータ33には、クランク軸27の回転がベルト伝達機構(図示せず)を介して伝達される。これにより、エンジン11の動力でオルタネータ33が回転駆動されて発電するようになっている。このオルタネータ33の発電制御電流(フィールド電流)をデューティ制御することで、オルタネータ33のトルクを制御することができる。本実施例では、オルタネータ33を特許請求の範囲でいう電動機として使用するようにしている。
【0017】
上述した各種センサの出力は、エンジン制御回路(以下「ECU」と表記する)30に入力される。このECU30は、マイクロコンピュータを主体として構成され、各種センサで検出したエンジン運転状態に応じて、燃料噴射弁21の燃料噴射量や噴射時期、点火プラグ22の点火時期を制御すると共に、アイドル運転中に所定の自動停止条件が成立してエンジン停止要求(アイドルストップ要求)が発生したときに、燃焼(点火及び/又は燃料噴射)を停止させてエンジン回転を停止させるアイドルストップを実行し、このアイドルストップによるエンジン停止中に運転者が車両を発進させるための操作を行ったときに、所定の自動始動条件が成立してスタータ(図示せず)に通電してエンジン11をクランキングして自動始動させる。
【0018】
更に、ECU30は、後述する図3乃至図14の各ルーチンを実行することで、エンジン回転の目標停止位置(目標停止クランク角)から所定クランク角手前の上死点(TDC)に設定した基準点の目標回転速度を設定する基準点目標回転速度設定手段と、エンジン停止制御開始から前記基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(以下「目標軌道」という)を前記基準点の目標回転速度とエンジンフリクションとに基づいて算出する目標軌道算出手段と、エンジン停止制御の実行中にエンジン回転挙動を前記目標軌道に一致させるようにオルタネータ33のトルクを制御する停止制御手段として機能する。
【0019】
ここで、エンジン回転の目標停止位置から所定クランク角手前のTDCに設定した基準点の目標回転速度は、オルタネータ33のトルクが発生する回転速度範囲の下限回転速度以下で且つ該下限回転速度に近い回転速度に設定されている。具体的には、基準点とその直前のTDCとの間でエンジン回転速度がオルタネータ33のトルク発生回転速度範囲の下限回転速度以下となるように基準点の目標回転速度が設定されている。このように設定すれば、エンジン回転停止挙動開始から基準点の目標回転速度付近に至るまでの区間は、オルタネータ33のトルクによってエンジン回転挙動を目標軌道に一致させるように制御することが可能になると共に、基準点から目標停止位置に至るまでのエンジン回転挙動にオルタネータ33のトルクが影響を及ぼさなくなり、オルタネータ33のトルクによる停止位置の誤差を無くすことができる。
【0020】
目標軌道は、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの目標とするエンジン回転速度をTDC毎に算出してテーブル(図2参照)に割り付けたものである。
【0021】
エンジン停止過程では、エンジンフリクションによって運動エネルギ(回転エネルギ)が減衰してエンジン回転速度が低下していくため、エンジンフリクションと基準点の目標回転速度に基づいて目標軌道を算出して、実エンジン回転挙動を目標軌道に合わせるようにオルタネータ33のトルクを制御することで、基準点で実エンジン回転速度を目標回転速度に精度良く一致させることが可能になる。しかも、基準点から目標停止位置に至るまでの区間は、オルタネータ33のトルクがエンジン回転挙動に影響を及ぼさなくなるため、オルタネータ33のトルクによる停止位置の誤差を無くすことができて、エンジン回転の実停止位置を目標停止位置に精度良く一致させることが可能となる。
【0022】
更に、本実施例では、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの過程で、基準点までのクランク角に応じてエンジン11の複数の補機等によりエンジンフリクションの特性が変化することを考慮して、複数のエンジンフリクションの中から、基準点までのクランク角に応じたエンジンフリクションを選択して目標軌道を算出するようにしている。図2の例では、基準点からM1 までの区間と、M1 からMまでの区間で異なるエンジンフリクションが設定されている。
【0023】
以上説明した本実施例のエンジン停止制御は、ECU30によって図3乃至図14の各ルーチンに従って実行される。以下、これら各ルーチンの処理内容を説明する。
【0024】
[時間同期ルーチン]
図3の時間同期ルーチンは、ECU30の電源オン期間中(イグニッションスイッチの電源オン期間中)にECU30によって所定周期(例えば8ms周期)で繰り返し実行される。本ルーチンが起動されると、まずステップ100で、後述する図5のエンジン停止要求判定ルーチンを実行して、エンジン停止要求(アイドルストップ要求)が発生しているか否かを判定する。
【0025】
この後、ステップ200に進み、後述する図6のエンジン始動要求判定ルーチンを実行して、エンジン始動要求(アイドルストップ後の自動始動要求)が発生しているか否かを判定する。
【0026】
この後、ステップ300に進み、後述する図7のエンジン停止制御(1) ルーチンを実行して、オルタネータ33に対する要求トルク(以下「要求オルタトルク」という)を算出する。そして、次のステップ400で、後述する図12のエンジン始動制御(1) ルーチンを実行して、自動始動時の第1点火気筒と第2点火気筒を設定する。
【0027】
[クランク角同期ルーチン]
図4のクランク角同期ルーチンは、ECU30の電源オン期間中(イグニッションスイッチの電源オン期間中)にECU30によって所定クランク角毎(例えば30degCA毎)に繰り返し実行される。本ルーチンが起動されると、まずステップ500で、後述する図14のエンジン始動制御(2) ルーチンを実行して、自動始動時の燃料噴射制御、点火制御、第1点火気筒の失火判定を実行する。
【0028】
この後、ステップ550に進み、停止位置制御の実行タイミングであるTDCタイミングであるか否かを判定し、TDCタイミングでなければ、そのまま本ルーチンを終了し、TDCタイミングであれば、ステップ600に進み、後述する図10のエンジン停止制御(2) ルーチンを実行して、停止位置制御を実行する。
【0029】
[エンジン停止要求判定ルーチン]
図5のエンジン停止要求判定ルーチンは、図3の時間同期ルーチンのステップ100で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ101で、自動停止条件(アイドルストップ実行条件)が成立しているか否かを判定する。
【0030】
この際、マニュアルミッション車の場合には、次の(a) 又は(b) のいずれか一方の条件が満たされれば、自動停止条件が成立する。
(a) シフト位置が前進ギア、かつ、車速が所定値以下(例えば10km/h以下)、かつ、ブレーキ踏み込み(ブレーキON)、かつ、クラッチ切断(クラッチペダル踏み込み状態)であること
(b) シフト位置がニュートラル位置、かつ、クラッチ接続(クラッチペダルが踏み込まれていない状態)であること
【0031】
一方、自動変速機付き車両(AT車)の場合には、次の(c) 又は(d) のいずれか一方の条件が満たされれば、自動停止条件が成立する。
(c) シフト位置が前進レンジ又はニュートラルレンジ、かつ、車速が所定値以下(例えば10km/h以下)、かつ、ブレーキ踏み込み(ブレーキON)であること
(d) シフト位置がパーキングレンジであること
【0032】
上記ステップ101で、自動停止条件が成立していないと判定されれば、そのまま本ルーチンを終了し、自動停止条件が成立していると判定されれば、ステップ102に進み、エンジン停止要求を出力(ON)して本ルーチンを終了する。
【0033】
[エンジン始動要求判定ルーチン]
図6のエンジン始動要求判定ルーチンは、図3の時間同期ルーチンのステップ200で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ201で、自動始動条件が成立しているか否か(つまり運転者が車両を発進させるための操作を行ったか否か)を判定する。
【0034】
この際、マニュアルミッション車の場合には、次の(a) 又は(b) のいずれか一方の条件が満たされれば、運転者が車両を発進させるための操作を行ったと判断して、自動始動条件が成立する。
(a) シフト位置が前進ギア、かつ、ブレーキ操作解除(ブレーキOFF)又はクラッチ接続(クラッチペダルが踏み込まれていない状態)であること
(b) シフト位置がニュートラル位置、かつ、クラッチ切断(クラッチペダル踏み込み状態)であること
【0035】
一方、自動変速機付き車両(AT車)の場合には、次の(c) の条件が満たされれば、運転者が車両を発進させるための操作を行ったと判断して、自動停止条件が成立する。
(c) シフト位置がパーキングレンジ以外、かつ、ブレーキ操作解除(ブレーキOFF)であること
【0036】
上記ステップ201で、自動始動条件が成立していないと判定されれば、そのまま本ルーチンを終了し、自動始動条件が成立していると判定されれば、ステップ202に進み、ニュートラルレンジ又はクラッチ切断(クラッチペダル踏み込み状態)であるか否かを判定し、ニュートラルレンジ、クラッチ切断のいずれでもない場合には、自動始動するとエンジン11の動力が駆動輪に伝達されて車両が勝手に動き始めるため、エンジン始動要求を出力せずに本ルーチンを終了する。
【0037】
一方、上記ステップ202で、ニュートラルレンジ又はクラッチ切断(クラッチペダル踏み込み状態)であると判定された場合は、自動始動してもエンジン11から駆動輪への動力の伝達が遮断されて停車状態を維持するため、ステップ203に進み、エンジン始動要求を出力して本ルーチンを終了する。
【0038】
[エンジン停止制御(1) ルーチン]
図7のエンジン停止制御(1) ルーチンは、図3の時間同期ルーチンのステップ300で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ301で、前記図5のエンジン停止要求判定ルーチンの処理結果に基づいてエンジン停止要求が出力されたか否かを判定し、エンジン停止要求が出力されていなければ、以降の処理を行わず、そのまま本ルーチンを終了する。
【0039】
上記ステップ301で、エンジン停止要求が出力されたと判定されれば、ステップ302に進み、後述するステップ304でセットされる燃料カットフラグが燃料カット実行中を意味するONにセットされているか否かを判定し、まだ燃料カットフラグがONにセットされていなければ、ステップ303に進み、現在のエンジン回転速度Neが所定値Ne1よりも高いか否かを判定し、その判定結果に応じて、ステップ304〜306の処理又はステップ307〜309の処理を実行する。これらの処理は、エンジン停止制御開始時のエンジン回転速度Neが低くなり過ぎると、基準点に到達するまでのTDC数が少なくなり過ぎてエンジン回転挙動を目標軌道に一致させるのが困難となるため、エンジン停止制御開始時のエンジン回転速度Neを、エンジン回転挙動を目標軌道に一致させるのに必要な所定値Ne1以上に制御するための処理である。
【0040】
具体的には、ステップ303で、現在のエンジン回転速度Neが所定値Ne1よりも高いと判定されれば、エンジン回転挙動を目標軌道に一致させるのに必要なエンジン回転速度Neが確保されていると判断して、ステップ304に進み、燃料カットフラグをONにセットして燃料カットを実行し、次のステップ305で、スロットル開度を第1の所定値Ta1(アイドルスピードコントロール開度よりも開いた開度)に開き、次のステップ306で、要求オルタトルクを、オルタネータ33のトルク制御の基準トルクとなるオフセットトルクTofs と、実エンジン回転挙動と目標軌道との誤差をフィードバック補正するためのフィードバック補正トルクTfbとを足し合わせて設定する。
要求オルタトルク=Tofs +Tfb
【0041】
ここで、オフセットトルクTofs は、オルタネータ33の制御可能な最大トルクの例えば半分(1/2)に設定されている。オルタネータ33は、モータジェネレータと異なり、アシストトルクを出力できないという事情があっても、仮想的にオルタネータ33のトルクを正負両方向に制御することが可能となり(オフセットトルクTofs 以下のトルクを仮想的に負のトルクとし、オフセットトルクTofs 以上のトルクを仮想的に正のトルクとしてオルタネータ33のトルクを制御することが可能となり)、目標軌道へのエンジン回転挙動の追従性を向上することができる。
【0042】
尚、オフセットトルクTofs は、最大トルクの半分(1/2)に限定されず、例えば、最大トルクの1/3、1/4、2/3、3/4等であっても良く、要は、オルタネータ33の制御可能な最大トルクよりも小さく、0よりも大きい適宜のトルクをオフセットトルクTofs に設定すれば良い。
0<Tofs <最大トルク
【0043】
尚、前述したステップ302で、既に燃料カットフラグがONにセットされていると判定されれば、上記ステップ303〜305の処理を飛び越して、ステップ306の処理を実行する。
【0044】
一方、前記ステップ303で、現在のエンジン回転速度Neが所定値Ne1以下と判定されれば、ステップ307に進み、点火時期を所定量又はノック限界まで進角させる。これにより、エンジントルクを増加させてエンジン回転速度Neを上昇させる。更に、次のステップ308で、コンプレッサOFF要求を出力して(コンプレッサOFFフラグをONして)、空調装置のコンプレッサをOFFする。これにより、エンジン11の負荷を軽減して、エンジン回転速度Neを上昇させる。その他、吸入空気量を増加させたり(スロットル開度を増加させたり)、燃料噴射量を増加させたりして、エンジン回転速度を上昇させるようにしても良い。この後、ステップ309に進み、要求オルタトルクをオフセットトルクTofs のみとする。
要求オルタトルク=Tofs
【0045】
そして、次のステップ310で、スロットル開き要求があるか否か(つまり停止位置の直前のTDCを通過したか否か)を判定し、スロットル開き要求があれば、ステップ311に進み、スロットル開度を、第1の所定値Ta1よりも大きい第2の所定値Ta2に設定する。上記ステップ310で、スロットル開き要求がないと判定されれば、上記ステップ311の処理が行われず、スロットル開度が引き続き第1の所定値Ta1に維持される。
【0046】
この後、ステップ312に進み、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過したか否かを判定する。ここで、図15に示すように、停止間際の回転速度Ne2は、停止位置の直前のTDCを通過した直後の回転速度に相当し、所定時間は、エンジン回転が確実に停止した状態になるまで待つための時間に設定されている。
【0047】
上記ステップ312で、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過していないと判定されれば、そのまま本ルーチンを終了する。その後、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過した時点で、上記ステップ312で「Yes」と判定されて、ステップ313に進み、後述する図8の基準点学習ルーチンを実行して、次回の基準点の目標Neを算出する。ここで、「Ne」は「回転速度」を意味する(以下、同じ)。この後、ステップ314に進み、後述する図9のフリクション学習ルーチンを実行して、エンジン11のフリクション1,2(Tfr1 ,Tfr2 )を学習する。
【0048】
[基準点学習ルーチン]
図8の基準点学習ルーチンは、図7のエンジン停止制御(1) ルーチンのステップ313で実行されるサブルーチンであり、特許請求の範囲でいう学習補正手段としての役割を果たす。本ルーチンが起動されると、まずステップ321で、停止位置誤差を次式により算出する。
【0049】
停止位置誤差=(実停止位置クランク角−今回基準点クランク角)mod720
+{(720/N)×K−目標停止位置クランク角}
【0050】
ここで、(実停止位置クランク角−今回基準点クランク角)mod720は、「実停止位置クランク角−今回基準点クランク角」を720[degCA]で割り算した時の余りのクランク角である。
例えば、「実停止位置クランク角−今回基準点クランク角」が1000[degCA]であれば、(1000)mod720=280[degCA]となる。
【0051】
「実停止位置クランク角−今回基準点クランク角」が400[degCA]であれば、(400)mod720=400[degCA]となる。上式において、Nはエンジン11の気筒数、Kは今回の基準点から実停止位置までに通過したTDC数である。
【0052】
この後、ステップ322に進み、図16に示す規範Ne2 誤差上限・下限マップを参照して、停止位置誤差に応じた規範Ne2 誤差上限・下限を算出する。
規範Ne2 誤差上限=規範Ne2 誤差上限マップ(停止位置誤差)
規範Ne2 誤差下限=規範Ne2 誤差下限マップ(停止位置誤差)
図16に示す規範Ne2 誤差上限・下限マップは、停止位置誤差が大きくなるほど、規範Ne2 誤差上限・下限が大きくなるように設定されている。
【0053】
この後、ステップ323に進み、次回基準点目標Neベース値上限・下限を次式により算出する。
次回基準点目標Neベース値上限=√(今回基準点実Ne2 −規範Ne2 誤差下限)
次回基準点目標Neベース値下限=√(今回基準点実Ne2 −規範Ne2 誤差上限)
【0054】
この後、ステップ324に進み、次回基準点目標Neベース値下限を今回基準点目標Neと比較して、次回基準点目標Neベース値下限が今回基準点目標Neよりも大きければ、ステップ326に進み、次回基準点目標Neベース値として次回基準点目標Neベース値下限を用いる。
次回基準点目標Neベース値=次回基準点目標Neベース値下限
【0055】
一方、上記ステップ324で、次回基準点目標Neベース値下限が今回基準点目標Ne以下と判定されれば、ステップ325に進み、次回基準点目標Neベース値上限を今回基準点目標Neと比較して、次回基準点目標Neベース値上限が今回基準点目標Neよりも小さければ、ステップ327に進み、次回基準点目標Neベース値として次回基準点目標Neベース値上限を用いる。
次回基準点目標Neベース値=次回基準点目標Neベース値上限
【0056】
上記ステップ324、325でいずれも「No」と判定された場合、つまり次回基準点目標Neベース値下限とその上限との間に今回基準点目標Neが位置する場合は、ステップ328に進み、次回基準点目標Neベース値として今回基準点目標Neを引き続き用いる。
次回基準点目標Neベース値=今回基準点目標Ne
【0057】
以上のようにして、ステップ326〜328のいずれかで次回基準点目標Neベース値を設定した後、ステップ329に進み、次回基準点目標Neを次式によりなまし処理して求める。
【0058】
次回基準点目標Ne
=今回基準点目標Ne−γ・(今回基準点目標Ne−次回基準点目標Neベース値) 上式において、γはなまし係数で、0<γ≦1である。
【0059】
[フリクション学習ルーチン]
図9のフリクション学習ルーチンは、図7のエンジン停止制御(1) ルーチンのステップ314で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ330で、フリクション学習実行条件が成立しているか否かを、後述する停止位置制御モード=1(フィードバック補正トルクTfb=0)であるか否かによって判定して、フリクション学習実行条件が成立していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【0060】
一方、上記ステップ330で、フリクション学習実行条件が成立していると判定されれば、ステップ331に進み、フリクション1(Tfr1 )を算出する区間(0〜M1 )の実回転挙動の軌道データ(xn ,yn )を読み込む。
【0061】
xn ={0,720/N,……,(720/N)×M1 }
yn ={基準点実Ne2 ,m=1時実Ne2 ,……,m=M1 時実Ne2 }
【0062】
ここで、xn は、フリクション1(図2参照)を算出する区間の基準点からの各TDC(0〜M1 )のクランク角であり、yn は、フリクション1の区間の各TDCの実Ne2 である。尚、Nはエンジン11の気筒数、M1 はフリクション1の区間の開始位置(基準点からのTDC数)を表している。
この後、ステップ332に進み、最小二乗法で傾き1を次式により算出する。
【0063】
【数1】
【0064】
ここで、n=M1 +1である。
この後、ステップ333に進み、傾き1を用いて、フリクション1(Tfr1 )を次式により算出する。
Tfr1 =(π・I/10)×傾き1
ここで、Iはエンジン慣性モーメント[kgm]である。
【0065】
この後、ステップ334に進み、フリクション2(Tfr2 )を算出する区間(M1 〜M)の実回転挙動の軌道データ(xn ,yn )を読み込む。
xn ={0,720/N,……,(720/N)×(M−M1 )}
yn ={M1 時実Ne2 ,m=M1 +1時実Ne2 ,……,m=M時実Ne2 }
ここで、xn は、フリクション2(図2参照)を算出する区間の各TDC(M1 〜M)のクランク角であり、yn は、フリクション2の区間の各TDCの実Ne2 である。
【0066】
この後、ステップ335に進み、最小二乗法で傾き2を算出した後、ステップ336に進み、傾き2を用いて、フリクション2(Tfr2 )を次式により算出する。
Tfr2 =(π・I/10)×傾き2
フリクションが3つ以上ある場合は、上述した最小二乗法で傾きを算出してフリクションを算出する処理を繰り返せば良い。
【0067】
尚、本発明は、フリクションを学習する機能(フリクション学習ルーチン)を省略して、予め、フリクションを実験データや設計データ等に基づいて算出して、それをECU30のROM等の不揮発性メモリに記憶しておいても良い。
[エンジン停止制御(2) ルーチン]
図10のエンジン停止制御(2) ルーチンは、図4のクランク角同期ルーチンのステップ600で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ601で、目標Neを次のようにして算出する。
【0068】
まず、フリクション1(Tfr1 )の区間(0〜M1 )とフリクション2(Tfr2 )の区間(M1 〜M)の目標Ne2 [M]を次式により算出する。
目標Ne2 [M]
={10/(π・I)}×[0,720Tfr1 /N,(720Tfr1 /N)×2,… …,(720Tfr1 /N)×M1 ,(720Tfr2 /N)×(M1 +1),… …,(720Tfr2 /N)×(M−1)]+基準点目標Ne2
【0069】
一般に、エネルギ保存則により、エンジン慣性モーメントIとフリクションTfrとの間には次式の関係が成り立つ。
(1/2)・I・ω2 =Tfr・Θ
ここで、ωは角速度[rad/s]、Θは回転角[rad]である。
ω=(2π/60)・Ne
Θ=(π/180)・θ
θ:回転角[deg]
【0070】
上式の関係から、次式が導き出される。
Ne2 =(10/π・I)・Tfr・θ
上式の関係を利用して、目標Ne2 [M]を算出する。
目標Ne2 [M]の算出後、次式を満足するm(但し0≦m≦M)を求める。
【0071】
目標Ne2 [m]−(目標Ne2 [m]−目標Ne2 [m−1])(1−α)≦実Ne2 <目標Ne2 [m]+(目標Ne2 [m+1]−目標Ne2 [m])α
【0072】
ここで、0≦α≦1である。上式を満足するmは、今回制御しようとするTDCの位置(基準点からm番目のTDC)を表す。
この後、基準点からm番目のTDCの目標Ne2 から次式により今回の目標Neを算出する。
目標Ne=√目標Ne2
これにより、実Neが低下するに従って、各TDCの目標NeがフリクションTfr1 ,Tfr2 と基準点目標Neとに基づいて順次算出され、目標軌道が設定される。
【0073】
以上のようにして、今回の目標Neを算出した後、ステップ602に進み、停止位置制御実行条件が成立しているか否かを、例えば次の2つの条件(a),(b) を両方とも満たすか否かで判定する。
(a) 燃料カット後のTDC数が所定値(例えば2)以上であること
(b) 1<m<所定値(例えば15)であること
ここで、mは基準点までのTDC数である。
【0074】
上記条件(a)を設ける理由は、図21に示すように、燃料カット直後(エンジン停止挙動初期)は、クランク角センサ28の出力パルスから検出されるエンジン回転速度Neのなまし処理のために、エンジン回転速度Neの低下幅ΔNeが実際よりも小さくなるため、フリクションが実際よりも小さく見積もられてしまうためである。
【0075】
上記条件(b)を設ける理由は、基準点から必要以上に遠く離れたTDCから停止位置制御を開始する必要がないためである。また、エンジン回転速度が高すぎると、停止位置制御が困難である。
【0076】
上記2つの条件(a),(b) のいずれか一方でも満たさない条件があれば、停止位置制御実行条件が不成立となり、停止位置制御を実行しない。
【0077】
上記2つの条件(a),(b) を両方とも満たせば、停止位置制御実行条件が成立して、ステップ603に進み、後述する図11の停止位置制御ルーチンを実行して、要求オルタトルクのフィードバック補正トルクTfbを算出する。
【0078】
この後、ステップ604に進み、基準点に到達したか否か(前回m=1であるか否か)を判定して、基準点に到達していなければ、そのまま本ルーチンを終了し、基準点に到達していれば、ステップ605に進み、スロットル開き要求を出力して、スロットル開度を、第1の所定値Ta1よりも大きい第2の所定値Ta2まで開く。
【0079】
尚、スロットル開度を開くタイミングはTDCに同期していれば良いため、上記ステップ604で、前回m=2(又は3等)であるか否かを判定して、前回m=2(又は3等)である場合に、スロットル開き要求を出力するようにしても良い。要するに、基準点又はそれよりも少し手前のTDCでスロットル開度を開けば良い。
【0080】
[停止位置制御ルーチン]
図11の停止位置制御ルーチンは、上記図10のエンジン停止制御(2) ルーチンのステップ603で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ611で、停止位置制御モード判定済みであるか否かを判定して、停止位置制御モード判定済みであれば、以降の処理を行うことなく、本ルーチンを終了する。
【0081】
これに対して、停止位置制御モードがまだ判定されていない場合は、ステップ612に進み、図17に示す制御可能なエネルギ偏差の下限値ThAltMinのマップを参照して、目標Ne2 と実Ne2 との偏差(エネルギ偏差)が、今回制御しようとするm番目のTDCにおける下限値ThAltMinよりも小さいか否かを判定する。その結果、目標Ne2 と実Ne2 との偏差が下限値ThAltMinよりも小さいと判定されれば、ステップ613に進み、停止位置制御モードを「3」にセットし、次のステップ614で、要求オルタトルクのフィードバック補正トルクTfbを最小値(例えば−8)にセットする。
【0082】
一方、上記ステップ612で、目標Ne2 と実Ne2 との偏差が下限値ThAltMin以上と判定されれば、ステップ615に進み、図18に示す制御可能なエネルギ偏差の上限値ThAltMaxのマップを参照して、目標Ne2 と実Ne2 との偏差が、今回制御しようとするm番目のTDCにおける上限値ThAltMaxよりも大きいか否かを判定する。その結果、目標Ne2 と実Ne2 との偏差が上限値ThAltMaxよりも大きいと判定されれば、ステップ616に進み、停止位置制御モードを「2」にセットし、次のステップ617で、要求オルタトルクのフィードバック補正トルクTfbを最大値(例えば10)にセットする。
【0083】
上記ステップ615で、目標Ne2 と実Ne2 との偏差が上限値ThAltMax以下と判定されれば、ステップ618に進み、目標Ne2 と実Ne2 との偏差の絶対値|目標Ne2 −実Ne2 |が判定値(例えば5000)よりも小さいか否かを判定して、|目標Ne2 −実Ne2 |が判定値よりも小さい場合は、目標Ne2 と実Ne2 との偏差が小さいため、オルタネータ33のトルクをフィードバック制御する必要はないと判断して、ステップ619に進み、停止位置制御モードを「1」にセットし、次のステップ620で、要求オルタトルクのフィードバック補正トルクTfbを0にセットする。これにより、エンジン回転停止挙動全域にわたってオルタネータ33のトルクをオフセットトルクTofs に固定した状態(フィードバック制御を禁止した状態)で、フリクション1,2(Tfr1 ,Tfr2 )を学習することが可能となる。
【0084】
また、上記ステップ618で、|目標Ne2 −実Ne2 |が判定値以上と判定されれば、フィードバック制御領域と判断して、ステップ621に進み、停止位置制御モードを「0」にセットし、次のステップ622で、要求オルタトルクのフィードバック補正トルクTfbを次式により算出する。
【0085】
Tfb=(1/2)×I×(2π/60)2 ×(実Ne2 −目標Ne2 )
÷{(4π/N)×(m−1−β)}
【0086】
ここで、βは、基準点からオルタネータ33のトルクが発生しなくなる位置までのクランク角を算出するための調整パラメータである(0≦β≦1)。
要するに、図22に示すように、基準点から所定クランク角[(4π/N)×β]手前の位置でオルタネータ33のトルクが発生しなくなるため、上式により、基準点から所定クランク角[(4π/N)×β]手前の位置で目標Ne2 と実Ne2 との偏差(エネルギ偏差)が0となるようにフィードバック補正トルクTfbを算出するものである。この場合、基準点から所定クランク角[(4π/N)×β]手前の位置は、実Neがオルタネータ33のトルク発生回転速度範囲の下限回転速度となる位置に設定しているが、オルタネータ33のトルク発生回転速度範囲の下限回転速度よりも少し高い回転速度となる位置に設定しても良い。
【0087】
以上説明した停止位置制御ルーチンの処理により、停止位置制御開始当初の目標Ne2 と実Ne2 との偏差(エネルギ偏差)に基づいて停止位置制御モードを判定し、その判定結果に応じて要求オルタトルクのフィードバック補正トルクTfbを次のように設定する。
【0088】
(A) 目標Ne2 と実Ne2 との偏差が制御可能なエネルギ偏差の下限値ThAltMinよりも小さい場合は、停止位置制御モードを「3」にセットし、要求オルタトルクのフィードバック補正トルクTfbを最小値(例えば−8)にセットする。
【0089】
(B) 目標Ne2 と実Ne2 との偏差が制御可能なエネルギ偏差の上限値ThAltMaxよりも大きい場合は、停止位置制御モードを「2」にセットし、要求オルタトルクのフィードバック補正トルクTfbを最大値(例えば10)にセットする。
【0090】
上記(A),(B) のように、目標Ne2 と実Ne2 との偏差が制御可能なエネルギ偏差の上下限を越える場合は、要求オルタトルクのフィードバック補正トルクTfbを最小値又は最大値に固定すれば、フィードバック制御では制御できなかった領域まで制御可能となる。
【0091】
(C) |目標Ne2 −実Ne2 |が判定値よりも小さい場合は、目標Ne2 と実Ne2 との偏差が小さいため、オルタネータ33のトルクをフィードバック制御する必要はないと判断して、停止位置制御モードを「1」にセットし、要求オルタトルクのフィードバック補正トルクTfbを0にセットする。これにより、エンジン回転停止挙動全域にわたってオルタネータ33のトルクのフィードバック制御を禁止した状態で、フリクション1,2(Tfr1 ,Tfr2 )を学習することが可能となる。
【0092】
(D) 上記以外の場合は、フィードバック制御領域と判断して、停止位置制御モードを「0」にセットし、要求オルタトルクのフィードバック補正トルクTfbを算出する。
【0093】
[エンジン始動制御(1) ルーチン]
図12のエンジン始動制御(1) ルーチンは、図3の時間同期ルーチンのステップ400で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ401で、前記図6のエンジン始動要求判定ルーチンの処理結果に基づいてエンジン始動要求があるか否かを判定し、エンジン始動要求がなければ、そのまま本ルーチンを終了する。
【0094】
これに対して、エンジン始動要求があれば、ステップ402に進み、自動始動時に最初に点火する第1点火気筒が未設定であるか否かを判定し、第1点火気筒が設定済みであれば、以降の処理を行うことなく、本ルーチンを終了する。
【0095】
一方、第1点火気筒が未設定であれば、ステップ403に進み、図13の第1点火気筒マップ(4気筒エンジンの場合)を参照して、停止位置のクランク角に応じた仮第1点火気筒を設定する。本実施例では、停止位置を目標停止位置に精度良く制御できるため、停止位置のクランク角は目標停止位置のクランク角とすれば良い。この後、ステップ404に進み、仮第1点火気筒の次にTDCとなる気筒を仮第2点火気筒として設定する。
【0096】
この後、ステップ405に進み、後述する図14のエンジン始動制御(2) ルーチンによって検出された仮第1点火気筒の失火回数Nmfが第1点火禁止しきい値を越えているか否かを判定し、仮第1点火気筒の失火回数Nmfが第1点火禁止しきい値を越えていれば、ステップ406に進み、仮第2点火気筒を第1点火気筒とし、仮第2点火気筒の次にTDCとなる気筒を第2点火気筒として設定する。
【0097】
これに対して、上記ステップ405で、仮第1点火気筒の失火回数Nmfが第1点火禁止しきい値以下と判定されれば、ステップ407に進み、仮第1点火気筒をそのまま第1点火気筒とし、仮第2点火気筒をそのまま第2点火気筒として設定する。
[エンジン始動制御(2) ルーチン]
図14のエンジン始動制御(2) ルーチンは、図4のクランク角同期ルーチンのステップ500で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ501で、前記図6のエンジン始動要求判定ルーチンの処理結果に基づいてエンジン始動要求があるか否かを判定し、エンジン始動要求がなければ、そのまま本ルーチンを終了する。
【0098】
これに対して、エンジン始動要求があれば、ステップ502に進み、燃料噴射制御を実行し、次のステップ503で、点火制御を実行する。
この後、ステップ504に進み、TDCタイミングであるか否かを判定し、TDCタイミングでなければ、そのまま本ルーチンを終了する。一方、TDCタイミングであれば、ステップ505に進み、第1点火気筒のTDCタイミングであるか否かを判定し、第1点火気筒のTDCタイミングであれば、ステップ506に進み、第1点火気筒のTDCタイミングの実NeをNefとしてECU30のメモリ(RAM等)に記憶する。
【0099】
一方、上記ステップ505で、第1点火気筒のTDCタイミングでないと判定されれば、ステップ507に進み、第2点火気筒のTDCタイミングであるか否かを判定し、第2点火気筒のTDCタイミングでなければ、そのまま本ルーチンを終了する。
【0100】
その後、第2点火気筒のTDCタイミングになった時点で、ステップ508に進み、第2点火気筒のTDCタイミングの実Neとメモリに記憶された第1点火気筒のTDCタイミングの回転速度Nefとの偏差ΔNe(=実Ne−Nef)が失火判定しきい値以下であるか否かで、第1点火気筒が失火したか否かを判定する。
【0101】
図19に示すように、第1点火気筒が正常燃焼すれば、実Neが急上昇して、第2点火気筒のTDCタイミングの実Neと第1点火気筒のTDCタイミングの実Ne(=Nef)との偏差ΔNeが大きくなるが、図20に示すように、第1点火気筒が失火すると、実Neがあまり上昇しないため、第2点火気筒のTDCタイミングの実Neと第1点火気筒のTDCタイミングの実Ne(=Nef)との偏差ΔNeが正常燃焼時と比べて著しく小さくなる。この特性から、偏差ΔNeが失火判定しきい値以下であれば、第1点火気筒が失火したと判定し、ステップ509に進み、第1点火気筒の失火回数Nmfをカウントする失火回数カウンタをカウントアップする。この失火回数カウンタは、各気筒毎にそれぞれ設けられ、各気筒毎に第1点火気筒となった時の失火回数Nmfがカウントされる。一方、偏差ΔNeが失火判定しきい値よりも大きければ、第1点火気筒が正常燃焼したと判定する。
【0102】
以上説明した本実施例のエンジン停止制御の一例が図15にタイムチャートで示されている。この制御例では、エンジン停止要求が出力(ON)された時点で、エンジン回転速度Neが、エンジン回転挙動を目標軌道に一致させるのに必要な所定値Ne1を下回っているため、点火時期を進角させてエンジントルクを増加させ、かつ、コンプレッサOFFフラグをONしてコンプレッサをOFFして、エンジン11の負荷を軽減して、エンジン回転速度Neを上昇させる。
【0103】
これにより、エンジン回転速度Neが所定値Ne1を越えると、燃料カットフラグをONして燃料カットを実行すると共に、スロットル開度をアイドルスピードコントロール開度から第1の所定値Ta1まで開く。その後、停止位置制御実行条件が成立した時点で、停止位置制御を開始して、要求オルタトルクをオフセットトルクTofs とフィードバック補正トルクTfbとに基づいて設定する。
要求オルタトルク=Tofs +Tfb
尚、要求オルタトルクは、エンジン停止要求が出力(ON)された時点で、オフセットトルクTofs に設定される。
【0104】
その後、停止位置制御実行条件が不成立となった時点で、要求オルタトルクが0となり、更に、基準点に到達した時点で、スロットル開度を、第1の所定値Ta1から第2の所定値Ta2まで開き、その後、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過した時点で、停止位置誤差に基づいて次回基準点目標Neを学習すると共に、フリクションTfr1 ,Tfr2 を学習する。
【0105】
ところで、コンプレッションの影響は、エンジン回転が停止する直前の極低回転領域で現れるため、本実施例のように、目標停止位置から所定クランク角手前に設定した基準点の目標Neに至るまでの目標軌道(各TDCの目標Ne)を設定するようにすれば、コンプレッションの影響が現れる極低回転領域に至る前の領域で目標軌道を設定することができる。これにより、エンジン回転停止挙動中にコンプレッションの影響を受けずにエンジン回転挙動をオルタネータ33により精度良く目標軌道に一致させることができて、基準点で実Neを目標Neに精度良く一致させることができる。基準点の目標Neは、基準点からエンジン回転を目標停止位置で停止させるのに必要な基準値のエンジン回転速度に設定されているため(つまり基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため)、本実施例の制御により基準点で実Neを目標Neに精度良く一致させることが可能になれば、エンジン回転の実停止位置を目標停止位置に精度良く一致させることが可能となる。
【0106】
しかも、本実施例では、基準点の目標Neをオルタネータ33のトルクが発生する回転速度範囲の下限回転速度以下に設定しているため、基準点から目標停止位置に至るまでのエンジン回転挙動にオルタネータ33のトルクの影響が現れなくなり、オルタネータ33のトルクによる停止位置の誤差を無くすことができて、停止位置の精度を向上させることができる。
【0107】
また、エンジン回転停止挙動開始から基準点の目標Neに至るまでの過程で、基準点までのクランク角(TDC数)に応じてエンジン11の複数の補機等によりエンジンフリクションの特性が変化することを考慮して、本実施例では、複数のエンジンフリクションの中から、基準点までのクランク角(TDC数)に応じたエンジンフリクションを選択して目標軌道を算出するようにしているため、エンジン回転停止挙動開始から基準点の目標Neに至るまでの過程で、基準点までのクランク角(TDC数)に応じてエンジン11の複数の補機等によりエンジンフリクションの特性が変化するのに対応して、目標軌道の算出に用いるエンジンフリクションを変化させることができ、目標軌道の精度を向上させることができる。
【0108】
この場合、基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため、停止位置の誤差は、基準点の目標Neの誤差(目標軌道の誤差)により生じるものと考えられる。この点を考慮して、本実施例では、停止位置の誤差に基づいて基準点の目標Neを学習補正するようにしたので、基準点の目標Neの精度を向上させることができる。
【0109】
ところで、エンジン停止過程で各気筒の筒内圧は、圧縮行程でエンジン回転を妨げる方向(運動エネルギが減少する方向)に作用し、膨張行程でエンジン回転を促進する方向(運動エネルギが増加する方向)に作用するため、TDC毎に筒内圧による運動エネルギの収支が0となる。この点に着目して、本実施例では、目標軌道をTDC毎に設定するようにしたので、筒内圧による周期的な運動エネルギ変化の影響を排除して目標軌道を精度良く設定することができ、目標軌道を設定する際の演算を簡単化することができる。
【0110】
しかしながら、本発明は、目標軌道をTDC毎に設定する構成に限定されず、目標軌道を所定クランク角間隔毎に設定するようにしても良い。
また、本実施例では、エンジン停止制御中にオルタネータ33のトルクを制御するようにしたが、オルタネータ33以外の電動機(例えばハイブリッド車の発電電動機等)を制御するようにしても良い。
【図面の簡単な説明】
【0111】
【図1】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図2】目標軌道の設定方法を説明する図である。
【図3】時間同期ルーチンの処理の流れを説明するフローチャートである。
【図4】クランク角同期ルーチンの処理の流れを説明するフローチャートである。
【図5】エンジン停止要求判定ルーチンの処理の流れを説明するフローチャートである。
【図6】エンジン始動要求判定ルーチンの処理の流れを説明するフローチャートである。
【図7】エンジン停止制御(1) ルーチンの処理の流れを説明するフローチャートである。
【図8】基準点学習ルーチンの処理の流れを説明するフローチャートである。
【図9】フリクション学習ルーチンの処理の流れを説明するフローチャートである。
【図10】エンジン停止制御(2) ルーチンの処理の流れを説明するフローチャートである。
【図11】停止位置制御ルーチンの処理の流れを説明するフローチャートである。
【図12】エンジン始動制御(1) ルーチンの処理の流れを説明するフローチャートである。
【図13】第1点火気筒マップの一例を示す図である。
【図14】エンジン始動制御(2) ルーチンの処理の流れを説明するフローチャートである。
【図15】本実施例のエンジン停止制御の一例を示すタイムチャートである。
【図16】規範Ne2 誤差上限・下限マップの一例を示す図である。
【図17】制御可能なエネルギ偏差の下限値ThAltMinのマップの一例を示す図である。
【図18】制御可能なエネルギ偏差の上限値ThAltMaxのマップの一例を示す図である。
【図19】第1点火気筒が正常燃焼した時のエンジン回転速度Neの挙動の一例を示すタイムチャートである。
【図20】第1点火気筒が失火した時のエンジン回転速度Neの挙動の一例を示すタイムチャートである。
【図21】燃料カット直後(エンジン停止挙動初期)のエンジン回転速度Neの検出値と実際値とクランク角の検出値の挙動を示すタイムチャートである。
【図22】基準点から所定クランク角手前[(4π/N)×β]の位置で目標Ne2 と実Ne2 との偏差(エネルギ偏差)が0となるようにフィードバック補正トルクTfbを算出する方法を説明する図である。
【符号の説明】
【0112】
11…エンジン、12…吸気管、16…スロットルバルブ、21…燃料噴射弁、23…排気管、28…クランク角センサ、30…ECU(基準点目標回転速度設定手段,目標軌道算出手段,停止制御手段,学習補正手段)、33…オルタネータ(電動機)
【技術分野】
【0001】
本発明は、エンジン停止時に、エンジン回転停止位置(停止クランク角)を制御する機能を備えたエンジン停止制御装置に関する発明である。
【背景技術】
【0002】
近年、特許文献1(特開2005−315202号公報)に記載されているように、エンジン自動停止・始動システム(アイドルストップシステム)を搭載した車両では、再始動性を向上させるために、エンジン停止時(アイドルストップ時)にエンジン回転停止位置(停止クランク角)を始動に適したクランク角範囲に制御することを目的として、エンジンを自動停止させる際に、オルタネータの目標電流値を予め大きな値に設定された初期値に上昇させた後に低下させる制御を実行するようにしたものがある。
【特許文献1】特開2005−315202号公報(第2頁等)
【発明の開示】
【発明が解決しようとする課題】
【0003】
上記特許文献1に記載のエンジン停止制御装置は、エンジンを自動停止させる際にオルタネータの負荷を制御することでエンジン回転停止位置を目標のクランク角範囲に制御しようとするものであるが、実際には、ピストンが圧縮上死点(TDC)を通過する時点で検出されたエンジン回転速度が480rpm〜540rpm内であるときに、予め設定されたマップを用いてオルタネータの目標電流値をその時点のエンジン回転速度に応じて設定するだけであるので(特許文献1の段落[0069]参照)、オルタネータ負荷の制御が大雑把であり、エンジン停止過程のエンジン回転挙動のばらつきを十分に補償することが困難である。このため、上記特許文献1のものでは、エンジン回転停止位置のばらつきを十分に低減できず、再始動性向上の効果が少ないと思われる。
【0004】
この課題を解決するために、本願の出願人は、特願2007−53598号、特願2007−54775号の明細書に記載したように、エンジン回転が目標停止位置で停止するまでの目標とするエンジン回転挙動(以下「目標軌道」という)を算出し、エンジン回転挙動を当該目標軌道に合わせるようにエンジンの補機負荷を制御する発明を出願している。
【0005】
ところで、エンジン停止過程では、エンジンの回転による筒内空気の圧縮・膨張により筒内圧が変化するが、エンジン回転停止時のクランク角によってエンジン回転停止時の筒内圧が変化してクランク軸に作用するコンプレッショントルク(筒内圧によって生じるトルク)が変化するため、エンジン回転を目標停止位置で停止させるための適正な目標軌道も変化する。上記出願発明では、このような目標軌道の変化は考慮されていないため、その分、目標軌道の精度が悪くなる。
【0006】
このような課題を解決するために、本願の出願人は、特願2007−325520号の明細書に記載したように、コンプレッションの影響を考慮して、目標停止位置に応じて目標軌道を補正する発明を出願している。この発明では、誤差のない状況であれば、精度良く目標軌道を設定できるが、エンジン回転停止挙動を支配するフリクションやコンプレッションの特性は、オイル温度、オイル劣化、経年変化等で変動する。そのため、目標軌道を精度良く設定するには、停止位置誤差からフリクションとコンプレッションを別々に学習する必要があるが、停止位置誤差からコンプレッションとフリクションを別々に学習することは困難である。
【0007】
本発明は、このような事情を考慮してなされたものであり、従って本発明の目的は、エンジン回転停止挙動の目標軌道を精度良く設定できて、エンジン回転停止位置を精度良く目標停止位置に制御することができるエンジン停止制御装置を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するために、請求項1に係る発明は、エンジン停止要求に応じてエンジン回転を停止させる際に、エンジン回転停止位置を目標停止位置に制御するようにエンジン回転挙動を電動機のトルクで制御するエンジン停止制御を実行するエンジン停止制御装置において、前記目標停止位置から所定クランク角手前に設定した基準点の目標回転速度を設定する基準点目標回転速度設定手段と、前記エンジン停止制御開始から前記基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(以下「目標軌道」という)を前記基準点の目標回転速度とエンジンフリクションとに基づいて算出する目標軌道算出手段と、前記エンジン停止制御の実行中にエンジン回転挙動を前記目標軌道に一致させるように前記電動機のトルクを制御する停止制御手段とを備えた構成としたものである。
【0009】
コンプレッションの影響は、エンジン回転が停止する直前の極低回転領域で現れるため、本発明のように、目標停止位置から所定クランク角手前に設定した基準点の目標回転速度に至るまでの目標軌道を設定するようにすれば、コンプレッションの影響が現れる極低回転領域に至る前の領域で目標軌道を設定することができる。これにより、エンジン回転停止挙動中に、コンプレッションの影響を受けずにエンジン回転挙動を電動機により精度良く目標軌道に一致させることができて、基準点で実回転速度を目標回転速度に精度良く一致させることができる。基準点の目標回転速度は、基準点からエンジン回転を目標停止位置で停止させるのに必要な基準値のエンジン回転速度に設定されているため(つまり基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため)、本発明により基準点で実回転速度を目標回転速度に精度良く一致させることが可能になれば、エンジン回転の実停止位置を目標停止位置に精度良く一致させることが可能となる。
【0010】
この場合、請求項2のように、基準点の目標回転速度を電動機のトルクが発生する回転速度範囲の下限回転速度以下に設定するようにすると良い。このようにすれば、基準点から目標停止位置に至るまでのエンジン回転挙動に電動機のトルクの影響が現れなくなり、電動機のトルクによる停止位置の誤差を無くすことができて、停止位置の精度を向上させることができる。
【0011】
また、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの過程で、基準点までのクランク角に応じて内燃機関の複数の補機等によりエンジンフリクションの特性が変化する場合があることを考慮して、請求項3のように、複数のエンジンフリクションの中から、基準点までのクランク角に応じたエンジンフリクションを選択して目標軌道を算出するようにすると良い。このようにすれば、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの過程で、基準点までのクランク角に応じて内燃機関の複数の補機等によりエンジンフリクションの特性が変化するのに対応して、目標軌道の算出に用いるエンジンフリクションを変化させることができ、目標軌道の精度を向上させることができる。
【0012】
また、請求項4のように、エンジン回転の実際の停止位置と目標停止位置との差(つまり停止位置の誤差)に基づいて基準点の目標回転速度を学習補正する学習補正手段を備えた構成としても良い。要するに、基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため、停止位置の誤差は、基準点の目標回転速度の誤差(目標軌道の誤差)により生じるものと考えられる。従って、停止位置の誤差に基づいて基準点の目標回転速度を学習補正するようにすれば、基準点の目標回転速度の精度を向上させることができる。
【発明を実施するための最良の形態】
【0013】
以下、本発明を実施するための最良の形態を具体化した一実施例を説明する。
まず、図1に基づいてエンジン制御システム全体の概略構成を説明する。
内燃機関であるエンジン11の吸気管12の最上流部には、エアクリーナ13が設けられ、このエアクリーナ13の下流側には、吸入空気量を検出するエアフローメータ14が設けられている。このエアフローメータ14の下流側には、モータ15によって開度調節されるスロットルバルブ16と、このスロットルバルブ16の開度(スロットル開度)を検出するスロットル開度センサ17とが設けられている。スロットルバルブ16の下流側には、サージタンク18が設けられ、このサージタンク18には、エンジン11の各気筒に空気を導入する吸気マニホールド20が設けられ、各気筒の吸気マニホールド20の吸気ポート近傍に、それぞれ燃料を噴射する燃料噴射弁21が取り付けられている。また、エンジン11のシリンダヘッドには、各気筒毎に点火プラグ22が取り付けられ、各点火プラグ22の火花放電によって筒内の混合気に着火される。
【0014】
一方、エンジン11の排気管23には、排出ガスの空燃比又はリッチ/リーン等を検出する排出ガスセンサ24(空燃比センサ、酸素センサ等)が設けられ、この排出ガスセンサ24の下流側に、排出ガスを浄化する三元触媒等の触媒25が設けられている。
【0015】
また、エンジン11のシリンダブロックには、冷却水温を検出する冷却水温センサ26が取り付けられている。エンジン11のクランク軸27には、外周部に所定クランク角ピッチで歯が形成されたシグナルロータ29が嵌着され、このシグナルロータ29の外周部に対向してクランク角センサ28が取り付けられ、シグナルロータ29の歯がクランク角センサ28に対向する毎(クランク軸27が所定クランク角回転する毎)にクランク角センサ28からクランクパルス信号が出力される。このクランク角センサ28の出力パルスの周期(パルス出力周波数)からエンジン回転速度が検出される。また、図示はしないが、エンジン11のカム軸の回転に同期して所定のカム角でカムパルス信号を出力するカム角センサが設置されている。
【0016】
エンジン11の代表的な補機であるオルタネータ33には、クランク軸27の回転がベルト伝達機構(図示せず)を介して伝達される。これにより、エンジン11の動力でオルタネータ33が回転駆動されて発電するようになっている。このオルタネータ33の発電制御電流(フィールド電流)をデューティ制御することで、オルタネータ33のトルクを制御することができる。本実施例では、オルタネータ33を特許請求の範囲でいう電動機として使用するようにしている。
【0017】
上述した各種センサの出力は、エンジン制御回路(以下「ECU」と表記する)30に入力される。このECU30は、マイクロコンピュータを主体として構成され、各種センサで検出したエンジン運転状態に応じて、燃料噴射弁21の燃料噴射量や噴射時期、点火プラグ22の点火時期を制御すると共に、アイドル運転中に所定の自動停止条件が成立してエンジン停止要求(アイドルストップ要求)が発生したときに、燃焼(点火及び/又は燃料噴射)を停止させてエンジン回転を停止させるアイドルストップを実行し、このアイドルストップによるエンジン停止中に運転者が車両を発進させるための操作を行ったときに、所定の自動始動条件が成立してスタータ(図示せず)に通電してエンジン11をクランキングして自動始動させる。
【0018】
更に、ECU30は、後述する図3乃至図14の各ルーチンを実行することで、エンジン回転の目標停止位置(目標停止クランク角)から所定クランク角手前の上死点(TDC)に設定した基準点の目標回転速度を設定する基準点目標回転速度設定手段と、エンジン停止制御開始から前記基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(以下「目標軌道」という)を前記基準点の目標回転速度とエンジンフリクションとに基づいて算出する目標軌道算出手段と、エンジン停止制御の実行中にエンジン回転挙動を前記目標軌道に一致させるようにオルタネータ33のトルクを制御する停止制御手段として機能する。
【0019】
ここで、エンジン回転の目標停止位置から所定クランク角手前のTDCに設定した基準点の目標回転速度は、オルタネータ33のトルクが発生する回転速度範囲の下限回転速度以下で且つ該下限回転速度に近い回転速度に設定されている。具体的には、基準点とその直前のTDCとの間でエンジン回転速度がオルタネータ33のトルク発生回転速度範囲の下限回転速度以下となるように基準点の目標回転速度が設定されている。このように設定すれば、エンジン回転停止挙動開始から基準点の目標回転速度付近に至るまでの区間は、オルタネータ33のトルクによってエンジン回転挙動を目標軌道に一致させるように制御することが可能になると共に、基準点から目標停止位置に至るまでのエンジン回転挙動にオルタネータ33のトルクが影響を及ぼさなくなり、オルタネータ33のトルクによる停止位置の誤差を無くすことができる。
【0020】
目標軌道は、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの目標とするエンジン回転速度をTDC毎に算出してテーブル(図2参照)に割り付けたものである。
【0021】
エンジン停止過程では、エンジンフリクションによって運動エネルギ(回転エネルギ)が減衰してエンジン回転速度が低下していくため、エンジンフリクションと基準点の目標回転速度に基づいて目標軌道を算出して、実エンジン回転挙動を目標軌道に合わせるようにオルタネータ33のトルクを制御することで、基準点で実エンジン回転速度を目標回転速度に精度良く一致させることが可能になる。しかも、基準点から目標停止位置に至るまでの区間は、オルタネータ33のトルクがエンジン回転挙動に影響を及ぼさなくなるため、オルタネータ33のトルクによる停止位置の誤差を無くすことができて、エンジン回転の実停止位置を目標停止位置に精度良く一致させることが可能となる。
【0022】
更に、本実施例では、エンジン回転停止挙動開始から基準点の目標回転速度に至るまでの過程で、基準点までのクランク角に応じてエンジン11の複数の補機等によりエンジンフリクションの特性が変化することを考慮して、複数のエンジンフリクションの中から、基準点までのクランク角に応じたエンジンフリクションを選択して目標軌道を算出するようにしている。図2の例では、基準点からM1 までの区間と、M1 からMまでの区間で異なるエンジンフリクションが設定されている。
【0023】
以上説明した本実施例のエンジン停止制御は、ECU30によって図3乃至図14の各ルーチンに従って実行される。以下、これら各ルーチンの処理内容を説明する。
【0024】
[時間同期ルーチン]
図3の時間同期ルーチンは、ECU30の電源オン期間中(イグニッションスイッチの電源オン期間中)にECU30によって所定周期(例えば8ms周期)で繰り返し実行される。本ルーチンが起動されると、まずステップ100で、後述する図5のエンジン停止要求判定ルーチンを実行して、エンジン停止要求(アイドルストップ要求)が発生しているか否かを判定する。
【0025】
この後、ステップ200に進み、後述する図6のエンジン始動要求判定ルーチンを実行して、エンジン始動要求(アイドルストップ後の自動始動要求)が発生しているか否かを判定する。
【0026】
この後、ステップ300に進み、後述する図7のエンジン停止制御(1) ルーチンを実行して、オルタネータ33に対する要求トルク(以下「要求オルタトルク」という)を算出する。そして、次のステップ400で、後述する図12のエンジン始動制御(1) ルーチンを実行して、自動始動時の第1点火気筒と第2点火気筒を設定する。
【0027】
[クランク角同期ルーチン]
図4のクランク角同期ルーチンは、ECU30の電源オン期間中(イグニッションスイッチの電源オン期間中)にECU30によって所定クランク角毎(例えば30degCA毎)に繰り返し実行される。本ルーチンが起動されると、まずステップ500で、後述する図14のエンジン始動制御(2) ルーチンを実行して、自動始動時の燃料噴射制御、点火制御、第1点火気筒の失火判定を実行する。
【0028】
この後、ステップ550に進み、停止位置制御の実行タイミングであるTDCタイミングであるか否かを判定し、TDCタイミングでなければ、そのまま本ルーチンを終了し、TDCタイミングであれば、ステップ600に進み、後述する図10のエンジン停止制御(2) ルーチンを実行して、停止位置制御を実行する。
【0029】
[エンジン停止要求判定ルーチン]
図5のエンジン停止要求判定ルーチンは、図3の時間同期ルーチンのステップ100で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ101で、自動停止条件(アイドルストップ実行条件)が成立しているか否かを判定する。
【0030】
この際、マニュアルミッション車の場合には、次の(a) 又は(b) のいずれか一方の条件が満たされれば、自動停止条件が成立する。
(a) シフト位置が前進ギア、かつ、車速が所定値以下(例えば10km/h以下)、かつ、ブレーキ踏み込み(ブレーキON)、かつ、クラッチ切断(クラッチペダル踏み込み状態)であること
(b) シフト位置がニュートラル位置、かつ、クラッチ接続(クラッチペダルが踏み込まれていない状態)であること
【0031】
一方、自動変速機付き車両(AT車)の場合には、次の(c) 又は(d) のいずれか一方の条件が満たされれば、自動停止条件が成立する。
(c) シフト位置が前進レンジ又はニュートラルレンジ、かつ、車速が所定値以下(例えば10km/h以下)、かつ、ブレーキ踏み込み(ブレーキON)であること
(d) シフト位置がパーキングレンジであること
【0032】
上記ステップ101で、自動停止条件が成立していないと判定されれば、そのまま本ルーチンを終了し、自動停止条件が成立していると判定されれば、ステップ102に進み、エンジン停止要求を出力(ON)して本ルーチンを終了する。
【0033】
[エンジン始動要求判定ルーチン]
図6のエンジン始動要求判定ルーチンは、図3の時間同期ルーチンのステップ200で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ201で、自動始動条件が成立しているか否か(つまり運転者が車両を発進させるための操作を行ったか否か)を判定する。
【0034】
この際、マニュアルミッション車の場合には、次の(a) 又は(b) のいずれか一方の条件が満たされれば、運転者が車両を発進させるための操作を行ったと判断して、自動始動条件が成立する。
(a) シフト位置が前進ギア、かつ、ブレーキ操作解除(ブレーキOFF)又はクラッチ接続(クラッチペダルが踏み込まれていない状態)であること
(b) シフト位置がニュートラル位置、かつ、クラッチ切断(クラッチペダル踏み込み状態)であること
【0035】
一方、自動変速機付き車両(AT車)の場合には、次の(c) の条件が満たされれば、運転者が車両を発進させるための操作を行ったと判断して、自動停止条件が成立する。
(c) シフト位置がパーキングレンジ以外、かつ、ブレーキ操作解除(ブレーキOFF)であること
【0036】
上記ステップ201で、自動始動条件が成立していないと判定されれば、そのまま本ルーチンを終了し、自動始動条件が成立していると判定されれば、ステップ202に進み、ニュートラルレンジ又はクラッチ切断(クラッチペダル踏み込み状態)であるか否かを判定し、ニュートラルレンジ、クラッチ切断のいずれでもない場合には、自動始動するとエンジン11の動力が駆動輪に伝達されて車両が勝手に動き始めるため、エンジン始動要求を出力せずに本ルーチンを終了する。
【0037】
一方、上記ステップ202で、ニュートラルレンジ又はクラッチ切断(クラッチペダル踏み込み状態)であると判定された場合は、自動始動してもエンジン11から駆動輪への動力の伝達が遮断されて停車状態を維持するため、ステップ203に進み、エンジン始動要求を出力して本ルーチンを終了する。
【0038】
[エンジン停止制御(1) ルーチン]
図7のエンジン停止制御(1) ルーチンは、図3の時間同期ルーチンのステップ300で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ301で、前記図5のエンジン停止要求判定ルーチンの処理結果に基づいてエンジン停止要求が出力されたか否かを判定し、エンジン停止要求が出力されていなければ、以降の処理を行わず、そのまま本ルーチンを終了する。
【0039】
上記ステップ301で、エンジン停止要求が出力されたと判定されれば、ステップ302に進み、後述するステップ304でセットされる燃料カットフラグが燃料カット実行中を意味するONにセットされているか否かを判定し、まだ燃料カットフラグがONにセットされていなければ、ステップ303に進み、現在のエンジン回転速度Neが所定値Ne1よりも高いか否かを判定し、その判定結果に応じて、ステップ304〜306の処理又はステップ307〜309の処理を実行する。これらの処理は、エンジン停止制御開始時のエンジン回転速度Neが低くなり過ぎると、基準点に到達するまでのTDC数が少なくなり過ぎてエンジン回転挙動を目標軌道に一致させるのが困難となるため、エンジン停止制御開始時のエンジン回転速度Neを、エンジン回転挙動を目標軌道に一致させるのに必要な所定値Ne1以上に制御するための処理である。
【0040】
具体的には、ステップ303で、現在のエンジン回転速度Neが所定値Ne1よりも高いと判定されれば、エンジン回転挙動を目標軌道に一致させるのに必要なエンジン回転速度Neが確保されていると判断して、ステップ304に進み、燃料カットフラグをONにセットして燃料カットを実行し、次のステップ305で、スロットル開度を第1の所定値Ta1(アイドルスピードコントロール開度よりも開いた開度)に開き、次のステップ306で、要求オルタトルクを、オルタネータ33のトルク制御の基準トルクとなるオフセットトルクTofs と、実エンジン回転挙動と目標軌道との誤差をフィードバック補正するためのフィードバック補正トルクTfbとを足し合わせて設定する。
要求オルタトルク=Tofs +Tfb
【0041】
ここで、オフセットトルクTofs は、オルタネータ33の制御可能な最大トルクの例えば半分(1/2)に設定されている。オルタネータ33は、モータジェネレータと異なり、アシストトルクを出力できないという事情があっても、仮想的にオルタネータ33のトルクを正負両方向に制御することが可能となり(オフセットトルクTofs 以下のトルクを仮想的に負のトルクとし、オフセットトルクTofs 以上のトルクを仮想的に正のトルクとしてオルタネータ33のトルクを制御することが可能となり)、目標軌道へのエンジン回転挙動の追従性を向上することができる。
【0042】
尚、オフセットトルクTofs は、最大トルクの半分(1/2)に限定されず、例えば、最大トルクの1/3、1/4、2/3、3/4等であっても良く、要は、オルタネータ33の制御可能な最大トルクよりも小さく、0よりも大きい適宜のトルクをオフセットトルクTofs に設定すれば良い。
0<Tofs <最大トルク
【0043】
尚、前述したステップ302で、既に燃料カットフラグがONにセットされていると判定されれば、上記ステップ303〜305の処理を飛び越して、ステップ306の処理を実行する。
【0044】
一方、前記ステップ303で、現在のエンジン回転速度Neが所定値Ne1以下と判定されれば、ステップ307に進み、点火時期を所定量又はノック限界まで進角させる。これにより、エンジントルクを増加させてエンジン回転速度Neを上昇させる。更に、次のステップ308で、コンプレッサOFF要求を出力して(コンプレッサOFFフラグをONして)、空調装置のコンプレッサをOFFする。これにより、エンジン11の負荷を軽減して、エンジン回転速度Neを上昇させる。その他、吸入空気量を増加させたり(スロットル開度を増加させたり)、燃料噴射量を増加させたりして、エンジン回転速度を上昇させるようにしても良い。この後、ステップ309に進み、要求オルタトルクをオフセットトルクTofs のみとする。
要求オルタトルク=Tofs
【0045】
そして、次のステップ310で、スロットル開き要求があるか否か(つまり停止位置の直前のTDCを通過したか否か)を判定し、スロットル開き要求があれば、ステップ311に進み、スロットル開度を、第1の所定値Ta1よりも大きい第2の所定値Ta2に設定する。上記ステップ310で、スロットル開き要求がないと判定されれば、上記ステップ311の処理が行われず、スロットル開度が引き続き第1の所定値Ta1に維持される。
【0046】
この後、ステップ312に進み、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過したか否かを判定する。ここで、図15に示すように、停止間際の回転速度Ne2は、停止位置の直前のTDCを通過した直後の回転速度に相当し、所定時間は、エンジン回転が確実に停止した状態になるまで待つための時間に設定されている。
【0047】
上記ステップ312で、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過していないと判定されれば、そのまま本ルーチンを終了する。その後、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過した時点で、上記ステップ312で「Yes」と判定されて、ステップ313に進み、後述する図8の基準点学習ルーチンを実行して、次回の基準点の目標Neを算出する。ここで、「Ne」は「回転速度」を意味する(以下、同じ)。この後、ステップ314に進み、後述する図9のフリクション学習ルーチンを実行して、エンジン11のフリクション1,2(Tfr1 ,Tfr2 )を学習する。
【0048】
[基準点学習ルーチン]
図8の基準点学習ルーチンは、図7のエンジン停止制御(1) ルーチンのステップ313で実行されるサブルーチンであり、特許請求の範囲でいう学習補正手段としての役割を果たす。本ルーチンが起動されると、まずステップ321で、停止位置誤差を次式により算出する。
【0049】
停止位置誤差=(実停止位置クランク角−今回基準点クランク角)mod720
+{(720/N)×K−目標停止位置クランク角}
【0050】
ここで、(実停止位置クランク角−今回基準点クランク角)mod720は、「実停止位置クランク角−今回基準点クランク角」を720[degCA]で割り算した時の余りのクランク角である。
例えば、「実停止位置クランク角−今回基準点クランク角」が1000[degCA]であれば、(1000)mod720=280[degCA]となる。
【0051】
「実停止位置クランク角−今回基準点クランク角」が400[degCA]であれば、(400)mod720=400[degCA]となる。上式において、Nはエンジン11の気筒数、Kは今回の基準点から実停止位置までに通過したTDC数である。
【0052】
この後、ステップ322に進み、図16に示す規範Ne2 誤差上限・下限マップを参照して、停止位置誤差に応じた規範Ne2 誤差上限・下限を算出する。
規範Ne2 誤差上限=規範Ne2 誤差上限マップ(停止位置誤差)
規範Ne2 誤差下限=規範Ne2 誤差下限マップ(停止位置誤差)
図16に示す規範Ne2 誤差上限・下限マップは、停止位置誤差が大きくなるほど、規範Ne2 誤差上限・下限が大きくなるように設定されている。
【0053】
この後、ステップ323に進み、次回基準点目標Neベース値上限・下限を次式により算出する。
次回基準点目標Neベース値上限=√(今回基準点実Ne2 −規範Ne2 誤差下限)
次回基準点目標Neベース値下限=√(今回基準点実Ne2 −規範Ne2 誤差上限)
【0054】
この後、ステップ324に進み、次回基準点目標Neベース値下限を今回基準点目標Neと比較して、次回基準点目標Neベース値下限が今回基準点目標Neよりも大きければ、ステップ326に進み、次回基準点目標Neベース値として次回基準点目標Neベース値下限を用いる。
次回基準点目標Neベース値=次回基準点目標Neベース値下限
【0055】
一方、上記ステップ324で、次回基準点目標Neベース値下限が今回基準点目標Ne以下と判定されれば、ステップ325に進み、次回基準点目標Neベース値上限を今回基準点目標Neと比較して、次回基準点目標Neベース値上限が今回基準点目標Neよりも小さければ、ステップ327に進み、次回基準点目標Neベース値として次回基準点目標Neベース値上限を用いる。
次回基準点目標Neベース値=次回基準点目標Neベース値上限
【0056】
上記ステップ324、325でいずれも「No」と判定された場合、つまり次回基準点目標Neベース値下限とその上限との間に今回基準点目標Neが位置する場合は、ステップ328に進み、次回基準点目標Neベース値として今回基準点目標Neを引き続き用いる。
次回基準点目標Neベース値=今回基準点目標Ne
【0057】
以上のようにして、ステップ326〜328のいずれかで次回基準点目標Neベース値を設定した後、ステップ329に進み、次回基準点目標Neを次式によりなまし処理して求める。
【0058】
次回基準点目標Ne
=今回基準点目標Ne−γ・(今回基準点目標Ne−次回基準点目標Neベース値) 上式において、γはなまし係数で、0<γ≦1である。
【0059】
[フリクション学習ルーチン]
図9のフリクション学習ルーチンは、図7のエンジン停止制御(1) ルーチンのステップ314で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ330で、フリクション学習実行条件が成立しているか否かを、後述する停止位置制御モード=1(フィードバック補正トルクTfb=0)であるか否かによって判定して、フリクション学習実行条件が成立していなければ、以降の処理を行うことなく、本ルーチンを終了する。
【0060】
一方、上記ステップ330で、フリクション学習実行条件が成立していると判定されれば、ステップ331に進み、フリクション1(Tfr1 )を算出する区間(0〜M1 )の実回転挙動の軌道データ(xn ,yn )を読み込む。
【0061】
xn ={0,720/N,……,(720/N)×M1 }
yn ={基準点実Ne2 ,m=1時実Ne2 ,……,m=M1 時実Ne2 }
【0062】
ここで、xn は、フリクション1(図2参照)を算出する区間の基準点からの各TDC(0〜M1 )のクランク角であり、yn は、フリクション1の区間の各TDCの実Ne2 である。尚、Nはエンジン11の気筒数、M1 はフリクション1の区間の開始位置(基準点からのTDC数)を表している。
この後、ステップ332に進み、最小二乗法で傾き1を次式により算出する。
【0063】
【数1】
【0064】
ここで、n=M1 +1である。
この後、ステップ333に進み、傾き1を用いて、フリクション1(Tfr1 )を次式により算出する。
Tfr1 =(π・I/10)×傾き1
ここで、Iはエンジン慣性モーメント[kgm]である。
【0065】
この後、ステップ334に進み、フリクション2(Tfr2 )を算出する区間(M1 〜M)の実回転挙動の軌道データ(xn ,yn )を読み込む。
xn ={0,720/N,……,(720/N)×(M−M1 )}
yn ={M1 時実Ne2 ,m=M1 +1時実Ne2 ,……,m=M時実Ne2 }
ここで、xn は、フリクション2(図2参照)を算出する区間の各TDC(M1 〜M)のクランク角であり、yn は、フリクション2の区間の各TDCの実Ne2 である。
【0066】
この後、ステップ335に進み、最小二乗法で傾き2を算出した後、ステップ336に進み、傾き2を用いて、フリクション2(Tfr2 )を次式により算出する。
Tfr2 =(π・I/10)×傾き2
フリクションが3つ以上ある場合は、上述した最小二乗法で傾きを算出してフリクションを算出する処理を繰り返せば良い。
【0067】
尚、本発明は、フリクションを学習する機能(フリクション学習ルーチン)を省略して、予め、フリクションを実験データや設計データ等に基づいて算出して、それをECU30のROM等の不揮発性メモリに記憶しておいても良い。
[エンジン停止制御(2) ルーチン]
図10のエンジン停止制御(2) ルーチンは、図4のクランク角同期ルーチンのステップ600で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ601で、目標Neを次のようにして算出する。
【0068】
まず、フリクション1(Tfr1 )の区間(0〜M1 )とフリクション2(Tfr2 )の区間(M1 〜M)の目標Ne2 [M]を次式により算出する。
目標Ne2 [M]
={10/(π・I)}×[0,720Tfr1 /N,(720Tfr1 /N)×2,… …,(720Tfr1 /N)×M1 ,(720Tfr2 /N)×(M1 +1),… …,(720Tfr2 /N)×(M−1)]+基準点目標Ne2
【0069】
一般に、エネルギ保存則により、エンジン慣性モーメントIとフリクションTfrとの間には次式の関係が成り立つ。
(1/2)・I・ω2 =Tfr・Θ
ここで、ωは角速度[rad/s]、Θは回転角[rad]である。
ω=(2π/60)・Ne
Θ=(π/180)・θ
θ:回転角[deg]
【0070】
上式の関係から、次式が導き出される。
Ne2 =(10/π・I)・Tfr・θ
上式の関係を利用して、目標Ne2 [M]を算出する。
目標Ne2 [M]の算出後、次式を満足するm(但し0≦m≦M)を求める。
【0071】
目標Ne2 [m]−(目標Ne2 [m]−目標Ne2 [m−1])(1−α)≦実Ne2 <目標Ne2 [m]+(目標Ne2 [m+1]−目標Ne2 [m])α
【0072】
ここで、0≦α≦1である。上式を満足するmは、今回制御しようとするTDCの位置(基準点からm番目のTDC)を表す。
この後、基準点からm番目のTDCの目標Ne2 から次式により今回の目標Neを算出する。
目標Ne=√目標Ne2
これにより、実Neが低下するに従って、各TDCの目標NeがフリクションTfr1 ,Tfr2 と基準点目標Neとに基づいて順次算出され、目標軌道が設定される。
【0073】
以上のようにして、今回の目標Neを算出した後、ステップ602に進み、停止位置制御実行条件が成立しているか否かを、例えば次の2つの条件(a),(b) を両方とも満たすか否かで判定する。
(a) 燃料カット後のTDC数が所定値(例えば2)以上であること
(b) 1<m<所定値(例えば15)であること
ここで、mは基準点までのTDC数である。
【0074】
上記条件(a)を設ける理由は、図21に示すように、燃料カット直後(エンジン停止挙動初期)は、クランク角センサ28の出力パルスから検出されるエンジン回転速度Neのなまし処理のために、エンジン回転速度Neの低下幅ΔNeが実際よりも小さくなるため、フリクションが実際よりも小さく見積もられてしまうためである。
【0075】
上記条件(b)を設ける理由は、基準点から必要以上に遠く離れたTDCから停止位置制御を開始する必要がないためである。また、エンジン回転速度が高すぎると、停止位置制御が困難である。
【0076】
上記2つの条件(a),(b) のいずれか一方でも満たさない条件があれば、停止位置制御実行条件が不成立となり、停止位置制御を実行しない。
【0077】
上記2つの条件(a),(b) を両方とも満たせば、停止位置制御実行条件が成立して、ステップ603に進み、後述する図11の停止位置制御ルーチンを実行して、要求オルタトルクのフィードバック補正トルクTfbを算出する。
【0078】
この後、ステップ604に進み、基準点に到達したか否か(前回m=1であるか否か)を判定して、基準点に到達していなければ、そのまま本ルーチンを終了し、基準点に到達していれば、ステップ605に進み、スロットル開き要求を出力して、スロットル開度を、第1の所定値Ta1よりも大きい第2の所定値Ta2まで開く。
【0079】
尚、スロットル開度を開くタイミングはTDCに同期していれば良いため、上記ステップ604で、前回m=2(又は3等)であるか否かを判定して、前回m=2(又は3等)である場合に、スロットル開き要求を出力するようにしても良い。要するに、基準点又はそれよりも少し手前のTDCでスロットル開度を開けば良い。
【0080】
[停止位置制御ルーチン]
図11の停止位置制御ルーチンは、上記図10のエンジン停止制御(2) ルーチンのステップ603で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ611で、停止位置制御モード判定済みであるか否かを判定して、停止位置制御モード判定済みであれば、以降の処理を行うことなく、本ルーチンを終了する。
【0081】
これに対して、停止位置制御モードがまだ判定されていない場合は、ステップ612に進み、図17に示す制御可能なエネルギ偏差の下限値ThAltMinのマップを参照して、目標Ne2 と実Ne2 との偏差(エネルギ偏差)が、今回制御しようとするm番目のTDCにおける下限値ThAltMinよりも小さいか否かを判定する。その結果、目標Ne2 と実Ne2 との偏差が下限値ThAltMinよりも小さいと判定されれば、ステップ613に進み、停止位置制御モードを「3」にセットし、次のステップ614で、要求オルタトルクのフィードバック補正トルクTfbを最小値(例えば−8)にセットする。
【0082】
一方、上記ステップ612で、目標Ne2 と実Ne2 との偏差が下限値ThAltMin以上と判定されれば、ステップ615に進み、図18に示す制御可能なエネルギ偏差の上限値ThAltMaxのマップを参照して、目標Ne2 と実Ne2 との偏差が、今回制御しようとするm番目のTDCにおける上限値ThAltMaxよりも大きいか否かを判定する。その結果、目標Ne2 と実Ne2 との偏差が上限値ThAltMaxよりも大きいと判定されれば、ステップ616に進み、停止位置制御モードを「2」にセットし、次のステップ617で、要求オルタトルクのフィードバック補正トルクTfbを最大値(例えば10)にセットする。
【0083】
上記ステップ615で、目標Ne2 と実Ne2 との偏差が上限値ThAltMax以下と判定されれば、ステップ618に進み、目標Ne2 と実Ne2 との偏差の絶対値|目標Ne2 −実Ne2 |が判定値(例えば5000)よりも小さいか否かを判定して、|目標Ne2 −実Ne2 |が判定値よりも小さい場合は、目標Ne2 と実Ne2 との偏差が小さいため、オルタネータ33のトルクをフィードバック制御する必要はないと判断して、ステップ619に進み、停止位置制御モードを「1」にセットし、次のステップ620で、要求オルタトルクのフィードバック補正トルクTfbを0にセットする。これにより、エンジン回転停止挙動全域にわたってオルタネータ33のトルクをオフセットトルクTofs に固定した状態(フィードバック制御を禁止した状態)で、フリクション1,2(Tfr1 ,Tfr2 )を学習することが可能となる。
【0084】
また、上記ステップ618で、|目標Ne2 −実Ne2 |が判定値以上と判定されれば、フィードバック制御領域と判断して、ステップ621に進み、停止位置制御モードを「0」にセットし、次のステップ622で、要求オルタトルクのフィードバック補正トルクTfbを次式により算出する。
【0085】
Tfb=(1/2)×I×(2π/60)2 ×(実Ne2 −目標Ne2 )
÷{(4π/N)×(m−1−β)}
【0086】
ここで、βは、基準点からオルタネータ33のトルクが発生しなくなる位置までのクランク角を算出するための調整パラメータである(0≦β≦1)。
要するに、図22に示すように、基準点から所定クランク角[(4π/N)×β]手前の位置でオルタネータ33のトルクが発生しなくなるため、上式により、基準点から所定クランク角[(4π/N)×β]手前の位置で目標Ne2 と実Ne2 との偏差(エネルギ偏差)が0となるようにフィードバック補正トルクTfbを算出するものである。この場合、基準点から所定クランク角[(4π/N)×β]手前の位置は、実Neがオルタネータ33のトルク発生回転速度範囲の下限回転速度となる位置に設定しているが、オルタネータ33のトルク発生回転速度範囲の下限回転速度よりも少し高い回転速度となる位置に設定しても良い。
【0087】
以上説明した停止位置制御ルーチンの処理により、停止位置制御開始当初の目標Ne2 と実Ne2 との偏差(エネルギ偏差)に基づいて停止位置制御モードを判定し、その判定結果に応じて要求オルタトルクのフィードバック補正トルクTfbを次のように設定する。
【0088】
(A) 目標Ne2 と実Ne2 との偏差が制御可能なエネルギ偏差の下限値ThAltMinよりも小さい場合は、停止位置制御モードを「3」にセットし、要求オルタトルクのフィードバック補正トルクTfbを最小値(例えば−8)にセットする。
【0089】
(B) 目標Ne2 と実Ne2 との偏差が制御可能なエネルギ偏差の上限値ThAltMaxよりも大きい場合は、停止位置制御モードを「2」にセットし、要求オルタトルクのフィードバック補正トルクTfbを最大値(例えば10)にセットする。
【0090】
上記(A),(B) のように、目標Ne2 と実Ne2 との偏差が制御可能なエネルギ偏差の上下限を越える場合は、要求オルタトルクのフィードバック補正トルクTfbを最小値又は最大値に固定すれば、フィードバック制御では制御できなかった領域まで制御可能となる。
【0091】
(C) |目標Ne2 −実Ne2 |が判定値よりも小さい場合は、目標Ne2 と実Ne2 との偏差が小さいため、オルタネータ33のトルクをフィードバック制御する必要はないと判断して、停止位置制御モードを「1」にセットし、要求オルタトルクのフィードバック補正トルクTfbを0にセットする。これにより、エンジン回転停止挙動全域にわたってオルタネータ33のトルクのフィードバック制御を禁止した状態で、フリクション1,2(Tfr1 ,Tfr2 )を学習することが可能となる。
【0092】
(D) 上記以外の場合は、フィードバック制御領域と判断して、停止位置制御モードを「0」にセットし、要求オルタトルクのフィードバック補正トルクTfbを算出する。
【0093】
[エンジン始動制御(1) ルーチン]
図12のエンジン始動制御(1) ルーチンは、図3の時間同期ルーチンのステップ400で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ401で、前記図6のエンジン始動要求判定ルーチンの処理結果に基づいてエンジン始動要求があるか否かを判定し、エンジン始動要求がなければ、そのまま本ルーチンを終了する。
【0094】
これに対して、エンジン始動要求があれば、ステップ402に進み、自動始動時に最初に点火する第1点火気筒が未設定であるか否かを判定し、第1点火気筒が設定済みであれば、以降の処理を行うことなく、本ルーチンを終了する。
【0095】
一方、第1点火気筒が未設定であれば、ステップ403に進み、図13の第1点火気筒マップ(4気筒エンジンの場合)を参照して、停止位置のクランク角に応じた仮第1点火気筒を設定する。本実施例では、停止位置を目標停止位置に精度良く制御できるため、停止位置のクランク角は目標停止位置のクランク角とすれば良い。この後、ステップ404に進み、仮第1点火気筒の次にTDCとなる気筒を仮第2点火気筒として設定する。
【0096】
この後、ステップ405に進み、後述する図14のエンジン始動制御(2) ルーチンによって検出された仮第1点火気筒の失火回数Nmfが第1点火禁止しきい値を越えているか否かを判定し、仮第1点火気筒の失火回数Nmfが第1点火禁止しきい値を越えていれば、ステップ406に進み、仮第2点火気筒を第1点火気筒とし、仮第2点火気筒の次にTDCとなる気筒を第2点火気筒として設定する。
【0097】
これに対して、上記ステップ405で、仮第1点火気筒の失火回数Nmfが第1点火禁止しきい値以下と判定されれば、ステップ407に進み、仮第1点火気筒をそのまま第1点火気筒とし、仮第2点火気筒をそのまま第2点火気筒として設定する。
[エンジン始動制御(2) ルーチン]
図14のエンジン始動制御(2) ルーチンは、図4のクランク角同期ルーチンのステップ500で実行されるサブルーチンである。本ルーチンが起動されると、まずステップ501で、前記図6のエンジン始動要求判定ルーチンの処理結果に基づいてエンジン始動要求があるか否かを判定し、エンジン始動要求がなければ、そのまま本ルーチンを終了する。
【0098】
これに対して、エンジン始動要求があれば、ステップ502に進み、燃料噴射制御を実行し、次のステップ503で、点火制御を実行する。
この後、ステップ504に進み、TDCタイミングであるか否かを判定し、TDCタイミングでなければ、そのまま本ルーチンを終了する。一方、TDCタイミングであれば、ステップ505に進み、第1点火気筒のTDCタイミングであるか否かを判定し、第1点火気筒のTDCタイミングであれば、ステップ506に進み、第1点火気筒のTDCタイミングの実NeをNefとしてECU30のメモリ(RAM等)に記憶する。
【0099】
一方、上記ステップ505で、第1点火気筒のTDCタイミングでないと判定されれば、ステップ507に進み、第2点火気筒のTDCタイミングであるか否かを判定し、第2点火気筒のTDCタイミングでなければ、そのまま本ルーチンを終了する。
【0100】
その後、第2点火気筒のTDCタイミングになった時点で、ステップ508に進み、第2点火気筒のTDCタイミングの実Neとメモリに記憶された第1点火気筒のTDCタイミングの回転速度Nefとの偏差ΔNe(=実Ne−Nef)が失火判定しきい値以下であるか否かで、第1点火気筒が失火したか否かを判定する。
【0101】
図19に示すように、第1点火気筒が正常燃焼すれば、実Neが急上昇して、第2点火気筒のTDCタイミングの実Neと第1点火気筒のTDCタイミングの実Ne(=Nef)との偏差ΔNeが大きくなるが、図20に示すように、第1点火気筒が失火すると、実Neがあまり上昇しないため、第2点火気筒のTDCタイミングの実Neと第1点火気筒のTDCタイミングの実Ne(=Nef)との偏差ΔNeが正常燃焼時と比べて著しく小さくなる。この特性から、偏差ΔNeが失火判定しきい値以下であれば、第1点火気筒が失火したと判定し、ステップ509に進み、第1点火気筒の失火回数Nmfをカウントする失火回数カウンタをカウントアップする。この失火回数カウンタは、各気筒毎にそれぞれ設けられ、各気筒毎に第1点火気筒となった時の失火回数Nmfがカウントされる。一方、偏差ΔNeが失火判定しきい値よりも大きければ、第1点火気筒が正常燃焼したと判定する。
【0102】
以上説明した本実施例のエンジン停止制御の一例が図15にタイムチャートで示されている。この制御例では、エンジン停止要求が出力(ON)された時点で、エンジン回転速度Neが、エンジン回転挙動を目標軌道に一致させるのに必要な所定値Ne1を下回っているため、点火時期を進角させてエンジントルクを増加させ、かつ、コンプレッサOFFフラグをONしてコンプレッサをOFFして、エンジン11の負荷を軽減して、エンジン回転速度Neを上昇させる。
【0103】
これにより、エンジン回転速度Neが所定値Ne1を越えると、燃料カットフラグをONして燃料カットを実行すると共に、スロットル開度をアイドルスピードコントロール開度から第1の所定値Ta1まで開く。その後、停止位置制御実行条件が成立した時点で、停止位置制御を開始して、要求オルタトルクをオフセットトルクTofs とフィードバック補正トルクTfbとに基づいて設定する。
要求オルタトルク=Tofs +Tfb
尚、要求オルタトルクは、エンジン停止要求が出力(ON)された時点で、オフセットトルクTofs に設定される。
【0104】
その後、停止位置制御実行条件が不成立となった時点で、要求オルタトルクが0となり、更に、基準点に到達した時点で、スロットル開度を、第1の所定値Ta1から第2の所定値Ta2まで開き、その後、エンジン回転速度Neが停止間際の回転速度Ne2以下に低下してから所定時間が経過した時点で、停止位置誤差に基づいて次回基準点目標Neを学習すると共に、フリクションTfr1 ,Tfr2 を学習する。
【0105】
ところで、コンプレッションの影響は、エンジン回転が停止する直前の極低回転領域で現れるため、本実施例のように、目標停止位置から所定クランク角手前に設定した基準点の目標Neに至るまでの目標軌道(各TDCの目標Ne)を設定するようにすれば、コンプレッションの影響が現れる極低回転領域に至る前の領域で目標軌道を設定することができる。これにより、エンジン回転停止挙動中にコンプレッションの影響を受けずにエンジン回転挙動をオルタネータ33により精度良く目標軌道に一致させることができて、基準点で実Neを目標Neに精度良く一致させることができる。基準点の目標Neは、基準点からエンジン回転を目標停止位置で停止させるのに必要な基準値のエンジン回転速度に設定されているため(つまり基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため)、本実施例の制御により基準点で実Neを目標Neに精度良く一致させることが可能になれば、エンジン回転の実停止位置を目標停止位置に精度良く一致させることが可能となる。
【0106】
しかも、本実施例では、基準点の目標Neをオルタネータ33のトルクが発生する回転速度範囲の下限回転速度以下に設定しているため、基準点から目標停止位置に至るまでのエンジン回転挙動にオルタネータ33のトルクの影響が現れなくなり、オルタネータ33のトルクによる停止位置の誤差を無くすことができて、停止位置の精度を向上させることができる。
【0107】
また、エンジン回転停止挙動開始から基準点の目標Neに至るまでの過程で、基準点までのクランク角(TDC数)に応じてエンジン11の複数の補機等によりエンジンフリクションの特性が変化することを考慮して、本実施例では、複数のエンジンフリクションの中から、基準点までのクランク角(TDC数)に応じたエンジンフリクションを選択して目標軌道を算出するようにしているため、エンジン回転停止挙動開始から基準点の目標Neに至るまでの過程で、基準点までのクランク角(TDC数)に応じてエンジン11の複数の補機等によりエンジンフリクションの特性が変化するのに対応して、目標軌道の算出に用いるエンジンフリクションを変化させることができ、目標軌道の精度を向上させることができる。
【0108】
この場合、基準点に至る目標軌道の延長線上に目標停止位置が位置するように設定されているため、停止位置の誤差は、基準点の目標Neの誤差(目標軌道の誤差)により生じるものと考えられる。この点を考慮して、本実施例では、停止位置の誤差に基づいて基準点の目標Neを学習補正するようにしたので、基準点の目標Neの精度を向上させることができる。
【0109】
ところで、エンジン停止過程で各気筒の筒内圧は、圧縮行程でエンジン回転を妨げる方向(運動エネルギが減少する方向)に作用し、膨張行程でエンジン回転を促進する方向(運動エネルギが増加する方向)に作用するため、TDC毎に筒内圧による運動エネルギの収支が0となる。この点に着目して、本実施例では、目標軌道をTDC毎に設定するようにしたので、筒内圧による周期的な運動エネルギ変化の影響を排除して目標軌道を精度良く設定することができ、目標軌道を設定する際の演算を簡単化することができる。
【0110】
しかしながら、本発明は、目標軌道をTDC毎に設定する構成に限定されず、目標軌道を所定クランク角間隔毎に設定するようにしても良い。
また、本実施例では、エンジン停止制御中にオルタネータ33のトルクを制御するようにしたが、オルタネータ33以外の電動機(例えばハイブリッド車の発電電動機等)を制御するようにしても良い。
【図面の簡単な説明】
【0111】
【図1】本発明の一実施例におけるエンジン制御システム全体の概略構成図である。
【図2】目標軌道の設定方法を説明する図である。
【図3】時間同期ルーチンの処理の流れを説明するフローチャートである。
【図4】クランク角同期ルーチンの処理の流れを説明するフローチャートである。
【図5】エンジン停止要求判定ルーチンの処理の流れを説明するフローチャートである。
【図6】エンジン始動要求判定ルーチンの処理の流れを説明するフローチャートである。
【図7】エンジン停止制御(1) ルーチンの処理の流れを説明するフローチャートである。
【図8】基準点学習ルーチンの処理の流れを説明するフローチャートである。
【図9】フリクション学習ルーチンの処理の流れを説明するフローチャートである。
【図10】エンジン停止制御(2) ルーチンの処理の流れを説明するフローチャートである。
【図11】停止位置制御ルーチンの処理の流れを説明するフローチャートである。
【図12】エンジン始動制御(1) ルーチンの処理の流れを説明するフローチャートである。
【図13】第1点火気筒マップの一例を示す図である。
【図14】エンジン始動制御(2) ルーチンの処理の流れを説明するフローチャートである。
【図15】本実施例のエンジン停止制御の一例を示すタイムチャートである。
【図16】規範Ne2 誤差上限・下限マップの一例を示す図である。
【図17】制御可能なエネルギ偏差の下限値ThAltMinのマップの一例を示す図である。
【図18】制御可能なエネルギ偏差の上限値ThAltMaxのマップの一例を示す図である。
【図19】第1点火気筒が正常燃焼した時のエンジン回転速度Neの挙動の一例を示すタイムチャートである。
【図20】第1点火気筒が失火した時のエンジン回転速度Neの挙動の一例を示すタイムチャートである。
【図21】燃料カット直後(エンジン停止挙動初期)のエンジン回転速度Neの検出値と実際値とクランク角の検出値の挙動を示すタイムチャートである。
【図22】基準点から所定クランク角手前[(4π/N)×β]の位置で目標Ne2 と実Ne2 との偏差(エネルギ偏差)が0となるようにフィードバック補正トルクTfbを算出する方法を説明する図である。
【符号の説明】
【0112】
11…エンジン、12…吸気管、16…スロットルバルブ、21…燃料噴射弁、23…排気管、28…クランク角センサ、30…ECU(基準点目標回転速度設定手段,目標軌道算出手段,停止制御手段,学習補正手段)、33…オルタネータ(電動機)
【特許請求の範囲】
【請求項1】
エンジン停止要求に応じてエンジン回転を停止させる際に、エンジン回転停止位置を目標停止位置に制御するようにエンジン回転挙動を電動機のトルクで制御するエンジン停止制御を実行するエンジン停止制御装置において、
前記目標停止位置から所定クランク角手前に設定した基準点の目標回転速度を設定する基準点目標回転速度設定手段と、
前記エンジン停止制御開始から前記基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(以下「目標軌道」という)を前記基準点の目標回転速度とエンジンフリクションとに基づいて算出する目標軌道算出手段と、
前記エンジン停止制御の実行中にエンジン回転挙動を前記目標軌道に一致させるように前記電動機のトルクを制御する停止制御手段と
を備えていることを特徴とするエンジン停止制御装置。
【請求項2】
前記基準点目標回転速度設定手段は、前記基準点の目標回転速度を前記電動機のトルクが発生する回転速度範囲の下限回転速度以下に設定することを特徴とする請求項1に記載のエンジン停止制御装置。
【請求項3】
前記目標軌道算出手段は、複数のエンジンフリクションの中から、前記基準点までのクランク角に応じたエンジンフリクションを選択して前記目標軌道を算出することを特徴とする請求項1又は2に記載のエンジン停止制御装置。
【請求項4】
エンジン回転の実際の停止位置と目標停止位置との差に基づいて前記基準点の目標回転速度を学習補正する学習補正手段を備えていることを特徴とする請求項1乃至3のいずれかに記載のエンジン停止制御装置。
【請求項1】
エンジン停止要求に応じてエンジン回転を停止させる際に、エンジン回転停止位置を目標停止位置に制御するようにエンジン回転挙動を電動機のトルクで制御するエンジン停止制御を実行するエンジン停止制御装置において、
前記目標停止位置から所定クランク角手前に設定した基準点の目標回転速度を設定する基準点目標回転速度設定手段と、
前記エンジン停止制御開始から前記基準点の目標回転速度に至るまでの目標とするエンジン回転挙動の軌道(以下「目標軌道」という)を前記基準点の目標回転速度とエンジンフリクションとに基づいて算出する目標軌道算出手段と、
前記エンジン停止制御の実行中にエンジン回転挙動を前記目標軌道に一致させるように前記電動機のトルクを制御する停止制御手段と
を備えていることを特徴とするエンジン停止制御装置。
【請求項2】
前記基準点目標回転速度設定手段は、前記基準点の目標回転速度を前記電動機のトルクが発生する回転速度範囲の下限回転速度以下に設定することを特徴とする請求項1に記載のエンジン停止制御装置。
【請求項3】
前記目標軌道算出手段は、複数のエンジンフリクションの中から、前記基準点までのクランク角に応じたエンジンフリクションを選択して前記目標軌道を算出することを特徴とする請求項1又は2に記載のエンジン停止制御装置。
【請求項4】
エンジン回転の実際の停止位置と目標停止位置との差に基づいて前記基準点の目標回転速度を学習補正する学習補正手段を備えていることを特徴とする請求項1乃至3のいずれかに記載のエンジン停止制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2010−43532(P2010−43532A)
【公開日】平成22年2月25日(2010.2.25)
【国際特許分類】
【出願番号】特願2008−205949(P2008−205949)
【出願日】平成20年8月8日(2008.8.8)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
【公開日】平成22年2月25日(2010.2.25)
【国際特許分類】
【出願日】平成20年8月8日(2008.8.8)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】
[ Back to top ]