Main Content

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

  1. En el modelo old_sf_car, abra el gráfico shift_logic.

  2. Para abrir el panel Symbols. En la pestaña Modeling, seleccione Symbols Pane.

  3. En cada subestado de gear_state, elimine la acción entry asignando un valor a la variable de los datos de salida gear.

  4. En el panel Symbols, haga clic con el botón secundario en la variable de salida gear y seleccione Delete.

Paso 2: Activar una salida de estado activo

  1. Abra Property Inspector. En la pestaña Modeling, seleccione Property Inspector.

  2. En el editor de Stateflow, seleccione el estado gear_state.

  3. En Property Inspector, seleccione la casilla Create output for monitoring y elija Child activity.

  4. En el campo Data name, introduzca el nombre de los datos de estado activo gear.

  5. 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

  1. 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).

  2. Conecte la señal de salida gear del gráfico shift_logic con el bloque Cast To Double.

  3. Conecte la señal de salida del bloque Cast To Double con el subsistema Transmission.

  4. Añada un bloque Memory (Simulink). Este bloque evita un bucle algebraico entre el gráfico de Stateflow y el subsistema Threshold Calculation.

  5. Realice una segunda conexión de la señal de salida del bloque Cast To Double con el bloque Memory.

  6. 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

(Simulink) | (Simulink)

Temas relacionados