Diferencia entre revisiones de «La Clotoide (Grupo 58)»
| Línea 434: | Línea 434: | ||
https://upm365-my.sharepoint.com/:b:/g/personal/lucia_pertusa_diaz_alumnos_upm_es/EajopRIt1FBDgBtNGY3WoyMB7tT8gG_W86w60v0xQzf8TQ?e=j8LAE7 | https://upm365-my.sharepoint.com/:b:/g/personal/lucia_pertusa_diaz_alumnos_upm_es/EajopRIt1FBDgBtNGY3WoyMB7tT8gG_W86w60v0xQzf8TQ?e=j8LAE7 | ||
| − | |||
| − | |||
| − | |||
| − | |||
Revisión del 23:49 6 dic 2025
| Trabajo realizado por estudiantes | |
|---|---|
| Título | La clotoide. Grupo 58 |
| Asignatura | Teoría de Campos |
| Curso | 2025-26 |
| Autores | Israel Redondo Briceño Lucia Pertusa Diaz Marta Hernandez Bargueño Felipe Gonçalves Soares Diego Ranera Delgado |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
1 Introducción.
La clotoide, o espiral de Euler, es una curva que se puede definir como una sucesión de curvas tangentes en el origen al eje de abscisas, cuyo radio de curvatura disminuye inversamente proporcional a distancia recorrida sobre la curva, formando un tramo espiral. Esta curva cumple con una serie de propiedades matemáticas que iremos viendo su cumplimiento conforme vamos presentando el trabajo. Con la herramienta de MatLab realizaremos los cálculos y representaremos la curva de forma gráfica para su mejor visualización.
En cada apartado se hará una breve introducción de las fórmulas empleadas, así como su desarrollo. Para el estudio de sus propiedades nos vamos a centrar en los vectores de velocidad, aceleración, tangentes y normal, preparando estos para su posterior aplicación y enfoque en la ingeniería civil.
2 Dibujo de la curva.
La expresión matematica de la clotoide es:
[math] \gamma (t)=(x(t),y(t))=\left ( \int_{0}^{t}cos(\frac{s^2}{2})ds, \int_{0}^{t}sin(\frac{s^2}{2})ds \right ), t\in (0,4) [/math]
La representación gráfica de la curva se ha hallado mediante el siguiente código:
clear; clc; clf;
% Definimos los parámetros
L = 4;
n = 500;
t = linspace(0, L, n);
% Definimos los vectores para las coordenadas x y y
x = zeros(1, n);
y = zeros(1, n);
% Definimos las funciones
f1= @(s) cos(s.^2/2);
f2= @(s) sin(s.^2/2);
% Aproximamos la integral usando el método del rectángulo
for i = 2:n
% Para x(t), sumamos la función cos(s^2 / 2) de t = 0 hasta t = t(i)
x(i) = x(i-1) + f1(t(i-1)) * (t(i) - t(i-1));
% Para y(t), repetimos el método usando sin(s^2 / 2)
y(i) = y(i-1) + f2(t(i-1))* (t(i) - t(i-1));
end
% Representamos gráficamente la curva
figure;
plot(x, y, 'g','linewidth',1.5);
axis equal;
xlabel('eje x');
ylabel('eje y');
title('Curva de la clotoide');
grid on;3 Velocidad y aceleración.
Para calcular ambos vectores, se han aplicado las siguientes fórmulas de velocidad [math] \dot{\gamma } [/math] y aceleración [math] \ddot{\gamma } [/math]
[math]
\vec{{\gamma }'}=cos(\frac{t^2}{2}) \vec{i} +sin(\frac{t^2}{2})\vec{j}
[/math]
[math]
\vec{{\gamma }''}= -t\cdot sin(\frac{t^2}{2}) \vec{i} +t\cdot cos(\frac{t^2}{2})\vec{j}
[/math]
Para representarlo, partiremos del código y gráfica del apartado anterior, añadiendo el siguiente código, y obteniendo:
% Calculamos las derivadas numéricas de x(t) y y(t) (velocidad)
dx = cos(t.^2/2); % Derivada primera de x(t)
dy = sin(t.^2/2); % Derivada primera de y(t)
% Calculamos las derivadas de las velocidades (aceleración)
ddx = -t.*sin(t.^2/2); % Derivada segunda de x(t)
ddy = t.*cos(t.^2/2); % Derivada segunda de y(t)
hold on;
plot(x,y,'g','LineWidth',2);
% Dibujamos los vectores de velocidad (negro) y aceleración (rojo)
for i = 1:4:n
% Vectores de velocidad
quiver(x(i), y(i), dx(i), dy(i), 0.2, 'k', 'LineWidth', 0.5, 'MaxHeadSize',1);
% Vectores de aceleración
quiver(x(i), y(i), ddx(i), ddy(i), 0.025, 'r', 'LineWidth', 0.5, 'MaxHeadSize',0.5);
end
% Etiquetas y configuración de la gráfica
title('Curva, Velocidad y Aceleración');
legend('Curva', 'Velocidad', 'Aceleración','Location','Best');
hold off;4 Longitud de la curva
La longitud de la curva viene dada por la siguiente expresión:
Como se ha plasmado en el apartado anterior:
Cuyo módulo es:
Por tanto la longitud es:
5 Vectores tangente y normal
Los vectores tangente y normal de la clotoide vienen dadas por:
Para representarlo, partiremos del código y gráfica del apartado anterior, añadiendo el siguiente código, y obteniendo:
% Calculamos los vectores tangente x(t) e y(t)
tx = cos(t.^2/2);
ty = sin(t.^2/2);
% Calculamos los vectores normal x(t) e y(t)
nx = -sin(t.^2/2);
ny = cos(t.^2/2);
hold on;
plot(x,y,'g','LineWidth',2);
% Dibujamos los vector tangente (negro) y normal (azul)
for i = 1:4:n
% Vector tangente
quiver(x(i), y(i), tx(i), ty(i), 0.2, 'k', 'LineWidth', 0.5, 'MaxHeadSize',1);
% Vector normal
quiver(x(i), y(i), nx(i), ny(i), 0.1, 'b', 'LineWidth', 0.5, 'MaxHeadSize',0.5);
end
% Etiquetas y configuración de la gráfica
title('Curva, Vectores tangente y normal');
legend('Curva', 'Tangente', 'Normal','Location','Best');
hold off;6 Curvatura k(t).
La curvatura se calcula con la siguiente fórmula:
La gráfica de la curvatura se calcula mediante el siguiente código de Matlab
% Definimos el parámetro t
t=linspace(0,4,50);
% Definimos la curvatura k(t)
k=t;
% Representamos la gráfica de la curvatura
figure;
plot(k,t,'y','LineWidth',3);
title('Curvatura');
xlabel('Eje x');
ylabel('Eje y');
7 Circunferencia osculatriz.
La circunferencia osculatriz es una aproximación local de la curva en cada punto de esta, es decir, la circunferencia tiene la misma tangente, curvatura y centro de curvatura que la curva en cada punto.
Dada esta definición y dado P= [math] \gamma (1.5) [/math], es decir, t=1.5, el radio de la circunferencia osculatriz y su centro son:
[math]R(t)=\frac{1}{\kappa(t)}[/math]
[math]Q(t)=\gamma (t)+\frac{1}{\kappa (t)}\bar{n}(t)[/math]
Realizando las operaciones correspondientes, tenemos:
[math]R(1.5)=\frac{1}{1.5}[/math]
Con el centro recientemente calculado, se realiza el gráfico, añadiendo el siguiente código, al anterior de la clotoide, y por tanto, obteniendo la circunferencia osculatriz:
t_osculatriz = 1.5; % El punto de interés
R_const = 8.314; % Definir R por si acaso, aunque no se usa
% Curvatura y Radio para la clotoide:
kappa_15 = t_osculatriz;
R_15 = 1 / kappa_15; % Radio de la circunferencia osculatriz (R(1.5))
% R_15 = 1 / 1.5 = 0.6667
% Integrandos de la Clotoide:
Cx = @(s) cos(s.^2 / 2);
Cy = @(s) sin(s.^2 / 2);
% Coordenadas del punto P (integral hasta t=1.5):
Px = integral(Cx, 0, t_osculatriz);
Py = integral(Cy, 0, t_osculatriz);
P = [Px, Py]; % Punto P(1.5) en la curva
% Cálculo del Vector Tangente unitario (t_unitario) en P:
% t = gamma'(t) = (cos(t^2/2), sin(t^2/2))
tx_15 = cos(t_osculatriz^2 / 2);
ty_15 = sin(t_osculatriz^2 / 2);
t_unitario = [tx_15, ty_15];
% Cálculo del Vector Normal unitario (n_unitario) en P:
% n(t) = (-sin(t^2/2), cos(t^2/2))
nx_15 = -ty_15; % nx = -sin(t^2/2)
ny_15 = tx_15; % ny = cos(t^2/2)
n_unitario = [nx_15, ny_15];
% Coordenadas del Centro de Curvatura Q(1.5):
% Q = P + R * n_unitario
Qx = Px + R_15 * nx_15;
Qy = Py + R_15 * ny_15;
Q = [Qx, Qy];
figure;
hold on;
grid on;
axis equal;
% Dibujar la Curva (Clotoide)
t_vals = linspace(0, 3, 300);
% Integración numérica para obtener los puntos de la Clotoide
gamma_x = arrayfun(@(t) integral(Cx, 0, t), t_vals);
gamma_y = arrayfun(@(t) integral(Cy, 0, t), t_vals);
plot(gamma_x, gamma_y, 'b-', 'LineWidth', 2, 'DisplayName', 'Curva de la Clotoide');
% Dibujar el Punto de Corte (P)
scatter(Px, Py, 80, 'filled', 'r', 'DisplayName', 'Punto de Corte P(1.5)');
text(Px + 0.1, Py + 0.1, 'P(1.5)', 'Color', 'r', 'FontSize', 12);
% Dibujar la Circunferencia Osculatriz
theta = linspace(0, 2 * pi, 100);
circ_x = Qx + R_15 * cos(theta);
circ_y = Qy + R_15 * sin(theta);
plot(circ_x, circ_y, 'k--', 'LineWidth', 1.5, 'DisplayName', 'Circunferencia Osculatriz');
% Dibujar el Centro de Curvatura (Q)
scatter(Qx, Qy, 50, 'filled', 'k', 'DisplayName', 'Centro de Curvatura Q');
text(Qx - 0.1, Qy - 0.1, 'Q', 'Color', 'k', 'FontSize', 12);
% Dibujar el Radio y Normal (Opcional, para visualización)
plot([Qx, Px], [Qy, Py], 'g:', 'DisplayName', 'Radio R(1.5)'); % Vector Q->P
% quiver(Px, Py, nx_15*R_15, ny_15*R_15, 0, 'm', 'LineWidth', 1.5, 'DisplayName', 'Vector Normal');
% Ajustes finales
title('Clotoide y Circunferencia Osculatriz en t = 1.5');
xlabel('Coordenada x');
ylabel('Coordenada y');
legend('Location', 'northwest');
hold off;8 Propiedades para la ingeniería.
El clotoide se caracteriza porque su curvatura aumenta de forma lineal con la longitud del arco, lo que
garantiza una transición suave entre un tramo recto y una curva circular. Esta variación progresiva evita
discontinuidades en la dirección del movimiento, por lo que la curva es continua hasta segunda
derivada. Matemáticamente se describe mediante las integrales de Fresnel, que permiten definir con
precisión su forma y adaptar el trazado a distintas condiciones. Otra propiedad importante es que
minimiza cambios bruscos de aceleración lateral, lo que la convierte en una solución eficiente en
problemas donde se busca comodidad, estabilidad y control del movimiento.
Carreteras: ajustar el trazado a las velocidades adecuadas del proyecto, para que la seguridad y la comodidad de los vehículos sea la mejor.
Ferrocarriles y tranvías: sirve para reducir los esfuerzos en las ruedas y carriles, limitar desgastes y evitar oscilaciones y vibraciones cuando el tren tome una curva.
Puentes y viaductos: para coordinar el tablero con el trazado del puente, optimizando el reparto de esfuerzos de estructuras y la comodidad del tráfico.
Caminos de obra y pistas industriales/mineras: favorece la movilidad de maquinarias pesadas, reduciendo riegos de vuelco, fatiga de componentes y el mantenimiento de la vía.
9 Ejemplos en Ingeniería Civil.
10 Superficie Reglada.
Se considera la helice cónica cuya parametrización es:
Para dibujar dicha superficie reglada asociada a la curva mediantes segmentos ortogonales de longitud 1 y vector [math]\bar{e}_p [/math], se hace lo siguiente:
1) Se parametriza la curva segun v:
2)Usar una matriz de cambio de base para pasar el vector [math]\vec{e_{\rho}} [/math] de cilíndricas a cartesianas:
\begin{pmatrix}v_1\\v_2 \\v_3 \end{pmatrix}= \begin{pmatrix}cost & -sint &0 \\ sint & cost & 0\\ 0 & 0 & 1\end{pmatrix} \begin{pmatrix}1\\0\\0\end{pmatrix}= \begin{pmatrix}cost\\ sint\\0 \end{pmatrix}
Por lo tanto [math]\vec{w}(v) = cosv \overline{i} + sinv\overline{j} [/math]
3) Sustituir todos los valores en la formula [math] \phi (u,v)= \gamma(v) + u\cdot \bar{w}(v) [/math] :
Para representar la hélice cónica hemos usado el siguiente código de Matlab:
clear; clc; clf;
%Definimos los parámetros
u=(0:0.01:1);
v=(2.*pi:0.01:6.*pi);
[MU,MV]=meshgrid(u,v);
%Definimos la superficie reglada en coordenadas cilíndricas
r=MV+MU;
th=MV;
z=MV;
%Transformamos las coordenadas en cartesianas
x=r.*cos(th);
y=r.*sin(th);
z=z;
%Dibujamos la superficie en una gráfica
surf(x,y,z);
title('Helicoide cónico');
shading flat;
A continuación, se muestran una serie de aplicaciones en el mundo real:
11 La masa de la Superficie Reglada.
Dada la función de densidad [math] f(x_1,x_2,x_3)=(\frac{x_1^2+x_2^2}{x_3 })[/math], para calcular la masa usaremos la expresión
Primero calculamos las derivadas de [math]\phi'_u [/math] y [math]\phi'_v [/math]
Posteriormente se calcula su producto vectorial para introducirlo en la matriz
Cuyo módulo es:
A continuacion se calcula [math] f(\phi(u,v))[/math]
Finalmente, sustituimos los valores obtenidos en la integral doble para calcular la masa
Para calcular la integral, hemos usado el siguiente código de matlab: {{matlab|codigo=
% Definimos los extremos de los intervalos y el número de puntos
n = 100;
U1 = (1 - 0) / n; % paso en u
V2 = (6*pi - 2*pi) / n; % paso en v
u = 0:U1:1;
v = 2*pi:V2:6*pi;
% Definimos el mallado
[uu, vv] = meshgrid(u, v);
% Área
area = U1 * V2;
v_conjunto = 0;
for i = 1:n
for j = 1:n
% Altura del prisma evaluada en el punto (i,j)
alt = ((uu(i,j)^2 + vv(i,j)^2) / vv(i,j)) * ...
sqrt(1 + (uu(i,j) + vv(i,j))^2);
% Volumen del prisma
v_prisma = area * alt;
% Suma conjunta
v_conjunto = v_conjunto + v_prisma;
end
end
int = v_conjunto;
fprintf('Para n=%d, el resultado de la integral es: %.4f.\n', n, int);
