|
60 | 60 |
|
61 | 61 | __all__ = ['series', 'parallel', 'negate', 'feedback', 'append', 'connect'] |
62 | 62 |
|
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 -->. |
65 | 65 |
|
66 | 66 | Parameters |
67 | 67 | ---------- |
68 | 68 | sys1: scalar, StateSpace, TransferFunction, or FRD |
69 | | - sys2: scalar, StateSpace, TransferFunction, or FRD |
| 69 | + *sysn: other scalers, StateSpaces, TransferFunctions, or FRDs |
70 | 70 |
|
71 | 71 | Returns |
72 | 72 | ------- |
@@ -98,18 +98,20 @@ def series(sys1, sys2): |
98 | 98 | -------- |
99 | 99 | >>> sys3 = series(sys1, sys2) # Same as sys3 = sys2 * sys1. |
100 | 100 |
|
101 | | - """ |
| 101 | + >>> sys5 = series(sys1, sys2, sys3, sys4) # More syss |
102 | 102 |
|
103 | | - return sys2 * sys1 |
| 103 | + """ |
| 104 | + from functools import reduce |
| 105 | + return reduce(lambda x, y:x*y, sysn, sys1) |
104 | 106 |
|
105 | | -def parallel(sys1, sys2): |
| 107 | +def parallel(sys1, *sysn): |
106 | 108 | """ |
107 | 109 | Return the parallel connection sys1 + sys2. |
108 | 110 |
|
109 | 111 | Parameters |
110 | 112 | ---------- |
111 | 113 | sys1: scalar, StateSpace, TransferFunction, or FRD |
112 | | - sys2: scalar, StateSpace, TransferFunction, or FRD |
| 114 | + *sysn: other scalers, StateSpaces, TransferFunctions, or FRDs |
113 | 115 |
|
114 | 116 | Returns |
115 | 117 | ------- |
@@ -141,9 +143,11 @@ def parallel(sys1, sys2): |
141 | 143 | -------- |
142 | 144 | >>> sys3 = parallel(sys1, sys2) # Same as sys3 = sys1 + sys2. |
143 | 145 |
|
144 | | - """ |
| 146 | + >>> sys5 = parallel(sys1, sys2, sys3, sys4) # More syss |
145 | 147 |
|
146 | | - return sys1 + sys2 |
| 148 | + """ |
| 149 | + from functools import reduce |
| 150 | + return reduce(lambda x, y:x+y, sysn, sys1) |
147 | 151 |
|
148 | 152 | def negate(sys): |
149 | 153 | """ |
|
0 commit comments