シミュレーションの演習のコード
BGSA4のコードを以下に示します。このコードは20-Sim用です。
BGSA4のコード
C parameters real c = 4; variables real global ce1; equations state = int(p.f); p.e = state / c; ce1=p.e; I parameters real i = 1; real global lmt; variables real global ss; boolean reset; equations reset=if abs(ss) >= lmt then true else false end; state = resint(p.e,0,reset,0); p.f = state / i; Integrate parameters real initial = 0; // initial value variables real global ss; equations output = int (input, initial); ss=output; MSe variables real flow; real global f1; equations p.e=effort; flow = p.f; f1=p.e; R parameters real r = 1.0; variables real global r1; equations p.e = r * p.f; r1=p.e; Ramp parameters real slope = 5 {1/s}; real start_time = 1.0 {s}; variables boolean hidden change; equations "calculate at least at the start time" change = timeevent (start_time); "calculate the ramp signal" pre= slope * ramp (start_time)+10.0; Se parameters real effort = 0; real global lmt=2.0; variables real flow; real global ce1; real global ss; real global r1; real global f1; equations p.e =if abs(ss) >= lmt then - (f1+ce1+r1)*sign(ss) else effort end; flow = p.f; Sine parameters real omega = 3.1456{rad/s}; // angular frequency of the wave variables boolean hidden change; real hidden half; equations "calculate at least 2 points per cycle to get a triangle" half = pi / omega; change = frequencyevent (half, half / 2); "calculate the sine wave" output = pre* sin ( omega * time);