シミュレーションの演習のコード
GS5.BGSのコードを以下に示します。このコードは BGSP用です。第1行の
BOND SYMBOL EXPR OUT DEFIN PARM INIT
はコードの一部ですから省略してはいけません。また、BGSPではカラム指定が厳格で1カラムでもずれるとエラーになります。また、許される文字は英数字、コロン(:)、スラッシュ(/)、加減乗算記号(+-*)、半角空白のみであり、制御文字が入るとエラーになります。倍角の空白はエラーを生じますが、ソースをプリントしても気づきにくいので注意が必要です。
GS5のコード
BOND SYMBOL EXPR OUT DEFIN PARM INIT SF1 12 ZJ -12 14 13 RE1 14 OJ -13 25 23 II1 23 RE2 25 / BC: W23 FL23 BC: M14 EF14 BC: F14 FL14 / SF1 PA: PF1 1.57D+02 F=PF1 EOD II1 PA: PI1 2.6700D-01 L=Z/PI1 EOD RE2 PA: PR5 5.000D-02 R=PR5*Z EOD RE1 PA: PR61 1.3333D-00 PA: PR62 9.3333D-01 PA: PR63 3.0000D+00 PA: PR64 2.4000D+01 PA: PR65 2.1444D+00 PA: PR66 -2.000D-01 PA: PR67 3.2000D+01 PA: PR68 -3.3333D-01 PA: PR69 4.00000D+01 PA: PR70 -1.0000D-01 PA: PR71 1.90000D+01 PA: PR72 5.00000D-00 PA: PR73 1.00000D+00 IF(Z.LE.-7.5)THEN RR=-10.0 ELSEIF(Z.LE.7.5)THEN RR=PR61*Z ELSEIF(Z.LE.22.5)THEN RR=PR62*Z+PR63 ELSEIF(Z.LE.40.0)THEN RR=PR64 ELSEIF(Z.LE.60.0)THEN RR=PR66*Z+PR67 ELSEIF(Z.LE.90.0)THEN RR=PR68*Z+PR69 ELSEIF(Z.LE.140.0)THEN RR=PR70*Z+PR71 ELSE RR=PR72 ENDIF R=RR EOD / 0.0000 1.000D+01 1.000D-05 2000 /
20-Simによるコード:ブロックボンドグラフを要素内に包含した場合
Sf12 parameters real flow = 1.57e2; variables real effort; equations p.f = flow; effort = p.e; R14 parameters real pr61=1.333e-0; real pr62=9.3333e-1; real pr63=3.0e0; real pr64=2.4e1; real pr66=-2.0e-1; real pr67=3.2e1; real pr68=-3.3333e-1; real pr69=4.0e1; real pr70=-1.0e-1; real pr71=1.9e1; real pr72=5.0e0; equations p.e=if p.f <= -7.5 then -10.0 else if p.f <= 7.5 then pr61*p.f else if p.f <= 22.5 then pr62*p.f+pr63 else if p.f <= 40.0 then pr64 else if p.f <= 60.0 then pr66*p.f + pr67 else if p.f <= 90.0 then pr68*p.f + pr69 else p.f <= 140.0 then pr70*p.f + pr71 else pr72 end end end end end end end; R25 parameters real r = 5.0e-2; equations p.e=p.f*r; I23 parameters real i = 2.67e-1; equations state = int(p.e); p.f = state / i;
20-Simによるコード:ブロックボンドグラフを要素外にある場合
Sf12 parameters real flow = 1.57e2; variables real effort; equations p.f = flow; effort = p.e; MR14 equations port1=p.f; p.e = r; R25 parameters real r = 5.0e-2; equations p.e=p.f*r; I23 parameters real i = 2.67e-1; equations state = int(p.e); p.f = state / i; Table parameters string filename= 'd:\20-sim\Simtec\GS5.txt'; equations r = table (filename, input); GS5.txt -7.5 -10.0 0.0 0.0 7.5 10.0 22.5 24.0 40.0 24.0 60.0 20.0 90.0 10.0 140.0 5.0 157.0 5.0