[go: up one dir, main page]

Academia.eduAcademia.edu
MULTIBODY DYNAMICS 2005, ECCOMAS Thematic Conference J.M. Goicolea, J. Cuadrado, J.C. Garcı́a Orden (eds.) Madrid, Spain, 21–24 June 2005 THE UDWADIA-KALABA FORMULATION: A REPORT ON ITS NUMERICAL EFFICIENCY IN MULTIBODY DYNAMICS SIMULATIONS AND ON ITS TEACHING EFFECTIVENESS D. de Falco⋆ , E. Pennestrı̀† , and L. Vita† ⋆ Dipartimento di Ingegneria Spaziale e Aeronautica II Università di Napoli Real Casa dell’Annunziata, Via Roma,29 81031 Aversa - Italy e-mail: domenico.defalco@unina2.it † Dipartimento di Ingegneria Meccanica Università di Roma Tor Vergata Facoltà Ingegneria, via del Politecnico, 1 00133 Roma, Italy e-mails: pennestri@mec.uniroma2.it, web page: www.ingegneriameccanica.org vita@ing.uniroma2.it Keywords: Pseudoinverse matrix computation, Udwadia-Kalaba dynamic formulation, Multibody dynamics, Least squares. Abstract. The formulation of the dynamic equations of motion proposed by Udwadia-Kalaba is discussed from the point of view of teaching effectiveness and numerical efficiency. Since this formulation requires the computation of a pseudoinverse matrix, it is investigated the influence of the method of pseudoinverse computation on the dynamic simulation of an overconstrained linkage. 1 D. de Falco, E. Pennestrı̀ and L. Vita 1 INTRODUCTION In a recent series of papers (e.g. [1]) and in a textbook [2] Udwadia and Kalaba, starting from the Gauss Principle of Least Constraint [3, 5, 6], deduced a new formulation of the dynamics equations of motion for a system of constrained particles or rigid bodies. The main features of this formulation are: - the equations of motion can be reduced to a system of ordinary differential equations (ODE), even when a redundant set of coordinates is used; - variations of degrees-of-freedom due to the change of topology or other causes are allowed and do not require special effort in computer programming; - rheonomic and scleronomic constraints are treated in the same way; - forward and inverse dynamics problems can be solved within the same tool; - easy computer implementation, provided that a subroutine for computing the pseudoinverse matrix is available. The above features make the formulation very attractive. In fact, one of the shortcomings associated with the use of a redundant set of coordinates is the integration of a mixed system of differential-algebraic equations (DAE). These systems are different from ordinary differential equations (ODE) and require specialised numerical methods for their solution. The matrices are of high order, but sparse. The computer programming effort required by redundant coordinates dynamic formulations is relatively low and within the capabilities of the average mechanical engineering student. A fundamental step of the Udwadia-Kalaba (UK) formulation is the computation of the Moore-Penrose generalized inverse or pseudoinverse matrix. Arabyan and Wu [7] investigated numerically the advantages of this formulation within the framework of multibody dynamics and compared the number of floating point operations (flops) required for computing the pseudoinverse with Gram-Schmidt (GS) orthogonalization and Singular Value Decomposition (SVD). However, the authors of the present paper believe that the comparison of the methods for computing the pseudoinverse only on the basis of flops operations required, although important, is somewhat limited. For this reason we decided to compare different methods by observing other parameters such as the reliability, accuracy of results and speed of computation. Thus, one of the purposes of this paper is to report about numerical tests, for accuracy and computational efficiency, of different pseudoinverse matrix calculation algorithms with explicit reference to multibody dynamics simulations. These tests do not seem to be readily available in literature. The paper is organized in four parts. The first and secont parts are mainly tutorial. In the first part the main steps of the following methods for computing the pseudoinverse matrix are summarized: - Singular value decomposition (SVD) [22]; - Varga’s algorithm [19] with QR decomposition computed by means of the Householder factorization [9]; - Greville’s algorithm [20, 21]; 2 D. de Falco, E. Pennestrı̀ and L. Vita - Least squares solution with modified Gram-Schmidt (GS) QR factorization [22]; - Least squares solution with Householder QR factorization. [22] In the second part the formulation of Udwadia-Kalaba is concisely deduced. The third part describes the test problem and reports the numerical results. Finally, the fourth part of the paper discuss some issues related to the teaching of the UK formulation in a multibody dynamics course. 2 REVIEW OF METHODS FOR COMPUTING THE MOORE-PENROSE PSEUDOINVERSE MATRIX This section, for completeness, summarizes the main properties of the Moore-Penrose pseudoinverse matrix and the steps of the different algorithms tested during the dynamic simulations. 2.1 Definitions The main properties of the Moore-Penrose pseudoinverse matrix [A]+ of a matrix [A] are: • [A] [A]+ T = [A] [A]+ T • [A]+ [A] = [A]+ [A] • [A] [A]+ [A] = [A] • [A]+ [A] [A]+ = [A]+ When [A] is a square matrix with full rank, then its pseudoinverse coincide with the inverse. The Moore-Penrose pseudoinverse matrix is associated with the least squares solution of the linear system of equations [A] {x} = {b} , (1) where the number m of equations is not equal to the number n of unknowns and [A] does not necessarily has full rank. In particular, the following cases are distinguished: Overdetermined system of equations (m > n) By requiring that (2) h ≡ k[A] {x} − {b}k22 is a minimum, one obtains [A]T [A] {x} = [A]T {b} . (3) Therefore, the solution of (1) can be stated as where {x} = [A]+ {b} , (4) −1 [A] = [A] [A] [A]T (5) +  T is the right pseudoinverse matrix. Undetermined system of equations (m < n) 3 D. de Falco, E. Pennestrı̀ and L. Vita The solution is obtained imposing the minimum of the Euclidean norm g ≡ kxk22 , (6) with {x} subjected to (1). Thus, introduced the new objective function, g ′ ≡ g + {λ}T ([A] {x} − {b}) the solution is achieved solving the system      0 x I AT , = b λ A 0 (7) (8) or where {x} = [A]+ {b} , (9) −1  T [A] = [A] [A] [A] , (10) + is the left pseudoinverse matrix. T 2.2 The least squares method Since there is abundance of software procedures for computing the least squares solution of a system of algebraic equations [A] {x} = {b} , (11) the computation of the pseudoinverse can be reduced to such solution. These procedures are often based on QR decomposition by means of Householder reflections or GS orthogonalization. Let  T {b1 } = 1 0 0 . . . 0 ,  T {b2 } = 0 1 0 . . . 0 ,  T {b3 } = 0 0 1 . . . 0 , ......  T {bm } = 0 0 0 . . . 1 . The procedure differs according to the dimensions of [A]. Case m > n 1. Solve m times1 the system [A]T [A] {x} = [A]T {b} . (12) 2. From the m solutions {x1 }, {x2 },. . . ,{xm } one can form the pseudoinverse matrix   [A]+ = {x1 } {x2 } {x3 } . . . {xm } (13) 1 Computationally, the system is solved only once. The factor matrices used for the first solution are saved and used also for the remaining ones. 4 D. de Falco, E. Pennestrı̀ and L. Vita Case n ≥ m 1. Solve m times the system  I AT A 0  x λ  =  0 b  (14) Also in this case the pseudoinverse is given by equation (13). The square matrices in (12) and (14) are singular or ill conditioned. Thus their solution requires special care. As mentioned, an appropriate way to solve least squares problems is by means of GS orthogonalization or Householder QR factorization. 2.3 Singular Value Decomposition method 1. Apply the Singular Value Decomposition (SVD) to matrix [A] [A] = [U] [Σ] [V ]T , where [U] [U]T = [I]m×m , [V ] [V ]T = [I]n×n is a diagonal matrix. 0 σ1  ..     [Σ] =     0 0 .. . . σn ··· 0 . .. . .. ··· 0 0          2. Compute [A]+ = [V ] [Σ]+ [U]T , where  σ1+     + [Σ] =     and ( 0 σi+ = σi−1 for i = 1, 2, . . . , n. 5 0 0 .. . 0 0 .. . σn+ ··· 0 . .. . .. ··· 0 (σi = 0) (σi 6= 0) (15)          (16) D. de Falco, E. Pennestrı̀ and L. Vita 2.4 Varga’s method 1. Apply the QR factorization to matrix [A]. Thus, one obtains:     G1 [A] = [U] [G] = U1 U2 0 with [G1 ] matrix with full row rank and [U]T [U] = [Im ]. 2. Apply the QR factorization to [G1 ]T T T [G1 ] = [V ]  GT2 0  , (17) with [G2 ]T invertible matrix and [V ] [V ]T = [In ]. 3. Since [A] = [U]  G2 0 0 0  [V ] , the pseudomatrix is readily obtained from   −1 G2 0 + T [A] = [V ] [U]T . 0 0 (18) 2.5 Greville’s method 1. Decompose the matrix [A]m×n into row vectors {ai }, (i = 1, 2, . . . , m)   [A] = aT1 aT2 · · · aTm 2. Let matrix [Ai ]i×n = with [A1 ]1×n = {a1 }1×n .  Ai−1 ai  3. For i = 2, . . . , m compute the matrices [Ai ]+ as i h + T T = [Ai ]+ , [Ai−1 ] − {bi } {di } {bi } n×i where {di }1×(i−1) = {ai } [Ai−1 ]+ {ci }1×n = {ai } − {di } [Ai−1 ]  {c } i  (kci k = 6 0) {ci }{ci }T {bi }1×n = {di }[A+ ]T i−1  (kci k = 0) 1+{di }{di }T ( {a1 }T (ka1 k 6= 0) T + {a 1 }{a1 } [A1 ] = {a1 }T (ka1 k = 0) 4. After m repetitions [Am ]+ gives the pseudoinverse [A]+ n×m of matrix [A]. 6 (19) D. de Falco, E. Pennestrı̀ and L. Vita 3 THE FORMULATION OF UDWADIA-KALABA In this section the formulation of Udwadia-Kalaba is deduced following the approach of Arabyan and Wu [7]. Let us denote with • {F } the vector of external generalized forces; • [M] the mass matrix; • [Ψq ] the Jacobian of constraints equations; • {q} the vector of generalized coordinates; • {γ} = − ([Ψq ] {q̇})q {q̇} − 2 [Ψqt ] {q̇} − {Ψtt }; • the upperscript + the operation of pseudoinverse of a matrix. When a redundant set of coordinates is used, the following system of differential-algebraic system of equations (DAE) is obtained      F q̈ M ΨTq (20) = Ψq 0 γ λ The square matrix at the left-hand can be inverted by partitioning [23] −1 # −1 −1 " −1  M ΨTq Ψq M −1 M −1 ΨTq Ψq M −1 ΨTq M − M −1 ΨTq Ψq M −1 ΨTq −1 −1 . = Ψq 0 Ψq M −1 − Ψq M −1 ΨTq Ψq M −1 ΨTq (21) Introduced the vector {q̈f } = [M]−1 {F } , (22) representing the acceleration vector of the unconstrained system, the solution of (20) follows −1  ({γ} − [Ψq ] {q̈f }) {q̈} = {q̈f } + [M]−1 [Ψq ]T [Ψq ] [M]−1 [Ψq ]T and  {λ} = [Ψq ] [M] If we let −1 [Ψq ] T −1 ({γ} − [Ψq ] {q̈f }) . 1 (24) 1 [M]−1 = [M]− 2 [M]− 2 , [D] = [Ψq ] [M] (23) − 21 , (25) (26) then equation (23) can be rewritten in the form {q̈} = {q̈f } + [M] − 21 1 = {q̈f } + [M]− 2   −1 − 21 T − 21 − 21 T [M] [Ψq ] [Ψq ] [M] [M] [Ψq ] ({γ} − [Ψq ] {q̈f }) ,  −1 [D]T [D] [D]T ({γ} − [Ψq ] {q̈f }) (27) 7 D. de Falco, E. Pennestrı̀ and L. Vita Taken into account the definition of right pseudoinverse matrix formerly stated, we can let −1  [D]+ = [D]T [D] [D]T , (28) and the previous equation can be concisely expressed as follows [7]: 1 {q̈} = {q̈f } + [M]− 2 [D]+ ({γ} − [Ψq ] {q̈f }) . (29) This is the dynamic formulation originally proposed by Udwadia and Kalaba [2] starting from Gauss Principle of Least Constraint. If the Baumgarte stabilization is introduced, then (29) is modified as follows  n o  + − 21 2 (30) {q̈} = {q̈f } + [M] [D] {γ} − 2α Ψ̇ − β {Ψ} − [Ψq ] {q̈f } , where α and β are the gain parameters usually chosen such that α = β. 4 THE PROBLEM OF RANK COMPUTATION A serious numerical problem that arises in the computation of the pseudoinverse is the accurate computation of the matrix rank. At the practical level, the user must establish a numerical treshold under which the numerical values are all considered to be zero. One may set this value equal to the hardware precision. However, since the inverse of these very small values is required by the algorithms, this inflates a perturbation in the numerical solution. Thus, a truncation or other means of regularization are compulsory to obtain acceptable results. In all the examples discussed in the paper the numerical treshold necessary for the computation of the pseudoinverse is set equal to the error tolerance parameter TOL required by the following IMSL numerical integration subroutines • DIVPAG, which solve an ODE initial-value problem using the Adams-Moulton or Gear’s method. • DIVPRK, which solve an ODE initial-value problem using the Runge-Kutta-Verner fifth and sixth order method. During the integration process, both subroutines try to control the norm of the local error such that the global error is proportional to TOL. It should be acknowledged that the adoption of different criterion may alter the results herein presented. 5 SUMMARY OF FORTRAN SUBROUTINES USED Whenever possible the computation of the pseudoinverse has been executed by means of standard math libraries, such as IMSL. For instance, the Householder QR factorization has been carried out through the combined use of IMSL library subroutines DLQRRR and DLQERR. For other relevant matrix computations, the Fortran code available on the web site www.netlib.org, such as LAPACK, has been used. All the Fortran subroutines described in this section and implemented by the authors are available upon request. • Pseudoinverse by means of the SVD method The IMSL library [9] supplies the readyto-use DLSGRR subroutine. 8 D. de Falco, E. Pennestrı̀ and L. Vita • Pseudoinverse by means of the Varga’s method The two Householder QR factorizations required are executed by means of the combined use of the IMSL library subroutines DLQRRR and DLQERR. For the inversion of the triangular matrix G2 the IMSL routine DLINRT is used. Computation of transpose and matrix multiplications are done with DTRNRR and DMRRRR, respectively. • Pseudoinverse by means of Greville’s method A Fortran subroutine has been implemented with matrix operations executed with LAPACK subroutines [4]. • Pseudoinverse by means of Least squares solution and Householder QR factorization For the least squares solution of a linear system of equations, it has been used the IMSL subroutines DLQRRR and DLQRSL. DLQRRR provides information on the QR factorization, whereas DLQRSL compute the least squares solution. • Pseudoinverse by means of Least squares solution and modified Gram-Schmidt QR factorization For the least squares solution of a linear system of equations, it has been used the code written by R.H. Wapler [10]. 6 NUMERICAL EXAMPLE The example chosen to test the different algorithms of pseudoinverse computation is the overconstrained mechanism shown in Figure 1. The length, mass and moment of inertia of each of the three parallel links are L=1, m=1 and I=0.1, respectively. The length, mass and moment of inertia of the coupler are L2 =2, m2 =2, I2 =0.2. The kinematic constraints were modelled by means of the method described in Nikravesh textbook [18]. The position of each body is described by three coordinates, thus there are n=12 coordinates and k=12 algebraic constraints due to the presence of six revolute pairs. Due to the particular link dimension, Jacobian rank is r = 11. Thus the degree-of-freedom is F = n−r = 1. Gravity force is included and dissipative effects neglected. The results were monitored for tf =20 s of simulation time. Sometimes the execution was halted because of precision loss or other causes. The results of the numerical tests are summarized in Tables 2-7. The simulations were carried out with a PC equipped with AMD Athlon 2600+, 512 MB RAM, running under Microsoft XP Professional. The CPU time reported is the average of the CPU times measured executing four times the same simulation. 7 TEACHING EXPERIENCES In this section are discussed some teaching issues related with the actual implementation at the classroom level of the Udwadia-Kalaba formulation. The current formulations in the syllabus of the course Computational Kinematics and Dynamics (Cinematica e Dinamica Computazionale), offered at University of Roma Tor Vergata, are: • Coordinate partitioning (CP) [11, 17, 18, 12]; • Orthogonalization of constraints by means of QR [13] and SVD [14, 15]; • Udwadia-Kalaba (UK) [2]. At textbook level, a thoughtful discussion of the differences between coordinate partitioning method and formulations based on the orthogonalization of constraints is presented by Bayo and de Jalon [16]. 9 ✂✞ ✞ ✄ ✞ ✄ ✄ ✄ ✆ ✁ ☎ ✂ ✂ ✂ ✆ ☎ ✁✁✂✝ ☎ ✆ ✝ ✄ ✝ D. de Falco, E. Pennestrı̀ and L. Vita Figure 1: Five bar parallelogram linkage Table 1: Comparison of dynamic formulations on the basis of students opinion Linear algebra background required Algebra manipulation effort Computer programming effort Dynamic formulation CP SVD QR Average Extra Extra Medium Medium Medium Medium Medium Medium UK Extra High Low From the didactic point of view, the coordinate partitioning method is very appealing. It is very intuitive and the students grasp it very quickly. In fact, from their very first year of engineering curriculum they became acquainted both with theory and computer programming of the Gaussian elimination method. This method can be applied to partition the set of coordinates. The comprehension of the theoretical bases of the remaining mentioned methods (i.e. SVD, QR and Moore-Penrose inverse) requires an extra knowledge of linear algebra. The amount algebraic manipulation work required to obtain the dynamic formulation based on coordinate partitioning is also lighter when compared to the others based on the orthogonalization of constraints. In particular the algebraic manipulation necessary to deduce the equations of dynamics in the form proposed by Udwadia-Kalaba is not straightforward or obvious. The approach presented by Arabyan and Wu [7] (summarized in a previous section) because of its teaching effectiveness is recommended. On the other side, when it comes to computer programming, the Udwadia-Kalaba formulation appears to be preferred by the students once a reliable subroutine for computing the pseudoinverse matrix is made available. The Table 1 summarizes the opinions expressed by students when comparing the different dynamic formulations. Based on the Udwadia-Kalaba formulation a simple 2D multibody dynamics simulation program has been developed. The core of the software is written in Fortran. Preprocessing module has been developed in GTK+ embedded in the Ch scripting language [24]. Mechanism animation is obtained making use of the useful tools available in the Ch Mechanism Toolkit [25]. 10 D. de Falco, E. Pennestrı̀ and L. Vita 8 CONCLUSIONS Computing pseudoinverse by means of the Gram-Schmidt decomposition is usually less expensive than other methods based on the use of the SVD decompositions, Greville algorithm, or Householder reflections. However, these last methods require about twice as much arithmetic, but are more reliable and accurate near the limits of residual reduction. The loss of accuracy usually connected with the Gram-Schmidt method of computing the pseudoinverse requires the integration subroutine a considerable higher number of computational steps in order to maintain the error lower than a fixed limit. The other two methods discussed are very accurate and require less function evaluation calls during numerical integration. Table 2: TOL=10−10. Integration method: Adams-Moulton. Initial time step, ∆t = 0.66 · 10−2 s. No Baumgarte stabilization applied. Method Result SVD Fails1 Varga Fails2 Greville Correct up to 17.5 s LS-Householder Correct up to 16.5 s LS-Modified GS Correct up to 17.0 s 1 2 P i Ψ2i 3.7 · 10−7 9.9 · 10−2 4.5 · 10−5 2.3 · 10−4 1.1 · 10−4 NFUNC NSTEPS CPU 2,961,955 2,633,811 0.93 6,131,159 4,177,395 11.57 3,749,766 3,015,354 36.85 After 9.1 s of correct simulation, the integration subroutine is halted because of repeated error-test failures (see [9], p. 668). After 8.0 s of correct simulation, the integration subroutine is halted after failing to pass the error-test failures (see [9], p. 668). Table 3: TOL=10−8. Integration method: Adams-Moulton. Initial time step, ∆t = 0.66 · 10−2 s. No Baumgarte stabilization applied. Method P Result i Ψ2i SVD Fails1 3.4 · 10−6 Varga Fails2 9.9 · 10−2 Greville Correct up to 17.5 s 1.86 · 10−4 LS-Householder Correct up to 18.0 s 7.9 · 10−4 LS-Modified GS Correct up to 18.0 s 5.2 · 10−4 1 2 NFUNC NSTEPS CPU 1,648,055 1,422,689 1,641,751 1,422,297 1,644,341 1,424,864 0.53 1.28 6.03 After 12.07 s of correct simulation, the integration subroutine is halted because a fatal error 1 from DIVPAG (see [9], p. 668). After 8.06 s of correct simulation, the integration subroutine is halted because the precision loss of constraints equations. 11 D. de Falco, E. Pennestrı̀ and L. Vita Table 4: TOL=10−6. Integration method: Adams-Moulton. Initial time step, ∆t = 0.66 · 10−2 s. No Baumgarte stabilization applied. Method i SVD Correct up to 17.5 s Varga Fails1 Greville Correct up to 19.0 s LS-Householder Correct LS-Modified GS Correct 1 P Result Ψ2i 4.1 · 10−4 9.9 · 10−2 9.7 · 10−4 7.9 · 10−4 6.9 · 10−4 NFUNC NSTEPS CPU 1,033,381 847,294 1,017,558 1,422,689 1,641,751 1,422,297 1,013,795 839,020 0.28 0.37 0.76 3.40 After 7.3 s of correct simulation, the integration subroutine is halted because the precision loss of constraints equations. Table 5: TOL=10−10 . Integration method: Adams-Moulton. Initial time step, ∆t = 0.66 · 10−2 s. Baumgarte stabilization applied, α = 1000, β = 100. Method Result SVD Fails1 Varga Correct Greville Correct LS-Householder Correct LS-Modified GS Correct s 1 P i Ψ2i 4.5 · 10−5 2.1 · 10−7 3.3 · 10−7 4.1 · 10−7 NFUNC 78,491,398 74,043,990 73,707,588 73,910,268 NSTEPS CPU 47,074,599 11.4 44,053,874 18.3 43,948,609 51.5 44,515,071 241.0 After 1.17 s of correct simulation, the integration subroutine is halted because a fatal error 1 from DIVPAG (see [9], p. 668). Table 6: TOL=10−8 . Integration method: Adams-Moulton. Initial time step, ∆t = 0.66·10−2 s. Baumgarte stabilization applied, α = 1000, β = 100. Method Result SVD Fails1 Varga Fails2 Greville Correct LS-Householder Correct LS-Modified GS Correct 1 2 P i Ψ2i 4.90 · 10−7 3.5 · 10−7 4.9 · 10−7 NFUNC NSTEPS 80,109,155 55,569,995 80,197,458 54,468,468 80,112,706 54,604,452 CPU 19.4 55.0 290 After 0.17 s of correct simulation, the integration subroutine is halted because a fatal error 1 from DIVPAG (see [9], p. 668). After 14.97 s of correct simulation, the integration subroutine is halted because the precision loss of constraints equations. 12 D. de Falco, E. Pennestrı̀ and L. Vita Table 7: TOL=10−6 . Integration method: Adams-Moulton. Initial time step, ∆t = 0.66·10−2 s. Baumgarte stabilization applied, α = 1000, β = 100. Method Result SVD Fails1 Varga Fails2 Greville Correct LS-Householder Correct LS-Modified GS Correct 1 2 P i Ψ2i 1.9 · 10−6 1.14 · 10−6 1.06 · 10−6 NFUNC NSTEPS CPU 80,483,163 57,743,095 80,689,071 58,099,798 80,636,983 58,010,479 19.5 55 291 After 0.46 s of correct simulation, the integration subroutine is halted because a fatal error 1 from DIVPAG (see [9], p. 668). After 9.7 s of correct simulation, the integration subroutine is halted because the precision loss of constraints equations. 1e-06 6e-05 5e-05 Ψ2i 6e-07 P i 4e-05 P i Ψ2i 8e-07 3e-05 4e-07 2e-05 2e-07 1e-05 0 0 0 0.2 0.4 0.6 0.8 1 1.2 0 0.2 0.4 0.6 0.8 1 Time (s) b) Time (s) a) Figure 2: Violation of position constraints: a) Without stabilization b) With Baumgarte stabilization REFERENCES [1] Udwadia, F.E., Kalaba, R.E., A new perspective on constrained motion, Proceedings of the Royal Society of London, A439, 1992, pp.407-410. [2] Udwadia, F. and Kalaba, R. Analytical Dynamics a New Approach. Cambridge University Press, Cambridge, 1996. [3] Gauss, C.F., Über ein neues allgemaines Gründgesetz der Mechanik, Journal ür Reine und Angewandte Mathematik, vol.4, 1829, pp.232-235. [4] Anderson, E. et al. LAPACK - Users’s Guide. Society for Industrial and Applied Mathematics, Philadelphia, 1995. 13 1.2 D. de Falco, E. Pennestrı̀ and L. Vita [5] Lanczos, C., The Variational Principle of Mechanics, Dover Publications, Inc., Fourth Edition, 1970, pp.106-110. [6] Chetaev, N., Mécanique Rationelle, Éditions Mir, Moscou, 1993, pp.251-253. [7] Ara Arabyan, Fei Wu, An Improved Formulation for Constrained Mechanical Systems, Multibody System Dynamics, vol.2, 1998, pp.49-69. [8] Itiki, C., Neto, J.J., Complete automation of the generalized inverse method for constrained mechanical systems of particles, Applied Mathematics and Computation, 2004, pp.561-580. [9] IMSL Math library, vols.I, II, 1997. [10] Wampler, R.H., Modified Gram-Schmidt with iterative refinement, ACM TOMS 5, 1979, pp.494-499. Fortran code available at www.netlib.org [11] Wehage, R. and Haug, E. Generalized Coordinate Partitioning for Dimension Reduction in Analysis of Constrained Dynamic Systems. ASME Journal of Mechanical Design, 134:247–255, 1982. [12] Haug, E. and Yen, J. Generalized Coordinate Partitioning Methods for Numerical Integration of Differential-Algebraic Equations of Dynamics. In Haug, E. and Deyo, R., editors, Real-Time Integration Methods for Mechanical System Simulation, volume 69 of NATO ASI Series, pages 97–114. Springer-Verlag, 1991. [13] Kim, S. and Vanderploeg, M. QR Decomposition for State Space Representation of Constrained Mechanical Dynamic Systems. ASME Journal of Mechanisms, Transmissiona, and Automation in Design, 108:176–182, 1986. [14] Mani, N., Haug, E., and Atkinson, K. Singular Value Decomposition for Analysis of Mechanical System Dynamics. ASME Journal of Mechanisms, Transmissions, and Automation in Design, 107:82–87, 1985. [15] Singh, R. and Likins, P. Singular Value Decomposition for Constrained Mechanical Systems. ASME Journal of Applied Mechanics, 52:943–948, 1985. [16] de Jalon, J. and Bayo, E., Kinematic and Dynamic Simulation of Multibody Systems - The Real-Time Challenge, Springer Verlag, New York (1994). [17] Haug, E., Computer-Aided Kinematics and Dynamics of Mechanical Systems, Allyn and Bacon (1989). [18] Nikravesh, P., Computer-Aided Analysis of Mechanical Systems, Prentice-Hall (1988). [19] Varga, A., On computing generalized inverse systems using matrix pencil methods, Int. J. of Applied Mathematics and Computer Science, vol.11, 2001, n.5. [20] Greville, T.N.E., Some Applications of the pseudoinverse matrix, SIAM Rev., 1960, pp.1522. 14 D. de Falco, E. Pennestrı̀ and L. Vita [21] Udwadia, F.E., Kalaba, R.E., A Unified Approach for the Recursive Determination of Generalized Inverses, Computers and Mathematics with Applications, vol.37, 1999, pp.125130. [22] Golub, G.H., Van Loan, C.F., Matrix Computations, 3rd Edition, The John Hopkins University Press, 1996. [23] Stephenson, G., An Introduction to Matrices Sets and Groups for Science Students, Dover Publications Inc., 1965, pp.48-51. [24] The Ch Language Environment, User’s Guide, v.5.0, www.softintegration.com. [25] Ch Mechanism Toolkit, User’s Guide, v.1.5, www.softintegration.com. 15