Hi!
I have had this thought bubbling in me for a while now, and feel like it might be worth sharing if it can help the development in any way.
I could also be completely wrong about everything, but i think it is worth a shot
Short summary: (TL;DR)
I believe a lot of the wobbliness of the rockets are currently caused by the Kerbals over-steering the rockets at one of the rockets natural frequencies, constantly increasing the wobble with the engines.
My ideas for potential fixes is to help mitigate the wobble, assuming that a solid-mechanics type FEM solver is used behind the scenes and the more detailed suggestions come from a place of "Why would a FEM model do this?" and how can I change the model to help the solver find a stable result.
Silly example:
Think about a play-ground swing, you use your legs to build momentum to get you higher and higher up.
Kerbals are likely doing the same thing, but instead of doing it at a playground Jeb has decided to try it with the Saturn V using its rocket engines instead.
Potential fixes: (None of it is an easy quick-fix)
A: Tell the Kerbals to stop playing around with the rockets making them flop about, its only funny the first couple of times.
B: Slap some dampening on the joints / system to help reduce the impact of natural frequencies
How to reproduce / check this theory:
Build a long and fairly thin rocket, with a lot of engines that can gimbal, and have a high TWR.
You might be OK while in the thick atmosphere, as that helps to stabilize the rocket, but when the atmosphere decreases, the rocket starts to wobble.
If you somehow still manage to get a rocket to be stable you can reduce the stability by increasing the weight on the top part of the rocket where the command pod is.
What happens:
Since the rocket is controlled from the command pod at the top, and the thrust/corrections are added to the bottom, there will be a slight delay between the engines gimbaling to adjust the direction and for the command pod to actually start to change direction.
By the time the command pod has achieved the wanted adjustment, the bottom part of the rocket has over-corrected, and sends the command pod in the opposite direction from where it wanted to be, so the SAS gimbals the engines back in the other direction, which ends up also being over-corrected, and as it repeats this pattern over and over, the rocket incrementally starts to wobble more and more as each cycle adds more energy into the wobble.
The frequency of the over-correction cycle is likely going to be the rockets natural frequency.
How to stop the rocket flopping without adding rigidity / struts:
(or at least reduce the scale of the flopping)
Reduce the amount of possible gimbal on the engines.
It makes it harder to change trajectory early in the flight with only a tiny bit of engine gimbal, but it is much harder for the SAS to over-correct its adjustments that cause the wobble mentioned above.
Example:
In KSP1 if i need to launch a massive, enormous rocket, use a singe Rhino engine with less than 50% allowed gimbal, together with 8-16 Vector engines that are not allowed to gimble at all per booster &/or 1st stage.
This usually solves most of the wobble from launching a rocket until it gets to orbit.
note about planes:
The wobble that happens with flying planes is likely caused by the same reason, but the over-correcting is done with elevons instead of the engines.
Side-note about the solid mechanics aspects of this concerning joint rigidity
Since the natural frequency is calculated as bellow:
f=1/(2π)×√(k/m)
m = mass, and k = the stiffness of the vehicle. (simplified)
Increasing the stiffness (joint rigidity) is not going to stop this from happening, it is just slightly going to increase the frequency that it happens on.
The increased stiffness is going to help slightly by increasing the energy required to over-steer the engines, but it does not solve problem.
Potential fixes:
The proposed fixes are not an easy quick-fix, and use FEM solvers or physics that might not exist in the game currently
A: Tell the Kerbals to stop playing around with the rockets
The first and the "easier" of the possible solutions is to figure out the natural frequencies (eigenfrequencies) of any given vehicle before launch using the vehicles stiffness matrix in a modal analysis before launch.
Once the natural frequencies are found before launch, tell the SAS to stay clear of correcting the vehicle around those frequencies.
Added difficulty here is that as the fuel drains, the weight changes, and the natural frequencies also change, so that needs to be considered.
B: Slap some dampening on them joints
The wobble as mentioned above could be caused because the stiffness matrix of a vehicle has no dampening. Meaning that all energy added into the vehicle is stored in springs, and there is little or nothing absorbing the energy apart from time, RCS and friction from an atmosphere.
Example:
Think about the suspension in a car. Today's cars have both a shock absorber (damper) and a spring, so when you drive over a bump, any wobble / vibrations caused by the bump is taken up by the shock absorber so the car ride feels smooth.
Compare that to an old car (preferably with a leaf-spring suspension) driving over a bump would cause the car to bump up and down for a bit making the experience rougher.
If there is no dampening considered in the stiffness matrix of the vehicle, the vehicles are going to react like an old car but worse, in the example given above.
The downside to adding dampers to the joints is that it will make the physics simulation more complex and a lot harder to converge / find a "good enough" result, leading to each calculation taking more time, causing even worse FPS, so it is a give and take type solution.
Well done on actually reading this entire thing?!
It ended up being much longer than I anticipated, but I hope I managed to get the general idea across.
If nothing else, I hope it was an interesting read and not just a waste of your time
Reference:
Pretty good summary on the general topic on Wikipedia:
https://en.wikipedia.org/wiki/Modal_analysis_using_FEM