《基于TMS320F28377D的伺服驅(qū)動(dòng)系統(tǒng)調(diào)試》有獎(jiǎng)問答--第三期/共四期
掃描二維碼
隨時(shí)隨地手機(jī)看文章
第三篇 使用eQEP模塊的電機(jī)速度環(huán)與位置環(huán)調(diào)試
伺服系統(tǒng)中速度環(huán)控制為整個(gè)閉環(huán)控制系統(tǒng)中的中間環(huán),位置環(huán)控制為最外環(huán)。速度環(huán)在伺服系統(tǒng)中主要起到控制轉(zhuǎn)速的作用。位置環(huán)是伺服系統(tǒng)的位置控制單元。
速度環(huán)的反饋元件一般為模擬測速機(jī)或編碼器,位置環(huán)的反饋元件一般為編碼器、光柵尺、感應(yīng)同步器、旋轉(zhuǎn)變壓器等,根據(jù)不同的工作場合而決定。多數(shù)場合下都使用編碼器作為速度環(huán)與位置環(huán)的反饋元件。編碼器根據(jù)工作原理分為絕對值編碼器和增量式編碼器。我們在項(xiàng)目中使用2500線增量式光電編碼器,其輸出為正交脈沖A/B信號與原點(diǎn)脈沖Z信號。
TMS320F28377D集成了增強(qiáng)型正交編碼脈沖(eQEP)模塊,該模塊通過和增量式光電編碼器的A/B/Z信號相連,獲取高性能的運(yùn)動(dòng)和位置控制系統(tǒng)中電機(jī)的位置、方向和速度信息。TMS320F28377D有3個(gè)eQEP模塊,包含如下功能單元:
● 每個(gè)引腳的可編程輸入限制(GPIO MUX的一部分)
● 正交解碼器單元(QDU)
● 位置計(jì)數(shù)器和位置測量控制單元(PCCU)
● 用于低速測量的正交邊緣捕獲單元(QCAP)
● 速度/頻率測量的單位時(shí)基(UTIME)
● 用于檢測失速的看門狗定時(shí)器(QWDOG)
圖1展示包括電流環(huán)、速度環(huán)、位置環(huán)的全閉環(huán)框架。項(xiàng)目調(diào)試中,一般遵循先調(diào)試電流環(huán),再調(diào)試速度環(huán),最后調(diào)試位置環(huán)的步驟。依次確認(rèn)各個(gè)環(huán)路的硬件與軟件正確工作。圖中速度環(huán)的輸出Spd_out、位置環(huán)的輸出SpeedRef、位置給定參考值PositionRef,與ADC模塊采集的實(shí)時(shí)電流Ds、eQEP模塊采集編碼器的實(shí)時(shí)速度Speed與位置MechTheta通過PID調(diào)節(jié)器實(shí)時(shí)調(diào)節(jié)誤差,增強(qiáng)系統(tǒng)的準(zhǔn)確性與穩(wěn)定性。
圖1 全閉環(huán)框架
TI提供了數(shù)字電機(jī)控制軟件庫( Digital Motor Control),由為C2000電機(jī)控制而開發(fā)的C函數(shù)(或宏)組成。DMC庫幾乎覆蓋了所有與FOC電機(jī)控制相關(guān)模塊化的數(shù)學(xué)計(jì)算函數(shù),以及這些模塊的初始化函數(shù)。例如,圖1所示速度環(huán)中的速度計(jì)算函數(shù)SPEED_FR()。軟件設(shè)置中使用DMC庫可以很方便的調(diào)用這些函數(shù),使軟件控制流程更加清晰。
eQEP模塊在實(shí)際使用中應(yīng)根據(jù)電機(jī)的具體參數(shù)進(jìn)行初始化工作。例如我們項(xiàng)目使用8轉(zhuǎn)子極數(shù)與2500線制編碼器一體的電機(jī),軟件初始化eQEP過程如下:
// Init QEP parameters
qep1.LineEncoder = 2500; // these are the number of slots in the QEP encoder
qep1.MechScaler = _IQ30(0.25/qep1.LineEncoder);
qep1.PolePairs = POLES/2; // POLES = 8
qep1.CalibratedAngle = 0;
QEP_INIT_MACRO(1,qep1)
其中QEP_INIT_MACRO函數(shù)中配置eQEP的QPOSMAX寄存器為4* qep1.LineEncoder,即eQEP采集編碼器輸出的正交脈沖信號最大計(jì)數(shù)值為10000。在FOC算法中位置計(jì)數(shù)(eQEP模塊的QPOSCNT寄存器)需要經(jīng)過如下?lián)Q算為機(jī)械角度。為適應(yīng)不同的啟動(dòng)位置,用CalibratedAngle表示首次檢測到編碼器原點(diǎn)信號時(shí)位置的計(jì)數(shù)鎖存值。
/* Compute the mechanical angle */
qep1.RawTheta = (*eQEP[1]).QPOSCNT + qep1.CalibratedAngle;
qep1.MechTheta = qep1.MechScaler * qep1.RawTheta;
PolePairs是電角度(ElecTheta)與機(jī)械角度(MechTheta)的倍數(shù)。在FOC算法中重要的PARK、IPARK及速度的計(jì)算需要電角度(ElecTheta)參數(shù)。其軟件實(shí)現(xiàn)如下:
/* Compute the electrical angle */
qep1.ElecTheta = (qep1.PolePairs*qep1.MechTheta) -floor(qep1.PolePairs*qep1.MechTheta);
速度環(huán)與位置環(huán)的PID調(diào)節(jié)使用了DMC庫標(biāo)準(zhǔn)函數(shù),如下所示。
// position PI regulator
pi_pos.Ref = rc1.SetpointValue;
pi_pos.Fbk = posEncMechTheta;
PI_POS_MACRO(pi_pos);
// speed PID regulator
pid_spd.term.Ref = pi_pos.Out;
pid_spd.term.Fbk = speed1.Speed;
PID_MACRO(pid_spd);
位置環(huán)的工作需要eQEP模塊進(jìn)行位置信息的讀取,而速度環(huán)的工作需要根據(jù)eQEP模塊讀取的位置計(jì)算速度。在整個(gè)軟件控制中如僅有速度環(huán),則只能控制電機(jī)按照一定速度旋轉(zhuǎn)。增加位置環(huán)不僅可以控制電機(jī)旋轉(zhuǎn),更可控制電機(jī)按照既定位置旋轉(zhuǎn),達(dá)到伺服控制系統(tǒng)中對精確位置控制的要求。
在項(xiàng)目調(diào)試過程中,筆者遇到當(dāng)電機(jī)轉(zhuǎn)子第一次旋轉(zhuǎn)至編碼器原點(diǎn)時(shí),電機(jī)會(huì)出現(xiàn)輕微抖動(dòng)伴有異常聲音,嚴(yán)重時(shí)會(huì)導(dǎo)致超調(diào)出現(xiàn)過流保護(hù)現(xiàn)象。判斷與轉(zhuǎn)子原始角度RawTheta = (*eQEP[1]).QPOSCNT + CalibratedAngle公式的計(jì)算有關(guān)系。圖2表示電機(jī)抖動(dòng)時(shí)刻RawTheta的變化。
圖2 RawTheta異常情況
這個(gè)問題屬于軟件問題,是在原點(diǎn)信號到來時(shí)軟件沒有處理好QPOSCNT與CalibratedAngle的關(guān)系,導(dǎo)致CalibratedAngle存儲了原點(diǎn)位置,而QPOSCNT尚未清零出現(xiàn)位置數(shù)據(jù)疊加情況,進(jìn)而導(dǎo)致后續(xù)的速度與電流同時(shí)進(jìn)行調(diào)節(jié)而出現(xiàn)轉(zhuǎn)子抖動(dòng)。
軟件問題的發(fā)現(xiàn)與處理較硬件問題容易解決。若編碼器脈沖信號上存在電磁干擾會(huì)直接導(dǎo)致電機(jī)運(yùn)轉(zhuǎn)過程頻繁抖動(dòng)或直接超調(diào)而進(jìn)行保護(hù)動(dòng)作。如圖3右圖所示,一個(gè)異常的原點(diǎn)信號使轉(zhuǎn)子位置突然初始化為0。如圖3左圖所示,軟件中的各PID模塊因調(diào)整誤差而超調(diào),最后導(dǎo)致實(shí)際電流過大。信號的電磁干擾是實(shí)際調(diào)試中對增量式編碼器脈沖信號影響較大的因素。需要在硬件設(shè)計(jì)上做更多對電磁干擾的考慮。
圖3 左圖為電流情況 / 右圖為轉(zhuǎn)子位置(RawTheta)