6.11 低压继电保护控制

1、概述

随着电网结构日趋复杂,继电保护策略的要求逐渐提高,传统的微机继电保护设备面临着难以维护、扩建、代码容易过时等诸多问题,而低代码控制器是一种高效率、可靠性强、编程难度小的工业控制器,不仅能够实现各种复杂的控制场景,还提供了形象化的操作界面,能够观测控制效果的同时,还能快速维护和修改控制网络中的有关参数,非常适合于目前结构时常变化的新型低压电网保护体系的构建。

该案例利用simulink搭建起电力系统的仿真模型,并构造三段式电流保护控制的AOE网络图,在AOE网络图的基础下逐个完成配置文件的编写,利用S-Function模块建立起matlab与控制器的连接,最后在控制器网关监控界面与仿真示波器中观察控制器的实现效果。

2、 模型介绍

利用Matlab来搭建一个简单电力系统的Simulink仿真模型。对建立的模型进行保护定值的整定,得到相关整定值参数,通过整定值与模型的参数,来确定该电流保护三段各自的保护范围,并在对应的保护范围中设置相应的故障元件,用于在不同的范围内测试各段保护的动作情况。本设计中第三段过电流保护的验证通过加大负荷的功率来实现,建立如下图所示的电力系统simulink模型:

三段保护simulink模型

3、 文件配置

文件配置分为三个部分:测点配置通信通道AOE配置

测点配置用于配置控制器输入和输出信号点的参数,本案例中需要的信号要是输入保护安装处的监测电流和输出的跳闸信号。

通信通道的配置是为了将控制器与simulink仿真模型建立modbus通信,实现仿真模型与控制器的信息交互。

而AOE配置是建立AOE模型网络来实现所需的控制逻辑和功能。

接下来分别介绍相关的三个方面的配置。

3.1、 测点配置

本例中的测点配置如下表所示:

序号点号名称别名是否离散是否计算点默认值备注
1100001测点1I_POINTFALSEFALSE1电流值
2100002测点2Break_POINTTRUEFALSE1开闸信号
3100003测点3TypeTRUEFALSE0保护类型
4100004测点4t2FALSEFALSE0.5Ⅱ段延迟时间
5100005测点5t3FALSEFALSE1Ⅲ段延迟时间
6100006测点6Iset1FALSEFALSE150速动整定电流
7100007测点7Iset2FALSEFALSE100Ⅱ段整定电流
8100008测点8Iset3FALSEFALSE55Ⅲ段整定电流
9100009测点9DoCal_POINTTRUEFALSE0通讯控制
10100010测点10TFALSEFALSE0仿真时间

其中测点1所对应的I_POINT为控制器的输入信号,即在MATLAB仿真模型中得到的保护安装处的监测电流的数值,测点2为控制器的输出信号,即满足跳闸条件后给出跳闸信号使得断路器动作。由于MATLAB仿真模型中的断路器在收到信号为“0”时跳闸,正常处于闭合时控制信号默认值应该为“1”,所以设定跳闸信号的默认值为“1”,只有当满足过流条件且跳闸动作执行后,跳闸信号Break_POINT才会置为“0”,此时断路器断路,完成跳闸动作。测点3为跳闸类型,用于在控制器监控网关界面实时观察跳闸类型。需要注意的是,本次设计中的I_POINT信号是已经经过MATLAB相关处理的电流信号,是三相电流取有效值后的最大值,实际上在真实的使用环境下,测点应该为该保护安装处的三相电流,每相电流对应一个测点,每个测点都对应一个相同的AOE网络来进行跳闸动作判断,因其操作流程具有可复制性,故不一一描述。

3.2、通信通道配置

低代码控制器通过Modbus协议与Simulink进行通信。由于Matlab仅有Modbus客户端功能,因此需要将低代码控制器配置为Modbus服务端,如下:

通道名称server测试通道连接名称测试通道
连接个数1测点个数4
服务端口502客户端IP127.0.0.1
客户端端口9999
slave id1
通信协议XA
一次读寄存器数上限125
一次读开关数上限2000
一次写寄存器数上限120
一次写开关数上限1968
轮询周期(ms)5000
超时(ms)1000

表格中包含有通信通道的各种配置信息。

服务端口设定为502,测点个数为4,客户端ip是本机的ip地址,可以在网络属性界面查询得到,客户端端口设置为9999.

序号寄存器类型起始地址数据类型新请求标志轮询周期点号
1HOLDING1EightByteFloatFALSE2000100001
2HOLDING5EightByteFloatFALSE2000100010
3HOLDING9TwoByteIntUnsignedFALSE2000100009
4HOLDING10TwoByteIntUnsignedFALSE2000100002

本实验中需要用4个寄存器存储数据,其中电流值与仿真时间的数据类型均为八位浮点数,开闸信号与通信控制信号的数据类型均为二位无符号整型。

3.3、 AOE配置

AOE策略文件配置包括AOE网络定义、AOE变量定义、AOE节点定义、AOE动作定义四个部分。AOE策略文件配置是所有配置文件中最为关键的配置文件,它定义了AOE网络中的各个要素,是实现用户所需要实现的控制逻辑的关键文件。

AOE网络定义

在AOE网络定义中,定义出AOE网络个数和需要用到的一些变量的赋值,具体定义信息如下表所示:

AOE ID是否启用名称触发条件触发条件参数变量初始值
70001TRUE三段式电流保护Event_Drivet:0;
flag:1;

本设计采用判断达到过流条件后启动AOE网络的模式,故选择事件控制(即Event_Drive)。

AOE节点声明

AOE ID节点ID名称节点类型超时时间(ms)表达式
700011开始节点Condition10time>time_old
700012判断是否在一段范围Switch10I_POINT>Iset1
700013结束节点1Condition10DoCal_POINT==0
700014判断是否在二段范围Switch10I_POINT>Iset2
700015二段延时判断Switch10(T-t)>t2
700016结束节点2Condition10DoCal_POINT==0
700017判断是否在三段范围Switch10I_POINT>Iset3
700018三段延时判断Switch10(T-t)>t3
700019结束节点3Condition10DoCal_POINT==0
7000110结束节点4Condition10DoCal_POINT==0
7000111结束节点5Condition10DoCal_POINT==0
7000112结束节点6Condition10DoCal_POINT==0

AOE动作定义

AOE动作定义又称AOE边定义,本项目中定义如下表:

AOE ID首尾节点动作名称失败模式动作类型动作参数
700011;2进入保护判断DefaultSet_PointsDoCal_POINT:0;
700012;3一段跳闸DefaultSet_PointsBreak_POINT:0;
Type:1;
700012;4进入二段保护范围判断DefaultNONE
700014;5进入二段保护延时判断DefaultSet_Pointsflag:0;
t:T*flag+t*(flag==0);
700014;7进入三段保护范围判断DefaultNONE
700015;6二段跳闸DefaultSet_PointsBreak_POINT:0;
Type:2;flag:1;
700015;11二段不跳闸DefaultNONE
700017;8进入三段保护延时判断DefaultSet_Pointsflag:0;
t:T*flag+t*(flag==0);
700017;10不动作DefaultNONE
700018;9三段跳闸DefaultSet_PointsBreak_POINT:0;
Type:3;flag:1;
700018;12三段不跳闸DefaultNONE

不需要动作的边设置为NONE,最终判断结果为需要跳闸时,需要设置动作结果,发出跳闸信号(令Break_POINT等于0),并且反应动作的保护类型。时间记录位t用于记录进入某一次过流事件进入某段保护范围的初始时间,T为simulink的仿真时间。

4、 建立控制器与matlab通讯以及仿真过程

该步低代码控制器的连接和案例1中完全一致,将MATLAB的文件夹打开到低代码控制器替代后的simulink模型文件的文件夹。

当与实体的控制器连接时,就是将所实现的功能放入实体的控制器中,只需要将控制器与电脑通过网线连接后,修改主站和从站的ip地址。 控制器(从站ip)可以从发现工具获得。

主站ip为本机ip地址,通过网络属性配置中可以查询。

matlab界面操作

配置完成后,进入matlab的界面。然后打开控制器的源文件modbusCom1.m文件,该文件是以S-Function模块模板为基础实现的利用Modbus通信协议与控制器进行通信的模块。在输入输出量不同的控制模块下,必须先修改modbusCom1.m文件中的相关参数。

下面程序段用于修改输入输出量的个数:

