Generalized statespace model
Generalized statespace (genss
) models
are statespace models that include tunable parameters or components. genss
models
arise when you combine numeric LTI models with models containing tunable
components (control design blocks). For more information about numeric
LTI models and control design blocks, see Models with Tunable Coefficients.
You can use generalized statespace models to represent control
systems having a mixture of fixed and tunable components. Use generalized
statespace models for control design tasks such as parameter studies
and parameter tuning with commands such as systune
and looptune
.
To construct a genss
model:
Use series
, parallel
, lft
,
or connect
, or the arithmetic
operators +
, 
, *
, /
, \
,
and ^
, to combine numeric LTI models with control
design blocks.
Use tf
or ss
with one or more input arguments
that is a generalized matrix (genmat
)
instead of a numeric array
Convert any numeric LTI model, control design block, or slTuner
(Simulink Control Design) interface (requires Simulink^{®}
Control Design™),
for example, sys
, to genss
form
using:
gensys = genss(sys)
When sys
is an slTuner
interface, gensys
contains
all the tunable blocks and analysis points specified in this interface.
To compute a tunable model of a particular I/O transfer function,
call getIOTransfer(gensys,in,out)
. Here, in
and out
are
the analysis points of interest. (Use getPoints(sys)
to
get the full list of analysis points.) Similarly, to compute a tunable
model of a particular openloop transfer function, use getLoopTransfer(gensys,loc)
.
Here, loc
is the analysis point of interest.

Structure containing the control design blocks included in the
generalized LTI model or generalized matrix. The field names of You can change some attributes of these
control design blocks using dot notation. For example, if the generalized
LTI model or generalized matrix M.Blocks.a.Value = 1; 

Dependency of statespace matrices on tunable and uncertain
parameters, stored as a generalized matrix ( These properties model the dependency of the statespace matrices
on static control design blocks, When the corresponding statespace matrix does not depend on any static control design blocks, these properties evaluate to double matrices. For an example, see Dependence of StateSpace Matrices on Parameters. 

E matrix, stored as a double matrix when the generalized statespace
equations are implicit. The value 

State names, stored as one of the following:
You can assign state names to a Default: 

State unit labels, stored as one of the following:
You can assign state units to a Default: 

Vector storing internal delays. Internal delays arise, for example, when closing feedback loops on systems with delays, or when connecting delayed systems in series or parallel. For more information about internal delays, see Closing Feedback Loops with Time Delays. For continuoustime models, internal delays are expressed in
the time unit specified by the You can modify the values of internal delays. However, the
number of entries in 

Input delay for each input channel, specified as a scalar value
or numeric vector. For continuoustime systems, specify input delays
in the time unit stored in the For a system with You can also set Default: 0 

Output delays. For a system with Default: 0 for all output channels 

Sample time. For continuoustime models, Changing this property does not discretize or resample the model. Default: 

Units for the time variable, the sample time
Changing this property has no effect on other properties, and
therefore changes the overall system behavior. Use Default: 

Input channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign input
names for multiinput models. For example, if sys.InputName = 'controls'; The input names automatically expand to You can use the shorthand notation Input channel names have several uses, including:
Default: 

Input channel units, specified as one of the following:
Use Default: 

Input channel groups. The sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; creates input groups named sys(:,'controls') Default: Struct with no fields 

Output channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign output
names for multioutput models. For example, if sys.OutputName = 'measurements'; The output names automatically expand to You can use the shorthand notation Output channel names have several uses, including:
Default: 

Output channel units, specified as one of the following:
Use Default: 

Output channel groups. The sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; creates output groups named sys('measurement',:) Default: Struct with no fields 

System name, specified as a character vector. For example, Default: 

Any text that you want to associate with the system, stored as a string or a cell array of
character vectors. The property stores whichever data type you
provide. For instance, if sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' Default: 

Any type of data you want to associate with system, specified as any MATLAB^{®} data type. Default: 

Sampling grid for model arrays, specified as a data structure. For model arrays that are derived by sampling one or more independent variables, this property tracks the variable values associated with each model in the array. This information appears when you display or plot the model array. Use this information to trace results back to the independent variables. Set the field names of the data structure to the names of the sampling variables. Set the field values to the sampled variable values associated with each model in the array. All sampling variables should be numeric and scalar valued, and all arrays of sampled values should match the dimensions of the model array. For example, suppose you create a 11by1
array of linear models, sysarr.SamplingGrid = struct('time',0:10) Similarly, suppose you create a 6by9
model array, [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w) When you display M M(:,:,1,1) [zeta=0.3, w=5] = 25  s^2 + 3 s + 25 M(:,:,2,1) [zeta=0.35, w=5] = 25  s^2 + 3.5 s + 25 ... For model arrays generated by linearizing a Simulink model
at multiple parameter values or operating points, the software populates Default: 