秋月ファンクラブ掲示板

No.3613へ返信

記事投稿フォーム
補助
送信

inara1(2018/01/12 Fri 06:22) [ 編集 ] [ 返信 ]

Re: Excel VBAで太陽電池の電流−電圧特性を計算する方法

今回作成したVBAコードを以下に添付します。電流を引数として電圧を求めるユーザ関数です。Iphは光電流[A]、Rpは並列抵抗[Ω]、Rsは直列抵抗[Ω]、I0はダイオードの飽和電流[pA]、Vtは熱電圧[mV]、Iは出力電流[A]です。I0とVtの単位に注意してください。

Function V(Iph, Rp, Rs, I0, Vt, I)
If Iph < 0 Or Rp < 0 Or Rs < 0 Or I0 < 0 Or Vt < 0 Or I < 0 Or I >= Iph Then
V = 0
Exit Function
End If
Dim eps As Single, a As Single, x As Single, x0 As Single, x1 As Single

eps = 1 / 10 ^ 6 ' --- 相対計算精度
I0 = I0 / 10 ^ 12 ' --- I0の単位をpAからAに変換
Vt = Vt / 1000 ' --- Vtの単位をmVからVに変換
x0 = 0
x1 = Vt * Log(1 + Iph / I0) ' --- V の値を x0 から x1 の範囲で探す

While Abs((x0 - x1) / (x0 + x1)) > eps
x = (x0 + x1) / 2
a = (x + I * Rs) / Vt
If a > 700 Then a = 700 ' --- exp 計算のオーバフロー防止
If Iph - (x + I * Rs) / Rp - I - I0 * (Exp(a) - 1) > 0 Then
x0 = x
Else
x1 = x
End If
Wend
V = x
End Function