太陽電池の等価回路作ってシミュレーションしてみた。
最大電力点は本当に安定的に開放電圧の一定割合の所に居るのだろうかと。
机上計算なら、太陽用意しなくて良いので夜中でも出来る。
【結論】
開放電圧の0.8倍程度という簡単なアルゴリズムでイイ線いく。
回路は以下の通り
SolarShuntは以下のモデルを使ったが、結構いい加減なことしてますぜ。
.model SolorShunt D(Is=2.52n Rs=.001 N=15.0 Cjo=4000p M=.1 tt=20u Iave=2 Vpk=75 mfg=sunny EG=1.1)
電力と電圧の特性。短絡電流を20mAから360mAまで変化させてます。ここから、開放電圧、最大電力点の電圧を読み取ります。
次に、開放電圧と最大電力点電圧の関係。
最後に確認したかった、最大電力点電圧/開放電圧特性
発電量が小さい時に少々高いところに行くようだが、今回の太陽電池は2W程度なので、発電量が小さい所での発電量は期待してないから良いんじゃないかと思う次第。
マイコンのPWMを使った場合、PWMのDuty比を決めるレジスタにどんな値を放り込んだら良いのかを計算したのが次
まあ、とりあえず何とか出来そうな感じ。
ちなみに、0~レジスタ設定値の間でトランジスタON、レジスタ設定値~255の間でトランジスタOFFの動作です。レジスタ値128でDuty比0.5となります。
0-255へのカウントアップは4.8MHz予定(スイッチングは約20kHz)。コイルは100uH予定。
太陽電池は温度が上がると開放電圧上昇するが、それでもV_MP=0.8V_OCが成り立ちそうです。
実際には温度変化がかなりあるのでジャンクション電圧が変動しますが、それもピーク電圧に反映されてるから大丈夫でしょう。
実際のプログラムでは、開放電圧に係数をかけた入力電圧になるようにデューティー比を可変するわけですけど、その係数が微妙です。
あまり係数が大きいと発振するかもです。
それから、出力電圧も監視して、満充電電圧に達したら、出力電圧一定に切り替える必要があります。
バッテリー電圧を監視するには、抵抗分圧してADに入力しますが、分圧回路が電流を消費するので、長期間充電されないと自己放電していきます。
まぁ、分圧抵抗の抵抗値を大きくしとけばいいんですけど、漏れ電流と誘電ノイズとの兼ね合いで決めれば良いかと。
折角なので、ローサイド側電流も計って、液晶に電圧、電流、電力の表示も欲しいですね。(^^;)