SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
Fukuoka Ruby Award




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




                      近畿大学!
                     山崎重一郎!
Fukuoka Ruby Award




  昨年の夏休みの発明品
   
Fukuoka Ruby Award




                     AC電源周波数
                     検知アンテナ
  電源コンセントの周波数を測定できます。
                        50Hz 東日本
                        60Hz 西日本
Fukuoka Ruby Award




                電力の需要と供給
需要が増えると   発電機のトルクが増える
                                             おもいなあ	
                                                	


            モーター	
                                         手回し発電機	

                     	
   電球	
   LED
Fukuoka Ruby Award




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




            mortar	

           電力需要	
           発電所	

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




    BeagleBoneでやってみた
     arduinoみたいなオープンソースハードウェア
     Linuxが動く 
     Ruby1.9.3でフィジカルコンピューティング!
Fukuoka Ruby Award




   九州電力の主要送電系統図
                                        新小倉

                                   福岡
                                             北九州        苅田
                          玄海 唐津                          豊前
                                             飯塚
                     松浦
                                        二日市
                                                               大分
                                                                    大分
                     相浦                            日田
                                  天山    久留米
                                                                     新大分

                                        熊本
                           長崎



                                        大平
                          苓北
                                                        (小丸川)


                                  川内                      宮崎

                            川内
                                  鹿児島
Fukuoka Ruby Award




                     実際に設置してみた
                                         新小倉
                                    福岡
                                              北九州        苅田
福岡	
                       玄海 唐津                          豊前
                                                                            飯塚	
                                              飯塚
                      松浦                                        大分
                                         二日市                         大分
                      相浦                            日田
                                   天山    久留米
                                                                      新大分
唐津	
                            長崎
                                         熊本
                                                                            大分	

                                         大平
                           苓北
                                                         (小丸川)
二日市	
                                   川内                      宮崎               久留米	
                             川内
                                   鹿児島


長崎
Fukuoka Ruby Award




    山崎の自宅(福岡)の設置風景
                     設置方法
Fukuoka Ruby Award




                     SynchroSitone
   
Fukuoka Ruby Award




                     SynchroSitone
              すっごくシンクロしている
   
Fukuoka Ruby Award




        Rubyで実装した!
 はっきり言ってむいていない!
 でも、mrubyの方向性では「あり」!
    それを実証するの目的!
0!
        500!
               1000!
                       1500!
                               2000!
                                        2500!
                                                3000!
                                                        3500!
                                                                4000!
                                                                        4500!
  1!
  5!
  9!
 13!
 17!
 21!
                                                                                                                         Fukuoka Ruby Award




 25!
 29!
 33!
 37!
 41!
 45!
 49!
 53!
 57!
 61!
 65!
 69!
 73!
 77!
 81!
 85!
 89!
 93!
 97!
101!
105!
109!
113!
117!
121!
125!
129!
133!
137!
141!
145!
149!
153!
157!
161!
165!
169!
173!
177!
181!
185!
189!
193!
197!
201!
205!
209!
213!
217!
221!
225!
229!
233!
                                                                                ノイズだらけだけど、60Hzあたりの成分も見える




237!
241!
245!
249!
                                                                                                           アンテナからの生データ
                                                                                                           アナログポートに刺した




253!
                                 系列1!
Fukuoka Ruby Award




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




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




 20!




 15!




 10!




  5!




  0!
          1!
       59.93
                      2!
                     59.94
                               3!
                             59.96
                                       4!
                                     59.97   59.98
                                              5!     6!
                                                     59.99
                                                              7!
                                                             60.00
                                                                      8!
                                                                     60.01
                                                                              9!
                                                                             60.02
Fukuoka Ruby Award




                 Rubyなら
fft=->a{n=a.size!
                 FFTは2行
  (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)}
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)}
Fukuoka Ruby Award




                 3行にすると

              ちょっと見やすいかも?
