|
|
Skriptgesteuerte Simulierung einer DGL |
|
Wagma |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.02.2020, 13:44
Titel: Skriptgesteuerte Simulierung einer DGL
|
|
|
|
|
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
Beschreibung: |
|
Download |
Dateiname: |
Aufgabe 1b Skript.JPG |
Dateigröße: |
65.56 KB |
Heruntergeladen: |
684 mal |
Beschreibung: |
|
Download |
Dateiname: |
Aufgabe1b DGL.JPG |
Dateigröße: |
30.84 KB |
Heruntergeladen: |
650 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.02.2020, 13:57
Titel:
|
|
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 ;)
|
|
|
Wagma |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.02.2020, 14:07
Titel:
|
|
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
Falls es weitere Hinweise gibt, gern her damit.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.02.2020, 14:09
Titel:
|
|
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 ;)
|
|
|
Wagma |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.02.2020, 23:41
Titel:
|
|
|
|
|
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
Man merkt, der richtige Durchblick fehlt mir noch :S
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.02.2020, 09:16
Titel:
|
|
|
|
|
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 ;)
|
|
|
Wagma |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2020, 11:22
Titel:
|
|
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).
Beschreibung: |
|
Download |
Dateiname: |
Simulink Modell.JPG |
Dateigröße: |
40.52 KB |
Heruntergeladen: |
679 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.02.2020, 13:11
Titel:
|
|
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 ;)
|
|
|
Wagma |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.02.2020, 17:53
Titel:
|
|
Spielt es denn eine Rolle wo ich genau die Verzweigung für das simin und simout setze?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 06.02.2020, 18:08
Titel:
|
|
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 ;)
|
|
|
brau.m80 |
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 10.10.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.03.2020, 08:01
Titel:
|
|
|
|
|
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
Beschreibung: |
|
Download |
Dateiname: |
Lösung.jpg |
Dateigröße: |
570.04 KB |
Heruntergeladen: |
686 mal |
Beschreibung: |
|
Download |
Dateiname: |
DGL.JPG |
Dateigröße: |
13.18 KB |
Heruntergeladen: |
628 mal |
Beschreibung: |
|
Download |
Dateiname: |
Aufgabe_ESA_1b_mod.mdl |
Dateigröße: |
38.28 KB |
Heruntergeladen: |
737 mal |
Beschreibung: |
|
Download |
Dateiname: |
Aufgabe_ESA_1b.m |
Dateigröße: |
578 Bytes |
Heruntergeladen: |
648 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.03.2020, 09:12
Titel:
|
|
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:
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 ;)
|
|
|
brau.m80 |
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 10.10.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.03.2020, 10:33
Titel:
|
|
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
Beschreibung: |
|
Download |
Dateiname: |
Aufgabe_ESA_1b.m |
Dateigröße: |
671 Bytes |
Heruntergeladen: |
499 mal |
Beschreibung: |
|
Download |
Dateiname: |
Aufgabe_ESA_1b_mod.mdl |
Dateigröße: |
35.73 KB |
Heruntergeladen: |
463 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 21.03.2020, 10:37
Titel:
|
|
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 ;)
|
|
|
brau.m80 |
Forum-Anfänger
|
|
Beiträge: 16
|
|
|
|
Anmeldedatum: 10.10.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.03.2020, 11:33
Titel:
|
|
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.
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|