52 States in 8 Months

Finding a differentially flat output with the method of characteristics

Posted in University stuff by Ulf on March 1, 2009

I’m currently having some problems with a system which does not have a well-defined relative degree. Well, I should say: The outputs which I’d like to use don’t have a well-defined relative degree. To get some practice with these ugly systems, I made up this one today:

sys1
sys2

The state x1 does not have real dynamics, so it seems more appropriate to investigate the state x2. If I define an output y=x2, it will have a relative degree r=1 unless I’m in the origin, x2=0, where the relative degree of y is suddenly r=2. Anyway, outside of the origin we can easily set up an I/O-linearizing controller with the control law

iolin1

which will exponentially stabilize an arbitrary set point x2s if we choose v as

iolin21

with a positive constant k. The zero dynamics will also be exponentially stable.

Now, what to do near the origin x2=0? If we are sufficiently close, then we can neglect the nonlinearity x2·u and use a PD-controller to stabilize x2:

linctl1

I did a numerical simulation, it works. Now we have an globally asymptotically stable control law which we can use for every set point as long as x2≠0, and we have a simple linear controller that will stabilize x2=0. Ok, job done. But wait, having two control laws and switching back and forth is ugly. Therefore I tried to find the masterpiece: an output which will have a constant relative degree of r=2 for all states.

So here we go. The system is input affine and can therefore be states as

inputaffine

with the vector fields

vecfields1

The Lie bracket adfg can easily be calculated as:

lie

Now we can write down the PDEs which a differentially flat output λ(x1,x2) has to fulfill:

pde1
and
pde2

In a different nomenclature the first PDE can be written as x·ux + ut = 0. This is a nonlinear first-order PDE. A few memories from the “Systeme mit verteilten Parametern” lecture came up. Maybe Flocke’s lecture was more useful than we thought? (My “bro” Tommy was the only one who liked this, I think.)
Anyway, when I solved this PDE, I looked here. That was really a nice introduction. So, the PDE is

pde_ext1
with the coefficient functions
pde_param

Now I define a new time variable s and calculate how a variable u will change with s:

cha1

Nothing special so far, right? Let’s suppose I can fulfill three ODEs:

threeode

I these three ODEs are fulfilled, then the expression du/ds will not just describe how any function u changes with respect to my new time s, but how the solution u of my PDE changes along s. Great! Here are the solutions for the three ODEs above:

threeode_sol

If I (more or less arbitrarily) choose t0=0 and u(0,x0)=x0 and eliminate x0 and s, then I finally have my flat output (in fact, I chose those initial conditions such that the second PDE is fulfilled, but this will be obvious to you if you do the calculations yourself):

pdesol

Yipee!!! :-) :-) :-)

Unfortunately though, I cannot give an explicit expression for x1. And the parametrization of the system input u once again has a singularity. This time however, the singularity is at x1=1 and not x2=0, but still it is a bit disappointing. Anyway, here is the parametrization:

end1
end2
end3

Thank you for reading! I hope you liked it and I hope I did not do too many mistakes (I haven’t checked anything of this and I’m completely tired).

Advertisements

5 Responses

Subscribe to comments with RSS.

  1. Tommy said, on March 8, 2009 at 7:58 am

    “in fact, I chose those initial conditions such that the second PDE is fulfilled”

    … did you?

  2. Tommy said, on March 8, 2009 at 8:31 am

    I knew it would be useful some day! :D
    [… although in this case of not having any boundary/initial conditions you could as well “guess” v=u/x^n with dv/dx=0 and n being almost any number, yielding dv/dt+nv=0 and thus u=x^n e^(-nt), however i’m afraid no finite n will help to fulfill the second PDE :( …]

    all the best!
    the bro

  3. Ulf said, on March 8, 2009 at 5:01 pm

    Tommy, are you worried about not fulfilling the second PDE at x1=1?
    Well, I ended up not really caring about that singularity ;-)

    In some books they do in fact call the second PDE a “non-triviality condition”. And my solution is non-trivial. I hope :-).

  4. Tommy said, on March 11, 2009 at 5:36 pm

    yeah, right! that’s actually what i was wondering about. … but since i don’t really know where those conditions come from (in fact, i don’t really know a lot about finding differentially flat outputs at all – hope you’ll explain it to me some day :) …), i would not give a penny for the usefulness of my own comments! :D … anyway, just want to say that i read it and i even made up my mind about it and i really like your educational* blogs!

    *things we once learned and should have kept in mind
    things a cybernetics guy/girl might find useful some day
    things that yield a tiny glimpse on ulf’s academic work

  5. Ulf said, on March 11, 2009 at 5:43 pm

    Cooooooool!!!!

    I only have to write a few words about PDEs and Tommy calls my diploma thesis an “academic work” :-D :-) :-]

    Sure, I can tell you about differential flatness one day.
    Basically it’s some theory around “exact linearization”. I’m sure you’ve had something like that in your control classes.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: