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