(57)【要約】      （修正有）【課題】推定に要する時間を無用に長くすることなく、伝達関数のパラメーターの推定精度の低下を抑制することができる燃料電池の内部状態推定装置及び内部状態推定方法を提供する。【解決手段】燃料電池を流れる電流を検出する電流検出部(ステップＳ１)と、燃料電池の電圧を検出する電圧検出部(ステップＳ１)と、複数の周波数成分を持つ電流又は電圧が燃料電池に入力されたときの応答に基づいて、周波数ごとの燃料電池の伝達関数を、実部がゼロよりも大きいラプラス演算子を用いて算出する周波数毎伝達関数算出部(ステップＳ２３３)と、燃料電池の特性に基づいてモデル伝達関数を設定し、前記周波数毎伝達関数算出部で算出した周波数ごとの燃料電池の伝達関数と整合させることで、そのモデル伝達関数に含まれるパラメーターを推定する伝達関数パラメーター推定部(ステップＳ２４)と、を備える。【選択図】図７
2011003344.tif 000002
【特許請求の範囲】
【請求項１】
燃料電池を流れる電流を検出する電流検出部と、
燃料電池の電圧を検出する電圧検出部と、
複数の周波数成分を持つ電流又は電圧が燃料電池に入力されたときの応答に基づいて、周波数ごとの燃料電池の伝達関数を、実部がゼロよりも大きいラプラス演算子を用いて算出する周波数毎伝達関数算出部と、
燃料電池の特性に基づいてモデル伝達関数を設定し、前記周波数毎伝達関数算出部で算出した周波数ごとの燃料電池の伝達関数と整合させることで、そのモデル伝達関数に含まれるパラメーターを推定する伝達関数パラメーター推定部と、
を備える燃料電池の内部状態推定装置。
【請求項２】
前記周波数毎伝達関数算出部は、ラプラス演算子の実部の値が大きいほどラプラス積分の積分区間を短くする、
ことを特徴とする請求項１に記載の燃料電池の内部状態推定装置。
【請求項３】
前記伝達関数パラメーター推定部は、前記周波数ごとの燃料電池の伝達関数に応じて算出された燃料電池容量に基づいて前記モデル伝達関数に含まれるパラメーターを推定する、
ことを特徴とする請求項１又は請求項２に記載の燃料電池の内部状態推定装置。
【請求項４】
前記伝達関数パラメーター推定部は、横軸が周波数、縦軸が燃料電池容量のグラフに、燃料電池容量を周波数ごとにプロットした場合の近似直線の切片を、燃料電池の電気二重層容量として算出する、
ことを特徴とする請求項３に記載の燃料電池の内部状態推定装置。
【請求項５】
前記伝達関数パラメーター推定部は、横軸が周波数、縦軸が燃料電池容量のグラフに、燃料電池容量を周波数ごとにプロットした場合の近似直線の傾き、及び前記電気二重層容量に基づいて、燃料電池の反応抵抗を算出する、
ことを特徴とする請求項４に記載の燃料電池の内部状態推定装置。
【請求項６】
前記伝達関数パラメーター推定部は、横軸が周波数、縦軸が燃料電池容量のグラフに、燃料電池容量を周波数ごとにプロットした場合の２本の近似直線の交点、及び前記電気二重層容量に基づいて、燃料電池のアイオノマー抵抗を算出する、
ことを特徴とする請求項４又は請求項５に記載の燃料電池の内部状態推定装置。
【請求項７】
前記伝達関数パラメーター推定部は、燃料電池容量に基づいて算出した内部状態推定パラメーターが、参照値からの許容範囲を超えて乖離するときには、その内部状態推定パラメーターが誤りであると判定する、
ことを特徴とする請求項３から請求項６までのいずれか１項に記載の燃料電池の内部状態推定装置。
【請求項８】
燃料電池を流れる電流を検出する電流検出工程と、
燃料電池の電圧を検出する電圧検出工程と、
複数の周波数成分を持つ電流又は電圧が燃料電池に入力されたときの応答に基づいて、周波数ごとの燃料電池の伝達関数を、実部がゼロよりも大きいラプラス演算子を用いて算出する周波数毎伝達関数算出工程と、
燃料電池の特性に基づいてモデル伝達関数を設定し、前記周波数毎伝達関数算出工程で算出した周波数ごとの燃料電池の伝達関数と整合させることで、そのモデル伝達関数に含まれるパラメーターを推定する伝達関数パラメーター推定工程と、
を備える燃料電池の内部状態推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、燃料電池の内部状態を推定する装置及び方法に関する。
【背景技術】
【０００２】
近年、電気自動車の電源となる燃料電池が研究されている。燃料電池は、水素や空気の供給量及び加湿量、運転温度などによって発電性能が低下や劣化する可能性がある。発電性能が低下、劣化した場合は、燃料電池を正常な状態に戻すことや、燃料電池の状態に合わせた運転をすることが重要である。そのためには燃料電池内部の情報(反応抵抗、電解質膜の抵抗等)を分析し、性能低下・劣化した原因を知る必要がある。燃料電池の電流電圧を入力出力として考えると、インピーダンスに相当する燃料電池内部部分を伝達関数と捉えることができる。そこでこの伝達関数のパラメーターを解析することで、燃料電池の性能低下などを知ることができる。
【０００３】
伝達関数のパラメーターを推定する方法としては、あらかじめ未知パラメーターを含む伝達関数式を想定し、入力と出力とからフーリエ変換によって得られる伝達関数の周波数応答特性と一致するように、未知パラメーターの値を調整して推定する方法が公知である。たとえば特許文献１では、計測した入力(距離周波数)と出力(タイヤ前後力)からＦＦＴ(高速フーリエ変換)を用いて伝達関数の周波数応答特性を算出し、この入力から出力までの伝達関数が一次遅れであると想定して、最小二乗法等を用いてフィッティングすることで、伝達関数の未知パラメーターを割り出している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−３０６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
フーリエ変換で伝達関数を算出する場合は、入力信号を周期的に変化させ、その周期に合わせて積分区間を決めて伝達関数を算出したり、フーリエ積分の積分区間を長くして積分区間の端の影響を小さくして伝達関数を算出する。
【０００６】
しかしながら、いずれの方法であっても伝達関数を算出するために必要な時間が長くなり、その伝達関数のパラメーターを推定するのに要する時間も長くなるという問題がある。
【０００７】
本発明は、このような従来の問題点に着目してなされたものであり、推定に要する時間を無用に長くすることなく、伝達関数のパラメーターの推定精度の低下を抑制することができる燃料電池の内部状態推定装置及び内部状態推定方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は以下のような解決手段によって前記課題を解決する。
【０００９】
本発明は、検出した燃料電池の電流及び電圧に基づいて燃料電池の内部状態推定する。そして複数の周波数成分を持つ電流又は電圧が燃料電池に入力されたときの応答に基づいて、周波数ごとの燃料電池の伝達関数を、実部がゼロよりも大きいラプラス演算子を用いて算出する周波数毎伝達関数算出部と、燃料電池の特性に基づいてモデル伝達関数を設定し、前記周波数毎伝達関数算出部で算出した周波数ごとの燃料電池の伝達関数と整合させることで、そのモデル伝達関数に含まれるパラメーターを推定する伝達関数パラメーター推定部と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、推定に要する時間を長くすることなく、伝達関数のパラメーターの推定精度の低下を抑制することができ、燃料電池を容易に分析することができるのである。
【図面の簡単な説明】
【００１１】
【図１】燃料電池スタックの単セルの集中定数系の等価回路を示す図である。
【図２】１／ω2(横軸)が変化したときの−１／ωＧim(縦軸)の変化を示す図である。
【図３】図２のように変化することに対する発明者の考察について説明する図である。
【図４】燃料電池スタックの単セルの分布定数系の等価回路を示す図である。
【図５】本発明による燃料電池内部状態推定装置を適用可能な燃料電池システムの一例を示すシステム構成図である。
【図６】本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御ブロック図である。
【図７】本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御フローチャートである。
【図８】暫定的な目標発電電流Ｉr_stk_tmを算出するためのテーブルデーターの一例を示す図である。
【図９】ステップＳ５において目標値を算出するためのテーブルデーターの一例を示す図である。
【図１０】酸素利用率を算出するためのテーブルデーターの一例を示す図である。
【図１１】ステップＳ６において駆動信号を求めるためのテーブルデーターの一例を示す図である。
【図１２】内部状態推定パラメーターを算出するサブルーチンのフローチャートである。
【図１３】ステップＳ２１の操作を説明する図である。
【図１４】伝達関数Ｇの実部Ｇreと虚部Ｇimに基づいて、電気二重層容量参照値Ｃdl_ref、反応抵抗参照値Ｒact_ref、アイオノマー抵抗参照値Ｒion_refを算出するためのナイキスト線図の一例を示す図である。
【図１５】燃料電池容量を算出するサブルーチンのフローチャートである。
【図１６】ステップＳ２３１の操作を説明する図である。
【図１７】ステップＳ２３４の操作を説明する図である。
【図１８】配列に格納された周波数及び燃料電池容量の相関を示す図である。
【図１９】燃料電池容量に基づいて内部状態パラメーターを算出するサブルーチンのフローチャートである。
【図２０】燃料電池容量に基づいて内部状態パラメーター(電気二重層容量Ｃdl、反応抵抗Ｒact)を算出する手法を説明する図である。
【図２１】燃料電池容量に基づいてアイオノマー抵抗Ｒionを算出する手法を説明する図である。
【図２２】時間ｔが経過したときのe-αtの変化を係数αごとに示した図である。
【発明を実施するための形態】
【００１２】
以下では図面等を参照して本発明を実施するための最良の形態について説明する。
（基本コンセプト）
最初に本発明の理解を容易にするために基本コンセプトについて説明する。
【００１３】
はじめに、フーリエ変換で伝達関数を算出する従来手法について説明しておく。
【００１４】
たとえば対象物の特性上、伝達関数が一次遅れ型であることが分かっていれば、未知パラメーターτを使用して、伝達関数を次式(1)のようにおくことができる。
【００１５】
【数１】
2011003344.tif 000003
【００１６】
入力ｕ(t)と出力ｙ(t)に基づいて、フーリエ変換によって対象物の伝達関数を算出すると次式(2)になる。
【００１７】
【数２】
2011003344.tif 000004
【００１８】
ｅ-jωtは、オイラーの公式で正弦波と余弦波とに分けて考えると、持続振動項であることが分かる。したがって、ｙ(t)及びｕ(t)が有限の時間でゼロにならなければ、上式はどこまで時間を進めても変動し続け、積分結果は確定せず、算出に要する時間が長くなり、その伝達関数のパラメーターを推定するのに要する時間も長くなってしまう。
【００１９】
そこで、積分区間を適当に区切って、区切った区間の外は区切った積分区間と同じ信号が周期的に発生していると仮定し、有限時間の積分区間で計算することを考える。すると伝達関数は次式(3)で算出される。
【００２０】
【数３】
2011003344.tif 000005
【００２１】
ただし、このままでは、積分区間の端が不連続となり、誤差が大きくなってしまう。
【００２２】
そこで次式(4)のように、ｙ(t)及びｕ(t)に積分区間の端で値がゼロに近づくような窓関数Ｗ(t)を乗算すれば、積分区間の端の影響を抑制できる。すなわち入力ｕ(t)と出力ｙ(t)と窓関数Ｗ(t)とを用いて、次式(4)のように有限の積分区間［０，Ｔ］でフーリエ変換し、複数の周波数について対象の伝達関数を算出し、伝達関数の周波数特性を得る。
【００２３】
【数４】
2011003344.tif 000006
【００２４】
式(4)のフーリエ変換は、ｓ＝ｊωとした場合の計算なので、算出される伝達関数はｓ＝ｊωの周波数伝達関数となる。しかしながらこのようにしても、理想的なフーリエ変換には存在しない窓関数Ｗ(t)を導入したことによって、算出された周波数伝達関数は本来の周波数伝達関数に対して誤差を含むこととなる。そして式(4)で算出した伝達関数と合うように、式(1)のｓをｊωとし、τをフィッティングパラメーターとして、フィッティングし、フィッティングできなければ、最初に想定した式(1)が誤りであることが分かり、フィッティングできれば、τの推定値を得ることができる。
【００２５】
しかしながら、式(4)を計算する過程で窓関数Ｗ(t)を導入したことによる誤差が生じているので、誤差を含む伝達関数の周波数応答特性から伝達関数のパラメーターを推定しても、推定されたパラメーターの精度が低下してしまう。
【００２６】
これに対して、本実施形態では、窓関数Ｗ(t)を導入するのではなく、次式(5)のようにｅ-αtを乗算するようにした。e-αtは図２２に示す通り、時間経過と共にゼロに収束するので、窓関数と同様に積分区間の終点ｔ＝Ｔで不連続となる影響を抑制できる。
【００２７】
【数５】
2011003344.tif 000007
【００２８】
なお積分区間の始点ｔ＝０では、e-αt＝１なので、積分区間の始点ｔ＝０で不連続になることによる影響がある。
【００２９】
そこで、積分開始時点の入力ｕ(t)及び出力ｙ(t)は時間経過で変動しない状態(du/dt＝０、dy/dt＝０)で、積分区間内のｕ(t)はｕ(0)からの差を用い、ｙ(t)は ｙ(0) からの差を用いることで、精度よく計算できる。
【００３０】
このようにした場合、式(5)のラプラス変換は、ｓ＝α＋ｊωとした場合の計算なので、算出される伝達関数はｓ＝α＋ｊωの伝達関数となる。ただし、理想的なフーリエ変換には存在しないαを導入したことによって、算出された伝達関数Ｇ(α+jω)は、本来の周波数伝達関数Ｇ(jω)とは異なるものとなっている。そして式(5)で算出した伝達関数と合うように、式(1)のｓをα＋ｊωとし、τをフィッティングパラメーターとして、フィッティングし、フィッティングできなければ、最初に想定した式(1)が誤りであることが分かり、フィッティングできれば、τの推定値を得ることができる。そして式(1)のｓをα＋ｊωとしてフィッティングしているので、τの推定値にαを導入したことによる誤差は生じないのである。
【００３１】
本願は、以上のような技術思想に基づく発明である。そして対象物として特に燃料電池を考える。
【００３２】
具体的には、一般的な燃料電池スタックの単セルについて図１のような等価回路を考える。
【００３３】
発電電流Ｉを入力、発電電流Ｉに応じた電圧降下Ｖを出力とする。すると等価回路のインピーダンスに相当する部分が伝達関数Ｇになって次式(6)の関係が得られる。
【００３４】
【数６】
2011003344.tif 000008
【００３５】
この式(6)を変形すると、一般的な燃料電池のモデルとなる伝達関数(モデル伝達関数)は以下になる。
【００３６】
【数７】
2011003344.tif 000009
【００３７】
このモデル伝達関数のパラメーターのうち、電解質膜抵抗Ｒmemは既知でなくてもよく、以下の手順に示すように電解質膜抵抗Ｒmemに因らずに反応触媒層の反応抵抗Ｒact及び電気二重層容量Ｃdlを推定して伝達関数を決定できることとなる。
【００３８】
そこで、ｓ＝α＋ｊωを代入すると以下になる。
【００３９】
【数８】
2011003344.tif 000010
【００４０】
そして上式(8)の虚部Ｇimを抜き出すと次式(9)が得られる。
【００４１】
【数９】
2011003344.tif 000011
【００４２】
逆数をとると次式(10)が得られる。
【００４３】
【数１０】
2011003344.tif 000012
【００４４】
両辺にマイナスを乗算し、ωで除算すると次式(11)が得られる。
【００４５】
【数１１】
2011003344.tif 000013
【００４６】
ゆえに次式(12)が得られる。
【００４７】
【数１２】
2011003344.tif 000014
【００４８】
したがって、横軸に１／ω2、縦軸に−１／ωＧimをとれば、切片がＣdl、傾きｍ＝(１＋αＣdlＲact)2／ＣdlＲact2の直線が描かれることとなる。これについて発明者らが実験したところ、図２の実験データーのようになり、ωが小の低周波領域であれば、確かに上述の関係が得られるものの、ωが大の高周波領域では合致しないことが知見された。これに関する発明者の考察を図３を参照して説明する。
【００４９】
すなわち触媒層での反応を厳密に考えるには、触媒層の厚さ方向におけるPt(反応サイト)の分布を考慮しなければならない。電解質膜から遠いPt上で反応する場合は、プロトンＨ+は、アイオノマー中を長い距離移動しなければならないが、電解質膜から近いPt上に集中しすぎてしまうと、やはり損失が大きくなるので、自然に、厚さ方向の分布を持って、反応が進むこととなるからである。
【００５０】
このような厚さ方向の分布を考慮するために、図４のような分布定数系の等価回路を考える。この等価回路によれば、高周波数の入力であるほど電気二重層容量のインピーダンス1/(ωCdl)が小さくなって、反応サイトのインピーダンスも低下する。したがって、電解質膜に近い反応サイトには、高周波数の入力であるほど電流が流れやすくなることが分かる。また電解質膜から遠い反応サイトには、アイオノマー抵抗を通らなければ電流が流れないので、高周波数の入力であるほど電流が流れにくくなることが分かる。
【００５１】
したがって、図２のグラフに示す直線から実測値が乖離し始める周波数よりも高周波数の領域では、電解質膜から遠い反応サイトの電気二重層容量が燃料電池の容量にはカウントされなくなって、燃料電池の容量が式(6)の直線に合致しなくなっているということが発明者らの知見である。
【００５２】
この特性は、式(7)の直線から実測値が乖離し始める周波数で、電気二重層容量のインピーダンスとアイオノマー抵抗とが同程度となったことによって現れると考えられる。
【００５３】
したがって、この周波数での電気二重層容量のインピーダンスを算出することで、おおよそのアイオノマー抵抗を推定することもできる、と本件発明者らは知見した。
【００５４】
したがって、このような技術思想を利用すれば、伝達関数の虚部の情報のみから算出できる燃料電池の容量に基づいて、燃料電池の状態(伝達関数のパラメーター)を容易に推定することができるのである。
【００５５】
続いて以下では、このような技術思想を用いる燃料電池内部状態推定装置の具体的な構成について説明する。
【００５６】
図５は、本発明による燃料電池内部状態推定装置を適用可能な燃料電池システムの一例を示すシステム構成図である。
【００５７】
燃料電池システム１は、燃料電池スタック１０と、ＤＣ／ＤＣコンバーター４０と、二次電池５０と、負荷６０と、コントローラー７０と、を含む。
【００５８】
燃料電池スタック１０は、アノードライン２０から供給される水素と、カソードライン３０から供給される空気と、を消費して発電する。燃料電池スタック１０の電流値は電流センサー１１によって検出され、電流信号がコントローラー７０に送られる。燃料電池スタック１０の電圧値は電圧センサー１２によって検出され、電圧信号がコントローラー７０に送られる。燃料電池スタック１０のアノードライン２０には、水素ボンベ２１と、水素調圧弁２２と、エゼクター２３と、水素循環ポンプ２４と、燃料電池入口水素圧力センサー２５と、パージ弁２６と、が設けられる。燃料電池スタック１０のカソードライン３０には、コンプレッサー３１と、空気流量センサー３２と、燃料電池入口空気圧力センサー３３と、空気調圧弁３４と、が設けられる。
【００５９】
水素ボンベ２１は、水素を貯蔵しておく。
【００６０】
水素調圧弁２２は、弁の開度を調節することで水素ボンベ２１から燃料電池スタック１０に供給される水素の圧力を制御する。
【００６１】
エゼクター２３は、燃料電池スタック１０から排出された余った水素を再度燃料電池スタック１０に供給する。
【００６２】
水素循環ポンプ２４は、燃料電池スタック１０への水素の供給量を調節する。
【００６３】
燃料電池入口水素圧力センサー２５は、燃料電池スタック１０に空気される水素の圧力を検出する。検出された水素圧力信号は、コントローラー７０に送られる。
【００６４】
パージ弁２６は、弁を開くことで電解質膜を透過して水素側に混入する窒素の濃度を下げる。
【００６５】
コンプレッサー３１は、燃料電池スタック１０に空気を供給する。
【００６６】
空気流量センサー３２は、燃料電池スタック１０に供給される空気の流量を検出する。検出された空気流量信号は、コントローラー７０に送られる。
【００６７】
燃料電池入口空気圧力センサー３３は、燃料電池スタック１０に供給される空気の圧力を検出する。検出された空気圧力信号は、コントローラー７０に送られる。
【００６８】
空気調圧弁３４は、弁開度を調節することで燃料電池スタック１０に供給される空気の圧力を制御する。
【００６９】
ＤＣ／ＤＣコンバーター４０は、燃料電池スタック１０の電圧を調整し、二次電池５０及び負荷６０に出力する。
【００７０】
コントローラー７０は、電流センサー１１の出力信号、電圧センサー１２の出力信号、燃料電池入口水素圧力センサー２５の出力信号、空気流量センサー３２の出力信号、燃料電池入口空気圧力センサー３３の出力信号、を入力する。そしてコントローラー７０は、燃料電池スタック１０に設けられた電流センサー１１及び電圧センサー１２の信号に基づいて燃料電池の内部状態を推定する。そしてコントローラー７０は、推定した燃料電池内部状態に基づいて、水素調圧弁２２の開度に対してあらかじめ決められているデューティー比となるように、水素調圧弁２２に対して駆動信号(パルス幅変調(Pulse Width Modulation；ＰＷＭ)信号)を出力する。またコントローラー７０は、パージ弁２６の開閉を制御するように駆動信号(ＯＮ／ＯＦＦ信号)を出力する。またコントローラー７０は、推定した燃料電池内部状態に基づいて、空気調圧弁３４の開度に対してあらかじめ決められているデューティー比となるように、空気調圧弁３４に対して駆動信号(ＰＷＭ信号)を出力する。またコントローラー７０は、推定した燃料電池内部状態に基づいて、コンプレッサー回転数に対してあらかじめ決められているデューティー比となるように、コンプレッサー３１に駆動信号(ＰＷＭ信号)を出力する。またコントローラー７０は、推定した燃料電池内部状態に基づいて、水素循環ポンプ回転数に対してあらかじめ決められているデューティー比となるように、水素循環ポンプ２４に対して、駆動信号(ＰＷＭ信号)を出力する。またコントローラー７０は、燃料電池スタック１０から取り出す電流に対してあらかじめ決められているデューティー比となるように、ＤＣ／ＤＣコンバーター４０に対して駆動信号(ＰＷＭ信号)を出力する。コントローラー７０は、Ｉ／Ｏインタフェース、プログラムＲＯＭ、ワークＲＡＭ及びＣＰＵを備えたマイクロプロセッサで構成される。なお、電流センサー１１、電圧センサー１２、ＤＣ／ＤＣコンバーター４０、コントローラー７０及びそれらを繋ぐ信号線／通信線は、後述する燃料電池内部状態推定パラメーターを推定するために必要な周波数帯ｆlow［Ｈｚ］〜ｆhigh［Ｈｚ］で動作可能である。また、電流センサー１１及び電圧センサー１２とコントローラー７０とのＩ／Ｏインタフェースについては、エイリアシング発生を防止するためのアンチエイリアシングフィルタを備える。
【００７１】
図６は、本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御ブロック図である。また図７は、制御フローチャートである。両図の対応が分かりやすくなるように、同じ機能を果たす部分には同様の符号を付する。
【００７２】
はじめに図６の制御ブロック図を参照して説明する。
【００７３】
燃料電池制御装置７は、電流検出部Ｓ１−１と、電圧検出部Ｓ１−２と、水素圧力検出部Ｓ１−３と、空気圧力検出部Ｓ１−４と、内部状態推定パラメーター算出部Ｓ２と、燃料電池劣化状態推定部Ｓ３と、目標発電電流算出部Ｓ４と、目標水素流量算出部Ｓ５−１と、目標空気流量算出部Ｓ５−２と、目標水素圧力算出部Ｓ５−３と、目標空気圧力算出部Ｓ５−４と、発電電流制御部Ｓ６−０と、水素循環ポンプ回転数制御部Ｓ６−１と、コンプレッサー回転数制御部Ｓ６−２と、水素調圧弁開度制御部Ｓ６−３と、空気調圧弁開度制御部Ｓ６−４と、を含む。
【００７４】
電流検出部Ｓ１−１は、電流センサー１１で検出している燃料電池スタック１０から取り出している電流を読み取る。
【００７５】
電圧検出部Ｓ１−２は、電圧センサー１２で検出している燃料電池スタック１０の電圧を読み取る。
【００７６】
水素圧力検出部Ｓ１−３は、燃料電池入口水素圧力センサー２５で水素の圧力を検出する。
【００７７】
空気圧力検出部Ｓ１−４は、燃料電池入口空気圧力センサー３３で空気の圧力を検出する。
【００７８】
内部状態推定パラメーター算出部Ｓ２は、電流検出部Ｓ１−１で検出した燃料電池スタック１０から取り出している電流と、電圧検出部Ｓ１−２で検出した燃料電池スタック１０の電圧に基づいて、燃料電池スタック１０の内部状態を推定するパラメーターを算出する。
【００７９】
燃料電池劣化状態推定部Ｓ３は、推定したパラメーターに基づいて燃料電池の劣化状態を推定する。
【００８０】
目標発電電流算出部Ｓ４は、燃料電池スタック１０に要求される電力と、内部状態推定パラメーター算出部Ｓ２で算出されたパラメーターと、に基づいて、燃料電池スタック１０から取り出す発電電流を算出する。
【００８１】
目標水素流量算出部Ｓ５−１は、目標発電電流算出部Ｓ４で算出した目標発電電流Ｉr_stkに基づいて燃料電池スタック１０に供給する水素の目標流量Ｑr_h2を算出する。
【００８２】
目標空気流量算出部Ｓ５−２は、内部状態推定パラメーター算出部Ｓ２で算出したパラメーターに基づいて酸素利用率ＵO2［％］を算出し、その酸素利用率ＵO2［％］及び目標発電電流算出部Ｓ４で算出した目標発電電流Ｉr_stkに基づいて燃料電池スタック１０に供給する空気の目標流量Ｑr_airを算出する。
【００８３】
目標水素圧力算出部Ｓ５−３は、目標発電電流算出部Ｓ４で算出した目標発電電流Ｉr_stkに基づいて燃料電池スタック１０に供給する水素の目標圧力Ｐr_h2を算出する。
【００８４】
目標空気圧力算出部Ｓ５−４は、目標発電電流算出部Ｓ４で算出した目標発電電流Ｉr_stkに基づいて燃料電池スタック１０に供給する空気の目標圧力Ｐr_airを算出する。
【００８５】
発電電流制御部Ｓ６−０は、目標発電電流算出部Ｓ４で算出した目標発電電流Ｉr_stkに基づいてＤＣ／ＤＣコンバータ１４に駆動信号を出力する。
【００８６】
水素循環ポンプ回転数制御部Ｓ６−１は、目標水素流量算出部Ｓ５−１で算出した目標水素流量に基づいて水素循環ポンプ１１に駆動信号を出力する。
【００８７】
コンプレッサー回転数制御部Ｓ６−２は、目標空気流量算出部Ｓ５−２で算出した目標空気流量に基づいてコンプレッサー１０に駆動信号を出力する。
【００８８】
水素調圧弁開度制御部Ｓ６−３は、目標水素圧力算出部Ｓ５−３で算出した目標水素圧力と、水素圧力検出部Ｓ１−３で検出した水素圧力と、に基づいて、水素調圧弁２２に駆動信号を出力する。
【００８９】
空気調圧弁開度制御部Ｓ６−４は、目標空気圧力算出部Ｓ５−４で算出した目標空気圧力と、空気圧力検出部Ｓ１−４で検出した空気圧力と、に基づいて、空気調圧弁３４に駆動信号を出力する。
【００９０】
次に図７の制御フローチャートを参照して説明する。
【００９１】
ステップＳ１においてコントローラー７０は、燃料電池スタック１０に流れる電流Ｉstk［Ａ］を電流センサー１１で検出する。またコントローラー７０は、燃料電池スタック１０の電圧Ｖstk［Ｖ］を電圧センサー１２で検出する。さらにコントローラー７０は、燃料電池入口の水素圧力Ｐh2［kPa］を燃料電池入口水素圧力センサー２５で検出する。さらにまたコントローラー７０は、燃料電池入口の空気圧力Ｐair［kPa］を燃料電池入口空気圧力センサー３３で検出する。なお、燃料電池スタック１０の電流Ｉstk［Ａ］および電圧Ｖstk［Ｖ］については、後述する燃料電池内部状態推定パラメーター推定処理で燃料電池内部状態推定パラメーターを推定するために使用する周波数帯ｆlow［Ｈｚ］〜ｆhigh［Ｈｚ］の最高周波数ｆhigh［Ｈｚ］がナイキスト周波数未満となるような検出周期で検出する。
【００９２】
ステップＳ２においてコントローラー７０は、燃料電池スタック１０の内部状態を推定するための伝達関数パラメーター(電気二重層容量Ｃdl［Ｆ］、反応抵抗Ｒact［Ω］)及びアイオノマー抵抗Ｒion［Ω］を算出する。具体的な算出方法は後述する。
【００９３】
ステップＳ３においてコントローラー７０は、伝達関数パラメーター(電気二重層容量Ｃdl［Ｆ］、反応抵抗Ｒact［Ω］)及びアイオノマー抵抗Ｒion［Ω］の少なくともいずれかひとつの初期状態からの劣化割合を記録しておき、燃料電池スタック１０の性能低下による交換を判断するための情報として利用する。反応抵抗Ｒact［Ω］及びアイオノマ抵抗Ｒion［Ω］は劣化すると、抵抗値が大きくなるので、どの程度大きくなったかを初期状態の抵抗値との比率で記録しておく。電気二重層容量Ｃdl［Ｆ］は劣化すると、容量値が小さくなるため、どの程度小さくなったかを初期状態の容量値との比率で記録しておく。本実施形態では、各パラメーターの劣化割合を記録することとしているが、ユーザーが理解しやすいように情報を加工するなどして、ユーザーに交換時期を通知するようにしてもよい。
【００９４】
ステップＳ４においてコントローラー７０は、燃料電池に要求される電力Ｐr［ｋＷ］に基づいて、たとえば図８のようなテーブルデーターを参照することによって暫定的な目標発電電流Ｉr_stk_tmp［Ａ］を算出する。ここで、テーブルデーターは実験を通じて燃料電池スタック１０の電流と電圧との関係を測定して設定する。そして、ステップＳ２で求めた燃料電池の容量ＣFCが大きく低下し始める周波数ｆcurの逆数を時定数τcur［sec］とし、その時定数τcurで、暫定的な目標発電電流Ｉr_stk_tmpに一次遅れフィルタ処理を実施する。さらに後述する伝達関数算出処理に使用する入力信号としてＭ系列信号を加えて、目標発電電流Ｉr_stk［Ａ］を算出する。入力信号は、燃料電池の内部状態を推定する伝達関数パラメーター(電気二重層容量Ｃdl［Ｆ］、反応抵抗Ｒact［Ω］)及びアイオノマー抵抗Ｒion［Ω］を推定するために必要な周波数帯ｆlow［Ｈｚ］〜ｆhigh［Ｈｚ］と振幅Ａamp［Ａ］を実験で調べておき、推定に必要な周波数帯ｆlow［Ｈｚ］〜ｆhigh［Ｈｚ］の周波数成分が含まれる振幅Ａamp［Ａ］以上の信号を入力信号とする。
【００９５】
ステップＳ５においてコントローラー７０は、目標発電電流Ｉr_stkに基づいて、たとえば図９(Ａ)のようなテーブルデーターを参照して、目標水素流量Ｑr_h2［L/min］を算出する。ここで、テーブルデーターは目標発電電流Ｉr_stkが大きいほど、目標水素流量Ｑr_h2が多くなる傾向である。値は、たとえば机上にて目標発電電流Ｉr_stkで消費される水素量を見積もり、実験で各単位セルへの配流ばらつきを調査し、配流ばらつきがあっても電流による消費で水素不足にならないように設定する。
【００９６】
またコントローラー７０は、たとえば図１０(Ａ)に示すテーブルに、アイオノマ抵抗Ｒionを適用して触媒層の相対湿度acat_ion［％］を推定する。また図１０(Ｂ)に示すテーブルに、電気二重層容量Ｃdlを適用して触媒層の相対湿度ａcat_dl［％］を推定する。そして両者の平均値ａcat［％］(=(ａcat_ion［％］+ａcat_dl［％］)/2)を算出し、このａcat［％］に基づいて、たとえば図１０(Ｃ)のようなテーブルデーターを参照して酸素利用率ＵO2［％］を算出する。ここで酸素利用率ＵO2［％］とは、供給する空気中の酸素に対して発電電流で消費する酸素の割合を示しており、テーブルデーターは、実験で燃料電池スタック１０の各単位セルへの配流ばらつきや、空気流量及び触媒層の湿潤状態の関係を調査し、配流ばらつきがあっても電流による消費で酸素不足にならないような値で、かつ、触媒層の相対湿度ａcat［％］が大きいほど目標空気流量Ｑr_air［L/min］が多くなるようにして触媒層の湿潤常態が調整されるような値を設定する。
【００９７】
そしてコントローラー７０は、目標発電電流Ｉr_stkに基づいて、たとえば図９(Ｂ)のようなテーブルデーターを参照して発電に必要な空気流量Ｑn_air［L/min］を算出し、酸素利用率ＵO2［％］/100で除算し、燃料電池スタック１０の各単位セルへ配流可能な最低流量Ｑair_base［L/min］を加えて目標空気流量Ｑr_air［L/min］(=Ｑn_air［L/min］/ ＵO2［％］/100+Ｑair_base［L/min］)を算出する。ここでテーブルデーターは目標発電電流Ｉr_stk［Ａ］が大きいほど、発電に必要な目標空気流量Ｑn_air［L/min］が多くなる傾向である。値は机上にて電流で消費される酸素量と大気中の酸素成分比率から必要な空気流量とを見積もって設定する。
【００９８】
またコントローラー７０は、目標発電電流Ｉr_stkに基づいて、たとえば図９(Ｃ)のようなテーブルデーターを参照して目標水素圧力Ｐr_h2［kPa］を算出する。ここで、テーブルデーターは目標発電電流Ｉr_stk［Ａ］が大きいほど、目標水素圧力Ｐr_h2［kPa］が高くなる傾向である。値はテーブルデーターは机上および実験結果から圧力上昇による燃料電池の発電効率向上による効果と圧力を上昇させることで増えるコンプレッサー３１などの補機類の消費電力増加による損失を考慮して最も効率よく発電できるように設定する。
【００９９】
またコントローラー７０は、目標発電電流Ｉr_stk［Ａ］に基づいて、たとえば図９(Ｄ)のようなテーブルデーターを参照して目標空気圧力Ｐr_air［kPa］を算出する。ここで本実施形態では図９(Ｄ)のテーブルデーターは目標水素圧力Ｐr_h2［kPa］を算出するときに使用した図９(Ｃ)のテーブルデーターと同じである。
【０１００】
ステップＳ６においてコントローラー７０は、目標発電電流Ｉr_stk［Ａ］となるようなデューティー比を計算し、そのデューティー比に基づいて、ＤＣ／ＤＣコンバータ１４を駆動させるための駆動信号を出力する。
【０１０１】
またコントローラー７０は、目標水素流量Ｑr_h2［L/min］に基づいて、たとえば図１１(Ａ)のようなテーブルを用いることで水素循環ポンプ目標回転数Ｒr_hrp［rpm］を算出する。ここで、テーブルデーターは目標水素流量Ｑr_h2［L/min］が多いほど水素循環ポンプ目標回転数Ｒr_hrp［rpm］が大きくなる。値は、たとえば実機を用いた実験によって水素流量と水素循環ポンプ回転数との関係を取得して定めればよい。そしてコントローラー７０は、水素循環ポンプ目標回転数Ｒr_hrp［rpm］となるようなデューティー比を計算し、そのデューティー比に基づいて、水素循環ポンプ11を駆動させるための駆動信号を出力する。
【０１０２】
さらにコントローラー７０は、目標空気流量Ｑr_air［L/min］に基づいて、たとえば図１１(Ｂ)のようなテーブルを用いることでコンプレッサー目標回転数Ｒr_cmp［rpm］を算出する。ここで、テーブルデーターは目標空気流量Ｑr_air［L/min］が多いほどコンプレッサー目標回転数Ｒr_cmp ［rpm］が大きくなる。値は、たとえば実機を用いた実験によって空気流量とコンプレッサー回転数との関係を取得して定めればよい。そしてコントローラー７０は、コンプレッサー目標回転数Ｒr_cmp［rpm］となるようなデューティー比を計算し、そのデューティー比に基づいて、コンプレッサー３１を駆動させるための駆動信号を出力する。
【０１０３】
さらにまたコントローラー７０は、目標空気圧力Ｐr_air［kPa］と燃料電池入口の空気圧力Ｐair［kPa］に基づいて、燃料電池入口の空気圧力Ｐair［kPa］が目標空気圧力Ｐr_air［kPa］となるように、ＰＩコントローラーを用いてフィードバック制御し、ＰＩコントローラーの出力を空気調圧弁目標開度Ｄr_acv［deg］として算出する。そしてコントローラー７０は、空気調圧弁目標開度Ｄr_acv［deg］となるようなデューティー比を計算し、そのデューティー比に基づいて、空気調圧弁３４を駆動させるための駆動信号を出力する。
【０１０４】
またコントローラー７０は、目標水素圧力Ｐr_h2［kPa］と燃料電池入口の水素圧力Ｐh2［kPa］とに基づいて、燃料電池入口の水素圧力Ｐh2［kPa］が目標水素圧力Ｐr_h2［kPa］となるように、ＰＩコントローラーを用いてフィードバック制御し、ＰＩコントローラーの出力を水素調圧弁目標開度Ｄr_hcv［deg］として算出する。そしてコントローラー７０は、水素調圧弁目標開度Ｄr_hcv［deg］となるようなデューティー比を計算し、そのデューティー比に基づいて、水素調圧弁２２を駆動させるための駆動信号を出力する。
【０１０５】
図１２は、内部状態推定パラメーターを算出するサブルーチンのフローチャートである。
【０１０６】
ステップＳ２１においてコントローラー７０は、燃料電池の電流値及び電圧値の過去の値を配列Ｉstk_buf(i)(i=1〜N：N個の要素を持つ配列)に順次格納する。具体的には以下である。すなわち、図１３(Ａ−１)に示した初期状態では、Ｉstk_buf(1)にＩ(1)が格納されている。以下順次Ｉstk_buf(i)にＩ(i)が格納されている。
【０１０７】
そして新たな電流Ｉstkが加わったら、図１３(Ａ−２)に示すように、Ｉstk_buf(1)の値を捨ててＩstk_buf(2)の値(すなわちＩ(2))を上書きする。次にＩstk_buf(2)にＩstk_buf(3)の値(すなわちＩ(3))を上書きする。以下順次Ｉstk_buf(i)にＩstk_buf(i+1)の値を上書きする。そしてＩstk_buf(N)にはＩstkを上書きする。そしてＩstk_buf(1)の値をΔＩとする。
【０１０８】
そして図１３(Ａ−３)に示すように、配列Ｉstk_buf(i)の各要素からΔＩを差し引いた値をそれぞれ配列ΔＩstk_buf(i)に格納する。
【０１０９】
同様に、図１３(Ｂ−１)に示した初期状態では、Ｖstk_buf(1)にＶ(1)が格納されている。以下順次Ｖstk_buf(i)にＶ(i)が格納されている。そして新たな電圧Ｖstkが加わったら、図１３(Ｂ−２)に示すように、Ｖstk_buf(1)の値を捨ててＩstk_buf(2)の値(すなわちＶ(2))を上書きする。次にＶstk_buf(2)にＶstk_buf(3)の値(すなわちＶ(3))を上書きする。以下順次Ｖstk_buf(i)にＶstk_buf(i+1)の値を上書きする。そしてＶstk_buf(N)にはＶstkを上書きする。そしてＶstk_buf(1)の値をΔＶとする。そして図１３(Ｂ−３)に示すように、配列Ｖstk_buf(i)の各要素からΔＶを差し引いた値をそれぞれ配列ΔＶstk_buf(i)に格納する。
【０１１０】
なお配列要素数Ｎは、伝達関数を算出するために必要な燃料電池スタック１０の電流及び電圧の時系列データーの長さを実験で調べて設定する。たとえば、様々な運転条件下で燃料電池を運転し、アイオノマー抵抗Ｒion［Ω］を推定する場合よりも比較的低周波数のデーターを必要とする反応抵抗Ｒact［Ω］又は電気二重層容量Ｃdl［Ｆ］の推定に必要な時系列データーの長さを調べて設定すればよい。
【０１１１】
ステップＳ２２においてコントローラー７０は、電流値及び電圧値の変動が許容値よりも小であるか否かを判定する。具体的には、まず電流の履歴を格納した配列ΔＩstk_buf(i)(i=1〜N)の最も古い値ΔＩstk_buf(1)と2番目に古い値ΔＩstk_buf(2)を用いて次式(13)によって電流の微分値dI/dtを求める。
【０１１２】
【数１３】
2011003344.tif 000015
【０１１３】
同様に、電圧降下の履歴を格納した配列ΔＶstk_buf(i)(i=1〜N)の最も古い値ΔＶstk_buf(1)と2番目に古い値ΔＶstk_buf(2)を用いて、次式(14)によって電圧の微分値dV/dtを求める。
【０１１４】
【数１４】
2011003344.tif 000016
【０１１５】
そして、電流の微分値dI/dtが許容値ΔＩarよりも小さく、かつ、電圧の微分値dV/dtが許容値ΔＶarよりも小さければ、コントローラー７０は処理を抜け、そうでなければコントローラー７０はステップＳ２３へ処理を移行する。ここで、許容値ΔＩar及びΔＶarは、実験で実際に燃料電池内部状態推定パラメーターを推定し、正常に推定可能な許容値を確認して設定する。
【０１１６】
ステップＳ２３においてコントローラー７０は、燃料電池容量を算出する。具体的な内容は後述する。
【０１１７】
ステップＳ２４においてコントローラー７０は、燃料電池容量に基づいて、燃料電池スタック１０の内部状態を推定するための伝達関数パラメーター(電気二重層容量Ｃdl［Ｆ］、反応抵抗Ｒact［Ω］)及びアイオノマー抵抗Ｒion［Ω］を算出する。具体的な内容は後述する。
【０１１８】
ステップＳ２５においてコントローラー７０は、ナイキスト線図を利用する従来手法によって内部状態パラメーター参照値を算出する。具体的には、伝達関数Ｇの実部Ｇreと虚部Ｇimに基づいて、図１４のようなナイキスト線図を利用して次式によって、電気二重層容量参照値Ｃdl_ref［Ｆ］、反応抵抗参照値Ｒact_ref［Ω］、アイオノマー抵抗参照値Ｒion_ref［Ω］を算出する。
【０１１９】
【数１５】
2011003344.tif 000017
【０１２０】
ステップＳ２６においてコントローラー７０は、ステップＳ２４にて燃料電池の容量から算出した電気二重層容量Ｃdlが確からしいか否かを検証する。具体的にはステップＳ２４にて燃料電池の容量から算出した電気二重層容量Ｃdlと従来技術を用いて算出した電気二重層容量参照値Ｃdl_refとの比が許容範囲内にあれば確からしいと判定する。またステップＳ２４にて燃料電池の容量から算出した反応抵抗Ｒactと従来技術を用いて算出した反応抵抗参照値Ｒact_refとの比が許容範囲内にあれば確からしいと判定する。さらにステップＳ２４にて燃料電池の容量から算出したアイオノマー抵抗Ｒionと従来技術を用いて算出したアイオノマー抵抗参照値Ｒion_refとの比が許容範囲内にあれば確からしいと判定する。電気二重層容量Ｃdl、反応抵抗Ｒact及びアイオノマー抵抗Ｒionのすべてが確からしければ、コントローラー７０は、ステップＳ２８に処理を移行する。いずれか１つでも確からしくなければ、コントローラー７０は、ステップＳ２７に処理を移行する。
【０１２１】
ステップＳ２７においてコントローラー７０は、内部状態パラメーターを前回値のまま維持しておく。内部状態パラメーターの初期値には標準的な燃料電池の運転状態における標準的な値が格納されている。
【０１２２】
ステップＳ２８においてコントローラー７０は、内部状態パラメーターを、今回ステップＳ２４で算出した値(電気二重層容量Ｃdl、反応抵抗Ｒact、アイオノマー抵抗Ｒion、燃料電池の容量ＣFCが大きく低下し始める周波数ｆcur)で更新する。
【０１２３】
図１５は、燃料電池容量を算出するサブルーチンのフローチャートである。
【０１２４】
ステップＳ２３１においてコントローラー７０は、推定に必要な周波数帯flow［Ｈｚ］〜fhigh［Ｈｚ］の範囲内で、以降の処理で伝達関数を算出する周波数をあらかじめ複数点選定する。そして図１６のような配列fcal(k)(k=1〜M)に格納しておく。ループ変数ｋを１とする。ここで伝達関数を算出する周波数ｆcal(k)(k=1〜M)は周波数帯flow［Ｈｚ］〜fhigh［Ｈｚ］の範囲で燃料電池内部状態推定パラメーターを推定するために必要な周波数特性が得られるように実験で確認して選定する。
【０１２５】
ステップＳ２３２においてコントローラー７０は、伝達関数を算出する周波数ｆcal(k)をセットする。なお周波数ｆcal(k)の初期値は周波数ｆcal(1)であり、ｆcal(2)、ｆcal(3)、・・・と順次更新される。そして角周波数ω(＝2π×ｆcal(k))［Ｈｚ］を算出する。
【０１２６】
ステップＳ２３３においてコントローラー７０は、ステップＳ２３２でセットした周波数での伝達関数Ｇの虚部Ｇim(k)を次式(16)に基づいて算出する。
【０１２７】
【数１６】
2011003344.tif 000018
【０１２８】
なお減衰係数αは任意に選べる。固定値を用いてもよいし、状況に応じて異なる値を用いてもよい。ただし減衰係数αが大きいほど、伝達関数を算出するために必要な時系列データーは少なくてよい。すなわちラプラス積分の積分区間を短くできる。ただしこのようにすると、伝達関数を算出した結果に誤差が多く含まれることとなる。そこで、そのようなトレードオフを実験等で確認して減衰係数αを決めておく。
【０１２９】
ステップＳ２３４においてコントローラー７０は、ステップＳ２３３で算出した伝達関数に基づいて燃料電池容量ＣFCを次式(17)に基づいて算出し、図１７に示すように順次配列に格納する。
【０１３０】
【数１７】
2011003344.tif 000019
【０１３１】
ステップＳ２３５においてコントローラー７０は、全周波数での燃料電池容量ＣFCの算出が完了するまではステップＳ２３２へ処理を戻し、完了したら処理を抜ける。
【０１３２】
以上の処理によって図１８のような相関がある周波数及び燃料電池容量が配列に格納されることとなる。
【０１３３】
図１９は、燃料電池容量に基づいて内部状態パラメーターを算出するサブルーチンのフローチャートである。
【０１３４】
ステップＳ２４１においてコントローラー７０は、電気二重層容量Ｃdl［Ｆ］を求める。具体的には、図２０に示すように、角周波数ωcal(k)=2πfcal(k)(k=1〜M)の２乗の逆数を横軸、燃料電池容量ＣFC(k)(k=1〜M)を縦軸にとったグラフに対して近似直線を引いて、その近似直線の切片を電気二重層容量Ｃdlと読み取る。
【０１３５】
ステップＳ２４２においてコントローラー７０は、反応抵抗Ｒact［Ω］を求める。具体的には、電気二重層容量Ｃdlと、図２０の近似直線の傾きｍと、に基づいて次式(18)によって反応抵抗Ｒactを算出する。
【０１３６】
【数１８】
2011003344.tif 000020
【０１３７】
ステップＳ２４３においてコントローラー７０は、アイオノマー抵抗Ｒion［Ω］を求める。具体的には、図２１のように周波数を横軸、燃料電池容量を縦軸にとって、燃料電池容量ＣFCが大きく低下し始める周波数ｆcurを求める。本実施形態では、図２１に示すように、低周波数側から外挿した直線と高周波数側から外挿した直線とが交わる周波数を、周波数ｆcurとしている。そして次式(19)に基づいてアイオノマー抵抗Ｒion［Ω］を算出する。
【０１３８】
【数１９】
2011003344.tif 000021
【０１３９】
従来のフーリエ変換を用いて伝達関数を算出する方法は、伝達関数を算出するために必要な時間が長くなり、その伝達関数のパラメーターを推定するのに要する時間も長くなっていた。伝達関数の算出時間を短縮するために、窓関数を導入してフーリエ変換することも考えられる。この場合は、窓関数を導入することによって、算出された伝達関数に誤差が生じる。このように誤差を含む伝達関数の周波数応答特性から伝達関数のパラメーターを推定しようとすると、推定されたパラメーターの精度が低下してしまう。
【０１４０】
しかしながら本実施形態によれば、燃料電池の特性に基づいてモデル伝達関数を設定し、周波数ごとの燃料電池の伝達関数と整合させることで、そのモデル伝達関数に含まれるパラメーターを推定するようにした。具体的には、伝達関数の虚部の情報のみから算出できる燃料電池の容量に基づいて、モデル伝達関数に含まれるパラメーターを推定するようにした。このようにしたので、パラメーター(電気二重層容量Ｃdl［Ｆ］、反応抵抗Ｒact［Ω］)及びアイオノマー抵抗Ｒion［Ω］の算出が容易である。そしてラプラス演算子の実部がフーリエ変換の窓関数と同じ役割を果たして、伝達関数算出に必要な周波数成分を含んでいれば周期的な信号でなくても対象への入力信号として使うことができるとともに、未知パラメーターを含む伝達関数式と伝達関数算出手段で算出した伝達関数との整合を取ることで、ラプラス演算子に任意の実部を設定したことで生じる誤差を未知パラメーターの推定値から取り除くことができる。したがって、推定に要する時間を無用に長くすることなく、伝達関数のパラメーターの推定精度の低下を抑制することができるようになった。パラメーターを推定することで伝達関数を設定できれば燃料電池の内部状態を推定できる。燃料電池の状態を推定できれば、内部状態に応じて燃料電池を最適に運転でき、また燃料電池の交換時期の基準にすることができるのである。
【０１４１】
またラプラス演算子の実部の値αが大きいほどラプラス積分の積分区間を短くするようにした。実部の値αが大きいほどｅ-αt(tは積分開始からの時間)がゼロに漸近する時間が短くなる特性を利用して、ラプラス演算子の実部の値を任意に設定することで積分区間の長さを調節し、使用するデータ量を減らして推定精度に優先して推定にかかる時間を短くする、あるいは、使用するデータ量を増やして推定にかかる時間が長くなる代わりに推定精度を向上する、ということを容易に調整できる。
【０１４２】
さらに各パラメーターの推定値を参照値と比較することで、推定値の信頼性を向上することができる。
【０１４３】
以上説明した実施形態に限定されることなく、その技術的思想の範囲内において種々の変形や変更が可能であり、それらも本発明の技術的範囲に含まれることが明白である。
【０１４４】
たとえば、上記実施形態においては、発電電流を制御して入力信号を生成しているが、燃料電池スタック１０の電圧を制御して入力信号を生成し、発電電流の応答から同様に伝達関数算出手段で燃料電池スタック１０の伝達関数を算出してもよい。
【０１４５】
また入力信号は、推定に必要な周波数帯域ｆlow［Ｈｚ］〜ｆhigh［Ｈｚ］が含まれていて振幅がＡamp［Ａ］以上であれば、入力信号としてステップ的な信号やＭ系列信号、複数の正弦波の合成信号等、どのような形態の信号を用いてもよい。ただし、振幅が大きくなると暫定的な目標発電電流Ｉr_stk_tmp［Ａ］と目標発電電流Ｉr_stk［Ａ］との乖離が大きくなることで要求された電力Ｐr［ｋＷ］と燃料電池の出力との乖離が大きくなってしまう可能性があり、燃料電池の電流と電圧の関係が線形で近似できず非線形となるため燃料電池内部状態推定パラメーターの推定が正しくできない可能性もあるので、燃料電池内部状態推定パラメーターの推定で必要な振幅Ａamp［Ａ］を超える振幅は入力信号として使わないことが望ましい。また燃料電池の運転で生じる電流変動、電圧変動等で推定に必要な周波数帯域および振幅が確保できるならば、Ｍ系列信号等の入力信号を加えなくともよい。
【０１４６】
またステップＳ４においては、時定数τcurで、暫定的な目標発電電流Ｉr_stk_tmpに一次遅れフィルタ処理を実施したが、触媒層の電解質膜から遠い反応サイトが有効に使われなくなるｆcur以上の高周波数領域の燃料電池スタック１０の発電電流を抑制し、燃料電池スタック１０の出力が低下しないようにできるならば、一次遅れフィルタ処理である必要はないため、一次遅れフィルタ処理に代えて、二次遅れフィルタ処理やその他の遅れ要素を持つフィルタ処理を実施してもよい。
【０１４７】
さらに暫定的な目標発電電流Ｉr_stk_tmp［Ａ］が推定に必要な周波数帯ｆlow［Ｈｚ］〜ｆhigh［Ｈｚ］を含んでいて振幅がＡamp［Ａ］以上であって、かつ、τcur［sec］を時定数とする一次遅れフィルタ処理を実施しない場合には、新たに入力信号を加える必要がない。そこでこのような場合は、暫定的な目標発電電流Ｉr_stk_tmp［Ａ］が入力信号であり、かつ、目標発電電流Ｉr_stk［Ａ］でもある信号として扱ってもよい。
【０１４８】
また本実施形態では、ステップＳ５において、アイオノマ抵抗から推定した触媒層の相対湿度ａcat_ion［％］と、電気二重層容量から推定した触媒層の相対湿度ａcat_dl［％］と、の平均値から触媒層の相対湿度ａcat［％］を算出した。しかしながら簡易的には、アイオノマ抵抗Ｒion［Ω］と触媒層の相対湿度の関係、または電気二重層容量Ｃdl［Ｆ］と触媒層の相対湿度の関係の少なくともいずれか一方から触媒層の相対湿度ａcat［％］が推定してもよい。また触媒層の相対湿度ａcat［％］に基づいて、酸素利用率ＵO2を変化させることで、目標空気流量Ｑr_airを算出しているが、触媒層の湿潤状態を変化させられる方法であれば、空気流量で湿潤状態を管理する必要はない。そこでこのような場合には、空気流量の調整によって湿潤状態を管理するのではなく、水素流量、水素圧力、空気圧力、燃料電池の運転温度等の調整によって湿潤状態を管理したり、その他の方法によって湿潤状態を管理したり、あるいは複数の方法を組み合わせて湿潤状態を管理してもよい。
【０１４９】
また本実施形態では、ステップＳ２３においては、微分値dI/dt及びdV/dtに基づいて電流Ｉstkおよび電圧Ｖstkの単位時間あたりの変動の大きさを判断して条件分岐を判定した。しかしながら電流Ｉstkおよび電圧Ｖstkの単位時間あたりの変動の大きさが判断できる値であれば、他の値を用いてもよく、たとえば、代わりに分散を算出して同様の条件分岐の判断をしてもよい。
【０１５０】
また本実施形態では、ステップＳ２４３においては、低周波数側から外挿した直線と高周波数側から外挿した直線が交わる周波数をfcur［Ｈｚ］としているが、低周波数側から外挿した直線から高周波数側の特性が乖離する周波数ｆcur［Ｈｚ］が抽出できれば他の方法でもよい。
【符号の説明】
【０１５１】
１０  燃料電池スタック
１１  電流センサー
１２  電圧センサー
ステップＳ１  電流検出部、電圧検出部
ステップＳ２３３  周波数毎伝達関数算出部
ステップＳ２４  伝達関数パラメーター推定部
【図１】
2011003344.tif 000022
【図２】
2011003344.tif 000023
【図３】
2011003344.tif 000024
【図４】
2011003344.tif 000025
【図５】
2011003344.tif 000026
【図６】
2011003344.tif 000027
【図７】
2011003344.tif 000028
【図８】
2011003344.tif 000029
【図９】
2011003344.tif 000030
【図１０】
2011003344.tif 000031
【図１１】
2011003344.tif 000032
【図１２】
2011003344.tif 000033
【図１３】
2011003344.tif 000034
【図１４】
2011003344.tif 000035
【図１５】
2011003344.tif 000036
【図１６】
2011003344.tif 000037
【図１７】
2011003344.tif 000038
【図１８】
2011003344.tif 000039
【図１９】
2011003344.tif 000040
【図２０】
2011003344.tif 000041
【図２１】
2011003344.tif 000042
【図２２】
2011003344.tif 000043