Q(V)下垂控制引发配电网低频振荡的机理与特征值稳定性分析方法

发布时间:2026/10/15 23:00:20
Q(V)下垂控制引发配电网低频振荡的机理与特征值稳定性分析方法 那大概是某台分布式光伏并网项目里最常见的一幕中午光照一上来馈线末端电压从 0.98 一路爬到 1.06变压器分接头已经调到头电容柜里那几组电容器投了又切、切了又投最后反而是台区里那台并网逆变器靠 Q(V) 下垂把电压压了回去。如果你做过配电网电压治理或者微网控制仿真应该对这种场景不陌生。Q(V) 下垂从静态角度看特别招人喜欢电压高了就多吸无功电压低了就多发无功一条曲线把电压和无功绑在一起天然就是负反馈。可真正把它装进带线路阻抗、带锁相环、带测量滤波的动态系统里它就成了一个完整的闭环静态上再合理动态上也可能出现振荡。这篇文章我想把这条从静态直觉到动态稳定分析的路完整走一遍先讲 Q(V) 下垂在配电网里为什么可能引发振荡再把它写进状态空间模型做小信号稳定性分析给出一套可以在 Matlab 里做特征值扫描的实现思路最后用 Simulink 验证失稳边界顺带分享几个实际工程里踩过的坑。这里的特征我理解成一语双关既指电压-无功特征曲线这个控制依据也指后面判断稳定用的特征值分析。适合正在做分布式电源并网仿真、微网电压控制的研究生和工程师参考。1. Q(V)下垂控制为什么会在配电网里引发振荡1.1 静态特性看着合理动态环路藏着风险先回顾一下 Q(V) 下垂的基本形式。控制器测量并网点正序电压幅值经过低通滤波得到 V_f再与参考电压 V_ref 比较按下垂系数 Kq 算出无功指令Q_ref Q0 - Kq * (V_f - V_ref)这条式子的方向很清楚V_f 比 V_ref 高Q_ref 就往下压意味着变流器少发无功甚至吸收无功V_f 低就多发无功把电压顶上去。实际工程里还会加死区和无功限幅电压在死区内不动作超出死区后线性调节到达 Qmax 后保持最大值。问题在于这条静态特性一旦接进真实系统它描述的是一个稳态映射而系统响应这个映射需要时间。电压测量有滤波延时无功电流指令过电流内环需要响应时间PWM 调制和功率计算也有等效延迟锁相环还在不停追踪电网相位。所有这些环节串在一起Q(V) 从控制规则变成了反馈环路。环路里只要有足够大的增益、足够多的相位滞后负反馈就会在某一个频率点变成正反馈低频电压振荡就这么出来了。我见过不少同行第一反应是去查 Q(V) 曲线斜率是不是画反了或者死区是不是设错了但真正的问题往往出在环路动态上。这也是为什么整个行业现在特别强调变流器驱动稳定性——它讨论的不再是变压器分接头和电容器组的传统电压稳定而是变流器控制自身与电网阻抗交互出的新模态。1.2 变流器驱动稳定性的本质小扰动下的负反馈失效把 Q(V) 环路画成信号流图会更清楚并网点电压 V 经过测量滤波得到 V_fV_f 经过下垂系数 Kq 产生无功指令无功指令经过电流内环变成实际无功输出无功输出通过电网阻抗反过来影响并网点电压。这个环路的开环增益大约等于 Kq 乘以电压对无功的灵敏度 S_VQ。灵敏度不是无限大的弱电网里 S_VQ 可以很大强电网里则很小。环路里每一个惯性环节都会贡献相位滞后一阶测量滤波最大滞后 90 度电流内环再贡献几十度PLL 动态再贡献一部分。滞后累加到 180 度时负反馈就变成正反馈原本该把电压偏差拉回来的动作反而变成了持续加剧偏差的激励源。这跟麦克风对着音箱啸叫是同一个道理静态看音量处处合理动态上相位凑够了系统就自己叫起来。所以判断 Q(V) 控制稳不稳定不能只看曲线斜率和死区必须看闭环系统矩阵的特征值。只要有一对共轭特征值跨过虚轴系统就进入振荡失稳。特征值分析的价值就在这里它把会不会振振多快哪个环节在参与振荡一次性回答了。1.3 配电网特有的R/X比与弱电网因素输电网里线路 R/X 很小有功功率对电压幅值的影响可以忽略电压和无功的关系基本是一一对应的。配电网不一样架空线电缆混合出线R/X 经常到 0.3 甚至 1有功注入同样会改变电压幅值。光伏大发时段有功反送即使变流器一点无功不发末端电压也可能被抬到 1.05 以上这就是常见的午间高电压。R/X 偏大带来的麻烦不只在静态电压分布它还会把有功动态耦合进 Q(V) 环路。PLL 在弱电网下跟踪电压相位时有功电流的微小扰动会影响 q 轴电压而 q 轴电压又会被 PLL 放大进而改变 dq 坐标系的定向角最终影响并网点电压幅值。这样一来电压-无功环路就和锁相环动态缠在一起形成一个更高阶的耦合系统。弱电网里 S_VQ 大环路增益天然高可调稳定裕度就更小。这就是后面小信号模型里必须保留 PLL 状态的原因。2. 小信号建模把Q(V)下垂装进状态空间2.1 模型假设与适用范围配电网级稳定性分析不需要把 PWM 开关细节全搬进来那会让特征值模型爆炸。我一般按这几个假设建立小信号模型三相平衡变流器用平均值模型电流内环带宽远高于 Q(V) 外环降阶成一阶惯性环节锁相环保留二阶动态因为弱电网下它的带宽可能和无功环接近忽略开关谐波和负序分量只研究正序基波动态。这套假设的适用范围是几赫兹到几十赫兹的低频电压-无功振荡正好是 Q(V) 环和 PLL 交互最容易出问题的频段。如果研究对象是 LCL 滤波器引起的高频谐振那需要换一套详细电磁暂态模型不能用这里的状态空间降阶模型。建模前先想清楚要回答什么问题这比盲目堆模型阶数重要得多。2.2 从电压灵敏度到线性化方程模型建立从电网代数方程开始。变流器经过线路阻抗 Z Rg jXg 接入电网电压 Vg在 dq 旋转坐标系下并网点电压可以写成Vd Vg_d Rg * id - Xg * iq Vq Vg_q Rg * iq Xg * idPLL 定向在并网点电压上稳态时 Vq ≈ 0Vd ≈ V。在某个平衡工作点附近做小扰动电压幅值的变化与变流器输出电流的变化线性相关。写成功率形式电压对无功的灵敏度约等于S_VQ Xg / V0这个灵敏度在弱电网下很大在强电网下很小是 Q(V) 环路增益里最关键的一个系数。R/X 比较高时电压对有功的灵敏度 S_VP Rg / V0 也不可忽略因此模型里最好把有功电流对电压的影保留下来哪怕分析 Q(V) 环时默认有功缓慢变化。控制器部分的线性化方程相对直观。电压测量滤波是一个一阶惯性环节d(V_f)/dt (V - V_f) / T_f下垂环节本身就是线性映射小信号下就是 ΔQ_ref -Kq * ΔV_f。电流内环降阶成惯性环节d(i_q)/dt (i_q_ref - i_q) / T_i其中 i_q_ref 由无功指令除以电压换算得到线性化时注意把电压偏差项也带上。PLL 的动态方程采用典型的二阶结构d(delta)/dt omega d(omega)/dt -Kp_pll * Vq - Ki_pll * x_pll这里的 Vq 是并网点电压的 q 轴分量在小信号下是变流器电流、PLL 相位角偏差和电网电压扰动的线性组合。把这几个方程联立消去代数变量就能得到状态空间形式d(Δx)/dt A * Δx状态向量至少包含 ΔV_f、Δi_q、Δdelta、Δomega。如果你想更精细可以把电压测量滤波拆成两段或者把电流内环完整建模成二阶但核心思路不变每个惯性环节对应一个状态每个代数变换都线性化成系数。2.3 状态矩阵A的组装逻辑组装 A 矩阵时最需要注意的是各状态之间的耦合顺序。我的推荐做法是先列状态向量再列每个状态的微分方程然后逐个求偏导。手动推导容易漏项尤其是 PLL 相位偏差同时影响电压 q 轴分量和 dq/abc 变换矩阵时稍不注意符号就反了。另一个工程上更稳妥的做法是数值雅可比在工作点附近给每个状态加一个小扰动用动力学函数算出差分得到 A 矩阵的每一列。下面第三章的 Matlab 代码就是按这个思路写的。它避免了大量手推公式的笔误代价是每次改参数都要重新数值求导但对参数扫描而言这点代价完全可以接受。有了 A 矩阵稳定判据就是看 eig(A) 是不是全部位于复平面左半平面。除此之外还要看阻尼比和参与因子阻尼比告诉你某个模态衰减得快不快参与因子告诉你哪个状态在这个模态里作用最大。参与因子计算在 Matlab 里可以用左特征向量和右特征向量做结果用于定位振荡源特别实用。3. Matlab实现参数化扫描与特征值轨迹3.1 代码结构怎么组织我在实际做这类分析时代码不会写成一个大脚本而是拆成几个小模块方便反复改参数和换控制结构params.m定义电网电压、线路阻抗、变流器额定容量、下垂系数、滤波时间常数、PLL 参数、电流环等效时间常数steady_point.m求解并网点电压、无功输出、PLL 相位角的稳态工作点用 fsolve 解非线性方程组system_dynamics.m输入状态向量和参数输出 dx/dt这是整个分析的核心numerical_jacobian.m用中心差分计算雅可比矩阵得到 Ascan_eigen.m对某个参数做扫描收集特征值plot_trajectory.m把特征值轨迹画出来。这样组织的好处是换一套控制策略时只需要改 system_dynamics.m其他模块几乎不用动。如果公司或课题组后续要做多机配电网模型也只要把 system_dynamics.m 从单机扩展成多机状态方程。3.2 核心代码动力学函数与数值线性化system_dynamics.m 的核心逻辑可以用下面的结构表达。注意这是机理示意版本重点说明建模思路完整实现需要按具体控制器参数补齐function dx system_dynamics(x, mu, params) % 状态向量: [V_f; i_q; delta_pll; omega_pll] V_f x(1); i_q x(2); delta x(3); omega x(4); % 1) 电网代数方程由电流和PLL相位计算并网点电压 [Vd, Vq, Vm] grid_equations(x, params); % 2) 电压测量滤波 dV_f (Vm - V_f) / params.T_f; % 3) Q(V)下垂生成无功指令mu是扫描参数 Q_ref params.Q0 - mu.Kq * (V_f - params.V_ref); % 4) 无功指令换算成无功电流指令过电流内环惯性 i_q_ref Q_ref / (1.5 * V_f); di_q (i_q_ref - i_q) / params.T_i; % 5) PLL动态 [ddelta, domega] pll_dynamics(Vq, delta, omega, params); dx [dV_f; di_q; ddelta; domega]; end数值雅可比的核心代码是中心差分代码量很小但非常通用function A numerical_jacobian(x0, mu, params, h) n length(x0); f0 system_dynamics(x0, mu, params); A zeros(n, n); for j 1:n xp x0; xp(j) x0(j) h(j); xm x0; xm(j) x0(j) - h(j); fp system_dynamics(xp, mu, params); fm system_dynamics(xm, mu, params); A(:, j) (fp - fm) / (2 * h(j)); end end扰动步长 h 我一般取状态量级的 1e-5 到 1e-6太大则差分误差明显太小则陷入浮点噪声。扫描特征值的脚本核心就两件事循环参数、调用 eigKq_list linspace(2, 40, 25); Lambda zeros(length(Kq_list), n); for k 1:length(Kq_list) mu.Kq Kq_list(k); x0 compute_steady_state(mu, params); % 先求平衡点 A numerical_jacobian(x0, mu, params, h); Lambda(k, :) eig(A); end plot(real(Lambda), imag(Lambda), x); xlabel(Real part (1/s)); ylabel(Imag part (rad/s)); grid on;这里有个容易忽略的细节每换一个下垂系数系统的平衡工作点也会变所以必须先用 fsolve 重新求稳态点再在稳态点上线性化。直接在旧工作点上算 A 会导致特征值轨迹在参数前端还算正常到临界点附近就完全失真这一点坑过不少人。3.3 Simulink非线性模型如何做交叉验证特征值模型说到底是一堆假设的产物最后必须用 Simulink 非线性模型做交叉验证。我的 Simulink 模型一般分两块主电路用 Three-Phase Source 加 RL 线路变流器用平均值模型或者 Universal Bridge 加 PWM控制子系统里做电压测量、abc/dq 变换、低通滤波、Q(V) 下垂、电流内环和 PWM 发波。交叉验证有两种方式。一种是在 Simulink 里跑扰动看非线性波形是不是和特征值预测一致另一种是直接对 Simulink 模型做线性化Matlab 有现成接口在指定工作点返回线性状态空间模型然后对比状态空间法的特征值和手写模型的特征值。如果两者差异在 5% 以内说明简化有效如果对不上优先检查 PLL 的带宽建模和电流内环的降阶假设是否合理。4. 参数扫描结果失稳边界在哪为什么在那里4.1 下垂系数Kq增大低频模态如何推向虚轴用上一节的模型做一个具体算例。电网 10kV、容量 1MVA线路阻抗取 Rg jXg 10 j15 欧对应一个短路比很低的弱节点电压测量滤波 T_f 50ms电流环等效 T_i 5msPLL 带宽约 15Hz。初始 Kq 5 时系统主导模态通常在 -1.8 ± j27.3阻尼比 0.066对应约 4.3Hz 的电压-无功振荡模态。随着 Kq 逐步增大这对特征根会沿着一条抛物线向虚轴移动频率逐渐降低阻尼比越来越小。Kq 到 20 左右时变成 -0.4 ± j18阻尼比只有 0.022一旦越过临界点实部变成正值系统进入振荡失稳。你可能会问为什么频率会越振越低因为 Kq 增大相当于环路增益提高系统倾向于在相位滞后更小的低频段找到正反馈路径所以失稳模态往往就在 2~5Hz 附近而不是几十赫兹。参与因子分析会告诉你这个模态主要由电压测量滤波状态和电流内环状态主导PLL 状态参与度较低。换句话说失稳本质上是测量延迟 执行惯性这个级联环路在弱电网里增益过高低频负反馈翻成正反馈。知道了这一点整定方向的优先级就很清楚了先降 Kq再降滤波时间常数最后才考虑动 PLL。4.2 电压测量滤波时间常数T_f的双刃剑效应T_f 设计起来比 Kq 更纠结因为它两头都占。T_f 变大电压信号更平滑不容易被噪声和瞬时冲击误触发波形也确实好看但代价是相位滞后增加Q(V) 环路的可允许增益上限变小。以下是同一个算例下不同 T_f 对应的临界 Kq 变化趋势T_f (ms)临界 Kq (pu/pu)失稳模态频率 (Hz)20约 35约 850约 26约 5100约 15约 3200约 8约 1.5这张表的数字在不同基准和阻抗下会变但趋势是稳定的滤波时间常数越大稳定性边界压得越低。我在某个分布式光伏项目里就遇到过调试人员为了读数好看把 T_f 从 50ms 调到 200ms结果原本稳的 Kq 直接变得临界电压在午后反复出现几赫兹的持续波动。后来把 T_f 压回去同样的 Kq 又稳了。所以整定 T_f 时不能只考虑滤波效果必须在示波器上同时看 V_f 毛刺和特征值阻尼比。推荐做法是先用小 T_f比如 30~50ms 确认稳定性再一点点加大并重新算特征值直到阻尼比掉到 0.1 以下就退回上一档。4.3 弱电网SCR降低时稳定裕度的变化配电网里节点强弱差异很大SCR 从 3 到 10 都有。SCR 降低意味着等效阻抗增大电压对无功的灵敏度 S_VQ 上升同样的 Kq 对应的环路增益更高稳定裕度自然被吃掉。换句话说同一台变流器、同一套 Q(V) 参数在变电站出线附近稳定得挺好搬到线路末端弱节点可能就开始振荡。这让现场调试很头疼恰恰是 SCR 最低的末端节点最需要无功电压支撑但它能用的 Kq 反而更保守。我在这种矛盾面前的解法一般分三步先按最弱节点做特征值扫描确定 Kq 上限再考虑给变流器增加虚拟阻抗改变并网点电压对输出电流的灵敏度最后如果需要更高电压支撑能力就配合慢速的 OLTC 或电容器组做协调而不是一味逼着逆变器加大下垂斜率。另外同一馈线上多台 DG 都投入 Q(V) 时问题会从单机失稳升级成多机交互。每台 DG 测到的是自己端口的电压它们通过线路阻抗耦合可能出现类似抢无功的振荡模态振荡频率往往比单机更低。这种情况下单机特征值模型给的结果是必要不充分条件工程上我会把同馈线几台机器的状态方程拼接成多机模型再扫描哪几台组合最容易出问题。5. 时域验证与工程参数整定建议5.1 用Simulink复现特征值预测的失稳特征值说系统会失稳非线性仿真里一定能看到只是时间早晚问题。Simulink 验证我习惯这样做保持其他参数不变分别设 Kq 为低于临界值的值和高于临界值的值在 t 1s 时给电网电压加一个 3% 的阶跃扰动观察并网点电压和无功电流波形。Kq 低于临界值时电压经过大约 0.2~0.3s 衰减回到死区附近无功指令平滑动作整个过程看不到持续振荡。Kq 高于临界值时电压会先被扰动抬高然后出现逐渐发散的周期振荡震荡频率在 2~5Hz和特征值穿越虚轴时对应的虚部换算出的频率对得上。误差一般在 5% 以内因为 Simulink 里可能还有 PWM 谐波和离散采样带来的额外延迟方向是让实际临界值比简化模型略低这是正常的。如果你在仿真里发现波形看不出失稳先别急着怀疑特征值检查两个地方一是仿真步长是不是太大把低频振荡平滑没了二是平均模型里是否忘了加滤波或内环延迟导致开环相位滞后比真实系统小。这两个坑掩盖失稳的效果特别明显。5.2 实际项目里Q(V)参数的整定流程现场整定 Q(V) 参数我一般不直接按公式套而是按下面的顺序走一遍先定死区。死区通常取电压偏差的 ±1%太小会导致变流器频繁动作太大则失去快速支撑意义再定无功容量 Qmax。Qmax 受变流器容量和当前有功限制公式是 Qmax sqrt(S_rated^2 - P^2)注意光伏大发时 P 很大可用无功容量会缩水用允许电压偏差算 Kq 的静态上界。比如电压允许 ±2%Qmax 是 0.5pu那 Kq 最多给 0.5/0.04 12.5 pu/pu再结合特征值扫描留出 30%~50% 稳定裕度T_f 先取 50ms跑一次特征值扫描看阻尼比如果主导模态阻尼比低于 0.1 就往下调如果噪声毛刺大再考虑二阶低通代替一阶最后做多机校核。同馈线多台 DG 时把参考电压错开 0.5%~1%或者让较远端机器下垂系数略小避免互相抢无功。这套流程里最容易被忽略的是第三步和第四步的组合。静态上 Kq 给了上限但动态上 T_f 又是另一个约束两者必须联合扫描。建议大家把特征值轨迹图直接贴到调试记录里后续并网新机时先查这张稳定边界地图能省掉很多现场试错的时间。5.3 几个容易踩的坑和缓解手段最后集中说几个我在 Q(V) 控制调试里真实踩过、或者看同行踩过的坑。第一个是无功限幅和抗饱和。如果控制结构里带了积分环节Q_ref 被 Qmax 限幅后积分器继续累计会造成饱和恢复时会出现一个很大的反向过冲。解决办法是给积分器加 anti-windup或者干脆在 Q(V) 环里用纯比例环节限幅只限制内部指令不反馈到积分路径。第二个是死区边界跳变。电压刚好在死区边界附近波动时无功指令会在 0 附近来回跳电压跟着出现微小阶跃这个阶跃又可能激励瞬时功率振荡。处理办法是加滞回上下边界错开一点或者把死区边界过渡做平滑工程上简单实用。第三个是测量电压位置的敏感性。Q(V) 用的是变流器端子电压还是内部电容电压会直接影响 S_VQ 的大小。我在建模时如果不确定现场互感器装在哪个位置一般会保守地按灵敏度更大的情况整定否则特征值扫描算出的临界 Kq 会偏乐观。第四个是仿真模型的选择。要看低频电压振荡用平均值模型最合适PWM 开关模型引入的高频纹波会把低频模态淹没波形上不好分辨。可以先在平均模型里确认特征值预测的振荡频率再用详细模型做最终校核两边数据对得上才算真的稳。Q(V) 下垂看起来只是一条简单的斜率曲线但放进配电网这种 R/X 大、SCR 低的场景里它立刻变成一个多惯性环节串起来的反馈系统。特征值分析是看清楚这个系统的最直接手段Matlab 下数值线性化加参数扫描的工作流能让你在投运前就知道哪组参数会振荡、振荡频率在哪、是哪个环节把它推过了虚轴。我在实际项目里最大的体会是别只把 Q(V) 当电压治理工具把它当成一个闭环控制系统去整定稳定性问题会少一大半。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询