Andy Ross

Vivian Meazza wrote:

> > It would be possible to simulate the Boost Control Cutout by
> > adjusting the wastegate on the fly to a very high number effectively
> > disabling it (I take that it is possible to do that). It's a hack, I
> > don't like it, but ...
> 
> The whole thing is a hack anyway; if we *really* wanted a high quality
> Merlin simulation we'd type a bunch of tables in (trivially easy, as
> far as software goes).  Since we don't have the numbers or the
> patience to do that, we need to be prepared to handle per-aircraft
> features with per-aircraft configuration.  Again, we just can't have a
> separate input axis for every possible control lever on every modeled
> engine.
> 
> And regardless: If the cutout lever acts on the throttle (an existing
> input) based on the manifold pressure (an existing output), then a
> proper simulation ought to be possible using only the throttle
> control, no?  That is, define an extra input for the THROTTLE control
> in the aircraft definition:
> 
>     <piston-engine ...>
>      ....
>      <control-input axis="/controls/engines/engine[0]/throttle"
>                     control="THROTTLE"/>
>      <control-input axis="/misc/wherever/merlin-boost-control"
>                     control="THROTTLE"/>
>     </piston-engine>
> 
> And then write a little Nasal that sets this property to seek to the
> target MAP:
> 
>    BOOST_CONTROL_AUTHORITY = 0.2;  # How much can it move the throttle?
>    BOOST_CONTRL_RANGE = 5;         # When does it start to engage? (inHg)
>    BOOST_CONTROL_LIMIT = whatever; # Maximum MP (inHg)
>    updateBoostControl = func {
>        var mp = getprop("/engines/engine[0]/mp-inhg");
>        var val = (mp - BOOST_CONTROL_LIMIT) / BOOST_CONROL_RANGE;
>        if(val > 0) {
>            val = 0; # Can't increase throttle
>        } elsif(val < -BOOST_CONTROL_AUTHORITY) {
>            val = -BOOST_CONTROL_AUTHORITY
>        }
>        setprop("/misc/wherever/merlin-boost-control", val);
>        settimer(updateBoostControl, 0.1);
>    }
> 
> This has the nice advantage of actually simulating the underlying
> hardware, so you get proper fuel consumption figures, etc...  And it
> doesn't require changing a line of the YASim implementation to do it.
> 
> I'm just really wary of adding a new control to the C++ code with an
> implementation that doesn't even quite match what the gadget does in
> real life.  See if the Nasal mechanism fits your needs.
> 

I like it very much indeed. Will it work in practice? Testing and tuning
will take some time as I don't have any exact data. Probably into next week.


With a little extension, it should cater for the Boost Control Cutout as
well. I'll probably convert it to psi gauge, since that's how we do it over
here.

It fits well with the rest of the Merlin engine stuff already written in
Nasal and embedded in the Hurricane and Spitfire models. There is a
downside, however, in that it may not be obvious to other aircraft designers
who want to simulate a Merlin. Naah ... Forget it - it can join the negative
g effect, the Coffman starter, the low speed cutout et al.

Very nice.

Thanks

Vivian



_______________________________________________
Flightgear-devel mailing list
[email protected]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d

Reply via email to