(57)【要約】【課題】計算負荷を高めることなく燃料電池を容易に分析できる燃料電池の内部状態推定装置及び内部状態推定方法を提供する。【解決手段】燃料電池の電流を検出する電流検出部(ステップＳ１)と、燃料電池の電圧を検出する電圧検出部(ステップＳ１)と、周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出部(ステップＳ２３３)と、伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出部(ステップＳ２３４)と、燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出部(ステップＳ２４)と、を備える。【選択図】図６
2010267472.tif 000002
【特許請求の範囲】
【請求項１】
燃料電池の電流を検出する電流検出部と、
燃料電池の電圧を検出する電圧検出部と、
周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出部と、
前記伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出部と、
前記燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出部と、
を備える燃料電池の内部状態推定装置。
【請求項２】
前記パラメーター算出部は、横軸が周波数、縦軸が燃料電池容量のグラフに、前記燃料電池容量を周波数ごとにプロットした場合の近似直線の切片を、燃料電池の電気二重層容量として算出する、
ことを特徴とする請求項１に記載の燃料電池の内部状態推定装置。
【請求項３】
前記パラメーター算出部は、横軸が周波数、縦軸が燃料電池容量のグラフに、前記燃料電池容量を周波数ごとにプロットした場合の近似直線の傾き、及び前記電気二重層容量に基づいて、燃料電池の反応抵抗を算出する、
ことを特徴とする請求項２に記載の燃料電池の内部状態推定装置。
【請求項４】
前記パラメーター算出部は、横軸が周波数、縦軸が燃料電池容量のグラフに、前記燃料電池容量を周波数ごとにプロットした場合の２本の近似直線の交点、及び前記電気二重層容量に基づいて、燃料電池のアイオノマー抵抗を算出する、
ことを特徴とする請求項２又は請求項３に記載の燃料電池の内部状態推定装置。
【請求項５】
前記パラメーター算出部は、前記燃料電池容量に基づいて算出した内部状態推定パラメーターが、参照値からの許容範囲を超えて乖離するときには、その内部状態推定パラメーターが誤りであると判定する、
ことを特徴とする請求項１から請求項４までのいずれか１項に記載の燃料電池の内部状態推定装置。
【請求項６】
燃料電池の電流を検出する電流検出工程と、
燃料電池の電圧を検出する電圧検出工程と、
周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出工程と、
前記伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出工程と、
前記燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出工程と、
を備える燃料電池の内部状態推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、燃料電池の内部状態を推定する装置及び方法に関する。
【背景技術】
【０００２】
近年、電気自動車の電源となる燃料電池の開発が行われている。燃料電池は、水素や空気の供給量及び加湿量、運転温度などによって発電性能が低下や劣化する可能性がある。発電性能が低下、劣化してしまった場合は、燃料電池を正常な状態に戻すことや、燃料電池の状態に合わせた運転をすることが重要である。そのためには燃料電池内部の情報(反応抵抗、電解質膜の抵抗等)を分析し、性能低下・劣化した原因を知る必要がある。そこでたとえば特許文献１では、燃料電池の抵抗および容量をナイキスト線図を用いて分析して燃料電池の状態を割り出している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−０６３９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ナイキスト線図を用いて燃料電池を分析する方法は、伝達関数の実部と虚部の両方の情報から描かれるナイキスト線図と、想定した等価回路と、の整合を取る計算が煩雑であった。そのため推定に多くの計算が必要となり、計算負荷が高くなる可能性がある。
【０００５】
本発明は、このような従来の問題点に着目してなされたものであり、計算負荷を高めることなく燃料電池を容易に分析できる燃料電池の内部状態推定装置及び内部状態推定方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は以下のような解決手段によって前記課題を解決する。
【０００７】
本発明は、検出した燃料電池の電流及び電圧に基づいて燃料電池の内部状態推定する。そして周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出部と、伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出部と、燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、計算負荷高めることなく燃料電池の内部状態を推定することができ、燃料電池を容易に分析することができるのである。
【図面の簡単な説明】
【０００９】
【図１】燃料電池スタックの単セルの集中定数系の等価回路を示す図である。
【図２】１／ω2(横軸)が変化したときの−１／ωＧim(縦軸)の変化を示す図である。
【図３】図２のように変化することに対する発明者の考察について説明する図である。
【図４】燃料電池スタックの単セルの分布定数系の等価回路を示す図である。
【図５】本発明による燃料電池内部状態推定装置を適用可能な燃料電池システムの一例を示すシステム構成図である。
【図６】本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御ブロック図である。
【図７】本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御フローチャートである。
【図８】暫定的な目標発電電流Ｉr_stk_tmを算出するためのテーブルデーターの一例を示す図である。
【図９】ステップＳ５において目標値を算出するためのテーブルデーターの一例を示す図である。
【図１０】酸素利用率を算出するためのテーブルデーターの一例を示す図である。
【図１１】ステップＳ６において駆動信号を求めるためのテーブルデーターの一例を示す図である。
【図１２】内部状態推定パラメーターを算出するサブルーチンのフローチャートである。
【図１３】ステップＳ２１の操作を説明する図である。
【図１４】伝達関数Ｇの実部Ｇreと虚部Ｇimに基づいて、電気二重層容量参照値Ｃdl_ref、反応抵抗参照値Ｒact_ref、アイオノマー抵抗参照値Ｒion_refを算出するためのナイキスト線図の一例を示す図である。
【図１５】燃料電池容量を算出するサブルーチンのフローチャートである。
【図１６】ステップＳ２３１の操作を説明する図である。
【図１７】ステップＳ２３４の操作を説明する図である。
【図１８】燃料電池容量に基づいて内部状態パラメーターを算出するサブルーチンのフローチャートである。
【図１９】燃料電池容量に基づいて内部状態パラメーター(電気二重層容量Ｃdl、反応抵抗Ｒact)を算出する手法を説明する図である。
【図２０】燃料電池容量に基づいて内部状態パラメーター(アイオノマー抵抗Ｒion)を算出する手法を説明する図である。
【発明を実施するための形態】
【００１０】
以下では図面等を参照して本発明を実施するための最良の形態について説明する。
（基本コンセプト）
最初に本発明の理解を容易にするために基本コンセプトについて説明する。
【００１１】
上述したように、ナイキスト線図を用いて燃料電池を分析する方法では、伝達関数の実部と虚部の両方の情報から描かれるナイキスト線図と、想定した等価回路と、の整合を取る計算が煩雑であって、推定に多くの計算が必要となっていた。そのため計算負荷が高くなる可能性があった。そこで本実施形態では、燃料電池スタックの電流値及び電圧値に基づいて燃料電池の内部状態を推定することで、計算負荷を上げることなく燃料電池を分析するようにしたのである。
【００１２】
具体的には、燃料電池スタックの単セルについて図１のような等価回路を考える。
【００１３】
発電電流Ｉを入力、発電電流Ｉに応じた電圧降下Ｖを出力とする。すると等価回路のインピーダンスに相当する部分が伝達関数Ｇになって次式(1)の関係が得られる。
【００１４】
【数１】
2010267472.tif 000003
【００１５】
この式(1)を変形すると以下のようになる。
【００１６】
【数２】
2010267472.tif 000004
【００１７】
そして、ｓ＝α＋ｊωを代入すると以下になる。
【００１８】
【数３】
2010267472.tif 000005
【００１９】
そして上式(3)の虚部Ｇimを抜き出すと次式(4)が得られる。
【００２０】
【数４】
2010267472.tif 000006
【００２１】
逆数をとると次式(5)が得られる。
【００２２】
【数５】
2010267472.tif 000007
【００２３】
両辺にマイナスを乗算し、ωで除算すると次式(6)が得られる。
【００２４】
【数６】
2010267472.tif 000008
【００２５】
ゆえに次式(7)が得られる。
【００２６】
【数７】
2010267472.tif 000009
【００２７】
したがって、横軸に１／ω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］となるように、ＰＩコントローラーを用いてフィードバック制御し、ＰＩコントローラーの出力を空気調圧弁目標開度Dr_acv［deg］として算出する。そしてコントローラー７０は、空気調圧弁目標開度Ｄr_acv［deg］となるようなデューティー比を計算し、そのデューティー比に基づいて、空気調圧弁３４を駆動させるための駆動信号を出力する。
【００８３】
またコントローラー７０は、目標水素圧力Ｐr_h2［kPa］と燃料電池入口の水素圧力Ｐh2［kPa］とに基づいて、燃料電池入口の水素圧力Ｐh2［kPa］が目標水素圧力Ｐr_h2［kPa］となるように、ＰＩコントローラーを用いてフィードバック制御し、ＰＩコントローラーの出力を水素調圧弁目標開度Dr_hcv［deg］として算出する。そしてコントローラー７０は、水素調圧弁目標開度Dr_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)を用いて次式(8)によって電流の微分値dI/dtを求める。
【００９１】
【数８】
2010267472.tif 000010
【００９２】
同様に、電圧降下の履歴を格納した配列ΔＶstk_buf(i)(i=1〜N)の最も古い値ΔＶstk_buf(1)と2番目に古い値ΔＶstk_buf(2)を用いて、次式(9)によって電圧の微分値dV/dtを求める。
【００９３】
【数９】
2010267472.tif 000011
【００９４】
そして、電流の微分値dI/dtが許容値ΔＩarよりも小さく、かつ、電圧の微分値dV/dtが許容値ΔＶarよりも小さければ、コントローラー７０は処理を抜け、そうでなければコントローラー７０はステップＳ２３へ処理を移行する。ここで、許容値ΔＩarおよびΔＶarは、実験で実際に燃料電池内部状態推定パラメーターを推定し、正常に推定可能な許容値を確認して設定する。
【００９５】
ステップＳ２３においてコントローラー７０は、燃料電池容量を算出する。具体的な内容は後述する。
【００９６】
ステップＳ２４においてコントローラー７０は、燃料電池容量に基づいて内部状態パラメーターを算出する。具体的な内容は後述する。
【００９７】
ステップＳ２５においてコントローラー７０は、従来手法によって内部状態パラメーター参照値を算出する。具体的には、伝達関数Ｇの実部Ｇreと虚部Ｇimに基づいて、図１４のようなナイキスト線図を利用して次式によって、電気二重層容量参照値Cdl_ref［Ｆ］、反応抵抗参照値Ract_ref［Ω］、アイオノマー抵抗参照値Rion_ref［Ω］を算出する。
【００９８】
【数１０】
2010267472.tif 000012
【００９９】
ステップＳ２６においてコントローラー７０は、ステップＳ２４にて燃料電池の容量から算出した電気二重層容量Ｃdlが確からしいか否かを検証する。具体的にはステップＳ２４にて燃料電池の容量から算出した電気二重層容量Ｃdlと従来技術を用いて算出した電気二重層容量参照値Cdl_refとの比が許容範囲内にあれば確からしいと判定する。またステップＳ２４にて燃料電池の容量から算出した反応抵抗Ｒactと従来技術を用いて算出した反応抵抗参照値Ract_refとの比が許容範囲内にあれば確からしいと判定する。さらにステップＳ２４にて燃料電池の容量から算出したアイオノマー抵抗Ｒionと従来技術を用いて算出したアイオノマー抵抗参照値Rion_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)を次式(11)に基づいて算出する。
【０１０６】
【数１１】
2010267472.tif 000013
【０１０７】
なお減衰係数αは任意に選べる。固定値を用いてもよいし、状況に応じて異なる値を用いてもよい。ただし減衰係数αが大きいほど、伝達関数を算出するために必要な時系列データーが少なくてよい代わりに伝達関数を算出した結果に誤差が多く含まれる。そこで、そのようなトレードオフを実験等で確認して減衰係数αを決めておく。
【０１０８】
ステップＳ２３４においてコントローラー７０は、ステップＳ２３３で算出した伝達関数に基づいて燃料電池容量ＣFCを次式に基づいて算出し、図１７に示すように順次配列に格納する。
【０１０９】
【数１２】
2010267472.tif 000014
【０１１０】
ステップＳ２３５においてコントローラー７０は、全周波数での燃料電池容量ＣFCの算出が完了するまではステップＳ２３２へ処理を戻し、完了したら処理を抜ける。
【０１１１】
図１８は、燃料電池容量に基づいて内部状態パラメーターを算出するサブルーチンのフローチャートである。
【０１１２】
ステップＳ２４１においてコントローラー７０は、電気二重層容量Ｃdl［Ｆ］を求める。具体的には、角周波数ωcal(k)=2πfcal(k)(k=1〜M)の２乗の逆数を横軸、燃料電池容量ＣFC(k)(k=1〜M)を縦軸にとり、図１９のように近似直線の切片を電気二重層容量Ｃdlと読み取る。
【０１１３】
ステップＳ２４２においてコントローラー７０は、反応抵抗Ｒact［Ω］を求める。具体的には、電気二重層容量Ｃdlと、図１９の近似直線の傾きｍと、に基づいて次式によって反応抵抗Ｒactを算出する。
【０１１４】
【数１３】
2010267472.tif 000015
【０１１５】
ステップＳ２４３においてコントローラー７０は、アイオノマー抵抗Ｒion［Ω］を求める。具体的には、図２０のように周波数を横軸、燃料電池容量を縦軸にとって、燃料電池容量ＣFCが大きく低下し始める周波数ｆcurを求める。本実施形態では、図２０に示すように、低周波数側から外挿した直線と高周波数側から外挿した直線とが交わる周波数を、周波数ｆcurとしている。そして次式(14)に基づいてアイオノマー抵抗Ｒion［Ω］を算出する。
【０１１６】
【数１４】
2010267472.tif 000016
【０１１７】
従来のナイキスト線図を用いて燃料電池を分析する方法は、伝達関数の実部と虚部の両方の情報から描かれるナイキスト線図と、想定した等価回路と、の整合を取る計算が煩雑であった。そのため推定に多くの計算が必要となり、計算負荷が高くなる可能性があった。しかしながら本実施形態によれば、伝達関数の虚部の情報のみから算出できる燃料電池の容量に基づいて、燃料電池の状態を推定するようにしたので、計算負荷を高めることなく容易に推定することができるようになった。燃料電池の状態を推定できれば、内部状態に応じて燃料電池を最適に運転でき、また燃料電池の交換時期の基準にすることができるのである。
【０１１８】
以上説明した実施形態に限定されることなく、その技術的思想の範囲内において種々の変形や変更が可能であり、それらも本発明の技術的範囲に含まれることが明白である。
【０１１９】
たとえば、上記実施形態においては、発電電流を制御して入力信号を生成しているが、燃料電池スタック１０の電圧を制御して入力信号を生成し、発電電流の応答から同様に伝達関数算出手段で燃料電池スタック１０の伝達関数を算出してもよい。
【０１２０】
また入力信号は、推定に必要な周波数帯域ｆ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［Ｈｚ］が抽出できれば他の方法でもよい。
【符号の説明】
【０１２６】
１０  燃料電池スタック
１１  電流センサー
１２  電圧センサー
ステップＳ１  電流検出部、電圧検出部
ステップＳ２３３  伝達関数算出部
ステップＳ２３４  燃料電池容量算出部
ステップＳ２４  パラメーター算出部
【図１】
2010267472.tif 000017
【図２】
2010267472.tif 000018
【図３】
2010267472.tif 000019
【図４】
2010267472.tif 000020
【図５】
2010267472.tif 000021
【図６】
2010267472.tif 000022
【図７】
2010267472.tif 000023
【図８】
2010267472.tif 000024
【図９】
2010267472.tif 000025
【図１０】
2010267472.tif 000026
【図１１】
2010267472.tif 000027
【図１２】
2010267472.tif 000028
【図１３】
2010267472.tif 000029
【図１４】
2010267472.tif 000030
【図１５】
2010267472.tif 000031
【図１６】
2010267472.tif 000032
【図１７】
2010267472.tif 000033
【図１８】
2010267472.tif 000034
【図１９】
2010267472.tif 000035
【図２０】
2010267472.tif 000036