**1. Introduction**

28 Will-be-set-by-IN-TECH

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

Raibert, M. H. & Craig, J. J. (1981). Hybrid Position/Force Control of Manipulators, *Trans. of ASME J. of Dynamic Systems, Measurement, and Control* 102: 126 – 133. Sciavicco, L. & Siciliano, B. (2005). *Modelling and Control of Robot Manipulators (Advanced*

Sentis, L., Park, J. & Khatib, O. (2010). Compliant control of multicontact and center-of-mass behaviors in humanoid robots, *Robotics, IEEE Transactions on* 26(3): 483 –501. Seraji, H. & Bon, B. (1999). Real-Time Collision Avoidance for Position-Controlled Manipulators, *IEEE Trans. on Robotics and Automation* 15(4): 670 – 677. Sugiura, H., Gienger, M., Janssen, H. & Goerick, C. (2007). Real-time collision avoidance with

Volpe, R. & Khosla, P. (1990). Manipulator Control with Superquadratic Artificial Potential

Žlajpah, L. (2001). Integrated environment for modelling, simulation and control design for robotic manipulators, *Journal of Intelligent and Robotic Systems* 32(2): 219 – 234. Woernle, C. (1993). Nonlinear Control of Constrained Redundant Manipulators, *in* J. A. et al. (ed.), *Computational Kinematics*, Kluwer Academic Publishers, pp. 119 – 128. Xie, H., Patel, R., Kalaycioglu, S. & Asmer, H. (1998). Real-Time Collision Avoidance for

*Intelligent Robots and Systems IROS'98*, Victoria, Canada, pp. 1925 – 1930. Yoshikawa, T. (1987). Dynamic Hybrid Position / Force Control of Robot Manipulators

*IROS 2007. IEEE/RSJ International Conference on*, pp. 2053 –2058.

processing, 2nd edn, Springer.

*Robotics and Automation* 3(5): 386 – 392.

*Textbooks in Control and Signal Processing)*, Advanced textbooks in control and signal

whole body motion control for humanoid robots, *Intelligent Robots and Systems, 2007.*

FUnctions: Theory and Experiments, *IEEE Trans. on Systems, Man, Cybernetics* 20(6).

a Redundant Manipulator in an Unstructured Environment, *Proc. Intl. Conf. On*

Description of Hand Constraints and Calculation of Joint Driving, *IEEE Trans. on*

Comparing with the serial ones, parallel manipulators have potential advantages in terms of high stiffness, accuracy and speed (Merlet, 2001). Especially the high accuracy and speed performances make the parallel manipulators widely applied to the following fields, like the pick-and-place operation in food, medicine, electronic industry and so on. At present, the key issues are the ways to meet the demand of high accuracy in moving process under the condition of high speed. In order to realize the high speed and accuracy motion, it's very important to design efficient control strategies for parallel manipulators.

In literatures, there are two basic control strategies for parallel manipulators (Zhang et.al., 2007): kinematic control strategies and dynamic control strategies. In the kinematic control strategies, parallel manipulators are decoupled into a group of single axis control systems, so they can be controlled by a group of individual controllers. Proportional-derivative (PD) control(Ghorbel et.al., 2000; Wu et.al., 2002), nonlinear PD (NPD) control (Ouyang et.al., 2002; Su et.al., 2004), and fuzzy control (Su et.al., 2005) all belong to this type of control strategies. These controllers do not always produce high control performance, and there is no guarantee of stability at the high speed. Unlike the kinematic control strategies, full dynamic model of parallel manipulators is taken into account in the dynamic control strategies. So the nonlinear dynamics of parallel manipulators can be compensated and better performance can be achieved with the dynamic strategies.

The traditional dynamic control strategies of parallel manipulators are the augmented PD (APD) control and the computed-torque (CT) control (Li & Wu, 2004; Cheng et.al., 2003; Paccot et.al., 2009). In the APD controller (Cheng et.al., 2003), the control law contains the tracking control term and the feed-forward compensation term. The tracking control term is realized by the PD control algorithm. The feed-forward compensation term contains the dynamic compensation calculated by the desired velocity and desired acceleration on the basis of the dynamic model. Compared with the simple PD controller, the APD controller is a tracking control method. However, the feed-forward compensation can not restrain the trajectory disturbance effectively, thus the tracking accuracy of the APD controller will be decreased. In order to solve this problem, the CT controller including the velocity feed-back is proposed based on the PD controller (Paccot et.al., 2009). The CT control method yields a controller that suppresses disturbance and tracks desired trajectories uniformly in all configurations of the manipulators. Both the APD controller and the CT controller contain two parts including the PD control term and the dynamic compensation term. For the

Nonlinear Dynamic Control and Friction Compensation of Parallel Manipulators 233

Cutting the parallel manipulator at the common point *O* in Fig. 1, one can have an openchain system including three independent planar 2-DOF serial manipulators, each of which contains an active joint and a passive joint. The dynamic model of the parallel manipulator equals to the model of the open-chain system plus the closed-loop constraints, thus the dynamic model of the whole parallel manipulator can be formulated by combining the

As we know, the dynamic model of each planar 2-DOF serial manipulator can be

**M***i* is inertia matrix, and **C***i* is Coriolis and centrifugal force matrix, which are defined as

*q q*

*i ai bi i*

0 sin sin 0

where *<sup>i</sup>* , *<sup>i</sup>* , *<sup>i</sup>* , *i* 1,2,3 are the dynamic parameters which are related with the physical

vector, where *ai* is the active joint torque, the passive joint torque 0 *bi* . Vector

*i ai bi* **f** *f f* is the friction torque, where *ai f* and *bi f* are the active joint friction and passive joint friction, respectively. The friction parameters of the active joints and the passive joints are identified simultaneously for the parallel manipulator (Shang et.al., 2010). And from the identified results, one can find that the friction parameters of the passive joints are much smaller than those of the active joints. Thus, compared with the active joints friction *ai f* , the passive joint friction *bi f* is much smaller and it can be neglected (Shang et.al., 2010). Generally, the active joint friction torque *ai f* can be formulated by using the

where *ci f* represents the Coulomb friction, and *vi f* represents the coefficient of the viscous

Combining the dynamic models of three 2-DOF serial manipulators, the dynamic model of

where the definition of the symbols is similar to those in Eq.(1), only the difference is that the symbols in Eq.(3) represent the whole open-chain system not a 2-DOF serial manipulator. Based on Eq.(3) of the open-chain system and the constraint forces due to the closed-loop constraints, the dynamic model of the parallel manipulator can be written as

 **<sup>C</sup>**

 **M**

cos

*q qq*

*i ai bi ai*

parameters such as mass, center of mass, and inertia. In Eq.(1), *<sup>T</sup>*

*i ai bi* **q** *q q* , *ai q* and *bi q* are the active joint and passive joint angle, respectively;

**Mq Cq f** *ii ii i i* **τ** (1)

*q q*

*q qq*

*fai signq f fq ai ci vi ai* (2)

**Mq Cq f τ** (3)

*<sup>T</sup>* **Mq Cq f τ A λ** (4)

**τ***i ai bi* is joint torque

*i ai bi bi*

cos

*i i ai bi*

dynamics of the three serial manipulators under the constraints.

*i*

*i*

formulated as (Murray et.al., 1994)

where *<sup>T</sup>*

*<sup>T</sup>*

friction.

Coulomb + viscous friction model as

the open-chain system can be expressed as

presence of nonlinear factors such as modeling error and nonlinear friction in the dynamic models of the parallel manipulators, those traditional controllers can not achieve good control accuracy.

In order to overcome the uncertain factors in parallel manipulators, nonlinear control methods and friction compensation method are developed in this chapter. Firstly, in order to restrain the modeling error of parallel manipulators, a nonlinear PD (NPD) control algorithm is used to the APD controller, and a so-called augmented NPD (ANPD) controller is designed. Secondly, considering the feed-forward compensation term in the ANPD controller can not restrict the external disturbance, and the tracking accuracy will be affected when the disturbance exists. Thus the NPD controller is combined with the CT controller further, and a new control method named nonlinear CT (NCT) controller is developed. Thirdly, in order to compensate the nonlinear friction of parallel manipulators, a nonlinear model with two-sigmoid-function is introduced to modeling the nonlinear friction. This nonlinear friction model enables reconstruction of viscous, Coulomb, and Stribeck friction effects of parallel manipulators, and the nonlinear optimization tool is used to estimate the parameters in this model. In addition to the theoretical development, all the proposed methods in this chapter are validated on an actual parallel manipulator. The experiment results indicate that, compared with the conventional controllers, the proposed ANPD and NCT controller can get better trajectory tracking accuracy of the end-effector. Moreover, the experiment results also demonstrate that the nonlinear friction model is more accurately to compensate the friction, and is robust against the trajectory and the velocity changes.

## **2. Dynamic modelling**

The experiment platform is a 2-DOF parallel manipulator with redundant actuation. As shown in Fig. 1, a reference frame is established in the workspace of the parallel manipulator. The unit of the frame is meter. The parallel manipulator is actuated by three servo motors located at the base A1, A2, and A3, and the end-effector is mounted at the common joint O, where the three chains meet. Coordinates of the three bases are A1 (0, 0.25), A2 (0.433, 0), and A3 (0.433, 0.5), and all of the links have the same length 0.244 *l* m. The definitions of the joint angles are shown in the Fig. 1, 123 , , *aaa qqq* refer to the active joint angles and 123 , , *bbb qqq* refer to the passive joint angles.

Fig. 1. Coordinates of the 2-DOF parallel manipulator with redundant actuation

presence of nonlinear factors such as modeling error and nonlinear friction in the dynamic models of the parallel manipulators, those traditional controllers can not achieve good

In order to overcome the uncertain factors in parallel manipulators, nonlinear control methods and friction compensation method are developed in this chapter. Firstly, in order to restrain the modeling error of parallel manipulators, a nonlinear PD (NPD) control algorithm is used to the APD controller, and a so-called augmented NPD (ANPD) controller is designed. Secondly, considering the feed-forward compensation term in the ANPD controller can not restrict the external disturbance, and the tracking accuracy will be affected when the disturbance exists. Thus the NPD controller is combined with the CT controller further, and a new control method named nonlinear CT (NCT) controller is developed. Thirdly, in order to compensate the nonlinear friction of parallel manipulators, a nonlinear model with two-sigmoid-function is introduced to modeling the nonlinear friction. This nonlinear friction model enables reconstruction of viscous, Coulomb, and Stribeck friction effects of parallel manipulators, and the nonlinear optimization tool is used to estimate the parameters in this model. In addition to the theoretical development, all the proposed methods in this chapter are validated on an actual parallel manipulator. The experiment results indicate that, compared with the conventional controllers, the proposed ANPD and NCT controller can get better trajectory tracking accuracy of the end-effector. Moreover, the experiment results also demonstrate that the nonlinear friction model is more accurately to

