Contenuto principale

Waveform Generator

Generazione di forme d'onda utilizzando notazioni del segnale

  • Waveform Generator block

Librerie:
Simulink / Sources

Descrizione

Il blocco Waveform Generator genera forme d'onda basate sulle notazioni del segnale inserite nella tabella Waveform Definition.

Questo blocco supporta le seguenti sintassi per le notazioni del segnale:

  • Sintassi della funzione: specificare tutti gli argomenti nell'ordine specifico per la sintassi del segnale (vedere Algoritmi).

  • Sintassi nome-valore: specificare coppie opzionali di argomenti Name,Value separate da virgole. Name è il nome dell'argomento e Value è il valore corrispondente. Name deve apparire tra virgolette singole (' '). È possibile specificare diversi argomenti per le coppie nome e valore in qualsiasi ordine come Name1,Value1,...,NameN,ValueN. Per ulteriori informazioni, vedere Algoritmi.

Questo blocco supporta le modalità normale, di accelerazione e di accelerazione rapida, nonché il riavvio veloce.

Operatori supportati

OperazioneOperatore

Valore assoluto

abs()

Addizione

+

Divisione

/

Moltiplicazione

*

Parentesi

()

Sottrazione

-

Meno unario

-

Il blocco Waveform rispetta le seguenti regole di precedenza degli operatori:

  1. ( )

  2. + - (unario)

  3. * /

  4. + -

Operazioni supportate

Il blocco Waveform Generator genera un segnale alla volta. È possibile modificare questo segnale di output. Esprimere i parametri di frequenza e di offset di fase in radianti. È inoltre possibile:

  • Annidare le notazioni del segnale, ad esempio:

    sin('Amplitude',sin('Amplitude',1,'Frequency',1,'Phase',0),'Frequency',1,'Phase',1)

  • Fare riferimento alle variabili scalari reali nel workspace di base o del modello, ad esempio:

    sin('Amplitude',x,'Frequency',y,'Phase',z)

    x, y e z esistono nel workspace di base.

Per ulteriori informazioni sulle forme d'onda, vedere Algoritmi.

Per determinare rapidamente la risposta di un sistema a tipi di input diversi, è possibile variare il segnale di output del blocco Waveform Generator mentre è in corso una simulazione.

Esempi

Limitazioni

  • Non è possibile sincronizzare i parametri di una forma d'onda, quali la frequenza o l'ampiezza, durante l'esecuzione del codice generato utilizzando Simulink® Coder™. È invece possibile generare codice che consente di commutare tra le varianti di forma d'onda specificate. Per ulteriori informazioni, vedere Switch Between Output Waveforms During Code Execution for Waveform Generator Block (Simulink Coder).

Porte

Output

espandi tutto

Segnale di output specificato da una voce nella tabella Waveform Definition.

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

Parametri

espandi tutto

Principale

Selezionare la definizione della forma d'onda per specificare il segnale di output. Il numero corrisponde alla voce della riga nella tabella Waveform Definition. È possibile modificare questo parametro mentre è in esecuzione una simulazione.

Utilizzo programmatico

Parametro dei blocchi: SelectedSignal
Tipo: vettore di caratteri
Valori: scalare
Impostazione predefinita: '1'

Inserire le notazioni del segnale nella tabella Waveform Definition, una definizione di forma d'onda per riga. Per i dettagli sulla sintassi, vedere Algoritmi.

Attributi del segnale

Data Type Assistant aiuta a impostare gli attributi dei dati. Per utilizzare Data Type Assistant, fare clic su the Show data type assistant button. Per ulteriori informazioni, vedere Specify Data Types Using Data Type Assistant.

Valore inferiore dell'intervallo di output controllato dal software.

Il software utilizza il minimo per eseguire:

Suggerimenti

Output minimo non satura e non taglia il segnale di output effettivo. Utilizzare invece il blocco Saturation.

Utilizzo programmatico

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

Parametro: OutMin
Valori: '[]' (predefinito) | scalar in quotes

Valore superiore dell'intervallo di output controllato dal software.

Il software utilizza il valore massimo per eseguire:

Suggerimenti

Output massimo non satura e non taglia il segnale di output effettivo. Utilizzare invece il blocco Saturation.

Utilizzo programmatico

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

Parametro: OutMax
Valori: '[]' (predefinito) | scalar in quotes

Scegliere il tipo di dato per l'output. Il tipo può essere ereditato, specificato direttamente o espresso come oggetto del tipo di dato, come Simulink.NumericType.

Utilizzo programmatico

Parametro dei blocchi: OutDataTypeStr
Tipo: vettore di caratteri
Valori: 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | int16 | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | fixdt(1,16,0) | fixdt(1,16,2^0,0) | fixdt(1,16,2^0,0) | '<data type expression>'
Impostazione predefinita: 'double'

Selezionare per bloccare l'impostazione del tipo di dato di output di questo blocco rispetto alle modifiche apportate dallo strumento in virgola fissa e dall'advisor in virgola fissa. Per ulteriori informazioni, vedere Use Lock Output Data Type Setting (Fixed-Point Designer).

Utilizzo programmatico

Parametro dei blocchi: LockScale
Tipo: vettore di caratteri
Valori: 'off' | 'on'
Impostazione predefinita: 'off'

Scegliere uno dei seguenti metodi di arrotondamento.

Ceiling

Arrotonda i numeri positivi e negativi verso l'infinito positivo. Equivale alla funzione MATLAB® ceil.

Convergent

Arrotonda il numero al valore rappresentabile più vicino. In caso di parità, arrotonda al numero intero pari più vicino. Equivale alla funzione Fixed-Point Designer™ convergent.

Floor

Arrotonda i numeri positivi e negativi verso l'infinito negativo. Equivale alla funzione MATLAB floor.

Nearest

Arrotonda il numero al valore rappresentabile più vicino. In caso di parità, arrotonda verso l'infinito positivo. Equivale alla funzione Fixed-Point Designer nearest.

Round

Arrotonda il numero al valore rappresentabile più vicino. In caso di parità, arrotonda i numeri positivi verso l'infinito positivo e i numeri negativi verso l'infinito negativo. Equivale alla funzione Fixed-Point Designer round.

Simplest

Sceglie automaticamente tra l'arrotondamento per difetto e l'arrotondamento verso lo zero per generare un codice di arrotondamento il più efficiente possibile.

Zero

Arrotonda il numero verso lo zero. Equivale alla funzione MATLAB fix.

Utilizzo programmatico

Parametro dei blocchi: RndMeth
Tipo: vettore di caratteri
Valori: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
Impostazione predefinita: 'Floor'

Vedere anche

Per ulteriori informazioni, vedere Rounding Modes (Fixed-Point Designer).

Specificare se gli overflow devono saturare o avvolgersi.

  • on: gli overflow saturano fino al valore minimo o massimo che il tipo di dato può rappresentare.

  • off: gli overflow si avvolgono al valore appropriato che il tipo di dato può rappresentare.

Ad esempio, il valore massimo che il numero intero con segno a 8 bit int8 può rappresentare è 127. Qualsiasi risultato dell'operazione sul blocco superiore a questo valore massimo causa un overflow dell'intero a 8 bit.

  • Con questo parametro selezionato, l'output del blocco si satura a 127. In modo analogo, l'output del blocco si satura a un valore di output minimo di -128.

  • Se questo parametro è cancellato, il software interpreta il valore che causa l'overflow come int8, che può produrre un risultato non desiderato. Ad esempio, un risultato del blocco di 130 (binario 1000 0010) espresso come int8 è -126.

Suggerimenti

  • Considerare la possibilità di selezionare questo parametro quando il modello presenta un possibile overflow e si desidera una protezione esplicita dalla saturazione nel codice generato.

  • Considerare la possibilità di cancellare questo parametro quando si desidera ottimizzare l'efficienza del codice generato. La cancellazione di questo parametro aiuta inoltre a evitare di specificare in modo eccessivo il modo in cui un blocco gestisce i segnali fuori intervallo. Per ulteriori informazioni, vedere Troubleshoot Signal Range Errors.

  • Quando si seleziona questo parametro, la saturazione si applica a ogni operazione interna sul blocco, non solo all'output o al risultato.

  • In generale, il processo di generazione di codice può rilevare quando l'overflow non è possibile. In questo caso, il generatore di codice non produce codice di saturazione.

Utilizzo programmatico

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

Parametro: SaturateOnIntegerOverflow
Valori: 'off' (predefinito) | 'on'

Specificare l'intervallo di tempo tra i campionamenti. Per ereditare il tempo di campionamento, impostare questo parametro su -1. Vedere Specifica del tempo di campionamento per ulteriori informazioni.

Utilizzo programmatico

Parametro dei blocchi: SampleTime
Tipo: vettore di caratteri
Valori: scalare
Impostazione predefinita: '0.1'

Caratteristiche del blocco

Tipi di dati:

Boolean | double | fixed point | integer | single

Passaggio diretto

no

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

Algoritmi

espandi tutto

Inserire le notazioni del segnale nella tabella Waveform Definition, una definizione di forma d'onda per riga. Per aggiungere una definizione di forma d'onda, fare clic su Add. La nuova forma d'onda appare come un vettore di caratteri vuoto. Il blocco interpreta i vettori di caratteri vuoti o costituiti da spazi bianchi come valore di riferimento.

Per rimuovere una definizione di forma d'onda, fare clic su Remove. È possibile selezionare più forme d'onda utilizzando CTRL+clic o MAIUSC+clic.

Funzionalità estese

espandi tutto

Conversione a virgola fissa
Progetta e simula sistemi a virgola fissa con Fixed-Point Designer™.

Cronologia versioni

Introdotto in R2015b