シミュレーションの演習のコード
GS6.BGSのコードを以下に示します。このコードは BGSP用です。第1行の
BOND SYMBOL EXPR OUT DEFIN PARM INIT
はコードの一部ですから省略してはいけません。また、BGSPではカラム指定が厳格で1カラムでもずれるとエラーになります。また、許される文字は英数字、コロン(:)、スラッシュ(/)、加減乗算記号(+-*)、半角空白のみであり、制御文字が入るとエラーになります。倍角の空白はエラーを生じますが、ソースをプリントしても気づきにくいので注意が必要です。
GS6のコード
BOND SYMBOL EXPR OUT DEFIN PARM INIT SF1 1 ZJ -1 2 3 RE1 2 CI1 3 / BC: V131 DP3 BC: PR EF3 BC: PX FL3 / SF1 PA: P1 10.0 F=P1 EOD RE1 PA: PR 0.033 R=Z*PR EOD CI1 PA: PC 1.0 C=Z/PC IF(C.LT.2.0) THEN C=3.5*C ELSE IF(C.LT.194.0) THEN C=1.32/192.0 *(C-2)+7.0 ELSE IF(C.LT.351.0) THEN C=8.32+1.58/157.0 *(C-194.0) ELSE IF(C.LT.478.0) THEN C=9.9+1.8/127.0*(C-351.0) ELSE IF(C.LT.580.0) THEN C=11.7 +2.3/102.0 *(C-478.0) ELSE IF(C.LT.727.0) THEN C=14.0 +5.8 /147.0 *(C-580.0) ELSE IF(C.LT.823.0) THEN C=19.8+8.2/96.0 *(C-727.0) ELSE C=28.0+28.0/103.0*(C-823.0) ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF EOD / 0.0 100.0 0.1 1000 / DP3 2.0D00 /
20-Simによるコード:ブロックボンドグラフを要素内に包含した場合
Sf parameters real flow = 10.0; variables real effort; equations p.f = flow; effort = p.e; C31 parameters real c = 1; variables real zx; equations zx= int(p.f,0.0001)/c;//ZX:Effort p.e= if zx < 2.0 then //P:Pressure 3.5*zx else if zx <194.0 then 1.32/192.0*(zx-2)+7.0 else if zx < 351.0 then 8.32+1.58/157.0*(zx-194.0) else if zx < 478.0 then 9.9+1.8/127.0*(zx-351.0) else if zx < 580.0 then 11.7+2.3/102.0*(zx-478.0) else if zx < 727.0 then 14.0+5.8/147.0*(zx-580.0) else if zx < 823.0 then 19.8+8.2/96.0*(zx-727.0) else 28.0+28.0/103.0*(zx-823.0) end end end end end end end; R12 parameters real r = 0.033; equations p.f= p.e*r;;
20-Simによるコード:ブロックボンドグラフを要素外にした場合
Sf11 parameters real flow = 10.0; variables real effort; equations p.f = flow; effort = p.e; C131parameters real c = 1; variables real zx; equations zx= int(p.f,0.05)/c;//ZX:Effort port1=zx; p.e= port2; R12 parameters real r = 0.033; equations p.f= p.e*r;; Table parameters string filename='J:\20-sim\Simtec\GS6.txt'; equations output= table (filename, input); J:\20-sim\Simtec\GS6.txt 0.0000 0.0000 2.0000 7.0000 194.0000 8.3200 351.0000 9.9000 478.0000 11.7000 580.0000 14.0000 727.0000 19.8000 823.0000 28.0000 926.0000 56.0000