Chapter 7: Robust Robot Control

Lesson 2: Robust Stability Conditions

This lesson develops rigorous stability guarantees for robot manipulators in the presence of model uncertainty and disturbances. We focus on Lyapunov and input-to-state stability (ISS) based conditions, and on tractable matrix inequalities for linearized models. Throughout, we stay in the joint-space setting, assuming familiarity with rigid-body manipulator dynamics and basic stability notions from earlier chapters.

1. Robust Stability for Robot Manipulators – Conceptual Setup

Consider an uncertain closed-loop robot system written as

\[ \dot{\mathbf{x}} = f(\mathbf{x}, t, \Delta), \quad \Delta \in \mathcal{D}, \]

where \( \mathbf{x} \) is the state (typically tracking error and its derivative), and \( \Delta \) collects parametric uncertainty, unmodeled dynamics, and disturbances (as introduced in Lesson 1). Robust stability concerns properties that hold for all admissible uncertainties \( \Delta \in \mathcal{D} \).

A family of systems \( \{\Sigma(\Delta)\}_{\Delta\in\mathcal{D}} \) with equilibrium \( \mathbf{x}=0 \) is:

  • Robustly stable if for every \( \Delta \in \mathcal{D} \) and every \( \varepsilon > 0 \) there exists \( \delta(\varepsilon) > 0 \) such that \( \|\mathbf{x}(0)\| < \delta(\varepsilon) \) implies \( \|\mathbf{x}(t)\| < \varepsilon \) for all \( t \ge 0 \).
  • Robustly asymptotically stable if, in addition, \( \|\mathbf{x}(t)\| \to 0 \) as \( t \to \infty \) for all \( \Delta \in \mathcal{D} \).

For robot manipulators, \( \Delta \) typically encodes:

  • Parametric uncertainty in masses, inertias, and link lengths.
  • Unmodeled dynamics such as friction, flexibilities, and actuator dynamics.
  • Exogenous disturbances, e.g., contact forces or external torques.

Starting from the standard rigid manipulator model (known from the dynamics course)

\[ \mathbf{M}(\mathbf{q})\ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q},\dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) = \boldsymbol{\tau} + \mathbf{d}(t), \]

robust stability analysis treats the closed loop \( (\mathbf{q},\dot{\mathbf{q}}) \) under a given feedback law \( \boldsymbol{\tau}=\pi(\cdot) \) and admissible uncertainties \( \Delta \).

flowchart TD
  QD["Robot dynamics M(q) qdd + C(q,qd) qd + g(q) = tau + d"] --> Ctl["Controller pi(.) (PD, computed torque, etc.)"]
  Ctl --> CL["Closed-loop error dynamics"]
  CL --> U["Identify uncertainty set: param, unmodeled, disturbance"]
  U --> Tool["Select analysis tool: Lyapunov / ISS / linearization"]
  Tool --> Cond["Derive robust stability inequality or LMI"]
  Cond --> Check["Check gains vs. uncertainty bounds"]
  Check --> Design["If condition satisfied: robustly stable"]
        

2. Error Dynamics with Uncertainty

Let \( \mathbf{q}_d(t) \) be a smooth desired joint trajectory with position, velocity, and acceleration \( \mathbf{q}_d, \dot{\mathbf{q}}_d, \ddot{\mathbf{q}}_d \). Define tracking errors

\[ \mathbf{e} = \mathbf{q} - \mathbf{q}_d, \quad \dot{\mathbf{e}} = \dot{\mathbf{q}} - \dot{\mathbf{q}}_d. \]

Consider a nominal model-based controller (e.g. a computed-torque or PD+gravity scheme) designed from nominal dynamics \( \hat{\mathbf{M}}, \hat{\mathbf{C}}, \hat{\mathbf{g}} \). With suitable design, the nominal closed-loop error dynamics can be written as

\[ \mathbf{M}(\mathbf{q})\ddot{\mathbf{e}} + \mathbf{C}(\mathbf{q},\dot{\mathbf{q}})\dot{\mathbf{e}} + \mathbf{K}_d \dot{\mathbf{e}} + \mathbf{K}_p \mathbf{e} = \mathbf{0}, \]

where \( \mathbf{K}_p \), \( \mathbf{K}_d \) are positive definite gain matrices.

In reality, we have uncertainty and disturbances; grouping all unmodeled terms into \( \mathbf{w} \) gives

\[ \mathbf{M}(\mathbf{q})\ddot{\mathbf{e}} + \mathbf{C}(\mathbf{q},\dot{\mathbf{q}})\dot{\mathbf{e}} + \mathbf{K}_d \dot{\mathbf{e}} + \mathbf{K}_p \mathbf{e} = \mathbf{w}(\mathbf{q},\dot{\mathbf{q}},\mathbf{e},\dot{\mathbf{e}},t). \]

Typical assumptions (consistent with robot dynamics) are:

\[ \begin{aligned} &\mathbf{M}(\mathbf{q}) = \mathbf{M}^\top(\mathbf{q}),\quad m_{\min}\mathbf{I} \preceq \mathbf{M}(\mathbf{q}) \preceq m_{\max}\mathbf{I}, \\ &\dot{\mathbf{M}}(\mathbf{q}) - 2\mathbf{C}(\mathbf{q},\dot{\mathbf{q}}) \text{ is skew-symmetric}, \\ &\|\mathbf{w}(\cdot)\| \le \rho_0 + \rho_1 \|\mathbf{e}\| + \rho_2 \|\dot{\mathbf{e}}\|, \end{aligned} \]

for known nonnegative constants \( \rho_0,\rho_1,\rho_2 \) that bound parametric errors and disturbances over a given operating region.

3. Lyapunov-Based Robust Stability Condition

We now derive a sufficient condition ensuring that the origin \( (\mathbf{e},\dot{\mathbf{e}}) = (\mathbf{0},\mathbf{0}) \) is robustly ultimately bounded for the uncertain error dynamics. Consider the Lyapunov candidate

\[ V(\mathbf{e},\dot{\mathbf{e}},\mathbf{q}) = \tfrac{1}{2}\dot{\mathbf{e}}^\top \mathbf{M}(\mathbf{q})\dot{\mathbf{e}} + \tfrac{1}{2}\mathbf{e}^\top \mathbf{K}_p \mathbf{e}. \]

Using the bounds on \( \mathbf{M} \) and \( \mathbf{K}_p \), we have

\[ \tfrac{1}{2}m_{\min}\|\dot{\mathbf{e}}\|^2 \le V(\mathbf{e},\dot{\mathbf{e}},\mathbf{q}) \le \tfrac{1}{2}m_{\max}\|\dot{\mathbf{e}}\|^2 + \tfrac{1}{2}\lambda_{\max}(\mathbf{K}_p)\|\mathbf{e}\|^2. \]

Differentiating \( V \) along trajectories and using the skew-symmetry property of \( \dot{\mathbf{M}}-2\mathbf{C} \) gives the standard robot identity

\[ \dot{V} = -\dot{\mathbf{e}}^\top \mathbf{K}_d \dot{\mathbf{e}} + \dot{\mathbf{e}}^\top \mathbf{w}. \]

Applying Cauchy–Schwarz and the bound on \( \mathbf{w} \):

\[ \dot{V} \le -\lambda_{\min}(\mathbf{K}_d)\|\dot{\mathbf{e}}\|^2 + \|\dot{\mathbf{e}}\|\, \bigl(\rho_0 + \rho_1\|\mathbf{e}\| + \rho_2\|\dot{\mathbf{e}}\|\bigr). \]

Rearranging,

\[ \dot{V} \le -\bigl(\lambda_{\min}(\mathbf{K}_d)-\rho_2\bigr)\|\dot{\mathbf{e}}\|^2 + \rho_1\|\mathbf{e}\|\|\dot{\mathbf{e}}\| + \rho_0\|\dot{\mathbf{e}}\|. \]

Using the inequality \( ab \le \tfrac{\varepsilon}{2}a^2 + \tfrac{1}{2\varepsilon}b^2 \) for any \( \varepsilon > 0 \) on the mixed terms, we obtain

\[ \begin{aligned} \rho_1\|\mathbf{e}\|\|\dot{\mathbf{e}}\| &\le \tfrac{\varepsilon_1}{2}\|\dot{\mathbf{e}}\|^2 + \tfrac{\rho_1^2}{2\varepsilon_1}\|\mathbf{e}\|^2, \\ \rho_0\|\dot{\mathbf{e}}\| &\le \tfrac{\varepsilon_2}{2}\|\dot{\mathbf{e}}\|^2 + \tfrac{\rho_0^2}{2\varepsilon_2}. \end{aligned} \]

Choosing small \( \varepsilon_1,\varepsilon_2 > 0 \) and substituting,

\[ \dot{V} \le -\alpha_d\|\dot{\mathbf{e}}\|^2 + \alpha_e\|\mathbf{e}\|^2 + c_0, \]

