DynamicSystems - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Science and Engineering : Dynamic Systems : System Manipulation Tools : DynamicSystems/SeriesConnect





create the equivalent system representation of two or more system objects connected in series


Calling Sequence






Calling Sequence

SeriesConnect(systems, indexes, opts)




list(System); list of system objects



(optional) list(list); list of lists specifying the indexes of the outputs and inputs to be connected in two consecutive systems in series, i.e. [[outputs sys 1], [inputs sys 2], [outputs sys 2],..., [inputs sys n]].



(optional) equation(s) of the form option = value; specify options for the SeriesConnect command



outputtype = tf, coeff, zpk, ss, or de


Specifies the subtype of the returned system object.  The default return type is based on the type of the system objects specified in the systems parameter. See the Description section for more details on the return type.


merge = keep, evaluate, or replace


Specifies how parameters from different systems are merged. The default is keep.


keep: keep the original parameters. The value for a parameter is the value assigned by the first system that defines it.


evaluate: replace all parameters in the systems with their assigned values.


replace: replace each parameter in a system with a distinct parameter created by appending an index from the param_indices options. For example, the parameter P of the first system becomes P1.


indices = list


Used when merge is replace. The k-th element of the list is appended, as an index, to each parameter name of the k-th system. The number of elements must match the number of systems. The default is the positive integers, with 1 corresponding to the first subsystem.



The SeriesConnect command creates the equivalent system representation of two or more system objects connected in series.


The systems are connected in series in the order specified, matching the outputs of the previous system to the inputs of the next system unless index lists are specified.


If indexes is provided, specific outputs of the previous system are connected to specific inputs of the next system in the order given by the indexes in the lists.


When two systems are specified, the first list contains the indexes of the outputs of the first system, and the second list contains the indexes of the inputs of the second system. For subsequent series connections, the same rule applies. For n systems, the necessary number of index lists is (2n - 2).


The returned system has the same number of inputs as the first system specified, and the same number of outputs as the last system specified.


The systems must be either all continuous or all discrete with the same sampling times.


The returned system type is determined by the type of the input systems, unless the outputtype option is used. If different types of system objects are passed, the returned system type is determined based on a precedence list defined as tf < coeff < zpk < ss < de. For example, if a ss and tf system are supplied, the output will be an ss system.



Example 1: SISO series connection

n := 2: m := 1: p := 1:

sys1 := StateSpace('usesymbols', 'numinputs'=m, 'numoutputs'=p, 'numstates'=n):

sys2 := StateSpace('symbols' = [e, f, g, h], 'usesymbols', 'numinputs'=m, 'numoutputs'=p, 'numstates'=n):

series1 := SeriesConnect([sys1, sys2]):


State Spacecontinuous1 output(s); 1 input(s); 4 state(s)inputvariable&equals;u1toutputvariable&equals;y1tstatevariable&equals;x1t&comma;x2t&comma;x3t&comma;x4ta&equals;a1,1a1,200a2,1a2,200f1,1c1,1f1,1c1,2e1,1e1,2f2,1c1,1f2,1c1,2e2,1e2,2b&equals;b1,1b2,1f1,1d1,1f2,1d1,1c&equals;h1,1c1,1h1,1c1,2g1,1g1,2d&equals;h1,1d1,1


Connect three transfer functions in series

series1tf := SeriesConnect([TransferFunction(s/(s^3+b*s^2+c*s+d)), TransferFunction(1/(tau*s + a)), TransferFunction(K/s^2)]):


Transfer Functioncontinuous1 output(s); 1 input(s)inputvariable&equals;u1soutputvariable&equals;y1stf1,1&equals;Kτs5+τb+as4+ab+τcs3+ac+τds2+ads


Example 2: MIMO series connection

sys1b := StateSpace('symbols' = [i, j, k, l], 'usesymbols', 'numinputs'=m, 'numoutputs'=p+1, 'numstates'=n):

sys2b := StateSpace('symbols' = [o, q, r, s], 'usesymbols', 'numinputs'=m+1, 'numoutputs'=p, 'numstates'=n):

series2 := SeriesConnect([sys1b, sys2b], [[1,2], [1,2]]):


State Spacecontinuous1 output(s); 1 input(s); 4 state(s)inputvariable&equals;u1toutputvariable&equals;y1tstatevariable&equals;x1t&comma;x2t&comma;x3t&comma;x4ta&equals;i1,1i1,200i2,1i2,200q1,1k1,1+q1,2k2,1q1,1k1,2+q1,2k2,2o1,1o1,2q2,1k1,1+q2,2k2,1q2,1k1,2+q2,2k2,2o2,1o2,2b&equals;j1,1j2,1q1,1l1,1+q1,2l2,1q2,1l1,1+q2,2l2,1c&equals;s1,1k1,1+s1,2k2,1s1,1k1,2+s1,2k2,2r1,1r1,2d&equals;s1,1l1,1+s1,2l2,1


Example 3: Series connection of two systems with 2nd output of 1st system to 1st input of 2nd system

sys1c := StateSpace('symbols' = [t, v, w, z], 'usesymbols', 'numinputs'=m+1, 'numoutputs'=p+1, 'numstates'=n):

series3 := SeriesConnect([sys1c, sys2b], [[2], [1]], 'outputtype' = de):


Diff. Equationcontinuous1 output(s); 2 input(s)inputvariable&equals;u1t&comma;u2toutputvariable&equals;y1tde&equals;&lcub;&lsqb;x1.t&equals;t1,1x1t+t1,2x2t+v1,1u1t+v1,2u2t, x2.t&equals;t2,1x1t+t2,2x2t+v2,1u1t+v2,2u2t, x3.t&equals;&lcub;q1,1w2,1x1t+q1,1w2,2x2t+o1,1x3t+o1,2x4t +q1,1z2,1u1t+q1,1z2,2u2t, x4.t&equals;&lcub;q2,1w2,1x1t+q2,1w2,2x2t+o2,1x3t+o2,2x4t +q2,1z2,1u1t+q2,1z2,2u2t, y1t&equals;&lcub;s1,1w2,1x1t+s1,1w2,2x2t+r1,1x3t+r1,2x4t +s1,1z2,1u1t+s1,1z2,2u2t&rsqb;


Example 4: Series connection of two systems with 1st output of 1st system to 2nd input of 2nd system and 2nd output of 1st system to 1st input of 2nd system

series4 := SeriesConnect([sys1c, sys2b], [[1,2], [2,1]]):


State Spacecontinuous1 output(s); 2 input(s); 4 state(s)inputvariable&equals;u1t&comma;u2toutputvariable&equals;y1tstatevariable&equals;x1t&comma;x2t&comma;x3t&comma;x4ta&equals;t1,1t1,200t2,1t2,200q1,1w2,1+q1,2w1,1q1,1w2,2+q1,2w1,2o1,1o1,2q2,1w2,1+q2,2w1,1q2,1w2,2+q2,2w1,2o2,1o2,2b&equals;v1,1v1,2v2,1v2,2q1,1z2,1+q1,2z1,1q1,1z2,2+q1,2z1,2q2,1z2,1+q2,2z1,1q2,1z2,2+q2,2z1,2c&equals;s1,1w2,1+s1,2w1,1s1,1w2,2+s1,2w1,2r1,1r1,2d&equals;s1,1z2,1+s1,2z1,1s1,1z2,2+s1,2z1,2


Example 5: Series connection of three systems as shown in the figure.

series5 := SeriesConnect([sys1c, sys2b, sys1b], [[1,2], [2,1], [1], [1]]):


State Spacecontinuous2 output(s); 2 input(s); 6 state(s)inputvariable&equals;u1t&comma;u2toutputvariable&equals;y1t&comma;y2tstatevariable&equals;x1t&comma;x2t&comma;x3t&comma;x4t&comma;x5t&comma;x6ta&equals;t1,1t1,20000t2,1t2,20000q1,1w2,1+q1,2w1,1q1,1w2,2+q1,2w1,2o1,1o1,200q2,1w2,1+q2,2w1,1q2,1w2,2+q2,2w1,2o2,1o2,200j1,1s1,1w2,1+j1,1s1,2w1,1j1,1s1,1w2,2+j1,1s1,2w1,2j1,1r1,1j1,1r1,2i1,1i1,2j2,1s1,1w2,1+j2,1s1,2w1,1j2,1s1,1w2,2+j2,1s1,2w1,2j2,1r1,1j2,1r1,2i2,1i2,2b&equals;v1,1v1,2v2,1v2,2q1,1z2,1+q1,2z1,1q1,1z2,2+q1,2z1,2q2,1z2,1+q2,2z1,1q2,1z2,2+q2,2z1,2j1,1s1,1z2,1+j1,1s1,2z1,1j1,1s1,1z2,2+j1,1s1,2z1,2j2,1s1,1z2,1+j2,1s1,2z1,1j2,1s1,1z2,2+j2,1s1,2z1,2c&equals;s1,1l1,1w2,1+l1,1s1,2w1,1s1,1l1,1w2,2+l1,1s1,2w1,2l1,1r1,1l1,1r1,2k1,1k1,2l2,1s1,1w2,1+s1,2l2,1w1,1l2,1s1,1w2,2+s1,2l2,1w1,2l2,1r1,1l2,1r1,2k2,1k2,2d&equals;s1,1l1,1z2,1+l1,1s1,2z1,1s1,1l1,1z2,2+l1,1s1,2z1,2l2,1s1,1z2,1+s1,2l2,1z1,1l2,1s1,1z2,2+s1,2l2,1z1,2


Alternately, using the series4 result:

series5e := SeriesConnect([series4, sys1b]):


State Spacecontinuous2 output(s); 2 input(s); 6 state(s)inputvariable&equals;u1t&comma;u2toutputvariable&equals;y1t&comma;y2tstatevariable&equals;x1t&comma;x2t&comma;x3t&comma;x4t&comma;x5t&comma;x6ta&equals;t1,1t1,20000t2,1t2,20000q1,1w2,1+q1,2w1,1q1,1w2,2+q1,2w1,2o1,1o1,200q2,1w2,1+q2,2w1,1q2,1w2,2+q2,2w1,2o2,1o2,200j1,1s1,1w2,1+s1,2w1,1j1,1s1,1w2,2+s1,2w1,2j1,1r1,1j1,1r1,2i1,1i1,2j2,1s1,1w2,1+s1,2w1,1j2,1s1,1w2,2+s1,2w1,2j2,1r1,1j2,1r1,2i2,1i2,2b&equals;v1,1v1,2v2,1v2,2q1,1z2,1+q1,2z1,1q1,1z2,2+q1,2z1,2q2,1z2,1+q2,2z1,1q2,1z2,2+q2,2z1,2j1,1s1,1z2,1+s1,2z1,1j1,1s1,1z2,2+s1,2z1,2j2,1s1,1z2,1+s1,2z1,1j2,1s1,1z2,2+s1,2z1,2c&equals;l1,1s1,1w2,1+s1,2w1,1l1,1s1,1w2,2+s1,2w1,2l1,1r1,1l1,1r1,2k1,1k1,2l2,1s1,1w2,1+s1,2w1,1l2,1s1,1w2,2+s1,2w1,2l2,1r1,1l2,1r1,2k2,1k2,2d&equals;l1,1s1,1z2,1+s1,2z1,1l1,1s1,1z2,2+s1,2z1,2l2,1s1,1z2,1+s1,2z1,1l2,1s1,1z2,2+s1,2z1,2




The DynamicSystems[SeriesConnect] command was introduced in Maple 18.


For more information on Maple 18 changes, see Updates in Maple 18.

See Also

Description of the Model of a Linear System Object











Download Help Document

Was this information helpful?

Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam