Advertisement
-TesseracT-

Untitled

Apr 9th, 2020
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 3.13 KB | None | 0 0
  1. %% Uppgift 8
  2. clear all
  3. clf
  4. clc
  5.  
  6. global CO2Emissions  CO2ConcRCP45 A tau_init k M_0
  7.  
  8. % Ladda upp data
  9.  
  10. utslappRCP45;
  11. koncentrationerRCP45;
  12. beta = 0.35;
  13. omvandlingsfaktor = 0.469;
  14. A = [0.113, 0.213, 0.258, 0.273, 0.1430];
  15. tau_init = [2.0, 12.2, 50.4, 243.3, inf];
  16. M_0 = 278.05158;
  17. k = 2*3.06e-3;
  18.  
  19. %Förindustriella begynnelsevärden
  20.  
  21. B_10 = 600;
  22. B_20 = 600;
  23. B_30 = 1500;
  24. B_40 = 38000;
  25. F_120 = 60;
  26. F_210 = 15;
  27. F_310 = 45;
  28. F_230 = 45;
  29. alpha_12 = F_120/B_10;
  30. alpha_13 = 0;
  31. alpha_21 = F_210/B_20;
  32. alpha_23 = F_230/B_20;
  33. alpha_31 = F_310/B_30;
  34. alpha_32 = 0;
  35. NPP0 = F_120;
  36.  
  37. B1 = zeros(1, length(CO2Emissions));
  38. B2 = zeros(1, length(CO2Emissions));
  39. B3 = zeros(1, length(CO2Emissions));
  40. B4 = zeros(1, length(CO2Emissions));
  41. B1(1)=B_10; % Begynnelsevärden
  42. B2(1)=B_20; % Begynnelsevärden
  43. B3(1)=B_30; % Begynnelsevärden
  44. B4(1)=B_40; % Begynnelsevärden
  45. B1_dot = zeros(1, length(CO2Emissions)+1);
  46. B1_dot_tilde = zeros(1, length(CO2Emissions));
  47. B2_dot = 0;
  48. B3_dot = 0;
  49. inre_summa = zeros(1, 5);
  50. yttre_summa = zeros(1,length(CO2Emissions));
  51. impulssvar = zeros(1,length(CO2Emissions));
  52. dot = 0;
  53.  
  54. for t = 1:length(CO2Emissions)
  55.    
  56.     NPP = NPP0*(1 + beta*log(B1(t)/B_10));
  57.     B1_dot(t) = alpha_31*B3(t) + alpha_21*B2(t) - NPP + CO2Emissions(t);
  58.     B2_dot = NPP -(alpha_23+alpha_21)*B2(t);
  59.     B2(t+1) = B2(t) + B2_dot;
  60.     B3_dot = alpha_23*B2(t)-alpha_31*B3(t);
  61.     B3(t+1) = B3(t)+ B3_dot;
  62.  
  63.     for tilde = 1:t
  64.         for i = 1:5
  65.             inre_summa(i) = sum(A(i)*exp(-(t-tilde)/(tau_init(i)*k*sum(B1_dot(1:t)))));
  66.         end
  67.         impulssvar(tilde) = sum(inre_summa)*B1_dot(tilde);
  68.     end
  69.    
  70.     if t ~= length(CO2Emissions)
  71.         B1(t+1) = B_10 + sum(impulssvar) + sum(A) * (alpha_31*B3(t+1) + alpha_21*B2(t+1) - NPP + CO2Emissions(t+1));
  72.     else
  73.         B1(t+1) = B_10 + sum(impulssvar);
  74.     end
  75.  
  76. end
  77.  
  78.  
  79. % Ta bort sista elementet för att få längd 736
  80.  
  81. B1 = B1(1:end-1);
  82. B2 = B2(1:end-1);
  83. B3 = B3(1:end-1);
  84.  
  85. T = linspace(1765,2500,736);
  86.  
  87. subplot(1,2,1)
  88. plot(T,B1)
  89. hold on
  90. plot(T,B2)
  91. xlim([min(T)  1765+length(T)])
  92. ylim([600 1600])
  93. title('CO2 och kol i box 1 & 2 sedan 1765.')
  94. xlabel('Tid (År)')
  95. ylabel('Kolstock (GtC)')
  96. legend({'B_1 = Atmosfär','B_2 = Ovan jord'},'Location','best')
  97. set(gca,'FontSize',10,'TickLabelInterpreter','latex')
  98. grid,box on
  99.  
  100. subplot(1,2,2)
  101. plot(T,B3)
  102. xlim([min(T)  1765+length(T)])
  103. ylim([min(B3) max(B3)])
  104. title('Kol i box 3 sedan 1765.')
  105. xlabel('Tid (År)')
  106. ylabel('Kolstock (GtC)')
  107. legend({'B_3 = Under jord'},'Location','best')
  108. set(gca,'FontSize',10,'TickLabelInterpreter','latex')
  109. grid,box on
  110. hold off
  111.  
  112. %% Figur för koncentrationen
  113. clf
  114. konc = B1*omvandlingsfaktor;
  115.  
  116. plot(T,CO2ConcRCP45)
  117. hold on
  118. plot(T,konc)
  119. xlim([min(T)  1765+length(T)])
  120. %ylim([min(konc) max(CO2ConcRCP45)+10])
  121. title('CO2 koncentration i atmosfären sedan 1765.')
  122. xlabel('Tid (År)')
  123. ylabel('CO_2-koncentration(PPM)')
  124. set(gca,'FontSize',10,'TickLabelInterpreter','latex')
  125. legend({'Data','Modell'},'Location','northwest')
  126. grid,box on
  127. hold off
  128.  
  129. %% havets kolstock vid år 2100
  130. H = 38000 + sum(CO2Emissions(1:335)) - (B1(336)-B1(1)) - (B2(336)-B2(1)) - (B3(336)-B3(1))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement