Matlab compensateur PD

Fenrir

Matlab compensateur PD


J’ai un petit problème que je ne peux pas comprendre, la théorie du contrôle n’est pas ma spécialité mais je l’ai lu récemment.

J’ai un convertisseur buck-boost que j’ai modelé sur matlab et j’essaye de le contrôler avec un compensateur PD. Cependant, je ne peux pas réaliser ce qui est demandé dans l’exemple à savoir une fréquence de croisement inférieure à 20 KHz et une marge de phase d’au moins 52 degrés.

Je soupçonne que je pourrais avoir besoin d’ajouter un pôle supplémentaire dans la fonction de transfert PD, mais je ne sais pas comment choisir le pôle particulier.

Voici mon code matlab jusqu’à présent:

%%Clear
clear all
clc

%%Uncompensated
Tu0 = [10.417];
num = Tu0*[-6.51e-6 1];
denom = [1.72e-8  3.25e-5 1];
Tu = tf(num, denom);

%Compensator (PD)
Gc0 = [0.37];
num2 = Gc0*[5.06e-4 1];
denom2 = [1.54e-7 1];
Ts = tf(num2, denom2);

%Compensated loop gain
Tf = Tu* Ts;

%%Bode Plot
 bode(Tu)
 %bode(Ts)
 grid on
 hold on
 bode(Tf)

%Stability numbers
[Gm,Pm,Wgm,Wpm] = margin(Tf);
GainFreq = Wgm / (2*pi)
GainMargin = Gm
CrossoverFreq = Wpm /(2*pi) %Crossover frequency has to be less than 10% of the switching frequency: fc <20 KHz
PhaseMargin = Pm  %Phase Margin of at least 52

Merci d’avance pour tout indice!

Vicente Cunha

Avez-vous l’application Control System Designer pour matlab? J’ai pu répondre à ces exigences en utilisant le PID et les tuners basés sur l’optimisation. Ajoutera mes résultats sous peu …

Fenrir

En fait, je n’ai jamais utilisé simulink, je le résous avec «un stylo et du papier». J’utilise simplement la théorie du chapitre 9 de « Fondamentaux de l’électronique de puissance » et je calcule les diagrammes de Bode comme dans le code ci-dessus.

Réponses


 Vicente Cunha

En supposant que vous pouvez utiliser l’application Control System Designer, chargez les fonctions de transfert du système pour les blocs C et G dans « Modifier l’architecture ». Pour C, utilisez simplement n’importe quelle fonction de transfert PD non accordée (comme s + 1).

Maintenant, ouvrez un « éditeur de Bode en boucle fermée », cliquez dessus avec le bouton droit et ajoutez les exigences de marge de phase et de fréquence de croisement. Il n’y a pas d’option nommée « fréquence de coupure », mais vous pouvez utiliser une limitation de gain supérieure au même effet.

Une fois les exigences définies, ouvrez un « Optimization Based Tuning », suivez les étapes et vérifiez les deux paramètres de C à régler (Gain et Zero placement). Il trouve une solution réalisable après 14 itérations.

C(s)=2.27×dix5(s+1,49×dix4)

entrez la description de l'image ici

Divulgation: J’obtiens mes maîtres dans les systèmes de contrôle, mais je suis un « passionné de solveur numérique ». Je ne saurais pas, du haut de la tête, obtenir cela dans une méthode stylo et papier, mais recherchez des « compensateurs de retard » et vous serez sur la bonne voie.

Tony EE rocketscientist

En savoir plus sur les filtres RC plomb-retard

Fenrir

Merci à vous deux, j’ai réussi à obtenir les pôles et les valeurs nulles des calculs!

 

compensateur, Matlab, PD

 

google

Laisser un commentaire

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