Erreur MATLAB: la fonction «acker» ne renvoie pas la même chose que la formule d’ackermann

Aåkon

Erreur MATLAB: la fonction «acker» ne renvoie pas la même chose que la formule d’ackermann


J’ai un système de temps discret

Supposons que j’ai la matrice AB suivante de mon système

A = [ 0 1 1 1,5 ]

UNE = [ 0 1 1 1,5 ]

B = [ 0 1 ]

B = [ 0 1 ]

Pour concevoir un stabilisateur de rétroaction d’état, je veux une relation

u = K X

u = K X

où K est mon gain de rétroaction, u est entré dans mon système de temps discret

Pour concevoir cela, utilisez la formule bien connue d’Ackerman comme suit:

K = [ 0 1 ] C 1 A B r ( A )

K = [ 0 1 ] C UNE B 1 r ( UNE )

où r (A) est mon polynôme caractéristique contenant le pôle que je veux placer

MATLAB calcule directement cela en utilisant « acker » (et « place », mais nous limiterons à un problème à la fois)

Mais je continue d’obtenir deux résultats différents et ça me rend fou! J’ai vérifié chaque étape!

Aidez-moi à identifier l’erreur dans le code suivant:

% Approche 1: formule brute

 A = [0 1; 1 1.5] B = [0 1]' CAB = ctrb(A,B) K1 = -1*[0 1]*inv(ctrb(A,B))*(A^2 - A + 0.25) %I wish to place the poles at {0.5, 0.5} 

% Note (A ^ 2 – A + 0,25) = (A – 0,5) (A – 0,5), l’équation caractéristique contenant les deux pôles

% Approche 2: Utilisation de Acker intégré

 K2 = -1*acker(A,B,[0.5,0.5]) 

C’est complètement illogique pour moi pourquoi

K1 =

-1.2500 -0.7500

K2 =

-1.2500 -0.5000

J’utilise (en principe) une méthode identique pour calculer le vecteur K! Notez également que cette erreur ne m’est jamais venue à l’esprit dans les conceptions précédentes avant que mon système ne commence à exploser partout.

Quelqu’un qui connaît la théorie du contrôle peut-il identifier exactement le problème? MATLAB contient également des bogues, c’est quelque chose à garder à l’esprit.

Merci

Suba Thomas

Vous devez multiplier 0,25 dans l’équation caractéristique par la matrice d’identité.

Aåkon

Merci, pourquoi ne pas répondre comme réponse?

Réponses


 Suba Thomas

La constante 0,25 dans l’équation caractéristique doit être multipliée par la matrice d’identité.

 

«acker», #la, #pas, chose, d’ackermann, Erreur, fonction, formule, Matlab, même, ne, que, renvoie

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *