楊海光 劉文怡 朱思敏 張會新
(電子測試技術(shù)重點實驗室1,山西 太原 030051;中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室2,山西 太原 030051)
步進電機。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
隨著航空航天和飛行武器的快速發(fā)展,物體姿態(tài)的控制精度和反應(yīng)速度成為精確與快速打擊的關(guān)鍵因素。本文基于快速與精確調(diào)整設(shè)備姿態(tài)的目的,采用步進電機配合傾角傳感器[1-2],實現(xiàn)了簡易精確的姿態(tài)角度測量控制系統(tǒng),為低成本、高精度測控系統(tǒng)的發(fā)展提供了參考。
本文將傾角傳感器鑲嵌在步進電機的轉(zhuǎn)軸上,控制計算機下發(fā)定位角度;通過FPGA將定位角度與當(dāng)前實際角度進行對比運算,以控制輸出脈沖個數(shù)的方式來控制角位移量,從而達到準確定位的目的;并將傾角傳感器的實際測量值反饋給上位機進行實時監(jiān)測,進而達到對電機轉(zhuǎn)軸偏轉(zhuǎn)水平面角度的測量。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖Fig.1 The overall structure of system
ROB100上電(12 V)即工作,并立刻通過RS-232串口輸出傾角數(shù)據(jù),波特率為57600 bit/s,輸出的數(shù)據(jù)格式為每幀7個字節(jié)。數(shù)據(jù)幀格式如表1所示。
表1 數(shù)據(jù)幀格式Tab.1 Format of the data frame
本設(shè)計主要可分為5個部分,分別為數(shù)據(jù)產(chǎn)生單元——外接的數(shù)字式傾角傳感器、主控單元——FPGA、控制終端——上位機、驅(qū)動單元——功率放大器(步進電機驅(qū)動芯片)、執(zhí)行單元——永磁式減速型
表1中,X軸方向表示橫滾角,Y軸方向表示俯仰角,本設(shè)計選用的是X軸方向的角度數(shù)據(jù)實現(xiàn)測量與定位的控制。經(jīng)試驗證明,Y軸方向的控制與X軸的原理相同。
數(shù)據(jù)通過RS-232接口異步串行進入FPGA。通過FPGA內(nèi)部邏輯運算和處理,將實際測量角度反饋給上位機進行實時監(jiān)測。上位機下發(fā)定位角度,將角度轉(zhuǎn)換的脈沖數(shù)通過脈沖分配器輸出;再經(jīng)電機驅(qū)動芯片的功率放大后給到電機上,使電機旋轉(zhuǎn)到設(shè)定的位置,并在當(dāng)前位置保持動態(tài)平衡。
外部電源給傳感器供電,供電電壓為12 V。傳感器上電后下發(fā)傾角數(shù)據(jù),通過串口逐位進入MAX3232中。MAX3232將12 V的電平數(shù)據(jù)轉(zhuǎn)化為5 V的電平數(shù)據(jù)后串行進入FPGA。RS-232串口通信原理圖如圖2所示。
圖2 RS-232串口通信原理圖Fig.2 Principle of RS-232 serial port communication
通過對底層邏輯程序的編寫,對串行進入FPGA內(nèi)部的傾角數(shù)據(jù)進行采集、編碼、計算,最終將傾角數(shù)據(jù)轉(zhuǎn)化為脈沖個數(shù),并根據(jù)電機工作原理重新分配輸出。FPGA將處理后的數(shù)據(jù)經(jīng)ULN2003電機驅(qū)動芯片輸出給步進電機。
驅(qū)動電路如圖3所示。
圖3 驅(qū)動電路Fig.3 Driving circuit
本設(shè)計選用的步進電機型號為24BYJ48-5V,共有4對磁極即4相,5根線依次為紅、橙(A)、黃(B)、粉(C)、藍(D)五種顏色。其中藍線和黃線是一對,橙線和粉線是一對,紅線是這兩組線圈抽頭的公共線。藍線和黃線、橙線和粉線接控制脈沖輸出,所以只需要4個輸出接口。通過內(nèi)部邏輯程序的管腳分配,選用的是驅(qū)動芯片的前4個管腳,輸出管腳即OUT1~OUT4。紅線接+5 V的直流電源。
步進電機是純粹的數(shù)字控制電動機,是將電脈沖信號轉(zhuǎn)換成角位移的執(zhí)行元件。步進電機轉(zhuǎn)子的轉(zhuǎn)角與輸入的電脈沖數(shù)成正比,其轉(zhuǎn)速與輸入的脈沖頻率成正比,而電動機的旋轉(zhuǎn)方向則由脈沖的分配順序決定[4]。
2.2.1 步進電機技術(shù)指標
不同的步進電機有不同的啟動頻率和頻率上限,工作頻率應(yīng)介于兩者之間,電機才能在非過載的情況下正常旋轉(zhuǎn)。經(jīng)過多次計算和試驗,本設(shè)計將旋轉(zhuǎn)頻率設(shè)定為625Hz,選用的電機步距角為5.625°/64,所以旋轉(zhuǎn)一周需要4096個脈沖,每一個脈沖電機旋轉(zhuǎn)的角度約為0.088°。步進電機的運行方式為4相8拍,即A-ABB-BC-C-CD-D-DA-A,8個狀態(tài)為一個循環(huán)[5-7]。
2.2.2 傾角傳感器技術(shù)指標
選用的傳感器量程為-90°~90°。傾角傳感器產(chǎn)生的是二進制數(shù)據(jù),解碼方式如下。
①接收的16位整數(shù)≤32768時,傾角值=16位整數(shù)×90/32768(正角)。
② 接收的16位整數(shù)>32768時,傾角值=(16位整數(shù)-65535)×90/32768(負角)。
由于16位數(shù)每變化一位,角度值也會隨之變化,所以傾角傳感器的精度理論值為(1/32768)°。
2.2.3 角度與脈沖個數(shù)的轉(zhuǎn)換
由上述分析可知,步進電機的精度為0.088°。為便于底層邏輯程序編寫時換算,將這個角度表示為N;傾角傳感器的精度為(1/32768)°,將這個角度表示為n,N/n約等于32。所以當(dāng)傾角傳感器產(chǎn)生的數(shù)據(jù)變化約32個精度單位時,電機變化一個精度單位,即將產(chǎn)生的角度數(shù)據(jù)轉(zhuǎn)化成整數(shù)與32循環(huán)作差。當(dāng)數(shù)據(jù)減到小于32時,停止作差循環(huán)。通過計數(shù)器將“32”的個數(shù)進行累加,即為實際輸出的脈沖數(shù)。對于實際位置偏離參考面的上下兩側(cè),則通過控制步進電機的旋轉(zhuǎn)方式來實現(xiàn)調(diào)整要求[8]。
本設(shè)計應(yīng)用VHDL作為邏輯程序編輯語言,在此重點介紹計算器和脈沖分配器的設(shè)計與實現(xiàn)。通過對底層邏輯程序編寫,經(jīng)綜合編譯后生成的頂層圖如圖4所示。
圖4 計算器和脈沖分配器邏輯程序頂層圖Fig.4 Top layer of the logical program of calculator and pulse distributor
3.1.1 計算器
計算模塊連接通信的主要引腳的功能如下。
clk表示時鐘信號,使模塊正常工作的時鐘。rst表示復(fù)位信號,低電平有效。復(fù)位后計算器處于初始狀態(tài)。datain表示傾角傳感器下發(fā)的數(shù)據(jù),計算器內(nèi)部進行運算處理。wrin表示寫數(shù)據(jù)信號,每發(fā)生一次由低到高的變化就寫入一組數(shù)據(jù)。busy表示忙碌等待信號,脈沖分配器反饋給計算器的信號。當(dāng)脈沖分配器處于工作執(zhí)行狀態(tài)時,計算器停止數(shù)據(jù)的下發(fā)。cntoutX表示脈沖個數(shù)信號(最高位控制旋轉(zhuǎn)方向,剩下的為數(shù)據(jù)位),由計算器內(nèi)部計算轉(zhuǎn)換產(chǎn)生,輸出給脈沖分配器,再由脈沖分配器分配啟動脈沖,最終由步進電機執(zhí)行相應(yīng)的步數(shù)。
以上信號中,除cntoutX為輸出信號外,其余均為輸入信號。
3.1.2 脈沖分配器
脈沖分配模塊連接通信的主要引腳的功能如下。
clk32表示時鐘信號,驅(qū)動準備時鐘1.25 MHz。rst表示復(fù)位信號,低電平有效。復(fù)位后脈沖分配器處于初始狀態(tài)。cntin表示脈沖個數(shù)信號,接收計算器給出的脈沖個數(shù)及旋轉(zhuǎn)方向。busy表示忙碌等待信號,脈沖分配器產(chǎn)生,當(dāng)脈沖分配器處于忙碌狀態(tài)時,輸出為高電平。data表示執(zhí)行信號,脈沖分配器輸出給步進電機時電機正常運轉(zhuǎn)的執(zhí)行脈沖。
以上信號中,除data為輸出信號外,其余均為輸入信號。
為了直觀顯示,全面地表示出算法實現(xiàn)的過程,這里以45°所在的平面為參考平面,詳細介紹了算法的運用與實現(xiàn)。角度示意圖如圖5所示。
傾角傳感器輸出的角度落在第一象限并且大于45°時,用傳感器角度減去45°,即為調(diào)整角度,旋轉(zhuǎn)方向設(shè)定為順時針;當(dāng)傾角傳感器輸出的角度落在第一象限并且小于45°時,用45°減去傳感器角度,即為調(diào)整角度,旋轉(zhuǎn)方向設(shè)定為逆時針;當(dāng)傾角傳感器輸出的角度落在第四象限時,計算角度的方法為65535減去接收到的16位數(shù)據(jù),將這個數(shù)據(jù)轉(zhuǎn)化成角度,即為傾角傳感器在第四象限中的實際角度(符號忽略不計),再加上參考面設(shè)定的45°,即為需要調(diào)整的角度,旋轉(zhuǎn)方向設(shè)定為逆時針。
圖5 角度示意圖Fig.5 Schematic diagram of angle
通過對本設(shè)計的研究,將開環(huán)器件步進電機與傾角傳感器有效結(jié)合,最終實現(xiàn)了帶反饋的閉環(huán)可控系統(tǒng),提高了電機的實用性。
本設(shè)計邏輯簡單、可靠性好,設(shè)計理念可以有效地應(yīng)用在各種需要維持動態(tài)平衡狀態(tài)的擺翼或舵盤上,也可以根據(jù)需求測量出實際應(yīng)用中的俯仰角或橫滾角,具有廣泛的應(yīng)用情景。
[1]汪厚新.采用FPGA的步進電機控制系統(tǒng)研究[D].成都:西南交通大學(xué),2006.
[2]張維勝.傾角傳感器原理和發(fā)展[J].傳感器世界,2002,8(1):18-21.
[3]陳曉鴿,昂軍.Protel 99SE標準實例教程[M].北京:機械工業(yè)出版社,2010:139-183.
[4]王美川,王紫婷.基于FPGA控制的步進電機驅(qū)動設(shè)計[J].電子測量技術(shù),2008,31(6):184-187.
[5]吳云,陸鍔,趙海洋,等.基于FPGA的步進電機細分驅(qū)動器的設(shè)計[J].自動化儀表,2009,30(10):61-63.
[6]林海波.基于單片機的步進電機均勻細分驅(qū)動器的實現(xiàn)[J].自動化儀表,2004,25(9):60-63.
[7]陳錫侯,陳濤,彭東林,等.基于時間細分技術(shù)的高精度自動定位控制方法研究[J].自動化儀表,2011,32(4):26-28.
[8]諶慧銘,湯曉華,郭小進.轉(zhuǎn)子微揚度測量儀的研制[J].自動化儀表,2008,29(10):47-50.