Skip to content

NicholasBaraghini/Ball-and-Beam-system-Optimal-Control

Repository files navigation

Ball and Beam system Optimal Control

Description

You can read the task description here

Report

You can read and download our report here

Task 1 - Trajectory Exploration

Choose two equilibria and define a step between these two configurations. Compute the optimal transition for the ball to move from one equilibrium to another exploiting the DDP algorithm.

See the results in this jupyter notebook for a single step reference trajectory.Or download and run it!

result example in Task 1 (single-step)

See the results in this jupyter notebook for a multiple steps reference trajectory.Or download and run it!

result example in Task 1 (multi-step)

Task 2 - Trajectory Optimization

Define the reference (quasi) trajectory which the ball needs to follow exploitingthe DDP algorithm to compute the optimal trajectory

See the results in this jupyter notebook for the DDP algorithm apllied on the quasi-static reference trajectory. Or download and run it!

Quasi Static optimal trajectory

state_reference_opt_qs_traj

See the results in this jupyter notebook for the DDP algorithm apllied on the refined reference trajectory. Or download and run it!

Refined optimal trajectory

state_reference_opt_traj

Task 3 - Trajectory Tracking

Linearizing the system dynamics about the (optimal) trajectory (x, u) computed in Task 2, exploit the LQR algorithm to define the optimal feedback controller to track this reference trajectory.

See the results in this jupyter notebook for the optimal trajectory tracking.Or download and run it!

Results without noise

state_track

See the results in this jupyter notebook for the optimal trajectory tracking with affected by white noise.Or download and run it!

Results with noise (white noise)

state_track_noise

See the results in this jupyter notebook for the tracking of the refined optimal trajectory.Or download and run it!

Animations

Task 1 (single step)

Task_1

Task 1 (multi-step)

Task_1_2

Task 2 (quasi-stationary trajectory)

Task_2_qs_traj

Task 2 (refined trajectory)

Task_2_traj

Task 3 (without noise, initial consitions disturbed)

Task_3_init_dist

Task 3 (with noise)

Task_3_noise

Team

About

Design of a Differential dynamic programming (DDP) algorithm for the optimal control of a Ball and Beam system

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages