Main Content

Utilizar tablas de búsqueda en ecuaciones

Se puede utilizar la función tablelookup en la sección equations del archivo Simscape™ para interpolar valores de entrada basados en un conjunto de puntos de datos en una tabla unidimensional, bidimensional, tridimensional o cuatridimensional. Esta funcionalidad es similar a la de los bloques Lookup Table de Simulink® y Simscape. Permite incorporar el modelado basado en tablas directamente en bloques personalizados, sin necesidad de conectar un bloque Lookup Table externo al modelo.

El siguiente ejemplo implementa la correspondencia entre temperatura y presión utilizando una tabla de búsqueda unidimensional.

component TtoP
 inputs
   u = {0,'K'}; % temperature
 end
 outputs
   y = {0,'Pa'}; % pressure
 end
 parameters 
   xd = {[100 200 300 400] 'K'};
   yd = {[1e5 2e5 3e5 4e5] 'Pa'};
 end
 equations
   y == tablelookup(xd,yd,u,interpolation=linear,extrapolation=nearest);
 end
end

xd e yd se declaran como parámetros con unidades. Esto permite a los usuarios del bloque proporcionar sus propios conjuntos de datos cuando el componente se convierte en un bloque personalizado, así como seleccionar unidades proporcionales de las listas desplegables del cuadro de diálogo del bloque personalizado. La siguiente ilustración muestra el cuadro de diálogo del bloque personalizado generado a partir de este componente.

Nota

Para evitar repetir las mismas declaraciones de parámetros en cada componente que necesite utilizarlas en la función tablelookup, puede declarar conjuntos de datos de tabla como parámetros de dominio y propagarlos a los componentes con fines de interpolación. Para obtener más información, consulte Propagation of Domain Parameters.

Las siguientes reglas se aplican a los arreglos unidimensionales xd e yd:

  • Los dos arreglos deben ser del mismo tamaño.

  • Para garantizar una interpolación fluida, cada arreglo debe contener al menos tres valores. Para la interpolación lineal, dos valores son suficiente.

  • Los valores xd deben ser estrictamente monotónicos, ya sean crecientes o decrecientes.

El componente TtoP utiliza la interpolación lineal para valores dentro del rango de la tabla, pero emite el valor más cercano de yd para valores de entrada fuera del rango. La siguiente ilustración muestra un diagrama de bloques, en el que se utiliza el bloque TtoP personalizado con una señal de entrada lineal que cambia de 0 a 1.000, y la salida resultante.

Para más detalles de la sintaxis y ejemplos, consulte la página de referencia tablelookup.

Temas relacionados