Gå til innhold
Trenger du skole- eller leksehjelp? Still spørsmål her ×
🎄🎅❄️God Jul og Godt Nyttår fra alle oss i Diskusjon.no ×

Den store fysikkassistansetråden


Anbefalte innlegg

Videoannonse
Annonse

Hei. Jeg har lekt meg litt med å få heat equation inn i python. Bruker metoden hvor man oppretter ett linært likningssett og løser denne. Ved punktet 33 i en 5x5 plate blir likningen for temperaturen i det punktet T(y,x) = T(3,3)= T23 + T34 + T43 + T32 - 4T33 + initial_temp_T33 = 0

 

Dette funker helt fint og gir riktig løsninger. Men når jeg prøver å la tiden "gå" for systemet, øker temperaturen noe helt sykt. En temp på 10*, vil få systemet til å gå over 200* Iløpet av 20 runder. Jeg ønsker å se at temperaturen fordeler seg utover hele platen. Nå vet jeg såvidt hvordan heat equation funker, så ønsker noen tips :)

Hadde vore fint om du viste koden du har allereie.
Lenke til kommentar

Hei,

 

Kan noen hjelpe meg med å regne ut hvordan en varmeveksler kan bli mest mulig effektiv?

 

Har studert mye om emnet, leste om newtons lov om kjøling og masse annet. Men jeg kan ikke helt finne ut av det.

 

Det gjelder til et ølbryggeri. Jeg skal varme opp en kjele ved bruk av ved. så skal jeg sirkulere dette varme vannet igjennom en kobberspiral for å varme opp, la oss si 150L vørter.

 

Hvis jeg bruker 4stk 12,5m lange kobberrør ytterdiameter på 12mm, kveilet til en spiral. dvs 4 inntak og 4 uttak. Min logiske tenkning sier jo at det er bedre med 4 av disse en 1 på 50m.

 

Pumpen jeg skal bruke kan pumpe 50l i minuttet. innerdiameter på kobberrørene er 10mm

 

Hvert av rørene rommer omtrent en liter.

 

Kan vi ikke si at vørteren er 10grader

 

Hvis jeg pumper vann som er 100grader igjennom disse rørene med en flow på 50l/min, hvor mange kilowatt varme vil overføres til vørteren, ca?

 

La oss si at ovnen klarer å produsere 10kw og 80% av dette går over i vannet i kokekaret. dvs 8kw. Det er 60L vann i vannkappen på ovnen.

 

Hva er den ideelle lengden på kobberrørene, eventuelt antall for å overføre denne varmen til vørteren best mulig og hvor lang tid vil det ta omtrent?

 

Ledeevnen til vann er 0.58W/(m.K) kobber er 400 http://www.engineeringtoolbox.com/thermal-conductivity-d_429.html

 

vannets varmekapasitet er 4,187 [kJ/kg*C]

 

Hadde vært fint om noen tok utfordringen! Gjerne med utregning og forklaring, da ville jeg blitt veldig takknemlig! :)

post-93382-0-90647200-1390951232_thumb.png

Endret av griped
Lenke til kommentar

Trenger litt hjelp her, 3 år siden sist jeg hadde fysikk, så må prøve å få hjernen i gang :)

 

Har en oppgave:

"En ishockeypuck kan gli på en stor, islagt innsjø. Friksjonskoeffisienten mellom pucken og
isen er på 0,08. Hvor lang tid tar det før pucken har stanset helt dersom starthastigheten
er 4,2 m/s?"
Jeg tenker først da at jeg må finne akselerasjonen til pucken:
chart?cht=tx&chl=a=\frac{F}{m}=\frac{mg-R}{m}=g-\frac{R}{m}

Så har jeg at

chart?cht=tx&chl=R=\mu N
Problemet mitt er at jeg ikke har fått oppgitt noe masse, så da kan jeg jo ikke finne R. Noen innspill?
Lenke til kommentar

 

Trenger litt hjelp her, 3 år siden sist jeg hadde fysikk, så må prøve å få hjernen i gang :)

 

Har en oppgave:

"En ishockeypuck kan gli på en stor, islagt innsjø. Friksjonskoeffisienten mellom pucken og
isen er på 0,08. Hvor lang tid tar det før pucken har stanset helt dersom starthastigheten
er 4,2 m/s?"
Jeg tenker først da at jeg må finne akselerasjonen til pucken:
chart?cht=tx&chl=a=\frac{F}{m}=\frac{mg-R}{m}=g-\frac{R}{m}

