Skip to content

Commit 2bb70cf

Browse files
committed
Merge branch 'patch-1' of https://github.com/Marxlp/python-control into Marxlp-patch-1
2 parents 9405886 + f167b2e commit 2bb70cf

1 file changed

Lines changed: 28 additions & 12 deletions

File tree

control/bdalg.py

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,16 @@
6161

6262
__all__ = ['series', 'parallel', 'negate', 'feedback', 'append', 'connect']
6363

64-
def series(sys1, sys2):
65-
"""Return the series connection sys2 * sys1 for --> sys1 --> sys2 -->.
64+
def series(sys1, sys2,*sysn):
65+
"""Return the series connection (... * sys3 *) sys2 * sys1
66+
for (... sys3 -->) sys1 --> sys2 -->.
6667
6768
Parameters
6869
----------
6970
sys1: scalar, StateSpace, TransferFunction, or FRD
7071
sys2: scalar, StateSpace, TransferFunction, or FRD
71-
72+
sysn: scalar, StateSpace, TransferFunction, or FRD
73+
7274
Returns
7375
-------
7476
out: scalar, StateSpace, or TransferFunction
@@ -98,20 +100,28 @@ def series(sys1, sys2):
98100
Examples
99101
--------
100102
>>> sys3 = series(sys1, sys2) # Same as sys3 = sys2 * sys1.
103+
>>> sys_final = series(sys1, sys2, sys3, sys4)
101104
102105
"""
103-
104-
return sys2 * sys1
105-
106-
def parallel(sys1, sys2):
106+
107+
if len(sysn) == 0:
108+
return sys2 * sys1
109+
else:
110+
sys_final = sys2 * sys1
111+
for sys in sysn:
112+
sys_final = sys * sys_final
113+
return sys_final
114+
115+
def parallel(sys1, sys2, *sysn):
107116
"""
108-
Return the parallel connection sys1 + sys2.
117+
Return the parallel connection sys1 + sys2 (+ sys3 +... ).
109118
110119
Parameters
111120
----------
112121
sys1: scalar, StateSpace, TransferFunction, or FRD
113122
sys2: scalar, StateSpace, TransferFunction, or FRD
114-
123+
sysn: scalar, StateSpace, TransferFunction, or FRD
124+
115125
Returns
116126
-------
117127
out: scalar, StateSpace, or TransferFunction
@@ -141,10 +151,16 @@ def parallel(sys1, sys2):
141151
Examples
142152
--------
143153
>>> sys3 = parallel(sys1, sys2) # Same as sys3 = sys1 + sys2.
144-
154+
>>> sys_final = parallel(sys1, sys2, sys3, sys4)
155+
145156
"""
146-
147-
return sys1 + sys2
157+
if len(sysn) == 0:
158+
return sys1 + sys2
159+
else:
160+
sys_final = sys1 + sys2
161+
for sys in sysn:
162+
sys_final = sys_final + sys
163+
return sys_final
148164

149165
def negate(sys):
150166
"""

0 commit comments

Comments
 (0)