(57)【要約】  【課題】制御収束性と安定性とを高次元で両立させ、ノッキング限界での安定した運転を可能として出力ロスを最小限に抑える。  【解決手段】ノック強度ｋｎｋｌｖｌを取得し（Ｓ１５０）、強ノックの場合、全体学習値を遅角側に大きく更新して部分学習値をクリアし（Ｓ１５２）、全体学習へ移行する（Ｓ１６０）。中ノック状態の場合、全体学習が未終了であれば全体学習へ移行し（Ｓ１６０）、全体学習が終了している場合、部分学習へ移って部分学習値を遅角側に更新する（Ｓ１６１）。弱ノック状態の場合、ノックＦ／Ｂ値を遅角側に更新する（Ｓ１６２）。ノック無し状態の場合、全体学習が未終了であれば全体学習へ移って全体学習値を進角側に更新し（Ｓ１６０）、全体学習が終了してリタード制御中の場合、ノックＦ／Ｂ値を進角側に更新し（Ｓ１６２）、リタード制御が終了している場合は、部分学習値を進角側に更新する（Ｓ１６１）。【選択図】図５
2007132218.tif 000002
【特許請求の範囲】
【請求項１】
エンジンのノッキングを検出し、ノッキング強度に応じてエンジン制御量を学習するエンジンのノッキング制御装置において、
上記ノッキング強度が設定範囲の弱ノッキング発生時を除く運転状態で学習制御を実行する学習制御手段と、
上記ノッキング強度が設定範囲の弱ノッキング発生時の運転状態でノッキングフィードバック制御を行うノッキングフィードバック制御手段とを備えたことを特徴とするエンジンのノッキング制御装置。
【請求項２】
上記学習制御は、上記ノッキング強度が大きいほど、上記エンジン制御量をエンジン出力がより低下する側に制御することを特徴とする請求項１に記載のエンジンのノッキング制御装置。
【請求項３】
上記弱ノッキング発生時には、学習値を更新しないことを特徴とする請求項１または２に記載のエンジンのノッキング制御装置。
【請求項４】
上記学習制御手段は、ノッキングの有無に応じ全体学習を設定する全体学習を実行し、その後各運転状態毎にノッキング発生の有無に応じ部分学習を設定し、これらの全体学習、部分学習により、学習値を定め、
上記ノッキング強度が設定範囲の最大ノッキング発生時、且つ上記全体学習が終了しているとき、上記全体学習に強制的に復帰させると共に、上記部分学習の学習値をクリアする学習復帰手段を更に備えたことを特徴とする請求項１から３の何れか一に記載のエンジンのノッキング制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンジンのノッキングを検出し、ノッキング強度に応じて学習を実施するエンジンのノッキング制御装置に関する。
【背景技術】
【０００２】
一般に、エンジンにノッキングが発生した場合には、点火時期を遅角させる等してエンジンの出力を抑制し、ノッキングを回避するようにしている。すなわち、点火時期を遅角させると、燃焼室内での混合気の着火時期が遅くなってノッキングが生じにくくなるため、点火時期のリタード制御でノッキングを抑制することができる。
【０００３】
この点火時期制御では、ノッキングの発生の有無に応じて進角・遅角量を学習する学習制御を取入れることが一般的であり、例えば、特許文献１には、軽負荷側の所定負荷以下における特定の学習遅角量を一定の値にすることで、ノッキング制御領域内でのみ学習制御を行った場合に、ノッキング非制御領域からノッキング制御領域に負荷が変化したときに、点火時期の遅れによるトルク変動や出力の低下を防止する技術が開示されている。
【０００４】
また、特許文献２には、ノッキング発生の有無に応じて進角・遅角しながら学習する全体学習と、全体学習後に運転状態毎にノッキング発生の有無に応じて進角・遅角しながら学習する部分学習とを行い、ノッキング発生時に一旦遅角してその後でノッキング無しの場合には徐々に進角するようなノッキングフィードバック補正量がノッキング発生により遅角側に更新されて設定値を越えた場合、学習制御を全体学習に復帰させることで、ノッキング発生時の全体学習への復帰応答性を向上する技術が開示されている。
【特許文献１】特開昭５９−１１３２６７号公報
【特許文献２】特開平２−３０５３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、従来のノッキングの有無のみで判断する制御では、制御応答性と安定性とのバランスを取ると、以下の（１），（２）に示す何れかの制御で対応せざるを得ない。
【０００６】
（１）指定オクタン価の燃料使用時は、環境条件が変化してもノッキングが発生しないよう、予め出力を落とすようにフィードフォワード制御等で対応し、弱いノッキングに対してはノッキング制御の対象外とする。
【０００７】
（２）低オクタン価の燃料が給油された等、強いノッキングが発生したときのみ、ノッキングフィードバック制御でエンジン出力が小さくなる方向に大きく制御する。
【０００８】
これは応答性を重視すると、制御量（点火時期・学習値等）を短時間に大きく動かす必要があるため、急激なトルク変動からヘジテーション（加速息継ぎ）が発生したり、適正な制御量への収束が難しくなる反面、安定性を重視すると収束に時間がかかり、ユーザに不快なノッキング音を与えてしまったり、ノッキングが助長されて燃焼室温度が過度に上昇する等の不具合に繋がるためである。
【０００９】
本来、エンジンは進角限界ＭＢＴ(Minimum Spark Advance for Best Torque)で運転するか、ノッキング発生により進角限界ＭＢＴで運転できない場合はノッキング限界ぎりぎりで運転するのが最も出力が高く効率が良い。しかしながら、従来のノッキング制御では、上述の理由から実際には予めノッキング限界より余裕をもった領域で運転をしており、その分、出力をロスしている。
【００１０】
本発明は上記事情に鑑みてなされたもので、制御収束性と安定性とを高次元で両立させ、ノッキング限界での安定した運転を可能として出力ロスを最小限に抑えることのできるエンジンのノッキング制御装置を提供することを目的としている。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明による第１のエンジンのノッキング制御装置は、エンジンのノッキングを検出し、ノッキング強度に応じてエンジン制御量を学習するエンジンのノッキング制御装置において、上記ノッキング強度が設定範囲の弱ノッキング発生時を除く運転状態で学習制御を実行する学習制御手段と、上記ノッキング強度が設定範囲の弱ノッキング発生時の運転状態でノッキングフィードバック制御を行うノッキングフィードバック制御手段とを備えたことを特徴とする。
【００１２】
また、本発明による第２のエンジンのノッキング制御装置は、第１のエンジンのノッキング制御装置において、上記学習制御は、上記ノッキング強度が大きいほど、上記エンジン制御量をエンジン出力がより低下する側に制御することを特徴とする。
【００１３】
また、本発明による第３のエンジンのノッキング制御装置は、第１または第２のエンジンのノッキング制御装置において、上記弱ノッキング発生時には、学習値を更新しないことを特徴とする。
【００１４】
また、本発明による第４のエンジンのノッキング制御装置は、第１から第３のエンジンのノッキング制御装置の何れかにおいて、上記学習制御手段は、ノッキングの有無に応じ全体学習を設定する全体学習を実行し、その後各運転状態毎にノッキング発生の有無に応じ部分学習を設定し、これらの全体学習、部分学習により、学習値を定めることを特徴とし、更に、上記ノッキング強度が設定範囲の最大ノッキング発生時、且つ上記全体学習が終了しているとき、上記全体学習に強制的に復帰させると共に、上記部分学習の学習値をクリアする学習復帰手段を備えたことを特徴とする。
【発明の効果】
【００１５】
本発明によるエンジンのノッキング制御装置は、制御収束性と安定性とを高次元で両立させることができ、ノッキング限界での安定した運転を可能として出力ロスを最小限に抑えることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の実施の形態を説明する。図１〜図８は本発明の実施の一形態に係わり、図１はエンジン及びエンジン制御系の概略構成図、図２は筒内圧を示す波形図、図３は筒内圧の周波数解析結果を示す波形図、図４は点火時期制御ルーチンのフローチャート、図５はノック制御量更新ルーチンのフローチャート、図６は全体学習ルーチンのフローチャート、図７は部分学習ルーチンのフローチャート、図８はノックフィードバック値設定ルーチンのフローチャートである。
【００１７】
先ず、図１に基づいてエンジン及びエンジン制御系の概略構成について説明する。同図において、符号１は複数の気筒を有する多気筒エンジンであり、このエンジン１のシリンダブロック１ａに形成された各気筒の吸気ポート１ｂに、吸気マニホルド２が連通されている。吸気マニホルド２の集合部には、エアチャンバ３を介して吸気管４が連通され、この吸気管４の上流の空気取入れ口に、エアクリーナ５が介装されている。
【００１８】
また、エンジン１の各気筒の排気ポート１ｃを連通する排気マニホルド６の集合部に、排気管７を介してマフラ８が連通され、排気管７の中途に触媒９が介装されている。各気筒の燃焼室には、点火プラグ１０が臨まされ、各気筒に連通する吸気マニホルド２の吸気ポート１ｂの直上流に、インジェクタ１１が臨まされている。点火プラグ１０には点火コイル１０ａが接続され、この点火コイル１０ａにイグナイタ１２が接続されている。
【００１９】
また、エンジン１の運転状態を検出するためのセンサ類として、吸気管４のエアクリーナ５の直下流に吸入空気量センサ１３が臨まされ、吸気管４の中途に介装されたスロットル弁１４に、スロットル開度センサ１５が連設されている。また、シリンダブロック１ａ内に形成された冷却水通路（図示せず）に、水温センサ１６が臨まされている。
【００２０】
また、各気筒に筒内圧センサ１７が臨まされ、排気管７の上流側にＯ2センサ等の空燃比センサ１８が臨まされている。更に、クランクシャフトと同期回転するクランクロータ１９にクランク角センサ２０が対設されている。尚、図１においては、筒内圧センサ１７は、点火プラグ１０と別に設置する例を示しているが、点火プラグ１０と共に取付ける座金タイプのものでも良い。また、クランクロータ１９には、所定クランク角毎にクランク角度を検出するための突起等が形成されている。
【００２１】
一方、符号５０は、エンジン１を制御する電子制御装置（ＥＣＵ）であり、マイクロコンピュータを中心として形成されている。ＥＣＵ５０は、メモリ（ＲＯＭ）に格納されている制御プログラムに従って、センサ・スイッチ等からの信号を処理し、アクチュエータを介してエンジン制御を実行する。このエンジン制御は、インジェクタ１１を介した燃料噴射制御、点火プラグ１０に接続される点火コイル１０ａのイグナイタ１２を介した点火時期制御を基本とする制御である。
【００２２】
このようなＥＣＵ５０によるエンジン制御において、ＥＣＵ５０は、エンジンのノッキング（以下、適宜、「ノック」と記載する場合もある）の有無及び強度を検出し、ノック強度に応じた学習制御を実行してエンジン運転状態に応じて設定される燃料噴射量や点火時期等のエンジン制御量を補正するようにしている。これにより、応答性と安定性を高次元で両立したエンジン制御を実現可能としている。
【００２３】
エンジンで発生するノッキングは、筒内圧センサ１７で検出した筒内圧（燃焼圧）を信号処理することにより、検出することができる。例えば、ノック強度をノック無しから強ノックまでの６段階のモード１〜６に区分し、各モードでの筒内圧波形を筒内圧センサ１７で検出すると、図２（ａ）〜（ｆ）に示すような波形が得られる。
【００２４】
尚、図２（ａ）のモード１の筒内圧波形はノック無しの状態、図２（ｂ），（ｃ）のモード２，３の筒内圧波形はノック強度弱の状態、図２（ｄ），（ｅ）に示すモード４，５はノック強度中の状態、図２（ｆ）に示すモード６の筒内圧波形はノック強度強の状態を示している。
【００２５】
図２の筒内圧波形を周波数解析すると、図３に示すスペクトルの波形が得られる。図３（ａ）〜（ｆ）は、図２（ａ）〜（ｆ）のモード１〜６の筒内圧波形を高速フィーリエ変換（Fast Fourier Transform;FFT）したスペクトル図である。このＦＦＴスペクトル図において、例えば、Ｆ0のラインで示す周波数（例えば、６０００Ｈｚ）付近に注目すると、モード１では見られなかったスペクトルがノックが強くなるに従って大きくなっている様子が分かり、この点に着目するとノック強度がわかるようになる。従って、筒内圧波形に対してバンドパスフィルタなどを用いて該当周波数成分のみを抽出し、その成分を積分処理したり振動のピークをモニタする等の手法を用いることにより、ノックの有無と強度を検出することができる。
【００２６】
尚、ノック検出としては、筒内圧を利用する他、振動式ノックセンサを用いてノックによる振動成分を抽出する、或いは、燃焼の際の点火プラグに流れるイオン電流のノックによる振動成分を抽出するようにしても良く、何れにしてもノックの発生状況をモニタしてノックを検出することにかわりはなく、同様のパラメータを得ることができる。
【００２７】
検出されたノック強度は、ＥＣＵ５０内のワークメモリ（ＲＡＭ）にストアされ、エンジンの点火毎に更新されていく。このノック強度に基づく制御量は、点火時期制御、燃料噴射制御、更に、過給機付きエンジンでは過給圧制御に適用することができ、ノック強度に応じて点火時期、燃料噴射量、過給圧等に対する補正が実施され、ノック限界での安定した運転を可能として、エンジンの出力ロスを最小に抑えることができる。
【００２８】
以下、ノック強度に応じた学習制御とフィードバック制御とを取入れた点火時期制御にについて説明する。
【００２９】
この点火時期制御は、ＥＣＵ５０のノッキングフィードバック制御手段、学習制御手段、学習復帰手段としての機能により実現され、エンジン運転状態に基づいて決定した基本点火時期を、ノック強度に応じた学習値とノッキングフィードバック値とにより補正して最終的な点火時期を決定する。その際、基本的には、弱いノックに対しては、フィードバック制御を適用して点火時期を遅角化することでノックを回避し、強いノックが発生した場合には、学習制御に迅速に復帰して点火時期を遅角化することでノックを回避する。
【００３０】
すなわち、ノック発生限界ぎりぎりにてセッティングされた状態でエンジンを運転した場合に発生するノッキングの原因は、主として、以下の（ａ）〜（ｃ）の要因が挙げられる。 
（ａ）燃料のオクタン価の変化（中ノック〜強ノック）
（ｂ）高負荷運転や微少ノック発生で更にノックが助長される燃焼室温度の上昇変化（弱ノック〜中ノック）
（ｃ）吸気温（外気温）・湿度上昇等の環境変化（弱ノック〜中ノック）
【００３１】
ノック限界（強度）との関係を見ると、（ａ）の要因による影響が最も大きく、次に（ｂ），（ｃ）の順となる。但し、（ｂ），（ｃ）の状態が連続すると、ノックにより更に燃焼室温度が上昇し、ノックが徐々に大きくなる。また、（ａ）は給油時のみ状態が変化するため、ノック限界の変化量は大きいが、（ｂ）や（ｃ）と比べると、変化する頻度は少ない。
【００３２】
ノック音の大きさも同様であり、車体や走行条件にもよるが、（ｂ）の程度の状態で発生したノック音は車室内に聞こえてくるが、（ｃ）ではほとんど聞こえない。 ノック音が車室内に聞こえてくると、例えエンジンが不調にならなくてもユーザに不安や不快感を与える虞がある。ノック音が聞こえなければ、この状態では、特に問題にはならない。
【００３３】
一方、学習制御とフィードバック制御との関係で見ると、学習値は、バッテリ電源によってバックアップされたバックアップＲＡＭに保存され、その値が常に保持されることから、遅角状態が継続するパラメータに対して有効である。これに対し、フィードバック値は、電源ＯＦＦと共にデータが失われる通常のＲＡＭに保存され、制御条件が無効になったり、エンジンが停止した際にクリアされてしまうため、逆に、変化が速く非継続なパラメータに対して有効である（点火時期をリタードすれば燃焼室温度が多少低下するため、連続ノックの抑制に対して有効である）。
【００３４】
従って、大きなノックに対しては学習制御を，小さなノックに対してはフィードバック制御を適用するのが有効である。特に微弱ノックに対しては、ノックが発生していないのにノックと発生する誤判定の可能性が高く、安易に学習制御を行うと制御安定性が損なわれる虞がある。フィードバック制御で対応すれば、例え誤判定があっても、適正な制御状態へ迅速に復帰することができる。
【００３５】
以上を踏まえると、ノックの大きな（ａ）と連続的な（ｂ）のノック発生要因に対しては、学習制御にてノックを抑制し、非連続な（ｂ），（ｃ）については、状態が連続することによるノック助長を防止するため、応答性の良いフィードバック制御でノックを抑制することが有効である。
【００３６】
以上の点火時期制御は、具体的には、図４〜図８のフローチャートに示すプログラム処理によって実現される。次に、図４〜図８の各ルーチンについて説明する。
【００３７】
先ず、図４に示す点火時期制御ルーチンにおいては、最初のステップＳ１００で、各センサ類からの信号に基づいて、エンジン回転数、吸入空気量、冷却水温等のエンジン運転状態を検出する。そして、ステップＳ１０１，Ｓ１０２で、エンジン回転数とエンジン負荷（吸入空気量や基本燃料噴射量等）とをパラメータとするマップ検索により、進角限界ＭＢＴ、基本点火時期ＩＧＢを求める。
【００３８】
基本点火時期ＩＧＢは、例えばレギュラーガソリン等の低オクタン価燃料を使用した際にノッキングを許容範囲内に抑えることのできるノック限界の点火時期であり、エンジン回転数やエンジン負荷が大きくなる程、進角側に移動する特性を有している。また、進角限界ＭＢＴは、対象となるエンジンが発揮することのできる許容最大トルクでの点火時期を、基本点火時期ＩＧＢに対する進角量として表したものであり、同様に、エンジン回転数やエンジン負荷が大きくなる程、進角側に移動する特性を有している。
【００３９】
次に、ステップＳ１０３へ進んで学習条件をチェックし、エンジン始動時や冷態時等を除いて図５のルーチンを実行し、ノック強度に応じて基本点火時期ＩＧＢを補正するためのノック制御量を更新する。後述するように、本形態の点火時期制御においては、現在のエンジンの要求している点火時期が基本点火時期ＩＧＢによる下限位置と進角限界ＭＢＴによる上限位置との間のどの位置にあるのかを所定の運転領域で大まかに学習すると共に、この運転領域を細分化して運転状態に応じて更に細かく学習する、いわゆ全体学習と部分学習とに分けて学習を行う方式を採用しており、全体学習値ＡＴ、部分学習値ＡＰ、ノックフィードバック（ノックＦ／Ｂ）値ＡＫをノック制御量として、ノック強度に応じて更新する。
【００４０】
そして、ステップＳ１０４で、全体学習値ＡＴと部分学習値ＡＰとの和による学習補正値ＩＧＬにノックＦ／Ｂ値ＡＫを加算した値を進角限界ＭＢＴと比較し、点火時期を進角限界まで進角させることが可能な否かを判断する。その結果、ＭＢＴ≦ＩＧＬ＋ＡＫの場合には、ステップＳ１０５で基本点火時期ＩＧＢに進角限界ＭＢＴを加算して点火時期ＩＧＴを算出する（ＩＧＴ＝ＩＧＢ＋ＭＢＴ）。また、ＭＢＴ＞ＩＧＬ＋ＡＫの場合には、ステップＳ１０６で学習補正値ＩＧＬとノックＦ／Ｂ値ＡＫとにより基本点火時期ＩＧＢを補正して点火時期ＩＧＴを算出する（ＩＧＴ＝ＩＧＢ＋ＩＧＬ＋ＡＫ）。
【００４１】
次に、上述のステップＳ１０３におけるノック制御量の更新について、図５に示すノック制御量更新ルーチンのフローチャートに基づいて説明する。
【００４２】
図５のノック制御量更新ルーチンでは、最初のステップＳ１５０において、筒内圧センサ１７で検出した筒内圧波形を信号処理してノック強度ｋｎｋｌｖｌを取得する。次に、ステップＳ１５１へ進み、ノック強度ｋｎｋｌｖｌを、強ノック状態を定める判定値Ｋｎ１と比較し、現在の運転状態が強ノック状態か否かを判別する。
【００４３】
その結果、ｋｎｋｌｖｌ≧Ｋｎ１で強ノック発生状態と判別された場合は、ステップＳ１５２へ進み、全体学習が大きく間違えていると判断して直ちに全体学習値ＡＴを通常よりも大きく遅角側に更新し、以降のノッキング発生を回避する。特に全体学習が既に終了していた場合には、全体学習に迅速且つ強制的に復帰させ、部分学習値ＡＰをクリアする。そして、ステップＳ１５２からステップＳ１６０へ進んで図６の全体学習ルーチンへ移行し、全体学習をやり直す。
【００４４】
これにより、燃料のオクタン価の変化等に起因する強ノックから連続高負荷運転や微少ノック発生に起因する燃焼室の温度上昇によって助長される中ノックを有効に抑制することができる。この全体学習中はノックＦ／Ｂ値は常にクリアされ（ノックＦ／Ｂ制御停止）、学習制御とノックＦ／Ｂ制御との相互干渉を防止して全体学習値ＡＴのばらつきを回避することができる。
【００４５】
また、ステップＳ１５１において、ｋｎｋｌｖｌ＜Ｋｎ１で強ノック状態と判別されない場合には、ステップＳ１５１からステップＳ１５３へ進み、ノック強度ｋｎｋｌｖｌを中ノック状態を定める判定値Ｋｎ２と比較し、中ノック状態の判別を行う。そして、ｋｎｋｌｖｌ≧Ｋｎ２で中ノック状態と判別された場合には、ステップＳ１５４で全体学習が終了したかどうかを判別する。全体学習が未終了であれば、ステップＳ１６０の全体学習ルーチンへ移行し、全体学習値ＡＴを遅角側に更新する。全体学習が終了している場合には、ステップＳ１６１で図７の部分学習ルーチンへ移り、部分学習値ＡＰを遅角側に更新する。
【００４６】
また、ステップＳ１５３において、ｋｎｋｌｖｌ＜Ｋｎ２で中ノック状態と判別されないときには、ステップＳ１５５でノック強度ｋｎｋｌｖｌを弱ノック状態を定める判定値Ｋｎ３と比較し、弱ノック状態の判別へと移る。そして、ｋｎｋｌｖｌ≧Ｋｎ３で弱ノック状態と判別された場合、ステップＳ１６２でノックＦ／Ｂ値設定ルーチンへ移り、ノックＦ／Ｂ値を遅角側に更新する。
【００４７】
一方、ステップＳ１５５においてｋｎｋｌｖｌ＜Ｋｎ３でノック無し状態と判別された場合には、ステップＳ１５６へ進んで全体学習が終了したか否かを判別する。全体学習が未終了の場合は、ステップＳ１６０の全体学習ルーチンへ移り、全体学習値ＡＴを進角側に更新する。全体学習が終了している場合は、ステップＳ１５６からステップＳ１５７へ進む。
【００４８】
ステップＳ１５７では、前回のノックＦ／Ｂ値ＡＫが０か否か（リタード制御中か否か）を判別する。そして、リタード制御中（ノックＦ／Ｂ値＜０）のときには、ステップＳ１６２のノックＦ／Ｂ値設定ルーチンへ移り、リタード制御を終了すべくノックＦ／Ｂ値ＡＫを進角側に更新する。ノックＦ／Ｂ値ＡＫが０で既にリタード制御が終了しているときは、ステップＳ１６１の部分学習ルーチンに移り、部分学習値ＡＰを進角側に更新する。すなわち、ノックＦ／Ｂ値ＡＫは、弱ノック発生時のリタード制御のみに用いられ、ノック回避後は、学習制御によって点火時期が進角される。
【００４９】
次に、図６の全体学習ルーチンについて説明する。全体学習ルーチンでは、先ず、全体学習ＡＴのアドレスをレジスタＸに入れておく。そして、ステップＳ２０１でノッキングの有無が判別され、ノッキング有りの場合は、ステップＳ２０２で全体学習値ＡＴを設定値γ１だけ遅角し、ステップＳ２０６へ進む。
【００５０】
また、ノッキング無しの場合は、ノッキング無しの時間を計時するタイマをスタートさせて進角復帰の条件をチェックする。すなわち、ステップＳ２０３で進角限界ＭＢＴと学習補正値ＩＧＬ（＝ＡＴ＋ＡＰ）とを比較し、Ｓ２０４でノッキング無しの時間（タイマ値）ＴＭ１が一定時間ｔ１（例えば１秒)を越えて継続しているか否かをチェックする。
【００５１】
そして、ステップＳ２０３でＭＢＴ＞ＩＧＬの場合、或いはステップＳ２０４でＴＭ１≦ｔ１の場合には、進角復帰せずにステップＳ２０６へ進む。一方、ステップＳ２０３でＭＢＴ≦ＩＧＬの場合は、これ以上進角させても進角限界ＭＢＴを越えて逆に出カトルクは低下してしまうため、学習値の更新は行わず、且つ、ステップＳ２０４でＴＭ１＞ｔ１のときには、ステップＳ２０５で全体学習値ＡＴを設定値ａ１だけ進角側に更新し、ステップＳ２０６へ進む。
【００５２】
ステップＳ２０６以降では、全体学習の終了条件をチェックする。すなわち、ステップＳ２０６で所定の最大進角量ＡＭに対する全体学習値ＡＴの大ききを判断し、ノッキング無しで進角が進み、ＡＴ≧ＡＭに達すると、ステップＳ２０６からステップＳ２０７に進んでタイマ値ＴＭ２の累積時間ｔ２（例えば３秒)経過後に、全体学習値ＡＴがノッキング限界に収束したと判断し、ステップＳ２０８で全体学習終了フラグをセットして全体学習を終了する。
【００５３】
次に、全体学習が終了して図７の部分学習ルーチンに移ると、先ず、ステップＳ３００で現在の運転状態の部分学習値ＡＰが格納されているアドレスをレジスタＸに入れ、ステップＳ３０１以降の部分学習が実行される。この部分学習は、全体学習と同様の処理であり、ステップＳ３０１でノッキング有りの場合、ステップＳ３０２で部分学習値ＡＰが設定値γ２だけ遅角側に更新される。
【００５４】
また、ステップＳ３０１でノッキング無しの場合には、ステップＳ３０３、Ｓ３０４においてＭＢＴ＞ＩＧＬ且つタイマ値ＴＭ３が一定時間ｔ３を越えている条件が成立すると、ステップＳ３０５で部分学習値ＡＰが設定値ａ２だけ進角側に更新される。これらの部分学習値ＡＰの更新により、全体学習値ＡＴと部分学習値ＡＰとを加算した学習補正値ＩＧＬが各運転状態での実際のノッキング限界に非常に近い値となる。
【００５５】
その後、ステップＳ３０６以降で全体学習への復帰がチェックされ、ステップＳ３０６で部分学習値ＡＰが許容範囲外、且つステップＳ３０７で遅角側に許容範囲を越えているとき、或いは、ステップＳ３０８でノックＦ／Ｂ値ＡＫが許容値外のときには、ステップＳ３０９，Ｓ３１０で全体学習値ＡＴ、部分学習値ＡＰをクリアする。そして、ステップＳ３１１で全体学習終了フラグをクリアし、全体学習に復帰する。
【００５６】
一方、弱ノックの発生により図８のノックフィードバック値設定ルーチンに移行すると、先ず、ステップＳ４００でノッキングの有無が判断される。そして、ノッキング有りの場合、ステップＳ４０１でノックＦ／Ｂ値ＡＫが設定値γ３だけ遅角側に更新され、ノックが回避される。このとき、学習が停止されて点火時期ＩＧＴはノックＦ／Ｂ値ＡＫのみによりリタード制御されることになり、弱ノックの誤判定による誤学習を回避して制御安定性を確保することができる。
【００５７】
その後、ノッキングが回避されると、ステップＳ４００からステップＳ４０２へ進み、タイマ値ＴＭ４によりノッキング無しの時間がチェックされる。そして、ノッキング無しの時間が一定時間ｔ４継続している場合（ＴＭ４≧ｔ４）、ステップＳ４０３でノックＦ／Ｂ値ＡＫが設定値ａ３により進角例に徐々に更新される。そして、ＡＫ＝０に達した時点でノックＦ／Ｂ制御が停止され、学習制御に移行する。
【００５８】
以上のように本形態においては、弱いノックに対しては、ノックの誤判定による誤学習を回避しながらフィードバック制御のみで対応することで制御安定性を確保し、強いノックが発生したときには、直ちに全体学習に復帰して部分学習値ＡＰをクリアし、全体学習値ＡＴを大きく遅角側に更新することで、ノックを回避する。これにより、制御収束性と安定性とを高次元で両立させることができ、ノッキング限界での安定したエンジンの運転を可能とし、出力ロスを最小限に抑えることができる。
【００５９】
尚、本発明は燃料噴射制御や過給圧制御に適用することも可能である。
【図面の簡単な説明】
【００６０】
【図１】エンジン及びエンジン制御系の概略構成図
【図２】筒内圧を示す波形図
【図３】筒内圧の周波数解析結果を示す波形図
【図４】点火時期制御ルーチンのフローチャート
【図５】ノック制御量更新ルーチンのフローチャート
【図６】全体学習ルーチンのフローチャート
【図７】部分学習ルーチンのフローチャート
【図８】ノックフィードバック値設定ルーチンのフローチャート
【符号の説明】
【００６１】
１  エンジン
１０  点火プラグ
１７  筒内圧センサ
５０  電子制御装置
ＡＫ  ノックフィードバック値
ＡＰ  部分学習値
ＡＴ  全体学習値
ＩＧＢ  基本点火時期
ＩＧＴ  点火時期
ｋｎｋｌｖｌ  ノック強度
【図１】
2007132218.tif 000003
【図２】
2007132218.tif 000004
【図３】
2007132218.tif 000005
【図４】
2007132218.tif 000006
【図５】
2007132218.tif 000007
【図６】
2007132218.tif 000008
【図７】
2007132218.tif 000009
【図８】
2007132218.tif 000010