yisuwen 发表于 2009-9-25 14:23

请帮忙编个M文件,谢谢。

算结构损伤前后的柔度差曲率矩阵的对角向量元素,算法如图
谢谢!

[ 本帖最后由 yisuwen 于 2009-9-25 14:35 编辑 ]

ChaChing 发表于 2009-9-25 15:18

建议楼主先自己试下!~

yisuwen 发表于 2009-9-27 10:11

好的,我试了一下,感觉执行出来的结果不是我所期待的,请高手帮我检查一下

A=F0X; %导入柔度差矩阵
%第一次按列差分
for i=2:22;
    for j=1:23;
l(i+1,i)=sqrt(sum(A(i+1,j)-A(i,j))^2); %后差分行距
l(i-1,i)=sqrt(sum(A(i-1,j)-A(i,j))^2); %前差分行距
l(i-1,i+1)=sqrt(sum(A(i-1,j)-A(i+1,j))^2); %隔行行距
CF(i-1,j)=(2.*l(i+1,i).*(A(i+1,j)-A(i,j))-2.*l(i-1,i).*(A(i,j)-A(i-1,j)))/(l(i+1,i).*l(i-1,i).*l(i-1,i+1)); %第一次按列差分
    end
end
%第二次按行差分
for j=2:22;
    for i=1:21;
      l(j+1,j)=sqrt(sum(CF(i,j+1)-CF(i,j))^2); %后差分列距
      l(j-1,j)=sqrt(sum(CF(i,j-1)-CF(i,j))^2); %前差分列距
      l(j-1,j+1)=sqrt(sum(CF(i,j-1)-CF(i,j+1))^2); %隔列列距
      CCF(i,j-1)=(2.*l(j+1,j).*(CF(i,j+1)-CF(i,j))-2.*l(j-1,j).*(CF(i,j)-CF(i,j-1)))/(l(j+1,j).*l(j-1,j).*l(j-1,j+1)); %计算差分两次后的曲率矩阵
    end
end
%提取CCF的对角元素
FCMD=abs(diag(CCF))
%画出FCMD值按划分点顺序的平面图
plot(FCMD,':b+');
title('柔度差曲率矩阵损伤识别图');
xlabel('划分点标号');
ylabel('损伤指标值');

ChaChing 发表于 2009-9-27 16:25

抱歉有点复杂无法细看!
LZ考虑下差分直接使用diff即可!
页: [1]
查看完整版本: 请帮忙编个M文件,谢谢。