paparazzi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] Suggestions: Auto-tuning of gains and upload via


From: Maik Höpfel
Subject: Re: [Paparazzi-devel] Suggestions: Auto-tuning of gains and upload via modems
Date: Sat, 3 Jul 2010 18:48:35 +0200

Hello all,

the idea of automatically tuning the gains in-flight fascinates me.
I'd be willing to write some code and have a couple test flights do
implement a mode that sets gains via ZN. I can write C sufficiently
and have a year of experience with Paparazzi, but have never touched
the code so far and would love it if somebody could just give me short
helpful pointers on how I could go about that, if there's helpful
example code, in what code files you'd put the code... I feel like
implementing it as an additional flight plan maneuver would be the
thing to do, but might be mistaken.

Thank you,
Maik


2010/6/21 Maik Höpfel <address@hidden>:
> Hello,
>
> thank you very much for your clarifications!
>
> Auto-tuning: Okay, as far as I understand it, there's disagreement
> about what method to use to get the gains. Once you have the algorithm
> down to detect oscillations and all that, I feel like implementing
> different methods to get the right gains shouldn't be much effort.
> What method do the other Paparazzi users use? I'm afraid I don't know
> nothin' about control theory (well, I guess I've understood the
> concept of a PID controller by now).
>
> Uploading: How long are we talking about here? I know with our
> airplane it the flashing process takes long, because we have to attach
> a USB cable deep inside the airframe ;) And no, having an outside USB
> connector is not an option for us.
> I don't really know how to go about finding the size of a typical
> upload, sorry. But with 57600 bauds, I can't imagine things can be
> that bad. Thoughts?
>
> Regards,
> Maik
>
>
>
> 2010/6/21 Christophe De Wagter <address@hidden>:
>> Uploading used to be over the serial link in the past (2005). Do not
>> underestimate the time this took to upload new code.
>>
>> On Sun, Jun 20, 2010 at 3:39 AM, Eric Parsonage
>> <address@hidden> wrote:
>>>
>>> Hi Florin, Maik,
>>>
>>> I am sure that ZN would definitely work, but its just how well it works! I
>>> am pretty sure ZN is the only option if you cant derive the Transfer
>>> Function of the system analytically, so for most people who use paparazzi
>>> and haven't learnt that much about classical or modern control, or for
>>> airframes that may have weird Dynamics (like a flying wing), it is
>>> definitely the way to go. ZN based tuning also results in a controller that
>>> is very good at rejecting disturbance, which for level flight is great, I
>>> just worry about the step response of that sort of controller in regards to
>>> setpoint changes, like rolling into or out of a heavy bank, I fear that it
>>> may be very oscillatory. It does of course depend on your aircraft, and
>>> whether or not you are constantly changing its attitude.
>>>
>>> However, Maik does make a very interesting point. the community could
>>> probably develop a little script, or even a simple spreadsheet, that assumed
>>> you had a straight winged monoplane platform, and took inputs about its
>>> geometry, moments of inertia etc. then approximated the  transfer function
>>> of the system based on that, with that it could then analytically calculate,
>>> using at least a couple of PID tuning methods, the appropriate gains for
>>> your system which you could then program in. This could be done without you
>>> even having to leave the ground! of course, you would need to do a little
>>> bit of manual tuning once you got up in the air, but at least you could have
>>> some trust in your controller to begin with. Of course, someone would need
>>> to derive the state-space model for a generic aircraft in terms of variable
>>> regarding its dimensions. Any of you control gurus wish to comment on this
>>> suggestion (I know you are reading)?
>>>
>>> Eric
>>>
>>>
>>> On 19 June 2010 18:15, Florin Mingireanu <address@hidden>
>>> wrote:
>>>>
>>>> Hi Eric,
>>>>
>>>> I've used succesfully ZN on flying wings.
>>>> I haven't used it on other planes.
>>>>
>>>> Florin
>>>>
>>>> On Sat, Jun 19, 2010 at 11:34 AM, Eric Parsonage
>>>> <address@hidden> wrote:
>>>>>
>>>>> Hi Maik, Florin,
>>>>>
>>>>> I would suggest that ZN tuning would not be that effective, This is due
>>>>> to the fact that the ZN algorithms were empirically derived from work with
>>>>> process systems which all exhibited a particular response (time delay, big
>>>>> phase lag, integrator racking up error to a step input). Perhaps a more
>>>>> sensitivity driven algorithm, like kappa-tau, or pole placement, would be
>>>>> more effective since aircraft tend to act a lot more like a 
>>>>> servomotor-style
>>>>> system than a phase-laggy process one.
>>>>>
>>>>> Eric
>>>>>
>>>>> On 19 June 2010 17:54, Florin Mingireanu <address@hidden>
>>>>> wrote:
>>>>>>
>>>>>> Hi Maik,
>>>>>>
>>>>>> The method I tried to describe is called Ziegler-Nichols.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Sat, Jun 19, 2010 at 11:20 AM, Florin Mingireanu
>>>>>> <address@hidden> wrote:
>>>>>>>
>>>>>>> Hi Maik,
>>>>>>>
>>>>>>> As far as I know, tuning P and I-gains is like:
>>>>>>>
>>>>>>> increase P value until you detect instability (oscillation as you
>>>>>>> said) and then decrease P to half and start to increase I until 
>>>>>>> sufficient
>>>>>>> stability is obtained.
>>>>>>>
>>>>>>> If, additionally, you have a D term (d-gain) then you apply
>>>>>>> recursively this algorithm for subsequent I and D.
>>>>>>>
>>>>>>> So tuning gains for a new aircraft is more like a cascaded algorithm.
>>>>>>>
>>>>>>> Florin
>>>>>>>
>>>>>>>
>>>>>>> On Sat, Jun 19, 2010 at 10:12 AM, Maik Höpfel <address@hidden>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hello dear community,
>>>>>>>>
>>>>>>>> I recently added two features I would like to see to the Software
>>>>>>>> Wishlist in the Wiki, but did not get any feedback. So I'd like to
>>>>>>>> present them on the list as well:
>>>>>>>>
>>>>>>>> 1) Auto-tuning of gains: as far as I see it, the rules for setting
>>>>>>>> the
>>>>>>>> P-gains on a new aircraft are pretty easy: "turn it up till it
>>>>>>>> oscillates, turn down a little". Now given sufficient height and a
>>>>>>>> bit
>>>>>>>> of trust in the airframe, this should easily be doable by an
>>>>>>>> algorithm
>>>>>>>> instead of the crew on the ground, shouldn't it? Oscillation can be
>>>>>>>> detected via the IR sensors/IMU... I imagine it like a special flight
>>>>>>>> plan block that then sets the correct gains.
>>>>>>>>
>>>>>>>> 2) Flashing via modems: Couldn't the boot loader wait for a special
>>>>>>>> sequence from the modems before starting up the Paparazzi code? And
>>>>>>>> then the GCS just sends that special message and the firmware that is
>>>>>>>> to be flashed? Should be error-checked, of course. But it's possible,
>>>>>>>> right?
>>>>>>>>
>>>>>>>> I'm really looking forward to your thoughts! I think both things
>>>>>>>> would
>>>>>>>> make Paparazzi even easier to use for beginners.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Maik
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Paparazzi-devel mailing list
>>>>>>>> address@hidden
>>>>>>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Paparazzi-devel mailing list
>>>>>> address@hidden
>>>>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Paparazzi-devel mailing list
>>>>> address@hidden
>>>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Florin Mingireanu
>>>> Romanian Space Agency
>>>> Str. Mendeleev 21-25, et. 5, sector 1, 010362 Bucuresti, ROMANIA
>>>> office tel. +40-21-316.87.22; +40-21-316.87.23;
>>>> cell: +40-757-768971 (primary phone)
>>>> fax +40-21-312.88.04
>>>> address@hidden
>>>> http://www.rosa.ro
>>>>
>>>> _______________________________________________
>>>> Paparazzi-devel mailing list
>>>> address@hidden
>>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>>
>>>
>>>
>>> _______________________________________________
>>> Paparazzi-devel mailing list
>>> address@hidden
>>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>>
>>
>>
>> _______________________________________________
>> Paparazzi-devel mailing list
>> address@hidden
>> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>>
>>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]