Så har jeg at

chart?cht=tx&chl=R=\mu N
Problemet mitt er at jeg ikke har fått oppgitt noe masse, så da kan jeg jo ikke finne R. Noen innspill?

 

Det har jeg :)chart?cht=tx&chl=R=\mu N=\mu G=\mu mg

 

Og en ting til; kraftsummen på pucken er ikke G-R, de virker ikke i samme retning. Kraftsummen vertikalt er egentlig 0, mens kraftsummen horisontalt er R bakover.

Endret av Mathkiller
Lenke til kommentar

 

Hei. Jeg har lekt meg litt med å få heat equation inn i python. Bruker metoden hvor man oppretter ett linært likningssett og løser denne. Ved punktet 33 i en 5x5 plate blir likningen for temperaturen i det punktet T(y,x) = T(3,3)= T23 + T34 + T43 + T32 - 4T33 + initial_temp_T33 = 0

 

Dette funker helt fint og gir riktig løsninger. Men når jeg prøver å la tiden "gå" for systemet, øker temperaturen noe helt sykt. En temp på 10*, vil få systemet til å gå over 200* Iløpet av 20 runder. Jeg ønsker å se at temperaturen fordeler seg utover hele platen. Nå vet jeg såvidt hvordan heat equation funker, så ønsker noen tips :)

Hadde vore fint om du viste koden du har allereie.

 

 

Det blir veldig rotete å kopiere koden rett fra Python. Bruker pythonista. Gjør et forsøk på å definere hvor de viktige punktene er.

 

 

 

 

# -*- coding: utf-8 -*-
import copy
import math
import Image
import photos
import clipboard
import canvas
drive=0
kolonne =0
line=0
matrise=0
teller=0
telleri=0
fuck=10
ms = fuck*fuck
x=0
y=0
king = 0
z=0
sum=0
imagebuffer = Image.new('RGBA', (fuck,fuck), 'white')
pixel = imagebuffer.load()
Xn = [0.0] * ms
Xm = [0.0] * ms
t = [0] * ms #Temperaturer. Negative verdier indikerer en positiv verdi i punktet.
#while x<ms:
#t[x]= -30.1247530753*x
#x=x+1
#x=0
t[55] = -1000.0
while king<1:
T = [[0 for x in xrange(0)] for x in xrange(ms)]
C = copy.copy(T)
Matrix = [[0 for x in xrange(ms)] for x in xrange(ms)]
#Setter opp likningene for heat equation:
if(1):
while telleri<ms:
#print telleri
if ((telleri + 1)%fuck):
Matrix [telleri][telleri+1] = 1.0
if ((telleri-1)>=0):
if((telleri)%fuck):
Matrix [telleri][telleri-1] = 1.0
Matrix [telleri][telleri] = -4.0
if (telleri+fuck<ms):
Matrix [telleri][telleri+fuck] = 1.0
if (telleri-fuck>-1):
Matrix [telleri][telleri-fuck] = 1.0
telleri = telleri+1
teller = teller+1
telleri=0
teller=0
#print Matrix[0]
#print Matrix
T=Matrix
x=0
#Gjør om likningenene for å støtte Jacobi Iterasjonen:
while teller<ms:
while telleri<ms:
C[telleri] = -T[teller][telleri]/T[teller][teller]
telleri=telleri+1
t[teller] = t[teller]/T[teller][teller]
T[teller] = copy.copy©
T[teller][teller] = 0
telleri=0
teller=teller+1
teller=0
C = 0
# Fjerner C verdiene fra minnet
#Jacobi iterasjonen:
while drive<70:
while line <ms:
while kolonne<ms:
matrise=T[line][kolonne]*Xn[kolonne] + matrise
kolonne=kolonne+1
z=z+1
Xm[line]=matrise + t[line]
line =line+1
kolonne=0
matrise=0
while teller<ms:
Xn[teller]=Xm[teller]
teller=teller+1
teller=0
line =0
drive = drive+1
#print drive
x=0
y=0
teller=0
#Gir visuelle punkter i Pythonista:
while teller<ms:
if Xm[teller]>250:
pixel[x,y] = 255,0,0,255 #red
elif Xm[teller]>150:
pixel[x,y] = 0,255,0,255 #green
elif Xm[teller]>50:
pixel[x, y] = 0,0,255,255 #blue
elif Xm[teller]>0:
pixel[x,y] = 0,0,0,255 #black
teller=teller+1
x=x+1
if (x>(fuck-1)):
x=0
y=y+1
clipboard.set_image((imagebuffer), format='png')
canvas.set_size(fuck,fuck)
canvas.draw_clipboard(0,0,imagebuffer.size[0],imagebuffer.size[1])
teller=0
x=0
y=0
drive=0
telleri=0
#Definerer den nye temperaturverdien som skal brukes i neste kjøring:
while teller<ms:
# t[teller] = copy.copy(-Xm[teller])
if ((teller + 1)%fuck):
sum = Xm[teller+1] + sum
if ((teller-1)>=0):
if((telleri)%fuck):
sum = Xm[teller-1] + sum
sum = sum -4*Xm[teller]
#Matrix [telleri][telleri] = -4.0
if (teller+fuck<ms):
sum = sum + Xm[teller+fuck]
#Matrix [telleri][telleri+fuck] = 1.0
if (teller-fuck>-1):
sum = sum + Xm[teller-fuck]
Matrix [telleri][telleri-fuck] = 1.0
t[teller] = -(Xm[teller] + 0.25*sum)
#print Xm[teller]
teller=teller+1
#print teller
sum=0
print Xm[20], t[20]
teller=0
king=king+1
Xn=[0.0]*ms
#print -4*Xm[teller] + Xm[teller+1] + Xm[teller+fuck]
#print Xm[0]
#print z

 

 

 

 

 

Lenke til kommentar

 

Aha, så jeg setter µmg inn i likningen?

Altså

chart?cht=tx&chl=a=g-\frac{\mu mg}{m}=g-\mu g
som gir
a= -9,81-(9,81*0,08) = -9,0252
chart?cht=tx&chl=t=\frac{v-v_{0}}{a} , regner ut det og får 0,465 sek.
Er det riktig måte å gjøre det på? :p

 

chart?cht=tx&chl=a=\frac{-R}{m}=\frac{-\mu mg}{m}=-\mu g er nok det rette :)

 

Husk at den horisontale kraftsummen er R eller -R avhengig av hva du setter som positiv retning.

Endret av Mathkiller
  • Liker 1
Lenke til kommentar

 

Det blir veldig rotete å kopiere koden rett fra Python. Bruker pythonista. Gjør et forsøk på å definere hvor de viktige punktene er.

 

Klikk på knapp nummer tre frå venstre på den øvste verktøylinja over tekstfeltet, velg Kodeboks, og lim inn koden der. Då vert whitespace bevart.
Prøver igjen :)

 

Edit:

Linjeskiftene blir ikke med fra editoren. Men trykk "svar" på denne posten. Da skal linjeskiftene være riktig.

 

 

 

# -*- coding: utf-8 -*-

import copy

import math

import Image

import photos

import clipboard

import canvas

 

 

drive=0

kolonne =0

line=0

matrise=0

teller=0

telleri=0

fuck=10

ms = fuck*fuck

x=0

y=0

king = 0

z=0

sum=0

 

imagebuffer = Image.new('RGBA', (fuck,fuck), 'white')

pixel = imagebuffer.load()

 

 

 

Xn = [0.0] * ms

Xm = [0.0] * ms

t = [0] * ms #Temperaturer. Negative verdier indikerer en positiv verdi i punktet.

 

#while x<ms:

#t[x]= -30.1247530753*x

#x=x+1

#x=0

 

t[55] = -1000.0

 

while king<10:

T = [[0 for x in xrange(0)] for x in xrange(ms)]

C = copy.copy(T)

 

Matrix = [[0 for x in xrange(ms)] for x in xrange(ms)]

 

if(1):

while telleri<ms:

#print telleri

if ((telleri + 1)%fuck):

Matrix [telleri][telleri+1] = 1.0

if ((telleri-1)>=0):

if((telleri)%fuck):

Matrix [telleri][telleri-1] = 1.0

Matrix [telleri][telleri] = -4.0

if (telleri+fuck<ms):

Matrix [telleri][telleri+fuck] = 1.0

if (telleri-fuck>-1):

Matrix [telleri][telleri-fuck] = 1.0

telleri = telleri+1

teller = teller+1

telleri=0

teller=0

#print Matrix[0]

#print Matrix

T=Matrix

 

x=0

 

 

 

while teller<ms:

while telleri<ms:

C[telleri] = -T[teller][telleri]/T[teller][teller]

telleri=telleri+1

t[teller] = t[teller]/T[teller][teller]

