?
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的文件路徑,文件名和接口調用頻率。
到此一個接口元件就完成了。
?
??