4. 过调制模式二:幅值与角度同时调整,进入六步阶梯波模式
好,我们继续往前走。
上一节讲的模式一,说白了就是只调幅值不调角度。它能把电压利用率推到大概 0.606 左右。但如果你还想再往上走,想逼近那个极限的 0.637 —— 也就是六步阶梯波的电压利用率,那模式一就不够用了。
为什么?因为当调制比超过 0.606 之后,参考电压矢量已经跑到了六边形的外面。你光缩幅值,矢量方向还是原来的方向,但实际能合成的电压矢量已经跟不上这个方向了。这时候,你必须连角度一起调整。
这就是我们今天要聊的 过调制模式二。
4.1 模式二的核心思想:让矢量“拐弯”
我个人习惯把模式二叫做“强制拉回 + 相位补偿”。
你想想看,当参考矢量落在六边形外面时,我们没法直接合成它。模式一的办法是沿着原方向把它拉回到六边形边上。但到了模式二,我们不光要拉回来,还要让它在六边形的顶点附近“停留”一段时间。
嗯,这里要注意。这个“停留”不是真的停下来,而是让实际输出的电压矢量在某个扇区的顶点上多待一会儿。这样做的效果,就是让基波电压的幅值进一步增大,同时相位也会发生偏移。
模式二的关键特征:
- 同时调整参考矢量的幅值和角度
- 实际输出电压矢量轨迹沿着六边形边界走
- 在扇区顶点附近产生“钳位”效应
- 最终逼近六步阶梯波
我曾经在一个高速电主轴项目里用过这个模式。当时客户要求转速跑到 120krpm,母线电压才 310V。如果不进模式二,反电动势直接就把母线电压顶穿了,根本跑不上去。后来切到模式二,电压利用率从 0.606 提到了 0.63 左右,才勉强够用。
4.2 角度调整的机理
我们先看一张图,把模式二的轨迹画出来。
从图上你能看到,绿色的轨迹就是模式二的实际输出路径。它贴着六边形的边走。当参考矢量(橙色虚线)指向六边形外部时,实际矢量(紫色实线)被强制拉回到六边形的边上。但和模式一不同的是,这个拉回的过程伴随着角度的修正。
具体来说,角度调整的规律是这样的:
- 当参考矢量在六边形内部时,不做任何调整
- 当参考矢量超出六边形边界时,计算它与六边形边的交点
- 实际输出矢量的角度,等于这个交点的角度加上一个补偿量
这个补偿量怎么算?我直接给公式:
// 模式二角度补偿计算
// theta_ref: 参考矢量角度
// theta_boundary: 六边形边界对应角度
// MI: 调制比 (0.606 ~ 0.637)
if (MI > 0.606) {
// 计算补偿系数
float k = (MI - 0.606) / (0.637 - 0.606);
// 角度补偿
float delta_theta = k * (theta_boundary - theta_ref);
// 实际输出角度
float theta_act = theta_boundary + delta_theta;
}
我的经验:这个 k 值其实不是线性的。我在实际调试中发现,当 MI 接近 0.63 时,补偿量会突然增大。建议在 0.62 以上时,把 k 的增量做软饱和处理,否则电流会抖得厉害。
4.3 六步阶梯波的逼近过程
随着调制比继续增大,模式二会逐渐向六步阶梯波过渡。什么叫六步阶梯波?就是每个扇区只输出一个有效电压矢量,每 60° 切换一次。这时候,电压利用率达到理论最大值 0.637。
我画个表格,把模式一、模式二和六步波做个对比:
| 特性 | 模式一 | 模式二 | 六步阶梯波 |
|---|---|---|---|
| 调制比范围 | 0.577 ~ 0.606 | 0.606 ~ 0.637 | 0.637(固定) |
| 幅值调整 | 是 | 是 | 否(固定最大) |
| 角度调整 | 否 | 是 | 是(固定步进) |
| 矢量轨迹 | 六边形内切圆 | 六边形边界 | 六个顶点 |
| 电压利用率 | 0.606 | 0.606 ~ 0.637 | 0.637 |
| 谐波含量 | 低 | 中 | 高 |
你看,模式二其实是一个“渐变”的过程。当调制比刚好等于 0.606 时,它退化为模式一。当调制比逼近 0.637 时,它趋近于六步阶梯波。
我记得有一次调试,客户要求满载启动。一开始我直接切到六步波,结果电流冲击大得吓人,差点把 IGBT 炸了。后来改成用模式二做软过渡,从 0.606 慢慢升到 0.637,花了大概 200ms,电流就平滑多了。
4.4 实现中的关键细节
模式二的实现,有几个坑你得注意。
避坑指南:
- 扇区切换时的角度跳变:当参考矢量跨扇区时,角度补偿量会有一个阶跃。如果不做平滑处理,电流波形上会出现毛刺。我建议在扇区边界附近做一个 5° 的过渡带,用线性插值把补偿量平滑过渡过去。
- 过调制深度检测:不要直接用 MI 来判断是否进入模式二。我习惯用“参考矢量超出六边形边界的程度”来做判据。具体做法是:计算参考矢量在六边形边上的投影,如果投影长度超过了边的长度,就进入模式二。
- 电流环的带宽限制:模式二下,电压矢量变化很快,尤其是在扇区顶点附近。如果电流环带宽不够,电流会失控。我一般会把电流环带宽设到 1/10 的开关频率以上。
另外,还有一个容易被忽略的点:死区时间的影响。在模式二下,由于电压矢量长时间停留在扇区顶点,死区时间造成的电压误差会被放大。我曾经在一个项目里,死区设了 2μs,结果在模式二下电机噪音明显变大。后来改成 1μs,情况就好多了。
4.5 模式二的退出策略
最后聊一下退出策略。什么时候该从模式二退回到模式一?
我的做法是:当调制比降到 0.59 以下时,强制退出模式二。为什么不是 0.606?因为要留一点回滞,防止在边界上来回切换。
// 模式切换逻辑
if (MI > 0.606) {
// 进入模式二
mode = OVERMOD_MODE2;
} else if (MI < 0.59) {
// 退出模式二,回到模式一
mode = OVERMOD_MODE1;
} else {
// 保持当前模式,不做切换
// 这就是回滞区
}
这个回滞区的大小,我一般取 0.015 左右。太小了容易振荡,太大了又会影响动态响应。你可以根据实际系统的惯量来调整。
好了,模式二的核心内容就这些。说白了,它就是一条从线性区到六步波的“桥”。这座桥怎么走、走多快,直接决定了你系统的极限性能。