Contenido principal

Chart

Implementar una lógica de control con una máquina de estados finitos

  • Chart block

Bibliotecas:
Stateflow

Descripción

El bloque Chart representa gráficamente una máquina de estados finitos. En un gráfico de Stateflow®, los estados y las transiciones forman los componentes básicos de un sistema lógico modal secuencial. Los estados corresponden a los modos de funcionamiento y las transiciones representan el paso de un sistema de un modo de funcionamiento a otro. Para obtener más información, consulte Modelar máquinas de estado finito con gráficos de Stateflow.

Para implementar la lógica de control, los gráficos de Stateflow 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 el gráfico de Stateflow usando el panel Symbols, Stateflow crea un puerto de entrada correspondiente en el bloque Chart.

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 el gráfico de Stateflow usando el panel Symbols, Stateflow crea un puerto de salida correspondiente en el bloque Chart.

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 gráficos también tienen parámetros de bloque Subsystem (Simulink) a los que puede acceder haciendo clic con el botón secundario en el gráfico y haciendo clic en Block Parameters (Subsystem). Sin embargo, no se recomienda actualizar estos parámetros.

Método para actualizar o activar un gráfico de Stateflow, especificado como Inherited, Discrete o Continuous.

Inherited

La entrada del modelo de Simulink determina cuándo se activa el gráfico durante una simulación.

Si se definen eventos de entrada en el gráfico, la señal del bloque de Simulink conectada con el puerto de activación activa el gráfico. 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, el gráfico 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 al gráfico. Si se definen entradas de datos, el gráfico se activa a la tasa de entrada de datos más rápida. Si no se define ninguna entrada de datos en el gráfico, este se activa según lo definido por el comportamiento de ejecución de su subsistema principal.

Discrete

El gráfico 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 del gráfico Sample Time. Los otros bloques del modelo de Simulink pueden tener diferentes tiempos de muestreo.

Continuous

El gráfico de Stateflow actualiza su estado solo durante las unidad de tiempo de mayor duración y calcula las salidas y las variables continuas locales durante las unidades de tiempo de menor y mayor duración. El gráfico puede registrar cruces por cero, lo que permite a los modelos de Simulink muestrear los gráficos de Stateflow siempre que se produzcan cambios de estado. El gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico y cambie la propiedad del objeto usando la notación de puntos.

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

Especifique el intervalo de tiempo en el que el gráfico se activa durante la simulación. El valor predeterminado indica que el gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 habilita la detección de cruce por cero en transiciones de estado en el gráfico. Para obtener más información, consulte Continuous-Time Modeling in Stateflow.

Dependencias

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

Uso programático

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

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

Parámetro que indica si se usan operaciones de bits en acciones de estado y de transición en el gráfico, especificado como un 1 numérico o lógico (verdadero) o 0 (falso).

Dependencias

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

Uso programático

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

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

Parámetro que indica si se crea un puerto de salida de datos de estado activo para el gráfico. Para obtener más información, consulte Monitor State Activity Through Active State Data.

Dependencias

Para habilitar este parámetro, cree un estado de Stateflow, una tabla de transición de estado o un subgráfico atómico.

Uso programático

Para establecer el valor de los parámetros de un gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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. Para obtener más información, consulte Monitor State Activity Through Active State Data.

Dependencias

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

Uso programático

Para establecer el valor de los parámetros de un gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: OutputPortName
Valores: "ChartMode" (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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico y cambie la propiedad del objeto usando la notación de puntos.

Parámetro: EnumTypeName
Valores: "ChartModeType" (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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 del gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 del gráfico se saturan en el desbordamiento de enteros. Cuando se desactiva este parámetro, los datos del gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 el gráfico se activa.

Cuando selecciona este parámetro, el gráfico restablece sus valores de salida cada vez que este se activa, no solo en la unidad de tiempo 0. El gráfico restablece los valores de salida cada vez que una llamada a función, un activador por flancos o un pulso de reloj activan el gráfico. 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 del gráfico.

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

  • Proporcionar a todas las salidas del gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico y cambie la propiedad del objeto usando la notación de puntos.

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

Parámetro que indica si el gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 exportan funciones en nivel de gráfico a otros bloques de modelo de Simulink. Para obtener más información, consulte Export Stateflow Functions for Reuse.

Dependencias

Para habilitar este parámetro, añada una función al gráfico.

Uso programático

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

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

Parámetro que indica si las funciones exportadas del gráfico son globalmente visibles en el modelo de Simulink. Cuando esta propiedad está habilitada, los bloques de todo el modelo pueden llamar a funciones exportadas del gráfico sin necesidad de utilizar la notación con calificación.

Dependencias

Para habilitar este parámetro, habilite Export chart level functions.

Uso programático

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

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

Parámetro que indica si se habilita la semántica del superpaso para el gráfico. Seleccione este parámetro para permitir que el gráfico realice múltiples transiciones en cada unidad de tiempo hasta alcanzar un estado estable. Esta opción no está disponible cuando se establece la propiedad del gráfico Update method en Continuous. 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico y cambie la propiedad del objeto usando la notación de puntos.

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

Desde R2022b

Parámetro que indica si el gráfico trata los datos no escalares con una dimensión de longitud 1 como tamaño fijo. Cuando selecciona este parámetro, el gráfico 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, el gráfico 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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

Especifique qué variantes de bloque analiza Stateflow durante la simulación y la generación de código. En función de la opción que elija, Stateflow determina si el código generado debe contener solo la elección activa o tanto la elección activa como la inactiva.

  • update diagram analyze all choices: cuando selecciona esta opción, Stateflow analiza la elección activa y la elección inactiva en busca de incompatibilidades en atributos de señal y solo genera código para la elección activa.

  • code compile: cuando selecciona esta opción, Stateflow analiza la elección activa y la elección inactiva de transiciones de variantes y genera código para las elecciones activas e inactivas. Las elecciones están incluidas en las instrucciones condicionales de preprocesador de C #if y #endif que se compilan condicionalmente cuando compila el código generado.

Uso programático

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

Parámetro: VariantActivationTime
Valores: "update diagram analyze all choices" (predeterminado) | "code compile"

Lenguaje de acción para programar el gráfico, 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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 el gráfico, 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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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: el gráfico trata todas las entradas de punto fijo como objetos fi.

  • Fixed-point & Integer: el gráfico trata todas las entradas de punto fijo y enteras como objetos fi.

Dependencias

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

Uso programático

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

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

Propiedades de fimath predeterminadas para el gráfico, especificadas como uno de estos valores:

  • Same as MATLAB: el gráfico 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 de una de estas dos maneras:

    • Construyendo el objeto fimath dentro del cuadro de texto.

    • Construyendo el objeto fimath en el área de trabajo de MATLAB o del modelo y, después, introduciendo su nombre de variable en el cuadro de texto. Si utiliza esta opción y tiene previsto compartir el modelo con otras personas, defina la variable en el área de trabajo del modelo.

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 gráfico de manera programática, acceda al objeto Stateflow.Chart del gráfico 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™.

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

Historial de versiones

Introducido antes de R2006a

expandir todo