説明

燃料電池の内部状態推定装置及び内部状態推定方法

【課題】計算負荷を高めることなく燃料電池を容易に分析できる燃料電池の内部状態推定装置及び内部状態推定方法を提供する。
【解決手段】燃料電池の電流を検出する電流検出部(ステップS1)と、燃料電池の電圧を検出する電圧検出部(ステップS1)と、周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出部(ステップS233)と、伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出部(ステップS234)と、燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出部(ステップS24)と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、燃料電池の内部状態を推定する装置及び方法に関する。
【背景技術】
【0002】
近年、電気自動車の電源となる燃料電池の開発が行われている。燃料電池は、水素や空気の供給量及び加湿量、運転温度などによって発電性能が低下や劣化する可能性がある。発電性能が低下、劣化してしまった場合は、燃料電池を正常な状態に戻すことや、燃料電池の状態に合わせた運転をすることが重要である。そのためには燃料電池内部の情報(反応抵抗、電解質膜の抵抗等)を分析し、性能低下・劣化した原因を知る必要がある。そこでたとえば特許文献1では、燃料電池の抵抗および容量をナイキスト線図を用いて分析して燃料電池の状態を割り出している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−063946号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ナイキスト線図を用いて燃料電池を分析する方法は、伝達関数の実部と虚部の両方の情報から描かれるナイキスト線図と、想定した等価回路と、の整合を取る計算が煩雑であった。そのため推定に多くの計算が必要となり、計算負荷が高くなる可能性がある。
【0005】
本発明は、このような従来の問題点に着目してなされたものであり、計算負荷を高めることなく燃料電池を容易に分析できる燃料電池の内部状態推定装置及び内部状態推定方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は以下のような解決手段によって前記課題を解決する。
【0007】
本発明は、検出した燃料電池の電流及び電圧に基づいて燃料電池の内部状態推定する。そして周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出部と、伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出部と、燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出部と、を備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、計算負荷高めることなく燃料電池の内部状態を推定することができ、燃料電池を容易に分析することができるのである。
【図面の簡単な説明】
【0009】
【図1】燃料電池スタックの単セルの集中定数系の等価回路を示す図である。
【図2】1/ω2(横軸)が変化したときの−1/ωGim(縦軸)の変化を示す図である。
【図3】図2のように変化することに対する発明者の考察について説明する図である。
【図4】燃料電池スタックの単セルの分布定数系の等価回路を示す図である。
【図5】本発明による燃料電池内部状態推定装置を適用可能な燃料電池システムの一例を示すシステム構成図である。
【図6】本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御ブロック図である。
【図7】本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御フローチャートである。
【図8】暫定的な目標発電電流Ir_stk_tmを算出するためのテーブルデーターの一例を示す図である。
【図9】ステップS5において目標値を算出するためのテーブルデーターの一例を示す図である。
【図10】酸素利用率を算出するためのテーブルデーターの一例を示す図である。
【図11】ステップS6において駆動信号を求めるためのテーブルデーターの一例を示す図である。
【図12】内部状態推定パラメーターを算出するサブルーチンのフローチャートである。
【図13】ステップS21の操作を説明する図である。
【図14】伝達関数Gの実部Greと虚部Gimに基づいて、電気二重層容量参照値Cdl_ref、反応抵抗参照値Ract_ref、アイオノマー抵抗参照値Rion_refを算出するためのナイキスト線図の一例を示す図である。
【図15】燃料電池容量を算出するサブルーチンのフローチャートである。
【図16】ステップS231の操作を説明する図である。
【図17】ステップS234の操作を説明する図である。
【図18】燃料電池容量に基づいて内部状態パラメーターを算出するサブルーチンのフローチャートである。
【図19】燃料電池容量に基づいて内部状態パラメーター(電気二重層容量Cdl、反応抵抗Ract)を算出する手法を説明する図である。
【図20】燃料電池容量に基づいて内部状態パラメーター(アイオノマー抵抗Rion)を算出する手法を説明する図である。
【発明を実施するための形態】
【0010】
以下では図面等を参照して本発明を実施するための最良の形態について説明する。
(基本コンセプト)
最初に本発明の理解を容易にするために基本コンセプトについて説明する。
【0011】
上述したように、ナイキスト線図を用いて燃料電池を分析する方法では、伝達関数の実部と虚部の両方の情報から描かれるナイキスト線図と、想定した等価回路と、の整合を取る計算が煩雑であって、推定に多くの計算が必要となっていた。そのため計算負荷が高くなる可能性があった。そこで本実施形態では、燃料電池スタックの電流値及び電圧値に基づいて燃料電池の内部状態を推定することで、計算負荷を上げることなく燃料電池を分析するようにしたのである。
【0012】
具体的には、燃料電池スタックの単セルについて図1のような等価回路を考える。
【0013】
発電電流Iを入力、発電電流Iに応じた電圧降下Vを出力とする。すると等価回路のインピーダンスに相当する部分が伝達関数Gになって次式(1)の関係が得られる。
【0014】
【数1】

【0015】
この式(1)を変形すると以下のようになる。
【0016】
【数2】

【0017】
そして、s=α+jωを代入すると以下になる。
【0018】
【数3】

【0019】
そして上式(3)の虚部Gimを抜き出すと次式(4)が得られる。
【0020】
【数4】

【0021】
逆数をとると次式(5)が得られる。
【0022】
【数5】

【0023】
両辺にマイナスを乗算し、ωで除算すると次式(6)が得られる。
【0024】
【数6】

【0025】
ゆえに次式(7)が得られる。
【0026】
【数7】

【0027】
したがって、横軸に1/ω2、縦軸に−1/ωGimをとれば、切片がCdl、傾きm=(1+αCdlact)2/Cdlact2の直線が描かれることとなる。これについて発明者らが実験したところ、図2の実験データーのようになり、ωが小の低周波領域であれば、確かに上述の関係が得られるものの、ωが大の高周波領域では合致しないことが知見された。これに関する発明者の考察を図3を参照して説明する。
【0028】
すなわち触媒層での反応を厳密に考えるには、触媒層の厚さ方向におけるPt(反応サイト)の分布を考慮しなければならない。電解質膜から遠いPt上で反応する場合は、プロトンH+は、アイオノマー中を長い距離移動しなければならないが、電解質膜から近いPt上に集中しすぎてしまうと、やはり損失が大きくなるので、自然に、厚さ方向の分布を持って、反応が進むこととなるからである。
【0029】
このような厚さ方向の分布を考慮するために、図4のような分布定数系の等価回路を考える。この等価回路によれば、高周波数の入力であるほど電気二重層容量のインピーダンス1/(ωCdl)が小さくなって、反応サイトのインピーダンスも低下する。したがって、電解質膜に近い反応サイトには、高周波数の入力であるほど電流が流れやすくなることが分かる。また電解質膜から遠い反応サイトには、アイオノマー抵抗を通らなければ電流が流れないので、高周波数の入力であるほど電流が流れにくくなることが分かる。
【0030】
したがって、図2のグラフに示す直線から実測値が乖離し始める周波数よりも高周波数の領域では、電解質膜から遠い反応サイトの電気二重層容量が燃料電池の容量にはカウントされなくなって、燃料電池の容量が式(6)の直線に合致しなくなっているということが発明者らの知見である。
【0031】
この特性は、式(7)の直線から実測値が乖離し始める周波数で、電気二重層容量のインピーダンスとアイオノマー抵抗とが同程度となったことによって現れると考えられる。
【0032】
したがって、この周波数での電気二重層容量のインピーダンスを算出することで、おおよそのアイオノマー抵抗を推定することもできる、と本件発明者らは知見した。
【0033】
したがって、このような技術思想を利用すれば、伝達関数の虚部の情報のみから算出できる燃料電池の容量に基づいて、燃料電池の状態を容易に推定することができるのである。
【0034】
続いて以下では、このような技術思想を用いる燃料電池内部状態推定装置の具体的な構成について説明する。
【0035】
図5は、本発明による燃料電池内部状態推定装置を適用可能な燃料電池システムの一例を示すシステム構成図である。
【0036】
燃料電池システム1は、燃料電池スタック10と、DC/DCコンバーター40と、二次電池50と、負荷60と、コントローラー70と、を含む。
【0037】
燃料電池スタック10は、アノードライン20から供給される水素と、カソードライン30から供給される空気と、を消費して発電する。燃料電池スタック10の電流値は電流センサー11によって検出され、電流信号がコントローラー70に送られる。燃料電池スタック10の電圧値は電圧センサー12によって検出され、電圧信号がコントローラー70に送られる。燃料電池スタック10のアノードライン20には、水素ボンベ21と、水素調圧弁22と、エゼクター23と、水素循環ポンプ24と、燃料電池入口水素圧力センサー25と、パージ弁26と、が設けられる。燃料電池スタック10のカソードライン30には、コンプレッサー31と、空気流量センサー32と、燃料電池入口空気圧力センサー33と、空気調圧弁34と、が設けられる。
【0038】
水素ボンベ21は、水素を貯蔵しておく。
【0039】
水素調圧弁22は、弁の開度を調節することで水素ボンベ21から燃料電池スタック10に供給される水素の圧力を制御する。
【0040】
エゼクター23は、燃料電池スタック10から排出された余った水素を再度燃料電池スタック10に供給する。
【0041】
水素循環ポンプ24は、燃料電池スタック10への水素の供給量を調節する。
【0042】
燃料電池入口水素圧力センサー25は、燃料電池スタック10に空気される水素の圧力を検出する。検出された水素圧力信号は、コントローラー70に送られる。
【0043】
パージ弁26は、弁を開くことで電解質膜を透過して水素側に混入する窒素の濃度を下げる。
【0044】
コンプレッサー31は、燃料電池スタック10に空気を供給する。
【0045】
空気流量センサー32は、燃料電池スタック10に供給される空気の流量を検出する。検出された空気流量信号は、コントローラー70に送られる。
【0046】
燃料電池入口空気圧力センサー33は、燃料電池スタック10に供給される空気の圧力を検出する。検出された空気圧力信号は、コントローラー70に送られる。
【0047】
空気調圧弁34は、弁開度を調節することで燃料電池スタック10に供給される空気の圧力を制御する。
【0048】
DC/DCコンバーター40は、燃料電池スタック10の電圧を調整し、二次電池50及び負荷60に出力する。
【0049】
コントローラー70は、電流センサー11の出力信号、電圧センサー12の出力信号、燃料電池入口水素圧力センサー25の出力信号、空気流量センサー32の出力信号、燃料電池入口空気圧力センサー33の出力信号、を入力する。そしてコントローラー70は、燃料電池スタック10に設けられた電流センサー11及び電圧センサー12の信号に基づいて燃料電池の内部状態を推定する。そしてコントローラー70は、推定した燃料電池内部状態に基づいて、水素調圧弁22の開度に対してあらかじめ決められているデューティー比となるように、水素調圧弁22に対して駆動信号(パルス幅変調(Pulse Width Modulation;PWM)信号)を出力する。またコントローラー70は、パージ弁26の開閉を制御するように駆動信号(ON/OFF信号)を出力する。またコントローラー70は、推定した燃料電池内部状態に基づいて、空気調圧弁34の開度に対してあらかじめ決められているデューティー比となるように、空気調圧弁34に対して駆動信号(PWM信号)を出力する。またコントローラー70は、推定した燃料電池内部状態に基づいて、コンプレッサー回転数に対してあらかじめ決められているデューティー比となるように、コンプレッサー31に駆動信号(PWM信号)を出力する。またコントローラー70は、推定した燃料電池内部状態に基づいて、水素循環ポンプ回転数に対してあらかじめ決められているデューティー比となるように、水素循環ポンプ24に対して、駆動信号(PWM信号)を出力する。またコントローラー70は、燃料電池スタック10から取り出す電流に対してあらかじめ決められているデューティー比となるように、DC/DCコンバーター40に対して駆動信号(PWM信号)を出力する。コントローラー70は、I/Oインタフェース、プログラムROM、ワークRAM及びCPUを備えたマイクロプロセッサで構成される。なお、電流センサー11、電圧センサー12、DC/DCコンバーター40、コントローラー70及びそれらを繋ぐ信号線/通信線は、後述する燃料電池内部状態推定パラメーターを推定するために必要な周波数帯flow[Hz]〜fhigh[Hz]で動作可能である。また、電流センサー11及び電圧センサー12とコントローラー70とのI/Oインタフェースについては、エイリアシング発生を防止するためのアンチエイリアシングフィルタを備える。
【0050】
図6は、本発明による燃料電池内部状態推定装置を適用可能な燃料電池制御装置の制御ブロック図である。また図7は、制御フローチャートである。両図の対応が分かりやすくなるように、同じ機能を果たす部分には同様の符号を付する。
【0051】
はじめに図6の制御ブロック図を参照して説明する。
【0052】
燃料電池制御装置7は、電流検出部S1−1と、電圧検出部S1−2と、水素圧力検出部S1−3と、空気圧力検出部S1−4と、内部状態推定パラメーター算出部S2と、燃料電池劣化状態推定部S3と、目標発電電流算出部S4と、目標水素流量算出部S5−1と、目標空気流量算出部S5−2と、目標水素圧力算出部S5−3と、目標空気圧力算出部S5−4と、発電電流制御部S6−0と、水素循環ポンプ回転数制御部S6−1と、コンプレッサー回転数制御部S6−2と、水素調圧弁開度制御部S6−3と、空気調圧弁開度制御部S6−4と、を含む。
【0053】
電流検出部S1−1は、電流センサー11で検出している燃料電池スタック10から取り出している電流を読み取る。
【0054】
電圧検出部S1−2は、電圧センサー12で検出している燃料電池スタック10の電圧を読み取る。
【0055】
水素圧力検出部S1−3は、燃料電池入口水素圧力センサー25で水素の圧力を検出する。
【0056】
空気圧力検出部S1−4は、燃料電池入口空気圧力センサー33で空気の圧力を検出する。
【0057】
内部状態推定パラメーター算出部S2は、電流検出部S1−1で検出した燃料電池スタック10から取り出している電流と、電圧検出部S1−2で検出した燃料電池スタック10の電圧に基づいて、燃料電池スタック10の内部状態を推定するパラメーターを算出する。
【0058】
燃料電池劣化状態推定部S3は、推定したパラメーターに基づいて燃料電池の劣化状態を推定する。
【0059】
目標発電電流算出部S4は、燃料電池スタック10に要求される電力と、内部状態推定パラメーター算出部S2で算出されたパラメーターと、に基づいて、燃料電池スタック10から取り出す発電電流を算出する。
【0060】
目標水素流量算出部S5−1は、目標発電電流算出部S4で算出した目標発電電流Ir_stkに基づいて燃料電池スタック10に供給する水素の目標流量Qr_h2を算出する。
【0061】
目標空気流量算出部S5−2は、内部状態推定パラメーター算出部S2で算出したパラメーターに基づいて酸素利用率UO2[%]を算出し、その酸素利用率UO2[%]及び目標発電電流算出部S4で算出した目標発電電流Ir_stkに基づいて燃料電池スタック10に供給する空気の目標流量Qr_airを算出する。
【0062】
目標水素圧力算出部S5−3は、目標発電電流算出部S4で算出した目標発電電流Ir_stkに基づいて燃料電池スタック10に供給する水素の目標圧力Pr_h2を算出する。
【0063】
目標空気圧力算出部S5−4は、目標発電電流算出部S4で算出した目標発電電流Ir_stkに基づいて燃料電池スタック10に供給する空気の目標圧力Pr_airを算出する。
【0064】
発電電流制御部S6−0は、目標発電電流算出部S4で算出した目標発電電流Ir_stkに基づいてDC/DCコンバータ14に駆動信号を出力する。
【0065】
水素循環ポンプ回転数制御部S6−1は、目標水素流量算出部S5−1で算出した目標水素流量に基づいて水素循環ポンプ11に駆動信号を出力する。
【0066】
コンプレッサー回転数制御部S6−2は、目標空気流量算出部S5−2で算出した目標空気流量に基づいてコンプレッサー10に駆動信号を出力する。
【0067】
水素調圧弁開度制御部S6−3は、目標水素圧力算出部S5−3で算出した目標水素圧力と、水素圧力検出部S1−3で検出した水素圧力と、に基づいて、水素調圧弁22に駆動信号を出力する。
【0068】
空気調圧弁開度制御部S6−4は、目標空気圧力算出部S5−4で算出した目標空気圧力と、空気圧力検出部S1−4で検出した空気圧力と、に基づいて、空気調圧弁34に駆動信号を出力する。
【0069】
次に図7の制御フローチャートを参照して説明する。
【0070】
ステップS1においてコントローラー70は、燃料電池スタック10に流れる電流Istk[A]を電流センサー11で検出する。またコントローラー70は、燃料電池スタック10の電圧Vstk[V]を電圧センサー12で検出する。さらにコントローラー70は、燃料電池入口の水素圧力Ph2[kPa]を燃料電池入口水素圧力センサー25で検出する。さらにまたコントローラー70は、燃料電池入口の空気圧力Pair[kPa]を燃料電池入口空気圧力センサー33で検出する。なお、燃料電池スタック10の電流Istk[A]および電圧Vstk[V]については、後述する燃料電池内部状態推定パラメーター推定処理で燃料電池内部状態推定パラメーターを推定するために使用する周波数帯flow[Hz]〜fhigh[Hz]の最高周波数fhigh[Hz]がナイキスト周波数未満となるような検出周期で検出する。
【0071】
ステップS2においてコントローラー70は、燃料電池スタック10の内部状態を推定するパラメーター(電気二重層容量Cdl[F]、反応抵抗Ract[Ω]、アイオノマー抵抗Rion[Ω])を算出する。具体的な算出方法は後述する。
【0072】
ステップS3においてコントローラー70は、パラメーター(電気二重層容量Cdl[F]、反応抵抗Ract[Ω]、アイオノマー抵抗Rion[Ω])の少なくともいずれかひとつの初期状態からの劣化割合を記録しておき、燃料電池スタック10の性能低下による交換を判断するための情報として利用する。反応抵抗Ract[Ω]及びアイオノマ抵抗Rion[Ω]は劣化すると、抵抗値が大きくなるので、どの程度大きくなったかを初期状態の抵抗値との比率で記録しておく。電気二重層容量Cdl[F]は劣化すると、容量値が小さくなるため、どの程度小さくなったかを初期状態の容量値との比率で記録しておく。本実施形態では、各パラメータの劣化割合を記録することとしているが、ユーザーが理解しやすいように情報を加工するなどして、ユーザーに交換時期を通知するようにしてもよい。
【0073】
ステップS4においてコントローラー70は、燃料電池に要求される電力Pr[kW]に基づいて、たとえば図8のようなテーブルデーターを参照することによって暫定的な目標発電電流Ir_stk_tmp[A]を算出する。ここで、テーブルデーターは実験を通じて燃料電池スタック10の電流と電圧との関係を測定して設定する。そして、ステップS2で求めた燃料電池の容量CFCが大きく低下し始める周波数fcurの逆数を時定数τcur[sec]とし、その時定数τcurで、暫定的な目標発電電流Ir_stk_tmpに一次遅れフィルタ処理を実施する。さらに後述する伝達関数算出処理に使用する入力信号としてM系列信号を加えて、目標発電電流Ir_stk[A]を算出する。入力信号は、燃料電池内部状態推定パラメーター(電気二重層容量Cdl[F]、反応抵抗Ract[Ω]、アイオノマー抵抗Rion[Ω])を推定するために必要な周波数帯flow[Hz]〜fhigh[Hz]と振幅Aamp[A]を実験で調べておき、推定に必要な周波数帯flow[Hz]〜fhigh[Hz]の周波数成分が含まれる振幅Aamp[A]以上の信号を入力信号とする。
【0074】
ステップS5においてコントローラー70は、目標発電電流Ir_stkに基づいて、たとえば図9(A)のようなテーブルデーターを参照して、目標水素流量Qr_h2[L/min]を算出する。ここで、テーブルデーターは目標発電電流Ir_stkが大きいほど、目標水素流量Qr_h2が多くなる傾向である。値は、たとえば机上にて目標発電電流Ir_stkで消費される水素量を見積もり、実験で各単位セルへの配流ばらつきを調査し、配流ばらつきがあっても電流による消費で水素不足にならないように設定する。
【0075】
またコントローラー70は、たとえば図10(A)に示すテーブルに、アイオノマ抵抗Rionを適用して触媒層の相対湿度acat_ion[%]を推定する。また図10(B)に示すテーブルに、電気二重層容量Cdlを適用して触媒層の相対湿度acat_dl[%]を推定する。そして両者の平均値acat[%](=(acat_ion[%]+acat_dl[%])/2)を算出し、このacat[%]に基づいて、たとえば図10(C)のようなテーブルデーターを参照して酸素利用率UO2[%]を算出する。ここで酸素利用率UO2[%]とは、供給する空気中の酸素に対して発電電流で消費する酸素の割合を示しており、テーブルデーターは、実験で燃料電池スタック10の各単位セルへの配流ばらつきや、空気流量及び触媒層の湿潤状態の関係を調査し、配流ばらつきがあっても電流による消費で酸素不足にならないような値で、かつ、触媒層の相対湿度acat[%]が大きいほど目標空気流量Qr_air[L/min]が多くなるようにして触媒層の湿潤常態が調整されるような値を設定する。
【0076】
そしてコントローラー70は、目標発電電流Ir_stkに基づいて、たとえば図9(B)のようなテーブルデーターを参照して発電に必要な空気流量Qn_air[L/min]を算出し、酸素利用率UO2[%]/100で除算し、燃料電池スタック10の各単位セルへ配流可能な最低流量Qair_base[L/min]を加えて目標空気流量Qr_air[L/min](=Qn_air[L/min]/ UO2[%]/100+Qair_base[L/min])を算出する。ここでテーブルデーターは目標発電電流Ir_stk[A]が大きいほど、発電に必要な目標空気流量Qn_air[L/min]が多くなる傾向である。値は机上にて電流で消費される酸素量と大気中の酸素成分比率から必要な空気流量とを見積もって設定する。
【0077】
またコントローラー70は、目標発電電流Ir_stkに基づいて、たとえば図9(C)のようなテーブルデーターを参照して目標水素圧力Pr_h2[kPa]を算出する。ここで、テーブルデーターは目標発電電流Ir_stk[A]が大きいほど、目標水素圧力Pr_h2[kPa]が高くなる傾向である。値はテーブルデーターは机上および実験結果から圧力上昇による燃料電池の発電効率向上による効果と圧力を上昇させることで増えるコンプレッサー31などの補機類の消費電力増加による損失を考慮して最も効率よく発電できるように設定する。
【0078】
またコントローラー70は、目標発電電流Ir_stk[A]に基づいて、たとえば図9(D)のようなテーブルデーターを参照して目標空気圧力Pr_air[kPa]を算出する。ここで本実施形態では図9(D)のテーブルデーターは目標水素圧力Pr_h2[kPa]を算出するときに使用した図9(C)のテーブルデーターと同じである。
【0079】
ステップS6においてコントローラー70は、目標発電電流Ir_stk[A]となるようなデューティー比を計算し、そのデューティー比に基づいて、DC/DCコンバータ14を駆動させるための駆動信号を出力する。
【0080】
またコントローラー70は、目標水素流量Qr_h2[L/min]に基づいて、たとえば図11(A)のようなテーブルを用いることで水素循環ポンプ目標回転数Rr_hrp[rpm]を算出する。ここで、テーブルデーターは目標水素流量Qr_h2[L/min]が多いほど水素循環ポンプ目標回転数Rr_hrp[rpm]が大きくなる。値は、たとえば実機を用いた実験によって水素流量と水素循環ポンプ回転数との関係を取得して定めればよい。そしてコントローラー70は、水素循環ポンプ目標回転数Rr_hrp[rpm]となるようなデューティー比を計算し、そのデューティー比に基づいて、水素循環ポンプ11を駆動させるための駆動信号を出力する。
【0081】
さらにコントローラー70は、目標空気流量Qr_air[L/min]に基づいて、たとえば図11(B)のようなテーブルを用いることでコンプレッサー目標回転数Rr_cmp[rpm]を算出する。ここで、テーブルデーターは目標空気流量Qr_air[L/min]が多いほどコンプレッサー目標回転数Rr_cmp [rpm]が大きくなる。値は、たとえば実機を用いた実験によって空気流量とコンプレッサー回転数との関係を取得して定めればよい。そしてコントローラー70は、コンプレッサー目標回転数Rr_cmp[rpm]となるようなデューティー比を計算し、そのデューティー比に基づいて、コンプレッサー31を駆動させるための駆動信号を出力する。
【0082】
さらにまたコントローラー70は、目標空気圧力Pr_air[kPa]と燃料電池入口の空気圧力Pair[kPa]に基づいて、燃料電池入口の空気圧力Pair[kPa]が目標空気圧力Pr_air[kPa]となるように、PIコントローラーを用いてフィードバック制御し、PIコントローラーの出力を空気調圧弁目標開度Dr_acv[deg]として算出する。そしてコントローラー70は、空気調圧弁目標開度Dr_acv[deg]となるようなデューティー比を計算し、そのデューティー比に基づいて、空気調圧弁34を駆動させるための駆動信号を出力する。
【0083】
またコントローラー70は、目標水素圧力Pr_h2[kPa]と燃料電池入口の水素圧力Ph2[kPa]とに基づいて、燃料電池入口の水素圧力Ph2[kPa]が目標水素圧力Pr_h2[kPa]となるように、PIコントローラーを用いてフィードバック制御し、PIコントローラーの出力を水素調圧弁目標開度Dr_hcv[deg]として算出する。そしてコントローラー70は、水素調圧弁目標開度Dr_hcv[deg]となるようなデューティー比を計算し、そのデューティー比に基づいて、水素調圧弁22を駆動させるための駆動信号を出力する。
【0084】
図12は、内部状態推定パラメーターを算出するサブルーチンのフローチャートである。
【0085】
ステップS21においてコントローラー70は、燃料電池の電流値及び電圧値の過去の値を配列Istk_buf(i)(i=1〜N:N個の要素を持つ配列)に順次格納する。具体的には以下である。すなわち、図13(A−1)に示した初期状態では、Istk_buf(1)にI(1)が格納されている。以下順次Istk_buf(i)にI(i)が格納されている。
【0086】
そして新たな電流Istkが加わったら、図13(A−2)に示すように、Istk_buf(1)の値を捨ててIstk_buf(2)の値(すなわちI(2))を上書きする。次にIstk_buf(2)にIstk_buf(3)の値(すなわちI(3))を上書きする。以下順次Istk_buf(i)にIstk_buf(i+1)の値を上書きする。そしてIstk_buf(N)にはIstkを上書きする。そしてIstk_buf(1)の値をΔIとする。
【0087】
そして図13(A−3)に示すように、配列Istk_buf(i)の各要素からΔIを差し引いた値をそれぞれ配列ΔIstk_buf(i)に格納する。
【0088】
同様に、図13(B−1)に示した初期状態では、Vstk_buf(1)にV(1)が格納されている。以下順次Vstk_buf(i)にV(i)が格納されている。そして新たな電圧Vstkが加わったら、図13(B−2)に示すように、Vstk_buf(1)の値を捨ててIstk_buf(2)の値(すなわちV(2))を上書きする。次にVstk_buf(2)にVstk_buf(3)の値(すなわちV(3))を上書きする。以下順次Vstk_buf(i)にVstk_buf(i+1)の値を上書きする。そしてVstk_buf(N)にはVstkを上書きする。そしてVstk_buf(1)の値をΔVとする。そして図13(B−3)に示すように、配列Vstk_buf(i)の各要素からΔVを差し引いた値をそれぞれ配列ΔVstk_buf(i)に格納する。
【0089】
なお配列要素数Nは、伝達関数を算出するために必要な燃料電池スタック10の電流及び電圧の時系列データーの長さを実験で調べて設定する。たとえば、様々な運転条件下で燃料電池を運転し、アイオノマー抵抗Rion[Ω]を推定する場合よりも比較的低周波数のデーターを必要とする反応抵抗Ract[Ω]又は電気二重層容量Cdl[F]の推定に必要な時系列データーの長さを調べて設定すればよい。
【0090】
ステップS22においてコントローラー70は、電流値及び電圧値の変動が許容値よりも小であるか否かを判定する。具体的には、まず電流の履歴を格納した配列ΔIstk_buf(i)(i=1〜N)の最も古い値ΔIstk_buf(1)と2番目に古い値ΔIstk_buf(2)を用いて次式(8)によって電流の微分値dI/dtを求める。
【0091】
【数8】

