Contenido principal

State-Space

Implementar un sistema de espacio de estados lineal

  • State-Space block

Bibliotecas:
Simulink / Continuous

Descripción

El bloque State-Space implementa un sistema cuyo comportamiento se define como

x˙=Ax+Buy=Cx+Dux|t=t0=x0,

donde x es el vector de estado, u es el vector de entrada, y es el vector de salida y x0 es la condición inicial del vector de estado. Las matrices A, B, C y D se pueden especificar como matrices dispersas o matrices densas. Los coeficientes de las matrices deben tener estas características:

  • A debe ser una matriz de n por n, donde n es el número de estados.

  • B debe ser una matriz de n por m, donde m es el número de entradas.

  • C debe ser una matriz de r por n, donde r es el número de salidas.

  • D debe ser una matriz de r por m.

Por lo general, el bloque tiene un puerto de entrada y un puerto de salida. El número de filas de la matriz C o D es el mismo que la anchura del puerto de salida. El número de columnas de la matriz B o D es el mismo que la anchura del puerto de entrada. Si desea modelar un sistema lineal autónomo sin entradas, establezca las matrices B y D vacías. En este caso, el bloque actúa como un bloque de origen sin puerto de entrada y un puerto de salida, e implementa el sistema siguiente:

x˙=Axy=Cxx|t=t0=x0.

El software Simulink® convierte una matriz que contiene ceros en una matriz dispersa para una multiplicación eficiente.

Ejemplos

Puertos

Entrada

expandir todo

Vector de entrada de valor real de tipo double, donde la anchura es igual al número de columnas de las matrices B y D. Para obtener más información, consulte Descripción.

Tipos de datos: double

Salida

expandir todo

Vector de salida de valor real de tipo de datos double, con una anchura igual al número de filas de las matrices C y D. Para obtener más información, consulte Descripción.

Tipos de datos: double

Parámetros

expandir todo

Especifique el coeficiente de matriz A como una matriz de valor real de n por n, donde n es el número de estados. Para obtener más información sobre los coeficientes de matriz, consulte Descripción.

Uso programático

Parámetro de bloque: A
Tipo: vector de caracteres, cadena
Valores: escalar | vector | matriz | matriz dispersa
Predeterminado: '1'

Especifique el coeficiente de matriz B como una matriz de valor real de n por m, donde n es el número de estados y m es el número de entradas. Para obtener más información sobre los coeficientes de matriz, consulte Descripción.

Uso programático

Parámetro de bloque: B
Tipo: vector de caracteres, cadena
Valores: escalar | vector | matriz | matriz dispersa
Predeterminado: '1'

Especifique el coeficiente de matriz C como una matriz de valor real de r por n, donde r es el número de salidas y n es el número de estados. Para obtener más información sobre los coeficientes de matriz, consulte Descripción.

Uso programático

Parámetro de bloque: C
Tipo: vector de caracteres, cadena
Valores: escalar | vector | matriz | matriz dispersa
Predeterminado: '1'

Especifique el coeficiente de matriz D como una matriz de valor real de r por m, donde r es el número de salidas y m es el número de entradas. Para obtener más información sobre los coeficientes de matriz, consulte Descripción.

Uso programático

Parámetro de bloque: D
Tipo: vector de caracteres, cadena
Valores: escalar | vector | matriz | matriz dispersa
Predeterminado: '1'

Especifique el vector de estado inicial.

Limitaciones

Las condiciones iniciales de este bloque no pueden ser inf o NaN.

Uso programático

Parámetro de bloque: InitialCondition
Tipo: vector de caracteres, cadena
Valores: escalar | vector
Predeterminado: '0'

De forma alternativa, utilice X0.

Nivel de capacidad de ajuste de las matrices de espacio de estados (A, B, C y D) para los modos de simulación acelerados y simulaciones desplegadas utilizando Simulink Compiler™. Cuando se establece en Auto, Simulink elige el nivel de capacidad de ajuste apropiado.

