Hi Arnault,
first of all, it is always welcome to hear new points of view :P
In my opinion, if I am not wrong, the numerical stability is not a high
issue. Maybe in a Kalman Filter, computing the covariance matrix may be an
issue if it is not a positive-definite matrix.
On the other hand, do your algorithms leads to a better computational
efficiency? As far as I know, all the paparazzi embedded SW is written in C,
and I personally have some C++ code as well.
In real-time systems, this is really an issue.
About the rounding-errors, I guess the low-cost sensors that we use
introduce higher errors (noises), making the rounding-errors negligible in
the algorithms, even in 32bits floating point.
Cheers,
Héctor.
On Wed, Oct 26, 2011 at 5:25 PM, Arnault Ioualalen <
address@hidden> wrote:
Hi,
I contact this mailing list on the advise that CheBuzz gives me on IRC, so
that I could propose to the core developpers to test the numerical accuracy
of their algorithms.
Let me explain that a little :
First I'm a phd student in Perpignan (France), my work concerns the
numerical accuracy of floating-point calculations in embedded software.
Mainly, my work is on the behalf of Airbus, and adresses the issue of
rounding error propagation.
My point is, given
- a code written in some synchronous langage used in the industry (like
LUSTRE),
- and the range of the inputs (of the sensors for example)
I can :
- calculate a safe over-approximation of the numerical error induce by the
program
- propose automatically an equivalent program, this program is
mathematically equivalent but has a better numerical accuracy (I won't enter
into detail here because it's quite technical, but we already developped a
tool call Sardana wich allow us to do it).
Ok, I hope I haven't lost you !
Remember just that each time you use floating-point arithmetics each value
has a rounding error, and these rounding errors accumulate themselves during
the whole process. Some very classical examples exist, where the
rounding-errors became so big that the calculate value has nothing in common
with the expected value.
I saw on your website (http://paparazzi.enac.fr/wiki**) your "theory of
operation" and the graphical representations of your control loops.
From what I could understand it's very much look like my kind of test data,
so I'm gessing that (with some help) I could try to optimize, separatly,
each control loop you have (or, perhaps, even together in one big piece of
code).
My main problem is that I don't really understand what kind of value each
variables could take, and your simulink-like representation may not be
really complete.
Also, I would need some range of the inputs, or even better, a trace of a
real execution of the code with the evolution of the values at each
iteration.
If some core developpers are interested in my proposal, I can answer them
over this email : address@hidden Or, if he lives in
France (and more specifically in Toulouse) I can go there personnaly and
meet him in person, that's not an issue (if it's not in Toulouse I could
still arrange a trip to where he is, it's just little more time-consumming
to organize).
To finish, I'll just want to say that your project could constitute an
important example for my phd thesis and I'm really interested in working
with your team over this topic of numerical accuracy.
Thanks for your answers (I hope there will be some), and sorry for this
long email but it's never easy to make such a proposal in a few lines.
Arnault Ioualalen
Phd Student
DALI team - UPVD - LIRMM
ps: sorry for the possible orthographic errors, but it has been already a
long day.
______________________________**_________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/**mailman/listinfo/paparazzi-**devel<https://lists.nongnu.org/mailman/listinfo/paparazzi-devel>
--
Héctor
--
Ce message a été vérifié par MailScanner
pour des virus ou des polluriels et rien de
suspect n'a été trouvé.
CRI UPVD http://www.univ-perp.fr