Introduction

Flexible manipulators have become popular owing to their numerous advantages in comparison to the rigid manipulators such as light weight. This called for low power rated actuators, high speed and less material requirements which render them cheap [1, 2]. Consequently, they find applications in areas like assembling of electronic hardwares, packing and palletizing, in space exploration, precision welding and painting of vehicles.

At high operation speeds and increased loading, however, due to their elastic nature, increased inertial forces leads to the vibration of the links. This causes delays in the precise positioning of the end effector. For example, approximately a third of the time spent in the operation of the remote manipulator system of the space shuttle is used to wait for vibrations to decay to negligible values [3].

One of the earliest technique of dealing with precise positioning of the end effector by damping out the link vibrations is the state feedback control. In [4], the application of state feedback on a two link, two joints system with distributed flexibility is presented. In their work, the authors derived the dynamic model of the arm using combination of transfer matrices, numerical methods and lagrangian mechanics. This was followed by the exploration of feedback schemes involving joint angles, joint velocities and flexible states. The strength of this technique lies in its simplicity. Similar work related to state feedback include [5] where LQG optimal controller is developed and employed on a model obtained by identification. Recently, authors in [6] examined accelerometer based feedback together with input shaping technique.

Yet another vibration control measure is the use of digital filters and wave shaping. Conditioning of the manipulator excitation signal can reduce the link vibration. In [7], the authors employ a lowpass digital filter to attenuate some frequency contents on the input signal thereby suppressing link vibrations. Finite impulse response (FIR) and infinite impulse response (IIR) filters with bandstop frequency response have also been designed to eliminate the dominant strain frequencies in the feedback loop. The main limitation of these fixed frequency response filters is that changes in loading and trajectories may introduce new modes different from the design frequencies or shift the frequency response of the manipulator.

The limitations of the fixed digital filters was addressed by Sasaki et al. in [8, 9]. They used adaptive notch filters and filtered-X LMS algorithm based notch filter to adapt to the strain frequencies and other modes that may arise with changes in the loading. The main challenge with adaptive filters is their narrow bandwidth such that some modes will fall outside its narrow notch. These modes will thus not be adequately suppressed. The other challenge is that though the notch can shift in the spectrum, it can only do so over finite frequency range impairing the vibration suppression adaptation capability.

Researchers [10, 11] noted that vibrations are prevalent when the arms were suddenly brought to a stop. The intensity of the excited vibrations depend on the velocity prior to this sudden stop. In this regard, they proposed an input preshaping method utilizing triangular and trapezoidal velocity profile. In this scheme, the trajectory is partitioned into three sections: acceleration time, constant velocity time and deceleration time. Timings of the three sections are dependent of the final desired angle and the loading such that the arm will decelerate to a stop exciting very minimal vibration.

There are other solutions involving infinite dimensional controllers. These includes direct strain feedback controller [12], energy based robust controller [13], proportional, derivative and strain (PDS) controller [14] to mention just but a few.

In theory, there are two types of inversion: right and left inverse [15]. In left inversion, the inverse is connected in series with the plant such that the output of the plant excites the inverse model. This arrangement seeks to reproduce the input to the plant and is popular in fault detection. Right inverse on the other hand seeks to reproduce the necessary input to the plant for the desired plant output. To achieve this, the system is configured such that the output of the inverse excites the plant. Right inverses find applications in feedforward control systems and is the subject reported in this research paper. Differences in the left and right inverse system is illustrated in Fig.  1.

Fig. 1
figure 1

Inverse controller configuration. Left inverse yields the input signal to the plant when excited from the knowledge of its output signal. Right inverse yields the necessary input to the plant for the desired plant output

Inversion of dynamics system has a history that goes back to as early as 1960s first developed by Brocket and Mesarovic in 1965 [16]. Silverman [17] in 1969 developed an iterative inversion schemes for multiple-input–multiple-output (MIMO) for time invariant as well as time variant systems by successive differentiation and partitioning the output variable. Over and above its simplicity and efficiency, the algorithm could test for the existence of the inverse such that prior check was not necessary. Massey and Sain [18] in the same period discussed the existence, properties and the development scheme of inverses of linear systems. As a result, their quest yielded a different inversion method from that of Silverman. In the decade that followed, Moylan [15] refined the previous work on inversion and developed another algorithm with enhanced efficiency and an inverse model stability criterion. Hirschorn extended the procedures earlier developed for linear system inversion to nonlinear systems.

Key concerns in the development of an inverse model are the existence of the inverse and its stability. The aforementioned classical techniques, though very effective, were limited to minimum phase systems. For non-minimum phase systems, the yielded inverse were unstable. Devasia [19], an author who has done remarkable research in inversion theory, especially for non-minimum phase systems, successfully managed to invert a non minimum phase system by isolating the internal from the external dynamic then decomposing them into stable and unstable dynamics. He used the preview technique to solve for the unstable internal dynamics. Detailed mathematical presentation of the preview based technique can be found in [20,21,22]. Other inversion techniques can be found in [23, 24] and the references therein.

In this article, we developed an inverse controller and proposed a controller to stabilize the internal dynamics of the otherwise unstable inverse model. To limit operation speeds to safe levels, the stable inverse model was augmented with lowpass filters and used as a feedforward controller to a two link, 3D flexible manipulator. The main difference between the proposed approach and input shaping is that whereas the trajectories are fixed in the latter method, different joint trajectories can be used with inverse controller.

The rest of the article is organized as follows: "Model formulation and validation" section presents the modelling of the two link, 3D flexible manipulator and validation of the model against the actual manipulator. Development of the inverse model is highlighted in "Development of the inverse system" section. The manipulator model is inverted in "Inverting the multilink flexible manipulator" section. Simulation and experimental results are presented and discussed in "Results and discussion" section followed by conclusion in "Conclusion" section.

Model formulation and validation

Controller design requires the knowledge of the plant to be controlled. Consequently, accurate modelling forms a prerequisite for a controller design. A lot of research has been done in the accurate mathematical modelling of flexible manipulators, for example [25,26,27]. This involves the application of Lagrangian mechanics or the Euler–Newton formulation which are derived from energy principles. Since these techniques involves the solution of differential equations, the solution are truncated using either finite element method (FEM) or the assumed modes methods (AMM). Mathematical modelling other than being very tedious and prone to errors especially with growing number of links and joints, also fails to capture all the details of a plant. Alternative solutions include system identification and symbolic modelling.

In system identification, input–output data and previous knowledge of the system are used to develop a statistical or neural network model of the dynamic system whose characteristics match in one form or another the input–output relationship. The main limitation of system identification is the fact that some of the phenomenon of the original plant cannot be deduced from the input output relationship. In the same respect, behaviours outside the test data cannot be identified.

Symbolic modelling on the other hand involve the use of computer applications to model and simulate the plant. Mathematical representation of the plant is then obtained, either in state space or in differential algebraic equations (DAEs). The strength of this method lies in its accuracy owing to the fact that all technical complexities, interactions and aspects of the plant that cannot be captured mathematically are put into consideration [28, 29].

The plant presented in this article is a two link, 3D flexible manipulator with a weight attached at the distal end and structured as in Fig. 2a (see Table 2 in Appendix 2 for specifications). It has three rotary joints driven by dc servomotors and two flexible links assumed to have damping of the Kelvin–Voigt type both in the lateral and the torsional senses. The control system consists of a computer, AD and DA converters interfaced to Matlab and controlled in dSPACE control desk environment. Measurement of angular position and velocity is achieved using encoders coupled to the servomotors while link strain measurement is done by strain gauges positioned at the bottom of each link.

The manipulator was modelled and linearized in Maple/Maplesim\(^{\copyright }\). Maplesim employs the Rayleigh beam theory which incorporates the rotary inertia effect over and above the kinetic and potential energies of the bending effects considered in the popular Euler–Bernoulli beam theory [30]. Graph theory is used in the formulation of the governing dynamic algebraic equations (DAE) of the flexible manipulator which will take the form of a system of PDEs and boundary conditions in form of ODEs. Simulations with such infinite dimensional PDEs would require impractical resources in terms of computer memory and would take a long time. To solve this, the truncation of the elastic coordinates for the deformation along each axis amongst the in-plane, out-of-plane, torsional deflections and longitudinal elongation is done using the assumed mode method. In this work, the manipulator was truncated to order 2.

