Contenu principal

nichols

Réponse de Black-Nichols d’un système dynamique

Description

[mag,phase,wout] = nichols(sys) calcule la réponse en fréquence du modèle de système dynamique sys et renvoie l'amplitude et la phase de la réponse à chaque fréquence du vecteur wout. La fonction détermine automatiquement les fréquences dans wout sur la base de la dynamique du système.

exemple

[mag,phase,wout] = nichols(sys,w) renvoie les données de réponse aux fréquences spécifiées par w. Vous pouvez spécifier une plage ou un vecteur de fréquences.

exemple

nichols(___) trace un diagramme de Black-Nichols de la réponse en fréquence de sys. Le tracé indique l'amplitude (en dB) et la phase (en degrés) de la réponse du système en fonction de la fréquence. Pour découvrir d’autres options de personnalisation du tracé, utilisez nicholsplot.

  • Pour regrouper les réponses de plusieurs systèmes dynamiques sur le même tracé, vous pouvez spécifier sys sous la forme d’une liste de modèles séparés par des virgules. Par exemple, nichols(sys1,sys2,sys3) regroupe les réponses de trois modèles sur le même tracé.

  • Pour spécifier une couleur, un style de trait et un marqueur pour chaque système dans le tracé, spécifiez une valeur LineSpec pour chaque système. Par exemple, nichols(sys1,LineSpec1,sys2,LineSpec2) trace deux modèles et spécifie leur style de tracé. Pour plus d'informations sur la spécification d’une valeur LineSpec, consultez nicholsplot.

Exemples

réduire tout

Tracez la réponse de Black-Nichols avec des lignes de grille de Black-Nichols pour le système suivant :

H(s)=-4s4+48s3-18s2+250s+600s4+30s3+282s2+525s+60.

H = tf([-4 48 -18 250 600],[1 30 282 525 60]);
nichols(H)
grid

MATLAB figure

Créez un diagramme de Black-Nichols sur une plage de fréquences spécifiée. Utilisez cette approche lorsque vous souhaitez vous concentrer sur la dynamique dans une plage de fréquences spécifique.

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);
nichols(H,{1,100})

MATLAB figure

Le cell array {1,100} spécifie les valeurs de fréquence minimale et maximale dans le diagramme de Black-Nichols. Lorsque vous fournissez ainsi des limites de fréquence, la fonction sélectionne des points intermédiaires pour les données de réponse en fréquence.

Vous pouvez également indiquer un vecteur de points de fréquence à utiliser pour évaluer et tracer la réponse en fréquence.

w = 1:0.5:100;
nichols(H,w,'.-')

MATLAB figure

nichols ne trace la réponse en fréquence qu’aux fréquences indiquées.

Comparez la réponse en fréquence d’un système en temps continu à celle d’un système discrétisé équivalent, sur le même diagramme de Black-Nichols.

Créez des systèmes dynamiques en temps continu et en temps discret.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');

Créez un diagramme de Black-Nichols qui affichera les deux systèmes.

nichols(H,Hd)

MATLAB figure

Indiquez le style de trait, la couleur ou le marqueur pour chaque système dans un diagramme de Black-Nichols avec l’argument d’entrée LineSpec.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');
nichols(H,'r',Hd,'b--')

MATLAB figure

Le premier argument LineSpec, 'r' spécifie une ligne rouge continue pour la réponse de H. Le deuxième argument LineSpec, 'b--' spécifie une ligne bleue en pointillés pour la réponse de Hd.

Calculez l’amplitude et la phase de la réponse en fréquence d’un système SISO.

Si vous n’indiquez pas de fréquence, nichols choisit des fréquences sur la base de la dynamique du système et les renvoie dans le troisième argument de sortie.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
[mag,phase,wout] = nichols(H);

Comme H est un modèle SISO, les deux premières dimensions de mag et phase sont toutes deux égales à 1. La troisième dimension correspond au nombre de fréquences dans wout.

size(mag)
ans = 1×3

     1     1   110

length(wout)
ans = 
110

Par conséquent, chaque entrée dans la troisième dimension de mag indique l’amplitude de la réponse à la fréquence correspondante dans wout.

Pour les besoins de cet exemple, créez un système à 2 sorties et 3 entrées.

rng(0,'twister');
H = rss(4,2,3);

Pour ce système, nichols trace les réponses en fréquence de chaque canal d'E/S dans un tracé distinct au sein d’une seule figure.

nichols(H)

MATLAB figure

Calculez l'amplitude et la phase de ces réponses à 20 fréquences comprises entre 1 et 10 radians.

w = logspace(0,1,20);
[mag,phase] = nichols(H,w);

mag et phase sont des tableaux tridimensionnels dont les deux premières dimensions correspondent aux dimensions de sortie et d'entrée de H. La troisième dimension désigne quant à elle le nombre de fréquences. Par exemple, examinez les dimensions de mag.

size(mag)
ans = 1×3

     2     3    20

Par conséquent, par exemple, mag(1,3,10) correspond à l'amplitude de la réponse de la troisième entrée à la première sortie, calculée à la 10e fréquence dans w. De la même manière, phase(1,3,10) contient la phase de la même réponse.

Créez un diagramme de Black-Nichols d’un modèle à coefficients complexes et d’un modèle à coefficients réels sur le même tracé.

rng(0)
A = [-3.50,-1.25-0.25i;2,0];
B = [1;0];
C = [-0.75-0.5i,0.625-0.125i];
D = 0.5;
Gc = ss(A,B,C,D);
Gr = rss(7);
nichols(Gc,Gr)
legend('Complex-coefficient model','Real-coefficient model','Location','southwest')

MATLAB figure

Pour les modèles à coefficients complexes, nichols montre une courbe de niveau comprenant à la fois des fréquences positives et négatives. Pour les modèles à coefficients réels, le tracé ne montre que des fréquences positives, même si des modèles à coefficients complexes sont présents. Vous pouvez cliquer sur la courbe pour examiner de plus près quelles sont la section et les valeurs correspondantes aux fréquences positives et négatives.

Arguments d'entrée

réduire tout

Système dynamique spécifié en tant que modèle de système dynamique SISO or MIMO ou en tant que tableau de modèles de systèmes dynamiques. Vous pouvez utiliser ces types de systèmes dynamiques :

  • Modèles LTI numériques en temps continu ou discret, tels que les modèles tf, zpk ou ss.

  • Modèles parcimonieux de représentation d'état, tels que sparss ou mechss. La grille de fréquences w doit être spécifiée pour les modèles parcimonieux.

  • Modèles LTI généralisés ou incertains tels que les modèles genss ou uss (Robust Control Toolbox). Pour pouvoir utiliser les modèles incertains, le software Robust Control Toolbox™ est nécessaire.

    • Pour les blocs de design de contrôle réglables, la fonction évalue le modèle à sa valeur actuelle pour tracer la réponse.

    • Pour les blocs de design de systèmes de contrôle incertains, la fonction trace la valeur nominale et des échantillons aléatoires du modèle.

  • Modèles de données de réponse en fréquence tels que les modèles frd. Pour ces modèles, la fonction trace la réponse aux fréquences définies dans le modèle.

  • Modèles LTI identifiés, tels que idtf (System Identification Toolbox), idss (System Identification Toolbox) ou idproc (System Identification Toolbox). Pour pouvoir utiliser les modèles identifiés, le logiciel System Identification Toolbox™ est nécessaire.

Si sys est un réseau de modèles, le tracé indique les réponses de tous les modèles du réseau sur les mêmes axes.

Fréquences auxquelles calculer et tracer la réponse en fréquence, spécifiée en tant que cell array {wmin,wmax} ou vecteur de valeurs de fréquence.

  • Si w est un cell array de la forme {wmin,wmax}, alors la fonction calcule la réponse à des fréquences comprises entre wmin et wmax.

  • Si w est un vecteur de fréquences, alors la fonction calcule la réponse à chaque fréquence spécifiée. Par exemple, utilisez logspace pour générer un vecteur ligne avec des valeurs de fréquence espacées de façon logarithmique. Le vecteur w peut contenir des fréquences positives et négatives.

  • [] : sélectionner automatiquement les fréquences sur la base de la dynamique du système.

Pour les modèles à coefficients complexes, si vous spécifiez une plage de fréquences de [wmin,wmax] pour votre tracé, alors le tracé montre une courbe de niveau comprenant à la fois les fréquences positives [wmin, wmax] et les fréquences négatives [–wmax,–wmin].

Indiquez les fréquences exprimées en rad/TimeUnit, où TimeUnit désigne la propriété TimeUnit du modèle.

Arguments en sortie

réduire tout

Amplitude de la réponse du système en unités absolues, renvoyée sous la forme d'un tableau 3D. Les dimensions de ce tableau sont les suivantes : (nombre de sorties du système) par (nombre d’entrées du système) par (nombre de points de fréquence).

Pour convertir l‘amplitude des unités absolues en décibels, utilisez la formule suivante :

magdb = 20*log10(mag)

Phase de la réponse du système en degrés, renvoyée sous la forme d'un tableau 3D. Les dimensions de ce tableau sont les suivantes : (nombre de sorties)-par-(nombre d’entrées)-par-(nombre de points de fréquence).

Fréquences auxquelles la fonction renvoie la réponse du système, sous la forme d'un vecteur colonne. La fonction choisit les valeurs de fréquence sur la base de la dynamique du modèle, sauf si vous spécifiez les fréquences au moyen de l'argument en entrée w.

wout contient également des valeurs de fréquence négatives pour les modèles à coefficients complexes.

Les valeurs de fréquence sont exprimées en radians/TimeUnit, où TimeUnit désigne la valeur de la propriété TimeUnit de sys.

Conseils

  • Lorsque vous avez besoin d'options supplémentaires de personnalisation du tracé, utilisez plutôt nicholsplot.

  • Les tracés créés à l’aide de nichols ne supportent pas les titres ou étiquettes multilignes spécifiés en tant que tableaux de chaînes de caractères ou cell arrays de vecteurs de caractères. Pour spécifier des titres et étiquettes multilignes, utilisez une chaîne de caractères unique avec un caractère newline.

    nichols(sys)
    title("first line" + newline + "second line");

Historique des versions

Introduit avant R2006a

développer tout