Diferencia entre revisiones de «La Clotoide Grupo 39»
| Línea 2: | Línea 2: | ||
[[Categoría:Teoría de Campos]] | [[Categoría:Teoría de Campos]] | ||
[[Categoría:TC25/26]] | [[Categoría:TC25/26]] | ||
| − | La clotoide es una curva que puede definirse como un segmento de espiral con su tangente en el origen alineada con el eje de abscisas y cuyo radio de curvatura disminuye inversamente proporcional a la distancia recorrida sobre ella. A través de la presentación, iremos explicando algunas propiedades físicas y matemáticas de esta curva. Realizaremos los cálculos requeridos con MATLAB y los representaremos gráficamente para facilitar su comprensión visual. | + | La clotoide es una curva que puede definirse como un segmento de espiral con su tangente en el origen alineada con el eje de abscisas y cuyo radio de curvatura disminuye inversamente proporcional a la distancia recorrida sobre ella. A través de la presentación, iremos explicando algunas propiedades físicas y matemáticas de esta curva. Realizaremos los cálculos requeridos con MATLAB y los representaremos gráficamente para facilitar su comprensión visual.<br/> |
En cada punto, proporcionaremos una breve introducción que incluya las fórmulas utilizadas y describa los pasos para que se pueda observar con claridad de dónde provienen los cálculos.Con el fin de analizar sus propiedades, nos enfocaremos en los vectores de aceleración y velocidad, además de los vectores normal y tangente. Posteriormente, reflexionaremos acerca de su uso en la ingeniería civil.<br /> | En cada punto, proporcionaremos una breve introducción que incluya las fórmulas utilizadas y describa los pasos para que se pueda observar con claridad de dónde provienen los cálculos.Con el fin de analizar sus propiedades, nos enfocaremos en los vectores de aceleración y velocidad, además de los vectores normal y tangente. Posteriormente, reflexionaremos acerca de su uso en la ingeniería civil.<br /> | ||
La clotoide puede ser descrita como una curva plana que se proporciona mediante la siguiente parametrización en coordenadas cartesianas: | La clotoide puede ser descrita como una curva plana que se proporciona mediante la siguiente parametrización en coordenadas cartesianas: | ||
Revisión del 20:11 3 dic 2025
| Trabajo realizado por estudiantes | |
|---|---|
| Título | La Clotoide. Grupo 39 |
| Asignatura | Teoría de Campos |
| Curso | 2025-26 |
| Autores | Daniel Martínez Saavedra Luis García García David Jiménez Blázquez Laura Oriz Polo |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
La clotoide es una curva que puede definirse como un segmento de espiral con su tangente en el origen alineada con el eje de abscisas y cuyo radio de curvatura disminuye inversamente proporcional a la distancia recorrida sobre ella. A través de la presentación, iremos explicando algunas propiedades físicas y matemáticas de esta curva. Realizaremos los cálculos requeridos con MATLAB y los representaremos gráficamente para facilitar su comprensión visual.
En cada punto, proporcionaremos una breve introducción que incluya las fórmulas utilizadas y describa los pasos para que se pueda observar con claridad de dónde provienen los cálculos.Con el fin de analizar sus propiedades, nos enfocaremos en los vectores de aceleración y velocidad, además de los vectores normal y tangente. Posteriormente, reflexionaremos acerca de su uso en la ingeniería civil.
La clotoide puede ser descrita como una curva plana que se proporciona mediante la siguiente parametrización en coordenadas cartesianas:
- [math] γ=γ(t)=(x(t),y(t))=(\int_{0}^{t}cos(\frac{s^2}{2})ds, \int_{0}^{t}sin(\frac{s^2}{2})ds),\hspace{1cm}t∈I=(a,b)[/math].
Donde
- [math]γ:t\to\mathbb{R}^2[/math]
- [math]I[/math] es el intervalo de [math]a[/math] hasta [math]b[/math]
- [math]a,b∈\mathbb{R}[/math]
Contenido
1 Dibujo de la curva
Consideramos la curva plana dada por la parametrización en coordenadas cartesianas, con valores:
a=0;
b=4;
N=100 (número de puntos). Por lo tanto, la curva se expresa con:
Realizamos el dibujo con el programa de MATLAB:
clear, clc
% Definimos la funcion
N = 100; % Número de puntos
t = linspace(0, 4, N); % Rango de t
dt = t(2) - t(1); % Paso entre puntos
% Inicializamos vectores para x(t) e y(t)
x = zeros(1, N);
y = zeros(1, N);
% Usamos el método del trapecio para integrar paso a paso
for i = 2:N
% Definimos los extremos del intervalo de integración
s_prev = t(i-1);
s_curr = t(i);
% Calculamos las funciones en los extremos
f_cos_prev = cos(s_prev^2 / 2);
f_cos_curr = cos(s_curr^2 / 2);
f_sin_prev = sin(s_prev^2 / 2);
f_sin_curr = sin(s_curr^2 / 2);
% Aproximamos integrales con el método del trapecio
x(i) = x(i-1) + (f_cos_prev + f_cos_curr) * dt / 2;
y(i) = y(i-1) + (f_sin_prev + f_sin_curr) * dt / 2;
end
% Dibujamos la curva
figure;
plot(x, y, 'r', 'LineWidth', 1.5);
xlabel('x(t)');
ylabel('y(t)');
title('Curva \gamma(t)');
grid on;
axis equal;
2 Vectores velocidad y aceleración
Los vectores velocidad y aceleración se calculan a través de la derivación de la curva.
- El vector velocidad se define como:
[math] {\gamma }'(t)={x}'(t) \vec i + {y}'(t) \vec j = cos(\frac{t^2}{2}) \vec i+sin(\frac{t^2}{2}) \vec j, t∈(0,4) [/math]
- El vector aceleración se define como:
[math] {\gamma }''(t)={x}''(t) \vec i + {y}''(t) \vec j = -t\cdot sin(\frac{t^2}{2}) \vec i+t\cdot cos(\frac{t^2}{2}) \vec j, t∈(0,4) [/math]
Continuando con el código anterior y cambiando el número de puntos para que queden bien representadas las flechas de velocidad y aceleración, tenemos el siguiente código:
clear, clc
% Definimos la funcion
N = 100; % Número de puntos
t = linspace(0, 4, N); % Rango de t
dt = t(2) - t(1); % Paso entre puntos
% Inicializamos vectores para x(t) e y(t)
x = zeros(1, N);
y = zeros(1, N);
% Usamos el método del trapecio para integrar paso a paso
for i = 2:N
% Definimos los extremos del intervalo de integración
s_prev = t(i-1);
s_curr = t(i);
% Calculamos las funciones en los extremos
f_cos_prev = cos(s_prev^2 / 2);
f_cos_curr = cos(s_curr^2 / 2);
f_sin_prev = sin(s_prev^2 / 2);
f_sin_curr = sin(s_curr^2 / 2);
% Aproximamos integrales con el método del trapecio
x(i) = x(i-1) + (f_cos_prev + f_cos_curr) * dt / 2;
y(i) = y(i-1) + (f_sin_prev + f_sin_curr) * dt / 2;
end
% Dibujamos la curva
figure;
plot(x, y, 'r', 'LineWidth', 1.5);
xlabel('x(t)');
ylabel('y(t)');
title('Curva \gamma(t)');
grid on;
axis equal;
% Calculamos vector velocidad
vx = cos(t.^2/2); % Derivada de x respecto a t
vy = sin(t.^2/2); % Derivada de y respecto a t
% Calculamos vector aceleración
ax = -t.*sin(t.^2/2); % Derivada de vx respecto a t
ay = t.*cos(t.^2/2); % Derivada de vy respecto a t
%Dibujamos curva
figure;
hold on
plot(x, y, 'r');
% Dibujamos velocidad
quiver(x,y,vx,vy,'c');
% Dibujamos aceleracióon
quiver(x,y,ax,ay,'g');
% Etiquetas y leyenda
xlabel('x(t)');
ylabel('y(t)');
title('Curva, Velocidad y Aceleración');
legend('Curva', 'Velocidad', 'Aceleración','Location', 'northwest', 'TextColor', 'black', 'FontSize', 10);
grid on;
axis equal;
hold off
3 Longitud de la curva
Podemos calcular la longitud de la curva indistintamente de la parametrización elegida, puesto que el concepto de longitud va asociado a la propia curva y no a la parametrización que la describe.
En nuestro caso, elegimos la parametrización:
Calculamos la longitud siguiendo dos procedimientos diferentes:
3.1 Calculo de forma teorica
3.2 Calculo mediante métodos numéricos
3.2.1 Método del rectángulo
% Parámetros
L = 4;
a = 0;
b = L;
n = 1000; % Número de subintervalos (más grande, mayor precisión)
h = (b - a) / n; % Tamaño del subintervalo
% Función de las derivadas
dx_dt = @(t) cos(t.^2 / 2);
dy_dt = @(t) sin(t.^2 / 2);
% Elemento de longitud de arco
arc_length_element = @(t) sqrt(dx_dt(t).^2 + dy_dt(t).^2);
% Puntos para el método del rectángulo
x_vals = linspace(a, b-h, n); % Puntos de la izquierda
% Suma del rectángulo
length = sum(arc_length_element(x_vals) * h);
% Mostrar el resultado
fprintf('La longitud de la curva es aproximadamente: %.4f\n', length);3.2.2 Método del trapecio
% Parámetros
a = 0; % Inicio del intervalo
b = 4; % Fin del intervalo
n = 1000; % Número de subintervalos
h = (b - a) / n; % Tamaño del paso
t = linspace(a, b, n+1); % Puntos de discretización
% Derivadas de x(t) y y(t)
dx_dt = @(t) cos(t.^2 / 2); % Derivada de x
dy_dt = @(t) sin(t.^2 / 2); % Derivada de y
% Elemento de longitud de arco
f = @(t) sqrt(dx_dt(t).^2 + dy_dt(t).^2);
% Valores de la función en los puntos
f_vals = f(t);
% Método del trapecio
L = h/2 * (f_vals(1) + 2 * sum(f_vals(2:end-1)) + f_vals(end));
% Resultado
fprintf('La longitud de la curva es aproximadamente: %.4f\n', L);4 Vectores tangentes y normal
Para calcular el vector tangente aplicamos la siguiente fórmula:
[math] \bar{t}(t)=\frac{\gamma {}'(t)}{\left | \gamma {}'(t) \right |}=\frac{cos(\frac{t^2}{2})\bar{i}+sin(\frac{t^2}{2})\bar{j}}{1} [/math]
Y para el vector normal:
[math] \bar{n}(t) =\bar{b}(t) \times \bar{t}(t) [/math]
siendo:
[math] \bar{b}(t) = \frac{\gamma'(t) \times \gamma''(t)}{\left| \gamma'(t) \times \gamma''(t) \right|}=\bar{k} [/math]
Quedando:
[math] \bar{n}(t) = \bar{k} \times \cos\!\left(\tfrac{t^2}{2}\right)\, \bar{i} + \sin\!\left(\tfrac{t^2}{2}\right)\, \bar{j} = -\sin\!\left(\tfrac{t^2}{2}\right)\, \bar{i} + \cos\!\left(\tfrac{t^2}{2}\right)\, \bar{j} [/math]
A la hora de la representación, partimos del código y gráfica del primer apartado, añadiendo el siguiente código y obteniendo:
% Calculamos vector tagente y normal
% TANGENTE
tanx = cos(t.^2/2);
tany= sin(t.^2/2);
% NORMAL
nx=-sin(t.^2/2);
ny=cos(t.^2/2);
% Dibujamos curva
figure;
hold on
plot(x,y,'r', 'LineWidth',1.5);
% Dibujamos vector tangente
quiver(x,y,tanx,tany, 'b');
% Dibujamos vector normal
quiver(x,y,nx,ny, 'g');
% Etiquetas y leyenda
xlabel('x(t)');
ylabel('y(t)');
title('Curva, Tangente y Normal');
legend('Curva', 'Tangente', 'Normal','Location', 'northwest', 'TextColor', 'black', 'FontSize', 10);
grid on;
axis equal;
hold off
5 Curvatura
La fórmula de la función curvatura para cualquier parametrización [math]\gamma(t)[/math] es:
[math] \bar{\kappa}(t) = \frac{\left| \gamma'(t) \times \gamma''(t) \right|}{\left| \gamma'(t) \right|^3} [/math]
Con nuestros datos obtenemos:
[math] \bar{\kappa}(t) = \frac{t}{\sqrt{1^3}} = t [/math]
Para representarla utilizamos este programa que muestra cómo aumenta linealmente la curvatura de 0 a 4 segundos.
% Parámetro t
t = linspace(0, 4, N); % Rango de t
% Calculamos la curvatura
k = t;
% Dibujo
figure;
plot(k,t);
ylabel('curvatura');
xlabel('tiempo');
title('Curvatura')
6 Circunferencia osculatriz
La circuferencia osculatriz a una curva en un punto dado, es una circunferencia que representa la curvatura de dicha curva en ese punto. A su vez, esta circunferencia es tangente a la curva por la regla de Leibniz.
Enfocando esta definición a lo pedido en este apartado, sea [math]P=\gamma (4)[/math] , es decir [math]t=4s[/math], hallar el centro y el radio de la circunferencia osculatriz en [math]P[/math] y dibujar la circunferencia junto a la curva.
Su radio [math]R(t)[/math] es igual a
[math]R(t)=\frac{1}{\left | \kappa (t) \right |}[/math]
Haciendo los cálculos quedan los siguientes resultados
Llegados a este punto necesitamos la ayuda del siguiente programa de Matlab para resolver las integrales por el método del trapecio. Como necesitamos conocer en qué punto de la clotoide se encuentra el instante [math]t=4s[/math], primero definimos la curva de 0 a 4 segundos para encontrar dicho punto. A la hora de la representación también tenemos en cuenta el código y gráfica del primer apartado.
clear, clc
% Definimos la funcion
N = 100; % Número de puntos
t = linspace(0, 4, N); % Rango de t
dt = t(2) - t(1); % Paso entre puntos
% Inicializamos vectores para x(t) e y(t)
x = zeros(1, N);
y = zeros(1, N);
% Usamos el método del trapecio para integrar paso a paso
for i = 2:N
% Definimos los extremos del intervalo de integración
s_prev = t(i-1);
s_curr = t(i);
% Calculamos las funciones en los extremos
f_cos_prev = cos(s_prev^2 / 2);
f_cos_curr = cos(s_curr^2 / 2);
f_sin_prev = sin(s_prev^2 / 2);
f_sin_curr = sin(s_curr^2 / 2);
% Aproximamos integrales con el método del trapecio
x(i) = x(i-1) + (f_cos_prev + f_cos_curr) * dt / 2;
y(i) = y(i-1) + (f_sin_prev + f_sin_curr) * dt / 2;
end
% Parámetros
t_osculatriz = 1.5; % Tiempo de la circunferencia osculatriz
% Punto de la clotoide para t_osculatriz (t=1.5)
% calcular posición de t = 1.5
O =round(1.5/(4/N));
P = [x(O),y(O)]; % punto en el que t = 1.5
% Vector normal calculado antes para t_osculatriz (t=1.5)
n = [-sin(t_osculatriz.^2/2),cos(t_osculatriz.^2/2)];
% Aplicación t=1.5
k_osculatriz = t_osculatriz;
R = 1/1.5;
% FÓRMULA CENTRO
Q = P + R*n;
% Conversión a polares
tp = linspace(0,2*pi,100);
% Añadimos Q(1) porque es la coordenada de las x de las abcisas del centro
xp=R*cos(tp)+Q(1);
% Q(2) es la coordenada en las ordenadas
yp=R*sin(tp)+Q(2);
% Dibujamos curva
figure;
hold on
plot(x,y,'r', 'LineWidth',1.5);
% Dibujamos osculatriz
plot(P(1), P(2),'+','LineWidth',1.5);
plot(xp,yp,'--','Color','g','LineWidth',1.5);
% Etiquetas y leyenda
xlabel('x(t)');
ylabel('y(t)');
title('Circunferencia osculatriz y clotoide');
legend('Curva', 'P(t = 1.5)', 'Osculatriz','Location', 'northwest', 'TextColor', 'black', 'FontSize', 10);
grid on;
axis equal;
hold off
7 Información de interés
La clotoide es una curva utilizada como elemento de transición entre una recta y una curva circular. Esta transición es suave debido al aumento lineal de la curvatura y resulta muy útil en la ingeniería civil por los siguientes motivos:
En las carreteras, la clotoide ayuda a que los vehículos entren en las curvas de manera más cómoda. Al hacer que la curva comience lentamente, se evitan movimientos bruscos que pueden incomodar al conductor o causar pérdida de control. Gracias a esto, la conducción se siente más estable y se reduce el riesgo de accidentes, especialmente en zonas donde se circula a mayor velocidad.
En los ferrocarriles, las clotoides también son muy importantes. Los trenes necesitan cambios de dirección muy suaves, porque cualquier giro brusco puede afectar su estabilidad. La clotoide permite que el tren empiece la curva poco a poco, lo que reduce el desgaste de las vías y mejora la comodidad de los pasajeros, sobre todo en líneas rápidas.
En conclusión, las clotoides son muy útiles porque hacen que las carreteras y las vías férreas sean más cómodas y seguras, así como en canales de navegación. Sin embargo, necesitan un espacio mínimo para que la transición funcione bien. Por eso, en zonas donde el espacio es muy limitado, a veces es más difícil aplicarlas tal como se recomienda, y los diseños deben adaptarse lo mejor posible.
8 Estructura civil
9 Superficie reglada: Hélice cónica
Consideraremos la siguiente parametrización:
Una superficie reglada es una superficie que puede generarse desplazando un segmento de recta a lo largo de una curva.
En nuestro caso se define la superficie reglada asociada a dicha parametrización mediante segmentos de longitud 1 con vector director eρ como aquella parametrizada por :
Siendo [math]{u}[/math] el segmento (0,1), [math]\bar{w}[/math] el vector director eρ y [math]{v}[/math] el tiempo.
Para llegar a la parametrización deseada, pasamos el vector director eρ a coordenadas cartesianas con la matriz cambio de base:
\begin{pmatrix}v_1\\v_2 \\v_3 \end{pmatrix}= \begin{pmatrix}cosv & -senv &0 \\ senv & cosv & 0\\ 0 & 0 & 1\end{pmatrix} \begin{pmatrix}1\\0\\0\end{pmatrix}= \begin{pmatrix}cosv\\ senv\\0 \end{pmatrix}
El vector [math]\vec{e_{\rho}} [/math] en coordenadas cartesianas es igual a
[math]\overline cosv\overline{i}+senv\overline{j}[/math]
Si finalmente aplicamos la definición antes descrita, nuestra hélice queda parametrizada como:
y podemos representarla gráficamente con este código de matlab.
% Definir los rangos de u y v
v= (2.*pi:0.01:6.*pi) ;
u= (0:0.01:1);
% Crear una malla de valores para u y v
[U, V] = meshgrid(u, v);
% Calcular las coordenadas
X = cos(V) .* (V + U);
Y = sin(V) .* (V + U);
Z = V;
% Graficar la superficie
figure;
surf(X, Y, Z, 'EdgeColor', 'none');
xlabel('X');
ylabel('Y');
zlabel('Z');
title('Superficie Reglada');
axis equal; % Escala uniforme
10 Masa de la superficie reglada
Supongamos que la densidad de la superficie del apartado anterior viene dada por la función
[math]f(x_1, x_2, x_3) = \frac{x_1^2 + x_2^2}{x_3}[/math]
Para calcular la masa utilizamos la expresión
[math]Masa=\iint_{S}^{}fds=\iint_{D}^{}f(\bar{r(u,v)})\cdot \left | \bar{r'_u}\times\bar{r'_v} \right |dudv[/math]
Como hemos hallado en el apartado anterior
[math]
\phi (u,v)\begin{cases}
x=v\cdot cosv+u\cdot cosv \\
y=v\cdot senv+u\cdot senv\\
z=v
\end{cases}[/math]
[math]
\vec{{r}}(u,v)=(v\cdot cosv+u\cdot cosv)\vec{i}+(v\cdot sinv+u\cdot sinv)\vec{j}+v\vec{k}[/math]
[math]
\vec{{r}}_u=cosv \vec{i}+sinv\vec{j}
[/math]
[math]\vec{{r}}_v=(cosv-v\cdot sinv-u\cdot sinv) \vec{i}+(sinv+v\cdot cosv+u\cdot cosv)\vec{j}+\vec{k}[/math]
[math] \bar{r}'_u\times \bar{r}'_v=\begin{vmatrix} i & j & k\\ cosv &senv &0 \\ cosv-v\cdot sinv-u\cdot sinv&sinv+v\cdot cosv+u\cdot cosv & 1 \end{vmatrix}=senv\bar{i}-cosv\bar{j}+(u+v)\bar{k}[/math]
La función evaluada según el vector [math]\vec{{r}}(u,v)[/math] nos da
Utilizando la siguiente expresión y resolviendo la integral mediante el método del rectángulo obtenemos que la masa es 2406. Este resultando es el mismo que obtenemos si realizamos el mismo procedimiento con Matlab.
[math] \text{MASA} = \int_{2\pi}^{6\pi} \int_{0}^{1} \frac{(u+v)^2}{v} \, \sqrt{1+(u+v)^2} \, du \, dv= 2406 [/math]
% Parámetros
u0 = 0; u1 = 1;
v0 = 2*pi; v1 = 6*pi;
M_steps = 100; % pasos en u
N_steps = 1000; % pasos en v
du = (u1 - u0)/M_steps;
dv = (v1 - v0)/N_steps;
% Vectores de discretización
u = linspace(u0, u1, M_steps);
v = linspace(v0, v1, N_steps);
% Inicializar masa
M_total = 0;
% Método del rectángulo (suma doble)
for i = 1:M_steps
for j = 1:N_steps
ui = u(i);
vj = v(j);
% Densidad en el punto (u,v)
f = (vj + ui)^2 / vj;
% Magnitud del producto cruz
dS = sqrt(1 + (vj + ui)^2);
% Sumar contribución al total
M_total = M_total + f * dS * du * dv;
end
end
fprintf('Masa aproximada de la superficie: %.4f\n', M_total);