电流保护MATLAB仿真目录1引言 12 MATLAB及其模块介绍 22」MATLAB编程基础 22.2 M文件及M函数 32.3 SIMULINK 介绍 32.4 S-FUNCTION 简介 53线路继电保护的基本原理 83.1整定基本要求 83.2保护整定原则 104线路继电保护仿真 184.1保护仿真软件概述 184.2仿真设计步骤 194.3线路单相自动重合闸电流保护仿真 194.4线路三段式电流保护仿真 275仿真结果分析 365.1线路单相自动重合闸电流保护仿真结果分析 365.2线路三段式电流保护仿真结果分析 376 总结 38致 谢 40参考文献 411引言本设计的题目是线路继电保护整定计算的MATLAB仿真,包括对电力系统线路整定计 算仿真和故障仿真的研究输电线路是电力系统中的重要电气设备不同地区、不同类型的发电和配电设备都是通 过它连接起来的,构成电力系统网络它的安全运行直接关系到电力系统发电、供电和配电 的稳定运行随着现代电力系统继电保护的日益发展采用计算机仿真方法来分析研究电力系 统继电保护是解决此类工程问题的一种有效手段MATLAB语言是目前国际上流行的一种 演算纸式的编程语言,它具有强大的矩阵分析与运算功能,并且是一个开放的环境。
其中 SIMULINK就是为MATLAB开发的一种优秀的控制系统仿真工具软件,它具有模块化、可 重载、可封装、面向结构图编程及可视化等特点,可大大提高系统仿真的效率和可靠性我 们可以利用工具箱中的元件模型,结合电力系统中的基本原理,搭建输电线路模型,继而设 置各种电力系统故障进行分析和调试,以期为电力系统线路故障故障仿真提供有力根据路继电保护整定计算仿真方面,我们使用了 SimuLink和SimPowerSystems工具箱, 它常用于电力系统各个方面的仿真例如MATLAB被用于发电机、变压器、线路和负荷等 元件的建模和仿真,在输电线路研究中,有利用Matlab对输电线路进行故障定位数字仿真 的研究在继电保护仿真中也应用到了Matlab,如基于Matlab开发平台的继电保护仿真系 统本设计主要针对线路的继电保护一一三段式电流保护和零序电流保护进行仿真研究利 用MATLAB和线路继电保护的内容,使用SimuLink和SimPowerSystems工具箱,搭建了 一个线路整定计算和故障仿真模型在系统中设定不同的故障点,分别进行了相应的仿真, 且与线路的整定计算值相配合,做到有选择性的动作,对仿真结果进行分析。
本文第1部分为前言,介绍了本次设计的主要思路第2部分介绍了 Matlab基础和在设计中所用到知识第3部分是线路继电保护的基本原理等基础理论知识第4部分中对线路继电保护仿真中的模型构成、参数设定及故障发生时保护装置的动作 情况作了详细说明并介绍了所设计的线路继电保护仿真与整定计算值的配合第5部分对仿真实验的结果进行了分析,不同层面做出分析,对于在整个设计过程的不 同阶段也做出具体分析在本文的第6部分中总结了此次设计并给出了结论其中包括致谢词,参考文献等此次毕业设计在张龙斌老师的指导下完成2 Matlab及其模块介绍本章简单介绍了此次设计用到的Matlab知识,首先介绍Matlab软件编程基础知识, 再对计算机实现线路继电保护整定计算仿真设计中用到的仿真模块的来源、功能、参数等进 行介绍2.1 MATLAB编程基础2.1.1变量和数学运算首先从Matlab数学运算开始说明例如要计算1+2+3及1x10+2x10+3x10这两个算式, 接在提示符号>>之后的是要键入的算式,Matlab将计算的结果以ans显示2.1.2数组和数据Matlab的运算事实上是以数组(array)及矩阵(matrix)方式在做运算,而这两者在 Matlab的基本运算性质上是不同的,数组强调元素对元素的运算,而矩阵则采用线性代数 的运算方式。
在声明一个变量为数组或是矩阵时,如果是要个别输入元素,需要用中括号将元素置于 其中数组由一维元素构成,而矩阵由多维元素组成在介绍矩阵运算之前首先介绍几个特殊的矩阵°Zeros函数生成元素皆为0的矩阵;ones 函数生成元素皆为1的矩阵,eye生成一个单位矩阵,之所以称为eye是取其发音与原来单 位矩阵符号I相同,而又避免与复数定义中的虚部所用的符号i混淆,所以改以eye替代上述三个函数的使用语法都相似,如zeros (m)可以产生一个mxm的正方矩阵,而 zeros (m,n)产生的是mxn的矩阵也可以使用这三个函数将一个mxn矩阵原来元素全 部取代成为0,1或是单位矩阵的值,不过要加上size指令来指出其矩阵大小是mxn,所以 语法为:zeros(size(A))其中A为原来的矩阵2.2 M文件及M函数Matlab程序大致分为两类:M脚本文件(M-Script)和M函数(M-Function),它们均是 普通的ASCII码构成的文件M脚本文件中包含一组有Matlab语言所支持的语句,它类似DOS下的批处理文件它的 执行方式很简单,用户只需在Matlab的提示符下输入该M文件的文件名,这样Matlab就会自 动执行该M文件中的各条语句,并将结果直接返回到Matlab工作空间。
使用M函数格式变成 是Matlab程序设计的主流Matlab的M函数是有function语句引导的,其基本格式如下:Function [返回变量列表]二函数名(输入变量列表)注释说明语句段,由%一道输入、返回变量格式的检测函数体语句这里输入和返回变量的实际个数分别Wnargin和nargou t两个Matlab的保留变量来给出 只要进入该函数,Matlab就将自动生成这两个变量,不论是佛直接使用这两个变量如果返 回变量多于一个,则应该用方括号括起来输入变量和返回变量之间用括号分隔注释语句 段的每行语句都应该由百分号引导,百分号后面的内容不执行,只起注释作用用户采用help 命令则可以显示出来注释语句段的内容此外、标准的变量树木检测也是必要的如果输入 或返回变量格式不正确,则应该给出相应的提示另外,因为Matlab是一中注释性语言,所以即使在某个或某些函数中存在语法错误,如 果没执行到该语句时可能就不会发现该错误,这在严格的程序设计中是不容许的要检查某 目录中所有的M函数语法错误,首先应该用cd命令进入该目录,然后运行pcode*命令进行伪 代码转换因为该命令会将Matlab函数转换成伪代码,而在转换过程中该程序将自动翻译每 一条语句,所以一旦发现有语法错误,将会停止翻译,给出错误信息。
改正了该语法错误后, 再重新执行pcode命令,直到没有错误为止这样会保证目录下所有的程序不含有语法错误2.3 SIMULINK 介绍Simulink是以工具库的形式挂接在Matlab上的,不能独立运行,只能在Matlab环境中运 行Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散或 两者混合的线性和非线性系统,也支持具有多种采样速率的多速率系统Simulink是由模块库、模型构造及指令分析、演示程序等几部分组成Simulink提供了 用方框图进行建模的图形接口模块框图是动态系统的图形显示,由一组称为模块的图标组 成,模块之间采用连线联接每个模块代表了动态系统的某个单元,并且产生一定的输出 模块之间的连线表明模块的输入端口与输出端口之间的信号连结模块的类型决定了模块输 出与输入、状态和时间之间的关系一个模块框图可以根据需要包含任何类型的模块模块代表了动态系统的某个功能单元,每个模块一般包括一组输入、状态和一组输出等 几个部分Simulink模块的基本特点是参数化的,许多模块都具有独立的属性对话框,在对话框中 用户可以定义模块的各种参数Simulink包含Sinks(输出方式)、Source(输入源)、Continuous (连续环节)、Nonlinear (非线性)、Discrete (离散环节)、Signals & System (信号与系 统)、Math (数学模块)和Functions& Tables (函数和查询表)等子模型库。
SIMULINK在 诸^口Communication Toolbox, Nonlinear Control Design Blockset, Power System Blockset 等 工具箱的配合下,还可以完成对诸如通行系统、非线性控制系统、电力系统的建模、分析和 仿真设计中使用的模块本设计中共使用了位于Simpowersystems模块库,和Simulink模块库中的29个不同的模 块分别为:1) 位于 Simpowersystems模 块库中:① 断路器模块(break),② 线路模块(Series RLC Branch block),③ 电流测量器模块(Current Measurement block),④ 交流电压源模块(AC Volatge block),⑤ 三相故障模块(Three-Phase Fault block),⑥ 傅利叶变换模块(Fourier block),⑦ 万用表模块(Multimeter block),⑧ 接地模块(Ground(input/output) block),2) 位于Simulink模块库中:① 到工作空间模块(To Workspace block),② 输入端口模块(In1 block),③ 输出端口模块(Outl block),④ 示波器模块(Scope block),⑤ 常数模块(Constant block),⑥ 乘法模块(Product block),⑦ 继电器模块(Relay block),⑧ 加法模块(SUM block),⑨ 使能子系统模块(Enable Subsystem block)。
2.4 S-FUNCTION 简介Simulink为用户提供了许多内置的基本库模块,通过这些模块进行连接而构成系统的 模型对于那些经常使用的模块进行组合并封装可以构建出重复使用的新模块,但它依然是 基于Simulink原来提供的内置模块而Simulink s-function是一种强大的对模块库进行扩展 的新工具2.4.1 S-Function 的概念1) s-function是一个动态系统的计算机语言描述,在MATLAB里,用户可以选择用m 文件编写,也可以用c或mex文件编写,在这里只给大家介绍如何用m文件编写s-function2) S-function提供了扩展Simulink模块库的有力工具,它采用一种特定的调用语法,使 函数和Simulink解法器进行交互3) S-function最广泛的用途是定制用户自己的Simulink模块它的形式十分通用,能够 支持连续系统、离散系统和混合系统2.4.2 建立 M 文件 S-Function使用模板文件:sfuntmp1. m1) 该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下2) 模板文件里s-function的结构十分简单,它只为不同的flag的值指定要相应调用的皿文 件子函数。
比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为 sys=mdloutputs(t,x,u)3) 模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用 if语句来完成同样的功能而且在实际运用时,可以根据实际需要来去掉某些值,因为并不 是每个模块都需要经过所有的子函数调。