WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Simulation Inverses Pendel

 

Calle
Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.06.2013, 09:45     Titel: Simulation Inverses Pendel
  Antworten mit Zitat      
Hallo,
ich habe ein Problem bei der Simulation eines Inversen Pendels. Leider benutze ich dazu nicht Simulink, sondern BORIS von WinFACT.
Ich habe die gleichungen
Wagen:
M\cdot \ddot x(t)+b_{w} \cdot \dot x(t)+F_{r}\cdot sign(\dot x(t))-m_{p}\cdot \dot \varphi(t)^2\cdot d\cdot sin(\varphi(t))+m_{p} \cdot \ddot \varphi(t)*d*cos(\varphi(t))=F(t)
und
Pendel:
J_{p} \cdot \ddot \varphi(t)=m_{p} \cdot g\cdot d\cdot sin(\varphi(t))-m_{p} \cdot \ddot x(t)\cdot d\cdot cos(\varphi(t))-b_{p} \cdot \dot \varphi(t)-M_{r}\cdot sign(\dot \varphi(t))

wobei:
M=Masse vom Wagen plus Masse vom Pendel =5,936kg
b_{w}=Reibung vom Wagen =14N/m/s
F_{r}= Haftreibung vom Wagen =14,5N
m_{p}=Masse vom Pendel =0,336kg
d=Länge vom Drehpunkt bis zum Schwerepunkt des Pendels =0,47m
g=Erdbeschleunigung =9,81 m/s^2
J=Massenträgheitsmoment (inklusive Steiner Anteil) Pendel = 0,0075kgm^2
b_{p}=Reibung vom Pendel =0.0022689Nm/grad/s
M_{r}=Haftreibung vom Pendel =0,0044Nm

Dies habe ich als Blockschaltbild aufgebaut. Da es dabei zu einer algebraischen schleife kam, habe ich nach der Kraft, welche vom Pendel auf den Wagen geht, ein Einheitsverzögerungsblock/Unitdelay gemacht.

Nun lasse ich das ganze simulieren
Startbedingungen
\ddot x, \dot x, x, \ddot \varphi, \dot \varphi=0
phi=180° (Pendel hängt nach unten durch)

Als Kraftanregung gebe ich für 0,5 Sekunden eine Kraft von 46,4 N (Siehe Bild 2)

Gebe ich nun als Anfangsbedungung noch für phi den Winkel 0° ein, steht das Pendel senkrecht auf den Wagen. Wenn nun eine Kraftanregung kommt, beginnt der Wagen loszufahren und das Pedel fällt herunter und schwingt sich auf 180° wieder ein.
Wieso macht die Simulation so etwas komisches (Siehe Bild 1)

Eine andere Frage wäre noch über die Differentialgleichungen.
Meiner meinung nach sind diese richtig, da diese auch mit mehreren Internetquellen übereinstimmen.
Wenn ich jetzt aber auf den Wagen keinen Impuls, sondern einen Sprung geben würde (von 0N auf 4N) und das dann für unendlich lange zeit laufen lasse, wird der Weg vom Wagen ja unendlich. Allerdings (das was ich nciht verstehe) Pendelt sich das Pendel auf 180° ein, da die Auslenkung nur von der Beschleunigung des Wagens abhängig ist. Dies macht aber nicht so richtig sinn oder? Also meiner Meinung nach, sollte es schwingen, aber dann auf einen Winkel, welcher abhängig von der Geschwindikeit des Wagens ist, stehen bleiben.

Hoffe, dass mir einer Hinweise dazu geben kann.

Gruß
Calle

Im Anhang habe ich die Bilder der Simulation, sowie die Simulationsdatein für BORIS von WinFACT

regelstrecke.rar
 Beschreibung:
WinFACT - BORIS
Simulationsdatei

Download
 Dateiname:  regelstrecke.rar
 Dateigröße:  1.45 KB
 Heruntergeladen:  566 mal
phi(t=0)=0grad.jpg
 Beschreibung:
Weg des Wagens und Pendelschwingung für phi(t=0)=0grad (obere lage)

Download
 Dateiname:  phi(t=0)=0grad.jpg
 Dateigröße:  262.89 KB
 Heruntergeladen:  1409 mal
phi(t=0)=180grad.jpg
 Beschreibung:
Weg des Wagens und Pendelschwingung für phi(t=0)=180grad (untere lage)

Download
 Dateiname:  phi(t=0)=180grad.jpg
 Dateigröße:  160.15 KB
 Heruntergeladen:  1297 mal
Private Nachricht senden Benutzer-Profile anzeigen


RiFLoK
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 26.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2013, 00:04     Titel:
  Antworten mit Zitat      
Hi

Zu deiner 2. Frage, ob es sinn macht, dass sich das Pendel auf 180 grad einpendelt, wenn sich der wagen bewegt:

Das macht Sinn. Der Winkel hängt nur von der Beschleunigung ab. Da du eine konstante Kraft aufbringst wird der wagen beschleunigt solange, bis die Reibung gleich der Antriebskraft ist. Ab diesem Zeitpunkt ist die Beschleunigung 0. D.h. das Pendel pendelt sich auf 180 grad ein.

Lg, Rif
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2013, 08:50     Titel:
  Antworten mit Zitat      
erst einmal danke für deine Antwort.
Es ist zwar meiner meinung nach komisch, aber ich werde es mal wohl so hinnehmen müssen. (Laut der DGL kommt ja auch so etwas heraus, aber meines erachtens müsste die Auslenkung auch von der Geschwindigkeit abhängig sein (Es ist für mich schwer vorstellbar, dass das Pendel bei langer Fahrt des Wagens nach unten durchhängt))

Mein größeres Problem ist aber, ob die DGL so richtig sind? Trenne ich den Term (mit der Beschleunigung des Wagens) von der Antreibenden Kraft des Pendels und gebe den Pendel einen Anfangswinkel von 20grad (0grad ist obere lage), dann fällt es herunter und schwingt sich auf 180 grad ein. Der weg des Wagens macht auch eine Bewegung (allerdings sehr große), sodass ich vermute, dass dort etwas nciht stimmt oder mit dem Time-Delay-Block.

wäre weiterhin über jeden hinweis dankbar.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
RiFLoK
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 26.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2013, 13:14     Titel:
  Antworten mit Zitat      
Das Pendel würde nur eine Geschwindigkeitsabhängigkeit haben bei konstanter Geschwindigkeit, wenn du einen luftwiderstand berücksichtigen würdest.

Dass der Wagen eine Bewegung beim Einpendeln macht, ist auch klar.
Was meinst du mit sehr großer Bewegung??

Lg, Rif
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2013, 16:05     Titel:
  Antworten mit Zitat      
Ja, den Luftwiderstand habe ich völlig vernachlässigt. Das wäre dann auch der Term mit der Wagengeschwindigkeit. Diese lasse ich jetzt aber zunächst erstmal weg.

Den Fehler aus meinem ersten Beitrag habe ich behoben. Es war einfach nur verwechslung von den Winkel in rad und in grad.

Habe das Modell auch einmal in Simulink aufgebatu (eigentlich genau so wie in BORIS), allerdings kann ich es in Simulink nur fehlerhaft simulieren.
Wenn ihc es für 25s simuliere, kommt beim wagen ein signal, jedoch erst ab 17sekunden (davor gar ncihts). Beim Pendel ebenfalls erst ab 17 Sekunden und geht einfach hoch ins unendliche.

Hier denke ich, dass es an der Signumfunktion liegt. Da gab es zunächst Fehler und daraufhin habe ich in den Signumfunktionen 'Enable zero-crossing detection' deaktiviert.

vielleicht weiss da ja jemand woran es liegt?

Parameter.m
 Beschreibung:
Parameter für das Simulink Modell

Download
 Dateiname:  Parameter.m
 Dateigröße:  499 Bytes
 Heruntergeladen:  662 mal
Regelstrecke.mdl
 Beschreibung:
Simulink Modell - Inverses Pendel

Download
 Dateiname:  Regelstrecke.mdl
 Dateigröße:  42.37 KB
 Heruntergeladen:  739 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
RiFLoK
Forum-Anfänger

Forum-Anfänger


Beiträge: 36
Anmeldedatum: 26.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.06.2013, 20:22     Titel:
  Antworten mit Zitat      
Um nicht nur die letzten 5000 berechneten Werte zu sehen musst du im Scope fenster -> Parameters -> History -> dann das häkchen bei limit data points weg machen.

Lg, Tobi
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.06.2013, 08:35     Titel:
  Antworten mit Zitat      
ah ja, jetzt zeigt er alles an. Warum hat der das denn so eingestellt? Ich habe eigentlich nichts geändert.
Wenn ich es jetzt simuliere, bleibt er hängen und gibt die ganze zeit folgende meldung heraus:

Warning: Unable to reduce the step size without violating minimum step size of 6.2839540424718341E-15 for 1 consecutive times at time 1.7687758177556365. Continuing simulation with the step size restricted to 6.2839540424718341E-15 and using an effective relative error tolerance of 0.0024134524220747, which is greater than the specified relative error tolerance of 0.001. This usually may be caused by the high stiffness of the system. Please check the model 'modular_sim_tester' or increase the Max consecutive min step size violation parameter in the solver configuration panel.

Lasse ich das ganze allerdings mit ode15s solver simulieren, benötigt er zwar ein bisschen zeit, bekommt es aber ohne fehlermeldung hin.
Darf ich das machen? Da ich nciht genau weiss, was die verschiedenen solvers machen (ich denke mal einfach nur andrer rechenweg). oder mache ich dabei etwas, was ich nicht machen dürfte?

Wenn ich allerdings einen startwinkel von 0.35 rad vorgebe, benötigt er Jahre. Wenn ich einen Startwinkel von 3.1415 vorgebe (was bedeutet, dass sich das Pendel in der unteren lage befindet) bekomme ich die Fehlermeldung

Nonlinear iteration is not converging with step size reduce to hmin at time ..... Try reducing the minimum step size and/or relax the relative error torelance

Jetzt habe ich die schrittweite auf Fixed-step (auf 0,001) gestellt und den solver auf ode3.

ist das auch noch richtig?

Gruß

Ps.: Also da muss ich sagen, ist winfact wesentlich freundlicher, da hatte ich noch nie solche Probleme
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2013, 10:56     Titel:
  Antworten mit Zitat      
Ich habe da doch noch einmal eine Frage.
Die Simulation habe ich fertig gestellt. Die Regelung möchte ich mit FUZZY machen. Mein Problem ist nun eine Störgröße einzubringen.
Die Störgröße kommt natürlich erst, wenn das Pendel senkrecht steht. Die STörgröße soll eine kleine (manuelle) Auslenkung des Pendels sein, indem ich am obersten punkt einmal dran titsche.
Nun ist meine überlegung, wie ich das einbringe.
Ich habe eine Auslenkung und dividiere diese durch die länge des Stabes, so dass ich den Winkel in rad bekomme. diesen Addiere ich den momentanen Winkel hinzu und das Pendel fällt herunter und schingt sich aus. Wo ich mir nun unsicher bin, ist bei der länge der störung. Muss ich da einen Sprung nehmen (also die ganze zeit die Auslenkung?) Oder nur einen Impuls (Wenn impuls, wie lange?)
Eigentlich drücke ich ja nur ganz kurz und lasse dann wieder los (also impuls) aber bei der simulation geht der impuls ja wieder auf null, als ob ich das pendel wieder auf null zurück ziehen würde (was aber in der simulation nicht passiert)
Ich kann mir das auch bildlich nicht wirklcih vorstellen, was ich da nehmen müsste, da sowohl beim sprung, als auch beim impuls das pendel herunterfällt.

Wie sollte man also am besten die Störung einbringen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Calle
Themenstarter

Forum-Century

Forum-Century


Beiträge: 145
Anmeldedatum: 08.02.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2013, 13:30     Titel:
  Antworten mit Zitat      
Hat sich erledigt, habe es anders gelöst.
Habe als störgröße keinen weg angenommen, sondern eine Kraft, mit der ich das Pendel anstosse. Ist zwar schwieriger für mich vorzustellen, wie feste jetzt z.B. 1 N sind, aber es ist sinnvoller. Das andere wäre auch fehlerhaft, da scih der weg ja sowieso nicht sprunghaft ändern kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.