Code matlab PID numerique
bamboutcha1790
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
ila112 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
ila112 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un code matlab de regulation PID telle qu'on lit les donnees d'une carte d'acquisition PCI-DAS 1002 puis on effectue la correction PID.
je voudrais savoir si ce code est correcte car j'en doute a propos de l'equation de PID.voici le code et merci d'avance ^^
clc
clear all
AOutput=analogoutput('mcc',0); % initialisation sortie analogique
chan=addchannel(AOutput,[0 0]); % choix du canal DAC0
AInput = analoginput('mcc',0); % initialisation entrée analogique
chans = addchannel(AInput,[0],1); % choix des canaux (numéros 0, 1)
data=[];
Te=0.2;
Kp=0.1 %gain proportionel du PID
Ti=0.01
Kd=0.02 % constante de tempd integral
yc=50 % consigne
for k=1: 100
tic;
analo_input; % lecture entrée analogique
data = [data; getdata(AInput)]; % transfert de la valeur anal. dans data
e(k)=yc-data;
u(k)=u(k-1)+Kp*e(k)+Kp*((Te/Ti)-1)*e(k-1) %PI equation
u(K)=u(K-1)+Kp*(e(K)-e(K-1)]+Ki*Te(K)+Kd/T[e(K)-2*e(K-1)+e(K-2)] %PID equation
% datatst1 = 0; % la valeur analogique sur sortie DAC1
datatst0 = u(k); % la valeur analogique sur sortie DAC0
analog_output; % ecriture sur la sortie analogique
t=toc;
while t<Te,
t=toc;
end
k
end
save('c:\z4.mat','data')
plot(data),grid,zoom on
xlabel('Samples')
ylabel('Signal (Volts)')
j'ai un code matlab de regulation PID telle qu'on lit les donnees d'une carte d'acquisition PCI-DAS 1002 puis on effectue la correction PID.
je voudrais savoir si ce code est correcte car j'en doute a propos de l'equation de PID.voici le code et merci d'avance ^^
clc
clear all
AOutput=analogoutput('mcc',0); % initialisation sortie analogique
chan=addchannel(AOutput,[0 0]); % choix du canal DAC0
AInput = analoginput('mcc',0); % initialisation entrée analogique
chans = addchannel(AInput,[0],1); % choix des canaux (numéros 0, 1)
data=[];
Te=0.2;
Kp=0.1 %gain proportionel du PID
Ti=0.01
Kd=0.02 % constante de tempd integral
yc=50 % consigne
for k=1: 100
tic;
analo_input; % lecture entrée analogique
data = [data; getdata(AInput)]; % transfert de la valeur anal. dans data
e(k)=yc-data;
u(k)=u(k-1)+Kp*e(k)+Kp*((Te/Ti)-1)*e(k-1) %PI equation
u(K)=u(K-1)+Kp*(e(K)-e(K-1)]+Ki*Te(K)+Kd/T[e(K)-2*e(K-1)+e(K-2)] %PID equation
% datatst1 = 0; % la valeur analogique sur sortie DAC1
datatst0 = u(k); % la valeur analogique sur sortie DAC0
analog_output; % ecriture sur la sortie analogique
t=toc;
while t<Te,
t=toc;
end
k
end
save('c:\z4.mat','data')
plot(data),grid,zoom on
xlabel('Samples')
ylabel('Signal (Volts)')
A voir également:
- Code matlab PID numerique
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Pavé numérique bloqué - Guide