Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

Zero-Order Hold

Implementare un periodo di campionamento di mantenimento di ordine zero

  • Zero-Order Hold block

Librerie:
Simulink / Discrete
HDL Coder / Discrete

Descrizione

Il blocco Zero-Order Hold mantiene il proprio input per il periodo di campionamento specificato. Se l'input è un vettore, il blocco trattiene tutti gli elementi del vettore per lo stesso periodo del tempo di campionamento.

Il tempo tra i campionamenti si specifica con il parametro Sample time. Un'impostazione di -1 indica che il blocco eredita il Sample time.

Suggerimento

Non utilizzare il blocco Zero-Order Hold per creare una transizione da veloce a lenta tra blocchi che operano a frequenze di campionamento diverse. Utilizzare invece il blocco Rate Transition.

Supporto per il bus

Il blocco Zero-Order Hold è un blocco compatibile con il bus. L'input può essere un segnale bus virtuale o non virtuale. Non esistono restrizioni specifiche per il blocco. Tutti i segnali in un bus non virtuale di input a un blocco Zero-Order Hold devono avere lo stesso tempo di campionamento, anche se gli elementi dell'oggetto bus associato specificano tempi di campionamento ereditati. È possibile utilizzare un blocco Rate Transition per modificare il tempo di campionamento di un singolo segnale o di tutti i segnali di un bus. Per ulteriori informazioni, vedere Modify Sample Times for Nonvirtual Buses e Bus-Capable Blocks.

È possibile utilizzare un array di bus come segnale di input per un blocco Zero-Order Hold. Per ulteriori dettagli sulla definizione e l'utilizzo di un array di bus, vedere Group Nonvirtual Buses in Arrays of Buses.

Confronto con blocchi simili

I blocchi Memory, Unit Delay e Zero-Order Hold presentano funzionalità simili, ma con capacità diverse. Inoltre, anche lo scopo di ciascun blocco è diverso.

La tabella mostra l'utilizzo consigliato per ciascun blocco.

BloccoScopo del bloccoEsempi di riferimento
Unit DelayImplementare un ritardo utilizzando un tempo di campionamento discreto specificato dall'utente. Il blocco accetta e genera segnali con un tempo di campionamento discreto.
MemoryImplementare un ritardo di un passo temporale di integrazione principale. Idealmente, il blocco accetta segnali continui (o fissi con passo temporale minore) e genera un segnale fisso con passo temporale minore.
Zero-Order HoldConvertire un segnale di input con tempo di campionamento continuo in un segnale di output con tempo di campionamento discreto.

Ciascun blocco ha le seguenti funzionalità.

CapacitàMemoriaRitardo di unitàMantenimento di ordine zero
Specifica della condizione inizialeNo, perché l'output del blocco al tempo t = 0 deve corrispondere al valore di input.
Specifica del tempo di campionamentoNo, perché il blocco può ereditare il tempo di campionamento solo dal blocco di comando o dal risolutore utilizzato per l'intero modello.
Supporto per segnali basati su frameNo
Supporto per la registrazione dello statoNoNo

Esempi

Porte

Input

espandi tutto

Segnale di input che il blocco trattiene per un periodo di campionamento.

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

Output

espandi tutto

Segnale di output che corrisponde all'input mantenuto per un periodo di campionamento.

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

Parametri

espandi tutto

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.

Non specificare un tempo di campionamento continuo (0 o [0,0]). Questo blocco supporta solo tempi di campionamento discreti. Quando questo parametro è -1, il tempo di campionamento ereditato deve essere discreto e non continuo.

Utilizzo programmatico

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

Per ottenere il valore del parametro del blocco in modo programmatico, utilizzare la funzione get_param.

Parametro: SampleTime
Valori: -1 (predefinito) | positive scalar number
Tipi di dati: char | string

Esempio set_param("mdl/Zero-Order Hold","SampleTime","0.1") specifies a discrete sample time of 0.1 for the Zero-Order Hold block named Zero-Order Hold in the model named mdl.

Caratteristiche del blocco

Tipi di dati:

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

Passaggio diretto

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

no

Funzionalità estese

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

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

Cronologia versioni

Introduzione prima di R2006a

Vedi anche

|