Contenuto principale

Demux

Estrarre e generare gli elementi di segnale vettoriale virtuale

  • Demux block

Librerie:
Simulink / Commonly Used Blocks
Simulink / Signal Routing
HDL Coder / Commonly Used Blocks
HDL Coder / Signal Routing

Descrizione

Il blocco Demux estrae i componenti di un segnale vettoriale di input e genera segnali separati. Le porte del segnale di output sono ordinate dall'alto verso il basso.

Esempi

espandi tutto

È possibile utilizzare il blocco Demux per distribuire un segnale di input in modo uniforme sul numero desiderato di output. Per un vettore di input di lunghezza 6, quando si imposta il parametro Number of outputs (Numero di output) su 3, il blocco Demux crea tre segnali di output, ciascuno di dimensione 2.

Per visualizzare questo comportamento, aprire e simulare il modello di esempio.

mdl = "DemuxVectorUnspecified";
open_system(mdl)
sim(mdl);

Model with Display blocks showing the three output signals

Quando si utilizza il blocco Demux per estrarre e generare elementi da un input vettoriale, è possibile utilizzare -1 in un'espressione vettoriale per indicare che il blocco ridimensiona dinamicamente la porta corrispondente. Quando un'espressione vettoriale comprende sia valori positivi che valori -1, il blocco assegna il numero di elementi necessario corrispondente alle porte con valori positivi. Il blocco distribuisce gli elementi rimanenti nel modo più uniforme possibile sulle porte con valori -1.

In questo esempio, il parametro Number of outputs (Numero di output) del blocco Demux è impostato su [-1, 3, -1]. Pertanto, il blocco genera tre segnali, dove il secondo segnale ha sempre tre elementi. Le dimensioni del primo e del terzo segnale dipendono dalla dimensione del segnale di input. Per un vettore di input con sette elementi, il blocco Demux genera due elementi sulla prima porta, tre elementi sulla seconda porta e due elementi sulla terza porta.

Per visualizzare questo comportamento, aprire e simulare il modello di esempio.

mdl = "DemuxVectorSpecified";
open_system(mdl)
sim(mdl);

Model with Display blocks showing the three output signals

Esempi approfonditi

Porte

Input

espandi tutto

Segnale di input vettoriale dal quale il Demux seleziona segnali scalari o vettori più piccoli.

Tipi di dati: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image

Output

espandi tutto

Segnali di output estratti dal vettore di input. Le porte del segnale di output sono ordinate dall'alto verso il basso. Per una descrizione dell'ordine delle porte per i vari orientamenti dei blocchi, vedere Identify Port Location on Rotated or Flipped Block.

Tipi di dati: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | image

Parametri

espandi tutto

Specificare il numero di output e, opzionalmente, la dimensionalità di ciascuna porta di output.

Il valore può essere uno scalare che specifica il numero di output o un vettore i cui elementi specificano le larghezze delle porte di output del blocco. Il blocco determina la dimensione dei suoi output dalla dimensione del segnale di input e dal valore del parametro Number of outputs.

Se si specifica uno scalare per il parametro Number of outputs e tutte le porte di output sono collegate, quando si disegna una nuova linea di segnale vicino al lato di output di un blocco Demux, il software aggiunge una porta e aggiorna il parametro Number of outputs.

Per un vettore di input di larghezza n, questa tabella descrive quello che viene generato dal blocco.

Valore del parametroOutput del bloccoEsempi e commenti

p = n

p segnali scalari

Se l'input è un vettore a tre elementi e si specificano tre output, il blocco genera tre segnali scalari.

p > n

Errore

Questo valore non è supportato.

p < n

n mod p = 0

p segnali vettoriali aventi ciascuno n/p elementi

Se l'input è un vettore a sei elementi e si specificano tre output, il blocco genera tre vettori a due elementi.

p < n

n mod p = m

m segnali vettoriali aventi ciascuno (n/p)+1 elementi e p-m segnali aventi n/p elementi

Se l'input è un vettore a cinque elementi e si specificano tre output, il blocco genera due segnali vettoriali a due elementi e un segnale scalare.

[p1 p2 ... pm]

p1+p2+...+pm=n

pi > 0

m segnali vettoriali aventi larghezze p1, p2, ... pm

Se l'input è un vettore a cinque elementi e si specifica [3, 2] come output, il blocco genera tre degli elementi di input su una porta e gli altri due elementi sull'altra porta.

Un array che contiene uno o più elementi m con valore -1, che specifica che il software deduce la dimensione dell'elemento.

Ad esempio, si supponga di avere un array a quattro elementi con una larghezza totale di 14 e di specificare il parametro come [p1 p2 -1 p4].

Il valore del terzo elemento (l'elemento -1) è 14 - (p1 + p2 + p4)

m segnali vettoriali

Se pi è maggiore di zero, l'output corrispondente ha larghezza pi. Se pi è -1, la larghezza dell'output corrispondente viene calcolata dinamicamente.

[p1 p2 ... pm]

p1+p2+...+pm!=n

pi = > 0

Errore

Questo valore non è supportato.

Se si specifica un numero di output inferiore al numero degli elementi di input, il blocco distribuisce gli elementi nel modo più uniforme possibile tra gli output.

La specificazione di un valore non doppio, come single(3), non è supportata.

Utilizzo programmatico

Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param.

Parametro: Outputs
Valori: '2' (predefinito) | scalar in quotes | vector in quotes
Tipi di dati: char | string

Esempio set_param(gcb,'Outputs','4')

Per impostazione predefinita, l'icona del blocco è una barra continua del colore di primo piano del blocco. Per visualizzare l'icona come una casella contenente il nome del tipo di blocco, selezionare none.

Utilizzo programmatico

Per impostare il valore del parametro del blocco in modo programmatico, utilizzare la funzione set_param.

Parametro: DisplayOption
Valori: 'bar' (predefinito) | 'none'

Esempio set_param(gcb,'DisplayOption','none')

Caratteristiche del blocco

Tipi di dati:

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

Passaggio diretto

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

Funzionalità estese

espandi tutto

Generazione di codice PLC
Genera codice di testo strutturato con Simulink® PLC Coder™.

Cronologia versioni

Introduzione prima di R2006a