LPV System
Simular sistemas lineales de parámetros variantes (LPV)
![](icon_lpv_system_block.png)
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.
En este caso:
u(t) son las entradas
y(t) son las salidas
x(t) son los estados del modelo con valor inicial xinit
es el vector de derivadas de estados 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 , 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) ogetIOTransfer
(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
Configuración del puerto de entrada de los parámetros de programación
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.
Simular sistemas lineales de parámetros variantes utilizando el bloque LPV System
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.
En este caso, es la masa dependiente del comando externo , es el coeficiente de amortiguación, es la rigidez del muelle y es la aplicación de la fuerza. Por su parte, es la posición de la masa en un momento dado. Para un valor fijo de , el sistema es lineal y se expresa como:
donde es el vector de estado y es el valor de la masa para un valor dado de .
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 , 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 . 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 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);
Comparar un modelo no lineal con la respuesta del bloque LPV
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.
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")
El modelo LPV proporciona una buena aproximación de la respuesta no lineal.
Ejemplos ampliados
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
u — Señal de entrada
escalar | vector
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.
par — Valores de los parámetros
escalar | vector
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
y — Salida del modelo
escalar | vector
Respuesta del modelo lineal de parámetros variantes.
x — Valores de estado
escalar | vector
Valores de estados del modelo
Dependencias
Para activar este puerto, seleccione Output states en la pestaña Outputs de los parámetros del bloque.
dx — Valores de las derivadas de estado
escalar | vector
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.
ss — Modelo local de espacio de estados
bus
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 estadoB
: matriz de entradaC
: matriz de salidaD
: matriz de feedthroughInputDelay
: retardo de entradaOutputDelay
: retardo de salidaInternalDelay
: 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.
offset — Compensaciones del modelo LPV
bus
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
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
State-space array — Arreglo de modelos de espacio de estados
Arreglo de modelos ss
o idss
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")
Inicial state — Condiciones iniciales
0 (predeterminado) | vector
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]")
Operating Point Offsets — Formato de especificación de compensación
Specify Offsets as double arrays
(predeterminado) | Specify offsets as struct array
| Use offsets in state-space array
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 camposu
,y
,x
ydx
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 propiedadOffsets
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")
Input offset — Compensación de entrada
0
(predeterminado) | arreglo
Compensaciones en la entrada u(t)
, especificadas como una de las siguientes opciones:
0
: se utiliza cuando no hay compensaciones de entrada ().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. Utilicesize(sys)
para determinar el tamaño del arreglo de espacio de estadossys
.
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")
Output offset — Compensación de salida
0
(predeterminado) | arreglo
Compensaciones en la salida y(t)
, especificadas como una de las siguientes opciones:
0
: se utiliza cuando no hay compensaciones de salida ().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. Utilicesize(sys)
para determinar el tamaño del arreglo de espacio de estadossys
.
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")
State offset — Compensación de estado
0
(predeterminado) | arreglo
Compensaciones en los estados x(t)
, especificadas como una de las siguientes opciones:
0
: se utiliza cuando no hay compensaciones de estado ().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. Utilicesize(sys)
para determinar el tamaño del arreglo de espacio de estadossys
.
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")
State derivative/update offset — Compensación de derivada de estado o actualización
arreglo
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 para un sistema de tiempo continuo y 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. Utilicesize(sys)
para determinar el tamaño del arreglo de espacio de estadossys
.
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")
Struct array — Arreglo de estructuras de compensaciones
struct
(predeterminado) | nombre del arreglo de estructuras
Desde R2024a
Compensaciones de modelo, especificadas como una estructura con estos campos.
Campo | Descripción |
---|---|
u | Compensaciones de entrada |
y | Compensaciones de salida |
x | Compensaciones de estado |
dx | Compensaciones 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
Nominal model — Modelo LPV nominal
Use the first model in state-space array
(predeterminado) | Custom value
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 objetosys
y los coeficientes fijos se toman del modelosys(:,:,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 matrizA
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.
Fixed Coefficient Indices — Coeficientes fijos de matrices de espacio de estados
false
o 0
(predeterminado) | true
o 1
| matriz lógica
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
ofalse
), 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
Interpolation method — Método de interpolación
Linear
(predeterminado) | Nearest
| Flat
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")
Extrapolation method — Método de extrapolación
Clip
(predeterminado) | Linear
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")
Index search method — Algoritmo de búsqueda previa
Binary search
(predeterminado) | Linear search
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")
Begin index search using previous index result — Inicio de la búsqueda en una unidad de tiempo anterior
on
(predeterminado) | off
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
Block data type (discrete-time case only) — Tipo de datos del bloque
double
(predeterminado) | single
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")
Initial buffer size for delays — Tamaño inicial del buffer
1024
(predeterminado) | número entero positivo mayor que 5
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")
Use fixed buffer size — Uso de un tamaño de buffer fijo
off
(predeterminado) | on
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 R2014bR2024a: Soporte mejorado para compensaciones y otras mejoras
El bloque LPV System admite dos nuevos formatos para especificar compensaciones de puntos de funcionamiento:
Especificar compensaciones como arreglo de estructuras
Utilizar compensaciones en arreglo de espacio de estados
Antes de la versión R2024a, el bloque solo admitía especificar compensaciones como arreglos dobles en los parámetros del bloque. Utilice la lista Operating Point Offsets para especificar el formato de las compensaciones.
Además, el bloque presenta las siguientes mejoras nuevas:
La arquitectura del bloque ahora utiliza un bloque Varying State Space subyacente. Esto agiliza la compatibilidad con las compensaciones.
El bloque ahora admite el modo de simulación Fast Restart. En este modo, solo se pueden ajustar las entradas del bloque y el parámetro Initial state. El resto de los parámetros del bloque no se puede ajustar porque cambiarlos altera la topología del modelo.
R2024a: Ignorar parámetros de constantes en SamplingGrid
El bloque LPV System ahora ignora parámetros de dimensión de instancia única y constante en la cuadrícula de muestreo del arreglo de modelos de entrada. Por lo tanto, no debe introducir los parámetros, es decir, los campos de la estructura SamplingGrid
con valores constantes en el puerto par del bloque. Utilice solo los campos variables con este puerto.
Antes de la versión R2024a, el bloque devolvía un error cuando se introducían parámetros con valores constantes.
Consulte también
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)