@@ -29,33 +29,34 @@ lin_outputs = [cart.s, cart.v, link1.A, link1.dA]
29
29
lin_inputs = [force. f. u]
30
30
31
31
# => nothing to remove extra defaults
32
- op = Dict (cart. s => 10 , cart. v => 0 , link1. A => - pi / 2 , link1. dA => 0 , force. f. u => 0 , link1. x1 => nothing , link1. y1 => nothing , link1. x2 => nothing , link1. x_cm => nothing )
33
- @test_broken begin
34
- @info " named_ss"
35
- G = named_ss (model, lin_inputs, lin_outputs, allow_symbolic = true , op = def,
36
- allow_input_derivatives = true , zero_dummy_der = true )
37
- G = sminreal (G)
38
- @info " minreal"
39
- G = minreal (G)
40
- @info " poles"
41
- ps = poles (G)
42
-
43
- @test minimum (abs, ps) < 1e-6
44
- @test minimum (abs, complex (0 , 1.3777260367206716 ) .- ps) < 1e-10
45
-
46
- lsys, syss = linearize (model, lin_inputs, lin_outputs, allow_symbolic = true , op = op,
47
- allow_input_derivatives = true , zero_dummy_der = true )
48
- lsyss, sysss = ModelingToolkit. linearize_symbolic (model, lin_inputs, lin_outputs;
49
- allow_input_derivatives = true )
50
-
51
- dummyder = setdiff (unknowns (sysss), unknowns (model))
52
- def = merge (ModelingToolkit. guesses (model), def, Dict (x => 0.0 for x in dummyder))
53
- def[link1. fy1] = - def[link1. g] * def[link1. m]
54
-
55
- @test substitute (lsyss. A, def) ≈ lsys. A
56
- # We cannot pivot symbolically, so the part where a linear solve is required
57
- # is not reliable.
58
- @test substitute (lsyss. B, def)[1 : 6 , 1 ] ≈ lsys. B[1 : 6 , 1 ]
59
- @test substitute (lsyss. C, def) ≈ lsys. C
60
- @test substitute (lsyss. D, def) ≈ lsys. D
61
- end
32
+ op = Dict (cart. s => 10 , cart. v => 0 , link1. A => - pi / 2 , link1. dA => 0 , force. f. u => 0 ,
33
+ link1. x1 => nothing , link1. y1 => nothing , link1. x2 => nothing , link1. x_cm => nothing )
34
+ @info " named_ss"
35
+ G = named_ss (model, lin_inputs, lin_outputs; allow_symbolic = true , op,
36
+ allow_input_derivatives = true , zero_dummy_der = true )
37
+ G = sminreal (G)
38
+ @info " minreal"
39
+ G = minreal (G)
40
+ @info " poles"
41
+ ps = poles (G)
42
+
43
+ @test minimum (abs, ps) < 1e-6
44
+ @test minimum (abs, complex (0 , 1.3777260367206716 ) .- ps) < 1e-10
45
+
46
+ lsys, syss = linearize (model, lin_inputs, lin_outputs, allow_symbolic = true , op = op,
47
+ allow_input_derivatives = true , zero_dummy_der = true )
48
+ lsyss, sysss = ModelingToolkit. linearize_symbolic (model, lin_inputs, lin_outputs;
49
+ allow_input_derivatives = true )
50
+
51
+ dummyder = setdiff (unknowns (sysss), unknowns (model))
52
+ # op2 = merge(ModelingToolkit.guesses(model), op, Dict(x => 0.0 for x in dummyder))
53
+ op2 = merge (ModelingToolkit. defaults (syss), op)
54
+ op2[link1. fy1] = - op2[link1. g] * op2[link1. m]
55
+ op2[cart. f] = 0
56
+
57
+ @test substitute (lsyss. A, op2) ≈ lsys. A
58
+ # We cannot pivot symbolically, so the part where a linear solve is required
59
+ # is not reliable.
60
+ @test substitute (lsyss. B, op2)[1 : 6 , 1 ] ≈ lsys. B[1 : 6 , 1 ]
61
+ @test substitute (lsyss. C, op2) ≈ lsys. C
62
+ @test substitute (lsyss. D, op2) ≈ lsys. D
0 commit comments