Visualizar / Abrir - Dadun

Anuncio
Universidad de Navarra
Escuela Superior de Ingenieros
Nafarroako Unibertsitatea
Ingeniarien Goi Mailako Eskola
Proyecto Fin de Máster
INGENIERO INDUSTRIAL
MODELIZACIÓN TÉRMICA DE DISCOS DE FRENO
FERROVIARIOS
Documento nº2: ANEXOS
La alumna: Marta Usabiaga Urrestarazu
San Sebastián, enero de 2015
CAMPUS TECNOLÓGICO DE LA UNIVERSIDAD DE NAVARRA. NAFARROAKO UNIBERTSITATEKO CAMPUS TEKNOLOGIKOA
Paseo de Manuel Lardizábal 13. 20018 Donostia-San Sebastián. Tel.: 943 219 877 Fax: 943 311 442 www.tecnun.es [email protected]
I.
ANEXO: Análisis resultados MODELO CFD .......................................................................... 1
A.
Gráfico de convergencia ........................................................................................ 1
B.
Elección de elementos para obtener resultados ..................................................... 1
C.
Resultados de distribuciones .............................................................................. 2
II.

C.1. Velocidad= 50km/h...................................................................................... 2

C.2.Velocidad=150km/h...................................................................................... 5

C.3.Velocidad=300km/h...................................................................................... 8
ANEXO: Análisis resultados OARIS ..................................................................................... 13
A.
EB R2x320km/h MA ..............................................................................................13

A.1.Variación de temperatura y tensión .............................................................13

A.2 Análisis del diagrama fatiga-fractura............................................................15
B.
EB R 2x320km/h TA ..............................................................................................20

B.1.Variación de temperatura y tensión .............................................................20

B.2 Análisis del diagrama fatiga-fractura............................................................22
C.
III.
EB R 1x350km/h MA .........................................................................................29

C.1.Variación de temperatura y tensión .............................................................29

C.2 Análisis del diagrama fatiga-fractura ...........................................................31
ANEXO: Análisis resultados CIVITY ..................................................................................... 39
A.
EB R 2x160km/h TA ..............................................................................................39

A.1. Análisis del diagrama fatiga-fractura...........................................................39
IV. ANEXO: Fichero cálculo CFD ................................................................................................ 45
V.
ANEXO: Fichero .inp cálculo térmico................................................................................... 46
VI. ANEXO: Fichero .inp cálculo mecánico ............................................................................... 47
VII. ANEXO: Subrutina del módulo CFD ..................................................................................... 51
VIII. ANEXO: Script de obtención del coeficiente de película ................................................... 53
IX. ANEXO: Script para realizar report modelo mecánico ....................................................... 54
X.
ANEXO: MACRO de Excel para post-proceso ..................................................................... 56
ANEXO: Análisis resultados MODELO CFD
I.
ANEXO: ANÁLISIS RESULTADOS MODELO CFD
En este anexo se muestran los resultados obtenidos del estudio realizado del modelo
CFD en Abaqus.
A. GRÁFICO DE CONVERGENCIA
Con objeto de analizar la convergencia del modelo CFD realizado, se ha simulado el caso
de velocidad del vehículo de 150km/h con un número alto de iteraciones.
De esta
manera se estudia el tiempo necesario de análisis para lograr resultados estacionarios.
Una vez analizado un caso, se ha aplicado este parámetro a las demás simulaciones.
Ilustración I.1: Representación de convergencia del coeficiente de convección del caso de
v=150km/h para distintos radios del disco de freno
B. ELECCIÓN DE ELEMENTOS PARA OBTENER RESULTADOS
Los resultados obtenidos en base al radio del disco, se han extraído de los siguientes
elementos elegidos:
1
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración I.2: Elementos seleccionados para realizar el análisis de los coeficientes de
convección a diferentes radios del disco de freno
C. RESULTADOS DE DISTRIBUCIONES
Se muestran a continuación todos los contornos de coeficiente de convección, flujo de
calor, presión, temperatura, velocidad e y+ para los tres casos de estudio: velocidad de
50km/h, 150km/h y 300km/h.

C.1. Velocidad= 50km/h
Ilustración I.3: Distribución de coeficientes de convección para el caso v=50km/h
2
ANEXO: Análisis resultados MODELO CFD
Ilustración I.4: Distribución de flujo de calor para el caso v=50km/h
Ilustración I.5: Distribución de presión para el caso v=50km/h
3
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración I.6: Distribución de temperatura para el caso v=50km/h
Ilustración I.7: Distribución de velocidad para el caso v=50km/h
4
ANEXO: Análisis resultados MODELO CFD
Ilustración I.8: Distribución de y+ para el caso v=50km/h

C.2.Velocidad=150km/h
Ilustración I.9: Distribución de coeficientes de convección para el caso v=150km/h
5
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración I.10: Distribución de flujo de calor para el caso v=150km/h
Ilustración I.11: Distribución de coeficientes de presión para el caso v=150km/h
6
ANEXO: Análisis resultados MODELO CFD
Ilustración I.12: Distribución de temperatura para el caso v=150km/h
Ilustración I.13: Distribución de velocidad para el caso v=150km/h
7
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración I.14: Distribución de y+ para el caso v=150km/h

C.3.Velocidad=300km/h
Ilustración I.15: Distribución de coeficientes de convección para el caso v=300km/h
8
ANEXO: Análisis resultados MODELO CFD
Ilustración I.16: Distribución de flujo de calor para el caso v=300km/h
Ilustración I.17: Distribución de presión para el caso v=300km/h
9
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración I.18: Distribución de temperatura para el caso v=300km/h
Ilustración I.19: Distribución de velocidad para el caso v=300km/h
10
ANEXO: Análisis resultados MODELO CFD
Ilustración I.20: Distribución de y+ para el caso v=300km/h
D. RESULTADOS DE DISTRIBUCIONES DE COEFICIENTES DE PELÍCULA
Ilustración I.21: Distribución de vectores de coeficiente de película para una velocidad de 50km/h
11
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración I.22: Distribución de vectores de coeficiente de película para una velocidad de
150km/h
Ilustración I.23: Distribución de vectores de coeficiente de película para una velocidad de
300km/h
12
ANEXO: Análisis resultados OARIS
II.
ANEXO: ANÁLISIS RESULTADOS OARIS
En este anexo, se muestran los resultados obtenidos de la aplicación de la metodología
en el disco de freno montado sobre rueda del vehículo Oaris. Se presentan, para cada
secuencia de frenado analizada, la variación de temperatura y la tensión de von Mises en
función del tiempo de distintos nodos, así como los rangos de análisis del diagrama
fractura-fatiga.
Para cada rango analizado mediante la Macro a su vez, se representa el gráfico
temperatura-tensión, los resultados obtenidos de validez y las distribuciones de tensión y
temperatura.
A. EB R2X320KM/H MA

A.1.Variación de temperatura y tensión
600
fric der (N22111)
Temperature [ºC]
500
aguj der (N21975)
400
contacto (N20138)
300
ch (N20967)
200
100
0
0
100
200
300
400
500
600
700
800
aguj tor fric dentro
NT(21109)
aguj tor fric dentro
NT(20584)
EB-R-320MA WMD
t [s]
Ilustración II.1: Temperaturas de nodos (Ilustración II.3) para cada instante de tiempo del análisis
EB R 2x320MA
13
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
800
fric der (N22111)
Mises stress [N/mm2]
700
600
aguj der (N21975)
500
contacto (N20138)
400
300
ch (N20967)
200
aguj tor fric dentro
NT(21109)
100
0
0
100
200
300
400
500
600
700
800
t [s]
aguj tor fric dentro
NT(20584)
Ilustración II.2: Tensiones de von Mises de nodos (Ilustración II.3) para cada instante de tiempo
del análisis EB R 2x320MA
21109
21975
20584
202967
22111
21096
20138
Ilustración II.3: Nodos elegidos para obtener la distribución de temperaturas y tensiones
14
ANEXO: Análisis resultados OARIS

A.2Análisis del diagrama fractura-fatiga
Rango: tensión>850MPa, T>50ºC
Ilustración II.4: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>850MPa y T>50ºC del análisis EB R 2x320MA
Ilustración II.5:Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>850MPa y T>50ºC del análisis EB R 2x320MA
15
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración II.6: Distribución de tensión y temperatura en instante de tiempo 67.78s para el rango
tensión>850MPa y T>50ºC del análisis EB R 2x320MA
Ilustración II.7: Distribución de tensión y temperatura en instante de tiempo 687.8s para el rango
tensión>850MPa y T>50ºC del análisis EB R 2x320MA
16
ANEXO: Análisis resultados OARIS
Rango: tensión>750MPa, T>250ºC
Ilustración II.8: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>750MPa y T>250ºC del análisis EB R 2x320MA
17
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración II.9: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>750MPa y T>250ºC del análisis EB R 2x320MA
Ilustración II.10: Distribución de tensión y temperatura en instante de tiempo 57.78s para el rango
tensión>750MPa y T>250ºC del análisis EB R 2x320MA
18
ANEXO: Análisis resultados OARIS
Ilustración II.11: Distribución de tensión y temperatura en instante de tiempo 687.8s para el rango
tensión>750MPa y T>250ºC del análisis EB R 2x320MA
19
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
B. EB R 2X320KM/H TA

B.1.Variación de temperatura y tensión
500
fric der (N22111)
450
Temperature [ºC]
400
aguj der (N21975)
350
300
contacto (N20138)
250
ch (N20967)
200
150
100
50
0
0
100
200
300
400
500
600
700
800
aguj tor fric dentro
NT(21109)
aguj tor fric dentro
NT(20584)
EB-R-320TA WMD
t [s]
Ilustración II.12: Temperaturas de nodos (Ilustración II.14) para cada instante de tiempo del
análisis EB R 2x320 TA
700
fric der (N22111)
Mises stress [N/mm2]
600
500
aguj der (N21975)
400
contacto (N20138)
300
ch (N20967)
200
100
aguj tor fric dentro
NT(21109)
0
0
100
200
300
400
500
600
700
800
t [s]
aguj tor fric dentro
NT(20584)
Ilustración II.13: Tensiones de von Mises de nodos (Ilustración II.14) para cada instante de
tiempo del análisis EB R 2x320 TA
20
ANEXO: Análisis resultados OARIS
21109
21975
20584
202967
22111
21096
20138
Ilustración II.14: Nodos elegidos para obtener la distribución de temperaturas y tensiones
21
Marta Usabiaga Urrestarazu

Modelización Térmica de Discos de freno ferroviarios
B.2Análisis del diagrama fractura-fatiga
Rango: tensión> 700MPa, T>50ºC
Ilustración II.15: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>700MPa y T>250ºC del análisis EB R 2x320 TA
Ilustración II.16: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>700MPa y T>50ºC del análisis EB R 2x320 TA
22
ANEXO: Análisis resultados OARIS
Ilustración II.17: Distribución de tensión y temperatura en instante de tiempo 71.3s para el rango
tensión>700MPa y T>50ºC del análisis EB R 2x320 TA
lustración II.18: Distribución de tensión y temperatura en instante de tiempo 621.3s para el rango
tensión>700MPa y T>50ºC del análisis EB R 2x320 TA
23
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración II.19: Distribución de tensión y temperatura en instante de tiempo 631.3s para el rango
tensión>700MPa y T>50ºC del análisis EB R 2x320 TA
24
ANEXO: Análisis resultados OARIS
Rango: tensión> 350MPa, T>400ºC
Ilustración II.20: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>350MPa y T>400ºC del análisis EB R 2x320 TA
25
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración II.21: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>350MPa y T>400ºC del análisis EB R 2x320 TA
Ilustración II.22: Distribución de tensión y temperatura en instante de tiempo 621.3s para el rango
tensión>350MPa y T>400ºC del análisis EB R 2x320 TA
26
ANEXO: Análisis resultados OARIS
Rango: tensión> 600MPa, T>220ºC
Ilustración II.23: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>600MPa y T>220ºC del análisis EB R 2x320 TA
Ilustración II.24: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>600MPa y T>220ºC del análisis EB R 2x320 TA
27
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración II.25: Distribución de tensión y temperatura en instante de tiempo 621.3s para el rango
tensión>600MPa y T>220ºC del análisis EB R 2x320 TA
28
ANEXO: Análisis resultados OARIS
C. EB R 1X350KM/H MA

C.1.Variación de temperatura y tensión
600
fric der (N22111)
Temperature [ºC]
500
aguj der (N21975)
400
contacto (N20138)
300
ch (N20967)
200
100
0
0
200
400
600
800
aguj tor fric dentro
NT(21109)
aguj tor fric dentro
NT(20584)
EB-R-350MA WMD
t [s]
Ilustración II.26: Temperaturas de nodos (Ilustración II.28) para cada instante de tiempo del
análisis EB R 1x350 MA
900
fric der (N22111)
Mises stress [N/mm2]
800
700
aguj der (N21975)
600
500
contacto (N20138)
400
ch (N20967)
300
200
aguj tor fric dentro
NT(21109)
100
0
0
200
400
600
800
t [s]
aguj tor fric dentro
NT(20584)
EB-R-350MA WMD
Ilustración II.27: Tensiones de von Mises de nodos(Ilustración II.28) para cada instante de
tiempo del análisis EB R 1x350 MA
29
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
21109
21975
20584
202967
22111
21096
20138
Ilustración II.28: Nodos elegidos para obtener la distribución de temperaturas y tensiones
30
ANEXO: Análisis resultados OARIS

C.2 Análisis del diagrama fractura-fatiga
En la presente simulación, se obtienen valores elevados de tensión-temperatura. Por esta
razón, se presentan además los resultados logrados del análisis detallado (tercera
alternativa de la Macro) de los ficheros de soluciones de Abaqus.
Por tanto, se muestra la variación del diagrama incremento de temperatura- tensión
térmica para los nodos del rango representado y la relación de la tensión térmica y
tensión de fluencia para cada instante del análisis, seguidos de la leyenda de los nodos.
Rango: tensión> 900MPa, T>40ºC
Ilustración II.29: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>900MPa y T>40ºC del análisis EB R 1x350 MA
31
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración II.30: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>900MPa y T>40ºC del análisis EB R 1x350 MA
Ilustración II.31: Distribución de tensión y temperatura en instante de tiempo 54.78s para el rango
tensión>900MPa y T>40ºC del análisis EB R 1x350 MA
32
ANEXO: Análisis resultados OARIS
Ilustración II.32: Distribución de tensión y temperatura en instante de tiempo 64.78s para el rango
tensión>900MPa y T>40ºC del análisis EB R 1x350 MA
Ilustración II.33: Distribución de tensión y temperatura en instante de tiempo 74.78s para el rango
tensión>900MPa y T>40ºC del análisis EB R 1x350 MA
33
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Rango: tensión>790MPa, T>300ºC
Ilustración II.34: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>790MPa y T>300ºC del análisis EB R 1x350 MA
Ilustración II.35: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>790MPa y T>300ºC del análisis EB R 1x350 MA
34
ANEXO: Análisis resultados OARIS
IlustraciónII.36: Distribución de tensión y temperatura en instante de tiempo 54.78s para el rango
tensión>790MPa y T>300ºC del análisis EB R 1x350 MA
35
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración II.37: Análisis detallado 1 para el rango tensión>790MPa y T>300ºC del análisis EB R
1x350MA
36
ANEXO: Análisis resultados OARIS
Ilustración II.38: Análisis detallado 2 para el rango tensión>790MPa y T>300ºC del análisis EB R
1x350MA
37
Marta Usabiaga Urrestarazu
38
Modelización Térmica de Discos de freno ferroviarios
ANEXO: Análisis resultados CIVITY
III.
ANEXO: ANÁLISIS RESULTADOS CIVITY
En este anexo se exponen los resultados obtenidos de la aplicación de la metodología en
el disco de freno del vehículo Civity. Se muestran para cada secuencia analizada los
rangos de análisis del diagrama fractura-fatiga. Para cada rango estudiado mediante la
Macro a su vez, se representa el gráfico temperatura-tensión, los resultados obtenidos de
validez y las distribuciones de tensión y temperatura.
A. EB R 2X160KM/H TA