where

\[ \alpha_d = \lambda_{\min}(\mathbf{K}_d) -\rho_2-\tfrac{\varepsilon_1}{2}-\tfrac{\varepsilon_2}{2}, \quad \alpha_e = \tfrac{\rho_1^2}{2\varepsilon_1}, \quad c_0 = \tfrac{\rho_0^2}{2\varepsilon_2}. \]

Provided we choose gains such that \( \alpha_d > 0 \) (i.e. \( \lambda_{\min}(\mathbf{K}_d) \) sufficiently large compared to \( \rho_2 \)), the derivative is negative definite outside a ball around the origin. Using norm equivalences between \( V \) and \( \|(\mathbf{e},\dot{\mathbf{e}})\|^2 \) we obtain:

Theorem 1 (Lyapunov Robust Stability Condition).

Assume the robot dynamics satisfy the standard manipulator properties, and that the disturbance/uncertainty term \( \mathbf{w} \) obeys the affine bound above. If the derivative gains are chosen such that

\[ \lambda_{\min}(\mathbf{K}_d) > \rho_2, \]

then there exist positive constants \( c_1,c_2,c_3 \) such that for all admissible uncertainties,

\[ \dot{V} \le -c_1 \bigl(\|\mathbf{e}\|^2+\|\dot{\mathbf{e}}\|^2\bigr) + c_2, \]

and the tracking error is uniformly ultimately bounded in a ball of radius \( \sqrt{c_2/c_1} \). Increasing \( \mathbf{K}_d \) shrinks this bound.

This condition is conservative (it uses bounds) but extremely common in robust robot control: it formalizes the intuition that a sufficiently high damping gain \( \mathbf{K}_d \) overcomes bounded modeling errors and disturbances.

4. ISS Interpretation and Robust Tracking

From Lesson 1 in Chapter 1, recall that an input-to-state stable (ISS) system satisfies

\[ \|\mathbf{x}(t)\| \le \beta\bigl(\|\mathbf{x}(0)\|, t\bigr) + \gamma\Bigl(\sup_{0 \le s \le t} \|\mathbf{w}(s)\|\Bigr), \]

for some class-\(\mathcal{K}\mathcal{L}\) function \( \beta \) and class-\(\mathcal{K}\) function \( \gamma \). The Lyapunov inequality from the previous section has exactly the ISS form: the derivative is negative apart from a term depending on the disturbance magnitude.

More precisely, using the comparison lemma and norm equivalences between \( V \) and \( \|(\mathbf{e},\dot{\mathbf{e}})\|^2 \), one can show that

\[ \|(\mathbf{e}(t),\dot{\mathbf{e}}(t))\| \le \beta\bigl(\|(\mathbf{e}(0),\dot{\mathbf{e}}(0))\|, t\bigr) + \gamma(\rho_0), \]

where \( \rho_0 \) is the bound on the disturbance offset. Thus the robot under PD/model-based control is ISS with respect to disturbances \( \mathbf{w} \), and its steady-state tracking error scales monotonically with the disturbance bound.

This ISS viewpoint is extremely useful in later chapters (e.g. disturbance observers, learning augmentation), where the disturbance term \( \mathbf{w} \) is itself the output of another dynamical system that must be kept “small” in an input–output sense.

flowchart TD
  E["Error state x = (e, edot)"] --> Sys["Closed-loop robot (nominal + PD)"]
  Sys --> W["Uncertainty / disturbance w"]
  W --> Sys
  Sys --> ISS["Lyapunov inequality: Vdot <= -alpha(||x||) + sigma(||w||)"]
  ISS --> Bound["ISS bound: ||x(t)|| <= beta(||x0||,t) + gamma(sup||w||)"]
        

5. Linearized Robust Stability via Matrix Inequalities

Around a fixed trajectory or operating point, the joint-space error dynamics can be linearized as

\[ \dot{\mathbf{x}} = \bigl(\mathbf{A} + \Delta\mathbf{A}\bigr)\mathbf{x}, \quad \|\Delta\mathbf{A}\| \le \delta, \]

where \( \mathbf{x} \) stacks \( \mathbf{e} \) and \( \dot{\mathbf{e}} \), and \( \delta \) is a known bound on the linearization error plus parametric mismatch.

For the nominal system \( \dot{\mathbf{x}}=\mathbf{A}\mathbf{x} \), exponential stability is equivalent to the existence of a quadratic Lyapunov function \( V=\mathbf{x}^\top \mathbf{P}\mathbf{x} \) with \( \mathbf{P}\succ 0 \) such that

\[ \mathbf{A}^\top\mathbf{P} + \mathbf{P}\mathbf{A} \preceq -\mathbf{Q}, \quad \mathbf{Q}\succ 0. \]

For the uncertain system, we have

\[ \dot{V} = \mathbf{x}^\top\bigl((\mathbf{A}+\Delta\mathbf{A})^\top\mathbf{P} + \mathbf{P}(\mathbf{A}+\Delta\mathbf{A})\bigr)\mathbf{x}. \]

Using the bound \( \|\Delta\mathbf{A}\| \le \delta \Rightarrow \|\mathbf{P}\Delta\mathbf{A} + \Delta\mathbf{A}^\top\mathbf{P}\| \le 2\delta\|\mathbf{P}\| \), we obtain

\[ \dot{V} \le \mathbf{x}^\top \bigl(\mathbf{A}^\top\mathbf{P} + \mathbf{P}\mathbf{A} + 2\delta\|\mathbf{P}\|\mathbf{I}\bigr) \mathbf{x}. \]

Therefore, the following LMI is a sufficient robust stability condition:

Proposition 2 (Quadratic Robust Stability Condition).

If there exists \( \mathbf{P}\succ 0 \) and \( \mathbf{Q}\succ 0 \) such that

\[ \mathbf{A}^\top\mathbf{P} + \mathbf{P}\mathbf{A} + 2\delta\|\mathbf{P}\|\mathbf{I} \preceq -\mathbf{Q}, \]

then \( \dot{\mathbf{x}}=(\mathbf{A}+\Delta\mathbf{A})\mathbf{x} \) is exponentially stable for all \( \Delta\mathbf{A} \) with \( \|\Delta\mathbf{A}\| \le \delta \).

In practice, one solves a slightly more conservative but convex LMI by bounding \( \|\mathbf{P}\| \) with an auxiliary variable, or uses tools such as MATLAB's Robust Control Toolbox to numerically verify this condition.

6. Example – PD Control of a Single Joint with Inertia Uncertainty

Consider a single revolute joint with uncertain inertia \( J \) and viscous friction \( b \):

\[ J\ddot{q} + b\dot{q} = \tau. \]

Let the desired trajectory be constant \( q_d \) (regulation). A simple PD controller is

\[ \tau = -k_p(q-q_d) - k_d(\dot{q}-0), \quad k_p > 0,\; k_d > 0. \]

Define \( e=q-q_d \), \( \dot{e}=\dot{q} \). The closed-loop dynamics are

\[ J\ddot{e} + (b+k_d)\dot{e} + k_p e = 0. \]

Dividing by \( J \) gives

\[ \ddot{e} + a_1\dot{e} + a_0 e = 0, \quad a_1 = \frac{b+k_d}{J},\; a_0 = \frac{k_p}{J}. \]

The characteristic polynomial is \( s^2 + a_1 s + a_0 \). From basic control theory (Routh–Hurwitz for a second-order system), all roots are in the open left half-plane if and only if \( a_1 > 0, a_0 > 0 \). Since \( J > 0 \), \( k_p > 0 \), and \( b+k_d > 0 \), we conclude:

Result. If \( k_p > 0 \) and \( b + k_d > 0 \), the single-joint PD controller is robustly asymptotically stable with respect to any positive inertia \( J \), no matter how large or small (but positive) it is. Thus an entire interval \( J \in [J_{\min},J_{\max}] \subset (0,\infty) \) is covered without changing the controller.

This simple example illustrates robust stability via parameter-insensitive sign conditions on the characteristic polynomial, a recurring theme in robust robot control design.

7. Python Implementation – Robust Stability Check and Simulation

We now implement a grid-based robust stability check and a simple simulation for the single-joint PD system using Python. For more complex manipulators one would typically combine this with libraries such as roboticstoolbox-python, but here we stay with a scalar joint to keep formulas explicit.


import numpy as np
from numpy.linalg import eigvals
from math import isfinite

# Nominal parameters
J_nom = 1.0     # nominal inertia
b = 0.2         # viscous friction
k_p = 25.0
k_d = 10.0

def A_matrix(J, b, k_p, k_d):
    """
    State matrix for single-joint PD control:
        e_dot   = v
        v_dot   = -(k_p/J) * e - ((b + k_d)/J) * v
    """
    return np.array([[0.0,        1.0],
                     [-k_p / J,  -(b + k_d) / J]])

# Uncertainty range on inertia: J in [0.5, 1.5]
J_grid = np.linspace(0.5, 1.5, 21)
robust_stable = True

for J in J_grid:
    A = A_matrix(J, b, k_p, k_d)
    lam = eigvals(A)
    max_real = np.max(np.real(lam))
    if max_real >= 0.0 or not isfinite(max_real):
        print("Potential instability at J =", J, "eigs =", lam)
        robust_stable = False
        break

print("Grid-based robustness check (eigenvalues real parts < 0):", robust_stable)

# Simple time-domain simulation for several J values
def simulate_joint(J, b, k_p, k_d, e0=0.5, edot0=0.0, dt=1e-3, T=2.0):
    n_steps = int(T / dt)
    e = e0
    edot = edot0
    traj = []
    for k in range(n_steps):
        # PD torque for regulation to e = 0
        tau = -k_p * e - k_d * edot
        # Dynamics: J * eddot + b * edot = tau
        eddot = (tau - b * edot) / J
        # Euler integration (small dt)
        edot = edot + dt * eddot
        e = e + dt * edot
        traj.append((k * dt, e, edot))
    return np.array(traj)

if robust_stable:
    for J in [0.5, 1.0, 1.5]:
        traj = simulate_joint(J, b, k_p, k_d)
        print("Final error for J =", J, "is", traj[-1, 1])
      

The eigenvalue check corresponds directly to verifying that the linearization is asymptotically stable for each admissible inertia value. For nonlinear multi-DOF robots, the same idea can be applied to local linearizations along a trajectory.

8. C++ Implementation – Using Eigen for Linear Robust Checks

In C++, linear algebra in robotics is frequently handled by the Eigen library. The following snippet performs the same grid-based eigenvalue robustness check as the Python code.


#include <iostream>
#include <vector>
#include <Eigen/Dense>

int main() {
    double b = 0.2;
    double k_p = 25.0;
    double k_d = 10.0;

    auto A_matrix = [&] (double J) {
        Eigen::Matrix2d A;
        A << 0.0,        1.0,
              -k_p / J,  -(b + k_d) / J;
        return A;
    };

    std::vector<double> J_values;
    for (int i = 0; i <= 20; ++i) {
        double J = 0.5 + (1.0 / 20.0) * i; // from 0.5 to 1.5
        J_values.push_back(J);
    }

    bool robust_stable = true;
    for (double J : J_values) {
        Eigen::Matrix2d A = A_matrix(J);
        Eigen::EigenSolver<Eigen::Matrix2d> es(A);
        Eigen::VectorXcd lam = es.eigenvalues();
        double max_real = lam.real().maxCoeff();
        if (max_real >= 0.0) {
            std::cout << "Unstable or marginally stable at J = "
                      << J << std::endl;
            std::cout << "Eigenvalues: " << lam.transpose() << std::endl;
            robust_stable = false;
            break;
        }
    }

    std::cout << "Robust stability on grid: "
              << (robust_stable ? "true" : "false") << std::endl;
    return 0;
}
      

For higher-DOF manipulators one would assemble block matrices representing joint-space linearizations and re-use the same eigenvalue logic; Eigen naturally scales to those dimensions.

9. Java Implementation – Simple Time-Domain Robust Simulation

In Java-based robotics stacks, one often uses matrix libraries such as EJML for linear algebra. Here we focus on a simple explicit simulation loop that checks decay of the error for several inertia values.


public class RobustSingleJointPD {

    static class TrajectorySample {
        public final double t;
        public final double e;
        public final double edot;

        public TrajectorySample(double t, double e, double edot) {
            this.t = t;
            this.e = e;
            this.edot = edot;
        }
    }

    public static TrajectorySample[] simulate(double J,
                                             double b,
                                             double k_p,
                                             double k_d,
                                             double e0,
                                             double edot0,
                                             double dt,
                                             double T) {
        int nSteps = (int) Math.round(T / dt);
        TrajectorySample[] traj = new TrajectorySample[nSteps];
        double e = e0;
        double edot = edot0;
        for (int k = 0; k < nSteps; ++k) {
            double tau = -k_p * e - k_d * edot;
            double eddot = (tau - b * edot) / J;
            edot = edot + dt * eddot;
            e = e + dt * edot;
            double t = k * dt;
            traj[k] = new TrajectorySample(t, e, edot);
        }
        return traj;
    }

    public static void main(String[] args) {
        double b = 0.2;
        double k_p = 25.0;
        double k_d = 10.0;

        double[] J_values = {0.5, 1.0, 1.5};
        for (double J : J_values) {
            TrajectorySample[] traj =
                simulate(J, b, k_p, k_d,
                         0.5, 0.0, 1e-3, 2.0);
            TrajectorySample last = traj[traj.length - 1];
            System.out.println("J = " + J
                + ", final e = " + last.e
                + ", final edot = " + last.edot);
        }
    }
}
      

Observing that e and edot converge to zero for the tested inertia values provides numerical evidence of robust stability consistent with the analytical conditions.

10. MATLAB / Simulink – Robust Eigenvalue Sweep

MATLAB is widely used in robotics for both analysis and implementation (with Simulink for real-time or HIL setups). Below is a script that sweeps the inertia parameter, computes the closed-loop eigenvalues, and can be combined with a Simulink model of the joint dynamics.


b   = 0.2;
k_p = 25.0;
k_d = 10.0;

J_values = linspace(0.5, 1.5, 21);
robustStable = true;

for J = J_values
    A = [0,              1;
        -k_p / J,  -(b + k_d) / J];
    lam = eig(A);
    if max(real(lam)) >= 0
        fprintf('Potential instability at J = %.3f\n', J);
        disp(lam);
        robustStable = false;
        break;
    end
end

fprintf('Robust stability on grid: %d\n', robustStable);

% Optional: connect to a Simulink model "single_joint_pd"
% where J is a workspace parameter used in the dynamics block.
% set_param('single_joint_pd', 'SimulationCommand', 'start');
      

In Simulink, the joint can be represented by a second-order transfer function block parameterized by J and b, with a PD controller implemented using basic gain and summation blocks. One can then batch-run simulations for different values of J and visually confirm robust convergence.

11. Wolfram Mathematica – Lyapunov and Eigenvalue Analysis

Wolfram Mathematica provides symbolic and numeric tools to verify stability conditions, including symbolic eigenvalues and Lyapunov inequalities.


(* Parameters *)
b   = 0.2;
kP  = 25.0;
kD  = 10.0;

(* State matrix for given J *)
A[J_] := { {0, 1},
          {-kP/J, -(b + kD)/J} };

(* Robust eigenvalue sweep *)
jVals = Range[0.5, 1.5, 0.05];
robustStable = True;

Do[
  lam = Eigenvalues[A[J]];
  maxReal = Max[Re[lam]];
  If[maxReal >= 0,
    Print["Unstable or marginal at J = ", J, " eigenvalues = ", lam];
    robustStable = False;
    Break[];
  ],
  {J, jVals}
];

Print["Robust stability on grid: ", robustStable];

(* Example Lyapunov matrix for a chosen J0 *)
J0 = 1.0;
A0 = A[J0];

