Forum: Analoge Elektronik und Schaltungstechnik Blockkommutierung BLDC


von H3LLr1d3r (Gast)


Lesenswert?

Hallo zusammen,

ich habe ein Problem und zwar versuche ich zur Zeit einen BLDC Motor 
zunächst simulativ mit Blockkommutierung über eine B6-Brücke zu 
betreiben. Die maschine hat 4 Polpaare und 3 Hallsensoren (somit 6 
Sektoren), außerdem emsse ich die Phasenströme. Ich möchte den Motor 
zunächst bei konstanter Drehzahl laufen lassen. Habe hierzu einen 
Drehzahlregler der mir einen Referenzstrom vorgibt, den ich dann eben 
blöckförmig auf die einzelnen Phasen leiten möchte. Habe hierzu je einen 
PI-Regler pro Phase um eine Spannungsvorgabe für meinen Wechselrichter 
zu erhalten. Mein Problem ist nun, dass meine Drehzahl von starken 
"Oberschwingungen" behaftet ist (zuindest sieht es so aus) und ich 
schaffe is 10 sekunden gerade mal auf ca 15Hz elektrisch. Mit 
natürlicher Sinuskommutierungen erhalte ich deutlisch bessere 
Ergebnisse, jedoch soll das ganze auch mit Blockkommutierung 
funktionieren.
Ich habe festgestellt, dass immer wenn ich in die Sektoren 2,3 sowie 5,6 
komme, mein Motor gebremst wird, also nur in 2 von 6 Sektoren wirklich 
beschleunigt.

Kann mir jemand helfen? Ich finde keinen Ausweg....

Grüße
H3LLr1d3r

: Verschoben durch Admin
von H3LLr1d3r (Gast)


Lesenswert?

scheint wohl im falschen Forum gelandet zu sein... könnte es bitte 
jemand von den Moderatorn nach "µC & Elektronik" verschieben?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

H3LLr1d3r schrieb:
> Habe hierzu je einen
> PI-Regler pro Phase um eine Spannungsvorgabe für meinen Wechselrichter
> zu erhalten.

Warum pro Phase? Normalerweise regelst du alle drei Phasen zusammen, 
damit der Motor gleichmässig läuft. Deine Blockkommutierung liest die 
Hallsensoren, setzt die (vermutlich) Timer für den nächsten Sektor und 
skaliert dann alle drei mit der gewünschten Amplitude.
Der PID erhält die Ist-Drehzahl aus z.B. den Hallsensoren und den 
Sollwert aus deinem Steller. Als Ausgang gibts dann die gewünschte 
Amplitude, die du in der Skalierung benutzt.

von H3LLr1d3r (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Deine Blockkommutierung liest die
> Hallsensoren, setzt die (vermutlich) Timer für den nächsten Sektor und
> skaliert dann alle drei mit der gewünschten Amplitude.

Mein Stromregler bekommt vom Drehzahlregler einen Referenzstromwert, der 
ist beim Anfahren maximaler Strom (z.B. 120A). Jetzt weiß ich welcher 
Strom auf meine einzelnen Phasen kommen soll (Faktor 0, 1 oder -1 für 
jede einzelne Phase je nach Sektor). Okay aber woher weiß ich dann 
welche Spannung ich anlegen muss? Mein Regler muss ja sozusagen die 
Spannungsvorgabe für den Wechselrichter liefern und diese aus dem 
Referenzstrom bekommen. Wenn ich also nicht alle Phasen einzeln regle, 
wie denn dann? Nur eine Regeln und die andern anpassen mit dem Faktor 0, 
-1 oder 1 der Spannunsgvorgabe des einen Reglers? Ich glaube da wird 
genau das gleiche passieren da es ja außer Rechenzeiteinsparung nichts 
an dem Verfahren ändert oder?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

H3LLr1d3r schrieb:
> Okay aber woher weiß ich dann
> welche Spannung ich anlegen muss?

Die angelegte Spannung ist direkt proportional zur Drehzahl. Der übliche 
Weg ist der Einsatz von PWM, die abhängig vom Sektor über die drei 
Halbbrücken an die Wicklung gelegt wird. Die effektive Spannung an den 
Wicklung bestimmt dann die Drehzahl. Unabhängig von der Drehzahl sorgen 
die Hallsensoren für die Schrittfolge - und nicht etwa umgekehrt. Die 
Hallsensoren sind also nicht für die Geschwindigkeit verantwortlich, 
dafür sorgt alleine die effektive Spulenspannung.
Die Spannung wird also von deinem Drehzahlregler bestimmt.
Wir wissen aber nichts über deine Hardware - ist das selbstgebaut oder 
sind es Fertigbausteine? Die Stromaufnahme des Motors zu wissen, ist 
schön für Limitierunen und Überwachung, ist aber nicht direkt ein 
Kriterium für Geschwindigkeit, dazu ist er zu abhängig von der 
Motorlast.

von H3LLr1d3r (Gast)


Lesenswert?

Es sind eigentlich alles Fertigbausteine, wie gesagt funktioniert auch 
eigentlich alles, wenn ich über feldorientierte Regelung gehe und dann 
über Raumzeigermodulation und anschließenden dutycycle-Berechnung meine 
PWM erzeuge. Nur war die Idee jetzt, zum Anfahren keine Vektorregelung 
herzunehmen, da der genaue Winkel ja unbekannt ist und somit nicht 
sinnvoll von 3 phasen zu rotorfesten Koordinaten (dq-Koordinaten) 
transformiert werden kann. Stattdessen soll zunächst im Block angefahren 
werden, anschließend auf Vektorregelung umgeschalten werden sobald die 
Geschwindigkeit ausreichend groß ist um sinnvoll den Winkel 
abzuschätzen.

Inzwischen glaube ich, dass ich ein grundlegendes Verständnisproblem mit 
dem Blockkommutierung habe.

Matthias Sch. schrieb:
> Die Spannung wird also von deinem Drehzahlregler bestimmt.

Also so wie ich es gelernt habe bestimmt mein Drehzahlregler doch meinen 
Sollstrom und diesen benutze ich dann widerum um meine Phasenströme zu 
regeln oder nicht? Ausgang meines Stromreglers ist doch dann die 
gesuchte Spannung. Oder geht man bei der Blockkommutierung hier generell 
anders vor?

Ich habe in der gängigen Literatur nichts konkretes dazu gefunden, 
lediglich dass Blockkommutierung bedeutet eine Phase an, die zweite 
minus die erste Phase und die dritte 0. Mir fehlt hier einfach irgendwie 
die Zuordnung der Spannung zum gewünschten Stromsollwert.

von decimad (Gast)


Lesenswert?

Kannst Du nicht den Geschwindgkeitsregelkreis um den Vector-Regler 
abschalten, ein Drehmoment fest vorgeben und den Winkel eben 
entsprechend der Hall-Angaben einleiten? Dann müsstest Du nicht noch 
eine weitere Kommutierung/PWM programmieren...

von Ingo (Gast)


Lesenswert?

Was tut denn dein Stromregler um auf den Strom zu kommen? Er dreht die 
Spannung hoch!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

H3LLr1d3r schrieb:
> Es sind eigentlich alles Fertigbausteine,

widerspricht aber

H3LLr1d3r schrieb:
> zum Anfahren keine Vektorregelung
> herzunehmen

Also, mit was arbeitest du da? Bei Fertigbausteinen ist im allgemeinem 
keine Änderung der Ansteuerung möglich und selbstgebaute Baugruppen sind 
keine Fertigbausteine.

H3LLr1d3r schrieb:
> Mir fehlt hier einfach irgendwie
> die Zuordnung der Spannung zum gewünschten Stromsollwert.

Es gibt keinen Stromsollwert, wenn dein Bestreben ist, die 
Geschwindigkeit zu regeln. Wie ich oben schon geschrieben hatte, ist der 
Motorstrom zwar meistens proportional zur Drehzahl, aber nur bei 
konstanter Last. Vergiss also erstmal den Strom und konzentrier dich auf 
die Erfassung der Geschwindigkeit als Ist-Wert für deinen PID Regler. 
Der Regler liefert am Ausgang dann die Stellgrösse für die Motorspannung 
(und die ist gleich für alle 3 Wicklungen).

H3LLr1d3r schrieb:
> Stattdessen soll zunächst im Block angefahren
> werden

Ja, das ist der übliche Weg. Vergleiche deine Algorithmen mal mit der 
Application Note AVR 447. Da sind auch einige Oszillogramme drin, die 
dir evtl. helfen. AVR221 beschreibt dann den PID Regler, der auch in 
AVR447 verwendet wird.

von H3LLr1d3r (Gast)


Lesenswert?

alles klar vielen Dank, hat mir weitergeholfen :)

