Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Settare PID da risposta al gradino

PLC, servomotori, inverter...robot

Moderatori: Foto Utentedimaios, Foto Utentecarlomariamanenti

1
voti

[11] Re: Settare PID da risposta al gradino

Messaggioda Foto Utentedimaios » 15 feb 2019, 20:07

Grave errore. Con un sistema a fase non minima non può funzionare. Non ti accorgi che il sistema controllato è lontano anni luce da un primo ordine con ritardo?
Stai cercando di applicare un teorema senza che le ipotesi siano verificate.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
28,4k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3177
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[12] Re: Settare PID da risposta al gradino

Messaggioda Foto Utentetino20 » 15 feb 2019, 22:25

Scusa ma non dovrebbe essere a fase non minima, il grafico è uno zoom non quello completo. Se non ho capito male quello che intendevi
Avatar utente
Foto Utentetino20
5 5
New entry
New entry
 
Messaggi: 71
Iscritto il: 13 lug 2011, 13:40

0
voti

[13] Re: Settare PID da risposta al gradino

Messaggioda Foto UtenteMarcoD » 16 feb 2019, 9:38

La risposta al gradino la faccio dando in ingresso la tensione e plottando in uscita la velocità del motorino, in quanto se plottassi la posizione otterrei una risposta divergente. E' sbagliato?
Se do per buona la risposta al gradino con uscita la velocità e da li ricavo costante di tempo e guadagno per poi calcolare col metodo di ziegler-nichols a catena aperta ottego una taratura del PID non corretta.
Dove sbaglio?


Dovresti fare uno schema a blocchi per evitare malintesi.
se ho be capito la proposta del tuo relatore è stimolante:
Rilevare le caratteristiche del gruppo azionatore-motore da delle misure.

se applichi un gradino all'azionatore, il motore si mette in moto con una rampa quasi con una accelerazione costante.
Misura la velocità con uno oscilloscopio o con un opportuno sistema di acquisizione e memorizzazione dati (basato su arduino ?)
La pendenza della rampa dipende dall'inerzia dalla coppia motrice del motore.
Se guardi bene la rampa parte con un leggero ritardo dovuto a ulla costante di tempo dovuta all'induttanza
degli avvolgimenti del motore.
Sono misure difficili e imprecise. Mostrano comè è inutile dimensionare con precisione il regolatore.

p.s.,; mi pare che Foto Utenteg.schgor avesse pubblicato un bell'articolo sul dimensionamento del PID, ma non riesco a rintracciarlo in EY.
Avatar utente
Foto UtenteMarcoD
6.073 4 8 13
Master EY
Master EY
 
Messaggi: 2287
Iscritto il: 9 lug 2015, 16:58
Località: Torino

1
voti

[14] Re: Settare PID da risposta al gradino

Messaggioda Foto UtenteSandroCalligaro » 16 feb 2019, 12:45

L'approccio "applico uno stimolo (quasi a caso) e taro il regolatore" potrà anche funzionare, ma mi pare un po' "povero" (specie per una tesi universitaria). Insomma, a me non piace, questo non toglie che potrebbe anche funzionare, ma solo se applicato bene.

Per la maggior parte dei motori DC, infatti, se si ipotizza un carico con inerzia ed attrito lineare con la velocità (tipo \frac{\Omega}{T_e}=\frac{1}{J s + B}, dove {\Omega} e {T_e} sono le trasformate di velocità e coppia erogata dal motore), la funzione di trasferimento che lega la tensione di armatura alla velocità ha un polo dominante, per cui può essere approssimata ad un sistema del primo ordine.
Supponendo che questa ipotesi sia verificata (cosa che si può verificare a posteriori), guardando la risposta di velocità a fronte di un gradino della tensione si possono ricavare abbastanza facilmente la costante di tempo "elettro-meccanica" ed il guadagno, per poi dimensionare il regolatore analiticamente (oppure con una simulazione).
La funzione di trasferimento che lega la velocità alla posizione, infatti, non ha bisogno di essere identificata. :-)

Quello che si fa normalmente negli azionamenti, è invece prendere a riferimento un modello ed identificare dei parametri che abbiano significato in quel modello, per utilizzarli poi nella taratura.
Questo permette notevoli vantaggi, sia nel poter verificare (prima) la sensatezza dei parametri identificati, sia nella possibilità di utilizzare gli stessi parametri per altri scopi (ad esempio, applicare algoritmi di controllo più complicati).

PS: il controllo di un motore (specie DC) solo tramite un anello di velocità o posizione (con la tensione di armatura come ingresso di controllo) è una soluzione semplice, ma ingegneristicamente poco valida. Infatti, la corrente a rotore bloccato potrebbe essere distruttiva per il convertitore o per il motore. Per questo e per altri motivi (ad esempio quello di poter limitare la coppia indipendentemente dalla tensione disponibile o dalla velocità), si usano controllori con anelli annidati, di cui il più interno è quello di corrente (o coppia, visto che sono legate da una relazione semplice).
Questa configurazione permette anche di applicare, senza praticamente alcuna modifica, il solo controllo di corrente (/coppia), piuttosto che quelloo di velocità o di posizione.
La misura di corrente dovrebbe sempre essere presente, per protezione.
Avatar utente
Foto UtenteSandroCalligaro
1.838 4 4
Expert EY
Expert EY
 
Messaggi: 797
Iscritto il: 6 ago 2015, 19:25

0
voti

[15] Re: Settare PID da risposta al gradino

Messaggioda Foto UtenteEcoTan » 16 feb 2019, 14:10

SandroCalligaro ha scritto:limitare la coppia

Scusatemi se divago: i simulatori tipo Spice sono capaci di includere senza problemi dei componenti elettronici non lineari. Non mi risulta che abbiano in libreria dei motori e dei carichi meccanici, sia pure identificati in modo molto semplificato e lineare, né che siano capaci di plottare le variabili cinematiche. Non sarebbe bello avere un simulatore che includa sia la parte elettronica che quella meccanica, o magari esiste già?
Avatar utente
Foto UtenteEcoTan
5.320 4 10 13
Expert EY
Expert EY
 
Messaggi: 3150
Iscritto il: 29 gen 2014, 8:54

1
voti

[16] Re: Settare PID da risposta al gradino

Messaggioda Foto UtenteSandroCalligaro » 16 feb 2019, 14:28

Foto UtenteEcoTan, Spice è un simulatore di circuiti, non è nato per simulare qualunque sistema.
Questo non significa che non si possa costruire un circuito che emuli il comportamento di un motore.

Ad esempio, lo si potrebbe fare con dei generatori dipendenti, che mi pare che Spice possa includere.
Per un motore DC a magnete permanente, si avrebbe un circuito di armatura costituito dalla serie di resistenza, induttanza e generatore di tensione dipendente (proporzionale alla velocità). Il sistema meccanico potrebbe essere rappresentato da un generatore di tensione pari alla coppia (che sarebbe un generatore dipendente proporzionale alla corrente di armatura), un'induttanza (l'inerzia) ed una resistenza (il coefficiente di attrito), più eventuali altri generatori per altri contributi di coppia. La corrente del circuito "meccanico" sarebbe l'equivalente della velocità.
Volendo potrei disegnarlo con FidoCad, ma credo sia abbastanza semplice da immaginare.

Bisogna considerare, però, che spesso i circuiti elettronici e i motori hanno costanti di tempo talmente diverse da mettere in crisi simulatori come Spice.
Inoltre, i circuiti switching (che di solito si usano per pilotare i motori) tendono ad essere lenti da simulare. Non parliamo poi della scomodità di simulare in Spice un algoritmo di controllo un minimo complicato...

Per questo, la maggior parte delle simulazioni che coinvolgono motori si fa a livello di sistemi a blocchi (con descrizione del comportamento), come ad esempio Simulink, oppure con simulatori misti (e specializzati) come PLECS. Il secondo, in particolare, è nato per gestire i sistemi con commutazione in modo molto efficiente. Anche Simulink, con alcuni blockset, include elementi circuitali, ma in modo molto macchinoso e non efficiente.
Avatar utente
Foto UtenteSandroCalligaro
1.838 4 4
Expert EY
Expert EY
 
Messaggi: 797
Iscritto il: 6 ago 2015, 19:25

0
voti

[17] Re: Settare PID da risposta al gradino

Messaggioda Foto Utentedimaios » 16 feb 2019, 18:34

tino20 ha scritto: Non sono regolari perché sul motore c'è una barra che funge da carico ed oscilla poiché non è perfettamente rigida.


