文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.05.017
中文引用格式: 史斌斌,,王宜懷. 一種基于真假值的智能家居控制算法研究[J].電子技術(shù)應(yīng)用,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 引言
在人工智能領(lǐng)域,,機器學(xué)習(xí)和自適應(yīng)等算法是主要研究方向,,而面對智能家居領(lǐng)域的控制,機器學(xué)習(xí)等方法并不合適。原因如下:首先,,樣本空間不足,,沒有足夠的訓(xùn)練數(shù)據(jù)[1]。例如,,一般城市家庭的生活作息是以星期為單位,,即使只收集一個家庭50組數(shù)據(jù)就需要花費一年的時間,,這在實際運用中行不通,;其次,學(xué)習(xí)難度大,。準確性地學(xué)習(xí)一個人或一個家庭的生活作息難度非常大,,因為人不存在絕對的內(nèi)在作息規(guī)律,隨機性非常大[2],;最后,,計算能力不足。人工智能一般需要很大的計算量,,而智能家居的控制算法基本運行在單片機或微控制器上,,這些處理器相對PC或服務(wù)器級別的處理器而言,主頻低,,單核,,位長短和浮點計算能力欠缺或不足[3-4]。
基于以上事實,,智能家居控制算法不能采用既有模型和思路來實現(xiàn),。算法必須具備不需要學(xué)習(xí)樣本、應(yīng)對變化反應(yīng)速度快,、計算量小和容易被編碼等特點[5-6],。智能家居的控制算法是一個具體場景的應(yīng)用,故在學(xué)術(shù)上對此的研究并不多,。本文通過不斷的嘗試和實驗,,提出了以真假值為主要計算手段的TF算法。
1 算法概述
為簡化算法的表達并增強實用性,,引用電熱水器作為家庭設(shè)備終端進行說明,,該設(shè)備是中國普通家庭普及率最高的家用電器。一般家庭使用熱水的習(xí)慣集中在早晨和晚上,,而電熱水器卻是全天24小時保存熱水,,造成了電能浪費[7]。以中國南方為例,,夏季即使白天和夜里不使用熱水,,熱水器一般會空燒一次,而在冬天則空燒的頻率更大,,嚴重造成了電能浪費,。由于家庭組成千變?nèi)f化,,不可能通過提前在熱水器中預(yù)置一個全能的控制算法來做實際控制,但可以在熱水器中預(yù)置一個具備最低級控制能力并同時具有收集分析歷史數(shù)據(jù)和根據(jù)數(shù)據(jù)的變化動態(tài)做出決策的TF算法,。在實際使用中,,通過它在不同的家庭環(huán)境中控制熱水器的同時提取用戶數(shù)據(jù),制定出與特定使用者相匹配的控制策略,。
2 建立表達模型
熱水器的使用是現(xiàn)實世界中的具體問題,,如果要想通過算法或程序來進行智能控制和管理,則首先需要建立相關(guān)的數(shù)據(jù)表達模型,,這個表達模型應(yīng)該容易被計算機表示和處理,,只有在這個表達模型基礎(chǔ)上,才能進行進一步計算等處理,。
2.1 原始數(shù)據(jù)采集
算法控制的直接對象是熱水器,,因此要了解對應(yīng)家庭使用熱水的時間段數(shù)據(jù),而數(shù)據(jù)只有通過熱水器獲知,。熱水在實際使用中總是時斷時續(xù),,通過統(tǒng)計發(fā)現(xiàn),一個人的簡單洗漱過程一般會持續(xù)10~15分鐘,,平均開關(guān)水龍頭3次[8],,而如果把這些瑣碎的時間片全部收集起來進行處理則沒有任何意義。數(shù)據(jù)收集采取的辦法是兩次使用熱水的時間差在半個小時以內(nèi),,則算為一次,。通過使用該收集數(shù)據(jù)的方法抽查并記錄某一家庭某一周使用熱水的數(shù)據(jù)如下所示:
周一: 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 數(shù)據(jù)處理和離散化
為了更加清晰地發(fā)現(xiàn)規(guī)律,需要對原始采集的數(shù)據(jù)做進一步處理,,實質(zhì)是將其工作區(qū)間擴大和計數(shù)單位離散化,。具體的處理方法是將起始時間在xx:01-xx:30和xx:31-xx:60(xx:00)之間的數(shù)據(jù)劃歸到xx:00和xx:30。結(jié)束時間在xx:01-xx:30和xx:31-xx:60(xx:00)之間的數(shù)據(jù)劃歸到xx:30和xx+1:00,。處理過的數(shù)據(jù)如下所示:
周一: 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
通過將處理過的數(shù)據(jù)與原始數(shù)據(jù)對比可以發(fā)現(xiàn),,原始數(shù)據(jù)是被處理過數(shù)據(jù)的一個真子集。雖然原始數(shù)據(jù)經(jīng)處理后發(fā)生變化,,但可以在不影響使用者數(shù)據(jù)提取的前提下簡化計算工作,,所以進行這樣的數(shù)據(jù)處理是必要的。
為了更清晰地看清規(guī)律將數(shù)據(jù)可視化,,根據(jù)處理后的數(shù)據(jù)得出表1的位圖表,。縱向為時間單位,,每半個小時為一個計算單位,;橫向為7個時間單位,每天是一個計算單位。
根據(jù)實際使用情況每半個小時對應(yīng)著布爾值“真”或是“假”,,用T表示“真”,,F(xiàn)表示“假”。通過表1發(fā)現(xiàn),,只要控制算法最終能確定每個格子的值取真還是假即可,。至此,將實際問題中的模擬量轉(zhuǎn)化成了由位圖表示的計算機可處理的表達模型,,整個算法也是基于位圖展開的,。
2.3 應(yīng)用場景分析及研究重點
算法的最終使用場景是在沒有任何歷史數(shù)據(jù)存在的情況下,收集數(shù)據(jù)與分析數(shù)據(jù)同步進行,。由于使用家庭不同和節(jié)氣等原因,,生活作息會不斷變化,,即使是通過累積歷史數(shù)據(jù)分析并得到了決策方法,,也不能以后就一直使用這個方法,還必須持續(xù)地分析過去的數(shù)據(jù),,形成與使用者家庭當前最匹配的控制方法,。
在現(xiàn)實中,城市居民的生活往往以周或天為一個規(guī)律性的周期,,所以需要加入一個控制周期參數(shù)LP(learning period)來定義控制周期,。根據(jù)實際情況給LP取兩個值,如果是天,,用LP=d(day)表示,;或者是星期,用LP=w(week)表示,。
在LP=d的情況下,,前一天的數(shù)據(jù)會一定程度地影響第二天對熱水器的控制,這種情況適用于不是以星期為生活周期的家庭,。
在LP=w的情況下,,前一個星期的輸入數(shù)據(jù)會在一定程度上影響下個星期對控制器的控制。其實LP=w是由LP=d的組合而行成的情況,,以每周的星期三為例,,當前星期的周三只能借鑒前一個星期周三的歷史數(shù)據(jù),本質(zhì)還是LP=d的情況,,所以本論文重點研究LP=d的情況,。
3 算法原理
當前控制位圖(A)+最近一天的數(shù)據(jù)位圖(B)=最終控制位圖(C)(計算方法),如圖1所示,。
其中當前控制位圖(A)表示當前的控制決策,;最近一天的數(shù)據(jù)位圖(B)表示最新的歷史數(shù)據(jù),它是算法的輸入;最終控制位圖(C)表示通過計算得出的最新控制決策結(jié)果,,它是算法的輸出,。而在整個算法工作流程中,計算方法是核心,,直接決定著最終控制結(jié)果的好壞,。
3.1 TF初步方法
最簡單的初步計算方法是采取類似真值計算法來得出目標控制位圖。以圖1的07:00-07:30這一格為例來說明,。圖2給出了計算法則,。
這種策略完全參考最新一天的數(shù)據(jù),把最近一天的數(shù)據(jù)當作下一天的控制方法,。這種方法雖然簡單,,但是不具備靈活性和健壯性。尤其是對突然不規(guī)律的一天數(shù)據(jù)這種情況,,完全沒有抵御能力,。另外也沒有考慮到06:30-07:00和07:30-08:00等目標格附近對最終結(jié)果的影響,因為正常的生活作息都是在一定的區(qū)間內(nèi)搖擺,,必須要注重時間前后性的聯(lián)系,。
3.2 TF改進方法
初步方法除了參照最近一天的數(shù)據(jù)B外,并沒有參考以前的數(shù)據(jù),,需要在初步方法基礎(chǔ)上做進一步改進,。要想?yún)⒖家郧暗臍v史數(shù)據(jù),需要把歷史數(shù)據(jù)一定程度反映到當前控制位圖A中,。每一個格子在可以取真假值之外,,需要再攜帶一個權(quán)值,這里用W表示,。以W作為參考,,面對最新一天的數(shù)據(jù)位圖時,可以綜合W的值來做出決策,,而不是完全按照最新一天的位圖信息來決定下一天的控制位圖,。初步方法有一點需要保留——T值即刻生效法,無論當前控制位圖A的某一格子是T還是F,,或者W取值是什么,,只要最近一天數(shù)據(jù)位圖B的對應(yīng)格子是T,則下一天的控制位圖對應(yīng)格子做出的決策是T,。采取“T值即刻生效法”是為了盡量不要遺漏工作時間,,快速對變化做出反應(yīng),從而減少給正常生活帶來麻煩,。這也是整個算法的原則之一,,實現(xiàn)手段是盡量使算法的T值域大于等于真正的T值域,,這樣可以更好地為智能生活帶來方便。圖3給出了“T值即刻生效法”的運算法則,。
W的一種取法是統(tǒng)計式的方式,,即以T或F的總數(shù)為分子,T和F的和總數(shù)為分母,。W的另外一種取法是記錄式的方式,,記錄預(yù)定義的一段時間內(nèi)連續(xù)的T或是F的總數(shù)。由于人的活動具有時間局部性,,相同活動規(guī)律具有聚集性,,第二種方法可以反映相應(yīng)的聚集性和連續(xù)性,所以W采取第二種方式取值,,具體的取法如下,。
用3個域來保存最近三天的T/F值記錄。W的3個域初始值均為T,,在未接觸到使用者數(shù)據(jù)時,,默認全天工作。W的動態(tài)變化如圖4所示,。
W從整體上看是一個按著時間的先后順序向左移動的記錄,。W保存的是使用者家庭最近過去三天的T/F值情況,。
在T值即刻生效法和W的約束下,,需要新的計算法則,以W在n(n>=3)天后的情況為例來說明,,如圖5所示,。
以第n天的數(shù)據(jù)劃分為兩種情況。
第一種情況:第n天的數(shù)據(jù)值為T,。根據(jù)T值即刻生效法會直接得出控制結(jié)果為T,。這種情況下不需要參考W的值。
第二種情況:第n天的數(shù)據(jù)值為F,。這種情況,,T值即刻生效法不起作用,做決策的依據(jù)是查看第n-2天的數(shù)據(jù)值和第n-1天的數(shù)據(jù)值的真假,。如果全部是F,,則得出控制值為F;如果只有T存在,,則會得出控制結(jié)果為T,。該情況采取這種策略的目的是為由T向F變化提供一個容量為3的緩沖,只有連續(xù)三天為F才能確定為F,,這些做法很好地體現(xiàn)了T值域最大可能性的覆蓋真實情況,。具體的計算法則如圖6所示,。
3.3 TF最終方法
改進方法可以反映人們生活習(xí)慣的時間局部性,但其缺點是邊界過于硬朗和容易造成控制漏洞,。下面以圖1的15:00一格為研究對象來說明,。
使用改進方法則只參考時間段15:00~15:30的當前控制位圖A和15:00~15:30的最新歷史數(shù)據(jù)B,然后得到15:00~15:30的控制結(jié)果C,。而實際上,,人們的生活行為是線性的,具有時間前后連續(xù)性,。為此,,除了需要參考15:00~15:30的當前位圖和最近一天15:00~15:30的數(shù)據(jù)位圖外,需要把它前一格的數(shù)據(jù)和后一格的數(shù)據(jù)作為參考,,進行評估,。截取圖1的數(shù)據(jù)如圖7所示。
使用改進方法可以分別得到C的14:30格子,、15:00格子和15:30格子的控制結(jié)果,。為了反映時間的連續(xù)性,在C的基礎(chǔ)上建立3個格子的關(guān)聯(lián),。具體分為兩種情況:
第一種情況:當使用改進方法計算出15:00格子的控制結(jié)果為T,,則依然遵守T值即刻生效法,不做任何操作,,直接確定其最終控制結(jié)果為T,。
第二種情況:當使用改進方法計算出15:00格子的控制結(jié)果為F,并通過改進方法計算出14:30格子和15:30格子的控制結(jié)果,。如果想要確定15:00格子的最終控制結(jié)果,,需要參考其相鄰格子的值。具體的辦法是采取簡單投票法,,如果其他兩個格子都是T,,則15:00格子的最終控制結(jié)果為T;否則,,15:00格子的最終控制結(jié)果為F,。這種做法進一步加大了T域覆蓋真實T的可能性。
最終方法在初步方法和改進方法的基礎(chǔ)上進行了改進和完善,,去掉了初步方法和改進方法的缺點和不足,,繼承了它們的優(yōu)點。最終方法具有對T變化反應(yīng)迅速,、對F變化反應(yīng)遲緩,,并具有柔和邊界和防止控制漏洞等特性。
4 測試結(jié)果和評價
對算法進行測試有模擬和實踐兩種方法,。對于TF算法而言,,由于沒有方法對人的這種隨機性行為進行模擬,,所以采用模擬方法并不可行。故采用實踐測試方法對TF算法進行測試,。
由于時間等因素的限制,,對TF算法進行了小范圍測試,統(tǒng)計以天為生活周期某一家庭使用熱水器的數(shù)據(jù),,持續(xù)時間為10天,。另外,為了說明算法的使用效果,,把算法的控制結(jié)果和這一個家庭的數(shù)據(jù)進行對比,,結(jié)果如圖8所示。
通過測試結(jié)果表發(fā)現(xiàn),,前三天是導(dǎo)入期,,故TF算法具有最大工作時間,其控制的熱水器是全天24小時工作,,沒有收斂,,從第四天開始收斂。其中有兩個參數(shù)需要統(tǒng)計,,一個是命中率為93.9%,,這個參數(shù)直接影響到使用者的體驗,命中率越高,,則用戶越滿意,。非命中的格子在測試結(jié)果圖8中已經(jīng)被標記出來,非命中率為6.1%,。
從節(jié)能省電的角度來評價算法,,則需要統(tǒng)計無效控制,去掉前三天的情況,,無效控制率為36.7%。單純從節(jié)能省電的角度來評價算法,,這個參數(shù)越低,,則電能利用率越高。但是,,只有在命中率滿足一定要求下,,提升這個指標才有意義。
由于學(xué)術(shù)界對智能家居智能算法的研究很少,,故沒有辦法通過對比數(shù)據(jù)來證明算法性能,,但可通過統(tǒng)計并對比使用TF控制算法前后的用電量來測試。表2分別統(tǒng)計了TF控制算法運行不同時間與平時的用電量比率,。
5 結(jié)論
本文從智能家居的智能控制的實際問題出發(fā),,分析了智能家居對智能算法的要求,,建立了智能表達模型。通過實際測試TF算法,,驗證了該控制算法具有很好的智能性和健壯性,,并具備很強的節(jié)能省電功能,可以滿足智能控制的要求并被實踐推廣,。
參考文獻
[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].西安:西北工業(yè)大學(xué)出版社,,2002:9-28.
[4] MITCHELL T M.機器學(xué)習(xí)[M].北京:機械學(xué)習(xí)出版社,,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.