Code in C voor PID temperatuurregelaar

R

ritula.thakur

Guest
Ik wil de ontwikkeling van een basis 8051 PID temeperature controller.i zal gebruik maken van IC temperatuursensor LM35DZ.
Stuur me de code in C voor hetzelfde op mijn posterijen legitimatiebewijs ritula.thakur (at) gmail.com.
Het schrijven van code in C is niet mijn kopje tea.Im gud bij de ontwikkeling van hardware, maar wanneer komt softwware ik panicky.so please please help me.Ik iemand heeft de volledige code mail het mij zo spoedig mogelijk.Ik zal e zeer verplicht
Thanks in advance

 
Om Moore precies abt mijn project.De temp sensor LM35DZ zal de werkelijke temperatuur van het proces en deze temp sensor zal worden omgezet in digitale vorm door ADC 0809 en verzonden naar microcontroller.The gebruiker kan de gewenste temperatuur ingesteld via keyboard.There is ook LCD-interface die wordt weergegeven de werkelijke tempertaure en stel temp.Th eprogram in C zal containg PID algoritme om de exploitatie van een relais die is aangesloten op verwarming en derhalve dienovereenkomstig te draaien ON en OFF.

 
Simple PID

PID = GainP * feitelijke fout GainI * SOM (vorige fouten) GainD * (feitelijke fout - laatste fout)

Fout = sp (set point) - PV (proces-waarde)float pid (float sp, float PV)
(

err_old = err;
err = SP - PV;

/ / Note
P_err = err;
I_err = err_old;
D_err = err - err_old;

return 0,1 * P_err 0,3 * I_err 0,02 * D_err;

)/ / note.Dode zone voorbeeld: if (err <2 & & err> -2) (err = 0;)

 
/ * U = kp * (e Td * diff (e) Td * int (e))
y0 = analoge ingang 1;
R0 = ref = setpunt of verwijzing;
T = monster tijd;
qd = diff constante = Kp * Td / T / / TD: diff tijd
qi = integraal cosntant = Kp * T / Ti / / Ti: Integratie tijd
Kp = prop winst; * /

float pid (float R0, float y0)
(
E0 = R0-y0;
D = qd * (E0-E1);
if (((u> Umin) | (e> 0 ))&(( u <UMAX) | (e <0))) / / antiwindup integraal
I = I qi * (R0-y0);

U = Kp * e0 D I / / pid stuursignaal
if (u> UMAX) u = UMAX / / antiwindup PID
if (u <Umin) u = Umin;

e1 = e0 / / redden oude waarden
y1 = y0;
)

 
Fernando Vasquez wrote:

(e>0)) &
((u<umax) |
(e<0))) //antiwindup integral
if (((u> Umin) |
(e> 0)) &
((U <UMAX) |
(e <0))) / / antiwindup integraal

 
Hier is een link naar een artikel "PID zonder Ph.D." het heeft een aantal ANSI C-code.Het is niet compleet, maar het kan nog steeds nuttig zijn.

 

Welcome to EDABoard.com

Sponsor

Back
Top