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

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

BOND SYMBOL EXPR OUT DEFIN PARM INIT

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

GS3のコード

BOND SYMBOL EXPR OUT DEFIN PARM INIT
SE1    1
II1    3
RE1    4
CI1    2
OJ     -1    2     4     3
/
BC: DP4   DP4
BC: EF2   EF2
/
SE1
PA: PE1    1.0D0                                              
      E=PE1
EOD
II1
PA: PIIM   1.0D0                                              
      L=Z/PIIM
EOD
RE1
PA: PR1D   0.2D0                                              
      R=PR1D*Z
EOD
CI1
PA: PC1S   1.0D0                                              
      C=PC1S*Z
      IF(C.GT.1) THEN
       C=20*C-19
      ELSE
       IF(C.LT.(-1)) THEN
        C=20*C+19
       ENDIF
      ENDIF
EOD
/
 0.00000E+00        2.00000E+01        1.00000E-02     2000
/


20-Simによるコード

C131
parameters
	real c = 1 {N/m};
	real lmp=1.0;
	real lml=-1.0;
variables 
  real F19;
equations
	F19 = int(p.f,0) / c;
    	p.e = if F19  > lmp then
		20.0*F19 - 19.0
		else
			if F19 <  lml then
				20.0*F19+19.0
				else
					F19
					end	
		end;
			

II3
parameters
	real i = 1 {kg};
equations
    state = int(p.e);
    p.f = state / i;


R12
parameters
	real r = 0.2 {N.s/m};
equations
	p.e = r * p.f;


Se11
parameters
	real effort = 1;
variables
	real flow;
equations
	p.e = effort;
	flow = p.f;


ブロックボンドグラフによるコード

Se11
parameters
	real effort = 1;
variables
	real flow;
equations
	p.e = effort;
	flow = p.f;


R12
parameters
	real r = 0.2 {N.s/m};
equations
	p.e= p.f*r;;

I
parameters
	real i = 1 {kg};
equations
    state = int(p.e);
    p.f = state / i;

C131
parameters
	real c = 1 {N/m};
 variables  
 real zx;

equations
	zx= int(p.f,0.05)/c;//ZX:Effort
	port1=zx;
	p.e= port2;
	
Table
parameters					
	string filename= 'J:\20-sim\Simtec\GS3.txt';
equations					
     output= table (filename, input);
   

GS3.txt
-2.000    -21.000
-1.000    -1.000
1.0000    1.0000