Top-posting because I don't want to snip any of this message and 
going to the bottom would need a lot of scrolling.

Many thanks for looking into both of my wish-list items Roy.

I'll try the pass-through filter patch over the next few days and 
report back on it.  As you say, it will be simpler and less 
expensive than using a full controller for a servo but in 
conjunction with the <enabled> tag it also opens up possibilities 
for cheaply re-routing data.  As an added bonus, it can also be 
used for simulating failures too.

Re changing the controller gain via a property tree node, I agree 
that the second format is more consistent but it would break 
existing autopilots.  Would it be difficult to implement an 
alternate tag name for a property tree node controlled gain value 
and keep the existing <Kp> tag unchanged so that _either_ <Kp> or 
<new_tag> could be used?  That way the consistent format could be 
used without breaking existing stuff.

Incidentally, I hit this gain problem today - I got a pitch-hold 
controller working that handles take off rotation reasonably well, 
at around 140kts, without too much wobbling about but it starts 
oscillating once I've got up to around 500kts:(  If I back off the 
gain to stop the oscillation at high speeds it doesn't have enough 
control to prevent over-rotation at take off.

Heh - while tuning the pitch-hold controller for rotation I was 
using runway 17 at KEDW - I set the target speed for 135-140 kts, 
the target pitch I wanted (in this case 9 deg), engaged pitch-hold, 
released the brakes and then engaged speed-with-throttle.  The 
length of 17 at KEDW gives you enough time for a few tweaks & 
reloads before you run out of runway.  I used to be able to use the 
sea for this sort of stuff but it's too wet now ;)

LeeE

On Tuesday 05 February 2008 19:20, Roy Vegard Ovesen wrote:
> On Tuesday 05 February 2008, LeeE wrote:
> > Thanks for the updates to xmlauto.cxx.
> >
> > As well as fixing the reload bug in cvs, the enabled tag for
> > the filters is very useful.
> >
> > Would it be possible to add a null filter type i.e. a filter
> > that acts as a simple pass-though?
>
> Try the attached diff. This adds a new filter type named pass. It
> only needs an input and an output. Something like this:
>
>    <filter>
>     <name>pass-through-filter</name>
>     <debug>false</debug>
>     <type>pass</type>
>    
> <input>/instrumentation/airspeed-indicator/indicated-speed-kt</in
>put> <output>/autopilot/KAP140/settings/airspeed-kt</output>
> </filter>
>
> > The reason I think this would be useful is that it would
> > provide a very low-cost method of re-routing control inputs
> > between different sub-systems and controllers - the sort of
> > stuff you really need to do in Fly-By-Wire/Flight Control
> > Systems.
> >
> > Also on my wish-list for this area would be the ability to
> > change some of the pid controller parameters 'in-flight'
> > without having to re-load the A/P e.g. reducing elevator
> > control gain as airspeed increases.  Because the
> > resolution/frequency of the controllers is effectively limited
> > by the frame-rate there can be practical difficulties in tuning
> > a controller to work optimally over wide ranges such as you'd
> > get with most of the fast jets - typically ~120-150kts during
> > approach and landing up to 700kts (AFAIK YASim doesn't do
> > supersonic so I don't try to seriously tune for the supersonic
> > regime).
>
> Thats an interesting thought. We could do soething like this:
>
> <config>
>   <Kp
> prop="/autopilot/KAP140/settings/controller01-gain">10.0</Kp> ...
>
> for the parameters that are to be exposed on the property tree.
> Any parameter without the prop attribute gets a constant value as
> before. Nasal can be used to change the value of the exposed
> parameters.
>
> Another method could be:
>
> <config>
>   <Kp>
>     <prop>/autopilot/KAP140/settings/controller01-gain</prop>
>     <value>10.0</value>
>   </Kp>
> ...
>
> which is consistent with how it's done for the input to the PID
> controllers, but this will break all autopilots.
>
> > Just for info, while re-working the YF-23 I've been playing
> > with using closed feedback loop pid controllers as flight
> > surface and engine control drivers/servos with some good
> > results:)
> >
> > The config below is what I'm using as an elevator input
> > driver/servo (there's also an identical controller for
> > elevator-trim input, aileron input, rudder input and throttle &
> > reheat control inputs) and so far it's working pretty well
> > here.
> >
> >   <pid-controller>
> >     <name>Ruddervator Surface Driver</name>
> >     <debug>false</debug>
> >     <enable>
> >       <prop>/autopilot/FCS/locks/elevator</prop>
> >       <value>true</value>
> >     </enable>
> >     <input>
> >       <prop>/autopilot/FCS/controls/flight/elevator-norm</prop>
> >     </input>
> >     <reference>
> >       <prop>/autopilot/FCS/internal/target-elevator-norm</prop>
> >     </reference>
> >      <output>
> >       <prop>/autopilot/FCS/controls/flight/elevator-norm</prop>
> >     </output>
> >     <config>
> >       <Ts>0.05</Ts>
> >       <Kp>0.45</Kp>
> >       <beta>0.00001</beta>
> >       <alpha>0.1</alpha>
> >       <gamma>0.0</gamma>
> >       <Ti>0.05</Ti>
> >       <Td>0.0</Td>
> >       <u_min>-1.0</u_min>
> >       <u_max>1.0</u_max>
> >     </config>
> >   </pid-controller>
>
> Of course now you can do that with a filter, which should be
> simpler an less expensive.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to