林義忠,張 勤,望 翔
(廣西大學(xué)機(jī)械工程學(xué)院,廣西 南寧 530004)
自動引導(dǎo)小車 AGV(automated guided vehicle),是現(xiàn)代物流系統(tǒng)中的重要成員[1],它具有自動化集成度高、柔性好、可靠性高、自動導(dǎo)航運(yùn)行、安裝便利及使用方便等特點[2]。AGV的導(dǎo)航方式眾多,包括視覺導(dǎo)航、GPS導(dǎo)航、激光導(dǎo)航、磁帶導(dǎo)引[3]。其中磁帶導(dǎo)引由于實現(xiàn)簡單,造價便宜,抗干擾能力強(qiáng)在工程領(lǐng)域應(yīng)用最廣。磁導(dǎo)航AGV的控制方法較常用的即傳統(tǒng)的PID控制,文獻(xiàn)[4]用雙磁導(dǎo)引方式得出AGV的位置偏差和角度偏差然后用pid算法實現(xiàn)車速的控制,但由于AGV本身的非完整約束特性和非線性加上傳感器精度不夠[5],傳統(tǒng)的控制方法控制效果不佳且實現(xiàn)復(fù)雜,在以PLC為核心的控制系統(tǒng)上很難實現(xiàn)。故本文采用模糊控制方法進(jìn)行AGV路徑跟蹤控制。
本文設(shè)計的磁導(dǎo)航AGV由本體結(jié)構(gòu)、電氣控制單元和傳感器檢測單元三部分組成,其總體結(jié)構(gòu)如圖1所示。AGV本體結(jié)構(gòu)為六輪式結(jié)構(gòu),由位于車體中部驅(qū)動單元的兩驅(qū)動輪和前后四個萬向輪組成。兩驅(qū)動輪由兩個步進(jìn)電機(jī)通過差速驅(qū)動實現(xiàn)AGV直行、轉(zhuǎn)向、避障等運(yùn)動。
圖1 AG V結(jié)構(gòu)示意圖
電控單元中采用西門子S7-200系列PLC CPU224XP作為主控制器,用PTO脈沖輸出方式完成AGV加速啟動和減速停止時的步進(jìn)電機(jī)控制,PWM脈沖輸出方式完成軌跡跟蹤時的電機(jī)控制。傳感器檢測單元由用于磁條路徑檢測的磁傳感器和用于避障的超聲波傳感器和接觸式防撞傳感器組成,其中磁傳感器為AGV的“眼睛”,通過讀取磁條獲取小車位置和偏移狀態(tài)信息,主控制單元通過對其所得到的信息進(jìn)行分析,得到不同偏移狀態(tài)時的電機(jī)控制量,從而達(dá)到對AGV準(zhǔn)確控制的目的。
本文設(shè)計的模糊控制器為單輸入-單輸出(SISO)二維結(jié)構(gòu)形式模糊控制器。位置偏差e和位置偏差變化率ec作為輸入?yún)?shù),輸出量u則為兩輪的角速度差。
位置偏差e根據(jù)磁傳感器檢測到的信號來定義,AGV采用的磁傳感器是YF-9016型磁導(dǎo)航傳感器,將其安裝在AGV驅(qū)動單元的前部。傳感器有16個相互之間間隔1 cm磁信號采樣點,將其進(jìn)行編號,編號情況如圖2所示。當(dāng)AGV處在磁條正中央時,H6-H9點同時感應(yīng)到磁信號導(dǎo)通,將此狀態(tài)定義為無偏差,當(dāng)H6左邊的檢測點導(dǎo)通時,即AGV向右偏離軌道,且根據(jù)檢測點間的間隔定義左邊每導(dǎo)通一個點即AGV向右偏1 cm,H9右邊點的導(dǎo)通即意味著AGV左偏,因此根據(jù)檢測點的導(dǎo)通情況可以得出AGV的偏差距離,并定義AGV左偏時位置偏差e為正值,右偏時為負(fù)值。當(dāng)H0和H15點檢測到磁信號時,此時偏差距離最大,數(shù)值分別為-6 cm和6 cm,因此偏差e的基本論域-6~6 cm.位置偏差變化率ec根據(jù)本次位置偏差與上一次位置偏差差值來定義,即 ec(i)= e(i)-e(i-1),基本論域為[-3,3].u為兩輪角速度差,其由右輪角速度減去左輪角速度定義,根據(jù)AGV額定速度0.5 m/s,輪子半徑R=10 cm,且糾偏過程中平均速度維持0.5 m/s不變,經(jīng)計算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右極速}。將實際值通過隸屬函數(shù)映射到模糊集合,進(jìn)行模糊化。為了計算簡便,輸入輸出變量的隸屬函數(shù)都選用的三角形和梯形隸屬函數(shù)構(gòu)成。e、ec和u的模糊隸屬函數(shù)如圖3所示。
圖3 模糊隸屬函數(shù)
對于本文設(shè)計的AGV模糊控制器,根據(jù)其結(jié)構(gòu)控制規(guī)則應(yīng)采用以下的模糊條件語句,即:If E and EC then U.其中:E、EC分別為輸入系統(tǒng)偏差量e和偏差變化率ec模糊化的模糊集合。通過對路徑的分析和實驗規(guī)律,得出相應(yīng)的模糊控制規(guī)則表1.
表1 模糊控制規(guī)則表
建立模糊控制規(guī)則的原則就是偏差大時,首要考慮減小誤差,采用大控制量使左右輪速差增大,快速進(jìn)行糾偏;偏差小時,則以保持系統(tǒng)穩(wěn)定性為主以減小超調(diào)量。
采用最大隸屬度平均值法(mom)進(jìn)行解模糊,根據(jù)e和ec的每一種取值,利用模糊推理合成規(guī)則計算Uij=(Ei×EC)j·R,得出相應(yīng)的模糊控制規(guī)則查詢表。但由于表中的u為角速度差,s7-200plc無法直接輸出,因此通過u算出兩個輪各自的角速度,然后將角速度利用公式轉(zhuǎn)換成兩輪對應(yīng)的脈沖頻率f,在對f進(jìn)行求倒,并圓整為偶數(shù),即得到相應(yīng)的脈沖周期,這即是PLC用PWM脈沖輸出方式驅(qū)動步進(jìn)電機(jī)所需參數(shù)。實際的右輪模糊控制實際輸出查詢表如表2所示,其中t′R代表右輪脈沖周期其單位為μs,左輪模糊控制實際輸出查詢表為表3,將表2中各項倒置過來即可得到,不再列出。
表2 AG V右輪實際輸出模糊控制查詢表
表3 AG V左輪實際輸出模糊控制查詢表
控制器采用的S7-200 CPU 224XP,其是西門子系列的小型PLC,官方?jīng)]有提供相應(yīng)的模糊控制模塊,因此需使用S7-200自身的編程語言和程序結(jié)構(gòu)來實現(xiàn)模糊控制,由于S7-200的表指令限制太多,本文直接利用間接尋址的方法進(jìn)行在線查表完成模糊控制,實現(xiàn)流程如下:
(1)對輸入信號編碼。磁傳感器檢測到的是開關(guān)量信號利用PLC中的字傳送指令MOVW轉(zhuǎn)化為相應(yīng)的位置偏差e值,當(dāng)相應(yīng)I輸入口接通時,賦予其對應(yīng)的偏差值,用變量存儲器VW10保存偏差值的數(shù)值。程序部分截圖如圖4所示。
圖4 磁傳感器輸入信號編碼程序
(2)ec值的計算。用VW8存儲偏差值的歷史值,且賦予其初值為0,代表初始時刻AGV小車與磁條無偏差,將VW10減去VW 8,即得到偏差變化率數(shù)值并將結(jié)果存儲于VW12中,之后將VW10中的值賦給VW 8,作為下一次偏差變化率計算時的e(i-1)值,即作為新的偏差歷史值。
(3)模糊控制查詢表的導(dǎo)入。將2.2節(jié)總結(jié)出的表2和表3中的數(shù)據(jù)直接通過STEP7-Micro/WIN軟件的數(shù)據(jù)塊輸入至PLC的V存儲器,將表2中數(shù)據(jù)按每行從左到右、從上到下的順序輸入至VW300~VW400的連續(xù)51個字存儲空間中,表3中的數(shù)據(jù)輸入至VW404-VW504.
(4)控制量tR′和tL′的在線查詢。為了能便于查詢,將輸入量e值和ec值分別加上一個偏移量6和3,相應(yīng)的 e的取值變?yōu)閧0,1,2,3,4,5,6,7,8,9,10,11,12},ec的取值為{0,1,2,3,4,5,6},e和 ec的值即轉(zhuǎn)換為控制規(guī)則查詢表中的行號和列號,控制量tR′和tL′所在表格位置的編號由Gij=7ei+ecj計算得出,具體用程序?qū)崿F(xiàn)時,將VW 10和VW12中的e和ec值用加法指令加上對應(yīng)的偏移量6和3,用乘法和加法指令算出存儲于VW14,查詢表中數(shù)據(jù)用字空間存儲,因此尋址時偏移地址應(yīng)為2Gij,因此再用MUL指令算出2Gij并得到一個32位的值存儲于VD16,建立兩個指針VD20和VD24并分別賦給VW300和VW404,即將兩個表的基址存儲于指針中,然后利用基址+偏移地址的方法查找到對應(yīng)的控制量,即將VD020和VD24與VD016相加后得到的新VD020和VD024就已指向存儲了對應(yīng)控制量的寄存器的地址。然后通過取指針操作如“*VD020”即可將指針指向的存儲單元的內(nèi)容取出并賦到其他的寄存器如 VW28 中,完成控制量 t′R和 t′L的查找。
(5)將存儲了控制量 t′R和 t′L的寄存器賦給脈沖輸出子程序中相應(yīng)的特殊繼電器,即可使PLC完成相應(yīng)的PWM輸出,對電機(jī)進(jìn)行調(diào)速。
為了測試本文所研究的AGV循跡模糊控制器的可行性與實際效果,進(jìn)行了現(xiàn)場實驗。在布好的磁條軌跡上等間距的粘貼多個20×3的紙條,將一根畫筆鉛垂的綁在車體中間位置,讓AGV繞軌道運(yùn)行一周,記錄其在各個軌跡采樣點上的位置誤差,即對白紙上的軌跡線與磁條的偏距進(jìn)行記錄,實驗現(xiàn)場情況如圖5所示。實驗時,AGV運(yùn)行的平均速度為0.5 m/s,采樣點總共為52個。實驗結(jié)果為表4所示。
圖5 AG V的路徑跟蹤精度測試實驗
表4 偏距統(tǒng)計
由表4可看出以額定速度運(yùn)行時,AGV的偏距平均值和標(biāo)準(zhǔn)差均較低,證明了其運(yùn)行時,路徑跟蹤精度較好,且從最大值和最小值可看出偏差始終在磁傳感器的檢測范圍內(nèi),沒有出現(xiàn)脫離軌道的情況。有效表明了本次設(shè)計AGV循跡模糊控制器的可行性。
針對磁導(dǎo)航AGV所用傳感器難以精確反應(yīng)小車跟蹤軌跡的情況,以及AGV自身的非線性和非完整約束特性造成的建模困難,使基于數(shù)學(xué)解析的控制方法難于應(yīng)用的問題,設(shè)計了用于路徑跟蹤的AGV模糊控制器,改善AGV路徑跟蹤時的穩(wěn)定性和準(zhǔn)確性。并利用PLC自身指令與尋址方法的組合,將模糊控制法應(yīng)用到功能較為單一的小型PLC上,有利于節(jié)省成本具有一定工程價值,且經(jīng)實驗,AGV導(dǎo)航精度較高,證明模糊控制器設(shè)計是較為合理的。