- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: DC Motor simulieren (Matlab/Simulink)?!

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    11
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Jetzt bin ich vollends verwirrt.

    Ich fasse mal zusammen was ich verstanden / nicht verstanden habe.

    Ich möchte das verhalten eines Brushless Motors der mit einer Luftschraube belastet ist in Matlab / Simulink simulieren. Es liegen mir keine Motorparameter wie R, L, C, J oder b vor. Deshalb habe ich zwei Messreihen mit montierter Luftschraube aufgestellt.

    1. Einen Sprung auf den Eingang gegeben und die Drehzahl und Zeit gemessen.

    2. Ein Sinussignal auf den Eingang gegeben und wieder die Drehzahl und die Zeit gemessen. Diese Messung habe ich für mehrere Frequenzen wiederholt, in der Hoffnung das Frequenzverhalten ermitteln zu können.

    Der Motor läßt sich in vereinfachter Form als PT1 Strecke betrachten.
    Deshalb hat NRicola die Formel U=(Umax-U0) * [1-exp(-t/τ)]+U0 eingebracht. Diese Formel beschreibt die Drehzahl der Luftschraube im Zeitbereich. Die Parameter Umax, Uo und t lassen sich aus der Grafik von Messung 1. ermitteln. In diese Gleichung geht aber noch nicht das Verhalten aus Messung 2. ein.

    Von Waste kam nun eine neue Gleichung K/(T*s+1) diese Beschreibt das Verhalten des Motors im Frequenzbereich. In diese Formel geht aber noch nicht die Zeitkonstante der Induktivität mit ein. Weiterhin ist die Reibung vernachlässigt. Die Parameter K und T bestimmt man auch hier aus Messreihe 1. Ist das richtig ? Auch hier ist das Verhalten aus Messreihe 2. noch nicht berücksichtigt ?

    Eine andere Möglichkeit die Übertragungfunktion zu erhalten wäre, die fehlenden Motorparameter J, R, L, C und b über weitere Messungen zu ermitteln. Mit diesen Werten könnte man über eine DGL das den Motor modellieren.

    Was mir nun gar nicht klar ist:
    Bisher ging noch nirgends die Messreihe 2. ein. Irgendwie muss ich doch das Frequenzverhalten aus den Messdaten modellieren können ? Warum muss ich die fehlenden Motorparameter noch einzeln messen ? In meine bisherige Messung gingen diese Werte doch schon ein. Ich kann zwar nicht sagen welcher Parameter das Verhalten wie stark beeinflusst hat, aber in der Summe sind sie doch enthalten ? Warum muss ich den Motor ohne Luftschraube messen ? Kann ich die Motorreibung im Vergleich zu der Luftschraube nicht vernachlässigen, oder hat das noch einen anderen Grund ? Was wären jetzt die nötigen Messungen um den Motor mit montierter Luftschraube korrekt modellieren zu können ?

    @Waste: Bilder kannst du hier prima hochladen: http://www.bilder-hosting.de/upload.html

  2. #12
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.098
    Wenn Du den Motor nur ein und ausschaltest und die Verzögerung bestimmen möchtest wird es wohl reichen den Vorgang aufzunehmen und in der Simulation wieder abzurufen.
    Wenn klar ist was die Simulation leisten soll dann läßt sich eine Beschreibung finden.

    Erreichen des Sollwertes mit Verzögerung durch Zeitkonstante ist eine einfache Beschreibung. Ist die Zeitkonstante vom Endwert unabhängig?
    Manfred

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    11
    @Manf
    Die Zeitkonstante nicht ganz unabhängig. Mir würde es aber im ersten Schritt reichen überhaupt eine passende Übertragungsfunktion zu haben. Die Änderung in der Zeitkonstanten ist nur minimal, das könnte ich verschmerzen wenn es nicht modelliert wird.

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    @Mikkel

    Ich habe das Bild in meinem obigen Beitrag ergänzt.

    Zitat Zitat von Mikkel
    Von Waste kam nun eine neue Gleichung K/(T*s+1) diese Beschreibt das Verhalten des Motors im Frequenzbereich. In diese Formel geht aber noch nicht die Zeitkonstante der Induktivität mit ein. Weiterhin ist die Reibung vernachlässigt. Die Parameter K und T bestimmt man auch hier aus Messreihe 1. Ist das richtig ? Auch hier ist das Verhalten aus Messreihe 2. noch nicht berücksichtigt ?
    Die Übertragungsfunktion beschreibt das Verhalten sowohl im Zeit- als auch im Frequenzbereich. Du brauchst die Funktion nur in Matlab eingeben und kannst dann die Sprungfunktion ausgeben lassen oder auch das Bodediagramm. Die 2. Messreihe wird also nicht direkt gebraucht, du kannst sie aber zur Überprüfung hernehmen. Entweder im Bodediagramm die Dämpfung und Phase bei 2Hz überprüfen oder im Zeitbereich mit 2Hz stimulieren und das Ausgangssignal vergleichen.

    Für die zusätzliche Berücksichtigung der Induktivität habe ich auch eine Funktion angegeben, aber fang erst mal mit der einfachen Version an, sonst löst sich die Verwirrung nie auf.

    Das Problem für die Simulation in Matlab ist die Luftschraube, die macht das System nichtlinear. Die Sprungfunktion ist keine e-Funktion mehr, da die Last quadratisch mit der Drehzahl steigt. Der Unterschied ist allerdings nur geringfügig. Dafür bietet sich die Simulation in Simulink an, da kann man auch nichtlinear simulieren. Füge vor dem -1/T-Block in meinem Scicosmodell im Rückkoppelzweig noch einen Quadrierer ein, dann ist das Modell für eine Luftschraube näherungsweise gültig. Die Reibverluste des Motors sind aber vernachlässigt.

    Übrigens, wenn die Last verändert wird, ändert sich die Zeitkonstante fast gar nicht, nur die Enddrehzahl variiert.

    Waste

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    12.06.2005
    Ort
    Südwestdeutschland
    Beiträge
    1.147
    Blog-Einträge
    3
    Zitat:
    Ohje, ich habe meine maximale Upload Quota Grenze von 1 MB erreicht. Kann scheinbar keine Bilder mehr anhängen. Manfred, kannst du mir helfen?

    Manchmal hilft es die Bilder nicht so groß zu machen dan rutschen sie noch durch, sonst die pers. Gallery nehmen.
    Ist mir auch vor kuzem erst passiert. Ich finde das sehr ärgerlich, vor allen Dingen, weil man das am Amfang gar nicht weis.
    Gerade die Threads von waste stellen ja einen echten Mehrwert im Roboternetz dar. Sie sind ja sehr gut als Nachschlagewerk geeignet. Eigentlich sollte man pro Jahr ein MB mehr bekommen, das wäre ein sinnvolle Regelung.

    Gruss,
    stochri

  6. #16
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.098
    Ich habe es weitergegeben und Suche auch mit nach Lösungen, es gibt Ansätze. Gute Bilder sind wichtig.
    Manfred

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Hallo Mikkel,

    für eine gezieltere Hilfe wäre es sinnvoll, wenn du mir Näheres zu deinem Vorhaben erklären könntest.
    Für was willst du das Simulationsmodell verwenden?
    Ein Brushless-Motor braucht einen spez. Regler, der Motor läuft ja nicht mit Gleichspannung. Soll der Regler auch simuliert werden, oder alles (Regler, Motor und Luftschraube) in einen Block? Willst du später verschiedene Luftschrauben testen, dann sollte die Luftschraube extra simuliert werden.
    Hast du schon Erfahrung mit Matlab/Simulink? Wenn nicht, dann könntest auch mit Scilab/Scicos loslegen, da könnte ich dir dann den Code direkt vorgeben. Allerdings wäre dann der Lernerfolg durch das einfache "copy and paste" nicht mehr so gegeben.
    Wie sind deine theoretischen Vorkenntnisse? Ist dir der Ausdruck "s" in der Übertragungsfunktion ein Begriff?

    Waste

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    11
    Hi Waste !
    Mit dem Simulationsmodell möchte ich später den Regler für ein X-Ufo auslegen. Sowas bauen hier ja schon einige wie ich gesehen habe. Die 6-Dof Simulation habe ich schon und das klappt auch schon halbwegs. Was mir jetzt noch fehlt ist ein Modell des Antriebs.
    Mittlerweile habe ich schon die ein oder andere Erfahrung mit Matlab gesammelt, deswegen würde ich gerne dabei bleiben. Im Grunde würde mir das Streckenmodell Regler + Motor + Luftschraube reichen. Ich denke einzeln brauch ich das nicht unbedingt aufschlüsseln ? Hast du da evt eine gute Idee ?
    Mittlerweile habe ich deine Gleichung K/(T*s+1) in Matlab ausprobiert und siehe da das passt auch in etwa mit der Messung überein )
    Die Gleichung K/(T*s+1) ist doch die Laplace Transformation der PT1 DGL oder ? Wenn ich das noch richtig in Erinnerung habe transformiert man damit die Gleichung vom Zeit in den Frequenzbereich. Somit erspart man sich das Differenzieren bzw das Differenzieren im Zeit wird zur Multiplikation im Frequenzbereich ?
    Ich fände es eigentlich ganz spannend wenn wir mal, quasi zur Übung, die Luftschraube extra simulieren würden. Also eine Überlegung angefangen von den physikalischen Grundlagen, aufstellen der DGL, aufnehmen von Messwerten bis hin zum Matlab Modell. Ok du hast sicher noch was anderes zu tun, aber evt schüttelst du dir das ja mal so eben aus dem Ärmel

    Im Anhang habe ich den Simulink Aufbau:

    Bild hier  

    Der obere Teil ist die Laplace Funktion. Im unteren Teil habe ich versucht die PT1 DGL nachzubilden. Ist das so korrekt ?

    gruss
    mikkel

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Zitat Zitat von Mikkel
    Im Grunde würde mir das Streckenmodell Regler + Motor + Luftschraube reichen.
    Das geht, und hat auch den Vorteil, dass die Nichtlinearität der Drehzahl durch die Luftschraube wegfällt. Ich gehe davon aus, dass man dem Regler eine Dehzahl vorgibt und die dann eingestellt wird. Allerdings weiß ich nicht genau, was der Regler dynamisch macht, aber gehen wir einmal davon aus, dass der gesamte Block näherungsweise ein PT1-Glied bleibt. Dann kannst du den Block mit der Übertragungsfunktion in Simulink nehmen.
    Mittlerweile habe ich deine Gleichung K/(T*s+1) in Matlab ausprobiert und siehe da das passt auch in etwa mit der Messung überein
    Sehr gut! In deinem Fall mit dem gesamten Block (Regler, Motor und Luftschraube) wäre dann K=1, wenn man die Drehzahl direkt vorgeben kann. Die Zeitkonstante T müsstest du so anpassen, dass es mit den Messungen übereinstimmt.
    Ich fände es eigentlich ganz spannend wenn wir mal, quasi zur Übung, die Luftschraube extra simulieren würden.
    Das heben wir uns für später auf.

    Im Simulink-Blockschaltbild ist der obere Block mit der Übertragungsfunktion richtig. Ich lese daraus K=0.98 und T=0.15.
    Der untere Teil stimmt nicht. Nimm einfach mein Scicos-Bild als Vorlage.

    So, jetzt kommt Fussball, komm später wieder.

    Waste

  10. #20
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Nun zu der Umsetzung der DGL x''=(K/T)*U -(1/T)*x' in ein Simulationsmodell.
    Begriffserklärung:
    x' = Geschwindigkeit bei Translation oder Winkelgeschwindigkeit bei Rotation
    x'' = Beschleunigung bzw. Winkelbeschleunigung (Ableitung von x')
    U = Eingangsgröße z.B. Spannung
    K = Übertragungsmaß
    T = Zeitkonstante

    In folgenden Bild sind x'' und x' eingezeichnet. Wenn x'' die Ableitung von x' ist, dann ist umgekehrt x' das Integral von x''. Der linke Eingang entspricht U.
    Bild hier  
    Man kann sehr schön die DGL nachvollziehen:
    x'' = U*K/T + (-1/T)*x'

    Wenn du das in Simulink nachbaust und für K=0.98 und T=0.15 einsetzst, dann sollte das gleiche wie bei deinem oberen Block mit der Übertragungsfunktion herauskommen.

    Waste

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests