参量Lyapunov理论如何破解电力系统广域阻尼控制中的时滞与饱和难题
2026/9/24 18:32:36 网站建设 项目流程

前段时间我完整复现并验证了一套基于参量Lyapunov理论的电力系统广域抗饱和时滞阻尼控制策略,中间把相关专业术语、数学推导、仿真流程和调试过程都过了一遍。这篇文章我不打算写成分段式的学术摘要,而是用一线复现者的口吻,把“这套控制策略到底在解决什么问题”“参量Lyapunov理论为什么能对上电力系统的需求”“仿真里怎么把参数调起来”讲清楚,顺便整理一份可以直接收藏的术语速查表。适合刚接触广域阻尼控制的研究生,也适合准备做低频振荡抑制项目但还没想好用哪种设计框架的工程师。

1. 先把问题搞清楚:这套控制策略在对抗什么

1.1 低频振荡与广域阻尼控制为什么非做不可

电网由多个区域互联之后,区域之间发电机的转子就像用弹簧连着一样,扰动一来,功角和功率就会来回摆动,频率通常在0.1~0.7 Hz,工程上叫区间低频振荡。这类振荡如果阻尼不够,轻则持续几十秒、上百秒不衰减,重则触发保护动作、导致系统解列。控制层面,最主要的手段是加阻尼控制器,常见的就是PSS。但就地安装的PSS主要利用本地信号,对本地振荡模式效果好,对区间振荡模式的能观性比较弱,经常“看不见”远方参与振荡的发电机组,自然也就很难给出有效阻尼。

广域测量系统WAMS的出现改变了这个局面。它依托同步相量测量单元PMU,通过GPS时钟给不同地点的电压、电流、相角打上统一时间戳,把远方信号实时送到控制中心或直接送到控制器。控制器看到的是整个断面的动态,而不是局部信息,对区间振荡模式的能观性和可控性都大幅提升。这就是广域阻尼控制WADC的基本逻辑:借助全局信息,补上本地控制器看不到的那部分阻尼。

1.2 时滞和饱和:两个容易被低估的工程问题

广域信号从PMU采集、通信网络传输、协议封装、控制器计算到执行机构动作,每一环都在消耗时间。实测下来,单程时滞从几十毫秒到数百毫秒都可能出现,而且并不是固定值,会随网络负载和路由变化产生抖动。控制回路一旦引入纯延迟,等于给控制信号增加了一个附加相位滞后。如果振荡频率是0.5 Hz,时滞200毫秒,对应的相位滞后大约是36度。很多广域控制器设计时相位裕度也就30~40度,这36度一加进去,正阻尼直接变成负阻尼,这就是为什么有些控制器在离线仿真里表现很好、一旦接上真实通信链路就开始乱摆。

执行器饱和是另一个块硬骨头。励磁系统顶值电压、可控串补和SVG的无功输出,都有硬限幅。控制器算出来的指令如果超过执行器上限,系统就会进入饱和区。麻烦的是,控制器内部如果有积分环节或慢动态状态,这些状态在饱和期间还会继续累积,等指令回到限幅以内时,执行器还要花很长时间把“过度累积”的部分消化掉,表现为超调变大、振荡变久。这个现象就是典型的windup,翻译成大白话就是控制器“记仇记过头了”。抗饱和控制要解决的,正是这个问题。

1.3 参量Lyapunov理论为什么能插上话

处理时滞和饱和,传统上有很多工具,最常见的是线性矩阵不等式LMI方法,把稳定性条件写成矩阵不等式,然后交给凸优化求解。LMI能处理时滞和饱和吗?能,但引入的辅助变量、松弛变量往往很多,系统阶数一高,矩阵维数迅速膨胀,求解时间变长,得到的结果还是一堆数值矩阵,很难直观看出“哪个参数影响哪个性能”。参量Lyapunov理论的关键区别在于把Lyapunov方程参数化,引入一个可调参数γ,让Lyapunov矩阵P变成γ的显式函数。时滞上界、饱和限幅、阻尼特性这些指标,最后都能写成γ的函数。设计者不需要翻来覆去重解优化问题,只需要调一个旋钮γ,就能够在阻尼性能、时滞容忍度和抗饱和裕度之间做权衡,这种“一个旋钮走天下”的特性,和工程调试习惯非常搭。

1.4 专业术语速查表

标题里面的术语比较多,为了后面不绕晕,先整理一份速查表,读文章时随时可以回过来查。

