control.series
- control.series(sys1, sys2[, ..., sysn])[source]
Return the series connection (sysn * … *) sys2 * sys1.
- Parameters
sys1 (scalar, array, or
InputOutputSystem
) – I/O systems to combine.sys2 (scalar, array, or
InputOutputSystem
) – I/O systems to combine.... (scalar, array, or
InputOutputSystem
) – I/O systems to combine.sysn (scalar, array, or
InputOutputSystem
) – I/O systems to combine.inputs (str, or list of str, optional) – List of strings that name the individual signals. If not given, signal names will be of the form s[i] (where s is one of u, or y). See
InputOutputSystem
for more information.outputs (str, or list of str, optional) – List of strings that name the individual signals. If not given, signal names will be of the form s[i] (where s is one of u, or y). See
InputOutputSystem
for more information.states (str, or list of str, optional) – List of names for system states. If not given, state names will be of of the form x[i] for interconnections of linear systems or ‘<subsys_name>.<state_name>’ for interconnected nonlinear systems.
name (string, optional) – System name (used for specifying signals). If unspecified, a generic name <sys[id]> is generated with a unique integer id.
- Returns
out – Series interconnection of the systems.
- Return type
scalar, array, or
InputOutputSystem
- Raises
ValueError – if sys2.ninputs does not equal sys1.noutputs if sys1.dt is not compatible with sys2.dt
See also
Notes
This function is a wrapper for the __mul__ function in the appropriate
NonlinearIOSystem
,StateSpace
,TransferFunction
, or other I/O system class. The output type is the type of sys1 unless a more general type is required based on type type of sys2.If both systems have a defined timebase (dt = 0 for continuous time, dt > 0 for discrete time), then the timebase for both systems must match. If only one of the system has a timebase, the return timebase will be set to match it.
Examples
>>> G1 = ct.rss(3) >>> G2 = ct.rss(4) >>> G = ct.series(G1, G2) # Same as sys3 = sys2 * sys1 >>> G.ninputs, G.noutputs, G.nstates (1, 1, 7)
>>> G1 = ct.rss(2, inputs=2, outputs=3) >>> G2 = ct.rss(3, inputs=3, outputs=1) >>> G = ct.series(G1, G2) # Same as sys3 = sys2 * sys1 >>> G.ninputs, G.noutputs, G.nstates (2, 1, 5)