How do I get the right vector of spring coefficients for the nonlinear translational spring?
2 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
Yifeng Tang
on 17 Jul 2024
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.
More Answers (0)
See Also
Categories
Find more on Assembly in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!