死区效应数学建模:从单相桥臂到三相逆变器
做电机控制这些年,死区效应是我绕不开的一个坎。说实话,刚入行那会儿我总觉得死区时间就那么几微秒,能有多大影响?直到有一次调试一台伺服驱动器,电机在低速运行时发出刺耳的啸叫,电流波形简直没法看。从那以后,我才真正开始认真研究死区效应的数学模型。
这一章,我们就来把死区效应的数学模型彻底讲透。我会从最简单的单相桥臂开始,逐步扩展到三相逆变器,最后给出电压误差矢量的完整分析。你跟着我的思路走,保证能建立起清晰的数学框架。
单相桥臂死区效应分析
先看最简单的单相桥臂结构。一个桥臂由上下两个开关管组成,中间输出点接负载。理想情况下,上下管互补导通,输出端要么接母线正极,要么接负极。但实际中,为了防止上下管直通,必须插入死区时间。
死区时间内发生了什么?两个管子都关断了。这时候电流往哪流?全靠续流二极管。电流方向决定了输出电压的实际值。我习惯把这个过程分成两种情况来分析:
- 电流流出桥臂(i>0):死区时间内,下管关断后电流通过下二极管续流,输出端被钳位到负母线电压。相当于实际输出电压比理想值低了。
- 电流流入桥臂(i<0):死区时间内,上管关断后电流通过上二极管续流,输出端被钳位到正母线电压。实际输出电压比理想值高了。
你看,死区效应本质上就是电流极性导致的电压偏差。这个偏差的大小和方向,完全由电流方向决定。我在项目中遇到过一种情况:当电流过零时,死区效应的影响最明显,因为电流极性判断会变得模糊,导致电压误差出现非线性变化。
单相桥臂的电压误差可以写成:
ΔV = -sign(i) * Vdc * (Td / Ts)
其中Td是死区时间,Ts是开关周期,Vdc是母线电压。这个公式虽然简单,但它是整个死区效应分析的基础。说白了,死区效应就是给输出电压叠加了一个与电流极性相反的方波。
核心要点:单相桥臂的死区效应可以等效为一个与电流极性相关的电压扰动。这个扰动的幅值由死区时间和母线电压决定,频率与开关频率相同。
三相逆变器死区效应模型
有了单相桥臂的基础,三相逆变器就好理解了。三相逆变器就是三个单相桥臂的组合,每个桥臂的死区效应独立发生。但三相之间会相互耦合,最终体现在电机相电压和线电压上。
我习惯用三相电压误差矢量来描述这个问题。设三相电流分别为ia、ib、ic,那么三相的电压误差可以写成:
ΔVa = -sign(ia) * Vdc * (Td / Ts)
ΔVb = -sign(ib) * Vdc * (Td / Ts)
ΔVc = -sign(ic) * Vdc * (Td / Ts)
这里有个坑要注意:三相电流不是独立的,它们满足ia+ib+ic=0。所以三相电压误差也不是独立的。我曾经在调试时发现,直接对三相分别补偿效果并不好,原因就在这里——三相误差之间存在耦合关系。
把三相电压误差转换到两相静止坐标系(αβ坐标系)下,会看得更清楚:
ΔVα = (2/3) * (ΔVa - 0.5*ΔVb - 0.5*ΔVc)
ΔVβ = (2/3) * (sqrt(3)/2 * ΔVb - sqrt(3)/2 * ΔVc)
这个变换很有意思。你会发现,当三相电流平衡时,ΔVα和ΔVβ并不是简单的正弦波,而是包含大量谐波的复杂波形。这就是为什么死区效应会导致电流波形畸变的根本原因。
我的经验:在实际项目中,我建议先测量三相电流的极性,然后根据极性查表得到电压误差。这种方法比实时计算sign函数要快得多,适合在低成本MCU上实现。
电压误差矢量分析
现在我们来深入分析电压误差矢量。把三相电压误差转换到旋转坐标系(dq坐标系)下,会得到更有物理意义的结果。
假设电机运行在稳态,三相电流为正弦波:
ia = I * cos(θ)
ib = I * cos(θ - 2π/3)
ic = I * cos(θ + 2π/3)
那么三相电压误差的符号函数会形成六个扇区。每个扇区内,电压误差矢量的方向是固定的。我画了一张图来展示这个规律:
从这张图可以看得很清楚:电压误差矢量在六个扇区内轮流切换,每个扇区内方向固定。这个特性很重要,因为它意味着死区效应产生的谐波主要集中在6k±1次(k=1,2,3...),也就是5、7、11、13次谐波。
把电压误差矢量转换到dq坐标系下,会得到d轴和q轴的误差分量:
ΔVd = ΔVα * cos(θ) + ΔVβ * sin(θ)
ΔVq = -ΔVα * sin(θ) + ΔVβ * cos(θ)
这两个分量不是常数,而是包含6次谐波的脉动分量。这就是为什么死区效应会导致dq轴电流出现6次谐波振荡的原因。我在调试高速电机时深有体会——转速越高,这个6次谐波的影响越明显,电机转矩脉动会变得很大。
注意:死区效应导致的电压误差矢量幅值与母线电压成正比。在高压系统中(比如600V以上),死区效应的影响会非常显著,必须进行补偿。我曾经在一个690V的项目中吃过亏,不补偿的话电机根本没法在低速运行。
死区效应的定量分析
最后,我们来做一个定量分析。假设死区时间Td=3μs,开关频率fs=10kHz(Ts=100μs),母线电压Vdc=300V。那么单相桥臂的电压误差幅值为:
ΔV = 300 * (3 / 100) = 9V
这个9V的误差看起来不大,但你要知道,在低速运行时,电机的反电动势很小,这个9V的误差可能占到总电压的10%甚至更多。这就是为什么低速时死区效应的影响特别明显。
我整理了一个表格,方便你快速评估不同工况下的死区效应影响:
| 母线电压(V) | 死区时间(μs) | 开关频率(kHz) | 电压误差(V) | 影响程度 |
|---|---|---|---|---|
| 48 | 2 | 20 | 1.92 | 轻微 |
| 300 | 3 | 10 | 9.0 | 中等 |
| 600 | 3 | 8 | 14.4 | 严重 |
| 1000 | 5 | 5 | 25.0 | 非常严重 |
从表格可以看出,母线电压越高、死区时间越长、开关频率越高,死区效应的影响就越大。嗯,这里有个权衡:开关频率高了,死区效应更明显;但开关频率低了,电流纹波又大。实际项目中怎么选?我一般建议在满足电流纹波要求的前提下,尽量降低开关频率,这样可以减轻死区效应的影响。
避坑指南:我曾经在一个项目中为了追求低纹波,把开关频率设到了20kHz,结果死区效应导致电机在低速时剧烈抖动。后来把频率降到10kHz,同时优化了死区补偿算法,问题才解决。所以不要盲目追求高开关频率,要综合考虑。
好了,这一章的内容就到这里。死区效应的数学模型是后续补偿算法的基础,你一定要把单相桥臂到三相逆变器的推导过程理解透彻。下一章我们会基于这个模型,讨论具体的补偿策略。
公众号:蓝海资料掘金营,微信deep3321