@@ -7,6 +7,7 @@ tspan = (0.0, 3.0)
7
7
g = - 9.807
8
8
9
9
@testset " Free body" begin
10
+ # https://github.com/dzimmer/PlanarMechanics/blob/743462f58858a808202be93b708391461cbe2523/PlanarMechanics/Examples/FreeBody.mo
10
11
m = 2
11
12
j = 1
12
13
@named body = Body (; m, j)
@@ -30,6 +31,7 @@ g = -9.807
30
31
end
31
32
32
33
@testset " Pendulum" begin
34
+ # https://github.com/dzimmer/PlanarMechanics/blob/743462f58858a808202be93b708391461cbe2523/PlanarMechanics/Examples/Pendulum.mo
33
35
@named ceiling = Fixed ()
34
36
@named rod = FixedTranslation (rx = 1.0 , ry = 0.0 )
35
37
@named body = Body (m = 1 , j = 0.1 )
205
207
@test sol[rel_a_sensor2. rel_a_y. u][end ] == 0
206
208
end
207
209
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
209
265
210
266
@testset " SpringDamper" begin
211
267
# https://github.com/dzimmer/PlanarMechanics/blob/master/PlanarMechanics/Examples/SpringDamperDemo.mo
0 commit comments