1 svar
69 visningar
Blåvalen 362
Postad: 1 dec 2022 21:50 Redigerad: 1 dec 2022 21:51

Fråga om differentialekvation - avsvalning av kaffe

Hej,

Jag har tagit fram en differentialekvation för avslaningen av kaffe med och utan lock. Detta med hjälp av ekvationen 

d(mCpT)/dt = -Qvägg - Qstrålning-Qvätska-Qvap.

På python ser det ut såhär med mina värden:

def avsvalningTu(t,T):
    r2 = 0.0375 #m
    h = 0.08 #m
    r1 = 0.0275 #m
    T2 = 25 #°C
    k = 6.5*10**-3 #m/s (massöverföringstal)
    b = 0.001
    alfa1 = 3 #[W/m**2 °C]
    alfa2 = 200 #[W/m**2 °C]¨
    boltzk = 5.65 * 10**-8 #W/m**2k**4
    emissP = 0.93
    lambd = 0.18
    A = 10.19625
    B = 1730.630
    C = 233.426
    deltaHvap = 22060 #J/mol
    R = 8.3145 #J/mol*k
    Mv = 18.01528*10**-3
    m = 0.18 #kg
    Cp = 4.18*1e3 #J/kg*C
   
    dT1dt = -((emissP*boltzk)*2*np.pi*r1*h*((T+273.15)**4-(T2+273.15)**4))/(m*Cp)-(((1/alfa1)+ (1/alfa2))**(-1)*np.pi*r2*(T-T2))/(m*Cp)-(1/alfa1 + b/lambd + 1/alfa2)**(-1)*2*np.pi*r1*h*(T-T2)/(m*Cp) -(deltaHvap*np.pi*(r2**2)*k/R*(10**(A-(B/(T+C)))/(T+273.15) - 0.5*(10**(A-(B/(25+C)))/(25+273.5))))/(m*Cp)

    return dT1dt
 #~~~ Lös den dynamsika modellen ~~~
T0 = [91] # startemperaturen
t_span = [0,90*60]
sol_dyn = solve_ivp(lambda t, T: avsvalningTu(t,T), t_span, T0)
t = sol_dyn.t
T = sol_dyn.y.T
# ~~~ Hitta den stationära punkten ~~~
T_g = 25 # gissninsvärde
sol_stat = root(lambda T: avsvalningTu(0, T), T_g)
T_stat = sol_stat.x
print(T_stat)
plt.plot(t/60, T, '--', label='Simulering - avsvalning kaffe utan lock')
plt.xlabel('Tid [min]')
plt.ylabel(r'Temperatur $[°C]$')


def avsvalningTm(t,T):
    r2 = 0.0375 #m
    h = 0.08 #m
    r1 = 0.0275 #m
    T2 = 25 #°C
    k = 6.5*10**-3 #m/s (massöverföringstal)
    b = 0.001
    alfa1 = 3 #[W/m**2 °C]
    alfa2 = 200 #[W/m**2 °C]¨
    boltzk = 5.65 * 10**-8 #W/m**2k**4
    emissP = 0.93
    lambd = 0.18
    A = 10.19625
    B = 1730.630
    C = 233.426
    R = 8.3145 #J/mol*k
    Mv = 18.01528*10**-3
    m = 0.18 #kg
    Cp = 4.18*1e3 #J/kg*C
   
    dT1dt = -((emissP*boltzk)*2*np.pi*r1*h*((T+273.15)**4-(T2+273.15)**4))/(m*Cp)-(((1/alfa1)+ (1/alfa2))**(-1)*np.pi*r2*(T-T2))/(m*Cp)-(1/alfa1 + b/lambd + 1/alfa2)**(-1)*2*np.pi*r1*h*(T-T2)/(m*Cp)

    return dT1dt

# ~~~ Lös den dynamsika modellen ~~~
T0 = [92] # startemperaturen
t_span = [0,90*60]

dTdt_Tu=avsvalningTu(0,T0[0])
print(dTdt_Tu)

dTdt_Tm=avsvalningTm(0,T0[0])
print(dTdt_Tm)

sol_dyn = solve_ivp(lambda t, T: avsvalningTm(t,T), t_span, T0)
t = sol_dyn.t
T = sol_dyn.y.T
# ~~~ Hitta den stationära punkten ~~~
T_g = 25 # gissninsvärde
fun_stat = lambda T: avsvalningTm(0, T)
sol_stat = root(fun_stat, T_g)
T_stat = sol_stat.x
print(T_stat)
plt.plot(t/60, T, '^:g', label=r'Simulering - avsvalning kaffe med lock')
plt.xlabel('Tid [min]')
plt.ylabel(r'Temperatur $[°C]$')
plt.legend(loc='best')
plt.grid()
plt.show()

Kravet på kaffekoppen är att den ska hålla 50 grader i minst 20 minuter. Jag undrar nu hur man kan göra för att ta reda på hur mycket serveringstemperaturn på kaffet kan sänkas och och fortfarande klara temperaurkravet. Kan det vara så enkelt som att man ska sätta in värden och studera kurvan? Jag tänker att man bör leta efter det T som gör att arean under kurvan (primTstart-prim50) är 20.  Dock känns det väldigt svårt att hitta den primitva funktionen till en funktion som har så många amdra variabler.

Laguna Online 30472
Postad: 3 dec 2022 08:38

Hur ser differentialekvationen ut om man renskriver den så man ser var T förekommer? Den kanske går att lösa.

Annars får du använda nån ekvationslösare med den funktion som du har.

Svara
Close