Contenu principal

Zero-Order Hold

Implémenter une période d’échantillonnage à maintien d’ordre zéro

  • Zero-Order Hold block

Bibliothèques :
Simulink / Discrete
HDL Coder / Discrete

Description

Le bloc Zero-Order Hold bloque son entrée pendant la période d’échantillonnage spécifiée. Si l’entrée est un vecteur, le bloc bloque tous les éléments du vecteur pendant la même période d’échantillonnage.

Spécifiez l’intervalle de temps entre les échantillons avec le paramètre Sample time. La valeur -1 signifie que Sample time est hérité par le bloc.

Conseil

N’utilisez pas le bloc Zero-Order Hold pour créer une transition de rapide à lent entre des blocs qui utilisent des fréquences d’échantillonnage différentes. Utilisez plutôt le bloc Rate Transition.

Support des bus

Le bloc Zero-Order Hold est compatible avec les bus. L’entrée peut être un signal de bus virtuel ou non virtuel. Il n’existe aucune restriction spécifique au bloc. Tous les signaux d’un bus non virtuel utilisé comme entrée d’un bloc Zero-Order Hold doivent avoir le même pas d’échantillonnage, même si les éléments de l’objet de bus associé spécifient des pas d’échantillonnage hérités. Vous pouvez utiliser un bloc Rate Transition pour modifier le pas d’échantillonnage d’un seul signal ou de tous les signaux d’un bus. Pour plus d’informations, consultez Modify Sample Times for Nonvirtual Buses et Bus-Capable Blocks.

Vous pouvez utiliser un tableau de bus comme signal d’entrée d’un bloc Zero-Order Hold. Pour en savoir plus sur la définition et l’utilisation d’un tableau de bus, consultez Group Nonvirtual Buses in Arrays of Buses.

Comparaison avec des blocs similaires

Les blocs Memory, Unit Delay et Zero-Order Hold ont un fonctionnement similaire mais offrent des possibilités différentes. De plus, l’objectif de chaque bloc est différent.

Le tableau suivant indique l’utilisation recommandée pour chaque bloc.

BlocObjectif du blocExemples de référence
Unit DelayImplémenter un délai avec un pas d’échantillonnage discret spécifié. Le bloc accepte et génère des signaux ayant un pas d’échantillonnage discret.
MemoryImplémenter un délai d’un pas de temps d’intégration majeur. Dans l’idéal, le bloc accepte des signaux continus (ou fixes dans un pas de temps mineur) et génère un signal de sortie fixe dans un pas de temps mineur.
Zero-Order HoldConvertir un signal d’entrée avec un pas d’échantillonnage continu en un signal de sortie avec un pas d’échantillonnage discret.

Chaque bloc offre les fonctionnalités suivantes.

FonctionnalitéMemoryUnit DelayZero-Order Hold
Spécification de la condition initialeOuiOuiNon car la sortie du bloc au temps t = 0 doit être identique à la valeur en entrée.
Spécification du pas d’échantillonnageNon car le bloc peut uniquement hériter du pas d’échantillonnage du bloc d’origine ou du solveur utilisé pour le modèle entier.OuiOui
Support des signaux basés sur des tramesNon OuiOui
Support de l’enregistrement des étatsNonOuiNon

Exemples

Ports

Entrée(s)

développer tout

Signal d’entrée que le bloc bloque pendant une période d’échantillonnage.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Sortie(s)

développer tout

Signal de sortie correspondant à l’entrée bloquée pendant une période d’échantillonnage.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Paramètres

développer tout

Spécifiez l’intervalle de temps entre échantillons. Pour hériter du pas d’échantillonnage, définissez ce paramètre sur -1. Pour plus d'informations, consultez la rubrique Spécifier les pas d'échantillonnage.

Ne spécifiez pas de pas d’échantillonnage continu (0 ou [0,0]). Ce bloc supporte uniquement les pas d’échantillonnage discrets. Lorsque ce paramètre est défini à -1, le pas d’échantillonnage hérité doit être discret et non continu.

Utilisation programmatique

Pour définir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction set_param.

Pour obtenir la valeur du paramètre du bloc de manière programmatique, utilisez la fonction get_param.

Paramètre : SampleTime
Valeurs : -1 (par défaut) | positive scalar number
Types de données : char | string

Exemple : 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.

Caractéristiques des blocs

Types de données

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

Traversée directe

oui

Signaux multidimensionnels

non

Signaux de taille variable

non

Détection des passages à zéro

non

Capacités étendues

développer tout

Génération de code PLC
Générez du texte structuré avec Simulink® PLC Coder™.

Conversion en virgule fixe
Concevez et simulez des systèmes en virgule fixe avec Fixed-Point Designer™.

Historique des versions

Introduit avant R2006a

Voir aussi

|