Matlab 永磁同步风力发电机 并网故障 低电压穿越策略 可以设计串电阻Bar策略 也可以增加三相故障
先看简单粗暴的串电阻方案。在Matlab里建模时,关键要拿捏故障发生时直流母线电压的动态平衡。上代码:
matlab
function R_calc = dynamic_resistor(Vdc_nominal, Vdc_fault)
% 计算实时需要的电阻值
delta_V = abs(Vdc_nominal - Vdc_fault);
R_base = 0.05; % 基准电阻值
R_calc = R_base * (1 + tanh(delta_V*10)); % 非线性调整
disp(['当前投入电阻值:',num2str(R_calc),'Ω']);
end
这段代码的骚操作在于用双曲正切函数实现电阻值的非线性调整------电压跌得越狠,电阻增加越猛,但不会无限增大。就像开车时点刹,既能减速又避免抱死。注意第5行的乘数10控制灵敏度,调太小会响应迟钝,太大可能引发震荡。

再来说说三相短路故障模拟。在Simulink里搭模型时,别傻乎乎地用默认断路器模块:
matlab
% 配置三相故障参数
set_param('PMWG_Model/Three_Phase_Fault',...
'TransitionTimes', [0.1 0.3],... % 故障起止时间
'GroundFault','on',...
'ExternalControl','on');
这里暗藏玄机:接地故障选项开启后,故障电流路径发生变化,直接影响发电机电磁转矩计算。曾有老铁翻车就是因为没勾选这个,仿真结果和实测差出三条街。
进阶玩法是Crowbar电路+Chopper的combo技。看这段保护逻辑:
matlab
if any(V_grid < 0.85)
activate_crowbar('time_delay', 2e-3);
chopper_duty = min((0.9 - V_grid)/0.25, 0.7);
set_chopper(chopper_duty);
disp('组合技触发!');
end
2ms的延时不是拍脑袋来的,要避开控制系统的正常调节周期。Chopper占空比计算式暗含负反馈思想------电压掉得越多,能量泄放越狠,但用min函数限幅防止过冲。

模型跑起来后,重点观测q轴电流响应。用这段脚本抓取关键数据:
matlab
scope_data = simlog.PMSG.Electrical.q_axis.Current.series.values;
t = simlog.PMSG.Electrical.q_axis.Current.series.time;
findpeaks(scope_data,t,'MinPeakHeight',1.2*I_rated);
峰值电流超额定值20%是分水岭,超过就得回头调电阻参数。有个坑要注意:永磁体退磁风险与电流积分量相关,不能只看瞬时值,得加个积分器监控累计发热量。
最后说个邪道操作------在故障期间临时修改PWM载波频率。虽然教科书上没写,但实测能降低电流谐波:setpwm freq(original_freq (1 + 0.3 sin(2pi5*t))); 这种动态调频相当于给系统加了"电子减震器",不过要小心别踩到谐振点。
