☰
微电网分层控制:下垂与采样二次控制融合设计与实践
2026/10/15 7:06:07 网站建设 项目流程

这两年折腾微电网控制,最深的体会是:下垂控制负责“瞬间分活”,二次控制负责“事后兜底”,单拎出来都不难,难的是怎么让它们在一个系统里和谐共处。最近我在一个多逆变器孤岛微电网仿真平台上,把下垂控制和基于数据采样的二次控制叠在一起跑通了一整轮,从稳态精度、动态响应到通信异常场景都做了验证。这篇文章就把整个融合思路、参数设计逻辑和踩坑记录整理出来,给同样在做微电网分层控制、或者想入门二次控制的朋友一个可以直接参考的版本。

先说清楚这篇东西适合谁看:你不需要是控制理论专家,但最好对微电网的一次下垂(P-f / Q-V)有个大致印象。如果你连什么是下垂都不太清楚,我也从最基础的物理逻辑讲起。内容覆盖两层控制各自的任务边界、采样二次控制的实现流程、关键参数怎么定、以及我在联调中遇到的典型故障和排查方法。

1. 一次与二次:两份各司其职的“微电网控制权”

1.1 一次下垂到底在干嘛

孤岛微电网里,逆变器并在一起给负载供电,最怕的事情是什么?是两台逆变器抢功、环流、频率电压飘掉。下垂控制的本质,就是模仿同步发电机的静态特性:电网频率下降,有功出力就往上顶;机端电压下降,无功出力也跟着往上顶。

写出来就两句话:

  • 有功-频率下垂:(f_i = f_0 - m_p(P_i - P_{ref}))
  • 无功-电压下垂:(V_i = V_0 - n_q(Q_i - Q_{ref}))

其中 (m_p) 和 (n_q) 是下垂系数,决定了功率分配的比例。两台逆变器如果下垂系数设计成反比于容量,那负载一变化,各自承担的有功自然按容量比例分——这一步完全不需要通信,是“即时响应”的。

但这个控制方式有个硬伤:下垂一打开,稳态频率和电压必然偏离额定值。你想啊,负载增加,频率要被拉下去一点点,才能让逆变器多出力;负载越大,偏差越大。偏差大小取决于下垂系数和功率变化量。这就是为什么微电网不能只靠一次下垂,必须有个层级更高的控制把频率和电压拉回额定值——这就是二次控制的活。

1.2 二次控制要补的账在哪里

二次控制解决的核心问题有两个:频率恢复和无功电压恢复。它本质上是在一次下垂曲线上做平移修正,而不是改变下垂斜率。

举个例子:某台逆变器额定频率是50Hz,下垂系数是0.5Hz/100kW。负载增加后,它稳态输出80kW,频率被拉低到49.6Hz。二次控制算出修正量 (\Delta f_0 = +0.4Hz),把下垂曲线的空载频率 (f_0) 从50Hz抬到50.4Hz,这样在同样出力80kW下,频率就能回到50Hz附近。

这个修正量的计算,传统上是用PI控制器实现的:

[ \Delta f_0 = K_{p,f}(f_{ref} - f_{meas}) + K_{i,f}\int (f_{ref} - f_{meas}) dt ]

电压通道同理,只是注意无功-电压下垂本身有弱耦合和线路压降问题,修正起来比频率稍复杂。频率是全局一致的量,电压是局部分布的量——这一点在后面做采样控制时特别重要。

1.3 为什么偏偏是“数据采样”而不是连续反馈

传统二次控制很多是连续时间模型,但实际工程里根本做不到连续。你想想:测量要ADC采样,通信要打包发送,控制器要等数据齐了才计算,然后再通过网络把修正量下发——整个链路天然就是离散的。如果你在仿真里用连续时间理想模型,参数调得再漂亮,一到实物或者通信延迟环境下就露馅。

