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.

Andy



_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@flightgear.org
http://mail.flightgear.org/mailman/listinfo/flightgear-devel
2f585eeea02e2c79d7b1d8c4963bae2d

Reply via email to