您的位置:首页 > 编程语言 > MATLAB

[转载]PSCAD调用MATLAB/SIMULINK之接口元件设计

2016-10-13 09:13 375 查看
原文地址:PSCAD调用MATLAB/SIMULINK之接口元件设计作者:luckyhappier

1)接口元件

接口元件包括Graphics,Parameters和Script。注意:变量要与DSDYN要一致(PSCAD根据变量名区别变量)。





2)Circuit

定义接口元件外壳。根据需要定义输入输出类型,数据类型,维数。(如下图)

在Circuit中右击选Create New
Comoponent(接口元件向导(如上图)





3)Graphics

元件外观和修改输入输出数列类型,维数。在自定义元件右键选择Edit Definition进入Graphics。

双击绿色节点弹出Connection,在此修改输入输出性质。

注意:Symbol输入是数列名均和脚本代码里面一致。

4)Parameters(在没有选中Page Module)

在没有选中Page Module时在完成Graphics后进入此,单击菜单New
Category后点OK,在分类布上(点格矩阵区域)右键选New Control,在选不同类型,此选Text
Field(设计matlab/simulink
路径和文件名,注意:Symbol输入是名和脚本代码里面一致,caption:describe the Text
Field)和Input Field (调用matlab的速度,钩选ALL Signal Names)

5)Script

注意:变量要与前面定义输入输出要一致。DSDYN完成代码添加。在script里单击segement
manager。在弹出对话框选添加DSDYN,OK后进入添加代码阶段。(在网上下个Fortran help看看就OK)

Fortran 语言:

#STORAGE REAL:33 //向系统申请一个数据空间,包括输入输出的个数,有real和integer

#LOCAL INTEGER I_CNT //定义一个局部变量

! First Input Array (REAL(31))

DO
I_CNT = 1,31,1 //循环压栈,

STORF(NSTORF+I_CNT-1)
= $INPUT(I_CNT)

END
DO //注意空格

DO的用法简介:DO 与 end DO联合使用。

DO 变量名 = 初值,终值,步长(当步长为1时可省略)

………

ENDDO

DO WHILE(条件语句)

………

ENDDO

IF (条件) then

。。。。

Else if(条件) then

。。。。

Endif

或 #if
//不用加then

………

#ELSE

………

#endif

! SUBROUTINE MLAB_INT(MPATH, MFILE, INPUTS,
OUTPUTS)//路径一般使用相对路径,即在你当前的工程目录下建立一个文件夹,比如命名为mfiles。则"$Path"可改写为”:$Dir$Path”,Path,Name均为设定的变量值,A
MATLAB module is called by [D] = TEST(A,B,C), where TEST is a
module in a MATLAB file 'TEST.m', that is located in C:TEMP
MLAB_FILES. The input 'A' is a REAL variable, 'B'
is a REAL array of dimension 31 and 'C' is an INTEGER.
The output 'D' is a REAL array of dimension
10.

The MATLAB interface subroutine call would then appear as
follows:

CALL MLAB_INT("C:TEMPMLAB_FILES", "TEST", "R R(31) I",
"R(10)")

CALL MLAB_INT("%:Dir$Path", "$Name", "R(3)" , "R"
)//相对路径表示。

CALL
MLAB_INT("$Path","$Name","R(31)","R(2)")

!

! First Output Array (REAL(2))

! 得到输出值,同样是使用变量栈输出,数组的标号顺序与栈先后顺序一致。

DO
I_CNT=1,2,1

$OUTPUT(I_CNT)
= STORF(NSTORF+31+I_CNT-1)

ENDDO

!

! Increment STORF pointer

!改变栈的索引值

NSTORF
= NSTORF + 33

!

6)在Circuit

对自定义元件调用matlab/simulink的文件路径,文件名和接口调用频率。

到此一个接口元件就完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: