Contenu principal

Spécifier les pas d'échantillonnage

Désigner les pas d'échantillonnage

Simulink® vous permet de déterminer le pas d’échantillonnage d’un bloc directement par une valeur numérique ou symboliquement en définissant un vecteur de pas d’échantillonnage. La valeur du pas d’échantillonnage doit être un double ou un tableau à deux éléments de double contenant la période et l’offset du pas d’échantillonnage. Dans le cas d’un pas d’échantillonnage discret, le vecteur est [Ts, To] où Ts est la période d’échantillonnage et To est l’heure d’offset initiale. Prenons l’exemple d’un modèle qui génère des sorties à une fréquence d’échantillonnage discrète, soit toutes les deux secondes. Vous pouvez définir directement le pas d’échantillonnage en spécifiant la valeur numérique 2 comme paramètre de SampleTime. Comme la valeur d’offset est zéro, vous n’avez pas besoin de la spécifier ; cependant, vous pouvez saisir [2,0] dans le champ Sample time.

Pour les blocs dont le pas d’échantillonnage n’est pas discret, les composants du vecteur sont des valeurs symboliques qui représentent l’un des types dans Types of Sample Time. Le tableau suivant résume ces types et leurs valeurs de pas d’échantillonnage correspondantes. Le tableau définit aussi la nature explicite de chaque type de pas d’échantillonnage et désigne les couleurs et annotations associées. Comme un pas d’échantillonnage hérité est explicite, vous pouvez le spécifier comme [-1, 0] ou comme -1. Par contre, un pas d’échantillonnage déclenché est implicite ; seul Simulink peut assigner le pas d’échantillonnage de [-1, -1]. (Pour plus d’informations sur les couleurs et annotations, consultez View Sample Time Information.)

Désignations des informations de pas d'échantillonnage

Type de pas d'échantillonnagePas d'échantillonnageAnnotationExplicite
Discrete[Ts, To]D1, D2, D3, D4, D5, D6, D7,... DiOui
Continuous[0, 0]ContOui
Fixed in minor step[0, 1]FiMOui
Inherited[–1, 0]N/AOui
Constant[Inf, 0]InfOui
Variable[–2,Tvo]V1, V2,... ViNon
MultirateN/AN/ANon
Asynchronous[–1, –n]A1, A2,... AiNon
DataflowN/AN/ANon
Union[NaN, NaN]U#Non
Initialize[inf, 1]IENon
Reinitialize[Inf, #]RI#Non
Reset[inf, #]RE#Non
Terminate[Inf, 2]TENon

La couleur assignée à chaque bloc dépend de son pas d’échantillonnage par rapport aux autres pas d’échantillonnage du modèle. Par conséquent, différentes couleurs peuvent être assignées au même pas d’échantillonnage dans un modèle parent et dans des modèles auxquels il fait référence. (Consultez la rubrique Références de modèle.)

Par exemple, supposons qu’un modèle définisse trois pas d’échantillonnage : 1, 2 et 3. De plus, supposons qu’il fasse référence à un modèle qui définit deux pas d’échantillonnage : 2 et 3. Dans ce cas, les blocs fonctionnant au pas d’échantillonnage 2 apparaissent en vert dans le modèle parent et en rouge dans le modèle référencé.

Il est important de noter que les blocs Mux et Demux sont de simples opérateurs de groupe ; les signaux les traversant conservent leurs informations temporelles. C’est pour cela que les lignes émanant d’un bloc Demux peuvent avoir des couleurs différentes si elles sont entraînées par des sources ayant des pas d’échantillonnage différents. Dans ce cas, les blocs Mux et Demux ont le code couleur hybride (jaune) pour indiquer qu’ils gèrent des signaux à plusieurs fréquences.

De même, les blocs Subsystem contenant des blocs à pas d’échantillonnage différents sont aussi de couleur hybride, car ils n’ont pas de fréquence unique associée. Si tous les blocs d’un sous-système s’exécutent à une fréquence unique, le bloc Subsystem sera de la couleur associée à cette fréquence.

Vous pouvez utiliser les valeurs de pas d’échantillonnage explicites dans ce tableau pour spécifier les pas d’échantillonnage de manière interactive ou programmatique pour les pas d’échantillonnage par bloc et par port.

Le modèle suivant sert de référence pour cette section.

Dans cet exemple, définissez le pas d’échantillonnage du signal d’onde sinusoïdale d’entrée à 0.1. L'objectif est d’atteindre un pas d’échantillonnage de sortie de 0.2. Le bloc Rate Transition sert de maintien d’ordre zéro. La figure suivante montre le schéma bloc obtenu après avoir défini les pas d’échantillonnage et simulé le modèle. (Les couleurs et annotations indiquent qu’il s’agit d’un modèle discret.)

ex_specify_sample_time après Setting Sample Times (définir les pas d'échantillonnage)

Spécifier les pas d'échantillonnage par bloc de manière interactive

Pour définir le pas d'échantillonnage d’un bloc de manière interactive :

  1. Dans la fenêtre de modèle Simulink, double-cliquez sur le bloc. La boîte de dialogue Block Parameters s'ouvre.

  2. Saisissez le pas d’échantillonnage dans le champ Sample time.

  3. Cliquez sur OK.

Vous trouverez ci-dessous une figure de boîte de dialogue de paramètres pour le bloc Sine Wave après avoir saisi 0.1 dans le champ Sample time.

Pour spécifier et inspecter des pas d’échantillonnage par bloc dans l’ensemble d’un modèle, pensez à utiliser le Model Data Editor (éditeur de données d'un modèle) (dans l’onglet Modeling, cliquez sur Model Data Editor). Dans les onglets Inports/Outports, Signals et Data Stores, définissez la liste déroulante Change view à Design et utilisez la colonne Sample Time. Pour plus d’informations, consultez Model Data Editor.

Spécifier les pas d'échantillonnage par port de manière interactive

Le bloc Rate Transition dispose de pas d’échantillonnage par port. Vous pouvez définir le pas d’échantillonnage du port de sortie de manière interactive en effectuant les étapes suivantes :

  1. Double-cliquez sur le bloc Rate Transition. La boîte de dialogue Paramètres s'ouvre.

  2. Laissez le choix du menu déroulant des Output port sample time options sur Specify.

  3. Remplacez le -1 dans le champ Output port sample time par 0.2.

  4. Cliquez sur OK.

Pour plus d’informations concernant les options de pas d’échantillonnage de la boîte de dialogue paramètres Rate Transition (transition de fréquence), consultez la page de référence de Rate Transition.

Spécifier les pas d'échantillonnage par bloc de manière programmatique

Pour définir le pas d’échantillonnage d’un bloc de manière programmatique, définissez son paramètre SampleTime au pas d’échantillonnage souhaité en utilisant la commande set_param. Par exemple, pour définir le pas d’échantillonnage du bloc Gain du modèle Specify_Sample_Time sur hérité (-1), saisissez la commande suivante :

set_param('Specify_Sample_Time/Gain','SampleTime','[-1, 0]')

Comme pour la spécification interactive, vous pouvez saisir uniquement le premier composant de vecteur si le deuxième composant est zéro.

set_param('Specify_Sample_Time/Gain','SampleTime','-1')

Spécifier les pas d'échantillonnage par port de manière programmatique

Pour définir le pas d’échantillonnage du port de sortie du bloc Rate Transition sur 0.2, utilisez la commande set_param avec le paramètre OutPortSampleTime :

set_param('Specify_Sample_Time/Rate Transition',...
'OutPortSampleTime', '0.2')

Accéder aux informations de pas d’échantillonnage de manière programmatique

Pour accéder à tous les pas d’échantillonnage associés à un modèle, utilisez l’API Simulink.BlockDiagram.getSampleTimes.

Pour accéder au pas d’échantillonnage d’un bloc unique, utilisez l’API Simulink.Block.getSampleTimes.

Spécifier les pas d’échantillonnage pour un bloc personnalisé

Vous pouvez concevoir des blocs personnalisés pour que les ports d’entrée et de sortie fonctionnent à des fréquences de pas d’échantillonnage différentes. Pour plus d’informations sur la spécification de pas d'échantillonnage par bloc et par port pour les S-functions, consultez Specify S-Function Sample Times.

Déterminer les unités de pas d'échantillonnage

Puisque l’exécution d’un modèle Simulink ne dépend pas d’un ensemble d’unités spécifique, vous devez déterminer l’unité de temps de base appropriée pour votre application et définir les valeurs de pas d’échantillonnage en conséquence. Par exemple, si votre unité de temps de base est la seconde, vous représenteriez un pas d’échantillonnage de 0.5 seconde en définissant le pas d’échantillonnage sur 0.5.

Changer le pas d’échantillonnage après l’heure de début de la simulation

Pour changer le pas d’échantillonnage après le début de la simulation, vous devez arrêter la simulation, réinitialisez le paramètre SampleTime et redémarrez l’exécution.

Voir aussi

Rubriques