线路继电保护整定计算的MATLAB仿真【毕业论文绝对精品】.doc
《线路继电保护整定计算的MATLAB仿真【毕业论文绝对精品】.doc》由会员分享,可在线阅读,更多相关《线路继电保护整定计算的MATLAB仿真【毕业论文绝对精品】.doc(42页珍藏版)》请在沃文网上搜索。
1、长春工程学院毕业设计(论文)目 录1 引言12 MATLAB及其模块介绍22.1 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参考文献41411 引言本设计的题目是线路继电保
2、护整定计算的MATLAB仿真,包括对电力系统线路整定计算仿真和故障仿真的研究。输电线路是电力系统中的重要电气设备。不同地区、不同类型的发电和配电设备都是通过它连接起来的,构成电力系统网络。它的安全运行直接关系到电力系统发电、供电和配电的稳定运行。随着现代电力系统继电保护的日益发展采用计算机仿真方法来分析研究电力系统继电保护是解决此类工程问题的一种有效手段。MATLAB语言是目前国际上流行的一种演算纸式的编程语言,它具有强大的矩阵分析与运算功能,并且是一个开放的环境。其中SIMULINK就是为MATLAB开发的一种优秀的控制系统仿真工具软件,它具有模块化、可重载、可封装、面向结构图编程及可视化等
3、特点,可大大提高系统仿真的效率和可靠性。我们可以利用工具箱中的元件模型,结合电力系统中的基本原理,搭建输电线路模型,继而设置各种电力系统故障进行分析和调试,以期为电力系统线路故障故障仿真提供有力根据。在线路继电保护整定计算仿真方面,我们使用了SimuLink和SimPowerSystems工具箱,它常用于电力系统各个方面的仿真。例如MATLAB 被用于发电机、变压器、线路和负荷等元件的建模和仿真,在输电线路研究中,有利用Matlab对输电线路进行故障定位数字仿真的研究。在继电保护仿真中也应用到了Matlab,如基于Matlab 开发平台的继电保护仿真系统。本设计主要针对线路的继电保护三段式电流
4、保护和零序电流保护进行仿真研究。利用MATLAB和线路继电保护的内容,使用SimuLink和SimPowerSystems工具箱,搭建了一个线路整定计算和故障仿真模型。在系统中设定不同的故障点,分别进行了相应的仿真,且与线路的整定计算值相配合,做到有选择性的动作,对仿真结果进行分析。本文第1部分为前言,介绍了本次设计的主要思路。第2部分介绍了Matlab基础和在设计中所用到知识。第3部分是线路继电保护的基本原理等基础理论知识。第4部分中对线路继电保护仿真中的模型构成、参数设定及故障发生时保护装置的动作情况作了详细说明。并介绍了所设计的线路继电保护仿真与整定计算值的配合。第5部分对仿真实验的结果
5、进行了分析,不同层面做出分析,对于在整个设计过程的不同阶段也做出具体分析。在本文的第6部分中总结了此次设计并给出了结论。其中包括致谢词,参考文献等。此次毕业设计在张龙斌老师的指导下完成。2 Matlab 及其模块介绍本章简单介绍了此次设计用到的Matlab 知识,首先介绍Matlab 软件编程基础知识,再对计算机实现线路继电保护整定计算仿真设计中用到的仿真模块的来源、功能、参数等进行介绍。2.1 MATLAB 编程基础2.1.1 变量和数学运算首先从Matlab数学运算开始说明。例如要计算1+2+3 及110+210+310 这两个算式,接在提示符号之后的是要键入的算式,Matlab将计算的结
6、果以ans显示。2.1.2 数组和数据Matlab的运算事实上是以数组(array)及矩阵(matrix)方式在做运算,而这两者在Matlab的基本运算性质上是不同的,数组强调元素对元素的运算,而矩阵则采用线性代数的运算方式。在声明一个变量为数组或是矩阵时,如果是要个别输入元素,需要用中括号将元素置于其中。数组由一维元素构成,而矩阵由多维元素组成。在介绍矩阵运算之前首先介绍几个特殊的矩阵。Zeros函数生成元素皆为0 的矩阵;ones 函数生成元素皆为1 的矩阵,eye生成一个单位矩阵,之所以称为eye是取其发音与原来单位矩阵符号相同,而又避免与复数定义中的虚部所用的符号i混淆,所以改以eye
7、替代。上述三个函数的使用语法都相似,如zeros(m)可以产生一个mm 的正方矩阵,而zeros(m,n)产生的是mn的矩阵。也可以使用这三个函数将一个mn 矩阵原来元素全部取代成为0,1 或是单位矩阵的值,不过要加上size指令来指出其矩阵大小是mn,所以语法为:zeros(size(A)其中A为原来的矩阵2.2 M文件及M函数Matlab程序大致分为两类:M脚本文件(M-Script)和M函数(M-Function),它们均是普通的ASCII 码构成的文件。M脚本文件中包含一组有Matlab语言所支持的语句,它类似DOS下的批处理文件。它的执行方式很简单,用户只需在Matlab的提示符下输
8、入该M文件的文件名,这样Matlab就会自动执行该M文件中的各条语句,并将结果直接返回到Matlab工作空间。使用M函数格式变成是Matlab程序设计的主流。Matlab的M函数是有function语句引导的,其基本格式如下:Function 返回变量列表=函数名(输入变量列表)注释说明语句段,由%一道输入、返回变量格式的检测函数体语句这里输入和返回变量的实际个数分别有nargin和nargout两个Matlab的保留变量来给出。只要进入该函数,Matlab就将自动生成这两个变量,不论是佛直接使用这两个变量。如果返回变量多于一个,则应该用方括号括起来。输入变量和返回变量之间用括号分隔。注释语句
9、段的每行语句都应该由百分号引导,百分号后面的内容不执行,只起注释作用。用户采用help 命令则可以显示出来注释语句段的内容。此外、标准的变量树木检测也是必要的。如果输入或返回变量格式不正确,则应该给出相应的提示。另外,因为Matlab是一中注释性语言,所以即使在某个或某些函数中存在语法错误,如果没执行到该语句时可能就不会发现该错误,这在严格的程序设计中是不容许的。要检查某目录中所有的M函数语法错误,首先应该用cd命令进入该目录,然后运行pcode*命令进行伪代码转换。因为该命令会将Matlab函数转换成伪代码,而在转换过程中该程序将自动翻译每一条语句,所以一旦发现有语法错误,将会停止翻译,给出
10、错误信息。改正了该语法错误后,再重新执行pcode命令,直到没有错误为止。这样会保证目录下所有的程序不含有语法错误。2.3 SIMULINK介绍Simulink是以工具库的形式挂接在Matlab上的,不能独立运行,只能在Matlab环境中运行。Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持连续、离散或两者混合的线性和非线性系统,也支持具有多种采样速率的多速率系统。Simulink是由模块库、模型构造及指令分析、演示程序等几部分组成。Simulink提供了用方框图进行建模的图形接口。模块框图是动态系统的图形显示,由一组称为模块的图标组成,模块之间采用连线联接。每个模块代
11、表了动态系统的某个单元,并且产生一定的输出。模块之间的连线表明模块的输入端口与输出端口之间的信号连结。模块的类型决定了模块输出与输入、状态和时间之间的关系。一个模块框图可以根据需要包含任何类型的模块。模块代表了动态系统的某个功能单元,每个模块一般包括一组输入、状态和一组输出等几个部分。Simulink模块的基本特点是参数化的,许多模块都具有独立的属性对话框,在对话框中用户可以定义模块的各种参数。Simulink包含Sinks(输出方式)、Source(输入源)、Continuous(连续环节)、Nonlinear(非线性)、Discrete(离散环节)、Signals & System(信号与
12、系统)、Math(数学模块)和Functions& Tables(函数和查询表)等子模型库。SIMULINK 在诸如Communication Toolbox,Nonlinear Control Design Blockset,Power System Blockset 等工具箱的配合下,还可以完成对诸如通行系统、非线性控制系统、电力系统的建模、分析和仿真。设计中使用的模块本设计中共使用了位于Simpowersystems模块库,和Simulink模块库中的29 个不同的模块。分别为:1)位于Simpowersystems模块库中: 断路器模块(break), 线路模块(Series RLC
13、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), 输出端口模块(Out1 block), 示波器模块(Scope block), 常数模块
14、(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 是一
15、个动态系统的计算机语言描述,在MATLAB里,用户可以选择用m文件编写,也可以用c或mex文件编写,在这里只给大家介绍如何用m文件编写s-function。2)S-function 提供了扩展Simulink模块库的有力工具,它采用一种特定的调用语法,使函数和Simulink解法器进行交互。3)S-function 最广泛的用途是定制用户自己的Simulink模块。它的形式十分通用,能够支持连续系统、离散系统和混合系统。2.4.2 建立M文件S-Function使用模板文件:sfuntmp1. m1) 该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下。2)
16、 模板文件里s-function的结构十分简单,它只为不同的flag的值指定要相应调用的m 文件子函数。比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为sys=mdloutputs(t,x,u)。3) 模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用if语句来完成同样的功能。而且在实际运用时,可以根据实际需要来去掉某些值,因为并不是每个模块都需要经过所有的子函数调用。4) 模板文件只是Simulink为方便用户而提供的一种参考格式,并不是编写s-function的语法要求,用户完全可以改变子函数的名称,或者直接把代码写在主函数里,但使用
17、模板文件的好处是,比较方便,而且条理清晰。5) 使用模板编写s-function,用户只需把s-函数名换成期望的函数名称,如果需要额外的输入参量,还需在输入参数列表的后面增加这些参数,因为前面的4个参数是simulink调用s-function时自动传入的。对于输出参数,最好不做修改。接下去的工作就是根据所编s-function要完成的任务,用相应的代码去替代模板里各个子函数的代码即可。6) Simulink 在每个仿真阶段都会对s-function进行调用,在调用时,Simulink会根据所处的仿真阶段为flag传入不同的值,而且还会为sys这个返回参数指定不同的角色,也就是说尽管是相同的s
18、ys变量,但在不同的仿真阶段其意义却不相同,这种变化由simulink自动完成。7) m文件s-function可用的子函数说明如下:mdlInitializeSizes:定义s-function模块的基本特性,包括采样时间、连续或者离散状态的初始条件和sizes数组。mdlDerivatives:计算连续状态变量的微分方程。mdlUpdate:更新离散状态、采样时间和主时间步的要求。mdlOutputs:计算s-function的输出。mdlGetTimeOfNextVarHit:计算下一个采样点的绝对时间,这个方法仅仅是在用户在mdlInitializeSizes里说明了一个可变的离散采样
19、时间。mdlTerminate:实现仿真任务必须的结束。8) 概括说来,建立s-function可以分成两个分离的任务:9) 初始化模块特性包括输入输出信号的宽度,离散连续状态的初始条件和采样时间。10) 将算法放到合适的s-function子函数中去。定义s-function 的初始信息1) 为了让Simulink识别出一个m文件s-function,用户必须在s-函数里提供有关s-函数的说明信息,包括采样时间、连续或者离散状态个数等初始条件。这一部分主要是在mdlInitializeSizes子函数里完成。2) Sizes数组是s-function函数信息的载体,它内部的字段意义为:Num
20、ContStates:连续状态的个数(状态向量连续部分的宽度)NumDiscStates:离散状态的个数(状态向量离散部分的宽度)NumOutputs: 输出变量的个数(输出向量的宽度)NumInputs:输入变量的个数(输入向量的宽度)DirFeedthrough:有无直接馈入NumSampleTimes:采样时间的个数3) 如果字段代表的向量宽度为动态可变,则可以将它们赋值为1。4) 注意DirFeedthrough是一个布尔变量,它的取值只有0和1两种,0表示没有直接馈入,此时用户在编写mdlOutputs子函数时就要确保子函数的代码里不出现输入变量u;1表示有直接馈入。5) NumSa
21、mpleTimes表示采样时间的个数,也就是ts变量的行数,与用户对ts的定义有关。6) 需要指出的是,由于s-function会忽略端口,所以当有多个输入变量或多个输出变量时,必须用mux模块或demux模块将多个单一输入合成一个复合输入向量或将一个复合输出向量分解为多个单一输出。输入和输出参量说明1) S-function默认的4个输入参数为t、x、u 和flag,它们的次序不能变动,代表的意义分别为:t:代表当前的仿真时间,这个输入参数通常用于决定下一个采样时刻,或者在多采样速率系统中,用来区分不同的采样时刻点,并据此进行不同的处理。x: 表示状态向量,这个参数是必须的,甚至在系统中不存
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文,绝对精品 线路 保护 计算 MATLAB 仿真 毕业论文 绝对 精品
