Berechnung eine Winkels in Teilbereich eines Winkels (Servotechnik)
Verfasst: Samstag 29. August 2026, 19:12
Hallo,
ich bin aktuell an der Berechnung eines Winkels angelangt.
Gegeben sind folgende Dinge:
Polpaare = 4
Mechanischer Winkel 360° mit einer inkrementellen Auflösung von 2048.
Der aktuelle mechanische Winkel, zum Beispiel 88°
Der mechnanische Winkel wird durch die Polpaare geteilt. Wir erhalten 90,180,270,360
Die bereiche innerhal der 4 Winkel, ist der elektrische Winkel, entsprechen dann wieder 360°. Hört sich jetzt für Fachfremde komisch an, ist aber so.
Der aktuell mech. Winkel von 88° liegt ja im ersten Teilbereich 0-90° und man kann jetzt den elektrischen Winkel umrechen.
Beim mech. Winkel von 185° liegt der elekt. Winkel im dritten mech. Winkelbereich von 180-270°
Gibt es eine Funktion mit der ich das einfach berechnen kann?
Hatte jetzt an die Möglichkeit eines Anfängers gedacht, dies mit while ... zu lösen.
in etwa so, noch nicht fertig geprüft:

ich bin aktuell an der Berechnung eines Winkels angelangt.
Gegeben sind folgende Dinge:
Polpaare = 4
Mechanischer Winkel 360° mit einer inkrementellen Auflösung von 2048.
Der aktuelle mechanische Winkel, zum Beispiel 88°
Der mechnanische Winkel wird durch die Polpaare geteilt. Wir erhalten 90,180,270,360
Die bereiche innerhal der 4 Winkel, ist der elektrische Winkel, entsprechen dann wieder 360°. Hört sich jetzt für Fachfremde komisch an, ist aber so.
Der aktuell mech. Winkel von 88° liegt ja im ersten Teilbereich 0-90° und man kann jetzt den elektrischen Winkel umrechen.
Beim mech. Winkel von 185° liegt der elekt. Winkel im dritten mech. Winkelbereich von 180-270°
Gibt es eine Funktion mit der ich das einfach berechnen kann?
Hatte jetzt an die Möglichkeit eines Anfängers gedacht, dies mit while ... zu lösen.
in etwa so, noch nicht fertig geprüft:
Code: Alles auswählen
import math
multiturn= 32768
polpaare=4
multiturn_position = 32768*0.125 #
multiturnteilbereich = multiturn/polpaare
multiturnteilbereich_modf = math.modf(multiturn_position / multiturnteilbereich)
print ("multiturnteilbereich",multiturnteilbereich_modf)
d = round(multiturnteilbereich_modf[1]/polpaare,0)
print("d",d)
i=0
test=multiturn_position
rest=360/multiturnteilbereich*multiturnteilbereich_modf[0]
while i < multiturnteilbereich_modf[1]:
i=i+1
test=test-multiturnteilbereich
print(rest)
print("ele. Winkel: ",(360/multiturnteilbereich*test)+rest)
