Main Content

LPV System

Simular sistemas lineales de parámetros variantes (LPV)

  • LPV System block

Bibliotecas:
Control System Toolbox / Linear Parameter Varying

Descripción

Un sistema lineal de parámetros variantes (LPV) es un modelo lineal de espacio de estados cuya dinámica varía en función de ciertos parámetros de tiempo variante denominados parámetros de programación. En MATLAB®, los modelos LPV se representan en forma de espacio de estados utilizando coeficientes dependientes de los parámetros.

En términos matemáticos, puede representar un sistema LPV de la siguiente forma.

dx(t)=dx0(p)+A(p)(x(t)x0(p))+B(p)(u(t)u0(p))y(t)=y0(p)+C(p)(x(t)x0(p))+D(p)(u(t)u0(p))x(0)=xinit

En este caso:

  • u(t) son las entradas

  • y(t) son las salidas

  • x(t) son los estados del modelo con valor inicial xinit

  • dx(t) es el vector de derivadas de estados x˙ para sistemas de tiempo continuo y el vector de actualización de estados x[k+1] para sistemas de tiempo discreto. En este caso, k es el índice entero que cuenta el número de periodos de muestreo Ts.

  • A(p), B(p), C(p) y D(p) son las matrices de espacio de estados parametrizadas por el vector de parámetros de planificación p.

  • Los parámetros p = p(t) son funciones medibles de las entradas y los estados del modelo. Pueden ser una cantidad escalar o un vector de varios parámetros. El conjunto de parámetros de programación define el espacio de programación sobre el que se define el modelo LPV.

  • dx0(p), x0(p), u0(p) y y0(p) son las compensaciones en los valores de dx(t), x(t), u(t) e y(t) para un valor determinado del parámetro p = p(t) o p[k].

    Las compensaciones se pueden obtener devolviendo información adicional de linealización al llamar a las funciones linearize (Simulink Control Design) o getIOTransfer (Simulink Control Design). Para ver un ejemplo, consulte LPV Approximation of Boost Converter Model (Simulink Control Design).

Precaución

Evite que C(p) y D(p) dependan de la salida del sistema y. De lo contrario, la ecuación de espacio de estados resultante y = C(y)x + D(y)u crea un bucle algebraico, ya que calcular el valor de salida y requiere conocer el valor de salida. Este bucle algebraico tiende a ser inestable y divergente. En su lugar, intente expresar C y D en términos de tiempo t, la entrada de bloque u y las salidas de estado x.

Por motivos similares, evite planificar A(p) y B(p) basándose en la salida dx. Tenga en cuenta que no introducirá inestabilidades que A y B dependan de y cuando y es una combinación fija de estados y entradas (dicho de otra forma, cuando y = Cx + Du, donde C y D son matrices constantes).

El bloque implementa una representación en forma de cuadrícula del sistema LPV. Se elige una cuadrícula de valores para los parámetros de programación. En cada valor p = p* se especifica el sistema lineal correspondiente como objeto de modelo de espacio de estados (ss o idss (System Identification Toolbox)). Para configurar el bloque LPV System se utiliza el arreglo generado de modelos de espacio de estados.

El bloque admite un arreglo de modelos de espacio de estados con información sobre el punto de funcionamiento. El bloque extrae la información sobre las variables de planificación de la propiedad SamplingGrid del arreglo LTI. Las variables de programación definen la cuadrícula de los modelos LPV. Son cantidades de valor escalar que pueden ser funciones de tiempo, entradas y estados, o constantes. Se utilizan para elegir la dinámica local en el espacio operativo. El software interpola los valores de estas variables. El bloque utiliza este arreglo con técnicas de interpolación y extrapolación de datos para la simulación.

Ejemplos

expandir todo

Considere un modelo LPV de dos entradas, tres salidas y cuatro estados. Utilice la entrada u(2) y el estado x(1) como parámetros de programación. Configure el modelo de Simulink® como se muestra en la siguiente figura.

Considere un sistema lineal masa-resorte-amortiguador cuya masa cambia en función de un comando de carga externa. La ecuación que rige este sistema es la siguiente.

m(u)y¨+cy˙+ky=F(t)

En este caso, m(u) es la masa dependiente del comando externo u, c es el coeficiente de amortiguación, k es la rigidez del muelle y F(t) es la aplicación de la fuerza. Por su parte, y(t) es la posición de la masa en un momento t dado. Para un valor fijo de u, el sistema es lineal y se expresa como:

A=[01-km-cm],

B=[01m],

