plt.show() # determine global forces and moments from floor accelerations (assuming equilibrium and equal distributions) if Plot[9] or Plot[11] == 1: # Mb = {'Earthquake' : 'Moments'} # Vbs = {'Earthquake' : 'Base shear'} for i in test_name: accb = CompareRecords(Earthquake[i]['Accel_Bottom_floor_pair']*9.81, Earthquake[i]['Accel_Bottom_beam_pair']*9.81, DT, DT) accb.Remove_average() accb.Butter_pass(BP) acct = CompareRecords(Earthquake[i]['Accel_Top_floor_pair']*9.81, Earthquake[i]['Accel_Top_beam_pair']*9.81, DT, DT) acct.Remove_average() acct.Butter_pass(BP) [N_col, V_bs] = forces(accb.motions[0]/9.81, accb.motions[1]/9.81, acct.motions[0]/9.81, acct.motions[1]/9.81, frame_type) Earthquake[i]['N_col'] = N_col if 'fac' in frame_type or 'ult' in frame_type: accg = CompareRecords(Earthquake[i]['Accel_Ground']*9.81, Earthquake[i]['Accel_ground_int']*9.81, DT, DT) accg.Remove_average() accg.Butter_pass(BP) facade = 0.08*(3.990-2.0)*(1.590-0.9)*2.35 #t Earthquake[i]['Vbs'] = V_bs + (Earthquake[i]['Force_Bottom_Fass_South'])*2#+Earthquake[i]['Force_Bottom_Fass_North']) Earthquake[i]['Vfs'] = accg.motions[0]*9.81*facade - (Earthquake[i]['Force_Bottom_Fass_South'])*2 Earthquake[i]['Vbs_tot'] = V_bs + accg.motions[0]*9.81*facade else: Earthquake[i]['Vbs'] = V_bs # connections if Plot[9] == 1:
P3.plot(time_ta, table_acceleration, label='ta') P3.legend() if ruau_show == 1: P1.plot(time_ruau, Ruaumoko['floor_acceleration_2']/-9.81, 'r', label='Ruaumoko') # P1.plot(time_ruau, Ruaumoko['floor_displacement_6']/9.81, label='Ruaumoko_floor', 'b--') P2.plot(time_ruau, Ruaumoko['floor_acceleration_1']/-9.81, 'r') # P2.plot(time_ruau, Ruaumoko['floor_displacement_5']/9.81, 'r--') P3.plot(time_ruau, Ruaumoko['floor_acceleration_0']/9.81, 'r') else: P1.plot(time, channel['Accel_Top_floor_single'], label='Floor-single') P1.plot(time, channel['Accel_Top_floor_pair'], label='Floor-pair') P2.plot(time, channel['Accel_Bottom_floor_single'], label='Floor-single') P2.plot(time, channel['Accel_Bottom_floor_pair'], label='Floor-pair') P1.legend() plt.show() [Mb, Vbs] = forces(channel['Accel_Bottom_floor_pair'], channel['Accel_Bottom_beam_pair'], channel['Accel_Top_floor_pair'], channel['Accel_Top_beam_pair']) # connection rotations if Plot[3] == 1: V = ['Top_', 'Bottom_', 'Col_S',] H = ['W', 'E'] rotation = {'location' : 'data'} for i in range(len(V)): for j in range(len(H)): if V[i]+H[j] == 'Col_SW': D = (265.0-30.0) elif V[i]+H[j] == 'Col_SE': D = (265.0-25) else: D = (220.0-30) rotation[V[i]+H[j]] = (channel['Pot_'+V[i]+H[j]+'1']-channel['Pot_'+V[i]+H[j]+'3'])/D*100