Subversion Repositories FlightCtrl

Rev

Rev 616 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 616 Rev 621
Line 1... Line 1...
1
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
// Peter Muehlenbrock ("Salvo")
2
// Peter Muehlenbrock ("Salvo")
3
// Definitionen fuer Modul GPS
3
// Definitionen fuer Modul GPS
4
// Stand 12.10.007
4
// Stand 3.8.2008
5
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6
extern signed int GPS_Nick;
6
extern signed int       GPS_Nick;
7
extern signed int GPS_Roll;
7
extern signed int       GPS_Roll;
8
extern signed int GPS_dist_2trgt; //vorzeichenlose Distanz zum Ziel 
-
 
9
extern signed int GPS_hdng_rel_2trgt; //Winkel zum Ziel bezogen auf Nordachse des Kopters
-
 
10
extern signed int GPS_hdng_rel_2trgt; //Winkel zum Ziel bezogen auf Nordachse des Kopters
-
 
11
extern void GPS_Neutral(void);
8
extern void             GPS_Neutral(void);
12
extern void Get_Ublox_Msg(uint8_t  rx) ;
9
extern void             Get_Ublox_Msg(uint8_t  rx) ;
13
//extern short int Get_GPS_data(void);
10
extern short int        Get_GPS_data(void);
14
extern short int Get_Rel_Position(void);
11
extern short int        Get_Rel_Position(void);
15
extern void GPS_Save_Home(void);
12
extern void             GPS_Save_Home(void);
16
extern short int GPS_CRTL(short int cmd);
13
extern short int        GPS_CRTL(short int cmd);
Line 17... Line 14...
17
 
14
 
18
typedef struct {
15
typedef struct {
19
        unsigned long   utm_itow;       // time of week
16
        unsigned long   utm_itow;       // time of week
20
        long                    utm_east;       // UTM Ost in cm  
17
        long                    utm_east;       // UTM Ost in cm  
Line 73... Line 70...
73
extern                          GPS_ABS_POSITION_t gps_act_position;
70
extern                          GPS_ABS_POSITION_t gps_act_position;
74
extern                          GPS_ABS_POSITION_t gps_home_position;
71
extern                          GPS_ABS_POSITION_t gps_home_position;
75
extern                          GPS_REL_POSITION_t gps_rel_act_position;
72
extern                          GPS_REL_POSITION_t gps_rel_act_position;
76
extern                          GPS_REL_POSITION_t gps_rel_hold_position;
73
extern                          GPS_REL_POSITION_t gps_rel_hold_position;
77
extern short int        gps_state,gps_sub_state;
74
extern short int        gps_state,gps_sub_state;
78
extern signed int       GPS_hdng_abs_2trgt;
-
 
79
extern signed int       GPS_hdng_rel_2trgt;
-
 
80
extern signed int       GPS_dist_2trgt;
-
 
81
extern signed int       gps_reg_x,gps_reg_y;
-
 
82
extern signed int       GPS_dist_2trgt;
-
 
83
extern unsigned int gps_alive_cnt;
75
extern unsigned int gps_alive_cnt;
84
extern unsigned int     int_ovfl_cnt; // Zaehler fuer Overflows des Integrators
-
 
85
extern signed int       int_east,int_north;     //Integrierer 
-
 
86
//extern signed int     diff_east_f,diff_north_f; // Differenzierer,  gefiltert
-
 
87
signed long             dist;
-
 
88
 
-
 
89
 
-
 
90
//nur provisorisch fuer Debugausgaben
-
 
91
extern signed           hdng_2home,dist_2home; //Richtung und Entfernung zur home Position 
-
 
92
extern long int         dist_flown;
-
 
93
 
-
 
Line 94... Line 76...
94
 
76
 
Line 95... Line 77...
95
#define GPS_USR_PAR_FKT 8       //Faktor durch den die Userparameter geteilt werden
77
#define GPS_USR_PAR_FKT 8       //Faktor durch den die Userparameter geteilt werden
Line 117... Line 99...
117
#define GPS_STST_OK                             0    // Kommando erfolgreich und abgeschlossen
99
#define GPS_STST_OK                             0    // Kommando erfolgreich und abgeschlossen
118
#define GPS_STST_PEND                   1    // Kommando noch nicht komplett durchgefuehrt
100
#define GPS_STST_PEND                   1    // Kommando noch nicht komplett durchgefuehrt
119
#define GPS_STST_ERR                    2    // Fehler
101
#define GPS_STST_ERR                    2    // Fehler
Line 120... Line 102...
120
 
102
 
121
// GPS Lageregler
103
// GPS Lageregler
122
#define GPS_NICKROLL_MAX                30  // Maximaler Einfluss des GPS Lagereglers auf Nick und Roll
104
#define GPS_NICKROLL_MAX                25  // Maximaler Einfluss des GPS Lagereglers auf Nick und Roll
123
#define GPS_DIST_MAX                    200 // Maximal zulaessige Distanz bevor Regelung gestoppt wird (in 10cm)
105
#define GPS_DIST_MAX                    400 // Maximal zulaessige Distanz bevor Regelung gestoppt wird (in 10cm)
124
#define GPS_STICK_HOLDOFF               10      // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert
106
#define GPS_STICK_HOLDOFF               20      // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert
Line 125... Line 107...
125
#define GPS_V                                   8       // Teilerfaktor Regelabweichung zu  Ausgabewert
107
#define GPS_V                                   8       // Teilerfaktor Regelabweichung zu  Ausgabewert
126
 
108
 
127
// Differenzierer Kennwerte fuer von Distanz abhaengige Verstaerkung, abhaengig vom Modus. 
109
// Differenzierer Kennwerte fuer von Distanz abhaengige Verstaerkung, abhaengig vom Modus. 
128
#define GPS_DIFF_NRML_MAX_V     20      //maximale Verstaerkung * 10
110
#define GPS_DIFF_NRML_MAX_V     20      //maximale Verstaerkung * 10
129
#define GPS_DIFF_NRML_MAX_D     30      //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm
111
#define GPS_DIFF_NRML_MAX_D     30      //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm
130
#define GPS_DIFF_FAST_MAX_V     15      //maximale Verstaerkung * 10 im Fast mode
112
#define GPS_DIFF_FAST_MAX_V     15      //maximale Verstaerkung * 10 im Fast mode
131
#define GPS_DIFF_FAST_MAX_D     50      //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm im Fast mode
113
#define GPS_DIFF_FAST_MAX_D     50      //Entfernung bei der maximale Verstaerkung erreicht wird in 10cm im Fast mode
132
// Konstanten fuer Verstaerkung fuer Differenzierer in Abhaengigkeit vom Diff Wert
114
// Konstanten fuer Verstaerkung fuer Differenzierer in Abhaengigkeit vom Diff Wert
133
// um eine exponentielle Verstaerkung zu erreichen
115
// um eine exponentielle Verstaerkung zu erreichen
Line 134... Line 116...
134
#define DIFF_Y_MAX                              3       // Verstaerkung bei Eingangswert = DIFF_X_MAX 
116
#define DIFF_Y_MAX                              1       // Verstaerkung bei Eingangswert = DIFF_X_MAX 
135
#define DIFF_X_MAX                              10      // bei diesem Eingangswert ist die Verstaerkung = DIFF_Y_MAX 
117
#define DIFF_X_MAX                              32      // bei diesem Eingangswert ist die Verstaerkung = DIFF_Y_MAX 
136
 
118