Skip to main content

Energy-efficient control of a screw-drive pipe robot with consideration of actuator’s characteristics


Pipe robots can perform inspection tasks to alleviate the damage caused by the pipe problems. Usually, the pipe robots carry batteries or use a power cable draining power from a vehicle that has many equipments for exploration. Nevertheless, the energy is limited for the whole inspection task and cannot keep the inspection time too long. In this paper, we use the total input energy as the cost function and a more accurate DC motor model to generate an optimal energy-efficient velocity control for a screw-drive pipe robot to make use of the limited energy in field environment. We also propose a velocity selection strategy that includes the actual velocity capacity of the motor, according to the velocity ratio \(k_{\mathrm{v}}\), to keep the robot working in safe region and decrease the energy dissipation. This selection strategy considers three situations of the velocity ratio \(k_{\mathrm{v}}\) and has a wide range of application. Simulations are conducted to compare the proposed method with the sinusoidal control and loss minimization control (minimization of copper losses of the motor), and results are discussed in this paper.


With the advancement of the robotics and industrial technology, many pipe robots have been developed to explore the pipes that have cracks or defects to avoid serious accidents [14].

Up to now, there are more focus on the energy-efficient control of robots [5, 6]. Robots that perform pipe inspection task are often in the field environment, and the energy is a crucial limitation to the time of execution of a task. Most of the pipe robots are driven by DC motors. If the energy-efficient method is applied to the pipe inspection system, the energy dissipation will be decreased and the total time of performing a task will be increased. The energy dissipated through many ways, but only controlling the armature current and field current losses is feasible [7, 8]; further, many researchers conducted on the loss minimization control of the DC motor [9, 10]. They use the armature resistance loss and field resistance loss as the performance index to reduce the energy dissipation, and get the optimal control law, but in the view of the total input energy that is drawn from the power source is usually not optimal.

This paper proposes an energy-efficient solution for the control of a screw-type pipe robot by using an improved DC motor model and employing the total input energy as the performance index that reflect the whole system energy consumption. Straight pipe structure is the most common type; thus, this paper is limited to discuss the condition that the pipe robot is used in the straight horizontal pipe. Additionally, sinusoidal fashion control and the loss minimization control that only considers armature resistance are used as the comparison methods.


The screw-drive pipe robot

The environment of the pipe is not invariable; thus, the pipe robot should possess the characteristics of multifunction, adaptability and efficiency. The screw-drive robots are not rare [3, 4], and driving principle is illustrated in Fig. 1.

Fig. 1
figure 1

The screw-type pipe robot. a Sketch of the driving principle, b typical screw-drive-type robot

Typical screw-drive robot is usually composed of a rotator, elastic support arms, rollers and a motor for driving. The rollers have a constant incline angle with respect to the cross section of the pipe. When the motor turns, the whole body moves forward. If the motor turns reversely, the body moves backward. To propel a screw-drive-type robot, one motor is enough for straight pipe and elbow. However, for the T-shape pipe, extra navigation mechanism is needed.

A screw-type robot considered in this paper is shown in Fig. 2a. The advantage of this robot is that it has mobile ability in the pipe and detecting function for inspection, while only one DC motor is installed, which results in low energy consumption and low cost to fabricate. The robot has two working modes: a driving mode and a detecting mode. The robot propels itself in the pipe under the driving mode, and it is used for finding the defect of the pipe under the detecting mode. By setting an on–off solenoid, the two working modes will switch to each other; thus, the robot performs the inspection task without other extra motors. Therefore, such a robot is an efficient design, because it uses one motor and a solenoid to perform a task instead of two motors (one motor for moving and the other motor for detecting). There are two types of driving arm: One type has a constant incline angle as shown in Fig. 1b, while the incline angle of the other type changes according to the payload variation. The two types of driving arm can be both fixed on the robot, but this paper only considers the driving arms with constant incline angle. Further detailed information, for example, the mechanical structure, can be found in [4].

Fig. 2
figure 2

The screw-drive robot with driving and detecting ability with one DC motor. a Prototype, b robot is under driving mode, c the solenoid is electrified, and robot is under detecting mode and check the defect of the pipe, d after checking the area, the solenoid is set off, and the robot is back to driving mode again, e another operation cycle of detecting

Motion equation of the DC motor

Basic equations of the DC motor

An armature-controlled DC motor is shown in Fig. 3, in which the field current is constant.

Fig. 3
figure 3

Equivalent circuit of the DC motor

The basic equations of circuit are

$$\begin{aligned}&{L_{\mathrm{a}}}\frac{{\mathrm{d}{i_{\mathrm{a}}}}}{{\mathrm{d}t}} + {R_{\mathrm{a}}}{i_{\mathrm{a}}} + {V_{\mathrm{b}}} = {V_{\mathrm{a}}} \end{aligned}$$
$$\begin{aligned}&{i_{\mathrm{a}}} = {i_{\mathrm{m}}} + {i_{\mathrm{h}}} \end{aligned}$$

\({L_{\mathrm{a}}}\) is the armature inductance (the voltage generated by \({L_{\mathrm{a}}}\) is much smaller than that of \({R_{\mathrm{a}}}\) and \({V_{\mathrm{b}}}\); thus, in this paper we do not consider the influence of \({L_{\mathrm{a}}}\), \({V_{\mathrm{a}}}\) and \({V_{\mathrm{b}}}\) is the applied armature voltage and back-emf, respectively. \({R_{\mathrm{a}}}\) is the armature resistance, while \({R_{\mathrm{h}}}\) is equivalent resistance for power losses due to the air resistance of rotor and power loss due to the friction between mechanical parts, and Ma had pointed out that the \({R_{\mathrm{h}}}\) should be included when the motor efficiency is calculated [11]. \({i_{\mathrm{a}}}\), \({i_{\mathrm{h}}}\) and \({i_{\mathrm{m}}}\) are the current of the \({R_{\mathrm{a}}},\,{R_{\mathrm{h}}}\) and the armature, respectively. And the back-emf \({V_{\mathrm{b}}}\) and the armature torque and current are given by

$$\begin{aligned} {V_{\mathrm{b}}}= {K_{\mathrm{e}}}{\omega _{\mathrm{m}}} \end{aligned}$$
$$\begin{aligned} {T_{\mathrm{m}}}= {K_{\mathrm{t}}}{i_{\mathrm{m}}} \end{aligned}$$
$$\begin{aligned} {i_{\mathrm{m}}}= {i_{\mathrm{a}}} - {V_{\mathrm{b}}}{/}{R_{\mathrm{h}}} \end{aligned}$$

where \({K_{\mathrm{e}}}\) and \({K_{\mathrm{t}}}\) is the back-emf constant and torque constant, respectively, and they have the same value, when SI units are used.

By using the above equation, we can also calculate the value of \({R_{\mathrm{h}}}\),

$$\begin{aligned} {R_{\mathrm{h}}}=\frac{V_{\mathrm{b}}}{i_{\mathrm{a}}-i_{\mathrm{m}}}=\frac{{K_{\mathrm{e}}}{\omega _{\mathrm{m}}}{R_{\mathrm{a}}}}{{V_{\mathrm{b}}}-{K_{\mathrm{e}}}{\omega _{\mathrm{m}}}-{R_{\mathrm{a}}}{i_{\mathrm{m}}}} \end{aligned}$$

As shown in Fig. 3, the whole robot has been treated as a power transmission with a gear ratio of \({i_\mathrm{total}}\); as a result, it amplify the motor torque \({T_{\mathrm{m}}}\) and angular velocity \({\omega _{\mathrm{m}}}\) into that of the output rotator \({T_{\mathrm{out}}}\) and \({\omega _{{\mathrm{out}}}}\) and conquer the payload \({T_{\mathrm{load}}}\). Thus, the dynamics of the motor is

$$\begin{aligned} {J_{\mathrm{eq}}}\frac{{\mathrm{d}{\omega _{\mathrm{m}}}}}{{\mathrm{d}t}} + {c_{\mathrm{m}}}{\omega _{\mathrm{m}}} + \frac{{{T_{\mathrm{load}}}}}{{{i_{\mathrm{total}}}}} = {T_{\mathrm{m}}} \end{aligned}$$

\({c_{\mathrm{m}}}\) is the viscous coefficient of the motor, and \({T_{\mathrm{load}}}\), \({J_{\mathrm{eq}}}\) are the load torque and equivalent moment of inertia of the robot’s output rotator and the rotor of the motor, respectively.

Efficiency of the DC motor

From the above equations, the mechanical power generated by the motor is \({T_{\mathrm{m}}}{\omega _{\mathrm{m}}}\), and the motor efficiency \({\eta _{\mathrm{motor}}}\) is

$$\begin{aligned} {\eta _{\mathrm{motor}}} =\frac{{T_{\mathrm{m}}}{\omega _{\mathrm{m}}}}{{V_{\mathrm{a}}}{i_{\mathrm{a}}}} \end{aligned}$$

The above equations have shown the influence of \({R_{\mathrm{h}}}\), when calculating the motor efficiency. Moreover, using the above equations, the motor efficiency that is considering \({R_{\mathrm{a}}}\) and \({R_{\mathrm{h}}}\) and that of only considering \({R_{\mathrm{a}}}\) is shown in Fig. 4 with the same parameters in Table 1. The reason of Fig. 4’s result is that considering \({R_{\mathrm{a}}}\) and \({R_{\mathrm{h}}}\) needs more electrical energy than that of only considering \({R_{\mathrm{a}}}\), when the motor working at a same combination of torque and velocity. The motor efficiency has decreased, when \({R_{\mathrm{h}}}\) is considered.

Fig. 4
figure 4

Efficiency of an armature-controlled DC motor. a Motor efficiency that considering \({R_{\mathrm{a}}}\) and \({R_{\mathrm{h}}}\), b motor efficiency that only considering \({R_{\mathrm{a}}}\)

Motion and force analysis of the robot

The kinematics of the wheel-type robot is generally calculated by

$$\begin{aligned} v = {\omega _{\mathrm{out}}}{\gamma } \end{aligned}$$

while v and \({\omega _{\mathrm{out}}}\) are the translational speed and rotational speed of robot, respectively. \({\gamma }\), here, is a coefficient that converts rotational speed into translational speed. Moreover, the kinematics of screw-drive robot is (detailed can be found in [3, 4])

$$\begin{aligned} v= \, & {} {\omega _{\mathrm{out}}}\left( {{r_\mathrm{w}} + L} \right) \tan \alpha \nonumber \\ \gamma= \,& {} \left( {{r_\mathrm{w}} + L} \right) \tan \alpha \end{aligned}$$

\({r_\mathrm{w}}\) is the radius of the roller and \(L = 0.5D - {r_\mathrm{w}}\), while D is the inner diameter of the pipe; \(\alpha\) is the constant incline angle, as shown in Fig. 5.

Fig. 5
figure 5

Forces acting on the robot

Let \({F_{dj}}\) and \({F_{rj}}\) denote the normal and tangential friction, and \({f_\mathrm{n}}\) and \({f_{\mathrm{t}}}\) be the corresponding frictional coefficients, respectively. \({F_{\mathrm{re}}}\) is all the other resistant forces acting on the robot, and n is the number of the driving arms. The static equilibrium equations can be derived from Fig. 5

$$\begin{aligned}&n\left( {{F_{dj}}\cos \alpha - {F_{rj}}\sin \alpha } \right) = {F_{\mathrm{re}}} \end{aligned}$$
$$\begin{aligned}&n\left( {{F_{dj}}\sin \alpha + {F_{rj}}\cos \alpha } \right) = 2{T_{\mathrm{out}}}/D \end{aligned}$$

From (11)and (12), the relation between \({T_{\mathrm{load}}}\) and \({T_{\mathrm{out}}}\) is

$$\begin{aligned} {T_{\mathrm{load}}} = \frac{{{F_{dj}}\cos \alpha - {F_{rj}}\sin \alpha }}{{{F_{dj}}\sin \alpha + {F_{rj}}\cos \alpha }}{T_{\mathrm{out}}} =F\left( \alpha \right) {T_{\mathrm{out}}} \end{aligned}$$

Thus, the load torque term \({T_{\mathrm{load}}}/{i_{\mathrm{total}}}\) can be updated by \({{{T_{\mathrm{load}}}}}/{{F\left( \alpha \right) {i_{\mathrm{total}}}}}\). Now, we consider the condition of not including the tangential friction force. Figure 6a, b shows the value of \(F(\alpha )\) with environment parameters \({f_\mathrm{n}} =0.5\) and \({f_{\mathrm{t}}}=0.01\) and that of \({f_\mathrm{n}}=0.5\) and \({f_{\mathrm{t}}} =0\). As shown in Fig. 6c, the difference of the two conditions is almost the same after an artificial coefficient 0.91 multiplies \({F(\alpha )}\) between 9° and 20°, under the condition \({f_\mathrm{n}}=0.5\) and \({f_{\mathrm{t}}}=0.\)

Fig. 6
figure 6

Values of \(F(\alpha )\). a \({f_n}=0.5\) and \({f_t}=0.01\) versus \({f_n}=0.5\) only. b Zoom in figure of (a) with the interval from \({8^\circ}\) to \({20^\circ}\). c \({f_n}=0.5\) and \({f_t}=0.01\) versus \({f_n}=0.5\) and an artificial coefficient 0.91 times (13)

Now, \(F(\alpha )\) can be simplified as follows

$$\begin{aligned} F\left( \alpha \right) = 0.91\cot \alpha \end{aligned}$$

while the 0.91 is the artificial coefficient to calculate \(F(\alpha )\) between the angle of 9° and 20°. The motion equation is derived

$$\begin{aligned} {J_{\mathrm{eq}}}{\dot{\omega } _{\mathrm{m}}} + \left( {\frac{{{K_{\mathrm{t}}}{K_{\mathrm{e}}}}}{{{R_{\mathrm{h}}}}} + {c_{\mathrm{m}}}} \right) {\omega _{\mathrm{m}}} + \frac{{{T_{\mathrm{load}}}}}{{{i_{\mathrm{total}}}F\left( \alpha \right) }} - {K_{\mathrm{t}}}{i_{\mathrm{a}}} = 0 \end{aligned}$$

and the state equation is given by

$$\begin{aligned} {\dot{\omega } _{\mathrm{m}}} = - A{\omega _{\mathrm{m}}} + B{i_{\mathrm{a}}} + C \end{aligned}$$

where \({A = \frac{{{K_{\mathrm{t}}}{K_{\mathrm{e}}} + {c_{\mathrm{m}}}{R_{\mathrm{h}}}}}{{{J_{\mathrm{eq}}}{R_{\mathrm{h}}}}}}\), \({B = \frac{{{K_{\mathrm{t}}}}}{{{J_{\mathrm{eq}}}}}}\), \({C = - \frac{{{T_{\mathrm{load}}}}}{{F\left( \alpha \right) {J_{\mathrm{eq}}}{i_{\mathrm{total}}}}}}\).

Energy-efficient control

According to the task requirements, this robot has two modes:

  1. 1.

    Cruise start/stop mode: Cruise start mode is used to start the motor and the robot at a specified speed; then, the motor and the robot keep this speed moving to find the potential defect of the pipe. When the detecting camera finds the suspicious defect, the robot will stop and detect that area carefully; thus, stopping the robot is called cruise stop mode.

  2. 2.

    Location mode: Sometimes, a segment of pipe need not to be checked; thus, the robot just passes by. The operator only inputs the displacement \(S_{\mathrm{f}}\) within the time \(t_{\mathrm{f}}\); then, the optimal velocity profile is generated according to the value of \(k_{\mathrm{v}}\), which is a speed ratio defined in (38).

Cruise start/stop mode

Under this mode, the final velocity \({\omega _{\mathrm{f}}}\) and the corresponding time \({t_{\mathrm{f}}}\) are given, and the optimal velocity profile is generated by the control law. After the time \({t_{\mathrm{f}}}\), the actuator of the robot will keep the value of \({\omega _{\mathrm{f}}}\) moving forward, since keeping the velocity invariant will result in the minimization of the extra consumption of the total input electrical energy. On the contrary, under the cruise stop mode, the initial motor velocity \({\omega _0}\) and the time \({t_{\mathrm{f}}}\) are given.

The above problem is to find the optimal control \({i_{\mathrm{a}}}\) that minimizes the cost function for the given constrains. The cost function is the integrals of the total electrical energy

$$\begin{aligned} {\mathrm{min }}\,{E_{\mathrm{in}}} = \int _0^{{t_{\mathrm{f}}}} {{V_{1,\mathrm{a}}}{i_{1,\mathrm{a}}}\mathrm{d}t} \end{aligned}$$

with the constrains

$$\begin{aligned} {{\dot{\omega }_{1,\mathrm{m}}} = - A{\omega _{1,\mathrm{m}}} + B{i_{1,\mathrm{a}}} + C} \end{aligned}$$

The Hamiltonian is formed by

$$\begin{aligned} H = ({R_{\mathrm{a}}}{i_{1,\mathrm{a}}} + {K_{\mathrm{e}}}{\omega _{1,\mathrm{m}}}){i_{1,\mathrm{a}}} + {\lambda _1}\left( { - A{\omega _{1,\mathrm{m}}} + B{i_{1,\mathrm{a}}}} \right) \end{aligned}$$

with the costate equation as

$$\begin{aligned} {\dot{\lambda }_1} = - \frac{{ \partial H}}{{ \partial {\omega _{1,\mathrm{m}}}}} \end{aligned}$$

where the subscript 1 represents the corresponding variations of the cruise start/stop mode. The optimal control is obtained by

$$\begin{aligned} {\left. {\frac{{ \partial H}}{{ \partial {i_{1,\mathrm{a}}}}}} \right| _{{i_{1,\mathrm{a}}} = i_{1,\mathrm{a}}^ * }} = 0 \end{aligned}$$

and solving for \(i_{1,\mathrm{a}}^ *\)

$$\begin{aligned} i_{1,\mathrm{a}}^ * = \frac{{ - 1}}{{2{R_{\mathrm{a}}}}}\left( {{\lambda _1}B + {K_{\mathrm{e}}}{\omega _{1,\mathrm{m}}}} \right) \end{aligned}$$

Solve the differential equations, and the optimal velocity is formulated by

$$\begin{aligned} {\omega _{1,\mathrm{m}}}\left( t \right) = {C_{11}}{e^{t/{\tau _{\mathrm{m}}}}} + {C_{12}}{e^{ - t/{\tau _{\mathrm{m}}}}} + {F_{0,1}} \end{aligned}$$

\({\tau _{\mathrm{m}}} = {\sqrt{{A^2} + AB{K_{\mathrm{e}}}/{R_{\mathrm{a}}}} ^{ - 1}},{F_{0,1}} = - \left( {2AC{R_{\mathrm{a}}} + CB{K_{\mathrm{e}}}} \right) /2{R_{\mathrm{a}}}\) where \({C_{11}}\) and \({C_{12}}\) are constants that are determined by the boundary conditions, and \({\tau _{\mathrm{m}}}\) represents the mechanical time constant. The boundary condition of cruise start mode is \(\begin{aligned}{\omega _{1,\mathrm{m}}}(0)=0, {\omega _{1,\mathrm{m}}}\left( {{t_{\mathrm{f}}}} \right) = {\omega _{\mathrm{f}}}\end{aligned}\). Then \({C_{11}}\) and \({C_{12}}\) in this condition are

$$\begin{aligned} \begin{array}{l} {C_{11}}=\frac{{{\omega _{\mathrm{f}}} + {F_{0,1}}\left( {{e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - 1} \right) }}{{{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}}}\\ {C_{12}}=\frac{{ - {\omega _{\mathrm{f}}} - {F_{0,1}}\left( {{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - 1} \right) }}{{{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}}} \end{array} \end{aligned}$$

While the boundary condition of the cruise stop mode is \({\omega _{1,\mathrm{m}}}\left( 0 \right) = {\omega _0}, {\omega _{1,\mathrm{m}}}\left( {{t_{\mathrm{f}}}} \right) = 0\), then, \({C_{11}}\) and \({C_{12}}\) are

$$\begin{aligned} {C_{11}} &= \frac{{ - {\omega _0}{e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {F_{0,1}}\left( {1 - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}} \right) }}{{{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}}}\nonumber \\ {C_{12}} &= \frac{{{\omega _0}{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {F_{0,1}}\left( {{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - 1} \right) }}{{{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}}} \end{aligned}$$

The optimal velocity profile of the cruise start/stop mode is derived. Moreover, the optimal control \(i_{1,\mathrm{a}}^ *\) is given by

$$\begin{aligned} i_{1,\mathrm{a}}^ * = {B^{ - 1}}\left( {{{\dot{\omega } }_{\mathrm{m}}} + A{\omega _{\mathrm{m}}} - C} \right) \end{aligned}$$

Location mode

Since many segments of the pipe have been checked and do not need to be checked again, the robot needs position to position control. Under the location mode, the operator inputs the desired displacement \({S_{\mathrm{f}}}\) that the robot will move and the time \({t_{\mathrm{f}}}\) that robot will cost. Similarly, the cost function is also the instantaneous total electrical power

$$\begin{aligned} {\mathrm{min }}\,\,{E_{\mathrm{in}}} = \int _0^{{t_{\mathrm{f}}}} {{V_{2,\mathrm{a}}}{i_{2,\mathrm{a}}}\mathrm{d}t} \end{aligned}$$

with the constrains

$$\begin{aligned} {\dot{\theta }_{2,\mathrm{m}}}= \, & {} {\omega _{2,\mathrm{m}}}\end{aligned}$$
$$\begin{aligned} {\dot{\omega } _{2,\mathrm{m}}}= & {} - A{\omega _{2,\mathrm{m}}} + B{i_{2,\mathrm{a}}} + C \end{aligned}$$

The Hamiltonian is

$$\begin{aligned} H = \left( {R_{\mathrm{a}}}{i_{2,\mathrm{a}}} + {K_{\mathrm{e}}}{\omega _{2,\mathrm{m}}}\right) {i_{2,\mathrm{a}}} + {\lambda _{2,1}}{\omega _{\mathrm{m}}} - {\lambda _{2,2}}\left( {A{\omega _{2,\mathrm{m}}} - B{i_{2,\mathrm{a}}}} \right) \end{aligned}$$

Similarly procedure is adopted to get the optimal control, and the costate equations are

$$\begin{aligned} {\dot{\lambda } _{2,1}}= & {} - \frac{ \partial H}{ \partial {\theta _{2,\mathrm{m}}}} = 0 \end{aligned}$$
$$\begin{aligned} {\dot{\lambda } _{2,2}}= & {} - \frac{{ \partial H}}{{ \partial {\omega _{2,\mathrm{m}}}}} \end{aligned}$$

The optimal control \(i_{2,\mathrm{a}}^ *\) is derived also by setting the partial differential equation to zero; thus

$$\begin{aligned} i_{2,\mathrm{a}}^ * = \frac{{ - 1}}{{2{R_{\mathrm{a}}}}}\left( {{\lambda _{2,2}}B + {K_{\mathrm{e}}}{\omega _{2,\mathrm{m}}}} \right) \end{aligned}$$

while the subscript 2 denotes the corresponding variations of the location mode to distinguish the cruise start/stop mode. The boundary conditions of location mode are \({\omega _{2,\mathrm{m}}}(0) = {\omega _{2,\mathrm{m}}}({t_{\mathrm{f}}}) = 0, S({t_{\mathrm{f}}}) = {S_{\mathrm{f}}}, S({t_{\mathrm{f}}}) = {S_{\mathrm{f}}}\). The relation between the rotational angle of the motor \({\theta _{\mathrm{f}}}\) and the translational displacement of the robot \({S_{\mathrm{f}}}\) is

$$\begin{aligned} {\theta _{\mathrm{f}}} = \int _0^{{t_{\mathrm{f}}}} {{\omega _{2,\mathrm{m}}}\mathrm{d}t} = {S_{\mathrm{f}}}{i_{\mathrm{total}}}/\gamma \end{aligned}$$

Then, the optimal velocity is obtained by solving the above equations and the boundary conditions

$$\begin{aligned} {\omega _{\mathrm{m}}}\left( t \right)= {C_1}{e^{t/{\tau _{\mathrm{m}}}}} + {C_2}{e^{ - t/{\tau _{\mathrm{m}}}}} + {F_0} \end{aligned}$$
$$\begin{aligned}{C_1} &= \frac{{{e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - 1}}{{{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}}}{F_0}\nonumber \\ {C_2} &= \frac{{1 - {e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}}}{{{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}}}{F_0}\nonumber \\ {F_0} &= \frac{{{S_{\mathrm{f}}}{i_{\mathrm{total}}}\left( {{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}} \right) }}{{\gamma \left( {{t_{\mathrm{f}}}\left( {{e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}} \right) + 2{\tau _{\mathrm{m}}}\left( {2 - {e^{ - {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}} - {e^{{t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}}}} \right) } \right) }}\nonumber \\ {\tau _{\mathrm{m}}}= \, & {} {\sqrt{{A^2} + AB{K_{\mathrm{e}}}/{R_{\mathrm{a}}}} ^{ - 1}}\end{aligned}$$

here, \({C_1}\), \({C_2}\) and \({F_0}\) are decided by the initial boundary conditions, and \({\tau _{\mathrm{m}}}\) is the mechanical time constant. The optimal control \(i_{2,\mathrm{a}}^ *\) can be also calculated from (25). Let \(a = {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}\), and \({\tau _1} = t/{t_{\mathrm{f}}}\) be the reference time, and (34) can be reformed as

$$\begin{aligned} {\omega _{2,\mathrm{m}}}\left( t \right) = \frac{{{S_{\mathrm{f}}}{i_{\mathrm{total}}}}}{{\gamma {t_{\mathrm{f}}}}}a\frac{{\sinh \left( a \right) - \sinh \left( {a - {\tau _1}a} \right) - \sinh \left( {{\tau _1}a} \right) }}{{a\sinh \left( a \right) - 2\cosh \left( a \right) + 2}} \end{aligned}$$

Trzynadlowski had discussed the optimal velocity by plotting a figure [12]. We will find the extremum of the velocity analytically. When \(a \rightarrow + 0\), by using the infinite series expansion \({e^a}\), (35) yields

$$\begin{aligned} \mathop {\lim }\limits _{a \rightarrow 0} {\omega _{2,\mathrm{m}}} = \frac{{6{\theta _{\mathrm{f}}}}}{{{t_{\mathrm{f}}}}}\left( {{\tau _1} - \tau _1^2} \right) \end{aligned}$$

and when \(a \rightarrow + \infty\), (35) yields

$$\begin{aligned} \mathop {\lim }\limits _{a \rightarrow + \infty } {\omega _{2,\mathrm{m}}} = \frac{{S_{\mathrm{f}}}{i_{\mathrm{total}}}}{\gamma {t_{\mathrm{f}}}} \end{aligned}$$

(36) and (37) can be explained as two extreme conditions for a certain system whose mechanical time constant \({\tau _{\mathrm{m}}}\) has been decided. Assume \({S_{\mathrm{f}}}\) keeps constant, and the final time \({t_{\mathrm{f}}}\) varies. When \({t_{\mathrm{f}}}\) is too short with respect to \({\tau _{\mathrm{m}}}\), the velocity profile will approach (36), but if \({t_{\mathrm{f}}}\) is too long with respect to \({\tau _{\mathrm{m}}}\), the velocity profile is getting close to (37). For better understanding, let \({\omega _{\mathrm{m}}}/({\theta _{\mathrm{f}}}/{t_{\mathrm{f}}})\) be the reference velocity and \(t/{t_{\mathrm{f}}}\) be the reference time, and when \(a = {t_{\mathrm{f}}}/{\tau _{\mathrm{m}}}\) varies, Fig. 7 is plotted as velocity per unit versus time per unit by using the parameters of Table 1.

Fig. 7
figure 7

Optimal velocity changes under various of a

Velocity constrains

It is known that each motor has its maximum speed limit; moreover, it also has a maximum continuous working speed \({\omega _{\mathrm{m,r}}}\) for practical use. Let \({k_{\mathrm{v}}}\) be the speed ratio and defined as

$$\begin{aligned} {k_{\mathrm{v}}} = \frac{{\omega _{\mathrm{m,r}}}\gamma {t_{\mathrm{f}}}}{ {{i_{\mathrm{total}}}{S_{\mathrm{f}}}}} \end{aligned}$$

From the above discussion, we will get \(1 \le {k_{\mathrm{v}}} \le 1.5.\) Thus, when \({k_{\mathrm{v}}}\) is not belonging to this interval, then we need to formulate a new velocity profile. Because \({k_{\mathrm{v}}} = 1.5\), the velocity profile becomes parabola as indicated in (36), and we still adopt this parabolic curve as the velocity profile when \({k_{\mathrm{v}}} \ge 1.5\). Then, the velocity becomes

$$\begin{aligned} {\omega _{\mathrm{m}}}\left( t \right) = \frac{6{S_{\mathrm{f}}}{i_{\mathrm{total}}}}{{\gamma {t_{\mathrm{f}}}}}\left( {t/{t_{\mathrm{f}}} - {t^2}/t_{\mathrm{f}}^2} \right) \end{aligned}$$

As for the condition \(0< {k_{\mathrm{v}}} < 1\), it means that the average speed \({S_{\mathrm{f}}}{i_{\mathrm{total}}}/\gamma {t_{\mathrm{f}}}\) that is given by operator has exceeded the maximum continuous working speed \({\omega _{\mathrm{m,r}}}\). Thus, the robot cannot move a displacement \({S_{\mathrm{f}}}\) within time \({t_{\mathrm{f}}}\). Generally, \({S_{\mathrm{f}}}\) is the destination and cannot change, and the other way is to adjust the time \({t_{\mathrm{f}}}\). From Fig. 7, we can see the region of this condition lies beneath the trapezoidal speed profile and we just follow this trend to form the velocity profile, which is

$$\begin{aligned} {\omega _{\mathrm{m}}}\left( t \right) = \left\{ \begin{array}{ll} {\omega _{\mathrm{m,r}}} - 4{\omega _{{\rm m,r}}}{\left( {t/{t_1} - 0.5} \right) ^2}&{}\qquad {0 \le t \le 0.5{t_1}} \\ {\omega _{\mathrm{m,r}}} &{}\qquad 0.5{t_1}< t \le {t_{\mathrm{f}}} - 0.5{t_1} \\ {\omega _{\mathrm{m,r}}} - 4{\omega _{\mathrm{m,r}}}{\left( {\left( {t - {t_{\mathrm{f}}}} \right) /{t_1} + 0.5} \right) ^2}&{}\qquad \left( {{t_{\mathrm{f}}} - 0.5{t_1}} \right) < t \le {t_{\mathrm{f}}} \end{array} \right. \end{aligned}$$

Between \([0,0.5{t_1}]\) the motor is accelerating the robot along the parabolic curve to the maximum continuous working speed of \({\omega _{\mathrm{m,r}}}\), then it moves at this speed for a while, and finally, it begins to decelerate the robot along the parabolic curve to complete the desired displacement. And \({t_1}\) and \({t_{\mathrm{f}}}\) can be derived by minimizing the total energy \({E_{\mathrm{in}}}\) with respect to the time t

$$\begin{aligned} {S_{\mathrm{f}}}= \,& {} \frac{\gamma }{i_{\mathrm{total}}}\int _0^{{t_{\mathrm{f}}}} {{\omega _{\mathrm{m,r}}}\mathrm{d}t} \end{aligned}$$
$$\begin{aligned} {E_{\mathrm{in}}}= & {} \int _0^{0.5{t_1}} {{V_{\mathrm{a}}}{i_{\mathrm{a}}}\mathrm{d}t} + \int _{{\tau _1}{t_1}}^{{t_{\mathrm{t}}} - 0.5{t_1}} {{V_{\mathrm{a}}}{i_{\mathrm{a}}}\mathrm{d}t} + \int _{{t_{\mathrm{f}}} - 0.5{t_1}}^{{t_{\mathrm{f}}}} {{V_{\mathrm{a}}}{i_{\mathrm{a}}}\mathrm{d}t} \end{aligned}$$

After discussing the above working conditions of the robot, we can formulate the optimal velocity selection strategy, which considers the velocity constrains, under location mode

$$\begin{aligned} {\omega _{\mathrm{m}}}\left( t \right) = \left\{ \begin{array}{ll} {\mathrm{Equation}\,(40)} &{}\quad {0 \le {k_{\mathrm{v}}}<1}\\ {\mathrm{Equation}\,(34)} &{}\quad {1 \le {k_{\mathrm{v}}} \le 1.5}\\ {\mathrm{Equation}\,(39)} &{}\quad {1.5 < {k_{\mathrm{v}}}}\\ \end{array} \right. \end{aligned}$$

Equation (43) guarantees the motor and the robot working in a continuous and safe region, and it is suitable for the pipe robot which will work in field environment. Judging maximum velocity problem does not exist in the cruise start/stop mode, because the control system will compare the input speed \({\omega _{\mathrm{f}}}\) with \({\omega _{\mathrm{m,r}}}\) directly and inform the operator to change the velocity, if \({\omega _{\mathrm{f}}}\) is larger than \({\omega _{\mathrm{m,r}}}\).

Results and discussion

We have derived the energy-efficient control laws of the robot in cruise start/stop mode and location mode, respectively. In this section, simulations are performed to evaluate the proposed energy-efficient control law, and these results are compared with two benchmark methods. One is sinusoidal velocity function based on the computed torque control and is given by

$$\begin{aligned} S\left( t \right)= \, & {} \frac{{S_{\mathrm{f}}}}{2}\left( {1 - \cos \left( {\pi \frac{t}{t_{\mathrm{f}}}} \right) } \right) \end{aligned}$$
$$\begin{aligned} \omega \left( t \right)= \, & {} \frac{\pi {S_{\mathrm{f}}}}{{2\gamma {t_{\mathrm{f}}}}}\sin \left( {\pi \frac{t}{t_{\mathrm{f}}}} \right) \end{aligned}$$

The second benchmark method is the loss minimization control method that optimizes the armature loss \(i_{\mathrm{a}}^2{R_{\mathrm{a}}}\) of the DC motor, which only considered \(R_{\mathrm{a}}\).

Table 1 Parameters of the robot and motor [13]

Figure 8 shows the results of the two methods within the same time interval to reach a same speed that the operator inputs. The velocity and energy dissipation of minimum energy control are both lower than that of loss minimization control that only considers \(R_{\mathrm{a}}\). Figure 8c shows the two conditions after the robot reached the speed of the cruise start mode: One is that the robot keeps the velocity constant, and the other is that the robot’s speed varies (we use a sinusoidal function in this figure). Figure 8d shows that the velocity variation needs more energy to keep the robot moving than that of keeping the velocity invariable. Thus, it is better to keep the speed of the robot stable in the pipe in order to save energy in the field environments.

Fig. 8
figure 8

Cruise start mode with \(\omega _{\mathrm{f}}=270\) rad/s, \(t_{\mathrm{f}}=2\) s. a Velocity comparison, b energy dissipation, c velocity constant versus velocity undulation, d energy dissipation

In Fig. 9a the velocity of the minimum energy control is the lowest one, compared to that of the other two, whose speed exceeds the maximum continuous working speed 0.144 m/s for a short while. Figure 9a, c also shows that the speed of minimum energy control accelerates and decelerates rapidly and maintains a stable speed; this is convenient for the robot while checking the pipe, because a stable moving speed is reasonable for sensor to collect data; as for the other two methods, the speed varies during the whole operation time.

Fig. 9
figure 9

Location mode with \(S_{\mathrm{f}}=1.2\) m, \(t_{\mathrm{f}}=10\) s with \(k_{\mathrm{v}}=1.20\). a Translational velocity, b displacement, c armature current, d armature voltage

Figure 10a shows the energy dissipation of location mode in Fig. 9. The sinusoidal control causes the highest energy, while the loss minimization cost is the lowest. This is because in minimum energy control method, we have considered the armature resistance \({R_{\mathrm{a}}}\) and the equivalent resistance \({R_{\mathrm{h}}}\) of the power loss due to the air resistance of the rotor and power loss due to friction between the mechanical parts as shown in Fig. 3. Thus, the armature current is larger than that of only considering \({R_{\mathrm{a}}}\), when the robot works at the same combination of torque and velocity, which causes more electrical energy. Figure 10b is the condition that \({R_{\mathrm{h}}} \rightarrow \infty\), and the result shows the minimum energy control cost is the lowest energy. Therefore, when we consider \({R_{\mathrm{h}}}\), the total input energy will increase and may possibly greater than loss minimization control, but it gives a more accurate model and numerical results than that of only considering the armature resistance (see Table 2).

Fig. 10
figure 10

Results of the total energy consumption. a Results considering \(R_{\mathrm{a}}\) and \(R_{\mathrm{h}}\), b results of \(R_{\mathrm{h}} \rightarrow \infty\) (only considering \(R_{\mathrm{a}}\))

Figure 11 shows the velocity selection strategy according to the value of \({k_{\mathrm{v}}}\). When the value of \({k_{\mathrm{v}}}\) is greater than 1.5, the parabolic curve is selected as the velocity profile since it is the upper limit of the velocity per unit (see Fig. 7). While the value of \({k_{\mathrm{v}}}\) is lower than 1, which means even the maximum speed of motor does not satisfy the requirement of \({S_{\mathrm{f}}}\) and \({t_{\mathrm{f}}}\), the velocity is generated according to (40), which minimizes the total energy as well. From the above, we can see that the minimum energy control causes lower energy dissipation and provides more accurate numerical results, compared to that of the loss minimization control only considering armature resistance. The summary of energy dissipations is listed in Table 2.

Fig. 11
figure 11

Velocity selection according to \(k_{\mathrm{v}}\). a Velocity profiles under \(S_{\mathrm{f}}=0.5\) m, \(t_{\mathrm{f}}=6.94\) s, and \(k_{\mathrm{v}}=2\), b velocity profiles under the required \(S_{\mathrm{f}}=1\) m and \(t_{\mathrm{f}}=1\) s that means \(k_{\mathrm{v}}<1\), thus, the recalculated time \(t_{\mathrm{f}}=7.33\) s and \(t_1=1.16\) s

Table 2 Summary of total input energy


This paper considers a more accurate motor model and uses total input energy as the cost function to generate energy-efficient control laws for a pipe inspection robot. This pipe robot has two working modes: driving mode and detecting mode. Robot needs to keep a speed to move or move a distance to check the pipe; thus, we propose two types control: One is cruise start/stop control, and the other is location control. For the cruise mode and location mode, we have derived the optimal velocity and propose a velocity selection strategy according to the \(k_{\mathrm{v}}\). This velocity selection strategy can guarantee the motor work in safe region, which also means decreasing the total input energy consumption, and can treat all the combinations of the \(S_{\mathrm{f}}\) and \(t_{\mathrm{f}}\). Results show that this method indeed saves the energy dissipation with the commonly used method, and provide more accurate model compared with the loss minimization control.


  1. Roh SG, Choi HR. Differential-drive in-pipe robot for moving inside urban gas pipelines. IEEE Trans Robot. 2005;21(1):1–17.

    Article  Google Scholar 

  2. Oya T, Okada T. Development of a steerable, wheel-type, in-pipe robot and its path planning. Adv Robot. 2005;19(6):635–50.

    Article  Google Scholar 

  3. Horodinca M, Doroftei I, Mignon E, Preumont A. A simple architecture for in-pipe inspection robots. In: International colloquium on autonomous and mobile systems; 2002.

  4. Li P, Ma S, Li B, Wang Y. Design of a mobile mechanism possessing driving ability and detecting function for in-pipe inspection. In: Proceedings—IEEE international conference on robotics and automation; 2008. p. 3992–97

  5. Paes K, Dewulf W, Elst KV, Kellens K, Slaets P. Energy efficient trajectories for an industrial ABB robot. Proc CIRP. 2014;15:105–10.

    Article  Google Scholar 

  6. Aghili F. Energy-efficient and fault-tolerant control of multiphase nonsinusoidal pm synchronous machines. IEEE/ASME Trans Mechatron. 2015;20(6):2736–51.

    Article  Google Scholar 

  7. Kusko A, Galler D. Control means for minimization of losses in ac and dc motor drives. IEEE Trans Ind Appl. 1983;ia-19(4):561–70.

    Article  Google Scholar 

  8. Egami T, Tsuchiya T. Efficiency optimized speed-control system based on improved optimal regulator theory. IEEE Trans Ind Electron. 1986;IE-33(2):114–25.

    Article  Google Scholar 

  9. Egami T, Morita H, Tsuchiya T. Efficiency optimized model reference adaptive control system for a DC motor. IEEE Trans Ind Electron. 1990;37(1):28–33.

    Article  Google Scholar 

  10. Margaris N, Goutas T, Doulgeri Z, Paschali A. Loss minimization in DC drives. IEEE Trans Ind Electron. 1991;38(5):328–36.

    Article  Google Scholar 

  11. Ma S. Time-optimal control of robotic manipulators with limit heat characteristics of the actuator. Adv Robot. 2002;16(4):309–24.

    Article  Google Scholar 

  12. Trzynadlowski AM. Energy optimization of a certain class of incremental motion DC drives. IEEE Trans Ind Electron. 1988;35(1):60–6.

    Article  Google Scholar 

  13. Maxon motor catalog.

Download references

Authors' contributions

A energy-efficient control law is proposed for a pipe robot by considering the characteristics of motor. Optimal velocity profiles are derived from two sets of boundary conditions. A velocity selection strategy is generated by considering the capacity of motor. All authors read and approved the final manuscript.


The authors would like to thank Dr. Rongchuan Sun for his help in programming. The work is a part supported by Shenzhen Peacock Plan Team Grant (KQTD20140630150243062), Shenzhen Key Laboratory Grant (ZDSYS201405081618 25065), the Hong Kong Research Grants Council (CUHK6/CRF/13G) and the Hong Kong Innovation and Technology Fund (ITS/112/15F).

Competing interests

The authors declare that they have no competing interests.

Author information

Authors and Affiliations


Corresponding author

Correspondence to Peng Li.

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Li, P., Ma, S., Lyu, C. et al. Energy-efficient control of a screw-drive pipe robot with consideration of actuator’s characteristics. Robot. Biomim. 3, 11 (2016).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: