袁 棪, 馬樂為, 宋 林
(西安建筑科技大學(xué) 土木工程學(xué)院,陜西 西安 710055)
地震是危害最大的自然災(zāi)害之一,給人類帶來無法估量的損失.故此,在結(jié)構(gòu)設(shè)計(jì)中地震是絕大部分工程結(jié)構(gòu)的控制荷載.盡管人類在防御和抗御地震災(zāi)害方面始終不懈的努力,但是直今,地震仍然威脅著人類社會(huì),抗震理論及計(jì)算方法還尚需進(jìn)一步的完善[1-3].地震反應(yīng)譜是進(jìn)行結(jié)構(gòu)抗震分析與設(shè)計(jì)的重要工具,對(duì)設(shè)防標(biāo)準(zhǔn)和結(jié)構(gòu)的動(dòng)力特性有一定影響.地震反應(yīng)譜是單質(zhì)點(diǎn)體系在相同阻尼與不同自振周期某一地震動(dòng)時(shí)程作用下的最大反應(yīng),其可分為位移反應(yīng)譜、速度反應(yīng)譜和加速度反應(yīng)譜[4].它們以不同的形式表示結(jié)構(gòu)反應(yīng)的相同信息,在已知其中一個(gè)譜情況下,則可根據(jù)三者的關(guān)系得出另兩個(gè)譜.但是我們還在一直研究三種譜,這是因?yàn)橐韵略颍?1)每種譜表示的物理量不同.位移譜表示體系的峰值位移,速度譜與峰值應(yīng)變能直接相關(guān),加速度譜與等效靜力及基底剪力的峰值直接相關(guān);(2)通過三個(gè)譜我們可以更加方便地估計(jì)設(shè)計(jì)譜的近似形狀,便于實(shí)際工程計(jì)算應(yīng)用.通過研究固有周期范圍內(nèi)反應(yīng)譜的性質(zhì),以及在阻尼影響下其譜的縱坐標(biāo)的反應(yīng).可以將反應(yīng)譜分為以下三個(gè)周期段:Tn<0.5s的加速度敏感區(qū),0.5s
目前,三聯(lián)反應(yīng)譜廣泛用于結(jié)構(gòu)抗震分析領(lǐng)域,其對(duì)數(shù)坐標(biāo)圖形常采用繪圖軟件繪制,如DPLOT專業(yè)繪圖軟件[6].然而,利用現(xiàn)軟件準(zhǔn)確地繪出圖形較麻煩.近年來,MATLAB因其在語言編程和可視化方面有著其他編程語言無法比擬的優(yōu)勢(shì),被廣泛應(yīng)用于各科學(xué)領(lǐng)域.本文利用三種譜之間的線性關(guān)系,通過MATLAB的GUI創(chuàng)建三聯(lián)反應(yīng)譜圖形界面,使用者在圖形用戶界面中可以根據(jù)任意選取地震波、時(shí)間間隔及阻尼比參數(shù)等,能夠很方便地得到反應(yīng)譜的時(shí)程曲線.
如圖1所示,m和k分別為質(zhì)量和剛度.地震作用下單自由度體系的振動(dòng)方程為:
圖1 地面運(yùn)動(dòng)下單自由度體系動(dòng)力反應(yīng)
(1)
則由上式可求得位移反應(yīng)x(t)的表達(dá)式為
(2)
對(duì)(2)式t微分,分別得
(3)
其中,ωn為固有頻率.
(4)
由于在建筑結(jié)構(gòu)中,ζ值很小,阻尼對(duì)自振頻率的影響不大,可以忽略,則有ωd≈ω,(4)式可表示為
稱之為擬反應(yīng)譜,即擬加速度譜Spa、擬速度譜Spv和擬位移譜Spd.進(jìn)一步分析表明,三者之間存在如下關(guān)系:
(6)
式中Tn為自振周期.
對(duì)上式分別取對(duì)數(shù),則有
lgSpv=lgTn+lgSpa-lg2π
lgSpv=lg2π+lgSpd-lgTn(7)
由上式表明,取對(duì)數(shù)后三種譜之間呈線性關(guān)系[8].
MATLAB通過對(duì)象設(shè)計(jì)編輯器或編寫程序來創(chuàng)建圖形用戶界面[9].本文采用對(duì)象設(shè)計(jì)編輯器即GUIDE來創(chuàng)建圖形用戶界面,用戶只需要通過簡單的鼠標(biāo)拖拽等操作就能夠生成用戶所需的組件資源并保存在一個(gè)fig文件中.同時(shí),還自動(dòng)生成一個(gè)包含GUI初始化和發(fā)布控制代碼的M文件的框架[10],在這個(gè)框架中使用者可編制自己的應(yīng)用程序,有效的管理對(duì)象句柄執(zhí)行調(diào)用函數(shù)等工作,使用GUIDE交互式的組件布局將會(huì)大大減小工作量.
根據(jù)三種譜之間的關(guān)系我們可以發(fā)現(xiàn):如果已知Spd或者Spa值,由(7)式可求得不同Tn下相對(duì)應(yīng)的Spv的值,結(jié)果如表1所示.
表1 擬速度譜Spv的值
根據(jù)上述分析,我們可以將三種反應(yīng)譜表示在一個(gè)對(duì)數(shù)坐標(biāo)內(nèi),即x軸為自振周期,y軸表示擬速度譜值,與x軸呈45°和135°夾角的兩斜軸分別定義為擬位移譜與擬加速度譜,這兩個(gè)斜坐標(biāo)的對(duì)數(shù)比例與 軸的比例不同,這便是所謂的“三聯(lián)反應(yīng)譜”.
通過上述分析,首先構(gòu)思草圖形成框架[11](如圖2),在布局編輯器中布置控件,然后進(jìn)行布局調(diào)整、設(shè)置控制件屬性與添加相應(yīng)菜單.通過分析本界面設(shè)置1個(gè)坐標(biāo)軸對(duì)象,4個(gè)文本框和3個(gè)按鈕.
圖2 三聯(lián)反應(yīng)譜界面程序框圖
首先,在MATLAB中鍵入guide或利用菜單File-New-GUI,調(diào)出編輯界面,采用拖拽方式在左方的組建布局編輯中選擇組件進(jìn)行界面設(shè)計(jì),并對(duì)界面布局進(jìn)行調(diào)整.
此時(shí),GUI初始化界面已經(jīng)形成,同時(shí)包含發(fā)布控制代碼的M文件,下面還需要設(shè)置控件的相關(guān)屬性和添加相應(yīng)的程序,使各控件之間可以相互配合,最終運(yùn)行出需要的結(jié)果.
在自動(dòng)生成的M文件下添加個(gè)控制件的回調(diào)函數(shù),如下:
(1)按鈕“輸入地震波”菜單回調(diào)程序
在“輸入地震波”按鈕菜單下編寫輸入波形的回調(diào)程序,即在pushbutton1_Callback函數(shù)下添加相應(yīng)代碼,其程序代碼如下:
[FileName,PathName] = uigetfile(′*.txt′,′Select the Data file′);
file=fullfile(PathName,FileName);
data=load(file);
data=data′;
data=data(∶);
t=str2num(get(handles.t_edit,′string′));
在選取地震波加速度數(shù)據(jù)時(shí),應(yīng)注意選取的數(shù)據(jù)存儲(chǔ)路徑和保存格式應(yīng)與所編寫程序一致,否則無法讀取數(shù)據(jù).
(2)按鈕“速度反應(yīng)譜”的回調(diào)程序
在按鈕“速度反應(yīng)譜”菜單中編寫反應(yīng)譜的回調(diào)程序.具體如下:該輸出波形的回調(diào)程序輸入信號(hào)用函數(shù)global產(chǎn)生,采用Nigam積分方法仿真,有l(wèi)oglog()函數(shù)得到對(duì)數(shù)坐標(biāo)下的關(guān)系曲線.在編寫該程序代碼時(shí)需要注意:①在不同參數(shù)和不同輸入波形條件下,為保證能正確地顯示時(shí)程曲線應(yīng)先獲取兩個(gè)文本框的“string”屬性值,再用str2num 函數(shù)將字符串轉(zhuǎn)換成實(shí)型數(shù)據(jù)后用于計(jì)算中;②在計(jì)算響應(yīng)時(shí),需獲取初始數(shù)據(jù)值,用get 函數(shù)獲取編輯框“String”屬性后即可.
文中采用的Nigam積分是目前公認(rèn)的精確解方法,它是1969年N.C.Nigam和P.C.Jennings[12]提出的.其方法原理是:用分段線性差值表示地面運(yùn)動(dòng)加速度記錄數(shù)據(jù)相鄰點(diǎn)間的值,進(jìn)而得出地面運(yùn)動(dòng)的連續(xù)表達(dá)式.這是在方程本身的基礎(chǔ)上進(jìn)行的,即由精確解析法得出結(jié)果,沒有任何舍入誤差,所以也就不會(huì)產(chǎn)生截?cái)嗾`差,這也就是我們通常所謂的精確法.由于它不會(huì)引起數(shù)值計(jì)算上的誤差,所以有較高的精度.
目前,利用Matlab的loglog()函數(shù)可得到Tn-Spv關(guān)系曲線,但是對(duì)于Spd與Spa兩斜軸繪制比較復(fù)雜.下面采用如下程序,得到Matlab語言程序下不同地震加速度記錄的三聯(lián)反應(yīng)譜.
程序代碼為:
Spa=10*[0.001,0.005,0.01,0.05,0.1,0.5,1,5,10,50,100,500];
Spageshu=length(Spa);
for iu=1:Spageshu
Ljieju=-log10(Spa(iu))+log10(2*3.14);
jieju=10^Ljieju;
if Ljieju>maxaxis | Ljieju<-maxaxis
else
end
x=minaxis:abs(minaxis-maxaxis)/10:maxaxis;
y=log10(x)+log10(Spa(iu))-log10(2*3.14);
Spacurve(iu,:)=10.^y;
end
for iu=1:Spageshu
hold on
loglog(x,Spacurve(iu,:),′black′);
end
Spd=[0.001,0.005,0.01,0.05,0.1,0.5,1,5,10,50,100,500]/100;
Spdgeshu=length(Spd);
for Diu=1:Spdgeshu
DLjieju=log10(Spd(Diu))+log10(2*3.14);
Djieju=10^DLjieju;
if DLjieju>maxaxis | DLjieju<-maxaxis
else
end
Dx=minaxis:abs(minaxis-maxaxis)/10:maxaxis;
Dy=log10(Spd(Diu))+log10(2*3.14)-log10(Dx); Spdcurve(Diu,:)=10.^Dy;
end
for Diu=1:Spdgeshu
hold on
loglog(Dx,Spdcurve(Diu,:),′black′);
end
(3)四個(gè)文本框回調(diào)程序
同理,按照上述相同的方法編寫文本框回調(diào)程序.即在* _Callback(“*”為控件的Tag屬性)中,編寫如下程序代碼:
get(handles.*,′string′);
guidata(hObject,handles);
其中,第一個(gè)命令為獲取輸入的時(shí)間間隔值;第二個(gè)命令是保存此值,使其存儲(chǔ)的數(shù)據(jù)可以從其他響應(yīng)函數(shù)中讀取出.
(4)“結(jié)束”按鈕回調(diào)程序
對(duì)于“結(jié)束”按鈕,用close函數(shù)即可.
完成所有相應(yīng)程序添加后,點(diǎn)擊運(yùn)行見圖3.
在圖3中輸入所需要的值,程序就會(huì)自動(dòng)繪出圖形.運(yùn)用此界面操作非常簡單、方便、快捷,這也是設(shè)計(jì)此程序的目的.
現(xiàn)以選取常用的Elcentro波和Taft波為例,繪制出時(shí)間步長△0.005,阻尼比ζ=0,0.05,0.1的時(shí)程反應(yīng),如圖4、圖5.
圖3 計(jì)算三聯(lián)反應(yīng)譜界面
圖4 Elcentro波的運(yùn)行結(jié)果
圖5 Taft波的運(yùn)行結(jié)果
圖6 Elcentro波的運(yùn)行結(jié)果(ζ=0,0.02,0.05,0.1,0.2)
圖7 Taft波的運(yùn)行結(jié)果(ζ=0,0.02,0.05,0.1,0.2)
由于超高層建筑和大跨空間結(jié)構(gòu)的興起和運(yùn)用,使這些結(jié)構(gòu)可能會(huì)有很長的振動(dòng)周期和多個(gè)阻尼值,而反應(yīng)譜包含較寬的固有振動(dòng)周期和多個(gè)阻尼值[13],它能夠提供所有結(jié)構(gòu)的峰值反應(yīng).因此,反應(yīng)譜理論越來越得到人們的重視.下面采用上述程序界面仍依Elcentro波和Taft波為例求解阻尼比ε=0~0.2范圍內(nèi)的多個(gè)阻尼值的譜曲線,見圖6和圖7.
Matlab的GUI開發(fā)工具的使用,其結(jié)果以簡便生動(dòng)的形式展示給我們,能夠進(jìn)一步提高我們對(duì)算法或數(shù)據(jù)處理效果的認(rèn)識(shí),是一個(gè)十分實(shí)用方便的操作平臺(tái).本文研究三聯(lián)反應(yīng)譜圖形界面設(shè)計(jì),通過三種譜的對(duì)數(shù)關(guān)系,采用Nigam積分方法在MATLAB的GUI圖形界面中編程得到三聯(lián)反應(yīng)譜可視化界面.常用的繪圖軟件在語言編程和圖形界面功能方面有欠缺,與之相比MATLAB具備上述兩方面的優(yōu)勢(shì).該界面編程簡便,操作簡捷,可以方便地回調(diào)函數(shù)曲線圖形.因此,具有節(jié)省計(jì)算時(shí)間和操作簡便等特點(diǎn),在地震工程應(yīng)用中可顯著提高工作效率和經(jīng)濟(jì)性,從圖7、圖8所示算例可以表明該方法具有較好的適用性.
[1] 汪夢(mèng)甫,周錫元. 結(jié)構(gòu)動(dòng)力方程的更新精細(xì)積分方法[J]. 力學(xué)學(xué)報(bào), 2004, 36(2) : 191-195.
[2] 郭澤英,李青寧,張守軍. 結(jié)構(gòu)地震反應(yīng)分析的一種新精細(xì)積分法[J]. 工程力學(xué), 2007, 24(4): 35-40.
[3] 郭澤英,李青寧. 動(dòng)力反應(yīng)分析的顯示積分方法及其穩(wěn)定性[J]. 地震工程與工程振動(dòng), 2008, 28(2): 17-19.
[4] 蘭景巖,薄景山,呂悅軍,等.地殼構(gòu)造與地殼應(yīng)力文集[Z].2006,27-34.
[5] Anil K. Chopra,謝禮立,呂大剛,等.結(jié)構(gòu)動(dòng)力學(xué)理論及其在地震工程中的應(yīng)用[M].北京:高等教育出版社,2005.
[6] 馬樂為.基于MATLAB的結(jié)構(gòu)動(dòng)力學(xué)及其應(yīng)用[M].西安:陜西科學(xué)技術(shù)出版社, 2011: 388-389.
[7] 張曉志, 程 巖,謝禮立,等.結(jié)構(gòu)動(dòng)力反應(yīng)分析的三階顯示方法[J].地震工程與工程振動(dòng),2002,22(3):1-8.
[8] Anil K. Chopra. Dynamics of Structures:Theory and applications to Earthquarke Engineering[M].Tsinghua university press,2005.
[9] 邱金惠,王僪輝,李振全. 基于MALTAB/GUI的新型界面開發(fā)方式[J]. 河北工業(yè)科技, 2008,25(4):233-235.
[10] 施曉紅,周 佳.精通GUI圖形界面編程[M].北京:北京大學(xué)出版社,2003:220-224.
[11] 陳垚光.精通MATLAB GUI設(shè)計(jì)[M]. 北京:電子工業(yè)出版社, 2011:221-222.
[12] 裴星洙,張 立,任正權(quán).高層建筑結(jié)構(gòu)地震響應(yīng)的時(shí)程分析法[M].中國水利水電出版社,2006.
[13] 程 緯.地震加速度反應(yīng)譜擬合的直接法研究[J].工程力學(xué),2000,17(1):83-87.