【0092】
同様に、電圧降下の履歴を格納した配列ΔVstk_buf(i)(i=1〜N)の最も古い値ΔVstk_buf(1)と2番目に古い値ΔVstk_buf(2)を用いて、次式(9)によって電圧の微分値dV/dtを求める。
【0093】
【数9】

【0094】
そして、電流の微分値dI/dtが許容値ΔIarよりも小さく、かつ、電圧の微分値dV/dtが許容値ΔVarよりも小さければ、コントローラー70は処理を抜け、そうでなければコントローラー70はステップS23へ処理を移行する。ここで、許容値ΔIarおよびΔVarは、実験で実際に燃料電池内部状態推定パラメーターを推定し、正常に推定可能な許容値を確認して設定する。
【0095】
ステップS23においてコントローラー70は、燃料電池容量を算出する。具体的な内容は後述する。
【0096】
ステップS24においてコントローラー70は、燃料電池容量に基づいて内部状態パラメーターを算出する。具体的な内容は後述する。
【0097】
ステップS25においてコントローラー70は、従来手法によって内部状態パラメーター参照値を算出する。具体的には、伝達関数Gの実部Greと虚部Gimに基づいて、図14のようなナイキスト線図を利用して次式によって、電気二重層容量参照値Cdl_ref[F]、反応抵抗参照値Ract_ref[Ω]、アイオノマー抵抗参照値Rion_ref[Ω]を算出する。
【0098】
【数10】

