Contenu principal

rlocus

Lieu des racines d’un système dynamique

Description

[r,kout] = rlocus(sys) calcule le lieu des racines du modèle SISO sys et renvoie le vecteur résultant des gains de rétroaction k et les lieux des racines complexes correspondants r.

Pour produire un lieu des racines lisse, rlocus sélectionne automatiquement un ensemble de gains de rétroaction positifs.

Pour plus d'informations sur le lieu des racines d’un système dynamique, consultez Algorithmes.

exemple

r = rlocus(sys,k) renvoie les pôles de la boucle fermée correspondant aux gains de rétroaction spécifiés dans k.

exemple

rlocus(___) trace le lieu des racines du modèle SISO sys avec les options de tracé par défaut pour toutes les combinaisons d'arguments d'entrée précédentes. Pour découvrir d’autres options de personnalisation du tracé, utilisez rlocusplot.

  • Pour regrouper les lieux des racines 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, rlocus(sys1,sys2,sys3) regroupe les lieux des racines 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, rlocus(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 rlocusplot.

Exemples

réduire tout

Pour les besoins de cet exemple, tracez le lieu des racines du système dynamique SISO suivant :

sys(s)=2s2+5s+1s2+2s+3.

sys = tf([2 5 1],[1 2 3]);
rlocus(sys)

MATLAB figure

Les pôles du système sont désignés par x, tandis que les zéros sont désignés par o sur le tracé des lieux des racines. Vous pouvez utiliser le menu du tracé des lieux des racines généré pour ajouter des lignes de grille, effectuer un zoom avant ou arrière et également lancer le Property Editor afin de personnaliser le tracé.

Pour découvrir d’autres options de personnalisation du tracé, utilisez rlocusplot.

Pour cet exemple, examinez sisoModels.mat qui contient les trois modèles SISO suivants :

  • sys1 - Un modèle de fonction de transfert

  • sys2 - Un modèle de représentation d'état

  • sys3 - Un modèle zéro-pôle-gain

Chargez les modèles à partir du fichier mat.

load('sisoModels.mat','sys1','sys2','sys3');

Créez le tracé des lieux des racines au moyen de rlocus et spécifiez la couleur de chaque système. Ajoutez également une légende au tracé des lieux des racines.

rlocus(sys1,'b',sys2,'k',sys3,'r')
hold on
legend('sys1','sys2','sys3')
hold off

MATLAB figure

La figure contient les diagrammes des lieux des racines des trois systèmes du tracé unique. Pour découvrir d’autres options de personnalisation du tracé, voir rlocusplot.

Pour cet exemple, considérons le modèle de fonction de transfert SISO suivant :

sys(s)=3s2+19s3+7s2+5s+6

Utilisez le modèle de fonction de transfert ci-dessus avec rlocus pour extraire les pôles en boucle fermée et les valeurs de gain de rétroaction qui leur sont associées.

sys = tf([3 0 1],[9 7 5 6]);
[r,k] = rlocus(sys)
r = 3×53 complex
102 ×

  -0.0094 + 0.0000i  -0.0104 + 0.0000i  -0.0105 + 0.0000i  -0.0106 + 0.0000i  -0.0107 + 0.0000i  -0.0108 + 0.0000i  -0.0109 + 0.0000i  -0.0111 + 0.0000i  -0.0112 + 0.0000i  -0.0113 + 0.0000i  -0.0115 + 0.0000i  -0.0117 + 0.0000i  -0.0119 + 0.0000i  -0.0121 + 0.0000i  -0.0124 + 0.0000i  -0.0126 + 0.0000i  -0.0129 + 0.0000i  -0.0132 + 0.0000i  -0.0135 + 0.0000i  -0.0139 + 0.0000i  -0.0143 + 0.0000i  -0.0148 + 0.0000i  -0.0152 + 0.0000i  -0.0158 + 0.0000i  -0.0163 + 0.0000i  -0.0170 + 0.0000i  -0.0177 + 0.0000i  -0.0184 + 0.0000i  -0.0192 + 0.0000i  -0.0201 + 0.0000i  -0.0211 + 0.0000i  -0.0222 + 0.0000i  -0.0233 + 0.0000i  -0.0246 + 0.0000i  -0.0259 + 0.0000i  -0.0274 + 0.0000i  -0.0290 + 0.0000i  -0.0307 + 0.0000i  -0.0326 + 0.0000i  -0.0346 + 0.0000i  -0.0368 + 0.0000i  -0.0392 + 0.0000i  -0.0418 + 0.0000i  -0.0446 + 0.0000i  -0.0476 + 0.0000i  -0.0508 + 0.0000i  -0.0543 + 0.0000i  -0.0582 + 0.0000i  -0.0623 + 0.0000i  -0.0667 + 0.0000i
   0.0008 + 0.0084i   0.0006 + 0.0083i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0006 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0082i   0.0005 + 0.0081i   0.0005 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0081i   0.0004 + 0.0080i   0.0004 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0080i   0.0003 + 0.0079i   0.0002 + 0.0079i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0002 + 0.0078i   0.0001 + 0.0077i   0.0001 + 0.0077i   0.0001 + 0.0076i   0.0000 + 0.0076i   0.0000 + 0.0075i  -0.0000 + 0.0074i  -0.0000 + 0.0074i  -0.0000 + 0.0073i  -0.0001 + 0.0073i  -0.0001 + 0.0072i  -0.0001 + 0.0071i  -0.0001 + 0.0071i  -0.0001 + 0.0070i  -0.0001 + 0.0070i  -0.0001 + 0.0069i  -0.0001 + 0.0068i  -0.0001 + 0.0068i  -0.0001 + 0.0067i  -0.0001 + 0.0067i  -0.0001 + 0.0066i  -0.0001 + 0.0066i  -0.0001 + 0.0065i  -0.0001 + 0.0065i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0064i  -0.0001 + 0.0063i  -0.0001 + 0.0063i
   0.0008 - 0.0084i   0.0006 - 0.0083i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0006 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0082i   0.0005 - 0.0081i   0.0005 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0081i   0.0004 - 0.0080i   0.0004 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0080i   0.0003 - 0.0079i   0.0002 - 0.0079i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0002 - 0.0078i   0.0001 - 0.0077i   0.0001 - 0.0077i   0.0001 - 0.0076i   0.0000 - 0.0076i   0.0000 - 0.0075i  -0.0000 - 0.0074i  -0.0000 - 0.0074i  -0.0000 - 0.0073i  -0.0001 - 0.0073i  -0.0001 - 0.0072i  -0.0001 - 0.0071i  -0.0001 - 0.0071i  -0.0001 - 0.0070i  -0.0001 - 0.0070i  -0.0001 - 0.0069i  -0.0001 - 0.0068i  -0.0001 - 0.0068i  -0.0001 - 0.0067i  -0.0001 - 0.0067i  -0.0001 - 0.0066i  -0.0001 - 0.0066i  -0.0001 - 0.0065i  -0.0001 - 0.0065i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0064i  -0.0001 - 0.0063i  -0.0001 - 0.0063i

k = 1×53

         0    0.4201    0.4542    0.4911    0.5309    0.5740    0.6205    0.6709    0.7253    0.7841    0.8477    0.9165    0.9908    1.0712    1.1581    1.2521    1.3536    1.4634    1.5822    1.7105    1.8493    1.9993    2.1614    2.3368    2.5263    2.7313    2.9529    3.1924    3.4514    3.7313    4.0340    4.3613    4.7151    5.0975    5.5111    5.9581    6.4415    6.9640    7.5289    8.1397    8.8000    9.5138   10.2856   11.1200   12.0220   12.9973   14.0516   15.1915   16.4238   17.7561

Étant donné que sys contient 3 pôles, la taille du tableau de pôles r obtenu est de 3x53. Chaque colonne de r correspond à une valeur de gain issue du vecteur k. Pour cet exemple, rlocus choisit automatiquement 53 valeurs de k de zéro à l'infini afin d’obtenir une trajectoire lisse pour les trois pôles en boucle fermée.

display(r(:,39))
  -3.2585 + 0.0000i
  -0.0145 + 0.6791i
  -0.0145 - 0.6791i
display(k(39))
    7.5289

Par exemple, r(:,39) contient les pôles en boucle fermée ci-dessus pour une valeur de gain de rétroaction de 7.5289.

Pour cet exemple, considérons le modèle de fonction de transfert SISO suivant :

sys(s)=0.5s2-14s4+3s2+2

Définissez le modèle de fonction de transfert et le vecteur de valeurs de gain de rétroaction nécessaire. Pour cet exemple, considérons un ensemble de valeurs de gain allant de 1 à 8 par incréments de 0,5, et extrayons les emplacements des pôles en boucle fermée au moyen de rlocus.

sys = tf([0.5 0 -1],[4 0 3 0 2]);
k = (1:0.5:5);
r = rlocus(sys,k);
size(r)
ans = 1×2

     4     9

Étant donné que sys contient 4 pôles en boucle fermée, la taille du tableau des emplacements de pôles en boucle fermée r obtenu est de 4 x 9 où les 9 colonnes correspondent aux 9 valeurs de gain spécifiques définies dans k.

Vous pouvez également visualiser la trajectoire des pôles en boucle fermée pour les valeurs de gain spécifiques dans k sur le tracé des lieux des racines.

rlocus(sys,k)

MATLAB figure

Arguments d'entrée

réduire tout

Système dynamique spécifié en tant que modèle de système dynamique SISO ou en tant que tableau de modèles de systèmes dynamiques. Parmi les systèmes dynamiques que vous pouvez utiliser, citons :

  • 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.

  • 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 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.

Valeurs de gain de rétroaction relatives aux emplacements des pôles, spécifiées sous la forme d'un vecteur. Les gains de rétroaction définissent la trajectoire des pôles, ce qui affecte la forme du tracé des lieux des racines.

Arguments en sortie

réduire tout

Emplacements des pôles en boucle fermée de sys correspondant à chaque valeur de gain de rétroaction kout, renvoyée sous la forme d’un tableau N par M, où N correspond au nombre de pôles en boucle fermée de sys et de M : max(length(k)).

Valeurs de gain de rétroaction relatives aux emplacements des pôles, renvoyées sous la forme d'un vecteur. Les gains de rétroaction définissent la trajectoire des pôles, ce qui affecte la forme du tracé des lieux des racines. Lorsque k n’est pas définie par l’utilisateur, rlocus sélectionne de manière adaptative un ensemble de gains positifs k compris entre zéro et l’infini afin d’obtenir un tracé lisse.

Conseils

  • Pour découvrir une approche interactive des tracés des lieux des racines, voir Control System Designer.

  • Pour découvrir des options supplémentaires permettant de personnaliser l'apparence du tracé du lieu des racines, utilisez rlocusplot.

  • Les tracés créés à l’aide de rlocus 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.

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

Algorithmes

Le lieu des racines d’un système dynamique contient les trajectoires des pôles en boucle fermée en tant que fonction du gain de rétroaction k (dans le cas d’une rétroaction négative). Les lieux des racines permettent d’étudier les effets des gains de rétroaction variables des emplacements de pôles en boucle fermée. À leur tour, ces emplacements fournissent des informations indirectes sur les réponses temporelles et fréquentielles.

Vous pouvez utiliser rlocus pour tracer le diagramme des lieux des racines de n’importe quelle boucle de rétroaction négative suivante en définissant sys comme l’indique la figure suivante.

Par exemple, si sys est une fonction de transfert représentée par

sys(s)=n(s)d(s)

les pôles en boucle fermée sont les racines de

d(s)+kn(s)=0

Un tracé des lieux des racines représente les trajectoires des pôles en boucle fermée lorsque le gain de rétroaction k varie de 0 à l’infini.

Historique des versions

Introduit avant R2006a

développer tout