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

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

BOND SYMBOL EXPR OUT DEFIN PARM INIT

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

GS2のコード

BOND SYMBOL EXPR OUT DEFIN PARM INIT
SF1    1
ZJ     -1    2     3     4
CI1    2
RE1    3
TF1    4     11
OJ     -11   13    12
RE2    13
II1    12
/
BC: P2    EF2
BC: V2    FL12
/
SF1
PA: PS1    980.0
      F=PS1
EOD
CI1
PA: PC1    0.351
      C=Z/PC1
EOD
RE1
PA: PR1    11.6
      R=Z/PR1
EOD
TF1
PA: PT1    1.963D+03
      TF=1/PT1
EOD
II1
PA: PI1    100.0
      L=Z/PI1
EOD
RE2
PA: PR2    5.000D+03
      R=PR2*Z
EOD
/
0.00D+00          0.10D+00          1.000D-05         1000
/

20-Simによるコード

Step Input
parameters
	real amplitude = 980 ;//Servo Valve Flow
	real start_time = 0.0 {s};
variables
	boolean hidden change;
equations
	"calculate at least at the start time"
	change = timeevent (start_time);
	
	"calculate the step signal"
	output = amplitude * step (start_time);  

MSf
 variables
	real effort;
equations
	p.f = flow; 
	effort = p.e;

C2
parameters
	real c = 0.351;
equations
	state = int(p.f);
	p.e = state / c;

R3
parameters
	real r = 11.6;
equations
	p.f =  p.e/r;

TF
parameters
	real r = 1.963e3;
equations
	p1.e = p2.e/r;
	p2.f =  p1.f/r;

R13
parameters
	real r = 5.0e3;
equations
	p.e = r * p.f;

I12
parameters
	real i = 100;
equations
    state = int(p.e);
    p.f = state / i;