|
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, sys2,*sysn): |
| 64 | + """Return the series connection (... * sys3 *) sys2 * sys1 |
| 65 | + for (... sys3 -->) sys1 --> sys2 -->. |
65 | 66 |
|
66 | 67 | Parameters |
67 | 68 | ---------- |
68 | 69 | sys1: scalar, StateSpace, TransferFunction, or FRD |
69 | 70 | sys2: scalar, StateSpace, TransferFunction, or FRD |
70 | | -
|
| 71 | + sysn: scalar, StateSpace, TransferFunction, or FRD |
| 72 | + |
71 | 73 | Returns |
72 | 74 | ------- |
73 | 75 | out: scalar, StateSpace, or TransferFunction |
@@ -97,20 +99,28 @@ def series(sys1, sys2): |
97 | 99 | Examples |
98 | 100 | -------- |
99 | 101 | >>> sys3 = series(sys1, sys2) # Same as sys3 = sys2 * sys1. |
| 102 | + >>> sys_final = series(sys1, sys2, sys3, sys4) |
100 | 103 |
|
101 | 104 | """ |
102 | | - |
103 | | - return sys2 * sys1 |
104 | | - |
105 | | -def parallel(sys1, sys2): |
| 105 | + |
| 106 | + if len(sysn) == 0: |
| 107 | + return sys2 * sys1 |
| 108 | + else: |
| 109 | + sys_final = sys2 * sys1 |
| 110 | + for sys in sysn: |
| 111 | + sys_final = sys * sys_final |
| 112 | + return sys_final |
| 113 | + |
| 114 | +def parallel(sys1, sys2, *sysn): |
106 | 115 | """ |
107 | | - Return the parallel connection sys1 + sys2. |
| 116 | + Return the parallel connection sys1 + sys2 (+ sys3 +... ). |
108 | 117 |
|
109 | 118 | Parameters |
110 | 119 | ---------- |
111 | 120 | sys1: scalar, StateSpace, TransferFunction, or FRD |
112 | 121 | sys2: scalar, StateSpace, TransferFunction, or FRD |
113 | | -
|
| 122 | + sysn: scalar, StateSpace, TransferFunction, or FRD |
| 123 | + |
114 | 124 | Returns |
115 | 125 | ------- |
116 | 126 | out: scalar, StateSpace, or TransferFunction |
@@ -140,10 +150,16 @@ def parallel(sys1, sys2): |
140 | 150 | Examples |
141 | 151 | -------- |
142 | 152 | >>> sys3 = parallel(sys1, sys2) # Same as sys3 = sys1 + sys2. |
143 | | -
|
| 153 | + >>> sys_final = parallel(sys1, sys2, sys3, sys4) |
| 154 | + |
144 | 155 | """ |
145 | | - |
146 | | - return sys1 + sys2 |
| 156 | + if len(sysn) == 0: |
| 157 | + return sys1 + sys2 |
| 158 | + else: |
| 159 | + sys_final = sys1 + sys2 |
| 160 | + for sys in sysn: |
| 161 | + sys_final = sys_final + sys |
| 162 | + return sys_final |
147 | 163 |
|
148 | 164 | def negate(sys): |
149 | 165 | """ |
|
0 commit comments