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
scheint wohl im falschen Forum gelandet zu sein... könnte es bitte jemand von den Moderatorn nach "µC & Elektronik" verschieben?
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.
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?
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.
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.
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...
Was tut denn dein Stromregler um auf den Strom zu kommen? Er dreht die Spannung hoch!
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.
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!
@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...
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.
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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.