第7节 怎样在pscad中call自定义函数?(自定义函数由fortran语言编写)
7.1 pscad脚本中call的函数由fortran语言编写7.1.1在Fortran编译器中编写如下函数(可以先在文本文档中写,再把文本档后缀改为.f,但前提是你装了fortran编译器):<!函数功能:比较i和j的大小,并将小赋值给i,大的赋值给j。注意每段前空6格>
Subroutine my_bj(i,j)
REAl i,j,t
if (i>j) THEN
t=i
i=j
j=t
ENDIF
end subroutine my_bj
7.1.2将该函数文件加载到pscad中(讲解视频中可能忘说这步了...)。
7.1.3新建一个自定义模型(元件),并在其中自定义模型中调用函数。
<!功能:通过调用两值比较函数,将三个输入i1、i2、i3从小到大排序,并按从小到大的顺序,依次赋值给o1、o2、o3输出>。
#STORAGE INTEGER:10
#STORAGE REAL:10
#LOCAL INTEGER NMY_NSTORF
#LOCAL INTEGER NMY_NSTORI
#LOCAL REAL a,b,c
#BEGIN
#ENDBEGIN
a=$i1
b=$i2
c=$i3
IF(a .gt. b) THEN
call my_bj(a,b)
ENDIF
IF(b .gt. c) THEN
call my_bj(b,c)
ENDIF
IF(a .gt. b) THEN
call my_bj(a,b)
ENDIF
$o1=a
$o2=b
$o3=c
7.1.4 对于多个子模块电容电压排序,需要注意的是,它不仅需要将多个子模块的电容电压值进行排序,还需要知道排序后的子模块电容的编号,这样才能确定是否让该子模块投切。附一个我参考博客上的排序例子(该排序算法用于pscad中排序时,部分程序需要省略,但该程序借鉴意义极大):<博主名称:楚香饭>链接如下
近期预告
1.PSCAD/Matlab仿真模型解读
往期回顾
PSCAD入门教程(第6节):构建自定义元件(附讲解模型)
简单示例模型在文章底部自行提取!
PSCAD入门教程(第5节): 4种常用元件的使用(附讲解模型)
简单示例模型在文章底部自行提取!
由于本人水平有限,所述内容难免会有疏漏之处,有遗漏或阐述不当之处请各位同学、老师傅指正,公众号私信或QQ(3135975766)。
示例模型百度网盘链接(其中有一个为官方CInterface模型可用于学习)