Ball and Beam Homework Problem
Lars Cremean, 29 September 2003
CDS 101/110 Problem set #1, Problem 5.
Problem Setup
A ball is placed on a beam, see figure below, where it is allowed to roll with 1
degree of freedom along the length of the beam. A motor is connected to the
beam at the center, and produces a torque that causes the beam to rotate.
When the angle is changed from the horizontal position, gravity causes the ball to
roll along the beam. A controller will be designed for this system so
that the ball's position can be manipulated.
For this problem, we will assume that the ball rolls without
slipping and friction between the beam and ball is negligible. The
constants and variables for this example are defined as follows:
M | mass of the ball | 0.11 kg |
R | radius of the ball | 0.015 m |
g | gravitational acceleration | 9.8 m/s^2 |
J | ball's moment of inertia | 9.99e-6 kgm^2 |
r | ball position coordinate | |
alpha | beam angle coordinate | |
A state space representation of the system can be found to be
. This representation
is included in the Simulink model provided, along with full-state (i.e.
all of the state variables are available to the controller) feedback
control with reference input.
Instructions
Right-click hw1ballbeam.mdl and save it to
a local drive. Open it with MATLAB (Simulink) and follow the instructions
given in Problem Set #1.
Notes:
- This problem was adapted from
Control Tutorials for Matlab.
- The time trace of the full state for each run is saved to the MATLAB
workspace as a structure called "ballbeam". You can access the elements of a structure
using a period (.), e.g. ballbeam.signals.
- The settling time is the time it takes for the system error to settle
to within the desired value plus or minus 5%. Any method of finding these
values to produce your plots is acceptable, but you may like to investigate the
MATLAB "find" command.
- Include at least ten values in each of your plots.
- Use the MATLAB "plot" command to produce your plots. Type "help plot"
in the MATLAB command window for help on using this function.
- Include a title, axis labels (with units), and reasonable axis limits
on all plots. See MATLAB
commands "title", "axis", "ylabel" and "xlabel".