**3. Dynamic modeling**

The dynamic analysis of the SP manipulator is always difficult in comparison with the serial manipulator because of the existence of several kinematic chains all connected by the moving platform. Several methods were used to describe the problem and obtain the dynamic modeling of the manipulator. In the literature, there is still no consensus on which formulation is the best to describe the dynamics of the manipulator. Lagrange formulation was used in this work since it provides a well analytical and orderly structure.

In order to derive the dynamic equations of the SP manipulator, the whole system is separated into two parts: the moving platform and the legs. The kinetic and potential energies for both of these parts are computed and then the dynamic equations are derived using these energies.

#### **3.1 Kinetic and potential energies of the moving platform**

The kinetic energy of the moving platform is a summation of two motion energies since the moving platform has translation and rotation about three orthogonal axes, (*XYZ)*. The first one is translation energy occurring because of the translation motion of the center of mass of the moving platform. The translation energy is defined by

$$K\_{\rm up\{trans\}} = \frac{1}{2} m\_{\rm up} \left( \dot{P}\_X^2 + \dot{P}\_Y^2 + \dot{P}\_Z^2 \right) \tag{24}$$

where *mup* is the moving platform mass. For rotational motion of the moving platform around its center of mass, rotational kinetic energy can be written as

*iB B <sup>p</sup> o IB IIB <sup>p</sup> <sup>o</sup>*

1 1 1 11

*u u u R GT xu*

*u u u R GT xu* 

> 100 0 0 0 010 0 0 0 001 0 0 0 0 0 0 cos 0 0 0 0 0 0 1 sin 0 0 0 sin 0 cos

The dynamic analysis of the SP manipulator is always difficult in comparison with the serial manipulator because of the existence of several kinematic chains all connected by the moving platform. Several methods were used to describe the problem and obtain the dynamic modeling of the manipulator. In the literature, there is still no consensus on which formulation is the best to describe the dynamics of the manipulator. Lagrange formulation

In order to derive the dynamic equations of the SP manipulator, the whole system is separated into two parts: the moving platform and the legs. The kinetic and potential energies for both of these parts are computed and then the dynamic equations are derived

The kinetic energy of the moving platform is a summation of two motion energies since the moving platform has translation and rotation about three orthogonal axes, (*XYZ)*. The first one is translation energy occurring because of the translation motion of the center of mass of

where *mup* is the moving platform mass. For rotational motion of the moving platform

<sup>222</sup>

(24)

was used in this work since it provides a well analytical and orderly structure.

*<sup>T</sup> <sup>B</sup>*

6 6

 

*x*

*<sup>T</sup> <sup>B</sup>*

6 6 6 66 6 6

*xyz T <sup>x</sup>*

(21)

(22)

(23)

*L J JX J J X*

 

*xyz T*

*x*

Equation 20 is rewritten in matrix format as follows.

*IB*

*IIB*

**3.1 Kinetic and potential energies of the moving platform** 

the moving platform. The translation energy is defined by

( )

around its center of mass, rotational kinetic energy can be written as

1 2 *K mP P P up trans u <sup>p</sup> XY Z*

*J*

*J*

The first Jacobian matrix is

The second Jacobian matrix is

**3. Dynamic modeling** 

using these energies.

$$\mathcal{K}\_{up(rot)} = \frac{1}{2} \vec{\mathcal{Q}}\_{up(mf)}^T \mathcal{I}\_{\{mf\}} \vec{\mathcal{Q}}\_{up(mf)} \tag{25}$$

where ( ) *mf I* and *up*( ) *mf* are the rotational inertia mass and the angular velocity of the moving platform, respectively. They are given as

$$I\_{\{mf\}} = \begin{bmatrix} I\_X & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & I\_Y & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & I\_Z \end{bmatrix} \tag{26}$$

