import numpy as np
import matplotlib.pyplot as plt
def wg(t,w0,a,T):
wg=w0-a*t/T
return wg
def xig(t,xi0,b,T):
xig=xi0-b*t/T
return xig
def S0(t,amax,r,wg,xig):
S0=2*amax**2/(r**2*np.pi*wg*(2*xig+1/(2*xig)))
return S0
def A2(t,c,d):
A2=(t/c*np.exp(1-t/c))**d
return A2
def Sxg(t,w,wg,xig,wf,xif,A2,S0):
Sxg=A2*\
(wg**4+4*xig**2*wg**2*w**2)/((w**2-wg**2)**2+4*xig**2*wg**2*w**2)*\
(w**4)/((w**2-wf**2)**2+4*xif**2*wf**2*w**2)\
*S0
return Sxg
def XkYk(N):
j=np.arange(N)
theta=np.random.uniform(-np.pi,np.pi)
k=j
Xk=np.sqrt(2)*np.cos(k*theta+np.pi/4)
Yk=np.sqrt(2)*np.cos(k*theta+np.pi/4)
return Xk,Yk
def XkYk_double(nsel):
Theta1=np.random.uniform(0,2*np.pi,nsel)
Theta2=np.random.uniform(0,2*np.pi,nsel)
Xk=np.cos(nsel*Theta1)+np.sin(nsel*Theta1)
Yk=np.cos(nsel*Theta2)+np.sin(nsel*Theta2)
return Xk,Yk
def Xg_nonstationary(t,deltaw,wk,Xk,Yk,Sxg):
P=(np.cos(wk*t)).T*Xk+(np.sin(wk*t)).T*Yk
print(P.shape)
O=np.sqrt(2*Sxg*deltaw)
print(O.shape)
X_m=P.T*O
print(X_m.shape)
return X_m
w0=11;xi0=0.7;a=8;b=0.15;c=7;d=2;T=30;r=2.65;nsel=1601;deltaw=0.2;amax=200
#单变量
_Xn=XkYk(nsel)[0];_Yn=XkYk(nsel)[0]
kkk=np.random.permutation(nsel)#随机打乱一个数字序列
Xk=_Xn[kkk]
Yk=_Yn[kkk]
wg=5*np.pi;xig=0.60;wf=0.5*np.pi;xif=0.60;amax=200;r=2.8;wu=240;T=30
deltaw=0.15;
tt=np.arange(0,T,0.01);k=np.arange(0,nsel);w=k*deltaw
t,wk=np.meshgrid(tt,w)
def Sug(S0,wg,xig,wf,xif,w):
Sug=S0*\
(wg**4+4*xig**2*wg**2*w**2)/((w**2-wg**2)**2+4*xig**2*wg**2*w**2)*\
(w**4)/((w**2-wf**2)**2+4*xif**2*wf**2*w**2)
return Sug
def Xg_stationary(t,deltaw,wk,Xk,Yk,Sug):
P=(np.cos(wk*t)).T*Xk+(np.sin(wk*t)).T*Yk
print(P.shape)
O=np.sqrt(2*Sug*deltaw)
print(O.shape)
X_m=O*P
print(X_m.shape)
return X_m
S0=amax**2/(r**2*(np.pi*wg*(2*xig+1/(2*xig))))
Sug1=Sug(S0,wg,xig,wf,xif,w)
#平稳时间序列的生成
X_sat=Xg_stationary(t,deltaw,wk,Xk,Yk,Sug1)
result_sationary=np.sum(X_sat,axis=1)
import pandas as pd
Station_series=pd.DataFrame(result_sationary,index=tt,columns=['Stationary acceleration'])
plt.figure(2)
Station_series.plot(figsize=(6,2),color='k',lw=1,xlabel='Time',ylabel=r'$Accelerate (cm/s^2)$')
plt.tight_layout()
plt.show(block=True)
没有合适的资源?快使用搜索试试~ 我知道了~
基于Clough–Penzien谱模拟平稳加速度时程和非平稳地震序列.rar
共4个文件
txt:2个
png:2个
5 下载量 123 浏览量
2023-08-04
10:00:03
上传
评论
收藏 39KB RAR 举报
温馨提示
基于Clough–Penzien谱模拟平稳加速度时程和非平稳地震序列,基于python实现。
资源推荐
资源详情
资源评论
收起资源包目录
基于Clough–Penzien谱模拟平稳加速度时程和非平稳地震序列.rar (4个子文件)
基于Clough–Penzien谱模拟平稳加速度时程和非平稳地震序列
非平稳地震时程.png 16KB
平稳加速度序列.png 21KB
非平稳地震加速度时程.txt 2KB
平稳加速度时间序列生成.txt 2KB
共 4 条
- 1
资源评论
小孟的CDN
- 粉丝: 565
- 资源: 53
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功