EE C128 / ME C134 Fall 2010                                                                             Lab 5a
University of California, Berkeley                                                                     Rev. 1.5
                  Lab 5a: Pole Placement for the Inverted Pendulum
I. Purpose
       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.
II. Theory
          The setup consists of a pendulum attached to a movable cart as shown in figure below.
                                Figure 1: Cart-inverted pendulum setup with free body diagram
        We ignore friction and assume that the entire mass of the pendulum is concentrated at its
center of mass, which is half-way up the length of the pendulum (𝐿𝑝 = 𝐿/2). N and P are the horizontal
and vertical components, respectively, of the reaction force between the cart and the pendulum.
          Here are the values of the physical system:
           Symbol       Description                                                 Value
                        Resolution of cart position encoder                         439.6 counts/cm
                        Resolution of angle encoder                                 666.7 counts/rad
                𝑴       Mass of cart and motor                                      0.94 kg
                𝒎       Mass of pendulum                                            0.230 kg
                𝑳𝒑      Pendulum distance from pivot to center of mass              0.3302 m
                                                                                        2
                𝑰𝒄      Moment of inertia of pendulum about its center              mLP /3
                                                                                           2
                𝑰𝒆      Moment of inertia of pendulum about its end                 4*mLp /3
                𝑲𝒕      Motor torque constant                                       0.00767 N*m/A
                𝑲𝒎      Motor back emf constant                                     0.00767 V*s/rad
                𝑲𝒈      Motor gearbox ratio                                         3.71
                𝑹𝒎      Motor winding resistance                                    2.6 Ω
                𝒓       Radius of motor gear                                        0.00635 m
                                                                                             -7    2
                𝑱𝒎      Motor moment of inertia                                     3.9 × 10 kg*m
                                                             1
EE C128 / ME C134 Fall 2010                                                                            Lab 5a
University of California, Berkeley                                                                    Rev. 1.5
III. Pre-lab
a) Derive the equations of motion of the inverted pendulum-cart system. One way of doing this is by
   considering the free-body diagrams of the cart and the pendulum separately and writing their
   equations of motion.
     (Hint: While deriving use the small-signals approximation 𝐬𝐢𝐧 (𝜽) ≈ 𝜽 and 𝐜𝐨𝐬 (𝜽) ≈ 𝟏. This will
     simplify the math a little.)
     The equations should turn out to be the following:
                              (𝑀 + 𝑚)𝑥̈ + 𝑚𝐿𝑃 𝜃̈ = 𝐹𝑎                                                     (1)
                                        4𝑚𝐿 2
                              𝑚𝐿𝑃 𝑥̈   + 3 𝑃 𝜃̈   − 𝑚𝑔𝐿𝑃 𝜃 = 0                                            (2)
     Here, 𝑭𝒂 equals the force exerted on the cart by the attached motor.
b) Use the motor dynamics derived in the Lab 2 (in the form 𝑭𝒂 = 𝑓(𝑽, 𝑥, 𝑥̇ )) and substitute this into
   the cart-pendulum dynamics from part a to obtain the complete system dynamics.
     The outputs of our interest are the position of the cart (𝒙) and the pendulum angle (𝜽) and the
     available control input is the voltage applied to the motor (𝑽). Thus, our system is a 1-input, 2-
     output system (SIMO).
     Substitute the model parameters and obtain the state-space model for the complete system. You
     may use 𝑿 = [𝒙 𝒙̇ 𝜽 𝜽̇]𝑻 as your state vector. Make sure you do this derivation symbolically.
     Once you have the expressions for your state space representation, be sure to use a MATLAB script
     file to plug in your values. We actually have two different sets of pendulums in the lab, and this will
     save you a lot of headaches down the road if you need to alter your parameters.
     To help you verify your solution, you may check your numerical answers against what is shown
     below. Derived formula errors tend to propagate across entire rows.
             *     *            *   *          * 
             * − 6.8312         *   *         * 
           A=                                B=                 C =?             D=?
             *     *            *   *          * 
                                                      
             *     *            *   *         − 3.4625
c) Determine the eigenvalues of the state matrix 𝐴 and the poles of the state-space representation. Is
   the open-loop system internally stable? BIBO stable? Also, check if the system is controllable and
   observable. (For this part you may use the MATLAB commands eig, ctrb, obsv, and rank)
d) Simulate the output response of the system for a step input in the applied voltage. What would you
   expect to happen to 𝑥 and 𝜃 in the physical system (assume infinite track length)? What are the
   discrepancies between the simulation and the physical system? Why might these discrepancies be
   there?
e) We will use a 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 𝑋 is known).
                                                          2
EE C128 / ME C134 Fall 2010                                                                          Lab 5a
University of California, Berkeley                                                                  Rev. 1.5
     The full-state feedback controller is 𝒖 = −𝑲𝑿. The gain matrix 𝐾 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 −𝟏. 𝟕 ± 𝟗𝒋 and −𝟐 ± 𝟏. 𝟔𝒋. Using MATLAB,
     find the feedback gain matrix 𝐾 that will help us achieve this. You may use the acker or place
     commands for pole placement.
f)   Now your system dynamics are 𝑿̇ = 𝑨𝑿 + 𝑩𝒖, 𝒖 = 𝑲(𝒓 − 𝑿), where 𝒓 is your reference input.
     Using the calculated gain matrix 𝑲 and MATLAB, calculate the closed loop transfer function from
     the first component in the reference 𝒓 (position reference input) to the output 𝒙 (only the position
     of the cart). You may use the ss and tf commands. Plot the Bode plot of this transfer function. You
     should notice that the DC gain for this transfer function is unity.
IV. Lab
       Based on which station you use, you will either have a long or short pendulum. The different
pendulum physical properties are listed below:
           Symbol       Description                                              Value
                𝒎𝒍      Mass of pendulum (long)                                  0.230 kg
                𝑳𝒑,𝒍    Pendulum distance from pivot to center of mass (long)    0.3302 m
                𝒎𝒔      Mass of the pendulum (short)                             0.127 kg
                𝑳𝒑,𝒔    Pendulum distance from pivot to center of mass (short)   0.1778 m
a) Implement the designed state-feedback controller on the actual setup (with saturation limit 8V and
   -8V for the voltage input). However, since we have measurements only for the linear and angular
   position of the cart (𝒙) and pendulum (𝜽) and not their velocities, 𝒙̇ and 𝜽̇, we can numerically
   differentiate 𝒙 and 𝜽 to approximate 𝒙̇ and 𝜽̇, respectively. This helps obtain the entire state vector
   𝑿 for feedback. Don’t forget to include your QuaRC diagram and subsystem (if applicable) in your
   lab report.
           Note 1: The direction we have defined 𝜽 to increase and the direction the angular
           encoder on the hardware increases are opposite of each other. Therefore, make
           sure your angular unit conversion is negative.
           Note 2: As always, watch your units! Everything in this system should match the
           units that you used in your state-space derivation.
b) Run the controller on the hardware (with 𝒓 set to 0) and make sure it balances. You will need to
   hold the pendulum vertical before starting the program. Give the pendulum small perturbations
   manually and check the response.
c) Now we will introduce a sine wave reference position input into the system and analyze the results.
   Your reference would be like 𝒓 = [𝑴𝒔𝒊𝒏(𝝎𝒕) 𝟎 𝟎 𝟎]′ . Start with a reasonable amplitude
                                                          3
EE C128 / ME C134 Fall 2010                                                                                 Lab 5a
University of California, Berkeley                                                                         Rev. 1.5
     (𝑴 =0.10 m), use frequencies (𝝎) of 1, 5, and 10 rad/sec. Make sure to start at the center of the
     track! You will also need to hold the pendulum vertical before starting the program. Check your
     response.
d) Be sure to save all your data (especially reference input and position output) from the workspace
   for your post lab. Demonstrate to your GSI your working stage for check off.
V. Post-lab Section
        For Part b) in the lab section, 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?
       For Part c) in the lab section, 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 f) of your prelab and compare the results. Do your values match for each
frequency? If not, explain possible causes for the difference.
VI. Revision History
 Semester and Revision           Author(s)                Comments
 Fall 2010                       Wenjie Chen and Jansen   Added a post lab section and modified other sections
 Rev 1.5                         Sheng
 Winter 2009                     Justin Hsia              Corrections and additions after Fall 2009 run-through.
 Rev. 1.4
 Fall 2009                       Justin Hsia              Updated table of constants for new equations including
 Rev. 1.3                                                 moment of inertia.
 Winter 2008                     Justin Hsia              Corrections and additions after Fall 2008 run-through
 Rev. 1.2                                                 and feedback.
 Fall 2008                       Justin Hsia              Converted lab to Word, fixed free body diagram and
 Rev. 1.1                                                 other errors.
 Fall 2008                       Pranav Shah              Initial lab write-up.
 Rev. 1.0