How do I get the right vector of spring coefficients for the nonlinear translational spring?
2 次查看(过去 30 天)
显示 更早的评论
Hi, I have to simulate a arrangement of nonlinear translational springs. Now i have the polynomial expression:
F = (286e+16*x^3)/209e+4 - (412e+15*x^2)/838e+3 + (352e+16*x)/167e+9;
% F = k_3 * x^3 + k_2 * x^2 + k_1 * x;
And now i tryed to give the different factors k1 to k5 to the spring:
Also i tested it with a constant force with the following model: (its also attached)
But now i get errors. I tryed the system with linear springs and it worked well. Anybody have a clue what I've done wrong or have to change?
An error occurred while running the simulation and the simulation was terminated
Caused by:
- ['Test/Solver Configuration']: Transient initialization at time 0.0001017481238908966, solving for consistent states and modes, failed to converge.
- Nonlinear solver: Linear Algebra error. Failed to solve using iteration matrix.
- all components and nodal across variables involvedCannot solve for one or more variables, including dynamic variable derivatives: Time derivative of 'Nonlinear_Translational_Spring2.x' (Deformation) 'Ideal_Force_Source.R.v' (Velocity) 'Ideal_Force_Source.v' (Velocity) 'Nonlinear_Translational_Spring2.C.v' (Velocity) 'Nonlinear_Translational_Spring2.v' (Velocity)
0 个评论
采纳的回答
Yifeng Tang
2024-7-17
Hi Emefun,
A couple of things to fix:
(1) add mass blocks. The "dynamic variable derivatives" error is most likely referring to applying a force to where the mass is zero, so inf acceleration. When you had a linear spring, the solver may be able to simplify the equation enough to avoid this, but it's not in general possible for nonlinear spring.
(2) I noticed you've specified nominal values in all the nonlinear spring blocks. I suspect that you meant to set initial conditions. It should be done in the "Initial Target" section. It's very rare when it's necessary to modify the nominal values.
Making these two changes and the model will run. But it runs very slow. I looked at the results and I believe it's due to the very high frequency of the oscillation you have in the system. Please check whether the parameters (spring constants, masses, etc) are correctly set, including the units.
See attached model.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Assembly 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!