术语一句话解释
参量Lyapunov理论对Lyapunov方程引入可调参数γ,构造一族参数化正定解,用于控制器设计与稳定性分析
广域测量系统WAMS基于PMU和精确时间同步的全网动态测量系统,为阻尼控制提供远方信号
相量测量单元PMU同步测量电压电流幅值、相角、频率的装置,是WAMS的核心终端
时滞信号从测量、通信、计算到执行各环节造成的时间滞后
执行器饱和励磁电压、电力电子装置输出等硬限幅导致控制器输出无法被执行的现象
抗饱和控制执行器进入饱和时补偿控制器内部状态、避免性能劣化的策略
阻尼比描述振荡衰减速度的指标,工程上希望区间振荡模式阻尼比大于5%~10%
吸引域系统状态能收敛到平衡点的初始状态集合,抗饱和设计中最关心它的大小
Lyapunov-Krasovskii泛函把经典Lyapunov方法推广到时滞系统而构造的泛函类工具

2. 参量Lyapunov理论:从经典工具到参数化方案

2.1 经典Lyapunov方法在说什么

要理解参量Lyapunov理论,得先回到最基础的Lyapunov定理。它的核心思想很直观:构造一个类似“能量”的正定函数V(x),如果沿着系统轨迹看,这个函数的值一直在减少,最终一定会回到平衡点,那系统就是稳定的。对线性系统dx/dt=Ax,通常取V(x)=x^T P x,其中P是正定矩阵,沿轨迹求导后得到x^T(A^T P+PA)x。要让导数负定,就要让A^T P+PA是负定矩阵。这个条件可以直接用LMI工具箱求解,也可以转化为方程来解。经典框架给了我们一套很强大的判断工具,但缺点也很明显:对于一个给定系统,“合理”的P很多,求解结果在很大程度上取决于不等式条件是怎么写的,而且很难说清楚解出来的P和系统动态响应之间有什么直观联系。

2.2 参量Lyapunov方程的形式与求解思路

参量Lyapunov理论的核心是把这个“找P”的过程参数化。对于可控系统dx/dt=Ax+Bu,考虑如下参数化Lyapunov方程,通常写成PLE:

A^T P + P A - P B B^T P = -γP

其中γ是一个正的可调参数。在(A,B)可控的前提下,只要γ大于某个阈值γ_min,这个方程就存在唯一正定解P=P(γ),并且P(γ)随γ增大而单调增大。基于这个解,状态反馈控制律可以直接取为u=-Kx,其中K=B^T P(γ);如果输入通道还有加权阵R,就写成K=R^{-1} B^T P(γ)。闭环系统变成dx/dt=(A-BB^T P)x。从实际效果看,γ越大,反馈增益越高,系统收敛越快,但控制量也越大。从几何角度看,P(γ)定义了一族椭圆集合{x^T P(γ)x ≤ c},γ控制着这个椭圆的“紧致程度”,系统状态会被约束在逐渐收缩的椭圆族里回到原点。这个几何图像非常重要,因为饱和约束恰好可以用椭圆来描述。

求解PLE时,MATLAB没有现成的单行函数可以调用,因为它不是标准的代数Riccati方程。我习惯用牛顿迭代来解。思路是把PLE看成F(P)=0的矩阵方程求根,在每一步用当前P构造一个李雅普诺夫方程来求增量。示意代码如下:

function P = solvePLE(A, B, g, tol) n = size(A, 1); if nargin < 4, tol = 1e-8; end P = eye(n); % 初值,实际使用时建议先用LQR粗解或小γ解热启动 for k = 1:100 F = A'*P + P*A - P*B*B'*P + g*P; % 方程残差 if norm(F, 'fro') < tol break; end Acl = A - B*B'*P; % 当前闭环矩阵 dP = lyap((Acl + 0.5*g*eye(n))', F); % 解李雅普诺夫方程求增量 P = P + dP; end end

这段代码的核心逻辑是在每个迭代点处线性化F(P),用lyap函数解出增量dP。实际使用时,如果初值离真解太远,迭代可能不收敛,所以建议从较小的γ开始,逐级增大,把上一个γ的解作为下一个γ的初值,当然后面还会讲这个问题。

2.3 为什么它对饱和控制特别友好

处理执行器饱和,最简单也是相当有效的思路,是让控制器尽量不发出饱和指令。听起来有点粗暴,但这在控制领域有专门的名称,叫低增益设计。如果执行器限幅是u_max,只要在系统可能到达的所有状态点上都满足||Kx||≤u_max,饱和就不会被激活,系统始终工作在线性区。矛盾点在于,一味的低增益会让阻尼变差,动态过程拖得很长,所以需要在“够小”和“够快”之间找平衡。PLE刚好给了这个平衡一个显式的数学表达:k=P(γ)B,饱和不激活的条件可以写成在椭圆{x^T P(γ)x ≤ 1}上控制量的最大值小于u_max。由于P和K都是γ的显式函数,这个最大控制量可以很快算出来,于是抗饱和控制变成了一个一维搜索问题:找一个尽量大的γ,同时保证对应的椭圆依然落在可执行范围内。相比LMI方法里拖出一大串扇区条件、辅助矩阵和松弛变量,这种方式在工程上友好太多了。

时滞方面,PLE同样能嵌入到Lyapunov-Krasovskii泛函或Lyapunov-Razumikhin框架里,时滞上界的估计最终也会变成γ的显式函数。最常见的做法是固定一个γ,画一条“时滞上界随γ变化”的曲线,然后结合饱和约束选择一个落点,后面仿真部分的敏感性分析就是这样做的。

2.4 与LMI方法的直观对比

把两种设计框架放在一起看,差异很清晰。

对比维度LMI方法参量Lyapunov方法
求解方式凸优化/内点法代数方程/牛顿迭代
结果形式数值矩阵P、KP(γ)参数化矩阵
饱和处理需要辅助矩阵、扇区条件,表达复杂低增益设计天然匹配,直接校核椭圆约束
时滞处理可行,但松弛变量多、矩阵维数容易膨胀时滞上界可直接写成γ的函数
工程调节改权重后重新求解优化直接调γ,物理含义清晰
适用限制通用性强,几乎不受系统结构限制要求系统可控且能化为标准形式,部分复杂结构需要扩展处理

这个对比不是说要否定LMI。实际上很多场合LMI更通用、更容易处理模型不确定性。但针对“执行器饱和+时滞”这样一个相对聚焦的问题,PLE的参数化结构确实带来很多便利。

3. 控制策略设计:把理论一步步落到电力系统上

3.1 线性化建模与可控性检查

实际电力系统是非线性、高维的,而PLE设计基于线性系统模型,所以第一步是选择合适的运行工作点,对系统做线性化。以经典的两区域四机系统为例,发电机可以采用三阶模型,状态量包括功角、转速偏差、q轴暂态电势和励磁状态,数量大约在12到20个之间。输入u取励磁附加参考信号,输出y取区域间的转速差或联络线功率偏差。状态矩阵A、B、C可以通过Power System Toolbox或其他电力系统分析软件,在指定潮流工作点下直接线性化得到。

拿到A、B之后第一件事不是急着设计控制器,而是检查系统是否可控。如果rank(ctrb(A,B))小于系统维数n,就说明有一部分模态不受输入影响。这种情况下必须先做可控性分解,把状态变量拆成可控子空间和不可控子空间,然后把PLE设计放在可控子空间上。剩下的不可控模态必须本身已经稳定,否则无论什么反馈都救不回来。这一步听起来基础,但实际项目里很多人都跳过,直到算法报奇异的时才发现问题。

3.2 时滞与饱和的数学表达

时滞建模有两种常见方式。一种是分析用的显式时滞模型,在控制律中直接写成u(t)=K x(t-τ),稳定性分析时构造Lyapunov-Krasovskii泛函,最终得到与时滞上界相关的条件。另一种是仿真用的近似模型,比如一阶或二阶Pade近似,把延迟环节替换成有理传递函数,方便做频域分析和时域仿真。需要注意,Pade近似在频带内是准的,但超过一定频率后相位误差会增大,所以稳定性结论必须以显式时滞模型或带真实延迟模块的非线性仿真为准。

饱和环节的数学表达相对简单,写成sat(u)=sign(u)·min(|u|,u_max)。但这个简单非线性在闭环里会引起实质性的行为变化。抗饱和处理有两个层次:第一层次是低增益设计,保证常态扰动下控制量不进入饱和区;第二层次是抗饱和补偿器,在动态较大、系统临时进入饱和后,把实际控制输入与指令值的偏差反馈到控制器内部,抑制状态继续累积,从而加速退出饱和。PLE方法主要保证第一层次的“不进入饱和”成立;如果希望更强鲁棒性,可以在外层再加一个由P(γ)构造补偿增益的抗饱和回路,两层叠加后的效果在仿真里非常明显。

