Revert "Autopilot: Optionally write (internal) state to property tree"
This reverts commit 91ae41f9ef
.
We do not need this as outputs already are written to the property
tree and most intermediate values can easily be calculated
manually.
This commit is contained in:
parent
91ae41f9ef
commit
470a551176
6 changed files with 6 additions and 58 deletions
|
@ -132,9 +132,6 @@ protected:
|
||||||
for( simgear::PropertyList::iterator it = _output_list.begin();
|
for( simgear::PropertyList::iterator it = _output_list.begin();
|
||||||
it != _output_list.end(); ++it)
|
it != _output_list.end(); ++it)
|
||||||
(*it)->setDoubleValue( value );
|
(*it)->setDoubleValue( value );
|
||||||
|
|
||||||
if( _debug_node )
|
|
||||||
_debug_node->setDoubleValue("Un", value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -70,11 +70,6 @@ bool Component::configure( const std::string & nodeName, SGPropertyNode_ptr conf
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( nodeName == "debug-node" ) {
|
|
||||||
_debug_node = fgGetNode( configNode->getStringValue(), true );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( nodeName == "enable" ) {
|
if ( nodeName == "enable" ) {
|
||||||
SGPropertyNode_ptr prop;
|
SGPropertyNode_ptr prop;
|
||||||
|
|
||||||
|
|
|
@ -77,11 +77,6 @@ protected:
|
||||||
*/
|
*/
|
||||||
bool _debug;
|
bool _debug;
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief property node to write debug values in child nodes on every
|
|
||||||
* iteration
|
|
||||||
*/
|
|
||||||
SGPropertyNode_ptr _debug_node;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief a (historic) flag signalling the derived class that it should compute it's internal
|
* @brief a (historic) flag signalling the derived class that it should compute it's internal
|
||||||
|
|
|
@ -431,7 +431,4 @@ void DigitalFilter::update( bool firstTime, double dt)
|
||||||
cout << "input:" << input
|
cout << "input:" << input
|
||||||
<< "\toutput:" << output << endl;
|
<< "\toutput:" << output << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( _debug_node )
|
|
||||||
_debug_node->setDoubleValue("input", input);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -137,16 +137,6 @@ void PIDController::update( bool firstTime, double dt )
|
||||||
double e_n = r_n - y_n;
|
double e_n = r_n - y_n;
|
||||||
if ( _debug ) cout << " e_n = " << e_n;
|
if ( _debug ) cout << " e_n = " << e_n;
|
||||||
|
|
||||||
if( _debug_node )
|
|
||||||
{
|
|
||||||
_debug_node->setDoubleValue("Ts", Ts);
|
|
||||||
_debug_node->setDoubleValue("y_n", y_n);
|
|
||||||
_debug_node->setDoubleValue("r_n", r_n);
|
|
||||||
_debug_node->setDoubleValue("ep_n", ep_n);
|
|
||||||
_debug_node->setDoubleValue("ep_n_1", ep_n_1);
|
|
||||||
_debug_node->setDoubleValue("e_n", e_n);
|
|
||||||
}
|
|
||||||
|
|
||||||
double td = Td.get_value();
|
double td = Td.get_value();
|
||||||
if ( td > 0.0 ) { // do we need to calcluate derivative error?
|
if ( td > 0.0 ) { // do we need to calcluate derivative error?
|
||||||
|
|
||||||
|
@ -162,13 +152,6 @@ void PIDController::update( bool firstTime, double dt )
|
||||||
edf_n = edf_n_1 / (Ts/Tf + 1)
|
edf_n = edf_n_1 / (Ts/Tf + 1)
|
||||||
+ ed_n * (Ts/Tf) / (Ts/Tf + 1);
|
+ ed_n * (Ts/Tf) / (Ts/Tf + 1);
|
||||||
if ( _debug ) cout << " edf_n = " << edf_n;
|
if ( _debug ) cout << " edf_n = " << edf_n;
|
||||||
|
|
||||||
if( _debug_node )
|
|
||||||
{
|
|
||||||
_debug_node->setDoubleValue("ed_n", ed_n);
|
|
||||||
_debug_node->setDoubleValue("Tf", Tf);
|
|
||||||
_debug_node->setDoubleValue("edf_n", edf_n);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
edf_n_2 = edf_n_1 = edf_n = 0.0;
|
edf_n_2 = edf_n_1 = edf_n = 0.0;
|
||||||
}
|
}
|
||||||
|
@ -181,20 +164,13 @@ void PIDController::update( bool firstTime, double dt )
|
||||||
+ ((Ts/ti) * e_n)
|
+ ((Ts/ti) * e_n)
|
||||||
+ ((td/Ts) * (edf_n - 2*edf_n_1 + edf_n_2)) );
|
+ ((td/Ts) * (edf_n - 2*edf_n_1 + edf_n_2)) );
|
||||||
|
|
||||||
double Pn = Kp.get_value() * (ep_n - ep_n_1),
|
if ( _debug ) {
|
||||||
In = Kp.get_value() * ((Ts/ti) * e_n),
|
|
||||||
Dn = Kp.get_value() * ((td/Ts) * (edf_n - 2*edf_n_1 + edf_n_2));
|
|
||||||
if ( _debug )
|
|
||||||
{
|
|
||||||
cout << " delta_u_n = " << delta_u_n << endl;
|
cout << " delta_u_n = " << delta_u_n << endl;
|
||||||
cout << "P:" << Pn << " I:" << In << " D:" << Dn << endl;
|
cout << "P:" << Kp.get_value() * (ep_n - ep_n_1)
|
||||||
}
|
<< " I:" << Kp.get_value() * ((Ts/ti) * e_n)
|
||||||
if( _debug_node )
|
<< " D:" << Kp.get_value() * ((td/Ts) * (edf_n - 2*edf_n_1 + edf_n_2))
|
||||||
{
|
<< endl;
|
||||||
_debug_node->setDoubleValue("Pn", Pn);
|
}
|
||||||
_debug_node->setDoubleValue("In", In);
|
|
||||||
_debug_node->setDoubleValue("Dn", Dn);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Integrator anti-windup logic:
|
// Integrator anti-windup logic:
|
||||||
|
@ -210,9 +186,6 @@ void PIDController::update( bool firstTime, double dt )
|
||||||
u_n = u_n_1 + delta_u_n;
|
u_n = u_n_1 + delta_u_n;
|
||||||
if ( _debug ) cout << " output = " << u_n << endl;
|
if ( _debug ) cout << " output = " << u_n << endl;
|
||||||
|
|
||||||
if( _debug_node )
|
|
||||||
_debug_node->setDoubleValue("dU", delta_u_n);
|
|
||||||
|
|
||||||
// Updates indexed values;
|
// Updates indexed values;
|
||||||
u_n_1 = u_n;
|
u_n_1 = u_n;
|
||||||
ep_n_1 = ep_n;
|
ep_n_1 = ep_n;
|
||||||
|
|
|
@ -88,13 +88,4 @@ void PISimpleController::update( bool firstTime, double dt )
|
||||||
|
|
||||||
set_output_value( clamped_output );
|
set_output_value( clamped_output );
|
||||||
if ( _debug ) cout << "output = " << clamped_output << endl;
|
if ( _debug ) cout << "output = " << clamped_output << endl;
|
||||||
|
|
||||||
if( _debug_node )
|
|
||||||
{
|
|
||||||
_debug_node->setDoubleValue("y_n", y_n);
|
|
||||||
_debug_node->setDoubleValue("r_n", r_n);
|
|
||||||
_debug_node->setDoubleValue("e_n", error);
|
|
||||||
_debug_node->setDoubleValue("ep_n", prop_comp);
|
|
||||||
_debug_node->setDoubleValue("In", _int_sum);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue