- LiFePO4 Speicher Test         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 27 von 27

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

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

    E-Bike
    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 ?

  2. #22
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Zitat Zitat von Mikkel
    Die DGL von der PT1 Strecke ist doch: T*x'+x=K*U ?
    Richtig!
    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

  3. #23
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    11
    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 ?

  4. #24
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    Zitat Zitat von Mikkel
    Der Motorregler verlangt einen PWM Wert.
    Ok dann bleibt es bei der nichtlinearen Umsetzung von Ansteuerung zu Drehzahl.

    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

  5. #25
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    11
    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 ?

  6. #26
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    16.05.2005
    Beiträge
    734
    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

  7. #27
    Neuer Benutzer Öfters hier
    Registriert seit
    19.02.2006
    Beiträge
    11
    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.

Seite 3 von 3 ErsteErste 123

Berechtigungen

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

Solar Speicher und Akkus Tests