energy note

色々と勉強中なので備忘録として。

太陽電池でのMPPTの動作について考えてみる

energy-note.hatenablog.com
上記の構想から1年、いつになったら自宅のエネルギー自給率が上がるのか・・・
太陽電池からの充電の実験は少しづつ進めていたもののうまくいっておらず。
今回少しづつ進めていくためにも色々と整理していきたいと思います。

1.太陽電池の特性
太陽電池から充電もしくは電力を取り出す場合、きちんとその能力を発揮できていない場合があります。
また、太陽電池は日射量、温度、影、劣化、などで特性が大きく変化します。

これがIVカーブとかIV特性とか呼ばれるグラフで、横軸が電圧、縦軸が電流です。
電圧が0V時、つまり短絡したときの電流が「短絡電流Isc」と呼ばれる特性値で、電流が0A時、つまり開回路時の電圧を「開放電圧Voc」と呼ばれます。
太陽電池に負荷を接続して電流を取っていくと低電流時は何も接続しないときの電圧を比較的保てますが、ある点からはストンと落ちます。

これが太陽電池の等価回路です。電流源とダイオードと直列・並列抵抗から構成されています。
実際の太陽電池はこれが沢山直列接続されていて太陽電池モジュールを構成し、回路によっては並列になったりします。

(回路図中の値は実際の太陽電池を模擬した値ではなく、それっぽい値を入れてあるだけです!)
R11の抵抗値を変化させて負荷電流を変化させると、右図のようなグラフが得られます。青線がI-Vカーブ、オレンジ線がP-Vカーブです。
PVカーブからわかるように電力の頂点(最大点)が「最大電力点Pmax」と呼ばれます。太陽電池の取り出せる最大電力ですので、スペックに書いてあるワット数はこの値になります。

R11 [Ω] V [mV] A [mA] P [mW]
0.5 499.94 999.88 499.88
2 1999.16 999.58 1998.32
3 2997.39 999.13 2994.78
3.5 3464.96 989.99 3430.28
3.75 3627.14 967.24 3508.31
3.85 3673.07 954.04 3504.26
4 3727.08 931.77 3472.78
4.25 3790.98 892 3381.55
10 4060.77 406.08 1649.00
40 4144.31 103.61 429.39

※いくつか数値を省きました
このグラフだとおよそ3.5Wが最大で取り出せる電力になります。
しかし、1.2Vのニカド電池などを接続した場合、太陽電池の出力電圧もほぼ近い値に低下するため、グラフから読むと約1.2Wしか取り出せないことになります。



2.MPPT(Maximum power point tracking)動作について
光が十分に当たっている場合、出力電圧の70~80%が最大電力点付近([曲線因子][検索])になるため、簡易MPPT手法として70%固定というのもあるようです。
しかし温度や日射量、影や不具合でその最適値は変動しますし、先ほどのように直射日光に当てたら3.5W取り出せるはずが1.2Vの電池をつないだまでに1.2Wしか取れないということでは面白くありません。

そこで間に昇圧もしくは降圧のDCDCコンバータを入れて、太陽電池から最大の電力が取り出せるよう負荷に流す電流などを調整します。
太陽電池からの電流を制御して目的の電圧に持っていければ、取り出せるエネルギーを最大にできるという形です。

Solar → DCDC(MPPT) → 負荷(蓄電池?)
・・・んー。原理的にわかっていてもいまいちピンと来なかったので、実際にLTspiceでシミュレーションしてみました。

3.MPPT回路シミュレーション
※本回路は原理を理解するために簡易的に組んだもので、素子の値や型番などはある程度動く形で収めたため最適な状況ではありません
簡単な昇圧回路を組み、MOSFETのゲートにPWM信号を入れてみます。電圧源のFunctionsのPULSEで出力します。

負荷を抵抗にした場合、動作としては単純にPWMのデューティー比を上げていくと出力電圧が上昇するので、出力電力は増えていきます。太陽電池の最大電力付近で出力が低下していく形です。

Ton[ms] Vin [mV] Vout [V] Iout [mA] Pout [mW]
0.08 4.20 17.48 87.20 1524.256
0.1 4.13 20.88 104.23 2176.3224
0.12 4.00 23.88 119.55 2854.854
0.14 3.39 25.66 128.05 3285.763
0.15 3.26 24.98 124.80 3117.504

※Tperiod = 0.2ms R13=200Ω
もっと細かくデューティー比をいじると最大電力点がわかりそう&損失で低くなっている感じかと思います。

次に蓄電池などを接続した場合の挙動を模擬してみました。(おそらく電圧源で当たっていると思います・・・)
この場合もデューティー比が上がるにつれて充電電流も大きくなりますが、太陽電池側の電力値はピーク値を超えるとやはり低下していきます。

Ton [ms] Vin [V] Iin [mA] Pin [W] Iout [mA]
0.09 3.90 540 2.11 230
0.10 3.85 600 2.31 280
0.11 3.76 750 2.82 300
0.12 3.62 902 3.27 340
0.13 3.45 960 3.31 350
0.14 3.16 997 3.15 340
0.15 2.80 997 2.79 310

※Tperiod = 0.2ms

回路についてはある程度理解が出来てきた気がします・・・!この回路に入力側(太陽電池側)の電力値を読んで最大となる電力点を追従するアルゴリズムマイコンに搭載すればよい形となります!
最終的にはESP32で組みたいところですが、実験機はPICを考えています。負荷を接続する場合には定電流や定電圧制御を加える形でしょうか。
まずは12Vもしくは24V蓄電池に充電することを目指して回路を組んでみたいと思います。
微生物燃料電池や温度差発電、超小型風力発電でも使えるようにしたいと考えていて、太陽電池と違って応答速度や特性が全然違うのでMPPTのパラメータやアルゴリズムについて検証できるよう、実験機的な要素も含めて考えてみます。

<参考>
www.homemade-circuits.com
www.instructables.com
海外には同じ考えで作っている人が結構いるんですね・・・しかも使いたいESP32・・・
平地研究室技術メモ
DC/DCコンバータ回路設計ガイド(1/7) | 電源ICのトレックス・セミコンダクター(TOREX)