機(jī)器人的模糊控制是一種基于模糊邏輯理論的計算機(jī)控制方法,它通過模擬人類思維和決策過程來實現(xiàn)對機(jī)器人行為的控制。
本文中所介紹使用的競技機(jī)器人先進(jìn)模糊控制器是在FreeRTOS環(huán)境下基于XR806為項目主控,給機(jī)器人部署先進(jìn)模糊控制器,它通過將機(jī)器人的輸入信號轉(zhuǎn)化為模糊變量,并根據(jù)模糊規(guī)則對這些變量進(jìn)行處理,實現(xiàn)對于競技機(jī)器人的結(jié)構(gòu)控制和定位控制等功能。
項目介紹
開發(fā)環(huán)境使用window10+VMware+ubuntu 18.04,并基于XR806——FreeRTOS為項目主控,部署先進(jìn)模糊控制器,實現(xiàn)對于競技機(jī)器人的結(jié)構(gòu)控制和定位控制等。
競技機(jī)器人的無線控制器選擇上使用可以實現(xiàn)多維狀態(tài)機(jī)功能的XR806作為主控,并通過USART進(jìn)行CAN轉(zhuǎn)換來向電機(jī)發(fā)送信息,收到信息后電機(jī)驅(qū)動對機(jī)器人做出控制,此時機(jī)器人通過模糊控制器來反饋定位器、雷達(dá)等傳感器傳來的數(shù)據(jù)實現(xiàn)信息交互。
控制部署
在封裝好電機(jī)驅(qū)動電流環(huán)時,實現(xiàn)對電機(jī)的控制,相當(dāng)于建立了一種繼電特性的非線性控制,此時使用繼電整定法的Z-N臨界比例度法去建立模糊域。
根據(jù)以下臨界系數(shù)表,整定求出模糊域。
模糊推理及清晰化
模糊推理的核心就是計算出E和EC的隸屬度。同時把E和EC分為多種子集情況:負(fù)最大NB,負(fù)中NM,負(fù)小NS,零ZO,正小PS,正中PM,正大PB等七種情況。然后計算E/EC種子集的隸屬度。
進(jìn)行模糊推理后,可以根據(jù)計算的隸屬度,建立模糊規(guī)則表,實現(xiàn)對輸出值的清晰化。對應(yīng)到應(yīng)用層的輸出函數(shù),實現(xiàn)控制輸出。
FOC控制及仿真效果
FOC控制邏輯
仿真效果
代碼實現(xiàn)
自動整定部分核心代碼:
void PID_AutoTune_Task(void) { if(pid.AutoRegurating_Status != START) return; /*定義臨界Tc*/ float Tc = 0.0; static int start_cnt; //記錄最大值出現(xiàn)的時間 static int end_cnt; //記錄周期結(jié)束時的時間值 static uint16_t cool_cnt = 0; static uint16_t heat_cnt = 0; // pid.Autotune_Cnt ++; //計數(shù) if((pid.Pv_position == UP) && (pid.Pv < pid.Sv)) ? ?{ ? ? ? ?cool_cnt ++; ? ? ? ?if(cool_cnt >= 3) //連續(xù)三次都越過,則說明真的越過了 { pid.Pv_position = DOWN; //標(biāo)記當(dāng)前在下方了 pid.Zero_Across_Cnt ++; //標(biāo)記穿越一次 cool_cnt = 0; } } else if((pid.Pv_position == DOWN)&&(pid.Pv > pid.Sv))//剛才在下方,現(xiàn)在在上方 { heat_cnt++; if(heat_cnt >= 3) //連續(xù)三次都越過,則說明真的越過了 { pid.Pv_position = UP; //標(biāo)記當(dāng)前在下方了 pid.Zero_Across_Cnt ++; //標(biāo)記穿越一次 heat_cnt = 0; } }
實現(xiàn)模糊控制的核心代碼:
ecFuzzy[1] = 1.0 - ecFuzzy[0]; /*********查詢模糊規(guī)則表*********/ num = KpRule[pe][pec]; KpFuzzy[num] += (eFuzzy[0]*ecFuzzy[0]); num = KpRule[pe][pec+1]; KpFuzzy[num] += (eFuzzy[0]*ecFuzzy[1]); num =KpRule[pe+1][pec]; KpFuzzy[num] += (eFuzzy[1]*ecFuzzy[0]); num = KpRule[pe+1][pec+1]; KpFuzzy[num] += (eFuzzy[1]*ecFuzzy[1]); /*********加權(quán)平均法解模糊*********/ Kp_calcu = KpFuzzy[0]*kpRule[0] +KpFuzzy[1]*kpRule[1]+ KpFuzzy[2]*kpRule[2] +KpFuzzy[3]*kpRule[3]+ KpFuzzy[4]*kpRule[4] +KpFuzzy[5]*kpRule[5]+ +KpFuzzy[6]*kpRule[6]; printf(" %f,%f,%d,%d,kp = %f ", err, errchange, pe, pec, Kp_calcu); return(Kp_calcu);
實物展示
無刷電機(jī)控制:
整體定位控制:
審核編輯:湯梓紅
-
控制器
+關(guān)注
關(guān)注
114文章
17019瀏覽量
183251 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29555瀏覽量
211894 -
電機(jī)
+關(guān)注
關(guān)注
143文章
9263瀏覽量
148602 -
FreeRTOS
+關(guān)注
關(guān)注
12文章
492瀏覽量
63886 -
xr806
+關(guān)注
關(guān)注
0文章
14瀏覽量
1442
原文標(biāo)題:XR806實現(xiàn)競技機(jī)器人先進(jìn)模糊控制器
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用XR806聯(lián)調(diào)控制四足馬術(shù)機(jī)器人

評論