Füllstand Stausee
-
Danke Mups für deine Idee.
Ich muss aber voraus berechnen können wann der Staudamm leer ist.
Das ist bei deiner Variante nicht möglich.
-
Darfst du eigentlich Annehmen, dass alle Ausläufe am Boden liegen? Wenn ja, fliesst immer Wasser raus, so lange der Stausee nicht leer läuft.
Wenn du annehmen darfst, dass der Stausee nicht leer läuft, oder du abbrechen darfst, falls das passiert, kannst du aus meinen Vorschlägen eine DGL basteln (Zuläufe nicht vergessen!) und die lösen. Dann besteht dein Programm nur noch aus einer Mini-Formel.
(Der "Stausee" hat bestimmt eine nach oben hin unveränderliche Grundfläche? Sonst wird es wieder schwerer).
-
Binggi schrieb:
Danke Mups für deine Idee.
Ich muss aber voraus berechnen können wann der Staudamm leer ist.
Das ist bei deiner Variante nicht möglich.Warum? Gehört das auch zur Aufgabe? Simulieren klingt für mich erstmal danach, einen Zeitverlauf auszurechnen. Oder interessiert nur eine einzige Zahl: Die Zeit, bis der See trocken ist? Das kann aber ggf. auch unendlich lange sein, weil der See ja auch überlaufen kann.
Ansonsten kannst du deine Formel vermutlich auch aus dem Ansatz herleiten, den ich hingeschrieben habe (bis auf diesen mu-Faktor)
-
Ja, eine der Aufgaben ist zu errechnen, wie lange Strom pruduziert werden kann.. Wobei wenn der einlauf grösser dem auslass ist, wird das separat abgehandelt
Man kann annehmen dass der auslauf am boden ist. Beim Enlauf ist es ja egal, da dir fliessgeschwindigkeit nicht von der wasserhöhe abhängt.
Ich habe dem stausee momentan die masse 100*100*50 gegeben.
Was meinst du mit DGL?
-
Wenn du nicht weisst, was eine Differentialgleichung (DGL) ist, dann musst sie auch nicht lösen
Welche Aufgaben sollst du denn noch lösen?
-
Edit: doppleter post
-
Hatten wir noch nicht in der schule
Wenn ich es selbst lösen könnte, hätte ich nicht gefragt
Es gibt keine anderen Aufgaben mehr...
-
Das Problem bei deiner Formel ist, dass du da nicht die Zuflüsse modellieren kannst.
Viel einfacher ist es wahrscheinlich, wenn du eine Zeitsimulation machst, d.h. iterativ in kleinen Zeitschritten den aktuellen Füllstand ausrechnest. Wenn der Füllstand bei Null ist, stoppst du die Schleife. Wenn nach einer langen Zeit immer noch nicht zu Ende ist, dann machst du einen "Notstopp", weil ja auch Fälle denkbar sind, bei denen sich der Füllstand nicht mehr ändert oder alles Überläuft.
Im Prinzip so:
V := Anfangsvolumen dt := Kleiner Zeitschritt t := 0 while V >= 0 V += Extra-Wasser von Zustrom // jedes mal einen konstanten Wert addieren V -= Abfluss // jedes mal etwas Abziehen, in Abhaengigkeit vom Fuellstand print t, V t += dt
Das Wasser, was abfliesst, kannst du mit meiner Formel ausrechnen.
-
Ja, diese Variante hatte ich schon.
Sie funktioniert, ist aber wenig effizient.
Habe dt= 0.1s genommen. Bei geringer Differenz zwischen Einlauf und Auslauf habe ich schnell mal 1Mio Berechnungen bis die Zeit berechnet ist. Wenn ich denn Füllstand all 0.5 s update habe ich schon 2Mio berechnungen pro Sek.
Daher wollte ich das ganze in einer Rechnung unterkriegen. Oder die Berechnungen halt in einen separaten Thread auslagern.
Werde mich mal mit unserer Mathelehrerin in verbindung setzten um einen Optimale Methode zu bekommen.
Besten Dank.
Gruss Binggi
-
1000k Rechenschritte finde ich jetzt nicht ganz schrecklich. Wenn sie über die Zeit nicht viel ändert, kannst du den Zeitschritt auch vergrößern. Deine Schleife sollte auch mit kleinem dt ziemlich flott durchlaufen, falls du keine Ausgaben auf die Konsole oder in eine Datei machst, sondern nur am Ende die Gesamtzeit ausgibst (Ausgabe braucht viel mehr Zeit als die paar Berechnungen).
Darf ich fragen, wie du in deinem Programm den Volumenstrom am Ausfluss berechnet hast?
Eine anayltische Formel ist natürlich viel feiner, da hast du recht. Aber wenn du die selbst herleiten willst (oder wenigsten die Herleitung verstehen willst), brauchst du vermutlich mehr Mathematik, als du mit deiner Schulmathematik hinbekommst.
-
Den Volumenstrom habe ich mit
Vs= c * A
c = φ * sqrt( 2 * g * h )
berechnet. Wobei beim Einlass h Konstand ist, und beim Auslass h die Füllhöhe ist.