← All projects

Rowan University / Dynamic Systems and Control / 2025

Ball & Plate.

Two axes.
One continuous balancing act.

A physical feedback-control system that measures a steel ball’s position and tilts a plate to move it toward a selected target—bringing mechanical design, electronics, and PID control together.

Completed red ball-and-plate platform with a steel ball, resistive touchscreen, two servos, Arduino, and potentiometers
The assembled prototype · mechanical, sensing, and control hardware
Project type
Four-person course project
Control
Two-axis PID · Arduino & Simulink
Reported stabilization
5–10 seconds
Reported recovery
Under 9 seconds

01 / The project

Balancing in two dimensions.

Unlike a ball-and-beam system, this platform must control motion along both X and Y. A change in plate angle accelerates the ball, so reaching a target requires managing its motion as well as its position.

Our team designed and built the mechanism, integrated a resistive touchscreen and actuators, and developed a feedback controller. Two knobs set the target coordinates; the system then measures the ball’s position and continually corrects the plate tilt.

The team

James Lee, Ian Janaszik, Zander Marks, and Vanessa Hutchinson.

Developed for Rowan University’s Dynamic Systems and Control course with Dr. Hong Zhang. This case study presents our shared engineering work.

The performance objectives

  • Position the ball at multiple assigned coordinates.
  • Reach the target and recover from a disturbance within 20 seconds.
  • Maintain the stabilized position for at least 15 seconds.
  • Integrate the mechanism, sensor, electronics, and controller into one working prototype.

The abstract and final results use a ±0.5-inch positioning tolerance. A separate experimental-description paragraph specifies ±0.25 inches; that inconsistency is retained in the source report and discussed alongside the results below.

Read the original explanation · report p. 2 ↗

02 / Mechanical development

A plate that can tilt, and a base that can hold the system.

The team considered two- and three-servo layouts and finalized a two-servo mechanism in SolidWorks. A central universal joint supports the plate, while links from the two servos produce tilt along its axes.

SolidWorks assembly of the two-servo ball-and-plate mechanism
SolidWorks assembly of the two-servo ball-and-plate mechanism · Report p. 3 ↗

Printed parts and articulated connections

PLA parts formed the system base, servo arms, and touchscreen enclosure. The base provided mounting space for the motors, Arduino Uno, breadboard, and battery pack. Ball-joint rod ends connected the servo linkages to the plate, accommodating motion as the plate changed orientation.

The touchscreen base and top frame held the sensing surface in place. The geometry needed to maintain a usable ball surface while allowing controlled tilt and keeping the wiring accessible.

An integrated mechanical design

The CAD model established the actuator arrangement and available electronics space before wiring and tuning began. Packaging and control requirements influenced the mechanism together.

Read the original explanation · report p. 3 ↗

03 / Sensing & electronics

Measure the ball. Set a target. Command the servos.

The Arduino Uno connected the resistive touchscreen, two B10K potentiometers, and two high-torque servo motors. The touchscreen supplied real-time position feedback; the potentiometers provided separate X and Y target inputs.

Electrical wiring schematic
Electrical wiring schematic · Report p. 6 ↗

Position sensing

The resistive touchscreen gives the controller an estimate of where the steel ball is on the plate.

User input

Two rotary potentiometers let the operator move the desired target without changing the program.

Actuation

Two MS24 servo motors adjust the plate orientation through the printed arms and linkages.

Controller & wiring

An Arduino Uno and breadboard bring sensing, target input, and servo commands together.

The report documents four AA batteries as the power source and a shared ground between components. The schematic records the original wiring arrangement.

Read the original explanation · report p. 5 ↗

04 / System dynamics

From plate angle to ball position.

The model treats the steel ball as a uniform solid sphere rolling without slip. It neglects air resistance and uses small-angle approximations for plate tilt. These assumptions reduce the X and Y motion to matching simplified equations.

Ball on a tilted plate: free-body diagram
Ball on a tilted plate: free-body diagram · Report p. 8 ↗
Handwritten governing-equation derivation
Handwritten governing-equation derivation · Report p. 8 ↗

ẍ = −(5/7)gθx

ÿ = −(5/7)gθy

The angle sign follows the report’s coordinate convention.