【0099】
ステップS26においてコントローラー70は、ステップS24にて燃料電池の容量から算出した電気二重層容量Cdlが確からしいか否かを検証する。具体的にはステップS24にて燃料電池の容量から算出した電気二重層容量Cdlと従来技術を用いて算出した電気二重層容量参照値Cdl_refとの比が許容範囲内にあれば確からしいと判定する。またステップS24にて燃料電池の容量から算出した反応抵抗Ractと従来技術を用いて算出した反応抵抗参照値Ract_refとの比が許容範囲内にあれば確からしいと判定する。さらにステップS24にて燃料電池の容量から算出したアイオノマー抵抗Rionと従来技術を用いて算出したアイオノマー抵抗参照値Rion_refとの比が許容範囲内にあれば確からしいと判定する。電気二重層容量Cdl、反応抵抗Ract及びアイオノマー抵抗Rionのすべてが確からしければ、コントローラー70は、ステップS28に処理を移行する。いずれか1つでも確からしくなければ、コントローラー70は、ステップS27に処理を移行する。
【0100】
ステップS27においてコントローラー70は、内部状態パラメーターを前回値のまま維持しておく。内部状態パラメーターの初期値には標準的な燃料電池の運転状態における標準的な値が格納されている。
【0101】
ステップS28においてコントローラー70は、内部状態パラメーターを、今回ステップS24で算出した値(電気二重層容量Cdl、反応抵抗Ract、アイオノマー抵抗Rion、燃料電池の容量CFCが大きく低下し始める周波数fcur)で更新する。
【0102】
図15は、燃料電池容量を算出するサブルーチンのフローチャートである。
【0103】
ステップS231においてコントローラー70は、推定に必要な周波数帯flow[Hz]〜fhigh[Hz]の範囲内で、以降の処理で伝達関数を算出する周波数をあらかじめ複数点選定する。そして図16のような配列fcal(k)(k=1〜M)に格納しておく。ループ変数kを1とする。ここで伝達関数を算出する周波数fcal(k)(k=1〜M)は周波数帯flow[Hz]〜fhigh[Hz]の範囲で燃料電池内部状態推定パラメーターを推定するために必要な周波数特性が得られるように実験で確認して選定する。
【0104】
ステップS232においてコントローラー70は、伝達関数を算出する周波数fcal(k)をセットする。なお周波数fcal(k)の初期値は周波数fcal(1)であり、fcal(2)、fcal(3)、・・・と順次更新される。そして角周波数ω(=2π×fcal(k))[Hz]を算出する。
【0105】
ステップS233においてコントローラー70は、ステップS232でセットした周波数での伝達関数Gの虚部Gim(k)を次式(11)に基づいて算出する。
【0106】
【数11】

