• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

    EEPW首頁 > 工控自動化 > 設計應用 > 介紹一種高精度位置環系統

    介紹一種高精度位置環系統

    作者: 時間:2004-12-07 來源:網絡 收藏
    作者Email: serlize@sina.com

    摘要:本文簡要敘述了的組成方法,詳細闡述了光電編碼器在環中的應用原理和速度修正方法。概述了單片機及串行D/A的應用。

    關鍵詞:光電編碼器,控制,測速發電機,恒速控制。

    0 引言:

    我們在為某單位開發一種恒速泵產品時,需要一種速度調節范圍達1:100000以上p穩定精度≤0.3%調速。我們查閱了國內有關生產伺服控制廠家的產品,幾乎沒有一家能滿足要求。為了研制該產品,我們經過認真分析,仔細論證后,決定采用光電編碼器作反饋元件,用單片機測出光電編碼器每分鐘脈沖輸出個數,與給定的速度量進行比較然后改變D/A輸出電壓幅度,送給伺服系統調整電機轉速,最終將電機速度控制在0.3%以內。試驗證明該方案是可行的。

    現將該系統的組成原理及實現方法作一個簡單的

    1 實現原理:

    圖1中的系統是傳統的帶PID調節的直流伺服速度控制系統。對于控制精度較低的產品雖能滿足要求。但對于精度要求高的場合就不能適應了。這是因為:當電機運轉一段時間后,電機溫度隨著工作時間加長而不斷上升,而反饋元件(測速發電機)與伺服電機同軸連接,故測速發電機的溫度也隨之升高。因為測速發電機是用永磁磁缸制成,其轉子線圈切割磁力線而產生電勢,其值為:

    Ea=εa ∝ N
    式中 Ea為測速機輸出電勢
     εa為測速機電勢常數
     N為電機轉速

    一般情況下,εa是個常數,測速發電機產生的電勢Ea正比于轉速N。而實際上電機溫度上升后εa已經發生了變化,通常情況下是下降的,εa變小,故Ea也變小。而此時電機轉速并未下降,反饋到速度環的電壓Δu隨之上升,促使電機轉速上升,迫使Ea上升,從而達到Δu維持不變。這樣,隨著電機溫度上升,電機的速度也慢慢上升,而給定值并未改變,這就引起電機轉速的誤差增大。根據實際測量一般電機溫度每上升100℃,電機轉速的誤差會增大1-3%左右。電機轉速越低,相對誤差越大。

    為了糾正電機轉速的偏差,采用600線/轉的光電編碼器作反饋元件,與電機同軸安裝,就可以準確測出電機的轉速。因為光電編碼器是由激光照射光珊發出脈沖的,而光珊安裝在光電編碼器的轉軸上,轉軸每轉一周(3600)編碼器就產生600個脈沖,該脈沖只與轉軸速度有關,而與溫度無關。因此,只要準確測出光電編碼器的脈沖個數,就可確切知道電機的轉速。

    例如,當電機的轉速ND=1000轉/分,則每秒鐘光電編碼器的脈沖個數應為
    n光=1000*600/60
    =10000(個脈沖)

    ND=1轉/分
    n光=1*600/60 =10(個)
    如果實際測量值與上述理論計算值有偏差,則可以通過調節D/A輸出電壓調整電機的轉速,最終使
    Δn=ND測-ND理
    這樣就可以將電機的轉速控制在我們所希望的誤差范圍內。

    2 元器件的選擇;

    2.1伺服系統(速度環)選用SC5HC60型直流脈寬伺服系統,調速范圍可達1:10000以上,速度精度為0.5%FS。

    2.2電機選用稀土直流寬調速伺服測速機組,與伺服系統構成速度閉環系統。

    2.3 D/A器件選用分辨率為16位串行D/A。控制線為三線串行方式,即:一根時鐘線,一根數據線,一根選通線。

    2.4 光電編碼器每轉輸出600個脈沖,五線制。其中兩根為電源線,三根為脈沖線(A、B、Z)。電源的工作電壓為 +5~+24V直流電源。

    工作原理:當光電編碼器的軸轉動時A、B兩根線都產生脈沖輸出,A、B兩相脈沖相差90 0相位角,由此可測出光電編碼器轉動方向與電機轉速。如果A相脈沖比B相脈沖超前則光電編碼器為正轉,否則為反轉.Z線為零脈沖線,光電編碼器每轉一圈產生一個脈沖.主要用作計數。A線用來測量脈沖個數,B線與A線配合可測量出轉動方向.

    2.5單片機選用89C51-24PC單片機,晶振頻率為24MHz,用一個定時器作計數器來測量光電編碼器的脈沖個數,另一個定時器精確定時,這樣可準確測出電機每秒鐘轉動的距離,同時根據設定值計算出電機每秒鐘應轉動的理論值并與測量值進行比較,將誤差值轉換成數字量輸出到D/A芯片的輸入端,從而改變其電壓輸出,送給伺服系統控制電機的轉速,從而達到恒速的目的。

    例如:要將電機控制在500轉/分,根據伺服系統的指標,當輸入為0~5V信號時,電機轉速為1500轉/分,故可求得當ND=500轉/分時,光碼盤每秒鐘輸出的脈沖數為:

    PD=500600/60=5000個脈沖
    對應該轉速伺服系統的輸入電壓應為:
    VD=5.000500/1500=1.6666V

    當測出的脈沖個數與計算出的標準值有偏差時,可根據電壓與脈沖個數的對應關系計算出輸出給伺服系統的增量電壓△U:

    △U=△P5.000/(1500600/60)= △P/3000(V)
    而輸出到D/A的數字量的增量應為:
    △D=△U216/5.000

    電機的整個工作調節過程如下:

    工作前通過鍵盤設定控制轉速,計算出輸出電壓VD并將該電壓對應的輸出到D/A的數字量V數=VD216/5.000算出,直接送給D/A,電機開始起動運轉。當電機運轉一段時間后電機轉速不斷上升從而導致測速機磁性下降,測速機輸出電勢下降,經速度環調整后使電機轉速上升,運行時間越長,電機轉速上升越多。這時系統起動位置環,通過不斷測量光電編碼器每秒鐘輸出的脈沖個數,并與標準值PD進行比較,計算出增量△P并將之轉換成對應的D/A輸出數字量,在原來輸出電壓的基礎上減去增量,迫使電機轉速降下來,當測出的△P近似為零時停止調節,這樣可將電機轉速始終控制在允許的范圍內。

    3 硬件電路的實現

    實際工作中由于伺服系統工作電流較大,對于微機干擾較大,故在硬件電路設計時應考慮到系統的隔離和干擾問題。由于選用的是串行D/A。信號的傳輸只用三根線,故采取隔離措施相對容易些。而光電編碼器工作也容易受到干擾,因此除了正常的接地外,還要將光電編碼器輸出線中的地線可靠接地。光電編碼器的A線做脈沖檢測用,Z線作計數器用,速度輸入用鍵盤輸入數字,顯示用液晶顯示器。

    4 軟件

    根據電路的連接情況,采用匯編語言編寫了整個程序。現將部分闡述如下:

    4.1初始化
    初始化內容包括定時器、中斷系統及個單元內容的初始化

    HSTART:MOV SP,#0E0H ;設置堆棧頂地址
    MOV IE,#90H ;開中斷及串行口中斷允許
    MOV IP,#5 ;將定時器1和串口中斷設置高優先權
    MOV TCON,#5 ;外中斷0和外中斷1全部為邊沿觸發方式
    MOV TMOD,#21H ;定時器0為方式1定時器2為方式2
    MOV PCON,#0 ;SMOD=0
    MOV SCON,#0D8H ;串口設置成方式3,TB8=1,REN=1
    MOV TH1,#0FDH ;設定定時器1重裝時間常數
    MOV TL1,#0FDH
    CLR ET1
    SETB REN
    SETB ES
    MOV TH0,#2CH
    MOV TL0,#0
    SETB TR0
    SETB TR1
    ……
    4.2定時器0中斷子程序
    CLOCK0:CLR ET0 ;保護現場指令
    MOV TH0,#2CH ;重置時間常數
    MOV TL0,#0
    INC QSE0
    MOV A,#14H ;判別1秒鐘定時到否
    CJNE A,QSE0,HCLZ
    MOV QSE0,#0 ;計數器清零
    MOV A,QSEC
    ADD A,#1 ;秒單元加1
    DA A
    MOV QSEC,A
    MOV A,#5
    CJNE A,QSEC,HCLZ ;判5秒鐘到否
    MOV QSEC,#0 ;秒單元清零
    CLR EX0 ;關中斷0停止計數
    HCLZ: 恢復現場指令
    SETB ET0
    RETI ;中斷返回
    4.3中斷0計數程序
    POST1:CLR EX0
    保護現場指令
    MOV A,QLLD ;計數器低位加1
    ADD A,#1
    MOV QLLD,A
    MOV A,QLLD+1
    ADDC A,#0
    MOV QLLD+1,A
    恢復現場指令
    SETB EX0
    RETI
    4.4處理程序
    處理程序包括加減運算程序、數字轉換程序、D/A輸出程序、實時報警程序、數據采集程序等。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 昌宁县| 上高县| 长沙市| 江孜县| 凯里市| 嫩江县| 蓬安县| 泽州县| 沛县| 平顶山市| 浦东新区| 北宁市| 改则县| 昭通市| 东平县| 龙南县| 安福县| 绩溪县| 水富县| 南丰县| 东港市| 丰县| 囊谦县| 安徽省| 沂水县| 嘉兴市| 泉州市| 行唐县| 龙川县| 新民市| 兴山县| 金湖县| 岫岩| 永昌县| 红原县| 兴城市| 邛崃市| 临沂市| 稷山县| 巴南区| 荥经县|