娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月18日(星期三)

正在發生

2021年09月18日 | STM8學習筆記---ADC平均值采樣和有效值采樣算法分析

發布者:leader5 來源: eefocus關鍵字:STM  ADC 手機看文章 掃描二維碼
隨時隨地手機看文章

開關電源中,電流采樣是非常重要的。常用的電流采樣計算方法有平均值采樣法和有效值采樣法。現將這兩種電流采樣算法進行分析比較。


硬件連接示意圖

交流220V通過全橋整流濾波后變為直流310V,直流310V給后端負載供電,采樣電阻Rs串聯在直流回路的地線中。


當設備工作時,電流從整流橋正極流出經過負載,然后經過采樣電阻Rs回到整流橋負極。由于采樣電阻Rs的阻值很小,采樣電阻上的壓降只有零點幾伏,所以采樣電阻不會對負載造成影響。由于采樣電阻上的壓降很小,MCU不能直接使用,所以通過放大電路,將采樣電阻上的電壓放大到MCU能直接識別的范圍內,然后通過MCU上的ADC口直接讀取放大電路出來的電壓信號,就能計算出輸入電流值的大小。這樣只需通過一個采樣電阻同時結合軟件的算法,就能計算出電源輸入電流大小,簡化了硬件電路,節約了開發成本,同時又縮短了開發周期。


平均值采樣:

通過MCU的ADC輸入口,直接讀取采樣到的電壓值。將采樣到N個數據直接求算數平均值。


軟件流程如下:

圖2


程序開始采樣后,每采樣一次就累加一次采樣個數,當采樣個數小于N時,繼續采樣,當采樣個數大于N時,計算N個采樣值的累加和,再求出N個采樣數據的算術平均值。然后復位采樣個數計數器,繼續進行下一次采樣。這個平均值就可以用來計算當前電源輸入電流值。


采樣個數N的值根據不同的波形選擇不同的大小,選取原則是,要保證采樣的值至少要包含輸入電流波形的一個周期。這樣才能保證將波形中的最大值和最小值都能采樣到,計算出來的平均值才能更準確。


軟件核心代碼如下:


u16 get_ave( void )

{

    static  u8  cnt = 0;

    static u32 sum = 0;

    static u16 ave = 0;

 

    if( cnt < N)

    {

        sum += ReadVol_CH4();                 //采樣值累加和

        cnt++;

    }

    if( cnt >= N)

    {

        ave = sum / N;                                //計算算術平均值

        cnt = 0;

        sum = 0;

    }

    return ave;

}

采樣數據分析:

通過函數發生器產生一個幅度為0.2V--2V,頻率為100Hz的正弦波。用來模擬電源輸入電流波形,將函數發生器產生的正弦波直接送入MCU的ADC采樣端口。


用示波器觀察輸入波形入下圖所示:

圖3


由于MCU采樣的數據不好觀察,所以將ADC口采樣的數據通過串口發送出來,然后將數據繪制成曲線,通過觀察曲線的波動來判斷采樣值的穩定性。


MCU采樣數據及曲線如下圖所示:

圖4


MCU采樣的數據最大值為472,最小值為467。MCU的ADC分辨率為10位,可以計算出ADC的最大采樣值為2^10=1024。MCU為5V供電,可以計算出采樣值的電壓為


472/1024*5=2.3046875       467/1024*5=2.2802734375


通過計算可知ADC采樣值在2.28V到2.3V之間波動。


由圖3示波器上所測Vavg=2.22V可知,送入ADC口的波形平均值是2.22V,MCU通過平均值采樣計算出來的值在2.28V到2.3V之間。說明MCU計算的值基本準確。通過圖4中綠色的數據采樣波形也可以看出,MCU計算的平均值有輕微的波動。


將輸入波形幅度降低到0.5V--1.5V測試,輸入波形如下圖所示:

圖5


MCU采樣數據及曲線如下圖所示:

圖6


MCU采樣最大值為425,最小值為421,換算為電壓值為


425/1024*5=2.0751953125         421/1024*5=2.0556640625


MCU采樣值在2.05V到2.07V之間。由圖5示波器所測Vavg=2.02V可知送入ADC口的波形平均值是2.02V。可以看出,MCU采樣的值已經比較接近實際值了。通過圖6中綠色的數據波形可以看出,平均值波動比較小。


