control.matlab.series

control.matlab.series(sys1, sys2[, ..., sysn])[source]

Series connection of I/O systems.

Generates a new system [sysn * ... *] sys2 * sys1.

Parameters:
sys1, sys2, …, sysnscalar, array, or InputOutputSystem

I/O systems to combine.

Returns:
outInputOutputSystem

Series interconnection of the systems.

Other Parameters:
inputs, outputsstr, 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.

statesstr, or list of str, optional

List of names for system states. If not given, state names will be of the form ‘x[i]’ for interconnections of linear systems or ‘<subsys_name>.<state_name>’ for interconnected nonlinear systems.

namestring, optional

System name (used for specifying signals). If unspecified, a generic name ‘sys[id]’ is generated with a unique integer id.

Raises:
ValueError

If sys2.ninputs does not equal sys1.noutputs or if sys1.dt is not compatible with sys2.dt.

See also

append, feedback, interconnect, negate, parallel

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)