交流采样电路设计:从信号调理到有效值计算的工程实践

发布时间:2026/7/30 6:14:56
交流采样电路设计:从信号调理到有效值计算的工程实践 1. 从“测不准”到“测得准”交流采样电路的核心挑战在嵌入式硬件开发尤其是涉及电机驱动、电源监控、智能电表或者任何需要与市电“打交道”的项目里交流电压和电流的采样是绕不开的一道坎。很多新手工程师包括当年的我都曾天真地以为这不就是接个分压电阻、串个采样电阻然后扔给单片机的ADC吗结果往往是要么读数跳得跟心电图一样要么数值和真实值差了十万八千里甚至烧掉几个运放和ADC芯片。交流采样尤其是工频50Hz/60Hz信号的采样远没有直流采样那么简单。它涉及信号调理、隔离、抗干扰、相位补偿、有效值计算等一系列问题是一个典型的“麻雀虽小五脏俱全”的模拟电路设计挑战。今天我们就来彻底拆解一个可靠、实用的交流电压、电流采样处理电路。我不会只给你一个原理图让你照抄而是会结合我踩过的坑把为什么要这么设计每个元器件的选型考量以及如何从一堆杂乱的数据里提取出准确的电压、电流、功率值都讲清楚。无论你是正在做毕业设计的学生还是需要为产品增加电量监测功能的工程师这篇文章都能帮你构建一个清晰、可落地的设计思路。2. 需求定义与设计目标我们要测量什么在动手画原理图之前我们必须明确设计目标。交流电的测量目的不同电路的设计侧重点也完全不同。2.1 测量参数的定义对于正弦波交流电我们通常关心以下几个核心参数瞬时值某一时刻的电压或电流值。这是ADC直接采样的对象。峰值 (Vp/Ip)和峰峰值 (Vpp/Ipp)波形最大值和正负峰值之差。在评估器件耐压、计算绝缘时很重要。有效值 (RMS)这是最常用的参数等同于在相同电阻上产生相同热量的直流电值。家用的220V、110V指的就是电压有效值。功率计算也必须使用有效值。频率工频50Hz或60Hz。相位差电压和电流波形之间的相位差用于计算功率因数。我们的电路最终目标通常是获取电压和电流的有效值并计算有功功率、视在功率和功率因数。2.2 关键性能指标根据目标我们可以提炼出电路的设计指标测量范围电压是0-250VAC还是0-500VAC电流是0-5A还是0-20A这决定了输入级的分压比或互感器变比。精度要求1%还是0.5%的精度精度直接影响运放、ADC和基准源的选择以及PCB布局的严格程度。隔离需求采样电路是否需要与MCU系统进行电气隔离对于市电测量强烈建议隔离以保障人身和设备安全。隔离方式有光耦、隔离运放、隔离ADC等。带宽只需测量工频基波50Hz还是需要关注谐波如3次、5次可达数百Hz这决定了运放和滤波器的带宽要求。输出接口输出给MCU的ADC还是直接给专用的计量芯片如ATT7022EU、RN8302B这决定了信号调理电路的输出范围如0-3.3V。注意安全是第一位的。直接处理220V市电务必使用隔离方案并在调试时使用隔离变压器供电避免触电风险。3. 电压采样电路从高压到低压的安全转换交流电压采样核心思想是将高压按比例缩小到MCU的ADC可以安全测量的范围如0-3.3V。3.1 经典电阻分压网络这是最直接的方法。对于220VAC峰值电压约为311V。要将其缩放到3.3V以内需要很大的分压比。基础电路市电L --- R1 (例如 1MΩ) ------ V_out (至运放/ADC) | R2 (例如 3.3kΩ) | 市电N -------------------------- GND (模拟地)理论分压比V_out / V_in R2 / (R1 R2)。例如R11MΩ R23.3kΩ 分压比约为 1/303。220VAC * √2 (峰值) / 303 ≈ 1.03V。这正好落在运放可以处理的范围内。为什么这样选型R1的选择阻值必须足够大以限制流过分压网络的电流降低功耗和发热。1MΩ在220V下电流约0.22mA功耗约0.05W可以选用0805封装的贴片电阻。R2的选择与R1配合得到合适的分压比。同时R2的阻值不能太小否则运放的输入偏置电流会在其上产生不可忽略的误差电压。精度与温漂必须选用高精度如1%、低温漂如50ppm/°C的金属膜电阻。碳膜电阻的温漂和精度无法满足要求。耐压R1两端承受高压必须选择耐压足够的电阻。一个1MΩ 0805贴片电阻的耐压通常只有150V-200V直接用于220V峰值311V有击穿风险解决方案是将R1用多个电阻串联。例如用4个250kΩ 1%精度的电阻串联得到1MΩ每个电阻承受的电压峰值约为78V安全余量充足。3.2 电压互感器方案当需要强隔离或测量更高电压时电阻分压就不够安全了。这时需要使用电压互感器。工作原理类似一个小型变压器初级线圈接高压次级线圈感应出按匝数比降低的电压。例如220V/9V的电压互感器变比为24.4:1。优点天然电气隔离安全性极高。抗共模干扰能力强。可以将高压信号转换为低压信号且次级侧可以接地方便后续电路处理。缺点成本高体积大。存在相移互感器会引入一定的相位延迟在需要精确计算功率因数时必须进行校准补偿。非线性特别是在低输入电压时互感器的输出可能不是完美的线性关系。电路连接市电L ------ PT初级 ------ 市电N | | Fuse(保险丝) Varistor(压敏电阻)次级输出通常接一个负载电阻将电流信号转换为电压信号再经过运放调理。负载电阻的阻值需要根据互感器的额定电流和所需输出电压范围计算。实操心得选用电压互感器时务必查看其相位误差参数。对于功率计量应用应选择相位误差小于0.5°的精密型互感器。同时次级负载电阻必须精确稳定因为它直接影响了变比的准确性。3.3 运放调理与偏置电路无论是电阻分压还是互感器输出得到的都是一个以大地为参考点的双向交流信号有正有负。而绝大多数MCU的ADC只能测量0到Vref的正电压。因此我们需要一个电平移位电路将双向交流信号“抬升”到单极性正电压范围内。核心电路同相加法器这是最常用且性能良好的方案。我们利用运放将交流信号与一个固定的直流偏置电压通常是Vref/2相加。V_in (交流信号) --- R_in ------ 运放同相输入端() | R_g --- GND | V_bias (例如1.65V) --- R_b ---其中R_in R_bV_bias Vref / 2(如3.3V/21.65V)。运放接成电压跟随器或同相放大形式。工作原理 假设交流信号V_in是±1V V_bias1.65V。当V_in1V时同相端电压为 (1V 1.65V)/2 1.325V不对。这里需要计算。 实际上这是一个加法电路。运放同相端的电压由两个电压源通过电阻分压决定。为了简化通常让R_in R_b R_g这样运放输入阻抗很高计算可以简化。更常见的做法是使用双运放电路第一级做精密整流或衰减第二级做加法偏置。更实用的单运放偏置电路V_in --- R1 ------ 运放反相输入端(-) | R2 --- 运放输出端 | R3 --- GND | V_bias --- R4 - 运放同相输入端() --- R5 --- GND通过精心匹配R1, R2, R3, R4, R5的阻值可以同时实现增益调整和电平偏置。但计算复杂。我最推荐的简洁方案前级衰减/跟随先用一个运放A1接成电压跟随器缓冲来自分压网络的高阻抗信号。如果需要放大也可在此级设置增益。后级加法偏置再用一个运放A2构成一个标准的反相加法电路。输入信号通过一个电阻Rf1接到反相端。偏置电压V_bias通过另一个电阻Rf2也接到反相端。反相端通过电阻Rg接地。输出V_out -[(Rf/Rg)*V_in (Rf/Rbias)*V_bias]。通过选择RfRbias并使增益为-1可以得到V_out -V_in V_bias。这样当V_in在±1V变化时V_out就在(V_bias1V)到(V_bias-1V)之间变化。只要让V_bias1.65V输出范围就是0.65V~2.65V完美适配3.3V ADC。运放选型关键输入输出范围必须选择轨到轨输入输出的运放以确保在单电源如0-3.3V供电下能处理接近电源轨的电压信号。带宽运放的单位增益带宽应远高于信号频率。对于50Hz信号几MHz的带宽足够了但要考虑运放建立时间对采样精度的影响。失调电压与温漂选择低失调电压、低温漂的精密运放如TI的OPA333零漂移运放、AD8605等。4. 电流采样电路小信号与大挑战电流采样比电压采样更棘手因为我们需要测量的是一个串联在负载回路中的小阻值电阻采样电阻上的压降这个信号通常很微弱毫伏级且共模电压可能很高。4.1 采样电阻方案低侧/高侧采样这是最直接的方法利用欧姆定律V I * R_sense。1. 低侧采样将采样电阻R_sense放在负载和地之间。电源 --- 负载 --- R_sense --- GND | V_sense (测量点)优点电路简单测量的是对地的电压可以直接用普通运放放大。致命缺点破坏了地电位的统一性。负载的地不再是系统的“干净地”负载电流会在R_sense上产生压降导致负载地电位浮动可能干扰负载本身的正常工作。不适用于需要共地的精密电路或电机驱动桥臂电流测量。2. 高侧采样将采样电阻R_sense放在电源和负载之间。电源 --- R_sense --- 负载 --- GND | V_sense (测量点)优点保持了负载接地的完整性是工业上的主流方法。挑战V_sense测量点是一个叠加在电源电压可能是几十甚至几百伏上的微小差分信号几十毫伏。我们需要测量这个微小差值而运放的共模输入范围必须能承受这个高共模电压。普通运放无法胜任。高侧采样的解决方案专用电流检测放大器如TI的INA系列INA180, INA240、ADI的AD8210等。这类芯片内部集成了精密匹配的电阻和运放共模输入范围很宽可达几十伏专门用于放大采样电阻上的微小差分电压并以对地参考的电压输出。这是最简单、最推荐的方案。电源 --- R_sense --- 负载 | | INA240 (V 接电源侧 V- 接负载侧) | V_out (0-3.3V 送至ADC)INA240还具有增强的PWM抑制功能非常适合在电机驱动等噪声环境中使用。差分放大器电路使用一个精密运放和4个匹配电阻搭建仪表放大器或差分放大电路。这对电阻的匹配度要求极高0.1%或更好否则共模抑制比会很差导致测量不准。自己搭建的性价比和性能通常不如专用芯片。隔离运放/隔离ADC如TI的AMC1300/AMC1100系列。这是高安全性、高性能的方案。AMC1300将高侧的差分信号调制后通过电容隔离屏障传输到低侧并解调输出。它既能测量微小差分信号又能提供高达数kV的电气隔离。高侧电源 --- R_sense --- 负载 | | AMC1300 (输入侧) --- (电容隔离屏障) --- 低侧 AMC1300 (输出侧) --- V_out --- MCU_ADC这是智能电表、变频器中的标准方案。AMC1300输出是调制后的数字流需要外接滤波器才能得到模拟电压或者直接使用其数字输出型号。4.2 电流互感器方案当电流很大几十安培以上或者需要完全非接触式测量时使用电流互感器。工作原理被测导线穿过CT的磁芯作为初级线圈1匝。次级线圈绕有多匝感应出与初级电流成比例的电流。在次级接一个采样电阻将电流转换为电压进行测量。I_primary / I_secondary N_secondary / N_primary。优点完全电气隔离安全性最佳。几乎不增加主回路损耗。易于测量大电流。缺点只能测量交流无法测量直流分量。存在相移和非线性精度通常不如采样电阻方案。有饱和风险如果初级电流过大或含有直流分量会导致磁芯饱和输出失真。体积较大。使用要点次级必须接负载电阻严禁开路CT开路会在次级产生极高的危险电压。采样电阻选择根据CT的额定输出电流如5A/1mA和所需输出电压范围计算。例如100A:5A的CT次级额定电流5A。若想得到1V电压则采样电阻R 1V / 5A 0.2Ω。但实际使用时电流远小于额定值电阻需要重新计算。相位补偿和电压互感器一样需要校准相位误差用于功率计算。5. 信号链的最后一环滤波、ADC与软件处理经过前级的调理我们得到了0-3.3V范围内的、带有直流偏置的交流电压信号。但这还不够直接采样会引入很多噪声。5.1 抗混叠滤波根据奈奎斯特采样定理ADC的采样频率必须大于信号最高频率的两倍。工频50Hz其谐波可能到几百Hz。假设我们关心13次谐波650Hz那么采样频率至少需要1.3kHz。但实际上为了获得更好的波形我们通常以更高的频率如1-10kHz采样。然而环境中存在大量的高频噪声开关电源噪声、射频干扰等。如果这些噪声频率高于采样频率的一半就会被“折叠”到低频范围内造成无法消除的混叠失真。因此在ADC之前必须加入一个抗混叠低通滤波器。设计要点截止频率通常设置为感兴趣的最高信号频率的2-5倍。例如关心650Hz截止频率可设为1.5kHz - 3kHz。滤波器类型最常用的是二阶有源低通滤波器如Sallen-Key拓扑它比简单的一阶RC滤波器具有更陡的滚降特性能更有效地抑制高频噪声。运放选择选择带宽足够、噪声低的运放。5.2 ADC的选择与采样策略ADC关键参数分辨率12位ADC有4096个码值对于3.3V量程理论分辨率是0.8mV。这对于电压采样可能够用但对于毫伏级的电流信号分辨率可能不足。考虑使用16位ADC如ADS1115或Σ-Δ型ADC如AD7705。采样率需满足奈奎斯特定理并留有余量。输入类型单端输入或差分输入。对于来自电流检测放大器的信号使用差分输入可以更好地抑制共模噪声。Σ-Δ型ADC的优势如AD7705、AD7124。它们通过过采样和数字滤波能轻松达到16-24位的高分辨率并且内置可编程增益放大器能直接放大微小信号。其强大的数字滤波能力也部分替代了硬件抗混叠滤波器。对于高精度、低速如工频测量应用Σ-Δ ADC是绝佳选择。采样策略——同步采样 为了精确计算功率P UI cosφ必须同时刻采样电压和电流的瞬时值。如果使用两个ADC通道轮流采样会引入时间差导致相位测量误差。解决方案使用带多路同步采样保持器的ADC。使用多片ADC由同一个采样时钟触发。软件补偿如果采样率足够高远高于信号频率轮流采样的时间差造成的相位误差很小可以忽略或通过软件校准。5.3 软件算法从离散采样点到有效值ADC得到的是离散的瞬时值序列。如何得到RMS值1. 真有效值计算对于周期为N个采样点的序列真有效值公式为RMS sqrt( (1/N) * Σ (x[i]^2) )其中x[i]是第i个采样点的瞬时值减去直流偏置后的值。切记要先减去直流偏置即V_bias对应的ADC码值否则计算的是包含直流分量的“绝对有效值”。2. 均方根法的实现要点整周期采样最好采样整数个信号周期否则会因截断误差导致计算不准。可以通过过零检测来同步或者采样足够多的点数如10个周期来平均掉非整周期误差。平方运算注意防止数据溢出。对于12位ADC最大值4095平方约16.7M在32位整数范围内是安全的。开方运算可以使用单片机库函数或使用快速整数开方算法。3. 功率与功率因数计算有功功率P (1/N) * Σ (u[i] * i[i])其中u[i]和i[i]是同一时刻的电压、电流瞬时值已去偏置。视在功率S U_rms * I_rms。功率因数PF P / S。4. 校准没有电路是理想的。必须通过软件校准来消除增益误差和偏移误差。偏移校准在输入短路电压/电流为零时读取ADC输出值记为Offset。后续所有采样值减去此偏移。增益校准施加一个已知的、精确的标准信号如100VAC 5AAC读取ADC计算出的RMS值与标准值比较得到增益系数Gain 标准值 / 测量值。后续所有测量值乘以这个增益系数。6. 实战案例基于STM32与AMC1300的隔离式交流采样模块让我们整合以上所有知识设计一个实际的电路。目标测量220VAC电压和0-10AAC电流隔离安全精度优于1%。系统框图市电输入 --- 电压采样电阻分压隔离运放 --- 低通滤波 --- STM32 ADC | 电流采样CT采样电阻隔离运放 --- 低通滤波 --- STM32 ADC详细设计6.1 电压采样通道输入保护与分压市电L/N先经过保险丝和压敏电阻进行过流和过压保护。然后使用4个270kΩ 1206封装 1%精度的贴片电阻串联再与一个1.5kΩ电阻分压。分压比 1.5k / (270k*4 1.5k) ≈ 1/721。220VAC峰值311V / 721 ≈ 0.43V。这样设计留有较大余量防止电网电压波动如10%导致信号饱和。隔离与调理分压后的信号送入AMC1300L25隔离运放增益固定为8。AMC1300输入侧由一个小型隔离DC-DC模块如B0505S供电。AMC1300输出为±0.25V * 8 ±2V的差分信号。为了匹配STM32的3.3V单端ADC需要后级电路。差分转单端与偏置使用一颗零漂移运放OPA333搭建差分放大电路将AMC1300输出的差分信号转换为单端信号并叠加1.65V偏置。设计增益为0.75使±2V输入变为±1.5V输出叠加1.65V后输出范围0.15V~3.15V完美匹配STM32的ADC输入范围。抗混叠滤波在OPA333输出后加入一个截止频率为2kHz的二阶Sallen-Key低通滤波器。6.2 电流采样通道电流互感器选用100A:50mA的穿心式电流互感器。次级额定电流50mA。采样电阻为了得到较大的信号电压同时不使CT饱和在次级接一个20Ω 0.1%精度的功率电阻。当初级电流为10A时次级电流I_s 10A * (1/2000) 5mA变比100A:0.05A2000:1。采样电阻压降V_s 5mA * 20Ω 0.1V。这是一个较小的信号。隔离放大将V_s送入另一片AMC1300L05增益固定为8。0.1V输入被放大到0.8V差分输出。后续电路与电压通道类似使用OPA333进行差分转单端和偏置。设计增益为1.5使±0.8V输入变为±1.2V输出叠加1.65V后输出范围0.45V~2.85V。6.3 MCU与软件MCUSTM32F103使用其两个ADC通道分别采样电压和电流信号。采样率设置ADC定时器触发采样率为4kHz每个通道。同步虽然两个通道是顺序采样但由于4kHz采样率远高于50Hz两个通道采样间隔125us导致的相位误差仅为360° * 50 * 125e-6 2.25°。对于1%精度的功率测量这个误差在可接受范围内。如需更高精度可使用STM32的ADC双模式进行同步采样。软件流程ADC通过DMA循环采集填充两个大数组如各存储800个点对应10个周期。主循环中检测电压通道的过零点找到整数个周期数据的起始和结束位置。对这两个数据段分别减去各自的直流偏置通过校准获得。分别计算电压、电流的RMS值。计算每个点的瞬时功率然后求平均得到有功功率。计算视在功率和功率因数。通过UART或LCD输出结果。调试与校准偏移校准将电压输入短路L/N短接电流输入开路无电流读取两个通道ADC的稳定值记录为V_offset和I_offset。增益校准使用一台可调交流源和标准功率计。施加220V 5A 功率因数1.0的负载。读取ADC计算出的电压、电流、功率值。分别计算V_gain 220.0 / V_measuredI_gain 5.0 / I_measuredP_gain (220*5) / P_measured也可用V_gain和I_gain的乘积来校准功率。 将这些增益系数存入STM32的Flash中。踩坑记录AMC1300的电源滤波AMC1300对电源噪声敏感输入和输出侧的电源引脚必须紧挨芯片放置10uF钽电容和0.1uF陶瓷电容进行去耦。否则输出噪声会很大。PCB布局模拟部分分压电阻、运放、滤波器和数字部分MCU的地要分开布局通过单点连接。电流采样回路面积要最小化以减少噪声耦合。CT的线性区确保被测电流在CT的线性范围内。如果初级有直流分量需选择抗直流饱和的CT或在磁芯上开气隙。这个方案综合了隔离安全、精度尚可和成本可控的优点经过实际项目验证能够稳定可靠地工作。它涉及了从传感器选型、模拟信号调理、隔离技术到数字采样和软件算法的完整链条是掌握交流采样技术的一个很好的综合性实践。