Skip to content

Commit e9e38fd

Browse files
committed
add identity named_ss method
1 parent d0e97b3 commit e9e38fd

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "RobustAndOptimalControl"
22
uuid = "21fd56a4-db03-40ee-82ee-a87907bee541"
33
authors = ["Fredrik Bagge Carlson", "Marcus Greiff"]
4-
version = "0.4.48"
4+
version = "0.4.49"
55

66
[deps]
77
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"

src/named_systems2.jl

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -280,15 +280,12 @@ fb = feedback(s1, s2, r = :r) #
280280
"""
281281
function named_ss(sys::AbstractStateSpace{T};
282282
x = :x,
283-
u = :u, # sinze is used instead of sys.nu for ExtendedStateSpace
283+
u = :u,
284284
y = :y,
285285
name::String = "",
286286
unique = true,
287287
extra = Dict{Symbol, Any}(),
288288
) where T
289-
if sys isa NamedStateSpace
290-
error("Cannot wrap a named statespace in a named statespace")
291-
end
292289
x = expand_symbol(x, sys.nx)
293290
u = expand_symbol(u, size(sys,2)) # size is used instead of sys.nu for ExtendedStateSpace
294291
y = expand_symbol(y, size(sys,1))
@@ -308,6 +305,17 @@ function named_ss(sys::AbstractStateSpace{T};
308305
NamedStateSpace{T, typeof(sys)}(sys, x, u, y, name, extra)
309306
end
310307

308+
function named_ss(sys::NamedStateSpace{T};
309+
x = sys.x,
310+
u = sys.u,
311+
y = sys.y,
312+
name::String = sys.name,
313+
unique = true,
314+
extra = sys.extra,
315+
) where T
316+
named_ss(sys.sys; x, u, y, name, unique, extra)
317+
end
318+
311319
"""
312320
named_ss(sys::AbstractStateSpace, name; x, y, u)
313321

test/test_named_systems2.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ s_autoname = named_ss(G1, :G)
2525
s3 = NamedStateSpace(ssdata(G1)..., s1.x, s1.u, s1.y)
2626
@test s3 == s1
2727

28+
s32 = named_ss(s3)
29+
@test s32 == s3
30+
2831
@test s1[:y, :u] == s1
2932
@test s1[[:y], [:u]] == s1
3033

0 commit comments

Comments
 (0)