 This is the same paper that generated many other short works, so essentially you have a system like this, you have a double integrator and you have this guy here, you see there is something that makes the system asymptotically stable if these were not there, right? But then there is this extra nonlinearity that you don't know what to do with it. So somehow you want to, the effect of this nonlinearity you want to cancel it with the, by designing a control input in the linear dynamics down there, right? So what you want to do is first design, well I will skip this. What you want to do is to design U to stabilize psi, but not only you want to stabilize psi, but also you want to add an extra feedback to take care of these terms here, okay? So according to the theorem I showed you, what you do is the following. First, if this is just a double integrator, you first use a feedback to put the pulse of the, of your linear system in the right place. So let's say we choose these control gains to make the system down here asymptotically stable and you add an extra input, as I said, to take care of these guys here, okay? So this is the matrix that we saw before, this, so here A is just zero, what is it, zero, one, zero, zero, right? And this guy here is A minus BK, yeah? Which I made it always. Then there is the extra input. And my Lyapunov function that I'm going to use to, to figure out this input is going to be V, which is Lyapunov function for the system x dot equals F zero, which in this case is just x dot equals minus x cube. So V equal x square will do, right? Because with that you get V dot less or equal than, well actually equals to minus x cube, if I consider V dot just to be partial of V times F zero. And what else? And then I have this guy here that will generate this one. And then I can figure out what I have to put in this input to take care of the, of the external linearities that are sitting there in my system, right? And yeah, so I just do that computation. I take the derivative, this is minus cube, and this is C, and what else? Here I have xi, here I have xi, and V I can choose it. So I will just choose it to match exactly that, yeah, with a negative sign. And we'll take care of those non-linearities. I will add a minus y here to add extra dissipation if I want. And then what will I obtain? I will obtain this. If I want to continue, maybe there is something that after this system there is, I will go and interconnect it with something else. So let's just say for the purpose of continuing, think about passivity, interconnections, and so on. Let's just invent a new input that I'm going to put in my system. So I close the loop and I add a new input. As you can see, I have passivity from this new input to the, to the output y because I have all these negative terms here. So I have actually strict passivity with respect to the state, yeah. I have this negative term in xi and I have this negative term in, in x. So that gives me strict passivity with respect to the state. And by adding these minus y here, I have a y square in the, in the, in this inequality which gives me also, so this is, this is integral of y square. It gives me also output strict passivity. So you see with this, this controller I enforced really the, the passivity of the, of the system. So this is, this is the picture I have. I have this, this system that I'm interconnecting with this one here. This system has an output, as output this, so this is an output that I define. And I use that output to, to make the passive interconnection. So I'm going to use that output to inject it into this block. And I'm going to define the, this input v exactly as being that output. That's, that's exactly what I just did, right. I said my, my new input v is defined by this guy here. Okay. So that's, that's this. Then I take the output y and then it goes back into, into here. So as you see, yeah, it's, it's for a particular class of systems, but yeah, often with, with mechanical systems and such, you can, you can do that. So yeah, it looks like that because, because you have, so again, but essentially you, so think of this as imagine you, you, you, I mean, you will see, you will get lecture on adaptive control. So it, it, suppose you, you do your control knowing all the parameters of the system, and you know how to do that. And so you end up with, with this equation x dot equals f zero, right. So that's the case in which you know the parameters, and then you don't know the parameters. So a bunch of extra things appear. Well, you can just take care of them with, with, with this feedback passivation. Yeah, that's, so this cascade story is that I skipped it because we don't have time, but Kokota, which was, was, I mean, this triggered all the study about cascaded systems. And as you can see also, the, this feedback passivation is exactly at the basis of feedback, of a back stepping, right. So I mean, this paper really is, is at the basis of a lot of things. So the, the, the cascade thing is that you could, you could imagine that if, if you have this system that is linear, that this perturbing your, your nonlinear system, an intuition would say, okay, I will, I will just stabilize this guy. And once this is not there, I have a nonlinear system that is stable. So everything should be okay. So they, they remarked that no, it's, it's not like that in nonlinear system. Because if, if you like say, I'm going to stabilize it like real fast. Well, real fast for this system may also mean that, that you have a peaking in the, so in the transient, you have a huge peak. And then, yeah, you stabilize it in like in one second, the size already very small. But this, this peak goes to certain levels. And if you inject more and more damping to, to stabilize it faster and faster, what you will end up with is that your system essentially will, will, will explode. The solution to the, to the system up here is given by this equation. There shouldn't be x1, that's just x. So this is the solution to the system. And as you can see here, you have bunch of terms with a minus one there. So at certain moment, all that cancels out, you are dividing by zero and the solution explodes. So they were just remarking that, yeah, for this kind of systems, it's in cascade because this guy is completely the couple, there is no dependence on x. If you just stabilize it with a, with a, with certain feedback, you make, not only you will not be achieving stabilization also of x, but you will actually, actually make it explode in finite time. So that's not what you should do. So you, so yeah, so they figured out, okay, so if these, if the, if the extra non-linearities that are sitting there have certain structure, I can figure out how to inject something, some extra input here in order to take care of those, of those. But, but yeah, there is, there are these structural properties, right? So you have to define certain output from your non-linear system. And then you have to have the xi here appears in the non-linearities in your system, but it doesn't appear just in any arbitrary manner. It appears like this, remember? So you have to have, you have to be able to factor out of your non-linearities, this, this y, which happens to be exactly xi times xi. So, and in this case, well that, that output is, is this. So, but then again, it's, it's really about choosing the right output in, in your system to define this passivity property from, from the right output. And if you have these structural properties, you will be able to, to, to do things. Okay, I'll try to do this last part of the, of the lecture on a specific kind of passivity-based control that is called energy-shaming plus dumping injection, you have probably heard of this. Yeah, so this, this method was originally proposed by paper in 81, really long ago. That was also very revolutionary paper because, so 80s is, is, is, you know, I mean, it's really a long time ago. Basically only Japanese had robots in factories and such. So, in, back in, in those days, not, notably in, in chain production of cars, right. So, basically in those times, there was very little known about non-linear systems. So, they figured out how to control robots, robot manipulators, non-linear systems using this method that they called energy shaping. I mean, it consists in, I was saying in the beginning, when you have a passive system, you have this energy balance equation. So, what they figured out is, if I want to bring my pendulum to, to a desired position, all I have to do is manipulate the potential energy to bring the minimum of the, of the potential energy to that position. And if my control, if through my control, I am able to do that, I will be able to stabilize any equilibrium at that position. If on top I am dumping, then I will also be able to stabilize it asymptotically, right, using, again, the passivity notions. So, just to illustrate this, this method, yeah, so you can also read about it in our, in our book with Roméo Ortega in 98. But, yeah, you know that this, this method, it goes back to this, to this guys. So, if I illustrate this method with the, with the pendulum, what the situation we have is the following. This is the potential energy, the total energy of the pendulum, right. So, kinetic energy and potential energy. And potential energy looks like this, right. So, 1 minus mg l cosine. So, it's that curve. As you can see, this energy has a bunch of minima. So, the pendulum, we are thinking that q is in r, okay. Don't, don't think minus p, minus to, minus pi, pi, but r. So, if we think of q in all variables in r, then it has a bunch of minima at n, 2, 2 pi n, right. Well, if you want to stabilize your pendulum at a specific point, you don't want all these minima. You want to, first, to have only one minimum, which is your equilibrium. And you want it to be global. So, meaning that your, your potential energy should look more like a parabola or something. So, what you want to do is to manipulate this, this potential energy. And you want to do that because, well, conserving the passivity properties and such. So, the first thing to remark is that the pendulum from, from the inputs u to the velocities. So, as we already saw, torques to velocities is a passive map, right. So, if you take this function, the derivative will give you just the product of u times q dot if there is no friction. So, it's a passive map, right. In other notation it satisfies this. So, in order to change the potential energy, the first thing you do is maybe add a line to the, to the, to the expression of the potential energy and also an offset, okay. So, first you want to, to put the minimum of your potential energy, you want to put it at 2 star somewhere. And if you add a line, then your potential energy now you will look like this. So, that's, that would be 1 minus mgl plus an offset plus, plus this, plus this line, right. So, it will look like that. I still have several minima, right. But my system is still passive. All I did was just basically add this, this offset and this, this line here. And now my system will still be passive from a new input that I'm going to call u fb for u feedback. So, there is a feed forward and there is a feedback. So, the feed forward is just shifting the, the, the minimum of the potential energy to, to the gravitational vector to evaluate that q star, okay. Yeah. So, that this system is passive. You can see it easily by just taking the derivative of the newly opponent function, the new storage function, the kinetic energy plus the potential energy of the pendulum plus the modifications I added. So, of course, this function is zero at q equal to q equal to q star, right. So, these guys, two guys will, will cancel out if q is equal to q star. q tilde I'm defining as the difference. I guess it was, yeah, it was somewhere in the other slides. q, q tilde is, is the difference between q, oh, it's here. So, this will also go away. And so, it has, it has a singular point that q tilde equal to zero. And actually that singular point is, it's here. So, it's, if I take the derivative of that, yeah, as you can see, this guy goes away with this because it's multiplied there. This is one. This goes away with that and we only have left this, this vector. So, all I did so far is manipulate the potential energy, right. Now, what I want to do is I don't want the potential energy to look like that. I said, I wanted it to be a minimum that is global, meaning that it is, this point is smaller than any other point of the, of the function in the image of the function. And also it has to be the only one, okay. Global and unique is not the same thing. I could have a function that does, I don't know, it goes like this and then flat and then like that. So, all these are global minima, right. So, what I want is something more like what I have in this picture. And the way I to achieve that is to add to what I already put in my function, I am going to add a parabola. So, if you add a parabola to that, basically now the thing that was going like that, now it will look like this, this blue curve there. And, but this blue curve for a certain value of k p will look like this. And you can see there is another minimum there, okay. So, there is one minimum there and there is one minimum there. So, this minimum is global, but there is, it's not the only minimum in my function, there is also this one. So, eventually my system could go and get stuck there. So, I don't want that. So, I increase my k p to make my function rather look like this, okay. So, now I'm sure that I have a unique minimum. Once I have done that, modification to my potential energy, I do that through the controller. So, the controller essentially will carry all these extra terms that I need to modify the potential energy. And, all that will cancel away. So, we'll have this guy cancel with, well, it comes from this. So, it cancels with this. This one comes from the controller. So, it will cancel out with this one, okay. So, it's multiplied by q dot here. And, this one comes from the parabola that I added to my potential energy. That means that in my controller I should put, I should put this gain here. And, it's a very simple controller for a non-linear system, right. It's just a proportional feedback plus constant essentially to uncancellation of the non-linear well, plus this compensation of the gravity at the equilibrium. We're doing that. We're doing this reshaping of the potential energy. What I'm doing is that I'm rendering passive. So, in the beginning I had a passive system. I think this offset only modified the minimum with the potential energy, but the system is still passive. And, then I added this feedback here. So, it's this proportional term. It's a feedback of q dot if I pass it through an integral. So, an integrator is a passive system, right. It's the simplest passive system we can think about. So, x dot equals q, or let me write actually y dot equals u, v equals y square. That means that v dot is equal to y times q. Passive system. An integrator is a passive system. So, I have a passive system interconnected with a passive system. In closed loop I will have a passive system, which is expressed down there. And, to make the new minimum, to make it global, what I need is to, as illustrated in this figure, I need kp. So, this is for a certain value of kp rather small, and the red one is for an increased value of kp. So, actually the condition comes to kp should be larger than the partial derivative of the gravity forces vector. And, that will ensure me actually that the second derivative of v is positive, and that will ensure me that my function is strictly convex in q theta. This is only sufficient. It's not necessary. It doesn't have to be a parabola. It could be also functioned at this parabola only locally, but then it grows linearly. And then this position will not hold, but for the purpose of energy shaping and all that, that still works. And then, yeah, so far what I have accomplished is I started with a passive system, modified the minimum. Applying this gain, I made sure that the minimum is global and unique. I still have a passive system there from every time I add a new input towards the same output q dot. And remember that theorem of Bernsie-Sidori-Willems, he was saying that if I have a passive system and I have that detectability assumption satisfied, all I have to do is to interconnect an extra feedback here, which is basically a function of the output with respect to which my system is passive. And this function here should be basically a nonlinearity living in the first third quadrant. So, if I inject that, I will inject dissipativity in my system, and I will make the whole thing output strictly passive. So, this block will be input strictly passive, but the whole block here will be output strictly passive. And yeah, so the proof of this proposition that we now have with this controller, global asymptotic stability can be done using this theorem that I show you, or Barbashin-Krasovsky, which probably you know wrongly as LaSalle's theorem, but it was actually originally proposed by some Russian guys several years before LaSalle. And the controller is right here. So, what I just explained is the following. First, I added this to change the minimum of the potential energy. Then we added this to make it global for sufficiently large Kp, and then this guy to add damping. So, we call this damping injection and these two terms we call them energy-shaking terms. And the proof is very simple. You just take as the upper function the modified energy of the system. In this case, we only modify the potential energy. The derivative of all that is going to be, it's going to be this, right? So, you can see in UDI, you just want to inject damping so that you get you get a quadratic term. I hope it is there somewhere. Yeah, here. You get a quadratic term in the output. Yeah, so this is the proof using Bern Cicidori-Williams. It says that all I have to do is inject this guy that will give me v dot with this. It will give me minus Kdq dot square. And then I will have to check whether q dot implies that q goes to 0. In this case, actually, if I write q dot equal to 0, that will go away and I have this equal to 0. And the only solution of this equation is q equal to q star. And it is the only solution once again due to the condition the time imposing on kp. So, it has to do with making the only minimum to be k star. You can do the same proof using LaSalle again so that you can write the system or Barbashin Krasovsky. You write the system in this form, go here, set x2 equal to 0 and see that the only solution that contained in this set is the origin. And the nice thing about this is that you have output of strict passivity. So, if you add another input here, you will have instead of in place of this, you will have the same input multiplied by q dot. So, you could continue carrying on with more things. Let me just quickly show you what happens when you want to stabilize the system again here. But remember, in the controller, we were adding this term. This is the compensation of the gravity at q star. So, this is constant. This is just a constant. Suppose you don't know that constant. So, you want to estimate this constant. You put an estimate of the constant and then you want to figure out how do I update this constant? So, it's typically what you do in adaptive control that you haven't seen that yet, but in this case it's just integral action. And it comes back to the method of Kokotovich. What we want to do is to first apply the control that we already know that works when we know the constant. And what we do next is we add and subtract that constant because we actually cannot put it there. So, we are actually going to apply this controller. So, we are going to use an estimate of that constant and we add and subtract the real thing. But this is the control we're applying. This controller can be written like this. So, the one that we already know how that it works, it gives impassivity, etc. Plus, the difference between what I'm putting in and the real thing that I don't know. So, that again is just, well, this is constant and this is g hat. So, I'm going to call that xi. So, yeah, all this to say that the class of systems that fit in this paper of Kokotovich is not that restrictive actually. For instance, here we have exactly that system. Here we have this. This is the pendulum equation. In closed loop, you can see here the kpq tilde term. This is the kdq term, q dot term. And this is the gravity. This is the gravity. This is just g of q. And this is the compensation, the ideal compensation that I don't have. And when I apply the control with the estimate of the compensation, I will have these equations. So, I have xi times nonlinearity, which in this case is just this constant vector. And here we have this f0, remember, that has to be gas. But I know that it is gas because I know how to do things when I know the gravity compensation. So, I say, well, how do I estimate g? Well, figuring out what to put in g dot comes to figuring out what I put in xi. So, I basically just go ahead and write this equation, which is an extra integrated. And these guys would tell me, well, just put that. Well, I can't really because because, because what? Because that would involve using xi in the feedback. If I wanted to put this term in this equation, it would involve using what I don't know. So, I will just not put that. I will go ahead and test my chances with just the other part that takes care of the effect of this extra term that I have in my equation and see what happens. So, we didn't see that here, but there is a simple way to figure out a Lyapunov function for this guy. And using that Lyapunov function, you can establish passivity now, not only with respect to the velocities, but actually to this output, which is essentially a small constant times positions plus velocities. So, it's just another passive map. And when you apply that, you end up with this controller. So, the controller, you already knew how to, how to, that uses gravity compensation. But instead of gravity compensation, you use an estimate of it. And in place of the estimate, you put this guy, which comes really from the method of Kokotovich, which tells you, well, take the output of your system. If that output is multiplying this external linearity that you want to get rid of, well, just put that into your new feedback. And that will take care of this extra thing that you have in there. So, you can see that by taking the derivative of this Lyapunov function with one half of xi square, you will see that you get this guy and this guy that comes from your equation here. Right? So, this and this go away and then you get your system. And yeah, it all comes just to integral action. So, this is what we had when we know the gravity term. If we don't know the gravity term, this passivity-based controller is saying, well, just take this output because the system is passive also with respect to this output, not just with respect to q dot. Take that output, pass it through an integrator and then you will still be fine. And it all boils down to PID control. So, PID control for robot manipulators is another passivity-based controller. These are some references in case you want to know more about all this. Okay? Thank you.