%% Thesis v.1.0 % Massachusetts Institute of Technology, 2016-2017 % Master of Engineering, Department of Civil and Environmental Engineering % Nablul Haseeb %% Assumptions % *The building under consideration is a rectangular prism % *All bays in a given direction have the same width % *All concrete is normal weight concrete and has the same f'c % *All steel elements have the same grade %% User Input % clear % clc; % clf; % % s = input('Enter the number of stories: '); % h = input('Enter the height of each story in ft: '); % disp('_____________________________________________________________________') % disp('Layout 1: Bx = 48, By = 48. 3 bays each way. Layout 2: Bx = 64, By = 32. 4 bays along x, 2 bays along y') % Layout = input('Enter the layout you wish to analyze: '); % disp('_____________________________________________________________________') % wall_thickness = input('Enter the wall thickness in inches: '); % fc = input('Enter the strength of concrete in psi: '); % fy = input('Enter the grade of steel elements in ksi: '); % disp('_____________________________________________________________________') % Module = input('Enter the Module you would like to use: '); % ww = input('Enter the weight factor for weight of structure: '); % wc = input('Enter the weight factor for cost of structure: '); % we = input('Enter the weight factor for embodied-carbon of structure: '); % disp('_____________________________________________________________________') % if Layout == 1 % Bx = 48; % By = 48; % dx = 16; % dy = 16; % end % % if Layout == 2 % Bx = 64; % By = 32; % dx = 16; % dy = 16; % end %% User Input Override clear; clc; clf; Layout = 1; Configs = 1; s = 5; Sys = 2; h = 12; wall_thickness = 8; fc = 4000; fy = 50; Module = 1; if Layout == 1 Bx = 48; By = 48; dx = 16; dy = 16; end if Layout == 2 Bx = 64; By = 32; dx = 16; dy = 16; end %% Error Messages if rem((Bx/dx),1) ~= 0 error('Please enter a bay width along x that divides building width along x in an integer value'); return end if rem((By/dy),1) ~= 0 error('Please enter a bay width along y that divides building width along y in an integer value'); return end %% Material Definition Es = 29000000; % Modulus of elasticity for steel in psi Ec = 57000*(fc^0.5); % Modulus of elasticity for concrete in psi %% Module 1 if Module == 1 [bayX, bayY, FloorCoord, bayx_num, bayy_num, nx, ny, columnLine] = GeometricSetup(s, h, Bx, By, dx, dy); % Initiating global geometric setup if s == 5 && Sys == 1 mommom = 0; bracebrace = 0; wallwall = s; end if s == 5 && Sys == 2 mommom = 0; bracebrace = s; wallwall = 0; end if s == 5 && Sys == 3 mommom = s; bracebrace = 0; wallwall = 0; end if s == 5 && Sys == 4 mommom = 0; bracebrace = 2; wallwall = 3; end if s == 5 && Sys == 5 mommom = 2; bracebrace = 3; wallwall = 0; end if s == 5 && Sys == 6 mommom = 1; bracebrace = 2; wallwall = 2; end if s == 10 && Sys == 1 mommom = 0; bracebrace = 0; wallwall = s; end if s == 10 && Sys == 2 mommom = 0; bracebrace = s; wallwall = 0; end if s == 10 && Sys == 3 mommom = s; bracebrace = 0; wallwall = 0; end if s == 10 && Sys == 4 mommom = 0; bracebrace = 5; wallwall = 5; end if s == 10 && Sys == 5 mommom = 5; bracebrace = 5; wallwall = 0; end if s == 10 && Sys == 6 mommom = 3; bracebrace = 3; wallwall = 4; end if s == 20 && Sys == 1 mommom = 0; bracebrace = 0; wallwall = s; end if s == 20 && Sys == 2 mommom = 0; bracebrace = s; wallwall = 0; end if s == 20 && Sys == 3 mommom = s; bracebrace = 0; wallwall = 0; end if s == 20 && Sys == 4 mommom = 0; bracebrace = 10; wallwall = 10; end if s == 20 && Sys == 5 mommom = 10; bracebrace = 10; wallwall = 0; end if s == 20 && Sys == 6 mommom = 6; bracebrace = 7; wallwall = 7; end if s == 40 && Sys == 1 mommom = 0; bracebrace = 0; wallwall = s; end if s == 40 && Sys == 2 mommom = 0; bracebrace = s; wallwall = 0; end if s == 40 && Sys == 3 mommom = s; bracebrace = 0; wallwall = 0; end if s == 40 && Sys == 4 mommom = 0; bracebrace = 20; wallwall = 20; end if s == 40 && Sys == 5 mommom = 20; bracebrace = 20; wallwall = 0; end if s == 40 && Sys == 6 mommom = 13; bracebrace = 13; wallwall = 13; end if Configs == 1 && Layout == 1 bayx_info = [1,mommom,bracebrace,wallwall; 4,mommom,bracebrace,wallwall]; bayy_info = [1,mommom,bracebrace,wallwall]; totalmom = 3*mommom; end if Configs == 1 && Layout == 2 bayx_info = [1,mommom,bracebrace,wallwall; 5,mommom,bracebrace,wallwall]; bayy_info = [1,mommom,bracebrace,wallwall]; totalmom = 3*mommom; end if Configs == 2 && Layout == 1 bayx_info = [5,mommom,bracebrace,wallwall]; bayy_info = [5,mommom,bracebrace,wallwall; 8,mommom,bracebrace,wallwall]; totalmom = 3*mommom; end if Configs == 2 && Layout == 2 bayx_info = [2,mommom,bracebrace,wallwall]; bayy_info = [3,mommom,bracebrace,wallwall; 5,mommom,bracebrace,wallwall]; totalmom = 3*mommom; end if Configs == 3 && Layout == 1 bayx_info = [3,mommom,bracebrace,wallwall; 10,mommom,bracebrace,wallwall]; bayy_info = [3,mommom,bracebrace,wallwall; 10,mommom,bracebrace,wallwall]; totalmom = 4*mommom; end if Configs == 3 && Layout == 2 bayx_info = [4,mommom,bracebrace,wallwall; 9,mommom,bracebrace,wallwall]; bayy_info = [2,mommom,bracebrace,wallwall; 9,mommom,bracebrace,wallwall]; totalmom = 4*mommom; end if Configs == 4 && Layout == 1 bayx_info = [2,mommom,bracebrace,wallwall; 11,mommom,bracebrace,wallwall]; bayy_info = [2,mommom,bracebrace,wallwall; 11,mommom,bracebrace,wallwall]; totalmom = 4*mommom; end if Configs == 4 && Layout == 2 bayx_info = [2,mommom,bracebrace,wallwall; 10,mommom,bracebrace,wallwall]; bayy_info = [1,mommom,bracebrace,wallwall; 9,mommom,bracebrace,wallwall]; totalmom = 4*mommom; end [w_conc, w_steel] = sapapi(FloorCoord, bayX, bayY, s, h, bayx_num, bayy_num, bayx_info, bayy_info, wall_thickness, nx, ny, columnLine, Bx, By); sol = [w_steel, w_conc, totalmom]; end %% Module 2 if Module == 2 [bayX, bayY, FloorCoord, bayx_num, bayy_num, nx, ny, columnLine] = GeometricSetup(s, h, Bx, By, dx, dy); % Initiating global geometric setup % 1 = Corner (2X, 1Y), 2 = Middle (1X,2Y), 3 = Diagonal (2X,2Y), 4 = Orthogonal (2X,2Y) Config = input('Enter the lateral bracing configuration you want to analyze (1, 2, 3, 4): '); if Config == 1 if Layout == 1 bx1 = 1; bx2 = 4; by1 = 1; end if Layout == 2 bx1 = 1; bx2 = 5; by1 = 1; end end if Config == 2 if Layout == 1 bx1 = 5; by1 = 5; by2 = 8; end if Layout == 2 bx1 = 2; by1 = 3; by2 = 5; end end if Config == 3 if Layout == 1 bx1 = 3; bx2 = 10; by1 = 3; by2 = 10; end if Layout == 2 bx1 = 4; bx2 = 9; by1 = 2; by2 = 9; end end if Config == 4 if Layout == 1 bx1 = 2; bx2 = 11; by1 = 2; by2 = 11; end if Layout == 2 bx1 = 2; bx2 = 10; by1 = 1; by2 = 9; end end q = 0; for m1 = 0:s for b1 = 0:s for c1 = 0:s for m2 = 0:s for b2 = 0:s for c2 = 0:s if (m1 + b1 + c1 == s) && (m2 + b2 + c2 == s) q = q + 1; end end end end end end end ui = input(['There are ' num2str(q) ' solutions. Do you want to proceed? enter 1 for yes, 0 for no: ']); sol = zeros(q,9); if ui == 1 if Config == 1 q = 1; for m1 = 0:s for b1 = 0:s for c1 = 0:s for m2 = 0:s for b2 = 0:s for c2 = 0:s if (m1 + b1 + c1 == s) && (m2 + b2 + c2 == s) bayx_info = [bx1,m1,b1,c1; bx2,m1,b1,c1]; bayy_info = [by1,m2,b2,c2]; [w_conc, w_steel] = sapapi(FloorCoord, bayX, bayY, s, h, bayx_num, bayy_num, bayx_info, bayy_info, wall_thickness, nx, ny, columnLine, Bx, By); sol(q,1) = m1; sol(q,2) = b1; sol(q,3) = c1; sol(q,4) = m2; sol(q,5) = b2; sol(q,6) = c2; sol(q,7) = w_conc; sol(q,8) = w_steel; sol(q,9) = (2*m1) + m2; q = q + 1 end end end end end end end end str1 = 'Module2_Mode'; str2 = num2str(Config); str3 = '_Bx'; str4 = num2str(Bx); str5 = '_By'; str6 = num2str(By); str7 = '_Story'; str8 = num2str(s); str_all = strcat(str1,str2,str3,str4,str5,str6,str7,str8); csvwrite(str_all,sol); if Config == 2 q = 1; for m1 = 0:s for b1 = 0:s for c1 = 0:s for m2 = 0:s for b2 = 0:s for c2 = 0:s if (m1 + b1 + c1 == s) && (m2 + b2 + c2 == s) bayx_info = [bx1,m1,b1,c1]; bayy_info = [by1,m2,b2,c2; by2,m2,b2,c2]; [w_conc, w_steel] = sapapi(FloorCoord, bayX, bayY, s, h, bayx_num, bayy_num, bayx_info, bayy_info, wall_thickness, nx, ny, columnLine, Bx, By); sol(q,1) = m1; sol(q,2) = b1; sol(q,3) = c1; sol(q,4) = m2; sol(q,5) = b2; sol(q,6) = c2; sol(q,7) = w_conc; sol(q,8) = w_steel; sol(q,9) = m1 + (2*m2); q = q + 1 end end end end end end end end str1 = 'Module2_Mode'; str2 = num2str(Config); str3 = '_Bx'; str4 = num2str(Bx); str5 = '_By'; str6 = num2str(By); str7 = '_Story'; str8 = num2str(s); str_all = strcat(str1,str2,str3,str4,str5,str6,str7,str8); csvwrite(str_all,sol); if Config == 3 || Config == 4 q = 1; for m1 = 0:s for b1 = 0:s for c1 = 0:s for m2 = 0:s for b2 = 0:s for c2 = 0:s if (m1 + b1 + c1 == s) && (m2 + b2 + c2 == s) bayx_info = [bx1,m1,b1,c1; bx2,m1,b1,c1]; bayy_info = [by1,m2,b2,c2; by2,m2,b2,c2]; [w_conc, w_steel] = sapapi(FloorCoord, bayX, bayY, s, h, bayx_num, bayy_num, bayx_info, bayy_info, wall_thickness, nx, ny, columnLine, Bx, By); sol(q,1) = m1; sol(q,2) = b1; sol(q,3) = c1; sol(q,4) = m2; sol(q,5) = b2; sol(q,6) = c2; sol(q,7) = w_conc; sol(q,8) = w_steel; sol(q,9) = (2*m1) + (2*m2); q = q + 1 end end end end end end end end str1 = 'Module2_Layout'; str2 = num2str(Layout); str3 = '_Config'; str4 = num2str(Config); str5 = '_Story'; str6 = num2str(s); str_all = strcat(str1,str2,str3,str4,str5,str6); csvwrite(str_all,sol); end end