找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 677|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

請(qǐng)教STM32單片機(jī)測(cè)試交流電

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1107043 發(fā)表于 2024-9-10 15:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
各位大佬們。目前本人電路采用了ADS8689的AD采集芯片。目前測(cè)試的直流電壓都是可以的。在測(cè)試到交流時(shí)遇到了麻煩;
在測(cè)試交流時(shí),得到的AD值一直波動(dòng),用了目前用均值濾波,還是達(dá)到不了效果
請(qǐng)問有什么辦法么
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:344848 發(fā)表于 2024-9-10 20:30 | 只看該作者
測(cè)交流電通常使用真有效值芯片AD763,它在多款數(shù)字萬用表中得到應(yīng)用。
AD736.pdf (217.81 KB, 下載次數(shù): 8)
回復(fù)

使用道具 舉報(bào)

板凳
ID:267719 發(fā)表于 2024-9-11 09:26 | 只看該作者
可以直接用STM的ADC采集啊,1%精度還是可以滿足的。原理是每個(gè)20ms內(nèi)均勻采集64個(gè)點(diǎn)(每秒3200個(gè)adc),再多就要看MCU任務(wù)重不重了。根據(jù)這64個(gè)點(diǎn)計(jì)算RMS值(可以用均方根或FFT)。
回復(fù)

使用道具 舉報(bào)

地板
ID:628113 發(fā)表于 2024-9-11 10:14 | 只看該作者
有 一種電力系統(tǒng) 用的 專門的 [計(jì)量芯片] , 可以極為方便直接輸出轉(zhuǎn)換后的值, 接口 UART 或 SPI .
唯一問題是, 好像僅適用于 50HZ 工頻交流電。
例如:
HLW8110 / HLW8112
回復(fù)

使用道具 舉報(bào)

5#
ID:1034262 發(fā)表于 2024-9-11 11:54 | 只看該作者
使用20KHz采樣,采樣時(shí)間為20ms的整數(shù)倍,計(jì)算均方值。
回復(fù)

使用道具 舉報(bào)

6#
ID:1131713 發(fā)表于 2024-9-11 12:27 | 只看該作者
樓主既然測(cè)交流還不讓電流變動(dòng),那是要測(cè)什么呀,RMS? 這個(gè)是要采集的數(shù)據(jù)計(jì)算出來的,不是這個(gè)ADC直接采出來的
回復(fù)

使用道具 舉報(bào)

7#
ID:1107043 發(fā)表于 2024-9-11 17:32 | 只看該作者
感謝各位的解答。目前問題暫時(shí)解決,用的是EWMA濾波公式
把得到的ADC都減去零點(diǎn)值,取他們的平恒值
/**********************************濾 波**********************************************/
float alpha = 0.9;         // 初始濾波系數(shù)
float blpha = 0.9; // 初始第二次濾波系數(shù)
float min_alpha = 0.1; // 最小濾波系數(shù)
float min_blpha = 0.1; // 最小第二次濾波系數(shù)
float alpha_decay = 0.1; // 系數(shù)衰減步長
float blpha_decay = 0.1; // 第二次系數(shù)衰減步長

float filtered_value = 0, red_value = 0; // 初始化濾波值
float previous_value = 0; // 存儲(chǔ)上一個(gè)值,用于計(jì)算變化量

/************************************************************************/
// EWMA濾波公式
int process_integer_data(int new_value)  
{
        // 計(jì)算當(dāng)前值與上一個(gè)值的差異
        uint16_t change = fabs(new_value-previous_value);
        previous_value = new_value;
       
        // 動(dòng)態(tài)調(diào)整濾波系數(shù)
    if (change < 0.1) { // 假設(shè)小于0.01表示穩(wěn)定
        alpha = 0.09;
        blpha = 0.09;
    } else {
        alpha = 0.8; // 可以增加一些系數(shù)以便于快速響應(yīng)變化
        blpha = 0.8;
    }

    // 應(yīng)用濾波
    filtered_value = alpha * new_value + (1 - alpha) * filtered_value;
    red_value = blpha * filtered_value + (1 - blpha) * red_value;

        return (int)(red_value + 0.5); // 返回濾波后的值
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表