模拟直流微电网保护,听起来像是毕业设计或者横向课题的标准配置,但实际上能把整条链路——光伏、电池、本地松弛母线、负荷、保护逻辑——在Simulink里跑通并且波形经得起推敲,这事儿没点耐心真下不来。我前前后后做过几个类似的微电网仿真项目,踩了不少坑,也总结了一套相对顺手的做法。这篇就把整个“本地松弛母线 + 光伏 + 锂电 + 直流负载”的保护仿真项目从头到尾拆开讲,包括为什么这么搭、每个模块怎么建模、保护判据怎么设计、Simulink里具体怎么配置,以及我实际调试中遇到的那些让人头疼的问题。
1. 项目概述与设计思路
1.1 先把这个项目到底做了什么说清楚
这个项目的核心任务,是在Simulink环境里搭建一个完整的直流微电网仿真平台,用来验证保护策略在故障工况下的动作行为。系统结构上分成了四个关键部分:本地松弛母线、光伏发电单元、锂离子电池储能单元、直流负载。
所谓松弛母线,在直流微电网里承担的职责和交流大电网里的平衡节点有些类似——它负责维持直流母线电压稳定,吸收或释放功率差额。在孤岛运行模式下,光伏和电池配合本地松弛母线共同维持系统电压,而保护策略则负责在故障发生时快速识别故障、隔离故障区域,防止整个系统电压崩溃或设备损坏。
我之所以说这类项目“听起来简单、做起来繁琐”,是因为每个子系统单独拿出来都有成熟的建模方法,但拼到一起之后,接口交互、控制协调、保护配合这些系统级问题才是真正的难点。你在仿真里会同时面对电力电子器件的开关暂态、控制环路的动态响应、保护逻辑的快速动作,三者相互耦合,任何一个环节处理不好,仿真结果都会失真。
1.2 为什么选择直流微电网架构
这几年直流微电网在数据中心、船舶供电、电动汽车充电站这些场景里越来越常见,原因是直流架构天然绕开了交流系统里最麻烦的频率同步、无功补偿和无功环流问题。光伏组件输出本来就是直流,电池也是直流,直流负载更是大量存在,把这些直接挂到直流母线上,少了好几级AC/DC变换,效率提升是实打实的。
但直流架构也引入了一个交流系统里不常遇到的大麻烦:故障电流没有过零点,电弧熄灭困难,短路电流上升速度极快。交流系统还可以等电流过零时让断路器自然熄弧,直流系统必须依赖电力电子器件主动切断电流,这对保护装置的速动性和可靠性要求高了一个量级。
所以在项目设计阶段,选择直流架构并不意味着简化问题,而是把挑战从“同步与稳定性”转移到了“故障检测与电流阻断”。保护策略的设计反而成了整个项目能否成立的关键。
1.3 保护需求的特殊性
直流微电网保护的特殊性主要体现在几个方面。第一是故障电流上升率极高,母线电容放电可以在微秒到毫秒级别把故障电流推到额定值的数倍甚至十几倍,保护必须在这之前完成检测和动作。第二是故障特征和正常运行工况之间的区分度不一定那么明显,比如负载突增也会引起母线电压跌落和电流增大,如果只盯着电压或电流阈值,很容易发生误动。第三是光伏和电池这类电源都有电力电子接口,故障期间换流器的控制策略会主动限制输出电流,这就导致故障电流的幅值并不像传统电力系统那样主要由短路容量决定,而是和控制策略强相关。
因此,整个保护仿真项目的关键不在于把故障波形“跑出来”,而在于你设计的保护判据能不能可靠地区分故障和正常运行,能不能在系统各种运行方式变化下保持选择性。这也是我在这篇文章里会花大量篇幅讲判据设计的原因。
2. 关键子系统建模拆解
2.1 光伏子系统:标准光伏模型与升压变换器
光伏阵列在Simulink里有现成的模块,但想要仿真结果合理,你必须理解模块背后的等效模型。Simulink里的光伏模块基于光伏电池的单二极管等效电路,关键参数包括开路电压、短路电流、最大功率点电压和电流,以及串联电阻、并联电阻和二极管理想因子。
我实际用下来,最稳妥的做法是按照你选定的光伏组件数据手册,把标准工况下的参数填进去,然后设置好光照和温度的变化曲线。很多初学者直接拿默认参数仿真,结果最大功率点功率跟预期差很远,原因就是没有做参数校准。组件短路电流一般和光照强度近似成正比,开路电压则随温度下降而升高、随温度升高而降低,这几个关系在仿真里会自动体现,但前提是你填入的基准参数必须真实可靠。
升压变换器的设计有三个关键点:电感值、电容值、开关频率。电感决定了输入电流纹波和变换器运行在连续还是断续模式,一般按下式计算:
L = Vpv × D / (fsw × ΔI_L)
其中D是占空比,fsw是开关频率,ΔI_L是允许的电流纹波。储能电容则按输入纹波电压要求来选,输入侧电容通常取几百到几千微法,具体取决于纹波约束。我一般取开关频率10kHz到20kHz,这样既不会因为开关频率太高导致仿真步长过小而拖慢速度,也不会因为太低让滤波器体积过大。
控制方面,光伏升压变换器最常见的是爬山法最大功率点跟踪(P&O MPPT),通过周期性扰动参考电压或占空比,观察功率变化方向来决定下一步扰动方向。仿真里我习惯用基于占空比的直接扰动,省掉一层电压环PI,收敛速度更快,逻辑也更容易调试。需要提醒的是,MPPT步长不能太大也不能太小,太大功率振荡明显,太小收敛太慢,仿真时间会被拖长。我通常先做一组开环扫描来确定最大功率点的大致位置,再据此选择步长。
2.2 电池子系统:锂离子模型与双有源桥变换器
电池的Simulink模型用的是基于Shepherd模型的等效电路,输入参数包括额定电压、额定容量、初始荷电状态(SoC)、内阻等。这套模型能反映电池端电压随SoC变化的特性曲线,也能给出充放电效率和热效应的大致趋势,虽然精度比不上电化学模型,但对系统级仿真完全够用。
电池接入直流母线的方式,我选了双有源桥变换器。之所以不用简单的Buck/Boost,是因为电池电压往往和母线电压不在一个等级,而且双有源桥自带电气隔离,可以在宽电压范围内实现高效率的双向功率传输。更关键的是,双有源桥通过两侧全桥之间的移相角来控制功率方向和大小,天然适合电池这种既可能充电又可能放电的单元。
双有源桥的功率传输公式是:
P = (n × V1 × V2 × φ × (π - |φ|)) / (2π² × fsw × Ls)
其中V1和V2是两侧直流电压,n是变压器变比,φ是移相角,Ls是串联电感折算到某一侧的电感值。这个公式有两个直接推论:第一,移相角为零时功率为零,移相角增大功率增大;第二,功率方向由移相角符号决定。这些特性让双有源桥的控制非常直观——你只需要控制移相角,就能同时实现功率方向和功率大小的调节。
仿真中电池的初始SoC直接影响仿真前期的系统行为。我习惯把电池初始SoC设在50%到70%之间,这样无论是充电还是放电都有足够的裕量,不会一上来就因为SoC越界触发保护。
2.3 本地松弛母线的作用与电压控制
本地松弛母线在这个系统里承担电压支撑角色。最简单也最常见的松弛母线实现方式,是一个电压源变换器加上闭环控制,维持母线电压在设定值附近。当光伏出力大于负载需求时,多余功率通过松弛母线吸收;当光伏出力不足时,由松弛母线补充差额。
但这里有一个取舍问题:如果松弛母线采用的是理想的直流电压源,那它实际上就是一个无穷大母线,电压完全恒定,故障时它提供的短路电流几乎是无限的。这种设定虽然能简化系统分析,但会掩盖换流器限流特性对保护带来的影响。我更推荐的做法是为松弛母线换流器设置一个合理的电流限制,模拟实际电压源换流器在过流时的限流行为,这样保护策略的验证才更有实际意义。
电压控制环路的参数整定遵循典型的工程设计方法:内环电流环做快,外环电压环做慢,内外环带宽一般拉开五到十倍。仿真里如果出现电压环振荡,优先检查内环电流环的响应是否够快,再看外环PI参数是否太激进。一个常见的错误是,电压环和电流环带宽没有拉开,导致两个环路耦合振荡,母线电压出现等幅波动。
2.4 直流负载建模
直流负载看起来简单,其实也有讲究。我用的是恒功率负载加电阻负载的组合,因为恒功率负载在故障或者母线电压跌落时会呈现负阻抗特性,也就是电压越低电流越大,这对保护判据和系统稳定性都有影响。
恒功率负载的建模方法是用一个受控电流源,电流设定为P_load / V_bus。问题在于当母线电压跌到很低的水平时,这个除法会让电流趋近于无穷大,仿真里几乎必然发散。所以必须在模型里设置最小电压限幅,当母线电压低于某个值(比如额定电压的50%)时,恒功率负载切换成恒阻抗特性,避免出现数值爆炸。
电阻负载就直接用可变电阻模块,可以在仿真中某时刻投切来模拟负载突变。负载突变在保护仿真里是一把双刃剑——它是测试保护防误动能力的好手段,但同时也是让很多不成熟保护策略误动作的元凶。我在做保护验证时,一定会设置一个负载突增和负载突减的工况,专门检验保护会不会在负载波动时误动作。
3. 直流微电网保护策略设计
3.1 典型故障类型与故障特征
直流微电网的故障类型主要分为极间短路(正负极之间)和极地短路(单极对接地之间)。极间短路是最严重的故障类型,故障电流由母线电容放电和电源馈流一起提供,电流上升率很高,母线电压几乎瞬间跌到接近零。极地短路相对轻微,但故障特征和正常不对称运行工况更难区分。
在实际的仿真验证中,我主要关注三个故障特征量:母线电压幅值、线路电流幅值、电流变化率di/dt。极间短路时,电压骤降和di/dt剧增几乎同时发生,这两个特征组合在一起是最可靠的保护判据来源。而极地故障由于电压跌落的幅度相对小,如果阈值设置不合理,很容易和负载突增混淆。
另外一个容易被忽略的特征是电压跌落的速度。故障引起的是近乎阶跃的电压跌落,而负载突增引起的电压跌落相对平缓,两者在跌落速率上有明显区别。这就是为什么很多人最终选择基于电压变化率du/dt的判断——它比单一电压阈值更抗负荷扰动。
3.2 保护判据的层次化设计
我采用的保护判据分为三层:第一层是主判据,第二层是方向判据,第三层是延时配合。主判据采用“电流上升率 + 过电流”双条件触发。单纯用di/dt容易在正常开关操作时误动,单纯用过电流又难以区分故障和过载,双条件同时满足才判定为故障,能有效降低误动率。
方向判据用于判断故障点位于保护的哪个方向。直流系统虽然没有交流系统那样天然带有相位信息的功率方向,但可以通过母线电压和线路电流的极性来构造方向特征。具体做法是:当电流从母线流向馈线,且这个电流在故障检测窗口内持续增长,就可以初步判定为正向故障。
延时配合则是借鉴交流保护的分级配合思想,靠近故障点的保护动作时间短,远离故障点的保护动作时间逐级放大。直流系统虽然强调速动性,但如果没有时间级差,就失去了选择性,一处故障可能导致多条馈线同时跳闸,扩大停电范围。
3.3 保护定值整定与配合逻辑
定值整定的逻辑是:启动阈值必须躲过最大的正常运行暂态,同时灵敏地反映最小故障情况。我在整定时会先做一组正常的负载突变仿真,记录母线电压和线路电流的最大冲击值,然后在这个基础上留出1.2到1.5倍的裕量作为启动阈值。
对di/dt阈值来说,故障时的di/dt一般比正常运行高一个数量级以上,所以阈值设置相对宽松,主要矛盾是抗噪声干扰。Simulink里的微分运算会放大数值噪声,如果滤波没做好,di/dt通道会频繁越限。我通常的做法是用一个截止频率合适的低通滤波器先对电流做预处理,再计算差分。
配合逻辑上,我会把所有保护安装在进线、馈线和变换器出口,形成一个树状保护结构。靠近母线的保护定值更大或者延时更长,越往负荷侧保护越灵敏越快。这样任何位置故障,都是离故障点最近的保护先动,上游保护只在它拒动时才作为后备动作。
3.4 故障隔离与系统恢复
保护动作之后的故障隔离,在仿真里用理想断路器模块实现。关键在于断路器断开后,故障区域和非故障区域之间不能还有电气连接,否则非故障区域会被故障区域拖垮。我在布置断路器时遵循一个原则:断路器和保护逻辑一一对应,每个保护动作就断开本区域所有的电源连接和负荷连接。
系统恢复策略分为主动恢复和被动恢复。被动恢复是故障排除后人工重新合闸,逻辑简单但恢复时间长。主动恢复则是保护动作后尝试自动重合闸,如果重合后短时间内再次检测到故障,则闭锁重合闸并发出故障隔离信号。我这个项目的仿真里实现了简单的主动重合逻辑,实测对瞬时性故障有效,但对永久性故障必须可靠闭锁,这个逻辑的临界状态需要反复测试。
4. Simulink仿真实现全流程
4.1 仿真环境与求解器配置
这个项目我用的是Simulink里的Simscape Electrical工具包来做电力电子主电路。第一件事就是选求解器。电力电子仿真涉及高频开关动作,模型具有强烈的刚性特征,我推荐使用变步长的ode23tb或者ode15s。这两个都是隐式算法,对刚性方程组的处理能力远优于普通的ode45。实际跑下来,ode23tb在速度和精度之间平衡最好。
步长约束方面,最大步长建议设置在开关周期的十分之一以下。开关频率10kHz对应开关周期100微秒,最大步长取10微秒,否则PWM波形的边沿细节会丢失,仿真结果会出现异常的尖峰或振铃。最小步长默认是自动的,但如果仿真出现“步长太短”的报错,通常说明模型里存在代数环或者数值刚度过强的问题,后面我会专门讲排查方法。
精度参数方面,相对误差我习惯设到1e-4,绝对误差设到1e-6。对电压等级是几百伏的系统,1e-6的绝对误差已经足够精细。如果仿真速度太慢,优先调大绝对误差而不是相对误差,这样对精确度影响更小。
4.2 主电路搭建与参数选型
主电路搭建遵循从简到繁的顺序。先把直流母线用一个理想直流电压源代替,把光伏升压变换器和电池双有源桥变换器分别接入,用电阻负载验证系统能正常运行。这一步跑通了,再接入光伏阵列的详细模型、电池模型、恒功率负载,最后再把松弛母线从理想电压源替换为电压源换流器加控制。
母线电容是主电路里最关键的被动元件。它有两个作用:一是滤除变换器产生的开关纹波,二是在故障瞬间提供瞬态短路电流的通道。母线电容越大,母线电压越平稳,但故障时电容放电电流也越大,对保护装置的电流耐受要求越高。我在仿真里取母线电容在几百微法到几千微法之间,具体值按系统功率等级确定。一个经验公式是每千瓦功率对应50到100微法的母线电容。
双有源桥变换器的参数按功率传输公式反推。给定额定功率、两侧电压、开关频率之后,串联电感就确定了。值得提醒的是,仿真里变压器模型要设置合适的漏感,因为双有源桥的功率传输特性主要由两侧桥臂之间的串联电感决定,这个电感可以替代变压器漏感,但如果变压器模型里已经内置了漏感,外接电感就应当相应减小,否则移相角的功率传输特性会偏离设计值。
4.3 控制策略的分层实现
控制策略我分了三层来实现,每一层都有独立的调试方法。最底层是变换器本地的电流控制环,负责让电感电流跟踪给定值。中间层是模式切换逻辑,负责判断电池当前应该工作在恒压模式、恒流充电模式还是恒功率放电模式。最上层是能量管理逻辑,根据母线电压偏差和光伏出力状态决定功率流向。
PWM生成我直接用Simulink自带的PWM发生器,配合三角载波比较。载波频率就是选择的开关频率,注意载波的采样步长要足够小,保证载波波形平滑,否则占空比会出现量化误差,导致输出电压纹波异常。
保护逻辑放在独立的子系统里,和主控制策略隔离。这样做的好处是保护逻辑的调试不会打扰控制策略的运行,而且可以单独触发故障进行测试。保护逻辑内部按“采样—滤波—判据计算—定时器—跳闸信号”的顺序排列,每一步用一个独立子系统实现,这样能清晰地看到信号流,排查问题时非常方便。
4.4 故障注入与保护动作验证
故障注入是验证保护的核心手段。我在母线与各馈线之间放置了受控开关,通过外部信号在指定时刻闭合开关,模拟极间短路故障。故障电阻是重要参数,极间短路一般用0.1到1欧姆的小电阻模拟,金属性短路的极限情况用0.01欧姆。
验证流程我固定为四步:第一步,做负载突增测试,确认保护不误动;第二步,做母线远端极间短路,确认保护正确动作且跳闸时间满足要求;第三步,做近端极间短路,确认保护能够区分故障距离;第四步,做故障点变化的测试,确认保护的选择性。每步测试都要记录母线电压波形、故障电流波形和跳闸信号,方便回看分析。
跳闸信号的动作时间由两部分组成:检测时间加断路器动作时间。仿真里断路器动作时间我设置在20毫秒,检测时间取决于判据的快慢。如果总动作时间超过50毫秒,就需要重新审视判据的灵敏度和信号链路是否延迟过大。直流系统的目标动作时间一般在几毫秒到几十毫秒级别,否则故障可能已经造成设备损坏。
4.5 关键参数整定实例
分享一组我实测有效的参数作为参考,系统规模是母线电压380V,光伏额定功率5kW,电池容量30Ah,负载最大5kW。
母线电容取2200微法,光伏升压变换器电感取2毫亨,开关频率16kHz,电池双有源桥开关频率20kHz,串联电感折算值约20微亨。保护定值上,过电流阈值设为额定电流的2倍,di/dt阈值设为额定电流变化率的20倍/秒,低电压阈值设为额定电压的70%。以上数值是基于特定系统规模整定的,直接套用到别的系统时必须按比例换算。
换算方法并不复杂:电流阈值按额定电流比例换算,电压阈值按额定电压比例换算,di/dt阈值要考虑实际线路电感和电容的参数差异。但需要特别强调的是,仿真里的整定值在真实系统中还要经过互感器变比、采样延迟、滤波器时间常数的修正,直接搬值的做法在工程上是不可取的。
5. 常见问题与排查技巧实录
5.1 仿真发散与步长过小问题
这是我在多个项目里遇到频率最高的问题。表现是仿真开始后很快报错“步长低于最小步长”,或者波形直接飞出合理范围。排查路径通常是这样的:先检查是否有代数环,比如是否出现了某个量既作为输入又作为输出来自同一时钟步的计算;再检查恒功率负载的受控电流源在母线电压跌落后是否失去了数值控制;最后检查PWM载波与求解器最大步长是否匹配。
一个很隐蔽的发散源是变压器的理想模型在双有源桥里产生的数值冲击。双有源桥的变压器两侧全桥如果同时导通,会在变压器绕组上产生极高的电压变化率,而理想变压器模型对这种瞬态的数值处理很脆弱。解决方法是给变压器并联一个很小的激磁电感或者使用带饱和特性的变压器模型,让数值计算有个缓冲。
5.2 保护误动与拒动
误动的典型原因,一是阈值设置过紧,正常负载波动就触发了保护;二是滤波不够,微分信号被噪声干扰带偏。拒动的典型原因则是定值过松或者故障电阻太大,导致故障特征不满足判据。
我实际遇到过的一个棘手情况是:光伏侧MPPT的扰动导致母线电压出现周期性小幅波动,低电压判据原本不动作,但配合了di/dt判据之后,MPPT扰动引发的电流变化恰好触发了di/dt阈值,保护出现周期性误动。排查了很久才发现是两个判据在特定相位上产生了叠加效应。最后的解决方案是给di/dt通道增加了持续时间条件,要求高di/dt持续超过1毫秒才算有效,单纯一个瞬态尖峰不再触发保护。
5.3 波形异常与振荡排查
如果你看到母线电压在正常运行时就出现明显振荡,首先怀疑两个环路之间的带宽耦合。我的排查方法是,把外环PI增益降到原来的一半甚至更低,如果振荡消失,说明带宽分离不够,需要进一步拉开内外环的带宽比。如果降低增益后振荡依然存在,就要检查滤波电容和线路电感之间是否存在LC谐振,必要时在控制环路里增加陷波器。
还有一种波形异常是开关纹波过大,表现为电压波形上有明显的高频锯齿。这不是控制问题,而是滤波参数问题。优先加大母线电容,其次考虑增加一个小的高频滤波电容。需要注意的是,单纯减小开关频率也能降低纹波,但会增加变换器的电流纹波,需要同时检查电感电流波形。
5.4 仿真速度优化建议
仿真速度太慢在这个项目里几乎必然遇到。我的优化顺序是:先把最大步长能放宽就放宽,在保证波形精度前提下尽量提高最大步长;其次检查是否有非必要的快速开关器件,比如有的旁路开关其实可以用理想开关代替;最后考虑把电气模型从平均值模型简化处理,比如用平均值的变换器模型代替详细开关模型,仿真速度可以提升一个数量级。
如果还需要更多速度,可以考虑把MPPT的扰动周期从每秒几次提高到几十次甚至上百次,因为MPPT响应速度在这个项目中不是核心关注点,慢速的MPPT能够大幅降低控制环路的仿真负载。我自己做保护特性研究时,甚至会把MPPT直接禁用,让光伏工作在固定工作点,等保护策略验证完毕之后再恢复MPPT功能来做系统级验证。
6. 实测心得与扩展方向
6.1 项目调试中的几个关键体会
做这个项目最深的体会是:保护仿真的难点不在于保护逻辑本身,而在于你能否构造一个足够真实的故障环境来测试保护。如果故障时电源的限流行为不真实、负载的动态特性不真实、线路参数过于理想化,那么保护策略即使表现得再完美,也说明不了它真的有效。
具体到实际操作,我建议在项目一开始就把故障注入的测试用例定义清楚,而不是等系统搭建完成后再想。这样主电路和保护的接口设计都会更合理,避免后期为了注入故障而到处改模型结构。另外,仿真日志的记录非常重要,我习惯在每个关键节点都加上注释和信号标记,回看波形时能迅速定位是哪一段逻辑在动作。
6.2 后续可以继续扩展的方向
这个项目做完之后,有不少扩展方向值得探索。一是把集中式保护改为分布式保护,加入通信延迟的影响评估,这更贴近真实工程中基于通信的保护方案。二是加入直流断路器的详细模型,比如机械式直流断路器或固态断路器,研究断路器的开断能力和吸能支路设计。三是在现有系统上增加第二条馈线和环网结构,验证网络重构能力,这是提高系统可靠性的重要手段。四是把模型从离线仿真迁移到硬件在环测试环境,和真实的控制器和保护装置联调,这几乎是工程落地的必经之路。
我个人在实际操作中还有一个体会:仿真模型的构件过程要养成版本管理的习惯,改保护定值、换控制参数之前先把能跑通的版本保存下来。很多时候排查问题的过程其实是来回对比不同版本之间的差异,如果没有版本记录,排查效率会低很多。这个习惯帮我省下了大量重复调试的时间。
如果这个项目把你带进了微电网仿真的坑,建议下一步把目光放到更复杂的工况上:光照突变、负荷投切、通信故障、电池SOC越界,这些场景组合起来基本就是一个微型电网调度与保护的大全集。研究得越深,越能体会到直流微电网保护是一个系统问题,不是套一个阈值判据就能解决的。