]> git.mxchange.org Git - flightgear.git/commitdiff
Autopilot: initialize the derivative filter
authorTorsten Dreyer <Torsten@t3r.de>
Mon, 31 Dec 2012 20:27:13 +0000 (21:27 +0100)
committerTorsten Dreyer <Torsten@t3r.de>
Mon, 31 Dec 2012 20:27:13 +0000 (21:27 +0100)
Dont let the derivative filter emit a spike on init or reset if the input
value is non-zero. This is a potential fix for #973.

src/Autopilot/digitalfilter.cxx

index 26377e13141b289635ca871e4103579e0b5c66fb..adff0480ad74d9d8dfb59ae9ae641909955bbfa6 100644 (file)
@@ -75,6 +75,7 @@ class DerivativeFilterImplementation : public GainFilterImplementation {
 public:
   DerivativeFilterImplementation();
   double compute(  double dt, double input );
+  virtual void initialize( double output );
 };
 
 class ExponentialFilterImplementation : public GainFilterImplementation {
@@ -180,6 +181,12 @@ DerivativeFilterImplementation::DerivativeFilterImplementation() :
 {
 }
 
+void DerivativeFilterImplementation::initialize( double output )
+{
+  _input_1 = output;
+}
+
+
 bool DerivativeFilterImplementation::configure( const std::string & nodeName, SGPropertyNode_ptr configNode )
 {
   if( GainFilterImplementation::configure( nodeName, configNode ) )