In this work, modeling in Maplesim resulted in the model shown in Fig. 2b and whose describing matrices are presented in Appendix 3 has 17 states as follows:

Fig. 2
figure 2

Manipulator model The manipulator comprises of two flexible links whose joints are driven by dc servomotors and sitting on a rotary joint giving it a 3D motion. Details about the flexible links and the description of the accessories are as tabulated in Appendix 1

  • \(x_{1}(t) = i_1(t)\)     \(\bullet\)   \(x_{7}(t) = \dot{w}_{21}(t)\)   \(\bullet\)   \(x_{13}(t) = \dot{\theta }_2(t)\)

  • \(x_{2}(t) = w_{11}(t)\)   \(\bullet\)   \(x_{8}(t) = w_{22}(t)\)   \(\bullet\)   \(x_{14}(t) = \theta _3(t)\)

  • \(x_{3}(t) = \dot{w}_{11}(t)\)   \(\bullet\)   \(x_{9}(t) = \dot{w}_{22}(t)\)   \(\bullet\)   \(x_{15}(t) = \dot{\theta }_3(t)\)

  • \(x_{4}(t) = w_{12}(t)\)   \(\bullet\)   \(x_{10}(t) = \theta _1(t)\)   \(\bullet\)   \(x_{16}(t) = i_3(t)\)

  • \(x_{5}(t) = \dot{w}_{12}(t)\)   \(\bullet\)   \(x_{11}(t) = \dot{\theta }_1(t)\)   \(\bullet\)   \(x_{17}(t) = i_2(t)\)

  • \(x_{6}(t) = w_{21}(t)\)   \(\bullet\)   \(x_{12}(t) = \theta _2(t)\)

where \(i_j\) denotes the armature current to the servomotor driving joint \(j\;(j = 1,2,3)\), \(\theta _j\), \(\dot{\theta }_j\) are the angle and velocity of joint (j = 1,2,3) respectively whereas \((w_{11},w_{12})\), \((w_{21},w_{22})\) and their time derivatives \((\dot{w}_{11},\dot{w}_{12})\), \((\dot{w}_{21},\dot{w}_{22})\), denotes the flexure variable for links 1 and 2 respectively (see Fig. 19).

Remark 1

In the modelling of the manipulator in maplesim, the lengths of links 1 and 2 are broken into two to accommodate an instrument to measure the strain. In regard to this, in the linearized model, the flexure variable has two parts as \(w_{11}\), \(w_{12}\) for link 1 and \(w_{21}\), \(w_{22}\) for link 2, where the variable \(w_{ij}\) represent deflection in the jth (j = 1, 2) part of link i(\(i = 1, 2\)) respectively. Except for having twice as many flexure variables as the number of links, breaking the links does not affect the performance of the model.

To validate the Maplesim model, Figs. 3 and 4 shows the joint angles and strain information of the nonlinear model and the linear model against the actual manipulator. We can see perfect agreement between joint angles in 3a–3c, torsional and links strain in 4a–4c. From this observation, we can deduce that the linear model represented an accurate model of the manipulator. Further, inverse model developed from this model was an accurate inverse of the model and that of the actual manipulator.

Fig. 3
figure 3

Validation of joint angles. This figure shows the joint trajectories of the nonlinear model and the linearized model against the actual manipulator

Fig. 4
figure 4

Validation of links and torsional strain. This figure shows the link and torsional strain of the nonlinear model and the linearized model against the actual manipulator

Development of the inverse system

To develop an inverse model, consider an linear time invariant (LTI) continuous time square system \(\sum (t)\), and let the triplet A, B and C be a minimal state-space representation. It is assumed that the system is stable or stabilized by negative feedback.

$$\begin{aligned} \dot{x}(t) = \,& {} Ax(t)+Bu(t),\quad x(0) = x_0,\quad t \in \mathbb {R}^+ \end{aligned}$$
(1)
$$\begin{aligned} y(t) = \,& {} Cx(t) \end{aligned}$$
(2)

where \(x(t)\in \mathbb {R}^n\), \(u(t)\in \mathbb {R}^p\), \(y(t) \triangleq (y_1,y_2,\cdots ,y_p)^T\in \mathbb {R}^p\), \(A\in \mathbb {R}^{n\times n}\), \(B\in \mathbb {R}^{n\times p}\) and \(C\in \mathbb {R}^{p\times n}\).

Definition 1

Given \(\sum (t)\), an LTI system defined above in Eqs. (1) and (2), inversion involves the development of a model \(\sum ^{-1}(t)\) that yields the input control law \(u_f(t)\) to reproduces y(t) when used as the input to \(\sum (t)\).

Definition 2

If \(C_i\) denotes the \(i_{th}\) row of the output matrix C, then the system is said to have a relative degree \(r \triangleq (r_1,r_2\ldots ,r_p)^T\) if \(C_iA^lB = 0\), \(\forall l < r_i-1\); \(1\le i\le p\) [31]. Further, if this holds true in the entire domain in the states, then we say the system has a well defined relative degree.

Following Definition 2 above and assuming that the system has a well-defined relative degree \(r = (r_1, r_2,\ldots ,r_p)^T\), differentiating the ith output \(r_i\) times w.r.t time yields

$$\begin{aligned} y^{(r_i)} = C_iA^{(r_i)}x+C_iA^{(r_i-1)}Bu \end{aligned}$$

where \(C_i\) is the ith row of the output matrix C for \(1\le i\le p\) and the subscripts represent the Lagrange’s notation of the rith derivative in time. Repeating this for all the rows and having the resulting expressions in vector form, we have

$$\begin{aligned} y^{(r)} = A_xx(t)+B_yu(t) \end{aligned}$$
(3)

where

$$\begin{aligned} y^{(r)}\triangleq & {} \begin{bmatrix} y_1^{(r_1)}(t)\\ y_2^{(r_2)}(t)\\ \vdots \\ y_p^{(r_p)}(t) \end{bmatrix}\end{aligned}$$
$$\begin{aligned} A_x\triangleq & {} \begin{bmatrix} C_1A^{(r_1)}\\ C_2A^{(r_2)}\\ \vdots \\ C_pA^{(r_p)} \end{bmatrix} \end{aligned}$$
$$\begin{aligned}B_y\triangleq & {} \begin{bmatrix} C_1A^{(r_1-1)}B\\ C_2A^{(r_2-1)}B\\ \vdots \\ C_pA^{(r_p-1)}B \end{bmatrix} \end{aligned}$$

From Eq. (3), and the fact that \(B_y\) is invertible because of the well defined relative degree assumption, the control law is

$$\begin{aligned} u(t) = B_y^{-1}[y_d^{(r)}-A_xx(t)]\quad \forall \quad t\in (-\infty ,\infty ) \end{aligned}$$
(4)

There exist a state transformation \(T: R^n\rightarrow R^n\)

$$\begin{aligned} x(t) = T\begin{bmatrix} \xi (t) \\ \eta (t) \end{bmatrix}^T \end{aligned}$$

which decomposes the states into internal dynamics [system states, which are not directly controlled by the input u(t)], \(\eta (t)\) and the external dynamics \(\xi (t)\), (i.e., the output and its derivatives in time up to \((r_i-1)\)) as

$$\begin{aligned} \xi = [y_1,\dot{y}_1,\ldots y_1^{(r_1-1)},\ldots ,y_p,\dot{y}_p,\ldots ,y_1^{(r_p-1)}]^T \end{aligned}$$
(5)

The expression of the new system after coordinate transformation is

$$\begin{aligned} \dot{\xi } = & {} \hat{A}_1\xi +\hat{A}_2\eta +\hat{B}_1u \\ \dot{\eta }= & {} \hat{A}_3\xi +\hat{A}_4\eta +\hat{B}_2u \end{aligned}$$

where \(\hat{A} = \begin{bmatrix} \hat{A}_1&\hat{A}_2 \\ \hat{A}_3&\hat{A}_4 \end{bmatrix} = T^{-1}AT\) and \(\hat{B} = \begin{bmatrix} \hat{B}_1 \\ \hat{B}_2 \end{bmatrix}\).

Replacing x(t) in (4) with the transformed dynamics, the control law to maintain the exact tracking can be written as

$$\begin{aligned} u_{f} =\, B_y^{-1}\left[ y_d^{(r)}-A_{\xi }\xi (t)-A_{\eta }\eta (t)\right] \end{aligned}$$
(6)

where

$$\begin{aligned}{}[A_{\xi }\quad A_{\eta }] = \,A_xT \end{aligned}$$

internal dynamics can now be expressed as,

$$\begin{aligned} \dot{\eta } &= \hat{A}_3\xi +\hat{A}_4\eta +\hat{B}_2B_y^{-1}[y_d^{(r)}-A_{\xi }\xi (t)-A_{\eta }\eta (t)]\nonumber \\ &= \hat{A}_{\eta }\eta (t)+\hat{B}_{\eta }Y \end{aligned}$$
(7)

where

$$\begin{aligned} \hat{A}_{\eta } &= \hat{A}_4-\hat{B}_2B_y^{-1}A_{\eta },\, \hat{B}_{\eta } &= \left[ (\hat{A}_3-\hat{B}_2B_y^{-1}A_{\xi })\quad \hat{B}_2B_y^{-1}\right] \, \text {and} \, Y &= \left[ \xi ^T\quad y_d^{(r)T}\right] ^T \end{aligned}$$

in the same respect, Eq. (4) can now be written as

$$\begin{aligned} u(t) = {} B_y^{-1}\left[ y_d^{(r)}-A_{\xi }\xi (t)-A_{\eta }\eta (t)\right] \nonumber \\= {} -B_y^{-1}A_{\eta }\eta (t)-[B_y^{-1}A_{\xi }-B_y^{-1}]Y\nonumber \\= {} \hat{C}_{\eta }\eta (t)+\hat{D}_YY(t) \end{aligned}$$
(8)

where

$$\begin{aligned} \hat{C}_\eta &= -B_y^{-1}A_{\eta }\; \text {and}\; \hat{D}_Y & = -[B_y^{-1}A_{\xi }-B_y^{-1}]. \end{aligned}$$

Equation (7) together with Eq. (8) form the inverse system and can be represented in state space form

$$\begin{aligned} \dot{\eta }(t) = {} \hat{A}_{\eta }\eta (t)+\hat{B}_{\eta }Y(t) \end{aligned}$$
(9)
$$\begin{aligned} u(t) = {} \hat{C}_{\eta }\eta (t)+\hat{D}_YY(t) \end{aligned}$$
(10)

Inverting the multilink flexible manipulator

In order to invert the multilink flexible manipulator having three reference joint inputs, three joint angle outputs and a relative degree \(r = (3,3,3)\), the internal dynamics, \(\eta (t)\), were taken as the flexure variables:

$$\begin{aligned} \eta (t) = \begin{bmatrix} w_{11}(t)\\\dot{w}_{11}(t)\\w_{12}(t)\\\dot{w}_{12}(t)\\w_{21}(t)\\\dot{w}_{21}(t)\\w_{22}(t)\\\dot{w}_{22}(t) \end{bmatrix},\quad \xi (t) = \begin{bmatrix} \theta _1(t)\\\theta _2(t)\\\theta _3(t)\\\dot{\theta }_1(t)\\\dot{\theta }_2(t)\\\dot{\theta }_3(t)\\\ddot{\theta }_1(t)\\ \ddot{\theta }_2(t)\\ \ddot{\theta }_3(t) \end{bmatrix} \end{aligned}$$
(11)

where \(\ddot{\theta }_1 = C_1Ax, \ddot{\theta }_2 = C_2Ax, \ddot{\theta }_3 = C_3Ax\). Figure 5 shows the pole zero map of the plant and the inverse system.

Fig. 5
figure 5

Poles and zeros of the plant and its inverse. a The distribution of the poles and the zeros of the modelled and linearized manipulator. b The distribution of the poles and the zeros of the inverted model

A closer look at the pole-zero map of the inverse system, and also from the knowledge of the zeros location, the inverse system was unstable. This meant that the internal dynamics i.e. the flexure variables would not decay with time. This also meant that the control law would contain this non-decaying variables to the plant. To solve this, a feedback controller of the form v is proposed to stabilize the internal dynamics. Choosing \(v = -k\hat{B}_\eta \eta (t)\) and setting matrix k by pole placement technique, shifts the poles on the imaginary axis slightly to the left. Consequently, the state Eqs. (9) and (10) becomes

$$\begin{aligned} \dot{\eta }(t)= {} (\hat{A}_{\eta }-k\hat{B_\eta })\eta (t)+\hat{B}_{\eta }Y(t) \end{aligned}$$
(12)
$$\begin{aligned} u(t) = {} \hat{C}_{\eta }\eta (t)+\hat{D}_YY(t) \end{aligned}$$
(13)

The system described in Eqs. (12) and (13) is represented as in Fig. 6 (see Appendix 4 for details of matrices \(A_\eta\), \(B_\eta\), \(C_\eta\), \(D_Y\) and k).

Fig. 6
figure 6

Block diagram of the inverse system. This figure presents the state space Eqs. (12) and (13) as a control system block diagram

With all the poles arbitrarily placed on the left hand side of the s-plane, stability of the internal dynamics and consequently of the inverse controller is assured. The internal dynamics \(\eta (t)\) can be solved conventionally by integrating forward in time as

$$\begin{aligned} \eta (t) = e^{(A_{\eta }-kB_\eta )t}\int _{0}^te^{-(A_{\eta }-kB_\eta )\tau }B_{\eta }Y_d(\tau )d\tau \end{aligned}$$
(14)

The inverse controller required that the joint angles follow the input trajectory. Step or square wave trajectories for example meant that the joint would have infinite velocities during the rising and falling edges and this may lead to mechanical breakdown of the manipulator. To prevent this, the manipulator is excited through lowpass filters as in the internal model architecture [32, 33]. The filter takes the form

$$\begin{aligned} f(s) = \frac{1}{(\lambda s+1)^n} \end{aligned}$$
(15)

The order of the filter n was chosen to be 2. On the other hand, the adjustable parameter \(\lambda\) determine the filter roll-off which in turn determines the speed of response. Increasing the values of \(\lambda\) makes the response sluggish and vice versa. Figure 7 shows the filtered inverse control system.

Fig. 7
figure 7

Filtered inverse control system This figure shows the filtered inverse control system comprising of the filter, the inverse controller and the plant

The inverse model was developed in \(\hbox {Matlab}^{\copyright }\) and integrated into dSPACE control desk environment for practical experiments. The experimental setup is as shown in Fig. 8. The desired joint trajectory is a step having an amplitude of 20\(^\circ\) lasting for 10 s after which the manipulator will go back to it’s vertical position for 10 more seconds.

Fig. 8
figure 8

Experimental setup. On the left, we have the computer hosting the dSPACE and MatLab softwares and from where the experiments are conducted. On the right, we have the two link 3d flexible manipulator

Results and discussion

Figure 9 shows the dependence of the control law u(t) on \(\lambda\). It can be observed that the gradient of the rising edge and the falling edge is dependent on the values of \(\lambda\). For lower values of \(\lambda\), we found the gradient was very high corresponding to very high initial joint velocities. The response has an overshoot which again is dependent on the filter time constant \(\lambda\) following the high speed initial velocity.

Fig. 9
figure 9

Joints control law for varying values of \(\lambda\). For joints 1,2 and 3 and for varying values of \(\lambda\), the figure shows the evolution of the joint control law

In Fig. 10 we investigated the variation of the actual joint trajectories with \(\lambda\). Following the dependence of the control law on \(\lambda\), the joint trajectories was similarly found to be dependent on \(\lambda\). The black curve show the desired trajectory while the dotted curve show the response without the filter augmented inverse controller. Judging from the rising edge gradients, it can be observed that whereas the response corresponding to \(\lambda\) = 0.2 and \(\lambda\) = 0.3 are faster than that of the manipulator without controller, the response for \(\lambda\) = 0.5 and \(\lambda\) = 0.7 are slower. The results indicate that the higher speed responses settle to the desired trajectory faster than those with slower response. Except for the overshoot, trajectories corresponding to low values of \(\lambda\) approximated the desired trajectory.