$$\vec{\mathcal{Q}}\_{\text{up}(mf)} = \mathcal{R}\_Z(\boldsymbol{\gamma})^T \mathcal{R}\_X(\boldsymbol{a})^T \mathcal{R}\_Y(\boldsymbol{\beta})^T \vec{\mathcal{Q}}\_{\text{up}(\boldsymbol{\beta}')} \tag{27}$$

where *up ff* ( ) denotes the angular velocity of the moving platform with respect to the base frame. Given the definition of the angles , and , the angular velocity, *up ff* ( ) is

$$\begin{aligned} \bar{\boldsymbol{\Omega}}\_{\eta(\mathcal{J})} &= \dot{a}\boldsymbol{R}\_{\boldsymbol{\gamma}}(\mathcal{J})\bar{\boldsymbol{X}} + \dot{\mathcal{J}}\bar{\boldsymbol{Y}} + \dot{\gamma}\boldsymbol{R}\_{\boldsymbol{X}}(\boldsymbol{a})\boldsymbol{R}\_{\boldsymbol{Z}}(\boldsymbol{\gamma})\bar{\boldsymbol{Z}} \\ &= \begin{bmatrix} \cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{bmatrix} + \begin{bmatrix} 0 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix} \\ &+ \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos a & -\sin a \\ 0 & \sin a & \cos a \end{bmatrix} \begin{bmatrix} \cos\gamma & -\sin\gamma & 0 \\ \sin\gamma & \cos\gamma & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & 0 & 0 \\ \beta & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} \dot{a} \\ \dot{\beta} \\ \dot{\gamma} \end{bmatrix} = \begin{bmatrix} \cos\beta & 0 & 0 \\ 0 & 1 & -\sin a \\ -\sin\beta & 0 & \cos a \end{bmatrix} \begin{bmatrix} \dot{a} \\ \dot{\beta} \\ \dot{\gamma} \end{bmatrix} \end{aligned} \tag{28}$$

In the moving platform coordinate system, the angular velocity of the moving platform given in Equation 27 is calculated as

$$
\vec{\Omega}\_{up(mf)} = \begin{bmatrix}
 c\gamma & c\alpha s\gamma & -c\alpha c\gamma s\beta - c\alpha s\alpha s\gamma + c\alpha c\beta s\alpha s\gamma \\
 -s\gamma & c\alpha c\gamma & -c\alpha c\gamma s\alpha + c\alpha s\beta s\gamma + c\alpha c\beta s\alpha c\gamma \\
 0 & -s\alpha & s^2 a + c^2 a c\beta
\end{bmatrix} \begin{bmatrix}
\dot{\alpha} \\
\dot{\beta} \\
\dot{\gamma}
\end{bmatrix} \tag{29}
$$

where *s*( ) sin( ) and *c*( ) cos( ) . As a result, the total kinetic energy of the moving platform in a compact form is given by

$$\begin{aligned} \dot{\mathbf{K}}\_{\text{up}} &= \mathbf{K}\_{\text{up}(\text{trans})} + \mathbf{K}\_{\text{up}(\text{rot})} = \frac{1}{2} m\_{\text{up}} \left( \dot{P}\_{X}^{2} + \dot{P}\_{Y}^{2} + \dot{P}\_{Z}^{2} \right) + \frac{1}{2} \, \vec{\mathbf{Q}}\_{\text{up}(\text{mV})}^{T} \, \mathbf{J}\_{\text{(mV)}} \, \vec{\mathbf{Q}}\_{\text{up}(\text{mV})} \\\\ \dot{\mathbf{I}} &= \frac{1}{2} \dot{\mathbf{X}}\_{P-O}^{T} \cdot \mathcal{M}\_{\text{up}} \left( \mathbf{X}\_{P-O} \right) \cdot \mathbf{X}\_{P-O} = \frac{1}{2} \begin{bmatrix} \dot{P}\_{X} & \dot{P}\_{Y} & \dot{P}\_{Z} & \dot{\alpha} & \dot{\beta} & \dot{\gamma} \end{bmatrix} \boldsymbol{M}\_{\text{up}} \begin{bmatrix} \dot{P}\_{X} \\ \dot{P}\_{Y} \\ \dot{P}\_{Z} \\ \dot{\alpha} \\ \dot{\beta} \\ \dot{\gamma} \end{bmatrix} \end{aligned} \tag{30}$$

Dynamic Modeling and Simulation of Stewart Platform 29

,

<sup>1</sup> <sup>2</sup>

(32)

*<sup>i</sup> <sup>j</sup> if i is odd*

 

2

*T T*

2

, 11 22

*I ml ml*

2

1 2 1 1 ˆ

2

1 2

2 *J J*

2 2 12 12

is the unit vector along the axis of the leg ( *Li* ). By using this vector, the

(37)

2

(38)

<sup>1</sup> <sup>2</sup>

*<sup>i</sup> <sup>j</sup> if i is odd*

<sup>2</sup>

*<sup>i</sup> <sup>j</sup> if i is even*

2 *J J*

*m m*

*m m*

Moreover, the translation kinetic energy due to the translation motion of the leg is

*Li trans T ii T <sup>m</sup> K mm V uu V*

*<sup>T</sup> K K K m m V hV LkL Li Li rot Li trans T iT iii*

<sup>2</sup>

(33)

(34)

(35)

(36)

(39)

*<sup>i</sup> <sup>j</sup> if i is even*

() 1 2 <sup>1</sup> 2 *JJ J J T TT K m m h V V V uu V Li rot i T T T ii T*

> 2 1 2

ˆ

*i I m <sup>h</sup> Lmm* 

*i*

2

() ( ) 1 2 <sup>1</sup>

*i i*

*II m <sup>m</sup> k h LL m m m m* 

As a result, the compact expression for the kinetic energy of the six legs can be written as

*K K X MX X*

11 2 <sup>ˆ</sup> *Legs <sup>j</sup> z T i i i <sup>m</sup> P m mg I p Z*

<sup>3</sup>

 *L L mm* 

1 2 21 1 2

,

 

1 2 *T Legs Li P O Legs P O P O*

Therefore, the total kinetic energy of the leg *Li* is calculated as the following.

() 1 2

1

ˆ ˆ

*i i*

6

1

0 () ( ) ( )

*TTT Z R R R GT T ZX Y <sup>j</sup>* 

*i*

1 2

velocity of the leg can be calculated by *<sup>J</sup> L Vu i Ti* .

Total potential energy of the legs can be defined as

0

 

*T*

1

*J*

where

where

where

Remember that *ui*

computed from

where *Mup* is the 6x6 mass diagonal matrix of the moving platform. Also, potential energy of the moving platform is

$$P\_{up} = m\_{up} g P\_Z X\_{P-O} = \begin{bmatrix} 0 & 0 & m\_{up} g & 0 & 0 & 0 \end{bmatrix} \begin{bmatrix} P\_X \\ P\_Y \\ P\_Z \\ a \\ \beta \\ \gamma \end{bmatrix} \tag{31}$$

where *g* is the gravity.

#### **3.2 Kinetic and potential energies of the legs**

Each leg consists of two parts: the moving part and the fixed part (Figure 4). The lower fixed part of the leg is connected to the base platform through a universal joint, whereas the upper moving part is connected to the moving platform through a universal joint.

Fig. 4. Leg of the SP manipulator

As shown in the figure above, the center of mass, *Gi* for each part of the leg ( 1...6 *Leg i <sup>i</sup>* ) is considered. *G*1*<sup>i</sup>* denotes the center of mass of the fixed part. 1*l* and *m*<sup>1</sup> are the length and the mass of the fixed part, respectively and is the distance between *Bi* and *Gi*. For the moving part of the leg, *G*2*<sup>i</sup>* denotes its center of mass. 2*l* and *m*<sup>2</sup> are the length and mass of the part, respectively.

The length of the leg is assumed to be constant. The rotational kinetic energy caused by the rotation around the fixed point *Bi* as shown in Figure 4 is given by

$$K\_{Li(rot)} = \frac{1}{2}(m\_1 + m\_2) \left[ h\_i \left( \vec{V}\_{T\_{\parallel}}^T \vec{V}\_{T\_{\parallel}} - \vec{V}\_{T\_{\parallel}}^T \vec{u}\_i \vec{u}\_i^T \vec{V}\_{T\_{\parallel}} \right) \right], \begin{cases} j = \frac{i+1}{2} & \text{if } i \text{ is odd} \\ 2 & \text{if } i \text{ is even} \\ j = \frac{i}{2} & \text{if } i \text{ is even} \end{cases} \tag{32}$$

where

28 Serial and Parallel Robot Manipulators – Kinematics, Dynamics, Control and Optimization

where *Mup* is the 6x6 mass diagonal matrix of the moving platform. Also, potential energy of

Each leg consists of two parts: the moving part and the fixed part (Figure 4). The lower fixed part of the leg is connected to the base platform through a universal joint, whereas the upper

*l*2

*m*2

As shown in the figure above, the center of mass, *Gi* for each part of the leg ( 1...6 *Leg i <sup>i</sup>* ) is considered. *G*1*<sup>i</sup>* denotes the center of mass of the fixed part. 1*l* and *m*<sup>1</sup> are the length and the

part of the leg, *G*2*<sup>i</sup>* denotes its center of mass. 2*l* and *m*<sup>2</sup> are the length and mass of the part,

The length of the leg is assumed to be constant. The rotational kinetic energy caused by the

*G*2

*up up Z P O up*

moving part is connected to the moving platform through a universal joint.

*m*1

rotation around the fixed point *Bi* as shown in Figure 4 is given by

*B*i

Fig. 4. Leg of the SP manipulator

respectively.

mass of the fixed part, respectively and

*l*1

*L*i

*G*1

*P m gP X m g*

00 000

*X Y Z*

(31)

*u*i

is the distance between *Bi* and *Gi*. For the moving

*T*j

*P P P*

the moving platform is

where *g* is the gravity.

**3.2 Kinetic and potential energies of the legs** 

$$h\_i = \left(\frac{\hat{I}}{L\_i} + \frac{m\_2}{m\_1 + m\_2}\right)^2,\\ \hat{I} = \frac{1}{m\_1 + m\_2} \left(\delta m\_1 l\_1 - \frac{1}{2} m\_2 l\_2\right) \tag{33}$$

Moreover, the translation kinetic energy due to the translation motion of the leg is computed from

$$K\_{Li(trans)} = \frac{1}{2} (m\_1 + m\_2) \left| \left(\frac{m\_2}{m\_1 + m\_2}\right)^2 \vec{V}\_{T\_{\parallel}}^T \vec{u}\_i \vec{u}\_i^T \vec{V}\_{T\_{\parallel}} \right| \tag{34}$$

Therefore, the total kinetic energy of the leg *Li* is calculated as the following.

$$K\_{Li} = K\_{Li(rot)} + K\_{Li(trans)} = \frac{1}{2}(m\_1 + m\_2) \left[ \vec{V}\_{T\_{\parallel}}^T h\_i \vec{V}\_{T\_{\parallel}} - \dot{L}\_i k\_i \dot{L}\_i \right] \tag{35}$$

where

$$k\_i = \frac{\hat{I}}{L\_i} \left( \frac{\hat{I}}{L\_i} + \frac{m\_2}{m\_1 + m\_2} \right) = h\_i - \left( \frac{m\_2}{m\_1 + m\_2} \right)^2 \tag{36}$$

Remember that *ui* is the unit vector along the axis of the leg ( *Li* ). By using this vector, the velocity of the leg can be calculated by *<sup>J</sup> L Vu i Ti* .

As a result, the compact expression for the kinetic energy of the six legs can be written as

$$K\_{\rm Lcgs} = \sum\_{i=1}^{6} K\_{Li} = \frac{1}{2} \dot{X}\_{P-O}^{T} \cdot M\_{\rm Lcgs} \left(X\_{P-O}\right) \cdot \dot{X}\_{P-O} \tag{37}$$

Total potential energy of the legs can be defined as

$$P\_{\rm Lges} = \left(m\_1 + m\_2\right) g \sum\_{i=1}^{3} \left[\hat{I}\left(\frac{1}{L\_{2i}} + \frac{1}{L\_{2i-1}}\right) + \frac{2m\_2}{m\_1 + m\_2}\right] \left(p\_z + Z\_{T\_j}\right) \tag{38}$$

where

$$Z\_{T\_j} = \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}^T R\_Z(\boldsymbol{\gamma})^T R\_X(\boldsymbol{\alpha})^T R\_Y(\boldsymbol{\beta})^T G T\_{j\cdot\cdot} \begin{cases} j = \frac{i+1}{2} & \text{if } i \text{ is odd} \\ j = \frac{i}{2} & \text{if } i \text{ is even} \end{cases} \tag{39}$$

#### **3.3 Dynamic equations**

In this subsection, the Lagrange formulation is used to derive the dynamic modeling of the SP manipulator. Considering *q* and as the corresponding generalized coordinates and generalized forces, respectively, the general classical equations of the motion can be obtained from the Lagrange formulation:

$$\frac{d}{dt}\frac{d\mathcal{L}}{d\dot{q}} - \frac{\partial\mathcal{L}}{\partial q} = \frac{d}{dt}\left(\frac{\partial\mathcal{K}(q,\dot{q})}{\partial\dot{q}}\right) - \frac{\partial\mathcal{K}(q,\dot{q})}{\partial q} + \frac{\partial P(q)}{\partial q} = \tau\tag{40}$$

Dynamic Modeling and Simulation of Stewart Platform 31

( ) ( ) ( ) *up p o*

*A A Legs p o*

*L L m mg I p Z L L Xk Xk*

*i i i p o p o*

*i i i*

1 2 2 1

1 2 2 1

1 1 ˆ

1 1 ˆ

*B B Legs p o*

*L L m mg I p Z L L Xk Xk*

*i i i p o p o*

*i i i*

9 9

6 identical motor-ball-screw drives are used in SP. Dynamic equation of SP with actuator

<sup>2</sup>

<sup>2</sup>

<sup>2</sup> *Ma s mx J nJ I np* 

<sup>2</sup> *N b nb I a s mx np* 

> 6 6 2 *a x <sup>p</sup> K I n*

1 1 , ( ) ( ) *nm mk nm mk*

*n n IA IIA IB IIB*

*<sup>m</sup> m mg I <sup>p</sup> L L m m*

*<sup>m</sup> m mg I <sup>p</sup> L L m m*

( ) ( ) ( )

*p o B B i i B B z T*

*X k*

*P X*

*p o P X*

( ) ( ) ( )

*p o A A i i A A z T*

*X k*

*P X*

2 2 1

( ) ( )

2 2 1

( ) ( )

*B B z*

(51)

6 6

6 6

*Ti <sup>Z</sup>*

1 2 21 1 2

*n p o L X k* 

*A A z*

*Ti <sup>Z</sup>*

1 2 21 1 2

*X k* 

(48)

*i*

*i*

is needed to compute. This can be

(49)

(50)

2

2

*ma a a <sup>M</sup> L NL KF* (52)

(53)

(54)

(55)

*up*

*Legs*

*G k*

1 2 2 2

1 2 2 2

3

11 2 <sup>ˆ</sup>

*A B*

*p o m m p o L L J J J J X k X k*

3

11 2 <sup>ˆ</sup>

*Legs*

*G k*

3

3

In equation 49 and 50, the expression of ( )

**3.4 Actuator dynamics** 

dynamics can be written in matrix form as

1 2

obtained using with the Jacobian matrices ( *AJ* and *BJ* ) as follows:

1 2

*G k*

where *K*(,) *q q* is the kinetic energy, and *P*( ) *q* is the potential energy. Generalized coordinates *q* is replaced with Cartesian coordinates ( *Xp<sup>o</sup>* ). The dynamic equation derived from Equation 40 can be written as

$$\int \mathbf{J}^{T} \left( X\_{P-O} \right) \mathbf{F} = M \begin{pmatrix} X\_{P-O} \end{pmatrix} \ddot{X}\_{P-O} + V\_m \begin{pmatrix} X\_{P-O} \ \dot{X}\_{P-O} \end{pmatrix} \dot{X}\_{P-O} + G \begin{pmatrix} X\_{P-O} \end{pmatrix} \tag{41}$$

where *F ffffff* <sup>123456</sup> , *<sup>i</sup> f* is the force applied by the actuator of leg *i* in the direction *ui* and *<sup>J</sup>* is the Jacobian matrix. Since the platform is divided into two parts (the moving platform and the legs), inertia, Coriolis-Centrifugal and gravity matrix in Equation 41 are summation of two matrix. Each of these matrices is computed using by two different Jacobian matrices.

