@@ -144,76 +144,84 @@ def ab01nd(n, m, A, B, jobz='N', tol=0, ldwork=None):
144
144
Z = None
145
145
return Ac , Bc , ncont , indcon , nblk , Z , tau
146
146
147
-
148
147
def ab05md (n1 ,m1 ,p1 ,n2 ,p2 ,A1 ,B1 ,C1 ,D1 ,A2 ,B2 ,C2 ,D2 ,uplo = 'U' ):
149
148
""" n,a,b,c,d = ab05md(n1,m1,p1,n2,p2,a1,b1,c1,d1,a2,b2,c2,d2,[uplo])
150
149
151
150
To obtain the state-space model (A,B,C,D) for the cascaded
152
151
inter-connection of two systems, each given in state-space form.
153
152
154
- Required arguments:
155
- n1 : input int
156
- The number of state variables in the first system, i.e. the order
157
- of the matrix A1. n1 > 0.
158
- m1 : input int
159
- The number of input variables for the first system. m1 > 0.
160
- p1 : input int
161
- The number of output variables from the first system and the number
162
- of input variables for the second system. p1 > 0.
163
- n2 : input int
164
- The number of state variables in the second system, i.e. the order
165
- of the matrix A2. n2 > 0.
166
- p2 : input int
167
- The number of output variables from the second system. p2 > 0.
168
- A1 : input rank-2 array('d') with bounds (n1,n1)
169
- The leading n1-by-n1 part of this array must contain the state
170
- transition matrix A1 for the first system.
171
- B1 : input rank-2 array('d') with bounds (n1,m1)
172
- The leading n1-by-m1 part of this array must contain the input/state
173
- matrix B1 for the first system.
174
- C1 : input rank-2 array('d') with bounds (p1,n1)
175
- The leading p1-by-n1 part of this array must contain the state/output
176
- matrix C1 for the first system.
177
- D1 : input rank-2 array('d') with bounds (p1,m1)
178
- The leading p1-by-m1 part of this array must contain the input/output
179
- matrix D1 for the first system.
180
- A2 : input rank-2 array('d') with bounds (n2,n2)
181
- The leading n2-by-n2 part of this array must contain the state
182
- transition matrix A2 for the second system.
183
- B2 : input rank-2 array('d') with bounds (n2,p1)
184
- The leading n2-by-p1 part of this array must contain the input/state
185
- matrix B2 for the second system.
186
- C2 : input rank-2 array('d') with bounds (p2,n2)
187
- The leading p2-by-n2 part of this array must contain the state/output
188
- matrix C2 for the second system.
189
- D2 : input rank-2 array('d') with bounds (p2,p1)
190
- The leading p2-by-p1 part of this array must contain the input/output
191
- matrix D2 for the second system.
192
- Optional arguments:
193
- uplo := 'U' input string(len=1)
194
- Indicates whether the user wishes to obtain the matrix A in
195
- the upper or lower block diagonal form, as follows:
196
- = 'U': Obtain A in the upper block diagonal form;
197
- = 'L': Obtain A in the lower block diagonal form.
198
- Return objects:
199
- n : int
200
- The number of state variables (n1 + n2) in the resulting system,
201
- i.e. the order of the matrix A, the number of rows of B and
202
- the number of columns of C.
203
- A : rank-2 array('d') with bounds (n1+n2,n1+n2)
204
- The leading N-by-N part of this array contains the state transition
205
- matrix A for the cascaded system.
206
- B : rank-2 array('d') with bounds (n1+n2,m1)
207
- The leading n-by-m1 part of this array contains the input/state
208
- matrix B for the cascaded system.
209
- C : rank-2 array('d') with bounds (p2,n1+n2)
210
- The leading p2-by-n part of this array contains the state/output
211
- matrix C for the cascaded system.
212
- D : rank-2 array('d') with bounds (p2,m1)
213
- The leading p2-by-m1 part of this array contains the input/output
214
- matrix D for the cascaded system.
215
-
216
- Notes:
153
+ Parameters
154
+ ----------
155
+ n1 : int
156
+ The number of state variables in the first system, i.e. the order
157
+ of the matrix A1. n1 > 0.
158
+ m1 : int
159
+ The number of input variables for the first system. m1 > 0.
160
+ p1 : int
161
+ The number of output variables from the first system and the number
162
+ of input variables for the second system. p1 > 0.
163
+ n2 : int
164
+ The number of state variables in the second system, i.e. the order
165
+ of the matrix A2. n2 > 0.
166
+ p2 : int
167
+ The number of output variables from the second system. p2 > 0.
168
+ A1 : (n1,n1) array_like
169
+ The leading n1-by-n1 part of this array must contain the state
170
+ transition matrix A1 for the first system.
171
+ B1 : (n1,m1) array_like
172
+ The leading n1-by-m1 part of this array must contain the input/state
173
+ matrix B1 for the first system.
174
+ C1 : (p1,n1) array_like
175
+ The leading p1-by-n1 part of this array must contain the state/output
176
+ matrix C1 for the first system.
177
+ D1 : (p1,m1) array_like
178
+ The leading p1-by-m1 part of this array must contain the input/output
179
+ matrix D1 for the first system.
180
+ A2 : (n2,n2) array_like
181
+ The leading n2-by-n2 part of this array must contain the state
182
+ transition matrix A2 for the second system.
183
+ B2 : (n2,p1) array_like
184
+ The leading n2-by-p1 part of this array must contain the input/state
185
+ matrix B2 for the second system.
186
+ C2 : (p2,n2) array_like
187
+ The leading p2-by-n2 part of this array must contain the state/output
188
+ matrix C2 for the second system.
189
+ D2 : (p2,p1) array_like
190
+ The leading p2-by-p1 part of this array must contain the input/output
191
+ matrix D2 for the second system.
192
+ uplo : {'U', 'L'}, optional
193
+ Indicates whether the user wishes to obtain the matrix A in
194
+ the upper or lower block diagonal form, as follows:
195
+ = 'U': Obtain A in the upper block diagonal form;
196
+ = 'L': Obtain A in the lower block diagonal form.
197
+ Default is `U`.
198
+
199
+ Returns
200
+ -------
201
+ n : int
202
+ The number of state variables (n1 + n2) in the resulting system,
203
+ i.e. the order of the matrix A, the number of rows of B and
204
+ the number of columns of C.
205
+ A : (n1+n2,n1+n2) ndarray
206
+ The leading N-by-N part of this array contains the state transition
207
+ matrix A for the cascaded system.
208
+ B : (n1+n2,m1) ndarray
209
+ The leading n-by-m1 part of this array contains the input/state
210
+ matrix B for the cascaded system.
211
+ C : (p2,n1+n2) ndarray
212
+ The leading p2-by-n part of this array contains the state/output
213
+ matrix C for the cascaded system.
214
+ D : (p2,m1) ndarray
215
+ The leading p2-by-m1 part of this array contains the input/output
216
+ matrix D for the cascaded system.
217
+
218
+ Raises
219
+ ------
220
+ SlycotParameterError
221
+ :info = -i: the i-th argument had an illegal value
222
+
223
+ Notes
224
+ -----
217
225
The implemented methods rely on accuracy enhancing square-root or
218
226
balancing-free square-root techniques.
219
227
The algorithms require less than 30N^3 floating point operations.
0 commit comments