Advertisement
Hagelberganton

Untitled

Dec 8th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. clear all; clc;
  2. load 'STOCKHOLMSDATA.mat' Tm;
  3.  
  4.  
  5. A = zeros(length(Tm),3);
  6. A(:,1) = 1;
  7. A(:,2) = 1:length(Tm);
  8. Ts = 240;
  9. modellvard = zeros(length(Tm),1);
  10. Omega = 2*pi/(365*24);
  11. x = zeros(3,1);
  12. %Ber??kna konstanterna
  13. tic
  14. for i = 1:length(Tm)
  15. A(i,3) = sin(Omega*(i - Ts));
  16. end
  17. toc
  18. x = A\Tm;
  19. %Ber??kna normen
  20. modellvard(1:length(Tm)) = anpass(x,1:length(Tm),Omega,Ts);
  21. resnorm = norm(Tm - modellvard);
  22.  
  23. Ts2 = 182*24;
  24.  
  25. resnorm2 = zeros(Ts2,1);
  26. %Ber??kna normen av residualen f??r olika Ts.
  27.  
  28. for c = 1:Ts2
  29. %Ber??kna konstanterna med varierande Ts.
  30. for i = 1:length(Tm)
  31. A(i,3) = sin(Omega*(i - c));
  32. end
  33. x2 = A\Tm;
  34. modellvard(1:length(Tm)) = anpass(x2,1:length(Tm),Omega,c);
  35. resnorm2(c) = norm(Tm - modellvard);
  36. end
  37. %Hitta Ts med minst norm
  38. [minnorm,index]=min(resnorm2);
  39.  
  40. for i = 1:length(Tm)
  41. A(i,3) = sin(Omega*(i - index));
  42. end
  43. x3 = A\Tm;
  44.  
  45. %Plotta figurer
  46. figure(1);
  47. %v??rden fr??n start
  48. plot(1:length(Tm),anpass(x,1:length(Tm),Omega,Ts));
  49. hold on; grid on;
  50. xlabel('Timmar');
  51. ylabel('Temperatur');
  52. %Data
  53. plot(1:length(Tm),Tm);
  54. %Anpassade v??rden med minst norm
  55. plot(1:length(Tm),anpass(x3,1:length(Tm),Omega,index),'k');
  56. %Fasf??rskjutning i dagar
  57. fasfor = round(index/24);
  58. %Kallaste dagen p?? ??ret blir 26 Januari, Varmaste 27 Juli. Det sker en
  59. %temperatur??kning med ungef??r 1 grad.
  60.  
  61. function s = anpass(x,t,Omega,Ts)
  62. s = x(1) + x(2).*t + x(3).*sin(Omega.*(t-Ts));
  63. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement