Микропроцесорна система за регулиране на температура


Категория на документа: Информатика



temperature=V_REF*adc1/MAX_ADC; //измерени mV за температура на ТД

temperature=temperature*1000/52; //ТД Желязо / Константан е с коефицент 52 микро волта за градус Целзии

temperature=temperature*220/12000; //коригираме с коефицента на усилване на ОУ и получаваме темературата в град. Целзии

local_temperature=V_REF*adc2/MAX_ADC; //измерени mV за локална температура

local_temperature-=2730; //изваждаме абсолютната температура в градуси Келвин преобразувана в mV

local_temperature/=10; //делене на 10, понеже 10mV са 1 градус. Получава се температурата в студения карй в град. Целзии

current_temp=temperature+local_temperature; //изчислява се температурата в пеща

if(flag_start){ //ако е стартирана запускаме ПИД

int error=target_temp-current_temp; //изчисляване на грешката

int PID_out=error*kp; //изчисляване на пропорционалната съставка

integral_state+=error; //натрупване на интегрална съставка

PID_out+=integral_state*ki; //добавяне на интегралната съставка

PID_out+=kd*(current_temp-old_current_temp); //добавне на диференциланата съставка

//изисляване времето за вклюване на симистора

if(PID_out<0)

time_on_simistor=MAX_TIME+1000; //пеща е прегрята не е необходимо вкючване на симистора

else if(PID_out>=MAX_TIME)

time_on_simistor=1; //пеща е много студена, включваме симистора на пълна мощност

else

time_on_simistor=MAX_TIME-PID_out; //изчислява се времето за включване на симистора на основате че ако

//е необходима по-малка мощност трявбва по късно да включим симистора и обратно

}else{

integral_state=0; //нулиране на стари натрупвания в интегралната съставка

time_on_simistor=MAX_TIME+1000; //за да не се включва симистора

}




Сподели линка с приятел:





Яндекс.Метрика
Микропроцесорна система за регулиране на температура 9 out of 10 based on 2 ratings. 2 user reviews.