
import numpy as np
y_t=lambda f,t,A:A*np.sin(2*np.pi*f*t)*(t<=0.5/f)
ti=np.array(np.linspace(0,1,1000,False))#0:0.001:1;
y_ti=y_t(10,ti,10)
#np.savetxt(r'data.txt', np.c_[np.mat([ti,y_ti]).T], fmt='%f', delimiter=',')
np.savetxt(r'data.txt', np.c_[ti,y_ti], fmt='%f', delimiter=',')
np.savetxt(r'data_t_Y.txt', np.c_[ti,y_ti][:int(1*(0.5/10)*1000+1)], fmt='%f', delimiter=',')



import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
file_path = r'data_RS.xls'
dataFrame =pd.read_excel(file_path)
#data=dataFrame.values[:,1:] #二维数组
f=1/dataFrame.values[0:,0]
y=dataFrame.values[0:,1]
f=f[::-1][:np.size(f)-1]
y=y[::-1][:np.size(y)-1]
plt.plot(f,y,label='Response Spectra')
plt.legend()
plt.show()
damp=np.ones(int(np.size(f)))*0.02
np.savetxt(r'data_f_RS.txt', np.c_[y,f,damp], fmt='%f', delimiter=',')
瞬态响应,可以看到4阶模态贡献最大,竖立方向y向,与激励方向一样。

响应谱结果,结果只有一个点,和瞬态计算的最大值很接近。
