広島工業大学紀要研究編
第 45 巻（2011）pp.245-251

論文

Ruby/Tk による電力系統図作成支援システムに関する研究
竹本直史 *・永田武 **（平成22年10月28日受付）

A Power System Drawing Assistance System by Using Ruby/Tk
Naofumi TAKEMOTO and Takesi NAGATA(Received Oct. 28, 2010)

Abstract
In recent years the term “smart grid” is emerging in the media. The smart grid delivers electricity from suppliers to consumers using two-way digital technology to control appliances atconsumers’ homes to save energy, reduce cost and increase reliability and transparency. In order to operate the smart grid properly, the power system analysis is necessary. The analysis ofsmart grid is required the power system model. However the configuration of the smart grid isfrequently changed. To cope with this situation, power system drawing assistance systems arerequired.
This paper proposes a power system drawing assistance system by using Ruby/Tk. Ruby is a
scripting language, in the recent tradition of Perl, Python, and Tcl. Ruby originated in Japan
during the mid-1990s and was initially developed and designed by Yukihiro Matsumoto. It allows for a rapid development cycle and the rapid prototyping of applications. In order to the effectiveness of the proposed system, a prototype system is developed. The results show the proposed system is promising the assistance of the power system engineers.
Key Words: power system drawing assistance, Ruby, Tk, low-carbon society, smart grid, powersystem

既存の電力系統において電圧問題や需給不平衡などの様々１．はじめにな問題を引き起こすことが予想されている。
最近の電力系統では， スマートグリッド

人工のシステムの中で最大規模であるといわれている電という新し力系統は，電力化率の上昇に伴って益々その複雑さが増しい概念が出現し，情報通信技術と電力エネルギー技術の融ている。さらに，最近では低炭素社会構築に向けた対策と合が進んでおり，今後そのスマートグリッド単位での計画・して，新三種の神器

再生可能エネルギー ，運用・制御方式の開発が重要になってくると考えられる。

環境対応車 そして 省エネルギー が注目を浴びている。

したがって，スマートグリッドの運用に携わる様々な技術

特に，再生可能エネルギーである太陽光発電の需要地近郊者が，熟練した技術者と同レベルの解析を実行できる環境への導入が促進され，わが国の計画では 2020 年の太陽光が望まれている。そのスマートグリッドを構成する要素（分発電導入量が，2009 年の約 10 倍である 2,800 万 kW となっ散電源や需要家）は，上位の系統要素に比較して頻繁に追ている。このような分散電源の配電系統への大量導入は，加削除が発生し，それに対応するために電力系統図の容易と呼ばれる＊＊＊

広島工業大学大学院工学系研究科情報システム科学専攻＊＊＊

広島工業大学情報学部情報工学科― 245 ―

竹本直史・永田な作成方法が望まれている。

武た一貫した文法を持っている。また，非常にシンプルか

そこで，本研究では，本来検討すべきスマートグリッド

つ美しくプログラムを作成できる。シンプルで一貫性の内の計画・運用・制御の検討に注力できるように系統モデとれたプログラムのため，可読性やメンテナンス性が非ルを容易に構築できる Ruby/Tk を用いた「電力系統図作常に高くなっている。

成支援システム」の開発を行う。

・動的言語に型情報をつけないことである。しかし，これは型情報２．電力系統図作成支援システムがないのではなく，データ自体が型情報を持っているためプログラム上で宣言を必要としない。また，型チェッ

これまでにも電力系統図作成支援システムについての研クなどはプログラム実行時に行われる。

究がなされている。これまでの方法は，全ての要素の自動配置と自動配線を指向した方法

動的言語の特徴的な性質として，変数や式１，２），既存プログラムの有・スクリプト言語

方法３），そしてインターネットを利用した方法４）の３種類

コンパイルを必要とせず即実行できるため，開発効率が良い。

効利用を図るために解析プログラム毎に API を作成する・オブジェクト指向

