Registrar, verificar y depurar gráficos
En Stateflow®, puede registrar datos y estados para comprender cuándo y cómo cambian durante la simulación. Puede añadir puntos de interrupción para pausar la ejecución en estados o transiciones. Si combina estas técnicas, puede verificar y depurar la lógica del gráfico.
En este ejemplo, puede identificar un problema de diseño en un modelo de batería recargable registrando la actividad de los estados y los valores de los datos de un gráfico. Después, utilice puntos de interrupción para identificar el estado y el paso de tiempo en la que se produce el problema de diseño.
Abrir el modelo
Para construir el modelo, siga las instrucciones del paso anterior del tutorial. Como alternativa, abra el modelo sfGetStartedBattery de la línea de comandos de MATLAB®.
En la línea de comandos de MATLAB, introduzca:
openExample("sfGetStartedBattery")
Puede cargar o descargar la batería alternando el valor del bloque Manual Switch.
Haga doble clic en el bloque Chart para entrar en Stateflow.Editor

Los estados
ChargeyDischargerepresentan los modos de funcionamiento del sistema de baterías. La entradaisChargingdetermina el estado activo. Los datossentPowerychargerepresentan la potencia de salida y el nivel de carga de la batería.
Registrar estados y datos
El sistema de baterías tiene estos requisitos:
Cuando
isCharginges verdadera, se carga la batería. CuandoisCharginges falsa, se descarga la batería.El porcentaje de carga de la batería debe permanecer entre 100% y 0%.
Verifique los requisitos registrando el estado activo del gráfico y el valor de la entrada charge para Simulation Data Inspector.
Para registrar el estado activo del gráfico, en la pestaña Simulation, en la sección Prepare, haga clic en Log Active State. Aparece un indicador de registro
en la esquina inferior izquierda del área de diseño.En el panel Symbols, haga clic con el botón secundario en
chargey haga clic en Inspect. Se abre Property Inspector.En Property Inspector, expanda la sección Logging y seleccione Log signal data.
Vuelva a Simulink® Editor.
Haga clic con el botón secundario en la línea de conexión desde el bloque Manual Switch hasta el gráfico y haga clic en Log Selected Signals.
Para simular el modelo, en la pestaña Simulation, haga clic en Run. El modelo se simula hasta que pulse Stop.
Para pasar al estado
Discharge, haga doble clic en el bloque Manual Switch. Espere unos segundos y alterne de nuevo el bloque Manual Switch. Repítalo varias veces. En la última alternancia, devuelva el bloque Manual Switch a0.En la pestaña Simulation, haga clic en Stop para finalizar la simulación.
En la pestaña Simulation, en la sección Review Results, haga clic en Data Inspector.
En Simulation Data Inspector, haga clic en Visualization and layouts
. En la sección Basic layouts, haga clic en el diseño 2x1
.Para mostrar el estado activo del gráfico, haga clic en la gráfica superior. Luego, en la pestaña Inspect, expanda la sección Stateflow y seleccione
Battery:ActiveChild.Para mostrar la salida del bloque Manual Switch, haga clic en la gráfica inferior. Luego, en la pestaña Inspect, expanda la sección Signals y seleccione
Manual Switch:1.
Cuando alterne el bloque Manual Switch, el gráfico realiza la transición entre
ChargeyDischargesegún lo previsto.Para mostrar el valor de
charge, haga clic en la gráfica inferior. Después, en la pestaña Inspect, seleccionechargey desactiveManual Switch:1.
La batería contradice los requisitos cargándose por encima de 100% y por debajo de 0%.
Establecer puntos de interrupción
Establezca puntos de interrupción en estados y transiciones para identificar el paso de tiempo en el que se produce el problema de diseño.
En el gráfico, haga clic con el botón secundario sobre el estado
Dischargey haga clic en Set Breakpoint. Aparece un indicador de punto de interrupción circular rojo sobre el estado. De forma predeterminada, los puntos de interrupción de un estado se activan cuando el gráfico entra o permanece en el estado.Para impedir que el punto de interrupción se active cuando el gráfico entra en el estado, haga clic en el indicador de punto de interrupción. En el cuadro de diálogo Discharge Breakpoints, desactive el activador On State Entry.
Haga clic con el botón secundario en la transición de
ChargeaDischargey haga clic en Set Breakpoint. El punto de interrupción se activa cuando el gráfico avanza por la transición.En la pestaña Debug, haga clic en Breakpoints List.
En el panel Breakpoints List, puede habilitar o deshabilitar puntos de interrupción y cambiar las condiciones en las que se activan.
Especifique que el punto de interrupción
Dischargese activa únicamente cuando la carga de la batería es negativa. En la fila de la tabla para el estadoDischarge, haga doble clic en la columna Condition e introduzcacharge<0.
Simule el modelo. La simulación se pausa en la transición entre
ChargeyDischarge.
Para reanudar la simulación, en la pestaña Simulation, haga clic en Continue. La simulación se pausa en el paso en el que
chargese vuelve negativo.
Haga clic en Continue de nuevo. Dado que
chargesigue siendo negativo, el punto de interrupciónDischargese activa en el siguiente paso.Detenga la simulación.
Para eliminar los puntos de interrupción, haga clic con el botón secundario en el identificador de cada punto de interrupción y seleccione Clear Breakpoint.
En el siguiente paso del tutorial, corregirá el problema de diseño añadiendo modos de funcionamiento anidados que ralentizan o detienen la carga o descarga cuando la batería alcanza determinados niveles de carga.