王紹偉,盛小波,賴 歡,尹玉京,楊 斐
(重慶望江工業(yè)有限公司 軍品研發(fā)中心,重慶 400071)
通常一個高性能的跟瞄平臺,應(yīng)具備跟蹤精度高、響應(yīng)速度快、抗干擾能力強(qiáng)的性能特點(diǎn),而要實現(xiàn)這些性能就必須有一套有效的方法,使系統(tǒng)能夠克服負(fù)載慣性、摩擦、間隙等因素的影響,將其校正為線性系統(tǒng)。典型的三環(huán)調(diào)節(jié)伺服轉(zhuǎn)臺的控制結(jié)構(gòu)框圖如圖1所示。為了直觀地反映其性能特點(diǎn),利用伺服轉(zhuǎn)臺測試軟件發(fā)送標(biāo)準(zhǔn)信號,同時采集系統(tǒng)響應(yīng)信號進(jìn)行分析和評價。
對伺服轉(zhuǎn)臺輸入響應(yīng)進(jìn)行時域分析時,可以較為直觀和形象地反映系統(tǒng)的動態(tài)特性,如位置、速度、加速度和誤差等。根據(jù)伺服轉(zhuǎn)臺測試軟件產(chǎn)生的負(fù)載運(yùn)動特征參數(shù)曲線,調(diào)試人員可以調(diào)整參數(shù),修改控制模型,這也是傳統(tǒng)的調(diào)試方法。這種方法對調(diào)試人員要求較高,需要較多經(jīng)驗積累,否則,就很難達(dá)到理想的性能指標(biāo)。
頻域分析法作為時域分析法的補(bǔ)充,已在振動分析、自動控制、機(jī)械故障診斷、圖像分析等領(lǐng)域得到廣泛地應(yīng)用。筆者主要運(yùn)用C#編程環(huán)境開發(fā)了一套適用于伺服轉(zhuǎn)臺的調(diào)試軟件,可以深刻地剖析信號的諧波組成和系統(tǒng)帶寬等指標(biāo)。其中,快速傅里葉變換作為該調(diào)試軟件的核心算法,其正確性已在MATLAB中得到驗證。根據(jù)調(diào)試軟件可以估計伺服轉(zhuǎn)臺系統(tǒng)參數(shù)模型的頻率特性,進(jìn)而求得系統(tǒng)的傳遞函數(shù),這為伺服轉(zhuǎn)臺的PID參數(shù)調(diào)節(jié)確定了范圍和方向,進(jìn)而提高了調(diào)試效率。
1.1 信號采樣
由圖1可知,上位機(jī)的命令和位置信息經(jīng)過伺服控制箱進(jìn)行位置調(diào)節(jié),并經(jīng)數(shù)模轉(zhuǎn)換(D/A)模塊,將位置控制信號輸入到伺服驅(qū)動器,最終在力矩電機(jī)的作用下驅(qū)動轉(zhuǎn)臺方位或俯仰調(diào)轉(zhuǎn)至預(yù)定位置,絕對值式編碼器將實時采集到的位置信息反饋到伺服控制箱。
圖1 伺服轉(zhuǎn)臺的控制結(jié)構(gòu)框圖
為了對伺服轉(zhuǎn)臺系統(tǒng)進(jìn)行頻域分析,首先上位機(jī)對給定信息和位置反饋信息按照一定的頻率進(jìn)行采樣。在采樣過程中既要避免由于采樣頻率過低造成頻域分析過程中的頻率混疊現(xiàn)象[1],也要盡量避免由于采樣頻率過高,造成計算機(jī)未能進(jìn)行實時數(shù)據(jù)處理的問題。
采用傅里葉變換算法對伺服轉(zhuǎn)臺系統(tǒng)調(diào)試軟件開發(fā)之前,需要按照一定的頻率對系統(tǒng)輸入和反饋進(jìn)行采樣。為保證采樣的離散時序能夠反映出原始信號的波形特征,信號采樣應(yīng)滿足仙農(nóng)采樣定理[2]要求:①采樣頻率fs和模擬信號中最高頻率fmax之間的關(guān)系應(yīng)滿足fs>2fmax;②對信號至少進(jìn)行一個周期的采樣,否則無法得到原始信號的波形特征。
1.2 離散傅里葉變換原理
上位機(jī)按照一定的采樣頻率對位置信息進(jìn)行采樣 ,可以得到伺服轉(zhuǎn)臺旋轉(zhuǎn)軸的位置信息的數(shù)據(jù)序列:{x(n) ,n=0:N-1}。
該位置序列的離散傅里葉變換(DFT)為:
(1)
1.3 快速傅里葉變換
快速傅里葉變換作為本調(diào)試軟件頻域分析模塊的核心算法,該算法采用按時間抽取的基2快速傅里葉變換。首先采樣點(diǎn)數(shù)應(yīng)滿足2的M次冪即N=2M(M=0,1,2,…) ,如果不滿足條件,需對其序列進(jìn)行補(bǔ)零延拓操作。
為了找出快速傅里葉變換的規(guī)律,引入一個典型的8點(diǎn)按時間抽取基2快速傅里葉變換的運(yùn)算流程圖(如圖2)進(jìn)行分析梳理。通過圖2中信號流找到快速傅里葉變換的規(guī)律是編制快速傅里葉變換算法的首要任務(wù)。
圖2 一個8點(diǎn)FFT時間抽取算法信號流圖
1.3.1 數(shù)據(jù)倒序排列
為確保輸出序列X(k) 為自然順序排列,在進(jìn)行快速傅里葉變換之前,采用雷德算法對輸入序列x(k)進(jìn)行位倒序操作[3]。
1.3.2 蝶形運(yùn)算
(2)
式中:p、q分別為m級參與該蝶形運(yùn)算單元中上、下節(jié)點(diǎn)的序號。
綜上所述,首先對位置輸入和反饋信息進(jìn)行采樣,讀取采樣數(shù)據(jù),確定輸入數(shù)據(jù)點(diǎn)數(shù)是否滿足2的冪次方,如若不滿足,需要進(jìn)行補(bǔ)零延拓操作;然后對輸入的數(shù)據(jù)序列運(yùn)用雷德算法進(jìn)行位倒序操作,以滿足輸出序列為自然順序排列;最后進(jìn)行蝶形運(yùn)算,確定所需的運(yùn)算級數(shù)M,同一個蝶形運(yùn)算的上、下節(jié)點(diǎn)的距離L(或者B),該級m的蝶形因子分布D以及相同蝶形因子所對應(yīng)蝶形運(yùn)算單元之間的步長S、起止節(jié)點(diǎn)標(biāo)號k,最后對兩點(diǎn)的短序列進(jìn)行離散傅里葉變換,并采用“同址運(yùn)算”將蝶形單元輸出仍然存放在輸入數(shù)組中,以節(jié)約大量內(nèi)存,提高計算速度。最終經(jīng)過適當(dāng)組合,可以計算得到N點(diǎn)序列的快速傅里葉變換??焖俑道锶~變換的流程如圖3所示。
圖3 快速傅里葉變換的流程圖
假設(shè)位置輸入或反饋信息的峰值為A,那么經(jīng)過快速傅里葉變換后的結(jié)果Xk的每個點(diǎn)(除了第一個點(diǎn)直流分量外)的模值就是A的N/2 倍;而第一個點(diǎn)就是直流分量,它的模值就是直流分量的N倍。每一點(diǎn)的相位就是該頻率下的信號的相位(第一點(diǎn)所對應(yīng)的直流信號的相位為0 rad);某點(diǎn)n所對應(yīng)的頻率為fn=(n-1)fs/N,fn的頻率分辨率為fs/N,為提高頻率分辨率,在采樣頻率一定的情況下,可以適當(dāng)增加采樣點(diǎn)數(shù),也即增加采樣長度[4]。
(3)
(4)
(5)
式(3)~式(5)分別表示某點(diǎn)諧波分量的幅值、相位角的主值和實際信號表達(dá)式,Xn-1.real與Xn-1.image分別表示經(jīng)過快速傅里葉變換后的第n個復(fù)數(shù)值的實部和虛部。通過分析,可以獲取復(fù)雜信號的諧波組成(頻率、幅值、相位)。對伺服轉(zhuǎn)臺系統(tǒng)輸入某一頻率的諧波信號,通過伺服轉(zhuǎn)臺調(diào)試軟件的頻域分析模塊可以得到系統(tǒng)的響應(yīng),進(jìn)而可以判斷伺服轉(zhuǎn)臺系統(tǒng)存在何種頻率的噪聲。若該噪聲對系統(tǒng)響應(yīng)影響比較大,可以采用濾波技術(shù)將噪聲對伺服轉(zhuǎn)臺系統(tǒng)的影響減至系統(tǒng)允許的范圍內(nèi)[5]。
根據(jù)快速傅里葉變換的流程圖(圖3),運(yùn)用C#編程環(huán)境進(jìn)行伺服轉(zhuǎn)臺系統(tǒng)調(diào)試軟件的開發(fā)。由于C#沒有復(fù)數(shù)類型,首先定義一個復(fù)數(shù)的結(jié)構(gòu)體和復(fù)數(shù)的四則運(yùn)算、求模數(shù)以及輻角的方法(參照式(3)和式(4));接下來對讀取數(shù)據(jù)序列采用雷德算法進(jìn)行位倒序操作,最后進(jìn)行快速傅里葉變換。雷德算法和快速傅里葉變換核心代碼分別如下:
///
/// 采用雷德算法進(jìn)行位倒序操作
///
/// 需要位倒序的復(fù)數(shù)
/// FFT的離散點(diǎn)數(shù)
public static void Rader_BitReversed(Complex[]Cin, intFFT_N)
{
intnv2,nm1,i,k,j= 0;
nv2 =FFT_N/ 2;
nm1 =FFT_N- 1;
Complext= new Complex(); //復(fù)數(shù)變量
for (i= 0;i { if (i { t=Cin[j]; Cin[j] =Cin[i]; Cin[i] =t; } k=nv2; //求j的下一個倒位序 while (k<=j&&k> 0) //如果k<=j,表示j的最高位為1(采用循環(huán)進(jìn)行運(yùn)算) { j=j-k; //把最高位變成0 k=k/2; //k/2,比較次高位,依次類推,逐個比較,直到某個位為0 } j=j+k; } } /// /// 進(jìn)行快速傅立葉變換的核心算法 /// /// 輸入序列 變換核 /// 定義傅里葉變換的點(diǎn)數(shù) /// public static Complex[] Function_FFT(Complex[]C,intFFT_N) { doublePI= Math.PI; //π值常量 intk,r,N,m,M; intS,L,q; //FFT運(yùn)算核,使用蝶形運(yùn)算完成FFT運(yùn)算 N=FFT_N; Complexu= new Complex(); //操作數(shù)1 Complexw= new Complex(); //操作數(shù)2 Complext= new Complex(); //復(fù)數(shù)變量 ComplexCin= new Complex(); //復(fù)數(shù)變量 Cin= Rader_BitReversed(Complex[]C,N)//調(diào)用雷德算法實現(xiàn)位倒序 { M= Convert.ToInt32(Math.Log(N) / Math.Log(2)); //計算M的值,即計算蝶形運(yùn)算級數(shù)M=log(2)N for (m= 0;m { //m表示第m級蝶形,l為蝶形級總數(shù)l=log(2)N L= Convert.ToInt32(Math.Pow(2,m)); //同一個蝶中參加運(yùn)算的兩點(diǎn)之間的距離 S=2×L; //同一個蝶形因子,對應(yīng)的蝶形運(yùn)算組間步長 u.real= 1.0; //u為蝶形結(jié)運(yùn)算系數(shù),初始值為1 u.image= 0; w.real= Math.Cos(PI/L); //w為系數(shù)商,即當(dāng)前系數(shù)與前一個系數(shù)的商 w.image= -Math.Sin(PI/L); for (r= 0;r { for (k=r;k< =N-2;k=k+S) //控制同一蝶形結(jié)運(yùn)算,即計算系數(shù)相同蝶形結(jié) { q=k+L; t= Complex_multiplicate(Cin[q],u); //蝶形運(yùn)算(求兩個復(fù)數(shù)的乘積) Cin[q].real=Cin[k].real-t.real; //蝶形結(jié)的下半部分 Cin[q].image=Cin[k].image-t.image; Cin[k].real=Cin[k].real+t.real; //蝶形結(jié)的上半部分 Cin[k].image=Cin[k].image+t.image; } u= Complex_multiplicate(u, w);//改變系數(shù),進(jìn)行下一個蝶形運(yùn)算(求兩個復(fù)數(shù)的乘積) } } } returnCin; //返回經(jīng)過快速傅里葉變換后的序列 } 4.1 系統(tǒng)辨識及應(yīng)用 在對伺服轉(zhuǎn)臺系統(tǒng)進(jìn)行系統(tǒng)辨識中,分別向方位和俯仰方向輸入預(yù)定的線性掃頻信號,線性掃頻信號[6]為: (6) 式中:φ0為初始相位,系統(tǒng)默認(rèn)為0 rad;f0為起始頻率,系統(tǒng)默認(rèn)為0 Hz;tg為目標(biāo)時間;fi(tg)為目標(biāo)時間所對應(yīng)的目標(biāo)頻率。 伺服轉(zhuǎn)臺系統(tǒng)對輸入的頻率響應(yīng)反映了系統(tǒng)本身的固有特性,取決于系統(tǒng)的結(jié)構(gòu)與參數(shù)特性。伺服轉(zhuǎn)臺系統(tǒng)之頻率響應(yīng)特性如圖4所示。 圖4 伺服轉(zhuǎn)臺系統(tǒng)之頻率響應(yīng)特性圖 伺服轉(zhuǎn)臺系統(tǒng)的頻域響應(yīng)特性圖是伺服轉(zhuǎn)臺系統(tǒng)進(jìn)行系統(tǒng)辨識的基礎(chǔ)[7-9]。首先依據(jù)方位和俯仰從低頻開始分別至轉(zhuǎn)角頻率ωa1=1.8S-1與ωb1=2.3S-1,就是一條20lgKa=-0.95 dB與20lgKb=-0.95 dB水平直線作為漸近線,說明伺服轉(zhuǎn)臺系統(tǒng)的方位和俯仰均為0型系統(tǒng),并且方位和俯仰的增益Ka=Kb≈0.9。 其次,方位在轉(zhuǎn)角頻率ωa1=1.8S-1和ωa2=6.4S-1處,分別以-20 dB/dec與-40 dB/dec的斜率下降,說明系統(tǒng)的方位是兩個慣性環(huán)節(jié)的串聯(lián),這兩個慣性環(huán)節(jié)的時間常數(shù)分別為Ta1=1/ωa1≈0.56S和Ta2=1/ωa2≈0.16S。因此,根據(jù)方位各環(huán)節(jié)的對數(shù)幅頻特性可初步估計出的頻率特性為: 同理,俯仰在轉(zhuǎn)角頻率ωb1=2.3S-1和ωa2=7.0S-1處,分別以-20 dB/dec與-40 dB/dec的斜率下降,該方向也是兩個慣性環(huán)節(jié)串聯(lián),相應(yīng)的時間常數(shù)為Tb1=1/ωb1≈0.43S和Tb2=1/ωb2≈0.14S。伺服轉(zhuǎn)臺俯仰方向初步估計出的頻率特性為: 因此,伺服轉(zhuǎn)臺系統(tǒng)方位經(jīng)過修正后的最小相位系統(tǒng)的傳遞函數(shù)為: 同理,可以得到伺服轉(zhuǎn)臺系統(tǒng)俯仰經(jīng)過修正后的最小相位系統(tǒng)的傳遞函數(shù)為: 依據(jù)伺服轉(zhuǎn)臺系統(tǒng)方位與俯仰的參數(shù)模型及其特征參數(shù),如時間常數(shù)T,時間延遲ξ和放大系數(shù)(即增益)K,則按照經(jīng)驗公式計算出伺服驅(qū)動器的參數(shù),該方法確定了伺服轉(zhuǎn)臺系統(tǒng)的PID參數(shù)范圍[10],進(jìn)而大大提高系統(tǒng)的調(diào)試效率。 4.2 帶寬分析 根據(jù)伺服轉(zhuǎn)臺系統(tǒng)的性能特點(diǎn),在進(jìn)行帶寬測試過程中使用更嚴(yán)格的“雙十”標(biāo)準(zhǔn)進(jìn)行評判[11],其中“雙十”指的是頻率響應(yīng)的幅值衰減10%(即-0.92 dB)或者相位滯后10度時的頻率,取二者較小的那個帶寬。 由圖4可知,伺服轉(zhuǎn)臺系統(tǒng)方位的帶寬為0.9 Hz,俯仰的帶寬為1.1 Hz。帶寬指標(biāo)影響伺服轉(zhuǎn)臺系統(tǒng)對輸入響應(yīng)的快慢以及響應(yīng)的精度。但是帶寬過大,則系統(tǒng)對外界干擾的抑制能力減弱。如果系統(tǒng)的帶寬在合適的范圍內(nèi)進(jìn)一步提高,除了選用較大力矩的伺服電機(jī)和驅(qū)動器外,同時也要優(yōu)化伺服轉(zhuǎn)臺的機(jī)械結(jié)構(gòu),方位和俯仰的轉(zhuǎn)動慣量盡可能小。 伺服轉(zhuǎn)臺系統(tǒng)調(diào)試軟件中的頻域分析法對數(shù)字信號進(jìn)行分析,可以獲得系統(tǒng)的帶寬,進(jìn)而計算出伺服轉(zhuǎn)臺系統(tǒng)所能夠響應(yīng)的最大角加速度。系統(tǒng)辨識則深刻剖析出系統(tǒng)中所具有的典型環(huán)節(jié)類型以及系統(tǒng)中的轉(zhuǎn)角頻率和延遲時間等參數(shù),這對于系統(tǒng)的PID參數(shù)確定了調(diào)整范圍和方向。最終,調(diào)試人員的調(diào)試效率得到提高,并且調(diào)整的參數(shù)滿足系統(tǒng)性能要求。 [1] 王伯雄.測試技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2006. [2] 胡廣書.數(shù)字信號處理(第二版)[M].北京:清華大學(xué)出版社,2003. [3] 張登奇,李宏民,李丹.按時間抽取的基2FFT算法分析及MATLAB實現(xiàn)[J].電子技術(shù),2011(2):75-77. [4] 陳杰.MATLAB寶典[M].北京:電子工業(yè)出版社,2010. [5] 錢富才,黃姣茹,秦新強(qiáng).基于魯棒優(yōu)化的系統(tǒng)辨識算法研究[J].自動化學(xué)報,2014,40(5):988-993. [6] 王晗,張卯瑞,李俊夫,等.Chirp信號激勵的電液伺服系統(tǒng)辨識[J].機(jī)床與液壓,2016,44(13):128-131. [7] 熊雋.雷達(dá)伺服轉(zhuǎn)臺方位傳動系統(tǒng)設(shè)計[J].機(jī)械傳動,2013,37(1):61-64. [8] 丁鋒.系統(tǒng)辨識(3):辨識精度與辨識基本問題[J].南京信息工程大學(xué)學(xué)報(自然科學(xué)版),2011,3(3):193-226. [9] 楊叔子,楊克沖.機(jī)械工程控制基礎(chǔ)[M].武漢:華中科技大學(xué)出版社,2005. [10] 陳大鵬,韓平.伺服轉(zhuǎn)臺智能PID復(fù)合控制算法研究[J].儀表技術(shù),2014(12):12-14. [11] 曾鳴,張東純,蘇寶庫.伺服轉(zhuǎn)臺高精度控制系統(tǒng)帶寬設(shè)計的探討[J].中國慣性技術(shù)學(xué)報,2001(2):56-60.4 調(diào)試軟件在系統(tǒng)辨識與帶寬分析中的應(yīng)用
5 結(jié)論
——由倒序相加想到倒序相乘