Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Especificar el tipo de datos de Stateflow

El término tipo de datos hace referencia al modo en que los ordenadores representan la información en la memoria. El tipo de datos determina la cantidad de almacenamiento asignada a los datos, el método de codificación de un valor de datos como un patrón de dígitos binarios y las operaciones disponibles para manipular los datos.

Especificar el tipo de datos con el asistente de tipo de datos

Puede especificar el tipo de objeto de datos tanto en Property Inspector como en Model Explorer. En el campo Type, seleccione un tipo de la lista desplegable o introduzca una expresión que evalúe un tipo de datos. Para obtener más información, consulte Establecer propiedades de datos.

Como alternativa, puede utilizar el asistente de tipo de datos para especificar un modo de datos Mode y seleccionar el tipo de datos en función del modo:

  1. En el panel Data de Model Explorer, haga clic en el botón Show data type assistant .

  2. En la lista desplegable, seleccione Mode. La lista de modos disponibles depende del ámbito del objeto de datos.

    ÁmbitoModos
    LocalInherit (disponible solo en gráficos que utilizan MATLAB® como lenguaje de acción), Built in, Fixed point, Enumerated, Bus object, Expression
    ConstantBuilt in, Fixed point, Expression
    ParameterInherit, Built in, Fixed point, Enumerated, Bus object, Expression
    InputInherit, Built in, Fixed point, Enumerated, Bus object, Expression
    OutputInherit, Built in, Fixed point, Enumerated, Bus object, Expression
    Data Store MemoryInherit

  3. Especifique información adicional en función del modo. El asistente de tipo de datos rellena el campo Type en función de lo que especifique.

    ModoTipos de datos
    Inherit

    No se puede especificar un tipo de datos. El tipo de datos se hereda en función del ámbito que selecciona para el objeto de datos:

    Para obtener más información, consulte Heredar tipos de datos de objetos de Simulink.

    Built in

    Especifique un tipo de datos de la lista desplegable de tipos de datos admitidos:

    • double: Punto flotante de 64 bits de doble precisión.

    • single: Punto flotante de 32 bits de precisión simple.

    • half: Un tipo de datos de precisión media ocupa 16 bits de memoria, pero su representación de punto flotante permite manejar rangos dinámicos más amplios que los tipos de datos enteros o de punto fijo del mismo tamaño. Consulte The Half-Precision Data Type in Simulink (Fixed-Point Designer).

    • int64: Entero de 64 bits con signo.

    • int32: Entero de 32 bits con signo.

    • int16: Entero de 16 bits con signo.

    • int8: Entero de 8 bits con signo.

    • uint64: Entero de 64 bits sin signo.

    • uint32: Entero de 32 bits sin signo.

    • uint16: Entero de 16 bits sin signo.

    • uint8: Entero de 8 bits sin signo.

    • boolean: Booleano (1 = true; 0 = false).

    • ml: Tipificado internamente con el arreglo de MATLAB mxArray. Solo se admite con gráficos que utilizan C como lenguaje de acción. El tipo de datos ml proporciona a los datos de Stateflow las ventajas del entorno de MATLAB, incluida la posibilidad de asignar el objeto de datos de Stateflow a una variable de MATLAB o pasarlo como argumento a una función de MATLAB. Los datos ml no pueden tener un ámbito fuera de la jerarquía de Stateflow. Es decir, no pueden tener un ámbito de Input o Output. Para obtener más información, consulte ml Data Type.

    • string: Cadena. Para obtener más información, consulte Manage Textual Information by Using Strings.

    Fixed point

    Especifique esta información sobre los datos de punto fijo:

    • Signedness: Indica si los datos son con o sin signo

    • Word length: Tamaño de bits de la palabra que contiene el entero cuantificado. Los tamaños de palabra grandes representan los valores grandes con mayor precisión que los tamaños de palabra pequeños. El valor predeterminado es 16.

    • Scaling: Método para escalar datos de punto fijo con el fin de evitar condiciones de desbordamiento y disminuir los errores de cuantificación. El método predeterminado es Binary point.

    Para obtener más información, consulte Propiedades de datos de punto fijo.

    Enumerated

    Especifique el nombre de la clase para el tipo de datos enumerado. Para obtener más información, consulte Definir tipos de datos enumerados.

    Bus object

    Especifique el nombre de un objeto Simulink.Bus que se asociará a la estructura de objetos de bus de Stateflow®. Haga clic en Edit para crear o editar un objeto de bus en el editor de tipos. También puede heredar propiedades de objetos de bus de las señales de Simulink.

    Expression

    Especifique una expresión que se evalúe a un tipo de datos. Utilice una de estas expresiones:

    Para obtener más información, consulte Especificar las propiedades de los datos utilizando expresiones de MATLAB.

  4. Para guardar la configuración del tipo de datos, haga clic en Apply.

El asistente de tipo de datos solo está disponible a través de Model Explorer.

Heredar tipos de datos de objetos de Simulink

Cuando selecciona Inherit: Same as Simulink en la lista desplegable Type, los objetos de datos de ámbito Input, Output, Parameter y Data Store Memory heredan los tipos de datos de los objetos de Simulink.

ÁmbitoDescripción
InputHereda el tipo de la señal de entrada de Simulink conectada al puerto de entrada correspondiente en el gráfico.
Output

Hereda el tipo de la señal de salida de Simulink conectada al puerto de salida correspondiente en el gráfico.

Evite heredar tipos de datos de señales de salida. Los valores que se retropropagan a partir de bloques de Simulink pueden ser imprevisibles.

ParameterHereda el tipo de la variable del área de trabajo base de MATLAB correspondiente, de la entrada del diccionario de datos de Simulink o del parámetro de Simulink en un subsistema enmascarado.
Data Store MemoryHereda el tipo del almacén de datos de Simulink correspondiente.

Para determinar los tipos de datos que heredan los objetos, siga estos pasos:

  1. Construya el modelo de Simulink.

  2. Abra Model Explorer.

  3. En el panel Contents, examine la columna CompiledType.

Derivar tipos de datos de otros objetos de datos

Puede utilizar el operador type para derivar tipos de datos de otros objetos de datos de Stateflow. Por ejemplo, el modelo sf_bus_demo utiliza el tipo de datos de la estructura de entrada inbus para definir el tipo de datos de la estructura local counterbus_struct usando esta expresión:

type(inbus)

Model Explorer showing the specification for the data object counterbus_struct.

Como inbus deriva su tipo del objeto Simulink.Bus COUNTERBUS, counterbus_struct también deriva su tipo de datos de COUNTERBUS. Después de compilar un modelo, la columna CompiledType de Model Explorer muestra el tipo utilizado en la aplicación de simulación compilada.

Para obtener más información sobre este ejemplo, consulte Integrar estructuras personalizadas en gráficos de Stateflow.

Especificar los tipos de datos usando un alias de Simulink

Puede especificar el tipo de datos de Stateflow usando un alias de tipo de datos de Simulink. Para obtener más información, consulte Simulink.AliasType (Simulink).

Por ejemplo, supongamos que queremos definir un alias de tipo de datos MyFloat que se corresponde con el tipo de datos integrado single. En la línea de comandos de MATLAB, introduzca:

MyFloat = Simulink.AliasType;
MyFloat.BaseType = "single";

Si desea utilizar este alias para especificar el tipo de un objeto de datos, seleccione el objeto en Property Inspector o en Model Explorer. En el campo Type, introduzca el nombre del alias MyFloat.

Después de construir el modelo, la columna CompiledType de Model Explorer muestra el tipo utilizado en la aplicación de simulación compilada.

Nota

Los bloques de Stateflow no admiten la generación de código si alguno de los datos utiliza un tipo de alias y tiene tamaño variable. Esta limitación no se aplica a los datos de entrada, salida o locales en el nivel de gráfico. Para obtener más información sobre cómo definir datos de tamaño variable, consulte Declare Variable-Size Data in Stateflow Charts.

Consulte también

(Simulink) | (Simulink) | (Simulink)

Temas relacionados