所以我在这个项目里直接放弃“先按连续设计、再离散化”的老路,从根上就用数据采样的思路来设计:控制器每隔固定周期 (T_s) 采样一次全网状态,计算一次修正量,之后在下一个采样周期到来之前保持输出不变。这个思路在离散系统里叫采样数据控制,在微电网里其实特别自然:通信周期、控制周期、数据刷新周期,本质上都是“采一次、算一次、发一次”的节奏。

这样做还有个额外好处:通信压力小。连续反馈意味着每个控制周期都要高频收发数据,采样控制则可以把这个频度压得很低,比如100ms到1s一次,对现场总线或者无线通信来说友好得多。

2. 融合方案的架构设计与信息流设计

2.1 整体分工:什么沿用下垂,什么交给采样二次

我的整体方案不搞复杂的主从切换,就沿用“分层”框架:

  • 底层(一次层):每台逆变器用本地P-f和Q-V下垂,完全不依赖通信,故障时也能独立运行。
  • 顶层(二次层):一个中央控制器周期性地采集各DG的电压、频率、有功、无功,计算修正量,下发到各DG,平移各自的下垂曲线。

为什么采用中央式而不是分布式一致性算法?这个项目里的微电网结构是辐射状,节点数不多,中央采样控制够用,而且调试直观。分布式算法的优势在于单点故障韧性,但这会引入更复杂的通信拓扑和一致性协议,在节点少、通信链路可靠的场景下是杀鸡用牛刀。如果你要做的是大规模多代理微电网,再考虑分布式二次控制也不迟。

融合的关键点在于修正量的分配策略。采样二次控制器拿到全局平均频率 (f_{avg}) 和额定频率的偏差后,算出的不是一个统一修正值给所有人,而是要根据各DG的出力实时状态做一个加权分配,避免所有逆变器都把曲线往上平移、导致某些逆变器立刻进入过载。我在工程上的做法是:把总修正量按各DG的当前可利用容量比例分配,并且加一个限幅,确保修正后的参考点不超过逆变器额定功率的110%。

2.2 数据采集与下发通道怎么搭

采样二次控制对数据通道的要求是“周期稳定、时延可控、数据完整”。我在仿真实操里用的通道结构是这样的:

  • 上行通道:各DG每 (T_s) 周期上报一次运行数据包,包含本地频率 (f_i)、输出电压幅值 (V_i)、有功 (P_i)、无功 (Q_i),以及一个用于对时的序号。
  • 下行通道:中央控制器下发的修正包,包含各DG的 (\Delta f_{0,i}) 和 (\Delta V_{0,i}),同样带序号。
  • 对时机制:所有DG本地都有一个统一时钟基准,上报数据的时刻以这个时钟为准。这样控制器做融合计算时,拿到的是同一时间断面的数据,而不是各DG各说各话的错位数据。

这里有个特别容易踩的坑:如果你不统一时序,各DG的采样时刻差个10ms,在动态过程中算出来的“全局平均频率”就是扭曲的,二次修正会给出反向或者过量的控制量。我在初版仿真里就因为这个吃了亏,后面不得已把每个DG的数据包都打上时间戳,控制器按时间戳重排后再计算,才算稳定住。

数据包格式我建议用定长结构,别用变长JSON,解析开销小、不容易出错。通信层我用的是UDP广播,因为二次控制允许丢一两帧,但绝对不允许迟到的旧数据被当成新数据处理——所以每个包必须带序号和时标,控制器端要做“新数据才处理,旧数据丢弃”的判断。

2.3 修正量如何“无损”地写回下垂参考

算法算出了 (\Delta f_0) 和 (\Delta V_0),接下来要落地到每台逆变器的控制环里。我的做法是在逆变器的功率计算和下垂计算之间,插入一个“参考点修正”环节:

参考频率 = 额定频率 + 二次修正量,然后代入下垂方程:

[ f_i = (f_n + \Delta f_{0,i}) - m_p(P_i - P_{ref}) ]

[ V_i = (V_n + \Delta V_{0,i}) - n_q(Q_i - Q_{ref}) ]

注意一个细节:(\Delta f_0) 修正的是空载参考点,不是你直接叠加到输出频率上的值。如果直接往输出频率上加修正量,就相当于用开环叠加绕过了一次下垂,会在动态过程中破坏功率分配的均分特性,严重时引起环流。

我看过一些初学者的代码,把二次修正直接加在逆变器输出的 (f_{PWM}) 上,看起来频率确实恢复得更快,但那是因为它彻底牺牲了功率分配的下垂特性,两台逆变器出力会出现明显不均衡。正确的融合姿势是:修正作用在参考点上,让一次下垂继续掌管功率分配,二次控制只负责把运行点数组整体拉回额定范围。这两者的边界划清楚,融合才不会打架。

3. 核心机理与关键参数设计

3.1 频率恢复的参数耦合关系

频率恢复看起来是独立通道,但它和功率分配之间有个隐含耦合。下垂系数 (m_p) 决定了均分比例,越高均分越准,但频率跌落也越大——二次控制就需要出更多修正力来补偿。所以在参数设计上,(m_p) 不是越大越好,要结合一次和二次的配合来看。

我在整定时用的方法是分两步:

  1. 按容量比例确定各DG的 (m_p),保证空载到满载的频率跌落不超过设计值(比如±1Hz)。
  2. 再调二次PI,让它在几次采样周期内把频率偏差收敛到接近0。

二次PI的两个参数里,(K_{p,f}) 负责快速响应偏差,但不能太大,否则会让整个系统跟采样周期打架,出现周期性的“过冲-回调”振荡。(K_{i,f}) 负责消除稳态误差,但积分太快容易导致积分饱和,特别是在启动瞬间或者负载突变瞬间。我在项目中最终取的频率通道参数是:

  • (K_{p,f} = 2.2)
  • (K_{i,f} = 0.05)
  • 采样周期 (T_s = 200ms)

这个组合下,从负载突变到频率回到49.95Hz以上,大概花了6个采样周期,也就是1.2秒左右。对孤岛微电网来说,这个恢复速度是可以接受的。

3.2 采样周期与闭环稳定性:一个折中游戏

数据采样控制里,采样周期 (T_s) 是一个牵一发动全身的参数。它决定了你能观察到多快的动态,也决定了你能安全地施加多大的控制增益。

直观理解就是:你每隔200ms才看一次表,如果这200ms里出现了剧烈的频率波动,你是看不到的;但你基于上一次状态算出来的修正量,在下一个采样点到来之前会一直保持。这两件事叠加,会导致一个采样控制系统特有的现象:采样周期越大,系统增益裕度越小,越容易不稳定。

我在仿真里做过一组对比:

  • (T_s = 50ms):恢复快,但对测量噪声敏感,通信开销大。
  • (T_s = 200ms):恢复时间约1.2秒,抗噪能力好,通信开销适中。
  • (T_s = 1s):稳定性还行,但恢复时间拖到4秒以上,负载突变后频率长期偏离额定,体验很差。

所以采样周期不是越小越好,也不是越大越稳定。我的经验选法是:先确定微电网自然动态的时间尺度,通常由LC滤波器、下垂环和锁相环的时间常数决定;然后让采样周期落在“动态时间常数的1/5到1/2”区间内。在我这个项目里,下垂环的响应时间常数大概在400ms量级,所以200ms的采样周期刚好合适。

这里还要注意一个理论上的坑:数据采样控制系统是一个典型的时变系统,因为你每隔一个周期才更新一次控制量,但系统的物理动态是连续的。严格判断稳定性要用离散化后的系统模型或者输入延迟系统理论,不能直接拿连续系统的带宽和相位裕度去套。实操上,我验证稳定性的方法是在几个极端工况(满载、轻载、负载突变、单台DG切出)下扫参数,看修正量是否收敛,出现振荡就降低增益或减小采样周期。

