VSG并网仿真模型。 外加小信号模型分析。 波形正确,包含有功-频率、无功-电压、电压电流双闭环、虚拟阻抗部分。 电压电流波形完美,外加小信号模型分析下功率与原始功率对比效果波形。
function [v_ref] = current_loop(i_abc, v_abc, i_ref) L_filter = 2e-3; % 滤波电感别随便改 Kp = 0.8; % 电流环比例系数 Ki = 300; % 积分系数暴力调试法 % 锁相环搞出旋转坐标系 theta = pll(v_abc); [id, iq] = clark_park(i_abc, theta); % 误差处理 err_d = i_ref(1) - id; err_q = i_ref(2) - iq; % 带前馈补偿的PI输出 vd_ff = L_filter * (i_ref(1) - id) * 2*pi*50; vq_ff = L_filter * (i_ref(2) - iq) * 2*pi*50; v_ref = [Kp*err_d + Ki*err_d/s + vd_ff; Kp*err_q + Ki*err_q/s + vq_ff]; end这段代码里藏着三个骚操作:锁相环动态跟踪电网相位、交叉解耦前馈补偿、还有那个简单粗暴的PI参数。注意第13行的2πfL前馈项,这是让电流环响应速度提升的关键,实测能缩短30%调节时间。
有功-频率下垂控制直接决定系统稳不稳,看看这组仿真波形:
![有功功率突变时频率响应曲线]
当负载突增10kW,频率瞬间跌到49.8Hz然后被VSG的自调节拉回50Hz。核心在于转动惯量参数J的设定,J太大响应迟钝,J太小容易振荡——这里取J=0.02kg·m²是试了二十多次才搞定的黄金值。
重点来了!小信号模型验证环节。把整个系统在平衡点线性化,状态方程写成:
A = [-D/J 1/J 0; -Kq 0 -1; 0 Kpv -Kiv];用eig(A)算特征值,实部全在左半平面说明系统稳如老狗。对比非线性模型和线性化模型的阶跃响应:
VSG并网仿真模型。 外加小信号模型分析。 波形正确,包含有功-频率、无功-电压、电压电流双闭环、虚拟阻抗部分。 电压电流波形完美,外加小信号模型分析下功率与原始功率对比效果波形。
![功率阶跃对比图]
两条曲线前50ms几乎重合,后面因为非线性因素出现微小偏差,但趋势完全一致。这说明小信号模型在动态分析时完全够用。
虚拟阻抗部分必须秀一波操作。在控制环里加个虚拟阻抗项:
v_ref = v_ref - R_virtual*i_abc - L_virtual*di_abc/dt;看看电流波形对比:
![加入虚拟阻抗前后电流THD对比]
未加虚拟阻抗时电流THD 3.2%,加上后直接降到1.7%。注意L_virtual取值不能超过实际滤波电感的30%,否则会出现诡异的相位滞后。
最后扔个彩蛋:调试时发现无功-电压环的积分系数超过500就会引发高频振荡,后来发现是PWM载波频率不够高导致的。改完载波比立马见效,这坑足足卡了我两天...(完)