sizes = simsizes;

sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs   = 1;
sizes.NumInputs    = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;

当输入输出的个数发生改变时,要对应修改NumOutputs、NumInputs后对应的数字。

下面程序段用于建立simulink与控制器的通信:

global m;
m = modbus('tcpip', '127.0.0.1', 502);

输入的ip地址为从站ip,当从站ip不是本机即连接实体控制器时需要改为实体控制器的实际ip地址和端口,127.0.0.1和502为主从站为同一台机器下的配置。

下面程序段用于控制器的读写:

function sys=mdlOutputs(t,x,u)
global m;
write(m,'holdingregs',2,u','double');%写入电流值
write(m,'holdingregs',10,1);%通信标志位DoCal_POINT置1
%disp(['address 2 = ' num2str(u')]);
pause(0.02);    % 等待20ms使得通过modbus通信之后读到最新控制值
sys = read(m,'holdingregs',11,1,'uint16');%读分闸信号

5、 仿真结果

(1)正常运行

仿真波形图:

img

测点监控图:

img

AOE节点监控图:

img

从仿真波形图可以观察到电流电压波形均正常,且跳闸信号始终保持为“1”,即断路器保持在不动作的状态。在控制器网关中打开AOE文件监控器和测点文件监控器可以观察各个节点的动作情况与测点电流的实时数值,以及跳闸类型、跳闸信号的数值变化。正常运行时AOE网络可靠不动作,无跳闸响应。

(2)过负荷运行

然后通过加大负荷功率来设置满足三段跳闸的过负荷电流。

仿真波形图:

img

AOE节点监控图:

img

测点监控图

img

可以从低代码控制器的网关监控界面和MATLAB的仿真波形中观察到定时限过电流保护正常启动,且满足延时跳闸的要求,跳闸后的电流可以忽略不计,且跳闸信号正确显示为“0”,跳闸类型正确显示为“3”。在AOE网络监控图中看到启动三段保护跳闸的节点顺序,且其余保护可靠闭锁,没有发生误动。在MATLAB仿真波形图中可以观测到延时跳闸的效果,由于过负荷电流是直接调大负荷的功率而产生的,所以过电流事件所对应的第一个节点在仿真开始那一刻就触发了AOE网络。可以看到在经过1s左右的仿真时间延时后,动作信号变为“0”使得断路器断闸。

(3)二段保护范围内短路故障

通过在二段保护范围内加入短路故障来仿真验证二段保护的动作情况。

仿真波形图:

img

AOE节点监控图:

img

测点监控图:

img

在仿真时长为0.5s左右时切除了故障,与AOE网络文件配置中二段保护延时时间和三段保护延时时间的设置完全吻合。和三段同理,在AOE网络节点监控界面以及测点文件监控界面,可以看到其余保护可靠闭锁,对应此故障点的二段保护正常动作,且保护类型显示正确。通过故障相电流波形以及跳闸信号图可以确定延时效果已经实现,二段保护效果正常实现。

(4)一段保护范围内短路故障

设置一段范围下的短路故障,得到以下结果。

仿真波形图:

img

AOE节点监控图:

img

测点监控图:

img

一段范围内的短路故障电流很大,设置的仿真时长与二段一致,也是0.1s,但可以看到保护在故障接入的0.04s后就已经启动切除了故障,故障电流持续0.04s,其余保护可靠不动作,一段保护虽然没有设置延时,应瞬时动作,但从仿真波形来看,有0.04s的动作延迟,故0.04s的仿真延时为控制器与matlab的通信时长和控制器的AOE网络判断实现的时长之和,通过多次实验的结果可知,一段动作的仿真延时在0.01-0.05s内波动,受到各种其他因素的影响,但总体上满足继电保护速动性的要求。

6、 总结

对于继电保护控制策略中最为基础的三段式电流保护,通过matlab建立仿真模型,并将配置文件上传至控制器中后,成功实现了三段式电流保护。对各段保护仿真实验结果进行分析,可见低代码控制器能够正确的实现低压继电保护策略中典型的三段式电流保护的控制功能,且满足继电保护选择性、可靠性、速动性的要求,能够应用于继电保护系统中,加速实现继电保护系统的保护、控制、测量、数据通信一体化。

附件:低压继电保护控制.rar