Especificar el ámbito y el tipo de datos de Stateflow
Los tipos de datos definen el formato en el que la información se almacena en la memoria del equipo. Los tipos de datos influyen en tres aspectos clave del gráfico de Stateflow®:
La cantidad de espacio de almacenamiento asignada a los datos.
En cómo un valor de datos se convierte a un patrón binario.
El conjunto de operaciones que pueden realizarse en los datos.
Utilice tipos de datos para optimizar el uso de recursos de los gráficos y garantizar que las aplicaciones de software manipulen correctamente los datos del gráfico.
En Stateflow, se definen los datos según su tipo, ámbito y modo. El tipo de datos es la forma específica en la que los datos se almacenan en el sistema. Por ejemplo, podría tener un tipo de datos double
o single
. El ámbito es la manera en la que los datos operan en el gráfico de Stateflow. Por ejemplo, los datos de entrada son datos que Simulink® introduce en Stateflow, mientras que los datos locales son datos que se originan y permanecen dentro de Stateflow. El modo especifica el subconjunto del tipo que puede elegir. Por ejemplo, si el modo es Inherited
, los datos toman la información de Simulink, pero si el modo es Expression
, la información de los datos depende de una expresión que se introduce. El modo solo se puede especificar cuando se utiliza el asistente de tipo de datos.
Puede especificar el tipo de datos en Property Inspector. 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.
Heredar tipos de datos de objetos de Simulink
Cuando establece la lista desplegable Type en Inherit: Same as Simulink
, los objetos de datos de ámbito Input
, Output
, Parameter
y Data Store Memory
heredan los tipos de datos de los objetos de Simulink. Si espera que los datos sean de un tipo específico, no establezca Type como Inherit: Same as 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. |
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
. La estructura se define utilizando 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
.
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 desea 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";
Para utilizar este alias para especificar un tipo de datos, abra un gráfico de Stateflow y, en el panel Symbols, seleccione los datos. Después, en Property Inspector, establezca Type en MyFloat
.
Después de construir el modelo, la columna CompiledType de Model Explorer muestra el tipo utilizado en la simulación compilada.
Consulte también
fixdt
(Simulink) | Simulink.AliasType
(Simulink) | Simulink.NumericType
(Simulink)