Forum: HF, Funk und Felder AZ antennenrotor-strategie wenn ein sat vorbeifliegt


von Sebastion B. (brinkmann)


Lesenswert?

Mein AZ rotor dreht von der stateliten position 179 grad bis zur 
position 181 grad eine ganze 358 grad runde in die andere richtung. Weil 
181 grad zu -179 grad umgerechnet wird. Weil eben atan2 so funktioniert. 
Natürlich macht er es meist genau dann wenn der sat daten sendet. Diese 
verliert man dann.

Ich kann die ansteuerung so machen dass anstatt -180 bis +180 einfach 
-270 bis +270 verwendet wird. Dann brauch ich aber eine vernünftige 
strategie, weil das berechnungsmodul liefert nur -180 bis +180.

Wie machen?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Sebastion B. schrieb:
> Wie machen?

Verhindere, dass während des Satellitendurchgangs 181 zu -179 
umgerechnet wird.

von HAM (Gast)


Lesenswert?

Nur aus Interesse und zum Verständnis: Welcher Sat überstreicht 360° 
über dem Horizont?

Das schafft ja selbst die Sonne nur für ein paar Tage im Jahr an wenigen 
Orten.

Leg den 360°-Punkt nach Norden.

von Hans (Gast)


Lesenswert?

Sebastion B. schrieb:
> Wie machen?

Ist doch nicht schwer:

 - Merke Dir die alte Rotor-Ist-Position.
 - Berechne die neue Soll-Position.
 - Berechne für die neue Position einmal +360° und -360°
 - Nun hast Du drei neue Kandidaten:
   Original, Original plus 360, Original minus 360
 - Lösche von den Kandidaten alle, die der Rotor nicht anfahren
   kann oder darf.
 - Wähle die Position aus der verbliebenen Liste mit dem
   kürzestem Weg. [ Weg = Absolutwert(Soll - Ist) ]
 - Fahr den Rotor dort hin.

Das kann man natürlich kompakter Umsetzen; aber das ist das Prinzip.

von Sebastion B. (brinkmann)


Lesenswert?

Ich danke !

von Sebastion B. (brinkmann)


Lesenswert?

1
void writeServo(float azangle) 
2
{
3
  if (azangle >  180.0) azangle -= 360.0; //make -180 to 180
4
  if (azangle < -180.0) azangle += 360.0; //make -180 to 180
5
      
6
  float azplus  = azangle + 360.0;
7
  float azminus = azangle - 360.0;
8
  
9
  float diff      = azangle - oldazangle;
10
  float diffplus  = azplus  - oldazangle;
11
  float diffminus = azminus - oldazangle;
12
13
  float smallest = abs(diff);
14
  float newaz = azangle;
15
  if (abs(azplus) < maxangle)
16
    if (abs(diffplus)  < smallest) 
17
    {
18
      smallest = diffplus;
19
      newaz = azplus;
20
    }
21
  if (abs(azminus) < maxangle)
22
    if (abs(diffminus) < smallest) 
23
    {
24
      smallest = diffminus;
25
      newaz = azminus;
26
    }
27
  
28
  Log::console(PSTR("az: %.0f, az+: %.0f, az-: %.0f, oaz %.0f, diff %.0f, smallest %.0f, newaz %.0f"), azangle, azplus, azminus, oldazangle, diff, smallest, newaz);  
29
30
  oldazangle = newaz;
31
  
32
  // 1.8deg/step, 200 steps/rev
33
  sollpos = newaz*0.5555;
34
}

: Bearbeitet durch User
von W.S. (Gast)


Lesenswert?

HAM schrieb:
> Nur aus Interesse und zum Verständnis: Welcher Sat überstreicht 360°
> über dem Horizont?

Nee, das denkst du falsch. Bei LEO Satelliten hat man es immer, daß sie 
irgendwo am Horizont auftauchen, die Elevation immer größer wird bis sie 
einem mehr oder weniger über den Kopf fliegen, um dann am 
entgegengesetzten Azimut mit immer kleinerer Elevation weiter zu 
fliegen, bis sie wieder unter den Horizont tauchen. Im Prinzip hat man 
es immer mit einer Drehung im Azimut von 180° zu tun, die aber nicht 
gleichmäßig verläuft, sondern z.B. bei direktem Überflug mitten im 
Kulminationspunkt von Azimut zu -Azimut wechselt. So schnell dreht kein 
Antennenrotor die Antenne herum.

Es ist dabei bloß so, daß so eine Antenne auch Kabel hat zwischen der 
eigentlichen Antenne und den unbeweglichen Teilen. Und diese Kabel 
verhindern, daß man die Antenne beliebig herumdrehen kann.

Rein theoretisch wäre das zu lösen, wenn die Drehmechanik neben dem 
Azimut die Elevation größer als 90° machen könnte und obendrein noch ein 
Rollwinkel quer zur Elevation eingestellt werden könnte. Dann könnte man 
allein mit Elevation und Rollwinkel die Satellitenbahn abfahren. Aber so 
eine Mechanik hab ich noch nicht gesehen.

Ganz generell: es kommt auf die mechanische Konstruktion an, ob das 
Problem lösbar ist. Ansonsten wäre ggf. eine zweite Antenne billiger, 
die während des Drehens den Empfang übernimmt.

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.