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

Skriptgesteuerte Simulierung einer DGL

 

Wagma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2020, 13:44     Titel: Skriptgesteuerte Simulierung einer DGL
  Antworten mit Zitat      
Guten Tag an das Forum hier,

ich beschäftige mich momentan als kompletter Neuling mit Matlab und Simulink.
Jetzt habe ich eine Aufgabe bei der ich etwas Unterstützung gebrauchen könnte.
Es geht dabei um folgendes:

Ich soll eine skriptgesteuerte Simulink Simulation erstellen, um eine DGL zu lösen und als Graph anschließend darzustellen.

Ich hab schon verstanden, dass man sowohl ein Skript über Matlab schreiben muss, als auch ein Modell bei Simulink erstellen muss. Beides zusammen bildet dann die Simulation.
Das Skript habe ich nun schon zu einem Teil erstellt.
Die DGL allerdings bei Simulink zu modellieren, fällt mir sehr schwer bzw. ich weiß nicht wie ich da vorzugehen habe. Es erscheint mir doch alles sehr abstrakt.

Daher frage ich hier jetzt nach etwas Unterstützung und Hilfestellungen.

Vielen Dank schon mal an dieser Stelle Smile

Aufgabe 1b Skript.JPG
 Beschreibung:

Download
 Dateiname:  Aufgabe 1b Skript.JPG
 Dateigröße:  65.56 KB
 Heruntergeladen:  684 mal
Aufgabe1b DGL.JPG
 Beschreibung:

Download
 Dateiname:  Aufgabe1b DGL.JPG
 Dateigröße:  30.84 KB
 Heruntergeladen:  650 mal


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2020, 13:57     Titel:
  Antworten mit Zitat      
Hallo,

die Gleichung sieht etwas merkwürdig aus: V soll ein Integral von sich selbst sein??

Zum Einstieg würde ich das Simulink Onramp empfehlen.
https://www.mathworks.com/learn/tutorials/simulink-onramp.html

In MATLAB darauf achten, konsequent Punkt als Dezimaltrennzeichen zu verwenden.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Wagma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2020, 14:07     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

die Gleichung sieht etwas merkwürdig aus: V soll ein Integral von sich selbst sein??

Zum Einstieg würde ich das Simulink Onramp empfehlen.
https://www.mathworks.com/learn/tutorials/simulink-onramp.html

In MATLAB darauf achten, konsequent Punkt als Dezimaltrennzeichen zu verwenden.

Grüße,
Harald


