@@ -144,76 +144,84 @@ def ab01nd(n, m, A, B, jobz='N', tol=0, ldwork=None):
144144 Z = None
145145 return Ac , Bc , ncont , indcon , nblk , Z , tau
146146
147-
148147def ab05md (n1 ,m1 ,p1 ,n2 ,p2 ,A1 ,B1 ,C1 ,D1 ,A2 ,B2 ,C2 ,D2 ,uplo = 'U' ):
149148 """ n,a,b,c,d = ab05md(n1,m1,p1,n2,p2,a1,b1,c1,d1,a2,b2,c2,d2,[uplo])
150149
151150 To obtain the state-space model (A,B,C,D) for the cascaded
152151 inter-connection of two systems, each given in state-space form.
153152
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+ -----
217225 The implemented methods rely on accuracy enhancing square-root or
218226 balancing-free square-root techniques.
219227 The algorithms require less than 30N^3 floating point operations.
0 commit comments