Train(c=1e5, d=1e5, v0=10, a0=0)
Name | Description | Units | Default value |
---|
c | | N/m | 100000 |
d | | s-1 | 100000 |
v0 | Initial Velocity | m/s | 10 |
a0 | | m/s2 | 0 |
connect(car1+flangeb,coupler1+flangea)connect(car2+flangea,coupler1+flangeb)connect(car2+flangeb,coupler2+flangea)connect(car3+flangea,coupler2+flangeb)connect(car3+flangeb,coupler3+flangea)connect(engine+flangea,coupler3+flangeb)connect(engine+flangeb,flange)car1.flange_a.s(t)=−21car1.L+car1.s(t)car1.flange_b.s(t)=21car1.L+car1.s(t)car1.v(t)=dtdcar1.s(t)car1.a(t)=dtdcar1.v(t)(car1.a(t)+car1.gsin(car1.theta))car1.m=car1.flange_b.f(t)+car1.flange_a.f(t)coupler1.s_rel(t)=coupler1.flange_b.s(t)−coupler1.flange_a.s(t)coupler1.v_rel(t)=dtdcoupler1.s_rel(t)coupler1.flange_b.f(t)=coupler1.f(t)coupler1.flange_a.f(t)=−coupler1.f(t)coupler1.f_c(t)=coupler1.c(−coupler1.initial_stretch(t)+coupler1.s_rel(t))dtdcoupler1.initial_stretch(t)=0coupler1.f_d(t)=coupler1.dcoupler1.v_rel(t)coupler1.f(t)=coupler1.f_c(t)+coupler1.f_d(t)coupler1.lossPower(t)=coupler1.v_rel(t)coupler1.f_d(t)car2.flange_a.s(t)=−21car2.L+car2.s(t)car2.flange_b.s(t)=21car2.L+car2.s(t)car2.v(t)=dtdcar2.s(t)car2.a(t)=dtdcar2.v(t)(car2.a(t)+car2.gsin(car2.theta))car2.m=car2.flange_a.f(t)+car2.flange_b.f(t)coupler2.s_rel(t)=−coupler2.flange_a.s(t)+coupler2.flange_b.s(t)coupler2.v_rel(t)=dtdcoupler2.s_rel(t)coupler2.flange_b.f(t)=coupler2.f(t)coupler2.flange_a.f(t)=−coupler2.f(t)coupler2.f_c(t)=coupler2.c(coupler2.s_rel(t)−coupler2.initial_stretch(t))dtdcoupler2.initial_stretch(t)=0coupler2.f_d(t)=coupler2.dcoupler2.v_rel(t)coupler2.f(t)=coupler2.f_d(t)+coupler2.f_c(t)coupler2.lossPower(t)=coupler2.v_rel(t)coupler2.f_d(t)car3.flange_a.s(t)=−21car3.L+car3.s(t)car3.flange_b.s(t)=21car3.L+car3.s(t)car3.v(t)=dtdcar3.s(t)car3.a(t)=dtdcar3.v(t)(car3.a(t)+car3.gsin(car3.theta))car3.m=car3.flange_a.f(t)+car3.flange_b.f(t)coupler3.s_rel(t)=−coupler3.flange_a.s(t)+coupler3.flange_b.s(t)coupler3.v_rel(t)=dtdcoupler3.s_rel(t)coupler3.flange_b.f(t)=coupler3.f(t)coupler3.flange_a.f(t)=−coupler3.f(t)coupler3.f_c(t)=coupler3.c(−coupler3.initial_stretch(t)+coupler3.s_rel(t))dtdcoupler3.initial_stretch(t)=0coupler3.f_d(t)=coupler3.dcoupler3.v_rel(t)coupler3.f(t)=coupler3.f_d(t)+coupler3.f_c(t)coupler3.lossPower(t)=coupler3.f_d(t)coupler3.v_rel(t)engine.flange_a.s(t)=−21engine.L+engine.s(t)engine.flange_b.s(t)=21engine.L+engine.s(t)engine.v(t)=dtdengine.s(t)engine.a(t)=dtdengine.v(t)(engine.a(t)+engine.gsin(engine.theta))engine.m=engine.flange_a.f(t)+engine.flange_b.f(t)
component Train
car1 = TrainCar(m=1000, L=0.9) [{"Dyad": {"placement": {"icon": {"x1": 50, "y1": 100, "x2": 150, "y2": 200}}}}]
coupler1 = TrainCarCoupler(c=c, d=d) [{"Dyad": {"placement": {"icon": {"x1": 225, "y1": 100, "x2": 325, "y2": 200}}}}]
car2 = TrainCar(m=1000, L=0.9) [{"Dyad": {"placement": {"icon": {"x1": 400, "y1": 100, "x2": 500, "y2": 200}}}}]
coupler2 = TrainCarCoupler(c=c, d=d) [{"Dyad": {"placement": {"icon": {"x1": 575, "y1": 100, "x2": 675, "y2": 200}}}}]
car3 = TrainCar(m=1000, L=0.9) [{"Dyad": {"placement": {"icon": {"x1": 750, "y1": 100, "x2": 850, "y2": 200}}}}]
coupler3 = TrainCarCoupler(c=c, d=d) [{"Dyad": {"placement": {"icon": {"x1": 925, "y1": 100, "x2": 1025, "y2": 200}}}}]
engine = TrainCar(m=2000, L=0.9) [{
"Dyad": {"placement": {"icon": {"x1": 1100, "y1": 100, "x2": 1200, "y2": 200}}}
}]
flange = Flange() [{"Dyad": {"placement": {"icon": {"x1": 975, "y1": 475, "x2": 1025, "y2": 525}}}}]
parameter c::TranslationalSpringConstant = 1e5
parameter d::DampingCoefficient = 1e5
# Initial Velocity
parameter v0::Velocity = 10
parameter a0::Acceleration = 0
relations
initial car1.s = 0.45
initial car1.v = v0
initial car2.s = 1.55
initial car2.v = v0
initial car3.s = 2.55
initial car3.v = v0
initial engine.s = 3.55
initial engine.v = v0
initial engine.a = a0
initial coupler1.initial_stretch = 0
initial coupler2.initial_stretch = 0
connect(car1.flange_b, coupler1.flange_a) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car2.flange_a, coupler1.flange_b) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car2.flange_b, coupler2.flange_a) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car3.flange_a, coupler2.flange_b) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car3.flange_b, coupler3.flange_a) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(engine.flange_a, coupler3.flange_b) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(engine.flange_b, flange)
end
Flattened Source
component Train
car1 = TrainCar(m=1000, L=0.9) [{"Dyad": {"placement": {"icon": {"x1": 50, "y1": 100, "x2": 150, "y2": 200}}}}]
coupler1 = TrainCarCoupler(c=c, d=d) [{"Dyad": {"placement": {"icon": {"x1": 225, "y1": 100, "x2": 325, "y2": 200}}}}]
car2 = TrainCar(m=1000, L=0.9) [{"Dyad": {"placement": {"icon": {"x1": 400, "y1": 100, "x2": 500, "y2": 200}}}}]
coupler2 = TrainCarCoupler(c=c, d=d) [{"Dyad": {"placement": {"icon": {"x1": 575, "y1": 100, "x2": 675, "y2": 200}}}}]
car3 = TrainCar(m=1000, L=0.9) [{"Dyad": {"placement": {"icon": {"x1": 750, "y1": 100, "x2": 850, "y2": 200}}}}]
coupler3 = TrainCarCoupler(c=c, d=d) [{"Dyad": {"placement": {"icon": {"x1": 925, "y1": 100, "x2": 1025, "y2": 200}}}}]
engine = TrainCar(m=2000, L=0.9) [{
"Dyad": {"placement": {"icon": {"x1": 1100, "y1": 100, "x2": 1200, "y2": 200}}}
}]
flange = Flange() [{"Dyad": {"placement": {"icon": {"x1": 975, "y1": 475, "x2": 1025, "y2": 525}}}}]
parameter c::TranslationalSpringConstant = 1e5
parameter d::DampingCoefficient = 1e5
# Initial Velocity
parameter v0::Velocity = 10
parameter a0::Acceleration = 0
relations
initial car1.s = 0.45
initial car1.v = v0
initial car2.s = 1.55
initial car2.v = v0
initial car3.s = 2.55
initial car3.v = v0
initial engine.s = 3.55
initial engine.v = v0
initial engine.a = a0
initial coupler1.initial_stretch = 0
initial coupler2.initial_stretch = 0
connect(car1.flange_b, coupler1.flange_a) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car2.flange_a, coupler1.flange_b) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car2.flange_b, coupler2.flange_a) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car3.flange_a, coupler2.flange_b) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(car3.flange_b, coupler3.flange_a) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(engine.flange_a, coupler3.flange_b) [{"Dyad": {"edges": [{"S": 1, "E": 2}]}}]
connect(engine.flange_b, flange)
metadata {}
end
- Examples
- Experiments
- Analyses