In an attempt to chronicle my further simulation attempts in Matlab (and by expanding the scope of my investigations into this matter), I will now continue with a Electric Spring Damper system. At the moment it is only an Electric Spring System with indirect dampening due to the magnetic fields’ static behaviour, but this might change.
It is directly related to something I do for work, where I am working with springs and dampened systems (clutch discs), so one could see it as an extension of work into my free time! Argh.
As a small sketch from paint, the system looks like this:
So, we have three distinct force properties that can influence the movement of the mass. The mass inertia itself, the spring property ( c ) and the eletric field from the magnet. Furthermore we will have a one-dimensional observation along the lines of the system designated x.
The differential equation for this simple system is given by:
m * x’’ + x* c/m – E*x/m = x_0 * c /m
m = mass of the point mass
c = spring rate
E = electric field strength (function of distance and max E-Strength)
x_0 = unloaded length of the spring (also the initial condition of the system in the first case)
I am starting off simple by leaving out several things which can complicate the simulation easily:
- There is no friction (dampening) in the spring
- The spring will not be used until solid position
- There won’t be any parametric input in the beginning
- The magnetic field will be constant over time
- There is no gravity (to be done) yet
And now what I still have to do:
- Introducing gravity (simple)
- Introducing friction (trickier in keeping the system stable)
- Introducing wear in spring
- Introducing real magnetic field mechanics (using an electric source) – will have to read up on that one
- Simple representation (hard)
- GUI for parametric input (hard and probably too time consuming)
- If real magnet properties are not achievable, at least go for a more quadratic relationship between force and distance in electric-magnet.
Next comes a little summary of how the simulation in matlab looks like. I first wrote a small library to load all the constants more easily and to be able to later configure them more easily.
As one can easily observe I have dimensioned the magnet for a maximum range of 100 mm (+-). Also, the spring is pretty weak (usual Springs for forces up to 300 N may be as stiff as 30 N/mm).
Also, the mass is pretty heavy for such a weak spring, but I will tune these as soon as the results are according to my expectations of the system. I also want to look for the critical frequency (eigen-frequency) later on, which will be relatively interesting to see how a more complex damper will change the approx. w_0 = sqrt(c/m).
But I digress here and should come back to the last part. For the rest of the little simulation, I just implemented the differential equation in its cleaned up shape as a Simulink-Model. The equation in question is:
x’’ = (x_0*c)/m - (x*c)/m + (e*(x-x_0))/m
And the resulting model looks like this:
Since my initial condition was only the starting position of the mass point on the x-axis, I only added an IC to the second time-integrator (from speed to location). IC_Integrator1 = 50 mm, while IC_integrator = 0.
I then ran the simulation for 100 s and got the following results, which match with what I would expect from this system and at least the coil spring does react like this in reality.
The first curve is the force due to the spring load. The second curve represents the change in the E-field force on the mass point and the third curve is the actual position of the point of mass.