ARTICLE DETAIL

资讯详情

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

基于Simulink的电网不平衡下正负序分离充电策略仿真实现

基于Simulink的电网不平衡下正负序分离充电策略仿真实现 做充电机或者并网变流器的人几乎都会遇到这类事三相电压看起来还行可PWM一接入直流母线开始低频抖动电流波形也变得难看保护动不动就报警。查来查去大多落在同一件事上——电网不平衡时你没有把正负序分量分开处理。最近我刚好用Simulink把电网不平衡下的正负序分离充电策略完整跑了一遍从分离算法到双dq控制再到故障注入验证把该踩的坑也踩得差不多了今天把这套模型的搭建思路和实测过程整理出来给做充电模块、储能PCS或者并网逆变器的朋友做个参考。这篇内容不只是讲原理重点放在Simulink里怎么落地。你会看到不平衡电网怎么建模、正负序怎么分离、充电策略为什么必须分成正序环和负序环、PI参数大概怎么给、仿真结果怎么判断。无论你是刚接触电力电子仿真的学生还是已经在写控制代码的工程师这套方案都能直接拿来改改用。1. 电网不平衡下充电装置到底在受什么罪1.1 我在仿真里看到的典型故障场景先说我习惯用的场景一个三相PWM整流器作为充电模块前级直流侧带一个稳压电容和负载电阻模拟给后级DC-DC供电。三相电网正常时母线电压平平稳稳网侧电流正弦度很好功率因数也接近1。但只要我在Simulink的电压源里把某一相电压往下拉一截比如A相跌落到70%整套系统的状态会立刻变样。母线电压开始出现明显的100Hz波动网侧电流有一相特别大另外两相变形THD从2%左右直接飙到10%以上。更麻烦的是直流侧的100Hz纹波会向后级传递如果这是给电池充电纹波会带来额外的发热和老化严重的时候充电电流本身都会出现低频振荡。这就是电网不平衡带来的连锁反应。这种场景并不罕见。实际现场里单相大负载投切、配电变压器三相负载不均、线路单相故障未切除都会造成电压不平衡。充电桩又往往挂在台区末端感受尤其明显。1.2 正序、负序、零序到底是个啥讲分离之前先把这个基础说透。任意一组不对称三相正弦量都可以分解成三组对称分量正序分量、负序分量和零序分量。正序分量的特征是三相幅值相等、相位依次滞后120度相序是A-B-C它负责传递绝大部分有功功率。负序分量同样是三相幅值相等、相位依次滞后120度但相序是A-C-B也就是反转的。零序分量则是三相幅值相位完全相同的分量在没有中线的三相三线系统里基本不会流通。用生活化的比喻正序就像三个步调一致顺时针跑的运动员负序就是其中混进了三个按反方向跑的零序则是三个人原地同时跳。电网正常时你看到的是第一组电网不平衡时后面两组就冒出来了。对充电装置来说零序电流在无中线拓扑里天然被阻断而正序和负序都会真实流过桥臂。负序分量作用在PWM整流器上会带来交变的功率扰动这就是母线100Hz纹波的来源。1.3 不平衡带来的三个典型问题第一是直流母线二倍频纹波。负序电压与正序电流相互作用产生二倍于基波频率的瞬时功率脉动。50Hz电网下这个脉动就是100Hz直流电容不得不承担额外的纹波电流容量选小了纹波压都压不住电容寿命也受影响。第二是网侧电流的畸变和不平衡。只控制正序电流时负序电压会在电流环中形成扰动导致三相电流幅值不一致。某一相电流会明显增大系统如果按三相中最大值来决定过流保护阈值整机功率就必须降额。第三是锁相环和控制的相互干扰。普通PLL在不平衡电压下提取到的相位存在误差相位角会以二倍频摆动导致坐标变换后的dq分量仍然残留交流成分控制环性能进一步恶化。所以结论很清楚想在不平衡电网下维持充电性能控制策略必须能同时管理正序和负序两套分量而不能假装电网是平衡的。2. 正负序分离方案选型与Simulink落地方案2.1 先想清楚分离的目的是什么正负序分离不是单纯为了“把信号拆开看看”而是要给控制器提供干净的反馈量。正序dq分量用来保证直流母线的平均电压稳定和有功传输负序dq分量用来消除功率脉动、改善网侧电流平衡。反馈量不干净后面的PI环节再怎么调都是白搭。在Simulink里做分离最忌讳的是把简单问题复杂化。有人一上来就搭一整套自适应滤波器参数又多又要调收敛速度仿真跑起来卡得不行。实际上仿真验证阶段追求的应该是“算法逻辑正确、结果可复现、参数可解释”而不是把论文里最花哨的算法原封不动搬进来。2.2 三种常用分离思路横向对比目前在工程仿真中常见的有三种一种是延时信号消除法利用基波周期四分之一延时的正交关系在静止坐标系里把正负序分离开来。优点是结构直观、不需要滤波器参数缺点是延时环节会降低动态响应实际工程中基波频率偏移时误差会变大。一种是基于SOGI的分离方案通过二阶广义积分器构造两相正交信号再组合出正负序分量。动态响应快对频率偏移有一定适应能力但每个轴都要一组SOGI离散化时对采样率有要求参数k需要整定。一种是同步旋转坐标加滤波的方案先转到正序dq坐标和负序dq坐标再滤掉各自坐标系里的二倍频交流量剩下的直流分量就是需要的正序或负序分量。这个方法物理意义清楚模块搭起来最快在Simulink里非常好落地。我给这几种方案做过对比结果大致如下分离方案动态性能实现复杂度频率适应性Simulink落地难度延时信号消除法受整周期延时影响低一般低但占用仿真缓存SOGI正交分离较快中较强中需调振荡系数同步旋转坐标加滤波中等中一般低模块化程度高2.3 我最后选定的Simulink实现结构我自己在建模型时用的是第三种把同步旋转坐标和陷波器结合起来。基本思路是先分别以正序旋转角θ和负序旋转角-θ做Park变换得到正负两套dq分量。由于正序dq坐标系下正序电压是直流负序电压表现为100Hz交流负序dq坐标系下正好反过来所以用陷波器把100Hz交流分量滤掉剩下的直流就是各自需要的序分量。这样做的好处是控制结构和序分量提取结构完全同构。我可以在同一个模型里直接复用坐标变换模块只要把旋转角改成-θ就能生成负序dq通道。陷波器用Simulink基础库里的Transfer Fcn就可以实现二阶陷波器的品质因数设为0.5到1之间仿真效果比较平稳。在实际建模中我没有把分离结果直接电流环一起用而是单独做成一个Feedback Signals子系统方便单独调试。分离出来的正序dq电压和负序dq电压分别接示波器和工作区记录用来确认分离效果是否正确。这一步很建议你也做否则后面控制环出了问题很难判断是分离模块的问题还是PI参数的问题。3. 主电路与控制系统搭建实录3.1 主电路参数与不平衡源设置我的主电路模型用的是Simscape Electrical里的Specialized Power Systems组件配一个三相两电平PWM整流器。参数选择如下相电压幅值设置为311V对应220V RMS相电压频率50Hz网侧电感5mH等效电阻0.1Ω直流侧电容2200μF直流电压指令540V开关频率10kHz直流负载电阻80Ω约等于3.6kW的充电功率。变压器和隔离部分我没有放进去因为仿真重点是控制策略加入工频变压器除了拖慢仿真速度之外对控制逻辑验证意义不大。你做工程版本时候再按实际拓扑补这部分即可。电网不平衡的注入方式很关键。我选择在三相可编程电压源里用Sequence Components方式设置初始阶段正序分量1pu负序分量0在t等于0.2秒时把正序分量保持1pu同时加入一个0.3pu的负序分量等效于A相电压跌落到约70%。持续时间0.3秒到0.5秒时再恢复平衡状态。这种注入方式的优点是可以很干净地控制不平衡度。负序0.3pu代表负序分量幅值是正序的30%这对充电策略来说是相当苛刻的工况比实际现场稳态不平衡严重得多正好用来验证控制器的极限能力。3.2 锁相环和坐标变换的关键点电网不平衡时常规三相锁相环输出的θ会带有二倍频误差这个误差会直接污染后续所有坐标变换。所以你需要在PLL前做处理。我实测下来比较稳的方案是用DDSRF-PLL结构也就是双同步坐标系解耦锁相环先估算负序分量并把它从输入中解耦出去再走标准SRF-PLL。如果你不想搭DDSRF-PLL也可以利用第2.3节里的正序dq提取通道把提取出来的正序dq电压送给一个带低通滤波的PLL效果也不错。反正千万别直接用普通PLL顶上去负序注入后你会看到PLL输出的θ出现锯齿状波动电流控制直接发散。坐标变换我建议自己搭一个封装子系统输入是三相abc信号中间经过Clarke变换得到αβ再以θ和-θ分别做Park变换。这样共用一个αβ中间量方便后续调试。还要注意顺序先算αβ再分别进正转和反转坐标系不要各做一遍abc到dq变换那样白白增加计算量。3.3 双dq正负序控制环的搭建控制器的整体结构分为两条通道。正序通道负责母线电压和基波有功负序通道负责抑制母线二倍频波动和网侧电流不平衡。两条通道的dq电流环结构完全一致只是旋转角不同PI参数可以共用一套也可以在分开调试时独立整定。电压外环的输出作为正序d轴电流指令代表维持母线电压所需的有功电流。正序q轴电流指令设为0保持单位功率因数。正序电流环输出经过Park逆变换得到正序调制波。负序电流环则根据负序电流参考跟踪负序分量输出经过以-θ旋转的Park逆变换后得到负序调制波。到了最关键的一步两条通道的调制波需要在αβ静止坐标下直接相加合成总调制电压。这个叠加是矢量叠加不是瞬时值简单相加。因为正负序调制波本来就对应不同旋转方向的电压矢量叠加后生成的不对称调制波恰恰是桥臂需要输出的电压波形。调制波生成后送给PWM发生器我用的SPWM方式载波频率10kHz。你也可以换成SVPWM模块效果差异不大只是SPWM在Simulink里更直接。3.4 负序电流参考怎么定这部分是整个策略的核心也是很多人卡壳的地方。先看原理直流母线二倍频纹波来自瞬时功率中的二倍频项。电压包含正序和负序电流也包含正序和负序两两交叉相乘就会出现100Hz交流功率。正序电压和正序电流只产生平均功率负序电压和负序电流同样只产生平均功率但正序与负序组合就会产生二倍频脉动。要想消除二倍频功率脉动最彻底的办法是让负序电流的幅值和相位被控制在一个精确值上使它与负序电压产生的功率脉动正好抵消另一组交叉项。这个值不是0负序电流给定为零虽然控制简单但直流母线二次纹波几乎压不下去。在Simulink里实现时我给负序电流环的参考值增加了一个附加调节通路把直流母线电压的100Hz分量提取出来经过一个谐振调节器处理后作为负序d/q电流参考的补偿量。这个谐振调节器可以只说成按100Hz调谐的控制器效果上相当于专门针对二次纹波做闭环抑制不需要手动推导复杂参考公式就能把纹波压下去。直流母线的100Hz分量提取我用了一个中心频率100Hz的带通滤波器品质因数为1左右。这样电压环不用跟着谐振调节器抢带宽设计上更清晰调试时也能分别观察两个环路的输出。这一套做法在仿真里验证过很多次逻辑上非常稳妥。唯一要注意的是采样和离散化时带通滤波器和谐振调节器对相位延时比较敏感建议你设置较小的控制步长。4. 仿真结果与效果验证4.1 故障注入工况说明仿真时长我设为1.0秒其中0到0.2秒是平衡电网启动阶段0.2秒到0.5秒加入负序分量负序幅值0.3pu且初始相位设定为导致母线纹波最大的角度0.5秒后恢复正常。整个过程中充电控制一直在线运行没有触发任何限流或保护逻辑。想看控制效果只需要比较两个参数直流母线电压的100Hz纹波峰峰值以及网侧三相电流的THD与不平衡度。实际操作中我加了Measurement模块和频谱分析模块对母线电压做FFT观察100Hz分量幅值这个方法很直观。4.2 直流母线波动对比没有启用负序补偿通道时在0.2秒到0.5秒这个区间直流母线电压以100Hz频率波动峰峰值大约正负28V。对540V母线来说这个波动超过5%后级充电模块很难在这种情况下保持稳定的恒流输出电池端的电流纹波也会比较难看。启用正负序分离和负序补偿后同样工况下母线的100Hz纹波峰峰值被压到正负5V以内下降约80%。从FFT频谱看100Hz分量的幅值下降明显更直观的感受是示波器上电压波形明显变细不再出现明显的抖动。这个效果可以说达到了绝大多数充电模块的母线电压质量要求。4.3 网侧电流质量和平衡度直流母线纹波只是表象网侧电流的变化更能说明问题。未启用负序补偿时负序电压导致三相电流幅值明显不一致其中一相电流峰值可能比另外两相高20%左右。电流THD从正常时的2%左右升高到11%上下波形已经明显变形。启用正负序分离策略后三相电流幅值重新趋于一致负序电流被主动控制在指令值附近THD回到4%左右。4%这个数值虽然略高于完全平衡电网下的2%但放在0.3pu负序电压这种极端工况下已经是非常不错的结果。我一般用三相电流不平衡度来衡量从补偿前的20%左右降到了补偿后的5%以内。这组数据说明另外一个问题充电策略不能只看母线电压稳不稳网侧三相电流如果不平衡前端配电和线路都会承担额外损耗甚至引起保护误动。正负序分离解决的是整个系统的协调问题。5. 仿真调试中的高频坑位与排查技巧5.1 分离结果不对时先查什么我调试中遇到的第一类坑就是分离出来的负序分量不对。具体表现是负序dq电压在故障期间不是平稳直流而是带着明显的100Hz波动或者干脆在零附近不动。排查顺序其实很固定三步走。第一步查坐标变换的旋转角方向。负序Park变换必须用-θ而不是θ很多人这里随手打了个负号就忘了结果负序通道里根本没得到直流。第二步查陷波器参数中心频率一定要按2倍基波设置用50Hz电网就是100Hz品质因数太大会导致分离结果震荡太小则过渡过程拖长。第三步查三相序关系Simulink里abc顺序设置错误会导致整个正负序颠倒一个简单验证法是在平衡电网下看负序分量是否接近于0如果平衡时负序dq还有明显的直流量那一定是坐标顺序或者变换矩阵符号有问题。5.2 锁相环和电流环配合不当的问题还有一个高频坑在PLL输出。很多人做完了分离也加了负序补偿但母线纹波就是不降。用Scope看PLL输出的θ发现θ带有二倍频纹波。这种情况下即使你用正负序分离模块反馈回路控制器收到的dq参考系本身就是歪的。我当时是换成了双同步坐标系锁相环并且在PLL输出的θ后面加了一个很小的低通滤波来平滑相位但要注意相位平滑不能过头否则功率因数会变差。这里没有通用答案需要你在响应速度和相位精度之间找一个平衡点。另一个问题出现在电流环的正负序解耦项上。dq电流环需要引入交叉耦合补偿Lω项的处理不能省略。负序电流环工作在反转坐标下交叉耦合项中的ω要按负的角频率来算如果不注意这个符号负序电流环会在动态过程中出现谐振。5.3 仿真速度和数值震荡的处理Simulink仿真最劝退人的是速度。主电路加控制模型默认用变步长连续求解器一旦有开关器件和采样模块仿真步长会被限制得极小而拖慢整体速度。我处理方式是首选用powergui把模型切到离散模式控制步长按10kHz PWM周期设置为1e-4秒求解器选固定步长离散求解器仿真速度能提升一个数量级。同时注意在离散化所有连续模块时保持一致性。比如陷波器、带通滤波器、PI控制器都要换成Z域离散实现不要混着用连续和离散否则步长不一致会产生数值震荡。还有Scope模块尽量少接长时窗的大波形数据要把运行时间推进到0.5秒以上时尽量关掉不需要的显示模块Simulink会把大量时间花在刷新波形上。如果你碰到电流波形在高频部分有毛刺大概率是采样数据精度问题。我一般把数据记录类型从double改成single或者把控制步长缩小到5e-5秒再看效果如果毛刺消失说明是数值分辨率问题不是控制环路真正的不稳定。我在整定参数时常用的初始值如下表你可以按自己的主电路参数再修正控制环比例系数Kp积分系数Ki说明直流电压外环1.230带宽约10Hz响应较慢正序电流内环15500带宽约500Hz跟踪较快负序电流内环-15-500反转坐标下注意符号谐振调节器0.525中心频率100HzQ1注意负序电流环的符号虽然数学模型上都是正增益但如果你的坐标变换恰好用了另一种定义负序电流反馈会变成正反馈这一条务必在调试时验证电流环的负反馈方向。6. 从仿真到工程化的扩展方向6.1 模型转C代码和快速原型Simulink模型建好了不只在仿真里看看这套控制策略完全可以走代码生成的路子。使用Simulink Coder和Embedded Coder可以把模型里的控制器部分直接生成C代码部署到DSP或者MCU上做硬件在环测试。做模型时注意控制部分和主电路部分要分层建代码生成时只选择控制器子系统的顶层把主电路替换成实际采样信号。外部模式也是我推荐试一下的功能。通过外部模式可以把Simulink模型直接连接到实物控制器在线调整PI参数而不用反复烧写代码。这对验证参数整定非常省时间我一般先用外部模式把PI参数调好再固化到程序里。6.2 和车辆仿真平台的联合扩展充电策略往上走就是整车或者充电系统级仿真。Simulink与车辆动力学仿真平台的联合仿真理论上可以在整车层面验证充电机在弱电网下的表现。比如把充电控制模型集成到整车环境里模拟行驶中充电、刹车回馈和电网电压波动同时发生的情况比起单机仿真能更完整地评估控制策略对电池系统的影响。如果你要做这套联合仿真建议先保证当前整流器控制模型有独立的输入输出接口把所有通信数据都放到Bus里管理。这样对接车辆模型时就相当于拼积木不需要动内部控制逻辑能省掉大量重复验证时间。最后再分享一个小经验不管最终目标是代码生成还是联合仿真模型里所有常量最好都定义成同名结构体或者参数变量别直接在模块参数里填死数字。我吃过这个亏改母线电压定值的时候满模型找数字后来统一改成参数化参数整定的效率翻倍模型交接给别人时也友好得多。
返回列表