First, I think it should be made clear that this application uses Vector mathematics, much like it's used in video games and graphics software. I haven't used any third party libraries for this, and have simply included the structures as classes in the program, in the interest of keeping it down to a single portable application file with as few external dependencies as possible. Primarily for personal reasons. I stay up late at night so I can hate bloated software more.
I've found two formulas for working out the ratio between spring rates and wheel rates, and I'd wager there's more than those two knocking around aswell. The first I know of is this one, from Autonest. And the other, which I elected to use in this program, I found in a book. Chassis Engineering by Herb Adams, page 26. The formula is as follows.
B: The length of the lower control arm from the ball joint to the inner pivots.
C: The distance from the lower ball joint to the suspension instant center
D: The distance from the center of the tire contact patch to the front suspension instant center.
This did require that the suspension in the car be simplified down to just one control arm, effectively turning it into a MacPherson Strut design. This feels like a massive simplification to me, but I figured that won't matter too much in this context. This is simply done by taking the average of all the rod attachments to the spindle, and again for all the attachments to the body, and forming a vector out of these. This formed my control arm for the purpose of the above formula.
The control arm's inner pivot becomes where my control arm attaches to the body, and the ball joint became where this control arm attached to the spindle. A is found by using the dot product of the pushrod's spindle attachment and my control arm vector.
This formula with the variables filled in can be seen on the output images at the time of writing. I'll most likely remove this when I release it, however it can be seen on the images in the previous post.
Now there's only one more thing left in the procedure. I take the Pushrod vector, normalize it, and multiply the output by the vertical component of this vector. I felt that this very easily describes the cosine of the angle between the pushrod vector and the direction of travel. That's what the final number is in the images in the previous post is too. I multiply these two numbers together, and I have the final product.
There's a lot which isn't taken into account. I don't think this method provides 100% accurate results, but at the same time, I don't think 100% accuracy is a realistic target. Not only do setup changes in the ride height and track bar affect the outcome, but so does suspension travel caused by bumps, downforce, body roll, road camber, etc. when out on track. But even this rough figure should help understanding and controlling the handling characteristics of the car.
If you've got any suggestions on ways to improve this procedure, please let me know. :)