T[teller] = copy.copy©

T[teller][teller] = 0

telleri=0

teller=teller+1

 

teller=0

C = 0

 

# Fjerner C verdiene fra minnet

 

while drive<70:

while line <ms:

while kolonne<ms:

matrise=T[line][kolonne]*Xn[kolonne] + matrise

kolonne=kolonne+1

z=z+1

Xm[line]=matrise + t[line]

line =line+1

kolonne=0

matrise=0

while teller<ms:

Xn[teller]=Xm[teller]

teller=teller+1

teller=0

line =0

drive = drive+1

#print drive

 

 

 

x=0

y=0

teller=0

 

while teller<ms:

if Xm[teller]>250:

pixel[x,y] = 255,0,0,255 #red

elif Xm[teller]>150:

pixel[x,y] = 0,255,0,255 #green

elif Xm[teller]>50:

pixel[x, y] = 0,0,255,255 #blue

elif Xm[teller]>0:

pixel[x,y] = 0,0,0,255 #black

teller=teller+1

x=x+1

 

if (x>(fuck-1)):

x=0

y=y+1

 

clipboard.set_image((imagebuffer), format='png')

canvas.set_size(fuck,fuck)

canvas.draw_clipboard(0,0,imagebuffer.size[0],imagebuffer.size[1])

 

teller=0

x=0

y=0

drive=0

telleri=0

while teller<ms:

# t[teller] = copy.copy(-Xm[teller])

if ((teller + 1)%fuck):

sum = Xm[teller+1] + sum

if ((teller-1)>=0):

if((telleri)%fuck):

sum = Xm[teller-1] + sum

sum = sum -4*Xm[teller]

#Matrix [telleri][telleri] = -4.0

if (teller+fuck<ms):

sum = sum + Xm[teller+fuck]

#Matrix [telleri][telleri+fuck] = 1.0

if (teller-fuck>-1):

sum = sum + Xm[teller-fuck]

Matrix [telleri][telleri-fuck] = 1.0

t[teller] = -(Xm[teller] + 0.25*sum)

#print Xm[teller]

teller=teller+1

#print teller

sum=0

print Xm[20], t[20]

teller=0

king=king+1

Xn=[0.0]*ms

 

#print -4*Xm[teller] + Xm[teller+1] + Xm[teller+fuck]

#print Xm[0]

#print z

 

 

 

 

 

Endret av CoffinKriz
Lenke til kommentar

 

 

Det blir veldig rotete å kopiere koden rett fra Python. Bruker pythonista. Gjør et forsøk på å definere hvor de viktige punktene er.

Klikk på knapp nummer tre frå venstre på den øvste verktøylinja over tekstfeltet, velg Kodeboks, og lim inn koden der. Då vert whitespace bevart.

 

Prøver igjen :)

 

Edit:

Linjeskiftene blir ikke med fra editoren. Men trykk "svar" på denne posten. Da skal linjeskiftene være riktig.

 

 

 

# -*- coding: utf-8 -*-

import copy

import math

import Image

import photos

import clipboard

import canvas

 

 

drive=0

kolonne =0

line=0

matrise=0

teller=0

telleri=0

fuck=10

ms = fuck*fuck

x=0

y=0

king = 0

z=0

sum=0

 

imagebuffer = Image.new('RGBA', (fuck,fuck), 'white')

pixel = imagebuffer.load()

 

 

 

Xn = [0.0] * ms

Xm = [0.0] * ms

t = [0] * ms #Temperaturer. Negative verdier indikerer en positiv verdi i punktet.

 

#while x<ms:

#t[x]= -30.1247530753*x

#x=x+1

#x=0

 

t[55] = -1000.0

 

while king<10:

T = [[0 for x in xrange(0)] for x in xrange(ms)]

C = copy.copy(T)

 

Matrix = [[0 for x in xrange(ms)] for x in xrange(ms)]

 

if(1):

while telleri<ms:

#print telleri

if ((telleri + 1)%fuck):

Matrix [telleri][telleri+1] = 1.0

if ((telleri-1)>=0):

if((telleri)%fuck):

Matrix [telleri][telleri-1] = 1.0

Matrix [telleri][telleri] = -4.0

if (telleri+fuck<ms):

Matrix [telleri][telleri+fuck] = 1.0

if (telleri-fuck>-1):

Matrix [telleri][telleri-fuck] = 1.0

telleri = telleri+1

teller = teller+1

telleri=0

