林義忠,張 勤,望 翔
(廣西大學機械工程學院,廣西 南寧 530004)
自動引導小車 AGV(automated guided vehicle),是現代物流系統中的重要成員[1],它具有自動化集成度高、柔性好、可靠性高、自動導航運行、安裝便利及使用方便等特點[2]。AGV的導航方式眾多,包括視覺導航、GPS導航、激光導航、磁帶導引[3]。其中磁帶導引由于實現簡單,造價便宜,抗干擾能力強在工程領域應用最廣。磁導航AGV的控制方法較常用的即傳統的PID控制,文獻[4]用雙磁導引方式得出AGV的位置偏差和角度偏差然后用pid算法實現車速的控制,但由于AGV本身的非完整約束特性和非線性加上傳感器精度不夠[5],傳統的控制方法控制效果不佳且實現復雜,在以PLC為核心的控制系統上很難實現。故本文采用模糊控制方法進行AGV路徑跟蹤控制。
本文設計的磁導航AGV由本體結構、電氣控制單元和傳感器檢測單元三部分組成,其總體結構如圖1所示。AGV本體結構為六輪式結構,由位于車體中部驅動單元的兩驅動輪和前后四個萬向輪組成。兩驅動輪由兩個步進電機通過差速驅動實現AGV直行、轉向、避障等運動。

圖1 AG V結構示意圖
電控單元中采用西門子S7-200系列PLC CPU224XP作為主控制器,用PTO脈沖輸出方式完成AGV加速啟動和減速停止時的步進電機控制,PWM脈沖輸出方式完成軌跡跟蹤時的電機控制。傳感器檢測單元由用于磁條路徑檢測的磁傳感器和用于避障的超聲波傳感器和接觸式防撞傳感器組成,其中磁傳感器為AGV的“眼睛”,通過讀取磁條獲取小車位置和偏移狀態信息,主控制單元通過對其所得到的信息進行分析,得到不同偏移狀態時的電機控制量,從而達到對AGV準確控制的目的。
本文設計的模糊控制器為單輸入-單輸出(SISO)二維結構形式模糊控制器。位置偏差e和位置偏差變化率ec作為輸入參數,輸出量u則為兩輪的角速度差。
位置偏差e根據磁傳感器檢測到的信號來定義,AGV采用的磁傳感器是YF-9016型磁導航傳感器,將其安裝在AGV驅動單元的前部。傳感器有16個相互之間間隔1 cm磁信號采樣點,將其進行編號,編號情況如圖2所示。當AGV處在磁條正中央時,H6-H9點同時感應到磁信號導通,將此狀態定義為無偏差,當H6左邊的檢測點導通時,即AGV向右偏離軌道,且根據檢測點間的間隔定義左邊每導通一個點即AGV向右偏1 cm,H9右邊點的導通即意味著AGV左偏,因此根據檢測點的導通情況可以得出AGV的偏差距離,并定義AGV左偏時位置偏差e為正值,右偏時為負值。當H0和H15點檢測到磁信號時,此時偏差距離最大,數值分別為-6 cm和6 cm,因此偏差e的基本論域-6~6 cm.位置偏差變化率ec根據本次位置偏差與上一次位置偏差差值來定義,即 ec(i)= e(i)-e(i-1),基本論域為[-3,3].u為兩輪角速度差,其由右輪角速度減去左輪角速度定義,根據AGV額定速度0.5 m/s,輪子半徑R=10 cm,且糾偏過程中平均速度維持0.5 m/s不變,經計算u的基本論域為-10~10 rad/s.

圖2 磁傳感器霍爾元件編號
e 的模糊論域為{-3,-2,-1,0,1,2,3}分別取七個語言變量值 {NB極右偏,NM右偏,NS微右偏,ZE正中,PS微左偏,PM左偏,PB極左偏},ec的模糊論域為{-2,-1,0,1,2}其語言變量值{NB 右偏速度大,NS右偏速度小,ZE偏差無變化,PS左偏速度小,PB左偏速度大},u 的模糊論域為 {-3,-2,-1,0,1,2,3}分別取七個語言變量值{LVB左極速,LB左快速,LM左中速,LS左慢速,ZE無速差,RS右慢速,RM右中速,RB右快速,RVB右極速}。將實際值通過隸屬函數映射到模糊集合,進行模糊化。為了計算簡便,輸入輸出變量的隸屬函數都選用的三角形和梯形隸屬函數構成。e、ec和u的模糊隸屬函數如圖3所示。

圖3 模糊隸屬函數
對于本文設計的AGV模糊控制器,根據其結構控制規則應采用以下的模糊條件語句,即:If E and EC then U.其中:E、EC分別為輸入系統偏差量e和偏差變化率ec模糊化的模糊集合。通過對路徑的分析和實驗規律,得出相應的模糊控制規則表1.

