So for the stiffness and damping coefficients. I am an engineer and I
hate tweaking numbers without understanding them. I still haven't found where these are applied in the Orbiter source code, but my educated guess is that the forced damped spring equation was used for each of the contact points:[math]mz'' + cz' + kz = \sum F_z[/math]where
z is the displacement,
z' is the rate of displacement, and
z'' is the acceleration. The coefficients are defined as:
Stiffness coefficient (Applied spring force per unit displacement): [math]k = F_S/z[/math]Damping coefficient (Applied damping force per unit rate of displacement): [math]c = F_D/z'[/math]
The goal is to apply physically appropriate values for
k and
c so the system plays nice. The applied forces will be variable, but order-of-magnitude estimates can be made at certain limits.
A basic requirement is that the contact points can support the stationary weight of the vessel with a sensible static displacement. The spring equation reduces to [math]kz = mg[/math] where we can solve for
k: [math]k = (mg)/z[/math]In this case, the mass of the J-3 is about 450 kg, for a weight of about 4500 N and a sensible deflection would be maybe 10 cm. The weight is primarily on the main wheels, so we'll divide the weight by two. This gives a
k = 2250 N / 0.1 m = 22,500 N/m or 2.25e4 N/m.
Now for the damping coefficient. We are aiming for a slightly under-damped oscillator (the spring will have a little "bounce" with an overshoot or two before it comes to equilibrium. Critical damping is the value that just prevents any overshoot and is defined as [math]c_c=\sqrt{4mk}[/math]For the J-3, again splitting the mass across the two main gear, [imath]c_c[/imath] would be 4500 N[imath]\cdot[/imath]s/m. We will want a damping coefficient slightly lower than this value. I'll start with
c = 4000 N[imath]\cdot[/imath]s/m and adjust later if needed.
So something to consider is how "twangy" this system will be, more accurately what will be the period of oscillation T. If this period of oscillation comes out to be on the same order of magnitude as the simulation timestep [imath]\varDelta {t}[/imath] (simdt) or smaller, then the numerical time propagation will be unable to accurately resolve the vessel motion and this will generally lead to getting punted into solar orbit. The period of oscillation
T is given by: [math]T=2m/\sqrt{4mk-c^2}[/math]
For
m = 225 kg,
k = 22,500 N/m, and
c = 4000 N[imath]\cdot[/imath]s/m, we get [imath]T \approx[/imath] 0.2 s.
Looking into the time propagation settings, it's a little hard to determine if this is a resolvable period or not.
![Screenshot at 2024-06-16 11-36-23.png Screenshot at 2024-06-16 11-36-23.png](https://cdn.orbiter-forum.com/data/attachments/38/38870-e7f65fd206cf9807dad17070bfd67648.jpg)
The Runge-Kutta routines are numerical differential equation solver routines, and I
think the differing steps are limits associated with time acceleration (if your timestep is under 0.1 s, RK2 provides sufficient accuracy, if under 2.0 s RK4 is sufficient, etc..).
Going into the simulation and getting the value for simdt gives a value of about 0.015 s, which is about 15 times smaller than the period of oscillation. So at least we're not the same order of magnitude, so this may work out (assuming this is all correct and this is actually what Orbiter is doing under the hood).
Off for some flight testing, stay tuned...