compensate the friction, and is robust against the trajectory and the velocity changes.

The experiment platform is a 2-DOF parallel manipulator with redundant actuation. As shown in Fig. 1, a reference frame is established in the workspace of the parallel manipulator. The unit of the frame is meter. The parallel manipulator is actuated by three servo motors located at the base A1, A2, and A3, and the end-effector is mounted at the common joint O, where the three chains meet. Coordinates of the three bases are A1 (0, 0.25), A2 (0.433, 0), and A3 (0.433, 0.5), and all of the links have the same length 0.244 *l* m. The definitions of the joint angles are shown in the Fig. 1, 123 , , *aaa qqq* refer to the active joint

A3

O

qa2 qb2

b3

X

q

B3

A2

control accuracy.

**2. Dynamic modelling** 

angles and 123 , , *bbb qqq* refer to the passive joint angles.

B1

Y qa3 b1 q

qa1

B2

Fig. 1. Coordinates of the 2-DOF parallel manipulator with redundant actuation

A1

Cutting the parallel manipulator at the common point *O* in Fig. 1, one can have an openchain system including three independent planar 2-DOF serial manipulators, each of which contains an active joint and a passive joint. The dynamic model of the parallel manipulator equals to the model of the open-chain system plus the closed-loop constraints, thus the dynamic model of the whole parallel manipulator can be formulated by combining the dynamics of the three serial manipulators under the constraints.

As we know, the dynamic model of each planar 2-DOF serial manipulator can be formulated as (Murray et.al., 1994)

$$\mathbf{M}\_i \ddot{\mathbf{q}}\_i + \mathbf{C}\_i \dot{\mathbf{q}}\_i + \mathbf{f}\_i = \mathbf{r}\_i \tag{1}$$

where *<sup>T</sup> i ai bi* **q** *q q* , *ai q* and *bi q* are the active joint and passive joint angle, respectively; **M***i* is inertia matrix, and **C***i* is Coriolis and centrifugal force matrix, which are defined as

$$\mathbf{M}\_{i} = \begin{bmatrix} \alpha\_{i} & \gamma\_{i}\cos\left(q\_{ai} - q\_{bi}\right) \\ \gamma\_{i}\cos\left(q\_{ai} - q\_{bi}\right) & \beta\_{i} \end{bmatrix}$$

$$\mathbf{C}\_{i} = \begin{bmatrix} 0 & \gamma\_{i}\sin\left(q\_{ai} - q\_{bi}\right)\dot{q}\_{bi} \\ -\gamma\_{i}\sin\left(q\_{ai} - q\_{bi}\right)\dot{q}\_{ai} & 0 \end{bmatrix}$$

where *<sup>i</sup>* , *<sup>i</sup>* , *<sup>i</sup>* , *i* 1,2,3 are the dynamic parameters which are related with the physical parameters such as mass, center of mass, and inertia. In Eq.(1), *<sup>T</sup>* **τ***i ai bi* is joint torque vector, where *ai* is the active joint torque, the passive joint torque 0 *bi* . Vector *<sup>T</sup> i ai bi* **f** *f f* is the friction torque, where *ai f* and *bi f* are the active joint friction and passive joint friction, respectively. The friction parameters of the active joints and the passive joints are identified simultaneously for the parallel manipulator (Shang et.al., 2010). And from the identified results, one can find that the friction parameters of the passive joints are much smaller than those of the active joints. Thus, compared with the active joints friction *ai f* , the passive joint friction *bi f* is much smaller and it can be neglected (Shang et.al., 2010). Generally, the active joint friction torque *ai f* can be formulated by using the Coulomb + viscous friction model as

$$f\_{ai} = \text{sign}\left(\dot{q}\_{ai}\right)f\_{ci} + f\_{vi}\dot{q}\_{ai} \tag{2}$$

where *ci f* represents the Coulomb friction, and *vi f* represents the coefficient of the viscous friction.

Combining the dynamic models of three 2-DOF serial manipulators, the dynamic model of the open-chain system can be expressed as

$$\mathbf{M}\ddot{\mathbf{q}} + \mathbf{C}\dot{\mathbf{q}} + \mathbf{f} = \mathbf{r} \tag{3}$$

where the definition of the symbols is similar to those in Eq.(1), only the difference is that the symbols in Eq.(3) represent the whole open-chain system not a 2-DOF serial manipulator. Based on Eq.(3) of the open-chain system and the constraint forces due to the closed-loop constraints, the dynamic model of the parallel manipulator can be written as

$$\mathbf{M}\ddot{\mathbf{q}} + \mathbf{C}\dot{\mathbf{q}} + \mathbf{f} = \mathbf{r} + \mathbf{A}^T \lambda \tag{4}$$

where *<sup>T</sup>* **A λ** represents the constraint force vector, here matrix **A** is the differential of the closed-loop constrained equation and **λ** is a unknown multiplier representing the magnitude of the constraint forces. Fortunately, *<sup>T</sup>* **A λ** can be eliminated, by finding the nullspace of matrix **A** (Muller, 2005). With the Jacobian matrix **W** , we have

$$
\dot{\mathbf{q}} = \mathbf{W}\dot{\mathbf{q}}\_e \tag{5}
$$

Nonlinear Dynamic Control and Friction Compensation of Parallel Manipulators 235

*T T* **Mq Cq S f S** *ee ee a a*

where *<sup>T</sup>* **M W MW** *<sup>e</sup>* is the inertial matrix in the task space, and ( ) *<sup>T</sup>* **C W MW CW** *<sup>e</sup>* is the

The dynamic model Eq. (10) in the task space also satisfies the similar structural properties to the dynamic model of the open-chain system and the 2-DOF serial manipulator as follows

There are two conventional dynamic controllers for parallel manipulators: APD controller and CT controller. The common feature of the two controllers is eliminating the tracking error by linear PD control. However, the linear PD control is not robust against the uncertain factors such as modeling error and external disturbance. To overcome this problem, the NPD control can be combined with the conventional control strategies to

() () () *u t ket ket Lp d* (11)

where *<sup>p</sup> k* and *<sup>d</sup> k* are the proportional and derivative constants respectively, and *e t*( ) is the

The nonlinear PD (NPD) controller has a similar structure as the linear PD controller (11),

( ) () ( ) () ( ) *u t k et k et Np d* (12)

where ( ) *<sup>p</sup> k* and ( ) *<sup>d</sup> k* are the time-varying proportional and derivative gains, which may

Currently, several NPD controllers have been proposed for robotic application (Xu et.al., 1995; Kelly & Ricardo, 1996; Seraji et.al., 1998). The NPD controller has superior trajectory tracking and disturbance rejection ability compared with the linear PD controllers for robot

1 1 2 2 *H p* ( ) ( ( ), , ) ( ( ), , ) *u t k fun e t k fun e t <sup>d</sup>* (13)

control. The NPD controller proposed by Han has a simple structure as (Han, 1994)

The above Eq.(9) can be briefly expressed as

(Cheng et.al., 2003):

**3.1 NPD controller** 

system error.

a. **M***e* is symmetric and positive.

b. **M 2C** *e e* is skew-symmetric matrix.

Coriolis and centrifugal force matrix in the task space.

**3. Nonlinear dynamic control by using the NPD** 

improve the control accuracy and disturbance rejection ability.

As well as we know, the linear PD controller takes the form

the NPD controller may be any control structure of the form

depend on system state, input or other variables.

where the function *fun* can be defined as

( ) *T T T T* **W MWq W MW CW q S f S** *<sup>e</sup> ea a* **<sup>τ</sup>** (9)

**τ** (10)

where <sup>123123</sup> *T aaabbb* **<sup>q</sup>** *qqqqqq* represents the velocity vector of all the joints, *<sup>T</sup> e xy q q* **<sup>q</sup>** represents the velocity vector of the end-effector, and the Jacobian matrix **<sup>W</sup>** is defined as

$$\mathbf{W} = \begin{bmatrix} r\_1 \cos(q\_{b1}) & r\_1 \sin(q\_{b1}) \\ r\_2 \cos(q\_{b2}) & r\_2 \sin(q\_{b2}) \\ r\_3 \cos(q\_{b3}) & r\_3 \sin(q\_{b3}) \\ -r\_1 \cos(q\_{a1}) & -r\_1 \sin(q\_{a1}) \\ -r\_2 \cos(q\_{a2}) & -r\_2 \sin(q\_{a2}) \\ -r\_3 \cos(q\_{a3}) & -r\_3 \sin(q\_{a3}) \end{bmatrix}, \text{ where } \ r\_i = \frac{1}{l \sin(q\_{bi} - q\_{ai})}$$

Considering the constraint equation **Aq 0** , then one can have **AWq 0 <sup>e</sup>** with the Jacobian relation Eq.(5). The velocity vector **q***<sup>e</sup>* of the end-effector contains independent generalized coordinates, so one can get **AW 0** , or equivalently, *T T* **W A 0** . With this result, the term of *<sup>T</sup>* **A λ** can be eliminated, and the dynamic model Eq. (4) can be written as

$$\mathbf{W}^T \mathbf{M} \ddot{\mathbf{q}} + \mathbf{W}^T \mathbf{C} \dot{\mathbf{q}} + \mathbf{W}^T \mathbf{f} = \mathbf{W}^T \mathbf{r} + \mathbf{W}^T \mathbf{A}^T \boldsymbol{\lambda} = \mathbf{W}^T \mathbf{r} \tag{6}$$

In order to study dynamic control and trajectory planning of the parallel manipulator both in the task space, we will further formulate the dynamic model in the task space on the basis of the dynamic model Eq. (6) of the joint space. Differentiating the Jacobian Eq. (5) yields

$$
\ddot{\mathbf{q}} = \dot{\mathbf{W}} \dot{\mathbf{q}}\_e + \mathbf{W} \ddot{\mathbf{q}}\_e \tag{7}
$$

and substituting Eqs. (5) and (7) into Eq. (6), the dynamic model in the task space can be written as

$$\mathbf{W}^T \mathbf{M} \mathbf{W} \ddot{\mathbf{q}}\_\varepsilon + \mathbf{W}^T (\mathbf{M} \dot{\mathbf{W}} + \mathbf{C} \mathbf{W}) \dot{\mathbf{q}}\_\varepsilon + \mathbf{W}^T \mathbf{f} = \mathbf{W}^T \mathbf{r} \tag{8}$$

If the friction torques of the passive joints is neglected, then Eq. (8) can be further simplified. Let *<sup>a</sup>* **τ** and *a***f** be the actuator and friction torque vector of the three active joints respectively, then *T T* **W** *<sup>a</sup>* **τ S τ** , and *T T* **W** *<sup>a</sup>* **f Sf** . Here, **S** is the Jacobian matrix between the velocity of the end-effector and the velocity of three active joints, and **S** is written as

