Está en la página 1de 32

3 FUNCIONES Y

PROCEDIMIENTOS
Una función de EES es un segmento de código que acepta una o más entradas y devuelve un
único resultado asociado con el nombre de función. Un procedimiento de EES es similar a una
función, pero puede devolver uno o más resultados y se accede a ella por la instrucción Call. El
código que se emplea en funciones y procedimientos es dramáticamente diferente del código
utilizado en la parte principal de un programa de EES; funciones y procedimientos utilizan
instrucciones de asignación en lugar de igualdades. Funciones y procedimientos proporcionan
varias ventajas importantes. En primer lugar, hacen que sea más fácil para programar un modelo
grande al permitir que el código que se divide en varias partes más pequeñas que son cada uno
más fácil de entender y depurar. En segundo lugar, EES funciones y procedimientos permite el
uso de sentencias de lógica de programación, como por ejemplo, la repetición, hasta e
instrucciones GOTO If-Then-Else, que no se pueden utilizar en el cuerpo principal de EES. En
tercer lugar, las funciones y procedimientos se pueden guardar en un archivo después de que
hayan sido depurado y comprobado, que les permite ser re-utilizados en otros programas de la
EEE o en un archivo de biblioteca, como se explica en el capítulo 11. Este capítulo presenta las
capacidades básicas de las funciones y procedimientos. Subprogramas y módulos comparten
algunas de las ventajas de las funciones y procedimientos, pero utilizan ecuaciones en lugar de
asignaciones como se discutió en el capítulo 10.

3.1Ecuaciones y Instrucciones de asignación


Las instrucciones que se introducen en el cuerpo principal de un programa de EES proporcionan
un conjunto de ecuaciones en lugar de instrucciones de asignación. instrucciones de asignación se
utilizan en la mayoría de los lenguajes de programación de alto nivel. La diferencia entre una
ecuación y una instrucción de asignación puede ser entendido con la declaración siguiente simple:
X = X +
1

Esta declaración no puede ser una ecuación válida, ya que la variable X no puede ser igual a X +
1. Si se introduce este contenido en la ventanilla de las ecuaciones EES, intentará resolver
numéricamente, usando los métodos descritos en la sección 5.1. Con los criterios de parada por
defecto, EES encontrará una solución de X = 5x1017. Con este valor de X, el residual (que está
relacionada con la diferencia entre el
lados izquierdo y derecho de la ecuación) es menor que la tolerancia predeterminada; Por lo
tanto, parece EES ser una solución válida. Sin embargo, esto probablemente no es la solución
que se pretendía.

La ecuación X = X + 1 es una instrucción de asignación. Las sentencias de asignación asignan


explícitamente el valor de la variable en el lado izquierdo del signo igual (en este caso X) con el
valor de la expresión en el lado derecho del signo igual (en este caso X + 1). Todas las variables
que aparecen en el lado derecho del signo igual en una instrucción de asignación deben tener
valores definidos previamente. Por ejemplo, si el valor actual de X es 8 a continuación, la
ejecución de esta instrucción de asignación lo cambiaría a ser 9.
82 Capítulo 3: Funciones y
Procedimientos
El operador de
asignación
Todas las ecuaciones que aparecen en las funciones y procedimientos de la EEE debe haber
instrucciones de asignación en lugar de ecuaciones. Las primeras versiones de EES requieren que
las instrucciones de asignación utilizan el operador de asignación (: =) en lugar de un signo igual.
Por lo tanto, la instrucción de asignación anterior aparecería como:

X: = X
+1

Este requisito se ha relajado en las versiones actuales de EES por la aplicación de la opción
Permitir = diálogo en la función / procedimiento ecuaciones que se pueden seleccionar en la
pestaña Opciones de las preferencias como se muestra en La Figura 3-1. Esta opción está
seleccionada por defecto y provoca EES para aceptar tanto el signo igual y el operador de
asignación de funciones y procedimientos.

Figura 3-1: Preferencias de diálogo que muestra la opción que permite el signo = para instrucciones de
asignación.

Las sentencias de asignación son mucho más estructurados que las ecuaciones. Cada declaración
incluida en una función o procedimiento debe estar dispuesto de manera que la variable que se
está asignando un valor aparece por sí mismo en el lado izquierdo de la declaración. Las
instrucciones se ejecutan exactamente en el orden en que se introducen. Una ventaja principal de
instrucciones de asignación es que permiten el uso de construcciones lógicas, tales como estados
de Si-THEN-ELSE, como se describe en la Sección 3.4.

3.2funciones
EES funciones internas se pueden escribir directamente en la ventana de ecuaciones. Las funciones
externas pueden ser escritos en cualquier lenguaje compilado, como se discutió en el Capítulo 19.

Formato de las
funciones
Las funciones internas deben tener el formato como se
muestra a continuación:
Capítulo 3: Funciones y 83
Procedimientos
Function_Name función (Entrada 1, Entrada 2, ..., N
de entrada)

instrucción de asignación (s) - nota de que uno de ellos debe tener la forma:
Function_Name = ...

Fin
al

Las declaraciones de funciones deben aparecer en la parte superior de la ventana de ecuaciones,


antes que cualquiera de las ecuaciones en el cuerpo principal del programa EES. Las declaraciones
de funciones deben empezar con la función de la palabra clave. El nombre de la función
(Function_Name) y los argumentos (Entrada 1, etc.) siguen en la misma línea. Los argumentos
están encerrados entre paréntesis y separados por un delimitador de lista (que es la coma para el
sistema de Estados Unidos y el punto y coma para el sistema europeo). La declaración de la
función se termina mediante la palabra clave final. Las declaraciones que aparecen en las funciones
(y procedimientos) deben ser instrucciones de asignación (como se discute en la Sección 3.1) o
estados lógicos (discutidos en la Sección 3.4). EES procesa estas declaraciones en el orden en que
aparecen a menos que se lo indique las instrucciones lógicas.

Las funciones se denominan mediante el uso de su


nombre en una ecuación:

X = Function_Name (Entrada 1, Entrada 2, ...,


N de entrada)

Una función debe tener al menos un argumento y debe ser llamado con el mismo número de
argumentos que aparecen en la declaración de la función. Los nombres de los argumentos en la
necesidad declaración llamando no coincidir con el nombre de los argumentos de la declaración
de la función; Sólo su orden importa. Los estados dentro de la función sólo puede referirse a
variables que se pasan a la función como argumentos de entrada o previamente definidos dentro
de la función en sí. Todas las variables utilizadas en el cuerpo de una función local de la función,
excepto las variables globales en el cuerpo principal de un programa de EES que se han definido
usando la directiva $ Común, que se describe en la Sección
14.3. Las funciones devuelven el valor asignado en la declaración Function_Name = ... en el
cuerpo de la función.

