内燃機関により駆動されて発電を行う発電機と、該発電機により充電される蓄電装置と、該蓄電装置に充放電される電流値を計測する電流計測手段と、計測した充放電電流から前記蓄電装置の残存容量を推定する残存容量演算手段と、前記蓄電装置の残存容量が目標とする残存容量になるように前記発電機の発電電圧を決定する発電電圧演算手段と、目標とする残存容量を設定する目標残存容量演算手段と、前記内燃機関の動作点から単位発電電力量当たりの燃料消費量を計算する発電コスト演算手段を備えた車両の発電制御装置において、前記目標残存容量演算手段で設定する目標残存容量は、前記発電コスト演算手段で計算した単位発電電力量あたりの燃料消費量に応じて変更されるようにしたことを特徴とした車両の発電制御装置。前記発電コスト演算手段で計算した単位発電電力量あたりの燃料消費量が大きい場合は単位発電電力量あたりの燃料消費量が小さい場合に比べて前記目標残存容量演算手段で設定する目標残存容量を高く設定し、単位発電電力量あたりの燃料消費量が小さい場合は単位発電電力量あたりの燃料消費量が大きい場合に比べて前記目標残存容量演算手段で設定する目標残存容量を低く設定することを特徴とする請求項1に記載の車両の発電制御装置。前記発電コスト演算手段では、前記内燃機関の回転数とトルクから単位発電電力量あたりの燃料消費量を計算することを特徴とする請求項1または2に記載の車両の発電制御装置。前記発電電圧演算手段は、前記蓄電装置の残存容量を前記目標残存容量と比較し、前記残存容量が前記目標残存容量よりも少ない場合は前記発電機の効率が最も高い発電電流値になるように発電電圧を決定し、前記残存容量が前記目標残存容量よりも多い場合は発電電圧を前記蓄電装置の電圧以下に設定することを特徴とする請求項1~3のいずれか一項に記載の車両の発電制御装置。前記蓄電装置の残存容量と前記目標残存容量を比較する場合には、前記目標残存容量にヒステリシスを設けたことを特徴とする請求項4に記載の車両の蓄電制御装置特許文献1の制御装置では、例えば街中の走行など、発電コストの小さい中負荷での走行例えば定常走行と発電コストの大きい低負荷での走行例えばアイドルを繰り返して走行する場合、エンジンの運転状態によらず常に一定のバッテリSOCになるように制御を行っているため、発電コストの大きい動作点でも発電コストの小さい動作点でも同量の発電を行う必要があり、発電に消費する燃料量が多いと言う課題がある。また、特許文献3で示された通り、エンジン効率の高い動作点と発電コストの小さい動作点は同じ動作点にならないことが知られている。しかしながら、特許文献2では、エンジン効率に応じて目標SOCを設定しているため、発電に使用する燃料量が多いと言う課題がある。特許文献3の制御装置では、バッテリSOCを一定に保つように発電を実施するエンジン運転領域と発電量を決定しており、発電コストの小さい中負荷での走行と発電コストの大きい低負荷での走行を繰り返す走行の場合、発電コストの大きい低負荷での走行時に発電する機会が多くなり、結果的に発電で消費する燃料量が多くなると言う課題がある。この発明は、このような課題を解決するためになされたものであり、その目的は、発電による燃料量を低減することのできる車両の発電制御装置を提供することである。この発明に係る車両の発電制御装置は、内燃機関により駆動されて発電を行う発電機と、該発電機により充電される蓄電装置と、該蓄電装置に充放電される電流値を計測する電流計測手段と、計測した充放電電流から前記蓄電装置の残存容量を推定する残存容量演算手段と、前記蓄電装置の残存容量が目標とする残存容量になるように前記発電機の発電電圧を決定する発電電圧演算手段と、目標とする残存容量を設定する目標残存容量演算手段と、前記内燃機関の動作点から単位発電電力量当たりの燃料消費量を計算する発電コスト演算手段を備えた車両の発電制御装置において、前記目標残存容量演算手段で設定する目標残存容量は、前記発電コスト演算手段で計算した単位発電電力量あたりの燃料消費量に応じて変更されるようにしたものである。この発明によれば、発電コストの小さい中負荷での走行と発電コストの大きい低負荷での走行を繰り返して走行する車両の場合、発電コストの小さい部分での発電量を増加させ、発電コストの大きい部分での発電量を減少させることにより、全体的な発電量を減らすことなく発電に消費する燃料量を低減することが可能になる。実施の形態1.以下、図面に基づきこの発明の実施の形態について説明する。図1において、車両に搭載された車両駆動用の内燃機関であるエンジン101は、エンジン制御装置102により制御される。エンジン101の回転動力はプーリ及びベルトを介して発電機103に伝達され、発電機103が発電を行ない、バッテリや負荷に電力を供給する。この発電機103は、発電制御装置107からの発電電圧指令値に応じて発電電圧を変更することが可能なものである。発電機103の出力端には車両に搭載された、オーディオや、各種コントローラなどの電気負荷104が接続されている。電気負荷104には発電機103や後述するバッテリ105から電力が供給される。発電機103の出力端には蓄電装置であるバッテリ105が接続され、発電機103で発電した電力を蓄電しておき、必要な場合に電気負荷104に電力を供給する。バッテリ105のマイナス端子には電流計測手段である電流センサ106が取り付けられ、バッテリ105に充放電される電流値を計測し、発電制御装置107に計測データを提供する。発電制御装置107は、エンジン制御装置102から受け取ったエンジン状態情報例えばエンジン回転数やエンジントルクなどと、バッテリ電流センサ106から受け取ったバッテリ充放電電流とから発電機103の発電電圧指令値を決定し、発電機103に指令する。なお、発電制御装置107は、本実施の形態ではエンジン制御装置102と別に設けているが、エンジン制御装置102の内部など他の制御装置に組み込んでもよい。発電制御装置107は、バッテリ電流センサ106で計測されたバッテリ充放電電流値を積分してバッテリの蓄電量を計算するバッテリSOC演算部108と、エンジン101の効率マップと発電機103の効率マップとを用いて事前に計算した発電コスト単位発電電力量あたりの燃料消費量マップから発電コストを計算する発電コスト演算部109と、この発電コスト演算部109で演算した発電コストから目標とするSOCを決定する目標SOC演算部110と、この目標SOC演算部110で演算した目標SOCとバッテリSOC演算部108で演算したSOCとから発電機103で発電する目標発電電流値を演算する目標発電電流演算部111と、発電機103で発電する電流値が目標発電電流演算部111で演算した目標発電電流値になるように発電電圧を決定する発電電圧演算部112とを含んでいる。なお、本実施の形態では、バッテリSOC演算部108を発電制御装置107の内部に設けているが、バッテリ電流センサ106の中に設けてもよい。次に、前記構成の発電制御装置107の動作を、図により説明する。図2はバッテリSOC演算部108における処理を表したフローチャートである。このルーチンは、例えば100msなどの一定周期で実施される。ステップ201では、バッテリ105が満充電になっているか判断を行う。このバッテリ満充電の判断は、例えば発電機103の発電電圧が一定の状態で、バッテリ電流センサ106で計測したバッテリの充電電流が所定値以下になっている場合に満充電と判断する。この判断に使用する所定値は、バッテリ105の特性から決定し、バッテリの温度によって変更してもよい。例えば、エンジン101が初回始動後などに発電機103の発電電圧を一定にし、満充電の判定が完了するまで待つようなモードを設けることにより、SOCの初期値を設定することが可能になる。ステップ201で満充電と判断された場合、ステップ202に進む。ステップ202では、SOCを100に設定する。このSOCは、本実施の形態では100に設定しているが、バッテリの特性や温度によって99など別の値でもよい。ステップ201で満充電でないと判断された場合は、ステップ203に進む。ステップ203では、バッテリ電流センサ106で計測されたバッテリ充放電電流からバッテリSOCの変化量ΔSOCを計算する。バッテリSOCの変化量ΔSOCは、バッテリ充放電電流とこのルーチンの周期Δt例えば100msとバッテリ105の容量から次式で計算することができる。ΔSOC=バッテリ充放電電流×Δt÷バッテリ容量バッテリ電流センサ106で計測するバッテリ充放電電流の符号を放電時は正、充電時は負などと決めておくことで、バッテリSOCが増加したか、減少したかを判断することができる。ステップ203でSOC変化量ΔSOCを計算した後、ステップ204に進む。ステップ204では、前回のルーチンで計算したSOCであるSOC前回値に対して、ステップ203で計算したSOC変化量を加算することで今回のルーチンでのSOCを計算する。ステップ204でSOCを計算すればこのルーチンは終了となる。図3は、エンジン101の燃料消費率特性マップである。これは、エンジン101のエンジントルクとエンジン回転数で決まるエンジン運転状態に応じた燃料消費率mL/kJを示したものであり、図中の円の半径が小さいほど燃料消費率が小さくなることを表している。燃料消費率はエンジンが1kJの仕事を行うために必要な燃料の体積mLを表し、言い換えればエンジン101の効率を示すものであり、燃料消費率が小さいほどエンジン効率が高いことを示している。破線で示す301は最適燃費線であり、同出力を行う場合に最も燃料量が少なくなる点を示したものである。理論的には、変速機によりこの最適燃費線301でエンジン101が動作するように変速比を変更することで、燃料消費量を低減することができる。図4は、ある回転数での燃料消費量mL/sを用いて発電コストを説明した図である。燃料消費量401は、1秒当たりに消費する燃料の体積mLを表したものであり、燃料消費率402とエンジン出力を乗算することで演算することができる。なお、エンジン出力は、エンジントルクとエンジン回転数を乗算したものである。図4において、ある動作点A、B、Cでそれぞれ同量の発電電力量Pで発電を行った場合、エンジン回転数及び発電量が同じであるため、発電機103の発生する発電負荷トルクΔTA各動作点A、B、Cから水平方向の矢印で示すはどの動作点でも一定値となる。一方、発電負荷トルクΔTAが増加した場合の燃料消費量の増加分ΔQΔTAの矢印の先端から燃料消費量曲線401に至る垂直方向の矢印で示すは、各動作点で異なる値となる。発電コストDは、発電電力量Pと燃料増加分ΔQを用いて、発電コストD=ΔQ/Pで表される。すなわち、発電を行う動作点によって発電コストが異なることが説明できる。また、図4中のC点の燃料増加分ΔQが示すように、燃料消費率402が低い動作点、すなわちエンジンの効率が高い動作点と、発電コストが小さい動作点とは異なることが説明できる。図5はエンジン101のエンジントルクとエンジン回転数に応じた発電コストを表したマップである。これも、図中の円の半径が小さいほど発電コストが小さいことを表しており、最適燃費線501図3の301と同じの位置と発電コストの最小点の位置から、エンジン効率が最も良いポイントと、発電コストが小さいポイントが異なることが説明できる。発電コストは、エンジン101が中回転領域、中負荷領域で最小となり、このようなエンジン動作モードで発電を行った場合は発電による燃料増加量が少ない。図6は、発電機103の発電電圧が一定の場合の発電機回転数と発電効率の関係を表した図である。601、602、603は発電する電流値を変更した場合の発電機回転数と発電効率の関係を表したものであり、発電電流は例えば10A、20A、30Aのように、601、602、603の順で大きい値としている。このように、発電機103の効率は発電電流が大きい場合ほど効率が向上する。図7は、本実施の形態の発電制御装置107における処理を表したフローチャートである。このルーチンは、例えば100msなどの一定周期で処理を行う。ステップ701では、発電電圧演算部112において、車両の情報から減速状態か判断する。車両情報は図示しない車速センサやアクセルポジションセンサの情報を使用して、例えば車速がゼロ以上かつアクセルが踏まれていない場合などを減速状態と判断する。ステップ701で減速状態と判断された場合はステップ702に、それ以外はステップ703に移る。ステップ702では、発電電圧演算部112において、発電機103の発電電圧を減速用の設定値に変更する。この減速用の設定値は、バッテリ105、電気負荷104が許容できる限り大きい値とする。ステップ703では、発電コスト演算部109において、エンジン101の運転状態から発電コストを演算する。発電コストは、エンジン101のエンジントルクと、エンジン回転数から図5の発電コストマップを使用して求める。このように、エンジン回転数とエンジントルクから発電コストを演算することで、新たにセンサ等を設ける必要がなく、コストアップなく発電コストを演算することができる。ステップ704では、目標SOC演算部110において目標SOCの演算を行う。ここで、目標SOCは、ステップ703で演算した発電コストに応じて決定される。例えば、図10に示す発電コストと目標SOCの関係を利用して目標SOCは決定される。このように、発電コストに応じて目標SOCを変更することで、狙いの発電コストでの発電量を増加させることが可能となり、発電による燃料量が少ない発電制御装置が提供可能となる。また、発電コストが小さい場合は目標SOCを高く、発電コストが大きい場合は目標SOCを低くすることで、発電コストが小さい部分での発電量を増加させることが可能となり、結果的に発電による燃料量が少ない発電制御装置が提供可能となる。ステップ705では、目標発電電流演算部111において、ステップ704で演算した目標SOCとバッテリSOC演算部108で演算したSOCとから発電機103の目標発電電流値を演算する。ステップ706では、発電電圧演算部112において、ステップ705で演算された目標発電電流が発電されるように発電機103の発電電圧を決定する。図8は、図7のステップ705の目標発電電流演算の処理を表したフローチャートであり、目標発電電流演算部111での演算である。ステップ801では、前回の目標発電電流値がゼロか判断を行う。前回の目標発電電流がゼロであった場合、すなわち発電を実施していない場合はステップ803に進み、それ以外はステップ802に進む。ステップ802では、目標SOC演算部110で演算された目標SOCに所定値を加算した目標SOC1を計算する。前記所定値は、ステップ803の判定とステップ802の判定でヒステリシスを設けるためのものであり、発電状態と発電しない状態を繰り返さないように設定する。このように目標発電電流の演算方法にヒステリシスを設けることで、発電ありと発電なしを短時間で繰り返さないように構成することが可能となり、結果的に発電負荷が短時間で変動しない構成となり、車両の運転者に違和感を与えない発電制御装置を提供することが可能となる。次に、目標SOC1とバッテリSOC演算部108で演算したSOCを比較し、SOCが目標SOC1よりも大きい場合はステップ804へ進み、それ以外はステップ805へ進む。ステップ804では、目標発電電流をゼロに設定し、発電を停止する。ステップ805では、目標発電電流に所定値を設定する。この所定値は、図6の発電機103の特性に示すように、発電効率が高くなる電流を設定する。このように、発電効率が高くなる電流を設定することで、発電による燃料増加量を低減することが可能となり、結果的に発電による燃料増加が少ない発電制御装置を提供することが可能となる。一方、ステップ803では、目標SOC演算部110で演算された目標SOCと、バッテリSOC演算部108で演算したバッテリSOCを比較し、SOCが目標SOCよりも大きい場合はステップ807に進み、それ以外はステップ806に進む。ステップ806では、ステップ804と同様に発電電流に所定値を設定する。ステップ807では、目標発電電流をゼロに設定し、発電を停止する。図9は図7のステップ706の発電電圧演算の処理を表したフローチャートであり、発電電圧演算部112での演算である。ステップ901では、目標発電電流演算部111で演算された目標発電電流がゼロか判断を行う。目標発電電流がゼロであった場合は、発電停止と認識し、ステップ902に進み、それ以外はステップ903に進む。ステップ902では、発電機103の発電電圧を0Vに設定し、発電を停止する。ステップ903では、発電機103の特性から、発電電流を推定する。この推定方法は、例えば発電機103の回転数と負荷率からマップを使用して演算することができる。発電機103の回転数はエンジン101のエンジン回転数にプーリ比を乗算することで演算する。また、発電機103の負荷率は図示しない通信線を使用して発電機103より入手する。ステップ904では、ステップ903で推定した発電機103の発電電流と、目標発電電流演算部111で演算された目標発電電流値が一致するようにPI制御を行い、発電電圧を決定する。図10は発電コストと目標SOCの関係を示した図である。この発電コストと目標SOCの関係を利用して、目標SOC演算部110で目標SOCを決定する。図10では、発電コストと目標SOCの関係は一次関数として表されているが、必ずしもこの形である必要はなく、例えば発電コストに応じて2値で制御を行ってもよい。また、目標SOCの最小値と最大値はバッテリ105の特性から許容される値を設定する。図11は、本実施の形態の動作波形を表すタイムチャートである。チャート1101は車両の速度を、チャート1102はエンジン101のエンジン回転数を、チャート1103はエンジン101のエンジントルクを、チャート1104は発電コスト演算部109で演算した発電コストを示している。チャート1105は従来の制御、すなわち目標SOCを一定とする制御を行った場合の目標SOC、目標SOC1、及びバッテリSOCであり、チャート1106はそのときの発電機103の発電量を示したものである。チャート1107はこの発明の発電制御装置を適用した場合の目標SOC、目標SOC1、及びバッテリSOCであり、チャート1108はその制御を行った場合の発電量を示したものである。このタイムチャートは、時間t0からt1までは発電コストの小さい中車速で定速走行を実施し、その後t1からt2間で減速し、t2からt3の間は発電コストの大きいアイドル状態と低速走行状態を交互に走行している場合である。また、t3以降は再び発電コストの小さい中車速での定速走行を実施する場合である。時間t0からt1までの間は、発電コストの小さい中車速での定速走行区間であり、この領域では、チャート1105のSOCもチャート1107のSOCも共に図8のフローチャートに従って、SOCが目標SOCと目標SOC1の間になるように発電が行われる。時間t1からt2までの間は、減速区間であり、エンジン101が燃料噴射を行わない区間である。そのため、この区間では発電コストがゼロになるため、バッテリ105が許容できる範囲で発電量を増加させて発電を行う。時間t2からt3は、発電コストの大きいアイドル、低速などの低負荷での走行である。従来の制御を実施しているチャート1105では、減速区間t1からt2の間に蓄電された電力が放電されるまでは発電を実施せず、バッテリSOCが目標SOCよりも小さくなると発電を行い、以後は図8のフローチャートに従って発電を行う。一方、この発明の発電制御を行っているチャート1107のSOCでは、発電コストが大きくなっているため目標SOCが低く設定されており、バッテリSOCが目標SOCよりも小さくなるまでの時間、すなわち発電を行わない区間をチャート1105のバッテリSOCに比べて長くすることが可能となっている。時間t3以降は発電コストの小さい中車速での定速走行区間であり、従来の制御を実施しているチャート1105、1106では、目標SOCに応じて発電を行っている。一方、この発明の発電制御を実施しているチャート1107、1108では、発電コストが小さくなったことで目標SOCが高く設定されているため、目標SOCに到達するまで連続で発電を行っている。このように、この発明の発電制御を実施した場合は、発電コストが大きい区間で発電量を低減し、発電コストの小さい区間で発電を行うことで、同電力量の発電を行った場合でも発電に消費する燃料量を低減することが可能となる。本実施の形態では、エンジン運転状態からオンラインで発電コストを演算し、その後発電コストから目標SOCを演算する制御となっているが、必ずしもこの形態をとる必要はなく、例えばオフラインで各エンジン運転状態から発電コストを把握しておき、オンラインでの処理は発電コストが小さい部分で目標SOCが大きくなるようにエンジン状態から直接目標SOCを設定してもよい。