//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
#include <simgear/structure/exception.hxx>
#include <simgear/misc/sg_path.hxx>
delta_u_n = Kp * ( (ep_n - ep_n_1)
+ ((Ts/Ti) * e_n)
+ ((Td/Ts) * (edf_n - 2*edf_n_1 + edf_n_2)) );
- } else if ( Ti <= 0.0 ) {
- delta_u_n = Kp * ( (ep_n - ep_n_1)
- + ((Td/Ts) * (edf_n - 2*edf_n_1 + edf_n_2)) );
}
if ( debug ) {
// Integrator anti-windup logic:
if ( delta_u_n > (u_max - u_n_1) ) {
- delta_u_n = 0;
+ delta_u_n = u_max - u_n_1;
if ( debug ) cout << " max saturation " << endl;
} else if ( delta_u_n < (u_min - u_n_1) ) {
- delta_u_n = 0;
+ delta_u_n = u_min - u_n_1;
if ( debug ) cout << " min saturation " << endl;
}
if ( ! build() ) {
SG_LOG( SG_ALL, SG_ALERT,
- "Detected an internal inconsistancy in the autopilot");
+ "Detected an internal inconsistency in the autopilot");
SG_LOG( SG_ALL, SG_ALERT,
" configuration. See earlier errors for" );
SG_LOG( SG_ALL, SG_ALERT,