Guten Tag zusammen, Ich habe folgendes Problem; Ich habe einen PMSM motor (EPS servolenkung Motor) leider mit keine Eigenschaften. Ich habe den Motor erst ohne Regler einfach mit konstante PWM signal getestet und bis zum maximum Drehzahl (Leerlauf) gedreht. Es hat gut funktioniert. Also jetzt weiß ich nur wie schnell der Motor sich dreht aber mehr nicht. Dann weiter habe ich mit einem einfachen PI Regler (Feldorientierte Regelung) vorbereitet um die Regler Parameter mit Experiment zu bestimmen. Der Motor dreht sich mit dem Regler auch aber zu laut. Ich habe Regler parameter viel mal geändert aber hab keinen Erfolg Motor ist immer zu laut. Meine Frage ist, wie kann ich in dem Fall für den Motor Regler Parameter bestimmen ohne Motor Eigenschaften. Was kann ich machen dass der Motor sich leise dreht wie ohne Regler Fall. Vielen Dank im Voraus und entschuldigung wegen meine schlechte Deutschkenntnisse.
Übrigens, der Motorlagesensor ist ein Drehgeber (5000 Strichzahl) mit zwei Kanäle (A und B)...
Ich habe auch mal eine Drehzahlregelung programmiert. Da habe ich die Reglerparameter auch durch "ausprobieren" ermittelt. Da gab es aber das "Problem", daß ich keinen Drehzahlsensor hatte :) ... Ich vermute dein Problem liegt vielleicht wo anders. Wie ist dein Regler aufgebaut? Bei einer Drehzahlregelung hast du ja im Prinzip eine unterlagerte Stromregelung (Drehmomentregelung). Wenn du jetzt konstant auf einen hohen Strom regelst, dann brummt der Motor schonmal tüchtig :) . Überläufe von Integratoren sind ein beliebtes Problem. Und was ist an dem Motor laut? Wie klingt er? Gruß
Hallo Joachim, zuerst vielen Dank für deine Antwort. Ich mache momentan kein Drehzahlregler sonder nur Stromregler. Mein Sollwert ist konstant z.B. 2A. Der Motor dreht sich sehr schnell obwohl ich sehr niedrige Strom sollwert vorgebe (also normalerweise ich erwarte dass der Motor erst langsam sich drehen wird und danach schneller). mit dem "zu laut drehen" meinte ich dass man richtig geräusche hört und merkt man dass der Stator und Rotor nicht einander synchron sind. Ich habe den Test ohne Integral Anteil probiert aber kein Erfolg wieder zu laut. Wie kann ich schritt zu schritt das Problem bestimmen! Was muss ich den messen um den Fehler genau zu verstehen . vielen Dank!
Das der Motor im Leerlauf auch bei kleinem Strom sehr schnell dreht, ist vollkommen normal, die Verluste im Motor sind sehr klein. Und das macht das Einstellen der Regelung knifflig, die Eigendämpfung ist sehr niedrig etc etc... Läuft der Motor unter Last denn bereits sauber? Hier würde ich eher ansetzen, denn nur unter Last sind die Strom-/Spannungskurven schön "lehrbuchmäßig".
Moin, eigentlich solltest du bei einer PMSM genau sagen können, wie schnell sie dreht. Nämlich so schnell, wie dein angelegtes Statorfeld. Dass du erstmal mit einem "einfachen" Stromregler anfängst ist gut. Die Drehzahl solltest du zu Anfang erstmal steuern, nicht regeln. Das funktioniert bei PMSM bis zu einem gewissen Punkt ganz gut. Ich vermute, daß deine komischen Geräusche daher kommen, daß dein Läufer ab und zu "aus dem Tritt" kommt, als nicht ganz richtig von dem Drehfeld mitgenommen wird. Das kann wirklich sehr verrückt klingen ;) ...! Ich habe den Stromregler damal mit einer normalen Asynchronmaschine eingestellt. Da brauchst du dir keine Gedanken über das Hochrampen der Drehzahl zu machen. Als mein Stromregler dann ordentlich lief habe ich eine Rampe für die Drehzahl implementiert. Danach lief es auch problemlos mit der PMSM. Versuch das mal so. Wenn du keine Asynchronmaschine zur Verfügung hast, dann brauchst du trotzdem eine Drehzahlrampe :) ... Gruß
C. K. schrieb: > mit dem "zu laut drehen" meinte ich dass man richtig geräusche hört und > merkt man dass der Stator und Rotor nicht einander synchron sind. Ich > habe den Test ohne Integral Anteil probiert aber kein Erfolg wieder zu > laut. Wie kann ich schritt zu schritt das Problem bestimmen! Was muss > ich den messen um den Fehler genau zu verstehen . Moin, Dein Problem schein nicht an deinem Regler ansich zuliegen. Wenn du FOC betreibst, was für einen Winkel hast du zwischen Rotor und Stator Feld? das sollten immer 90° sein, dann liefert der Motor maximales Drehmoment für die eingeprägte Spannung. Als nächstes solltest du nicht 2A Strom vorgeben sondern nur 100mA oder weniger. Das hört sich für mich so an das du den Motor im Leerlauf, dazu bekommen willst 2A zu ziehen, und das wird nicht gehen. Du musst schon einen Sollwert nehmen den der Motor auch erreichen kann. MfG Tec
Hallo nochmal, Danke für alle hilfreiche Antworte. Also 2A war nur ein Beispiel. ich habe den Test mit sehr niedrigem sollwert auch gemacht. Ich habe 3 Phasenströme gemessen und hab gemerkt dass der Motorströme am Anfang rauschen. Also U,V,W Ströme rauschen zwischen +/- 0.5A obwohl ich den Motor kein Signal schicke. Ich vermute mal dass der Regler anfang versucht (wegen dem Rauschen) den Strom immer null halten (wenn sollwert null ist) und damit gibt ein große Spannung werte raus. Ich habe Kp bisschen erhöht und Ki niedrig gemacht und damit der Motor dreht sich überhaupt nicht mehr aber macht ein große Geräusche (wie ein Vuvuzela). Also muss ich Geschwindigkeitsregler machen mit unterlagertem Stormregler obwohl ich nicht genau den stromregler parameter festgestellt habe. Übrigens habe ich keine Daten vom Motor (polpaarzahl, indüktivität, wiederstand ...) Danke,
Nun bleib mal ruhig. Was soll denn die Tatsache überhaupt, daß dein Stromregler im Stillstand überhaupt irgendwas macht? Um den Motor zum Stillstand zu bringen kannst du ja unter anderem den Stromsollwert zu 0 machen, oder den Drehzahlsollwert. Die Drehzahl auf 0 zu bringen, den Stromregler aber weiterlaufen zu lassen ist... diplomatisch ausgedrückt: nicht gut. Versuch doch wenigstens mal so, wie dir vorgeschlagen wurde: Stromregler auf xxx A einstellen und die Drehzahl hochrampen. Das kann ruhig 5 Sekunden dauern, egal. Außerdem macht es Sinn dir mal die Sprungantwort von deinem Regler an zu gucken. Dafür kannst du eine ohmsche, aber besser induktive Last nehmen. Ich hab damals im 500ms-Takt Regler an und wieder aus gemacht. Damit kannst du deine Reglerparameter so grob in die richtige Richtung bringen. Pack das Problem doch mal an der Wurzel. Wenn dein Regler Unfug macht, dann ist die Polpaarzahl erstmal vollkommen Hupe... Ach ja, die Polpaarzahl: das ist gar nicht so schwierig. Du könntest z.B. ein Scope an die Statorwicklungen anschließen, den Motor von Hand drehen, und dann guckst du dir an, wieviele Perioden du pro Umdrehung misst. Und wenn dir das zu einfach ist: Lass den Motor mit dem Stromregler bei Festgelegter Drehzahl drehen (siehste, Stromregler muß erstmal laufen). Nimm bei deiner Rechnung einfach mal an, die Polpaarzahl sei 2. Wenn du jetzt auf z.B. 3000 u/min hochrampst kannst du dann mal die Drehzahl messen. Wenn die passt, dann passt deine Polpaarzahl im Code auch. Wenn nicht, dann nicht! Ist die eingestellte Drehzahl 3000 (PPZ 2), und die gemessene 1500, dann ist die PPZ... hmmmmmm ;) Gruß Edit: ach ja, der Widerstand deines Motors ist recht leicht zu errechnen. Leg eine Gleichspannung über eine der Wicklungen an und miss den Strom. Mit R = U / I kriegst du den Widerstand raus. Oder miss ihn einfach mit deinem Multimeter ;) ...
Also ich glaube dass ich einige Sachen gut formulieren, in das Thema gut klar zukommen: - Ich gebe kein Drehzahl als Sollwerte, ich habe nur PI Stromregler also: Iq_soll-Iq_ist --> PI Regler --> Uq_soll, Ud_soll --> Clark-Park Trans --> SVPWM Modulation --> Brückentreiber --> Motor - Erster Test: Kein Regler, eingang -> konstante 3 Phasen sinus Verlauf --> PWM Modulation --> Brückentreiber --> Motor (offene Kreis und der Motor dreht sich, ich kann Sinus amplitude erhöhen und periode kürzen damit Motor dreht sich schneller) Ergebniss --> Funktioniert sehr gut fast bis zum 6000°/s... - Zweite Test: mit Stromregler --> eingang konstant Iq_soll=0, Id_soll=0: Die Schleife ist gleich und Ergebniss --> Motor dreht sich nicht aber peepst oder macht kracht zu laut... - Dritte Test: mit Stromregler --> eingang konstant Iq_soll=0.1A Kp=0.3, Ti=4000 Ergebniss --> Der Motor dreht sich sehr schnell und gleichzeitig ist der zu laut wieder... Da sind einzige Teste die ich bis jetzt gemacht habe. Ohne Drehzahlregler wie kann ich Drehzahl hochrampen test machen , das habe ich nicht ganz verstanden. Ich möchte ab jetzt ganz sauber und logic weiter gehen und nur mit Stromregler den Motor leise drehen. Wenn es nötig kann ich auch irgenwie Last aufhängen dass der Motor nicht mehr im Leerlauf dreht. Was ist Ihre meinung, wie kann ich mein Problem mit Erfolg lösen!!! vielen Dank nochmal an Alle...
Also ich kann nur beschreiben, wie ich das gelöst habe. Das muß keine Musterlösung sein. Wenn es andere Leute gibt, die der Meinung sind, daß ihr Vorgehen besser ist, lasse ich mich gern belehren :) Mit "hochrampen" ist einfach gemeint, daß du die Frequenz deines Drehfeldes von 0 auf xxx "langsam" erhöhen sollst. Wenn dein Drehfeld die ganze Zeit mit voller Drehzahl dreht ist ja klar, daß der Läufer nicht wirklich mitkommt. Der muß ja erstmal beschleunigt werden. Darum habe ich einen konstante Strom eingeprägt und dann die Frequenz des Drehfeldes von 0 auf xxx Schrittweise erhöht. Die Theorie dahinter: eine Umdrehung geht von 0 bis 2*pi. Und deinen Drehwinkel lässt du dann ja von 0 bis 2*pi hochzählen und dann wieder von vorne. Die Drehfrequenz hängt dann davon ab, wie groß die Schritte sind, in denen du den Winkel hochzählst (Beispiel 0,1 ergibt dann eben knapp 63 Schritte), und wie oft pro Zeiteinheit du das machst. Wie oft du das machst ist oft durch die Interruptfrequenz (z.B. 16kHz) festgelegt. Wenn du also 16000-mal pro Sekunde deinen Winkel um 0,1 hochzählst ergibt sich eine Drehzahl von 16000 / 63 = 253 Hz. Ja, und da hab ich dann die Schrittweite (also das beispielhafte 0,1) von 0 bis xxx erhöht. Und wie schnell diese Erhöhung stattfindet ergibt den Verlauf deiner Beschleinigung. Du kannst eine PMSM nicht einfach an eine feste Frequenz legen. Eine Asynchronmaschine kann das, eine SYNCHRONmaschine aber nicht (zumindest nicht offiziell ;) )! Mach ich eigentlich grad deine Abschluß/Projekt-Arbeit hier?
Hallo Joachim, Ich habe vom Motor Polpaarzahl, Wiederstand und Indüktivität ungefähr bestimmt. Also habe ich immer noch Problem mit dem Regler. Der Regler Arbeitet im Frequenzbereich 8kHz. Wie du beschrieben hast, habe ich die Drehfeld frequenz vom 0 bis max langsam erhöht. In der Simulation siehe ich dass die PWM Signal vom 0 bis zum max. Werte sich langsam erhöht und die frequenz auch. Da alles ist wie ich erwartet habe ganz ok. Aber im realen Test leider ist das nicht so. Obwohl ich Anfang Iq_soll=0 gebe, der Motor macht nur kracht(oder peepst). Ich verstehe das nicht. Ich habe die phasenströme wieder gemessen, die rauschen zwischen -/+ ~0.4A und Ausgang Spannung des Reglers bleibt nicht mehr null. Also hast du dafür eine erklärung wo ich da Fehler mache.
Sorry, bei deiner Beschreibung kann das fast alles sein, was das Verhalten des Motors verursacht. Du mußt allerdings den d-Strom auf 0 regeln und den q-Strom auf xxx (zumindest war das bei mir so ;) ...). Du solltest überprüfen: - Inhalt deines Integrators (I-Anteil) - Überläufe des Integrators - Wertebereich des Integrators (Begrenzungen) - Wertebereich des P-Anteils (Eingangsgrößte * Kp) - Wertebereich des Summation von P- und I-Anteil (Begrenzungen) Bedenke: der I-Anteil muß negativ werden können, das was aus deinem Regler rauskommt aber (normalerweise) nicht. Deine PWM-Register können ja nur Werte von 0-xxx aufnehmen. Das bildet dann auch die Grenzen für deine Regler-Größen. Debuggen ohne etwas zu sehen ist äußerst ineffizient. Darum sollst du bitte irgendwie deine Reglergrößen sichtbar machen. Ausgabe auf serielle Schnittstelle, über JTAG, wie auch immer... oder nimm zur Not ein Scope! Klemm eine Drossel anstatt des Motors an und dann gibst du Sprünge auf des Teil und guckst dir mit dem Scope die Stromverläufe und das Einschwingverhalten an. Reglerparameter anpassen und fertig. Sprungantwort Sprungantwort ist das Zauberwort! Wenn du das "automatisiert" laufen lässt wird es einfach: Pseudocode: Endlosschleife { 1A Strom-Sollwert 500 ms warten 0A Strom-Sollwert 500 ms warten } In der Schleife änderst du dann "von außen" per JTAG oder sonstwie dein Kp und Ki...
Hallo, Du hast recht Joachim. Ich habe heute kurze Zeit paar Test gemacht und habe ich folgende Ergebnisse: - Zuerst wollte ich Amfang des Programs auf jeden fall den Motor leise halten. Dafür habe ich wie folgendes gemacht if iq_ist < 1A out=0; else out=iq_ist; end Das habe ich für D-Regler und Q-Regler gemacht. Der Motor bleibt damit ganz ruhig. - Danach wollte ich nur mit D-Regler test machen (Regler parameter bestimmen wenigstens nicht mehr peepst), deshalb habe ich Q-Regler wie oben geschrieben null gehalten und D-Regler normal startet. Der Motor machte trotztem so viel kracht. Ich habe Ki von 400 zu 1000 erhöht und Kp verkleinert. Damit der Motor hat aufgehört zu peepsen. Also ich habe Ud Uq spannung Werte vom Regler ausgang beobachtet und gesehen im normal Fall die beide Werte sind siemlich groß. Aber mit den neuen Parametern Ud war siemlich klein und damit der Motor bleibte ruhig. - Diesmal habe ich Q-Regler auch ganz normal startet und zuerst I anteil weggelassen. Nur mit P Anteil verschiedene test gemacht. Das Problem ist hier aber dass der Regler versucht siemlich schnell die Rauschende Phasenströme zu regeln. Damit habe ich bis jetzt keine Erfolg aber heute mache ich weitere Teste und wie du geschrieben hast, werde ich versuchen die Wertebereiche Kp und Ki zu begrenzen damit die Ausgang des Reglers (Uq) anfang nicht mehr zu groß rauskommt... Kann das sein dass der Regler im geringeren Frequenzbereich gibt höhere Spannung raus und damit der Motor saugt amfang zu viel Strom. naturlich der Rotor kann auch nicht mehr den Stator folgen!
> Kann das sein dass der Regler im geringeren Frequenzbereich gibt höhere > Spannung raus und damit der Motor saugt amfang zu viel Strom. naturlich > der Rotor kann auch nicht mehr den Stator folgen! Der Zusammenhang stimmt noch nicht ganz. Bei geringer Frequenz kann der Rotor dem Drehfeld wesentlich besser folgen, als bei hohen Frequenzen. Das hat "erstmal" mit dem Strom weniger zu tun. Das Moment, also "wie kräftig" er dem Drehfeld folgt, das hängt vom Strom ab. Bei hohen Frequenzen brauchst du dann (allgemein gesagt) auch mehr Strom, damit der Läufer nicht den Anschluß verpasst :) . So, und wieviel Spannung letztendlich aus dem Regler rauskommt, das hängt ja von deinem Stromregler ab. Da sollte ja eigentlich immer so eine Spannung rauskommen, daß der eingestellte Strom fließt. Dafür ist der Regler ja da. Und wenn das funktioniert wird der Motor auch bei geringer Frequenz nicht beliebig viel Strom ziehen. > - Diesmal habe ich Q-Regler auch ganz normal startet und zuerst I anteil > weggelassen. Nur mit P Anteil verschiedene test gemacht. Das Problem ist > hier aber dass der Regler versucht siemlich schnell die Rauschende > Phasenströme zu regeln. Damit habe ich bis jetzt keine Erfolg aber heute Auf rauschende Werte zu Regeln ist schwierig. Deine Regler-Eingangsgrößen sollten einigermaßen "geglättet" sein. Natürlich nicht zu stark, da dein Regler sonst zu langsam wird. Aber du wirst sehen, daß ein PT1-Glied (Tiefpass) hier Wunder bewirkt... Dann noch den größten und kleinsten Messwert verwerfen, und schon ist die Welt in Ordnung :) . 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.