@@ -7,30 +7,34 @@ Use to close a system that has un-connected `MechanicalPort`'s where the force s
7
7
8
8
- `flange`: 1-dim. translational flange
9
9
"""
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.0
16
+ end
17
+ @equations begin
18
+ flange. f ~ f
19
+ end
18
20
end
19
21
20
22
"""
21
- Fixed(;name)
23
+ Fixed(; name)
22
24
23
25
Fixes a flange position (velocity = 0)
24
26
25
27
# Connectors:
26
28
27
29
- `flange`: 1-dim. translational flange
28
30
"""
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
34
38
end
35
39
36
40
"""
@@ -175,41 +179,37 @@ const ABS = Val(:absolute)
175
179
end
176
180
177
181
"""
178
- Damper(; name, d, v_a_0= 0.0, v_b_0= 0.0)
182
+ Damper(; name, d, flange_a.v = 0.0, flange_b.v = 0.0)
179
183
180
184
Linear 1D translational damper
181
185
182
186
# Parameters:
183
187
184
188
- `d`: [N.s/m] Damping constant
185
- - `v_a_0`: [m/s] Initial value of absolute linear velocity at flange_a (default 0 m/s)
186
- - `v_b_0`: [m/s] Initial value of absolute linear velocity at flange_b (default 0 m/s)
187
189
188
190
# Connectors:
189
191
190
- - `flange_a`: 1-dim. translational flange on one side of damper
191
- - `flange_b`: 1-dim. translational flange on opposite side of damper
192
+ - `flange_a`: 1-dim. translational flange on one side of damper. Initial value of state `v` is set to 0.0 m/s.
193
+ - `flange_b`: 1-dim. translational flange on opposite side of damper. Initial value of state `v` is set to 0.0 m/s.
192
194
"""
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
195
+ @mtkmodel Damper begin
196
+ @parameters begin
197
+ d
198
198
end
199
- vars = @variables begin
200
- v (t) = v_a_0 - v_b_0
199
+ @variables begin
200
+ v (t)
201
201
f (t) = 0.0
202
202
end
203
203
204
- @named flange_a = MechanicalPort ()
205
- @named flange_b = MechanicalPort ()
204
+ @components begin
205
+ flange_a = MechanicalPort (; v = 0.0 )
206
+ flange_b = MechanicalPort (; v = 0.0 )
207
+ end
206
208
207
- eqs = [v ~ flange_a. v - flange_b. v
209
+ @equations begin
210
+ v ~ flange_a. v - flange_b. v
208
211
f ~ v * d
209
212
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
213
+ flange_b. f ~ - f
214
+ end
215
215
end
0 commit comments