Main Content

Especificar el tiempo de muestreo

Designar tiempos de muestreo

Simulink® permite especificar el tiempo de muestreo de un bloque directamente como un valor numérico o de forma simbólica definiendo un vector de tiempo de muestreo. El valor del tiempo de muestreo debe ser un double o un arreglo de dos elementos de double que contenga el periodo del tiempo de muestreo y el desplazamiento. En el caso de un tiempo de muestreo discreto, el vector es [Ts, To], donde Ts es el periodo de muestreo y To es el desplazamiento de tiempo inicial. Por ejemplo, considere un modelo discreto que produce las salidas cada dos segundos. Si la unidad base de tiempo se mide en segundos, puede establecer directamente el tiempo de muestreo discreto especificando el valor numérico de 2 como el parámetro SampleTime. Puesto que el valor del desplazamiento es cero, no es necesario que lo especifique. Sin embargo, puede introducir [2,0] en el campo Sample time.

Para bloques no discretos, los componentes del vector son valores simbólicos que representan uno de los tipos en Types of Sample Time. La siguiente tabla resume estos tipos y los correspondientes valores de tiempo de muestreo. La tabla también define el carácter explícito de cada tipo de tiempo de muestreo y designa la anotación y el color asociados. Puesto que un tiempo de muestreo heredado es explícito, puede especificarlo como [-1, 0] o como -1. Mientras que un tiempo de muestreo activado es implícito, solo Simulink puede asignar el tiempo de muestreo de [-1, -1]. Para obtener más información sobre colores y anotaciones, consulte View Sample Time Information.

Designaciones de información de tiempo de muestreo

Tipo de tiempo de muestreoTiempo de muestreoAnotaciónExplícito
Discrete[Ts, To]D1, D2, D3, D4, D5, D6, D7,... Di
Continuous[0, 0]Cont
Fixed in minor step (Fijo con unidad de tiempo corto)[0, 1]FiM (FeM)
Inherited (Heredado)[–1, 0]N/A
Constant (Constante)[Inf, 0]Inf
Variable[–2, T vo]V1, V2,... ViNo
Multirate (Multifrecuencia)N/AN/ANo
Asynchronous (Asíncrono)[–1, –n]A1, A2,... AiNo
Dataflow (Flujo de datos)N/AN/ANo
Initialize model wide event (Inicializar evento en todo el modelo)[Inf,1]IE 
Terminate model wide event (Finalizar evento en todo el modelo)[Inf, 2]TE 
Resent model wide event (Reenviar evento en todo el modelo)[Inf, 3, 4, … ]RE1, RE2, RE3... 
Union (Unión)[NaN, NaN]U1, U2, U3... 
Aperiodic Partitions (Particiones aperiódicas)[1, -30]AP1, AP2, AP3... 

El color que se asigna a cada bloque depende de su tiempo de muestreo en relación con otros tiempos de muestreo en el modelo. Esto significa que pueden asignarse diferentes colores a un mismo tiempo de muestreo aunque esté en un modelo principal o en modelos a los que hace referencia. Consulte Referencias del modelo.

Por ejemplo, supongamos que un modelo define tres tiempos de muestreo: 1, 2 y 3. Además, supongamos que hace referencia a un modelo que define dos tiempos de muestreo: 2 y 3. En este caso, los bloques que operan en la tasa de muestreo 2 aparecen en verde en el modelo principal y en rojo en el modelo de referencia.

Cabe señalar que los bloques Mux y Demux son solo operadores de agrupación y que las señales que pasan a través de ellos retienen información sobre sus tiempos. Por este motivo, las líneas que emanan de un bloque Demux pueden tener diferentes colores si provienen de fuentes que tienen diferentes tiempos de muestreo. En este caso, los bloques Mux y Demux llevan el código de color de híbrido (amarillo) para indicar que gestionan señales con varios ritmos.

Del mismo modo, los bloques Subsystem que contienen bloques con tiempos de muestreo distintos también llevan el color de híbridos porque no se asocian a ninguna frecuencia única. Si todos los bloques dentro de un subsistema se ejecutan en una frecuencia única, el bloque Subsystem lleva el color correspondiente.

Puede usar los valores explícitos de tiempo de muestreo en esta tabla para especificar tiempos de muestreo de forma interactiva o de forma programática para tiempos de muestreo basados en bloques o en puertos.

El siguiente modelo sirve como referencia para esta sección.

