シミュレーションの演習のコード
GS15.BGSのコードを以下に示します。このコードは BGSP用です。第1行の
BOND SYMBOL EXPR OUT DEFIN PARM INIT
はコードの一部ですから省略してはいけません。また、BGSPではカラム指定が厳格で1カラムでもずれるとエラーになります。また、許される文字は英数字、コロン(:)、スラッシュ(/)、加減乗算記号(+-*)、半角空白のみであり、制御文字が入るとエラーになります。倍角の空白はエラーを生じますが、ソースをプリントしても気づきにくいので注意が必要です。
GS15のコード
BOND SYMBOL EXPR OUT DEFIN PARM INIT
SF1 11
ZJ -11 13 14 142 143 144
OJ -142 232 242 222 148
RE6 13
CI4 14
RE3 232
CI2 242
II1 222
TF1 143 271
OJ -271 231 241 221 149
OJ -144 230 220 150
RE4 231
CI3 241
II2 221
RE5 230
II3 220
ZJ -148 -149 -150 28 25 24
RE1 28
RE2 25
CI1 24
/
BC: Q25 FL25
BC: P14 EF14
BC: P24 EF24
BC: F1 FL150
BC: F2 FL149
BC: F3 FL148
/
SF1
PA: PSF1 1.600D+04
F=PSF1
EOD
CI4
PA: PC1 1.3000D+00
PA: PC2 1.7130D+00
C=Z/PC1+PC2
EOD
RE6
PA: PC136 1.000D+00
PA: PC000 0.000D+00
PA: PC100 1.000D+00
PA: PC200 2.000D+00
PA: PC160 1.600D+04
R=Z/PC136
IF(R.LE.PC100)THEN
R=PC000
ELSE
R=PC160*(R-PC100)
ENDIF
EOD
CI1
PA: PC110 1.300D+00
PA: PC111 6.9674
C=Z/PC110+PC111
EOD
RE2
PA: PC250 0.1500D+00
PA: PC251 1.6000D+04
PA: PC000 0.0000D+00
PA: PC252 0.2000D+00
PA: PC253 0.3000D+00
PA: PC100 1.0000D+00
PA: PC254 1.0667D+05
PA: PC255 3.2000D+05
PA: PC256 6.4000D+04
R=Z/PC100
IF(R.LE.PC250)THEN
R=PC254*R
ELSEIF(R.LE.PC252)THEN
R=-PC255*R+PC256
ELSE
R=PC000
ENDIF
EOD
RE1
PA: PC000 0.0000D+00
PA: PC301 6.0000D+00
PA: PC302 8.0000D+00
PA: PC303 1.0000D+04
PA: PC100 1.0000D+00
PA: PC304 2.0000D+00
R=Z/PC100
IF(R.LE.PC301)THEN
R=PC000
ELSE
R=PC303/PC304*(R-PC301)
ENDIF
EOD
RE3
PA: PC401 3.6000D-06
R=Z*PC401
EOD
RE4
PA: PC401 3.6000D-06
R=Z*PC401
EOD
RE5
PA: PC501 7.2000D-06
R=PC501*Z
EOD
CI2
PA: PC601 0.37000D+00
PA: PC602 -0.267019D+00
C=Z/PC601+PC602
EOD
CI3
PA: PC701 1.5000D+00
PA: PC702 -1.3341D+01
C=Z/PC701+PC702
EOD
II1
PA: PC801 8.3000D-07
PA: PC802 1.0110D+03
L=Z/PC801+PC802
EOD
II2
PA: PC801 8.3000D-07
PA: PC803 -1.218D+03
L=Z/PC801+PC803
EOD
II3
PA: PC804 1.6500D-06
PA: PC805 4.374D+03
L=Z/PC804+PC805
EOD
TF1
PA: PT0001 -1.0000D+00
TF=PT0001
EOD
/
0.00 5.00D-02 1.000D-08 4000
/
20-Simによるコード
Sf11
parameters
real flow = 1.6e4;
variables
real effort;
equations
p.f = flow;
effort = p.e;
C14
parameters
real c = 1.3e0;
real pc2=1.713e0;
equations
state = int(p.f);
p.e = state / c+pc2;
R131
parameters
real pc136=1.000e+00;
real pc000=0.000e+00;
real pc100=1.000e+00;
real pc200=2.000e+00;
real pc160=1.600e+04;
variables real zz;
equations
zz=p.e/pc136;
p.f=if zz <=pc100 then
pc000
else
pc160*(zz-pc100)
end;
R230
parameters
real pc501 = 7.2000e-06;
equations
p.e = pc501* p.f;
I220
parameters
real pc804=1.6500e-06;
real pc805=4.374e+03;
equations
state = int(p.e);
p.f = state /pc804+pc805;
R231
parameters
real pc401=3.6000e-06;
equations
p.e = pc401 * p.f;
C241
parameters
real pc701=1.500e+00;
real pc702=-1.3341e+01;
equations
state = int(p.f);
p.e = state / pc701+pc702;
I221
parameters
real pc801=8.300e-07;
real pc803=-1.218e+03;
equations
state = int(p.e);
p.f = state / pc801+pc803;
TF2627
parameters
real pt001=-1.000e+00;
equations
p1.e = pt001* p2.e;
p2.f = pt001* p1.f;
R271
parameters
real pc401=3.600e-06;
equations
p.e = pc401 * p.f;
C242
parameters
real pc601=0.3700e+00;
real pc602=-0.267011e+00;
equations
state = int(p.f);
p.e = state / pc601+pc602;
I1222
parameters
real pc801=8.300e-07;
real pc802=1.0110e+03;
equations
state = int(p.e);
p.f = state / pc801+pc802;
R281
parameters
real pc301=6.000e+00;
real pc000=0.000e+00;
real pc100=1.000e+00;
real pc303=1.000e+04;
real pc304=2.000e+00;
variables real zz;
equations
zz=p.e/pc100;
p.f=if zz <=pc301 then
pc000
else
pc303/pc304*(zz-pc301)
end;
C24
parameters
real pc110 = 1.300e+00;
real pc111=6.9674 {Pa};
equations
state = int(p.f);
p.e = state / pc110+pc111;
R251
parameters
real pc250=0.15000e+00;//
real pc252=0.2000e+00;//
real pc000=0.000e+00;//
real pc100=1.000e+00;//
real pc254=1.0667e+05;//
real pc255=3.2000e+05;//
real pc256=6.4000e+04;//
variables
real zz;
equations
zz=p.e/pc100;
p.f= if zz <= pc250 then
pc254*zz
else
if zz <= pc252 then
-pc255*zz+pc256
else
pc000
end
end;