通過上面兩組測試對比可以發現,當ADC口輸入波形的幅值降低,MCU計算出來的平均值就比較接近輸入波形真實的平均值。


采樣時間分析:

MCU采樣一是要求準確性,二是要求實時性。也就是說不僅要采樣準確,而且要采樣速度快,能及時反應輸入電流變化。上面已經驗證了采樣的準確性,下來開始驗證采樣的實時性。由于MCU采樣的速度比較快,很難直接觀測到采樣一次需要多長時間,這里采用LED指示燈的亮滅來間接觀測ADC采樣一次需要的時間。LED亮--->采樣一次數據--->LED滅--->采樣一次數據--->LED亮--->采樣一次數據,這樣一直循環。每次采樣前讓LED指示燈的狀態變化一次,這樣LED燈從亮到滅,從滅到亮的過程中都是采樣了一次數據。然后用示波器觀察LED燈高低電平的時間,就可以間接的看出,采樣一次數據花費的時間了。相關代碼如下:


While(1)

{

    LED3 = 1;                    //LED 亮

    val = get_ave();               //采樣    

    LED3 = 0;                    //LED 滅

    val = get_ave();               //采樣

}


示波器測試LED波形如下圖所示:

圖7


通過示波器測量值可以看到 +wid=60us    -wid=59us 說明LED高電平時長為60us,低電平時長為59us。通過LED電平可以間接的看出,采樣一次數據MCU所耗費的時間為60us左右。


有效值采樣:

通過MCU的ADC輸入口,直接讀取采樣到的電壓值。將采樣到一個周期的數據求平方累加和,然后累加和求平均值,最后在開方。所求的結果就是均方根值,也就是有效值。


軟件流程如下:

圖8


程序開始采樣后,計時器開始計時,當計時時間小于T,就繼續采樣。當計時時間大于T時,結束采樣。然后將采樣值取平方,再求累加和,然后再將累加和進行開方運算。所求的值就是在采樣T時間內電流波形的均方根值,也就是有效值。這個有效值值就可以用來計算當前電源輸入電流值的有效值。


采樣時間T的值根據不同的波形選擇不同的大小,選取原則是,要保證采樣的值為輸入電流波形的一個周期。這樣計算出來的值就是周期均方根值,最接近輸入波形真實有效值。


軟件核心代碼如下:


u16 get_rms( void )

{

    static u16 ave_value = 0;

    u16 tem_time = 0;

    u8 cnt = 0, num = 0;

    u32 sum = 0, value = 0;

    u16 rms = 0;

 

    while( cnt <= T)                            //采樣一個周期

    {

        if( tem_time != time_cnt )

        {

            tem_time = time_cnt;

            cnt++;

        }

        value = ReadVol_CH4();

        sum += value * value;

        num++;

    }

    rms = (u16)sqrt( sum / num );                 //求均方根值

    ave_value = rms;

    return ave_value;

}


采樣數據分析:

通過函數發生器產生一個幅度為0.2V--2V,頻率為100Hz的正弦波。用來模擬電源輸入電流波形,將函數發生器產生的正弦波直接送入MCU的ADC采樣端口。


用示波器觀察輸入波形入下圖所示:

圖9


MCU采樣數據及曲線如下圖所示:

圖10


MCU采樣最大值為536,最小值為504。計算采樣電壓值為


536/1024*5=2.6171875               504/1024*5=2.4609375


通過計算可以看出,MCU采樣值在2.62V和2.46V之間波動。


由圖9示波器波形可以看出,輸入波形有效值Vrms=2.56V,MCU采樣計算出的有效值在真實的有效值上下波動,由圖10中綠色波形可以看出采樣值波動情況。


將輸入波形幅度降低到0.5V--1.5V測試,輸入波形如下圖所示:


圖11


MCU采樣數據曲線如下圖所示:

圖12


MCU采樣最大值為447,最小值為428。計算采樣電壓值為


447/1024*5=2.1826171875    428/1024*5=2.08984375


通過計算可以看出,MCU采樣值在2.18V和2.08V之間波動。


