Download Funciones y Variables
Document related concepts
Transcript
GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER Funciones Evolución y Variables con Variables Internas Funciones Internas Funciones Estándar Funciones propias de Evolución Funciones definidas por los usuarios Variables internas Las variables internas no se pueden modificar pero si se pueden utilizar para definir las ecuaciones del modelo. Si se trata de crear un elemento del modelo con alguno de estos nombres se producirá un mensaje de error. 1. TRUE – Constante booleana Verdadera 2. FALSE – Constante booleana Falsa 3. PI - número PI (3.14159...) – Constante. 4. LN2 - ln(2) – Constante. 5. T – Tiempo de la simulación. 6. DT – Paso de la simulación. 7. VINICIAL – Valor Inicial de la simulación. 8. VFINAL – Valor Final de la simulación. 9. NITERACION – Número de la iteración en que va la simulación. GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER Funciones internas Existen 2 grupos de funciones, las funciones estándar de los compiladores modernos y las funciones que son propias de Evolución 3.5. Funciones Estándar Dentro de las funciones estándar tenemos 7 grupos: Funciones Aleatorias Este grupo contiene las funciones que dependen de un generador de números aleatorios. Las llamadas sucesivas a estas funciones producen resultados aleatorios de acuerdo a una función de probabilidad. 1. EXPRND(Media) – Números aleatorios distribuidos exponencialmente. 2. NORMAL(Media, Desviación) - Números aleatorios distribuidos normalmente. 3. RANDOM(Min, Máx) - Números aleatorios distribuidos uniformemente en un intervalo. Funciones de Conversión Este grupo contiene funciones que convierten un valor de un tipo en otro. 1. DEGTORAD(ángulo) - Convierte de grados sexagesimales a radianes. 2. DEGTOGRAD(ángulo) - Convierte de grados sexagesimales a gradientes. 3. GRADTODEG(ángulo) - Convierte de gradientes a grados sexagesimales. 4. GRADTORAD(ángulo) - Convierte de gradientes a radianes. 5. RADTODEG(ángulo) - Convierte de radianes a grados sexagesimales. 6. RADTOGRAD(ángulo) - Convierte de radianes a gradientes. 7. PRED(X) - Convierte un número en el entero anterior más cercano. 8. SUC(X) - Convierte un número en el entero siguiente más cercano. 9. ROUND(X) - Convierte un número en el entero más cercano. 10. PCT(X) - Convierte un número en un porcentaje (divide por 100). 11. INVPCT(X) – Convierte un porcentaje en un número (multiplica por 100). 12. BOOL(X) – Convierte el valor X en un boleano. Si x > 0 devuelve TRUE (1) de lo contrario devuelve FALSE (0). GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER 13. ABS(X) – Valor absoluto de X. 14. INT(X) - Extraer la parte entera. 15. FRAC(X) - Extraer parte fraccional. 16. SIGN(X) – Retorna 1 para X>0, 0 para X = 0 y -1 para X<0. Funciones Especiales Este grupo contiene funciones que producen una salida predefinida utilizando implícitamente el tiempo de simulación actual como una señal de entrada. 1. PULSE – Pulso periódico. 2. STEP(Altura, TiempoPaso, T) - Función paso. 3. RAMPA(Pendiente, Primero) - Función lineal rampa. Funciones Lógicas Este grupo contiene funciones que manipulan valores lógicos o valores de verdad. Esto incluye a las funciones que utilizan los valores lógicos como parámetros y a las que retornan un valor lógico como resultado. Evolución 3.5 no trata a los valores lógicos como a un tipo de datos separado, sino que utiliza los números negativos y el cero para representar el valor lógico FALSO y los números positivos para representar el valor lógico VERDADERO. Funciones Lógicas que utilizan valores lógicos o booleanos: 1. IF(X, Y, Z) - IF(X,Y,Z) si X<0 entonces se retorna Y sino se retorna Z. 2. PULSE IF – Pulso condicional. 3. NOT(Condición) - Negación lógica. 4. AND(Condición) – Y lógico (conjunción). 5. OR(Condición) – O lógico inclusivo. 6. XOR(Condición) – O lógico exclusivo. Funciones Lógicas que producen valores lógicos o booleanos como resultado: 1. < Menor que. 2. <= Menor o Igual que. 3. > Mayor que. 4. >= Mayor o Igual que. GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER 5. = Igual que. 6. <> Diferente que. 7. AND(Condicion1, Condicion2 ... CondicionN) - Y lógico (conjunción). 8. BOOL - Convierte un valor en boleano (0 o 1). 9. FALSE - La constante 0 que representa falso. 10. NOT - Negación lógica. 11. OR(Condicion1, Condicion2 ... CondicionN) - O lógico inclusivo. 12. TRUE - La constante 1 que representa verdadero. 13. XOR(Condicion1, Condicion2 ... CondicionN) - O lógico exclusivo. Funciones Matemáticas Las funciones matemáticas son aquellas que realizan cálculos matemáticos. Se pueden dividir en operadores matemáticos y funciones propiamente dichas. Los operadores matemáticos se clasifican en operadores unarios y operadores binarios. Operadores matemáticos: 1. + Adición y Más unario 2. – Substracción y Menos unario 3. * Multiplicación 4. / División Funciones matemáticas: 1. SQRT(X) – Raíz cuadrada. 2. EXP(X) – Exponente. 3. LN(X) – Logaritmo natural. 4. LG(X) – Logaritmo decimal. 5. SQR(X) - Cuadrado ó X * X. 6. CUBE(X) – Cubo ó X * X * X. 7. POW(X, Y) - Power(base,exp) ó X^Y. 8. CHS - chs(arg) = -arg, cambia el signo. 9. SUM(X, Y,..) – Devuelve la suma de todos los argumentos. El número de parámetros no tiene límite. GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER 10. PROD(X, Y,..) - Productoria de los parámetros. El número de parámetros no tiene límite. 11. FACT(X) – Función factorial X!=X*(X-1)*(X-2)*...*1 12. BINOM(N, K) – Coeficiente binomial BINOM(N, K)=N!/(K!*(N-K)!). 13. MOD(X,Y) – Retorna el residuo obtenido de una división entera entre X y Y. Funciones Trigonométricas 1. SIN(X) – Seno. 2. COS(X) – Coseno. 3. TAN(X) – Tangente. 4. COTAN(X) – Cotangente. 5. ATAN(X) - Arc Tangente. 6. ACOS(X) - Arc Coseno. 7. ASIN(X) - Arc Seno. 8. COSH(X) – Coseno Hiperbólico. 9. SINH(X) – Seno Hiperbólico. 10. TANH(X) - Tangente Hiperbólica. 11. ACOSH(X) - Arc – Coseno Hiperbólico. 12. ASINH(X) - Arc – Seno –Hiperbólico. 13. ATANH(X) - Arc - Tangente Hiperbólica. Funciones Misceláneas 1. MIN(X, Y,..) – Retorna el menor de los parámetros. El número de parámetros no tiene límite. 2. MAX(X, Y,..) - Retorna el mayor de los parámetros. El número de parámetros no tiene límite. Funciones propias de Evolución 1. INTLINEAL(extrapolación, x1, dx, y1, y2,..., yn) - Interpolación lineal. Sólo es válida para tablas. GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER 2. INTSPLINE(extrapolación, x1, dx, y1, y2,..., yn) - Interpolación polinomial. Sólo es válida para tablas. 3. INTPASO(extrapolación, x1, dx, y1, y2,..., yn) - Interpolación horizontal. Sólo es válida para tablas. 4. RETARDO(fuente de datos, tiempo de ajuste, orden, valor inicial) - Sólo es válida para Retardos. 5. SUMARETARDO(Retardo) – Devuelve el valor de la suma de los n niveles dentro del retardo especificado. Funciones definidas por los usuarios La versión actual de Evolución cuenta con más de 65 funciones incluidas en el paquete básico, además de los signos de operaciones y de condiciones. Para dar mayor robustez al software, Evolución permite agregar nuevas funciones desarrolladas por el usuario y que permite que cada usuario cree su propia biblioteca de funciones que haga más cómodo la creación de modelos. Esto es posible a través de una Biblioteca de Vínculos Dinámicos (DLL), implementadas en cualquier lenguaje de programación de alto nivel como C++, Visual C++, Visual Basic, Delphi, etc. Para implementar una nueva función que funcione en Evolución 3.5 siga los siguientes pasos: Cree la Biblioteca: Para ello usted debe usar un lenguaje de programación de alto nivel como los especificados anteriormente. Si usa Delphi 6.0 siga los siguientes pasos para la creación de una biblioteca de enlace dinámico: 1. Ejecute el programa Delphi 6.0. 2. En el menú Archivo (File) seleccione el ítem Nuevo (New...), ejecute la opción otros (Other...) y seleccione el ícono: 3. Cree sus funciones usando las directivas correspondientes de Delphi 6.0 y con el siguiente formato: Function miFuncion(Parametros: array of Extended):Extended; Begin <Cuerpo de la Función> End; 4. Use la directiva Exports para indicar cuales de las funciones implementadas pueden ser usadas por otros programas, así: Exports miFuncion; GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER 5. Guarde: Ctrl + S ó Archivo/Guardar. 6. Compile la biblioteca: ctrl. + F9 ó Proyecto/Compilar. 7. Usted necesitara el archivo compilado (.dll), que se guarda en la misma dirección donde guardó el archivo del proyecto Delphi. El siguiente ejemplo muestra como debe quedar su librería: library Prueba; uses SysUtils, Classes; {$R *.RES} Function Factorial(Parametros: array of Extended):Extended; Var i:integer; begin Result:=1; for i := 0 to Round(Parametros[0]) do Result:=Result*i; end; exports factorial; begin end. Es importante que su librería reciba los parámetros aquí especificados y devuelva un valor de tipo extended o un dato numérico de diez bytes. Agregue la función en Evolución, para ello utilice la opción “Agregar Funciones” del menú archivo de Evolución. GRUPO SIMON DE INVESTIGACIONES EN MODELAMIENTO Y SIMULACIÓN ESCUELA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA UNIVERSIDAD INDUSTRIAL DE SANTANDER donde: Archivo fuente: Especifica la ruta donde se encuentra el archivo físico de la biblioteca dinámica por ejemplo ‘C:\Librerias\prueba.dll’ Nombre de la Función: Especifica el nombre de la función que usted le colocó en la biblioteca por ejemplo ‘Factorial’, es importante que el nombre de su función no exceda los diez caracteres y que no use caracteres especiales. Además debe tener en cuentas las mayúsculas. Descripción: Es el valor que se desea mostrar en Evolución al momento de mostrar la función, así si su descripción es ‘(Valor)’ Evolución mostrara en el editor de elementos ‘Factorial (Valor)’ No de Parámetros: Especifica el número de parámetros que recibe su función, si su función no recibe un numero de parámetros fijo, es decir, pueden ser dos o tres o infinitos, usted debe colocar cero (0) en esta casilla. LISTO, Ahora sus funciones quedaron agregadas a la lista de funciones del editor de elementos de Evolución 3.5.