機器人的模糊控制是一種基于模糊邏輯理論的計算機控制方法,它通過模擬人類思維和決策過程來實現對機器人行為的控制。
本文中所介紹使用的競技機器人先進模糊控制器是在FreeRTOS環境下基于XR806為項目主控,給機器人部署先進模糊控制器,它通過將機器人的輸入信號轉化為模糊變量,并根據模糊規則對這些變量進行處理,實現對于競技機器人的結構控制和定位控制等功能。
項目介紹
開發環境使用window10+VMware+ubuntu 18.04,并基于XR806——FreeRTOS為項目主控,部署先進模糊控制器,實現對于競技機器人的結構控制和定位控制等。
競技機器人的無線控制器選擇上使用可以實現多維狀態機功能的XR806作為主控,并通過USART進行CAN轉換來向電機發送信息,收到信息后電機驅動對機器人做出控制,此時機器人通過模糊控制器來反饋定位器、雷達等傳感器傳來的數據實現信息交互。
控制部署
在封裝好電機驅動電流環時,實現對電機的控制,相當于建立了一種繼電特性的非線性控制,此時使用繼電整定法的Z-N臨界比例度法去建立模糊域。
根據以下臨界系數表,整定求出模糊域。
模糊推理及清晰化
模糊推理的核心就是計算出E和EC的隸屬度。同時把E和EC分為多種子集情況:負最大NB,負中NM,負小NS,零ZO,正小PS,正中PM,正大PB等七種情況。然后計算E/EC種子集的隸屬度。
進行模糊推理后,可以根據計算的隸屬度,建立模糊規則表,實現對輸出值的清晰化。對應到應用層的輸出函數,實現控制輸出。
FOC控制及仿真效果
FOC控制邏輯
仿真效果
代碼實現
自動整定部分核心代碼:
void PID_AutoTune_Task(void) { if(pid.AutoRegurating_Status != START) return; /*定義臨界Tc*/ float Tc = 0.0; static int start_cnt; //記錄最大值出現的時間 static int end_cnt; //記錄周期結束時的時間值 static uint16_t cool_cnt = 0; static uint16_t heat_cnt = 0; // pid.Autotune_Cnt ++; //計數 if((pid.Pv_position == UP) && (pid.Pv < pid.Sv)) ? ?{ ? ? ? ?cool_cnt ++; ? ? ? ?if(cool_cnt >= 3) //連續三次都越過,則說明真的越過了 { pid.Pv_position = DOWN; //標記當前在下方了 pid.Zero_Across_Cnt ++; //標記穿越一次 cool_cnt = 0; } } else if((pid.Pv_position == DOWN)&&(pid.Pv > pid.Sv))//剛才在下方,現在在上方 { heat_cnt++; if(heat_cnt >= 3) //連續三次都越過,則說明真的越過了 { pid.Pv_position = UP; //標記當前在下方了 pid.Zero_Across_Cnt ++; //標記穿越一次 heat_cnt = 0; } }
實現模糊控制的核心代碼:
ecFuzzy[1] = 1.0 - ecFuzzy[0]; /*********查詢模糊規則表*********/ 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]); /*********加權平均法解模糊*********/ 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);
實物展示
無刷電機控制:
整體定位控制:
審核編輯:湯梓紅
-
控制器
+關注
關注
112文章
15886瀏覽量
175391 -
機器人
+關注
關注
210文章
27839瀏覽量
204608 -
電機
+關注
關注
141文章
8772瀏覽量
143784 -
FreeRTOS
+關注
關注
12文章
483瀏覽量
61729 -
xr806
+關注
關注
0文章
14瀏覽量
1303
原文標題:XR806實現競技機器人先進模糊控制器
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論