ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

微电网仿真实战:柴油机+光伏+储能的Simulink建模与并离网切换

微电网仿真实战:柴油机+光伏+储能的Simulink建模与并离网切换 做微电网仿真这行当绕不开一个场景孤岛运行时谁来撑住电压和频率。很多人一上来就搭光伏、配储能但真正在工程里兜底的往往是那台不起眼的柴油发电机。去年我做了一个带柴油发电机、光伏和储能的微电网Matlab Simulink仿真项目前后折腾了快两个月把从建模到并离网切换的坑基本都踩了一遍。这篇就聊聊整个搭建过程以及那些文档上看不到的细节希望能帮到正在用Matlab/Simulink做电力仿真的朋友。这个项目解决的问题很实际一个偏远独立供电系统白天光伏出力高、晚上只有柴油机撑着还要应付大负荷突投突切。直接拿实物试成本高、风险大所以先建一套完整的Simulink仿真平台把柴油发电机组、光伏阵列、储能电池和负荷管理全塞进去跑通各种工况。无论你是写毕业论文、做课题预研还是在工程现场想验证控制策略这套思路都能直接套用。1. 项目整体设计与仿真方案选型1.1 仿真对象一个典型的“柴油机光伏储能”微电网我搭的仿真系统拓扑很经典母线电压取400V频率50Hz容量按一个独立台区级别设计。柴油发电机是主电源额定功率180kW。光伏阵列接了100kW因为当地日照条件不错白天主要靠它带负荷。储能系统配了200kWh的磷酸铁锂电池通过双向DC-DC和双向逆变器挂到交流母线上主要做削峰填谷和模式切换时的缓冲。负荷侧分两块一块是固定基础负荷大概80kW另一块是可变负荷用来模拟生产设备启停、照明分区投切这些。为什么这么配因为微电网仿真的核心矛盾是电源的响应速度差异。柴油机有机械惯性调速器响应要几百毫秒到一秒光伏是电力电子器件毫秒级就能出变化但随机性大储能介于两者之间既能吸能也能放能但容量有限。把这三类特性完全不同的电源放在一个母线上仿真的难点就不是“各自怎么工作”而是“它们协同工作时母线电压和频率怎么保持稳定”。所以在设计阶段我就定了一个原则仿真平台必须支持两种典型工况一是并网运行外面有大电网撑着电源们按指令出力二是孤岛运行柴油机做V/f主站光伏和储能做P/Q从站。这两种工况的控制目标完全不同切换逻辑也是后面最容易出bug的地方。1.2 选型逻辑为什么Simulink是干这活的最优解很多人会问这种系统能不能用PSCAD、DIgSILENT或者纯Python写答案是都能但我最后还是选了Simulink原因有几个很实际。首先是电气模型底子厚。Simulink里的Simscape Electrical Specialized Power Systems库老版本叫SimPowerSystems直接提供了同步电机、电力电子变换器、光伏阵列、电池等大量现成模型。柴油发电机的核心——同步发电机不需要自己推派克方程选好参数直接拖出来用省了非常多时间。其次是控制逻辑好搭。微电网仿真里最花时间的其实是控制部分比如调速器的PID、储能的恒压恒频控制、模式切换的状态机。Simulink里既可以用连续模块搭也可以用Stateflow做逻辑跳转调试时还能随时停在哪一拍看中间量这对排查问题来说太重要了。第三是数据后处理顺手。仿真完的波形直接在Scope里看也可以导出到工作区用脚本画图、算THD总谐波畸变率。我习惯用脚本跑批量工况比如负荷从50%突增到110%光伏从100kW骤降到20kW这些场景写个循环自动跑输出指标汇总表比在图形界面里手动点效率高得多。当然Simulink也有烦人的地方最典型的就是仿真速度和收敛性。模型一大、开关一多仿真步长一掉到微秒级跑一个10秒的工况可能要吃一顿饭。这个后面专门讲。但综合来看对一个以控制策略验证为主、需要反复调参的项目Simulink仍然是最顺手的工具。2. 柴油发电机组的模型搭建与参数整定2.1 柴油机原动机模型调速器是关键柴油发电机在微电网里的角色说白了就一句话在孤岛模式下当“定海神针”母线电压和频率全靠它稳住。这就要从两个层面建模第一层是原动机柴油机本体第二层是同步发电机。柴油机本体的Simulink模型不用搞得太复杂。我见过有些人非要建多缸燃烧模型、曲轴扭矩脉动模型说实话在微电网这个尺度下纯属给自己找麻烦。我们关心的是轴上输出机械功率怎么随转速和油门变化所以用一个带惯性的转速闭环就够了。标准做法是参考转速50Hz对应1500rpm如果是4极电机减去实际转速误差进调速器调速器输出油门开度油门开度决定机械扭矩扭矩作用在惯性环节上产生转速变化。调速器模型我用的Simulink里现成的PID Controller再加一阶惯性限幅核心参数是比例系数和积分时间常数。这里有个参数整定的经验柴油机调速器的比例系数不能调太大。我一开始图省事直接把Kp放到8结果转速响应是快了但系统出现了持续振荡母线频率在49.8Hz到50.2Hz之间来回抖怎么都稳不下来。后来把Kp降到2.5Ki设成1.2微分项干脆不用振荡才消掉。道理也简单柴油机本身的机械惯性大执行机构油门也有响应延迟你把比例放大相当于让一个腿脚不利索的人跑得特别快必然摔倒。2.2 同步发电机与励磁系统电网电压的“定海神针”同步发电机这一块Simscape库里提供了好几档模型。最精确的是全阶模型能看到定子三相磁链、转子阻尼绕组的详细响应但仿真速度慢。我做能量管理层面的研究用的是“Simplified Synchronous Machine”模型它把电气部分等效成一个受控电压源加内部阻抗参数少仿真快电压调节特性足够真实。关键是励磁系统必须配上。同步机的输出电压不是自动稳定的负载一加重电枢反应会把电压往下拉。励磁系统的作用就是感知端电压偏差调节励磁电流把电压顶回去。我在模型里用了一个带电压闭环的简化励磁器参考电压设为400V输出电压经过一阶惯性反馈PI控制器计算励磁电压。这里容易踩的坑是初始电压对不齐。同步电机模型初始化时如果端电压和母线其他部分的电压相位、幅值不一致仿真一开始就会“哐”一下来个巨大的电流冲击甚至直接报错。解决办法是在Simulink的Powergui模块里做load flow初始化或者在Configuration Parameters里把“Start simulation from steady state”选项勾上。这个我后面在调试章节还会展开。2.3 关键参数计算从铭牌到仿真模型很多人拿到一台真实的柴油发电机组铭牌不知道如何转成模型参数。我总结了一套最简单可行的路线。先看额定参数额定功率180kW线电压400V频率50Hz功率因数0.8滞后。同步电机模型里要填额定视在功率所以要用P除以功率因数得到225kVA。极对数按1500rpm算是2对极。再算电机内部阻抗参数直轴同步电抗Xd、交轴同步电抗Xq、直轴暂态电抗Xd、直轴次暂态电抗Xd。这些参数如果在铭牌上找不到最简单的做法是参考同容量等级柴油发电机的典型值Xd一般在1.5~2.0puXd在0.2~0.3puXd在0.12~0.18pu。我用的是Xd1.8Xd0.25Xd0.15效果很好。时间常数方面Tdo直轴开路暂态时间常数取2.5秒Tdo取0.03秒这些值决定了短路电流衰减速度对故障仿真比较重要。发电机原动力的转动惯量是决定频率动态响应的核心参数。这个最好按实际查表查不到的情况下可以估算。我用的经验公式是惯性时间常数H2秒左右换算到Simulink模型里就是转动惯量J单位是kg·m²公式是J2H·S_base/ω_base²。算下来大约6.5kg·m²。这个参数如果给太小负荷一突变频率就像跳水一样掉下去给太大频率响应慢吞吞调频策略验证就没意义。3. 光伏与储能子系统的接入细节3.1 光伏阵列与MPPT控制光伏阵列模型我直接用Simulink自带的PV Array模块它基于单二极管五参数模型只需要填组串配置和组件参数。我选了某款常见250W组件开路电压37.5V短路电流8.85A最大功率点电压30.2V最大功率点电流8.28A。串并联方式是16串、25并算下来直流侧额定电压约483V额定功率100kW正好接一个Boost电路升压后再逆变。MPPT控制用的最经典的扰动观察法PO。实现起来不复杂每隔一个固定周期给占空比加一个小扰动比较扰动前后功率大小功率变大就继续同方向功率变小就反向。这里有一个仿真参数需要注意——扰动周期。我是用离散控制做的采样周期设成0.01秒扰动步长0.005。如果采样周期太短系统还没响应完就又扰动一次直流电压会上下乱窜太长则跟踪速度慢光照突变时光伏反应不过来。光照突变这个场景特别值得测。我故意在仿真第5秒时把光照从1000W/m²瞬间降到400W/m²PV阵列输出功率直接从100kW跌到接近40kW。这时候如果柴油机没有足够的备用容量顶上母线频率就会往下掉。MPPT本身只管让光伏工作在最大功率点它不会考虑系统频率所以后面必须靠储能或者柴油机去补功率缺口。3.2 储能PCS的双向控制储能系统是整个微电网里的“万能胶”充电、放电、调频、调压都能干但前提是PCS储能变流器控制策略得写对。储能电池模型我用了Simulink的Battery模块选锂离子类型额定电压480V额定容量200Ah。注意电池模型需要设置初始SOC荷电状态我设为80%这样放电能撑久一点充电也不会很快顶到100%触发保护。电池接双向DC-DC变换器再经过三相逆变器并网。双向DC-DC的控制分两套Buck模式充电和Boost模式放电用PI控制器管电流电流参考值由上层能量管理模块下发给。这个电流方向控制必须跟SOC配合好——我踩过的一个坑就是SOC已经低于20%储能还在傻乎乎地放电结果母线电压崩了。后来我在控制回路里加了SOC限值逻辑低于20%禁止放高于90%禁止充。三相逆变器这一层控制策略取决于系统在什么模式下运行。并网模式下用PQ控制给定有功无功参考值孤岛模式下如果储能作为主站就要切到V/f控制目的是把母线电压和频率拉回额定值。在Simulink里做这种模式切换我推荐用Stateflow写个简单的模式状态机别用一堆Switch模块堆否则逻辑混乱起来你根本查不清。4. 多能源协调控制策略的实现4.1 主从控制柴油机定频定压我仿真里设定的孤岛运行主策略是主从控制。柴油发电机组作为主电源承担V/f控制也就是把母线电压稳定在400V、频率稳定在50Hz。其它电源——光伏和储能——作为从电源根据调度指令输出指定的有功和无功。这种策略的好处是控制逻辑清晰系统稳定性好非常适合中小容量微电网。主从控制的关键在于柴油机的备用容量。我设定柴油机额定180kW正常工作时带基础负荷加一部分可变负荷大概在120kW左右留了60kW左右的裕量。这60kW就是为了应对光伏出力突然下降或负荷突增的。仿真时我专门跑了一个场景光伏100kW满发时柴油机只出30kW下一秒光伏降到40kW柴油机调速器检测到频率下跌在1秒内把出力拉到了90kW。那个过渡过程很能说明问题——母线频率最低掉到了49.2Hz持续了大约0.5秒但最终稳定在49.8Hz以上线路没跳闸。这说明调速器参数和备用容量的匹配是合理的。4.2 下垂控制多机并联不掉链子如果整个微电网里有两台及以上的柴油发电机并联或者想让储能也参与频率调节就不能再用单一主从控制得上下垂控制。下垂控制的基本思想非常朴素——模仿同步发电机的静态调频特性系统频率下降说明有功功率缺额各台机组按比例自动多出力系统电压下降说明无功缺额各台机组按比例多出无功。用公式写就是f f0 - m×(P - P0)U U0 - n×(Q - Q0)。下垂系数的设计有明确方法我给出一个实际算例。设两套柴油发电机组每组额定有功100kW。假设允许系统频率在空载到满载之间变化0.5Hz那么有功下垂系数m Δf/P_max 0.5Hz/100kW 0.005Hz/kW。同理如果允许电压变化5%20V无功下垂系数n 20V/50kvar 0.4V/kvar。这两个系数直接填到控制模块的下垂特性里。在Simulink里实现下垂控制时我建议先把需要的有功P和无功Q算出来用瞬时功率经过低通滤波器得到平均值再叠加到电压和频率参考值上。低通滤波器的截止频率一般取10~20Hz既滤掉了纹波又保留了功率调节的动态信息。下垂直观地理解就是多台机组之间通过频率自然分配负荷负荷重的机组频率低一点负荷轻的机组频率高一点最终稳定在一个公共频率上谁也不抢功。4.3 并离网切换与负荷投切逻辑微电网最危险的过渡过程就是并网转孤岛因为大电网突然断开母线有功功率出现巨大缺额如果不快速切除负荷或让储能顶上整个系统就崩溃了。仿真里我做了一个简化的大电网模型一个三相理想电压源串联线路阻抗通过一个断路器Three-Phase Breaker接到微电网母线。并网状态时断路器闭合微电网母线电压被电网钳住柴油机和储能都按PQ控制出力。断网时刻我把断路器设置成在t8秒断开。这里控制策略的切换必须提前考虑。我的做法是用Stateflow做状态机检测到断路器状态变位后立即给柴油机发切换指令从PQ控制切到V/f控制。理论上需要同时让储能也从PQ切到V/f或者保持PQ并继续支撑功率。但我在实际仿真中发现如果柴油机切V/f的时间稍微滞后比如100毫秒以上母线电压就会有个明显的凹陷负荷重的区域可能触发欠压保护。解决办法是让储能永远保持电压源模式V/f而柴油机用电压-频率下垂跟它并联这样电网断开时不需要任何通讯和切换时间储能一瞬间就接管了电压。这个方案我用一个场景验证过并网运行光伏100kW、负荷150kW功率差额由电网补。t8秒电网断开储能瞬时由充电转为放电把母线电压拉回398V以上频率最低49.5Hz后恢复到49.9Hz整个过程不到1秒钟比切换法平滑得多。负荷投切逻辑也值得单独说。我设计了四级非重要负荷当系统频率低于49.5Hz时按轮次切除高于50.2Hz时按轮次恢复。频率测量用的是PLL锁相环加低通滤波测量延迟大概30ms对于秒级的负荷投切控制完全够用。这套低频减载逻辑用代码写也行但用Stateflow画状态图更直观调试的时候还能一步步看状态跳转条件有没有满足。5. 调试中的常见问题与排查实录5.1 仿真一步都跑不起来不收敛怎么破Simulink电力电子仿真最气人的不是结果不对而是第一步就报“Simulation stopped because the model is not converging”或者“Derivative of state is infinite”。这类问题我总结下来按出现频率排序有四个原因。第一代数环。控制电路里如果输出直接反馈到输入没有经过任何延迟Simulink解算时会形成代数环。解决办法很简单在反馈路径上加一个Memory模块或者用离散采样器把连续信号离散化。我系统的逆变器电流环一开始就出现过代数环警告加了Memory后立刻消失。第二微分时间步长太大。我跑低压微电网时电力电子开关频率是10kHz如果用变步长求解器还给一个特别松的误差容限仿真会在PWM开关时刻反复试步。我的经验是把误差容限设成1e-4最大步长限制在20微秒虽然慢一点但基本能收敛。第三理想开关模型导致的高频振荡。Simulink里的理想开关在切换瞬间di/dt模型很夸张容易引发数值振荡。建议把IGBT和二极管换成带内阻的详细模型或者给开关并一个很小的RC缓冲电路比如1微法电容加10欧姆电阻代价是仿真速度慢一点点但稳定性提升明显。第四初始条件不一致。同步电机模型初始化不对开机瞬间直接飞车。解决方法是先用Powergui里的“Load Flow”工具设置好初始电压和功率流向再跑仿真。这个操作对于含多台电机的模型几乎是必须的。5.2 波形畸变与振荡参数整定经验仿真能跑起来只是第一步波形好不好看才是真正考验功夫的地方。我调试过程中印象最深的是两个问题。第一个是直流母线电压振荡。光伏Boost输出的直流母线设定是800V但仿真刚开始的几秒内直流电压在760V到840V之间来回冲后续慢慢衰减到正常。原因是Boost启动时MPPT初始占空比太激进直接把功率从零拉到最大。后来我在MPPT输出端加了一个速率限制器让功率参考值按每秒50kW的速率爬升启动电流峰值就变得非常平缓了。第二个是逆变器输出电流THD超标。我用FFT分析工具看电流谐波发现5次和7次谐波明显偏高。根源是LCL滤波器的谐振峰没有被阻尼。我最开始只用了纯电感和电容没有装阻尼电阻结果在谐振频率附近放大作用明显。加了一个串在电容支路的2欧姆阻尼电阻后THD从8%降到了3%以内。当然你会说阻尼电阻增加损耗在仿真里我们主要看动态特性这个损耗可以接受如果做效率分析再换有源阻尼。5.3 模型跑得慢、还想做快速迭代优化方向仿真精度和仿真速度是一对永远的矛盾。我的经验是在做不同目标的研究时采用分档建模的策略。如果搞策略验证比如能量管理、模式切换、负荷减载把详细的同步电机模型降级为带功频特性的受控电压源模型把光伏逆变器的开关细节去掉用平均值模型替代。这样仿真速度能提升一个数量级跑一个30秒的工况只需要几十秒。如果搞谐波分析、故障电流计算那就必须保留详细开关模型和完整电机模型哪怕一个1秒的故障过程要跑20分钟也认了。如果还想进一步加速可以考虑把整个模型离散化设置一个固定的仿真步长比如50微秒并且把PWM载波频率同步成步长的整数倍。这样虽然变步长求解器的自适应能力没了但仿真稳定、可预测还能配合Simulink Coder生成C代码。这是我个人比较推荐的一个方向——模型不只是用来出波形后面要部署到硬件在环HIL平台或者做成半实物仿真的时候离散化和代码生成能力是硬门槛。说到代码生成还有一个实用场景把整定好的控制算法比如储能PCS的电流环、MPPT算法转成C代码烧到DSP或者FPGA里。Simulink Coder和Embedded Coder都支持。我自己试过把一条控制链路的离散模型生成嵌入式代码只要在配置里选好目标硬件和求解器类型必须用离散生成的代码是可读的配合手写的外设驱动就能跑起来。但要注意不是所有Simulink模块都支持代码生成特别是一些画图框、数据示波相关模块要及时移除。调试中的另外一个实用小工具是External Mode外部模式。如果你的Target支持它可以在PC上实时调整模型参数然后把数据通过串口或以太网传回来。我在调硬件在环平台时用过一次在线调PID参数比改代码烧录方便太多。虽然这个功能多用于嵌入式硬件但提前建模时就保留好接口会让后续工作省很多事。最后再分享一个我在实际调试过程中的体会做微电网仿真状态太多、环节太多不要指望一次搭完就能一次跑通。我的习惯是先把每个子系统单独跑瞬态确认各电源独立工作正常后再串起来做协调运行。这就像拼积木一块没拼牢后续查问题的时间会成倍增加。建议你也把模型版本管理起来每个阶段跑通的版本存快照调坏了能回退。仿真这件事最怕的不是模型复杂而是你连问题是从哪一圈开始出的都说不清。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表