3.3 基于PLE的控制器和抗饱和补偿器设计步骤

我把整个设计流程整理成六步,照着这个顺序走基本不会乱。

  1. 在选定工作点线性化系统,得到A、B、C矩阵,检查可控性并做可控性分解。
  2. 根据实际通信链路测量数据,确定一个保守的时滞上界τ̄,比如实测最大时滞的1.5~2倍。
  3. 选择一个初始γ,例如从0.5开始,用上一节给出的牛顿迭代法解PLE,得到P(γ)和反馈增益K=B^T P(γ)。
  4. 校核时滞条件:在非线性模型或特征值分析中,把时滞τ̄加入闭环,验证系统仍然有足够阻尼。如果不能满足,调整γ并重复第3、4步。
  5. 校核饱和条件:计算椭圆{x^T P x≤1}内控制量的最大值max||Kx||,与执行器限幅u_max比较。若超过限幅,则减小γ;若远小于限幅,可以适当增大γ以提高阻尼。
  6. 加入抗饱和补偿器。补偿器最简单的形式是把sat(u)-u经增益阵E反馈到控制器内部,E可以取与B^T P(γ)相关的量,仿真验证大扰动下的动态响应。

3.4 参数整定的一个总原则

这套设计里,γ是唯一的决策变量,但它的作用并不是越大越好。γ太小,反馈增益低,阻尼弱,扰动后振荡会持续较久;γ太大,控制量很快逼近限幅,一旦进入饱和,低增益设计的前提就不存在了,系统反而可能因为windup而失稳。所以整定γ的本质,是在“阻尼性能”和“不进入饱和”两个约束之间取交集。实际操作中我喜欢用扫描法:先固定时滞上界,把γ从0.5到10按0.5步长扫一遍,分别记录阻尼比、时滞裕度、最大控制量,然后画到一张表上选点。这个过程不需要每次重新设计控制器,因为PLE本身就是参数化的,换一个γ解一次方程就行。

4. 仿真验证:在两区域四机系统上跑一遍

4.1 测试系统与故障场景

验证我用的系统是经典的两区域四机Kundur模型,区域1含G1、G2,区域2含G3、G4,两个区域之间通过双回联络线相连。这个系统的区间振荡频率大约0.5 Hz,阻尼很弱,是测试广域阻尼控制的理想对象。扰动设置成t=1秒时在区域1到区域2的联络线中点发生三相短路,0.1秒后跳开故障线路并重合,观察区域间转速差和联络线功率的响应。控制器附加信号加在G1和G3的励磁系统上,反馈量取两区域等效转速差,这是最典型的广域信号配置。

仿真平台用MATLAB/Simulink搭非线性模型,或者直接用Power System Toolbox的动态仿真功能。线性化模型从同一工作点提取,保证设计模型和仿真模型一致。如果不一致,后面所有阻尼比计算都没有参考价值。

4.2 γ怎么选:一次扫描和一张表

把γ按0.5步长从2扫到10,其中几个典型点对应的区间振荡阻尼比、时滞裕度和最大控制量如下,数据是我这个算例里的实际趋势,不同系统会略有差异,但方向基本一致。

γ区间振荡阻尼比可容忍时滞上界最大控制量(标幺)
20.05350 ms0.02
40.09280 ms0.04
60.13220 ms0.06
80.16180 ms0.09
100.18140 ms0.12

假设执行器限幅是0.10,那γ取8时最大控制量0.09,勉强满足饱和约束;γ取10时最大控制量已经超过0.10,按纯线性设计的控制器在扰动大一点的情况下一定会撞限幅,所以安全的选择是γ=6到8之间。从阻尼比角度看,γ=8对应的0.16比γ=6对应的0.13更有吸引力,但时滞裕度下降到180毫秒。如果实际通信链路实测最大时滞低120毫秒,γ=8完全够用。如果时滞将来可能涨到200毫秒以上,就退回γ=6。整个选型过程就是在这张表上做权衡。

4.3 时滞与饱和敏感性分析

选完γ之后,还要做两组敏感性测试。第一组是固定γ=8,把仿真模型中的传输延迟从0逐渐加到120、180、250毫秒。实测下来的特征是:0~120毫秒阶段,闭环阻尼比基本维持不变;到180毫秒时,联络线功率第一次振荡后衰减变慢,但还在可接受范围;250毫秒时系统接近稳定边界,如果再加到300毫秒,广域控制器提供的阻尼已经不足以抵消时滞带来的相位滞后,振荡发散。这个测试的意义在于告诉工程人员,“时滞裕度”不是设计完控制器再核对的,而是要提前写进设计约束。

