变压器差动保护MATLAB/simulink仿真 变压器差动保护仿真➕报告
变压器差动保护MATLAB/simulink仿真
变压器差动保护仿真➕报告
第一部分:Simulink 仿真模型搭建指南
以下是变压器差动保护的Simulink模型搭建步骤及核心代码,包含模型参数设置、差动逻辑实现和仿真分析:
一、Simulink模型搭建
打开MATLAB,新建Simulink模型,添加以下模块(来自Simscape Electrical库):
电源模块(Three-Phase Source):设置电压230kV,频率50Hz,Y接法。
变压器模块(Three-Phase Transformer (Two Windings)):设置变比230kV/13.8kV,接法D11(高压侧Delta,低压侧Wye)。
故障模块(Three-Phase Fault):设置故障类型(相间短路、接地短路等),故障时间0.2s~0.4s。
测量模块(Three-Phase V-I Measurement):分别测量变压器两侧电流。
信号处理模块(Gain、Math Function、Relay):用于电流折算、差动电流计算和保护动作判断。
连接模块:
电源→变压器高压侧→故障模块→变压器低压侧→负载(可选)。
测量模块分别接在变压器两侧,输出电流信号到信号处理模块。
参数设置:
变压器:额定容量100MVA,短路阻抗10%。
故障模块:设置故障电阻0.001Ω(近似金属性短路)。
采样时间:设置为1e-6s(保证波形精度)。
二、核心代码(MATLAB Function模块)
在Simulink中添加MATLAB Function模块,实现差动保护逻辑(基于比率制动特性):
matlab
function Trip = fcn(Ih, Il, Krel, Kbr, Iop_min, Ir_min)
% Ih: 高压侧电流(折算后)
% Il: 低压侧电流(折算后)
% Krel: 可靠系数(通常0.2~0.3)
% Kbr: 制动系数(通常0.5)
% Iop_min: 最小动作电流(通常0.2~0.3倍额定电流)
% Ir_min: 最小制动电流(通常0.5倍额定电流)
% 计算差动电流和制动电流
Id = abs(Ih - Il); % 差动电流(幅值)
Ir = 0.5 * (abs(Ih) + abs(Il)); % 制动电流(幅值)
% 比率制动特性判断
if Id > Iop_min && (Id > Krel * Ir || Ir < Ir_min)
Trip = 1; % 保护动作(输出1)
else
Trip = 0; % 无动作(输出0)
end
end
三、仿真分析与结果验证
设置仿真参数:
求解器:ode23tb(适合电力系统仿真),仿真时间0.5s。
采样点数:设置为5000点(保证波形清晰)。
仿真场景:
正常运行:无故障,观察差动电流是否接近0(仅剩不平衡电流)。
内部故障:设置A相接地短路,观察差动电流是否超过动作值,保护是否动作。
外部故障:设置变压器低压侧外部短路,观察差动电流是否被制动特性闭锁。
结果分析:
正常运行时,差动电流幅值<0.1倍额定电流(由励磁涌流和测量误差引起)。
内部故障时,差动电流迅速上升,保护在20ms内动作。
外部故障时,制动电流增大,差动电流被有效抑制,保护不动作。
四、仿真报告撰写要点
摘要:简述变压器差动保护的原理、Simulink模型搭建方法及仿真结果。
引言:介绍变压器保护的重要性及差动保护的优势。
模型设计:详细描述Simulink模型的模块选择、参数设置及连接方式。
仿真分析:展示正常运行、内部故障、外部故障时的电流波形及保护动作情况。
结论:总结仿真结果,验证差动保护的有效性,并提出优化方向(如二次谐波制动、波形对称性判据等)。
五、完整代码(含参数设置)
% 变压器参数
Sn = 100e6; % 额定容量100MVA
U1n = 230e3; % 高压侧额定电压230kV
U2n = 13.8e3; % 低压侧额定电压13.8kV
I1n = Sn / (sqrt(3) * U1n); % 高压侧额定电流
I2n = Sn / (sqrt(3) * U2n); % 低压侧额定电流
% 差动保护参数
Krel = 0.2; % 可靠系数
Kbr = 0.5; % 制动系数
Iop_min = 0.3 * I1n; % 最小动作电流
Ir_min = 0.5 * I1n; % 最小制动电流
% Simulink模型参数设置(在模型中配置)
% 电源:Voltage=230e3, Frequency=50
% 变压器:Winding 1: Delta, Winding 2: Wye-grounded, Turns ratio=230e3/13.8e3
% 故障模块:Fault type=Phase-to-Ground, Resistance=0.001
% 采样时间:1e-6
通过上述步骤,你可以在MATLAB中搭建变压器差动保护的Simulink模型,并通过仿真验证其在不同故障场景下的动作特性。如需进一步优化(如二次谐波制动、五次谐波闭锁等),可在MATLAB Function模块中添加相应逻辑。“电源-变压器-故障模块-保护装置”的系统。
模型拓扑结构
在 Simulink 中使用 Simscape -> Electrical -> Specialized Power Systems 库中的模块。
电源侧 (Source): 三相理想电压源 (230kV)。
变压器 (Transformer): 三相变压器(双绕组),接法设为 D11 (Delta-Wye),变比 230kV/13.8kV。这是最常见的需要相位补偿的场景。
负载/故障 (Load/Fault): 三相RLC负载 + 三相故障断路器模块。
测量 (Measurement): 在变压器高压侧和低压侧分别放置“三相V-I测量”模块。
保护逻辑 (Protection Logic):
使用 Gain 模块进行变比折算(将低压侧电流折算到高压侧)。
使用 Matrix Concatenate 和 Demux 分离 A, B, C 三相。
核心算法: 计算差动电流 (I_{diff}) 和 制动电流 (I_{rest}).
差动保护算法实现 (使用 MATLAB Function 模块)
在 Simulink 中放入一个 MATLAB Function 模块,将高压侧电流 (I_1) 和低压侧折算后的电流 (I_2) 输入进去。
核心代码 (放入 MATLAB Function 模块中):
function Trip = Differential_Protection(I1, I2)
% I1: 高压侧电流 (相量或瞬时值)
% I2: 低压侧电流 (折算后)
% Trip: 跳闸信号 (1为跳闸, 0为不跳闸)
%#codegen % 1. 计算差动电流 Id = |I1 + I2| (注意方向,通常定义流入为正,流出为负,这里假设I2已反向或做减法) % 假设 I1 和 I2 方向一致,正常运行时 I1 + I2 = 0 (矢量和) % 实际工程中常取绝对值差:Id = | |I1| - |I2| | 或者矢量和 Id = |I1_vec + I2_vec| % 这里使用矢量和法(最常用) Id = abs(I1 + I2); % 2. 计算制动电流 Ir = |I1| + |I2| (或者 max(|I1|, |I2|)) Ir = abs(I1) + abs(I2); % 3. 设定阈值 I_pickup = 0.2; % 最小启动电流 (标幺值或实际值,视输入而定) K_slope = 0.3; % 比率制动系数 (斜率) % 4. 比率制动特性判断 % 动作方程: Id > I_pickup 且 Id > K_slope * Ir if (Id > I_pickup) && (Id > K_slope * Ir) Trip = 1; else Trip = 0; endend
第二部分:MATLAB 纯代码仿真 (用于验证算法)
如果你不想搭建复杂的 Simulink 图形界面,可以使用以下纯 MATLAB 代码来模拟“正常运行”和“内部故障”两种情况,并绘制比率制动特性曲线。
复制以下代码到 MATLAB 脚本 (.m 文件) 中运行:
%% 变压器差动保护仿真脚本
clear; clc; close all;
% — 参数设置 —
N = 1000; % 采样点数
t = linspace(0, 0.2, N); % 时间向量 (0.2秒)
f = 50; % 频率 50Hz
w = pif;
% — 场景 1: 正常运行 & 外部故障 (穿越性电流) —
% 模拟穿越性电流,由于CT误差,存在微小的不平衡电流
I_load_mag = 100; % 负载电流幅值
I1_normal = I_load_mag * sin(wt);
% 外部故障时电流很大,但两侧电流基本相等(假设CT变比完美匹配)
I2_normal = -I_load_mag * sin(wt); % 反相,因为流出变压器
% — 场景 2: 内部故障 —
% 模拟内部短路,电源侧提供短路电流,负载侧电流可能反向或消失
I1_fault = 500 * sin(wt); % 巨大的短路电流
I2_fault = 50 * sin(wt + pi); % 助增电流或负荷电流反向
% — 差动保护算法函数 —
% 输入:两侧电流向量
% 输出:差动电流 Id, 制动电流 Ir
calculate_diff = @(i1, i2) deal(abs(i1 + i2), abs(i1) + abs(i2));
% 1. 计算正常/外部故障时的 Id 和 Ir
[Id_ext, Ir_ext] = calculate_diff(I1_normal, I2_normal);
% 2. 计算内部故障时的 Id 和 Ir
[Id_int, Ir_int] = calculate_diff(I1_fault, I2_fault);
% — 保护定值 —
I_pickup = 20; % 最小动作电流
K_slope = 0.3; % 斜率
% — 判断动作 —
Trip_Ext = (Id_ext > I_pickup) & (Id_ext > K_slope * Ir_ext);
Trip_Int = (Id_int > I_pickup) & (Id_int > K_slope * Ir_int);
% — 绘图 —
figure(‘Name’, ‘变压器差动保护仿真结果’, ‘Color’, ‘w’);
% 图1: 电流波形
subplot(2,1,1);
plot(t, I1_fault, ‘b’, ‘LineWidth’, 1.5); hold on;
plot(t, -I2_fault, ‘r–’, ‘LineWidth’, 1.5); % 翻转I2以便观察相位
plot(t, Id_int, ‘k’, ‘LineWidth’, 1);
legend(‘高压侧电流 I1’, ‘低压侧电流 -I2 (折算后)’, ‘差动电流 Id’);
title(‘内部故障时电流波形 (差流明显)’);
xlabel(‘时间 (s)’); ylabel(‘电流 (A)’);
grid on;
% 图2: 比率制动特性曲线 (RAC)
subplot(2,1,2);
% 绘制动作区域边界
Ir_range = 0:10:1000;
Id_limit = max(I_pickup, K_slope * Ir_range);
plot(Ir_range, Id_limit, ‘k-’, ‘LineWidth’, 2);
hold on;
% 绘制散点 (模拟采样点)
% 外部故障点 (应在制动区下方)
scatter(Ir_ext(1:10:end), Id_ext(1:10:end), 10, ‘b’, ‘filled’, ‘DisplayName’, ‘外部故障/正常’);
% 内部故障点 (应在动作区上方)
scatter(Ir_int(1:10:end), Id_int(1:10:end), 10, ‘r’, ‘filled’, ‘DisplayName’, ‘内部故障’);
title(‘比率制动特性曲线 (Id vs Ir)’);
xlabel(‘制动电流 Ir (A)’);
ylabel(‘差动电流 Id (A)’);
legend(‘动作边界’, ‘外部故障点’, ‘内部故障点’);
grid on;
% — 命令行输出 —
if any(Trip_Int)
disp(‘>>> 仿真结果: 检测到内部故障,保护装置动作 (TRIP)!’);
else
disp(‘>>> 仿真结果: 内部故障未检测到 (保护拒动)!’);
end
if ~any(Trip_Ext)
disp(‘>>> 仿真结果: 外部故障/正常运行,保护装置不动作 (BLOCK).’);
else
disp(‘>>> 仿真结果: 外部故障误动作!’);
end
第三部分:仿真报告大纲
摘要
简述变压器差动保护的重要性,以及本次仿真使用的工具(MATLAB/Simulink)和主要验证内容(比率制动特性)。
基本原理
基尔霍夫电流定律: 解释正常运行时 sum I_{in} = 0。
差动电流 (I_d) 与 制动电流 (I_r):
公式:I_d = |dot{I}_1 + dot{I}_2|
公式:I_r = |dot{I}_1| + |dot{I}2| (或采用最大值法)
比率制动特性: 解释为什么要引入制动电流(为了防止外部故障时,由于CT饱和或变比误差导致的不平衡电流引起误动)。
动作方程:I_d > I{op.min} 且 I_d > K cdot I_r
仿真模型设计
主接线图: 截图你的 Simulink 模型。
参数设置:
变压器参数 (230kV/13.8kV, D11接法)。
CT变比设置。
保护定值 (例如:启动电流 0.2In, 斜率 30%)。
仿真结果分析
工况一:正常运行
展示波形图:差动电流接近于0。
结论:保护不动作。
工况二:外部短路 (穿越性故障)
展示波形图:电流很大,但差动电流依然很小(仅含不平衡电流)。
结论:制动特性生效,保护可靠闭锁。
工况三:内部短路
展示波形图:差动电流瞬间剧增,超过制动曲线。
结论:保护迅速动作跳闸。
结论
总结仿真结果验证了差动保护的选择性和速动性。
:
一、Simulink模型搭建
打开MATLAB,新建Simulink模型,添加以下模块(来自Simscape Electrical库):
电源模块(Three-Phase Source):设置电压230kV,频率50Hz,Y接法。
变压器模块(Three-Phase Transformer (Two Windings)):设置变比230kV/13.8kV,接法D11(高压侧Delta,低压侧Wye)。
故障模块(Three-Phase Fault):设置故障类型(相间短路、接地短路等),故障时间0.2s~0.4s。
测量模块(Three-Phase V-I Measurement):分别测量变压器两侧电流。
信号处理模块(Gain、Math Function、Relay):用于电流折算、差动电流计算和保护动作判断。
连接模块:
电源→变压器高压侧→故障模块→变压器低压侧→负载(可选)。
测量模块分别接在变压器两侧,输出电流信号到信号处理模块。
参数设置:
变压器:额定容量100MVA,短路阻抗10%。
故障模块:设置故障电阻0.001Ω(近似金属性短路)。
采样时间:设置为1e-6s(保证波形精度)。
二、核心代码(MATLAB Function模块)
在Simulink中添加MATLAB Function模块,实现差动保护逻辑(基于比率制动特性):
matlab
function Trip = fcn(Ih, Il, Krel, Kbr, Iop_min, Ir_min)
% Ih: 高压侧电流(折算后)
% Il: 低压侧电流(折算后)
% Krel: 可靠系数(通常0.2~0.3)
% Kbr: 制动系数(通常0.5)
% Iop_min: 最小动作电流(通常0.2~0.3倍额定电流)
% Ir_min: 最小制动电流(通常0.5倍额定电流)
% 计算差动电流和制动电流
Id = abs(Ih - Il); % 差动电流(幅值)
Ir = 0.5 * (abs(Ih) + abs(Il)); % 制动电流(幅值)
% 比率制动特性判断
if Id > Iop_min && (Id > Krel * Ir || Ir < Ir_min)
Trip = 1; % 保护动作(输出1)
else
Trip = 0; % 无动作(输出0)
end
end
三、仿真分析与结果验证
设置仿真参数:
求解器:ode23tb(适合电力系统仿真),仿真时间0.5s。
采样点数:设置为5000点(保证波形清晰)。
仿真场景:
正常运行:无故障,观察差动电流是否接近0(仅剩不平衡电流)。
内部故障:设置A相接地短路,观察差动电流是否超过动作值,保护是否动作。
外部故障:设置变压器低压侧外部短路,观察差动电流是否被制动特性闭锁。
结果分析:
正常运行时,差动电流幅值<0.1倍额定电流(由励磁涌流和测量误差引起)。
内部故障时,差动电流迅速上升,保护在20ms内动作。
外部故障时,制动电流增大,差动电流被有效抑制,保护不动作。
四、仿真报告撰写要点
摘要:简述变压器差动保护的原理、Simulink模型搭建方法及仿真结果。
引言:介绍变压器保护的重要性及差动保护的优势。
模型设计:详细描述Simulink模型的模块选择、参数设置及连接方式。
仿真分析:展示正常运行、内部故障、外部故障时的电流波形及保护动作情况。
结论:总结仿真结果,验证差动保护的有效性,并提出优化方向(如二次谐波制动、波形对称性判据等)。
五、完整代码(含参数设置)
% 变压器参数
Sn = 100e6; % 额定容量100MVA
U1n = 230e3; % 高压侧额定电压230kV
U2n = 13.8e3; % 低压侧额定电压13.8kV
I1n = Sn / (sqrt(3) * U1n); % 高压侧额定电流
I2n = Sn / (sqrt(3) * U2n); % 低压侧额定电流
% 差动保护参数
Krel = 0.2; % 可靠系数
Kbr = 0.5; % 制动系数
Iop_min = 0.3 * I1n; % 最小动作电流
Ir_min = 0.5 * I1n; % 最小制动电流
% Simulink模型参数设置(在模型中配置)
% 电源:Voltage=230e3, Frequency=50
% 变压器:Winding 1: Delta, Winding 2: Wye-grounded, Turns ratio=230e3/13.8e3
% 故障模块:Fault type=Phase-to-Ground, Resistance=0.001
% 采样时间:1e-6
通过上述步骤,你可以在MATLAB中搭建变压器差动保护的Simulink模型,并通过仿真验证其在不同故障场景下的动作特性。如需进一步优化(如二次谐波制动、五次谐波闭锁等),可在MATLAB Function模块中添加相应逻辑。
