在PSCAD/EMTDC中搭建自定义模型库时,自定义模型的功能代码可以采用Fortran或C语言编写,模块功能采用C语言编写时,需要通过Fortran接口程序实现C代码的执行。在PSCAD中进行功能模块构建时,首先要完成前面章节论述的模块外观、输入输出变量定义、模块参数设置等与模块的人机界面相关的模块设计工作,然后才能编写模块最核心的功能代码部分,本节重点论述仿真平台功能模块的代码构成,以及各部分代码的调用关系。
在用C语言编写模块功能代码时,为将C语言代码嵌入EMTDC中执行,需要一系列的子程序调用过程,如图325所示。模块设计时的脚本(Script)是EMTDC自定义模块内置代码,具有最高的执行等级,脚本代码中调用了Fortran接口程序,该接口程序是脚本代码与C代码进行数据交互的桥梁,EMTDC提供了与外部程序相互调用时的头定义文件,并在Fortran接口程序中调用这些头文件,以便实现对EMTDC静态存储空间中的数据的读取、计算处理和存储。Fortran接口程序中对EMTDC静态存储空间的入口地址(NEXC)进行了定义,以便C代码正确的读取模块输入数据,最后进行C子程序的调用。
C子程序是仿真平台模块功能的核心,本仿真平台中所有功能简单及功能复杂的模块都通过C代码实现模块功能,在C代码中可以直接对EMTDC中静态存储空间里的数据进行读取和数据处理,并把处理后的结果存储至EMTDC静态存储空间,程序代码执行完毕后,最终返回至模块脚本(Script)代码,在脚本代买中将C代码处理后的结果从EMTDC静态存储空间中读取出来,并通过模块输出变量输出计算结果。(www.xing528.com)
图3-25 仿真平台功能模块各子程序调用关系
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。