シミュレーションの演習のコード

GS11.BGSのコードを以下に示します。このコードは BGSP用です。第1行の

BOND SYMBOL EXPR OUT DEFIN PARM INIT

はコードの一部ですから省略してはいけません。また、BGSPではカラム指定が厳格で1カラムでもずれるとエラーになります。また、許される文字は英数字、コロン(:)、スラッシュ(/)、加減乗算記号(+-*)、半角空白のみであり、制御文字が入るとエラーになります。倍角の空白はエラーを生じますが、ソースをプリントしても気づきにくいので注意が必要です。

解説記事では20-Simを用いるシミュレーションを加えましたので、20-Simのコードも付け加えました。

GS11のコード

BOND SYMBOL EXPR OUT DEFIN PARM INIT
SE1    11
OJ     -11   14    13    20    19 
II1    14
RE1    13
RE2    20
GY1    19    21
OJ     -21   24    23
II2    24
RE3    23  
/
BC: W24   FL24
BC: M21   EF21
BC: I14   FL14
/
SE1
PA: PE1    2.200D+02
       E=PE1
EOD
II1
PA: PI1    1.7500D-01
        L=Z/PI1
EOD
RE1
PA: PR1    8.750D-01
        R=Z/PR1
EOD
RE2
PA: PR2    1.750D+00
FB: XR2    FL20
RV: XXR2
        XXR2=XR2
        R=PR2*Z
EOD
GY1
PA: PGY1   3.070D-02
RV: XXR2
        GY=PGY1*XXR2
EOD
II2
PA: PI2    0.8000D+00
       L=Z/PI2
EOD
RE3
PA:PR3     6.600D-02
       R=Z*PR3
EOD
/
0.0000            5.000D-00         1.000D-08         4000
/

GS11のコード;20-Simの場合

Gain
parameters
	real K = 0.0307;		// gain
equations
	output = K * input;

I1
parameters
	real i = 0.175;
equations
    state = int(p.e);
    p.f = state / i;

I2
parameters
	real i = 0.8;
equations
    state = int(p.e);
    p.f = state / i;

MGY
equations
	p1.e = r * p2.f;
	p2.e = r * p1.f;

R
parameters
	real r = 0.875;
equations
	p.e = r * p.f;
R1
parameters
	real r = 0.066;
equations
	p.e = r * p.f;

Se
parameters
	real effort = 220;
variables
	real flow;
equations
	p.e = effort;
	flow = p.f;