Skip to content

Commit b41dde4

Browse files
authored
Merge pull request #956 from JuliaControl/typeissues
avoid some type issues arising with Symbolics
2 parents eb34756 + f68bf1c commit b41dde4

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

lib/ControlSystemsBase/src/types/StateSpace.jl

+2-3
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,13 @@ function StateSpace(D::AbstractArray{T}, timeevol::TimeEvolution) where {T<:Numb
113113
A = zeros(T, 0, 0)
114114
B = zeros(T, 0, nu)
115115
C = zeros(T, ny, 0)
116-
D = reshape(D, (ny,nu))
117116
return StateSpace(A, B, C, D, timeevol)
118117
end
119118
StateSpace(D::AbstractArray, Ts::Number) = StateSpace(D, Discrete(Ts))
120119
StateSpace(D::AbstractArray) = StateSpace(D, Continuous())
121120

122-
StateSpace(d::Number, Ts::Number; kwargs...) = StateSpace([d], Discrete(Ts))
123-
StateSpace(d::Number; kwargs...) = StateSpace([d], Continuous())
121+
StateSpace(d::Number, Ts::Number; kwargs...) = StateSpace([d;;], Discrete(Ts))
122+
StateSpace(d::Number; kwargs...) = StateSpace([d;;], Continuous())
124123

125124

126125
# StateSpace(sys) converts to StateSpace

lib/ControlSystemsBase/src/types/conversion.jl

+2-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,8 @@ Base.convert(::Type{StateSpace}, s::HeteroStateSpace) = StateSpace(s.A, s.B, s.C
8282
Base.convert(::Type{StateSpace}, s::HeteroStateSpace{Continuous}) = StateSpace(s.A, s.B, s.C, s.D)
8383

8484
function Base.convert(::Type{StateSpace}, G::TransferFunction{TE,<:SisoTf{T0}}; kwargs...) where {TE,T0<:Number}
85-
T = Base.promote_op(/,T0,T0)
85+
ONE = one(T0)
86+
T = typeof(ONE/ONE)
8687
convert(StateSpace{TE,T}, G; kwargs...)
8788
end
8889

lib/ControlSystemsBase/src/types/zpk.jl

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ function zpk(G::TransferFunction{TE,S}) where {TE<:TimeEvolution,T0, S<:SisoTf{T
6969
convert(TransferFunction{TE,SisoZpk{T, complex(T)}}, G)
7070
end
7171

72-
zpk(var::AbstractString) = zpk(tf(var))
73-
zpk(var::AbstractString, Ts::Real) = zpk(tf(var, Ts))
72+
zpk(var::Union{AbstractString, Char}) = zpk(tf(var))
73+
zpk(var::Union{AbstractString, Char}, Ts::Real) = zpk(tf(var, Ts))
7474

7575
# Catch all 3(4) argument versions
7676
zpk(z, p, k, Ts::Number) = zpk(z, p, k, Discrete(Ts))

0 commit comments

Comments
 (0)