control.parallel(sys1, sys2[, ..., sysn])[source]

Return the parallel connection sys1 + sys2 (+ … + sysn).


out – Parallel interconnection of the systems.

Return type

scalar, array, or InputOutputSystem


ValueError – if sys1 and sys2 do not have the same numbers of inputs and outputs


This function is a wrapper for the __add__ function in the StateSpace and TransferFunction classes. The output type is usually the type of sys1. If sys1 is a scalar, then the output type is the 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.


>>> G1 = ct.rss(3)
>>> G2 = ct.rss(4)
>>> G = ct.parallel(G1, G2) # Same as sys3 = sys1 + sys2
>>> G.ninputs, G.noutputs, G.nstates
(1, 1, 7)
>>> G1 = ct.rss(3, inputs=3, outputs=4)
>>> G2 = ct.rss(4, inputs=3, outputs=4)
>>> G = ct.parallel(G1, G2)  # Add another system
>>> G.ninputs, G.noutputs, G.nstates
(3, 4, 7)