2017-01-14 1 views
-1

Besoin d'ajouter un contrôleur PID. Pouvez-vous m'aider comment obtenir une erreur, une erreur d'intégration et une erreur dérivée de PID? J'ai besoin de ces valeurs pour générer des paramètres PID par alchimie génétique.Comment faire pour obtenir des erreurs de PID?

J = 0.01; 
b = 0.1; 
K = 0.01; 
R = 1; 
L = 0.5; 

A = [-b/J K/J 
    -K/L -R/L]; 
B = [0 
    1/L]; 
C = [1 0]; 
D = 0; 
sys = ss(A, B, C, D); 

Ts = 1/10; 
T = 3.5; 

sysd = c2d(sys, Ts); 

t = 0:Ts:T; 
nSamples = length(t); 

y = NaN(1, nSamples); 
u = ones(1, nSamples); 
X = [0; 0]; 
for i=1:nSamples  
    y(i) = sysd.C * X + sysd.D * u(i); 
    X = sysd.A * X + sysd.B * u(i); 
end 

figure; 
step(sys); 

figure; 
plot(t, y, 'r') 

Répondre

1

Heureusement, de nombreuses personnes ont déjà conçu des contrôleurs PID dans MATLAB, vous pouvez donc apprendre de leurs exemples. Voici un PID controller de l'échange de fichiers MATLAB. La dérivée et l'intégrale de l'erreur sont sauvegardées dans les variables "Der" et "Int" respectivement.

Si vous avez installé Control Systems Toolbox avec votre copie de MATLAB, vous avez déjà accès à de puissantes fonctionnalités intégrées pour concevoir des contrôleurs PID. Vous voudrez peut-être profiter de PID tuner.