Skip to content

Commit 0eb5f1f

Browse files
committed
more parameters for series and parallel
1 parent 6ada795 commit 0eb5f1f

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

control/bdalg.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@
6060

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

63-
def series(sys1, sys2):
64-
"""Return the series connection sys2 * sys1 for --> sys1 --> sys2 -->.
63+
def series(sys1,*sysn):
64+
"""Return the series connection (... sys3 *) sys2 * sys1 for (... sys3 -->)--> sys1 --> sys2 -->.
6565
6666
Parameters
6767
----------
6868
sys1: scalar, StateSpace, TransferFunction, or FRD
69-
sys2: scalar, StateSpace, TransferFunction, or FRD
69+
*sysn: other scalers, StateSpaces, TransferFunctions, or FRDs
7070
7171
Returns
7272
-------
@@ -98,18 +98,20 @@ def series(sys1, sys2):
9898
--------
9999
>>> sys3 = series(sys1, sys2) # Same as sys3 = sys2 * sys1.
100100
101-
"""
101+
>>> sys5 = series(sys1, sys2, sys3, sys4) # More syss
102102
103-
return sys2 * sys1
103+
"""
104+
from functools import reduce
105+
return reduce(lambda x, y:x*y, sysn, sys1)
104106

105-
def parallel(sys1, sys2):
107+
def parallel(sys1, *sysn):
106108
"""
107109
Return the parallel connection sys1 + sys2.
108110
109111
Parameters
110112
----------
111113
sys1: scalar, StateSpace, TransferFunction, or FRD
112-
sys2: scalar, StateSpace, TransferFunction, or FRD
114+
*sysn: other scalers, StateSpaces, TransferFunctions, or FRDs
113115
114116
Returns
115117
-------
@@ -141,9 +143,11 @@ def parallel(sys1, sys2):
141143
--------
142144
>>> sys3 = parallel(sys1, sys2) # Same as sys3 = sys1 + sys2.
143145
144-
"""
146+
>>> sys5 = parallel(sys1, sys2, sys3, sys4) # More syss
145147
146-
return sys1 + sys2
148+
"""
149+
from functools import reduce
150+
return reduce(lambda x, y:x+y, sysn, sys1)
147151

148152
def negate(sys):
149153
"""

0 commit comments

Comments
 (0)