国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Qt的農(nóng)用電機(jī)速度數(shù)據(jù)采集與處理系統(tǒng)

2015-12-26 01:08:34陳翔,張果,王劍平
安徽農(nóng)業(yè)科學(xué) 2015年22期
關(guān)鍵詞:數(shù)據(jù)采集速度

基于Qt的農(nóng)用電機(jī)速度數(shù)據(jù)采集與處理系統(tǒng)

陳 翔,張 果*,王劍平,楊曉洪,陳偉松

(昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院,云南昆明 650500)

摘要采用可跨平臺(tái)圖形界面開發(fā)工具Qt,設(shè)計(jì)了農(nóng)業(yè)用電機(jī)速度采集與處理系統(tǒng)。該軟件既可以作為一款虛擬儀器在PC機(jī)上運(yùn)行,同時(shí)也可移植到ARM處理器的Linux平臺(tái)上作為一款便攜式儀器。系統(tǒng)通過采集電機(jī)控制板串口傳來的實(shí)時(shí)電機(jī)速度數(shù)據(jù),自動(dòng)描繪電機(jī)速度曲線,方便直觀觀察電機(jī)速度啟動(dòng)和運(yùn)行時(shí)的情況,同時(shí)可自動(dòng)分析電機(jī)達(dá)到給定速度值的響應(yīng)時(shí)間,最大速度,超調(diào)情況,有助于在農(nóng)業(yè)上進(jìn)行電機(jī)性能的分析。

關(guān)鍵詞數(shù)據(jù)采集;農(nóng)用電機(jī); 速度; Qt

中圖分類號(hào)S126;TH89

基金項(xiàng)目國(guó)家自然科學(xué)基金(61364008);云南省自然科學(xué)基金(2010CD044)。

作者簡(jiǎn)介陳翔(1989-),男,碩士研究生,研究方向:嵌入式系統(tǒng)。*

收稿日期2015-06-02

Data Acquisition and Processing System of Agricultural Motor Speed Based on Qt

CHEN Xiang, ZHANG Guo*,WANG Jian-ping et al (College of Information Engineering and Automation, Kunming University of Science and Technology, Kunming, Yunnan 650500)

AbstractThe system of motor speed acquisition and processing is designed, which adopt the cross-platform graphical interface development tools Qt. The software can be either as a virtual instrument in PC operation, or transplanted to the LINUX platform based on the ARM processer as a portable instrument. The system draw motor speed curve automatically by collecting the real-time speed data from the serial port of motor control board. By this way, it is convenient and intuitive to observe the situation of motor speed when the motor up or run. At the same time, the system can automatically analyze the response time, the maximum speed, overshoot amount. It can analyze the performance of the motors in agriculture.

Key words Data acquisition; Agricultural motor; Speed; Qt

隨著現(xiàn)代農(nóng)業(yè)自動(dòng)化的迅速發(fā)展,電機(jī)在農(nóng)業(yè)方面的應(yīng)用越來越廣泛。電機(jī)運(yùn)行時(shí)的速度控制成為電機(jī)整體控制的一大關(guān)鍵,而如何有效觀察電機(jī)速度并分析又成了一大關(guān)鍵。單靠直接獲取到的一堆電機(jī)速度數(shù)據(jù)進(jìn)行逐一分析顯得不直觀且費(fèi)時(shí)間。因此,為了直觀觀察電機(jī)速度運(yùn)行情況,有必要采集電機(jī)速度數(shù)據(jù)并繪制成速度曲線,同時(shí)通過軟件對(duì)曲線進(jìn)行自動(dòng)分析。

該文采用了擴(kuò)展性,移植性強(qiáng)并且可跨平臺(tái)的QT開發(fā)工具[1]和串口、Qwt擴(kuò)展庫,設(shè)計(jì)了一款可進(jìn)行電機(jī)速度采集與處理的跨平臺(tái)軟件。該軟件儀表界面X軸單位秒,Y軸單位為轉(zhuǎn)每分,通過串口實(shí)時(shí)獲取電機(jī)控制器實(shí)時(shí)傳送過來的電機(jī)數(shù)據(jù)并描繪成速度曲線圖,在需要曲線分析的情況下可點(diǎn)擊曲線分析按鍵進(jìn)行分析給定速度值的響應(yīng)時(shí)間,最大速度,超調(diào)情況。該軟件可在PC機(jī)運(yùn)行,相當(dāng)一款虛擬儀器。同時(shí)移植到基于CORTEX-A9的Linux平臺(tái)上,成為一臺(tái)應(yīng)用于電機(jī)速度曲線繪制的便攜式儀器。

1 系統(tǒng)硬件

采用Qt開發(fā)的電機(jī)速度數(shù)據(jù)采集與處理系統(tǒng)作為一款虛擬儀器的同時(shí),也可作為一款便攜式電機(jī)速度采集與處理儀器[2]。該便攜式儀器主要采用飛思卡爾公司生產(chǎn)的。CORTEX-A9處理器和7寸電容屏。使用時(shí),通過CORTEX-A9處理器的串口連接到電機(jī)控制板上的串口實(shí)時(shí)獲取電機(jī)速度數(shù)據(jù)并自動(dòng)描繪曲線顯示在7寸電容屏上。

采用Qt開發(fā)的程序很容易移植到CORTEX-A9上的Linux平臺(tái)。由于Qt的跨平臺(tái)性,在開發(fā)程序階段,程序可在x86平臺(tái)上的PC機(jī)完成開發(fā)同時(shí)也可作為上位機(jī)在PC機(jī)上運(yùn)行并進(jìn)行調(diào)試,只要把電機(jī)控制板的串口連接到電腦的串口,打開程序的串口,便可實(shí)時(shí)接收電機(jī)速度數(shù)據(jù)并同時(shí)繪制電機(jī)速度曲線圖,通過觀察曲線圖便可驗(yàn)證程序的正確與否,加快程序的開發(fā)速度。在程序開發(fā)結(jié)束后,可采用Qt的ARM版本 qmake編譯工具,便可編譯成可移植到CORTEX-A9平臺(tái)上的軟件,完成便攜式儀器的制作。

2 系統(tǒng)軟件設(shè)計(jì)

軟件設(shè)計(jì)主要分為數(shù)據(jù)采集通信模塊,繪圖模塊和曲線分析模塊。采用Qt圖形用戶界面編程工具Qt Designer進(jìn)行軟件界面設(shè)計(jì)和采用信號(hào)-槽(signals and slots)機(jī)制進(jìn)行程序設(shè)計(jì)。由于Qt庫具有良好的擴(kuò)展功能,在沒有串口庫和儀器儀表界面庫的情況下,可采用第3方的擴(kuò)展庫或自己編寫的庫進(jìn)行擴(kuò)展。這里主要采用第3方的qextserialport類串口庫和Qwt圖形庫進(jìn)行擴(kuò)展。Qwt庫提供了儀表盤,圓盤,畫布,坐標(biāo)軸,指南針等基礎(chǔ)GUI組件,采用這些GUI組件可以做出優(yōu)秀的儀器儀表軟件界面。軟件設(shè)計(jì)結(jié)構(gòu)如圖1。

圖1  軟件設(shè)計(jì)結(jié)構(gòu)

2.1數(shù)據(jù)采集通信模塊

2.1.1 串口通信模塊。qextserialport類是基于Qt程序串口類[3],在windows系統(tǒng)和linux系統(tǒng)都適用。在軟件設(shè)計(jì)中串口參數(shù)設(shè)置中,主要用到qextserialport類中設(shè)置波特率setBaudRat(BaudRateType)函數(shù),設(shè)置數(shù)據(jù)位setDataBits(DataBitsType)函數(shù),設(shè)置校驗(yàn)位setParity(ParityType)函數(shù),設(shè)置停止位setStopBits(StopBitsType)函數(shù)這幾個(gè)函數(shù)。

在設(shè)置串口端口時(shí),由于linux平臺(tái)和windows平臺(tái)有所差別,為了使得代碼能兼容兩個(gè)平臺(tái),如下面代碼所示,采用預(yù)定義的方法,Qt編譯器會(huì)根據(jù)不同平臺(tái)進(jìn)行選擇編譯。同時(shí)最后一行實(shí)現(xiàn)了信號(hào)與槽的連接,當(dāng)串口接收到數(shù)據(jù)以后,會(huì)調(diào)用readMyCom函數(shù)。

#ifdef Q_OS_LINUX

myCom=newQextSerialPort(“/dev/”+portName);

#elif defined (Q_OS_WIN)

myCom= new QextSerialPort(portName);

#endif

connect(myCom,SIGNAL(readyRead()),this,SLOT(readMyCom()));

需要注意的是,進(jìn)行讀取電機(jī)速度數(shù)據(jù)時(shí),在讀取數(shù)據(jù)函數(shù)myCom->readAll()前加判斷語句if(myCom->bytesAvailable()>8), if(myCom->bytesAvailable()>8)這條語句是讓串口緩沖區(qū)有了一定大于8個(gè)字節(jié)的數(shù)據(jù)后再讀取,這樣使得電機(jī)控制板發(fā)送過來的速度數(shù)據(jù)完整,比如電機(jī)控制板串口發(fā)送(速度為2 500 r/min)給軟件,如果不加語if(myCom->bytesAvailable()>8),會(huì)使得軟件有可能第一次收到250 r/min數(shù)據(jù),第2次收到0 r/min,產(chǎn)生的電機(jī)速度曲線波形會(huì)嚴(yán)重失真。

2.1.2 數(shù)據(jù)采集頻率設(shè)置。電機(jī)控制板串口會(huì)按照一定的頻率實(shí)時(shí)送電機(jī)速度數(shù)據(jù)到采集軟件上,為了使得采集的每個(gè)速度數(shù)據(jù)在軟件曲線繪制界面上顯示都有對(duì)應(yīng)的時(shí)間,需要在軟件界面上進(jìn)行電機(jī)速度數(shù)據(jù)采集頻率設(shè)置,電機(jī)速度采集頻率和電機(jī)控制板串口實(shí)時(shí)發(fā)送速度數(shù)據(jù)的頻率是一樣的。

2.1.3 保存數(shù)據(jù)。 為了方便分析電機(jī)速度數(shù)據(jù),可在軟件界面上點(diǎn)擊保存功能,可保存電機(jī)速度數(shù)據(jù)及對(duì)應(yīng)時(shí)間,同時(shí)在讀取電機(jī)速度數(shù)據(jù)時(shí),可點(diǎn)擊讀取按鍵打開保存的電機(jī)數(shù)據(jù)文件,方便日后分析。

2.2繪圖模塊 繪圖模塊采用了第3方提供的Qwt庫的QwtPlot類,是一個(gè)二維繪圖部件,提供了畫布與二維坐標(biāo)軸。在QwtPlot的畫布上可以顯示無限繪畫組件。這些繪圖組件包括曲線(QwtPlotCurve),標(biāo)簽(QwtPlotMarker),網(wǎng)格(QwtPlotGrid),或者其它任意的從QwtPlotItem派生出來的子類。通過這些繪圖組件,實(shí)現(xiàn)電機(jī)速度曲線的繪制。具體實(shí)現(xiàn)如下。

2.2.1 設(shè)置背景。 首先是設(shè)置畫布網(wǎng)格,畫布顏色,曲線顏色等,畫布其實(shí)就是電機(jī)速度曲線的背景,類似實(shí)物信號(hào)示波器上的背景。具體實(shí)現(xiàn)如下:

(1)設(shè)置畫布顏色。

ui->qwtPlot->canvas()->setPalette(QPalette (QColor(Qt::darkCyan)));

(2)設(shè)置畫布網(wǎng)絡(luò)。

QwtPlotGrid *grid = new QwtPlotGrid;

(3)設(shè)置曲線顏色為紅色。

curve->setPen(QPen(Qt::red,3, Qt::SolidLine));

2.2.2 繪制曲線。 在繪制曲線時(shí),需要一個(gè)數(shù)據(jù)容器進(jìn)行存儲(chǔ)采集從電機(jī)控制板串口傳過來的數(shù)據(jù)。采用Qt常用的普通容器QVector類進(jìn)行存儲(chǔ)數(shù)據(jù),QVector類是一個(gè)提供動(dòng)態(tài)數(shù)組的模板類。它將自己的每一個(gè)數(shù)據(jù)存儲(chǔ)在連續(xù)的內(nèi)存中,可以使用索引號(hào)來快速訪問它們。當(dāng)串口讀取到達(dá)到設(shè)置的緩沖數(shù)據(jù)時(shí),會(huì)發(fā)射readyRead()信號(hào),通過信號(hào)與槽的機(jī)制觸發(fā)槽串口函數(shù)readMyCom(),在readMyCom()函數(shù)中把獲取到的串口數(shù)據(jù)存儲(chǔ)QVector容器中。同時(shí)設(shè)置定時(shí)器,每50 s″調(diào)用setSamples函數(shù)傳入容器存儲(chǔ)的數(shù)據(jù)以進(jìn)行曲線數(shù)據(jù)的更新,通過attach函數(shù)把重新加載數(shù)據(jù)后的曲線附加到畫布上,最后通過replot函數(shù)[4]進(jìn)行重新繪制曲線。具體實(shí)現(xiàn)方法如下:

QVector xs;//設(shè)置存儲(chǔ)時(shí)間數(shù)據(jù)的X軸;

QVector ys;//設(shè)置存儲(chǔ)速度數(shù)據(jù)的Y軸;

xs.append(temp);// 把每次串口獲取到的速度數(shù)據(jù)插入到xs數(shù)據(jù)存儲(chǔ)容器

ys.append(times);//把每次新速度數(shù)據(jù)對(duì)應(yīng)時(shí)間數(shù)據(jù)插入到y(tǒng)s數(shù)據(jù)存儲(chǔ)容器

每50 s″執(zhí)行下面語句。

curve->setSamples(xs,ys);//加載曲線數(shù)據(jù)

curve->attach(ui->qwtPlot);//把曲線附加到畫布上;

ui->qwtPlot->replot();//QwtPlot重繪繪制曲線。

2.3曲線分析電機(jī)速度采集與處理系統(tǒng)可單一觀察電機(jī)速度描繪出來的曲線,同時(shí)為了便于在進(jìn)行電機(jī)閉環(huán)轉(zhuǎn)速控制時(shí)觀察電機(jī)速度曲線的響應(yīng)時(shí)間,超調(diào)情況等,在軟件界面設(shè)置給定電機(jī)速度,采集頻率后,可點(diǎn)擊“曲線分析”按鍵,便會(huì)等待曲線達(dá)到穩(wěn)定狀態(tài)后計(jì)算出達(dá)到穩(wěn)定速度的響應(yīng)時(shí)間,超調(diào)情況,期間最大電機(jī)速度等。

響應(yīng)時(shí)間是曲線速度從零至到達(dá)并停留在穩(wěn)態(tài)值的±5%或±2%的誤差范圍內(nèi)所需的最小時(shí)間。在此軟件設(shè)計(jì)中響應(yīng)時(shí)間的計(jì)算是當(dāng)給定速度值小于500 r/min時(shí),達(dá)到并停留在給定速度值的±5%范圍內(nèi)所需要的最小時(shí)間。當(dāng)給定速度值大于500 r/min,達(dá)到并停留在給定速度值的±2%范圍內(nèi)所需要的最小時(shí)間。

最大速度值是指電機(jī)運(yùn)行過程出現(xiàn)的最大速度值。

超調(diào)情況主要計(jì)算曲線速度未到達(dá)穩(wěn)定狀態(tài)前大于給定速度值的電機(jī)速度第一個(gè)峰值時(shí)的超調(diào)情況。

3軟件測(cè)試

為了驗(yàn)證電機(jī)速度數(shù)據(jù)采集與處理系統(tǒng)的效果,采用了基于閉環(huán)轉(zhuǎn)速PID控制的無刷直流電機(jī)進(jìn)行驗(yàn)證。無刷直流電機(jī)控制板采用STM32F103VC作為處理器。電機(jī)速度通過STM32F103VC處理器檢測(cè)無刷直流電機(jī)的霍爾傳感器信號(hào)進(jìn)行運(yùn)算,運(yùn)算公式RPM=60/(6×△T×磁極對(duì)數(shù))。其中,△T為換一次相所花的時(shí)間秒數(shù)。將運(yùn)算后的速度值通過電機(jī)控制板串口傳到電機(jī)速度采集與處理系統(tǒng)。

3.1設(shè)置軟件參數(shù)電機(jī)控制板的串口傳送數(shù)據(jù)速率為0.02 kHZ,設(shè)置的電機(jī)給定值是2 500 r/min,因此在軟件界面上輸入電機(jī)速度給定值2 500,采集頻率0.02。如果無需進(jìn)行曲線分析的話,只需設(shè)置采集頻率,而不用在軟件界面設(shè)置給定速度值,設(shè)置給定速度值一般針對(duì)閉環(huán)轉(zhuǎn)速控制情況。同時(shí)設(shè)置好串口參數(shù),打開串口,點(diǎn)擊開始采集數(shù)據(jù),啟動(dòng)無刷直流電機(jī),軟件就開始自動(dòng)描繪曲線,由于是PID控制,點(diǎn)擊曲線分析按鍵進(jìn)行自動(dòng)分析響應(yīng)時(shí)間,最大速度,超調(diào)情況。

3.2測(cè)試結(jié)果 如圖2曲線所示,很直觀看出電機(jī)速度曲線出現(xiàn)超調(diào)情況,通過曲線分析得知電機(jī)的最大速度是3 171 r/min,響應(yīng)時(shí)間短,在0.25 s時(shí)就達(dá)到穩(wěn)定狀態(tài),超調(diào)量較大,達(dá)到26.840%。響應(yīng)時(shí)間短,不過超調(diào)量顯示比較大,還需要對(duì)比例參數(shù)P進(jìn)行調(diào)節(jié)。可以看出,電機(jī)速度數(shù)據(jù)采集與處理系統(tǒng)對(duì)電機(jī)性能分析起到相當(dāng)良好的作用。

圖2  測(cè)試介面

4 結(jié)束語

采用Qt開發(fā)的農(nóng)用電機(jī)速度與處理系統(tǒng)既可以作為一款虛擬儀器在PC機(jī)上使用,避免使用實(shí)際儀器帶來的昂貴成本。又可以移植到ARM平臺(tái)上作為一款可便攜式儀器,該儀器方便攜帶,避免了在不方便時(shí)帶著笨重的PC機(jī)。由于是采集電機(jī)速度,采集速率要求不高,無需使用昂貴的采集卡,利用串口接口就可實(shí)現(xiàn)電機(jī)速度采集[5],有效降低采集數(shù)據(jù)成本[6]。該系統(tǒng)可以為電機(jī)在農(nóng)業(yè)方面的使用提供一定的技術(shù)支持,更好地分析電機(jī)的運(yùn)行情況。且系統(tǒng)能實(shí)時(shí)動(dòng)態(tài)描繪電機(jī)速度曲線,使得觀察電機(jī)速度運(yùn)行更加直觀,同時(shí)可分析響應(yīng)時(shí)間,調(diào)節(jié)情況,最大速度等電機(jī)各方面的性能。

參考文獻(xiàn)

[1] 李文帆,劉志剛,伍文城,等.基于Qt的電力系統(tǒng)地理接線圖繪制軟件設(shè)計(jì)[J].電力系統(tǒng)自動(dòng)化,2013,37(7):72-76.

[2] 顏理政,楊陽,彭力,等.基于Qt的電測(cè)量?jī)x表校驗(yàn)系統(tǒng)界面[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2014,23(5):241-244.

[3] 林賢賢,呂冬華,楊永杰,等. 基于Qt的鞋底摩擦力測(cè)試軟件的設(shè)計(jì)[J].測(cè)控技術(shù),2012,32(7):106-109.

[4] 張寧.基于Qt的虛擬儀器設(shè)計(jì)與應(yīng)用[J].測(cè)控技術(shù), 2014,33(6):123-126.

[5] 高丹華,楊戀,董慶慶,等.基于QT的高性能超聲探傷儀[J].儀表技術(shù)與傳感器,2014(10):17-18.

[6] 袁碧金,吳雷,李鵬程.基于專家PID控制三相交流斬波調(diào)壓系統(tǒng)[J].電力電子技術(shù),2010,44(5):82-83.

猜你喜歡
數(shù)據(jù)采集速度
行駛速度
速度
CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
大數(shù)據(jù)時(shí)代高校數(shù)據(jù)管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時(shí)空分布研究綜述
基于廣播模式的數(shù)據(jù)實(shí)時(shí)采集與處理系統(tǒng)
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
軟件工程(2016年8期)2016-10-25 15:52:53
基于開源系統(tǒng)的綜合業(yè)務(wù)數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
比速度更速度——“光腦”來了
數(shù)字串
响水县| 铜梁县| 福安市| 安乡县| 浪卡子县| 繁峙县| 弋阳县| 霍州市| 永寿县| 榆社县| 马山县| 湾仔区| 东山县| 海淀区| 绍兴县| 即墨市| 武隆县| 蒙自县| 白银市| 星子县| 铜山县| 沧州市| 黑龙江省| 襄城县| 平远县| 璧山县| 登封市| 铁岭市| 兴城市| 历史| 汕尾市| 汾西县| 双峰县| 永宁县| 濮阳县| 镇康县| 克什克腾旗| 新巴尔虎左旗| 福清市| 涟水县| 桦南县|