(57)【要約】【課題】燃料噴射弁制御装置において、燃料噴射弁のコイルに流す電流の制御精度を確保しつつ、放電スイッチと定電流スイッチの制御をマイコンでも実施可能にする。【解決手段】燃料噴射弁３のコイル５にコンデンサ１９から放電させる放電スイッチ２１と、バッテリ電圧ＶＢからコイル５に一定の電流を流すための定電流スイッチ１１とを、マイコン２５が制御する。マイコン２５は、コンデンサ１９の充電電圧ＶＣの検出値と、バッテリ電圧ＶＢの検出値と、過去のコイル電流から算出した学習値とを用いて、コイル５への放電電流を目標最大値にするための放電スイッチ２１のオン時間と、上記一定の電流を目標電流にするための、定電流スイッチ１１のスイッチング周期あたりのオン時間とを決定する。更に、マイコン２５は、エンジンの停止期間中に、放電スイッチ２１及び定電流スイッチ１１を制御してコイル５に電流を流し、その電流に基づいて上記学習値を更新する。【選択図】図１
2014218981.tif 000002
【特許請求の範囲】
【請求項１】
コンデンサ（１９）の充電電圧がバッテリ電圧よりも高い所定電圧となるように、前記コンデンサを充電する充電手段（１７）と、
内燃機関に燃料を噴射する燃料噴射弁（３）のコイル（５）の上流側に前記コンデンサを接続させて、前記コンデンサから前記コイルに放電させる放電スイッチ（２１）と、
前記バッテリ電圧が供給される電源ライン（８）と前記コイルの上流側との間に、直列に設けられ、前記コイルに一定の電流を流すために所定のスイッチング周期でオン／オフされる定電流スイッチ（１１）と、
前記コイルへの通電期間の開始時から目標放電時間だけ前記放電スイッチをオンさせて、前記コイルに前記コンデンサからの放電電流を流す放電制御と、前記通電期間のうち、前記放電スイッチをオフさせた後の期間において、前記定電流スイッチを「目標オン時間／前記スイッチング周期」のデューティ比でオン／オフさせて、前記コイルに一定の電流を流す定電流制御とを行うことにより、前記燃料噴射弁を駆動して該燃料噴射弁に燃料を噴射させる駆動制御手段（２５，Ｓ２０〜Ｓ７０）と、
前記コンデンサの充電電圧の検出値と、前記コイルに前記放電電流を流す電流回路の電気的特性が反映された放電用学習値とを用いて、前記放電制御による前記放電電流の最大値を目標最大値にするための前記目標放電時間を算出し、その算出した目標放電時間を前記駆動制御手段に使用させる放電時間算出手段（２５，Ｓ１１０〜Ｓ１３０）と、
前記バッテリ電圧の検出値と、前記コイルに前記一定の電流を流す電流回路の電気的特性が反映された定電流用学習値とを用いて、前記定電流制御による前記一定の電流を目標電流にするための前記目標オン時間を算出し、その算出した目標オン時間を前記駆動制御手段に使用させるオン時間算出手段（２５，Ｓ３１０，Ｓ３２０）と、
前記放電制御により前記コイルに流れた電流に基づいて、前記放電時間算出手段が用いる前記放電用学習値を算出すると共に、前記定電流制御により前記コイルに流れた電流に基づいて、前記オン時間算出手段が用いる前記定電流用学習値を算出する学習値算出手段（２５，Ｓ２２０，Ｓ２４０，Ｓ２６０，Ｓ２８０，Ｓ４２０，Ｓ４４０）と、に加え、
前記内燃機関が停止している期間において、前記放電スイッチを所定時間オンさせた後、前記定電流スイッチを所定のデューティ比でオン／オフさせることにより、前記コイルに電流を流す機関停止時駆動手段（２５，Ｓ６３０）と、
前記機関停止時駆動手段が前記放電スイッチをオンさせたことで前記コイルに流れた電流に基づいて、前記放電用学習値を更新すると共に、前記機関停止時駆動手段が前記定電流スイッチをオン／オフさせたことで前記コイルに流れた電流に基づいて、前記定電流用学習値を更新する機関停止時学習手段（２５，Ｓ７１０〜Ｓ７６０）と、
を備えることを特徴とする燃料噴射弁制御装置（１）。
【請求項２】
請求項１に記載の燃料噴射弁制御装置において、
前記機関停止時駆動手段が前記コイルに流す電流は、前記燃料噴射弁が開弁するのに必要な電流よりも小さいこと、
を特徴とする燃料噴射弁制御装置。
【請求項３】
請求項１又は請求項２に記載の燃料噴射弁制御装置において、
前記機関停止時駆動手段及び前記機関停止時学習手段は、前記内燃機関が停止している期間において当該燃料噴射弁制御装置が起動した場合に、動作すること、
を特徴とする燃料噴射弁制御装置。
【請求項４】
請求項３に記載の燃料噴射弁制御装置において、
前記内燃機関が運転状態から停止した後、当該燃料噴射弁制御装置の内部温度を検出して記憶部（６６）に記憶し、その後、当該燃料噴射弁制御装置への電源供給を遮断する電源制御手段（２５，Ｓ５１０，Ｓ５２０）と、
前記内燃機関が停止している期間において当該燃料噴射弁制御装置が起動した際に、当該燃料噴射弁制御装置の内部温度を検出すると共に、その検出値と、前記電源制御手段により前記記憶部に記憶された内部温度との差の絶対値が、所定値以上であるか否かを判定し、前記差の絶対値が前記所定値以上でなければ、前記機関停止時駆動手段及び前記機関停止時学習手段が動作するのを禁止する禁止手段（２５，Ｓ６１０，Ｓ６２０）と、
を備えることを特徴とする燃料噴射弁制御装置。
【請求項５】
請求項３又は請求項４に記載の燃料噴射弁制御装置において、
当該燃料噴射弁制御装置は、前記内燃機関が搭載された車両の使用者が、前記車両をイグニッションオンの状態にするための操作を行うと、電源が供給されて起動するようになっており、
前記機関停止時駆動手段及び前記機関停止時学習手段は、前記使用者が前記操作を行ったことにより当該燃料噴射制御装置が起動してから、前記内燃機関が始動のためにクランキングされるまでの間に、動作すること、
を特徴とする燃料噴射弁制御装置。
【請求項６】
請求項３ないし請求項５の何れか１項に記載の燃料噴射弁制御装置において、
前記内燃機関が搭載された車両がイグニッションオフの状態になっていて前記内燃機関が停止している期間中に、当該燃料噴射弁制御装置を起動させる自動起動手段（４７）を備え、
前記機関停止時駆動手段及び前記機関停止時学習手段は、当該燃料噴射弁制御装置が前記自動起動手段によって起動した場合に、動作すること、
を特徴とする燃料噴射弁制御装置。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の燃料噴射弁制御装置において、
前記駆動制御手段、前記放電時間算出手段、前記オン時間算出手段、前記学習値算出手段、前記機関停止時駆動手段及び前記機関停止時学習手段は、マイコン（２５）によって実現される手段であること、
を特徴とする燃料噴射弁制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料噴射弁制御装置に関する。
【背景技術】
【０００２】
車両の内燃機関に燃料を噴射する燃料噴射弁（インジェクタ）としては、コイルへの通電により開弁する電磁式のものがある。そして、このような燃料噴射弁を駆動する燃料噴射弁制御装置は、コイルへの通電（通電開始タイミング及び通電時間）を制御することにより、燃料噴射時期及び燃料噴射量を制御している。
【０００３】
また、燃料噴射弁制御装置では、バッテリ電圧を昇圧してコンデンサを充電すると共に、コイルへの通電期間の開始時には、コンデンサからコイルに放電させるための放電スイッチ（放電用トランジスタ）をオンさせる。そして、コイルに流れる電流（以下、コイル電流ともいう）が放電電流の目標最大値に達したことを検知すると、放電スイッチをオフし、その後、通電期間が終了するまでは、コイルの上流側とバッテリ電圧との間に設けられた定電流スイッチ（定電流用トランジスタ）をオン／オフさせて、コイルに一定の電流を流す。その定電流スイッチのオン／オフ制御では、コイル電流が下側閾値以下になったことを検知すると定電流スイッチをオフからオンに切り換え、コイル電流が上側閾値（＞下側閾値）以上になったことを検知すると定電流スイッチをオンからオフに切り換える。このため、コイル電流は、上側閾値と下側閾値との間の平均電流に制御される（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２２１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の燃料噴射制弁御装置では、コイル電流が目標の値になったことを検知したタイミングで、放電スイッチ又は定電流スイッチのオン／オフ状態を切り換えるようになっている。このため、放電スイッチと定電流スイッチを制御するためには、高速の応答動作が必要となる。よって、コイルへの通電期間を決定する処理等を行うマイコンとは別に、放電スイッチと定電流スイッチを制御するための専用回路を設ける必要があり、部品点数の増加を招く要因となっていた。
【０００６】
そこで、本発明は、燃料噴射弁制御装置において、燃料噴射弁のコイルに流す電流の制御精度を確保しつつ、放電スイッチと定電流スイッチの制御をマイコンでも実施可能にすること、を目的としている。
【課題を解決するための手段】
【０００７】
第１発明の燃料噴射弁制御装置は、コンデンサの充電電圧がバッテリ電圧よりも高い所定電圧となるように、前記コンデンサを充電する充電手段と、内燃機関に燃料を噴射する燃料噴射弁のコイルの上流側に前記コンデンサを接続させて、前記コンデンサから前記コイルに放電させる放電スイッチと、前記バッテリ電圧が供給される電源ラインと前記コイルの上流側との間に、直列に設けられ、前記コイルに一定の電流を流すために所定のスイッチング周期でオン／オフされる定電流スイッチと、を備える。
【０００８】
そして、この燃料噴射弁制御装置は、放電スイッチ及び定電流スイッチを制御する手段として、駆動制御手段、放電時間算出手段、オン時間算出手段及び学習値算出手段を備えると共に、機関停止時駆動手段及び機関停止時学習手段も備える。
【０００９】
駆動制御手段は、前記コイルへの通電期間の開始時から目標放電時間だけ前記放電スイッチをオンさせて、前記コイルに前記コンデンサからの放電電流を流す放電制御と、前記通電期間のうち、前記放電スイッチをオフさせた後の期間において、前記定電流スイッチを「目標オン時間／前記スイッチング周期」のデューティ比でオン／オフさせて、前記コイルに一定の電流を流す定電流制御とを行うことにより、前記燃料噴射弁を駆動して該燃料噴射弁に燃料を噴射させる。尚、定電流スイッチを、「目標オン時間／スイッチング周期」のデューティ比でオン／オフさせるということは、スイッチング周期あたりに目標オン時間だけオンさせるということである。
【００１０】
放電時間算出手段は、前記コンデンサの充電電圧の検出値と、前記コイルに前記放電電流を流す電流回路（以下、放電電流回路という）の電気的特性が反映された放電用学習値とを用いて、前記放電制御による前記放電電流の最大値を目標最大値にするための前記目標放電時間を算出し、その算出した目標放電時間を前記駆動制御手段に使用させる。
【００１１】
オン時間算出手段は、前記バッテリ電圧の検出値と、前記コイルに前記一定の電流を流す電流回路（以下、定電流回路という）の電気的特性が反映された定電流用学習値とを用いて、前記定電流制御による前記一定の電流を目標電流にするための前記目標オン時間を算出し、その算出した目標オン時間を前記駆動制御手段に使用させる。
【００１２】
尚、放電電流回路及び定電流回路は、コイルを含む回路である。
学習値算出手段は、前記放電制御により前記コイルに流れた電流に基づいて、前記放電時間算出手段が用いる前記放電用学習値を算出すると共に、前記定電流制御により前記コイルに流れた電流に基づいて、前記オン時間算出手段が用いる前記定電流用学習値を算出する。
【００１３】
つまり、学習値算出手段は、燃料噴射弁の駆動時における放電電流から、放電電流回路の電気的特性が反映された学習値であって、放電電流の最大値が目標最大値となる目標放電時間を算出するための放電用学習値を算出する。そして、放電時間算出手段は、その放電用学習値と充電電圧の検出値とを用いて、目標放電時間を算出し、駆動制御手段は、その算出された目標放電時間だけ放電スイッチをオンさせることにより、コンデンサからコイルへ、最大値が目標最大値となる放電電流を流す。
【００１４】
同様に、学習値算出手段は、燃料噴射弁の駆動時にコイルに流れた一定の電流から、定電流回路の電気的特性が反映された学習値であって、一定の電流が目標電流となる目標オン時間を算出するための定電流用学習値を算出する。そして、オン時間算出手段は、その定電流用学習値とバッテリ電圧の検出値とを用いて、目標オン時間を算出し、駆動制御手段は、その算出された目標オン時間とスイッチング周期とから決まるデューティ比で定電流スイッチをオン／オフさせることにより、コイルに目標電流を流す。
【００１５】
更に、この燃料噴射弁制御装置において、機関停止時駆動手段は、内燃機関が停止している期間において、前記放電スイッチを所定時間オンさせた後、前記定電流スイッチを所定のデューティ比でオン／オフさせることにより、前記コイルに電流を流す。そして、機関停止時学習手段は、前記機関停止時駆動手段が前記放電スイッチをオンさせたことで前記コイルに流れた電流に基づいて、前記放電用学習値を更新すると共に、前記機関停止時駆動手段が前記定電流スイッチをオン／オフさせたことで前記コイルに流れた電流に基づいて、前記定電流用学習値を更新する。このため、内燃機関が停止している期間であって、駆動制御手段が燃料噴射弁を駆動しない期間であっても、放電用学習値及び定電流用学習値が更新される。
【００１６】
第１発明の燃料噴射弁制御装置では、燃料噴射弁のコイルに流れた電流に基づいて、その後の目標放電時間と目標オン時間を決めるための放電用学習値及び定電流用学習値（以下、これらを総称する場合は、単に「学習値」という）を算出している。そして、その学習値を用いて、放電電流の最大値が目標最大値になるであろう目標放電時間と、一定のコイル電流が目標電流になるであろう目標オン時間とを算出し、その算出した目標放電時間と目標オン時間を用いて、放電スイッチと定電流スイッチのオン／オフを制御している。
【００１７】
このため、コイル電流が目標の値になったことを検知したなら放電スイッチ又は定電流スイッチのオン／オフ状態を切り換える、といった高速な応答動作は、不要となる。よって、放電スイッチ及び定電流スイッチを制御するための手段（具体的には、少なくとも、駆動制御手段、放電時間算出手段、オン時間算出手段、学習値算出手段、機関停止時駆動手段及び機関停止時学習手段）は、コイルへの通電期間を決定する処理等を行うマイコンによって実現することができるようになる。延いては、放電スイッチ及び定電流スイッチのオン／オフを制御するための専用回路を設ける必要がなくなり、部品点数を削減することができる。
【００１８】
また、この燃料噴射弁制御装置では、目標放電時間を、充電電圧の検出値と放電用学習値とを用いて決定し、目標オン時間を、バッテリ電圧の検出値と定電流用学習値とを用いて決定している。このため、充電電圧が変化したり、放電電流回路の電気的特性が温度や時間経過で変化したりしても、目標最大値となる放電電流をコイルに流すことができ、同様に、バッテリ電圧が変化したり、定電流回路の電気的特性が温度や時間経過で変化したりしても、コイルに一定の目標電流を流すことができる。よって、コイルに流す電流の制御精度（延いては、燃料噴射弁の制御精度）も確保することができる。
【００１９】
その上、内燃機関が停止している期間においても、機関停止時駆動手段及び機関停止時学習手段により、学習値が更新される。このため、内燃機関が停止している期間に学習値が更新されない構成の場合と比較すると、内燃機関の始動時において、より新しい学習値を用いて目標放電時間及び目標オン時間が算出されることとなり、制御精度を一層向上させることができる。
【００２０】
例えば、内燃機関の停止時間が長くなって、内燃機関の始動時における放電電流回路及び定電流回路の周囲温度と、内燃機関が停止する前における放電電流回路及び定電流回路の周囲温度との差が大きくなったとする。その場合、内燃機関が停止する前に算出された学習値は、内燃機関の始動時においては、放電電流回路及び定電流回路の周囲温度に応じた電気的特性を反映したものではなくなるため、妥当な学習値とは言えなくなる。しかし、この燃料噴射弁制御装置によれば、内燃機関が停止している期間に学習値が更新されるため、内燃機関が長時間停止した後での始動時においても、コイル電流の制御精度を確保することができる。
【図面の簡単な説明】
【００２１】
【図１】実施形態の燃料噴射制御装置を示す構成図である。
【図２】噴射駆動処理を説明する説明図である。
【図３】噴射駆動処理を表すフローチャートである。
【図４】放電時間算出処理を表すフローチャートである。
【図５】第１学習処理を表すフローチャートである。
【図６】定数ｃ，ｄ算出用情報のうち、放電電流の増加傾きを検出する手順を説明する説明図である。
【図７】第２学習処理を表すフローチャートである。
【図８】オフセット値ｂ算出用情報を検出する手順を説明する説明図である。
【図９】オン時間算出処理を表すフローチャートである。
【図１０】コイル電流の波形を表す図である。
【図１１】目標オン時間を算出する式の導出を説明するための説明図である。
【図１２】第３学習処理を表すフローチャートである。
【図１３】平均電流の検出手法を説明するための説明図である。
【図１４】動作終了用処理を表すフローチャートである。
【図１５】起動時処理を表すフローチャートである。
【図１６】エンジン停止時学習処理を表すフローチャートである。
【図１７】第１実施形態の作用を説明する説明図である。
【図１８】第２実施形態の作用を説明する説明図である。
【発明を実施するための形態】
【００２２】
以下に、本発明が適用された実施形態の燃料噴射弁制御装置について、図面を用い説明する。尚、本実施形態の燃料噴射弁制御装置は、車両に搭載された多気筒（この例では４気筒）エンジンの各気筒＃１〜＃４に燃料を噴射する４個の燃料噴射弁を駆動するものであり、その各燃料噴射弁のコイルへの通電開始タイミング及び通電時間を制御することにより、各気筒＃１〜＃４への燃料噴射タイミング及び燃料噴射量を制御する。また、エンジンは、ガソリンエンジン、ディーゼルエンジンの何れでもよい。また、本実施形態において、スイッチとして使用しているスイッチング素子は、例えばＭＯＳＦＥＴであるが、バイポーラトランジスタやＩＧＢＴ（絶縁ゲートバイポーラトランジスタ）等の他種類のスイッチング素子でも良い。
【００２３】
［第１実施形態］
図１に示すように、燃料噴射弁制御装置（以下単に、制御装置という）１は、燃料噴射弁３のコイル５の一端（上流側）が接続される端子ＣＭと、コイル５の他端（下流側）が接続される端子ＩＮＪと、端子ＩＮＪに一方の出力端子が接続されたスイッチング素子である気筒選択スイッチ７と、気筒選択スイッチ７の他方の出力端子とグランドラインとの間に接続された電流検出用の抵抗９と、を備える。
【００２４】
燃料噴射弁３では、コイル５に通電されると、図示しない弁体（いわゆるノズルニードル）が開弁位置に移動し（換言すれば、リフトし）、燃料噴射が行われる。また、コイル５の通電が遮断されると、弁体が元の閉弁位置に戻り、燃料噴射が停止される。
【００２５】
尚、図１では、４個の燃料噴射弁３のうち、第Ｎ気筒＃Ｎ（Ｎは１〜４の何れか）に対応する１つの燃料噴射弁３だけを示しており、以下では、その１つの燃料噴射弁３の駆動及びその１つの燃料噴射弁３による燃料噴射に関して説明する。実際には、端子ＣＭは、各気筒の燃料噴射弁３について共通の端子となっており、その端子ＣＭに、各燃料噴射弁３のコイル５がそれぞれ接続されている。また、端子ＩＮＪ及び気筒選択スイッチ７は、各燃料噴射弁３について（換言すれば、各気筒について）それぞれ備えられている。気筒選択スイッチ７は、駆動対象の燃料噴射弁３（換言すれば、噴射対象の気筒）を選択するためのスイッチング素子である。
【００２６】
更に、制御装置１は、バッテリ１０の電圧（バッテリ電圧）ＶＢが供給される電源ライン８に一方の出力端子が接続されたスイッチング素子である定電流スイッチ１１と、定電流スイッチ１１の他方の出力端子にアノードが接続され、カソードが上記端子ＣＭに接続された逆流防止用のダイオード１３と、アノードがグランドラインに接続され、カソードが端子ＣＭに接続された電流還流用のダイオード１５と、昇圧回路１７とを備える。
【００２７】
ダイオード１５は、気筒選択スイッチ７がオンされている状態で定電流スイッチ１１がオンからオフされた時に、コイル５に電流を還流させる。
昇圧回路１７は、コンデンサ１９を備えた周知のＤＣ／ＤＣコンバータである。コンデンサ１９には、燃料噴射弁３の弁体を開弁方向へ速やかに動かすため（即ち、燃料噴射弁３の開弁を速めるため）の電気エネルギが蓄積される。そして、昇圧回路１７は、電源ライン８のバッテリ電圧ＶＢを昇圧し、その昇圧した電圧でコンデンサ１９を充電することにより、コンデンサ１９の充電電圧ＶＣがバッテリ電圧ＶＢよりも高い所定の目標電圧となるようにする。
【００２８】
また、制御装置１は、コンデンサ１９の正極側端子を端子ＣＭに接続させてコンデンサ１９からコイル５に放電させるスイッチング素子である放電スイッチ２１と、アノードが端子ＩＮＪに接続され、カソードがコンデンサ１９の正極側端子に接続されたエネルギ回収用のダイオード２３と、気筒選択スイッチ７、定電流スイッチ１１及び放電スイッチ２１を制御することで、コイル５に流す電流を制御し、延いては燃料噴射弁３を制御するマイコン（マイクロコンピュータ）２５と、を備える。
【００２９】
更に、制御装置１は、マイコン２５からの駆動信号に応じて気筒選択スイッチ７をオン／オフさせる駆動回路２７と、マイコン２５からの駆動信号に応じて定電流スイッチ１１をオン／オフさせる駆動回路２９と、マイコン２５からの駆動信号に応じて放電スイッチ２１をオン／オフさせる駆動回路３１と、抵抗９の上流側に生じる電圧であって、コイル電流（コイル５に流れる電流）に応じた電圧の電流検出信号を、入力信号とするローパスフィルタとしての積分回路３３と、コンデンサ１９の充電電圧ＶＣをマイコン２５が入力可能な範囲（本実施形態では例えば０〜５Ｖの範囲）の電圧に分圧し、その分圧電圧（分圧後の電圧）をマイコン２５に入力させる分圧回路３５と、電源ライン８のバッテリ電圧ＶＢをマイコン２５が入力可能な範囲の電圧に分圧し、その分圧電圧をマイコン２５に入力させる分圧回路３７と、を備える。積分回路３３は、例えば抵抗３９とコンデンサ４０からなり、その積分回路３３の出力信号はマイコン２５に入力される。
【００３０】
一方、制御装置１における上記電源ライン８には、制御装置１の外部に設けられている給電用のリレー（以下、メインリレーという）４１を介して、バッテリ電圧ＶＢが供給される。そして、制御装置１は、メインリレー４１をオン／オフさせる駆動回路４３と、電源回路４４と、当該制御装置１を自動的に起動するためのタイマであるソークタイマ４５と、抵抗４６及びサーミスタ４７も備える。
【００３１】
駆動回路４３には、車両の使用者（運転者）によって車両のイグニッションスイッチ（以下、ＩＧＳＷと記載する）４８がオンされるとアクティブレベル（本実施形態ではハイ）になるイグニッションオン信号Ｓｉと、マイコン２５からの電源保持信号Ｓｈと、ソークタイマ４５からのタイマ起動信号Ｓｔとが、入力される。そして、駆動回路４３は、それら信号Ｓｉ，Ｓｈ，Ｓｔの何れかがハイレベルである場合に、メインリレー４１をオンさせる。
【００３２】
尚、イグニッションオン信号Ｓｉは、マイコン２５にも、図示しない入力回路を介して入力される。このため、マイコン２５は、ＩＧＳＷ４８のオン／オフ状態を、そのイグニッションオン信号Ｓｉに基づいて検出することができる。
【００３３】
ソークタイマ４５は、マイコン２５によってタイマ時間が設定される。そして、ソークタイマ４５は、マイコン２５から開始指令を受けると、設定されているタイマ時間の経時を開始し、そのタイマ時間が経過すると、駆動回路４３へのタイマ起動信号Ｓｔをアクティブレベルにする。
【００３４】
電源回路４４は、電源ライン８のバッテリ電圧ＶＢから、一定の主電源電圧Ｖｍ（本実施形態では例えば５Ｖ）を生成して出力する。また、電源回路４４には、バッテリ１０から、メインリレー４１を介さずに、電源ライン８とは別の電源ライン４９を介して、バッテリ電圧ＶＢが常時供給される。そして、電源回路４４は、その電源ライン４９のバッテリ電圧ＶＢから、一定の副電源電圧Ｖｓ（本実施形態では例えば５Ｖ）を生成して出力する。
【００３５】
電源回路４４からの主電源電圧Ｖｍは、マイコン２５が動作するための動作用電圧として用いられる。
また、主電源電圧Ｖｍは、抵抗４６の一端に供給される。抵抗４６の他端は、サーミスタ４７の一端に接続され、サーミスタ４７の他端はグランドラインに接続されている。サーミスタ４７の抵抗値は、制御装置１の内部温度に応じて変わるため、抵抗４６とサーミスタ４７との接続点に生じる電圧は、制御装置１の内部温度に応じた温度検出信号となる。そして、その温度検出信号は、マイコン２５に入力される。
【００３６】
マイコン２５は、プログラムを実行するＣＰＵ６１、プログラムや固定のデータ等が記憶されたＲＯＭ６３、ＣＰＵ６１による演算結果等が記憶されるＲＡＭ６５、電源バックアップされたＲＡＭであるバックアップＲＡＭ６６、Ａ／Ｄ変換器（ＡＤＣ）６７等を備える。
【００３７】
マイコン２５において、バックアップＲＡＭ６６には、電源回路４４からの副電源電圧Ｖｓが供給されることで、電源バックアップがなされる。また、マイコン２５において、積分回路３３から入力される電流検出信号や、分圧回路３５，３７から入力される分圧電圧や、抵抗４６及びサーミスタ４７の接続点から入力される温度検出信号は、Ａ／Ｄ変換器６７によりＡ／Ｄ変換される。
【００３８】
このような制御装置１では、車両の使用者によりＩＧＳＷ４８がオンされると、メインリレー４１がオンして、電源ライン８に、電源としてのバッテリ電圧ＶＢが供給される。電源ライン８にバッテリ電圧ＶＢが供給されることが、制御装置１に電源が供給されることに相当する。そして、電源ライン８にバッテリ電圧ＶＢが供給されると、電源回路４４から主電源電圧Ｖｍが出力されて、マイコン２５が起動する。マイコン２５は、制御装置１の動作を司るものであるため、マイコン２５が起動することは、制御装置１が起動することでもある。
【００３９】
マイコン２５は、起動すると、駆動回路４３への電源保持信号Ｓｈをアクティブレベルにする。このため、その後にＩＧＳＷ４８がオフされたとしても、メインリレー４１を介した制御装置１への電源供給は継続される。そして、マイコン２５は、ＩＧＳＷ４８がオフされたことを検知した後、実施しなければならない全ての処理を完了したなら、電源保持信号Ｓｈを非アクティブレベル（この例ではロー）にする。すると、メインリレー４１がオフして、マイコン２５は動作を停止することとなる。
【００４０】
尚、ＩＧＳＷ４８がオンすると、車両におけるイグニッション系の電源ライン（電源ライン８も含まれる）にバッテリ電圧ＶＢが供給された状態、即ち、車両がイグニッションオンの状態になる。このため、本実施形態において、ＩＧＳＷ４８がオンされることは、車両をイグニッションオンの状態にするための操作に相当する。また、メインリレー４１がオフしている期間中に、ソークタイマ４５から駆動回路４３へのタイマ起動信号Ｓｔがアクティブレベルになった場合にも、メインリレー４１がオンして、マイコン２５が起動する（制御装置１が起動する）こととなる。
【００４１】
次に、マイコン２５が、エンジンに対する燃料噴射を実施するために行う動作について説明する。尚、マイコン２５の動作は、ＣＰＵ６１がＲＯＭ６３内のプログラムを実行することで実現される。
【００４２】
マイコン２５には、エンジン回転数Ｎｅやアクセル開度ＡＣＣやエンジン水温ＴＨＷなどの、様々なエンジン状態を表す各センサ信号が入力される（図１参照）。
そして、マイコン２５は、ＩＧＳＷ４８がオンで、且つ、エンジンが回転していると判定している場合に、噴射情報算出処理と、燃料噴射弁３から燃料を噴射させるための噴射駆動処理とを行う。
【００４３】
マイコン２５は、噴射情報算出処理では、上記各センサ信号に基づき検出されるエンジン状態に基づいて、気筒毎に、燃料の噴射開始タイミング及び噴射量を算出し、その算出結果から、燃料噴射弁３のコイル５への通電期間を決定する。具体的には、噴射開始タイミングから、通電期間の開始タイミング（即ち、コイル５への通電開始タイミング）を決定し、噴射量から、通電期間の長さ（即ち、コイル５への通電時間）を決定する。
【００４４】
そして、マイコン２５は、噴射情報算出処理で決定した通電期間の開始タイミングが到来すると、噴射駆動処理を開始して、気筒選択スイッチ７、定電流スイッチ１１及び放電スイッチ２１を制御することにより、噴射情報算出処理で算出した燃料の噴射開始タイミング及び噴射量を実現する。
【００４５】
ここで、制御装置１では、マイコン２５が気筒選択スイッチ７、定電流スイッチ１１及び放電スイッチ２１を制御することと、その制御ためのマイコン２５による処理の内容とが、基本的な特徴になっている。
【００４６】
〔基本的な特徴の説明〕
図２に示すように、マイコン２５は、噴射駆動処理では、噴射情報算出処理で決定した通電期間の間、気筒選択スイッチ７をオンさせる。更に、マイコン２５は、通電期間の開始時から目標放電時間ｔｐだけ放電スイッチ２１オンさせる放電制御を行う。
【００４７】
放電スイッチ２１がオンすると、コンデンサ１９からコイル５に放電される。つまり、「コンデンサ１９の正極側端子→放電スイッチ２１→コイル５→気筒選択スイッチ７→抵抗９→グランドライン→コンデンサ１９の負極側端子」の経路からなる電流回路（以下、放電電流回路という）に電流が流れる。このようなコンデンサ１９の放電に際し、高電位となる端子ＣＭ側から電源ライン８側への回り込みは、ダイオード１３によって防止される。尚、以下の説明において、放電電流とは、コンデンサ１９からコイル５に放電される電流であり、コンデンサ１９からコイル５への放電によるコイル電流でもある。
【００４８】
また、目標放電時間ｔｐは、通電期間の開始時（換言すれば、コイル５への通電開始時）から、その目標放電時間ｔｐが経過したときに、コイル電流が放電電流の目標最大値Ｉｐとなるように、マイコン２５により設定されている。目標放電時間ｔｐの設定ついては、後で説明する。
【００４９】
図２に示すように、マイコン２５は、通電期間の開始時から目標放電時間ｔｐが経過すると、放電スイッチ２１をオフさせる。
そして、マイコン２５は、通電期間のうち、放電スイッチ２１をオフさせた後の残りの期間においては、定電流スイッチ１１を所定のスイッチング周期Ｔでオン／オフさせる定電流制御を行うことにより、コイル５に、上記目標最大値Ｉｐよりも小さい一定の電流を流す。
【００５０】
定電流スイッチ１１のオン時には、バッテリ電圧ＶＢ（電源ライン８）からコイル５に電流が流れる。つまり、「バッテリ１０の正極側端子→電源ライン８→定電流スイッチ１１→ダイオード１３→コイル５→気筒選択スイッチ７→抵抗９→グランドライン→バッテリ１０の負極側端子」の経路で電流が流れる。また、定電流スイッチ１１のオフ時には、コイル５に、グランドライン側からダイオード１５を介して電流が流れる（還流する）。このため、コイル電流は、定電流スイッチ１１のオン時において徐々に増加し、定電流スイッチ１１のオフ時において徐々に減少する（図１０も参照）。
【００５１】
また、定電流スイッチ１１は、マイコン２５により、スイッチング周期Ｔあたりに所定の目標オン時間ｔｇだけオンされる。つまり、定電流スイッチ１１は、スイッチング周期Ｔを１周期とし、「ｔｇ／Ｔ」のデューティ比でオン／オフされる。そして、その目標オン時間ｔｇは、定電流スイッチ１１のオン／オフによるコイル電流が目標電流（詳しくは、目標の平均電流）となるように、マイコン２５により設定されている。目標オン時間ｔｇの設定についても、後で説明する。
【００５２】
その後、マイコン２５は、通電期間が終了すると、定電流スイッチ１１をオフのままにすると共に、気筒選択スイッチ７もオフさせる。
すると、コイル５への通電が停止して燃料噴射弁３が閉弁し、燃料噴射が終了される。また、気筒選択スイッチ７及び定電流スイッチ１１がオフされると、コイル５にフライバックエネルギが発生するが、そのフライバックエネルギは、エネルギ回収経路をなすダイオード２３を通じて、コンデンサ１９へ電流の形で回収される。
【００５３】
尚、定電流スイッチ１１のオン／オフによってコイル５に流す一定の電流としては、図２に示すように、ピックアップ電流とホールド電流とがある。ピックアップ電流は、コンデンサ１９からコイル５への放電電流によってリフトした燃料噴射弁３の弁体を、開弁位置へと確実に移動させるため（即ち、確実な開弁を実現するため）の電流である。また、ホールド電流は、ピックアップ電流よりも小さい電流であり、燃料噴射弁３の開弁保持に最低限必要な電磁力を発生させるための電流である。つまり、コイル５に流す一定の電流を、大小２種類の値に切り換えるようになっている。但し、以下では、説明を簡略化するため、コイル５に流す一定の電流が、１種類であって、例えばピックアップ電流であるとして説明するが、ホールド電流の方についても、ピックアップ電流について述べる制御手法と同様の制御手法が適用される。
【００５４】
ここで、噴射駆動処理の内容をまとめると、図３のようになる。
マイコン２５は、通電期間の開始タイミングが到来すると、図３の噴射駆動処理を開始し、Ｓ１０にて、気筒選択スイッチ７をオンさせ、次のＳ２０にて、放電スイッチ２１もオンさせる。
【００５５】
そして、マイコン２５は、次のＳ３０にて、既に設定している目標放電時間ｔｐが経過するまで待ち、目標放電時間ｔｐが経過したと判定すると、Ｓ４０に進んで、放電スイッチ２１をオフさせる。Ｓ２０〜Ｓ４０の処理は、通電期間の開始時から目標放電時間ｔｐだけ放電スイッチ２１オンさせてコイル５に放電電流を流す、放電制御の処理である。
【００５６】
その後、マイコン２５は、Ｓ５０にて、定電流スイッチ１１をオン／オフさせる定電流制御を行う。その定電流制御では、定電流スイッチ１１をスイッチング周期Ｔあたりに目標オン時間ｔｇだけオンさせる。そして、マイコン２５は、次のＳ６０にて、通電期間が終了したか否かを判定し、通電期間が終了していなければ、Ｓ５０に戻って、引き続き定電流制御を行う。
【００５７】
また、マイコン２５は、Ｓ６０にて、通電期間が終了したと判定すると、Ｓ７０に進み、定電流スイッチ１１をオフさせたままにすると共に、気筒選択スイッチ７をオフさせ、その後、当該噴射駆動処理を終了する。
【００５８】
次に、噴射駆動処理で用いる目標放電時間ｔｐと目標オン時間ｔｇとの、マイコン２５による設定手法について説明する。
《目標放電時間ｔｐの設定について》
マイコン２５は、目標放電時間ｔｐを算出するための処理として、図４の放電時間算出処理を行う。尚、放電時間算出処理は、例えば、燃料噴射弁３を駆動する前（換言すれば、燃料噴射を実施する前であり、コイル５への通電を開始する前）毎に実行される。
【００５９】
図４に示すように、マイコン２５は、放電時間算出処理では、まずＳ１１０にて、コンデンサ１９の充電電圧ＶＣを検出する。尚、マイコン２５は、分圧回路３５から入力される分圧電圧をＡ／Ｄ変換することにより、充電電圧ＶＣを検出する。
【００６０】
そして、マイコン２５は、次のＳ１２０にて、充電電圧ＶＣの検出値を、下記の式１に代入することで、係数ａを算出する。
ａ＝１／（ｃ×ＶＣ＋ｄ）…式１
係数ａは、放電電流の増加傾きの逆数である。つまり、式１は、放電電流の増加傾きの逆数である係数ａと充電電圧ＶＣとの関係を表す係数算出式である。また、式１におけるｃとｄとの各々は、既に学習して算出している定数であって、コイル５に放電電流を流す放電電流回路の電気的特性（インダクタンス値及び抵抗値）が反映された放電用学習値である。その定数ｃ，ｄは、後述する図５の第１学習処理により、燃料噴射弁３の実際の駆動時における放電電流（即ち、放電制御によってコイル５に流れた電流）に基づき算出されて更新される。
【００６１】
そして、マイコン２５は、次のＳ１３０にて、Ｓ１２０で算出した係数ａを、下記の式２に代入することにより、目標放電時間ｔｐを算出し、その算出した目標放電時間ｔｐを、例えばＲＡＭ６５の記憶領域のうち、噴射駆動処理のＳ３０で参照される記憶領域に記憶する。そして、マイコン２５は、その後、当該放電時間算出処理を終了する。このため、Ｓ１３０で算出した目標放電時間ｔｐは、噴射駆動処理で使用されることとなる。
【００６２】
ｔｐ＝ａ×Ｉｐ＋ｂ…式２
式２におけるＩｐは、放電電流の目標最大値である。また、式２におけるｂは、既に学習して算出しているオフセット値であり、このオフセット値ｂも、放電電流回路の電気的特性が反映された放電用学習値である。オフセット値ｂは、後述する図７の第２学習処理により、燃料噴射弁３の駆動時における放電電流に基づき算出されて更新される。
【００６３】
つまり、マイコン２５は、放電電流と放電スイッチ２１のオン時間とが一次関数の関係にあると仮定した式２により、放電電流の最大値を目標最大値Ｉｐにすることのできる目標放電時間ｔｐを算出している。そして、式２における係数ａは、充電電圧ＶＣの検出値と、放電用学習値のうちの定数ｃ，ｄとから算出されることと、式２には、放電用学習値のうちのオフセット値ｂが含まれることから、目標放電時間ｔｐは、充電電圧ＶＣの検出値と放電用学習値（定数ｃ，ｄ及びオフセット値ｂ）とを用いて算出されることとなる。
【００６４】
尚、式１における定数ｃ，ｄと、式２におけるオフセット値ｂは、メインリレー４１がオフしても消失しないように、バックアップＲＡＭ６６に記憶される。
〈式１における定数ｃ，ｄの算出について〉
マイコン２５は、燃料噴射弁３を駆動する前の充電電圧ＶＣの検出値と、燃料噴射弁３を駆動した際における放電電流の増加傾きの検出値とから、式１における定数ｃ，ｄを算出して更新する。
【００６５】
具体的には、マイコン２５は、定数ｃ，ｄを算出するための処理として、図５の第１学習処理を行う。この第１学習処理は、例えば一定時間毎に実行される。
図５に示すように、マイコン２５は、第１学習処理を開始すると、まずＳ２１０にて、定数ｃ，ｄを算出するための情報（以下、定数ｃ，ｄ算出用情報という）を収集すべき情報収集タイミングが到来したか否かを判定する。
【００６６】
例えば、前回の情報収集タイミングから所定のインターバル時間が経過していれば、情報収集タイミングが到来したと判定する。また例えば、前回の情報収集タイミングから所定回数だけ燃料噴射弁３を駆動したなら（つまり燃料噴射弁３による燃料噴射を実施したなら）、情報収集タイミングが到来したと判定するようになっていても良い。また例えば、燃料噴射弁３による燃料噴射を実施する前毎に、情報収集タイミングが到来したと判定するようになっていても良い。情報収集タイミングは任意に設定することができる。
【００６７】
そして、マイコン２５は、Ｓ２１０にて情報収集タイミングが到来していないと判定した場合には、そのまま当該第１学習処理を終了するが、情報収集タイミングが到来したと判定した場合には、Ｓ２２０に進む。
【００６８】
マイコン２５は、Ｓ２２０では、今から最初に実施する燃料噴射（以下、今回噴射という）のための燃料噴射弁３の駆動開始タイミングよりも微小な所定時間だけ前の電圧検出タイミングまで待ち、その電圧検出タイミングにて、充電電圧ＶＣを検出する。
【００６９】
更に、Ｓ２２０では、今回噴射のために燃料噴射弁３を駆動した際の放電電流の増加傾きを検出する。具体的には、図６に示すように、マイコン２５は、放電スイッチ２１をオンさせている期間中の既知の２つの時点ｔａ，ｔｂにて、コイル電流（この場合は放電電流）を検出する。そして、２つの時点ｔａ，ｔｂでのコイル電流の差ΔＩを、２つの時点ｔａ，ｔｂの時間差Δｔで割った値を、放電電流の増加傾きｋとして算出する。
【００７０】
そして、Ｓ２２０では、検出した充電電圧ＶＣと増加傾きｋとを、定数ｃ，ｄ算出用情報として、例えばＲＡＭ６５に記憶する。
尚、マイコン２５は、積分回路３３から入力される電圧検出信号をＡ／Ｄ変換することにより、コイル電流を検出する。また、マイコン２５は、積分回路３３を介さずに入力される電圧検出信号をＡ／Ｄ変換することにより、コイル電流を検出しても良い。
【００７１】
次にマイコン２５は、Ｓ２３０にて、定数ｃ，ｄの算出タイミングであるか否かを判定する。例えば、Ｓ２２０の処理が１回以上の所定回数だけ行われる毎に、定数ｃ，ｄの算出タイミングであると判定する。定数ｃ，ｄの算出タイミングも任意に設定することができる。
【００７２】
そして、マイコン２５は、Ｓ２３０にて定数ｃ，ｄの算出タイミングであると判定しなければ、そのまま当該第１学習処理を終了するが、定数ｃ，ｄの算出タイミングであると判定した場合には、Ｓ２４０に進む。
【００７３】
マイコン２５は、Ｓ２４０では、例えば今回のＳ２２０と前回のＳ２２０とで検出されてＲＡＭ６５に記憶された２組の充電電圧ＶＣ及び増加傾きｋを用いて、定数ｃ，ｄを算出する。具体的には、２組の充電電圧ＶＣ及び増加傾きｋのうち、一方の組をＶＣ１，ｋ１とし、他方の組をＶＣ２，ｋ２とすると、マイコン２５は、式１を変形した下記の式３，４の連立方程式から、定数ｃと定数ｄを算出する。
【００７４】
ｋ１＝ｃ×ＶＣ１＋ｄ…式３
ｋ２＝ｃ×ＶＣ２＋ｄ…式４
そして、マイコン２５は、算出した定数ｃと定数ｄを、図４のＳ１２０で係数ａを算出するのに用いる定数ｃ，ｄ（即ち、式１における定数ｃ，ｄ）として設定し直し、その後、当該第１学習処理を終了する。式１における定数ｃ，ｄの記憶場所はバックアップＲＡＭ６６であるため、Ｓ２４０では、そのバックアップＲＡＭ６６内の定数ｃ，ｄを書き換える。
【００７５】
尚、Ｓ２２０とＳ２４０の処理を各燃料噴射について行えば、定数ｃ，ｄを最大の頻度で更新することとなる。
〈式２におけるオフセット値ｂの算出について〉
マイコン２５は、燃料噴射弁３を駆動するために放電スイッチ２１をオンしてから所定時間が経過したときの放電電流の検出値と、その所定時間と、既に算出している係数ａとから、オフセット値ｂを算出して更新する。
【００７６】
具体的には、マイコン２５は、オフセット値ｂを算出するための処理として、図７の第２学習処理を行う。この第２学習処理は、例えば一定時間毎に実行される。
図７に示すように、マイコン２５は、第２学習処理を開始すると、まずＳ２５０にて、オフセット値ｂを算出するための情報（以下、オフセット値ｂ算出用情報という）を収集すべき情報収集タイミングが到来したか否かを判定する。
【００７７】
例えば、図５のＳ２１０と同様に、前回の情報収集タイミングから所定のインターバル時間が経過していれば、情報収集タイミングが到来したと判定する。また例えば、前回の情報収集タイミングから所定回数だけ燃料噴射弁３を駆動したなら、情報収集タイミングが到来したと判定するようになっていても良い。また例えば、燃料噴射弁３による燃料噴射を実施する前毎に、情報収集タイミングが到来したと判定するようになっていても良い。このＳ２５０で判定する情報収集タイミングも任意に設定することができる。
【００７８】
そして、マイコン２５は、Ｓ２５０にて情報収集タイミングが到来していないと判定した場合には、そのまま当該第２学習処理を終了するが、情報収集タイミングが到来したと判定した場合には、Ｓ２６０に進む。
【００７９】
マイコン２５は、Ｓ２６０では、例えば、今から最初に実施する燃料噴射である今回噴射について、図８に示すように、放電スイッチ２１をオンしてから既知の所定時間ｔｎ（≦ｔｐ）が経過したときの放電電流Ｉｎを検出し、その検出した放電電流Ｉｎを、オフセット値ｂ算出用情報として、例えばＲＡＭ６５に記憶する。
【００８０】
次にマイコン２５は、Ｓ２７０にて、オフセット値ｂの算出タイミングであるか否かを判定する。例えば、Ｓ２６０の処理が１回以上の所定回数だけ行われる毎に、オフセット値ｂの算出タイミングであると判定する。オフセット値ｂの算出タイミングも任意に設定することができる。
【００８１】
そして、マイコン２５は、Ｓ２７０にてオフセット値ｂの算出タイミングであると判定しなければ、そのまま当該第２学習処理を終了するが、オフセット値ｂの算出タイミングであると判定した場合には、Ｓ２８０に進む。
【００８２】
マイコン２５は、Ｓ２８０では、例えば今回のＳ２６０で検出した放電電流Ｉｎと、上記所定時間ｔｎと、既に算出している現在の係数ａとを、式２を変形した下記の式５に代入して、オフセット値ｂを算出する。
【００８３】
ｂ＝ｔｎ−ａ×Ｉｎ…式５
そして、マイコン２５は、算出したオフセット値ｂを、図４のＳ１３０で目標放電時間ｔｐを算出するのに用いるオフセット値ｂ（即ち、式２におけるオフセット値ｂ）として設定し直し、その後、当該第２学習処理を終了する。尚、式２におけるオフセット値ｂの記憶場所はバックアップＲＡＭ６６であるため、Ｓ２８０では、そのバックアップＲＡＭ６６内のオフセット値ｂを書き換える。
【００８４】
他の例として、Ｓ２８０では、複数回の当該Ｓ２８０で算出したオフセット値ｂの平均値を、式２におけるオフセット値ｂとして算出しても良い。
また他の例として、Ｓ２６０では、放電スイッチ２１をオンしてから複数通り（この例では２通りとする）の既知の時間ｔ１，ｔ２がそれぞれ経過したときの各放電電流Ｉ１，Ｉ２を検出する。そして、Ｓ２８０では、式５に時間ｔ１と放電電流Ｉ１を代入して算出したオフセット値ｂ１と、式５に時間ｔ２と放電電流Ｉ２を代入して算出したオフセット値ｂ２との、例えば平均値を、式２におけるオフセット値ｂとして算出しても良い。
【００８５】
尚、Ｓ２６０とＳ２８０の処理を各燃料噴射について行えば、オフセット値ｂを最大の頻度で更新することとなる。
《目標オン時間ｔｇの設定について》
マイコン２５は、定電流制御で用いる定電流スイッチ１１の目標オン時間ｔｇを算出するための処理として、図９のオン時間算出処理を行う。尚、オン時間算出処理は、例えば、燃料噴射を実施する前毎に実行されるが、一定時間毎に実行しても良い。
【００８６】
図９に示すように、マイコン２５は、オン時間算出処理では、まずＳ３１０にて、バッテリ電圧ＶＢを検出する。尚、マイコン２５は、分圧回路３７から入力される分圧電圧をＡ／Ｄ変換することにより、バッテリ電圧ＶＢを検出する。
【００８７】
そして、マイコン２５は、次のＳ３２０にて、バッテリ電圧ＶＢの検出値を、下記の式６に代入することで、目標オン時間ｔｇを算出し、その算出した目標オン時間ｔｇを、例えばＲＡＭ６５の記憶領域のうち、噴射駆動処理のＳ５０で参照される記憶領域に記憶する。そして、マイコン２５は、その後、当該オン時間算出処理を終了する。このため、Ｓ３２０で算出した目標オン時間ｔｇは、噴射駆動処理におけるＳ５０の定電流制御で使用されることとなる。
【００８８】
ｔｇ＝（Ｉｇ×Ｒ×Ｔ＋Ｖｆ×Ｔ）／ＶＢ…式６
式６は、目標オン時間ｔｇとバッテリ電圧ＶＢとの関係を表すオン時間算出式である。そして、式６において、Ｉｇは、定電流スイッチ１１のオン／オフによってコイル５に流す目標電流（目標の平均電流）であり、Ｔは、定電流スイッチ１１のスイッチング周期である（図２，図１０参照）。
【００８９】
また、式６において、Ｒは、定電流スイッチ１１のオン／オフによってコイル５に一定の電流を流す電流回路（以下、定電流回路という）の電気的特性が反映された定電流用学習値であり、この例では、その定電流回路の抵抗値（以下、回路抵抗値という）である。そして、Ｖｆは、その定電流回路上に設けられているダイオード（具体的には、ダイオード１３又はダイオード１５）の順方向電圧である。
【００９０】
尚、式６における回路抵抗値Ｒは、後述する図１２の第３学習処理により、燃料噴射弁３の駆動時における定電流制御によるコイル電流に基づき算出されて更新される。また、式６における回路抵抗値Ｒは、メインリレー４１がオフしても消失しないように、バックアップＲＡＭ６６に記憶される。
【００９１】
次に、式６の導出について説明する。
まず、定電流回路は、図１１の上側に示す定電流回路５１となる。尚、図１１において、符号「５ｒ」が付されたものは、コイル５の抵抗である。また、その定電流回路５１において、一点鎖線の矢印は、定電流スイッチ１１のオン時におけるコイル電流の経路であり、二点鎖線の矢印は、定電流スイッチ１１のオフ時におけるコイル電流の経路である。
【００９２】
そして、定電流回路５１は、図１１の下側に示すモデル回路５２に置き換えることができる。そのモデル回路５２において、符号「５４」が付されたものは、ダイオード１３又はダイオード１５であり、符号「５５」が付されたものは、コイル５のインダクタンスであり、符号「５６」が付されたものは、定電流回路５１の抵抗（以下、回路抵抗という）である。回路抵抗５６には、コイル５の抵抗５ｒと、気筒選択スイッチ７のオン抵抗と、抵抗９と、定電流回路を形成する配線の抵抗とが含まれる。その回路抵抗５６の値（抵抗値）が、式６における回路抵抗値Ｒである。この例では、定電流スイッチ１１のオン抵抗は無視している。また、ダイオード５４の順方向電圧が、式６におけるＶｆである。
【００９３】
そして、モデル回路５２を数式化すると、下記の式７〜式９となる。
【００９４】
【数１】
2014218981.tif 000003
尚、式７〜式９における各英字の意味は、下記の通りである。
【００９５】
ｉｏｎ（ｔ）：定電流スイッチ１１のオン時のコイル電流（図１０参照）。
ｉｏｆｆ（ｔ）：定電流スイッチ１１のオフ時のコイル電流（図１０参照）。
Ｉｍａｘ：コイル電流の極大値（図１０参照）。
【００９６】
Ｉｍｉｎ：コイル電流の極小値（図１０参照）。
Ｉａｖｅ：コイル電流の平均値である平均電流（図１０参照）。
Ｖｆ：ダイオード５４の順方向電圧。
【００９７】
Ｌ：インダクタンス５５の値（コイル５のインダクタンス値）。
Ｒ：回路抵抗５６の値（回路抵抗値）。
ＶＢ：バッテリ電圧。
【００９８】
Ｔ：定電流スイッチ１１のスイッチング周期。
ｔｏｎ：定電流スイッチ１１のスイッチング周期Ｔあたりのオン時間。
そして、式８，式９の各々を式７に代入すると、下記の式１０が得られる。
【００９９】
【数２】
2014218981.tif 000004
そして、式１０における「Ｉａｖｅ」を目標電流Ｉｇに置き換えると共に、式１０における「ｔｏｎ」を目標オン時間ｔｇに置き換えて、その式１０を変形すると、式６になる。
【０１００】
〈式６における回路抵抗値Ｒの算出について〉
マイコン２５は、回路抵抗値Ｒを算出するための処理として、図１２の第３学習処理を行う。この第３学習処理は、例えば一定時間毎に実行される。
【０１０１】
図１２に示すように、マイコン２５は、第３学習処理を開始すると、まずＳ４１０にて、回路抵抗値Ｒを算出するための情報（以下、回路抵抗値Ｒ算出用情報という）を収集すべき情報収集タイミングが到来したか否かを判定する。このＳ４１０で判定する情報収集タイミングも、図５，図７のＳ２１０，Ｓ２５０で判定する情報収集タイミングと同様である。
【０１０２】
そして、マイコン２５は、Ｓ４１０にて情報収集タイミングが到来していないと判定した場合には、そのまま当該第３学習処理を終了するが、情報収集タイミングが到来したと判定した場合には、Ｓ４２０に進む。
【０１０３】
マイコン２５は、Ｓ４２０では、例えば、今から最初に実施する燃料噴射である今回噴射について、定電流制御によりコイル５に流れた電流の平均値である平均電流Ｉａｖｅを検出する。更に、今回噴射を実施した際のバッテリ電圧ＶＢも検出する。そして、検出した平均電流Ｉａｖｅとバッテリ電圧ＶＢとを、回路抵抗値Ｒ算出用情報として、例えばＲＡＭ６５に記憶する。
【０１０４】
次にマイコン２５は、Ｓ４３０にて、回路抵抗値Ｒの算出タイミングであるか否かを判定する。例えば、Ｓ４２０の処理が１回以上の所定回数だけ行われる毎に、回路抵抗値Ｒの算出タイミングであると判定する。回路抵抗値Ｒの算出タイミングも任意に設定することができる。
【０１０５】
そして、マイコン２５は、Ｓ４３０にて回路抵抗値Ｒの算出タイミングであると判定しなければ、そのまま当該第３学習処理を終了するが、回路抵抗値Ｒの算出タイミングであると判定した場合には、Ｓ４４０に進む。
【０１０６】
マイコン２５は、Ｓ４４０では、例えば今回のＳ４２０で検出した平均電流Ｉａｖｅ及びバッテリ電圧ＶＢと、定電流制御で用いた目標オン時間ｔｇとを、下記の式１１に代入することにより、回路抵抗値Ｒを算出する。
【０１０７】
Ｒ＝（ＶＢ×ｔｇ−Ｖｆ×Ｔ）／（Ｔ×Ｉａｖｅ）…式１１
この式１１は、式１０における「ｔｏｎ」を、目標オン時間ｔｇに置き換えて、その式１０を変形した式である。
【０１０８】
そして、マイコン２５は、算出した回路抵抗値Ｒを、図９のＳ３２０で目標オン時間ｔｇを算出するのに用いる回路抵抗値Ｒ（即ち、式６における回路抵抗値Ｒ）として設定し直し、その後、当該第３学習処理を終了する。式６における回路抵抗値Ｒの記憶場所はバックアップＲＡＭ６６であるため、Ｓ３２０では、そのバックアップＲＡＭ６６内の回路抵抗値Ｒを書き換える。
【０１０９】
尚、Ｓ４２０とＳ４４０の処理を各燃料噴射について行えば、回路抵抗値Ｒを最大の頻度で更新することとなる。
また、積分回路３３の時定数をある程度大きく設定しておけば、マイコン２５は、Ｓ４２０では、定電流制御中に、積分回路３３から入力される電圧検出信号を１回Ａ／Ｄ変換することで、実際の平均電流Ｉａｖｅを検出することができる。積分回路３３からマイコン２５に入力される電圧検出信号が平均電流Ｉａｖｅを表す電圧になるからである。尚、Ａ／Ｄ変換の実施回数は複数回でも良く、その場合は、各Ａ／Ｄ変換値の平均値を、平均電流Ｉａｖｅの検出値として算出すれば良い。
【０１１０】
また、積分回路３３の時定数を小さく設定した場合、あるいは、電流検出信号をマイコン２５へ積分回路３３を介さずに入力する構成を採った場合、マイコン２５は、Ｓ４２０では、電流検出信号を複数回Ａ／Ｄ変換し、その各Ａ／Ｄ変換値の平均値を、平均電流Ｉａｖｅの検出値として算出すれば良い。そして、その場合、マイコン２５は、例えば、図１３における黒丸印（●）で示すように、電流検出信号を一定時間毎にＡ／Ｄ変換したり、図１３における白丸印（○）で示すように、コイル電流が極大値と極小値との各々になるタイミング（具体的には、定電流スイッチ１１のオン／オフを切り換えるタイミング）で、電流検出信号をＡ／Ｄ変換したりすれば良い。
【０１１１】
ところで、定電流スイッチ１１のスイッチング周期Ｔあたりのオン時間ｔｏｎが同じであっても、バッテリ電圧ＶＢが変動すれば、コイル５に流れる平均電流Ｉａｖｅは変わる。このため、図９のオン時間算出処理で目標オン時間ｔｇを算出するのに用いる式６では、バッテリ電圧ＶＢを変数としている。そして、図９のオン時間算出処理の実行周期を短くするほど、目標オン時間ｔｇを設定するのに用いたバッテリ電圧ＶＢと、燃料噴射を実施するとき（燃料噴射弁３を駆動するとき）のバッテリ電圧ＶＢとの差が小さくなるため、燃料噴射精度（燃料噴射弁３の制御精度）を向上させることができる。
【０１１２】
但し、コイル５の電気特性は主にインダクタンス成分であるため、バッテリ電圧ＶＢの変動周期が短くなるにつれて、バッテリ電圧ＶＢの変動がコイル電流に影響しなくなる。よって、バッテリ電圧ＶＢを検出して目標オン時間ｔｇを更新する周期（即ち、図９のオン時間算出処理を実行する周期）としては、必要十分な値が存在する。
【０１１３】
具体的には、バッテリ電圧ＶＢからコイル５に電流を流す電流経路のカットオフ周波数を「ｆｃ」とすると、オン時間算出処理の実行周期は、ｆｃをｎ倍（ｎは１以上の数）した周波数の逆数（＝１／（ｎ×ｆｃ））に設定すれば良い。尚、バッテリ電圧ＶＢからコイル５に電流を流す電流経路は、具体的には、図１１において「バッテリ１０→定電流スイッチ１１→ダイオード１３→コイル５→気筒選択スイッチ７→抵抗９→バッテリ１０」の電流経路であり、ＬＲ直列回路と見なすことができる。
【０１１４】
そして、上記ｎ倍のｎを４にすれば更に好ましい。例えば、バッテリ電圧ＶＢがｆｃで変動した場合、目標オン時間ｔｇを設定するのに用いたバッテリ電圧ＶＢと、燃料噴射を実施するときのバッテリ電圧ＶＢとの差が、最大でも９０度位相分の差に抑えられるからである。
【０１１５】
以上が、制御装置１の基本的な特徴である。
このような制御装置１によれば、マイコン２５とは別に、放電スイッチ２１及び定電流スイッチ１１や気筒選択スイッチ７のオン／オフを制御するための専用回路を設ける必要がないため、部品点数を削減することができ、延いては小形化を実現することができる。
【０１１６】
そして、マイコン２５は、充電電圧ＶＣの検出値と、放電用学習値としての定数ｃ，ｄ及びオフセット値ｂとを用いて、コイル５への放電電流の最大値を目標最大値Ｉｐにするための、放電スイッチ２１のオン時間である目標放電時間ｔｐを決定する。更に、マイコン２５は、第１学習処理により、燃料噴射弁３の実際の駆動時における放電電流（詳しくは、放電電流の増加傾きｋ）に基づいて、定数ｃ，ｄを算出して更新する。また、マイコン２５は、第２学習処理により、燃料噴射弁３の実際の駆動時における放電電流（詳しくは、放電電流の傾きを表す、所定時間ｔｎでの放電電流Ｉｎ）に基づいて、オフセット値ｂを算出して更新する。このため、充電電圧ＶＣが変化しても、また、放電電流回路の電気的特性が温度変化や時間経過等によって変化しても、放電電流の制御精度（放電電流の最大値を目標最大値Ｉｐにする精度）を維持することができる。
【０１１７】
また、マイコン２５は、バッテリ電圧ＶＢの検出値と、定電流用学習値としての回路抵抗値Ｒとを用いて、コイル５に目標電流Ｉｇを流すための、定電流スイッチ１１のスイッチング周期Ｔあたりのオン時間である目標オン時間ｔｇを決定している。更に、マイコン２５は、第３学習処理により、燃料噴射弁３の実際の駆動時における定電流制御によるコイル電流（詳しくは、平均電流Ｉａｖｅ）に基づいて、回路抵抗値Ｒを算出して更新する。このため、バッテリ電圧ＶＢが変化しても、また、定電流回路の電気的特性が温度変化や時間経過等によって変化しても、コンデンサ１９からコイル５への放電後におけるコイル電流を目標電流Ｉｇにする制御精度を、維持することができる。
【０１１８】
よって、コイル５に流す電流の制御精度を確保することができ、延いては、燃料噴射精度を確保することができる。
また、マイコン２５は、係数算出式としての式１に充電電圧ＶＣの検出値を代入することで、放電電流の増加傾きの逆数である係数ａを算出し、その算出した係数ａに目標最大値Ｉｐを乗ずることで、目標放電時間ｔｐを算出する（式２）。このため、目標放電時間ｔｐを、データマップなどを用いることなく簡単に求めることができ、必要なメモリ容量を抑えることができる。また、目標放電時間ｔｐを算出する式２には、係数ａに目標最大値Ｉｐを乗じた値に対して、オフセット値ｂを加算する項もあるため、より正しい目標放電時間ｔｐを算出することができる。また、マイコン２５は、オン時間算出式としての式６にバッテリ電圧ＶＢの検出値を代入することで、目標オン時間ｔｇを算出する。このため、目標オン時間ｔｇを、データマップなどを用いることなく簡単に求めることができ、必要なメモリ容量を抑えることができる。また、制御装置１には積分回路３３が備えられているため、前述したように、マイコン２５は、実際の平均電流Ｉａｖｅを検出するための電流検出信号のＡ／Ｄ変換回数を、例えば１回にすることができる。
【０１１９】
〔付加特徴の説明〕
次に、制御装置１の特徴のうち、基本的な特徴に加えられている付加特徴について説明する。尚、オフセット値ｂ、定数ｃ，ｄ及び回路抵抗値Ｒのことを総称して、学習値という。
【０１２０】
《第１の付加特徴》
マイコン２５は、ＩＧＳＷ４８がオフされたことを検知した後、メインリレー４１をオフしても良い状態になったと判定したなら、図１４の動作終了用処理を実行する。尚、ＩＧＳＷ４８がオフされると、車両がイグニッションオフの状態（即ち、車両におけるイグニッション系の電源ラインにバッテリ電圧ＶＢが供給されない状態）になり、エンジンが停止するため、図１４の動作終了用処理は、ＩＧＳＷ４８のオフに伴ってエンジンが運転状態から停止した後に、実行されることとなる。
【０１２１】
図１４に示すように、マイコン２５は、動作終了用処理を開始すると、まずＳ５１０にて、抵抗４６及びサーミスタ４７からの温度検出信号に基づいて、制御装置１の内部温度を検出し、その検出値を、動作終了時の内部温度として、バックアップＲＡＭ６６（記憶部に相当）に記憶する。
【０１２２】
そして、マイコン２５は、次のＳ５２０にて、駆動回路４３への電源保持信号Ｓｈを非アクティブレベルにする。すると、メインリレー４１がオフして、制御装置１への電源供給が遮断され、マイコン２５は動作を停止する。
【０１２３】
《第２の付加特徴》
マイコン２５は、ＩＧＳＷ４８のオンに伴って起動すると、車両のスタータによるエンジンのクランキングが開始されるよりも前に、図１５の起動時処理を実行し完了する。その起動時処理の所要時間は、ＩＧＳＷ４８のオンに伴いマイコン２５が起動してからエンジンのクランキングが開始されるまでの最小時間よりも短い。よって、起動時処理は、エンジンが停止している期間中に実行されることとなる。
【０１２４】
図１５に示すように、マイコン２５は、起動時処理を開始すると、まずＳ６１０にて、抵抗４６及びサーミスタ４７からの温度検出信号に基づいて、制御装置１の内部温度を検出する。
【０１２５】
マイコン２５は、次のＳ６２０にて、Ｓ６１０で検出した内部温度と、動作終了用処理（図１４）のＳ５１０でバックアップＲＡＭ６６に記憶した動作終了時の内部温度と差（以下、温度差という）の絶対値が、所定値Ｔｔｈ以上であるか否かを判定する。そして、マイコン２５は、温度差の絶対値が所定値Ｔｔｈ以上でなければ、そのまま当該起動時処理を終了するが、温度差の絶対値が所定値Ｔｔｈ以上であれば、Ｓ６３０に進む。
【０１２６】
マイコン２５は、Ｓ６３０では、燃料噴射弁３のダミー駆動を行う。ダミー駆動とは、燃料噴射のためではなく、エンジンの停止期間中に学習値（オフセット値ｂ、定数ｃ，ｄ及び回路抵抗値Ｒ）を更新するための、燃料噴射弁３の駆動である。そして、本実施形態では、マイコン２５は、Ｓ６３０にて、ダミー駆動を２回行う。
【０１２７】
具体的には、マイコン２５は、ダミー駆動の処理として、図３の噴射駆動処理と同じ処理を行うが、通電期間の長さと、目標放電時間ｔｐと、目標オン時間ｔｇ（換言すれば、スイッチングのデューティ比）との、各々としては、既知の固定値を用いる。以下では、ダミー駆動における目標放電時間ｔｐを、燃料噴射のための目標放電時間ｔｐと区別するために、「ｔｐｄ」と記載し、ダミー駆動における目標オン時間ｔｇも、燃料噴射のための目標オン時間ｔｇと区別するために、「ｔｇｄ」と記載する。「ｔｐｄ」は、放電スイッチ２１をオンさせる所定時間に該当し、「ｔｇｄ／Ｔ」は、定電流スイッチ１１をオン／オフさせる所定のデューティ比に該当する。
【０１２８】
ダミー駆動における通電期間の長さは、ダミー駆動を２回行っても、エンジンのクランキングが開始されるまでに、当該起動時処理が終了可能な値に設定されている。
ダミー駆動における目標放電時間ｔｐｄと目標オン時間ｔｇｄとの各々は、コイル電流が燃料噴射弁３の開弁に必要な電流よりも小さくなる値に設定されており、燃料噴射のための目標放電時間ｔｐ及び目標オン時間ｔｇと比較すると、例えば、それらの半分程度の値に設定されている。
【０１２９】
そして、マイコン２５は、Ｓ６３０でダミー駆動を２回行った後、当該起動時処理を終了する。
《第３の付加特徴》
マイコン２５は、起動時処理（図１５）のＳ６２０にて、温度差の絶対値が所定値Ｔｔｈ以上であると判定した場合には、その起動時処理と、例えばマルチタスクのかたちで並列的に、図１６のエンジン停止時学習処理を実行する。エンジン停止時学習処理も、エンジンのクランキングが開始されるよりも前に完了するようになっている。
【０１３０】
図１６に示すように、マイコン２５は、エンジン停止時学習処理を開始すると、まずＳ７１０にて、１回目のダミー駆動について、図５のＳ２２０と同様の処理を行うことにより、定数ｃ，ｄ算出用情報として、充電電圧ＶＣと放電電流の増加傾きｋとを検出する。つまり、Ｓ７１０では、１回目のダミー駆動の開始タイミングよりも微小な所定時間だけ前のタイミングにて、充電電圧ＶＣを検出し、更に、１回目のダミー駆動による放電電流の増加傾きｋを、図６で説明した手順で検出する。
【０１３１】
次に、マイコン２５は、Ｓ７２０にて、１回目のダミー駆動について、図７のＳ２６０と同様の処理を行うことにより、オフセット値ｂ算出用情報として、放電スイッチ２１をオンしてから既知の所定時間ｔｎが経過したときの放電電流Ｉｎを検出する。尚、この場合の所定時間ｔｎは、ダミー駆動における目標放電時間ｔｐｄ以下に設定されている。
【０１３２】
次に、マイコン２５は、Ｓ７３０にて、１回目のダミー駆動について、図１２のＳ４２０と同様の処理を行うことにより、回路抵抗値Ｒ算出用情報として、ダミー駆動の定電流制御による平均電流Ｉａｖｅと、その定電流制御時のバッテリ電圧ＶＢとを検出する。
【０１３３】
次に、マイコン２５は、Ｓ７３５にて、２回目のダミー駆動について、Ｓ７１０と同様の処理を行うことにより、定数ｃ，ｄ算出用情報として、充電電圧ＶＣと放電電流の増加傾きｋとを検出する。
【０１３４】
次に、マイコン２５は、Ｓ７４０にて、Ｓ７１０とＳ７３５とで検出した２組の充電電圧ＶＣ及び増加傾きｋを用いて、図５のＳ２４０と同様の処理を行うことにより（つまり、式３及び式４により）、定数ｃ，ｄを算出する。更に、マイコン２５は、その算出した定数ｃ，ｄを、式１における定数ｃ，ｄとして設定し直すことで、その式１における定数ｃ，ｄを更新する。
【０１３５】
次に、マイコン２５は、Ｓ７５０にて、Ｓ７２０で検出した放電電流Ｉｎを用いて、図７のＳ２８０と同様に、オフセット値ｂを算出する。
具体的には、例えば、Ｓ７１０で検出した充電電圧ＶＣと、Ｓ７４０で算出した定数ｃ，ｄとを、式１に代入して、係数ａを算出する。そして、その算出した係数ａと、Ｓ７２０で検出した放電電流Ｉｎと、Ｓ７２０での放電電流Ｉｎの検出タイミングを決める上記所定時間ｔｎとを、式５に代入することにより、オフセット値ｂを算出する。
【０１３６】
更に、マイコン２５は、その算出したオフセット値ｂを、式２におけるオフセット値として設定し直すことで、その式２におけるオフセット値ｂを更新する。
次に、マイコン２５は、Ｓ７６０にて、Ｓ７３０で検出した平均電流Ｉａｖｅ及びバッテリ電圧ＶＢを、図１２のＳ４４０と同様に、式１１に代入することにより、回路抵抗値Ｒを算出する。尚、この場合、式１１における「ｔｇ」としては、ダミー駆動における目標オン時間ｔｇｄを代入する。更に、マイコン２５は、算出した回路抵抗値Ｒを、式６における回路抵抗値Ｒとして設定し直すことで、その式６における回路抵抗値Ｒを更新する。そして、マイコン２５は、その後、当該エンジン停止時学習処理を終了する。
【０１３７】
次に、上記付加特徴による制御装置１の作用について、図１７を用い説明する。
図１７の例では、時刻ｔ１０で、ＩＧＳＷ４８がオフされてエンジンが停止し、その後、制御装置１のマイコン２５により、メインリレー４１がオフされている。
【０１３８】
マイコン２５は、ＩＧＳＷ４８がオフされてから、メインリレー４１をオフさせるまでの間に、制御装置１の内部温度を検出し、その検出値をバックアップＲＡＭ６６に記憶する。
【０１３９】
また、図１７の例において、ＩＧＳＷ４８がオフされる直前の燃料噴射よりも１回前の燃料噴射が開始される時点では、学習値としてのオフセット値ｂ、定数ｃ，ｄ及び回路抵抗値Ｒの各々が、ｂ１１，ｃ１１，ｄ１１，Ｒ１１になっている。このため、上記１回前の燃料噴射では、そのｂ１１，ｃ１１，ｄ１１，Ｒ１１を用いて、目標放電時間ｔｐと目標オン時間ｔｇとが決定されている。そして、上記１回前の燃料噴射の終了時から、ＩＧＳＷ４８がオフされる直前の燃料噴射が開始されるまでの期間Ｔ１において、学習値が、ｂ１１，ｃ１１，ｄ１１，Ｒ１１から、ｂ１２，ｃ１２，ｄ１２，Ｒ１２に更新されている。このため、ＩＧＳＷ４８がオフされる直前の燃料噴射では、その更新後のｂ１２，ｃ１２，ｄ１２，Ｒ１２を用いて、目標放電時間ｔｐと目標オン時間ｔｇとが決定されている。
【０１４０】
そして、図１７の例では、時刻ｔ２０で、ＩＧＳＷ４８がオフからオンされてメインリレー４１がオンしている。
マイコン２５は、メインリレー４１がオンして起動すると、制御装置１の内部温度を検出し、その検出した起動時の内部温度と、メインリレー４１をオフさせる前に検出した動作終了時の内部温度との差である温度差の絶対値が、所定値Ｔｈｔ以上であるか否かを判定する。
【０１４１】
図１７の例では、温度差の絶対値が所定値Ｔｔｈ以上であった場合を表しており、この場合、マイコン２５は、起動してからエンジンのクランキングが開始されるまでの期間Ｔ２において、燃料噴射弁３のダミー駆動を２回行うと共に、学習値を更新する。この例では、学習値が、ｂ１２，ｃ１２，ｄ１２，Ｒ１２から、ｂ１３，ｃ１３，ｄ１３，Ｒ１３に更新されている。このため、エンジンがクランキングされてからの最初の燃料噴射（以下、エンジン始動時の初回燃料噴射という）では、エンジン停止期間に更新されたｂ１３，ｃ１３，ｄ１３，Ｒ１３を用いて、目標放電時間ｔｐと目標オン時間ｔｇとが決定される。尚、図１７において、「クランキングがオン」とは、エンジンのクランキングが行われることを意味しており、このことは後述する図１８においても同様である。
【０１４２】
このように、制御装置１では、エンジンが停止している期間に、ダミー駆動を行って学習値を更新する。よって、エンジンが停止している期間に学習値が更新されない構成の場合と比較すると、エンジン始動時において、より新しい学習値を用いて目標放電時間ｔｐ及び目標オン時間ｔｇが算出されることとなり、コイル５に流す電流の制御精度を向上させることができる。
【０１４３】
例えば、図１７の例において、ダミー駆動による学習値の更新が実施されないとすると、エンジンのクランキングが開始される時点での学習値は、エンジン停止直前の値であるｂ１２，ｃ１２，ｄ１２，Ｒ１２となる。このため、エンジン始動時の初回燃料噴射では、そのｂ１２，ｃ１２，ｄ１２，Ｒ１２を用いて、目標放電時間ｔｐと目標オン時間ｔｇとが決定されることとなる。その場合に、エンジンの停止時間が長くて、エンジン始動時における放電電流回路及び定電流回路の周囲温度と、エンジン停止前における放電電流回路及び定電流回路の周囲温度との差が大きくなったとする。すると、エンジン停止直前の学習値であるｂ１２，ｃ１２，ｄ１２，Ｒ１２は、エンジン始動時においては、放電電流回路及び定電流回路の周囲温度に応じた電気的特性を反映したものではなくなるため、妥当な学習値とは言えなくなる。
【０１４４】
これに対して、本実施形態の制御装置１によれば、エンジン停止期間に学習値が更新されるため、エンジンが長時間停止した後でのエンジン始動時においても、コイル電流の制御精度を確保することができる。
【０１４５】
また、ダミー駆動でコイル５に流す電流は、燃料噴射弁３が開弁するのに必要な電流よりも小さいため、無駄に燃料を噴射してしまうこともない。
また、マイコン２５は、ＩＧＳＷ４８のオフに伴いエンジンが停止した後、制御装置１の内部温度を検出してバックアップＲＡＭ６６に記憶し、その後、制御装置１への電源供給を遮断する。そして、マイコン２５は、エンジン停止期間において起動した際に、制御装置１の内部温度を検出すると共に、その検出値と、バックアップＲＡＭ６６に記憶しておいた動作終了時の内部温度との差の絶対値が、所定値Ｔｔｈ以上でなければ、ダミー駆動（図１５のＳ６３０）及びエンジン停止時学習処理（図１６）の実施を禁止する（図１５のＳ６２０：ＮＯの場合）。
【０１４６】
このため、ダミー駆動及びエンジン停止時学習処理は、エンジン始動時における放電電流回路及び定電流回路の周囲温度と、エンジン停止前における放電電流回路及び定電流回路の周囲温度との差が小さい場合には実施されなくなり、その結果、処理負荷を低減することができる。換言すると、ダミー駆動及びエンジン停止時学習処理を、必要な場合にだけ実施することができるようになる。特に、この制御装置１は、燃料噴射弁３と同じエンジンルームに設けられるため、制御装置１の内部温度は、コイル５の周囲温度とも相関がある。
【０１４７】
また、マイコン２５は、車両の使用者が車両をイグニッションオンの状態にするための操作を行ったことに伴って制御装置１が起動してから、エンジンが始動のためにクランキングされるまでの間に、ダミー駆動及びエンジン停止時学習処理を行う。このため、エンジン始動時の初回燃料噴射に用いられる学習値を、その初回燃料噴射の実施時により近い時の、放電電流回路及び定電流回路の電気的特性を反映した学習値にすることができる。よって、制御精度を向上させるのに有利である。
【０１４８】
［第２実施形態］
次に、第２実施形態の制御装置について説明するが、制御装置の符号としては、第１実施形態と同じ“１”を用いる。また、第１実施形態と同様の構成要素や処理についても、第１実施形態と同じ符号を用いる。
【０１４９】
第２実施形態の制御装置１は、第１実施形態の制御装置１と比較すると、下記（１）,（２）の点が異なる。
（１）マイコン２５は、図１４のＳ５２０にて、ソークタイマ４５に所定のタイマ時間を設定すると共に、ソークタイマ４５へ開始指令を与え、その後、駆動回路４３への電源保持信号Ｓｈを非アクティブレベルにして、メインリレー４１をオフさせる。このため、ＩＧＳＷ４８がオフであっても、タイマ時間が経過した時に、メインリレー４１がオンして、マイコン２５が起動（制御装置１が起動）することとなる。
【０１５０】
（２）マイコン２５は、起動すると、ＩＧＳＷ４８のオン／オフを判別し、ＩＧＳＷ４８がオフであれば、ソークタイマ４５によって起動した（詳しくは、ソークタイマ４５から駆動回路４３へのタイマ起動信号Ｓｔがアクティブレベルになったことで起動した）と判断して、その場合に、図１５の起動時処理を行う。マイコン２５は、第１実施形態と同様に、起動時処理のＳ６２０にて、温度差の絶対値が所定値Ｔｔｈ以上であると判定した場合には、Ｓ６３０でのダミー駆動と共に、図１６のエンジン停止時学習処理を行う。
【０１５１】
そして、マイコン２５は、ダミー駆動とエンジン停止時学習処理を終了すると、メインリレー４１をオフさせる電源遮断処理を行って動作を停止する。マイコン２５は、電源遮断処理としては、駆動回路４３への電源保持信号Ｓｈを非アクティブレベルにすると共に、ソークタイマ４５へリセット指令を与えて、ソークタイマ４５から駆動回路４３へのタイマ起動信号Ｓｔも非アクティブレベルにする。すると、メインリレー４１がオフすることとなる。
【０１５２】
また、マイコン２５は、ソークタイマ４５によって起動した場合の起動時処理のＳ６２０にて、温度差の絶対値が所定値Ｔｔｈ以上ではないと判定した場合には、ダミー駆動及びエンジン停止時学習処理を行うことなく、上記電源遮断処理を行って動作を停止する。
【０１５３】
次に、第２実施形態の制御装置１の作用について、図１８を用い説明する。尚、図１８において、時刻ｔ１０より前は、図１７と同じ内容を表している。また、図１８の例においても、図１７と同様に、時刻ｔ１０で、ＩＧＳＷ４８がオフされ、時刻ｔ２０で、ＩＧＳＷ４８がオンされて、その後、エンジンのクランキングが開始されている。
【０１５４】
図１８に示すように、第２実施形態では、ＩＧＳＷ４８がオフしているエンジン停止期間中に、ソークタイマ４５によってメインリレー４１がオンし、制御装置１が起動する（時刻ｔ１１）。
【０１５５】
そして、ソークタイマ４５により制御装置１が起動すると、マイコン２５は、制御装置１の内部温度を検出し、その検出した起動時の内部温度と、メインリレー４１をオフさせる前に検出した動作終了時の内部温度との差である温度差の絶対値が、所定値Ｔｈｔ以上であるか否かを判定する。
【０１５６】
図１８の例でも、図１７と同様に、温度差の絶対値が所定値Ｔｔｈ以上であった場合を表しており、この場合、マイコン２５は、燃料噴射弁３のダミー駆動を２回行うと共に、学習値を更新する。この例では、学習値が、エンジン停止直前のｂ１２，ｃ１２，ｄ１２，Ｒ１２から、ｂ１３，ｃ１３，ｄ１３，Ｒ１３に更新されている。そして、マイコン２５は、学習値の更新を終了すると、メインリレー４１をオフさせる（時刻ｔ１２）。
【０１５７】
このため、第２実施形態の制御装置１においても、エンジン始動時の初回燃料噴射では、エンジン停止期間中に更新されたｂ１３，ｃ１３，ｄ１３，Ｒ１３を用いて、目標放電時間ｔｐと目標オン時間ｔｇとが決定される。よって、第１実施形態と同様の効果が得られる。
【０１５８】
また、第２実施形態の制御装置１では、車両がイグニッションオフの状態になっている期間中（この例ではＩＧＳＷ４８のオフ期間中）に、ソークタイマ４５によりメインリレー４１をオンすることで、当該制御装置１が起動しマイコン２５が動作するようになっている。このため、ダミー駆動と学習値更新のための所要時間が長くなっても、対応することができる。その所要時間に合わせてメインリレー４１をオンさせ続ければ良いからである。
【０１５９】
尚、第２実施形態の制御装置１に、第１実施形態の内容を組み合わせても良い。その場合、マイコン２５は、ＩＧＳＷ４８のオンに伴い起動してからエンジンがクランキングされるまでの間にも、ダミー駆動及びエンジン停止時学習処理を行うようになる。このように構成すれば、ソークタイマ４５に設定したタイマ時間が経過する前にＩＧＳＷ４８がオンされた場合にも、学習値の更新を行うことができる。
【０１６０】
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されず、特許請求の範囲に記載された本発明の要旨の範囲において、種々の態様で実施することができ、前述した実施形態の構成や処理のうちの、何れかの組み合わせを変える変形や、一部を削除する変形等を行うことも可能である。
【０１６１】
例えば、マイコン２５の処理のうち、図１４のＳ５１０と図１５のＳ６１０，Ｓ６２０とを削除する変形を行っても良い。
また、マイコン２５の処理のうちの一部又は全部を、マイコン以外のハードウェア回路によって実現しても良い。
【０１６２】
また、学習値の種類や算出方法も、上記実施形態以外の種類や方法であっても良い。例えば、オフセット値ｂを削除したり、定数ｃ，ｄ及びオフセット値ｂのうちの何れかを固定値にしたりする変形を行っても良い。定数ｃ，ｄのうちの一方を固定値にした場合、他方は、式３,式４の一方から算出できるため、ダミー駆動の実施回数は１回で良い。
【０１６３】
また、駆動対象の燃料噴射弁３が１つであれば、端子ＩＮＪと抵抗９とが常時接続されるように構成することができ、その場合、気筒選択スイッチ７は不要となる。
また、制御装置１への電源供給停止中も記憶内容を保存するための記憶部としては、バックアップＲＡＭ６６以外でも良く、例えば書き換え可能な不揮発性メモリを使用しても良い。
【符号の説明】
【０１６４】
１…燃料噴射弁制御装置、３…燃料噴射弁、５…コイル、８…電源ライン、１１…定電流スイッチ、１７…昇圧回路、１９…コンデンサ、２１…放電スイッチ、２５…マイコン
【図１】
2014218981.tif 000005
【図２】
2014218981.tif 000006
【図３】
2014218981.tif 000007
【図４】
2014218981.tif 000008
【図５】
2014218981.tif 000009
【図６】
2014218981.tif 000010
【図７】
2014218981.tif 000011
【図８】
2014218981.tif 000012
【図９】
2014218981.tif 000013
【図１０】
2014218981.tif 000014
【図１１】
2014218981.tif 000015
【図１２】
2014218981.tif 000016
【図１３】
2014218981.tif 000017
【図１４】
2014218981.tif 000018
【図１５】
2014218981.tif 000019
【図１６】
2014218981.tif 000020
【図１７】
2014218981.tif 000021
【図１８】
2014218981.tif 000022