[转载]PSCAD调用MATLAB/SIMULINK之接口元件设计
原文地址: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" )//相对路径表示。
【[转载]PSCAD调用MATLAB/SIMULINK之接口元件设计】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的文件路径,文件名和接口调用频率。
到此一个接口元件就完成了。
转载于:https://www.cnblogs.com/accjsjc/p/6011607.html
推荐阅读
- SpringBoot调用公共模块的自定义注解失效的解决
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 分享!如何分分钟实现微信扫二维码调用外部浏览器打开指定页面的功能
- WKWebview|WKWebview js 调用oc 和oc调用js
- 2019-07-13Anaconda(转载的别人的)
- H5、js调用手机通话|H5、js调用手机通话,短信
- Swift高级应用|Swift高级应用 -01
- 《佛祖机缘24––离却语言》(转载)
- Application|linux应用编程笔记(5)系统调用文件编程方法实现文件复制
- 为何反感刷屏的你,今天却毫不犹豫转载了「小朋友的画」()