簡単なMPPT制御を組んでみる
パワエレの難しさ、回路設計の難しさ - energy note
BQ25570モジュールと微生物燃料電池 - energy note
これまでどのようにして電力を持ってくるかを色々と検討してきました。
その中の制御でも大事な構成要素の一つがMPPT(Maximum Power Point Tracking)で、ようは発電源(太陽電池や微生物燃料電池など)から最大限にエネルギーを引き出そうという制御です。
ただ逆流防止ダイオードを接続してバッテリーに充電したりそのまま負荷に接続する方法では100%のエネルギーを引き出すことはできません。
ハードとソフトの両方の知識をふんだんに活用する技術ですが、実装できれば効率よくエネルギーを活用できるのではないでしょうか。
MPPTは発電源(言い方が正しいかわかりませんが)のIV特性によって変化する最大電力点を探すアルゴリズムです。
上記2枚の画像が各電源のIV特性でIVカーブと言ったりもします。青色が電流-電圧特性、オレンジ色が電力-電圧特性で横軸が電圧、縦軸左側が電流、右側が電力です。グラフ上の赤丸が最大電力点MPP(Maximum Power Point)となり、この点を目指して電流や電圧を変化させます。
この変化させるアルゴリズムをDCDCコンバータのPWM制御に組み込むことで効率よく電力を変換しようという試みで、実際に太陽光発電システム等のパワーコンディショナなどに使用されています。
※実際にはもっと複雑なIVカーブにも対応しますが、今回は省きます。
今回組んでみたのは電源へ負荷(抵抗等)を接続し、電流を引き出していってその負荷の両端の電圧値と電流値をグラフにしたもので回路図はこちらです。今回はPWM制御せず負荷を変化させる方法で実験します。
MPPTアルゴリズムは特許もたくさん取られていて簡単な検索でも312件(2021年9月11日現在)あり、たくさん研究もされていて論文検索しても色々なアルゴリズムが検証されているようです。
今回は代表的なアルゴリズムである山登り法をM5Stackに実装してみました。
//電流値設定関数 current_set(current); //MPPT待ち時間 delay(mppt_wait_time); //電流・電圧値測定 current_val = get_current(); va = get_voltage(); pa = current_val * va; //今の電力値が高いか if(pa > pb){ //電圧値比較 if(va > vb)current -= set_current_step; else{current += set_current_step;} }else{ //電圧値比較 if(va > vb)current += set_current_step; else{current -= set_current_step;} } //現在値記録 pb = pa; vb = va; //ループさせる
アルゴリズムのフローとコードの中心部です。大まかにこのように組んでみて実験しました。
電流値を変化させる前後の電力値とを比べて、基本的には変化後の電力が高い場合MPPがさらに高い位置にある可能性が高いので電流値を上げる、変化後の電力が低い場合MPPが前にある可能性が高いので電流値を下げます。
測定値をSDに記録したり画面で見たりできますし、こういう実験にもM5Stackは便利ですねw
実際にMPPが約3.7mWの電源を接続した際のグラフです。うまく3.7mW付近で追従できていますね!
ただ上下のブレがあり、ノイズ源や損失になったりしますので、この辺はアルゴリズム次第なので色々遊べる余地があります。
これらグラフはパラメータを調整する前のグラフです。電流値の変化量set_current_stepが小さすぎたり、電流値変更後の待ち時間mppt_wait_timeが小さかったり、ただ電力の上下だけを見たりするとうまく追従できなかったりしました。この辺も最適値などを求めて遊べるところです。電力値がmWじゃなくてWやkWになったらまた変わってきそうです。
研究されているアルゴリズムを見てみると微分していたり、一度IV特性を測ってみる、など色々あって面白そうなんです。
どこまで効率を追い求めるかにもよりますが、とりあえず実装して早くバッテリーに充電して何かしらの電源に使えるよう整備したいと思いますw
<読んだ論文>
Modified Perturb and Observe MPPT Algorithm for Drift Avoidance in Photovoltaic Systems
迷惑メールを集計してみるか①
嫌でも送られてきてしまうやつ。そう迷惑メール。SPAM。
本当にうざいんですよね。
数年前とか、携帯のキャリアメールに数十分に1通くらいのペースで来てて本気で何かしら仕返しできないのか!?ってなるくらい怒って沸騰していた時期がありました。
その辺の時に仕返し方法探していた時に見つけたのはこれ。
antideai.syoyu.net
さすがにここまではリスク高すぎてできないw
逆に大量にメールを送り付けるとかは、それはそれで法的にアウト?だと。(いやいやそもそも迷惑メールの時点で)
www.dekyo.or.jp
そもそも、承諾もしていないのに送り付けてきている時点であれですが、表示義務もアウトだし企業のロゴとか使ってたらそれもそれでアウトじゃん。
www.dekyo.or.jp
もっと処分されている業者いると思った・・・でもちょいちょい迷惑メール?フィッシング?的なので摘発されているニュース見るから載っていないのとかあるのかな。
本当に心の底からどうにかしてほしい、と思いますね。明らかにアウトなの多そうだからもっと取り締まれないもんですかね。実害もあるし。まぁ、一定数騙されてしまうんだろうから収益あがるんだろうし、結局やり得的な?
迷惑メール対策推進協議会の迷惑メール白書2020を見ると、2019年・2020年共に国内のメールのうちほぼ半分が迷惑メールだそうで、さらにウザい情報を仕入れてしまいました。
まぁ色々と考えてみたけど、迷惑メールの活用方法が浮かばず。とりあえず、迷惑メール情報提供と集計して成仏させることにしました。
※いち個人のメールアドレスに日々届く迷惑メールの集計データなので、すべてに当てはまるわけでもなく、考察がどのくらい適切であるかは議論の余地があると思っています。
メインではないアドレスに届いている迷惑メールのフォルダで2020年11月11日から2021年8月9日10時までに届いている271日分の迷惑メール1040通を集計しました。
平均して1日大体4通くらい来ているわけですね。少ない方だと思いますがもうウザい。
ジャンルは様々でAmazonの支払いしろとかアカウント停止しているぞととか、エロ系、投資系、BCASカード売ります的なやつなど1つのジャンルでも複数の業者・種類があるような感じです。
メールの文章とかには興味がありません。
これが曜日別の受信数です。月曜日と水曜日が少し多いのが気になりますね。日曜日は業者も休んでいるのでしょうか。
続いて時間別の集計です。2時~3時、5時~6時、14時~15時、にピークがありますね。なんでしょう?
これがAmazon関連の集計です。2時~3時、14時~15時のピークはこれでしょう。Amazonのお急ぎ便が15時までの注文だからでしょうかね??それにしても夜中3時はよくわからない・・・
あと、23時~0時にほとんど来ていない点も何でしょう・・・?セールとかが終わる時間帯だから・・・?
別ジャンルの集計結果です。狙っているのか、業者の活動時間なのかわかりませんが明らかに夜中に集中していますね。
夜中にメールを見て判断能力が落ちているときを狙っているのでしょうか。
あと、一斉送信による遅延なのかわかりませんが〇〇時ちょうど、のようなメールは少なく、大体が中途半端な時間です。
集計にものすごいエネルギーを使ってしまったので今回はこれまで・・・
夜中集中、ピーク時間帯の集中、はジャンル問わず似たような動きであることを観測しました。業者が違っていても、何かしら狙っている時間帯があるような感じですかね。
季節、イベント、セールetc...何かしらの要因で増減しているのを見るのも少し楽しそうではありますね。その辺で結果が出せるなら注意喚起とかもできるか?
ピークが重なったりしているのは機械学習とかでこの時間帯が熱い!とか出てるんでしょうか。だったら予測とかもできそう???
受信数が今のところ平均1日4通なので、少なすぎて信頼性に難ありですね。まぁわざと増やしたいとも思いませんが・・・
どこまでモチベーションが続くのかわからないこの集計ですが、もし面白そうな結果が出るのであれば②も・・・
news.livedoor.com
こんな人がいた・・・さすがにここまで活用するバイタリティーは持ち合わせていない・・・w
定電流回路の組み上げ
ある電源から引き出す電流を制御できないかなーと思って構成を考えていたところ、電子負荷があるなと。
一応、これまで電子負荷は作ってみたことはありました。
energy-note.hatenablog.com
µA、数mAオーダーに軸を置いた電子負荷です。
しかし数Aオーダーを常に流す仕様になっていないし、普通の電子負荷装置も持っていないのでとりあえず作ることにしました。
大体このような回路構成にしました。現時点ではそれほど精度は求めていないので、LM358など手に入りやすい部品で構成して抵抗もカーボンにしてたくさんもっているセラミックコンデンサを使用しています。
大体値は決まっていますが、用途に応じて試験しながら部品の値は決めていきたいので図には記載していません。
発振防止用のコンデンサの部分とかちょっと適当感ありますが、一応発振しないで動いているので・・・よし。
今回、入力電圧の範囲を3V~50Vほどにしたいと思って、幅広い入力に対応する基準電圧の生成が課題に。当初はTL431で実験してましたが、高電圧時に直列に入れる抵抗が発熱するし、3端子レギュレータだと入力電圧が足りないし発熱すごそうということで実験した結果、仕様に合わないと判断し、入力範囲の広い小型のDCDCコンバータを使いました。(もしやシャントレギュレータ+定電流ダイオードでいけた・・・?)
将来的にマイコンを内蔵できれば面白そうとも思っているので、電源にもなるので好都合かとも思っています。
構成はこのような形です。放熱版が小さすぎる気がしますが、これから実用してみて対応進めていきます。
MOSFETも様子見ながら大型にしたりしたいのでちょっと適当みある配置に。
外から制御電圧を入れられる端子と固定値出力用の外付け抵抗用の端子を6Pのやつでまとめました。これからラベルとか貼って使い勝手をよくしていきます。
大型LEDでの試験の様子です。600mA程度まで流しましたが特に発振も発熱もなく正常稼働しているのでいいでしょう。(LEDの光が強すぎて写真が撮れなかった)低電流の時にたまに発振するのでさらにコンデンサを追加するか、値を変えるか実験ですね・・・
これで色々と実験したいと企んでいるので、また面白そうな結果がでたらまとめたいと思います。
あとは、自作で水耕栽培用のLEDライトを今後作れたら面白いなぁと考えていて、その時までにCC機能付き直流安定化電源があれば便利ですが、これ使えば一応電源があれば解決できそうです。
パワエレの難しさ、回路設計の難しさ
energy-note.hatenablog.com
先日このような記事を書きました。
MPPT機能付き降圧DCDCコンバータの設計を試みました。
薄膜太陽電池の仕様が開放電圧192Vの短絡電流0.3Aだったので、24Vに降圧してバッテリーでも充電しよう、という目論見で。
そもそも扱いづらい仕様だぜ。市販のMPPT機能付き太陽電池コントローラーにもほとんど接続できない。
回路はこんな感じなのですが、10Vをかけるといい感じに降圧してくれて、デューティー比を変えて出力の調整もうまく行っていました。
そこで太陽電池を実際につないでみると・・・全然きれいに降圧してくれません・・・orz
PICからのPWM信号は出ていてゲート電圧もちゃんとよさげなのですが、どうもうまく降圧できません。
それに加えてI2Cで接続しているLCDの表示がノイズか何かで消えてしまいます。
ゲート抵抗に並列にファストリカバリーダイオードを付けても、G-S間に抵抗を入れても、変わりません。
買った本ではこんな高電圧を扱うような回路は載っていないのであまり参考文献がありませんorz
もう少し触ってみて無理そうであれば市販の220V→24VとかのACDCコンバータに接続してMPPTは妥協するしか今のレベルでは追いつかなさそうorz引き出す電流値で調整するか・・・
100Vオーバーの降圧回路ってあまりググっても出てこない。専用ICみたいのも120Vくらいまでですね。
あと、
こいつですね。ネットで仕様見たときに、正弦波って書いてたから普通にTVつくかなーってやってみたらつかないしorz
オシロで見ると矩形波やんけ!どおりでモーターつないでもパワーが低いわけだ!正弦波インバータとして使いたかったがorz
なんかさんざんな出だしになってしまいました・・・
とりあえず、バッテリー充電する回路を組んでいこうかと・・・設備として利用できるのはいつになることやら。
暑い日々が続いていますがすごい熱エネルギーだと思うんですよ。
この熱エネルギーを使いたい、というまた別の欲求がうずを巻いていてやばい。
povoに変更しての感想(1か月)
いやぁ。新型コロナウイルスの影響がまだまだ続きますね・・・医療従事者の皆様には本当に感謝です。
早くワクチンを接種して元通りの生活に戻したいものです。安心してMaker Faireとか見に行きたい!
makezine.jp
10月までに少なくとも1回は接種できているかなぁ。どうでしょう。状況を見て行くか考えます。
auの新プラン「povo」に変更して約1か月が経ちました。
iphone-mania.jp
こんなpovoフックなんて問題もあり、一時期ちょっと悩みましたが(これもpovoに変更させない罠だったのか!?w)月3000円も安くなるのはかなり大きいと判断し、多少使用感に難ありだとしてもメリットはあるだろう!と判断しました。そもそもこんなことして処分されないのかいな?
元々電話は少ない方だし、どこまで本当なのかわからないがLINE ID検索ができない?という話もあるが、そもそもLINEの交換なんて番号かQRコードでしかやらないから特に大きな影響はない。
テザリングをよく使うので、速度と容量に少し心配が残ったが、決断です。
少しめんどくさかったのはキャリアメールで登録しているサービスですね。メールアドレスの変更にめっちゃ時間がかかりました。これがネックになっている人も多そうですね。
切り替えについてはあっという間に終わってしまいました。そこのところはポイント高いですね。
bitwave.showcase-tv.com
(このアンケート、「povoに乗り換えて安くなった通信費」なんですね。ぱっと見、支払額に見えてしまう・・・)
povoの使用感ですが、個人的には特に支障は感じていないですね。youtube等に大きく問題はないしtwitterの更新がほんの少し遅くなった気がするくらい。
電話も品質が落ちることもないし、テザリングも今のところ問題は見受けられない。
あとは機種変更がどうなっていくかですね。現在、au onlineshopで端末が買えるそうですが。
TORQUE 5Gが欲しいんですよ。昔からTORQUEユーザーで新機種が出るたびに買いたくなってしまう・・・
TORQUE G04は頑張って耐えたので、TORQUE 5Gはぜひとも・・・約9万円・・・水耕栽培の野菜を販売したところでどうにもならんぞ!!!
最後に現在まででちょっとウザいと思ったところが自動応答のチャット。
<povo HPより>
切り替えるときに読まされる約款?みたいのの中に入っている「通信識別機能」の中で、「識別の結果は、データ通信量のカウントや通信速度の制御などに利用します。」
「など」ってなんだよ!気になるじゃないか!ということでチャットに質問するとこんな感じね。オンラインでしか対応しないというのなら、もう少し頑張ってくれると嬉しい。
色々と質問を投げても申し訳ございませんの返答が多すぎる。今後の伸びしろとして考えておこう。
まだ始まって間もないサービスなので、今後どのように成熟していくか、まぁ1ユーザーとして一応楽しみに期待しています。
(改)合成抵抗の組み合わせを求めるプログラム
以前このような記事を書きました。
energy-note.hatenablog.com
最近いろいろと工作を進める中で、オペアンプ回路とかで使う中途半端な抵抗値を求めるためにこのプログラムを使っていたところ、色々と問題点が見えてきました。
勉強&とりあえず急ぎで欲しかったからとはいえちょっと雑すぎたかぁと。
微妙にかゆいところに手が届かないし、構成が限られているし・・・ということでほぼ書き直しました。
今回も前回の記事同様の呼び名を使います。
#Created 2021/6/13 import itertools from tqdm import tqdm import pandas as pd #---------------------------------パラメータ #持ち値 have_value = [22,100,200,'1k','2k'] #求めたい抵抗値Ω set_value = 1005 #許容誤差±Ω allowable_error = 1 #並列構成要素外直列数 max_para_cnt = 2 #最大直列数(並列構成要素) st_seri_para_cnt = 2 #最大並列数 st_seri_cnt = 2 #--------------------------------- #接頭語を変換する for i in range(len(have_value)): if type(have_value[i]) is str: if 'k' in have_value[i]: have_value[i] = round(float(have_value[i].replace('k','')) * 10**3) continue if 'M' in have_value[i]: have_value[i] = round(float(have_value[i].replace('M','')) * 10**6) continue if 'G' in have_value[i]: have_value[i] = round(float(have_value[i].replace('G','')) * 10**9) continue if 'm' in have_value[i]: have_value[i] = round(float(have_value[i].replace('m','')) * 10**-3,6) continue #--------------------------------- #https://note.nkmk.me/python-list-flatten/ より引用 #リスト・タプルの構成要素数を調べる関数 def flatten_list(l): for el in l: if isinstance(el, list): yield from flatten_list(el) else: yield el #並列合成抵抗を求める def parallel(array): r = 0 for i in array: r += 1 / i return(1 / r) def main(): print('スタート') df = pd.DataFrame(columns=['合成抵抗値', '組み合わせ','抵抗使用個数', '誤差', '誤差絶対値']) #最大直列数(並列構成要素)計算 seri = [[]]*st_seri_para_cnt seri_calc = [[]]*st_seri_para_cnt for para_val in range(st_seri_para_cnt): seri[para_val] = [] seri_calc[para_val] = [] for i in itertools.combinations_with_replacement(have_value,para_val+1): seri[para_val].append(list(i)) #計算処理用 seri_calc[para_val].append(round(sum(i),6)) print('直列数計算完了') #最大並列数計算 st_para = [] st_para_calc = [] #組み合わせ結果を展開 for i in seri: st_para+=i for i in seri_calc: st_para_calc+=i para_list = [] para_list_calc = [] for i in itertools.combinations_with_replacement(st_para,st_seri_cnt): para_list.append(list(i)) #直列要素の中で設定値を超える値があったら削除する para_index = 0 cut_cnt = 0 for i in itertools.combinations_with_replacement(st_para_calc,st_seri_cnt): #並列合成抵抗計算 paracal = round(parallel(list(i)),6) if paracal < set_value: #計算処理用 #直列要素は設定値以下でないと拾わない para_list_calc.append(paracal) else: #構成保存用リストから削除する para_list.pop(para_index-cut_cnt) #削除した分リスト数が減る cut_cnt+=1 para_index+=1 print('並列要素計算完了') #最大直列数計算 out_list = list(itertools.combinations_with_replacement(have_value+para_list,max_para_cnt)) out_list_calc = list(itertools.combinations_with_replacement(have_value+para_list_calc,max_para_cnt)) print('最終計算中') #すべての結果を合成する for i in tqdm(range(len(out_list_calc))): result = round(sum(out_list_calc[i]),6) err = abs(set_value-result) #設定した許容値に収まっていたらデータフレームに格納 if err<=allowable_error: df = df.append({'合成抵抗値': result, '組み合わせ': out_list[i],'使用個数':len(list(flatten_list(out_list[i]))), '誤差': round((set_value-result) * 100 / set_value,6), '誤差絶対値': err}, ignore_index=True) #誤差でソート df.sort_values('誤差絶対値', inplace=True) #インデックスの振り直し df = df.reset_index(drop=True) #たぶん使っても上位10個くらいだろう if len(df['合成抵抗値'])<10: cnt = len(df['合成抵抗値']) else: cnt = 10 print('計算結果数:',len(df['合成抵抗値']),'組み合わせ') #結果表示 for i in range(cnt): combi = '' for ii in df['組み合わせ'][i]: #構成要素展開 combi = combi + str(ii) +' + ' print('合成抵抗値:'+str(df['合成抵抗値'][i])+' 組み合わせ:'+str(combi[:-3])+' 使用個数:'+str(df['使用個数'][i])+' 誤差:'+str(df['誤差'][i])+'%') if __name__ == '__main__': main()
Python3.7.5+Jupyter Notebookで書いてます。
have_valueに持っている抵抗値をリスト形式の単位はΩで記入します。
求めたい抵抗値と許容誤差±を単位をΩで記入します。
最大並列数や最大直列数(並列構成要素)、並列構成要素外直列数とかは上記の画像の通りです。
あとは実行してもらえると誤差が低い順から10個表示されます。dfデータフレームにすべての計算結果が入っています。
前記事同様に出力される表記の構成はこのようになっています。
[[10, 10000], [5100, 750000]]+1
今回、結構コードを変えました。
まず、1kや2.2Mなど接頭語を使った表現も使えるようにしました。
have_value = [1,2,5.1,10,20,'1k','2.2M']
のように文字列としてリストに入れてもらい、キロは小文字のk、メガは大文字のM、ギガは大文字のG、ミリは小文字のmを使えるようにしました。
遅い原因だった?であろうforのネストを取り払いました。一応コード内にはいますが、メインの計算部分ではないのでいいこととしますw
組み合わせの数が増えているかと思います。
後は抵抗の使用個数とかで制限もしようと考えましたが、結局は精度を求めて組み合わせるので、別にいいか、と機能はつけませんでした。
作り出すと止まらなくはなりますが、何せまだまだなので、効率的・効果的な書き方等ご指摘いただきましたら幸いです・・・
今回も一応結果のチェックはしてありますが、念のため検算はしてから接続しますようお願いします。
今回のコードは組み合わせの数が増えた分、特に直列数を増やすと組み合わせ数がすごい勢いで増えていくので、持っている抵抗数と回路数はある程度に抑えるのが実用的かと思います。
今回、組み合わせを色々とみててふと、誤差について気にしだしました。1000Ω±1%だった場合、1000±10Ωとなるわけですが、合成抵抗で1005Ωが欲しい!とかなった場合、「1000Ω±1% + 5Ω±1%」としても、元々の誤差に埋もれてしまうのでは・・・?
あるいは合成抵抗値で1005.001Ωとかいう精度で合成できたとしても、誤差を含む抵抗値をさらに合成しているわけだから・・・精度が悪いのか!?いいのか!?とせっかく作ったプログラムに対して疑問を持ち始めました。
cc.cqpub.co.jp
調べてみると、なるほど。組み合わせる数が多いほど誤差の分布が改善されると。
これを「誤差伝播」というそうで。なるほど。「四則演算 誤差伝播」などとぐぐってもらうといろいろなサイトが出てきます。
例えば100Ω±1%を2個つなげて200Ωを作った場合、100±1Ωと100±1Ωなので200Ω±2Ωではなく、となって確率的に若干ばらつきが抑えられるわけですね。
200Ω±2Ωは最悪ケースの場合であって、2個とも誤差MAXである可能性はそもそも低く、数が増えるとその確率はもっと低くなると。・・・じゃぁ直列数を増やせば若干良くなる!?
実際に工作で使うときには量産とかでなければテスターで測ってください・・・今回はこの辺にしておきます。
(誤差と定格電力の計算もできるとさらによいのか・・・?)
※以前も書きましたが旧JIS派です。
こちら参考にさせていただきました。
直列抵抗の誤差leansixsigmastudy.wordpress.com
note.nkmk.me
電気代節約に向けて
電気代ゼロ節約に向けていろいろと検討を始めました。
energy-note.hatenablog.com
まぁ普通の賃貸に住んでいる以上、エネルギー密度的に無理っぽい雰囲気はありますが、一応少々検討もしました。
energy-note.hatenablog.com
やはり現実的なのはまずは太陽電池。狭くて西日しか当たらないベランダですので、太陽電池でもそこまでエネルギーを回収できるわけではありませんが、色々と組み合わせてエネルギーを獲得していきたいと思います。
今直近で計画しているのは
〇太陽電池
〇微生物燃料電池
〇その他手軽な環境発電
〇人力発電
です。微生物燃料電池と環境発電は絶対的にエネルギー量は低いですが、趣味の一環としてやってみたいと思います。
発電量が小さいため、扱いがちょっと大変そうなんですよね。
energy-note.hatenablog.com
太陽電池もいくつか合わせたり、手持ちの薄膜太陽電池を利用したりしたいのでMPPTとDCDCコンバータは必須だし、微生物燃料電池とかもDCDCコンバータ通さないといけません。
(DCDCコンバータの損失&運転電力)>>環境発電
になりそうで意味のないシステムにならないよう設計を頑張ってみたいと思います。
構成はこんな感じにしたいと妄想しています。そんなに大きな電力扱うわけではないので初めて作るのにもよいかと・・・
市販のモジュールとM5Stackとか使えばスッとできそうな気もしなくもないですが、使える電力量の割にコストがすげーことになるのと、痒い所に手が届かなかったりするのでちょっと勉強がてら作ってみようと思いました。
いい感じのUPSもゲットしたので、テレビとか液晶の電源くらいなら十分に使えそうです。
早速、DCDCコンバータに関する書籍(はじめての電源回路設計・電源回路設計 成功のかぎ)を購入したので、ゆるりと作っていきたいと思います。
電子負荷装置のソフト側も触りたいですが、諸事情により実益のある工作からやっていきたいと思っていますw節約大事w
30Wの薄膜太陽電池が2枚、小電力発電から0.1Wとして(もう誤差レベル)・・・1日で100Wh充電できるかどうかですかねぇ。
となると月に3kWhくらい。電力購入単価が20円/kWhとしたら月60円の節約www試算から心折れそう・・・
将来的にこれで完全オフグリッド達成したいな(白目)