$$^A M(X\_{p-o}) = M\_{\text{up}} + ^A M\_{\text{Legs'}} \qquad ^B M(X\_{p-o}) = M\_{\text{up}} + ^B M\_{\text{Legs}} \tag{42}$$

$${}^{A}V\_{m}(X\_{p-o}, \dot{X}\_{p-o}) = V\_{mnp} + {}^{A}V\_{m\text{Leg}}, \qquad {}^{B}V\_{m}(X\_{p-o}, \dot{X}\_{p-o}) = V\_{mnp} + {}^{B}V\_{m\text{Leg}}\tag{43}$$

$$\prescript{A}{}{\mathbf{G}}(X\_{p-o}) = \mathbf{G}\_{up} + \prescript{A}{}{\mathbf{G}}\_{\text{Lerge}}, \qquad \prescript{B}{}{\mathbf{G}}(X\_{p-o}) = \mathbf{G}\_{up} + \prescript{B}{}{\mathbf{G}}\_{\text{Lerge}} \tag{44}$$

where *Mup* obtained from Equation 30, *AMLegs* and *BMLegs* obtained from Equation 37 are the inertia matrix of the moving platform and legs, respectively. *Vmup* , *AVmLegs* and *<sup>B</sup> VmLegs* are Coriolis-Centrifugal matrix of the moving platform and legs, respectively. *Gup* , *AGLegs* and *BGLegs* are the gravity matrix of the moving platform and legs, respectively.*Vmup* , *AVmLegs* and *<sup>B</sup> VmLegs* are defined as follows:

$$\dot{V}\_{\text{pump}(i,j)} = \frac{1}{2} \sum\_{k=1}^{6} \left( \frac{\partial M\_{up}(k,j)}{\partial X\_{p-o}(i)} + \frac{\partial M\_{up}(k,i)}{\partial X\_{p-o}(j)} - \frac{\partial M\_{up}(i,j)}{\partial X\_{p-o}(k)} \right) \dot{\mathbf{X}}\_{p-o}(k) \tag{45}$$

$${}^{A}V\_{\text{Lerge}(i,j)} = \frac{1}{2} \sum\_{k=1}^{6} \left( \frac{\partial^A M\_{\text{Lerge}}(k,j)}{\partial X\_{p-o}(i)} + \frac{\partial^A M\_{\text{Lerge}}(k,i)}{\partial X\_{p-o}(j)} - \frac{\partial^A M\_{\text{Lerge}}(i,j)}{\partial X\_{p-o}(k)} \right) \dot{X}\_{p-o}(k) \tag{46}$$

$${}^{B}V\_{\text{Legs}(i,j)} = \frac{1}{2} \sum\_{k=1}^{6} \left( \frac{\hat{\sigma}^{B}M\_{\text{Legs}}(k,j)}{\hat{\sigma}X\_{p-o}(i)} + \frac{\hat{\sigma}^{B}M\_{\text{Legs}}(k,i)}{\hat{\sigma}X\_{p-o}(j)} - \frac{\hat{\sigma}^{B}M\_{\text{Legs}}(i,j)}{\hat{\sigma}X\_{p-o}(k)} \right) \dot{X}\_{p-o}(k) \tag{47}$$

Finally, the gravity matrix can be obtained from the equations below.

In this subsection, the Lagrange formulation is used to derive the dynamic modeling of the

generalized forces, respectively, the general classical equations of the motion can be

*d dL L d Kqq Kqq Pq* (,) (,) () *dt dq q dt q q q*

 

Generalized coordinates *q* is replaced with Cartesian coordinates ( *Xp<sup>o</sup>* ). The dynamic

, *<sup>T</sup>*

where *F ffffff* <sup>123456</sup> , *<sup>i</sup> f* is the force applied by the actuator of leg *i* in the

moving platform and the legs), inertia, Coriolis-Centrifugal and gravity matrix in Equation 41 are summation of two matrix. Each of these matrices is computed using by two different

where *Mup* obtained from Equation 30, *AMLegs* and *BMLegs* obtained from Equation 37 are the

Coriolis-Centrifugal matrix of the moving platform and legs, respectively. *Gup* , *AGLegs* and *BGLegs* are the gravity matrix of the moving platform and legs, respectively.*Vmup* , *AVmLegs*

*A AA*

*Legs i j p o k p o p o p o M kj M ki M ij <sup>V</sup> X k*

*B BB*

*Legs i j p o k p o p o p o M k j M ki M ij <sup>V</sup> X k*

*A Legs Legs Legs*

*B Legs Legs Legs*

Finally, the gravity matrix can be obtained from the equations below.

<sup>1</sup> ( , ) ( ,) (, ) ( ) 2 () ( ) ( ) *up up up mup i j p o k p o p o p o M k j M ki M ij <sup>V</sup> X k*

<sup>1</sup> ( , ) ( ,) (, ) ( ) <sup>2</sup> ( ) () ()

<sup>1</sup> ( , ) ( ,) (, ) ( ) <sup>2</sup> ( ) () ()

 

 

*Xi X j Xk*

*Xi Xj Xk*

 

*Xi Xj Xk*

(45)

(46)

(47)

inertia matrix of the moving platform and legs, respectively. *Vmup* , *AVmLegs* and *<sup>B</sup>*

*J X F MX X V X X X GX P O PO PO m PO PO PO PO* (41)

() , ( ) *A AB B MX M M MX M M <sup>p</sup> o up Legs p o up Legs* (42)

() , ( ) *A AB B GX G G GX G G <sup>p</sup> o up Legs p o up Legs* (44)

(,) , (,) *A A B B VX X V V VX X V V m p o p o mup mLegs m p o p o mup mLegs* (43)

and *<sup>J</sup>* is the Jacobian matrix. Since the platform is divided into two parts (the

as the corresponding generalized coordinates and

(40)

*VmLegs* are

where *K*(,) *q q* is the kinetic energy, and *P*( ) *q* is the potential energy.

equation derived from Equation 40 can be written as

**3.3 Dynamic equations** 

direction *ui*

and *<sup>B</sup>*

*VmLegs* are defined as follows:

(,)

(,)

(,)

6

1

6

1

6

1

Jacobian matrices.

SP manipulator. Considering *q* and

obtained from the Lagrange formulation:

$$\mathbf{G}\_{\rm up}(k) = \frac{\partial P\_{\rm up}(X\_{p-o})}{\partial X\_{p-o}(k)} \tag{48}$$

$${}^{A}G\_{L\_{\mathcal{GS}}}(k) = \frac{\partial{}^{A}P\_{L\_{\mathcal{GS}}}(X\_{p-o})}{\partial X\_{p-o}(k)}$$

$$= (m\_1 + m\_2)g\sum\_{i=1}^{3} \left[\hat{l}\left[\frac{1}{\Lambda\_{L\_{2i}}^2} \left(\frac{\partial{}^{A}L\_{2i}}{\partial X\_{p-o}(k)}\right) + \frac{1}{\Lambda\_{L\_{2i-1}}^2} \left(\frac{\partial{}^{A}L\_{2i-1}}{\partial X\_{p-o}(k)}\right)\right] \right] (p\_z + Z\_{T\_i}) \tag{49}$$

$$+ (m\_1 + m\_2)g\sum\_{i=1}^{3} \left[\hat{l}\left(\frac{1}{\Lambda\_{L\_{2i}}} + \frac{1}{\Lambda\_{L\_{2i-1}}}\right) + \frac{2m\_2}{(m\_1 + m\_2)}\right] (p\_z + Z\_{T\_i})$$

$${}^{B}G\_{L\_{\mathcal{GS}}}(k) = \frac{\partial^B P\_{L\_{\mathcal{GS}}}(X\_{p-o})}{\partial X\_{p-o}(k)}$$

$$\left[\hat{l}\left[\hat{l}\left(\frac{1}{\Lambda\_{L\_{2i}}} + \frac{1}{\Lambda\_{L\_{2i}}}\right)\right]\right]$$

$$= \left( m\_1 + m\_2 \right) g \sum\_{i=1}^{3} \left[ \hat{I} \left[ \frac{1}{\:^B L\_{2i}^2} \left( \frac{\partial^B L\_{2i}}{\partial X\_{p-o}(k)} \right) + \frac{1}{\:^B L\_{2i-1}^2} \left( \frac{\partial^B L\_{2i-1}}{\partial X\_{p-o}(k)} \right) \right] \right] \left( p\_z + Z\_{T\_i} \right) \tag{50}$$
 
$$+ \left( m\_1 + m\_2 \right) g \sum\_{i=1}^{3} \left[ \hat{I} \left( \frac{1}{\:^B L\_{2i}} + \frac{1}{\:^B L\_{2i-1}} \right) + \frac{2m\_2}{\left( m\_1 + m\_2 \right)} \right] \left( p\_z + Z\_{T\_i} \right)$$

In equation 49 and 50, the expression of ( ) *n p o L X k* is needed to compute. This can be obtained using with the Jacobian matrices ( *AJ* and *BJ* ) as follows:

$$\frac{\partial^A L\_n}{\partial \mathbf{X}\_{p-o}(k)} = \sum\_{m=1}^9 I\_{IA\_{mn}} J\_{IIA\_{mk}}{}^{\prime} \qquad \frac{\partial^B L\_n}{\partial \mathbf{X}\_{p-o}(k)} = \sum\_{m=1}^9 I\_{IB\_{mn}} J\_{IIB\_{mk}} \tag{51}$$

#### **3.4 Actuator dynamics**

6 identical motor-ball-screw drives are used in SP. Dynamic equation of SP with actuator dynamics can be written in matrix form as

$$
\sigma\_m = \mathcal{M}\_a \ddot{L} + \mathcal{N}\_a \dot{L} + \mathcal{K}\_a F \tag{52}
$$

$$M\_a = \frac{2\pi}{np} \left(f\_s + n^2 f\_m\right) I\_{6x6} \tag{53}$$

$$N\_a = \frac{2\pi}{np} (b\_s + n^2 b\_m) I\_{6x6} \tag{54}$$

$$K\_a = \frac{p}{n2\pi} I\_{6\times 6} \tag{55}$$

where *Ma* , *Na* and *Ka* are the inertia matrix, viscous damping coefficient matrix and gain matrix of the actuator, respectively. Also, *sJ* and *Jm* are the mass moment of inertia of the ball-screw and motor, *<sup>s</sup> b* and *bm* are the viscous damping coefficient of the ball-screw and motor, *p* and *n* are the pitch of the ball-screw and the gear ratio. *<sup>m</sup>* and *F* are the vectors of motor torques and the forces applied by the actuators.

The electrical dynamics of the actuator can be described by the following equations.

$$
\pi\_m = \mathcal{K}\_t \,\mathrm{i} \tag{56}
$$

Dynamic Modeling and Simulation of Stewart Platform 33

*<sup>X</sup> Kt Ls <sup>R</sup>*

Figure 6 shows the Stewart Platform manipulator used in the experiments. It is constructed from two main bodies (top and base plates), six linear motors, controller, space mouse, accelerometer, gyroscope, force/torque sensor, power supply, emergency stop circuit and interface board as shown in the figure. Inverse kinematics and control algorithm of SP are embedded in MATLAB/Simulink module. Moreover, controller board like the space DS1103owning real-time interface implementation software to generate and then download the real time code to specific space board is used, and it is fully programmable from MATLAB/Simulink environment. Thus, it is possible for the user to observe the real process and collect the data from encoders for each leg while the

 *m* 

*p n*2*L*

(, ) () *A A N XX G X c c*

(, ) () *B B N XX G X c c*

1 ( ) *<sup>B</sup> M X <sup>c</sup>* 

<sup>1</sup> <sup>1</sup> ( ) *AM X <sup>c</sup>*

<sup>1</sup>

s

*A J*

*B J*

s

*X X*

*I* <sup>m</sup>

Kb

*I x* 

Fig. 5. Simulation block diagram for SP dynamics

**4.1 Experimental setup and simulation blocks** 

6 6

**4. Results** 

experiment is in progress.

Fig. 6. SP manipulator used in experiments

$$V = L\frac{di}{dt} + R\,i + K\_b\dot{\theta}\_m\tag{57}$$

where *Kt* , *L* , *R* and *Kb* are the torque constant, the rotor inductance, terminal resistance and back-emf constant of the actuators, respectively. *V* and *i* are the motor voltage and motor current , respectively. The angular velocity of the motor is given as

$$
\dot{\theta}\_m = \frac{2\pi m}{p}\dot{L} \tag{58}
$$

Since the dynamics of the platform is derived in the moving platform coordinates (Cartesian space, *Xp<sup>o</sup>* ), Equation 52 can be generally expressed in Cartesian space as the follows.

$$
\tau\_m = \overline{M}\_c(X)\ddot{X} + \overline{N}\_c(X)\dot{X} + \overline{G}\_c(X) \tag{59}
$$

The terms in the equation above are obtained from joint space terms and the Jacobian matrix.

$${}^{A}\overline{M}\_{c}(X) = K\_{a} \left(f\_{A}\right)^{-T} {}^{A}M(X\_{p-o}) + M\_{a}f\_{A} \tag{60}$$

$${}^{B}\overline{M}\_{c}(X) = K\_{a} \left(f\_{B}\right)^{-T} {}^{B}M(X\_{p-o}) + M\_{a} {}^{f}\_{B} \tag{61}$$

$$\mathbf{M}^{A}\overline{\mathbf{N}}\_{c}(X) = \mathbf{K}\_{a} \left(\mathbf{J}\_{A}\right)^{-T} \,^{A} \mathbf{N} \left(\mathbf{X}\_{p-o}, \dot{\mathbf{X}}\_{p-o}\right) + \mathbf{N}\_{a} \mathbf{J}\_{A} + \mathbf{M}\_{a} \dot{\mathbf{J}}\_{A} \tag{62}$$

$${}^{B}\overline{N}\_{c}(X) = K\_{a} \left(f\_{B}\right)^{-T} {}^{B}N \{X\_{p-o}, \dot{X}\_{p-o}\} + N\_{a} \left. f\_{B} + M\_{a} \dot{f}\_{B} \tag{63}$$

$$\mathbf{^A}\overline{\mathbf{G}}\_c(X) = \mathbf{K}\_a \left(\mathbf{J}\_A\right)^{-T} \mathbf{^A}\mathbf{G}(X\_{p-o}) \tag{64}$$

$${}^{B}\overline{\mathbf{G}}\_{c}(X) = \mathbf{K}\_{a} \left(f\_{B}\right)^{-T} {}^{B}\mathbf{G}(X\_{p-o})\tag{65}$$

Figure 5 shows the simulation block diagram of the Stewart Platform manipulator including the actuator dynamics (Equation 56, 57, 58 and 59). In order to model the platform dynamics without using forward kinematics, the block diagram is developed below.

Fig. 5. Simulation block diagram for SP dynamics
