0% found this document useful (0 votes)
17 views7 pages

EE128 Fa17 Lab6a

The lab focuses on controlling the angular position of an inverted pendulum and the horizontal position of a cart using full-state feedback. It involves deriving equations of motion, developing a state-space model, and implementing a state-feedback controller in MATLAB and Simulink. The lab also includes practical experiments to analyze system performance with various reference inputs and perturbations.

Uploaded by

HR Kalita
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views7 pages

EE128 Fa17 Lab6a

The lab focuses on controlling the angular position of an inverted pendulum and the horizontal position of a cart using full-state feedback. It involves deriving equations of motion, developing a state-space model, and implementing a state-feedback controller in MATLAB and Simulink. The lab also includes practical experiments to analyze system performance with various reference inputs and perturbations.

Uploaded by

HR Kalita
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

ME C134 / EE C128 Fall 2017 Lab 6a UC Berkeley

Lab 6a: Pole Placement for the Inverted Pendulum


“Idiot. Above her head was the only stable place in the cosmos, the only refuge from the damnation of the
Panta Rei, and she guessed it was the Pendulum’s business, not hers.” – Umberto Eco (from Foucault’s
Pendulum)

1 Objectives
The objective of this lab is to achieve simultaneous control of both the angular position of the pendulum
and horizontal position of the cart on the track using full-state feedback. We will be considering small
angle perturbations and sine wave reference tracking of the cart position. Note that the system is a SIMO
– a Single Input Multiple Output – system, since we are trying to control both the position of the cart
and the angle of the pendulum by using only the motor voltage.

2 Theory
The setup consists of a pendulum attached to the movable cart from Labs 3 and 4. The free body
diagram of this setup is shown in Figure 1. We ignore friction and assume that the mass of the rod is
uniformly distributed, e.g. its center of mass is located at the center of the rod, Lp = L/2. N and P
are the horizontal and vertical components, respectively, of the reaction force between the cart and the
pendulum. The parameter values of the physical system are given in Table 1 in the Appendix.

Figure 1: Free body diagram of the inverted pendulum setup (ignoring friction)

October 25, 2017 1 of 7


ME C134 / EE C128 Fall 2017 Lab 6a UC Berkeley

3 Pre-Lab
3.1 Equations of Motion of the Mechanical System
Under the small-angle approximation sin θ ≈ θ and cos θ ≈ 1, derive the equations of motion (1) and (2)
of the inverted pendulum-cart system. In (1), Fa is the force exerted on the cart by the motor.

(M + m) ẍ + mLp θ̈ = Fa (1)
4mL2p
mLp ẍ + θ̈ − mgLp θ = 0 (2)
3
One way of doing this is by considering the free-body diagrams of the cart and the pendulum separately
and writing their respective equations of motion.

Hint: Consider the following force/torque balance equations: horizontal acceleration on the cart, accel-
eration of the center of mass of the pendulum, and torsion of the pendulum. An easy way to analyze
the torque equation for the pendulum is to consider its motion as observed from the frame of the cart.
However, this will introduce a ‘fictitious’ force, known as D’Alembert’s effect. The associated free body
diagram of the cart and the pendulum are given in Figure 2 and Figure 3, respectively. Apply Newton’s
laws to obtain the required equations.

y
Fa
N

x
x P Mg

  body diagram of the cart (ignoring friction; normal force not depicted)
Figure 2: Free

mx

θ mg

 
Figure 3: Free body diagram of the pendulum (ignoring friction; the mẍ vector will appear in the torsion
equation due to D’Alembert’s effect)

October 25, 2017 2 of 7


ME C134 / EE C128 Fall 2017 Lab 6a UC Berkeley

3.2 Full System Dynamics of Linearized System


1. Use the motor dynamics derived in Lab 3 (in the form Fa = f (V, x, ẋ)) and substitute them into
the linearized cart-pendulum dynamics from the previous section to obtain the complete system
dynamics. The outputs of interest for us are x, the position of the cart, and θ, the pendulum angle.
The control input available is V , the voltage applied to the motor. Thus, our system is a 1-input,
2-output system (SIMO).
2. Now derive the state-space model (A, B, C and D matrices) for the complete system. Use x =
 T
x ẋ θ θ̇ as your state vector. Make sure you do this derivation symbolically. Your A and B
matrix should be of the following form:
   
0 a12 0 0 0
0 a
22 a23 0  b 
 2
A= B=  (3)
 

0 0 0 a34  0
0 a42 a43 0 b4

Once you have the expressions for your state space representation, use a MATLAB script file to plug
in your values. This will make things much easier if parameters need to be adjusted.

3.3 Analysis and Controller Design


1. Determine the eigenvalues of the state matrix A and the poles of the state-space representation. Is
the open-loop system internally stable? Is it BIBO stable? (for this part, you can use the MATLAB
command eig).
2. Simulate the output response of the system for a step input in the motor voltage. What would you
expect to happen to x and θ in the physical system (assuming infinite track length)? What are the
discrepancies between the simulation and the physical system? Why might be the reasons for these
discrepancies?
3. We will use a full state-feedback controller to achieve the desired performance specifications. For
the purpose of design, we assume that all the state variables are available for measurement and can
use them for feedback (i.e. the entire state vector x is known). The full-state feedback controller is
u = −Kx. The gain matrix K is chosen such that the closed-loop eigenvalues lie at some desired
values. These desired values of the eigenvalues are found based on the performance specifications
desired to be achieved. We would like our closed-loop eigenvalues to lie at s1,2 = −2.0 ± 10j and
s3,4 = −1.6 ± 1.3j. In lecture you will discuss design techniques for determining these values. For
the purpose of this lab we will assume them given.

(a) The feedback gain matrix K is of the form K = [k1 k2 k3 k4 ]. The closed-loop system matrix
is given by AK = A − BK. Using your A and B matrices (with the values plugged in) from (3),
compute the matrix AK as a function of the ki .
(b) Compute the characteristic polynomial P (K; s) = det(sI − AK ) of the closed-loop system as a
function of k1 through k4 .
(c) Compute the desired characteristic polynomial Pdes (s) = 4i=1 (s−si ) determined by the desired
Q

October 25, 2017 3 of 7


ME C134 / EE C128 Fall 2017 Lab 6a UC Berkeley

locations of the closed-loop poles given above.


(d) Comparing the coefficients of P (K; s) and P (s), determine the system of linear equations that
the gains k1 , . . . , k4 have to satisfy. Plug in numerical values and use MATLAB to solve for K.
(e) Now verify the result you obtained for K using MATLAB. You may use the acker or place
commands for pole placement.
4. With input u = K(r − x), the dynamics of the closed-loop system are ẋ = Ax + Bu = AK x + BKr,
where r is your reference input. Observe that the reference input has the same dimension as the
system state. Using the calculated gain matrix K and MATLAB, calculate the closed loop transfer
function from the first component in the reference r (position reference input) to the output x (the
position of the cart). Plot the Bode plot of this transfer function. You should notice that the DC
gain for this transfer function is unity.

October 25, 2017 4 of 7


ME C134 / EE C128 Fall 2017 Lab 6a UC Berkeley

4 Lab
During this lab, you will implement your state-feedback controller from the PreLab and run it on the
actual hardware. Make sure to save all the models and script files used and attach them to your lab
report submission.

4.1 Implementing the Controller in Simulink


Implement the state-feedback controller with the Quanser I/O blocks in Simulink. Here is a review of
some of the blocks you will use:

ˆ HIL Initialize block: change the board type to Q4


ˆ HIL Read Encoder block: change the encoder indices to [0, 1] to obtain readings from both encoders
ˆ HIL Write Analog block: see notes about gear protection below
ˆ dx/dt derivative blocks: The encoders only provide measurements for x and θ. We will need to
approximate ẋ and θ̇ in order to perform full state feedback. In this lab, we will use the derivative
blocks for this (taking numerical derivatives should generally be AVOIDED). In one of the following
labs, you will build an observer and estimate the ẋ and θ̇ from the measurements of ẋ and θ̇ alone.
ˆ Mux and Demux blocks: This will help keep your diagram tidy. You can combine all four signals
(x, ẋ, θ, θ̇) into a “vector” signal with the mux block, and break them out with the demux block.
ˆ Gain block: You can use a single gain block to implement the matrix K. Change the “multiplication”
option from “element-wise” to “matrix”.
ˆ Scopes and “To Workspace” blocks: Don’t forget to instrument your system to allow you to save
data for your lab report.

Gear Protection In order to prevent the gear from slipping, you must put a saturation block before
the Analog Output block. You have two choices:

