新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于扭矩信息的運(yùn)動(dòng)系統(tǒng)故障檢測(cè)裝置

基于扭矩信息的運(yùn)動(dòng)系統(tǒng)故障檢測(cè)裝置

作者: 時(shí)間:2010-11-15 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://m.butianyuan.cn/article/195227.htm

  其中 #8855為卷積運(yùn)算符,ω為時(shí)間窗口(time window)。式中的ω(k)可以按照下式選?。?/p>


  為了達(dá)到理想的檢測(cè)效果,也可以采用多步SNEO:



  其中:



  通過(guò)選擇適當(dāng)?shù)臅r(shí)間延遲m,可以有效減少采樣噪聲的影響。

  4 信號(hào)采集和分析

  為了快速準(zhǔn)確的檢測(cè)出系統(tǒng)發(fā)生的故障,需要設(shè)置適當(dāng)?shù)臑V波器參數(shù)(比如多步SNEO算法中的b和m),這就要首先對(duì)被檢測(cè)信號(hào)進(jìn)行分析處理。ARM芯片雖然能夠?qū)崟r(shí)處理大量的數(shù)據(jù),但是缺乏上位機(jī)(如工控機(jī))專用軟件具有的強(qiáng)大數(shù)據(jù)分析處理功能。這里選用科學(xué)研究中經(jīng)常用到的MATLAB軟件對(duì)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中,可以通過(guò)創(chuàng)建串口對(duì)象,來(lái)實(shí)現(xiàn)MATLAB與串口設(shè)備的通信。

  創(chuàng)建串口對(duì)象可使用如下的語(yǔ)句:

  bj = serial('port', 'PropertyName', Property Value ,...)

  其中obj為創(chuàng)建的串口對(duì)象;port為串口對(duì)象所對(duì)應(yīng)的串行口,如COM1;PropertyName和PropertyValue分別為串口屬性名稱和相應(yīng)的取值,兩者需成對(duì)出現(xiàn)。創(chuàng)建串口對(duì)象之后,在進(jìn)行串口的讀寫操作之前,還需調(diào)fopen函數(shù)來(lái)建立串口對(duì)象同串口設(shè)備的實(shí)際連接。

  可以使用fprintf和fwrite函數(shù)向串口設(shè)備發(fā)送數(shù)據(jù),其中fprintf用于向串口設(shè)備發(fā)送文本信息,fwrite用于向設(shè)備發(fā)送二進(jìn)制數(shù)據(jù)。MATLAB提供了很多函數(shù),利用這些函數(shù)可以方便靈活的讀取串口設(shè)備發(fā)送的信息;其中最常用的兩個(gè)讀串口函數(shù)為fread和fscanf,fread用于從串口設(shè)備讀取二進(jìn)制信息,fscanf用于讀取設(shè)備發(fā)送的文本信息。

  如果不再使用串口,應(yīng)將串口對(duì)象同設(shè)備斷開(kāi),然后將其從內(nèi)存和MATLAB工作空間中刪除??梢允褂胒close,delete,chear來(lái)完成這一系列操作。

  下面給出的MATLAB腳本文件用于接收ARM系統(tǒng)采集到的5000個(gè)雙字節(jié)數(shù)據(jù),并將這些數(shù)據(jù)存儲(chǔ)到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ā)送過(guò)來(lái)的SOH (Start of Header)字符,即0x1,便會(huì)向MATLAB發(fā)送100個(gè)雙字節(jié)數(shù)據(jù)。sl和sh分別存放數(shù)據(jù)的底八位和高八位。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