• 投稿

同步采样与真有效值计算

225
0
2026-10-09 08:22:28
5
投币
15
1
把“同步采样”从一个抽象概念,落到三个真实工程中:SPWM逆变电源的一次电压检测、阻抗测试仪的幅度测量,以及市电谐波分析。它们使用不同的ADC和信号处理方法,但共同目标都是获得准确的真有效值和频谱结果。 三个场景看似不同,本质却是同一个问题。ADC并不知道它采到的是正弦波的哪一段,也不知道窗口结束时是否停在信号的整数周期上。如果窗口边界停在半个周期或零点几个周期处,后面的RMS和DFT计算就会把“窗口截断”误认为真实信号特征。 同步采样不是要求ADC采样频率等于信号频率,而是要求整个采样窗口包含整数个信号周期。例如两周期、十周期都可以;但两点七周期不行。剩下的零点七周期,在数字处理中相当于把两个不相连的波形端点拼接起来,这就是后续误差和泄露的来源。 DFT并不是直接“测量真实频率”,它是在我们给定的时间窗上展开基函数。窗口越长,频率分辨率越细。比如50赫兹信号、500赫兹采样率。如果采20点,窗口就是40毫秒,正好包含两个周期;此时50赫兹正好落在DFT的第2条谱线上,频率分辨率25赫兹。 频谱泄露不是说信号能量突然变多,而是观测窗的端点不再连续。DFT会默认窗口首尾能够循环衔接,当首尾接不上时,就等价于在信号中加入了截断误差。结果是原本集中在50赫兹的能量,被分散到周围多个频点上,还可能污染邻近的谐波量。 请看两组采样结果。第一种采20点,窗口长度40毫秒,正好包含两个50赫兹周期。第二种采27点,窗口长度54毫秒,只包含两点七个周期。两者只相差7个采样点,但窗口边界条件完全不同,因此后续频谱结果也完全不同。 频谱图可以更直观地看到同步的作用。20点窗口的频率分辨率是25赫兹,50赫兹正好落在第2条谱线上。27点窗口的频率分辨率约为18.52赫兹,50赫兹位于相邻谱线之间,因此能量会向附近频点扩散。通过相位谱阈值化后,可以看到显著频率量仍然集中在真实的50赫兹附近。 真有效值并不是简单地对ADC数据“平方、平均、开根号”。这个公式成立的前提是积分或求和窗口能够代表完整周期。窗口截断产生的人为跳变,会被平方运算放大,最终变成有效值偏差。因此,即使输入是理想正弦,只要采样窗不是整数周期,RMS仍可能产生明显误差。工程计算前还要先减偏置、做标定。 第一个案例是SPWM逆变电源的一次电压检测。SPWM电压中存在明显的开关纹波,如果采集板自由运行,就可能随机采到开关周期的前半段或后半段,RMS结果会出现周期性抖动。因此,主控板在每次PWM到达固定相位时,通过光耦发送同步信号,让采集板从相同相位开始采样,再采整数个基波周期进行计算。 本页是信号板的完整同步采样计算流程。第一步,信号板用CCP捕获光耦过来的同步信号,测出当前信号周期。第二步,按照PWM信号的同步相位,控制定时器启动,按设定采样率自动触发ADC转换,DMA自动把转换结果搬进缓存。第三步,主循环通过查询DMA count寄存器的变化,掌握已存入的数据量并读取缓存数据。第四步,根据同步周期和ADC采样率fs计算取数长度,N等于round(乘),保证取到整数个信号周期。第五步,取满N点后统一计算RMS 第二个案例是阻抗测试仪。DAC输出的1.5千赫正弦并不是孤立存在的,传感器输出的幅值计算必须与这个激励保持确定的相位关系。如果DDS使用一套时钟,ADC使用另一套时钟,即使两者标称频率都是1.5千赫,实际相对相位也会缓慢漂移。对于纯阻性测量,RMS能够给出幅值;若要得到复阻抗,则还需要电压、电流的相位差。 推荐做法是让DDS、DAC触发和ADC触发共用同一个MCU时钟。在更新DDS相位寄存器或相位清零时,同时复位ADC触发定时器。开始测量前,可以先丢弃前几个周期,等待传感器和模拟调理电路稳定。本例采样率为240千赫、激励频率1.5千赫,每个周期正好160个采样点,采8个周期需要1280点,窗口严格包含整数个激励周期。 第三个案例是市电电能质量分析。标称频率是50赫兹,但实际电网频率允许有一定的偏差。如果我们固定用200毫秒窗口,在50赫兹时刚好是10个周期;但如果实际频率变成49.8赫兹,这段时间就不再是整数周期。此时各次谐波会相互泄露,导致基波、谐波和THD计算出现偏差。因此必须使用CCP频率跟踪、PLL、可变点数或数字重采样。 三个案例的同步对象不同,但工程思想一致。SPWM需要找到PWM的固定相位;阻抗仪需要让DDS和ADC共享相位零点;市电分析需要跟踪实际基波频率。也就是说,我们同步的并不只是“频率数值”,而是采样窗口与信号周期之间的整数倍关系。
深耕工控与物联网,分享软硬件实战开发经验
客服
顶部
赛事库 课堂 2021拜年纪