1 Introduction

This paper studies the 6PUS-UPU Parallel robot with redundant actuation. Generally speaking, the parallel robot provides better accuracy, higher rigidity, and higher speed than the serial robot. Redundant actuation as an effective solution is introduced into parallel manipulator to avoid singularities. Redundant actuation can improve global performance, extend workspace, promote mechanism stiffness, and optimize driving force [1]. Redundant actuation branch only influences forces state, and it cannot change the original kinestate [2]. In recent years, redundant actuation parallel manipulator has been studied by many researchers [38]. The recent research results about redundancy driven parallel robot are mainly focused on mechanism design of the redundant parallel robot [9] and overcoming workspace singularity points [10]. The key question for Redundant parallel robots is that parallel robot needs a high machining precision for mechanism components, which requires a high control precision for control system. Control has become the key technology and difficulty for parallel robot with redundant actuation. However, seldom research work on the control strategy of parallel robot with redundant actuation has been done in recent years, which to some extent limits the operation of the redundant parallel robot and high precision, high quality, and real-time improvement in the process of production. The research work in the study of the existing literature control parallel robot system theory is mainly focused on three aspects: (a) The kinematics control method of parallel robot [11], but this kind of control strategy without considering the dynamic characteristics of the parallel mechanism and strong coupling, nonlinear can be only used in the places where speed and accuracy is not high. (b) Parallel robot dynamics control method based on dynamic model [12], but this method requires to build more accurate kinetic model. (c) Nonlinear position control of parallel robot control system [13], variable structure, adaptive control method, neural network, and fuzzy nonlinear control method are applied to solve parameter uncertainty of the position control problem of the parallel robot system.

Some achievements have been made for the control of redundant parallel robot system, but it is difficult to implement for the control of redundant drive. Because the input number of redundancy driven parallel robot is more than the number of degrees of freedom, the error in the processing, assembly or movement will make the machine force deformation which will cause the machine to suffocate or even destroy the real machine [14] if all inputs are used in position control mode. If all the actuators are force control mode, this requires accurate dynamics model [12]. However in reality it is difficult to obtain accurate parameters of robot dynamics (such as friction coefficient), especially for complex spatial multi-DOF robot, such as the 6-PUS/UPU parallel robot with five degrees of freedom developed by Yanshan University team. The dynamics expression is very complex and needs a large amount of calculation which is not easy to achieve real-time control. So it is necessary to use force/position hybrid control strategy for complex spatial multi-DOF redundantly actuated parallel robot [15]. The hybrid force/position control means redundant actuator (multi-DOF actuator) control mode is force control, while the other actuators are the position control mode. The position control ensures the pose accuracy of the moving platform. Redundant drive force control adjusts the allocation of all drive torque, and achieves coordinated control between position control and force control.

The input number of redundant drive parallel robot is more than its degree of freedom. If all inputs use position control mode, the error of parallel robot in the processing, assembling, or exercise will make parallel robot produce strong deformation. The deformation is so big that parallel robot cannot move, even destroyed [6]. In the case of the high performance of mechanism, mechanism dynamics must be analyzed. If all the actuators use force control mode, the accurate dynamics model must be required [7]. But it is difficult to obtain accurate dynamic parameter, especially for the complex multi-degree of freedom parallel robot. Dynamics expression is very complex, and the amount of computation required is very large, which is not easy to realize real-time control. So force/position hybrid control strategy is appropriate to the complex multi-degree of freedom redundant parallel robot [8]. In the force/ position hybrid control structure, the redundant actuator (more than the degree of freedom) uses the force control mode, while the other actuators use position control mode. Position control ensures the accuracy of the position of the moving platform, and the force control of redundant drive adjusts the distribution of all the actuated torque. So the proposed control structure in this paper can realize the coordinated control of position control and force control [8].

In this paper, the first to the fifth branch of the 6PUS-UPU parallel robot use the position control, which can ensure the robot achieves the position accuracy quickly. The sixth branch uses the force control structure as the driven redundant branch. The driven redundant cannot change the motion path of the moving platform, and its essence is the redundancy of the force. After the introduction of the redundant branch, the input force of the redundant branch can be used to the active stiffness control and the force optimization, so as to adjust the influence of nonlinear and strong coupling on the performance of the system, balance the internal force, and improve the motion accuracy of the moving platform. Therefore, the addition of redundant branch will not destroy the stability of the system, and it will make the movement more accurate and more stable.

For the 6PUS-UPU parallel robot, the main problem is that the force of each branch is not balanced, which will produce a large internal force. The internal force will affect the motion accuracy of the moving platform, and even can damage the mechanical structure. So the purpose of driving force optimized of the 6PUS-UPU parallel robot is to make the force of each branch balance, reduce the internal force, and improve the accuracy of machine tools. 6PUS-UPU parallel robot is 5 degrees of freedom but has 6 input driving forces. Therefore, the driving force of the machine has an infinite number of solutions in any motion state theoretically, which makes it possible for improving the force of each branch and optimizing the driving force. In the force/position hybrid control structure, the input of the position control branch is the displacement of the slider, which makes the movable platform move according to the predetermined trajectory. The input of the force control branch is the theoretical force, which can optimize the driving force. So the design of the controller is mainly aimed at the force branch. When a controller is designed in the force branch, we can control the output of the redundant force branch by the feedback of the pose of the movable platform. We make the fuzzy model as the feedback loop between the movable platform and the force branch, and the relationship of them is deepened. Then, we can optimize the driving force of the other five branches, reduce the internal force, and improve the overall performance of the system.

Parallel is a nonlinear MIMO systems, which has a time-varying, strong coupling and nonlinear dynamics characteristics. The mathematical model is the basis for robot control. However, due to the diversity of their own robot dynamics complexity of the system and its working environment, the robot is difficult to get an accurate mathematical model. However, there exist uncertain nonlinear system problems because of the multiple-input–multiple-output (MIMO) characteristic of the parallel robot and strong coupling between each branch of the parallel robot. It is a challenging problem to identity the nonlinear parallel robot.

Recently, fuzzy control techniques have been a powerful tool to deal with uncertain nonlinear systems. The cybernetics expert Professor L.A. Zadeh of American University of California created a fuzzy mathematics history since he proposed the ”Fuzzy Set” in 1965 [16]. It has attracted many scholars to conduct research on the development of theories and methodologies, which is increasingly and widely used in various fields of natural science and social science. The application of fuzzy logic in control field began in 1973 [17]. Britain’s E. H. Mamdani applied the fuzzy control to the boiler and the steam engine control successfully in 1974. After that, fuzzy control has been successfully applied in many fields [18]. Fuzzy systems can interact, extract linguistic information from input–output data, and describe the dynamics of the system in local regions described by the rules [19]. These features are very valuable. Fuzzy models have many successful applications [20, 21], and are different from other traditional black-box techniques.

