@@ -7,14 +7,16 @@ Use to close a system that has un-connected `MechanicalPort`'s where the force s
77
88 - `flange`: 1-dim. translational flange
99"""
10- @component function Free (; name)
11- @named flange = MechanicalPort ()
12- vars = @variables f (t) = 0
13- eqs = [
14- flange. f ~ f,
15- ]
16- return compose (ODESystem (eqs, t, vars, []; name, defaults = [flange. v => 0 ]),
17- flange)
10+ @mtkmodel Free begin
11+ @components begin
12+ flange = MechanicalPort ()
13+ end
14+ @variables begin
15+ f (t) = 0
16+ end
17+ @equations begin
18+ flange. f ~ f
19+ end
1820end
1921
2022"""
@@ -26,11 +28,13 @@ Fixes a flange position (velocity = 0)
2628
2729 - `flange`: 1-dim. translational flange
2830"""
29- @component function Fixed (; name)
30- @named flange = MechanicalPort ()
31- eqs = [flange. v ~ 0 ]
32- return compose (ODESystem (eqs, t, [], []; name = name, defaults = [flange. v => 0 ]),
33- flange)
31+ @mtkmodel Fixed begin
32+ @components begin
33+ flange = MechanicalPort ()
34+ end
35+ @equations begin
36+ flange. v ~ 0
37+ end
3438end
3539
3640"""
@@ -190,26 +194,26 @@ Linear 1D translational damper
190194 - `flange_a`: 1-dim. translational flange on one side of damper
191195 - `flange_b`: 1-dim. translational flange on opposite side of damper
192196"""
193- @component function Damper (; name, d, v_a_0 = 0.0 , v_b_0 = 0.0 )
194- pars = @parameters begin
195- d = d
196- v_a_0 = v_a_0
197- v_b_0 = v_b_0
197+ @mtkmodel Damper begin
198+ @parameters begin
199+ d
200+ v_a_0 = 0.0
201+ v_b_0 = 0.0
198202 end
199- vars = @variables begin
203+ @variables begin
200204 v (t) = v_a_0 - v_b_0
201205 f (t) = 0.0
202206 end
203207
204- @named flange_a = MechanicalPort ()
205- @named flange_b = MechanicalPort ()
208+ @components begin
209+ flange_a = MechanicalPort ()
210+ flange_b = MechanicalPort ()
211+ end
206212
207- eqs = [v ~ flange_a. v - flange_b. v
213+ @equations begin
214+ v ~ flange_a. v - flange_b. v
208215 f ~ v * d
209216 flange_a. f ~ + f
210- flange_b. f ~ - f]
211- return compose (ODESystem (eqs, t, vars, pars; name = name,
212- defaults = [flange_a. v => v_a_0, flange_b. v => v_b_0]),
213- flange_a,
214- flange_b) # flange_a.f => +(v_a_0 - v_b_0)*d, flange_b.f => -(v_a_0 - v_b_0)*d
217+ flange_b. f ~ - f
218+ end
215219end
0 commit comments