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:
En el panel Data de Model Explorer, haga clic en el botón Show data type assistant .
En la lista desplegable, seleccione Mode. La lista de modos disponibles depende del ámbito del objeto de datos.
Ámbito Modos Local
Inherit
(disponible solo en gráficos que utilizan MATLAB® como lenguaje de acción),Built in
,Fixed point
,Enumerated
,Bus object
,Expression
Constant
Built in
,Fixed point
,Expression
Parameter
Inherit
,Built in
,Fixed point
,Enumerated
,Bus object
,Expression
Input
Inherit
,Built in
,Fixed point
,Enumerated
,Bus object
,Expression
Output
Inherit
,Built in
,Fixed point
,Enumerated
,Bus object
,Expression
Data Store Memory
Inherit
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.
Modo Tipos 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:
En el caso de los gráficos que utilizan MATLAB como lenguaje de acción, si el ámbito es
Local
, los datos infieren su tipo a partir del contexto del código de MATLAB del gráfico.Si el ámbito es
Parameter
, los datos heredan el tipo del parámetro asociado, que puede definir en el modelo de Simulink® o en el área de trabajo base de MATLAB. Consulte Compartir parámetros con Simulink y el área de trabajo de MATLAB.Si el ámbito es
Input
, los datos heredan el tipo de la señal de entrada de Simulink en el puerto de entrada designado. Consulte Compartir datos de entrada y de salida con Simulink.Si el ámbito es
Output
, los datos heredan el tipo de la señal de salida de Simulink en el puerto de salida designado. Consulte Compartir datos de entrada y de salida con Simulink.Nota
Evite heredar tipos de datos de señales de salida. Consulte Evitar la herencia de propiedades de datos de salida de bloques de Simulink.
Si el ámbito es
Data Store Memory
, los datos heredan el tipo del almacén de datos de Simulink al que vincula el objeto de datos. Consulte Access Data Store Memory from a Chart.
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 MATLABmxArray
. Solo se admite con gráficos que utilizan C como lenguaje de acción. El tipo de datosml
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 datosml
no pueden tener un ámbito fuera de la jerarquía de Stateflow. Es decir, no pueden tener un ámbito deInput
oOutput
. 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:
Una llamada a la función
fixdt
(Simulink) para crear un objetoSimulink.NumericType
(Simulink) que describa un tipo de datos de punto fijo o de punto flotante. Consulte Specify Fixed-Point Data.Una llamada al operador
type
para especificar el tipo de los datos previamente definidos. Consulte Derivar tipos de datos de otros objetos de datos.Un objeto
Simulink.AliasType
(Simulink) que define un alias de tipo de datos en el área de trabajo base de MATLAB. Consulte Especificar los tipos de datos usando un alias de Simulink.
Para obtener más información, consulte Especificar las propiedades de los datos utilizando expresiones de MATLAB.
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.
Ámbito | Descripción |
---|---|
Input | Hereda 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. |
Parameter | Hereda 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 Memory | Hereda el tipo del almacén de datos de Simulink correspondiente. |
Para determinar los tipos de datos que heredan los objetos, siga estos pasos:
Construya el modelo de Simulink.
Abra Model Explorer.
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)
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
fixdt
(Simulink) | Simulink.AliasType
(Simulink) | Simulink.NumericType
(Simulink)