Upgrade to Pro — share decks privately, control downloads, hide ads and more …

関数型言語Elixirで作る小水力発電システム part 1

Avatar for kikuyuta kikuyuta
October 22, 2025
8

関数型言語Elixirで作る小水力発電システム part 1

関数型言語Elixirで組み込みLinux開発ができるNervesというオープンソースのプラットフォームがあります。本セミナーでは、小水力発電所の制御に Nerves を適用した事例を、そのモチベーションから実装に関する内容まで紹介いたします。このスライドは発表の前半の菊池豊が担当した部分で、概要とハードウェアの解説をしたものです。

Avatar for kikuyuta

kikuyuta

October 22, 2025
Tweet

Transcript

  1. 内容 • 背景 (by kikuyuta) – 小水力発電システムざっくり入門とこれまでの活動 • ハードウェアについて (by

    kikuyuta) – Nerves マシンの開発 – 今回のハードウェア設計の方針 • ソフトウェア実装 (by pojiro) 2025.10.18 菊池 豊@NervesJP & 高知工科大学 4
  2. 小水力発電制御に求められる機能 2025.10.18 菊池 豊@NervesJP & 高知工科大学 7 • 動かす、止める、保護する –

    特に異常の検出と、異常検出時に安定に安全に止めること • 与えられた状況で最大の発電出力(効率)を出す – 流量や需給バランスが変動する • 管理・監視 – 状況を見る、操作する、記録を取る – 現場とネット経由と
  3. これまでの歴史 2025.10.18 菊池 豊@NervesJP & 高知工科大学 8 2016 2018 2020

    2022 PLC Ladder 1st Original box Python 2nd Original box (not used for real applications) 3rd Original box Elixir Nerves 2024 Hardware: Language:
  4. 本沢小水力発電所の仕様 2025.10.18 菊池 豊@NervesJP & 高知工科大学 14 • 総落差 ≒

    80m • 流量 ≦ 90L/s • ペルトン水車 – 縦軸 – 電動ノズル 4射 – 出力 ≒ 55kW • 同期発電機: 60kVA • 蓄電池: 54.6kWh • 系統: 6600V 60Hz
  5. Nerves がいごく堅牢なマシンを • 2019年当時はそれほど多くなかった – 産業用の環境で大丈夫な Linux ハードウェア • 温度、湿度、振動、埃…

    • 自分たちで作った – Beaglebone(オープンソースハードウェア)をベースに – 産業の環境に耐えられるかの試験を実施 IEC 61131-2 2025.10.18 菊池 豊@NervesJP & 高知工科大学 15
  6. 制御システムのハードウェア概要 2025.10.18 菊池 豊@NervesJP & 高知工科大学 19 MODBUS TCP Erlang

    Cluster MODBUS RTU MODBUS TCP Powerhouse Turbine / Generator Nagasaka Ski house Power Grid / Battery Digital I/O Analog I/O Digital I/O Other types RTU/TCP converter Erlang Cluster MODBUS/TCP MODBUS/TCP Erlang Cluster TCP/IP/Ethernet Optical Fiber L2SW L2SW Digital I/O Digital I/O
  7. 短いライフサイクルをどうするか 2025.10.18 菊池 豊@NervesJP & 高知工科大学 20 • 小水力発電システムは何十年もいごく –

    デバイス類が製造中止になったらどうする? • 我々の回答 – MODBUS や TCP/IP/Ethernet の規格は生き続けるだろう – Linux箱からの独立 = 本体の入出力を使わない • すべての I/O は MODBUS 経由で – ほとんどは Modbus/TCP、ちょっぴり Modbus/RTU – ExiBee は Modbus/TCP のみを使い、自身の I/O は使わない