【0107】
なお減衰係数αは任意に選べる。固定値を用いてもよいし、状況に応じて異なる値を用いてもよい。ただし減衰係数αが大きいほど、伝達関数を算出するために必要な時系列データーが少なくてよい代わりに伝達関数を算出した結果に誤差が多く含まれる。そこで、そのようなトレードオフを実験等で確認して減衰係数αを決めておく。
【0108】
ステップS234においてコントローラー70は、ステップS233で算出した伝達関数に基づいて燃料電池容量CFCを次式に基づいて算出し、図17に示すように順次配列に格納する。
【0109】
【数12】

【0110】
ステップS235においてコントローラー70は、全周波数での燃料電池容量CFCの算出が完了するまではステップS232へ処理を戻し、完了したら処理を抜ける。
【0111】
図18は、燃料電池容量に基づいて内部状態パラメーターを算出するサブルーチンのフローチャートである。
【0112】
ステップS241においてコントローラー70は、電気二重層容量Cdl[F]を求める。具体的には、角周波数ωcal(k)=2πfcal(k)(k=1〜M)の2乗の逆数を横軸、燃料電池容量CFC(k)(k=1〜M)を縦軸にとり、図19のように近似直線の切片を電気二重層容量Cdlと読み取る。
【0113】
ステップS242においてコントローラー70は、反応抵抗Ract[Ω]を求める。具体的には、電気二重層容量Cdlと、図19の近似直線の傾きmと、に基づいて次式によって反応抵抗Ractを算出する。
【0114】
【数13】