Fig. 10
figure 10

Joint trajectories for varying \(\lambda\). The black curve show the desired trajectory while the dotted curve show the response without the filter augmented inverse controller

Whereas the filter is controlling the speed of response and thereby suppressing the vibrations, the role of the inverse controller is in ensuring that the joints follows the desired trajectory. The filter on its own will result in a system commanded by a signal whose high frequency components have been filtered out and will hardly be able to track the desired joint angles as is seen in Figs. 9 and 10.

The velocity profiles are depicted in Fig. 11 showing the time variation of the joint velocities for \(\lambda\) = 0.2, 0.3, 0.5 and 0.7. Again, for low values of \(\lambda\), the overshoot is followed by a change in direction as depicted by the negative velocities immediately after rising and positive velocity following the falling edge.

Fig. 11
figure 11

Joint velocity profiles for varying \(\lambda\). The figure shows the time variation of the joint velocities for \(\lambda\) = 0.2, 0.3, 0.5 and 0.7

Figures 1213 and 14 shows the in-plane and torsional strain for link 1 and link 2 for values of \(\lambda = 0.2, 0.3, 0.5\,\hbox {and}\,0.7\) respectively. Successive reduction in link vibration can be seen with increase in the value of \(\lambda\). For \(\lambda = 0.2\), the strain is very severe in comparison with that of the system without controller owing to very high initial speed followed by very sudden stop. For \(\lambda = 0.3\), it is interesting to note that though the speed is higher inferring from the velocity curve, the vibrations excited are relatively lesser that for the system without controller. This is attributed to the effect of the inverse controller and that the poles have been shifted to the right. For \(\lambda = 0.5\) and \(\lambda = 0.7\), very minimal vibrations are observed which is attributed to sluggish joint velocities.

Fig. 12
figure 12

Link 1 in-plane strain for varying \(\lambda\)

Fig. 13
figure 13

Link 2 in-plane strain for varying \(\lambda\)

Fig. 14
figure 14

Link 1 torsional strain for varying \(\lambda\)

Figures 1516 and 17 shows the in-plane and torsional strain spectral power densities for link 1 and link 2. Peaks between 3 and 7 Hz correspond to the link vibration dominant modes. This confirms the improvement introduced by the filtered inverse controller. Figure 18 shows the variation of the strain spectral power density with different values of \(\lambda\). Significant reduction in the vibration modes is evident at 3 Hz and minimal reduction for the 7 Hz modes. This confirms the effectiveness of the filter augmented inverse controller in the mitigation of link vibrations.

Fig. 15
figure 15

Strain power spectral density for varying \(\lambda\), link 1 in-plane

Fig. 16
figure 16

Strain power spectral density for varying \(\lambda\), link 2 in-plane

Fig. 17
figure 17

Strain power spectral density for varying \(\lambda\), link 1 torsion

Fig. 18
figure 18

Strain power spectral density for varying \(\lambda\)

Conclusion

In this paper, we successfully developed a model of a two link, 3D flexible manipulator, linearized it before developing an inverse model. The inverse model was augmented with order \(n = 2\) filter and used as a feedforward controller. The filter and the inverse model were integrated in an already existing Matlab model and the experiments carried out in dSPACE control environment. Comparing with a system without the inverse controller, the results presented show a significant reduction of the link vibration while closely tracking the desired joint angles as facilitated by the inverse controller. We found that the links velocities were dependent on the value of the filter time constant \(\lambda\) whose careful choice could yield high operation speeds and minimal link vibrations. The contribution of this article is the development of a filter augmented inverse controller and the application of this controller in vibration control akin to input shaping technique. The merit of this technique is that the trajectory is not fixed like in classical input shaping methods. Except for disturbance handling capabilities, the filtered inverse controller is simple to implement and accurate without the known limitations affecting other methods like PID, i.e. integral windup and high frequency noise amplification. To improve on the disturbance handling capabilities of the filtered inverse controller, this work can be extended to internal model control (IMC) system.