simonpic Inserito: 12 febbraio 2009 Segnala Inserito: 12 febbraio 2009 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.
accacca Inserita: 12 febbraio 2009 Segnala Inserita: 12 febbraio 2009 potresti utilizzare una proporzione se hai un valore -32768<= m < 32768calcoli(m+32768)/ 65536 = (x-0)/1024x= 1024*(m+32768) / 65536x= (m+32768) / 64)con m= -32768 x=0con m= 32768 x = 1024
giorgio323 Inserita: 18 febbraio 2009 Segnala Inserita: 18 febbraio 2009 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
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora