Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 620 → Rev 621

/branches/salvo_gps/Basis_v0067g/trunk/gps.h
1,19 → 1,16
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 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_Rel_Position(void);
extern void GPS_Save_Home(void);
extern short int GPS_CRTL(short int cmd);
extern signed int GPS_Nick;
extern signed int GPS_Roll;
extern void GPS_Neutral(void);
extern void Get_Ublox_Msg(uint8_t rx) ;
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);
 
typedef struct {
unsigned long utm_itow; // time of week
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