微电网的控制层次里,二次控制一直是个“看着简单、做起来细节多”的环节。尤其当你把分布式发电单元(DG)凑到一起,只靠下垂控制撑场面,电压频率大概率会稳定在一个“差不多但不太对”的位置——偏差可能只有0.1Hz或者几伏,但就是回不到标称值。这时候二次控制就该上场了。可问题在于,分布式二次控制几乎都依赖通信网络交换邻居信息,一旦通信链路被周期性DoS攻击掐断,整套一致性协议就可能原地罢工,电压频率不光恢复不了,甚至可能跑来跑去发散掉。这篇文章我就围绕这套组合题展开:下垂控制如何打底,分布式二次控制如何收敛,周期性DoS攻击如何破坏这个收敛过程,以及最后我们怎么设计控制器,让电压和频率在攻击期间也能回到标称值。
1. 只靠下垂控制,电压和频率为什么总是差那么一口“气”
1.1 下垂控制的本质:用偏差换功率分配
先看基础。微电网里多台DG并联运行,大家必须共同承担负荷。如果每台逆变器都死守自己的频率和电压,负荷稍微变化,各DG之间就会出现环流,严重时直接把逆变器顶到保护动作。下垂控制就是为了解决“并联均流”引入的一次控制策略,它的思想很简单:仿照同步发电机的外特性,把频率和有功功率、电压和无功功率绑在一起。
典型的P-f下垂和Q-V下垂特性可以写成:
[
\omega_i = \omega_{\text{ref}} - m_i P_i
]
[
V_i = V_{\text{ref}} - n_i Q_i
]
其中(\omega_i)是第(i)台DG的输出角频率,(P_i)是有功功率,(m_i)是频率下垂系数;(V_i)是输出电压幅值,(Q_i)是无功功率,(n_i)是电压下垂系数。下垂系数的物理含义很直白:负荷增加,功率变大,输出频率或电压就按比例往下掉。这样一来,功率大的DG频率低一点,功率小的DG频率高一点,最终大家会稳定在一个共同的频率上,靠着“谁出力多谁降得多”的天然默契把功率分配好。
这个机制很像团队里靠反馈自觉对齐的场景——每个人看到自己落后了就多干点,看到自己领先了就少干点,最后总体平衡。但问题也正出在这种“比例调节”上面。
1.2 稳态偏差是怎么来的,又为什么不可接受
下垂控制本质上是一个有差调节器。比例控制的通病是:必须有误差才能产生调节作用。换句话说,系统稳定之后,频率和电压必然偏离标称值,否则下垂曲线就失去了调节动力。
举个实际点的数据。设系统频率标称值50Hz,某台DG额定有功50kW,下垂系数(m = 0.001\ \text{rad/(s·kW)})。当负荷增加10kW时,频率会下降约0.01 rad/s,换算成Hz大约0.0016Hz。单看这个数好像不大,但微电网里负荷波动动辄几十千瓦,多台DG累积下来,频率偏差完全可能超过0.5Hz。电压偏差同样如此,线路压降加上无功负荷变化,母线电压可能跌到额定值的95%以下。
低频运行会带来一堆连锁反应:感应电机转速下降、效率变差;电子设备电源工作点偏移;最要命的是影响继电保护和并网切换的整定逻辑。而电压长期偏低,还会让恒功率负荷的电流上升,线损跟着涨,形成恶性循环。所以电网对频率和电压的稳态指标卡得很严——频率偏差通常要求在±0.2Hz甚至更严格,电压偏差要求在±5%以内。下垂控制无论如何调系数,都无法同时满足“功率分配”和“稳态无差”这两个目标。
1.3 二次控制的定位:在下垂控制肩膀上做无差补偿
既然下垂控制负责“分功率”,那“恢复标称值”的活儿就得交给二次控制。二次控制的思想不是推翻下垂曲线,而是在下垂控制输出的基础上叠加一个补偿量,把频率和电压慢慢拉回到标称值,同时尽量不动功率分配的格局。
早期的微电网二次控制是集中式的。中央控制器统一采集各DG的运行数据,算出一个全局补偿命令,再下发给各台DG执行。这种方案思路清晰,但短板也很明显:中央节点挂了,整个二次控制就瘫痪,而且通信结构是星型,扩展性差,不符合微电网“即插即用”的理念。于是分布式二次控制逐渐成为主流——每台DG只需要和自己的通信邻居交换信息,通过一致性协议迭代计算补偿量,最终也能让所有DG的频率和电压同时收敛到标称值。
注意“同时”这两个字。分布式二次控制的难点就在这里:不是把你自己的频率拉回来就行,而是所有DG必须达成共识,谁也不能冒头。这就引出了通信网络的价值——它是多DG之间交换状态信息的唯一通道,也是整个二次控制闭环中跑数据的“血管”。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 分布式二次控制的“一致性协议”:多台DG是怎么靠邻居信息撸齐状态的
2.1 通信拓扑的数学抽象:图、邻接矩阵和拉普拉斯矩阵
要理解分布式二次控制,得先习惯用图论的眼光看通信网络。假设微电网里有(N)台DG,每台DG看作图的一个节点,能通信的两台DG之间连一条边。这个图可以用邻接矩阵(\mathcal{A})描述:如果节点(i)和节点(j)能通信,则(a_{ij}=1),否则(a_{ij}=0)。再定义拉普拉斯矩阵(\mathcal{L}),它的对角线元素(l_{ii})等于节点(i)的度(即邻居数量),非对角线元素(l_{ij}=-a_{ij})。
拉普拉斯矩阵的重要性在于它的谱性质。如果通信图是连通的,那么矩阵(\mathcal{L})有一个且仅有一个零特征值,对应的特征向量是全1向量。这个性质在控制理论里可以解读为:当所有节点通过一致性协议交换信息时,系统最终会收敛到一个共同的值——而这个共同值恰好对应特征值0的右特征向量张成的空间。换句话说,连通性是分布式一致性的充分必要条件,通信拓扑一旦断裂,共识就不再成立。
2.2 一致性控制器怎么表达:频率与电压的修正量设计
分布式二次控制器的目标,是让每台DG的频率( \omega_i(t) )和电压幅值( V_i(t) )都收敛到参考值(\omega_{\text{ref}})和(V_{\text{ref}})。以频率为例,控制回路可以写成:
[
\Delta \dot{\omega}i(t) = -c\left[\sum{j \in \mathcal{N}i} a\left(\omega_i(t)-\omega_j(t)\right) + b_i\left(\omega_i(t)-\omega_{\text{ref}}\right)\right]
]
其中(\mathcal{N}_i)是节点(i)的邻居集合,(c)是控制增益,(b_i)指示节点(i)是否能直接获得参考值((b_i=1)表示能,(b_i=0)表示不能)。这个式子读起来有点绕,但拆开理解其实不复杂:第一项是邻居偏差和,作用是让本机和邻居之间的状态差缩小,促使所有DG向共同值靠拢;第二项是“虚拟领导者”牵引项,作用是给整个系统锚定一个目标值,防止大家收敛到一个不对的共同值上。类比一下,邻居偏差和相当于团队里“对齐工作节奏”的互相协调,参考牵引项相当于有人在耳边不停喊“目标是50.0Hz”。两股力量同时作用,系统既有一致性,又有准确性。
电压通道的控制器可以设计成完全相似的架构,输出电压幅值(V_i)替代频率角频率(\omega_i),调节无功补偿量。区别在于电压下垂特性还和线路无功压降耦合更多,现场调试时参数往往不能照搬频率通道,后面第五章会细说。
2.3 一次控制与二次控制的配合:控制量的注入方式
控制器算出的补偿量不是直接加给PWM调制器,而是作为下垂参考值的修正项,注入到一次控制的参考输入里。具体来说,二次控制输出(\delta_{\omega,i})和(\delta_{V,i})后,DG的下垂方程变为:
[
\omega_i = \omega_{\text{ref}} - m_i P_i + \delta_{\omega,i}
]
[
V_i = V_{\text{ref}} - n_i Q_i + \delta_{V,i}
]
这样设计的妙处在于:功率分配依然由下垂曲线主导,二次控制只负责“抬”基准,两者解耦得比较干净。实际操作中,二次控制的输出会经过一个积分器或低通滤波器再注入,避免高频噪声把一次控制带偏。这也是很多教材里说“二次控制的作用相当于把下垂曲线整条平移”的原因——曲线形状不变,但基准线上移或下移,系统工作点就被修正了。
2.4 为什么这道闭环如此依赖通信:没有邻居数据,积分项就是无源之水
细看一致性控制器的结构会发现,每一步更新都必须用到邻居的状态信息。如果通信一切正常,控制器每拍都能拿到新鲜数据,修正量平滑推进;如果通信断开,积分器只能依靠旧数据,或者干脆停止更新。而旧数据意味着什么?邻居DG的实际功率和频率一直在随负荷变化,控制器却拿着过期的值在算,算出来自然是错的。
更要命的是,通信一旦中断超过一定时间,各DG的补偿量就会开始各行其是——有的还在用攻击前的残值,有的已经本地调整了多个周期,彼此之间失去协同。等到通信恢复,大家的状态差已经拉得很大,一致性协议要重新“磨”很久才能对齐,甚至在对齐过程中超调振荡。这正是攻击者乐意见到的局面:不需要直接把设备打坏,只要让信息流断断续续,控制系统的性能就会大幅退化。
3. 周期性DoS攻击:通信链路被掐断后,一致性协议到底会发生什么
3.1 攻击者的手法:持续抢占或阻塞通信通道,让信息传不过去
DoS攻击的行为模式我把它概括成一句话:让你该收到信息的时候收不到。攻击者可以通过持续占用无线信道、向通信总线灌入大量无效报文、或者阻塞关键交换节点等手段,让DG之间、DG与参考源之间的有效通信陷入瘫痪。微电网的通信网络常常是有限的无线传感网或者共享总线,带宽不高,防护也未必严密,在攻击面前尤其脆弱。
这里特别要注意的是“周期性”这个词。攻击不是随机发生的偶发故障,而是攻击者按照某种规律,间隔一段时间就发动一轮攻击。在数学上,这种攻击可以建模为一个方波信号序列:每个攻击周期由“攻击活跃区间”和“攻击静默区间”构成。静默期通信正常,活跃期通信被完全阻断。把时间轴切开看,系统就在“通信正常”和“通信中断”两种模式之间来回切换。
3.2 切换系统视角:正常模式与攻击模式交替下的动态行为
从控制理论角度看,攻击对整个系统的影响可以抽象成“系统结构发生变化”。把正常的分布式闭环记作高阶系统(\Sigma_{\text{normal}}),攻击期间的等效系统(\Sigma_{\text{attack}})则是通信矩阵被破坏、积分项停摆的退化系统。两个系统交替作用,整体行为就变成一个切换系统。
攻击期间的一致性误差动态可以写成:
[
\dot{e}(t) = -\mathcal{L}_{\text{attack}} e(t)
]
如果攻击把关键链路全掐断,通信矩阵接近零,那么(\mathcal{L}_{\text{attack}})的特征值可能变成0——系统的收敛项消失,误差不衰减也不增长,处于“冻结”状态。如果攻击只掐断部分链路,剩余拓扑依然连通但连接变弱,那么系统收敛速度会显著变慢。更糟的是,本地预测值如果和环境不匹配,误差甚至会越滚越大,表现为频率慢慢漂移而不是静止。
这就像一群人本来在对表,每隔几秒互相报一次时间。攻击期间,一部分人失去联系,只能按自己的手表走。如果大家手表本身有偏差,失去联系的时间越久,各人之间的时间差就越大,等恢复联系时,对表过程就得从头再来。
3.3 为什么周期性攻击比随机攻击更危险:攻击者可精确卡位
周期性攻击的危险之处在于它“可控”。攻击者可以主动选择攻击的占空比和周期,甚至可以摸清二次控制器的收敛时间常数,让攻击活跃期恰好覆盖系统的收敛窗口。比如控制器本来需要1.5秒把频率偏差拉回零,攻击者每2秒发动一次持续1.2秒的攻击,系统在每次攻击来临前刚有一点收敛的苗头,立刻就被打断。这种“不让你睡”的打法,会让系统的有效收敛时间变成零,频率和电压永远在标称值附近振荡,但始终达不到稳定精度。
从工程防护角度,周期性的另一个麻烦在于它容易被误诊为周期性的通信干扰或负荷波动。如果没有针对性的诊断逻辑,操作人员很可能把攻击造成的偏差当成正常的负荷变化处理,错上加错。所以做控制设计时,与其指望攻击无法周期化,不如直接把“周期性攻击存在”当成前提条件,把控制器设计成在这个前提下依然能完成任务。
3.4 恢复期比攻击期更考验人:重连瞬间的冲击为何巨大
有个现象在仿真里反复出现:攻击结束后,系统反而会出现一段剧烈的动态调整。原因不难理解——攻击期间各DG的补偿量各奔东西,控制器的积分状态也积累了不同幅度的“历史欠账”。通信恢复的瞬间,所有DG突然看到了巨大的邻居偏差,一致性协议会以较大的增益疯狂修正,可能引发频率尖峰或功率振荡。极端情况下,这个尖峰幅度比攻击本身的干扰还要大,甚至触发保护动作。
所以,判断一个弹性二次控制器好不好,不能只看攻击期间稳不稳,还得看攻击结束后的恢复过程是否平缓。很多优秀的研究工作把重点放在“如何让通信恢复时不产生二次冲击”上,比如在恢复初期降低修正增益、对历史积分项做平滑处理等,这些思路在实际工程里非常实用。
4. 弹性二次控制设计:攻击期间怎么把电压频率继续拉回标称值
4.1 三条可行的技术路线:事件触发、预测补偿和切换系统设计
面对周期性DoS攻击,完全硬抗不现实,躲着打法的思路更高明。业界和学术界主要围绕三条路线做弹性设计。
第一条是事件触发通信。传统一致性协议采用周期通信,每个控制周期都发数据,暴露面大。事件触发策略则是“没变化就不发,有偏差才发”,显著降低通信次数,攻击者能利用的通信窗口变窄了,系统的有效信息流也就没那么容易被阻断。事件触发的难点在于设计触发条件——阈值设大了,通信省了但控制精度下降;阈值设小了,通信频繁,又回到了周期通信的老路。
第二条是本地预测补偿。每台DG在本地保存自己和邻居的动态模型,一旦发现通信断开,不再盲等,而是用模型推算邻居当前的大致状态,补偿缺失的信息流。这个思路很像视频通话卡顿时,播放器用上一帧预测下一帧。预测精度的上限取决于模型与实际动态的吻合程度,负荷突变剧烈时预测误差会变大,因此通常和事件触发配合使用。
第三条是切换系统稳定性设计。把攻击活跃期和静默期看作两个子系统,通过驻留时间、攻击占空比等约束条件,用李雅普诺夫方法推导出保证系统稳定的充分条件。这是理论味道最浓的一条路线,但它的产出是明确的:设计参数需要满足哪些不等式,攻击在什么样的情况下系统依然稳定、在什么样的情况下会失稳,边界画得清清楚楚。工程上拿这个边界做参考,心里就有底。
4.2 一个结合事件触发和预测补偿的具体控制框架
我在项目中落地过一种思路:把事件触发和预测补偿叠在标准的分布式一致性协议上,效果比较扎实。频率通道的控制律可以写成:
[
u_{\omega,i}(t) =
\begin{cases}
-c e_{\omega,i}(t_k), & \text{通信正常}\
-c \hat{e}_{\omega,i}(t), & \text{通信中断}
\end{cases}
]
其中(t_k)表示最近一次成功通信时刻,(e_{\omega,i}(t_k))是触发时刻的邻居偏差和,(\hat{e}_{\omega,i}(t))是本地预测得到的邻居偏差估计值。系统运行过程中,每台DG维护一个“最近邻居状态缓存”,正常通信时持续更新;检测到通信中断后,启动本地虚拟惯性模型,让邻居状态按照最近的趋势外推,直到通信恢复或者预测误差超过触发阈值。
这个方案从原理上很好解释:正常时用精确信息快速收敛,攻击时用近似信息维持系统不漂移,恢复后因为有缓存基准,重新同步的冲击也小得多。实际做下来,攻击期间的频率偏差从“持续扩大”变成了“小幅振荡”,攻击结束后的恢复时间也缩短了不少。
4.3 稳定性底线:攻击占空比和驻留时间到底约束在哪里
为了保证系统在周期性攻击下依然稳定,需要从理论上给控制器参数划一条底线。把攻击周期记为(T),攻击活跃期长度记为(T_{\text{on}}),静默期长度记为(T_{\text{off}}),占空比定义为(D = T_{\text{on}}/T)。直观上,攻击越频繁、持续越久,系统越难稳定。量化的结论一般落在两个约束上:
一是驻留时间约束。每次攻击结束后,系统需要在静默期内把状态“压”回稳定域,静默期必须大于某个和控制器增益、通信拓扑相关的最小值(T_{\text{off,min}})。如果攻击者把攻击周期压得比系统恢复时间还短,系统就会长期挣扎在收敛和破坏之间,稳定性无从谈起。
二是占空比约束。即使每次攻击都不算太长,如果攻击活跃期占整个运行时间的比例过高,累计的破坏效应依然会导致发散。通常的稳定性条件可以写成形如(D < \overline{D})的约束,(\overline{D})取决于李雅普诺夫函数两侧的衰减速率之比。假设正常模式下能量衰减率为(\lambda_1),攻击模式下能量增长率为(\lambda_2),那么占空比需要满足:
[
D < \frac{\lambda_1}{\lambda_1 + \lambda_2}
]
这个式子给工程调试提供了清晰的指南:想扛住更高的攻击占空比,要么提高正常模式的衰减率(增大控制增益、优化拓扑),要么降低攻击模式的增长率(更好的预测补偿、更稳的保持策略)。
4.4 和集中式方案比,弹性分布式方案的投资回报更高
我把几种方案放在一起做过对比:集中式二次控制在无攻击时表现最好,全网信息统一,恢复速度快;但一旦通信被掐断,直接瘫痪,而且中央节点本身就是攻击者的首要目标。标准分布式二次控制无攻击时性能优良,攻击下会出现明显的偏差发散。加了事件触发和预测补偿的弹性分布式方案,无攻击时性能略弱于标准方案(因为通信变少,信息新鲜度降低),但攻击下的性能稳健性远超前两者。
| 方案 | 无攻击收敛速度 | 攻击下频率偏移 | 通信依赖度 | 实施复杂度 |
|---|---|---|---|---|
| 集中式二次控制 | 最快 | 完全失效 | 极高 | 中 |
| 标准分布式一致性控制 | 较快 | 明显偏移/发散 | 高 | 中 |
| 事件触发+预测补偿 | 中等 | 小幅振荡,可恢复 | 中 | 较高 |
工程实际中,没有任何微电网敢说自己通信链路永远不会出问题,所以多花一点计算资源换攻击场景下的性能余量,是一个非常划算的投资。
5. 从公式到平台:Simulink仿真搭建、参数整定与踩坑记录
5.1 模块化搭建步骤:把控制链路拆成四层
我自己习惯在MATLAB/Simulink里做一个双DG孤岛微电网模型,完整跑通“下垂控制—分布式二次控制—DoS攻击注入”全链路。搭建的时候按四个层次组织模型,调试起来会清爽很多。
第一层是电气主电路。现在Simulink里有现成的三相逆变器模块,配合LC滤波器和线路阻抗参数,基本能满足孤岛运行模拟。逆变器输出经过LC滤波后接入公共母线,两台DG之间用一条线路连接,线路阻抗参数按低压微电网的典型值设置,R/X比大概在2左右。
第二层是本地控制。每台DG内部包括功率计算模块、下垂控制模块和电压电流双闭环。功率计算用瞬时有功无功或者带低通滤波的dq变换都行,低通滤波截止频率会影响下垂控制的动态响应,一般取几十赫兹,太低了功率响应慢,太高了会引入开关纹波。
第三层是二次控制。这一层是核心,包括一致性协议计算、事件触发模块和预测补偿模块。一致性协议需要实时通信的状态量,在仿真里用全局变量或者共享数据总线来实现虚拟通信网络,断开通信就相当于把数据通路开关切断。
第四层是攻击注入。用一对方波信号发生器控制两个开关,一个控制通信数据的通断,另一个控制是否切换到预测补偿模式。攻击时间序列在这里集中设置,方便做参数扫描。
5.2 参数设置:一组能跑出效果的参考值
我给出一组我实测能用的参考参数,供刚上手的读者参考。两台DG参数一致,直流母线电压800V,额定线电压380V/50Hz,额定功率20kW。下垂系数设定为(m_1=m_2=1e-4\ \text{rad/(s·W)}),(n_1=n_2=2e-4\ \text{V/Var})。这个系数取值不能太大,否则一次控制的偏差过大;也不能太小,否则功率分配不均,两台DG之间容易环流。电压外环和电流内环的PI参数按照传统逆变器设计的带宽分离原则整定,电流内环带宽取电压外环的5~10倍。
| 参数 | 数值 | 说明 |
|---|---|---|
| (m) | 1e-4 rad/(s·W) | 频率下垂系数 |
| (n) | 2e-4 V/Var | 电压下垂系数 |
| 二次控制增益(c) | 1.0 | 一致性收敛速度 |
| 事件触发阈值(\delta) | 0.02 | 相对频率偏差触发阈值 |
| 攻击周期(T) | 2s | 白名单时间序列 |
| 攻击时长(T_{\text{on}}) | 0.8s | 单次攻击持续时长 |
| 预测补偿惯性系数 | 0.5 | 本地预测衰减速度 |
事件触发阈值是我特别想强调的一个参数。(\delta=0.02)意味着邻居偏差超过额定频率的2%才触发通信,仿真里这个值需要在通信负载和控制精度之间找平衡。我试过(\delta=0.005),通信次数暴涨,但收敛速度提升有限;也试过(\delta=0.1),通信是省了,但攻击恢复后的超调明显变大。0.02这个数在这个案例里算是一个甜点值。
5.3 仿真结果怎么判读:频率偏差、电压偏差和收敛时间三个指标
运行仿真时,重点盯三个指标。第一个是攻击期间的频率偏移峰值。设标称50Hz,我跑出来的结果是:标准分布式控制在0.8s攻击内频率偏移峰值到49.65Hz左右,恢复到49.9Hz以内需要约1.6s;而采用事件触发+预测补偿的方案,攻击期间偏差峰值压在49.88Hz以内,攻击结束后0.6s内就回到49.99Hz以内。这个对比能直观看到弹性设计的效果。
第二个指标是电压幅值恢复。电压通道的动态比频率慢,因为无功功率响应受线路压降影响更大,而且电压下垂系数(n)通常调得比频率下垂系数大。实测下来,攻击期间电压跌落比频率跌落更明显,恢复也更缓慢,所以电压二次控制的增益和积分时间常数需要单独微调,不能直接照抄频率通道的整套参数。
第三个指标是两台DG之间的同步性。看两台DG的频率曲线是否“粘”在一起。攻击期间如果两条曲线分叉,说明一致性被破坏;通信恢复后两条曲线重新贴合的时间,就是重新同步时间。这个指标最能直观反映通信网络在二次控制中的价值——没有邻居信息,两台DG就像断了线的搭档,各自跳着各自的舞步。
5.4 踩过的坑:仿真步长、攻击切换和事件触发的抖动
第一个坑是仿真步长。攻击切换瞬间,通信使能信号发生跳变,如果固定步长太大,可能会错过切换沿,导致攻击时长不准。我用的是变步长求解器,最大步长限制在1e-4秒,保证切换沿被捕捉到。仿真时间虽然拉长了,但攻击时序的精度很重要,这个代价值得付。
第二个坑是通信延迟的叠加。真实通信网络不仅有通断问题,还有传输延迟。我在总线上加了100ms的延迟模块模拟网络时延,结果事件触发策略的性能明显下降——因为数据发出去的时候是新鲜的,收到的时候已经过了两个控制周期。控制设计时必须把通信延迟纳入事件触发条件的设计里,否则实际部署时性能会打折扣。
第三个坑是事件触发的抖振。如果事件触发阈值设置不当,可能会出现频繁触发—停止—再触发的现象,尤其是在攻击恢复瞬间。我加了一个触发锁定机制:一次触发之后,至少间隔一个最小时间才能再次触发。这个时间窗要小于系统关注的最小动态时间常数,又不能太小,否则起不到锁定作用。
第四个坑是预测补偿的“预测方向”错误。简单线性外推在负荷突增时可能把邻居状态推往错误方向,导致攻击期间偏差不降反升。解决办法是给预测值加一个置信区间,当预测值与本地测量值偏差超过预设上限时,切换到“保持模式”,不再外推。这个机制用一句话概括:拿不准的时候,宁可不动,也不要乱动。
6. 一些实操层面的建议和后续可以扩展的方向
如果读者准备在自己项目里复现这套方案,我有几条实操建议。先从双机系统入手,不要一上来就搞四五台DG的大系统。双机是最简单的连通图,所有现象都清晰可见,调明白双机,多机系统只是拓扑变了,收敛规律本质上不会有变化。然后是参数整定的顺序,先整定下垂系数把功率分配调到满意,再整定电压电流双环的动态响应,最后才碰二次控制的增益和事件触发阈值。前面没调好就动后面,出了问题根本分不清是哪层引起的。最后是攻击参数的设定,别一上来就猛攻,从短占空比开始逐步加压,把系统在“稳定—临界—失稳”之间的边界画出来,你会对参数裕量有更深的认识。
后续可以考虑在几个方向上继续深挖。一个是在电压恢复通道加无功功率分配的均衡约束,因为实际微电网中无功分配不均匀比有功分配更容易引发电机过载;另一个是把这种弹性控制策略移植到离网/并网切换的暂态过程中,因为并网开关动作瞬间的冲击也是一种广义的“信息中断”;再有就是引入通信网络的在线监测,用攻击检测器配合控制器的模式切换,把被动抗攻击变成主动切换策略。
我自己的体会是,弹性控制这件事,真正的挑战不在于想出复杂的算法,而在于把理论约束翻译成工程上能用的参数。李雅普诺夫条件给出了稳定域,事件触发阈值和预测补偿系数给出了可调旋钮,这两者之间的桥接需要反复仿真和实测才能建立感觉。第一次跑通双DG带攻击的模型时,我盯着示波器里恢复后的光滑曲线愣了半天——那种“理论推出来的东西真的在动态系统里立住了”的感觉,是所有仿真实验里最值得反复品味的时刻。
