双馈风机DIFG仿真模型《内含报告》资料包含两个仿真模型 首先建立了双馈风力发电机的数学模型,列出了双馈风力发电机的基本电磁方程、能量关系方程,并以此为基础设计了双 PWM 控制系统,此系统转子侧是基于转子磁链定向的,定子侧即为普通的 PWM 整流器然后在 Matlab/Simulink 平台搭建了并网后的控制模型,并搭建了一个简单的双馈风力发电机的过电流保护仿真过程中根据实际风力发电机工作时输入机械转矩改变的情况对双馈风力发电机的输入转矩进行了改变,从而分析了双馈风力发电机在稳定频率方便所起的重要作用本仿真也间接反映了双 PWM 控制系统设计的正确性

首先得先搭底层的数学框架对吧?毕竟双馈机的核心就是定子直接挂电网、转子接变流器,电磁关系绕来绕去的。我最开始翻教材的时候头都大,后来把基本方程列出来才捋顺:定子转子的电压方程、磁链方程,还有能量守恒的那几个式子,都是后续做控制的底子。

我当时先写了个参数初始化的小脚本,省得每次改参数都要翻半天模型:

% 双馈风机基本参数初始化,全用标幺值,省得算额定值头疼
Rs = 0.0037; % 定子电阻
Rr = 0.0053; % 转子电阻
Ls = 0.17;  % 定子总电感(漏感+励磁)
Lr = 0.15;  % 转子总电感
Lm = 0.145; % 励磁互感
J = 0.5;    % 转动惯量
pn = 2;     % 极对数

这个脚本后来直接嵌入到Simulink模型的初始化函数里,每次开模型直接加载,省老事了。

接下来就是核心的双PWM控制系统了——转子侧用转子磁链定向,定子侧就是普通的PWM整流器。先说转子侧,这个是双馈机控制的灵魂,说白了就是把转子的dq轴坐标系对准转子磁链,让q轴的磁链分量清零,这样控制起来就跟调直流电机一样简单。我当时写的电流环控制代码大概长这样:

% 转子磁链定向的电流环控制,前馈解耦必须加!不然会互相干扰
% 先算转子磁链的dq分量
Psi_rd = Lm*Isd + Lr*Ird;
Psi_rq = Lm*Isq + Lr*Irq;
% 定向之后q轴磁分量为0,所以只留d轴的磁链
% 前馈解耦项,用来抵消dq轴之间的耦合
Urd_ff = -omega*Psi_rq + Rs*Ird + d(Psi_rd)/dt;
Urq_ff = omega*Psi_rd + Rs*Irq + d(Psi_rq)/dt;
% PI调节器输出加上前馈,得到最终的转子电压指令
Kp_r = 10; Ki_r = 100; % 别直接抄,要根据自己的参数调
Urd_cmd = Kp_r*(Ird_ref - Ird) + Ki_r*int(Ird_ref - Ird) + Urd_ff;
Urq_cmd = Kp_r*(Irq_ref - Irq) + Ki_r*int(Irq_ref - Irq) + Urq_ff;

别小看这个前馈解耦,我一开始没加的时候,转子电流的d轴和q轴总是互相串,调PI参数调了快一下午,加了之后瞬间就稳了,简直神了。

然后是定子侧的网侧PWM整流器,这个就简单点,主要任务就是维持直流母线电压稳定,不然转子侧的变流器供电不稳,整个系统直接炸。我当时用的是电网电压定向,实现单位功率因数,代码大概是这样:

% 网侧整流器控制,d轴控无功(这里设为0,单位功率因数),q轴控直流母线
Vdc_ref = 1.2; % 直流母线参考电压
Vdc_meas = (Udc1 + Udc2)/2;
% 直流环PI输出作为q轴电流参考
Kp_vdc = 5; Ki_vdc = 50;
Iq_ref = Kp_vdc*(Vdc_ref - Vdc_meas) + Ki_vdc*int(Vdc_ref - Vdc_meas);
Id_ref = 0; % 不吸收无功,单位功率因数
% 电流环PI参数
Kp_i = 8; Ki_i = 80;
Is_dq = rot(Is_ab, -theta_grid); % 把定子电流转到dq轴
Id = Is_dq(1); Iq = Is_dq(2);
% 加上电网电压的前馈解耦
Us_grid_d = abs(omega*psi_m); % 电网电压d轴分量
Us_grid_q = 0;
Usd_cmd = Kp_i*(Id_ref - Id) + Ki_i*int(Id_ref - Id) - omega*L*Iq + Us_grid_d;
Usq_cmd = Kp_i*(Iq_ref - Iq) + Ki_i*int(Iq_ref - Iq) + omega*L*Id + Us_grid_q;

这个部分主要就是盯着直流母线电压,只要它稳了,整个系统的供电就没问题。

双馈风机DIFG仿真模型《内含报告》资料包含两个仿真模型 首先建立了双馈风力发电机的数学模型,列出了双馈风力发电机的基本电磁方程、能量关系方程,并以此为基础设计了双 PWM 控制系统,此系统转子侧是基于转子磁链定向的,定子侧即为普通的 PWM 整流器然后在 Matlab/Simulink 平台搭建了并网后的控制模型,并搭建了一个简单的双馈风力发电机的过电流保护仿真过程中根据实际风力发电机工作时输入机械转矩改变的情况对双馈风力发电机的输入转矩进行了改变,从而分析了双馈风力发电机在稳定频率方便所起的重要作用本仿真也间接反映了双 PWM 控制系统设计的正确性

然后就是第二个完整的仿真模型了——把刚才的控制逻辑都整合到Simulink里,加上并网开关、过流保护,还有可以调整输入机械转矩的模块。我当时特意加了过流保护,毕竟实际风机里这个太重要了,代码大概是这样:

% 转子过流保护逻辑,超过1.2倍额定电流就限流
Ir_max = 1.2; 
Ir_mag = sqrt(Ird^2 + Irq^2);
if Ir_mag > Ir_max
    scale = Ir_max / Ir_mag;
    Ird_ref = Ird_ref * scale;
    Irq_ref = Irq_ref * scale;
    disp('警告:触发转子过流保护,已自动限流');
end

我第一次做仿真的时候没加这个,突然把输入转矩拉到1.5pu,转子电流直接飙到1.6pu,模型直接崩了,后来加了这个就好多了,会自动把电流压到阈值里。

最有意思的是测试输入转矩变化对电网频率的影响。我用阶跃信号把机械转矩从1pu升到1.5pu,跑了10秒的仿真,然后用Matlab脚本导出数据画图:

% 运行仿真并绘图
opts = simset('StopTime', '10');
sim('DFIG_Full_Model', opts);
figure('Name','双馈风机转矩阶跃测试结果');
subplot(2,1,1);
plot(tout, P_stator, 'LineWidth',1.5); title('定子输出有功功率'); grid on;
subplot(2,1,2);
plot(tout, f_grid, 'LineWidth',1.5); title('电网频率'); grid on;

跑出来的结果让我挺惊喜的:虽然输入转矩突然变大了,但双馈机的转子变流器可以快速调整转子电流,把有功功率稳定在新的设定值附近,电网频率几乎没怎么飘——这也就是为啥双馈风机现在是并网主流的原因之一,能快速响应负载和输入转矩的变化,稳定电网频率。

最后跑了好几轮仿真,不管是转矩阶跃还是电压波动,整个系统都没出现大的震荡,也算是间接验证了这个双PWM控制系统的设计是没问题的。

对了,我搭模型的时候还踩了个坑:一开始把定子和转子的相序搞反了,并网的时候直接触发了短路保护,吓我一跳,后来改了相序就好了,大伙搭的时候一定要注意相序!

总的来说这俩模型算是把双馈风机的核心东西都覆盖了,不管是想搞理论分析还是改改参数做仿真测试都能用,要是有需要的可以喊我要文件,不过还是建议自己动手搭一遍,印象真的深很多。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