十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

人工鱼群算法优化电力系统稳定器参数:从原理到MATLAB实现

人工鱼群算法优化电力系统稳定器参数:从原理到MATLAB实现 简介该PDF为收录于CSDN下载频道的学术论文面向电力系统稳定分析与智能算法应用方向的工程师和研究人员。研究聚焦电力系统稳定器PSS参数优化问题针对传统相位补偿法和数学规划法在多机系统中难以兼顾全局最优的不足引入人工鱼群算法AFSA对PSS参数进行全局整定并对其步长、视野及变异机制进行改进以加快收敛速度、避免早熟。作者基于MATLAB平台编写优化程序和小扰动稳定性仿真程序验证了改进算法能够有效增大系统阻尼比、提升电网在小扰动下的稳定性算例结果与预期基本相符。资源为单一PDF文件包体约357KB内容涵盖系统建模、PSS数学模型、目标函数构建、算法改进细节和仿真算例适合用于课程设计、毕业设计及科研参考。该文档已有98人学习浏览对于从事电力系统低频振荡抑制、稳定性分析和智能优化算法研究的学习者具有较高参考价值。1. 低频振荡阻尼困境与PSS参数整定的全局寻优本质互联电网规模扩大后大机组和高快励磁装置的普遍采用让低频振荡的诱因越来越复杂。PSS作为抑制低频振荡最经济有效的措施工作原理并不复杂通过相位超前补偿环节去弥补励磁系统带来的相位滞后给系统动态增加正阻尼。问题出在参数整定上——经典相位补偿法和数学规划法多数建立在单机无穷大系统概念上离线整定出来的参数放到多机系统里并不严格实际工程价值有限。人工鱼群算法AFSA这类仿生智能算法把PSS参数配置处理成全局寻优问题以最小阻尼比最大为目标函数用鱼群觅食、聚群、追尾行为去逼近最优参数组合。这项来自郑州大学电气工程学院的研究在8机系统上把最小阻尼比从0.276提升到0.51迭代10次左右即收敛给出了一个可以直接复现的全局协调整定框架。2. AFSA的四种行为模型与搜索主循环2.1 人工鱼位置与PSS参数的映射人工鱼群算法采用自下而上的设计方式先定义单条人工鱼的行为再通过群体协同完成寻优。2002年由李晓磊、钱积新等提出基本思想是——在一片水域中鱼群数量最大的地方一般就是食物浓度最大的地方个体鱼在觅食过程中会逐渐发现该区域并在此活动。映射到PSS参数优化场景一条人工鱼的位置向量X (x₁, x₂, …, xₙ)代表一组待优化的PSS参数具体到本文的PSS模型就是增益K_PSS、超前时间常数T₁、滞后时间常数T₂这些待整定量的集合。位置向量维度n取决于机组台数和PSS补偿环节阶数8机系统全部加装PSS后维度即为所有机组待优化参数个数之和。当前位置的食物浓度Y f(X)直接对应当前参数组合的目标函数值。论文采用式(2)定义的极小极大策略Y max{ min ξ_j(k, T) }, j 1, 2, ..., m其中ξ_j为系统第j个低频振荡模式λ_j σ_j jω_j的阻尼比m为低频振荡模式个数k为PSS增益集合T为PSS时间常数集合。约束条件为k_PSSmin ≤ k_PSS ≤ k_PSSmaxT_min ≤ T ≤ T_max。用最小阻尼比作为目标函数值本质上是让优化算法去最大化系统最薄弱的振荡模态这也是电力系统稳定器参数优化区别于一般函数优化的关键——它优化的不是单一参数的性能而是所有机电模式中最差的那个。算法运行需要三个核心参数感知视野范围Visual、移动步长Step、拥挤度因子δ。Visual决定人工鱼能感知多远范围内的伙伴状态Step决定每次位置更新的幅度δ控制鱼群聚集密度防止所有个体挤到同一局部极值附近。这三个参数对搜索行为的影响在后面的改进策略部分会详细展开。2.2 四种典型行为与执行条件人工鱼有四种典型行为觅食、聚群、追尾和随机行为覆盖了从单点搜索到群体协同的完整路径。觅食行为是个体搜索的基础操作。设人工鱼当前位置为X_i在其感知范围内随机寻找另一位置X_j。对极大值问题若Y_i Y_j说明X_j方向食物浓度更高则向该位置前进一步否则重新选取X_j判断是否满足前进条件。若反复试探Trynumber次后仍不满足则随机移动一步。Trynumber即试探次数上限论文中取5。这个参数太小会让鱼群找不到改进方向、退化成随机游走太大会在无效区域浪费计算资源。聚群行为的判断逻辑是“鱼多的地方食物通常也多”。人工鱼搜索当前邻域内d_ij Visual的伙伴数目n_f计算其中心位置X_c和食物浓度Y_c。若满足Y_c / n_f δY_i说明伙伴中心食物多且不太拥挤就朝中心位置移动一步否则执行觅食行为。注意中心位置的食物浓度被伙伴数目稀释这意味着即便Y_c很高如果n_f过大导致平均浓度低于δY_i聚群也不会发生——这是拥挤度因子δ约束个体聚集过密的核心机制。追尾行为是局部加速收敛的关键。个体鱼在其感知邻域内确定食物浓度最大的人工鱼位置X_max若Y_max / n_f δY_i说明X_max处有较多食物且不太拥挤就向该伙伴方向前进一步否则执行觅食行为。追尾让表现好的个体吸引更多搜索资源相当于在局部区域做了一次快速下探。随机行为是觅食行为的缺省行为人工鱼在其视野范围内随机选择一个状态并向其移动一步。它维持种群多样性避免鱼群过早聚集到某个局部区域。实际代码实现里随机行为通常作为觅食失败后的兜底分支出现。2.3 公告板与行为择优主循环公告板用以记录当前最佳人工鱼位置和该位置的食物浓度。每条人工鱼执行完行为后将当前位置的食物浓度与公告板比较若自身状态更优则替换公告板状态。迭代结束后公告板上的值就是优化问题的最优解或近似最优解。单条鱼的完整执行逻辑不是把四种行为逐一做完而是行为择优。先执行聚群行为和追尾行为比较两种行为得到的候选位置哪个食物浓度高就执行哪个如果两者都不满足前进条件缺省执行觅食行为。用MATLAB风格描述主循环如下% AFSA主循环聚群、追尾择优执行失败则转觅食 % N: 鱼群规模, MAXGEN: 迭代上限 for gen 1 : MAXGEN for i 1 : N % 聚群行为返回候选位置和对应适应值 [x_swarm, f_swarm] af_swarm(i, X, Y, Visual, Step, delta); % 追尾行为返回候选位置和对应适应值 [x_follow, f_follow] af_follow(i, X, Y, Visual, Step, delta); % 行为择优取适应值更高的候选 if f_swarm f_follow X(i, :) x_swarm; Y(i) f_swarm; else X(i, :) x_follow; Y(i) f_follow; end % 若两种行为均未改进适应值触发觅食行为 if Y(i) Y_old(i) X(i, :) af_prey(i, X, Y, Visual, Step, trynum); Y(i) eval_obj(X(i, :)); end % 更新公告板 if Y(i) Y_best X_best X(i, :); Y_best Y(i); end end end代码中af_swarm、af_follow、af_prey分别封装聚群、追尾、觅食三种行为的候选位置计算返回值包含候选位置和对应的目标函数值。行为择优时直接比较f_swarm和f_follow取适应值大的那个作为实际移动方向。关键在于Y_old需要在本轮迭代前保存上一轮的适应值向量用来判断聚群和追尾是否真的改进了当前个体——若两者都没有带来提升Y(i)不会大于Y_old(i)此时才转去执行觅食行为。如果直接把聚群/追尾的位置覆盖上去而不判断是否改进鱼群会不断在无效位置间跳动公告板更新频率急剧降低收敛速度明显变慢。2.4 AFSA在多机PSS协调中的优势文献对比了改进遗传算法方案GA在算子选择上较传统算法耗时较长易陷入早熟优化效果不明显。人工鱼群算法恰好避开这些短板——对算法初值参数设置要求不敏感鲁棒性强全局性好脱离局部最优解能力强。PSS参数优化问题本身是非线性、多峰值的目标函数对参数变化的梯度不平滑甚至会有参数微小变化导致模式重新排序的情况这类问题正是仿生智能算法的擅长区间。AFSA不依赖梯度只需要能稳定计算目标函数值配合MATLAB的特征值求解每轮迭代只需要反复组装状态矩阵、求特征值、筛选机电模式、计算阻尼比就可以驱动整个寻优过程。3. 改进AFSA动态视野步长、双变异与K阵等值初始鱼群3.1 固定视野步长在PSS寻优中的短板基本人工鱼群算法的视野Visual和步长Step是固定值。固定参数有两个局限。步长偏大时算法前期能覆盖整个搜索空间但后期在最优值附近来回振荡难以精确收敛步长偏小时前期全局探索能力不足鱼群容易困在某个局部极值区域。PSS参数优化对收敛精度要求较高因为参数的小幅偏移直接影响阻尼比——相位补偿是针对特定频率段设计的时间常数偏差过大会导致补偿相位错位轻则优化效果打折扣重则出现负阻尼。因此论文从三个方面对基本算法做了改进视野和步长的动态调整、变异机制的引入、基于K阵等值法的初始鱼群生成。3.2 指数衰减的视野与步长调整策略动态调整的原则是算法初期设定较大的视野范围和移动步长提高全局搜索能力算法后期设定较小的视野和步长在局部范围内精确搜寻最优解。论文采用的动态调整表达式为% 动态视野与步长调整对应式(3) r exp(-30 * ((gen - 1) / MAXGEN)^2); Step Stepmin r * Step0; Visual Visualmin r * Visual0;其中gen为当前迭代次数MAXGEN为设定迭代上限Stepmin和Visualmin分别为步长和视野的最小值Step0和Visual0为步长和视野初值r为衰减系数。注意衰减不是线性的而是平方指数衰减以MAXGEN 30为例迭代到第10次时r exp(-30 * (9/30)²) ≈ 0.036视野和步长已被压缩到初值的3.6%左右到第20次时r ≈ 6.2e-4基本只剩最小步长在起作用。这个衰减速度很快意味着算法在三分之一迭代周期内完成全局搜索剩余时间全部用于局部精化。与8机算例“目标函数迭代10次左右收敛”的现象吻合——视野缩小后鱼群移动距离变短公告板更新频率自然下降。如果自己复现时发现收敛太慢或根本不动优先检查衰减速率和MAXGEN的匹配关系。MAXGEN改了指数项中的30倍系数也要同步调整。否则全局搜索阶段过短鱼群还没找到有希望的区域就进入局部搜索模式结果会锁定在初始种群附近的局部最优。3.3 高斯变异与差分变异互补动态视野步长解决的是搜索粒度问题变异机制解决的是早熟停滞问题。当人工鱼多次执行觅食、聚群、追尾行为后公告板中的目标函数仍未更新则认为人工鱼达到了变异条件。变异行为分两条线执行。公告板上的最优个体鱼执行高斯变异X X_best G * N(0, 1)其中X_best为当前鱼群最优状态G为变异算子N(0,1)为服从均值为0、方差为1的高斯分布。高斯变异的扰动幅度温和能在最优值附近做精细随机探索提高寻优精度。最优个体只有一个变异开销小但效果直接——它相当于在已知最优点附近做随机抖动有概率找到更精确的位置。鱼群中其他个体执行差分变异X X_i F * [(X_best - X_i) (X_1 - X_2)]其中X_i为第i条鱼的状态X_1和X_2为不同于X_i的两条个体鱼F为变异算子。这个公式来源于差分进化思想最优个体与当前个体的差向量提供了指向最优区域的梯度方向估计两条随机个体鱼的差向量提供了种群多样性扰动。高斯变异提高最优点附近的寻优精度差分变异加快收敛速度并提高跳出局部极值的能力两者互补。在具体实现时变异触发条件要小心处理。论文描述的是“多次进行觅食、聚群、追尾等行为后公告板没有更新”实际操作中会设一个停滞代数计数器连续K代公告板无改进就触发一轮变异。一般我会把K控制在3到5代之间——太短会频繁打断正常搜索太长则早熟状态持续过久浪费迭代资源。3.4 K阵等值法初始鱼群给搜索一个物理基准初始种群的选取对仿生算法寻优效率影响很大。论文按照基于K阵的等值法设计PSS初始参数初始人工鱼种群在该整定值上下50%区间内随机选取有效缓解算法早熟、收敛速度慢的问题。K阵等值法的操作步骤是先列出所有发电机、负荷等元件的状态方程并在运行点处线性化得到多机系统线性化系数矩阵形式为K阵的块状矩阵然后取K₁到K₆子块的对角线元素K₁ᵢᵢ到K₆ᵢᵢ代替单机无穷大系统中发电机模型线性化系数K₁到K₆最后基于等值单机无穷大系统线性化模型采用经典相位补偿法设计PSS参数。这个做法等于先把物理上合理的解注入搜索空间让初始鱼群分布在它的附近而不是在参数空间中均匀撒点。PSS参数优化问题的目标函数存在明显的主峰区域把初始种群放进主峰附近比从整个可行域随机初始化更快找到有希望的区域。代价是初始化阶段要额外做一轮K阵等值法计算但对于8机系统规模这部分开销相比整个寻优过程可以忽略。4. 8机系统上的MATLAB实现与特征值目标函数4.1 系统模型与无PSS时的阻尼状况算例采用中国电科院8机系统发电机采用三阶模型励磁系统采用一阶惯性环节负荷用恒定阻抗代替。这套模型简化在低频振荡分析中是常规配置三阶发电机模型足以描述转子运动动态一阶励磁模型能反映励磁系统的滞后特性恒定阻抗负荷省去负荷动态建模的复杂度让研究聚焦在PSS参数本身。PSS模型分四个环节增益环节K_PSS、测量环节时间常数取0.02 s、隔直环节时间常数取5 s、相位补偿环节。相位补偿环节由超前时间常数T₁、滞后时间常数T₂及补偿阶数n描述。待优化变量为增益K_PSS、超前时间常数T₁和滞后时间常数T₂。该模型在运行点处线性化后得到状态空间形式Δx AΔx BΔU_PSSΔy CΔx其中Δx为状态变量Δω_PSS为PSS输入ΔU_PSS为PSS输出。未安装PSS时系统的机电振荡模式信息显示除编号7的模式外其余模式阻尼比均小于5%的要求编号1、2、3的三个模式甚至出现负阻尼。负阻尼意味着任何小扰动都会让振荡幅度逐渐增大系统在小扰动下是不稳定的必须加装PSS提供正阻尼。论文决定在8台发电机上全部加装PSS其中1号机组需要3阶相位补偿环节其余机组为2阶。4.2 AFSA运行参数表算法运行参数按照论文式(3)的调整规则设定具体取值如下表所示参数符号取值鱼群规模N50迭代上限MAXGEN30视野初值Visual02.85步长初值Step01.25探试次数Trynumber5拥挤度因子δ0.06鱼群规模50、迭代上限30对8机系统PSS参数优化问题来说是中等偏小的配置。8台机组共约20个待优化参数维度50条鱼可以保证种群在变异后有足够的多样性。拥挤度因子δ取0.06偏小意味着鱼群对拥挤的容忍度低——当最优伙伴附近鱼太多时追尾行为会被拒绝强制个体保持距离这对多峰值的目标函数是有利的可以避免鱼群过早聚集到某个局部最优区域。4.3 特征值目标函数实现目标函数是驱动AFSA寻优的信号MATLAB中的实现框架如下% 目标函数求所有机电模式的最小阻尼比 % x: PSS参数向量AFSA期望最大化返回值 function obj pss_afsa_objective(x) % 组装包含PSS的状态矩阵A自定义函数 A assemble_state_matrix(x); % 求解全部特征值 lam eig(A); % 筛选机电振荡模式 % 判据为实部为负、虚部在0.5~25 rad/s之间的共轭复根 idx real(lam) 0 ... abs(imag(lam)) 0.5 ... abs(imag(lam)) 25; modes lam(idx); % 阻尼比: zeta -sigma / sqrt(sigma^2 omega^2) zeta -real(modes) ./ abs(modes); % 取最小阻尼比作为目标函数值 obj min(zeta); end两个实现细节值得展开。第一是机电模式筛选判据用虚部区间把特征值限制在低频振荡对应频段8机系统三阶模型下机电模式通常落在这个范围。若系统规模更大、模式更多可以用参与因子确认哪些模式与转子角强相关而不是简单按频率区间一刀切。第二是阻尼比计算特征值λ σ jω阻尼比ξ -σ/sqrt(σ²ω²)。实部为正的特征值对应负阻尼阻尼比取负min函数会捕获到负值AFSA会自然引导鱼群远离这些区域。目标函数每次评估都需要重新组装状态矩阵并做一次特征值分解。8机系统三阶模型状态矩阵维度约几十阶eig调用一次在毫秒级50条鱼每代做50次评估加行为择优的重复评估30代累计计算量很小。如果换到更大规模系统建议用eigs只求低频段特征值可显著降低特征值分解开销。4.4 初始鱼群生成与收敛判据初始化流程按论文图2的步骤执行先输入原始参数形成状态矩阵A并计算相关机电模式对PSS进行基于K阵等值法的参数设计以K阵等值法整定值为基准在上下50%区间内随机生成初始鱼群计算每条鱼的评价函数将最优个体状态赋给公告板进入迭代循环每轮先调整视野和步长再逐条鱼执行聚群和追尾行为择优检查是否触发变异最后判断收敛与否。收敛判断采用双重标准迭代次数达到上限MAXGEN或目标函数值趋于稳定。8机算例中目标函数在第10代左右达到收敛值远在30代上限之前说明“目标函数值稳定”的标准先满足。实际代码中“稳定”一般定义为连续若干代公告板变化小于预设阈值比如1e-4。初始鱼群生成时的参数边界约束也需要注意。增益K_PSS和相位补偿时间常数T₁、T₂都有物理范围和约束条件生成初始种群时一旦越界就要裁剪回约束区间。否则寻优结果在数学上再优最终也无法在真实PSS硬件上实现。4.5 优化结果对比基于K阵等值法设计的PSS使系统最小阻尼比ξ 0.276满足阻尼比不小于0.05的要求。人工鱼群算法优化后最优适应值Y_max 0.51相比K阵等值法提升了接近一倍。从特征值角度看未加装PSS时的负阻尼模式全部转正所有机电模式均获得良好阻尼意味着系统在小扰动下的振荡衰减速度显著加快。收敛过程平滑稳定无跳跃现象说明变异机制和动态视野步长调整在迭代过程中配合良好。5. 从0.276到0.51收敛曲线与自由响应的验证技巧5.1 目标函数收敛曲线的判读论文报告的目标函数收敛曲线呈现出一个重要特征最小阻尼比随迭代次数平滑上升约10代即收敛无跳跃回落。这个形态说明行为择优、变异触发和视野衰减三者配合正常。复现时如果收敛曲线出现断崖式回落通常是参数越界未处理或变异扰动了公告板如果曲线在前几代就变平大概率是拥挤度因子太小导致鱼群过早分散、无法聚集到有希望的区域。5.2 自由响应仿真的验证方法阻尼比是频域指标还需要时域仿真来验证实际动态响应。论文的验证方式是对8机系统施加初始扰动比较无PSS和PSS经人工鱼群算法优化后两种情况下的自由响应曲线具体取了5#、4#、2#机相对8#机的功角增量。无PSS时功角增量曲线发散振荡幅度持续增大PSS经AFSA优化后功角增量曲线呈衰减振荡形态逐渐归零。这个“先特征值后时域”的验证顺序很关键——先确认所有机电模式阻尼比达标再做时域仿真一旦时域曲线形态不对可以快速定位问题是参数整定之外的因素比如PSS输出限幅、投运逻辑或相位极性。5.3 复现时的参数调整技巧如果你在自己的系统上复现这个流程优先检查三个位置。第一特征值筛选的虚部区间需要按实际系统频率段调整直接照搬8机系统的0.5~25 rad/s可能把其他频段的振荡模式误选进目标函数导致优化方向偏离。第二视野衰减系数30和MAXGEN是配套的迭代上限改大时衰减要放缓否则后期步长太小算法基本停滞。第三拥挤度因子δ偏小时鱼群容易分散若发现聚群行为频繁失败、鱼群散到搜索空间边缘可以把δ调大到0.1~0.2再观察。一个小技巧在目标函数计算里打印每次筛选出的机电模式数量。如果某一次迭代后模式数量突然变化说明PSS参数跨越了某个临界状态这时优先检查参数约束边界是否写对而不是急着调算法参数。这个检查在调试阶段比看收敛曲线更早暴露问题。本文还有配套的精品资源点击获取
返回列表