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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于FPGA技術(shù)的全方位移動機器人運動控制系統(tǒng)的方案設(shè)計

          基于FPGA技術(shù)的全方位移動機器人運動控制系統(tǒng)的方案設(shè)計

          作者: 時間:2013-12-26 來源:網(wǎng)絡(luò) 收藏
          電編碼器輸出信號如圖4所示。

            

          基于FPGA技術(shù)的全方位移動機器人運動控制系統(tǒng)的方案設(shè)計

            A、B兩相信號是相位相差90°的正交方波脈沖串,每個脈沖代表被測對象旋轉(zhuǎn)了一定的角度,A、B之間的相位關(guān)系則反映了被測對象的旋轉(zhuǎn)方向。在FPGA中設(shè)計4倍頻和鑒向電路,本設(shè)計采用2路輸出:一路輸出方向,另一路輸出脈沖,并對鑒向倍頻電路進(jìn)行仿真,如圖5所示。

            

          基于FPGA技術(shù)的全方位移動機器人運動控制系統(tǒng)的方案設(shè)計

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

            

          基于FPGA技術(shù)的全方位移動機器人運動控制系統(tǒng)的方案設(shè)計

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

            

          基于FPGA技術(shù)的全方位移動機器人運動控制系統(tǒng)的方案設(shè)計

            4. 增量式PID控制原理及其FPGA實現(xiàn)

            實際機器人的數(shù)學(xué)模型不可避免地存在一定程度的參數(shù)不確定性,且三輪全方位的正交全向輪在行走時會與地面交替接觸而產(chǎn)生一些不確定摩擦轉(zhuǎn)矩,這些都會給機器人的精確控制帶來難度。為了對三輪全方位進(jìn)行精確的控制,系統(tǒng)采用PID速度閉環(huán)控制算法對機器人的3個全向輪進(jìn)行速度調(diào)節(jié)。

            令采樣周期為TS,將連續(xù)PID公式離散化后可得到數(shù)字PID算法表達(dá)式:

            

          基于FPGA技術(shù)的全方位移動機器人運動控制系統(tǒng)的方案設(shè)計

            式中:k為采樣序號;u(k)為第k個采樣時刻的計算機輸出值;e(k)為第k個采

          pid控制相關(guān)文章:pid控制原理


          fpga相關(guān)文章:fpga是什么


          伺服電機相關(guān)文章:伺服電機工作原理


          pid控制器相關(guān)文章:pid控制器原理




          評論


          相關(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); })();