Professional Documents
Culture Documents
TABLA DE CONTENIDOS 1 2 3 Introduccin.............................................................................................................. 1 Descripcin del problema......................................................................................... 2 2.1 El vehculo........................................................................................................ 2 Los perfiles y el punto central de contacto ............................................................... 3 3.1 Preprocesado de los perfiles ............................................................................. 3 3.1.1 Perfil UIC 60 ................................................................................................... 3 3.1.2 Perfil ORE 1002 .............................................................................................. 4 3.2 Localizacin del punto central del contacto ..................................................... 6 3.2.1 Rotacin de la rueda y el carril........................................................................ 6 3.2.2 Desplazamiento lateral .................................................................................... 6 3.2.3 Clculo del punto central de contacto ............................................................. 7 3.2.4 Angulo entre la direccin normal al contacto y la vertical.............................. 8 3.3 La regin de los perfiles a exportar .................................................................. 9 3.3.1 El perfil equivalente ...................................................................................... 10 Anlisis del contacto............................................................................................... 11 4.1 Clculos previos ............................................................................................. 11 4.1.1 Carga normal en cada rueda .......................................................................... 11 4.1.2 Pseudodeslizamientos.................................................................................... 11 4.1.3 Propiedades de los materiales........................................................................ 13 4.2 El tipo de anlisis del contacto ....................................................................... 14 4.2.1 Fuerza normal ................................................................................................ 14 4.2.2 Pseudodeslizamientos.................................................................................... 14 4.2.3 Coeficientes de friccin ................................................................................. 15 4.3 Area de contacto: forma y tamao.................................................................. 16 4.4 Zonas de adhesin y deslizamiento ................................................................ 16 4.5 Distribucin de presiones y presin mxima.................................................. 19 4.5.1 Distribucin de presin normal ..................................................................... 19 4.5.2 Distribucin de la presin tangencial ............................................................ 19 4.6 Fuerzas debidas al contacto de la rueda y el carril ......................................... 21 Conclusin.............................................................................................................. 22 Bibliografa............................................................................................................. 23 Croquis del perfil UIC 60 ............................................................................. 1 Croquis del perfil de rueda ORE 1002 ......................................................... 2 Funcin: Contacto rueda-carril.sce ............................................................. 3 Fichero: Datos entrada.sce ......................................................................... 12 Funcin: carril_UIC60.sci ......................................................................... 13 Funcin: rueda_ORE1002.sci .................................................................... 14 Funcin: cambiobase.sci ............................................................................ 17 Fichero: ORE1002_UIC60.inp ................................................................... 18 Fichero: post_CONTACT.m ....................................................................... 20
5 6
1 Introduccin
El informe que se presenta a continuacin caracteriza el contacto entre el perfil ORE 1002 de una rueda de tren de 960 mm de dimetro y un carril UIC 60 con una inclinacin de 1:40. El problema se ha resuelto para un desplazamiento lateral del eje nulo y un ngulo de ataque tambin nulo. Tras presentar el problema en el siguiente apartado del documento, el documento presenta dos grandes apartados. En el primero de ellos, el apartado 3, se determinan todos los parmetros que definen el punto central de contacto entre los perfiles, mientras que en el apartado 4 se analiza el contacto entre los perfiles. En el apartado 3 se describen los perfiles y la metodologa y herramientas utilizadas en su generacin. Este apartado tambin describe la metodologa utilizada para localizar el punto central de contacto entre los dos perfiles para cualquier desplazamiento lateral real del eje montado, incluyendo la situacin de descarrilamiento. Tambin se determina el ngulo que forma la normal a la huella de contacto con la vertical. Para la construccin de la herramienta descrita en este apartado, se ha utilizado el software de uso libre Scilab (http://www.scilab.org/), cuyo funcionamiento, lenguaje y prestaciones son muy similares a las del producto comercial Matlab. El cuarto apartado analiza el contacto de geometra no hertziana mediante el software de uso libre CONTACT (http://www.kalkersoftware.org/). Se determina la huella de contacto, las zonas de adhesin y deslizamiento, la distribucin de presiones, as como sus mximos y las fuerzas transmitidas en el contacto en cada una de las direcciones. Las conclusiones del informe realizan una valoracin de la viabilidad de resolucin de este problema mediante un contacto hertziano en lugar de no hertziano como el que se presenta.
2.1 El vehculo
El vehculo formado por una caja, 2 bogies y 4 ejes pesa un total de 50 t, y el dimetro nominal de las ruedas es de 960 mm. La velocidad de avance del vehculo es de 200 km/h y se sabe que en un instante concreto la velocidad angular de la rueda es de 115.73 rad/s.
Las zonas B, C y D contemplan su parte simtrica en la que el contacto se dara en la parte exterior del carril y sucedera en condiciones anmalas de circulacin, al menos en las regiones C y D, ya que para producirse el contacto entre la rueda y estas regiones del carril, el eje debera estar levantado, es decir, que la rueda izquierda hubiese perdido el contacto o en caso de descarrilamiento, momento en el que la pestaa de la rueda circulara por las regiones denominadas C y D exterior.
B C
Figura 1. Distribucin de las zonas de funcionamiento propuestas para el carril UIC 60. (Suponiendo carril derecho).
Para la generacin del perfil se ha creado la funcin: carril_UIC60.sci incluida en el Anexo 5. Esta funcin genera el perfil UIC 60 para un tamao de elemento constante a lo largo del eje Y. Se ha colocado un nudo en cada punto frontera entre dos regiones. La distancia entre nudos se controla mediante el parmetro: e_size.
Figura 2. Perfil UIC 60. Tamao de elemento [mm]: 1 (izq), 0.05 (dcha).
Al igual que en el caso del perfil de carril, se ha generado una funcin, la funcin rueda_ORE1002.sci (Anexo 6) que genera el perfil de rueda con un espaciado constante a lo largo del eje Y definido para el perfil y controlado por el parmetro: e_size. Con el objeto de mejorar la precisin de la funcin de localizacin, se han probado diferentes versiones de esta funcin. La segunda versin incorpora la posibilidad de introducir el vector correspondiente al eje Y del carril ya inclinado, de forma que en la zona del carril las posiciones de Y para las que se genera el perfil de rueda son las mismas que las del perfil de carril ya girado. A pesar del trabajo y tiempo invertidos, se han obtenido resultados muy similares. El anexo indicado incluye ambas versiones.
Figura 5. Punto central de contacto para un desplazamiento lateral de la rueda de 50 mm. Carril con inclinacin 1:40.
Figura 6. Punto central de contacto para un desplazamiento lateral de la rueda de -40 mm. Carril con inclinacin 1:40.
Inicialmente se realiza un anlisis de interferencia entre los dos perfiles para despus determinar el punto central de contacto, el cual se caracteriza por presentar la mnima distancia entre perfiles.
Figura 7. Punto central de contacto para un desplazamiento lateral de la rueda de 0 mm. Carril con inclinacin 1:40.
P1 (y1,z1)
y1-yc1 R1 C1 (yc1,zc1)
Figura 8. Angulo que forma la direccin normal con la vertical en el perfil de carril sin inclinar. Punto de contacto, P1 y centro de la circunferencia que define la regin del perfil la que sucede el contacto.
la direccin normal en el punto de contacto con la vertical queda definido de la siguiente manera. = + , donde representa el ngulo de inclinacin del carril.
y lim,izq y lim,dcho
4. El tamao del vector a de ser tal que el valor de su cuadrado sea inferior a 50000, considerando que se quiere obtener una retcula cuadrada (dX=dY). La regin de los perfiles que se exporta tiene una separacin entre perfiles inferior al lmite que impone el usuario por medio del parmetro: point_distance. Este parmetro permite controlar la longitud de los perfiles que se quiere exportar.
Figura 9. Regin de los perfiles exportados (coloreados). Lmite de separacin (point_distance), 5 mm. (y=0).
Para una correcta identificacin del punto central de contacto por parte del software CONTACT, es necesario situar dicho punto en el origen de coordenadas (0,0), por lo que se corrige la posicin, tal y como muestra la figura siguiente.
Figura 10. Perfil de rueda (verde) y carril (rojo) con el punto central de contacto situado en el origen de coordenadas.
De esta manera se ha obtenido la nube de puntos necesaria para definir el perfil de geometra no hertziana entre la rueda y el carril con el punto central del contacto situado en el origen de coordenadas del plano YZ y cumpliendo las exigencias impuestas por el software de anlisis de contacto y que han de respetarse. En caso de superarse el tamao del mximo de 50000 nudos impuesto por CONTACT, ser necesario modificar el valor de los parmetros e_size y/o point_distance para ajustar la longitud del vector.
10
Prueda =
4.1.2 Pseudodeslizamientos
El enunciado del problema indica: La velocidad de avance del vehculo es de 200 km/h y se sabe que en un instante concreto la velocidad angular de la rueda es de 115.73 rad/s., por lo que ser necesario determinar si existe pseudodeslizamiento analizando la velocidad lineal del punto central de contacto y la velocidad de avance del vehculo. El dimetro de la rueda es de 961.50357 mm en el punto central de contacto, segn lo calculado por mediante la funcin de localizacin descrita en el subapartado 3, (y=0, =0).
4.1.2.1 Pseudodeslizamiento longitudinal v p = rp = 115.73 0.96150357 = 55.6374 m/s vvehculo = 200 / 3.6 = 55.55 m/s 2 v p vvehculo Pseudodeslizamiento = = 1.573 10 3 vvehculo
11
4.1.2.3 Espn
Cuando una rueda se desplaza a lo largo de la direccin longitudinal X, debido a su rotacin alrededor del eje Y del sistema de coordenadas mvil que se monta sobre la rueda, normalmente aparece ningn giro relativo entre la rueda y el carril alrededor del eje Z de la rueda. Este movimiento de giro se denomina espn. En el caso estudiado el espn aparece debido a la inclinacin del carril de pendiente 1:40. Esta situacin aparece representada en la Figura 12. La velocidad angular del espn en el punto central de contacto depende del ngulo formado entre la direccin normal al contacto y la vertical. El ngulo ha sido determinado mediante la funcin de localizacin descrita en el apartado anterior y tiene un valor de - 5.0154179, por lo que la velocidad angular del espn queda de la siguiente manera:
z
vvehculo
Zrueda Xcontacto
Yrueda
y z,contacto
y y,contacto Ycontacto
Ycontacto
Figura 12. Esquema indicando el origen del espn alrededor de la direccin normal al contacto, Zcontacto. La figura izquierda muestra 3 sistemas de coordenadas locales: el correspondiente a la rueda (verde), al carril (rojo) y al contacto (negro). La figura derecha muestra descomposicin del giro de la rueda alrededor de su eje Y en las componentes ortogonales y,contacto y z,contacto del sistema de coordenadas del contacto.
12
E = 210 GPa
= 0 .3
G=
E = 80769 MPa 2 (1 + )
13
FUN =
4.2.2 Pseudodeslizamientos
Los parmetros del fichero de entrada de CONTACT que determinan los pseudodeslizamientos son: CKSI, CETA y CPHI11. Indican la magnitud de la relacin entre la velocidad de slido rgido en el punto de contacto (vp,x, vp,y) y la velocidad de avance, en la direccin X e Y [-] y la relacin entre la velocidad angular de giro o espn alrededor del eje Z y la misma velocidad de avance [rad/mm], respectivamente. Existe pseudodeslizamiento en la direccin X con una magnitud de 0.08185 m/s, por lo que partiendo de las velocidades en el punto de contacto, vp y de la velocidad de avance, v se obtiene:
CKSI =
v p,x v v
(Se modifica la frmula para tener en cuenta el sentido de la velocidad en el punto de contacto) No existe pseudodeslizamiento en la direccin Y, por lo que: CETA=0
14
Existe pseudodeslizamiento de espn debido a la inclinacin del carril, por lo que el parmetro CPHI queda de la siguiente manera:
CPHI =
z
v
15
6
X= 0.1 Y= 3.7 Level= 0
2 Y-coordinate [mm]
X= -6.9 Y= 0.1 Level= 0 X= 6.9 Y= 0.1 Level= 0
-2
-4
-6
-8
-6
-4
-2
0 X-coordinate [mm]
10
Figura 13. Huella del contacto entre perfil ORE 1002 y UIC 60. (y=0, =0, retcula CONTACT: dx=dy=0.2 mm)
Figura 14. Vista de los puntos de mayor adhesin (azul) y menor (rojo).
El postprocesado de los resultados obtenidos se realiza mediante el fichero: post_CONTACT.m incluido en el Anexo 9: , utilizando adems las funciones Matlab incluidas en el paquete de CONTACT.
16
La Figura 15 y la Figura 16 muestran la densidad de friccin y la magnitud de deslizamiento en la zona del contacto, respectivamente. Estas representaciones dan una idea de la distribucin de las tensiones tangenciales y de las zonas de mximo desgaste sobre la huella de contacto. Las mismas figuras presentan las representaciones para la situacin sin y con espn.
Frictional power density x 10
-6
4.700
2.5
Y-coordinate [mm]
1.5
-4.100
0.5
4.700
x 10
-6
2.5 4.700
Y-coordinate [mm]
1.5
-4.100 0.5
4.700
Figura 15. Distribucin densidad de friccin en la huella de contacto. Caso superior, sin considerar espn. Caso inferior considerando el espn calculado para el problema.
Se observa que en la situacin sin espn la zona de deslizamiento y su distribucin es simtrica respecto al eje longitudinal (Figura 16, superior), en cambio, por el efecto del espn, la zona de deslizamiento y la distribucin de su magnitud se ven distorsionadas, reducindose ligeramente su rea y aumentando el deslizamiento mximo.
Problemas de contacto en vehculos
17
x 10
-3
1 4.700
0.8
0.6
0.4
-4.100 0.2
4.700
x 10 1.2
-3
4.700
0.6
0.4 -4.100
0.2
4.700
Figura 16. Distribucin de la magnitud del deslizamiento en la huella de contacto. Caso superior, sin considerar espn. Caso inferior considerando el espn calculado para el problema.
Y-coordinate [mm]
18
14 4.700 12
10 Y-coordinate [mm]
-4.100
4.700
-0.5 4.700 -1
-2
-2.5
-3 -4.100 -3.5
-4
4.700
Figura 18. Distribucin de la presin en la direccin X (MPa) en la huella de contacto. Problemas de contacto en vehculos
19
4.700
14
12
10 Y-coordinate [mm]
-4.100
20
FN = 61314 N, igual a la fuerza normal introducida. FX = -1435 N FY = 3967.7 N (FY = 3.6e-05 N, prcticamente nula, en el anlisis sin espn.)
Y-coordinate [mm]
-2
-4
-6 -8 -6 -4 -2 0 X-coordinate [mm] 2 4 6
21
5 Conclusin
Mediante estas conclusiones se valora la viabilidad de analizar el problema de contacto estudiado mediante un anlisis hertziano, en el que se utilizan las hiptesis de semiespacios infinitos y se supone que las superficies de contacto presentan una curvatura constante y el contacto debe producirse sin friccin. La huella de contacto mediante la resolucin hertziana es una elipse de semiejes a y b. Dado que la huella obtenida en el caso estudiado es una elipse (a=6.9 mm, b= 3.7 mm) el problema normal si se podra abordar mediante la teora de Hertz. Esta conclusin es nicamente vlida para la posicin de contacto estudiada (y=0, =0) y se sabe por la experiencia que esta teora no es vlida en todas las posiciones de la rueda sobre el carril2. Para poder evaluar correctamente la viabilidad del mtodo sera conveniente realizar un anlisis comparativo entre los resultados obtenidos mediante el mtodo no hertziano y el mtodo de Hertz.
22
6 Bibliografa
1. Dr.ir. E.A.H. Vollebregt. User guide for CONTACT,J.J. Kalker's variational contact model. Vortech Computing (2010). 2. J. Santamara. Apuntes de la asignatura: Problemas de contacto en vehculos. Master en Ingeniera Mecnica: Diseo y Fabricacin, curso 2011-12, E.T.S.I. Bilbo (2012).
23
Anexo 1:
A-1
Anexo 2: 1002
A-2
Anexo 3:
carril.sce
function contact=contacto_rueda_carril(incl, diam_nom, y, e_size, point_distance, pathname, nplot); // // contact=contacto_rueda_carril(incl,diam_nom,y,e_size,point_distance,pathname,nplot); // // incl = inclinacin del perfil ("-" implica carril derecho) // diam_nom = dimetro nominal de la rueda; // [mm] // y = desplazamiento lateral de la rueda, (y)rueda=(y)eje [mm] // e_size = tamao de los elementos en el eje Y [mm], (mximo 1mm, para poder discretizar correctamente los perfiles) // point_distance = distancia mnima [mm]entre perfiles para estos sean exportados a CONTACT. El valor ha de ajustarse, en funcin del mdulo elstico de los materiales y de los perfiles. // pathname = carpeta o directorio que contiene las funciones // nplot = vector indicando los plots que se desean ver [1 1 1 1 1 1 1] // 1. Perfil carril // 2. Perfil rueda // 3. Perfil de carril inclinado // 4. Contacto INCIAL // 5. Contacto FINAL // 6. Regin de perfiles alrededor del punto de contacto (separacin<point_distance) // 7. Perfil equivalente // //***************************************************************************// // OBJETIVOS // 1. Localizar el punto central de contacto entre 2 perfiles // 2. Obtener 2 vectores correspondientes al perfil en la zona cercana al contacto para servir de input al software Contact, dedicado al anlisis de contactos // 3. Determinar el ngulo que forma la normal al punto de contacto respecto a la vertical // Bibliografa // 1. Perfil UIC 60 // 2. Perfil ORE 1002 // 1. Dr.ir. E.A.H. Vollebregt. User guide for CONTACT,J.J. Kalker's variational contact model. Vortech Computing (2010). // 2. J. Santamara. Apuntes de la asignatura: Problemas de contacto en vehculos. Master en Ingeniera Mecnica: Diseo y Fabricacin, curso 2011-12, E.T.S.I. Bilbo (2012). // J. Galvn, 11-04-2012. //***************************************************************************// //***************************************************************************// //***************************************************************************// //***************************************************************************// // IMPORTAR PERFILES //
// ************* CARRIL UIC 60 f=fullfile(pathname,'carril_UIC60.sci');exec(f,-1); [UIC60]=carril_UIC60(e_size,nplot(1)); // Rotacin alrededor de eje X // Inclinacin, tan(phi)= -1:40 ( "-" implica carril derecho) phi=atan(incl); ROTX=phi*180/%pi;ROTY=0;ROTZ=0; // Montar matriz 3D para cambiobase.sce (x,y,z en filas)
Problemas de contacto en vehculos
A-3
f=fullfile(pathname,'cambiobase.sci');exec(f,-1); b=length(UIC60.y);carril=zeros(3,b); carril(2,:)=UIC60.y';carril(3,:)=UIC60.z'; [carril]=cambiobase(carril,ROTX,ROTY,ROTZ); carril(1,:)=zeros(1,b); // Plot del perfil inclinado if nplot(3)==1 then scf(3) plot2d(carril(2,:),carril(3,:),2) set(gca(),"auto_clear","off") plot2d(carril(2,:),carril(3,:),-2) title('Carril dcho. Perfil UIC 60 (inclinacin 1:40)') xlabel('Y [mm]'),ylabel('Z [mm]') set(gca(),"auto_clear","on") mtlb_axis('equal'); end // ************* RUEDA ORE 1002 f=fullfile(pathname,'rueda_ORE1002_v02.sci');exec(f,-1); [ORE1002]=rueda_ORE1002(e_size,carril(2,:),nplot(2)); // Rotacin alrededor de eje Y // Cambiar signo del eje Z para corresponderse con el del carril (girar 180 alrededor de Y) ROTX=0;ROTY=180;ROTZ=0; // Montar matriz 3D para cambiobase.sce (x,y,z en filas) a=length(ORE1002.y);rueda=zeros(3,a); rueda(2,:)=ORE1002.y';rueda(3,:)=ORE1002.z'; [rueda]=cambiobase(rueda,ROTX,ROTY,ROTZ); rueda(1,:)=zeros(1,a); // El problema 2D //***************************************************************************// //***************************************************************************// //***************************************************************************// //***************************************************************************// // // LOCALIZACION del punto central de CONTACTO POSICIONAR la rueda // //
//*************** Eje Y // Localizar el n de muestra en el que se situa el cero en el vector Y a0=find(rueda(2,:)==0);b0=find(carril(2,:)==0); // Desplazamiento lateral del eje montado, Y hacia la derecha positivo. rueda(2,:)=rueda(2,:)+y; n_y=y/e_size;offset_y=a0-b0-n_y; // el cero en el vector y de la rueda se desplaza haca las posiciones de la izquierda con los valores positivos del desplazamiento lateral (y) // Plot del contacto INCIAL titulo=['Contacto rueda - carril INICIAL (y='+string(y)+' mm)']; if nplot(4)==1 then scf(4) plot(rueda(2,:),rueda(3,:),'g',carril(2,:),carril(3,:),'r') title(titulo),xlabel('Y [mm]'),ylabel('Z [mm]') mtlb_axis('equal'); end clear('titulo')
A-4
//
// Determinar lmite izquierdo y derecho (rueda o carril) // Y- rueda > Y- carril ylim.neg=rueda(2,1)-carril(2,1); // si es mayor que 0 el perfil de rueda est ms a la derecha que el del carril. // Y+ rueda < Y+ carril ylim.pos=rueda(2,a)-carril(2,b); // si es menor que 0 el perfil de rueda est ms a la izquierda que el del carril. // Determinar las zonas de solape if ylim.neg<=0 & ylim.pos>=0 then ylim.caso='normal'; // (yrueda)lim, izq < (ycarril)lim, izq < (yrueda)lim, dcho ; circulacin normal (Figura 7). else if ylim.neg>0 then ylim.caso='izq'; // (yrueda)lim, izq > (ycarril)lim, izq ; la pestaa circula sobre la cabeza del carril (Figura 5). else ylim.caso='dcha'; //(yrueda)lim, dcho < (ycarril)lim, dcho ; la rueda contacta en la regin A (Figura 6). end end // ... en funcin del SOLAPE! (cambian los lmites de interpolacin) select ylim.caso case 'normal' then // Determinar la distancia mnima entre cotas, interpolando el vector y_rueda en el tramo del carril // Lmites del vector Y de la rueda para la interpolacin. // Recordar!, en esta zona: (longitud)y de la rueda > (longitud)y del carril, por lo que se utiliza todo el vector Y del carril. limizqr=abs(offset_y);limdchr=abs(offset_y)+b; // COTA del carril Interpolada zc_interp=zeros(1,length(rueda(2,limizqr:limdchr))/3); zc_interp=interp1(carril(2,:),carril(3,:),rueda(2,limizqr:limdchr),'linear'); // Anlisis de interferencia y primer reposicionamiento separacion=zc_interp-rueda(3,limizqr:limdchr); c=zeros(1:length(separacion));c=separacion>0; offset_z=max(separacion(c==%T)); rueda(3,:)=rueda(3,:)+offset_z; // Separacin mnima entre perfiles y reposicionamiento de la rueda (ITERATIVO) // Interpolar zc_interp=interp1(carril(2,:),carril(3,:),rueda(2,limizqr:limdchr),'linear'); // Calcular separacin entre perfiles separacion=zc_interp-rueda(3,limizqr:limdchr); // Calcular mnima separacin entre perfiles y la posicin del mnimo [value,position]=min(abs(separacion)); tol=1e-8; // [mm] if value>tol then // Determinar offset_z y reposicionar la rueda c=sign(separacion(position));offset_z=value*c; rueda(3,:)=rueda(3,:)+offset_z; // Interpolar zc_interp=interp1(carril(2,:),carril(3,:),rueda(2,limizqr:limdchr),'linear'); separacion=zc_interp-rueda(3,limizqr:limdchr); // Calcular mnima separacin entre perfiles y la posicin del mnimo
Problemas de contacto en vehculos
A-5
[value,position]=min(abs(separacion)); end // POSICION del punto central de contacto contact.coord=zeros(3,1);contact.coord(1,1)=0; contact.coord(2,1)=rueda(2,limizqr+position); contact.coord(3,1)=rueda(3,limizqr+position); // Regiones y propiedades de la rueda y del carril //************ Rueda radio.rueda=diam_nom/2+ORE1002.z(limizqr+1+position); frontera_yr=ORE1002.frontera_y+y; // Vectores del contacto (INPUT para contact) // c=abs(separacion(1,:))<point_distance;t=carril(2,c==%T); contact.y_carril=t(1):e_size:t(length(t)); contact.z_carril=interp1(carril(2,:),carril(3,:),contact.y_carril,'linear'); contact.y_rueda=contact.y_carril; contact.z_rueda=interp1(rueda(2,:),rueda(3,:),contact.y_rueda,'linear'); index=position; // Indice para determinar ngulo de la normal al contacto respecto a la vertical //************************************************************************* //************************************************************************* case 'izq' then indexc=find(carril(2,:)>=rueda(2,1)) indexr=find(rueda(2,:)>=carril(2,b)) n_ylim=indexc(1);n_ylimr=indexr(1); // Determinar la distancia mnima entre cotas, interpolando el vector y_rueda en el tramo del carril zc_interp=interp1(carril(2,n_ylim:b),carril(3,n_ylim:b),rueda(2,1:n_ylimr),'linear'); // Anlisis de interferencia separacion=zc_interp-rueda(3,1:n_ylimr); c=separacion>0; offset_z=max(separacion(c==%T)); rueda(3,:)=rueda(3,:)+offset_z; zc_interp=interp1(carril(2,n_ylim:b),carril(3,n_ylim:b),rueda(2,1:n_ylimr),'linear'); // Anlisis de interferencia separacion=zc_interp-rueda(3,1:n_ylimr); [value,position]=min(abs(separacion)); index=position+n_ylim; // Indice para determinar ngulo de la normal al contacto respecto a la vertical // POSICION del punto central de contacto contact.coord=zeros(3,1);contact.coord(1,1)=0; // 2D contact.coord(2,1)=rueda(2,abs(offset_y)+1+position-n_ylim); contact.coord(3,1)=rueda(3,abs(offset_y)+1+position-n_ylim); // Regiones y propiedades de la rueda y del carril //************ Rueda radio.rueda=diam_nom/2+ORE1002.z(abs(offset_y)+1+position-n_ylim); frontera_yr=ORE1002.frontera_y+y; // Vectores del contacto (INPUT para contact) c=(abs(separacion))<point_distance;t=rueda(2,c==%T); contact.y_rueda=(t(1)):e_size:t(length(t));
Problemas de contacto en vehculos
//
A-6
contact.z_carril=interp1(carril(2,n_ylim:b),carril(3,n_ylim:b),contact.y_rueda,'linear'); contact.y_carril=contact.y_rueda; contact.z_rueda=interp1(rueda(2,:),rueda(3,:),contact.y_rueda,'linear'); //************************************************************************* //************************************************************************* case 'dcha' then indexc=find(carril(2,:)>=rueda(2,a)) indexr=find(rueda(2,:)>=carril(2,1)) n_ylim=indexc(1);n_ylimr=indexr(1); // Determinar la distancia mnima entre cotas, interpolando el vector y_rueda en el tramo del carril zc_interp=interp1(carril(2,:),carril(3,:),rueda(2,n_ylimr:a),'linear'); // Anlisis de interferencia separacion=zc_interp-rueda(3,n_ylimr:a); [offset_z,position]=max(separacion); c=sign(separacion(position)) rueda(3,:)=rueda(3,:)-offset_z*c; zc_interp=interp1(carril(2,:),carril(3,:),rueda(2,n_ylimr:a),'linear'); // Anlisis de interferencia separacion=zc_interp-rueda(3,n_ylimr:a); [value,position]=min(abs(separacion)) index=n_ylimr+position-1; // Indice para determinar ngulo de la normal al contacto respecto a la vertical //***************************************************** // Determinar la regin de funcionamiento de la rueda y del carril // Rueda contact.coord(2,1)=rueda(2,n_ylimr+position-1); radio.rueda=diam_nom/2+ORE1002.z(n_ylimr+position-1); frontera_yr=ORE1002.frontera_y+y; // Vectores del contacto (INPUT para contact) // c=abs(separacion)<point_distance;t=rueda(2,c==%T)-rueda(2,1)+carril(2,1); contact.y_carril=t(1):e_size:t(length(t)); contact.z_carril=interp1(carril(2,:),carril(3,:),contact.y_carril,'linear'); contact.y_rueda=contact.y_carril; contact.z_rueda=interp1(rueda(2,:),rueda(3,:),contact.y_rueda,'linear'); end //***************************************************************************// //***************************************************************************// //***************************************************************************// //***************************************************************************// // OUTPUT USUARIO // Plot del contacto FINAL titulo=['Contacto rueda - carril (y='+string(y)+' mm)']; if nplot(5)==1 then scf(5) clf(5) //
A-7
plot(contact.coord(2,1),contact.coord(3,1),'o',rueda(2,:),rueda(3,:),'k',carril(2,:),carril(3,:),'k',contact.y_ca rril,contact.z_carril,'r',contact.y_rueda,contact.z_rueda,'g') title(titulo),xlabel('Y [mm]'),ylabel('Z [mm]') mtlb_axis('equal'); end clear('titulo'); //************** Rueda disp('RUEDA','*******************************************') disp(radio.rueda*2,'Dimetro [mm]:',radio.rueda,'Radio [mm]:',diam_nom,'Dimetro nominal [mm]:') if contact.coord(2,1)>frontera_yr(9) & contact.coord(2,1)<=frontera_yr(8) then disp('*******************************************','El contacto en la rueda ocurre en la regin H, el radio del perfil de la rueda es convexo de 20.5 mm'),radio.rueda_perfil=20.5; else if contact.coord(2,1)>frontera_yr(8) & contact.coord(2,1)<=frontera_yr(7) then disp('*******************************************','El contacto en el carril ocurre en la regin G, el radio del perfil de la rueda es convexo de 12 mm'),radio.rueda_perfil=12; else if contact.coord(2,1)>frontera_yr(7) & contact.coord(2,1)<=frontera_yr(6) then disp('*******************************************','El contacto en la rueda ocurre en la regin F, el radio del perfil de la rueda es convexo de 20 mm'),radio.rueda_perfil=20; else if contact.coord(2,1)>frontera_yr(6) & contact.coord(2,1)<=frontera_yr(5) then disp('*******************************************','El contacto en la rueda ocurre en la regin E') else if contact.coord(2,1)>frontera_yr(5) & contact.coord(2,1)<=frontera_yr(4) then disp('*******************************************','El contacto en la rueda ocurre en la regin F, el radio del perfil de la rueda es concavo de 13 mm'),radio.rueda_perfil=13; else if contact.coord(2,1)>frontera_yr(4) & contact.coord(2,1)<=frontera_yr(3) then disp('*******************************************','El contacto en la rueda ocurre en la regin C') else if contact.coord(2,1)>frontera_yr(3) & contact.coord(2,1)<=frontera_yr(2) then disp('*******************************************','El contacto en la rueda ocurre en la regin B') else if contact.coord(2,1)>frontera_yr(2) & contact.coord(2,1)<=frontera_yr(1) then disp('*******************************************','El contacto en la rueda ocurre en la regin A') end end end end end end end end clear("frontera_yr"); //************** Carril disp('CARRIL','*******************************************') if contact.coord(2,1)>UIC60.frontera_y(1) & contact.coord(2,1)<=UIC60.frontera_y(2) then disp('*******************************************','El contacto en el carril ocurre en la regin D') else if contact.coord(2,1)>UIC60.frontera_y(2) & contact.coord(2,1)<=UIC60.frontera_y(3) then
Problemas de contacto en vehculos
A-8
disp('*******************************************','El contacto en el carril ocurre en la regin C, el radio del perfil del carril es de 13 mm'),radio.carril=13; // Angulo que forma la normal del punto central de contacto con la vertical. Se utiliza el perfil del carril puesto que resulta + sencillo, (ver index) tetha=asin((UIC60.y(index)-UIC60.centro(1,1))/UIC60.radio(1,2)); else if contact.coord(2,1)>UIC60.frontera_y(3) & contact.coord(2,1)<=UIC60.frontera_y(4) then disp('*******************************************','El contacto en el carril ocurre en la regin B, el radio del perfil del carril es de 80 mm'),radio.carril=80; tetha=asin((UIC60.y(index)-UIC60.centro(2,1))/UIC60.radio(1,3)); else if contact.coord(2,1)>UIC60.frontera_y(4) & contact.coord(2,1)<=UIC60.frontera_y(6) then disp('*******************************************','El contacto en el carril ocurre en la regin A, el radio del perfil del carril es de 300 mm'),radio.carril=300; tetha=asin((UIC60.y(index)-UIC60.centro(3,1))/UIC60.radio(1,4)); else if contact.coord(2,1)>UIC60.frontera_y(6) & contact.coord(2,1)<=UIC60.frontera_y(7) then disp('*******************************************','El contacto en el carril ocurre en la regin B EXTERIOR, el radio del perfil del carril es de 80 mm. PELIGRO!'),radio.carril=80; tetha=asin((UIC60.y(index)-UIC60.centro(4,1))/UIC60.radio(1,5)); else if contact.coord(2,1)>UIC60.frontera_y(7) & contact.coord(2,1)<=UIC60.frontera_y(8) then disp('*******************************************','El contacto en el carril ocurre en la regin C , el radio del perfil del carril es de 13 mm. PELIGRO!'),radio.carril=13; tetha=asin((UIC60.y(index)-UIC60.centro(5,1))/UIC60.radio(1,6)); if contact.coord(2,1)>UIC60.frontera_y(8) & contact.coord(2,1)<=UIC60.frontera_y(9) then disp('*******************************************','El contacto ocurre en la regin D EXTERIOR del carril. PELIGRO!') else disp('*******************************************','ERROR!, parece haberse perdido el contacto entre los perfiles. PELIGRO!') end end end end end end end //***************************************************************************// //***************************************************************************// //***************************************************************************// //***************************************************************************// // ADAPTAR perfiles para CONTACT //
// Mover al origen de coordenadas el punto central del contacto [value,posicion]=min(abs(contact.z_rueda-contact.z_carril)); // posicion = n muestra que contine z=0, punto contacto contact.z_carril=contact.z_carril-contact.z_carril(posicion); contact.z_rueda=contact.z_rueda-contact.z_rueda(posicion); contact.y_carril=contact.y_carril-contact.y_carril(posicion); contact.y_rueda=contact.y_carril; // Plot seccin ponit distance centrada titulo=['Contacto rueda - carril (Regin perfiles exportada) if nplot(6)==1 then scf(6)
Problemas de contacto en vehculos
(y='+string(y)+' mm)'];
A-9
plot(contact.y_carril(posicion),contact.z_rueda(posicion),'o',contact.y_carril,contact.z_carril,'r',contact. y_rueda,contact.z_rueda,'g') title(titulo) xlabel('Y [mm]'),ylabel('Z [mm]') mtlb_axis('equal'); end clear('titulo'); // Perfil EQUIVALENTE // // El carril se convierte en un plano horizontal y el perfil de la rueda se ve modificado manteniendo la separacin de los perfiles orignales mizq=posicion;mdcho=length(contact.z_rueda)-posicion; n=min(mizq,mdcho);n=2*n-1; if mizq<=mdcho then contact.CONTACTpe=contact.z_rueda(1:n)-contact.z_carril(1:n); else contact.CONTACTpe=contact.z_rueda(posicion-n/2:posicion+n/2)-contact.z_carril(posicionn/2:posicion+n/2); end contact.CONTACT=contact.z_rueda-contact.z_carril; // Visualizacin en pantalla //************** Contacto disp('CONTACTO','*******************************************') disp(contact.coord(3,1),contact.coord(2,1),contact.coord(1,1),'Coord. pto central de contacto [mm]: X Y Z') ang_contact=(tetha+phi)*180/%pi; // [] disp(ang_contact,'El ngulo [] que forma la normal al perfil en el punto central de contacto con la vertical es de:') disp(contact.y_carril(1),'Ymin [mm]:') disp(length(contact.CONTACT(1:n)),'N de muestras:') disp(contact.CONTACT(n),'La mnima separacin de los perfiles en los extremos es de [mm] :') disp('* * * * * * * * * * * * * * * * * * * * * * * * * *') // N elementos^2 < n mximo elementos retcula CONTACT (50000) nn=n^2; if nn>50000 then disp('CUIDADO! El nmero de muestras es mayor que el aceptado por CONTACT. (Es NECESARIO modificar los parmetros: e_size y/o point_distance.)') end // Plot perfil equivalente titulo=['Perfil EQUIVALENTE del contacto: rueda - carril (perfil a introducir en CONTACT) (y='+string(y)+' mm)']; if nplot(7)==1 then a=length(contact.y_carril);horizontal=zeros(a,1); scf(7) plot(contact.y_carril,horizontal,'--k') set(gca(),"auto_clear","off") if mizq<=mdcho then cizq=5;cdcho=1; plot2d(contact.y_carril(1:posicion+n/2),contact.CONTACT(1:posicion+n/2),cizq,rect=[min(contact.y_c arril),min(contact.CONTACT-1),max(contact.y_carril),max(contact.CONTACT)]) plot2d(contact.y_carril(posicion+n/2:a),contact.CONTACT(posicion+n/2:a),cdcho) else plot2d(contact.y_carril(1:posicion-n/2),contact.CONTACT(1:posicionn/2),1,rect=[min(contact.y_carril),min(contact.CONTACT1),max(contact.y_carril),max(contact.CONTACT)]) plot2d(contact.y_carril(posicion-n/2:a),contact.CONTACT(posicion-n/2:a),5)
Problemas de contacto en vehculos
A-10
end title(titulo),xlabel('Y [mm]'),ylabel('Z [mm]') set(gca(),"auto_clear","on") clear('titulo'); end disp('Perfil a introducir en CONTACT') // Visualizacin del vector disp(contact.CONTACT') disp('*******************************************') //***************************************************************************// //***************************************************************************// //***************************************************************************// //***************************************************************************// endfunction
A-11
Anexo 4:
clear;xdel(winsid());clc;stacksize('max'); // Localizacin del punto central de contacto entre dos perfiles y determinacin de las caractersticas geometrcas del contacto. // Datos de entrada //
//************ Carril // Inclinacin del carril incl=-1/40; // ( "-" implica carril derecho) //************ Rueda diam_nom=960; // [mm] // Desplazamiento lateral del eje [mm] y=0; //y=-20:5:20; // Vector VIDEO //************************************* // Tamao de los elementos en el eje Y [mm], (mximo 1mm, para poder discretizar correctamente los perfiles. Aconsejado <0.05 en situacion de descarrilamiento) e_size=0.2; // Distancia mnima entre perfiles para estos sean exportados a CONTACT. El valor ha de ajustarse, en funcin del mdulo elstico de los materiales y de los perfiles. point_distance=5; // [mm] // Plots (help contact_rueda_carril) nplot=[ 0 0 1 1 1 0 1]; //
//***************************************************************************// //***************************************************************************// //***************************************************************************// //***************************************************************************// // Especificar DIRECTORIO donde se almacena el cdigo y las funciones pathname=[]; //pathname='C:\Documents and Settings\Administrador\Escritorio\TRABAJOS MASTER\Contacto\01 Contacto rueda-carril (PRE_Scilab)\'; empty=isempty(pathname); if empty==%T then pathname=uigetdir("C:\", "Seleciona la carpeta que contiene el cdigo: Contacto carril-rueda.sce") end // LOCALIZAR ... // Funcin: contact_rueda_carril f=fullfile(pathname,'contacto rueda-carril.sci');exec(f,-1); for ii=1:length(y) contact(ii)=contacto_rueda_carril(incl,diam_nom,y(ii),e_size,point_distance,pathname,nplot); end
A-12
Anexo 5:
// Perfil carril UIC 60
Funcin: carril_UIC60.sci
// Datos geomtricos del perfil y_max=37.15;z_min=-34.5; // Radios e inclinacin //R1=300;R2=80;R3=13;i=1/20; radio=[300 80 13 1/20]; // Centros de las circunferencias // Coord. Y =columna 1 // Coord. Z =columna 2 centro=[0 -300;7.7 -80.134791292483;23.02625 -14.9112827933421]; // Fronteras entre curvaturas diferentes // Unicamente coord Y frontera_y=[0 10.5 26 36 37.15]; // ***************************************************** // Generacin del perfil y1=[frontera_y(1):e_size:frontera_y(2)]'; y2=[frontera_y(2)+e_size:e_size:frontera_y(3)]'; y3=[frontera_y(3)+e_size:e_size:frontera_y(4)]'; y4=[frontera_y(4)+e_size:e_size:frontera_y(5)]'; //y4=[y4;y_max]; // Curvatura 1 z1=sqrt(radio(1)^2-(y1-centro(1,1))^2)+centro(1,2); // Curvatura 2 z2=sqrt(radio(2)^2-(y2-centro(2,1))^2)+centro(2,2); // Curvatura 3 z3=sqrt(radio(3)^2-(y3-centro(3,1))^2)+centro(3,2); // Tramo 4 z4=z3(length(z3))-(y4-y3(length(y3)))/radio(4); // Creacin de los vectores Y, Z longitud=length(z1)+length(z2)+length(z3)+length(z4); yposi=zeros(longitud,1);zposi=zeros(longitud,1);ynega=zeros(longitud,1);znega=zeros(longitud,1); yposi=[y1;y2;y3;y4]; zposi=[z1;z2;z3;z4]; a=length(yposi); for ii=1:a ynega(ii)=-yposi(a+1-ii); znega(ii)=zposi(a+1-ii); end yUIC60=zeros(2*longitud-1,1);zUIC60=zeros(2*longitud-1,1); yUIC60=[ynega(1:length(ynega)-1,1);yposi]; zUIC60=[znega(1:length(znega)-1,1);zposi]; // Plot del perfil scf() plot2d(yUIC60,zUIC60,2) set(gca(),"auto_clear","off") plot2d(yUIC60,zUIC60,-2) title('Perfil UIC 60') xlabel('Y [mm]'),ylabel('Z [mm]') set(gca(),"auto_clear","on") mtlb_axis('equal') endfunction
Problemas de contacto en vehculos
A-13
Anexo 6:
Funcin: rueda_ORE1002.sci
1 Versin 1
function [yORE1002, zORE1002]=rueda_ORE1002(e_size); // Perfil de rueda ORE 1002 // Datos geomtricos del perfil y_min=-70;y_max=45; // Radios radio=[0 0 0 13 0 20 12 20.5]; // Centros de las circunferencias // Coord. Y =columna 1 // Coord. Z =columna 2 centro=[0 0;0 0;0 0;-26.211 16.446;0 0;-58.558 8.835;-55 16;-49.5 9.519]; // Fronteras entre curvaturas diferentes // Unicamente coord Y frontera_y=[60 32.15796 -26 -35 -38.426669071 -39.76473993 -49.662510381 -62.764705882 -70]; // ***************************************************** // Generacin del perfil yH=[frontera_y(9):e_size:frontera_y(8)]'; yG=[frontera_y(8):e_size:frontera_y(7)]'; yF=[frontera_y(7):e_size:frontera_y(6)]'; yE=[frontera_y(6):e_size:frontera_y(5)]'; yD=[frontera_y(5):e_size:frontera_y(4)]'; yC=[frontera_y(4):e_size:frontera_y(3)]'; yB=[frontera_y(3):e_size:frontera_y(2)]'; yA=[frontera_y(2):e_size:frontera_y(1)]'; // Zona H zH=sqrt(radio(8)^2-(yH-centro(8,1))^2)+centro(8,2); // Zona G zG=sqrt(radio(7)^2-(yG-centro(7,1))^2)+centro(7,2); // Zona F zF=sqrt(radio(6)^2-(yF-centro(6,1))^2)+centro(6,2); // Zona E zE=-93.576667419-2.747477419*yE; // Zona D zD=-sqrt(radio(4)^2-(yD-centro(4,1))^2)+centro(4,2); // Zona C zC=-4.320221063e3-1.038384026e3*yC-1.065501873e2*yC^2-6.051367875*yC^3-2.054332446e1*yC^4-4.169739389e-3*yC^5-4.687195829e-5*yC^6-2.252755540e-7*yC^7; // Zona B zB=-3.358537058e-2*yB+1.565681624e-3*yB^2-2.810427944e-5*yB^3+5.844240864e-8*yB^41.562379023e-8*yB^5+5.309217349e-15*yB^6-5.957839843e-12*yB^7+2.646656573e-13*yB^8; // Zona A zA=1.364323640-0.066666667*yA; // Creacin de los vectores Y, Z longitud=length(zA)+length(zB)+length(zC)+length(zD)+length(zE)+length(zF)+length(zG)+length(zH); y=zeros(longitud,1); z=y; yORE1002=[yH;yG;yF;yE;yD;;yC;yB;yA]; zORE1002=[zH;zG;zF;zE;zD;;zC;zB;zA];
Problemas de contacto en vehculos
A-14
// Plot del perfil scf() plot2d(yORE1002,zORE1002,2) set(gca(),"auto_clear","off") plot2d(yORE1002,zORE1002,-2) title('Perfil ORE 1002') xlabel('Y [mm]'),ylabel('Z [mm]') set(gca(),"auto_clear","on") mtlb_axis('equal') endfunction
2 Versin 2
function [yORE1002, zORE1002]=rueda_ORE1002(e_size, y_carril); // // //// Esta version genera el perfil de rueda partiendo de un vector y // Perfil de rueda ORE 1002 // Datos geomtricos del perfil y_min=-70;y_max=60; y=y_min:e_size:y_max; y=y'; // Radios radio=[0 0 0 13 0 20 12 20.5]; // Centros de las circunferencias // Coord. Y =columna 1 // Coord. Z =columna 2 centro=[0 0;0 0;0 0;-26.211 16.446;0 0;-58.558 8.835;-55 16;-49.5 9.519]; // Fronteras entre curvaturas diferentes // Unicamente coord Y frontera_y=[60 32.15796 -26 -35 -38.426669071 -39.76473993 -49.662510381 -62.764705882 -70]; // ***************************************************** empty=isempty(y_carril) select empty case %F a=find(y>y_carril(1)); longitud=length(y_carril); y=[y(1:a(1));y_carril';y(a(1)+longitud:length(y))] end z=zeros(length (y),1); for ii=1:length(y) if y(ii)>=frontera_y(1,9) & y(ii)<=frontera_y(8) then // Zona H z(ii)=sqrt(radio(8)^2-(y(ii)-centro(8,1))^2)+centro(8,2); else if y(ii)>frontera_y(8) & y(ii)<=frontera_y(7) then // Zona G z(ii)=sqrt(radio(7)^2-(y(ii)-centro(7,1))^2)+centro(7,2); else if y(ii)>frontera_y(7) & y(ii)<=frontera_y(6) then
Problemas de contacto en vehculos
A-15
// Zona F z(ii)=sqrt(radio(6)^2-(y(ii)-centro(6,1))^2)+centro(6,2); else if y(ii)>frontera_y(6) & y(ii)<=frontera_y(5) then // Zona E z(ii)=-93.576667419-2.747477419*y(ii); else if y(ii)>frontera_y(5) & y(ii)<=frontera_y(4) then // Zona D z(ii)=-sqrt(radio(4)^2-(y(ii)-centro(4,1))^2)+centro(4,2); else if y(ii)>frontera_y(4) & y(ii)<=frontera_y(3) then // Zona C z(ii)=-4.320221063e3-1.038384026e3*y(ii)-1.065501873e2*y(ii)^26.051367875*y(ii)^3-2.054332446e-1*y(ii)^4-4.169739389e-3*y(ii)^5-4.687195829e-5*y(ii)^62.252755540e-7*y(ii)^7; else if y(ii)>frontera_y(3) & y(ii)<=frontera_y(2) then // Zona B z(ii)=-3.358537058e-2*y(ii)+1.565681624e-3*y(ii)^2-2.810427944e5*y(ii)^3+5.844240864e-8*y(ii)^4-1.562379023e-8*y(ii)^5+5.309217349e-15*y(ii)^6-5.957839843e12*y(ii)^7+2.646656573e-13*y(ii)^8; // Zona A else if y(ii)>frontera_y(2) & y(ii)<=frontera_y(1) then z(ii)=1.364323640-0.066666667*y(ii); end end end end end end end end end // Creacin de los vectores yORE1002 y zORE1002 yORE1002=zeros(length(y),1);zORE1002=zeros(length(y),1); yORE1002=y;zORE1002=z; // Plot del perfil scf() plot2d(yORE1002,zORE1002,2) set(gca(),"auto_clear","off") plot2d(yORE1002,zORE1002,-2) title('Perfil ORE 1002') xlabel('Y [mm]'),ylabel('Z [mm]') set(gca(),"auto_clear","on") mtlb_axis('equal') endfunction
A-16
Anexo 7:
Funcin: cambiobase.sci
function [vv]=cambiobase(v, ROTX, ROTY, ROTZ) // //// Cambia de base un vector v de 3 componentes (x,y,z) indicando el giro //// [] alrededor de los ejes del sistema cartesiano tridimensional // pagina 42 de EFNL // // [vv]=cambiobase(v,ROTX,ROTY,ROTZ) // // v = vector columna de 3 componentes. // ROTX,ROTY,ROTZ = ngulo girado alrededor de cada eje, en grados // sexagesimales. // vv = vector columna con las coordenadas en la nueva base. // // Se mantiene la ortogonalidad entre los ejes. // Josean Galvan // Base original: ei e1=[1 0 0];e2=[0 1 0];e3=[0 0 1]; // en matriz: E E=eye(3); // Giro alrededor e3 [] en plano e1e2 tetha(1)=ROTZ; // Giro alrededor e2 [] en plano e1e3 tetha(2)=ROTY; // Giro alrededor e1 [] en plano e2e3 tetha(3)=ROTX; // Paso a radianes tetha=tetha*%pi/180; //// Nueva base: EE // Las columnas de [Q] son los cosenos directores de los vectores con la // base nueva respecto a la anterior. if tetha(1)~=0 Q=[cos(tetha(1)) cos(%pi/2+tetha(1)) cos(%pi/2) cos(%pi/2-tetha(1)) cos(tetha(1)) cos(%pi/2) cos(%pi/2) cos(%pi/2) cos(0)]; vv=Q'*v; verif=Q*vv; else vv=v; end v=vv; if tetha(2)~=0 Q=[cos(tetha(2)) cos(%pi/2) cos(%pi/2-tetha(2)) cos(%pi/2) cos(0) cos(%pi/2) cos(%pi/2+tetha(2)) cos(%pi/2) cos(tetha(2))]; vv=Q'*v; verif=Q*vv; end v=vv; if tetha(3)~=0 Q=[cos(0) cos(%pi/2) cos(%pi/2) cos(%pi/2) cos(tetha(3)) cos(%pi/2+tetha(3)) cos(%pi/2) cos(%pi/2-tetha(3)) cos(tetha(3))]; vv=Q'*v; verif=Q*vv; end v=vv; endfunction
A-17
Anexo 8:
Fichero: ORE1002_UIC60.inp
% % Resolucin del contacto NO hertziano de una rueda ORE 1002 y un carril UIC 60 % Geometra NO hertziana % First case: Caso NO hertziano rueda - carril 3 MODULE 203100 P-B-T-N-F-S PVTIME, BOUND , TANG , F_NORM, F_TANG, STRESS 22020 D-C-M-Z-E DISCNS, INFLCF, MATER , RZNORM, EXRHS 00531 G-I-O-W-R GAUSEI, IESTIM, OUTPUT, FLOW , RETURN 100 100 30 1 0.0001 MAXGS , MAXIN , MAXNR , MAXOUT, EPS 0.75911 0.00157336 0.000 -0.000182832 FUN, CKSI, CETA, CPHI 0.3 0.3 FSTAT, FKIN 0.000 0.1 CHI, S 0.3 0.3 80769.0 80769.0 SIGMA 1,2, GG 1,2 1 IPOTCN 221 221 -22 -22 .2 .2 MX,MY,XL,YL,DX,DY 2 1 IBASE, IPLAN % UNDEF.DISTANCE, (1)-(2): CIRCULAR (X), POINTWISE (Y) 221 0.000 480.75178 -22 0.2 NN,XM,RX1,Y1,DY1 0.0023703 0.1210076 0.4077294 0.0951069 4.5577348 0.0036231 0.1147647 0.3862473 0.0969817 4.19768 0.0051455 0.1086230 0.3675220 0.0988341 3.8918357 0.0069400 0.1025894 0.3515177 0.1006656 3.6255 0.0090091 0.0966709 0.3382129 0.1024778 3.3893579 0.0908743 0.3275630 0.1042721 3.1771031 0.0113554 0.0852060 0.3195366 0.1060500 2.984255 0.0139813 0.0796723 0.3144022 0.1078131 2.8075112 0.0168892 0.0742793 0.3096000 0.1095627 2.6443667 0.0201145 0.0690331 0.3049575 0.1113003 2.4928778 0.0234091 0.0639394 0.3000684 0.1130273 2.3515082 0.0266947 0.0590039 0.2949497 0.1147452 2.2190252 0.0299031 0.0542319 0.2896183 0.1164553 2.0944281 0.0330368 0.0496289 0.2840902 0.1181591 1.9768961 0.0360981 0.0452000 0.2783812 0.1198579 1.8657509 0.0390891 0.0409501 0.2725066 0.1215533 1.7604285 0.0420123 0.0368843 0.2664813 0.1232464 1.6604579 0.0448697 0.0330072 0.2603196 0.1249387 1.5654443 0.0476636 0.0293234 0.2540356 0.1266316 1.4750561 0.0503960 0.0258374 0.2476429 0.1283264 1.3890146 0.0530690 0.0225537 0.2411546 0.1300246 1.3070851 0.0556847 0.0194764 0.2345837 0.1317273 1.2290706 0.0582451 0.0166096 0.2279425 0.1334360 1.1548054 0.0607521 0.0139575 0.2212432 0.1351521 1.0841506 0.0632077 0.0115239 0.2144975 0.1368768 1.0169895 0.0656139 0.0093126 0.2077168 0.1386115 0.9532245 0.0679724 0.0073274 0.2009122 0.1403576 0.8927734 0.0702852 0.0055719 0.1940944 0.1421164 0.8355674 0.0725540 0.0040495 0.1872739 0.1438892 0.7815479 0.0747807 0.0027639 0.1804608 0.1456774 0.7306648 0.0769670 0.0017182 0.1736649 0.1474823 0.6828746 0.0791147 0.0009158 0.1668958 0.1493052 0.6381388 0.0812254 0.0003599 0.1601628 0.1511476 0.5964221 0.0833009 0.0000537 0.1534748 0.1530106 0.5576918 0.0853429 0. 0.1468406 0.1548958 0.5219163 0.0873531 0.0002020 0.1402687 0.1568045 0.4890642 0.0893329 0.0006625 0.1337672 0.1587379 0.4591041 0.0912841 0.0013843 0.1273443 0.1606975 0.4320036 0.0932083
Problemas de contacto en vehculos
A-18
% En matlab, podemos ver las grficas de resultados de este segundo caso: % % sol=loadcase('nohertz',2) % Carga los datos, en este caso el "2" indica que se cargan los datos del 2 caso % opt3=plot3d % Genera la variable con las opciones de grficos % opt3.field='eldiv' % Se selecciona un tipo de grfico: Area de contacto, adhesin y deslizamiento % plot3d(sol,opt3) % Se dibuja el grfico
A-19
Anexo 9:
Fichero: post_CONTACT.m
%% post_CONTACT.m (ORE1002_UIC60.inp) clear all; close all; clc; % % Plot del perfil no hertziano % dy=0.2;y_min=-22; % y=y_min:dy:abs(y_min); % z=[copiar ptos del perfil desde archivo input de CONTACT] % figure() % plot(y,z) % Plot de los resultados sol=loadcase('ORE1002_UIC60',1) % Carga los datos opt3=plot3d; % Genera la variable con las opciones de grficos opt3.field='ptvec'; % Se selecciona un tipo de grfico: Area de contacto, adhesin y deslizamiento figure() plot3d(sol,opt3) % Se dibuja el grfico axis equal; grid on; % Propiedades elsticas del material E=210e3; %[N/mm2] mu=0.3; G=E/(2*(1+mu)); %% Fuerzas % Normal c=(sol.pn~=0); fn=sol.pn(c)*sol.dx*sol.dy; fuerza.normal=sum(fn)*G; % Tangenciales % Eje X c=(sol.px~=0); fx=sol.px(c)*sol.dx*sol.dy; fuerza.x=sum(fx)*G; % Eje Y c=(sol.py~=0); fy=sol.py(c)*sol.dx*sol.dy; fuerza.y=sum(fy)*G; %% Presin mxima % Normal c=(sol.pn~=0);pn=sol.pn(c); presion.nmax=max(abs(pn)); % Tangenciales % Eje X c=(sol.px~=0);px=sol.px(c); presion.xmax=max(abs(px)); % Eje Y c=(sol.py~=0);py=sol.py(c); presion.ymax=max(abs(py)); % Visualizar fuerza presion
%[N]
A-20