The factor 5/7 accounts for the sphere’s rotational inertia as it rolls. In Simulink, the resulting acceleration is integrated to velocity and then to position. Initial conditions represent where the ball begins.

Ball-dynamics subsystem and initial conditions
Ball-dynamics subsystem and initial conditions · Report p. 12 ↗

This model provides a useful control-design starting point. Linkage tolerances, sensor behavior, and effects outside the simplified assumptions still have to be addressed on the physical system.

Read the original explanation · report p. 7 ↗

05 / Feedback control

Closing the loop on each axis.

The controller compares the target position with the measured position, then adjusts the servo commands to reduce that error. Separate X and Y branches use the same PID gains as a deliberate tuning simplification.

Two-axis Simulink PID feedback model
Two-axis Simulink PID feedback model · Report p. 10 ↗

What the PID terms contribute

  • Proportional: respond to the current position error.
  • Integral: accumulate error to address persistent offset.
  • Derivative: respond to changes in error and add damping.

The team tuned proportional responsiveness first, then integral correction and derivative damping. The report gives the final gains as Kp = 2.5, Ki = 0.5, and Kd = 3.0, with derivative filter coefficient N = 100. These values describe this prototype and its implementation, rather than universal gains for any ball-and-plate mechanism.

PID gains and derivative-filter settings
PID gains and derivative-filter settings · Report p. 11 ↗
Servo-command saturation limits
Servo-command saturation limits · Report p. 12 ↗

Keeping commands within the mechanism’s limits

The simulation included saturation at ±0.1745 radians, approximately ±10 degrees. Limiting the tilt command represented the mechanism’s allowed motion and kept the model from demanding unrealistic actuator travel.

Two views of the simulated response

Time-history plots show the response of each axis, while the XY trajectory gives a top-down view of the modeled path. The model used the prototype’s reported gains to support comparison with the physical tuning.

Simulated X and Y ball position over time
Simulated X and Y ball position over time · Report p. 13 ↗
Simulated ball trajectory in the XY plane
Simulated ball trajectory in the XY plane · Report p. 14 ↗
Read the original explanation · report p. 9 ↗

06 / Testing & results

Stabilization and disturbance recovery.

The team evaluated three target positions, timing stabilization with a stopwatch and observing recovery after manually moving the ball. The report documents 2–4-inch disturbances and 15-second steady-state holds.

Reported stabilization

5–10 seconds

Across the three recorded target tests, compared with the 20-second timing objective.

Reported recovery

4.77–8.95 seconds

Recorded recovery times after disturbances, also below the stated 20-second objective.

Timing data transcribed from the report’s Table 2
Target (in)Stabilization (s)Disturbance (in)Recovery (s)Hold (s)
(0, 0)1024.7715
(1, −1)548.9515
(−1, 1)537.215
Reported experimental stabilization and disturbance results
Reported experimental stabilization and disturbance results · Report p. 18 ↗

Accuracy and the limits of the record

The largest listed steady-state error component is 0.39 inches. The report concludes that the system met a ±0.5-inch tolerance, while another paragraph names a stricter ±0.25-inch requirement. Some position entries in the results table also do not match their target/error columns. The original table is shown above so those discrepancies remain visible; they have not been silently rewritten.

The reported timing results support a working stabilization and disturbance-recovery demonstration. Resolving the conflicting tolerance and coordinate entries would require the original trial records or a repeat test.

What the prototype illustrates

  • Model and hardware have to meet: a useful dynamics model still needs a sensor, mechanism, and actuator that work together.
  • Tuning is a tradeoff: responsiveness, overshoot, persistent error, and sensor noise affect the same loop.
  • Physical details matter: the report identifies linkage tolerances and sensor nonlinearities as sources of residual error.
  • Keep measurements traceable: consistent target coordinates, error definitions, and test criteria make the results easier to assess.
Read the experimental setup and results · report p. 16 ↗

07 / Full documentation

The final report and every figure.

The complete 18-page team report contains the architecture, components, dynamics derivation, Simulink model, controller tuning, and experimental results.

All 11 embedded figures are included below. Select an image to open it at full size, or follow its page link to see the original context.

Related engineering

From control loops to complete systems.

← All projects