光伏MPPT虚拟同步发电机(VSG)并网仿真模型 结构:前级光伏板采用扰动观察法最大功率跟踪给定值,然后将该功率通过直流母线电容电压进行功率解耦并经过逆变器输送给右侧的负载和电网 控制:光伏Boost采用经典的扰动观察法,逆变器采用直流母线电容电压外环+VSG控制结合的方式,其实直流母线电容电压外环作为一个补偿环节加到VSG给定参考功率,通过PI控制维持直流母线电容电压在给定值,当光伏功率过大的时候将造成电容电压上升,经过闭环调制VSG输出功率来调节功率使得电容电压下降,反之同理。
光伏并网系统玩的就是个动态平衡,最近在搭一个带VSG控制的仿真模型,发现里头有几个有意思的细节值得唠唠。这个模型前级用光伏板配合扰动观察法追最大功率点,后级逆变器既要带本地负载又要往电网送电,中间全靠那个直流母线电容扛着功率波动。
MPPT这活儿怎么干利索?
先看Boost电路这头的扰动观察法实现。咱们直接上核心代码:
delta_D = 0.01 # 扰动步长 P_prev = 0 D_prev = 0.5 while True: V_pv = read_voltage() I_pv = read_current() P_now = V_pv * I_pv if P_now > P_prev: D = D_prev + delta_D if (D_prev > D_prev_last) else D_prev - delta_D else: delta_D = -delta_D D = D_prev + delta_D D_prev_last = D_prev D_prev = D apply_duty_cycle(D) # 更新占空比 sleep(0.1)这代码有个坑:当功率变化方向反转时,得马上调转扰动方向。注意那个delta_D的正负号翻转,实测中发现少了这步操作会导致在最大功率点附近反复横跳。用示波器抓光伏端电压波形时,能看到典型的三角波震荡,幅度控制在3%以内就算合格。
电容电压的跷跷板游戏
直流母线电容就是个能量缓冲池,这里的外环控制才是精髓。当光伏发电突然暴增,电容电压会被顶起来,这时候VSG得赶紧加大输出功率把电压压回去。控制逻辑里藏着个数学魔术:
// VSG功率参考值计算 float power_ref = vsg_base_power + kp*(vdc_set - vdc_actual) + ki*integral_error;这里直接把电压偏差通过PI环节叠加到VSG的基准功率上,相当于给虚拟同步机装了个自动油门。参数整定有个小窍门:先把ki设零,调kp到系统刚开始震荡的临界值,然后取1/5这个值,再慢慢加ki消除静差。
VSG的核心代码长啥样?
虚拟同步机的关键在模拟转动惯量,这段代码实现了功率-频率的动态特性:
function [omega, theta] = vsg_control(P_ref, Q_ref, V, dt) persistent J D omega_n P_prev; % 惯性环节计算角速度 P_delta = P_ref - P_prev; omega = omega_n + (P_delta/(J*omega_n) - D*(omega - omega_n)) * dt; % 相位积分 theta = theta + omega*dt; % 电压控制(简化版) V_out = V + k_q*(Q_ref - Q_actual); P_prev = P_ref; end重点在转动惯量J这个参数,它决定了系统对功率波动的响应速度。仿真时试着把J从0.5调到5,能明显看到并网功率曲线从"精神小伙"变成"树懒速度"。不过J太大容易导致电容电压调节跟不上,得找个折中点。
实战踩坑记录
- 电容容量别抠门:试过把4700uF换成2200uF,结果光照突变时电压波动直接超限10%
- VSG的阻尼系数D别乱设:调大D能快速抑制震荡,但过大会导致系统响应迟钝
- 采样周期要匹配:MPPT的扰动周期如果比VSG控制周期快,系统容易抽风
- 并网瞬间预同步很重要:曾忘记加锁相环,导致逆变器输出和电网相位差30度,直接炸了虚拟保险丝
跑起来的仿真模型里,最治愈的画面是当云层遮挡光伏板时,看着VSG自动调整功率输出,直流电压稳稳地维持在650V红线附近。这种动态平衡的魔法,正是电力电子控制的魅力所在。