Contenido principal

State Transition Table

Representar la lógica modal en formato tabular

  • State Transition Table block

Bibliotecas:
Stateflow

Descripción

El bloque State Transition Table representa una máquina de estados finitos en un formato tabular. En lugar de representar los estados y las transiciones en un gráfico de Stateflow®, puede utilizar una tabla de transición de estados para modelar una máquina de estados en un formato conciso y compacto que requiere un mantenimiento mínimo de los objetos gráficos. Para obtener más información, consulte Modelar máquinas de estado finito con tablas de transición de estado.

Para implementar la lógica de control, los bloques de State Transition Table pueden usar MATLAB® o C como lenguaje de acción. Para obtener más información, consulte Diferencias entre C y MATLAB como sintaxis de lenguaje de acción.

Ejemplos

Puertos

Entrada

expandir todo

Cuando crea datos de entrada en la tabla de transición de estado de Stateflow usando el panel Symbols, Stateflow crea un puerto de entrada correspondiente en el bloque State Transition Table.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Salida

expandir todo

Cuando crea datos de salida en la tabla de transición de estado de Stateflow usando el panel Symbols, Stateflow crea un puerto de salida correspondiente en el bloque State Transition Table.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | string

Parámetros

expandir todo

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

Nota

Los bloques State Transition Table también tienen parámetros de bloque Subsystem (Simulink) a los que puede acceder haciendo clic con el botón secundario en el bloque y haciendo clic en Block Parameters (Subsystem). Sin embargo, no se recomienda actualizar estos parámetros de bloque.

Método para actualizar o activar una tabla de transición de estado de Stateflow, especificada como Inherited, Discrete o Continuous.

Inherited

La entrada del modelo de Simulink determina cuándo se activa la tabla de transición de estado durante una simulación.

Si se definen eventos de entrada en la tabla de transición de estado, la señal del bloque de Simulink conectado con el puerto de activación activa la tabla de transición de estado. La señal de Simulink puede ser Rising, Falling o Either (ascendente y descendente) o responder a una Function Call. Para obtener más información, consulte Activar un gráfico de Stateflow enviando eventos de entrada.

Si no se definen los eventos de entrada, la tabla de transición de estado de Stateflow hereda implícitamente los activadores del modelo de Simulink. Estos eventos implícitos son los tiempos de muestreo discretos o continuos de las señales de Simulink que proporcionan entradas a la tabla de transición de estado. Si se definen entradas de datos, la tabla de transición de estado se activa a la tasa de entrada de datos más rápida. Si no se define ninguna entrada de datos en la tabla de transición de estado, esta se activa según lo definido por el comportamiento de ejecución de su subsistema principal.

Discrete

La tabla de transición de estado de Stateflow se activa cuando el modelo de Simulink genera un evento implícito a intervalos de tiempo regulares que se especifican en la propiedad de la tabla de transición de estado Sample Time. Los otros bloques del modelo de Simulink pueden tener diferentes tiempos de muestreo.

Continuous

La tabla de transición de estado de Stateflow actualiza su estado solo durante las unidades de tiempo de mayor duración, aunque calcula las salidas y las variables continuas locales durante las unidades de tiempo de menor y mayor duración. La tabla de transición de estado puede registrar cruces por cero, lo que permite a los modelos de Simulink muestrear las tablas de transición de estado de Stateflow siempre que se produzcan cambios de estado. La tabla de transición de estado de Stateflow calcula las derivadas de las variables continuas locales. Para obtener más información, consulte Continuous-Time Modeling in Stateflow.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: ChartUpdate
Valores: "INHERITED" (predeterminado) | "CONTINUOUS" | "DISCRETE"

El intervalo de tiempo predeterminado es -1, lo que indica que la tabla de transición de estado de Stateflow hereda el tiempo de muestreo de Simulink.

Especifique el intervalo de tiempo en el que la tabla de transición de estado se activa durante la simulación. El valor predeterminado indica que la tabla de transición de estado hereda el tiempo de muestreo de Simulink. Para obtener más información sobre cómo especificar el tiempo de muestreo, consulte Especificar el tiempo de muestreo (Simulink).

No utilice el parámetro Sample Time en los parámetros del bloque Subsystem. En su lugar, utilice Property Inspector.

Dependencias

Para habilitar este parámetro, establezca Update method en Discrete.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: SampleTime
Valores: "-1" (predeterminado) | string scalar | character vector
Tipos de datos: string | char

Parámetro que indica si se crea una salida de datos de estado activo para la tabla de transición de estado. Para obtener más información, consulte Monitor State Activity Through Active State Data.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: HasOutputData
Valores: false or 0 (predeterminado) | true or 1
Tipos de datos: logical

Modo de monitorización para los datos de salida de estado activo.

Dependencias

Para habilitar este parámetro, habilite Create output for monitoring.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: OutputMonitoringMode
Valores: "ChildActivity" (predeterminado) | "LeafStateActivity"

Nombre del objeto de datos de estado activo para la tabla de transición de estado.

Dependencias

Para habilitar este parámetro, habilite Create output for monitoring.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: OutputPortName
Valores: "State_Transition_TableMode" (predeterminado) | string scalar | character vector
Tipos de datos: string | char

Nombre del objeto de datos de estado activo para la tabla de transición de estado.

Dependencias

Para habilitar este parámetro, habilite Create output for monitoring.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: EnumTypeName
Valores: "State_Transition_TableModeType" (predeterminado) | string scalar | character vector
Tipos de datos: string | char

Parámetro que indica si se define el tipo de datos enumerados para la salida de datos de estado activo manualmente. Para obtener más información, consulte Define State Activity Enumeration Type.

Dependencias

Para habilitar este parámetro, habilite Create output for monitoring.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: DoNotAutogenerateEnum
Valores: false or 0 (predeterminado) | true or 1
Tipos de datos: logical

Avanzados

Parámetro que indica si se inicializa la configuración de estado de la tabla de transición de estado en la unidad de tiempo cero en lugar de en el primer evento de entrada. Para obtener más información, consulte Execution of a Chart at Initialization.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: ExecuteAtInitialization
Valores: false or 0 (predeterminado) | true or 1
Tipos de datos: logical

Parámetro que indica si los datos de la tabla de transición de estado saturan en el desbordamiento de enteros. Cuando se desactiva este parámetro, los datos de la tabla de transición de estado se ajustan en el desbordamiento de enteros. Para obtener más información, consulte Handle Integer and Enumeration Overflow for Chart Data.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: SaturateOnIntegerOverflow
Valores: true or 1 (predeterminado) | false or 0
Tipos de datos: logical

Parámetro que indica si se inicializan los datos de salida cada vez que la tabla de transición de estado se activa.

Cuando se selecciona este parámetro, la tabla de transición de estado restablece sus valores de salida cada vez que esta se activa, no solo en la unidad de tiempo 0. La tabla de transición de estado restablece los valores de salida cada vez que una llamada a función, un activador por flanco o un pulso de reloj activan la tabla de transición de estado. Si se establece un valor inicial para un objeto de datos de salida, la salida se restablece a ese valor. En caso contrario, la salida se reestablece en cero. Seleccione este parámetro para:

  • Asegurarse de que todas las salidas se definen en cada ejecución de la tabla de transición de estado.

  • Evitar la retención de salidas, es decir, evitar valores de las salidas calculados en ejecuciones anteriores.

  • Proporcionar a todas las salidas de la tabla de transición de estado un valor inicial significativo.

Para obtener más información, consulte Valor inicial.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: InitializeOutput
Valores: false or 0 (predeterminado) | true or 1
Tipos de datos: logical

Parámetro que indica si la tabla de transición de estado admite datos de tamaño variable. Para obtener más información, consulte Declare Variable-Size Data in Stateflow Charts.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: SupportVariableSizing
Valores: true or 1 (predeterminado) | false or 0
Tipos de datos: logical

