在电力电子领域,逆变器作为直流电与交流电转换的核心设备,其控制策略直接决定了电能转换的质量与效率。单相逆变器因其结构简单、成本低廉的特点,在中小功率应用场景中占据重要地位。而重复控制(Repetitive Control)作为一种基于内模原理的先进控制策略,特别适用于周期性参考信号跟踪和周期性扰动抑制的场景。
我从事电力电子控制系统设计已有八年时间,在实际项目中深刻体会到传统PI控制在应对周期性扰动时的局限性。记得去年为一个光伏并网项目调试逆变器时,电网电压的周期性谐波导致输出电流波形严重畸变,正是通过引入重复控制才彻底解决了这个问题。这种"以周期对抗周期"的控制思想,在逆变器应用中展现出独特优势。
重复控制的数学本质来源于内模原理(Internal Model Principle)——要在闭环系统中实现对某类外部信号的精确跟踪或无静差抑制,必须在控制器中包含该信号动力学模型的副本。对于周期性信号而言,其内模可以表示为:
code复制G_IM(z) = 1/(1 - z^(-N))
其中N为一个基波周期内的采样点数。这个看似简单的传递函数,实际上在z域构建了一个无限增益的谐振器阵列,能够对基波及所有谐波频率产生理论上无穷大的增益。
在实际工程实现中,我们通常采用如图1所示的改进型重复控制器结构:
code复制[重复控制内模] → [补偿器Q(z)] → [相位补偿S(z)] → [幅值补偿K_r]
这种结构通过三个关键环节的协同工作:
重要提示:Q(z)的取值需要在收敛速度与稳态精度间权衡,过高的Q值会导致系统振荡,而过低的Q值会显著降低谐波抑制效果。
基于TI TMS320F28335 DSP的开发平台是当前业界的主流选择,其具体配置如下:
| 模块 | 型号/参数 | 备注 |
|---|---|---|
| 主控芯片 | TMS320F28335 | 150MHz主频,FPU单元 |
| 功率模块 | FSBB30CH60F | 600V/30A智能功率模块 |
| 采样电路 | AD8476+ADS7863 | 16位精度,500kHz采样率 |
| 驱动电路 | 1ED020I12-F2 | 2A驱动能力,带DESAT保护 |
在PCB布局时需要特别注意:
在CCS开发环境中,重复控制的离散化实现主要包含以下关键步骤:
c复制// 重复控制内模实现
void Repetitive_Update(float *error_buffer, int N, float Q) {
static int ptr = 0;
error_buffer[ptr] = current_error + Q * error_buffer[ptr];
ptr = (ptr + 1) % N;
output = error_buffer[ptr];
}
// 相位补偿实现(以二阶低通为例)
float Phase_Compensator(float input) {
static float x[3] = {0}, y[3] = {0};
x[0] = input;
y[0] = b0*x[0] + b1*x[1] + b2*x[2] - a1*y[1] - a2*y[2];
// 更新历史数据
x[2] = x[1]; x[1] = x[0];
y[2] = y[1]; y[1] = y[0];
return y[0];
}
实测表明,在10kHz开关频率下,采用上述结构的重复控制器可使THD从传统PI控制的3.2%降至0.8%以下。
电网频率波动是实际应用中必须考虑的问题。我推荐采用基于锁相环(PLL)的动态周期调整方案:
c复制void Adjust_Buffer_Length(int new_N) {
float temp_buffer[MAX_N];
// 保存原有数据
memcpy(temp_buffer, error_buffer, sizeof(float)*current_N);
// 线性插值重构
for(int i=0; i<new_N; i++) {
float pos = (float)i/new_N * current_N;
int idx = (int)pos;
float alpha = pos - idx;
error_buffer[i] = temp_buffer[idx]*(1-alpha) + temp_buffer[(idx+1)%current_N]*alpha;
}
current_N = new_N;
}
重复控制器的初始状态不确定性会导致启动瞬间出现较大冲击电流。通过以下策略可有效缓解:
我们在3kW光伏逆变器平台上进行了对比测试,结果如下表所示:
| 指标 | PI控制 | 重复控制 | 改善幅度 |
|---|---|---|---|
| THD@满载 | 3.15% | 0.76% | 75.8% |
| 动态响应时间 | 2.1ms | 5.3ms | 变慢152% |
| 轻载效率 | 95.2% | 96.8% | +1.6% |
| 温度上升 | 42°C | 38°C | -4°C |
从实测数据可以看出,重复控制虽然牺牲了部分动态性能,但在电能质量和效率方面带来显著提升。特别是在非线性负载条件下,其对谐波的抑制效果更为突出。
针对动态响应慢的问题,可采用PI+重复控制的并联结构:
传统参数整定依赖经验,可引入智能算法实现自动优化:
在有限的计算资源下,可采用以下优化手段:
在实际项目中,我发现重复控制器的性能与以下因素强相关:
最后分享一个调试小技巧:在开发初期,可以先用Matlab/Simulink构建实时仿真模型,通过外接硬件在环(HIL)测试快速验证控制算法,这能节省约40%的现场调试时间。