Skip to content
cfd-lab:~/es/posts/2026-05-07-circulation-l…online
NOTE #036DAY THU 유체역학DATE 2026.05.07READ 6 min readWORDS 1,055#유체역학#양력#Magnus#Kutta-Joukowski#Circulation#Potential-Flow

Por qué se curva una pelota que gira — Circulación, efecto Magnus y el teorema de Kutta–Joukowski

La razón real por la que un cuerpo en rotación genera sustentación, y el papel invisible del vórtice de arranque

El día en que un proyectil giratorio se negó a volar recto#

En 1853, el físico berlinés Heinrich Magnus llevó al túnel de viento una vieja inquietud de los artilleros. Un proyectil con giro propio no vuela recto: se desvía hacia un costado. Magnus colgó un cilindro vertical en rotación dentro de la corriente y midió una fuerza lateral constante perpendicular al eje de giro. La rotación estaba generando sustentación.

Quedaba la pregunta del «por qué». En un fluido sin viscosidad la superficie desliza libremente, así que no es obvio qué hace que el lado superior fluya más rápido que el inferior. La respuesta cabe en una sola palabra: circulación. Este texto parte de la definición de la circulación, muestra por qué un cilindro giratorio es empujado hacia arriba y sigue el rastro hasta el teorema de Kutta–Joukowski, que generaliza esa conclusión a cualquier cuerpo sustentador bidimensional. Al final aborda lo único que la teoría no viscosa no puede explicar por sí sola — cómo nace la circulación a partir de un fluido en reposo — mediante el vórtice de arranque (starting vortex).

Circulación — una integral sobre una curva cerrada#

La circulación Γ\Gamma tiene una definición de una sola línea.

Γ=Cuds\Gamma = \oint_{C} \mathbf{u}\cdot d\mathbf{s}

La componente tangencial de la velocidad integrada una vuelta sobre una curva cerrada CC. Aquí u\mathbf{u} es el vector velocidad y dsd\mathbf{s} es el elemento tangencial de la curva.

Con el teorema de Stokes se traduce a una integral de superficie.

Γ=SωdA\Gamma = \iint_{S} \boldsymbol{\omega}\cdot d\mathbf{A}

Donde ω=×u\boldsymbol{\omega} = \nabla\times\mathbf{u} es la vorticidad y dAd\mathbf{A} es el elemento normal a la superficie encerrada por CC. Es decir, la circulación es la cantidad total de vorticidad atrapada dentro del lazo.

Conviene fijar dos hechos. Un lazo puede contener vorticidad nula en cada punto interior y aun así tener circulación distinta de cero — un vórtice libre (vorticidad concentrada en un punto) hace exactamente eso para cualquier lazo a su alrededor. Y las unidades difieren: la vorticidad es [1/s] y la circulación es [m²/s] — vorticidad multiplicada por área.

Por qué un cilindro giratorio sube#

En flujo incompresible, irrotacional y no viscoso, la manera más limpia de construir una solución estacionaria es superponer soluciones elementales. Una corriente uniforme más un doblete da un cilindro estacionario. Si se suma un vórtice puntual en el centro, queda un cilindro en rotación.

Reunido en un solo potencial complejo,

W(z)=Uz+UR2z+iΓ2πlnzW(z) = U_\infty z + \frac{U_\infty R^2}{z} + \frac{i\Gamma}{2\pi}\ln z

con la convención de que Γ\Gamma positivo corresponde a giro horario. La velocidad tangencial sobre la superficie r=Rr = R resulta

uθ(R,θ)=2UsinθΓ2πRu_\theta(R, \theta) = -2 U_\infty \sin\theta - \frac{\Gamma}{2\pi R}

En la parte superior (θ=π/2\theta = \pi/2) los dos términos suman con el mismo signo y uθ|u_\theta| crece. En la inferior (θ=π/2\theta = -\pi/2) se cancelan. Como arriba el flujo es más rápido, por Bernoulli

p+12ρu2=constp + \tfrac{1}{2}\rho u^2 = \text{const}

la presión arriba es menor, y al integrar la diferencia de presión a lo largo del contorno queda una fuerza neta hacia arriba.

Conviene experimentar con la simulación.

Streamlines from uniform flow U∞ + doublet (cylinder) + point vortex Γ. Top flow accelerates, bottom decelerates: by Bernoulli, low pressure on top → upward force L′ = ρU∞Γ. Yellow dots are stagnation points; when |Γ| > 4πU∞R they merge and detach below the cylinder (red dot).

Al subir Γ|\Gamma| desde cero, los puntos de estancamiento amarillos se desplazan hacia abajo. Cuando Γ>4πUR|\Gamma| > 4\pi U_\infty R los dos puntos se fusionan y se desprenden de la superficie del cilindro — pasado ese giro crítico la topología del flujo cambia por completo.

El teorema de Kutta–Joukowski — L′ = ρU∞Γ#

La integración directa de la presión superficial entrega un resultado limpio. En flujo no viscoso estacionario el arrastre es exactamente cero y la sustentación por unidad de envergadura vale

L=ρUΓL' = \rho U_\infty \Gamma

Lanchester lo planteó como conjetura en 1894 en el Reino Unido; a comienzos del siglo XX, Kutta en Alemania y Joukowski en Rusia lo elevaron, de manera independiente, a teorema.

Hay dos motivos por los que esta fórmula es poderosa. Primero, la forma del cuerpo desaparece: cualquier sección bidimensional con la misma circulación a su alrededor produce la misma sustentación. Segundo, la sustentación escala con la circulación, no con la rotación misma. Un ala que no gira también desarrolla circulación a su alrededor si el perfil y el ángulo de ataque son adecuados, y con ello aparece la sustentación.

El vórtice de arranque y el papel silencioso de la viscosidad#

Aquí surge una contradicción. En un fluido en reposo no hay vorticidad en ninguna parte, así que cualquier lazo cerrado tiene circulación nula. El teorema de circulación de Kelvin — la circulación a lo largo de una curva material en flujo no viscoso con fuerzas conservativas se mantiene constante en el tiempo — exige que ese cero permanezca para siempre.

Entonces, ¿cómo despega un avión?

La respuesta es la viscosidad. En el instante en que el ala acelera desde el reposo, la teoría no viscosa exige una velocidad infinita en el borde de fuga (trailing edge). Un fluido real disipa esa energía cinética por viscosidad y un vórtice se desprende del borde de fuga — el vórtice de arranque (starting vortex). Gira en sentido antihorario.

El teorema de Kelvin sigue exigiendo que la circulación total alrededor de un lazo lo bastante grande para contener al ala y a su estela sea cero. Por eso queda alrededor del perfil una circulación horaria de igual magnitud — el vórtice ligado (bound vortex) — y esa circulación ligada es la Γ\Gamma que aparece en L=ρUΓL' = \rho U_\infty \Gamma.

Se sugiere pulsar start motion abajo.

Press start motion: a counterclockwise starting vortex sheds from the trailing edge while an equal-magnitude clockwise bound circulation grows around the wing. Their sum is zero (Kelvin's circulation theorem). The bound circulation is what produces lift L′ = ρU∞Γ_bound. t=0.00 s, Γ_bound=0.00, Γ_shed=0.00.

Al aumentar el ángulo de ataque crece la circulación ligada horaria, y un vórtice de arranque antihorario de igual magnitud se desprende del borde de fuga. Su suma vale siempre cero. La sustentación de un ala que parece no viscosa no es más que el estado posterior al desprendimiento, leído de nuevo con los ojos de la teoría no viscosa.

Código: velocidad superficial y coeficiente de sustentación#

El cuadro Magnus cabe en una página de NumPy: función de corriente, coeficiente de presión superficial y coeficiente de sustentación, todos juntos.

import numpy as np
 
def cylinder_streamfunction(x, y, U_inf, gamma, R):
    """Función de corriente ψ = U sinθ (r - R²/r) + Γ/(2π) ln(r/R), Γ>0 = horario."""
    r = np.hypot(x, y)
    theta = np.arctan2(y, x)
    safe = np.maximum(r, 1e-9)
    psi_uniform = U_inf * np.sin(theta) * (safe - R ** 2 / safe)
    psi_vortex = (gamma / (2 * np.pi)) * np.log(safe / R)
    return psi_uniform + psi_vortex
 
def surface_pressure_coeff(theta, U_inf, gamma, R):
    """Coeficiente de presión sobre la superficie r=R: Cp = 1 - (u/U∞)²."""
    u_theta = -2 * U_inf * np.sin(theta) - gamma / (2 * np.pi * R)
    return 1.0 - (u_theta / U_inf) ** 2
 
def magnus_lift_coefficient(gamma, U_inf, R):
    """L' = ρU∞Γ → C_L = 2Γ/(U∞·d), diámetro d = 2R."""
    return gamma / (U_inf * R)
 
# Tres corridas rápidas (ρ = 1 implícito)
U_inf, R = 10.0, 0.5
for gamma in [0.0, np.pi * U_inf * R, 4 * np.pi * U_inf * R]:
    theta = np.linspace(-np.pi, np.pi, 360)
    cp = surface_pressure_coeff(theta, U_inf, gamma, R)
    L_per_span = U_inf * gamma
    cl = magnus_lift_coefficient(gamma, U_inf, R)
    print(f"Γ={gamma:6.2f}  C_L={cl:5.2f}"
          f"  Cp_top={cp[270]:+.2f}  Cp_bot={cp[90]:+.2f}"
          f"  L'/ρ={L_per_span:6.2f}")

Para Γ=0\Gamma = 0 la sustentación es exactamente cero y los Cp arriba y abajo son simétricos. Llevando Γ\Gamma al valor crítico 4πUR4\pi U_\infty R los dos puntos de estancamiento colapsan en uno — el punto rojo de la visualización superior.

Tres líneas para llevarse#

  • La sustentación nace de la circulación, no de la rotación misma. La fórmula por unidad de envergadura L=ρUΓL' = \rho U_\infty \Gamma vale para todo cuerpo sustentador 2D.
  • Un cilindro giratorio se modela exactamente como corriente uniforme + doblete + vórtice puntual. La parte superior se acelera, la inferior se frena, y Bernoulli hace el resto.
  • Sin viscosidad no hay sustentación. El vórtice de arranque desprendido en el borde de fuga preserva el teorema de Kelvin y deja a su alrededor un vórtice ligado igual y opuesto — esa circulación ligada es lo que sostiene el vuelo.

Comparte si te resultó útil.