第四节 死区效应仿真分析:基于Matlab/Simulink的仿真模型搭建与波形分析
做电机控制这些年,我越来越觉得仿真是个好东西。你想想看,真机调试时烧个管子可能就是几千块,但在Simulink里随便你怎么折腾。今天我就带你搭一个带死区效应的PMSM仿真模型,看看死区到底是怎么把电流波形搞坏的。
4.1 仿真模型整体架构
我个人习惯把仿真模型分成四个模块:
- 主电路模块:直流母线、三相逆变桥、PMSM电机本体
- 控制模块:SVPWM生成、电流环PI调节、坐标变换
- 死区注入模块:这是我们今天的重点
- 观测模块:电流波形、电压波形、谐波分析
下面这张图是我整理的仿真模型知识结构,你可以先有个整体印象:
4.2 搭建主电路与死区注入模块
先搭主电路。我用的是Simulink自带的Three-Phase Inverter模块,加上Permanent Magnet Synchronous Machine。这里有个坑——默认的IGBT模块是不带死区时间的,你得手动加。
死区注入的核心思路:
给上桥臂的PWM信号加一个下降沿延迟,同时给下桥臂的PWM信号加一个上升沿延迟。这样上下桥臂就不会同时导通了。
具体怎么搭?我一般用Transport Delay模块来实现死区。举个例子:
% 死区时间设置
T_dead = 2e-6; % 2微秒死区
% 上桥臂:下降沿延迟
% 用Transport Delay模块,延迟时间设为T_dead
% 下桥臂:上升沿延迟
% 同样用Transport Delay,但需要取反后再延迟
% 关键:延迟后的信号要与原信号做逻辑运算
% 上桥臂最终信号 = 原信号 & (~延迟后的原信号)
% 下桥臂最终信号 = (~原信号) & 延迟后的(~原信号)
嗯,这里要注意。直接用Transport Delay会引入一个微小的时间偏移,导致PWM占空比发生变化。我踩过这个坑——补偿方法是在延迟路径上并联一个相同的延迟,用于对齐时序。
4.3 仿真参数设置
我个人习惯用下面这组参数做基准仿真:
| 参数名称 | 数值 | 说明 |
|---|---|---|
| 直流母线电压 | 310 V | 模拟三相整流输出 |
| 开关频率 | 10 kHz | 工业常用频率 |
| 死区时间 | 2 μs / 4 μs / 6 μs | 对比不同死区的影响 |
| 电机极对数 | 4 | 常见PMSM参数 |
| 定子电阻 | 0.5 Ω | 小功率电机典型值 |
| d/q轴电感 | Ld=5mH, Lq=8mH | 凸极效应 |
| 仿真步长 | 1e-7 s | 必须小于死区时间的1/10 |
⚠️ 仿真步长警告:
我曾经用1e-6的步长仿真死区效应,结果波形完全不对。死区时间才2μs,步长1μs根本捕捉不到死区内的电压变化。记住:仿真步长至少要小于死区时间的1/10,我一般取1e-7甚至更小。
4.4 仿真结果波形分析
好了,模型搭好了,参数设好了,跑起来看看效果。我分别跑了三组仿真:无死区、2μs死区、6μs死区。结果很有意思。
4.4.1 相电流波形对比
无死区时,相电流是漂亮的正弦波。加上2μs死区后,电流波形开始出现过零点畸变——就是电流过零附近那一段,波形变得平坦甚至出现台阶。6μs死区就更明显了,台阶宽度增加,波形失真严重。
为什么会这样?说白了,死区导致逆变器输出电压偏离了理想值。电流过零时,死区造成的电压误差最大,所以畸变最明显。
4.4.2 谐波分析(FFT)
我把电流数据导出来做了FFT分析,结果如下:
| 谐波次数 | 无死区 | 2μs死区 | 6μs死区 |
|---|---|---|---|
| 基波 (50Hz) | 100% | 100% | 100% |
| 5次 (250Hz) | 0.2% | 2.8% | 7.5% |
| 7次 (350Hz) | 0.1% | 1.9% | 5.2% |
| 11次 (550Hz) | 0.05% | 0.8% | 2.1% |
| THD | 0.35% | 3.6% | 9.4% |
看到没?死区主要引入5次和7次谐波,这是典型的死区效应特征。6μs死区时THD已经接近10%,这在实际应用中是不可接受的。
💡 我的经验:
如果你在项目中遇到电机噪音大、低速抖动,先别急着调PI参数。用示波器抓一下相电流波形,看看过零点有没有畸变。我遇到过好几次,客户说电机噪音大,结果一查是死区补偿没做好。把死区时间从4μs优化到2μs,噪音立马降下来。
4.4.3 电压误差分析
我还做了一个有意思的对比——看逆变器实际输出电压与理想电压的差值。这个差值就是死区造成的电压误差。你会发现:
- 误差脉冲的宽度正好等于死区时间
- 误差脉冲的极性取决于电流方向:电流为正时,误差为负;电流为负时,误差为正
- 误差的平均值正比于死区时间和开关频率的乘积
你想想看,这个规律其实就揭示了死区补偿的基本思路——根据电流方向,在PWM占空比中叠加一个补偿量。这就是下一节要讲的内容。
4.5 仿真中的常见问题与避坑
最后分享几个我在仿真中踩过的坑:
- 仿真发散:检查一下PI参数是不是太激进。死区效应会引入额外的相位延迟,有时候需要适当降低PI增益。
- 波形毛刺太多:大概率是仿真步长太大。把步长降到1e-7试试。
- 死区效果不明显:检查死区注入模块的逻辑。我犯过的一个低级错误——把上下桥臂的死区加反了,结果死区变成了重叠区,直接短路。
- FFT分析结果异常:确保采样时间足够长,至少采集10个以上的基波周期。我一般采20个周期做FFT。
好了,仿真模型搭好了,波形也分析了。你现在应该能直观感受到死区效应是怎么把电流波形搞坏的了。下一节我们聊聊怎么把这些畸变给补偿回来——死区补偿算法的具体实现。
公众号:蓝海资料掘金营,微信deep3321