b'\n_START_ARTICLE_\nControllo PID\n_START_PARAGRAPH_\nIl controllo Proporzionale-Integrale-Derivativo (talvolta tradotto anche con Proporzionale-Integrativo-Derivativo, dall\'inglese Proportional-Integral-Derivative), comunemente abbreviato come PID, \xc3\xa8 un sistema in retroazione negativa ampiamente impiegato nei sistemi di controllo. \xc3\x88 il sistema di controllo in retroazione di gran lunga pi\xc3\xb9 comune nell\'industria, in particolare nella versione PI (senza azione derivativa). Grazie a un input che determina il valore attuale, \xc3\xa8 in grado di reagire a un eventuale errore positivo o negativo tendendo verso il valore 0. La reazione all\'errore pu\xc3\xb2 essere regolata e ci\xc3\xb2 rende questo sistema molto versatile.\n_START_SECTION_\nPseudocodice\n_START_PARAGRAPH_\nQuesta \xc3\xa8 una semplice implementazione pratica di un controllo PID, attraverso semplificazioni ingegneristiche (dato che normalmente la funzione da controllare se fosse conosciuta matematicamente non sarebbe necessario controllarla dinamicamente). Questo pseudocodice somma tre componenti per capire quanto manovrare l\'output, in base all\'errore calcolato volta per volta. _NEWLINE__NEWLINE_La parte proporzionale \xc3\xa8 direttamente proporzionale all\'errore. _NEWLINE__NEWLINE_La parte integrativa somma nel tempo gli errori volta per volta; questo riporta nel lungo periodo la variabile di uscita sui binari corretti. Purtroppo questo non impedisce un\'oscillazione una volta raggiunto il valore desiderato. _NEWLINE__NEWLINE_La parte derivativa limita le oscillazioni della variabile di output, rendendo le variazioni di "actual position" pi\xc3\xb9 dolci._NEWLINE__NEWLINE_Questo pseudocodice funziona di per s\xc3\xa9, ma c\'\xc3\xa8 da valutare ogni quanto campionare e quindi eseguire questi calcoli, e soprattutto i valori delle 3 costanti K_NEWLINE_previous_error = 0_NEWLINE_ integral = 0 _NEWLINE_ start:_NEWLINE_   error = setpoint - measured_value_NEWLINE_   integral = integral + error*dt_NEWLINE_   derivative = (error - previous_error)/dt_NEWLINE_   output = Kp*error + Ki*integral + Kd*derivative_NEWLINE_   previous_error = error_NEWLINE_   wait(dt)_NEWLINE_   goto start'