Wat mijn doel is:
Excel 2003 zodanig vervormen, ombouwen, programmeren, dat het een eenvoudige differentiaalvergelijking op kan lossen. Daarbij programmeer ik een “werkelijke situatie“.
Voor de opdracht, toen destijds, maakte ik gebruik van een software programma om te simuleren. Echter, ik wil dit in Excel kunnen. Daardoor leer ik meer van de methode en kan ik er een werkelijk leeglopend vat aan koppelen.
Voor de simulatie wil ik gebruik maken van de Runge Kutta 4 methode, maar ik ben hier niet erg bekend mee.
Het gaat me voornamelijk om het oplossen van intermediates. Ik ben daarom op zoek naar een goede tutorial die uitlegt hoe dit moet. Ik heb al wat afgestruind op het internet, maar dat mocht niet écht baten. Ik ben al wel tegen wat voorbeelden aangelopen.
Hieronder staat het Madonna model, de opdracht, en het daarop gevonden antwoord door een van uwer wiskunde goden.
MODEL:
{x = weggestroomde water Dus in het begin is x gelijk aan 0, en op het eind 1.2.
Zolang x kleiner is dan 0.2, staat er boven de diverse gaten een kolom water met achtereenvolgens de volgende hoogten:
gat_0: h_0=1.2-x
gat_1: h_1=0.95-x
gat_2: h_2=0.7-x
gat_3: h_3=0.45-x
gat_4: h_4=0.2-x.}
{wegstromend water per tijdseenheid zolang x kleiner is dan 0.2}
{(q_0+q_1+q_2+q_3+q_4)*dt} {m3}
{pi*(0.25)2*dx} {m3}
Hv =1.20 hoogte vat
Dv = 0.50 diameter vat
Ag = 20*10^-6 oppervlakte van een gat
Cd = 0.85 constante
g = 9.81 gravitatieconstante
h_0 = 1.20-x
limit h_0 = 0
h_1 = 0.95-x
limit h_1 = 0
h_2 = 0.70-x
limit h_2 = 0
h_3 = 0.45-x
limit h_3 = 0
h_4 = 0.20-x
limit h_4 = 0
{debiet}
q_0 = Cd*Ag*(2*g*h_0)^0.5
limit q_0 = 0
q_1 = Cd*Ag*(2*g*h_1)^0.5
limit q_1 = 0
q_2 = Cd*Ag*(2*g*h_2)^0.5
limit q_2 = 0
q_3 = Cd*Ag*(2*g*h_3)^0.5
limit q_3 = 0
q_4 = Cd*Ag*(2*g*h_4)^0.5
limit q_4 = 0
init x = 0
x' = (q_3 + q_4 + q_1+q_2+q_0) / (pi*((0.25)^2))
Mijn vorige vraag:
Leeglopend vat
Ik heb problemen met een vergelijking op te stellen over een leeglopend vat.
Het vat is helemaal gevuld met water. Er zijn 5 gaten: 1 in de bodem(midden) de andere aan de zijkant. Respectievelijk op 0,25 m/ 0,50 / 0,75 en 1,00 m. De hoogte van het vat is 1,20 m, de diameter 0,50 m.
De diameter van een gat (Ag) is 20*10^-6 m. Het debiet (q) door te gaten wordt gegeven door:
q = Cd * Ag * �2gh
waarin: g = 9,81 en h de hoogte van de diverse gaten, Cd = 0,85.
Gesteld wordt een vergelijking over het niveau op te stellen.
Ik struikel echter op het punt dat als het debiet verandert de hoogte verandert en als de hoogte verandert het debiet weer verandert.
Robert
Student hbo - dinsdag 11 januari 2005
Antwoord
Ik neem aan dat het debiet de hoeveelheid water is die per seconde door een gat wegvloeit, in m3/sec.
Ik neem ook aan dat het vat cilindervormig is.
Stel dat x de hoogte in meters is van de al weggevloeide kolom water.
Dus in het begin is x gelijk aan 0, en op het eind 1.2.
Zolang x kleiner is dan 0.2, staat er boven de diverse gaten een kolom water met achtereenvolgens de volgende hoogten:
gat_0: h_0=1.2-x
gat_1: h_1=0.95-x
gat_2: h_2=0.7-x
gat_3: h_3=0.45-x
gat_4: h_4=0.2-x.
Het debiet q_i door gat_i is dus Cd*Ag*�2gh_i.
Per tijdseenheid (Dt seconde) stroomt (zolang x kleiner is dan 0.2) weg:
enerzijds (q_0+q_1+q_2+q_3+q_4)Dt m3
anderzijds p*(0.25)2*Dx m3.
Dus Dx/Dt = (q_0+q_1+q_2+q_3+q_4)/(p*(0.25)2):=f(x) (bereken zelf f(x) door invullen).
Uw dilemma is niet wezenlijk, want in een kleine tijdseenheid veranderen debiet en hoogte maar heel weinig.
Uit de differentiaalvergelijking dx/dt=f(x) vindt men
dt=dx/f(x), en dan door integreren:
na t seconden wordt x gevonden via t=�0x 1/f(c) dc.
Voor x tussen 0.2 en 0.45 gaat het analoog, met een gat minder, etc.RS
10-5-2007
Beste Robert,
Waarom wil je zo iets ingewikkelds als een Runga Kuta benadering gebruiken? Ik zie dat je nog heel wat moeite hebt om de differentiaalvergelijking goed te formuleren. Bovendien is excel een eenvoudig gereedschap. Dan lijkt de Eulermethode mij al complex genoeg. Geavanceerdere benaderingen convergeren weliwaar sneller. Maar de bespaarde rekentijd weegt niet op tegen de tijd die je aan het programmeren moet besteden.
Met wat aanpassen aan excelterminologie zie ik het volgende model:
h0(t) = max( 1.20-x , 0)
h1(t) = max( 0.95-x , 0)
h2(t) = max( 0.70-x , 0)
h3(t) = max( 0.45-x , 0)
h4(t) = max( 0.20-x , 0)
q0(t) = K*h0^0.5
q1(t) = K*h1^0.5
q2(t) = K*h2^0.5
q3(t) = K*h3^0.5
q4(t) = K*h4^0.5
x(0) = 0
x(t+dt) = x(t) + (q_3+q_4+q_1+q_2+q_0)*dt
Dit is gewoon een differentiaalvergelijking met een variabele. Maar, voor het overzicht is het misschien wel handig meer variabelen gebruiken. Je gebruikt van voor elke variabele een kolom.
Het is wel handig om op de eerste rij de namen te zetten.
in cel A1 zet je "t"
in cel B1 zet je "x"
in cel C1 zet je "h0" en idem voor de andere h's
in cel H1 zet je "q0" en idem voor de andere q's
in cel M1 zet je "q"
Op de tweede rij komen de beginwaarden:
in cel A2 "t" zet je: 0
in cel B2 "x" zet je: 0
in cel C2 "h0" zet je: max(1.20-B2,0) en idem voor de andere h's:
in cel H2 "q0" zet je: K*sqrt(C2) en idem voor de andere q's
in cel M2 "q" zet je: H2+I2+J2+K2+L2
In plaats van K schrijf je natuurlijk de waarde van K of liever nog een cel waar die waarde staat.
Op de derde rij begint het rekenen:
in cel A3 "t" zet je: A2+dt (ipv dt natuurlijk weer de waarde)
in cel B3 "x" zet je: B2+M2*dt/(pi*straal^2)
de andere cellen kun je van de vorige rij kopiėren.
De vierde en andere rijen zijn gelijk aan de derde.
Dus kun je nu rij drie zo vaak kopiėren als je wilt.
Zou het zo gaan? Groet. Oscar.
os
10-5-2007
#50688 - Differentiaalvergelijking - Student hbo