Simplificar gráficos de Stateflow incorporando una salida de estado activo
Los datos de estado activo pueden simplificar el diseño de algunos gráficos de Stateflow® porque no es necesario mantener los datos que estén estrechamente correlacionados con la jerarquía del gráfico. Cuando habilita datos de estado activo, Stateflow informa la actividad de estados a través de un puerto de salida a Simulink® o como datos locales en el gráfico. Este ejemplo muestra cómo simplificar el diseño de un gráfico de Stateflow® añadiendo datos de salida de estado activo. Para obtener más información, consulte Monitor State Activity Through Active State Data.
En el modelo existente old_sf_car
, el gráfico de Stateflow shift_logic realiza un seguimiento de la actividad del estado secundario en gear_state
actualizando el valor de los datos de salida gear
.
Cuando se incorporan datos de estado activo, el modelo sf_car
evita las actualizaciones de datos manuales que reflejan la actividad del gráfico. En cambio, el gráfico genera la actividad del estado secundario automáticamente a través de la salida de estado activo gear.
Modificar el modelo
Para simplificar el diseño del modelo old_sf_car
, elimine los datos que estén estrechamente correlacionados con la jerarquía del gráfico y active la monitorización automática de la actividad del estado secundario en gear_state
.
Paso 1: Eliminar el seguimiento manual de la actividad de estados
En el modelo
old_sf_car
, abra el gráficoshift_logic
.Para abrir el panel Symbols. En la pestaña Modeling, seleccione Symbols Pane.
En cada subestado de
gear_state
, elimine la acción entry asignando un valor a la variable de los datos de salidagear
.En el panel Symbols, haga clic con el botón secundario en la variable de salida
gear
y seleccioneDelete
.
Paso 2: Activar una salida de estado activo
Abra Property Inspector. En la pestaña Modeling, seleccione Property Inspector.
En el editor de Stateflow, seleccione el estado
gear_state
.En Property Inspector, seleccione la casilla Create output for monitoring y elija
Child activity
.En el campo Data name, introduzca el nombre de los datos de estado activo
gear
.En el campo Enum name, introduzca el nombre del tipo de datos de enumeración
gearType
para los datos de estado activo.
Paso 3: Conectar la señal con los bloques de Simulink
En el modelo de Simulink, añada un bloque Cast To Double. Este bloque convierte la salida enumerada del gráfico de Stateflow en una señal de tipo
double
. Para obtener más información, consulte Data Type Conversion (Simulink).Conecte la señal de salida
gear
del gráficoshift_logic
con el bloque Cast To Double.Conecte la señal de salida del bloque Cast To Double con el subsistema Transmission.
Añada un bloque Memory (Simulink). Este bloque evita un bucle algebraico entre el gráfico de Stateflow y el subsistema Threshold Calculation.
Realice una segunda conexión de la señal de salida del bloque Cast To Double con el bloque Memory.
Conecte la salida del bloque Memory con el subsistema Threshold Calculation.
Ver los resultados de la simulación
La señal de salida gear
es un tipo enumerado gestionado por Stateflow. Puede ver la señal de salida de estado activo gear durante la simulación conectando el gráfico a un bloque Scope. Los nombres de los valores enumerados coinciden con los nombres de los subestados de gear_state
. El valor enumerado adicional de None
indica unidades de tiempo cuando no hay elementos secundarios activos.
Consulte también
Data Type Conversion (Simulink) | Memory (Simulink)