反推隔震结构的水平刚度的程序
本帖最后由 土木年华 于 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,:)
实在水平专业有限, 看不清楚LZ要的
建议LZ说清楚或简化些 具体专业问题不太懂
不过如果你这里的kd和最后输出的固有频率之间的关系连续的话
那这个问题不难,是一个简单的参数识别问题
最笨的办法可以采用二分法
如果要做的好一点可以在优化工具箱中找一个合适的函数进行识别
具体的你找相关算法看看吧 回复 ChaChing 的帖子
我的意思是用我测出来的两阶频率与我用eig函数算出来的频率比较,使他们两个的差值小于某一很小的数,就是想借此看一看隔震层的刚度kd,请问老哥这个程序该怎么弄啊,指导一下,哈 谢谢 回复 happy 的帖子
我的意思是用我测出来的两阶频率与我用eig函数算出来的频率比较,使他们两个的差值小于某一很小的数,就是想借此看一看隔震层的刚度kd ,哈 你就别想这个问题,就给我指导一下这个程序该如何编啊 ,哈 我的MATLAB编程学的不是很好,谢谢你
简单介绍一下采用二分法的思路吧,程序还是需要你自己去完成的
假设你的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函数等
回复 土木年华 的帖子
还是不清楚LZ要的!:@L
LZ是要做校准(tuning)吗?:@) 回复 ChaChing 的帖子
就是要做一个迭代, 每次变换Kd一个值求出振型频率w1,w2,然后再与SW1,SW1,分别比较,当两者之差小于某一直时结束
回复 土木年华 的帖子
help for/break/while/switch ?
页:
[1]