JP2007037260A - 内燃機関の発電制御装置 - Google Patents
内燃機関の発電制御装置 Download PDFInfo
- Publication number
- JP2007037260A JP2007037260A JP2005215732A JP2005215732A JP2007037260A JP 2007037260 A JP2007037260 A JP 2007037260A JP 2005215732 A JP2005215732 A JP 2005215732A JP 2005215732 A JP2005215732 A JP 2005215732A JP 2007037260 A JP2007037260 A JP 2007037260A
- Authority
- JP
- Japan
- Prior art keywords
- power generation
- fuel consumption
- target
- increase
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Control Of Eletrric Generators (AREA)
- Control Of Vehicle Engines Or Engines For Specific Uses (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Abstract
【課題】 必要な発電量を確保しつつ発電による燃料消費量増加分を確実に低減する。 【解決手段】 エンジン運転中に、所定の演算周期で発電による燃料消費率増加分を発電機16の発電量で割り算して電費(単位発電量当たりの燃料消費量増加分)を求め、この電費の使用頻度、発電可能量平均値、平均消費電力のデータに基づいてバッテリ12の充放電収支がバランスするように目標電費を算出する。この際、今回走行時のデータのサンプル期間(走行開始から現在までの期間)が所定期間を越えるまでは、今回走行時に算出した目標電費と、制御装置11の書き換え可能な不揮発性メモリに記憶されている前回走行時の目標電費とに基づいて最終的な目標電費を決定する。このようにすれば、今回走行時のデータのサンプル期間が短くても、実際の発電制御に用いる最終的な目標電費の精度を確保することができて、燃費節減効果と放充電収支とを両立させることができる。
【選択図】 図1
【選択図】 図1
Description
本発明は、発電機の発電による燃料消費量増加分を考慮して発電機を制御する機能を備えた内燃機関の発電制御装置に関する発明である。
車両に搭載された発電機(オルタネータ)の制御は、バッテリの充電状態を監視して、バッテリが充電不足とならないように発電機の制御電流(界磁電流)を制御して発電量を制御するようにしたものが多い(特許文献1,2参照)。
この発電機は、内燃機関(エンジン)の動力で駆動されて発電するため、発電時には、発電機を駆動する負荷に応じて燃料が余分に消費されることになる。そこで、発電時の燃料消費量が少なくなる領域でのみ、発電機の発電を行うようにしたものがある(特許文献3,4参照)。
特開2000−4502号公報
特開2001−78365号公報
特表平6−505619号公報
特開2005−12971号公報
上記特許文献3,4の技術は、いずれも発電による燃料消費量増加分を低減する技術であるが、発電を実行する運転条件を予め設定されたマップで決定するため、マップの精度や車両の使用環境(走行道路状況の相違、運転者による車速・加減速の相違等)や車両特性のばらつきによって燃費節減効果が左右されやすく、必ずしも十分な燃費節減効果が得られるとは限らない。
本発明はこのような事情を考慮してなされたものであり、従ってその目的は、必要な発電量を確保しつつ、発電による燃料消費量増加分を確実に低減することができる内燃機関の発電制御装置を提供することにある。
上記目的を達成するために、請求項1に係る発明は、内燃機関の動力で駆動される発電機と、前記発電機で発電した電力が充電されるバッテリと、内燃機関の運転中に所定の演算周期で前記発電機の発電による燃料消費量増加分と発電量とに基づいて単位発電量当たりの燃料消費量増加分を算出する燃料消費量算出手段と、前記所定の演算周期で算出された前記単位発電量当たりの燃料消費量増加分のデータを統計処理して該単位発電量当たりの燃料消費量増加分の使用頻度を算出して該使用頻度に基づいて目標の燃料消費量増加分を算出する目標値算出手段と、前記燃料消費量算出手段で算出した現在の単位発電量当たりの燃料消費量増加分と前記目標の燃料消費量増加分とを比較して前記発電機の発電を制御する発電制御手段とを備え、前回走行時の目標の燃料消費量増加分を記憶手段に記憶保持させ、今回走行時の前記単位発電量当たりの燃料消費量増加分のデータのサンプル期間が所定期間を越えるまでは、今回走行時に算出した目標の燃料消費量増加分と前記記憶手段に記憶されている前回走行時の目標の燃料消費量増加分とに基づいて最終的な目標の燃料消費量増加分を決定するようにしたものである。
このように、発電制御手段によって単位発電量当たりの燃料消費量増加分を目標の燃料消費量増加分に制御するように構成すれば、発電を実行する運転条件を予め設定されたマップで決定する従来の発電制御方式と比較して、マップの精度や車両の使用環境(走行道路状況の相違、運転者による車速・加減速の相違等)や車両特性のばらつきの影響が少なくなり、必要な発電量を確保しつつ、発電による燃料消費量増加分を確実に低減することができる。
ところで、今回走行時の単位発電量当たりの燃料消費量増加分のデータのサンプル期間が短いと、今回走行時のデータのサンプル数が少ないために単位発電量当たりの燃料消費量増加分の使用頻度の精度が悪くなり、その結果、この使用頻度に基づいて算出する目標の燃料消費量増加分の精度も悪くなるため、燃費節減効果が低下したり、バッテリの放充電収支のバランスが悪くなってしまう可能性がある。
この対策として、請求項1に係る発明では、今回走行時のデータのサンプル期間が所定期間を越えるまでは、今回走行時に算出した目標の燃料消費量増加分と記憶手段に記憶されている前回走行時の目標の燃料消費量増加分とに基づいて最終的な目標の燃料消費量増加分を決定するようにしたものである。このようにすれば、今回走行時のデータのサンプル期間が短く、今回走行時に算出した目標の燃料消費量増加分の精度が悪い期間は、記憶手段に記憶されている精度の良い前回走行時の目標の燃料消費量増加分と今回走行時に算出した目標の燃料消費量増加分とを併用して最終的な目標の燃料消費量増加分を決定することができるため、今回走行時のデータのサンプル期間が短くても、実際の発電制御に用いる最終的な目標の燃料消費量増加分の精度を確保することができて、燃費節減効果と放充電収支とを両立させることができる。
この場合、最終的な目標の燃料消費量増加分の具体的な算出方法は、例えば、前回走行時の目標の燃料消費量増加分と今回走行時の目標の燃料消費量増加分とをパラメータとして最終的な目標の燃料消費量増加分を算出するための二次元マップ又は数式を予め作成しておき、この二次元マップ又は数式により最終的な目標の燃料消費量増加分を算出するようにしても良いが、請求項2のように、今回走行時に算出した目標の燃料消費量増加分と記憶手段に記憶されている前回走行時の目標の燃料消費量増加分との重み付き平均によって最終的な目標の燃料消費量増加分を算出するようにすると良い。このようにすれば、重み付き平均という簡単な演算方法で最終的な目標の燃料消費量増加分を精度良く算出することができる。
この重み付き平均の処理に用いる重み係数は、演算処理の簡略化のために、予め適合した固定値としても良いが、目標の燃料消費量増加分の算出精度に影響を及ぼす様々な条件に応じて変化させるようにしても良い。
例えば、請求項3のように、重み付き平均の処理に用いる重み係数を、今回走行時のデータのサンプル期間に基づいて設定するようにしても良い。このようにすれば、例えば、今回走行時のデータのサンプル期間が短く、今回走行時の目標の燃料消費量増加分の算出精度が悪いときには、今回走行時の目標の燃料消費量増加分の使用割合(重み係数)を小さくして、前回走行時の目標の燃料消費量増加分の使用割合(重み係数)を大きくすることで、最終的な目標の燃料消費量増加分の算出精度を確保し、その後、今回走行時のデータのサンプル期間が長くなるに従って(今回走行時の目標の燃料消費量増加分の算出精度が高くなるに従って)、今回走行時の目標の燃料消費量増加分の使用割合(重み係数)を増加させて、最終的な目標の燃料消費量増加分の算出精度を向上させるという制御が可能となる。
また、請求項4のように、重み付き平均の処理に用いる重み係数を、今回走行時に算出した目標の燃料消費量増加分と前記記憶手段に記憶されている前回走行時の目標の燃料消費量増加分との偏差に基づいて設定するようにしても良い。このようにすれば、今回走行時と前回走行時との間の目標の燃料消費量増加分の偏差に応じて今回走行時の目標の燃料消費量増加分の使用割合(重み係数)を増減させて、最終的な目標の燃料消費量増加分の算出精度を向上させるという制御が可能となる。
また、請求項5のように、重み付き平均の処理に用いる重み係数を、今回走行時の消費電力、運転条件、バッテリの残充電量、バッテリ容量のうちのいずれか1つ又は2つ以上の組み合わせに基づいて設定するようにしても良い。このようにすれば、燃費節減効果と放充電収支とを両立させるように今回走行時の目標の燃料消費量増加分の使用割合(重み係数)を増減させて、最終的な目標の燃料消費量増加分の算出精度を向上させるという制御が可能となる。
また、請求項6のように、今回走行時のデータのサンプル期間が所定期間を越えるまでは、記憶手段に記憶されている前回走行時の目標の燃料消費量増加分を今回走行時の目標の燃料消費量増加分として用いるようにしても良い。このようにすれば、今回走行時のデータに基づいて算出する目標の燃料消費量増加分の精度が確保されるまで、記憶手段に記憶されている前回走行時の目標の燃料消費量増加分を今回走行時の目標の燃料消費量増加分として用いるという制御が可能となり、今回走行時のデータのサンプル期間が短くても、実際の発電制御に用いる最終的な目標の燃料消費量増加分の精度を確保することができる。
この場合、請求項7のように、記憶手段に記憶されている前回走行時の目標の燃料消費量増加分を最終的な目標の燃料消費量増加分として用いる“所定期間”を、今回走行時の消費電力、運転条件、前記バッテリの残充電量、バッテリ容量のうちのいずれか1つ又は2つ以上の組み合わせに基づいて設定するようにしても良い。このようにすれば、燃費節減効果と放充電収支とを両立させるように所定期間を増減させて、最終的な目標の燃料消費量増加分の算出精度を向上させるという制御が可能となる。
以下、本発明を実施するための最良の形態を具体化した2つの実施例1,2を説明する。
本発明の実施例1を図1乃至図17に基づいて説明する。
図1に示す制御装置11は、バッテリ12からキースイッチ13を介して電源が供給され、エンジン運転中に点火装置14と噴射装置15の動作を制御すると共に、発電機16(オルタネータ)の発電を制御する発電制御手段として機能する。
図1に示す制御装置11は、バッテリ12からキースイッチ13を介して電源が供給され、エンジン運転中に点火装置14と噴射装置15の動作を制御すると共に、発電機16(オルタネータ)の発電を制御する発電制御手段として機能する。
この制御装置11は、電流センサ17(電流検出手段)で検出したバッテリ12の充放電電流及び/又は電圧センサ18(電圧検出手段)で検出したバッテリ12の開放端子電圧に基づいてバッテリ12の残充電量SOC(充電割合)を算出する。例えば、バッテリ12の充放電電流を電流センサ17で検出して、その検出値を積算していく。この際、バッテリ12の充電電流をプラス値とし、バッテリ12の放電電流をマイナス値とすることで、充放電電流積算値をバッテリ12の残充電量SOCに応じて増減させる。これにより、充放電電流積算値をバッテリ残充電量SOCの検出データとして用いることが可能となる。或は、バッテリ12の開放端子電圧と残充電量SOCとの関係を表すマップを参照して、現在のバッテリ12の開放端子電圧に応じた残充電量SOCを算出するようにしても良い。勿論、バッテリ12の充放電電流積算値と開放端子電圧の両方に基づいてバッテリ12の残充電量SOCを算出するようにしても良い。
次に、本実施例1の発電制御について説明する。
図2は、単位時間当たりの燃料消費量である燃料消費率とエンジン運転条件との関係を示す図である。図2に示すように、燃料消費率は、エンジン回転速度とエンジントルクによって変化する。燃料消費率は、エンジントルクに応じて曲線的に変化するため、エンジン回転速度が一定の場合は、エンジントルクの増加量に対して、燃料消費率の増加量が大きい条件と小さい条件がある。例えば、発電機16で一定量の発電を実施した場合、発電によりエンジントルクに発電機16によるトルクが付加され、エンジンの動作点が変わる。このため、燃料消費率は、発電量により変化する。この時、燃料消費率が少ない条件のみ選択して、発電を実施すれば、燃料消費率を低減することが可能となる。
図2は、単位時間当たりの燃料消費量である燃料消費率とエンジン運転条件との関係を示す図である。図2に示すように、燃料消費率は、エンジン回転速度とエンジントルクによって変化する。燃料消費率は、エンジントルクに応じて曲線的に変化するため、エンジン回転速度が一定の場合は、エンジントルクの増加量に対して、燃料消費率の増加量が大きい条件と小さい条件がある。例えば、発電機16で一定量の発電を実施した場合、発電によりエンジントルクに発電機16によるトルクが付加され、エンジンの動作点が変わる。このため、燃料消費率は、発電量により変化する。この時、燃料消費率が少ない条件のみ選択して、発電を実施すれば、燃料消費率を低減することが可能となる。
そこで、本実施例1では、発電制御のパラメータとして、単位発電量当たりの燃料消費率増加分(以下「電費」という)を用いる。この電費は、次のようにして算出される。まず、エンジン運転中(走行中)に、発電機16の発電を実行した場合の燃料消費率(発電時燃料消費率)と発電機16の発電を停止した場合の燃料消費率(非発電時燃料消費率)との差分から発電による燃料消費率増加分を求め、この発電による燃料消費率増加分を発電機16の発電量で割り算して電費(単位発電量当たりの燃料消費量増加分)を求める。
電費(g/skW) =(発電時燃料消費率−非発電時燃料消費率)/発電量
電費(g/skW) =(発電時燃料消費率−非発電時燃料消費率)/発電量
また、本実施例1では、エンジン運転中に、所定の演算周期(例えば8ms周期)で、クラス毎の電費の使用頻度、電費平均値、発電可能量平均値及び平均消費電力を算出し、これら各データに基づいてバッテリ12の充放電収支が0となる(充電量と放電量がバランスする)ように目標電費を算出すると共に、現在のバッテリ残充電量SOCと目標残充電量との偏差を小さくするように目標電費をPI制御によりフィードバック補正し、現在の電費を補正後の目標電費(最終目標電費)と比較して発電機16の発電を実行するか否かを判定する。ここで、「クラス」とは、電費の最小値(0)から最大値までの範囲を所定数に分割した所定範囲を意味する。
更に、本実施例1では、目標電費の算出に用いるデータのサンプル数が予め設定された所定数NFClmt になる毎(1つの検出サイクル区間が終了する毎)に、該サンプル数を初期化すると共に、該データの最終値を制御装置11のRAMに記憶し、前記データの最終値の記憶後に開始された今回の検出サイクル区間のサンプル数に応じて今回の検出サイクル区間のデータを前記RAMに記憶されている前回の検出サイクル区間のデータの最終値を用いて補正し、該補正後のデータに基づいて目標電費を算出するようにしている。このようにすれば、今回の検出サイクル区間のサンプル数がまだ少ない場合でも、前回の検出サイクル区間のデータの最終値を今回の検出サイクル区間のデータに適度に反映させて、目標電費の連続性と信頼性を維持することができる。
ところで、目標電費の算出に用いる今回走行時の電費の使用頻度等のデータのサンプル期間が短いと、今回走行時のデータのサンプル数が少ないために電費の使用頻度等のデータの精度が悪くなり、その結果、このデータに基づいて算出する目標電費の精度も悪くなるため、燃費節減効果が低下したり、バッテリ12の放充電収支のバランスが悪くなってしまう可能性がある。
この対策として、本実施例1では、今回走行時のデータのサンプル期間が所定期間を越えるまでは、制御装置11のバックアップRAM等の書き換え可能な不揮発性メモリ(記憶手段)に記憶されている前回走行時の最終目標電費と今回走行時に算出した目標電費とに基づいて最終的な目標電費を決定するようにしている。このようにすれば、今回走行時のデータのサンプル期間が短く、今回走行時に算出した目標電費の精度が悪い期間は、不揮発性メモリに記憶されている精度の良い前回走行時の最終目標電費と今回走行時に算出した目標電費とを併用して最終的な目標電費を決定することができるため、今回走行時のデータのサンプル期間が短くても、実際の発電制御に用いる最終的な目標電費の精度を確保することができて、燃費節減効果と放充電収支とを両立させることができる。
以上説明した本実施例1の発電制御は、制御装置11によって図3乃至図12の各ルーチンによって実行される。以下、これら各ルーチンの処理内容を説明する。
[電費算出ルーチン]
図3の電費算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう燃料消費量算出手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ101で、現在の運転条件(例えばエンジン回転速度、吸入空気量、要求発電量等)を読み込む。ここで、要求発電量は、予め発電機16の最大発電可能量、発電機16の発電効率等から設定される。
図3の電費算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう燃料消費量算出手段としての役割を果たす。本ルーチンが起動されると、まず、ステップ101で、現在の運転条件(例えばエンジン回転速度、吸入空気量、要求発電量等)を読み込む。ここで、要求発電量は、予め発電機16の最大発電可能量、発電機16の発電効率等から設定される。
この後、ステップ102に進み、現在の運転条件から現在のエンジントルクを算出した後、ステップ103に進み、要求発電量をトルクに換算し(つまり要求発電量分の発電を行うのに必要なトルクを算出し)、これを要求発電量トルクとして制御装置11のRAMに記憶する。
そして、次のステップ104で、発電機16が発電中であるか否かを判定し、発電中であれば、ステップ105に進み、現在の発電量をトルクに換算して、これを現在の発電量トルクとして制御装置11のRAMに記憶し、次のステップ106で、上記ステップ102で算出した現在のエンジントルクから上記ステップ105で算出した現在の発電量トルクを差し引いて非発電時トルクを求める。この非発電時トルクは、発電機16の発電を停止した場合のエンジントルクに相当する。一方、上記ステップ104で、発電中でないと判定されれば、ステップ107に進み、現在のエンジントルクをそのまま非発電時トルクとする。
以上のようにして非発電時トルクを算出した後、ステップ108に進み、上記ステップ102で算出した現在のエンジントルクに上記ステップ103で算出した要求発電量トルクを加算して発電時トルクを求める。この発電時トルクは、発電機16の発電を実行した場合のエンジントルクに相当する。
この後、ステップ109に進み、現在のエンジン回転速度と非発電時トルクに応じた非発電時燃料消費率(g/s) を図2と同様の燃料消費率算出マップにより算出する。この非発電時燃料消費率は、発電機16の発電を停止した場合の燃料消費率に相当する。燃料消費率の算出マップは、定常運転条件における燃料消費率を予め計測し、設定しておく。
この後、ステップ110に進み、現在のエンジン回転速度と発電時トルクに応じた発電時燃料消費率(g/s) を図2と同様の燃料消費率算出マップにより算出する。この発電時燃料消費率は、発電機16の発電を実行した場合の燃料消費率に相当する。
この後、ステップ111に進み、発電時燃料消費率(g/s) と非発電時燃料消費率(g/s) との差分を現在の発電量(kW)で割り算して、単位発電量当たりの燃料消費率である電費CFC(g/skW) を求める。
CFC(g/kWs) =(発電時燃料消費率−非発電時燃料消費率)/発電量
CFC(g/kWs) =(発電時燃料消費率−非発電時燃料消費率)/発電量
[電費クラスデータ蓄積ルーチン]
図4及び図5の電費クラスデータ蓄積ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、上記図3の電費算出ルーチンによって所定周期で算出された電費CFCを統計処理してクラス毎の電費CFCの使用頻度を算出すると共に、電費平均値、発電可能量平均値を算出して、それらのデータを制御装置11のRAMに蓄積する。
図4及び図5の電費クラスデータ蓄積ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、上記図3の電費算出ルーチンによって所定周期で算出された電費CFCを統計処理してクラス毎の電費CFCの使用頻度を算出すると共に、電費平均値、発電可能量平均値を算出して、それらのデータを制御装置11のRAMに蓄積する。
本ルーチンが起動されると、まずステップ201で、エンジン回転速度と発電機16の発電特性との関係を表すマップ等から現在のエンジン回転速度に応じた発電可能量GPを算出する。この後、ステップ202に進み、現在までの合計サンプル数NFCtotal のカウント値をカウントアップして、ステップ203に進み、現在の合計サンプル数NFCtotal が1つの検出サイクル区間全体の合計サンプル数に相当する所定値NFClmt を越えたか否かを判定し、現在の合計サンプル数NFCtotal が所定数NFClmt を越えていなければ、検出サイクル区間の途中であると判断して、ステップ206に進み、現在の合計サンプル数NFCtotal と所定数NFClmt を用いて現在及び過去のデータに対する補正係数Knew ,Kold を算出する。
Knew =NFCtotal /NFClmt ……(1)
Kold =1−Knew ……(2)
Knew =NFCtotal /NFClmt ……(1)
Kold =1−Knew ……(2)
これに対して、上記ステップ203で、現在の合計サンプル数NFCtotal が所定値NFClmt を越えていると判定されれば、1つの検出サイクル区間の終了時期と判断して、ステップ204に進み、合計サンプル数NFCtotal のカウンタをリセットして合計サンプル数NFCtotal を初期値“1”に戻し、次のステップ205で、前回の本ルーチンの実行により演算した各クラスA〜Zの電費平均値CFCave(A)〜CFCave(Z)、発電可能量平均値GPave(A)〜GPave(Z)、使用頻度R(A) 〜R(Z) と後述する図6の平均消費電力算出ルーチンで算出した平均消費電力CPave のデータをそれぞれ前回の検出サイクル区間の各データの最終値CFCavebf(A)〜CFCavebf(Z)、GPavebf(A)〜GPavebf(Z)、Rbf(A) 〜Rbf(Z) 、CPavebf として制御装置11のRAMに記憶する。
《各クラスA〜Zの電費平均値CFCave の最終値の記憶》
CFCavebf(A)=CFCave(A)
CFCavebf(B)=CFCave(B)
・・・・・・・・・・・・・・
CFCavebf(Z)=CFCave(Z)
《各クラスA〜Zの発電可能量平均値GPave の最終値の記憶》
GPavebf(A)=GPave(A)
GPavebf(B)=GPave(B)
・・・・・・・・・・・・
GPavebf(Z)=GPave(Z)
《各クラスA〜Zの使用頻度Rの最終値の記憶》
Rbf(A) =R(A)
Rbf(B) =R(B)
・・・・・・・
Rbf(Z) =R(Z)
《平均消費電力CPave の最終値の記憶》
CPavebf =CPave
CFCavebf(A)=CFCave(A)
CFCavebf(B)=CFCave(B)
・・・・・・・・・・・・・・
CFCavebf(Z)=CFCave(Z)
《各クラスA〜Zの発電可能量平均値GPave の最終値の記憶》
GPavebf(A)=GPave(A)
GPavebf(B)=GPave(B)
・・・・・・・・・・・・
GPavebf(Z)=GPave(Z)
《各クラスA〜Zの使用頻度Rの最終値の記憶》
Rbf(A) =R(A)
Rbf(B) =R(B)
・・・・・・・
Rbf(Z) =R(Z)
《平均消費電力CPave の最終値の記憶》
CPavebf =CPave
この後、ステップ206に進み、現在の合計サンプル数NFCtotal と所定数NFClmt を用いて前記(1)、(2)式により現在及び過去のデータに対する補正係数Knew ,Kold を算出する。このステップ206の処理は、前述したようにステップ203で「No」と判定された場合も行われるため、エンジン運転中に所定の演算周期(例えば8ms周期)で、現在及び過去のデータに対する補正係数Knew ,Kold が算出される。
この後、図5のステップ207aに進み、今回の電費CFCが最小のクラスであるクラスAに含まれるか否か(電費CFC<Aか否か)を判定し、今回の電費CFCがクラスAに含まれれば、クラスAのデータを次のようにして更新する。
まず、ステップ208aで、クラスAのサンプル数NFC(A) のカウント値をカウントアップした後、ステップ209aに進み、クラスAの前回の電費平均値 oldCFCave(A)とサンプル数NFC(A) と今回の電費CFCから、現在の検出サイクル区間における今回のクラスAの電費平均値CFCave(A)を次式により算出する。
CFCave(A)=[ oldCFCave(A)×{NFC(A) −1}+CFC]/NFC(A)
CFCave(A)=[ oldCFCave(A)×{NFC(A) −1}+CFC]/NFC(A)
この後、ステップ210aに進み、クラスAの前回の発電可能量 oldGPave(A)とサンプル数NFC(A) と今回の発電可能量GPから、現在の検出サイクル区間における今回のクラスAの発電可能量平均値GPave(A)を次式により算出する。
GPave(A)=[ oldGPave(A)×{NFC(A) −1}+GP]/NFC(A)
GPave(A)=[ oldGPave(A)×{NFC(A) −1}+GP]/NFC(A)
この後、ステップ211aに進み、クラスAのサンプル数NFC(A) を全クラスA〜Zの合計サンプル数NFCtotal で割り算して、現在の検出サイクル区間における今回のクラスAの使用頻度R(A) を求める。
R(A) =NFC(A) /NFCtotal
R(A) =NFC(A) /NFCtotal
この後、ステップ212aに進み、現在の検出サイクル区間における今回のクラスAの電費平均値CFCave(A)と、制御装置11のRAMに記憶された前回の検出サイクル区間のクラスAの電費平均値の最終値CFCavebf(A)と、現在及び過去のデータに対する補正係数Knew ,Kold を用いて、現在の検出サイクル区間におけるクラスAの最終電費平均値CFCavef(A) を次式により算出する。
CFCavef(A) =CFCavebf(A)×Kold +CFCave(A)×Knew
CFCavef(A) =CFCavebf(A)×Kold +CFCave(A)×Knew
上式は、現在及び過去のデータに対する補正係数Knew ,Kold を重み係数として用いて、現在の検出サイクル区間における今回のクラスAの電費平均値CFCave(A)と、前回の検出サイクル区間のクラスAの電費平均値の最終値CFCavebf(A)との重み付き平均値を算出して、これを現在の検出サイクル区間におけるクラスAの最終電費平均値CFCavef(A) とすることを意味し、その重み係数(Knew ,Kold )は、現在の検出サイクル区間の合計サンプル数NFCtotal に応じて設定される(ステップ206)。
この後、ステップ213aに進み、現在の検出サイクル区間における今回のクラスAの発電可能量平均値GPave(A)と、RAMに記憶された前回の検出サイクル区間のクラスAの発電可能量平均値の最終値GPavebf(A)と、現在及び過去のデータに対する補正係数Knew ,Kold を用いて、現在の検出サイクル区間におけるクラスAの最終発電可能量平均値GPavef(A) を次式により算出する。
GPavef(A) =GPavebf(A)×Kold +GPave(A)×Knew
GPavef(A) =GPavebf(A)×Kold +GPave(A)×Knew
この後、ステップ214aに進み、現在の検出サイクル区間における今回のクラスAの使用頻度R(A) と、RAMに記憶された前回の検出サイクル区間のクラスAの使用頻度の最終値Rbf(A) と、現在及び過去のデータに対する補正係数Knew ,Kold を用いて、現在の検出サイクル区間におけるクラスAの最終使用頻度Rf(A)を次式により算出する。
Rf(A)=Rbf(A) ×Kold +R(A) ×Knew
Rf(A)=Rbf(A) ×Kold +R(A) ×Knew
一方、前記ステップ207a で、今回の電費CFCがクラスAに含まれていないと判定されれば、ステップ207bに進み、今回の電費CFCがクラスAの次に大きいクラスBに含まれるか否か(A≦電費CFC<Bか否か)を判定し、今回の電費CFCがクラスBに含まれれば、ステップ208b〜214bの処理を実行して、上記と同様の方法で、現在の検出サイクル区間におけるクラスBのサンプル数NFC(B) 、電費平均値CFCave(B)、発電可能量平均値GPave(B)、使用頻度R(B) 、最終電費平均値CFCavef(B) 、最終発電可能量平均値GPavef(B) 、最終使用頻度Rf(B)を算出して、それらの記憶データを更新する。
これ以降、エンジン運転中に、同様の方法で、クラスC、クラスD、……クラスY、クラスZについても、現在の検出サイクル区間における電費平均値CFCave(C)〜CFCave(Z)、発電可能量平均値GPave(C)〜GPave(Z)、使用頻度R(C) 〜R(Z) 、最終電費平均値CFCavef(C) 〜CFCavef(Z) 、最終発電可能量平均値GPavef(C) 〜GPavef(Z) 、最終使用頻度Rf(C)〜Rf(Z)を算出して、これらのデータを更新する。
[平均消費電力算出ルーチン]
図6の平均消費電力算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行される。本ルーチンが起動されると、まずステップ301で、車両で消費される演算周期当たりの消費電力CPを算出する。この後、ステップ302に進み、現在の検出サイクル区間における前回の平均消費電力 oldCPave と合計サンプル数NFCtotal と今回の消費電力CPから、平均消費電力CPave を次式により算出する。
CPave ={ oldCPave ×(NFCtotal −1)+CP}/NFCtotal
図6の平均消費電力算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行される。本ルーチンが起動されると、まずステップ301で、車両で消費される演算周期当たりの消費電力CPを算出する。この後、ステップ302に進み、現在の検出サイクル区間における前回の平均消費電力 oldCPave と合計サンプル数NFCtotal と今回の消費電力CPから、平均消費電力CPave を次式により算出する。
CPave ={ oldCPave ×(NFCtotal −1)+CP}/NFCtotal
この後、ステップ303に進み、上記ステップ302で算出した今回の平均消費電力CPave と、制御装置11のRAMに記憶された前回の検出サイクル区間の平均消費電力の最終値CPavebf と、現在及び過去のデータに対する補正係数Knew ,Kold を用いて、現在の検出サイクル区間における最終平均消費電力CPavefを次式により算出する。
CPavef=CPavebf ×Kold +CPave ×Knew
CPavef=CPavebf ×Kold +CPave ×Knew
上式は、現在及び過去のデータに対する補正係数Knew ,Kold を重み係数として用いて、今回の平均消費電力CPave と、前回の検出サイクル区間の平均消費電力の最終値CPavebf との重み付き平均値を算出して、これを現在の検出サイクル区間における最終平均消費電力CPavefとすることを意味し、その重み係数(Knew ,Kold )は、現在の検出サイクル区間の合計サンプル数NFCtotal に応じて設定される(図4のステップ206)。
[目標電費算出ルーチン]
図7の目標電費算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう目標値算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ401で、各クラスA〜Zの最終発電可能量平均値GPavef(A) 〜GPavef(Z) にそれぞれ最終使用頻度Rf(A)〜Rf(Z)を乗算して各クラスA〜Zの発電可能量GP(A) 〜GP(Z) を求める。
図7の目標電費算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう目標値算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ401で、各クラスA〜Zの最終発電可能量平均値GPavef(A) 〜GPavef(Z) にそれぞれ最終使用頻度Rf(A)〜Rf(Z)を乗算して各クラスA〜Zの発電可能量GP(A) 〜GP(Z) を求める。
GP(A) =GPavef(A) ×Rf(A)
GP(B) =GPavef(B) ×Rf(B)
・・・・・・・・・・・・・
GP(Z) =GPavef(Z) ×Rf(Z)
GP(B) =GPavef(B) ×Rf(B)
・・・・・・・・・・・・・
GP(Z) =GPavef(Z) ×Rf(Z)
この後、ステップ402に進み、クラスAでの充放電収支BAL(A) を、クラスAの発電可能量GP(A) から最終平均消費電力CPavefを差し引いて求める。
BAL(A) =GP(A) −CPavef
BAL(A) =GP(A) −CPavef
この後、ステップ403に進み、クラスAからクラスBまでの充放電収支BAL(B) をクラスAでの充放電収支BAL(A) にクラスBの発電可能量GP(B) を足し合わせて求める。
BAL(B) =BAL(A) +GP(B)
BAL(B) =BAL(A) +GP(B)
以下、同様の処理を各クラスC〜Z毎に繰り返すことで、クラスAから各クラスC〜Zまでの充放電収支BAL(C) 〜BAL(Z) を算出する(ステップ404)。
BAL(C) =BAL(B) +GP(C)
・・・・・・・・・・・・・・・
BAL(Z) =BAL(Y) +GP(Z)
BAL(C) =BAL(B) +GP(C)
・・・・・・・・・・・・・・・
BAL(Z) =BAL(Y) +GP(Z)
この後、ステップ405aに進み、クラスAでの充放電収支BAL(A) が0より大きいか否か(プラス値であるか否か)を判定する。その結果、クラスAでの充放電収支BAL(A) が0より大きい(プラス値)と判定されれば、クラスAのみの発電で充放電収支が取れる(クラスAの範囲内で目標電費TCFCを設定すれば良い)と判断して、ステップ406aに進み、クラスAの上限値[A]、充放電収支BAL(A) 、発電可能量GP(A) を用いて、目標電費TCFCを次式により算出する。
TCFC=A−(A−0)×BAL(A) /GP(A)
これにより、クラスAの範囲内で充放電収支が0となる電費を算出して、この電費を目標電費TCFCとする。
TCFC=A−(A−0)×BAL(A) /GP(A)
これにより、クラスAの範囲内で充放電収支が0となる電費を算出して、この電費を目標電費TCFCとする。
一方、上記ステップ405aで、クラスAでの充放電収支BAL(A) が0以下(マイナス値)と判定されれば、ステップ405bに進み、クラスAからクラスBまでの充放電収支BAL(B) が0より大きいか否か(プラス値であるか否か)を判定する。その結果、クラスAからクラスBまでの充放電収支BAL(B) が0より大きい(プラス値)と判定されれば、クラスAからクラスBまでの発電で充放電収支が取れる(クラスBの範囲内で目標電費TCFCを設定すれば良い)と判断して、ステップ406bに進み、クラスBの上限値[B]、充放電収支BAL(B) 、発電可能量GP(B) を用いて、目標電費TCFCを次式により算出する。
TCFC=B−(B−A)×BAL(B) /GP(B)
これにより、クラスBの範囲内で充放電収支が0となる電費を算出して、この電費を目標電費TCFCとする。
TCFC=B−(B−A)×BAL(B) /GP(B)
これにより、クラスBの範囲内で充放電収支が0となる電費を算出して、この電費を目標電費TCFCとする。
以下、同様の処理を各クラスC〜Y毎に繰り返すことで、充放電収支が0以上となる最小のクラスを探索して、充放電収支が0以上となる最小のクラスの範囲内で充放電収支が0となる電費を算出して、この電費を目標電費TCFCとする(ステップ405y、406y)。
TCFC=C−(C−B)×BAL(C) /GP(C)
・・・・・・・・・・・・・・・・・・・・・・
TCFC=Y−(Y−X)×BAL(Y) /GP(Y)
TCFC=C−(C−B)×BAL(C) /GP(C)
・・・・・・・・・・・・・・・・・・・・・・
TCFC=Y−(Y−X)×BAL(Y) /GP(Y)
クラスAからクラスYまでの充放電収支BAL(Y) が0以下(マイナス値)となる場合は、クラスAからクラスYまでの範囲を使用して発電しても、充放電収支が取れないことを意味するため、ステップ406zに進み、目標電費TCFCを許容される最大の電費であるクラスZの上限値[Z]に設定する。
TCFC=Z
TCFC=Z
[目標電費補正量算出ルーチン]
図8の目標電費補正量算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、次のようにして目標電費補正量TCFCcmp を算出する。本ルーチンが起動されると、まずステップ501で、現在のSOC(バッテリ残充電量)と目標SOCとの偏差を小さくするように目標電費TCFCをフィードバック補正するためのI項(積分項)補正量Icmp(i)を次式により算出する。
Icmp(i)=Icmp(i-1)+(SOC−目標SOC)×KI
SOC=現充電量/満充電量×100(%)
ここで、Icmp(i-1)は前回のI項補正量、KIはI項ゲインである。
図8の目標電費補正量算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、次のようにして目標電費補正量TCFCcmp を算出する。本ルーチンが起動されると、まずステップ501で、現在のSOC(バッテリ残充電量)と目標SOCとの偏差を小さくするように目標電費TCFCをフィードバック補正するためのI項(積分項)補正量Icmp(i)を次式により算出する。
Icmp(i)=Icmp(i-1)+(SOC−目標SOC)×KI
SOC=現充電量/満充電量×100(%)
ここで、Icmp(i-1)は前回のI項補正量、KIはI項ゲインである。
この後、ステップ502に進み、目標電費TCFCをPI制御(比例積分制御)によりフィードバック補正するための目標電費補正量TCFCcmp を、P項(比例項)補正量Pcmp(i)とI項補正量Icmp(i)とを加算して求める。
TCFCcmp =Pcmp(i)+Icmp(i)
=(SOC−目標SOC)×KP+Icmp(i)
ここで、KPはP項ゲインである。
TCFCcmp =Pcmp(i)+Icmp(i)
=(SOC−目標SOC)×KP+Icmp(i)
ここで、KPはP項ゲインである。
[最終目標電費算出ルーチン]
図9の最終目標電費算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう目標値算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ601で、今回走行時に算出した目標電費TCFCのみから最終目標電費TCFCfを算出する処理に変更済みであるか否かを判定し、変更済みと判定されれば、ステップ612に進み、前記図7の目標電費算出ルーチンによって算出した今回走行時の目標電費TCFCに対して、前記図8の目標電費補正量算出ルーチンによって算出した目標電費補正量TCFCcmp を加算することで、目標電費TCFCを目標電費補正量TCFCcmp で補正して最終目標電費TCFCfを求める。
TCFCf=TCFC+TCFCcmp
図9の最終目標電費算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう目標値算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ601で、今回走行時に算出した目標電費TCFCのみから最終目標電費TCFCfを算出する処理に変更済みであるか否かを判定し、変更済みと判定されれば、ステップ612に進み、前記図7の目標電費算出ルーチンによって算出した今回走行時の目標電費TCFCに対して、前記図8の目標電費補正量算出ルーチンによって算出した目標電費補正量TCFCcmp を加算することで、目標電費TCFCを目標電費補正量TCFCcmp で補正して最終目標電費TCFCfを求める。
TCFCf=TCFC+TCFCcmp
これに対して、上記ステップ601で、今回走行時に算出した目標電費TCFCのみから最終目標電費TCFCfを算出する処理にまだ変更されていないと判定されれば、ステップ602以降の処理によって、制御装置11の不揮発性メモリ(記憶手段)に記憶されている前回走行時の最終目標電費TCFCbuと今回走行時に算出した目標電費TCFCとを用いて、これらの重み付き平均によって次のようにして最終目標電費TCFCfを算出する。
まず、ステップ602で、最終目標電費TCFCfを重み付き平均によって算出する際の今回走行時の目標電費TCFCの使用割合を決める重み係数αs を今回走行時のサンプル期間に応じて図13の重み係数αs 算出マップにより算出する。この図13の重み係数αs 算出マップは、今回の走行開始時(サンプル期間=0)の場合に、重み係数αs (今回走行時の目標電費TCFCの使用割合)が最小値“0”となり、サンプル期間が長くなるに従って重み係数αs が徐々に大きくなって、サンプル期間が所定期間に達した時点で重み係数αs が最大値“1”となるように設定されている。
この後、ステップ603に進み、今回走行時に算出した目標電費TCFCと不揮発性メモリに記憶されている前回走行時の最終目標電費TCFCbuとの偏差Tgdevを算出する。
Tgdev=TCFC−TCFCbu
Tgdev=TCFC−TCFCbu
そして、次のステップ604で、上記ステップ603で算出した目標電費偏差Tgdevに応じた重み係数αt を図14の重み係数αt 算出マップにより算出する。この図14の重み係数αt 算出マップは、目標電費偏差Tgdevが0のときに重み係数αt が最小値“0”となり、目標電費偏差Tgdevの絶対値が大きくなるに従って重み係数αt が徐々に大きくなり、目標電費偏差Tgdevの絶対値が所定値(例えば0.03)以上になると、重み係数αt が最大値“1”となるように設定されている。
この後、ステップ605に進み、前記図6の平均消費電力算出ルーチンで算出した今回走行時の最終的な平均消費電力CPavefに応じた重み係数αe を図15の重み係数αe 算出マップにより算出する。この図15の重み係数αe 算出マップは、平均消費電力CPavefが所定の下限値(例えば200W)以下の場合は、重み係数αe が最小値“0”となり、平均消費電力CPavefが大きくなるに従って重み係数αe が徐々に大きくなり、平均消費電力CPavefが所定の上限値(例えば400W)以上になると、重み係数αe が最大値“1”となるように設定されている。
この後、ステップ606に進み、運転条件(例えばエンジン回転速度と負荷)に応じた重み係数αl を図16の重み係数αl 算出マップにより算出する。この図16の重み係数αl 算出マップは、低回転・低負荷側で重み係数αl が小さくなり、高回転・高負荷側で重み係数αl が大きくなるように設定されている。
そして、次のステップ607で、バッテリ12の残充電量SOCに応じた重み係数αb を図17の重み係数αb 算出マップにより算出する。この図17の重み係数αb 算出マップは、バッテリ12の残充電量SOCが目標SOC(例えば90%)に一致するときに重み係数αb が最小値“0”となり、残充電量SOCが目標SOCから離れるに従って重み係数αb が徐々に大きくなるように設定されている。
この後、ステップ608に進み、上記ステップ602〜607の処理によって算出した5つの重み係数αs ,αt ,αe ,αl ,αb の中から最大の重み係数を最終重み係数αとして選択する。或は、5つの重み係数αs ,αt ,αe ,αl ,αb の中から例えば2番目に大きい重み係数を最終重み係数αとして選択したり、5つの重み係数αs ,αt ,αe ,αl ,αb の平均値を最終重み係数αとして算出するようにしても良い。
この後、ステップ609に進み、今回走行時のサンプル期間(今回の走行開始から現在までの期間)が予め決められた所定期間を越えたか否かを、今回走行時の合計サンプル数NFCtotal が所定数を越えたか否かで判定する。ここで、所定期間(所定数)は、今回走行時の目標電費TCFCの算出に用いる電費の使用頻度等のデータの精度を確保するのに必要な期間に設定されている。
このステップ609で、今回走行時のサンプル期間が所定期間を越えていない(今回走行時の合計サンプル数NFCtotal が所定数未満)と判定されれば、今回走行時の目標電費TCFCの算出精度を確保できないと判断して、ステップ610に進み、上記ステップ608で決定した最終重み係数αを用いて、今回走行時に算出した目標電費TCFCと、制御装置11の不揮発性メモリ(記憶手段)に記憶されている前回走行時の最終目標電費TCFCbuとの重み付き平均値を算出し、これを目標電費補正量TCFCcmp で補正して最終目標電費TCFCfを求める。
TCFCf=α×TCFC+(1−α)×TCFCbu+TCFCcmp
TCFCf=α×TCFC+(1−α)×TCFCbu+TCFCcmp
これに対して、ステップ609で、今回走行時のサンプル期間が所定期間を越えている(今回走行時の合計サンプル数NFCtotal が所定数を越えている)と判定されれば、今回走行時の目標電費TCFCの算出精度が確保されていると判断して、ステップ612に進み、今回走行時に算出した目標電費TCFCを目標電費補正量TCFCcmp で補正して最終目標電費TCFCfを求める。
TCFCf=TCFC+TCFCcmp
TCFCf=TCFC+TCFCcmp
従って、今回走行時のサンプル期間が所定期間を越えている場合は、制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費TCFCbuを用いることなく、今回走行時に算出した目標電費TCFCのみを用いて最終目標電費TCFCfを算出する。
[イニシャル処理ルーチン]
図10のイニシャル処理ルーチンは、キースイッチ13のオン操作時(制御装置11の電源投入時)に起動される。本ルーチンが起動されると、制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費のバックアップ値TCFCbub を読み込んでRAMに前回走行時の最終目標電費TCFCbuとして記憶させる。
TCFCbu=TCFCbub
前記図9の最終目標電費算出ルーチンのステップ610では、この前回走行時の最終目標電費TCFCbuを用いて最終目標電費TCFCfを算出する。
図10のイニシャル処理ルーチンは、キースイッチ13のオン操作時(制御装置11の電源投入時)に起動される。本ルーチンが起動されると、制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費のバックアップ値TCFCbub を読み込んでRAMに前回走行時の最終目標電費TCFCbuとして記憶させる。
TCFCbu=TCFCbub
前記図9の最終目標電費算出ルーチンのステップ610では、この前回走行時の最終目標電費TCFCbuを用いて最終目標電費TCFCfを算出する。
[最終目標電費バックアップルーチン]
図11の最終目標電費バックアップルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、前記図9の最終目標電費算出ルーチンによって最終目標電費TCFCfが算出される毎に、この最終目標電費TCFCfが制御装置11の不揮発性メモリに前回走行時の最終目標電費のバックアップ値TCFCbub として更新記憶される。
TCFCbub =TCFCf
図11の最終目標電費バックアップルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、前記図9の最終目標電費算出ルーチンによって最終目標電費TCFCfが算出される毎に、この最終目標電費TCFCfが制御装置11の不揮発性メモリに前回走行時の最終目標電費のバックアップ値TCFCbub として更新記憶される。
TCFCbub =TCFCf
従って、エンジン停止中には、前回の走行終了直前(キースイッチ13のオフ直前)に算出された最終目標電費のバックアップ値TCFCbub が不揮発性メモリに記憶保持され、次の走行開始時(キースイッチ13のオン操作時)に、上記図10のイニシャル処理ルーチンによって、このバックアップ値TCFCbub が読み込まれて前回走行時の最終目標電費TCFCbuとして用いられる。
[発電実行判定ルーチン]
図12の発電実行判定ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう発電制御手段としての役割を果たす。本ルーチンが起動されると、まずステップ701で、現在の電費CFCが前記図9の最終目標電費算出ルーチンによって算出した最終目標電費TCFCfよりも大きいか否かを判定し、現在の電費CFCが最終目標電費TCFCfよりも大きければ、ステップ702に進み、発電指令値を0にセットして、発電機16の発電を停止させる。これにより、バッテリ12の過充電を防止する。
図12の発電実行判定ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう発電制御手段としての役割を果たす。本ルーチンが起動されると、まずステップ701で、現在の電費CFCが前記図9の最終目標電費算出ルーチンによって算出した最終目標電費TCFCfよりも大きいか否かを判定し、現在の電費CFCが最終目標電費TCFCfよりも大きければ、ステップ702に進み、発電指令値を0にセットして、発電機16の発電を停止させる。これにより、バッテリ12の過充電を防止する。
一方、現在の電費CFCが最終目標電費TCFCf以下であれば、ステップ703に進み、発電指令値を要求発電量にセットする。これにより、走行中(エンジン運転中)に、発電機16の界磁コイルに発電指令値に応じた制御電流を流して、要求発電量に応じた電力を発電させることで、電費CFCを最終目標電費TCFCfに制御して、バッテリ12の残充電量SOCを目標SOCに収束させる。ここで、要求発電量は、例えば現在のエンジン回転速度に応じてマップ等により算出される。
以上説明した本実施例1では、電費の使用頻度等に基づいて目標電費を設定し、電費を目標電費と比較して発電機16の発電を制御するようにしたので、発電を実行する運転条件を予め設定されたマップで決定する従来の発電制御方式と比較して、マップの精度や車両の使用環境(走行道路状況の相違、運転者による車速・加減速の相違等)や車両特性のばらつきの影響が少なくなり、必要な発電量を確保しつつ、発電による燃料消費量増加分を確実に低減することができ、燃費低減と充放電収支の両立が可能となる。
しかも、本実施例1では、今回走行時のデータのサンプル期間(今回の走行開始から現までの期間)が所定期間を越えるまでは、今回走行時に算出した目標電費と制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費とに基づいて最終的な目標電費を決定するようにしているため、今回走行時のデータのサンプル期間が短く、今回走行時に算出した目標電費の精度が悪い期間は、不揮発性メモリに記憶されている精度の良い前回走行時の最終目標電費と今回走行時に算出した目標電費とを併用して最終的な目標電費を決定することができる。このため、今回走行時のデータのサンプル期間が短くても、実際の発電制御に用いる最終的な目標電費の精度を確保することができて、燃費節減効果と放充電収支とを両立させることができる。
更に、本実施例1では、今回走行時のデータのサンプル期間が所定期間を越えるまで、今回走行時の目標電費と前回走行時の最終目標電費との重み付き平均によって最終目標電費を算出するようにしたので、重み付き平均という簡単な演算方法で最終目標電費を精度良く算出することができる利点がある。
その上、本実施例1では、重み付き平均の処理に用いる重み係数を、今回走行時のデータのサンプル期間、今回走行時の目標電費と前回走行時の最終目標電費との偏差、平均消費電力、運転条件、バッテリ12の残充電量SOCに応じて変化させるようにしたので、燃費節減効果と放充電収支とを両立させるように今回走行時の目標電費の使用割合(重み係数)を増減させて、最終目標電費の算出精度を向上させるという制御が可能となる。
尚、今回走行時のデータのサンプル期間、今回走行時の目標電費と前回走行時の最終目標電費との偏差、平均消費電力、運転条件、バッテリ12の残充電量SOCのうちのいずれか1つ又は2つ以上の組み合わせに基づいて重み係数を設定したり、これ以外の条件(例えばバッテリ容量等)に基づいて重み係数を設定しても良い。勿論、演算処理の簡略化のために、重み係数を予め適合した固定値としても良いことは言うまでもない。
また、最終目標電費の算出方法は、重み付き平均に限定されず、例えば、前回走行時の最終目標電費と今回走行時の目標電費とをパラメータとして最終目標電費を算出するための二次元マップ又は数式を予め作成しておき、この二次元マップ又は数式により最終目標電費を算出するようにしても良い。
また、本実施例1では、電費の使用頻度と発電可能量と平均消費電力とに基づいて目標電費を設定するようにしたが、例えば、電費の使用頻度のみに基づいて目標電費を設定したり、電費の使用頻度と発電可能量とに基づいて目標電費を設定するようにしても良い。
本発明は、今回走行時のサンプル期間が所定期間を越えるまで、制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費のみを用いて今回走行時の最終目標電費を算出するようにしても良い。以下、これを具体化した実施例2を図18乃至図21を用いて説明する。
本実施例2では、図18の最終目標電費算出ルーチンによって最終目標電費TCFCfを算出する。その他の処理は、前記実施例1と同じである。
本実施例2では、図18の最終目標電費算出ルーチンによって最終目標電費TCFCfを算出する。その他の処理は、前記実施例1と同じである。
図18の最終目標電費算出ルーチンは、エンジン運転中に所定周期(例えば8ms周期)で実行され、特許請求の範囲でいう目標値算出手段としての役割を果たす。本ルーチンが起動されると、まずステップ801で、今回走行時に算出した目標電費TCFCのみから最終目標電費TCFCfを算出する処理に変更済みであるか否かを判定し、変更済みと判定されれば、ステップ808に進み、前記図7の目標電費算出ルーチンによって算出した今回走行時の目標電費TCFCに対して、前記図8の目標電費補正量算出ルーチンによって算出した目標電費補正量TCFCcmp を加算することで、目標電費TCFCを目標電費補正量TCFCcmp で補正して最終目標電費TCFCfを求める。
TCFCf=TCFC+TCFCcmp
TCFCf=TCFC+TCFCcmp
これに対して、上記ステップ801で、今回走行時に算出した目標電費TCFCのみから最終目標電費TCFCfを算出する処理にまだ変更されていないと判定されれば、ステップ802以降の処理によって、制御装置11の不揮発性メモリ(記憶手段)に記憶されている前回走行時の最終目標電費TCFCbuを用いて次のようにして今回走行時の最終目標電費TCFCfを算出する。
まず、ステップ802で、前回走行時の最終目標電費TCFCbuを用いて今回走行時の最終目標電費TCFCfを算出するサンプル期間Ne を、前記図6の平均消費電力算出ルーチンで算出した今回走行時の最終的な平均消費電力CPavefに応じて図19のサンプル期間Ne 算出マップにより算出する。この図19のサンプル期間Ne 算出マップは、平均消費電力CPavefが増加するに従ってサンプル期間Ne が短くなるように設定されている。尚、図19のマップでは、サンプル期間Ne をサンプル数で設定したが、時間で設定しても良いことは言うまでもない(以下、同様)。
この後、ステップ803に進み、運転条件(例えばエンジン回転速度と負荷)に応じたサンプル期間Nl を図20のサンプル期間Nl 算出マップにより算出する。この図20のサンプル期間Nl 算出マップは、低回転・低負荷側でサンプル数Nl が大きくなり、高回転・高負荷側でサンプル数Nl が小さくなるように設定されている。
そして、次のステップ804で、バッテリ12の残充電量SOCに応じたサンプル期間Nb を図21のサンプル期間Nb 算出マップにより算出する。この図21のサンプル期間Nb 算出マップは、バッテリ12の残充電量SOCが目標SOC(例えば90%)に近付くほどサンプル期間Nb が長くなり、残充電量SOCが目標SOCから離れるに従ってサンプル期間Nb が徐々に短くなるように設定されている。
この後、ステップ805に進み、上記ステップ802〜804の処理によって算出した3つのサンプル期間Ne ,Nl ,Nb の中から最小のサンプル期間を最終サンプル期間Nf として選択する。或は、3つのサンプル期間Ne ,Nl ,Nb の平均値又は中間値を最終サンプル期間Nf とするようにしても良い。
この後、ステップ806に進み、今回走行時のサンプル期間(今回の走行開始から現在までの合計サンプル数NFCtotal )が上記ステップ805で決定した最終サンプル期間Nf を越えたか否かを判定し、今回走行時のサンプル期間NFCtotal が最終サンプル期間Nf を越えていないと判定されれば、今回走行時の目標電費TCFCの算出精度を確保できないと判断して、ステップ807に進み、制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費TCFCbuをそのまま今回走行時の目標電費として用いて、これを目標電費補正量TCFCcmp で補正して最終目標電費TCFCfを求める。
TCFCf=TCFCbu+TCFCcmp
TCFCf=TCFCbu+TCFCcmp
これに対して、上記ステップ806で、今回走行時のサンプル期間NFCtotal が最終サンプル期間Nf を越えていると判定されれば、今回走行時の目標電費TCFCの算出精度が確保されていると判断して、ステップ808に進み、今回走行時に算出した目標電費TCFCを目標電費補正量TCFCcmp で補正して最終目標電費TCFCfを求める。
TCFCf=TCFC+TCFCcmp
TCFCf=TCFC+TCFCcmp
従って、今回走行時のサンプル期間NFCtotal が最終サンプル期間Nf を越えている場合は、制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費TCFCbuを用いることなく、今回走行時に算出した目標電費TCFCのみを用いて最終目標電費TCFCfを算出する。
以上説明した本実施例2では、今回走行時のサンプル期間(今回の走行開始から現在までの合計サンプル数NFCtotal )が最終サンプル期間Nf を越えるまで、制御装置11の不揮発性メモリに記憶されている前回走行時の最終目標電費TCFCbuをそのまま今回走行時の目標電費として用いて最終目標電費TCFCfを算出するようにしたので、今回走行時のデータに基づいて算出する目標電費の精度が確保されるまで、不揮発性メモリに記憶されている前回走行時の最終目標電費を今回走行時の目標電費として用いるという制御が可能となり、今回走行時のデータのサンプル期間が短くても、実際の発電制御に用いる最終目標電費の精度を確保することができる。
しかも、本実施例2では、最終サンプル期間Nf を今回走行時の平均消費電力、運転条件、バッテリ12の残充電量SOCに基づいて設定するようにしたので、燃費節減効果と放充電収支とを両立させるように最終サンプル期間Nf を増減させて、最終目標電費の算出精度を向上させるという制御が可能となる。
尚、今回走行時の平均消費電力、運転条件、バッテリ12の残充電量SOCのうちのいずれか1つ又は2つの組み合わせに基づいて最終サンプル期間Nf を設定したり、これ以外の条件(例えば今回走行時の目標電費と前回走行時の最終目標電費との偏差、バッテリ容量等)に基づいて最終サンプル期間Nf を設定するようにしても良い。勿論、演算処理の簡略化のために、最終サンプル期間Nf を予め適合した固定値としても良いことは言うまでもない。
11…制御装置(発電制御手段,燃料消費量算出手段,目標値算出手段)、12…バッテリ、13…キースイッチ、16…発電機、17…電流センサ、18…電圧センサ
Claims (7)
- 内燃機関の動力で駆動される発電機と、
前記発電機で発電した電力が充電されるバッテリと、
内燃機関の運転中に所定の演算周期で前記発電機の発電による燃料消費量増加分と発電量とに基づいて単位発電量当たりの燃料消費量増加分を算出する燃料消費量算出手段と、 前記所定の演算周期で算出された前記単位発電量当たりの燃料消費量増加分のデータを統計処理して該単位発電量当たりの燃料消費量増加分の使用頻度を算出して該使用頻度に基づいて目標の燃料消費量増加分を算出する目標値算出手段と、
前記燃料消費量算出手段で算出した現在の単位発電量当たりの燃料消費量増加分と前記目標の燃料消費量増加分とを比較して前記発電機の発電を制御する発電制御手段と
を備えた内燃機関の発電制御装置において、
前回走行時の目標の燃料消費量増加分を記憶保持する記憶手段を備え、
前記目標値算出手段は、今回走行時の前記単位発電量当たりの燃料消費量増加分のデータのサンプル期間が所定期間を越えるまでは、今回走行時に算出した目標の燃料消費量増加分と前記記憶手段に記憶されている前回走行時の目標の燃料消費量増加分とに基づいて最終的な目標の燃料消費量増加分を決定することを特徴とする内燃機関の発電制御装置。 - 前記目標値算出手段は、今回走行時に算出した目標の燃料消費量増加分と前記記憶手段に記憶されている前回走行時の目標の燃料消費量増加分との重み付き平均によって前記最終的な目標の燃料消費量増加分を算出することを特徴とする請求項1に記載の内燃機関の発電制御装置。
- 前記目標値算出手段は、前記重み付き平均の処理に用いる重み係数を、今回走行時の前記データのサンプル期間に基づいて設定することを特徴とする請求項2に記載の内燃機関の発電制御装置。
- 前記目標値算出手段は、前記重み付き平均の処理に用いる重み係数を、今回走行時に算出した目標の燃料消費量増加分と前記記憶手段に記憶されている前回走行時の目標の燃料消費量増加分との偏差に基づいて設定することを特徴とする請求項2又は3に記載の内燃機関の発電制御装置。
- 前記目標値算出手段は、前記重み付き平均の処理に用いる重み係数を、今回走行時の消費電力、運転条件、前記バッテリの残充電量、バッテリ容量のうちのいずれか1つ又は2つ以上の組み合わせに基づいて設定することを特徴とする請求項2乃至4のいずれかに記載の内燃機関の発電制御装置。
- 内燃機関の動力で駆動される発電機と、
前記発電機で発電した電力が充電されるバッテリと、
内燃機関の運転中に所定の演算周期で前記発電機の発電による燃料消費量増加分と発電量とに基づいて単位発電量当たりの燃料消費量増加分を算出する燃料消費量算出手段と、 内燃機関の運転中に算出された前記単位発電量当たりの燃料消費量増加分のデータを統計処理して該単位発電量当たりの燃料消費量増加分の使用頻度を算出して該使用頻度に基づいて目標の燃料消費量増加分を算出する目標値算出手段と、
前記燃料消費量算出手段で算出した現在の単位発電量当たりの燃料消費量増加分と前記目標の燃料消費量増加分とを比較して前記発電機の発電を制御する発電制御手段と
を備えた内燃機関の発電制御装置において、
前回走行時の目標の燃料消費量増加分を記憶保持する記憶手段を備え、
前記目標値算出手段は、今回走行時の前記単位発電量当たりの燃料消費量増加分のデータのサンプル期間が所定期間を越えるまでは、前記記憶手段に記憶されている前回走行時の目標の燃料消費量増加分を今回走行時の目標の燃料消費量増加分として用いることを特徴とする内燃機関の発電制御装置。 - 前記目標値算出手段は、前記所定期間を今回走行時の消費電力、運転条件、前記バッテリの残充電量、バッテリ容量のうちのいずれか1つ又は2つ以上の組み合わせに基づいて設定することを特徴とする請求項6に記載の内燃機関の発電制御装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005215732A JP2007037260A (ja) | 2005-07-26 | 2005-07-26 | 内燃機関の発電制御装置 |
US11/443,374 US7355292B2 (en) | 2005-06-02 | 2006-05-31 | Power generation control apparatus for internal combustion engine |
DE102006000265A DE102006000265A1 (de) | 2005-06-02 | 2006-06-01 | Leistungserzeugungssteuerungsvorrichtung für eine Brennkraftmaschine |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005215732A JP2007037260A (ja) | 2005-07-26 | 2005-07-26 | 内燃機関の発電制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007037260A true JP2007037260A (ja) | 2007-02-08 |
Family
ID=37795830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005215732A Pending JP2007037260A (ja) | 2005-06-02 | 2005-07-26 | 内燃機関の発電制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007037260A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022025425A (ja) * | 2020-07-29 | 2022-02-10 | 株式会社デンソー | 噴射制御装置 |
-
2005
- 2005-07-26 JP JP2005215732A patent/JP2007037260A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022025425A (ja) * | 2020-07-29 | 2022-02-10 | 株式会社デンソー | 噴射制御装置 |
JP7424240B2 (ja) | 2020-07-29 | 2024-01-30 | 株式会社デンソー | 噴射制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7355292B2 (en) | Power generation control apparatus for internal combustion engine | |
JP4193639B2 (ja) | 燃料電池搭載車両の制御装置 | |
WO2001018938A1 (fr) | Appareil pour la mesure de la capacite d'une batterie et pour le calcul de la capacite restante | |
JP2007121030A (ja) | 車両用蓄電装置の内部状態検出装置 | |
JPH0652903A (ja) | バッテリの動作パラメータをモニタするバッテリモニタ | |
JP2000150003A (ja) | ハイブリッド車の充電量演算方法および充電量演算装置 | |
JP2007323999A (ja) | 自動車のバッテリ制御装置 | |
JP2007113953A (ja) | 二次電池用の制御装置及び二次電池の劣化判定方法 | |
US8180508B2 (en) | Electricity storage control apparatus and method of controlling electricity storage | |
EP1571457A1 (en) | Battery charged condition computing device and battery charged condition computing method | |
JP2007221868A (ja) | バッテリ充電装置、およびバッテリ充電方法 | |
JP4407826B2 (ja) | 内燃機関の発電制御装置 | |
JP2001351698A (ja) | 鉛蓄電池の充電状態検出方法およびそれを用いた鉛蓄電池の劣化判定方法 | |
JP4435026B2 (ja) | 内燃機関の発電制御装置 | |
JP4564999B2 (ja) | 車載二次電池の内部状態検出装置 | |
JP4432860B2 (ja) | 内燃機関の発電制御装置 | |
JP2007037260A (ja) | 内燃機関の発電制御装置 | |
JP4432856B2 (ja) | 内燃機関の発電制御装置 | |
JP2007049779A (ja) | 内燃機関の発電制御装置 | |
US20230075768A1 (en) | Drive control device, drive control method for electric vehicle, and non-transitory computer readable storage medium storing program | |
JP4435027B2 (ja) | 内燃機関の発電制御装置 | |
JP4635961B2 (ja) | バッテリの充電状態制御装置 | |
JP4468969B2 (ja) | 内燃機関の制御装置 | |
JP2004031170A (ja) | 二次電池の内部抵抗検出装置及びこれを使用する充電制御システム | |
JP3475894B2 (ja) | 車両用二次電池の満充電判定装置及び残存容量算出装置 |