由圖9示波器波形可以看出,輸入波形有效值Vrms=2.15V,MCU采樣計算出的有效值在真實的有效值上下波動,由圖11中綠色波形可以看出采樣值波動情況。


通過上面兩組測試對比可以發現,當ADC口輸入波形的幅值降低,MCU計算出來的有效值精度無明顯變化,計算的有效值都在真實的有效值上下波動。說明有效值的計算不受波形幅值的影響。


采樣時間分析:

由于MCU采樣的速度比較快,很難直接觀測到采樣一次需要多長時間,這里同樣采用LED指示燈的亮滅來間接觀測ADC采樣一次需要的時間。LED亮--->采樣一次數據--->LED滅--->采樣一次數據--->LED亮--->采樣一次數據。每次采樣前讓LED指示燈的狀態變化一次,這樣LED燈從亮到滅,從滅到亮的過程中都是采樣了一次數據。然后用示波器觀察LED燈高低電平的時間,就可以間接的看出,采樣一次數據花費的時間了。相關代碼如下:


while( 1 )

{

    LED3 = 1;                    //LED 亮

    val = get_rms();                   //采樣  

    LED3 = 0;                    //LED 滅

    val = get_rms();                   //采樣

}


示波器測試LED波形如下圖所示:

通過示波器觀測可以看到 +wid=10.4ms    -wid=10ms  說明LED高電平時長為10.4ms,低電平時長為10ms。通過LED電平可以間接的看出,采樣一次數據MCU所耗費的時間為10ms左右。


結論:

通過上面平均值采樣和有效值采樣的分析對比可以看出。平均值采樣耗時比較短,采樣速度快,但是和輸入波形關系比較大,輸入波形幅度越小,采樣值與實際值誤差越小。有效值采樣耗時比較長,采樣速度慢,但是不受輸入波形幅度影響。


結合在實際項目中的應用經驗來看,若采樣的波形為直流或者畸變很小的交流,同時對系統的實時性要求比較高的情況下,可以考慮用平均值采樣法。若設備的運行環境比較復雜,輸入波形在不同的環境下會發生不同畸變,同時對系統的實時性要求不高的話,可以考慮用有效值采樣法。有效值采樣相當于計算的是輸入波形的面積,所以不論現場環境多復雜,輸入波形發生多嚴重的畸變。通過有效值采樣法計算出來的電流值,最接近真實值。所以在開關電源電路中用有效值采樣法計算的電流值比平均值采樣法計算的電流值穩定性要好。

關鍵字:STM  ADC 引用地址:STM8學習筆記---ADC平均值采樣和有效值采樣算法分析

上一篇:STM8 ADC轉換模式-------單次模式
下一篇:STM8單片機產生隨機數

推薦閱讀

? ?最近曝光的諾基亞五攝新機引起了廣泛關注,該機后置攝像頭數量達到了五顆。根據曝光的圖片,這五顆攝像頭呈六邊形排布,左右均為一顆,中間三顆呈豎形排布。  據Phone Arena報道,原計劃今年下半年發布的諾基亞五攝新機推遲亮相。  消息人士稱,配備五鏡頭的諾基亞五攝新機名為諾基亞9,已經開發了好幾個月,但是HMD認為這款設備還沒有達到理想...
第七屆上海FD-SOI論壇期間,芯原物聯網互聯平臺總監曾毅分享了題為《基于FD-SOI技術的低功耗物聯網技術》的主題演講。他表示,最近幾年物聯網增長很快,類似于智能家居這樣的短距離物聯網和智慧城市這樣的長距離物聯網,都有很多公司在做部署,基于WiFi、LPWAN或者藍牙等通信技術。 芯原物聯網互聯平臺總監曾毅 曾毅指出,近幾年物聯網芯片的價格在快速下...
STM32 在用JLink 調試的時候發現有一條將unsigned char賦值給int的語句始終不能執行,int類型變量的值始終為0;查資料找到這個問題是編譯器優化的原因,也就是說由于編譯器優化,賦值語句始終沒有執行;解決辦法:在變量聲明前加 volatile 修飾即可,這樣就能保證賦值語句不會被編譯器優化
歐洲的新車銷售狀況正在惡化當中。在幾個月前,歐洲的新車銷量曾經出現過小幅改善;但是 7、8 兩月的銷售表現,卻比深受新冠肺炎 (COVID-19) 疫情重創的去年同期還要來的更糟。在芯片短缺影響之下,眾多歐洲國家的新車銷售于 7、8 兩月都出現二位數百分比的衰退。歐洲汽車制造商協會 (ACEA) 在 16 日 (周四) 公布了最新統計數據,2021 年 7...

史海拾趣

問答坊 | AI 解惑

成都九洲迪飛招聘功放/天線/毫米波/DSP 設計工程師

技能改變命運,機會成就未來! 成都九洲迪飛招聘功放/天線/毫米波/FPGA 設計工程師 1、微波射頻設計高級工程師 (總工)         2名 無線電、微波或電磁場等相關專業畢業,具備扎實的微波理論基礎和產品 ...…

查看全部問答∨

這個課程設計報告書該怎么改?路過的請幫幫忙!!急...

:L :L 請前輩們幫我改下吧!還有那里面的設計心得該從哪方面寫?? 改過后發我郵箱吧xupenghui521@126.com 先謝謝了!…

查看全部問答∨

國賽 電源類討論

本帖最后由 paulhyde 于 2014-9-15 09:12 編輯 電設比賽要開始了,好像做電源類的討論的很少啊,大家都準備了什么模塊呀?  …

查看全部問答∨

急需!電設論文每年要求不一樣嗎?

本帖最后由 paulhyde 于 2014-9-15 09:26 編輯 電設論文每年要求不一樣嗎? 到現在都沒搞清。高手指點一下啊。  …

查看全部問答∨

關于2812 PIE中斷的問題

小弟正在學習2812,看的是《[email=TMS#@F]TMS320F[/email]2812原理與開發》這本書,看到PIE中斷例程時有如下問題: 1.初始化函數,如InitSysCtrl(),InitPieCtrl(),等函數在什么地方能看到; 2.PieCtrlRegs.PIEIFR1.all=(M_INT1|M_INT2|M_INT4|M_ ...…

查看全部問答∨

嵌入式linux,wince,wm下的WIFI驅動,BSP開發相關工作

目前有Marvell WLAN的8686(嶺儀電子是09模塊,海華也有相關模塊),8688(嶺儀是03模塊,海華是AW-GH381模塊,帶有藍牙)的DEMO板,支持 SPI,SDIO,UART,可直接飛到底板上驗證不同接口的傳輸性能,降低設計的風險,驅動調試好后,再做板,歡迎大 ...…

查看全部問答∨

activesync驅動無法安裝。

我使用自己定制的操作系統無法安裝驅動。 但是使用開發板自帶的nb0文件可以安裝驅動,并進行同步。 但是usb function 里的驅動usb串行的哪個serial 都燒進去了! 頁添加了Activesync組建。 Dhcp服務也打開。防火墻,殺毒軟件都關掉了。還是無法 ...…

查看全部問答∨

程序下載問題

我在EVC中下載程序,出現 cannot execute program問題,請問要怎么解決啊?哪位高手幫幫忙。。謝謝…

查看全部問答∨

有人轉讓TI C2000的開發板嗎?

本帖最后由 ddllxxrr 于 2016-1-7 17:13 編輯 有人轉讓嗎?就是TI 活動送的那款!~我想弄一個學習學習,前階段論壇有人贈送,但是最后也沒有申請到就沒消息了,看壇子里有沒有人閑置那塊板子!~ …

查看全部問答∨

build option

不太會寫啊&nbsp; 有人懂不…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 仪征市| 栾川县| 论坛| 柯坪县| 长治县| 达孜县| 台前县| 屯留县| 潍坊市| 西城区| 镇平县| 荣昌县| 故城县| 浏阳市| 兰坪| 横峰县| 金阳县| 榆树市| 海口市| 舟山市| 涪陵区| 左云县| 民县| 尼玛县| 大同县| 山阴县| 河间市| 察隅县| 肥乡县| 大丰市| 卫辉市| 青岛市| 桐城市| 咸丰县| 甘孜县| 玉树县| 辽阳县| 东山县| 潢川县| 咸丰县| 镇江市|