Tatsächlich ist das auch ein Punkt der mich sehr verwirrt, der Teil mit dem V(t')dt'...

Deine Empfehlung werde ich mir mal ansehen, danke.

Und ja stimmt, habe tatsächlich ständig das Komma gebraucht bei den Werten, hab ich sofort korrigiert jetzt. Danke Smile

Falls es weitere Hinweise gibt, gern her damit. Smile
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.02.2020, 14:09     Titel:
  Antworten mit Zitat      
Hallo,

wenn mal klar ist, was unter dem Integral steht, ist es an sich kein Problem mehr: das V in einen Integrator-Block schieben und gut.
Was den Ausdruck unter dem Integral angeht, vielleicht mal den Aufgabensteller kontaktieren?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Wagma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.02.2020, 23:41     Titel:
  Antworten mit Zitat      
Also der Aufgabensteller sagt folgendes dazu:
"Die Striche kommen daher, da man ja nicht eine Integrationsgrenze t haben kann und gleichzeitig über die Integrationsvariable t integrieren kann. Anstelle von t' hätte man auch einfach einen anderen Variablennamen nehmen können."

Ich habe einfach mal etwas rumprobiert in Simulink, um das Modell zu erstellen, aber es stellen sich mir so viele Fragen.

Ich verstehe nicht wirklich, in welcher Reihenfolge man so ein Modell aufbauen sollte, also womit beginne ich überhaupt.

Ich könnte mir beispielweise vorstellen am Ende das V(t) ausgegeben werden soll. Dementsprechend müsste es rückgekoppelt werden mit einem Integrator-Block und das ganze nochmal multipliziert werden mit dem Quotienten Q/mRsT?

Irgendwo dazwischen müsste noch das V(0) addiert werden und brauche ich eine Clock?

Und eigentlich möchte ich in den Blöcken auch gar keine Zahlen, sondern nur die Variablen eingeben, damit man die einzelnen Werte später bei Bedarf nur noch über das Skript ändern müsste, allerdings zeigt er mir da auch eine Fehlermeldung an... Ich mach das wohl irgendwie falsch Sad
Man merkt, der richtige Durchblick fehlt mir noch :S
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.02.2020, 09:16     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist für mich weniger die Verwendung von t' statt t als die doppelte Verwendung von V.

Zitat:
Ich verstehe nicht wirklich, in welcher Reihenfolge man so ein Modell aufbauen sollte, also womit beginne ich überhaupt.

Bei Differenzialgleichungen am besten
1. Integratoren mit beschrifteten Ein- und Ausgängen
2. Die Eingänge der Integratoren schrittweise aus den Gleichungen konstruieren

Eine Clock brauchst du nur, wenn es eine explizite Zeitabhängigkeit, z.B. durch eine externe Anregung, gibt.

Zitat:
Und eigentlich möchte ich in den Blöcken auch gar keine Zahlen, sondern nur die Variablen eingeben, damit man die einzelnen Werte später bei Bedarf nur noch über das Skript ändern müsste

Wenn die Variablen definiert werden, bevor die Simulation ausgeführt wird, ist das kein Problem.

Zitat:
allerdings zeigt er mir da auch eine Fehlermeldung an

Und die lautet wie?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Wagma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2020, 11:22     Titel:
  Antworten mit Zitat      
Also, habe da erneut nachgehakt und mir wurde folgendes gesagt: In Simulink programmiert man das einfach, indem man einen Integrator Block mit sich selbst verbindet bzw. hier muss ja noch mal etwas multipliziert werden und addiert werden.

Demenstprechend habe ich einen ersten Versuch gestartet die DGL in Simulink zu modellieren.
Ich krieg das aber nicht ganz hin, den Output, also das V(t) über den workspace auszugeben (simout). An welcher Stelle müsste ich eine Abzweigung schaffen, bzw. wie macht man das?
Und die Variablen aus dem Script einzufügen (dafür wollte ich den simin Block nutzen).

Simulink Modell.JPG
 Beschreibung:

Download
 Dateiname:  Simulink Modell.JPG
 Dateigröße:  40.52 KB
 Heruntergeladen:  679 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2020, 13:11     Titel:
  Antworten mit Zitat      
Hallo,

für die Verzweigung mit Rechtsklick von der Signallinie weg ziehen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Wagma

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.02.2020, 17:53     Titel:
  Antworten mit Zitat      
Spielt es denn eine Rolle wo ich genau die Verzweigung für das simin und simout setze?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.02.2020, 18:08     Titel:
  Antworten mit Zitat      
Hallo,

ja. Der simout-Block übernimmt das Signal, das du hineinführst. Wenn du ein anderes Signal hineinführst, bekommst du andere Ergebnisse. Klingt irgendwo logisch, oder?

Die Variablen werden einfach übernommen. Ein simin wird dafür nicht benötigt.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
brau.m80
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 10.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2020, 08:01     Titel:
  Antworten mit Zitat      
Hallo zusammen, ich hänge als Neuling auch an der gleichen Aufgabe....
Ich habe den Code so ähnlich wie oben schon angegeben und habe mit Simulink herumgespielt.
Aber irgendwie kommt da kein Graph raus.
Und wie füge ich m ein, da dieses ja im Script nicht definiert wird.
Benötige ich denn überhaupt die Clock?

Wäre toll, wenn mir jemand Hilfestellung geben könnte.
Anbei meine Lösungsansätze.

Vielen Dank

Angegeben war:

Erstellen Sie eine scriptgesteuerte Simulink Simulation, um die Differentialgleichung (siehe Anhang) zu lösen. Verwenden Sie folgende Parameter:
Anfangsvolumen V0=0.001 m^3
Heizleistung Q=1W
spezifische Gaskonstante für Luft R=287.058 J/(kg·K)
Anfangstemperatur T0=293.15 K
Anfangsdruck p0=100000 Pa
Simulationsdauer Tsim=200 s
Erstellen Sie einen Graphen, der das Volumen als Funktion der Zeit zeigt.

Ausgegangen ist man vom ersten Hauptsatz der Thermodynamik. Die Differantialgleichung sollte vorher noch für eine isotherme Expansion bei konstantem Q abgeleitet werden. Gesucht war die Vulumenänderung als Funktion der Zeit.
T=konstant
p=p(t)
Q=konstant

Anbei auch meine Lösung zu dieser Aufgabe

Lösung.jpg
 Beschreibung:
Lösung

Download
 Dateiname:  Lösung.jpg
 Dateigröße:  570.04 KB
 Heruntergeladen:  686 mal
DGL.JPG
 Beschreibung:
Differentialgleichung

Download
 Dateiname:  DGL.JPG
 Dateigröße:  13.18 KB
 Heruntergeladen:  628 mal
Aufgabe_ESA_1b_mod.mdl
 Beschreibung:
Simulink Modell

Download
 Dateiname:  Aufgabe_ESA_1b_mod.mdl
 Dateigröße:  38.28 KB
 Heruntergeladen:  737 mal
Aufgabe_ESA_1b.m
 Beschreibung:
Matlab Script

Download
 Dateiname:  Aufgabe_ESA_1b.m
 Dateigröße:  578 Bytes
 Heruntergeladen:  648 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.03.2020, 09:12     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Aber irgendwie kommt da kein Graph raus.

Wie auch? Du beschriftest ja nur, plottest aber nichts.

Zitat:
Und wie füge ich m ein, da dieses ja im Script nicht definiert wird.

m ist aus meiner Sicht ein Parameter wie jeder andere auch. Ich würde m im Skript definieren.

Zitat:
Benötige ich denn überhaupt die Clock?

Meines Erachtens nicht.

Du solltest dir vom sim-Befehl das Ergebnis zurückgeben lassen:
Code:

Zudem solltest du das Ergebnis z.B. über einen Out-Port rausschreiben.

Wie wäre es denn, wenn ihr zusammen an den Aufgaben arbeitet?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
brau.m80
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 10.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2020, 10:33     Titel:
  Antworten mit Zitat      
Hallo, erstmal danke für die schnelle Antwort.
Ich habe nun die Masse als 1 definiert... keine Ahnung ob das so stimmt.
Den Plot habe ich eingefügt, die Clock rausgeworfen und SIMout erstellt...

Leider komme ich trotzdem nicht weiter.... irgendwie fehlt mir der Durchblick....

Zitat:
Wie wäre es denn, wenn ihr zusammen an den Aufgaben arbeitet?

Wäre ne Idee, wenn ich wüßte wer die Person ist.... anschreiben geht nicht.


Danke schonmal für die Hilfe

Aufgabe_ESA_1b.m
 Beschreibung:

Download
 Dateiname:  Aufgabe_ESA_1b.m
 Dateigröße:  671 Bytes
 Heruntergeladen:  499 mal
Aufgabe_ESA_1b_mod.mdl
 Beschreibung:

Download
 Dateiname:  Aufgabe_ESA_1b_mod.mdl
 Dateigröße:  35.73 KB
 Heruntergeladen:  463 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.03.2020, 10:37     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Leider komme ich trotzdem nicht weiter.... irgendwie fehlt mir der Durchblick....

Das ist sehr vage. Je genauer du das Problem beschreibst, desto besser kann man dir helfen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
brau.m80
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 10.10.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.03.2020, 11:33     Titel:
  Antworten mit Zitat      
Zitat:
Das ist sehr vage. Je genauer du das Problem beschreibst, desto besser kann man dir helfen.


Im Script muss ich irgendwo einen Fehler haben... Der Plot funktioniert nicht.
Des Weiteren bin ich mir nicht sicher, ob ich m=1 so annehmen kann.
Im Blockschaltbild gehe ich davon aus, dass alles so richtig angeordnet ist, jedoch öffnet sich kein Graph....
Wie gesagt, da ich Neuling bin, bin ich für jeden Tip dankbar.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.