ARTICLE DETAIL

资讯详情

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

Simulink三相PWM整流器光伏储能并网控制建模与参数整定

Simulink三相PWM整流器光伏储能并网控制建模与参数整定 做新能源并网控制这几年接触最多的仿真场景之一就是基于Simulink搭建光伏/储能前端的三相PWM整流并网控制模型。光伏阵列发出来的直流电、储能电池的充放电功率最终都要通过前端这台三相PWM整流器变成高质量的三相交流电送入电网。很多刚入门的同学一打开Simulink就对着元件库发懵到处找三相桥、锁相环、SVPWM模块搭出来不是发散就是电流畸变根本跑不出理想波形。这篇文章我会把整套系统的架构选型 → 控制策略 → 建模实操 → 参数整定 → 踩坑排查完整串一遍给出可以直接抄作业的模型设计方案。无论你是做微电网项目、光储一体机还是单纯想搞懂三相PWM整流器的并网控制这篇内容都值得你花十分钟看完我会把自己实际调模型时总结的参数规律、报错原因、波形异常处理方式全部交代清楚。1. 先弄清这套系统的整体架构1.1 光伏、储能、PWM整流器怎么组合在一起所谓前端PWM整流器指的是接在直流母线侧和电网之间的那一级变换器。整个系统的能量流是这样走的光伏阵列经过Boost电路升压后接到直流母线储能电池通过Buck-Boost双向变换器也接到同一根直流母线母线电压稳定之后再由前端三相PWM整流器把直流电逆变成三相交流电并网。这里有个关键认知光伏和储能本身都是直流源并且它们的电压等级各不相同所以必须各自配一个DC/DC变换器来匹配母线电压。而真正和电网打交道、决定并网电能质量和功率流向的是那台三相PWM整流器。你甚至可以把它理解成一个功率路由器——光伏发多了就馈网储能要充电就往电池灌功率负载侧要用电就同时从电网和直流侧取能。这种拓扑在工业界叫两级式光储一体结构。第一级DC/DC负责各自的MPPT最大功率点跟踪和电池充放电管理第二级就是三相PWM整流器负责直流母线稳压和并网电流控制。两级分开的好处是控制目标清晰MPPT可以独立做母线电压由网侧整流器统一扛不用让光伏和储能那边操心功率平衡问题。1.2 为什么非要PWM整流普通二极管整流不行吗很多做传统电源出身的人第一反应是电网侧接个不可控整流桥加个大电容后端再挂DC/DC不就完事了吗没错那种做法在纯负载供电场合没问题但放到光储并网场景就成了灾难。普通二极管不可控整流有三大硬伤第一能量只能单向流动光伏多余的功率想送回电网门都没有储能电池要放电也不现实第二输入电流是严重畸变的尖峰脉冲谐波含量极高过不了并网标准的谐波要求第三直流母线电压不受控会随着电网波动和负载变化乱跳直接连累后级DC/DC的工作点。而三相PWM整流器用全控型器件IGBT或MOSFET替代二极管通过高频开关和调制策略可以同时实现四个目标单位功率因数并网甚至能吸收或发出无功、网侧电流近似正弦波、能量双向流动、直流母线电压稳定可调。这就是为什么所有光储并网的前端基本都选它。从控制角度说PWM整流器本质是个Boost型变换器理论上直流母线电压要大于线电压幅值才能正常工作。1.3 一套可复用的基础仿真参数搭建模型之前先把参数定下来。我这里给一套基于380V/50Hz工业电网的典型参数后面所有控制策略和PI整定都基于这套参数展开。参数名称数值说明电网线电压380V / 50Hz三相三线或三相四线均可直流母线电压800V必须大于380×√2≈537V留一定裕量网侧电感2mH电流谐波抑制同时影响电流环带宽网侧等效电阻0.1Ω包括线路电阻和电感寄生电阻直流母线电容4700μF稳压并抑制二倍频母线纹波开关频率10kHzIGBT典型值Saber/Simulink均可光伏Boost电感1.5mH电流纹波控制在10%以内储能Buck-Boost电感2mH双向工作纹波综合考虑仿真步长10μs离散对应开关周期的1/10兼顾精度和速度这套参数我在多个项目里用过无论是纯仿真还是后期做小功率样机量级都是合理的。后面所有控制环设计都围绕它们展开。2. 控制策略拆解双闭环到底闭环在哪2.1 电网侧电压定向矢量控制VOC的基础逻辑三相PWM整流器的控制方式有很多种主流是电压定向矢量控制VOC和直接功率控制DPC。我推荐VOC它物理意义直观模型调试也容易本质上就是把三相交流量变换到同步旋转dq坐标系下让控制量变成直流量这样就能用PI控制器做到无静差跟踪。具体做法是用锁相环PLL锁定电网电压矢量的相位角θ然后做Clark变换和Park变换把三相电流i_a、i_b、i_c变成dq轴分量i_d和i_q。在dq坐标下有功电流i_d和电网电压同轴无功电流i_q和电网电压正交。如果想让系统单位功率因数运行让i_q的给定为0就行如果想补偿无功直接改i_q给定到某个不为零的值。VOC的核心是双闭环外环是直流母线电压环它的PI输出作为有功电流内环的给定i_d_ref内环是dq轴电流环分别控制有功和无功电流。电压外环维持母线电压恒定本质上是在控制有功功率平衡——母线电容充放电的快慢就反映了直流侧和电网侧有功功率的差。2.2 电流内环的解耦与前馈同步旋转坐标系下dq轴之间是有耦合的。dq轴电压方程可以写成忽略电阻R纯电感L下V_d V_d_grid - ωL·i_q L·(di_d/dt) V_q V_q_grid ωL·i_d L·(di_q/dt)注意这两项ωL·i_q和ωL·i_d它们把d轴和q轴电流互相耦合。如果不处理你调d轴会给q轴带来扰动调q轴又会窜扰d轴PI参数很难整定稳定。工程上最常用的处理方法是前馈解耦。控制器的输出按照下面的分量叠加用PI调节器的输出作为电流误差调节量加上电网电压前馈分量再加上交叉耦合补偿项。最终d轴和q轴的控制电压给定为V_d_ref V_d_grid - ωL·i_q PI(Id_ref - Id) V_q_ref V_q_grid ωL·i_d PI(Iq_ref - Iq)这样处理后d轴和q轴就成了两个独立的、形式完全一样的电流控制系统分别去整定PI就行。这个内部耦合补偿量随着系统参数L变化但实际中L变化不大前馈补偿精度足够。2.3 光伏和储能控制怎么融入整体在两级式结构里电网侧PWM整流器只负责两件事稳定母线电压、控制并网功率因数。而光伏侧Boost和储能侧Buck-Boost各自独立运行。光伏侧用MPPT算法输出一个占空比或者参考电流让光伏板工作在最大功率点。我习惯用扰动观察法简单可靠在Simulink里实现就是采样光伏电压电流算功率后和上一拍比较决定电压参考方向然后让Boost的内环电流环去跟踪。扰动步长选1V左右仿真中能很好兼顾跟踪速度和稳态振荡幅度。储能侧的控制取决于你要让它干什么。储能要平抑光伏波动时用恒功率控制给定电池充放电功率实际实现是一个功率外环加电池电流内环储能要维持母线电压时改成电压外环加电流内环和网侧整流器形成类似的主从控制但这种情况在光储并网里用得少因为网侧整流器已经稳压了。更贴近实际的做法是储能做吃剩余控制光伏MPPT之后母线电压由网侧稳住如果光伏功率大于并网要求储能自动充电光伏不足则储能放电补充。这个在Simulink里实现起来也很直观——母线上挂一个受控电流源其数值由功率分配算法给出。2.4 并网功率协调的小细节一旦光伏、储能都在工作就要注意控制环之间会不会打架。实际模型中我建议这样分工网侧整流器稳压它天然会吸收或释放直流侧功率差额也就是说光伏多发的功率它会自动往电网推储能则是主动管理自己那一份。正因如此光伏和储能的功率指令通常直接在直流侧加减不需要网侧响应这为控制设计省了不少事。一个我踩过的坑是光伏侧MPPT用固定步长扰动在光照剧烈变化时网侧电压外环的动态响应跟不上母线电压会瞬间冲高。这不是网侧PI能完全解决的最好在光伏侧做功率斜坡限制每秒钟功率变化率不超过某个上限比如10%/s母线电压就不会过冲太多。这一点在仿真中不容易暴露但在实物上特别重要。3. Simulink建模实操记录3.1 主电路模型怎么搭打开Simulink后我建议直接用Simscape Electrical里的元件搭主电路而不是全部用纯Simulink数学模块。Simscape有现成的电网电源模块、三相变压器、串联RLC分支、通用桥式变换器Universal Bridge、直流母线电容、Boost/Buck-Boost变换器以及自带的PV Array和Battery模块省去大量手写微分方程的工作。具体连接顺序是电网侧Three-Phase Source接一个Series RLC Branch作为网侧电感L2mHR0.1Ω然后接入Universal Bridge选择IGBT/Diode三相两电平拓扑开关频率设10kHz桥的直流端接母线电容正负极母线两端再挂两个受控电流源分别代表光伏Boost输出和储能变换器输出。这里有个细节要提醒Simscape电气元件和Simulink普通信号不能直接相连你需要用Simscape Electrical里的PS-Simulink Converter和Simulink-PS Converter做接口转换。很多人第一次搭的时候电压电流测量信号悬浮接不了根源就是忘了加转换器。测量点我建议加在电网侧三相电流、电网电压、母线电压三处分别用Three-Phase V-I Measurement把信号引出来。3.2 控制子系统划分控制部分我习惯拆成四个独立子系统PLL锁相子系统、Park变换与电流解耦子系统、母线电压外环子系统、SVPWM脉冲生成子系统。每个子系统之间用Goto/From标签传递信号避免连线一团乱麻。PLL子系统Simulink里有现成的PLL 3ph模块也可以自己用二阶广义积分器搭SOGI-PLL。我平时用自带模块省事但要注意输入的三相电压要标幺化到1.0附近否则初始锁相角会慢半拍。自带的PLL模块输出角度是弧度制的直接接到Park变换即可。Park变换不用买专门的模块自己用三角函数搭就行Clark变换用i_α i_ai_β (i_a 2i_b)/√3这组标准公式Park变换用i_d i_α·cosθ i_β·sinθi_q -i_α·sinθ i_β·cosθ。如果你用的是三相V-I测量模块它自带dq分量输出选项直接引出即可省去手写模块。电流内环搭建时按前面第二节的前馈解耦公式用PI模块输出加耦合补偿和电网电压前馈。PI模块要记住开饱和限制输出限幅要对应SVPWM能输出的最大调制比一般限制在±0.9倍母线电压附近防止饱和后电流超调。3.3 光伏阵列和Battery建模要点Simscape里的PV Array模块可以直接设置光伏组件开路电压、短路电流、串联并联数目。我习惯设一串18块组件、并联2路大约输出峰值为6kW。模块自带I-V和P-V曲线计算仿真时输出端口接一个Boost变换器。Boost建模用MOSFET加二极管和电感开关由MPPT控制器输出的占空比驱动。MPPT子系统里用S-function或者普通逻辑搭扰动观察法采样光伏电压电流后判断扰动方向。储能侧更简单用Battery模块锂离子电池模型端口接一个Buck-Boost双向变换器MOSFET用两个开关管反并联实现双向功能控制由功率或电流指令驱动。3.4 仿真求解器设置细节Simulink仿真的收敛性和速度很大程度上取决于求解器选择和时间步长。我强烈建议对PWM整流系统用离散求解器discrete固定步长跑而不是用连续变步长ode45。原因是IGBT的PWM触发脉冲是高频离散信号连续求解器在开关沿处会疯狂缩小步长仿真慢得能让你怀疑人生还容易出现代数环报错。固定步长我一般设10μs对应10kHz开关频率下每个载波周期取100个点足够描述电流波形细节。PWM发生器本身可以在内部设定采样方式但控制环的采样频率我建议和经验吻合别盲目设太大。仿真时长先跑0.5s看动态响应稳态观察波形再跑2s。光伏和电池模型的惯性较大启动时如果直接从零开始给MPPT指令母线电压容易先乱跑。我的习惯是先跑网侧整流器空载光伏储能侧先断开母线电压稳定到800V之后再投入光伏最后再投储能分阶段仿真排错定位非常快。4. PI参数整定和SVPWM实现细节4.1 电流环PI参数的工程计算电流内环的对象可以简化成一阶惯性环节加PWM环节工程上按典型I型系统整定。给定系统阻尼比ζ0.707时PI参数有一个很直观的公式电流环Kp ≈ L / (3·Ts) 电流环Ki ≈ R / (3·Ts·Ts)其中Ts是电流环采样周期一般等于开关周期L是网侧电感R是等效电阻。以2mH、0.1Ω、10kHz采样来算Kp≈6.7Ki≈333。这个值当初始点在真实项目中够用但仿真中如果发现振荡适当减小Kp增加Ki调到阻尼合适为止。实际电流环调试中我先只带阻性负载调电流跟踪能力在i_d_ref直接给一个阶跃看电流上升有没有超调和震荡。超调大就减Kp稳态误差明显就加Ki。整定好的电流环响应时间应该在1~2个载波周期内跟上给定。4.2 电压外环的整定方法电压外环控制的是母线电容充电电流对象是电流内环闭环后的等效一阶惯性。工程上按典型II型系统整定带宽要远低于电流环通常取电流环带宽的1/5到1/10。以刚才的电流环带宽1kHz估算电压环带宽100~200Hz左右对应的PI经验初值电压环Kp ≈ C / (5·Ti) ≈ 4700μF / (5×0.002) ≈ 0.47 电压环Ki ≈ Kp / Ti ≈ 0.47 / 5 ≈ 0.094我实际仿真里把电压环Kp取0.5、Ki取0.1母线电压稳定性和动态响应都比较理想。电压环的调试判断标准是母线电压给定从700V阶跃到800V调节时间不超过100ms没有明显振荡和过冲。4.3 SVPWM扇区判断与矢量作用时间Simulink自带的PWM Generator虽然能发脉冲但要实现高性能的电压利用率我通常自己搭SVPWM模块。三相逆变器电压空间矢量一共6个非零矢量和2个零矢量SVPWM的任务就是确定当前参考电压矢量落在哪个扇区然后合成它。扇区判断用三相电压经过Clark变换后的αβ分量来算。先定义辅助量A、B、C若Uβ0则A1若√3·Uα - Uβ 0则B1若-√3·Uα - Uβ 0则C1。扇区号NA2B4C查表即可知道落在哪个扇区。矢量作用时间用X、Y、Z三个中间量计算我整理成下表方便直接连接Simulink模块扇区号T1T21-ZX2ZY3X-Y4-XZ5Y-Z6-Y-X其中X√3·Uβ·Ts/UdcY(√3/2·Uα Uβ)·√3·Ts/UdcZ(-√3/2·Uα Uβ)·√3·Ts/Udc。T1和T2是相邻两个基础矢量的作用时间Ts是PWM周期Udc是母线电压。零矢量作用时间T0Ts - T1 - T2用三角载波比较生成互补PWM波。4.4 离散控制落地时的采样策略我记得早期自己做模型有个毛病所有PI模块都用连续模块仿真结果还行但一出C代码就炸。正确做法从建模阶段就按离散化做PI模块采样时间设成Ts100μsSVPWM触发计数器按载波周期同步清零这样代码生成后在线性和仿真一致性上就好很多。在Simulink里建议用触发子系统或使能子系统配合PWM载波计数来模拟数字控制器的执行时序用外部模式External Mode跑起来后可以通过Host Scope在线调参体验非常接近调实际控制器。很多做嵌入式的人不知道Simulink还能这么用我强烈建议试一次可以省掉大量反复烧录的时间。5. 常见问题与排查技巧实录5.1 启动冲击电流过大母线电压拉不上去这是并网PWM整流器最经典的问题。启动瞬间电容相当于短路电网会灌进来很大冲击电流严重时直接烧保险丝。仿真里表现就是电流波形出现几倍于额定值的尖峰甚至导致数值发散。我的处理办法分三步第一步软启动给母线电压给定值加斜坡比如从0在0.5s内逐渐升到800V第二步预充电可以在直流母线电容支路串一个限流电阻母线电压升到80%后再用接触器短接第三步在PI输出端加限幅和积分器抗饱和用有条件积分的方式防止积分项在启动阶段堆到爆表。5.2 PLL锁相失败角度乱跳仿真里如果PLL的带宽设太高锁相会抖动设太低动态并网时又跟不上。还有一个常见坑是电网电压测量信号没有滤波测量噪声直接进PLL导致角度毛刺。我一般把PLL的PI参数按100Hz带宽设计输入信号先过一阶低通滤波截止频率500Hz。另外初始角度不要从0开始强锁给个初值让PLL自己转过来。还有一种野路子排查法直接把Three-Phase V-I Measurement的输出用Scope看如果三相波形有畸变或不对称先解决供电部分再谈锁相。5.3 Bus Selector没有可选信号选不到想要的信号这个报错几乎每个用Simulink总线的人都遇到过。Bus Selector下拉列表是空的提示没有可选信号通常原因是引过来输入总线信号类型不匹配。最常见的情况是你Goto/From传递的是一个数组或者普通向量而不是真正的Bus对象或者你把总线信号用连线拖进了Bus Selector但实际上那个端口的信号类型是double向量。排查方法查看源端口是不是Bus Creator输出确认Goto/From标签名字一致再用Bus Object定义总线类型在Base Workspace里建Simulink.Bus对象。如果只想取单个信号干脆别用Bus Selector直接加一个Selector模块或者用Signal Routing里的Demux取分量省心很多。这个问题我印象非常深刻当年卡了半小时后来发现只是Goto和From标签的大小写不一致。5.4 直流母线二倍频纹波大波形锯齿严重母线电压在稳态时存在100Hz对50Hz工频而言是二倍频的纹波这是三相PWM整流器的固有物理现象。但纹波过大会直接影响后级DC/DC控制精度还可能导致光伏MPPT振荡。处理思路增加母线电容容量加大C的值或者给母线电压反馈加陷波滤波器Notch Filter中心频率设100Hz或者干脆在母线电压外环采样时做一个移动平均滤波代价是减慢动态响应。还有一个容易被忽略的点如果网上电压不平衡二倍频幅值会显著增大这时候要检查三相电压幅值是否一致Simscape的Three-Phase Source里可以通过内部参数设成正序平衡源来先排除电网问题。5.5 仿真慢得像蜗牛爬、步长设不对换了离散求解器后还是慢十有八九是Simscape部分仍在使用连续时间变压器或电抗器模型。我建议把电网变压器和电抗器都设成连续模型并手工指定状态空间离散化或者直接使用Simplified模型替代在电气主回路中用线性元件加开关来等效。另外开一下Simulink Fast Restart改动参数不用重新编译调参效率翻倍。5.6 光伏、储能切入时母线电压过冲如果光伏切入瞬间MPPT输出功率猛增网侧电压外环来不及调整母线会瞬间上涨。除了前面说的功率斜坡限制还可以让储能先以充电模式吸收一部分突变功率。在仿真里做功率斜坡非常简单——给MPPT参考功率输出加一个Rate Limiter模块限速即可。6. 从仿真到样机的几条实用经验6.1 C代码生成前要检查的坑Simulink模型跑通了要出代码时用Simulink Embedded Coder。我提醒几点前车之鉴第一所有PI模块改成离散采样周期都显式定义好不要留inherit第二去模型中找找有没有连续性模块用模型顾问检查连续状态是否存在第三检查SVPWM里的查表索引是不是int类型别在C代码里变成浮点比较导致时序不对第四生成代码前把信号都标成static或calibratable内存类方便后期标定。6.2 用外部模式做硬件在环调试如果你有嵌入式板卡可以把Simulink模型编译成C代码烧进去然后用外部模式跑起来做硬件在环虚拟调试。用外部模式可以在Simulink界面实时调PI参数、观察内部变量波形不用反复烧录极大提升调试效率。个人经验是先把所有仿真时间改成实时运行方式Realtime Execution确保实际执行时间快于实时再做外部模式联调。6.3 从这套模型还能往哪扩展这套光储前端PWM整流模型的可扩展性很强。光伏侧可以加超短期功率预测算法把预测功率作为前馈叠加到并网功率给定平滑电网调度波动储能侧可以加SOC管理策略在低电价区间充电、高电价区间放电做峰谷套利仿真网侧部分还能扩展成LCL滤波器增加谐波补偿控制应对弱电网工况。另外一个不必忽视的方向是mcdc覆盖率分析Simulink Design Verifier能对你的控制逻辑做覆盖度统计对功能安全要求高的项目有参考价值。回到我自己建这个模型的过程最大的感受是先小步走再串全系统。刚从书本上看到这套拓扑的时候我也以为最复杂的部分是SVPWM后来实际跑下来才发现真正费时间的反而是母线电压和电池状态在各控制环之间的衔接逻辑。建议其他人做同样课题时把第一版模型的目标定义为让空载整流器启动成功、母线电压平稳升压这个里程碑一旦达成后续并网电流控制和光储接入都是一步一个脚印的事。
返回列表