Mi riferivo a questo. Se la barra non è rigida il sistema totale controllato è molto probabilmente a fase non minima. Sostituisci temporaneamente il carico con uno rigido.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
28,4k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3177
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[18] Re: Settare PID da risposta al gradino

Messaggioda Foto Utentetino20 » 16 feb 2019, 18:37

Dovresti fare uno schema a blocchi per evitare malintesi.
se ho be capito la proposta del tuo relatore è stimolante:
Rilevare le caratteristiche del gruppo azionatore-motore da delle misure.


Esattamente. il sistema è composto da arduino, un modulo L298N per il controllo, un motore brush da 12V con encoder. Devo effettuare un controllo in posizione, per cui do come riferimento un valore di rotazione. Ho già implementato il codice del PID e l'ho provato cercando i valori sulla base degli effetti delle costanti del PID e ho trovato un settaggio ottimale(quindi diciamo a tentoni). Quello che ora dovrei fare è ricavarmi dai dati sperimentali un'approssimazione della funzione di trasferimento in modo da calcolare analiticamente i valori del PID (che ovviamente non saranno precisissimi, ma dovrebbero essere una base di partenza).

L'approccio "applico uno stimolo (quasi a caso) e taro il regolatore" potrà anche funzionare, ma mi pare un po' "povero" (specie per una tesi universitaria). Insomma, a me non piace, questo non toglie che potrebbe anche funzionare, ma solo se applicato bene.


Lo stimolo non dovrebbe essere "quasi a caso", infatti nel fare la risposta al gradino do in ingresso il massimo tensione possibile da arduino cioè i 5V (PWM) che poi diventano 10 all'uscita del modulo L298H.
Quello che stavo provando a fare era di visualizzare in uscita la velocità, che come hai ben detto è approssimabile ad un sistema del primo ordine, da questa ricavare l'uscita dello spazio per poi trovare la funzione di trasferimento.

Quello che si fa normalmente negli azionamenti, è invece prendere a riferimento un modello ed identificare dei parametri che abbiano significato in quel modello, per utilizzarli poi nella taratura.
Questo permette notevoli vantaggi, sia nel poter verificare (prima) la sensatezza dei parametri identificati, sia nella possibilità di utilizzare gli stessi parametri per altri scopi (ad esempio, applicare algoritmi di controllo più complicati).


Dovrei considerare il generico modello di un motore brush?
Avatar utente
Foto Utentetino20
5 5
New entry
New entry
 
Messaggi: 71
Iscritto il: 13 lug 2011, 13:40

0
voti

[19] Re: Settare PID da risposta al gradino

Messaggioda Foto Utentetino20 » 16 feb 2019, 18:44

dimaios ha scritto:
tino20 ha scritto: Non sono regolari perché sul motore c'è una barra che funge da carico ed oscilla poiché non è perfettamente rigida.


Mi riferivo a questo. Se la barra non è rigida il sistema totale controllato è molto probabilmente a fase non minima. Sostituisci temporaneamente il carico con uno rigido.


Per poi tarare con Ziegler-Nichols giusto?
In ogni caso mi serve ricavare la funzione di trasferimento per poi fare lo studio in frequenza.
Avatar utente
Foto Utentetino20
5 5
New entry
New entry
 
Messaggi: 71
Iscritto il: 13 lug 2011, 13:40

0
voti

[20] Re: Settare PID da risposta al gradino

Messaggioda Foto UtenteMarcoD » 16 feb 2019, 18:47

Dipende dai requisiti dinamici del tuo asservimento, e dalla tua abilità.
Io partirei dalla cose più semplici, controllo solo proporzionale ed evidenzerei i limiti.
Come modello ipotizzo che la coppia erogata del motore sia proporzionale alla corrente applicata/assorbita,
che dipende istantaneamente direttamente dalla diffrenza fra tensione di armatura e tensione controelettomotrice.
Hai calcolato il momento di inerzia delle masse rotanti?
Ci sono ingranaggi ? , giochi, elasticità ?
Avatar utente
Foto UtenteMarcoD
6.073 4 8 13
Master EY
Master EY
 
Messaggi: 2287
Iscritto il: 9 lug 2015, 16:58
Località: Torino

PrecedenteProssimo

Torna a Automazione industriale ed azionamenti

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti