⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plzhx.m

📁 matlab编写结构计算振型分解法
💻 M
字号:
function [ww,zhx1,A,m]=plzhx(a,b,dn)
%求解自振频率ww,振型zhx1---输入变量:质量阵a
%                                     层间刚度矩阵b
%                                     结构层数dn
%                           返回变量:自振频率ww,振型zhx1
m=diag(a);
[ik]=kzong(b,dn);

[A,x]=eig(ik,m);
x=diag(sqrt(x));

for i=1:dn
    [x1(i),j]=min(x);
    Agd(:,i)=A(:,j);
    x(j)=max(x)+1;
end
x=x1;
A=Agd;
for i=1:dn
        ww(i)=x(i);
        zhx1(:,i)=A(:,i)/A(dn,i);
end
if abs(min(min(zhx1)))>abs(max(max(zhx1)))
        T=abs(min(min(zhx1)));
    else
        T=abs(max(max(zhx1)));
    end
%绘图
for i=1:dn
        yi=0:0.25:dn;
        xi=interp1(0:dn,[0,zhx1(:,i)'],yi,'spline');
        subplot(2,dn,i)
        plot([0,zhx1(:,i)'],0:dn,'.',xi,yi);
        ylabel('X');
        xlabel('Z');
        title(['振型图\omega=',num2str(ww(i)),'']);
        text(zhx1(1,i),dn,'1','HorizontalAlignment','right','FontSize',16)
        axis([-1*T*1.5,T*1.5,0,dn]);
    end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -