Pole Placement for the Inverted Pendulum on a Cart [Control Bootcamp]

Поділитися
Вставка
  • Опубліковано 5 сер 2024
  • Here we use the 'place' command in Matlab to design full-state feedback gains to specify the eigenvalues of the closed-loop system. This is demonstrated on the inverted pendulum on a cart.
    These lectures follow Chapter 8 from:
    "Data-Driven Science and Engineering: Machine Learning, Dynamical Systems, and Control" by Brunton and Kutz
    Amazon: www.amazon.com/Data-Driven-Sc...
    Chapters available at: databookuw.com/databook.pdf
    Book Website: databookuw.com
    Brunton Website: eigensteve.com
    This video was produced at the University of Washington
  • Наука та технологія

КОМЕНТАРІ • 34

  • @Drone.Robotics
    @Drone.Robotics 4 роки тому +6

    Thank you Sir....I have seen the whole series and it have cleared lot of my concepts about control theory. Your videos are just great and your way of teaching complex things in simple manner is appreciable. Thanks Again.

  • @supercampillero
    @supercampillero 3 роки тому +2

    Had lots of control teachers, let me tell you are a GOD!

  • @blaumeisen
    @blaumeisen 4 роки тому +2

    good explanation! Danke sehr!

  • @farahmahdi4771
    @farahmahdi4771 2 роки тому

    Thanks a lot! Great explanation

  • @vicentecaneiro5025
    @vicentecaneiro5025 3 роки тому

    Thank you for your knowledge sharing professor. If I had a real system of IP and want to control it by controlling its linear velocity (instead of force), how could I get my linear mathematical model? Could I do it only by obtaining my B matrix by differentiating my state equation by linear velocity?
    Thank you very much.

  • @sabb1495
    @sabb1495 4 роки тому +1

    are there conditions on m, M and l that would make this uncontrollable?

  • @kaikingkailai
    @kaikingkailai Рік тому +1

    Thank you professor. Where I can get the example code?

  • @arunagiriharish4121
    @arunagiriharish4121 3 роки тому

    Dear Prof where to get the matlab command you are using for teaching here in videos?? i.e. sim_cartpend and lqr_cartpend etc

  • @ahmedrista164
    @ahmedrista164 3 роки тому

    Thank you, professor, I can't upload the link of code, is there another link to download the code?

  • @babakghorbani2203
    @babakghorbani2203 3 роки тому

    The cool thing here was that y_ref did not show up in designing the controller. We only used y_ref when solving using ode45, which to me means that the final state does not have an effect on the controller. So cool. Someone correct me if I'm wrong. (Maybe it's a result of those equivalent reachability, controllability, etc. stuff)

  • @lorenzoalbertini5658
    @lorenzoalbertini5658 6 місяців тому

    Can you help ,e with the discretization of this sistem? in particular which sample rate should I use in c2d command in Matlab? thx

  • @krisjk999
    @krisjk999 4 роки тому +2

    I have a doubt on the beginning values used in the simulation. The starting values are chosen close to the point where we want to stabilize (pi,0) or (0,0). What happens if the starting values are faraway from the point to stabilize? I guess our linear model is not valid anymore and we wouldnt be able to guarantee that we can reach the quasi stable equilibrium (pi,0). Is there any general rules on this? If starting state is way in the non linear region (where linear approximation doesnt apply), can we still use the linear controller?

    • @clementboutaric3952
      @clementboutaric3952 Рік тому +1

      Well at some point you will have to use non linear control, which is much more complicated than linear control. Or you can set up a trajectory to get near your desired point, and control your system so that it follows this trajectory by linearizing several times along its path. When you get close enough, you can start stabilizing the point using what he did.

  • @VictorPalamim
    @VictorPalamim 4 роки тому +5

    Thanks Professor! How can I generate the code to run the controller in Arduino?

    • @Eigensteve
      @Eigensteve  4 роки тому +8

      Good question. You can start by downloading the code at databookuw.com. Also, Brian Douglas has some great stuff on control implementations in hardware.

  • @octaviodeshays9845
    @octaviodeshays9845 4 роки тому +2

    Hey professor! your videos are amazing, I would like to know where can I download the matlab code that you use in these video? It would be very helpful for a proyect I'm working on at my university in Argentina. Thanks for everything!!

  • @motherbear55
    @motherbear55 4 роки тому +4

    At 11:03 you said that making the eigenvalues too aggressive will actually cause the system to become unstable, due to the nonlinear dynamics.
    But this is always a risk -- we've linearized the system around a particular point, so going too far away from that point could cause our controller to fail.
    Is there a way to find the border of the state space where our linearized controller will start to fail?
    If so, would it be possible (or practical) for the size of stable area to be a term in the cost function that you describe in the LQR video? (The bigger the area where the controller can stabilize around a fixed point, the better -- so I'd like to optimize the controller to widen that area)

    • @Eigensteve
      @Eigensteve  4 роки тому +6

      This is a great question. That is true that often nonlinearity implies some "basin of attraction" near your linearization. In general, saying things about performance and convergence in nonlinear systems is very challenging. Lyapunov functions are useful here, but they are hard to come by in real systems. I do seem to remember seeing the radius of convergence being a term in some advanced control optimizations, but I can't quite remember where, off the top of my head.

    • @motherbear55
      @motherbear55 4 роки тому +2

      @@Eigensteve thanks for the quick response and the pointer to lyapunov functions. Your videos are awesome by the way!

  • @ailsani8749
    @ailsani8749 2 роки тому

    Thank u thank u thank u

  • @MinhVu-fo6hd
    @MinhVu-fo6hd 4 роки тому +6

    Thank you for the great video. However, I found a little bit weird that we designed u=-kx but implemented u=-k(x-x_ref). Could you explain why it still works?

    • @justinushartoyo2370
      @justinushartoyo2370 3 роки тому +6

      I can try to answer this if you haven't found it:
      For this bootcamp problem, the control input u is designed to bring the states x to 0. This is done by making sure that all eigenvalues of the closed loop system matrix (A-BK) are negative, so the solution would decay to 0 overtime. However, by introducing a new 'error' state (let's call it xbar = x-x_ref), we could implement the exact same control input, but this time it would bring xbar to 0 instead. This means x = xref, and we did this without having to develop a new controller.
      EDIT:
      The new controller still works because d(xbar)/dt = (A-BK)xbar, same system dynamics, just linearly shifted by xref.

    • @MinhVu-fo6hd
      @MinhVu-fo6hd 3 роки тому

      @@justinushartoyo2370 yes, it is the error dynamics. I didn't realize that he overloaded the variable x.

    • @keifonlee8342
      @keifonlee8342 2 роки тому

      @@justinushartoyo2370 This comment should be highlighted here

  • @snapchatnasdaschiennete4353
    @snapchatnasdaschiennete4353 4 роки тому

    where i can download the code !

  • @trfldwtrl
    @trfldwtrl 4 місяці тому

    how to visualize it? how to get drawcartpend_bw file? :)

  • @ismaelochoa8730
    @ismaelochoa8730 2 роки тому

    In this part of the code:
    [t,y] = ode45(@(t,y)cartpend(y,m,M,L,g,d,-K*(y-[4; 0; 0; 0])),tspan,y0);
    why do you use this matrix [4; 0; 0; 0] when S=1 and [1; 0; pi; 0] when s=-1, is this from the linearisation process?

  • @kelumsenaka4146
    @kelumsenaka4146 2 роки тому

    Can I get this MATLAB code?

  • @tonginhquan1339
    @tonginhquan1339 2 місяці тому

    can i have code of matlab pls

  • @jrbrown1989
    @jrbrown1989 2 роки тому

    What do controls engineers have in common with strip club managers? They both care about optimizing pole placement.

  • @anantj18
    @anantj18 3 роки тому +1

    Great lecture but, How is he writing like that? What black magic is this?

    • @RugnirSvenstarr
      @RugnirSvenstarr 2 роки тому +2

      He is writing on glass that is between him and the camera. Normally the writing would appear backwards, but the video has been flipped in editing software