Hi Leute, befasse mich momentan mit der Feldorientierten Regelung um einen permanenterregten Synchromotor zu regeln. Ich wende diese Regelung an einem FPGA Board an mit einer Leistungsplatine und implementiere diese Regelung in C (nios ii). Ich hänge momentan den Regelkreis komplett zu schließen. Und zwar messe ich mit 2 der ingesamt 3 Phasenströme (Ist-Wwerte) und wende daraufhin die Clark und Park Transformationen an damit ich Id und Iq (ist) bekomme. die zwei werte differenziere ich dann mit meinen Id* und Iq* (soll ströme). Die Differenz geht durch einen PI-Regler. Da meine Einheit die aus dem PI-Regler kommt Ampere ist wollte ich wissen, wie ich daraus eine Spannung bzw Volt bekomme. Da ich ja im nächsten schritt die Inverse Park Transfomation verwende und in dieser Transformation mit der Spannung gerechnet wird. Vielen Dank für eure Hilfe
Peter Maier schrieb: > kommt Ampere ist wollte ich wissen, > wie ich daraus eine Spannung bzw Volt bekomme. Hmm. Komplexe Transformationen und Regelkreise sind kein Problem aber bei R = U / I scheitert es? Merkwürdig. Duke
der PI regler ist doch eigentlich dimensionslos. ich denke man muss den Regler als eine V/A einheit betrachten... frage ist ob man die einheiten im code auch irgendwie implementieren muss? PI_Regler_1.Error = shall_i_dq.Im - curr_i_dq.Im; ..... ...... PI_Regler_1.y = PI_Regler_1.y_p + PI_Regler_1.y_i u_dq.Im = PI_Regler_1.y
Peter Maier schrieb: > der PI regler ist doch eigentlich dimensionslos. ich denke man muss den > Regler als eine V/A einheit betrachten... frage ist ob man die einheiten > im code auch irgendwie implementieren muss? Nein, muß man nicht. Aber Du mußt wissen, was Du eigentlich regeln willst: Drehzahl, abgegebene Leistung, konstanter Strom... Duke
Hallo. Soweit ich es mir richtig gemerkt habe - bitte korrigiert mich, wenn ich mich irre - beginnt man zunächst mit der Regelung der Spulenströme, damit zu hohe Ströme verhindert werden. Dafür kann man auch Zweipunktregler nehmen und ein gewisses Toleranzband einstellen (je kleiner desto öfter muss geschaltet werden) und eine Begrenzung auf Nennstrom einbauen. Die Park/Clarke-Transformation dient ja nur dem Umrechnen von den drei Strangströmen zu einem Raumzeiger (2 Parameter). Da es sich um eine PSM handelt, ist eine der Komponenten immer 0, da es sich um ein rotorfestes Bezugssystem handelt. Die Komponente, die 0 ist - keine Ahnung, ob es d oder q war... sagen wir d - ist der fixe Flusszeiger vom permanenterregten Rotor. D.h es bleibt nur die Stärke der i_q-Komponente über zur Regelung (Drehmoment = i x fluss). Diese steht im rechten Winkel zum permanenten Fluss, da so das Drehmoment maximal ist. Die i_q-Komponente wird wieder ins statorfeste Koordinatensystem (alpha, beta) umgerechnet. Den Winkel von Rotor zu Stator weiß man vom Sensor. Die alpha,beta-Ströme werden dann wieder umgerechnet in die 3-Phasen. Muss jetzt zB die Drehzahl geregelt werden, kann man das mithilfe eines überlagerten PI-Regler machen. LG
Das ganze ist wohl weniger ein FPGA-Thema, als ein Modell-Thema. Soweit ich das überblicke, hast Du hier mehrere Regelkreise: Im Innersten ist es der sich autark einstellende Strom nach Massgabe der Ansteuerung und Belastung (Modell?) und darum herum die Reglung des Spulenstroms und zwar a) auf Strommaximum und b) der Vorgabe. Du brauchst also einen Sollstrom oder ein Sollfeld, auf das der Motor träge reagiert. Damit hättest du aber aus Deiner Sicht noch keinen geschlossenen Regelkreis. Den zu schliessen, hieße, den angedeuteten Regler um die Vorgabe herum zu bauen. Ob da NIOS das richtige ist ... (?) Ich habe das mal für Schrittmotoren gemacht, dort aber die SV und Regelung im FPGA: http://www.google.com/patents/US20110133682 Das ist schnell genug, um die Elektronik zu modellieren und zu antizipieren (und eben passend anzusteuern). Wenn Du jetzt im threadthema "feldorientiert" schreibst, würde ich sagen, dass Deine innerste Regelgösse wohl das Feld sein soll (?). Und damit hättest Du gfs ein Recherpowerproblem.
Hallo zusammen, habe eigentlich nur eine kurze Frage und glaube das die hier gut reinpasst. Habe gerade auch ein Verständnisproblem bezüglich Strom zu Spannung. Anbei ein Bild der das besser Verdeutlicht. Ich messe ja meine Phasenströme und transformiere die drei Ströme in das Statorfeste Koordinatensystem (KS). Danach ins Rotor-KS und erhalte die Ströme in d und q Richtung. Nun möchte ich den Strom Id und Iq mit einem PI Regler regeln. In den ganzen Bildern die ich so finde, schicken die ein Strom rein und bekommen eine Spannung raus. Aus dieser bilden die dann die notwendigen Strangspannungen die für die Raumzeigermodulation notwendig sind und daraus das PWM Ausgangssignal. Meine Frage ist nun also: Der Parameter Kp ist doch dimensionslos oder? Wie aber komme ich von einem Strom zur Spannung? Einfach wie oben erwähnt mit dem Widerstand? Da ich hier keine Antwort gefunden habe, bin ich anders vorgegangen aber dennoch würde ich das gerne verstehen. Ich habe einfach die Werte Normiert, sodass meine Soll, Ist und Stellgröße zwischen 0 und 1 liegt. Grüße Bana
>Das ganze ist wohl weniger ein FPGA-Thema, als ein Modell-Thema.
Ja, Für sowas reicht norm. schon ein schnellerer uC (evtl mit DSP) aus.
Bana schrieb: > Meine Frage ist nun also: Der Parameter Kp ist doch dimensionslos oder? > Wie aber komme ich von einem Strom zur Spannung? Einfach wie oben > erwähnt mit dem Widerstand? Kp ist dimensionslos. Systemtheoretisch betrachtet ist der gesamte Regler dimensionslos. Physikalisch hast du mit dem Motor allerdings ein System welches als Eingang einen Spannungsvektor und als Ausgang einen Stromvektor hat. Daher musst du in deiner Schleife die Einheiten dazu passend wählen. Bei Auslegung der Schleife werden solche Faktoren allerdings oft in Kp absorbiert, die Einheit dabei stillschweigend ignoriert weil sie keinen Mehrwert hat. Bana schrieb: > Ich habe einfach die Werte Normiert, sodass meine Soll, Ist und > Stellgröße zwischen 0 und 1 liegt. Da musst du natürlich aufpassen was dein Umrichter für Eingangswerte erwartet. Einfach normieren verändert die Verstärkung. Peter M. schrieb: > frage ist ob man die einheiten > im code auch irgendwie implementieren muss? Nein. Im Modell kommen sie vor allerdings nicht mehr in der numerischen Implementierung. Solange deine Reglerkonstanten richtig sind passt das. Jürgen S. schrieb: > Wenn Du jetzt im threadthema "feldorientiert" schreibst, würde ich > sagen, dass Deine innerste Regelgösse wohl das Feld sein soll (?). Und > damit hättest Du gfs ein Recherpowerproblem. Das rechenaufwändigste ist die Park-Transformation. Mit ein paar Lookuptables kann das sogar ein AVR erledigen.
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.