ARTICLE DETAIL

资讯详情

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

风光储联合发电Simulink仿真:直流母线稳压与逆变器双闭环控制实战

风光储联合发电Simulink仿真:直流母线稳压与逆变器双闭环控制实战 做风光储联合发电仿真这件事说难也难说简单也简单。Simulink里搭个光伏、风机、电池、逆变器模型半天就能把主电路画完但真正让整个微网稳下来——尤其是那个直流母线电压——才是卡住大多数人的地方。这个项目标题里“直流电压…”这半句话特别真实很多人就是把模型搭好了一跑起来母线电压乱飘或者逆变器输出波形不对然后就不知道从哪下手了。这篇文章就是把我自己调通这套系统的完整过程、控制逻辑、参数计算和踩过的坑都整理出来适合正在做新能源微网仿真、毕业设计或者工程项目预研的同学照着这个思路走能少走很多弯路。1. 系统整体架构与控制思路拆解1.1 为什么风光储要共用一条直流母线微电网的拓扑其实有好几种交流母线、直流母线、交直流混合母线都有。但风光储联合系统里直流母线结构用得最普遍原因很直接光伏天然输出直流风机出来可以整流成直流储能电池本身就是直流这三样东西如果各自去接交流母线那每个单元都得配一台逆变器去并网成本高、控制复杂、同步也麻烦。共用直流母线就简单多了——光伏和风机各带一个DC-DC变换器风机那边可能是“整流DC-DC”两级储能电池接一个双向DC-DC三路直流全部汇到同一条母线上然后由一台三相逆变器统一把直流转成交流给本地负荷供电。这条母线的电压就是全系统的“公共锚点”所有能量都从这里流过所以母线电压稳不稳直接决定整个微网能不能正常运行。打个比方直流母线就像一个公共蓄水池光伏和风机是往里注水的水龙头负荷是往外放水的水龙头而储能电池就是既能放水又能抽水的“缓冲池”。系统要稳定水的液面——也就是母线电压——就必须保持在合理范围内不能因为注水多了就冒出来也不能因为放水多了就见底。这个“蓄水池”的液面控制就是整套系统控制策略的核心。1.2 各单元的控制任务划分微网里每个单元都要有明确的“职责分工”否则全都在瞎出力系统肯定乱套。我把这套系统的控制任务拆成四块光伏单元只负责最大功率跟踪。晴天、阴天、温度变化光照强度一直在变光伏板的工作点要始终追踪在最大功率点上尽量多出力。这个任务由Boost电路配合MPPT算法完成光伏侧一般不做母线电压控制。风电单元同样只做最大功率跟踪。但风机涉及转速控制风大风小、桨距角变不变、整流侧怎么调最终目标都是让风机运行在最优叶尖速比附近多捕获风能。储能单元这是整个系统里最关键的“维稳角色”。光伏和风机都在抢着发出波动的功率负荷也在随时变化谁来兜底就是储能。双向DC-DC通过控制电池的充放电电流把母线电压牢牢钉在设定值上。母线电压高了就多充电电压低了就多放电。逆变器单元负责给本地负荷提供稳定的交流电压和频率。离网模式下逆变器做的是V/F控制或者叫电压外环电流内环的双闭环控制输出三相380V/50Hz的交流电让负荷感受到的是一台“理想电压源”。这四个单元各司其职整条控制链就清晰了光伏和风机是“发电方”储能是“稳压方”逆变器是“供电方”。我在模型里把每个单元单独封装成子系统控制逻辑通过母线电压、功率这些全局信号串起来调试的时候也可以一个单元一个单元单独验证不会一跑起来哪儿出问题了都不知道。2. 核心模块建模与关键参数设置2.1 光伏阵列与Boost MPPT光伏阵列的建模Simulink里有现成的PV Array模块Simscape Electrical里面叫Solar Cell / PV Array可以直接设定串并联数目、组件参数。我习惯用厂商给的STC参数——开路电压、短路电流、最大功率点电压电流——把这些填进去阵列的最大功率点就出来了。我做的一个典型设计是单个组件Voc约45VIsc约8A最大功率点电压Vmpp约36V电流Impp约7.5A一个组件大概270W。阵列采用“20个串联、2个并联”的组合总功率约10.8kWMPPT点电压大约720V。为什么电压做这么高因为后面要接800V母线Boost变换器的升压比不能太大升压比一般控制在1.5~2.5倍比较合理效率高、器件应力也小。MPPT算法我用的是最经典的扰动观察法思路很简单给工作点加一个小扰动比较扰动前后的输出功率如果功率变大了就沿着这个方向继续走变小了就掉头。在Simulink里用MATLAB Function或者S函数实现都可以关键参数是扰动步长和采样时间。步长太大功率振荡明显步长太小追踪速度慢。我实际用下来电压扰动步长取0.5V采样时间10ms在常规天气变化下跟踪速度和稳态精度平衡得不错。Boost变换器的参数也讲究。电感量按电流纹波来定纹波电流一般取输入侧平均电流的20%~30%。10kW光伏阵列MPPT点电流约15A纹波按4.5A算开关频率10kHz占空比约0.1电感量大约是 L V_in·D/(ΔI·f_sw) 720×0.1/(4.5×10000) ≈ 1.6mH我实际取2mH留余量。母线电容后面跟储能一起说。2.2 直驱永磁风机与整流控制风机这块我用的永磁直驱PMSG方案——风机直接连永磁同步发电机省掉齿轮箱结构简单、故障率低。Simulink里有专用的Wind Turbine模块和PMSG电机模型设置额定风速、额定转速、极对数这些参数就行。风机的输出是变化的交流电频率跟转速变化所以要经过整流变成直流再汇到母线上。我用的拓扑是“不控整流 Boost升压”风机出来的三相交流电先经过三相不控整流桥变成直流再通过Boost变换器升压后接入直流母线。风电侧的控制同样是MPPT但物理原理跟光伏不一样。风机的最佳运行点是叶尖速比最优——也就是说风速变化时风机转速要跟着成比例变化才能保持最优叶尖速比功率系数Cp最大。控制实现上我用的方法是“查表法”根据当前风速和风机转速计算叶尖速比λ和功率系数Cp用PI控制器调节Boost的占空比让风机转速跟踪到最优转速参考值上。更简单的做法是直接做“功率-转速曲线”查表这也是工业上常用的方法。这里有个容易被忽略的点风机转轴的惯量很大机械时间常数比电气时间常数慢得多。所以风电侧的MPPT追踪速度一定要放慢采样时间我取0.1s左右否则控制动作太快风机机械系统根本跟不上反而造成转速和功率的剧烈振荡。2.3 储能电池与双向DC-DC储能电池我用的锂离子电池模型额定电压设置在400V左右容量按系统需求选比如100AhSOC初始值设在80%。为什么电池电压要选400V而不是直接选800V因为储能到母线中间需要双向DC-DC做电压匹配双向Buck-Boost在降压比和升压比都不太大的区间工作效率最高400V对800V正好是2倍关系占空比在0.5附近动态响应特性最好。双向DC-DC拓扑我用的是经典的半桥结构由两个IGBT反并联二极管组成。工作模式分成两种Buck模式电池充电和Boost模式电池放电。母线电压偏高的时候就Buck给电池充电把多余的能量存起来母线电压偏低的时候就Boost电池放电给母线补能量。这个控制器的设计是整个系统稳定性的关键我用的是“电压外环电流内环”双闭环外环是母线电压环把直流母线电压测量值跟参考值比如800V做差经过PI控制器输出的是电池电流的参考值。内环是电池电流环电池实际电流跟踪外环给的参考值PI控制器输出PWM占空比。这跟后面逆变器的双闭环思路一模一样核心逻辑就是“外环定方向、内环做执行”。母线电压一波动外环立刻算出一个电流指令告诉电池“该充就充、该放就放”内环则保证电流真的按指令走。母线电容大小的选择也跟这个控制密切相关我后面在“直流母线稳压”那节再展开计算。2.4 三相逆变器与LC滤波逆变器是整个系统面向负荷的“门面”怎么把稳定的800V直流变成干净的380V/50Hz交流就看这一级。我用的三相两电平电压源逆变器六个IGBT功率管开关频率10kHz。器件参数就按实际IGBT模块的导通压降、开关损耗来设置但仿真初期为了加速收敛我会先把这些寄生参数关掉后面再精细化。逆变器输出端必须接滤波器因为PWM波形里含有大量的开关频率谐波。离网供电场景下我用的是LC滤波器——电感串在输出线路上电容并在负载侧。L的作用是抑制电流纹波C的作用是给电压提供低阻抗通路让高频分量泄放掉。离网模式下逆变器本质上是电压源LC滤波能提供一个较低的输出阻抗对负荷适应性更好。参数按THD要求和稳定性来选型。上次提过我的L取3mHC取30μF190.5Hz是LC谐振频率。这个频率落在50Hz的3.8倍、开关频率10kHz的约1/52处既能有效滤除开关谐波又不会跟基波产生谐振风险。实际仿真中看FFT分析输出线电压THD能控制在3%以内满足大多数负荷的供电质量要求。3. 离网运行的核心逆变器双闭环与直流母线稳压3.1 直流母线电压等级怎么定做这套系统必须要搞清楚一个问题母线电压到底选多少伏我在网上看到不少新手直接把母线电压设成400V然后逆变器输出就怎么也达不到380V线电压最后还在那里调PI参数其实问题根本不在控制上而在电压等级的静态约束。算一笔账就明白。逆变器输出380V线电压对应相电压有效值220V相电压峰值是220×√2 ≈ 311V。对于三相两电平逆变器采用SVPWM调制时最大可输出的相电压峰值为Vdc/√3所以母线电压至少要满足Vdc ≥ √3 × 311 ≈ 538V这只是理论下限工程上要留10%~20%裕量还要考虑IGBT管压降、死区效应、线路压降、动态过程中的母线电压跌落所以我取800V母线是合理的。如果你用SPWM调制母线电压要求更高得满足Vdc ≥ 2×311 622V这也是为什么现在工业上普遍用SVPWM——直流电压利用率比SPWM高了大约15%。这个计算特别重要我建议做仿真之前先把这一个约束算清楚否则后面模型建得再漂亮母线电压等级选低了输出根本达不到额定值。当然如果你的本地负荷是220V单相等级或者线电压380V以下的三相负荷母线电压可以相应降低但计算逻辑是一样的。3.2 储能稳压母线电压为什么不能靠逆变器撑有人可能会问既然逆变器能控电压为什么不让逆变器顺便把直流母线电压也稳住这个想法在孤网无电网场景下是行不通的。原因很简单逆变器控制的是交流侧的电压和频率它从直流侧取能量是“被动的”。当负荷突变时交流侧有功功率需求突然增加能量必须先由直流侧母线电容顶上母线电压会立刻跌落。这个时候如果全靠逆变器去反推存在一个响应时间差母线电压早就跌出允许范围了。所以在离网微网里直流母线电压稳定是储能的责任。储能电池的响应速度比光伏、风电都快得多双向DC-DC控制的带宽可以达到几百赫兹甚至千赫兹级别而光伏和风机的功率输出响应都是秒级甚至更慢。有这个时间尺度差储能才能“以快打慢”瞬间填补功率缺口把母线电压维持住。母线电容的大小也直接影响稳压效果。设想一个极端情况——负荷突增10kW储能还没来得及响应这10kW的缺口只能由电容放电来补。电容储存的能量是(1/2)CV²如果允许母线电压从800V短暂跌到750V跌6.25%需要的电容值是ΔE (1/2)·C·(800² - 750²) 38750·C焦耳 ΔE 10000·ΔtJ假设储能响应时间20msΔE 200J C 200 / 38750 ≈ 5.16mF所以母线电容至少要5000μF这个量级我实际模型里取6000μF就是为了保证在储能动作之前母线电压跌落不要超过5%。这个计算思路建议都走一遍会让你的模型选型更有依据而不是随便填一个电容值。3.3 逆变器离网控制的dq双闭环逆变器离网控制的经典做法是电压电流双闭环而且要在同步旋转dq坐标系下做这样PI控制器才能实现对正弦量的无静差跟踪。控制器的结构是电压外环采集LC滤波电容上的三相电压做Clark变换和Park变换得到dq轴分量Ud、Uq跟参考值Ud_ref、Uq_ref做差PI控制器输出电流内环的参考值Id_ref、Iq_ref。离网时Ud_ref设成相电压峰值311VUq_ref设成0输出正序电压。电流内环采集滤波电感的三相电流变换到dq坐标系后与参考值做差PI控制器输出调制电压加上解耦项ωL·Iq和ωL·Id和前馈项电容电压得到最终的调制波送进SVPWM模块生成IGBT驱动信号。为什么电流内环要加解耦项因为dq坐标系下d轴和q轴的电流会通过电感相互耦合——d轴电压方程里有ωLiq项q轴电压方程里有ωLid项。如果不解耦d轴电流变化会影响q轴两个环会互相打架控制性能很差。加了解耦项后d轴和q轴就变成了两个独立的子系统各自配一个PI就够了。变换角从哪里来离网模式下系统没有外部电网可以锁相我采用的是“自建坐标系”——直接用给定频率的积分得到角度θ 2π×50×t作为Park变换的角度。这样逆变器自己就定义了微网的频率和相位相当于一个“主时钟”。负荷投切时电压会有波动但只要电压环调节正常频率始终稳定在50Hz。3.4 并网逆变器vs离网微网逆变器的区别说到逆变器控制我多说一句很多人把并网逆变器的PQ控制拿来用在离网微网里这就是最大的坑。并网逆变器比如光伏电站的逆变器本质上是一个受控电流源它把直流侧的能量“注入”到公共电网上电压和频率都是电网给的它只负责控制输出电流的幅值和相位。所以它的控制核心是“电流环”外加锁相环去跟踪电网。而离网微网逆变器我们这套系统里的是一个电压源它要给整个微网提供电压基准和频率基准负荷要多少电流它就得给多少电流。所以它的控制核心是“电压环”电流环只是它的内环执行器。两者逻辑上完全不是一个方向。我在调试的时候看到过不少模型直接把并网逆变器的控制框图拿过来改结果空载好好的一带负荷电压就塌了频繁报过流。原因就是根子上的控制逻辑错了——电压源型控制必须要有电压反馈来稳定输出电压光控电流是撑不起负荷的。这个区别先说清楚后面调试会省很多事。4. Simulink实操从零搭模型的完整步骤4.1 主电路搭建顺序Simulink里搭这套系统我建议按照“逆变器负荷”→“储能母线”→“光伏”→“风电”这个顺序一步步来每加一块就先跑通不要一次性把所有模块都堆上去再调试。第一步先拖一个直流电压源把直流母线等效成一个理想电压源接逆变器再接LC滤波器和三相负荷把逆变器的SVPWM双闭环控制调通确认交流侧电压、波形、负荷供电都正常。这一阶段不用管风光储先把最难调的逆变器拿下来。第二步把直流电压源替换成“电池双向DC-DC”给电池加上母线电压控制环验证母线电压在各种负荷扰动下稳定。这个阶段就相当于把系统的心脏搭好了——储能能稳压系统就有了主心骨。第三步接入光伏阵列和BoostMPPT确认光照变化时光伏能正常追踪最大功率并把能量通过母线送出去。第四步接风机和整流器最后的整体联调。这样分步的好处是每次只引入一个新变量出了问题能快速定位是哪一个环节的锅。我最初就是图快一次性全搭好结果跑起来母线电压振荡、功率乱飞根本分不清是MPPT的问题还是储能的问题排查起来非常痛苦。4.2 控制子系统怎么搭我在模型里把控制器封装成三个子系统每个子系统里用离散的PI控制器2D Table形式或者自己搭的离散PI配合SVPWM模块。这里有几个实践细节Powergui模块一定要设置成离散仿真模式采样时间取1e-6到1e-5Simulink里的PWM载波、控制器计算才能稳定地按步长推进。连续模式仿真会非常慢而且容易不收敛。测量环节要引入模拟“传感器延迟”用Memory模块或者Transport Delay模拟采样保持和信号处理延迟这样仿真结果更接近实际硬件行为。SVPWM模块我直接用Simscape Electrical里带的也可以自己搭一个SVPWM计算模块扇区判断-矢量作用时间-比较值后者能加深理解而且自由度更高。想了解SVPWM内部原理的建议至少自己搭一次时序生成部分。光伏和风机的MPPT子系统和储能的双闭环子系统各自独立通过全局信号母线电压、功率交互。子系统的输入输出口信号命名要规范我用“Vdc、Idc、Pref、SOC”这种前缀加下划线的方式模型大了以后找信号和连线会快很多也方便后期做代码生成。4.3 PI参数的整定路径PI参数是这套系统最让人头疼的部分我给一个自己总结的整定路径照着走比盲调快很多。先整定内环电流环再整定外环电压环。电流环的对象是滤波电感L和等效电阻R把内环整成典型I型系统比例增益Kp ωc×L积分时间常数Ti L/R。开关频率10kHz时电流环带宽ωc取1000~2000 rad/s对应Kp大约3~6L3mH时Ti约30ms左右积分增益Ki Kp/Ti。然后整定电压环电压环带宽取电流环的1/5~1/10大约100~200 rad/s。电压环的对象是滤波电容C也按典型I型系统设计Kp ωv×CC30μF时算出来只有0.003~0.006非常小。实际模型里因为包含了离散化延迟和负荷扰动的因素Kp和Ki会在算出来的基础上做调整我最后调出来电压环Kp在1~5、Ki在50~200之间具体和标幺化方式有关。关键心得是仿真里PI参数不能按连续系统设计出来直接抄上去要考虑离散化步长、采样延迟、滤波器和传感器延迟。建议做一个“参数实时调”的小技巧——把PI参数在WorkSpace里定义成变量然后在Simulink里用Scope盯着阶跃响应一边改一边看效率比每次改完模型重新跑高得多。4.4 仿真求解器与仿真时长设置求解器设置直接决定仿真速度和稳定性。用Powergui离散模式时Simulink求解器选“discreteno continuous states”固定步长步长至少比PWM载波周期小一个数量级。10kHz开关频率载波周期100μs我一般取5μs步长对应200kHz采样率能保证PWM生成的精度同时仿真不会太慢。仿真时长方面我一般用两个时段组合验证前2秒给系统从零启动到稳态2秒后加入负荷突变、光照阶跃等扰动一直跑到5秒。起步阶段的启动冲击非常大我会把逆变器参考电压做成斜坡上升0.5秒从0升到311V峰值避免初始时刻电容充电电流过大触发过流保护。提醒一句Simulink仿真不是时间越长越好步长越小仿真越精确但越慢。做参数初调的时候先用大步长10μs快速验证控制逻辑确认波形趋势对了再加密步长做精细化仿真这样能节省大量时间。5. 常踩的坑与排查实录5.1 启动瞬间电流爆炸第一个普遍问题是启动冲击电流特别夸张一开仿真电流直接冲上几千安。我调了两天后来发现问题基本都出在“初始状态”上逆变器PWM开始工作的瞬间LC滤波器电容上一点电没有控制器却直接甩出一个220V的参考电压这相当于给电容瞬间充电电流自然爆炸。解决办法有两个我建议两个都做。第一逆变器的电压参考值加一个斜坡启动0.5秒内从0伏逐步升到311V让电容“温和”充电。第二在SVPWM模块前加一个使能信号直流母线电压达到90%额定值前逆变器不输出脉冲等母线稳定了再投出去。这两个措施配合起来启动冲击电流能控制在额定电流的1.5倍以内内。5.2 母线电压低频振荡母线电压振荡是另一个高频问题具体表现是800V母线电压上下波动波动幅度从几伏到几十伏不等频率在几赫兹到十几赫兹之间而且光伏和风机的输出功率越大波动越明显。碰到这个我先做“切源定位”把光伏和风电依次断开看母线电压是否恢复平稳。如果断开后波动消失说明是前端电源的功率波动超出了储能的调节能力如果断开后还在波动说明储能控制环自身有问题。根据定位结果对策分两类。前端功率波动大一是增大母线电容二是加快储能外环响应提高电压环带宽。储能自身振荡多半是电压环和电流环带宽挨得太近产生了耦合振荡把电压环带宽压低或者给电压测量加一个低通滤波器截止频率200Hz左右让高频分量不要窜进PI控制器。5.3 光照阶跃后MPPT追踪丢失光伏部分我遇到一个特别典型的问题光照从1000W/m²突降到400W/m²后MPPT输出的功率一直追踪不到新工况下的最大功率点甚至停在某个非最大功率点上不动了。排查后发现是扰动观察法在光照突变时“走错路”了。扰动观察法的逻辑是“功率变大就方向不变”但光照突变瞬间功率的变化是光照引起的不是扰动引起的算法把两个原因搞混了就给出了错误的扰动方向。解决办法是给MPPT的采样时间加长到100ms以上并减小扰动步长到0.2V让算法在每次扰动间隔内能看到真正的P-V特性曲线而不是被瞬态变化误导。另外也可以在MPPT算法前面加一个功率变化率阈值只有当功率变化平缓时才执行扰动检测到大阶跃时先保持上次占空比等功率稳定下来再继续跟踪。这个改进在Simulink的Stateflow里实现很方便。5.4 逆变器输出谐波超标输出波形THD偏高的原因要分开关频率谐波和低频谐波两类来看。如果是10kHz附近的开关频率谐波偏高说明LC滤波器衰减不够要么增大L和C要么把开关频率提高成本会升高。如果是低频谐波150Hz、250Hz这些偏高大概率是死区时间设置得太长或者控制参数动态响应太慢导致电压波形畸变。我实际遇到过一个问题死区时间从2μs改到5μs后输出波形明显出现了削底FFT分析发现5次、7次谐波增加明显。把死区调回2μs并加入死区补偿简单的脉冲补偿就行低频谐波显著改善。另外负荷侧如果接的是整流型负荷比如带阻感负载的二极管整流桥这类非线性负荷本身就会产生5次、7次谐波逆变器如果只做纯V/F控制是消除不掉的需要加谐振控制器或者重复控制那就属于进阶话题了。5.5 仿真速度慢到怀疑人生模型越来越大以后仿真速度慢是必然的。我的经验是把整个模型差分块处理光伏阵列内部用平均值模型不用开关器件用一个受控电流源等效双向DC-DC和逆变器保留开关模型。这样既能保留控制动态的精度又避免了大量开关器件的高频计算。实测同样的工况仿真速度能快5~10倍以上。另一个减少步长的技巧是把PWM载波和控制器采样频率做成“变步长触发”——在开关动作瞬间用很小的步长捕捉在中间时段用大步长跳过。Powergui的离散模式支持这个但设置比较复杂适合进阶用户去摸索。6. 这个模型后续还能怎么扩展6.1 加入并网模式与模式切换我们前面讲的都是离网孤岛运行但真正的微网还有并网运行模式——公共电网在的时候微网可以从电网买电、也可以卖电给电网这时候逆变器的控制要从V/F控制切换成PQ控制。这个切换过程有个难点叫做“预同步”切换前必须让微网的电压幅值、频率、相位跟电网保持一致否则切换瞬间会产生巨大的冲击电流。在Simulink里做这块的思路是在V/F控制的参考电压生成部分加一个预同步环节——用PLL锁定电网相位然后通过PI调节器把微网输出电压的幅值和相位慢慢向电网靠拢等误差小于阈值后再闭合并网开关。这块做出来后整个模型就从“孤岛微网”升级成了“可并离网切换的微网”应用场景立刻广了很多。6.2 加入下垂控制与多逆变器并联如果微网里不止一台逆变器比如多台储能变流器并联那就不能只靠一台逆变器定电压和频率了要有“多台电源共同分担负荷”的机制。这时就要引入下垂控制——模拟同步发电机的下垂特性有功功率增加时频率下垂无功功率增加时电压下垂这样每台逆变器只需要检测本机的输出功率就能自动按比例分配负荷不需要彼此通信。在下垂控制里微网的频率会随负载变化而偏移所以通常还要加一个二次调频的环节把频率拉回50Hz。这一套在Simulink里搭起来很合适也是做工业园区微电网、商业综合体微电网项目的核心控制策略。扩展的时候可以把现在的双闭环和下垂控制做成两种可选的控制模式用开关切换模型就非常灵活了。6.3 加入黑启动与低电压穿越还可以往“故障穿越”方向扩展在微网母线侧加一个三相短路故障模块观察储能和逆变器在电压跌落期间的动态响应测试系统能否在故障切除后迅速恢复。做微电网并网研究的时候这个“低电压穿越”测试是必备的。但要注意故障仿真对步长要求很严格需要把步长减小到1μs级别仿真时间也要合理规划否则一个工况要跑几个小时。按我个人的经验风光储联合发电模型做得再复杂最后回归本质还是要回答三个问题母线电压稳不稳、交流电压波形好不好、负荷波动时功率平不平衡。把这三点拿捏住整套系统就立住了。
返回列表