Las funciones pueden referirse a cualquier otra función incorporada, procedimiento o otras
entidades de programas que se han cargado mediante un archivo de biblioteca (véase el Capítulo
11). Sin embargo funciones no pueden llamarse a sí mismos, es decir, que no se pueden utilizar de
forma recursiva. Las funciones no pueden llamar a un módulo pero pueden llamar subprogramas
(descritos en el Capítulo 10). Funciones (y procedimientos) debe utilizar la configuración del
sistema unidad que se establecen en el programa principal. sistema de unidad diferente para cada
función o procedimiento no se puede especificar.

En primer ejemplo de una


función
El formato y la utilidad de las funciones serán demostradas con unos pocos ejemplos. El primer
ejemplo se devuelve el factor de fricción Darcy (f) para las entradas de flujo dada internos de
número de Reynolds (Re) y la rugosidad relativa (RR). La correlación que vamos a utilizar fue
desarrollado por Churchill (1977) y se muestra en la Ec. (3-1).
84 Capítulo 3: Funciones y
Procedimientos
  
F 8  8   1   37530  (3-1)
2.457 En


La función que devuelve el factor de fricción f será llamado f_Darcy. Un listado de la función sigue.

Función f_Darcy (Re, RR) f = 8 * ((8 / Re) ^ 12 + ((2.457 * ln (1 / ((7 / Re) ^ 0.9 + 0.27 * (RR)))) ^ 16+
(37530 /Re)^16)^(-1.5))^(1/12)
f_Darcy =
extremo f

La función que deben aparecer en la parte superior de la ventana de ecuaciones, antes que
cualquiera de las ecuaciones de la sección principal del programa EES. La función se accede por
su nombre con los valores previstos número de Reynolds y la rugosidad relativa. El siguiente
código, introducida después de la declaración de la función:

Re = 5000 [-] "Número de Reynolds"


RR = 0,001 [-] "Rugosidad relativa"
f = f_Darcy (Re, RR) "Factor de fricción Darcy"

dará lugar a la solución mostrada en la ventana Figura 3-2(un). Tenga en cuenta que además de la
lengüeta principal que muestra las variables en la ventana de ecuaciones ahora hay una segunda
pestaña con una etiqueta que corresponde al área de trabajo de función. Al seleccionar la pestaña
f_Darcy muestra la ventana se muestra en SolucionesFigura 3-2(B), que contiene los valores de
las variables en el espacio de trabajo de función durante la última llamada a la función.

(a) (si)
Figura 3-2: Soluciones de ventana que muestra (a) principal y (b) f_Darcy pestañas.
Capítulo 3: Funciones y 85
Procedimientos
Segundo ejemplo de una función
Como un segundo ejemplo, vamos a desarrollar una función que implementa la ecuación de Peng-
Robinson de estado, mostrados en la Ec. (3-2), con el fin de estimar la presión de un fluido (P)
dado su volumen específico
(V) y la temperatura (T). VerKlein y Nellis (2012) para más información sobre esta y otras
ecuaciones de estado.

RT un
PAG   (3-2)
 v - b v  v si si  v
- b

Para el fluido de interés, los parámetros en la ecuación de Peng-Robinson de estado son R = 188,9
J / kg-K, a = 70,89 N-m4 / kg2 y b = 0,0006059 m3 / kg. La función se llama PR y se coloca en la
parte superior de la ventana de ecuaciones:

Función PR (v, T)
R = 188,9 [J / kg-K]
a = 70,89 [Nm ^ 4 / kg ^
2] b = 0,0006059 [m ^ 3
/ kg]
PR = R * T / (vb) -a / (v * (v + b) + b *
(VB)) End

Tenga en cuenta que las unidades de las constantes se especifican entre corchetes, como se discute
en la Sección
1.5. La función de PR se llama con el fin de estimar la presión en v = 0,1 m3 / kg y T = 325 K
con el código siguiente:

v = 0,1 [m ^ 3 / kg] "volumen específico"


T = 325 [K] "temperatura"
P = PR (v, T) "La presión, estimada a partir de la ecuación de Peng-Robinson de Estado"

Ajuste y comprobación de las unidades de las


variables de función
Una vez más, la ventana Solución tendrá dos pestañas: una para la ventana principal Ecuaciones y
otra para el espacio de trabajo de relaciones públicas de funciones. funciones o procedimientos
adicionales resultarán en fichas adicionales. Las unidades de cada variable en el programa
principal se pueden ajustar haciendo clic derecho sobre el nombre de la variable en la pestaña
principal de la ventana de soluciones, que es la demostraciónn en la Figura 3-3(un).

(a) (si)
Figura 3-3: (a) pestaña principal de la ventana Soluciones que muestra advertencias unitarios y (b) PR
lengüeta de la función que muestra las unidades establecidas para cada variable.
86 Capítulo 3: Funciones y
Procedimientos
Tenga en cuenta que incluso con las unidades de todas las variables en la ventana de ecuaciones
ajustado correctamente, EES sigue reportando varios problemas posibles de la unidad. Elija la
fecha de unidades con el fin de visualizar las unidades de diálogo Check muestran enLa Figura 3-
4. Las advertencias unidad del resultado del hecho de que las unidades de las variables utilizadas
en el espacio de trabajo de la función de PR no se han fijado y por lo tanto son incompatibles
entre sí y también incompatibles con las unidades de los argumentos que se pasan hacia atrás y
adelante entre la función y la Ventana de ecuaciones . cheques EES la consistencia unidad de las
variables en las funciones y procedimientos (y los módulos y subprogramas, que se analizan en el
Capítulo 10), así como las variables en la ventana de ecuaciones. Seleccione la pestaña de PR en
la ventana de Soluciones y especificar las unidades de cada una de las variables en el espacio de
trabajo de relaciones públicas, como se muestra enFigura 3-3(si). Tenga en cuenta que las
unidades de cada una de las variables internas al espacio de trabajo PR (a, b, y R), así como los
argumentos de entrada (V y T) y la salida (PR) deben estar ajustados en la advertencia
consistencia unidad de evitar.

Figura 3-4: Comprobar diálogo Unidades.

Información sobre la variable de página


para la función
También hay una página en el cuadro de diálogo Información de la variable correspondiente a
cada función y procedimiento definido. Abrir la ventana de información variable (seleccione
Información variable en el menú Opciones) y luego seleccione Función PR desde el menú
desplegable para acceder al diálogo que se muestra en Figura 3-5. Las unidades de cada variable
en el espacio de trabajo de relaciones públicas también se pueden configurar utilizando la ventana
de información variable al igual que el formato de visualización. Guess valores y límites no son
aplicables en una función o procedimiento, ya que utilizan instrucciones de asignación en lugar de
ecuaciones.
Capítulo 3: Funciones y 87
Procedimientos

Figura 3-5: PR Página de la función del cuadro de diálogo de información variable.

3.3procedimientos
procedimientos EES son muy similares a las funciones de la EEE, a excepción de que permiten
múltiples salidas y deben ser accedidos usando el comando Llamar.

Formato de
Procedimientos
El formato de un procedimiento se muestra
a continuación:

Procedimiento procedure_name (Entrada 1, Entrada 2, ..., N Entrada: Salidas 1, 2, ..., M

salida) sentencia (s) Asignación - Tenga en cuenta que algunos de estos debe tener la

