微机保护算法综合仿真教程.docx

上传人:b****5 文档编号:7601947 上传时间:2023-01-25 格式:DOCX 页数:40 大小:581.69KB
下载 相关 举报
微机保护算法综合仿真教程.docx_第1页
第1页 / 共40页
微机保护算法综合仿真教程.docx_第2页
第2页 / 共40页
微机保护算法综合仿真教程.docx_第3页
第3页 / 共40页
微机保护算法综合仿真教程.docx_第4页
第4页 / 共40页
微机保护算法综合仿真教程.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

微机保护算法综合仿真教程.docx

《微机保护算法综合仿真教程.docx》由会员分享,可在线阅读,更多相关《微机保护算法综合仿真教程.docx(40页珍藏版)》请在冰豆网上搜索。

微机保护算法综合仿真教程.docx

微机保护算法综合仿真教程

第一部分微机保护算法综合仿真方法

第一节概述

我们在电力系统微机保护原理课程中已经学习了数字滤波器和保护算法的设计方法。

但是,这些方法都是理论上的,而且往往都作了一些假设和简化处理。

例如,在设计FIR滤波器时采用某种窗函数对冲激响应h(t)进行截断处理,在采用富氏算法时假设信号是周期性的等等。

这些理论上设计出来的滤波器和保护算法在电力系统各种复杂故障情况下,尤其是在考虑电力系统故障暂态的情况下,其性能是否能满足要求,还需要进行更多更深入的研究。

由于不可能在真实的电力系统中去制造短路故障以考核所设计的滤波器和保护算法的正确性和有效性,所以,通常的做法是首先进行仿真研究,成功后再在动模系统上进行实验考核,考核通过后即可送国家质量检测中心进行检测。

可见,仿真研究是设计微机保护必须进行的重要工作之一。

电力系统故障暂态仿真常用电力系统电磁暂态仿真程序(EMTP)进行。

EMTP可用以完成电力系统各种元件、线路故障的暂态仿真,应用十分广泛。

但是,在需要对暂态故障电流电压数据进行进一步研究分析时,往往需要借助其它分析软件,而且很多时候还需要对故障电流电压数据的格式进行转换,使用上不是很方便。

而利用MATLAB软件包进行电力系统故障仿真、数字滤波器设计及微机保护算法仿真则非常简单。

例如,MATLAB6.5软件包自带电力系统电磁暂态仿真程序,即电力系统工具箱SimPowerSystems,利用它完成电力系统故障暂态仿真后,进行微机保护算法综合仿真时可以直接调用暂态故障电流电压仿真数据。

进行电力系统故障暂态仿真和微机保护算法综合仿真的方法和步骤如下:

(1)根据原始电力系统的接线与系统参数,建立电力系统故障暂态仿真模型。

(2)利用MATLAB软件包自带的电力系统工具箱SimPowerSystems完成电力系统故障暂态仿真后,得到暂态故障电流电压数据。

(3)编制微机保护数字滤波器和保护算法的综合仿真程序,通过对暂态故障电流电压数据的滤波处理和保护算法运算,研究分析数字滤波器与保护算法的基本性能。

第二节电力系统工具箱设计基础

一、电力系统工具箱概述

电力系统工具箱是MATLAB环境下的电力系统仿真工具,其仿真文件类型为.mdl。

电力系统工具箱为用户提供了很方便的图形化功能模块。

功能模块运行于MATLAB的Simulink模拟工具环境,可通过用鼠标点击、拖拽等简单操作实现仿真功能模块的选取、连接等功能,使得用户可以迅速方便地连接一个电力系统仿真模拟系统,从而简化电力系统仿真模拟设计流程,减轻设计负担。

电力系统工具箱的功能模块库包含了典型的电力系统仿真功能模块,如电力变压器、输电线路、发电机及各种电力电子元件等。

用户可利用图形化功能模块库迅速完成自己的电力系统故障暂态仿真工作。

所有这些仿真功能模块都带有自己的帮助文件,用以描述模块的功能、参数、属性设置方法及基本使用方法。

二、电力系统工具箱基本操作

下面将以电力系统模块库(PowerSystemBlockset)为例介绍电力系统工具箱的基本操作方法。

1、启动MATLAB

MATLAB命令窗口如图1所示。

单击命令窗口中的“Browseforfolder”按钮

,在MATLAB命令窗口中设置当前的工作路径,则MATLAB中的.m文件与电力系统工具箱中进行的电力系统故障暂态仿真模型的仿真结果均可保存于所设置的当前路径中。

图1MATLAB命令窗

2、启动电力系统工具箱模拟工作环境

在MATLAB命令窗口执行:

Simulink,或单击“Start/Simulink/LibraryBrowser”菜单,即可出现Simulink的模块库浏览器(见图2)。

图2Simulink的模块库浏览器

在图2所示的模块库浏览器的左下方窗口中,利用下滑块可以找到电力系统模块库SimPowerSystems,单击其前面的

,可出现电力系统模块库浏览器(见图3)。

在电力系统模块库浏览器中选择需要的功能模块,就可以完成相应的电力系统仿真系统的建模工作。

图3电力系统模块库浏览器

在MATLAB命令窗口执行:

powerlib,也可出现电力系统模块库浏览器的另外一种形式,如图4所示。

图4powerlib模块窗口

单击图3中工具条左边的图标

(建立新模型),就会弹出如图5所示的“建立新模型”窗口。

打开已经存在的模型文件也有几种方式:

1)在MATLAB命令窗口直接键入模型文件名(不要加扩展名“.mdl”),这要求该文件在当前的路径范围内;

2)在菜单上选择:

File/Open;

3)单击图4或图5所示窗口工具条上的打开图标

图5建立新模型窗口

注意:

Simulink相关的几类窗口,如模块库浏览器、模块库、模型等,和仿真结果输出窗口的性质相对独立,不属于MATLAB的图形对象,不能用句柄图形(handlegraphics)的命令设置或修改这类窗口的属性。

和其他很多Windows窗口操作的特点类似,在Simulink的模型窗口和模块库窗口的View菜单下选择或取消Toolbar和StatusBar选项,就可以显示或去掉工具条和状态条。

在进行仿真的过程中,模型窗口的状态条会显示仿真状态、仿真进度、仿真时间等相关信息。

3、电力系统工具箱功能模块的操作

电力系统工具箱的功能模块是建立电力系统故障暂态仿真模型的基本单元,用适当的方式把各种模块连在一起就能够建立电力系统故障暂态仿真的模型。

以下将介绍电力系统工具箱功能模块的操作方法。

(1)选取模块

在模块库浏览器窗口中进行操作时,如果要选取单个功能模块,只要用鼠标在模块上单击即可,此时模块库浏览器窗口中的模块注释区显示相应模块的功能描述,如图6所示。

在模块库窗口或模型窗口中进行操作时,如果如果要选取单个功能模块,只要用鼠标在模块上单击即可,这时模块的角上出现黑色的小方块,如图7所示。

选取多个模块时,在所有模块所占区域的一角按下鼠标左键不放,拖向该区域的对角,在此过程中会出现虚框,当虚框包住了要选的所有模块后,放开鼠标左键,这时在所有被选模块的角上都会出现小黑方块,表示模块都被选中。

(2)复制、删除模块

1)在不同的窗口之间复制。

当我们建立模型时,需要从模块库窗口或者已经存在的模型文件窗口把需要的模块复制到新建模型文件的窗口。

要对已经存在的模型进行编辑时,有时也需要从模块库窗口或另一个已经存在的模型文件窗口复制模块。

最简单的办法是:

用鼠标左键点住要复制的模块(之前要打开源模块和目标模块所在的窗口),按住左键移动鼠标到目标窗口,然后释放左键,该模块就会被复制过来,而源模

图6模块库浏览器窗口中的模块注释区显示相应模块的功能描述示例

块不会被删除。

这也是从模块库浏览器窗口复制模块到模型文件窗口的唯一方法。

图7在模块库窗口选择模块示意图

在模块库窗口或模型窗口中进行操作时,还可以用Edit菜单下的Copy和Paste命令来完成复制和粘贴:

先选定要复制的模块,选择Edit菜单下的Copy命令,然后到目标窗口的Edit菜单下选择Paste命令。

2)在同一模型窗口内复制。

有时一个模型需要多个相同的模块,这时的复制方法如下:

用鼠标左键按住要复制的模块,按住左键移动鼠标,同时按下Ctrl键,到适当位置放开鼠标,该模块就被复制到当前位置。

更简单的方法是按住鼠标右键移动鼠标。

另一种方法是选定要复制的模块,选择Edit菜单下的Copy命令,然后选择Paste命令。

这时复制出的模块名称在原名称得基础上又加了编号,这是Simulink相关的所有功能模块操作的约定:

每个模型中的模块和名称是一一对应的,相同的模块或不同的模块都不能用同一个名称。

3)删除模块。

选定模块,选择Edit菜单的Cut(删除到剪贴板)或Clear(彻底删除)命令,或者在模块上单击鼠标右键,在弹出菜单选择Cut或Clear命令。

这一操作只能在模型窗口中进行。

(3)模块的参数和属性设置

几乎所有模块的参数(Parameters)都允许用户进行设置。

只要双击要设置的模块,或在模块上按住鼠标右键并在弹出的上下文菜单中选择“BlockProperties”就会弹出参数设置对话框。

电力系统工具箱中的另外一些功能模块是由简单功能模块创建的Subsystem复杂功能模块,又称图罩(Mask),则相应在上下文菜单中选择“MaskProperties”就会弹出参数设置对话框。

图8所示的是分布参数线路模块的参数设置对话框,用户可以设置它的相数、频率、线路长度、线路分布参数(单位线路长度的电阻、电容和电感值)等参数。

每个模块都有一个内容相同的属性(Properties)设置对话框,如图9所示。

它的打开方式是在模块上按住鼠标右键并在弹出上下文菜单中选择“BlockProperties”。

该对话框包括如下几项内容:

1)说明(Description):

是对该模块在模型中用法的注解。

2)优先级(Priority):

规定该模块在模型中相对于其他模块执行的优先顺序。

优先级的数值必须是整数或者不输入数值,不输入时系统会自动选取合适的优先级。

优先级的数值越小(可以是负整数),优先级越高。

3)标记(Tag):

用户为模块添加的文本格式的标记。

4)回调函数(Callbacks):

用户双击模块时调用的(MATLAB)函

图8分布参数线路模块的参数设置对话框数。

5)模块注释(BlackAnnotation):

指定在该模块的图标下显示的参数和格式。

(4)模块外形的调整

1)选定模块。

用鼠标点住其周围的四个黑方块中的任一个拖动,这时会出现一个虚线的矩形表示新模块的位置,到需要的位置后释放鼠标即可。

图9分布参数线路模块的属性设置对话框

2)调整模块的方向。

选定模块,选取菜单Format下的RotateBlock使模块旋转90º,FlipBlock使模块旋转180º。

3)给模块加阴影。

选定模块,选取菜单Format下的ShowDropShadow使模块产生阴影效果。

(5)模块名的处理

1)确定模块名显示与否。

选定模块,选取菜单Format下的HideName,模块名就会被隐藏起来,同时HideName改为ShowName。

选取ShowName就会使模块隐藏的名字显示出来。

2)修改模块名。

用鼠标左键单击模块名的区域,这时此处出现编辑状态的光标,在这种状态下能够对模块名随意进行修改。

模块名和模块图标中的字体也可以更改,方法是:

选定模块,在菜单Format下选取Font,这时会弹出SetFont对话框,在对话框中选取想要的字体即可。

3)改变模块名的位置。

模块名的位置有一定的规律:

当模块的接口在左右两侧时,模块名只能位于模块的上下两侧,缺省在下侧;当模块的接口在上下两侧时,模块名只能位于模块的左右两侧,缺省在左侧。

因此,模块名只能从原位置移到相对的位置。

可以用鼠标拖动模块名到其相对的位置;也可以选定模块,用菜单Format下的FlipName实现相同的移动。

4、模块的链接

前面介绍了模块本身的各种操作。

当设置好了各个模块后,还需要把它们按照一定的顺序连接起来,才能组成一个完整的系统模型。

下面讨论模块连接的相关问题。

1)连接两个模块。

这是最基本的情况:

从一个模块的输出端连到另一个模块的输入端。

方法是:

移动鼠标到输出端,鼠标的箭头会变成十字型光标,这时点住鼠标左键,移动鼠标到另一个模块的输入端,当十字箭头出现“重影”时,释放鼠标左键就完成了连接。

2)模块间连线的调整。

这种调整模块间连线位置的任务可以采用简单拖动的办法来实现。

即先把鼠标移到需要的线段位置,按住鼠标左键,移动鼠标到目标位置后,再释放鼠标左键。

要把一条直线分成斜线段,调整方法和前一种情况类似,不同之处在于:

按住鼠标左键之前要先按下Shift键,出现小黑方块之后,鼠标点住小黑方块移动,移动好后再释放Shift键和鼠标。

3)连线的分支。

操作时经常会碰到把一个信号输送到不同的模块的情况,这时就需要分支结构的连线。

这种情况的步骤是:

先连好一条线之后,把鼠标移到支线的起点位置,按下Ctrl键,然后按住鼠标拖到目标模块的输入端,释放鼠标和Ctrl键。

5、连线上反映的信息

1)用粗线表示向量。

为了能够比较直观地区别各个模块之间传输的数据是向量还是数据,可以选择模型文件菜单Format下的WidenonscalarLines选项,这样传输数组的连线就会变粗。

如果再选择Format下的SignalDimension选项,在传输数组的连线上方会显示出通过该连线的数组维数。

2)显示数据类型。

在连线上可以显示前一个模块输出的数据类型:

选择菜单Format下的PortDataTypes选项。

3)信号标志。

为了使模型更加直观、可读性更强,可以给传输的信号做标记。

建立信号标记的方法是:

双击要做标记的线段,出现一个文本编辑框,在里面输入标记的文本,这样就建立了一个信号标记。

信号标记可以随信号的传输在一些模块中进行传递。

支持这些传递的模块有Mux、De-

mux、Inport、Form、Selector、Subsystem和Enable。

要实现信号标记的传递,需要在上面列出的模块输出端建立一个以“<”开头的标记。

当开始仿真或执行Edit菜单下的UpdataDiagram命令时,传输过来的信号标记就会显示出来。

三、电力系统模块库的几类基本模块

下面以表格的形式给出了电力系统模块库中的模块功能简介,从而使用户可以对电力系统模块库的一些主要模块有一个初步的认识。

如表1至表9所示,这些表中的模块名和模块库中的模块图标下的名称一致。

表1ElectricalSourcesLibraryBlocks(电源库模块)

BlockName(模块名)

Purpose(功能)

ACCurrentSource

实现一个正弦型电流源

ACVoltageSource

实现一个正弦型电压源

ControlledCurrentSource

实现一个受控电流源

ControlledVoltageSource

实现一个受控电压源

DCVoltageSource

实现一个直流电压源

表2PowerElectronicsLibraryBlocks(电力电子库模块)

BlockName(模块名)

Purpose(功能)

Diode

实现一个二极管

GTO

实现一个门极可关断的晶闸管

IdealSwitch

实现一个理想开关

IGBT

实现一个绝缘栅双基极管

MOSFET

实现一个金属氧化物半导体场效应管

Thyristor

实现一个晶闸管

表3MeasurementsLibraryBlocks(测量库模块)

BlockName(模块名)

Purpose(功能)

CurrentMeasurement

测量电路中的电流

ImpedanceMeasurement

测量电路中的阻抗(频率的函数)

Multimeter

测量电力系统组合模块的电压和电流

VoltageMeasurement

测量电路中的电压

表4ElementsLibraryBlocks(元件库模块)

BlockName(模块名)

Purpose(功能)

Breaker

实现一个电流过零时开断的断路器

DistributedParametertLine

实现一个N相分布参数输电线路

LinearTranformer

实现一个双绕组或三绕组线性电力变压器

MutualInductance

实现一个两线圈或三线圈耦合的电抗器

ParallelRLCBranch

实现一个并联RLC支路

ParallelRLCLoad

实现一个并联RLC负载

PISectionLine

实现一个集中参数单相输电线路

SaturableTransformer

实现一个双绕组或三绕组可饱和的电力变压器

SeriesRLCBranch

实现一个串联RLC支路

SeriesRLCLoad

实现一个串联RLC负载

SurgeArrester

实现一个金属氧化物避雷器

Three-PhaseTranformer(TwoWinding)

实现一个三相双绕组电力变压器

Three-PhaseTranformer(ThreeWinding)

实现一个三相三绕组电力变压器

表5MachinesLibraryBlocks(电机库模块)

BlockName(模块名)

Purpose(功能)

AsynchronousMachine

动态三相异步电机(感应电机)

DCMachine

他励直流电机

ExcitationSystem

励磁系统

HydraulicTurbineandGovernor

水轮机和调速系统

PermanentMagmetSynchronousMachine

永磁同步电机

SimplifiedSynchronousMachine

简化同步电机

SteamTurbineandGovernor

汽轮机和调速系统

SynchronousMachine

动态三相凸极同步电机

表6Powerlib_extras/ControlBlocksLibraryBlocks(电力系统扩展/控制模块库模块)

BlockName(模块名)

Purpose(功能)

PWMGenerator

脉宽调制脉冲发生器

Synchronized6-PulseGenerator

同步6脉冲发生器

Synchronized6-PulseGenerator

同步12脉冲发生器

3-PhaseProgrammableSource

三相信号源,

Timer

定时器

表7Powerlib_extras/MeasurementsLibraryBlocks(电力系统扩展/测量库模块)

BlockName(模块名)

Purpose(功能)

abc_to_dq0Transformation

实现派克变换从abc到dq0变换

