"電磁弁のコイルに供給する電気エネルギーが蓄積されるコンデンサと、直流電源の直流電圧をその直流電圧よりも高い高電圧に昇圧し、その昇圧した高電圧によって前記コンデンサを充電する充電手段と、前記コンデンサから前記コイルへの通電経路を導通遮断するためにその通電経路に設けられたスイッチ手段と、前記コンデンサから前記コイルへの放電開始タイミングを設定する放電開始タイミング設定手段と、前記コンデンサから前記コイルへ放電される放電電流を検出する電流検出手段と、前記放電開始タイミング設定手段により設定された前記放電開始タイミングが到来した時に、前記スイッチ手段をオンさせて前記通電経路を導通させることにより前記コンデンサから前記コイルへの放電を開始させ、その放電開始後、前記電流検出手段により検出された放電電流が予め設定された放電電流検出閾値以上となった場合に、前記スイッチ手段をオフさせて前記通電経路を遮断させることにより前記放電を停止させるスイッチ制御手段と、を備え、前記コンデンサから前記コイルへの放電によって前記電磁弁を作動させるように構成された電磁弁駆動装置において、前記放電開始タイミングで前記スイッチ制御手段により前記コンデンサから前記コイルへの放電が開始されてから該スイッチ制御手段によりその放電が停止されるまでの放電期間に前記コンデンサから前記コイルへ放出されたエネルギーである実放出エネルギーを、その放電期間終了後に算出する実放出エネルギー算出手段と、前記実放出エネルギー算出手段により算出された前記実放出エネルギーと、予め設定された基準エネルギーとの差に基づき、次回以降の前記放電の際に前記実放出エネルギーが前記基準エネルギーに一致するように、当該電磁弁駆動装置において前記実放出エネルギーを決定付ける物理量を設定する物理量設定手段と、を備えていることを特徴とする電磁弁駆動装置。請求項1に記載の電磁弁駆動装置であって、前記物理量設定手段は、前記物理量として前記充電手段における目標電圧を設定するよう構成されており、前記充電手段は、前記物理量設定手段により設定された前記目標電圧に基づき、前記コンデンサの充電電圧がその目標電圧となるように充電を行うことを特徴とする電磁弁駆動装置。請求項1又は請求項2に記載の電磁弁駆動装置であって、前記放電期間の開始前の所定の検出タイミングにて前記コンデンサの充電電圧を検出する充電電圧検出手段と、前記放電期間中に前記コンデンサから前記コイルへ放出された電荷を検出する放出電荷検出手段と、を備え、前記実放出エネルギー算出手段は、前記充電電圧検出手段により検出された充電電圧と前記放出電荷検出手段により検出された電荷に基づいて前記実放出エネルギーを算出することを特徴とする電磁弁駆動装置。請求項3に記載の電磁弁駆動装置であって、前記スイッチ手段のオン後、所定の判定タイミングにて、前記放出電荷検出手段により検出された電荷を取得する電荷取得手段と、前記電荷取得手段により取得された電荷が予め設定された異常判定電荷閾値以上であるか否か判断し、前記異常判定電荷閾値以上ではない場合に当該電磁弁駆動装置が異常である旨の判定を行う第1の異常判定手段と、を備えていることを特徴とする電磁弁駆動装置。請求項1~請求項4の何れか1項に記載の電磁弁駆動装置であって、前記放電期間の開始前の所定の第1検出タイミングにて前記コンデンサの充電電圧を検出する第1検出手段と、前記放電期間の終了後の所定の第2検出タイミングにて前記コンデンサの充電電圧を検出する第2検出手段と、前記第1検出手段により検出された充電電圧と前記第2検出手段により検出された充電電圧との差が予め設定された異常判定電圧閾値以上であるか否か判断し、前記異常判定電圧閾値以上ではない場合に当該電磁弁駆動装置が異常である旨の判定を行う第2の異常判定手段と、を備えていることを特徴とする電磁弁駆動装置。しかし、インジェクタのコイルのインダクタンスには、コイルの温度や個体差等に起因してばらつきが生じる。周知の通り、コイルに流れる電流は印加電圧やインダクタンスに依存する。そのため、インダクタンスが温度や個体差等によってばらつくと、放電用コンデンサからの放電開始から閾値Ioに到達するまでの駆動電流の増加率傾きもばらつきが生じる。駆動電流の増加率がばらつくということは、即ち、放電用コンデンサからコイルへ供給放出されるエネルギーが開弁に必要な値に到達するまでの時間がばらつくことを意味するため、結果としてインジェクタの開弁タイミングにばらつきが生じてしまう。この開弁タイミングのばらつきについて、図5を用いてより具体的に説明する。図5aは、インジェクタ駆動時にコイルに流れる電流の一例を示すものであって、ケースA~ケースCの三種類のケースを示している。いずれのケースにおいても、時刻t0の駆動開始時に放電用コンデンサからコイルへの放電が開始され、これによりコイルに流れる駆動電流は急上昇していく。そして、その駆動電流が所定の放電電流検出閾値Ioに到達したら、放電用コンデンサからの放電は停止され、その後駆動期間が終了するまでは保持電流が流れる。例えばケースBの場合、時刻t3にて駆動電流が放電電流検出閾値Ioに達するため、時刻t0~t3の間に放電用コンデンサからの放電が行われることになる。そして、図5bに示すように、放電電流検出閾値Ioに到達するよりも所定時間前の時刻t2で、放電用コンデンサから放出されたエネルギーがちょうどインジェクタの開弁に最低限必要なエネルギーEoとなり、よって、図5cに示すようにこの時刻t2にてインジェクタが開弁する。一方、コイルのインダクタンスには、上述したように温度ばらつきや個体ばらつきなどがあり、例えばコイルの温度が高いほどそのインダクタンスも大きくなる。そのため、インダクタンスが大きくなればなるほど、駆動電流の増加率が小さくなって、放電用コンデンサからコイルへ放出されるエネルギーが開弁に最低限必要なエネルギーEoに達するまでの時間も長くなる。図5において、ケースCは、ケースBよりも高温であること等によってコイルのインダクタンスが大きく、駆動電流の増加率がケースBよりも小さくなって、放出エネルギーがEoに到達するタイミング即ち開弁タイミングがケースBの時刻t2よりも遅い時刻t3となる場合を示している。逆に、ケースAは、ケースBよりもコイルのインダクタンスが小さく、よって、駆動電流の増加率がケースBよりも大きくなって、放出エネルギーがEoに到達するタイミング開弁タイミングがケースBの時刻t2よりも早い時刻t1となる場合を示している。このように、コイルのインダクタンスが温度ばらつきや個体ばらつき等によってばらつくと、放電開始から放電電流検出閾値Ioに到達するまでの駆動電流の増加率がばらつき、これにより放出エネルギーがEoに到達するタイミングもばらついて、よってインジェクタの開弁タイミングもばらついてしまうのである。そして、インダクタンスのばらつきが大きいほど、開弁タイミングのばらつきも大きくなってしまう。本発明は上記課題に鑑みなされたものであり、電磁弁駆動装置において、電磁弁のコイルのインダクタンスに温度ばらつきや個体ばらつきなどがあっても、そのばらつきの影響を受けることなく一定の開弁タイミングで開弁できるようにすることを目的とする。上記課題を解決するためになされた請求項1に記載の発明は、電磁弁のコイルに供給する電気エネルギーが蓄積されるコンデンサと、直流電源の直流電圧をその直流電圧よりも高い高電圧に昇圧し、その昇圧した高電圧によってコンデンサを充電する充電手段と、コンデンサからコイルへの通電経路を導通遮断するためにその通電経路に設けられたスイッチ手段と、コンデンサからコイルへの放電開始タイミングを設定する放電開始タイミング設定手段と、コンデンサからコイルへ放電される放電電流を検出する電流検出手段と、放電開始タイミング設定手段により設定された放電開始タイミングが到来した時に、スイッチ手段をオンさせて通電経路を導通させることによりコンデンサからコイルへの放電を開始させ、その放電開始後、電流検出手段により検出された放電電流が予め設定された放電電流検出閾値以上となった場合に、スイッチ手段をオフさせて通電経路を遮断させることにより放電を停止させるスイッチ制御手段と、を備え、記コンデンサからコイルへの放電によって電磁弁を作動させるように構成された電磁弁駆動装置であり、更に、実放出エネルギー算出手段と、物理量設定手段とを備えている。実放出エネルギー算出手段は、放電開始タイミングでスイッチ制御手段によりコンデンサからコイルへの放電が開始されてから該スイッチ制御手段によりその放電が停止されるまでの放電期間にコンデンサからコイルへ放出されたエネルギーである実放出エネルギーを、その放電期間終了後に算出する。そして、物理量設定手段は、実放出エネルギー算出手段により算出された実放出エネルギーと、予め設定された基準エネルギーとの差に基づき、次回以降の前記放電の際に実放出エネルギーが基準エネルギーに一致するように、当該電磁弁駆動装置において実放出エネルギーを決定付ける物理量を設定する。実放出エネルギーを決定づける物理量とは、当該電磁弁駆動装置において、その物理量が変動すると実放出エネルギーも変動するようなものであり、例えば、コンデンサからコイルへの通電を行うためのこれらコンデンサ及びコイルを含む放電回路における各種物理量放電開始前のコンデンサの充電電圧や、コンデンサからみたコイル側負荷側のインピーダンスなどが挙げられる。このように構成された本発明の電磁弁駆動装置では、コンデンサからコイルへ放出すべきエネルギーを一定にすべく、そのエネルギーの基準となる基準エネルギーが設定されている。そして、放電期間中に実際に放出された実放出エネルギーがその基準エネルギーと一致しなければ、次回以降の放電では実放出エネルギーが基準エネルギーに一致するように、上記物理量を設定する。そのため、コイルのインダクタンスに温度や個体差等によるばらつきが生じたとしても、実放出エネルギーと基準エネルギーとの差に基づいて上記物理量が設定されることで、そのインダクタンスのばらつきにかかわらず実放出エネルギーを基準エネルギーに一致させることができるため、そのばらつきの影響を受けることなく一定の開弁タイミングで開弁させることができる。物理量設定手段による設定対象の物理量としては、上述したように種々考えられるが、例えば請求項2に記載のように、充電手段における目標電圧とするとよい。即ち、物理量設定手段は、物理量として充電手段における目標電圧を設定するよう構成されている。より具体的には、実放出エネルギーと基準エネルギーとが一致するよう、実放出エネルギーに応じて目標電圧を設定するのである。そして、充電手段は、物理量設定手段により設定された目標電圧に基づき、コンデンサの充電電圧がその目標電圧となるように充電を行う。充電すべき目標電圧の設定は、例えばインピーダンス変換回路等を設けること等によってコンデンサからみたインピーダンスを設定変更すること等に比べて、比較的簡素な構成或いは簡素な処理によって実現することができる。また、実放出エネルギー算出手段による実放出エネルギーの具体的算出方法も種々考えられ、例えば請求項3に記載の構成により実現することができる。即ち、放電期間の開始前の所定の検出タイミングにてコンデンサの充電電圧を検出する充電電圧検出手段と、放電期間中にコンデンサからコイルへ放出された電荷を検出する放出電荷検出手段と、を備えるようにし、実放出エネルギー算出手段は、充電電圧検出手段により検出された充電電圧と放出電荷検出手段により検出された電荷に基づいて実放出エネルギーを算出する。放出電荷検出手段は、例えば、放電電流を検出してそれを積分すること等によって容易に実現することができる。そのため、実放出エネルギーの算出を容易且つ確実に行うことができる。また、上記のように放出電荷検出手段を備えている場合には、それを利用して更に請求項4に記載のように異常判定機能を持たせることができる。即ち、請求項4に記載の電磁弁駆動装置は、スイッチ手段のオン後、所定の判定タイミングにて、放出電荷検出手段により検出された電荷を取得する電荷取得手段と、この電荷取得手段により取得された電荷が予め設定された異常判定電荷閾値以上であるか否か判断し、異常判定電荷閾値以上ではない場合に当該電磁弁駆動装置が異常である旨の判定を行う第1の異常判定手段と、を備えたものである。コンデンサからコイルへの通電経路が正常であれば、スイッチ手段のオン後は、放出電荷検出手段によって電荷が検出されるはずであるが、仮にその通電経路に断線やショート等の何らかの異常が生じてコンデンサからコイルへ正常に電流が流れない状態になっていたとすると、スイッチ手段のオン後も放出電荷検出手段によって電荷が正常に検出されなくなる。そこで、スイッチ手段のオン後、所定の判定タイミングで、放出電荷検出手段による検出電荷が異常判定電荷閾値以上であるか否かを判断することで、通電経路が正常か否かの判定を行うことができる。つまり、実放出エネルギーを算出するために設けられた放出電荷検出手段による検出結果を、スイッチ手段のオフタイミングの設定のためだけでなく、通電経路の異常診断にも併用することができる。また、上記各構成の電磁弁駆動装置は、更に、請求項5に記載のような異常判定機能を持たせるようにしてもよい。即ち、請求項5に記載の電磁弁駆動装置は、放電期間の開始前の所定の第1検出タイミングにてコンデンサの充電電圧を検出する第1検出手段と、放電期間の終了後の所定の第2検出タイミングにてコンデンサの充電電圧を検出する第2検出手段と、第1検出手段により検出された充電電圧と第2検出手段により検出された充電電圧との差が予め設定された異常判定電圧閾値以上であるか否か判断し、異常判定電圧閾値以上ではない場合に当該電磁弁駆動装置が異常である旨の判定を行う第2の異常判定手段と、を備えたものである。コンデンサからコイルへの通電経路が正常であれば、放電期間の前後で多少なりとも充電電圧に差が生じているはずであるが、仮にその通電経路に断線やショート等の何らかの異常が生じてコンデンサからコイルへ正常に電流が流れない状態になっていたとすると、放電期間の前後で充電電圧に差が生じないか或いはその差が正常時よりも小さくなる。そこで、放電期間前後の充電電圧の差が異常判定電圧閾値以上であるか否かを判断することで、通電経路が正常か否かの判定を行うことができ、より付加価値の高い電磁弁駆動装置を提供することができる。以下に、本発明の好適な実施形態を図面に基づいて説明する。まず図1は、本実施形態の燃料噴射制御装置以下、ECUというの構成を表す構成図である。図1に示すように、本実施形態のECU100は、車両に搭載された多気筒この例では4気筒エンジンの各気筒♯1~♯4に燃料を噴射供給する4個のインジェクタ電磁弁101,102,103,104を駆動するものであり、詳しくは、その各インジェクタ101~104のコイル101a,102a,103a,104aへの通電開始タイミング及び通電時間を制御することにより、各気筒♯1~♯4への燃料噴射時期及び燃料噴射量を制御する。尚、本実施形態のエンジンはディーゼルエンジンであって、高圧燃料をコモンレール蓄圧室に蓄圧してこれを各インジェクタから各気筒に噴射するよう構成された、いわゆるコモンレールシステムが構築されており、このコモンレールシステムがECU100によって制御される。コモンレールシステムはよく知られているため、ここではその詳細についての説明及び図示は省略する。また、各インジェクタ101~104は、常閉式の電磁弁により構成されており、コイル101a~104aに通電されると開弁して燃料噴射を行う。また、コイル101a~104aへの通電が遮断されると閉弁して燃料噴射を停止する。ここで、本実施形態では、全4気筒分のインジェクタ101~104を2気筒ずつ2つのグループに分け、気筒♯1,♯3の各インジェクタ101,103を第1グループとして、それらのコイル101a,103aの上流側の一端をECU100の第1コモン端子COM1に接続し、気筒♯2,♯4の各インジェクタ102,104を第2グループとして、それらのコイル102a,104aの上流側の一端をECU100の第2コモン端子COM2に接続している。尚、各グループは、同時に駆動されることがないインジェクタ同士で構成している。各コイル101a~104aの下流側の端部は、ECU100の端子INJ1,INJ2,INJ3,INJ4を介して気筒選択用のトランジスタ以下気筒選択トランジスタというT10,T20,T30,T40の一方の出力端子にそれぞれ接続されている。そして、それら各気筒選択トランジスタT10~T40の他方の出力端子は、インジェクタの各グループ毎に電流検出抵抗R10,R20を介してグランドラインに接続接地されている。このため、気筒♯1,♯3に対応した各気筒選択トランジスタT10,T30を介してインジェクタ101,103のコイル101a,103aに流れる電流が、電流検出抵抗R10に生じる電圧として検出され、気筒♯2,♯4に対応した各気筒選択トランジスタT20,T40を介してインジェクタ102,104のコイル102a,104aに流れる電流が、電流検出抵抗R20に生じる電圧として検出される。尚、この例において、ECU100内にスイッチング素子として設けられているトランジスタは、全てMOSFETである。また、ECU100には、上記各気筒選択トランジスタT10~T40及び各電流検出抵抗R10,R20に加えて、定電流制御用のトランジスタ以下定電流トランジスタというT11,T21と、放電用のトランジスタ以下放電用トランジスタというT12,T22と、4つのダイオードD11,D12,D21,D22と、2つのコンデンサ放電用コンデンサC10,C20と、直流電源としての車載バッテリ10の直流電圧バッテリ電圧VB本例では例えば12Vを昇圧して、そのバッテリ電圧VBよりも高い電圧を生成して各コンデンサC10,C20を充電する昇圧回路DC-DCコンバータ50と、各コンデンサC10,C20の充電電圧を検出する電圧検出回路70と、上記各トランジスタ及び昇圧回路50を制御する制御回路が搭載された駆動用IC120と、CPU、ROM、RAMなどからなる周知のマイコンマイクロコンピュータ130とが備えられている。尚、マイコン130は、その内部にAD変換器アナログ-デジタル変換器20を備えている。マイコン130は、エンジン回転数Ne、アクセル開度ACC、エンジン水温THW、コモンレール内の燃料の圧力であるレール圧Prなど、各種センサにて検出されるエンジンの運転情報に基づいて、各気筒♯1~♯4毎の駆動信号IJT1~IJT4を生成して駆動用IC120に出力する。この駆動信号IJT1~IJT4は、その信号のレベルがハイレベルHレベルの間だけインジェクタ101~104のコイル101a~104aに通電するつまり、インジェクタ101~104を開弁させる、という意味を持っている。そして、駆動用IC120は、マイコン130からの各駆動信号IJT1~IJT4に基づき、各気筒選択トランジスタT10~T40のゲートへ、対応する駆動信号と同じ論理レベルの気筒選択信号TQ1~TQ4を出力する。例えば、気筒♯1に対応した駆動信号IJT1がローレベルLレベルの間は、駆動用IC120は対応する気筒選択トランジスタT10へLレベルの気筒選択信号TQ1を出力してこの気筒選択トランジスタT10をオフさせ、逆にその駆動信号IJT1がHレベルの間は、駆動用IC120は対応する気筒選択トランジスタT10へHレベルの気筒選択信号TQ1を出力してこの気筒選択トランジスタT10をオンさせる。また、駆動用IC120は、マイコン130へ、各グループ毎に個別に、放出電荷モニタ電圧Vmアナログ値及び放電停止タイミング信号Psを出力するが、これら放出電荷モニタ電圧Vm及び放電停止タイミング信号Psの詳細については後で詳述する。尚、図1では、マイコン130と駆動用IC120との間で入出力される各種信号等について、第1グループに対応した4種類の信号等IJT1,IJT3,Vm,Psのみ図示しているが、第2グループについても、具体的な図示は省略したものの、第1グループと同様に上記4種類の信号等が入出力される。一方、昇圧回路50は、インダクタL00と、充電用のトランジスタ以下充電用トランジスタというT00と、この充電用トランジスタT00を駆動する充電制御回路110とを備えている。インダクタL00は、一端がバッテリ電圧VBの供給される電源ラインLpに接続され、他端が充電用トランジスタT00の一方の出力端子ドレインに接続されている。また、充電用トランジスタT00の他方の出力端子ソースとグランドラインとの間には、電流検出用の抵抗R00が接続されている。そして、充電用トランジスタT00のゲート端子には充電制御回路110が接続され、この充電制御回路110の出力に応じて充電用トランジスタT00がオン/オフされる。更に、インダクタL00と充電用トランジスタT00との接続点に、逆流防止用の第1のダイオードD13を介して第1のコンデンサC10の一端正極側端子が接続され、同じくその接続点に、逆流防止用の第2のダイオードD23を介して第2のコンデンサC20の一端正極側端子が接続されている。そして、各コンデンサC10,C20の他端負極側端子は、充電用トランジスタT00のソースと抵抗R00との接続点に接続されている。この昇圧回路50においては、充電用トランジスタT00がオン/オフされると、インダクタL00と充電用トランジスタT00との接続点に、バッテリ電圧VBよりも高いフライバック電圧逆起電圧が発生し、そのフライバック電圧により、各ダイオードD13,D23を通じて各コンデンサC10,C20が充電される。これにより、各コンデンサC10,C20がバッテリ電圧VBよりも高い電圧に充電される。そして、充電制御回路110は、駆動用IC120からの充電許可信号がアクティブレベル例えばハイレベルになると、充電用トランジスタT00をオン/オフさせるが、その際に、各コンデンサC10,C20の正極側端子の電圧各コンデンサC10,C20の充電電圧;以下DC-DC電圧ともいうをモニタして、そのDC-DC電圧が予め設定された目標DC-DC電圧Vt充電目標電圧になるか、上記充電許可信号が非アクティブレベルになると、充電用トランジスタT00をオフのままにして、各コンデンサC10,C20の充電を止める。目標DC-DC電圧Vtは、固定値ではなく、後述するように、マイコン130により各コイル101a~104a毎に個別に演算されてそれぞれマイコン130から入力される。このことは、本実施形態のECU100の最も特徴的構成の1つである。また、充電制御回路110には、図示は省略したものの、マイコン130又は駆動用IC120から、駆動信号IJT1~IJT4又はこれらを間接的に示す信号が入力されており、これにより充電制御回路110は、充電動作を行う毎に次にどのインジェクタのコイルへの放電が行われるのかがわかるように構成されている。そのため、充電制御回路110は、マイコン130から入力されたコイル毎の各目標DC-DC電圧Vtに従い、各コンデンサC10,C20の充電電圧DC-DC電圧が、それぞれ次に放電すべきインジェクタのコイルに対応した目標DC-DC電圧Vtに一致するように、充電を行う。例えば、第1グループにおける次の放電対象が気筒♯1のコイル101aであるならば、充電制御回路110は、第1のコンデンサC10を、その充電電圧がそのコイル101aに対応した目標DC-DC電圧Vtとなるように充電する。充電時における充電用トランジスタT00のオン/オフの回数以下充電動作回数ともいうは、充電対象の各コンデンサC10,C20を上記目標DC-DC電圧に充電するために必要な充電エネルギーに依存し、必要な充電エネルギーが大きいほど充電動作回数も多くなる。そして、充電動作回数が多いほど、充電用トランジスタT00の発熱も大きくなり、延いては昇圧回路50全体の発熱も大きくなる。また、ECU100において、第1の放電用トランジスタT12は、第1のコンデンサC10から第1コモン端子COM1に接続されている第1グループのコイル101a,103aへ放電させるために設けられており、その第1の放電用トランジスタT12がオンされると、第1のコンデンサC10の正極側端子高電圧側の端子が第1コモン端子COM1に接続される。同様に、第2の放電用トランジスタT22は、第2のコンデンサC20から第2コモン端子COM2に接続されている第2グループのコイル102a,104aへ放電させるために設けられており、その第2のトランジスタT22がオンされると、第2のコンデンサC20の正極側端子が第2コモン端子COM2に接続される。また、ECU100において、第1の定電流トランジスタT11は、第1コモン端子COM1に接続された第1グループのコイル101a,103aに一定の電流保持電流を流すために設けられており、気筒♯1に対応した気筒選択トランジスタT10又は気筒♯3に対応した気筒選択トランジスタT30の何れかがオンされている状態で、その第1の定電流トランジスタT11がオンされると、各気筒選択トランジスタT10,T30のうちでオンされている方に接続されているコイル101a又は103aに、電源ラインLpから逆流防止用のダイオードD11を介して電流が流れる。尚、ダイオードD12は、コイル101a、103aに対する定電流制御のための帰還ダイオードであり、各気筒選択トランジスタT10,T30の何れかがオンされている状態で第1の定電流トランジスタT11がオンからオフされた時に、コイル101a,103aに電流を還流させるものである。同様に、第2の定電流トランジスタT21は、第2コモン端子COM2に接続された第2グループのコイル102a,104aに一定の電流保持電流を流すために設けられており、気筒♯2に対応した気筒選択トランジスタT20又は気筒♯4に対応した気筒選択トランジスタT40の何れかがオンされている状態で、その第2の定電流トランジスタT21がオンされると、各気筒選択トランジスタT20,T40のうちでオンされている方に接続されているコイル102a又は104aに、電源ラインLpから逆流防止用のダイオードD21を介して電流が流れる。尚、ダイオードD22は、コイル102a、104aに対する定電流制御のための帰還ダイオードであり、各気筒選択トランジスタT20,T40の何れかがオンされている状態で第2の定電流トランジスタT21がオンからオフされた時に、コイル102a,104aに電流を還流させるものである。尚、各定電流トランジスタT11,T21は、それぞれ駆動用IC120に備えられた定電流制御回路によってオン/オフ制御され、このオン/オフ制御により上記保持電流が流れる。更に、ECU110において、電圧検出回路70は、第1のコンデンサC10の充電電圧DC-DC電圧Vdcが入力され、このDC-DC電圧Vdcを2つの分圧抵抗R41,R42にて分圧して、その分圧値を、第1のコンデンサC10のDC-DC電圧Vdcを示す値としてマイコン130へ入力する。また、電圧検出回路70は、第2のコンデンサC20のDC-DC電圧Vdcについても同様に、このDC-DC電圧Vdcを2つの分圧抵抗R51,R52にて分圧して、その分圧値を、第2のコンデンサC20のDC-DC電圧Vdcを示す値としてマイコン130へ入力する。尚、電圧検出回路70からマイコン130に入力される分圧値は、厳密にはDC-DC電圧Vdcと同値ではないが、DC-DC電圧Vdcを示す値であるため、以下の説明では、説明の便宜上、電圧検出回路70からマイコン130にはDC-DC電圧Vdcが入力されるものとして説明する。そして、駆動用IC120は、第1グループに対応した回路構成要素として、マイコン130からの、気筒♯1及び気筒♯3に対応した各駆動信号IJT1,IJT3がそれぞれ入力されてその両者の論理和が出力されるOR回路31と、第1のコンデンサC10から第1グループの各コイル101a,103aの何れかに放電されて電流が流れている間にその電流を積分することにより、その間に第1のコンデンサC10から放出された放出電荷Qmを示す放出電荷モニタ電圧Vmを演算する積分器33と、電流検出抵抗R10に流れる電流値実際にはその電流値を示す電圧値が入力されると共にOR回路31の出力信号が入力され、両入力信号に応じてHレベル又はLレベルの二値出力を行う放電制御回路35と、この放電制御回路35の出力及びOR回路31の出力が入力されて両者の論理積が出力されるAND回路39と、第1グループに対応した第1の定電流トランジスタT11を制御する定電流制御回路41と、OR回路31の出力信号がHレベルからLレベルに立ち下がる立ち下がりタイミングを検出してその検出時に所定期間だけHレベルの信号積分クリア信号を出力するワンショット回路43と、を備えている。尚、これら第1グループに対応した各種回路等は、第2グループに対しても全く同様に設けられているが、その動作は第1グループに対応したものと基本的に同じである。そのため、駆動用IC120が有する第2グループに対応した各種回路等は図1では図示を省略する。そして、以下の説明では、駆動用IC120については、特に断りのない限り、第1グループに対応した各種回路等について説明する。駆動用IC120が備える積分器33は、オペアンプ53と、入力抵抗R30と、コンデンサC30とを備えた周知の回路構成となっている。即ち、オペアンプ53の反転入力端子-入力端子に入力抵抗R30の一端が接続され、オペアンプ53の反転入力端子と出力端子の間にコンデンサC30が接続されている。また、オペアンプ53の非反転入力端子入力端子には所定の正の積分用基準電圧が入力されている。そして、入力抵抗R30の他端に、積分対象の信号である、電流検出抵抗R10に流れる電流値が、積分入力スイッチ51を介して入力される。尚、積分入力スイッチ51は、AND回路39からの出力信号によってオンオフされる。具体的には、AND回路出力信号がLレベルの間はオフされ、AND回路出力信号がHレベルの間にオンする。また、コンデンサC30の両端には、積分値をクリアリセットするための積分クリアスイッチ55が接続されている。この積分クリアスイッチ55は、ワンショット回路43から入力される積分クリア信号によってオンオフされる。具体的には、積分クリア信号がLレベルの間はオフされ、積分クリア信号がHレベルの間にオンする。このような構成により、積分入力がない積分値がクリアされている初期状態においては、積分器33からの出力である放出電荷モニタ電圧Vmは、オペアンプ53の非反転入力端子に入力されている積分用基準電圧に対応した初期値Vaとなる。これは即ち、第1のコンデンサC10からの放出電荷Qmがゼロであることを意味する。そして、第1グループの各気筒選択トランジスタT10,T30の何れかがオンされると共に第1の放電用トランジスタT12がオンされることにより第1のコンデンサC10から第1グループの何れかのコイルへの放電電荷放出が開始され、これと同時に積分入力スイッチ51がオンされると、電流検出抵抗R10によってその放電電流が検出され、その検出値が積分器33に入力されて積分が開始される。尚、この積分器33による積分が行われるのは、第1グループのコイル101a,103aの通電期間中における、第1の放電用トランジスタT12がオンされて第1のコンデンサC10から第1グループのコイル101a,103aに電流が流れている間、即ち、第1のコンデンサC10から第1グループのコイルへ電気エネルギーが放出電荷が放出されている間である。そのため、この積分器33は、実質的には第1のコンデンサC10から放出された放出電荷Qmを演算するものであり、その放出電荷Qmを示す放出電荷モニタ電圧Vmを出力するように構成されている。また、本実施形態の積分器33は、オペアンプ53の-入力端子に積分対象の信号が入力されて入力端子に所定の正の積分用基準電圧が入力される構成であることから、その積分出力放出電荷モニタ電圧Vmは、積分開始前の初期状態では上記の通り初期値Va正の値であり、積分が開始されるとその初期値Vaから徐々に低下していくこととなる。つまり、積分が進むほど積分値が減少していくような構成の積分器である。勿論、このような構成の積分器を用いるのはあくまでも一例であり、これとは逆に、積分が進むほどその出力値が増加していくような積分器を用いて、同様の機能を発揮する駆動用IC120を構成するようにしても良い。放電制御回路35は、第1のコンデンサC10から第1グループの何れかのコイルへの放電が開始された後にその放電の停止タイミングを決めるためのものである。この放電制御回路35は、第1のコンデンサC10からの放電が開始された後、電流検出抵抗R10から入力される放電電流の検出値が予め設定された放電電流検出閾値Ioに到達したときに、AND回路39への出力信号をLレベルにする。そして、そのLレベルへの変化後、OR回路31から入力される信号OR回路31の出力信号がLレベルとなったときに、AND回路39への出力信号をLレベルからHレベルに切り替える。また、放電制御回路35からAND回路39への出力信号は、第1のコンデンサC10からの放電が停止されたことをマイコン130に伝えるための、放電停止タイミング信号Psとして、マイコン130にも出力される。次に、駆動用IC120の動作について、図2を用いてより具体的に説明する。図2は、一例として、第1グループの気筒♯1への燃料噴射が行われる際の動作例を示すものである。マイコン130は、各気筒♯1~♯4の各コイルへの通電開始タイミング放電開始タイミング及び通電時間を制御することにより、各インジェクタ101~104を所定の順序でそれぞれ所定期間上記通電時間開弁させる。そのため、気筒♯1のインジェクタを開弁させるタイミングが到来すると、マイコン130は、その気筒♯1に対応した駆動信号IJT1をHレベルにする。気筒♯1,♯3に対応した駆動信号IJT1,IJT3がいずれもLレベルのとき、即ち気筒♯1,♯3への燃料噴射が行われていない間は図2の時刻t2よりも前、OR回路31の出力はLレベルであり、よってAND回路39の出力はLレベル、ワンショット回路43の出力はLレベル、積分入力スイッチ51及び積分クリアスイッチ55はオフである。また、積分器33への入力即ち電流検出抵抗R10の検出値は0であるため、積分器33の出力放出電荷モニタ電圧Vmは初期値Vaであり、放電制御回路35の出力はHレベルである。また、AND回路39の出力がLレベルであるため、第1の放電用トランジスタT12はオフされている。また、駆動用IC120は、第1コンデンサC10又は第2コンデンサC20の何れかからの放電が行われる毎に、その放電停止後、次の放電が開始されるまでの間に、昇圧回路50への充電許可信号をアクティブレベルとして、昇圧回路50による各コンデンサC10,C20の充電を行わせ、各コンデンサC10,C20を、それぞれ次の放電対象のコイルに対応した目標DC-DC電圧Vtとなるように充電する。そのため、気筒♯1への通電が開始される前の、各コンデンサC10,C20が目標DC-DC電圧Vtに充電された状態では、図2の最下段に示すように、充電用トランジスタT00のオン/オフ動作充電動作は停止されている。その他、図2には、動作波形として、マイコン130から昇圧回路50へ入力される目標DC-DC電圧Vt気筒♯1に対応した目標値、も図示されているが、これについては後で説明する。そして、マイコン130からの、気筒♯1に対応した駆動信号IJT1がHレベルになると時刻t2、駆動用IC120は、上述したように気筒♯1に対応した気筒選択信号TQ1をHレベルにすることで、対応する気筒選択トランジスタT10をオンさせる。また、駆動信号IJT1がHレベルになったことで、OR回路31の出力もLレベルからHレベルに立ち上がり、そのHレベル信号がAND回路39の一方の入力端子に入力される。このとき、AND回路39の他方の入力端子には放電制御回路35からのHレベル信号が入力されているため、AND回路39の出力はHレベルとなり、第1の放電用トランジスタT12がオンすると共に、積分入力スイッチ51もオンする。これにより、第1のコンデンサC10から気筒♯1のインジェクタ101のコイル101aへの放電が開始される。そして、その放電開始によってコイル101aに流れる電流が電流検出抵抗R10により検出され、その検出値が、放電制御回路35に入力されると共に積分器33において積分される。第1のコンデンサC10からの放電が開始されると、その放電電流、即ちコイル101aに流れる電流インジェクタ駆動電流は図2の最上段に示すように上昇していくピーク電流。これに伴い、積分器33への入力値も上昇していき、よって積分器33の出力である放出電荷モニタ電圧Vm放出電荷Qmは、積分が進むにつれて減少していく。時刻t2における放電開始後、放電電流が放電電流検出閾値Ioに到達すると時刻t3、放電制御回路35の出力がLレベルとなり、これによりAND回路39の出力もLレベルとなる。そのため、第1の放電用トランジスタT12がオフされて第1のコンデンサC10からの放電が停止されると共に、積分入力スイッチ51がオフされる。時刻t3の時点、即ち放電電流が放電電流検出閾値Ioに到達した時点で、気筒♯1のインジェクタ101のコイル101aには、開弁のために必要なエネルギーが供給されている。そのため、気筒♯1のインジェクタ101は、この時刻t3までには確実に開弁されることとなる。第1のコンデンサC10からの放電が停止された後は、定電流制御回路41が定電流トランジスタT11をオン/オフ制御することで、コイル101aへ保持電流を通電させて開弁状態を保持させる。また、第1のコンデンサC10からの放電が停止された後は、駆動用IC120から充電制御回路110への充電許可信号がアクティブレベルとなることで、図2の最下段に示すように、昇圧回路50による昇圧動作充電動作、即ち充電用トランジスタT00のオン/オフ動作が開始され、第1のコンデンサC10が目標DC-DC電圧Vtに充電されるまでその充電動作が継続される。尚、充電許可信号は、少なくとも、放電用の各コンデンサC10,C20の何れかから放電されている放電期間は非アクティブレベルとなって充電が禁止される。そして、時刻t4にて、所定の燃料噴射時間コイル101aへの通電期間が経過したことによってマイコン130からの駆動信号IJT1がLレベルになると、駆動用IC120は、定電流制御回路41の動作を停止させると共に気筒♯1に対応した気筒選択信号TQ1をLレベルにすることで、対応する気筒選択トランジスタT10をオフさせ、コイル101aへの通電を停止させる。またこの時刻t4では、駆動信号IJT1がLレベルになることで、OR回路31の出力がHレベルからLレベルに転じるため、ワンショット回路43の出力が一定期間Hレベルとなる。そのため、そのワンショット回路43の出力がHレベルとなる一定期間、積分クリアスイッチ55がオンされて、積分器33の積分値放出電荷モニタ電圧Vmが初期値Vaにクリアされる。また、この時刻t4にて、OR回路31の出力がHレベルからLレベルになることで放電制御回路35の出力もHレベルに戻る。このようにして、気筒♯1のインジェクタ101による一回の燃料噴射が行われるのである。他の各気筒♯2~♯4の各インジェクタ101の動作についても同様である。また、本実施形態においても、特許文献1に記載されている技術と同様、多段噴射や多重噴射が行われるが、いずれにおいても、個々の噴射一回の噴射の動作内容は、図2に示したものと同様である。ところで、上記のように構成された本実施形態のECU100においては、図5を用いて説明したように、コイルのインダクタンスにばらつきが生じるとコンデンサからの放電時の放電電流の傾きにもばらつきが生じ、結果として開弁タイミングにばらつきが生じてしまう。そこで本実施形態では、コイルのインダクタンスにばらつきがあっても常に一定の傾きで電流が上昇していくようにし、これによりインダクタンスのばらつきにかかわらず開弁タイミングを常に一定となるようにしている。尚、本実施形態において、コンデンサからの放電電流の傾きについて一定とは、ある一定の傾きで直線的に電流が上昇することを意味するものではなく、放電開始から放電停止までの電流の上昇傾向放電開始後の過渡的な電流の上昇過程が、全体として、インダクタンスの値が異なっても同等である、という意味である。つまり、例えば図5aを用いて説明すると、インダクタンスのばらつきにかかわらず常に同じ傾向例えばケースBの上昇傾向で電流が上昇する、ということである。インダクタンスのばらつきに関わらず傾きを一定に制御できれば、放電開始からその放電エネルギーが開弁に最低限必要なエネルギーEoに到達するまでの時間も一定にすることができる。図5aを用いて説明すれば、インダクタンスのばらつきにかかわらず電流の傾きを例えばケースBの傾きに一定制御できれば、インダクタンスのばらつきにかかわらず常に同じ開弁タイミング時刻t2で開弁させることができる。では具体的にどのようにして電流の傾きを一定に制御するのか、本発明者は次のように考えた。一般に、コイルのインダクタンスをL、コイルに印加される電圧をVdc一定とすると、通電開始からT秒後にコイルに流れる電流Iは次式1で表される。I=Vdc/LT1上記式1から明らかなように、電流Iの傾きはVdc/Lである。そのため、インダクタンスLのばらつきにかかわらずこの電流Iの傾きを一定にするためには、インダクタンスLのばらつきに応じて電圧Vdcを変化させればよいということになる。例えばインダクタンスLがある基準値設計値の1.1倍に増加したら、電圧Vdcも1.1倍に増加させれば、結果として電流Iの傾きVdc/Lには変化は生じないことになる。そこで、コイルのインダクタンスのばらつきにかかわらず電流の傾きを一定に制御するために、コイル毎にDC-DC電圧Vdcを制御、即ち昇圧回路の目標DC-DC電圧Vtをコイル毎に制御するようにした。つまり、インダクタンスのばらつきによって生じる電流傾きの変動を、DC-DC電圧Vdcでキャンセルするのである。即ち、本実施形態では、放出電荷Qmとその電荷放出時のDC-DC電圧Vdc本例では放出開始前の値をモニタすることで実際に放出されたエネルギーである実放出エネルギーEnコイルへの投入エネルギーを算出し、その算出した実放出エネルギーEnと開弁に必要な所定の基準エネルギーErとの差分に基づいて昇圧回路の目標DC-DC電圧Vtをフィードバック補正することで、電流の傾き、延いては放出エネルギーの量と傾きを一定にするようにしている。次に、その目標DC-DC電圧Vtのフィードバック補正の具体的方法について、図3のフローチャートを用いて説明する。図3に示す目標DC-DC電圧設定処理は、マイコン130が実行するものであり、より具体的には、各コイル101a~104aのそれぞれの通電期間中における、コンデンサからの放電開始タイミングよりも所定期間前のタイミングにて実行開始される。例えば第1グループの気筒♯1のコイル101aへの通電が行われる際には、図2に示すように、その通電開始放電開始タイミングである時刻t2よりも所定時間前の時刻t1にて、図3の目標DC-DC電圧設定処理が開始される。尚、この目標DC-DC電圧設定処理では、後述するようにまず放電開始直前のDC-DC電圧Vdcを取得する必要があるため、この目標DC-DC電圧設定処理の実行開始タイミング時刻t1は、少なくとも昇圧回路50によるコンデンサへの充電が完了した後であって、且つ放電開始タイミングにできるだけ近いタイミング放電開始タイミングと同時でも可に設定するのが好ましい。以下、図3の目標DC-DC電圧設定処理について、気筒♯1のコイル101aへの通電の際に実行される場合を想定して、図2を用いつつ説明する。気筒♯1のコイル101aへの通電開始前の時刻t1にて、マイコン130がこの目標DC-DC電圧設定処理を開始すると、まずS110にて、電圧検出回路70から、第1のコンデンサC10に充電されている実際のDC-DC電圧Vdcを読み込む。つまり、まずは放電開始直前のDC-DC電圧Vdcを読み込むのである。既述の通り、第1のコンデンサC10は、放電開始までには昇圧回路50によって目標DC-DC電圧Vtに充電されているはずである。そのため、このS110で読み込まれるDC-DC電圧Vdcは、目標DC-DC電圧Vtと同値となっているはずである。図2では、一例として、気筒♯1のコイル101aに対応した目標DC-DC電圧VtがVt1に設定されている例が示されている。その後、時刻t2にて第1のコンデンサC30からの放電が開始されるため、続くS120では、その放電が停止したか否かを判断する。この放電停止の判断は、駆動用IC120から入力される放電停止タイミング信号Psに基づいて行う。そして、放電が停止するとS120:YES。時刻t3。、S130にて、放電開始からの放出電荷Qmを読み込む。この放出電荷Qm読み込みは、具体的には、駆動用IC120からの放出電荷モニタ電圧Vmを読み込むことにより行う。そして、S140にて、S110で読み込んだ放電開始直前の実際のDC-DC電圧Vdcと、S130で読み込んだ実際の放出電荷Qmを用いて、次式2により、第1のコンデンサC10から実際に放出された実放出エネルギーEnを演算する。En=QmVdc/22尚、第1のコンデンサC10の充電電圧DC-DC電圧Vdcは、放電開始後、放電が進むにつれて減少していくのであるが、本実施形態では放電用の各コンデンサC10,C20はいずれも大容量のアルミ電解コンデンサを用いており、1回の放電によるDC-DC電圧Vdcの減少量は小さい。そのため、本実施形態における実放出エネルギーEnの算出は、上記式2のように、放電開始から終了までDC-DC電圧Vdcが一定であるものと仮定放電による充電電圧降下分を無視して算出している。但し、放電前後のDC-DC電圧Vdcの減少量が小さくはなくても、本実施形態における、実放出エネルギーEnを基準エネルギーErに一致させる延いては開弁タイミングを一定に制御するという目的達成のためには、放電開始時のDC-DC電圧Vdcの値が放電期間中も維持されるものと仮定して上記式1、2を用いるようにしても何ら問題ない。そして、S150にて、S140で演算された実放出エネルギーEnが基準エネルギーErより大きいか否か判断する。そして、En>Erでない場合、即ち実放出エネルギーEnが基準エネルギーEr以下ならばS150:NO、更にS180にて、実放出エネルギーEnが基準エネルギーErより小さいか否かを判断する。尚、基準エネルギーErは、本実施形態では、図5bに例示しているように、開弁に最低限必要なエネルギーEoよりも所定量大きい値、具体的にはケースBにおいて放電電流が放電電流検出閾値Ioに到達したとき時刻t3の放出エネルギーに設定されている。ここで、En>Erならば、過剰にエネルギーが供給されたということ、即ち、放電電流の傾きが、設計上の基準傾き放電電流検出閾値Ioに到達したときに放出エネルギーが基準エネルギーErに到達するような理想の傾き。例えば図5のケースBの傾き。よりも小さく、よって放電電流が放電電流検出閾値Ioに到達するまでの時間が長くなったということである。そして、放電電流の傾きが基準傾きよりも小さいということは、その分、第1のコンデンサC10からの放出エネルギーが開弁のために最低限必要なエネルギーEoに到達するまでの時間も上記基準傾きの場合よりも長くなってその分開弁タイミングが遅くなったということである。図5を用いて説明すれば、En>Erということは、ケースBよりも電流の傾きが小さくなってケースCのような放電特性となり、よって、放出エネルギーが開弁に最低限必要なエネルギーEoに到達するタイミング開弁タイミングがケースBの時刻t2よりも遅くなったということである。そのため、この場合は、次回以降の開弁動作では実放出エネルギーEnが基準エネルギーErとなるよう、電流傾きをより大きくする必要がある。そこで本実施形態では、En>Erの場合はS150:YES、S160~S170にて、目標DC-DC電圧Vtを現在の設定値よりも増加量Vtuだけ増加させるようにしている。目標DC-DC電圧Vtを増加させれば、放電開始前の第1のコンデンサC10の充電電圧DC-DC電圧Vdcも増加するため、これにより放電電流の傾きを大きくすることができる。逆に、En<Erならば、エネルギーの供給量が設計上の値よりも少なかったということ、即ち、放電電流の傾きが、設計上の基準傾き本例では図5のケースBの傾きよりも大きく、よって放電電流が放電電流検出閾値Ioに到達するまでの時間が短くなったということである。そして、放電電流の傾きが基準傾きよりも大きいということは、その分、第1のコンデンサC10からの放出エネルギーが開弁のために最低限必要なエネルギーEoに到達するまでの時間も上記基準傾きの場合よりも短くなってその分開弁タイミングが早くなったということである。図5を用いて説明すれば、En<Erということは、ケースBよりも電流の傾きが大きくなってケースAのような放電特性となり、よって、放出エネルギーが開弁に最低限必要なエネルギーEoに到達するタイミング開弁タイミングがケースBの時刻t2よりも早くなったということである。そのため、この場合は、次回以降の開弁動作では実放出エネルギーEnが基準エネルギーErとなるよう、電流傾きをより小さくする必要がある。そこで本実施形態では、En<Erの場合はS180:YES、S190~S200にて、目標DC-DC電圧Vtを現在の設定値よりも減少量Vtdだけ減少させるようにしている。目標DC-DC電圧Vtを減少させれば、放電開始前の第1のコンデンサC10の充電電圧DC-DC電圧Vdcも減少するため、これにより放電電流の傾きを小さくすることができる。尚、En=ErであったならばS150,S180いずれもNO、エネルギーの供給量が設計上の量と同じになったということ、即ち放電電流の傾きが設計上の基準傾き本例では図5のケースBの傾きと同じであったということである。そのため、この場合は目標DC-DC電圧Vtを設定変更する必要はないため、この目標DC-DC電圧設定処理を終了する。次に、S150で実放出エネルギーEnが基準エネルギーErよりも大きいと判断された場合に実行される、目標DC-DC電圧Vtを増加させるためのS160~S170の処理について説明する。S160では、まず、S140で演算した実放出エネルギーEnと、放電停止直前に実際に流れていた電流の値である放電電流検出閾値Ioから、実際のインダクタンスの値を推定する。具体的には、推定すべきインダクタンスを実推定インダクタンスLnとして、この実推定インダクタンスLnを、コイルのエネルギーに関する周知の公式E=LI2/2を利用して、次式3により求める。Ln=2En/Io23次に、この実推定インダクタンスLnと、設計上の理想のインダクタンスである理想インダクタンスLrと、設計上の理想のDC-DC電圧である理想DC-DC電圧Vdcoと、S110で読み取った実際のDC-DC電圧Vdcとに基づいて、次式4により、現在の目標DC-DC電圧Vtから増加させるべき増加量Vtuを演算する。Vtu=|VdcoLn/Lr-Vdc|4尚、理想DC-DC電圧Vdcoは、インダクタンスが理想インダクタンスLrである場合にDC-DC電圧をその理想DC-DC電圧Vdcoとすれば放電電流の傾きが設計上の基準傾きとなる、設計上の基準となる理想のDC-DC電圧である。上記式4は、本来はDC-DC電圧が理想DC-DC電圧Vdcoで且つインダクタンスが理想インダクタンスLrであるべきところ、実際には温度ばらつきや個体ばらつき等によってインダクタンスが理想インダクタンスLrとは異なる値Lnになっているという推定のもと、その実推定インダクタンスLnに対してDC-DC電圧をどのような値に設定すればよいか、という考えに基づくものである。そして、S170にて、目標DC-DC電圧Vtを、現在設定されている値よりも上記Vtuだけ増加した値に再設定し、その再設定後の新たな目標DC-DC電圧Vtを昇圧回路50へ詳しくは充電制御回路110へ出力する。これにより、充電制御回路110は、以後、気筒♯1のコイル101aへの放電開始前に行う第1のコンデンサC10の充電動作においては、第1のコンデンサC10を、その新たな目標DC-DC電圧Vtとなるように充電する。次に、S180で実放出エネルギーEnが基準エネルギーErよりも小さいと判断された場合に実行される、目標DC-DC電圧Vtを減少させるためのS190~S200の処理について説明する。S190の処理は、基本的にはS160の処理と同じであり、まず、上記式3にて、実放出エネルギーEn及び放電電流検出閾値Ioから推定される実推定インダクタンスLnを求める。そして、上記式4と同様の演算、即ち次式5にて、現在の目標DC-DC電圧Vtから減少させるべき減少量Vtdを演算する。Vtd=|VdcoLn/Lr-Vdc|5そして、S200にて、現在設定されている目標DC-DC電圧Vtからその減少量Vtdを減算することで、目標DC-DC電圧Vtを、現在設定されている値よりもVtdだけ減少した値に再設定する。そして、その再設定後の新たな目標DC-DC電圧Vtを昇圧回路50へ詳しくは充電制御回路110へ出力する。図2では、一例として、En>Erであった即ち電流傾きが小さかったことによって目標DC-DC電圧VtがVt1からそれよりも高いVtuだけ高いVt2に再設定された例が示されている。尚、他の気筒♯2~♯4についても同様であり、例えば気筒♯2のコイル102aへの通電が行われる際にも、その気筒♯2のコイル102aに対応した目標DC-DC電圧Vtについて、図3の目標DC-DC電圧設定処理を実行して、その目標DC-DC電圧Vtの再設定増加、減少、又は現状維持を行う。これにより、次にまた気筒♯2のコイル102aへの放電が行われる際には、充電制御回路110は、その放電開始前までに第2のコンデンサC20をその再設定後の目標DC-DC電圧Vtとなるように充電する。更に、本実施形態のマイコン130は、電圧検出回路70から各コンデンサC10,C20の実際のDC-DC電圧Vdcを取得すると共に、駆動用IC120から放出電荷モニタ電圧Vmを取得し、これらに基づいて、各コイル101a~104aの通電経路の異常判定を行う。具体的には、図3の目標DC-DC電圧設定処理と同様、各コイル101a~104aのそれぞれの通電期間中における、コンデンサからの放電開始タイミングよりも所定期間前のタイミング例えば気筒♯1のコイル101aへの通電の際には図2に示す時刻t1にて、図4に示す異常判定処理の実行を開始する。そこで、図4の異常判定処理について、以下、気筒♯1のコイル101aへの通電の際に実行される場合を想定して、図2を適宜用いつつ説明する。気筒♯1のコイル101aへの通電開始前の時刻t1にて、マイコン130がこの異常判定処理を開始すると、まずS310にて、電圧検出回路70から、第1のコンデンサC10に充電されている実際のDC-DC電圧Vdcを読み込み、その読み込んだ値をVdcaとする。その後、時刻t2にて放電が開始されるがS320、その放電開始後、所定時間が経過したか否かを判断するS330。ここで判断する所定時間は、通電経路が正常であるならば第1のコンデンサC10からの放電が完了して保持電流の通電期間に入っているはずの時間であり、本例では、図2に示すように、放電が停止される時刻t3よりも後の時刻t31である。尚、この所定時間は、放電停止からの経過時間ができる限り短くなるように設定するのが好ましい。放電開始後、所定時間が経過すると即ち時刻t31になるとS330:YES、S340にて、再び電圧検出回路70から第1のコンデンサC10に充電されている実際のDC-DC電圧Vdcを読み込み、その読み込んだ値をVdcbとする。更に、S350にて、放電開始からの放出電荷Qmをモニタする。この放出電荷Qmのモニタは、具体的には、駆動用IC120からの放出電荷モニタ電圧Vmを読み込むことにより行う。そして、S360にて、放電開始前時刻t1に読み込んだDC-DC電圧Vdcaと放電停止後時刻t31に読み込んだDC-DC電圧Vdcbとの差である放電前後電圧差が所定の電圧差分閾値Vrより大きいか否かを判断する。この電圧差分閾値Vrは、通電経路が正常であって第1のコンデンサC10からの放電が正常に行われたならば放電前後電圧差が少なくともこの電圧差分閾値Vrよりは大きくなるような値であり、マイコン130内に予め設定されているものである。そのため、S360にて放電前後電圧差Vdca-Vdcbが電圧差分閾値Vrより大きい場合は、通電経路が正常であるものと仮判断して、さらにS370に進む。一方、S360にて放電前後電圧差が電圧差分閾値Vrより大きいと判断されなかった場合は、通電経路に何らかの異常が生じているものと判断し、S380に進んで例えば警報出力やダイアグ記録などの所定の第1異常時処理を行って、S370に移行する。S370では、S350で読み込んだ放出電荷モニタ電圧Vmが予め設定した異常判定閾値Vx以下であるか否か、即ち、放出電荷Qmが所定の閾値Qx以上であるか否かを判断する。この異常判定閾値Vxは、図2に示すように、積分器33の初期値Vaよりは小さく、且つ正常に放電が行われた場合の放電停止時における放出電荷モニタ電圧Vmよりは大きい値である。気筒♯1のコイル101aにおいて、その通電経路が正常であれば、通電開始後即ち第1のコンデンサC10からの放電開始後、電流検出抵抗R10に電流が流れて、その電流が積分器33によって積分されるため、その出力値である放出電荷モニタ電圧Vmは図2に示すように徐々に低下していって異常判定閾値Vxよりもさらに低くなるはずである。しかし、通電経路に断線やショート等の異常が生じていて、第1の放電用トランジスタT12及び気筒選択トランジスタT10が共にオンしても電流検出抵抗R10で正常な電流が検出されない状態になっていると、放出電荷モニタ電圧Vmは、初期値Vaから変化しないか或いは低下するとしても正常な傾きでは低下しないおそれがある。そこでマイコン130は、通電経路が正常であれば判定タイミング時刻t31までには必ず到達するような異常判定閾値Vxを適宜設定し、放出電荷モニタ電圧Vmがこの異常判定閾値Vx以下になるか否かをもって、通電経路の異常の有無を判定する。つまり、本実施形態では、上述した放電前後電圧差に基づく通電経路の異常診断S360と、放出電荷モニタ電圧Vmに基づく通電経路の異常診断S370との2種類の異常診断を行うようにしている。S370の処理において、放出電荷モニタ電圧Vmが異常判定閾値Vx以下ならば即ち、放出電荷Qmが所定の閾値Qx以上ならばS370:YES、通電経路は正常であるものとして、この異常判定処理を終了する。一方、放出電荷モニタ電圧Vmが異常判定閾値Vxより大きい状態ならば即ち、放出電荷Qmが所定の閾値Qxに到達していないならばS370:NO、通電経路に何らかの異常が生じているものと判断して、S390に進み、例えば警報出力やダイアグ記録などの所定の第2異常時処理を行う。以上説明したように、本実施形態のECU100では、放電用の各コンデンサC10,C11の充電電圧の目標値、即ち目標DC-DC電圧Vtを、放電対象の各コイル101a~104a毎に個別に、実放出エネルギーEnに基づいて可変設定するようにしている。具体的には、放出電荷QmとDC-DC電圧Vdcをモニタし、これらをもとに実際に放出された実放出エネルギーEn電磁弁コイルへの投入エネルギーを算出し、基準となる基準エネルギーErとの差分に基づき、この差分が0となるように即ち、次回以降の放電では実放出エネルギーEnが基準エネルギーErに一致するように、目標DC-DC電圧Vtをフィードバック補正する。このような構成により、コイルのインダクタンスに温度や個体差等によるばらつきが生じたとしても、そのインダクタンスのばらつきにかかわらず実放出エネルギーEnを基準エネルギーErに一致させることができ、これにより放出エネルギーの量と傾きを一定にすることができるため、そのばらつきの影響を受けることなく一定の開弁タイミングでインジェクタを開弁させることができる。尚、インダクタンスがばらつくことによって放出エネルギーがばらつくと、放出エネルギーが過剰になるおそれがある。そして、放出エネルギーが過剰になると、昇圧回路50の充電動作充電用トランジスタT00のオン/オフ回数が増大して発熱量が増大し、燃料噴射頻度に制約を受けるなど、発熱量増大に起因する各種問題が生じるおそれがある。これに対し、本実施形態では、実放出エネルギーEnが基準エネルギーErに一致するように制御しているため、基準エネルギーErを適宜設定することで、過剰なエネルギーの放出の抑制をも実現している。そのため、発熱量が大きいことにより生じる各種の制約の発生を抑えることができ、インジェクタの作動頻度を向上することが可能となる。更に、本実施形態では、放電期間前後のDC-DC電圧Vdcの差や放出電荷モニタ電圧Vmを利用して図4に示した異常判定処理を実行することにより、通電経路の異常の有無を判断するようにしている。そのため、回路規模の増大を抑えつつより高性能なECU100の実現が可能となる。尚、本実施形態において、昇圧回路50は本発明の充電手段に相当し、各放電用トランジスタT12,T22は本発明のスイッチ手段に相当し、マイコン130は本発明の放電開始タイミング設定手段及び物理量設定手段に相当し、駆動用IC120は本発明のスイッチ制御手段に相当し、各電流検出抵抗R10,R20は本発明の電流検出手段に相当し、図2における時刻t1は本発明の検出タイミング及び第1検出タイミングに相当し、図2における時刻t31は本発明の判定タイミング及び第2検出タイミングに相当する。また、図3の目標DC-DC電圧設定処理において、S110の処理は本発明の充電電圧検出が実行する処理に相当し、S130の処理は本発明の放出電荷検出手段が実行する処理に相当し、S140の処理は本発明の実放出エネルギー算出手段が実行する処理に相当し、S150~S200の処理は本発明の物理量設定手段が実行する処理に相当する。また、図4の異常判定処理において、S310の処理は本発明の充電電圧検出手段及び第1検出手段が実行する処理に相当し、S340の処理は本発明の第2検出手段が実行する処理に相当し、S350の処理は本発明の電荷取得手段が実行する処理に相当し、S380の処理は本発明の第2の異常判定手段が実行する処理に相当し、S390の処理は本発明の第1の異常判定手段が実行する処理に相当し、S360で用いる電圧差分閾値Vrは本発明の異常判定電圧閾値に相当し、S370で用いる異常判定閾値Vxが示す電荷閾値Qxは本発明の異常判定電荷閾値に相当する。[変形例]以上、本発明の実施の形態について説明したが、本発明の実施の形態は、上記実施形態に何ら限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採り得ることはいうまでもない。例えば、上記実施形態では、実放出エネルギーEnが基準エネルギーErとなるように目標DC-DC電圧Vtを設定したが、実放出エネルギーEnがどのような値になるように制御するか、即ち基準エネルギーErをどのような値に設定するかについては、少なくとも開弁に最低限必要なエネルギーEo以上の範囲において、適宜決めることができる。そのため、例えばEr=Eoと設定してもよい。また、上記実施形態では、目標DC-DC電圧Vtを可変設定する具体的方法として、実放出エネルギーEn及び放電電流検出閾値Ioから実推定インダクタンスLnを推定し式3、その推定した実推定インダクタンスLnを用いて目標DC-DC電圧Vtの増加量Vtu又は減少量Vtdを求める方法式4又は式5を示したが、このような方法はあくまでも一例であり、実放出エネルギーEnを基準エネルギーErに一致させるために必要な目標DC-DC電圧Vtの増加量或いは減少量を適切に得ることができる限り、その具体的方法は特に限定されるものではない。また、上記実施形態では、実放出エネルギーEnを基準エネルギーErに一致させるための具体的手法として、目標DC-DC電圧Vtを可変設定するようにしたが、このように目標DC-DC電圧Vtを可変設定することは必須ではなく、実放出エネルギーEnを決定づける他の物理量例えばコンデンサからコイル側を見た回路全体のインピーダンスを可変設定する方法を採用することもできる。また、上記実施形態では、常閉式の電磁弁に対して本発明を適用した例を挙げたが、本発明は、常開式であってコイルへの通電によって閉弁するような構成の電磁弁に対しても適用できる。"