☰
直流微电网保护仿真实践:本地松弛母线架构与Simulink建模
2026/10/1 12:18:31 网站建设 项目流程

直流微电网保护这件事,真正做起来才发现跟交流保护完全是两码事。交流有工频过零点,短路电流断了还能自然熄灭,而直流母线一旦发生短路,电流上升极快且没有天然的断流点,保护必须靠变换器本身的控制特性和额外的保护逻辑在极短时间内把故障隔离掉。我这次在Simulink里搭了一套直流微电网保护仿真,拓扑就是典型的本地松弛母线架构,光伏系统走标准光伏模型加升压变换器,电池侧用锂离子电池模型加双有源桥(DAB)变换器,直流负载直接挂母线,整个仿真跑下来,对保护定值整定、故障识别、防误动这些问题的理解比看十篇论文都管用。

这篇文章我会把整套模型的搭建思路、参数计算、保护策略实现和调试踩坑过程全部写出来,适合正在做直流微电网毕设、要交仿真报告的在校学生,也适合刚接触微电网保护、想用Simulink快速搭建一个可验证平台的工程师。涉及的内容包括光伏Boost的参数设计、DAB单移相控制的功率传输公式、本地松弛母线在保护体系里扮演的角色,以及几个典型故障场景的仿真设置方式。

1. 直流微电网保护仿真的整体思路,先从需求倒推设计

1.1 这个仿真到底要验证什么

在动手建模型之前,我先把需求捋了一遍。很多人拿到“直流微电网保护”这个课题就急着找故障模块、找断路器,其实保护仿真的核心不是保护本身,而是你要保护的这套系统能不能真实反映出故障特征。直流微电网里,母线电压是功率平衡的衡量标尺:光伏发多了电压升,负载重了电压跌。保护装置要做的就是盯住电压和电流,在故障导致的异常工况跟正常调节工况之间做出可靠区分。

这套仿真里我确定的被保护对象是一条400V左右的直流母线,挂了三类单元:光伏阵列加Boost变换器作为可控功率源,电池组加DAB变换器作为储能缓冲,纯电阻直流负载直接消耗功率。在正常运行时,光伏MPPT跟踪最大功率点,电池变换器稳定母线电压,负载消耗功率由光伏和电池共同平衡。在这个架构下,母线短路会导致电压骤降、短路电流激增,负载过重会导致电压缓慢跌落,光伏退出会导致功率缺额,这几类工况在电压和电流上的时域特征完全不同,保护逻辑就可以按各自的判据来识别。

当时的核心设计目标是:任何单一故障都能在100ms内被检测并隔离,同时在负载投切、光伏功率波动这类正常扰动下保护不允许误动。这个目标看似简单,实际调试时发现两者之间的平衡很难拿捏,后面我在保护定值整定部分会详细讲。

1.2 为什么让电池DAB充当“本地松弛母线”的角色

先解释一下“本地松弛母线”这个名词。在交流电力系统里,松弛母线(平衡节点)是给定电压和相位的节点,整个系统的有功无功不平衡都由它兜底。直流微电网没有频率和相位,电压就是唯一的全局状态量,所以本地松弛母线的角色就是:让某一个变换器专门负责稳住直流母线电压,其他电源和负载都把母线电压当作已知条件来响应。

在这个仿真里,我让电池侧的DAB变换器承担这个角色。光明面上的理由就有三条。第一条,电池本身就是能量吞吐双向的元件,既能吸收多余光伏功率又能补充缺额,非常适合做平衡节点;第二条,DAB变换器是隔离型双向全桥结构,四个桥臂配合变压器可以实现功率双向流动且控制方式统一,用单移相控制就能平滑地跨过零功率点,不存在模式切换带来的扰动;第三条,从保护角度看,DAB维持母线电压恒定意味着正常工况下母线电压有明确的整定基准,保护定值可以放心地按额定电压的百分比去设置,不用频繁跟着工况漂移。

做个类比你就明白了:这就好比小区门口的快递柜,收件人(光伏和负载)进进出出、忽多忽少,但快递柜本身始终在正常电压下运转。一旦电压出现异常,说明一定是有某个环节出故障了,而不是正常收发导致的波动。电池DAB就是那个快递柜,母线电压稳住了,保护逻辑就有了一把稳定的尺子。

1.3 拓扑与变换器选型背后的权衡逻辑

整个系统拓扑我用的是单母线结构,所有变换器共用一个直流母线。光伏侧用Boost,是因为光伏组件输出的电压远低于母线电压,而且光伏本身只需要单向流动,Boost结构简单、功率密度高、控制成熟,没有必须用双向结构的理由。电池侧用DAB,是因为电池的电压(约320V)与母线电压(380V)相近但又不完全相等,需要变压器来灵活匹配电压等级;同时电池要充电也要放电,双向DAB天然满足这个需求;另外DAB的原副边通过变压器实现了电气隔离,这对电池侧的绝缘配合和安全性来说是个很大的加分项。

我见过不少初学者在这里纠结,问能不能电池侧也用一个Buck-Boost或者干脆用普通Boost加上二极管。答案是:充电工况下非隔离变换器做不到高质量的双向功率控制,而DAB在单移相控制下,移相角的符号直接决定功率方向,控制器不用做任何结构切换,这让保护设计简单很多。稳定性和可控性带来的收益,远大于多几个开关管增加的成本和复杂度。

2. 光伏系统与升压变换器建模仿真实操

2.1 标准光伏模型的参数设置与I-V验证

光伏部分我直接用Simulink里Simscape Electrical Specialized Power Systems库中的PV Array模块,这个模块内置了工程用光伏电池模型,参数设置界面里有“Array type”选择项,可以按预设组件或者自定义组件来配置。我这里按实际项目中小型直流微电网平台的规格来设定:

参数数值说明
组件开路电压Voc45.5V单块组件参数
组件短路电流Isc5.9A单块组件参数
串联组件数8决定阵列输出电压
并联组件数2决定阵列输出电流
光照参考值1000 W/m²标准测试条件
温度参考值25°C标准测试条件

这样配置出来的光伏阵列最大功率大约2.6kW,最大功率点电压约240V,最大功率点电流约11A。这里有一个非常重要的习惯:模型建完不要直接连到Boost上就跑,先把PV Array的I-V曲线和P-V曲线在初始光照和温度下画出来看一眼。我在Powergui里用“PV Array”模块自带的测量端口加上Scope,把电压斜坡扫描和P-V曲线跑出来,确认MPP位置在240V附近,这样后续MPPT算法才有明确的优化目标。

实际上光伏阵列的MPP随光照和温度变化很剧烈,标准模型里温度系数已经内置,但我建议你把温度和光照设为外部输入信号(模块右上角有输入端口),这样后面做“云遮”“光照突变”这类功率扰动场景时,直接给一个阶跃信号就能模拟,不需要重新改参数。

2.2 Boost电感电容与开关频率的计算过程

Boost变换器设计是整个光伏侧仿真的核心环节。我选的开关频率是20kHz,输入电压Vin是MPP电压240V,输出母线电压Vout是380V。Buck-Boost的占空比计算公式:

D = 1 - Vin/Vout = 1 - 240/380 ≈ 0.368

这个占空比在0.3到0.4区间,电感电流连续模式(CCM)下工作点很健康。电感量按电流纹波来设计,工程上一般取额定电流的20%到30%作为允许纹波。光伏阵列在MPP时输入电流约11A,我取ΔIL=1.5A(约14%,留裕量),公式:

L = Vin × D / (fsw × ΔIL) = 240 × 0.368 / (20000 × 1.5) ≈ 0.00294 H

算出来约2.94mH,我直接选3mH。如果仿真中出现电感电流断续,造成MPPT振荡,问题多半是电感量偏小或者开关频率过低。

输出电容按电压纹波计算。母线侧额定输出电流Io≈P/380V≈6.8A,允许电压纹波ΔV取1V,公式:

C = Io × D / (fsw × ΔV) = 6.8 × 0.368 / (20000 × 1) ≈ 125μF

这个值偏理论下限,实际我取220μF,同时并联一个小的100nF高频电容,吸收开关噪声。仿真里电容偏小会让母线电压纹波变大,进而影响保护定值的躲过能力,这个后面会提到。

2.3 MPPT与控制环路的工程设定

光伏Boost的MPPT算法我用的是扰动观察法(P&O),Simulink里可以用Stateflow也可以用纯逻辑模块实现。扰动观察法的思路很简单:周期性给参考电压一个微小增量,如果功率增加了就继续朝这个方向扰动,如果功率减小就反向扰动。实际实现时我把扰动步长设为额定电压的1%,约2.4V,扰动周期设为0.01s。

这个周期和步长看起来很笨,但我在调试中发现:步长太大会导致MPPT在MPP附近持续振荡,波及母线电压,触发保护误判;步长太小到光照阶跃变化时跟踪速度又跟不上。2.4V加0.01s的组合在我这个系统里正好。

控制结构上Boost采用双闭环——电压外环和电流内环,外环输出就是MPPT给的参考电压与实际母线电压的误差经过PI控制器后生成电流参考,内环电流环再通过PWM调制输出占空比。PI参数我在Simulink里用PID Tuner先自动整定一遍,再手动微调,电压环带宽我压到50Hz左右,电流环带宽大概800Hz。这样做的一个好处是:外环慢,抗扰动能力强,光伏功率的正常波动不会在母线上产生剧烈电压冲击,保护误动概率大幅下降。

还有一个容易忽略的点:Boost启动瞬间,输出电容上的电压是从零开始爬升的,如果直接满负荷启动,冲击电流会非常大。我这里给MPPT参考电压加了一个斜坡软启动信号,斜坡时间设0.2s,让占空比逐渐接近稳态工作点。没有软启动的时候,我亲眼看着电流冲击直接冲到额定电流的十倍,保护逻辑误触发,一开始还以为是保护设计错了。

3. 电池系统与双有源桥变换器,松弛母线怎么稳住电压

3.1 锂离子电池模型与SOC初值设定

电池侧我用Simulink里Simscape Electrical的Battery (Table-Based)模块,类型选Lithium-ion。参数如下:

参数数值说明
额定电压320V电池组端电压
额定容量50Ah以1C放电率标定
初始SOC60%仿真起始电量
内阻0.5Ω等效串联内阻
响应时间30s用于动态特性模拟

这里想提醒一点:电池的内阻和SOC不是恒定值,Table-Based模型会依据查表数据动态变化,这比用固定电压源加内阻的简化模型可靠得多。比如电池在低SOC时端电压明显下降,DAB要稳住母线电压就必须调整移相角,这会直接影响保护逻辑看到的母线侧电流特征。如果只用一个理想直流源代替电池,你得到的仿真结果在保护配合上是没有说服力的。

SOC初值我设在60%,这是为了留出双向调节空间——既允许电池吸收光伏功率充电,也能在负载加重时放电。如果初始SOC设在95%,仿真很快就会撞上充电截止,DAB失去松弛能力,母线电压跟着失控,保护逻辑会被迫动作,这就不叫保护了,叫系统崩了。

3.2 DAB单移相控制的功率传输公式与参数选择

DAB变换器是这个系统的技术核心。它由原边H桥、高频变压器和副边H桥组成,两个H桥的输出电压都是高频方波,变压器原副边之间通过移相角φ来控制功率大小和方向。单移相(SPS)控制下,传输功率公式的标幺形式:

P = n × V1 × V2 / (2 × fs × L) × D × (1 - D)

其中V1是原边电压(电池侧320V),V2是副边电压(母线侧380V),n是变压器变比,fs是开关频率,L是变压器等效漏感,D是移相比,范围0到0.5。这个公式里的D就是两个H桥方波中心线之间的相位差,D越大,功率越大,而D=0.5时功率到达最大值。有意思的是,当D变成负数时功率反向流动,电池从放电平滑切换为充电。

变压器变比n我取380/320≈1.19,目的是让原副边电压在额定工作点接近匹配。选完变比后功率公式里的有效参数就剩fs和L了。我取fs=10kHz,L=60μH,代入公式算一下最大传输功率:

Pmax = 1.19 × 320 × 380 / (2 × 10000 × 60e-6) × 0.5 × 0.5 ≈ 60kW

这个最大功率容量远大于实际需要,意味着实际运行时D只需要取很小的值。本系统设计额定充放电功率5kW,反推需要的移相比:

5kW = 60kW × 4 × D × (1 - D)

解这个二次方程,D大约在0.022附近(低功率支路)。实际上考虑到损耗和控制器非理想性,我仿真中标定D=0.03对应5kW,比较合理。移相角很小意味着变压器电流和开关管应力都在很健康的范围,同时也给故障时快速增大功率留出了充足裕量。

3.3 电池DAB稳压控制与模式切换细节

电池DAB的控制目标非常简单明确:把直流母线电压稳定在380V。我采用的是输出电压外环加功率前馈的结构。电压外环检测母线电压,与380V参考值比较,误差经过PI控制器输出一个功率参考值,再除以当前电池电压和母线电压换算成移相比D给到DAB的PWM发生器。

这里有个工程细节很多人不注意:DAB的移相角在启动时绝对不能直接阶跃到目标值。我在刚开始调试时,给了一个开关信号直接启用DAB,瞬间的移相角跳变造成变压器原副边电压相位突然错开,冲击电流直接把仿真步长逼到极小,整个仿真变慢。后来我给移相比加了一个变化率限幅器,让D从零开始以每秒0.05的斜率爬升,启动过程柔和得多。

另一个细节是充电和放电模式的切换。电池需要充电时D为负值,实际控制逻辑里PI输出会越过零值。由于D本身连续变化,功率方向自然过渡,不会出现切换瞬间的断续状态。这个特性正是选DAB而非两个单向变换器背靠背的原因,后面在做保护逻辑时少处理了很多麻烦的切换暂态。

4. 保护策略设计、定值整定与故障场景仿真

4.1 直流保护定值的整定思路与表格

直流微电网保护中最常见的判据是电压判据和电流判据的组合。我在这套仿真里设置了四套保护:母线过压保护、母线欠压保护、线路过流保护、短路瞬动保护。定值整定原则是:正常运行时的最大扰动不得触及保护门槛,故障时的最小特征必须超过保护门槛,两者之间留出至少20%的裕度。

保护项目整定值动作延时整定依据
母线过压418V(1.1倍)50ms躲过MPPT扰动和电池充电暂态电压尖峰
母线欠压304V(0.8倍)100ms躲过负载投切导致的短时跌落,但故障时必须触发
线路过流150A(1.5倍额定)20ms躲过负载2kW阶跃时的冲击电流
短路瞬动300A(3倍额定)或di/dt超阈值5ms母线金属性短路时快速切断

这里整理定值的过程其实就是反复跑正常工况,把各种暂态记录下来的过程。我一开始过压阈值设的是410V,结果光伏从50%光照阶跃到100%时,MPPT追踪过程中的电压超调直接冲到了412V,保护误动。后来我把阈值调到418V才稳定躲过。

4.2 故障场景一:母线短路故障仿真

母线短路是最严重也最直接的场景。我通过在母线正负极之间并联一个很小阻值的电阻(0.1Ω)来模拟金属性短路,故障电阻由Breaker模块控制,在仿真时间t=3s时投入,持续0.15s后断开。

故障注入瞬间的观察结果:母线电压从380V骤降到接近零,短路电流瞬时飙升到额定电流的十倍以上。此时母线欠压保护在100ms延时内还没到,但短路瞬动保护的di/dt判据在几个毫秒内就动作了,直接把短路点上游的断路器断开。我把断路器模块(Breaker)设置在跳闸后保持断开(lock-out状态),这样故障切除后系统不会自动重合闸,更符合实际保护逻辑中“跳闸后需要人工或重合闸策略介入”的工程习惯。

调这个场景时最让我头疼的是:短路后DAB和Boost的控制环路同时看到母线电压为零,两个控制器都会输出最大功率尝试恢复电压,造成故障电流进一步加大。这在真实系统中是正常的——变换器就应该有故障电流贡献能力——但在仿真里会让断路器断开的瞬间产生巨大的电压尖峰(因为回路电感储能无处释放)。解决办法是在断路器两侧并联一条RCD(电阻-电容-二极管)缓冲支路,或者给Breaker增加一个辅助关断电阻参数,不然仿真会在断开瞬间因为数值突变而报错。

4.3 故障场景二:负载突变与光伏波动防误动验证

保护最怕的其实是误动——系统正常运行但保护乱跳。我在仿真里设计了两组正常扰动场景来检验保护定值的鲁棒性。第一组是负载投切:在t=2s时并联接入一个2kW的大负载,母线电压瞬间跌落,跌落深度大概到350V左右,持续几十毫秒后被DAB控制器拉回380V。第二组是光伏功率阶跃:把光照从1000W/m²瞬间降到500W/m²再恢复,功率差额由电池补充,母线电压出现短时波动。

这两组测试跑下来,欠压保护在100ms延时内正确返回,没有误动;过流保护没有被投切瞬间的电流脉冲触发,因为2kW负载冲击电流峰值大概在60A量级,远低于150A的过流阈值。验证完这两组场景,我才敢说这套保护定值有条件进入下一个阶段的故障测试。

4.4 故障后系统行为与恢复逻辑

故障切除后的系统行为同样不能忽略。短路瞬动保护动作后,母线电源只剩下光伏Boost一方,如果此时系统中有重整启动的逻辑,要防止光伏功率单独带载导致母线电压失控。我在仿真中设置了一个简单的恢复策略:故障切除、母线电压恢复到320V以上后,延时1s才允许DAB重新投入。这个延时并不是保护功能,但仿真结果中如果不加,DAB重新投入的冲击会让同一保护再次跳闸,变成往复振荡。这种情况在真实工程中也常见,保护配合里必须考虑自动重合或重新并网的条件比首次启动更苛刻。

5. 调试中踩过的坑与排查经验实录

5.1 仿真直接发散,先查求解器和模型参数

Simulink仿真最让人崩溃的问题是模型跑着跑着就发散,误差无限放大。我的经验是:先看一眼求解器设置。IGBT开关频率20kHz的Boost加10kHz的DAB,如果Powergui设成连续求解器,仿真步长会自动变得很小,跑0.1秒仿真要等半天;但如果设成离散定步长而步长太大,开关模态切换会产生数值振荡。

我的推荐配置:Powergui选离散仿真,步长Ts=5e-6秒。这个步长能保证20kHz和10kHz的PWM有足够的分辨率(每周期分别有10个和20个采样点),同时又不会太慢。如果模型里用了较高的开关频率,比如100kHz的DAB,步长就要缩到1e-6量级。

还有一个隐蔽的发散源:理想变压器。DAB里的变压器如果是理想模型而没有漏感L,功率传输公式里分母为零,控制环路的增益会荒谬地趋近无穷大。我遇到一次死活调不好PI参数的情况,排查到最后发现是变压器的漏感被我设成了0。

5.2 启动浪涌逼得保护误动,必须做软启动

我前面提到过Boost软启动,这里再强调一次完整的处理流程。整套系统上电时,母线电容初始电压为零,如果光伏Boost和电池DAB同时满负荷启动,冲击电流会非常恐怖,保护逻辑几乎必跳。我的做法是分阶段启动:

  1. 先只启动电池DAB,母线电压在0.5s内从零软启动到380V;
  2. 母线电压稳定后,启动光伏Boost软启动,MPPT参考电压从零斜坡爬升到MPP点;
  3. 最后接入负载,负载本身用理想开关控制接入时间。

分阶段启动耗费了仿真模型里0.5秒的初始化时间,但换来了非常干净的起点,后面的故障数据完全不受启动暂态污染。如果读者拿到一个模型,一跑就有保护信号动作,别急着看保护逻辑,先看看是不是启动顺序没安排好。

5.3 保护误动与拒动的排查顺序,先把原因分类

误动和拒动的排查思路完全不同。误动要找的是干扰源:是不是母线电压波动超过了阈值?是不是电流冲击超过了定值?这个时候把Scope里的波形拉出来跟保护逻辑输入对比,基本上可以快速定位。

拒动则要反过来看:是故障电流不够大?还是延时太长导致故障在检测到之前就被控制器调节回去了?直流微电网里有一种常见的现象我特别提示一下——故障点离DAB比较远时,线路电阻会限流,故障电流可能达不到瞬动保护的整定值,这时候只能靠欠压保护带延时切除,整个切除时间就会变长。我在仿真里刻意在线路中串过0.5Ω的电阻来模拟远端故障,结果瞬时保护确实没动,是欠压保护在100ms延时结束后动作的,这个行为跟理论预期一致,让我对模型的可信度很有信心。

还有一个保护复归的问题。断路器动作跳闸后,Simulink里Breaker的状态需要锁存。我用了一个简单的RS触发器来实现,断路器的控制信号是保护动作信号经过触发器锁存后的输出。如果不加锁存,故障信号一消失(比如欠压保护在短路被隔离后自然返回),断路器会立即重新合闸,把还在故障状态下的系统重新接上,产生二次冲击。这个坑在毕设里太常见了,请务必留意。

最后再分享一个小技巧:保护逻辑调试阶段,把所有保护的动作信号、当前的电压电流测量值、断路器的状态信号汇总到同一个Scope里显示,波形时间轴对齐之后,能非常直观地看到“故障发生→检测→延时→动作→隔离”的完整时序。我调试后期基本只看这一个Scope,排查效率比挨个信号翻高了好几倍。这套仿真模型严格来说只是直流微电网保护的一个基本框架,真要面向工程落地,还需要加上保护定值在线校核、分布式保护之间的通信配合、以及故障定位等后续层,但作为理解直流微电网保护机理的起点,这套仿真的价值已经非常足够了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询