En este ejemplo, establezca el tiempo de muestreo de la señal de onda sinusoidal de entrada en 0.1. El objetivo es conseguir un tiempo de muestreo de salida de 0.2. El bloque Rate Transition sirve como retención de orden cero. En la siguiente figura se muestra el diagrama de bloque resultante después de configurar los tiempos de muestreo y simular el modelo. Los colores y las anotaciones indican que este es un modelo discreto.

ex_specify_sample_time especificar tiempo de muestreo después de configurar tiempos de muestreo

Especificar tiempos de muestreo basados en bloques de forma interactiva

Para establecer el tiempo de muestreo de un bloque de forma interactiva:

  1. En la ventana del modelo de Simulink, haga doble clic en el bloque. Se abre el cuadro de diálogo de los parámetros de bloque.

  2. Introduzca el tiempo de muestreo en el campo Sample time.

  3. Haga clic en OK.

A continuación, se muestra una figura del cuadro de diálogo de parámetros para el bloque Sine Wave (Onda sinusoidal) después de introducir 0.1 en el campo Sample time.

Para especificar e inspeccionar tiempos de muestreo basados en bloques en todo un modelo, considere usar el editor de Model Data (en la pestaña Modeling, haga clic en Model Data Editor). En las pestañas Inports/Outports, Signals y Data Stores, establezca la lista desplegable Change view en Design y utilice la columna Sample Time. Para obtener más información, consulte la página del Editor de datos de modelo.

Especificar tiempos de muestreo basados en puertos de forma interactiva

El bloque Rate Transition tiene tiempos de muestreo basados en puertos. Puede establecer el tiempo de muestreo del puerto de salida de forma interactiva completando los siguientes pasos:

  1. Haga doble clic en el bloque Rate Transition. Se abre el cuadro de diálogo de parámetros.

  2. Seleccione la opción del menú desplegable de Output port sample time options (Opciones de tiempo de muestreo del puerto de salida) como Specify.

  3. Reemplace -1 en el campo Output port sample time (Tiempo de muestreo del puerto de salida) por 0.2.

  4. Haga clic en OK.

Para obtener más información sobre las opciones de tiempo de muestreo en el cuadro de diálogo Rate Transition parameters (Parámetros de tasa de transición), consulte la página de referencia Rate Transition.

Especificar tiempos de muestreo basados en bloques de forma programática

Para establecer un tiempo de muestreo de un bloque de forma programática, establezca su parámetro SampleTime en el tiempo de muestreo deseado con el comando set_param. Por ejemplo, para establecer el tiempo de muestreo del bloque Gain en el modelo Specify_Sample_Time heredado en (-1), introduzca el siguiente comando:

set_param('Specify_Sample_Time/Gain','SampleTime','[-1, 0]')

Al igual que con la especificación interactiva, puede introducir solo el primer componente de vector si el segundo componente es cero.

set_param('Specify_Sample_Time/Gain','SampleTime','-1')

Especificar tiempos de muestreo basados en puertos de forma programática

Para establecer el tiempo de muestreo del puerto de salida del bloque Rate Transition en 0.2, utilice el comando set_param con el parámetro OutPortSampleTime:

set_param('Specify_Sample_Time/Rate Transition',...
'OutPortSampleTime', '0.2')

Acceder a información sobre tiempos de muestreo de forma programática

Para acceder a todos los tiempos de muestreo asociados a un modelo, utilice la función API Simulink.BlockDiagram.getSampleTimes.

Para acceder al tiempo de muestreo de un único bloque, utilice la función API Simulink.Block.getSampleTimes.

Especificar tiempos de muestreo para un bloque personalizado

Puede diseñar bloques personalizados de manera que los puertos de entrada y salida operen a diferentes ritmos de tiempos de muestreo. Para obtener más información sobre cómo especificar tiempos de muestreo basados en bloques y en puertos para funciones S, consulte Specify S-Function Sample Times .

Determinar unidades de tiempo de muestreo

Dado que la ejecución de un modelo de Simulink no depende de un conjunto específico de unidades, debe determinar la unidad base de tiempo adecuada para su aplicación y establecer los valores de tiempo de muestreo en consecuencia. Por ejemplo, si la unidad base de tiempo se mide en segundos, representaría un tiempo de muestreo de 0.5 segundos estableciendo el tiempo de muestreo en 0.5.

Cambiar el tiempo de muestreo después del inicio de tiempo de simulación

Para cambiar un tiempo de muestreo después de que una simulación haya empezado, debe detener la simulación, reiniciar el parámetro SampleTime y, a continuación, restablecer la ejecución.

Temas relacionados