太陽光発電 に UPS を華麗に組み合わせる (応用)

追記(2014/11/01)
 本記事ではオムロン BN150S という UPS を対象にしています。
 こいつの輻射ノイズ対策をしていたら、なんと、停電動作中(バッテリー運転中)は AC100V 側とバッテリー側とが絶縁されていないぽいことが判明しました。
 交換可能とは言えバッテリー内蔵で、かつ人の手で触れることを想定する必要がないので、バッテリー側との絶縁不要との判断なのでしょう。(記事はこちら


 よって、同一バッテリーを複数 UPS で共用する使い方は禁止です。
 どうしても複数 UPS したいときは、UPS のAC入力側に 100:100 のトランスを挟んで明示的に絶縁させて下さい。
 複数 UPS じゃない人も、できれば 100:100 のトランスを挟んだほうが安心です。


 「独立型太陽光発電インバーターの代わりとして UPS を活用する」に関しては 先日の記事 で概ね完成してはいますが、少々ペンディング(宿題)が残ってました。
 念のため再掲しときます。

  • 100W かけて UPS がバッテリー充電するのを阻止(緩和)する措置
  • バッテリーの電圧を検知して指令を出す放電コントローラ的なもの (& UPSを停電させるリレー)

 私が使ってる MPPT充電コントローラ にはバッテリー保護に必要な放電コントローラ的な目的の機能が実装されてはいますが、それはこれまで使ってた COTEK インバーターを経由して給電させる冷蔵庫などの系統で用いるつもり。
 今回の UPS 系統はパソコンなど電源条件がシビアなものへ給電する用途で使うつもりで、作動条件も別の電圧としたいと思いますので、充電コントローラとは無関係に、独立した放電コントローラ自体を新規に作ってしまうことにします。


UPS がバッテリー充電するのを阻止(緩和)する措置



 UPS の標準バッテリーを取り外して、その代わりに独立型太陽光発電で用いている大容量バッテリーを接続した状態とし、UPS を人為的に停電させることで、その間は太陽光発電由来のバッテリーから AC100V を給電させ、「停電」をやめれば、商用電力からの給電に切り替わる、というのが、おおまかな流れ。
 人為的に引き起こした停電をやめて商用電力に切り替えると、UPS 本来の「バッテリーへの充電」が機能してしまいます。


 「商用電力を使ってバッテリー充電」という UPS 本来の動作を阻止したい私みたいな人が対象となります。


http://dl.ftrans.etr.jp/?cf0f0a99c45843a8910c5511892b7c6c3bc57c60.jpg
 UPS の充電電圧もしくは充電電流もしくはその両方をデフォルトから大きく下げてしまえば充電は機能しないだろう、調整用の VR がきっとあるはずだから、それを回して充電しないようにしてしまえ〜 と真っ先に思い浮かびますね。
 トルクスドライバー(T10)で分解して充電回路を特定します。


 UC3845A というコントローラを用いて DC/DC やってるぽく、データシートのリファレンスに似た感じの構成になっているところまでは追えたものの、その基板には VR らしきお手軽調整ものは存在しません。
 半田面に多くのチップ抵抗が実装されており、そのどいつかの分圧比でフィードバックを定めているのか、マイコンからソフト的に指定するような風になっているのか、追いかけるのは非常に億劫。。。


 この手のはモチベーションの多寡に大きく依存しますが、今現在の心境としてはチップ抵抗を剥がしてまでしてリスクある改造を実行する気が起きません。


 ということで、「なんだよ、勿体ぶって、これはないだろ」とパソコンに向かって呟く方々の声が聞こえてきそうな代物をこれからお披露目することになります。甚だ恐縮ではありますが・・・


http://dl.ftrans.etr.jp/?b3819e61ef1346ad8d6e1eb17f145185d8ba448f.jpg


 ショットキーバリアダイオードで充電方向の電流を阻止するという、あまりに強引すぎる手段に出ることにしました。
 順方向電圧降下に伴う損失の件は、いずれ MOSFET を用いた理想ダイオード秋月RS) に置き換えることでクリアするとして、手持ち部品箱を探して出てきた MBR3045FCT で当面やり過ごすことに致します!


 こいつは2素子がパッケージングされていて合計で 30A という仕様でして、各素子に 15A ずつ流れることを期待して並列で使って良い類のものではないんですけど、2つの素子は熱結合しているはずなので並列に強いはず・・・ってことで(笑)
 48V×30A×85%≒1200W→余裕見て 1000W を超えない負荷に注意しないといけませんが・・・

 ダイオードは温度が上がると Vf が低下する特性がありますが、並列接続で使ったとき、何らかの拍子で特定のダイオードに電流が偏ると、そのダイオードが他に比べて過熱し Vf が小さくなり、Vf が小さくなったことで更に電流を誘い込んで、更に過熱し Vf が小さくなり・・・って風で、最終的には並列にしたつもりでも特定のダイオードに大部分の電流が流れる、っていう挙動になりがちです。

http://dl.ftrans.etr.jp/?e4f2bc332ee84836a2480cc568b92cb3c6ce8c3f.jpg http://dl.ftrans.etr.jp/?63f881fa0d9247949740f2a74b09c4314fd19298.jpg


 MBR3045FCT の逆耐圧は 45V なので、アノード(バッテリー)<カソード(UPS) の電位差が 45V を超えると破壊してしまうので、バッテリーの電圧が 充電電圧54V−逆耐圧45V=9V を下回らないようにしないといけません。
 アノード開放は問題ありませんし、12V4直バッテリーが 9V になることは実際の運用では考えにくいので、耐圧不足でダイオードが破壊に至る心配は皆無ですが、本来は 60V くらいの逆耐圧品を使うべきです・・・


(補足)
 実際に組んで試してみたところ、8A くらいの電流で十分に過熱したあと Vf:0.35V くらいでした。
 損失は 8A×0.35V=2.8W ということで、恐らくは放熱板なし時の限界付近かと思われ。
(実運用では放熱板を背負わせています)


 今のとこ判明してる弊害は、UPS のバッテリーチェック機能を作動させると、バッテリー異常と診断されてしまうくらいか。
 エラーランプが点くだけで実害はありませんが。


 UPS 裏のディップスイッチで自動診断を無効にしたうえで、前面パネルの手動スイッチを押さないよう注意を払っていればバッテリー異常を示すエラーランプの点滅は阻止することができます。
(この細工が UPS にバレてバッテリーエラーになったときは、ショットキーをバイパスする感じに接続し、バッテリーチェック手動スイッチを押して合格判定させたうえで、こっそりバイパスを外します)



 放電コントローラ的なもの



 ダイオード1つ挟んで偉そうに「充電阻止(キリッ」は恥ずかしすぎるので、放電コントローラの方はちゃんとしたもの作ります。


http://dl.ftrans.etr.jp/?f2f3ed06ee5e4637a90b22f7558bc9749f7f76d2.png
 拙作 簡単だけど、まじめに過放電防止 (ちゃんと温度補償) を改造したら作れそうな気がしてくるかもしれません。
 回路図を右に再掲しておきますが、12V 系であれば、あのまま(負荷をリレーにするだけで)作れてしまうものの、24V/48V 系は工夫しないと過電圧により M51958B が破壊します。


 検電ピンに過電圧が加わらないよう VR の上側に 300kΩ くらいの固定抵抗を挿入したり、M51958B 向けに 12V くらいを降圧生成したり・・・ってあたりはすぐに思い浮かぶと思いますけど、右側の部分が自身への電源供給を絶つ自殺回路であるが故、その M51958B 向け 12V 降圧電源は左右別々に作らないといけない・・・という風で、部品点数が増えてしまいます。
 24V からの降圧は、まだ簡単なので左右に降圧回路を作ってもいいかもしれませんが、48V 系(最大で60Vを想定)は三端子1個では落としにくいので別の方法を考えた方がいいでしょう。

  • バッテリー電圧が指定電圧 (仮に「起動電圧」と称する)以上になったら起動信号を出す
  • バッテリー電圧が指定電圧 (仮に「停止電圧」と称する)以下になったら停止信号を出す(起動信号を取り消す)
  • 起動電圧>停止電圧 とし、起動と停止が短時間に繰り返されない電位差とする


 このような要求を実現するにあたり、A/D コントローラを内蔵した AVR や PIC と言ったマイコンを使えば超簡単かつ自由度が高いやつが作れるものの、プログラムの書き込みの手間とか考えていくと敷居が上がりますし、そもそもマイコンを操れる方は既に作っちゃってると思うので、あえてマイコンレスな超シンプル構造を追求してみたいと思います。


http://dl.ftrans.etr.jp/?480abaadc2df44ffaf9706eb4b1c4a4eeb73a2b4.png


 上半分の LM317 と 7812 の付近の回路は 48〜60V 付近の電圧から力業で 12V を作ってる部分でして、特に目新しいものではありません。
 注目いただきたいのは下半分の核心部

 M51957B 1つ、Nch な MOSFET 1つ、抵抗4本(ゲート抵抗を含めて5本)

 なんと、たったのこれだけ。
 リレーの細かい接点のところを凝視して頂くと分かるとおり、普段は UPSへ商用電力が供給されている状態で、MOSFET が導通になると、リレーが動いて UPS を停電させるという目的の回路です。(b接点の手持ちがないのでc接点にて代用)
 作動状態が分かるように、UPS を停電にしている間に点くパイロットランプ(LED)も装着してみました。


http://dl.ftrans.etr.jp/?2a751fec47e0469f84c3a13c0522b62a23e5b9a6.jpg http://dl.ftrans.etr.jp/?5e669a2b4aa9401fa345a984ff0fec66b564c0b4.jpg


 気合いを入れると SOP 変換基板16ホールユニバーサル基板 の2枚に集積できます。
(写ってる段ボールは絶縁用です)


http://dl.ftrans.etr.jp/?6cc3e3c813834c76816cc166cc125019ed95453e.jpg http://dl.ftrans.etr.jp/?cafad747597446829f608298f091e7e22139c5b9.jpg


 今回も無計画に作ったので、電源部を含めた全体は、かなり微妙な感じ・・・
 いつも部品を狭い土地(基板)に密集させたがるのは、ウサギ小屋に住んでいるせいか!?


 リレーのほうは LY2DC48 という 2c リレーを用い、2回路分を並列で使って 20A 相当にしてます。
(AC100V単相2線の片相は常時接続とし、片相のみ切り替えてます)


 動作原理を簡単に説明いたします。
 M51957B は秋月などでリセットIC として売られていますが、実態としては 1.25V 基準電源内蔵のコンパレータです。
 IN ピンが 1.25V 未満のとき OUT が GND になり、1.25V 以上のとき OUT がオープン(どこにも繋がってない状態)になります。
 厳密には 0.01V ほどのヒステリシスが設けられているみたい(GND→オープンに変化するときの閾値は 1.26V で、オープン→GND に変化するきは 1.25V)だそうです。


<それぞれ回路図はクリックすると大きく見えます>
http://dl.ftrans.etr.jp/?d1fdbe669d8c4f61879588d18e1961f75307c790.png
 バッテリー電圧の上昇を待っている間は、M51957B の OUT ピンは GND になりますので、左のような回路と等価です。
 Nch MOSFET のゲートも GND で回路は「断」の状態。


 直感的に GND の位置に違和感を感じると思うので、見慣れた感じに書き換えます。
 そのまま左下の回路図をご覧下さい。


http://dl.ftrans.etr.jp/?afcd9e5ad1ae491aafbc9a514633f8e61fa76b94.png
 検電ピンへの分圧抵抗は、上が 51kΩ、下は 1200Ωと68kΩ との合成抵抗になるので 1/(1/1200Ω+1/68000Ω)≒1179Ω です。
 51kΩ と 1179Ω とで分圧された中点が 1.26V を越えると M51957B の挙動が変わりますが、その電圧は 1.26V×(1+51000Ω÷1179Ω)≒55.76V と求まるので、バッテリーの電圧が 55.76V 以下の間この状態を維持し、55.76V を越えたら、それまで GND と同じだった OUT ピンがオープンへの突然に変わりますので、等価回路も変化します。


http://dl.ftrans.etr.jp/?2ed77cd04a9c4912a79239b408f44380d64960f0.png
 M51957B がオープン、つまり内部的にどこにも繋がっていない状態になったので、こんな風な回路と等価な状態です。


 検電ピンへの分圧抵抗は、さきほどと条件が変わってきていて、上が 51kΩ と 270kΩ+68kΩ の合成抵抗で 1/(1/51000Ω+1/(270000Ω+68000Ω))≒44314Ω と求まり、起動状態に切り替わった瞬間 55.76V のとき、検電ピンの電圧は 55.76V÷(1+44314Ω÷1200Ω)≒1.47V という風。
 ついさっき 1.26V を越えて切り替わったばかりだというのに、一瞬でゲタを履かされて 1.47V にされた感じと言うべきか?


 そのとき MOSFET のゲート電圧は (55.76V−1.47V)÷(1+270000Ω÷68000Ω))+1.47V≒12.39V ですから、MOSFET のドレイン〜ソース間が導通になりますね。


 検電ピンが 1.25V を下回ると M51957B は低電圧と判定し動作が変わりますが、その電圧をバッテリー電圧に換算すると 1.25V×(1+44314Ω÷1200Ω)≒47.41V です。


 つまり、55.76V になったら起動(MOSFET を導通)させ、少々電圧降下しても起動状態を維持し、47.41V を下回ったら停止(MOSFET を断)、いったん停止状態になったら次の起動は 55.76V になるまで、という感じで、所望してた動作をしてくれるようになります。
 


 説明してみると原理は非常に簡単ですが、「じゃあ、24V 系の俺は、起動を 27V くらい、停止を 23V くらいにしてみたいんだけど・・・」っていう話が出てきますよね?
 R1〜R4 の抵抗にどれを選択したら、所望の動作をしてくれるようになるのか?


 上で説明した、停止中/起動中 の分圧抵抗の変化を織り込んで抵抗値を選定するのは当然として、

  • 抵抗は 秋月セット/E12/E24 等の既存に存在するものから選定しないといけない
  • M51957B の OUTピン には 18V を越える電圧を印可してはならない
  • Nch MOSFET のゲート耐圧も越えてはならない(20V が多いから M51957B の要件をクリアすれば概ね OK だが)
  • ゲート電圧は低すぎると「開かない」ので、起動中は少なくとも 2V はかけておきたい

 これら条件も併せて検討したうえで、R1〜R4 の定数を選定しないといけません。

off→on 電圧 Von=1.26×(1+R1÷1/(1/R2+1/R4)
on→off 電圧 Voff=1.25×(1+1/(1/R1+1/(R3+R4))÷R2)
最小ゲート電圧 Vgsmin=Voff×(1+R3÷(R2+R4))
Vgsmin=(Voff-1.25)÷(1+R3÷R4)+1.25
使用するMOSFETによるが ≧2.0Vは必須
最大検電電圧 Vcmax=Vmax×(1+1/(1/R1+1/(R3+R4))÷R2)
最大ゲート電圧 Vgsmax=Vmax×(1+R3÷(R2+R4))
Vgsmax=(Vmax-Vcmax)×(1+R3÷R4)+Vcmax
<18V(M51957Bの耐圧)

※Vmaxは想定最大バッテリー電圧


 こんな感じの条件を満たす R1〜R4 を求めます。
 抵抗の誤差が与える影響が大きいので、誤差1%な金属被膜を使うことを検討すべき。
 誤差5%な炭素被膜の場合は、テスターを使って「選別」しないと、計算値と大きくズレるので要注意です。


 私の数学力では正攻法で解を求めることができなかったので、秋月抵抗セットを使う前提で、総当たりで起動電圧/停止電圧/ゲート電圧を試算し、希望する条件の範囲に合致する組み合わせのみをリストアップし、そこから先は人間がテキトーに選択する、という手段に出ました。


 その時に使ったプログラムを置いといてもいいのですが、信用ならないプログラム(笑)を実行してしまうと警察に逮捕&自白させられかねない御時世なので、安全のため 需要のありそうな条件で抽出した結果を Excel ファイルで公開しておきます
 エクセルのフィルター機能を使って、更に条件を絞り込んで選定に活用してくださいませ。


追記(2014/08/05) 
 独立型太陽光発電の必須アイテム MPPT 充電器を予算1000円ほどで作ってみました。
 詳しくはこちらをどうぞ


追記(2014/11/01) 
 独立型太陽光発電 に UPS を華麗に組み合わせる(ノイズ対策) 前編 というエントリーで続きを書きました。


追記(2014/11/26) 
 後半に放電コントローラ的なもの(自動電源切替機というべきか、停電発生装置というべきか)を紹介してますが、AC100V を片相のみ切替えるとノイズ輻射の面で良くないことが分かりました。
 ノイズ対策の後編 で書きましたとおり、2相を両切りしたほうがいいです。


追記(2015/01/24)
 R1〜R4 の選定エクセルシートに一部間違いがあり、ファイルを差し替えさせていただきました。
 VGSminとVGSmaxの計算が間違えてました、申し訳ありません。


 当初の回路図では R3:100kΩ としてあって、私の運用環境もその状態なのですが、正しいゲート電圧を求めなおすと 17.14〜17.36V くらいと、絶対定格(18V)よりは下回ってるものの推奨範囲から逸脱しているため、回路例を 100kΩ→68kΩ に書き換えました。