Coder Social home page Coder Social logo

alexsantopaolo / optimization-based-iterative-learning-control-for-trajectory-tracking Goto Github PK

View Code? Open in Web Editor NEW
17.0 1.0 2.0 1.05 MB

University group project concerning the implementation of an iterative learning controller tested on a Cart-Pole system. The code has been implemented in Matlab.

MATLAB 100.00%
iterative-algorithms optimal-control robotics cart-pole matlab mpc-control

optimization-based-iterative-learning-control-for-trajectory-tracking's Introduction

Optimization-Based Iterative Learning Control for Trajectory Tracking

Developed by: S. Saif, A. Santopaolo (2020).

Supervisor: prof. G. Oriolo, L. Lanari.

Achievement: Underactuated robot exam.

Project description:

In this project an iterative learning controller is realized and tested on a Cart-Pole system. Starting from a feasible swing-up trajectory, at each trial, the uncertainties over the dynamics parameters of the model are estimated and incorporated in the controller formulation during the next iteration. Simulation implemented in Matlab.

File details:

  1. Section A: there is an INIT.M call to initialize the parameters.
  2. Section B: Using get_optimal_trajectory function a NPLMC algotithm is run to find the ideal trajectory. There is the plotting of Ideal trajectory.
  3. Section C: Number of simulation for ILC to converge.
  4. Section D: Setted up the real nominal condition that varies at each iteration. First simulation run with optimal input. Computed Lifted representation. Initilization of Kalman filter matrices and cycle with simulation. Run control step using fmicon. Computed each simulation trajectory and plotted all of them.
  • INIT.M: Parameters initialization.

  • PENDULUM_ur_CT0: Function with continuos time cart-pendulum equations of motion with nominal parameter.

  • PENDULUM_ur_CT0_real: Function with continuos time cart-pendulum equations of motion with real parameters.

  • PENDULUM_ur_DT0: Function with discrete time cart-pendulum equations of motions using Euler method. (Nominal parameter setup)

  • PENDULUM_ur_DT0_real: Function with discrete time cart-pendulum equations of motions using Euler method. (Real parameters setup).

  • Plot_trajectory: Script to plot in a same images plots of cart position, cart velocity, pendulum angle, pendulum velocity and input with respect to time.

  • Plot_trajectories: Script to plot cart position, cart velocity, pendulumangle, pendulum velocity and input with respect to time for each single trial in the same image.

  • Get_Fd_contr: Script to get F and D matrices related to angle position dynamics.

  • get_jacobians: Script to get A and B matrices for state space model computing at each time istant the jacobians.

  • get_lifted_repr: Algorithm to compute F,G and D_0 given column vectors of all state and input. F and G represent the model dyamics. Algorithm present in the report.

  • get_optimal_trajectory: Script to run the NLMPC and get optimal trajectory. Implementation details in the report.

  • nonlinearconstraints: Constraints of cart position and cart velocity due to rail length and cart actuator. Used to run fmincon algorithm.

For further detail open the Project_Report

Watch the video with the results

References

Schöllig, A., & D'Andrea, R. (2009, August). Optimization-based iterative learning control for trajectory tracking. In 2009 European Control Conference (ECC) (pp. 1505-1510). IEEE.

optimization-based-iterative-learning-control-for-trajectory-tracking's People

Contributors

alexsantopaolo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.