From: <fli...@go...> - 2011-09-25 19:48:04
|
Comment #11 on issue 442 by bcoco...@gmail.com: YASim incorrectly treats a glide angle's vertical (z) component as a sideways (y) component. http://code.google.com/p/flightgear-bugs/issues/detail?id=442 Colin wrote : > Indeed, YASim doesn't need to specify a glide angle to arrive at a > solution at > all. Once the speed, the angle of attack, the available thrust, and the > drag > produced have all been specified, there is only one stable solution in > which the > airplane is flying through the air at the specified airspeed and angle of > attack. > If the power required to move at this speed is less than the available > power, the > airplane will climb, increasing its potential energy at the rate needed > to consume > the excess power available. If power required and available exactly match > (drag > and thrust match), the airplane will fly level. If power required is > greater than > power available, the airplane will descend, losing potential energy at a > rate > sufficient to make up the power required. I think this behavior is definitely not acceptable since -according to the code- YASim is trying to trim the aircraft so that its vertical acceleration is zero. See the code below extracted from Airplane::setupState() 1036 if(abs(xforce/_cruiseWeight) < STHRESH*0.0001 && 1037 abs(alift/_approachWeight) < STHRESH*0.0001 && 1038 abs(aoaDelta) < STHRESH*.000017 && 1039 abs(tailDelta) < STHRESH*.000017) 1040 { 1041 // If this finaly value is OK, then we're all done 1042 if(abs(elevDelta) < STHRESH*0.0001) 1043 break; According to line 1037, YASim assumes 'it is done' when 'alift/weight' is very small ie when the acceleration in the vertical direction is almost zero. Therefore the vertical velocity should be constant ...but YASim also assumes the glide path angle to be zero as well. So the vertical velocity should be zero and remain so. This is obviously not confirmed by your tests. I have my idea why YASim does not trim correctly in approach : the user should not be allowed to choose the thrust, it should be imposed by YASim. The problem is that the lift that YASim will calculate will depend linearly on the thrust chosen by the user (the slope is equal to the AoA). If the user puts too much thrust then the lift will be underestimated (assuming a positive AoA) and the other way around. I will fill a bug report about that later on. Bertrand. |