@@ -300,41 +300,41 @@ op = Dict(cart.s => 10, cart.v => 0, link1.A => -pi/2, link1.dA => 0, force.f.u
300300
301301guesses = [link1. fy1 => 0.1 , cart. f => 0.1 ]
302302
303- MTK = ModelingToolkit
304- @show length ( filter (kvp -> ! MTK . isinitial (kvp[ 1 ]) && ! MTK . isparameter (kvp[ 1 ]), initial_conditions (model)))
305- G = named_ss (model, lin_inputs, lin_outputs; allow_symbolic = true , op,
306- allow_input_derivatives = true , guesses )
307- G = sminreal (G)
308- @test 10 ∈ RobustAndOptimalControl . operating_point (G) . x
309- @info " minreal"
310- G = minreal (G)
311- @info " poles"
312- ps = poles (G)
313-
314- @test minimum (abs, ps) < 1e-6
315- @test minimum (abs, complex ( 0 , 1.3777260367206716 ) .- ps) < 1e-10
316-
317- lsys, syss = linearize (model, lin_inputs, lin_outputs; op = op,
318- allow_input_derivatives = true , guesses)
319- lsyss, sysss = ModelingToolkit . linearize_symbolic (model, lin_inputs, lin_outputs;
320- allow_input_derivatives = true )
321-
322- dummyder = setdiff ( unknowns (sysss ), unknowns (model ))
323- # op2 = merge(ModelingToolkit.guesses(model ), op, Dict(x => 0.0 for x in dummyder) )
324- op2 = merge (ModelingToolkit . defaults (syss), op)
325- op2[link1 . fy1] = - op2[link1 . g] * op2[link1 . m]
326- op2[cart . f] = 0
327-
328- @test substitute (lsyss . A, op2) ≈ lsys . A
329- # We cannot pivot symbolically, so the part where a linear solve is required
330- # is not reliable.
331- @test substitute (lsyss. B , op2)[ 1 : 6 , 1 ] ≈ lsys. B[ 1 : 6 , 1 ]
332- @test substitute (lsyss. C , op2) ≈ lsys. C
333- @test substitute (lsyss . D, op2) ≈ lsys . D
334-
335- @test G. nx == 4
336- @test G. nu == length (lin_inputs )
337- @test G . ny == length (lin_outputs)
303+ @test_skip begin
304+ G = named_ss (model, lin_inputs, lin_outputs; allow_symbolic = true , op,
305+ allow_input_derivatives = true , guesses)
306+ G = sminreal (G )
307+ @test 10 ∈ RobustAndOptimalControl . operating_point (G). x
308+ @info " minreal "
309+ G = minreal (G)
310+ @info " poles "
311+ ps = poles (G)
312+
313+ @test minimum (abs, ps) < 1e-6
314+ @test minimum (abs, complex ( 0 , 1.3777260367206716 ) .- ps) < 1e-10
315+
316+ lsys, syss = linearize (model, lin_inputs, lin_outputs; op = op,
317+ allow_input_derivatives = true , guesses)
318+ lsyss, sysss = ModelingToolkit . linearize_symbolic (model, lin_inputs, lin_outputs;
319+ allow_input_derivatives = true )
320+
321+ dummyder = setdiff ( unknowns (sysss), unknowns (model))
322+ # op2 = merge(ModelingToolkit.guesses(model ), op, Dict(x => 0.0 for x in dummyder ))
323+ op2 = merge (ModelingToolkit. defaults (syss ), op)
324+ op2[link1 . fy1] = - op2[link1 . g] * op2[link1 . m]
325+ op2[cart . f] = 0
326+
327+ @test substitute (lsyss . A, op2) ≈ lsys . A
328+ # We cannot pivot symbolically, so the part where a linear solve is required
329+ # is not reliable.
330+ @test substitute (lsyss . B, op2)[ 1 : 6 , 1 ] ≈ lsys . B[ 1 : 6 , 1 ]
331+ @test substitute (lsyss. C , op2) ≈ lsys. C
332+ @test substitute (lsyss. D , op2) ≈ lsys. D
333+
334+ @test G . nx == 4
335+ @test G. nu == length (lin_inputs)
336+ @test G. ny == length (lin_outputs )
337+ end
338338
339339# # Test difficult `named_ss` simplification
340340using ControlSystemsMTK, ControlSystemsBase, RobustAndOptimalControl, Test, GenericLinearAlgebra
0 commit comments