Back-solving springs for spring-mass systems with known first mode natural frequencies
    7 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
As the title indicates, I have a rather unique problem here. Usually, springs and masses are known and calculation is done to obtain natural frequencies, but in my case, it's the other way around. I have some unknown springs, but have the resultant natural frequencies via another means.
clear
% natural frequencies of four spring-mass systems
wn_1 = 11.47; % [hz]
wn_2 = 7.97;  % [hz]
wn_3 = 8.04;  % [hz]
wn_4 = 7.98;  % [hz]
lamda_1 = (2*pi*wn_1)^2;
lamda_2 = (2*pi*wn_2)^2;
lamda_3 = (2*pi*wn_3)^2;
lamda_4 = (2*pi*wn_4)^2;
% four masses
m_big  = 45; % [lbf-s^2/in]
m_smll = 0.01*m_big; % [lbf-s^2/in], three small masses
% M matrix
M_mat = [m_smll 0    0    0;
         0    m_smll 0    0;
         0    0    m_smll 0;
         0    0    0      m_big];
% bunch of springs
K_1 = 1.82e05; % [lbf/in]
K_2 = 4.20e06; % [lbf/in]
K_3 = 2.20e06; % [lbf/in]
K_4 = 1.65e06; % [lbf/in]
K_5 = 9.39e05; % [lbf/in]
K_6 = 8.25e05; % [lbf/in]
K_7 = 7.32e05; % [lbf/in]
% effective springs
K_8  = (K_1^-1 + K_2^-1 + K_5^-1)^-1; % [lbf/in]
K_9  = (K_1^-1 + K_3^-1 + K_6^-1)^-1; % [lbf/in]
K_10 = (K_1^-1 + K_4^-1 + K_7^-1)^-1; % [lbf/in]
syms K_11 K_12 K_13 K_14
assume(K_11 > 0);
assume(K_12 > 0);
assume(K_13 > 0);
assume(K_14 > 0);
% det(M^-1*K - wn^2*I) = 0 where lamda = wn^2
K_surf=solve(...
             det(M_mat\[K_8+K_14+K_11  -K_14              0               -K_11;
                       -K_14            K_9+2*K_14+K_12  -K_14            -K_12;
                        0              -K_14              K_10+K_14+K_13  -K_13;
                       -K_11           -K_12             -K_13             K_11+K_12+K_13]-lamda_1*eye(4,4))==0,...
...
             det(M_mat\[K_8+K_14+K_11  -K_14          0          -K_11;
                       -K_14            2*K_14+K_12  -K_14       -K_12;
                        0              -K_14          K_14+K_13  -K_13;
                       -K_11           -K_12         -K_13        K_11+K_12+K_13]-lamda_2*eye(4,4))==0,...
...
             det(M_mat\[K_14+K_11  -K_14              0           -K_11;
                       -K_14        K_9+2*K_14+K_12  -K_14       -K_12;
                        0          -K_14              K_14+K_13  -K_13;
                       -K_11       -K_12             -K_13        K_11+K_12+K_13]-lamda_3*eye(4,4))==0,...
...
             det(M_mat\[K_14+K_11  -K_14          0               -K_11;
                       -K_14        2*K_14+K_12  -K_14            -K_12;
                        0          -K_14          K_10+K_14+K_13  -K_13;
                       -K_11       -K_12         -K_13             K_11+K_12+K_13]-lamda_4*eye(4,4))==0);
I'm basically trying to get work together "syms/solve" and "det(M^-1*K - lamda*I)=0".
Currently, the code is resulting unusable numbers.
The expected values for these springs are in the following ballparks:
K_11 = 1.0e05
K_12 = 2.0e05
K_13 = 5.0e05
K_14 = 1.0e06
0 Commenti
Risposte (0)
Vedere anche
Categorie
				Scopri di più su Assembly in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!