1- using  ModelingToolkit, Test
1+ using  ModelingToolkit, ADTypes,  Test
22using  CommonSolve:  solve
33
44#  r is an input, and y is an output.
@@ -17,11 +17,12 @@ eqs = [u ~ kp * (r - y)
1717lsys, ssys =  linearize (sys, [r], [y])
1818lprob =  LinearizationProblem (sys, [r], [y])
1919lsys2 =  solve (lprob)
20+ lsys3, _ =  linearize (sys, [r], [y]; autodiff =  AutoFiniteDiff ())
2021
21- @test  lsys. A[] ==  lsys2. A[] ==  - 2 
22- @test  lsys. B[] ==  lsys2. B[] ==  1 
23- @test  lsys. C[] ==  lsys2. C[] ==  1 
24- @test  lsys. D[] ==  lsys2. D[] ==  0 
22+ @test  lsys. A[] ==  lsys2. A[] ==  lsys3 . A[]  ==   - 2 
23+ @test  lsys. B[] ==  lsys2. B[] ==  lsys3 . B[]  ==   1 
24+ @test  lsys. C[] ==  lsys2. C[] ==  lsys3 . C[]  ==   1 
25+ @test  lsys. D[] ==  lsys2. D[] ==  lsys3 . D[]  ==   0 
2526
2627lsys, ssys =  linearize (sys, [r], [r])
2728
@@ -89,11 +90,13 @@ connections = [f.y ~ c.r # filtered reference to controller reference
8990lsys0, ssys =  linearize (cl, [f. u], [p. x])
9091desired_order =  [f. x, p. x]
9192lsys =  ModelingToolkit. reorder_unknowns (lsys0, unknowns (ssys), desired_order)
93+ lsys1, ssys =  linearize (cl, [f. u], [p. x]; autodiff =  AutoFiniteDiff ())
94+ lsys2 =  ModelingToolkit. reorder_unknowns (lsys1, unknowns (ssys), desired_order)
9295
93- @test  lsys. A ==  [- 2  0 ; 1  - 2 ]
94- @test  lsys. B ==  reshape ([1 , 0 ], 2 , 1 )
95- @test  lsys. C ==  [0  1 ]
96- @test  lsys. D[] ==  0 
96+ @test  lsys. A ==  lsys2 . A  ==   [- 2  0 ; 1  - 2 ]
97+ @test  lsys. B ==  lsys2 . B  ==   reshape ([1 , 0 ], 2 , 1 )
98+ @test  lsys. C ==  lsys2 . C  ==   [0  1 ]
99+ @test  lsys. D[] ==  lsys2 . D[]  ==   0 
97100
98101# # Symbolic linearization
99102lsyss, _ =  ModelingToolkit. linearize_symbolic (cl, [f. u], [p. x])
0 commit comments