syncro sitone~

36
Fukuoka Ruby Award Synchro Sitone AC 電源周波数ウォッチソーシャル Web 近畿大学 山崎重一郎

Upload: shigeichiro-yamasaki

Post on 28-May-2015

2.446 views

Category:

Technology


5 download

DESCRIPTION

AC電源周波数調整を目的にした Ruby で開発したガジェットです。mruby でMakerになる人の参考になれば

TRANSCRIPT

Page 1: Syncro sitone~

Fukuoka Ruby Award

Synchro Sitone~AC電源周波数ウォッチソーシャルWeb

近畿大学山崎重一郎

Page 2: Syncro sitone~

Fukuoka Ruby Award

 

昨年の夏休みの発明品

Page 3: Syncro sitone~

Fukuoka Ruby Award

AC電源周波数検知アンテナ

電源コンセントの周波数を測定できます。50Hz 東日本60Hz 西日本

Page 4: Syncro sitone~

Fukuoka Ruby Award

電力の需要と供給需要が増えると   発電機のトルクが増える

手回し発電機モーター

電球 LED

おもいなあ

Page 5: Syncro sitone~

Fukuoka Ruby Award

電力の需要と供給

mortar

電力需要

周波数変動で瞬時に需給関係がわかる!

需要が増えると   発電機のトルクが増える

発電所

Page 6: Syncro sitone~

Fukuoka Ruby Award

BeagleBoneでやってみた arduinoみたいなオープンソースハードウェア

Linuxが動く Ruby1.9.3 でフィジカルコンピューティング!

Page 7: Syncro sitone~

Fukuoka Ruby Award

苅田

松浦

新小倉

豊前

大分

新大分

唐津

相浦

苓北

川内

玄海

川内

大平

福岡 北九州

長崎熊本

鹿児島

大分

日田

宮崎

久留米

二日市

飯塚

(小丸川)

天山

九州電力の主要送電系統図

 

Page 8: Syncro sitone~

Fukuoka Ruby Award

 苅田

松浦

新小倉

豊前

大分

新大分

唐津

相浦

苓北

川内

玄海

川内

大平

福岡 北九州

長崎熊本

鹿児島

大分

日田

宮崎

久留米

二日市

飯塚

(小丸川)

天山

実際に設置してみた福岡

唐津

二日市

長崎

飯塚

大分

久留米

Page 9: Syncro sitone~

Fukuoka Ruby Award

設置方法山崎の自宅(福岡)の設置風景

Page 10: Syncro sitone~

Fukuoka Ruby Award

SynchroSitone~ 

Page 11: Syncro sitone~

Fukuoka Ruby Award

SynchroSitone~すっごくシンクロしている

 

Page 12: Syncro sitone~

Fukuoka Ruby Award

Rubyで実装した!はっきり言ってむいていないでも、mrubyの方向性では「あり」それを実証するの目的

Page 13: Syncro sitone~

Fukuoka Ruby Award

アナログポートに刺したアンテナからの生データノイズだらけだけど、 60Hzあたりの成分も見える

Page 14: Syncro sitone~

Fukuoka Ruby Award

FFT 高速フーリエ変換ってやつ

Page 15: Syncro sitone~

Fukuoka Ruby Award

時系列データを周波数成分に分解する

59.93 59.94 59.96 59.97 59.98 59.99 60.00 60.01 60.02

Page 16: Syncro sitone~

Fukuoka Ruby Award

RubyならFFTは 2行

fft=->a{n=a.size

(n==1 ? a : fft[(0...n/2).map{|i|a[i]+a[i+n/2]}].zip(fft[(0...n/2).map{|i|(a[i]-a[i+n/2])*((Complex.polar(1,-2*PI/n))**i)}]).flatten)}

Page 17: Syncro sitone~

Fukuoka Ruby Award

RubyならFFTは 2行

(拡大版)fft=->a{n=a.size

(n==1?a: fft[(0...n/2).map{|i|a[i]+a[i+n/2]}].zip(fft[(0...n/2).map{|i|(a[i]-a[i+n/2])*((Complex.polar(1,-2*PI/n))**i)}]).flatten)}

Page 18: Syncro sitone~

Fukuoka Ruby Award

Rubyの記述力!

でもまあ、このコードはちょっと変態かも

Page 19: Syncro sitone~

Fukuoka Ruby Award

Rubyでがんばった事

正確な時間間隔でサンプリング•1/60秒= 16.7ミリ秒、その倍の速度が必要•5ミリ秒周期で正確にサンプリング

収集途中で GCが入ってはだめ!ずっと安定して動き続けないとだめ

Page 20: Syncro sitone~

Fukuoka Ruby Award

正確な時間間隔でサンプリング

リアクタパターンを利用 event machineで実装

Page 21: Syncro sitone~

Fukuoka Ruby Award

rubygems のevent machine

ユーザ定義のイベントユーザ定義のイベント

リアクタリアクタ

プログラムプログラム

IOやイベント駆動

Page 22: Syncro sitone~

Fukuoka Ruby Award

rubygems のevent machine

ユーザ定義のイベントユーザ定義のイベント

リアクタリアクタ

プログラムプログラム

定期発生イベント

Page 23: Syncro sitone~

Fukuoka Ruby Award

5ミリ秒ごとに駆動されるプログラム(実際は微調整が必要!)

require 'eventmachine' EM.run {n=0 EM.add_periodic_timer(0.005){ (時刻を調べて補正 )

サンプリング実行 n+=1 EM.stop if n==N } }

Page 24: Syncro sitone~

Fukuoka Ruby Award

サンプリング中にGCを入れない

Rubyの Fiberでバッファ(ウィンドウ)への書き込み処理をコルーチンにする

継続で、配列オブジェクトを再利用

Page 25: Syncro sitone~

Fukuoka Ruby Award

Fiberで資源を節約 window=Fiber.new{i=0

buf=Array.new(SIZE) loop{r=Fiber.yield(buf) if r==0 then i=0 else buf[i]= サンプリング値 *窓関数 i+=1 end } }

Page 26: Syncro sitone~

Fukuoka Ruby Award

Rubyのクロージャで窓関数をメモ化

2回目からは計算しない

hamming=->i{m={}m[i]||=(0.54-0.46*cos(2*PI*i/N-1))}

Page 27: Syncro sitone~

Fukuoka Ruby Award

びっくりするくらい正確になった 

Page 28: Syncro sitone~

Fukuoka Ruby Award

電力事業者の3つのサービス

電力卸売り市場で取引される対象• 電力供給• 電力余力供給• 周波数調整(アンシラリーサービス)

九州電力の電力供給と電力余力

Page 29: Syncro sitone~

Fukuoka Ruby Award

周波数調整力の市場価値アメリカの水道事業者揚水ポンプをインバーター型にして周波数調整力を周波数制御卸売り市場取引に参入

PJM市場での周波数調整力取引でポンプの電力料金を 2~3%削減

Page 30: Syncro sitone~

Fukuoka Ruby Award

電力需用者側による周波数調整サービス

ネガワット(需用者側の節電=発電)家庭用の蓄電池、スマート家電、スマートメータ デマンド・レスポンス

Page 31: Syncro sitone~

Fukuoka Ruby Award

SynchroSitone~2.0赤外線 LEDぴかぴか追加バージョン

赤外線 LED

Page 32: Syncro sitone~

Fukuoka Ruby Award

九州中のエアコンの出力を瞬時にシンクロさせる

10分以内に九州中のオフィスのエアコンが一斉に反応できれば電源周波数調整力として市場価値がうまれる

エアコン数万台規模

赤外線 LED

ぴかぴか

Page 33: Syncro sitone~

Fukuoka Ruby Award

本当にビジネスになるかも オフィスのエアコンの前に設置するだけで、だれでも電力事業者の立場になれる! 周波数調整能力は 500W出力の 160万円の蓄電池にまけないかも?(出力アップ側の制御も可能)

ラズベリーパイ( 35ドル)4000円くらい

赤外線 LED  7円

温度センサー100円

Page 34: Syncro sitone~

Fukuoka Ruby Award

成果Makersのための Ruby!

•オープンソースハードウェアでMakerになれるよ!

• Rubyでフィジカルコンピューティングすると楽しいことが実証できた

Page 35: Syncro sitone~

Fukuoka Ruby Award

これから電気マネー

• 周波数調整力を原資とするソーシャルマネー?

節電劇場• ソーシャルゲーム• ギリシャの円形劇場+ギリシャ悲劇は 社会や人生の問題を共有し理解する装置

Page 36: Syncro sitone~

Fukuoka Ruby Award

mrubyへの期待event_macnineは標準装備してほしい

• 誤差補正機能もほしいFiber も貧弱なマシンにすごく有効

(初期のMacintoshみたいいに )GC.disable / GC.enable

• GCのタイミングを意識して使いたい