Skip to content

Commit 455e14b

Browse files
committed
make time responses of tf use minimal realization
1 parent 208ca92 commit 455e14b

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

lib/ControlSystemsBase/src/timeresp.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ end
7171

7272
Base.step(sys::LTISystem, tfinal::Real; kwargs...) = step(sys, _default_time_vector(sys, tfinal); kwargs...)
7373
Base.step(sys::LTISystem; kwargs...) = step(sys, _default_time_vector(sys); kwargs...)
74-
Base.step(sys::TransferFunction, t::AbstractVector; kwargs...) = step(ss(sys), t::AbstractVector; kwargs...)
74+
Base.step(sys::TransferFunction, t::AbstractVector; kwargs...) = step(ss(sys, balance=true, minimal=true), t::AbstractVector; kwargs...)
7575

7676
"""
7777
y, t, x = impulse(sys[, tfinal])
@@ -119,7 +119,7 @@ end
119119

120120
impulse(sys::LTISystem, tfinal::Real; kwargs...) = impulse(sys, _default_time_vector(sys, tfinal); kwargs...)
121121
impulse(sys::LTISystem; kwargs...) = impulse(sys, _default_time_vector(sys); kwargs...)
122-
impulse(sys::TransferFunction, t::AbstractVector; kwargs...) = impulse(ss(sys), t; kwargs...)
122+
impulse(sys::TransferFunction, t::AbstractVector; kwargs...) = impulse(ss(sys, balance=true, minimal=true), t; kwargs...)
123123

124124
"""
125125
result = lsim(sys, u[, t]; x0, method])
@@ -301,7 +301,7 @@ function lsim(sys::AbstractStateSpace, u::Function, t::AbstractVector;
301301
end
302302

303303

304-
lsim(sys::TransferFunction, args...; kwargs...) = lsim(ss(sys), args...; kwargs...)
304+
lsim(sys::TransferFunction, args...; kwargs...) = lsim(ss(sys, balance=true, minimal=true), args...; kwargs...)
305305

306306

307307
"""

test/test_timeresp.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ xreal[3,:,2] = exp.(-t).*t
7575
y, t, x = step(systf, t0, method=:zoh)
7676
yreal[1,:,1] = 1 .- exp.(-t)
7777
yreal[2,:,2] = -1 .+ exp.(-t) + 2*exp.(-t).*t
78-
@test y yreal atol=1e-14
78+
@test y yreal atol=1e-13
7979
#Step ss
8080
y, t, x = step(sysss, t, method=:zoh)
8181
@test y yreal atol=1e-13
@@ -88,7 +88,7 @@ xreal[3,:,2] = exp.(-t).*(-t .- 1) .+ 1
8888
y, t, x = impulse(systf, t, method=:zoh)
8989
yreal[1,:,1] = exp.(-t)
9090
yreal[2,:,2] = exp.(-t).*(1 .- 2*t)
91-
@test y yreal atol=1e-14
91+
@test y yreal atol=1e-13
9292
#Impulse ss
9393
y, t, x = impulse(1.0sysss, t, method=:zoh)
9494
@test y yreal atol=1e-13

0 commit comments

Comments
 (0)