四端柔性直流输电系统像搭积木似的,搞电力的小伙伴最近都在玩这个。今天咱们拆开看看Simulink里怎么折腾这玩意儿,特别是当风机遇到低电压时怎么用换流器"撑场子"。
先撸个四端网络框架,这就像造个电路版的立交桥。在Simulink里拖几个MMC换流器模块,用直流母线串起来组成环网。关键得让每个换流站能独立控制,这里面的门道全在换流器控制模块里:
资料来源 http://scbbb.cn/ddfdf
function MMC_Control(u_dc, i_ac)
% 核心控制逻辑
P_ref = 0.98 * u_dc; % 直流电压参考值
Q_comp = calculate_Q(i_ac); % 实时无功计算
dq_currents = abc2dq(i_ac, theta); % 坐标变换
% 双闭环控制部分
PI_voltage = pidtune(u_dc, P_ref, 'PI');
PI_current = pidtune(dq_currents, [Id_ref; Iq_ref], 'PI');
% 生成PWM脉冲
PWM_gen(out_voltage, carrier_freq);
end
这段伪代码藏着两个重点:直流电压外环维持母线稳定,电流内环负责精确跟踪。就像开车时脚踩油门控制车速,手还得把方向盘调整方向。
说到无功补偿,这玩意儿比打游戏开外挂还刺激。当某个交流母线电压跌到0.9pu以下,对应的换流器会自动切换成定电压模式。这时候风机该干嘛?直接上硬核支援:
```simulink
% 低电压穿越控制逻辑
if V_pcc < 0.9
Q_inj = K_q * (1 - V_pcc/V_nom)^2; % 动态无功注入
setOperationMode('VoltageSupport');
enableCurrentLimit(1.1); % 允许短时过电流
end
这个策略好比在电网崴脚时及时递上拐杖,通过动态调整无功电流系数K_q,既能撑住电压又不让设备过载。
直流母线电压稳定是整套系统的命门,试过用传统PI控制的小伙伴都知道,多端系统里容易"打架"。这里祭出改进型下垂控制:
% 电压下垂特性修正
function u_dc_ref = DroopControl(P, Q)
base_voltage = 500; % 基准电压(kV)
k_p = 0.05; % 有功下垂系数
k_q = 0.03; % 无功补偿系数
delta_u = k_p * (P - P_ref) - k_q * (Q - Q_ref);
u_dc_ref = base_voltage - delta_u;
end
这个算法妙在把有功功率偏差和无功补偿打包处理,相当于给每个换流器装了智能弹簧,系统功率波动时能自动找平衡点。实测时记得把仿真步长调到50us以下,不然数值振荡会让你怀疑人生。
跑完仿真别急着看波形,先检查换流器损耗曲线。曾经有次参数调猛了,模块损耗直冲3%,散热器差点原地起飞。好的控制策略应该像太极拳,看似柔和实则内力绵长,维持直流电压波动在±2%以内才算合格。
在电力系统中捣鼓柔性直流输电,就像给电网装了个智能调节器。四端网络结构特别适合多电源接入的场景,比如风光储一体化的场站。咱们今天不聊那些枯燥的理论,直接上手Simulink模型看看怎么让四个换流器乖乖听话。
打开Simulink库里的VSC模块,拖出四个换流器连成环状拓扑。关键在控制系统的参数配置——双击换流器模块,核心是这段dq轴电流控制代码:
function Idq = current_controller(Vdc, Vd_ref, Vq_ref, Id_meas, Iq_meas)
Kp = 0.5; % 别照搬这个数,实际得做参数整定
Ki = 20;
persistent integral_d integral_q;
if isempty(integral_d)
integral_d = 0;
integral_q = 0;
end
error_d = Vd_ref - Id_meas;
error_q = Vq_ref - Iq_meas;
integral_d = integral_d + error_d * 0.001; % 采样时间1ms
integral_q = integral_q + error_q * 0.001;
Idq = [Kp*error_d + Ki*integral_d;
Kp*error_q + Ki*integral_q];
end
这段代码里的门道在于积分项的抗饱和处理,实际工程中得加个积分限幅,不然系统震荡起来要命。注意Vd_ref不是固定值,它连着后面的直流电压控制环,这个才是整个系统的稳压核心。
碰上电网电压突然塌腰(比如降到0.8pu),风机得马上切无功支撑模式。在风机侧换流器控制里加个状态判断:
if grid_voltage < 0.9
Q_ref = 1.5 * (0.9 - grid_voltage); % 1.5是斜率系数
mode = 'VoltageSupport';
else
Q_ref = Pref * tan(acos(target_pf));
mode = 'Normal';
end
这个斜率系数可不能拍脑袋定,得算着变压器和线路的阻抗来。有个坑要注意——切换模式时记得把积分器重置,否则控制量会跳变。
直流母线电压稳定得像老司机握方向盘,靠的是功率平衡算法。在Simulink里搭个这样的自适应PID:
classdef Vdc_controller < matlab.System
properties
Kp = 0.02;
Ki = 0.1;
Kd = 0.005;
end
methods
function [P_ref] = stepImpl(obj, Vdc_meas, Vdc_set)
persistent integral prev_error
if isempty(integral)
integral = 0;
prev_error = 0;
end
error = Vdc_set - Vdc_meas;
integral = integral + error * 0.001;
derivative = (error - prev_error) / 0.001;
P_ref = obj.Kp*error + obj.Ki*integral + obj.Kd*derivative;
prev_error = error;
end
end
end
这里用了面向对象封装,比用Function模块方便参数整定。调试时重点看Kd项,大了容易引发高频振荡,海上风电场景尤其得小心。
整套系统调通了之后,在四端环网里做个短路实验。Simulink的示波器上看到各换流器的无功出力像跳集体舞似的自动分配,直流母线电压波动控制在±2%以内,这活儿就算成了。别忘了在模型里加几个这样的监测点:
add_exec_event_listener('PostOutputs', @(t,y) record_data(t,y));
搞电力系统仿真就像炒菜,火候(参数)差一点味道(波形)就变。多备几组不同天气的工况数据往里灌,保准模型不会成为纸上谈兵的摆设。