Skip to content

Commit da84f0c

Browse files
test: test alternative AD backends for linearization
1 parent 247160d commit da84f0c

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

test/downstream/linearize.jl

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using ModelingToolkit, Test
1+
using ModelingToolkit, ADTypes, Test
22
using CommonSolve: solve
33

44
# r is an input, and y is an output.
@@ -17,11 +17,12 @@ eqs = [u ~ kp * (r - y)
1717
lsys, ssys = linearize(sys, [r], [y])
1818
lprob = LinearizationProblem(sys, [r], [y])
1919
lsys2 = 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

2627
lsys, ssys = linearize(sys, [r], [r])
2728

@@ -89,11 +90,13 @@ connections = [f.y ~ c.r # filtered reference to controller reference
8990
lsys0, ssys = linearize(cl, [f.u], [p.x])
9091
desired_order = [f.x, p.x]
9192
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)
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
99102
lsyss, _ = ModelingToolkit.linearize_symbolic(cl, [f.u], [p.x])

0 commit comments

Comments
 (0)