Subversion Repositories FlightCtrl

Rev

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

Rev 670 Rev 676
Line 424... Line 424...
424
                                        d2      = abs (gps_rel_hold_position.utm_north - gps_rel_act_position.utm_north );
424
                                        d2      = abs (gps_rel_hold_position.utm_north - gps_rel_act_position.utm_north );
425
                                        d3      = (dist_2home - dist_flown); // Restdistanz zum Ziel    
425
                                        d3      = (dist_2home - dist_flown); // Restdistanz zum Ziel    
Line 426... Line 426...
426
       
426
       
427
                                        if (d3 > GPS_G2T_DIST_MAX_STOP) // Schneller Rueckflug, noch weit weg vom Ziel
427
                                        if (d3 > GPS_G2T_DIST_MAX_STOP) // Schneller Rueckflug, noch weit weg vom Ziel
428
                                        {
428
                                        {
429
                                                if ((d1 < GPS_G2T_FAST_TOL)  && (d2 < GPS_G2T_FAST_TOL)) //nur weiter wenn Lage innerhalb der Toleranz
429
                                                if ((d1 < GPS_G2T_FAST_TOL/2)  && (d2 < GPS_G2T_FAST_TOL/2)) //voll Stoff weiter wenn Lage gut innerhalb der Toleranz
430
                                                {
430
                                                {
431
                                                        if (gps_g2t_act_v < GPS_G2T_V_MAX-3) gps_g2t_act_v += 4; //Geschwindigkeit erhoehen
431
                                                        if (gps_g2t_act_v < GPS_G2T_V_MAX-3) gps_g2t_act_v += 4; //Geschwindigkeit erhoehen
432
                                                        dist_flown              +=gps_g2t_act_v; // Vorgabe der Strecke anhand der Geschwindigkeit
432
                                                        dist_flown              +=gps_g2t_act_v; // Vorgabe der Strecke anhand der Geschwindigkeit
433
                                                        gps_sub_state   = GPS_HOME_FAST_IN_TOL;
433
                                                        gps_sub_state   = GPS_HOME_FAST_IN_TOL;
-
 
434
                                                }
-
 
435
                                                else if ((d1 < GPS_G2T_FAST_TOL)  && (d2 < GPS_G2T_FAST_TOL)) //nur weiter wenn Lage innerhalb der Toleranz
-
 
436
                                                {
-
 
437
                                                        if (gps_g2t_act_v > GPS_G2T_V_MAX/2) gps_g2t_act_v -= 1; //Geschwindigkeit auf Haaelte runter oder rauffahren
-
 
438
                                                        else if (gps_g2t_act_v < GPS_G2T_V_MAX/2) gps_g2t_act_v += 1; //Geschwindigkeit erhoehen
-
 
439
                                                        dist_flown              +=gps_g2t_act_v; // Vorgabe der Strecke anhand der Geschwindigkeit
-
 
440
                                                        gps_sub_state   = GPS_HOME_FAST_IN_TOL;
434
                                                }
441
                                                }
435
                                                else    //Den Lageregler in Ruhe arbeiten lassen weil ausserhalb der Toleranz
442
                                                else    //Den Lageregler in Ruhe arbeiten lassen weil ausserhalb der Toleranz
436
                                                {
443
                                                {
437
                                                        if (gps_g2t_act_v > 1) gps_g2t_act_v--; // Geschwindigkeit reduzieren
444
                                                        if (gps_g2t_act_v > 1) gps_g2t_act_v--; // Geschwindigkeit reduzieren
438
//                                                      dist_flown++;                           //Auch ausserhalb der Toleranz langsam erhoehen
445
//                                                      dist_flown++;                           //Auch ausserhalb der Toleranz langsam erhoehen
Line 543... Line 550...
543
                                {
550
                                {
544
                                        amplfy_speed_east  = DIFF_Y_F_MAX;
551
                                        amplfy_speed_east  = DIFF_Y_F_MAX;
545
                                        amplfy_speed_north = DIFF_Y_F_MAX;
552
                                        amplfy_speed_north = DIFF_Y_F_MAX;
546
                                        amplfy_speed_east  *= (Parameter_UserParam3/GPS_USR_PAR_FKT);
553
                                        amplfy_speed_east  *= (Parameter_UserParam3/GPS_USR_PAR_FKT);
547
                                        amplfy_speed_north *= (Parameter_UserParam3/GPS_USR_PAR_FKT);
554
                                        amplfy_speed_north *= (Parameter_UserParam3/GPS_USR_PAR_FKT);
548
                                        speed_east  = (speed_east   * (long)amplfy_speed_east) /50;
555
                                        speed_east  = (speed_east   * (long)amplfy_speed_east) /100;
549
                                        speed_north = (speed_north  * (long)amplfy_speed_north)/50;
556
                                        speed_north = (speed_north  * (long)amplfy_speed_north)/100;
550
                                        // D Werte begrenzen 
557
                                        // D Werte begrenzen 
551
                                        #define D_F_MAX (GPS_NICKROLL_MAX * GPS_V*7)/10 // auf 70 Prozent des Maximalen Nick/Rollwert begrenzen
558
                                        #define D_F_MAX (GPS_NICKROLL_MAX * GPS_V*7)/10 // auf 70 Prozent des Maximalen Nick/Rollwert begrenzen
552
                                        if (speed_east  > D_F_MAX) speed_east = D_F_MAX;
559
                                        if (speed_east  > D_F_MAX) speed_east = D_F_MAX;
553
                                        else if (speed_east < -D_F_MAX) speed_east = -D_F_MAX;
560
                                        else if (speed_east < -D_F_MAX) speed_east = -D_F_MAX;
554
                                        if (speed_north > D_F_MAX) speed_north = D_F_MAX;
561
                                        if (speed_north > D_F_MAX) speed_north = D_F_MAX;