METR4202 -- Robotics
Tutorial 12 – Weeks 12 & 13: Cart-Pole Inverted Pendulum
Reading
Please read/review Lecture 12
Questions
1. Description of the cart-pole system
An inverted pendulum is a classic problem in nonlinear dynamics and control. A
typical arrangement of such systems is a cart-pole system as in Figure 1.
𝜃 h m
f M
Figure 1: a typical cart-pole system
The cart is a one dimensional horizontally moving base; the mass of the pendulum is
evenly distributed. The following variables are specified:
Variable Definition
M Mass of the cart (kg)
L Length of the pendulum’s centre of mass (m)
F Force applied to cart (N)
m Mass of the pendulum(kg)
x Cart horizontal displacement from origin
(𝑘𝑔 ∗ 𝑚2 )
The goal is to stabilize the pendulum at the upward (and downward) position.
1
2. Derivation of the dynamical model
Try to derive the dynamic model of the system:
(M m) x mL cos mL 2 sin f
mLx cos mL2 mgL sin 0
3. Converting the system into linear equations
Try to linearize the above equations at upward (θ ≈ 0) and downward (θ ≈ π)
positions. (Hint: using Taylor expansion or by ignoring the second order terms, at
upward position sinθ ≈ θ cosθ ≈ 1; at downward position try to use θ′ = θ − π )
4. Computing a state space model
Use the result above, get the state space model for the linearized systems (Hint: An
𝑥
𝑥̇
option is to take [𝜃 ] as state variable).
𝜃̇
5. Convert between modal and canonical forms
Convert the state space model above into modal and canonical forms
(hint: try the matlab commands: canon, modreal)
6. Check controllability
Check controllability for both conditions (hint :“ctrb”) and design LQR controller to
stabilize pendulum at the equilibriums for upward position and downward position.
(hint: Matlab function “lqr” may be useful for this design(or function “place” may be
used if you want to place the close loop system poles arbitrarily) and “lsim” may be
used to test the close loop response after adding in the controller)
2
More Hints
(Please try to earnestly do this first without looking at the solution)
Derivation of inverted pendulum dynamic equations
h m
f M
Figure 1: a typical cart-pole system
Using Lagrangian method, T V where T is the kinematic energy and V the potential energy of
the system.
T Tc Tp where the first term is the kinematic energy of the cart and the second term is that of the
x x L sin
pole. As the coordinate of the cart and pole can be written as and , the kinematic
0 L cos
1 1 2 2
energy can be written as: Tc Mx and p
2
T m ( x L sin ) ( L cos )
2 2
The potential energy is V mgL cos
1 1 2 2
Thus the total energy T V Mx 2 m ( x L sin ) ( L cos ) mgL cos
2 2
3
x
The generalized coordinates are selected as X so the Lagrangian equations are:
d
f
dt x x
d
0
dt
This yields (M m) x mL cos mL 2 sin f
And mLx cos mL2 mgL sin 0
After some calculation:
f m sin ( L 2 g cos )
x
M m sin 2
f cos mL 2 sin cos ( M m) g sin
L( M m sin 2 )
x
x
Define X
x
x
f m sin ( L g cos )
2
x
M m sin 2
X ……..(1)
f cos mL 2
sin cos ( M m ) g sin
L( M m sin ) 2
x 0
x 0
Linearizing at upward position, the equilibrium is X
0
0
By ignoring second order terms,
x x 0 1 0 0 0
x 1
x f m sin ( L g cos )
2
f m g mg
x 0 0 0
M m sin 2
M M x M f
X
0 0 0 1 0
f cos mL sin cos ( M m) g sin f ( M m) g 0 ( M m) g
0
1
2
0
L( M m sin 2 ) LM LM LM
4
x
x 1 0 0 0 x
y
0 0 1 0
x 0
x 0
Linearizing at downward position, X
0
Define , since , 0 . so and .
And sin sin( ) sin , cos cos( ) 1.
Substitute above equations into (1) and write as for simplicity:
x 0 1 0 0 0
x f m g mg x 1
x 0 0 0
X M M x M f
0 0 0 1 0
f ( M m) g 0 0
( M m) g
0 1
LM LM LM
x
x 1 0 0 0 x
And y
0 0 1 0
Controllability:
Controller design (LQR):
Background knowledge about LQR control:
The Linear Quadratic Regulator (LQR) utilizes a cost function J 0
( xT Qx uT Ru )dt to
find the optimal control law for a linear system, xT Qx is for regulation effort and term uT Ru
is to constrain the actuator input. The feedback control law that can minimize the cost
function will be in the form of u Kx where K R1BT P and term P is the solution of
Riccati equation AT P PA PBR1BT P Q 0 . Q is a positive-semi definite matrix and R
is positive definite. The controller can be found by using Matlab function “lqr”.