1
- using ModelingToolkit, Test
1
+ using ModelingToolkit, ADTypes, Test
2
2
using CommonSolve: solve
3
3
4
4
# r is an input, and y is an output.
@@ -17,11 +17,12 @@ eqs = [u ~ kp * (r - y)
17
17
lsys, ssys = linearize (sys, [r], [y])
18
18
lprob = LinearizationProblem (sys, [r], [y])
19
19
lsys2 = solve (lprob)
20
+ lsys3, _ = linearize (sys, [r], [y]; autodiff = AutoFiniteDiff ())
20
21
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
25
26
26
27
lsys, ssys = linearize (sys, [r], [r])
27
28
@@ -89,11 +90,13 @@ connections = [f.y ~ c.r # filtered reference to controller reference
89
90
lsys0, ssys = linearize (cl, [f. u], [p. x])
90
91
desired_order = [f. x, p. x]
91
92
lsys = 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)
92
95
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
97
100
98
101
# # Symbolic linearization
99
102
lsyss, _ = ModelingToolkit. linearize_symbolic (cl, [f. u], [p. x])
0 commit comments