ˆ a conventional saturation block, set to ±6V as in Lab 3 and 4


ˆ An Embedded MATLAB code block use the following code:

1 function [u sat,max lim,min lim]= fcn(xdot,u)


2 % Setting the bounds
3 max lim = min(8,max(4,10*xdot+5));
4 min lim = min(−4,max(−8,10*xdot−5));
5 % Dynamic Saturation
6 u sat = max(min lim,u);
7 u sat = min(max lim,u sat);
8 end

You must connect this block to the ẋ signal as well as the control signal for saturation. It applies
different bounds depending on ẋ: once the cart is moving, it allows higher “forward” voltages, while
prohibiting big “reverse” voltages. The u sat output is the saturated signal, while max lim and
min lim allow you to plot/analyze the limits.

October 25, 2017 5 of 7


ME C134 / EE C128 Fall 2017 Lab 6a UC Berkeley

Sign of θ The direction we have defined θ to increase and the direction the hardware encoder increases
are reversed. Make sure to use a negative factor for angular unit conversion!

Units Watch your units. Everything in this system should match the units you used for your state-space
derivation. When in doubt, always work with SI units.

4.2 Running the Controller on the Hardware


1. Run the controller on the hardware (with reference r set to r = [0 0 0 0]T ) and make sure it balances.
Important: You will need to hold the pendulum exactly vertical before connecting to the real time
target (our controller tries to stabilize the unstable equilibrium θ = 0, and the encoder position is
reset to zero every time you connect to the hardware). What do you think would happen if you were
to connect to the hardware with the pendulum in its stable equilibrium position?
2. With the pendulum balancing, manually apply small perturbations to the pendulum and check the
response. Make sure to start the system with the cart in the center of the track, so there is enough
space for the controller to move the cart and “catch” the pendulum.
(a) If you perturb the top of the pendulum in a given direction, how does the controller actuate
the cart? Why is this?
(b) Plot the variation of the cart and pendulum position with time for small perturbations (manually-
induced) about the equilibrium value. Comment on the controller’s general performance. Why
does the hardware continue to oscillate about the equilibrium point?

3. Introduce a sine wave reference signal and and analyze the results. Your reference input will be
 T
r = M sin ωt 0 0 0 . Start with a reasonable amplitude (M ≈ 0.1 m), and use frequencies
ω = 1, 2, 5 rad/s. Again make sure to start at the center of the track and to hold the pendulum
vertical when you start the program. Check your response and include plots of cart position, cart
velocity and pendulum angle in your report.
(a) Calculate the gain and phase for each of the frequencies in your frequency response (ignoring the
offset from the hardware response). Locate these frequencies on the Bode plot from Part 3.3.4
of your Pre-Lab and compare the results. Do your values match for each frequency? If not,
explain possible causes for the difference.
(b) Slightly change the position of the desired closed-loop poles. Try a couple of different values
and run the resulting controllers on the hardware. Again include plots of cart position, cart
velocity and pendulum angle in your report. Discuss how the changes in the position of the
poles affect the behavior of the system. You do not need to repeat part 3a.

4. Plot the cart velocity ẋ and the pendulum’s angular velocity θ̇, which are obtained by numerically
differentiating the signals x and θ, respectively. Comment on the quality of the obtained signals.

October 25, 2017 6 of 7


ME C134 / EE C128 Fall 2017 Lab 6a UC Berkeley

A System Parameters
Parameter Value Description
439.6 counts/cm Resolution of the cart position encoder
651.9 counts/rad Resolution of the angle encoder
M 0.94 kg Mass of cart and motor
m 0.230 kg Mass of pendulum
Lp 0.3302 m Pendulum distance from pivot to center of mass
Ic m L2p /3 Moment of inertia of pendulum about its center
Ie 4m L2p /3 Moment of inertia of pendulum about its end
Kt 7.67 · 10−3 Nm/A Motor torque constant
Km 7.67 · 10−3 Vs/rad Motor back EMF constant
Kg 3.71 Motor gearbox ratio
Rm 2.6 Ω Motor winding resistance
r 6.36 · 10−3 m Radius of motor gear
Jm 3.9 · 10−7 kg m2 Motor moment of inertia

Table 1: Parameters of the inverted pendulum setup

October 25, 2017 7 of 7

You might also like