Contenu principal

feedback

Connexion rétroactive de plusieurs modèles

Description

sys = feedback(sys1,sys2) renvoie un objet de modèle sys pour l’interconnexion rétroactive négative d’objets de modèle sys1,sys2.

Comme l’indique la figure, le modèle en boucle fermée sys présente u en tant que vecteur d'entrée et y en tant que vecteur de sortie. Les deux modèles, sys1 et sys2, doivent être continus ou discrets, avec des pas d'échantillonnage identiques.

exemple

sys = feedback(sys1,sys2,feedin,feedout) calcule un modèle en boucle fermée sys au moyen des connexions d'entrée et de sortie spécifiées par feedin et feedout. Utilisez cette syntaxe lorsque vous souhaitez connecter uniquement un sous-ensemble des E/S disponibles des systèmes MIMO.

exemple

sys = feedback(sys1,sys2,'name') calcule un modèle en boucle fermée sys avec les connexions rétroactives spécifiées par les noms d'E/S respectifs des modèles MIMO sys1 et sys2. Utilisez l'indicateur 'name' uniquement lorsque toutes les E/S requises dans l'ensemble des systèmes MIMO sont nommées correctement.

exemple

sys = feedback(___,sign) renvoie un objet de modèle sys pour une boucle de rétroaction du type de rétroaction spécifié par sign. Par défaut, feedback suppose une rétroaction négative et équivaut à feedback(sys1,sys2,-1). Pour calculer le système en boucle fermée avec une rétroaction positive, utilisez sign = +1.

exemple

Exemples

réduire tout

pendulumModelAndController.mat contient un modèle SISO de fonction de transfert avec pendule inversé G et son contrôleur PID associé C.

Chargez le modèle de pendule inversé et de contrôleur dans l’espace de travail.

load('pendulumModelAndController','G','C');
size(G)
Transfer function with 1 outputs and 1 inputs.
size(C)
PID controller with 1 output and 1 input.

Pour créer cette structure de boucle, connectez le modèle de contrôleur et de système physique en série afin de créer sys1, et définissez sys2 sur 1 pour représenter la rétroaction unitaire. Par défaut, la fonction applique la rétroaction négative, mais vous pouvez utiliser l’argument optionnel sign pour spécifier le type de rétroaction. Pour cet exemple, vous pouvez soit omettre l’argument sign soit le définir sur -1 pour la rétroaction négative.

sys1 = G*C;
sys2 = 1;
sign = -1;

Utilisez feedback pour créer la boucle de rétroaction négative avec G et C.

sys = feedback(sys1,sys2,sign)
sys =
 
         1.307e-06 s^3 + 3.136e-05 s^2 + 5.227e-06 s
  ---------------------------------------------------------
  2.3e-06 s^4 + 1.725e-06 s^3 - 4.035e-05 s^2 - 5.018e-06 s
 
Continuous-time transfer function.
Model Properties

sys est la fonction de transfert en boucle fermée en temps continu obtenue par rétroaction négative.

Pour les besoins de cet exemple, considérons deux fonctions de transfert qui décrivent respectivement un système physique G et un contrôleur C.

G(s)=2s2+5s+1s2+2s+3C(s)=5(s+2)s+10

Créez les fonctions de transfert du système physique et du contrôleur.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity");
C = tf([5,10],[1,10]); 

Utilisez feedback pour créer la boucle de rétroaction négative avec G et C.

sys = feedback(G,C,-1)
sys =
 
  From input "torque" to output "velocity":
  2 s^3 + 25 s^2 + 51 s + 10
  ---------------------------
  11 s^3 + 57 s^2 + 78 s + 40
 
Continuous-time transfer function.
Model Properties

sys est la fonction de transfert en boucle fermée obtenue par rétroaction négative avec un couple en tant qu’entrée et une vitesse en tant que sortie.

Pour les besoins de cet exemple, considérons deux fonctions de transfert qui décrivent respectivement un système physique G et un contrôleur C.

G(s)=2s2+5s+1s2+2s+3C(s)=5(s+2)s+10

Créez les fonctions de transfert du système physique et du contrôleur.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity");
C = tf([5,10],[1,10]); 

Utilisez feedback pour créer la boucle de rétroaction positive avec G et C.

sys = feedback(G,C,+1)
sys =
 
  From input "torque" to output "velocity":
  -2 s^3 - 25 s^2 - 51 s - 10
  ---------------------------
  9 s^3 + 33 s^2 + 32 s - 20
 
Continuous-time transfer function.
Model Properties

sys est la fonction de transfert en boucle fermée obtenue par rétroaction positive avec un couple en tant qu’entrée et une vitesse en tant que sortie.

Sur la base de la figure ci-dessous, considérons de connecter deux fonctions de transfert MIMO avec deux entrées et deux sorties dans une boucle de rétroaction négative.

Pour les besoins de cet exemple, créez deux modèles aléatoires de représentation d'état continu avec rss.

G = rss(4,2,2);
C = rss(2,2,2);
size(G)
State-space model with 2 outputs, 2 inputs, and 4 states.
size(C)
State-space model with 2 outputs, 2 inputs, and 2 states.

Utilisez feedback pour connecter les deux modèles de représentation d'état dans une boucle de rétroaction négative conformément à la figure ci-dessus.

sys = feedback(G,C,-1);
size(sys)
State-space model with 2 outputs, 2 inputs, and 6 states.

Le modèle de représentation d'état obtenu sys comporte 2 entrées, 2 sorties et 6 états. La boucle de rétroaction négative est complétée de sorte que :

  • La première sortie de G est connectée à la première entrée de C

  • La deuxième sortie de G est connectée à la deuxième entrée de C

mimoPlantAndController.mat contient un modèle de système physique avec fonction de transfert à 2 entrées et 2 sorties G et un modèle de contrôleur avec fonction de transfert à 2 entrées et 2 sorties C, à connecter comme suit :

Commencez par charger les modèles du système physique et du contrôleur dans l’espace de travail.

load('mimoPlantAndController.mat','G','C');
size(G)
Transfer function with 2 outputs and 2 inputs.
size(C)
Transfer function with 2 outputs and 2 inputs.

Par défaut, feedback connecte la première sortie de G à la première entrée de C et la deuxième sortie de G à la deuxième entrée de C. Pour connecter le système physique et le contrôleur conformément à la figure, nommez les E/S respectives des deux systèmes afin de garantir des connexions correctes.

G.InputName 
ans = 2×1 cell
    {'torque'}
    {'angle' }

G.OutputName
ans = 2×1 cell
    {'velocity'}
    {'force'   }

C.InputName
ans = 2×1 cell
    {'force'   }
    {'velocity'}

C.OutputName
ans = 2×1 cell
    {'angle' }
    {'torque'}

Utilisez ensuite l'indicateur 'name' avec la commande feedback pour établir les connexions en fonction des noms d'E/S.

sys = feedback(G,C,'name');

La fonction de transfert à rétroaction négative en boucle fermée sys obtenue présente les connexions de rétroaction dans l'ordre requis.

Considérons un système physique de représentation d’état G regroupant cinq entrées et quatre sorties, et un système d’asservissement de représentation d’état K doté de trois entrées et de deux sorties. Les sorties 1, 3 et 4 du système physique G doivent être connectées aux entrées K du contrôleur, tandis que les sorties du contrôleur doivent être connectées aux entrées 2 et 4 du système physique.

feedback6-01.png

Pour les besoins de cet exemple, générez des modèles aléatoires de représentation d'état en temps continu avec rss à la fois pour G et K.

G = rss(3,4,5);
K = rss(3,2,3);

Définissez les vecteurs feedout et feedin sur la base des entrées et sorties à connecter dans une boucle de rétroaction.

feedin = [2 4];
feedout = [1 3 4];
sys = feedback(G,K,feedin,feedout,-1);
size(sys)
State-space model with 4 outputs, 5 inputs, and 6 states.

sys est le modèle de représentation d’état en boucle fermée obtenu en connectant les entrées et sorties spécifiées de G et de K.

Arguments d'entrée

réduire tout

Systèmes à connecter dans une boucle de rétroaction, spécifiés en tant que 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, pid, pidstd ou ss.

  • Modèles de réponse en fréquence tels que frd ou genfrd.

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

    La boucle de rétroaction obtenue considère

    • les valeurs actuelles des composants réglables pour les blocs de design de systèmes de contrôle réglables.

    • les valeurs de modèle nominales pour les blocs de design de systèmes de contrôle incertains.

Pour plus d’informations, consultez Modèles de systèmes dynamiques.

Lorsque sys1 et sys2 sont deux types de modèles différents, feedback applique les règles de précédence pour déterminer le modèle sys résultant. Par exemple, lorsqu'un modèle de représentation d’état et une fonction de transfert sont connectés dans une boucle de rétroaction, le système obtenu est un modèle de représentation d’état reposant sur les règles de précédence. Pour plus d’informations, consultez Rules That Determine Model Type.

Sous-ensemble d’entrées à utiliser, spécifié en tant que vecteur.

Comme l’indique la figure, feedin contient les indices du vecteur d'entrée du système physique MIMO P et spécifie le sous-ensemble d'entrées u impliqué dans la boucle de rétroaction. Le modèle sys obtenu présente les mêmes entrées que G et leur ordre est conservé.

Pour un exemple, voir Spécifier les connexions d’entrées et de sorties dans une boucle de rétroaction.

Sous-ensemble de sorties à utiliser, spécifié en tant que vecteur.

feedout spécifie les sorties du système physique MIMO G utilisées pour la rétroaction. Le modèle sys obtenu présente les mêmes sorties que G et leur ordre est conservé.

Pour un exemple, voir Spécifier les connexions d’entrées et de sorties dans une boucle de rétroaction.

Type de rétroaction spécifié en tant que -1 pour une rétroaction négative ou +1 pour une rétroaction positive. Par défaut, feedback suppose une rétroaction négative.

Arguments en sortie

réduire tout

Système en boucle fermé renvoyé en tant que modèle de système dynamique SISO ou MIMO. sys peut être l’un des modèles suivants selon les règles de précédence :

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

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

Lorsque sys1 et sys2 sont deux types de modèles différents, feedback applique les règles de précédence pour déterminer le modèle sys résultant. Par exemple, lorsqu'un modèle de représentation d’état et une fonction de transfert sont connectés dans une boucle de rétroaction, le système obtenu est un modèle de représentation d’état reposant sur les règles de précédence précisées dans Rules That Determine Model Type.

Limitations

  • La connexion de rétroaction doit être exempte de boucles algébriques. Par exemple, si D1 et D2 sont les matrices de traversée de sys1 et sys2, cette condition équivaut à :

    • I + D1D2 non singulier avec une rétroaction négative

    • I − D1D2 non singulier avec une rétroaction positive

Conseils

  • Dans le cas de structures de rétroaction complexes, utilisez append et connect.

Historique des versions

Introduit avant R2006a