双馈感应风力发电机 (DFIG) 系统建模与矢量控制仿真
项目介绍
本项目实现了一个基于纯MATLAB脚本(不依赖Simulink图形化模块)的双馈感应发电机(DFIG)风力发电系统离散时间仿真模型。仿真涵盖了从风速模拟、空气动力学能量转换、机械传动、发电机电磁动态到背靠背变流器(RSC与GSC)矢量控制的完整流程。项目旨在模拟1.5MW风力发电机组在多变风速条件及电网故障(如电压跌落)下的动态响应。
核心功能特性
- 纯代码实现:脱离Simulink模块库,完全使用MATLAB脚本编写系统微分方程与控制逻辑,便于理解底层算法原理。
- 多工况风速模拟:内置混合风速模型,包含基本恒定风、斜坡变化风(阵风模拟)以及正弦扰动风。
- 低电压穿越 (LVRT) 模拟:代码中预设了电网电压跌落逻辑,可模拟在特定时刻(1.5s-1.6s)发生50%深度的三相电压跌落故障,用于测试系统鲁棒性。
- 双PWM变流器协同控制:
* 转子侧变流器 (RSC):基于定子磁链定向 (SFO) 的矢量控制,实现最大功率跟踪 (MPPT) 和无功调节。
* 网侧变流器 (GSC):基于电网电压定向 (GVO) 的矢量控制,维持直流母线电压稳定。
- 完整的物理模型:包含空气动力学$C_p$曲线近似计算、单质块机械传动模型以及基于dq坐标系的电机参数计算。
系统要求
- MATLAB R2018b 或更高版本(推荐)。
- 无需额外的Simulink工具箱,仅需基础MATLAB环境即可运行。
详细功能与算法实现
以下描述完全基于 main.m 源代码的实际逻辑:
1. 初始化与参数配置
代码首先定义了仿真所需的全部物理参数,包括:
- 仿真设置:采样时间设定为100微秒 ($T_s = 1e-4s$),总仿真时长默认为2秒。
- 电网与电机:定义了690V/50Hz电网参数,以及1.5MW DFIG发电机的定转子电阻、电感、互感及对应的漏磁系数。
- 机械系统:设定了发电机与风轮机的惯量、摩擦系数、齿轮箱变比 (1:90) 以及叶片半径 (35m)。
- 控制器增益:预设了RSC和GSC电流环、速度环、电压环以及PLL和变桨控制的PI参数。
2. 仿真主循环逻辑
仿真通过一个
for 循环进行离散时间步进迭代,主要包含以下模块:
#### A. 环境输入生成
* 0-0.5s:8m/s 恒定风。
* 0.5-1.2s:线性增长至约11m/s(模拟阶跃/阵风)。
* 1.2s后:在11m/s基础上叠加正弦扰动。
* 根据时间 $t$ 生成标准三相正弦电压。
* 在 $t > 1.5s$ 且 $t < 1.6s$ 区间内,强制将三相电压幅值减半,模拟电网电压跌落故障。
#### B. 锁相环 (PLL)
- 采用了基于dq坐标系的软件锁相环。
- 通过Park变换将电网电压投影到估计的dv-qv轴。
- 使用PI控制器调节 $v_q$ 趋向于0,从而锁定电网相位及频率,同时输出电网电压幅值估计量。
#### C. 空气动力学与机械系统
- 叶尖速比 ($lambda$) 计算:根据机械转速、齿轮箱变比和当前风速实时计算。
- 风能利用系数 ($C_p$):实现了一个基于 $lambda$ 和桨距角 $beta$ 的非线性经验公式近似计算。
- 转矩计算:由空气动力学公式计算机械功率 $P_m$,进而得到机械转矩 $T_m$。
- 运动方程求解:利用单质块模型微分方程,计算转速变化率 $domega_r/dt$,并更新机械转速和转子位置角。
#### D. 磁链观测与定向
- 采用定子磁链定向 (SFO) 策略。
- 基于电流模型 ($L_s i_s + L_m i_r$) 实时计算定子磁链的d轴和q轴分量。
- 计算磁链角度 $theta_s$,并处理初始时刻的相位对齐问题。
#### E. 转子侧变流器 (RSC) 控制
- 控制目标:解耦控制有功功率(转速/转矩)和无功功率。
- 外环(速度环):
* 根据最佳叶尖速比计算最优转速参考值 $w_{ref}$ (MPPT策略)。
* 速度误差经过PI调节器生成电磁转矩参考值 $T_{e,ref}$,进而转换为q轴电流参考 $i_{qr,ref}$。
* 设定无功功率参考值为0(单位功率因数运行)。
* 计算维持定子磁链所需的d轴电流参考 $i_{dr,ref}$。
* 包含d轴和q轴两个独立的PI控制器。
*
前馈解耦:代码中显式实现了交叉耦合项(如 $omega_{slip}sigma L_r i_{qr}$)的补偿,以消除d-q轴电流的各自动态影响。
*
SVPWM限幅:根据直流母线电压计算最大输出电压模值,对输出电压矢量进行圆形限幅。
#### F. 网侧变流器 (GSC) 控制
- 控制目标:通过电网电压定向 (GVO) 维持直流母线电压稳定。
- 外环(电压环):
* 对比直流母线电压 $V_{dc}$ 与参考值 (1150V),通过PI调节器生成d轴电流参考 $i_{dg,ref}$(控制有功流向电网)。
* 直接设定q轴电流参考 $i_{qg,ref} = 0$。
* 同样包含前馈解耦项和电网电压前馈补偿。
* 对输出控制电压进行SVPWM限幅处理。
#### G. 变桨控制 (Pitch Control)
- 实现了变桨启动判断逻辑:当发电机转速超过额定转速的1.05倍或机械功率超过额定功率时,计算转速误差,准备启动变桨执行机构以限制功率(注:这部分逻辑在代码末尾启动,与主循环集成)。
3. 数据记录
代码在运行过程中初始化了
log 结构体,预留了记录风速、转速、转矩、功率、电压、电流和桨距角等关键变量的数组,用于后续分析。
使用方法
- 确保MATLAB当前工作目录为项目文件夹。
- 在命令窗口输入
main 并回车,或直接运行 main.m 脚本。 - 脚本将初始化参数并开始执行名为
main 的函数。 - 仿真过程主要在内存中进行计算,并更新状态变量。
- (注:由于代码主要是计算逻辑核心,用户需自行添加
plot 命令来绘制 log 结构体中的数据以查看波形)。