teller=0

#print Matrix[0]

#print Matrix

T=Matrix

 

x=0

 

 

 

while teller<ms:

while telleri<ms:

C[telleri] = -T[teller][telleri]/T[teller][teller]

telleri=telleri+1

t[teller] = t[teller]/T[teller][teller]

T[teller] = copy.copy©

T[teller][teller] = 0

telleri=0

teller=teller+1

 

teller=0

C = 0

 

# Fjerner C verdiene fra minnet

 

while drive<70:

while line <ms:

while kolonne<ms:

matrise=T[line][kolonne]*Xn[kolonne] + matrise

kolonne=kolonne+1

z=z+1

Xm[line]=matrise + t[line]

line =line+1

kolonne=0

matrise=0

while teller<ms:

Xn[teller]=Xm[teller]

teller=teller+1

teller=0

line =0

drive = drive+1

#print drive

 

 

 

x=0

y=0

teller=0

 

while teller<ms:

if Xm[teller]>250:

pixel[x,y] = 255,0,0,255 #red

elif Xm[teller]>150:

pixel[x,y] = 0,255,0,255 #green

elif Xm[teller]>50:

pixel[x, y] = 0,0,255,255 #blue

elif Xm[teller]>0:

pixel[x,y] = 0,0,0,255 #black

teller=teller+1

x=x+1

 

if (x>(fuck-1)):

x=0

y=y+1

 

clipboard.set_image((imagebuffer), format='png')

canvas.set_size(fuck,fuck)

canvas.draw_clipboard(0,0,imagebuffer.size[0],imagebuffer.size[1])

 

teller=0

x=0

y=0

drive=0

telleri=0

while teller<ms:

# t[teller] = copy.copy(-Xm[teller])

if ((teller + 1)%fuck):

sum = Xm[teller+1] + sum

if ((teller-1)>=0):

if((telleri)%fuck):

sum = Xm[teller-1] + sum

sum = sum -4*Xm[teller]

#Matrix [telleri][telleri] = -4.0

if (teller+fuck<ms):

sum = sum + Xm[teller+fuck]

#Matrix [telleri][telleri+fuck] = 1.0

if (teller-fuck>-1):

sum = sum + Xm[teller-fuck]

Matrix [telleri][telleri-fuck] = 1.0

t[teller] = -(Xm[teller] + 0.25*sum)

#print Xm[teller]

teller=teller+1

#print teller

sum=0

print Xm[20], t[20]

teller=0

king=king+1

Xn=[0.0]*ms

 

#print -4*Xm[teller] + Xm[teller+1] + Xm[teller+fuck]

#print Xm[0]

#print z

 

 

 

 

 

Det funker ikkje med spoiler, ingen av innrykka vert med, og du får unnskylde at eg ikkje gidd finne ut kva if som byrjer og slutter kor. Om det ikkje går med kodeboks, eller å skrive bb-koden manuelt, kan du laste opp fila som vedlegg? Endret av Torbjørn T.
Lenke til kommentar

 

 

Bevegelsesligningen gir:

 

chart?cht=tx&chl=s = v_0t + \frac{1}{2}at^2 \qquad \qquad \Rightarrow \qquad \qquad t = \frac{-v_0 \pm \sqrt{v_0^2 +2as}}{a}.

 

Kun én verdi for t aktuell. Pass på når du setter inn at a er negativ.

 

Hvordan løser man for t om s=0?

 

Setter s=0?

 

Om jeg forstår det rett, kan ikke annengradsligninger løses på denne måten om (ax^2+bx+c) c=0.

Jeg prøver å regne ut tiden en gjenstand vil bruke på å bevege seg oppover (V0=12m/s), til toppunkt (7.339m) og tilbake til utgangspunktet (s=0) i vakuum (a=-9.81m/s^2).

 

Jeg brukte fartsformel (V=V0+at), omgjort til t=-V0/a som gav meg 1.223s. (-12/-9.81)

 

Om jeg løser dette med veiformel 2

s=0.5at^2+V0t

0=0.5at^2+V0t-s

 

Når jeg setter dette opp i formelen over og løser med x+ får jeg 0s (som stemmer med at ballen er ved 0m ved 0s), men om jeg løser for x- får jeg 1.223s, som er tiden jeg får ved toppunktet. Jeg vet tiden jeg er ute etter er 2.4s, ettersom ballen vil bruke like lang tid nedover igjen, men klarer ikke å regne meg frem til det. :hm:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...