Magnitudes físicas
Uno de los puntos fuertes de FPScript es el cálculo con cantidades físicas, que se componen de valor y unidad. FPScript no solo gestiona el símbolo de la unidad, sino también la dimensión SI, lo que permite comprobar la compatibilidad de distintas unidades y transformarlas si es necesario.
Introducir cantidades
Una constante se convierte en magnitud física cuando se le añade una unidad. El valor de una magnitud física puede tener el tipo de datos en coma flotante de 32 o 64 bits, real o complejo. No se admiten magnitudes físicas con números enteros como tipo de datos.
La unidad se escribe después de la constante, separada por un espacio, por ejemplo,
1,3 N
Las unidades grados (°), minutos (') y segundos ('') son una excepción. Se escriben directamente después del valor numérico sin espacios:
15° + 30´ + 45´´
o
15° + 30' + 45"
Se pueden formar nuevas unidades a partir de la mayoría de las unidades utilizando un prefijo SI:
1 kHz
1 MHz
1 µm
FPScript también acepta la notación con u en lugar de µ para el prefijo "micro", utilizada frecuentemente:
1 um es igual a 1 µm
Sin embargo, cuando se escribe sola, la u se interpreta como el símbolo de la unidad de masa atómica unificada:
1 u es igual a 1 Da, igual a 1 dalton
FPScript acepta el símbolo o el nombre de una unidad. El símbolo distingue entre mayúsculas y minúsculas, pero con el nombre esto no es relevante. Las notaciones correctas son:
5 V
5 mV
5 Volt
5 volt
5 Milivolt
2 Ω
2 Ohm
Sin embargo, no se aceptan:
5 mVolt
5 Volts
Las unidades derivadas pueden construirse como producto de potencias de unidades conocidas:
1 N m
1 N*m
1 N-m
Los exponentes se introducen con el carácter ^:
1 m s^-2
FPScript también acepta dígitos en superíndice para los exponentes 2 y 3:
1 m²
1 m³
En lugar de exponentes negativos, también se puede utilizar el carácter / (división):
1 m/s^2
1 1/min
Preste atención a los paréntesis correctos:
1 m/(s kg)
Si ajusta el monitoreo de unidades en la pestaña Gestión de unidades del cuadro de diálogo de propiedades de la base de datos del proyecto en Tolerante, puede omitir el espacio o el signo de multiplicación entre las unidades elementales:
1 Ws
Sin embargo, esto significa que también pueden producirse interpretaciones no deseadas, por ejemplo
5 Volts
se acepta como
5 V·o·l·t·s
que equivale a 5 voltio·octeto·litro·tonelada·segundo.
Nota Puede evitar interpretaciones erróneas utilizando solo símbolos de unidad y separándolos con espacios. Utilice µ y no u para el prefijo "micro". Preste especial atención a las mayúsculas/minúsculas, tanto en los prefijos como en los símbolos de unidad. Errores típicos son S (Siemens=conductancia) en lugar de s (segundo=tiempo) o M (mega=106) en lugar de m (mili=10-3).
También se pueden utilizar exponentes racionales. El siguiente ejemplo muestra el franklin del sistema de unidades Gauss en unidades SI:
1 g^(1/2) cm^(3/2) s^-1
Las unidades pueden contener un factor previo y un offset. El siguiente ejemplo muestra la unidad ° Fahrenheit en la unidad SI Kelvin:
1 0.555555555555555K+255.3722222222222
En caso de ambigüedad, debe poner la unidad entre comillas:
Dim s = 2
v = 3 'Vs'*s
Esto también es necesario si hay un factor previo negativo:
5 '-1.602176487E-19 C'
Comprobar el símbolo de unidad
FlexPro divide una unidad en sus elementos durante la traducción y guarda los símbolos de unidad de los elementos individualmente con sus correspondientes exponentes. Además, el símbolo de unidad se guarda como un símbolo de unidad personalizado según se especifique. Para:
1 N m/(1/min)
se guarda, por tanto, como símbolo personalizado "Nm/(1/min)" y como símbolos de las unidades elementales "N", "m", "min" con los exponentes 1, 1, 1. Cuando se calculan unidades diferentes, el símbolo personalizado se descarta y el símbolo de la unidad resultante se reconstruye a partir de los símbolos de las unidades elementales:
1 N m/(1/min) * 1 min^-1
devuelve:
1 N m
Puede sustituir el símbolo personalizado con la función ChangeUnitSymbol sin que ello afecte a la unidad. También puede eliminarlo utilizando la misma función. FlexPro regenera entonces el símbolo de la unidad a partir de las unidades elementales. Para el ejemplo anterior, el resultado es "N m min".
Cálculo de cantidades
FPScript ajusta las unidades entre sí antes de calcular las cantidades. La siguiente expresión FPScript:
1 V + 2 mV
devuelve, por ejemplo, el resultado 1,002 V y no el valor 3, que sería el resultado de un cálculo que no tuviera en cuenta la unidad. El operando derecho se transforma a la unidad del operando izquierdo antes de la suma.
Lo mismo ocurre con las operaciones de comparación:
5 mV < 1 V
devuelve TRUE y no FALSE, por ejemplo.
Otra fuente frecuente de error en el cálculo puramente numérico de ecuaciones cuantitativas es el cálculo de unidades incompatibles. La expresión:
1 A + 2 V
genera un mensaje de error en FPScript porque las unidades amperio y voltio tienen dimensiones SI diferentes.
1 km + 5 NM
es admisible, ya que la milla náutica puede convertirse en kilómetros.
Cuando los valores, es decir, los números puros, se calculan con cantidades, el valor asume implícitamente la unidad de la cantidad:
1 V + 2 = 2 + 1 V = 3 V
Este principio básico, que también se aplica a las operaciones de comparación y de otro tipo, así como a los argumentos de función, facilita la escritura de código FPScript "neutro en unidades".
En algunas operaciones, la unidad del resultado se forma a partir de las unidades de los argumentos:
1 m / 2 s
devuelve como resultado 0.5 m/s.
(1 m) ^ 2
devuelve 1 m^2 como resultado.
Con datos vectoriales, es decir, series y matrices de datos, todos los elementos tienen siempre la misma unidad. Sin embargo, los componentes individuales de una estructura de datos compuesta pueden tener unidades diferentes, por ejemplo, el componente Y de una señal puede tener la unidad Nm y el componente X la unidad s.
Las unidades no solo se tienen en cuenta en los operadores FPScript, sino también en todas las funciones FPScript:
Derivada(trayecto)
proporciona, por ejemplo, la velocidad en la unidad m/s en el caso de que la distancia sea una señal de tiempo con la unidad X s y la unidad Y m.
Dependiendo de la configuración de la gestión de unidades, FPScript también permite unidades desconocidas que no se pueden transformar, por ejemplo:
1 Dummy + 3 Dummy
da como resultado 4 Dummy.
El operador Value determina el valor de una cantidad:
El valor 5 mm
devuelve el valor 5 en coma flotante de 64 bits.
Puede utilizar el operador Unit para transformar la unidad de una cantidad:
Unit<mm> 2 cm
devuelve como resultado 20 mm.
Nota El comportamiento de FPScript con respecto al procesamiento de unidades depende del monitoreo de unidades establecido en la pestaña Gestión de unidades del cuadro de diálogo de propiedades de la base de datos del proyecto.
Cálculo de unidades
Puede utilizar la función Unit para extraer la unidad de una cantidad:
Unit(5.3 V)
Aquí se devuelve una serie de datos con dos valores:
Unit({56 V, 7.8 V})
Ambas llamadas devuelven 1 V como resultado.
Por lo tanto, puede realizar cálculos de unidades y utilizar la función AdjustUnit para transformar una cantidad a la unidad resultante:
AdjustUnit(frecuencia, 1 / Unit(tiempo))
La unidad de frecuencia se transforma en el recíproco de la unidad de tiempo.
Cálculo de porcentaje con las unidades % y ppm
Si está activada la opción Archivo > Información > Propiedades de la base de datos del proyecto > Gestión de unidades > Cálculo de porcentaje con las unidades % y ppm, las operaciones aritméticas básicas suma y resta para operandos con la unidad % o ppm se calculan de forma especial en el lado derecho:
200 m + 10 % = 200 m + 200 m * (10/100) = 220 m
200 m - 10 % = 200 m - 200 m * (10/100) = 180 m
Para todas las demás operaciones, las unidades % y ppm se convierten primero a la unidad 1:
200 m * 20 % = 200 m * (20/100) = 40 m
200 m / 20 % = 200 m / (20/100) = 1000 m
Las unidades % y ppm solo se conservan si el operando de la derecha no tiene unidad:
10 % * 3 = 30 %
La unidad ppm se calcula de forma análoga con el factor 1.000.000 en lugar de 100.