Różnice między wybraną wersją a wersją aktualną.
Poprzednia rewizja po obu stronach Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
studia:magisterskie:1sem:modelowanie_procesow_fizycznych [2016/05/25 08:28] 149.156.112.6 [Zajęcia 3] |
studia:magisterskie:1sem:modelowanie_procesow_fizycznych [2016/06/01 08:49] (aktualna) 91.227.212.3 [Drugi Program Maciek] |
||
---|---|---|---|
Linia 160: | Linia 160: | ||
figure; | figure; | ||
plot(C); %wyświetlamy wykres zmiany stężenia co krok | plot(C); %wyświetlamy wykres zmiany stężenia co krok | ||
+ | end | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Drugi Program Maciek ===== | ||
+ | |||
+ | <code matlab> | ||
+ | temp = 780; | ||
+ | Q = 140000; | ||
+ | R = 8.3144; | ||
+ | temp_k = temp + 273; | ||
+ | d0 = 0.000041; | ||
+ | D=d0*exp(-Q /(R * temp_k))*1E10 ; | ||
+ | dt = 0.01; | ||
+ | dx = 0.1; | ||
+ | pN = 0; | ||
+ | time = 50; | ||
+ | K(6:100) = 0.02; | ||
+ | K(1:5) = 0.67; | ||
+ | ksi = 6; | ||
+ | | ||
+ | Clen = int32(time/dt); | ||
+ | C(1:Clen) = 0.0; | ||
+ | %Neuman | ||
+ | if (D*dt)/dx^2<=0.5 | ||
+ | | ||
+ | j = 1; | ||
+ | for k = 0:dt:time | ||
+ | | ||
+ | C(l) = trapz(K); %Calka | ||
+ | j = j + 1; | ||
+ | K = [K(1), K, K(length(K))]; | ||
+ | TempK = K; | ||
+ | K(ksi+1) = K(ksi); | ||
+ | for i = 2:1:ksi+1 | ||
+ | TempK (i) = D*(dt/dx^2)*(K(i+1)+K(i-1)) + K(i)*(1 - 2*D*(dt/dx^2)); | ||
+ | end | ||
+ | | ||
+ | K = TempK; | ||
+ | K = K(2:1:length(K)-1); | ||
+ | | ||
+ | if (mod(j,100) == 2) | ||
+ | plot(K) | ||
+ | hold on | ||
+ | end | ||
+ | |||
+ | y=-0.004074074074074075*temp+3.7155555555555555; | ||
+ | %zwiekszanie granicy | ||
+ | if K(ksi) >= y && ksi < length(K)-1 | ||
+ | ksi = ksi + 1; | ||
+ | end | ||
+ | | ||
+ | temp = temp + pN * dt; | ||
+ | temp_k = temp + 273; | ||
+ | D=d0*exp(-Q /(R * temp_k))*1E10; | ||
+ | if (D*dt)/dx^2>0.5 | ||
+ | break; | ||
+ | end | ||
+ | end | ||
+ | figure; | ||
+ | plot(C); | ||
end | end | ||
</code> | </code> |