|
From: Julian S. <ju...@op...> - 2023-07-21 18:37:13
|
On Fri, 21 Jul 2023 14:04:25 +0100 James Turner <ja...@fl...> wrote: > > On 21 Jul 2023, at 13:32, Julian Smith <ju...@op...> wrote: > > > > > > For reference, this all started with > > https://sourceforge.net/p/flightgear/codetickets/1509/. > > > > It's a bit curious because the original reproducer says: > > > > reduce spring constant so, when plane is stationary, nose gear > > reaches full compression. > > > > It's hardly surprising that things go wrong if one deliberately > > mis-configures things like this, so this on its own would not be a > > reason to change anything, IMHO. > > Right, no argument there. > > > > > However a later comment says: > > > > But I tested the my above linked merge request at TF-G2 model, > > where light spring constants are needed to be able to land on a > > grass. > > > > So i think this is suggesting some particular aircraft may need a > > modified spring function that gives greater force than normal when > > highly compressed. (I wonder whether there's any information on the > > real aircraft having such non-linear suspension?) > > Also agreed with your understanding here : there are particular > aircraft (rough field aircraft?) which need light spring constants > for other reasons. It would be good to hear from more aircraft > developers as you say, if these are non-linear mechanical systems or > have secondary springs when the ‘main’ spring is at full compression. > Since intuitively, very soft springs will lead to the gear often > being at full compression, when travelling over plausibly bumpy > ground. > > > But we've recently learned that we must not allow ridiculously high > > compression to cause ridiculously high spring forces, because the > > ground level can momentarily leap upwards by thousands of metres. > > Right, although it might be separately god to see if we can address > that would some filtering in the ground intersection code. Yes, definitely. > > > Maybe we could simply add a quadratic term scaled by a new > > dimensionless constant `spring2` in the XML: > > > > force = _spring * compression * (_frac + spring2 * _frac**2) > > > > [One could view `spring2` has modifying the maximum force of the > > spring at full compression, > > > > force_max -> force_max * (1 + spring2). > > > > For example `spring2=10` would result in 11x the force at maximum > > compression compared to the default `spring2=0`.] > > > > I'm hopeful that this could address the original problem without the > > danger of pathological behaviour. I think it would be pretty easy to > > implement too. > > Definitely worth a shot, as far as I’m concerned. Again I’d be Ok, i might have a look at this, unless someone else gets there first. > happiest when we have some unit-test driving this code that can try > different spring constants, since I think that’s the only way to > capture different aircraft FDM configs in a robust way, if we make > changes to this code again. But, I appreciate in the absence of any > existing tests in this area, writing the first test will be a > non-trivial amount of work. Actually i added a Yasim Gear unit test when i implemented torus tires, to check i hadn't changed default behaviour - see: flightgear/test_suite/unit_tests/FDM/testYASimGear.cxx - Jules -- http://op59.net |