1. 项目概述
作为一名电力电子控制领域的从业者,我最近在整流器控制方案中尝试了自抗扰控制(ADRC)技术。传统PI控制在面对电网波动和负载突变时往往表现不佳,而ADRC凭借其独特的扰动估计和补偿机制,在实际应用中展现出显著优势。本文将基于Simulink平台,详细解析ADRC在三相PWM整流器中的实现过程。
ADRC的核心思想是将系统内部动态和外部扰动统一视为"总扰动",通过扩张状态观测器(ESO)实时估计并补偿这些扰动。这种控制策略由中国学者韩京清教授提出,特别适合参数易变和电网环境恶劣的应用场景。下面我将从基本原理到Simulink实现,逐步拆解这个控制方案。
2. ADRC基本原理解析
2.1 系统建模(以d轴电流为例)
在三相PWM整流器的dq坐标系下,d轴电流动态方程可表示为:
code复制L(di_d/dt) = -Ri_d + ωLi_q + v_d - u_d
其中L和R分别为等效电感和电阻,ω为电网角频率,v_d为电网电压d轴分量,u_d为整流器输出电压d轴分量。
这个方程揭示了电流控制的本质挑战:系统存在交叉耦合项(ωLi_q)和电网电压扰动(v_d)。传统PI控制需要精确知道这些参数才能实现完全解耦,而ADRC则通过实时估计这些扰动项来解决问题。
2.2 扩张状态观测器(ESO)设计
ESO是ADRC的核心创新点,它将系统总扰动扩展为一个新的状态变量x3。对于二阶系统,典型的ESO结构为:
code复制ẋ1 = x2 + β1(y - x1)
ẋ2 = x3 + b0u + β2(y - x1)
ẋ3 = β3(y - x1)
其中β1, β2, β3为观测器增益,b0为控制增益,y为系统输出。
在Simulink中实现时,我通常采用带宽参数化法设置ESO参数:
code复制β1 = 3ωo, β2 = 3ωo², β3 = ωo³
ωo为观测器带宽,一般取系统带宽的3-5倍。这种参数化方法大大简化了调试过程。
2.3 控制律设计
ADRC的控制律包含三部分:
- 跟踪微分器(TD):安排过渡过程
- 非线性状态误差反馈(NLSEF)
- 扰动补偿项
在实际工程中,我通常采用线性简化形式:
code复制u = (k1(r - x1) - k2x2 - x3)/b0
其中r为参考输入,k1和k2为控制器增益。这种线性ADRC(LADRC)在保持抗扰性能的同时更易于实现。
3. Simulink建模实现步骤
3.1 基础整流器系统搭建
首先需要建立三相PWM整流器的基本模型:
- 使用Three-Phase Programmable Voltage Source模拟电网
- 添加LCL滤波器模块
- 配置PWM Generator和Universal Bridge模块
- 设置测量模块获取电流电压信号
关键参数示例:
- 电网电压:380V/50Hz
- 直流母线电压:650V
- 开关频率:10kHz
- LCL参数:L1=2mH, C=10μF, L2=0.5mH
注意:LCL参数设计需考虑谐振频率避开开关频率的1/6和1/2,通常设置在1/10开关频率以下。
3.2 ADRC电流控制器实现
3.2.1 ESO模块构建
使用Integrator模块搭建三阶ESO:
- 创建3个Integrator模块串联
- 添加反馈环路实现观测器结构
- 使用Gain模块设置β1, β2, β3参数
调试技巧:初始时可先关闭控制输入(u),仅观察ESO对阶跃响应的跟踪效果,确保观测器稳定后再接入闭环。
3.2.2 控制律计算
在MATLAB Function模块中实现控制算法:
matlab复制function u = ADRC_Control(r, y, b0, k1, k2, x1, x2, x3)
e = r - x1;
u = (k1*e - k2*x2 - x3)/b0;
end
3.2.3 参数设置示例
对于d轴电流控制:
- ωo = 1000 rad/s → β1=3000, β2=3e6, β3=1e9
- 控制器带宽ωc = 300 rad/s → k1=ωc², k2=2ωc
- b0取标称值1/L ≈ 500
3.3 电压外环设计
电压环采用PI控制即可:
- 直流电压误差经PI调节器输出d轴电流参考
- q轴电流参考通常设为0(单位功率因数控制)
- 注意限制电流参考值在安全范围内
参数整定建议:
- 比例系数:0.1~0.5
- 积分时间:0.01~0.05s
- 带宽应比电流环低5-10倍
4. 仿真分析与性能对比
4.1 测试场景设计
为验证ADRC的鲁棒性,设置以下测试条件:
- 参数失配:电感值±50%变化
- 负载突变:50%-100%阶跃变化
- 电网电压跌落:30%深度持续5个周期
4.2 与传统PI控制对比
关键性能指标对比:
| 指标 | PI控制 | ADRC |
|---|---|---|
| 稳态误差 | <1% | <0.5% |
| 调节时间(负载突变) | 20ms | 10ms |
| THD(额定工况) | 3.5% | 2.1% |
| 抗参数变化能力 | 敏感 | 强鲁棒性 |
4.3 ESO扰动估计验证
通过Scope观察ESO的x3输出,可以看到:
- 在负载突变时,x3能快速跟踪扰动变化
- 电网电压跌落时,x3准确反映了电网扰动
- 参数变化时,x3自动补偿了模型失配
5. 工程实现建议
5.1 参数整定流程
- 先调观测器带宽ωo:从低频开始逐步提高,直到估计值无明显振荡
- 再调控制器带宽ωc:根据响应速度需求确定
- 最后微调b0:补偿控制增益误差
5.2 数字化实现要点
- 离散化方法:推荐使用Tustin变换
- 采样频率:至少10倍于开关频率
- 抗饱和处理:增加积分限幅
5.3 常见问题排查
- 系统振荡:降低ωo或ωc
- 稳态误差:检查b0取值或增加积分项
- 估计发散:检查传感器信号是否正常
6. 实际应用心得
在多个工业项目中应用ADRC后,我总结了以下经验:
- 对于电网条件恶劣的场合,ADRC的电压跌落恢复时间比PI快40%以上
- 当系统参数随时间变化(如电感温漂)时,ADRC无需重新整定参数
- 在数字化实现时,需特别注意离散化带来的相位延迟问题
一个实用的调试技巧:可以先在Simulink中验证参数,然后将模型导出为C代码直接用于DSP实现,这能大大缩短开发周期。我在最近的一个光伏逆变器项目中,采用这种方法将控制算法开发时间缩短了60%。