On Fri, Feb 26, 2010 at 02:26:01PM -0800, I wrote:
> Quoting Doug Ausmus <daus...@gmail.com>:
> >Have you calculated the sampling/control intervals yet? If so, what are the
> >fastest ones or most critical ones that must absolutely be deterministic?
> No, but we have them bounded. There is no need to run the control
> loop faster than 1000Hz (which is a 25-50Hz *control* bandwidth) as
> we proved when considering actuator force would destroy the fins,
> yet I think I can easily make the case that it must be faster than
> 10Hz (which is a 0.25-0.50Hz *control* bandwidth) due to the fast
> roll axis dynamics.
> So, between 10 and 1000 loops per second. If I had to pick today,
> I'd say 400Hz.
If you don't get too close to 1000 loops per second, you shouldn't have
any problem running that on non-real-time Linux. 2.5ms response time
should prove easy. Even 1ms wouldn't push it too much.
Just run the control loop as a real-time thread with high priority.
On the other hand, if you need to actually send data to the actuators
that fast, and get data from the sensors that fast, we need to do some
careful thinking about USB.
> In that time, we need to be able to perform several 12x12 matrix
> multiplies, a few martix-vector multiplies, matrix add and subtract
> operations, and one or two 12x12 inversions (this is pretty typical
> of an optimal control scheme).
Or, in other words, a bit of straight-line code whose execution time we
could roughly round to 0 on modern processors. ;)
- Josh Triplett
psas-avionics mailing list