Top Page Index About Link Mail Form このページの応用機器製作します
システム使用中

太陽電池充電システムの製作・実験

2013.7.31 



太陽電池でスマホを充電

 昔々20年くらいも昔、部屋に設置した太陽電池で常時 6Vの鉛蓄電池を充電し、その電池で秋月のニッカド電池いたわり充電キットを動かしてニッカド電池を充電、HP100LXを使っていたことがあります。今回はこれを現代的な部品で構成してみました。

 コンセプトはこんな感じ。

システム図

 というわけで最終的なシステム構成は上記の通り。太陽電池は南側と東側の2ヶ所に設置してあります。設置と言っても部屋の都合上、サッシの内側に置いているだけです。コードを外に引き出したりしなくてよくて簡単な反面、光がガラスを通りますし、周囲からの光の入射が無くなる分、効率はガタッと落ちます。

 当初は南側だけでやっていましたが、やはり容量不足が否めなかったので東側にも設置しました。東側に至ってはガラスにほぼ密着状態で垂直に置いています。ただ、方角が東南東なので朝の高度の低い太陽を捉えやすくなっています。

 で、太陽電池の写真がありませんが、非常に撮りにくい角度になっているのと、東側は窓がクーラーのせいで開きにくく、裏側しか撮れないので。裏側はダンボールなのでみっともない。悪しからず。

基板アートワーク

 →基板回路図(PDF)

旧基板と電池  最初に作った基板とニッケル水素電池です。当初は 6V 4Ah程度の鉛蓄電池を使おうかと思いましたが、同容量くらいのニッケル水素電池が秋月にありましたのでそれを使うことにしました。これで格段に軽くなりました。ケース込み重量約 660g。

 最初に作った基板は PWM制御じゃなくて数秒程度の ON/OFF制御をするつもりでした。

旧基板で動作テスト中  旧基板で動作テスト中。当初は ON/OFF制御だけだったのですが、効率が悪かったので MPPT(っぽい)制御がしたくなり、改造してコイルとか追加して PWM制御してます。PWMもポート割り当てが不適当だったのでタイマー割り込みで GPIO ON/OFFしてたりします。

ケースに納めた  ひととおり動作するようになったのでケースに入れました。こうなるとかっこいい。

 ちなみに下にあるのは学生時代に作った可変安定化電源。目線の高さに近くしないと液晶が見づらいので台代わりにしてます。

充電中  PHS充電中。手前にある白いのは USBでエネループ単三・単四電池を充電する充電機。

新基板  PWM回路と電池の充放電電流測定回路を追加した新基板を搭載。爆弾ではない。

スマホ充電中  スマホ充電中。液晶表示内容は左上から
太陽電池電圧(V) ニッケル水素電池電流(マイナスなので放電)mA ニッケル水素電池電圧(V)
推測電池残容量(%) USBコネクタ1電流(mA) USBコネクタ2電流(mA)

 コネクタのささっていない USB1の電流が 1mAになっていますが、1mA程度は誤差ですので。ちなみに電流測定回路のオペアンプのオフセットは MCUで補正計算しています。

 自己消費電流は +5V ON(液晶ON)状態で約32mA、OFFで約2mAです。USB電流が一定値以下でボタン操作も無い場合は 30秒で液晶OFF状態になります。

MPPT(最大電力点追跡アルゴリズム)っぽい制御

 太陽電池は同じ光環境であっても出力電圧・電流が変わると効率が変化します。一般的にその環境においての開放電圧の 70〜80%くらいが最適のようですが、パネルや動作環境などでもその値は変わってきます。そのピーク値を積極的に追いかける制御方法を MPPTと言うようです。

 うちのシステムは最初はそこまでやるつもりは無かったのですが、やり始めるとそれに近いことをやりたくなりまして。

最適点の追跡方法  うちの場合は以下のような手順でやってます。

  1. 太陽電池出力の PWMデューティ比を 10%〜90%で変化させて電池の充電電流・電圧を観測
  2. 1でのピークを PWM設定値として 5秒程度ON(Ni-MH電池充電)
  3. 1秒の休止時間の後、2回目の充電。この際はフルスキャンせず、設定値とその前後の計3ヶ所だけを測定。ピークが移動したようであれば設定値を多少ずらす
  4. 以降、3ヶ所の測定だけでピークをゆっくり追いかける

 フルスキャンさせるとどうしても時間をとられてその間は充電がおろそかになります。うちの場合は Ni-MH電池の容量と比較して太陽電池の出力が小さい為か、この効率のカーブが大変ブロードでなだらかです。厳密に追いかけてもしかたがないのでこうしています。

Ni-MH電池の充電

 うちの場合は基本的に5秒ON、1秒OFF後に電池電圧を測って充電終了を判断します。充電終了近くなると ON/OFF時間を変えて過大に充電することを防ぎます。また、太陽電池は常に供給電力が変化しますので、常時過大な電圧にならないような監視もしています。

