1,16 → 1,13 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
// Peter Muehlenbrock ("Salvo") |
// Definitionen fuer Modul GPS |
// Stand 12.10.007 |
// Stand 3.8.2008 |
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
extern signed int GPS_Nick; |
extern signed int GPS_Roll; |
extern signed int GPS_dist_2trgt; //vorzeichenlose Distanz zum Ziel |
extern signed int GPS_hdng_rel_2trgt; //Winkel zum Ziel bezogen auf Nordachse des Kopters |
extern signed int GPS_hdng_rel_2trgt; //Winkel zum Ziel bezogen auf Nordachse des Kopters |
extern void GPS_Neutral(void); |
extern void Get_Ublox_Msg(uint8_t rx) ; |
//extern short int Get_GPS_data(void); |
extern short int Get_GPS_data(void); |
extern short int Get_Rel_Position(void); |
extern void GPS_Save_Home(void); |
extern short int GPS_CRTL(short int cmd); |
75,23 → 72,8 |
extern GPS_REL_POSITION_t gps_rel_act_position; |
extern GPS_REL_POSITION_t gps_rel_hold_position; |
extern short int gps_state,gps_sub_state; |
extern signed int GPS_hdng_abs_2trgt; |
extern signed int GPS_hdng_rel_2trgt; |
extern signed int GPS_dist_2trgt; |
extern signed int gps_reg_x,gps_reg_y; |
extern signed int GPS_dist_2trgt; |
extern unsigned int gps_alive_cnt; |
extern unsigned int int_ovfl_cnt; // Zaehler fuer Overflows des Integrators |
extern signed int int_east,int_north; //Integrierer |
//extern signed int diff_east_f,diff_north_f; // Differenzierer, gefiltert |
signed long dist; |
|
|
//nur provisorisch fuer Debugausgaben |
extern signed hdng_2home,dist_2home; //Richtung und Entfernung zur home Position |
extern long int dist_flown; |
|
|
#define GPS_USR_PAR_FKT 8 //Faktor durch den die Userparameter geteilt werden |
|
|
119,9 → 101,9 |
#define GPS_STST_ERR 2 // Fehler |
|
// GPS Lageregler |
#define GPS_NICKROLL_MAX 30 // Maximaler Einfluss des GPS Lagereglers auf Nick und Roll |
#define GPS_DIST_MAX 200 // Maximal zulaessige Distanz bevor Regelung gestoppt wird (in 10cm) |
#define GPS_STICK_HOLDOFF 10 // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert |
#define GPS_NICKROLL_MAX 25 // Maximaler Einfluss des GPS Lagereglers auf Nick und Roll |
#define GPS_DIST_MAX 400 // Maximal zulaessige Distanz bevor Regelung gestoppt wird (in 10cm) |
#define GPS_STICK_HOLDOFF 20 // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert |
#define GPS_V 8 // Teilerfaktor Regelabweichung zu Ausgabewert |
|
// Differenzierer Kennwerte fuer von Distanz abhaengige Verstaerkung, abhaengig vom Modus. |
131,8 → 113,8 |
#define GPS_DIFF_FAST_MAX_D 50 //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm im Fast mode |
// Konstanten fuer Verstaerkung fuer Differenzierer in Abhaengigkeit vom Diff Wert |
// um eine exponentielle Verstaerkung zu erreichen |
#define DIFF_Y_MAX 3 // Verstaerkung bei Eingangswert = DIFF_X_MAX |
#define DIFF_X_MAX 10 // bei diesem Eingangswert ist die Verstaerkung = DIFF_Y_MAX |
#define DIFF_Y_MAX 1 // Verstaerkung bei Eingangswert = DIFF_X_MAX |
#define DIFF_X_MAX 32 // bei diesem Eingangswert ist die Verstaerkung = DIFF_Y_MAX |
|
// P-Regler Verstaerkung |
#define GPS_PROP_NRML_V 2 //maximale Verstaerkung * 2 |