Das kann ich nachvollziehen wie du aus der DGL das Simulationsmodell erzeugt hast. Was mir aber nicht klar ist, wie du auf die DGL kommst. Die DGL von der PT1 Strecke ist doch: T*x'+x=K*U ?
Druckbare Version
Das kann ich nachvollziehen wie du aus der DGL das Simulationsmodell erzeugt hast. Was mir aber nicht klar ist, wie du auf die DGL kommst. Die DGL von der PT1 Strecke ist doch: T*x'+x=K*U ?
Richtig!Zitat:
Zitat von Mikkel
Stell jetzt einfach die Gleichung nach x' um, das ergibt:
x' = K/T*U - x/T
Wenn man jetzt in meinem Bild x'' durch x' und x' durch x ersetzt, ist hoffentlich die Welt wieder in Ordnung.
Ich habe aus Bequemlichkeit das Bild aus einem größeren Blockschaltbild herauskopiert. In dem Gesamtbild ist nämlich auch noch die Position (Weg) als Variable x vorhanden. Ich war zu faul das mit x und x' neu zu zeichnen.
Entschuldige, wenn das verwirrt hat.
Übrigens, willst du nicht auch noch den Schub simulieren?
Waste
Ahhh ok, ich habe die ganze Zeit versucht die DGL nocheinmal zu differenzieren, da kommt natürlich Müll bei raus. Ok habs verstanden.
Mein Regler kommandiert einen Schubwert. Der Motorregler verlangt einen PWM Wert. Jetzt habe ich mir einfach die Funktion PWM = f( Schub ) ausgemessen. Ich könnte jetzt noch eine Funktion Schub = f( Rpm ) oder Schub = f( PWM ) aufstellen.
Wie würdest du den Schub simulieren ?
Ok dann bleibt es bei der nichtlinearen Umsetzung von Ansteuerung zu Drehzahl.Zitat:
Zitat von Mikkel
Hier der Signalflussplan, so wie ich ihn mir vorstelle:
Bild hier
Der Schub ist auch schon berücksichtigt.
Da sowohl das aufzubringende Drehmoment als auch der Schub quadratisch mit der Drehzahl steigen, ist der Quadrierer mit dem Block u^a eingefügt. In der Rückkopplung muss der durch die Quadrierung zu hohe Wert korrigiert werden. Ich habe das mit der Konstanten K gemacht, die gilt aber nur, wenn die Ansteuerung den Endwert 1 hat (100% PWM = 1). Die Konstante KL für den Schub müsstest du experimentell heraus finden.
Nach diesem Schaltbild wäre der Schub proportional zur PWM, wenn man mal die Verluste durch Gleitreibung vernachlässigt. Die Drehzahl allerdings entsprechend dem folgenden Bild nichtlinear zur PWM. Vielleicht kannst du das durch Messungen bestätigen. Wenn nicht, dann müssen wir noch mal nachbessern.
Bild hier
Waste
Hi Waste,
ich habe erstmal die Messung PWM zu RPM durchgeführt.
Bild hier
Das sieht in etwas so aus wie du es erwartet hast.
Die Zweite Messung ist PWM zu Schub.
Bild hier
Das ist nicht so ganz proportional.
Ich habe jetzt die ursprüngliche Schaltung erweitert:
Bild hier
Die beiden Polynome sind Approximationen aus der Messung. Damit rechne ich von PWM in RPM und von RPM in Schub um. Das passt eigentlich ganz gut mit den Messwerten überein. Was hälst du davon ?
Ah, ich verstehe. Mit der PT1-Nachbildung simulierst du die Verzögerung und mit den P(u)-Blöcken die Nichtlinearität. Ja, das sollte so gehen.
Da du die Messung PWM zu Schub schon hast, könntest auch direkt einen Block mit PWM_to_Force nehmen.
Vielleicht gibt es bei Simulink auch einen Block wie bei Scicos, in den man mit der Maus eine Funktion stückweise eintragen kann. Dann brauchst nicht mühsam die Polynome ermitteln, sondern einfach den Graph deiner Messung stückweise übernehmen.
Waste
Hi Waste,
ich habe deinen Vorschlag umgesetzt und jetzt nur noch einen P(u) Block der direkt von PWM in Schub umrechnet. Ob es bei Simulink so einen Block gibt weiss ich nicht. Aber dieser P(u) Block ist auch sehr einfach zu benutzen. Ich kann direkt eine Approximation meiner Messkurve machen, die Koeffiziente in einem Vector speichern, und den Vector Namen dem P(u) Block übergeben.