説明

内燃機関の制御装置

【課題】内燃機関がフィードバック制御を実行できない運転領域にある場合であっても、燃料噴射量をアルコール濃度に応じた最適な値に補正し、よって燃料補正の制御精度を向上させるようにした内燃機関の制御装置を提供する。
【解決手段】内燃機関(エンジン)の運転領域を複数個の領域に区分すると共に、その1つの領域を基準領域として設定し(S14)、内燃機関の運転が基準領域にあるときに算出されたフィードバック補正係数と基準領域以外の領域にあるときに算出されたフィードバック補正係数との比率を算出して機差補正係数として記憶しておく一方(S16)、フィードバック補正係数に基づいてアルコール濃度補正係数を算出すると共に、機差補正係数で修正して記憶しておき(S16,S18)、内燃機関がフィードバック制御を実行できない運転領域にあるとき、燃料噴射量Toutを修正されたアルコール濃度補正係数で補正する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は内燃機関の制御装置に関し、より詳しくはガソリン燃料でも、ガソリンにメタノールやエタノールなどのアルコールを混合したアルコール混合燃料でも運転可能な内燃機関の制御装置に関する。
【背景技術】
【0002】
従来より、ガソリン燃料またはアルコール混合燃料で運転可能な内燃機関の制御装置においては、排ガスを排気管に設けられた触媒装置で効率良く浄化するため、酸素濃度センサを排気管に設置し、その出力に基づいて内燃機関の空燃比が理論空燃比に収束(一致)するように燃料噴射量を補正する、いわゆるフィードバック制御が行われている(例えば特許文献1参照)。
【0003】
特許文献1記載の技術にあっては、酸素濃度センサの出力に基づいてフィードバック補正係数を算出し、算出されたフィードバック補正係数で燃料噴射量を補正するようにしている。尚、フィードバック補正係数は燃料に含まれるアルコール濃度によって変化する、具体的には、アルコール濃度が増加すると理論空燃比はリッチ側へ変化することから、フィードバック補正係数も燃料噴射量を増量させる方向に変化する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開昭63−5131号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、内燃機関がフィードバック制御を実行できない運転領域(例えば機関低温時、始動時、加速・減速といった過渡運転時、および高負荷運転時など)にある場合であっても、燃料噴射量をアルコール濃度に応じて補正する必要がある。そこで、フィードバック補正係数が上記した如くアルコール濃度によって変化することから、フィードバック補正係数をアルコール濃度に応じたアルコール濃度補正係数として適用し、燃料噴射量を補正することが考えられる。
【0006】
しかしながら、フィードバック補正係数は、アルコール濃度以外にも内燃機関の機差(個体差。具体的には量産バラツキや経年劣化など)による影響によっても変化する値、即ち、機差を内包した値であるため、フィードバック補正係数をそのままアルコール濃度補正係数として適用すると、燃料噴射量をアルコール濃度に応じた最適な値に補正することができず、燃料補正の制御精度が低下するという不具合が生じていた。
【0007】
従って、この発明の目的は上記した課題を解決し、内燃機関がフィードバック制御を実行できない運転領域にある場合であっても、燃料噴射量をアルコール濃度に応じた最適な値に補正し、よって燃料補正の制御精度を向上させるようにした内燃機関の制御装置を提供することにある。
【課題を解決するための手段】
【0008】
上記の目的を達成するために、請求項1にあっては、内燃機関の排気中の空燃比を検出し、前記検出された空燃比に基づいて燃料噴射量のフィードバック補正係数を算出し、前記算出されたフィードバック補正係数で前記燃料噴射量を補正するフィードバック制御を実行するフィードバック制御手段を備えた内燃機関の制御装置において、前記内燃機関の運転領域を機関回転数と負荷で複数個の領域に区分すると共に、その1つの領域を基準領域として設定する領域設定手段と、前記内燃機関の運転が前記基準領域にあるときに算出された前記フィードバック補正係数と前記基準領域以外の領域にあるときに算出された前記フィードバック補正係数との比率を算出して前記内燃機関の個体差を補正するための機差補正係数として記憶しておく機差補正係数記憶手段と、前記算出されたフィードバック補正係数に基づいて燃料に含まれるアルコール濃度に応じたアルコール濃度補正係数を算出すると共に、前記記憶される機差補正係数で修正して記憶しておくアルコール濃度補正係数記憶手段とを備えると共に、前記内燃機関が前記フィードバック制御を実行できない運転領域にあるとき、前記燃料噴射量を前記修正されたアルコール濃度補正係数で補正するように構成した。
【0009】
請求項2に係る内燃機関の制御装置にあっては、前記領域設定手段は前記基準領域以外の領域を複数個設定すると共に、前記機差補正係数記憶手段は、前記内燃機関の運転が前記基準領域にあるときの前記フィードバック補正係数が算出されないとき、前記内燃機関の運転が前記複数個の基準領域以外の領域のいずれかにあるときに算出された前記アルコール濃度補正係数を前記基準領域にあるときに算出された前記フィードバック補正係数と置換するように構成した。
【発明の効果】
【0010】
請求項1に係る内燃機関の制御装置にあっては、内燃機関の運転領域を複数個の領域に区分すると共に、その1つの領域を基準領域として設定し、内燃機関の運転が基準領域にあるときに算出されたフィードバック補正係数と基準領域以外の領域にあるときに算出されたフィードバック補正係数との比率を算出して機差補正係数として記憶しておく一方、フィードバック補正係数に基づいてアルコール濃度補正係数を算出し、それを機差補正係数で修正して記憶しておくと共に、内燃機関がフィードバック制御を実行できない運転領域にあるとき、燃料噴射量を修正されたアルコール濃度補正係数で補正するように構成したので、内燃機関がフィードバック制御を実行できない運転領域にある場合であっても、燃料噴射量を機差を内包しないように修正されたアルコール濃度補正係数で補正できる、即ち、燃料噴射量をアルコール濃度に応じた最適な値に補正でき、よって燃料補正の制御精度を向上させることができる。
【0011】
また、燃料に含まれるアルコール濃度を検出するセンサなどを新たに設置することなく、燃料噴射量をアルコール濃度に応じて補正するように構成したので、コストアップや装置が複雑化するのを防止することができる。
【0012】
請求項2に係る内燃機関の制御装置にあっては、基準領域以外の領域を複数個設定すると共に、機差補正係数記憶手段は、内燃機関の運転が基準領域にあるときのフィードバック補正係数が算出されないとき、内燃機関の運転が複数個の基準領域以外の領域のいずれかにあるときに算出されたアルコール濃度補正係数を基準領域にあるときに算出されたフィードバック補正係数と置換するように構成、即ち、内燃機関の運転が基準領域になく、そのときのフィードバック補正係数が算出されない場合であっても、基準領域以外の領域にあるときに算出されたアルコール濃度補正係数を基準領域にあるときに算出されたフィードバック補正係数と置換することで前記比率を算出し、それを機差補正係数として記憶しておくように構成したので、上記した効果に加え、その記憶された機差補正係数でアルコール濃度補正係数を修正し、燃料噴射量を修正されたアルコール濃度補正係数で補正でき、よって燃料噴射量をアルコール濃度に応じた最適な値に確実に補正することができる。
【図面の簡単な説明】
【0013】
【図1】この発明の実施例に係る内燃機関の制御装置を全体的に示す概略図である。
【図2】図1に示すECUの構成を全体的に示すブロック図である。
【図3】図1に示す内燃機関の制御装置の動作を示すフロー・チャートである。
【図4】図3の初期値セット処理のサブ・ルーチン・フロー・チャートである。
【図5】図3のフィードバック補正係数算出処理のサブ・ルーチン・フロー・チャートである。
【図6】図3の運転領域判断処理のサブ・ルーチン・フロー・チャートである。
【図7】図6フロー・チャートで使用される運転領域設定を示す説明グラフである。
【図8】図3の機差補正係数算出処理のサブ・ルーチン・フロー・チャートである。
【図9】図3のアルコール濃度補正係数算出処理のサブ・ルーチン・フロー・チャートである。
【図10】図3フロー・チャートと平行して実行される内燃機関の制御装置の動作を示すフロー・チャートである。
【発明を実施するための形態】
【0014】
以下、添付図面に即してこの発明に係る内燃機関の制御装置を実施するための形態について説明する。
【実施例】
【0015】
図1はこの発明の実施例に係る内燃機関の制御装置を全体的に示す概略図である。
【0016】
図1において符号10は、図示しない車両(例えば自動二輪車)に搭載された内燃機関(以下「エンジン」という)を示す。エンジン10は4サイクル単気筒の水冷式で、排気量250cc程度のエンジンからなる。尚、符号10aはエンジン10のクランクケースを示す。
【0017】
エンジン10の吸気管12にはスロットルバルブ14が配置される。スロットルバルブ14は、車両のハンドルバーに運転者の手動操作自在に設けられたアクセラレータ(スロットルグリップ)にスロットルワイヤ(共に図示せず)を介して機械的に接続され、アクセラレータの操作量に応じて開閉され、エアクリーナ16から吸気管12を通ってエンジン10に吸入される空気の量を調整する。
【0018】
吸気管12においてスロットルバルブ14の下流側の吸気ポート付近には、インジェクタ20が配置される。インジェクタ20には、燃料タンク22に貯留される燃料が、燃料タンク22の内部に配置された燃料ポンプ24によって燃料供給管26を介して圧送される。
【0019】
燃料タンク22に貯留される燃料としては、ガソリン、またはガソリンとアルコール(例えばメタノール(メチルアルコール)やエタノール(エチルアルコール)など)の混合燃料、具体的にはガソリン100%(即ち、アルコール0%)の燃料からガソリン70%とアルコール30%のアルコール混合燃料(E30)までの間の燃料が予定される。尚、アルコール混合燃料はガソリンに比して理論空燃比がリッチ側にずれると共に、そのずれはアルコール濃度の増加につれて拡大する。
【0020】
インジェクタ20は、電子制御ユニット(Electronic Control Unit。以下「ECU」という)30の駆動回路(図1で図示せず)に電気的に接続され、ECU30から開弁時間を示すインジェクタ駆動信号が駆動回路を通じて供給されると開弁し、開弁時間に応じた燃料を吸気ポートに噴射する。噴射された燃料は吸入空気と混合して混合気を形成し、吸気バルブ32が開弁されるとき、燃焼室34に流入する。
【0021】
燃焼室34に流入した混合気は、点火コイル36から供給された高電圧で点火プラグ40が火花放電されるときに点火されて燃焼し、ピストン42を図1において下方に駆動してクランク軸44を回転させる。燃焼によって生じた排気(排ガス)は、排気バルブ46が開弁されるとき、排気管50を流れる。排気管50には三元触媒を有する触媒装置52が配置され、排ガス中のHC,CO,NOxなどの有害成分を除去する。触媒装置52で浄化された排ガスはさらに下流に流れ、エンジン10の外部に排出される。
【0022】
スロットルバルブ14の付近にはポテンショメータからなるスロットル開度センサ54が設けられ、スロットルバルブ14の開度TH(エンジン負荷)を示す出力を生じる。吸気管12のスロットルバルブ14の上流側には吸気温センサ56が設けられて吸入空気の温度(吸気温)TAを示す出力を生じると共に、下流側には絶対圧センサ58が設けられ、吸気管内絶対圧PBAを示す出力を生じる。
【0023】
排気管50に設けられた触媒装置52の上流側には、Oセンサ(酸素濃度センサ)60が配置される。Oセンサ60は、理論空燃比近傍で特性が変化する出力を生じる。具体的には、Oセンサ60は、理論空燃比近傍で出力電圧が急変する。従って、Oセンサ60の出力電圧を理論空燃比を表す基準電圧と比較することにより、空燃比が理論空燃比に対してリーンかリッチのいずれであるか判定することができる。
【0024】
エンジン10のシリンダブロックの冷却水通路10bには水温センサ62が取り付けられ、エンジン10の温度(エンジン冷却水温)TWに応じた出力を生じる。エンジン10のクランク軸44の付近にはクランク角センサ64が取り付けられて所定クランク角度位置で(具体的には20°ごとに)クランク角度信号を出力する。
【0025】
上記したスロットル開度センサ54やOセンサ60、クランク角センサ64などの各センサの出力はECU30に入力される。
【0026】
図2はECU30の構成を全体的に示すブロック図である。
【0027】
ECU30はマイクロコンピュータからなり、図2に示すように、波形整形回路30aと、回転数カウンタ30bと、A/D変換回路30cと、CPU30dと、点火回路30eと、2個の駆動回路30f,30gと、ROM30hと、EEPROM(不揮発性メモリ)30iと、RAM30jおよびタイマ30kを備える。
【0028】
波形整形回路30aは、クランク角センサ64の出力(信号波形)をパルス信号に波形整形し、回転数カウンタ30bに出力する。回転数カウンタ30bは入力されたパルス信号をカウントしてエンジン回転数(機関回転数)NEを検出(算出)し、エンジン回転数NEを示す信号をCPU30dへ出力する。A/D変換回路30cは、スロットル開度センサ54やOセンサ60などの各センサの出力が入力され、アナログ信号値をデジタル信号値に変換してCPU30dに出力する。
【0029】
CPU30dは、変換されたデジタル信号などに基づき、ROM30hに格納されているプログラムに従って演算を実行し、クランク角度が点火出力タイミングのときに点火コイル36の点火制御信号を点火回路30eに出力する(即ち、点火時期制御を行う)。また、CPU30dは、各信号などに基づき、同様にROM30hに格納されているプログラムに従って演算を実行し、燃料噴射タイミングのときにインジェクタ駆動信号を駆動回路30fに送る(燃料噴射制御を行う)と共に、各信号などに基づいて燃料ポンプ24を駆動させる燃料ポンプ駆動信号を駆動回路30gに出力する。
【0030】
ここで、燃料噴射制御について説明すると、CPU30dでは、検出された運転状態に応じてエンジン10に供給すべき燃料噴射量Tout(より詳しくはインジェクタ20の開弁時間)を算出し、算出された燃料噴射量Toutに応じてインジェクタ駆動信号を出力する。
【0031】
燃料噴射量Toutは、エンジン10がフィードバック制御を実行できる運転領域(後述するフィードバック制御領域)にあるか否かで算出する計算式が相違し、具体的にはフィードバック制御を実行できる運転領域にあるときは下記の式(1)に従って、フィードバック制御を実行できない運転領域(例えば機関低温時、始動時、加速・減速といった過渡運転時、および高負荷運転時など)にあるときは式(2)に従って算出される。
燃料噴射量Tout=基本燃料噴射量Ti×フィードバック補正係数MHG
×環境補正項 ・・・式(1)
燃料噴射量Tout=基本燃料噴射量Ti×アルコール濃度補正係数MET
×環境補正項 ・・・式(2)
【0032】
式(1)および(2)で基本燃料噴射量Tiは、予め設定されたマップをエンジン回転数NEと吸気管内絶対圧PBAで検索することによって求められる。また、式(1)のフィードバック補正係数MHGは、後述する如くOセンサ60の出力に基づいて算出される。具体的には、Oセンサ60の出力電圧VHGと理論空燃比を表す基準電圧VHGREFを比較して現在の空燃比がリーンかリッチのいずれであるか判定し、リッチの場合はフィードバック補正係数MHGを段階的に減少させる一方、リーンの場合は段階的に増加させる。
【0033】
このように、エンジン10の空燃比が理論空燃比に収束するように燃料噴射量Toutをフィードバック制御(PI制御)する。尚、式(1)(2)の環境補正項は、吸気温TAやエンジン冷却水温TWなどに基づいて算出される。また、式(2)のアルコール濃度補正係数METは、後に詳説する如く、フィードバック制御の実行中にフィードバック補正係数MHGなどに基づいて算出される。
【0034】
図2の説明を続けると、点火回路30eは、CPU30dからの点火制御信号に応じ、点火コイル36を通電して点火を行う。駆動回路30fは、CPU30dからのインジェクタ駆動信号に応じ、インジェクタ20を駆動して燃料を噴射させる。駆動回路30gは、CPU30dから燃料ポンプ駆動信号に応じ、燃料ポンプ24を駆動させる。
【0035】
EEPROM30iは算出されたアルコール濃度補正係数METなどを記憶すると共に、RAM30jは例えば点火時期制御および燃料噴射制御において算出された点火時期や燃料噴射量などのデータが書き込まれる。また、タイマ30kは、図示しないプログラムにおいて行われる時間計測の処理に利用される。
【0036】
図3はこの実施例に係る内燃機関の制御装置の動作を示すフロー・チャートである。図示のプログラムは、ECU30によって所定の周期(例えば20msec)ごとに実行される。
【0037】
以下説明すると、先ずS10において、フィードバック補正係数MHGやアルコール濃度補正係数METの算出に用いられる各種の学習値、フラグなどに初期値をセットする処理を行う。
【0038】
図4はその初期値セット処理を示すサブ・ルーチン・フロー・チャートである。先ずS100において、今回のプログラムループがECU30の起動後最初(初回)のプログラムループか否か判断する。S100で肯定されるときはS102に進み、各学習値やフラグなどの初期値セットを行う。
【0039】
具体的には、後述する機差学習値(基準領域)MREFHGSTDを1.0倍にセットすると共に、機差学習値(第1領域)MREFHG1、機差学習値(第2領域)MREFHG2およびアルコール濃度補正係数METの値にEEPROM30iに記憶された記憶値をそれぞれセットする。
【0040】
また、基準領域履歴フラグF_MREFHGSTD、第1領域履歴フラグF_MREFHG1、第2領域履歴フラグF_MREFHG2およびOセンサ電圧判定フラグF_VHGREFのビットを全て0にリセットする。さらに、フィードバック補正係数平均値(基準領域)MREFHGSTDBにアルコール濃度補正係数METをセットすると共に、フィードバック補正係数平均値(第1領域)MREFHG1Bに補正係数METと学習値(第1領域)MREFHG1を乗算した値を、フィードバック補正係数平均値(第2領域)MREFHG2Bに補正係数METと学習値(第2領域)MREFHG2を乗算した値をセットする。尚、S100で否定されるときはS102の処理をスキップする。
【0041】
図3の説明に戻ると、次いでS12に進み、フィードバック補正係数MHGを算出する処理を実行する。
【0042】
図5はそのフィードバック補正係数算出処理のサブ・ルーチン・フロー・チャートである。図5に示すように、先ずS200において、前回Oセンサ電圧判定フラグF_VHGREF1に前回のプログラム実行時に設定されたOセンサ電圧判定フラグF_VHGREF(後述)をセットして更新する。
【0043】
次いでS202に進んでOセンサ60の出力電圧VHGを読み込み、S204に進み、Oセンサ60の出力電圧VHGを理論空燃比を表す基準電圧VHGREF(例えば0.45V)と比較し、現在の空燃比が理論空燃比に対してリーンとリッチのいずれであるか判定する。具体的には、出力電圧VHGが基準電圧VHGREF以上のときにリッチ、基準電圧VHGREF未満のときにリーンと判定する。
【0044】
このようにS202,S204では、Oセンサ60の出力電圧VHGに基づいてエンジン10の排気中の空燃比を検出し、検出された空燃比が理論空燃比に対してリーンとリッチのいずれであるか判定する。
【0045】
S204で肯定されるときはS206に進み、Oセンサ電圧判定フラグF_VHGREFのビットを1にセットする。即ち、フラグF_VHGREFは現在の空燃比が理論空燃比に対してリッチ側であると判定されるとき1にセットされる一方、後述する如くリーン側であると判定されるとき0にリセットされる。
【0046】
次いでS208に進み、フィードバック補正係数MHGを、前回のプログラム実行時に算出されたフィードバック補正係数MHG(前回値)から積分加減算定数Δを減算することによって算出し、今回値としてセット(更新)する。これにより、エンジン10がフィードバック制御を実行できる運転領域にあるときは前述した式(1)に従って燃料噴射量Toutは減量させられ、よって空燃比がリーン方向へ変化して理論空燃比に収束する。
【0047】
次いでS210に進み、前回Oセンサ電圧判定フラグF_VHGREF1のビットが0か否か判断、換言すれば、前回のプログラムループにおいてリーンと判定されたか否か判断する。S210で否定されるとき、即ち、前回と今回のプログラムループにおいて共にリッチと判定されるときはS212に進み、リッチ/リーン反転フラグF_VHGTGLのビットを0にリセットする一方、肯定されるときはS214に進み、フラグF_VHGTGLのビットを1にセットする。
【0048】
他方、S204で否定されるときはS216に進み、Oセンサ電圧判定フラグF_VHGREFのビットを0にリセットする。次いでS218に進み、フィードバック補正係数MHGの前回値に積分加減算定数Δを加算して得た値をフィードバック補正係数MHGの今回値としてセット(更新)する。これにより、燃料噴射量Toutは増量させられ、よって空燃比がリッチ方向へ変化して理論空燃比に収束する。
【0049】
次いでS220に進み、前回Oセンサ電圧判定フラグF_VHGREF1のビットが1か否か判断、別言すれば、前回のプログラムループにおいてリッチと判定されたか否か判断する。S220で否定されるとき、即ち、前回と今回のプログラムループにおいて共にリーンと判定されるときはS222に進み、リッチ/リーン反転フラグF_VHGTGLのビットを0にリセットする一方、肯定されるときは前述したS214に進み、フラグF_VHGTGLのビットを1にセットする。以上から分かるように、フラグF_VHGTGLのビットが1にセットされることは空燃比がリッチからリーンに、あるいはリーンからリッチに反転したことを意味し、0にリセットされることはその反転がなかったことを意味する。
【0050】
図3フロー・チャートにおいては次いでS14に進み、エンジン10が現在どの運転領域にあるか判断する。
【0051】
図6は、S14の運転領域判断処理のサブ・ルーチン・フロー・チャートである。図6に示すように、S300においてクランク角センサ64の出力に基づいてエンジン回転数NEを検出(算出)し、S302に進んでスロットル開度センサ54の出力に基づいてスロットル開度THを検出(算出)する。
【0052】
次いでS304に進み、検出されたエンジン回転数NEとスロットル開度TH(負荷)に基づき、エンジン10の運転領域を判断する。この処理は、具体的にはエンジン回転数NEとスロットル開度THとから予め設定された運転領域図を参照することで、運転領域を判断する。
【0053】
図7はその運転領域図を示す説明グラフである。図7について説明すると、エンジン10の運転領域は、フィードバック制御が実行される領域(図において破線で囲まれた領域。以下「フィードバック制御領域」という)と、フィードバック制御が実行されない領域(図において破線で囲まれた領域以外の領域)とに区分される。尚、図から分かるように、フィードバック制御が実行されない領域は、エンジン回転数NEやスロットル開度THが極めて大きい領域(例えば高負荷運転時など)、あるいは極めて小さい領域(例えばエンジン始動時など)とされる。
【0054】
前記したフィードバック制御領域はさらに、エンジン回転数NEとスロットル開度THで複数個(3個)の領域に区分される、具体的には高回転領域A、中回転領域Bおよび低回転領域Cに区分される。詳しくは、高回転領域Aは、図においてドットで示す如く、エンジン回転数NEが比較的高回転であってスロットル開度THも比較的大きい領域、またはエンジン回転数NEが低回転であってもスロットル開度THがやや大きい領域に設定される。
【0055】
中回転領域Bは、エンジン回転数NEが高回転領域Aのそれに比して低い中回転であると共に、スロットル開度THも高回転領域Aのそれに比して小さい領域(図において斜線で示す)とされる。また、低回転領域Cは、エンジン回転数NEが中回転領域Bのそれに比して低い低回転であってスロットル開度THも中回転領域Bのそれに比して小さい領域(図において縦線で示す)に設定される。
【0056】
従って、図6のS304では、エンジン回転数NEとスロットル開度THに基づいて図7説明グラフを参照し、エンジン10が上記した運転領域(フィードバック制御領域(高回転領域A、中回転領域B、低回転領域C)とフィードバック制御領域以外の領域)の内のどの領域にあるか判断する。
【0057】
次いでS306に進み、基準領域ナンバー設定値MREFSTDZが3か否か判断する。この設定値MREFSTDZは、後に詳説するが、車両の種類(車種)ごとに1,2,3のいずれかの値が予め設定される。
【0058】
S306で肯定されるときはS308に進み、前記した3個の領域(高回転領域A、中回転領域B、低回転領域C)の内の1つの領域を、機差補正係数MREFHG(後述)を算出する際に基準となるべき基準領域として設定する。具体的には、高回転領域Aを基準領域に設定する。さらに、基準領域(ここでは高回転領域A)以外の領域である低回転領域Cを第1領域に、中回転領域Bを第2領域に設定する。
【0059】
一方、S306で否定されるときはS310に進み、設定値MREFSTDZが2か否か判断する。S310で肯定されるときはS312に進み、中回転領域Bを基準領域に設定すると共に、基準領域(ここでは中回転領域B)以外の領域である低回転領域Cを第1領域に、高回転領域Aを第2領域に設定する。
【0060】
また、S310で否定されるとき、即ち、設定値MREFSTDZが1のときはS314に進み、低回転領域Cを基準領域に設定すると共に、基準領域(ここでは低回転領域C)以外の領域である中回転領域Bを第1領域に、高回転領域Aを第2領域に設定する。
【0061】
これらS306からS314までの処理について詳説すると、上記した基準領域は、機差補正係数MREFHGを算出するときの基準となるため、エンジン10の機差(個体差。具体的には量産バラツキや経年劣化など)が表れ難い運転領域が設定されるのが望ましい。しかしながら、この機差が表れ難い運転領域は車種によって相違する。
【0062】
そこで、この実施例にあっては、機差が表れ難い運転領域を車種ごとに予め実験により求め、求められた運転領域が高回転領域Aである場合は設定値MREFSTDZを3に、中回転領域Bである場合は設定値MREFSTDZを2に、低回転領域Cである場合は設定値MREFSTDZを1に設定しておく。このように構成することで、S306〜S314において、機差が表れ難い運転領域を基準領域として車種に応じて適切に設定することができると共に、機差が表れ易い運転領域を第1、第2領域に設定できる。
【0063】
図3の説明に戻ると、次いでS16に進み、機差補正係数MREFHGを算出する処理を実行する。
【0064】
図8はその機差補正係数算出処理を示すサブ・ルーチン・フロー・チャートである。同図を参照して説明すると、先ずS400において、リッチ/リーン反転フラグF_VHGTGLのビットが1か否か判断、即ち、エンジン10の空燃比がリッチからリーンに、あるいはリーンからリッチに反転したか否か判断する。S400で否定されるときは以降の処理をスキップする一方、肯定されるときはS402に進み、前述したS304で判断されたエンジン10の運転領域が、S308,S312,S314の内のいずれかの処理で設定された基準領域であるか否か判断する。
【0065】
S402で肯定されるときはS404に進み、基準領域履歴フラグF_MREFHGSTDのビットを1にセットする。従って、フラグF_MREFHGSTDのビットが1にセットされることは、エンジン10の運転が基準領域にあり、後述するステップでフィードバック補正係数平均値(基準領域)MREFHGSTDBが算出された履歴があることを、0にリセットされることはその履歴がないことを意味する。
【0066】
次いでS406に進み、そのフィードバック補正係数平均値(基準領域)MREFHGSTDBを算出してセットする。具体的には、フィードバック補正係数MHGにフィルタリング係数CHGREF(例えば0.01倍)を乗算した値と、機差学習値(基準領域)MREFHGSTDに1からフィルタリング係数CHGREFを減算した値を乗算した値とを加算することによって得た値を平均値(基準領域)MREFHGSTDBとしてセットする。
【0067】
次いでS408に進み、S406で算出された平均値(基準領域)MREFHGSTDBを暫定アルコール濃度補正係数METaとしてセットする。このように、フィードバック補正係数MHGに基づいて燃料に含まれるアルコール濃度に応じた暫定アルコール濃度補正係数METaを算出する、正確には、フィードバック補正係数MHGをフィルタリング(平均化)処理することによって、エンジン10の空燃比をアルコール濃度に応じて変化する理論空燃比に収束させ得る平均値(基準領域)MREFHGSTDBを算出すると共に、それを暫定アルコール濃度補正係数METaとする。
【0068】
次いでS410に進み、機差補正係数MREFHGに1.0倍(即ち、機差補正がないことを意味する)をセットしてプログラムを終了する。
【0069】
他方、S402で否定されるときはS412に進み、エンジン10の運転が第1領域にあるか否か判断する。S412で肯定されるときはS414に進み、第1領域履歴フラグF_MREFHG1のビットを1にセットする。従って、フラグF_MREFHG1のビットが1にセットされることは、エンジン10の運転が第1領域にあり、後述するステップでフィードバック補正係数平均値(第1領域)MREFHG1Bが算出された履歴があることを、0にリセットされることはその履歴がないことを意味する。
【0070】
次いでS416に進み、その平均値(第1領域)MREFHG1Bを算出してセットする。具体的には、S406と同様、フィードバック補正係数MHGをフィルタリング処理する、詳しくはフィードバック補正係数MHGにフィルタリング係数CHGREFを乗算した値と、平均値(第1領域)MREFHG1Bの前回値に1からフィルタリング係数CHGREFを減算した値を乗算した値とを加算することによって得た値を平均値(第1領域)MREFHG1Bの今回値としてセットする。
【0071】
次いでS418に進み、S416で算出された平均値(第1領域)MREFHG1Bを暫定アルコール濃度補正係数METaとしてセットする。
【0072】
次いでS420に進み、基準領域履歴フラグF_MREFHGSTDのビットが1か否か判断、即ち、エンジン10の運転が基準領域にあるときのフィードバック補正係数MHGに基づいて平均値(基準領域)MREFHGSTDBが算出された履歴があるか否か判断する。
【0073】
S420で肯定されるときはS422に進み、エンジン10の個体差を補正するための機差学習値(第1領域)MREFHG1を算出してセットする。具体的には、S416で算出された平均値(第1領域)MREFHG1BとS406で算出された平均値(基準領域)MREFHGSTDBとの比率(詳しくは、平均値(第1領域)MREFHG1Bを平均値(基準領域)MREFHGSTDBで除算して得た値)を機差学習値(第1領域)MREFHG1としてセットする。
【0074】
次いでS424に進み、算出された機差学習値(第1領域)MREFHG1を機差補正係数MREFHGとしてセット(記憶)する。このように、エンジン10の運転が基準領域にあるときに算出されたフィードバック補正係数MHGの平均値(基準領域)MREFHGSTDBと前記基準領域以外の領域(ここでは第1領域)にあるときに算出されたフィードバック補正係数MHGの平均値(第1領域)MREFHG1Bとの比率を算出してエンジン10の個体差を補正するための機差補正係数MREFHGとして記憶しておく。
【0075】
一方、S420で否定されるとき、即ち、エンジン10の運転が基準領域にあるときのフィードバック補正係数MHGの平均値(基準領域)MREFHGSTDBが算出された履歴がないときはS426に進み、第2領域履歴フラグF_MREFHG2のビットが1か否か判断する。尚、フラグF_MREFHG2のビットは、後に説明する如く、エンジン10の運転が第2領域にあるときのフィードバック補正係数MHGに基づいて平均値(第2領域)MREFHG2Bが算出された履歴があるとき1に、履歴がないとき0にリセットされる。
【0076】
S426で肯定されるとき、即ち、直前に第1領域以外の領域(ここでは第2領域)においてフィードバック補正係数MHGから平均値(第2領域)MREFHG2Bが算出されているときはS428に進み、第2領域を基準にして機差学習値(第1領域)MREFHG1を算出する。機差学習値(第1領域)MREFHG1は、下記の式(3)に示す如く、第2領域で算出された機差学習値(第2領域)MREFHG2に、第1領域と第2領域のフィードバック補正係数の比率(正確には、第1領域のフィードバック補正係数(の平均値)を第2領域のフィードバック補正係数(の平均値)で除算した値)を乗算することで算出される。
機差学習値(第1領域)MREFHG1=機差学習値(第2領域)MREFHG2×フィードバック補正係数平均値(第1領域)MREFHG1B/フィードバック補正係数平均値(第2領域)MREFHG2B ・・・式(3)
【0077】
ここで、S422とS428で算出される機差学習値(第1領域)MREFHG1について詳しく説明する。先ず基準領域、第1、第2領域の3つの運転領域の関係、具体的には、算出されるフィードバック補正係数の領域間の相対的な比率を機差と考え、機差のない基準領域で算出されるフィードバック補正係数はアルコール濃度補正係数そのものであるため、機差学習値(機差補正係数MREFHG)を1.0倍と定義する(S410)。
【0078】
基準領域の機差学習値を1.0倍とすることで、第1、第2領域の機差学習値(MREFHG1,MREFHG2)を数値として算出する。例えば機差学習値について基準領域が1.0倍、第1領域が1.1倍、第2領域が1.2倍と過去に算出されている場合、第1、第2領域の機差学習値の比率としては、機差学習値(第1領域)MREFHG1は機差学習値(第2領域)MREFHG2の約0.917倍となり、機差学習値(第2領域)MREFHG2は機差学習値(第1領域)MREFHG1の約1.09倍となる。
【0079】
基準領域と第1領域で考えた場合、S422で述べた如く、各々の領域で算出されたフィードバック補正係数の比率を機差学習値(第1領域)MREFHG1として算出する。よって基準領域と第1領域において、各々のフィードバック補正係数の比率と各々の機差学習値の比率は等価と言える。
【0080】
第1領域と第2領域で考えた場合においても同様に、各々のフィードバック補正係数の比率と各々の機差学習値の比率は等価と言えるため、よって例えば第2領域でフィードバック補正係数を算出した後に第1領域でフィードバック補正係数を算出する場合、S428で述べた如く、第2領域での機差学習値MREFHG2に対して、第1領域と第2領域のフィードバック補正係数の比率を乗算すれば、第1領域の機差学習値MREFHG1を算出することができる。尚、機差学習値MREFHG1の算出に用いられる機差学習値MREFHG2は、第2領域と基準領域の機差学習値の比率であり、基準領域からの機差に基づいて算出される。
【0081】
また、式(3)にあっては、以下のように変形することができる。
機差学習値(第1領域)MREFHG1=フィードバック補正係数平均値(第1領域)MREFHG1B×機差学習値(第2領域)MREFHG2/フィードバック補正係数平均値(第2領域)MREFHG2B ・・・式(3−1)
【0082】
後述するように、第2領域においてMREFHG2は機差補正係数MREFHGであり、またMREFHG2Bは暫定アルコール濃度補正係数METaであるため、式(3−1)の「MREFHG2/MREFHG2B」は、第2領域で算出されたアルコール濃度補正係数METの逆数となる。
【0083】
従って、式(3−1)は、
機差学習値(第1領域)MREFHG1=フィードバック補正係数平均値(第1領域)MREFHG1B/(第2領域で算出された)アルコール濃度補正係数MET
・・・式(3−2)
となる。式(3−2)とS422に示す式とを対比すると分かるように、S422の式中にあるフィードバック補正係数(正確には、平均値(基準領域)MREFHGSTDB)を第2領域で算出されたアルコール濃度補正係数METに置き換えることで、式(3−2)が得られる。
【0084】
即ち、S428にあっては、エンジン10の運転が基準領域にあるときのフィードバック補正係数が算出されないとき、エンジン10の運転が複数個の基準領域以外の領域のいずれかにあるとき(ここでは第2領域)に算出されたアルコール濃度補正係数METを基準領域にあるときに算出されたフィードバック補正係数と置換するようにした。
【0085】
その後前記したS424に進み、算出された機差学習値(第1領域)MREFHG1を機差補正係数MREFHGとしてセット(記憶)する。尚、S426で否定されるときはS428の処理をスキップしてS424に進む。この場合、機差学習値(第1領域)MREFHG1はS102でセットされた記憶値のままとなるため、機差補正係数MREFHGにもその値をセットする。
【0086】
S412で否定されるときはS430に進み、エンジン10の運転が第2領域にあるか否か判断する。S430で否定されるとき、即ち、エンジン10の運転が基準領域、第1および第2領域(換言すれば、フィードバック制御領域)にないときは以降の処理をスキップする一方、肯定されるときはS432に進む。
【0087】
このS432からS446までの処理は、前述したS414からS428までと同様な機差補正係数MREFHGを算出するための処理である。
【0088】
即ち、S432において第2領域履歴フラグF_MREFHG2のビットを1にセットする。従って、フラグF_MREFHG2のビットが1にセットされることは、前記したように、平均値(第2領域)MREFHG2Bが算出された履歴があることを、0にリセットされることはその履歴がないことを意味する。
【0089】
次いでS434に進み、その平均値(第2領域)MREFHG2Bを算出してセットする。具体的には、S416と同様、フィードバック補正係数MHGにフィルタリング係数CHGREFを乗算した値と、平均値(第2領域)MREFHG2Bの前回値に1からフィルタリング係数CHGREFを減算した値を乗算した値とを加算することによって得た値を平均値(第2領域)MREFHG2Bの今回値としてセットする。
【0090】
次いでS436に進み、算出された平均値(第2領域)MREFHG2Bを暫定アルコール濃度補正係数METaとしてセットする。次いでS438に進み、基準領域履歴フラグF_MREFHGSTDのビットが1か否か判断する。
【0091】
S438で肯定されるときはS440に進み、S434で算出された平均値(第2領域)MREFHG2BとS406で算出された平均値(基準領域)MREFHGSTDBとの比率(詳しくは、平均値(第2領域)MREFHG2Bを平均値(基準領域)MREFHGSTDBで除算して得た値)を機差学習値(第2領域)MREFHG2としてセットする。
【0092】
次いでS442に進み、算出された機差学習値(第2領域)MREFHG2を機差補正係数MREFHGとしてセット(記憶)する。このように、エンジン10の運転が基準領域にあるときに算出されたフィードバック補正係数MHGの平均値(基準領域)MREFHGSTDBと前記基準領域以外の領域(ここでは第2領域)にあるときに算出されたフィードバック補正係数MHGの平均値(第2領域)MREFHG2Bとの比率を算出して機差補正係数MREFHGとして記憶しておく。
【0093】
一方、S438で否定されるときはS444に進み、第1領域履歴フラグF_MREFHG1のビットが1か否か判断し、肯定されるときはS446に進んで第1領域を基準にして機差学習値(第2領域)MREFHG2を算出する。機差学習値(第2領域)MREFHG2は、下記の式(4)に示す如く、第1領域で算出された機差学習値(第1領域)MREFHG1に、第1領域と第2領域のフィードバック補正係数の比率(正確には、第2領域のフィードバック補正係数(の平均値)を第1領域のフィードバック補正係数(の平均値)で除算した値)を乗算することで算出される。
機差学習値(第2領域)MREFHG2=機差学習値(第1領域)MREFHG1×フィードバック補正係数平均値(第2領域)MREFHG2B/フィードバック補正係数平均値(第1領域)MREFHG2B ・・・式(4)
【0094】
式(4)は、S428の式(3)と同様、変形すると、
機差学習値(第2領域)MREFHG2=フィードバック補正係数平均値(第2領域)MREFHG2B/(第1領域で算出された)アルコール濃度補正係数MET
・・・式(4−1)
となる。即ち、S446にあっても、エンジン10の運転が基準領域にあるときのフィードバック補正係数が算出されないとき、エンジン10の運転が複数個の基準領域以外の領域のいずれかにあるとき(ここでは第1領域)に算出されたアルコール濃度補正係数METを基準領域にあるときに算出されたフィードバック補正係数と置換するようにした。
【0095】
そして前述したS442に進み、算出された機差学習値(第2領域)MREFHG2を機差補正係数MREFHGとしてセット(記憶)する。尚、S444で否定されるときはS446の処理をスキップしてS442に進む。この場合、機差学習値(第2領域)MREFHG2はS102でセットされた記憶値のままとなるため、機差補正係数MREFHGにもその値をセットする。
【0096】
図3フロー・チャートにおいては次いでS18に進み、アルコール濃度補正係数METを算出(修正)する処理を行う。
【0097】
図9は、そのアルコール濃度補正係数算出(修正)処理を示すサブ・ルーチン・フロー・チャートである。図9に示すように、S500にあっては、図8フロー・チャートで求められた暫定アルコール濃度補正係数METaと機差補正係数MREFHGに基づいてアルコール濃度補正係数METを算出する。具体的には、暫定アルコール濃度補正係数METaを機差補正係数MREFHGで除算することで得た値をアルコール濃度補正係数METとしてセット(記憶)する。
【0098】
このように、S500では、暫定アルコール濃度補正係数METaを、記憶される機差補正係数MREFHGで修正、即ち、機差を内包しないように機差補正係数MREFHGで修正し、それを修正されたアルコール濃度補正係数METとするようにした。
【0099】
これにより、エンジン10がフィードバック制御を実行できない運転領域にあるときは、上記した式(2)に従って燃料噴射量Toutを、修正された(別言すれば、機差を包含しない)アルコール濃度補正係数METで補正でき、よって燃料補正の制御精度を向上させることができる。
【0100】
図10は、図3フロー・チャートと平行してECU30によって所定時間、例えば3secごとに実行される内燃機関の制御装置の動作を示すフロー・チャートである。
【0101】
図10に示す如く、S600において、図8と図9フロー・チャートで算出された機差学習値(第1領域)MREFHG1、機差学習値(第2領域)MREFHG2およびアルコール濃度補正係数METの値をEEPROM30iに記憶させる。
【0102】
これにより、次のECU30の起動時(即ち、次回のエンジン始動時)においては、その前のエンジン運転時に記憶(学習)されたアルコール濃度補正係数METなどをEEPROM30iから読み出すことが可能となるため、エンジン始動直後からこれらの値に基づき、燃料噴射量Toutをアルコール濃度に応じた最適な値に補正することができる。
【0103】
以上の如く、この発明の実施例にあっては、内燃機関(エンジン)10の排気中の空燃比を検出し、前記検出された空燃比に基づいて燃料噴射量Toutのフィードバック補正係数MHGを算出し、前記算出されたフィードバック補正係数MHGで前記燃料噴射量Toutを補正するフィードバック制御を実行するフィードバック制御手段(Oセンサ60、ECU30。S12,S200〜S208,S216,S218)を備えた内燃機関の制御装置において、前記内燃機関10の運転領域を機関回転数(エンジン回転数NE)と負荷(スロットル開度TH)で複数個(3個)の領域(高回転領域A、中回転領域Bおよび低回転領域C)に区分すると共に、その1つの領域を基準領域として設定する領域設定手段と(ECU30。S14,S300〜S314)、前記内燃機関10の運転が前記基準領域にあるときに算出された前記フィードバック補正係数(フィードバック補正係数MHGのフィードバック補正係数平均値(基準領域)MREFHGSTDB)と前記基準領域以外の領域にあるときに算出された前記フィードバック補正係数(フィードバック補正係数MHGのフィードバック補正係数平均値(第1または第2領域)MREFHG1B,MREFHG2B)との比率を算出して前記内燃機関10の個体差を補正するための機差補正係数MREFHGとして記憶しておく機差補正係数記憶手段と(ECU30。S16,S400〜S424,S430〜S442)、前記算出されたフィードバック補正係数(MREFHGSTDB,MREFHG1B,MREFHG2B)に基づいて燃料に含まれるアルコール濃度に応じたアルコール濃度補正係数(暫定アルコール濃度補正係数METa)を算出すると共に、前記記憶される機差補正係数MREFHGで修正して記憶しておくアルコール濃度補正係数記憶手段(ECU30。S16〜S18,S406,S408,S416,S418,S434,S436,S500,S600)とを備えると共に、前記内燃機関10が前記フィードバック制御を実行できない運転領域にあるとき、前記燃料噴射量Toutを前記修正されたアルコール濃度補正係数(アルコール濃度補正係数MET)で補正するように構成した。
【0104】
これにより、エンジン10がフィードバック制御を実行できない運転領域にある場合であっても、燃料噴射量Toutを機差を内包しないように修正されたアルコール濃度補正係数METで補正できる、即ち、燃料噴射量Toutをアルコール濃度に応じた最適な値に補正でき、よって燃料補正の制御精度を向上させることができる。
【0105】
また、燃料に含まれるアルコール濃度を検出するセンサなどを新たに設置することなく、燃料噴射量Toutをアルコール濃度に応じて補正するように構成したので、コストアップや装置が複雑化するのを防止することができる。
【0106】
また、前記領域設定手段は前記基準領域以外の領域(第1領域、第2領域)を複数個設定すると共に(S14,S306〜S314)、前記機差補正係数記憶手段は、前記内燃機関10の運転が前記基準領域にあるときの前記フィードバック補正係数(平均値(基準領域)MREFHGSTDB)が算出されないとき、前記内燃機関10の運転が前記複数個の基準領域以外の領域(第1領域、第2領域)のいずれかにあるときに算出された前記アルコール濃度補正係数METを前記基準領域にあるときに算出された前記フィードバック補正係数(平均値(基準領域)MREFHGSTDB)と置換するように構成(S16,S420,S426,S428,S438,S444,S446)、即ち、エンジン10の運転が基準領域になく、そのときのフィードバック補正係数(平均値(基準領域)MREFHGSTDB)が算出されない場合であっても、基準領域以外の領域にあるときに算出されたアルコール濃度補正係数METを基準領域にあるときに算出されたフィードバック補正係数(平均値(基準領域)MREFHGSTDB)と置換することで前記比率を算出し、それを機差補正係数MREFHGとして記憶しておくように構成した。
【0107】
これにより、記憶された機差補正係数MREFHGでアルコール濃度補正係数(暫定アルコール濃度補正係数METa)を修正し、燃料噴射量Toutを修正されたアルコール濃度補正係数(アルコール濃度補正係数MET)で補正でき、よって燃料噴射量Toutをアルコール濃度に応じた最適な値に確実に補正することができる。
【0108】
尚、車両の例として自動二輪車を挙げたが、それに限られるものではなく、例えばスクータやATV(All Terrain Vehicle)など、運転者がシート(サドル)に跨って乗る型の、いわゆる鞍乗り型車両であれば良く、さらには他の車両(例えば四輪自動車)であっても良い。
【符号の説明】
【0109】
10 エンジン(内燃機関)、20 インジェクタ、30 ECU(電子制御ユニット)、60 Oセンサ

【特許請求の範囲】
【請求項1】
内燃機関の排気中の空燃比を検出し、前記検出された空燃比に基づいて燃料噴射量のフィードバック補正係数を算出し、前記算出されたフィードバック補正係数で前記燃料噴射量を補正するフィードバック制御を実行するフィードバック制御手段を備えた内燃機関の制御装置において、前記内燃機関の運転領域を機関回転数と負荷で複数個の領域に区分すると共に、その1つの領域を基準領域として設定する領域設定手段と、前記内燃機関の運転が前記基準領域にあるときに算出された前記フィードバック補正係数と前記基準領域以外の領域にあるときに算出された前記フィードバック補正係数との比率を算出して前記内燃機関の個体差を補正するための機差補正係数として記憶しておく機差補正係数記憶手段と、前記算出されたフィードバック補正係数に基づいて燃料に含まれるアルコール濃度に応じたアルコール濃度補正係数を算出すると共に、前記記憶される機差補正係数で修正して記憶しておくアルコール濃度補正係数記憶手段とを備えると共に、前記内燃機関が前記フィードバック制御を実行できない運転領域にあるとき、前記燃料噴射量を前記修正されたアルコール濃度補正係数で補正することを特徴とする内燃機関の制御装置。
【請求項2】
前記領域設定手段は前記基準領域以外の領域を複数個設定すると共に、前記機差補正係数記憶手段は、前記内燃機関の運転が前記基準領域にあるときの前記フィードバック補正係数が算出されないとき、前記内燃機関の運転が前記複数個の基準領域以外の領域のいずれかにあるときに算出された前記アルコール濃度補正係数を前記基準領域にあるときに算出された前記フィードバック補正係数と置換することを特徴とする請求項1記載の内燃機関の制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−265768(P2010−265768A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−115724(P2009−115724)
【出願日】平成21年5月12日(2009.5.12)
【出願人】(000141901)株式会社ケーヒン (1,140)
【Fターム(参考)】