C=[10]

x˙=Ax+Buy=Cx

donde x=[yy˙] es el vector de estado y m es el valor de la masa para un valor dado de u.

En este ejemplo, se quiere estudiar el comportamiento del modelo en un rango de valores de entrada de 1 a 10 V. Para cada valor de u, mida la masa y calcule la representación lineal del sistema. Supongamos que la masa está relacionada con la entrada según la relación m(u)=10u+0.1u2. Para valores de u del 1 al 10, se obtiene el siguiente arreglo de sistemas lineales.

c = 5;   
k = 300; 
u = 1:10;
m = 10*u + 0.1*u.^2;
for i = 1:length(u)
   A = [0 1; -k/m(i), -c/m(i)];
   B = [0; 1/m(i)];
   C = [1 0];
   sys(:,:,i) = ss(A,B,C,0); 
end

La variable u es la entrada de programación. Añada esta información al modelo.

sys.SamplingGrid = struct('LoadCommand',u);

Configure el bloque LPV System:

  • Introduzca sys en el campo State-space array.

  • Conecte el puerto de entrada par a una señal fuente unidimensional que genere los valores del comando de carga. Si la fuente proporciona valores entre 1 y 10, el bloque utiliza la interpolación para calcular el modelo lineal en un momento determinado. De lo contrario, el bloque utiliza la extrapolación.

Simule el modelo LPV con la aplicación de una fuerza constante de 100 N y valores aleatorios para la variable de planificación del comando de carga.

model = "simMSDLPV";
open_system(model);

Este ejemplo muestra cómo simular un modelo lineal de parámetros variantes (LPV) de la velocidad de un motor con el bloque LPV System. El bloque LPV System interpola un arreglo de espacio de estados para modelar la respuesta LPV. Normalmente, puede obtener un arreglo de ese tipo linealizando por lotes un modelo no lineal a lo largo de un rango de condiciones de funcionamiento. Este ejemplo ofrece un resultado linealizado del modelo de velocidad del motor en scdspeedlpvData. Para más información sobre cómo linealizar un modelo, consulte Linearize Engine Speed Model (Simulink Control Design).

Abra el modelo.

model = "scdspeedLPVCompare";
open_system(model);

Cargue el resultado de la linealización para implementar el modelo LPV.

load scdspeedlpvData.mat

El modelo LPV se implementa en el subsistema LPV Model.

Implementation of LPV Model subsystem

El bloque LPV System toma el ángulo del acelerador como entrada y utiliza la salida de la velocidad como variable de planificación. Los parámetros del bloque se configuran como se muestra en esta imagen. En este caso, el arreglo de espacio de estados sys y las compensaciones se obtienen linealizando el modelo no lineal por lotes.

Simule el modelo y represente la comparación de la respuesta.

sim(model);
plot(logsOut{1}.Values.Time,logsOut{1}.Values.Data)
grid on
legend("Nonlinear sim","LPV sim","LTI sim",Location="best")

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Nonlinear sim, LPV sim, LTI sim.

El modelo LPV proporciona una buena aproximación de la respuesta no lineal.

Limitaciones

  • Los retardos internos no se pueden extrapolar para que sean menores que su valor mínimo en el arreglo del modelo de espacio de estados.

  • Cuando se utiliza una cuadrícula dispersa de modelos lineales para definir el sistema LPV, solo se utiliza el esquema de interpolación del vecino más cercano. Esto puede reducir la precisión de los resultados de la simulación. Se recomienda trabajar con cuadrículas rectangulares creadas utilizando ndgrid.

Puertos

Entrada

expandir todo

Especifique la señal de entrada u(t). En caso de entradas múltiples, este puerto acepta una señal de la dimensión de la entrada.

Proporcione las señales para las variables que definen el espacio de planificación (variables de la cuadrícula de muestreo). Las variables de programación pueden ser funciones de tiempo, entradas y estados, o constantes. Puede lograr la dependencia necesaria preparando una señal de planificación utilizando una entrada de reloj (para tiempo), una señal de entrada (u), las señales de estado de salida (x) del bloque LPV o cualquier señal exógena, según sea necesario.

Precaución

Evite que C(p) y D(p) dependan de la salida del sistema y. De lo contrario, la ecuación de espacio de estados resultante y = C(y)x + D(y)u crea un bucle algebraico, ya que calcular el valor de salida y requiere conocer el valor de salida. Este bucle algebraico tiende a ser inestable y divergente. En su lugar, intente expresar C y D en términos de tiempo t, la entrada de bloque u y las salidas de estado x.

Por motivos similares, evite planificar A(p) y B(p) basándose en la salida dx. Tenga en cuenta que es seguro que A y B dependan de y cuando y es una combinación fija de estados y entradas (dicho de otra forma, cuando y = Cx + Du donde C y D son matrices constantes).

Salida

expandir todo

Respuesta del modelo lineal de parámetros variantes.

Valores de estados del modelo

Dependencias

Para activar este puerto, seleccione Output states en la pestaña Outputs de los parámetros del bloque.

Valores de las derivadas de estado. Las derivadas de estado se utilizan a veces para definir los parámetros de programación. Sin embargo, evite planificar A y B basándose en la salida dx.

Dependencias

Para activar este puerto, seleccione Output state derivatives (continuous-time) or updates (discrete-time) en la pestaña Outputs de los parámetros del bloque.

Datos del modelo local de espacio de estados en las principales unidades de tiempo de la simulación, devueltos como señal de bus con estos elementos.

  • A: matriz de estado

  • B: matriz de entrada

  • C: matriz de salida

  • D: matriz de feedthrough

  • InputDelay: retardo de entrada

  • OutputDelay: retardo de salida

  • InternalDelay: retardos internos en el modelo

Dependencias

Para activar este puerto, seleccione Output interpolated state-space data en la pestaña Outputs de los parámetros del bloque.

Datos de compensación del modelo LPV en las principales unidades de tiempo de la simulación, devueltos como señal de bus con estos elementos.

  • InputOffset

  • OutputOffset

  • StateOffset

  • StateDerivativeOffset

Dependencias

Para activar este puerto, seleccione Output interpolated offsets en la pestaña Outputs de los parámetros del bloque.

Parámetros

expandir todo

Para editar parámetros del bloque de manera interactiva, utilice Property Inspector. Desde la barra de herramientas de Simulink, en la pestaña Simulation, en la galería Prepare, seleccione Property Inspector.

Pestaña LPV Model

Un arreglo de modelos de espacio de estados (ss o idss (System Identification Toolbox)). Todos los modelos del arreglo deben utilizar la misma definición de estados.

El arreglo de espacio de estados debe especificar parámetros de planificación y la cuadrícula de interpolación para el modelo en la propiedad SamplingGrid. También puede especificar las compensaciones del modelo en la propiedad Offsets del arreglo cuando establece el parámetro Operating Point Offsets en Use offsets in state-space array. Consulte la página de referencia del modelo ss para más información sobre estas propiedades.

Cuando el bloque está en un modelo con control de estado síncrono (consulte el bloque State Control (HDL Coder)), debe especificar un arreglo de modelos de tiempo discreto.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: sys
Valores: ss or idss model array name in quotes

Ejemplo: set_param(gcb,"sys","sysArrayName")

Condiciones iniciales que se han de utilizar con el modelo local para iniciar la simulación, especificadas como vector de longitud igual al número de estados del modelo.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: x0
Valores: "0" (predeterminado) | initial state values in quotes

Ejemplo: set_param(gcb,"x0","[0 0.1]")

Desde R2024a

Especifique el formato de las compensaciones de puntos de funcionamiento.

  • Specify Offsets as double arrays: especifique compensaciones utilizando los parámetros Input offset, Output offset, State Offset y State derivative/update offset.

  • Specify offsets as struct array: especifique compensaciones como arreglo de estructuras con campos u, y, x y dx que especifican las compensaciones de entrada, salida, estado y derivada de estado, respectivamente.

  • Use offsets in state-space array: utilice las compensaciones especificadas en la propiedad Offsets del arreglo de espacio de estados.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: opSpecOption
Valores: "Specify Offsets as double arrays" (predeterminado) | "Specify offsets as struct array" | "Use offsets in state-space array"

Ejemplo: set_param(gcb,"opSpecOption","Specify offsets as struct array")

Compensaciones en la entrada u(t), especificadas como una de las siguientes opciones:

  • 0: se utiliza cuando no hay compensaciones de entrada (u¯(p)=0  p).

  • Vector doble de longitud igual al número de entradas. Se utiliza cuando la compensación de entrada es el mismo en todo el espacio de programación.

  • Arreglo doble de tamaño nu por 1 por N1 por ... por Nm. Se utiliza cuando hay compensaciones y varían en todo el espacio de planificación. En este caso, nu es el número de entradas y N1 por ... por Nm es el tamaño de la cuadrícula de planificación. Por ejemplo, si el modelo tiene tres entradas, dos salidas y cuatro estados, y está planificado en una cuadrícula de 5 por 6 puntos de funcionamiento, el tamaño del arreglo de entrada debe ser de 3 por 1 por 5 por 6. Utilice size(sys) para determinar el tamaño del arreglo de espacio de estados sys.

Dependencias

Para activar este parámetro, establezca el formato Operating Point Offsets en Specify Offsets as double arrays.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: uOffset
Valores: "0" (predeterminado) | array name in quotes

Ejemplo: set_param(gcb,"uOffset","uOffArray")

Compensaciones en la salida y(t), especificadas como una de las siguientes opciones:

  • 0: se utiliza cuando no hay compensaciones de salida (y¯(p)=0  p).

  • Vector doble de longitud igual al número de salidas. Se utiliza cuando las compensaciones de salida son los mismos en todo el espacio de programación.

  • Arreglo doble de tamaño ny por 1 por N1 por ... por Nm. Se utiliza cuando hay compensaciones y varían en todo el espacio de planificación. En este caso, ny es el número de salidas y N1 por ... por Nm es el tamaño de la cuadrícula de planificación. Por ejemplo, si el modelo tiene tres entradas, dos salidas y cuatro estados, y está planificado en una cuadrícula de 5 por 6 puntos de funcionamiento, el tamaño del arreglo de entrada debe ser de 2 por 1 por 5 por 6. Utilice size(sys) para determinar el tamaño del arreglo de espacio de estados sys.

Dependencias

Para activar este parámetro, establezca el formato Operating Point Offsets en Specify Offsets as double arrays.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: yOffset
Valores: "0" (predeterminado) | array name in quotes

Ejemplo: set_param(gcb,"yOffset","yOffArray")

Compensaciones en los estados x(t), especificadas como una de las siguientes opciones:

  • 0: se utiliza cuando no hay compensaciones de estado (x¯(p)=0  p).

  • Vector doble de longitud igual al número de estados. Se utiliza cuando las compensaciones de estado son los mismos en todo el espacio de programación.

  • Arreglo doble de tamaño nx por 1 por N1 por ... por Nm. Se utiliza cuando hay compensaciones y varían en todo el espacio de planificación. En este caso, nx es el número de estados y N1 por ... por Nm es el tamaño de la cuadrícula de planificación. Por ejemplo, si el modelo tiene tres entradas, dos salidas y cuatro estados, y está planificado en una cuadrícula de 5 por 6 puntos de funcionamiento, el tamaño del arreglo de entrada debe ser de 4 por 1 por 5 por 6. Utilice size(sys) para determinar el tamaño del arreglo de espacio de estados sys.

Dependencias

Para activar este parámetro, establezca el formato Operating Point Offsets en Specify Offsets as double arrays.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: xOffset
Valores: "0" (predeterminado) | array name in quotes

Ejemplo: set_param(gcb,"xOffset","xOffArray")

Compensaciones de derivada de estado o variable de actualización dx(t), especificadas como una de las siguientes opciones:

  • Si ha obtenido el arreglo del sistema lineal por linealización en condiciones de equilibrio, seleccione la opción Assume equilibrium operating conditions. Esta opción corresponde a una compensación de dx¯(p)=0 para un sistema de tiempo continuo y dx¯(p)=x¯(p) para un sistema de tiempo discreto. Es la opción seleccionada de forma predeterminada.

  • Si el sistema lineal contiene al menos un sistema obtenido en condiciones de no equilibrio, desactive la opción Assume equilibrium operating conditions. Especifique una de las siguientes opciones en el campo Offset value:

    • Si los valores de compensación dx son los mismos en todo el espacio de programación, especifique un vector doble de longitud igual al número de estados.

    • Si hay compensaciones dx y varían en todo el espacio de planificación, especifique un arreglo doble de tamaño nx por 1 por N1 por ... por Nm. Se utiliza cuando hay compensaciones y varían en todo el espacio de planificación. En este caso, nx es el número de estados y N1 por ... por Nm es el tamaño de la cuadrícula de planificación. Por ejemplo, si el modelo tiene tres entradas, dos salidas y cuatro estados, y está planificado en una cuadrícula de 5 por 6 puntos de funcionamiento, el tamaño del arreglo de entrada debe ser de 4 por 1 por 5 por 6. Utilice size(sys) para determinar el tamaño del arreglo de espacio de estados sys.

Dependencias

