• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:太陽電池 温度特性)

太陽電池の温度特性とシミュレーションの調整方法

このQ&Aのポイント
  • 太陽電池の温度特性について、計算による最大電力の変化を調べた結果、実験結果とシミュレーション結果が一致しなかった。
  • シミュレーション結果が理論どおりの値を示すためには、何か調整が必要なのか検討している。
  • プログラムの式やパラメータは確定しており、温度を変数として最大電力を求める計算を行っている。

質問者が選んだベストアンサー

  • ベストアンサー
  • inara1
  • ベストアンサー率78% (652/834)
回答No.3

>No2のpdfの温度依存の飽和電流の式でやると、おかしい数値がでてしまいました 確かにおかしいです。その式だと、T = T0 のとき、 exp の中が無限大になってしまいます(本当は0になるはず)。その式は、SPICEという回路シミュレータのダイオードモデルの式で、Web上によく出ているのですが、こちらで計算してみたところ確かに間違ってます(済みません)。以下の式が正しいです。    Iss=Is * pow((t1/t0),3) * exp(Eg*q*(t1-t0)/(N*k*t0*t1)); SPICEマニュアルのバージョン2G(http://www.eecg.toronto.edu/~martin/spice/part1.html)では正しい式になっています。 こちらで正しい式で計算したところ、N 値が大きいほど温度依存がなくなっていくようです。

qwewqwe
質問者

お礼

お礼遅くなりました。 結果の方うまく出力できました。 本当に助かりました。ありがとうございます。

その他の回答 (2)

  • inara1
  • ベストアンサー率78% (652/834)
回答No.2

飽和電流の式が間違ってました。正しい式はここ(http://ayumi.cava.jp/audio/spiceman.pdf)の8ページの一番下の IS(T1) = の式です。これは温度 T1 (K) での飽和電流 IS(T1) の式で、T0 が基準温度(普通は300K)です。XTI の値はpn接合ダイオードでは 3 になります。回答1の添付図は N = 1 として計算したものです。

qwewqwe
質問者

お礼

回答ありがとうございます はい私はqwe1232と同一人物です。 パスワードを忘れてしまい、再度作り直したため、違う名前での質問でした。 前回に引き続き本当に助かります。 Is自体も温度に依存していたんですね。 回答No1の(1)式ですると、思うように減少がみられたのですが、 No2のpdfの温度依存の飽和電流の式でやると、おかしい数値がでてしまいました。 以下の式で計算したのですが、 Iss=Is * pow((t1/t0),3) * exp((Eg*q*t0*t1)/(k*(t1-t0))); この式ではおかしいですか? Issがt1の飽和電流、Isがt0の基準の飽和電流で、XTI=3,N=1としています。 式の理解を間違えて計算してしまっているようなら教えていただきたいです。

  • inara1
  • ベストアンサー率78% (652/834)
回答No.1

発電量の最大値が温度上昇と共に大きくなってしまうのは、飽和電流 Is の温度依存が考慮されていない(定数にしている)からです。 直列抵抗や並列抵抗のないダイオードの電流-電圧特性は    I = Is*{ exp( V/nVt ) - 1 ) で表わされますが、Is を定数としてしまうと、一定の電圧を印加したときの電流は、高温ほど減ることになります。しかし、現実には逆に増えます。なぜなら、exp( V/nVt ) の変化よりも、Is の温度依存(温度が上がると大きくなる)のほうがはるかに大きいからです。 Is は定数でなく    Is = A*exp( -Eg/Vt ) --- (1) としてください。Eg は活性領域のバンドギャップエネルギー [eV]、Vt = k*T/q [V] です。Si の場合、Eg = 1.11 [eV] ですから、t = 25℃のときの飽和電流が Is = 100E-12 [A] なら、A = 5.79e8 [A] となります。実は A にも温度依存があるのですが、太陽電池が動作する温度範囲では、exp( -Eg/Vt ) の温度変化に比べて無視できるので A は定数としていいです。Eg にも温度依存がありますがこれも同じ理由で無視できます。 添付図は、Is に式(1)のような温度依存を持たせたときの、P-V特性とPamxの温度依存を計算したものです(パラメータはプログラムの中の値を使用)。Pmax は温度に対してリニアに減少しています。 プログラムのほうですが、関数 f の定義式が間違っています。 Is*(exp(((V+x*Rs)/nVt)-1)) だと、指数の中に -1 が入ってしまいます。正しくは、Is*(exp((V+x*Rs)/nVt)-1) です。Pmax を求める方法も良いとは言えません(V を 少しずつ増やして最大値を求める方法では時間がかかる割りに精度が出ません)。I*V が最大になるとき、I*V を V で偏微分したものが 0 となるので    ∂(I*V)/∂V = I + V*∂I/∂V = 0    → ∂I/∂V = -I/V が成り立ち、これに∂I/∂V を計算した結果を代入すると、添付図の式(2)が得られます。この式は V-I 特性を求めるときと同様、2分法で数値解を求められます。 ところで、qwewqweさん = qwe1232さんでしょうか。昨年6月に、ここ(http://okwave.jp/qa/q5958862.html)でお答えしたとき、回答3のVBAプログラムの変数の初期値(x0 = -2 * Iph、x1 = Iph )の選び方が同じだったので、それを流用したのかなと思いました。ちなみに、添付図の特性はExcelのマクロ(VBA)で計算したものです。