3.3 时延、丢包与阈值保护

采样二次控制实际跑起来,通信不是理想无延迟的。时延和丢包会直接影响控制量的“新鲜度”和“完整性”。

我的做法是给控制通道加三道保险:

  1. 数据新鲜度判断:每个采样包带时间戳,控制器只接受时延小于 (0.5T_s) 的包,超时的直接丢弃,用上一次有效的值参与计算。这样可以避免“用昨天的数据指导今天的修正”。

  2. 丢包保持策略:下行通道丢包时,逆变器不把修正量清零,而是保持上一次收到的最新修正量,继续叠加到下垂参考上。等你通信恢复后,控制器自然会给一个新值覆盖掉。这个策略叫“保持型”抗丢包,比“归零型”更符合控制连续性直觉。

  3. 修正量限幅:无论控制器算出什么值,(\Delta f_0) 的幅度都限制在±0.5Hz以内,(\Delta V_0) 限制在±5%额定电压以内。防止通信异常时,一个错误的大修正把逆变器推入过压或过频保护。

为什么限幅这么重要?我在一次调试中模拟了通信丢包率30%的场景,如果没有限幅,控制器在几个周期内积分出来的修正量会一路飙到上限,直接把频率推向52Hz,触发逆变器保护跳闸。加上限幅后,最坏情况也就是频率恢复慢一点,不会发生保护性跳闸。

4. 实操记录:一组模拟微电网的融合调式

4.1 平台与环境准备

这个项目我跑在一个自己搭的仿真平台上:四台DG逆变器共同接入一个弱交流母线,母线末端接了一个可变负载,负载可以手动投切,用来模拟负载突变。每个DG的本地控制环是电压电流双环加功率外环,功率外环里就嵌入了下垂控制。二次控制器独立运行在一个定时器任务里,每200ms触发一次,通过共享内存的模拟通信网络和四台DG交换数据。

实际项目如果是要做半实物或者台架测试,通信环节会换成实际的现场总线,但控制逻辑的调试顺序是一样的:先纯物理层本地控制,再叠加二次控制。

4.2 关键参数整定步骤与现场记录

我按照下面的顺序把整个融合系统调通:

第一步:只开一次下垂,确认稳态基本盘。给系统加一个50kW的负载,看四台DG的有功分配比是否符合容量比例。这里我遇到一个小问题:初始下垂系数没校准,导致三号DG容量最大但出力最小。逐个测量空载频率和满载频率,反算每个DG的实际斜率,校准之后分配才正常。

第二步:加电压和频率测量滤波。微电网里逆变器的PWM纹波会污染测量值,如果不滤波,二次PI会把这些高频分量当真实偏差来跟踪,结果就是控制量频繁抖动。我在每个DG上加了一阶低通滤波,截止频率设置在20Hz以下,频率测量才干净。

第三步:设置采样周期和PI初始值。先粗调 (K_{p,f}=1.0),(K_{i,f}=0.01),启用二次频率恢复。观察记录曲线的振荡情况。

第四步:负载突变测试。在输出的第10秒并入一组20%额定负载,看频率动态。第一次跑的时候,频率恢复出现了明显的超调,最大冲到50.8Hz。我把 (K_{p,f}) 从2.0降到1.5,再把 (K_{i,f}) 从0.08降到0.05,超调从0.8Hz降到0.3Hz以内。后来加了修正量限幅,动态调得就更稳了。

第五步:电压恢复通道联调。电压通道比频率复杂,因为无功分配受到线路阻抗影响很大,而且各DG的本地电压不一定一致。我先跑通单DG的电压恢复,再开启多DG并联,这里花了不少时间——后面在常见问题里细说。

4.3 从结果看融合效果

