第三章:风力发电机组数学模型
做风电仿真这些年,我最大的体会就是:模型决定成败。你想想看,一个风电场几十台机组,每台机组内部又是机械、电气、控制环环相扣。如果不把数学模型搞明白,仿真结果就是空中楼阁。
这一章,咱们就拆开来看。我把风力发电机组分成四个核心模块:风速模型、风力机模型、传动链模型、发电机模型。每个模块我都会结合项目经验来讲,该避的坑一个不落。
核心观点:四个模型不是孤立的。风速驱动风力机,风力机带动传动链,传动链拖着发电机转,发电机再往外送电。一个环节的误差,会像滚雪球一样放大到整个系统。
3.1 风速模型:仿真的起点
风速模型是整台机组仿真的入口。说白了,你给什么风,机组就怎么动。我见过不少新手直接拿恒定风速做仿真,结果控制参数调得再好,一到现场就崩。为什么?因为真实的风是活的。
我个人习惯把风速模型拆成四个分量:
- 基本风:长时间尺度上的平均风速,一般用威布尔分布描述。做稳态分析时,这个就够了。
- 阵风:短时强风冲击,比如突然刮过来的一阵狂风。做电网故障穿越测试时,必须加上。
- 渐变风:风速缓慢变化,比如从3m/s慢慢升到12m/s。这主要考验机组的变桨跟踪能力。
- 湍流风:高频随机波动,最接近真实情况。做疲劳载荷分析时,这个不能省。
我的经验:做并网特性仿真时,至少要用湍流风+阵风的组合。我曾经只用基本风做了一次低电压穿越仿真,结果现场测试时机组直接脱网——因为实际风速波动导致桨距角响应慢了半拍。
风速模型的数学表达,我一般用这个组合形式:
V(t) = V_base + V_gust(t) + V_ramp(t) + V_turb(t)
其中:
V_base = 8.0 // 基本风速,单位m/s
V_gust(t) = A * sin(ω*t) // 阵风,A为幅值
V_ramp(t) = k * t // 渐变风,k为变化率
V_turb(t) = 湍流谱密度函数 // 常用Kaimal谱或von Karman谱
3.2 风力机模型:从风到机械能
风力机模型的核心就一个东西——风能利用系数Cp。Cp值决定了你能从风中捞多少能量。理论上贝茨极限是0.593,但实际工程中,好的机组也就0.45左右。
Cp是叶尖速比λ和桨距角β的函数。这个关系我建议直接用查表法,别搞复杂的解析拟合。为什么?因为真实机组的Cp曲线都是厂家实测出来的,你硬套公式反而容易出错。
| 叶尖速比 λ | 桨距角 β=0° | 桨距角 β=5° | 桨距角 β=10° |
|---|---|---|---|
| 4.0 | 0.25 | 0.18 | 0.10 |
| 6.0 | 0.42 | 0.32 | 0.20 |
| 8.0 | 0.45 | 0.35 | 0.22 |
| 10.0 | 0.38 | 0.28 | 0.15 |
气动转矩的计算公式很简单:
T_aero = 0.5 * ρ * A * V³ * Cp(λ, β) / ω_r
其中:
ρ = 1.225 kg/m³ // 空气密度
A = π * R² // 风轮扫掠面积
V = 风速 // 来自风速模型
ω_r = 风轮转速 // 来自传动链模型
注意:这里有个常见的坑——Cp曲线在低风速区和高风速区差异巨大。我曾经在调试一个2MW机组时,发现仿真功率总比实测低10%。查了三天,最后发现是Cp查表时λ算错了。叶尖速比λ = ω_r * R / V,这个R是风轮半径,不是叶片长度!
3.3 传动链模型:机械扭振的源头
传动链模型,说白了就是描述风轮和发电机之间怎么传力的。我建议用两质量块模型,一个质量块代表风轮(含低速轴),另一个代表发电机转子(含高速轴),中间用弹簧和阻尼连接。
为什么用两质量块?因为实际工程中,传动链的扭振频率通常在1-3Hz,这个频段刚好和电网的次同步振荡有交互。你想想看,如果模型太粗糙,把传动链当成刚性连接,那扭振就完全被忽略了——这在做次同步振荡分析时是致命的。
两质量块模型的微分方程:
J_r * dω_r/dt = T_aero - T_shaft
J_g * dω_g/dt = T_shaft - T_em
其中:
T_shaft = K * (θ_r - θ_g) + D * (ω_r - ω_g)
J_r:风轮转动惯量
J_g:发电机转动惯量
K: 传动链等效刚度
D: 传动链等效阻尼
θ_r, θ_g:风轮和发电机的角位移
我的习惯:参数K和D最好从厂家提供的扭振测试数据反推。如果拿不到,可以用经验公式:K ≈ (ω_n²) * (J_r * J_g)/(J_r + J_g),其中ω_n是扭振固有频率。我一般取ω_n = 2π * 1.8 rad/s。
3.4 发电机模型:电与磁的博弈
发电机模型是四个模型里最复杂的。目前主流机型就两种:双馈异步发电机(DFIG)和永磁同步发电机(PMSG)。我两种都做过,说说我的感受。
DFIG模型:转子侧有滑环和变流器,定子直接并网。它的数学模型基于dq坐标系下的电压方程和磁链方程。优点是变流器容量小(只有30%左右),缺点是电刷滑环需要维护。
PMSG模型:转子是永磁体,没有滑环,全功率变流器。数学模型相对简单,因为不需要考虑励磁电流。但变流器容量是100%,成本高一些。
DFIG的电压方程(dq坐标系):
定子电压:
u_sd = R_s * i_sd + dψ_sd/dt - ω_s * ψ_sq
u_sq = R_s * i_sq + dψ_sq/dt + ω_s * ψ_sd
转子电压:
u_rd = R_r * i_rd + dψ_rd/dt - (ω_s - ω_r) * ψ_rq
u_rq = R_r * i_rq + dψ_rq/dt + (ω_s - ω_r) * ψ_rd
避坑指南:我曾经在搭建DFIG模型时,忽略了转子侧变流器的限流环节。结果仿真中电网发生三相短路,模型给出的转子电流飙到了额定值的5倍——这在现实中早就烧变流器了。记住,变流器的过流能力通常只有1.2-1.5倍,仿真时必须加限幅。
发电机输出的电磁功率:
P_em = 1.5 * (u_sd * i_sd + u_sq * i_sq) // DFIG
P_em = 1.5 * (u_sd * i_sd + u_sq * i_sq) // PMSG(形式相同,但参数不同)
3.5 四个模型的联立求解
模型都搭好了,怎么让它们一起跑?我建议用分步迭代法。每个仿真步长内,按这个顺序求解:
- 风速模型输出V(t)
- 风力机模型根据V(t)和当前ω_r计算T_aero
- 传动链模型根据T_aero和T_em更新ω_r和ω_g
- 发电机模型根据ω_g和电网条件计算T_em和P_em
- 检查收敛,不满足则回到第2步迭代
仿真步长我一般取0.001秒(1ms)。为什么?因为传动链扭振频率在2Hz左右,发电机电磁暂态在50Hz左右,1ms的步长能保证数值稳定性。步长太大,仿真会发散;步长太小,计算量又受不了。
总结一下:四个模型环环相扣,任何一个模型出问题,整个仿真就废了。风速模型给错了风,风力机算出来的转矩就是错的;传动链参数不对,发电机转速就抖得厉害;发电机模型限幅没加,仿真结果就是天方夜谭。
我建议你从最简单的模型开始——先拿恒定风速+刚性传动链+理想发电机跑通流程,再逐步加入湍流风、扭振、变流器限幅等细节。一口吃不成胖子,仿真也是。