基于SVPWM的三相电压型PWM整流器(VSR)双闭环控制仿真项目
项目介绍
本项目是一个基于MATLAB环境开发的三相电压型PWM整流器(VSR)数值仿真系统。该项目不依赖于Simulink图形化模块,而是通过纯代码编写的数学模型和控制算法,精确模拟了VSR从交流电到直流电的变换过程。系统集成了坐标变换、定频双闭环控制、电网同步技术以及空间矢量脉宽调制(SVPWM)核心算法,为电力电子技术研究提供了高性能的仿真基础。
功能特性
- 双闭环控制架构:实现了电压外环和电流内环的嵌套控制。电压外环维持直流母线稳定,电流内环负责电流跟踪。
- 单位功率因数控制:通过将q轴电流指令值设为零,确保输入电流与电压同相位,实现PF=1的运行。
- 前馈解耦技术:在dq同步旋转坐标系下引入电感电压补偿和电网电压前馈,消除了d轴与q轴电流之间的耦合影响。
- 抗负载扰动能力:系统内置了负载突变模拟(0.2s时电阻由50Ω跳变为25Ω),展示了控制器在稳态恢复过程中的动态响应。
- 七段式SVPWM调制:通过精细的扇区判断和矢量作用时间计算,实现低谐波的开关指令生成。
- 完备的可视化分析:自动生成直流电压响应、交流电流波形、功率因数对比、dq电流跟踪、扇区切换以及电流FFT谐波分析图表。
系统要求
- MATLAB R2016b 或更高版本
- 无需额外工具箱(主要使用基础数学运算与绘图功能)
实现逻辑与算法细节
#### 1. 物理系统数学模型
代码通过状态空间方程描述整流器的动态特性:
- 交流侧:基于电感电压方程 $di/dt = (V_{grid} - V_{bridge} - R cdot i) / L$,通过欧拉积分实时计算三相输入电流。
- 直流侧:根据开关状态合成直流侧电流,利用 $dV_{dc}/dt = (I_{dc} - V_{dc}/R_{load}) / C$ 计算母线电压。
- 预充电模拟:初始电压设为线电压峰值(540V),模拟了实际工程中不控整流阶段后的初始状态,避免了从零电压启动带来的冲击。
#### 2. 控制算法流程
仿真主循环以极小的步长(1μs)运行,而控制逻辑严格按照开关频率(10kHz)触发:
- 坐标变换:应用等幅值变换原则,完成自然坐标系(abc)到静止坐标系(αβ)以及同步旋转坐标系(dq)的转换。
- 电压外环(PI):采样直流电压与600V参考值对比,误差经PI运算输出d轴电流参考指令。
- 电流内环(PI+解耦):引入公式 $u_d = -(K_p Delta i_d + K_i int Delta i_d) + v_d + omega L i_q$ 及其q轴对应形式,输出控制电压矢量。
- 电网同步:采用简化的软件锁相算法,通过时间积分实时获取电网电压向量的角度 $theta$。
#### 3. SVPWM核心实现
子函数通过以下步骤合成控制电压:
- 扇区检测:利用 $v_{beta}$、$sqrt{3}v_{alpha}-v_{beta}$ 等组合信号识别电压矢量所在的六个扇区之一。
- 时间计算:根据扇区几何关系计算相邻有效矢量 $T_1, T_2$ 和零矢量 $T_0$ 的作用时间,并进行过调制饱和处理。
- 七段式序列生成:计算A、B、C三相的切换点 $t_A, t_B, t_C$,决定在一个开关周期内开关管的导通顺序。
使用方法
- 由于本项目为单文件架构,只需将
main.m 文件放置于工作路径。 - 在MATLAB命令行窗口输入
main 并回车。 - 程序将自动开始循环计算,并在仿真结束后弹出六个子图组成的分析窗口。
结果说明
- 电压响应图:展示了系统从启动到稳态的过程,以及在0.2s负载加倍时电压的跌落与快速回升。
- 电流波形图:稳态下A相电流呈现良好的正弦度。
- FFT频谱图:通过对0.3s-0.4s稳态区间进行快速傅里叶变换,分析总谐波畸变情况,验证SVPWM对谐波的抑制效果。
- dq追踪图:由于采用了前馈解耦,d轴电流(有功)能快速跟随电压环指令,q轴电流始终保持在零附近。