salut
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 ^^
Code: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)')
-----