Skip to main content

Theory and Modern Applications

Simplified modelling and backstepping control of the long arm agricultural rover

Abstract

This paper presents the development of the simplified modelling and control of a long arm system for an agricultural rover, which also extends the modelling methodology from the previous work. The methodology initially assumes a flexible model and, through the use of the integral-based parameter identification method, the identified parameters are then correlated to an energy function to allow a construction of the friction induced nonlinear vibration model. To also capture the effect of the time delay, a delay model was also considered in the form of a second order delay differential equation. Both families of models were applied to identify and characterise a specialised long arm system. The nonlinear model was found to give significant improvement over the standard linear model in data fitting, which was further enhanced by the addition of the time delay consideration. A backstepping controller was also designed for both model families. Results show that the delay model expends less control efforts than the lesser non-delay model.

1 Introduction

The advent of robotics technology in recent decades has fuelled rapid growth in agricultural robotics, not only to meet the increasing demands for alternatives to human labour in agricultural production due to the difficulty of finding and retaining workers [1], but also to satisfy environmental and food safety needs [2]. Such growth has garnered significant research in recent years [3, 4]. Different types of agricultural robots have been developed from the days of the Gerrish tractor robot in 1984 [5]. These robots operate in a wide range of agriculture processes, including harvesting [68], weed control [911] and spraying [1214]. It is obvious that the use of a robot arm is essential to reaching the required targets.

Agricultural processes such as harvesting and spraying on tropical fruits such as rambutan (Nephelium lappaceum) and durian (Durio zibethinus), however, necessitate a mobile robotic platform with elongated arms that appends to at least four metres in height. As the arms themselves move, significant vibrations are felt at the tip of the arms which must be mathematically modelled and controlled, an issue also prevalent on the computer numerical control (CNC) machine tools in industrial robots [15].

Oscillatory vibrations usually assume a linear damping model, in which the responses are readily decomposed into various modal frequencies. The common algorithm that follows this line of approach is Prony’s method [16, 17]. This approach is similar to the well-known concept of the Fourier transform, except that the exponential decay term is added to the trigonometric basis function. Variants of Prony’s method include the use of the total least squares technique instead of the ordinary least squares [18] and the matrix pencil method [19]. Other approaches have also included the Kalman-based estimations [2022], the distributed frequency domain optimisation [23] and the second order generalised integrator [24, 25].

More advanced types of vibration modelling also include friction induced models, which can be separated into two main types. The first type views the vibration from a tribological viewpoint, where the variation of the friction coefficient changes against the relative velocity between the structures in contact. Such variation could be described by the Stribeck model, polynomial or even exponential functions [26, 27]. The second type gives emphasis to the structural aspects in the process of vibration generations. In this regard, the prediction of the FIV has been conducted through sensitivity approaches and probabilistic models [28, 29], hybrid meta models [30] and fuzzy approaches [31]. More recent approaches to estimate the FIV include the use of observer designs to estimate the states [3234].

The surveyed models and methods generally tend to presuppose a definite complicated model structure first, then fit a complex model to the data. Should this initial model assumption fail to capture the responses, then more complex observers are imbued. The approach taken to analyse the vibration of the agricultural mobile rover in this work extends the concept of the work done by the first author in 2015 [35]. In other words, Sect. 2 of this paper presents the integral-based identification methodology for the vibration model without including the delay effects. The same formulation and concept is then used for the vibration model with the delay being included. A corresponding integral-based identification method for the linear model is also presented for the purpose of comparison. Theoretical analyses are also given on the Lyapunov stabilities of the delay as well as the non-delay models. In Sect. 3, the developed model and identification methods are applied to specialised rover arm system, where more complex dynamics are uncovered based on the identified damping and stiffness values. A validation procedure of the developed model is also given as proof of concept. A backstepping controller is designed in Sect. 3.6 based on the developed model of Sect. 3.2. This paper is then concluded in Sect. 4.

2 Methodology

2.1 Modified integral-based identification for the long arm rover without delay

Consider the normalised second order differential equation:

$$\begin{aligned} \theta '' + c \theta ' + k \theta = b u(t), \end{aligned}$$
(1)

where:

  • \(\theta \equiv \theta (t)\) represents angular movement,

  • c is the damping constant,

  • k is the spring constant,

  • u is the input.

To designate some degree of flexibility for the model of damping as well as stiffness, these variables can be made time-varying. The simplest such time-varying function is the piecewise constant function defined as follows:

$$\begin{aligned} c(t) &= c_{1},\qquad T_{0}< t< T_{1} \\ &\vdots \\ &= c_{n},\qquad T_{n-1} < t < T_{\mathrm{end}} \end{aligned}$$
(2)

and

$$\begin{aligned} k(t) &= k_{1},\qquad T_{0}< t< T_{1} \\ &\vdots \\ &= k_{n},\qquad T_{n-1} < t < T_{\mathrm{end}}. \end{aligned}$$
(3)

The system of Equation (1) can now be rewritten as follows:

$$\begin{aligned} \theta '' + c(t) \theta ' + k(t) \theta = b u(t), \end{aligned}$$
(4)

where the functions \(c(t)\) and \(k(t)\) are defined in Equations (2) and (3). Furthermore, the following quantities are also defined:

$$\begin{aligned} &\Delta t= T_{i-1} - T_{i},\qquad T_{0}=0, \end{aligned}$$
(5)
$$\begin{aligned} &\Delta t= \text{User defined time interval}. \end{aligned}$$
(6)

For future references, let the measurement times \(t_{i}^{(j)}\) be defined as follows:

$$\begin{aligned} t_{i}^{(j)} \equiv \text{ Measurement instant $t_{i}$ of section $j$, $i=1,\ldots,N$ and $j=1,\ldots,n$}. \end{aligned}$$
(7)

Defining also the operator:

$$\begin{aligned} I_{T_{i},t}^{(k)} F = \underbrace{ \int _{T_{i}}^{t}\cdots \int _{T_{i}}^{t}}_{ \text{k times}} F \,d t\cdots d t. \end{aligned}$$
(8)

Applying the operator of Equation (8) onto Equation (4) yields

$$\begin{aligned} \theta (t) - \theta _{i-1} - \alpha _{i-1} (t - T_{i-1}) +c_{i} I_{T_{i-1},t}^{(1)} \theta (t) +k_{i} I_{T_{i-1},t}^{(2)} \theta (t) = b I_{T_{i-1},t}^{(2)} u(t). \end{aligned}$$
(9)

Here, the initial conditions are defined as follows:

$$\begin{aligned} \theta _{i-1} = \theta (T_{i-1}),\qquad d\theta _{i-1} = \theta '(T_{i-1}). \end{aligned}$$
(10)

The integral reconstruction model for the vibration system can now be written as follows:

$$\begin{aligned} \theta _{\mathrm{model},i}(t) = \theta _{i-1} + \alpha _{i} ( t - T_{i}) - c_{i} I_{T_{i-1},t}^{(1)} \theta (t) - k_{i} I_{T_{i-1},t}^{(2)} \theta (t) + b I_{T_{i-1},t}^{(2)} u(t), \end{aligned}$$
(11)

where the parameters \(\alpha _{i}\) are

$$\begin{aligned} \alpha _{i-1} = d \theta _{i-1} - c_{i} \theta _{i-1}. \end{aligned}$$
(12)

Figure 1 shows a possible scenario at the joins in the neighbourhood of \(t=T_{i}, i=1,\ldots,n\). In practice, the angle measurements \(\theta _{\mathrm{meas}}\) will be obtained from an encoder, whose additive quantisation noise implies that the value of \(\theta _{\mathrm{meas}}\) may not equal the \(\theta _{\mathrm{model}}\) at the joins. This phenomenon introduces possible discontinuities at the joins. A simple method of resolving this discontinuity is to proceed to identify the sections by piece and resolve the discontinuity at the end of every section. The integral reconstructor for the first section is written as follows:

$$\begin{aligned} &\theta _{\mathrm{model},0}(t)= \theta _{0} + \alpha _{0} (t-T_{0}) - c_{1} I_{T_{0},t}^{(1)} \theta -k_{1} I_{T_{0},t}^{(2)} \theta + b I_{T_{0},t}^{(2)} u, \end{aligned}$$
(13)
$$\begin{aligned} &\alpha _{0}= \text{Equation (13) with $i=0$}. \end{aligned}$$
(14)

Substituting \(\theta _{\mathrm{meas}}=\theta (t)\) in Equation (13) for \(t \in \{t_{1}^{(1)},\ldots,t_{N}^{(1)} \}\) yields a system of equations which can be summarised into a matrix equation

$$\begin{aligned} \mathbf{A} \mathbf{p}_{0} = \mathbf{b}, \end{aligned}$$
(15)

where

$$\begin{aligned} &\mathbf{A}= \begin{bmatrix} 1 & t_{1}^{(1)} - T_{0} & -I_{T_{0},t_{1}^{(1)}}^{(1)} \theta _{\mathrm{meas}}(t) &-I_{T_{0},t_{1}^{(1)}}^{(2)} \theta _{\mathrm{meas}}(t) &-I_{T_{0},t_{1}^{(1)}}^{(2)} u \\ 1 & t_{2}^{(1)} - T_{0} & -I_{T_{0},t_{2}^{(1)}}^{(1)} \theta _{\mathrm{meas}}(t) &-I_{T_{0},t_{2}^{(1)}}^{(2)} \theta _{\mathrm{meas}}(t)&-I_{T_{0},t_{2}^{(1)}}^{(2)} u \\ \vdots &\vdots &\vdots &\vdots \\ 1 & t_{N}^{(1)} - T_{0} & -I_{T_{0},t_{N}^{(1)}}^{(1)} \theta _{\mathrm{meas}}(t) &-I_{T_{0},t_{2}^{(1)}}^{(2)} \theta _{\mathrm{meas}}(t)&-I_{T_{0},t_{N}^{(1)}}^{(2)} u \end{bmatrix}, \end{aligned}$$
(16)
$$\begin{aligned} &\mathbf{p}_{0}= \begin{bmatrix} \theta _{0} \\ \alpha _{0} \\ c_{1} \\ k_{1} \\ b \end{bmatrix},\qquad \mathbf{b}= \begin{bmatrix} \theta _{\mathrm{meas}}(t_{1}^{(1)}) \\ \theta _{\mathrm{meas}}(t_{2}^{(1)}) \\ \vdots \\ \theta _{\mathrm{meas}}(t_{N}^{(1)}) \end{bmatrix}. \end{aligned}$$
(17)

Equations (15)–(17) are solved by linear least squares subjected to the constraints

$$\begin{aligned} c_{1} >0,\qquad k_{1} >0. \end{aligned}$$
(18)

The result yields the unknown parameters that are the elements of vector \(\mathbf{p}_{0}\). Substituting the elements of \(\mathbf{p}_{0}\) into Equation (13) yields an integral reconstructor model for the angle \(\theta (t)\) of the first section from the data segmentation.

Figure 1
figure 1

The discontinuity of \(\theta (t)\) at the joins

To ensure that the \(C_{0}\) continuity is ensured at join \(k=i-1\), the initial condition \(\theta _{i}\) can be computed thus:

$$\begin{aligned} \theta _{i-1} \equiv \text{Equation (13) with $t=T_{i}$ for $i=2,\ldots,n$}. \end{aligned}$$
(19)

The value of b, which was identified for the first section, is assumed to be constant for all sections. This assumption is based on the fact that the arm is balanced and thus no sudden change of inertia is possible across the different time sections. The knowledge of the initial conditions for the ith section now leaves only three unknowns to be identified in the model of Equation (11). In this respect, setting \(\theta (t) \equiv \theta _{\mathrm{model},i}(t)\) and input \(u(t) \equiv u_{\mathrm{data},i}(t)\) for the time instants \(t \in \{t_{1}^{(i)},\ldots,t_{N}^{(i)}\}\) yields a system of N equations in three unknowns:

$$\begin{aligned} &\mathbf{A}_{i} \mathbf{p} = \mathbf{b}_{i}, \end{aligned}$$
(20)
$$\begin{aligned} &\mathbf{A}_{i} = \begin{bmatrix} t_{1}^{(i)}-T_{i-1} & -I_{T_{i-1},t_{1}^{(i)}}^{(1)} \theta _{\mathrm{meas}}(t) & -I_{T_{i-1},t_{1}^{(1)}}^{(2)} \theta _{\mathrm{meas}}(t) \\ t_{2}^{(i)}-T_{i-1} & -I_{T_{i-1},t_{2}^{(i)}}^{(1)} \theta _{\mathrm{meas}}(t) & -I_{T_{i-1},t_{2}^{(i)}}^{(2)} \theta _{\mathrm{meas}}(t) \\ \vdots & \vdots &\vdots \\ t_{N}^{(i)}-T_{i-1} & -I_{T_{i-1},t_{N}^{(i)}}^{(1)} \theta _{meas}(t) & -I_{T_{i-1},t_{N}^{(i)}}^{(2)} \theta _{meas}(t) \end{bmatrix}, \end{aligned}$$
(21)
$$\begin{aligned} &\mathbf{b}_{i}= \begin{bmatrix} \theta _{i}(t_{1}) - b I_{T_{i-1},t_{1}^{(i)}}^{(2)} u(t) \\ \theta _{i}(t_{2}) - b I_{T_{i-1},t_{2}^{(i)}}^{(2)} u(t) \\ \vdots \\ \theta _{i}(t_{N}) - b I_{T_{i-1},t_{2}^{(i)}}^{(2)} u(t) \end{bmatrix}. \end{aligned}$$
(22)

Equations (20)–(22) can now be solved by linear least squares subjected to the constraints

$$\begin{aligned} c_{i} >0, \qquad k_{i} >0. \end{aligned}$$
(23)

The result of such an operation will now provide the values for the damping \(c_{i}\) and stiffness \(k_{i}\) along with the integral reconstructor model for the angular movement \(\theta _{\mathrm{model}}(t)\). Figure 2 shows the algorithm for identifying the time-varying non-delay model.

Figure 2
figure 2

Algorithm 1: algorithm for identifying the time-varying damping \(c(t)\) and the time-varying stiffness \(k(t)\) of Equation (4)

2.2 Integral-based identification for the long arm rover with delay

As a comparison, consider now the normalised second order delay differential equation given by

$$\begin{aligned} \theta ''(t-\tau ) + c \theta '(t-\tau ) + k \theta (t-\tau ) = u(t), \end{aligned}$$
(24)

where τ represents the delay, and the variable θ and the associated parameters c and k retain their meaning from the non-delay case in Sect. 2.1. Inserting also the time-varying models for the damping and stiffness as provided by Equations (2) and (3) gives

$$\begin{aligned} \theta ''(t-\tau ) + c(t) \theta '(t-\tau ) + k(t) \theta (t-\tau ) = u(t). \end{aligned}$$
(25)

Note that the time segmentation intervals for Equation (25) are again given by Equations (5) and (6). The time delay functions \(\theta (t-\tau )\) and their derivatives are usually difficult to model. However, under the assumption that the time delay τ is small, it is possible to approximate \(\theta (t-\tau )\) and their derivatives by Taylor approximations:

$$\begin{aligned} &\theta (t-\tau )= \theta (t) - \tau \theta '(t), \end{aligned}$$
(26a)
$$\begin{aligned} &\theta '(t-\tau )= \theta '(t) - \tau \theta ''(t), \end{aligned}$$
(26b)
$$\begin{aligned} &\theta ''(t-\tau )= \theta ''(t) - \tau \theta '''(t). \end{aligned}$$
(26c)

Substituting Equation (26a)–(26c) into Equation (25), we obtain:

$$\begin{aligned} \theta ''' + a_{1,i} \theta '' + a_{2,i} \theta ' + a_{3,i} \theta = b u(t), \end{aligned}$$
(27)

where

$$\begin{aligned} &a_{1,i}= c_{i} - \frac{1}{\tau },\qquad a_{2,i} = k_{i} - \frac{c_{i}}{\tau }, \end{aligned}$$
(28)
$$\begin{aligned} &a_{3,i}=-\frac{k_{i}}{\tau },\qquad b = \frac{1}{\tau }. \end{aligned}$$
(29)

Applying the operator of Equation (8) to Equation (27) gives

$$\begin{aligned} &\theta (t)= \theta _{i-1} + \beta _{1,i} ( t- T_{i}) + \beta _{2,i} (t-T_{i})^{2} - a_{1,i} I_{i-1,t}^{(1)} \theta \\ &\phantom{\theta (t)=}{}-a_{2,i} I_{i-1,t}^{(2)} \theta -a_{3,i} I_{i-1,t}^{(3)} \theta + b I_{i-1,t}^{(3)} u(t), \end{aligned}$$
(30)
$$\begin{aligned} &\beta _{1,i}= d \theta _{i-1}+a_{1,i} \theta _{i-1}, \end{aligned}$$
(31)
$$\begin{aligned} &\beta _{2,i}= \frac{dd\theta _{i-1}}{2} + a_{1,i} \frac{d\theta _{i-1}}{2} + a_{2,i} \theta _{i}, \end{aligned}$$
(32)

where the initial conditions are

$$\begin{aligned} dd\theta _{i-1} = \theta ''(T_{i-1}),\qquad d\theta _{i-1} = \theta '(T_{i-1}). \end{aligned}$$
(33)

The discontinuities at every section joins are resolved using the method presented in Sect. 2.1. In this light the integral reconstructor model for the first section is written as follows:

$$\begin{aligned} \theta _{\mathrm{model},0}(t)= {}&\theta _{0} + \beta _{1,1} (t-T_{0}) - \beta _{1,2} (t-T_{0})^{2} -a_{1,1} I_{T_{0},t}^{(1)} \theta \\ &{}- a_{2,1} I_{T_{0},t}^{(2)} \theta -a_{3,1} I_{T_{0},t}^{(3)} \theta +b I_{T_{0},t}^{(3)} u(t). \end{aligned}$$
(34)

Substituting the values of \(\theta \equiv \theta _{\mathrm{data}}(t)\) and \(u(t) \equiv u_{\mathrm{applied}}(t)\) for the times of \(t \in \{ t_{0}^{(1)},\ldots,t_{N}^{(1)} \}\) will give a matrix equation

$$\begin{aligned} &\mathbf{M} \mathbf{p}_{0}= \mathbf{b}_{0}, \end{aligned}$$
(35)
$$\begin{aligned} &\mathbf{M}= \begin{bmatrix} 1&(t_{1}^{(1)}-T_{0})&(t_{1}^{(1)}-T_{0})^{2}&-I_{T_{0},t_{1}^{(1)}}^{(1)} \theta & -I_{T_{0},t_{1}^{(1)}}^{(2)} \theta & -I_{T_{0},t_{1}^{(1)}}^{(3)} \theta & -I_{T_{0},t_{1}^{(1)}}^{(3)} u \\ 1&(t_{2}^{(1)}-T_{0})&(t_{2}^{(1)}-T_{0})^{2}&-I_{T_{0},t_{2}^{(1)}}^{(1)} \theta & -I_{T_{0},t_{2}^{(1)}}^{(2)} \theta & -I_{T_{0},t_{2}^{(1)}}^{(3)} \theta & -I_{T_{0},t_{2}^{(1)}}^{(3)} u \\ \vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots \\ 1&(t_{N}^{(1)}-T_{0})&(t_{N}^{(1)}-T_{0})^{2}&-I_{T_{0},t_{N}^{(1)}}^{(1)} \theta & -I_{T_{0},t_{N}^{(1)}}^{(2)} \theta & -I_{T_{0},t_{N}^{(1)}}^{(3)} \theta & -I_{T_{0},t_{N}^{(1)}}^{(3)} u \end{bmatrix}, \end{aligned}$$
(36)
$$\begin{aligned} &\mathbf{b}_{0}= \begin{bmatrix} \theta _{\mathrm{data}}({t_{1}^{(1)}}) \\ \theta _{\mathrm{data}}({t_{2}^{(1)}}) \\ \vdots \\ \theta _{\mathrm{data}}({t_{N}^{(1)}}) \end{bmatrix}, \end{aligned}$$
(37)

where \(\theta _{\mathrm{data}}({t_{j}^{(1)}})\) denotes the angular data at \(t=t_{j}\) of the first section. The system identification algorithm begins with the solving of Equations (35)–(37) by linear least squares subjected to the conditions

$$\begin{aligned} a_{1,1} >0,\qquad a_{2,1} >0,\qquad a_{3,1} >0,\qquad b >0. \end{aligned}$$
(38)

The result of this process yields the unknown parameters that belong to the elements of \(\mathbf{p}_{0}\), whose vector is then substituted into Equation (34) to obtain the integral reconstructor model for the angle \(\theta (t)\) for the first section of the segmentation.

The initial conditions for the beginning of the ith segmentation are evaluated thus:

$$\begin{aligned} \theta _{i-1}&= \text{ Equation (30) for $t=T_{i}$ with $i=2,\ldots,n$. } \end{aligned}$$
(39)

Again note that the variable b is assumed to be constant throughout all sections. The knowledge of the initial conditions implies that only six parameters are now required to be identified in the model of Equation (30). Setting \(\theta (t) \equiv \theta _{\mathrm{model},i}(t)\) and input \(u(t) \equiv u_{\mathrm{data},i}(t)\) for the time instants \(t \in \{t_{1}^{(i)},\ldots,t_{N}^{(i)}\}\) yields the matrix equation

$$\begin{aligned} &\mathbf{M}_{i} \mathbf{p}_{i}= \mathbf{b}_{i}, \end{aligned}$$
(40)
$$\begin{aligned} &\mathbf{M}_{i}= \begin{bmatrix} (t_{1}^{(i)}-T_{i-1})&(t_{1}^{(i)}-T_{i-1})^{2}&-I_{T_{i-1},t_{1}^{(i)}}^{(1)} \theta & -I_{T_{i-1},t_{1}^{(i)}}^{(2)} \theta & -I_{T_{i-1},t_{1}^{(i)}}^{(3)} \theta \\ (t_{2}^{(i)}-T_{i-1})&(t_{2}^{(i)}-T_{i-1})^{2}&-I_{T_{i-1},t_{2}^{(i)}}^{(1)} \theta & -I_{T_{i-1},t_{2}^{(i)}}^{(2)} \theta & -I_{T_{i-1},t_{2}^{(i)}}^{(3)} \theta \\ \vdots &\vdots &\vdots &\vdots &\vdots \\ (t_{N}^{(i)}-T_{i-1})&(t_{2}^{(i)}-T_{i-1})^{2}&-I_{T_{i-1},t_{N}^{(i)}}^{(1)} \theta & -I_{T_{i-1},t_{N}^{(i)}}^{(2)} \theta & -I_{T_{i-1},t_{N}^{(i)}}^{(3)} \theta \end{bmatrix}, \end{aligned}$$
(41)
$$\begin{aligned} &\mathbf{b}_{i}= \begin{bmatrix} \theta _{\mathrm{data}}({(t_{1}^{(i)}}) - b I_{T_{i-1},t_{1}^{(i)}}^{(3)} u(t) \\ \theta _{\mathrm{data}}({(t_{2}^{(i)}}) - b I_{T_{i-1},t_{2}^{(i)}}^{(3)} u(t) \\ \vdots \\ \theta _{\mathrm{data}}({(t_{N}^{(i)}})- b I_{T_{i-1},t_{N}^{(i)}}^{(3)} u(t) \end{bmatrix}. \end{aligned}$$
(42)

Equations (40)–(42) can now be solved by linear least squares subjected to the constraints

$$\begin{aligned} &a_{i,1} >0,\qquad a_{i,2} >0, \qquad a_{i,3} >0, \end{aligned}$$
(43a)
$$\begin{aligned} &\vert a_{i,1} - a_{i-1,1} \vert < \gamma _{1} \vert t_{i} - t_{i-1} \vert , \end{aligned}$$
(43b)
$$\begin{aligned} &\vert a_{i,2} - a_{i-1,2} \vert < \gamma _{2} \vert t_{i} - t_{i-1} \vert , \end{aligned}$$
(43c)
$$\begin{aligned} &\vert a_{i,3} - a_{i-1,3} \vert < \gamma _{3} \vert t_{i} - t_{i-1} \vert . \end{aligned}$$
(43d)

The result of such an operation will now provide the values for the parameters \(a_{i,1}\), \(a_{i,2}\) and \(a_{i,3}\) along with the integral reconstructor model for the angular movement \(\theta _{\mathrm{model}}(t)\). Figure 3 shows the algorithm for identifying the time delay model. Note that Equations (43b)–(43d) place the Lipschitz constraints on the derivatives of \(a_{i,1}\), \(a_{i,2}\) and \(a_{i,3}\) to make sure that they are bounded. Were these constraints not placed on the derivatives, it would be possible to choose very small ϵ such that the modelled response \(y_{\mathrm{model}}(t)\) gets very close to \(y_{\mathrm{true}}(t)\), yet the values of \(a_{i,1}\), \(a_{i,2}\) and \(a_{i,3}\) do not resemble the true function. In fact, previous work by Wongvanich et al. [35] has shown that the identified parameters significantly oscillate without bound about the true values, yet the modelled response matches very well with the true data.

Figure 3
figure 3

Algorithm 2: algorithm for identifying the time-varying \(a_{1}(t)\), \(a_{2}(t)\) and \(a_{3}(t)\) functions of Equation (25)

2.3 Analyses

This section gives the theoretical analyses for the vibration model, both without the delay and with the delay.

2.3.1 Model without delay

Lemma 1

Consider the homogeneous second order differential equation

$$\begin{aligned} \theta ''(t) + c(t) \theta '(t) + k(t) \theta (t) =0. \end{aligned}$$
(44)

The required Lyapunov function can be written as follows:

$$\begin{aligned} V &= \frac{A}{2} z_{1}^{2} + \frac{B}{2} z_{2}^{2} + G z_{1} z_{2}, \end{aligned}$$
(45)

where

$$\begin{aligned} A = \frac{\alpha _{2} k(t) + \alpha _{1}}{c(t)} + \frac{\alpha _{1} c(t)}{k(t)},\qquad B = \frac{\alpha _{2} k(t) + \alpha _{1}}{c(t)}, \qquad G = \frac{\alpha _{1}}{k(t)} \end{aligned}$$
(46)

and

$$\begin{aligned} z_{1} \equiv z_{1}(t) = \theta,\qquad z_{2} \equiv z_{2}(t) = \theta '. \end{aligned}$$
(47)

Proof

The proof of this lemma is similar to the one given in [36]. □

Theorem 2

Consider the homogeneous second order differential equation defined in Equation (44). The system will have global asymptotic stability if there exists a number Q such that

$$\begin{aligned} \max \Bigl[\sup_{t\in [t,T_{\mathrm{end}} ]} c(t), \sup_{t\in [t,T_{\mathrm{end}} ]} k(t) \Bigr] < Q. \end{aligned}$$
(48)

Proof

Consider the Lyapunov candidate function of Equation (45) with parameters A, B and G as defined in Equation (46). To ensure that A, B and G are finite, select \(Q_{1}\) and \(Q_{2}\) such that

$$\begin{aligned} \sup_{t\in [t,T_{\mathrm{end}} ]} c(t) < Q_{1}, \qquad\sup_{t \in [t,T_{\mathrm{end}} ]} k(t) < Q_{2}. \end{aligned}$$

Hence the resulting upper bound Q is

$$\begin{aligned} \max \Bigl[\sup_{t\in [t,T_{\mathrm{end}} ]} c(t), \sup_{t\in [t,T_{\mathrm{end}} ]} k(t) \Bigr] < Q. \end{aligned}$$

 □

2.3.2 Model with delay

Lemma 3

Consider the third order homogeneous system

$$\begin{aligned} \theta '''(t) + a(t) \theta ''(t) + b(t) \theta '(t) + r(t) \theta (t) =0, \end{aligned}$$
(49)

where

$$\begin{aligned} &a \equiv a(t) \quad\textit{and}\quad 0< a(t)< a_{m}, \\ &b \equiv b(t) \quad\textit{and}\quad 0< b(t)< b_{m}, \\ &r \equiv r(t) \quad\textit{and}\quad 0< r(t)< r_{m}. \end{aligned}$$

The required Lyapunov function is written as follows:

$$\begin{aligned} V &= \frac{1}{2} a r \biggl(z_{1} + \frac{z_{2}}{a} \biggr)^{2} + \frac{1}{2} \biggl(b-\frac{r}{a} \biggr) z_{2}^{2} + (z_{3} + a z_{2})^{2}, \end{aligned}$$
(50)

where the states are chosen as follows:

$$\begin{aligned} z_{1} \equiv z_{1}(t) = \theta, \qquad z_{2} \equiv z_{2}(t) = \theta ',\qquad z_{3} \equiv z_{3} = \theta ''. \end{aligned}$$
(51)

Proof

The proof of this lemma is similar to the one given in [37]. □

Theorem 4

Consider the third order differential equation

$$\begin{aligned} \theta ''' + F_{1,\mathrm{true}} \theta '' + F_{2,\mathrm{true}} \theta ' + \frac{K_{\mathrm{true}}}{D} \theta = 0, \end{aligned}$$
(52)

where \(F_{1,\mathrm{true}} \equiv F_{1,\mathrm{true}}(t)\), \(F_{2,\mathrm{true}} \equiv F_{2,\mathrm{true}}(t)\) and \(K_{\mathrm{true}} \equiv K_{\mathrm{true}}(t)\). The system of Equation (52) will have global asymptotic stability if there exists a number M such that

$$\begin{aligned} \max \biggl[\sup_{t\in [t,T_{\mathrm{end}} ]} \biggl( \frac{F_{1,\mathrm{true}} K_{\mathrm{true}}}{D} \biggr), \sup_{t\in [t,T_{\mathrm{end}} ]} \biggl( \frac{F_{1,\mathrm{true}} K_{\mathrm{true}} D - K_{\mathrm{true}} - F_{2,\mathrm{true}}^{2}}{D} \biggr) \biggr] < M. \end{aligned}$$
(53)

Proof

The following Lyapunov function is written by applying Lemma 3:

$$\begin{aligned} V={}& \frac{1}{2} \biggl[ \frac{F_{1,\mathrm{true}} K_{\mathrm{true}}}{D} \biggl(z_{1} - \frac{z_{2}^{2}}{F_{1,\mathrm{true}}} \biggr)^{2} + \biggl(K_{\mathrm{true}} \biggl(1- \frac{1}{D F_{2,\mathrm{true}}} \biggr)-\frac{F_{2,\mathrm{true}}}{D} \biggr) z_{2}^{2} \biggr] \end{aligned}$$
(54)
$$\begin{aligned} &{}+\frac{1}{2} (z_{3} + F_{1,\mathrm{true}} z_{2})^{2}. \end{aligned}$$
(55)

To keep the Lyapunov function of Equation (55) finite, first choose \(M_{1}\) and \(M_{2}\) so that the coefficients of \((z_{1} - \frac{z_{2}^{2}}{F_{1,\mathrm{true}}} )^{2}\) and \(z_{2}^{2}\) are finite:

$$\begin{aligned} &\sup_{t\in [t,T_{\mathrm{end}} ]} \frac{F_{1,\mathrm{true}} K_{\mathrm{true}}}{D} < M_{1}, \\ &\sup_{t\in [t,T_{\mathrm{end}} ]} \biggl(K_{\mathrm{true}} \biggl(1- \frac{1}{D F_{2,\mathrm{true}}} \biggr)-\frac{F_{2,\mathrm{true}}}{D} \biggr) < M_{2}. \end{aligned}$$

The resulting upper bound M is thus:

$$\begin{aligned} \max \biggl[\sup_{t\in [t,T_{\mathrm{end}} ]} \biggl( \frac{F_{1,\mathrm{true}} K_{\mathrm{true}}}{D} \biggr), \sup_{t\in [0,T_{\mathrm{end}} ]} \biggl( \frac{F_{1,\mathrm{true}} K_{\mathrm{true}} D - K_{\mathrm{true}} - F_{2,\mathrm{true}}^{2}}{D} \biggr) \biggr] < M. \end{aligned}$$

 □

Having established the global asymptotic stability for the system of Equation (27), it is now possible to establish the convergence of our integral reconstructor model. In this respect, we propose the following theorem.

Theorem 5

Consider the following third order nonlinear differential equation:

$$\begin{aligned} \theta '''+ F_{1,\mathrm{true}} \theta '' + F_{2,\mathrm{true}} \theta ' + \frac{K_{1,\mathrm{true}}}{D} \theta = u(t), \quad t \in [T_{0},T_{\mathrm{end}}], \end{aligned}$$
(56)

where

$$\begin{aligned} &\theta _{\mathrm{true}}(0)= \theta _{0},\qquad \theta '_{\mathrm{true}}(0) = d\theta _{0}, \\ &F_{i,\mathrm{true}} \equiv F_{i,\mathrm{true}}(t)>0,\qquad K_{\mathrm{true}} \equiv K_{\mathrm{true}}(t) >0, \qquad F_{i,\mathrm{true}} \in C^{0}, K_{\mathrm{true}} \in C^{0}, \\ &\sup_{t\in [0,T_{\mathrm{end}} ]} \vert F_{i,\mathrm{true}} \vert \quad \textit{is finite} \quad\textit{and}\quad \sup_{t\in [0,T_{\mathrm{end}} ]} \vert K_{i,\mathrm{true}} \vert \quad\textit{is finite}. \end{aligned}$$
(57)

Define also the following functions:

$$\begin{aligned} &F_{i,\mathrm{model},k}(t)= \sum_{j=1}^{k} a_{i,j,\mathrm{model}}^{(k)} \bigl[ u\bigl(t- \Delta t (j-1)\bigr)-u(t-j\Delta t) \bigr],\quad i=1,2, \\ &K_{\mathrm{model},k}(t)= \sum_{j=1}^{k} a_{3,j,\mathrm{model}}^{(k)} \bigl[ u\bigl(t- \Delta t (j-1)\bigr)-u(t-j\Delta t) \bigr], \\ &u(t-t_{k})= \textit{ unit step function at }t=t_{k}. \end{aligned}$$
(58)

If the parameter \(a_{i,j,\mathrm{model}}^{k}, i=1,2,3\), are functions satisfying the Lipschitz condition, that is,

$$\begin{aligned} &\bigl\vert a_{1,\mathrm{model}}^{(j+1)}-a_{1,\mathrm{model}}^{(j)} \bigr\vert < \gamma _{1} \vert t_{j}-t_{j-1} \vert ,\qquad \gamma _{1} = \max_{t\in [t,T_{\mathrm{end}} ]} \bigl\vert \dot{F}_{1,\mathrm{true}}(t) \bigr\vert , \end{aligned}$$
(59a)
$$\begin{aligned} &\bigl\vert a_{2,\mathrm{model}}^{(j+1)}-a_{2,\mathrm{model}}^{(j)} \bigr\vert < \gamma _{2} \vert t_{j}-t_{j-1} \vert ,\qquad \gamma _{1} = \max_{t\in [t,T_{\mathrm{end}} ]} \bigl\vert \dot{F}_{2,\mathrm{true}}(t) \bigr\vert , \end{aligned}$$
(59b)
$$\begin{aligned} &\bigl\vert a_{3,\mathrm{model}}^{(j+1)}-a_{3,\mathrm{model}}^{(j)} \bigr\vert < \gamma _{3} \vert t_{j}-t_{j-1} \vert ,\qquad \gamma _{1} = \max_{t\in [t,T_{\mathrm{end}} ]} \bigl\vert \dot{F}_{3,\mathrm{true}}(t) \bigr\vert . \end{aligned}$$
(59c)

The limit of \(\theta _{\mathrm{model},n}\) will approach the true angular function \(\theta _{\mathrm{true}}\). In addition,

$$\begin{aligned} &\lim_{k\to \infty } F_{i,\mathrm{model},k}(t) = F_{i,\mathrm{true}}(t),\quad i=1,2, \end{aligned}$$
(60a)
$$\begin{aligned} &\lim_{k\to \infty } K_{\mathrm{model},k}(t) = K_{\mathrm{true}}(t). \end{aligned}$$
(60b)

Proof

The integral reconstructor model for the system of Equation (56) is as follows:

$$\begin{aligned} \theta _{\mathrm{model}}(t)= {}&\theta _{i} + \beta _{i,1} (t-T_{i-1}) +\beta _{i,2} (t-T_{i-1})^{2} - I_{T{i-1},t}^{(1)} F_{1,\mathrm{true}} \theta \\ &{} - I_{T{i-1},t}^{(2)} F_{2,\mathrm{true}} \theta - I_{T{i-1},t}^{(3)} K_{\mathrm{true}} \theta + I_{T{i-1},t}^{(3)} u(t). \end{aligned}$$

We will firstly consider the case where \(t=0\). In this case, there exist and \(\delta >0\) such that, for \(\bar{N}>k\), \(|F_{1,\mathrm{model},k}(0)-F_{1,\mathrm{true}}(0)| > \delta _{1}\), \(|F_{2,\mathrm{model},k}(0)-F_{2,\mathrm{true}}(0)| > \delta _{2}\) and \(|F_{3,\mathrm{model},k}(0)-F_{3,\mathrm{true}}(0)| > \delta _{3}\).

Since the constituent functions of \(F_{i,\mathrm{model},k}, i=1,2\), and \(K_{i,\mathrm{model},k}\) are \(a_{i,\mathrm{model},k},i=1,2,3\), which are Lipschitz functions, there will exist a time \(t \in [0,dt^{*}]\) regardless of k such that \(F_{i,\mathrm{model},k}\) and \(K_{i,\mathrm{model},k}\) will intersect with the true functions \(F_{i,\mathrm{true}}\) and \(K_{\mathrm{true}}\) respectively. Therefore,

$$\begin{aligned} &F_{1,\mathrm{model},k}(t) - F_{1,\mathrm{true}}(t)> \delta _{1}^{*}\quad \text{for all } t \in \bigl[0,dt^{*}\bigr], \\ &F_{2,\mathrm{model},k}(t) - F_{2,\mathrm{true}}(t)> \delta _{1}^{*}\quad \text{for all } t \in \bigl[0,dt^{*}\bigr], \\ &K_{\mathrm{model},k}(t) - K_{\mathrm{true}}(t)> \delta _{1}^{*}\quad \text{for all } t \in \bigl[0,dt^{*}\bigr]. \end{aligned}$$

And if \(\theta '(0) \leq 0\), then it is possible to choose \(\tilde{dt}^{*} < dt^{*}\) such that the value of \(\theta _{\mathrm{true}}(t) \leq 0, t \in [0,dt^{*}]\). Hence the value of \(F_{i,\mathrm{model},k} - F_{i,\mathrm{true}}(t)\) and \(K_{\mathrm{model},k}-K_{\mathrm{true}}\) or \(F_{\mathrm{true}}-F_{i,\mathrm{model},k}\) and \(K_{\mathrm{true}}-K_{i,\mathrm{model},k}\) cannot change sign in that time. Thus, the error between the integral reconstruction function and the true value is as follows:

$$\begin{aligned} \epsilon \bigl(dt^{*}\bigr) &= \bigl\vert \theta _{\mathrm{true}} \bigl(dt^{*}\bigr) - \theta _{\mathrm{model}}\bigl(dt^{*} \bigr) \bigr\vert \\ &= I_{0,t}^{(3)} \vert F_{1,\mathrm{true}}-a_{i,1} \vert + I_{0,t}^{(3)} \vert F_{2,\mathrm{true}}-a_{i,2} \vert + I_{0,t}^{(3)} \vert K_{\mathrm{true}}-a_{i,3} \vert \\ & > \delta ^{**} >0. \end{aligned}$$
(61)

Equation (61) contradicts the assumption that the limit of \(\theta _{\mathrm{model},k}\) will approach \(\theta _{\mathrm{true}}\). Hence it follows that \(F_{1,\mathrm{model},k} \to F_{1,\mathrm{true}}(0)\), \(F_{2,\mathrm{model},k} \to F_{2,\mathrm{true}}(0)\), \(K_{\mathrm{model},k} \to K_{\mathrm{true}}(0)\).

For the case of \(t>0\), we also prove by contradiction. Suppose now that there exists a time \(t_{0}>0\), which is the smallest time such that \(F_{1,\mathrm{model},k}\) does not approach \(F_{1,\mathrm{true}}(0)\), \(F_{2,model,k}\) does not approach \(F_{2,true}(0)\) and \(K_{model,k}\) does not approach \(K_{true}(0)\). Hence,

$$\begin{aligned} &\vert F_{\mathrm{model},i} - F_{\mathrm{true},i} \vert > \delta _{F,i},\quad \text{for $k>N$}, i=1,2, \end{aligned}$$
(62)
$$\begin{aligned} &\vert K_{\mathrm{model}} - K_{\mathrm{true}} \vert > \delta _{K} \quad\text{for $k>N$}. \end{aligned}$$
(63)

Using the same concept as for the case of \(t=0\), since the functions \(a_{i,j,\mathrm{model}}, i=1,2,3\) are Lipschitz function, there exists \(dt^{*}>0\) such that

$$\begin{aligned} &F_{1,\mathrm{model},k} - F_{1,\mathrm{true}} < \delta _{1}^{*}, \\ &F_{2,\mathrm{model},k} - F_{2,\mathrm{true}} < \delta _{2}^{*}, \\ &K_{\mathrm{model},k} - K_{\mathrm{true}} < \delta _{3}^{*}. \end{aligned}$$

The above statement implies that it is possible to find the smallest \(t< t_{0}\) such that the limit of \(F_{1,\mathrm{model},k}\) will not approach \(F_{1,\mathrm{true}}(t)\), the limit of \(F_{2,\mathrm{model},k}\) will not approach \(F_{2,\mathrm{true}}(t)\) and \(K_{\mathrm{model},k}\) will not approach \(K_{2,\mathrm{true}}(t)\). This contradicts the assumption that \(t_{0}\) is the smallest such value. Statement is thus proved for the case of \(t>0\). □

2.4 Identification with the pure linear model

The analyses given in the previous section means that the use of constraints on the identified parameters are possible. This conjecture is due to the fact that the nonlinear least squares problem has duly been converted to a corresponding linear least squares problem by integral reconstruction, that is guaranteed to yield a unique solution. Two possible constraints exist for the models considered in this work, one for the non-delay model and the other for the delay model.

2.4.1 Non-delay model

For the non-delay model, the simplest such constraint is simply the equality constraints \(c_{1}=c_{2}=\cdots=c_{n}\) and \(k_{1}=k_{2}=\cdots=k_{n}\). In other words, the damping and stiffness parameters are assumed constant across the entire data set. This constraint also represents a full linear model without delay. Setting \(\theta (t) = \theta _{\mathrm{model}}(t)\) and \(u(t) = u_{\mathrm{applied}}(t)\) for the times of \(t \in \{ t_{0},\ldots,t_{N} \}\) gives a matrix equation which is written as follows:

$$\begin{aligned} &\mathbf{M}_{\mathrm{lin}} \mathbf{p}_{\mathrm{lin}}= \mathbf{b}_{\mathrm{lin}}, \end{aligned}$$
(64)
$$\begin{aligned} &\mathbf{M}_{\mathrm{lin}}= \begin{bmatrix} 1 & t_{1} - t_{0} & -I_{t_{0},t_{1}}^{(1)} \theta _{\mathrm{meas}}(t) & -I_{t_{0},t_{1}}^{(2)} \theta _{\mathrm{meas}}(t) &I_{t_{0},t_{1}}^{(2)} u_{\mathrm{appl}}(t_{1}) \\ 1 & t_{2} - t_{0} & -I_{t_{0},t_{2}}^{(1)} \theta _{\mathrm{meas}}(t) & -I_{t_{0},t_{2}}^{(2)} \theta _{\mathrm{meas}}(t) &I_{t_{0},t_{2}}^{(2)} u_{\mathrm{appl}}(t_{2}) \\ \vdots & \vdots &\vdots & \vdots & \vdots \\ 1 & t_{N} - t_{0} & -I_{t_{0},t_{N}}^{(1)} \theta _{\mathrm{meas}}(t) & -I_{t_{0},t_{N}}^{(2)} \theta _{\mathrm{meas}}(t) &I_{t_{0},t_{N}}^{(2)} u_{\mathrm{appl}}(t_{N}) \end{bmatrix}, \end{aligned}$$
(65)
$$\begin{aligned} &\mathbf{b}_{\mathrm{lin}}= \begin{bmatrix} \theta _{\mathrm{meas}}(t_{1}) \\ \theta _{\mathrm{meas}}(t_{2}) \\ \vdots \\ \theta _{\mathrm{meas}}(t_{N}) \end{bmatrix}. \end{aligned}$$
(66)

Equations (64)–(66) can duly be solved by linear least squares to yield the linear model without delay.

2.4.2 Delay model

Applying the equality constraints to the delay case means that \(a_{1,1}=a_{1,2}=\cdots=a_{1,n}\), \(a_{2,1}=a_{2,2}=\cdots=a_{2,n}\) and \(a_{3,1}=a_{3,2}=\cdots=a_{3,n}\). Setting \(\theta (t) = \theta _{\mathrm{model}}(t)\) and \(u(t) = u_{\mathrm{applied}}(t)\) for the times of \(t \in \{ t_{0},\ldots,t_{N} \}\), as was done for the non-delay case, now gives a matrix equation which is written as follows:

$$\begin{aligned} \mathbf{M}_{\mathrm{lin},d} \mathbf{p}_{\mathrm{lin},d} = \mathbf{b}_{\mathrm{lin},d}, \end{aligned}$$
(67)

where

$$\begin{aligned} &\mathbf{M}_{\mathrm{lin},d} = \begin{bmatrix} \mathbf{1} & (\mathbf{t}-t_{0}) &(\mathbf{t}-t_{0})^{2} & - \mathbf{I}_{1,2,3} & \mathbf{u}_{\mathrm{appl}} \end{bmatrix}, \end{aligned}$$
(68)
$$\begin{aligned} &\mathbf{I}_{1,2,3} = \begin{bmatrix} I_{t_{0},t_{1}}^{(1)} \theta _{\mathrm{meas}}(t) & I_{t_{0},t_{1}}^{(2)} \theta _{\mathrm{meas}}(t)&I_{t_{0},t_{1}}^{(3)} \theta _{\mathrm{meas}}(t) \\ I_{t_{0},t_{2}}^{(1)} \theta _{\mathrm{meas}}(t) & I_{t_{0},t_{2}}^{(2)} \theta _{\mathrm{meas}}(t)&I_{t_{0},t_{2}}^{(3)} \theta _{\mathrm{meas}}(t) \\ \vdots &\vdots &\vdots \\ I_{t_{0},t_{N}}^{(1)} \theta _{\mathrm{meas}}(t) & I_{t_{0},t_{N}}^{(2)} \theta _{\mathrm{meas}}(t)&I_{t_{0},t_{N}}^{(3)} \theta _{\mathrm{meas}}(t) \end{bmatrix}, \end{aligned}$$
(69)
$$\begin{aligned} &\mathbf{t} = \begin{bmatrix} t_{1} \\ t_{2} \\ \vdots \\ t_{N} \end{bmatrix}, \qquad\mathbf{1} :=\text{ vector of ones}, \qquad\mathbf{u}_{\mathrm{appl}} = \begin{bmatrix} u_{\mathrm{appl}}(t_{1}) \\ u_{\mathrm{appl}}(t_{2}) \\ \vdots \\ u_{\mathrm{appl}}(t_{N}) \end{bmatrix}. \end{aligned}$$
(70)

In a similar fashion to the non-delay model, Equations (67)–(70) are again solved by linear least squares. The result from this solving process yields the unknown parameters as well as the model for the delay case. Figure 4 depicts the algorithm for identifying the linear model, both for the non-delay and the delay cases.

Figure 4
figure 4

Algorithm 3: algorithm for identifying the linear model for the delay and non-delay cases

3 Results & discussion

3.1 Data acquisition

Figure 5 shows the schematic of the specialised robot arm system used for orchard spraying. The arm contains two links where the first link is denoted by \(L_{1}\) and the second link by \(L_{2}\) for future reference. The link \(L_{1}\) is connected to a rotational joint \(J_{1}\) on one end, and joint \(J_{2}\) on the other end. Each joint is tethered to the next one and each has wires which are, in turn, connected to a wireless transmitter and a central microcontroller for receiving a PWM command wirelessly from a workstation.

Figure 5
figure 5

The schematic of the arm system

A separate data acquisition system is developed where an inertial measurement unit (IMU) is fixated on the centre of gravity of both arms. The IMU used has an on-board accelerometre as well as a gyroscope, and it is also connected to a microcontroller via an I2C protocol, where the microcontroller of the acquisition system is also connected to the workstation via a wireless transmitter. Once a PWM command is sent from a workstation, the acquisition system then transmits the angular velocity ω, as well as the angular acceleration α signals for the roll, pitch and yaw axes to the workstation.

3.1.1 Data preparation and preprocessing

The data used are the angular velocity data for the roll, pitch and yaw axes for both links, where the command is given by a step function from 25 degrees and ends at 35 degrees. The command \(u(t)\) in symbols is given as follows:

$$\begin{aligned} u(t) = 25 + 10 H(t-t_{s}), \end{aligned}$$
(71)

where \(H(t)\) is the heaviside step function and \(t_{s}=8.5\text{ s}\) is the time of the step change. Figure 6 shows the raw data resulting from the command of Equation (71) for \(L_{1}\). Figure 7 depicts the raw data resulting from the command of Equation (71) for \(L_{2}\). Since these data will have to be integrated with respect to time to yield the angular position for the three axes, incurring integration drift in the process, a compensation mechanism must be in place. In this respect consider the following model for the roll, pitch and yaw axes of both links:

$$\begin{aligned} &\theta _{L_{1},\mathrm{yaw}}(t) = a_{L_{1},\mathrm{yaw}} + b_{L_{1},\mathrm{yaw}} t, \end{aligned}$$
(72a)
$$\begin{aligned} &\theta _{L_{1},\mathrm{pitch}}(t) = a_{L_{1},\mathrm{pitch}} + b_{L_{1},\mathrm{pitch}} t, \end{aligned}$$
(72b)
$$\begin{aligned} &\theta _{L_{1},\mathrm{roll}}(t) = a_{L_{1},\mathrm{roll}} + b_{L_{1},\mathrm{roll}} t. \end{aligned}$$
(72c)
$$\begin{aligned} &\theta _{L_{2},\mathrm{yaw}}(t) = a_{L_{2},\mathrm{yaw}} + b_{L_{2},\mathrm{yaw}} t, \end{aligned}$$
(73a)
$$\begin{aligned} &\theta _{L_{2},\mathrm{pitch}}(t) = a_{L_{2},\mathrm{pitch}} + b_{L_{2},\mathrm{pitch}} t, \end{aligned}$$
(73b)
$$\begin{aligned} &\theta _{L_{2},\mathrm{roll}}(t) = a_{L_{2},\mathrm{roll}} + b_{L_{2},\mathrm{roll}} t. \end{aligned}$$
(73c)

As an example, to find out the parameters of Equations (72a), setting \(\theta _{L_{1},\mathrm{yaw}} \equiv \theta _{L_{1},\mathrm{yaw}, \mathrm{meas}}(t)\) for \(t \in \{t_{0},\ldots,t_{N}\}\) yields the matrix equation

$$\begin{aligned} &\mathbf{S} \mathbf{p} = \mathbf{b}_{\mathrm{preproc}}, \end{aligned}$$
(74)
$$\begin{aligned} &\mathbf{S} = \begin{bmatrix} 1 & t_{1} \\ 1 & t_{2} \\ \vdots & \vdots \\ 1 & t_{N} \end{bmatrix},\qquad \mathbf{p}_{\mathrm{preproc}} = \begin{bmatrix} \theta _{L_{1},\mathrm{yaw}}(t_{1}) \\ \theta _{L_{1},\mathrm{yaw}}(t_{2}) \\ \vdots \\ \theta _{L_{1},\mathrm{yaw}}(t_{N}) \end{bmatrix}. \end{aligned}$$
(75)

Solving Equations (74) by linear least squares yields the parameters of vector p which can be substituted into Equation (72a) to obtain the model for \(\theta _{L_{1},\mathrm{yaw}}\). The model is then subtracted from the numerically integrated \(\omega _{L_{1},\mathrm{yaw}}\) data to achieve the required data for parameter identification. This procedure can be reiterated for \(\theta _{L_{1},\mathrm{roll}}\) and \(\theta _{L_{1},\mathrm{pitch}}\) and \(\theta _{L_{2},\mathrm{roll}}\), \(\theta _{L_{2}, \mathrm{pitch}}\) and \(\theta _{L_{2},\mathrm{yaw}}\). The result of this preprocessing is shown in Figs. 89.

Figure 6
figure 6

Raw angular velocity data for roll, pitch and yaw axes of link \(L_{1}\)

Figure 7
figure 7

Raw angular velocity data for roll, pitch and yaw axes of link \(L_{2}\)

Figure 8
figure 8

Raw angular movement data for roll, pitch and yaw axes of link \(L_{1}\)

Figure 9
figure 9

Raw angular movement data for roll, pitch and yaw axes of link \(L_{2}\)

It is apparent from Figs. 89 that a step command at joint \(J_{2}\) from 25 to 35 induces significant vibration which is most visible on the roll and yaw axes of link \(L_{2}\). The trend for both signals is an exponential decay, which can be fitted by the methods presented in Sect. 2. The pitch vibration for both links, however, is infinitesimal; its signal is consumed by the accelerometer noise and is therefore unusable. Hence our result presentations and discussion will focus on the application of the methods presented in Sect. 2 to Link \(L_{2}\).

3.2 Parameter identification

3.2.1 Identification with non-delay model

Consider the application of Algorithm 1 on the roll and yaw data of \(L_{2}\), which is the most visible. The data was taken from t= 8.5 s to t= 12 s, with a sampling period of \(T_{s} = 0.02\text{ s}\). The value of the time interval Δt used is taken to be 0.1 s, which gives \(N=35\) values for \(c(t)\) and \(k(t)\). The values are then plotted in Figs. 1011 for the roll and yaw axes, respectively.

Figure 10
figure 10

Damping and stiffness for the roll axis

Figure 11
figure 11

Damping and stiffness for the yaw axis

It is apparent from Figs. 10 and 11 that both \(c_{\mathrm{roll}}\) and \(c_{\mathrm{yaw}}\) exhibit an increasing trend. The stiffness \(k_{\mathrm{roll}}\) shows an exponentially decreasing trend as time progresses, while \(k_{\mathrm{yaw}}\) does not increase beyond \(k_{\mathrm{yaw}}=15\). These trends show that it is possible to correlate \(c_{\mathrm{roll}}\), \(c_{\mathrm{yaw}}\), \(k_{\mathrm{roll}}\) and \(k_{\mathrm{yaw}}\) to energy used in order to accurately model the responses.

3.2.2 Damping and stiffness as a function of energy

A change in damping and stiffness with respect to time as was seen in Figs. 10 and 11 suggests that there must also be a change of kinetic energy used by the system, possibly to overcome the stiction in the gears as well as mechanical backlashes. To model these changes in energy, suppose that the damping and stiffnesses are modelled in terms of the kinetic energy-like function

$$\begin{aligned} &c_{\mathrm{roll}}\equiv c_{\mathrm{roll}}\bigl(v^{2}\bigr),\qquad k_{\mathrm{roll}} \equiv k_{\mathrm{roll}}\bigl(v^{2}\bigr), \end{aligned}$$
(76)
$$\begin{aligned} &c_{\mathrm{yaw}}\equiv c_{\mathrm{yaw}}\bigl(v^{2}\bigr),\qquad k_{\mathrm{yaw}} \equiv k_{\mathrm{yaw}}\bigl(v^{2}\bigr). \end{aligned}$$
(77)

To find the relationships of the form given in Equations (76) and (77), the dampings and stiffnesses are then plotted against the average velocity-squared function defined as follows:

$$\begin{aligned} \bar{v}_{i}^{2} = \int _{T_{i-1}}^{T_{i}} v^{2}(t) \,dt. \end{aligned}$$
(78)

Figures 12 and 13 plot the damping and stiffnesses against the average kinetic energy-like functions. It is seen from these figures that as the value of the kinetic energy-like function approaches zero, the damping \(c_{\mathrm{roll}}\) quickly increases with respect to the energy-like function. This slope becomes significantly flatter as the value of the energy-like approaches about 20. The value of \(k_{\mathrm{roll}}\) exhibits a diode-like phenomenon, that is, the \(k_{\mathrm{roll}}\) value is close to zero initially, and it exponentially increases once the kinetic energy-like function approaches 40. This phenomenon is again seen in the function of \(c_{\mathrm{yaw}}\), where its value is close to zero initially and increases exponentially with a decreasing slope as its value reaches about 0.7. The values of \(k_{\mathrm{yaw}}\) are close to zero initially and quickly approach the value of 15 once the kinetic energy-like function reaches 0.2. Each of the four parameters exhibits a nonlinear phenomenon, which could be mathematically described by a nonlinear piecewise function

$$\begin{aligned} &c_{\mathrm{roll}}= \textstyle\begin{cases} m_{1} (1 - \exp (b_{1} v^{2}) ) &\text{if } 0 < v^{2} < 30, \\ m_{2} v^{2} + b_{2} & \text{if } 30 < v^{2} < 300, \end{cases}\displaystyle \end{aligned}$$
(79)
$$\begin{aligned} &k_{\mathrm{roll}}= \textstyle\begin{cases} 0 &\text{if } 0 < v^{2} < 48, \\ a_{1} (v^{2})^{3} + a_{2} (v^{2})^{2} + a_{3} v_{2} + a_{4} & \text{if } 40 < v^{2} < 300, \end{cases}\displaystyle \end{aligned}$$
(80)
$$\begin{aligned} &c_{\mathrm{yaw}}= \textstyle\begin{cases} b_{1} (v^{2})^{3} + b_{2} (v^{2})^{2} + b_{3} v_{2} + b_{4} &\text{if } 0 < v^{2} < 30, \\ m_{3} v_{2}^{2} + b_{3} & \text{if } 30 < v^{2} < 300, \end{cases}\displaystyle \end{aligned}$$
(81)
$$\begin{aligned} &k_{\mathrm{yaw}}= a \tanh \bigl(\beta v^{2} - \gamma \bigr). \end{aligned}$$
(82)

The parameters of Equations (79)–(82) were identified through nonlinear regression analyses. Figures 1415 compare the \(c_{\mathrm{roll}}\), \(k_{\mathrm{roll}}\), \(c_{\mathrm{yaw}}\) and \(k_{\mathrm{yaw}}\) data against the fitted relations, showing a close fit between the parameters and the models.

Figure 12
figure 12

Damping and stiffness for the roll axis against the average kinetic energy-like function

Figure 13
figure 13

Damping and stiffness for the roll axis against the average kinetic energy-like function

Figure 14
figure 14

Damping and stiffness for the roll axis against the fitted model of Equations (79) and (80)

Figure 15
figure 15

Damping and stiffness for the yaw axis against the fitted model of Equations (81) and (82)

Once the nonlinear relationships between \(c_{\mathrm{roll}}\), \(k_{\mathrm{roll}}\), \(c_{\mathrm{yaw}}\) and \(k_{\mathrm{yaw}}\) have been modelled, they can now be substituted into the original differential equation of Equation (1) to construct a nonlinear model for the long arm rover. To measure the performance of the matches, a mean absolute error metric is used. Figures 1617 plot the true angular movement data for the yaw and roll axes against the resimulations of Equation (1), with \(c_{\mathrm{roll}}\), \(k_{\mathrm{roll}}\), \(c_{\mathrm{yaw}}\) and \(k_{\mathrm{yaw}}\) given in Equations (79)–(82). It is apparent from both figures that the model provides an accurate match to the data. Specifically, the percentage match of the roll data is 97.8%, while the corresponding match for the yaw data was 97.5%.

Figure 16
figure 16

Model match between the identified nonlinear model against the measured roll angle response

Figure 17
figure 17

Model match between the identified nonlinear model against the measured yaw angle response

3.3 Identification with the delay model

Consider now the application of Algorithm 2 on the same angular roll and yaw data of Fig. 9. Here the data is taken from \(t=8.5\text{ s}\) to \(t=12\text{ s}\). The value of Δt used is chosen to be 0.1167 s, yielding \(N=30\) values for \(c(t)\) and \(k(t)\). These values are again plotted in Figs. 18 and 19 for the roll and yaw axes respectively.

Figure 18
figure 18

The identified coefficients for the yaw axis

Figure 19
figure 19

The identified coefficients for the roll axis

It is seen from Figs. 18 and 19 that the value of \(a_{2,\mathrm{yaw}}(t)\) is small when \(t<0.5\) seconds and saturates at \(a_{2,\mathrm{yaw}}(t)=15\). The functions \(a_{1,\mathrm{roll}}(t)\) and \(a_{1,\mathrm{yaw}}(t)\) take on very small values, but exponentially increase as time progresses. The value of \(a_{3,\mathrm{roll}}(t)\), however, stays at 15 for about 2.5 seconds, and since then exponentially decreases to zero. These figures suggest that it is possible to explain these phenomena of the changes in \(a_{1}, a_{2}, a_{3}\) parameters through correlating with the kinetic-like function as was done with the non-delay case. Specifically, we again suppose that the \(a_{1}\), \(a_{2}\) and \(a_{3}\) functions are defined in terms of the kinetic energy-like function:

$$\begin{aligned} &a_{1,\mathrm{yaw}}\equiv a_{1,\mathrm{yaw}}\bigl(v^{2}\bigr),\qquad a_{2,\mathrm{yaw}} \equiv a_{2,\mathrm{yaw}}\bigl(v^{2}\bigr),\qquad a_{3,\mathrm{yaw}} \equiv a_{3,\mathrm{yaw}}\bigl(v^{2}\bigr),\qquad \end{aligned}$$
(83)
$$\begin{aligned} &a_{1,\mathrm{roll}}\equiv a_{1,\mathrm{roll}}\bigl(v^{2}\bigr),\qquad a_{2,\mathrm{roll}} \equiv a_{2,\mathrm{roll}}\bigl(v^{2}\bigr),\qquad a_{3,\mathrm{roll}} \equiv a_{3,\mathrm{roll}}\bigl(v^{2}\bigr). \end{aligned}$$
(84)

In this light, Figs. 2021 plot the \(a_{1,\mathrm{yaw}}\), \(a_{2,\mathrm{yaw}}\), \(a_{3,\mathrm{yaw}}\), \(a_{1,\mathrm{roll}}\), \(a_{2,\mathrm{roll}}\) and \(a_{3,\mathrm{roll}}\) responses as a function of the average kinetic energy. It is apparent from these figures that both \(a_{1,\mathrm{yaw}}\) and \(a_{1,\mathrm{roll}}\) functions are close to zero for energy levels less than 0.15, and they increase at an exponential rate thereafter. Both functions appear to saturate at a higher energy point. The functions \(a_{2,\mathrm{yaw}}\) and \(a_{2,\mathrm{roll}}\) and \(a_{3,\mathrm{yaw}}\) and \(a_{3,\mathrm{roll}}\) all follow hyperbolic tangent trends, where the parameters take on a very small value for low kinetic energy and exponentially increase once a threshold value is reached, before saturating at a higher energy value.

Figure 20
figure 20

The identified coefficients for the roll axis

Figure 21
figure 21

The identified coefficients for the yaw axis

The six functions clearly exhibit nonlinear phenomena, which are again explained by nonlinear piecewise functions of the form

$$\begin{aligned} &a_{1,\mathrm{yaw}}= \textstyle\begin{cases} 0.1 &\text{if } 0 < v^{2} < 0.1, \\ m_{2} v^{2} + b_{2} & \text{if } 0.1 < v^{2} < 0.65, \end{cases}\displaystyle \end{aligned}$$
(85)
$$\begin{aligned} &a_{2,\mathrm{yaw}}= \alpha _{a2,\mathrm{yaw}} \tanh \bigl(\beta _{a2,\mathrm{yaw}} v^{2} + \gamma _{a2,\mathrm{yaw}}\bigr), \end{aligned}$$
(86)
$$\begin{aligned} &a_{3,\mathrm{yaw}}= \alpha _{a3,\mathrm{yaw}} \tanh \bigl(\beta _{a3,\mathrm{yaw}} v^{2} + \gamma _{a3,\mathrm{yaw}}\bigr), \end{aligned}$$
(87)
$$\begin{aligned} &a_{1,\mathrm{roll}}= \alpha _{a1,\mathrm{roll}} \tanh \bigl(\beta _{a1,\mathrm{roll}} v^{2} + \gamma _{a1,\mathrm{roll}}\bigr), \end{aligned}$$
(88)
$$\begin{aligned} &a_{2,\mathrm{roll}}= \alpha _{a2,\mathrm{roll}} \tanh \bigl(\beta _{a2,\mathrm{roll}} v^{2} + \gamma _{a2,\mathrm{roll}}\bigr), \end{aligned}$$
(89)
$$\begin{aligned} &a_{3,\mathrm{roll}}= \alpha _{a3,\mathrm{roll}} \tanh \bigl(\beta _{a3,\mathrm{roll}} v^{2} + \gamma _{a3,\mathrm{roll}}\bigr). \end{aligned}$$
(90)

The parameters of Equations (85)–(90) were again identified through nonlinear regression analyses. Figures 2223 compare the \(a_{i,\mathrm{yaw}}\) and \(a_{i,\mathrm{roll}}\), \(i=1,2,3\), data against the fitted models, illustrating a close fit between the two.

Figure 22
figure 22

Comparison between the coefficients against their models for the roll axis

Figure 23
figure 23

Comparison between the coefficients against their models for the yaw axis

The nonlinear models for the row and yaw axes can now be written as follows:

$$\begin{aligned} &\theta _{\mathrm{roll}}'''(t)+a_{1,\mathrm{roll}}(kE) \theta ''_{\mathrm{roll}}(t) + a_{2,\mathrm{roll}}(kE) \theta '_{\mathrm{roll}}(t) + a_{3,\mathrm{roll}}(kE) \theta _{\mathrm{roll}}(t) = b u(t). \end{aligned}$$
(91)
$$\begin{aligned} &\theta _{\mathrm{yaw}}'''(t)+a_{1,\mathrm{yaw}}(kE) \theta ''_{\mathrm{yaw}}(t) + a_{2,\mathrm{yaw}}(kE) \theta '_{\mathrm{yaw}}(t) + a_{3,\mathrm{yaw}}(kE) \theta _{\mathrm{yaw}}(t) = b u(t). \end{aligned}$$
(92)

Figures 24 and 25 now depict the comparisons between the fitted models of Equations (91) and (92) against the angular movement data. It is apparent that the fit was again very close. Specifically the mean absolute error of the fit was 0.5% for the yaw angle and 0.4% for the roll angle. Hence the nonlinear time delay model yields a more accurate description of the long arm rover than the non-delay counterparts.

Figure 24
figure 24

Model match between the identified nonlinear model with delay against the measured roll angle response

Figure 25
figure 25

Model match between the identified nonlinear model with delay against the measured yaw angle response

3.4 System identification of the linear model

Consider the application of Algorithm 3 of Fig. 4 to the roll and yaw data of Fig. 11 with the use of the non-delay model. The identified parameters are \(c_{r}=8.48\) and \(k_{r}=30.2\). The corresponding identified parameters for the yaw data are \(c_{y}=4.99\) and \(k_{y}=19.87\). Figure 26 plots the comparisons for the response data against their identified models. It is seen that the non-delay linear model captures the descent of both angles accurately, but could not capture the oscillation that occurs after \(t=0.5\) seconds.

Figure 26
figure 26

Yaw and roll angle responses against the identified linear model

Figure 27 compares the responses between the true measured data against both linear models. It is seen that the delay model did indeed improve the fit of the non-delay model, as evidenced by an improved value of the mean squared error of 0.0028 for the yaw angle response, compared to 0.0036 for the non-delay model. Both models, however, could not capture the oscillations occurring after \(t=1.5\) seconds.

Figure 27
figure 27

Yaw and roll angle responses against the identified linear model with delay

3.5 Validation

An important step in the modelling and identification is the process of validation. To subject the proposed algorithms to the validation test, the algorithms are separately applied to the step responses with the inputs being the following functions:

$$\begin{aligned} &u_{40}(t)= 40 + 20 H(t-t_{s,40}), \end{aligned}$$
(93)
$$\begin{aligned} &u_{60}(t)= 60 + 20 H(t-t_{s,60}), \end{aligned}$$
(94)

where \(t_{s,40} = 5.6\text{ s}\) and \(t_{s,60} = 4.7\text{ s}\) are the step change times for each of the data sets. The identified parameters for the linear constant damping model without delay are as follows:

$$\begin{aligned} &c_{\mathrm{yaw},40}= 3.45,\qquad k_{\mathrm{yaw},40} = 13.30,\qquad c_{\mathrm{roll},40} = 8.46,\qquad k_{\mathrm{roll},40} = 36.7, \end{aligned}$$
(95a)
$$\begin{aligned} &c_{\mathrm{yaw},60}= 4.74,\qquad k_{\mathrm{yaw},60} = 15.07,\qquad c_{\mathrm{roll},60} = 5.93,\qquad k_{\mathrm{roll},60} = 16.3. \end{aligned}$$
(95b)

The identified parameters for the linear constant model with delay are as follows:

$$\begin{aligned} &a_{1,\mathrm{yaw},40}= 4.35,\qquad a_{2,\mathrm{yaw},40} = 28.4,\qquad a_{3,\mathrm{yaw},40} = 38.6 , \\ &a_{1,\mathrm{roll},40}= 13.45,\qquad a_{2,\mathrm{roll},40} = 123.30,\qquad a_{3,\mathrm{roll},40} = 620.3, \end{aligned}$$
(96a)
$$\begin{aligned} &a_{1,\mathrm{yaw},60}= 5.77,\qquad a_{2,\mathrm{yaw},60} = 22.4,\qquad a_{3,\mathrm{yaw},60} = 29.22, \\ &a_{1,\mathrm{roll},60}= 9.09,\qquad a_{2,\mathrm{roll},60} = 53.4,\qquad a_{3,\mathrm{roll},60} = 126.0. \end{aligned}$$
(96b)

For the purpose of comparison, we define the following models for the linear and nonlinear categories. For the linear models without delay, the models are:

$$\begin{aligned} LM_{\mathrm{yaw},j}\equiv{}& \text{ Model of Equation (1) with $c=c_{\mathrm{yaw},j}$, $k=k_{\mathrm{yaw},j}$ }, \\ & j=\{25,40,60\}. \end{aligned}$$
(97a)
$$\begin{aligned} LM_{\mathrm{roll},j}\equiv {}&\text{ Model of Equation (1) with $c=c_{\mathrm{roll},j}$, $k=k_{\mathrm{roll},j}$ }, \\ & j=\{25,40,60\}. \end{aligned}$$
(97b)

For the linear model with delay, the models are:

$$\begin{aligned} &LMD_{\mathrm{yaw},j}\equiv \text{ Model of Equation (27) with $a_{1}=a_{1,\mathrm{yaw},j}$,} \\ &{}\phantom{LMD_{\mathrm{yaw},j}\equiv}\text{$a_{2}=a_{2,\mathrm{yaw},j}$, $a_{3}=a_{3,\mathrm{yaw},j}$ } j=\{25,40,60 \}. \end{aligned}$$
(98a)
$$\begin{aligned} &LMD_{\mathrm{roll},j}\equiv \text{ Model of Equation (27) with $a_{1}=a_{1,\mathrm{roll},j}$,} \\ &{}\phantom{LMD_{\mathrm{roll},j}\equiv}\text{$a_{2}=a_{2,\mathrm{roll},j}$, $a_{3}=a_{3,\mathrm{roll},j}$} j=\{25,40,60 \}. \end{aligned}$$
(98b)

For the nonlinear models without delay, the models are:

$$\begin{aligned} &NLM_{\mathrm{yaw},j}\equiv \text{ Model of Equation (1) with $c=c_{\mathrm{yaw},j}\bigl(v^{2}\bigr)$, $k=k_{\mathrm{yaw},j} \bigl(v^{2}\bigr)$,} \\ &\phantom{NLM_{\mathrm{yaw},j}\equiv} j=\{25,40,60\}, \end{aligned}$$
(99a)
$$\begin{aligned} &NLM_{\mathrm{roll},j}\equiv \text{ Model of Equation (1) with $c=c_{\mathrm{roll},j}\bigl(v^{2}\bigr)$, $k=k_{\mathrm{roll},j} \bigl(v^{2}\bigr)$,} \\ &\phantom{NLM_{\mathrm{roll},j}\equiv} j=\{25,40,60\}. \end{aligned}$$
(99b)

For the nonlinear models with delay, the models are:

$$\begin{aligned} &NLMD_{\mathrm{yaw},j}\equiv \text{ Model of Equation (27) with $a_{1}=a_{1,\mathrm{yaw},j}\bigl(v^{2}\bigr)$,} \\ &\phantom{NLMD_{\mathrm{yaw},j}\equiv} \text{$a_{2}=a_{2,\mathrm{yaw},j}\bigl(v^{2}\bigr)$, $a_{3}=a_{3,\mathrm{yaw},j}\bigl(v^{2}\bigr)$},\quad j= \{25,40,60 \}, \end{aligned}$$
(100a)
$$\begin{aligned} &NLMD_{\mathrm{roll},j}\equiv \text{ Model of Equation (27) with $a_{1}=a_{1,\mathrm{roll},j}\bigl(v^{2}\bigr)$,} \\ & \phantom{NLMD_{\mathrm{roll},j}\equiv}\text{$a_{2}=a_{2,\mathrm{roll},j}\bigl(v^{2}\bigr)$, $a_{3}=a_{3,\mathrm{roll},j}\bigl(v^{2}\bigr)$},\quad j= \{25,40,60\}. \end{aligned}$$
(100b)

To compare the linear models without delay against the nonlinear models, the models \(LM_{\mathrm{yaw},40}\) and \(LM_{\mathrm{roll},40}\), \(LM_{\mathrm{yaw},60}\) and \(LM_{\mathrm{roll},60}\), as well as their nonlinear counterparts, are tested against the 25–35 degrees step change data for the yaw and roll axes, respectively. Similarly, the 40–60 degrees step change data is used as validation data for the models \(LM_{\mathrm{yaw},25}\), \(LM_{\mathrm{roll},25}\), \(LM_{\mathrm{yaw},60}\) and \(LM{\mathrm{roll},60}\), as well as their nonlinear counterparts. Lastly, the 60–80 degrees step change data is used as validation data for the models \(LM_{\mathrm{yaw},25}\), \(LM_{\mathrm{roll},25}\), \(LM_{\mathrm{yaw},40}\) and \(LM_{\mathrm{roll},40}\) and their nonlinear counterparts. Table 1 depicts the mean absolute error for the validating data against the models for the roll responses. Table 2 compares the mean absolute error for the validating data against the models for the yaw responses, respectively. It is apparent from these tables that the nonlinear models gave significantly less errors for both the yaw and roll responses, for all the validating data.

Table 1 Error comparison of the linear and nonlinear models without delay for the roll responses
Table 2 Error comparison of the linear and nonlinear models without delay for the yaw responses

To compare the linear models with delay, the models \(LMD_{\mathrm{yaw},40}\) and \(LMD_{\mathrm{roll},40}\), \(LMD_{\mathrm{yaw},60}\) and \(LMD_{\mathrm{roll},60}\), \(LMD_{\mathrm{yaw},80}\) and \(LMD_{\mathrm{roll},80}\), and their nonlinear counterparts, are again tested against the 25–35 degrees step change data, as was done with the non-delay case. The 40–60 degrees step change data is used as validation data for the models \(LMD_{\mathrm{yaw},40}\), \(LMD_{\mathrm{roll},40}\), \(LMD_{\mathrm{yaw},60}\), \(LMD{\mathrm{roll},60}\), \(LMD_{\mathrm{yaw},80}\) and \(LMD_{\mathrm{roll},80}\), as well as their nonlinear versions. The 60–80 degrees step change data is used as validation data for the models \(LMD_{\mathrm{yaw},25}\), \(LMD_{\mathrm{roll},25}\), \(LMD_{\mathrm{yaw},40}\), \(LMD_{\mathrm{roll},40}\), \(LMD_{\mathrm{yaw},60}\) and \(LMD_{\mathrm{roll},60}\), as well as their nonlinear counterparts. Table 3 depicts the mean absolute error for the validating data against the models for the roll responses, while Table 4 gives the mean absolute errors for the validation data against the yaw responses. It is again apparent that the nonlinear models gave significantly less errors than the corresponding linear models. Note also that the these errors are also less than the corresponding errors for the non-delay case, thereby completing the validation for the proposed models. Note also that the concept undertaken in this paper, for both families of models, is to initially assume a flexible model structure, and through the use of the system identification, unveil yet more complicated relationships between the underlying physical quantities. This concept is different to the ones normally seen in the literature, where a complex structure of vibration induced models, including finite elements and statistical distributions, must firstly be assumed.

Table 3 Error comparison of the linear and nonlinear models with delay for the roll responses
Table 4 Error comparison of the linear and nonlinear models with delay for the yaw responses

3.6 Backstepping controller design

Once the models for the long arm rover have been attained, a controller can now be designed for both the non-delay model and the model with delay. To simplify the controller process and as proof of concept, the roll and yaw angles are controlled separately. Since both models could be transformed into a strict feedback form, the backstepping controller is then suitable. This section thus details the control design and presents some results.

3.6.1 Non-delay model

Consider the system of Equation (1) with the understanding that the variable θ is taken to mean either \(\theta _{\mathrm{roll}}\) or \(\theta _{\mathrm{yaw}}\), the parameters \(c \equiv c_{\mathrm{roll}}(kE)\) or \(c_{\mathrm{yaw}}(kE)\) and \(k \equiv k_{\mathrm{roll}}(kE)\) or \(k_{\mathrm{yaw}}(kE)\). The states are thus:

$$\begin{aligned} x_{1} = \theta,\qquad x_{2} = \theta '. \end{aligned}$$

The state space equations are then

$$\begin{aligned} &\dot{x}_{1}= x_{2}, \end{aligned}$$
(101a)
$$\begin{aligned} &\dot{x}_{2}= -c x_{2} - k x_{1} + b u(t). \end{aligned}$$
(101b)

In order to stabilise the first equation, we can then define two new state variables

$$\begin{aligned} z_{1} = x_{1},\qquad z_{2} = x_{2} - \alpha _{1}, \end{aligned}$$

where the variable \(\alpha _{1}\) represents a virtual controller. Define a Lyapunov candidate function

$$\begin{aligned} V_{1} = \frac{1}{2} z_{1}^{2}. \end{aligned}$$
(102)

Differentiating Equation (102) along the trajectory of Equation (101a)–(101b) yields

$$\begin{aligned} \dot{V}_{1} = z_{1} \dot{z}_{1} = z_{1} (z_{2} + \alpha _{1}). \end{aligned}$$
(103)

The variable \(z_{2}\) inside the parenthesis of Equation (103) will be designed in the next stage of the controller to be zero. Hence, designing the variable \(\alpha _{1}=-c_{1} z_{1}\), where \(c_{1}>0\), and with the assumption that \(z_{2}=0\), we will then have \(\dot{V}_{1} = -c_{1} z_{1}^{2} <0\), which means \(x_{1}\) will now be globally exponentially stable.

The derivative of \(z_{2}\) with respect to time is

$$\begin{aligned} \dot{z}_{2}={}& \dot{x}_{2} - \dot{\alpha } _{1} \\ ={}&{-}c x_{2} -k x_{1} + b u(t) + c_{1} (z_{2} + \alpha _{1}). \end{aligned}$$
(104)

The new Lyapunov function \(V_{2}\) is now defined as follows:

$$\begin{aligned} V_{2} = V_{1} + \frac{1}{2} z_{2}^{2}. \end{aligned}$$
(105)

Differentiating Equation (105) along the trajectory of Equation (101a)–(101b) yields

$$\begin{aligned} \dot{V}_{2} &= \dot{V}_{1} + z_{2} \dot{z}_{2} \\ &= -c_{1} z_{1}^{2} +z_{1} z_{2} + z_{2} \bigl( -c x_{2} - k x_{1} + b u(t) + c_{1} z_{2} + c_{1} \alpha _{1}\bigr). \end{aligned}$$
(106)

Designing \(u(t)\) as \(u(t) = \frac{1}{b} (c x_{2} + k x_{1} - z_{1} -c_{1} \alpha _{1} -(c_{1} + c_{2}) z_{2} )\) will then make the derivative of the Lyapunov function equal to \(\dot{V}_{2} = -c_{1} z_{1}^{2} -c_{2} z_{2}^{2} <0\), ensuring the global asymptotically stability of the closed loop system.

3.6.2 Delay model

The generic form of the system to be controlled under the delay model is

$$\begin{aligned} \theta '''(t) + a_{1} \theta ''(t) + a_{2} \theta '(t) + a_{3} \theta (t) = \rho u(t). \end{aligned}$$
(107)

Again it is understood that \(a_{1} \equiv a_{1,\mathrm{yaw}}(KE)\) or \(a_{1,\mathrm{roll}}(KE)\), \(a_{2} \equiv a_{2,\mathrm{yaw}}(KE)\) or \(a_{2,\mathrm{roll}}(KE)\), \(a_{3} \equiv a_{3,\mathrm{yaw}}(KE)\) or \(a_{3,\mathrm{roll}}(KE)\). The goal of the control is to design a controller \(u(t)\) that brings \(\theta (t)\) to zero with global asymptotic stability. The state variables for the system of Equation (107) are

$$\begin{aligned} x_{1} = \theta,\qquad x_{2} = \theta ',\qquad x_{3} = \theta ''. \end{aligned}$$

The system of Equation (107) can be rewritten as follows:

$$\begin{aligned} &\dot{x}_{1}= x_{2}, \\ &\dot{x}_{2}= x_{3}, \\ &\dot{x}_{3}= -a_{3} x_{1} -a_{2} x_{2} - a_{1} x_{3} + \rho u(t). \end{aligned}$$

In order to stabilise the first equation, we can then define two new state variables as follows:

$$\begin{aligned} z_{1} = x_{1},\qquad z_{2} = x_{2} - \alpha _{1}, \end{aligned}$$
(108)

where the variable \(\alpha _{1}\) in Equation (108) is the virtual controller. Defining the Lyapunov candidate function in much the same way as was defined in Equation (102) and differentiating the Lyapunov function along the trajectory of the system yields

$$\begin{aligned} \dot{V}_{1} = z_{1} \dot{z}_{1} = z_{1} (x_{2} + \alpha _{1}). \end{aligned}$$

Designing \(\alpha _{1} = -c_{1} z_{1}\) will thus make

$$\begin{aligned} \dot{V}_{1} = -c_{1} z_{1}^{2} + z_{1} z_{2}. \end{aligned}$$

Since we are designing for \(z_{2}\) to eventually reach zero, the value of \(\dot{V}_{1}\) will be less than zero, and thus the top equation is stabilised. Furthermore,

$$\begin{aligned} \dot{\alpha }_{1} = -c_{1} \dot{z}_{1} = -c_{1} (z_{2} + \alpha _{1}). \end{aligned}$$
(109)

We next design another virtual controller to stabilise the second equation. In this light the third new state variable is defined as follows:

$$\begin{aligned} z_{3} = x_{3} - \alpha _{2}. \end{aligned}$$
(110)

The second Lyapunov candidate function is defined as follows:

$$\begin{aligned} V_{2} = V_{1} + \frac{1}{2} z_{2}^{2}. \end{aligned}$$
(111)

The derivative of Equation (111) with respect to time along the trajectory of the system is

$$\begin{aligned} \dot{V}_{2} = \dot{V}_{1} + z_{2} \dot{z}_{2}. \end{aligned}$$
(112)

The value of \(\dot{z}_{2}\) is

$$\begin{aligned} \dot{z}_{2} &= \dot{x}_{2} - \dot{\alpha }_{1} \\ &=x_{3} + c_{1} z_{2} - \alpha _{1} \\ &=z_{3} + c_{1} (z_{1} + z_{2}). \end{aligned}$$
(113)

Substituting the value of \(\dot{z}_{2}\) in Equation (112) yields

$$\begin{aligned} \dot{V}_{2} = -c_{1} z_{1}^{2} + z_{2} \bigl(z_{3} + c_{1} (z_{1} + z_{2})\bigr). \end{aligned}$$
(114)

Designing \(\alpha _{2}\) to be

$$\begin{aligned} \alpha _{2} = -c_{1} (z_{1} + z_{2}) - c_{2} z_{2}, \end{aligned}$$
(115)

results in \(\dot{V}_{2}\) that is guaranteed to be negative definite, meaning \(z_{2}\) will be stabilised. Furthermore,

$$\begin{aligned} \dot{\alpha }_{1} &= -c_{1} \dot{z}_{1} - (c_{1} +c_{2}) \dot{z}_{2} \\ &=-c_{1} (z_{2} + \alpha _{1}) + (c_{1} + c_{2}) \bigl[x_{3} + c_{1} (z_{2} + \alpha _{1}) \bigr]. \end{aligned}$$
(116)

The third Lyapunov candidate function is now defined as follows:

$$\begin{aligned} V_{3} = V_{1} + V_{2} + \frac{1}{2} z_{3}^{2}. \end{aligned}$$
(117)

The derivative of Equation (111) with respect to time along the trajectory of the system is

$$\begin{aligned} \dot{V}_{3}={}& \dot{V}_{1} + \dot{V}_{2} + z_{3} \dot{z}_{3} \\ ={}&{-}2 c_{1} z_{1}^{2} -c_{2} z_{2}^{2} +z_{3} \bigl[-a_{1} z_{3} -a_{2} z_{2} -a_{3} z_{1} + u(t) \\ &{}- \bigl[-c_{1} (z_{2} + \alpha _{1}) -(c_{1}+c_{2}) \bigl(x_{3} +c_{1} (z_{2} + \alpha _{1})\bigr)\bigr]\bigr]. \end{aligned}$$
(118)

Designing \(u(t)\) to be

$$\begin{aligned} u(t) = \frac{1}{\rho } [ a_{1} x_{3} + a_{2} x_{2} + a_{3} x_{1} + \dot{\alpha }_{2} -c_{3} z_{3} ], \end{aligned}$$
(119)

will force \(\dot{V}_{2}\) to be negative definite, keeping the closed loop system stable.

In practice, only the value of \(x_{1}\) is measured, while those of \(x_{2}\) and \(x_{3}\) are not. However, these unmeasured variables can be attained through the integral reconstruction model as follows:

$$\begin{aligned} &\hat{x}_{2}=-a_{3} I^{(2)} x_{1,\mathrm{data}} -a_{2} I^{(2)} x_{1,\mathrm{data}} -a_{1} x_{1,\mathrm{data}} + \frac{1}{\rho } I^{(2)} u(t), \end{aligned}$$
(120)
$$\begin{aligned} &\hat{x}_{3}=-a_{3} I^{(1)} x_{1,\mathrm{data}} -a_{2} x_{1,\mathrm{data}} -a_{1} \hat{x}_{2} + \frac{1}{\rho } I^{(1)} u(t). \end{aligned}$$
(121)

3.6.3 Controller response results

For the non-delay model, Fig. 28 shows the results of the backstepping control responses when \(c_{1} =5\) and \(c_{2} = 5\). It is seen that the yaw angle increases from zero to about 0.02 before settling at zero by \(t=3\) seconds. The roll angle gradually decays and finally settles to zero at around one second.

Figure 28
figure 28

Backstepping control response results for the non-delay model with parameters \(c_{1}=5\), \(c_{2} =5\)

Figure 29 shows the case of using \(c_{1}=20\), \(c_{2}=100\). The yaw angle in this case decreases to zero within 1 second, while the roll angle decreases from about 2 degrees to zero in about 1 seconds, all the while staying at the zero equilibrium.

Figure 29
figure 29

Backstepping control response results for the non-delay model with parameters \(c_{1}=20\), \(c_{2} =100\)

For the use of the delay model, Fig. 30 shows the case of using \(c_{1}=10\), \(c_{2}=5\), \(c_{3}=5\). In this case the yaw angle deviates about 0.008 degrees before returning to zero in three seconds. The roll angle decreases from about 4 degrees to zero within one second and stays at the zero equilibrium thereafter. Similar results were obtained for the case of using \(c_{1}=10\), \(c_{2}=10\), \(c_{3}=5\) which is shown in Fig. 31. In this case, however, the deviation of the yaw angle decreases by 0.002 degrees to 0.006 degrees before returning to the zero equilibrium.

Figure 30
figure 30

Backstepping control response results for the delay model with parameters \(c_{1}=10\), \(c_{2} =5\), \(c_{3}=5\)

Figure 31
figure 31

Backstepping control response results for the delay model with parameters \(c_{1}=10\), \(c_{2} =10\), \(c_{3}=5\)

Overall, it is seen that using the delay model uses less controlling efforts to keep the yaw angle stabilised at about the zero equilibrium, while similar efforts must be exerted to bring the roll angle down to the zero equilibrium. These results imply that, even though the backstepping controller does a good job of handling the nonlinearities and modelling errors, the controller itself, like many such nonlinear controllers, is designed based on the principle of Lyapunov stability, which does not take into account the controlling effort penalties. In this respect the use of a better model would lessen the controller efforts required in the design of the nonlinear controllers.

4 Conclusion

This work has developed and extended a modelling methodology to characterise nonlinear damping and stiffness for second order systems from previous research. The methodology initially assumes a flexible model and, through the use of the integral-based parameter identification method, identifies a constant piecewise damping and stiffness parameters. The identified parameters are then correlated to the square of the velocity, effectively an energy-like function, to allow a construction of a nonlinear vibration model. To capture the effect of the time delay, a time delay model in the form of a second order delay differential equation was also considered. Theoretical analyses were also investigated into the global stabilities of both model families, namely the non-delay model and the delay model.

For both model families, coefficients were firstly identified across the entire data with equally spaced intervals. These coefficients were then correlated to the energy-like function to yield a nonlinear piecewise hyperbolic function, which effectively reveals the structural aspects of the vibration, namely that the energy levels also matter in the vibration generations. Both families of models were applied to a specialised robot arm system designed for orchard spraying. The nonlinear model gave significant improvements over the standard linear model in data fitting, which were further enhanced by the addition of the time delay consideration. This concept is different from the friction induced models normally seen in the literature, where initially a complicated structure must be assumed to model the system.

To demonstrate the model in action with control, a backstepping controller was designed for both the non-delay model and the delay model. It was found that overall the use of the delay model expends less controlling efforts to keep both the yaw and roll angle about the zero equilibrium. Even though the backstepping controller, being a nonlinear controller, is very strong in handling the nonlinearities and modelling errors, the use of a better model lessens the required control efforts.

Availability of data and materials

The dataset generated and used to support the findings of this work are available from the corresponding author upon reasonable request.

References

  1. Lowenberg-DeBour, J., et al.: Economics of robots and automation in field crop production. Precis. Agric. 21, 278–299 (2020)

    Article  Google Scholar 

  2. Finger, R., Swinton, S., El Benni, N., Walter, A.: Precision farming at the nexus of agricultural production and the environment. Ann. Rev. Res. Econ. 11, 313–335 (2019)

    Article  Google Scholar 

  3. Duckett, T., Pearson, S., Blackmore, S., Grieve, B.: Agricultural robots: the future of robotic agriculture. UK-RAS White Papers, EPSRC UK-Robotics and Autonomous Systems Network. Accessed 12 Apr 2020 from http://arxiv.org/ftp/arxiv/papers/1806/1806.06762.pdf

  4. Shamshiri, R.R., et al.: Research and development in agricultural robotics: a perspective of digital farming. Int. J. Agri. Biol. Eng. 11(4), 1–14 (2018)

    Google Scholar 

  5. Gerrish, J.B., Surbrook, T.C.: Mobile robots in agriculture. ASAE 30–41, (1984)

  6. Kondo, N., et al.: A machine vision system for tomato cluster harvesting robot. Eng. Agric. Environ. Food 2(2), 60–65 (2009)

    Article  Google Scholar 

  7. Bac, C.W., et al.: Harvesting robots for high value crops: state-of-the-art review and challenges. J. Field Robot. 31(6), 888–911 (2014)

    Article  Google Scholar 

  8. Silwal, A., Davidson, J.R., Karkee, M., Mo, C., Zhang, Q., Lewis, K.: Design, integration and field evaluation of robotic apple harvester. J. Field Robot. 34(6), 1140–1159 (2017)

    Article  Google Scholar 

  9. Bakker, T., van Asselt, K., Bontsema, J., Mueller, J., van Straten, G.: Systematic design of an autonomous platform for robotic weeding. J. Terramech. 47(2), 63–73 (2010)

    Article  Google Scholar 

  10. Sabanci, K., Aydin, C.: Smart robotic weed control system for sugar beet. Agric. Sci. Technol. 19(1), 73–83 (2017)

    Google Scholar 

  11. Raja, R., Ngugen, T.T., Slaughter, D.C., Fennimore, S.A.: Real-time weed-crop classification and localisation technique for robotic weed control in lettuce. Biosyst. Eng. 192, 257–274 (2020)

    Article  Google Scholar 

  12. Berenstein, R., Edan, Y.: Human-robot cooperative precision spraying: collaboration levels and optimization function. In: 10th IFAC Symposium on Robot Control, Dubrovnik, Croatia, pp. 799–804 (2012)

    Google Scholar 

  13. Oberti, R., et al.: Selective spraying of grapevines for disease control using a modular agricultural robot. Biosyst. Eng. 146, 203–215 (2016)

    Article  Google Scholar 

  14. Kassim, A.M., et al.: Design and development of autonomous pesticide sprayer robot for fertigation farm. Int. J. Adv. Comput. Sci. Appl. 2, 545–551 (2020)

    Google Scholar 

  15. Kaldestad, K.B., Tyapin, I., Hovland, G.: Robotic face milling path correction and vibration reduction. In: IEEE International Conference on Advanced Intelligent Mechanics (AIM), pp. 543–548 (2015)

    Google Scholar 

  16. Kumaresan, R., Tufts, D.: Estimating the parameters of exponentially damped sinusoids and pole zero modelling in noise. IEEE Trans. Acoust. Speech Signal Process. 30, 833–840 (1982)

    Article  Google Scholar 

  17. Barone, P.: Some practical remarks on the extended Prony’s method of spectrum analysis. Proc. IEEE 76, 716–723 (1988)

    Article  Google Scholar 

  18. Markovsky, I., Van Huffel, S.: Overview of total least squares methods. Signal Process. 87, 2283–2302 (2007)

    Article  Google Scholar 

  19. Hua, Y., Sarkar, T.K.: Matrix pencil method for estimating parameters of exponentially damped/undamped sinusoids in noise. IEEE Trans. Acoust. 38, 814–824 (1990)

    Article  MathSciNet  Google Scholar 

  20. Routray, A., Pradhan, A.K., Rao, K.P.: A novel Kalman filter for frequency estimation of distorted signals in power system. IEEE Trans. Instrum. Meas. 51, 469–479 (2002)

    Article  Google Scholar 

  21. Wiltshire, R.A., et al.: A Kalman filtering approach to rapidly detecting modal changes in power systems. IEEE Trans. Power Syst. 22, 1698–1706 (2007)

    Article  Google Scholar 

  22. Zadeh, R.A., Ghosh, A., Ledwich, G.: Combination of Kalman filter and least-error square techniques in power system. IEEE Trans. Power Deliv. 25, 2868–2880 (2010)

    Article  Google Scholar 

  23. Ning, J., Pan, X., Venkatasubramanian, V.: Oscillation modal analysis from ambient synchrophasor data using distributed frequency domain optimization. IEEE Trans. Power Syst. 28(2), 1960–1968 (2013)

    Article  Google Scholar 

  24. Karimi-Ghartemani, M., Khajehoddin, S.A., Jain, P.K., Bakhshai, A., Mojiri, M.: Addressing DC component in PLL and notch filter algorithm. IEEE Trans. Power Electron. 27, 78–86 (2012)

    Article  Google Scholar 

  25. Mansouri, M., Mojiri, M., Ghadiri-Modarres, M.A., Karimi-Ghartemani, M.: Estimation of electromechanical oscillations from phasor measurements using second order generalized integrator. IEEE Trans. Instrum. Meas. 64(4), 943–950 (2014)

    Article  Google Scholar 

  26. Hinrichs, N., Oestreich, M., Popp, K.: On the modeling of friction oscillators. J. Sound Vib. 216, 435–459 (1998)

    Article  Google Scholar 

  27. Li, Y., Feng, Z.C.: Bifurcation and chaos in friction induced vibration. Commun. Nonlinear Sci. Numer. Simul. 9, 633–647 (2004)

    Article  Google Scholar 

  28. Bultin, T., Woodhouse, J.: Friction-induced vibration: quantifying sensitivity and uncertainty. J. Sound Vib. 329(1–2), 509–526 (2010)

    Google Scholar 

  29. Nobari, A., Ouyang, H., Bannister, P.: Statistics of complex eigenvalues in friction-induced vibration. J. Sound Vib. 338, 169–183 (2015)

    Article  Google Scholar 

  30. Nechak, L., Sinou, J.J.: Hybrid surrogate model for the prediction of uncertain friction-induced instabilities. J. Sound Vib. 126, 122–143 (2017)

    Article  Google Scholar 

  31. Massa, F., et al.: Uncertain friction-induced vibration study: coupling of fuzzy logic, fuzzy sets and interval theories. ASME J. Risk Uncertain. Part B 2, 011008 (2016)

    Article  Google Scholar 

  32. Mallon, N., et al.: Friction compensation in a controlled one-link robot using reduced order observer. IEEE Trans. Control Syst. Technol. 14, 374–383 (2006)

    Article  Google Scholar 

  33. Basturk, H.I.: Observer based boundary control design for suppression of slick-slip oscillations in drilling systems with only surface measurements. J. Dyn. Syst. Meas. Control 139, 1–7 (2017)

    Google Scholar 

  34. Nechak, L.: Nonlinear state observer for estimating and controlling of friction-induced vibrations. Mech. Syst. Signal Process. 139, 106588 (2020)

    Article  Google Scholar 

  35. Wongvanich, N., Hann, C.E., Sirisena, H.R.: Minimal modeling methodology to characterize non-linear damping in an electromechanical system. Math. Comput. Simul. 117, 117–140 (2015)

    Article  MathSciNet  Google Scholar 

  36. Cartwright, M.J.: On the stability of solution of certain differential equations of the fourth order. Q. J. Mech. Appl. Math. 9, 185–194 (1956)

    Article  MathSciNet  Google Scholar 

  37. Okereke, R.N.: Lyapunov stability analysis of certain third order nonlinear differential equations. J. Appl. Math. 7, 1971–1977 (2016)

    Article  Google Scholar 

Download references

Acknowledgements

This work is supported by the Research Seed Grant for New Lecturer, KMITL Research Fund, King Mongkut’s Institute of Technology Ladkrabang, Thailand.

Funding

Not applicable.

Author information

Authors and Affiliations

Authors

Contributions

NW provided the mathematical model, conducted the system identification, designed the backstepping controller and set up the original manuscript draft. SB improved the manuscript. AC developed the data acquisition system and collected the data needed for the system identification analysis. All authors read and approved the final version of the manuscript.

Corresponding author

Correspondence to Napasool Wongvanich.

Ethics declarations

Ethics approval and consent to participate

Not applicable.

Competing interests

The authors declare that they have no competing interests.

Consent for publication

All authors are in unison for the publication of this manuscript.

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wongvanich, N., Boksuwan, S. & Chesof, A. Simplified modelling and backstepping control of the long arm agricultural rover. Adv Differ Equ 2020, 701 (2020). https://doi.org/10.1186/s13662-020-03158-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1186/s13662-020-03158-y

Keywords