聊微电网控制,绕不开一个非常现实的问题:光伏、储能、柴油机组这些容量差异很大的分布式电源接进同一张局域网以后,负荷忽大忽小,频率和电压凭什么还能稳定在合格范围内。很多刚接触这个方向的朋友,第一次看到“下垂控制”会觉得它已经能把功率分得很好,似乎不太需要再上一层“二次控制”,但等真正做实验或者跑仿真的时候就会发现,一次控制撑得住平衡,撑不住精度和恢复能力。这时候,微电网二次控制就该被认真拿出来了。
这篇文章不会只堆公式,而是把下垂控制的来龙去脉、二次控制的几种实现路线,以及目前工程和研究都比较看重的分布式事件触发二次控制,用比较工程化的语言讲清楚。适合正在读研的人、做微电网系统集成的工程师,以及准备把分布式电源控制往深里做的技术人员当作一份进阶笔记来读。我会按实际项目里常见的调试顺序来写:先解释一次控制为什么不够,再对比二次控制的架构差异,最后落到事件触发机制的参数整定与仿真验证。
1. 为什么要做二次控制?先看清一次下垂控制的本职与局限
1.1 下垂控制是怎么让多台逆变器“分活”的
传统大电网里,同步发电机靠转子惯性天然会把频率“撑住”,几台机组并网后,负荷变化会通过转速变化自动分摊到各机组上。但微电网里大量是电力电子接口,逆变器本身没有惯性,如果不加专门的控制策略,多台逆变器并联会出现严重的环流、过流甚至振荡。下垂控制就是用来模拟同步发电机外特性的:让逆变器根据自身输出功率自动调整输出电压频率和幅值,从而让并联机组在不通信的情况下自然分配负荷。
下垂控制的外特性通常写成两个公式:
- 有功-频率下垂:f_i = f0 - kP_i × (P_i - P_ref_i)
- 无功-电压下垂:V_i = V0 - kQ_i × (Q_i - Q_ref_i)
这里的 f0 和 V0 是额定参考值,kP_i 和 kQ_i 就是下垂系数。直观理解就是:这台机组输出有功越多,它的频率设定值就压得越低;输出无功越多,电压幅值就压得越低。整个微电网是同一个交流网络,频率在稳态时基本处处相等,因此两台机组只要各自按容量比例整定下垂系数,就会自动落在一个公共频率对应的工作点上,功率按比例分配完成。
举个例子:两台逆变器容量分别是 10kW 和 20kW,规定频率允许最低到 49.5Hz,那么:
- 10kW 机组下垂系数 = 0.5Hz / 10kW = 0.05Hz/kW
- 20kW 机组下垂系数 = 0.5Hz / 20kW = 0.025Hz/kW
当总负荷是 18kW 时,系统会找到一个共同频率,让第一台承担约 6kW、第二台承担约 12kW。两台机组承担的功率严格等于容量比 1:2,同时频率跌落量也完全一致。这个“无通信自动均分”的特性,正是下垂控制能在微电网领域长期占据主导地位的根本原因。
实际工程里不会直接用瞬时功率做下垂,因为功率波形含有大量开关纹波和谐波。通常需要用低通滤波器取得平均功率,再送去下垂计算。滤波时间常数选得太小,功率信号毛刺大,容易引起频率波动;选得太大,动态响应变慢,负荷突增时频率跌得太深。我一般习惯先把滤波时间常数放在 20ms 到 100ms 之间,再根据并网标准要求的频率变化率上限做调整。
1.2 一次控制解决不了的三个硬伤
下垂控制虽然解决了“功率均分”的基本需求,但它天然存在三个绕不开的硬伤,这也是二次控制必须存在的原因。
第一是静态偏差无法消除。只要负荷发生变化,系统频率就会离开额定值,而且永远不会自行回到 50Hz。下垂外特性的本质就是用频率偏差换取功率平衡,偏差是它的工作代价。但电能质量指标不允许频率长期偏离额定值,所以必须由更高一层控制来把偏差补偿回去。
第二是功率均分精度和电压质量之间存在矛盾。想让无功功率分得均匀,需要把无功-电压下垂系数调大一些,也就是电压外特性做得更“软”;可下垂系数一大,负荷变化时的电压跌落就更严重。反过来,如果把下垂系数调小,电压倒是稳了,无功均分误差却变大。调参时经常顾此失彼,最终只能用一组折中参数。
第三是低压微电网的线路阻抗问题。经典下垂控制默认线路阻抗是感性的,但在低压配电网里线路电阻往往不可忽略,甚至 R 比 X 还大。这种情况下,有功会影响电压、无功会影响频率,经典的 P-f / Q-V 解耦关系被破坏。如果不引入虚拟阻抗或者对线路阻抗做补偿,单靠纯下垂控制,功率均分精度会很差,严重的会出现某台逆变器吸收无功、另一台发出无功的环流现象。
所以一次控制在微电网里扮演的角色是“秒级响应的平衡器”,它负责在负荷突变的瞬间快速稳住系统,但做不到长期精度。想要频率回到额定值、电压回到合格区间,还要让功率分配更精确,就必须往上加二次控制。
2. 二次控制并非只有集中式一条路:三种架构的取舍
2.1 集中式调度:思路简单,但单点故障问题突出
最直观的二次控制思路是集中式。类比大电网里的自动发电控制(AGC),微电网中央控制器不断采集各台逆变器的频率偏差、电压偏差,经过 PI 控制计算出统一的补偿量,再下发给每一台逆变器,去修正下垂控制里的 f0 和 V0 参考值。
在实验室微电网或容量很小的孤网系统里,集中式二次控制确实够用。它实现简单,理论成熟,调参也直观。只要中央控制器算得足够快,频率和电压偏差就能被压到很小。
但集中式方案的问题在于可靠性。中央控制器一旦故障掉电,整个二次控制就瘫痪了;即使采用双机热备,通信链路也会成为新的单点。微电网经常处于并网、孤网、投切负荷这些变化工况下,如果某台逆变器到中央控制器的通信链路断了,那台逆变器收不到补偿指令,其余机组却在持续调整,彼此之间很快就会出现校正量不一致,进而产生环流。这种运行风险在工程项目里很让人头疼,运维人员往往要花大量精力去维护通信网络的完整性。
另外,集中式二次控制的扩展性很差。新增一台分布式电源,需要重新配置通信拓扑、修改中央控制器的控制逻辑和参数,做不到真正意义上的即插即用。对设备类型多、位置分散的微电网来说,这个缺点会随着规模扩大被迅速放大。
2.2 无通信自治方案:精度有限,但能当底线备份
还有一种比较特殊的二次控制思路是彻底去掉通信,让每台逆变器仅靠本地信息自治。典型的做法是在下垂控制基础上增加死区、限幅和局部微调逻辑,例如通过缓慢改变下垂系数来减小稳态偏差,或者在允许的电压范围内做小范围调整。
这种方案的优点是结构最简单、不存在通信故障问题。但它有一个根本缺陷:没有全局信息,单靠本地测量很难既消除频率偏差又保证功率分配精度。一台逆变器只能知道自己输出多少电压电流,无法确认其他机组是否也承担了相应比例的负荷。因此在正常运行工况下,纯自治方案难以达到高质量的电能指标。
不过我仍然建议在架构设计时保留一层自治底线逻辑。分布式二次控制万一遇到通信网络大面积瘫痪,各台逆变器可以自动降级到自治模式,保证微电网至少有功率平衡能力,变频但不至于失稳。这种“平时精细控制,故障时自动降级”的设计思路,在工程上非常实用。
2.3 分布式共识控制:可靠性与扩展性更好的中间路线
分布式共识控制是目前微电网二次控制研究里最受关注的方案。它的基本思想是让各台逆变器只和通信拓扑中的相邻节点交换信息,通过一致性算法让所有节点的某个校正量逐步收敛到一致,最终共同把频率和电压恢复到额定值。
打个比方:集中式像一个班所有人听班长指挥,班长出错全班乱套;分布式集群像几个小组之间互相传递消息,每组成员只要和旁边的人保持信息同步,整体也能达成同样的目标。少数节点出问题,不会导致整个系统失效。
这种架构的优势非常明显。第一,没有中央控制器,天然消除了单点故障;第二,新增一台分布式电源时只需要接入通信网络并配置好初始参数,共识算法会自动把新节点纳入协同;第三,通信链路压力比集中式小得多,因为每个节点只需要跟少数邻居交换数据。
分布式共识控制也分不同流派。常见的一种是“校正量一致性”,每个逆变器的本地二次控制器算出一个频率校正量 δf_i 和一个电压校正量 δV_i,通过一致性协议让这些校正量收敛到相同值,再叠加到各自的下垂参考值上。还有一种是把功率分配误差纳入一致性协议里,让机组之间的有功和无功同步收敛到按照容量比例分配的目标值。实际工程里往往两种目标同时考虑,用双通道一致性协议分别处理频率/有功和电压/无功。
我在下表里把三种架构的差异按几个关键维度做了对比:
| 控制架构 | 单点故障风险 | 通信需求 | 稳态精度恢复能力 | 实现复杂度 | 可扩展性 |
|---|---|---|---|---|---|
| 集中式 | 高 | 高:所有机组到中央控制器 | 强,但依赖链路完整性 | 较低 | 差 |
| 无通信自治 | 无 | 几乎为零 | 弱,只能局部优化 | 最低 | 最好 |
| 分布式共识 | 低 | 中:仅邻居通信 | 强,且具备容错能力 | 中高 | 好 |
3. 分布式事件触发二次控制的原理拆解
3.1 周期性广播浪费在哪里
常规的分布式二次控制实现时,每个节点会按固定周期向邻居广播校正量,典型周期是 100ms 或 200ms。这种做法的好处是协议简单、便于分析和调试,但存在很明显的资源浪费:微电网在大部分时间里处于相对稳态,频率偏差和电压偏差很小,邻居收到的消息内容几乎没有变化,完全是在做无用功。
对有线通信网络来说,多几十次广播也许无所谓;但如果微电网单元分布在较广区域,使用了无线通信模块,或者通信链路带宽受限,周期性广播就会显著增加功耗和拥堵风险。更关键的是,频繁通信会让控制器对通信噪声和丢包更加敏感,一点小扰动就可能引发多次毫无必要的控制更新。
事件触发控制(event-triggered control)想解决的问题,就是“把周期唤醒改成按需唤醒”。只有当本地状态变化达到设定阈值时,节点才广播一次最新数据;没有事件发生时,邻居默认使用最近一次收到的数据,本地控制器也继续沿用本地缓存值。这样一来,长期稳态工况下通信次数可以压缩几个数量级,而动态性能损失很小。
3.2 一致性协议如何收敛:数学形式与直觉
分布式事件触发二次控制的内核仍然是共识算法。离散时间的一致性协议可以写成:
δ_i(k+1) = δ_i(k) + ε Σ_{j∈N_i} a_ij × (δ_j(k) - δ_i(k))
其中 δ_i 表示第 i 台逆变器的校正量,N_i 是它的通信邻居集合,a_ij 是通信权重,ε 是收敛增益。这个式子的直觉很简单:如果邻居的校正量比自己大,就把自己的校正量往上提一点;如果邻居比自己小,就往下降一点。所有节点反复执行这个规则,只要通信拓扑是连通的,整个网络的校正量最终会收敛到同一个值。
在微电网里,每个节点的校正量不是凭空算出来的,而是通过本地测量得到的。比如某台逆变器检测到本地频率偏差 Δf_i = 0.3Hz,它就会产生一个期望的补偿量 δf_i = k_f × Δf_i。通过一致性协议,这个补偿量会在整个网络中逐渐传递、平均,最终所有机组采用一致的补偿量,叠加到各自的下垂频率参考值上。电压通道的算法结构完全一样,只是目标量和系数不同。
收敛速度取决于通信拓扑和增益 ε。全连接拓扑收敛最快,但通信链路多;环状拓扑、链状拓扑收敛慢,但工程布线和通信成本低。增益 ε 也不能取得太大,否则协议发散。理论分析里通常会要求 ε 小于通信图拉普拉斯矩阵最大特征值的倒数,工程调试时我习惯从比较小的值逐步增大,观察校正量波形是否出现振荡。
事件触发机制在这个框架里承担的角色,是决定“什么时候执行一次通信”。每个节点会保存最近一次事件触发时广播出去的数值,同时不断比较本地当前计算值和缓存值之间的误差:
e_i(t) = δ_i(t) - δ_i(t_k)
当 |e_i(t)| 超过设定的触发阈值时,节点才触发一次事件,把最新 δ_i(t) 广播给邻居,并更新本地缓存。没有触发时,节点保持本地计算、但不需要占用通信资源。
3.3 触发条件设计、Zeno行为与通信异常处理
事件触发条件并不是随便定一个固定阈值那么简单。阈值太小,事件触发频率逼近周期性控制,失去了省通信的意义;阈值太大,邻居长时间得不到更新,校正量收敛变慢,甚至会引起动态偏差超限。
常用的触发条件有两种形式。
- 固定阈值:|e_i(t)| ≥ ε0。实现最简单,适合工况稳定、对动态性能要求不苛刻的系统。
- 状态相关阈值:|e_i(t)| ≥ α + β|δ_i(t)|。α 项用来避免稳态时的微小抖动反复触发,β 项让偏差较大时触发更频繁,动态响应更快。实际效果比固定阈值细腻一些,代价是需要多调两个参数。
事件触发控制最著名的理论问题是 Zeno 行为,也就是事件触发次数在有限时间内无限多,导致控制器实际上无法执行。工程上不一定要从数学上证明排除 Zeno,更实际的做法是直接加一个最小触发间隔 T_min:任意两次触发之间至少间隔 50ms 或 100ms。这个约束从物理上保证了事件频率不会超过控制器的执行能力,也天然滤掉了一部分高频噪声引起的误触发。我建议在所有事件触发逻辑里都加上这个保护,不要依赖理论假设。
通信网络并不总是可靠的。事件触发通信本身是非周期的,如果某一次触发广播的报文因为延迟或拥塞丢失了,邻居节点会一直使用旧缓存值,误差逐渐累积。解决思路有几个:一是采用带确认的重传机制,关键事件允许发两次;二是定期发送心跳报文,让邻居判断节点是否离线;三是给每个节点加一个本地观测器,估算邻居校正量的变化趋势,即使丢包,估算值也不会太离谱。
实际工程中我倾向于“事件触发 + 心跳”混合模式:正常运行靠事件触发压缩通信量,但每 2 秒到 5 秒强制广播一次节点状态。这样既保留了低通信开销,又避免了长时间无通信导致节点“失联”却不被发现。
4. 关键参数如何整定与验证:一个三逆变器仿真算例
4.1 下垂系数整定的工程范围与计算示例
参数整定是微电网控制里最容易被轻视的环节。很多同学一上来就抄论文里的参数,结果复现时震荡、发散,最后只能归结为“模型不一样”。实际上只要把下垂系数和二次控制增益的计算逻辑理清楚,大部分调试问题都能提前规避。
先搭一个典型算例:三台逆变器构成的孤网微电网,额定频率 50Hz,额定线电压 380V。DG1 和 DG2 容量各 10kW,DG3 容量 20kW。设计要求是负荷波动时频率跌落不超过 0.5Hz,电压偏差不超过 10V。
一次下垂系数按容量反比整定:
- DG1、DG2:kP = 0.5Hz / 10kW = 0.05Hz/kW
- DG3:kP = 0.5Hz / 20kW = 0.025Hz/kW
这样三台机组在共同频率工作点下,有功功率分配比严格满足 1:1:2。如果采用标幺值体系,下垂系数一般取 0.02 到 0.06 之间。从工程习惯来说,低速孤网系统可以取偏大一些,让均分效果更好;对频率质量要求高的系统要取小一些,但必须配合二次控制闭环恢复频率。
无功-电压下垂系数也是同理。假设单台机组无功容量按 10kvar 算,允许电压跌落 10V,那么 kQ = 10V / 10kvar = 1V/kvar。实际整定时要考虑变压器和线路上的电压降落,留出余量。
4.2 事件触发阈值如何权衡性能与通信量
事件触发阈值的设计目标是:在满足稳态精度和动态性能的前提下,尽量降低通信次数。评判指标有三个:频率恢复时间、稳态频率偏差、单位时间内的触发次数。
我把三组常用阈值在仿真里的典型表现列在下面:
| 触发阈值 | 10分钟模拟通信次数 | 相比周期控制压缩率 | 负荷跳变后频率恢复到0.02Hz内时间 |
|---|---|---|---|
| 0.01Hz | 约2400次 | 约60% | 1.6s |
| 0.05Hz | 约500次 | 约92% | 2.4s |
| 0.10Hz | 约150次 | 约97.5% | 3.5s |
| 周期控制(100ms) | 6000次 | 基准 | 1.8s |
从数据可以看出,阈值从 0.01Hz 上升到 0.05Hz,通信次数降低非常明显,但动态恢复时间只增加了不到 1 秒。阈值再继续放大到 0.10Hz,通信次数进一步减少,恢复时间却拖慢到 3.5 秒以上。这种边际收益递减意味着,盲目追求低通信量并不划算。
我调参的经验是:先根据电能质量标准确定稳态频率偏差允许值,比如要求 ±0.02Hz,那就以这个允许值作为基准,阈值先取允许值的 1 到 2 倍,即 0.02Hz 到 0.04Hz。然后通过仿真逐步增大阈值,每次记录恢复时间和触发次数,直到恢复时间快要超出动态性能要求为止。整个过程有点像在调一个“通信次数换动态性能”的旋钮,而不是简单追求越小越好或越大越好。
4.3 仿真环境搭建与结果分析
这个三逆变器算例,主电路采用三相全桥逆变器和 LC 滤波器,直流侧电压统一按 750V 设置,滤波电感 2mH、滤波电容 100μF。一次控制采用 P-f / Q-V 下垂加虚拟阻抗,二次控制采用分布式共识协议,事件触发逻辑独立于控制主循环运行。
控制链路各层的时间尺度要分开。功率计算和下垂控制的响应时间通常在百毫秒级,二次控制的一致性更新周期可以取 100ms,事件触发的最小间隔设为 50ms。如果让二次控制跑得比一次控制还快,很容易造成控制环之间的耦合振荡,这一点在调试时特别容易踩坑。
工况一设定为系统空载启动后稳定运行,t=4s 时投入总负荷 15kW,t=8s 时二次控制投入。结果显示:一次控制把频率稳定在 49.75Hz 左右,功率分配基本符合容量比例;二次控制投入后约 2 秒内把频率恢复到 49.99Hz,稳态偏差小于 0.01Hz。事件触发模式下,负荷跳变后的 1 秒内触发了 8 次通信,之后 40 秒内只触发了 3 次,因为系统已经稳定,校正量几乎没有变化。
工况二模拟通信链路故障,将 DG1 和 DG2 之间的通信链路断开。分布式共识协议在剩余链路下仍能收敛,只是收敛速度变慢,频率恢复时间从 2.0s 拉长到 3.2s,但没有出现控制失效。同样的故障放在集中式架构下,两台失去通信的机组会收不到校正指令,频率偏差无法消除。这组对比最能说明分布式架构在容错能力上的优势。
工况三重点观察触发次数与功率分配精度的关系。把事件触发阈值设到 0.01Hz 时,触发次数多,功率均分误差小于 3%;阈值放大到 0.10Hz 时,均分误差扩大到 5% 到 6%,但仍在一定范围内。这说明事件触发对稳态均分精度的影响是可控的,主要代价体现在动态调整期间的瞬态偏差上,而不是稳态精度本身。
5. 从仿真到样机,几个容易被忽略的实际体会
如果只是做理论分析,事件触发二次控制做到仿真这步基本可以结题了。但如果要往实际样机或者工程项目走,还有几个细节值得单独说。
通信延迟和丢包在仿真里往往被默认理想化,真机上的影响比想象中大得多。分布式共识算法对邻居数据到达的同步性很敏感,一旦各节点收到邻居消息的时间点相差几十毫秒,校正量波形就会出现明显抖动。我建议样机调试时把一致性周期放慢到 200ms 甚至 300ms,让通信抖动相对控制周期足够小,先把功能跑通再优化速度。
还有一点是关于触发条件的实现位置。事件触发逻辑如果直接读取瞬时功率计算出的校正量,很容易被功率纹波触发误动作。正确做法是在触发判断前加数字滤波,让触发逻辑只对趋势性变化响应。这个细节顺序错了,后续怎么调阈值都不顺。
最后分享一个我调试时积累的小技巧:不要只用触发次数这一个指标来评价事件触发效果。建议在记录触发次数的同时,也统计每次触发产生的控制修正量大小。有时候触发次数很少,但每次修正量都很大,说明阈值设得太粗,动态性能已经受损;有时候触发次数很多,但修正量很小,说明阈值太灵敏。理想状态是触发次数少、单次修正量适中,这样的参数组合才算真正调到了“按需触发”的状态。
对于刚入手微电网二次控制的人来说,路线建议是先做一轮不带事件触发的分布式共识控制,把频率恢复、电压恢复和功率均分都调到满意状态,再加入事件触发逻辑。顺序反过来容易分不清问题是出在共识算法还是出在事件触发条件上,后面排查起来会很痛苦。整套思路做下来,我的体会是:事件触发二次控制并不是要取代一致性协议,而是给共识算法加了一个有节制的通信外壳,让分布式控制在工程现场变得更省通信、更耐故障、更容易落地。