最终调完的参数下,我记录了这样几组结果作为参考:

  • 稳态频率:负载在20%到80%范围内变化,频率始终保持在50±0.02Hz以内。
  • 有功分配:两台大容量DG出力误差在2%以内,小容量DG由于测量精度限制,误差稍大到5%,但整体可用。
  • 负载突变恢复时间:频率在1.2秒左右回到50Hz附近,电压在2秒内恢复到额定值的97%以上。
  • 通信丢包10%场景:频率恢复时间延长到1.8秒左右,但系统没有失稳,电压未出现异常尖峰。

这套结果说明,数据采样二次控制和一次下垂可以很好地配合:一次层保证瞬态功率分配,二次层在几百毫秒到几秒的时间尺度上把频率电压拉回额定。时间尺度上天然错开,只要不反过来把二次控制周期压到和一次动态一样快,它们之间就不会恶性竞争。

5. 实战中避不开的坑:问题排查与经验笔记

5.1 我踩过的几个典型问题

现象可能原因排查方法与解决方案
二次修正量持续增大但频率不恢复测量滤波太强,频率信号滞后太多,PI在追一个过期目标检查滤波截止频率,换用更轻的滤波或加前馈
丢包后系统失稳丢包策略用了“归零”,导致修正量反复跳变改成保持型,丢包时保持上次修正值,通信恢复再更新
频率恢复但两DG间有功分配恶化二次修正直接加在输出频率上,绕过了下垂均分机制检查修正位置,必须是平移空载参考点,不能叠加输出
电压恢复时母线电压过冲无功-电压通道PI增益过高降 (K_{p,V}),加限幅,增加测量滤波
采样时序不一致导致修正错位各DG上报数据没有统一时标数据包带时间戳,控制器按时间戳重排再计算
负载突变瞬间二次修正反向一次动态快于采样周期,采样点恰好落在峰值上适当增大采样周期或增加输出平滑,不让控制量跳变过大

挑两个展开说。

第一个是“修正量持续增大但频率不恢复”。这个问题最容易误导人,表面上看是PI积分太大了,实际上我把滤波时间常数从0.2s改到5s之后,频率测量信号滞后严重。二次控制器每次看到的频率还是旧的偏差,于是持续增加修正量,等真实频率恢复后,修正量已经过头,于是频率又过冲。最后我把滤波从5s降回0.5s,同时给修正量加了变化速率限制,这个问题才刹住。

第二个是“频率恢复但功率分配恶化”。这个问题在我第一版代码里特别典型。我当时图省事,把二次修正量直接加到逆变器最终输出的频率给定值上,频率确实回得很快,但两台DG的有功分配合越来越偏,其中一台甚至满载、另一台接近空载。原因就是我前面说的:修正点放错了位置,破坏了一次下垂的均分功能。改成修正 (f_0) 参考点之后,均分特性立刻恢复,这是一个很关键的经验——修正位置比修正量大小重要得多。

5.2 一点经验方法论

梳理一下,做这种两层控制融合,最核心的心法可以总结成三条:

  1. 时间尺度一定要错开。一次下垂管毫秒到百毫秒级的瞬态,二次控制管百毫秒到秒级的恢复。如果你把二次控制的采样周期压到10ms,它就去跟一次下垂抢活了,系统必然振荡。保留两个控制层的带宽间隔,是分层控制不出乱子的第一前提。

  2. 修正位置比控制量大小更重要。二次修正作用在参考点上,保持一次下垂的斜率不变,功率分配才能继续正确。这一点在代码审查时几乎每版都要盯着看,因为太容易写偏。

  3. 通信健壮性靠的是“保守策略”。丢包保持、时延丢弃、修正限幅、变化速率限制,这四件套是采样二次控制的标配。没有通信系统是完美的,控制器的鲁棒性必须先于性能被验证。

如果是后续扩展,我建议在这个基础上把二次控制从中央式改成分布式一致性算法,去解决更复杂拓扑下的单点故障问题。但不论控制框架怎么换,分层边界、修正位置、采样周期这三个核心逻辑不会变,它们才是这套融合方案能站稳的根基。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询