@@ -140,6 +140,20 @@ function named_ss(sys::AbstractStateSpace{T};
140140 NamedStateSpace {T, typeof(sys)} (sys, x, u, y)
141141end
142142
143+ """
144+ named_ss(sys::AbstractStateSpace, name)
145+
146+ If a single name is provided, the outputs, inputs and states will be automatically named
147+ `y,u,x` with `name` as prefix.
148+ """
149+ function named_ss (sys:: AbstractStateSpace , name)
150+ named_ss (sys,
151+ x = Symbol (string (name)* " x" ),
152+ y = Symbol (string (name)* " y" ),
153+ u = Symbol (string (name)* " u" ),
154+ )
155+ end
156+
143157ControlSystems. ss (sys:: NamedStateSpace ) = ss (sys. sys)
144158
145159iterable (s:: Symbol ) = [s]
@@ -510,12 +524,27 @@ function ExtendedStateSpace(P::NamedStateSpace; z=[], y=[], w=[], u=[])
510524 P. D[zi, wi], P. D[zi, ui], P. D[yi, wi], P. D[yi, ui], P. timeevol)
511525end
512526
513- function named_ss (sys:: ExtendedStateSpace{T} ;
514- x = [Symbol (" x$i " ) for i in 1 : sys. nx],
515- u = [Symbol (" u$i " ) for i in 1 : sys. nu],
516- y = [Symbol (" y$i " ) for i in 1 : sys. ny],
517- w = [Symbol (" w$i " ) for i in 1 : sys. nw],
518- z = [Symbol (" z$i " ) for i in 1 : sys. nz],
527+ """
528+ named_ss(sys::ExtendedStateSpace; kwargs...)
529+ named_ss(sys::ExtendedStateSpace, name; kwargs...)
530+
531+ Assign names to an ExtendedStateSpace. If no specific names are provided for signals
532+ `z,y,w,u` and states`x`, names will be generated automatically.
533+
534+ # Arguments:
535+ - `name`: Prefix to add to all automatically generated names.
536+ - `x`
537+ - `u`
538+ - `y`
539+ - `w`
540+ - `z`
541+ """
542+ function named_ss (sys:: ExtendedStateSpace{T} , name= " " ;
543+ x = Symbol (string (name)* " x" ),
544+ u = Symbol (string (name)* " u" ),
545+ y = Symbol (string (name)* " y" ),
546+ w = Symbol (string (name)* " w" ),
547+ z = Symbol (string (name)* " z" ),
519548 ) where T
520549 x = expand_symbol (x, sys. nx)
521550 u = expand_symbol (u, sys. nu)
0 commit comments