Seite 1 von 1

Berechnung eine Winkels in Teilbereich eines Winkels (Servotechnik)

Verfasst: Samstag 29. August 2026, 19:12
von kiaralle
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. :D

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) 
    




Bild

Re: Berechnung eine Winkels in Teilbereich eines Winkels (Servotechnik)

Verfasst: Samstag 29. August 2026, 20:18
von karolus

Re: Berechnung eine Winkels in Teilbereich eines Winkels (Servotechnik)

Verfasst: Samstag 29. August 2026, 20:20
von Sirius3
Deine Erklärung hat mit dem Code wenig zu tun. Warum taucht im Code 32768 und 1/8 auf?
Was Du suchst, ist einfach nur divmod.

Code: Alles auswählen

>>> divmod(88 * 4, 360)
(0, 352)
>>> divmod(185 * 4, 360)
(2, 20)
Damit erhälst Du den Winkelbereich und den elektrischen Winkel.