基于MATLAB的风力发电机平均值仿真模型
项目介绍
本项目是一个在MATLAB环境中构建的永磁同步发电机(PMSG)风力发电系统平均值(Average Value Model, AVM)仿真模型。该模型旨在通过数学方程直接模拟系统的动态行为,而非模拟电力电子器件的高频开关动作。通过忽略机侧和网侧变换器的开关损耗与高频谐波,模型将变换器等效为受控电压源,在保留系统基波动态特性(如功率响应、直流母线电压波动、转速变化)的同时,极大地提高了仿真速度,适合长周期的系统级研究。
功能特性
- 平均值建模 (AVM):完全忽略IGBT/MOSFET的开关过程,采用受控电压源/电流源模拟变换器行为,显著提升计算效率。
- 全系统物理建模:涵盖了从风能捕获(空气动力学)、机械传动、发电机电磁暂态到并网接口的全链路物理过程。
- 非线性空气动力学:集成了基于叶尖速比($lambda$)和桨距角($beta$)的非线性$C_p$特性曲线,模拟真实的风轮机特性。
- 双闭环矢量控制:
*
机侧控制 (MSC):采用转速环和电流环的双闭环FOC控制,通过调节电磁转矩实现最大功率跟踪(MPPT)。
*
网侧控制 (GSC):采用电压环和电流环的双闭环控制,维持直流母线电压稳定,并实现单位功率因数并网。
- 最大功率点跟踪 (MPPT):基于最佳叶尖速比(TSR)算法,根据由于风速变化自动计算最佳转速参考值。
- 抗扰动测试:内置阵风阶跃与随机噪声风速模型,用于验证控制系统的鲁棒性。
系统要求
- MATLAB R2016b 或更高版本
- 无需Simulink(纯代码实现,通过脚本直接求解微分方程)
使用方法
- 确保MATLAB的工作路径已切换至脚本所在文件夹。
- 直接运行主脚本。
- 控制台将实时输出仿真进度(总时长预设为2秒)。
- 仿真结束后,程序将自动绘制波形图(注:脚本末尾包含绘图指令)。
---
模型实现细节与算法分析
本项目完全基于MATLAB代码(main.m)实现,核心逻辑采用欧拉法(Euler Method)进行离散化迭代求解。以下是对代码具体实现逻辑的详细分析:
1. 物理环境与参数设定
仿真模拟了一台
2MW级的风力发电机。
- 时间设定:仿真步长为100微秒 ($1e-4s$),不仅能保证控制回路的数值稳定性,也能捕捉到较快的电气动态。
- 风机参数:叶轮半径40米,空气密度1.225 $kg/m^3$。
- 发电机参数:模拟隐极式永磁同步发电机(PMSG),定子电感 $L_d=L_q$。
2. 空气动力学与机械子系统
代码在每个仿真步长内实时计算风能捕获过程:
- 风速模型:基础风速设为10m/s,在仿真进行到0.5秒时阶跃至12m/s,并叠加了正弦波和高斯白噪声以模拟自然风的随机性。
- 变桨控制:实现了一个简化的逻辑。当机械转速超过35 rad/s时,逐步增加桨距角 $beta$ 以限制转速;反之则减小 $beta$ 回到0度。
- 风能利用系数 ($C_p$):使用经典的非线性经验公式计算,该公式是叶尖速比 $lambda$ 和桨距角 $beta$ 的函数。
- 转矩计算:根据 $P_{aero} = 0.5 rho pi R^2 v^3 C_p$ 计算机械功率,进而得到机械转矩 $T_m$。
- 单质块机械模型:忽略齿轮箱柔性,采用单质块模型。通过求解微分方程 $domega_m/dt = (T_m - T_e - Bomega_m)/J$ 更新机械转速。
3. 最大功率点跟踪 (MPPT)
代码不仅模拟物理对象,还实现了控制算法。MPPT部分采用
最佳叶尖速比法:
根据当前风速 $v_w$,计算发电机转速参考值 $omega_{ref} = lambda_{opt} cdot v_w / R$。为了防止超速,代码对参考转速进行了硬限幅(最大32 rad/s)。
4. 机侧变流器控制 (MSC)
采用矢量控制(FOC)策略,目标是控制发电机转速。
- 坐标变换:虽然代码中未显式出现Park变换函数,但直接在dq旋转坐标系下进行计算。
- 速度环 (外环):PI控制器根据转速误差 ($omega_{ref} - omega_m$) 输出电磁转矩参考值 $T_{e_ref}$。
- 电流环 (内环):
* 基于 $T_e = 1.5 p psi_f i_q$,将转矩参考转换为 $q$ 轴电流参考。
* $d$ 轴电流参考设为0(ZDPC策略),以最小化定子铜耗。
* 两个PI控制器分别调节 $i_d$ 和 $i_q$,并引入了电压前馈解耦项($u_{decouple}$),抵消电机反电动势和交叉耦合项的影响。
* 输出结果直接作为发电机的端电压 $v_d, v_q$ 参与电气方程求解(体现了平均值模型的特点)。
5. 网侧变流器控制 (GSC)
采用电网电压定向矢量控制,目标是维持直流母线电压稳定。
- 定向方式:假设电网电压矢量完全对齐于 $d$ 轴($V_{gq}=0$)。
- 电压环 (外环):PI控制器根据直流母线电压误差 ($V_{dc_ref} - V_{dc}$) 输出 $d$ 轴电流参考值。注意代码中添加了负号,表明定义该电流为流出直流侧或流入电网方向。
- 无功控制:$q$ 轴电流参考设为0,通过控制输出电流与电网电压同相位来实现单位功率因数。
- 电流环 (内环):调节网侧电感电流,同样包含电网电压的前馈解耦,输出逆变器侧电压参考 $v_{inv}$。
6. 电气系统动态求解
这是AVM模型的核心,代码通过数值积分(
state = state + derivative * Ts)更新电气状态:
- 发电机电气方程:根据定子电压方程 $v = R i + L di/dt + jomega L i + E$,求解 $d i_{dq}/dt$。
- 直流母线动态:根据功率平衡原理,计算流入功率(发电机侧)和流出功率(电网侧),利用电容微分方程 $C dV_{dc}/dt = I_{in} - I_{out}$ 更新直流电压。模型假设变换器无损耗。
- 网侧L滤波器动态:根据 $v_{inv} - v_{grid} = L_g di_g/dt + R_g i_g$ 更新网侧电流。
7. 数据记录
仿真过程中,程序记录了以下关键数据以供后续分析:
- 风速与机械转速
- 电磁转矩
- 风能利用系数 ($C_p$)
- 并网有功/无功功率
- 直流母线电压
- 三相并网电流(通过反Park变换重建)