Active&ReactivePower

测量电压电流对的有功和无功

dq0_to_abcTransformation

实现派克变换从dq0到abc变换

Fourier

傅立叶变换

RMS

测量信号的均方根(RMS)

3-PhaseSequenceAnalyzer

测量三相信号的正序、负序和零序分量

Three-PhaseV-IMeasurement

测量三相电压和电流

TotalHarmonicDistortion

测量总谐波失真度

表8Powerlib_extras/Three-PhaseBlocksLibrary(电力系统扩展/三相模块库)

BlockName(模块名)

Purpose(功能)

3-PhaseBreaker

实现电流过零时开断的三相断路器

3-PhaseFault

相间和接地短路故障模块

表9ConnectoesLibraryBlocks(连接器库模块)

BlockName(模块名)

Purpose(功能)

BusBar

母线

Ground

Neutral

中性点

为了保存和观察仿真结果,还要用到Simulink的其他模块,例如接收模块(Sinks)。

单击命令窗口中的Simulink按钮,打开Simulink的模块库浏览器。

在模块库浏览器中选择Simulink模块类库,再进一步选择接收模块库Sinks,可观察到相应的各个接收模块。

具体的接收模块及其功能如表10所示。

表10Simulink/Sinks(仿真/接收模块)

BlockName(模块名)

Purpose(功能)

Scope

观测器(示波器)

XYGraph

XY观测器(示波器)

Display

输入信号的数字显示

ToFile

以行格式将时间和输出值写入指定的MAT文件

ToWorkspace

将输出值写入MATLAB主工作区指定的数组或结构

 

第三节电力系统故障暂态仿真

本节在第二节基础上,更深入地介绍利用电力系统工具箱建立电力系统仿真模型、在Simulink环境中进行电力系统故障暂态仿真的方法,并给出一个具体的仿真算例。

一、仿真模拟参数的设定

1、Solver参数的设定

Solver参数的设定是进行仿真模拟工作前的准备工作,如何设定参数是根据程序设计时的需求而定的,以便Simulink发挥最好的效果。

最基本的参数设定包括起始与终止模拟的时间、模拟的步长大小与Solver的类别等。

进行参数设定可以在已建好的仿真模型窗口下选择Simulation/SimulationParameters,出现如图10所示的仿真参数对话框,其中的选项的意义如下:

(1)Apply:

用于修改参数后的确认,表示将目前改变的参数设定用于接下来的仿真。

图10仿真参数(Solver)设定对话框

(2)OK:

确认参数设置的相关操作,并关闭参数设置对话框。

(3)Cancel:

取消参数设置的相关操作,并关闭参数设置对话框。

(4)Help:

显示使用方法的说明。

(5)Simulationtime:

为仿真起止时间,不一定等于真正的时间,需要根据程序的大小与复杂程度而定。

(6)Solveroptions(解法器选项):

包括许多选项,其中

1)Variable-step(可变步长):

能够在仿真过程中自动修改步长的大小(stepsizes)以满足容许误差的设定与零跨越(zerocrossing)的需求,一般设定为ode45,但当模型没有表示连续状态(Continuousstate)时,就必须选discrete。

最大步长(Maxstepsize)的默认值一般为auto。

2)Fixed-step(固定步长):

固定步长的大小,不会自动修正步长以满足容许误差的设定与零跨越的需求。

其中解法器Solver共有ode5,ode4,ode3,ode2,ode1和discrete六种解法可选,一般采用ode4作为Solver,它等效于ode45。

另外ode3等效于ode23。

3)Outputoptions:

第一个选项为Refineoutput,其Refinefactor最大为4,默认值为1,数值越大则输出越平滑。

第二个选项为Produceadditionaloutput,设定其Outputtimes的数值与Refinefactor类似,它能使输出更平滑。

第三个选项是Producespecifieldonly,只是在设定的Outputtimes中产生输出。

2、工作空间(Workspace)参数的设定

在WorkspaceI/O标签页内可以设定若干参数,如图11所示。

该标签页的主要目的是处理数据的输入/输出。

可在Loadfromworkspace中设定两个列向量的变量名称,如图11所示的(t,u)。

其中t是时间,而u则是对应该时间的数据值。

写出的部分在Savetowoekspace中设定,可设定4个变量,分别为Time、States、Output和Finalstate。

图11工作空间(Workspace)窗口

设定State后就可以从其他的地方读取状态值,或在得到稳定状态值时,将其保存起来以备下次仿真时使用。

只要在Loadinitial及Savefinal中给定变量名称,便

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1