%由振型矩阵mode_vec(特征列向量组成)、质量矩阵M求正则振型矩阵mode_vec_n
function mode_vec_n= mode_n(mode_vec,M)
M_p=mode_vec'*M*mode_vec; %求主质量阵
n=length(mode_vec);
mode_vec_n=zeros(n);
for i=1:n
mode_vec_n(:,i)=mode_vec(:,i)/sqrt(M_p(i,i));
end
%mode_vec_n'*M*mode_vec_n=I
%mode_vec_n^(-1)=mode_vec_n'*M
%I*q_n"+[w_n^2]*q_n=[0]
%x=mode_vec_n*q_n
%正则坐标 q_n=mode_vec_n^(-1) *x
%%%%%%%%---------------------------------------------------------------------------------------------------
%SH760小轿车空载主要参数
clear;
m=1340;
a=1.54;
b=1.29;
l=a+b;
Ic=2395; %绕质心的转动惯量
rou=sqrt(Ic/m);
k1=40*1000;
k2=44*1000;
M=[m*(b^2+rou^2)/l^2,m*(a*b-rou^2)/l^2;m*(a*b-rou^2)/l^2,m*(a^2+rou^2)/l^2];
K=[k1,0;0,k2];
%用matlab特征值分解法求主振型------------------------------------------------
[eig_vec,eig_val] = eig(inv(M)*K);
>> mode_vec_n=mode_n(eig_vec,M)
mode_vec_n =
0.0383 0.0163
-0.0167 0.0341
>> mode_vec_n'*M*mode_vec_n
ans =
1.0000 -0.0000
0 1.0000
>> mode_vec_n'*K*mode_vec_n
ans =
71.0537 0
0 61.8142
>> eig_val
eig_val =
71.0537 0
0 61.8142