Fuzzy models used to model and function approximation have been studied extensively in recent years [2229] . Among different fuzzy models, the Takagi-Sugeno (T–S) modeling approach is the most attractive because of its desirable system parametric and structural modeling properties [3033]. T–S fuzzy model is proposed as a fuzzy model identification method of a dynamic system by Japan’s Takagi and Sugeno in 1985, which is often used for identification, but also can be used for the control [34, 35]. T–S fuzzy model can primely model the nonlinear system using local sub-models in the form of linear dynamic equation. It is easy to analyze and design the controller by using the modern control theory. Multi-input multi-output system can be simplified into a plurality of multi-input single-output system. The control techniques based on the T–S fuzzy model are developed for nonlinear systems [3644]. The authors of [45] proposed a interconnected T–S fuzzy technique for nonlinear time-delay structural systems. The authors of [46] proposed a robust adaptive sliding mode control of MEMS gyroscope using T–S fuzzy model. The authors of [47] proposed a novel approach to filter design for T–S fuzzy discrete-time systems with time-varying delay.

In the context of this paper, the nonlinear 5-DOF spatial redundant actuation parallel robot is approximated by a T–S fuzzy model. 6PUS-UPU redundant actuation parallel robot using the hybrid control of force and position consists of movable platform, a fixed platform, a constraint branch, six actuators which connect the movable platform with fixed platform. It is well recognized that time delays exist universally in practical systems. In reality, plants may have the delay from the input to the output which influences the performance of the output. Our paper develops a Smith predictor to compensate the delay based on the complex force/position hybrid control scheme.

The paper is organized as follows. In Sect. 2, we analyze the dynamics of 6PUS-UPU redundant actuation parallel robot, and obtain the dynamic by KANE method. In Sect. 3, we build the T–S fuzzy model and identify the dynamic model. In Sect. 4, based on the results of the fuzzy identification, we design a PI controller of the redundant branch. In Sect. 5, we develop a Smith predictor to compensate the delay based on the complex force/position hybrid control scheme. Section 6 shows the simulation results. Section 7 is the conclusion of this paper.

2 Dynamics Modeling

On the basis of the results of the reference [48], the process of dynamics modeling will be introduced in this part. The modeling process includes analysis of velocity, angular velocity, and model of 6PUS-UPU redundant actuation parallel robot using KANE method [49].

2.1 Velocity Analysis

Fig. 1
figure 1

The architecture of 6PUS-UPU redundant actuation parallel robot. a 6PUS-UPU model, b 6PUS-UPU coordinate system

6PUS-UPU redundant actuation parallel robot consists of movable platform, a fixed platform, six actuators which connect the movable platform and fixed platform, and a constraint branch. The six actuators connect the movable platform and fixed platform through prismatic pair (p), universal joint (u), and spherical hinge (s). The constraint branch connects the two platforms through universal joint (u). Figure 1 shows the architecture of 6PUS-UPU redundant actuation parallel robot. As we can see from Fig.1b, the origin of fixed coordinate system is \({O_A}\), and \({O_B}\) is the origin of the movable coordinate. \({X_A},{Y_A},{Z_A}\) are the coordinates of fixed coordinate system, \({X_B},{Y_B},{Z_B}\) are the coordinates of movable coordinate system. \({F_{qi}}(i = 1,2,\cdots 6)\) is the force of six branches. The hinge point between the upper connecting rod of the middle branch and the fixed platform is \({A_7}\), the hinge point between the lower connecting rod and the movable platform is \({B_7}\). \({A_5}\) is the connecting point of connecting rod and fifth branch, \({B_5}\) is the connecting point of connecting rod and movable platform. \({F_z}\) is the constraint of the middle branch for the moving platform. F and M are the external force and torque, respectively. Figure 2 shows the universal joint and spherical hinge distribution diagram.

In this paper, six pose parameters of the moving coordinate system are selected in the fixed coordinates as the generalized coordinates, which are expressed as \({\varvec{q}} = {[x,y,z,\alpha ,\beta ,\gamma ]^T}\). \({[\alpha ,\beta ,\gamma ]^T}\)is the Euler angels. \(\dot{{\varvec{q}}}\) and \(\ddot{{\varvec{q}}}\) are the velocity and accelerate vectors of the movable platform, respectively. The movable platform velocity vector in the Cartesian coordinate system can be shown as the following Eq. (1).

$$({{\varvec{v}}_d},{{\varvec{w}}_d}) = (\dot{x} ,\dot{y} ,\dot{z} ,{}^A{w_{Bx}},{}^A{w_{By}},{}^A{w_{Bz}}),$$
(1)

The transforming relationship between the two coordinate systems can be expressed as follows.

$$({{\varvec{v}}_d},{{\varvec{w}}_d})^T = {J_D}\dot{{\varvec{q}}} ,$$
(2)

where \({{\varvec{J}}_D} = \left[ {\begin{array}{ll} {{{\varvec{I}}_{3 \times 3}}}&\quad {{{\varvec{O}}_{3 \times 3}}}\\ {{{\varvec{O}}_{3 \times 3}}}&\quad {{{\varvec{J}}_d}} \end{array}} \right] , {{\varvec{J}}_d} = \left[ {\begin{array}{lll} 1&\quad 0&\quad {s\beta }\\ 0&\quad {c\alpha }&\quad { - s\alpha }\\ 0&\quad {s\alpha }&\quad {c\alpha c\beta } \end{array}} \right] .\) \({{\varvec{v}}_d}\) is the linear velocity and \({\varvec{w}}_d\) is the angular velocity.

We can obtain Eq. (3) from Fig. 2.

Fig. 2
figure 2

Distribution diagram of joint of 6PUS-UPU. a Spherical hinge distribution diagram, b universal joint distribution diagram

$${{\varvec{L}}_i} = {{\varvec{B}}_i} - {{\varvec{A}}_i},\quad (i = 1,2, \cdots 6),$$
(3)

where \({{\varvec{B}}_i}\) is the coordinate in the movable coordinate system, \({{\varvec{B}}_i} = {\varvec{P}}{\mathrm{{ + }}^A}{{\varvec{R}}_B}{{\varvec{r}}_{Bi}},(i = 1,2, \cdots 6)\), \(\varvec{P}\) is the center \({{\varvec{O}}_B}\) of the movable platform, \(^A{{\varvec{R}}_B}\) is the transmission matrix of moving coordinate system in fixed coordinate system, \({{\varvec{r}}_{Bi}}\) is the location vector of \({B_i}\) in the movable coordinate system, and \({{\varvec{A}}_i}\) is the coordinate in the fixed coordinate system.

Without consideration the elastic deformation, the length of the link is a constant L. Then we can obtain the following Eq. (4) [48].

$${L^2} = {({B_{ix}} - {A_{ix}})^2} + {({B_{iy}} - {A_{iy}})^2} + {({B_{iz}} - {A_{iz}})^2},i = 1,2, \cdots 6\,$$
(4)

We take the derivative of this equation, then we can get Eq. (5).