第二组测试是饱和敏感性。把励磁顶值电压设为0.10,对比两种方案:一种是不做抗饱和设计、直接用高增益K的普通线性控制器;另一种是采用PLE低增益加抗饱和补偿的完整方案。扰动相同,结果差异非常大。普通线性控制器在故障后的第一个摇摆周期里就触发限幅,之后控制量反复在限幅上摩擦,系统出现了类似积分饱和的持续低频振荡,需要二十几秒才勉强稳定;PLE方案因为γ选择时已经校核了椭圆约束,此时并未触发限幅,系统在六到八秒内完成衰减,即使故意把故障时间延长、让系统短暂进入饱和,抗饱和补偿器也能在两个摇摆周期内把系统拉回来。

4.4 从仿真到工程还要补的细节

非线性仿真通过只是第一步,真正向现场推广还需要处理几件额外的事。第一件是测量噪声,PMU数据虽然精度高,但仍有幅值和相角噪声,反馈通道需要加合适的低通滤波或观测器。第二件是数据丢包和重排,广域通信网络并不能保证每一个采样点都按顺序到达,控制策略需要具备一定的容错能力,最常用的是保持上一帧数据或做简单的预测外推。第三件是时滞抖动,通信负载变化会让延迟随时间波动,设计时留的裕度要覆盖最差情况而不是平均情况。第四件是切换工况,不同潮流方式下线性化模型会变化,P(γ)可以在线重新计算,γ也就成了调度参数。

5. 常见问题与排错实录

5.1 解PLE时数值不收敛,问题出在哪

解PLE遇到不收敛,首先检查可控性。如果系统存在不可控模态,牛顿迭代容易在某一方向出现奇异,解法是做可控性分解,只在可控子空间上解方程。其次检查γ是否小于阈值。PLE存在正定解是有条件的,γ太小或太大都可能让方程失去良好性质。我的经验是先用小γ启动迭代,得到收敛解后,再用这个解作为大γ的初值,逐级推进。如果直接从大γ开始,初值离真解太远,牛顿法很容易发散。还有一个常见问题是lyap函数解出的增量dP不对称,数值上会出现微小不对称,建议每步迭代后手动对称化:P=(P+P')/2。

5.2 仿真一加时滞就发散,可能不是控制器的问题

经常有人拿着设计好的控制器做时滞仿真,结果一加上延迟就发散,第一反应是控制器不行。实际上,发散位置很可能在反馈路径上的滤波器和零阶保持器。仿真时如果采用离散控制器模型,采样时间设得过大,或者零阶保持器的延迟没算进总时滞,都会让稳定裕度偏低。建议先把总时滞拆开:传感器滤波延迟、通信延迟、控制计算延迟、执行环节延迟,分别写清楚,再合成一个等效时滞。这样发现问题时可以直接定位到具体环节。另外,Padé近似阶数太低会在高频段引入额外相位误差,如果是用Padé代替真实延迟做闭环校验,建议至少用二阶,并且最好再搭一个带实数延迟模块的模型交叉验证。

5.3 饱和限幅和速率约束要分开对待

实际电力电子执行器不仅有幅值限幅,还有速率限幅,比如晶闸管触发角改变的速度是有限的。PLE低增益设计只能处理幅值饱和,对速率饱和几乎没有直接作用。碰到速率饱和有两个土办法:一是在控制器输出端加一个斜坡限幅器,并把速率限制纳入仿真模型,看看阻尼性能会不会被拖垮;二是在反馈通道里使用更平滑的参考信号,避免控制器输出剧烈跳变。另外,饱和限幅的数值一定要取硬限幅而不是软限幅,有些仿真模型把限幅做成带有轻微穿透特性的非线性,会导致稳定性测试结果偏乐观,这在做抗饱和验证时尤其危险。

最后分享一个我自己踩出来的经验。做这套设计时,我最容易犯的错是一口气把γ调到最大,觉得阻尼比越高越好。结果在非线性仿真里,故障后的动态过程中控制器一次又一次撞上限幅,反而激起持续时间更长的低频振荡。后来老老实实按PLE的椭圆约束去校核控制量,把γ放回临界值以内,系统反而干净利落地稳了下来。建议你动手的时候也别纠结于找什么“最优γ”,把饱和限幅当作设计约束而不是仿真后处理,才是这套方法真正值钱的地方。

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

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

立即咨询