Ruby は整数などの基本的なデーに大別できる。文献（1）は，VLSI の配線設計で使用さタ型をはじめとしたすべての値がオブジェクトであり，れている混雑度の概念に基づく最短経路探索法を利用するメッセージを送る統一的なインタフェースを持つ。それことで，ブランチの交差数ができるだけ少ない系統図の自故に，値によって特別な扱いをする必要がなく，ユーザ動作成を行っている。文献（2）は，系統図としての描画が考慮する必要のある事柄がそれだけ少なくて済む。

基準を定めグラフ描画に遺伝的アルゴリズムとスプリング・GUI プログラミングが容易

GUI ツールキットへのインターファイルが提供されていモデルを使用し，基準に適用したノード自動配置を行う自るので GUI プログラミングの作成が容易である。

動描画機能を備えた系統図描画支援システムを提案している。文献（3）は，オブジェクト指向データベースと解析

Tk や Gtk などの強力な・移植性が高い

Ruby は移植性を考慮して C 言語で書目的に適した GUI を用意し解析データの入力，プログラ

か れ て い る た め， 大 抵 の UNIX 系 OS で 動 作 で き る。

ムの実行，解析結果表示までを一貫的に支援するシステム

DOS，Windows，Mac，BeOS などの OS でも動作が可の構築を行っている。また，文献（4）は著者らが提案し能である。

た方法で Java アプレットを用いた教育システムを指向し一方，Ruby の大きな短所として処理時間が遅いことであるが，本研究の系統図作成では問題とはならない。

たものである。
しかしながら，これらの方法は簡単な単線図モデルを対象とするシステムか，あるいはオブジェクトデータベース

3.2

Ruby/Tkを用いた大規模なシステムとなっている。したがって，本Ruby/Tk は，Tcl/Tk に直接リンクし，コマンド文字研究では，電力系統の一部を構成するスマートグリッドを列の低レベルインタフェースを，Ruby で定義したクラス扱うモデル化に適した実モデルでの系統図作成を行ライブラリで包み込んだものとなっている。この方法にう５，
６）

よって，Tcl インタプリタのインタフェース仕様が変わら。

ない限り，Tcl/Tk の最新版が即座に利用可能となってい

３．Ruby と Ruby/Tk についてる。Ruby/Tk には下記のような特徴がある。

本研究では，開発言語として Ruby/Tk を採用する。以・強力で簡潔な GUI 機能

Tcl/Tk の豊富な拡張ライブラリも利用可能である。

下にその概要を述べる。

・Ruby との高親和性
3.1

Tk の優れた機能を活用でき，Tk 部品を Tcl/Tk のスクリプトではなく Ruby の手続きオブジェクトで与えることが可

Ruby

能である。

Ruby は 1993 年にまつもとゆきひろ氏によって開発されたフリーソフトウェアのオブジェクト指向スクリプト言・マルチスレッド対応

７）語である 。機能として，クラス定義，ガベージコレクショ
ン，プロセス操作，データ構造，強力な正規表言処理，マル チ ス レ ッ ド， 例 外 処 理， イ テ レ ー タ・ ク ロ ー ジ ャ，ユーザが GUI 操作をしている間に並列処理を続行可能である。

４．Ruby/Tk を用いた電力系統図作成支援システム

Mixin，演算子オーバーロード，ネットワーク，GUI など

本研究で Ruby を取り上げたのは，前章で述べたようにがある。また Ruby は周辺技術も多く，開発環境が充実し非常に簡潔にプログラムの作成が可能であり，プログラムている。Ruby の特徴として下記のようなものがある。

作成の負担が削減できるためである。この削減効果をみる

・シンプルな文法

た め に， １ つ の ボ タ ン か ら な る 簡 単 な プ ロ グ ラ ム をRuby はオブジェクト指向に基づい― 246 ―

Ruby/Tk による電力系統図作成支援システムに関する研究

Ruby/Tk と JavaSwing で記述し，そのソースコードの量を比較した。図１にプログラムの比較を示す。同図に示す
ように Ruby/Tk の方が Java に比べ 1/2 程のステップ数となっていることが分かる。

