電力変換部と、前記電力変換部と電気的に接続される電流検出部と、前記電力変換部、および前記電流検出部と電気的に接続され、前記電流検出部で検出される電流Iに応じて、前記電力変換部を制御する制御部と、を備え、前記電流検出部は、前記電力変換部と電気的に接続されるシャント抵抗器と、前記シャント抵抗器の両端に、それぞれ連動してオンオフする第1スイッチを介して電気的に接続されるとともに、前記制御部に電気的に接続される差動増幅回路と、前記差動増幅回路に電気的に接続され、オフセット電圧Voを出力するオフセット電圧源と、前記第1スイッチと前記差動増幅回路との間の、それぞれの接続点間に電気的に接続される第2スイッチと、前記オフセット電圧源が接続されていない側の前記シャント抵抗器の端子に電気的に接続される前記第1スイッチと前記差動増幅回路との間に、第3スイッチを介して電気的に接続され、フルスケール電圧Vfを出力するフルスケール電圧源と、前記オフセット電圧源と前記フルスケール電圧源とに電気的に接続され、基準電圧Vrを供給する基準電圧源と、を有するとともに、前記第1スイッチ、第2スイッチ、および第3スイッチが、それぞれ前記制御部に電気的に接続される構成を有し、前記制御部は、所定タイミングで前記第1スイッチと前記第3スイッチをオフにし、前記第2スイッチをオンにした際の前記差動増幅回路の出力に基づいて、前記電流検出部で検出される電流Iを補正するためのゼロ点電流Ioを求めて更新した後、前記第2スイッチをオフにし、前記第3スイッチをオンにした際の前記差動増幅回路の出力と前記ゼロ点電流Ioとに基づいて、前記電流検出部で検出される電流Iを補正するための感度Kを求めて更新し、前記第3スイッチをオフにし、前記第1スイッチをオンにする、動作を繰り返すようにした電源装置。前記制御部は、前記ゼロ点電流Io、および前記感度Kを求める際の前記差動増幅回路の出力が電流既定範囲を超える場合は、前記電流検出部が異常であると判断し、前記第1スイッチをオフのままとするようにした請求項1に記載の電源装置。前記制御部は、前回更新した前回ゼロ点電流Iopと、今回更新した前記ゼロ点電流Ioとのゼロ点電流変化度ΔIo、および、前回更新した前回感度Kpと、今回更新した前記感度Kとの感度変化度ΔKの少なくとも一方に基づいて、前記所定タイミングの間隔Δtを変更するようにした請求項1に記載の電源装置。前記基準電圧源は、前記基準電圧Vrを前記制御部により変更できる構成を有し、前記制御部は、前記基準電圧Vrを検出し、所定基準電圧Vroになるように前記基準電圧源を制御するようにした請求項1に記載の電源装置。上記した図4の直流電力変換システムによると、確かに電源101から供給される電力が所定値以下になるように蓄電池125の充放電が制御されるので、蓄電池125に充電される回生電力を再利用でき、電源101から見た負荷平準化制御も可能となる。このようにエレベータ装置に対する直流電力変換システムであれば、比較的安定した環境で用いられるため、電流センサ127の外部環境変化による変動は少ない。しかし、車両の回生電力を蓄電部に回収し、再利用するための電源装置として用いると、100Aオーダーの大電流が流れるので、フルスケールの大きな電流センサ構成とする必要がある。その一方で、前記蓄電部が満充電に至ったり、放電し終わると、過充電や過放電を避けるために、前記蓄電部の電圧を維持するように制御する必要がある。そのためには、理想的には電源装置に流れる電流が0Aになるような制御が必須である。従って、実質的に0Aの制御を可能とするために±1A程度フルスケールの±1程度の微小な電流を検出しなければならない。ゆえに、前記電源装置では大電流まで高精度な電流検出が必要となるが、フルスケールが大きいと微小な電流変化の検出に対しては相対的に感度が低下する。その結果、図4の直流電力変換システムを車両に適用すると、元々、比較的安定した環境で用いられるよう構成された電流センサ127においては、車両における環境変化特に環境温度変化や振動により、その出力が変動し精度が低下する可能性があるという課題があった。これにより、電源装置の制御誤差が増大してしまうことが起こり得る。本発明は、前記従来の課題を解決するもので、高精度に電流を検出して電力制御を行なうことができる電源装置を提供することを目的とする。前記従来の課題を解決するために、本発明の電源装置は、電力変換部と、前記電力変換部と電気的に接続される電流検出部と、前記電力変換部、および前記電流検出部と電気的に接続され、前記電流検出部で検出される電流Iに応じて、前記電力変換部を制御する制御部と、を備え、前記電流検出部は、前記電力変換部と電気的に接続されるシャント抵抗器と、前記シャント抵抗器の両端に、それぞれ連動してオンオフする第1スイッチを介して電気的に接続されるとともに、前記制御部に電気的に接続される差動増幅回路と、前記差動増幅回路に電気的に接続され、オフセット電圧Voを出力するオフセット電圧源と、前記第1スイッチと前記差動増幅回路との間の、それぞれの接続点間に電気的に接続される第2スイッチと、前記オフセット電圧源が接続されていない側の前記シャント抵抗器の端子に電気的に接続される前記第1スイッチと前記差動増幅回路との間に、第3スイッチを介して電気的に接続され、フルスケール電圧Vfを出力するフルスケール電圧源と、前記オフセット電圧源と前記フルスケール電圧源とに電気的に接続され、基準電圧Vrを供給する基準電圧源と、を有するとともに、前記第1スイッチ、第2スイッチ、および第3スイッチが、それぞれ前記制御部に電気的に接続される構成を有し、前記制御部は、所定タイミングで前記第1スイッチと前記第3スイッチをオフにし、前記第2スイッチをオンにした際の前記差動増幅回路の出力に基づいて前記電流検出部で検出される電流Iを補正するためのゼロ点電流Ioを求めて更新した後、前記第2スイッチをオフにし、前記第3スイッチをオンにした際の前記差動増幅回路の出力と前記ゼロ点電流Ioとに基づいて前記電流検出部で検出される電流Iを補正するための感度Kを求めて更新し、前記第3スイッチをオフにし、前記第1スイッチをオンにする、動作を繰り返すようにしたものである。本発明の電源装置によれば、電流を検出するためのシャント抵抗器を用いて電流検出部を構成し、使用中であっても所定タイミングで、シャント抵抗器を電流検出部の中で切り離し、現時点の差動増幅回路において、電流検出部で検出される電流Iを補正するためのゼロ点電流Ioと感度Kを更新する動作を繰り返す。その結果、電源装置の使用中に環境温度が変化した場合や、車両の振動による電流検出部の構成回路部品における劣化進行に伴い回路定数が変化した場合にも、即時的に全ての変動要因を包含してゼロ点電流Ioと感度Kが更新される。従って、車両の使われ方に大きく影響されず、高精度に電流を検出して電力制御が可能となる電源装置を実現できるという効果を奏する。以下、本発明を実施するための形態について図面を参照しながら説明する。なお、ここでは電源装置を回生電力回収機能付き車両に適用した場合について述べる。実施の形態1図1は、本発明の実施の形態1における電源装置のブロック回路図である。図2は、本発明の実施の形態1における電源装置のゼロ点電流Ioと感度Kの更新動作を示すフローチャートである。なお、図1において太線は電力系配線を、細線は信号系配線をそれぞれ示す。図1において、車両のエンジン図示せずによって発電する発電機11は、バッテリ13、および負荷15と電力系配線で電気的に接続される。ここで、バッテリ13は車両用の鉛バッテリであり、負荷15は車両に搭載された電装品である。発電機11には、電源装置17を介して蓄電部19も電力系配線で電気的に接続されている。ここで、電源装置17は発電機11が回生電力を発生している場合は蓄電部19に回生電力を充電するように、それ以外の場合は蓄電部19に蓄えた回生電力をバッテリ13や負荷15に放電して再利用する。これにより、車両の省エネルギ化が図れる。また、電源装置17は、車両全体の制御を司る車両用制御回路21とも信号系配線で電気的に接続されており、回生電力の発生状況や蓄電部19の状態等の様々なデータを交信している。蓄電部19は車両の制動時に急峻に発生する回生電力をできるだけ取りこぼさないように回収するために、急速充放電が可能な電気二重層キャパシタからなる。なお、蓄電部19は発電機11が発電可能な回生電力の大きさに応じて、最適な容量を有するように設計される。また、蓄電部19としては電気二重層キャパシタに限らず、電気化学キャパシタ等の他のキャパシタでもよいし、発電機11の発電能力から、それほど急速充電が必要でない場合はリチウムイオン電池等の二次電池でもよい。次に、電源装置17の詳細構成について説明する。まず、電源装置17は入出力端子23、およびグランド端子25とで発電機11に接続される。この入出力端子23とグランド端子25は電力変換部であるDC/DCコンバータ27に電気的に接続される。以下、電力変換部をDC/DCコンバータ27と呼ぶ。さらに、DC/DCコンバータ27は蓄電部端子29とグランド端子31を介して蓄電部19に電気的に接続される。このような構成により、蓄電部19の充放電はDC/DCコンバータ27により制御される。また、DC/DCコンバータ27と入出力端子23の間には、電流検出部33が電気的に接続される。なお、電流検出部33は蓄電部端子29側に設けてもよいが、電流検出部33は後述するようにシャント抵抗方式であるので、蓄電部19の充放電により電流検出部33に取り込まれる電圧の絶対値が大きく変化し、最終的な電流検出誤差が大きくなる可能性がある。従って、本実施の形態1のように、電圧の絶対値が発電機11やバッテリ13により13V程度に比較的安定化されている入出力端子23側に電流検出部33を接続する構成が望ましい。DC/DCコンバータ27、および電流検出部33は信号系配線で制御部35と電気的に接続されている。制御部35はマイクロコンピュータとメモリ等の周辺回路いずれも図示せずで構成されており、制御信号contでDC/DCコンバータ27を制御したり、DC/DCコンバータ27から電圧等の各種データを受信するとともに、電流検出部33に内蔵される第1スイッチ、第2スイッチ、および第3スイッチいずれも後述するを制御するための第1スイッチオンオフ信号SW1、第2スイッチオンオフ信号SW2、および第3スイッチオンオフ信号SW3を出力する。さらに、電流検出部33から出力される電流Iの信号を読み込む。また、制御部35は、上記した車両用制御回路21ともデータ端子36を介して接続されており、様々なデータ信号dataを交信する。次に、電流検出部33の詳細構成について説明する。まず、電流検出部33の電流検出はシャント抵抗方式としている。これは、他の直流電流検出方式である磁気比例方式や磁気平衡方式の場合、いずれも電流Iを間接的に測定する原理であり、精度を確保するには回路構成の複雑化や大型化を招くため、本実施の形態1ではシャント抵抗方式に限定した。さらに、シャント抵抗方式では、電流検出用のシャント抵抗器37における両端電圧がオームの法則に従って、シャント抵抗器37に流れる電流Iに一次比例する。従って、この一次比例式における切片と傾きに相当するゼロ点電流Ioと感度Kいずれも後述するの2つの補正係数を求めるだけで電流Iを補正できるため、前記補正係数を求める計算も、電流Iを補正するための計算も簡単になり、その分、高精度に電流Iを求めることができる。なお、これら定数を求める計算と、電流Iを補正するための計算の詳細については後述する。これらのことからも、本実施の形態1ではシャント抵抗方式に限定している。上記したシャント抵抗器37はDC/DCコンバータ27と入出力端子23の間に電気的に接続されている。ここで、車両が回生電力を発生する際に蓄電部19へ流れる電流の最大値フルスケールは100Aとする。ゆえに、DC/DCコンバータ27は100Aまでの電流Iが流れるように制御される。従って、電流Iが100A流れた時のシャント抵抗器37の発熱がほとんど発生しないようにするために、シャント抵抗器37の抵抗値は1mΩとした。具体的には、100Aの電流Iに耐えることができ、かつ、1mΩという小さい抵抗値を実現するために、1mΩとなる形状に加工した低温度係数の合金板市販品をシャント抵抗器37として用いた。これにより、最大の電流Iがシャント抵抗器37に流れても、シャント抵抗器37で消費される電力は10Wと小さく、しかも100Aもの電流Iを有する回生電力が発生する期間は数秒程度と短い上、合金の熱伝導率も高いため、シャント抵抗器37自身の発熱はほとんど発生しない。シャント抵抗器37の両端は、それぞれ第1スイッチ42と電気的に接続される。ここで、第1スイッチ42は2個のスイッチを一体で構成したもので、これらのスイッチは連動してオンオフする。さらに、第1スイッチ42は外部からの信号ここでは上記したように制御部35から出力される第1スイッチオンオフ信号SW1によりオンオフが制御される構成としている。従って、第1スイッチオンオフ信号SW1がオン例えばハイレベルの電圧であれば、第1スイッチ42に内蔵される2個のスイッチは連動して両方ともオンになり、第1スイッチオンオフ信号SW1がオフ例えばローレベルの電圧であれば、前記2個のスイッチは連動して両方ともオフになる。このような構成の第1スイッチ42として、本実施の形態1では2個の電界効果トランジスタ以下、FETというを用いている。なお、第1スイッチ42の構成は2個のFETに限るものではなく、トランジスタなどの半導体スイッチやリレーのように外部からオンオフ制御ができる構成のものを2個用いてもよい。第1スイッチ42のそれぞれの他端には抵抗器43、45を介してオペアンプ47が電気的に接続される。さらに、オペアンプ47にはフィードバック用の抵抗器49も接続される。そして、これら抵抗器43、45、オペアンプ47、およびフィードバック用の抵抗器49から差動増幅回路51が構成される。従って、シャント抵抗器37の両端には、第1スイッチ42を介して差動増幅回路51が電気的に接続される構成となる。差動増幅回路51において、抵抗器43、45とフィードバック用の抵抗器49のそれぞれの抵抗値によりオペアンプ47の増幅率Gが決定される。ゆえに、差動増幅回路51は電流Iに比例するシャント抵抗器37の両端電圧を増幅して出力する構成となる。なお、具体的な増幅率Gについては後述する。差動増幅回路51の出力、すなわちオペアンプ47の出力は、フィルタ用抵抗器53を介して制御部35に電気的に接続される。従って、制御部35には電流Iに相当する電圧信号が入力されることになる。なお、以下の説明では、電流Iに相当する電圧信号のことを電流Iの信号と呼ぶ。また、フィルタ用抵抗器53と制御部35との接続点、およびグランドとの間には、フィルタ用コンデンサ55が電気的に接続されている。従って、差動増幅回路51の出力はフィルタ用抵抗器53とフィルタ用コンデンサ55によるフィルタ回路により、ノイズを低減した電流Iの信号が制御部35に入力される。以上の回路構成で電流検出部33は電流Iを検出して電流Iの信号を出力することができるが、高精度に電流Iを検出するために、電流検出部33は、さらに以下の構成を備える。まず、差動増幅回路51には、オフセット電圧Voを出力するオフセット電圧源57が電気的に接続されている。具体的には、シャント抵抗器37の一端の端子図1の左側に電気的に接続される抵抗器43と、オペアンプ47との接続点にオフセット電圧源57が接続される。このような構成とすることで、差動増幅回路51からの出力にオフセット電圧Voが重畳されることになる。ゆえに、電流Iが流れておらず、電流Iが0Aの際における差動増幅回路51からの出力電流Iの信号はオフセット電圧Voとなる。このオフセット電圧Voの値は、次のようにして決定する。オペアンプ47の最低入力電圧を0.5Vとすると、オフセット電圧Voは0.5Vより高くする必要がある。電流Iが流れておらず、0Aの時は、シャント抵抗器37の両端電圧が0Vとなるので、2つのオペアンプ47の入力端子には等電圧が入力される。この場合、オペアンプ47からはオフセット電圧Voがそのまま出力される。ゆえに、オペアンプ47の出力は0.5Vより高くなる。一方、制御部35を構成するマイクロコンピュータに内蔵されるADコンバータいずれも図示せずの最大入力電圧を3Vとすると、電流Iの信号は0.5Vより高く3V以下の範囲とする必要がある。ここで、電流Iは充放電に伴い±100Aが検出できる構成とする必要があるので、0.5Vから3Vの範囲で±100Aに相当する電流Iの信号を定義付ければよい。従って、本実施の形態1では、電流Iの信号を1Vから3Vの範囲とし、これにより±100Aの電流Iを表すように決定した。すなわち、電流Iが-100Aの場合は電流Iの信号が1V、電流Iが0Aの場合は電流Iの信号が2V、電流Iが100Aの場合は電流Iの信号が3Vとなるようにした。その結果、上記したように、電流Iが0Aの場合の電流Iの信号電圧である2Vがオフセット電圧Voとして決定される。これにより、電流Iの信号にはオフセット電圧Voである2Vが重畳される。また、上記のように電流Iの信号の電圧範囲を決定したので、差動増幅回路51の増幅率Gも次のようにして決定される。まず、シャント抵抗器37の抵抗値が0.1mΩであるので、最大の電流I=100Aが流れた時のシャント抵抗器37の両端電圧は0.1Vとなり、逆方向に最大の電流I=-100Aが流れた時の前記両端電圧は-0.1Vとなる。なお、電流Iの正負は蓄電部19の充放電の方向によって変わり、本実施の形態1では蓄電部19の充電時に負、放電時に正となるよう定義する。但し、この定義は逆であってもよい。ここで、上記したように入出力端子23の電圧が13Vであり、最大の電流I=100Aが流れるとすると、シャント抵抗器37の両端電圧は0.1Vであるので、シャント抵抗器37とDC/DCコンバータ27との接続点における電圧は13.1Vとなる。従って、オペアンプ47は2つの入力端子の電圧差ここではシャント抵抗器37の両端電圧であり、13.1V-13V=0.1Vを増幅率Gにより増幅してオフセット電圧Vo=2Vを加えた電圧=電流Iの信号を出力するので、電流Iが100Aの時に電流Iの信号を上記した3Vとするためには、3V=0.1V×G2Vを解いて、増幅率Gは10倍と決定される。この結果、電流Iが逆向きに最大で流れた場合は、上記したように両端電圧が-0.1Vとなるので、電流Iの信号は、-0.1V×10倍2V=1Vとなる。このような構成としたことで、電流Iが0Aの際にはオフセット電圧Voである2Vが差動増幅回路51から電流Iの信号として出力され、電流Iが正であれば2Vより高くなり、電流Iが負であれば2Vより低くなる。このようにオフセット電圧Voを設定することで、電流Iの信号から、蓄電部19の充電と放電を区別して検出することができる。オフセット電圧源57の構成は、基準電圧源59とグランドの間に接続された2個の抵抗器、すなわち第1抵抗器61と第2抵抗器63の直列回路からなる。そして、オフセット電圧Voは第1抵抗器61と第2抵抗器63の接続点から出力される。従って、オフセット電圧Voは基準電圧源59が供給する基準電圧Vrと、第1抵抗器61と第2抵抗器63の抵抗値によって決定される。なお、本実施の形態1では、上記したようにオフセット電圧Voを2Vと決定しているので、2Vを作りやすく、かつオペアンプ47やマイクロコンピュータの駆動電圧として信号系配線の中で用いられている5Vを基準電圧Vrとしている。従って、オフセット電圧源57は5V基準電圧Vrから2Vオフセット電圧Voを作り出す構成となる。なお、オフセット電圧Voは電流検出部33の出力電流Iの信号の精度に大きく影響するので、できるだけ変動が少ないように第1抵抗器61と第2抵抗器63を金属皮膜抵抗器で構成している。また、基準電圧源59も基準電圧Vrの変動ができるだけ小さくなるように、電圧レギュレータで構成されている。なお、基準電圧源59の変動は存在するが、電流検出部33の他の構成回路部品の変動に比べ小さいため、全体として必要な精度は確保できる。次に、第1スイッチ42と差動増幅回路51との間の、それぞれの接続点間に第2スイッチ56を電気的に接続している。具体的には、図1において第1スイッチ42の左側と抵抗器43との接続点、および第1スイッチ42の右側と抵抗器45との接続点との間に第2スイッチ56が接続される。このような構成とすることで、第2スイッチ56をオンにすると、オペアンプ47の2つの入力端子が短絡されることになるので、シャント抵抗器37の両端電圧が0V、すなわち電流Iが0Aの状態とすることができる。これにより、差動増幅回路51からはオフセット電圧Vo=2Vがそのまま出力されることになる。なお、第2スイッチ56は第1スイッチ42と同様に、制御部35からの第2スイッチオンオフ信号SW2でオンオフ制御を行なうために、FETで構成している。なお、第2スイッチ56の構成もFETに限るものではなく、トランジスタなどの半導体スイッチやリレーのように外部からオンオフ制御ができる構成であればよい。次に、オフセット電圧源57が接続されていない側のシャント抵抗器37の端子図1の右側に電気的に接続される第1スイッチ42と差動増幅回路51との間には、第3スイッチ65を介して、フルスケール電圧Vfを出力するフルスケール電圧源67が電気的に接続されている。具体的には、図1において、第1スイッチ42の右側のスイッチと抵抗器45との接続点に第3スイッチ65の一端が接続され、第3スイッチ65の他端にフルスケール電圧源67が接続される。このような構成とすることで、第3スイッチ65をオンにすると、差動増幅回路51にフルスケール電圧Vfが入力されることになる。ここで、フルスケール電圧Vfは、電流Iが100A流れた時のシャント抵抗器37の両端電圧である0.1Vをオペアンプ47に入力するために、2.1Vとしている。すなわち、後述するように第3スイッチ65がオンになる場合は第1スイッチ42と第2スイッチ56がオフであるので、図1におけるオペアンプ47の左側の入力端子にはオフセット電圧Vo=2Vが印加される。従って、オペアンプ47の2つの入力端子における電圧差を0.1Vにするために、フルスケール電圧Vfを2.1V=2V0.1Vとしている。ゆえに、第3スイッチ65をオンにしてフルスケール電圧Vfを差動増幅回路51に入力すると、電流Iが100A流れた時に相当する電圧、すなわち3V=0.1V×10倍2Vが電流Iの信号として差動増幅回路51から制御部35に出力される。フルスケール電圧源67の構成は、オフセット電圧源57の構成と同様であり、基準電圧源59とグランドの間に接続された2個の抵抗器、すなわち第3抵抗器69と第4抵抗器71の直列回路からなる。そして、フルスケール電圧Vfは第3抵抗器69と第4抵抗器71の接続点から出力される。従って、フルスケール電圧Vfは基準電圧源59が供給する基準電圧Vrと、第3抵抗器69と第4抵抗器71の抵抗値によって決定される。ゆえに、フルスケール電圧源67は5V基準電圧Vrから2.1Vフルスケール電圧Vfを作り出す構成となる。なお、フルスケール電圧Vfは電流検出部33の出力電流Iの信号を補正する精度に大きく影響するので、できるだけ変動が少ないように第3抵抗器69と第4抵抗器71を金属皮膜抵抗器で構成している。以上より、基準電圧源59はオフセット電圧源57とフルスケール電圧源67とに電気的に接続され、これらに基準電圧Vrを供給する構成となる。また、第3スイッチ65は第1スイッチ42と同様に、制御部35からの第3スイッチオンオフ信号SW3でオンオフ制御を行なうために、FETで構成している。なお、第3スイッチ65の構成もFETに限るものではなく、トランジスタなどの半導体スイッチやリレーのように外部からオンオフ制御ができる構成であればよい。次に、このような電源装置17の動作について説明する。まず、車両使用時における通常動作として、制御部35は車両用制御回路21からデータ信号dataで車両の状態情報を受信し、それに基づいて蓄電部19の充放電判断を行う。そして、発電機11が発生している回生電力を蓄電部19に充電する場合は、制御部35は制御信号contによりDC/DCコンバータ27を制御する。この時、制御部35は電流検出部33で検出された電流Iの信号に基づいて、所定電流Icとなるように定電流充電を行う。従って、通常動作時は電流検出部33により現在の電流Iを検出できるようにするために、制御部35は第1スイッチ42をオンにするとともに、第2スイッチ56と第3スイッチ65をオフにするように制御する。なお、DC/DCコンバータ27は蓄電部端子29の電圧検出回路図示せずを内蔵しており、制御部35に対して制御信号contにより蓄電部端子29の電圧を送信している。従って、蓄電部端子29の電圧が蓄電部19の満充電電圧に至れば、制御部35は満充電電圧を維持するよう、すなわち電流Iがほぼ0Aとなるよう、電流指令値を求めてDC/DCコンバータ27を電流制御する。従って、0A近傍における高精度な電流Iの検出が重要となる。次に、制御部35は、車両が制動以外の状態であることを車両用制御回路21からのデータ信号dataで受信すると、それに基づいて蓄電部19の充放電判断を行う。そして、蓄電部19を放電する場合は、制御部35は蓄電部19に蓄えた回生電力をバッテリ13や負荷15に供給するように制御する。この場合は、負荷15がどれだけの電流を消費しているかが状況により変化するため、制御部35はDC/DCコンバータ27に対し、入出力端子23の電圧が発電機11の発電電圧より高くなるようにするための電流指令値を求めて電流制御を行なう。これにより、蓄電部19の電力が発電機11に優先してバッテリ13や負荷15に供給され、回生電力の有効活用が可能となる。なお、このような制御を行なうために、DC/DCコンバータ27は入出力端子23の電圧検出回路図示せずも内蔵しており、制御部35に対し制御信号contにより入出力端子23の電圧を送信している。但し、電源装置17に過電流が流れないようにするために、制御部35は電流Iを読み込み、電流Iが±100Aの範囲を超えれば、電流Iが100A、または-100Aになるように定電流制御を行なう動作を優先する。この動作は蓄電部19の充電時、放電時ともに適用される。さらに、制御部35は蓄電部端子29の電圧が蓄電部19の下限電圧に至れば、過放電を避けるために、前記放電制御や前記定電流制御に優先して下限電圧を維持するよう、すなわち電流Iがほぼ0Aとなるよう、電流指令値を求めて電流制御を行なう。このように電源装置17が動作することで、回生電力の有効活用が図れ、車両の省エネルギ化が可能となるが、蓄電部19が過充電や過放電に至らないように、かつ、過電流が流れないようにするためには、電流検出部33で検出される電流Iの高精度化が広範囲に亘って必須である。そこで、本実施の形態1では、制御部35が図2に示すフローチャートに従った動作を行った結果により電流Iを補正し、高精度を維持している。その具体的動作について以下に説明する。なお、図2のフローチャートは図示しないメインルーチンから必要に応じて実行されるサブルーチンとして記載している。制御部35は、上記した車両使用時における通常動作中における所定タイミングで図2のサブルーチンを実行する。なお、所定タイミングの詳細については後述する。図2のサブルーチンが実行されると、制御部35は上記したように、既にオンになっている第1スイッチ42をオフにするステップ番号S11。この動作により、電流検出部33のシャント抵抗器37を、その他の電流検出部33の回路構成から切り離す。その結果、環境変化に対し抵抗値変動の少ないシャント抵抗器37以外の前記回路構成に対する補正を行なうことになる。これは、電流検出部33において、シャント抵抗器37以外の前記回路構成の方がシャント抵抗器37より部品点数が多く、その分、全体としての精度が低くなるためである。なお、本実施の形態1では、図2のサブルーチンが実行された時点で第3スイッチ65は既にオフになっているので、図2では第3スイッチ65をオフにする動作を省略しているが、非定常動作中などで図2のサブルーチンを実行した際に第3スイッチ65がオンになっている場合がある電源装置17であれば、S11で第3スイッチ65をオフにする。次に、制御部35は第2スイッチ56をオンにするS12。これにより、オペアンプ47の2つの入力端子が短絡されるので、シャント抵抗器37の両端電圧が0V、すなわち電流Iが0Aの際の電圧がオペアンプ47に入力されることになる。また、差動増幅回路51にはオフセット電圧源57から出力されるオフセット電圧Voも入力されているので、差動増幅回路51からはオフセット電圧Vo=2Vが出力される。次に、制御部35は電流検出部33からの出力、すなわち電流Iの信号を読み込む。具体的には、制御部35のマイクロコンピュータに内蔵されたADコンバータにより電流Iの信号電圧をデジタル変換して読み込む。そして、デジタル変換した電流Iの信号を、メモリに定義した変数である検出電流Idに代入する以上、S13。なお、検出電流Idは電流Iの信号電圧をデジタル変換した値であるので、電流Iの値そのものではない。しかし、電流Iの信号の範囲である1Vから3Vまでのデジタル値は電流Iと正比例するので、ここではデジタル変換された電流Iの信号電圧を検出電流Idと呼ぶ。また、制御部35として、例えば24ビットのマイクロコンピュータを用いているので、検出電流Idのデジタル変換値は十分な精度を有する。従って、電流Iの信号電圧と検出電流Idのデジタル値は等しいものとする。次に、制御部35は検出電流Id差動増幅回路51の出力に相当が既定電流範囲を超えるか否か判断するS15。ここで、既定電流範囲とは、電流Iが-100Aから100Aの範囲で流れるので、それにマージンを加味した電流Iの信号の範囲のことである。ここで、マージンは、DC/DCコンバータ27や制御部35における電流Iの総合制御誤差に、電流検出部33の温度特性や経年変化等の変化分を加え、さらに余裕を持たせた値として、電流Iの信号のフルスケール絶対値3Vの10とした。従って、既定電流範囲は、具体的には0.7Vから3.3Vまでとなる。ゆえに、検出電流Idが既定電流範囲を超えれば、すなわち電流Iの信号が0.7V未満、または3.3Vより大きければS15のYes、制御部35は電流検出部33が異常であると判断し、直ちに第2スイッチ56と第3スイッチ65をオフにするS16。この際に、S11で第1スイッチ42がオフになっているので、S16の動作により、第1スイッチ42、第2スイッチ56、および第3スイッチ65の全てがオフになる。これにより、特に第1スイッチ42がオフのままとなっているので、異常のある電流検出部33を切り離した状態を維持できる。その結果、電源装置17の全体に予期しない電流が流れる可能性を低減している。なお、S15でYesの場合、第3スイッチ65は既にオフとなっているが、後述するS25でYesの場合は第3スイッチ65がオンになっているので、どちらの場合でも対応できるように、S16では第2スイッチ56と第3スイッチ65の両方をオフにするようにしている。次に、制御部35は電流検出部異常フラグFGをオンにするS17。なお、電流検出部異常フラグFGはメモリに定義される変数であり、正常時はFG=0であるが、異常時にはFG=1となる。従って、S17において、電流検出部異常フラグFGは1となる。その後、電流検出部33が異常であるので、直ちに図2のサブルーチンを終了し、メインルーチンに戻る。メインルーチンでは電流検出部異常フラグFGがオンであることから、制御部35は電流検出部33の異常をデータ信号dataにより車両用制御回路21に伝え、車両用制御回路21は異常がある事実を運転者に報知する。一方、検出電流Idが既定電流範囲を超えなければS15のNo、検出電流Idが0A相当であるので、制御部35は、この検出電流Idの値から0Aの電流、すなわちゼロ点電流Ioを求める。ここで、検出電流Idの補正方法について説明する。上記したように電流Iの範囲-100Aから100Aまでに対し、本来、検出電流Idは1Vから3Vまでとなる。しかし、環境変化詳細は後述するにより、検出電流Idが本来の範囲からずれると、制御部35は検出電流Idを補正し、補正後検出電流Idcを求める。この補正後検出電流Idcは本来の範囲になるように補正されているので、これにより実際の電流Iに換算することで高精度化が図れる。検出電流Idから補正後検出電流Idcを求めるためには、両者の相関関係における補正係数を求める必要がある。両者の相関関係は、一次関数であるので、Idc=KIdIoとなる。ここで、Kは感度、Ioはゼロ点電流をそれぞれ示す。従って、感度K、およびゼロ点電流Ioが、電流検出部33で検出される電流I、すなわち検出電流Idを補正するための前記補正係数となる。前記補正係数は、環境変化によるずれがなければ、K=1、Io=0の理想値となるので、Idc=Idとなるが、実際にはずれに起因して、感度K、およびゼロ点電流Ioは理想値から変化する。そこで、まずゼロ点電流Ioの求め方を説明する。S13で読み込まれた検出電流Idは、本来、電流Iが0Aの際に相当する2V以下、基準ゼロ点電流Izというとなるが、環境変化で電流検出部33の回路定数が変化し、例えば2.1Vになったとする。従って、補正後検出電流Idcは基準ゼロ点電流Izとのずれここでは0.1Vを差し引いて求める必要がある。ゆえに、ゼロ点電流Ioは、Io=Iz-Id=2V-Idより求められる。上記の数値の場合では、Io=2V-2.1V=-0.1Vと決定できる。なお、感度Kの求め方は後述する。以上のようなゼロ点電流Ioの求め方により、制御部35は基準ゼロ点電流Izから検出電流Idを差し引いた値を、メモリに定義される変数であるゼロ点電流Ioに代入するS19。これにより、ゼロ点電流Ioが現在の電源装置17の環境変化に対応した値として更新される。すなわち、車両の使用に伴って環境温度が変化すると、それに応じて電流検出部33を構成する回路部品の定数抵抗値や容量値が変化し、S13で読み込まれた検出電流Idが基準ゼロ点電流Izからずれるので、S19までの動作により、ずれた値をゼロ点電流Ioとして更新している。これにより、ゼロ点に対する高精度化を図ることができる。さらに、温度変化ほど短期的ではないが、車両の振動等による経年劣化で回路部品の定数が変化し、ゼロ点がずれることも想定される。この場合も、S19までの動作により、ずれた値をゼロ点電流Ioとして更新しているので、ゼロ点に対する高精度化を図ることができる。従って、本実施の形態1の動作により、短期的な温度変化や長期的な経年劣化も包含したゼロ点のずれを補正することができる。なお、半田クラックの成長などにより、急激に回路定数が変化した場合は、S15により異常を判断できるので、その観点から本実施の形態1の動作は高信頼性をも兼ね備える。ここで、図2において、S19におけるIo=Iz-Idのように記載されたものは、判断の処理を除き、右辺の値または計算結果を、左辺の変数に代入するものと定義する。次に、制御部35は第2スイッチ56をオフにするS20。これにより、オペアンプ47の2つの入力端子の短絡状態が開放される。次に、制御部35は第3スイッチ65をオンにするS21。これにより、差動増幅回路51にはオフセット電圧Voが引き続き入力されるとともに、フルスケール電圧源67からのフルスケール電圧Vfが入力される。また、第1スイッチ42はオフのままであるので、差動増幅回路51の出力はフルスケール電圧Vfとオフセット電圧Voとの差を増幅し、オフセット電圧Voを加えた電圧となる。ここで、上記したように、オフセット電圧Voは2Vであり、フルスケール電圧Vfは2.1Vであるので、その差0.1Vを増幅率G10倍で増幅してオフセット電圧Voを加えた3Vの電圧が差動増幅回路51から出力されることになる。この電圧値は電流Iに換算すると100Aに相当する。従って、S21の動作により、差動増幅回路51には電流Iがフルスケールである100Aの際の電圧が入力されることになる。ゆえに、差動増幅回路51から出力される電流Iの信号は最大の電流Iが流れた際の値と等価になる。次に、制御部35は電流検出部33からの出力、すなわち電流Iの信号を読み込む。そして、デジタル変換後の値を検出電流Idに代入するS23。このS23の動作はS13と同じである。次に、制御部35は検出電流Idが既定電流範囲を超えるか否か判断するS25。この動作はS15と同じである。もし、検出電流Idが既定電流範囲を超えていればS25のYes、電流検出部33が異常であると判断し、上記したS16にジャンプし、S16以降の動作を行う。一方、検出電流Idが既定電流範囲を超えていなければS25のNo、制御部35は次のようにして感度Kを求める。上記したように、検出電流Idと補正後検出電流Idcとの相関関係は、Idc=KIdIoで表される。ここで、S23により読み込まれた検出電流Idは電流Iがフルスケールである100Aの際のものであるため、本来は3Vとなる。この3Vをフルスケール電流Ifと呼ぶ。従って、S23により読み込まれた検出電流Idが補正後検出電流Idcではフルスケール電流If=3Vとなるように補正すればよい。具体的には、上記した相関関係の式に対し、補正後検出電流Idcにフルスケール電流Ifを代入し整理すると、感度Kは、K=If-Io/Idとなる。ここで、ゼロ点電流IoはS19で補正された後の値となる。このような動作により、ゼロ点電流Io、および感度Kの両方が補正されるので、補正後検出電流Idcの高精度化が可能となる。感度Kの具体的な計算例を示す。S23で読み込まれた検出電流Idは理想値であるフルスケール電流If=3Vに対して、上記した環境変化により、例えば2.9Vになったとする。また、ゼロ点電流Ioは上記したように-0.1Vであるとする。従って、感度KはK=3V--0.1V/2.9V=1.07となる。ゆえに、補正後検出電流Idcは、Idc=1.07Id-0.1により求められる。なお、得られた補正後検出電流Idcから実際の電流Iを求めるには、電流Iと補正後検出電流Idcの相関関係式I=100Idc-200に補正後検出電流Idcを代入すればよい。但し、こうして求めた電流Iは桁が大きく、マイクロコンピュータの演算時の桁落ちにより精度が低下する場合があり、さらに前記相関関係式は一次関数であるので、桁落ちが発生する際には補正後検出電流Idcを電流Iに変換せずに、そのまま電流Iとして用いて電流指令値を求める演算処理を行なえば、高精度制御を維持できる。上記したような方法に基づき、制御部35はS23で読み込んだ検出電流Idから感度Kを、K=If-Io/Idより求めるS27。なお、感度Kもメモリに定義された変数であり、この変数に感度Kの値が代入、更新される。ここまでの動作で、補正に必要なゼロ点電流Ioと感度Kが得られ、かつS15とS25のいずれもNoであったので、制御部35は電流検出部33が正常であると判断し、電流検出部異常フラグFGをオフにするS29。具体的には変数である電流検出部異常フラグFGに0を代入する。その後、電流検出部33が電流Iを検出する通常状態に戻すため、制御部35は第3スイッチ65をオフにするS31。これにより差動増幅回路51へのフルスケール電圧Vfの印加を停止する。次に、第1スイッチ42をオンにしてシャント抵抗器37を接続するS33。これらの動作で電流検出部33が通常状態に戻ったので、図2のサブルーチンを終了してメインルーチンに戻る。メインルーチンでは、更新されたゼロ点電流Io、および感度Kを用いて、上記した検出電流Idと補正後検出電流Idcとの相関関係Idc=KIdIoから、いつでも電流検出部33で検出される電流I、すなわち検出電流Idを補正することができるので、高精度な電流Iの検出、およびDC/DCコンバータ27の制御が可能となる。なお、図2のサブルーチンが実行されている間は、制御部35が電流Iを検出することができないので、その際は図2のサブルーチンが実行される直前の補正した電流Iを現在の電流IとしてDC/DCコンバータ27を制御するようにしている。ここで、制御部35が図2のサブルーチンを実行する時間は、複雑な計算がないため極めて速く本実施の形態1では約1m秒、DC/DCコンバータ27に電流指令値を与えた際の過渡応答時間本実施の形態1では約100m秒に比べ十分小さい。従って、図2のサブルーチンが実行されている間、その直前の補正した電流Iを現在の電流IとしてDC/DCコンバータ27を制御しても、電流制御精度にはほとんど影響しない。また、メインルーチンでは、図2のサブルーチンを所定タイミングで繰り返し実行している。これにより、環境変化が起こっても、それに追従してゼロ点電流Io、および感度Kの更新ができるので、さらなる高精度な電流Iの検出が可能となる。ここで、所定タイミングについて説明する。本実施の形態1における所定タイミングは、その間隔Δtが基本的に1秒間隔となるように設定している。従って、通常はメインルーチンが1秒毎に図2のサブルーチンを実行してゼロ点電流Io、および感度Kの更新を行なっている。これは、通常の車両使用状態であれば周囲温度等の環境変化が緩やかであり、1秒間隔でも十分に環境変化に追従したゼロ点電流Io、および感度Kの更新が可能であるためである。しかし、上記した半田クラックの急成長による急激な変化が発生した場合、間隔Δtが1秒では変化に対する追従性が不十分となる可能性がある。そこで、本実施の形態1においては次のようにして所定タイミングの間隔Δtを変更するようにしている。まず、制御部35はメインルーチンにて前回更新した前回ゼロ点電流Iop、および前回更新した前回感度Kpを、それぞれメモリに保存している。そして、前回ゼロ点電流Iopと、図2のサブルーチンにより今回更新したゼロ点電流Ioとのゼロ点電流変化度ΔIoを求める。ここで、本実施の形態1では、ゼロ点電流変化度ΔIoは前回ゼロ点電流Iopとゼロ点電流Ioとの差の絶対値としている。但し、これに限定されるものではなく、前回ゼロ点電流Iopとゼロ点電流Ioとの比から1を減算した値の絶対値など、ゼロ点電流変化度ΔIoは前回ゼロ点電流Iopとゼロ点電流Ioとの変化がわかる値であればよい。次に、制御部35は前回更新した前回感度Kpと、図2のサブルーチンにより今回更新した感度Kとの感度変化度ΔKを求める。ここで、感度変化度ΔKは、ゼロ点電流変化度ΔIoと同様に、前回感度Kpと感度Kとの差の絶対値としている。但し、これに限定されるものではなく、前回感度Kpと感度Kとの比から1を減算した値の絶対値など、感度変化度ΔKは前回感度Kpと感度Kとの変化がわかる値であればよい。次に、制御部35はゼロ点電流変化度ΔIoと感度変化度ΔKの内、大きい値の方を選択し、予め決定されたゼロ点電流変化度ΔIoと間隔Δtとの相関関係、または感度変化度ΔKと間隔Δtとの相関関係に基づいて間隔Δtを変更する。ここで、ゼロ点電流変化度ΔIoと間隔Δtとの相関関係や感度変化度ΔKと間隔Δtとの相関関係は、いずれもゼロ点電流変化度ΔIoや感度変化度ΔKが大きくなるほど間隔Δtが小さくなるように決定されている。具体的には、本実施の形態1では間隔Δtがゼロ点電流変化度ΔIoや感度変化度ΔKの値の大きさの二乗の逆数に比例するように決定している。従って、ゼロ点電流変化度ΔIoや感度変化度ΔKの値が大きくなるほど、その二乗の逆数に比例するように間隔Δtが小さくなる。これにより、半田クラックの急成長等による環境変化が急激に発生した場合、ゼロ点電流変化度ΔIoや感度変化度ΔKの値以下、両者を合わせて変化度というが大きくなるほど、その変化度以上に間隔Δtが短くなるので、所定タイミングが早くなり、前記補正係数を求める頻度が急増する。従って、環境変化への追従性がさらに増し、極めて高精度な電流Iの検出が可能となる。なお、ゼロ点電流変化度ΔIoや感度変化度ΔKの値が計測や演算の誤差範囲内で0の場合は、間隔Δtは上記した基本的な間隔である1秒となる。ここで、上記したように、間隔Δtはゼロ点電流変化度ΔIoや感度変化度ΔKの値の大きさの二乗の逆数に比例するように決定しているが、これに限定されるものではなく、電源装置17に想定される環境変化に基づいて、べき乗の数値を適宜決定すればよい。さらに、相関関係の関数もべき乗の逆比例に限定されるものではなく、指数関数的、あるいは三角関数的な相関関係としてもよい。すなわち、どのような相関関係を用いるにしても、ゼロ点電流変化度ΔIoや感度変化度ΔKの値の大きさに応じて間隔Δtが小さくなるようにすればよい。また、ここではゼロ点電流変化度ΔIoと感度変化度ΔKの内、大きい値の方を選択し、その相関関係から間隔Δtを求めて変更しているが、このようなゼロ点電流変化度ΔIoと感度変化度ΔKの両方に基づいて間隔Δtを求める動作に限定されるものではなく、いずれか一方に基づいて間隔Δtを求めてもよい。これは、電源装置17の仕様や環境条件によっては必ずゼロ点電流変化度ΔIoが感度変化度ΔKより大きくなる場合、あるいは必ずゼロ点電流変化度ΔIoが感度変化度ΔKより小さくなる場合であれば、前者はゼロ点電流変化度ΔIoと間隔Δtとの相関関係のみを、後者は感度変化度ΔKと間隔Δtとの相関関係のみを、それぞれ用いて間隔Δtを変更するようにすればよい。ゆえに、ゼロ点電流変化度ΔIoと感度変化度ΔKの少なくとも一方に基づいて、所定タイミングの間隔Δtを変更すればよい。また、電源装置17の回路部品の仕様や配線構成、あるいは環境条件によっては、ゼロ点電流Ioや感度Kが急激に変化しない場合がある。この際には、間隔Δtを予め決められた所定値例えば1秒に固定するようにしてもよい。以上の構成、動作により、使用中であっても所定タイミングで、シャント抵抗器37を電流検出部33の中で切り離し、現時点の差動増幅回路51において、電流検出部33で検出される電流Iを補正するためのゼロ点電流Ioと感度Kを更新する動作を繰り返すので、環境温度が変化した場合や、車両の振動による電流検出部33の構成回路部品における劣化進行に伴い回路定数が変化した場合にも、即時的に全ての変動要因を包含してゼロ点電流Ioと感度Kが更新される。従って、車両の使われ方に大きく影響されず、高精度に電流Iを検出して電力制御が可能となる電源装置17を実現できる。なお、本実施の形態1における図2のサブルーチンの内、S11とS12、S20とS21、およびS31とS33における各スイッチの動作であるが、これらはこの順番とする必要がある。すなわち、もしこれらの順番を逆にすると、不用意な電圧がパルス的に印加されたり、パルス電流が流れる可能性がある。その結果、電流Iとして誤った値を検出してしまい、それに基づいて電流Iの制御を行なうと、制御精度が低下してしまう。従って、各スイッチの動作順番は図2に示す通りとする必要がある。但し、図2のS16においては、第2スイッチ56と第3スイッチ65をオフにする動作であるので、どちらを先にオフにしてもよい。実施の形態2図3は、本発明の実施の形態2における電源装置のブロック回路図である。なお、本実施の形態2における電源装置の構成において、実施の形態1と同じ構成には同じ符号を付して詳細な説明を省略する。すなわち、本実施の形態2における特徴となる構成は、図1の基準電圧源59に替わって、可変基準電圧源73を設けた点である。可変基準電圧源73は基準電圧Vrを制御部35により変更できる構成を有している。そのため、可変基準電圧源73は制御部35と制御系配線で電気的に接続されている。このような構成により、制御部35は基準電圧制御信号kcontを可変基準電圧源73に出力することで、基準電圧Vrを変更する。なお、これ以外の構成は実施の形態1と同じである。このような構成により、制御部35は電源装置17の使用中に適宜、基準電圧Vrを可変基準電圧源73の出力から検出し、所定基準電圧Vro本実施の形態2では5Vになるように可変基準電圧源73を制御する。これにより、可変基準電圧源73の温度特性等により基準電圧Vrがずれたとしても、所定基準電圧Vro=5Vになるようにフィードバック制御されるので、ゼロ点電流Ioや感度Kを求めるために必要なオフセット電圧Voとフルスケール電圧Vfの精度が向上する。これにより、ゼロ点電流Ioや感度Kが高精度に求められる。ゆえに、電流Iを高精度に検出することが可能となる。なお、ゼロ点電流Ioや感度Kの求め方は実施の形態1と同じである。なお、制御部35による可変基準電圧源73の基準電圧Vrに対するフィードバック制御は、オフセット電圧Voが電流Iの検出時にも必要となるため、ゼロ点電流Ioや感度Kの変更時に限定されずに行なわれる。具体的には、制御部35のマイクロコンピュータによる割り込み動作により、定期的にフィードバック制御を行なっている。そして、割り込み間隔は、所定タイミングの間隔Δtよりも短く設定している。これにより、基準電圧Vrの安定性が向上するので、電流Iの検出時であっても、ゼロ点電流Ioや感度Kの変更時であっても、いずれの場合も高精度化が図れる。上記した以外の動作は実施の形態1と同じである。以上の構成、動作により、環境変化に応じたゼロ点電流Ioと感度Kを更新する動作に加え、これらの数値を求めるために必要な基準電圧Vrも安定化されるので、電流Iの検出精度をさらに高めることが可能な電源装置17を実現できる。なお、実施の形態1、2では電力変換部としてDC/DCコンバータ27を用いた例を示したが、これに限定されず、他のコンバータやインバータであってもよい。また、実施の形態1、2の電源装置17は車両に適用した場合について説明したが、これに限定されるものではなく、図4のようなエレベータや、回生機能を有するクレーン等の建設機器のように、大電流から小電流まで高精度に電流Iを制御する必要がある機器の電源装置として適用できる。