手動式 MPPT 充放電コントローラの自動化 構想編

 以前、ボリュームを使った 手動式 MPPT 充放電コントローラ の回路例を書きました。

必要なスキル

  • マイコンで電圧と電流とを検知すること
  • マイコン制御式の可変電圧スイッチング電源を作ること
  • 出力電圧をテキトーに可変させてみてパネルが音を上げないギリギリの地点を探るソフト作り
  • パネル側の電圧変化は日照 or 充電率の変化の結果だと見なし、ある程度変動したらギリギリ地点を探り直す処理
  • バッテリーの充電限界(最大電圧/最大電流)をわきまえた制御

 の各項を「できるだけ簡単に」実現させてみようと思います。
 いちお、プロトタイプなのでマイコンは使い慣れた(電気食いな点を無視で) mbed で作ってみます。


http://dl.ftrans.etr.jp/?c923c0ccdf8a4032957fb649fea4e60e7b81429b.png
※クリックすると等倍で見れます
追記(2012/06/07) この回路図は古いです、特に問題はありませんけど、実際に作り上げた回路図は 6/7 の記事 のとおりです。


 「おいおい、こばさんが、こんな部品数の回路かけるはずがないんじゃね?」って思われるかもしれませんが、ぶっちゃけ、秋月DCDCコンバーター電流センサACS712×2 で出来ているだけと言って過言じゃありません。
 以前の回路図 では HRD12003E という DCDCコンバータを使ってましたが、最大 5.5A まで出せる NJM2367 にしたため、部品点数が増えたようにみえているだけです。


http://dl.ftrans.etr.jp/?5ff34267781442ea80c6c2d4defa9b1cb07e78e8.png


 この手の回路で(私のようなヘタレが)最も頭を悩ませるのは、電流センスと電圧の可変方法の2点だと思います。


 電流センスは低Ω抵抗(シャント抵抗)を入れて電圧差を調べるのが手軽なのですが、手軽にローサイドセンスで実現しようとマイコンのGNDをどこにするのかで迷います。
 充電電流のみならず放電電流も把握してみようと思うと、負電流(負電圧)を扱う必要性も出てきます。
 そして何よりも、ローサイドセンスだとGND点を共通に出来なくなります。


 「最初から最後までGND電位が共通」というハイサイドセンスの「美しさ」を求めてみようと、 ACS712 という専用モジュール を使ってみました。
 負電流も測れるので、バッテリーへの充電電流(正)はもちろんのとこ、バッテリーからの放電電流(負)も計測できます。


 電圧可変化は、真面目にマイコンで PWM やって、デューティ比(ONの時間とOFFの時間の比率)で所望の電圧になるよう MOSFET のゲートをカチカチやるのが定石だと思いますが、ヘタレらしく既存の DCDCコンバータ制御ICマイコンで制御する方式にしてみました。
 7.5AなDCDCコンバータ制御IC を使えば 7.5A まで出せますが、今回使った ACS712 が 最大5A なので・・・
(と言いつつ、いずれ使うだろうと ebay で 4ドルの20A 品 をポチっておきましたが)


 電圧可変は、NJM2367の場合は FB(1番)が 5V を維持するようコントローラICが頑張ってくれることを利用し、mbed の OpenDrain 出力機能を使って抵抗5本の並列組み合わせ(32通り)を GND に引っ張って、コントローラへのFB 分圧比を変動させます。

 この組み合わせで得られる合成抵抗値( NJM2367のマニュアルにおけるR1 )は約3.8kΩ〜4.7kΩの範囲内となり、12〜15V の範囲内を概ね満遍なく電圧指定できるはずです。


 VCOMP(5番)を GND に引っ張ると DCDC 動作を中断することが出きるようなのでマイコンに繋げておきます。


 ACS712 は電源電圧の1/2をゼロアンペアとし、0.185V/A で正負に電圧が可変するのですが、「電源電圧の1/2」が基準なので、電源電圧の精度が重要です。
 2.6V と検出されたとき、電源電圧が 5.0V であれば 0.54A のはずなのですが、電源電圧が 5.1V だったら 0.27A と、半分の電流値だったことになります。
 電源電圧のたった 0.1V 違いで、こんだけ大きく狂ってしまいます。


 このため古典的な三端子レギャレータを使って出来るだけキレイな 5.0V を作って給電させるとともに、DCDC を停止(コンバータがスリープ時に消費する36μAは無視)させたときにパネル側 AC712 が出力している電圧をゼロアンペアとして自己補正する予定のため、マイコンで DCDC の ON/OFF 制御を行います。


 また、VCOMP から DCDC の挙動を止めた状態で、前述の32通りの抵抗の組み合わせを総当たりで行ってみて、組み合わせごとの FB 地点の電圧変化を記録します。
 12→15V の方向へ順序よく昇圧するよう、マイコンの中で組み合わせの並べ替えを行う予定です。


 バッテリーの過充電防止のため、充電電流を観察する必要がありますが、バッテリーに近い側の ACS712 の挿入位置から推測できるとおり、外部機器の消費電力は無視して、純粋に「バッテリーに流れ込む電流」と「バッテリーから出て行く電流」を測るようにしてあります。
 バッテリー電圧が既定の閾値を下回ったとき(過放電防止)のほか、バッテリーの放電電流が一定の値を超えたとき(急速放電防止)に、マイコンから負荷を遮断させる予定でいます。


追記(2012/06/07)
 今回の構想をベースに実際に製作してみました。