尧图精选

含电池储能与PID控制器的两区域互联电网调频仿真全解析

🕒 发布时间:2026/10/1 16:29:16 📁 来源:尧图网络
做两区域互联电网调频仿真的人十有八九都遇到过这种场景模型搭好了频率偏差曲线也在动但要么稳态频差消不下去要么联络线功率来回甩好不容易调稳了储能一接入又开始震荡。我做过的一个项目恰好是“含电池储能与PID控制器的两区域互联电网调频仿真”这里面真正值钱的不是“会搭模型”而是搞清楚频率为什么失控、储能该以什么角色进入、PID控制器在互联电网里的极限在哪里。这篇文章就按我实际做仿真的顺序把模型结构、储能建模、PID整定、Simulink搭建到结果判读和踩坑经验一次讲清楚适合电气工程研究生、做储能调频方案的工程师以及刚接触LFC负荷频率控制仿真的朋友。1. 两区域互联电网的频率问题到底在防什么1.1 频率偏差是电力系统最敏感的那个“刻度”我习惯把电网频率理解成一个大转盘的转速发电厂机组加起来的出力和用户不断变化的用电负荷只要不相等转盘不是加速就是减速。电网的额定频率是50Hz所有并网发电机的转子转速都跟着它绑定所以任何一个区域的功率不平衡会立刻反映在频率偏差Δf上。这个偏差不是小事。频率长期偏高或偏低发电机组轴系、变压器铁芯、异步电机都会出现额外损耗严重时低频减载装置还会直接切掉一部分负荷。所以调频的目标总结起来就一句负荷突变后让频率偏差尽可能小、恢复得尽可能快、稳态误差为零。做仿真时我们常说的“一次调频”和“二次调频”防线就在这里拉开。一次调频是调速器的本能反应。负荷增加、频率下降调速器检测到转速变化后直接开大汽轮机阀门增加进汽量整个过程不需要调度端干预。它的问题是“有差调节”也就是电网最终会稳定在偏离50Hz的某个频率上偏差大小取决于调差系数R和系统阻尼。一次调频能把振荡拉回来但拉不回50Hz。二次调频才是“无差”的关键。它通过AGC自动发电控制或仿真里的PID控制器计算区域的功率缺额下发到机组二次调频回路让机组出力最终完全匹配负荷频率恢复到额定值。传统LFC仿真里一次调频靠调速器固有结构完成二次调频就是PID控制器的主战场。电池储能加进来之后两条防线之外又多了一条“瞬时冲刺线”它能覆盖一次调频尚未完全动作、二次调频还没跟上功率的那段空窗期。1.2 从单区域到两区域多出来的联络线振荡单区域的LFC模型相对友好负荷突变频率下降调节器把功率追回来完事。但到了两区域互联电网麻烦立刻升级。两个区域之间有一条或几条联络线功率会按照两端频率差从多的一侧流向少的一侧。换句话说A区域缺电时不是自己默默扛而是会把B区域的一部分功率“拉”过来救急。这样一来控制目标就从“把本区域频率修好”变成了“频率和联络线功率一起修好”。如果两边都只闷头调自己频率很容易各调各的导致联络线功率来回摆动极端情况下会出现两区域之间的低频振荡这在工程上是非常危险的。行业标准做法是引入ACE区域控制误差ACE ΔPtie β · Δf其中ΔPtie是联络线功率偏差β是区域频率偏差系数通常取β 1/R D。ACE把“本区域频率质量”和“对相邻区域的支援功率”打包成一个统一控制量。仿真系统里PID控制器的输入信号用ACE而不是单纯用Δf含义就在这里——既照顾自己家也不薅邻居家太多羊毛。这也是TBC联络线频率偏差控制模式下最标准的做法。1.3 为什么常规机组在这个场景里显得“不给力”做仿真之前我们得先认清一个物理现实常规机组的响应是有明显延时的。调速器有油动机、机械液压或电液执行机构汽轮机还有蒸汽容积惯性反映到传递函数上就是典型的惯性环节和迟延环节。我用过的典型参数里调速器时间常数Tg常见在0.1s到0.5s汽轮机时间常数Tt在0.3s到0.8s转子/负荷环节等效时间常数在10s到20s量级。这意味着什么负荷在t0时刻突然跳变50MW机组实际出力要经过好几秒甚至十几秒才能爬上来这期间频率一直在往下掉。负荷扰动越大、系统惯量越低频率跌落就越猛。所以传统的LFC面临一个天然瓶颈不是不想快是汽轮机阀门和锅炉侧的物理过程快不起来。电池储能进入调频市场本质上就是看中了这个时间窗口——它的功率响应能到几十毫秒级恰好能把这个缺口先堵上。2. 电池储能为什么能在调频里抢时间2.1 储能是“短跑选手”不是“马拉松选手”我经常用一个比喻火电机组调频像长跑运动员体能好但启动慢、提速慢电池储能是短跑运动员起跑极快但体力有限。储能参与LFC的核心价值是在扰动发生后的前10到30秒内迅速提供功率支撑把最大频偏压下去给火电机组争取爬坡时间而不是从头到尾代替机组带负荷。这个定性直接决定了仿真建模的取舍。我不建议在LFC尺度仿真里给储能建立复杂的电化学模型什么开路电压、内阻、SOC与OCV曲线、温度模型全上进去系统会变得又慢又难调。调频仿真看的是秒级到百秒级的功率响应储能系统在并网变流器控制下对外功率响应完全可以看作一个一阶惯性环节。真正需要重点建模的是它的功率上限、能量上限和SOC边界因为这三个约束才是储能在LFC中会踩到的物理硬线。2.2 Simulink里一个够用且不过度的BESS模型我的BESS模型包括三个环节指令接收、一阶惯性响应、边界限制。先用Simulink中的阶跃或ACE信号作为储能功率指令然后过一个一阶惯性环节传递函数是G_bess(s) 1 / (1 T_bess · s)T_bess代表从收到指令到实际输出功率的时间常数。我常用0.1s已经能模拟出储能快而平滑的响应。接下来是功率限幅。单个储能站受PCS变流器容量限制输出功率不是无限的一般设±0.2 p.u.以系统容量为基值就够加Saturation模块即可。再往下是能量/SOC约束。SOC仿真我建议做积分式处理初始SOC设0.550%然后每次仿真步长中对储能输出功率做积分除以储能容量得到SOC变化量再用饱和模块限幅。容量参数要不要精确到MWh看项目需求如果是验证控制策略给一个不会在短时仿真中轻易碰顶的容量值就行如果是研究AGC连续调用储能后的SOC恢复问题就必须把容量写实比如按功率限幅值×1小时折算基础容量再配合SOC恢复环节否则长时间跑下来储能会“空电趴窝”曲线看起来就莫名其妙。2.3 储能和机组的协调功率分配与下垂配合储能接进LFC模型不是简单把PID输出直接丢给它。我在这个项目里采用的做法是PID控制器总输出信号ΔPref出来后用一个分配系数分成两路一路给火电机组二次调频另一路给储能参考功率。比例怎么分配我的经验是储能分到20%到30%已经能明显改善动态特性如果给太多储能会很快触达功率限幅限幅一动作控制效果反而变差。还有一种常见做法是储能以频率下垂方式参与也就是储能功率指令直接与Δf成比例例如ΔP_bess -K_bess · Δf这个比例系数K_bess可以理解成“虚拟调差系数”。这种方式的优点是储能响应完全不依赖区域控制器天然提供阻尼缺点是无法消除稳态频差需要配合PID的积分作用。两种方式可以混用我实际项目里用的是“前馈下垂闭环修正”的组合储能第一时间按频率偏差比例放电PID的积分通道慢慢接管储能SOC压力也小很多。仿真正是干这个用的——把不同分配比例跑出来对比你会发现有些参数组合在理论上很漂亮仿真里却因为限幅、延时和耦合振荡而崩溃。3. PID控制器在LFC里的参数整定是门手艺活3.1 Kp、Ki、Kd在频率控制里的真实含义PID控制器是LFC仿真里最直白也最容易被低估的部分。说直白是因为三个参数各有明确的物理意义说容易被低估是因为很多人直接把单区域的整定结果搬到两区域结果振荡得一塌糊涂。Kp是比例增益它决定了系统对频率偏差的即时反应强度。Kp越大扰动后频率被拉回来的初始速度越快但Kp过大整个闭环系统会像弹簧拉过头一样出现持续的超调和高频抖动。在LFC里Kp对应的是“即时功率支援力度”。Ki是积分增益它是消除稳态频差的关键。频率控制是典型的恒值调节问题最终要求Δf0而比例控制不可能做到无差所以积分环节必须有。Ki太小稳态偏差消除慢调节时间拖得很长Ki太大系统容易在联络线功率上产生低频振荡表现为两个区域之间“打乒乓球”。我调试时最常看到的病态曲线就是因Ki偏大导致的联络线功率来回摆动而不是频率本身发散。Kd是微分增益它的作用是在频率偏差刚出现、还没发展成大问题的时候根据变化趋势提前给出反向补偿相当于给系统加阻尼。但电力系统仿真里的频率信号如果带测量噪声微分项会把噪声放大得厉害所以Kd值我一般给得很保守甚至很多时候完全不用D只靠PI也能拿到很不错的效果。3.2 两区域互联下不能照搬单区域整定结果我踩过最大的一个坑就是把单区域LFC模型里辛苦调好的PID参数直接复制到两区域模型里跑。结果非常难看区域1的频率是有改善但区域2那边联络线功率开始周期振荡。原因在于两个区域的控制器通过联络线形成了闭环耦合A区域的调节动作会通过联络线影响B区域B区域再反过来影响A区域。这种情况下两组PID参数的组合效果不是简单的叠加而是会互相激励甚至激发出单区域系统根本不存在的振荡模式。所以正确的整定流程是阶梯式的。第一步把联络线断开两个区域各自独立先分别整定出单区域下表现不错的初步PID参数。第二步接上联络线并启用ACE控制P和I参数整体往下调20%到30%这一步是给耦合振荡留余量。第三步用小步长扫描Ki观察联络线功率是否出现振荡确定性稳定之后再微调Kp。至于Kd我通常放到最后加有振荡阻尼需求才加加的时候用很小的值。我自己常用的初始参数范围是Kp在0.1到0.8之间Ki在0.05到0.4之间Kd不超过0.1。这只是起点最终值必须结合具体模型调整。如果嫌手动扫参太累可以用MATLAB的PID Tuner或粒子群、灰狼这些优化算法去搜但优化结束后仍然要回到时域曲线里人工复核别完全交给算法。3.3 限幅和积分饱和才是PIDLFC真正的敌人PID控制器在实际电厂和储能系统里输出的调节指令是有物理上限的火电机组二次调频最大增出力不可能超过额定容量储能功率则受PCS限幅限制。一旦控制器输出被限幅积分环节还在继续累积就会发生积分饱和——频率明明已经恢复正常控制器内部却积了一大堆“假账”导致超调和反方向振荡。Simulink里的PID Controller模块带内置抗积分饱和选项可以在限幅范围内同时限制积分累积值做LFC仿真时务必打开。如果手写积分器就要用条件积分法输出达到上限时只有在偏差信号能让积分退出饱和方向时才允许继续积分否则冻结积分。这一条听起来是常识但我在审阅不少仿真代码时发现很多人都忽略了限幅后的积分处理单区域模型里或许还能勉强过关换成两区域加储能之后积分饱和造成的超调会非常扎眼。4. Simulink模型搭到能跑模块、参数和扰动4.1 区域模块的连接关系在频率交叉耦合的地方尤其小心Simulink搭建过程本身不复杂关键是连接关系别乱。以两区域模型为例每一个区域内部都要包含调速器、汽轮机、转子/负荷等效环节、储能模块、ACE计算和PID控制器。区域之间通过联络线功率模块连接。联络线功率模型是在两区域频率差Δf1-Δf2上积分再乘上同步系数T12也就是ΔPtie T12 · ∫(Δf1 - Δf2) dt这个积分环节是两区域交叉耦合的核心。如果它初值不为0系统一启动就带着“假联络线功率”跑后面的曲线全都对不上。模块连接顺序我可以直接说一遍负荷扰动信号ΔPL和机组机械功率ΔPm在求和点相减得到功率不平衡量输入转子/负荷环节得到ΔfΔf经过调速器负反馈用1/R系数回到汽轮机形成一次调频内环同时ACE信号由ΔPtie和β·Δf相加进入PID控制器输出ΔPref。ΔPref经过功率分配一路到机组二次调频一路到储能模型储能输出功率也叠加到功率平衡点。这个结构里最容易出错的地方就是调速器的反馈极性——调差系数是负反馈符号反了模型会变成正反馈发散。4.2 一组可以直接抄的标幺参数仿真模型的质量很大程度上取决于参数体系的一致性。我用的是标幺体系基准容量Sbase1000MVA基准频率50Hz。表里的参数在这个体系下是自洽的读者可以直接填进Simulink试跑再按自己的研究对象调整环节参数取值说明发电机转子/负荷H5s惯性时间常数负荷阻尼D0.8单位调节效应调速器Tg0.2s油动机时间常数汽轮机Tt0.5s蒸汽容积时间常数调差系数R0.05 p.u.对应5%下垂频率偏差系数β20.8β1/RD联络线同步系数T120.2 p.u.按工程常见值范围内选取储能响应时间常数T_bess0.1s功率指令到输出储能功率限幅P_bess,max±0.2 p.u.±200MW储能初始SOCSOC00.550%区域1负荷阶跃ΔPL10.05 p.u.50MW这里最容易被忽略的是标幺换算。比如R0.05 p.u.意思是频率偏差标幺值除以功率偏差标幺值等于0.05。如果你用了频率单位Hz、功率单位MW的混合表示R的数值就完全不一样了。旧教材上很多R直接写成2.4或2.5那是以Hz/MW为单位的结果和标幺制的0.05不能混用。我建议统一用标幺制也让β和1/R可以直接相加。扰动设置方面我一般选择在t10s时给区域1增加0.05 p.u.的负荷阶跃相当于50MW。这个扰动幅度不算大但足够让频率曲线上看到明显的跌落、恢复和可能的振荡。如果你想观察更剧烈的储能支撑效果可以把扰动加到0.1 p.u.也是常用档位。4.3 仿真求解器与步长选择Simulink里求解器的设置往往决定了这个模型是“能跑”还是“能看”。我的建议是如果储能模型只是用一阶惯性环节模拟功率响应不涉及电力电子开关细节那整个系统是慢变连续系统用ode45变步长求解器完全够用。相对误差设1e-4左右仿真时长100s就够了能覆盖频率跌落和恢复的完整过程。但如果储能模型里加了PWM变流器开关或高频斩波细节就必须切换到ode23tb或ode15s这类刚性求解器而且仿真步长会被拖到毫秒级甚至微秒级跑同样的100s仿真时间要长几十倍。做LFC研究我强烈建议储能侧不建模变流器电力电子细节因为LFC研究的时间尺度是秒级研究者关心的是功率分配和控制策略不是IGBT开关波形。真要研究变流器控制那是另一个更细粒度的电磁暂态课题别混在同一个模型里做。5. 出图之后怎么判断仿真做对了5.1 看频差曲线的三个关键点仿真跑完第一件事不是截图而是盯着曲线问自己三个问题最大频偏是多少什么时候恢复稳态稳态偏差是不是零无储能时区域1阶跃扰动后频率最大偏差可能在0.1Hz到0.2Hz量级之后经过一次调频和二次调频慢慢恢复调节时间可能需要30到60s。加上储能后最大频偏通常会明显下降具体数值取决于储能功率限幅和响应速度。如果储能功率限幅给到0.2 p.u.50MW扰动对储能来说绰绰有余最大频偏能压掉一半甚至更多。稳态阶段只要PID的积分环节工作正常频率应该回到50Hz附近稳态偏差应当在1e-3Hz以下这是判定控制是否合格的硬指标。频率曲线如果在稳态附近还持续小幅度振荡多半是Ki偏大或Kd产生了噪声放大。5.2 联络线功率和ACE的“表情”也说明了控制品质频率曲线是控制效果最直观的体现但LFC做得好不好还要看联络线功率和ACE。扰动发生在区域1但区域2也受牵连就是因为联络线功率会变化。一个健康的响应过程是扰动瞬间区域1频率下跌联络线功率从0开始正向增加电能从区域2流向区域1储能动作后区域1功率缺额被快速弥补联络线功率经过一个平滑峰值后回落到0。如果联络线功率曲线出现多次正负交替说明两个区域的控制器在“互相纠缠”这不是好现象。所以判读曲线时我习惯把三条曲线放在一起看Δf1或Δf2、ΔPtie、储能输出功率。只要储能功率曲线在扰动后迅速突增、随后平稳回落而且SOC没有突变成0或100%储能的控制逻辑基本就是对的。反过来如果储能功率曲线频繁在上下限之间“扇动”说明增益给大了系统在极限处振荡。5.3 用表格量化对比不同控制方案文字描述再多不如一张对比表清晰。我常用的对比维度是最大频率偏差、稳态频率偏差、调节时间、联络线功率最大偏差、储能动作深度峰值功率/累积能量。无储能纯机组、储能开环投切、储能参与PID闭环、不同功率分配比例四个工况一拉表谁优谁劣立刻清楚。方案最大频偏稳态频偏调节时间联络线最大偏差纯机组无储能较大0长较大储能开环固定支援减小可能不为0中等中等储能PID闭环最小0短小储能比例过大导致限幅反而增大0变长振荡表里最后一行是仿真中常见的反直觉现象储能分配比例不是越大越好。储能限幅后控制器以为储能还能出更多力持续加大指令但实际功率已经趴在上限相当于控制系统的一部分“失明”了。结果就是频率响应不但没变好调节时间反而延长。这种问题只有跑仿真才能暴露出来也是LFC储能研究里值得专门讨论的点。6. 我在两区域LFC仿真里踩过和调试踩过的坑6.1 SOC和限幅初值引起的“莫名越限”第一次跑通带储能的两区域模型时我发现储能SOC在仿真开始后前0.1秒就猛掉初始SOC明明设了0.5曲线却直接触底。排查了半天问题出在储能模型里的积分器初始条件Simulink默认初始值为0而我把SOC变化量的积分环节初始值设成了空导致模型把它当成“从0开始放电”再加上标幺基准没对齐整个SOC轨迹都错了。解决办法很简单给储能功率积分环节正确设置初始条件并把SOC按标幺值写清楚SOC变化量ΔP_bess的标幺积分值除以储能容量标幺值而不是直接对MW数值积分。6.2 微分环节贴上去就振荡先查噪声再查参数调试PID时我最推荐“先PI后D”的顺序。先把Kd设为0把Kp、Ki调稳再试探性加D。一旦Kd加上去频率曲线开始毛刺化第一反应不应该继续调参而是检查频率信号的测量噪声。Simulink里如果用了Band-Limited White Noise模块模拟测量噪声微分项放大噪声是必然的。解决方式有两种给频率信号加一个一阶低通滤波器或者在PID模块里设置导数滤波器系数NN一般取50到200之间过高会放大噪声过低会削弱微分作用。这个细节在纯PI仿真里完全看不出来但只要一涉及D基本都会遇到。6.3 两区域参数不齐引起的“隐性振荡”还有一种很隐蔽的问题两个区域参数完全一样时模型跑得很稳一旦把区域2的调差系数或惯性时间常数改小仿真就开始出现低频振荡。一开始我以为是PID参数出了毛病后来才意识到这是互联系统本身固有的机电振荡模式被激励了。两个区域的频率偏差系数β差异越大联络线功率波动越明显。面对这种情况光调PID是不够的需要检查两区域的容量比例和调差系数设置是否合理。现实中两个区域的容量不可能一样大仿真时也不要为了省事强行对称。在做方案对比时我建议至少跑两组工况一组对称参数、一组不对称参数才能看出PID参数在真实工程条件下的鲁棒性。6.4 参数整定的工作流沉淀反复调了多次之后我把整个流程固定成了模板先断开联络线整定单区域PI再接入互联电网整体下调P和I留出稳定裕度然后用固定小步长扫描Ki找振荡边界最后才考虑加Kd和小范围滤波。储能参数的调试顺序也类似先只调储能响应时间常数和功率限幅再调SOC容量最后才把储能接入PID闭环做联合整定。这样控制变量出了问题能一步定位到是机组侧还是储能侧。做完这个项目我最大的体会是含电池储能与PID控制器的两区域互联电网调频仿真真正的瓶颈不在Simulink操作而在对物理过程和控制回路的理解。储能加进传统LFC系统不是简单多一个惯性环节而是给原本由慢速机组主导的调频过程引入了一条快速通道。PID控制器能不能用好这条通道取决于你是否清楚每次参数调整在频率曲线和联络线功率上会产生什么连锁反应。最后再分享一个小技巧所有关键参数建议放在模型初始化脚本里统一赋值不要在模块里手填数字这样每次更换储能容量或负荷扰动幅度时只需改一处就能避免改漏参数导致仿真结果对不上的尴尬。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →