シミュレーションの演習のコード
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
