Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. %Group 17 Optimiser file
  2. clc
  3. clear
  4. format compact
  5. format short g
  6. close all
  7. %--------------------------------------
  8. r_i=0.01; %Internal radius (m)
  9. t=0.001; %Thickness (m)
  10. r_o=r_i+t;
  11. P=3; %Pressure (bars)
  12.  
  13.  
  14. S_y=170; %Yield stress (MPa)
  15. n_d=2; %Safety factor
  16. stress_all=S_y/n_d %Allowable stress (MPa)
  17. %--------------------------------------
  18. %Constraints
  19. C=1400*17/1000 % Capacity or Vi (m^3)
  20. H=<3.5; %Height(m)
  21. CF=10 %Cost factor from sections
  22. %--------------------------------------
  23. sol=[];
  24. for i=1:length(section)
  25. r_i=section(i).r_i;
  26. for j=1:length(section(i).t
  27. t=section(i).t(j);
  28. for k=1:length(section(i).L
  29. L=section(i).L(k)
  30. if t/r_i<0.05 %Thin walled
  31. sigma_t=P*r_i/t;
  32. sigma_r=0;
  33. sigma_l=P*r_i/(2*t);
  34. else %Thick walled
  35. sigma_t=r_i^2*P/(r_o^2-r_i^2)*(1+r_o^2/r_i^2);
  36. sigma_r=r_i^2*P/(r_o^2-r_i^2)*(1-r_o^2/r_i^2);
  37. sigma_l=r_i^2*P/(r_o^2-r_i^2);
  38. end
  39. sigma_vM=sqrt(((sigma_t-sigma_r)^2+(sigma_t-sigma_l)^2+(sigma_l-sigma_r)^2)/2) %von Mises stress (MPa)
  40. if L<0 || H<0 || S_y<0 || r_i<0 || stress_all<0 || t<0 || P<0
  41. errorlg(' All inputs must be greater than zero')
  42. elseif sigma_vM<=stress_all %Check if von Mises stress is greater than allowable stress
  43. V_mat=2*pi*r_i*L+4*pi*r_i^2*t; %Volume of material (m^3)
  44. H=2*r_o %Height (m)
  45. L_T=L+H %Total length (m)
  46. v_cost=V_mat*CF %Vessel cost (£)
  47. sol=[sol;r_i,t,H,L_T,V_mat,v_cost]
  48. end
  49. end
  50. end
  51. end
  52.  
  53.  
  54. sol_sorted=sortrows(sol,4); %Sort feasible solutions based on vessel cost
  55. op_sol=sol_sorted(1,:);
  56. %--------------------------------------
  57. %Display optimum values
  58. disp(['optimum internal radius (m)=',num2str(sol_sorted(1,1))])
  59. disp(['optimum thickness (m)=',num2str(sol_sorted(1,2))])
  60. disp(['optimum height (m)=',num2str(sol_sorted(1,3))])
  61. disp(['optimum total length (m)=',num2str(sol_sorted(1,4))])
  62. disp(['optimum material volume (m^3)=',num2str(sol_sorted(1,5))])
  63. disp(['optimum vessel cost (£)=',num2str(sol_sorted(1,6))])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement