<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 一種實時性較強的采樣頻率同步實現(xiàn)方法

          一種實時性較強的采樣頻率同步實現(xiàn)方法

          作者: 時間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

          摘 要: 分析了工頻頻率變化對計算電量有效值的數(shù)字化測量精度的影響及產(chǎn)生采樣頻率誤差的原因,給出用單片機Intel80C196的高速輸入接口及軟件定時器實現(xiàn)采樣頻率跟蹤的方法,并給出硬件電路結(jié)構(gòu)及軟件框圖。

          本文引用地址:http://www.ex-cimer.com/article/255646.htm

          關(guān)鍵詞: 采樣頻率 同步 單片機

          隨著計算機技術(shù)的發(fā)展,電力計量表計繼電保護等電力自動裝置也越來越智能化。而這些裝置中,大多都用的是交流采樣。交流采樣的過程多數(shù)是:由系統(tǒng)二次回路來的電壓(或電流),經(jīng)過二次PT(或CT)等變送到A/D適合的電壓后,由CPU控制A/D以一定的采樣頻率進行模數(shù)轉(zhuǎn)換,獲得離散的采樣數(shù)據(jù),經(jīng)過離散傅立葉變換(DFT),計算出基波有效值及各次諧波值,進而實現(xiàn)其它功能。進行DFT計算過程如下:

          若每周期采樣N的離散采樣系統(tǒng),則其基波電壓(或電流)的有效值、實部有效值、虛部有效值分別為:

          其中 N——每周波的采樣點數(shù);

          Xn——第n個采樣數(shù)值。

          上述計算能準確表達有效值的條件是:每周波的N個采樣點是均勻分布在每個工頻周期內(nèi)。但在電力自動裝置中,采樣頻率多是由通過設(shè)置CPU定時器分頻系數(shù)來完成,該定時器的時鐘源是cpu系統(tǒng)的晶振決定,采樣頻率是固定的。但是,即使已經(jīng)按照準確的工頻頻率(50Hz)計算出符合上述計算要求的采樣頻率,由于電力系統(tǒng)的頻率是有變化的,而且在故障錄波裝置,繼電保護裝置產(chǎn)品的檢測中,也要考核在頻率變化情況下裝置的反應(yīng)情況,如:有關(guān)國家檢測標準中,要檢查錄波裝置在低頻條件下的反映情況。因此,按照固定的采樣頻率采集的數(shù)據(jù),計算結(jié)果也就難免出現(xiàn)誤差,因此就有可能引起測量精度的下降,或自動裝置的誤動作。

          1 頻率變化對計算值的影響

          此處的頻率既是指采樣頻率,又指電力系統(tǒng)的工頻,因為二者之一發(fā)生變化,都會影響采樣后有效值的計算。假定采樣頻率固定為1kHz(即對應(yīng)于50Hz信號為每周波20點采樣),信號的有效值為60V,對應(yīng)于有46~54Hz頻率的等幅值輸入量,引用公式(1)、(2)、(3)進行全周波付氏濾波進行計算,產(chǎn)生結(jié)果的相對誤差如表1所示。

          顯然,頻率的變化對計算有效值的影響較大。產(chǎn)生這一問題的原因就在于每周波的N個采樣點不是均勻分布在每個工頻周期內(nèi)。要解決這一問題,文獻[1]中給出了“參數(shù)自尋優(yōu)等間隔同步采樣法”。應(yīng)該說,對于慢速的儀表檢測裝置來說該方法是很合適的。但由于其計算過程比較復(fù)雜,且每周波的采樣點數(shù)及頻率都在變化,對于適時性要求高,離散采樣數(shù)據(jù)在后臺處理裝置(如:電力系統(tǒng)動態(tài)記錄裝置),就不能滿足要求。因此,在精度滿足要求的情況下,可只采用其中的一種方法:固定采樣點數(shù),根據(jù)單片機測量適時的工頻周期,適時調(diào)整采樣間隔。目前,有相當(dāng)部分電力自動裝置中采用Intel80C196單片機作為CPU,本文就以Intel80C196為例介紹實現(xiàn)采樣頻率跟蹤的方法。

          2 硬件電路構(gòu)成及實現(xiàn)原理

          考慮到系統(tǒng)的頻率不是變化很快,要實現(xiàn)采樣頻率隨系統(tǒng)工頻的變化而適時調(diào)整,可先測得系統(tǒng)的頻率前一周期對應(yīng)的計數(shù)值Tc(以單片機系統(tǒng)的定時器時鐘周期為單位,以下同),然后根據(jù)每周波采樣點數(shù)(N),適時計算出每一采樣間隔計數(shù)值Tsj:

          間隔計數(shù)值:

          則以Tsj為周期進行采樣,即可實現(xiàn)采樣頻率的適時跟蹤。為實現(xiàn)這一過程,擬采用如圖1所示的電路結(jié)構(gòu):來自母線電壓互感器的A相電壓經(jīng)過小PT降壓隔離、低通濾波,經(jīng)過零比較器整形成方波,經(jīng)光耦送到Intel80C196的高速輸入接口HSI.0,利用方波的上升沿觸發(fā)高速輸入中斷,測得每個工頻周期計數(shù)值Tc。經(jīng)過單片機的分析計算,經(jīng)式(4)得到采樣間隔時間Tsj。以Tsj為時間間隔,設(shè)置軟件定時器中斷。在軟件定時器中斷中進行數(shù)據(jù)采集控制等,完成采樣頻率的適時跟蹤。

          3 軟件流程

          在進行軟件設(shè)計時,應(yīng)當(dāng)充分利用80C196單片機的特點:高速輸入(HSI)接口及軟件定時器。前者用于整形后的方波上升沿檢測,用高速輸入中斷進行系統(tǒng)周期的測量。后者用于產(chǎn)生以計算出的適時采樣間隔Ts為周期的軟件定時器中斷,以進行A/D采集控制。

          軟件由兩部分組成:主程序、高速輸入(HSI)中斷程序及HS0軟件定時器中斷,流程圖見圖2~圖4。

          主程序主要完成初始化及其它應(yīng)用功能。在初始化時,應(yīng)當(dāng)設(shè)置采樣時間間隔的缺省計數(shù)值Td。主要用于因測頻用的電量不正常,不能正確測量電力系統(tǒng)的頻率時,使用該缺省值作為采樣間隔計數(shù)Tsc,即Tsj=Td 。該缺省值的計算方法可以參考下例:

          假定系統(tǒng)頻率為50Hz(即周期為20000μs);

          每周波的采樣點數(shù)為20點;

          80C196的系統(tǒng)晶振為16MHz,以定時器1作為時間基準,則計數(shù)周期為1μs,參見文獻[2]。

          則采樣點間隔的時間為:

          20000μs/20=1000μs

          采樣時間間隔的缺省計數(shù)值為:

          Td=1000μs/1μs=1000

          高速輸入中斷程序首先讀出當(dāng)前的高速輸入計數(shù)值Tnew,計算與上次計數(shù)值Told之差,獲得適時工頻周期Tc,再對Tc的數(shù)值范圍進行判斷,以確認該值的有效性。在判斷Tc的有效性,可參考如下方法:考慮一般系統(tǒng)的頻率波動范圍,如45~55Hz對應(yīng)Tc范圍及兩次測量值之差來確定(因為正常系統(tǒng)頻率不可能突變)。最后用(4)式并考慮進入中斷程序所需要的20個狀態(tài)周期,計算出適時采樣間隔時間Tsj。

          進入HS0軟件定時器中斷后,首先要做的是預(yù)置下次進入中斷的時間Tsj。然后進行A/D轉(zhuǎn)換的控制及其它需要每個采樣間隔所做的處理。應(yīng)當(dāng)指出的是,由于軟件定時器中斷優(yōu)先級高于高速輸入中斷,因此,采樣控制不會受到高速輸入中斷的影響。另外,此處A/D控制可以是80C196內(nèi)部的片內(nèi)A/D,也可以控制擴展A/D。視實際的需要而定。

          本文所提出的采樣頻率同步方法,已成功用于我們所開發(fā)的微機電力故障錄波器及RTU自動裝置中。錄波器中使用采樣頻率跟蹤的使用實測結(jié)果見表2。雖然比文獻[1]中的方法計算結(jié)果誤差大些,但全在一般裝置誤差允許范圍內(nèi)(<0.5%),能有效地抵消電力系統(tǒng)頻率變化對裝置測量精度的影響,因此,能夠滿足一般儀器裝置的要求。其具有跟蹤調(diào)整簡單,適時性強的特點,是一種比較實用的方法。采用其它CPU的自動裝置可采用類似原理來實現(xiàn)采樣頻率同步跟蹤。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();