ARTICLE DETAIL

资讯详情

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

交直流微电网风光储柴Simulink仿真建模与能量管理实战

交直流微电网风光储柴Simulink仿真建模与能量管理实战 搞交直流微电网仿真的人应该都有同感单做一个光伏并网或者储能变流器网上教程一把一把的真要把“风光储柴”这四种电源塞进一套系统里让它们在一个交直流混合母线下协同工作能找到的完整参考就少得多了。我去年接手一个园区级微电网的预研项目技术方案评审时要求必须给出交直流混合架构的仿真验证结果逼着我在Matlab/Simulink里从零开始搭了一套“光伏风电储能柴油发电机”的仿真模型。折腾了将近两个月把电力电子、电机控制、能量管理这些老本行又重新过了一遍。这篇文章就是把我踩过的坑、验证过的做法、以及一些不太好找的建模细节整理出来给正在做或者准备做交直流微电网仿真的朋友做个参考。1. 为什么风光储柴四个单元非要凑成一个交直流混合体1.1 从纯交流方案到交直流混合架构的演化逻辑最早做微电网方案绝大多数人脑子里只有一条交流母线光伏、储能都通过DC/AC变流器挂到交流侧负荷也全是交流负荷结构清爽控制也好做。但真到了工程落地你会发现这种纯交流架构有个挡不住的趋势——负载侧的直流设备越来越多。数据中心的服务器、5G基站、LED照明、电动汽车充电桩本质都是直流负载。电流从光伏板出来是直流经过DC/DC、DC/AC变成交流绕了一圈给直流负载用的时候又要整流回直流每一级变换按97%的效率算五级变换下来能量就白白损失了将近15%。这还不算变流器本身的成本和占地。交直流混合微电网的逻辑其实非常简单粗暴直流的东西尽量留在直流侧交流的东西留在交流侧两侧之间用一台双向AC/DC互联变换器简称IC做能量交换。光伏和储能天然是直流电源直接接直流母线柴油发电机和风电天然是交流源接交流母线直流负荷挂在直流侧交流负荷挂在交流侧。这样一来能量变换的级数少了系统效率提上去了某些直流负载甚至能省掉一次整流环节。这是工程层面推动交直流混合的最直接动力也是我选择这个架构做仿真的核心原因。1.2 四种分布式电源的“性格”差异与接口选型做仿真之前得先把这四种电源的脾气摸清楚因为它们的动态特性和接口方式完全不同直接影响你在Simulink里怎么搭模型光伏典型的直流电源出力随机波动受光照和温度影响。仿真时必须有MPPT最大功率点跟踪逻辑通过Boost电路升压后接入直流母线。光伏本身没有任何惯量是电力电子接口电源对系统稳定性影响最大。风电这里要分情况。如果是双馈风机DFIG转子通过变流器接入定子直接接交流母线如果是永磁直驱风机PMSG全功率通过背靠背变流器接入。微观上风机的出力波动频带比光伏更宽有高频湍流分量仿真的步长和滤波器设计要留意。储能本质是一个可以双向流动的直流源/负载。通过双向DC/DC变换器接直流母线核心控制目标是维持直流母线电压稳定或者在并网模式下响应上层功率调度。储能的响应速度比柴油发电机快一到两个数量级这是它在微电网里能“压住阵脚”的根本原因。柴油发电机旋转设备通过同步发电机直接接交流母线。有真实的转动惯量动态响应慢但能提供电网最需要的“刚度”——短路容量和惯性。离网模式下它往往是交流母线的电压和频率支撑源。每种电源的仿真模型精度要求完全不一样电力电子接口的电源光伏、储能、直驱风电需要关注开关频率、滤波器和控制环路的带宽旋转设备柴发需要关注机械惯量、调速器和励磁系统的动态。Simulink里面这两类模型用的模块库和求解器设置思路也不同后面详细展开。1.3 母线电压等级的选择如何影响仿真模型仿真模型的参数定多少直接取决于你选择的母线电压等级。工程上小型交直流微电网的直流母线一般选750V或者400V交流母线选380V/50Hz或者400V/50Hz。750V考虑的是光伏逆变器和储能变流器的电压应力、IGBT耐压以及直流侧电缆的损耗。这个选型在仿真里不是随便填的——它决定了IGBT模块的导通压降参数、直流母线电容的耐压值、隔离变压器的变比以及DC/DC变换器的占空比工作范围。我在仿真里用的是DC 750V、AC 380V/50Hz的组合这也是国内微电网示范项目最常见的电压等级搭配。750V直流配合380V交流有个好处互联变换器IC工作在整流或者逆变状态时调制比都在合理区间0.7-0.9不会出现过调制或者调制比过低导致的谐波畸变问题。如果你选DC 400V配AC 380VIC交流侧的调制比很容易顶到1.0以上仿真波形会明显出现削顶失真——这个细节搞仿真的新手经常忽略以为电压等级只是参数大小问题实际上它直接决定控制器的输出裕量。2. 光伏风电储能柴发四个单元的Simulink建模顺序与参数整定2.1 光伏单元从光照到MPPT再到Boost并网逆变器光伏阵列模型我直接用了Simscape Electrical里的PV Array模块这个模块本质上是基于单片光伏电池的五参数模型扩展出来的输入是光照强度和温度输出是I-V曲线。参数设置上我用了一块250W的多晶硅组件参数把组件串联数设为20、并联数为12这样阵列容量大概是60kW配合后面要设计的直流母线容量比较匹配。MPPT算法这里值得多说几句。Simulink里面写MPPT的方法非常多最简单的就是用MATLAB Function写一个扰动观察法PO。我的实现逻辑是采样当前光伏电压U_pv和电流I_pv计算功率P_pv然后和上一拍的值比较如果功率增大就保持扰动方向功率减小就反向。扰动步长我取的是1V采样周期0.01s。这里有个教训如果采样周期太短比如PID控制器那样取1e-4s反而会导致误判因为开关纹波会淹没MPPT需要捕捉的功率变化趋势。0.01s对MPPT来说刚刚好。Boost电路参数按照电流连续模式设计电感L2mH开关频率10kHz母线侧电容4700uF。控制回路是双环结构外环是MPPT输出电压给定内环是Boost电感电流环。电流环PI参数我按照典型I型系统整定比例系数0.5积分时间常数5ms实测动态响应和超调都不错。光伏单元的并网逆变器部分我是等直流母线模型跑通之后才对接进去的建议你也这样分步来不要一开始就搭全系统否则出了问题根本不知道从哪里查起。2.2 风电单元PMSG风力发电机组的等效模型处理风电这部分是仿真里最容易被拖慢速度的地方。完整的风力机模型包括空气动力学、传动链、变桨机构再加上发电机和全功率变流器如果全部用Simscape物理模型仿真速度会慢得让人抓狂。我当时做了一个权衡交流微电网层面重点研究的是功率平衡和电压频率动态不是风机内部的电磁暂态所以风电机组模型做了合理简化。具体做法是用风速信号驱动一个风功率特性计算模块输出机械功率到永磁同步电机PMSG的机械端口电机定子接入背靠背变流器。风功率特性的计算公式就是教科书上的那个P 0.5 * ρ * A * Cp(λ, β) * v³。我只考虑了定桨距工况把桨距角固定为0Cp取最大值0.48对应的叶尖速比。风速输入我用的是一个阶跃加上叠加随机扰动的信号模拟自然风的突变特性。风机的变流器控制分为机侧和网侧机侧用零d轴电流控制实现最大转矩电流比网侧控制直流母线电压并实现有功无功解耦。但如果你要真实的湍流风速特性建议接一个风速模型模块用Kaimal功率谱密度生成连续的风速时域序列。这个模块自带湍流强度参数默认的15%就够用。我第一次直接把风速设成恒定12m/s仿真结果平得像一条直线看不出功率协调效果所以这里还是建议风别太偷懒至少加一些随机波动才有研究价值。2.3 储能单元锂离子电池模型与双向DC/DC的SOC管理储能是整个微电网仿真的“心脏”它的模型精度决定了直流母线电压的动态特性。电池我用的是Simscape Electrical自带的Lithium-Ion Battery模块额定容量100Ah额定电压650V通过单体串并联组合而来初始SOC设成80%这个初始值有讲究——留了足够的充电和放电双向调节空间。电池的SOC计算模块内部已经实现了你只要在输出端接一个SOC显示模块就行。储能变换器是双向Buck/Boost结构。这里的关键是控制模式切换逻辑当直流母线电压高于浮充上限时转入Buck模式充电低于放电下限时进入Boost模式放电中间带一个滞环避免频繁切换。控制策略我采用的是直流母线电压下垂控制U_dc_ref U_dc_0 - k_droop * I_bat。下垂系数k_droop我取的是0.05V/A这样在储能输出最大正负100A时直流母线电压波动范围是±5V相对于750V母线电压来说波动在1%以内仿真波形很干净。SOC限制逻辑我在仿真里做进了Stateflow状态机SOC小于20%时强制切换为充电模式并限制放电功率为0SOC大于90%时限制充电功率。这个逻辑听起来简单但在Simulink里实现时要注意和电流环PI控制器的防积分饱和配合。我就是因为忽略了这个问题导致SOC到边界时PI控制器输出还在继续累积后面突然恢复调节时发生了明显的功率反冲。2.4 柴油发电机同步发电机、调速器与励磁系统的协同建模柴油发电机组在交直流微电网里的角色往往是“最后一道防线”——离网模式下当风光储都无法满足负荷时柴发顶上保证系统不停电。同步发电机直接用Simscape Electrical的Synchronous Machine模块我选的是凸极式模型额定功率200kVA、线电压400V、频率50Hz。原动机部分用了一个简化的柴油机调速器模型传递函数本质上是一个PID控制器加一阶惯性环节输入是频率偏差输出是机械转矩给定。调速器的PID参数整定是柴发建模最容易出问题的地方。比例系数过大会导致频率振荡过小会导致稳态频率偏差无法消除。我最后整定出来的一组参数是Kp40、Ki100、Kd0.5。这里有个经验Ki不能太小否则突加负荷时频率跌落会超过5%的限值Kd也不能太大因为柴油机的机械响应本身就慢微分项容易在中高频段引入噪声。励磁系统用的是IEEE DC1A模型Simulink里有现成的模块。它的作用是维持机端电压恒定实现交流母线无功平衡。调压器的增益我设成200时间常数0.02s励磁机时间常数按0.5s设置。柴发模型里还有一个细节机械启动延时。实际柴油机从收到启动信号到额定转速需要几秒钟这段延时在离网切换仿真里很关键。我在仿真里用了一个2.5s的延时模块模拟柴发的启动过程否则离网瞬间柴发立刻满发会跟实际严重不符。2.5 仿真参数初始值的确定与坐标基准这节是把上面几个单元的参数底座讲清楚。搭建交直流微电网仿真模型最容易被忽略、但最容易产生“灵异现象”的就是初始值问题。交流侧的电容、电感在仿真开始瞬间如果不设置合理的初始电压和初始电流Simulink会以零状态启动这会导致仿真刚开始的0.05s内出现剧烈的暂态过程甚至直接导致仿真不收敛。我的做法是所有交流侧的电容初始电压设为目标稳态值的1.0倍电感初始电流设为0柴油发电机同步电机的转子初始位置角设成和电网参考相位一致避免并网瞬间的相位差导致冲击电流。直流母线电容同样设置了750V的初始电压。这样设置之后仿真从0秒开始就基本处于稳态附近省去了非常长的预热时间。变压器模块的磁通初始值直接选择“自动计算”选项。如果仿真中出现了刚开始几百微秒的巨大尖峰先别急着改控制器优先排查这些初始值设置。3. 交直流母线互联与能量管理从“能跑”到“会跑”的关键一跃3.1 互联变换器IC两个母线之间的双向能量通道交直流混合微电网跟传统纯交流微电网最大的不同就是多了一台连接直流母线和交流母线的双向AC/DC变换器——IC。它是整个系统能量路由的枢纽也是控制设计难度最高的部分。IC在Simulink里我用了一个三相两电平电压源型变换器VSC来实现IGBT开关频率10kHz交流侧经滤波电抗器和升压变压器接入380V交流母线直流侧直接连接750V直流母线。IC的控制策略取决于微电网的运行模式。并网模式下交流侧电压和频率由大电网支撑IC的交流侧控制目标是维持直流母线电压恒定也就是DC/AC整流或逆变来平衡两侧功率我采用的是电压外环加电流内环的双闭环控制。内环电流环的带宽设成1kHz左右外环直流电压环的带宽设成100Hz左右这种带宽配置是为了保证两个控制环有足够的相位裕量避免内外环交互振荡。离网模式下情况就完全不同了。如果此时柴油发电机在运行交流母线的电压频率由柴发支撑IC自动切换到功率控制模式按照上层EMS下发的功率指令从交流侧吸收或者向交流侧释放指定有功功率。如果整个微电网处于全电力电子供电状态柴发未启动IC还必须承担交流母线电压和频率的构建任务此时用的是V/f控制。同一台IC两套控制策略之间需要设置平滑的切换逻辑我在仿真里用的是Stateflow状态机切换时通过一个渐变斜坡将有功功率指令过渡到目标值避免直接跳变引起电压电流冲击。3.2 能量管理策略的层级设计与Simulink实现能量管理是交直流微电网仿真模型的“大脑”。我采用的是常见的三层架构第一层是就地控制层就是前面讲的各变换器的电压电流环路第二层是微电网中央控制器MGCC负责根据运行模式、SOC状态、负荷大小分配各单元的功率指令第三层是配电网调度层只在并网模式下起作用。在Simulink里面第二层的MGCC我用MATLAB Function来实现输入有直流母线电压、交流母线频率、储能SOC、光伏和风电的当前出力、负荷功率输出是各单元的有功无功给定值。MGCC的核心逻辑是按优先级排序的功率分配策略。我设定的优先级是光伏和风电优先出力清洁能源最大化利用、储能响应功率差额快速平衡、柴油发电机兜底最慢投入使用。具体实现用的是查表加条件判断的形式先计算总负荷和风光出力的差值如果差值为负说明清洁能源有富余此时储能尝试吸收多余功率若SOC超过90%则限制充电功率剩余功率回馈电网并网模式或者降低光伏出力离网模式如果差值为正储能先放电放电功率不够时再启动柴发。这套逻辑在MATLAB Function里用switch-case语句实现了一个状态机仿真频率设置为100Hz。这里要特别注意MGCC的采样频率要远低于电流环和电压环否则会造成控制信号的“毛刺”和高频干扰。我调试时发现当MGCC的采样频率与电流环的采样频率接近时模型的仿真速度会急剧下降而且容易出现控制量抖振。3.3 直流母线电压与交流母线频率的双域协调交直流微电网有一个非常直观的物理特性直流母线的电压直接反映直流侧功率平衡状态交流母线的频率直接反映交流侧有功平衡状态。直流母线电压上升说明直流侧发电大于用电需要把多余的功率送往交流侧交流母线频率下降说明交流侧有功短缺需要从直流侧补功率进来。明白了这个规律你读仿真曲线就非常轻松了。实际仿真中我经常通过观察两个关键波形来快速判断系统的能量管理是否正确运行一是直流母线电压波形二是交流母线频率波形。如果某个工况切换瞬间直流母线电压下跌超过10%说明储能响应速度赶不上功率突变需要增大下垂系数或者提高储能电流环带宽。如果交流母线频率下降超过0.5Hz说明柴发调速器的响应不够快需要重新整定调速器PID参数。这套“波形—物理机理—参数调整”的分析方法比盲目调参有效得多。3.4 并网转离网与离网转并网的平滑切换仿真微电网仿真里最刺激的工况之一就是并网转离网。在Simulink里我通过一个断路器模块模拟大电网侧开关的开断。关键是时序控制在断开断路器之前IC必须已经从并网控制模式切换到离网控制模式否则交流母线会瞬间失去电压支撑。理想的做法是采用“预同步”控制即在并网运行时IC持续跟踪大电网电压的幅值、频率和相位当检测到大电网故障我设置的是0.5s时刻电压跌落30%时IC立即从PQ模式下发给交流母线一个由内部V/f控制产生的电压参考实现无缝切换。实际上无缝切换很难一次性做到完美我做了十几组实验最平滑的切换过程交流母线电压波动控制在额定值的10%以内、频率波动控制在0.2Hz以内。具体做法是在切换之前先把IC的有功功率指令斜坡递减到0等到开关动作时功率为零切换就没有冲击了。这个“先卸功率、再断开关”的思路在工程上也完全可行。切换完成后离网模式下柴发继续带载或者储能继续支撑根据不同场景灵活切换主电源控制模式。4. 跑仿真必踩的坑代数环、初值与求解器设置4.1 代数环Simulink里最容易出现的“死循环”我刚开始搭微电网仿真模型时被代数环坑了好几天。现象是仿真运行时报错“Algebraic loop detected”或者“Simulink cannot solve the algebraic loop”。原因是在你的模型里某个信号的输出直接或者间接地依赖同一时刻的自身输入形成了一个没有时间延迟的闭合环路。在微电网模型里代数环最常出现的三个位置一是功率计算信号直接反馈到控制器的给定端比如你从逆变器输出端测出电流计算瞬时功率然后把这个功率值直接作为功率外环的反馈同时功率外环的输出又是电流内环的给定这个环路中间完全没有延迟单元就形成了代数环二是下垂控制中直流母线电压测量值直接经过下垂系数计算输出功率而这个功率又反过来决定电流路径中没有滤波器延迟三是IC的功率外环和电流内环之间缺少滤波环节。解决方法很简单在环路中插入一个Unit Delay单位延迟模块或者用一阶低通滤波器Transfer Fcn模拟测量环节的延迟。我后来统一在功率反馈路径上加了一个截止频率为500Hz的低通滤波器既解决了代数环又顺便滤掉了开关纹波一举两得。如果你不想加滤波器Simulink里的Memory模块也能隔断代数环但Memory模块会引入额外的延迟特性对控制性能有影响建议优先使用Unit Delay或者低通滤波器。4.2 仿真初期不收敛初值问题和求解器选择的联合排查模型搭完点击运行结果对话框直接弹出一堆红色报错这种情况90%都是初值或者求解器设置问题。交直流微电网模型是典型的刚性系统电力电子开关操作微秒级时间常数和储能电池、柴油机等大惯性环节秒级时间常数同时存在时间尺度跨越了6个数量级。如果用默认的ode45变步长四阶Runge-Kutta要么仿真速度慢到无法接受要么直接报精度错误。我的建议是求解器固定用ode23tbstiff/TR-BDF2这个算法对含有电力电子开关的刚性系统非常友好仿真速度和精度平衡得比较好。最大步长设为1e-4秒最小步长1e-7秒相对误差1e-4。如果你的系统里有PWM载波频率10kHz那么最大仿真步长必须小于载波周期的1/10也就是1e-5秒否则PWM边沿会严重失真。这里有个权衡最大步长太小仿真速度就慢太大PWM波形就失真我的经验值是取载波周期的1/20。初值问题前面已经详细说过这里再强调一个容易忽视的点电池模块的初始SOC和初始开路电压必须匹配。如果你设置了80%SOC但初始电压填的是满充电压仿真前几个毫秒电池就会输出一个巨大的反向电流去“修正”这个错误直接导致系统发散。Simscape的电池模块通常有Set Initial State的选项建议直接用Set Target SOC自动计算初始电压。4.3 仿真速度太慢平均模型的妙用用完整开关模型仿真一个包含4个电源、6台变流器、工作在10kHz开关频率的微电网系统仿真10秒的工况我的台式机差不多要跑1-2个小时。如果只是验证能量管理策略、观察母线电压趋势这个效率实在低得离谱。这种情况下可以考虑把电力电子变换器换成“平均模型”。平均模型的基本思想是用一个受控电压源加受控电流源来等效代替开关变换器忽略开关纹波只保留电压电流的基波分量关系。在Simulink里实现很简单把IGBT桥臂替换成受控电压源输入是调制波信号把直流侧替换成受控电流源输入是交流侧功率除以直流母线电压。我自己的做法是搭了两套模型一套是开关模型用于验证控制策略的细致动态和PWM实现另一套是平均模型用于跑长时间的并离网切换、SOC变化、能量管理策略验证。平均模型跑同样的工况只需要2分钟速度提升近30倍。这套“双模型”工作流是工程上非常推荐的做法。先用平均模型把系统和控制策略调通再切回开关模型做精细验证。如果在开关模型里出现平均模型里没见到的波形异常那大概率是PWM调制或者电流纹波相关的问题排查范围就小了很多。4.4 波形查看和数据导出的一些小技巧仿真跑完了剩下就是看波形、分析结果。Simulink的Scope模块虽然方便但功能太弱我一般用To Workspace模块把关键信号导出到MATLAB工作区再用MATLAB脚本统一绘图。导出的数据格式推荐用Structure with Time这样在MATLAB里直接就能用plot命令画图。还一个技巧是信号标定在信号线上右键选择“Signal Properties”给关键信号起好名字然后通过“Signal Logging”统一记录。这样即使你的模型改了几十遍关键信号的名称也不会乱分析和处理脚本可以复用。我的习惯是把直流母线电压、交流母线电压、交流母线频率、储能SOC、光伏功率、风电功率、柴发功率、IC传输功率这8个信号全部标记每次仿真结束后跑一遍自己的分析脚本所有关键指标和波形一次性出图效率大大提升。另外建议在模型里加一个“扰动信号模块”可以是一组Step、Ramp或者Random Number的组合用来模拟光照突变、风速渐变、负荷投切等扰动。调试能量管理策略时把这些扰动信号组合成一个完整的工况序列从0秒开始依次触发一次仿真就能把系统在多种工况下的响应全部录下来。我在实际项目中就是靠这个“一次仿真、多工况覆盖”的方法把原本需要几十次仿真才能完成的调试工作压缩到了个位数。模型从能跑到跑对中间隔着一大堆细节。这些细节单独拎出来好像都不起眼但它们叠加在一起恰恰决定了仿真结果是否能反映真实系统的行为。我自己最大的体会是微电网仿真不是搭积木把四个电源拼在一起通上电就行真正的功夫在接口参数、控制协调和边界条件的处理上。希望这篇梳理能帮你少走点弯路。
返回列表