【0115】
ステップS243においてコントローラー70は、アイオノマー抵抗Rion[Ω]を求める。具体的には、図20のように周波数を横軸、燃料電池容量を縦軸にとって、燃料電池容量CFCが大きく低下し始める周波数fcurを求める。本実施形態では、図20に示すように、低周波数側から外挿した直線と高周波数側から外挿した直線とが交わる周波数を、周波数fcurとしている。そして次式(14)に基づいてアイオノマー抵抗Rion[Ω]を算出する。
【0116】
【数14】

【0117】
従来のナイキスト線図を用いて燃料電池を分析する方法は、伝達関数の実部と虚部の両方の情報から描かれるナイキスト線図と、想定した等価回路と、の整合を取る計算が煩雑であった。そのため推定に多くの計算が必要となり、計算負荷が高くなる可能性があった。しかしながら本実施形態によれば、伝達関数の虚部の情報のみから算出できる燃料電池の容量に基づいて、燃料電池の状態を推定するようにしたので、計算負荷を高めることなく容易に推定することができるようになった。燃料電池の状態を推定できれば、内部状態に応じて燃料電池を最適に運転でき、また燃料電池の交換時期の基準にすることができるのである。
【0118】
以上説明した実施形態に限定されることなく、その技術的思想の範囲内において種々の変形や変更が可能であり、それらも本発明の技術的範囲に含まれることが明白である。
【0119】
たとえば、上記実施形態においては、発電電流を制御して入力信号を生成しているが、燃料電池スタック10の電圧を制御して入力信号を生成し、発電電流の応答から同様に伝達関数算出手段で燃料電池スタック10の伝達関数を算出してもよい。
【0120】
また入力信号は、推定に必要な周波数帯域flow[Hz]〜fhigh[Hz]が含まれていて振幅がAamp[A]以上であれば、入力信号としてステップ的な信号やM系列信号、複数の正弦波の合成信号等、どのような形態の信号を用いてもよい。ただし、振幅が大きくなると暫定的な目標発電電流Ir_stk_tmp[A]と目標発電電流Ir_stk[A]との乖離が大きくなることで要求された電力Pr[kW]と燃料電池の出力との乖離が大きくなってしまう可能性があり、燃料電池の電流と電圧の関係が線形で近似できず非線形となるため燃料電池内部状態推定パラメーターの推定が正しくできない可能性もあるので、燃料電池内部状態推定パラメーターの推定で必要な振幅Aamp[A]を超える振幅は入力信号として使わないことが望ましい。
【0121】
またステップS4においては、時定数τcurで、暫定的な目標発電電流Ir_stk_tmpに一次遅れフィルタ処理を実施したが、触媒層の電解質膜から遠い反応サイトが有効に使われなくなるfcur以上の高周波数領域の燃料電池スタック10の発電電流を抑制し、燃料電池スタック10の出力が低下しないようにできるならば、一次遅れフィルタ処理である必要はないため、一次遅れフィルタ処理に代えて、二次遅れフィルタ処理やその他の遅れ要素を持つフィルタ処理を実施してもよい。
【0122】
さらに暫定的な目標発電電流Ir_stk_tmp[A]が推定に必要な周波数帯flow[Hz]〜fhigh[Hz]を含んでいて振幅がAamp[A]以上であって、かつ、τcur[sec]を時定数とする一次遅れフィルタ処理を実施しない場合には、新たに入力信号を加える必要がない。そこでこのような場合は、暫定的な目標発電電流Ir_stk_tmp[A]が入力信号であり、かつ、目標発電電流Ir_stk[A]でもある信号として扱ってもよい。
【0123】
また本実施形態では、ステップS5において、アイオノマ抵抗から推定した触媒層の相対湿度acat_ion[%]と、電気二重層容量から推定した触媒層の相対湿度acat_dl[%]と、の平均値から触媒層の相対湿度acat[%]を算出した。しかしながら簡易的には、アイオノマ抵抗Rion[Ω]と触媒層の相対湿度の関係、または電気二重層容量Cdl[F]と触媒層の相対湿度の関係の少なくともいずれか一方から触媒層の相対湿度acat[%]が推定してもよい。また触媒層の相対湿度acat[%]に基づいて、酸素利用率UO2を変化させることで、目標空気流量Qr_airを算出しているが、触媒層の湿潤状態を変化させられる方法であれば、空気流量で湿潤状態を管理する必要はない。そこでこのような場合には、空気流量の調整によって湿潤状態を管理するのではなく、水素流量、水素圧力、空気圧力、燃料電池の運転温度等の調整によって湿潤状態を管理したり、その他の方法によって湿潤状態を管理したり、あるいは複数の方法を組み合わせて湿潤状態を管理してもよい。
【0124】
また本実施形態では、ステップS23においては、微分値dI/dt及びdV/dtに基づいて電流Istkおよび電圧Vstkの単位時間あたりの変動の大きさを判断して条件分岐を判定した。しかしながら電流Istkおよび電圧Vstkの単位時間あたりの変動の大きさが判断できる値であれば、他の値を用いてもよく、たとえば、代わりに分散を算出して同様の条件分岐の判断をしてもよい。
【0125】
また本実施形態では、ステップS243においては、低周波数側から外挿した直線と高周波数側から外挿した直線が交わる周波数をfcur[Hz]としているが、低周波数側から外挿した直線から高周波数側の特性が乖離する周波数fcur[Hz]が抽出できれば他の方法でもよい。
【符号の説明】
【0126】
10 燃料電池スタック
11 電流センサー
12 電圧センサー
ステップS1 電流検出部、電圧検出部
ステップS233 伝達関数算出部
ステップS234 燃料電池容量算出部
ステップS24 パラメーター算出部

【特許請求の範囲】
【請求項1】
燃料電池の電流を検出する電流検出部と、
燃料電池の電圧を検出する電圧検出部と、
周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出部と、
前記伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出部と、
前記燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出部と、
を備える燃料電池の内部状態推定装置。
【請求項2】
前記パラメーター算出部は、横軸が周波数、縦軸が燃料電池容量のグラフに、前記燃料電池容量を周波数ごとにプロットした場合の近似直線の切片を、燃料電池の電気二重層容量として算出する、
ことを特徴とする請求項1に記載の燃料電池の内部状態推定装置。
【請求項3】
前記パラメーター算出部は、横軸が周波数、縦軸が燃料電池容量のグラフに、前記燃料電池容量を周波数ごとにプロットした場合の近似直線の傾き、及び前記電気二重層容量に基づいて、燃料電池の反応抵抗を算出する、
ことを特徴とする請求項2に記載の燃料電池の内部状態推定装置。
【請求項4】
前記パラメーター算出部は、横軸が周波数、縦軸が燃料電池容量のグラフに、前記燃料電池容量を周波数ごとにプロットした場合の2本の近似直線の交点、及び前記電気二重層容量に基づいて、燃料電池のアイオノマー抵抗を算出する、
ことを特徴とする請求項2又は請求項3に記載の燃料電池の内部状態推定装置。
【請求項5】
前記パラメーター算出部は、前記燃料電池容量に基づいて算出した内部状態推定パラメーターが、参照値からの許容範囲を超えて乖離するときには、その内部状態推定パラメーターが誤りであると判定する、
ことを特徴とする請求項1から請求項4までのいずれか1項に記載の燃料電池の内部状態推定装置。
【請求項6】
燃料電池の電流を検出する電流検出工程と、
燃料電池の電圧を検出する電圧検出工程と、
周波数を変えて電流又は電圧を入力したときの応答に基づいて周波数ごとの燃料電池の伝達関数を算出する伝達関数算出工程と、
前記伝達関数に基づいて燃料電池容量を算出する燃料電池容量算出工程と、
前記燃料電池容量に基づいて、燃料電池の内部状態を推定するパラメーターを算出するパラメーター算出工程と、
を備える燃料電池の内部状態推定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate