シミュレーションの演習のコード
BGSA5のコードを以下に示します。このコードは20-Sim用です。
BGSA5のコード
C parameters real c = 1 {N/m}; variables real global fspring; equations state = int(p.f); p.e = state / c; fspring=p.e; I parameters real global i =0.1 {kg}; variables real global vv; boolean global reset; equations state = resint(p.e,0,reset,0); p.f = state / i; Integrate parameters real initial = 0; // initial value variables real global vv; boolean global reset; equations reset=event(input); out = int (input, initial); vv=out; MSe variables real flow; real global F1; equations p.e = out; flow = p.f; port1=p.e; F1=p.e; R parameters real static=1 {N}; real fslide =0.1 {N}; real ddv =1.0e-10; real global i; variables real global a2; real sta_f; real global fspring; real s1; equations s1=port1-fspring; sta_f =if abs(p.f) > ddv then fslide*sign(p.f) else if abs(s1) > static then//port1=Input Force static*sign(s1) else s1 end end; p.e=sta_f; Ramp parameters real slope = 1 {1/s}; real start_time = 0.0 {s}; variables boolean hidden change; equations "calculate at least at the start time" change = timeevent (start_time); "calculate the ramp signal" output = slope * ramp (start_time); Ramp1 parameters real slope = 2 {1/s}; real start_time = 5.0 {s}; variables boolean hidden change; equations "calculate at least at the start time" change = timeevent (start_time); "calculate the ramp signal" output = slope * ramp (start_time); Ramp2 parameters real slope = 2 {1/s}; real start_time = 10.0 {s}; variables boolean hidden change; equations "calculate at least at the start time" change = timeevent (start_time); "calculate the ramp signal" output = slope * ramp (start_time); Ramp3 parameters real slope = 2 {1/s}; real start_time = 15.0 {s}; variables boolean hidden change; equations "calculate at least at the start time" change = timeevent (start_time); "calculate the ramp signal" output = slope * ramp (start_time); X variables real interesting plot; equations plot = input;