On 02/25/2007 06:36 PM, Alex Perry wrote:

>> There is no reason to have a long lag in the static system.
> 
> Interesting point, yes, you're right.  On the modern instruments, anyway. 
> Maybe the old lag was
> actually due to manufacturing tolerances and the like.

There are no relevant tolerances in the /static subsystem/
strictly speaking (as opposed to the altimeter).  The static
subsystem is basically just a bunch of tubing.  Its lag time
is set by the smallness of the hole(s) in the static port(s),
and by the volume of tubes and instrument cases.  This doesn't
amount to much in typical aircraft.

What the pilot perceives as altimeter lag in real aircraft
comes from friction within the altimeter case.  The FAA
regulates how much vertical-speed-dependence an airworthy
altimeter can have ... but the limits are higher than you
might have hoped.  This could substantially cut into your
margins during a rapid step-down to MDA on a localizer
approach.

>> Let's just get rid of the long static-system lag.
> 
> Maybe the long lag should be a non-default option, used in old aircraft.


Well, I wrote the code to make the static subsystem accept
non-default values.   See below, and/or the relevant hunk in
   http://www.av8n.com/fly/fgfs/atmo.diff

So the discussion comes down to what the new default should be.
I provisionally left it at 1 for compatibility, but 0.1 would
be more realistic.  If we changed it to 0.1 I doubt anybody
would complain.

===================================================








diff --git a/src/Systems/static.cxx b/src/Systems/static.cxx
index b3c916d..3fdbc20 100644
--- a/src/Systems/static.cxx
+++ b/src/Systems/static.cxx
@@ -11,7 +11,10 @@
  StaticSystem::StaticSystem ( SGPropertyNode *node )
      :
      _name(node->getStringValue("name", "static")),
-    _num(node->getIntValue("number", 0))
+    _num(node->getIntValue("number", 0)),
+// Unrealistic default, but compatible with previous version of this
+// module, which had no tau at all:
+    _tau(node->getDoubleValue("tau", 1))
  {
  }

@@ -45,11 +48,11 @@ void
  StaticSystem::update (double dt)
  {
      if (_serviceable_node->getBoolValue()) {
-
+        double trat = _tau ? dt/_tau : 100;
          double target = _pressure_in_node->getDoubleValue();
          double current = _pressure_out_node->getDoubleValue();
          // double delta = target - current;
-        _pressure_out_node->setDoubleValue(fgGetLowPass(current, target, dt));
+        _pressure_out_node->setDoubleValue(fgGetLowPass(current, target, 
trat));
      }
  }


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to