Compartir datos con Simulink y el área de trabajo de MATLAB
Los gráficos de Stateflow® interactúan con otros bloques y objetos de un modelo de Simulink® del siguiente modo:
Uso compartido de datos por medio de conexiones de entrada y salida.
Importación de los valores iniciales de los datos desde el área de trabajo base de MATLAB®.
Almacenamiento de los valores finales de los datos en el área de trabajo base de MATLAB.
Los gráficos también pueden acceder a los parámetros, almacenes de datos y diccionarios de datos de Simulink. Para obtener más información, consulte Compartir parámetros con Simulink y el área de trabajo de MATLAB y Access Data Store Memory from a Chart.
Compartir datos de entrada y de salida con Simulink
Los datos fluyen desde Simulink hacia un gráfico de Stateflow a través de los puertos de entrada. Los datos fluyen desde un gráfico de Stateflow hacia Simulink a través de los puertos de salida.
Para definir datos de entrada o de salida en un gráfico:
Añada un objeto de datos al gráfico como se describe en Añadir datos de Stateflow.
Establezca la propiedad Scope del objeto de datos.
Para definir los datos de entrada, establezca Scope en
Input Data
. En la parte izquierda del bloque del gráfico aparece un puerto de entrada.Para definir los datos de salida, establezca Scope en
Output Data
. En la parte derecha del bloque del gráfico aparece un puerto de salida.
De forma predeterminada, los valores de Port aparecen en el orden en el que se añaden los objetos de datos. Puede cambiar estas asignaciones modificando la propiedad Port de los datos. Cuando se cambia la propiedad Port de un objeto de datos de entrada o salida, los valores de Port de los objetos de datos de entrada o salida restantes vuelven a numerarse automáticamente.
Establezca el tipo de datos del objeto de datos según se describe en Especificar el tipo de datos de Stateflow.
Establezca el tamaño del objeto de datos según se describe en Especificar el tamaño de los datos de Stateflow.
Nota
No se puede establecer el tipo o el tamaño de los datos de entrada de Stateflow para que acepten datos basados en tramas de Simulink.
Inicializar datos desde el área de trabajo base de MATLAB
Puede importar el valor inicial de un símbolo de datos definiéndolo en el área de trabajo base de MATLAB y en la jerarquía de Stateflow.
Defina e inicialice una variable en el área de trabajo base de MATLAB.
En la jerarquía de Stateflow, defina un objeto de datos con el mismo nombre que la variable de MATLAB.
Seleccione la propiedad Allow initial value to resolve to a parameter del objeto de datos.
Cuando se inicia la simulación, tiene lugar la resolución de los datos. Durante este proceso, el objeto de datos de Stateflow obtiene su valor inicial de la variable asociada de MATLAB.
Los arreglos unidimensionales de Stateflow son compatibles con los vectores fila y columna de MATLAB del mismo tamaño. Por ejemplo, un vector de Stateflow de tamaño 5
es compatible con un vector fila de tamaño [1,5]
o con un vector columna de tamaño [5,1]
de MATLAB. Cada elemento del arreglo de Stateflow se inicializa con el mismo valor que el elemento correspondiente del arreglo en el área de trabajo base de MATLAB.
El tiempo de inicialización depende del elemento principal de los datos y del ámbito del objeto de datos de Stateflow.
Elemento principal de los datos | Ámbito | Tiempo de inicialización |
---|---|---|
Gráfico | Entrada | No se aplica |
Salida, local | Inicio de la simulación o cuando el gráfico se reinicializa como parte de un subsistema de Simulink activado | |
Estado con intersección histórica | Local | Inicio de la simulación o cuando el gráfico se reinicializa como parte de un subsistema de Simulink activado |
Estado sin intersección histórica | Local | Acceso al estado |
Función (gráfica, de tablas de verdad y funciones de MATLAB) | Entrada, salida | Invocación de llamada a función |
Local | Inicio de la simulación o cuando el gráfico se reinicializa como parte de un subsistema de Simulink activado |
Almacenar los datos en el área de trabajo base de MATLAB
Al final de la simulación, un gráfico de Stateflow que utilice C como lenguaje de acción puede guardar el valor final de un objeto de datos en el área de trabajo base de MATLAB.
Abra Model Explorer. En la pestaña Modeling, seleccione Model Explorer.
Haga doble clic en el objeto de datos en el panel Contents.
En el panel Description del cuadro de diálogo de propiedades de los datos, seleccione Save final value to base workspace.
Esta opción está disponible para los símbolos de datos de todos los ámbitos excepto Constant
y Parameter
.