(* Solve continuous Lyapunov equation A0' P + P A0 = -Q *)
Q = IdentityMatrix[2];
P = LyapunovSolve[Transpose[A0], -Q];
Print["Lyapunov matrix P at J0 = 1: ", MatrixForm[P]];
      

The Lyapunov equation solution P demonstrates the existence of a quadratic Lyapunov function for the nominal system; combined with the perturbation bounds, this leads back to the matrix inequality conditions in Section 5.

12. Problems and Solutions

Problem 1 (Lyapunov Robust Bound for Multi-DOF Robot). Consider the uncertain error dynamics

\[ \mathbf{M}(\mathbf{q})\ddot{\mathbf{e}} + \mathbf{C}(\mathbf{q},\dot{\mathbf{q}})\dot{\mathbf{e}} + \mathbf{K}_d \dot{\mathbf{e}} + \mathbf{K}_p \mathbf{e} = \mathbf{w}(t), \]

with bounds and properties as in Section 3. Show that if \( \lambda_{\min}(\mathbf{K}_d) > \rho_2 \), then for any initial condition and any admissible \( \mathbf{w} \), the error \( (\mathbf{e},\dot{\mathbf{e}}) \) ultimately enters and remains in a ball of radius that can be upper-bounded explicitly in terms of \( \rho_0,\rho_1,\rho_2 \) and the gains.

Solution.

Start from the Lyapunov function and derivative bound derived in Section 3:

\[ \dot{V} \le -\alpha_d\|\dot{\mathbf{e}}\|^2 + \alpha_e\|\mathbf{e}\|^2 + c_0, \quad \alpha_d > 0. \]

Using the positive definiteness of \( \mathbf{M}(\mathbf{q}) \) and \( \mathbf{K}_p \), there exist \( \underline{\lambda},\overline{\lambda} > 0 \) such that

\[ \underline{\lambda} \bigl(\|\mathbf{e}\|^2+\|\dot{\mathbf{e}}\|^2\bigr) \le V \le \overline{\lambda} \bigl(\|\mathbf{e}\|^2+\|\dot{\mathbf{e}}\|^2\bigr). \]

Therefore, \( \|\mathbf{e}\|^2+\|\dot{\mathbf{e}}\|^2 \ge \frac{1}{\overline{\lambda}} V \). For sufficiently large errors, the negative quadratic terms in \( \dot{V} \) dominate the constant \( c_0 \), and one can show that whenever \( V > \frac{c_0}{c_1} \) for some \( c_1 > 0 \), we have \( \dot{V} \le -c_1 V \). Standard comparison arguments imply that trajectories enter the set

\[ \mathcal{B} = \Bigl\{ (\mathbf{e},\dot{\mathbf{e}}) \,\big|\, \|\mathbf{e}\|^2+\|\dot{\mathbf{e}}\|^2 \le \frac{c_2}{c_1} \Bigr\}, \]

for some explicit constants \( c_1,c_2 > 0 \) and remain there thereafter. Taking square roots yields an ultimate bound of order \( \sqrt{c_2/c_1} \) on the tracking error. The exact expressions depend on the chosen \( \varepsilon_1,\varepsilon_2 \) but are algebraically straightforward.

Problem 2 (Scalar Robust Routh–Hurwitz). Consider the scalar uncertain system

\[ \ddot{e} + a_1(\theta)\dot{e} + a_0(\theta)e = 0, \]

where \( \theta \in [\theta_{\min},\theta_{\max}] \) is an uncertain parameter and \( a_i(\theta) = \alpha_i + \beta_i \theta \) are affine. Derive a sufficient condition (in terms of \( \alpha_i,\beta_i,\theta_{\min},\theta_{\max} \)) for robust asymptotic stability.

Solution.

For a second-order polynomial \( s^2 + a_1(\theta)s + a_0(\theta) \), asymptotic stability is equivalent to \( a_1(\theta) > 0 \) and \( a_0(\theta) > 0 \). Since \( a_i(\theta) \) are affine, the minimum over the interval is attained at an endpoint. Thus a sufficient condition is

\[ \min\bigl\{a_1(\theta_{\min}),a_1(\theta_{\max})\bigr\} > 0, \quad \min\bigl\{a_0(\theta_{\min}),a_0(\theta_{\max})\bigr\} > 0. \]

Under these inequalities the system is asymptotically stable for all \( \theta \) in the interval, hence robustly stable.

Problem 3 (Linearized Matrix Inequality). Suppose \( \dot{\mathbf{x}} = (\mathbf{A}+\Delta\mathbf{A})\mathbf{x} \) with \( \|\Delta\mathbf{A}\| \le \delta \). Show that if there exists \( \mathbf{P}\succ 0 \) such that

\[ \mathbf{A}^\top\mathbf{P} + \mathbf{P}\mathbf{A} \preceq -\mathbf{Q}, \quad \mathbf{Q}\succ 0, \]

and \( 2\delta\|\mathbf{P}\| \le \lambda_{\min}(\mathbf{Q}) \), then the uncertain system is exponentially stable.

Solution.

Using the same computation as in Section 5,

\[ \dot{V} \le \mathbf{x}^\top\bigl( -\mathbf{Q} + 2\delta\|\mathbf{P}\|\mathbf{I} \bigr)\mathbf{x}. \]

If \( 2\delta\|\mathbf{P}\| \le \lambda_{\min}(\mathbf{Q}) \), then

\[ -\mathbf{Q} + 2\delta\|\mathbf{P}\|\mathbf{I} \preceq -\tfrac{1}{2}\mathbf{Q}, \]

hence \( \dot{V} \le -\tfrac{1}{2}\lambda_{\min}(\mathbf{Q}) \|\mathbf{x}\|^2 \). Exponential stability follows from standard Lyapunov arguments.

Problem 4 (ISS of the Single-Joint PD System with Disturbance). Modify the single-joint PD dynamics by adding a disturbance \( d(t) \):

\[ J\ddot{e} + (b+k_d)\dot{e} + k_p e = d(t). \]

Assuming \( d(t) \) is bounded, \( |d(t)| \le d_{\max} \), show that the scalar system is ISS with respect to \( d \).

Solution.

A quadratic Lyapunov function \( V = \tfrac{1}{2}J\dot{e}^2 + \tfrac{1}{2}k_p e^2 \) satisfies

\[ \dot{V} = - (b+k_d)\dot{e}^2 + \dot{e} d(t) \le - (b+k_d)\dot{e}^2 + |\dot{e}| d_{\max}. \]

Apply the inequality \( |\dot{e}| d_{\max} \le \tfrac{\varepsilon}{2}\dot{e}^2 + \tfrac{d_{\max}^2}{2\varepsilon} \) for \( \varepsilon > 0 \). Choosing \( \varepsilon < 2(b+k_d) \) yields \( \dot{V} \le -c_1\dot{e}^2 + c_2 \) with \( c_1 > 0 \). Using norm equivalence between \( V \) and \( e^2+\dot{e}^2 \), we obtain an estimate of ISS form with \( \gamma(d_{\max}) \propto d_{\max} \). Hence the system is ISS with respect to \( d \).

Problem 5 (Coupled Robot Joints – Qualitative Robustness). Consider a 2-DOF planar robot with PD control applied independently on each joint but with full coupled dynamics in \( \mathbf{M}(\mathbf{q}) \) and \( \mathbf{C}(\mathbf{q},\dot{\mathbf{q}}) \). Explain, using the properties of the manipulator inertia matrix, why sufficiently large diagonal \( \mathbf{K}_d \) and \( \mathbf{K}_p \) still yield robust stability, even though the joints are dynamically coupled.

Solution.

The Lyapunov function from Section 3 generalizes directly to the 2-DOF case: \( V = \tfrac{1}{2}\dot{\mathbf{e}}^\top\mathbf{M}(\mathbf{q}) \dot{\mathbf{e}} + \tfrac{1}{2}\mathbf{e}^\top\mathbf{K}_p\mathbf{e} \). The skew-symmetry property of \( \dot{\mathbf{M}}-2\mathbf{C} \) is independent of dimensionality, so the cross terms in \( \dot{V} \) still cancel. The only remaining term is \( -\dot{\mathbf{e}}^\top\mathbf{K}_d\dot{\mathbf{e}} \) plus bounded uncertainty. For diagonal \( \mathbf{K}_p,\mathbf{K}_d \) with sufficiently large diagonal entries, the same bounding argument as in Section 3 applies, yielding ISS and ultimate boundedness. Dynamic coupling appears only in \( \mathbf{M},\mathbf{C} \), which enter the Lyapunov analysis through bounds and structural identities, not through direct destabilizing terms.

13. Summary

In this lesson we formalized robust stability for uncertain robot manipulators, derived Lyapunov and ISS-based sufficient conditions, and connected them to linearized matrix inequalities. For single-joint PD control, we showed explicitly how Routh–Hurwitz conditions yield parametric robust stability with respect to inertia variation. We then implemented practical robustness checks and simulations in Python, C++, Java, MATLAB/Simulink, and Wolfram Mathematica. These robust stability conditions underpin the design of sliding-mode controllers, disturbance observers, and adaptive laws in the subsequent lessons of this chapter.

14. References

  1. Slotine, J.-J. E., & Li, W. (1987). On the adaptive control of robot manipulators. International Journal of Robotics Research, 6(3), 49–59.
  2. Spong, M. W. (1987). Modeling and control of elastic joint robots. Journal of Dynamic Systems, Measurement, and Control, 109(4), 310–318.
  3. Ortega, R., Spong, M. W., Gómez-Estern, F., & Blankenstein, G. (2002). Stabilization of a class of underactuated mechanical systems via interconnection and damping assignment. IEEE Transactions on Automatic Control, 47(8), 1218–1233.
  4. Khalil, H. K. (2001). Nonlinear Systems (2nd ed.). Macmillan (chapters on ISS and robust stability).
  5. Narendra, K. S., & Annaswamy, A. M. (1989). Stable Adaptive Systems. Prentice–Hall.
  6. Vidyasagar, M. (1993). Nonlinear Systems Analysis (2nd ed.). Prentice–Hall (chapters on small-gain and robust stability).
  7. Canudas-de-Wit, C., Siciliano, B., & Bastin, G. (1996). Theory of robot control. Springer (sections on robust robot control).
  8. Ortega, R., Loria, A., Nicklasson, P. J., & Sira-Ramírez, H. (1998). Passivity-based Control of Euler–Lagrange Systems. Springer.
  9. Desoer, C. A., & Vidyasagar, M. (1975). Feedback Systems: Input–Output Properties. Academic Press.
  10. Sontag, E. D. (1989). Smooth stabilization implies coprime factorization. IEEE Transactions on Automatic Control, 34(4), 435–443.