新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 一種基于FPGA的三坐標測量機電機控制系統

        一種基于FPGA的三坐標測量機電機控制系統

        作者: 時間:2012-07-16 來源:網絡 收藏

        1、控制系統概述

        本文引用地址:http://www.104case.com/article/193590.htm

        隨著工業的發展,越來越顯示出其重要作用。而的運行有著非常重要的作用。由于可以現場可編程,可以實現專用集成電路,能滿足片上系統設計(SOC)的要求,使其日益成為系統的關鍵部件。[1]本文介紹一種基于,用于控制電機運行。

        系統主要由PC機、控制電路、驅動器[2]和電機組成。系統結構圖見圖1。

        其中PC 機,由VC++實現用戶界面,發出的命令由進行接收和緩存,單片機進行分析處理產生控制命令,控制命令再經過FPGA傳入驅動器,控制電機運行。同時電機狀態信息反饋回PC機,用于人機交互。系統中FPGA選用的是Altera公司的Cyclone系列。

        11.jpg

        2、系統功能實現

        下面分別介紹FPGA實現電機控制功能的幾個重要部分。

        2.1 編碼器進行速度、位移量測量的實現方法

        編碼器為傳感器類的一種,主要用來偵測機械運動的速度、位置、角度、距離或計數,在電機控制中用于換相、速度及位置的檢出,作用十分重要。 光電編碼器具有分辨率高,響應速度快,體積小,重量輕,耐惡劣環境等特點,故常被用作高精度位置檢測傳感器。它的精度或分辨率主要決定于每轉輸出的脈沖數(對增量式編碼器而言) 。根據控制需要,還可以利用倍頻技術來提高位置檢測精度。[5]本系統使用增量式編碼器即增量編碼盤。

        增量編碼盤輸出信號A 和B 具有90°的相位差。A和B的相位關系反映了被測對象的旋轉方向,若A 超前于B ,表明編碼器是順時針旋轉的,反之,編碼器為逆時針旋轉。當增量編碼盤的細分數為N 時,增量編碼盤的每一個脈沖代表的角位移為360° /N,A、B 信號的頻率相同,頻率大小反映當前電機速度,由這兩個信號就可得到電機轉向、轉角和轉速。[6]如圖2所示,在A和B的上升沿和下降沿計數器均做相應變化,得到count 脈沖,在FPGA中計數,即可得到編碼器輸出的脈沖數,經過計算就可以得到電機一定時間內實際走過的路程或者單位時間內的速度。

        22.jpg

        本系統主要在FPGA中編程實現對編碼器的硬件解碼。主要程序如下:

        if(shift_a == 2’b01)

        begin

        if(b)

        cnt = #2 cnt - 1’b1;

        else

        cnt = #2 cnt + 1’b1;

        end

        else if(shift_a == 2’b10)

        begin

        if(b)

        cnt = #2 cnt + 1’b1;

        else

        cnt = #2 cnt - 1’b1;

        end

        else if(shift_b == 2’b01)

        begin

        if(a)

        cnt = #2 cnt + 1’b1;

        else

        cnt = #2 cnt - 1’b1;

        end

        else if(shift_b == 2’b10)

        begin

        if(a)

        cnt = #2 cnt - 1’b1;

        else

        cnt = #2 cnt + 1’b1;

        其中,cnt為十六位寄存器,shift_a =2’b01和shiftb=2’b01分別表示A和B出現上升沿,同理如果是等于2’b10則表示下降沿。電機編碼器硬件解碼程序仿真模擬后效果如圖3所示。圖中number為FPGA計算所得的編碼器輸出脈沖數。

        33.jpg

        2.2 脈沖控制實現運動過程

        利用脈沖控制電機速度即利用脈沖頻率決定電機速度。這種方法能夠得到較高的運行精度,適用于三坐標機。首先,上位機給定運行速度,命令傳到單片機,單片機進行計算,獲得單位脈沖周期內需要時鐘數,再將數據傳入FPGA,由其相應模塊處理。FPGA中相應的處理模塊實現的基本原理是:根據單片機給出的時鐘數進行判定。程序開始運行,開始計數周期,時鐘數目不斷累加,當累加數目到達單片機給定值的時候完成一個計數周期。然后計數器清零,重新開始計數,輸出信號狀態翻轉。程序如下所示:

        if(cnt >= currentSpd)

        begin

        puls = ~puls;

        cnt = 25’h1;

        end

        else

        cnt = cnt + 1’b1;

        其中cnt為計數器,currentSpd為單片機計算所得的時鐘數,puls為輸出脈沖。電機運動加速的過程就是一個脈沖頻率逐漸加大的過程,也就是說單位周期內時鐘數量逐漸增加的過程。相應的減速過程與之相反。勻速過程則是一個以給定頻率保持不變的運動過程。下圖便是一個勻速、減速的仿真結果。

        44.jpg

        2.3 限位和解除限位的方法

        最后講述限位及其解除方法。在電機控制過程中應用限位是一種減少事故發生的有效方法。限位功能的實現需要由限位開關實現。限位開關按其檢測方式可分為接觸式(行程開關)和非接觸式(接近開關)。[7]本系統采用非接觸式。接近開關式一種非接觸式檢測,當運動的金屬物體接近開關的感應面而達到動作距離時,便無接觸無壓力的自動發出檢測信號,用于驅動器,也可以將其輸出信號送入控制單元,以控制系統動作。[8]電機運行過程中,如果運動軸到達限位開關,即產生限位信號,信號傳到控制電路,FPGA接收限位信號,做出處理后發出停止前進信號傳給驅動器,驅動器控制電機停止,避免發生碰撞危險。一旦出現限位,前進命令即被禁止,電機只能帶動運行軸反方向運行,在運行軸反向運動同時單片機監測FPGA測得編碼器反饋的位移值,如果判斷運行軸反方向運動的位移值達到安全值,便認定限位解除,電機運行恢復正常狀態。

        3、總結

        本文較為詳細的介紹了一種基于FPGA的三坐標測量機電機控制系統。實現了較為精確的電機運行控制,實現了運行狀態監測和限位,運行過程中遇到危險時能夠及時停止,運動整體的安全性有了很大保障。

        參考文獻

        [1] 王開軍 基于FPGA的測控技術研究及應用 中國優秀碩士學位論文全文數據庫

        [2] 松下公司.A4使用說明書[Z].日本 松下公司.

        [3]王冠、俞一鳴等編著 面向CPLD/FPGA的Verilog設計 機械工業出版社

        [4] Cyclone FPGA Family Datasheet ALTERA Corporation March 2003

        [5]張團善 陳朝奎 光電編碼器的單片機減振電路設計 國外電子測量技術 2005年第8期

        [6] 吳振宇 李策 馮林 一種基于DSP和FPGA的多路微特電機控制系統 微特電機 2007年第一期

        [7] 劉井燕 限位開關的工程應用實例 自動化博覽

        [8] 羅濤 接近開關的原理應用及發展趨勢 電子技術應用 1993年第七期



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 盱眙县| 团风县| 民权县| 武陟县| 赤峰市| 宝鸡市| 辽宁省| 昭平县| 鄂温| 北票市| 齐河县| 芦山县| 大埔区| 社会| 建瓯市| 太和县| 林口县| 正蓝旗| 大埔区| 延川县| 醴陵市| 长汀县| 西盟| 石渠县| 马龙县| 含山县| 响水县| 库车县| 永城市| 涞水县| 巫山县| 专栏| 灵璧县| 保靖县| 大同县| 射洪县| 三原县| 习水县| 革吉县| 蚌埠市| 红安县|