adams可以线性化输出SS状态空间ABCD矩阵,根据A可以进行系统复模态计算。
A可看作是角频率张量矩阵,由模态矩阵进行坐标变换解耦后可以得到所有的模态参数,特征向量(模态系数)为复数不仅影响幅值,还影响相位角,而特征值为复数,其虚部为阻尼频率,而实部会使振动随时间衰减。
从而可以清楚地看到坐标变换(解耦)的过程。
A=[-1.00377172158969996E+00 -3.91715793777936216E+00 0.00000000000000000E+00 -1.96627966300476429E-06
1.00000000000000000E+00 0.00000000000000000E+00 0.00000000000000000E+00 0.00000000000000000E+00
0.00000000000000000E+00 5.65305403113869734E-06 -1.00377172158969996E+00 -1.12618290711156668E+01
0.00000000000000000E+00 0.00000000000000000E+00 1.00000000000000000E+00 0.00000000000000000E+00
];
%A=load('f:\temp\tta.txt');
f_M_K=A([1,3],[2,4]);
M_K=-f_M_K;
[vec,ome]=eig(M_K);
omeg=diag(sqrt(ome));
omeg_hz=omeg/2/pi;
f_M_C=A([1,3],[1,3]);
M_C=-f_M_C;
ssA=[zeros(2),eye(2);-M_K,-M_C];
[Vec,Ome]=eig(ssA);
Omeg=imag(diag(Ome([1,3],[1,3])));
alpha=real(diag(Ome([1,3],[1,3])));
Omeg_hz=Omeg/2/pi;
alpha_hz=alpha/2/pi;
Vec_single=Vec(:,[1,3]);
Vec_abs=abs(Vec_single);
Vec_ang=angle(Vec_single)*180/pi;
mode_vec=vec;
mode_vec(:,1)=mode_vec(:,1)./mode_vec(1,1);
mode_vec(:,2)=mode_vec(:,2)./mode_vec(1,2);
subplot(3,3,1)
plot([1;2],mode_vec(:,1))
title(strcat('w1=',num2str(omeg_hz(1))));
subplot(3,3,2)
plot([1;2],mode_vec(:,2))
title(strcat('w2=',num2str(omeg_hz(2))));
mode_abs=Vec_abs(1:2,:);
mode_ang=Vec_ang(1:2,:);
mode_abs(:,1)=mode_abs(:,1)./mode_abs(1,1);
mode_abs(:,2)=mode_abs(:,2)./mode_abs(1,2);
subplot(3,3,3)
plot([1;2],mode_abs(:,1))
title(strcat('alpha1=',num2str(alpha_hz(1)),'beta1=',num2str(Omeg_hz(1))));
subplot(3,3,4)
plot([1;2],mode_abs(:,2))
title(strcat('alpha2=',num2str(alpha_hz(2)),'beta2=',num2str(Omeg_hz(2))));
subplot(3,3,5)
plot([1;2],mode_ang(:,1))
title(strcat('ang_mode1','beta1=',num2str(Omeg_hz(1))));
subplot(3,3,6)
plot([1;2],mode_ang(:,2))
title(strcat('ang_mode2','beta2=',num2str(Omeg_hz(2))));
subplot(3,3,7)
polar(mode_ang(:,1)*pi/180,mode_abs(:,1));
title(strcat('ang_mode1','beta1=',num2str(Omeg_hz(1))));
subplot(3,3,8)
polar(mode_ang(:,2)*pi/180,mode_abs(:,2));
title(strcat('ang_mode2','beta2=',num2str(Omeg_hz(2))));