直驱风力发电系统

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)
posted @ 2025-09-05 11:27  小前端攻城狮  阅读(53)  评论(0)    收藏  举报