Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. clear;
  2. clc;
  3. l = 50;
  4. h = 25;
  5. dx = 1;
  6. d = dx;
  7. T_0 = 20;
  8. T_1 = 10;
  9. T_2 = 70;
  10. T_3 = 30;
  11. Kw = 1000;
  12. Kz = 5;
  13. C = 5e4;
  14. Tsym = 20;
  15. dT = 1e-3;
  16. global U;
  17. U = [T_1 T_2 T_3]';
  18. global n m;
  19. n = l/dx;
  20. m = h/dx;
  21. dS = dx*dx;
  22. dC = C/(n*m);
  23. T1_start = round(m/2);
  24. T2_start = round(m/2);
  25. global A B;
  26. A = sparse(n*m, n*m);
  27. B = sparse(n*m, 3);
  28. for i = 1:m
  29. for j = 1:n
  30. A_ = sparse(1, n*m);
  31. B_ = sparse(1,3);
  32. if i == 1
  33. B_(3) = B_(3) + Kz*dS/dC;
  34. A_(indeks(i,j)) = A_(indeks(i,j)) - Kz*dS/dC;
  35. else
  36. A_(indeks(i-1,j)) = A_(indeks(i-1,j)) + Kw*dS/dC;
  37. A_(indeks(i,j)) = A_(indeks(i,j)) - Kw*dS/dC;
  38. end
  39. if i == m
  40. B_(3) = B_(3) + Kz*dS/dC;
  41. A_(indeks(i,j)) = A_(indeks(i,j)) - Kz*dS/dC;
  42. else
  43. A_(indeks(i+1,j)) = A_(indeks(i+1,j)) + Kw*dS/dC;
  44. A_(indeks(i,j)) = A_(indeks(i,j)) - Kw*dS/dC;
  45. end
  46. if j == n
  47. if i < T2_start
  48. B_(3) = B_(3) + Kz*dS/dC;
  49. A_(indeks(i,j)) = A_(indeks(i,j)) - Kz*dS/dC;
  50. else
  51. B_(2) = B_(2) + Kw*dS/dC;
  52. A_(indeks(i,j)) = A_(indeks(i,j)) - Kw*dS/dC;
  53. end
  54. else
  55. A_(indeks(i,j+1)) = A_(indeks(i,j+1)) + Kw*dS/dC;
  56. A_(indeks(i,j)) = A_(indeks(i,j)) - Kw*dS/dC;
  57. end
  58. if j == 1
  59. if i < T1_start
  60. B_(1) = B_(1) + Kw*dS/dC;
  61. A_(indeks(i,j)) = A_(indeks(i,j)) - Kw*dS/dC;
  62. else
  63. B_(3) = B_(3) + Kz*dS/dC;
  64. A_(indeks(i,j)) = A_(indeks(i,j)) - Kz*dS/dC;
  65. end
  66. else
  67. A_(indeks(i,j-1)) = A_(indeks(i,j-1)) + Kw*dS/dC;
  68. A_(indeks(i,j)) = A_(indeks(i,j)) - Kw*dS/dC;
  69. end
  70. A_(indeks(i,j)) = A_(indeks(i,j)) - 2*Kz*dS/dC;
  71. B_(3) = B_(3) + 2*Kz*dS/dC;
  72. A(indeks(i,j),:) = A_;
  73. B(indeks(i,j),:) = B_;
  74. end
  75. end
  76. X0 = T_0*ones(n*m,1);
  77. TT = [0 Tsym];
  78. opts = odeset('MaxStep',dT);
  79. [X,T] = ode45('grzanie_plyty',TT,X0);
  80. for i = 1:m
  81. for j = 1:n
  82. ZZ(i,j) = T(1,indeks(i,j));
  83. end
  84. end
  85. h1 = mesh(ZZ);
  86. axis([0 50 0 25 0 70]);
  87. pause;
  88. for k = 1:10:length(T)
  89. for i = 1:m
  90. for j = 1:n
  91. ZZ(i,j) = T(k,indeks(i,j));
  92. end
  93. end
  94. set(h1,'zdata',ZZ);
  95. pause(0.01);
  96. end
  97.  
  98. function y=indeks(i,j)
  99. global n;
  100. y=(i-1)*n+j;
  101. end
  102.  
  103. function Xdot=grzanie_plyty(t,X)
  104. global A B U;
  105. Xdot = A*X + B*U;
  106. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement