You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: lib/ControlSystemsBase/src/analysis.jl
+114-1
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,8 @@
4
4
Compute the poles of system `sys`.
5
5
6
6
Note: Poles with multiplicity `n > 1` may suffer numerical inaccuracies on the order `eps(numeric_type(sys))^(1/n)`, i.e., a double pole in a system with `Float64` coefficients may be computed with an error of about `√(eps(Float64)) ≈ 1.5e-8`.
7
+
8
+
To compute the poles of a system with non-BLAS floats, such as `BigFloat`, install and load the package `GenericSchur.jl` before calling `poles`.
@@ -243,6 +245,8 @@ Compute the invariant zeros of the system `sys`. If `sys` is a minimal
243
245
realization, these are also the transmission zeros.
244
246
245
247
If `sys` is a state-space system the function has additional keyword arguments, see [`?ControlSystemsBase.MatrixPencils.spzeros`](https://andreasvarga.github.io/MatrixPencils.jl/dev/sklfapps.html#MatrixPencils.spzeros) for more details. If `extra = Val(true)`, the function returns `z, iz, KRInfo` where `z` are the transmission zeros, information on the multiplicities of infinite zeros in `iz` and information on the Kronecker-structure in the KRInfo object. The number of infinite zeros is the sum of the components of iz.
248
+
249
+
To compute zeros of a system with non-BLAS floats, such as `BigFloat`, install and load the package `GenericSchur.jl` before calling `tzeros`.
246
250
"""
247
251
functiontzeros(sys::TransferFunction)
248
252
ifissiso(sys)
@@ -260,7 +264,11 @@ function tzeros(A::AbstractMatrix, B::AbstractMatrix, C::AbstractMatrix, D::Abst
260
264
tzeros(A2, B2, C2, D2)
261
265
end
262
266
263
-
functiontzeros(A::AbstractMatrix{T}, B::AbstractMatrix{T}, C::AbstractMatrix{T}, D::AbstractMatrix{T}; extra::Val{E}=Val{false}(), kwargs...) where {T <:Union{AbstractFloat,Complex{<:AbstractFloat}}, E}
Copy file name to clipboardExpand all lines: lib/ControlSystemsBase/test/test_analysis.jl
+17-2
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
-
@test_throws MethodError poles(big(1.0)*ssrand(1,1,1)) # This errors before loading GenericLinearAlgebra
2
-
usingGenericLinearAlgebra# Required to compute eigvals of a matrix with exotic element types
1
+
@test_throws MethodError poles(big(1.0)*ssrand(1,1,1)) # This errors before loading GenericSchur
2
+
usingGenericSchur# Required to compute eigvals (in tzeros and poles) of a matrix with exotic element types
3
3
@testset"test_analysis"begin
4
4
es(x) =sort(x, by=LinearAlgebra.eigsortby)
5
5
## tzeros ##
@@ -58,6 +58,7 @@ C = [0 -1 0]
58
58
D = [0]
59
59
ex_6 =ss(A, B, C, D)
60
60
@testtzeros(ex_6) == [2] # From paper: "Our algorithm will extract the singular part of S(A) and will yield a regular pencil containing the single zero at 2."
0 commit comments