0:06

Now, in our modeling so far, we've said, okay, these are equations of motion,

user control torque.

L is the known external torque.

The f gravity gradients, atmospheric drag, any other disturbances,

some tank is outgassing and causing a disturbance.

You could include that but you never know it perfectly.

So how sensitive is this to unmodeled errors?

So the Delta L here, treat that as the unknown, that's our ignorance.

L is the part we know, and then Delta L could be the part we don't know.

And if you think Apollo 13, it was leaking gas, right?

And it was twirling everywhere.

A lot of uncertainty exactly what the torques are when acting on that system.

So we want to investigate this.

If you plug the very same control into the development we did earlier,

at some point we had an I omega dot and you plug in the equations of motion, and

you use that exact same control that we developed, that feedback compensates on L.

If you didn't have this, you would end up with the same v dot again, right?

That's the same development.

But with this delta l, there's one extra term we don't get rid of.

We don't feed back compensate perfectly for the l, but

only the part that we know, then the part we don't know that's still there.

So you end up with this extra term, that's a delta omega transpose delta l.

And this is negative semi-definite.

This term itself is negative definite in terms of delta omega, but

this term could have either sign depending on the uncertainty of delta l.

I mean, what's the signs of delta l?

What's the signs of delta omega?

This could be positive, it could be negative.

This is an example of an indefinite component.

So once you add up negative semi definite plus an indefinite there's no guarantee

this is even negative in this case.

So we can't from here on just use classic

theory to argue stability of this kind of a problem.

2:34

This term is only linearly dependent on delta omega.

So a common assumption you find in control papers they assume.

They will say assume bounded unknown external disturbance.

There is a bound that you can come up with.

I don't know if it's one or two but I know it's less than five newton meters, right?

So if you can come up with a bound, you can imagine if this gets large enough,

if the rates pump up large enough at some point this is going to compensate again.

And this stabilizing effect is going to be stronger than this potentially

destabilizing.

And we don't even know if it's destabilizing.

But there's no way that delta omegas could go off to infinity in this one here.

Because if delta omegas get too large,

this v dots always going to bring you back down again.

But it's not a very strong argument, it's a pretty loose argument, in fact.

But that's a little bit of insight that you can get out of this equation.

So we have to look at the close loop dynamics a little bit more carefully.

3:25

Earlier we had these, if you have feedback compensated for

l perfectly, you would have all these equal to 0.

Now, with this delta l this is extra term we don't compensate for it.

So it's still left there and I put on the right hand side, that is a delta l.

And what I'm doing next is I'm making a reasonably common assumption that I'm

saying this delta l is actually constant over a short enough period of time.

Which is kind of, if you have out gassing or other disturbances,

drag effect on a nominal attitude.

That's a reasonably good assumption.

And that allows us to differentiate this equation once.

So delta omega dot becomes double dots, and so forth.

And instead of sigma dot, I'm plugging in the differential kinematic equation.

Now, I have something in terms of all delta omegas.

And this is going to be approximately zero, because I'm going to hold my

unmodeled torque reasonably constant for that time period.

So this looks actually like mx double dot + cx dot + kx but

our stiffness here varies with the states.

So it's a time varying thing.

So it's not quite the classics premass damper system but

something with a time varying stiffness.

4:35

To argue stability of the system, you need to be able to argue that this matrix b

is actually positive definite, over the departures that we're looking at.

And to be positive definite, we always check, omega transpose b omega.

Is that bigger than 0?

If you plug in the v definition that we would have.

Which was one minus sigma squared identity plus two tilde plus two the outer product

and put this together.

And then rearrange because you can carry out just products just, you know identity

times omega is indentity times omega transpose, this gives you this.

Omega transpose Why is this term going to zero?

Omega transpose, sigma tilde, omega.

5:32

So why does omega transposed sigma tilde omega.

Why does that go to zero?

>> The sigma tilde times omega is equivalent to sigma cross omega, so

we are perpendicular to omega.

>> Yep exactly, with this being a cross break operator you

could just put in a negative sign and make this as omega transposed omega tilde sigma

with a minus sign or recognize that this is a cross product.

Whatever the answer is has to be orthogonal to omega and to sigma.

6:04

>> And that's good enough.

And that's actually makes it go to zero again.

Yeah, exactly.

So with that little trick, we'll like to still see the matrices.

You're all set.

So that's how it vanishes.

So now if you look at this, if sigma squared is not one and

sigma squared being equal to one is 180 degree attitude, right?

You're just completely upside down.

Anything else, you're back to something less than that.

This part is definitely pause indefinite in terms of omegas, so that's good.

And this term here is positive or 0.

It's positive semi definite terms of omega.

Maybe omegas and sigmas are orthogonal in which case that product could go to zero.

But this part would guarantee to be positive so the whole thing is positive.

Positive zero is still positive.

There's that one point, 180 degrees where this doesn't work.

Where you now have something where it's a zero times this.

And then you left a semi definiteness.

So if we exclude this, and really with this external torque,

what we'd use as announce is more like the steady state error at the end.

I'm trying to predict what that error is going to be.

7:17

Why is that nice?

Because then if you have this dynamical system, the second order,

eventually creation of delta omega, this arguments you're making control theory,

this has to have a steady state solution.

Which means, these things will double dots and dots go to rest and

you're only left with this part that you have to deal with.

And, So

since B was nearly orthogonal, it's definitely full ranked.

Remember the inverse of B was the transpose divided by 1

plus sigma squared, squared.

Something like that, nearly orthogonal.

It's definitely a full rank matrix.

So the steady state part is actually going to be zero.

So with these arguments,

what we can make is even with external disturbance, I don't know yet

what happens to the attitude error but my rate errors will actually come to rest.

But a key assumption is also that your disturbance is constant.

A body fixed constant.

But you're not doing a time-varying disturbance,

otherwise this would not hold.

And you'd have, you'd really have to go to numerics, the analysis.

I haven't seen a nice analysis on that one.

So for the constant-disturbance torque, this steady-state condition holds.

If we go back to the original equation, if the steady-state

condition delta omega is zero, then it's derivative is also going to be zero.

All this drops out,

and then the steady-state attitude error, you can actually predict as being

this unmodeled torque which we said is constant unmodeled divided by that gain.

9:14

>> That's not quite You can, but

you're changing the dynamical system to do that, right?

because this would be like arguing a spring mass damper system.

We said, hey, this thing,

if we tilt it upside down, now it's going to deflect one meter, great.

You're saying, hey, if I want to be ten centimeters closer, forget that spring.

I'm putting in a new spring that's stiffer, now I'm here, right?

So that's true from a dynamical point of view.

From a control perspective, changing the stiffness of the spring is not

one of the variables necessarily that you'd have.

This is a controlled gain variable, true, but so you can play with that.

If you have your controlled solution, I think that's what you have to look at it.

You pick the gain of 1, very popular gain.

And you will end up here regardless of how close you started out from, right.

So what do we call that kind of a stability

where we always- >> Lagrange.

>> Lagrange, boundedness, exactly.

So with unmodeled external torque, right now,

we just have bounded Lagrange stability.

But you can predict with this gain and you can have a bound on

hey it might be between point one and one, so let's just pick one as the worst case.

I can give you an upper bound on how big that error is.

Now as a control designer you can do exactly what you were saying,

you would pick a key going you know what, I need enough,

they call this disturbance rejection with this proportional feedback, right?

It makes it a little bit more robust and

had the impact of the ignorance won't be as bad on your attitude error.

So you can make K big.

11:02

What else is an issue?

>> You have saturation >> Right?

You might hit saturation limits so that might be an issue.

So astronauts might really complain and fire you as a control designer and

you may be breaking the spacecraft.

The wings are dropping off because you're actuating so hard.

I mean, that can happen.

Space structures are very flimsy.

You know, there's great thrusters.

You better check the structural limits with the solar panels and when they snap.

When you are doing like we are thinking orbit insertions right now.

Big clusters firing.

It's a challenge right?

So you want to make sure things don't break.

But what else is happening?

When we get feedback on sigma.

Right? The control was minus K times sigma.

So if I have the big K, I'm being very aggressive.

But what's the other problem if you look at feedback and measurements?

How good is that measurement going to be?

11:45

All right?

Especially noise, if you have noise in the measurements times a huge K, you've

added a huge issue because you're deriving it from not the real attitude error but

the sensed erroneous attitude error times a big gain and that might excite all

kinds of stuff and then you might also with the performance kind of what your

talking about to is your going to potentially excite unmodeled modes.

You thinking it's rigid but once accelerated that quickly this stuff is

going to bend and slosh and [INAUDIBLE] with polar bear emission to you know so

those things are considerations as well.

So we can't practically typically just make this infinitely large but

you do kind of pick at the ends this is the performance you get and

maybe your going to bump it up a little bit if you have disturbances.

In a linear system, how do we make it robust unmodel torques,

if you do your classic linear control?

12:39

>> Integrator. >> Integrator, right,

if you have integral control, it helps make it much more robust,

and I'll be showing you how we can do integral control with all the stability,

with complete non-linear stability guaranties.

It gets complicated compared to this but it builds on the same mathematics, so

we're kind of adding layer and layer.

12:58

So if we do an example here, that's my unmodeled torque in the body frame.

It's a fixed number.

Just pretend some valve didn't close properly,

you've got some outgassing out of that valve, that's a particular problem.

Now you've got this disturbance.

And we want to do a maneuver just bringing it to rest, regulation problem,

as we're predicting our status rate error should go to zero.

So my rate error should go to zero.

And my status state attitude error should be this divided by,

I think I have a gain of one.

Yep.

So it's easy to do the math.

This should be my attitude error in MRPs.

If you run it through the simulation then, you will see my rate errors,

I'm tumbling at the beginning getting things going with the control.

But it stabilizes and my write errors do go to 0 as predicted, so that's nice.

And the attitude errors of MRPs, they start out with here.

They try to drive into 0.

But if I have 0 added to my control basically turns off.

I have 0 rate, 0 attitude and

the unmodeled disturbance keeps moving you away from where you want to be.

Once you move far enough away, the feedback says no, move right and

the disturbance says no move left, and they find their balance.

That's the new equilibrium, and that's what's happening here.

It gets close to it, but you get precisely the predicted offsets.

If you're not happy with that performance,

you would have to increase K if you're keeping the same control structure.

Make it ten times bigger, this would shrink ten times.

But that's kind of nice, you can see now we've got nice analytic guarantees,

with at least constant disturbances.

And if you can bound them, you can get a feel for just how much of an offset you

can have, even if they're time-varying, and go in there.

>> This is assuming that you're constantly in control of feedback, right?

It's not- >> Yes, continuous control.

Yep, not impulsive implementations, or on and off.

If you turn it off again you would start to drift,

this would then, without the control this would accelerate infinitely.

Fact, it would go off to infinity.

In fact, if you look at asteroid stuff that's the york effect you have

a torque that's always there, and no control in an asteroid.

>> Fall apart.

>> Fall apart, exactly.

They'd become binary systems, and tertiary systems, and fun things happen.