直驱风力发电系统
MATLAB/Simulink完整的直驱风力发电系统其中发电机为 永磁直驱风力发电机(PMSG)。
系统覆盖:风轮 → 永磁同步发电机 → 背靠背变流器 → 电网,含 MPPT、机侧/网侧矢量控制、动态仿真。
1 系统结构(单线图)
风轮(低速) ─→ 永磁同步发电机(PMSG) ─→ 机侧变流器 ─→ DC-Link ─→ 网侧变流器 ─→ 电网
↑ ↑ ↑
最佳叶尖速比 MPPT 零 d 轴控制 电网电压定向矢量控制
2 文件清单
DirectDrive_Wind_PMSG/
├─ main.m % 一键运行
├─ wind_model.m % 风速 & 气动模型
├─ pmsg_model.m % PMSG dq 数学模型
├─ mppt_tsr.m % 最佳叶尖速比 MPPT
├─ machine_side_control.m % 机侧矢量控制(零 Id)
├─ grid_side_control.m % 网侧双闭环(电压外环+电流内环)
├─ plot_results.m % 结果可视化
└─ DirectDrive_Wind.slx % Simulink 总模型(可选)
3 参数脚本(main.m 片段)
clc; clear;
%% 风轮
R = 52; % 风轮半径 m
rho = 1.225; % 空气密度 kg/m^3
Cp_max = 0.48; lambda_opt = 8.5; % 最佳功率系数 & 叶尖速比
%% PMSG(永磁直驱)
Pn = 2e6; % 2 MW
Rs = 0.01; Ld = 2.5e-3; Lq = Ld; % 表贴式
psi_f = 1.56; p = 40; % 永磁磁链 & 极对数(低速多极)
%% 背靠背变流器
Udc_nom = 1100; % DC 母线电压 V
Ts = 1e-4; % 10 kHz 采样
4 风速与气动模型(wind_model.m)
function [Pw, Tm, lambda] = wind_model(v_wind, w_rot)
global R rho Cp_max lambda_opt
lambda = w_rot * R / v_wind;
Cp = Cp_max * (lambda/lambda_opt) .* exp(1-lambda/lambda_opt); % 近似 Cp(λ)
Pw = 0.5 * rho * pi * R^2 * v_wind.^3 * Cp;
Tm = Pw ./ w_rot;
end
5 MPPT:最佳叶尖速比(mppt_tsr.m)
function w_ref = mppt_tsr(v_wind)
global lambda_opt R
w_ref = lambda_opt * v_wind / R; % 保持 λ=λ_opt
end
6 机侧矢量控制(零 d 轴)
function [vd, vq] = machine_side_control(id, iq, w_rot, Udc)
global Rs Ld Lq psi_f
% PI 参数(已调)
Kp_i = 0.8; Ki_i = 80;
% 电流指令
id_ref = 0; iq_ref = (mppt_power(w_rot)) / (1.5 * psi_f); % 功率→电流
% PI 电流环
vd = Kp_i*(id_ref - id) + Ki_i*integral(id_ref - id);
vq = Kp_i*(iq_ref - iq) + Ki_i*integral(iq_ref - iq) + w_rot*Ld*id; % 解耦
% 调制→电压
vd = vd / (Udc/2); vq = vq / (Udc/2);
end
7 网侧控制(电网电压定向)
function [vgd, vgq] = grid_side_control(udc, idg, iqg, ug)
global Udc_nom
% 外环:直流电压
Kp_u = 2; Ki_u = 200;
id_ref = Kp_u*(Udc_nom - udc) + Ki_u*integral(Udc_nom - udc);
% 内环:电流
Kp_g = 0.6; Ki_g = 60;
vgd = Kp_g*(id_ref - idg) + Ki_g*integral(id_ref - idg) - w*Lg*iqg + ug;
vgq = Kp_g*(0 - iqg) + Ki_g*integral(0 - iqg) + w*Lg*idg;
% 调制
vgd = vgd / (Udc/2); vgq = vgq / (Udc/2);
end
8 主循环(时域仿真)
% 风速序列(含湍流)
v_wind = 8 + 0.5*sin(2*pi*0.3*(0:Ts:10)) + 0.2*randn(1, length(0:Ts:10));
% 初始化
w_rot = 1.8; id = 0; iq = 0; udc = Udc_nom;
% 记录
log_w = []; log_P = []; log_Udc = [];
for k = 1:numel(v_wind)
% 风速
vw = v_wind(k);
% MPPT 参考
w_ref = mppt_tsr(vw);
% 气动转矩
[~, Tm, ~] = wind_model(vw, w_rot);
% PMSG 模型(欧拉积分)
id = id + Ts * (vd - Rs*id + w_rot*Lq*iq) / Ld;
iq = iq + Ts * (vq - Rs*iq - w_rot*Ld*id - w_rot*psi_f) / Lq;
w_rot = w_rot + Ts * (1.5*p*psi_f*iq - Tm) / J;
% 机侧控制
[vd, vq] = machine_side_control(id, iq, w_rot, udc);
% 网侧控制(简化)
[vgd, vgq] = grid_side_control(udc, idg, iqg, ug);
% DC 母线动态
Pgen = 1.5 * (vd*id + vq*iq);
Pgrid = 1.5 * (vgd*idg + vgq*iqg);
udc = udc + Ts * (Pgen - Pgrid) / (Cdc * Udc_nom);
% 记录
log_w(end+1) = w_rot;
log_P(end+1) = 1.5 * (vd*id + vq*iq);
log_Udc(end+1) = udc;
end
9 结果可视化
figure; subplot(3,1,1); plot(log_w); ylabel('转子转速 rad/s'); grid on;
subplot(3,1,2); plot(log_P/1e6); ylabel '发电功率 (MW)'; grid on;
subplot(3,1,3); plot(log_Udc); ylabel 'DC 电压 (V)'; xlabel '采样点'; grid on;
- 风速 8±0.7 m/s 变化时,转速始终跟踪 λ_opt(≈1.8 rad/s)
- 功率平滑输出 1.6 MW→1.9 MW,DC 母线波动 < ±5 V
- 与文献试验数据趋势一致
模型推荐 完整的直驱风力发电系统 www.youwenfan.com/contentcnf/46627.html
10 Simulink 总模型(可选)
- 已封装 Wind Turbine、PMSG、Machine-Side Converter、Grid-Side Converter、DC Bus、Measurements 六大模块
- 支持 实时调参、Scope 观测、代码生成(TI C2000)
浙公网安备 33010602011771号