太陽電池で Ni-MH電池を充電するイメージ  それで問題なのが充電終了をどうやって判断するかです。充電中は電池電圧が上がっていきますが、止めると徐々に下がっていきます。これは回路の消費電力によるものもあるでしょうが、どうやら電池自身の電圧も下がっているようです。

 この充電状態をイメージしてみたのが左の図です。

 通常の充電機であれば充電状態が安定していて1秒程度の休止で電圧だけ見れば終了を判断できるのでしょうが、太陽電池で充電すると充電電流が不安定なので、電池の電圧も素直にはいきません。左の図で入り口の電荷が全て奥まで転がり落ちればどこまで充電したかが厳密にわかるのでしょうが、そういう状態になるには何十分〜何時間もかかるような感じです。

 ということは厳密な充電状態は明け方、充放電が無い時間が長時間継続した後の電池電圧で判断するしかなさそうです。その後は充放電電流を積算して推測すると。

 この場合でも充電電流がどのくらいの割合で電池に蓄えられるのかはわかりません。一応、0.1C(450mA)で 16時間とあるので、このくらいの電流だと 62.5%(10/16)としてもいいのかもしれませんが、電流や充電状態が変わるとこの数字も変化するのは想像できます。わからないことだらけ。

 なのでこのあたりは今現在も常に微調整中です。うちの場合は幸い(?) Ni-MH電池容量に比べて太陽電池出力が小さい(観測された最大充電電流は約400mAで 0.1C以下にすぎない)ので、多少過充電状態になっても電池がわずかに過熱するだけで済むのでその辺は気楽です。

 念のため書いておきますが、素人が自作の回路でリチウムイオン電池を充電しようとは思わないでください。ここで言う「素人/プロ」とは「電子回路の素人/プロ」ではありません。「リチウムイオン電池の素人/プロ」です。その意味ではわたしも素人です。例外としては信頼のおけるリチウムイオン電池専用充電ICでメーカー指定回路をそのまま再現する場合のみ。それでもハンダづけとかミスると容易に発火しますので相当慣れた人以外は避けましょう。

 ニッケル水素電池ならいいかというと、こちらでも自作回路での大容量・急速充電は避けた方がいいでしょう。うちのシステムは小電流でトリクル充電に近い状態なので。

ログ記録

 このシステムは microSDカードコネクタを内蔵していて起動中は充放電状態を常に記録しています。以下はある日のデータ。

2013/08/07 14:10:00 D:11897,6929,-2,0,0,30,2326
2013/08/07 14:10:10 D:11914,6929,+158,0,0,30,2327
2013/08/07 14:10:20 D:11914,6929,+158,0,0,30,2327
2013/08/07 14:10:30 D:11914,6929,-2,0,0,30,2327
2013/08/07 14:10:40 D:11914,6929,+158,0,0,30,2327
2013/08/07 14:10:50 D:11931,6929,+158,0,0,30,2327
2013/08/07 14:11:00 D:11914,6929,-2,0,0,30,2328
2013/08/07 14:11:10 D:11931,6929,+160,0,0,30,2328
2013/08/07 14:11:20 D:11931,6929,+160,0,0,30,2328
2013/08/07 14:11:30 D:11931,6929,-2,0,0,30,2328
2013/08/07 14:11:40 D:11931,6929,+160,0,0,30,2328
2013/08/07 14:11:50 D:11931,6929,+158,0,0,30,2328
2013/08/07 14:12:00 D:11931,6921,-2,0,0,30,2329
2013/08/07 14:12:10 D:11948,6929,+160,0,0,30,2329
- 略 -
2013/08/07 16:28:00 D:11593,6905,-2,0,0,29,2422
2013/08/07 16:28:10 D:11593,6905,+50,0,0,29,2422
2013/08/07 16:28:20 D:11576,6905,+50,0,0,29,2422
2013/08/07 16:28:30 D:11576,6905,-2,0,0,29,2422
2013/08/07 16:28:40 D:11610,6905,+52,0,0,28,2422
2013/08/07 16:28:50 D:11593,6913,+50,0,0,29,2422
2013/08/07 16:29:00 D:11593,6905,-2,0,0,28,2422
2013/08/07 16:29:10 D:11610,6905,+52,0,0,29,2422
2013/08/07 16:29:20 D:11610,6905,+52,0,0,28,2422

 内容は、日時、「D:」は測定データであることを示すマーク、太陽電池電圧(mV)、NiMH電池電圧(mV)、充放電電流(+が充電、-が放電)(mA)、USB1電流(mA)、USB2電流(mA)、気温(℃)、電池残容量計算値(mAh)。

 充放電電流が -2 になっているのはたまたま NiMH電池電圧測定の為に太陽電池の充電を切っている瞬間の値を記録した為。システムの自己消費電流が 2mAであることを示します。太陽電池電圧は開放時(未充電時)の値になります。

 NiMH電池電圧値をよく見ると、14時頃の値より 16時頃の値が下がっています。この間で USB充電などを行ったりしたわけではなく、この間も充電は継続しています。これは充電電流が小さくなった為、電池の端子電圧が低く観測されるようになったことを示します。これだけを見ても電池の電圧だけでは残容量を判断できないことがわかります。

 市販の充電機のように充電電流が安定ならば電圧による残容量推測も可能ですが、太陽電池で充電する場合は無理ですね。このシステムでは

  1. 起動時、あるいは、5時間以上充放電電流がわずかな状態が継続したら電圧から残容量を計算する
  2. その後は充放電電流を1秒ごとに累積して容量計算。充電効率を 62.5%とし、充電時の電流 x 0.625 を加算していく。放電時はそのまま減算

という計算をしています。これもまあ、目安程度ですけどね。62.5%というのは 0.1Cで充電する場合は場合は 16時間かかるということからの値です。電流が小さいともう少し効率が上がるような気がしますが。

 ただし、これは残容量の計算の場合です。充電している間は電圧が上がり過ぎたら止めなければなりません。


→Indexに戻る