$$\mathbf{S} = \begin{bmatrix} r\_1 \cos(q\_{b1}) & r\_1 \sin(q\_{b1}) \\ r\_2 \cos(q\_{b2}) & r\_2 \sin(q\_{b2}) \\ r\_3 \cos(q\_{b3}) & r\_3 \sin(q\_{b3}) \end{bmatrix}$$

Then, the dynamic model in the task space can be written as

$$\mathbf{W}^T \mathbf{M} \mathbf{W} \ddot{\mathbf{q}}\_\varepsilon + \mathbf{W}^T (\mathbf{M} \dot{\mathbf{W}} + \mathbf{C} \mathbf{W}) \dot{\mathbf{q}}\_\varepsilon + \mathbf{S}^T \mathbf{f}\_a = \mathbf{S}^T \mathbf{r}\_a \tag{9}$$

The above Eq.(9) can be briefly expressed as

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

where *<sup>T</sup>* **A λ** represents the constraint force vector, here matrix **A** is the differential of the closed-loop constrained equation and **λ** is a unknown multiplier representing the magnitude of the constraint forces. Fortunately, *<sup>T</sup>* **A λ** can be eliminated, by finding the null-

*aaabbb* **<sup>q</sup>** *qqqqqq* represents the velocity vector of all the joints, *<sup>T</sup>*

**<sup>q</sup>** represents the velocity vector of the end-effector, and the Jacobian matrix **<sup>W</sup>**

**<sup>W</sup>** where <sup>1</sup>

Considering the constraint equation **Aq 0** , then one can have **AWq 0 <sup>e</sup>** with the Jacobian relation Eq.(5). The velocity vector **q***<sup>e</sup>* of the end-effector contains independent generalized coordinates, so one can get **AW 0** , or equivalently, *T T* **W A 0** . With this result, the term

In order to study dynamic control and trajectory planning of the parallel manipulator both in the task space, we will further formulate the dynamic model in the task space on the basis of the dynamic model Eq. (6) of the joint space. Differentiating the Jacobian Eq. (5) yields

and substituting Eqs. (5) and (7) into Eq. (6), the dynamic model in the task space can be

If the friction torques of the passive joints is neglected, then Eq. (8) can be further simplified. Let *<sup>a</sup>* **τ** and *a***f** be the actuator and friction torque vector of the three active joints respectively, then *T T* **W** *<sup>a</sup>* **τ S τ** , and *T T* **W** *<sup>a</sup>* **f Sf** . Here, **S** is the Jacobian matrix between the

> 1 11 1 2 22 2 3 33 3

*r qrq r qrq r qrq* **S**

cos( ) sin( ) cos( ) sin( ) cos( ) sin( )

*b b b b b b*

velocity of the end-effector and the velocity of three active joints, and **S** is written as

Then, the dynamic model in the task space can be written as

**q Wq** *<sup>e</sup>* (5)

sin( ) *<sup>i</sup> bi ai*

**q Wq Wq** *e e* (7)

*<sup>l</sup> q q*

*r*

*T T T T TT T* **W Mq W Cq W f W τ W A λ W τ** (6)

( ) *T T T T* **W MWq W MW CW q W f W** *e e* **<sup>τ</sup>** (8)

space of matrix **A** (Muller, 2005). With the Jacobian matrix **W** , we have

1 11 1 2 22 2 3 33 3 1 11 1 2 22 2 3 33 3

*r q rq r q rq r q rq r q rq r q rq r q rq*

cos( ) sin( ) cos( ) sin( )

*b b b b b b a a a a a a*

cos( ) sin( ) , cos( ) sin( )

cos( ) sin( ) cos( ) sin( )

of *<sup>T</sup>* **A λ** can be eliminated, and the dynamic model Eq. (4) can be written as

*T*

where <sup>123123</sup>

*e xy q q*

is defined as

written as

$$\mathbf{M}\_e \ddot{\mathbf{q}}\_e + \mathbf{C}\_e \dot{\mathbf{q}}\_e + \mathbf{S}^T \mathbf{f}\_a = \mathbf{S}^T \mathbf{r}\_a \tag{10}$$

where *<sup>T</sup>* **M W MW** *<sup>e</sup>* is the inertial matrix in the task space, and ( ) *<sup>T</sup>* **C W MW CW** *<sup>e</sup>* is the Coriolis and centrifugal force matrix in the task space.

The dynamic model Eq. (10) in the task space also satisfies the similar structural properties to the dynamic model of the open-chain system and the 2-DOF serial manipulator as follows (Cheng et.al., 2003):


## **3. Nonlinear dynamic control by using the NPD**

There are two conventional dynamic controllers for parallel manipulators: APD controller and CT controller. The common feature of the two controllers is eliminating the tracking error by linear PD control. However, the linear PD control is not robust against the uncertain factors such as modeling error and external disturbance. To overcome this problem, the NPD control can be combined with the conventional control strategies to improve the control accuracy and disturbance rejection ability.

#### **3.1 NPD controller**

As well as we know, the linear PD controller takes the form

$$
u\_L(t) = k\_p e(t) + k\_d \dot{e}(t)\tag{11}$$

where *<sup>p</sup> k* and *<sup>d</sup> k* are the proportional and derivative constants respectively, and *e t*( ) is the system error.

The nonlinear PD (NPD) controller has a similar structure as the linear PD controller (11), the NPD controller may be any control structure of the form

$$
\mu\_N(t) = k\_p(\cdot)e(t) + k\_d(\cdot)\dot{e}(t) \tag{12}
$$

where ( ) *<sup>p</sup> k* and ( ) *<sup>d</sup> k* are the time-varying proportional and derivative gains, which may depend on system state, input or other variables.

Currently, several NPD controllers have been proposed for robotic application (Xu et.al., 1995; Kelly & Ricardo, 1996; Seraji et.al., 1998). The NPD controller has superior trajectory tracking and disturbance rejection ability compared with the linear PD controllers for robot control. The NPD controller proposed by Han has a simple structure as (Han, 1994)

$$
\mu\_H(t) = k\_p \text{fun}(e(t), a\_1, \delta\_1) + k\_d \text{fun}(\dot{e}(t), a\_2, \delta\_2) \tag{13}
$$

where the function *fun* can be defined as

$$\begin{aligned} \, \, \_f \text{fun} \{ \mathbf{x}, \alpha, \delta \} = \begin{cases} \left| \mathbf{x} \right|^{\alpha} \, \text{sign}(\mathbf{x}), & \left| \mathbf{x} \right| > \delta \\ \mathbf{x} / \, \delta^{1-\alpha}, & \left| \mathbf{x} \right| \le \delta \end{cases} \end{aligned} \tag{14}$$

Nonlinear Dynamic Control and Friction Compensation of Parallel Manipulators 237

where *<sup>d</sup> e e* **eq q** is the position error of the end-effector; ( ) **K e** *<sup>p</sup>* and ( ) **K e** *<sup>d</sup>* are symmetric, positive definite matrices of time-varying gains. From (15) and (16), ( ) *<sup>p</sup>* **K** *e* and ( ) *<sup>d</sup>* **K** *e* can be

where *<sup>p</sup> k* and *<sup>d</sup> k* are the positive constant gains. The variables ,*i i x y* , *i* 1,2 are determined by the following rules: if *<sup>i</sup>* <sup>1</sup> *e* , then *i i x e* , else *<sup>i</sup>* <sup>1</sup> *x* ; if *<sup>i</sup>* <sup>2</sup> *e* , then *i i y e* , else *<sup>i</sup>* <sup>2</sup> *y* ; <sup>1</sup> , <sup>2</sup> , <sup>1</sup> , and 2 are the designed parameters which should be tuned in

In the following, we will prove the asymptotic stability of the parallel manipulator system controlled by the ANPD controller (17). Firstly, we will introduce two lemmas (Kelly and

**Lemma 1**: Let ( ) be a class function and *f* : a continuous function. If

1 1

*k e*

() ( ) *pi i xk x x* , , 1,2 *x i*

Next, we will give brief proof for Lemma 2 (Kelly and Ricardo, 1996). Define ( ) ( ) *<sup>i</sup> piii f e k ee* ,

<sup>0</sup> ( ) 0, 0 *ie*

<sup>0</sup> ( ) 0, 0 *ie*

**Theorem 1**: If the nonlinear gains ( ) *<sup>p</sup>* **K** and ( ) *<sup>d</sup>* **K** are defined by (19) and (20) respectively, the parallel manipulator system controlled by the ANPD control law (17) is asymptotically

integral is radically unbounded with respect to **<sup>e</sup>** , and this implies 0 ( ) *<sup>e</sup> <sup>T</sup>*

() 0 ( ) 0 () *p*

*fd x* and

*p*

*K e*

**Lemma 2**: Consider the continuous diagonal matrix 2 22 : *Kp*

Assume that there exist class functions ( ) *<sup>i</sup>* such that

**ξΚ ξ ξ <sup>e</sup>** , and 0 ( ) *<sup>e</sup> <sup>T</sup>*

1 1 1 1

2 2 1 1

1 2 ( ) , *p pp e diag k x k x* **<sup>K</sup>** (19)

1 2 ( ) , *d dd e diag k y k y* **<sup>K</sup>** (20)

<sup>0</sup> ( ) *<sup>x</sup>*

*ii i fd e* (21)

*pi i i i <sup>i</sup> kd e* (22)

*<sup>p</sup> <sup>d</sup>* **<sup>Κ</sup>** as

*<sup>p</sup> <sup>d</sup>* **<sup>Κ</sup>** is positive definite. Also, Lemma 1 ensures that above

2 2

*p*

*<sup>p</sup> <sup>d</sup>* as *<sup>e</sup>* .

*k e* 

*f d* as *<sup>x</sup>* .

expressed as

practice.

Ricardo, 1996).

*fx x x* () ( ) , then 0 ( ) 0, 0 *<sup>x</sup>*

then <sup>2</sup> <sup>0</sup> ( ) 0, 0 *<sup>T</sup> <sup>p</sup> <sup>d</sup>* **<sup>e</sup>**

Therefore, the function 0 ( ) *<sup>e</sup> <sup>T</sup>*

From Lemma 1, one can get

which is equivalent to

**e** .

stable.

where refers to the nonlinearity, specially the NPD will degenerate into the linear PD when 1 ; refers to the threshold of the error (or error derivative), and it is at the same magnitude with the error (or error derivative). The NPD controller (13) can be rewritten as the form (12), then ( ) *<sup>p</sup> k* can be derived as

$$k\_p(e) = \begin{cases} k\_p \left| e \right|^{\alpha\_1 - 1} & \left| e \right| > \delta\_1 \\ k\_p \delta\_1^{\alpha\_1 - 1} & \left| e \right| \le \delta\_1 \end{cases} \tag{15}$$

Similarly, ( ) *<sup>d</sup> k* can be expressed as

$$k\_d(\dot{\mathbf{e}}) = \begin{cases} k\_d \left| \dot{\mathbf{e}} \right|^{\alpha\_2 - 1} & \left| \dot{\mathbf{e}} \right| > \delta\_2 \\ k\_d \delta\_2 \,^{\alpha\_2 - 1} & \left| \dot{\mathbf{e}} \right| \le \delta\_2 \end{cases} \tag{16}$$

In (15) and (16), 1 and <sup>2</sup> can be determined in the interval [0.5, 1.0] and [1.0, 1.5], respectively. This choice makes the nonlinear gains with the following characteristics (Han, 1994): on one hand, large gain for small error and small gain for large error; on the other hand, large gain for large error rate and small gain for small error rate. Such variations of the gains result in a rapid transition of the systems with favorable damping. In addition, the NPD controller is robust against the changes of the system parameters and the nonlinear factors. Thus the NPD controller (13) is suitable to the trajectory tracking of the high-speed planar parallel manipulator.

#### **3.2 Augmented NPD controller**

The augmented NPD (ANPD) controller developed here is designed by replacing the linear PD in the APD controller with the NPD algorithm. According to the APD controller and the NPD control algorithm (13), based on the dynamic model (10), the control law of the ANPD controller can be written as (Shang et.al., 2009)

$$\mathbf{r}\_A = \mathbf{M}\_c \ddot{\mathbf{q}}\_c^d + \mathbf{C}\_c \dot{\mathbf{q}}\_c^d + \mathbf{S}^T \mathbf{f}\_a + \mathbf{K}\_p(\mathbf{e}) \mathbf{e} + \mathbf{K}\_d(\dot{\mathbf{e}}) \dot{\mathbf{e}} \tag{17}$$

where *<sup>d</sup>* **q***<sup>e</sup>* and *<sup>d</sup>* **q***<sup>e</sup>* are the desired velocity and acceleration of the end-effector. The control law (17) can be divided into three terms according to different functions. The first term is the dynamics compensation defined by the desired trajectory, which can be written as

$$\mathbf{r}\_{A1} = \mathbf{M}\_e \ddot{\mathbf{q}}\_e^d + \mathbf{C}\_e \dot{\mathbf{q}}\_e^d \tag{18.a}$$

The second term is the friction compensation, which can be written as

$$\mathbf{\boldsymbol{\tau}}\_{A2} = \mathbf{S}^T \mathbf{\hat{f}}\_a \tag{18.1b}$$

The third term is the tracking error elimination, which can be written as

$$\mathbf{r}\_{A3} = \mathbf{K}\_p(\mathbf{e})\mathbf{e} + \mathbf{K}\_d(\dot{\mathbf{e}})\dot{\mathbf{e}} \tag{18.6}$$

where *<sup>d</sup> e e* **eq q** is the position error of the end-effector; ( ) **K e** *<sup>p</sup>* and ( ) **K e** *<sup>d</sup>* are symmetric, positive definite matrices of time-varying gains. From (15) and (16), ( ) *<sup>p</sup>* **K** *e* and ( ) *<sup>d</sup>* **K** *e* can be expressed as

$$\mathbf{K}\_p(e) = \text{diag}\left(k\_p \left| \mathbf{x}\_1\right|^{a\_1 - 1}, k\_p \left| \mathbf{x}\_2\right|^{a\_1 - 1}\right) \tag{19}$$

$$\mathbf{K}\_d(\dot{e}) = \text{diag}\left(k\_d \left|y\_1\right|^{a\_2 - 1}, k\_d \left|y\_2\right|^{a\_2 - 1}\right) \tag{20}$$

where *<sup>p</sup> k* and *<sup>d</sup> k* are the positive constant gains. The variables ,*i i x y* , *i* 1,2 are determined by the following rules: if *<sup>i</sup>* <sup>1</sup> *e* , then *i i x e* , else *<sup>i</sup>* <sup>1</sup> *x* ; if *<sup>i</sup>* <sup>2</sup> *e* , then *i i y e* , else *<sup>i</sup>* <sup>2</sup> *y* ; <sup>1</sup> , <sup>2</sup> , <sup>1</sup> , and 2 are the designed parameters which should be tuned in practice.

In the following, we will prove the asymptotic stability of the parallel manipulator system controlled by the ANPD controller (17). Firstly, we will introduce two lemmas (Kelly and Ricardo, 1996).

**Lemma 1**: Let ( ) be a class function and *f* : a continuous function. If *fx x x* () ( ) , then 0 ( ) 0, 0 *<sup>x</sup> fd x* and <sup>0</sup> ( ) *<sup>x</sup> f d* as *<sup>x</sup>* . **Lemma 2**: Consider the continuous diagonal matrix 2 22 : *Kp* 

$$K\_p(e) = \begin{bmatrix} k\_{p1}(e\_1) & 0\\ 0 & k\_{p2}(e\_2) \end{bmatrix}$$

Assume that there exist class functions ( ) *<sup>i</sup>* such that

$$\infty k\_{\mathbb{P}^i}(\mathbf{x}) \ge \alpha\_i(\|\mathbf{x}\|) \text{ . } \mathbf{x} \in \mathfrak{R}, i = 1, 2$$

then <sup>2</sup> <sup>0</sup> ( ) 0, 0 *<sup>T</sup> <sup>p</sup> <sup>d</sup>* **<sup>e</sup> ξΚ ξ ξ <sup>e</sup>** , and 0 ( ) *<sup>e</sup> <sup>T</sup> <sup>p</sup> <sup>d</sup>* as *<sup>e</sup>* .

Next, we will give brief proof for Lemma 2 (Kelly and Ricardo, 1996). Define ( ) ( ) *<sup>i</sup> piii f e k ee* , From Lemma 1, one can get

$$\int\_{0}^{e\_i} f(\xi\_i) d\xi\_i > 0, \quad \forall e\_i \neq 0 \in \mathfrak{R} \tag{21}$$

which is equivalent to

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

where refers to the nonlinearity, specially the NPD will degenerate into the linear PD when 1 ; refers to the threshold of the error (or error derivative), and it is at the same magnitude with the error (or error derivative). The NPD controller (13) can be rewritten as

> 1 1

2 2

  1

1 2 2

In (15) and (16), 1 and <sup>2</sup> can be determined in the interval [0.5, 1.0] and [1.0, 1.5], respectively. This choice makes the nonlinear gains with the following characteristics (Han, 1994): on one hand, large gain for small error and small gain for large error; on the other hand, large gain for large error rate and small gain for small error rate. Such variations of the gains result in a rapid transition of the systems with favorable damping. In addition, the NPD controller is robust against the changes of the system parameters and the nonlinear factors. Thus the NPD controller (13) is suitable to the trajectory tracking of the high-speed

The augmented NPD (ANPD) controller developed here is designed by replacing the linear PD in the APD controller with the NPD algorithm. According to the APD controller and the NPD control algorithm (13), based on the dynamic model (10), the control law of the ANPD

where *<sup>d</sup>* **q***<sup>e</sup>* and *<sup>d</sup>* **q***<sup>e</sup>* are the desired velocity and acceleration of the end-effector. The control law (17) can be divided into three terms according to different functions. The first term is the

*d d*

*T*

dynamics compensation defined by the desired trajectory, which can be written as

1

2

*k e*

 

 

1

*ke e*

1

*k e*

1 1

( ), (, ,)

( ) *<sup>p</sup> p*

( ) *<sup>d</sup> d*

*k e*

*p*

*d ke e k e*

the form (12), then ( ) *<sup>p</sup> k* can be derived as

Similarly, ( ) *<sup>d</sup> k* can be expressed as

planar parallel manipulator.

**3.2 Augmented NPD controller** 

controller can be written as (Shang et.al., 2009)

() () *d dT*

The second term is the friction compensation, which can be written as

The third term is the tracking error elimination, which can be written as

*x sign x x fun x*

1

/ ,

*x x*

(14)

(15)

(16)

1

2

*A ee ee a p d* **Mq Cq S f K ee K ee** (17)

*<sup>A</sup> ee ee* **Mq Cq** (18.a)

*<sup>A</sup> <sup>a</sup>* **S f** (18.b)

<sup>3</sup> () () *Ap d* **K ee K ee** (18.c)

$$\int\_{0}^{\varepsilon\_{i}} k\_{pi}(\xi\_{i})\xi\_{i}d\xi\_{i} > 0, \quad \forall \varepsilon\_{i} \neq 0 \in \mathfrak{R} \tag{22}$$

Therefore, the function 0 ( ) *<sup>e</sup> <sup>T</sup> <sup>p</sup> <sup>d</sup>* **<sup>Κ</sup>** is positive definite. Also, Lemma 1 ensures that above integral is radically unbounded with respect to **<sup>e</sup>** , and this implies 0 ( ) *<sup>e</sup> <sup>T</sup> <sup>p</sup> <sup>d</sup>* **<sup>Κ</sup>** as **e** .

**Theorem 1**: If the nonlinear gains ( ) *<sup>p</sup>* **K** and ( ) *<sup>d</sup>* **K** are defined by (19) and (20) respectively, the parallel manipulator system controlled by the ANPD control law (17) is asymptotically stable.

*Proof*: Choose the Lyapunov function candidate as

$$V(\mathbf{e}, \dot{\mathbf{e}}) = \frac{1}{2} \dot{\mathbf{e}}^T \mathbf{M}\_e \dot{\mathbf{e}} + \int\_0^\mathbf{e} \xi^T \mathbf{K}\_p(\xi) d\xi \tag{23}$$

Nonlinear Dynamic Control and Friction Compensation of Parallel Manipulators 239

Now since *V t*() 0 and *V t*() 0 , *V t*( ) is bounded and decreasing, thus *V t*( ) converges to a limit. From the definition of *V t*( ) , it implies that both **e** and **e** are bounded. Since **M***e* is

So **e** is also bounded and ( ) *V t* is bounded. Thus, ( ) *V t* is uniformly continuous. With the Barbalat Lemma (Slotine & Li, 1991), one knows 0 **e** as *t* , and this implies 0 **e** as

One can note that *A***τ** in the control law (17) is the actuator torque of the task space, but in fact, we need the actuator torque *<sup>a</sup>* **τ** of the active joints. In practice, a solution that has a minimum weighted Euclidian norm is selected as the actual control input. The actual control

> ( ) () () *T dd a ee ee p d a*

where <sup>1</sup> () ( ) *T T* **S SS S** is the pseudo-inverse of *<sup>T</sup>* **S** , satisfying ( ) *T T* **SS I** . For the parallel manipulator with redundant actuation, the singularity is eliminated in the effective workspace (Shang et.al., 2010). Thus, the pseudo-inverse matrix ( ) *<sup>T</sup>* **S** will not be close to

An obvious drawback of the traditional CT controllers is the elimination of the tracking error by linear PD algorithm. However, the linear PD algorithm is not robust against the uncertain factors such as modeling error and nonlinear friction. To overcome this problem, the NPD algorithm can be combined with the conventional control strategies to improve the control accuracy. The NCT controller developed in this chapter is designed by replacing the

According to the NPD algorithm (13), based on the dynamic model (10), the control law of

The control law (32) can be divided into three terms according to the different functions. The first term is the dynamics compensation defined by the desired acceleration and the actual

1

2

The second term is the friction compensation, which can be written as

The third term is the tracking error elimination, which can be written as

the singularity for this parallel manipulator with redundant actuation.

<sup>1</sup> () () *ee p d*

*<sup>e</sup>* **<sup>M</sup>** exists and bounded, thus the closed-loop system

**e M Ce K e K e** (30)

**τ S Mq Cq K ee K ee f** (31)

() () *d T* **τ***N ee ee a e p d* **Mq Cq S f M K ee K ee** (32)

*<sup>d</sup>* **τ***N ee ee* **Mq Cq** (33.a)

*<sup>T</sup>* **τ***N a* **S f** (33.b)

**τ***N ep d* <sup>3</sup> **M K ee K ee** () () (33.c)

uniform positive definite, then <sup>1</sup>

input vector of the active joints can be written as

**3.3 Nonlinear computed torque control** 

linear PD in the CT controller with the NPD algorithm.

velocity of the end-effector, which can be written as

the NCT controller can be written as (Shang & Cong, 2009)

equation (27) can be written as

*t* .

where

$$\int\_0^\mathbf{e} \xi^T \mathbf{K}\_p(\xi) d\xi = \int\_0^{e\_1} \xi\_1 k\_{p1}(\xi\_1) d\xi\_1 + \int\_0^{e\_2} \xi\_2 k\_{p2}(\xi\_2) d\xi\_2$$

Considering the structural properties (a), the inertial matrix **M***e* is symmetric and positive definite matrix, thus the first term in (23) is positive definite. In addition, the integral term can be interpreted as a potential energy induced by the position error-driven part of the controller. Next, we will proof that the second term in (23) is positive definite. Considering ( ) *pi i k e* is defined as

$$k\_{pi}(e\_i) = \begin{cases} k\_{pi} \left| \left| e\_i \right| \right|^{\alpha\_i - 1} \quad \left| e\_i \right| > \delta \\ k\_{pi} \delta\_i^{\alpha\_i - 1} \quad \left| e\_i \right| \le \delta\_i \end{cases} \tag{24}$$

Define class functions ( ) *<sup>i</sup>* as

$$\alpha\_i(\left|e\_i\right|) = \begin{cases} \varepsilon\_i e\_i \left|e\_i\right|^{\alpha\_i - 1}, & \left|e\_i\right| > \delta\_1 \\ \varepsilon\_i e\_i \delta\_i^{\alpha\_i - 1}, & \left|e\_i\right| \le \delta\_1 \end{cases}, \text{ and } \left.k\_{pi} > \varepsilon\_i > 0 \tag{25}$$

With the Lemma 2, one can get the integral term in (23) is a radically unbounded positive definite function. Thus *V*(,) **e e** is a positive function. Differentiating *V t*( ) with respect to time yields

$$\dot{V}(\mathbf{e}, \dot{\mathbf{e}}) = \dot{\mathbf{e}}^T \mathbf{M}\_\varepsilon \ddot{\mathbf{e}} + \frac{1}{2} \dot{\mathbf{e}}^T \dot{\mathbf{M}}\_\varepsilon \dot{\mathbf{e}} + \mathbf{e}^T \mathbf{K}\_p(\mathbf{e}) \dot{\mathbf{e}} \tag{26}$$

Combine the control law (17) and the dynamic model (10), the closed-loop system equation can be written as

$$\mathbf{M}\_{\varepsilon}\ddot{\mathbf{e}} + \mathbf{C}\_{\varepsilon}\dot{\mathbf{e}} + \mathbf{K}\_{p}(\cdot)\mathbf{e} + \mathbf{K}\_{d}(\cdot)\dot{\mathbf{e}} = 0\tag{27}$$

Multiplying both sides of the above equation by *<sup>T</sup>***e** , and then substituting the resulting equation into (26) yields

$$\dot{V} = -\dot{\mathbf{e}}^T \mathbf{K}\_d(\cdot)\dot{\mathbf{e}} + \frac{1}{2}\dot{\mathbf{e}}^T(\dot{\mathbf{M}}\_e - 2\mathbf{C}\_e)\dot{\mathbf{e}}\tag{28}$$

Considering the structural properties (b), then one can have ( 2 ) 0 *<sup>T</sup>***e M Ce** *e e* and

$$
\dot{V} = -\dot{\mathbf{e}}^T \mathbf{K}\_d(\cdot) \dot{\mathbf{e}} \tag{29}
$$

As ( ) *<sup>d</sup>* **<sup>K</sup>** is a symmetric, positive definite matrix, then *V* is a semi-negative definite matrix, thus the parallel manipulator system is stable.

Now since *V t*() 0 and *V t*() 0 , *V t*( ) is bounded and decreasing, thus *V t*( ) converges to a limit. From the definition of *V t*( ) , it implies that both **e** and **e** are bounded. Since **M***e* is uniform positive definite, then <sup>1</sup> *<sup>e</sup>* **<sup>M</sup>** exists and bounded, thus the closed-loop system equation (27) can be written as

$$\ddot{\mathbf{e}} = -\mathbf{M}\_e^{-1} \left( \mathbf{C}\_e \dot{\mathbf{e}} + \mathbf{K}\_p(\cdot) \mathbf{e} + \mathbf{K}\_d(\cdot) \dot{\mathbf{e}} \right) \tag{30}$$

So **e** is also bounded and ( ) *V t* is bounded. Thus, ( ) *V t* is uniformly continuous. With the Barbalat Lemma (Slotine & Li, 1991), one knows 0 **e** as *t* , and this implies 0 **e** as *t* .

One can note that *A***τ** in the control law (17) is the actuator torque of the task space, but in fact, we need the actuator torque *<sup>a</sup>* **τ** of the active joints. In practice, a solution that has a minimum weighted Euclidian norm is selected as the actual control input. The actual control input vector of the active joints can be written as

$$\mathbf{r}\_a = (\mathbf{S}^T)^+ \left( \mathbf{M}\_e \ddot{\mathbf{q}}\_e^d + \mathbf{C}\_e \dot{\mathbf{q}}\_e^d + \mathbf{K}\_p(\mathbf{e}) \mathbf{e} + \mathbf{K}\_d(\dot{\mathbf{e}}) \dot{\mathbf{e}} \right) + \mathbf{f}\_a \tag{31}$$

where <sup>1</sup> () ( ) *T T* **S SS S** is the pseudo-inverse of *<sup>T</sup>* **S** , satisfying ( ) *T T* **SS I** . For the parallel manipulator with redundant actuation, the singularity is eliminated in the effective workspace (Shang et.al., 2010). Thus, the pseudo-inverse matrix ( ) *<sup>T</sup>* **S** will not be close to the singularity for this parallel manipulator with redundant actuation.

#### **3.3 Nonlinear computed torque control**

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

<sup>1</sup> (,) ( ) <sup>2</sup> *T T V d e p*

Considering the structural properties (a), the inertial matrix **M***e* is symmetric and positive definite matrix, thus the first term in (23) is positive definite. In addition, the integral term can be interpreted as a potential energy induced by the position error-driven part of the controller. Next, we will proof that the second term in (23) is positive definite. Considering

0

1 2 111 1 222 2 00 0 () ( ) ( ) *e e <sup>T</sup> pp p d kd kd*

**ξ K ξ ξ**

1

,

*pi i i i*

1

1

With the Lemma 2, one can get the integral term in (23) is a radically unbounded positive definite function. Thus *V*(,) **e e** is a positive function. Differentiating *V t*( ) with respect to

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

Combine the control law (17) and the dynamic model (10), the closed-loop system equation

Multiplying both sides of the above equation by *<sup>T</sup>***e** , and then substituting the resulting

() *<sup>T</sup> <sup>V</sup> <sup>d</sup>* **eK e** (29)

As ( ) *<sup>d</sup>* **<sup>K</sup>** is a symmetric, positive definite matrix, then *V* is a semi-negative definite matrix,

Considering the structural properties (b), then one can have ( 2 ) 0 *<sup>T</sup>***e M Ce** *e e* and

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

*T TT <sup>V</sup> e ep* **ee e Me e Me e K ee** (26)

(27)

*T T <sup>V</sup> d ee* **eK e e M C e** (28)

1

*i*

*ke e*

*i pi i i*

 

*k e*

, ( )

1

*i i ii i i*

 

*ee e*

1

*ii i i*

*e e*

,

*pi i*

*k e*

, ( )

() () 0 **Me Ce K e K e** *ee p d*

thus the parallel manipulator system is stable.

*i i*

*e*

**e**

**ee e Me ξ K ξ ξ** (23)

(24)

, and 0 *pi i k* (25)

*Proof*: Choose the Lyapunov function candidate as

**e**

where

( ) *pi i k e* is defined as

time yields

can be written as

equation into (26) yields

Define class functions ( ) *<sup>i</sup>* as

An obvious drawback of the traditional CT controllers is the elimination of the tracking error by linear PD algorithm. However, the linear PD algorithm is not robust against the uncertain factors such as modeling error and nonlinear friction. To overcome this problem, the NPD algorithm can be combined with the conventional control strategies to improve the control accuracy. The NCT controller developed in this chapter is designed by replacing the linear PD in the CT controller with the NPD algorithm.

According to the NPD algorithm (13), based on the dynamic model (10), the control law of the NCT controller can be written as (Shang & Cong, 2009)

$$\mathbf{r}\_N = \mathbf{M}\_e \ddot{\mathbf{q}}\_e^d + \mathbf{C}\_e \dot{\mathbf{q}}\_e + \mathbf{S}^T \mathbf{f}\_a + \mathbf{M}\_e \left(\mathbf{K}\_p(\mathbf{e}) \mathbf{e} + \mathbf{K}\_d(\dot{\mathbf{e}}) \dot{\mathbf{e}}\right) \tag{32}$$

The control law (32) can be divided into three terms according to the different functions. The first term is the dynamics compensation defined by the desired acceleration and the actual velocity of the end-effector, which can be written as

$$\mathbf{r}\_{N1} = \mathbf{M}\_e \ddot{\mathbf{q}}\_e^d + \mathbf{C}\_e \dot{\mathbf{q}}\_e \tag{33.a}$$

The second term is the friction compensation, which can be written as

$$\mathbf{r}\_{N2} = \mathbf{S}^T \mathbf{f}\_a \tag{33.b}$$

The third term is the tracking error elimination, which can be written as

$$\mathbf{r}\_{N3} = \mathbf{M}\_{\varepsilon} \left( \mathbf{K}\_{p}(\mathbf{e}) \mathbf{e} + \mathbf{K}\_{d}(\dot{\mathbf{e}}) \dot{\mathbf{e}} \right) \tag{33.6}$$

