尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

简单配电网故障电流分析:基于Matlab/Simulink的仿真方法

简单配电网故障电流分析:基于Matlab/Simulink的仿真方法 简单配电网故障电流分析用 Matlab/Simulink 仿真来做最大的好处不是省掉手算而是能把故障从发生到切除的全过程都看清楚。短路电流的有效值、冲击值、衰减波形、非对称程度都能在模型里直接拉出来看这对后面理解继电保护整定、断路器选型和运行方式调整非常有用。这篇文章不写复杂的大电网模型就把一个最简单的辐射状配电网拆开从建模、设置故障、观察波形到批量扫描故障点完整走一遍适合刚接触电力系统仿真、需要做课程设计或毕业设计的人。我更建议不要把仿真当成“能跑出图就结束”。做故障电流分析真正有价值的不是那张波形图而是你能不能解释清楚为什么故障电流是这个量级为什么单相接地和三相短路波形差这么多为什么故障位置稍微变一下短路电流下降得那么明显。下面按实际踩过的顺序拆一遍。1. 一开始就要搞清楚简单配电网故障电流分析到底要“仿什么”1.1 故障电流分析的核心是“短路后系统的动态响应”先明确一个概念故障电流分析重点不是稳态运行。仿真要看的是配电网在某个位置发生短路之后电源、线路、负载和故障点构成的回路里电流和电压如何变化。在简单配电网里最常见的故障是短路故障包括三相短路ABC 三相直接短接两相短路AB、BC 或 CA 两相直接短接两相接地短路两相短接同时接地单相接地短路某一相直接接地不同故障类型产生的故障电流差别很大。三相短路通常最严重短路电流最大对称度高单相接地故障电流大小取决于中性点接地方式两相短路电流介于某些场景之间但带有明显的非对称特征。这些差异手算能算稳态值却很难看到暂态过程。Simulink 可以展示从短路发生到系统重新稳定的完整波形。1.2 为什么用 Simulink 而不是只算公式教材里的短路电流计算公式比如三相短路电流等于电源电压除以短路回路总阻抗这个只能得到稳态近似值。实际故障电流在刚发生的几个周波内会有直流衰减分量、非周期分量波形明显偏在一侧这会直接影响断路器的开断能力和保护动作时间。Simulink 可以把这个暂态过程仿真出来这是它最大的价值。另外配电网的中性点接地方式、过渡电阻、故障点位置、负载大小都会改变故障电流。手动把这些参数全部算一遍很费时间Simulink 里调参数重新仿真就行对比起来很快。1.3 你要交付的结果通常是什么做这一类仿真最后一般要交付三样东西Simulink 模型文件.slx故障电流波形图包括三相电流、电压波形对短路电流特征的分析例如有效值、最大值、衰减时间、保护整定建议所以一开始建模型时就要把测量模块和数据导出通道留好。不要等模型快做完了才发现 Scope 里的波形没法导成数据。2. 搭建模型前先把环境和建模路线理清楚2.1 需要的软件环境Simulink 本身是 Matlab 的一部分做配电网仿真还需要电气相关的模块库。现在主流做法是使用 Simscape Electrical 或者 Simscape Power Systems。早期版本叫 SimPowerSystems很多老教程用的这个名称。模块库名称可能因为版本差异而不同但基本模块都差不多。建议先确认自己的 Matlab 版本能不能打开 Simscape Electrical并确认这几个模块能找到Three-Phase Source三相电源Three-Phase Transformer三相变压器如果有需要Three-Phase Series RLC Branch / Three-Phase RLC Load线路和负载Three-Phase Fault三相故障发生器Three-Phase V-I Measurement三相电压电流测量Scope示波器Powergui电力系统图形用户界面注意找不到 Three-Phase Fault 模块时先检查模块库是否已经安装了 Simscape Electrical不要急着重装 Matlab。2.2 最简单的配电网模型结构很多教材和课程设计采用的都是“单电源辐射状配电网”结构这也是最经典的入门模型结构如下三相电源 - 变压器可选 - 线路1 - 负载1 - 分支线路2 - 负载2故障点可以接在馈线中间也可以接在负载端。为了模拟故障用 Three-Phase Fault 模块接在某一位置设置故障开始时间和持续时间。这样模型既能模拟正常运行也能模拟故障过程。我不建议一开始就把模型做得太复杂比如加好几个变压器、多条联络线、分布式电源。先跑通一个最简单模型再逐步加分支这样排查问题会容易得多。2.3 电压等级和参数设计简单配电网最常见的电压等级有 380V 低压系统和 10kV 中压系统。做入门级故障电流分析用 10kV 单电源辐射状配电网就很合适参数可以按常见 10kV 配电网经验值来设置参数参考设置说明电源线电压10.5 kV比标称 10kV 略高模拟发电机升压后的出口电压系统频率50 Hz中国电力系统标准频率线路长度5 km ~ 20 km架空线路常见长度线路单位阻抗0.1 j0.35 Ω/km常见架空线参数范围负载功率0.5 MW ~ 2 MW根据模型规模调整故障类型三相短路 / 两相短路 / 单相接地用 Three-Phase Fault 模块配置如果你的课题是 380V 低压配电网就把电压改成 380V线路参数改为低压电缆参数。核心逻辑不变只是数量级变化。3. 在 Simulink 里搭建简单配电网模型的完整步骤3.1 新建模型并放置电源模块打开 Matlab点击 Simulink选择新建空白模型然后从模块库中拖入以下模块Simscape - Electrical - Specialized Power Systems - Three-Phase SourceSimscape - Electrical - Specialized Power Systems - Elements - Three-Phase FaultSimscape - Electrical - Specialized Power Systems - Measurements - Three-Phase V-I MeasurementThree-Phase Source 设置时建议把“Internal connection”选为 Yg中性点接地。这样电源侧有一个明确的中性点便于后面观察单相接地故障。3.2 搭一条最简单的单馈线以 10kV 系统为例先把模型搭成“电源-线路-负载-故障”串联结构Three-Phase Source 连接到 Three-Phase V-I Measurement。测量模块后面接一条线路线路用 Three-Phase Series RLC Branch 代替。线路末端接 Three-Phase Parallel RLC Load 作为负载。在线路末端并联一个 Three-Phase Fault 模块用于模拟故障。这里的线路模型是集总参数不是分布参数。对十几公里以内的简单配电网故障分析先用电抗电阻串联就可以了。如果想更精确可以用 PI Section Line 模块但要自己填单位长度阻抗和电容参数会多一些。3.3 线路和负载参数设置双击 Three-Phase Series RLC Branch把 Branch type 选为 RLC然后设置 R、L、C 参数。例如一条 5km 的 10kV 架空线路单位阻抗按 0.1 j0.35 Ω/km 估算R 0.5 ΩL 0.35 / (2 * pi * 50) H大概 0.0011 HC 可以先设为 0避免引起不必要的暂态振荡负载用 Three-Phase Parallel RLC Load设置三相额定电压 10kV频率 50Hz有功功率 1MW无功功率 0.5 Mvar。负载参数会影响短路电流波形尤其是故障后系统从故障状态恢复的过程。3.4 故障模块设置Three-Phase Fault 是故障电流分析里面最关键的模块。双击后能看到三相各自的故障接线端中间有接地点选项。常用设置Fault type选择 Fault between phase A and ground单相接地选择 Three-phase fault三相短路Transition status设置 switch on 和 switch off 时间Transition time(s)例如 0.05表示从 0.05 秒开始故障Fault resistance Ron过渡电阻单位欧姆Ground resistance Rg接地电阻我一般把故障开始时间设在 0.05s仿真时长为 0.2s 或 0.3s。0.05s 之前系统已经稳定运行0.05s 时故障发生这样方便对比故障前后波形。如果三个切换开关都切换到“闭合”三相之间全部短接就是三相短路。如果只让 A 相接地其他两相不动作就是单相接地故障。注意Three-Phase Fault 模块里每个开关都分别对应一相与故障节点之间的连接理解这一点设置非对称故障时就不会乱。3.5 测量、示波器和 PowerguiThree-Phase V-I Measurement 模块用来测量三相电压和电流。输出到 Scope 之前建议先用 Demux 或者 Bus Selector 把要看的信号分开。直接塞一整组三相信号到 Scope 里也能显示但命名很不方便。Simulink 的电力电子和电力系统仿真基本都要求放置 Powergui 模块。Powergui 决定了仿真步长和求解方式。双击 Powergui可以设置Simulation typeContinuous 或 DiscreteSolver type通常选择自动或者改成 ode23tb如果是离散仿真还需要设置采样时间对大多数配电网故障仿真选择 Continuous 即可。如果仿真速度很慢再改成 Discrete采样时间设在 1e-5 到 1e-6 秒之间。要让故障电流数据能导入 Matlab 工作区不建议从 Scope 里手动导出。更稳的方式是使用 To Workspace 模块或者直接在 Three-Phase V-I Measurement 输出后接一个 To Workspace 模块把三相电流保存成结构化数据。比如Three-Phase V-I Measurement - 电流信号- To Workspace 模块在 To Workspace 模块中Variable name 填fault_currentSave format 选 Timeseries。这样仿真结束后工作区就会多出一个 fault_current 变量可以直接用 Matlab 脚本做进一步计算。4. 典型故障仿真流程和结果判断方法4.1 三相短路故障看最大短路电流设置 Three-Phase Fault 为三相短路仿真时间设为 0.2s故障开始时间 0.05s故障电阻设为 0.01Ω。运行仿真后Scope 里查看三相电流波形。正常时三相电流是对称正弦波故障发生时电流突然增大。由于回路存在电感电流不能突变所以故障瞬间会伴随直流分量波形可能出现明显不对称前几个周波电流峰值可能超过稳态短路电流。判断标准故障后电流是否大于故障前电流故障相电流是否明显增大三相短路时三相电流基本对称但可能都有偏置如果波形出现大量高频尖刺通常是求解步长太大或者线路电感设置过小需要减小步长或者加入小电阻限制数值振荡。4.2 两相短路故障看非对称特征将 Three-Phase Fault 设置为 AB 两相短路其余相不动作。观察 A 相和 B 相电流明显增大C 相电流基本不变或者接近负载电流。两相短路电流比三相短路电流小但同样会对线路造成较大冲击。仿真时要注意保护动作逻辑。很多课程设计会要求根据故障电流整定过电流保护两相短路故障下保护装置应该能识别到非对称状态判断出故障相。4.3 单相接地故障受中性点接地方式影响单相接地故障电流与中性点接地方式密切相关。如果中性点直接接地单相接地短路电流较大接近三相短路电流。如果中性点不接地单相接地时流过故障点的电流很小主要是线路对地电容形成的小电流。如果中性点经消弧线圈接地故障电流会更小但会产生其他暂态过程。简单模型里如果要模拟中性点不接地就把 Three-Phase Source 的 Internal connection 选为 Yn 或直接不接地。Single-phase ground fault 的仿真往往比三相短路更值得研究因为波形更复杂分析起来也需要结合序分量概念。4.4 用 Matlab 脚本计算故障电流有效值和最大冲击电流仿真结束后可以通过脚本从 Timeseries 数据里计算故障电流有效值。例如假设 fault_current 是 4×1 timeseries 数组前三行分别是 A、B、C 三相电流第四行通常是不需要的某路输出。可以用类似下面的逻辑% 假设 fault_current 是按行保存的 timeseriesA相电流为第1行 t fault_current(1).Time; iA fault_current(1).Data; % 找出故障发生后 A 相电流的最大绝对值 idx t 0.05; iA_fault iA(idx); peak_A max(abs(iA_fault)); % 计算故障后稳态段的 RMS 值 iA_steady iA_fault(t(idx) 0.1); rms_A rms(iA_steady); fprintf(A相故障电流峰值: %.2f A\n, peak_A); fprintf(A相故障电流有效值: %.2f A\n, rms_A);这个脚本只是示例。不同版本、不同 To Workspace 配置fault_current 的数据格式可能不同建议先用 size、whos 查看变量结构再写索引。注意不要因为波形看起来正常就跳过数值分析。故障电流的峰值和有效值才是判断保护整定和断路器开断能力的重要依据。5. 批量扫描故障位置和故障电阻画出电流变化曲线5.1 为什么要做多场景扫描单次故障仿真只能看到某一个点、某一种参数下的电流。实际研究时经常要回答这类问题故障点离电源越远短路电流下降多少故障电阻增大短路电流如何变化哪一段馈线发生两相短路时电流仍可能超过保护整定值这些都需要批量扫描。Matlab 里可以用sim函数反复调用 Simulink 模型每次修改故障位置或故障电阻然后记录结果。5.2 批量仿真前先改模型参数接口批量扫描不方便直接改 Simulink 模块里的固定参数更合理的方式是把参数变量化。例如在模型里把 Three-Phase Series RLC Branch 的线路电阻填成line_R在调用 sim 函数之前先通过模型工作区给这些变量赋值。具体做法是在模型资源管理器里添加参数line_R并把模块参数引用为line_R。然后在 Matlab 脚本里% 模型名 model simple_distribution; % 故障电阻扫描数组 Rg_list [0.01, 0.1, 1, 10, 50]; peak_currents zeros(size(Rg_list)); rms_currents zeros(size(Rg_list)); for i 1:length(Rg_list) % 更新模型工作区变量 faultRg Rg_list(i); % 运行仿真 simOut sim(model, StopTime, 0.2); % 提取 fault_current iA simOut.get(fault_current); t iA.Time; data iA.Data; % 故障开始后 idx t 0.05; peak_currents(i) max(abs(data(idx))); rms_currents(i) rms(data(idx)); end plot(Rg_list, peak_currents, -o); xlabel(过渡电阻/接地电阻 (Ω)); ylabel(故障电流峰值 (A));上面是典型的脚本框架。如果你用的是 Simulink Save output to workspace 功能请先确认返回对象的数据结构。不同版本在simOut.get后拿到的可能是timeseries也可能是数组需要实际跑一次再调整。5.3 扫描结果怎么判断故障电阻越大短路电流越小。这个趋势在仿真中如果能清晰体现说明模型参数设置基本合理。如果扫描结果出现“电阻增大电流反而增大”的异常优先检查模型参数是否被覆盖或者仿真变量是否存在数据混淆。故障位置也可以扫描办法是把模型中的线路拆成两段电源到故障点一段故障点到负载一段。分别设置不同的线路长度变量然后让故障点位置参数不断变化。这个实现稍微复杂一点要先规划好故障点放在哪条支路上。5.4 结果导出和报告整理在 Simulink 环境中可以用export2graphics或者直接saveas导出波形图。但更推荐用 Matlab 画图数据更干净适合放在论文里。可以画以下图三相短路时三相电流波形单相接地时故障相电压和电流波形故障电流峰值随故障电阻变化的曲线两相短路时两个故障相电流对比导出图片用exportgraphics(gcf, fault_current_scan.png, Resolution, 300);图片命名按场景编号来不要用“未命名”或“图1”这种无法对应参数的文件名。否则后面整理报告时很容易混乱。6. 常见报错、排查顺序和边界提醒6.1 仿真启动报错先看模块库和版本如果在启动仿真时出现“Invalid setting”或者找不到某个模块先检查是否安装了 Simscape Electrical是否使用了当前版本已移除的模块名称模型里是否存在未连接的端口Powergui 是否已放置最常见的坑是直接从网上复制老版本截图里的模块名结果当前版本改名了。例如 SimPowerSystems 改名为 Simscape Power Systems很多老教程还叫原来的名字。模块功能一样界面路径不一样。6.2 波形发散或振荡严重先调求解器而不是改故障参数刚搭建的配电网模型经常出现波形发散表现为电流迅速增大到数值非常大然后报错。这时不要只怀疑故障电阻设置先做这些检查检查线路电感是否设置成了 0。纯电阻回路仿真容易发散因为电流可以突变。检查负载是否为纯有功无功功率太小也可能导致电压波动。检查仿真步长是否过大。连续模式下如果使用自动步长仍发散可以固定最大步长例如 1e-5。检查 Powergui 的 Solver type 是否适合模型。电力系统模型一般用 ode23tb 效果较好。6.3 Scope 里看不到波形或者数据格式不对Scope 里看不到波形首先查模块连接是不是把测量模块接反了是不是信号线是虚线如果是 To Workspace 导出后工作区变量不对用whos查看变量名和数据类型。如果保存格式是 Array数据格式是“总仿真步数 × 通道数”如果保存格式是 Timeseries则每个通道一个 timeseries。这两种格式处理方式不同不要盲目套脚本。6.4 仿真结果和手算值差很大可能是模型简化问题Simulink 仿真结果和教材公式手算结果不完全一致是正常的。因为仿真包含了暂态过程、线路电磁储能、负载变化等真实因素。手算稳态短路电流通常忽略直流分量和暂态衰减而仿真波形里包含了这些。如果差值过大重点检查线路阻抗是否换算正确故障电阻是否设置太大电源电压是否用了相电压但公式里用线电压负载是否影响了故障前工作点对简单配电网故障前空载和带负载两种情况下的短路电流会有差异尤其是负载较大时。这不一定是模型错误反而可能是真实系统里需要考虑的因素。6.5 要区分“仿真能跑”和“仿真可信”最后提醒一个很容易忽略的边界能跑出波形不代表参数可信。做故障电流分析时建议每一步都留下对照记录比如故障前稳态电流是多少短路电流有效值在哪一个范围内故障结束后系统是否回到稳定状态。简单配电网故障仿真的价值不是模型越复杂越好而是你能用最简单模型把故障电流的量级和变化趋势讲清楚。先把单电源辐射状配电网跑明白再扩展成多分支、含变压器、含分布式电源的模型会是更稳妥的学习路径。如果在仿真过程中遇到“波形显示正常但数值分析结果很奇怪”的情况我的排查顺序一般是先看输入数据的时间轴再看故障区间索引最后检查参数变量是否被覆盖。多数问题不是 Simulink 本身出了问题而是数据和参数没有对齐。把这一步理顺你的配电网故障电流分析项目就完成了一大半。
返回列表