Skip to content

Commit 3094ba3

Browse files
Add Measure Demo
It's broken but just saving it unit I figure out what is going on with the `FixedTranslation` component
1 parent 4dd5d20 commit 3094ba3

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

test/Mechanical/planar_mechanics.jl

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ tspan = (0.0, 3.0)
77
g = -9.807
88

99
@testset "Free body" begin
10+
# https://github.com/dzimmer/PlanarMechanics/blob/743462f58858a808202be93b708391461cbe2523/PlanarMechanics/Examples/FreeBody.mo
1011
m = 2
1112
j = 1
1213
@named body = Body(; m, j)
@@ -30,6 +31,7 @@ g = -9.807
3031
end
3132

3233
@testset "Pendulum" begin
34+
# https://github.com/dzimmer/PlanarMechanics/blob/743462f58858a808202be93b708391461cbe2523/PlanarMechanics/Examples/Pendulum.mo
3335
@named ceiling = Fixed()
3436
@named rod = FixedTranslation(rx = 1.0, ry = 0.0)
3537
@named body = Body(m = 1, j = 0.1)
@@ -205,7 +207,61 @@ end
205207
@test sol[rel_a_sensor2.rel_a_y.u][end] == 0
206208
end
207209

208-
@testset "Measure Demo" begin end
210+
@testset "Measure Demo" begin
211+
# https://github.com/dzimmer/PlanarMechanics/blob/743462f58858a808202be93b708391461cbe2523/PlanarMechanics/Examples/MeasureDemo.mo
212+
@named body = Body(; m = 1, j = 0.1)
213+
@named fixed_translation = FixedTranslation(; rx = 1, ry = 0)
214+
@named fixed = Fixed()
215+
@named body1 = Body(; m = 0.4, j = 0.02)
216+
@named fixed_translation1 = FixedTranslation(; rx = 0.4, ry = 0)
217+
@named abs_pos_sensor = AbsolutePosition(; resolve_in_frame = :world)
218+
@named rel_pos_sensor = RelativePosition(; resolve_in_frame = :world)
219+
@named revolute1 = Revolute()
220+
@named abs_v_sensor = AbsoluteVelocity(; resolve_in_frame = :frame_a)
221+
@named rel_v_sensor = RelativeVelocity(; resolve_in_frame = :frame_b)
222+
@named abs_a_sensor = AbsoluteAcceleration(; resolve_in_frame = :world)
223+
@named rel_a_sensor = RelativeAcceleration(; resolve_in_frame = :frame_b)
224+
@named revolute2 = Revolute()
225+
226+
connections = [
227+
connect(fixed_translation.frame_b, body.frame),
228+
connect(fixed_translation1.frame_b, body1.frame),
229+
connect(fixed.frame, revolute1.frame_a),
230+
connect(revolute1.frame_b, fixed_translation.frame_a),
231+
# connect(abs_a_sensor.frame_resolve, abs_a_sensor.frame_a),
232+
connect(revolute2.frame_b, fixed_translation1.frame_a),
233+
connect(revolute2.frame_a, fixed_translation.frame_b),
234+
# connect_sensor(fixed_translation.frame_b, rel_a_sensor.frame_a)...,
235+
# connect(fixed_translation.frame_b, rel_v_sensor.frame_a),
236+
# connect(fixed_translation.frame_b, rel_v_sensor.frame_a),
237+
# connect(rel_a_sensor.frame_b, body1.frame_a),
238+
# connect(rel_v_sensor.frame_b, body1.frame_a),
239+
# connect(rel_v_sensor.frame_b, body1.frame_a),
240+
connect_sensor(body1.frame, abs_a_sensor.frame_a)...,
241+
# connect_sensor(body1.frame, abs_v_sensor.frame_a)...,
242+
# connect_sensor(body1.frame, abs_pos_sensor.frame_a)...,
243+
]
244+
245+
@named model = ODESystem(connections,
246+
t,
247+
[],
248+
[],
249+
systems = [
250+
fixed_translation,
251+
body,
252+
fixed,
253+
body1,
254+
fixed_translation1,
255+
revolute1,
256+
revolute2,
257+
abs_pos_sensor,
258+
])
259+
sys = structural_simplify(model)
260+
unset_vars = setdiff(states(sys), keys(ModelingToolkit.defaults(sys)))
261+
prob = ODEProblem(sys, unset_vars .=> 0.0, (0, 5), []; jac = true)
262+
sol = solve(prob, Rodas5P())
263+
@test_broken SciMLBase.successful_retcode(sol)
264+
end
209265

210266
@testset "SpringDamper" begin
211267
# https://github.com/dzimmer/PlanarMechanics/blob/master/PlanarMechanics/Examples/SpringDamperDemo.mo

0 commit comments

Comments
 (0)