Manual de la práctica en el Centro de Cálculo

Anuncio
Astronáutica y Aeronaves Diversas (Helicópteros)
Ingenieros Aeronáuticos
Práctica 1
Nº DNI
Ecuela Superior de
Ingenieros
1er Apellido
Universidad de Sevilla
Nombre
2o Apellido
En la presente práctica se realiza la aplicación numérica de ciertas teorías (TCM, TCMEP y TCMEP con
pérdidas de punta de pala) correspondientes a la aerodinámica de alas rotatorias en vuelo axial que, debido a
su complejidad de cálculo, no se emplean en los problemas propuestos en clase. De esta forma, se aanzan los
conocimientos adquiridos en las clases teóricas.
1. Deniciones
Se denen los siguientes conceptos [1]:
Subfunción
Tradicionalmente, MATLAB obligaba a crear un chero
*.m
diferente por cada función. El
nombre de la función debía coincidir con el nombre del chero. A partir de la versión 5.0 se introdujeron las subfunciones, que son funciones adicionales denidas en un mismo chero
*.m,
con nombres diferentes del nombre
del chero (y del nombre de la función principal). Las subfunciones sólo pueden ser llamadas por las funciones
contenidas en ese chero, resultando invisibles para otras funciones externas. A continuación se muestra un
ejemplo contenido en un chero llamado
function y=mi_fun(a,b)
y=subfun1(a,b);
mi_fun.m:
function x=subfun1(y,z)
x=subfun2(y,z);
function x=subfun2(y,z)
x=y+z+2;
Las funciones y subfunciones denidas en el mismo chero tienen espacios de trabajo diferentes. Como
consecuencia, las variables denidas en una función son variables locales que no pueden ser vistas por otras
funciones o subfunciones.
Función anónima
Las funciones anónimas constituyen una forma muy exible de crear funciones sobre la
marcha, bien en la línea de comandos, bien en una línea cualquiera de una función o de un chero
*.m. La forma
general de las funciones anónimas es la siguiente:
fhandle = @(argumentos) expresión;
Por ejemplo, la siguiente función anónima calcula el valor del seno del ángulo doble:
senoAngDoble = @(ang) 2*sin(ang).*cos(ang);
que se puede invocar de la siguiente forma:
>>senoAngDoble(pi/4)
ans =
1
Las funciones anónimas acceden a las variables del espacio de trabajo en el que son denidas y crean en
ese momento una copia de las variables que utilizan. El valor de dichas variables ya no se actualiza; sólo los
argumentos pueden cambiar de valor.
Matriz de celdas
Una matriz de celdas (cell array) es una matriz en la que cada uno de sus elementos es una
variable de cualquier tipo. En una matriz ordinaria todos sus elementos son números o cadenas de caracteres.
Sin embargo, en un cell array, el primer elemento puede ser un número; el segundo una matriz; el tercero una
cadena de caracteres; el cuarto una función anónima, etc.
1
Obsérvese por ejemplo cómo se crea, utilizando llaves {}, el siguiente cell array de dimensiones 1x3:
>>vb{1}=[1 2 3]
vb =
[1x3 double]
>> vb{2}='mi nombre'
vb =
[1x3 double] 'mi nombre'
>> vb{3}=rand(3,3)
vb =
[1x3 double] 'mi nombre' [3x3 double]
También es posible crear la matriz de celdas en una sola operación en la forma:
>>vcc = {[1 2 3], 'mi nombre', rand(3,3)}
vcc =
[1x3 double] 'mi nombre' [3x3 double]
Matriz de estructuras
Una estructura (structure) es una agrupación de datos de tipo diferente bajo un
mismo nombre. Estos datos se llaman campos (elds). Por ejemplo, una estructura denominada
contener los campos
nombre
(una cadena de caracteres) y
En MATLAB la estructura
carnet
alumno
puede
(un número).
alumno se puede crear generando un campo de dicha estructura. A diferencia de
otros lenguajes de programación, no hace falta denir previamente el modelo o patrón de la estructura. Una
posible forma de hacerlo es crear uno a uno los distintos campos, como en el ejemplo siguiente:
>> alumno.nombre='Miguel'
alumno =
nombre: 'Miguel'
>> alumno.carnet=31415
alumno =
nombre: 'Miguel'
carnet: 31415
Se accede a los campos de una estructura por medio del operador punto (.), que une el nombre de la
estructura y el nombre del campo (por ejemplo,
alumno.nombre).
MATLAB permite añadir nuevos campos a
una estructura en cualquier momento.
Una matriz de estructuras (structure array) es una matriz en la que cada uno de sus elementos es una
estructura. Por tanto, la estructura anterior se puede expandir añadiendo índices tras el nombre de la estructura.
Todos los elementos de la matriz tendrán los mismos campos pero con distinta información (pueden contener
incluso distintos tipos de variables). Por ejemplo
>> alumno(2).nombre='Pedro';
>> alumno(2).carnet=27183;
>> alumno
alumno =
1x2 struct array with fields:
nombre
carnet
MATLAB permite denir estructuras anidadas, es decir estructuras con campos que sean otras estructuras.
Para acceder a los campos de la estructura más interna se utiliza dos veces el operador punto (.). Ejemplo:
>> clase.alumno = alumno
clase =
alumno: [1x2 struct]
>> clase.alumno(:).nombre
ans =
Miguel
ans =
Pedro
Para más información se recomienda visitar la documentación de Matlab y/o el grupo de Matlab en Google
comp.soft-sys.matlab (más de 247000 temás de discusión a fecha 21/11/2011).
2
2. Ejercicio
1. Genere una función en la que poder trabajar. En ésta, genere una estructura denominada
contenga las siguientes características del rotor:
Parámetro
Nombre campo
Valor
T
Tracción (T )
Nº de palas (b)
Radio del rotor (R)
Velocidad de giro (Ω)
Cuerda de las palas (c)
Torsión de las palas (θ1 )
Coef. de sustentación del perl (Clα )
cifra DNI)
b
R
Omega
c
theta_1
C_l_alpha
que
Unidades
40000 +
(última
Rotor
N
· 1000
4
8
26
0,31
−10
5,73
m
rad/s
m
deg
-
2. Dentro de la función generada anteriormente, genere una subfunción que devuelva el ángulo de paso
colectivo (θ0 , valor numérico) y la distribución de velocidad inducida (vi
a punto jo a la altitud jada por la densidad
[theta_0,v_i] = VPF(Rotor,rho)
rho:
(r),
función anónima) para vuelo
Dicha función deberá utilizar la Teoría de Cantidad de Movimiento (método TCM).
3. Modicar la función anterior para que, mediante un nuevo argumento de entrada (metodo que puede
tomar los valores
'TCM', 'TCMEP'
o
'TCMEP_P'),
sea capaz de devolver los mismos argumentos anteriores
pero calculados también con la teoría combinada de cantidad de movimiento y elemento de pala (método
TCMEP) y la teoría combinada de cantidad de movimiento y elemento de pala considerando el modelo
local de pérdidas de punta de pala de Prandtl (método TCMEP_P):
[theta_0,v_i] = VPF(Rotor,rho,metodo)
3. Resultados
Obtener el valor del ángulo de paso colectivo para los tres métodos comentados anteriormente:
Método
TCM
TCMEP
TCMEP_P
θ0 [deg]
Representar la distribución de velocidad inducida
vi
en función del radio
R
en el rango
[0,5, 8]
m.
16
14
12
vi [m]
10
8
6
4
2
0
0
1
2
3
4
R [m]
5
6
7
8
Referencias
[1] García de Jalón J., Rodríguez J. I., Vidal J. Aprenda Matlab 7.0 como si estuviera en primero.
Escuela Técnica Superior de Ingenieros Industriales. Universidad Politécnica de Madrid.
3
Descargar