第四节:电流内环控制——dq坐标系下的电流解耦控制、PI参数整定与抗饱和策略
各位工程师朋友,今天我们来聊聊电流内环控制。这是PCS双模式控制的核心中的核心。说白了,不管你是逆变还是整流,最终都要落到电流怎么控、控得稳不稳、快不快。
我个人习惯把电流内环比作PCS的“肌肉反应”——它不需要大脑(电压外环)思考太多,必须快速、准确地执行指令。如果电流环抖一下,整个系统可能就跟着抖。我在项目里见过太多因为电流环没调好,导致并网电流畸变、直流母线电压振荡的案例了。
一、dq坐标系下的电流解耦控制
先问一个问题:为什么非要在dq坐标系下做控制?
三相静止坐标系下的电流是交流量,你用PI控制器去跟踪正弦波,理论上可以,但稳态误差和相位滞后很难消除。而dq坐标系下,基波分量变成了直流量,PI控制器就能实现无静差跟踪。这是最根本的原因。
但dq坐标系有个麻烦——耦合。你看PCS的数学模型:
L * did/dt = -R*id + ωL*iq + ud - ed
L * diq/dt = -R*iq - ωL*id + uq - eq
注意看,id的方程里出现了iq项,iq的方程里出现了id项。这就是耦合。你调id的时候,iq会跟着动;调iq的时候,id也会受影响。这在工程上是不能接受的。
怎么解耦?我常用的方法是前馈补偿。具体做法:
ud_ref = (Kp + Ki/s)*(id_ref - id) - ωL*iq + ed
uq_ref = (Kp + Ki/s)*(iq_ref - iq) + ωL*id + eq
这里,-ωL*iq和+ωL*id就是解耦项。它们把耦合的电动势抵消掉,让PI控制器只负责处理误差信号。这样,id和iq就变成了两个独立的回路,你可以分别整定参数。
关键点:解耦的前提是电感L和角频率ω的准确性。如果L参数不准,解耦效果会打折扣。我在现场调试时,经常需要根据实际电感值微调解耦系数。
下面这张图展示了dq坐标系下电流解耦控制的完整结构:
二、PI控制器参数整定
参数整定是电流环设计的重头戏。我见过不少工程师,仿真跑得飞起,一上硬件就炸。为什么?因为参数没整对。这里我介绍两种工程上最常用的方法:带宽法和极点配置法。
2.1 带宽法
带宽法是最直观的方法。它的核心思想是:把电流环简化成一阶低通滤波器,然后根据你想要的响应速度来定参数。
对于d轴或q轴电流环,开环传递函数可以写成:
G_open(s) = (Kp*s + Ki) / (s * (L*s + R))
如果我们将PI控制器的零点抵消掉被控对象的极点,即令:
Ki / Kp = R / L
那么开环传递函数简化为:
G_open(s) = Kp / (L * s)
闭环传递函数就变成了:
G_close(s) = 1 / (1 + (L/Kp)*s) = 1 / (1 + τ*s)
这里τ = L/Kp就是时间常数。带宽ω_bw = 1/τ = Kp/L。
所以,整定步骤很简单:
- 确定带宽:一般取开关频率的1/10到1/5。比如开关频率10kHz,带宽取1kHz~2kHz。
- 计算Kp:Kp = ω_bw * L
- 计算Ki:Ki = Kp * R / L = ω_bw * R
我的经验:带宽不要取太高。我曾经在一个项目里把带宽设到开关频率的1/3,结果电流纹波全被放大了,IGBT发热严重。后来降到1/8,问题解决。记住,带宽越高,噪声抑制能力越差。
2.2 极点配置法
极点配置法更灵活一些。你可以把闭环系统的极点放在你想要的位置,从而获得特定的动态响应。
电流环的闭环特征方程为:
s² + (R/L + Kp/L)*s + Ki/L = 0
假设我们希望闭环极点为s = -α ± jβ(或者两个实极点),那么:
s² + 2*ζ*ω_n*s + ω_n² = 0
对比系数可得:
Kp = 2*ζ*ω_n*L - R
Ki = ω_n² * L
这里ζ是阻尼比,ω_n是自然频率。工程上一般取ζ=0.707(临界阻尼),ω_n根据响应速度要求来定。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 带宽法 | 简单直观,参数少 | 依赖零极点对消,参数不准时效果差 | 参数已知且稳定的系统 |
| 极点配置法 | 可灵活控制动态响应 | 需要知道精确的R、L值 | 对动态性能要求高的场合 |
注意:无论用哪种方法,整定出来的参数都只是理论值。上机后一定要做阶跃响应测试,观察电流的上升时间、超调量和稳态误差。我习惯先给一个10%的小阶跃,确认没问题再加大到100%。
三、电流环限幅与抗饱和策略
这部分容易被忽视,但恰恰是工程中出问题最多的地方。你想想看,PI控制器输出的是电压指令,但PWM调制能输出的电压是有上限的。当指令超过限幅值时,积分项会一直累积,这就是积分饱和。
积分饱和的后果很严重:电流响应变慢,甚至出现振荡。我曾经在一个储能项目中,因为没做抗饱和处理,并网电流在启动时直接冲到了额定值的1.5倍,把熔断器都烧了。
3.1 限幅设计
电流环的限幅分两级:
- 电流指令限幅:限制id_ref和iq_ref的最大值,一般取额定电流的1.1~1.2倍。
- 输出电压限幅:限制ud_ref和uq_ref,最大值由直流母线电压决定:
ud_ref² + uq_ref² ≤ (Vdc/√3)²
这里有个技巧:输出电压限幅最好做圆形限幅,而不是分别对ud和uq做矩形限幅。圆形限幅能最大化利用直流母线电压。
// 圆形限幅伪代码
if (ud_ref² + uq_ref² > Vmax²) {
scale = Vmax / sqrt(ud_ref² + uq_ref²);
ud_ref = ud_ref * scale;
uq_ref = uq_ref * scale;
}
3.2 抗饱和策略
常用的抗饱和方法有三种:
- 积分冻结法:当输出达到限幅值时,停止积分。这是最简单的方法,但可能引起积分器输出跳变。
- 反计算法(Back-calculation):将限幅前后的差值反馈到积分器输入端,衰减积分累积。公式如下:
// 反计算法实现
u_sat = saturate(u); // 限幅后的输出
e_sat = u - u_sat; // 限幅误差
integral += Ki * error * Ts - Kc * e_sat * Ts; // Kc为反计算增益
- 条件积分法:只在特定条件下才允许积分。比如当误差小于某个阈值时才积分,或者当输出未饱和时才积分。
我个人推荐:反计算法。它在工程中表现最稳定,参数Kc一般取1/Kp到2/Kp之间。我习惯取Kc = 1.5/Kp,效果不错。
最后说一句,电流环调试是个细致活。不要指望一次就能调好。我每次调试都会记录参数和波形,对比不同参数下的响应。时间长了,你自然会有感觉——看到电流波形就知道该调Kp还是Ki。
好了,电流内环的内容就到这里。记住,解耦是基础,参数整定是核心,抗饱和是保障。这三样做好了,你的电流环就稳了。