Inverted Pendulum on a Cart [Control Bootcamp]

Sdílet
Vložit
  • čas přidán 29. 08. 2024
  • In this video, we introduce an example system to control: an inverted pendulum on a cart. We describe the state-space, find the fixed points, and simulate the system in Matlab. Because the linearized system is controllable, we will be able to arbitrarily place the eigenvalues of the closed-loop system through feedback in the next two videos.
    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...
    Chapters available at: databookuw.com/...
    Book Website: databookuw.com
    Brunton Website: eigensteve.com
    This video was produced at the University of Washington

Komentáře • 80

  • @CyberSinke
    @CyberSinke Před 3 lety +28

    Skipping the part how mechanical equations were derived was fine, but I would have found it useful if we were shown how Jacobian was solved and matrix A was created, based on those mechanical equations. Too big part of the story is missing, and suddenly we are again discussing controllability which was explained perfectly in previous videos.

    • @a1fr3
      @a1fr3 Před rokem +7

      I know it's a year later (maybe it wasn't the case back then). This can be followed in chap. 8.7 of the book shared in the description,

    • @Miguel-mv5yc
      @Miguel-mv5yc Před rokem

      @@a1fr3 The whole deduction of the equations is there? From 0 to 100?

    • @a1fr3
      @a1fr3 Před rokem

      @@Miguel-mv5yc Not 0 to 100, it looks like a good idea to create a video with that.

  • @sreejithkarangat
    @sreejithkarangat Před 4 lety +12

    Hello Professor, thank you very much for this Bootcamp series. The explanations are amazingly intuitive and simple to grasp. I am starting to watch all your videos from this end. God bless you.

  • @cola175
    @cola175 Před 3 lety +4

    Dear Professor, thank You very much for Your work! Individuals like You show us that the theory and practice are the same. Your work brings fun in Engineering!

  • @gordonsowner
    @gordonsowner Před 4 lety +29

    Thanks for these resources on control theory, I'm finding them clear and very illuminating (I do not have a background in this, just in math, physics, and now data science, which is how I found these lectures). One comment on this video... you talk about theta = 0 as the pendulum down position, but your drawing is suggestive of theta = 0 is in the pendulum up position. I can get by, but if you ever redo this with edits, that's one I'd suggest making. I don't know which should switch though -- your drawing, or your algebra. Thanks again.

    • @Eigensteve
      @Eigensteve  Před 4 lety +2

      Thanks for the feedback... yeah, this is always a tough choice to be clear and consistent.

  • @josuemanuelparejacontreras3443

    7:17 I was actually waiting you to "boring" me with the details of how you got those dynamics hahahaa, great series Professor, I am learning a lot!!!

    • @abhinavraghunandankannan3546
      @abhinavraghunandankannan3546 Před 3 lety +2

      Josue Manuel Pareja Contreras It’s a Controls boot camp and not dynamics boot camp ? Deriving the equations of motion is a beast of a task.

    • @juxyper
      @juxyper Před 3 lety +2

      check the lagrange-euler equations for the inverted pendulum on a cart, it's virtually everywhere.

    • @josuemanuelparejacontreras3443
      @josuemanuelparejacontreras3443 Před 3 lety

      looks like people think that I am claiming for the EOM to the professor, easy boys, I already derived it by lagrange and newton :P

  • @mac-jb7zh
    @mac-jb7zh Před 4 lety +9

    Thank you very much for this great lesson. Greetings from Poland.

  • @ernmz6800
    @ernmz6800 Před 4 lety +13

    Absolute Beauty! This is all explained so well, clearly and the code is perfectly organized

  • @Drone.Robotics
    @Drone.Robotics Před 4 lety +4

    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.

  • @daniyalwahid8996
    @daniyalwahid8996 Před 3 lety

    The best teacher I never had😪

  • @bobmckellar8349
    @bobmckellar8349 Před 3 lety +2

    I derived the equations of motion using Euler-Lagrange which are almost identical to yours but oddly a couple of components had different sign. After linearising, when I plugged in the constants you use and checked the eigs of A I got pendulum up = stable and pendulum down = unstable! It took me ages to find out its because you set g=-10 rather than +10. If I set g=+10 I get the expected eigs.

  • @anonym0usplatypus
    @anonym0usplatypus Před 3 lety +1

    The movie is a fantastic touch. Thanks!

  • @josealbertiangulo4634
    @josealbertiangulo4634 Před 4 lety +2

    Excellent series on Control! I have a master in ME and this is helping me to get around a lot of things I couldn't understand in class. I just wrote a code to get the Equations of Motion of the inverted pendulum, using the matlab symbolic toolbox, and now I got to use this equations and it's linearized form to simulate different control methods. But I don't know how to draw a plot. Where could I download your code to take a look at the 'drawcartpend_bw' function? I know you mentioned that there's a link below, but I just see the link to your webpage.
    Thanks you so much for the lessons, I have really learned A LOT!

  • @arunagiriharish4121
    @arunagiriharish4121 Před 3 lety +2

    Dear Prof, Your contribution is enormous for learners , I personally started to learn from your videos. Looking forward to do learn more. Thanks' a lot and kudos!!
    Where can I find the code of pendulum example and hence forth what you gonna use in the upcoming lectures of Control Boot camp Course?

  • @tiaanesterhuyse126
    @tiaanesterhuyse126 Před 2 lety +5

    Hi @Steve Brunton.
    This is very well defined code and clear on what should happen so i would like to know, In the video at 9:20 you say one can download the matlab code? Is this still possible and is it open source code?

  • @frustratedengineeringstude8593

    Thank you so much for this lecture video, sir! this really helped me in my thesis.

  • @DheerajSingh-ze4ji
    @DheerajSingh-ze4ji Před 4 lety +4

    Thanks a lot for explaining these topics in detail. I have been trying to learn control systems in detail and your playlist has certainly pushed in the right directions.
    I was curious about the MATLAB code from this example. Please provide the link to the code for us to read and understand by testing things by ourselves. Thanks

    • @Eigensteve
      @Eigensteve  Před 4 lety +7

      All code can be found at databookuw.com under the CODE.zip link (in Matlab and Python)

    • @pradiptabiswas2393
      @pradiptabiswas2393 Před 4 lety +1

      @@Eigensteve I was also searching for the code to play with it. Some how the link is broken. Is the link still available in the website? Thank you.

    • @RugnirSvenstarr
      @RugnirSvenstarr Před 2 lety

      @@Eigensteve Hi there Steve, thank you for the excellent lectures and book.
      It would be super useful for future students if you could put this comment into the description of this video and the next one (about pole placement)

  • @BlosHaterz
    @BlosHaterz Před 3 lety +3

    Thank you for the video, the explanation is very easy to understand for someone who is new in control system like me. May I know where is the download link to your program to further understand the inverted pendulum system? Thank you.

  • @user-dz6vl5eq8v
    @user-dz6vl5eq8v Před 4 lety +6

    Thanks, Professor!

  • @elumixor
    @elumixor Před 2 lety

    THANK GOD YOU EXIST!

  • @jmcvazUNLV
    @jmcvazUNLV Před 4 lety +1

    Dr Brunton, Thank you for the lecture. I have couple questions. I derived all the equations of motion and I am trying to simulate in Matlab I am using (b = 0.1; % Coefficient of friction for the cart (N/m/sec)
    I = 0.006; % Mass moment of inertia of the pendulum (kg*m^2)) in your example you use a "damping" factor on what exactly this constant is based upon? Can I replace that to b and I? why are you using this damping factor "d"?
    Also
    2 - How can I calculate from the Matlab simulation what motor parameters are (e.g. accelerations, running current, etc).
    3- In addition, how may I estimate the (pendulum angular) resolution needed given the pendulum’s height?
    Thank you

  • @what_on_arth
    @what_on_arth Před 4 lety

    Thank you for the lecture series.

  • @sooooleh
    @sooooleh Před 4 lety +1

    Thank you Dr. Brunton for your great efforts.
    Does finding the fixed points of the system means we linearize it? what if i have a nonlinear quarter car model, how can I approximate the fixed points?
    Thanks

  • @piotr780
    @piotr780 Před rokem +1

    how to find B matrix ?

  • @cihant5438
    @cihant5438 Před 3 lety +1

    Thanks for the video, very helpful. theta=pi would be down right? The professor misstated that both times.

    • @Eigensteve
      @Eigensteve  Před 3 lety +1

      Thanks. I define theta=0 as pendulum down, so theta=pi is pendulum up

  • @harshkaushal7076
    @harshkaushal7076 Před 4 lety

    Sir, you wrote theta = 0, for the pendulum down case. But according to the diagram its pendulum up case.

  • @paulobessa1906
    @paulobessa1906 Před rokem

    Hello, professor. thank you for the video and brilliant clarity.
    I have a question. As one of the eigenvalues of the system is zero, wouldn't the Hartman-Grobman theorem imply that the analysis of the linearization of the system doesn't necessarily match with the original system?

  • @mjausome
    @mjausome Před 4 lety +1

    Thank you for your fantastic videos. But one of the eigenvalues is zero, doesn't that make the linearization "invalid" according to Hartman-Grobman? It obviously works in practice but I thought you'd say something about that

  • @ayushpatel535
    @ayushpatel535 Před rokem

    How do we get the B matrix after linearizing? Like the Jacobian yields A matrix after we substitute fixed points in it, but how do we get the B matrix?

  • @VictorPalamim
    @VictorPalamim Před 4 lety +1

    Thanks Professor! How can I get the transfer function of the open loop and the controller separeted? I want to put the separeted blocks in Simulink and try to discretize the controller transfer function to see how it behaves in the continuous system.

  • @JohnDoe-qg1pj
    @JohnDoe-qg1pj Před 2 lety

    Why do you compute the Jacobian around the fixed points? Shouldn't it be computed around wherever you want your system to be? Hypothetically, if you wanted to have your cart move so that the pendulum stays at a 45 degree angle (probably impossible but let's say it could work), should you then calculate the Jacobian for theta=45?

  • @jeetdand3019
    @jeetdand3019 Před 28 dny

    how can we refer the codes you have used, i didnt get it. i want to look at drawcart pent system code can you help me with this.

  • @Haider_Waseem_445
    @Haider_Waseem_445 Před 2 lety

    Thank you so much for everything Steve. #pakistan

  • @rajatbaldha9375
    @rajatbaldha9375 Před 3 lety +1

    Where do i get the MATLAB code?
    The lectures are amazing and now I am also watching content not of my courses aswell

    • @Eigensteve
      @Eigensteve  Před 3 lety +2

      Thanks! matlab code at github.com/dynamicslab/databook_matlab

  • @motherbear55
    @motherbear55 Před 4 lety +1

    To find the B matrix, do you linearize the system dynamics around some "ubar" in addition to "xbar"? Also, how do you create separate A and B matrixes if the control is not linearly separate from x in the system dynamics? (For example, xdot = x * u)

    • @felixbrandle9398
      @felixbrandle9398 Před 4 lety

      The procedure is the same. If you want to linearize a general nonlinear system xdot=f(x, u), you can calculate the A and B matrix like this
      A=df/dx (xbar, ubar)
      B=df/du (xbar, ubar)
      In your example this would correspond to A=ubar and B=xbar

  • @reemalshanbari
    @reemalshanbari Před 3 lety +2

    Where can we find the code? thanks!

  • @zohrabsoussani1224
    @zohrabsoussani1224 Před rokem

    Hello, I wanted to download the codes but I couldn't find them. I'd appreciate it if you could help me find them. Thanks!

  • @frf3ed439
    @frf3ed439 Před rokem

    how do I find the equlibrium point and lineriaze the system

  • @zrmsraggot
    @zrmsraggot Před 2 lety +1

    Now imagine your goal is too drive the cart only to the right of the screen ( no backward just speed and brakes game).
    If thêta becomes negative ( too fast .. you crash)
    But if theta goes past 90 degres , the cart exploses !
    What do you do ? What do you do ??
    That’s right, you are Keanu Reeves in the movie Speed

  • @octaviodeshays9845
    @octaviodeshays9845 Před 4 lety +2

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

    • @jcsjcs2
      @jcsjcs2 Před 4 lety +1

      Someone pasted some of the code to stackoverflow.com/questions/58895639/i-have-tried-to-plot-in-matlab-but-matlab-plot-is-not-working because he had a question.
      @Steve: Do you think you can provide a link to all of the code you're using? I think in your video you're mentioning that the link should be in the description, but I can't find it.

    • @jcsjcs2
      @jcsjcs2 Před 4 lety +3

      Found a git repository with the code: github.com/AllSparks2848/Inverted-Pendulum

    • @ravikiran4495
      @ravikiran4495 Před 6 měsíci

      @@jcsjcs2Yoo thanks mate!

  • @Gattomorto12
    @Gattomorto12 Před 3 lety

    What if I want to control the cart with the keyboard?

  • @cypictronic
    @cypictronic Před 3 lety

    teacher sorry, how to draw in MATLAB the car?

  • @kariminem
    @kariminem Před 10 měsíci

    how can i get the draw_cartpend script ?

  • @user-ki7ov9du1f
    @user-ki7ov9du1f Před rokem

    where is the link for Matlab?

  • @frf3ed439
    @frf3ed439 Před rokem

    HI where can i get the matlab library

  • @damiengates7581
    @damiengates7581 Před rokem

    What is (-d/M)*velocity? At d=-1 that is like velocity divided by mass, what is that?

    • @damiengates7581
      @damiengates7581 Před rokem

      Maybe I got it; it is a damping term? How much speed is absorbed by friction?

  • @Geewhombee
    @Geewhombee Před 3 lety

    are you writing on your board backwards?

  • @lucasantagata4551
    @lucasantagata4551 Před 4 lety

    Which program did you use?

  • @mohammedaminaissou2285

    hi sir i'm making a double inverted pendulum
    can you help me and show me how you did this animation i wish you could help me the files and codes for animation

  • @piotr780
    @piotr780 Před rokem

    7:00 WTF is y here ? some change in notation, is y=x or y=x' ?

  • @frihyounes7179
    @frihyounes7179 Před 2 lety

    i didn't find the code

  • @aynurarustemova9274
    @aynurarustemova9274 Před 2 lety

    Hi) who knows where can I download the code?

  • @vladfalcon
    @vladfalcon Před 3 lety

    Good day Mr. Steve Brunton. Thanks for your knowledge about linear algebra, it helped me to discover covariant tensor machine (CTM). See my video about CTM.

  • @alaaomer840
    @alaaomer840 Před 2 lety

    💓

  • @gustavoexel3341
    @gustavoexel3341 Před 2 lety

    Now the rubber is gonna hit the road

  • @3131ilyes
    @3131ilyes Před 4 lety

    sorry I couldn't find the codes 😔

    • @54egg
      @54egg Před 4 lety +3

      See his "Chapters available at ..." link ( databookuw.com/databook.pdf) which is about 600 page text, Chapter 8, Linear Control Theory - includes Pendulum Cart example with MatLab code.

    • @3131ilyes
      @3131ilyes Před 4 lety

      @@54egg you are my brother

  • @andreybashkin9030
    @andreybashkin9030 Před rokem

    I hope you've all seen this practical demonstration of 3-pendulum:
    czcams.com/video/I5GvwWKkBmg/video.html

  • @perceptronsaber4479
    @perceptronsaber4479 Před 3 lety

    Lazy pendulum