$$\dot{{\varvec{A}}}_{{iz}} = \Bigg(\frac{{({\varvec{B}}_{{ix}} - {\varvec{A}}_{{ix}} )\partial {\varvec{B}}_{{ix}} }}{{({\varvec{B}}_{{iz}} - {\varvec{A}}_{{iz}} )\partial {\varvec{q}}}} + \frac{{({\varvec{B}}_{{iy}} - {\varvec{A}}_{{iy}} )\partial {\varvec{B}}_{{iy}} }}{{({\varvec{B}}_{{iz}} - {\varvec{A}}_{{iz}} )\partial {\varvec{q}}}} + \frac{{\partial {\varvec{B}}_{{iz}} }}{{\partial {\varvec{q}}}}\Bigg)\dot{{\varvec{q}}} = {\varvec{J}}_{{Hi}} \dot{{\varvec{q}}},$$
(5)

where \(i = 1,2, \cdots 6\).

We know the velocity of each slider is identical to the velocity \({A_i}\) based on the features of this machine. We suppose the velocity of each slider along z axis is \(\dot{{\varvec{l}}}_i\), then \(\dot{{\varvec{l}}}_i=\dot{{\varvec{A}}}_{iz}={\varvec{J}}_{Hi}\dot{{\varvec{q}}},i = 1,2, \cdots 6.\)

The velocity of the slider in the fixed coordinate system can be expressed as the following Eq. (6).

$${\varvec{v}}_{{Hi}} = \left[ {\begin{array}{ll} {{\varvec{O}}_{{1 \times 6}} } \hfill \\ {{\varvec{O}}_{{1 \times 6}} } \hfill \\ {{\varvec{J}}_{{Hi}} } \hfill \\ \end{array} } \right] \cdot \dot{{\varvec{q}}},\quad i = 1,2, \cdots 6$$
(6)

The velocity of \({B_i}\) is

$${{\varvec{v}}_{Bi}} = {{\varvec{v}}_d} + {{\varvec{w}}_d} \times {{\varvec{r}}_{Bi}} = {{\varvec{v}}_{Hi}} + {{\varvec{w}}_{Li}} \times {{\varvec{n}}_i}{\varvec{L}},$$
(7)

where \({{\varvec{r}}_{Bi}}\,=\,^A{{\varvec{R}}_B}{{\varvec{r}}_{Bi}}\) is the position vector of the hinge point \({B_i}\) in the fixed coordinate system, \({w_{Li}}\) is the angular velocity of the link, \({n_i} = ({B_i} - {A_i})/L\) is the unit vector of the link. By the Eq. (6) and \({n_i}\), we can get the angular velocity of the link which is

$${{\varvec{w}}_{Li}} = \frac{{{{\varvec{n}}_i} \times ({{\varvec{v}}_d} + {{\varvec{w}}_d} \times {{\varvec{r}}_{Bi}} - {{\varvec{v}}_{Hi}})}}{{\varvec{L}}}$$
(8)

So the linear velocity of the centroid of the link is shown in Eq. (9).

$${{\varvec{v}}_{Li}} = {{\varvec{v}}_{Hi}} + {{\varvec{w}}_{Li}} \times {{\varvec{n}}_i} \cdot \frac{{\varvec{L}}}{2}$$
(9)

We write the hinge point between movable platform and the middle constraint (UPU) branch as \({B_7}\), then using the movement of movable platform, the velocity of \({B_7}\) can be shown as Eq. (10).

$${{\varvec{v}}_{B7}} = {{\varvec{v}}_d} + {{\varvec{w}}_d} \times {{\varvec{r}}_{B7}}$$
(10)

Using the movement of the middle constraint (UPU) branch, the velocity of \({B_7}\) can be shown as Eq. (11).

$${{\varvec{v}}_{B7}} = {\dot{{\varvec{l}}}_z}{\varvec{s}} + {{\varvec{w}}_{Lz}} \times {{\varvec{L}}_z},$$
(11)

where \({{\varvec{r}}_{B7}}\,=\,^A{{\varvec{R}}_B}{{\varvec{r}}_{B7}}\) is the position vector of the hinge point \({B_7}\) in the fixed coordinate system, \({{\varvec{L}}_z}\) is the vector of the middle branch, \({{\varvec{L}}_z}={{\varvec{B}}_7}-{{\varvec{A}}_7}\), \({l_z} = \sqrt{{{({B_{7x}} - {A_{7x}})}^2} + {{({B_{7y}} - {A_{7y}})}^2} + {{({B_{7z}} - {A_{7z}})}^2}}\) is the length of the middle branch, \({\varvec{s}}\) is the unit vector of the middle branch, \({\varvec{s}} = {\varvec{{L}}_z} / {{l_z}}\); \({{\varvec{w}}_{Lz}}\) is the angular velocity of the middle branch, which is shown as Eq. (12).

$${{\varvec{w}}_{Lz}} = \frac{{{\varvec{s}} \times ({{\varvec{v}}_d} + {{\varvec{w}}_d} \times {{\varvec{r}}_{B7}})}}{{{l_z}}}$$
(12)

So we can obtain the velocity of the centroid of the upper and lower link of the middle constraint (UPU) branch, which can be expressed as the following Eqs. (13 and 14).

$${{\varvec{v}}_{zu}} = {{\varvec{w}}_{Lz}} \times {\varvec{s}}{l_u}$$
(13)
$${{\varvec{v}}_{zl}} ={\dot{{\varvec{l}}}_z}{\varvec{s}}+ {{\varvec{w}}_{Lz}} \times {\varvec{s}}({l_z} - {l_l}),$$
(14)

where \({l_u}\) is the distance between the hinge point of the fixed platform and the centroid of the upper link, \({l_l}\) is the distance between the hinge point of the moving platform and the centroid of the lower link, \({\dot{{\varvec{l}}}_z}\) is the velocity of relative movement, \({\dot{{\varvec{l}}}_z} = {{\varvec{v}}_{B7}}{\varvec{s}}\).

2.2 Partial Velocity and Angular Velocity Analysis

According to the definition of partial velocity and angular velocity, we can get the partial velocity and angular velocity of the movable platform as the following Eq. (15) [48].

$$\left\{ {\begin{array}{ll} {{\varvec{v}}_{d}^{*} = } & {\left[ {{\varvec{I}}_{3} \,{\varvec{O}}_{3} } \right]} \\ {{\varvec{w}}_{d}^{*} = } & {\left[ {{\varvec{O}}_{3} \,{\varvec{J}}_{d} } \right]} \\ \end{array} } \right.$$
(15)

The partial velocity of the slider is shown in Eq. (16).

$${\varvec{v}}_{Hi}^ * = \left[ {{{\varvec{O}}_{1 \times 6}};{{\varvec{O}}_{1 \times 6}};{{\varvec{J}}_{Hi}}} \right]$$
(16)

The partial velocity and angular velocity of the link can be expressed as Eqs. (17 and 18).

$${{\varvec{v}}_{Li}^* = {\varvec{v}}_{Hi}^* + {\varvec{w}}_{Li}^* \times {{\varvec{n}}_i} \cdot \frac{{\varvec{L}}}{2}}$$
(17)
$${{\varvec{w}}_{Li}^* = \frac{{{{\varvec{n}}_i} \times ({\varvec{v}}_d^* + {\varvec{w}}_d^* \times {{\varvec{r}}_{Bi}} - {\varvec{v}}_{Hi}^*)}}{{\varvec{L}}}}$$
(18)

The partial velocity and angular velocity of the middle constraint (UPU) branch can be expressed as Eqs. (19 and 20).

$$\left\{ {\begin{array}{ll} {{\varvec{v}}_{{zu}}^{*} = {\varvec{w}}_{{Lz}}^{*} \times {\varvec{s}}l_{u} } \hfill \\ {{\varvec{v}}_{{zd}}^{*} = {\varvec{s}}\dot{l}_{z}^{*} + {\varvec{w}}_{{iz}}^{*} \times {\varvec{s}}(l_{z} - l_{d} )} \hfill \\ \end{array} } \right.$$
(19)
$${\varvec{w}}_{Lz}^ * = \frac{{{\varvec{s}} \times ({\varvec{v}}_d^ * + {\varvec{w}}_d^ * \times {{\varvec{r}}_{B7}})}}{{{l_z}}},$$
(20)

where \(\dot{{\varvec{l}}}_z^ * ={{\varvec{s}}^T} \cdot ({\varvec{v}}_d^ * + {\varvec{w}}_d^ * \times {{\varvec{r}}_{B7}})\) is the partial velocity of \(\dot{{\varvec{l}}}_z\).

2.3 Acceleration Analysis

The linear acceleration of the movable platform is shown in the Eq. (21).

$${{\varvec{a}}_d} = {\varvec{v}}_d^ * \cdot \ddot{{\varvec{q}}}$$
(21)

The angular acceleration of the movable platform can be expressed as Eq. (22).

$${\varepsilon }_d={\varvec{w}}_d^ * \cdot \ddot{{\varvec{q}}}+\left[ {\begin{array}{ll} {{{\varvec{O}}_{3 \times 3}}}&{\frac{{d{{\varvec{J}}_d}}}{{dt}}} \end{array}} \right] \cdot \dot{{\varvec{q}}}$$
(22)

The linear acceleration of the slider is shown in Eq. (23).

$${{\varvec{a}}_{Hi}} = {\left[ {\begin{array}{lll} 0&0&\ddot{{\varvec{l}}}_{Hi} \end{array}} \right] ^T},$$
(23)

where \(\ddot{{\varvec{l}}}_{Hi}={\dot{{\varvec{J}}}_{Hi}}\dot{{\varvec{q}}}+{{\varvec{J}}_{Hi}}\ddot{{\varvec{q}}}\). Using the movement of the moving platform and the movement of each drive branch, the acceleration of \(B_i\) can be expressed as Eq. (24).

$$\left\{ {\begin{aligned} &{{{\varvec{a}}_{Bi}} = {{\varvec{a}}_d} + {{\varepsilon } _{d}} \times {{\varvec{r}}_{Bi}} + {{\varvec{w}}_d} \times ({{\varvec{w}}_d} \times {{\varvec{r}}_{Bi}})},\\ &{{{\varvec{a}}_{Bi}} = {{\varvec{a}}_{Hi}}{\mathrm{{ + }}}{\varvec{\varepsilon } _{Li}} \times {{\varvec{n}}_i}{\varvec{L}} + {{\varvec{w}}_{Li}} \times ({{\varvec{w}}_{Li}} \times {{\varvec{n}}_i}{\varvec{L}})}, \end{aligned}} \right.$$
(24)

where \({{\varepsilon } _{Li}}\) is the angular acceleration of each drive branch link, \({{\varepsilon } _{Li}}=\ ^{{\varvec{n}}_i \times ({{\varvec{a}}_{Bi}} - {{\varvec{a}}_{Hi}})}/{{L}}\).

The centroid acceleration of each drive branch link is

$${{\varvec{a}}_{Bi}} = {{\varvec{a}}_{Hi}} + {\varvec{\varepsilon } _{Li}} \times {{\varvec{n}}_i}{{L}/2} + {{\varvec{w}}_{Li}} \times ({{\varvec{w}}_{Li}} \times {{\varvec{n}}_i}{{L}/ 2}).$$
(25)

Using the movement of the moving platform and the movement of the middle constraint (UPU) branch to express the acceleration of \(B_7\) are

$$\left\{ {\begin{aligned} &{{{\varvec{a}}_{B7}} = {\varvec{\varepsilon } _{Lz}} \times {{\varvec{L}}_z} + {{\varvec{w}}_{Lz}} \times ({{\varvec{w}}_{Lz}} \times {{\varvec{L}}_z}) + {\ddot{{\varvec{l}}}_z}{\varvec{s}} + 2{{\varvec{w}}_{Lz}} \times {\dot{\varvec{{l}}}_z}s}\\ &{{{\varvec{a}}_{B7}} = {{\varvec{a}}_d} + {{\varepsilon } _d} \times {{\varvec{r}}_{B7}} + {{\varvec{w}}_d}({{\varvec{w}}_d} \times {{\varvec{r}}_{B7}})} \end{aligned}} \right.$$
(26)

The centroid acceleration of the upper and lower link of the middle constraint (UPU) branch is expressed as Eq. (27).

$$\left\{ \begin{aligned} {{\varvec{a}}_{zu}}& = \left[ {{\varvec{\varepsilon } _{Lz}} \times {\varvec{s}} + {{\varvec{w}}_{Lz}} \times ({{\varvec{w}}_{Lz}} \times {\varvec{s}})} \right] {l_u}\\ {{\varvec{a}}_{zl}} &= \left[ {{{\varepsilon } _{Lz}} \times {\varvec{s}} + {{\varvec{w}}_{Lz}} \times ({{\varvec{w}}_{Lz}} \times {\varvec{s}})} \right] ({{\varvec{l}}_z} - {{\varvec{l}}_d}) + {\dot{{\varvec{l}}}_z}{\varvec{s}} + 2{{\varvec{w}}_{Lz}} \times {\dot{{\varvec{l}}}_z}{\varvec{s}} \end{aligned} \right.$$
(27)

2.4 Constraints Analysis of Middle Constraint (UPU) Branch

We know the middle branch constrains the movable platform from the character of this machine, and the situation is complicated. Based on the screw theory [50], we can get the motion screw system of the middle branch

$$\left\{ \begin{aligned} \$ _{1} &= \left( {0\quad0\quad0;\,0\quad0\quad0} \right) \hfill \\ \$ _{2} &= \left( {\sin \theta _{1} \, - \cos \theta _{1} \,0\quad\,0\quad0\quad0} \right) \hfill \\ \$ _{3} &= \left( {0\quad0\quad0;\,\cos \theta _{1} \sin \theta _{2} \,\sin \theta _{1} \sin \theta _{2} \, - \cos \theta _{2} } \right) \hfill \\ \$ _{4} & = \left( {\sin \theta _{1} \, - \cos \theta _{1} \,0;\, - d_{3} \cos \theta _{1} \cos \theta _{2} \, - d_{3} \sin \theta _{1} \cos \theta _{2} \,-d_{3} \cos \theta _{2} } \right) \hfill \\ \$ _{5} &= \left( {\cos \theta _{1} \sin (\theta _{2} + \theta _{4} )\,\sin \theta _{1} \sin (\theta _{2} + \theta _{4} )\, - \cos (\theta _{2} + \theta _{4} );\, - d_{3} \cos \theta _{1} \sin \theta _{4} \,0} \right) \hfill \\ \end{aligned} \right.$$

Then the constraints on spiral of the middle branch can be expressed as Eq. (28).

$${\$ ^r} = \left[ { - {{\sin ({\theta _2} + {\theta _4}) \tan {\theta _1}} / {({d_3}\sin {\theta _4})}}} \;\;{{{\sin ({\theta _2} + {\theta _4})} / {({d_3}\sin {\theta _4})}}} \;0 ; \;\; 1\;\; {\tan {\theta _1}} \;\;0 \right] $$
(28)

where \({\theta _1},{\theta _2},{d_3},\) and \({\theta _4}\) are joint variables of the middle branch. If \({\theta _2}+{\theta _4}=0\), the moving platform only moves but there is no rotation, and the constraint of the middle constraint (UPU) branch for the moving platform is torque. If \({\theta _2}+{\theta _4}\ne 0\), the moving platform turns around the x-axis or the y-axis, and the constraint of the middle constraint (UPU) branch for the moving platform is force. In this paper, we regard the constraint as \({\varvec{M}}_c\) uniformly.

2.5 KANE Equation

Generalized velocity consists of 6 components. We suppose that each generalized velocity component’s generalized force is \({\varvec{F}}_j^r\), and generalized initial force is \({\varvec{F}}_j^{ * r}\). The driving force of the six branches can be expressed as \({{\varvec{F}}_{qi}}\). \({\varvec{M}}_c\) is the constraints of the middle branch for the moving platform, and the external force and torque are \({\varvec{F}}\) and \({\varvec{M}}\) respectively. Then we can get Eqs. (29 and 30) [49].

$$\begin{array}{l} {\varvec{F}}_j^r = {m_d}{\varvec{g}}{\varvec{v}}_{d,j}^ * + {\varvec{F}}{\varvec{v}}_{d,j}^ * + {\varvec{Mw}}_{d,j}^ * + \sum \limits _{i = 1}^6 {{m_{Hi}}{\varvec{gv}}_{Hi,j}^ * } + \sum \limits _{i = 1}^6 {{{\varvec{F}}_{qi}}{{\varvec{J}}_{Hi,j}}} +\,{{\varvec{M}}_c}{\varvec{v}}_{d,j}^ * \\ + \sum \limits _{i = 1}^6 {{m_{Li}}{\varvec{gv}}_{Li,j}^ * } + {m_{zu}}{\varvec{gv}}_{zu,j}^ * + {m_{zl}}{\varvec{gv}}_{zd,j}^ * \end{array}$$
(29)
$$\begin{array}{l} {\varvec{F}}_j^{ * r} = - {m_d}{{\varvec{a}}_d}{\varvec{v}}_{d,j}^ * - \sum \limits _{i = 1}^6 {{m_{Hi}}{{\varvec{a}}_{Hi}}{\varvec{v}}_{Hi,j}^ * } - \sum \limits _{i = 1}^6 {{m_{Li}}{{\varvec{a}}_{Li}}{\varvec{v}}_{Li,j}^ * } - {m_{zu}}{{\varvec{a}}_{zu}}{\varvec{v}}_{zu,j}^ * \\ - {m_{zl}}{{\varvec{a}}_{zl}}{\varvec{v}}_{zl,j}^ * - ({{\varvec{I}}_d}{\varvec{\varepsilon } _d} + {{\varvec{w}}_d} \times {{\varvec{I}}_d}{{\varvec{w}}_d}){\varvec{w}}_{d,j}^ * - ({{\varvec{I}}_{zu}}{\varvec{\varepsilon } _{Lz}} + {{\varvec{w}}_{Lz}} \times {{\varvec{I}}_{zu}}{{\varvec{w}}_{Lz}}){\varvec{w}}_{Lz}^ * \\ - ({{\varvec{I}}_{zl}}{{\varepsilon } _{Lz}} + {{\varvec{w}}_{Lz}} \times {{\varvec{I}}_{zl}}{{\varvec{w}}_{Lz}}){\varvec{w}} - \sum \limits _{i\,=\,1}^6 {\left( {{{\varvec{I}}_{Li}}{{\varepsilon } _{Li}} + {{\varvec{w}}_{Li}} \times {{\varvec{I}}_{Li}}{{\varvec{w}}_{Li}}} \right) {\varvec{w}}_{Li,j}^ * } \end{array}$$
(30)

where \(m_d\) is the mass of the movable platform, \(m_{Hi}\) is the mass of each slider, \(m_{Li}\) is the mass of each link, \(m_{zu}\) is the mass of the upper link of the middle constraint branch, \(m_{zl}\) is the mass of the lower link of the middle constraint branch, \({\varvec{I}}_d\) is the movable platform inertia matrix, \({\varvec{I}}_{Li}\) is the inertia matrix of each link, \({\varvec{I}}_{zu}\) and \({\varvec{I}}_{zl}\) are the inertia matrix of the upper and lower link of the middle constraint branch. Then we can get the KANE equation:

$${{\varvec{F}}^r} + {{\varvec{F}}^{ * r}} = 0.$$
(31)

Then we can derive Eqs. (32 from 31).

$${{\varvec{F}}^r} + {{\varvec{F}}^{ * r}} = {\varvec{G}}{\left[ {{{\varvec{F}}_{q1}}}\quad {{{\varvec{F}}_{q2}}}\quad {{{\varvec{F}}_{q3}}}\quad {{{\varvec{F}}_{q4}}}\quad {{{\varvec{F}}_{q5}}}\quad {{{\varvec{F}}_{q6}}}\quad {{{\varvec{M}}_c}} \right] ^T} - {{\varvec{F}}^T} = 0$$
(32)

We separate the part of the driving force from KANE equation, then we can get the general form of the dynamics equation shown in Eq. (33).

$${\varvec{G}}{\varvec{\tau }} = {{\varvec{F}}^{\prime {T}}},$$
(33)

where \({\varvec{G}}\) IS the Jacobian matrix between the driving forces and platform; \({\varvec{\tau}}\) is the driving force vector, and \({{\varvec{F}}^{\prime {T}}}\) is the rest part of the KANE equation.

3 Model Identification

3.1 Fuzzy Model

Based on the Ref. [48], we can transform the structure parameter identification problem of 6-PUS/UPU parallel robot into the problem of searching an optimal solution of nonlinear equations. The classical least squares method (RLS), genetic algorithm or other algorithms is used to identify the parameters. In this paper we employ fuzzy identification technique to obtain a fuzzy model for 6-PUS/UPU parallel robot by combining the information of different sources, such as empirical models, expert knowledge, and the system input–output data. The fuzzy model is more interpretable than other black-box methods.

Among different kinds of fuzzy models, Takagi-Sugeno (T–S) fuzzy model is an effective one which represents a nonlinear system as an averaged weighted sum of simple local linear dynamic sub-systems. The weights are characterized by membership functions which capture the nonlinearity of the system. The local linear dynamic sub-systems can be obtained by performing local linearization at different chosen operating points. In view of the outstanding express capability for modeling and favorable structure in support of analysis, this paper selects the fuzzy identification based on T–S fuzzy model.

The first step of establishing the T–S model is to determine the number of input variables. According to the dynamic model described above, we can know that the input variables are the pose parameters of the moving coordinate system in the fixed coordinates. It can be expressed as \({\varvec{q}} = {[x,y,z,u,v,w]^T}\). The output variables are the six driving force of parallel robot. For MIMO system, we can divide it into several multi-input single-output (MISO) system and identify each individually. In this paper, we only discuss the identification of MISO system.

To facilitate analysis, the input and output data can be expressed as follows:

$$\{ ({x_p},{y_p})/p = 1,2, \cdots ,m\} ,$$
(34)

\({{\varvec{x}}_p} = ({x_{p1}},{x_{p2}},{x_{p3}},{x_{p4}},{x_{p5}},{x_{p6}})\) is the input variable of pth input and output data, \({y_p}\) is the corresponding output, m is the number of input and output. Fuzzy partition of the input space use the fuzzy grid method. Assuming the interval partition of the ith input variable \({x_i}\) is equally divided into K fuzzy sets, \({H_{i1}},{H_{i2}}, \cdots ,{H_{i{K_i}}},i = 1,2, \cdots ,6.\) In this paper, the dates xi is the pose of the moving platform. So the six-dimensional input space is divided into \({K_1},{K_2}, \cdots ,{K_6}\) fuzzy subspace [51]:

$$\begin{array}{l} ({H_{1{j_1}}},{H_{2{j_2}}}, \cdots ,{H_{6{j_6}}}), \quad {j_1} = 1,2, \cdots ,{K_1}\\ {j_2} = 1,2, \cdots ,{K_2}; \cdots;\quad {j_6} = 1,2, \cdots ,{K_6} \end{array},$$
(35)

Here is the space of two-dimensional fuzzy subspace (\({H_{1{j_1}}},{H_{2{j_2}}}\)) in the case of two-dimensional input space, as shown in Fig. 3a.

Fig. 3
figure 3

The simulation of the driving force error of the robot. a Distribution diagram of two-dimensional fuzzy subspace, b Triangular membership function (c = 5), c Fuzzy division when K 1 = K 2 = 5.

Next we need to select the membership function. A fuzzy set \({\varvec{H}}\) of the given domain \({\varvec{U}}\) means a number \({\mu _H}(u) \in [0,1]\) corresponding to it for any \(u \in {\varvec{U}}\) was designated, and it is called the degree of membership u for \({\varvec{H}}\). So there is a mapping:

$$\begin{array}{l} {\mu _H}:U \rightarrow [0,1]\\ u \rightarrow {u_H}(u) \end{array},$$
(36)

This mapping is called the membership function of \({\varvec{H}}\).

Generally used membership function includes triangular membership function and Gaussian membership function. In this paper, triangle membership function (belongs to linear membership function) is chosen because its shape is only related to the slope of a straight line. When a fuzzy controller is designed, linear membership function is very simple for implementation. Its performance for real-time control system is comparable to curve-shaped membership functions but to be more computational effective. Figure 3b shows the triangle membership functions when the number of fuzzy partitions is c = 5.

Figure 3b shows the distribution of the 5 membership functions. The domain of membership function is divided into 5 parts by symmetrical triangle. In this paper, a symmetrical triangle membership function is chosen [52], and its fuzzy set is \({H_{i{j_i}}}\)

$${\mu _{i{j_i}}}(x) = \max \{ 1 - \left| {x - a_{{j_i}}^{{K_i}}} \right| /{b^{{K_i}}}\} ,\quad {j_i} = 1,2, \cdot \cdot \cdot ,{K_i} ,$$
(37)

where \(a_{{j_i}}^{{K_i}} = ({j_i} - 1)/({K_i} - 1),{j_i} = 1,2, \cdot \cdot \cdot ,{K_i},{b^{{K_i}}} = 1/({K_i} - 1)\). We can regard the fuzzy division as a two-input and single-output fuzzy system when \({K_1} = {K_2} = 5\) in Fig. 3c.

The T–S model is generally defined as in the Eq. (38) [53].

$$\begin{array}{l} {R_i}:{\mathrm{{IF }}}\ {\mathrm{{x}}_i}\ {\mathrm{{ is }}}\ {\mathrm{{H}}_{i1}}\ {\mathrm{{ AND }}}\ {\mathrm{{x}}_2}\ {\mathrm{{ is }}}\ {\mathrm{{H}}_{i2}} \cdots {\mathrm{{ AND }}}\ {\mathrm{{x}}_n}\ {\mathrm{{ is }}}\ {\mathrm{{H}}_{in}}\\ {\mathrm{{THEN }}}\ {\mathrm{{y}}_i} = {p_0} + {p_{i1}}{x_1} + {p_{i2}}{x_2} + \cdots + {p_{in}}{x_n}, \end{array}$$
(38)

\({R_i}\) is the ith fuzzy rule, \({x_1},{x_2}, \cdots ,{x_n}\) are input variable, \({H_{ik}}\) is the ith fuzzy subset of the input variable \({x_k}\), \({y_i}\) is the output of the ith rule, and the dates \({y_i}\) is the driving force of the branch in this paper. \({p_{ik}}\) is the parameter of consequence, \(k=1,2,\cdots , n\). The output of the system can be expressed as

$$y = {{\sum \limits _{i = 1}^c {{w_i}{y_i}} } \Bigg/ {\sum \limits _{i = 1}^c {{w_i}} }},$$
(39)

where \({w_i} = \prod \limits _{k = 1}^n {{\mu _{{H_{kj}}}}({x_k})} ,\) \({\mu _{{H_{kj}}}}\) is obtained by fuzzy partition, c is the number of fuzzy rule, and c is 5 in this paper. \(\prod\) is fuzzy operator, which usually uses the minimizing operations. We define \({g_i} = {{{w_i}} {/ {\sum \limits _{i = 1}^c {{w_i}} } } }\), then the output of the system can be written as

$$y = \sum \limits _{i = 1}^c {{g_i}{y_i}} = \sum \limits _{i = 1}^c {{g_i}({p_{i0}} + {p_{i1}}{x_1} + \cdots + {p_{in}}{x_n})} ,$$
(40)

Equation (40) can be written in vector form:

$$y = {\varvec{X}}{\varvec{P}},$$
(41)

where

$$\begin{array}{ll} {{\varvec{X}} = [g_{1} , \ldots ,g_{c} ,g_{1} x_{1} , \ldots ,g_{c} x_{1} ,g_{1} x_{n} , \ldots ,g_{c} x_{n} ]} \hfill \\ {{\varvec{P}} = [p_{{10}} , \ldots ,p_{{c0}} ,p_{{11}} , \ldots ,p_{{c1}} , \ldots ,p_{{1n}} , \ldots ,p_{{cn}} ]^{T} } \hfill \\ \end{array}.$$
(42)

Referring to (41), P is the vector of conclusion parameters; X and Y are the input and output matrices.

In this paper, using recursive least squares method, identification of fuzzy model is performed by determining the vector of conclusion parameters \({\varvec{P}}\) and the input matrix \({\varvec{X}}\) with the number of input–output data of m = 1400. In this paper, the input \({\varvec{X}}\) is the pose of the moving platform, the output \({\varvec{Y}}\) is the driving force of the branch. They are the theoretical values calculated by theory.

The least square method is a mathematical optimization technique. It uses the sum of the minimization of the error square to find the best function matching of data. It can obtain unknown data easily by using the least squares method. In this paper, the system is MIMO and nonlinear. The traditional identification method is only applicable to the linear system, while the T–S fuzzy model can turn the nonlinear problem into linear problem as Eq. (38). so we select it. The recursive least square algorithm is

$${{\varvec{P}}_{i + 1}} = {{\varvec{P}}_i} + \frac{{{{\varvec{Q}}_{i + 1}}{x_{i + 1}}}}{{x_{i + 1}^T{{\varvec{Q}}_i}{x_{i + 1}} + {\varvec{I}}}}({y_{i + 1}} - x_{i + 1}^T{{\varvec{P}}_i})$$
(43)
$${{\varvec{Q}}_{i + 1}} = {{\varvec{Q}}_i} - \frac{{{{\varvec{Q}}_i}{x_{i + 1}}x_{i + 1}^T{{\varvec{Q}}_i}}}{{x_{i + 1}^T{{\varvec{Q}}_i}{x_{i + 1}} + {\varvec{I}}}},\quad i = 1,2, \cdots ,m - 1$$
(44)

where \(x_i\) is the row vector of \({\varvec{X}}\), and \({y_i}\) is the component of \({\varvec{Y}}\). Initial conditions are \({{\varvec{Q}}_0} ={\varvec{\alpha}} {\varvec{I}},{{\varvec{P}}_0} = {\varvec{\varepsilon}}\), where \({\varvec{\alpha}}\) is the sufficiently large positive real number, \({\varvec{\alpha}}\) = 10,000 [52] in this paper, and \({\varepsilon }\) is the zero vector or a sufficiently small positive vector. The number of iterations is equal to the number of data and it is the stopping criteria.

In Sect. 3, we just get the fuzzy T–S model and we will add in Fig. 4 in Sect. 4. Then we can optimize the driving force and improve the system performance.

The simulation results are described in Sect. 6.

4 Control Design

For MIMO system, the joint space control is preferable [54]. But in fact, it is difficult to apply this control scheme to the 6PUS-UPU redundant actuation parallel robot. The 6PUS-UPU redundant actuation parallel robot has a redundant branch, which will aggravate the coupling situation and increase the internal force. Under the heavy load and high speed situation, it is easy to damage the device because of branch error and instant opposite reaction force. Force/position hybrid control is a common control scheme. Because of the special structure of 6PUS-UPU redundant actuation parallel robot, we propose a force/position hybrid control scheme based on the fuzzy identification model in this paper.

4.1 PID Control Scheme

The force/position hybrid control scheme means the five branches are the position control structure in the 6PUS-UPU platform, and the sixth branch uses the force control structure. The five branches use PID control method to guarantee the precision of the movable platform. In order to get good tracking and dynamic performance for the speed loop or the current loop, a PI controller [55, 56] is employed for the control of the redundant branch by improving the driving forces.

The PID control can be written as Eq. (45) [56].

$$u(t) = {K_P}{\mathrm{error}}(t) + {K_I}\int {\mathrm{error}(t){\mathrm{d}t}} + {K_D}\frac{{d{\mathrm{error}}(t)}}{{\mathrm{d}t}},$$
(45)

where \({K_P},{K_I},{K_D}\) are the proportional coefficient, integral coefficient, and differential coefficient respectively. error(t) is the value between the given value and output value.

The parameters are determined based on the relationship between the parameters of the controller and the dynamic performance and the steady state performance of the system. The selecting criterion is to make the actual output of the system approach the theoretical value after many attempts. Before the assembly of the prototype, the motor performance of each branch should be debugged. After debugging, there is no problem, and then the adjustment of PID parameters is performed in the case of simulating the motor with load. In order to shorten the setting time of PID parameters, the model is simulated by MATLAB, and then we carry out the actual adjustment using the parameters obtained by simulation. The parameters of controller are shown in Table 4.

The T–S fuzzy model is obtained and then based on the T–S fuzzy model, the PI controller is obtained. Different from the traditional controller, we put the T–S fuzzy model into the feedback link, it can get the desired force according to the variation of the real-time pose of the moving platform, and the result is better than force feedback. The control diagram can be expressed as Fig. 4.

Fig. 4
figure 4

PI force/position hybrid control scheme based on the fuzzy identification model

The model of the position control and the model of the force control are different. The position control is the kinematic control mode without considering the dynamic model of system. In section III, only one model identification of the 6PUS-UPU is provided. According this model, we can calculate the redundant force in the force control loop, and the redundant force is added to the moving platform to improve the performance of the system.

In Fig. 4, the first five branches use the traditional PID controller to make the moving platform reach the designated position; it is the position control scheme. The sixth branch is the redundant driving branch and it is the force control scheme. We mainly study the sixth branch, so the fuzzy model is only in the force control scheme. When the moving platform moves along the trajectory planning, the pose of the moving platform is the input of the T–S fuzzy model, and the output force of the model is added into the sixth branch as the feedback. Compared with the force feedback from sixth branch directly, this method is a full closed-loop structure. It makes the control of sixth branch have contact with the first five branches, and is not independent. It is useful for the optimization of driving force. The simulation results prove it.

In this paper, we use the joint simulation of ADAMS and MATLAB. The simulation diagram of the whole system is shown in Fig. 5, and the virtual model in ADAMS is shown in Fig. 6.

Fig. 5
figure 5

Overall system simulation diagram

Fig. 6
figure 6

The virtual model of 6PUS-UPU

As shown in Figs. 5 and 6, the joint simulation includes ADAMS and MATLAB. ADAMS is the application software of virtual prototype analysis. The user can use the software to analyze the static, kinematic, and dynamic analysis of the virtual machine system.

We build a mechanical model of the system in ADAMS, and the control model of the system is established in Simulink. Then the model of ADAMS is introduced into Simulink, and the mechanical system and the control system can be effectively coordinated. It is not only beneficial to the design of the mechanical system, it is more advantageous to the adjustment of the controller parameters. That is, the output of the MATLAB is the input of ADAMS, and the output of ADAMS is the input of MATLAB. Figure 6 shows the front view and side view of the mechanical model in ADAMS. When combined simulation working, we can observe the movement track of the moving platform from Fig. 6. Many quantities can be observed in both MATLAB and ADAMS. In MATLAB, we can see the input, deviation quantity, and various output of ADAMS, etc. In ADAMS, according to different settings, we can observe the actual force of six branches, the position and pose of the moving platform, displacement and velocity of the slider, etc. In this paper, the observed quantities of ADAMS are seventeen, including six actual forces, five displacements, and five positions.

The desired trajectory of the platform assumed is shown in Fig. 7.

Fig. 7
figure 7

The desired trajectory of the platform

The simulation results and analysis are described in Sect. 6.

5 The Smith Predictive Compensation for the Delay

In reality, the robot may have the delay from the input to the output which influences the performance of the output resulting in poor control performance. This paper develops a Smith predictor to compensate the delay of the redundant driving branch based on the complex force/position hybrid control scheme.

5.1 Smith Predictive Control

In the process of industrial production, there are many controlled plants which exist delay. The delay time \({\varvec{\tau}}\) may degrade the system stability, dynamic performance and cause undesired overshoots and oscillations. In general, when the hysteresis phenomenon is not obvious, we usually ignore the impact of the lag in order to simplify the control system. We will design the control scheme compensating for the lag when the lag phenomenon is explicit and affects the performance of control system.

Smith predictive compensator has been widely used in the delay system. A predictive compensator is introduced for the lag part in the characteristic equation of the closed-loop system. The smith predictor can compensate the lag effect and improve the control quality. Because we only study the delay issue of the redundant driving branch in this paper and we can see the sixth branch as a linear system, its transfer function can be obtained, so we can use the Smith predictor. Smith compensation principle is shown in Fig. 8.

Fig. 8
figure 8

Smith compensation principle for the sixth branch. a The sixth branch block diagram with the lag, b Smith projection compensation block diagram

In Fig. 8a, C(s) is the controller and the G(s) is the transfer function of the controlled plant. In Fig. 8b, we add the Smith predictor to compensate the lag link. We can calculate the transfer function from Eq. (46) and Fig. 8b.

$${W_s} = \frac{{{G_P}(s)}}{{1 + {G_P}(s)}},$$
(46)

where \(G_{P} (s) = C(s)(G(s)e^{{ - {\varvec{\tau}} s}} + G(s)(1 - e^{{ - {\varvec{\tau}} s}} ))\). Then we can get the transfer function \(W_s\).

$${W_s} = \frac{{{G_P}(s)}}{{1 + {G_P}(s)}} = \frac{{C(s)(G(s){e^{ - {\varvec{\tau }} s}} + G(s)(1 - {e^{ - {\varvec{\tau }} s}}))}}{{1 + C(s)(G(s){e^{ - {\varvec{\tau }} s}} + G(s)(1 - {e^{ - {\varvec{\tau }} s}}))}} = \frac{{C(s)G(s)}}{{1 + C(s)G(s)}}$$
(47)

From the Eq. (47), the transfer function between the input and output does not have the lag link \({\varvec{\tau }}\) after the Smith predictive compensator is added which shows that the Smith predictive compensator is able to compensate the time delay in the system.

The simulation results and analysis are described in Sect. 6.

6 Simulation Results

6.1 Simulation Results of Model Identification

The simulation results are shown in Fig. 9. In Fig. 9, the output of the model can track the actual curve well indicated by small error. The theory force curve represents the force of driving branch when the moving platform moves along the trajectory planning. The trajectory planning will be said in the next section. Fig. 9 suggests this identification is successful for the dates of the trajectory planning.

Fig. 9
figure 9

The identification result of the six branches. a Force 1, b force 2, c force 3, d force 4, e force 5, f force 6

6.2 Simulation Results of Two Controllers

For the 6PUS-UPU redundant actuation parallel robot, the shocks and overshoots of the position tracing are forbidden. In order to make the internal force of the robot not too large, the driving force should be in the allowed range. Regardless of the noise interference, we simulate the force tracing performance of the two controllers shown in Fig. 10.

Fig. 10
figure 10

The simulation of the real driving force of the robot. a The real driving force of traditional PI controller with force feedback, b the real driving force of PI controller based on the identification model

Compared with theoretical data, Fig. 9 shows that the force tracing performance of the PI controller based on the identification model is obviously better than that of the traditional PI controller with the force feedback, and especially in the beginning and the end of the control process, the result of force is better as shown in Fig. 9b. The driving force error of the two situation is shown in Fig. 11.

Fig. 11
figure 11

The simulation of the driving force error of the robot. a The driving force error of traditional PI controller with force feedback, b the driving force error of PI controller based on the identification model

In order to compare the advantages of the PI controller based on the identification model to the traditional PI controller clearly, we analyze the force error curves compared with the theory force, and calculate the degree of improvement of the driving force by Eq. (48).

$${Q_P} = \frac{{\left| {{E_T} - {E_P}} \right| }}{{\left| {{E_P}}, \right| }}$$
(48)

where \(E_T\) is the average value of the 1-norm value of PI controller force error based on the identification model, \(E_P\) is the average value of the 1-norm of traditional PI controller force error. \(Q_P\) describes the percentage of improvement of the controllers. The results are listed in Table 1.

Table 1 The improvement of the PI controller based on the identification model than the traditional PI controller

From Table 1, the control performance of the PI controller based on the identification model is obviously improved. Because we add the redundant driving branch, the second, fourth, sixth branches get greater improvement and the improvements are all above 70 %. The first, third, fifth branches get smaller promotions, but the promotions are still above 40 %. So we can conclude that the control performance of the PI controller with the identification model is improved greatly.

The position tracking curves of PI controller based on the T–S fuzzy model are shown in Fig. 12. The slider position error of the robot in Fig. 12b is below 1.5 mm. The proposed control scheme offers a good position tracing performance. The main parameters are shown in Tables 2, 3, and 4.

Fig. 12
figure 12

The slider position and error of PI controller based on Fuzzy identification model. a The sliders motion curves of the five position branches, b the slider error motion curves of the five position branches

Table 2 The Parameters of the permanent magnet synchronous motor
Table 3 Parameters of 6PUS-UPU
Table 4 The parameters of controller

6.3 Simulation Results of Smith Predictive Control

In this paper, we only consider the delay of the redundant branch in the joint simulation of ADAMS and MATLAB. The simulation time is 7 s. In order to observe the simulation results, we set the lag time \({\varvec{\tau}}=0.2(s)\). When the redundant branch has the lag, the real driving force of the robot in simulation is shown in Fig. 13.

Fig. 13
figure 13

The real driving force of the robot without Smith predictor

In Fig. 13, because of the lag of the redundant branch, the error between real driving force and theoretic driving force is large. At the beginning of the simulation, there is the huge internal force which damages the machine and is dangerous in practice. The real driving force of the robot with the Smith predictive controller is shown in Fig. (14).

Fig. 14
figure 14

The real driving force of the robot with Smith predictor

In Fig. 14, the simulation results are good, and the real driving force is the same as Fig. 10b which is without lag. So the simulation results prove that the Smith predictive controller compensation for the lag in redundant branch is feasible.

By comparing Fig. 13 with Fig. 14, we can find there exists  great influence for another five branches if the delay exists in redundant branch. But it is dangerous in practice. From (Fig. 14), we know that Smith predictive control can solve the delay problem.

7 Conclusion

In this paper, a fuzzy identification method for the nonlinear parallel robot was presented. A PI controller was designed based on the identification model so as to obtain optimal solutions for a complex 5-DOF 6PUS-UPU parallel robot. Simulation results show that PI control scheme with fuzzy model can improve the driving forces tracking performance greatly. A Smith predictor was developed to compensate the delay based on the complex force/position hybrid control scheme. Simulation results show the proposed method is valid. The work in the future is to consider doing the experiment on the platform of 6PUS-UPU parallel robot in the proposed framework.