人工地震波生成程序简介

姓名:郭 勇 学号:0220020128

人工地震波生成程序简介

一、 程序设计内容及方法

1、程序内容

本程序根据特征周期、水平地震波影响系数最大值和地震波幅值等初始条件生成人工地震波,为结构动力分析的时程分析法提供地震波来源。

2、程序设计方法

(1) 理论依据

本程序采用三角级数法生成人工地震波。

对于给定的功率谱密度函数S x (ω) ,按照下面的公式可以方便的生成以

S x (ω) 为功率谱密度函数、均值为零的高斯平稳过程a (t ) 。

N

式中:

a (t ) =

∑C

k =1

k

cos(ωk t +ϕk ) (1)

C k =[4S x (ωk ) ∆ω]⎪

∆ω=(ωu -ωl ) /N ⎬ (2)

⎪1

ωk =ωl +(k -) ∆ω⎪

2⎭

2

ϕk 为(0,2π) 内均匀分布的随机相角;ωu ,ωl 分别为正ω域内的上、下限值,即

认为S x (ω) 的有效功率在(ωu , ωl ) 范围内,而范围外的S x (ω) 值可视为零。

为了反映地面运动的非平稳性,采用包络函数f (t ) 乘以平稳过程a (t ) ,

(3)式即为人工地震波模型。

f (t ) 可根据下式确定:

x (t ) =f (t ) a (t ) (3)

⎧t 2/t 12⎪⎪1

f (t ) =⎨-c (t -t )

2

⎪e ⎪0⎩

0≤t

(4)

式中:c 为衰减系数,通常取值范围为0.1~1.0,本程序取0.15;t 1,t 2和t 3根据不同实际情况取值,T 为地震波持时,本程序取t 1,t 2分别为4s ,15s ,t 3和T 均为40s 。

本程序采用《建筑抗震设计规范》(GB50011-2001)中的反应谱作为目标谱,通过Kaul 提出的平稳过程反应谱与功率谱的近似关系

S x (ωk ) =

[S a (ωk )]/[-2ln(-

T

2

πωk T d

πωk

ln p )] (5)

式中:S a T (ωk ) 为规范反应谱;ξ为阻尼比;T d 为地震动持时;p 为反应不超过反应谱值的概率,本程序取0.85。通过(3)式和(5)式即可生成人工地震波。

(2) 程序实现方法

首先建立基于对话框的应用程序框架,添加的主要控件为3个编辑框和4个按钮。3个编辑框分别作为程序中的特征周期(对应成员变量为m_dTg)、水平地震影响系数最大值(对应成员变量为m_dAmax)和地震波幅值(对应成员变量为m_pd)3个数据的交互输入处;4个按钮分别为“生成地震波”、“输出地震波”、“输入地震波”和“退出”。

添加的成员函数有:Wavegener()(生成地震波) 、Wavedrawing()(绘制地震波加速度时程曲线) 、OnSTART()(对应“生成地震波”按钮,实现生成地震波的功能) 、OnOutput()(对应“输出地震波”按钮,实现输出数字化的地震波记录的功能) 和OnInput(对应“输入地震波”按钮,实现输入数字化的地震波记录并绘制其加速度时程曲线的功能) 。

几点说明:

a 生成随机相角的程序如下: srand((unsigned)time( NULL ));

