☰
利用LC滤波器移相实现自振荡D类功放:解决EMI与环路稳定
2026/10/23 9:36:05 网站建设 项目流程

做D类功放这么久,我最大的感触是:很多人把LC输出滤波器当成一个“纯滤波元件”,却忽略了它在开关频率附近贡献的移相,这恰恰是决定整个方案成败的关键。今天分享的这套基于LC滤波器移相的D类功放方案,核心思路不是去千方百计补偿这个相位,而是把LC的相移特性直接变成自振荡环路的一部分。适合正在折腾分立D类、又对固定PWM调制器和EMI头疼的玩家参考。

先说明白这个方案解决了什么问题。常规固定频率PWM的D类功放,需要高频三角波发生器、比较器和一套复杂的补偿网络,而且LC滤波器的相位滞后经常让反馈环路变得很不稳定。我的做法是把LC滤波器纳入闭环,让它在开关频率附近提供的接近-180°相移直接参与自激振荡,这样省掉载波发生器,开关频谱摊开,EMI压力小很多,音频带内的失真和电源纹波抑制也能做得更好。

1. 从固定PWM到自振荡:LC移相从“麻烦”变成“资产”

1.1 传统方案里LC滤波器为什么总在帮倒忙

大多数入门级的D类功放设计都倾向于固定频率PWM调制:一个高频三角波作为载波,音频信号和三角波通过比较器得到PWM脉冲,驱动功率管,后面再接一级LC低通滤波器把开关频率和它的谐波滤掉,剩下放大后的音频信号。这种结构看着直接,实际做起来有一个隐蔽的矛盾——LC滤波器是有移相的。

二阶LC低通滤波器在音频带内(比如20kHz以下)相位滞后还不大,但到了开关频率附近,它的相位会急剧地从0°往-180°方向走。如果你把反馈取样点放在LC滤波器的输出端,那么LC的移相就进入了整个环路。环路穿越频率附近突然多出这么一段陡峭的相位下降,相位裕度会被吃掉大半,系统的稳定性就很难保证。

所以很多工程师为了省事,把反馈点放在功率级输出、LC之前,只闭环功率级,LC的谐振峰和电感饱和带来的问题全靠外部阻尼电阻硬扛。结果就是:音频带内的失真做不到很低,负载从8Ω换成4Ω时高频响应明显变化,EMI也不理想。这是固定PWM方案中LC滤波器“帮倒忙”的典型表现。

另一个麻烦点是固定PWM的频谱。载波和调制边带能量高度集中在开关频率附近,EMI设计要花很大功夫去压低这个尖峰。输出滤波器的网孔、PCB布局、屏蔽都要为这个窄带尖峰额外优化。

1.2 自振荡调制:把相位滞后放进环路里用

我们这个方案的思路完全反过来:既然LC滤波器天然在带外提供接近-180°的相位滞后,那就不去补它,而是利用它来构成自振荡调制。

所谓自振荡D类功放,翻译成大白话就是:不外加三角波发生器,整个功率级、LC滤波器和反馈网络本身就构成一个振荡器。振荡产生高频方波,这个方波经过LC滤波回到输出,再由反馈网络送到输入端的误差放大器,和音频信号比较。音频信号通过积分器的调制作用改变方波的脉宽,于是输出端得到的就是携带音频信息的PWM波,再被LC滤出。

这里最关键的就是“LC滤波器移相”这个物理现象。在闭环环路中,积分器本身在中高频提供一个接近-90°的相位滞后;LC在开关频率附近再补上-120°到-160°的相位;这样总相位就逼近-180°到-250°,加上比较器翻转时的非线性相位,环路满足自持振荡的相位条件。振荡频率由LC参数和环路增益共同决定,而不是某个外部晶振或三角波发生器。

这样做的好处是实打实的:省掉了三角波发生器和相关电路;开关频谱的能量被分摊在一个较宽的频段内,EMI峰值明显下降,滤波和屏蔽压力小很多;环路的音频带宽可以做高,反馈对电源纹波、输出级死区效应和LC非线性的抑制能力更强。缺点自然也有——开关频率不固定,对LC和功率管的选型要求更细致,调试时需要更多耐心。关于这部分我放到后面实测章节里细说。

2. LC滤波器的移相到底怎么算:从公式到工程参数

2.1 二阶低通滤波器的相位表达式与三段式规律

要利用移相,首先得会算移相。单电感L和高频电容C组成的二阶低通滤波器,等效电路就是经典的RLC串联到负载,传递函数写成:

H(s) = 1 / (1 + s/(ω0·Q) + s²/ω0²)

其中 ω0 = 1/√(LC),Q = R·√(C/L),R是负载等效电阻。

相位表达式,我习惯按三段口诀来速算:

  • 当 f 远小于 fc:相位约等于0°,电容的作用可以忽略。
  • 当 f = fc:相位严格等于-90°,这个点和Q值无关,很便于记忆和使用。
  • 当 f 远大于 fc:相位趋近于-180°,但永远不会完全到-180°。

在远离截止频率的高频段,更精确的计算式可以写成:

φ ≈ -180° + arctan[ (f/fc) / (Q·((f/fc)² - 1)) ]

这个公式看起来有点吓人,实际用起来很有用。它说明:相位接近-180°的快慢取决于比值 f/fc 和 Q 值。Q越高,相位靠近-180°越慢;Q越低,相位越早在比值较高时贴近-180°。

举例:如果 f/fc = 4、Q = 0.7,那么相位大约在 -159°;如果 f/fc = 8、Q = 0.7,相位就到 -169°左右。如果Q升到1.5,同样在 f/fc = 4 的位置,相位大约只有 -152°。

这三个口诀和上面的公式,是我做自振荡D类时反复用的基础。每当要判断某个LC参数在目标开关频率处能不能给出足够的相移,我都会先按 fc 和 Q 快速估算,再上仿真确认。

补充一句:上面说的Q是带载状态下的Q。空载时R趋近无穷大,Q也跟着升高,相位特性在带外会变得更“陡峭”一些,这是后面第6节要聊的坑的来源。

2.2 截止频率、Q值与目标开关频率的匹配

设计一个自振荡D类功放,第一步不是选LC,而是先确定目标开关频率范围。我习惯把目标定在200kHz到400kHz之间。低于200kHz时,音频带宽内做高环路增益的空间会被压缩,LC的体积往往也更笨重;高于400kHz时,栅极驱动损耗、开关损耗明显上升,对驱动器和比较器的速度要求也变高,散热设计难度增加。

定了开关频率范围,再倒推LC截止频率。为了让LC在开关频率附近贡献足够的相位滞后,同时又不至于让音频带内响应出现明显衰减和峰值,fc一般取目标开关频率的1/4到1/5。假如目标开关频率250kHz,那fc就取50~60kHz。这个比例下,LC在开关频率处大约能贡献-155°~-165°的相位。相位太少不够起振裕量,相位太接近-180°则可能让振荡频率偏离设计点太多,留一点点余量比较好。

Q值的工程选择要照顾两个矛盾。Q偏高(比如1.0以上),在fc附近会出现幅度谐振峰,20kHz内的频响会翘起来,反馈环路要额外费劲去压平;Q偏低(比如0.4以下),相位虽较早接近-180°,但LC阻尼偏大,音频段损耗和功率管的电流应力增加。我的经验是把额定负载下的Q控制在0.6~0.9,正好在临界阻尼上下。

2.3 一个具体参数验算过程

拿我最近搭的这版方案来说,电源用单24V,BTL全桥输出,额定负载先按8Ω设计。

我选了L=22µH、C=0.33µF,先验算fc:

fc = 1/(2π√(22e-6 × 0.33e-6)) ≈ 1/(2π × 2.69e-6) ≈ 59kHz

再算8Ω负载下的Q:

Q = 8 × √(0.33e-6 / 22e-6) = 8 × 0.122 ≈ 0.98