A.1. Análisis del diagrama fractura-fatiga
Rango: tensión>1100MPa, T>50ºC
Ilustración III.1: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>1100MPa y T>50ºC del análisis EB R 2x160 TA
39
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Ilustración III.2: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>11000MPa y T>50ºC del análisis EB R 2x160 TA
Ilustración III.3: Distribución de tensión y temperatura en instante de tiempo 195.6s para el rango
tensión>1100MPa y T>50ºC del análisis EB R 2x160 TA
40
ANEXO: Análisis resultados CIVITY
Ilustración III.4: Distribución de tensión y temperatura en instante de tiempo 200.6s para el rango
tensión>1100MPa y T>50ºC del análisis EB R 2x160 TA
Ilustración III.5: Distribución de tensión y temperatura en instante de tiempo 205.6s para el rango
tensión>1100MPa y T>50ºC del análisis EB R 2x160 TA
41
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Rango:tensión> 700MPa, T>300ºC
Ilustración III.6: Diagrama incremento de temperatura-tensión térmica para el rango
tensión>700MPa y T>300ºC del análisis EB R 2x160 TA
Ilustración III.7: Resultados de la Macro de temperatura-tensión térmica para el rango
tensión>700MPa y T>300ºC del análisis EB R 2x160 TA
42
ANEXO: Análisis resultados CIVITY
Ilustración III.8: Distribución de tensión y temperatura en instante de tiempo 195.6s para el rango
tensión>700MPa y T>300ºC del análisis EB R 2x160 TA
Ilustración III.9: Distribución de tensión y temperatura en instante de tiempo 205.6s para el rango
tensión>700MPa y T>300ºC del análisis EB R 2x160 TA
43
Marta Usabiaga Urrestarazu
44
Modelización Térmica de Discos de freno ferroviarios
ANEXO: Fichero cálculo CFD
IV.
ANEXO: FICHERO CÁLCULO CFD
*INCLUDE, INPUT=Fichero_geometría_aire(.inp)
*MATERIAL, NAME=Aire
*CONDUCTIVITY, TYPE=ISO
valor_conductividad [kgmm/s3ºK]
*SPECIFIC HEAT, TYPE=CONSTANTPRESSURE
valor_calorespecifico[mm2/s2ºK]
*DENSITY
valor_densidad[kg/mm3]
*VISCOSITY
valor_viscosidad[kg/mm s]
*AMPLITUDE, NAME=w, DEFINITION=TABULAR,TIME=TOTAL
TIME,VALUE=RELATIVE
t0, v0
tfin,vfin
*INITIAL CONDITIONS, TYPE=TEMPERATURE,Element Average
Aire, Temperatura_inial
*INITIAL CONDITIONS, TYPE=DENSITY,Element Average
Aire, densidad_inicial
*INITIAL CONDITIONS, TYPE=TURBNU,Element Average
Aire,viscosidadturbulenta_inicial
*STEP, NAME=Conv
*CFD, INCOMPRESSIBLE NAVIER STOKES, ENERGY EQUATION=TEMPERATURE
∆t inicial, t_analisis,
*TURBULENCE MODEL, TYPE=SPALART ALLMARAS
*MOMENTUM EQUATION SOLVER
*PRESSURE EQUATION SOLVER
*TRANSPORT EQUATION SOLVER
*FLUID BOUNDARY, TYPE=SURFACE
s_arco, P, 0.
s_lat, P, 0.
s_central,VELY,0.
*FLUID BOUNDARY,TYPE=SURFACE,AMPLITUDE=w
s_disco,VELXNU
s_disco,VELZNU
s_disco,VELYNU
*FLUID BOUNDARY,TYPE=SURFACE
s_disco,TEMP,valor_temperatura
s_disco,TURBNU,0.
s_disco,DIST,0.
*OUTPUT, FIELD, VARIABLE=PRESELECT,FREQUENCY=100
*SURFACE OUTPUT,SURFACE=s_disco
HFL,YPLUS
*NODE OUTPUT
TURBNU,VORTICITY
*ELEMENT OUTPUT
TURBNU,VORTICITY
*OUTPUT, HISTORY, FREQUENCY=0
*END STEP
45
ANEXO: Fichero .inp cálculo térmico
V.
ANEXO: FICHERO .INP CÁLCULO TÉRMICO
*INCLUDE,INPUT=Fichero_geometría_freno(.inp)
*PHYSICAL CONSTANTS, ABSOLUTE ZERO=-273.15,STEFANBOLTZMANN=5.669e14
*MATERIAL,NAME=nombre_material
*CONDUCTIVITY,TYPE=ISO
Conductividad [WmmK],Temperatura [ºC]
*SPECIFIC HEAT
Calor específico [J/kgK],Temperatura [ºC]
*DENSITY
Densidad [kg/mm3]
*INITIAL CONDITIONS,TYPE=TEMPERATURE
NALL,temperatura_inicial
*AMPLITUDE,NAME=nombre_tabla_ flujodecalor, DEFINITION=TABULAR,
VALUE=RELATIVE, TIME=TOTAL TIME
tiempo,valor,etc.
**Para cada superficie se genera una tabla de coeficiente de película
*AMPLITUDE,NAME=nombre_tabla_ coeficientesdepelícula, DEFINITION=TABULAR,
VALUE=RELATIVE, TIME=TOTAL TIME
tiempo,valor,etc.
**Para cada superficie se genera una tabla de emisividad
*AMPLITUDE,NAME=nombre_tabla_ coeficientesdeemisividad, DEFINITION=TABULAR,
VALUE=RELATIVE, TIME=TOTAL TIME
tiempo,valor,etc.
*STEP, AMPLITUDE=STEP,INC=2000
Secuencia de frenada
*HEAT TRANSFER,DELTMX=maximo_incrementoT,END=PERIOD
∆t inicial, t_analisis
**Para cada superficie se aplica estas condiciones de convección y radiación
*FILM,FILM AMPLITUDE=nombre_tabla_coeficientesdepelícula
elemento,F_Número de cara del elemento, Temperatura ambiente,
<valor_referencia_coeficientesdepelícula>
*RADIATE,AMPLITUDE=nombre_tabla_coeficientesdeemisividad
elemento,R_Número de cara del elemento, Temperatura ambiente,
<valor_referencia_coeficientesdeemisividad>
*DFLUX,AMPLITUDE=nombre_tabla_flujodecalor
elemento,S_Número de cara del elemento,<valor_referenciaflujodecalor>
*OUTPUT,FIELD,FREQUENCY=1
*NODE OUTPUT
NT11 (variable de temperatura de nodo)
*END STEP
**********************
*STEP,AMPLITUDE=STEP,INC=2000
Enfriamiento restante
*HEAT TRANSFER,DELTMX=maximo_incrementoT,END=PERIOD
∆t inicial, t_enfriamiento
*END STEP
46
ANEXO: Fichero .inp cálculo mecánico
VI.
ANEXO: FICHERO .INP CÁLCULO MECÁNICO
*INCLUDE,INPUT=Fichero_geometría_freno(.inp)
*MATERIAL,NAME=nombre_material
*DENSITY
Densidad [kg/mm3]
*ELASTIC
E, v,T
*PLASTIC, HARDENING=KINEMATIC
𝜎𝑟𝑒𝑎𝑙 , 𝜀𝑝𝑙á𝑠𝑡𝑖𝑐𝑜
*EXPANSION,TYPE=ISO, ZERO=20.0
Coeficiente_expansion,T
*CLEARANCE,MASTER=
superficie_eje,SLAVE=Superficie_rueda,VALUE=valor_distancia
*INITIAL CONDITIONS,TYPE=TEMPERATURE
NALL, temperatura_inicial
*BOUNDARY
Nodo_ligadura, gradodelibertad_fijo
*PRE-TENSION SECTION,SURFACE=superficie_seccion,NODE=nodo_precarga
*STEP
1. Interferencia
*STATIC
*CONTACT INTERFERENCE,SHRINK,TYPE=CONTACT PAIR
Superficie_rueda, superficie_eje
*OUTPUT,FIELD,FREQ=100
*NODE OUTPUT
U,
*ELEMENT OUTPUT,POSITION=NODES
S,
*END STEP
**********************
*STEP
2. Friccion
*STATIC
*CHANGE FRICTION,INTERACTION=nombre_interacción
*FRICTION
Valor_fricción
*END STEP
**********************
*STEP
3. Cambio ligaduras
*STATIC
*BOUNDARY,OP=NEW
Nodo_ligadura, gradodelibertad_fijo
*END STEP
**********************
*STEP
4. Precarga tornillo
*STATIC
*CLOAD,OP=NEW
47
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
nodo_precarga, 1, valor_precarga
*END STEP
**********************
*STEP
5. Precarga_2
*STATIC
*BOUNDARY, FIXED
nodo_precarga, 1, 1, 1
*OUTPUT, FIELD
*NODE OUTPUT
U,
*ELEMENT OUTPUT, POSITION=NODES
S,
*END STEP
**********************
*STEP, INC=1000
6. Secuencia de frenado
*STATIC
∆t inicial, t_analisis
*TEMPERATURE, FILE=nombre_archivo_odb,BSTEP=1,ESTEP=1,MIDSIDE
** Nombre del fichero sin la extension .fil
*OUTPUT, FIELD, FREQ=1
*NODE OUTPUT
U,
*ELEMENT OUTPUT, POSITION=NODES
S,
**
*END STEP
**********************
*STEP,INC=1000
7. Enfriamiento
*STATIC
∆t inicial, t_enfriamiento
*TEMPERATURE, FILE=Oaris_termicoR_1x350TA,BSTEP=2,ESTEP=2,MIDSIDE
** Nombre del fichero sin la extension .fil
*OUTPUT, FIELD, FREQ=1
*NODE OUTPUT
U,
*ELEMENT OUTPUT, POSITION=NODES
S,
*END STEP
**********************
*STEP, INC=1000
8. Enfriamiento directo a temperatura ambiente
*STATIC
, <t_subi>,
** Tiempo para que resulte un total de 50000 seg
*TEMPERATURE
NALL, temperatura_ambiente
*OUTPUT, FIELD, FREQ=1
*NODE OUTPUT
48
ANEXO: Fichero .inp cálculo mecánico
U,
*ELEMENT OUTPUT, POSITION=NODES
S,
*ELEMENT OUTPUT
PEEQ,
*END STEP
49
Marta Usabiaga Urrestarazu
50
Modelización Térmica de Discos de freno ferroviarios
ANEXO: Subrutina del módulo CFD
VII.
ANEXO: SUBRUTINA DEL MÓDULO CFD
#include "SMACfdUserSubroutines.h"
#include "aba_for_c.h"
#include <math.h>
voidSMACfdUserVelocityBC
(int nfacets, int direction, const int* labels,
const int* sides, const int* instances, char** instanceNames,
const double* xc, const double* yc, const double* zc,
double amp, double totalTime, double stepTime, const char* surfaceName, double*
bcvals)
{
int i;
double vel,r_rueda,w;
double* r;
double* phi;
r=new double[nfacets];
phi=new double[nfacets];
r_rueda=valor_radio(mm);
vel=amp*(1000/3.6); //mm/s
w=vel/r_rueda; //rad/s
for (i = 0; i<nfacets; i++)
{
r[i]=pow((pow(xc[i],2.0)+pow(zc[i],2.0)),0.5);
if (zc[i]<0)
{
if (xc[i]<0)
{
phi[i]=atan(zc[i]/xc[i])+3.141592654;
}
else
{
phi[i]=6.283185307-atan(-zc[i]/xc[i]);
}
}
else
{
if (xc[i]<0)
{
phi[i]=3.141592654-atan(-zc[i]/xc[i]);
}
else
{
phi[i]=atan(zc[i]/xc[i]);
}
}
if (direction == 1)
{
bcvals[i]=-r[i]*w*sin(phi[i]);
51
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
}
if (direction == 3)
{
bcvals[i]=r[i]*w*cos(phi[i]);
}
if (direction == 2)
{
bcvals[i] = 0;
}
}
}
52
ANEXO: Script de obtención del coeficiente de película
VIII. ANEXO: SCRIPT DE OBTENCIÓN DEL COEFICIENTE
DE PELÍCULA
from abaqus import *
from odbAccess import *
from abaqusConstants import *
from odbMaterial import *
from odbSection import *
from math import*
import visualization
odb = openOdb(path=‘Fichero_resultados_CFD.odb’)
#Abrir el último y primer frame del Step primero
lastFrame = odb.steps[‘nombre_step’'].frames[-1]
firstFrame=odb.steps[‘nombre_step’'].frames[1]
#Leer la variable de salida de HFL y TEMP
heatransfer = lastFrame.fieldOutputs['HFL']
temp = firstFrame.fieldOutputs['TEMP']
#Cálculo del coeficiente de convección
hcoef=heatransfer/(300.-40.)
#Guardar valores de hcoef en el fichero de resultados
newStep = odb.Step(name='Nuevo',
description='Nuevosresultados', domain=TIME, timePeriod=1.0)
newFrame = newStep.Frame(frameId=0, frameValue=0.0,
description='Session Frame for odb1')
newField = newFrame.FieldOutput(name='Hcoef',
description='convection coefficient',type=VECTOR)
newField.addData(field=hcoef)
odb.save()
odb.close()
53
Marta Usabiaga Urrestarazu
IX.
Modelización Térmica de Discos de freno ferroviarios
ANEXO: SCRIPT PARA REALIZAR REPORT
MODELO MECÁNICO
from abaqus import *
from odbAccess import *
from abaqusConstants import *
from odbMaterial import *
from odbSection import *
from math import*
from viewerModules import *
import visualization
#Abrir fichero que contiene los resultados
o1= openOdb(path= ‘Fichero_resultados_mecanico.odb’, readOnly=False)
#Número máximo de nodos
n_max=1000
#Crear nodeset de los nodos que se quiere extraer información
nodeset='ndiscoA'
#Abrir viewport y activar step de interes
session.viewports['Viewport: 1'].setValues(displayedObject=o1)
odbName=session.viewports[session.currentViewportName].odbDisplay.name
session.odbData[odbName].setValues(activeFrames=(('Step-6', ('0:31', '67:86',
)), ))
#Aplicar porcentaje de averaging threshold
session.viewports[session.currentViewportName].odbDisplay.basicOptions.setValues(
averageElementOutput=True)
session.viewports[session.currentViewportName].odbDisplay.basicOptions.setValues(ave
ragingThreshold=100)
#Elegir las variables para XY
odb = session.odbs[‘Fichero_resultados_mecanico.odb’]
session.xyDataListFromField(odb=odb, outputPosition=NODAL, variable=(('NT11',
NODAL), ('S', ELEMENT_NODAL, ((INVARIANT, 'Mises'), )), ), nodeSets=(
'PART-1-1.ndiscoA', ))
#Calcular número de nodos del nodeset
n_nodos=len(o1.rootAssembly.instances['PART-1-1'].nodeSets[nodeset].nodes)
#Definicion de variables
x_result=[]
a=1
cont=1
#Modificar precisión datos de salida
session.xyReportOptions.setValues(numDigits=4,numberFormat=SCIENTIFIC)
#Crear XY report
54
ANEXO: Script para realizar report modelo mecánico
ifn_nodos<=n_max:
for n in o1.rootAssembly.instances['PART-1-1'].nodeSets[nodeset].nodes:
x_result.append(session.xyDataObjects['NT11 PI: PART-1-1 N:
'+str(n.label)])
x_result.append(session.xyDataObjects['S:Mises (Avg: 100%) PI: PART-11 N: '+str(n.label)])
session.writeXYReport(fileName='Report_0.rpt',xyData=x_result)
x_result=[]
elifn_nodos>n_max:
forna in o1.rootAssembly.instances['PART-1-1'].nodeSets[nodeset].nodes:
ifcont%n_max!=0:
x_result.append(session.xyDataObjects['NT11 PI: PART-1-1 N:
'+str(na.label)])
x_result.append(session.xyDataObjects['S:Mises (Avg: 100%) PI:
PART-1-1 N: '+str(na.label)])
ifcont==n_nodos:
a=n_nodos//n_max
session.xyReportOptions.setValues(numDigits=4,numberFormat=SCIENTIFIC)
session.writeXYReport(fileName=
('Report_'+str(a)+'.rpt'),xyData=x_result)
x_result=[]
else:
a=cont/n_max
session.writeXYReport(fileName=
('Report_'+str(a)+'.rpt'),xyData=x_result)
x_result=[]
cont=cont+1
#o1.save()
o1.close()
55
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
X. ANEXO: MACRO DE EXCEL PARA POST-PROCESO
A. OPCIÓN 1: VALIDACIÓN GENERAL
Sub Report_General(n_hojas As Integer)
Dim longitud As Integer, Columnas As Integer, n_graph As Integer, p As String, b As
Integer, cnt As Long, cnt_end As Long
'n_hojas = Sheets("Material").Cells(3, 6).Value
b = Sheets.Count
i=1
cnt = 3
Do While (i< b)
p = Sheets(i).Name
If (p = "Material") Or (p = "Hoja3") Then
Else
Sheets(i).Delete
b=b-1
i=i-1
End If
i=i+1
Loop
Sheets.Add Before:=Sheets("Material")
ActiveSheet.Name = "Report_validation"
Sheets("Report_validation").Cells(2, 2).Value = "NT11 - 40"
Sheets("Report_validation").Cells(2, 3).Value = "Mises*1.2"
Sheets("Report_validation").Cells(2, 4).Value = "t"
Sheets("Report_validation").Cells(2, 5).Value = "n_nodo"
Sheets("Report_validation").Cells(2, 6).Value = "X500"
Sheets("Report_validation").Cells(2, 7).Value = "Y500"
Sheets("Report_validation").Cells(2, 8).Value = "dist_500"
Sheets("Report_validation").Cells(2, 9).Value = "X50000"
Sheets("Report_validation").Cells(2, 10).Value = "Y50000"
Sheets("Report_validation").Cells(2, 11).Value = "dist_50000"
Sheets("Report_validation").Cells(2, 12).Value = "¿Admisible?"
For n = 1 Ton_hojas
Sheets.Add After:=Sheets("Material")
ActiveSheet.Name = "Report" + Str(n)
'ImportTextFile
ImportTextFileWithout
Columnas = (Sheets("Report" + Str(n)).Range("B5").End(xlToRight).Column - 2) / 2
longitud = Sheets("Report" + Str(n)).Range("B7").End(xlDown).Row
ReDimdatos_serie_x(Columnas)
ReDimdatos_serie_y(Columnas)
ReDimnombre_serie(Columnas)
Sheets("Report" + Str(n)).Copy After:=Sheets("Report" + Str(n))
ActiveSheet.Name = "Report" + Str(n) + "_copy"
For k = 1 ToColumnas
56
ANEXO: MACRO de Excel para post-proceso
For Each Celda In Sheets("Report" + Str(n) + "_copy").Range(Sheets("Report" +
Str(n) + "_copy").Cells(7, 2 * k + 1), Sheets("Report" + Str(n) + "_copy").Cells(longitud, 2 *
k + 1))
Celda.Value = Celda.Value - 40
Next Celda
For Each Celda2 In Sheets("Report" + Str(n) + "_copy").Range(Sheets("Report" +
Str(n) + "_copy").Cells(7, 2 * k + 2), Sheets("Report" + Str(n) + "_copy").Cells(longitud, 2 *
k + 2))
Celda2.Value = Celda2.Value * 1.2
Next Celda2
'Copiartemperaturas
Sheets("Report_validation").Range(Sheets("Report_validation").Cells(cnt, 2),
Sheets("Report_validation").Cells(cnt + longitud - 7, 2)).Value = Sheets("Report" + Str(n) +
"_copy").Range(Sheets("Report" + Str(n) + "_copy").Cells(7, 2 * k + 1), Sheets("Report" +
Str(n) + "_copy").Cells(longitud, 2 * k + 1)).Value
'Copiartensiones
Sheets("Report_validation").Range(Sheets("Report_validation").Cells(cnt, 3),
Sheets("Report_validation").Cells(cnt + longitud - 7, 3)).Value = Sheets("Report" + Str(n) +
"_copy").Range(Sheets("Report" + Str(n) + "_copy").Cells(7, 2 * k + 2), Sheets("Report" +
Str(n) + "_copy").Cells(longitud, 2 * k + 2)).Value
'Copiartiempo
Sheets("Report_validation").Range(Sheets("Report_validation").Cells(cnt, 4),
Sheets("Report_validation").Cells(cnt + longitud - 7, 4)).Value = Sheets("Report" + Str(n) +
"_copy").Range(Sheets("Report" + Str(n) + "_copy").Cells(7, 2), Sheets("Report" + Str(n)
+ "_copy").Cells(longitud, 2)).Value
'Copiarnodo
Sheets("Report_validation").Range(Sheets("Report_validation").Cells(cnt, 5),
Sheets("Report_validation").Cells(cnt + longitud - 7, 5)).Value = Sheets("Report" + Str(n) +
"_copy").Cells(5, 2 * k + 1).Value
cnt = 1 + Sheets("Report_validation").Range("B2").End(xlDown).Row
Next k
Next n
Dim grafico As Chart
Sheets("Hoja3").Activate
Set grafico = Charts.Add
With grafico
.Name = "GraficoValidación"
.ChartType = xlXYScatter
End With
'Nombre eje x
Withgrafico.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Text = "Thermal Stress [kN/mm2]"
End With
'Nombre eje y
With grafico.Axes(xlValue)
.HasTitle = True
57
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
.AxisTitle.Text = "Temperature increase [K]"
End With
cnt_end = 1 + Sheets("Report_validation").Range("B2").End(xlDown).Row
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues =
Sheets("Report_validation").Range(Sheets("Report_validation").Cells(3, 3),
Sheets("Report_validation").Cells(cnt_end, 3))
ActiveChart.SeriesCollection(1).Values =
Sheets("Report_validation").Range(Sheets("Report_validation").Cells(3, 2),
Sheets("Report_validation").Cells(cnt_end, 2))
ActiveChart.SeriesCollection(1).Name = "Report_Validation"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).ChartType = xlXYScatterLines
ActiveChart.SeriesCollection(2).XValues =
Sheets("Material").Range(Sheets("Material").Cells(11, 9), Sheets("Material").Cells(14, 9))
ActiveChart.SeriesCollection(2).Values =
Sheets("Material").Range(Sheets("Material").Cells(11, 11), Sheets("Material").Cells(14,
11))
ActiveChart.SeriesCollection(2).Name = "Ciclo=500"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).ChartType = xlXYScatterLines
ActiveChart.SeriesCollection(3).Name = "Ciclo=50000"
ActiveChart.SeriesCollection(3).XValues =
Sheets("Material").Range(Sheets("Material").Cells(4, 9), Sheets("Material").Cells(12, 9))
ActiveChart.SeriesCollection(3).Values =
Sheets("Material").Range(Sheets("Material").Cells(4, 10), Sheets("Material").Cells(12, 10))
End Sub
B. OPCIÓN 2: ANÁLISIS VALIDACIÓN GENERAL
Sub Analisis_Report_General(NTref As Double, MIref As Double)
Dim b As Integer, exi As Boolean
b = Sheets.Count
exi = False
For i = 1 To b
p = Sheets(i).Name
If (p = "Report_validation") Then
exi = True
End If
Next i
If exi = True Then
cant = Sheets("Report_validation").Range("B2").End(xlDown).Row
Sheets("Report_validation").Cells(2, 6).Value = "X500"
Sheets("Report_validation").Cells(2, 7).Value = "Y500"
Sheets("Report_validation").Cells(2, 8).Value = "dist_500"
Sheets("Report_validation").Cells(2, 9).Value = "X50000"
Sheets("Report_validation").Cells(2, 10).Value = "Y50000"
Sheets("Report_validation").Cells(2, 11).Value = "dist_50000"
Sheets("Report_validation").Cells(2, 12).Value = "¿Admisible?"
58
ANEXO: MACRO de Excel para post-proceso
For j = 3 To cant
If (NTref<Sheets("Report_validation").Cells(j, 2).Value) And (MIref<
Sheets("Report_validation").Cells(j, 3).Value) Then
Px = Sheets("Report_validation").Cells(j, 3).Address
Py = Sheets("Report_validation").Cells(j, 2).Address
x1 = Sheets("Report_validation").Cells(j, 6).Address
y1 = Sheets("Report_validation").Cells(j, 7).Address
Sheets("Report_validation").Cells(j, 7).FormulaLocal = "=-0.00000225459*" & x1 &
"^3+0.00179304*" & x1 & "^2-0.328822*" & x1 & "+675.36 "
Sheets("Report_validation").Cells(j, 8).FormulaLocal = "=RAIZ((" & x1 & "-" &Px& ")^2+("
& y1 & "-" &Py& ")^2)"
Sheets("Report_validation").Activate
Call Distancia(Sheets("Report_validation").Range("F" & j).Address,
Sheets("Report_validation").Range("G" & j).Address,
Sheets("Report_validation").Range("H" & j).Address)
distancia500 = Sheets("Report_validation").Cells(j, 8).Value
x2 = Sheets("Report_validation").Cells(j, 9).Address
y2 = Sheets("Report_validation").Cells(j, 10).Address
Sheets("Report_validation").Cells(j, 10).FormulaLocal = "=-0.00000243503*" & x2 &
"^3+0.0013136*" & x2 & "^2-0.41823*" & x2 & "+508.6868"
Sheets("Report_validation").Cells(j, 11).FormulaLocal = "=RAIZ((" & x2 & "-" &Px& ")^2+("
& y2 & "-" &Py& ")^2)"
Sheets("Report_validation").Activate
Call Distancia(Sheets("Report_validation").Range("I" & j).Address,
Sheets("Report_validation").Range("J" & j).Address,
Sheets("Report_validation").Range("K" & j).Address)
distancia50000 = Sheets("Report_validation").Cells(j, 11).Value
If Sheets("Report_validation").Cells(j, 3).Value <
Sheets("Report_validation").Cells(j, 6).Value Then
If Sheets("Report_validation").Cells(j, 2).Value <
Sheets("Report_validation").Cells(j, 7).Value Then
Sheets("Report_validation").Cells(j, 12).Value = "SI"
Else
Sheets("Report_validation").Cells(j, 12).Value = "NO"
End If
Else
If Sheets("Report_validation").Cells(j, 2).Value <
Sheets("Report_validation").Cells(j, 7).Value Then
Sheets("Report_validation").Cells(j, 12).Value = "SI"
Else
Sheets("Report_validation").Cells(j, 12).Value = "NO"
EndIf
EndIf
'Aplicar etiquetas de datos al grafico
Charts("GraficoValidación").Activate
59
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
pa = " N= " + Str(Sheets("Report_validation").Cells(j, 5).Value) + " t= " +
Str(Sheets("Report_validation").Cells(j, 4).Value)
ActiveChart.SeriesCollection(1).Points(j).HasDataLabel = True
ActiveChart.SeriesCollection(1).Points(j).DataLabel.Text = pa
End If
Next j
End If
End Sub
C. OPCIÓN 3: ANÁLISIS DETALLADO REPORT
Sub Analisis_Detallado_Report(nreport As Integer, stress As String)
Dim longitud As Integer, Columnas As Integer, p As Double, nodos As Integer, frames
As Integer, k As Integer, b As Integer, pa As String
Dim datos_serie_x() As String
Dim datos_serie_y() As String
Dim nombre_serie() As String
Dim datos_serie_x2() As String
Dim datos_serie_y2() As String
Dim nombre_serie2() As String
b = Sheets.Count
i=1
Do While (i< b)
pa = Sheets(i).Name
If (pa = "Material") Or (pa = "Hoja3") Or (pa = "GraficoValidación") Then
Else
Sheets(i).Delete
b=b-1
i=i-1
End If
i=i+1
Loop
For n = 1 Tonreport
Sheets.Add After:=Sheets("Material")
ActiveSheet.Name = "Report" + Str(n)
'ImportTextFile
ImportTextFileWithout
Columnas = (Sheets("Report" + Str(n)).Range("B5").End(xlToRight).Column - 2) / 2
longitud = Sheets("Report" + Str(n)).Range("B7").End(xlDown).Row
ReDimdatos_serie_x(Columnas)
ReDimdatos_serie_y(Columnas)
ReDimnombre_serie(Columnas)
Sheets("Report" + Str(n)).Copy After:=Sheets("Report" + Str(n))
ActiveSheet.Name = "Report" + Str(n) + "_copy"
If stress = "SI" Then
Sheets.Add After:=Sheets("Report" + Str(n) + "_copy")
ActiveSheet.Name = "Report" + Str(n) + "_Stress_ref"
60
ANEXO: MACRO de Excel para post-proceso
ReDim datos_serie_x2(Columnas)
ReDim datos_serie_y2(Columnas)
ReDim nombre_serie2(Columnas)
EndIf
For k = 1 ToColumnas
For Each Celda In Sheets("Report" + Str(n) + "_copy").Range(Sheets("Report" +
Str(n) + "_copy").Cells(7, 2 * k + 1), Sheets("Report" + Str(n) + "_copy").Cells(longitud, 2 *
k + 1))
Celda.Value = Celda.Value - 40
Next Celda
For Each Celda2 In Sheets("Report" + Str(n) + "_copy").Range(Sheets("Report" +
Str(n) + "_copy").Cells(7, 2 * k + 2), Sheets("Report" + Str(n) + "_copy").Cells(longitud, 2 *
k + 2))
Celda2.Value = Celda2.Value * 1.2
Next Celda2
nombre_serie(k - 1) = Sheets("Report" + Str(n) + "_copy").Cells(5, 2 * k + 1)
datos_serie_x(k - 1) = Sheets("Report" + Str(n) + "_copy").Range(Sheets("Report" +
Str(n) + "_copy").Cells(7, 2 * k + 2), Sheets("Report" + Str(n) + "_copy").Cells(longitud, 2 *
k + 2)).Address
datos_serie_y(k - 1) = Sheets("Report" + Str(n) + "_copy").Range(Sheets("Report" +
Str(n) + "_copy").Cells(7, 2 * k + 1), Sheets("Report" + Str(n) + "_copy").Cells(longitud, 2 *
k + 1)).Address
If stress = "SI" Then
'Copiamos los nombres de nodos
Sheets("Report" + Str(n) + "_Stress_ref").Range(Sheets("Report" + Str(n) +
"_Stress_ref").Cells(1, 1), Sheets("Report" + Str(n) + "_Stress_ref").Cells(5, Columnas * 2
+ 1)).Value = Sheets("Report" + Str(n)).Range(Sheets("Report" + Str(n)).Cells(5, 2),
Sheets("Report" + Str(n)).Cells(5, Columnas * 2 + 2)).Value
'Copiamos los instantes de t
Sheets("Report" + Str(n) + "_Stress_ref").Range(Sheets("Report" + Str(n) +
"_Stress_ref").Cells(2, 1), Sheets("Report" + Str(n) + "_Stress_ref").Cells(longitud + 6,
1)).Value = Sheets("Report" + Str(n)).Range(Sheets("Report" + Str(n)).Cells(7, 2),
Sheets("Report" + Str(n)).Cells(longitud, 2)).Value
datos_serie_x2(k - 1) = Sheets("Report" + Str(n) +
"_Stress_ref").Range(Sheets("Report" + Str(n) + "_Stress_ref").Cells(6, 1),
Sheets("Report" + Str(n) + "_Stress_ref").Cells(longitud + 6, 1)).Address
nombre_serie2(k - 1) = Sheets("Report" + Str(n) + "_Stress_ref").Cells(4, 2 * k)
datos_serie_y2(k - 1) = Sheets("Report" + Str(n) +
"_Stress_ref").Range(Sheets("Report" + Str(n) + "_Stress_ref").Cells(6, 2 * k + 1),
Sheets("Report" + Str(n) + "_Stress_ref").Cells(longitud + 6, 2 * k + 1)).Address
End If
Next k
If stress = "SI" Then
For f = 1 ToColumnas
For c = 1 Tolongitud
p = interpol(Sheets("Report" + Str(n)).Cells(c + 5, 2 * f).Value,
Sheets("Material").Range("B3", "C10"))
61
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
Sheets("Report" + Str(n) + "_Stress_ref").Cells(c + 5, 2 * f + 1).Value = Sheets("Report" +
Str(n) + "_copy").Cells(c + 5, 2 * f + 1) / p
Next c
Next f
End If
n_graph = 1
For k = 1 ToColumnas
If k = 1 Then
Dim grafico As Chart
Sheets("Hoja3").Activate
Set grafico = Charts.Add
With grafico
.Name = "Grafico" + Str(n) + "_" + Str(k)
.ChartType = xlXYScatterLinesNoMarkers
End With
'grafico.HasTitle = True
'Nombre eje x
With grafico.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Text = "Thermal Stress [kN/mm2]"
End With
'Nombre eje y
With grafico.Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "Temperature increase [K]"
End With
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k).XValues = Sheets("Report" + Str(n) +
"_copy").Range(datos_serie_x(k - 1))
ActiveChart.SeriesCollection(k).Values = Sheets("Report" + Str(n) +
"_copy").Range(datos_serie_y(k - 1))
ActiveChart.SeriesCollection(k).Name = nombre_serie(k - 1)
ElseIf k Mod 220 = 0 Then
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).XValues = Sheets("Report" + Str(n) +
"_copy").Range(datos_serie_x(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Values = Sheets("Report" + Str(n) +
"_copy").Range(datos_serie_y(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Name = nombre_serie(k - 1)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).Name = "Ciclo=50000"
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).XValues =
Sheets("Material").Range(Sheets("Material").Cells(4, 10), Sheets("Material").Cells(12, 10))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).Values =
Sheets("Material").Range(Sheets("Material").Cells(4, 9), Sheets("Material").Cells(12, 9))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).Interior.Color = RGB(255, 255,
255)
ActiveChart.SeriesCollection.NewSeries
62
ANEXO: MACRO de Excel para post-proceso
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).XValues =
Sheets("Material").Range(Sheets("Material").Cells(11, 11), Sheets("Material").Cells(14,
11))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).Values =
Sheets("Material").Range(Sheets("Material").Cells(11, 9), Sheets("Material").Cells(14, 9))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).Name = "Ciclo=500"
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).Interior.Color = RGB(255, 255,
255)
n_graph = (k / 220) + 1
Sheets("Hoja3").Activate
Set grafico = Charts.Add
With grafico
.Name = "Grafico" + Str(n) + "_" + Str(n_graph)
.ChartType = xlXYScatterLinesNoMarkers
End With
'grafico.HasTitle = True
'Nombre eje x
Withgrafico.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Text = "Thermal Stress [kN/mm2]"
End With
'Nombre eje y
With grafico.Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "Temperature increase [K]"
End With
ElseIf k = Columnas Then
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).XValues = Sheets("Report" +
Str(n) + "_copy").Range(datos_serie_x(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Values = Sheets("Report" +
Str(n) + "_copy").Range(datos_serie_y(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Name = nombre_serie(k - 1)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).Name = "Ciclo=50000"
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).XValues =
Sheets("Material").Range(Sheets("Material").Cells(4, 10), Sheets("Material").Cells(12, 10))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).Values =
Sheets("Material").Range(Sheets("Material").Cells(4, 9),
Sheets("Material").Cells(12, 9))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 1).Interior.Color = RGB(255, 255,
255)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).XValues =
Sheets("Material").Range(Sheets("Material").Cells(11, 11), Sheets("Material").Cells(14,
11))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).Values =
Sheets("Material").Range(Sheets("Material").Cells(11, 9), Sheets("Material").Cells(14, 9))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).Name = "Ciclo=500"
63
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1) + 2).Interior.Color = RGB(255, 255,
255)
Else
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).XValues = Sheets("Report" + Str(n) +
"_copy").Range(datos_serie_x(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Values = Sheets("Report" + Str(n) +
"_copy").Range(datos_serie_y(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Name = nombre_serie(k - 1)
End If
Next k
n_graph = 1
If stress = "SI" Then
For k = 1 ToColumnas
If k = 1 Then
Dim grafico2 As Chart
Sheets("Hoja3").Activate
Set grafico2 = Charts.Add
With grafico2
.Name = "Grafico_stress" + Str(n) + "_" + Str(k)
.ChartType = xlXYScatterLinesNoMarkers
End With
'grafico.HasTitle = True
'Nombre eje x
Withgrafico2.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Text = "t [s]"
End With
'Nombre eje y
With grafico2.Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "Thermal Stress/Yield"
End With
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k).XValues = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_x2(k - 1))
ActiveChart.SeriesCollection(k).Values = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_y2(k - 1))
ActiveChart.SeriesCollection(k).Name = nombre_serie2(k - 1)
ElseIf k Mod 220 = 0 Then
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).XValues = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_x2(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Values = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_y2(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Name = nombre_serie2(k - 1)
n_graph = (k / 220) + 1
Sheets("Hoja3").Activate
Set grafico2 = Charts.Add
64
ANEXO: MACRO de Excel para post-proceso
With grafico2
.Name = "Grafico_stress" + Str(n) + "_" + Str(n_graph)
.ChartType = xlXYScatterLinesNoMarkers
End With
'grafico.HasTitle = True
'Nombre eje x
Withgrafico2.Axes(xlCategory)
.HasTitle = True
.AxisTitle.Text = "t [s]"
End With
'Nombre eje y
With grafico2.Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "Thermal Stress/Yield"
End With
ElseIf k = Columnas Then
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).XValues = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_x2(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Values = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_y2(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Name = nombre_serie2(k - 1)
Else
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).XValues = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_x2(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Values = Sheets("Report" + Str(n) +
"_Stress_ref").Range(datos_serie_y2(k - 1))
ActiveChart.SeriesCollection(k - 220 * (n_graph - 1)).Name = nombre_serie2(k - 1)
End If
Next k
End If
Next n
End Sub
D. FUNCIÓN 1: IMPORTAR FICHERO DE TEXTO A EXCEL
Sub ImportTextFileWithout()
Dim MiArchivoAs Variant
Dim DestBookAs Workbook, SourceBook As Workbook
Dim DestCellAs Range
Dim RetValAs Boolean
'Apagar actualización del screen
Application.ScreenUpdating = False
65
Marta Usabiaga Urrestarazu
Modelización Térmica de Discos de freno ferroviarios
'Define los objetos de variable al libro y la celda activa
Set DestBook = ActiveWorkbook
Set DestCell = ActiveCell
'Pregunta al usuario el nombre del archivo que desea abrir
MiArchivo = Application.GetOpenFilename
'Comprueba el botón Cancelar
If MiArchivo = False Then Exit Sub
'Abre el archivo de texto con el método
Workbooks.OpenText Filename:=MiArchivo, Origin:=xlWindows, StartRow:=2,
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True,
Space:=True, FieldInfo:=Array(1, 1)
Set SourceBook = ActiveWorkbook
'Copiar el contenido de toda la hoja que contiene el fichero
Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy
'Activar el workbook de destino y realizar un pegado especial de los valores desde el
‘fichero de texto
DestBook.Activate
DestCell.PasteSpecial Paste:=xlValues
'Cells.Replace What:=".", Replacement:=","
'Cerrar el libro que contiene el fichero de texto
SourceBook.Close False
End Sub
E. FUNCIÓN 2: INTERPOLAR VALORES
Function interpol(x As Double, xy As Range) As Double
Dim n As Integer, c As Integer
n = xy(1, 1).End(xlDown).Row
c = xy(1, 1).End(xlToRight).Column
n=n-2
c=c-3
For k = 1 To n
If x >= xy(k, 1) And k < n And x <xy(k + 1, 1) Then
interpol = xy(k, 2).Value + (xy(k + 1, 2).Value - xy(k, 2).Value) * (x - xy(k, 1).Value) / (xy(k
+ 1, 1).Value - xy(k, 1).Value)
ElseIf x >= xy(k, 1) And k = n Then
interpol = xy(k - 1, 2).Value + (xy(k, 2).Value - xy(k - 1, 2).Value) * (x - xy(k - 1, 1).Value) /
(xy(k, 1).Value - xy(k - 1, 1).Value)
66
ANEXO: MACRO de Excel para post-proceso
End If
Next k
End Function
F. FUNCIÓN 3: CALCULAR DISTANCIA MÍNIMA CON SOLVER
Sub Distancia(xa As String, ya As String, di As String)
SolverReset
‘Calcular distancia mínima a curva N=500
SolverOKSetCell:=di, MaxMinVal:=2, ByChange:=xa
SolverAddCellRef:=xa, Relation:=3, FormulaText:="0.00"
SolverAddCellRef:=ya, Relation:=3, FormulaText:="0.00"
‘Calcular sin asistente
SolverSolve (True)
‘Mantener resultados finales
SolverFinishKeepFinal:=1
End Sub
67
Descargar