(57)【要約】【課題】  水素ステーションから燃料電池車両に水素充填をした場合に、燃料電池車両で推定する燃料残量の精度を高くする。【解決手段】  燃料電池車両１は、残量演算部３３により、水素タンク２２の状態に基づいて水素タンク２２の水素残量を演算して、水素ステーション２から水素タンク２２に充填された充填量を推定すると共に、ステーションデータ認識部３１により、水素ステーション２の充填量計１１で計測した充填量を入力する。そして、学習値反映判定部３２は、残量演算部３３で推定される水素残量をステーションデータ認識部３１で入力した充填量を用いて補正する残量学習処理を行うか否かを判定し、残量学習処理を行うと判定した場合に、残量学習部３４は、残量演算部３３で演算された充填量とステーションデータ認識部３１で入力した充填量との誤差に基づいて、水素タンク２２の状態に対する水素残量の関係を補正する。【選択図】      図１
2005283127.tif 000002
【特許請求の範囲】
【請求項１】
燃料電池及び当該燃料電池を発電させる燃料が充填される燃料タンクを備える発電装置と、前記燃料を貯蔵した燃料貯蔵タンク及び前記発電装置の燃料タンクに供給して充填させた燃料量を計測する充填量計を備えた燃料充填設備とが、前記燃料充填設備から前記発電装置への燃料充填時に接続され、前記燃料タンクの燃料残量を演算する燃料量演算装置において、
前記発電装置の燃料タンクの状態を検出し、当該検出した燃料タンクの状態に基づいて前記燃料タンクの燃料残量を演算して、前記燃料充填設備から前記発電装置の燃料タンクに充填された燃料充填量を演算する残量演算手段と、
前記燃料充填設備の充填量計で計測した燃料充填量を入力するデータ入力手段と、
前記残量演算手段で演算される燃料残量を前記データ入力手段で入力した燃料充填量を用いて補正する残量学習処理を行うか否かを判定する学習反映判定手段と、
前記学習反映判定手段によって残量学習処理を行うと判定した場合に、前記残量演算手段で演算された燃料充填量と前記データ入力手段で入力した燃料充填量との誤差に基づいて、前記残量演算手段で演算される前記発電装置の燃料タンクの状態に対する燃料残量の関係を補正する残量学習手段と
を備えることを特徴とする燃料量演算装置。
【請求項２】
前記学習反映判定手段は、前記データ入力手段で入力した燃料充填量が所定値より多く、且つ、前記データ入力手段で入力した燃料充填量と前記残量演算手段で演算した燃料充填量との誤差が、前記燃料充填設備から前記発電装置の燃料タンクに燃料を充填する前の燃料タンクの状態に基づく誤差範囲内である場合に、前記残量学習処理を行うと判定することを特徴とする請求項１に記載の燃料量演算装置。
【請求項３】
前記データ入力手段は、前記燃料充填設備から前記発電装置の燃料タンクに充填した燃料充填量を手動入力する操作入力手段を備え、当該操作入力手段への入力値を前記燃料充填設備の充填量計で計測した燃料充填量とすることを特徴とする請求項１に記載の燃料量演算装置。
【請求項４】
前記データ入力手段は、前記燃料充填設備との間で通信回線を確立し、前記充填量計で計測した燃料充填量を自動的に入力することを特徴とする請求項１に記載の燃料量演算装置。
【請求項５】
前記燃料電池により燃料を消費させて発電させている時に、前記燃料タンクから前記燃料電池に供給される燃料流量を計測する燃料流量計と、
前記燃料流量計により計測される燃料流量の誤差を補正する流量学習処理を行うか否かを判定する流量学習判定手段と、
前記流量学習判定手段によって流量学習処理を行うと判定した場合に、前記燃料流量計により計測された燃料流量の誤差を補正する燃料流量学習手段と
を更に備えることを特徴とする請求項１に記載の燃料量演算装置。
【請求項６】
前記流量学習判定手段は、前記燃料流量計で計測している燃料流量が所定範囲以内となっているという一定保持条件が成立している期間が所定期間以上継続した場合に、前記流量学習処理を行うと判定することを特徴とする請求項５に記載の燃料量演算装置。
【請求項７】
前記流量学習判定手段は、少なくとも前記燃料電池の暖機が完了しているという暖機条件、及び、前記燃料タンクの温度及び圧力が変動しないという環境条件が成立している期間が所定期間以上継続した場合に、前記流量学習処理を行うと判定することを特徴とする請求項５に記載の燃料量演算装置。
【請求項８】
前記燃料流量学習手段は、前記一定保持条件を満たしている期間において前記燃料流量計により検出した燃料流量を積算した積算値と、当該積算値の演算を開始する時の前記燃料タンクの状態に基づく燃料残量と前記積算値の演算を終了する時の前記燃料タンクの状態に基づく燃料残量との差分値との誤差量に基づいて、前記燃料流量計により計測された燃料流量を補正することを特徴とする請求項６又は請求項７に記載の燃料量演算装置。
【請求項９】
前記燃料流量学習手段は、前記燃料流量計により検出される燃料流量範囲を分割した学習領域ごとに、前記積算値と前記差分値との誤差量を求め、分割した全学習領域の誤差量の平均値を補正量として、前記燃料流量計により計測した燃料流量に加算することを特徴とする請求項８に記載の燃料量演算装置。
【請求項１０】
電力を蓄積する二次電池と、
前記燃料電池で発電した電力及び前記二次電池に蓄積している電力を消費する電力消費手段と、
前記流量学習判定手段により前記流量学習処理を行うと判定する条件を満たすように前記燃料電池の発電を制限すると共に、前記二次電池から前記電力消費手段に電力を供給させる学習条件設定手段と
を備えることを特徴とする請求項５に記載の燃料量演算装置。
【請求項１１】
前記学習条件設定手段は、前記流量学習判定手段により一定保持条件を満たしたと判定した場合に、前記一定保持条件が成立している期間を所定期間以上継続させるように前記燃料電池の発電を一定に制限することを特徴とする請求項１０に記載の燃料量演算装置。
【請求項１２】
前記残量学習手段で補正された前記燃料タンクの状態に対する燃料残量の関係に基づいて前記残量演算手段で演算された燃料残量の変化と、前記燃料電池で発電した電力により走行する車両の走行距離とに基づいて燃料の平均燃費を求める燃費演算手段を更に備えることを特徴とする請求項１に記載の燃料量演算装置。
【請求項１３】
前記燃料流量学習手段により誤差が補正された燃料流量と、前記燃料電池で発電した電力により走行する車両の速度とに基づいて燃料の瞬間燃費を求める燃費演算手段を更に備えることを特徴とする請求項５又は請求項１０に記載の燃料量演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、燃料ステーションに貯蔵された燃料が充填される車両等の燃料残量、燃料充填量、燃料消費量等を演算する燃料量演算装置に関する。
【背景技術】
【０００２】
従来より、水素ガス等を燃料ガスとする燃料電池及び燃料ガスタンクを備えた車両等に燃料供給をする技術としては、下記の特許文献１に記載されているような水素貯蔵供給装置が知られている。
【０００３】
この水素貯蔵供給装置は、燃料ガスの供給先となる燃料電池車両と接続され、複数の燃料貯蔵タンクから水素供給を連続的に行うときに、水素残量を表示している。このとき、水素貯蔵供給装置は、複数の燃料貯蔵タンクと燃料電池車両とを接続する配管に圧力センサを設け、当該圧力センサの検出値に基づいて燃料供給元となる燃料貯蔵タンクを切り替え、更には、水素供給の停止時に、燃料貯蔵タンクの温度及び燃料供給圧力に基づいて、燃料貯蔵タンクの燃料残量を求めている。
【特許文献１】特開２００１−２９５９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば定置型の水素貯蔵供給装置（水素ステーション）から燃料電池車両に供給した燃料量を燃料電池車両で精度よく把握するためには、車両に搭載された燃料タンクの容量ばらつきの低減、及び精度の高い計測器を使用することが有効であるが、燃料電池車両のコスト増や、車内レイアウトに対する計測器等の占める面積が高くなる場合がある。
【０００５】
また、燃料電池車両で精度良く充填された燃料量が把握できないと、燃料電池車両で消費した燃料量の推定精度が低下することになってしまう。
【０００６】
そこで、本発明は、上述した実情に鑑みて提案されたものであり、燃料供給先で推定する燃料残量の精度を高くすることができる燃料量演算装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る燃料量演算装置は、燃料電池と、当該燃料電池を発電させる燃料が充填される燃料タンクとを備える発電装置と、前記燃料を貯蔵した燃料貯蔵タンクと前記発電装置の燃料タンクに供給して充填させた燃料量を計測する充填量計とを備えた燃料充填設備とが、前記燃料充填設備から前記発電装置への燃料充填時に接続されたときに、発電装置の燃料タンクの燃料残量を演算する。
【０００８】
この燃料量演算装置は、残量演算手段により発電装置の燃料タンクの状態を検出し、当該検出した燃料タンクの状態に基づいて燃料タンクの燃料残量を演算して、燃料充填設備から発電装置の燃料タンクに充填された燃料充填量を演算すると共に、データ入力手段により、燃料充填設備の充填量計で計測した燃料充填量を入力する。そして、この燃料量演算装置において、残量演算手段により演算される燃料残量を補正するに際して、学習反映判定手段は、残量演算手段で演算される燃料残量をデータ入力手段で入力した燃料充填量を用いて補正する残量学習処理を行うか否かを判定し、学習反映判定手段によって残量学習処理を行うと判定した場合に、残量学習手段は、残量演算手段で演算された燃料充填量とデータ入力手段で入力した燃料充填量との誤差に基づいて、残量演算手段で演算される発電装置の燃料タンクの状態に対する燃料残量の関係を補正することにより、上述の課題を解決する。
【発明の効果】
【０００９】
本発明に係る燃料量演算装置によれば、
燃料充填設備と発電装置とを接続して発電装置に燃料を充填する燃料充填時に、燃料充填設備により計測された燃料充填量と、発電装置内部で演算した燃料充填量とを比較して、発電装置内部で演算した燃料充填量の誤差を学習して補正するので、発電装置での燃料残量の演算精度を高くすることができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の第１実施形態〜第６実施形態について図面を参照して説明する。
【００１１】
［第１実施形態］
本発明は、例えば図１に示すように構成された第１実施形態に係る燃料充填システムおける燃料電池車両１に適用される。
【００１２】
［燃料充填システムの構成］
この燃料充填システムは、定置型の水素供給設備である水素ステーション２と燃料電池車両１とが接続された場合に、水素ステーション２から燃料電池車両１に水素を充填する。
【００１３】
水素ステーション２は、燃料電池車両１に供給した水素重量を計測することにより、燃料電池車両１への水素充填量を計測する充填量計１１を備える。この充填量計１１は、後述する燃料電池車両１のコントローラ２３と電気的に接続され、計測した水素充填量が読み込まれる。
【００１４】
また、この水素ステーション２は、特に図示しないが、複数台の燃料電池車両１に対する水素供給が可能な水素量を貯蔵する水素貯蔵タンク、燃料電池車両１に水素供給開始及び停止を行うための開閉弁、燃料電池車両１に対する水素供給を制御するための制御部等を備える。この水素ステーション２は、燃料電池車両１に水素を供給するに際して、燃料電池車両１と連結管Ｌ１を介して接続される。
【００１５】
燃料電池車両１は、燃料として水素が供給されて発電する燃料電池２１、水素ステーション２からの水素供給により充填された水素を燃料電池２１に供給する水素タンク２２、及び水素タンク２２の水素残量等を演算するコントローラ２３を備える。燃料電池２１は、例えば、水素のみならず酸化剤が供給されて水素及び酸化剤を消費する電気化学反応を発生させて発電電力を生成し、当該発電電力が図示しない車両負荷に取り出される。これにより、燃料電池車両１は、車両負荷を駆動することにより走行トルクを発生させて走行する。
【００１６】
また、燃料電池車両１は、連結管Ｌ１が接続される充填口２ａ、当該充填口２ａと水素タンク２２とを接続する水素充填配管Ｌ１１、水素タンク２２と燃料電池２１とを接続する水素供給配管Ｌ１２を備える。この燃料電池車両１は、水素ステーション２からの水素を水素タンク２２に充填させる水素充填時には、連結管Ｌ１と充填口２ａとが接続され、水素ステーション２から連結管Ｌ１、充填口２ａ及び水素充填配管Ｌ１１を介して水素タンク２２に水素の充填が行われる。また、この燃料電池車両１は、燃料電池２１を発電させる車両運転時には、水素供給配管Ｌ１２を介して水素タンク２２から燃料電池２１に水素を供給すると共に、図示しない酸化剤供給装置等により燃料電池２１に酸化剤等を供給する。
【００１７】
更に、この燃料電池車両１は、水素タンク２２のタンク温度を検出する温度センサ２４及び水素タンク２２のタンク圧力を検出する圧力センサ２５を備える。これら温度センサ２４及び圧力センサ２５により検出された検出値は、コントローラ２３で読み込まれ、コントローラ２３でタンク温度ＶＴＭＰ及びタンク圧力ＶＰＲＳが認識される。
【００１８】
コントローラ２３は、例えば、記憶メモリであるＲＡＭ（Random Access Memory）、後述する演算処理等を行うためのプログラムを格納したＲＯＭ（Read Only Memory）、当該ＲＯＭに記憶されたプログラムに従った演算を行うＣＰＵ（Central Processing Unit）、データ入出力を行う入出力インターフェース回路等を備えることにより、ステーションデータ認識部３１、学習値反映判定部３２、残量演算部３３、残量学習部３４という機能的な各部を備える。このコントローラ２３は、燃料電池車両１から水素タンク２２への水素充填時に、水素タンク２２内の水素残量の推定値を補正するためのタンク残量学習処理を行う。
【００１９】
［タンク残量学習処理］
つぎに、上述したように構成された燃料充填システムにおいて、燃料電池車両１によるタンク残量学習処理について説明する。
【００２０】
このタンク残量学習処理は、燃料電池車両１と水素ステーション２とが接続された水素充填時のみに行い、車両走行中及び停止中には行わない。したがって、水素タンク２２から燃料電池２１に水素供給を行っていないことを確認し、且つ燃料電池車両１と水素ステーション２とが充填口２ａを介して接続されていることを検出した場合に、図２のステップＳ１の処理を開始する。
【００２１】
このステップＳ１において、水素ステーション２は、水素ステーション２から連結管Ｌ１への開閉弁（図示せず）を開放し、燃料電池車両１は、充填口２ａから水素タンク２２に通ずる水素充填配管Ｌ１１に設けられた弁（図示せず）を開放することにより、水素タンク２２への水素充填作業を開始する。
【００２２】
次のステップＳ２において、燃料電池車両１は、コントローラ２３により、水素タンク２２内の水素残量を学習する演算を行い、当該タンク残量学習演算を終了すると、ステップＳ３において、水素充填作業を終了したことを判断する。そして、水素充填作業が終了すると、燃料電池車両１が走行可能な状態となる。
【００２３】
この水素充填作業中におけるステップＳ２では、図３に示すようなタンク残量学習処理を行う。このタンク残量学習処理は、コントローラ２３により、先ずステップＳ１１において、充填口２ａと連結管Ｌ１が接続されており、充填口２ａのコネクタ機構と連結管Ｌ１のコネクタ機構とが装着されていることを検出し、次のステップＳ１２において、水素ステーション２から水素タンク２２に水素充填を実施する充填モードを開始する。
【００２４】
次に、コントローラ２３は、ステップＳ１３において、圧力センサ２５の検出値を読み込んでタンク圧力ＶＰＲＳを記憶メモリにストアすると共に、ステップＳ１４において、温度センサ２４の検出値を読み込んでタンク温度ＶＴＭＰを記憶メモリにストアする。これにより、コントローラ２３は、水素タンク２２への水素充填前のタンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰを取得する。
【００２５】
次に、燃料電池車両１は、充填口２ａをオープン状態にすることにより（ステップＳ１５）、燃料電池車両１から水素タンク２２への水素充填を開始させ（ステップＳ１６）、水素充填が終了したことを検出すると（ステップＳ１７）、充填口２ａをクローズ状態にして（ステップＳ１８）、連結管Ｌ１と充填口２ａとを切り離す状態とし（ステップＳ１９）、充填モードを終了する（ステップＳ２０）。このとき、水素ステーション２は、充填量計１１により、水素タンク２２に供給している充填量を計測して、充填終了後も図示しない記憶メモリに記憶しておく。
【００２６】
次にコントローラ２３は、連結管Ｌ１と充填口２ａとが切り離されたことを検出すると、ステップＳ２１において水素残量の学習演算を開始すると判断する。ここで、ステップＳ１５からステップＳ１８に至る期間に水素ステーション２から水素タンク２２に水素を充填していたため、水素タンク２２内のタンク温度ＶＴＭＰが充填前よりも一時的に高くなっているため、温度センサ２４からの検出値が安定するのに十分な期間ＴＭＳＵＰだけ待った後に（ステップＳ２２）、ステップＳ２３に処理を進める。
【００２７】
次にコントローラ２３は、ステップＳ２３において、ステップＳ１３及びステップＳ１４で記憶しておいた水素充填前のタンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰを読み出し、ステップＳ２４において、残量演算部３３より、水素充填前の水素残量（充填前残量ＭＨ１）を算出する。このとき、残量演算部３３は、図４に示すようにタンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰを入力とし、予めｖａｎ  ｄｅｒ  Ｗａａｌｓの式を用いた演算結果から作成したタンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰの変化に対する水素量（充填前残量ＭＨ１）の水素残量マップデータを参照して、充填前残量ＭＨ１を求める。この水素残量マップデータは、タンク圧力が高いほど残量が多く、且つタンク温度が高いほど残量が多くなるように作成されており、実験等により予め設定されたタンク圧力範囲及びタンク温度範囲に対する残量が対応付けられて作成されている。
【００２８】
また、このステップＳ２４において、残量演算部３３は、水素充填前のタンク圧力ＶＰＲＳ及びタンク圧力ＶＰＲＳを使用し、実際にｖａｎ  ｄｅｒ  Ｗａａｌｓの式を演算して、充填前残量ＭＨ１を求めても良い。
【００２９】
すなわち、圧力をＰ、温度をＴ、体積をＶとした場合に、その質量を推定するためには、下記のｖａｎ  ｄｅｒ  Ｗａａｌｓの式１に示すように、
（Ｐ＋（ｎ２・ａ）／Ｖ２）・（Ｖ−ｎｂ）＝ｎＲＴ        （式１）
なる状態方程式を演算する。この式１において、ａ、ｂはｖａｎ  ｄｅｒ  Ｗａａｌｓの式における補正係数であり、ａは分子間引力に関する補正項、ｂは分子体積に関する補正項である。そして、図４に示す水素流量マップデータを使用しない場合、タンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰをそれぞれＰ、Ｔに代入し、上記式１におけるｎ（モル数）を求めることで充填前残量ＭＨ１を推定する。なお、式１を使用して充填前残量ＭＨ１を求めるためには、３次方程式を解く必要があり、コントローラ２３が非常に高い演算能力がない場合には、図４に示す水素流量マップデータを使用することが望ましい。
【００３０】
次にコントローラ２３は、ステップＳ２５において、圧力センサ２５の検出値を読み込むと共に温度センサ２４の検出値を読み込んで記憶メモリにストアすることで、水素タンク２２への水素充填後のタンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰを取得し、ステップＳ２６において、残量演算部３３によりステップＳ２４と同様の処理を行うことにより、充填後残量ＭＨ２を推定する。
【００３１】
次にコントローラ２３は、ステップＳ２７において、ステーションデータ認識部３１により、水素ステーション２からのデータを入力する。このとき、ステーションデータ認識部３１は、図５に示すステップＳ４１において、水素ステーション２の充填量計１１から水素充填量ＱＳＴを示す値を入力し、ステップＳ４２において、この入力した値を水素ＳＴ充填量計測値ＱＳＴＶとして記憶メモリに記憶する。
【００３２】
次にコントローラ２３は、ステップＳ２８において、ステップＳ２４で推定した充填前残量ＭＨ１とステップＳ２６で推定した充填後残量ＭＨ２との差分を、今回に充填された車両充填量推定値ＱＴＮＫとして算出する。
【００３３】
次にコントローラ２３は、ステップＳ２９において、車両充填量推定値ＱＴＮＫと、ステップＳ２７で記憶した水素ＳＴ充填量計測値ＱＳＴＶとの差分の絶対値を算出することにより、水素ＳＴ充填量計測値ＱＳＴＶに対するステップＳ２８で推定した車両充填量推定値ＱＴＮＫの誤差ＤＨＶとして算出する。この誤差ＤＨＶは、充填量計１１に対する推定した充填量の誤差であるが、式１のｖａｎ  ｄｅｒ  Ｗａａｌｓの式が内包するエラー分や、図４に示した水素流量マップデータによる補間誤差等の微小な誤差のみならず、水素タンク２２の製造時の容量ばらつきに起因した大きな誤差も含んでいる。
【００３４】
次にコントローラ２３は、ステップＳ３０において、学習値反映判定部３２により、ステップＳ２９で求めた誤差ＤＨＶに基づいて、ステップＳ２８で算出する車両充填量推定値ＱＴＮＫを補正する学習処理を行うか否かを判定する学習値反映判定処理を行う。
【００３５】
この学習値反映判定処理は、図６に示すように、先ずステップＳ５１において、学習値反映判定部３２により、水素ＳＴ充填量計測値ＱＳＴＶが予め設定した所定値ＱＳＴＭＸより大きいか否かを判定し、大きいと判定した場合にはステップＳ５２に処理を進め、大きくないと判定した場合にはステップＳ５６に処理を進める。
【００３６】
ここで、所定値ＱＳＴＭＸは、水素ステーション２から水素タンク２２に十分な量の水素が充填されたか否かを判定する値であって、十分な量の水素を充填していない場合には充填量に対する誤差ＤＨＶの割合が増えるために、誤学習の可能性が高くならないような充填量が設定されている。なお、この所定値ＱＳＴＭＸは、水素タンク２２の容量ばらつきによって予め設定されている。
【００３７】
したがって、ステップＳ５１で水素ＳＴ充填量計測値ＱＳＴＶが所定値ＱＳＴＭＸより大きくないと判定した後のステップＳ５６においては、後のステップＳ３１で学習処理を行わないことを示す値「０」を学習許可フラグＦＬＲＮＭＨに設定して、ステップＳ３１に処理を進める。
【００３８】
これに対し、学習値反映判定部３２は、ステップＳ５２において、図７に示す学習許可範囲テーブルを参照して学習処理を許可する誤差範囲上限ＤＨ１を算出し、ステップＳ５３においては、ステップＳ５２と同様に誤差範囲下限ＤＨ２を算出する。
【００３９】
ここで、図７の学習許可範囲テーブルは、ステップＳ１３で記憶しておいた充填前のタンク圧力ＶＰＲＳに対する、学習処理を許可する誤差範囲を示すテーブルデータであって、予め実験等により作成されている。すなわち、水素タンク２２の容量に対する容量ばらつきの割合、及び圧力センサ２５や温度センサ２４のばらつき割合の上限としてどの程度までコントローラ２３の水素残量の推定値がばらつくかを見積もっておき、当該見積もったばらつきの上限として誤差範囲上限ＤＨ１を求めておく。したがって、学習値反映判定部３２は、ステップＳ２９で求めた誤差ＤＨＶが誤差範囲上限ＤＨ１よりも高い場合には、コントローラ２３や水素ステーション２の故障等によるエラーが発生している可能性があるので学習処理を許可せず（ステップＳ５４）、学習許可フラグＦＬＲＮＭＨの値を「０」に設定する（ステップＳ５６）。
【００４０】
一方、誤差範囲下限ＤＨ２は、故障等によるエラーが推定した水素残量の誤差をうち消して、誤差の演算結果に影響して誤差が小さくなることで学習処理を許可しない値が予め設定されている。したがって、学習値反映判定部３２は、ステップＳ２９で求めた誤差ＤＨＶが誤差範囲下限ＤＨ２よりも低い場合には、学習処理を許可せず（ステップＳ５４）、学習許可フラグＦＬＲＮＭＨの値を「０」に設定する（ステップＳ５６）。
【００４１】
そして、学習値反映判定部３２は、ステップＳ２９で求めた誤差ＤＨＶが誤差範囲上限ＤＨ１と誤差範囲下限ＤＨ２との間の値である場合には、ステップＳ５５に処理を進め、後のステップＳ３１で学習処理を行うことを許可するために学習許可フラグＦＬＲＮＭＨの値を「１」に設定する（ステップＳ５６）。
【００４２】
このように、図７に示す学習許可範囲テーブルを設定したのは、上述のｖａｎ  ｄｅｒ  Ｗａａｌｓの式が内包する演算結果の誤差分や、マップ割付による補間誤差は水素タンク２２の容量ばらつきに比べて小さく、水素タンク２２を始めとする製造ばらつきなどの、特に誤差として大きい可能性があることに起因した演算結果の誤差を補正することを目的とするためである。
【００４３】
このように学習値反映判定処理を行った後、コントローラ２３は、ステップＳ３１に処理を進めて、水素残量の学習処理に移行する。この水素残量の学習処理は、図８に示すように、先ずステップＳ６１において、残量学習部３４により、学習値反映判定部３２にて設定された学習許可フラグＦＬＥＮＭＨの値を参照し、当該学習処理フラグＦＬＥＮＭＨの値が「１」であると判定した場合にはステップＳ６２処理を進め、学習処理フラグＦＬＥＮＭＨの値が「１」ではないと判定した場合にはステップＳ６４に処理を進める。
【００４４】
残量学習部３４は、ステップＳ６２において、水素ＳＴ充填量計測値ＱＳＴＶと車両充填量推定値ＱＴＮＫとの誤差比率ＲＴＱ（ＱＳＴＶ／ＱＴＮＫ）を演算し、ステップＳ６３において、求めた誤差比率ＲＴＱを図４の水素残量（充填前残量ＭＨ１、充填後残量ＭＨ２）のマップデータに掛け合わせることにより、図４の水素残量をＲＴＱ倍する。このように演算された水素残量マップデータを、学習後の水素流量マップデータとする。
【００４５】
これにより、車両充填量推定値ＱＴＮＫは、任意の温度でのタンク圧力ＶＰＲＳとタンク残量（水素量）との関係が図９中の点線に示すように、タンク圧力ＶＰＲＳがＰ１である場合には車両充填量推定値ＱＴＮＫがＲ１となりタンク圧力ＶＰＲＳがＰ２である場合には車両充填量推定値ＱＴＮＫがＲ３となる場合に対し、誤差比率ＲＱＴを車両充填量推定値ＱＴＮＫに掛け合わせる。これにより、図９中の実線に示すように、タンク圧力ＶＰＲＳがＰ１である場合には車両充填量推定値ＱＴＮＫをＲ２とし、タンク圧力ＶＰＲＳがＰ２である場合には車両充填量推定値ＱＴＮＫをＲ４とする。したがって、この残量の学習処理によれば、車両充填量推定値ＱＴＮＫを水素ＳＴ充填量計測値ＱＳＴＶに合わせるように補正することができる。
【００４６】
また、このような処理を様々なタンク圧力下で行うことにより、図１０に示すように、点線で示す学習前の各タンク圧力に対して、誤差比率ＲＴＱを掛け合わせることで、実線で示す学習後の各タンク圧力を得ることができ、広いタンク圧力のマップデータ全体に対して学習後の水素残量を得ることができる。
【００４７】
次に残量学習部３４は、ステップＳ６４において、学習値反映判定部３２により設定されていた学習処理フラグＦＬＥＮＭＨの値を「０」にして、ステップＳ６５において、学習処理を終了する。
【００４８】
これにより、コントローラ２３は、図４に示す学習後の水素流量マップデータ、温度センサ２４で検出したタンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰから、補正後の現在の水素残量を認識することができる。
【００４９】
［第１実施形態の効果］
以上詳細に説明したように、本発明を適用した第１実施形態に係る燃料電池車両１によれば、燃料電池車両１と水素ステーション２とを接続して燃料電池車両１に水素を充填する水素充填時に、水素ステーション２により計測された水素ＳＴ充填量計測値ＱＳＴＶとコントローラ２３で演算した車両充填量推定値ＱＴＮＫとを比較して、車両充填量推定値ＱＴＮＫの誤差を学習して補正するので、燃料電池車両１の水素残量の演算精度を高くすることができる。
【００５０】
また、この燃料電池車両１によれば、燃料電池車両１のコスト低減等を図り、コストが低い水素残量の計測器等を使用した場合や、水素タンク２２の容量の製造ばらつき等による水素残量の推定誤差がある場合であっても、水素ＳＴ充填量計測値ＱＳＴＶに基づいて精度の高い水素残量に燃料電池車両１で補正することができる。
【００５１】
更に、この燃料電池車両１によれば、水素ＳＴ充填量計測値ＱＳＴＶが所定値ＱＳＴＭＸより多い場合に学習処理を実行するので、誤学習の可能性を低くすると共に、水素ＳＴ充填量計測値ＱＳＴＶと車両充填量推定値ＱＴＮＫとの誤差ＤＶＨが、水素充填前の水素タンク２２の状態に基づく誤差範囲（ＤＨ１〜ＤＨ２）内である場合に学習処理を実行するので、故障やエラーが発生した時に学習処理を行うことを回避することができる。
【００５２】
［第２実施形態］
つぎに、第２実施形態に係る燃料充填システムについて説明する。なお、上述の第１実施形態と同様の部分については同一符号を付することによりその詳細な説明を省略する。
【００５３】
この第２実施形態に係る燃料充填システムは、水素ステーション２の充填量計１１で計測した水素ＳＴ充填量計測値ＱＳＴＶを手動でコントローラ２３に入力することを特徴とするものである。
【００５４】
このような燃料充填システムは、水素ステーション２又はコントローラ２３に接続された操作入力機構を備える。この操作入力機構は、水素ステーション２の充填量計１１の計測結果を数字で入力するキーボードや、タッチパネル等からなる。
【００５５】
このような操作入力機構が水素ステーション２に設けられた場合には、水素ステーション２のオペレータによって、充填量計１１で計測された水素ＳＴ充填量計測値ＱＳＴＶが確認され、当該水素ＳＴ充填量計測値ＱＳＴＶを示す数値が入力操作される。そして、予めメンテナンス用に燃料電池車両１に設けられたメンテナンスコネクタを介して、水素ステーション２の操作入力機構と燃料電池車両１のコントローラ２３とが電気的に接続された場合、ステーションデータ認識部３１は、操作入力機構からの信号を入力する入力チャンネルを新たに割り付け、当該入力チャンネルによって入力された数値を水素ＳＴ充填量計測値ＱＳＴＶとして入力して記憶する。
【００５６】
また、操作入力機構として燃料電池車両１に設けられたナビゲーションシステムのタッチパネル等を使用する場合、オペレータの操作によって水素ＳＴ充填量計測値ＱＳＴＶを示す数値が入力操作されると、当該入力操作された数値をステーションデータ認識部３１により認識して、水素ＳＴ充填量計測値ＱＳＴＶとして記憶する。このとき、ステーションデータ認識部３１は、例えばナビゲーションシステムの動作モードが水素ＳＴ充填量計測値ＱＳＴＶを入力する動作モードとなった場合に、ナビゲーションシステムからの数値を示す信号が水素ＳＴ充填量計測値ＱＳＴＶであると認識するための入力チャンネルを割り付ける。
【００５７】
このような燃料電池車両１によれば、水素ステーション２から水素タンク２２への水素充填時に、温度センサ２４や圧力センサ２５に対して割り付けた入力チャンネルとは異なり、水素ステーション２や燃料電池車両１の操作入力機構に対する入力チャンネルを割り付けるという簡単な処理を行うのみで、ステップＳ２７のステーションデータ認識処理（図５，ステップＳ４１，ステップＳ４２）を行うことができる。
【００５８】
［第３実施形態］
つぎに、第３実施形態に係る燃料充填システムについて説明する。なお、上述の第１実施形態と同様の部分については同一符号を付することによりその詳細な説明を省略する。
【００５９】
この第３実施形態に係る燃料充填システムは、水素ステーション２の充填量計１１で計測した水素ＳＴ充填量計測値ＱＳＴＶを自動的にコントローラ２３で入力することを特徴とするものである。
【００６０】
この燃料充填システムは、水素ステーション２及び燃料電池車両１の双方に、同一プロトコルで動作する無線ＬＡＮ（Local Area Network）送受信装置を備え、当該双方の無線ＬＡＮ送受信装置により通信回線を確立して通信を行うことにより、ステーションデータ認識部３１にＳＴ充填量計測値ＱＳＴＶを入力する。
【００６１】
ここで、双方の無線ＬＡＮ送受信装置は、水素ステーション２から水素タンク２２への水素充填が完了して、連結管Ｌ１と充填口２ａとを切り離す状態とした後（ステップＳ１９）、充填量計１１の計測値を水素ステーション２の無線ＬＡＮ送受信装置で読み込んで、無線信号を送出する。これに対し、燃料電池車両１の無線ＬＡＮ送受信装置は、水素ステーション２の無線ＬＡＮ送受信装置から送出された無線信号を検知すると、当該無線信号に含まれる水素ＳＴ充填量計測値ＱＳＴＶを示すデータをステーションデータ認識部３１で認識する。
【００６２】
このような燃料電池車両１によれば、水素ステーション２から水素タンク２２への水素充填時に、自動的にステーションデータ認識部３１で水素ＳＴ充填量計測値ＱＳＴＶを認識することができ、オペレータの作業負担を低減して短時間で入力処理を行うことができる。
【００６３】
［第４実施形態］（請求項４）
つぎに、第４実施形態に係る燃料充填システムについて説明する。なお、上述の実施形態と同様の部分については同一符号を付することによりその詳細な説明を省略する。
【００６４】
［燃料充填システムの構成］
この第４実施形態に係る燃料充填システムは、図１１に示すように、水素供給配管Ｌ１２に燃料流量計４１を備え、更には、流量学習判定部５１及び燃料流量学習部５２をコントローラ２３に備え、燃料電池２１を発電させている燃料電池車両１の走行時に燃料流量計４１の誤差を学習する点で、第１実施形態に係る燃料充填システムとは異なる。
【００６５】
この燃料電池車両１は、運転者のアクセル操作に応じて走行させる場合には、水素供給配管Ｌ１２に設けられた弁の開度等を調整することにより燃料電池２１に供給する水素流量を変化させて、燃料電池２１で水素を消費させる。このとき、燃料電池車両１は、燃料電池２１に要求される発電量に応じて水素タンク２２から燃料電池２１に供給する水素流量を調整するため、燃料流量計４１で水素流量を監視している。
【００６６】
また、燃料電池車両１は、上述の第１実施形態で説明したように水素充填時に補正した水素タンク２２の水素残量に基づいて、燃料流量計４１で検出する水素流量のばらつきを補正する水素流量学習処理を行う。
【００６７】
［水素流量学習処理］
燃料充填システムは、水素ステーション２から燃料電池車両１への水素充填が完了し、水素タンク２２の水素残量の補正がなされて燃料電池車両１が走行する場合に、図１２に示すように、先ずステップＳ７１で燃料電池２１を起動させ、ステップＳ７２で燃料電池車両１が走行開始すると、ステップＳ７３で燃料流量計４１により計測している水素流量を補正する水素流量学習処理を開始する。
【００６８】
この水素流量学習処理は、図１３に示すように、ステップＳ８１において流量学習判定部５１により、後述の図１４〜図２５で示す処理を行うことで燃料流量計４１の計測値について学習処理を行うか否かを各種条件に基づいて判定し、ステップＳ８１で学習処理を行うと判定した場合に、ステップＳ８２において燃料流量学習部５２により後述の図２６〜図３２で示す処理を行うことで燃料流量計４１の計測値について学習処理を行って補正する。
【００６９】
「流量学習判定処理」
ステップＳ８１の流量学習判定処理は、図１４に示すように、燃料電池車両１を構成する各部の暖機条件（ステップＳ９１）、燃料電池車両１周囲の環境条件（ステップＳ９２）、燃料流量計４１で計測する流量が一定となる一定保持条件（ステップＳ９３）、燃料流量計４１で計測する水素流量の学習領域に関する条件（ステップＳ９４）、暖機条件、環境条件、一定保持条件が継続する時間条件（ステップＳ９５）、燃料流量計４１で検出した流量積算値に関する条件（ステップＳ９６）を判定し、最終的に学習処理を行うか否かを判定する（ステップＳ９７）。
【００７０】
ステップＳ９１の車両暖機条件判定処理は、燃料電池車両１の暖気が完了しているか否かを判定する。これは、燃料電池車両１の各構成部品及び各燃料流量計４１等の温度が運転時の通常状態で学習処理を行うためである。
【００７１】
すなわち、流量学習判定部５１は、図１５に示すように、ステップＳ１０１において、燃料電池２１の温度調整を行うために燃料電池２１に循環させている純水温度が所定温度以上であるという第１条件、燃料電池２１の発電量が第１所定値以上となった回数が１度以上であるという第２条件、燃料電池車両１の速度が所定速度以上となった回数が１度以上であるという第３条件、燃料電池２１の発電量が第２所定値以上であるという第４条件、図示しない走行トルクを発生させるモータ、バッテリの各部の代表温度が所定値以上であるという第５条件の５つの条件を全て満たしているか否かを判定する。
【００７２】
このとき、流量学習判定部５１は、燃料電池２１に接続された純水循環流路に設けられた温度センサ（図示せず）からのセンサ信号を検出する処理を行う。そして、流量学習判定部５１は、現在の純水温度が、予め設定された燃料電池２１の暖機が確実に完了している所定温度以上である場合には、第１条件を満たしていると判定する。
【００７３】
また、流量学習判定部５１は、燃料電池２１の発電電力を検出するセンサ（図示せず）からのセンサ信号を検出する処理を行う。そして、流量学習判定部５１は、以前の燃料電池２１の発電量が、予め設定された燃料電池２１が正常に発電反応を行っていると判定する第１所定値以上である場合には、第２条件を満たしていると判定する。
【００７４】
更に、流量学習判定部５１は、燃料電池車両１の車速を検出する車速センサ（図示せず）からのセンサ信号を検出する処理を行う。そして、流量学習判定部５１は、現在の車速が、予め設定した燃料電池２１が正常に発電反応を行ってモータに電力供給していると判定する所定車速を超えたと判定した場合には、第３条件を満たしていると判定する。
【００７５】
更にまた、流量学習判定部５１は、センサにより検出した現在の燃料電池２１の発電量が、予め設定した第２所定値、例えば所定の最低発電量以上である場合には、第４条件を満たしていると判定する。
【００７６】
更にまた、流量学習判定部５１は、モータやバッテリの温度を検出する温度センサ（図示せず）からのセンサ信号を検出する処理を行う。そして、流量学習判定部５１は、例えばある期間内の温度の平均値である現在のモータやバッテリの代表温度が、モータやバッテリが正常に動作していると判定する所定温度以上と判定した場合には第５条件を満たしていると判定する。
【００７７】
そして、流量学習判定部５１は、第１条件乃至第５条件の全てを満たしていると判定した場合には、燃料電池車両１の暖機が完了していると判定してステップＳ１０２に処理を進めて、暖機完了フラグＦＶＥＨＩＯＫの値を「１」に設定し、第１条件乃至第５条件の何れかを満たしていないと判定した場合には、燃料電池車両１の暖機が完了していない可能性があると判定してステップＳ１０３に処理を進めて、暖機完了フラグＦＶＥＨＩＯＫの値を「０」に設定して、図１４のステップＳ９２に処理を進める。これにより、暖機が完了し、且つ燃料電池車両１の各部が走行運転時の通常使用状態となっている状態であることを確認することで、例えば暖機途中で燃料電池２１の発電状態が変化する時の学習処理を回避して、誤学習を防止する。
【００７８】
ステップＳ９２の学習環境判定処理は、燃料電池２１への水素供給状態や、燃料電池２１への酸化剤供給状態が、燃料電池車両１の周囲等に影響される環境条件によって学習処理に適しているか否かを判定する。
【００７９】
この学習環境判定処理は、図１６に示すように、ステップＳ１１１において、燃料電池車両１周囲が学習処理に適しているか否かを判定するために、大気温度が所定範囲以内であるという第１条件、水素タンク２２の温度が大気温度に対して所定範囲以内であるという第２条件、水素タンク２２の圧力が所定範囲以内である第３条件、燃料電池発電システムに異常がないという第４条件、第１実施形態におけるタンク残量学習処理を１回以上行ったという第５条件の全てを満たしているか否かを判定する。
【００８０】
このとき、流量学習判定部５１は、燃料電池車両１周囲の大気温センサ（図示せず）からのセンサ信号を入力する処理を行う。そして、流量学習判定部５１は、現在の大気温度が、水素タンク２２が過剰に冷却されて通常使用範囲外とならない所定範囲であると判定した場合には、第１条件を満たしていると判定する。
【００８１】
また、流量学習判定部５１は、温度センサ２４からのセンサ信号を入力し、現在の水素タンク２２の温度が大気温度に対して所定範囲以内であるか否かを判定し、所定範囲以内であると判定した場合には、第２条件を満たしていると判定する。
【００８２】
このように第１条件及び第２条件を満たすことを判定するのは、大気温度が低い場合には、燃料電池２１に供給される水素の温度が暖気状態であっても水素供給配管Ｌ１２で水素が冷やされて通常使用範囲から外れることがあり、更には、水素タンク２２の温度と大気温度に大きな温度差がある場合にも、燃料電池２１に供給する水素の温度が水素供給配管Ｌ１２で変化するためである。
【００８３】
更に、流量学習判定部５１は、圧力センサ２５からのセンサ信号を入力し、タンク圧力が所定範囲以内か否かを判定し、所定範囲以内である場合には第３条件を満たすと判定する。これは、タンク圧力が所定範囲よりも低い場合には、水素残量の変化に対するタンク圧力の変化が小さく、圧力センサ２５の分解能を考慮して誤差分が大きくなる可能性があり学習処理に適していないこと、タンク圧力が所定範囲よりも高い場合には、タンク圧力の変化に対して水素残量の変化が大きく、学習処理中にタンク温度の大きな変化が発生した場合の誤学習を防止するためである。
【００８４】
更にまた、流量学習判定部５１は、燃料電池２１に水素や酸化剤、純水等を供給して燃料電池２１の発電を制御する燃料電池発電システムに異常がないか否かを判定し、異常がないと判定した場合には、第４条件を満たすと判定する。これは、燃料電池発電システムに異常がある場合には、燃料電池２１の動作が不安定となる可能性が高く、水素流量についても不安定な変化が生じて学習処理に適さないためである。
【００８５】
更にまた、流量学習判定部５１は、タンク残量演算処理を１回以上行っている場合には、第５条件を満たしていると判定する。これは、後述する水素流量の学習処理において、タンク残量学習処理で補正された正確な車両充填量推定値ＱＴＮＫを使用して、正確な水素流量学習処理を行うためであって、当該正確な車両充填量推定値ＱＴＮＫが残量学習部３４に記憶されていることを確認するためである。
【００８６】
そして、流量学習判定部５１は、第１条件乃至第５条件の全てを満たしていると判定した場合には、水素流量の学習処理を行うに際しての燃料電池車両１の環境条件を満たしていると判定してステップＳ１１２に処理を進めて、環境条件許可フラグＦＥＮＶＯＫの値を「１」に設定し、第１条件乃至第５条件の何れかを満たしていないと判定した場合には、ステップＳ１１３に処理を進めて、環境条件許可フラグＦＥＮＶＯＫの値を「０」に設定して、図１４のステップＳ９３に処理を進める。
【００８７】
ステップＳ９３の一定保持条件判定処理は、学習処理開始時、学習処理中の水素流量が一定に保持されているという条件を満たしているか否かを判定する。
【００８８】
この一定保持条件判定処理は、図１７に示すように、先ずステップＳ１２１において、図示しないイグニッションスイッチが運転者によりオン操作されて、当該イグニッションスイッチの状態を示すフラグが「０」から「１」に変更されたことを検出すると、流量学習判定部５１は、イグニッションスイッチがオン操作された初回であると判定して、ステップＳ１２２に処理を進める。このステップＳ１２２においては、水素流量の変化が学習処理に適しているか否か、すなわち燃料流量計４１で計測している水素流量が一定に保持されているか否かを示す一定保持継続フラグＦＬＲＮＦＬＯの値を、「０」に設定して初期化する。このステップＳ１２１及びステップＳ１２２の処理は、後述する時間条件判定処理、積算終了判定処理において、イグニッションスイッチがオン操作された初回における演算処理を正常に行うための初期化処理である。
【００８９】
一方、イグニッションスイッチがオン操作された初回ではないと判定した場合には、ステップＳ１２３に処理を進める。
【００９０】
次に流量学習判定部５１は、ステップＳ１２３において、前回の一定保持条件判定処理後の一定保持継続フラグＦＬＲＮＦＬＯの値が「１」であるか否かを判定し、そうである場合には、現時点で一定保持条件を満たしているかを判定するためにステップＳ１２４〜ステップＳ１２８の処理を行い、そうでない場合、すなわちイグニッションスイッチがオン操作された初回の処理である場合や、前回の一定保持条件判定処理で水素流量が大きく変化した場合には、一定保持条件の計算を開始するための基準値を設定するためにステップＳ１２９に処理を進める。
【００９１】
流量学習判定部５１は、ステップＳ１２４において、予め記憶しておいた、実際の水素流量に基づいて一定保持条件が満たされていることを判定する学習開始判定偏差ＤＦＬＯをメモリから読み出す。この学習開始判定偏差ＤＦＬＯは、水素流量の学習処理を許可する場合に、どれだけの水素流量の変化範囲を許容するかを規定する所定期間内での水素流量変化量である。この学習開始判定偏差ＤＦＬＯは、学習領域番号ＲＧごとに学習処理を行うため、例えば後述する各学習領域番号ＲＧが割り振られている各学習領域の流量範囲を超えないような小さい値が予め設定されている。
【００９２】
次に流量学習判定部５１は、ステップＳ１２５において、燃料流量計４１からのセンサ信号を読み込んで今回の水素流量値ＨＦＬＯを検出し、当該今回の水素流量値ＨＦＬＯが、学習範囲基準値ＨＦＬＯＳＴに所定値（学習開始判定偏差ＤＦＬＯ）を加算した水素流量値から、学習範囲基準値ＨＦＬＯＳＴから所定値（学習開始判定偏差ＤＦＬＯ）を減算した水素流量値までの範囲であるか否かを判定する。
【００９３】
そして、流量学習判定部５１は、範囲内であると判定した場合にはステップＳ１２６に処理を進めて、水素流量の変化が一定に保持されているので一定保持継続フラグＦＬＲＮＦＬＯの値を「１」に設定し、範囲外であると判定した場合にはステップＳ１２７に処理を進めて、一定保持条件から外れたと判定して一定保持継続フラグＦＬＲＮＦＬＯの値を「０」に設定する。
【００９４】
次に流量学習判定部５１は、ステップＳ１２８において、新たに一定保持条件を満たしたと判定されないので保持判定開始フラグＦＴＭＦＳＴの値を「０」に設定する。この保持判定開始フラグＦＴＭＦＳＴは、一定保持条件を満たしていると認識した初回の一定保持条件判定処理のみで、流量学習のトリガーとしてその値が「１」に設定され、一定保持条件を継続している場合又は一定保持条件を満たしていないときには「０」に設定される。
【００９５】
一方、ステップＳ１２３で前回の一定保持継続フラグＦＬＲＮＦＬＯの値が「０」と判定された後、流量学習判定部５１は、ステップＳ１２９において、予め記憶しておいた学習開始判定偏差ＤＦＬＯをメモリから読み出し、ステップＳ１３０において、前回の一定保持条件判定処理にてメモリに記憶されている燃料流量計４１で検出した水素流量値を、今回の水素流量値ＨＦＬＯと区別するために、前回の水素流量値ＨＦＬＯＺとして記憶し直す。
【００９６】
次に流量学習判定部５１は、ステップＳ１３１において、ステップＳ１３０で記憶した前回の水素流量値ＨＦＬＯＺを基準値とし、今回の水素流量値ＨＦＬＯが一定保持条件を満たしているか否かを判定する。このとき、流量学習判定部５１は、燃料流量計４１からのセンサ信号を読み込んで今回の水素流量値ＨＦＬＯを検出し、当該水素流量値ＨＦＬＯが、基準値である水素流量値ＨＦＬＯＺに所定値（学習開始判定偏差ＤＦＬＯ）を加算した水素流量値から、水素流量値ＨＦＬＯＺから所定値（学習開始判定偏差ＤＦＬＯ）を減算した水素流量値までの範囲であるか否かを判定する。
【００９７】
そして、流量学習判定部５１は、範囲内であると判定した場合にはステップＳ１３２に処理を進め、範囲外であると判定した場合には一定保持条件を満たしておらず、一定保持継続フラグＦＬＲＮＦＬＯの値を「０」とし（ステップＳ１２７）、更には保持判定開始フラグＦＴＭＦＳＴの値を「０」に設定して処理を終了する（ステップＳ１２８）。
【００９８】
流量学習判定部５１は、ステップＳ１３２において、学習範囲基準値ＨＦＬＯＳＴを、ステップＳ１３０で記憶した前回の水素流量値ＨＦＬＯＺとし、ステップＳ１３３において、学習処理の対象となる流量領域を設定するための学習領域判定用流量ＨＦＬＯＲＧを、燃料流量計４１の生データ値相当である学習前センサ流量ＨＦＬＯＳＥＮから決定する。このとき、流量学習判定部５１は、図１８に示すように、学習前センサ流量ＨＦＬＯＳＥＮに対して複数の領域ｎ（ｎ＝１，２，３，・・・）が割り当てられており、例えば今回の学習前センサ流量ＨＦＬＯＳＥＮに対する領域の中央値を学習領域判定用流量ＨＦＬＯＲＧとする。
【００９９】
次に流量学習判定部５１は、ステップＳ１３４において、一定保持継続フラグＦＬＲＮＦＬＯの値を「１」とすると共に、ステップＳ１３５において、保持判定開始フラグＦＴＭＦＳＴの値を「１」として、処理を終了する。
【０１００】
このように、一定保持条件判定処理が終了すると、流量学習判定部５１は、処理を図１４のステップＳ９４に進める。
【０１０１】
ステップＳ９４の学習領域判定処理は、図１９に示すように、先ずステップＳ１４１において、水素流量の学習を行う流量範囲である学習領域番号ＲＧを選定する。ここで、流量学習判定部５１は、図２０に示すような学習前センサ流量ＨＦＬＯＳＥＮに対する、学習を行う範囲である学習領域の領域番号ＲＧとの関係を示すデータを予め記憶している。そして、流量学習判定部５１は、学習前センサ流量ＨＦＬＯＳＥＮに該当する学習領域番号ＲＧを記憶して、図１４のステップＳ９５に処理を進める。
【０１０２】
ステップＳ９５の時間条件判定処理は、上述の暖機条件、環境条件が所定時間以上、継続的に成立したかという時間条件を判定する。これにより、時間条件が所定時間成立した後は、当該時間条件が成立する限り水素流量の積算を継続する処理を行い、暖機条件や環境条件を満たさなくなった時点で学習処理に移行させる。このような時間条件を設けたのは、暖機条件や環境条件が成立する時間が長いほど、多数の水素流量値を積算して各種パラメータの分解能の誤差分を低減させることができ、精度の高い学習処理を行うためである。
【０１０３】
この時間条件判定処理は、図２１に示すように、先ずステップＳ１５１において、流量学習判定部５１は、暖機完了フラグＦＶＥＨＩＯＫの値が「１」であって暖機条件が成立しており、且つ環境条件許可フラグＦＥＮＶＯＫの値が「１」であって環境条件が成立しているか否かを判定し、当該２つのフラグの値が共に「１」である場合にはステップＳ１５２に処理を進め、そうでない場合にはステップＳ１６１に処理を進める。
【０１０４】
ステップＳ１６１においては時間条件学習許可フラグＦＴＭＦＯＫ２の値を「０」とし、ステップＳ１６２においては一定保持時間ＴＭＦＬＯ１を「０」とし、更にステップＳ１６０で時間条件判定フラグＦＴＭＦＯＫ１の値を「０」にし、後に学習処理を行わないフラグ状態とする。
【０１０５】
ここで、時間条件判定フラグＦＴＭＦＯＫ１は、暖機条件、環境条件及び一定保持条件を満たしている最中であって継続時間をカウントしている最中に値が「１」とされ、満たしていない時には値が「０」とされる。また、時間条件学習許可フラグＦＴＭＦＯＫ２は、暖機条件、環境条件及び一定保持条件の成立中には学習処理を行わず、成立状態から不成立状態となった時点で学習処理を開始するために、この時点でトリガーとして値が「１」に設定され、その他の場合には「０」に設定される。
【０１０６】
流量学習判定部５１は、ステップＳ１５２において、一定保持継続フラグＦＬＲＮＦＬＯの値が「１」であるか否かを判定し、水素流量に大きな変化が無く一定保持継続フラグＦＬＲＮＦＬＯの値が「１」である場合にはステップＳ１５３に処理を進め、そうでない場合にはステップＳ１５８に処理を進める。
【０１０７】
次に流量学習判定部５１は、ステップＳ１５３において、暖機条件や環境条件及び一定保持条件を満たしているときに作動されるカウンタの計時値である前回までの一定保持時間ＴＭＦＬＯ１を、計算時間間隔ΔＴだけ増加させて今回の一定保持時間ＴＭＦＬＯ１を更新する。
【０１０８】
次に流量学習判定部５１は、ステップＳ１５４において、時間条件判定処理で設定された学習領域番号ＲＧに対する継続必要時間ＴＭＦＯＫを求める。このとき、流量学習判定部５１は、図２２に示す継続時間テーブルを参照し、記憶されている学習領域番号ＲＧに対する継続必要時間ＴＭＦＯＫを求める。すなわち、流量学習判定部５１は、学習範囲基準値ＨＦＬＯＳＴが小さいと判定される学習領域番号ＲＧが「１」や「２」である場合ほど、長い継続必要時間ＴＭＦＯＫを設定する。
【０１０９】
次に流量学習判定部５１は、ステップＳ１５５において、ステップＳ１５３で更新された一定保持時間ＴＭＦＬＯ１が、ステップＳ１５４で求めた継続必要時間ＴＭＦＯＫ以上か否かを判定し、そうである場合には時間条件を満たしていると判定してステップＳ１５６で時間条件判定フラグＦＴＭＦＯＫ１の値を「１」に設定すると共に時間条件学習許可フラグＦＴＭＦＯＫ２の値を「０」として処理を終了し、そうでない場合にはステップＳ１６０で時間条件判定フラグＦＴＭＦＯＫ１の値を「０」にして処理を終了する。
【０１１０】
これに対し、ステップＳ１５２で一定保持継続フラグＦＬＲＮＦＬＯの値が「１」ではないと判定されたステップＳ１５８において、流量学習判定部５１は、前回の時間条件判定フラグＦＴＭＦＯＫ１の値が「１」か否かを判定することで、前回の時間条件判定処理で時間条件を満たしていたか否かを判定する。そして、流量学習判定部５１は、前回の時間条件判定処理で時間条件を満たしていたと判定した場合には、時間条件が不成立となったと判定して、後に学習処理を開始するために時間条件学習許可フラグＦＴＭＦＯＫ２の値を「１」とし（ステップＳ１５９）、一定保持条件が不成立なので時間条件判定フラグＦＴＭＦＯＫ１の値を「０」とする。
【０１１１】
また、流量学習判定部５１は、ステップＳ１５８で前回の時間条件が満たされていないと判定した後のステップＳ１６１においては、暖機条件及び環境条件を満たしているが一定保持条件を継続必要時間ＴＭＦＯＫ以上満たさなかったので、時間条件学習許可フラグＦＴＭＦＯＫ２の値を「０」とし、ステップＳ１６２において一定保持時間ＴＭＦＬＯ１の値を「０」にしてクリアし、ステップＳ１６０の処理を行う。
【０１１２】
これにより、流量学習判定部５１は、暖機条件、環境条件及び一定保持条件を満たした状態の継続時間に応じて、時間条件判定フラグＦＴＭＦＯＫ１及び時間条件学習許可フラグＦＴＭＦＯＫ２を設定して、図１４のステップＳ９６に処理を進める。
【０１１３】
ステップＳ９６の積算終了判定処理は、図２３に示すように、流量学習判定部５１により、先ずステップＳ１７１において、一定保持継続フラグＦＬＲＮＦＬＯの値が「１」であるか否かを判定し、そうである場合にはステップＳ１７２に処理を進める。
【０１１４】
次に流量学習判定部５１は、ステップＳ１７２において、前回までの流量積算値ＩＴＧＦＬＯに、現時点の水素流量値ＨＦＬＯと予め設定されているコントローラ２３の演算時間間隔ΔＴを掛け合わせた値を加算することにより、今回の流量積算値ＩＴＧＦＬＯを求める。これにより、流量学習判定部５１は、一定保持継続フラグＦＬＲＮＦＬＯの値が「１」である期間内では、コントローラ２３の演算時間間隔ΔＴごとに流量積算値ＩＴＧＦＬＯを更新していく。
【０１１５】
次に流量学習判定部５１は、ステップＳ１７３において、今回の流量積算値ＩＴＧＦＬＯが所定の積算上限値ＩＴＧＭＡＸを超えているか否かを判断し、超えている場合には、積算処理を終了すべくステップＳ１７４において積算終了フラグＦＩＴＧＦＮの値を「１」とし、超えていない場合には積算処理を継続すべく積算終了フラグＦＩＴＧＦＮの値を「０」とする。ここで、積算上限値ＩＴＧＭＡＸは、流量積算値ＩＴＧＦＬＯに割り当てられたメモリのビット数に応じた最大値に設定され、流量積算値ＩＴＧＦＬＯに割り当てられたメモリのビット数は、例えば、通常の発電状態で水素タンク２２から燃料電池２１に供給される水素流量が上述の時間条件を満たした場合の流量積算値ＩＴＧＦＬＯに近い値で最大値となるビット数である。
【０１１６】
一方、ステップＳ１７１で一定保持継続フラグＦＬＲＮＦＬＯの値が「１」でない場合には、積算期間ではないので、ステップＳ１７５において、流量学習判定部５１により、流量積算値ＩＴＧＦＬＯを「０」とし、ステップＳ１７６において、積算終了フラグＦＩＴＧＦＮの値を「０」とする。
【０１１７】
なお、この積算終了判定処理で求めた流量積算値ＩＴＧＦＬＯを後述する学習処理で使用するためには、ある程度の期間以上積算処理を行った結果得た流量積算値ＩＴＧＦＬＯであることが望ましい。すなわち、学習精度を向上させるために必要なタンク圧力の変化量、例えば図２４に示すように、環境条件に相当する学習処理を許可する圧力範囲内でＰ１１からＰ１２まで変化する必要があり、当該タンク圧力の変化量に対応した水素タンク２２内の水素残量の変化が最低限必要な流量積算値ＩＴＧＦＬＯとなる。そして、この最低限必要な流量積算値ＩＴＧＦＬＯを単位時間当たりに計測される水素流量で除算して得た値に、コントローラ２３の単位時間を乗算した値が、必要演算時間となる。
【０１１８】
次に、図１４のステップＳ９７の学習実行フラグ生成処理は、学習処理を実行するか否かを判定して、判定結果を示す学習実行フラグを生成する処理である。
【０１１９】
この学習実行フラグ生成処理は、図２５に示すように、先ずステップＳ１８１において、流量学習判定部５１により、学習処理を実行するか否かの判断として、時間条件判定フラグＦＴＭＦＯＫ１の値と積算終了フラグＦＩＴＧＦＮの値の双方が「１」であるという第１条件、時間条件学習許可フラグＦＴＭＦＯＫ２の値が「１」であるという第２条件の何れかの条件を満たすか否かを判定する。
【０１２０】
そして、流量学習判定部５１は、第１条件又は第２条件の何れかを満たすと判定した場合には、学習処理を実行すると判定して、ステップＳ１８２にて学習実行フラグＦＬＲＮＥＸＥの値を「１」とし、第１条件又は第２条件の何れも満たさないと判定した場合には、学習処理を実行しないと判定して、ステップＳ１８３にて学習実行フラグＦＬＲＮＥＸＥの値を「０」とする。
【０１２１】
「水素流量学習処理」
ステップＳ８２の水素流量学習処理は、図２６に示すように、燃料流量学習部５２により、先ずステップＳ１９１において、例えば図２４で説明した必要積算時間以上の流量積算期間における水素タンク２２の状態の変化から残量変化量を計算し、次のステップＳ１９２において、積算終了判定処理で得た流量積算値ＩＴＧＦＬＯと、水素タンク２２の状態の変化に基づく残量変化量である使用水素量とを比較して、誤差割合を演算し、次のステップＳ１９３において、誤差割合に基づいた学習処理を行う。この水素流量の学習処理は、燃料流量計４１の水素流量計測レンジである動作範囲を分割した学習領域番号ＲＧごとに行う。
【０１２２】
以下、ステップＳ１９１、ステップＳ１９２、ステップＳ１９３の詳細な処理内容を説明する。
【０１２３】
ステップＳ１９１のタンク残量変化演算処理において、燃料流量学習部５２は、図２７に示すように、ステップＳ２０１において保持判定開始フラグＦＴＭＦＳＴの値が「１」か否かを判定することにより水素流量の積算処理が開始された時点か否かを判定し、そうである場合には、その時点のタンク圧力ＶＰＲＳを積算開始時タンク圧力ＰＶＬＳＴとして記憶すると共に（ステップＳ２０２）、その時点のタンク温度ＶＴＭＰを積算開始時タンク温度ＴＶＬＳＴとして記憶する（ステップＳ２０３）。
【０１２４】
次に燃料流量学習部５２は、ステップＳ２０４において、積算開始時タンク圧力ＰＶＬＳＴ及び積算開始時タンク温度ＴＶＬＳＴから、図４の水素残量マップデータを参照して、積算開始時タンク残量ＱＨＶＬＳＴを算出し、ステップＳ２０５において、積算終了時タンク残量ＱＨＶＬＦＮを初期化のために「０」にクリアする。
【０１２５】
また、ステップＳ２０６において学習実行フラグＦＬＲＮＥＸＥの値が「１」ではないと判定された後のステップＳ２１１において、燃料流量学習部５２は、積算処理中又はステップＳ１８１の条件を満たしていない状態であるので、一定保持継続フラグＦＬＲＮＦＬＯの値が「１」であるか否かを判定することにより積算処理中か否かを判定する。そして、燃料流量学習部５２は、積算処理中である場合にはステップＳ２１３に処理を進め、積算処理中でない場合にはステップＳ２１２で積算開始時タンク残量ＱＨＶＬＳＴを「０」に初期化し、その後、ステップＳ２１３において、積算終了時タンク残量ＱＨＶＬＦＮを「０」に初期化する。
【０１２６】
このように、ステップＳ２０５及びステップＳ２１３で積算終了時タンク残量ＱＨＶＬＦＮの値が「０」となされた後には、ステップＳ１９２及びステップＳ１９３を行わずに、ステップＳ８１の流量学習判定処理に戻ることになる。
【０１２７】
このようなステップＳ１９１のタンク残量変化演算部は、上述の流量学習判定処理と並列して、ステップＳ２０１〜ステップＳ２０５の処理、ステップＳ２０１に続くステップＳ２０６、ステップＳ２１１〜ステップＳ２１３の処理を繰り返して行っていることになる。
【０１２８】
これに対し、保持判定開始フラグＦＴＭＦＳＴが「１」ではないと判定した後のステップＳ２０６において、燃料流量学習部５２は、学習実行フラグＦＬＲＮＥＸＥの値が「１」であるか否かを判定することにより水素流量の積算処理が終了された時点か否かを判定し、そうである場合には、その時点のタンク圧力ＶＰＲＳを積算終了時タンク圧力ＰＶＬＦＮとして記憶すると共に（ステップＳ２０７）、その時点のタンク温度ＶＴＭＰを積算開始時温度ＴＶＬＦＮとして記憶する（ステップＳ２０８）。
【０１２９】
次に燃料流量学習部５２は、ステップＳ２０９において、積算終了時タンク圧力ＰＶＬＦＮ及び積算終了時タンク温度ＴＶＬＦＮから、図４の水素残量マップデータを参照して、積算終了時タンク残量ＱＨＶＬＦＮを算出し、ステップＳ２１０において、ステップＳ２０４で求めた積算開始時タンク残量ＱＨＶＬＳＴから、ステップＳ２０９で求めた積算終了時タンク残量ＱＨＶＬＦＮを減算した差分を演算する。この差分の水素量は、一定保持条件を満たす期間中の使用水素量であって、積算処理中に使用したタンク使用水素量ＤＱＨＶＬとして記憶しておく。
【０１３０】
次に燃料流量学習部５２は、図２６のステップＳ１９２の水素使用量比較処理に処理を進め、上述の図１３に示した積算終了判定処理による水素流量の積算結果と、当該積算結果を得るための積算処理を行っている最中の水素タンク２２の状態変化に基づくタンク残量の変化の演算結果とを比較する。
【０１３１】
この水素使用量比較処理は、図２８に示すように、先ずステップＳ２２１において、ステップＳ２１０で求めたタンク使用水素量ＤＱＨＶＬに対する、ステップＳ１７２で求めた流量積算値ＩＴＧＦＬＯの誤差比率ＥＲＲＦＬＯを、
ＥＲＲＦＬＯ＝ＩＴＧＦＬＯ／ＤＱＨＶＬ
なる演算を行うことにより求める。
【０１３２】
次に燃料流量学習部５２は、ステップＳ２２２において、センサ誤差量として基準的な値を求めるために、一定保持条件を判定する基準値となる学習範囲基準値ＨＦＬＯＳＴ及びステップＳ２２１で求めた誤差比率ＥＲＲＦＬＯを用いて、オフセット誤差量ＯＦＦＦＬＯを
ＯＦＦＦＬＯ＝ＨＦＬＯＳＴ×ＥＲＲＦＬＯ−ＨＦＬＯＳＴ
なる演算を行うことにより求める。
【０１３３】
次に燃料流量学習部５２は、ステップＳ２２３において、学習範囲基準値ＨＦＬＯＳＴに応じた学習領域番号ＲＧに対応したメモリ領域に、ステップＳ２２２で求めたオフセット誤差量ＯＦＦＦＬＯ（ＲＧ）に記憶する。これにより、燃料流量学習部５２は、学習領域番号ＲＧごとにオフセット誤差量ＯＦＦＦＬＯ（１〜ｎ）を記憶して、図２６のステップＳ１９３に処理を進める。
【０１３４】
ステップＳ１９３の学習値反映処理は、水素使用量比較処理で得たオフセット誤差量ＯＦＦＦＬＯをメモリに記憶した状態で、図２９に示すように、先ずステップＳ２３１において、図３０に示す学習範囲基準値ＨＦＬＯＳＴに対する学習済のオフセット値（学習オフセット値）ＲＧＭ（１〜ｎ）を記述したマップデータを参照して、今回の学習範囲基準値ＨＦＬＯＳＴに対応した学習領域番号ＲＧの学習オフセット値ＲＧＭｎを読み出す。この学習オフセット値ＲＧＭｎは、後述するが、学習前センサ流量ＨＦＬＯＳＥＮを学習により補正する学習オフセット量を算出するための値である。また、図３０に示すマップデータは、学習領域番号ＲＧ１〜５・・・ごとに、学習オフセット値ＲＧＭ１〜５・・・が対応付けて記憶されている。
【０１３５】
次に燃料流量学習部５２は、ステップＳ２３２において、上述のステップＳ２２３において記憶した今回のオフセット誤差量ＯＦＦＦＬＯｎを読み出し、ステップＳ２３１で読み出した学習オフセット値ＲＧＭｎと共にステップＳ２３３の処理に渡す。
【０１３６】
次に燃料流量学習部５２は、マップデータから読み出した学習オフセット値ＲＧＭｎを修正する学習値演算処理を行う。この学習値演算処理は、図３１に示すように、燃料流量学習部５２は、先ずステップＳ２４１において、ステップＳ２２３で記憶しておいたオフセット誤差量ＯＦＦＦＬＯｎと、学習オフセット値ＲＧＭｎとの差分ＤＬＴＯＦＦを算出し、次のステップＳ２４２において、差分ＤＬＴＯＦＦの絶対値ＡＢＳＯＦＦを算出する。
【０１３７】
次に燃料流量学習部５２は、ステップＳ２４３において、予め記憶しておいた最大変化許可量ＭＸＯＦＦを読み出し、ステップＳ２４４において、絶対値ＡＢＳＯＦＦと最大変化許可量ＭＸＯＦＦのうち、値の小さい方を選択して、今回の学習による学習領域番号ＲＧごとの補正計数ＲＧＯＦＦとして記憶しておく。
【０１３８】
次に燃料流量学習部５２は、ステップＳ２４５において、ステップＳ２３１で読み出した学習オフセット値ＲＧＭｎを用いて、
ＲＧＭｎ＋（ＤＬＴＯＦＦ／｜ＤＬＴＯＦＦ｜）×ＲＧＯＦＦ
なる演算を行うことにより、今回の学習オフセット値ＲＧＭｎを求める。
【０１３９】
次に燃料流量学習部５２は、図２９のステップＳ２３４において、ステップＳ２４５で求めた今回の学習オフセット値ＲＧＭｎを記憶し、次のステップＳ２３５において、今回の学習前センサ流量ＨＦＬＯＳＥＮの補正に使用する学習オフセット量ＡＶＲＧＭを、
ＡＶＲＧＭ＝（ＲＧＭ１＋・・・＋ＲＧＭｎ）／ｎ
なる演算を行って求める。
【０１４０】
次に燃料流量学習部５２は、ステップＳ２３６において、学習前センサ流量ＨＦＬＯＳＥＮを学習オフセット量ＡＶＲＧＭで補正することで、学習した値を今回の水素流量値ＨＦＬＯに反映させる。このとき、燃料流量学習部５２は、
ＨＦＬＯ＝ＨＦＬＯＳＥＮ＋ＡＶＲＧＭ
なる演算を行う。すなわち、燃料流量学習部５２は、燃料流量計４１により検出される流量範囲を分割した学習領域番号ＲＧごとに、積算値と水素タンク２２の状態に基づく差分値との誤差量を求め、分割した全学習領域番号ＲＧの誤差量の平均値を補正量（学習オフセット量ＡＶＲＧＭ）として、燃料流量計４１により計測した水素流量に加算する。
【０１４１】
これにより、燃料流量学習部５２は、図１８に示すように、実線で示す学習前センサ流量ＨＦＬＯＳＥＮを、点線で示す学習後の今回の水素流量値ＨＦＬＯに補正する。このような処理を行う燃料流量学習部５２は、図３２に示すように、燃料流量計４１により計測された水素流量値ＨＦＬＯを各領域ごとに学習し、燃料流量計４１の誤差を補正して実流量を求めることにより、正確な水素タンク２２から燃料電池２１への供給流量を求めることができる。
【０１４２】
「水素流量学習処理の動作例」
つぎに、上述したステップＳ８１及びステップＳ８２の処理を行う燃料電池車両１の動作例について、図３３を参照して説明する。
【０１４３】
このような第４実施形態に係る水素流量学習処理において、図３３に示すタイミングチャートのように燃料電池２１の発電量［ｋｓ］（図３３（ａ））及び燃料電池２１への水素流量値ＨＦＬＯ［ｇ／ｓ］（図３３（ｂ））が変化する場合、タンク圧力ＶＰＲＳ［Ｐａ］も同時に徐々に低下する（図３３（ｋ））。時刻ｔ１にて暖機条件及び環境条件が成立すると、暖機完了フラグＦＶＥＨＩＯＫ（図３３（ｃ））及び環境条件許可フラグＦＥＮＶＯＫ（図３３（ｄ））の値が共に「１」となる。
【０１４４】
そして、時刻ｔ２にて燃料流量計４１で計測する水素流量が所定の変動範囲以内となることを判定すると、保持判定開始フラグＦＴＭＦＳＴの値をトリガーとして「１」とすると共に（図３３（ｈ））、一定保持継続フラグＦＬＲＮＦＬＯの値を「１」とする（図３３（ｅ））。また、この時刻ｔ２では、タンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰに基づいて積算開始時タンク残量ＱＨＶＬＳＴ［ｇ］の値Ｑ１として記憶する（図３３（ｌ））。このように暖機条件、環境条件及び一定保持条件が共に成立した状態となると、水素流量の積算処理を開始し、流量積算値ＩＴＧＦＬＯ［ｇ］を更新し続ける状態となる（図３３（ｊ））。
【０１４５】
そして、時刻ｔ２から継続必要時間ＴＭＦＯＫが経過する時刻ｔ３では、時間条件を満たしたと判定されて、時間条件判定フラグＦＴＭＦＯＫ１の値が「１」となり（図３３（ｆ））、一定保持条件の成立状態が更に継続して、時刻ｔ４において、流量積算値ＩＴＧＦＬＯの値が積算上限値ＩＴＧＭＡＸよりも高くなると、時間条件学習許可フラグＦＴＭＦＯＫ２の値が「１」となり（図３３（ｇ））、同時に、学習実行フラグＦＬＲＮＥＸＥの値が「１」となる（図３３（ｉ））。これに応じて、積算処理を終了させると共に、時刻ｔ４でのタンク圧力ＶＰＲＳ及びタンク温度ＶＴＭＰに基づく積算終了時タンク残量ＱＨＶＬＦＮ［ｇ］の値Ｑ２として記憶する（図３３（ｍ））。
【０１４６】
このように積算終了時タンク残量ＱＨＶＬＦＮを算出すると、当該積算終了時タンク残量ＱＨＶＬＦＮと積算開始時タンク残量ＱＨＶＬＳＴとの差分が、時刻ｔ２から時刻ｔ４に亘る水素タンク２２の状態変化に基づくタンク使用水素量ＤＱＨＶＬ［ｇ］の値Ｑ３として求められる（図３３（ｎ））。
【０１４７】
これにより、タンク使用水素量ＤＱＨＶＬと、流量積算値ＩＴＧＦＬＯとの差の値Ｑ４は、オフセット誤差量ＯＦＦＦＬＯ［ｇ／ｓ］となり（図３３（ｏ））、時刻ｔ２から時刻ｔ４における水素流量値ＨＦＬＯに対応した学習領域番号ＲＧの学習オフセット値ＲＧＭｎ［ｇ／ｓ］の値Ｑ５を求めることができる（図３３（ｐ））。これにより、学習オフセット値ＲＧＭｎから学習オフセット量ＡＶＲＧＭを求めて、燃料流量計４１により検出していた学習前センサ流量ＨＦＬＯＳＥＮを補正することができる。
【０１４８】
［第４実施形態の効果］（請求項４）
以上詳細に説明したように、本発明を適用した第４実施形態に係る燃料電池車両１によれば、第１実施形態で説明したように水素ステーション２から水素タンク２２への水素充填時に水素タンク２２の水素残量を補正した上で、燃料電池２１を発電させている時に燃料流量計４１の誤差を学習するので、燃料流量計４１の計測値のばらつきを補正することができる。したがって、この燃料電池車両１によれば、精度が高く高価な燃料流量計４１を設けなくても、実際に燃料電池２１で消費した水素流量を正確に把握することができる。
【０１４９】
すなわち、この燃料電池車両１によれば、一定保持条件を満たしている期間において燃料流量計４１により検出した水素流量を積算した流量積算値ＩＴＧＦＬＯと、水素タンク２２の水素残量を補正した上での積算開始時タンク残量ＱＨＶＬＳＴと積算終了時タンク残量ＱＨＶＬＦＮとの差分値である誤差量に基づいて、燃料流量計４１により計測された燃料流量を補正することができ、確実に燃料流量計４１の計測誤差を補正することができる。
【０１５０】
また、この燃料電池車両１によれば、燃料流量計４１で計測している水素流量が所定範囲以内となっているという一定保持条件が成立している期間が所定期間以上継続した場合に、水素流量学習処理を行うので、水素流量が安定している状態において検出した値を使用して正確な流量積算値ＩＴＧＦＬＯを求めて、学習精度を高くすることができる。
【０１５１】
更に、この燃料電池車両１によれば、燃料電池２１の暖機が完了しているという暖機条件、及び、水素タンク２２の温度及び圧力が変動しないという環境条件が成立している期間が所定期間以上継続した場合に流量学習処理を行うので、燃料電池２１が安定して発電しており、従って水素流量が安定する期間内で流量積算値ＩＴＧＦＬＯを求め、更に、水素タンク２２の圧力及び温度に基づいて求めるタンク使用水素量ＤＱＨＶＬを安定した値とすることができ、流量積算値ＩＴＧＦＬＯとタンク使用水素量ＤＱＨＶＬとの誤差を精度良く求めることができる。
【０１５２】
更にまた、この燃料電池車両１によれば、燃料流量計４１により検出される流量範囲を分割した学習領域番号ＲＧごとに流量積算値ＩＴＧＦＬＯとタンク使用水素量ＤＱＨＶＬとの誤差量を求め、分割した全学習領域番号ＲＧの誤差量の平均値を補正量（学習オフセット量ＡＶＲＧＭ）として、燃料流量計４１により計測した水素流量に加算することにより、燃料流量計４１の全流量範囲に亘って補正を行うことができる。
【０１５３】
［第５実施形態］
つぎに、第５実施形態に係る燃料充填システムについて説明する。なお、上述の実施形態と同様の部分については同一符号、同一ステップ番号を付することによりその詳細な説明を省略する。
【０１５４】
この第５実施形態に係る燃料充填システムは、図３４に示すように、燃料電池２１に電力供給ラインを介して駆動モータ６１及び２次電池６２を接続し、更にコントローラ２３に学習条件設定部７１を設けた点で、第４実施形態に係る燃料充填システムとは異なる。
【０１５５】
このような燃料充填システムは、学習条件設定部７１により、流量学習判定部５１で水素残量の学習を実行すると判定する判定条件に燃料電池２１の発電運転状態を合致させるために、燃料電池２１の運転状態を制限することを特徴とするものである。
【０１５６】
この燃料充填システムは、図３５に示すような水素流量学習処理を行う。この水素流量学習処理は、先ず、上述したステップＳ８１において、流量学習判定部５１により、図１４〜図２４で示す処理を行うことで、燃料流量計４１の計測値について学習処理を行うか否かを各種条件に基づいて判定する。
【０１５７】
次に学習条件設定部７１は、燃料流量学習部５２により図２５〜図３２で示す処理を行うステップＳ８２を行う前に、ステップＳ２５１において、燃料流量計４１の計測値について学習処理を行って補正する学習条件を設定する処理を行う。この水素流量学習処理は、燃料電池２１の発電量を発電量指令値により調整しながら、燃料電池車両１が燃料電池２１の発電電力及び２次電池６２の発電電力を駆動モータ６１に供給し、駆動モータ６１に走行トルクを発生させている走行運転中に実行される。
【０１５８】
このステップＳ２５１においては、学習条件設定部７１により、車両状態として燃料電池２１の発電量を一定とすることが可能か否かを判断し、可能である場合には燃料電池２１の発電量を一定にする。このとき、学習条件設定部７１は、例えば一定車速で燃料電池車両１が走行している最中において、補機等の消費電力の変化に応じて燃料電池２１の発電量を変化させる必要が生じた場合に、燃料電池２１の発電量を増やして補機等に電力供給せずに、２次電池６２から補機等に電力供給をさせて、燃料電池２１の発電量を一定に維持する。
【０１５９】
このような学習条件設定処理は、図３６に示すように、学習条件設定部７１により、先ずステップＳ２６１において、図１７の一定保持条件判定処理によって設定された一定保持継続フラグＦＬＲＮＦＬＯの値が「１」か否かを判定することにより、燃料電池２１が一定の発電状態であるか否かを判定する。そして、学習条件設定部７１は、一定保持継続フラグＦＬＲＮＦＬＯの値が「１」であると判定した場合にはステップＳ２６２に処理を進める。
【０１６０】
次に学習条件設定部７１は、ステップＳ２６２において、図示しない２次電池６２のＳＯＣ（State Of Charge）センサからのセンサ信号に基づく２次電池６２の充電量（ＳＯＣ）が所定範囲以内か否かを判定することにより、２次電池６２に十分な電力が蓄えられているか否かを判定する。ここで、充電量の所定範囲は、燃料電池２１の発電量を一定にした状態で補機等の消費電力が増加した場合に、当該増加した消費電力を２次電池６２から供給可能であると判定する範囲が設定されている。そして、学習条件設定部７１は、２次電池６２の充電量が所定範囲以内であると判定した場合には、ステップＳ２６３に処理を進める。
【０１６１】
次に学習条件設定部７１は、ステップＳ２６３において、現在の駆動モータ６１の消費電力（モータ消費電力ＭＯＴＰ）に予め設定しておいた通常車両消費電力ＡＶＥＶＰを加えた電力値が、現在の燃料電池発電量ＦＣＰに所定値を加算した上限から、現在の燃料電池発電量ＦＣＰから所定値を減算した下限の範囲内か否かを判定する。モータ消費電力ＭＯＴＰと通常車両消費電力ＡＶＥＶＰとを加えた電力値が、求めた上限から下限の範囲内であると判定した場合にはステップＳ２６４に処理を進める。ここで、通常車両消費電力ＡＶＥＶＰは、燃料電池車両１が通常走行を行うときに、燃料電池２１及び２次電池６２から電力供給を行う必要がある全ての補機を含んだ消費電力であって、予め実験等により設定されている。
【０１６２】
このようにステップＳ２６１、ステップＳ２６２及びステップＳ２６３の判定を行うことにより、水素流量の学習処理中にモータ消費電力ＭＯＴＰや補機等の消費電力の変化が発生した場合であっても、燃料電池２１を一定の発電状態に保持して、不足する電力を２次電池６２から放電可能であって、余剰な電力を２次電池６２で充電可能であることを確認する。
【０１６３】
次に学習条件設定部７１は、ステップＳ２６４において、前回の学習条件設定処理で設定した運転制約中フラグＦＬＲＮＭＯＤの値が「１」か否かを判定することにより、現在燃料電池２１の運転を制約している最中か否かを判定する。そして、現在燃料電池２１の運転を制約していると判定した場合には、運転制約中フラグＦＬＲＮＭＯＤの値を「１」に維持する（ステップＳ２６５）。一方、現在燃料電池２１の運転を制約していないと判定した場合には、運転制約中フラグＦＬＲＮＭＯＤの値を「１」に設定した後に（ステップＳ２６６）、現在の燃料電池発電量ＦＣＰを水素流量学習中の一定発電量である学習基準発電量ＬＲＮＦＣＰに設定する（ステップＳ２６７）。
【０１６４】
次に学習条件設定部７１は、ステップＳ２６８において、燃料電池２１の発電量を学習基準発電量ＬＲＮＦＣＰとする発電量指令値を燃料電池２１から電力を取り出すインバータ等に出力する。これにより、燃料電池２１の発電量を、ステップＳ２６１〜ステップＳ２６３の全ての条件を満たしたと判定した時点で学習基準発電量ＬＲＮＦＣＰとすることにより、一定保持継続フラグＦＬＲＮＦＬＯの値が「１」とした時点での水素流量を維持するように燃料電池２１の発電量を制限する。
【０１６５】
一方、ステップＳ２６１、ステップＳ２６２又はステップＳ２６３の条件を満たさなかった場合、学習条件設定部７１は、ステップＳ２６９において、運転制約中フラグＦＬＲＮＭＯＤの値を「０」に設定し、ステップＳ２７０において、前回の学習条件設定処理で燃料電池２１の発電量を制限していた場合には燃料電池２１の発電量指令値を制限を解除して、処理を終了する。
【０１６６】
［第５実施形態の効果］
以上詳細に説明したように、本発明を適用した第５実施形態に係る燃料電池車両１によれば、一定保持継続条件を満たしたときに燃料電池２１の発電量を一定とする制限を行うので、水素流量学習処理中における燃料電池２１に供給する水素流量の変化が少ない状態とすることができ、正確な学習処理を行うことができる。また、この燃料電池車両１によれば、水素流量の変動が少ない状態である学習処理に適した機会を増やすことができ、例えば定期的に燃料流量計４１の水素流量学習処理を行うことで、常に正確な水素流量を把握することができる。
【０１６７】
また、この燃料電池車両１によれば、一定保持条件を満たしている場合に、当該一定保持条件が時間条件を満たすようにすることができる。
【０１６８】
［第６実施形態］
つぎに、第６実施形態に係る燃料充填システムについて説明する。なお、上述の実施形態と同様の部分については同一符号、同一ステップ番号を付することによりその詳細な説明を省略する。
【０１６９】
この第６実施形態に係る燃料充填システムは、図３７に示すように、コントローラ２３に燃費演算部８１を設けた点で、第５実施形態に係る燃料充填システムとは異なる。この燃費演算部８１は、燃料電池車両１の航続距離及び流量積算値から平均燃費を演算すると共に、瞬間流量及び車速から瞬間燃費を演算することを特徴とするものである。
【０１７０】
この燃費演算部８１は、図３８に示すように、水素流量学習処理において、ステップＳ８１、ステップＳ２５１、及びステップＳ８２の処理が行われることによって燃料流量計４１によって計測されている水素流量が補正された状態で、ステップＳ２８１の燃費演算処理を行う。
【０１７１】
この燃費演算部８１による燃費演算処理は、図３９に示すように、先ずステップＳ２９１にてイグニッションスイッチがオン状態であることを確認した上で、ステップＳ２９２において、最後の水素充填時の充填直後のタンク圧力ＶＰＴＭＡＸ及びタンク温度ＶＴＴＭＡＸから得られるタンク残量を演算し、温度センサ２４及び圧力センサ２５からのセンサ信号を入力し、現時点のタンク圧力ＶＰＲＳとタンク温度ＶＴＭＰから現時点のタンク残量を演算する。そして、燃費演算部８１は、充填直後のタンク残量と現時点のタンク残量との差分から、使用水素量ＨＤＩＳＴを算出する。
【０１７２】
次に燃費演算部８１は、ステップＳ２９３において、最後の水素充填時から現時点までの走行距離を積算した結果を記憶メモリから呼び出し、当該走行距離積算結果ＶＤＩＳＴとして記憶する。
【０１７３】
次に燃費演算部８１は、ステップＳ２９４において、ステップＳ２９２で算出した使用水素量ＨＤＩＳＴ及びステップＳ２９３で記憶しておいた走行距離積算結果ＶＤＩＳＴから、水素充填時からの現時点における平均燃費ＦＥＣＤＩＳＴを演算する。このとき、燃費演算部８１は、
ＦＥＣＤＩＳＴ＝ＶＤＩＳＴ／ＨＤＩＳＴ
なる演算を行う。
【０１７４】
次に燃費演算部８１は、ステップＳ２９５において、現時点の車速ＶＳＰ及び燃料流量計４１からのセンサ信号に基づく水素流量値ＨＦＬＯを用いて、瞬間燃費値ＫＭＰＧを演算する。このとき、燃費演算部８１は、
ＫＭＰＧ［ｋｍ／ｇ］＝ＶＳＰ［ｋｍ／ｈ］／（ＨＦＬＯ［ｇ／ｓ］×３６００）
なる演算を行う。
【０１７５】
［第６実施形態の効果］
以上詳細に説明したように、本発明を適用した第６実施形態に係る燃料電池車両１によれば、上述した第１実施形態の処理を行うことにより求められた正確な水素タンク２２の水素残量を用いて、燃費を算出することができるので、精度が高い平均燃費を得ることができる。
【０１７６】
また、この燃料電池車両１によれば、第４実施形態で説明した水素流量学習処理を行って燃料流量計４１の水素流量を補正すると共に、第５実施形態で説明したように水素流量学習処理の機会を増やすことにより、更に精度が高い瞬間燃費値を得ることができる。
【０１７７】
なお、第６実施形態の説明では、水素タンク２２の圧力及び温度から得られるタンク残量を使用して使用水素量ＨＤＩＳＴを算出したが、第４及び第５実施形態における水素流量学習処理を行って水素流量を補正した上で、使用水素量ＨＤＩＳＴを算出しても良い。
【０１７８】
また、上述した燃費演算処理では、水素充填直後からの走行距離積算結果ＶＤＩＳＴに基づいて平均燃費ＦＥＣＤＩＳＴを求める場合について説明したが、これに限らず、運転者が走行距離積算結果ＶＤＩＳＴの表示を要求するメータのトリップボタンなどの操作を検出した後に燃費演算処理にて使用する燃料電池車両１の走行距離及びタンク残量の初期化タイミングとしても良い。これにより、燃料充填システムは、運転者が指定した任意の場所からの平均燃費を算出して、提示することもできる。
【０１７９】
なお、上述の実施の形態は本発明の一例である。このため、本発明は、上述の実施形態に限定されることはなく、この実施の形態以外であっても、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【０１８０】
【図１】本発明を適用した第１実施形態に係る燃料充填システムの構成を示すブロック図である。
【図２】本発明を適用した第１実施形態に係る燃料充填システムの全体の動作を示すフローチャートである。
【図３】本発明を適用した第１実施形態に係る燃料充填システムのタンク残量演算処理の処理手順を示すフローチャートである。
【図４】本発明を適用した第１実施形態に係る燃料充填システムにおいて、タンク温度及びタンク圧力から、水素タンク内の水素残量を演算する処理を説明するための図である。
【図５】本発明を適用した第１実施形態に係る燃料充填システムにおけるステーションデータ認識処理の処理手順を示すフローチャートである。
【図６】本発明を適用した第１実施形態に係る燃料充填システムにおける学習値反映判定処理の処理手順を示すフローチャートである。
【図７】本発明を適用した第１実施形態に係る燃料充填システムにおいて、水素充填前のタンク圧力に対する演算誤差から、学習処理を許可又は禁止することを説明するための図である。
【図８】本発明を適用した第１実施形態に係る燃料充填システムにおける残量学習処理の処理手順を示すフローチャートである。
【図９】本発明を適用した第１実施形態に係る燃料充填システムにおいて、水素ＳＴ充填量計測値と車両充填量演算値との誤差から、車両充填量演算値を補正する学習処理を説明するための図である。
【図１０】本発明を適用した第１実施形態に係る燃料充填システムの水素タンク２２の圧力と、水素タンク内の水素量との学習前、学習後の関係を示す図である。
【図１１】本発明を適用した第４実施形態に係る燃料充填システムの構成を示すブロック図である。
【図１２】本発明を適用した第４実施形態に係る燃料充填システムの処理概要を示すフローチャートである。
【図１３】本発明を適用した第４実施形態に係る燃料充填システムの水素流量学習処理の処理手順を示すフローチャートである。
【図１４】本発明を適用した第４実施形態における流量学習判定処理の処理手順を示すフローチャートである。
【図１５】本発明を適用した第４実施形態における車両暖機判定処理の処理手順を示すフローチャートである。
【図１６】本発明を適用した第４実施形態における環境条件判定処理の処理手順を示すフローチャートである。
【図１７】本発明を適用した第４実施形態における一定保持判定処理の処理手順を示すフローチャートである。
【図１８】本発明を適用した第４実施形態における学習前の水素流量値ＨＦＬＯと、学習後の水素流量値ＨＦＬＯを示す図である。
【図１９】本発明を適用した第４実施形態における学習領域判定処理の処理手順を示すフローチャートである。
【図２０】本発明を適用した第４実施形態における学習前センサ流量ＨＦＬＯＳＥＮと、学習領域番号ＲＧとの関係を示す図である。
【図２１】本発明を適用した第４実施形態における時間条件判定処理の処理手順を示すフローチャートである。
【図２２】本発明を適用した第４実施形態における学習前センサ流量ＨＦＬＯＳＥＮと継続必要時間ＴＭＦＯＫとの関係を示す図である。
【図２３】本発明を適用した第４実施形態における積算終了判定処理の処理手順を示すフローチャートである。
【図２４】本発明を適用した第４実施形態におけるタンク圧力とタンク内水素量との関係を示す図である。
【図２５】本発明を適用した第４実施形態における学習実行フラグ生成処理の処理手順を示すフローチャートである。
【図２６】本発明を適用した第４実施形態における水素流量学習処理の処理手順を示すフローチャートである。
【図２７】本発明を適用した第４実施形態におけるタンク残量変化演算処理の処理手順を示すフローチャートである。
【図２８】本発明を適用した第４実施形態における水素使用量比較処理の処理手順を示すフローチャートである。
【図２９】本発明を適用した第４実施形態における学習値反映処理の処理手順を示すフローチャートである。
【図３０】本発明を適用した第４実施形態における学習前センサ流量ＨＦＬＯＳＥＮと学習オフセット値との関係を示す図である。
【図３１】本発明を適用した第４実施形態における学習値演算処理の処理手順を示すフローチャートである。
【図３２】本発明を適用した第４実施形態における燃料流量計の検出値と実流量との関係を示す図である。
【図３３】本発明を適用した第４実施形態に係る燃料充填システムの動作を説明するタイミングチャートである。
【図３４】本発明を適用した第５実施形態に係る燃料充填システムの構成を示すブロック図である。
【図３５】本発明を適用した第５実施形態における水素流量学習処理の処理手順を示すフローチャートである。
【図３６】本発明を適用した第５実施形態における学習条件設定処理の処理手順を示すフローチャートである。
【図３７】本発明を適用した第６実施形態に係る燃料充填システムの構成を示すブロック図である。
【図３８】本発明を適用した第６実施形態における水素流量学習処理の処理手順を示すフローチャートである。
【図３９】本発明を適用した第６実施形態における燃費演算処理の処理手順を示すフローチャートである。
【符号の説明】
【０１８１】
１  燃料電池車両
２  水素ステーション
１１  充填量計
２１  燃料電池
２２  水素タンク
２３  コントローラ
２４  温度センサ
２５  圧力センサ
３１  ステーションデータ認識部
３２  学習値反映判定部
３３  残量演算部
３４  残量学習部
４１  水素流量計
５１  残量学習判定部
５２  水素流量学習部
６１  駆動モータ
６２  ２次電池
７１  学習条件設定部
８１  燃費演算部
【図１】
2005283127.tif 000003
【図２】
2005283127.tif 000004
【図３】
2005283127.tif 000005
【図４】
2005283127.tif 000006
【図５】
2005283127.tif 000007
【図６】
2005283127.tif 000008
【図７】
2005283127.tif 000009
【図８】
2005283127.tif 000010
【図９】
2005283127.tif 000011
【図１０】
2005283127.tif 000012
【図１１】
2005283127.tif 000013
【図１２】
2005283127.tif 000014
【図１３】
2005283127.tif 000015
【図１４】
2005283127.tif 000016
【図１５】
2005283127.tif 000017
【図１６】
2005283127.tif 000018
【図１７】
2005283127.tif 000019
【図１８】
2005283127.tif 000020
【図１９】
2005283127.tif 000021
【図２０】
2005283127.tif 000022
【図２１】
2005283127.tif 000023
【図２２】
2005283127.tif 000024
【図２３】
2005283127.tif 000025
【図２４】
2005283127.tif 000026
【図２５】
2005283127.tif 000027
【図２６】
2005283127.tif 000028
【図２７】
2005283127.tif 000029
【図２８】
2005283127.tif 000030
【図２９】
2005283127.tif 000031
【図３０】
2005283127.tif 000032
【図３１】
2005283127.tif 000033
【図３２】
2005283127.tif 000034
【図３３】
2005283127.tif 000035
【図３４】
2005283127.tif 000036
【図３５】
2005283127.tif 000037
【図３６】
2005283127.tif 000038
【図３７】
2005283127.tif 000039
【図３８】
2005283127.tif 000040
【図３９】
2005283127.tif 000041