汪思遠
(天津大學,天津 300072)
我國人口眾多,資源長期不足,隨著對于節(jié)能環(huán)保的要求日益提高,且人們對于良好生活環(huán)境的需求逐漸增加,室內燈光需要得到重視,在不同用途的房間有其合適的光照度。在能滿足正常需求的情況下,盡可能使用更少的電能是節(jié)能環(huán)保的最有效手段。因此,通過一個智能照明系統(tǒng),對房間的燈光加以合理設置,從而可實現(xiàn)以上需求。其中,該系統(tǒng)既可以實現(xiàn)自主控制,也可以通過其他計算機作為上位機進行監(jiān)督控制。
智能照明系統(tǒng)采用8086微處理器作為控制器,其中,選擇光敏電阻作為光線傳感器,通過步進電機調節(jié)百葉窗的開合,利用光電耦合器[1]實現(xiàn)控制電路與生活用電隔離。其工作原理如圖1所示。
圖1 智能家居照明系統(tǒng)工作原理
控制器電路:采用8086微處理器為控制系統(tǒng)的核心。
數(shù)據(jù)存儲器電路:采用E2PROM。本系統(tǒng)中選用了采用I2C接口的AT24C512存儲芯片。
傳感器電路:選擇光敏電阻作為光線傳感器[2],通過其電阻和照度的關系可以獲得電壓與照度的對應關系,從而通過A/D轉換器將其數(shù)字化,使CPU可以讀取。
A/D傳感器電路:采用ADC0808芯片將傳感器采集到的模擬量數(shù)據(jù)轉換為數(shù)字量,并輸入到8086微處理器。該轉換器的輸出為并行輸出。在此裝置中,僅使用一個輸入通道即可滿足輸入要求[3]。
電機及其驅動電路:采用步進電機,并利用ULN2003A進行驅動。采用該驅動模塊可以改善處理器直接驅動電機的性能[4]。
LCD及按鍵電路:LCD選擇JHD-2X16-I2C。按鍵部分采用三鍵控制,功能分別為加(+)、減(-)和OK鍵。由于該設備用于家庭或者辦公場所等處,對于照度的需求相對固定,因此沒有經常調整參數(shù)的需求,所以減少按鍵設計也可以縮小設備體積[5]。
RSR232通信接口電路:選用RS 232總線與上位機連接,用MAX232將數(shù)據(jù)從接口傳出,上位機通過數(shù)據(jù)線接收數(shù)據(jù)。
看門狗電路:采用硬件看門狗電路,選擇使用MAX1232芯片。
報警電路:報警電路采用一個發(fā)光二極管與一個蜂鳴器,在系統(tǒng)自檢不通過的時候,二極管亮起,蜂鳴器發(fā)出報警音。
8086擁有16根數(shù)據(jù)總線,20根地址總線,但其中有16根地址線與數(shù)據(jù)線復用,因此無法同時進行數(shù)據(jù)和地址的傳輸。但地址和數(shù)據(jù)在CPU工作時不是同時發(fā)送,因此可以采用地址鎖存的方式進行同時訪問和傳輸數(shù)據(jù)。地址鎖存采用74LS273??紤]到CPU的總線負載能力有限,在連接部分設備時會出現(xiàn)驅動能力不足,因此需要增加雙向數(shù)據(jù)緩沖器74245作為驅動器。對于外部的器件連接,由于部分外設的數(shù)據(jù)引腳較多,因此采用8255A作為外部接口電路。由于8255需要片選信號才能正常工作,因此需要搭建地址譯碼電路。再次選擇常用的74LS138譯碼器,配合邏輯門電路,實現(xiàn)對特定芯片的片選,如圖2所示。
圖2 8086及其接口搭建電路
硬件連線如圖3、圖4所示,對8255芯片來說,復位操作十分關鍵,因此需要將看門狗復位信號同時與8086和8255相連,從而保證每次按下復位后8255也進行復位,確保系統(tǒng)正常運行。
圖3 8086硬件電路的搭建
圖4 外圍設備的搭建
通過A/D采集的數(shù)據(jù)均為模擬電壓的值,需要將其轉化為照度值。根據(jù)資料可知光敏電阻的電壓-照度函數(shù)并非線性相關,且沒有實際的數(shù)學模型描述。對于此問題的解決,需要找到合適的數(shù)學模型描述此關系。常用的方式有兩種,第一種為擬合,第二種為插值。這兩種方式從理論上均可解決該問題,但在工程實際應用中,由于分段線性插值計算量較小,且原理簡單,因此在此方案中采取線性插值的方式。線性插值的公式為:
通過該公式可以看出,實現(xiàn)線性插值的條件是要進行取點操作。取點操作可以利用標準的照度檢測裝置與亮度可調的光源以及電壓表進行測量。實現(xiàn)插值計算后,可以得出電壓-照度近似函數(shù),據(jù)此可以進行標度轉換??梢詫ふ夷?shù)轉換器輸出為0時的照度值以及模數(shù)轉換器信號恰好達到FFH,即采集到的電壓值恰好為5 V時的照度值。采用分段函數(shù)的思想,將標度轉換按照取點情況進行分段,在每一段采用不同的標度轉換算法,從而實現(xiàn)照度的轉換。線性情況下標度轉換的公式為:
在每個線性化的區(qū)間均采用此公式,可以算出不同的參數(shù),從而獲得一個較為準確的分段函數(shù)。事實上,如果光敏電阻的阻值非線性程度并不顯著,可以將其簡化為一個簡單的一次函數(shù),但鑒于檢測效果,仍決定采用分段線性插值。
常用的模擬PID的計算公式為:
式中:e(t)為輸入的誤差信號;Kp為比例系數(shù);Ti為積分時間常數(shù);Td為微分時間常數(shù);u(t)為控制器輸出。
系統(tǒng)框圖如圖5所示。
圖5 PID控制系統(tǒng)框圖
實際上,計算機為數(shù)字系統(tǒng),因此需要對該公式進行轉化,使其適用于數(shù)字控制。采用離散化的方法將式(4)進行近似,可得到k采樣時刻的離散PID表達式為:
式中:T為采樣周期;k為采樣序號,k=1, 2, ...;e(k-1),e(k)為第k-1和第k時刻所得到的系統(tǒng)偏差信號。該式需要累計偏差e(j),不僅要占用較多存儲空間,而且不利于編程,因此一般采用增量型算式[8],如下:
式中:T為采樣周期;k為采樣序號,k=1, 2, ...;e(k-2),e(k-1)及e(k)分別為第k-2和第k-1和第k時刻所得到的系統(tǒng)偏差信號。
在本案例中,抗干擾選用復合數(shù)字濾波,將一階滯后濾波與算術平均值濾波復合。其中,算術平均值濾波計算公式為:
一階滯后濾波的計算公式為:
在每次測量值中,均使用一階滯后濾波,但在第10次時,用10次測量值的算術平均值代替當前次的一階滯后濾波值。復合濾波[9]的程序流程如圖6所示。
圖6 復合濾波的程序流程
在程序開始前已經存在關于參數(shù)調整的設定,已經定義好首先需要調整的參數(shù)及其對應步長,并從E2PROM中讀取已保存的參數(shù),其按鍵調整參數(shù)如圖7所示。
圖7 按鍵調整參數(shù)程序流程
ADD子程序:按照步長,對參數(shù)進行加法操作,操作結束后返回。
SUB子程序:按照步長,對參數(shù)進行減法操作,操作結束后返回。
保存和跳轉子程序:將參數(shù)保存到AT24C512中,然后跳轉至另一參數(shù)的調整,并定義該參數(shù)調整步長。
顯示子程序:由于采用1602顯示屏,因此在第二行實時顯示當前的參數(shù)值及參數(shù)類型。
從A/D中讀取數(shù)據(jù),對讀取的數(shù)據(jù)進行數(shù)字濾波操作。在CPU中通過線性插值與標度轉換,實現(xiàn)讀取數(shù)據(jù)到照度值的轉換。利用顯示屏,在第一行實時顯示每次檢測到的照度值,將照度保存到E2PROM中。
比較照度與設定值大小關系:設定值大,則向電機發(fā)送多個脈沖,向開啟百葉窗的方向旋轉,在每個脈沖結束時都進行第一步照度判斷;設定值小,則向另一個控制端發(fā)送多個脈沖,向關閉百葉窗的方向旋轉,在每個脈沖結束時都進行第一步照度判斷。在誤差范圍內相等,結束程序。在設定脈沖數(shù)內,若光照度未達到設定值,繼續(xù)執(zhí)行以下程序,再次判斷與設定值的大小關系:設定值大,調整PWM波的脈寬,提高燈具亮度,調用PID算法;設定值小,減小脈寬,使燈具變暗,調用PID算法。在誤差范圍內相等,結束程序。
根據(jù)看門狗電路硬件設定的定時時間,確定“喂狗”時間(該時間需要明顯短于定時時間)。在規(guī)定時間給予看門狗信號,使其計數(shù)清零[9]。
利用PID控制PWM波的產生流程如圖8所示。
圖8 利用PID控制PWM波的產生流程
通過串口通信,實現(xiàn)與上位機進行數(shù)據(jù)的交換以及上位機對系統(tǒng)的實時監(jiān)控,形成監(jiān)督控制系統(tǒng)。對于上位機,也需要專門的RS 232相關驅動來讀取數(shù)據(jù),并將數(shù)據(jù)傳送至專用的軟件。通過該軟件還可以實現(xiàn)參數(shù)的修改,其原理與串口通信[2]完全一致。由于該軟件內容并不屬于本設計內容,在此不加以贅述。RS 232串口通信流程如圖9所示。
圖9 RS 232串口通信流程
在上電過程中,需要對整個系統(tǒng)進行復位,使其處于初始狀態(tài)。然后,系統(tǒng)從存儲器中讀取程序到內存中,之后展開自檢工作,確定各模塊的狀態(tài)。如果此時有模塊損壞導致系統(tǒng)自檢無法通過,跳轉至報警,待修復完成后重新上電。自檢完成后,開始鍵盤輸入?yún)?shù)的環(huán)節(jié),并在此環(huán)節(jié)開始調用傳感器,讀取傳感器數(shù)據(jù),之后把所調整的參數(shù)與傳感器數(shù)據(jù)均顯示在LCD上。參數(shù)設定完成后,電機開始工作,首先通過百葉窗的開合調整房間光線亮度。如果該方法未完成調節(jié),在燈光調節(jié)子程序中開始利用PID控制的PWM波調節(jié)燈光亮度。在照度調整結束后,需要對看門狗進行喂狗操作,使其計數(shù)復位,然后返回到鍵盤輸入部分。如果程序運行失常,看門狗計時器計時結束輸出復位電平,使整個系統(tǒng)全部復位,從程序起始處重新開始運行。整個系統(tǒng)流程如圖10所示。
圖10 系統(tǒng)運行流程
本文設計一種智能控制的家居照明系統(tǒng)。該系統(tǒng)綜合運用了計算機控制技術中的過程通道、抗干擾、總線、數(shù)據(jù)處理、控制策略等技術,可以滿足實際需求。目前,該設計方案基本正確完成了電路的搭建以及程序流程的設計,后期可以通過串口附加網(wǎng)絡連接設備,實現(xiàn)在線控制。