<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 中型組機(jī)器人運(yùn)動控制系統(tǒng)的FPGA設(shè)計

          中型組機(jī)器人運(yùn)動控制系統(tǒng)的FPGA設(shè)計

          作者: 時間:2010-10-04 來源:網(wǎng)絡(luò) 收藏

          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)方向。在4倍頻和鑒向電路,本采用2路輸出:一路輸出方向,另一路輸出脈沖,并對鑒向倍頻電路進(jìn)行仿真,如圖5所示。


          根據(jù)脈沖計數(shù)來測量轉(zhuǎn)速的方法有M法、T法以及M/T法3種。M法適用于高速測量場合,在低速時有較大的誤差;而T法,恰恰相反,在低速時測量準(zhǔn)確,高速時誤差較大。


          采用文獻(xiàn)所描述的方法。該方法如圖6所示,設(shè)定參考閘門時間為固定的1個值,它只是作為參考信號和編碼信號共同確定實(shí)際的閘門時間。這樣確定的閘門時間為被測信號的整周期倍,能夠有效提高測量精度。則測得的速度為:

          3.2 增量式PID控制原理及其實(shí)現(xiàn)
          實(shí)際的數(shù)學(xué)模型不可避免地存在一定程度的參數(shù)不確定性,且三輪全方位移動的正交全向輪在行走時會與地面交替接觸而產(chǎn)生一些不確定摩擦轉(zhuǎn)矩,這些都會給的精確控制帶來難度。為了對三輪全方位移動機(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é)合的工作特點(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ī)工作原理




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();