正文 基於藍牙組網的燈光控製係統研究與設計(2 / 3)

2.3 蟻群算法研究

蟻群算法源於對蟻群尋找食物過程的研究。觀察發現,一旦有螞蟻找到食物,在食物和巢穴之間很快就能形成一條近似最短的蟻路,並且蟻路上的螞蟻會越來越多直到食物消耗殆盡。並且,一旦出現斷路情況,蟻群能快速繞過障礙物重新尋找食物並形成新的蟻路。蟻群算法已經成為一種優秀的獲取優化路徑的幾率型算法。由於蟻群算法具有良好的正反饋性、多樣性、健壯性以及自適應性、自組織性,越來越多的被應用於路由優化問題[4]。

為了保證螞蟻的多樣性,基於式(1),螞蟻k從位置r移動到位置j的概率計算公式為式(5)。其中,r為(0,1)上均勻分布的隨機數,p0∈(0,1),當螞蟻從位置i,選擇路徑到達位置j時。選取一個隨機數r。若r>p0,根據式(1)選擇路徑,若r≤p0,則根據式(5)選擇最優路徑。

在前向螞蟻到達目的節點後,會將其攜帶的信息存放至目的節點,所有的螞蟻都完成這一過程後,根據信息選擇最優路徑並派出後向螞蟻,後向螞蟻將根據信息進行全局信息素更新,其中,Δτ=c×Ebest,c為常數, Ebest為路徑最優評價值。

當網絡中某一節點要和目標節點進行通信時,此節點作為源節點,查找路由表是否存在和目標節點連通的路徑,如果不存在,將根據式(1)和式(2)的規則,前向螞蟻根據啟發信息和信息素強度,從源節點的鄰居列表中選擇路徑到達下一節點,並記錄所經節點的負載接納率、IP地址和路徑的時延。中間節點接受前向螞蟻後,根據本節點的負載情況判斷是否接納前向螞蟻,前向螞蟻選擇其他路徑請求接收,避免持續擁堵。如果中間節點不處於擁塞狀態,則接受前向螞蟻的信息,並建立更新信息素,重複上述過程繼續轉發下一節點。當前向節點到達目的節點時,首先目的節點和源節點之間建立信息素表並由式(5)、式(6)和更新信息素值派出後向螞蟻返回源節點。由於後向螞蟻是根據建立或者更新的信息素表返回,在全局修正的基礎之上,其經過的路徑信息素值在增加,其他路徑在減少,當到達源節點後,後向螞蟻銷毀。過程結束[5]。

在整個路徑發現過程中,要避免擁塞的節點成為路由節點,並選擇負載接納能力強的路徑建立路由,節點要周期性的判斷本節點的負載能力,可能發生擁塞的節點要通知上遊節點減少發送的信息,避免發生嚴重的擁堵[6]。

3 軟硬件設計

3.1 係統硬件電路設計

LED模塊包括繼電器模塊和調光模塊兩部分。調光模塊通過采用PWM調光原理實現。PWM調光的基本原理是保持LED 正向導通電流恒定,而通過控製電流導通和關斷的時間比例,即改變輸入脈衝信號的占空比,使LED 產生亮暗變化;並利用人眼的視覺殘留效應,當LED 亮暗變化頻率大於120 Hz 時,人眼就不會感覺到閃爍,而看到的是LED 的平均亮度。PWM 調光的優勢在於LED 正向導通的電流是恒定的,LED 的色度就不會像模擬調光時產生變化。PWM信號由主控MCU產生R、G、B、W四路信號,采用高性能的PT4115恒流芯片驅動,能將直流電壓直接轉換成穩定的恒流輸出。

主控單元采用美國TI公司生產的CC2540芯片,適用於藍牙低功耗應用,同時也作為藍牙傳輸的核心部分。CC2540集成了2.4 GHz射頻收發器,是一款完全兼容8051內核的無線射頻單片機。CC2540使用單周期訪問SFR、DATA和主SRAM。當CC2540處於空閑狀態模式時,任何終端都可以將其恢複到主動模式。該芯片的8051不具有PWM模塊,但可以通過定時器和通用輸入輸出產生PWM信號。

整個係統初始化後,判斷該節點是否加入網絡,如果沒有加入網絡,則尋找相鄰節點並查找鏈路表加入網絡。在節點加入網絡後,等待中斷,並開始接收控製指令。整個控製分為開關控製和調光控製兩部分,並及時回傳燈光狀態。