Neste artigo vamos construir um controlador PID para manter uma incubadora a uma temperatura constante, mas esta configuração pode ser facilmente modificada e o código reutilizado para seus próprios propósitos!
Em primeiro lugar, o que é PID afinal? PID é uma abreviação e significa Proporcional-Integral-Derivativo. O nome pode fazer você dizer “oh cara, eu não me lembro de cálculo”, mas não se preocupe, não vamos mergulhar fundo em cálculo, apenas usaremos o PID como uma ferramenta. No nosso caso, esta ferramenta manterá nossa incubadora sempre próxima a uma temperatura de nossa escolha.
O programa Python
O objetivo do programa é usar a técnica de controle PID para manter a temperatura da incubadora em um valor desejado, controlando a saída da almofada de aquecimento. Para que isso aconteça, precisaremos:
- Meça a temperatura usando a Expansão ADC
- Alimente a leitura da temperatura em nosso controlador PID
- Defina a força da almofada de aquecimento (canal 0 na expansão PWM) para o valor emitido pelo controlador PID
set_point = 25
I = 0
arduino = serial.Serial('COM3', baudrate = 9600, timeout=1)
connected = 1
time.sleep(2)
while(True):
Data = arduino.readline()
Data = float(Data)
#Inicio do controle PI////////////////////////////////////////////////
erro = (set_point-Data)# calculo do Erro
P = ((erro*255)/55) #normalização do ganho P = 1 onde 55( delta °C Maxima) => 255 (PWM Valor max) e 0=>0
if (P+I)> 255: #limite superior do PI
adj = 255
else:
if I<0: #limite inferior do I
I = 0
if P<0: #limite inferior do P
P = 0
adj = I + P #soma do ajuste P+I
I = I + erro*0.034 #Integral normalizado do erro Ki de 0.2
#Fim do controle PI///////////////////////////////////////////////////
#Enviando informação pra arduino
arduino.write(str(adj).encode())


Nenhum comentário:
Postar um comentário