第 4 章 ORS の実装
4.3 ソフトウェア実装
図4.8: ORS (Outlet for Reducing Standby power)
によって計算することができる.
4.3.2 位置情報確認モジュール
ORSでは6.1.2節にて述べた通り,ZigbeeとWifiを使ってサーバを通してユーザへ の位置確認を行う.サーバでは,ORSからZigbee経由で位置情報確認パケットを受 け取ると,ユーザが持つ無線子機への疎通確認を行うスクリプトがサーバ上で実行さ れ,Wifi経由でユーザへの生存確認パケットを送信する.その結果をORSへZigbee 経由で送信する.生存確認はPingで行われるが,パケットロスによる生存確認データ の欠損も考慮し,0.5秒間隔で計10回確認した結果を状態判定モジュールに送信する こととした.
4.3.3 状態判定モジュール
状態判定モジュールは,以下の二つの動作を行う.
家電状態判定
家電の状態(稼働中・待機中・停止中)を判定する.2.2節にて述べたように,電 力量という単一の物理量から家電の状態を推測することは非常に難しく,推測を 誤り誤作動を引き起こす要因となり得る.本論文では,測定対象家電の稼働時電 力量と待機時電力量を測定し,測定結果を閾値Vxとして設けることにより家電 状態の判定を行うこととした.
ユーザ位置状態判定
位置情報確認モジュールから送られたPing結果を参照し,1回以上ユーザの持 つ無線子機の生存が確認された時,ユーザが在宅中であるという判定を行う.
4.3.4 ロギングモジュール
状態判定モジュールにて判定した各種のデータを,タイムスタンプを付加してロギ ングを行う.ロギングは1回/分毎に実施され,1日で合計1440個のデータ(DL)を 保持する.また,ロギングデータは解析を行いやすいようカンマ区切りで保存される.
ロギングの例を図4.9に示す.
ロギングデータは1つの機器に1つづつ作成され,1分間に1行づつ更新される.ま た,後々電力量の管理をしやすいよう,測定した家電の電力量も同時にロギングする.
4.3.5 相関性算出モジュール
ORSにおける相関性の算出は,時間・曜日・ユーザ位置状況の3つの要素と,家電 の稼動状態の相関性を算出する.各関係の因果関係を表したベイジアンネットワーク 図を図4.10に示す.
ロギングデータを用いて1日に1回,0時00分になると相関性算出モジュールが呼 び出される.相関性算出モジュールでは,ロギングモジュールにて作成したロギング データから,時間:電力量,曜日:電力量,ユーザ在宅状況:電力量の3つ算出され,
それぞれの結果が別々のファイルに保存される.
図 4.9: ロギングの例
図4.10: 各要素のベイジアンネットワーク
時間:電力量の相関性
時間:電力量では,TN(hour:min)を扱いやすいようにデータ量DLへ換算し,1 分間ごとの相関性を算出する.TN(hour:min)からDLへの換算は
DL=hour*60 +min (4.6)
にて計算され,1日を0〜1439のデータで表すことができる.相関性の算出方法 は4.3節にて述べた稼働確率の算出方法を用い,日にちごとのN(DL)に対応し た家電稼動状態(稼働—待機,停止)を,CT(NDL))(1,0)とし,N日分のデータ を足していく.従って,ある時間DLにおける家電の稼働確率Pwは,
Pw=CT(1
DL)+CT(2
DL)・・・CT(N
DL)
N (4.7)
によって算出される.
曜日:電力量の相関性
曜日:電力量では,日曜日から土曜日までの7日間について,特定の曜日にのみ 発生する動作を検出するために算出する.基本的な算出方法は時間:電力量と同 一であるが,曜日:電力量の場合は,曜日毎に稼働確率を算出する.従って,特 定の曜日W の時間DLにおける家電の稼働確率Pwは
P Ww= CT(W1DL)+CT(W2DL)・・・CT(W NDL)
N (4.8)
となる.
ユーザ在宅状況:電力量の相関性
ユーザの位置状態と家電の稼動状態の相関性は,まず1日分のロギングデータの うち,ユーザの位置状態ステータスSp(外出,在宅)においてSp(外出)であるTS
を調べる.このTSのうち待機電力が発生した時間Tの個数TS0 を調べ,ユーザ が外出中に機器が稼動状態でない確率Ppを下記式により算出する.
Pp=TS0 TS
(4.9) またユーザが複数いる場合は機器1台に対し確率Ppをユーザ数分算出する.
4.3.6 制御モジュール
制御モジュールでは,相関性算出モジュールにて計算された結果に基づき,ロギン グと同タイミングで制御を行う.まず,相関性算出モジュールから送られてきたユー ザ在宅状況と電力量の相関性を示すPP が,基準となる確率Pを上回っているかを検 証する.上回っていれば,ユーザ外出時は使用しない機器であると判断が出来るため,
判断フラグ変数であるP laceを”ON”とする.この動作をユーザと機器についてそれ ぞれ行い,ユーザが外出した場合に使用しない機器の電源を落とす動作を行う.PPを 基準とした制御パターンの例を,表4.3に記した.
表4.3: ユーザ位置状態を元にした家電制御の例
ユーザ1におけるPP1 ユーザ2におけるPP2 ユーザ1外出時の動作
家電1 94% 45% 供給遮断
家電2 40% 92% 動作なし
家電3 30% 40% 動作なし
基準確率P = 90%
判断フラグ変数をセットした後,時間学習の相関性を読み込む.ここで,開閉動作 はリレーにて電気的に行うため,命令を送れば家電の状態に関わらずリレーは動作し てしまう.そのため家電機器使用中に突然リレーが開き,家電の稼働中にも関わらず 動作が停止してしまうことも考えられる.この誤作動を防止するため,現在の家電状 態が1(稼働中)であれば遮断動作を先延ばしし,次回の制御タイミングを待つ.「待機 中」または「停止中」であればリレーを開く命令を送信し,待機電力の発生を遮断す る.また,ユーザが手動でプッシュスイッチを押下した場合はこの限りではなく,家 電が稼働中であっても強制的に電源を遮断する命令を送ることとした.
最後に,現在の時刻における家電の稼働確率PW と,予め入力された時間用基準確 率PCを比較し,比較結果に従ってリレーの開閉命令を出す.
4.3.7 ソフトウェア実装のまとめ
4.3節にて述べたソフトウェア実装について,実際に動作するアルゴリズムを図4.11,
図4.12,および図4.13にまとめた.
if ss=0
# hh(時間):mm(分):ss(秒)
# Px = 家電状態判定用閾値(W)
PlugN power = Pn
User status
Request to Server
Server Routine Logging Routine
Recieve
Pn>Px ?
yes
PlugN = 1 PlugN = 0 no
User response ?
Status Writing Time,PlugN,Sp
to Relativity culculate sub routine
Recieve
ping to User S2
response
S3 Set result data on off
to S2 if Loop>10 to S3
Send to ORS
if (hh,mm,ss) = 0 L1
Sp = 1
on off
Sp = 0
S1
Go to Control Routine L2
図4.11: 動作アルゴリズム-1
Relativity Culculate Routine
if(hh,mm,ss)= 0
if PlugN(T)= 0
Ts = Ts + 1 Reading Logging File
Tsʼ = Tsʼ + 1 if Sp(T) = 0 no
yes
yes
T>Tmax
T Tmax no R1
Pp =
Ts Tsʼ
CTʼ(T) = CT(T)Day0 +CT(T)Day1 +CT(T)Day2 ....
+CT(T)DayN
Pw(T) = CTʼ(T)
N
T Tmax T = T+1
to R2
T>Tmax T = T+1
to R1
T = T+1 to R1
T = T+1 to R1
Reading Logging File R2
Write Pw(T) to Relativity File 2
CTʼ(T) = CT(T)Wd1 +CT(T)Wd2 ....
+CT(T)WdN
PWw(T) = CTʼ(T)
N
T Tmax T = T+1
to R3
T>Tmax Reading Logging File R3
Write PWw(T) to Relativity File
Go to Time Relativity Routine
Go to Weekday Relativity Routine
Weekday Relativity Routine Time Relativity Routine
Place Relativity Routine
Go to Logging Routine
# Pp = 外出時の非稼働確率
# Pw = 時間稼働確率
# PWw = 曜日ごとの時間稼働確率
# CT = 機器状態変数
# CTʼ = N日分の機器状態変数合計値
#WD = 曜日変数(1〜7)
WD = WD + 1 WD 7
T = 0 to R3
WD>7
Write PWw(T) to Relativity File 3
Write Pw(T) to Relativity File 2
図4.12: 動作アルゴリズム-2
Control Routine
Read Relativity File 1
Pp > P ? yes
Set Place = ON
Read Relativity File 2|3
no
PlugN = 0 ? yes
no
Place = ON ?
yes
no
Sp = 0 ? no
Go to Logging Routine
Relay Open yes
Relay Close Pw(T) < Pc ? yes no
Go to Logging Routine
Go to Logging Routine
# Pc = 基準確率
図4.13: 動作アルゴリズム-3