/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
creamygirl 610
berpox 610
jomfruane 570
10  3773 570
Matlab
Fra : Kurt


Dato : 05-11-04 14:09

Hej.

Jeg har søgt lidt i gruppen, og der har været lidt antydninger af
hvordan jeg skal løse mit "problem" - men ikke helt det svar jeg
forstår.

Jeg prøver at lære migselv matlab og vil prøve at løse ligningen for
varmeledning:
Qdot = k*A*dT/dx
som er lig med
dQ/dt = k*A*dT/dx

k og A og temperatur niveauer er valg arbitrære, feks:
k=0.02
A=1
T høj = 100 C
T lav = 20 C

Jeg har også kikket på eksemplerne i matlab, men jeg kan simpelthen
ikke oversætte det til ovenstående ligning. Jeg skal jo nok bruge
feks. ODE45 løseren, men kan ikke få det til at fungere ligemeget hvad
jeg prøver - så jeg regner med at der er noget jeg ikke helt har
forstået.
Er der nogen der kan forklare mig det på en simpel måde og gerne incl
et løsningsforslag.

Mvh og på forhånd tak
Kurt

 
 
Henning Makholm (05-11-2004)
Kommentar
Fra : Henning Makholm


Dato : 05-11-04 16:22

Scripsit kurt1e4@hotmail.com (Kurt)

> Jeg prøver at lære migselv matlab og vil prøve at løse ligningen for
> varmeledning:
> Qdot = k*A*dT/dx
> som er lig med
> dQ/dt = k*A*dT/dx

Mangler du ikke en varmekapacitetligning der kobler Q og T?

--
Henning Makholm "In my opinion, this child don't
need to have his head shrunk at all."

Kurt (08-11-2004)
Kommentar
Fra : Kurt


Dato : 08-11-04 09:53

Henning Makholm <henning@makholm.net> wrote in message news:<87sm7o48yv.fsf@kreon.lan.henning.makholm.net>...
> Scripsit kurt1e4@hotmail.com (Kurt)
>
> > Jeg prøver at lære migselv matlab og vil prøve at løse ligningen for
> > varmeledning:
> > Qdot = k*A*dT/dx
> > som er lig med
> > dQ/dt = k*A*dT/dx
>
> Mangler du ikke en varmekapacitetligning der kobler Q og T?

Nej. Det er Fourier's varmeledningslov.
Qdot = dQ/dt = effekten [W = J/s]
k: Varmeledningskoefficienten [W/K*m^2]
A: Arealet som effekten transporteres over. For plane flader må du
gerne bruge fluxen q'' = k*dT/dx
dT/dx er temperaturdifferencen over en afstand. Feks vil det for en
væg være væggens tykkelse som er dx. dT er blot differencen af
temperaturen på væggens 2 sider.
Qdot vil være konstant når temperatur differencen er konstant og det
burde vel kunne beregnes udfra ODE.
Men hvis du ikke er fortrolig med ligningen må du gerne vælge en anden
ligning. Så længe at du vælger en der er MEGET simpel til at forklare
brugen af ODE løseren. Jeg tror at jeg har brug for en simpel og
pædagogisk forklaring for at helt at forstå brugen af ODE.
Jeg ser dog helst at udgangspunktet er ovennævnte lov idet jeg er
fortrolig med den (dvs. kan nemt beregne den i et regneark og på den
måde udforske brugen af matlab).

Brian Elmegaard (08-11-2004)
Kommentar
Fra : Brian Elmegaard


Dato : 08-11-04 14:08

kurt1e4@hotmail.com (Kurt) writes:

> Nej. Det er Fourier's varmeledningslov.

Ja...

Men hvad er det du vil? Hvorfor skal du løse en differentialligning?
Det du skriver er (som jeg læser det) at du regner på varmeledning i
en dimension med kendte temperaturer i hver ende og konstant k og A.

Du benytter derfor
dQ/dt=k*A*dT/dx

k, A og dT er kendte, men dx mangler?

Der er ingen differentialligning i det og altså ikke behov for en
ode-løser?

Hvordan ser din løsning i regneark/håndregning ud?

Se eventuelt på: http://www2.ocean.washington.edu/oc540/lec02-3/

--
Brian (remove the sport for mail)
http://www.et.dtu.dk/staff/be/be.html

Kurt (09-11-2004)
Kommentar
Fra : Kurt


Dato : 09-11-04 12:46

Brian Elmegaard <brian@rk-speed-rugby.dk> wrote in message news:<ur7n4v68l.fsf@rk-speed-rugby.dk>...
>
> k, A og dT er kendte, men dx mangler?
>
> Der er ingen differentialligning i det og altså ikke behov for en
> ode-løser?
>
> Hvordan ser din løsning i regneark/håndregning ud?
>
> Se eventuelt på: http://www2.ocean.washington.edu/oc540/lec02-3/



Interessant hjemmeside. Men den tager ikke helt udgangspunkt i min
opstilling synes jeg. Eller er det mig der ikke forstår den?

Jeg vil løse ligningen for at lære teknikken i matlab. Derfor vælger
jeg også noget som jeg kan håndtere i et regneark.

Mht. dx. Jeg kan godt se at jeg skulle have angivet dT/dx i stedet for
dT.
Men jeg forstår ikke….. Er dQ/dt = k*A*dT/dx hvor k, A, dT/dx er
konstante, ikke en differential ligning. Det er jo ikke sikkert at k
er konstant i virkeligheden. Selvom jeg ikke BEHØVER at bruge en ODE
løser til dQ/dt = konstant, så kan man vel godt. Eller hvad? Kan man
ikke beregne at dQ er konstant i alle tider?

Derefter kan jeg så indsætte k(T) i stedet for k, men jeg vil gerne
starte så simpelt som muligt for at lære at bruge matlab og matlabs
ODE. I et simpelt velkendt problem/løsning kan jeg bedre prøve mig
frem indtil jeg er fortrolig med syntaksen i matlab.

Min løsning i et regneark ville bare være løsning af en 1.ordens
ligning. Og hvis jeg ville have k(T) med så ville jeg itterere mig
frem vha. en k_middel indtil jeg fik det korrekte temperaturprofil og
k-profil i væggen (dx).

Jeg håber at selvom I synes at min case er åndssvag at I vil hjælpe
mig i gang med at bruge matlab til varmeledning.

Martin Jørgensen (09-11-2004)
Kommentar
Fra : Martin Jørgensen


Dato : 09-11-04 19:06

Kurt wrote:

> Brian Elmegaard <brian@rk-speed-rugby.dk> wrote in message news:<ur7n4v68l.fsf@rk-speed-rugby.dk>...
-snip-

>>Hvordan ser din løsning i regneark/håndregning ud?
>>
>>Se eventuelt på: http://www2.ocean.washington.edu/oc540/lec02-3/
>
>
>
>
> Interessant hjemmeside. Men den tager ikke helt udgangspunkt i min
> opstilling synes jeg. Eller er det mig der ikke forstår den?

Jo, det ligner da noget af det samme...

> Jeg vil løse ligningen for at lære teknikken i matlab. Derfor vælger
> jeg også noget som jeg kan håndtere i et regneark.
-snip-

Hvis du venter ca. 1-1,5 uges tid (hvad du sikkert ikke kan) så vil jeg
gerne være med til at lære matlab med disse ligninger. Jeg har nemlig
længe kunnet tænke mig det, men kører pt. på mac og ikke windoze...

Jeg kunne ihvertfald godt tænke mig at du skriver hvad du finder ud af
når du kommer længere? Så vil jeg nemlig gentage det du laver snart...


Med venlig hilsen / Best regards
Martin Jørgensen

--
---------------------------------------------------------------------------
Home of Martin Jørgensen - http://www.martinjoergensen.dk

Niels L Ellegaard (09-11-2004)
Kommentar
Fra : Niels L Ellegaard


Dato : 09-11-04 21:15

On 9 Nov 2004 03:46:23 -0800
kurt1e4@hotmail.com (Kurt) wrote:

> Jeg håber at selvom I synes at min case er åndssvag at I vil hjælpe
> mig i gang med at bruge matlab til varmeledning.

I virkeligheden er Matlab ikke særligt velegnet til at løse varmediffussionsion. Så vidt jeg har forstået vil du gerne løse følgende ligninger

dT(x,t)/dt = -C j(x,t)/dx
j(x,t) = -lambda dT(x,t)/dx

Her angiver j(x,t) varmestrømmen (mod højre). Hvis du kombinerer disse to og definerer varmediffusionskonstanten D = C/lambda, så får du

dT(x,t)/dt = D * d^2T(x,t)/dx^2

Problemet med denne differentialligning er at T bliver differentieret efter to forskellige variable. Det betyder at din differentialligning ikke en ordinær differentialligning, "ODE", men en partiel differentialligning "PDE. Sådan nogen kan Matlabs ODE-løser ikke løse uden videre. (Det kræver at man køber en udvidelse der hedder Femlab.)

Man kan sådan set godt bruge Matlab til at regne på diffussion, hvis man snyder lidt. Jeg tror ikke at det er en holdbar fremgangsmåde i længden, men nu viser jeg det alligevel, for det giver en ide om hvad Matlab kan og ikke kan. Hvis du vælger et lille tal h, så kan du tilnærme d^2T/d^2x på følgende vis

d^2T/dx^2 = (T(x+h) + T(x-h) - 2*T(x))/h^2

(Man kan checke efter ved at Taylorudvikle T til andenorden i x). Nu kan du indsætte i varmediffusionsligningen ligningen og få

dT(x,t)/dt = D (T(x+h) + T(x-h) - 2*T(x))/h^2

Denne ligning er en ODE, så den kan Matlab godt forstå. Hvis du lader T angive en vektor med N elementer (svarende til temperaturen forskellige steder på en linie), så kan du gøre sådan her

B = diag(ones(1,N-1),1) +diag(ones(1,N-1),-1) - 2 *diag(ones(1,N)) / h^2
dT/dt = D * B * T

Den sidste linie skal erstattes med et kald af din ODEløser, (men jeg har glemt syntaxen). Min tilnærmelse har ikke den rigtige opførsel i randene, (men det opdager du nok). Hvis du vælger en meget stor værdi af N, så kan du sikkert spare computertid ved at lade B være "sparse". Men når alt dette er sagt, så kan min simple Matlabløsning nok ikke bruges til så meget. Jeg tror at du har brug for et program (eller en programpakke), der er bygget til at løse partielle differentialliginger (PDE).

Held og lykke

   Niels






Niels L. Ellegaard (10-11-2004)
Kommentar
Fra : Niels L. Ellegaard


Dato : 10-11-04 09:37

Niels L Ellegaard <gnalle@ruc.dk> writes:

> dT(x,t)/dt = -C j(x,t)/dx
> j(x,t) = -lambda dT(x,t)/dx
>
> Her angiver j(x,t) varmestrømmen (mod højre). Hvis du kombinerer
> disse to og definerer varmediffusionskonstanten D = C/lambda, så får
> du
>
> dT(x,t)/dt = D * d^2T(x,t)/dx^2

hehe.. Jeg mente selvfølgelig
dT(x,t)/dt = -1/C * dj(x,t)/dx
j(x,t) = -lambda * dT(x,t)/dx
D = lambda/C

--
Niels L Ellegaard http://dirac.ruc.dk/~gnalle/

Niels L Ellegaard (10-11-2004)
Kommentar
Fra : Niels L Ellegaard


Dato : 10-11-04 22:53

On 10 Nov 2004 03:30:21 -0800
kurt1e4@hotmail.com (Kurt) wrote:

> Jeg kan ikke forstå at du siger at Matlab ikke kan løse pde. Den har
> da en pde solver der hedder "pdepe". Jeg har ikke prøvet den, men
> mener du at den ikke duer?

Jeg må indrømme at jeg ikke var klar over at den fandtes, men så vidt
jeg ved kan se kan pdepe kun løse ligniger i 1 dimension + tid.

> Den beregner fint min effekt til at være konstant. Det nye problem er
> så bare at hvis jeg ønsker at beregne effekten for flere
> transmissionskonstanter og skriver
> k=[0.04 0.1] så får jeg en fejl. Jeg får at vide at funktionen "cond"
> skal være en kolonnevektor. Så skriver jeg i stedet k=[0.04 0.1]' og
> får en fejl fordi matrix dimensionen er forkert.

Det hurtigeste er nok at at regne på en k-værdi ad gangen (med en for-løkke).
Hvis du forsøger at løse diffussionsligninger for to meget forskellige
k-værdier i et hug, så ved bliver tidskridtenes længde styret af den
største k-værdi (dvs den hurtigeste dynamik). Det betyder at du bruger
unødtvendigt meget computerkraft.


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste