土木年华 发表于 2010-10-22 11:50

反推隔震结构的水平刚度的程序

本帖最后由 土木年华 于 2010-10-22 16:41 编辑

各位大侠好,
    小弟请教一个问题, 现在正在做一个有意义的问题,就是在正常的环境激励下隔震层的水平刚度怎么理解。前几天我们做了对一隔震房屋做了大地脉动测试,识别出了频率,想与结构的理论振型频率进行比较,如
│sw1-w1│≤0.001且│sw2-w2│≤0.001而反推出隔震层的刚度Kd,想编个MATLAB小程序,请教各位大侠,给指导一下该如何编程,谢谢大家!下面是各层的质量,刚度,实测频率,哪位大侠给改改一改?

sw=      
sw1=sw(1,:)
sw2=sw(2,:)          % 实测识别前两阶频率

cn=4;
m0=;
k0=*1e+5;      % 一二三层及隔震层质量,刚度
M=diag(m0);             %生成结构的质量和刚度矩阵
=matrixju(k0,cn);    %刚度矩阵的聚合

=eig(K,M);      %计算结构频率和振型
w=diag(sqrt(d))      %理论振型频率

w1=w(1,:)
w2=w(2,:)

ChaChing 发表于 2010-10-22 21:01

实在水平专业有限, 看不清楚LZ要的
建议LZ说清楚或简化些

happy 发表于 2010-10-23 08:30

具体专业问题不太懂
不过如果你这里的kd和最后输出的固有频率之间的关系连续的话
那这个问题不难,是一个简单的参数识别问题
最笨的办法可以采用二分法
如果要做的好一点可以在优化工具箱中找一个合适的函数进行识别
具体的你找相关算法看看吧

土木年华 发表于 2010-10-23 09:02

回复 ChaChing 的帖子

我的意思是用我测出来的两阶频率与我用eig函数算出来的频率比较,使他们两个的差值小于某一很小的数,就是想借此看一看隔震层的刚度kd,请问老哥这个程序该怎么弄啊,指导一下,哈 谢谢

土木年华 发表于 2010-10-23 09:04

回复 happy 的帖子


我的意思是用我测出来的两阶频率与我用eig函数算出来的频率比较,使他们两个的差值小于某一很小的数,就是想借此看一看隔震层的刚度kd ,哈 你就别想这个问题,就给我指导一下这个程序该如何编啊 ,哈 我的MATLAB编程学的不是很好,谢谢你

happy 发表于 2010-10-23 11:58

简单介绍一下采用二分法的思路吧,程序还是需要你自己去完成的

假设你的kd取值范围为
1. 将该范围分成n份,这样就形成了,,......,共n个区间
2. 计算下列节点位置的的固有频率

得到固有频率


3. 判断解区间
判断寻找满足(w1(i+1)-sw1)(w1(i)-sw1)<0 且 (w1(i+1)-sw1)(w1(i)-sw1)<0的情况
找出对应的存在解得区间为
4. 在的区间内使用二分法找出你所需要的解
二分法程序参考http://forum.vibunion.com/thread-96621-1-1.html
所不同的是你这里需要同时满足两个条件

该方法整体思路比较简单清晰,但是问题比较多,比如找不到解、效率低下等
如果取得较好的效果还是用优化工具箱里的函数,你这个问题可以表述为多目标优化问题
比如采用fgoalattain函数等

ChaChing 发表于 2010-10-24 01:36

回复 土木年华 的帖子

还是不清楚LZ要的!:@L
LZ是要做校准(tuning)吗?:@)

土木年华 发表于 2010-10-24 09:41

回复 ChaChing 的帖子

就是要做一个迭代, 每次变换Kd一个值求出振型频率w1,w2,然后再与SW1,SW1,分别比较,当两者之差小于某一直时结束

ChaChing 发表于 2010-10-24 10:34

回复 土木年华 的帖子

help for/break/while/switch ?
页: [1]
查看完整版本: 反推隔震结构的水平刚度的程序