版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、隨著國民經(jīng)濟(jì)的發(fā)展和人們生活水平的提高,電力電子產(chǎn)品廣泛地應(yīng)用于工業(yè)控制領(lǐng)域,用戶對電能質(zhì)量的要求也越來越高,其中最為突出的是電壓質(zhì)量和諧波的問題,因此,如何提高電壓質(zhì)量、治理諧波就成為輸配電技術(shù)中最為迫切的問題之一。所以,面對我國目前電網(wǎng)結(jié)構(gòu)薄弱和輸配電技術(shù)普遍存在的技術(shù)手段的落后、自動化水平低的現(xiàn)狀,針對電壓質(zhì)量和諧波問題,研究電網(wǎng)諧波治理問題和無功補(bǔ)償新技術(shù)及新裝備,具有十分重要的理論和現(xiàn)實意義3。11諧波的定義“諧波”這一名詞起源于聲學(xué),在聲學(xué)中諧波表示一根弦或一個空氣柱以基波頻率的倍數(shù)頻率振動。電氣學(xué)中所謂電網(wǎng)諧波,就是電網(wǎng)正弦電壓波形畸變后,其波形可以按傅立葉級數(shù)進(jìn)行分解,除了基波
2、(50HZ)之外,還有一系列頻率為基波頻率整數(shù)倍的正(余)弦波,這些正(余)弦波稱之為諧波。正是由于這些諧波注入了電網(wǎng),就使得電網(wǎng)電壓波形畸變14。12諧波的危害電網(wǎng)諧波的危害主要有以下幾點(diǎn):1、相同頻率的諧波電壓余諧波電流要產(chǎn)生同此諧波的有功功率與無功功率,從而降低電網(wǎng)電壓,浪費(fèi)電網(wǎng)容量。2、高次諧波能使電容器出現(xiàn)過電流與過負(fù)荷,溫度增高,壽命減少,甚至出現(xiàn)發(fā)熱、鼓肚、擊穿或爆炸事故。同時在電壓已經(jīng)畸變的電網(wǎng)中,電容器的投入,還可能使電網(wǎng)的諧波加劇(諧波放大現(xiàn)象)。3、諧波往往引起繼電保護(hù)不工作或誤動作,從而造成設(shè)備與系統(tǒng)的事故,尤其是半導(dǎo)體繼電保護(hù)與整流型繼電保護(hù)更為嚴(yán)重。4、諧波能增大儀
3、表的計量誤差,干擾通訊網(wǎng)絡(luò)的正常工作。5、電機(jī)中有諧波電流,且頻率接近某個零件的固有頻率時,使電機(jī)產(chǎn)生機(jī)械振動并發(fā)出很大的噪聲。6、諧波對人體有影響。從人體生理學(xué)來看,人體細(xì)胞在受到刺激興奮時,會在細(xì)胞膜靜息電位基礎(chǔ)上發(fā)生快速電波動或可逆翻轉(zhuǎn)。其頻率如果與諧波頻率相接近,電網(wǎng)諧波的磁輻射就會直接影響人的腦磁場和心磁場。13 諧波的產(chǎn)生電網(wǎng)諧波來源于三個方面:其一是發(fā)電源質(zhì)量不高產(chǎn)生諧波;其二是輸電網(wǎng)產(chǎn)生諧波;其三是用電設(shè)備產(chǎn)生的諧波。其中以電氣設(shè)備產(chǎn)生的諧波最多,具體情況如下:1、整流設(shè)備。由于晶閘管整流的廣泛應(yīng)用(如電力機(jī)車的、路電解槽、電池充電器等),給電網(wǎng)造成大量的諧波。統(tǒng)計表明:由于整
4、流裝置產(chǎn)生的諧波占所有諧波的40%左右,這是最大的諧波源。2、電弧爐、電石爐。由于加熱原料時電爐的三項電極很難同時接觸到高低不平的爐料,使得燃料不穩(wěn)定,引起三項負(fù)荷不平衡,產(chǎn)生諧波電流,經(jīng)變壓器的形連接線圈而注入電網(wǎng)。其中主要是27次的諧波,平均可達(dá)基波的8%20%,最大可達(dá)45%。3、電力變壓器。由于變壓器鐵心的飽和,磁化曲線的非線性,加上設(shè)計變壓器時考慮經(jīng)濟(jì)型,其工作磁密選擇在磁化曲線的近飽和段上,這樣就使得磁化電流呈尖頂波形,因而含有奇次諧波,其次諧波電流可達(dá)額定電流的0.5%。另外變壓器空載合閘時出現(xiàn)的涵流中也含有大量的諧波量。4、家用電器。如電視機(jī)、錄像機(jī)、電子調(diào)光燈具、調(diào)溫炊具等,
5、因具有調(diào)壓整流裝置,會產(chǎn)生較深的奇次諧波;在洗衣機(jī)、電風(fēng)扇、空調(diào)器等有繞組的設(shè)備中,因不平衡電流的變化也能是波形改變。14 諧波抑制的三種方法為了產(chǎn)少諧波的危害,根據(jù)諧波的來源,抑制諧波的方法大致從三個方面考慮:1、確保電源的質(zhì)量 從發(fā)電機(jī)本身來說,產(chǎn)生諧波是很少的,這主要就是要從管理上保證發(fā)配電的質(zhì)量,尤其是對于自發(fā)電設(shè)備的企業(yè),要制定相應(yīng)的措施予以保證。2、減少輸電網(wǎng)諧波的產(chǎn)生與磁輻射 如盡可能采用高壓直流輸電;低壓供電盡可能采用地下電纜;高層建筑內(nèi)部的供電線應(yīng)用鐵管來防止磁輻射,還應(yīng)做好大樓建筑的接地系統(tǒng)的設(shè)計與實施安裝。3、限制用電負(fù)荷產(chǎn)生的諧波前已述及,用電負(fù)荷是電網(wǎng)諧波的最主要的來
6、源。首先要求用戶對電網(wǎng)電壓的畸變率與諧波電流的限制要做到負(fù)荷國家要求。根據(jù)國家水電部頒發(fā)的SD126-84規(guī)定,如果超過極限值,則應(yīng)采取抑制措施。其次,就是要把維護(hù)電網(wǎng)不受諧波污染定成規(guī)章制度,用戶與電氣設(shè)備制造廠商都要配合發(fā)供電部門齊抓共管。具體來說應(yīng)做到下面幾點(diǎn):(1)對容量在100kVA以上的整流裝置與非線性用電設(shè)備,必須就地增設(shè)濾波裝置,吸收高次諧波。(2)具有整流元件的設(shè)備,雖是小型用電器,也要增加整流相數(shù)與脈沖數(shù),或把晶閘管移相觸發(fā)改為過零觸發(fā),或者增設(shè)濾波裝置,做到盡可能減少諧波。例如有些廠家生產(chǎn)的晶閘管調(diào)光臺燈就增設(shè)了濾波原件。雖然成本有所增加,但能抑制諧波對電視機(jī)等設(shè)備的干擾
7、,應(yīng)受到推廣。(3)制造電磁感應(yīng)式設(shè)備的廠家,要采用高質(zhì)量的電磁材料,也可適當(dāng)降低磁密。對于劣質(zhì)元件的電磁設(shè)備要限制出售使用。(4)對于電容器組等大容量的設(shè)備,應(yīng)在回路內(nèi)串電抗器或增設(shè)限流裝置,抑制高次諧波。(5)合理選擇供電電壓,盡量保持三相平衡。對能產(chǎn)生諧波的大容量設(shè)備還可采用較高電壓供電,以減少系統(tǒng)的阻抗,從而減少諧波引起的網(wǎng)損。(6)在產(chǎn)品的設(shè)計上還可采用干擾頻率轉(zhuǎn)嫁措施。如在變壓器降壓整流穩(wěn)壓的設(shè)備中,采用開關(guān)電源的逆變技術(shù),就能大大降低低頻段的污染,而轉(zhuǎn)嫁到150kHz以上頻率的污染,而這種較高頻率的諧波容易被抑制??傊?,面對日趨嚴(yán)重的電網(wǎng)諧波污染,必須引起高度重視,這就需要發(fā)供電
8、部門、用戶及電氣設(shè)備的制造廠商都從大局出發(fā),共同努力,清掃和維護(hù)電網(wǎng)的“公共衛(wèi)生”。同時只有這樣,才能有利于各行各業(yè)的生產(chǎn)發(fā)展,才能有利于人民生活水平的不斷提高。2 課題分析21 課題來源隨著電力電子技術(shù)的迅速發(fā)展,各種變頻器、變流器、開關(guān)電源和電抗器的應(yīng)用日益增多,電網(wǎng)隨之產(chǎn)生的諧波污染也日益嚴(yán)重,影響了電力系統(tǒng)的安全運(yùn)行及線路周圍的電磁環(huán)境,因此電網(wǎng)諧波測量成為熱門研究課題。22 設(shè)計思路將220V的交流電壓通過電壓采樣環(huán)節(jié),得到模擬量電壓,將得到的模擬量電壓接到USB2002采樣卡模擬輸入通道,接著由采樣卡的采樣環(huán)節(jié)變換成離散的數(shù)字量,然后運(yùn)用傅立葉變換作譜分析,由于柵欄效應(yīng),譜線位置與
9、分析點(diǎn)可能不重合,可采用具有實譜特性的窗函數(shù)對信號進(jìn)行加窗處理,然后對信號及其時移連續(xù)作兩次FFT分析(實為一次復(fù)時域信號分析),則在窗譜的主瓣內(nèi)將含有若干個由窗泄漏造成的相位相同的譜分析值,據(jù)此可以判定這些分析值由同一條真實譜線引起。繼而可精確求出諸分立譜線的頻率、幅度,然后將計算獲得的數(shù)據(jù)顯示在計算機(jī)屏幕上。本課題是從電網(wǎng)中采集數(shù)據(jù)然后運(yùn)用DFT來分析電網(wǎng)中存在的諧波。根據(jù)課題的需要可分成兩大塊,一塊是數(shù)據(jù)采集,一塊是數(shù)據(jù)處理。在數(shù)據(jù)采集模塊里包括數(shù)據(jù)的采集和保存,本設(shè)計采用北京阿爾泰科貿(mào)有限公司生產(chǎn)的USB2002型號的采集卡進(jìn)行采集。在數(shù)據(jù)處理模塊中將采用DFT來進(jìn)行數(shù)據(jù)處理從而得到譜
10、線的幅度和頻率,進(jìn)而求出紋波系數(shù)。由于要用到編程來解決數(shù)據(jù)的采集、存盤和處理,我們將采用做用戶界面,通過調(diào)用MATLAB引擎的方法處理數(shù)據(jù),以實現(xiàn)本課題的要求。3數(shù)據(jù)采集3.1 數(shù)據(jù)采集卡的介紹USB又稱之為通用串行總線,它將計算機(jī)和外設(shè)連接在一起,能進(jìn)行數(shù)字圖象處理,同時為數(shù)字化設(shè)計提供了許多創(chuàng)造空間。課題中我們所用的采集卡型號是USB2002。它是USB總線兼容的數(shù)據(jù)采集板,可經(jīng)過USB電纜接入計算機(jī),構(gòu)成實驗室、產(chǎn)品質(zhì)量檢驗中心、野外測控、醫(yī)療設(shè)備等領(lǐng)域的數(shù)據(jù)采集、波形分析和處理系統(tǒng),也可構(gòu)成工業(yè)生產(chǎn)過程控制的系統(tǒng)。而且它具有體積小,即插即用等特點(diǎn),因此是便捷式系統(tǒng)用戶的最佳選擇?,F(xiàn)在我
11、們使用的是USB2.0的版本,它的傳輸速度最高達(dá)到480MBit。同時本卡的使用是由軟硬件共同完成的。3.2 數(shù)據(jù)采集卡的技術(shù)指標(biāo)及應(yīng)用1、模擬信號輸入部分模擬通道輸入數(shù):32路單端/16路雙端模擬信號輸入,支持通道掃描及偽同時采集(同步采集)掃描模式(注:偽同步模式:即模擬同步采集模式,采樣被定時器或外部時鐘啟動后,USB2002以400KHZ的最大速度對用戶設(shè)置的一組通道采樣,結(jié)束后等待下一次啟動,如此循環(huán)采樣)。(1)模擬電壓輸入范圍:5V,10V(AD7899-1)(2)模擬輸入阻抗:100M(3)模擬輸入共模電壓范圍:2V(4)放大器建立時間:2S2、A/D轉(zhuǎn)換電路部分(1)A/D分
12、辨率:14Bit(16384)(2)非線性誤差:1LSB(最大)S(4)系統(tǒng)測量精度(滿量程):0.1(5)采樣速度:400KHZ3、應(yīng)用數(shù)據(jù)采集卡的主要應(yīng)用在以下幾個方面:野外采集、信號采集和醫(yī)療設(shè)備 程序調(diào)試現(xiàn)在由于在實驗室操作,為了安全問題,我們先將電網(wǎng)220V的電壓通過變壓器降壓,然后再用電阻分壓(當(dāng)然使用了變壓器會對我們要處理的電網(wǎng)諧波有一定的影響)。將電壓采樣電路和數(shù)據(jù)采集卡連好后,我們便將電源打開,接著打開我們要運(yùn)行的程序。點(diǎn)擊程序運(yùn)行按鈕,系統(tǒng)自動彈出一個框,在這個框中,我們進(jìn)行一些參數(shù)的設(shè)置,參數(shù)設(shè)置完后我們便開始數(shù)據(jù)采集,采集的數(shù)據(jù)將在左半邊出現(xiàn),而圖形以正弦波的形式在右半
13、邊出現(xiàn)。采集結(jié)束后點(diǎn)擊存盤按鈕,數(shù)據(jù)將存入相應(yīng)的盤中。在操作中我們發(fā)現(xiàn)如果使用單通道輸入會有一些干擾,而使用雙通道輸入則可以抑制一些干擾。4數(shù)據(jù)處理41 綜述數(shù)據(jù)處理就是對采集到的信號進(jìn)行分析,分析的步驟有以下幾方面:首先取兩組相差為一個采樣周期的兩組數(shù)據(jù),然后對數(shù)據(jù)加布萊克曼哈里斯窗, 接著對數(shù)據(jù)作DFT變換,最后用查詢方法尋找真實譜線,流程圖如圖所示:42 VC+調(diào)用MATLAB421 VC調(diào)用MATLAB的三種方法 Visual C+是基于Windows平臺下的一種應(yīng)用程序開發(fā)環(huán)境,現(xiàn)在已升級到了版本。應(yīng)用VC6.0可以方便地開發(fā)各種用戶需要的界面和工具,并且能夠直接與系統(tǒng)的底層硬件交換
14、數(shù)據(jù)。在環(huán)境下開發(fā)的軟件,具有容易維護(hù)、界面友好及運(yùn)行速度快等許多優(yōu)點(diǎn)。但是, 在下進(jìn)行編程是比較煩瑣的,不易掌握。因此, 將VC6.0VC調(diào)用MATLAB引擎結(jié)束開始查找完?查找真實譜線作DFT變換加窗取兩組數(shù)據(jù)圖4.1 數(shù)據(jù)處理部分流程圖環(huán)境與MATLAB進(jìn)行有效連接將會使得VC程序的開發(fā)大大簡化13。以下是三種VC調(diào)用MATLAB的方法,它們各具特色,在應(yīng)用中要結(jié)合具體需求進(jìn)行選擇。第一種:MCC 編譯器法可以直接對MATLAB 產(chǎn)生的.m文件進(jìn)行編譯,在MATLAB提供的C/C+函數(shù)庫、圖形庫的支持下,能將繪制各種復(fù)雜圖形的MATLAB程序高效的轉(zhuǎn)化為C/C+代碼,與單純用VC編程實現(xiàn)
15、相比大大減輕編程人員的工作量和編程難度;第二種:采用Matcom 編譯法進(jìn)行轉(zhuǎn)換更加方便,且生成的C/C+代碼的可讀性較好,是解決圖形、圖像處理問題的一種理想方法;第三種:使用MATLAB計算引擎法時,由于其工作時MATLAB后臺工作,只有小部分引擎通信函數(shù)庫與程序相連,因此節(jié)省了資源,提高了應(yīng)用程序的整體性能和處理效率。422 調(diào)用MATLAB引擎MATLAB允許用戶通過MATLAB引擎調(diào)用MATLAB的函數(shù),即將MATLAB當(dāng)作應(yīng)用程序進(jìn)行數(shù)據(jù)計算的引擎。MATLAB提供了一系列操作MATLAB引擎的API函數(shù),通過這些API函數(shù),用戶可以充分發(fā)揮MATLAB進(jìn)行矩陣計算的優(yōu)勢,將應(yīng)用程序
16、的計算功能交給MATLAB引擎完成,而界面部分則可以通過采用VC+來實現(xiàn)。這些為應(yīng)用程序的實現(xiàn)提供了很大的靈活性。1、API函數(shù)介紹1)int engClose(Engine *ep);退出MATLAB引擎。2)int engEvalString(Engine *ep,const char *string);使MATLAB引擎執(zhí)行字符串string中的表達(dá)式。3)mxArray *engGetVariable(Engine *ep, const char *name);從MATLAB引擎工作空間中復(fù)制名字為name的變量。4)int engGetVisible(Engine *ep,bool
17、*value);判斷MATLAB引擎工作窗口是否可見。5)Engine *engOpen(const char *startcmd);啟動一個MATLAB引擎,在Windows操作環(huán)境下startcmd參數(shù)必須為NULL。6)Engine *eng OpenSingleUse(const char *startcmd,void *dcom,int *retstatus);啟動一個只允許用戶使用的MATLAB引擎,在Windows系統(tǒng)中startcmd和dcom參數(shù)始終為NULL,retstatus為返回engOpenSingleUse函數(shù)的執(zhí)行狀態(tài)。7)int engOutputBuffer(
18、Engine *ep,char *p,int n);設(shè)置MATLAB引擎的輸出內(nèi)存,存儲engEvalString函數(shù)執(zhí)行字符串后的輸出結(jié)果。其中n表示設(shè)置的輸出內(nèi)存可以存放的字符個數(shù),如果輸出結(jié)果的字符串大于n,則只存儲前n個字符。8)int engPutVariable(Engine *ep,const char *name,const mxArray *mp);向MATLAB引擎工作空間中寫入一個MATLAB陣列變量,其中name為寫入變量在MATLAB引擎工作空間中的名字。9)int engSetVisible(Engine *ep,bool value);設(shè)置MATLAB引擎工作窗口
19、是否可見的屬性,如果value=true,則MATLAB引擎窗口可見;如果value=false,則MATLAB引擎窗口不可見。2、Visual C+6.0 MFC工程中調(diào)用MATLAB引擎首先創(chuàng)建一個單文檔的Visual C+6.0 工程matlabenginetest,其中view類的基類選為CFormView。添加到CMatlabenginetestView中的界面元素及其ID如下表所列。表 matlabenginetest CmatlabenginetestView 控件列表ID控件類型界面元素IDC_SrartEngineButton啟動EngineIDC_DrawSincButto
20、n計算并繪制Sinc圖象IDC_CloseEngineButton關(guān)閉EngineIDC_HIDEENGINECHECKCheck button隱藏MATLAB引擎窗口IDC_CMDEDITEdit命令輸入編譯框IDC_EVALUATESTRINGButton執(zhí)行用戶輸入的命令I(lǐng)DC_OUTPUTEDITEditMATLAB引擎結(jié)果顯示編譯框Matlabenginetest通過engEvalString函數(shù)調(diào)用MATLAB引擎執(zhí)行相應(yīng)的命令并計算顯示sinc函數(shù)曲線,通過函數(shù)engOutputBuffer將m_outbuff設(shè)為MATLAB引擎輸出的結(jié)果存儲的緩沖區(qū)。另外需要注意的是,由于本工
21、程調(diào)用MATLAB引擎的API函數(shù),因此需要在工程設(shè)置中加入靜態(tài)鏈接庫libeng.lib。74.2.3 程序代碼/*/#if !defined(AFX_MATLABENGINETESTVIEW_H_2BA448E9_DCB7_4CAB_8DE3_46FED317C086_INCLUDED_)#define AFX_MATLABENGINETESTVIEW_H_2BA448E9_DCB7_4CAB_8DE3_46FED317C086_INCLUDED_#if _MSC_VER 1000#pragma once#endif / _MSC_VER 1000#include engine.h#def
22、ine _MAX_BUFF_CHAR_NUM 2000class CMatlabenginetestView : public CFormViewprotected: / create from serialization onlyCMatlabenginetestView();DECLARE_DYNCREATE(CMatlabenginetestView)public:/AFX_DATA(CMatlabenginetestView)enum IDD = IDD_MATLABENGINETEST_FORM ;CEditm_outputedit;BOOLm_nIsCheck;CStringm_c
23、mdedit;/AFX_DATA/ Attributespublic:CMatlabenginetestDoc* GetDocument();/ Operationspublic:Engine * m_ep;char m_outbuff_MAX_BUFF_CHAR_NUM;/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CMatlabenginetestView)public:virtual BOOL PreCreateWindow(CREATESTRUCT& cs);protected:vir
24、tual void DoDataExchange(CDataExchange* pDX); / DDX/DDV supportvirtual void OnInitialUpdate(); / called first time after constructvirtual BOOL OnPreparePrinting(CPrintInfo* pInfo);virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);virtua
25、l void OnPrint(CDC* pDC, CPrintInfo* pInfo);/AFX_VIRTUAL/ Implementationpublic:virtual CMatlabenginetestView();#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;#endifprotected:/ Generated message map functionsprotected:/AFX_MSG(CMatlabenginetestView)afx_msg voi
26、d OnCloseEngine();afx_msg void OnDrawSinc();afx_msg void OnStartEngine();afx_msg void OnPaint();afx_msg void OnHideenginecheck();afx_msg void OnEvaluatestring();afx_msg void OnSize(UINT nType, int cx, int cy);afx_msg void OnChangeOutputedit();/AFX_MSGDECLARE_MESSAGE_MAP();inline CMatlabenginetestDoc
27、* CMatlabenginetestView:GetDocument() return (CMatlabenginetestDoc*)m_pDocument; #endif/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_MATLABENGINETESTVIEW_H_2BA448E9_DCB7_4CAB_8DE3_46FED317C086_INCLUDED_)/*/#in
28、clude stdafx.h#include matlabenginetest.h#include matlabenginetestDoc.h#include matlabenginetestView.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMatlabenginetestViewIMPLEMENT_DYNCREATE(CMatlabenginetestView, CFormView)BEGIN_MESSAGE_MAP(CMatlabenginetest
29、View, CFormView)/AFX_MSG_MAP(CMatlabenginetestView)ON_BN_CLICKED(IDC_CloseEngine, OnCloseEngine)ON_BN_CLICKED(IDC_DrawSinc, OnDrawSinc)ON_BN_CLICKED(IDC_StartEngine, OnStartEngine)ON_WM_PAINT()ON_BN_CLICKED(IDC_HIDEENGINECHECK, OnHideenginecheck)ON_BN_CLICKED(IDC_EVALUATESTRING, OnEvaluatestring)ON_
30、WM_SIZE()ON_EN_CHANGE(IDC_OUTPUTEDIT, OnChangeOutputedit)/AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CFormView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView:OnFilePrintPreview)END_MESSAGE_MAP()/ CMatlabenginetestV
31、iew construction/destructionCMatlabenginetestView:CMatlabenginetestView(): CFormView(CMatlabenginetestView:IDD)/AFX_DATA_INIT(CMatlabenginetestView)m_nIsCheck = FALSE;m_cmdedit = _T();/AFX_DATA_INIT/ TODO: add construction code herem_ep = NULL;memset(m_outbuff,0,_MAX_BUFF_CHAR_NUM*sizeof(char);CMatl
32、abenginetestView:CMatlabenginetestView()if(m_ep!=NULL)engClose(m_ep);void CMatlabenginetestView:DoDataExchange(CDataExchange* pDX)CFormView:DoDataExchange(pDX);/AFX_DATA_MAP(CMatlabenginetestView)DDX_Control(pDX, IDC_OUTPUTEDIT, m_outputedit);DDX_Check(pDX, IDC_HIDEENGINECHECK, m_nIsCheck);DDX_Text(
33、pDX, IDC_CMDEDIT, m_cmdedit);/AFX_DATA_MAPBOOL CMatlabenginetestView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CFormView:PreCreateWindow(cs);void CMatlabenginetestView:OnInitialUpdate()CFormView:OnInitialUpdate();GetParent
34、Frame()-RecalcLayout();ResizeParentToFit();m_outputedit.SetWindowText();/ CMatlabenginetestView printingBOOL CMatlabenginetestView:OnPreparePrinting(CPrintInfo* pInfo)/ default preparationreturn DoPreparePrinting(pInfo);void CMatlabenginetestView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/
35、 TODO: add extra initialization before printingvoid CMatlabenginetestView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: add cleanup after printingvoid CMatlabenginetestView:OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)/ TODO: add customized printing code here/ CMatlabenginetestView diagnostic
36、s#ifdef _DEBUGvoid CMatlabenginetestView:AssertValid() constCFormView:AssertValid();void CMatlabenginetestView:Dump(CDumpContext& dc) constCFormView:Dump(dc);CMatlabenginetestDoc* CMatlabenginetestView:GetDocument() / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMatlabengine
37、testDoc);return (CMatlabenginetestDoc*)m_pDocument;#endif /_DEBUG/ CMatlabenginetestView message handlersvoid CMatlabenginetestView:OnCloseEngine() / TODO: Add your control notification handler code hereengClose(m_ep);m_ep=NULL;void CMatlabenginetestView:OnDrawSinc() / TODO: Add your control notific
38、ation handler code hereif(m_ep!=NULL)engEvalString(m_ep,x1=0.01:0.01:10*pi);engEvalString(m_ep,x2=-10*pi:0.01:-0.01);engEvalString(m_ep,y1=sin(x1)./x1);engEvalString(m_ep,y2=sin(x2)./x2);engEvalString(m_ep,plot(x2 x1,y2 y1);/engEvalString()中為調(diào)用的MATLAB程序/產(chǎn)生一個錯誤,從而驗證MATLAB引擎的輸出已經(jīng)被捕獲engEvalString(m_ep,
39、1/0);m_outputedit.SetWindowText(m_outbuff);elseAfxMessageBox(請啟動MATLAB引擎,MB_OK,NULL);void CMatlabenginetestView:OnStartEngine() / TODO: Add your control notification handler code herem_ep = engOpen(NULL);engOutputBuffer(m_ep,m_outbuff,_MAX_BUFF_CHAR_NUM);void CMatlabenginetestView:OnPaint() CPaintDC
40、 dc(this); / device context for painting/ TODO: Add your message handler code here/ Do not call CFormView:OnPaint() for painting messagesvoid CMatlabenginetestView:OnHideenginecheck() / TODO: Add your control notification handler code hereif(m_ep=NULL) return;UpdateData(true);engSetVisible(m_ep,!m_n
41、IsCheck);void CMatlabenginetestView:OnEvaluatestring() / TODO: Add your control notification handler code hereUpdateData(true);LPSTR pstr = m_cmdedit.GetBuffer(m_cmdedit.GetLength();if(m_ep!=NULL)engEvalString(m_ep,(const char*)pstr);m_outputedit.SetWindowText(m_outbuff);elseAfxMessageBox(請啟動MATLAB引
42、擎,MB_OK,NULL);void CMatlabenginetestView:OnSize(UINT nType, int cx, int cy) CFormView:OnSize(nType, cx, cy);/ TODO: Add your message handler code hereif(:IsWindow(m_outputedit.GetSafeHwnd()m_outputedit.MoveWindow(0,140,cx,cy-140,true);void CMatlabenginetestView:OnChangeOutputedit() / TODO: If this i
43、s a RICHEDIT control, the control will not/ send this notification unless you override the CFormView:OnInitDialog()/ function and call CRichEditCtrl().SetEventMask()/ with the ENM_CHANGE flag ORed into the mask./ TODO: Add your control notification handler code here圖 VC調(diào)用MATLAB引擎的用戶界面圖 通過調(diào)用方法實現(xiàn)繪制sin
44、c圖形43數(shù)據(jù)分組本課題為一路數(shù)據(jù)采集,得到一組電壓信號數(shù)據(jù)。譜線的精確辨識需要相繼兩次DFT分析,考慮到完全對稱窗的選取,需從數(shù)據(jù)采集得到的數(shù)據(jù)中取N+2個數(shù)據(jù),這里取4098個數(shù)據(jù),, 。將和的平均值作為第一個點(diǎn),其余不變,得到第一組數(shù)據(jù),記為x(n),將和的平均值作為第一點(diǎn),其余依次,得到第二組數(shù)據(jù),記為y(n)。兩組數(shù)據(jù)相差一個采樣周期。44加窗 窗函數(shù)的選取對時域信號作DFT分析首先應(yīng)作加窗處理,選取理想的窗函數(shù)的基本原則是:(1)窗函數(shù)頻譜的主瓣應(yīng)盡量窄,能量盡可能集中在主瓣內(nèi),從而在譜分析時獲得較高的頻率分辨力,在數(shù)字濾波器設(shè)計中獲得較小的過渡帶。(2)窗譜的旁瓣高度應(yīng)盡量小而且
45、隨頻率盡快衰減,以減小譜估計時的泄漏失真,在設(shè)計數(shù)字濾波器時減小通帶的波動,提高阻帶的衰減。但主瓣既窄,旁瓣又小衰減又快的窗函數(shù)是不容易找到的,比如矩形窗的旁瓣很大,但其主瓣寬度是最窄的,因此,在數(shù)據(jù)處理時通常需要做綜合考慮取其折中。在應(yīng)用窗函數(shù)時,除了要考慮窗譜本身的特性外,還應(yīng)當(dāng)充分考慮被分析信號的特點(diǎn)以及具體的處理要求。在譜分析中,如果僅要求分析譜峰的頻率而不計及幅值的精度,則可選用主瓣較窄而便于分辨的矩形窗。如果要分析窄帶信號且具有較強(qiáng)的干擾噪聲時,則應(yīng)選用旁瓣幅度較小的窗函數(shù)如Hamming 窗等。如果干擾距離信號較遠(yuǎn),則可以采用旁瓣衰減速度較快的窗函數(shù)如Papoulis 窗等。對于
46、隨時間衰減的信號如脈沖響應(yīng)信號等,可以應(yīng)用指數(shù)窗等來提高分析的信噪比12。下面是幾種常見的窗函數(shù)(1) 矩形窗5時域:窗譜:幅頻函數(shù):波形:圖4.4 矩形窗及其頻譜(2)三角形窗時域:窗譜:幅頻函數(shù):(3)漢寧窗時域:窗譜:幅頻函數(shù):當(dāng)N1,N-1近似N,所以此式能使三部分之和相互抵消,能量更集中在主瓣,但主瓣寬度卻比矩形窗寬一倍,為。波形:圖4.5 漢寧窗及其頻譜(4)海明窗時域:窗譜:幅頻函數(shù):波形:圖4.6 海明窗及其頻譜下面是五種常見窗函數(shù)的基本參數(shù)比較2:表4.2 五種窗函數(shù)基本參數(shù)窗函數(shù)類型旁瓣峰值/dB過渡帶寬度B阻帶最小衰減/dB矩形窗134/N21三角窗258/N25漢寧窗3
47、18/N44海明窗418/N53布萊克曼窗5712/N74一般電網(wǎng)信號主要含有整數(shù)次諧波,因而常采用基于余弦窗的組合窗,這類窗只要選取觀測時間是信號周期的整數(shù)倍,其頻譜在各次整數(shù)倍諧波頻率處幅值為零,因而諧波之間不發(fā)生相互泄漏。即使信號頻率作小范圍波動,泄漏誤差也較小。余弦窗一般可以表達(dá)為(H為窗的項數(shù)-1) 公式4.1窗的項數(shù)越多,主瓣寬度越大,從而引起頻譜分辨力的降低。但同時較多項數(shù)的窗函數(shù)能夠產(chǎn)生較大的旁瓣衰減,有利于提高頻譜計算精度,但組合窗的項數(shù)一般不大于4,容易推得把式公式1代入公式2并簡化得到公式4.3公式4.3表明,欲使組合窗具有線形相位特性,應(yīng)滿足故常用的窗為兩項漢寧(Han
48、ning)窗、三項布萊克曼(Blackman)窗、四項布萊克曼哈里斯(Blackman-Harris)窗。如果測量時間為信號周期整數(shù)倍(且大于等于4),則基波和各次諧波頻率歸一化后正好位于上述組合窗幅頻特性零點(diǎn),此時整數(shù)次諧波相互干擾誤差為零。當(dāng)信號頻率波動時,各次諧波頻率在窗零點(diǎn)附近也作一定的波動,不同窗的零點(diǎn)附近特性不同,故產(chǎn)生的泄漏誤差也不相同。相同條件下,窗寬L和采樣點(diǎn)數(shù)同時增大,頻譜泄漏減小。四項布萊克曼-哈里斯窗大多數(shù)諧波衰減90dB以上,性能最優(yōu),布萊克曼窗次之15。4.4.2 布萊克曼哈里斯窗(blackman harris)的定義布拉克曼窗也稱二階升余弦窗。布拉克曼利用更多的矩形窗頻譜線性組合構(gòu)成布拉克曼窗,其偶對稱表示為單邊表示單邊表示的布拉克曼窗幅度頻譜函數(shù)為這個窗函數(shù)中系數(shù)的選擇應(yīng)滿足以下約束條件假如布拉克曼窗有K個非零的系數(shù),則其振幅頻譜將由(2K-1)個中心頻率不同的矩形窗頻譜線性組合而成。顯然,要使窗函數(shù)頻譜的主瓣寬度窄,則K值不能選得很大。哈利斯曾找到了布拉克曼窗的一組三項及四項非零系數(shù),如表4
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年蔬菜種植基地與農(nóng)產(chǎn)品電商平臺合作合同范本23篇
- 2025年度臨街門面房租賃合同:綠色食品直銷中心合作協(xié)議4篇
- 二零二五年度文化旅游股份買賣合同模板3篇
- 二零二五年航空貨運(yùn)代理銷售合同-航空貨運(yùn)代理與航空公司專項合作協(xié)議3篇
- 房地產(chǎn)投資合同
- 法人對公司的借款合同范本
- 二零二五年鋼材租賃合同規(guī)范文本3篇
- 2025年度知識產(chǎn)權(quán)保護(hù)委托擔(dān)保合同公證方案3篇
- 蓄電池合作協(xié)議合同
- 簡單的場地商鋪?zhàn)赓U合同范本
- 2024年紀(jì)檢監(jiān)察綜合業(yè)務(wù)知識題庫含答案(研優(yōu)卷)
- 科室醫(yī)療質(zhì)量與安全管理小組工作制度
- 中華民族共同體概論課件第五講大一統(tǒng)與中華民族共同體初步形成(秦漢時期)
- 初二生地會考試卷及答案-文檔
- 私營企業(yè)廉潔培訓(xùn)課件
- 施工單位值班人員安全交底和要求
- 中國保險用戶需求趨勢洞察報告
- 數(shù)字化轉(zhuǎn)型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現(xiàn)場工藝紀(jì)律檢查表
評論
0/150
提交評論