So, let's see. If we want to do the complete six-degree-of-freedom, the six-state control. It's three degrees of freedom, purely rotation, right? If we want to do this. Let's actually, part of the review, let's go through the regulation problem. In class, last time, we derived the full-tracking problem which had extra complexity. But let's go through the steps. We can do that much quicker by just looking at this. So, first question, as always, if I want to bring this pen to rest pointing at a particular attitude, how many states do I have to throw in there? Or what state, specifically, would I throw in there? Brian, what do you think? The attitude coordinates and rates. Attitude and rate. So a lot MRPs, we can use MRPs, and we have the rate measure, right? That's what we're gonna do because we want both of those things to come to rest. Now for this system too, we need a Lyapunov function. It's positive definite in terms of all of these quantities. And you could, in theory, come up with a complex function that couples sigmas and omegas and so forth. In practice, people tend to separate them, but there's nothing that says it has to be true, right? So we get to pick our prototypical function and we're gonna use kinetic energy. For my rate measure, and I need something positive definite in terms of MRPs, so I think that one had a two here, k, one plus sigma squared, which is the normal sigma squared of this function. So, is this function, is this positive definite for all initial conditions? Trevor? For any omega and for any sigma, it's only zero if you zero, and positive elsewhere. So omega, for that first term it's not. Why would it not be for this one? Well, because... All I know the first term is positive definite because... But is it globally? I mean, is it positive definite for any initial conditions? Yes. Away from zero, right? So if it's zero, it's zero. That's what we need. And, actually, any omega. Great. Same thing here. If sigma's attitude error is zero, then natural log of one is zero. We have what we want. If it's nonzero, this actually is always positive. Is this function radially unbounded? What do you guys think? Yes, in this it is. I have one question, actually. If in the state, we put only the attitude... Yes. If we set it to be zero, for example, or relative to [inaudible] , why do we also need the rate? Because if we say that if we control the attitude is in one position, why do we also need the rates? OK. Let me go to another page to do that. So you're saying is, you know, let me just use this. Natural log one plus sigma squared, right? You take the derivative of this and you get k times omega transpose sigma, I believe. Something like that, remembering correctly. The thing you're controlling is a mechanical second order system. If I don't have omegas up here and I differentiate this, there's no way to apply in a differential form my dynamical system, right? So right now, this is purely just numbers and kinematics. There's nothing specific to the dynamics. Is this a rocket body? Is this a multibody? Is it a fuel, you know, who knows what the dynamics is of the system. So that's where you would need that. If you wanted to control this, we could do it in a two-step loop which I discussed this morning. Or if I treat omega as a control variable, I could just do attitude and then control on the attitude, but that gives me a steering law. So I'm not giving a torque law with Newton meters and getting a steering law that says, "Look, rotate to your left one degree per second." And then, you know, and this is guaranteed to converge asymptotically. And actually in fact, we do build laws like that as well. I am developing here torque-level attitude control. If you had a steering law, the several system, you could write another Lyapunov function just for that, get in a reference and make sure you track it precisely, right? But now you have a two-separated system. Individually, they're stable; coupled, they're only stable if the separation principle holds, that the outer loop functions at a much slower rate. Its bandwidth is much slower than the inner loop. The inner loops always have to be much tighter or run at a faster speed, you know, update cycles. So, different ways you could do that. No, good question. So here, if we have this, so what are the steps now? Good. So we've got this. This is good for any initial conditions. It's radially unbounded. We take the derivative. This part, pretty quickly, is gonna give me this, and this part, I believe, in the end is just gonna be plus k Sigma. So, how to get from this math to here? That's one of the homeworks you do. You know, you kind of plug it all in, the usual matrix math. So now, at this point, this V dot, nothing has been applied that's specific to this dynamical system. So, we can actually plug in our dynamics in this term. And let's do that next. So, you're gonna have omega transposed minus omega tilde, I, omega plus the control torque, plus k sigma. What's the next step in this control development? It's different ways we could go. Daniel? Notify the Vdot and just find the u in terms of everything else. But if you just say you u is equal to -k Sigma, plus omega tilde, I, omega, that will cancel this. Then your V dot is zero. You got a stable response, right? But we know actually it's not gonna be asymptotically stable. What else do we have to do, right? You want this V dot. If it's always zero, we never get rid of energy. That means these will never get better. Ever. Right? So somehow we want to at least get rid of V. We want a V dot that's not just purely zero ideally. And we can do that. This is basically omega transpose something. The trick we keep playing in mechanical systems is I'm gonna say, "Look, let's set it equal to this negative semidefinite function." In mechanical systems, kind of what you were asking earlier, we tend to have a rate measure and a state measure. And when we differentiate, the rates become accelerations, plug in equations of motions. But both terms will have rates that you can factor out and that allows you to always do that trick on a second order dynamical system. But this is good because then we can pick and putting in a fully matrix P, it's symmetric positive definite, gives me lots of knobs to tune. And now we can say, 'well, this bracketed part has to be equal to -P omega'. And if we do that, then basically we add an extra P omega to here, right? And off we go. And we're done. Now we have a control, but this V dot is only negative semidefinite. It's negative definite in terms of omegas. So compared to the earlier control, I didn't know what happens to omega now. Here, at least with this one, I know right away my omegas have to go to zero. That's what this V dot is gonna go to zero. So that's good. I just don't know yet what happens to convergence. That's a new thing we'll cover today. But let's play with some modifications. So here, we compensated for all this stuff. Great. And we have this one in there. Did we have to compensate for this one term here? Do we need this? Kevin, what do you think? Not really, because when we carry out the multiplication, we have omega transposed times omega tilde. Exactly. So, here, kinetic energy is actually a physical kinetic energy, it's not just some energy-like term. And this is literally a non-working term. So these gyroscopics don't- that's the stuff we saw with torque-free motion. They're there, but with no external torque. T was constant. T dot was omega dotted with L. And if you don't have any external torque, Tdot is definitely constant. So, all these gyroscopics have to be nonworking. In more complicated tracking problem, this morning we saw del omega transpose del omega tilde. It's not exactly energy, mechanical energy, but it's the same mathematics. It's a term that cancels out to zero. So, yeah. So you could use in your Lyapunov analysis and say, 'look, this is actually gonna cancel'. And I can write a new control that is simply- I still need to compensate for this. So that gives you your feedback on attitude, and then you have feedback on omega. This will also be globally stabilizing. In fact, you can do the same steps you are about to do for showing this asymptotically stabilizing. So that's really slick. This one is a nonlinear control because it's got a quadratic rate measure. This one is a perfect linear control, but it's globally stabilizing on a nonlinear system. It's really nice and easy to implement. So you can see we can often reuse the same Lyapunov analysis, change some terms, add a term, or find, well, I could compensate. What's the difference between them? Kind of like the multilink system. We had two controls that are both guaranteed to be stable, but the performance can be different. So here you are feeding back on a quadratic measure. For spacecraft, typically, these rates tend to be slow. People declare emergency as if they're tumbling more than three degrees per second. That's not much of a tumble, they come from a ferry's wheel or a playground, you know? So that's a small number squared, it's actually quite small, not a significant part. But what the nice thing is, feeding back on this term, that's where we get those closed loop dynamics we saw this morning, where we had a nice linear form in omegas. If we don't compensate for that, your closed loop dynamics has a quadratic form. And somebody this morning was asking about gain selection. So when we linearize and you have a more nonlinear closed loop dynamics, your linearized performance prediction won't be as largely valid as one that that feedback linearizes more. So there's performance tradeoffs, what you want to look at, you know? Are you dealing with large tip-off velocities? Maybe you don't want to feedback on this because you will saturate quickly. Or maybe it doesn't matter. Maybe you can still prove stability. But anyway, that's some quick ideas on how we can generate this. So... So, good. That kind of wraps up our review of all of this. So we did the more complicated one where we have reference tracking. We talked about global stability and, obviously, we have to switch as well because radial unbounded meant sigma goes to infinity, but sigma infinity means a 360 rotation, so you can never do a revolution past the origin again, and we want aircraft to be able to tumble and tumble and then recover whenever. So with MRP switching, we can break it up into discrete sections that we stabilize. So we still get global stability, and you just fight it as long as it makes sense. And then you just let it finish up the long way around and it will catch it there in the flip side. Excellent. Good.