for(loop=0;loop

{

int temp=rand();

temp=temp%6282+1;

adFi[loop]=double(temp)/1000; }

在调用rand()函数之前调用srand( (unsigned)time( NULL )) ,这样以time 函数值(即当前时间)作为种子数,因为两次调用rand 函数的时间通常是不同的,这样可以每次产生的随机数序列不同。

b 关于绘制地震波加速度时程曲线图:

采用Brush 填充绘图区域背景,用Pen 绘制坐标及时程曲线,用Font 输出文字,其中纵坐标的最大值采用动态输出——先得到所绘制地震波的幅值,将其转换为Cstring 型,然后输出。

c 关于数据输出和输入

分别使用ofstream 类和ifstream 类输出和输入数据。 foutfor(int loop=0;loop

foutfout.close();

从上面的这段程序可看出,输出数据文件的第一行是“t ”,地震波加速度幅值对应的时间,“a ”,地震波幅值,从第二行起每行是一个时间及这个时间对应的地震波加速度幅值。

二、实例

本节通过一实例说明程序的使用方法。

例:某地区抗震设防烈度为8度,设计基本地震加速度为0.20g ,设计地震分组为第一组,II 类场地,利用本程序生成多遇地震人工地震波。

通过初始条件可知特征周期为0.35,水平地震影响系数0.16,地震加速度时程曲线最大值70gal 。将上述数据填入程序中初始条件的3个编辑框中,点击“生成地震波”按钮,则可生成地震波,程序会自动绘制加速度时程曲线(图1) 。

点击“输出地震波”按钮,则可将人工地震波加速度记录按数字化的形式保存在文件中,可以用“记事本”或“Word ”等程序打开文件(图2) 。数据记录第一行表示在12.24秒时,人工地震波加速度具有最大值70gal(或-70gal) ,以下各行分别为时间及其对应的人工地震波加速度。

点击“输入地震波”按钮,打开一个已生成的人工地震波加速度数据记录,则程序会自动绘制人工地震波加速度时程曲线。

1

图2

姓名:郭 勇 学号:0220020128

人工地震波生成程序简介

一、 程序设计内容及方法

1、程序内容

本程序根据特征周期、水平地震波影响系数最大值和地震波幅值等初始条件生成人工地震波,为结构动力分析的时程分析法提供地震波来源。

2、程序设计方法

(1) 理论依据

本程序采用三角级数法生成人工地震波。

对于给定的功率谱密度函数S x (ω) ,按照下面的公式可以方便的生成以

S x (ω) 为功率谱密度函数、均值为零的高斯平稳过程a (t ) 。

N

式中:

a (t ) =

∑C

k =1

k

cos(ωk t +ϕk ) (1)

C k =[4S x (ωk ) ∆ω]⎪

∆ω=(ωu -ωl ) /N ⎬ (2)

⎪1

ωk =ωl +(k -) ∆ω⎪

2⎭

2

ϕk 为(0,2π) 内均匀分布的随机相角;ωu ,ωl 分别为正ω域内的上、下限值,即

认为S x (ω) 的有效功率在(ωu , ωl ) 范围内,而范围外的S x (ω) 值可视为零。

为了反映地面运动的非平稳性,采用包络函数f (t ) 乘以平稳过程a (t ) ,

(3)式即为人工地震波模型。

f (t ) 可根据下式确定:

x (t ) =f (t ) a (t ) (3)

⎧t 2/t 12⎪⎪1

f (t ) =⎨-c (t -t )

2

⎪e ⎪0⎩

0≤t

(4)

式中:c 为衰减系数,通常取值范围为0.1~1.0,本程序取0.15;t 1,t 2和t 3根据不同实际情况取值,T 为地震波持时,本程序取t 1,t 2分别为4s ,15s ,t 3和T 均为40s 。

本程序采用《建筑抗震设计规范》(GB50011-2001)中的反应谱作为目标谱,通过Kaul 提出的平稳过程反应谱与功率谱的近似关系

S x (ωk ) =

[S a (ωk )]/[-2ln(-

T

2

πωk T d

πωk

ln p )] (5)

式中:S a T (ωk ) 为规范反应谱;ξ为阻尼比;T d 为地震动持时;p 为反应不超过反应谱值的概率,本程序取0.85。通过(3)式和(5)式即可生成人工地震波。

(2) 程序实现方法

首先建立基于对话框的应用程序框架,添加的主要控件为3个编辑框和4个按钮。3个编辑框分别作为程序中的特征周期(对应成员变量为m_dTg)、水平地震影响系数最大值(对应成员变量为m_dAmax)和地震波幅值(对应成员变量为m_pd)3个数据的交互输入处;4个按钮分别为“生成地震波”、“输出地震波”、“输入地震波”和“退出”。

添加的成员函数有:Wavegener()(生成地震波) 、Wavedrawing()(绘制地震波加速度时程曲线) 、OnSTART()(对应“生成地震波”按钮,实现生成地震波的功能) 、OnOutput()(对应“输出地震波”按钮,实现输出数字化的地震波记录的功能) 和OnInput(对应“输入地震波”按钮,实现输入数字化的地震波记录并绘制其加速度时程曲线的功能) 。

几点说明:

a 生成随机相角的程序如下: srand((unsigned)time( NULL ));

for(loop=0;loop

{

int temp=rand();

temp=temp%6282+1;

adFi[loop]=double(temp)/1000; }

在调用rand()函数之前调用srand( (unsigned)time( NULL )) ,这样以time 函数值(即当前时间)作为种子数,因为两次调用rand 函数的时间通常是不同的,这样可以每次产生的随机数序列不同。

b 关于绘制地震波加速度时程曲线图:

采用Brush 填充绘图区域背景,用Pen 绘制坐标及时程曲线,用Font 输出文字,其中纵坐标的最大值采用动态输出——先得到所绘制地震波的幅值,将其转换为Cstring 型,然后输出。

c 关于数据输出和输入

分别使用ofstream 类和ifstream 类输出和输入数据。 foutfor(int loop=0;loop

foutfout.close();

从上面的这段程序可看出,输出数据文件的第一行是“t ”,地震波加速度幅值对应的时间,“a ”,地震波幅值,从第二行起每行是一个时间及这个时间对应的地震波加速度幅值。

二、实例

本节通过一实例说明程序的使用方法。

例:某地区抗震设防烈度为8度,设计基本地震加速度为0.20g ,设计地震分组为第一组,II 类场地,利用本程序生成多遇地震人工地震波。

通过初始条件可知特征周期为0.35,水平地震影响系数0.16,地震加速度时程曲线最大值70gal 。将上述数据填入程序中初始条件的3个编辑框中,点击“生成地震波”按钮,则可生成地震波,程序会自动绘制加速度时程曲线(图1) 。

点击“输出地震波”按钮,则可将人工地震波加速度记录按数字化的形式保存在文件中,可以用“记事本”或“Word ”等程序打开文件(图2) 。数据记录第一行表示在12.24秒时,人工地震波加速度具有最大值70gal(或-70gal) ,以下各行分别为时间及其对应的人工地震波加速度。

点击“输入地震波”按钮,打开一个已生成的人工地震波加速度数据记录,则程序会自动绘制人工地震波加速度时程曲线。

1

图2


相关文章

  • 高层建筑结构时程分析的地震波输入_赵伯明
  • 2010年11月第26卷第6期沈阳建筑大学学报(自然科学版) Journal of Shenyang Jianzhu University (Natural Science )Nov.2010Vol .26,No.6 文章编号:1671-2 ...查看


  • PKPM-PC装配式结构设计软件_简介
  • PKPM-PC装配式住宅设计软件简介 2016.5.28 随着建筑工业化的发展,装配式住宅在全国范围内正在逐步广泛应用,相应的行业标准<装配式混凝土结构技术规程>JGJ1-2014.国标图集.各地的地方标准图集也都纷纷编制与出版 ...查看


  • 基于ABC算法的逻辑推理题快速求解方法_李林菲
  • 计算机技术与发展第21卷 第6期 ol.21 No.6 V 2011年6月June 2011COMPUTERTECHNOLOGYANDDEVELOPMENT 基于ABC算法的逻辑推理题快速求解方法 李林菲,马 苗 (陕西师范大学计算机科学学 ...查看


  • 筒仓结构设计YJK
  • 筒仓结构设计 这里说的筒仓,是指平面为圆形.方形.矩形.多角形及其他几何外形的贮存散料的直立容器,其容纳贮料的部分为仓体.筒仓结构一般由仓上建筑物.仓盖.仓壁.筒壁.漏斗.仓下建筑物等组成.筒仓结构有时包含一个仓体,有时包含两个或多个仓体. ...查看


  • 无人机解决方案操作手册
  • 无人机数据处理完整解决方案操作手册 目录 1 产品特点 . .......................................................................................... ...查看


  • 人工智能的应用研究
  • 第25卷 第1期 邢 台 职 业 技 术 学 院 学 报 Vol.25 No.1 2008 2008年2月 Journal of Xingtai Polytechnic College Feb. 人工智能的应用研究 陈步英1,冯 红2 (1 ...查看


  • pkpm经验总结
  • 多位PKPM高手的心得汇总 PKPM中主梁与次梁的区别 ----------- --次梁在PMCAD主菜单1和主菜单2不同输入方法的比较分析 次梁 可在PMCAD主菜单1中和其它主梁一起输入,程序上称为"按主梁输入的次梁" ...查看


  • 计算机实现基于正交试验的测试用例自动生成
  • 测试分析·Testing and Analysis 计算机实现基于正交试验的 测试用例自动生成 陈磊 简炜 (中国软件评测中心 北京100048) [摘要]在软件测试过程中,想达到完全的测试在项目有限的时间和人力物力的局限之下,是不容易实现 ...查看


  • 灾后恢复重建生态环境修复
  • 灾后恢复重建生态环境修复 实用技术手册 国家减灾委员会 抗震救灾专家组 编 科 学 技 术 部 2008年6月 一 泥石流综合防治技术 (一) 技术名称: 泥石流综合防治技术 (二) 技术描述: 泥石流是山区常见的一种自然灾害,对山区的城镇 ...查看


热门内容