forma:
Salida 1 = 2
= salida ... ...
...
Salida M = Fin ...

declaraciones de procedimiento deben aparecer en la parte superior de la ventana de ecuaciones,


junto con las declaraciones de funciones y tienen que empezar con el Procedimiento de palabras
clave. El nombre del procedimiento (procedure_name) y la lista de argumentos siguen en la
misma línea. La lista de argumentos se encierra entre paréntesis. El primer conjunto de
argumentos son entradas (entrada 1, entrada 2, etc.); estos son valores que típicamente son
conocidos y especificados en el momento que el procedimiento se llama. La lista de entrada se
termina por dos puntos que es seguido por la lista de salida (Output 1, la salida 2, etc.). Las
salidas deben ser calculados dentro del cuerpo del procedimiento. El procedimiento se termina
por la finalización de palabras clave. Al igual que las funciones, que se analizan en la sección
3.2, el código utilizado para procedimientos de escritura debe ser instrucciones de asignación o
instrucciones lógicas. EES procesa estas declaraciones en el orden en que aparecen.

Los procedimientos se accede utilizando el


comando Llamar:

Llamada procedure_name (Entrada 1, Entrada 2, ..., N Entrada: Salidas 1, 2, ..., M


salida)
88 Capítulo 3: Funciones y
Procedimientos
Siguiendo el comando de llamadas, los valores de las variables de salida (salida 1, la salida 2, etc.)
serán asignados por el procedimiento. Un procedimiento debe ser llamado con el mismo número
de argumentos que aparecen en la sentencia de procedimiento. El nombre de los argumentos en la
necesidad declaración llamando no coincidir con el nombre de los argumentos de la sentencia de
procedimiento; Sólo su orden importa. Los argumentos pueden ser constantes, variables de cadena,
variables numéricas, o expresiones algebraicas. Al igual que con una función, el procedimiento
tiene su propio espacio de trabajo local. Declaraciones dentro del procedimiento no puede referirse
a variables que no se pasan al procedimiento, previamente definidos en el procedimiento en sí, o
definido a ser global usando la directiva $ Común.

Las funciones pueden referirse a cualquier otra función incorporada, procedimiento o otras
entidades de programas que se han cargado utilizando un archivo de biblioteca (Capítulo 11). Sin
embargo procedimientos, como funciones, no pueden llamarse a sí mismos. Los procedimientos no
pueden llamar a un módulo pero pueden llamar a subprogramas (descritos en el capítulo 10).

Ejemplo de un
Procedimiento
Vamos a ilustrar el uso de un procedimiento con un ejemplo sencillo que se encuentra el
producto, ratio, suma y diferencia (M, D, A, S) de dos valores (X e Y):

Procedimiento de prueba (X, Y: M, D, A, S)


M: = X * Y "multiplicar"
D: = X / Y "dividir"
A: = X + Y "añadir"
S: = XY "sustraer"
final

Una instrucción Call válida para Procedimiento de prueba se muestra más arriba es:

Llamada de Prueba (33,44: producto, cociente, suma, la diferencia) "Llamada a


Procedimiento de la Prueba"

Cuando se ejecuta este código, EES asignará X e Y en Procedimiento de prueba a ser 33 y 44,
respectivamente. Se evaluará cada una de las cuatro salidas y asignarlos a los cuatro valores en
la lista de salida: producto, cociente, Suma y Diferencia. Una pestaña en la ventana de
Soluciones muestra las variables de la ventana principal Ecuaciones y el espacio de trabajo para
el procedimiento de prueba, como se muestra en Figura 3-6.
Capítulo 3: Funciones y 89
Procedimientos

(a) (si)
Figura 3-6: fichas de la ventana solución para (a) Ventana Ecuación principal y (b) el espacio de trabajo para
el procedimiento de Prueba.

Aunque un procedimiento normalmente se escribe para aceptar entradas y salidas de retorno,


también es posible llamar al procedimiento de las ecuaciones Ventana, subprograma o módulo
con el suministro de algunos de los valores de salida con el fin de tenerlo calcular una o más de
las valores de entrada. Esto es posible porque EES interpreta el procedimiento como un conjunto
de ecuaciones que relacionan cada salida a las entradas. Por lo tanto, intentará resolver el conjunto
de ecuaciones resultante de forma iterativa. Por ejemplo, el Procedimiento de prueba podría ser
llamado en la siguiente forma:

Llamada de Prueba (X, Y: producto, cociente, 88, 32) "Llamada alternativa al procedimiento de
prueba"

En este caso, se especifican los valores de las dos últimas salidas. Estas salidas son la suma y
diferencia de las entradas, X y Y. EES intentará determinar los valores de las entradas X e Y que
proporcionan las salidas especificadas, utilizando iteración si es necesario. Después de la resolución,
la ventana Solución aparecerá como se muestran en la Figura 3-7.

Figura 3-7: Ventana Solución que muestra los resultados locales para el Procedimiento Prueba.

Cuando un procedimiento se llama desde dentro de una función o de otro procedimiento, se


interpreta como un conjunto de instrucciones de asignación, una para cada salida. En este caso,
no es posible proporcionar valores de cualquiera de las salidas con el fin de determinar una o
más de las entradas.

Al igual que las funciones de la EEE, los procedimientos se pueden guardar por separado y
utilizados en otros programas de EES. La manera más conveniente de hacerlo es guardar el
procedimiento como un archivo de biblioteca, como se detalla en el capítulo
11. EES soporta ambos procedimientos internos y externos. Los procedimientos internos se
introducen directamente en la parte superior de la ventana de ecuaciones, como se describe en
esta sección. Los procedimientos externos están escritos en un lenguaje de alto nivel como C,
Pascal o FORTRAN y llamaron de EES. La instrucción Call para ambos tipos de procedimientos
es idéntico. Capítulo 19 proporciona instrucciones para la escritura y el uso de funciones y
procedimientos externos.
90 Capítulo 3: Funciones y
Procedimientos

3.4Las declaraciones lógicas


Una ventaja principal de las instrucciones de asignación que se utilizan en las funciones y
procedimientos de EES es que pueden incluir estados lógicos con el fin de controlar el orden de
la ejecución de las instrucciones de asignación. funciones y procedimientos EES reconocen
varios tipos de estados lógicos, como se describe en esta sección. Estas afirmaciones lógicas no
se pueden utilizar en módulos, subprogramas o en el cuerpo principal de un programa de EES.

Las declaraciones IF-


THEN-ELSE
La declaración más común es la lógica de la instrucción If-Then-Else. EES ofrece dos formatos
para este tipo de declaraciones, que se conocen como la de una sola línea y los formatos de varias
líneas. El formato de una sola línea tiene la siguiente forma:

Si (prueba condicional) Declaración Entonces 1 Else 2

La continuación de palabras clave y están obligados Declaración 1. Declaración 1 puede ser o


bien una instrucción de asignación o una instrucción GoTo, como se describe a continuación. La
palabra clave Else y Declaración 2 son opcionales. Una sola línea If-Then-Else declaración debe
ser colocado en una línea con ningún salto de línea; Sin embargo, no hay límite en el número de
caracteres que se pueden utilizar en esta línea.

El formato de varias líneas tiene la siguiente


forma:

Si (prueba condicional)
Declaración
Entonces (s)
Más
Declaración
(s) EndIf

La principal diferencia entre estos dos formatos es que el formato de varias líneas permite que una
o más sentencias de asignación o instrucciones lógicas que se ejecutarán en función del resultado
de la prueba condicional, mientras que el formato de una sola línea permite sólo una instrucción a
ser ejecutada. Las palabras clave más y EndIf que aparecen en el formato de varias líneas cada
uno debe aparecer en una línea por sí mismo, como se muestra arriba. La sangría puede ser
utilizado para hacer la lógica fluya más clara. Múltiple línea Si-then-else puede incluir
declaraciones If-Then-Else adicional, que prevé la evaluación condicional anidada.

La prueba condicional produce ya sea un resultado verdadero o falso utilizando operadores


relacionales. Los operadores relacionales son reconocidos por EES Resumird en la Tabla 3-1.
Capítulo 3: Funciones y 91
Procedimientos
Tabla 3-1: Los operadores relacionales reconocidos en pruebas condicionales.
operador relacional Descripción
< menos que
> mas grande que
= igual a
<= Menos que o igual a
> Mayor qué o igual a
=
<> no igual a
y Y lógico entre dos pruebas relacionales
o lógica O entre dos pruebas relacionales

Los paréntesis alrededor de la prueba condicional suelen ser opcionales, pero se recomiendan para
la lectura de la claridad. Sin embargo, hay situaciones en las cuales se requieren los paréntesis con
el fin de obtener el resultado deseado. EES procesa las operaciones lógicas de izquierda a derecha
a menos paréntesis se proporcionan con el fin de cambiar el orden de análisis. Tenga en cuenta
que los paréntesis alrededor del (x> 0) y (y <> 3) se requieren en el siguiente de una sola línea If-
Then-Else comunicado con el fin de reemplazar el valor predeterminado orden de izquierda a
derecha procesamiento lógico:

Si (x> y) o ((x <0) y (y <> 3)), entonces Z: = x / y z


Else: = x

Todas las variables, excepto las variables de cadena () utilizados en EES se representan con los
números reales de coma flotante de 10 bytes que proporcionan 20 cifras significativas de
precisión numérica. EES no proporciona número entero tipos de datos. Por esta razón, se debe
tener cuidado cuando se utiliza el operador = relacional, como dos valores pueden ser bastante
cerca uno del otro, pero no exactamente iguales. La <= o> = operadores generalmente deben
usarse en lugar del operador =. Alternativamente, las funciones de la Ronda y trunc se pueden
utilizar para asegurar que un valor es exactamente igual a un número entero. Las variables de
cadena deben ser comparados con el operador =.

Las declaraciones
de retorno
La declaración de retorno sólo se puede utilizar dentro de las funciones y procedimientos. Cuando
EES se encuentra con una instrucción Return, que saldrá de la función o procedimiento y el
control continúa en el punto en el que recibió el nombre de función o procedimiento. La sentencia
return se utiliza en construcciones lógicas con los If-Then-Else o repeat-until declaraciones.

El siguiente ejemplo se desarrolla una función llamada Nusselt que utiliza la lógica para
proporcionar el valor apropiado del número de Nusselt no dimensional para el flujo totalmente
desarrollado en una tubería circular sometido a una constante de flujo de calor, dado el número de
Reynolds (Re), el número de Prandtl (Pr ), y la rugosidad relativa (RR). Los usos de función
correlaciones se presentan en Nellis y Klein
(2009)1. Para el flujo laminar (Re <2,300), el número de Nusselt es una constante:

Nu 4.36 (3-3)

La función comienza mediante la asignación de Nusselt un valor consistente con flujo laminar y el
uso de la
instrucción de retorno para volver al programa principal, si Re <2300.
92 Capítulo 3: Funciones y
Procedimientos
1
Tenga en cuenta que la biblioteca de Transferencia de Calor, discutido en el capítulo 12, ofrece una versión
mucho más potente de esta función, así como otras funciones y procedimientos basados en el libro de texto
Transferencia de Nellis y Klein calor.
Capítulo 3: Funciones y 93
Procedimientos

Función de Nusselt (Re, Pr, RR)


"Flujo laminar asumir es"
Nusselt = 4,36 [-] "Flujo laminar número de Nusselt"
si (Re <2,300) a continuación, volver "Retorno si el flujo es laminar"

Para flujo turbulento (Re> 2300), el factor de fricción se calcula de acuerdo con:
2
F 
 2 RR - 5,02 2 RR 13 (3-4)
 10 

Re  
10 
log
7.54 Re 7.54
    

y se utiliza para calcular el número de Nusselt según la correlación Gnielinski:

F 
 
Re 1000Pr
Nu  
8 
(3-5)
112.7  Pr 1 8
23

Tenga en cuenta que la correlación Gnielinski sólo es válida para 2300 <Re <5x106. La función
continúa mediante el uso de las ecuaciones. (3-4) y (3-5) para asignar Nusselt un valor que es
consistente con flujo turbulento. La sentencia return se utiliza para volver al programa de llamada
si el número de Reynolds es inferior a 5x106.

"Asumir Reynolds es turbulento"


f = (-2 * log10 (2 * RR / 7,54-5,02 * log10 (2 * RR / 7,54 + 13 / Re) / Re)) ^ (- 2) "factor de fricción"
Nusselt = f / 8 * (Re-1000) * Pr / (1 + 12,7 * (Pr ^ (2/3) -1) * sqrt (f / 8)) "Correlación Gnielinski"
si (Re <= 5E6) a continuación, volver "Re devolución si no está fuera de
alcance"

Finalmente, la función devuelve un valor de -9 cuando el número de Reynolds proporcionado es


mayor que 5x106 con el fin de indicar que la correlación no es válida.

"Número de Reynolds debe estar fuera de alcance"


Nusselt = -9 [-] "Re valor si está fuera de alcance"
final

Una mejor manera de manejar esta situación es el uso de los procedimientos de advertencia o
error, que se describen en la sección 3.7. La función se ensaya a diferentes números de Reynolds:

"Probar la función"
Nu # _laminar = Nusselt (1000,0.7,0.001) "Prueba de flujo laminar"
Nu # _turbulent = Nusselt (5000,0.7,0.001) "Prueba de flujo turbulento"
Nu # _outofRange = Nusselt (6E6,0.7,0.001) "Prueba de fuera de alcance"

que conduce a la ventana de demostración de solucionesn en la Figura 3-8.


94 Capítulo 3: Funciones y
Procedimientos

Figura 3-8: Ventana Solutions.

Declaraciones Goto y etiquetas de


sentencia
EES normalmente procesará las instrucciones de asignación de una función o procedimiento en el
orden en que aparecen, empezando por la primera declaración. Sin embargo, el control de flujo
puede ser alterado utilizando sentencias GOTO. El formato de una instrucción GoTo es
simplemente:

Ir a la línea #

donde la línea # es una etiqueta de declaración de que debe ser un número entero entre 1 y 30000.
etiquetas Declaración de preceder a una instrucción de asignación y se separan de la declaración
de dos puntos (:). Una etiqueta de declaración también puede aparecer en una línea por sí mismo.
La instrucción GoTo se debe utilizar con IF-THEN-ELSE declaraciones para ser útil.

La función siguiente ilustra el uso de Goto y declaraciones If-Then-Else en el cálculo del factorial
de un valor suministrado como argumento.

Función de Datos (N)


F: = 1 "factorial"
i: = 0 "mostrador"
10: i: = i + 1 "Contador de incremento"
F: = F * i "Factorial se multiplican por el contador"
Si (i <N) Then GoTo 10 "Ver si el contador ha alcanzado N"
Hecho: = F "Factorial de asignación"
Final

La función informativa se prueba y se compara con el valor devuelto por la función incorporada en
Factorial en EES.

Y = Fact (7) "Fact (7) = 5040"


Y2 = Factorial (7) "Ees incorporado en función factorial"

Resolviendo conduce a Y = 5040 y Y2 = 5,040.


Capítulo 3: Funciones y 95
Procedimientos
Repetir-Hasta
Construct
Bucle dentro de las funciones y procedimientos se pueden implementar con GOTO If-Then-Else y
descritos anteriormente. Sin embargo, generalmente es más conveniente y fácil de leer para utilizar
un Repetir-Hasta constructo. Repetir-Hasta construcción tiene el formato siguiente.

Repetir
Declaración (s)
...
Hasta (prueba condicional)

los prueba condicional es el mismo tipo de prueba condicional utilizado en If-Then-Else


declaraciones. losHecho función escrita anteriormente usando una Ir afirmación puede aplicarse
de manera más simple uso de una Repetir hasta construir, como se muestra en el siguiente
ejemplo:

Función de Datos
(N)
Hecho: = 1 "factorial"
Si (n = 0), entonces de regreso "Comprobar para N = 0"
Repetir
Hecho: = Fact * N "Comenzar con el argumento"
N: = N-1; "El argumento de decremento por uno"
Hasta (N <= 1)
Fin
al

Tenga en cuenta el uso de la instrucción de retorno de interrumpir la función en el caso de que el


argumento es cero. La repetición-Hasta constructo sólo se puede utilizar en las funciones y
procedimientos.

3.5Unidades en Funciones y Procedimientos


Las unidades de variables que aparecen en las funciones y procedimientos de EES se pueden
establecer desde el cuadro de diálogo de información variable o la ventana Solution, como se
discute en la Sección 3.2 en el contexto del ejemplo de la función de PR, que implementa la
ecuación de Peng-Robinson de estado.

Función PR (v,
T)
R = 188,9 [J / kg-K]
a = 70,89 [Nm ^ 4 / kg ^
2] b = 0,0006059 [m ^ 3
/ kg]
PR = R * T / (vb) -a / (v * (v + b) + b *
(VB)) End

En algunos casos, puede que no sepa las unidades de las variables en una función o procedimiento
hasta que se ejecuta. La función de PR anteriormente, por ejemplo, está escrito con la expectativa de
que será llamada con el sistema de unidades EES configurado para unidades SI estándar de m, K, J, y
Pa. Sería bueno para ser capaz de tener este trabajo función correctamente cuando se llama desde un
programa de EES que está utilizando cualquier conjunto de unidades. Esto es particularmente
importante para aquellas funciones o procedimientos que se colocan en las bibliotecas. Esta
96 Capítulo 3: Funciones y
capacidad puede ser implementado utilizando la función unitSystem $.
Procedimientos

La función unitSystem $ tiene el protocolo de llamadas se


muestra a continuación:
Capítulo 3: Funciones y 97
Procedimientos
Unidad $ = $ unitSystem
(Dimensión $)

donde Dimensión $ es una cadena que contiene la dimensión de interés. La función unitSystem $
devuelve la cadena Unidad $ que contiene las unidades esperadas de la dimensión de la
configuración del sistema unidad que EES está configurado para trabajar. Los ajustes del sistema
unidad se pueden especificar como se discute en la Sección 1.5 utilizando la directiva unitSystem
$ en el Principal cuerpo del programa EES o en la ficha Sistema de unidades del cuadro de
diálogo Preferencias.

la función de reescritura PR Vamos para que funcione correctamente, independientemente del


sistema de unidades que EES está configurado para su uso. En primer lugar, la función unitSystem $
se utiliza para determinar las unidades que están asociados con volumen específico, la temperatura y
la presión.

Función PR (v,
T)
"Obtener los ajustes de la unidad en EES"
v $ = $ unitSystem ( 'Volumen') "V $ es las unidades de volumen específico que
EES se ajusta en" T $ = $ unitSystem ( 'Temperatura') "T $ es la unidad de temperatura que
EES se establece en" P $ = unitSystem $ ( 'presión') "P $ es que las unidades de presión
EES se ajusta en"

A continuación, los valores de volumen y la temperatura específica se convierten desde el sistema


de unidades que EES está actualmente configurado para trabajar en (es decir, las unidades de las
entradas V y T) a la base de unidades SI necesarias para aplicar la ecuación de Peng-Robinson de
estado (v_SI y T_SI). Esta conversión se realiza mediante el convertido y funciones converttemp
utilizando las cuerdas v $ y T $.

"Entradas de la conversión a unidades del SI de base"


v_SI = v * convert (v $, m ^ 3 / kg) "Convert v a unidades del SI de base"
T_SI = converttemp (T $, K, T) "convert T a base de unidades del SI"

Los cálculos se llevan a cabo en unidades del SI de base, como antes, con el fin de obtener la
presión predicha por la ecuación de Peng-Robinson de estado en unidades del SI de base (PR_SI).

"Realizar cálculos"
R = 188,9 [J / kg-K]
a = 70,89 [Nm ^ 4 / kg
^ 2] b = 0,0006059 [m ^
3 / kg]
PR_SI = R * T_SI / (v_SI-b) -a / (v_SI * (v_SI + b) + b * (v_SI-b)) "Presión, en Pa"

Finalmente, la presión se convierte en el sistema de unidades esperado por EES basado en la


configuración actual del sistema de la unidad. Esto se logra usando la función de conversión y la
cadena P $:

"Salida convierten a unidades de EES"


PR = PR_SI * convert (Pa, P $) "Presión convertida a unidades que EES se establece
Fin en"
al

La función ahora se puede utilizar con cualquier configuración de la unidad de EES. Por ejemplo,
en el código a continuación las unidades se establecen en el sistema de unidades Inglés.
98 Capítulo 3: Funciones y
Procedimientos

$ UnitSystem Inglés misa BTU F psi


