Main Content

To Workspace

Registrar datos en el área de trabajo desde un modelo de Simulink

  • To Workspace block

Bibliotecas:
Simulink / Sinks
DSP System Toolbox / Sinks
HDL Coder / Sinks

Descripción

El bloque To Workspace registra los datos conectados a su puerto de entrada con un área de trabajo desde un modelo de Simulink®. Normalmente, los datos registrados se devuelven en el área de trabajo base. Cuando simula un modelo de forma programática dentro de una función, los datos registrados se devuelven en el área de trabajo de la función. Durante la simulación, los datos registrados se transmiten a Simulation Data Inspector. Los datos registrados se escriben en el área de trabajo cuando la simulación se pone en pausa o se detiene.

Puede utilizar el bloque To Workspace para registrar datos para una señal, un bus o un arreglo de buses. El bloque To Workspace admite el registro de datos escalares y multidimensionales, incluidos datos para señales de tamaño variable.

Puede configurar el nombre de la variable que almacene los datos que registra el bloque To Workspace, y puede especificar el formato para los datos registrados. También puede controlar qué valores registra el bloque To Workspace especificando parámetros de bloque o modelo. Para obtener más información, consulte Specify Signal Values to Log.

Acceder a datos registrados

El modo en el que se devuelven los resultados de la simulación al área de trabajo depende de cómo simule y configure el modelo. Los resultados de la simulación se devuelven en un solo objeto Simulink.SimulationOutput en cualquiera de estas situaciones:

  • Puede activar el parámetro Single simulation output.

    De forma predeterminada, el parámetro Single simulation output (Salida de simulación única) está activado cuando crea un nuevo modelo. Puede habilitar el parámetro utilizando el cuadro de diálogo Configuration Parameters. En la pestaña Modeling, en Settings, haga clic en Model Settings. A continuación, en el cuadro de diálogo Configuration Parameters, seleccione Data Import/Export y Single simulation output (Salida de simulación única).

  • Puede ejecutar un conjunto de simulaciones utilizando el panel Multiple Simulations.

  • Puede simular el modelo de forma programática utilizando uno o más objetos Simulink.SimulationInput.

    Puede configurar simulaciones utilizando objetos SimulationInput cuando ejecuta simulaciones usando las funciones sim, parsim y batchsim.

  • Puede simular el modelo utilizando una sintaxis de función sim, que devuelve resultados como una sola salida de simulación.

    Para obtener más información, consulte sim.

Cuando los resultados de la simulación se devuelven en una sola salida, el objeto SimulationOutput contiene una variable para cada bloque To Workspace del modelo. Para acceder a los datos registrados por un bloque To Workspace:

  • Utilice un punto con el nombre de variable especificado utilizando el parámetro Variable name del bloque. De forma predeterminada, los modelos se configuran para devolver una sola salida de simulación utilizando el nombre de variable out, y el bloque To Workspace guarda los datos en una variable denominada simout.

    toWksData = out.simout;
  • Utilice la función get con el nombre de la variable que contiene los datos registrados.

    toWksData = get(out,simout);

En el modelo, el bloque To Workspace indica cómo acceder a los datos del área de trabajo. De forma predeterminada, el bloque muestra out.simout. El aspecto del bloque se actualiza cuando:

  • Especifica un valor distinto para el parámetro Variable name en el bloque.

  • Especifica un nombre de variable distinto para la única salida de simulación.

  • Borra el parámetro de configuración Single simulation output (Salida de simulación única).

Ejemplos

expandir todo

El bloque To Workspace registra los datos de simulación en el área de trabajo.

Por ejemplo, simule el modelo SineToWorkspace.

The SineToWorkspace model

mdl = "SineToWorkspace";
out = sim(mdl);

Los resultados de la simulación del modelo se devuelven en un solo objeto Simulink.SimulationOutput denominado out. Para acceder a los resultados guardados por el bloque To Workspace, use la notación de puntos.

toWksData = out.simout
  timeseries

  Common Properties:
            Name: 'Sine Wave'
            Time: [51x1 double]
        TimeInfo: tsdata.timemetadata
            Data: [51x1 double]
        DataInfo: tsdata.datametadata

Puertos

Entrada

expandir todo

Puerto de entrada que recibe los datos que se van a registrar en el área de trabajo. El bloque To Workspace admite el registro de datos reales y complejos de cualquier tipo de datos integrado o de tipo de datos definidos por el usuario como buses, enumeraciones y datos de punto fijo.

Sugerencias

El registro de datos de punto fijo requiere una licencia para Fixed-Point Designer™.

Tipos de datos: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | string | fixed point | enumerated | bus | image
Soporte de números complejos:

Parámetros

expandir todo

Especifique un nombre para la variable que contiene los datos registrados. De forma predeterminada, el bloque To Workspace guarda los datos registrados en una variable denominada simout. Cuando un modelo contiene varios bloques To Workspace, el valor del parámetro Variable name para cada bloque debe ser único.

Para obtener información sobre cómo asignar nombres a las variables de MATLAB®, consulte Nombres de variables.

Uso programático

Parámetro de bloque: VariableName
Tipo: cadena | vector de caracteres
Valor: Nombre de variable de MATLAB válido
Predeterminado: 'simout'

Si desea guardar o analizar solo los datos del final de una simulación, especifique el número de muestras que desea registrar como un número entero positivo mayor que cero. De forma predeterminada, el bloque To Workspace registra datos para toda la simulación, y el valor para el parámetro Limit data points to last (Registrar solo los últimos puntos de datos) es inf.

Para obtener más información sobre cómo controlar las muestras que se registran durante una simulación, consulte Specify Signal Values to Log.

Uso programático

Parámetro de bloque: MaxDataPoints
Tipo: cadena | vector de caracteres
Valores: 'inf' | entero positivo mayor que cero
Predeterminado: 'inf'

Especifique un factor de diezmado para reducir la tasa de muestreo efectiva para los datos registrados. Para un factor de diezmado, n, el bloque To Workspace registra cada n-ésimo valor de muestra. Por ejemplo, cuando especifica el valor Decimation como 2, el bloque To Workspace registra uno de cada dos puntos de datos.

Para obtener más información sobre cómo controlar las muestras que se registran durante una simulación, consulte Specify Signal Values to Log.

Uso programático

Parámetro de bloque: Decimation
Tipo: cadena | vector de caracteres
Valores: escalar
Predeterminado: '1'

Especifique el formato para los datos registrados en el área de trabajo. Para registrar datos para una entrada de bus o de arreglo de buses, utilice el formato Timeseries.

Valor Save FormatFormato de datos para el área de trabajoSoporte de flujo de trabajo de simulación
Timeseries

Entrada nonbus registrada como objeto timeseries.

Entrada de bus registrada como estructura de objetos timeseries. La jerarquía y los nombres para los campos de la estructura coinciden con la jerarquía y los nombres especificados en el objeto Simulink.Bus que define el bus.

Entrada de arreglo de buses registrada como arreglo de estructuras de objetos timeseries.

Se admite:

  • Simulación en modo Normal

  • Simulación en modo Accelerator

  • Simulación en modo Rapid Accelerator (desde R2022a)

  • Simulación de modo externo que utiliza comunicación XCP siempre que el valor StreamToWks esté establecido en 'on' y el valor MATFileLogging esté establecido en 'off'

No se admite:

  • Simulación de modo externo que utiliza TCP/IP o comunicación en serie

  • Simulación de software-in-the-loop (SIL)

  • Simulación de processor-in-the-loop (PIL)

  • Generación de código para software objetivo Simulink Coder™

Structure With Time

Entrada nonbus registrada como estructura que contiene estos campos:

  • time: vector columna de los momentos especifícos de simulación para los que se registró el valor de entrada.

  • signals: estructura con valores de muestra que contiene los campos:

    • values: arreglo de valores de muestra.

    • dimensions: dimensiones de muestras.

    • label: nombre de la línea de conexión en el modelo.

  • blockName: nombre del bloque To Workspace.

Se admite:

  • Simulación en modo Normal

  • Simulación de modo externo que utiliza comunicación XCP siempre que el valor StreamToWks esté establecido en 'on' y el valor MATFileLogging esté establecido en 'off'

Se admite excepto cuando el bloque To Workspace está en un modelo referenciado:

  • Simulación en modo Accelerator

  • Simulación en modo Rapid Accelerator

  • Simulación de modo externo que utiliza TCP/IP o comunicación en serie

Se admite si MAT-file logging (Simulink Coder) está activado para el código generado, excepto cuando el bloque To Workspace está en un modelo referenciado:

  • Simulación de software-in-the-loop (SIL)

  • Simulación de processor-in-the-loop (PIL)

  • Generación de código para software objetivo Simulink Coder

Structure

Entrada nonbus registrada como estructura que coincide con el formato Structure With Time, pero el campo time de la estructura está vacío.

Array

Valores de muestra para entrada nonbus guardados como arreglo de N dimensiones, donde N es un valor mayor que las dimensiones de la entrada. Por ejemplo:

  • Los datos de la señal de escalar se registran como vector columna.

  • Los datos de la señal de vector se registran como matriz.

  • Los datos de la señal de matriz se registran como arreglo 3D.

La estructura de los valores en el arreglo depende de las dimensiones de los datos de la señal de entrada:

  • En señales escalares y vectoriales, cada valor de muestra es una fila en el arreglo de salida. La primera dimensión del arreglo se alinea con el tiempo, de modo que simout(1,:) devuelve el primer valor de señal registrado.

  • En señales de matriz, la tercera dimensión del arreglo de salida se alinea con el tiempo, de modo que simout(:,:,1) devuelve el primer valor de señal registrado.

  • En señales de N dimensiones, la última dimensión se alinea con el tiempo, de modo que el número de elementos en la última dimensión es igual al número de muestras registrado a partir de la simulación.

El arreglo de salida contiene solo valores de señal y no contiene datos de tiempo.

Sugerencias

  • Para registrar datos basados en tramas en lugar de basados en muestras:

    • Configure el parámetro Save format para registrar datos utilizando el formato Structure o el formato Array.

    • Especifique el parámetro Save 2-D signals as como 2-D array (concatenate along first dimension) Arreglo 2-D (concatenar a lo largo de la primera dimensión).

  • Si desea cargar los datos registrados utilizando un bloque From Workspace, considere utilizar los formatos Timeseries o Structure With Time. Si registra datos utilizando el formato Array, debe incorporar los valores de tiempo de muestreo en el arreglo antes de cargar los datos.

Uso programático

Parámetro de bloque: SaveFormat
Tipo: cadena | vector de caracteres
Valores: 'Timeseries' | 'Structure with Time' | 'Structure' | 'Array'
Predeterminado: 'Timeseries'

Especifique si prefiere registrar datos de entrada en 2D como arreglo 3D o arreglo 2D.

Registrarlos como arreglo 3D es adecuado para datos de entrada basados en muestras. Las muestras se concatenan a lo largo de la tercera dimensión, permitiendo acceder fácilmente a los datos de muestreo 2D.

Registrarlos como arreglo 2D es adecuado para datos de entrada basados en tramas. Las muestras se concatenan a lo largo de la primera dimensión, eliminando así el almacenamiento en buffer de las tramas de la primera dimensión.

Dimensiones de los datos de entradaGuardar señal 2D como...Dimensiones de los datos del área de trabajo
M por N2-D array (concatenate along first dimension)

Matriz de K por N, donde K es igual a M por el número de muestras registrado a partir de la simulación.

Por ejemplo, registrar diez muestras de una entrada de matriz de 2 por 4 crea una matriz de 20 por 4.

3-D array (concatenate along first dimension)

Arreglo de M por N por K, donde K es igual al número de muestras registrado a partir de la simulación.

Por ejemplo, registrar diez muestras de una entrada de matriz de 2 por 4 crea un arreglo de 2 por 4 por 10.

Dependencias

Para activar este parámetro, establezca el valor Save format en Array o Structure.

Uso programático

Parámetro de bloque: Save2DSignal
Tipo: cadena | vector de caracteres
Valores: '2-D array (concatenate along first dimension)' | '3-D array (concatenate along third dimension)'
Predeterminado: '3-D array (concatenate along third dimension)'

Especifique cómo registrar datos de entrada de punto fijo. De forma predeterminada, el bloque To Workspace registra datos de punto fijo como objeto fi (Fixed-Point Designer). Cuando borra este parámetro, el bloque To Workspace registra datos de entrada de punto fijo como double.

El bloque To Workspace siempre registra datos de punto fijo como objeto fi cuando:

  • Se simula el modelo en el modo Rapid Accelerator.

  • Especifica el parámetro Save format como Timeseries.

Utilizar el bloque To Workspace para registrar datos de punto fijo requiere una licencia para Fixed-Point Designer.

Uso programático

Parámetro de bloque: FixptAsFi
Tipo: cadena | vector de caracteres
Valores: 'off' | 'on'
Predeterminado: 'off'

Especifique cuándo el bloque debe registrar el valor de entrada durante la simulación. De forma predeterminada, el tiempo de muestreo es heredado (-1). Para tiempo de muestreo continuo, especifique el valor como 0. Para utilizar un tiempo de muestreo discreto, especifique el parámetro Sample time como escalar. Para obtener más información, consulte Especificar el tiempo de muestreo.

Uso programático

Parámetro de bloque: SampleTime
Tipo: cadena | vector de caracteres
Valores: escalar
Predeterminado: '-1'

Características del bloque

Tipos de datos

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

Paso directo

no

Señales multidimensionales

Señales de tamaño variable

Detección de cruce por cero

no

Sugerencias

  • Puede convertir datos registrados utilizando el bloque To Workspace al formato Dataset. Convertir los datos puede facilitar el procesamiento posterior si utiliza otras técnicas de registro, como el registro de señales, que usan el formato Dataset. Para obtener más información, consulte Convert timeseries object to Dataset object.

  • Cuando llama a una función que simula un modelo, los datos registrados en la simulación se devuelven al área de trabajo de la función. Para devolver datos registrados a partir de una simulación a una función del área de trabajo base, utilice la función assignin. Por ejemplo, esta función denominada myfunc simula el modelo myModel, que incluye un bloque To Workspace que registra datos en la variable simout y envía los datos registrados por el bloque To Workspace al área de trabajo base.

    function myfunc
        out = sim("myModel");
        toWksData = get(out,"simout");
        assignin("base","toWksData",toWksData);
    end
    

Capacidades ampliadas

Generación de código PLC
Genere código de texto estructurado mediante Simulink® PLC Coder™.

Conversión de punto fijo
Diseñe y simule sistemas en punto fijo mediante Fixed-Point Designer™.

Historial de versiones

Introducido antes de R2006a

expandir todo