Estoy trabajando en un simulador de vuelo, en el que el jet tiene solo alerones, timón y dos elevadores en la parte trasera. Cuando subo mi avión a través de la desviación del elevador, simplemente sigue ladeando hacia arriba (incluso cuando suelto los elevadores y los dejo volver a neutral), después de alcanzar el máximo de cabeceo, comienza a cabecear en dirección opuesta y luego de un lado a otro. Estas oscilaciones tardan mucho en desaparecer y el movimiento de mi jet es como una onda sinusoidal que avanza. Estoy usando fuerzas reales de sustentación y peso en el cuerpo del avión.
Entonces mis consultas son,
Sé que estoy pidiendo demasiado en una sola pregunta. Pero he estado atascado en este problema durante tanto tiempo que solo se han acumulado más y más problemas en este tiempo.
Esto depende del nivel de realismo que desee.
Si quiere algo alto, ahórrese mucho trabajo utilizando un modelo dinámico existente como JSBSim . Hay plantillas de modelo para él que tienen todas las funciones necesarias para un modelo razonablemente realista predefinido y solo modifica los coeficientes para obtener el rendimiento que desea.
Si desea un nivel bajo, simplemente haga que la desviación de la superficie corresponda a la velocidad de cabeceo/alabeo en lugar de a la aceleración , porque eso es lo que realmente sucede con un nivel de aproximación que está perfectamente bien para un jugador de arcade.
Lo que realmente sucede es que cuando desvías la superficie de control, la rotación cambiará el ángulo en el que el aire golpea la superficie, y eso anulará el efecto de la superficie de control, por lo que la aeronave se asienta a una tasa fija de cabeceo/alabeo correspondiente a la desplazamiento ordenado. Y cuando el piloto vuelve a centrar la superficie, todavía existe la fuerza aerodinámica que contrarrestó la desviación, que ahora detendrá la rotación nuevamente.
Esto es lo suficientemente rápido como para que los pilotos normalmente no necesiten detener la rotación con el contramovimiento de los controles, excepto a veces para giros rápidos en acrobacias aéreas.
Con respecto al controlador PID, un controlador de "posición-integral-derivativo", el punto es que el término derivado predice el retraso de respuesta, mientras que el término integral compensa cualquier sesgo. La desventaja es que si lo ajusta para que tenga una respuesta rápida, siempre sobrepasa el valor objetivo, porque el término integral sobreestimará el sesgo. Pero es simple de implementar y no requiere mucho modelado, solo modifique los números hasta que funcione. El JSBSim proporciona un controlador PID (y algunos otros controladores más simples) para la definición del modelo.
Hay dos cosas fundamentales que están (o deberían estar) en juego aquí: la amortiguación y la estabilidad natural del tono .
Primero, la estabilidad . La mayoría de los aviones (pero no todos los cazas) tienen una tendencia natural a volver a cierto ángulo de ataque (llamado recortado ). No explicaré aquí cómo sucede aerodinámicamente, pero el punto es que cuando el avión se eleva, surge un momento que lo lanza hacia abajo (como un resorte). Esto se aplica a cualquier perturbación, ya sea una ráfaga de viento o la desviación de un ascensor. Por lo tanto, tirar (y sostener) el elevador no producirá una rotación permanente (a diferencia de, digamos, la respuesta de balanceo aislado de los alerones). En cambio, el avión se asentará en un ángulo de ataque (AoA) más alto. (Esto, por supuesto, aumentará la sustentación y la aeronave se apartará de su trayectoria anterior, pero este es otro asunto).
Por lo general, modela este 'resorte' al tener una función especial (coeficiente de momento de cabeceo en función de AoA (o del coeficiente de sustentación)). Para una aeronave estable, es lineal y negativa en el rango operativo de AoA. Lo que simplemente significa: más AoA -> proporcionalmente más momento de inclinación hacia abajo. Esta es una de las funciones más importantes en toda la simulación de vuelo.
La desviación del elevador (por ejemplo, hacia arriba) agregará un momento de inclinación hacia arriba. Esto alterará el equilibrio original y hará que el avión acelere el cabeceo hacia arriba. Pero esto solo seguirá ocurriendo hasta que el momento del ascensor equilibre el creciente momento de caída de la estabilidad natural.
Ahora bien, la dinámica de este proceso de tono depende de varios factores. Aparte de esto y la deflexión del elevador, dependerá de la amortiguación . La amortiguación también ocurre naturalmente, y ocurre en todos los aviones, ya sea que tengan un cabeceo estable o no.
La amortiguación, por definición, es el proceso que contrarresta la velocidad : es decir, cuanto más rápido te mueves, mayor es la fuerza que te frena. En ausencia de otras fuerzas, se establecerá en alguna velocidad constante después de la aceleración inicial. Esto, nuevamente, es algo que ocurriría en un movimiento de balanceo aislado: cuando el flujo es simétrico, el ala no produce ninguna fuerza similar a un resorte que restablezca el alabeo.
Hay dos formas genéricas de simular la amortiguación. Uno, simplemente introduces directamente este término: , es decir, momento de cabeceo en función de la velocidad de cabeceo. En el rango operativo normal de AoA, esto es casi una constante (es decir, un término proporcional) y siempre es negativo. El valor de esta constante es bastante fácil de estimar a partir de la geometría de la cola; consulte a continuación. Pero las cosas se complican más a medida que te acercas al puesto. (Siempre lo hacen).
La segunda forma es una simulación de cómo ocurre realmente la amortiguación. La mayor parte proviene del hecho de que el AoA local en la cola cambia a medida que la aeronave cabecea. Considere esto: cuando está lanzando hacia arriba, la cola baja. Más aire "viene desde abajo", lo que equivale a un AoA más alto. El nivel de este aumento depende de la velocidad vertical añadida de la cola con respecto a la velocidad normal de avance: . (En la práctica, generalmente puede dejar caer arctan ya que el ángulo es pequeño). Ahora, depende linealmente de la velocidad de paso (a menudo denotado ) y el "brazo" de la cola (su distancia al CG): .
Por lo tanto, si simula la cola "correctamente", es decir, simula sustentación en ella y todos los momentos que produce, deberá agregar este aumento local de su AoA, y todo sucederá automáticamente. Alternativamente, si simula los momentos de la cola directamente (lo que se hace a menudo), puede derivar la cantidad de amortiguamiento conociendo su naturaleza: (o más bien su coeficiente) será proporcional a , luego a otro porque la fuerza actúa a esta distancia (haciendo la dependencia de ), y a la zona del estabilizador horizontal, e inversamente a la velocidad.
Tail no es el único contribuyente a la amortiguación, pero por lo general es, con mucho, el principal. Si lo tiene en cuenta, su modelo se comportará mucho mejor. Aún así, para tener en cuenta todas las demás cosas, a menudo tendrá algún término adicional (al menos solo linealmente: ), incluso si simula la cola por separado.
Con suerte, esto resuelve la pregunta de por qué el modelo se comporta de manera tan poco natural. Queda por considerar qué sucede si realmente quieres simular un luchador estáticamente inestable.
Un avión estáticamente inestable seguirá teniendo el mismo amortiguamiento, pero su término de 'resorte' será positivo (o cero para estabilidad neutral). Si tira del elevador hacia arriba, el avión comenzará a cabecear indefinidamente. Esta moción sólo será restringida de tres formas:
QueCoolCoder
federico
hph304j
hph304j
gopalseñor