v = 0,1 [ft ^ 3 / lbm] "volumen específico"
T = 300 [F] "temperatura"
Capítulo 3: Funciones y 99
Procedimientos
P = PR (v, T) "presión"

Las unidades de las variables en la función de espacio de trabajo de relaciones públicas deben
establecerse en la página apropiada de la ventana de información variable, como se muestran en la
Figura 3-9.

Figura 3-9: PR Página espacio de trabajo en función de la ventana de información variable.

Tenga en cuenta que las unidades de variables tales como a, b, y T_SI todo se puede ajustar de
una manera directa, ya que no son ambiguas; se trata de variables que estarán en unidades SI
básicas, independientemente de los ajustes de la unidad de EES. Sin embargo, no hay manera de
saber en general, las unidades de variables tales como V, T y PR ya que estas variables tendrán
unidades que sean consistentes con los ajustes de la unidad en EES. Por lo tanto, las unidades de
estas variables se establecen utilizando las cuerdas v $, T $ y P $, respectivamente, de modo que
se ajusta automáticamente según la configuración de la unidad EES actuales.

3.6Las matrices en Funciones y Procedimientos


variables de matriz en EES tienen un índice de matriz número entero que está encerrado entre
corchetes al final del nombre de la variable, como se discute en la Sección 1.7. variables de matriz
son en muchos aspectos similares a cualquier otra variable. Sin embargo, proporcionan algunas
capacidades de procesamiento adicionales porque las operaciones que implican el índice de matriz
se pueden programar utilizando bucles duplicados en la ventana de ecuaciones y la repetición,
hasta construcciones en las funciones y procedimientos. Además, los valores de la matriz se
pueden mostrar en la ventana de tabla Arrays.

Las matrices como


argumentos
A continuación se muestra una función corto que está diseñado para calcular la suma de los
cuadrados de todos los elementos de la matriz A [] que se proporciona a él como el segundo
argumento. El número de elementos de la matriz se proporciona como el primer argumento de la
función. Nota que array gama notación, es decir, [1..N], se utiliza para indicar todos los
elementos de la matriz entre el índice 1 y el índice de N. Los SumSquares función utiliza una
repetición-Hasta constructo de bucle a través de todos los elementos y resumir su cuadrícula.
10 Capítulo 3: Funciones y
0 Procedimientos
SumSquares de función (N, A [1..N])
S: = 0 "Suma de inicialización"
i: = 1 "Índice de inicialización"
Repetir
S: = S + A [i] ^ 2 "Suma del cuadrado de cada elemento"
i: = i + 1 "Incrementar el elemento"
Hasta (i> = N) "Condición de parada"
SumSquares: = S "Establecer el nombre de función al valor calculado"
final

Podemos probar esta función con el siguiente código:

N = 5 "Número de elementos de la matriz"


duplicar i = 1,
N
X [i] = i "Establecer el valor de los elementos de la matriz"
fina
l
SS = SumSquares (N, X [1..N]) "Llamar a la suma de los cuadrados de función"

que debería devolver un valor de SS = 30 en este


caso.

Hay, sin embargo, varios problemas potenciales con este código. Por ejemplo, si cambia N
de 5 a 150, verá el mensaje de error espectáculon en la figura 3-10.

Figura 3-10: Mensaje de error que aparece cuando se intenta llamar a la función SumSquares con norte =
150.

¿Por qué EES resolver este programa cuando N = 5, pero no cuando N = 150? La explicación de
este problema requiere una comprensión de cómo maneja EES las ecuaciones que se introducen
en la ventana de ecuaciones. Todas las ecuaciones en EES se compilan; Es decir, que se
traducen en una forma interna que minimiza el esfuerzo computacional requerido para
evaluarlas. EES se inicia en la parte superior de la ventana de ecuaciones y compila las
ecuaciones de uno en uno. La ventana de ecuaciones comienza con la declaración de la función
de SumSquares. Sin embargo, EES no puede conocer el valor de N que será proporcionada a la
función como un argumento. Sin conocer el valor de N, EES no puede compilar las ecuaciones
que definen la función.

Cuando EES no conoce el valor de un límite de índice de matriz, se asume que es 100 por
defecto. El A [1..N] que aparece en la declaración de la función para SumSquares está por lo
tanto interpretarse como un [1..100] cuando se compila la función. Cualquier valor de N que es
inferior o igual a 100 funcionará correctamente cuando esta función se llama, pero la función
falla cuando N es mayor que 100.

Hay varias maneras de resolver este problema. En primer lugar, podría cambiar el límite superior
del índice de la matriz a ser 200 en la declaración de la función.
Capítulo 3: Funciones y 10
SumSquares de función (N, A [1..200])
Procedimientos 1
10 Capítulo 3: Funciones y
2 Procedimientos

Ahora, el programa va a resolver cuando n se fija en 150 o cualquier valor que es menor que o
igual a 200 porque EES está reservando 200 elementos para la matriz A en la función. Tenga en
cuenta que el índice de matriz superior no necesita ser igual al tamaño de la matriz proporcionada
a la función en el programa de llamada (aunque eso es deseable). Sólo tiene que ser mayor que el
tamaño de la matriz proporcionada por el programa de llamada. El tamaño de la matriz máximo
admisible que se puede pasar a una función de esta manera es 2000 en la implementación actual
de EES.

El uso de la directiva $ común para acceder a


matrices
Podríamos también variables de matriz de acceso desde el programa principal dentro de la
función utilizando la
$ Común Directiva coloca dentro de la función. Como se explica en la Sección 14.3, la directiva $ Común
en la función o procedimiento proporciona acceso a las variables (es decir, las variables no pueden ser
modificados dentro de la función) de sólo lectura. Este método es más eficiente que pasa la matriz a la
función ya que evita algunos de la sobrecarga asociada con el paso de las variables desde el programa
principal a la función. Sin embargo, tendríamos que especificar correctamente el nombre y el tamaño de
las variables de la matriz en la directiva $ Común a fin de que este método de trabajo, como se muestra
en el siguiente ejemplo donde N = 150 y el nombre de la matriz en la función se ha cambiado para que
coincida con su nombre en el programa principal.

SumSquares de función (N)


$ Común X [1..150] "Proporciona acceso a la matriz X de sólo lectura []"
S: = 0 "Suma de inicialización"
i: = 1 "Índice de inicialización"
Repetir
S: = S + X [i] ^ 2 "Suma del cuadrado de cada elemento"
i: = i + 1 "Incrementar el elemento"
Hasta (i> = N) "Condición de parada"
SumSquares: = S "Establecer el nombre de función al valor calculado"
final

N = 150 "Número de elementos de la matriz"


duplicar i = 1, N
X [i] = i "Establecer el valor de los elementos de la matriz"
fina
l
SS = SumSquares (N) "Llamar a la suma de los cuadrados de función"

Este método de pasar información a una función no es también conveniente porque el valor de N
no es ajustable. Si el límite superior se establece en 200 en la directiva $ Común, se emitirá un
mensaje de error. Del mismo modo, si N es cambiado a 50 en el programa de llamada a
continuación, un mensaje de error será emitido. El ejemplo anterior requiere N a cambiarse tanto
en el programa principal y la función de si se cambia su valor.
Capítulo 3: Funciones y 10
Procedimientos 3
El uso de la directiva $ constante para establecer
los límites de matriz
Probablemente la mejor alternativa es utilizar una constante global para establecer el límite de
matriz. constantes globales se pueden definir usando la directiva $ constante, como se discute en
la Sección 1.9. Las constantes deben tener # como el último carácter en su nombre. En el
ejemplo siguiente, el tamaño de la matriz es especificado por la constante N global # y se utiliza
para establecer el límite superior de la matriz pasa a la función. Debido a que el valor de la
constante es conocida en el momento en que las ecuaciones se compilan, el tamaño de la matriz
se puede asignar correctamente. Sólo el valor de N # en las necesidades del programa a ser
cambiado para adaptarse a diferentes tamaños de matriz.

$ Constant N # = 150 "Tamaño de matriz"

SumSquares de función (A [1..N #])


S: = 0 "Suma de inicialización"
i: = 1 "Índice de inicialización"
Repetir
S: = S + A [i] ^ 2 "Suma del cuadrado de cada elemento"
i: = i + 1 "Incrementar el elemento"
Hasta (i> = N #) "Condición de parada"
SumSquares: = S "Establecer el nombre de la función al valor calculado"
final

duplico i = 1, N #
X [i] = i "Establecer el valor de los elementos de la matriz"
fina
l
SS = SumSquares (X [1..N #]) "Llame a la suma de los cuadrados de función"

Ventana Tabla Arrays para Funciones y


Procedimientos
Pasando arrays como argumentos para o desde una función o procedimiento es ineficiente
porque EES almacena los elementos de la matriz como variables independientes. A menudo, la
única razón por la matriz se pasa de una función o procedimiento es para que pueda ser vista o
graficado. Es posible visualizar los arrays que se utilizan en una función o procedimiento en su
propio pestañas Arrays ventana de tabla mediante la colocación de una
$ Matrices en cualquier lugar dentro de la función directiva o
procedimiento.

El siguiente ejemplo calcula la temperatura de un objeto que está inicialmente en Tini y se somete
a la convección y la radiación a partir de un entorno a T∞. El área de superficie del objeto es
medida y la capacidad de calor total es C. El coeficiente de transferencia de calor por convección
es h y el objeto
se supone que tiene una emisividad de ε = 1. Suponiendo que el objeto está a una temperatura
uniforme,
la tasa de tiempo de cambio de su temperatura está
dada por:
     4
 
4

dT  UNs h T UNs TT 


T 
 (3-6)
dt C
10 Capítulo 3: Funciones y
4 Procedimientos
donde σ es la constante de Stefan-Boltzmann. El comando Integral, discutido en el capítulo
7,proporciona una poderosa técnica para integrar numéricamente las ecuaciones diferenciales en
EES. Sin embargo, aquí vamos a escribir una temperatura denominada función que utiliza un
simple Euler numérica técnica de integración para determinar la temperatura del objeto después
de una duración especificada de hora. Los argumentos de la función son la duración de tiempo
para simular (duración), la transferencia de calor
Capítulo 3: Funciones y 101
Procedimientos
coeficiente (h_bar), área de superficie (A_S), la temperatura inicial (T_ini), temperatura ambiente
(T_infinity), la capacidad de calor (C), y el número total de pasos de tiempo (N).

Función de temperatura (duración, h_bar, A_S, T_ini, T_infinity, C, N)

La duración de cada paso de tiempo se calcula de


acuerdo con:
(3-7)
duración
t  norte

DTIME: = duración / N "Hora de caminar"

La temperatura en el momento inicial (T1) es la temperatura inicial y el tiempo inicial (tiempo1)


es cero. El índice del paso de tiempo (i) se establece inicialmente en 1.

T [1]: = T_ini "Temperatura inicial"


tiempo [1]:
= 0 i: = 1

Cada paso de tiempo se toma utilizando un Repeat-Hasta constructo. Dentro de la construcción, el


tiempo en el índice i + 1 se calcula:

horayo1 horayo t (3-8)

El uso de la técnica de Euler para integrar la ecuación. (3-6) conduce a la temperatura en el índice i
+ 1:
Una h  T T UN  T 4 T 4  
Ty 
s   yo 
t
yo s
Tyo1 (3-9)
o C

Por último, se incrementa el índice. El bucle se termina cuando i> N.

Repetir
tiempo [i + 1] = tiempo [i] + DTIME
T [i + 1] = T [i] + (A_S * h_bar * (T_infinity-T [i]) + A_S * sigma # * (T_infinity ^ 4-T
[i] ^ 4)) * DTIME / C i: = i + 1
Hasta (i> N)

La salida de la función se asigna a ser la temperatura en el índice N + 1.

Temp = T [N + 1]
Fin
al

La Temperatura de función se prueba con entradas arbitrarias:


100 Capítulo 3: Funciones y
Procedimientos
N = 5
[-]
duración = 100 [s] "Duración del proceso"
h_bar = 100 [W / m ^ 2-K] "Coeficiente de transferencia de calor"
A_S = 0,01 [m ^ 2] "área de superficie"
T_ini = 300 [K] "Temperatura inicial"
T_infinity = 500 [K] "temperatura ambiente"
C = 100 [J / K] "Capacidad total de calor"
T_final = Temperatura (duración, h_bar, A_S, T_ini, T_infinity, C, N)
"Temperatura final"

lo que lleva al resultado T_final = 449 K. Tenga en cuenta que las unidades de las variables
utilizadas en el Temp de la función se pueden establecer más fácilmente ser la selección de la
opción TEMP Función del menú desplegable en el cuadro de diálogo de información variable y
seleccionando de-la Exposición opción de variables de matriz. De esta manera, todas las unidades
en las matrices T [] y hora [] se pueden especificar al mismo tiempo, como se muestra en la figura
3-11.

Figura 3-11: La TEMP función página del diálogo de información variable.

Las matrices T [] y hora [] no se pasan de la parte posterior del espacio de trabajo función para el
programa EES. Las variables de matriz desde la última llamada a la función están disponibles
mediante el examen de la pestaña de temperatura de la ventana de soluciones, como se muestran
en la figura 3-12.

Figura 3-12: Temperatura pestaña de la ventana de Soluciones.


102 Capítulo 3: Funciones y
Procedimientos
Puede haber ocasiones en las que es útil para trazar los resultados contenidos en las matrices que
se utilizan dentro de una función o un procedimiento. Las variables de matriz asociadas a la
última llamada a la función de temperatura pueden ser colocados en una tabla separada matrices
mediante la colocación de las matrices $ sobre la Directiva en la parte superior de la función.

Función de temperatura (duración, h_bar, A_S, T_ini, T_infinity, C, N)

$ Arrays En
DTIME: = duración / N "Hora de caminar"
T [1]: = T_ini "Temperatura inicial"
tiempo [1]:
= 0 i: = 1
Repetir
tiempo [i + 1] = tiempo [i] + DTIME
T [i + 1] = T [i] + (A_S * h_bar * (T_infinity-T [i]) + A_S * sigma # * (T_infinity ^ 4-T
[i] ^ 4)) * DTIME / C i: = i + 1
Hasta (i> N)
Temp = T [N
Fin + 1]
al

La ventana de matrices para la función de temperatura se muestra en la Figura 3-13(un). Los


datos almacenados en la Ventana de matrices se pueden representar, como se muestra enFigura
3-13(si). Tenga en cuenta que la directiva $ matrices Off se puede utilizar para restaurar las
variables de matriz a la ventana de soluciones.

(a) (si)
Figura 3-13: (a) de la ventana Arrays para la Temperatura función y la temperatura (b) como una función del
tiempo.

3.7Los procedimientos de alerta y de error


Los procedimientos de aviso y de error proporcionan un medio de mostrar mensajes de
advertencia o error. los
procedimientos de aviso y de error sólo se pueden llamar desde dentro de una función interna
o procedimiento.
Capítulo 3: Funciones y 103
Procedimientos
El procedimiento de
alerta
El procedimiento de alerta genera un mensaje de advertencia que se coloca en la cola de mensajes
de advertencia. La cola de mensajes de advertencia se muestra después de los cálculos se realizan
siempre que Advertencias están habilitadas. Las advertencias se pueden activar haciendo clic en
las advertencias de la caja de la barra de estado en la parte inferior de la ventana de ecuaciones,
como se muestran en la figura 3-14.

Figura 3-14: advertencias de la caja de la barra de estado Ecuaciones Ventana.

Las advertencias también se pueden activar mediante la colocación de un $ advertencias sobre


la Directiva en la ventana de ecuaciones o seleccionando la casilla de verificación Mostrar
mensajes de advertencia en la ficha Opciones del cuadro de diálogo Preferencias.

El procedimiento de alerta puede ser llamada con una cadena de alerta previsto en
función de:

Aviso de llamada ( 'Mi cadena de


advertencia')

donde la cadena contendría un mensaje descriptivo sobre el problema. En este caso, EES generará
el mensaje de advertencia contenida en la cadena. El procedimiento de alerta también se puede
llamar tanto con una cadena de advertencia y una variable numérica, de acuerdo con:

Advertencia de Llamada ( 'Mi cadena de


advertencia, XXXF1', Y)

donde Y es un número o una variable numérica. En este caso, los caracteres XXX en la cadena
serán reemplazados por el valor de la Y. parámetro Si una opción de formato (por ejemplo, F1
para decimal fijo con una cifra significativa en la llamada anterior) sigue a los personajes XXX
entonces la visualización de la variable Y será formateado en consecuencia. Si no se proporciona
ningún formato, se asume formato automático. El procedimiento de alerta puede ser llamada con
una cadena de advertencia y una variable de cadena, de acuerdo con:

Advertencia de Llamada ( 'Mi cadena de


advertencia, XXX $', Y $)

donde Y $ es una variable de cadena. En este caso, la cadena contenida en Y $ reemplazará los
caracteres XXX $ cuando se emite la advertencia. Por último, el procedimiento de alerta se puede
llamar con sólo una variable numérica:

Call Advertencia
(Y)

En este caso, EES generará el siguiente mensaje de advertencia genérica: "Un mensaje de
advertencia se emitió debido al valor XXX en ZZZ". Donde los personajes XXX será reemplazado
con el valor de Y y el ZZZ caracteres serán reemplazados por el nombre de la función o
procedimiento en el que aparece la instrucción de llamada de advertencia.

Como un ejemplo, una llamada al procedimiento de alerta ha sido añadido a la función de Nusselt
104 Capítulo 3: Funciones y
que fue presentado en la Sección 3.4. El procedimiento Procedimientos
de alerta se llama si el número de
Reynolds proporcionada por el usuario está fuera de la gama de la correlación.
Capítulo 3: Funciones y 105
Procedimientos
Función de Nusselt (Re, Pr,
RR)
"Flujo laminar asumir es"
Nusselt = 4,36 [-] "Flujo laminar número de Nusselt"
si (Re <2,300) a continuación, volver "Retorno si el flujo es laminar"

"Asumir Reynolds es turbulento"


f = (-2 * log10 (2 * RR / 7,54-5,02 * log10 (2 * RR / 7,54 + 13 / Re) / Re)) ^ (- 2) "factor de fricción"
Nusselt = f / 8 * (Re-1000) * Pr / (1 + 12,7 * (Pr ^ (2/3) -1) * sqrt (f / 8)) "Correlación Gnielinski"
si (Re <= 5E6) a continuación, volver "Re devolución si no está fuera de
alcance"

"Número de Reynolds debe estar fuera de alcance"


Advertencia de llamada ( 'número de Reynolds debe ser <= 5E6 en la
función se proporcionó Nusselt. Y Un valor de XXXE2', Re)
Nusselt = -9 [-] "Re valor si está fuera de alcance"
final

Llamando a la función con los siguientes argumentos:

Nu # _outofRange = Nusselt (6E6,0.7,0.001) "Prueba de flujo turbulento"

se mostrará la advertencia muestrann en la figura 3-15 (Siempre que las advertencias están
habilitados).

Figura 3-15: Mensaje de advertencia aparece cuando la función Nusselt se llama con Re = 6E6.

Los cálculos completarán y la Ventana Soluciones indicarán que el valor de la variable Nu #


_outofRange ha sido ajustada y que 1 advertencia fue emitida, como se muestran en la figura 3-
16.

Figura 3-16: Ventana Solutions.


106 Capítulo 3: Funciones y
Procedimientos
El error de
procedimiento
El procedimiento de error tiene el mismo formato que llama como el procedimiento de alerta. La
diferencia es que el mensaje de error se mostrará independientemente de si las advertencias se
habilitan o no, y los cálculos se detendrá inmediatamente después de que aparezca el mensaje. Si
llamada de advertencia se reemplaza por error de llamada en el ejemplo anterior,

Error de llamada ( 'número de Reynolds debe ser <= 5e6 en función


de Nusselt. Y se proporcionó un valor de XXXE2', Re)

a continuación, el mensaje de error se muestra en la Figura 3-17 se visualizará cuando el resolver


se emite el comando.

Figura 3-17: Mensaje de error aparece cuando se llama a la función Nusselt con Re = 6E6.

Al hacer clic en el botón Rastreo mostrará la línea que inició el mensaje de error siempre que el
código se encuentra en la ventana de ecuaciones en lugar de en un archivo de biblioteca
almacenada en el disco

referencias
Churchill, SW 1977, 'Factor de fricción abarca todos los regímenes de flujo de fluidos,' Chem.
Ing. (Rugby, Reino Unido) 84 (24), pp.91-91.

Klein, SA y Nellis, GF, Termodinámica, Cambridge University Press, Nueva York, (2012). Nellis,

GF, y Klein, SA, transferencia de calor, Cambridge University Press, Nueva York, (2009).

También podría gustarte