@@ -625,62 +625,63 @@ end
625625# ==============================================================================
626626
627627import ModelingToolkitStandardLibrary. Mechanical. TranslationalModelica as Translational
628- @testset " Planar Kinematic loop" begin
629- @info " Testing Planar Kinematic loop"
630-
631- @mtkmodel PlanarKinematicLoop begin
632- @parameters begin
633- radius = 0.02
634- end
635- @components begin
636- fixed = Pl. Fixed ()
637- fixed1D = Translational. Fixed (s0= 0 )
638- fixedTranslation1 = Pl. FixedTranslation (; r = [0 , - 0.5 ], radius)
639- fixedTranslation2 = Pl. FixedTranslation (; r = [0 , - 0.5 ], radius)
640- fixedTranslation3 = Pl. FixedTranslation (; r = [0 , - 0.6 ], radius)
641- revolute1 = Pl. Revolute (; phi = asin (0.4 / 0.5 / 2 ), state_priority= 100 , radius)
642- revolute3 = Pl. Revolute (; phi = - asin (0.4 / 0.5 / 2 ), radius)
643- revolute2 = Pl. Revolute (; radius)
644- revolute4 = Pl. Revolute (; phi = - 0.69813170079773 , w = 0 , state_priority= 100 , radius)
645- prismatic1 = Pl. Prismatic (r = [1 , 0 ], s = 0.4 , v = 0 , axisflange= true , state_priority= 10 )
646- springDamper1D = Translational. SpringDamper (c = 20 , d = 4 , s_rel0 = 0.4 )
647- body = Pl. Body (m = 1 , I = 0.1 , state_priority= 10 )
648- end
649-
650- @equations begin
651- connect (fixedTranslation1. frame_a, revolute1. frame_b)
652- connect (fixedTranslation2. frame_a, revolute3. frame_b)
653- connect (revolute2. frame_a, fixedTranslation1. frame_b)
654- connect (revolute2. frame_b, fixedTranslation2. frame_b)
655- connect (fixedTranslation3. frame_a, revolute4. frame_b)
656- connect (revolute1. frame_a, fixed. frame)
657- connect (fixed1D. flange, springDamper1D. flange_a)
658- connect (revolute4. frame_a, fixedTranslation1. frame_b)
659- connect (body. frame_a, fixedTranslation3. frame_b)
660- connect (prismatic1. frame_a, fixed. frame)
661- connect (springDamper1D. flange_b, prismatic1. flange_a)
662- connect (prismatic1. frame_b, revolute3. frame_a)
663- end
664- end
665-
666- @named model = PlanarKinematicLoop ()
667- model = complete (model)
668- ssys = structural_simplify (IRSystem (model))
669- @test length (unknowns (ssys)) <= 6 # ideally 4
670- display (sort (unknowns (ssys), by= string))
671-
672-
673- guesses = ModelingToolkit. missing_variable_defaults (model)
674- ps = parameters (model)
675- fulldefs = defaults (model)
676- defs = Dict (filter (p-> ! ModelingToolkit. isparameter (p[1 ]), collect (ModelingToolkit. defaults (model))))
677- u0 = merge (Dict (guesses), defs)
678- initsys = generate_initializesystem (ssys; guesses= u0)
679- initprob = NonlinearLeastSquaresProblem (initsys, u0, [[p => fulldefs[p] for p in ps]; t => 0.0 ])
680- u0sol = solve (initprob)
681-
682-
683- prob = ODEProblem (ssys, unknowns (ssys) .=> u0sol[unknowns (ssys)]* 0.7 , (0.0 , 5.0 ))
684- sol = solve (prob, Rodas5P (), initializealg = ShampineCollocationInit ())
685- @test SciMLBase. successful_retcode (sol)
686- end
628+ # NOTE: waiting for release of ModelingToolkitStandardLibrary that includes https://github.com/SciML/ModelingToolkitStandardLibrary.jl/pull/327
629+ # @testset "Planar Kinematic loop" begin
630+ # @info "Testing Planar Kinematic loop"
631+
632+ # @mtkmodel PlanarKinematicLoop begin
633+ # @parameters begin
634+ # radius = 0.02
635+ # end
636+ # @components begin
637+ # fixed = Pl.Fixed()
638+ # fixed1D = Translational.Fixed(s0=0)
639+ # fixedTranslation1 = Pl.FixedTranslation(; r = [0, -0.5], radius)
640+ # fixedTranslation2 = Pl.FixedTranslation(; r = [0, -0.5], radius)
641+ # fixedTranslation3 = Pl.FixedTranslation(; r = [0, -0.6], radius)
642+ # revolute1 = Pl.Revolute(; phi = asin(0.4/0.5/2), state_priority=100, radius)
643+ # revolute3 = Pl.Revolute(; phi = -asin(0.4/0.5/2), radius)
644+ # revolute2 = Pl.Revolute(; radius)
645+ # revolute4 = Pl.Revolute(; phi = -0.69813170079773, w = 0, state_priority=100, radius)
646+ # prismatic1 = Pl.Prismatic(r = [1, 0], s = 0.4, v = 0, axisflange=true, state_priority=10)
647+ # springDamper1D = Translational.SpringDamper(c = 20, d = 4, s_rel0 = 0.4)
648+ # body = Pl.Body(m = 1, I = 0.1, state_priority=10)
649+ # end
650+
651+ # @equations begin
652+ # connect(fixedTranslation1.frame_a, revolute1.frame_b)
653+ # connect(fixedTranslation2.frame_a, revolute3.frame_b)
654+ # connect(revolute2.frame_a, fixedTranslation1.frame_b)
655+ # connect(revolute2.frame_b, fixedTranslation2.frame_b)
656+ # connect(fixedTranslation3.frame_a, revolute4.frame_b)
657+ # connect(revolute1.frame_a, fixed.frame)
658+ # connect(fixed1D.flange, springDamper1D.flange_a)
659+ # connect(revolute4.frame_a, fixedTranslation1.frame_b)
660+ # connect(body.frame_a, fixedTranslation3.frame_b)
661+ # connect(prismatic1.frame_a, fixed.frame)
662+ # connect(springDamper1D.flange_b, prismatic1.flange_a)
663+ # connect(prismatic1.frame_b, revolute3.frame_a)
664+ # end
665+ # end
666+
667+ # @named model = PlanarKinematicLoop()
668+ # model = complete(model)
669+ # ssys = structural_simplify(IRSystem(model))
670+ # @test length(unknowns(ssys)) <= 6 # ideally 4
671+ # display(sort(unknowns(ssys), by=string))
672+
673+
674+ # guesses = ModelingToolkit.missing_variable_defaults(model)
675+ # ps = parameters(model)
676+ # fulldefs = defaults(model)
677+ # defs = Dict(filter(p->!ModelingToolkit.isparameter(p[1]), collect(ModelingToolkit.defaults(model))))
678+ # u0 = merge(Dict(guesses), defs)
679+ # initsys = generate_initializesystem(ssys; guesses=u0)
680+ # initprob = NonlinearLeastSquaresProblem(initsys, u0, [[p => fulldefs[p] for p in ps]; t => 0.0])
681+ # u0sol = solve(initprob)
682+
683+
684+ # prob = ODEProblem(ssys, unknowns(ssys) .=> u0sol[unknowns(ssys)]*0.7, (0.0, 5.0))
685+ # sol = solve(prob, Rodas5P(), initializealg = ShampineCollocationInit())
686+ # @test SciMLBase.successful_retcode(sol)
687+ # end
0 commit comments