表1 模糊控制規則表
建立模糊控制規則的原則就是偏差大時,首要考慮減小誤差,采用大控制量使左右輪速差增大,快速進行糾偏;偏差小時,則以保持系統穩定性為主以減小超調量。
采用最大隸屬度平均值法(mom)進行解模糊,根據e和ec的每一種取值,利用模糊推理合成規則計算Uij=(Ei×EC)j·R,得出相應的模糊控制規則查詢表。但由于表中的u為角速度差,s7-200plc無法直接輸出,因此通過u算出兩個輪各自的角速度,然后將角速度利用公式轉換成兩輪對應的脈沖頻率f,在對f進行求倒,并圓整為偶數,即得到相應的脈沖周期,這即是PLC用PWM脈沖輸出方式驅動步進電機所需參數。實際的右輪模糊控制實際輸出查詢表如表2所示,其中t′R代表右輪脈沖周期其單位為μs,左輪模糊控制實際輸出查詢表為表3,將表2中各項倒置過來即可得到,不再列出。

表2 AG V右輪實際輸出模糊控制查詢表

表3 AG V左輪實際輸出模糊控制查詢表
控制器采用的S7-200 CPU 224XP,其是西門子系列的小型PLC,官方沒有提供相應的模糊控制模塊,因此需使用S7-200自身的編程語言和程序結構來實現模糊控制,由于S7-200的表指令限制太多,本文直接利用間接尋址的方法進行在線查表完成模糊控制,實現流程如下:
(1)對輸入信號編碼。磁傳感器檢測到的是開關量信號利用PLC中的字傳送指令MOVW轉化為相應的位置偏差e值,當相應I輸入口接通時,賦予其對應的偏差值,用變量存儲器VW10保存偏差值的數值。程序部分截圖如圖4所示。

圖4 磁傳感器輸入信號編碼程序
(2)ec值的計算。用VW8存儲偏差值的歷史值,且賦予其初值為0,代表初始時刻AGV小車與磁條無偏差,將VW10減去VW 8,即得到偏差變化率數值并將結果存儲于VW12中,之后將VW10中的值賦給VW 8,作為下一次偏差變化率計算時的e(i-1)值,即作為新的偏差歷史值。
(3)模糊控制查詢表的導入。將2.2節總結出的表2和表3中的數據直接通過STEP7-Micro/WIN軟件的數據塊輸入至PLC的V存儲器,將表2中數據按每行從左到右、從上到下的順序輸入至VW300~VW400的連續51個字存儲空間中,表3中的數據輸入至VW404-VW504.
(4)控制量tR′和tL′的在線查詢。為了能便于查詢,將輸入量e值和ec值分別加上一個偏移量6和3,相應的 e的取值變為{0,1,2,3,4,5,6,7,8,9,10,11,12},ec的取值為{0,1,2,3,4,5,6},e和 ec的值即轉換為控制規則查詢表中的行號和列號,控制量tR′和tL′所在表格位置的編號由Gij=7ei+ecj計算得出,具體用程序實現時,將VW 10和VW12中的e和ec值用加法指令加上對應的偏移量6和3,用乘法和加法指令算出存儲于VW14,查詢表中數據用字空間存儲,因此尋址時偏移地址應為2Gij,因此再用MUL指令算出2Gij并得到一個32位的值存儲于VD16,建立兩個指針VD20和VD24并分別賦給VW300和VW404,即將兩個表的基址存儲于指針中,然后利用基址+偏移地址的方法查找到對應的控制量,即將VD020和VD24與VD016相加后得到的新VD020和VD024就已指向存儲了對應控制量的寄存器的地址。然后通過取指針操作如“*VD020”即可將指針指向的存儲單元的內容取出并賦到其他的寄存器如 VW28 中,完成控制量 t′R和 t′L的查找。
(5)將存儲了控制量 t′R和 t′L的寄存器賦給脈沖輸出子程序中相應的特殊繼電器,即可使PLC完成相應的PWM輸出,對電機進行調速。
為了測試本文所研究的AGV循跡模糊控制器的可行性與實際效果,進行了現場實驗。在布好的磁條軌跡上等間距的粘貼多個20×3的紙條,將一根畫筆鉛垂的綁在車體中間位置,讓AGV繞軌道運行一周,記錄其在各個軌跡采樣點上的位置誤差,即對白紙上的軌跡線與磁條的偏距進行記錄,實驗現場情況如圖5所示。實驗時,AGV運行的平均速度為0.5 m/s,采樣點總共為52個。實驗結果為表4所示。

圖5 AG V的路徑跟蹤精度測試實驗

表4 偏距統計
由表4可看出以額定速度運行時,AGV的偏距平均值和標準差均較低,證明了其運行時,路徑跟蹤精度較好,且從最大值和最小值可看出偏差始終在磁傳感器的檢測范圍內,沒有出現脫離軌道的情況。有效表明了本次設計AGV循跡模糊控制器的可行性。
針對磁導航AGV所用傳感器難以精確反應小車跟蹤軌跡的情況,以及AGV自身的非線性和非完整約束特性造成的建模困難,使基于數學解析的控制方法難于應用的問題,設計了用于路徑跟蹤的AGV模糊控制器,改善AGV路徑跟蹤時的穩定性和準確性。并利用PLC自身指令與尋址方法的組合,將模糊控制法應用到功能較為單一的小型PLC上,有利于節省成本具有一定工程價值,且經實驗,AGV導航精度較高,證明模糊控制器設計是較為合理的。