Furuta Pendulum Control for Swing-Up and Stability

Furuta Pendulum Control for Swing-Up and Stability

ISEF Category: Engineering Technology: Statics and Dynamics

Ready to Turn This Idea Into a Real Project?

This guide was put together with the help of AI research tools to give you a solid starting point. But a competitive science fair project lives in the details: refining your research question, fine-tuning your variables, analyzing your data, and presenting your findings like a seasoned scientist.

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

Subcategory: Control Theory  ·  Difficulty: Advanced  ·  Setup: University Lab  ·  Time: Full Year

The Hook

A pendulum that starts upside down should fall. A good controller can stop that. That makes the Furuta pendulum a tiny chaos machine, and a perfect test for smart control ideas. You can measure which strategy handles disturbance best instead of just guessing.

What Is It?

A Furuta pendulum is a rotating arm with a hinged pendulum on the end. Your motor spins the arm, and the pendulum tries to balance upright. The system is unstable, which means small errors can grow fast. That makes it a classic test bed for control theory.

Think of it like balancing a broom on your palm while your hand sits on a spinning record. You need to move at the right time, not just harder. A controller reads sensor data, decides what the motor should do, and keeps the system near the target position. In this project, you compare a tuned PID controller, a gain-scheduled version, LQR, MPC, and Soft-Actor-Critic, which is a reinforcement learning method that learns actions from trial and reward.

Why This Is a Good Topic

This topic works well because you can measure real performance, not just whether the pendulum stood up once. You can compare rise time, overshoot, recovery after a push, energy use, and how often each controller fails. That gives you clear data and a real engineering story about tradeoffs between classical control and learned control. You also learn how sensors, motors, feedback, and noise shape a working system.

Research Questions

  • How does a gain-scheduled PID compare with fixed-gain PID for swing-up success and balance time?
  • What is the effect of disturbance size on recovery time for LQR, MPC, and Soft-Actor-Critic?
  • Does encoder resolution change the stability margin of a Furuta pendulum controller?
  • To what extent does motor saturation limit swing-up performance across controller types?
  • Which controller uses the least control effort while still stabilizing the pendulum?
  • What is the effect of sensor noise on the failure rate of each controller?
  • To what extent does training data quality change the performance of Soft-Actor-Critic on new disturbance tests?

Basic Materials

  • Furuta pendulum kit or custom rotary inverted pendulum frame
  • Brushed DC motor with driver board
  • AS5600 magnetic encoder or equivalent rotary encoder
  • Microcontroller such as Arduino, Teensy, or ESP32
  • Power supply matched to the motor and driver
  • Breadboard or soldered prototyping board
  • Jumper wires and connectors
  • Logic-level shifting parts if needed
  • Laptop for logging and analysis
  • Bench vise or stable mounting base
  • Protective eyewear
  • Emergency stop switch or quick power cutoff.

Advanced Materials

  • Low-backlash rotary pendulum rig with known arm geometry
  • High-resolution encoder for arm and pendulum angles
  • Motor driver with current sensing
  • Oscilloscope or logic analyzer for timing checks
  • Data acquisition system for synchronized logging
  • IMU or secondary angle sensor for validation
  • Force or torque sensor for disturbance testing
  • Linear power supply with current limit
  • Single-board computer or GPU workstation for training Soft-Actor-Critic
  • MATLAB, Simulink, or Python control libraries for model fitting and controller design.

Software & Tools

  • Python: Fits models, logs trials, and compares controller metrics.
  • NumPy and SciPy: Process signals, estimate parameters, and run control calculations.
  • Matplotlib: Plot angle, speed, control effort, and recovery curves.
  • Jupyter Notebook: Keeps your analysis, notes, and figures in one place.
  • OpenAI Gym or custom Python environment: Lets you train and test reinforcement learning controllers in simulation before hardware tests.

Experiment Steps

  1. Define the exact success criteria for swing-up and stabilization so you can score every controller the same way.
  2. Build a simple model of the arm, pendulum, motor, and sensor so you know which physics terms matter most.
  3. Decide which controller starts as your baseline, then plan how each new method will be compared against it.
  4. Design disturbance tests that change one condition at a time, such as a push, a load change, or added friction.
  5. Create a calibration and logging plan so angle, timing, and motor command data stay aligned across all trials.
  6. Choose the statistics you will use before you collect results, so you can compare repeatability, failure rate, and effect size fairly.

Common Pitfalls

  • Tuning each controller on different test conditions, which makes the comparison unfair.
  • Ignoring motor saturation, which can make a good controller look weak when the hardware hits its limit.
  • Logging angle data without checking encoder alignment, which can flip the sign of the pendulum position or add offset error.
  • Training Soft-Actor-Critic only in simulation with a simple model, which can fail when real friction and backlash appear.
  • Using only one metric such as final balance time, which hides tradeoffs in energy use, overshoot, and recovery speed.

What Makes This Competitive

A strong version of this project does more than compare plots. You build a fair test bench, keep the same disturbance conditions across all controllers, and report several metrics, not just one. You also explain where each method wins and loses, such as control effort, recovery speed, and sensitivity to noise. The best projects connect the data to a real design choice, like when a learned policy beats classical control, and when it does not.

Project Variations

  • Compare controller performance under added arm mass to test how each method handles parameter drift.
  • Swap the disturbance type from manual pushes to programmed motor load changes, then measure recovery curves.
  • Train the learning controller in simulation with noisy sensors, then test how well it transfers to the real pendulum.

Learn More

  • MIT OpenCourseWare, Control Systems: Search MIT OpenCourseWare for free lectures and notes on feedback, stability, and controller design.
  • NPTEL Control Systems courses: Search NPTEL for free university-level lessons on PID, LQR, and state-space control.
  • NASA NTRS: Search the NASA Technical Reports Server for pendulum control, disturbance rejection, and nonlinear control papers.
  • NIH PubMed: Search for review articles on reinforcement learning in control and robotics, then filter for open abstracts and linked papers.
  • IEEE Xplore abstracts: Search for Furuta pendulum, rotary inverted pendulum, LQR, MPC, and reinforcement learning papers, then use abstracts and freely shared preprints when available.
  • Python documentation: Read the official docs for SciPy, NumPy, and Matplotlib to build your model, plots, and analysis workflow.

For next steps tailored to your interests, skill level, and timeline, work one-on-one with a MehtA+ mentor. Learn more about MehtA+ Science & Engineering Research Mentorship →

To discover more projects, visit the MehtA+ Science Fair Project Discovery Hub​ →

Shopping Cart