Vai al contenuto
PLC Forum


PID & PWM - trasferimento valori


Messaggi consigliati

Inserito:

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.


Inserita:

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

Inserita:

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

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...