fft=->a{n=a.size

	 	 b=a[0...(n/2)].map

	 	 (n==1?a:fft[b.with_index{|x,i|x+a[i+(n/2)]}].zip
(fft[b.with_index{|y,i|(y-a[i+(n/2)])*
(Complex.polar(1,-2*PI/n)**i)}]).flatten)}
Fukuoka Ruby Award




   Rubyの記述力!

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




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

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




                     正確な時間間隔で
                      サンプリング
   リアクタパターンを利用!
          event machineで実装
Fukuoka Ruby Award



                      rubygemsの
                     event machine

                      ユーザ定義のイベント	
                                     IOやイベント駆動	


                         リアクタ	




                         プログラム
Fukuoka Ruby Award



                      rubygemsの
                     event machine

                      ユーザ定義のイベント	
                                   定期発生イベント	

                         リアクタ	




                         プログラム
Fukuoka Ruby Award




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

      	 	 

      EM.run	 {n=0

      	 	 	 	 EM.add_periodic_timer(0.005){	 	 	 	 	 	 	 	 
      	 	 	 	 	 	 (時刻を調べて補正)

        

 

 

サンプリング実行

      	 	 	 	 	 	 n+=1

      	 	 	 	 	 	 EM.stop	 if	 n==N

      	 	 }	 }
Fukuoka Ruby Award




                     サンプリング中に
                      GCを入れない
  RubyのFiberでバッファ(ウィンドウ)
   への書き込み処理をコルーチンにする!
  継続で、配列オブジェクトを再利用!
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	 

}	 	 	 }
Fukuoka Ruby Award




             Rubyのクロージャで
               窓関数をメモ化
   2回目からは計算しない!



  hamming=->i{m={}

   

m[i]||=(0.54-0.46*cos(2*PI*i/N-1))}
Fukuoka Ruby Award




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




                      電力事業者の
                     3つのサービス
   電力卸売り市場で取引される対象!
        •    電力供給!
        •    電力余力供給!
        •    周波数調整(アンシラリーサービス)!
  !                  九州電力の電力供給と電力余力
Fukuoka Ruby Award




  周波数調整力の市場価値
    アメリカの水道事業者!

        揚水ポンプをインバー
        ター型にして周波数調整
        力を周波数制御卸売り市
        場取引に参入!
        !
        PJM市場での周波数調整
        力取引でポンプの電力料
        金を2~3%削減!
Fukuoka Ruby Award



                     電力需用者側による
                     周波数調整サービス
    ネガワット(需用者側の節電=発電)!
    家庭用の蓄電池、スマート家電、スマートメータ!
   デマンド・レスポンス!
Fukuoka Ruby Award




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




                     赤外線LED
Fukuoka Ruby Award




   九州中のエアコンの出力を
    瞬時にシンクロさせる
10分以内に九州中のオフィスのエアコンが一斉に反応で
きれば電源周波数調整力として市場価値がうまれる!
                                        赤外線LED	




                               ぴかぴか	
                     エアコン
                     数万台規模
Fukuoka Ruby Award




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



           ラズベリーパイ!
           (35ドル)!            赤外線LED! 温度センサー!
           4000円くらい	
          7円     100円
Fukuoka Ruby Award




                     成果
 MakersのためのRuby!
     •  オープンソースハードウェアで
        Makerになれるよ!!
     •  Rubyでフィジカルコンピューティ
        ングすると楽しいことが実証できた
Fukuoka Ruby Award




                     これから
   電気マネー!
        •    周波数調整力を原資とするソーシャルマネー?!

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




                     mrubyへの期待
  event_macnineは標準装備してほしい!
       •    誤差補正機能もほしい!
  Fiberも貧弱なマシンにすごく有効                 !
       (初期のMacintoshみたいいに)!
  GC.disable          / GC.enable!
       •    GCのタイミングを意識して使いたい!

Contenu connexe

Plus de Kindai University

Blockchain and Virtual Currency - Technical issues -
Blockchain and Virtual Currency- Technical issues -Blockchain and Virtual Currency- Technical issues -
Blockchain and Virtual Currency - Technical issues -Kindai University
 
ブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンスブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンスKindai University
 
福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナーKindai University
 
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版Kindai University
 
ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築Kindai University
 
やっぱりブロックチェインより仮想通貨
やっぱりブロックチェインより仮想通貨やっぱりブロックチェインより仮想通貨
やっぱりブロックチェインより仮想通貨Kindai University
 
FinTechと金融サービスの将来像
FinTechと金融サービスの将来像FinTechと金融サービスの将来像
FinTechと金融サービスの将来像Kindai University
 
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTechKindai University
 
ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題Kindai University
 
ブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocolブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocolKindai University
 
電気マネーでエネルギー問題解決
電気マネーでエネルギー問題解決電気マネーでエネルギー問題解決
電気マネーでエネルギー問題解決Kindai University
 
電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)Kindai University
 
薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクトKindai University
 

Plus de Kindai University (20)

Blockchain and Virtual Currency - Technical issues -
Blockchain and Virtual Currency- Technical issues -Blockchain and Virtual Currency- Technical issues -
Blockchain and Virtual Currency - Technical issues -
 
Gbec finance and blockchain
Gbec finance and blockchainGbec finance and blockchain
Gbec finance and blockchain
 
Blockchian definition
Blockchian definitionBlockchian definition
Blockchian definition
 
Blockchain economy
Blockchain economyBlockchain economy
Blockchain economy
 
ブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンスブロックチェーンエコノミーのコンセンサスとガバナンス
ブロックチェーンエコノミーのコンセンサスとガバナンス
 
福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー福岡ブロックチェーン・エコノミー勉強会セミナー
福岡ブロックチェーン・エコノミー勉強会セミナー
 
福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版福岡ブロックチェーン・エコノミー勉強会公開版
福岡ブロックチェーン・エコノミー勉強会公開版
 
ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築ブロックチェーンによるデータガバナンスと社会基盤の再構築
ブロックチェーンによるデータガバナンスと社会基盤の再構築
 
やっぱりブロックチェインより仮想通貨
やっぱりブロックチェインより仮想通貨やっぱりブロックチェインより仮想通貨
やっぱりブロックチェインより仮想通貨
 
FinTechと金融サービスの将来像
FinTechと金融サービスの将来像FinTechと金融サービスの将来像
FinTechと金融サービスの将来像
 
Congre chain説明資料
Congre chain説明資料Congre chain説明資料
Congre chain説明資料
 
仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech仮想通貨のブロックチェイン技術によるFinTech
仮想通貨のブロックチェイン技術によるFinTech
 
ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題ビットコイン福岡勉強会法的課題
ビットコイン福岡勉強会法的課題
 
ブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocolブロックチェインとOpen asset protocol
ブロックチェインとOpen asset protocol
 
Open fintech and Kachatter
Open fintech and KachatterOpen fintech and Kachatter
Open fintech and Kachatter
 
電気マネーでエネルギー問題解決
電気マネーでエネルギー問題解決電気マネーでエネルギー問題解決
電気マネーでエネルギー問題解決
 
仮想通貨実験計画
仮想通貨実験計画仮想通貨実験計画
仮想通貨実験計画
 
Bit Nexus
Bit NexusBit Nexus
Bit Nexus
 
電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)電子情報通信学会グローバル社会とビットコイン(山崎)
電子情報通信学会グローバル社会とビットコイン(山崎)
 
薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト薬院サルー仮想通貨プロジェクト
薬院サルー仮想通貨プロジェクト
 

Dernier

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Dernier (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

Syncro sitone~

  • 1. Fukuoka Ruby Award Synchro Sitone∼ AC電源周波数ウォッチソーシャルWeb 近畿大学! 山崎重一郎!
  • 2. Fukuoka Ruby Award 昨年の夏休みの発明品  
  • 3. Fukuoka Ruby Award AC電源周波数 検知アンテナ 電源コンセントの周波数を測定できます。 50Hz 東日本 60Hz 西日本
  • 4. Fukuoka Ruby Award 電力の需要と供給 需要が増えると   発電機のトルクが増える おもいなあ モーター 手回し発電機 電球 LED
  • 5. Fukuoka Ruby Award 電力の需要と供給 需要が増えると   発電機のトルクが増える mortar 電力需要 発電所 周波数変動で瞬時に需給関係がわかる!
  • 6. Fukuoka Ruby Award BeagleBoneでやってみた arduinoみたいなオープンソースハードウェア Linuxが動く  Ruby1.9.3でフィジカルコンピューティング!
  • 7. Fukuoka Ruby Award 九州電力の主要送電系統図 新小倉 福岡 北九州 苅田 玄海 唐津 豊前 飯塚 松浦   二日市 大分 大分 相浦 日田 天山 久留米 新大分 熊本 長崎 大平 苓北 (小丸川) 川内 宮崎 川内 鹿児島
  • 8. Fukuoka Ruby Award 実際に設置してみた 新小倉   福岡 北九州 苅田 福岡 玄海 唐津 豊前 飯塚 飯塚 松浦 大分 二日市 大分 相浦 日田 天山 久留米 新大分 唐津 長崎 熊本 大分 大平 苓北 (小丸川) 二日市 川内 宮崎 久留米 川内 鹿児島 長崎
  • 9. Fukuoka Ruby Award   山崎の自宅(福岡)の設置風景 設置方法
  • 10. Fukuoka Ruby Award SynchroSitone  
  • 11. Fukuoka Ruby Award SynchroSitone すっごくシンクロしている  
  • 12. Fukuoka Ruby Award Rubyで実装した!  はっきり言ってむいていない!  でも、mrubyの方向性では「あり」! それを実証するの目的!
  • 13. 0! 500! 1000! 1500! 2000! 2500! 3000! 3500! 4000! 4500! 1! 5! 9! 13! 17! 21! Fukuoka Ruby Award 25! 29! 33! 37! 41! 45! 49! 53! 57! 61! 65! 69! 73! 77! 81! 85! 89! 93! 97! 101! 105! 109! 113! 117! 121! 125! 129! 133! 137! 141! 145! 149! 153! 157! 161! 165! 169! 173! 177! 181! 185! 189! 193! 197! 201! 205! 209! 213! 217! 221! 225! 229! 233! ノイズだらけだけど、60Hzあたりの成分も見える 237! 241! 245! 249! アンテナからの生データ アナログポートに刺した 253! 系列1!
  • 14. Fukuoka Ruby Award FFT  高速フーリエ変換ってやつ
  • 15. Fukuoka Ruby Award 時系列データを 周波数成分に分解する 25! 20! 15! 10! 5! 0! 1! 59.93 2! 59.94 3! 59.96 4! 59.97 59.98 5! 6! 59.99 7! 60.00 8! 60.01 9! 60.02
  • 16. Fukuoka Ruby Award Rubyなら fft=->a{n=a.size! FFTは2行 (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)}
  • 17. 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)}
  • 18. Fukuoka Ruby Award 3行にすると
 ちょっと見やすいかも? fft=->a{n=a.size b=a[0...(n/2)].map (n==1?a:fft[b.with_index{|x,i|x+a[i+(n/2)]}].zip (fft[b.with_index{|y,i|(y-a[i+(n/2)])* (Complex.polar(1,-2*PI/n)**i)}]).flatten)}
  • 19. Fukuoka Ruby Award Rubyの記述力! でもまあ、このコードはちょっと変態かも
  • 20. Fukuoka Ruby Award Rubyでがんばった事 !  正確な時間間隔でサンプリング! • 1/60秒=16.7ミリ秒、その倍の速度が必要! • 5ミリ秒周期で正確にサンプリング!  収集途中でGCが入ってはだめ!!  ずっと安定して動き続けないとだめ!
  • 21. Fukuoka Ruby Award 正確な時間間隔で サンプリング  リアクタパターンを利用! event machineで実装
  • 22. Fukuoka Ruby Award rubygemsの event machine ユーザ定義のイベント IOやイベント駆動 リアクタ プログラム
  • 23. Fukuoka Ruby Award rubygemsの event machine ユーザ定義のイベント 定期発生イベント リアクタ プログラム
  • 24. Fukuoka Ruby Award 5ミリ秒ごとに駆動されるプログラム (実際は微調整が必要!) require 'eventmachine' EM.run {n=0 EM.add_periodic_timer(0.005){ (時刻を調べて補正) サンプリング実行 n+=1 EM.stop if n==N } }
  • 25. Fukuoka Ruby Award サンプリング中に GCを入れない  RubyのFiberでバッファ(ウィンドウ) への書き込み処理をコルーチンにする!  継続で、配列オブジェクトを再利用!
  • 26. 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 } }
  • 27. Fukuoka Ruby Award Rubyのクロージャで 窓関数をメモ化   2回目からは計算しない! hamming=->i{m={} m[i]||=(0.54-0.46*cos(2*PI*i/N-1))}
  • 28. Fukuoka Ruby Award びっくりするくらい正確になった  
  • 29. Fukuoka Ruby Award 電力事業者の 3つのサービス  電力卸売り市場で取引される対象! •  電力供給! •  電力余力供給! •  周波数調整(アンシラリーサービス)! ! 九州電力の電力供給と電力余力
  • 30. Fukuoka Ruby Award 周波数調整力の市場価値   アメリカの水道事業者! 揚水ポンプをインバー ター型にして周波数調整 力を周波数制御卸売り市 場取引に参入! ! PJM市場での周波数調整 力取引でポンプの電力料 金を2~3%削減!
  • 31. Fukuoka Ruby Award 電力需用者側による 周波数調整サービス   ネガワット(需用者側の節電=発電)!   家庭用の蓄電池、スマート家電、スマートメータ!  デマンド・レスポンス!
  • 32. Fukuoka Ruby Award SynchroSitone 2.0  赤外線LEDぴかぴか追加バージョン 赤外線LED
  • 33. Fukuoka Ruby Award 九州中のエアコンの出力を 瞬時にシンクロさせる 10分以内に九州中のオフィスのエアコンが一斉に反応で きれば電源周波数調整力として市場価値がうまれる! 赤外線LED ぴかぴか エアコン 数万台規模
  • 34. Fukuoka Ruby Award 本当にビジネスになるかも  オフィスのエアコンの前に設置するだけで、だれでも 電力事業者の立場になれる!!  周波数調整能力は500W出力の160万円の蓄電池にまけ ないかも?(出力アップ側の制御も可能)! ! ! + ラズベリーパイ! (35ドル)! 赤外線LED! 温度センサー! 4000円くらい  7円 100円
  • 35. Fukuoka Ruby Award 成果  MakersのためのRuby! •  オープンソースハードウェアで Makerになれるよ!! •  Rubyでフィジカルコンピューティ ングすると楽しいことが実証できた
  • 36. Fukuoka Ruby Award これから  電気マネー! •  周波数調整力を原資とするソーシャルマネー?!  節電劇場! •  ソーシャルゲーム! •  ギリシャの円形劇場+ギリシャ悲劇は!  社会や人生の問題を共有し理解する装置
  • 37. Fukuoka Ruby Award mrubyへの期待  event_macnineは標準装備してほしい! •  誤差補正機能もほしい!  Fiberも貧弱なマシンにすごく有効 ! (初期のMacintoshみたいいに)!  GC.disable / GC.enable! •  GCのタイミングを意識して使いたい!