Subversion Repositories FlightCtrl

Rev

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

Rev 831 Rev 846
Line 484... Line 484...
484
            RcLostTimer = EE_Parameter.NotGasZeit * 50;
484
            RcLostTimer = EE_Parameter.NotGasZeit * 50;
485
            if(GasMischanteil > 40)
485
            if(GasMischanteil > 40)
486
                {
486
                {
487
                if(modell_fliegt < 0xffff) modell_fliegt++;
487
                if(modell_fliegt < 0xffff) modell_fliegt++;
488
                }
488
                }
489
            if((modell_fliegt < 200))// || (GasMischanteil < 40))
489
            if((modell_fliegt < 200))
490
                {
490
                {
491
                SummeNick = 0;
491
                SummeNick = 0;
492
                SummeRoll = 0;
492
                SummeRoll = 0;
493
//                StickGier = 0;
493
//                StickGier = 0;
494
//                Mess_Integral_Gier = 0;       
494
//                Mess_Integral_Gier = 0;       
Line 973... Line 973...
973
    if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000;
973
    if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000;
Line 974... Line 974...
974
 
974
 
975
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
975
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
976
//  Kompass
976
//  Kompass
977
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
977
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
Line 978... Line 978...
978
DebugOut.Analog[29] = (MaxStickNick + MaxStickRoll);
978
//DebugOut.Analog[29] = (MaxStickNick + MaxStickRoll);
979
 
979
 
980
    if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV))
980
    if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV))
981
     {
981
     {
Line 999... Line 999...
999
        {
999
        {
1000
          if(!KompassSignalSchlecht)
1000
          if(!KompassSignalSchlecht)
1001
          {
1001
          {
1002
           GierGyroFehler += fehler;
1002
           GierGyroFehler += fehler;
1003
           v = 64 + ((MaxStickNick + MaxStickRoll)) / 8;  
1003
           v = 64 + ((MaxStickNick + MaxStickRoll)) / 8;  
1004
           //r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180;
-
 
1005
           r = KompassRichtung;
1004
           r = KompassRichtung;
1006
           v = (r * w) / v;  // nach Kompass ausrichten
1005
           v = (r * w) / v;  // nach Kompass ausrichten
1007
           w = 3 * Parameter_KompassWirkung;
1006
           w = 3 * Parameter_KompassWirkung;
1008
           if(v > w) v = w; // Begrenzen
1007
           if(v > w) v = w; // Begrenzen
1009
           else
1008
           else
Line 1041... Line 1040...
1041
    DebugOut.Analog[19] = WinkelOut.CalcState;
1040
    DebugOut.Analog[19] = WinkelOut.CalcState;
Line 1042... Line 1041...
1042
 
1041
 
1043
    DebugOut.Analog[30] = GPS_Nick;
1042
    DebugOut.Analog[30] = GPS_Nick;
Line 1044... Line -...
1044
    DebugOut.Analog[31] = GPS_Roll;
-
 
1045
 
-
 
1046
/*    DebugOut.Analog[19] += (DebugOut.Analog[1] - Mittelwert_AccRoll)/32;
-
 
1047
    DebugOut.Analog[19] -= DebugOut.Analog[19]/32;
-
 
1048
    if(DebugOut.Analog[19] > 0) DebugOut.Analog[19]--; else DebugOut.Analog[19]++;
-
 
1049
GPS_Roll2 = (1 * GPS_Roll + ((DebugOut.Analog[19] / 16) * Poti3) / 32) / 2;
-
 
1050
 
-
 
1051
    DebugOut.Analog[20] += (DebugOut.Analog[0] - Mittelwert_AccNick)/32;
-
 
1052
    DebugOut.Analog[20] -= DebugOut.Analog[20]/32;
-
 
1053
    if(DebugOut.Analog[20] > 0) DebugOut.Analog[20]--; else DebugOut.Analog[20]++;
-
 
1054
GPS_Nick2 = (1 * GPS_Roll + ((DebugOut.Analog[20] / 16) * Poti3) / 32) / 2;
-
 
1055
*/
-
 
Line 1056... Line 1043...
1056
//GPS_Nick = (GPS_Nick + (DebugOut.Analog[20] * Poti3) / 32) / 2;
1043
    DebugOut.Analog[31] = GPS_Roll;
1057
 
1044
 
Line 1058... Line 1045...
1058
 
1045
 
Line 1084... Line 1071...
1084
  }
1071
  }
Line 1085... Line 1072...
1085
 
1072
 
1086
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1073
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1087
//  Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen
1074
//  Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen
1088
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
-
 
1089
//DebugOut.Analog[26] = MesswertNick;
-
 
Line 1090... Line 1075...
1090
//DebugOut.Analog[28] = MesswertRoll;
1075
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1091
 
1076
 
1092
    if(Looping_Nick) MesswertNick = MesswertNick * GyroFaktor;
1077
    if(Looping_Nick) MesswertNick = MesswertNick * GyroFaktor;
1093
    else             MesswertNick = IntegralNick * IntegralFaktor + MesswertNick * GyroFaktor;
1078
    else             MesswertNick = IntegralNick * IntegralFaktor + MesswertNick * GyroFaktor;
1094
    if(Looping_Roll) MesswertRoll = MesswertRoll * GyroFaktor;
1079
    if(Looping_Roll) MesswertRoll = MesswertRoll * GyroFaktor;
Line 1095... Line -...
1095
    else             MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor;
-
 
1096
    MesswertGier = MesswertGier * (2 * GyroFaktor) + Integral_Gier * IntegralFaktor / 2;
-
 
1097
 
-
 
1098
/*
-
 
1099
DebugOut.Analog[25] = IntegralRoll * IntegralFaktor;
-
 
1100
DebugOut.Analog[31] = StickRoll;// / (26*IntegralFaktor);
1080
    else             MesswertRoll = IntegralRoll * IntegralFaktor + MesswertRoll * GyroFaktor;
1101
DebugOut.Analog[28] = MesswertRoll;
1081
    MesswertGier = MesswertGier * (2 * GyroFaktor) + Integral_Gier * IntegralFaktor / 2;
1102
*/
1082
 
1103
    // Maximalwerte abfangen
1083
    // Maximalwerte abfangen
1104
    #define MAX_SENSOR  2048
1084
    #define MAX_SENSOR  2048
Line 1164... Line 1144...
1164
// Gier-Anteil
1144
// Gier-Anteil
1165
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1145
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1166
#define MUL_G  1.0
1146
#define MUL_G  1.0
1167
    GierMischanteil = MesswertGier - sollGier;     // Regler für Gier
1147
    GierMischanteil = MesswertGier - sollGier;     // Regler für Gier
1168
// GierMischanteil = 0;
1148
// GierMischanteil = 0;
1169
#define MIN_GIERGAS  30  // unter diesem Gaswert trotzdem Gieren
1149
#define MIN_GIERGAS  35  // unter diesem Gaswert trotzdem Gieren
1170
   if(GasMischanteil > MIN_GIERGAS)
1150
   if(GasMischanteil > MIN_GIERGAS)
1171
    {
1151
    {
1172
     if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
1152
     if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
1173
     if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
1153
     if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
1174
    }
1154
    }
Line 1178... Line 1158...
1178
     if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
1158
     if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
1179
    }
1159
    }
1180
    if(GierMischanteil > ((MAX_GAS - GasMischanteil))) GierMischanteil = ((MAX_GAS - GasMischanteil));
1160
    if(GierMischanteil > ((MAX_GAS - GasMischanteil))) GierMischanteil = ((MAX_GAS - GasMischanteil));
1181
    if(GierMischanteil < -((MAX_GAS - GasMischanteil))) GierMischanteil = -((MAX_GAS - GasMischanteil));
1161
    if(GierMischanteil < -((MAX_GAS - GasMischanteil))) GierMischanteil = -((MAX_GAS - GasMischanteil));
Line 1182... Line -...
1182
 
-
 
1183
//    if(GasMischanteil < 20) GierMischanteil = 0;
1162
 
1184
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1163
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1185
// Nick-Achse
1164
// Nick-Achse
1186
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1165
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++                
1187
    DiffNick = MesswertNick - StickNick;        // Differenz bestimmen
1166
    DiffNick = MesswertNick - StickNick;        // Differenz bestimmen