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

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

BOND SYMBOL EXPR OUT DEFIN PARM INIT

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

GS9のコード

BOND SYMBOL EXPR OUT DEFIN PARM INIT
SF1    11
ZJ     -11   13    14
ZJ     -14   19    12
CI1    13
TF1    19    20
OJ     -20   22    23    24
II1    24
CI2    23
RE1    22
RE2    12
/
BC: P13   EF13
BC: Q12   FL12
/
SF1
PA: PE1    400.0           inflow
      F=PE1
EOD
CI1
PA: PC1    1.0             capacitive load
      C=Z/PC1
EOD
TF1
PA: PT1    2.0
      TF=PT1
EOD
RE2
PA: PR2    600.0
FB: XXR    DP23
RV: XXF1 
      IF(XXR.LT.0.0) THEN
       XXF1=0.0
      ELSE
       XXF1=XXR
      ENDIF
      R=Z*PR2*XXF1
EOD
II1
PA: PM1    3.0D-06         piston mass
      L=Z/PM1
EOD
CI2
PA: PC2    1.0
      C=Z/PC2
       IF(C.LT.0.0) THEN
        C=200.0*C+5.0
       ELSE
        IF(C.LT.0.4) THEN
         C=C+5.0
        ELSE
          C=200.0*C-74.6
        ENDIF
       ENDIF
EOD
RE1
PA: PR1    0.01
       R=Z*PR1
EOD
/
0.00              0.10              0.0001             1000
/

20-Simのコード

Sf11
parameters
	real flow = 400.0;
variables
	real effort;
equations
	p.f = flow;
	effort = p.e;

C13
parameters
	real c = 1.000;
equations
	state = int(p.f);
	p.e = state / c;

MR121
parameters
	real pr2=600.0;
equations
	p.f =pr2* r * p.e;

TF1921
parameters
	real r=2.0;
equations
	p1.e = r* p2.e;
	p2.f = r* p1.f;

I34
parameters
	real i = 3.0e-6;
equations
    state = int(p.e);
    p.f = state / i;

R22
parameters
	real r = 0.01;
equations
	p.e = r * p.f;

Integrate
parameters
	real initial = 0;		// initial value
equations
	output = int (input, initial);
     
C231
parameters
	real c = 1;
equations
	state = int(p.f);
	p.e = port1;

FUNC23
parameters					
	string filename= 'J:\20-Sim\Simtec\GS9A.txt';
equations					
	output = table (filename, input);
   
FUNC232
parameters					
	string filename= 'J:\20-Sim\Simtec\GS9B.txt';
equations					
	output = table (filename, input);
   

GS9A.txt
-1.00000      0.0000
0.00000       0.0000
1.0000        1.0000
 

GS9B.txt
-0.400000       -75.0
0.00000        5.0000
0.4000         5.4000
0.8000         85.4000