t2/t12 1
f(t) c(t t)
2
e 0
0 t t1t1 t t2t2 t t3t3 t T
(4)
式中:c为衰减系数,通常取值范围为0.1~1.0,本程序取0.15;t1,t2和t3根据不同实际情况取值,T为地震波持时,本程序取t1,t2分别为4s,15s,t3和T均为40s。
本程序采用《建筑抗震设计规范》(GB50011-2001)中的反应谱作为目标谱,通过Kaul提出的平稳过程反应谱与功率谱的近似关系
Sx( k)
2
[Sa( k)]/[ 2ln(
T
2
kTd
k
lnp)] (5)
式中:SaT( k)为规范反应谱; 为阻尼比;Td为地震动持时;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<10000;loop++)