中型組機(jī)器人運(yùn)動控制系統(tǒng)的FPGA設(shè)計
3.1 正交編碼信號采集與測速實(shí)現(xiàn)
增量式光電編碼器輸出信號如圖4所示。本文引用地址:http://www.ex-cimer.com/article/162812.htm
A、B兩相信號是相位相差90°的正交方波脈沖串,每個脈沖代表被測對象旋轉(zhuǎn)了一定的角度,A、B之間的相位關(guān)系則反映了被測對象的旋轉(zhuǎn)方向。在FPGA中設(shè)計4倍頻和鑒向電路,本設(shè)計采用2路輸出:一路輸出方向,另一路輸出脈沖,并對鑒向倍頻電路進(jìn)行仿真,如圖5所示。
根據(jù)脈沖計數(shù)來測量轉(zhuǎn)速的方法有M法、T法以及M/T法3種。M法適用于高速測量場合,在低速時有較大的誤差;而T法,恰恰相反,在低速時測量準(zhǔn)確,高速時誤差較大。
本設(shè)計采用文獻(xiàn)所描述的方法。該方法如圖6所示,設(shè)定參考閘門時間為固定的1個值,它只是作為參考信號和編碼信號共同確定實(shí)際的閘門時間。這樣確定的閘門時間為被測信號的整周期倍,能夠有效提高測量精度。則測得的速度為:
3.2 增量式PID控制原理及其FPGA實(shí)現(xiàn)
實(shí)際機(jī)器人的數(shù)學(xué)模型不可避免地存在一定程度的參數(shù)不確定性,且三輪全方位移動機(jī)器人的正交全向輪在行走時會與地面交替接觸而產(chǎn)生一些不確定摩擦轉(zhuǎn)矩,這些都會給機(jī)器人的精確控制帶來難度。為了對三輪全方位移動機(jī)器人進(jìn)行精確的控制,系統(tǒng)采用PID速度閉環(huán)控制算法對機(jī)器人的3個全向輪進(jìn)行速度調(diào)節(jié)。
令采樣周期為TS,將連續(xù)PID公式離散化后可得到數(shù)字PID算法表達(dá)式:
式中:k為采樣序號;u(k)為第k個采樣時刻的計算機(jī)輸出值;e(k)為第k個采樣時刻的計算機(jī)輸入誤差值;e(k-1)為第k-1個采樣時刻的輸入誤差值;Kp為比例系數(shù);KI為積分系數(shù);KD為微分系數(shù)。
這種算法雖然比較直觀,但由于是全量輸出,所以每次輸出均與過去的所有狀態(tài)有關(guān),計算時要對e(k)進(jìn)行累加,計算機(jī)運(yùn)算量大。
于是產(chǎn)生了增量式PID算法:
上述公式(7)為增量式PID控制算法。只輸出控制增量,誤動作影響較小,且控制增量只與最近幾次的采樣值有關(guān),容易通過加權(quán)處理獲得比較好的控制效果。
根據(jù)以上公式推導(dǎo),結(jié)合FPGA的工作特點(diǎn),本文設(shè)計了適合FPGA的增量式PID實(shí)現(xiàn)結(jié)構(gòu)。
由圖7可以看出,增量式PID控制算法程序結(jié)構(gòu),只要最近的3個誤差采樣值就可以加權(quán)計算。這在FPGA內(nèi)部完全可以并行實(shí)現(xiàn),移位部分結(jié)構(gòu)類似FIR濾波器的實(shí)現(xiàn)結(jié)構(gòu),難點(diǎn)是FPGA設(shè)計時對有符號數(shù)的熟練操作和保證累加器不能溢出。
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
評論