Main Content

Transport Delay

Posticipare l'input di una determinata quantità di tempo

  • Transport Delay block

Librerie:
Simulink / Continuous

Descrizione

Il blocco Transport Delay posticipa l'input di una quantità di tempo specificata. È possibile utilizzare questo blocco per simulare un ritardo temporale. L'input di questo blocco deve essere un segnale continuo.

All'inizio della simulazione, il blocco genera il parametro Initial output finché il tempo di simulazione non supera il parametro Time delay. Quindi, il blocco inizia a generare l'input ritardato. Durante la simulazione, il blocco memorizza i punti di input e i tempi di simulazione in un buffer. Questa dimensione viene specificata con il parametro Initial buffer size.

Quando si desidera produrre un output in un momento che non corrisponde ai tempi dei valori di input memorizzati, il blocco effettua un'interpolazione lineare tra i punti. Quando il ritardo è inferiore alla dimensione del passo, il blocco estrapola dall'ultimo punto di output, producendo risultati imprecisi. Poiché il blocco non dispone di un passaggio diretto, non può utilizzare l'input corrente per calcolare un valore di output. Ad esempio, si consideri una simulazione a passo fisso con una dimensione del passo pari a 1 e con tempo corrente t = 5. Se il ritardo è pari a 0,5, il blocco deve generare un punto a t = 4,5. Poiché l'ultimo valore temporale memorizzato si trova a t = 4, il blocco esegue un'estrapolazione in avanti.

Il blocco Transport Delay non esegue l'interpolazione dei segnali discreti. Restituisce invece il valore discreto al momento richiesto.

Questo blocco differisce dal blocco Unit Delay che ritarda e trattiene l'output solo in caso di riscontro di un campione.

Suggerimento

Evitare di utilizzare linmod per linearizzare un modello che contiene un blocco Transport Delay. Per ulteriori informazioni, vedere Linearizing Models.

Porte

Input

espandi tutto

Segnale di input da ritardare, specificato come scalare, vettore o matrice.

Questa porta ha un passaggio diretto quando il valore del parametro Time delay è 0. Poiché il parametro Time delay è sintonizzabile durante l'esecuzione, il software tratta il blocco Transport Delay come se questa porta avesse sempre un passaggio diretto.

Tipi di dati: double

Output

espandi tutto

Segnale di input, ritardato di una quantità di tempo specificata. L'output hanno le stesse dimensioni e lo stesso tipo di dati del segnale di input.

Tipi di dati: double

Parametri

espandi tutto

Specificare la quantità di tempo di simulazione per posticipare il segnale di input prima della propagazione all'output come scalare non negativo, vettore o matrice.

Utilizzo programmatico:

Parametro dei blocchi: DelayTime
Tipo: vettore di caratteri, stringa
Valori: scalare non negativo, vettore o matrice
Impostazione predefinita: '1'

Specificare l'output che il blocco genera finché il tempo di simulazione non supera per la prima volta il ritardo temporale immesso come scalare, vettore o matrice.

Limitazioni

L'output iniziale di questo blocco non può essere inf o NaN.

Un Run-to-run tunable parameter non può essere modificato durante l'esecuzione della simulazione. Tuttavia, la modifica prima dell'inizio della simulazione non comporta la rigenerazione di codice da parte dell'acceleratore o dell'acceleratore rapido.

Utilizzo programmatico

Parametro dei blocchi: InitialOutput
Tipo: vettore di caratteri, stringa
Valori: scalare | vettore | matrice
Impostazione predefinita: '0'

Definire l'allocazione iniziale della memoria per il numero di punti di input da memorizzare.

  • Se il numero di punti di input supera la dimensione iniziale del buffer, il blocco alloca memoria aggiuntiva.

  • Al termine della simulazione, un messaggio mostra la dimensione totale necessaria del buffer.

Suggerimenti

  • Poiché l'allocazione della memoria rallenta la simulazione, scegliere questo valore con attenzione nel caso in cui la velocità di simulazione costituisca un problema.

  • Per ritardi temporali elevati, questo blocco può utilizzare una grande quantità di memoria, in particolare per gli input dimensionalizzati.

Utilizzo programmatico

Parametro dei blocchi: BufferSize
Tipo: vettore di caratteri, stringa
Valore: scalare intero positivo
Impostazione predefinita: '1024'

Selezionare questa casella di spunta per utilizzare un buffer di dimensioni fisse onde salvare i dati di input dei passi temporali precedenti.

Il parametro Initial buffer size specifica la dimensione del buffer. Se il buffer è pieno, i nuovi dati sostituiscono quelli già presenti nel buffer. Il software Simulink® utilizza l'estrapolazione lineare per stimare i valori di output non presenti nel buffer.

Nota

Se si dispone di una licenza Simulink Coder™, la generazione di codice ERT o GRT utilizza un buffer di dimensioni fisse anche se non si seleziona questa casella di spunta.

Suggerimenti

  • Se i dati di input sono lineari, selezionando questa casella di spunta si può risparmiare memoria.

  • Se i dati di input non sono lineari, non selezionare questa casella di spunta poiché si possono ottenere risultati imprecisi.

Utilizzo programmatico

Parametro dei blocchi: FixedBuffer
Tipo: vettore di caratteri, stringa
Valore: 'off' | 'on'
Impostazione predefinita: 'off'

Fa sì che il blocco generi l'input durante la linearizzazione e la regolazione, impostando la modalità del blocco sul passaggio diretto.

Suggerimenti

  • La selezione di questa casella di spunta può causare una modifica dell'ordine degli stati nel modello quando si utilizzano le funzioni linmod, dlinmod o trim. Per estrarre questo nuovo ordinamento degli stati:

    1. Compilare il modello utilizzando il seguente comando, dove model è il nome del modello di Simulink.

          [sizes, x0, x_str] = model([],[],[],'lincompile'); 
    2. Terminare la compilazione con il seguente comando.

        model([],[],[],'term'); 
  • L'argomento di output x_str, che è un array di celle degli stati nel modello di Simulink, contiene il nuovo ordinamento degli stati. Quando si passa un vettore di stati come input alle funzioni linmod, dlinmod o trim, il vettore di stati deve utilizzare questo nuovo ordinamento.

Utilizzo programmatico

Parametro dei blocchi: TransDelayFeedthrough
Tipo: vettore di caratteri, stringa
Valore: 'off' | 'on'
Impostazione predefinita: 'off'

Impostare l'ordine di approssimazione di Pade per le routine di linearizzazione come scalare, vettore o matrice di numeri interi non negativi.

  • Il valore predefinito è 0, che determina un guadagno unitario senza stati dinamici.

  • Impostando l'ordine su un numero intero positivo n, si aggiungono n stati al modello, ma si ottiene un modello lineare più accurato del ritardo di trasporto.

Utilizzo programmatico

Parametro dei blocchi: PadeOrder
Tipo: vettore di caratteri, stringa
Valori: scalare | vettore | matrice
Impostazione predefinita: '0'

Caratteristiche del blocco

Tipi di dati:

double

Passaggio diretto

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

Funzionalità estese

Cronologia versioni

Introduzione prima di R2006a