1 引言
智能家居(Smart Home)的概念最早出現于美國,它利用先進的計算機技術、嵌入式技術、網絡通訊技術、綜合布線技術、將與家居生活有關的各種子系統,有機地結合在一起。隨著科學技術的發展,智能家居的智能化、人性化一直是人們追求的目標,在此基礎上,本文提出了“AI-IA”的設想,將人工智能領域中專家系統控制方法應用于智能家居控制軟件的構建中,并給出了合理的設計方案。
2 關于智能家居的研究
2.1智能家居未來發展方向
智能家居是在信息技術的發展和人類對居住環境的要求不斷提高的基礎上產生的,由Home Automation Association(HAA,家庭自動化協會)所定義的智能家居是:一個使用不同的方法或設備的過程,以此來提高人們生活的能力,使家庭變得更舒適、安全和有效。科技以人為本,智能家居向著智能化、人性化的方向逐步發展,它可以在沒有或很少有人干預的情況下,對室內或室外可能發生的事情按預先設定的內容做出反應。如今,家電自動化的條件已經具備,如:電飯煲可定時煮飯煲湯,空調可以定時開關,但家居智能化還剛剛起步。
2.2 AI-IA構想
目前的智能家居均實現了三表抄送、家庭安全監控等功能,家電的自動化較以前有了很大的提高,但家電之間沒有太大聯系,僅僅是單一的“機械式”模式。信息家電之間若不能相互識別、相互通信、相互協作,那它所提供的功能是十分有限的,既不能實現服務的相互調用,更不能根據主人的生活習慣自我調節,只能按照事先設定好的模式周而復始的獨立運行。為了適應智能家居的發展,本文設計了一個類似“人腦”一樣的控制器軟件,它存儲了主人大量生活習慣的規則,在外界環境發生變化時調用、觸發相關設備,這個過程可簡單描述為:記錄、識別、控制、響應、反饋等。
AI-IA(Artificial Intelligence-Information Appliance)是人工智能與信息家電的融合,它將人工智能領域中的專家系統引入智能家居,實現了信息家電之間的智能協作。信息家電智能協作模型可簡單描述為:人們根據自己的意愿將家電所能產生的事件按照因果關系組織起來,當某一事件產生時,系統會按照預先設定的信息自動觸發其它設備,使之產生相關的事件,哪些設備參與協作以及什么時候參與協作,都是按照用戶事先設定的規則完成的。
2.3 家庭網關軟件體系結構
家庭網關的設計采用模塊化分層的體系結構,每層軟件各司其職,并通過接口函數的調用來實現各層之間的功能交互。整個軟件系統具有良好的可操作性和可移植性,自上而下分為應用程序層、網絡協議層、操作系統層、硬件驅動層。AI-IA智能控制模塊是家庭網關的一部分,實現規則的采集、設備的監控、智能推理、智能控制等功能,在linux操作系統下用C語言編寫,通過應用程序接口供其它功能模塊調用。家庭網關體系結構如圖1所示。
圖1 家庭網關體系結構圖
3 AI-IA智能控制模塊的設計
AI-IA智能控制模塊實質上是一個在家庭網關中起到協作功能的專家系統,其目的是監控設備所發生的各種事件,用戶事先設定的某條規則一旦得以滿足,便會驅動其它設備引發相應事件。此系統的設計模擬了生物的“刺激-反應”機制,位于智能家居中的信息家電除了聯網和實時通信外,還能夠根據主人的意愿,對外界的信息做出恰當的反映,極大程度地增強了信息家電的實時、智能性能。USB2.0
3.1 AI-IA智能控制模塊體系結構
在家庭網關中添加的AI-IA智能控制模塊,是實現信息家電智能協作的關鍵,其核心思想就是將專家系統引入控制領域。其整體結構如圖2所示。
(1)服務的注冊
服務是設備所能提供某種功能的抽象,而設備所達到的某種狀態即可構成一個事件,設備所提供的服務只有在完成注冊后,用戶才能對這些事件進行處理。服務的注冊就是把設備所具有的功能在家庭網關上進行登記,以便其它設備需要某種服務時,可以通過網關查詢,并按照指定的接口調用服務。由于用戶使用的各種電器可能來自于不同的廠商,因此必須有一種能夠描述設備的屬性、服務等信息的描述語言來解決設備間的異構性。在此引入了Information Appliance Interface Definition Language(IAIDL, 信息家電接口定義語言),它是一種用來定義信息家電的說明性語言,只描述設備的資源信息,不直接用于編寫可執行程序。IAIDL文件記錄了設備的可用信息,通過編譯該文件將這些信息提取出來,以數據的形式存儲到嵌入式數據庫SQLite中,完成家電設備的注冊。IAIDL的引入實現了設備的互通、互聯,成功地解決了信息家電“即插即用”問題。
圖2 基于專家系統的AI-IA智能控制模塊圖
(2)知識庫的形成
知識庫是專家系統重要組成部分。用戶通過Graphical User Interface (GUI,圖形用戶接口)查看設備在數據庫中的注冊信息,將設備提供的事件以產生式規則的形式聯系起來,以此形成知識庫。系統的GUI具有多樣性,可以是遙控器、PDA、web網頁或其它方便用戶使用的方式。知識庫及知識的表達是建立專家系統的關鍵,它們的形式、內容、組織方式直接影響到專家系統描述問題特性的能力,同時也會影響到推理機制、解釋機制等其它部分的結構和實現方法。
(3)推理機的應用
推理機負責控制并執行問題的求解,它從已有的事實出發,根據知識庫中給定的規則推導出最終結論。例如,IF THEN,這一規則按照特定的形式存儲于知識庫中。當傳感器檢測到門已經打開,以及室內光線低于設定值時,推理機即可識別這兩個事件與知識庫中用戶事先設定的某條規則相匹配,從而按照指定的接口調用開燈這一服務。
3.2 知識庫的設計
用戶通過友好的人機界面將大量規則存儲于知識庫中,例如,主人回家開門時,客廳里的電燈會因室內的光線過暗自動打開;主人外出關門時,室內的監控系統會因家中無人而自動開啟。電燈的打開這個操作會與門打開、室內亮度過低這兩個事件聯系在一起,我們用產生式規則來表示描述這條知識:
IF《 門打開,室內光線過暗》 THEN《 燈亮 》
產生式描述了事物之間的一種對應關系(包括因果關系和蘊含關系),這種基于規則的符號化模型特別適于反應人們對家電設備的調度,由一臺設備的某一事件或狀態作為條件,引發對另一設備的使用。此系統中的知識庫實際上是一個能夠表達用戶主觀意愿的產生式規則庫,在系統中以動態數據結構進行組織。
知識的表示是描述客觀事物的一組規定,是知識的符號化過程。規則主要包含規則的前提和規則結論部分,前提部分說明規則可以被引用的條件,而結論部分則說明當前提成立時可進行的操作或引起的領域行為。根據需要,一條規則可以有多個前提和多個結論。在具體用C語言實現時,直接以IFTHEN語句形式編程是行不通的,為了實現事件的驅動,必須利用C語言強有力的字符串處理能力將抽象的符號變成一個個表單元。根據實際情況我們可以將智能家居監控下的設備看成一個對象,C語言定義為:
struct object{
char *name; /*設備的名稱*/
float val; /*設備的特性值*/
enum events {high,middle,low,open,close};USB2.0
/*事件類型的抽象*/
};
這些對象通過規則聯系起來,每定義一條規則,都要把它們存放到規則庫Rule_Base中,以方便推理機獲取有用的規則。在規則表達中,通過rule()函數把規則的外部語言形式轉換成內部的特性表的形式,它的Clause和Action特性分別存放了該規則的前提和結論。推理時若要用到某條規則rule_X(X=1,2.。.n),就直接從它的特性表中取出相應的前提和結論,Clause和Action可以是一個函數調用、常量或變量,每條規則的特性表組織成如下形式:
(Clause(條件1 條件2…)Action (結論1 結論2…))
3.3 推理機的設計
推理機設計采用事件驅動正向推理方式,其基本思想是:推理機通過網關管理模塊讀取信息家電的當前狀態,從中獲取由設備產生的事件,這些事件構成了基本事實;從基本事實出發引用規則庫中的規則,若某些規則的前提被滿足,則執行這些規則的結論,若這些規則的結論部分形成新的事件,則用同樣的方法以這些邏輯結果為基礎再次進行正向推理。推理過程中的沖突消解采用最先匹配策略,將所有符合當前求解條件的知識放在一張表中,在問題求解過程中一旦找到匹配的規則即采用該規則。
事件驅動是數據驅動的發展形式,所謂事件驅動是指當事件集合中所有的事件都已發生,才能引發另一種操作。在產生式規則中,IF后面的條件便可當作一個事件集合,當用戶所設定的條件都滿足時,即可得出THEN后的結論或觸發相應的操作,本系統通過Event_driven()函數實現了基于事件驅動的正向推理。
Event_driven()算法:
Kbase-Load() /*知識庫的裝載*/USB2.0
for(所有的事實fact)
{
event=fact中的事件;
for(所有在rulebase中的規則rule)
{
rule_event=出現在規則rule中的所有事件;
if(rule_event至少有一個變量沒有值)
continue; /*取規則庫中的下一條規則*/USB2.0
else
{
for(規則rule中每一前提clause)
match(clause);/*匹配clause中的條件*/
if(match(clause))
{
do(action); /*執行規則rule中所有action結論*/
value(action); /*用value保存每一個操作結果*/
if(rule(action))/* action產生的事件構成一個新的事實*/USB2.0
Add_Kbase(action) /*將產生的事件加入到知識庫中*/
}
}
}
}
4 結束語
從智能家居未來發展方向出發,分析了利用專家系統構建AI-IA智能控制模塊的必要性和合理性,建立了智能協作模型,并給出了設計專家系統的具體方法,為智能軟件的優化以及在嵌入式開發板上的移植奠定了基礎。
-
自動化
+關注
關注
29文章
5596瀏覽量
79401 -
智能家居
+關注
關注
1928文章
9578瀏覽量
185523 -
人工智能
+關注
關注
1792文章
47417瀏覽量
238932
發布評論請先 登錄
相關推薦
評論