Para activar este parámetro, establezca el formato Operating Point Offsets en Specify Offsets as double arrays y desactive Assume equilibrium operating conditions.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: dxOffset
Valores: "0" (predeterminado) | array name in quotes

Ejemplo: set_param(gcb,"dxOffset","dxOffArray")

Desde R2024a

Compensaciones de modelo, especificadas como una estructura con estos campos.

CampoDescripción
uCompensaciones de entrada
yCompensaciones de salida
xCompensaciones de estado
dxCompensaciones de derivada de estado
  • Si los valores de compensación son los mismos en todo el espacio de planificación, especifique un vector doble de longitud igual al número de entradas, salidas o estados para los campos correspondientes.

  • Si las compensaciones varían en todo el espacio de planificación, especifique un arreglo de estructuras. Por ejemplo, supongamos que el modelo tiene tres entradas, dos salidas y cuatro estados. Si linealiza el modelo utilizando un arreglo de 5 por 6 puntos de funcionamiento, el tamaño del arreglo de estructuras debe ser de 5 por 6 y cada entrada debe contener un vector de longitud igual al número de entradas, salidas o estados para los campos correspondientes.

La función linearize (Simulink Control Design) devuelve compensaciones en este formato en la salida info.Offsets cuando linealiza con la opción StoreOffsets establecida en true.

Dependencias

Para activar este parámetro, establezca el formato Operating Point Offsets en Specify Offsets as struct array. (desde R2024a)

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: Offset
Valores: "struct" (predeterminado) | structure array name in quotes

Ejemplo: set_param(gcb,"Offset","OffsetStructName")

Pestaña Fixed Entries

Modelo de espacio de estados que proporciona los valores de los coeficientes fijos, especificados como una de las siguientes opciones:

  • Use the first model in state-space array (Valor predeterminado): el primer modelo del arreglo de espacio de estados se utiliza para representar el modelo LPV. En el siguiente ejemplo, el arreglo de espacio de estados se especifica mediante el objeto sys y los coeficientes fijos se toman del modelo sys(:,:,1).

    % Specify a 4-by-5 array of state-space models.
    sys = rss(4,2,3,4,5);
    a = 1:4; 
    b = 10:10:50;
    [av,bv] = ndgrid(a,b);
    % Use "alpha" and "beta" variables as scheduling parameters.
    sys.SamplingGrid = struct('alpha',av,'beta',bv);  

    Los coeficientes fijos se toman del modelo sysFixed = sys(:,:,1), que corresponde a [alpha=1, beta=10]. Si la entrada (2,1) de la matriz A se fuerza para que sea fija, su valor utilizado durante la simulación será sysFixed.A(2,1).

  • Custom value. Especifique un modelo de espacio de estados diferente para las entradas fijas. Especifique una variable para el modelo fijo en el campo State space model. El modelo fijo debe utilizar la misma base de estado que el arreglo de espacio de estados en el modelo LPV.

Especifique qué coeficientes de las matrices de espacio de estados y de los vectores de retardo son fijos.

Especifique una de las siguientes opciones:

  • Booleano escalar (true o false), si todas las entradas de una matriz se han de tratar de la misma manera.

    El valor predeterminado es false para las matrices de espacio de estados y los vectores de retardo, lo que significa que se tratan como libres.

  • Matriz lógica de tamaño compatible con el tamaño de la matriz correspondiente:

    Matriz de espacio de estados

    Tamaño de la matriz de entrada fija

    A matrix

    nx-por-nx

    B matrix

    nx-por-nu

    C matrix

    ny-por-nx

    D matrix

    ny-por-nu

    Input delay

    nu-por-1

    Output delay

    ny-por-1

    Internal delay

    ni-por-1

    donde nu es el número de entradas, ny es el número de salidas, nx es el número de estados y ni es la longitud del vector de retardo interno.

  • Índices numéricos para especificar la ubicación de las entradas fijas. Consulte la página de referencia sub2ind para más información sobre cómo generar índices numéricos correspondientes a un subíndice dado (i,j) para un elemento de una matriz.

Pestaña Scheduling

Método de interpolación. Define cómo deben calcularse los datos de espacio de estados para los valores de los parámetros de programación que se encuentran lejos de sus ubicaciones en la cuadrícula.

Especifique una de las siguientes opciones:

  • Flat: elija los datos de espacio de estados en el punto de la cuadrícula más cercano al punto actual, sin sobrepasarlo. El punto actual es el valor de los parámetros de programación en la unidad de tiempo actual.

  • Nearest: elija los datos de espacio de estados en el punto de la cuadrícula más cercano en el espacio de programación.

  • Linear: obtenga los datos de espacio de estados por interpolación lineal de los vecinos 2d más cercanos en el espacio de programación, donde d = número de parámetros de programación.

El esquema de interpolación predeterminado es Linear para cuadrículas regulares de valores de parámetros de programación. En el caso de las cuadrículas irregulares, siempre se utiliza el esquema de interpolación Nearest independientemente de la elección realizada. Para más información sobre cuadrículas regulares e irregulares, consulte Regular vs. Irregular Grids.

El método Linear ofrece la mayor precisión posible, pero tarda más en calcularse. Los métodos Flat y Nearest son adecuados para los modelos que tienen una dinámica de cambio de modo.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: IMethod
Valores: "Linear" (predeterminado) | "Nearest" | "Flat"

Ejemplo: set_param(gcb,"IMethod","Flat")

Método de extrapolación. Define cómo calcular los datos de espacio de estados para los valores de los parámetros de programación que quedan fuera del rango sobre el que se ha proporcionado el arreglo de espacio de estados (como se especifica en la propiedad SamplingGrid).

Especifique una de las siguientes opciones:

  • Clip (valor predeterminado): desactiva la extrapolación y devuelve los datos correspondientes al último punto de cuadrícula de planificación disponible más cercano al punto actual.

  • Linear: introduce una línea entre el primer o el último par de valores para cada parámetro de programación, dependiendo de si el valor actual es menor que el primero o mayor que el último valor del punto de la cuadrícula, respectivamente. Este método devuelve el punto de esa línea correspondiente al valor actual. En la extrapolación lineal el esquema de interpolación también ha de ser lineal.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: EMethod
Valores: "Clip" (predeterminado) | "Linear"

Ejemplo: set_param(gcb,"EMethod","Linear")

El bloque determina la ubicación de los valores de parámetros de planificación actuales en el espacio de planificación mediante un algoritmo de búsqueda previa. Seleccione Linear search o Binary search. Cada método de búsqueda tiene ventajas en términos de velocidad en diferentes situaciones. Para más información sobre este parámetro, consulte la página de referencia del bloque Prelookup (Simulink).

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Para obtener el valor del parámetro del bloque de forma programática, utilice la función get_param (Simulink).

Parámetro: IndexSearch
Valores: "Binary Search" (predeterminado) | "Linear Search"

Ejemplo: set_param(gcb,"IndexSearch","Linear Search")

Seleccione esta casilla si desea que el bloque inicie su búsqueda utilizando el índice encontrado en la unidad de tiempo anterior. Para más información sobre este parámetro, consulte la página de referencia del bloque Prelookup (Simulink).

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: IndexBegin
Valores: "on" (predeterminado) | "off"

Ejemplo: set_param(gcb,"IndexBegin","off")

Pestaña Code Generation

Tipo de datos del bloque, especificado como double o single.

Dependencias

Para activar esta opción, utilice un modelo de espacio de estados de tiempo discreto como entrada.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: DataType
Valores: "double" (predeterminado) | "single"

Ejemplo: set_param(gcb,"DataType","single")

Asignación de memoria inicial para el número de puntos de entrada que se ha de almacenar para los modelos que contienen retardos. Si el número de puntos de entrada supera el tamaño inicial del buffer, el bloque asigna memoria adicional. El tamaño predeterminado es 1024.

Cuando ejecute el modelo en modo Accelerator o construya el modelo, asegúrese de que el tamaño inicial del buffer sea lo suficientemente grande para que soporte el máximo retardo previsto en el modelo.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: InitBufferSize
Valores: "1024" (predeterminado) | positive integer greater than 5 in quotes

Ejemplo: set_param(gcb,"InitBufferSize","512")

Especifique si se utiliza un tamaño de buffer fijo para guardar los datos de entrada y salida con retardo de las unidades de tiempo anteriores. Utilice esta opción para sistemas LPV de tiempo continuo que contengan retardos de entrada o salida. Si el buffer está lleno, los datos nuevos sustituirán a los que ya están en el buffer. El software utiliza la extrapolación lineal para calcular los valores de salida que no están en el buffer.

Uso programático

Para establecer el valor del parámetro del bloque de forma programática, utilice la función set_param (Simulink).

Parámetro: FixedBuffer
Valores: "off" (predeterminado) | "on"

Ejemplo: set_param(gcb,"FixedBuffer","on")

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante Simulink® Coder™.

Historial de versiones

Introducido en R2014b

expandir todo