说实话风光储并网模型这活儿看起来就是把光伏、风机、储能三个单元各自搭好再并到一根母线上最后挂到电网上。听起来不算复杂但真动手的时候光伏MPPT的初始占空比、风机转子侧控制的PI参数、储能SOC的初始电量任何一个不对整个模型就开始发散振荡。我最近完整搭完了一套跑稳定之后回看整个过程踩的坑比预想的多也比预想得深。这篇就把从模型架构到每个单元的参数取舍、再到运行中遇到的实际问题完整拆开讲希望能给正在搭模型的人一个行之有效的参考。1. 模型整体架构与工具选型1.1 系统拓扑怎么定交流母线还是直流母线先交代一下这套模型的基本结构。我这里做的是交流母线方案光伏单元通过Boost升压后接直流母线再通过逆变器并到交流母线风机单元用双馈感应发电机转子侧和网侧各一个变流器储能单元通过双向DC/DC接直流母线再用一个双向逆变器挂到交流母线上。这种拓扑在微电网和分布式能源示范项目里最常见主要优势是三个单元可以共用一条交流母线扩容灵活控制上也相对解耦。我第一版其实试过直流母线方案光伏和储能都直接接直流侧风机再单独接一出交流想着这样少一级变换效率应该更高。实际搭起来才发现问题直流母线的电压控制成了整个系统的核心任何一个单元功率突变都会引起直流电压波动控制耦合度非常高。比如光照突变导致光伏出力瞬间掉了40%直流母线电压马上就往下掉储能这时候必须立刻补功率但如果储能自身的响应延迟稍微大一点整个直流系统就进入正反馈最后保护跳闸。调了两周没调稳最终还是回到交流母线方案。所以我的建议是除非你专门研究直流微电网否则做风光储并网交流母线是更稳妥的起点。它把每个单元的相对独立性保住了调试的时候可以先让光伏单独并网、风机单独并网确认没问题以后再联合运行排查问题的范围小很多。1.2 仿真平台选择Simulink还是PSCAD仿真平台我用的是Matlab/Simulink核心原因是Simscape Electrical里面光伏、风机的现成模块比较全改参数就能用不用从电磁方程开始推。PSCAD在电磁暂态细节上确实更精细尤其是开关器件的暂态过程、故障电流波形这些但对搭建这套多机系统来说效率低不少。这里说的效率低不仅是建模慢调试周期也会拖长。不过我建议建模前别急着拖模块先把架构图画出来。我踩过的第一个坑就是架构没想清楚就上手结果做到一半发现储能单元的双向DC/DC拓扑选错了返工一次。正确的顺序是先画单线图把交流母线的电压等级、每个单元的接入位置、变压器连接方式定了再列控制逻辑清单每个单元用什么控制策略、需要哪些测量信号最后才进入仿真环境搭建。1.3 容量配比与母线电压等级容量配比上我这里做的是光伏1MW、风机1.5MW、储能0.5MW/1MWh负荷峰值大概1.8MW。这个配比没有严格标准主要看你要解决什么场景的问题。如果研究孤岛运行储能容量应该能覆盖负荷在光伏和风机出力不足时段的持续时间这个按能量平衡算假设连续阴天加无风12小时平均负荷1.5MW那就需要18MWh的能量储能就得往这个方向配。如果只看并网运行储能的角色更多是平滑波动和调峰容量可以适当小一些。母线电压我选了690V原因是风机变流器和储能逆变器在这个电压等级下模块比较成熟器件应力也容易满足。做研究性质的话10kV或35kV的中压母线也常见但需要额外加升压变压器变压器本身的励磁涌流在启动阶段又是一个坑难度会增加不少。2. 光伏与风电单元的建模要点与避坑2.1 光伏阵列组件参数和MPPT初始值光伏阵列建模很多人直接拖一个PV Array模块填个串联数和并联数就完事。但有三个参数不能随便填开路电压Voc、最大功率点电压Vmp、短路电流Isc、最大功率点电流Imp。我一开始偷懒从模块库里选了一个组件模型填了数量凑容量结果发现并联数量填少了直流母线电压根本抬不到逆变器启动阈值光伏就一直不发电查了半天才查出来。后来用常规的250W组件参数60片串联、200串并联凑到1MW容量MPPT点电压和逆变器工作范围才匹配上。这里有个基本换算关系要记住组件串联数决定直流电压并联数决定电流60片串联的Vmp大概在600V左右加上Boost升压才能到逆变器需要的750V直流母线所以Boost的升压比也要和这个匹配。建议建模时先算一遍每个单元输出的电压范围再定直流母线电压参考值。MPPT算法我用的是电导增量法扰动观察法确实简单但步长设大了会在最大功率点附近来回震荡功率波形就是锯齿状步长设小了追踪速度又太慢。电导增量法虽然复杂一点但追踪效率高特别是光照突变的时候能快速跟上。注意初始占空比要设在上一次仿真结束时的值附近不能每次从零开始。这个坑我印象很深模型启动瞬间Boost占空比从0开始爬MPPT还没找到工作点直流侧冲击电流就到了额定电流的3倍变压器都叫了。2.2 风机建模双馈机组和轴系模型风机这块双馈感应发电机是绕线转子模型搭建时传动轴系模型不能省略成刚性轴。我第一版为了省事把传动系统做成了刚性连接结果并网以后低频振荡一直消不掉大概0.8Hz左右的功率波动怎么调PI都没用。后来查资料才明白风机叶片和发电机的转动惯量差异悬殊中间通过齿轮箱连接这个轴系的扭转模态在并网以后会被电网激励出来。换成两质量块模型把叶轮惯量、发电机惯量、轴系刚度系数都填对那个低频振荡才消失。两质量块模型的参数参考文献里很容易找到一般按标幺值给叶轮惯性时间常数大概4到6秒发电机惯性时间常数0.5到1秒轴系刚度系数0.3到0.6左右。这个参数范围要记住因为如果你在自己模型里看不到0.1到2Hz之间的机械振荡大概率就是把轴系做成刚性了。转子侧变流器用定子磁链定向控制目标是让转子电流跟踪转速变化决定的参考值网侧变流器用电网电压定向控制直流母线电压稳定。这两套控制都在dq坐标系下做PI调节PI参数我建议用极点配置法先算出初值再在仿真里微调。极点配置的思路是电流内环带宽取开关频率的1/10左右比如开关频率10kHz电流环带宽设计在1kHz电压外环带宽比电流环低一个数量级取100Hz左右。这样算出来的初值虽然还要微调但至少不会出现调了三个小时还发散的情况。2.3 光伏和风电的时间尺度差异风速变化和光照变化的时间尺度不一样光伏是秒级突变一片云飘过来就能让光伏出力在几秒内掉一半风电是分钟级波动风速的湍流分量频率也不会太高。建模的时候要意识到这个差异。在联合仿真时光伏的功率波动会影响母线频率和电压风机由于有较大的转动惯量反应会滞后这时候储能单元的快速响应就非常关键。我做过一个对比实验同样的光照突变场景储能不投入时母线电压跌了8%频率波动接近0.5Hz储能投入fast响应模式后电压跌落到3%以内频率波动控制在0.1Hz以内。这个结论听起来很正常但真正跑出来看到波形对比你才会对储能的价值有直观感受。做联合仿真时建议人为设置几组典型场景光照阶跃、风速阶跃、负荷阶跃分别看系统的动态响应。3. 储能单元与能量管理策略3.1 电池模型选择一阶RC是最低要求储能电池模型常见的有一阶RC等效电路、二阶RC等效电路还有理想电压源加内阻的简化模型。做并网仿真我建议至少用一阶RC模型因为SOC变化对端电压的影响在长时间运行中很关键。如果只做秒级动态仿真理想电压源也能凑合但要时刻注意SOC别越界。具体参数上一阶RC模型要填开路电压与SOC的曲线、极化电阻和极化电容。开路电压曲线一般是一条从SOC 0到100的近似线性趋势但磷酸铁锂电池在中段有一段平坦区三元锂相对线性一些。建模时如果不填这条曲线SOC和电压的关系就失真了后续做能量管理策略时你会看到SOC还很充足但电压已经掉到低压保护限值以下这就是模型不准确导致的误判。3.2 SOC初始值和管理逻辑SOC初始值设50%到60%比较合理既允许充电也允许放电。我一开始为了测试把SOC设成了98%结果光伏大发的时候储能不能吸收直流母线电压直接飙上去逆变器保护动作。这个坑很低级但很多人会忽略。储能的充放电功率边界是SOC的函数SOC接近满的时候充电功率会被限制到接近0接近空的时候放电功率也会受限。模型里要把这个限幅逻辑做进去别只设一个固定的充放电功率上限。SOC估算在仿真模型里直接用安时积分法就行不用上卡尔曼滤波。但要注意仿真步长和采样周期步长太大SOC积分误差会累积长时间仿真后结果就不准了。我实测过固定步长100微秒、仿真24小时安时积分法的SOC误差不到2%足够用了。3.3 能量管理储能怎么参与调节储能单元的控制策略我这里用了一个分层结构上层是能量管理系统根据光伏、风电预测出力和负荷需求计算储能出力的参考值下层是变流器的功率控制跟踪上层的功率参考值。上层的能量管理策略我用了两种模式第一种是平滑模式储能出力等于光伏和风电实际出力与出力滤波值之差。简单说就是光伏风电突然掉了多少储能就补多少让母线功率尽量平缓。第二种是调峰模式设定一个负荷曲线负荷高峰时储能放电负荷低谷时储能充电。这两种模式的切换条件要在能量管理层里预先设好别让下层的变流器自己去判断否则会出现模式反复切换的系统振荡。有人会把储能控制器做得过于复杂下垂控制、虚拟同步机、二次调频全上其实大多数场景下垂控制或者恒功率控制就够了。我在这个模型里储能变流器用的就是恒功率控制加一个下垂系数下垂系数取2%到5%就够太大容易造成SOC耗尽太小又会引起功率分配不均。4. 并网控制环节的关键细节4.1 锁相环并发谐波的源头锁相环是并网控制的核心。它的功能说白了就是实时跟踪电网电压的相位和频率给dq变换提供一个基准角度。并网点电压存在谐波畸变时PLL输出角度会波动进而影响dq变换的精度电流控制就会出现谐波最终并网电流波形就难看。我给PLL加了低通滤波和陷波器带宽大概设置在30Hz左右。这个带宽的选择是权衡带宽太窄PLL跟踪不上电网频率的快速变化动态响应差带宽太宽谐波就进来了。30Hz是个常见折中。另外PLL的坐标系要统一我就是因为光伏逆变器和储能逆变器有的用余弦形式的Park变换、有的用正弦形式导致并联运行时两个单元相互之间出现了明显的环流。这个低级错误花了两天才排查出来查到最后真的是怀疑人生。建模时建议全系统统一用同一种Park变换形式并加上测试信号校验。4.2 LCL滤波器参数设计谐振是最大隐患逆变器输出的LCL滤波器参数设计要特别小心。谐振频率通常取在10倍工频到开关频率的一半之间否则会在某个频率点上产生谐振放大效应。我一开始用的纯L参数太小并网电流波形有毛刺高次谐波超出并网标准后来换成LCL并加了阻尼电阻波形就干净了。阻尼电阻的阻值不能太大大了损耗高小了谐振抑制不够。我最后取的阻值是谐振频率处阻抗的1/3左右。设计思路是先根据电流纹波要求确定总电感量再按照储能电容吸收无功的比例确定电容大小最后算谐振频率。如果谐振频率落在低次谐波附近就要调整参数重新算。这里有个更容易忽略的点LCL滤波器的电容在并网瞬间会引起巨大的冲击电流因为电容两端电压从0突变到电网电压。我一开始直接并网电容充电电流把仿真步长直接卡死报错说数值不收敛。解决办法是在并网继电器闭合之前给电容预充电到电网电压幅值附近或者加一个软启动过程。4.3 并网与孤岛模式切换模式切换是最容易出问题的地方。从并网模式切到孤岛模式时如果控制器的积分项在当前状态已经饱和切过去以后输出会跳一大步。一定要做抗积分饱和处理切换时把积分值重置到当前输出对应的值。我一开始没做这个处理模式切换的瞬间电流冲击直接触发保护整个过程很可能绕了几十次才找对问题。另外不要用两套控制参数做模式切换而是让两种模式共用一个控制器框架靠切换参考值来实现模式变化。比如并网时参考值来自电网调度或能量管理孤岛时参考值来自本地电压频率控制但控制器的结构、PI参数都是一套这样切换冲击会小很多。实际上我更推荐用这个方法是因为调试工作量少一半而且模式切换的暂态过程更容易预测。孤岛检测这块我用的被动式检测监测并网点电压和频率超出阈值就认为孤岛发生。要注意的是阈值不能设得太小否则电网电压波动也会触发误动作。我设的是电压阈值±10%、频率阈值±0.5Hz这个范围既能检测孤岛又不会太敏感。5. 仿真运行中的典型坑与排查方法5.1 启动瞬间过流与缓启动策略我必须说启动过流这个坑几乎人人都得踩。第一版模型用变压器直接并网点启动瞬间冲击电流特别大波形图上就是一个巨大的尖峰然后才慢慢回到正常。后来查资料才知道变压器在合闸瞬间可能饱和励磁涌流可以达到额定电流的好几倍波形里有明显的二次谐波分量。解决办法是加缓启动过程先让变流器不触发等预充电完成再慢慢增大输出电压幅值和频率让相位和电网同步后再并网。具体实现是在控制器里加了一个斜坡启动模块参考值从0开始用0.5秒爬到目标值。这个斜坡时间不能太短太短冲击电流还是会很大也不能太长太长系统响应太慢。0.5秒是我试出来比较平衡的值。5.2 仿真步长的选择别让步长毁掉结果仿真步长的选择也踩过坑。PWM开关频率我设的是10kHz仿真步长如果取50微秒波形看起来还行但THD算出来明显偏小。后来把步长降到5微秒结果准确了很多代价是同一场景跑下来要一晚上。折中方案是用离散仿真选择合适的状态空间求解器再对步长做网格无关性验证。所谓网格无关性验证就是取两档步长先用10微秒跑一遍再用5微秒跑一遍对比关键结果比如THD、功率响应波形。如果差异在可接受范围内就说明结果对步长不敏感可以用大步长跑。如果差异大就要用更小步长。简单说取开关周期的1/20到1/10我实际用的是10微秒对比了5微秒的结果差别不大就坚持用10微秒了。5.3 数据存储爆炸问题很多人忽略数据存储的问题。仿真时间设了24小时步长10微秒所有信号都存的话内存直接爆掉。我第一次跑长时间仿真设置保存所有信号结果跑到一半电脑开始卡最后内存耗尽报错。从那以后我学乖了分场景跑。10秒内的暂态过程用细步长保存高频波形用来分析THD、开关暂态、模式切换的动态效果长时间的能量管理仿真用100毫秒步长只保存功率、SOC、电压有效值这类慢变量。两种仿真分开各取所需。这样做的另一个好处是模型可以简化暂态仿真用详细的电磁暂态模型长时间仿真可以用平均模型把开关器件平均化计算速度大幅提升。5.4 数值发散排查顺序发散问题排查的顺序很重要。我总结出一个固定排查流程先看PLL输出频率是否稳定再看dq轴电流是否发散再查PI参数是否过大。一般90%的发散都是PI参数不对。调试时我总是先把内环电流环整定好再去调外环不要内外环一起调不然根本定位不了问题。遇到数值不收敛还要检查是不是仿真步长太大导致开关事件落在两个步长之间系统不知道怎么处理。可以试着把步长减半如果问题解决就说明是步长问题如果步长减半问题还在就多半是模型本身的问题比如代数环没解掉、控制逻辑有死区。代数环这个问题在Simulink里很常见可以在反馈回路上加一个memory模块打破代数环或者在控制回路里加一个很小的延迟相当于一个周期延迟但会影响控制带宽所以要谨慎使用。6. 模型验收评价与后续扩展方向6.1 并网效果怎么评价并网模型最终要看的几个指标并网点电压THD、电流THD、功率因数、有功无功控制的响应时间。我实测下来LCL加阻尼之后电流THD能压到3%以下功率因数在0.98以上这个水平在仿真里算是合格的。要是电流THD超过5%基本就有问题优先查滤波器和PLL再查死区时间和开关频率。有功功率响应时间我定义为从参考值阶跃到实际输出达到目标值的90%实测在0.2秒左右这个指标主要受电流环带宽影响。无功控制也要单独验证。在并网点给一个无功功率阶跃看电压响应。正常情况下无功增加会让电压升高无功减少会让电压降低。如果电压变化方向不对说明无功控制的极性反了这也是一个容易犯的错。6.2 可以扩展的方向这套模型后续可以扩展的方向很多。加入虚拟同步机控制让储能逆变器模拟同步发电机的外特性对弱电网支撑更好这个方向现在很热。具体实现是把储能变流器当作一个虚拟同步机来建模输出有功功率和频率的下垂特性同时提供虚拟惯量。加上这个以后系统在孤岛模式下的频率稳定性会有明显改善。也可以接入实际的气象数据做多时间尺度的能量管理策略优化。我们现在的模型用的是理想的光照曲线和风速曲线但实际气象数据有随机性和相关性可以用一个历史数据集来驱动模型验证能量管理策略在真实天气条件下的效果。如果做硬件在环还可以把控制器部署到实时仿真平台上验证。这套模型在Matlab/Simulink里做好了以后转成C代码再部署到实时仿真器上是个顺理成章的路径。6.3 我的最终体会做仿真模型很多时候困难不在于某个算法看不懂而在于系统里各个模块的参数、初始值、控制带宽之间是相互牵连的。我把这套模型从头调到尾之后最大的感受是建模前把架构和参数之间的关系先想清楚比后面反复试错有效得多。这个模型前前后后花了我大约一个半月的时间纯调试时间占了大半。如果你们正在搭类似的风光储并网模型建议从一套相对简单的参数开始先把模型跑通再逐步加复杂度。我见过太多人一上来就搞虚拟同步机、多时间尺度优化结果基础模型还没跑通反而被一堆高级功能拖住进度。先把基本盘稳住后面加功能只是时间问题这个顺序才是对的。