Diferencia entre revisiones de «La Clotoide (Grupo 10)»
(→Longitud de la curva) |
(→Masa de la superficie reglada) |
||
| (No se muestran 117 ediciones intermedias de 3 usuarios) | |||
| Línea 1: | Línea 1: | ||
{{ TrabajoED | La clotoide. Grupo 10 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC23/24|2023-24]] | Nerea García Puig<br/>Irene Melendo Félix<br/>Nerea Rodrigañez Martínez<br/>Ana Rua Marín}} | {{ TrabajoED | La clotoide. Grupo 10 | [[:Categoría:Teoría de Campos|Teoría de Campos]]|[[:Categoría:TC23/24|2023-24]] | Nerea García Puig<br/>Irene Melendo Félix<br/>Nerea Rodrigañez Martínez<br/>Ana Rua Marín}} | ||
| − | |||
| − | |||
| − | |||
La clotoide es una curva que se pueden definir como varias curvas tangentes en el origen al eje de abscisas con un radio de curvatura que disminuye de manera inversamente proporcional a la distancia recorrida sobre ella, formando un trozo de espiral. Ésta curva, cumple una serie de propiedades matemático-físicas que iremos explicando a lo largo de la presentación, con la herramienta de MATLAB, realizaremos los cálculos con precisión y representándolos en gráficas para poder entenderlos de una forma visual . | La clotoide es una curva que se pueden definir como varias curvas tangentes en el origen al eje de abscisas con un radio de curvatura que disminuye de manera inversamente proporcional a la distancia recorrida sobre ella, formando un trozo de espiral. Ésta curva, cumple una serie de propiedades matemático-físicas que iremos explicando a lo largo de la presentación, con la herramienta de MATLAB, realizaremos los cálculos con precisión y representándolos en gráficas para poder entenderlos de una forma visual . | ||
En cada punto haremos una breve introducción con las fórmulas que hemos utilizado, desarrollándolas para que se llegue a entender los pasos y de donde vienen los cálculos. | En cada punto haremos una breve introducción con las fórmulas que hemos utilizado, desarrollándolas para que se llegue a entender los pasos y de donde vienen los cálculos. | ||
Para el estudio de sus propiedades, nos centraremos en analizar los vectores velocidad y aceleración, así como el tangente y normal para su posterior enfoque a la ingeniería civil. | Para el estudio de sus propiedades, nos centraremos en analizar los vectores velocidad y aceleración, así como el tangente y normal para su posterior enfoque a la ingeniería civil. | ||
| + | |||
| + | Podemos definir la clotoide como la curva plana dada por la 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> | ||
| + | <br /> | ||
=Dibujo de la curva= | =Dibujo de la curva= | ||
| − | Consideramos la curva plana dada por la parametrización en coordenadas cartesianas: | + | Consideramos la curva plana dada por la parametrización en coordenadas cartesianas, con valores: |
| + | a=0; | ||
| + | b=5; | ||
| + | N=1000 (número de puntos). Por lo tanto, la curva se expresa con: | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
| − | <center> <math> γ(t) = (x(t),y(t)) = (\int_{0}^{t}cos(\frac{s^2}{2})ds, \int_{0}^{t}sin(\frac{s^2}{2})ds), t∈( | + | <center> <math> γ(t) = (x(t),y(t)) = (\int_{0}^{t}cos(\frac{s^2}{2})ds, \int_{0}^{t}sin(\frac{s^2}{2})ds), t∈(0,5) </math> </center> |
<br /> | <br /> | ||
<br /> | <br /> | ||
Realizamos el dibujo con el programa de MATLAB: | Realizamos el dibujo con el programa de MATLAB: | ||
| − | [[File: | + | [[File:Dibujo_curva_1.png|650px|miniaturadeimagen|right|'''Dibujo de la curva''' <br />]] |
{{matlab|codigo= | {{matlab|codigo= | ||
clear, clc | clear, clc | ||
% Definimos la funcion | % Definimos la funcion | ||
N = 1000; % Número de puntos | N = 1000; % Número de puntos | ||
| − | t = linspace( | + | t = linspace(0, 5, N); % Rango de t |
dt = t(2) - t(1); % Paso entre puntos | dt = t(2) - t(1); % Paso entre puntos | ||
| Línea 53: | Línea 61: | ||
xlabel('x(t)'); | xlabel('x(t)'); | ||
ylabel('y(t)'); | ylabel('y(t)'); | ||
| − | title('Curva \gamma(t) | + | title('Curva \gamma(t)'); |
grid on; | grid on; | ||
| − | axis equal; | + | axis equal; |
}} | }} | ||
| Línea 62: | Línea 70: | ||
<br \> | <br \> | ||
<br \> | <br \> | ||
| − | <center> <math> γ(t) = (x(t),y(t)) = (\int_{0}^{t}cos(\frac{s^2}{2})ds, \int_{0}^{t}sin(\frac{s^2}{2})ds), t∈( | + | <center> <math> γ(t) = (x(t),y(t)) = (\int_{0}^{t}cos(\frac{s^2}{2})ds, \int_{0}^{t}sin(\frac{s^2}{2})ds), t∈(0,5) </math> </center> |
<br /> | <br /> | ||
*El vector velocidad se define como: | *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∈( | + | <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,5) </math> |
<br /> | <br /> | ||
*El vector aceleración se define como: | *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∈( | + | <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,5) </math> |
<br \> | <br \> | ||
<br \> | <br \> | ||
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: | 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: | ||
<br \> | <br \> | ||
| − | [[Archivo: | + | [[Archivo:vel_acel_1.png|500px|thumb|right|Figura 2: Velocidad y aceleración]] |
{{matlab|codigo= | {{matlab|codigo= | ||
| Línea 108: | Línea 116: | ||
=Longitud de la curva= | =Longitud de la curva= | ||
| − | Podemos calcular la 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.<br /> |
| − | En nuestro caso, elegimos la parametrización | + | En nuestro caso, elegimos la parametrización: <br /> |
| + | <center> <math> γ(t) = (x(t),y(t)) = (\int_{0}^{t}cos(\frac{s^2}{2})ds, \int_{0}^{t}sin(\frac{s^2}{2})ds), t∈(0,5) </math> </center> | ||
Calculamos la longitud siguiendo dos procedimientos diferentes:<br /> | Calculamos la longitud siguiendo dos procedimientos diferentes:<br /> | ||
| − | + | ==Calculo de forma teorica== | |
| − | <math> | + | <center><math> ℓ(γ) = \int_{a}^{b} \left |{\gamma }'(t) \right |= \int_{a}^{b} \sqrt{cos(\frac{t^2}{2})^2+sin(\frac{t^2}{2})^2} dt= \int_{0}^{5}1dt= 5-(0)= 5 </math></center> |
| − | + | ==Calculo mediante métodos numéricos== | |
| − | + | ===Método del rectángulo=== | |
{{matlab|codigo= | {{matlab|codigo= | ||
% Parámetros | % Parámetros | ||
L = 5; | L = 5; | ||
| − | a = | + | a = 0; |
b = L; | b = L; | ||
n = 1000; % Número de subintervalos (más grande, mayor precisión) | n = 1000; % Número de subintervalos (más grande, mayor precisión) | ||
| Línea 144: | Línea 153: | ||
fprintf('La longitud de la curva es aproximadamente: %.4f\n', length); | fprintf('La longitud de la curva es aproximadamente: %.4f\n', length); | ||
}} | }} | ||
| − | + | ===Método del trapecio=== | |
{{matlab|codigo= | {{matlab|codigo= | ||
% Parámetros | % Parámetros | ||
| − | a = | + | a = 0; % Inicio del intervalo |
b = 5; % Fin del intervalo | b = 5; % Fin del intervalo | ||
n = 1000; % Número de subintervalos | n = 1000; % Número de subintervalos | ||
| Línea 171: | Línea 180: | ||
=Vectores tangentes y normal= | =Vectores tangentes y normal= | ||
| + | Para calcular los vectores tangente y normal aplicamos las siguientes fórmulas: | ||
| + | <center> | ||
| + | <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></center> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | <center> | ||
| + | <math>\bar{n}(t)=\frac{-y{}'(t)\bar{i}+\bar{x}{}'(t)\bar{j}}{\left | \gamma {}'(t) \right |}=-sin(\frac{t^2}{2})\bar{i}+cos(\frac{t^2}{2})\bar{j}</math> | ||
| + | </center><br/> | ||
| + | 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: | ||
| + | [[Archivo:Curva,_Tangente_y_Normal.png|500px|thumb|right|Figura 3: Curva, Tangente y Normal]] | ||
| + | {{matlab|codigo= | ||
| + | % 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 | ||
| + | shg | ||
| + | }} | ||
| + | |||
=Curvatura= | =Curvatura= | ||
| + | La fórmula de la función curvatura para cualquier | ||
| + | parametrización <math>\gamma(t)</math> es | ||
| + | <center> | ||
| + | <math>\bar{\kappa }(t)=\frac{\bar{x}'(t)\bar{y}''(t)-\bar{x}''(t)\bar{y}'(t)}{\left ( \bar{x}'(t)^2+\bar{y}'(t)^2 \right )^\frac{3}{2}}</math></center> | ||
| + | Con nuestros datos obtenemos: | ||
| + | <center> | ||
| + | <math> | ||
| + | \bar{\kappa }(t)=\frac{t}{\sqrt{1^3}}=t</math></center><br/> | ||
| + | Para representarla utilizamos este programa que muestra cómo aumenta linealmente la curvatura de 0 a 5 segundos. | ||
| + | [[Archivo:Curvatura_clotoide.png|400px|thumb|right|Figura 4: Curvatura clotoide]] | ||
| + | {{matlab|codigo= | ||
| + | % Parámetro t | ||
| + | t = linspace(0, 5, N); % Rango de t | ||
| + | |||
| + | % Calculamos la curvatura | ||
| + | k = t; | ||
| + | |||
| + | % Dibujo | ||
| + | figure; | ||
| + | plot(k,t); | ||
| + | ylabel('curvatura'); | ||
| + | xlabel('tiempo'); | ||
| + | title('Curvatura') | ||
| + | shg | ||
| + | }} | ||
| + | |||
=Circunferencia osculatriz= | =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.<br/> | ||
| + | Enfocando esta definición a lo pedido en este apartado, sea <math>P=\gamma (2)</math> , es decir <math>t=2s</math>, hallar el centro y el radio de la circunferencia osculatriz en <math>P</math> y dibujar la circunferencia junto a la curva.<br/> | ||
| + | Su radio <math>R(t)</math> es igual a | ||
| + | <center> | ||
| + | <math>R(t)=\frac{1}{\left | \kappa (t) \right |}</math> | ||
| + | </center> | ||
| + | Su centro <math>Q(t)</math> viene dado por la fórmula <center><math>Q(t)=\gamma (t)+\frac{1}{\kappa (t)}\bar{n}(t)</math></center> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | Haciendo los cálculos quedan los siguientes resultados | ||
| + | <center><math>R(2)=\frac{1}{2}</math> </center><br/><br/> | ||
| + | <center><math>Q(2) = \left\{\begin{matrix} | ||
| + | Q_x(2)=\int_{0}^{2}cos(\frac{t^2}{s})ds - sin(\frac{1}{2})\\\\ | ||
| + | |||
| + | |||
| + | Q_y(2)=\int_{0}^{2}sin(\frac{t^2}{2})ds+cos(\frac{1}{2}) | ||
| + | |||
| + | \end{matrix}\right.</math></center> | ||
| + | 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=2s</math>, primero definimos la curva de 0 a 2 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. | ||
| + | <br/> | ||
| + | [[Archivo:Circunferencia_osculatriz_y_clotoide.png|500px|thumb|right|Figura 5: Circunferencia osculatriz y clotoide]] | ||
| + | {{matlab|codigo= | ||
| + | % Parámetros | ||
| + | t_osculatriz = 2; % Tiempo de la circunferencia osculatriz | ||
| + | |||
| + | % Punto de la clotoide para t_osculatriz (t=2) | ||
| + | % calcular posición de t = 2 | ||
| + | O = 2/(5/N); | ||
| + | |||
| + | P = [x(O),y(O)]; % punto en el que t = 2 | ||
| + | |||
| + | % Vector normal calculado antes para t_osculatriz (t=2) | ||
| + | n = [-sin(t_osculatriz.^2/2),cos(t_osculatriz.^2/2)]; | ||
| + | |||
| + | % Aplicación t=2 | ||
| + | k_osculatriz = t_osculatriz; | ||
| + | R = 1/2; | ||
| + | |||
| + | % 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,'g', 'LineWidth',1.5); | ||
| + | |||
| + | % Dibujamos osculatriz | ||
| + | plot(P(1), P(2),'+','LineWidth',1.5); | ||
| + | plot(xp,yp,'--','Color','b','LineWidth',1.5); | ||
| + | |||
| + | % Etiquetas y leyenda | ||
| + | xlabel('x(t)'); | ||
| + | ylabel('y(t)'); | ||
| + | title('Circunferencia osculatriz y clotoide'); | ||
| + | legend('Curva', 'P(t = 2)', 'Osculatriz','Location', 'northwest', 'TextColor', 'black', 'FontSize', 10); | ||
| + | grid on; | ||
| + | axis equal; | ||
| + | hold off | ||
| + | shg | ||
| + | }} | ||
| + | |||
=Información de interés= | =Información de interés= | ||
| + | La clotoide describe el fenómeno de transición suave en trayectorias curvas, es decir entre estados con diferentes radios de curvatura. | ||
| + | |||
| + | Diseño de Carreteras:<br/> | ||
| + | En el diseño de vías terrestres, las clotoides se emplean como curvas de transición entre tramos rectos y curvos. Ayudan a: reducir el riesgo de accidentes al permitir un cambio progresivo en la dirección, minimizar el desgaste del pavimento, ya que la carga sobre el camino se distribuye mejor y mejorar la experiencia del conductor, al evitar cambios bruscos que podrían ser incómodos o peligrosos.<br/> | ||
| + | |||
| + | Diseño de Vías Férreas:<br/> | ||
| + | En los ferrocarriles, las clotoides permiten una transición suave en las curvas, evitando descarrilamientos y distribuyendo las fuerzas de manera uniforme sobre los rieles. | ||
| + | |||
| + | Aplicaciones en Puentes y Túneles:<br/> | ||
| + | En la ingeniería de puentes y túneles, las clotoides garantizan transiciones suaves en las trayectorias de acceso. | ||
| + | Facilitan el mantenimiento y reducen la fatiga estructural debido a cargas dinámicas. | ||
| + | |||
| + | Diseño de curvas en canales de navegación:<br/> | ||
| + | En vías navegables, como ríos y canales, las clotoides permiten una transición gradual entre secciones rectas y curvas. Esto es esencial para garantizar que las embarcaciones puedan maniobrar con seguridad, especialmente en canales estrechos. Ayudan a mantener un flujo de agua más estable, minimizando turbulencias en los cambios de dirección, lo que reduce la erosión en las paredes del canal y mejora la navegabilidad. | ||
| + | |||
=Estructura civil= | =Estructura civil= | ||
| + | [[Archivo:puente_confederacion_2.png|400px|thumb|left|La clotoide en puente confederación (Canadá)]] | ||
| + | [[Archivo:autovia_del_cantabrico.jpg|450px|thumb|center|La clotoide en autovía del cantábrico (España)]] | ||
| + | [[Archivo:puerto_róterdam.jpg|400px|thumb|left|La clotoide en puerto róterdam (Paises Bajos)]] | ||
| + | [[Archivo:aeropuerto_kansai.png|450px|thumb|center|La clotoide en aeropuerto kansai (Japón)]] | ||
| + | <br/> | ||
| + | <br/> | ||
| + | |||
=Parametrización en cartesianas= | =Parametrización en cartesianas= | ||
| − | |||
| + | Ahora consideramos la curva parametrizada por:<br /> | ||
| + | |||
| + | <center> <math> γ(t)=(x_{1}(t),x_{2}(t),x_{3}(t))=(tcost,tsint,t),\hspace{3cm}t∈(2π,6π) </math> </center> | ||
| + | |||
| + | Se define la superficie reglada asociada a dicha parametrización mediante segmentos de longitud 1 con vector director e<sub>ρ</sub> como aquella parametrizada por :<br /> | ||
| + | |||
| + | <center><math>\phi (u,v)=\gamma (v)+u\cdot \overline{w}(v).\hspace{3cm}u∈(0,1)\hspace{0.5cm} v∈(2π,6π)</math>.</center><br /> | ||
| + | |||
| + | Para llegar a la parametrización deseada, pasamos el vector director e<sub>ρ</sub> a coordenadas cartesianas con la matriz cambio de base: | ||
| + | <br/> | ||
| + | <br/> | ||
| + | <center> | ||
| + | \begin{pmatrix}v_1\\v_2 \\v_3 \end{pmatrix}= | ||
| + | \begin{pmatrix}cosx & -senx &0 \\ senx & cosx & 0\\ 0 & 0 & 1\end{pmatrix} | ||
| + | \begin{pmatrix}1\\0\\0\end{pmatrix}= | ||
| + | \begin{pmatrix}cosx\\ senx\\0 \end{pmatrix} | ||
| + | </center> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | El vector <math>\vec{e_{\rho}} </math> en coordenadas cartesianas es igual a | ||
| + | <center> | ||
| + | <br/> | ||
| + | <math>\overline cosx\overline{i}+senx\overline{j}</math> | ||
| + | </center> | ||
| + | <br/> | ||
| + | Si finalmente aplicamos la definición antes descrita, nuestra hélice queda parametrizada como:<br /> | ||
| + | |||
| + | |||
| + | <center><math>\phi (u,v)=cosv·(v+u)\overline{i}+senv·(v+u)\overline{j}+v\overline{k},\hspace{3cm}u∈(0,1)\hspace{0.5cm} v∈(2π,6π)</math> | ||
| + | <br/> | ||
| + | </center> | ||
| + | y podemos representarla gráficamente con este código de matlab. | ||
| + | [[Archivo:superficiereglada33.jpg|300px|thumb|right|Figura 2: Superficie reglada]] | ||
| + | {{matlab|codigo= | ||
| + | % 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 | ||
| + | |||
| + | }} | ||
| + | |||
| + | [[Archivo:escaleradebramante.jpg|550px|thumb|left|Scala Elicoidale Momo (Ciudad del Vaticano)]] | ||
| + | [[Archivo:engranaje.jpg|400px|thumb|center|Engranaje]] | ||
| + | <br/> | ||
| + | <br/> | ||
| + | |||
| + | =Masa de la superficie reglada= | ||
| + | Supongamos que la densidad de la superficie del apartado anterior viene dada por la función | ||
| + | <center> | ||
| + | <math>f(x_1,x_2,x_3)=100-x_1^2-x_2^2</math> | ||
| + | </center> | ||
| + | Para calcular la masa utilizamos la expresión | ||
| + | <center> | ||
| + | <math>Masa=\iint_{S}^{}fds=\iint_{D}^{}f(\bar{r(u,v)})\cdot \left | \bar{r'_u}\times\bar{r'_v} \right |dudv</math> | ||
| + | </center> | ||
| + | |||
| + | <br/> | ||
| + | <br/> | ||
| + | Como hemos hallado en el apartado anterior | ||
| + | <center> | ||
| + | <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> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | |||
| + | <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> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | <math> | ||
| + | \vec{{r}}_u=cosv \vec{i}+sinv\vec{j} | ||
| + | </math> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | <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> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | </center> | ||
| + | <center> | ||
| + | <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> | ||
| + | </center> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | El módulo del producto vectorial es igual a <center> | ||
| + | <math>\left | \bar{r}'_u \times \bar{r}'_v\right |=\sqrt{sen^{2}v+cos^{^{2}}v+(u+v)^{^{2}}}=\sqrt{1+(u+v)^{2}}</math></center> | ||
| + | <br/> | ||
| + | La función evaluada según el vector <math>\vec{{r}}(u,v)</math> nos da | ||
| + | <center> | ||
| + | <math>f(\vec{r}(u,v))=100-(v\cdot cosv+u\cdot cosv)^{2}-(v\cdot sinv+u\cdot sinv)^{2}=100-v^{2}-u^{2}-2uv</math></center> | ||
| + | <br/> | ||
| + | <br/> | ||
| + | La definición (2) resuelta mediante Matlab con el código posterior quedaría: | ||
| + | <br/> | ||
| + | <center> | ||
| + | <math> | ||
| + | MASA=\int_{2\pi}^{6\pi}\int_{0}^{1}(100-v^{2}-u^{2}-2uv)(\sqrt{1+(u+v)^{2}}) dudv= 18168 | ||
| + | </math> | ||
| + | </center> | ||
| + | <br/> | ||
| + | {{matlab|codigo= | ||
| + | % Número de puntos | ||
| + | n=100; | ||
| + | |||
| + | % Extremos de los intervalos | ||
| + | h1=(1-0)/n; | ||
| + | h2=(6*pi-2*pi)/n; | ||
| + | |||
| + | u=0:h1:1; | ||
| + | v=2*pi:h2:6*pi; | ||
| + | |||
| + | % Mallado | ||
| + | [uu,vv]=meshgrid(u,v); | ||
| + | |||
| + | %Cálculos | ||
| + | %area de cada subrectangulo | ||
| + | area=2*2/(n^2); | ||
| + | |||
| + | vol_acumulado=0; | ||
| + | for i=1:n | ||
| + | for j=1:n | ||
| + | |||
| + | f=(100-uu.^2-vv.^2-2.*uu.*vv).*(sqrt(1+(uu+vv).^2)); | ||
| + | |||
| + | %área | ||
| + | w1=ones(n+1,1); | ||
| + | w1(1)=1/2; | ||
| + | w1(n+1)=1/2; | ||
| + | area = f*w1; | ||
| + | |||
| + | %altura | ||
| + | w2=ones(n+1,1); | ||
| + | w2(1)=1/2; | ||
| + | w2(n+1)=1/2; | ||
| + | altura = h1*h2*w2'; | ||
| + | |||
| + | %volumen del prisma y suma acumulada | ||
| + | vol_prisma=area*altura; | ||
| + | vol_acumulado=vol_acumulado+vol_prisma; | ||
| + | |||
| + | end | ||
| + | end | ||
| + | int=vol_acumulado; | ||
| + | |||
| + | fprintf ('Para n=%d, el resultado de la integral es: %.4f.\n',n,int) | ||
| + | }} | ||
[[Categoría:Teoría de Campos]] | [[Categoría:Teoría de Campos]] | ||
[[Categoría:TC24/25]] | [[Categoría:TC24/25]] | ||
Revisión actual del 23:37 11 dic 2024
| Trabajo realizado por estudiantes | |
|---|---|
| Título | La clotoide. Grupo 10 |
| Asignatura | Teoría de Campos |
| Curso | 2023-24 |
| Autores | Nerea García Puig Irene Melendo Félix Nerea Rodrigañez Martínez Ana Rua Marín |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
La clotoide es una curva que se pueden definir como varias curvas tangentes en el origen al eje de abscisas con un radio de curvatura que disminuye de manera inversamente proporcional a la distancia recorrida sobre ella, formando un trozo de espiral. Ésta curva, cumple una serie de propiedades matemático-físicas que iremos explicando a lo largo de la presentación, con la herramienta de MATLAB, realizaremos los cálculos con precisión y representándolos en gráficas para poder entenderlos de una forma visual .
En cada punto haremos una breve introducción con las fórmulas que hemos utilizado, desarrollándolas para que se llegue a entender los pasos y de donde vienen los cálculos. Para el estudio de sus propiedades, nos centraremos en analizar los vectores velocidad y aceleración, así como el tangente y normal para su posterior enfoque a la ingeniería civil.
Podemos definir la clotoide como la curva plana dada por la 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=5;
N=1000 (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 = 1000; % Número de puntos
t = linspace(0, 5, 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,5) [/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,5) [/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:
% 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,'g');
% Dibujamos aceleracióon
quiver(x,y,ax,ay,'b');
% 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 = 5;
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 = 5; % 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 los vectores tangente y normal aplicamos las siguientes fórmulas:
[math]\bar{n}(t)=\frac{-y{}'(t)\bar{i}+\bar{x}{}'(t)\bar{j}}{\left | \gamma {}'(t) \right |}=-sin(\frac{t^2}{2})\bar{i}+cos(\frac{t^2}{2})\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
shg
5 Curvatura
La fórmula de la función curvatura para cualquier parametrización [math]\gamma(t)[/math] es
Con nuestros datos obtenemos:
Para representarla utilizamos este programa que muestra cómo aumenta linealmente la curvatura de 0 a 5 segundos.
% Parámetro t
t = linspace(0, 5, N); % Rango de t
% Calculamos la curvatura
k = t;
% Dibujo
figure;
plot(k,t);
ylabel('curvatura');
xlabel('tiempo');
title('Curvatura')
shg
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 (2)[/math] , es decir [math]t=2s[/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=2s[/math], primero definimos la curva de 0 a 2 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.
% Parámetros
t_osculatriz = 2; % Tiempo de la circunferencia osculatriz
% Punto de la clotoide para t_osculatriz (t=2)
% calcular posición de t = 2
O = 2/(5/N);
P = [x(O),y(O)]; % punto en el que t = 2
% Vector normal calculado antes para t_osculatriz (t=2)
n = [-sin(t_osculatriz.^2/2),cos(t_osculatriz.^2/2)];
% Aplicación t=2
k_osculatriz = t_osculatriz;
R = 1/2;
% 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,'g', 'LineWidth',1.5);
% Dibujamos osculatriz
plot(P(1), P(2),'+','LineWidth',1.5);
plot(xp,yp,'--','Color','b','LineWidth',1.5);
% Etiquetas y leyenda
xlabel('x(t)');
ylabel('y(t)');
title('Circunferencia osculatriz y clotoide');
legend('Curva', 'P(t = 2)', 'Osculatriz','Location', 'northwest', 'TextColor', 'black', 'FontSize', 10);
grid on;
axis equal;
hold off
shg
7 Información de interés
La clotoide describe el fenómeno de transición suave en trayectorias curvas, es decir entre estados con diferentes radios de curvatura.
Diseño de Carreteras:
En el diseño de vías terrestres, las clotoides se emplean como curvas de transición entre tramos rectos y curvos. Ayudan a: reducir el riesgo de accidentes al permitir un cambio progresivo en la dirección, minimizar el desgaste del pavimento, ya que la carga sobre el camino se distribuye mejor y mejorar la experiencia del conductor, al evitar cambios bruscos que podrían ser incómodos o peligrosos.
Diseño de Vías Férreas:
En los ferrocarriles, las clotoides permiten una transición suave en las curvas, evitando descarrilamientos y distribuyendo las fuerzas de manera uniforme sobre los rieles.
Aplicaciones en Puentes y Túneles:
En la ingeniería de puentes y túneles, las clotoides garantizan transiciones suaves en las trayectorias de acceso.
Facilitan el mantenimiento y reducen la fatiga estructural debido a cargas dinámicas.
Diseño de curvas en canales de navegación:
En vías navegables, como ríos y canales, las clotoides permiten una transición gradual entre secciones rectas y curvas. Esto es esencial para garantizar que las embarcaciones puedan maniobrar con seguridad, especialmente en canales estrechos. Ayudan a mantener un flujo de agua más estable, minimizando turbulencias en los cambios de dirección, lo que reduce la erosión en las paredes del canal y mejora la navegabilidad.
8 Estructura civil
9 Parametrización en cartesianas
Ahora consideramos la curva parametrizada por:
Se define la superficie reglada asociada a dicha parametrización mediante segmentos de longitud 1 con vector director eρ como aquella parametrizada por :
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}cosx & -senx &0 \\ senx & cosx & 0\\ 0 & 0 & 1\end{pmatrix} \begin{pmatrix}1\\0\\0\end{pmatrix}= \begin{pmatrix}cosx\\ senx\\0 \end{pmatrix}
El vector [math]\vec{e_{\rho}} [/math] en coordenadas cartesianas es igual a
[math]\overline cosx\overline{i}+senx\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)=100-x_1^2-x_2^2[/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
La definición (2) resuelta mediante Matlab con el código posterior quedaría:
[math] MASA=\int_{2\pi}^{6\pi}\int_{0}^{1}(100-v^{2}-u^{2}-2uv)(\sqrt{1+(u+v)^{2}}) dudv= 18168 [/math]
% Número de puntos
n=100;
% Extremos de los intervalos
h1=(1-0)/n;
h2=(6*pi-2*pi)/n;
u=0:h1:1;
v=2*pi:h2:6*pi;
% Mallado
[uu,vv]=meshgrid(u,v);
%Cálculos
%area de cada subrectangulo
area=2*2/(n^2);
vol_acumulado=0;
for i=1:n
for j=1:n
f=(100-uu.^2-vv.^2-2.*uu.*vv).*(sqrt(1+(uu+vv).^2));
%área
w1=ones(n+1,1);
w1(1)=1/2;
w1(n+1)=1/2;
area = f*w1;
%altura
w2=ones(n+1,1);
w2(1)=1/2;
w2(n+1)=1/2;
altura = h1*h2*w2';
%volumen del prisma y suma acumulada
vol_prisma=area*altura;
vol_acumulado=vol_acumulado+vol_prisma;
end
end
int=vol_acumulado;
fprintf ('Para n=%d, el resultado de la integral es: %.4f.\n',n,int)