㪡㪸㫍㪸䈱䊒䊨䉫䊤䊛ZZZ：ブランチ／ノード番号である。ブランチ ID は，変圧器：TR，しゃ断器：CB，断路器：LS，区間：LN とする。

㪩㫌㪹㫐㪆㪫㫂䈱䊒䊨䉫䊤䊛㫀㫄㫇㫆㫉㫋 㫁㪸㫍㪸㪅㪸㫎㫋㪅㪁㪒㫀㫄㫇㫆㫉㫋 㫁㪸㫍㪸㪅㪸㫎㫋㪅㪼㫍㪼㫅㫋㪅㪁㪒㫀㫄㫇㫆㫉㫋 㫁㪸㫍㪸㫏㪅㫊㫎㫀㫅㪾㪅㪁㪒㪺㫃㪸㫊㫊 㪡㪙㫌㫋㫋㫆㫅㪫㪼㫊㫋 㪼㫏㫋㪼㫅㪻㫊 㪡㪝㫉㪸㫄㪼 㫀㫄㫇㫃㪼㫄㪼㫅㫋㫊㪘㪺㫋㫀㫆㫅㪣㫀㫊㫋㪼㫅㪼㫉 㫒㪡㪙㫌㫋㫋㫆㫅㪫㪼㫊㫋㩿㪀 㫒㪾㪼㫋㪚㫆㫅㫋㪼㫅㫋㪧㪸㫅㪼㩿㪀㪅㫊㪼㫋㪣㪸㫐㫆㫌㫋㩿㫅㪼㫎㪝㫃㫆㫎㪣㪸㫐㫆㫌㫋㩿㪀㪀㪒㪡㪙㫌㫋㫋㫆㫅 㪹㪈 㪔 㫅㪼㫎 㪡㪙㫌㫋㫋㫆㫅㩿㩹㪦㪢㩹㪀㪒㪹㪈㪅㪸㪻㪻㪘㪺㫋㫀㫆㫅㪣㫀㫊㫋㪼㫅㪼㫉㩿㫋㪿㫀㫊㪀㪒㪾㪼㫋㪚㫆㫅㫋㪼㫅㫋㪧㪸㫅㪼㩿㪀㪅㪸㪻㪻㩿㪹㪈㪀㪒

ここで，XX：ブランチ / ノード ID，YYY：変電所番号，ノード ID は，変電所：ND，送電線：NN とする。

㫉㪼㫈㫌㫀㫉㪼 㩹㫋㫂㩹㪽㪈 㪔 㪫㫂㪩㫆㫆㫋㪅㫅㪼㫎㫒㫋㫀㫋㫃㪼 㩹㪩㫌㪹㫐㪆㪫㫂 㪙㫌㫋㫋㫆㫅㩹㫔㪽㪈㪅㪾㪼㫆㫄㪼㫋㫉㫐㩿㩹㪊㪇㪇㫏㪉㪇㪇㩹㪀㪹 㪔 㪫㫂㪙㫌㫋㫋㫆㫅㪅㫅㪼㫎㩿㪽㪈㪃㩾㫋㪼㫏㫋㩾㪔㪕㩾㪦㪢㩾㪃㩾㪺㫆㫄㫄㪸㫅㪻㩾㪔㪕㫇㫉㫆㪺㫒㫇㫌㫋㫊 㩹㪦㪢㩹㫔㪃㩹㫎㫀㪻㫋㪿㩹㪔㪕㪈㪇㪃㩾㪿㪼㫀㪾㪿㫋㩾㪔㪕㪉㪃㩾㪽㫆㫅㫋㩾㪔㪕㪏㪀㪅㫇㪸㪺㫂㩿㩾㫇㪸㪻㫐㩾㪔㪕㪉㪇㪀㪹 㪔 㪫㫂㪙㫌㫋㫋㫆㫅㪅㫅㪼㫎㩿㪽㪈㪃㩾㫋㪼㫏㫋㩾㪔㪕㩾㪜㪯㪠㪫㩾㪃㩾㪺㫆㫄㫄㪸㫅㪻㩾㪔㪕㫇㫉㫆㪺㫒㪼㫏㫀㫋㫔㪃㩹㫎㫀㪻㫋㪿㩹㪔㪕㪈㪇㪃㩾㪿㪼㫀㪾㪿㫋㩾㪔㪕㪉㪃㩾㪽㫆㫅㫋㩾㪔㪕㪏㪀㪅㫇㪸㪺㫂㩿㩾㫇㪸㪻㫐㩾㪔㪕㪉㪇㪀㪫㫂㪅㫄㪸㫀㫅㫃㫆㫆㫇㫊㪼㫋㪛㪼㪽㪸㫌㫃㫋㪚㫃㫆㫊㪼㪦㫇㪼㫉㪸㫋㫀㫆㫅㩿㪡㪝㫉㪸㫄㪼㪅㪜㪯㪠㪫㪶㪦㪥㪶㪚㪣㪦㪪㪜㪀㪒㫊㪼㫋㪫㫀㫋㫃㪼㩿㩹㪡㪙㫌㫋㫋㫆㫅㪫㪼㫊㫋㩹㪀㪒㫊㪼㫋㪪㫀㫑㪼㩿㪊㪇㪇㪃 㪉㪇㪇㪀㪒㫊㪼㫋㪭㫀㫊㫀㪹㫃㪼㩿㫋㫉㫌㪼㪀㪒㫔㫇㫌㪹㫃㫀㪺 㫍㫆㫀㪻 㪸㪺㫋㫀㫆㫅㪧㪼㫉㪽㫆㫉㫄㪼㪻㩿㪘㪺㫋㫀㫆㫅㪜㫍㪼㫅㫋㪼㪀 㫒㪪㫐㫊㫋㪼㫄㪅㫆㫌㫋㪅㫇㫉㫀㫅㫋㫃㫅㩿㩹㪦㪢㩹㪀㪒㫔㫇㫌㪹㫃㫀㪺 㫊㫋㪸㫋㫀㪺 㫍㫆㫀㪻 㫄㪸㫀㫅㩿㪪㫋㫉㫀㫅㪾㪲㪴 㪸㫉㪾㫊㪀 㫒㫅㪼㫎 㪡㪙㫌㫋㫋㫆㫅㪫㪼㫊㫋㩿㪀㪒㫔㫔

図１

図３

Ruby/Tk と JavaSwing の比較

4.3

電力系統の表現方法

系統図作成機能

系統図作成機能は，GUI を用いた描画機能（変電所・4.1

送電線・ブランチデータの端子設定作成）と，データから提案システムの概要提案するシステムの全体構成を図２に示す。同図に示すの自動描画機能，そしてデータの編集機能の３つからなる。

ように，提案システムは系統図作成機能と保存機能の２つの機能を有する。以下にそれらの機能について説明する。

（1）GUI を用いた描画機能
変電所の描画は，予め登録した変電所タイプを選択し，その変電所内のデータを入力することにより行う。その後，メイン画面上の任意の箇所に描画する。また，同時に自動で変電所内のブランチデータの端子設定を行う。
ブランチデータの端子設定はシステム上，変電所の設置後に行う。また，図４はブランチ端子設定の処理順路を示す。以下に，端子設定の条件と手順について述べる。
〔条件〕
・母線の１次側から順にノード番号を与える。
・ブランチとブランチの間にノードが存在する。
・ブランチは始端終端側のノード情報を持つ。
・スタート位置を上流側とする。

図２

提案システムの構成図〔手順〕
・変電所の最初に作成されたブランチから処理する。

4.2

・対象ブランチは接続する上流ノードと下流ノードを取得電力系統の表現方法する。また，取得したノードが上流ならば始端，下流な提案システムでの電力系統の表現方法を図３に示す。変らば終端にノードデータを格納する。

電所や配電用変電所の母線と調相設備はノード，変圧器と開閉器（しゃ断器，断路器）をブランチとする。一方，送・同様の処理を変電所内の全てのブランチに行う。

電線は区間をブランチとし，分岐をノードとする。また，・処理順路は原則スタート位置から左向きに行う。
送電線の描画は，始端位置と終端位置を決め，その間にブランチとノードは以下のような設備コードを付けている。

送電線を描画する。クリックする事で始端位置決定し，ダブルクリックする事で終端位置を決定する。また，始端位― 247 ―竹本直史・永田21436518 17 16 15 8 14 13 727 26 25 24 10 23 22 930 2934 33 32 3141 40 39 3837④各取得データをもとに変電所の配置を行う。
4.4122136

武保存機能

11

保存機能はデータの保存と画像データの保存の２つから1920なる。データの保存ではブランチ，ノード，ステータスデー
タの保存と自動描画機能に必要となる変電所データと端子2835データを保存される。変電所データには変電所の識別番号と変電所タイプ，端子データには変電所の識別番号と端子数と向きが保存される。画像データの保存は作成した電力

図４

ブランチ端子の探索順路系統図を ESP 形式で保存する。

置決定後に，クリックする事で中間点が作成でき送電線を５．Ruby/Tk を用いた電力系統図作成支援システム

折れ線で描画できる。

開発した電力系統図作成支援システムの系統図作成機能の実行例を本章で述べる。図５にメイン画面を示す。同図（2）定義データの編集機能左側を設置画面と呼び，ここに電力系統図を作成する。ま

定義データはブランチデータ，ノードデータ，ステータ

た，同図の右側に拡大した動作ボタンを示す。

スデータの三種類からなる。其々の内容は以下の通りである。
・ブランチデータ：ブランチ名，始端，終端，抵抗，リアクタンス，静電容量，タップ・ノードデータ：ノード名，タイプ，有効電力，無効電力，電圧の大きさ，電圧の位相角・ステータスデータ：ブランチ / ノード名，状態（開閉器の ON/OFF，充停電状態）
定義データの編集では，ブランチ名・ノード名・始端・図５

終端値を除く値を変更できる。また，作成した変電所及びメイン画面送電線の移動と削除が可能である。
内部データとして，ブランチデータの抵抗，リアクタン

5.1

ス，静電容量の初期値は 0.0 に，タップは 1.0 に設定され変電所の作成方法

変電所の実行例を図６に示す。動作ボタン欄からSS̲ている。ノードデータのタイプの初期値は Null に設定さCreateれている。有効電力，無効電力，電圧の大きさ，電圧の位ている変電所タイプを選択，同図（b）に変電所の識別番

相角は 0.0 に設定されている。ステータスデータのブラン

号と母線・しゃ断器・断路器・変圧器・SC/ShR 個数を入チの状態は１次側・２次側によって自動で ON/OFF を設

力後，同図（c）に変電所の接続端子数と位置を入力する。

定する。ON/OFF 状態の表示方法は ON を黒，OFF を白そして同図（d）のクリックした位置に変電所を描画する。と す る。 ス テ ー タ ス デ ー タ の 充 停 電 状 態 は 充 電 を

また，同図（e）より変電所の選択とパラメーターの変更

CHARGED，停電を UNCHARGED で記述する。初期値により，任意の構成が作成可能である。

は CHARGED に設定する。

を選択，その後，同図（a）から，予め登録され作成された変電所の詳細データは変更することができる。変更したい変電所内のパーツ（しゃ断器・断路器・変（3）データからの自動描画機能

圧器）をクリックすることで図７のウィンドウが表示されデータからの自動描画機能は以下の手順で行う。

る。このウィンドウでブランチデータの抵抗・リアクタン①変電所毎にブランチをまとめ，各変電所内の開閉器数・変圧器数を求める。

ス・静電容量・タップを変更できる。また，開閉器の場合は開閉器の ON/OFF を変更できる。開閉器の状態を変更②変電所データから変電所座標と SC/ShR 数，端子デーした場合，変電所の表示が更新される。

タから端子位置と端子数を取得する。
③各変電所はブランチ端子より自身に接続する送電線デー

5.2 送電の作成方法

タを取得する。

送電線の実行例を図８に示す。動作ボタンから― 248 ―Line̲Ruby/Tk による電力系統図作成支援システムに関する研究（a） input name（a） select type（b） substation data input（d） Power System Diagram Creat（c） terminal input（b） Power System Diagram Creat
図８

送電線の実行例

タ，ノードデータ，ステータスデータを選択した後，データを見たい変電所を選択，OK を押下すると同図（b）を表示する。同図（b）は図９のブランチデータを示す。表示されたブランチデータにおいて，変更したい行をクリッ（e）パラメーター変更時の変電所作成例
図６

クすると同図（c）が表示され，抵抗，リアクタンス，静変電所の実行例

電容量，タップの数値を変更することが出来る。変更値を入力後，OK を押下すると内容を更新する。

図７

Create

変電所内のデータ変更

図９モデル変電所を選択すると図８（a）が表示される。同図より

input nameに送電線の識別番号を入力後，設置画面上（2）ノードをクリックして始端位置を決め，ダブルクリックで終端位

図 11 は図９のノードデータを示す。データ内容を変更置を決める。送電線は始端終端間に描画される。また，始する場合は，上記と同様に変更する行をクリックする。す端位置の決定後に１クリックすることで中間点を作成し，ると入力ウィンドウが表示され，ノードタイプ，有効電力，送電線を折れ線で描画できる。ブランチデータの端子の設

無効電力，電圧の大きさ，電圧の位相角の値を変更するこ

定は始端位置と接続するものと終端位置に接続するものをとが出来る。

自動で取得する。
（3）ステータス
5.3

定義データの編集機能

図 12 は図９のステータスデータを示す。データの変更（1）ブランチ方法は上記と同じであり，状態を変更できる。

定義データの編集機能のモデル変電所を図９に示し，編集機能の実行例を図 10 に示す。同図（a）よりブランチデー― 249 ―

竹本直史・永田武（a）データ選択（a）ノードデータ（b）ブランチデータリスト（b）ノードデータ変更
図 11

定義データの編集機能の実行例（ノード）（c）ブランチデータ変更画面
図 10 定義データの編集機能の実行例（ブランチ）

６．おわりに（a）ステータスデータ

本論文では，Ruby/Tk を用いた電力系統図作成支援システムを開発した。開発システムの特長を以下に示す。
（1）変電所は標準部品の選択とパラメーターの変更により任意の変電所の作成が可能である。
（2）送電線は変電所の端子番号と接続させることにより，任意の構成を可能とする。
（3）完成した電力系統は定義ファイルとして保存し，解析（b）ステータスデータ変更等での再利用が可能である。
図 12

また，７変電所３送電線の電力系統図（内部データを含定義データの編集機能の実行例（ステータス）む）の作成時間は４分程度であった。この結果から電力系統図作成の時間短縮ができていることが分かる。
今後の課題は，系統解析ソフトウェアとの連携と，Webアプリケーションへの拡張が挙げられる。

― 250 ―

Ruby/Tk による電力系統図作成支援システムに関する研究

文４）永田，渡部，大野，佐々木：「WWW 環境を用いた電献力系統解析のための教育支援システムの試作」，電学論Ｂ，120，2，pp.128-133（2000）

１）佐々木，歌谷，竹田，渡辺，三崎：「電力系統図自動作成システムの開発」，電学論Ｂ，116，1，pp.35-41

５）竹本，永田：「Ruby/Tk を用いた電力系統図作成支援システムの開発」，電気学会 C 部門全国大会，pp1704（1996）（2010）

２）川原，造賀，佐々木：「GA による系統図自動描画支援システムの構築」，電学論Ｂ，123，8，pp.927-934

６）竹本，永田：「Ruby/Tk による電力系統図作成ツールの開発」，電気・情報関連学会中国支部連合大会（2010）（2003）
３）佐々木，歌谷，久保川，川原：「統合的電力系統解析

７）Ruby 公式ホームページ

支 援 シ ス テ ム の 構 築 」， 電 学 論 Ｂ，115，7，pp.734740（1995）― 251 ―

http://www.ruby-lang.org/ja/about/（2010/10/25）