搞配电网现场工程的都知道,想拿到一份完整的低压台区电能质量数据有多难:负荷曲线波动大、谐波源分布散、三相不平衡时有时无,抄表数据往往又只有稳态值,真要分析某个扰动对全线路的影响,基本靠猜。但仿真不同——你可以在一个完全可控的环境里,把电压偏差、三相不平衡、谐波畸变、无功不足这些问题一个个“制造”出来,再观察它们怎么沿线路传播和叠加。最近我搭了一个48节点低压配电网的Matlab Simulink仿真模型,专门用来探索低压配电网电能质量,从头到尾走了一遍建模、仿真、指标分析和踩坑排错,今天把这套东西完整复盘出来,希望能给正在做配电网仿真、写论文或者做工程项目预研的同行一些能直接用的参考。
1. 为什么做48节点配电网仿真:从现场问题到仿真需求
1.1 低压配电网电能质量痛点
低压配电网(国内一般指400V/380V三相四线制系统)和输电网不太一样,它贴近用户,负荷种类极其杂。居民用电里有大量整流器、开关电源、变频空调,这些都属于非线性负荷,会往电网里灌谐波电流;单相负荷接入相序分配不合理,又导致三相不平衡;再加上近年分布式光伏和充电桩大量接入,台区里的电压波动、谐波放大和中性线电流超标问题越来越明显。
这些痛点直接影响用户侧设备:谐波会让变压器和电机额外发热,三相不平衡会让某相电压偏高或偏低,影响照明和精密电子产品,严重的还会让零序保护误动作。想在现场做系统性实验,成本高、周期长,而且很多扰动情况根本没法主动制造出来,比如你要模拟一台大功率电机在馈线末端启动时造成的电压暂降,真去现场频繁启停设备,别人厂里生产都会受影响。
所以仿真成了最合理的替代方案。Matlab Simulink里的Simscape Electrical库能建出包含变压器、线路、负载、逆变器、故障模块的完整低压配电系统,既能看稳态潮流,也能看暂态波形,还能用自带的FFT、序分量分析工具做电能质量指标计算。
1.2 48节点模型的由来与优势
很多人会问,为什么偏偏是48节点,而不是IEEE 33、IEEE 69这些经典配电网测试系统?原因很简单:那些经典系统是中压配电网模型,电压等级是10kV或更高,而我要研究的是低压台区0.4kV的问题,直接套用并不贴合。实际低压台区的一个典型结构是:一台10kV/0.4kV配电变压器,引出3到4回馈线,每回馈线带十几个接户点,总体节点规模大约在三四十个以上。因此我选了48个节点,把四条馈线各带12个节点组合成一个辐射状低压配电网模型。
这个规模有几个实际好处:
- 节点数量足够多,能明显看出电压沿馈线长度方向从首端到末端的下跌趋势,也能看出分布式光伏接入后造成的局部电压抬升。
- 节点数量又不至于太多,Simulink仿真不会因为大量开关器件和非线性负载而慢得不可接受。我试过把同样模型扩展到96节点,离散仿真步长50微秒时,跑0.2秒仿真光是求解就要等十几分钟,而48节点通常一两分钟就能搞定。
- 48节点更容易做分区配置。比如我可以把前三条馈线设为居民生活负荷区,第四条馈线设为含光伏和充电桩的混合园区,再分别配置不同扰动源,一张模型就能对比多种场景。
整个建模思路是自底向上的扩展。我先在Simulink里搭一个单馈线12节点的“最小台区”,跑通电压分布和负载潮流后,再复制成四条馈线,通过变压器低压母线汇聚成48节点。这个做法好处是排错容易,每加一段拓扑就能验证一段电气连接的正确性,避免一上来就铺一个大模型,结果电压根本带不起来还找不到原因。
2. 建模思路与关键参数设计
2.1 48节点拓扑如何搭
模型的电气拓扑是这样设计的:10kV无穷大电源作为上级电网,通过一台10kV/0.4kV Dyn11三相双绕组变压器降压,变压器低压侧中性点直接接地,引出四回电缆馈线,每回馈线12个节点,每个节点带一组三相或单相负荷,节点与节点之间用线路阻抗连接。四条馈线的末端分别设置在距离变压器约300米、500米、800米和1000米左右的位置,模拟不同供电半径的台区。
这里要特别强调变压器联结组别。低压配电网普遍采用Dyn11而不是Yyn0,因为Dyn11能让低压侧中性点接地,同时隔离部分三次谐波电流,尤其在单相负荷占比较高的情况下电压不平衡度明显更低。Simulink里选择“Three-Phase Transformer (Two Windings)”后,直接设置联结组为“Dyn11”,同时勾选“Three-winding? 不,是双绕组,需要设置绕组接线方式:一次侧D接,二次侧Y接,中性点接地。
线路阻抗参数是另一个关键点。低压架空线或电缆的每千米电阻比电抗要大得多,这一点和中压线路明显不同。我用的典型值是R=0.45Ω/km,X=0.08Ω/km(对于三相四线低压电缆),线路长度在节点间按均匀分布取30米到80米不等。由于是三相四线制,中性线也要参与仿真,我在Simulink里用“Three-Phase Distributed Parameters Line”模块建模,不过低压线路长度较短,电磁暂态过程不是重点,实际上用集中参数RL支路也够。如果你建的是电缆线路,还要考虑不同相序排列引起的零序阻抗差异,但因为Simscape里使用的是对称分量模型,默认三相完全对称,所以零序阻抗按经验值设为正序的三倍即可。
下面这张表是我建模型时的基准参数,你可以直接抄:
| 参数 | 数值 | 说明 |
|---|---|---|
| 电源电压 | 10kV | 理想三相电压源 |
| 变压器变比 | 10kV/0.4kV | Dyn11,额定容量630kVA |
| 低压额定电压 | 380V/220V | 相间/相零 |
| 馈线数量 | 4回 | 每回12个节点 |
| 节点间距 | 30~80m | 均匀分布 |
| 线路阻抗 | R=0.45Ω/km,X=0.08Ω/km | 低压电缆典型值 |
| 总负荷 | 约420kW + 120kvar | 按四馈线分配 |
2.2 负荷与分布式电源建模
负荷建模直接决定仿真结果是否可信。Simulink的Simscape Electrical库里有几种常见负荷模型:恒阻抗模型(Parallel RLC Load)、恒功率模型(Three-Phase Dynamic Load)、以及由异步电机、整流桥等构成的具体设备。对低压配电网来说,真实负荷介于恒阻抗和恒功率之间,但做电能质量研究时,我一般把大比例负荷设成恒阻抗模型,因为它在动态仿真里数值最稳定;再把一小部分设成恒功率负荷,用于模拟制冷压缩机、电梯等设备,观察末端电压稳定性。
如果你也想研究三相不平衡,最简单的办法是在不同节点接入单相负荷,而不是直接用一个不平衡的三相负荷模型。我在2号馈线上故意把A相多接了约30kW负荷,B相缺一些负荷,C相平衡,这样就能真实好看地反映三相电流不平衡如何导致中性点电压偏移以及三相电压不平衡。
分布式光伏接入采用简化的PQ控制逆变器模型:既可以用详细的IGBT加PWM整流器模型,也可以用三相可控电流源注入相同相位的电流。我在末端节点35接了一个60kW分布式光伏,在谐波分析时更关注它注入电流的波形;如果只关心潮流和电压抬升,直接用电流源模型完全够用,而且不会让仿真变慢。这里要注意光伏逆变器的直流侧需要一个稳态电压源,否则仿真初期直流电压建立过程会产生很长的暂态毛刺。
2.3 电能质量扰动源设置
探索电能质量不能只靠正常负荷,还要人为设置特定的扰动源。我在模型里设置了三类典型扰动:
第一类是谐波源,在第23节点接入一个三相全桥整流器带阻感性负载,额定容量约15kW。二极管整流桥会产生典型5次、7次、11次、13次谐波电流,这些电流注入电网后在系统阻抗上产生谐波电压。实测仿真结果中,23节点附近电压THD可以达到6%左右,刚好超过国标5%限值,很适合后续做谐波治理对比。
第二类是三相不平衡扰动,在2号馈线各节点分配不平衡单相负荷,使三相电流不平衡度达到15%~20%左右。通过这个扰动,可以看到低压侧中性点电压偏移以及三相电压不平衡度变化。
第三类是电压暂降扰动,在馈线4末端附近设置一个三相短路故障模块,故障持续时间设为100ms,用来观察暂降沿馈线的传播范围。对于想研究动态电能质量的人来说,这个扰动源非常有用,因为只要改变故障电阻和故障类型,就能模拟不同深度和不同持续时间的暂降。
3. Matlab/Simulink实操:从模块选型到模型搭建
3.1 Simulink电力系统模块库选择
使用Simulink做电力系统仿真,第一件事是选对模块库。早期版本叫SimPowerSystems,现在叫Simscape Electrical Specialized Power Systems,你需要在Simulink库浏览器里找到“Simscape > Electrical > Specialized Power Systems”路径。这个库和普通的Simulink信号模块不一样,它有自己的电气网络求解机制,必须搭配一个“powergui”模块。很多新手从没用过这个库,直接在Simulink里把三相电压源和电阻用普通加法器连接,那是完全跑不起来的。
我的模型里用到的核心模块如下:
- “Three-Phase Source”:用于模拟10kV上级电网,设置相电压幅值、频率,以及短路容量。
- “Three-Phase Transformer (Two Windings)”:降压变压器,设置容量、频率、变比、绕组电阻电抗、励磁支路,联结组Dyn11。
- “Three-Phase Distributed Parameters Line”:馈线线路模块,设置正序零序电阻、电感、电容,以及线路长度。
- “Three-Phase Parallel RLC Load”:恒阻抗负荷模块,直接设每相有功无功。
- “Three-Phase Dynamic Load”:恒功率负荷模块,需要设置初始有功无功以及电压指数。
- “Three-Phase V-I Measurement”:用于测量节点三相电压和电流,把波形显示在Scope或导出到工作区。
- “Three-Phase Fault”:用于模拟短路等故障,可配置故障相和动作时间。
- “powergui”:电网求解器,必须放置在模型的顶层,用于设置仿真类型和步长。
一开始我建议把每个节点的测量模块直接串联在线路和负荷之间,因为低压配电网中同一节点电压相同,测量模块并联在母线上也可以,但要保证测到的是节点电压而不是导线压降。我通常习惯在节点处加一个“Three-Phase V-I Measurement”串联进馈线,这样电流数据也同时拿到了。
3.2 搭建步骤:从单馈线到48节点
完整建模步骤可以分成七步,每一步都有必须注意的细节。
第一步,新建Simulink模型,从Simscape库拖入powergui,并设置仿真模式为“Discrete”,采样时间填50e-6秒。很多新人不理解离散仿真和连续仿真的区别,低压电力电子装置里有开关器件,连续仿真在开关切换时会出现十分尖锐的数值变化,导致ode求解器步长变得极短、仿真卡死。离散仿真相当于在固定步长内强制网络开关状态不变,适合带电力电子器件的电能质量分析。如果只是看工频稳态,也可以选“Phasor”模式,但那样就看不到谐波波形了,所以一定要用Discrete。
第二步,搭一个最简单的单馈线台区:10kV三相电源、变压器、一段线路、一个负载、一个V-I测量模块。先跑通这个最小模型,确认变压器二次侧三相电压为380V,负载电流正常。这里最常见的坑是变压器联结绕组设置不对,导致二次侧没有中性点引出,下面接的所有单相负荷都无法工作。
第三步,把单馈线扩展成一条12节点馈线。在变压器低压侧母线处引出线路,每两个节点之间用一段“Three-Phase Distributed Parameters Line”连接,每个节点接一个“Three-Phase Parallel RLC Load”。建议节点编号按A01到A12这样的方式整理,方便后面扫描电压分布。我使用“Goto/From”标签来连接远距离信号,尽量避免大量交叉的电气连线,否则模型图会乱到让人崩溃。
第四步,复制这条馈线三次,分别修改线路长度和负荷参数,得到四条馈线。每条馈线的首端都连接到变压器低压母线上。这一步要小心:Simulink中“Copy/paste”复制线路和负荷后,模块内部参数还是原来那套,需要逐个检查馈线长度和负荷功率是否按需求修改,避免四条馈线完全一样。
第五步,在指定节点加入谐波源、不平衡负荷和光伏模型。谐波源直接用三相全桥整流模块,整流桥交流侧接23节点母线,直流侧接滤波电感和负载电阻。不平衡负荷用三个单相负载分别接到A、B、C和中性点之间,因为Simscape电气库有三相四线制接法,所以这个操作是可行的。
第六步,设置仿真时间和输出变量。我一般把仿真时间设为0.2秒,正好是10个工频周期,非常方便FFT分析。为了减少初始暂态对结果的污染,FFT数据从0.1秒之后开始截取。每个节点电压和支路电流通过“To Workspace”模块输出到MATLAB工作区,变量名设为V_in、I_in这种结构化形式。
第七步,运行仿真并保存模型。跑之前强烈建议先在“powergui”里选择“Use LTI initial state”或“Start from steady-state”选项,让仿真从稳定工况开始,否则一开始的电压和电流会有一个明显冲击过程。Simulink的电力系统仿真并不像普通控制仿真那样按零初始状态起机,配电网应该从交流稳态附近开始,这样才能更快进入稳定状态。
3.3 仿真参数设置与收敛性调整
仿真步长和求解器设置是决定模型能不能跑通的命门。离散仿真步长默认是自动选择,但我们要分析到20次或40次谐波,就需要按奈奎斯特采样定理来算。20次谐波频率1000Hz,用50微秒采样对应20kHz采样率,频谱最高能看到10kHz,至少是20次谐波频率的10倍,足够用了。如果你想看更到40次谐波(2000Hz),最好把采样时间降到20微秒,但仿真时间会翻倍。我常用的折中方案是50微秒采样,能覆盖到40次谐波几乎没有问题,再高次谐波在低压配电网中占比很小。
求解器方面,离散模式下Simulink通常用“Fixed-step discrete”求解器,步长等于powergui里的采样时间。如果你的模型里存在连续积分环节,比如动态负荷和逆变器控制回路,使用“Variable-step”时选ode23tb效果更好。我刚搭建模型时碰到过仿真速度特别慢的情况,后来发现是负荷模块里设置了太小的惯性时间常数,导致系统动态响应频率极高,被迫把仿真步长压得很小。你可以把恒功率动态负荷的时间常数设为0.02秒左右,让它在工频尺度上表现得足够慢,仿真速度就快了。
仿真收敛性是另一个容易翻车的地方。低压配电网模型的线路阻抗都很小,如果变压器短路阻抗设得过大,或者电源内阻为0,离散仿真很容易出现高频数值振荡。我在三次调整后总结了一条经验:变压器短路阻抗百分比用4%~6%,负荷侧若出现恒功率模型,则在节点处并联一个小电阻(比如100kW的有功负荷对应并联几百欧姆电阻)作为阻尼,收敛问题基本能缓解。看到波形有高频毛刺时,先别急着怀疑算法,检查一下线路电感和采样步长的匹配关系,一般情况下,仿真步长应该小于线路暂态时间常数的1/5。
4. 电能质量指标分析与仿真结果解读
4.1 电压偏差与三相不平衡
48节点模型跑完0.2秒后,我拿到全部48个节点的三相电压有效值。最直观的分析方式是把各节点A相电压幅值画成曲线,横轴是从变压器低压母线到各馈线末端的距离,纵轴是电压标幺值。结果发现,在负荷较重且光伏未接入时,4号馈线末端电压降到了0.91p.u.左右,已经低于我国标准中220V单相供电电压偏差-10%的限值。这个电压偏差主要是线路电阻压降造成的,因为低压线路电阻远大于电抗。此时在末端接入60kW光伏后,末端电压立刻抬升到0.98p.u.,说明分布式电源对低压线路的电压支撑作用非常明显,但如果光伏功率过大且负荷小,还可能反向潮流导致末端电压超过1.05p.u.,这在实际工程中也是光伏并网需要做电压校核的核心原因。
三相不平衡度是通过负序电压与正序电压的比值来计算的。在Simscape里可以使用“Sequence Analyzer”模块,输入三相电压信号,直接输出正序、负序和零序分量。我在2号馈线不平衡负荷场景下测到最大负序不平衡度为3.8%,超过国标2%的限值。把各节点不平衡度沿馈线画出来,会发现越靠近末端不平衡度越高,因为负序电流在阻抗上产生的压降是逐级累积的。与此同时我也观察了中性点电压偏移,在中间某节点中性点电压有效值达到30V左右,这对单相设备会造成明显的电压不对称。
4.2 谐波分析(THD)
谐波分析我习惯用powergui自带的FFT工具,也可以把电压波形存到工作区后自己写MATLAB代码计算THD。先说简单方式:双击powergui,选择“FFT Analysis”,指定需要分析的信号变量,基波频率设50Hz,最大频率设2500Hz,FFT窗口选择“Hanning”。要注意的是,如果你用Scope里的波形直接做FFT,Scope的显示时间往往不是整周期,导致频谱泄漏严重。正确的做法是用To Workspace把节点电压按固定采样率导出,再确保截取的数据长度正好覆盖整数个工频周期,比如0.1秒(5个周期)或0.2秒(10个周期)。
从结果看,23节点接入整流桥后,该节点电压THD约为6.3%,电流THD超过了20%。谐波频谱中5次谐波最大,达到基波的5.2%,7次谐波也有3%左右。沿着馈线往上游走,电压THD逐级降低,因为谐波电流在路径阻抗上的压降变小了;但电流THD在所有线路中基本一致,因为谐波电流主要由负载决定。如果你在配电网首端补偿谐波,比如加无源滤波器,就可以看到谐波电流被部分吸收时末端电压畸变率也同步下降。这个结论对谐波治理方案很有价值:治理重点要靠近谐波源,而不是只在台区变压器侧加滤波器。
4.3 无功功率与功率因数
低压配电网的功率因数问题主要来自异步电机和无功负荷。我在模型里给部分节点负荷设置了滞后的无功,初始总功率因数约0.85。用Powergui里的“Continuous measurements”统计馈线首端的平均有功和无功,可以看到系统存在约60kvar的无功缺口。这时我在馈线末端并联了一个30kvar的电容器组,功率因数从0.85提升到了0.94,末端电压也提高了约2%。这个过程可以直接套用到实际工程中的无功补偿容量估算:先通过仿真确定无功缺额,再按“无功补偿容量不超过平均无功负荷”的原则选电容器容量,避免过度补偿引起电压过高。
值得注意的是,低压配电网的功率因数测量并不仅依赖基波有功和无功。在谐波源接入后,电压电流波形畸变,传统的功率因数表可能会读错。我更推荐用MATLAB脚本处理瞬时电压电流数据,按有功功率定义P=1/T∫v(t)i(t)dt计算,视在功率S=V_rms*I_rms,然后是位移功率因数和畸变功率因数。谐波存在时,真正提高能效的指标是总功率因数,它等于P/S,而基波功率因数仅仅反映相位移部分。
5. 常见问题与排查实录
5.1 仿真不收敛的几种典型表现
Simulink仿真最常见的一个错误就是“Solver unable to handle this system”或者“Nonlinear iteration is not converging”。我在搭建48节点模型过程中至少踩过五次,总结下来主要分三类原因。
第一类是初始条件问题。模型里变压器和线路有电感和电容,直接按零状态仿真会有一个很大的充电冲击过程,数值上容易发散。解决办法是在powergui的“Tools”里选择“Set Initial States”,点击自动计算稳态工作点,让仿真从稳态开始。
第二类是负荷模型太“硬”。恒功率模型在电压偏离额定值时会产生很高的电流增量,特别是多个恒功率负荷串联在线路末端,电压低时电流增大,又进一步压低压降,导致求解器迭代发散。我最后把大部分恒功率负荷改成了恒阻抗负荷,只保留少数关键负荷作为恒功率,仿真瞬间稳定下来。对于必须保留恒功率负荷的场景,可以在负荷两端并联一个电阻性负载,给它一个电压支撑。
第三类是采样步长与线路电容不匹配。如果线路电容较大,而仿真步长不够小,高频振荡就会淹没整个波形。这时要么减小步长,要么改用“Equivalent circuit”的线路模型,关闭分布电容参数。低压电缆的分布电容影响很小,直接设成零对结果影响不大,但能让仿真速度快好几个量级。
5.2 节点电压读取错误的排查
满心欢喜跑完仿真,结果Scope里看到的某个节点电压突然变成几十伏甚至几千伏,这种情况多半不是电网真出了问题,而是测量模块接错了。Three-Phase V-I Measurement模块有两种接线方式,一种是串联在支路里测电流,一种是并联在母线上测电压。很多人只拖了一个模块,它默认同时测电流和电压,你必须把它的电流输入端串进线路里,再把电压输入端口并联到被测母线上,否则模型会显示内部信号未连接。
还有一次我排查发现某个节点电压居然是0,测电流也正常,后来发现是因为那个节点后面的负荷模块没有接“N”端子到中性线,整个负荷回路没有电流通路,所以节点电位被悬浮了。低压配电网仿真里,中性线必须是最为完整地贯穿整个系统的,所有需要220V的单相负荷和三相四线负荷都要正确接入N线,否则节点电压就是随机乱跳的。
5.3 数据导出与FFT后处理的脚本经验
用Scope看图只能做定性判断,如果要写报告或论文,最好还是把波形导到工作区,再用代码处理。我写了一个简短脚本,可以从模型导出的结构体里提取某一节点电压并计算THD,供你参考:
% 假设To Workspace输出的变量名为 V23, 结构体包含时间向量和信号矩阵 t = V23.time; V = V23.signals.values; % 矩阵第一列是A相电压 % 取稳定后5个周期:从0.1s到0.2s mask = (t >= 0.1) & (t <= 0.2); v = V(mask,1); fs = 1 / (t(2)-t(1)); % 去直流后做FFT v = v - mean(v); N = length(v); Y = fft(v); P2 = abs(Y / N); P1 = P2(1:floor(N/2)+1); P1(2:end-1) = 2*P1(2:end-1); f = (0:floor(N/2))*fs/N; % 找到基波和各次谐波 [~, i_fund] = min(abs(f - 50)); fund_amp = P1(i_fund); for k = 3:2:15 [~, i_h] = min(abs(f - 50*k)); THD_v = THD_v + (P1(i_h)/fund_amp)^2; end THD_v = sqrt(THD_v) * 100; fprintf('节点电压THD = %.2f%%\n', THD_v);这段脚本就是正常MATLAB信号处理流程:截取整周期、去直流、FFT、找基波和谐波。要注意的是FFT前务必对齐整数个周期,否则结果会有频谱泄漏,谐波幅值误差可能在20%以上。用这个脚本我可以批量处理48个节点的电压,快速画出THD分布热力图,比在Simulink里一个个点FFT高效得多。
还有个小技巧:在Simulink里做FFT分析时,建议先用“Rate Transition”模块把采样率统一,很多离散步长不同导致的频谱混叠错误都来自多速率系统。把模型中所有测量信号的采样率都统一到50微秒,导出到工作区后频率轴自然对齐,省去很多麻烦。
结语:一点实操心得
我做完这个48节点低压配电网仿真模型后,最大的体会是:低压配电网电能质量问题和输电系统完全是两套逻辑,电阻主导的压降、中性线的作用、分布式光伏的电压抬升、谐波源就近治理,这些特点在理论教材里经常一句话带过,但真放到Simulink里跑一遍,才会有那种“原来如此”的感觉。如果你也想复现这套模型,建议千万别从48节点开始,先搭个最小的单馈线模型,把变压器和负荷学明白,再一步步扩展。后续想深入的话,可以在48节点平台上加分布式储能、动态负荷、充电桩集群,甚至和机器学习算法结合做电能质量扰动分类,这个模型的扩展空间远比一次仿真要大。