On Sunday 02 December 2007 15:18, Roy Vegard Ovesen wrote:
> On Sunday 02 December 2007, Roy Vegard Ovesen wrote:
> > I think moving a control surface, like for example the rudder, from
> > full left deflection to rull right deflection in an instant is
> > unrealistic. To make this more realistic I think we should put in a
> > low pass filter somewhere in the chain from crontrol device to FDM.
> > My first thought would be to do the filtering just befir handing
> > the value over to the FDM.
>
> Turns out that JSBSim and YASim already has what I'm looking for.
>
> My question then is reduced to: why doesn't more FDM modellers use
> these features of JSBSim and YASim to create cotrol surfaces that
> seem to have mass
> -- 
> Roy Vegard Ovesen

There are several aspects to this problem and I've not found a single 
solution to all of them.  However, it's usually possible to get there 
using a combination of techniques.

I agree that instant deflections are un-realistic and using the FDM 
features to set the speed at which control surfaces respond is the 
first step.  To be sure, on some aircraft the deflection rates can be 
very high e.g. recent fbw fighter aircraft like the F-16 etc, but even 
with these the response is not instant so a suitable rate should be set 
in the FDM config.

However, setting the deflection rate isn't sufficient in all cases 
because the the forces required to make a deflection can vary with 
speed and if we assume constant force control inputs then the effective 
maximum deflection rate will vary according to speed.

Setting too low a deflection rate can also upset A/P PID controllers 
that work ok with higher deflection rates -  I experienced this 
recently while working on the B-52F.  I wanted to reduce the elevator 
deflection rate to simulate the very heavy stick and pedal forces that 
act as a natural pitch-damper but I found that setting it too low upset 
one of the controllers that worked ok with higher rates but I couldn't 
manage to re-tune it satisfactorily to get the same response with the 
lower rate.  I think this problem is more to do with the rates, and 
therefore resolution, at which the controllers run in FG, typically 
less than 100Hz rather than in kHz ranges.

Another aspect of this problem, as you mentioned earlier, is when an A/P 
controller is first switched in.  At this point, if the controller sees 
no natural convergence between the current state and the required state 
it'll command a maximum output.  For example, you're in level flight 
below the target altitude-hold setting and you switch on 
altitude-hold - the controller first sees zero climb-rate and therefore 
zero convergence and so swings to max output.  Once the aircraft has 
responded to this initial max output the controller will then see 
convergence and back-off on it's output to achieve convergence in 
accordance with it's settings.  It's possible to reduce the 
initial 'kick' from the controller but only by setting very low gain 
rates <Kp> and long periods <Ti> but these may not be compatible with 
the required performance i.e. it can take too long to start a climb and 
stabilise at the required rate.

One way help with this is to use a noise-spike filter to limit the max 
rate of change on the output from the controller, the filter being 
tuned to the controller.

This problem can also manifest itself when switching between different 
controller cascades, with different gains and periods, that operate on 
the same control surface.  To get around this I've started using a 
common control surface driver that is used by all higher-level 
controllers/controller hierarchies.  The lowest level controller is a 
common pitch-hold driver for the elevator - it takes a target pitch and 
tries to achieve it by deflecting the elevator.  For vertical 
climb-rate hold you add a controller that outputs a target pitch to 
achieve a target rate of climb and for altitude hold you add a 
controller that outputs a target climb-rate.  The end result is a two 
stage cascade for vertical climb-rate hold and a three stage cascade 
for altitude hold but because there is no switching between controllers 
at the control surface level, which has constantly been engaged, there 
is less likelyhood of sudden max output commands.  Seems to work ok in 
practice too - I've used this method on several of the more recent 
aircraft I've done.

Unfortunately though, this method can't be used with aircraft where 
elevons are used for both pitch and roll (e.g. SU-37) and the best bet 
there is to use more filters to limit the rates.

There are a couple of things relating to this area that would be very 
helpful.

One would be to be able to change some of the filter parameters while 
they are running or switch filters on and off.  With this feature it 
would be possible to use different filter rates depending on 
circumstances and/or conditions but as it is, once a filter is running 
it is always running and with invariable settings.

The other thing that would be useful is the flight-control 'black-box' 
that Curt mentioned, where control inputs could be intercepted and 
modified before being passed on to the control surfaces.  This would be 
highly desirable for fbw aircraft - for the SU-37 I had to duplicate 
most of the control inputs in the YASim config so that I could 
optionally intercept them and modify them using nasal.

LeeE

-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to