von Sinus (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Wie ich oben schon geschrieben hatte, ist der
> Motorstrom zwar meistens proportional zur Drehzahl

Genau! Aus welchem Forum haben Sie denn diesen Quark rausgelesen?

Eig. ist es schon traurig das zu wiederholen, ABER der 
Phasen/Wicklungstrom ist nicht meistens, sondern immer nährungsweise 
proportional zum DREHMOMENT!

Drehmoment->Strom
Drehzahl->Spannung
-----

Bitte fangen Sie auch nicht an zu diskutieren, denn es ist 
nutzlos.Danke!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

@Sinus:
Na,das ist ja mal ein echt hilfreicher Beitrag. Die haben wir hier viel 
zu wenig. Da merkt man die mitteleuropäische Höflichkeit und das tiefe 
Fachwissen in jedem Wort.

Sinus schrieb:
> Danke!

Da nich' für. War mir ein innerer Vorbeimarsch...

von Sinus (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Na,das ist ja mal ein echt hilfreicher Beitrag. Die haben wir hier viel
> zu wenig. Da merkt man die mitteleuropäische Höflichkeit und das tiefe
> Fachwissen in jedem Wort.

Ja, Ja...Sie wissen doch bescheid über BLDC und Regelung.

Wenn man Ihre Posts liesst, widerspricht sich die hälfte Ihrer Aussagen.
Sie sollten erstmal selbst das Thema Grundlegend verstehen, bevor Sie 
hier den Neulingen falsches wissen vermitteln.

Ich wollte Sie auch nicht angreifen oder ähnliches.
Nur die Aussage, dass ein Elektromotor, egal ob DC,BLDC,Sinus die 
Drehzahl proportional zum Strom führt, ist absoluter Unsinn.

Der Themenersteller war weiter oben schon auf dem richtigen Weg, nur Sie 
haben Ihm das richtige Ziel vor den Augen genommen.
Sowas kotzt mich an.

H3LLr1d3r schrieb:
> Also so wie ich es gelernt habe bestimmt mein Drehzahlregler doch meinen
> Sollstrom und diesen benutze ich dann widerum um meine Phasenströme zu
> regeln oder nicht?

Genau so ist es richtig.
Der Stromregler ist im innersten, dieser wird vom Drehzahlregler 
gefüttert.
Gibt es eine Abweichung von der Soll-Ist Drehzahl, wird die Differenz 
üblich mit einem PID-Regler bearbeitet und die Stellgröße an den 
Stromregler weitergeführt.

Man kann im einfachen Fall auch direkt die Stellgröße vom Drehzahlregler 
zum Steuern der PWM nehmen. Dies ist dann eine direktgesteuerte 
Stromführung. Für einfache Aufgaben, bsp. Drehzahlregelung 
Modellhelicopter ausreichend.

Aber wenn man zb. eine Achse von der CNC-Maschine regeln möchte, wird 
dieses Verfahren zu träge sein. Du wirst ohne "echten" Stromregler immer 
ein unschönes einschwingen bzw. ausschwingen der Drehzahl haben.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sinus schrieb:
> nicht meistens, sondern immer nährungsweise

Ich nenne es 'meistens', bei dir heisst es 'näherungsweise', das ist 
lediglich rethorisches Rumgelabere. Auch sehr nett, das du die zweite 
Hälfe meines Satzes nicht mitzitiert hast:
Matthias Sch. schrieb:
> aber nur bei
> konstanter Last

Es geht hier auch nicht um Modellhubschrauber, sondern, wie der TE schon 
im erten Beitrag schrieb, um Motore mit Sensoren. Dafür habe ich schon 
mehr Controller aufgebaut und programmiert, als du jemals hinbekommen 
wirst.

Sinus schrieb:
> und die Stellgröße an den
> Stromregler weitergeführt

Es gibt hier auch keine 'Stromregler', sondern lediglich PWM, die per 
Pulsbreite die effektive Spannung am Motor steuert. Da sich in den 
meisten Fällen die Motorwicklung als glättende Induktivität darstellt, 
wird also (ohmsches Gesetz) der Strom mitgesteuert. Das ist also auch 
nur Wortklauberei.
Die eigentliche Frage des TE war übrigens schon längst beantwortet. Da 
du dich aber so lange hier nicht beteiligt hast, nehme ich mal an, das 
du entweder nur rumblubberst, oder nur solange gewartet hast, um dann 
mal Dampf abzulassen, mit Halbwissen.
Viel Spass noch dabei. Mission erfüllt,ich bin hier raus.

: Bearbeitet durch User
von Sinus (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Dafür habe ich schon
> mehr Controller aufgebaut und programmiert, als du jemals hinbekommen
> wirst.

Ja genau, Controller, aber keine Motorcontroller. Deine Webpage sagt 
schon alles.

Matthias Sch. schrieb:
> Es gibt hier auch keine 'Stromregler', sondern lediglich PWM, die per
> Pulsbreite die effektive Spannung am Motor steuert.

Hahahaha, ich lach mich echt kaputt. Das Problem ist wirklich, dass du 
keinen blassen Schimmer von dem Thema hast.

Falls ja, zeig doch mal deine Sinus-Umrichter die du selbst entwickelt 
hast und in Betrieb genommen hast.

von Sinus (Gast)


Lesenswert?

Matthias Sch. schrieb:
> Da
> du dich aber so lange hier nicht beteiligt hast, nehme ich mal an, das
> du entweder nur rumblubberst, oder nur solange gewartet hast, um dann
> mal Dampf abzulassen, mit Halbwissen.
> Viel Spass noch dabei. Mission erfüllt,ich bin hier raus.

Ich habe weder gewartet noch will ich etwas ablassen.
Ich habe es nur gesehen und wollte etwas einlenken, damit nicht alle 
deinen Worten glauben.
Denn wie gesagt, dass meiste ist leider unsinn.
Du hast es grob verstanden, aber was wirklich im Motor passiert 
vermutest du nur. Ich sehe es an deiner Ausdrücksweise.

Ist auch gut so, dass du raus bist. Diesen unsinn kann man sich echt 
nicht geben. Tut mir leid.

von Sinus (Gast)


Lesenswert?

Muss korrigieren,

Sinus schrieb:
> Matthias Sch. schrieb:
>> Dafür habe ich schon
>> mehr Controller aufgebaut und programmiert, als du jemals hinbekommen
>> wirst.
>
> Ja genau, Controller, aber keine Motorcontroller. Deine Webpage sagt
> schon alles.

Du hast doch den 4. Platz mit dem Sinus-Steller gemacht.
Glückwunsch!

Gruß

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.