Parámetro que indica si se habilita la semántica de superpaso para la tabla de transición de estado. Seleccione este parámetro para permitir que la tabla de transición de estado realice múltiples transiciones en cada unidad de tiempo hasta alcanzar un estado estable. Esta opción no está disponible. Para obtener más información, consulte Super Step Semantics.

Dependencias

Para habilitar este parámetro, establezca Update method en Discrete.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: EnableNonTerminalStates
Valores: false or 0 (predeterminado) | true or 1
Tipos de datos: logical

Número máximo de transiciones que puede completarse en un superpaso. Para obtener más información, consulte Super Step Semantics.

Dependencias

Para habilitar este parámetro, habilite Enable super step semantics.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: NonTerminalMaxCounts
Valores: 1000 (predeterminado) | positive integer
Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Acción que debe realizar Stateflow si un superpaso supera el número máximo de transiciones en un superpaso. Para obtener más información, consulte Super Step Semantics.

Dependencias

Para habilitar este parámetro, habilite Enable super step semantics.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: NonTerminalUnstableBehavior
Valores: "Proceed" (predeterminado) | "Throw Error"

Desde R2023a

Parámetro que indica si la tabla de transición de estado trata los datos no escalares con una dimensión de longitud 1 como tamaño fijo. Cuando selecciona este parámetro, la tabla de transición de estado trata los datos no escalares que tienen al menos una dimensión de longitud 1 como tamaño fijo, independientemente de si habilita la propiedad de datos Variable size. Cuando desactiva este parámetro, la tabla de transición de estado trata los datos no escalares con la propiedad Variable size habilitada como tamaño variable.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: TreatDimensionOfLengthOneAsFixedSize
Valores: true or 1 (predeterminado) | false or 0
Tipos de datos: logical

Lenguaje de acción para programar la tabla de transición de estado, especificado como MATLAB o C. Para obtener más información, consulte Diferencias entre C y MATLAB como sintaxis de lenguaje de acción.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: ActionLanguage
Valores: "MATLAB" (predeterminado) | "C"

Semántica de la máquina de estados implementada por la tabla de transición de estados, especificada como Classic, Mealy o Moore. Para obtener más información, consulte Visión general de máquinas de Mealy y Moore.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: StateMachineType
Valores: "Classic" (predeterminado) | "Mealy" | "Moore"

Propiedades de punto fijo

Señales de Simulink heredadas que se desean tratar como objetos fi de Fixed-Point Designer™, especificadas como uno de estos valores:

  • Fixed-point: la tabla de transición de estado trata todas las entradas de punto fijo como objetos fi.

  • Fixed-point & Integer: la tabla de transición de estado trata todas las entradas de punto fijo y enteras como objetos fi.

Este parámetro se aplica solo a las tablas de transición de estado que utilizan MATLAB como lenguaje de acción.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: TreatAsFi
Valores: "Fixed-point" (predeterminado) | "Fixed-point & Integer"

Propiedades del objeto fimath predeterminado para la tabla de transición de estado, especificadas como uno de estos valores:

  • Same as MATLAB: la tabla de transición de estado usa las mismas propiedades del objeto fimath que el objeto fimath predeterminado actual. El cuadro de texto está atenuado y muestra el objeto fimath global actual en formato de solo lectura.

  • Specify other: especifica su propio objeto fimath en el cuadro de texto.

Para obtener más información, consulte fimath Object Construction (Fixed-Point Designer).

Dependencias

Para habilitar este parámetro, establezca Action language en MATLAB.

Uso programático

Para establecer el valor de los parámetros de un bloque de manera programática, acceda al objeto Stateflow.StateTransitionTableChart del bloque y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: EmlDefaultFimath
Valores: "Same as MATLAB Default" (predeterminado) | "Other:UserSpecified"

Capacidades ampliadas

expandir todo

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

Generación de código PLC
Genere código de texto estructurado mediante Simulink® PLC Coder™.

Conversión de punto fijo
Diseñe y simule sistemas en punto fijo mediante Fixed-Point Designer™.

Historial de versiones

Introducido en R2012b

expandir todo