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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于MSP430F449的懸掛運動控制系統設計

          基于MSP430F449的懸掛運動控制系統設計

          作者: 時間:2012-02-09 來源:網絡 收藏

          3.2 系統算法實現原理
          3.2.1 系統畫任意曲線算法實現
          前提:畫紙和步進電機都是量化設備。畫紙為坐標紙(1cm間隔),如圖2所示,步進電機步進角度恒定(1.5°或1.8°)。

          本文引用地址:http://www.ex-cimer.com/article/161134.htm

          b.jpg


          公式推導:由勾股定理:
          c.jpg
          初步方案:
          1)以直線或圓的量化算法計算出軌跡上的下一個點坐標,磁電機為步進電機的驅動目標。
          2)根據推導公式計算出步進電機的驅動距離3)將驅動距離量化為驅動圈數,為降低累積誤差,量化余數算入下一次的驅動距離當中。
          具體方案流程圖如圖3所示。

          d.jpg


          3.2.2 直線的生成算法
          本系統中畫直線直接用數字微分分析式DDA(Digital Differential Analyzer)算法。具體實現過程如下:
          設直線的起點為(x1,y1),終點為,則斜率m為:
          e.jpg
          直線中的每一點坐標都可以由前一點坐標變化一個增量而得到(Dx,Dy),即表示遞歸式:
          f.jpg
          遞歸式的初值為直線的起點(x1,y1),這樣,就可以用加法來生成一條直線。
          3.2.3 圓的生成算法
          本系統畫圓采用極坐標法實現。
          當θ從0到2π做遞增時,由此式便可求出圓周上均勻分布的360個點的(x,y)坐標。利用圓周坐標的對稱性,此算法還可以簡化。將圓周分為8個象限,只要將第1a象限中的圓周光柵點求出,其余7部分可以通過對稱法則計算出來。圖中給出了圓心在(0,0)點時的對稱變化法則。
          3.2.4 循跡算法
          循跡中,將傳感器陣列的八個方向分成正向反向兩大類。其中,有效檢測方向分以下3級:
          第1級:原方向。
          第2級:原方向緊鄰的兩個方向。
          第3級:與原方向垂直的兩個方向。
          其他3個方向均為反方向。
          循跡方向選取原則:首先濾除前4步的所有反方向(由位或得到),防止按反方向倒退。濾除之后,剩下的有效方向中,如果仍有原方向,則按原方向繼續(xù)執(zhí)行;若沒有,則依次尋找第2級,第3級。若最后均沒有(遇到黑線的間斷處),
          則回歸到第1級,即繼續(xù)往前行。綜上,就是只有上一級循跡不成功才會依次尋找下一級。

          4 系統硬件電路
          4.1 步進電機驅動模塊電路
          三相步進電機使用的是UP-3BF04型電機驅動器,操作方便,控制信號可由MSP430直接引出,編程實現對它的控制,如圖4所示。

          h.jpg


          其特點是:1)PWM恒流驅動,三相六拍勵磁方式,電源損耗極低且具有極高的開關效率;2)自動半流鎖定功能,驅動電流可達4 A;3)所有控制信號與功率驅動部分光電隔離;4)散熱外殼與驅動器內部完全絕緣。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();