1 引言
運動控制系統(tǒng)在國民經(jīng)濟(jì)和國防等領(lǐng)域中所起的作用以及應(yīng)用的范圍越來越大,運動控制技術(shù)正在不斷的深入到各個領(lǐng)域并迅速發(fā)展,其應(yīng)用范圍已經(jīng)涵蓋了幾乎所有的工業(yè)領(lǐng)域。例如在生產(chǎn)過程中對機(jī)器人手的位置控制;造紙廠中紙張滾卷的恒張力控制;導(dǎo)彈制導(dǎo)系統(tǒng)控制導(dǎo)彈準(zhǔn)確擊中目標(biāo)等。
為了保證及時發(fā)現(xiàn)運動控制系統(tǒng)中可能發(fā)生的各種故障,應(yīng)在系統(tǒng)中加入故障檢測子系統(tǒng)。電機(jī)驅(qū)動運動控制系統(tǒng)中的大部分機(jī)械故障和電氣故障都會引起電機(jī)電流的異常變化,非線性能量算法能夠從電流信號中提取出系統(tǒng)故障信息,從而及時檢測出系統(tǒng)中可能產(chǎn)生的各種故障。
本文首先以三星公司的S3C44B0X微處理器為核心芯片,設(shè)計電流信號采集電路,然后介紹了非線性能量故障診斷算法。最后以X-Y運動平臺為實驗對象,驗證該算法的有效性。
2 信號采集電路設(shè)計
S3C44B0X具有8通道的10位模數(shù)轉(zhuǎn)換器(ADC),它是一個逐次逼近型的ADC,內(nèi)部結(jié)構(gòu)中包括模擬輸入多路復(fù)用器,自動調(diào)零比較器,時鐘產(chǎn)生器,10位逐次逼近寄存器和輸出寄存器。該ADC還提供可編程選擇的睡眠模式,以節(jié)省功耗。使用S3C44B0X的ADC時應(yīng)當(dāng)注意,在ADC退出休眠模式后,為使ADC參考電壓穩(wěn)定,在第一次A/D轉(zhuǎn)換之前需等待10ms。通道切換時,應(yīng)該保證至少15μs的時間間隔。
S3C44B0X的ADC輸入電壓范圍為:0“2.5V,而被測電機(jī)電流信號的變化范圍是:-5V”+5V。因此首先應(yīng)將雙極性的輸入信號轉(zhuǎn)化到0“2.5V范圍內(nèi)。如果采樣頻率高于100Hz,還應(yīng)在信號輸入通道加上采樣保持器。
圖 1: 模擬信號調(diào)理電路
圖1中利用μA741通用型運算放大器構(gòu)成升壓電路,選用LF398作為采樣保持器。可知圖中各節(jié)點電位的關(guān)系可用(1)式表達(dá),從而將-5V”+5V變化范圍的被測信號轉(zhuǎn)化到0“2.5V。
3 故障檢測算法
為了及時檢測出系統(tǒng)中產(chǎn)生的故障,需要對電機(jī)電流信號進(jìn)行實時處理,從中提取出故障信息。文獻(xiàn)[3,4]給出了一種非線性能量算法NEO (Nonlinear Energy Operation),可以用來檢測出信號的異常變化。對于給定的信號序列x(n),非線性能量算法定義如下:
文獻(xiàn)在NEO中引入時域窗口的概念,在此基礎(chǔ)上提出了光滑非線性能量算法SNEO(SmoothedNonlinear Energy Operation)。該算法可用下式描述:
其中 ?為卷積運算符,ω為時間窗口(time window)。式中的ω(k)可以按照下式選取:
為了達(dá)到理想的檢測效果,也可以采用多步SNEO:
其中:
通過選擇適當(dāng)?shù)臅r間延遲m,可以有效減少采樣噪聲的影響。
4 信號采集和分析
為了快速準(zhǔn)確的檢測出系統(tǒng)發(fā)生的故障,需要設(shè)置適當(dāng)?shù)?a href="http://www.1cnz.cn/tags/濾波器/" target="_blank">濾波器參數(shù)(比如多步SNEO算法中的b和m),這就要首先對被檢測信號進(jìn)行分析處理。ARM芯片雖然能夠?qū)崟r處理大量的數(shù)據(jù),但是缺乏上位機(jī)(如工控機(jī))專用軟件具有的強(qiáng)大數(shù)據(jù)分析處理功能。這里選用科學(xué)研究中經(jīng)常用到的MATLAB軟件對ARM系統(tǒng)采集到的數(shù)據(jù)進(jìn)行離線分析處理,得到所需的濾波器參數(shù)。
為了方便將ARM采集到的數(shù)據(jù)導(dǎo)入到MATLAB中,首先編寫了MATLAB和ARM系統(tǒng)的串行通信程序。要確定MATLAB環(huán)境已安裝了儀器控制工具箱(Instrument Control Toolbox)。在MATLAB中,可以通過創(chuàng)建串口對象,來實現(xiàn)MATLAB與串口設(shè)備的通信。
創(chuàng)建串口對象可使用如下的語句:
bj = serial(‘port’, ‘PropertyName’, Property Value ,。..)
其中obj為創(chuàng)建的串口對象;port為串口對象所對應(yīng)的串行口,如COM1;PropertyName和PropertyValue分別為串口屬性名稱和相應(yīng)的取值,兩者需成對出現(xiàn)。創(chuàng)建串口對象之后,在進(jìn)行串口的讀寫操作之前,還需調(diào)fopen函數(shù)來建立串口對象同串口設(shè)備的實際連接。
可以使用fprintf和fwrite函數(shù)向串口設(shè)備發(fā)送數(shù)據(jù),其中fprintf用于向串口設(shè)備發(fā)送文本信息,fwrite用于向設(shè)備發(fā)送二進(jìn)制數(shù)據(jù)。MATLAB提供了很多函數(shù),利用這些函數(shù)可以方便靈活的讀取串口設(shè)備發(fā)送的信息;其中最常用的兩個讀串口函數(shù)為fread和fscanf,fread用于從串口設(shè)備讀取二進(jìn)制信息,fscanf用于讀取設(shè)備發(fā)送的文本信息。
如果不再使用串口,應(yīng)將串口對象同設(shè)備斷開,然后將其從內(nèi)存和MATLAB工作空間中刪除。可以使用fclose,delete,chear來完成這一系列操作。
下面給出的MATLAB腳本文件用于接收ARM系統(tǒng)采集到的5000個雙字節(jié)數(shù)據(jù),并將這些數(shù)據(jù)存儲到100×50的矩陣data中。這樣就可以方便的利用MATLAB強(qiáng)大的數(shù)據(jù)分析處理功能,從得到的數(shù)據(jù)中總結(jié)出有用的信息。
s = serial(‘COM1’,‘BaudRate’,115200,‘Terminator’, {‘’,‘’});
data = zeros(100,50);
fopen(s);
for i = 1:50
fwrite(s,0x1,‘char’);
tmp = fread(s,100,‘int16’);
data(:,i) = tmp;
for j = 1:1000
j=j;
end
end
fclose(s);delete(s);clear s;
ARM系統(tǒng)的串口發(fā)送程序如下。在ARM的串口接收中斷服務(wù)程序中將URXD0Flag賦值為1,這樣每當(dāng)ARM接受到MATLAB發(fā)送過來的SOH (Start of Header)字符,即0x1,便會向MATLAB發(fā)送100個雙字節(jié)數(shù)據(jù)。sl和sh分別存放數(shù)據(jù)的底八位和高八位。
while(1) {
if(URXD0Flag) {
for(j = 1; j <= 100;j++) {
sl = signal[ i] & 0xff;
sh = (signal[i++] & 0xff00)>>8;
Uart_SendByte(sl);
Uart_SendByte(sh);
}
URXD0Flag = 0;
}
if(i >= 5000)
break;
}
5 算法驗證
這里以X-Y運動平臺為實驗對象,設(shè)計了系統(tǒng)故障實時檢測實驗,驗證故障檢測算法的有效性。首先通過實驗得到X-Y平臺正常工作時電機(jī)的電流信號TN,然后在平臺運動過程中給平臺施加一個額外的阻力(模擬故障發(fā)生的情況),得到電機(jī)輸出電流信號為TF。通過對這兩種情況下的電流偏差信號TE(TE=TN-TF)進(jìn)行分析,可以從中提取出故障信號。
S3C44B0X通過ADC采集到的TN,TF信號,以及TE隨時間的變化曲線分別如圖2和圖3所示。
圖 2: TN,TF 變化曲線圖 3: TE 隨時間變化曲線
從圖3可以看出,TE信號中存在較多的干擾信息,為了準(zhǔn)確無誤的檢測出其中的故障信號,就應(yīng)采用某種濾波算法對TE進(jìn)行處理,從而將故障信號提取出來。圖4和圖5分別是采用NEO和多步SNEO(m=50,b=50)兩種方法對TE進(jìn)行處理,得到的信號曲線。
圖 4: 利用NEO 對TE 進(jìn)行處理的結(jié)果曲線圖 5: 利用多步SNEO 對TE 進(jìn)行處理的結(jié)果曲線
比較圖4和圖5可以看出,多步SNEO能夠更好的消除干擾噪聲的影響,將故障信息成功地提取出來。但是利用SNEO會引入一定的延時,從而造成故障被檢測出時間的滯后。從式(5)和式(6)可知,當(dāng)m=50,b=50,采樣頻率為500Hz時,滯后時間為:
6 結(jié)論
本文利用非線性能量算法對電機(jī)電流偏差信號進(jìn)行分析,能夠及時發(fā)現(xiàn)運動控制系統(tǒng)中發(fā)生的各種扭矩相關(guān)故障,從而提高系統(tǒng)故障檢測環(huán)節(jié)的準(zhǔn)確性和及時性。可以在此基礎(chǔ)上設(shè)計系統(tǒng)容錯環(huán)節(jié),使系統(tǒng)的安全性和可靠性得到更好的保證。
責(zé)任編輯:gt
-
芯片
+關(guān)注
關(guān)注
455文章
50714瀏覽量
423154 -
微處理器
+關(guān)注
關(guān)注
11文章
2258瀏覽量
82405 -
模數(shù)轉(zhuǎn)換器
+關(guān)注
關(guān)注
26文章
3200瀏覽量
126810
發(fā)布評論請先 登錄
相關(guān)推薦
評論