Vai al contenuto
PLC Forum


PID & PWM - trasferimento valori


simonpic

Messaggi consigliati

Buongiorno a tutti e complimenti davvero per il forum.

Mi sono avvicinato da poco ai sistemi di regolazione per motorini cc. (sono un hobbista)

Ho cominciato a scrivere codici per il Pic16F877 per leggere la posizione di un encoder a 256 cpr e via usart comandare una nuova posizione.

Ho utilizzato (per adesso) il semplice calcolo del controllo proporzionale.

La mia domanda è questa.

Sapendo che il controllore g=kp*errore è una variabile che assume valori da -32768 a 32767 (per mia scelta), come faccio a trasferire nella variabile pwm che ha un range a 10 bit, ovvero da 0 a 1023 (limite del modulo pwm del pic)? Data la struttura della cicuiteria, quando il pwm è a 0 il motore gira al massimo in un senso, quando è a 1023 gira al massimo nell'altro senso.

Il valore pwm=512 rappresenta la situazione di motore fermo.

Ma molto più in generale, ottenuto un valore del pid (o di un controllore in generale), come poi è possibile tradurre questo per gestire il motore?

Grazie per la collaborazione in attesa di una vostra risposta.

Ciao Simone.

Link al commento
Condividi su altri siti


potresti utilizzare una proporzione se hai un valore

-32768<= m < 32768

calcoli

(m+32768)/ 65536 = (x-0)/1024

x= 1024*(m+32768) / 65536

x= (m+32768) / 64)

con m= -32768 x=0

con m= 32768 x = 1024

Link al commento
Condividi su altri siti

aggiungo un suggerimento:

quando usi il pwm piloti da tensione di uscita sul motore.

Se vuoi fare un controllo sulla velocità del motore ti conviene usare il riferimento di velocità e ricavare subito la tensione di uscita attesa. Calcolare cioè un FeedForward o azione diretta.

A questo valore aggiundere la parte di controllo che calcoli col PI.

Facendo cosi puoi iniziare a lavorare senza regolatore (guadagni a zero) e il motore girerà nell'intorno della velocità di riferimento. Il regolatore permette di diminuire gli errori.

Saluti

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...