where ( ) **K e** *<sup>p</sup>* and ( ) **K e** *<sup>d</sup>* are symmetric, positive definite matrices of time-varying gains. From (15) and (16), ( ) **K e** *<sup>p</sup>* and ( ) **K e** *<sup>d</sup>* can be expressed as

$$\mathbf{K}\_p(\mathbf{e}) = \text{diag}\left(k\_{p1} \left| \mathbf{x}\_1 \right|^{a\_1 - 1}, k\_{p2} \left| \mathbf{x}\_2 \right|^{a\_1 - 1} \right) \tag{34}$$

Nonlinear Dynamic Control and Friction Compensation of Parallel Manipulators 241

() () 0 *p d* **eK eK e** (41)

Multiplying both sides of the above equation by *<sup>T</sup>***e** , and then substituting the resulting

() *<sup>T</sup> <sup>V</sup> <sup>d</sup>* **eK e** (42)

As ( ) *<sup>d</sup>* **<sup>K</sup>** is a symmetric, positive definite matrix, then *V* is a semi-negative definite matrix, thus the closed-loop system is stable. Considering the closed-loop equation (41) is

asymptotically stable equilibrium point. By using the LaSalle's theorem, one can get that the

In this section, the friction compensation method based on a nonlinear friction model is developed for the parallel manipulator. This nonlinear friction model enables reconstruction of viscous, Coulomb, and Stribeck friction effects of the parallel manipulator. Identification experiments are carried out, and parameters in the nonlinear friction model are estimated by

In order to reconstruct the nonlinear friction effect, the nonlinear friction model can be

<sup>2</sup> ( ) (1 ), 1,2,3 <sup>1</sup> *<sup>k</sup> v k*

where the first term represents the viscous friction and *Bv* is the viscous friction coefficient. The other terms model the Coulomb and Stribeck friction effects. The parameters *kf* represent the magnitude of the Coulomb friction and the Stribeck curve. The parameters *<sup>k</sup>* determine the slope in the approximation of the sigmoid function in the Coulomb friction

describe stiction, because the system will always slide for an applied force unequal to zero. The stiction regime will be approximated, if the slope of the function near 0 is very steep. Then the model can still give acceptable simulation results, i.e., angular displacement

2

0 , the model does not capture the static friction. The friction model does not

(44)

3

1

Obviously, the nonlinear friction model is an odd continuous function. Since (

*fB f k e* 

*k*

**e e**

**<sup>e</sup>** is the largest invariant set of : ( , ) 0 *<sup>V</sup>*

<sup>4</sup> : (,) 0 <sup>0</sup> *<sup>V</sup>* **e e e**

(43)

, and constitutes an

) *f* is clearly

**e Ω e e e**

*<sup>e</sup>* **<sup>M</sup>** exists and bounded, thus the closed-loop

Since **M***e* is uniform positive definite, then <sup>1</sup>

autonomous system, and defining the region **Ω** as

**4. Nonlinear friction model and identification** 

formulated as (Hensen et.al., 2000; Kostic et.al., 2004)

**Ω e e**

closed-loop system of the parallel manipulator is asymptotically stable.

system equation (40) can be written as

equation into (39) yields

0 0 

nonlinear optimization.

and the Stribeck curve.

zero at

**4.1 Nonlinear friction modeling** 

**e**

Thus

$$\mathbf{K}\_d(\dot{\mathbf{e}}) = \text{diag}\left(k\_{d1} \left| y\_1 \right|^{a\_2 - 1}, k\_{d2} \left| y\_2 \right|^{a\_2 - 1}\right) \tag{35}$$

where *pi k* , *di k* , *i* 1,2 are positive constant gains. The variables ,*i i x y* are determined by the following rules: if *<sup>i</sup>* <sup>1</sup> *e* , then *i i x e* , else *<sup>i</sup>* <sup>1</sup> *x* ; if *<sup>i</sup>* <sup>2</sup> *e* , then *i i y e* , else *<sup>i</sup>* <sup>2</sup> *y* . <sup>1</sup> , <sup>2</sup> , 1 , and 2 are the designed parameters which should be tuned in practice.

In the following, the asymptotic stability of the parallel manipulator system controlled by the NCT controller (32) will be proven.

**Theorem 2***:* If the nonlinear gains ( ) *<sup>p</sup>* **K** and ( ) *<sup>d</sup>* **K** are defined by (34) and (35) respectively, the parallel manipulator system controlled by the NCT controller (32) is asymptotically stable.

*Proof*: Choose the Lyapunov function candidate as

$$V(\mathbf{e}, \dot{\mathbf{e}}) = \frac{1}{2} \dot{\mathbf{e}}^T \dot{\mathbf{e}} + \int\_0^\mathbf{e} \left| \xi \right|^T K\_p(\xi) d\xi \tag{36}$$

where 1 2 1 11 1 2 22 2 0 0 ( ) ( ) ( ) *<sup>T</sup> e e pp p d kd kd* **<sup>e</sup> <sup>0</sup> <sup>ξ</sup> <sup>K</sup> ξ ξ** . Obviously, the first term in (36) is positive definite. In addition, the integral term can be interpreted as the potential energy induced by the position error-driven part of the controller. Next, one can prove that the second term in (36) is positive definite. Considering ( ) *pi i k e* is defined as

$$k\_{pi}(e\_i) = \begin{cases} k\_{pi} \left| e\_i \right|^{\alpha\_i - 1} \text{ /} \left| e\_i \right| > \delta\_1\\ k\_{pi} \delta\_i^{\alpha\_i - 1} \text{ /} \left| e\_i \right| \le \delta\_1 \end{cases} \tag{37}$$

and define class functions ( ) *<sup>i</sup>* as

$$\alpha\_i(\left|e\_i\right|) = \begin{cases} \left.\varepsilon\_i \left|e\_i\right|\right|^{\alpha\_i}, & \left|e\_i\right| > \delta\_1\\ \left.\varepsilon\_i \left|e\_i\right| \delta\_i^{\alpha\_i - 1}, & \left|e\_i\right| \le \delta\_1 \end{cases}, \text{ and } \left.k\_{pl} > \varepsilon\_i > 0\tag{38}$$

From (37) and (38), one knows () ( ) *<sup>i</sup> pii i i ek e e* . With the Lemma 2, one can get <sup>0</sup> () 0 *<sup>i</sup> i e T i pi i k d* , and 0 ( ) *<sup>T</sup> <sup>p</sup> <sup>d</sup>* **e Κ** as **e** . So one can get the integral term in (36) is a radically unbounded positive definite function. Thus *V*(,) **e e** is a positive definite function. Differentiating *V*(,) **e e** with respect to time yields

$$\dot{V}(\mathbf{e}, \dot{\mathbf{e}}) = \dot{\mathbf{e}}^T \ddot{\mathbf{e}} + \mathbf{e}^T \mathbf{K}\_p(\mathbf{e}) \dot{\mathbf{e}} \tag{39}$$

Combine the control law (32) and the dynamic model (10) and consider *<sup>T</sup>* **<sup>S</sup> τ τ** *a N* , the closed-loop system equation can be written as

$$\mathbf{M}\_e \left( \ddot{\mathbf{e}} + \mathbf{K}\_p(\cdot) \mathbf{e} + \mathbf{K}\_d(\cdot) \dot{\mathbf{e}} \right) = 0 \tag{40}$$

Since **M***e* is uniform positive definite, then <sup>1</sup> *<sup>e</sup>* **<sup>M</sup>** exists and bounded, thus the closed-loop system equation (40) can be written as

$$
\ddot{\mathbf{e}} + \mathbf{K}\_p(\cdot)\mathbf{e} + \mathbf{K}\_d(\cdot)\dot{\mathbf{e}} = 0 \tag{41}
$$

Multiplying both sides of the above equation by *<sup>T</sup>***e** , and then substituting the resulting equation into (39) yields

$$
\dot{V} = -\dot{\mathbf{e}}^T \mathbf{K}\_d(\cdot) \dot{\mathbf{e}} \tag{42}
$$

As ( ) *<sup>d</sup>* **<sup>K</sup>** is a symmetric, positive definite matrix, then *V* is a semi-negative definite matrix, thus the closed-loop system is stable. Considering the closed-loop equation (41) is autonomous system, and defining the region **Ω** as

$$\mathbf{Q} = \left\{ \begin{bmatrix} \mathbf{e} \\ \dot{\mathbf{e}} \end{bmatrix} \colon \dot{V}(\mathbf{e}, \dot{\mathbf{e}}) = 0 \right\} = \left\{ \begin{bmatrix} \mathbf{e} \\ \dot{\mathbf{e}} \end{bmatrix} = \begin{bmatrix} \mathbf{e} \\ 0 \end{bmatrix} \in \mathfrak{R}^4 \right\} \tag{43}$$

Thus 0 0 **e <sup>e</sup>** is the largest invariant set of : ( , ) 0 *<sup>V</sup>* **e Ω e e e** , and constitutes an

asymptotically stable equilibrium point. By using the LaSalle's theorem, one can get that the closed-loop system of the parallel manipulator is asymptotically stable.

#### **4. Nonlinear friction model and identification**

In this section, the friction compensation method based on a nonlinear friction model is developed for the parallel manipulator. This nonlinear friction model enables reconstruction of viscous, Coulomb, and Stribeck friction effects of the parallel manipulator. Identification experiments are carried out, and parameters in the nonlinear friction model are estimated by nonlinear optimization.

#### **4.1 Nonlinear friction modeling**

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

where ( ) **K e** *<sup>p</sup>* and ( ) **K e** *<sup>d</sup>* are symmetric, positive definite matrices of time-varying gains.

where *pi k* , *di k* , *i* 1,2 are positive constant gains. The variables ,*i i x y* are determined by the following rules: if *<sup>i</sup>* <sup>1</sup> *e* , then *i i x e* , else *<sup>i</sup>* <sup>1</sup> *x* ; if *<sup>i</sup>* <sup>2</sup> *e* , then *i i y e* , else *<sup>i</sup>* <sup>2</sup> *y* .

In the following, the asymptotic stability of the parallel manipulator system controlled by

**Theorem 2***:* If the nonlinear gains ( ) *<sup>p</sup>* **K** and ( ) *<sup>d</sup>* **K** are defined by (34) and (35) respectively, the parallel manipulator system controlled by the NCT controller (32) is asymptotically

> 0 <sup>1</sup> (,) ( ) <sup>2</sup> *<sup>T</sup> <sup>T</sup> <sup>V</sup> K d <sup>p</sup>* **e**

**<sup>0</sup> <sup>ξ</sup> <sup>K</sup> ξ ξ** . Obviously, the first term in (36) is positive definite. In addition, the integral term can be interpreted as the potential energy induced by the position error-driven part of the controller. Next, one can prove that the

1

*i i pi i i*

 

*ke e*

*k e*

*pi i i*

1

From (37) and (38), one knows () ( ) *<sup>i</sup> pii i i ek e e* . With the Lemma 2, one can get

(36) is a radically unbounded positive definite function. Thus *V*(,) **e e** is a positive definite

