/branches/salvo_gps/Basis_v0067g/trunk/GPS.c |
---|
426,19 → 426,12 |
if (d3 > GPS_G2T_DIST_MAX_STOP) // Schneller Rueckflug, noch weit weg vom Ziel |
{ |
if ((d1 < GPS_G2T_FAST_TOL/2) && (d2 < GPS_G2T_FAST_TOL/2)) //voll Stoff weiter wenn Lage gut innerhalb der Toleranz |
if ((d1 < GPS_G2T_FAST_TOL) && (d2 < GPS_G2T_FAST_TOL)) //nur weiter wenn Lage innerhalb der Toleranz |
{ |
if (gps_g2t_act_v < GPS_G2T_V_MAX-3) gps_g2t_act_v += 4; //Geschwindigkeit erhoehen |
dist_flown +=gps_g2t_act_v; // Vorgabe der Strecke anhand der Geschwindigkeit |
gps_sub_state = GPS_HOME_FAST_IN_TOL; |
} |
else if ((d1 < GPS_G2T_FAST_TOL) && (d2 < GPS_G2T_FAST_TOL)) //nur weiter wenn Lage innerhalb der Toleranz |
{ |
if (gps_g2t_act_v > GPS_G2T_V_MAX/2) gps_g2t_act_v -= 1; //Geschwindigkeit auf Haaelte runter oder rauffahren |
else if (gps_g2t_act_v < GPS_G2T_V_MAX/2) gps_g2t_act_v += 1; //Geschwindigkeit erhoehen |
dist_flown +=gps_g2t_act_v; // Vorgabe der Strecke anhand der Geschwindigkeit |
gps_sub_state = GPS_HOME_FAST_IN_TOL; |
} |
else //Den Lageregler in Ruhe arbeiten lassen weil ausserhalb der Toleranz |
{ |
if (gps_g2t_act_v > 1) gps_g2t_act_v--; // Geschwindigkeit reduzieren |
552,8 → 545,8 |
amplfy_speed_north = DIFF_Y_F_MAX; |
amplfy_speed_east *= (Parameter_UserParam3/GPS_USR_PAR_FKT); |
amplfy_speed_north *= (Parameter_UserParam3/GPS_USR_PAR_FKT); |
speed_east = (speed_east * (long)amplfy_speed_east) /100; |
speed_north = (speed_north * (long)amplfy_speed_north)/100; |
speed_east = (speed_east * (long)amplfy_speed_east) /50; |
speed_north = (speed_north * (long)amplfy_speed_north)/50; |
// D Werte begrenzen |
#define D_F_MAX (GPS_NICKROLL_MAX * GPS_V*7)/10 // auf 70 Prozent des Maximalen Nick/Rollwert begrenzen |
if (speed_east > D_F_MAX) speed_east = D_F_MAX; |
/branches/salvo_gps/Basis_v0067g/trunk/flightctrl.aws |
---|
1,0 → 0,0 |
<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA644"/><Files><File00000 Name="G:\Mikrokopter\Flight_Crtl\v0067g\timer0.c" Position="268 103 1184 712" LineCol="164 0"/><File00001 Name="G:\Mikrokopter\Flight_Crtl\v0067g\analog.h" Position="290 132 1220 740" LineCol="0 0"/><File00002 Name="G:\Mikrokopter\Flight_Crtl\v0067g\makefile" Position="312 161 1242 769" LineCol="6 0"/><File00003 Name="G:\Mikrokopter\Flight_Crtl\v0067g\main.c" Position="334 190 1264 798" LineCol="130 0"/></Files></AVRWorkspace> |
<AVRWorkspace><IOSettings><CurrentRegisters><WATCHDOG><register register="WDTCSR" group="WATCHDOG" display="1" locked="0"/></WATCHDOG></CurrentRegisters></IOSettings><part name="ATMEGA644"/><Files><File00000 Name="G:\Mikrokopter\Flight_Crtl\v0067g\timer0.c" Position="266 101 1182 710" LineCol="164 0" State="Maximized"/><File00001 Name="G:\Mikrokopter\Flight_Crtl\v0067g\analog.h" Position="288 130 1218 738" LineCol="0 0" State="Maximized"/><File00002 Name="G:\Mikrokopter\Flight_Crtl\v0067g\makefile" Position="310 159 1240 767" LineCol="6 0" State="Maximized"/><File00003 Name="G:\Mikrokopter\Flight_Crtl\v0067g\main.c" Position="262 71 1402 978" LineCol="251 0" State="Maximized"/></Files></AVRWorkspace> |
/branches/salvo_gps/Basis_v0067g/trunk/gps.h |
---|
104,7 → 104,7 |
#define GPS_NICKROLL_MAX 30 // 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 16 // Wenn der Nick oder Roll Stickwerte groesser sind, wird GPS_HOLD deaktiviert |
#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 |
118,7 → 118,7 |
// P-Regler Verstaerkung |
#define GPS_PROP_NRML_V 2 //maximale Verstaerkung im Normalen Holdmode |
#define GPS_PROP_FAST_V 4 //maximale Verstaerkung im Fast mode |
#define GPS_PROP_FAST_V 3 //maximale Verstaerkung im Fast mode |
// GPS G2T /Go to Target Regler |
#define GPS_G2T_DIST_MAX_STOP 100 // Ab dieser Entfernung vom Zielpunkt soll die Geschwindigkeit runtergeregelt werden( in 10 cm) |
125,7 → 125,7 |
#define GPS_G2T_DIST_HOLD 50 // Ab dieser Entfernung vom Zielpunkt wird mit Minimaler Geschwindigkeit eingeregelt |
#define GPS_G2T_FAST_TOL 200 // Bei grosser Entfernung vom Ziel: Der Sollwert wird nur geaendert wenn die aktuelle Position nicht mehr als diesem Wert vom Sollwert abweicht |
#define GPS_G2T_NRML_TOL 100 // Bei kleiner Entfernung vom Ziel: Der Sollwert wird nur geaendert wenn die aktuelle Position nicht mehr als diesem Wert vom Sollwert abweicht |
#define GPS_G2T_V_MAX 16 // Maximale Geschwindigkeit (in 10cm/0.25 Sekunden) mit der der Sollpunkt geaendert wird. |
#define GPS_G2T_V_RAMP_DWN 10 // Geschwindigkeit (in 10cm/0.25ekunden) in der Naehe der Home Position um abzubremsen |
#define GPS_G2T_V_MAX 15 // Maximale Geschwindigkeit (in 10cm/0.25 Sekunden) mit der der Sollpunkt geaendert wird. |
#define GPS_G2T_V_RAMP_DWN 8 // Geschwindigkeit (in 10cm/0.25ekunden) in der Naehe der Home Position um abzubremsen |
#define GPS_G2T_V_MIN 3 // Minimale (in 10cm/0.25 Sekunden) ganz nahe an Homeposition. |
/branches/salvo_gps/Basis_v0067g/trunk/makefile |
---|
3,8 → 3,8 |
MCU = atmega644 |
F_CPU = 20000000 |
#------------------------------------------------------------------- |
HAUPT_VERSION = 1 |
NEBEN_VERSION = 0 |
HAUPT_VERSION = 0 |
NEBEN_VERSION = 08 |
VERSION_INDEX = 0 |
VERSION_KOMPATIBEL = 7 # PC-Kompatibilität |