文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.05.017
中文引用格式: 史斌斌,王宜懷. 一種基于真假值的智能家居控制算法研究[J].電子技術應用,2016,42(5):60-63,67.
英文引用格式: Shi Binbin,Wang Yihuai. Research of a smart home control algorithm based on ture or false[J].Application of Electronic Technique,2016,42(5):60-63,67.
0 引言
在人工智能領域,機器學習和自適應等算法是主要研究方向,而面對智能家居領域的控制,機器學習等方法并不合適。原因如下:首先,樣本空間不足,沒有足夠的訓練數據[1]。例如,一般城市家庭的生活作息是以星期為單位,即使只收集一個家庭50組數據就需要花費一年的時間,這在實際運用中行不通;其次,學習難度大。準確性地學習一個人或一個家庭的生活作息難度非常大,因為人不存在絕對的內在作息規律,隨機性非常大[2];最后,計算能力不足。人工智能一般需要很大的計算量,而智能家居的控制算法基本運行在單片機或微控制器上,這些處理器相對PC或服務器級別的處理器而言,主頻低,單核,位長短和浮點計算能力欠缺或不足[3-4]。
基于以上事實,智能家居控制算法不能采用既有模型和思路來實現。算法必須具備不需要學習樣本、應對變化反應速度快、計算量小和容易被編碼等特點[5-6]。智能家居的控制算法是一個具體場景的應用,故在學術上對此的研究并不多。本文通過不斷的嘗試和實驗,提出了以真假值為主要計算手段的TF算法。
1 算法概述
為簡化算法的表達并增強實用性,引用電熱水器作為家庭設備終端進行說明,該設備是中國普通家庭普及率最高的家用電器。一般家庭使用熱水的習慣集中在早晨和晚上,而電熱水器卻是全天24小時保存熱水,造成了電能浪費[7]。以中國南方為例,夏季即使白天和夜里不使用熱水,熱水器一般會空燒一次,而在冬天則空燒的頻率更大,嚴重造成了電能浪費。由于家庭組成千變萬化,不可能通過提前在熱水器中預置一個全能的控制算法來做實際控制,但可以在熱水器中預置一個具備最低級控制能力并同時具有收集分析歷史數據和根據數據的變化動態做出決策的TF算法。在實際使用中,通過它在不同的家庭環境中控制熱水器的同時提取用戶數據,制定出與特定使用者相匹配的控制策略。
2 建立表達模型
熱水器的使用是現實世界中的具體問題,如果要想通過算法或程序來進行智能控制和管理,則首先需要建立相關的數據表達模型,這個表達模型應該容易被計算機表示和處理,只有在這個表達模型基礎上,才能進行進一步計算等處理。
2.1 原始數據采集
算法控制的直接對象是熱水器,因此要了解對應家庭使用熱水的時間段數據,而數據只有通過熱水器獲知。熱水在實際使用中總是時斷時續,通過統計發現,一個人的簡單洗漱過程一般會持續10~15分鐘,平均開關水龍頭3次[8],而如果把這些瑣碎的時間片全部收集起來進行處理則沒有任何意義。數據收集采取的辦法是兩次使用熱水的時間差在半個小時以內,則算為一次。通過使用該收集數據的方法抽查并記錄某一家庭某一周使用熱水的數據如下所示:
周一: 06:28-07:03\11:40-13:59\18:32-00:05
周二: 06:53-07:28\19:20-22:22
周三: 06:10-07:40\19:43-00:20\22:21-00:12
周四: 06:31-06:58\17:46-20:19
周五: 06:11-07:42\17:17-00:28
周六: 09:01-11:11\12:40-14:22\08:03-01:16
周日: 08:40-10:15\11:49-15:48\18:53-23:20
2.2 數據處理和離散化
為了更加清晰地發現規律,需要對原始采集的數據做進一步處理,實質是將其工作區間擴大和計數單位離散化。具體的處理方法是將起始時間在xx:01-xx:30和xx:31-xx:60(xx:00)之間的數據劃歸到xx:00和xx:30。結束時間在xx:01-xx:30和xx:31-xx:60(xx:00)之間的數據劃歸到xx:30和xx+1:00。處理過的數據如下所示:
周一: 06:00-07:30\11:30-14:00\18:30-00:30
周二: 06:30-07:30\19:00-22:30
周三: 06:00-08:00\19:30-21:30\22:00-00:30
周四: 06:30-07:00\17:30-20:30
周五: 06:00-08:00\17:00-00:30
周六: 09:00-11:30\12:30-14:30\08:00-01:30
周日: 08:30-10:30\11:30-16:00\18:30-23:30
通過將處理過的數據與原始數據對比可以發現,原始數據是被處理過數據的一個真子集。雖然原始數據經處理后發生變化,但可以在不影響使用者數據提取的前提下簡化計算工作,所以進行這樣的數據處理是必要的。
為了更清晰地看清規律將數據可視化,根據處理后的數據得出表1的位圖表。縱向為時間單位,每半個小時為一個計算單位;橫向為7個時間單位,每天是一個計算單位。
根據實際使用情況每半個小時對應著布爾值“真”或是“假”,用T表示“真”,F表示“假”。通過表1發現,只要控制算法最終能確定每個格子的值取真還是假即可。至此,將實際問題中的模擬量轉化成了由位圖表示的計算機可處理的表達模型,整個算法也是基于位圖展開的。
2.3 應用場景分析及研究重點
算法的最終使用場景是在沒有任何歷史數據存在的情況下,收集數據與分析數據同步進行。由于使用家庭不同和節氣等原因,生活作息會不斷變化,即使是通過累積歷史數據分析并得到了決策方法,也不能以后就一直使用這個方法,還必須持續地分析過去的數據,形成與使用者家庭當前最匹配的控制方法。
在現實中,城市居民的生活往往以周或天為一個規律性的周期,所以需要加入一個控制周期參數LP(learning period)來定義控制周期。根據實際情況給LP取兩個值,如果是天,用LP=d(day)表示;或者是星期,用LP=w(week)表示。
在LP=d的情況下,前一天的數據會一定程度地影響第二天對熱水器的控制,這種情況適用于不是以星期為生活周期的家庭。
在LP=w的情況下,前一個星期的輸入數據會在一定程度上影響下個星期對控制器的控制。其實LP=w是由LP=d的組合而行成的情況,以每周的星期三為例,當前星期的周三只能借鑒前一個星期周三的歷史數據,本質還是LP=d的情況,所以本論文重點研究LP=d的情況。
3 算法原理
當前控制位圖(A)+最近一天的數據位圖(B)=最終控制位圖(C)(計算方法),如圖1所示。
其中當前控制位圖(A)表示當前的控制決策;最近一天的數據位圖(B)表示最新的歷史數據,它是算法的輸入;最終控制位圖(C)表示通過計算得出的最新控制決策結果,它是算法的輸出。而在整個算法工作流程中,計算方法是核心,直接決定著最終控制結果的好壞。
3.1 TF初步方法
最簡單的初步計算方法是采取類似真值計算法來得出目標控制位圖。以圖1的07:00-07:30這一格為例來說明。圖2給出了計算法則。
這種策略完全參考最新一天的數據,把最近一天的數據當作下一天的控制方法。這種方法雖然簡單,但是不具備靈活性和健壯性。尤其是對突然不規律的一天數據這種情況,完全沒有抵御能力。另外也沒有考慮到06:30-07:00和07:30-08:00等目標格附近對最終結果的影響,因為正常的生活作息都是在一定的區間內搖擺,必須要注重時間前后性的聯系。
3.2 TF改進方法
初步方法除了參照最近一天的數據B外,并沒有參考以前的數據,需要在初步方法基礎上做進一步改進。要想參考以前的歷史數據,需要把歷史數據一定程度反映到當前控制位圖A中。每一個格子在可以取真假值之外,需要再攜帶一個權值,這里用W表示。以W作為參考,面對最新一天的數據位圖時,可以綜合W的值來做出決策,而不是完全按照最新一天的位圖信息來決定下一天的控制位圖。初步方法有一點需要保留——T值即刻生效法,無論當前控制位圖A的某一格子是T還是F,或者W取值是什么,只要最近一天數據位圖B的對應格子是T,則下一天的控制位圖對應格子做出的決策是T。采取“T值即刻生效法”是為了盡量不要遺漏工作時間,快速對變化做出反應,從而減少給正常生活帶來麻煩。這也是整個算法的原則之一,實現手段是盡量使算法的T值域大于等于真正的T值域,這樣可以更好地為智能生活帶來方便。圖3給出了“T值即刻生效法”的運算法則。
W的一種取法是統計式的方式,即以T或F的總數為分子,T和F的和總數為分母。W的另外一種取法是記錄式的方式,記錄預定義的一段時間內連續的T或是F的總數。由于人的活動具有時間局部性,相同活動規律具有聚集性,第二種方法可以反映相應的聚集性和連續性,所以W采取第二種方式取值,具體的取法如下。
用3個域來保存最近三天的T/F值記錄。W的3個域初始值均為T,在未接觸到使用者數據時,默認全天工作。W的動態變化如圖4所示。
W從整體上看是一個按著時間的先后順序向左移動的記錄。W保存的是使用者家庭最近過去三天的T/F值情況。
在T值即刻生效法和W的約束下,需要新的計算法則,以W在n(n>=3)天后的情況為例來說明,如圖5所示。
以第n天的數據劃分為兩種情況。
第一種情況:第n天的數據值為T。根據T值即刻生效法會直接得出控制結果為T。這種情況下不需要參考W的值。
第二種情況:第n天的數據值為F。這種情況,T值即刻生效法不起作用,做決策的依據是查看第n-2天的數據值和第n-1天的數據值的真假。如果全部是F,則得出控制值為F;如果只有T存在,則會得出控制結果為T。該情況采取這種策略的目的是為由T向F變化提供一個容量為3的緩沖,只有連續三天為F才能確定為F,這些做法很好地體現了T值域最大可能性的覆蓋真實情況。具體的計算法則如圖6所示。
3.3 TF最終方法
改進方法可以反映人們生活習慣的時間局部性,但其缺點是邊界過于硬朗和容易造成控制漏洞。下面以圖1的15:00一格為研究對象來說明。
使用改進方法則只參考時間段15:00~15:30的當前控制位圖A和15:00~15:30的最新歷史數據B,然后得到15:00~15:30的控制結果C。而實際上,人們的生活行為是線性的,具有時間前后連續性。為此,除了需要參考15:00~15:30的當前位圖和最近一天15:00~15:30的數據位圖外,需要把它前一格的數據和后一格的數據作為參考,進行評估。截取圖1的數據如圖7所示。
使用改進方法可以分別得到C的14:30格子、15:00格子和15:30格子的控制結果。為了反映時間的連續性,在C的基礎上建立3個格子的關聯。具體分為兩種情況:
第一種情況:當使用改進方法計算出15:00格子的控制結果為T,則依然遵守T值即刻生效法,不做任何操作,直接確定其最終控制結果為T。
第二種情況:當使用改進方法計算出15:00格子的控制結果為F,并通過改進方法計算出14:30格子和15:30格子的控制結果。如果想要確定15:00格子的最終控制結果,需要參考其相鄰格子的值。具體的辦法是采取簡單投票法,如果其他兩個格子都是T,則15:00格子的最終控制結果為T;否則,15:00格子的最終控制結果為F。這種做法進一步加大了T域覆蓋真實T的可能性。
最終方法在初步方法和改進方法的基礎上進行了改進和完善,去掉了初步方法和改進方法的缺點和不足,繼承了它們的優點。最終方法具有對T變化反應迅速、對F變化反應遲緩,并具有柔和邊界和防止控制漏洞等特性。
4 測試結果和評價
對算法進行測試有模擬和實踐兩種方法。對于TF算法而言,由于沒有方法對人的這種隨機性行為進行模擬,所以采用模擬方法并不可行。故采用實踐測試方法對TF算法進行測試。
由于時間等因素的限制,對TF算法進行了小范圍測試,統計以天為生活周期某一家庭使用熱水器的數據,持續時間為10天。另外,為了說明算法的使用效果,把算法的控制結果和這一個家庭的數據進行對比,結果如圖8所示。
通過測試結果表發現,前三天是導入期,故TF算法具有最大工作時間,其控制的熱水器是全天24小時工作,沒有收斂,從第四天開始收斂。其中有兩個參數需要統計,一個是命中率為93.9%,這個參數直接影響到使用者的體驗,命中率越高,則用戶越滿意。非命中的格子在測試結果圖8中已經被標記出來,非命中率為6.1%。
從節能省電的角度來評價算法,則需要統計無效控制,去掉前三天的情況,無效控制率為36.7%。單純從節能省電的角度來評價算法,這個參數越低,則電能利用率越高。但是,只有在命中率滿足一定要求下,提升這個指標才有意義。
由于學術界對智能家居智能算法的研究很少,故沒有辦法通過對比數據來證明算法性能,但可通過統計并對比使用TF控制算法前后的用電量來測試。表2分別統計了TF控制算法運行不同時間與平時的用電量比率。
5 結論
本文從智能家居的智能控制的實際問題出發,分析了智能家居對智能算法的要求,建立了智能表達模型。通過實際測試TF算法,驗證了該控制算法具有很好的智能性和健壯性,并具備很強的節能省電功能,可以滿足智能控制的要求并被實踐推廣。
參考文獻
[1] HU Q,LI F.Hardware design of smart home energy management system with dynamic price response[J].Smart Grid IEEE Transactions on,2013,4(4):1878-1887.
[2] PANNA R,THESRUMLUK R,CHANTRAPORNCHAI C.Development of energy saving smart home prototype[J].International Journal of Smart Home,2013,7(1):1-6.
[3] 馬憲民,楊君銳.人工智能的原理與方法[M].西安:西北工業大學出版社,2002:9-28.
[4] MITCHELL T M.機器學習[M].北京:機械學習出版社,2008:1-20.
[5] ROBLES R J,KIM T H.Applications systems and methods in smart home technology:a review[J].International Journal of Advance Science and Technology,2010,15(3):37-47.
[6] HAN D M,LIM J H.Design and implementation of smart home energy management systems based on zigbee[J].IEEE Transactions on Consumer Electronics,2010,56(3):1417-1425.
[7] ZHOU X,ZHANG C S,ZHANG X W,et al.nRF905-based smart home system design[J].Shanxi Electronic Technology,2012,3(4):38-42.
[8] LIAO G H,ZHU J B.Smart home system network architecture and implementation[M].Springer Berlin Heidelberg,Information and Management Engineering,2011:498-503.