(,) ( ) *T T <sup>V</sup> <sup>p</sup>* **ee e e e K ee** (39)

Combine the control law (32) and the dynamic model (10) and consider *<sup>T</sup>* **<sup>S</sup> τ τ** *a N* , the

1

1

,

, ( )

1

*i i ii i*

 

*e e*

*ii i i*

*<sup>p</sup> <sup>d</sup>*

*e e*

,

1

1

**Κ** as **e** . So one can get the integral term in

**MeK eK e** *ep d* () () 0 (40)

<sup>1</sup> , <sup>2</sup> , 1 , and 2 are the designed parameters which should be tuned in practice.

1 1 1 1

2 2 1 1

11 22 ( ) , *p pp diag k x k x* **K e** (34)

11 22 ( ) , *d dd diag k y k y* **K e** (35)

**ee e e ξ ξξ** (36)

(37)

, and 0 *pi i k* (38)

From (15) and (16), ( ) **K e** *<sup>p</sup>* and ( ) **K e** *<sup>d</sup>* can be expressed as

the NCT controller (32) will be proven.

*Proof*: Choose the Lyapunov function candidate as

1 11 1 2 22 2 0 0 ( ) ( ) ( ) *<sup>T</sup> e e pp p d kd kd*

second term in (36) is positive definite. Considering ( ) *pi i k e* is defined as

*pi i*

*k e*

, ( )

*i i*

closed-loop system equation can be written as

*e*

**e**

function. Differentiating *V*(,) **e e** with respect to time yields

where 1 2

and define class functions ( ) *<sup>i</sup>* as

*i pi i k d* , and 0 ( ) *<sup>T</sup>*

stable.

**e**

<sup>0</sup> () 0 *<sup>i</sup> i*

*e T*

In order to reconstruct the nonlinear friction effect, the nonlinear friction model can be formulated as (Hensen et.al., 2000; Kostic et.al., 2004)

$$f(\dot{\Theta}) = B\_v \dot{\Theta} + \sum\_{k=1}^{3} f\_k(1 - \frac{2}{1 + e^{2\alpha\_k \dot{\Theta}}}), \quad k = 1, 2, 3\tag{44}$$

where the first term represents the viscous friction and *Bv* is the viscous friction coefficient. The other terms model the Coulomb and Stribeck friction effects. The parameters *kf* represent the magnitude of the Coulomb friction and the Stribeck curve. The parameters *<sup>k</sup>* determine the slope in the approximation of the sigmoid function in the Coulomb friction and the Stribeck curve.

Obviously, the nonlinear friction model is an odd continuous function. Since ( ) *f* is clearly zero at 0 , the model does not capture the static friction. The friction model does not describe stiction, because the system will always slide for an applied force unequal to zero. The stiction regime will be approximated, if the slope of the function near 0 is very steep. Then the model can still give acceptable simulation results, i.e., angular displacement during stiction is neglectable. On the other hand, a continuous friction function will facilitate the numerical solution if such a model is used in parameter identification.

In (44), there are three sigmoid functions. If more sigmoid functions are selected, the estimation accuracy with this model will be better, but the friction model will have more parameters and it will be more complicated. So for this nonlinear friction model, a suitable number of the sigmoid function is important. One can also analyze this problem with the neural network. The nonlinear terms in (44) can be constructed with a two layers neural network, i.e., one hidden layer and one output layer. Defining the weight matrices for the first and second layer as **W**1 and **W**<sup>2</sup> , the neural network output can be written as (Hensen et.al., 2000)

$$f'(\dot{\theta}) = \mathbf{W}\_2^T \sum (\mathbf{W}\_1 \dot{\theta} + b\_1) + b\_2 \tag{45}$$

Nonlinear Dynamic Control and Friction Compensation of Parallel Manipulators 243

Substituting the nonlinear friction model (46) into (47), one can define the optimization

The parameters *Bvi* , <sup>1</sup>*<sup>i</sup> f* , <sup>2</sup>*<sup>i</sup> f* , 1*<sup>i</sup>* , 2*<sup>i</sup>* , *<sup>i</sup> d* , and the proportion *k* , a total of 19 parameters, are selected as the optimization variables. These parameters will be estimated by making the optimization function *J* minimum. Parameter optimization procedures are programmed with Matlab, and the nonlinear optimization function *fmincon* finding a constrained minimum of a function of several variables is called for in Matlab. In order to use the *fmincon*, the first step is set the initial value, the lower limit value and the upper limit value of the 19 optimization variables. Then (48) is defined as the optimized function of *fmincon*. The third step is getting

*ai q* in our actual identification experiment. In actual identification experiment, the end-effector of the parallel manipulator is driven to track a circular trajectory. The center coordinates of the circle are (0.29,0.25) and radius is 0.07 , the unit is meter, this circle motion is repeated clockwise for 15 times. The parallel manipulator is controlled by the PD controller in the task space, the actuator torque is also

matrix *<sup>T</sup>* **S** . And this selection will make the control input used in the identification experiment minimum. For the parallel manipulator, only angles of the active joints can be measured directly by the absolute optical-electrical encoders. The angular velocity of the active joints is obtained by numerical differentiation of the active joint angles, and a lowpass filter is adopted to filter the angular velocity signal, then we will get the variable *<sup>j</sup>*

The angular acceleration of the joints is obtained by numerical differentiation of the filtered angular velocity. With the velocity and the acceleration of the joints, and considering the kinematics of the parallel manipulator, the actual velocity and acceleration of the endeffector can be obtained. Thus *<sup>j</sup> Di* can be calculated with these variables. With the actual

In order to compare with the nonlinear friction model, a common *Coulomb + viscous* friction model containing the viscous friction and Coulomb friction effect is established for the

where *ci f* represents the Coulomb friction; *vi f* represents the coefficient of the viscous

1 2 2 2 1 1

*q q j i J kD B q f f d e e*

*jj j*

joint in the *j*th configuration respectively. And *<sup>j</sup>*

*ai* , *<sup>j</sup> Di* , and *<sup>j</sup>*

space of the matrix *<sup>T</sup>* **S** , thus the actuator torque *<sup>j</sup>*

*ai* , *<sup>j</sup> Di* , and *<sup>j</sup>*

parallel manipulator. The friction model can be written as

friction; *<sup>i</sup> d* represents the zero drift of the motion control board.

are identified and results are shown in Table 1.

**4.3 Coulomb + viscous friction identification** 

*ai* , *<sup>j</sup> Di* , and *<sup>j</sup>*

the control input, thus *<sup>j</sup>*

values of the variable *<sup>j</sup>*

<sup>2</sup> <sup>3</sup>

*ai i vi i ai i i*

*ai* and *<sup>j</sup> Di* represent the actuator torque and the dynamic torque of the *i*th active

 (48)

2 2 ( ) ( (1 ) (1 ) )

1 1

function *J* as follows

where *<sup>j</sup>*

the variables *<sup>j</sup>*

variables *<sup>j</sup>*

*N*

joint in the *j*th configuration.

*a a* **D f** *k* **τ** (47)

1 2

*ai q* in (48). Next we will give the procedures about getting the

*ai* is a variable known. The control input is selected in the null-

*ai q* , the unknown parameters of the parallel manipulator

( ) *ai ai ci vi ai i f sign q f f q d* , 1,2.3 *i* (49)

*j j i i ai ai*

*ai q* represents the velocity of the *i*th active

*ai* in (48) is also in the null-space of the

*ai q* .

where *<sup>i</sup> <sup>b</sup>* represents the bias value for the neurons in the *i*-th layer and ( ) is a nonlinear operator with 123 ( ) [ ( ) ( ) ( )]*<sup>T</sup> xxxx* , the activation function 2 <sup>2</sup> () 1 <sup>1</sup> *<sup>x</sup> <sup>x</sup> e* . From (44), the parameter b1 and b2 are both zero. The weight matrix for the first layer and the second layer can be written as 1 123 [ ]*<sup>T</sup>* **W** and 2 123 [ ]*<sup>T</sup>* **W** *fff* respectively. As we known, increasing the number of the hidden neurons, the approximation performance with the network will be better. However, too many hidden neurons will make the network more complicated and the training time may be longer. In practice, suitable number of the hidden neurons should be selected. In order to model the nonlinear friction of the parallel manipulator, two hidden neurons are enough, that is to say two sigmoid functions will be selected.

If the friction of the passive joints is neglected, according to (44), one can define the nonlinear friction model for the 2-DOF planar parallel manipulator as follows

$$f\_{ai} = B\_{vi} \dot{q}\_{ai} + f\_{1i} (1 - \frac{2}{1 + e^{2\alpha\_{1i}\dot{q}\_{ai}}}) + f\_{2i} (1 - \frac{2}{1 + e^{2\alpha\_{2i}\dot{q}\_{ai}}}) + d\_i \ \ \ i = 1, 2, 3\tag{46}$$

where the first term represents the viscous friction and *Bvi* is the viscous friction coefficient of the *i*th active joint; *<sup>i</sup> d* represents the zero drift of the motion control board; the remaining terms model the Coulomb and Stribeck friction effects of the *i*th active joint. The parameter <sup>1</sup>*<sup>i</sup> f* and 2*<sup>i</sup> f* represent the magnitude of the Coulomb friction and the Stribeck curve. The parameters 1*<sup>i</sup>* and 2*<sup>i</sup>* determine the slope in the approximation of the sigmoid function in the Coulomb friction and the Stribeck curve.

#### **4.2 Nonlinear friction identification**

In the dynamic model Eq. (10), the dynamic parameters can be calculated directly, and only the parameters in the nonlinear friction model Eq. (46) need to be identified. In Eq. (10), the mass, length and joint angles all united into the standard units. The corresponding torque has the unit N.m. Since the commanded torque for the motion control board of the parallel manipulator is digital value, the proportion should be obtained between the torque of the unit N.m and the commanded digital value of the torque (Shang et.al., 2008). Defining the dynamic torque ( ) ( ) *<sup>T</sup> ee ee* **S Mq Cq D** and the proportion is *k* , the dynamic model Eq. (10) can be rewritten as

during stiction is neglectable. On the other hand, a continuous friction function will facilitate

In (44), there are three sigmoid functions. If more sigmoid functions are selected, the estimation accuracy with this model will be better, but the friction model will have more parameters and it will be more complicated. So for this nonlinear friction model, a suitable number of the sigmoid function is important. One can also analyze this problem with the neural network. The nonlinear terms in (44) can be constructed with a two layers neural network, i.e., one hidden layer and one output layer. Defining the weight matrices for the first and second layer as **W**1 and **W**<sup>2</sup> , the neural network output can be written as (Hensen

where *<sup>i</sup> <sup>b</sup>* represents the bias value for the neurons in the *i*-th layer and ( ) is a nonlinear

(44), the parameter b1 and b2 are both zero. The weight matrix for the first layer and the second layer can be written as 1 123 [ ]*<sup>T</sup>* **W** and 2 123 [ ]*<sup>T</sup>* **W** *fff* respectively. As we known, increasing the number of the hidden neurons, the approximation performance with the network will be better. However, too many hidden neurons will make the network more complicated and the training time may be longer. In practice, suitable number of the hidden neurons should be selected. In order to model the nonlinear friction of the parallel manipulator, two hidden neurons are enough, that is to say two sigmoid functions will be

If the friction of the passive joints is neglected, according to (44), one can define the

where the first term represents the viscous friction and *Bvi* is the viscous friction coefficient of the *i*th active joint; *<sup>i</sup> d* represents the zero drift of the motion control board; the remaining terms model the Coulomb and Stribeck friction effects of the *i*th active joint. The parameter <sup>1</sup>*<sup>i</sup> f* and 2*<sup>i</sup> f* represent the magnitude of the Coulomb friction and the Stribeck curve. The parameters 1*<sup>i</sup>* and 2*<sup>i</sup>* determine the slope in the approximation of the sigmoid function in

In the dynamic model Eq. (10), the dynamic parameters can be calculated directly, and only the parameters in the nonlinear friction model Eq. (46) need to be identified. In Eq. (10), the mass, length and joint angles all united into the standard units. The corresponding torque has the unit N.m. Since the commanded torque for the motion control board of the parallel manipulator is digital value, the proportion should be obtained between the torque of the unit N.m and the commanded digital value of the torque (Shang et.al., 2008). Defining the

, 1,2,3 *<sup>i</sup>* (46)

**S Mq Cq D** and the proportion is *k* , the dynamic model Eq.

1 2 1 2 2 2 2 2 (1 ) (1 ) 1 1 *i ai i ai ai vi ai i q q <sup>i</sup> <sup>i</sup> <sup>f</sup> Bq f <sup>f</sup> <sup>d</sup> e e*

nonlinear friction model for the 2-DOF planar parallel manipulator as follows

the Coulomb friction and the Stribeck curve.

**4.2 Nonlinear friction identification** 

dynamic torque ( ) ( ) *<sup>T</sup>*

(10) can be rewritten as

*ee ee*

operator with 123 ( ) [ ( ) ( ) ( )]*<sup>T</sup> xxxx* , the activation function 2

2 112 () ( ) *<sup>T</sup> <sup>f</sup>* **W W <sup>θ</sup>** *b b* (45)

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

*e*

. From

the numerical solution if such a model is used in parameter identification.

et.al., 2000)

selected.

$$\mathbf{D} \cdot k + \mathbf{f}\_a = \mathbf{r}\_a \tag{47}$$

Substituting the nonlinear friction model (46) into (47), one can define the optimization function *J* as follows

$$J = \sum\_{j=1}^{N} \sum\_{i=1}^{3} \left( \pi\_{ai}^{j} - k(D\_i^{j}) - (B\_{vi}\dot{q}\_{ai}^{j} + f\_{1i}(1 - \frac{2}{1 + e^{2\alpha\_{1}\dot{q}\_{ai}^{j}}}) + f\_{2i}(1 - \frac{2}{1 + e^{2\alpha\_{2}\dot{q}\_{ai}^{j}}}) + d\_{i} \right)^{2} \tag{48}$$

where *<sup>j</sup> ai* and *<sup>j</sup> Di* represent the actuator torque and the dynamic torque of the *i*th active joint in the *j*th configuration respectively. And *<sup>j</sup> ai q* represents the velocity of the *i*th active joint in the *j*th configuration.

The parameters *Bvi* , <sup>1</sup>*<sup>i</sup> f* , <sup>2</sup>*<sup>i</sup> f* , 1*<sup>i</sup>* , 2*<sup>i</sup>* , *<sup>i</sup> d* , and the proportion *k* , a total of 19 parameters, are selected as the optimization variables. These parameters will be estimated by making the optimization function *J* minimum. Parameter optimization procedures are programmed with Matlab, and the nonlinear optimization function *fmincon* finding a constrained minimum of a function of several variables is called for in Matlab. In order to use the *fmincon*, the first step is set the initial value, the lower limit value and the upper limit value of the 19 optimization variables. Then (48) is defined as the optimized function of *fmincon*. The third step is getting the variables *<sup>j</sup> ai* , *<sup>j</sup> Di* , and *<sup>j</sup> ai q* in (48). Next we will give the procedures about getting the variables *<sup>j</sup> ai* , *<sup>j</sup> Di* , and *<sup>j</sup> ai q* in our actual identification experiment.

In actual identification experiment, the end-effector of the parallel manipulator is driven to track a circular trajectory. The center coordinates of the circle are (0.29,0.25) and radius is 0.07 , the unit is meter, this circle motion is repeated clockwise for 15 times. The parallel manipulator is controlled by the PD controller in the task space, the actuator torque is also the control input, thus *<sup>j</sup> ai* is a variable known. The control input is selected in the nullspace of the matrix *<sup>T</sup>* **S** , thus the actuator torque *<sup>j</sup> ai* in (48) is also in the null-space of the matrix *<sup>T</sup>* **S** . And this selection will make the control input used in the identification experiment minimum. For the parallel manipulator, only angles of the active joints can be measured directly by the absolute optical-electrical encoders. The angular velocity of the active joints is obtained by numerical differentiation of the active joint angles, and a lowpass filter is adopted to filter the angular velocity signal, then we will get the variable *<sup>j</sup> ai q* . The angular acceleration of the joints is obtained by numerical differentiation of the filtered angular velocity. With the velocity and the acceleration of the joints, and considering the kinematics of the parallel manipulator, the actual velocity and acceleration of the endeffector can be obtained. Thus *<sup>j</sup> Di* can be calculated with these variables. With the actual values of the variable *<sup>j</sup> ai* , *<sup>j</sup> Di* , and *<sup>j</sup> ai q* , the unknown parameters of the parallel manipulator are identified and results are shown in Table 1.

#### **4.3 Coulomb + viscous friction identification**

In order to compare with the nonlinear friction model, a common *Coulomb + viscous* friction model containing the viscous friction and Coulomb friction effect is established for the parallel manipulator. The friction model can be written as

$$f\_{ai} = \text{sign}(\dot{q}\_{ai})f\_{ci} + f\_{vi}\dot{q}\_{ai} + d\_i \ . \ \text{i} = 1 \ \text{2.3} \tag{49}$$

where *ci f* represents the Coulomb friction; *vi f* represents the coefficient of the viscous friction; *<sup>i</sup> d* represents the zero drift of the motion control board.

Nonlinear Dynamic Control and Friction Compensation of Parallel Manipulators 245

three permanent magnet synchronous servo motors with harmonic gear drives. The active joint angles are measured with absolute optical-electrical encoders. The nonlinear dynamic controllers and the friction compensation method are programmed with the Visual C++, and the algorithms run on a Pentium III CPU at 733MHz. with the sampling period 2ms.

Fig. 2. The prototype of the 2-DOF parallel manipulator with redundant actuation

The trajectory tracking control experiment is designed for the parallel manipulator to validate the ANPD controller. The desired trajectory of the end-effector is a straight line, the starting point is (0.22, 0.29) and the ending point is (0.37, 0.21), thus the motion distance is 0.17m. The profile of the desired velocity is an S-type curve (Cheng et.al., 2003). In the experiment, the low-speed and high-speed motions are both tested. For the low-speed motion, the max velocity is 0.2m/s, the max acceleration is 5m/s2, and the jerk is 200m/s3. For the high-speed motion, the max velocity is 0.5m/s, the max acceleration is 10m/s2, and

In order to implement the ANPD controller (17), the dynamic parameters in (18.a) and the friction parameters in (18.b) must be known. In the experiment, the nominal values of the dynamic parameters are used (Shang et.al., 2008). Then, with the known dynamic parameters, the friction parameters in the *Coulomb + viscous* friction model can be identified by the Least Squares method, as shown in Table 2. In fact, the control parameters in (18.c) are tuned and determined by the actual experiments. The procedures to tune the control

1. Assume *ppp* 1 2 *kkk* , *ddd* 1 2 *kkk* . Let 0 *<sup>d</sup> k* , 1 1 , 2 1 , and increase the value

2. Keep the value of *<sup>p</sup> k* tuned well in the first stage, and increase the value of *<sup>d</sup> k* to

4. Find the maximum error and error rate of the end-effector under the tuned value of *<sup>p</sup> k*

5. In the ANPD controller, 1 and 2 are the threshold of the error and the error rate. If <sup>1</sup> is tuned bigger than the maximum error, then the proportional gain ( ) *<sup>p</sup> <sup>i</sup> k e* will

*<sup>p</sup>* <sup>1</sup> *<sup>k</sup>* ; and 1 is tuned close to 0, then ( ) *<sup>p</sup> <sup>i</sup> k e* will always equal to 1 <sup>1</sup> *p i k e* . So, 1 should be made a tradeoff between the maximum error and 0 error. Similar method can be used to tune parameter <sup>2</sup> . From our actual experiences, the

of *<sup>p</sup> k* from zero until the system show a little oscillation to some extent.

3. Regulate finely the above two values and make tradeoffs between *<sup>p</sup> k* and *<sup>d</sup> k* .

**5.1 Experiments of the ANPD controller** 

parameters in (18.c) can be summarized as follows:

improve the dynamic performance further.

the jerk is 400m/s3.

and *<sup>d</sup> k* .

always equals to 1 <sup>1</sup>


Table 1. Identification results of the nonlinear friction model.

With the analysis of the identification of the nonlinear friction model, the corresponding work of the *Coulomb + viscous* friction model is much simpler. Substituting the *Coulomb + viscous* friction model (49) into (47), one can get a linear equation about the identified parameters as follows

$$\begin{bmatrix} \mathbf{D} & \mathbf{K} \end{bmatrix} \begin{bmatrix} k & f\_{v1} & f\_{v2} & f\_{v3} & d\_1 + f\_{c1} & d\_1 - f\_{c1} & d\_2 + f\_{c2} & d\_2 - f\_{c2} & d\_3 + f\_{c3} & d\_3 - f\_{c3} \end{bmatrix}^T = \mathbf{r}\_a \tag{50}$$

where


For simplicity, parameter combinations *i ci d f* and *i ci d f* are viewed as identified parameters, and the coefficients *ui* and *li* of the parameters are determined by the following rules: 1, 0 *u l i i* when 0 *ai q* , and 0, 1 *u l i i* when 0 *ai q* .

There are 10 parameters to be identified in Eq. (50), but only three independent equations can be got for each sampling point. So a group of linear equations about the unknown parameters can be got with the sampling data of a continuous trajectory, then the Least Squares method is used to identify the unknown parameters.

The identification experiment designed for the *Coulomb + viscous* friction model is the same with the nonlinear friction model discussed in section 4.2. Identification results of the *Coulomb + viscous* friction model are shown in Table 2.


Table 2. Identification results of the *Coulomb + viscous* friction model