Para los coeficientes de matrices dispersas, establezca el parámetro en Optimized para permitir la capacidad de ajuste de elementos distintos de cero mientras se mantiene el patrón y el número de elementos distintos de cero constantes. Establezca este parámetro en Unconstrained para permitir que todos los elementos sean ajustables, siempre que el número de elementos distintos de cero se mantenga constante, es decir, para que pueda cambiar el patrón de la matriz dispersa.

Para coeficientes de matrices densas, seleccione Optimized para permitir la capacidad de ajuste de todos los elementos de la matriz, siempre y cuando el número de elementos distintos de cero especificado inicialmente en la matriz se mantenga constante. Establezca este parámetro en Unconstrained para permitir la capacidad de ajuste total de todos los elementos de la matriz.

Nota

Para ajustar la matriz D del bloque cuando D = 0, debe activar el parámetro Allow non-zero values for D matrix initially specified as zero.

Uso programático

Parámetro de bloque: ParameterTunability
Tipo: vector de caracteres | cadena
Valores: 'Auto' | 'Optimized' | 'Unconstrained'
Predeterminado: 'Auto'

Active este parámetro para admitir la capacidad de ajuste de D incluso cuando D = 0.

Nota

Activar este parámetro activa la alimentación directa del bloque State-Space.

Uso programático

Parámetro de bloque: AllowTunableDMatrix
Tipo: vector de caracteres | cadena
Valores: 'off' | 'on'
Predeterminado: 'off'

Los solvers de paso variable utilizan tolerancias absolutas y relativas cuando eligen el tamaño de paso para determinar si el error en los cálculos de estado es aceptable.

Para heredar la tolerancia absoluta del parámetro de configuración Absolute tolerance, especifique el valor de este parámetro como auto o -1.

Para especificar una tolerancia absoluta para este bloque que anule el valor especificado para el parámetro de configuración Absolute tolerance:

  • Introduzca un valor escalar real y positivo para calcular todos los estados del bloque.

  • Introduzca un vector real con las dimensiones que coincidan con las dimensiones de los estados continuos del bloque.

Uso programático

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

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

Parámetro: AbsoluteTolerance
Valores: 'auto' (predeterminado) | '-1' | positive real scalar number | vector of positive real scalar numbers
Tipos de datos: char | string

Ejemplo: set_param("MyModel/Descriptor State-Space",AbsoluteTolerance="-1")

Utilice este parámetro para asignar de forma opcional nombres a los estados de este bloque. Los nombres asignados solo se aplican a los estados de este bloque.

  • Para utilizar los nombres de estado predeterminados, deje este campo vacío ('').

  • Para asignar un solo nombre a un solo estado, encierre el nombre entre comillas. Por ejemplo, para llamar a un solo estado position, introduzca 'position'.

  • Para asignar nombres a varios estados, especifique este valor de parámetro como un arreglo de celdas de vectores de caracteres. Cada nombre del arreglo de celdas debe ser único. Por ejemplo, para asignar los nombres a, b y c, introduzca {'a','b','c'}.

  • Para especificar los nombres usando una variable de MATLAB, introduzca el nombre de la variable sin comillas. Por ejemplo, para usar la variable names para especificar los nombres de estado, introduzca names.

Puede especificar un número de nombres que sea inferior al número de estados del bloque. En este caso, los nombres de estado se usan para varios estados y el número de estados debe dividirse de manera uniforme entre el número de nombres de estado. Por ejemplo, cuando especifica dos nombres para un bloque que tiene cuatro estados, el primer nombre se utiliza para los dos primeros estados y el segundo para los dos últimos estados.

Uso programático

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

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

Parámetro: ContinuousStateAttributes
Valores: '' (predeterminado) | valid MATLAB variable name
Tipos de datos: char | string | cell

Ejemplo: set_param("MyModel/Descriptor State-Space",ContinuousStateAttributes={'position','velocity'})

Características del bloque

Tipos de datos

double

Paso directo

Señales multidimensionales

no

Señales de tamaño variable

no

Detección de cruce por cero

no

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

Consulte también

|

Temas