当前位置:首页 > 直流输电PSCAD_EMTDC建模报告
④DATADSD和DATADSO节(DATADSDandDATADSOSection):显示元件定义中的模型数据节的内容;
2)MaPFile:
图谱文件用于显示整个PSCAD仿真工程的一般信息,以及提供不同子页数据文件关联的信息。最重要的作用是提供节点查找表格,以便把局部节点号码转换成全局号码。图谱文件主要包括:
①维数信息节(DimensioningInofrmationsection):列出psCAD仿真工程的动态维数信息;
②实时参数节(RuntimeParameterSSection):提供仿真实际运行时的信息; ③节点图谱信息节(NodeMappingInorrmationsection):提供psCAD仿真工程中电力节点的图谱信息;
④全局传输线节(GlobalTransmissionLineSSection):提供PSCAD仿真工程中电力传输线的信息;
⑤PGB名字信息节(PGBNameInofmrationSection):列出PSCAD仿真工程中所有输出通道的信息。
8
第三章 线路保护系统模型的建立
3.1通过PSCAD/EMTDC与C语言接口技术实现自定义功能模块
3.1.1 PSCAD / EMTDC 与C 语言接口的原理
PSCAD/EMTDC有着较为完善的元件模型库, 为了满足不同的应用要求,EMTDC为用户提供了自定义元件模型功能,从而增强了仿真的灵活性。由于EMTDC 自带保护模块功能较为简单,保护算法单一,且难以实现保护内部复杂的逻辑与时序关系,因此,在利用PSCAD/EMTDC平台进行继电保护仿真时,采用软件编程形式构造保护模块较为实用。
PSCAD / EMTDC 允许用户自定义仿真模块, 并提供了Fortran、C 和Matlab 三种语言给用户进行自定义模块功能程序的编程。PSCAD / EMTDC 是在Fortran 语言上实现的, 因而Fortran 的内嵌性能好, 用Fortran 语言编写源代码运行效率高, 但Fortran 语言的格式限制较多, 用户编写大型程序时往往会感觉不方便, 且程序出错后所给出的错误信息不明确, 使得调试难度增加。Matlab 是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言, 但相对于直接用Fortran 或者C 语言编写源代码而言, 调用Matlab 运行的效率则很低。C 语言具有功能丰富、表达能力强、目标程序效率高、可移植性好等优点,且在微机继电保护中得到了广泛应用, 因此选择C 语言作为PSCAD / EMTDC 用户自定义模块的开发语言是适宜的。但PSCAD /EMTDC 目前不直接支持C 语言, 需要使用Fortran语言编写简单的接口函数,将EMTDC主程序与C语言程序模块连接起来,,用户编制好的C 语言源代码必须经过一系列人为的编译连接工序后才能为EMTDC 使用。
在本软件中,元件核心功能由C语言代码实现,使用Fortran语言编写简单的函数将EMTDC主程序和C语言功能模块连接起来,在模块scrpt定义中,添加对Fortran接口函数的调用声明,即通过模块scrpt定义来调用Fortran接口函数,再通过Fortran接口函数调用C语言函数,最终实现EMTDC对C语言函数
9
的调用。
例如定义一个输入变量为in,输出变量为out的功能模块,这个模块的功能由C语言函数TEST_C(in,out)实现,通过Fortran语言函数TEST_F(in,out)调用C语言函数TEST_C(in,out),TEST_F(in,out)格式如下:
SUBROUTINE TEST_F (in, out) INTEGER in, out INTERFACE
SUBROUTINE TEST_C (in, out) INTEGER in, out END SUBROUTINE END INTERFACE CALL TEST_C (in, out) END
在模块的scrpt定义中,加入CALL TEST_F ($in,$out),以实现对Fortran接口函数的调用。 3.1.2元件模块的建立
在PSCAD4.0以上版本中,元件模型定义可直接在编辑器窗口中完成,编辑器窗口中涉及到元件模型定义或编辑的子窗口有:图形子窗口、参数子窗口和script子窗口。具体定义步骤如下:
1)图形绘制:元件模型图形的绘制在图形子窗口中进行,使用点、线条、矩形、椭圆和弧等图元完成元件模型外观的绘制。各种图元的属性可根据需要设置,例如:大小、线形、颜色等;
2)参数栏定义:元件模型的输入参数栏定义在参数子窗口中进行,通过添加多个类(Catgeoreis)完成模块的参数栏定义。类中可定义的参数栏分三种,包括:文本框(InputBox)、输入域(InputField)和选项框(ChoiceBox)。文本框主要用于添加输入参数的描述性说明;输入域用于添加元件必要的数值输入;选项框用于设置元件中需要的一些条件设置。
10
3)scrpt定义:script定义是模块定义的核心部分,决定用户定义模块的功能。通过写入大量代码而组成各种段(segments),主要包括:Fortran段(Fortransegments),计算段(Computations segments),支路段(Branch segments),主动态程序段(DSDYN),输出定义段(DSOUT),数据检查段(CheckS),帮助段(Help),说明段(comments)等。每一个段执行一种功能,一般一个元件的script定义不会用到所有类型的段,只会用到相关类型的段,例如:变压器段一般只用在祸合元件定义中。段主要由用户模块的功能来决定,实际上是一些文本文件,按一定顺序排列。经常使用的段主要有:Fortrna段、计算段和支路段。其中:计算段主要定义对输入模块数据的处理;支路段用来定义电力节点之间元件的类型,如:电阻、电容、电感或开关,从而形成复杂电力网络;Fortran段主要放置定义元件属性的Forrtna代码,代码可以是标准的Fortran代码,也可以是PSCAD script格式的代码,或者二者混合形式。
而在本软件中,由于元件的核心功能由C语言函数实现,再通过Fortran语言函数对C语言函数进行调用,在模块的scrpt定义中,只需加入一个CALL函数,以实现对Fortran接口函数的调用,无需在scrpt中进行元件功能代码的编写。
为保证正确性,在建立各元件功能模块后对其功能进行测试,以保证其功能准确无误。图3和图4分别是西门子元件库中LVM元件外观和功能示意图。
图3、西门子元件库中LVM元件外观
11
共分享92篇相关文档