这个Q接近1,稍偏高,8Ω下有一点轻微尖峰,但通过闭环环路增益可以压住。4Ω负载时Q会降到0.49左右,阻尼变大,大信号下低频响应会稍微变软,实际测试下来4Ω时把输入电平略降,听感没有明显变差。

然后验算目标开关频率250kHz处的LC相位:f/fc = 250/59 ≈ 4.24,Q=0.98,代入高频段公式:

φ ≈ -180° + arctan[4.24 / (0.98 × (4.24² - 1))] ≈ -180° + arctan[4.24 / 16.05] ≈ -180° + 14.8° ≈ -165.2°

LC在开关频率处给出约-165°的相位。加上积分器在中高频的约-90°,总相位约-255°,等效到负反馈系统里就是约+75°的“余角”,这个角度配合比较器非线性翻转,足以维持自振。

选电感时要注意饱和电流。这版方案在4Ω负载下峰值电流能达到5A以上,22µH的磁环电感如果额定饱和电流不到6A,大信号时感值会明显跌落,开关频率和相位特性都会跟着漂。所以我后来换成了能过8A饱和电流的铁硅铝磁环,体积大一圈但参数稳。

3. 方案整体架构:谁负责“移相”,谁负责“起振”

3.1 环路信号流与各模块职责

整套方案的结构说简单也简单,可以拆成几个模块:输入缓冲与误差积分器、高速比较器、栅极驱动与全桥功率级、LC输出滤波器、反馈取样网络。信号走向是这样的:

音频信号输入经过缓冲后进入误差积分器;输出端LC之后的电压也通过反馈网络回到积分器;积分器把两个信号的误差进行积分放大;积分器输出送到比较器;比较器输出方波;方波经栅极驱动控制全桥功率管;全桥输出方波经过LC滤波器变成模拟音频信号驱动负载。

这里每个模块分工明确:

  • 误差积分器的角色是“平均与放大”。它负责把输出反馈和输入信号之间的差值积分起来,同时对高频开关纹波进行平均,从而决定占空比。
  • 比较器的角色是“翻转与整形”。它把积分器的缓慢变化电压转成陡峭的方波。为了让翻转干净快速,通常加一点正反馈形成滞回,避免在阈值附近抖动。
  • LC滤波器在这里有两个身份:既是对外的音频低通滤波器,又是环路里的移相网络。它的相移特性决定了自振荡能否成立,所以选型要按第2节的公式来。
  • 反馈取样网络把LC输出端的高频方波衰减到合适的电平送回积分器,同时提供足够的环路增益来压低失真。

3.2 积分器和比较器的参数选取

误差积分器我用了一个高速音频运放,单位增益带宽要远高于开关频率。为什么强调这个?如果运放在开关频率附近增益已经跌落,它自己就会贡献多余的极点,环路分析和实测对不上。建议选GBW在10MHz以上、压摆率足够的运放,不要用普通音频运放去硬扛。

积分电容和输入电阻的取值直接影响环路增益和开关频率。一个粗略的设计起点:反馈取样电阻取10kΩ,积分电容取220pF,那积分器在开关频率250kHz处的增益大约为1/(2π×250k×10k×220p) ≈ 0.29,也就是-10.7dB左右。这个增益大小不能太大,否则会把比较器输入端的开关纹波也放大,导致调制不稳定;也不能太小,否则环路增益不够。

比较器我用的是带滞回的方案。滞回宽度决定了比较器翻转点的差值,会影响自振荡频率和调制增益。一开始我把滞回做得很窄(几毫伏),结果发现开关频率受噪声影响抖动非常明显;后来把滞回加宽到几十毫伏,再把反馈分压比微调一下,稳定性立刻好了很多。

这里有个我反复踩的坑:比较器输入端的噪声和纹波一定要先滤干净再判断阈值。很多自振荡D类“吱吱”响、频率乱飘,问题不在LC,而在比较器前端没有滤掉高频毛刺。方法是在比较器反向输入端对地加一个小电容(10~33pF),稍微慢一点点,但换来的是干净的翻转。

3.3 功率级与LC元件的选型思路

功率级我用了BTL全桥:两个半桥分别驱动LC,负载跨接在两个输出电感之间。相比单端半桥,BTL的优势是电源利用率高出一倍,而且两个半桥的共模开关噪声可以在负载上大部分对消,因此我的LC只用了两个电感和跨接电容,没有额外的大电容耦合问题。

MOSFET的选择主要看三个指标:开关速度、栅电荷和导通电阻。BTL结构里每个半桥只有一个高边和一个低边,但高频自振荡下栅极驱动损耗不容小觑。我实测过某款低栅电荷的MOSFET在250kHz下整体损耗明显低于大电流工业管,宁可多花一点钱在栅电荷小的管子上。驱动部分选带内置死区和欠压锁定的半桥驱动器,死区时间先按80ns起步。

LC的选型前面已经说了大部分。再补充一点:LC滤波电容一定不要用普通陶瓷电容。X7R、Y5V这类介质的电容在开关纹波电流下会发热、容量漂移,而且等效串联电阻不理想。我用的是C0G/NP0陶瓷电容或聚丙烯薄膜电容,容差控制在±5%以内。电感用铁硅铝或铁氧体磁环,注意绕组直流电阻尽量低,大电流下不要饱和。

4. 仿真先行:在电路仿真软件里把自振荡“看”明白

4.1 仿真模型搭建要点

电路方案在打样前,我习惯先在仿真软件里把整个闭环跑通。仿真不是为了替代实验,而是为了三件事:确认起振、看清开关频率、快速摸参数边界。

模型搭建有几个关键点:

比较器我建议直接用电压控制开关或比较器模型,关键是设置合理的滞回。用具备滞回功能的受控电压源是最省事的,但要留意收敛设置。也可以直接用软件自带的比较器符号,把正反馈电阻网络放进电路里,更接近实际。

功率级不需要一开始就用真实MOSFET模型,否则仿真时间会拖得很长。先用两个压控电压源模拟半桥输出:一个源输出0到电源电压,方向跟随比较器输出;另一个源输出电源电压到0,形成互补驱动。等整体行为验证通过后,再替换成真实MOSFET和驱动器仿真开关损耗。

反馈取样点放在哪里,仿真里就要从哪里取。我特别强调这一点,是因为不少人在仿真里图省事,直接取功率级输出端电压做反馈,等到画PCB时才发现反馈线要绕到LC后面去,走线一长,感性和容性变化都会让实测与仿真大相径庭。

4.2 起振过程与频谱波形分析

仿真搭好后,输入1kHz、500mV的正弦信号,观察LC输出节点和比较器输入节点。上电后大概几十个微秒内,输出会从直流电平逐渐建立自振荡,脉冲宽度随着输入音频信号变化。看FFT时,注意区分输出端的信号频谱和开关噪声频谱:1kHz处是主信号,250kHz附近是开关基波及其边带。

我在仿真里最关注两个指标:THD和开关频率稳定性。THD不能直接看时间波形,要跑一段足够长的瞬态让信号周期完整覆盖,然后用FFT求各谐波幅度。开关频率我看比较器输出上升沿间隔,或者在输出FFT里找基波峰。

第一次调参时,发现THD在低频段偏高。排查下来是积分器输入端的偏置和直流失调的问题:误差积分器只要有几十毫伏的失调,就会在音频输出上叠加直流分量,开关波形都正常,但THD就是降不下去。解决方法是加隔直电容或微调偏置,仿真里直接把输入直流偏置设到积分器的比较平衡点。这个坑在做实物时同样存在。

另外,仿真里可以直观看到开关频率随输入信号的变化:输入幅度升高时,开关频率会下降;输入接近静音时,开关频率最高。这是自振荡调制“天然展频”的直接体现。只要LC移相参数选得合适,频率变化范围控制在设计区间内,就说明移相量给足了;如果频率飘得太狠,多半是LC截止频率离开关频率太近或者Q值太低。

4.3 仿真中调参数的经验

我调参数时固定的顺序是:先调LC确定移相,再调积分器增益,最后调比较器滞回。如果起振困难,我不会一股脑去加大环路增益,而是先把LC的fc降一点,让开关频率处的LC相位更接近-180°;或者把Q值调低一点,相位曲线更平缓,环路更稳。如果起振后频率过高,比设计值高出20%以上,就先检查是不是反馈取样网络把高频分量衰减得太多,削弱了移相作用。

一个更微妙的问题是“起振幅度”。自振荡环路按理说应该稳定运行在某个平衡点,但仿真有时会看到开关频率在两个值之间跳来跳去、幅度忽大忽小。这通常是比较器滞回和积分器增益共同作用的结果。我的做法是先加大滞回让比较器翻转更果断,再看频率是否稳定;若还不稳定,就把积分电容缩小10~20%,缩小环路时间常数,让环路响应更快闭合。

仿真得到的参数通常能和实物对得上八成左右,剩下的两成差异主要来自PCB寄生参数和元件公差。所以仿真里最好把关键元件的容差扫描也跑一遍,至少把LC的±5%容差组合扫出来,看看开关频率和THD的散布范围能不能接受。

5. 实测表现:效率、失真与负载适应性

5.1 测试平台与测什么

仿真通过后,我打了样板。测试平台是一套实验室常规设备:直流稳压电源、音频信号发生器、数字示波器、失真仪和电子负载。测的内容主要是五样:静态耗流、输出功率、THD+N、效率、开关频率范围。

测THD+N时,我习惯在固定1kHz信号下,从1W往上扫输出功率,记录每个功率点的失真数值。不要只看额定功率一点,因为很多D类功放小功率段THD反而偏高,开关纹波和反馈环路共同作用会造成“低电平失真”。

测效率时,用电源输入功率除以负载实际功率。电源电压波动对自振荡方案的影响比固定PWM方案更明显,所以我会在24V、26V、22V三个电压下记录效率曲线,看看电源变化会不会导致开关频率超出预想范围。

5.2 不同负载和功率下的数据

我这版方案在8Ω负载下,1kHz、输出功率10W时,THD+N大约在0.03%~0.06%之间;到额定功率约30W时,THD+N仍在0.1%以下。4Ω负载下,输出功率20W时THD+N约0.07%,到接近60W时能维持在0.15%左右。作为分立自振荡方案来说,这个数据已经可以接受,核心原因就是LC移相给了环路足够的带宽和相位裕度,反馈能扎实地压住失真。

测试条件输出功率THD+N效率开关频率近似值
8Ω / 1kHz10W约0.04%88%约260kHz
8Ω / 1kHz30W约0.09%85%约235kHz
4Ω / 1kHz20W约0.07%85%约255kHz
4Ω / 1kHz60W约0.15%82%约225kHz

效率方面,8Ω负载、半功率输出时实测约88%,满功率略降到85%;4Ω负载满功率时约82%。比固定PWM方案的典型效率低两三个点,主要原因是自振荡方案的开关频率会随着负载和信号变化,平均频率比固定频率高一些,开关损耗也略大。但对听感和EMI的改善来说,这点效率代价是值得的。

我还专门记录了不同输出功率下的开关频率:静音时约280kHz;1W输出时约270kHz;30W满功率输出时下探到约220kHz。这个变化范围和仿真基本一致。在整个范围内,人耳听不到因为开关频率变化带来的可闻噪声,LC滤波在最低开关频率处仍有足够的纹波衰减。

5.3 开关频率随信号变化的“天然展频”效应

用频谱仪看过D类功放的人都知道,固定PWM方案在开关频率处会有一个尖锐的窄带辐射尖峰,很容易在EMI测试中超标。自振荡方案的开关频率是随信号、负载和电源电压缓慢调制的,频谱能量被拉开,幅值峰值可以低好几个dB,这是它最吸引我的地方。

我用近场探头大概扫过LC输出端的辐射频谱,250kHz附近的峰值确实比之前做的固定PWM方案低,边带分布更宽更平坦。当然这不代表可以不用滤波和屏蔽,但环路、PCB和外壳的EMI设计压力确实小很多。

需要提醒的是,“天然展频”也会带来一个副作用:在某些负载阻抗曲线异常的音箱下,开关频率可能发生明显跳变,个别时候会听到“嘶嘶”的噪声。解决方法是加强反馈取样端的阻尼,或者在比较器输入端做一点点高频滚降,把频率变化范围限制住。

6. 五个常见坑和对应的处理办法

6.1 空载停振/间歇啸叫

自振荡D类功放在空载或轻载时最容易出问题。我在最初版调试时,不接音箱只接示波器探头,发现输出会间歇性停振:一会儿是完整的高频方波,一会儿变成低频毛刺。原因就是空载时LC的Q值过高,相位特性在开关频率附近变得过于陡峭,环路在某些工作点上跑出了谐振稳定边界。

办法是给LC输出端并联一个假负载。我用1kΩ/1W的电阻并在LC之前,而不是直接并在喇叭端,这样既能抑制Q值又不影响功率输出。等电路稳定后,这个假负载还可以保留,对效率影响很小。

6.2 死区时间与交越失真

死区时间设置得太大,不管固定PWM还是自振荡,都会有明显的交越失真。我在自振荡方案里发现这个问题更隐蔽:因为开关频率不固定,同一死区时间在不同频率下的失真贡献不一样。静音时死区效应不明显,一到大功率输出,波形在过零附近就会出现一个明显的台阶。

处理思路是双管齐下:一是把死区时间压到刚好避免直通的区间,我最终用驱动器内部死区再外加RC微调,确定到大约50ns;二是在反馈环路里加一个小的超前电容补偿,把LC移相带来的相位裕度损失补回来一部分。实测下来,交越失真的改善非常明显。

6.3 元件容差与饱和

LC参数的容差问题在前面仿真部分说过,实测中绝不能忽略。我最初买的电感的实际感值偏低,开关频率整体上移了十几个千赫,环路相位裕度也随之改变。换用饱和电流富余量更大的磁环后,这个漂移就消失了。

电容同样关键。C0G/NP0和其他陶瓷介质在音频小信号下的容量差异不大,但在几安培纹波电流下,普通介质的等效电容可能衰减20%以上,而且会发热。我在打样时直接规定了C0G或薄膜电容,容差±5%,这样批量一致性才有保障。

6.4 地回流导致噪声

D类功放的大电流脉冲在PCB地线上会产生很大噪声,如果反馈取样线和功率地共用一段走线,自振荡环路会把这些噪声调制进PWM,最终输出端出现明显的底噪。我第一版PCB就是吃了这个亏:取消输入信号,示波器看噪声毛刺一串串。

解决方案是采用星形接地:功率级的地、控制电路的地、反馈取样地分开走,在电源端集中汇合。反馈取样线用屏蔽或紧贴地线走,并且只取LC输出端的差分电压。改完PCB后,底噪下降了差不多一个数量级。这个坑在任何D类功放里都存在,但在自振荡方案里因为环路带宽更高,表现得更突出。

6.5 上电冲击和静音时序

最后说一个平时不留意、一接音箱就吓一跳的问题:上电瞬间,自振荡环路还没有建立稳定的平衡,功率输出可能出现一个短暂的低频脉冲,直接冲击喇叭,严重时会听到“砰”一声,甚至损坏高音单元。

我的做法是加了一个简单的静音控制:上电时先把积分器输入端的音频信号短路到地,等电源稳定、自振荡建立之后再逐步解除短路。另外,电源端加了软启动电阻和继电器延时,避免电源浪涌。这一套时序电路不复杂,但对成品可靠性很重要。

整套方案做到这里,我觉得已经算是一个完整的可复制项目了。最后再分享一个个人经验:调试自振荡D类时,不要急着换元件,先把反馈取样端和比较器输入端的波形同时挂到示波器上,观察它们之间的关系,多数问题都能从相位和纹波形态上看出端倪。LC移相这个参数,说穿了就是让这些波形之间的关系符合你的预期,理解了这一点,这个方案就掌握了一大半。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询