# Dsolve to find out the resonance frequency of mass-spring-damper system?

Posted 5 months ago
612 Views
|
4 Replies
|
1 Total Likes
|
 Hi, I want to use Dsolve to find out the system resonance frequency expressed by systems parameters. For example, for a simple mass-spring-damper system, the solution using Dsolve contains a term like this from which I know the resonance frequency is . Now I want to find out the resonance frequency formula of the following system. F=s*t, s is constant. The system equations can be expressed as differential equations shown below. DSolve[{m1* x''[t] + c1*x'[t] + ks*x[t] + klc*(x[t] - y[t]) == 0, m2 *y''[t] + c2 *y'[t] + klc*( y[t] - x[t]) + ksb* y[t] == s*t}, {x[t], y[t]}, t] The result I got is very long and strange. It contains terms like I don't know what the # means. And also in the solution there is a t1 term, I don't know where the t1 comes from. Anyone's any suggestion will be appreciated.
4 Replies
Sort By:
Posted 5 months ago
 Chengjun,The #1 terms are likely inside of a RootSum or Root function. They are arguments of a pure function that would need to be solved to get your answer. Mathematica solves your differential equation in terms of the roots of a polynomial expression. If you put numbers in for the parameters you can get the numerical answer. You can also use ToRadicals[] to get the expression in radical form but in your case it will be 4th order and quite messy (which is why MMA defaults to Root for higher order roots).Regards,Neil
Posted 5 months ago
 Chengjun,If your goal is to only get the eigenvalues (which gives you the damped natural frequencies), I would suggest that you create a state space model and find the eigenvalues of the A matrix. In MMA: In[27]:= ssm = StateSpaceModel[{m1*x''[t] + c1*x'[t] + ks*x[t] + klc*(x[t] - y[t]) == 0, m2*y''[t] + c2*y'[t] + klc*(y[t] - x[t]) + ksb*y[t] == ff[t]}, {{x[t], 0}, {y[t], 0}}, {ff[t]}, {x[t], y[t]}, t]; In[26]:= {a, b, c, d} = Normal[ssm] Out[26]= {{{0, 1, 0, 0}, {-((klc + ks)/m1), -(c1/m1), klc/m1, 0}, {0, 0, 0, 1}, {klc/m2, 0, -((klc + ksb)/m2), -(c2/m2)}}, {{0}, {0}, {0}, {1/m2}}, {{1, 0, 0, 0}, {0, 0, 1, 0}}, {{0}, {0}}} In[19]:= eig = Eigenvalues[a] Out[19]= {(1/(m1 m2^2)) Root[klc ks m1^3 m2^7 + klc ksb m1^3 m2^7 + ks ksb m1^3 m2^7 + (c1 klc m1^2 m2^5 + c2 klc m1^2 m2^5 + c2 ks m1^2 m2^5 + c1 ksb m1^2 m2^5) #1 + (c1 c2 m1 m2^3 + klc m1^2 m2^3 + ksb m1^2 m2^3 + klc m1 m2^4 + ks m1 m2^4) #1^2 + (c2 m1 m2 + c1 m2^2) #1^3 + #1^4 &, 1], (1/( m1 m2^2))Root[ klc ks m1^3 m2^7 + klc ksb m1^3 m2^7 + ks ksb m1^3 m2^7 + (c1 klc m1^2 m2^5 + c2 klc m1^2 m2^5 + c2 ks m1^2 m2^5 + c1 ksb m1^2 m2^5) #1 + (c1 c2 m1 m2^3 + klc m1^2 m2^3 + ksb m1^2 m2^3 + klc m1 m2^4 + ks m1 m2^4) #1^2 + (c2 m1 m2 + c1 m2^2) #1^3 + #1^4 &, 2], (1/( m1 m2^2))Root[ klc ks m1^3 m2^7 + klc ksb m1^3 m2^7 + ks ksb m1^3 m2^7 + (c1 klc m1^2 m2^5 + c2 klc m1^2 m2^5 + c2 ks m1^2 m2^5 + c1 ksb m1^2 m2^5) #1 + (c1 c2 m1 m2^3 + klc m1^2 m2^3 + ksb m1^2 m2^3 + klc m1 m2^4 + ks m1 m2^4) #1^2 + (c2 m1 m2 + c1 m2^2) #1^3 + #1^4 &, 3], (1/( m1 m2^2))Root[ klc ks m1^3 m2^7 + klc ksb m1^3 m2^7 + ks ksb m1^3 m2^7 + (c1 klc m1^2 m2^5 + c2 klc m1^2 m2^5 + c2 ks m1^2 m2^5 + c1 ksb m1^2 m2^5) #1 + (c1 c2 m1 m2^3 + klc m1^2 m2^3 + ksb m1^2 m2^3 + klc m1 m2^4 + ks m1 m2^4) #1^2 + (c2 m1 m2 + c1 m2^2) #1^3 + #1^4 &, 4]} Note that this gives you the four eigenvalues which correspond to the four roots of a polynomial (two complex pairs of poles). You can get the radical form with ToRadicals[] but I think it may be more useful to put numerical values in at this point and get frequencies as the radical equations are very long even if simplified.Regards,Neil