Progetto regolazione motore brushless

PLC, servomotori, inverter...robot

Moderatori: Foto Utentedimaios, Foto Utentecarlomariamanenti

Avatar utente
Foto Utentez.deby
0 2
Messaggi: 18
Iscritto il: 12 set 2008, 17:23
0
voti

[11] Re: Progetto regolazione motore brushless

Messaggioda Foto Utentez.deby » 15 set 2008, 15:56

g.schgor ha scritto:... ma aggiungendo a J
anche la parte dell'azionamento trascinato dal motore.


cosa intende con "parte dell'azionamento trascinato dal motore"??

Quindi, se ho capito bene, lei mi suggerisce di utilizzare la stessa legge usata per il motore CC, applicando le dovute modifiche relative alla coppia generata (data da quelle formule che le ho mostrato in precedenza) e al momento d'inerzia (punto al momento non molto chiaro).

A questo punto, però, mi sorgono due domande:
1. per quanto ho capito dalla spiegazioni fornitami del mio professore, il motore brushless è comandato attraverso due tipi di correnti: corrente di quadratura (Iq) e corrente diretta (Id), i cui regolatori, nel mio caso, sono già presenti all'interno del drive. Come li gestisco in fase di simulazione?? LI discretizzo normalmente??

2. saprebbe per caso spiegarmi il motivo per cui il mio professore mi ha invece suggerito di ricorrere ad un sistema "fittizio" (quei tre blocchi con una Fdt di 2° ordine in serie ad una FdT di 1° a sua volta in serie ad un integratore)??

Le ripropongo, inoltre, i due dubbi precedenti, in relazione allo schema a blocchi che le ho inviato:
* in uscita dal PI ( rettangolo verde), dovrei avere un riferimento per la corrente di quadratura, giusto??
* la posizione misurata dall'encoder risulta in rad, suppongo quindi che anche il mio Set Point di posizione (thetabar) dovrà essere espresso in radianti e non in mm, come suggeritomi dall'azienda, è corretto??

Ringraziandola ancora, rimango in attesa dei suoi più che preziosi suggerimenti

Deby

Avatar utente
Foto Utenteg.schgor
57,8k 9 12 13
G.Master EY
G.Master EY
Messaggi: 16971
Iscritto il: 25 ott 2005, 9:58
Località: MILANO
Contatta:
0
voti

[12] Re: Progetto regolazione motore brushless

Messaggioda Foto Utenteg.schgor » 15 set 2008, 19:27

z.deby ha scritto:cosa intende con "parte dell'azionamento trascinato dal motore"??

Il comportamento dinamico di tutto il sistema non dipende solo dal J del motore, ma ovviamente
anche della parti meccaniche da questo trascinate (Lo so che e' difficile valutarle, ma questa e' la realta')

Domanda 1: dovresti chiarire col professore il modello da utilizzare (cioe' in base a quale parametro
viene valutata la coppia motrice, parametro che in uscita del regolatore controlla l'azionamento)

Domanda 2: (tiro ad indovinare) 2°ord per il regolatore e azionamento, 1°ord per sistema meccanico,
integratore per passaggio da velocita' a posizione :?: :?:

1* dubbio: dipende dalla domanda 1
2* dubbio: dovrebbe essere la stessa cosa (a parte un coefficiente di proporzionalita' che lega l'angolo
di rotazione ai mm di spostamento)

Mi spiace non poter essere piu' preciso...

Avatar utente
Foto Utentez.deby
0 2
Messaggi: 18
Iscritto il: 12 set 2008, 17:23
0
voti

[13] Re: Progetto regolazione motore brushless

Messaggioda Foto Utentez.deby » 22 set 2008, 11:21

Eccomi nuovamente a disturbarLa....venerdì finalmente sono riuscita ad ottenere un colloquio con il mio proff e sono riuscita ad ottenere le seguenti delucidazioni:
* in effetti il parametro in uscita dal regolatore dedito al controllo dell'azionamento è la corrente di quadratura;
* per la simulazione in C dell'algoritmo si è proseguito per la strada del "sistema fittizio" ottenendo che il motore può essere trattato come una FdT del tipo: L(s)=342/(0.135s+1)

Chiarito ciò, mi ha suggerito di tarare prima correttamente il controllo di velocità e passare solo in una fase secondaria a quello di posizione...

Con i valori da lui calcolati in precedenza (di cui a questo punto mi sorge qualche dubbio sulla loro correttezza), ossia:
guadagno PI = 0.15
Ti_PI = 0.12 s
derivative: Ks/(tau*s+1) con K= 1 e tau=0.005s
ottengo il risultato che le ho allegato.

Le mie domande al momento quindi sono:
* come posso eliminare quell'oscillazione iniziale??
* come posso far in modo che la velocità raggiunga quella data come set point?? (wbar=200 rad/s)

Mi scusi tantissimo se continuo a rivolgermi a Lei, ma purtroppo anche sui libri di testo che mi erano stati consigliati per preparare l'esame di automazione/regolatori industriali non vengono trattati i metodi per un analisi di questo tipo.... :(

Ringraziandola ancora per la disponibilità, rimango in attesa di un suo consiglio

Saluti

Deby
Allegati
SpeedControl_Sim.JPG
Risultato della simulazione
SpeedControl_Sim.JPG (36.56 KiB) Visto 4123 volte
SpeedControl_Schema.JPG
Schema a blocchi per il controllo in velocità
SpeedControl_Schema.JPG (34.63 KiB) Visto 4123 volte

Avatar utente
Foto Utentez.deby
0 2
Messaggi: 18
Iscritto il: 12 set 2008, 17:23
0
voti

[14] Re: Progetto regolazione motore brushless

Messaggioda Foto Utentez.deby » 22 set 2008, 16:17

Piccoli passi avanti circa i dubbi di stamane....

Facendo qualche ricerca, ho scoperto che esiste un metodo di taratura detto "metodo di Ziegler e Nichols" che si basa sull'analisi della sola azione proporzionale definendo dei valori dei parametri del PI in base alla costante proporzionale che porta il sistema retroazionato al limite di stabilità (ossia l'uscita deve risultare in oscillazione permanente di periodo T a fronte di variazioni a scalino).

Così ho provato ad applicarlo al mio modello del controllo di velocità in anello chiuso:
ho dato come set point di velocità (wbar) uno scalino, ho inserito al posto del PI un'azione proporzionale ed ho continuato ad aumentare il valore del guadagno sperando di ottenere prima o poi un'oscillazione permanente....

Ciò però non è successo; al contrario, aumentando il valore di K, ottenevo una funzione sempre più coincidente alla wbar....come mai?? Dove ho sbagliato??

Le riporto in calce il codice che ho usato per fare questo tentativo, così magari riesco ad essere più chiara.

Grazie ancora...

Codice: Seleziona tutto

model speed
 
  parameter Real kW = 0.001 "cost prop PI";
  parameter Real tau = 0.135 "cost integ. del sistema";
  parameter Real K = 342 "cost prop del sistema";
  parameter Real Wmin = 1;
  parameter Real Wmax = 3;
 
  Real w "velocità ottenuta";
  Real wbar "SP velocità";
  Real Iq "variabile di controllo";
 
equation
  // motore e carico
  tau*der(w)+w = K*Iq;
 
  //azione proporzionale PI
  Iq=kW*(wbar-w);
 
  //SP
  wbar =  if time < 2 then Wmin else Wmax;
 
end speed;

Avatar utente
Foto Utenteg.schgor
57,8k 9 12 13
G.Master EY
G.Master EY
Messaggi: 16971
Iscritto il: 25 ott 2005, 9:58
Località: MILANO
Contatta:
0
voti

[15] Re: Progetto regolazione motore brushless

Messaggioda Foto Utenteg.schgor » 22 set 2008, 17:21

Trovo saggio mettere prima a punto l'anello interno di velocita', ma
mi faresti uno schema a blocchi tradizionale di questo anello?

Dovrebbe esserci: il riferimento (wbar), il nodo sottrattore (wbar-w), il blocco PI,
il blocco che trasforma la Iq in coppia motrice, ed infine la costante meccanica,
(la FdT da te riportata).
In uscita da quest'ultimo blocco dovrebbe esserci gia' la velocita' di rotazione w,
da utilizzare nella retroazione (perche' usi un derivatore assumendo la retroazione
della posizione?)
Se mi fornisci lo schema a blocchi e tutti i relativi parametri, cerco di fare anch'io
una simulazione e ottimizzare le prestazioni.

Avatar utente
Foto Utentez.deby
0 2
Messaggi: 18
Iscritto il: 12 set 2008, 17:23
0
voti

[16] Re: Progetto regolazione motore brushless

Messaggioda Foto Utentez.deby » 23 set 2008, 9:25

Lo schema a blocchi dell’anello di velocità dovrebbe essere strutturato come segue:
schema a blocchi.JPG
schema a blocchi.JPG (15.51 KiB) Visto 4066 volte

Il Set Point che devo inviare all'azionamento deve avere, invece, il seguente andamento:
SetPoint.JPG
SetPoint.JPG (13.41 KiB) Visto 4065 volte

Espresso in codice, esso è così ottenuto:

Codice: Seleziona tutto

parameter Real etaa = 0.10; “frazione (0-1) di corsa in accelerazione”
  parameter Real etad = 0.15; “frazione (0-1) di corsa in decelerazione”
  parameter Real Wmax = 418;  “velocità angolare desiderata”
  parameter Real L = 42.86;   “corsa da effettuare”
 
  Real T                "tempo totale per terminare la corsa";

T = 2*L/((2-etaa-etad)*Wmax);
 
  wbar = if time<(etaa*T) then
           Wmax*time/(etaa*T) else
         if time<((1-etad)*T) then
           Wmax else
         if time<T then
           Wmax*(T-time)/(etad*T) else
           0;


I blocchi all’interno del quadrato verde rappresentano il PI, ove la FdT firstOrder risulta così strutturata:
firstOrder=K/(Ts+1)
I valori indicati nel grafico sono quelli di default del mio programma di simulazione, quindi non ancora tarati.

g.schgor ha scritto:Dovrebbe esserci: ... il blocco che trasforma la Iq in coppia motrice, ed infine la costante meccanica,
(la FdT da te riportata).


Per quanto riguarda questi blocchi, da quanto mi ha detto il mio professore, la trasformazione da Iq a coppia motrice avverrà direttamente nel software da caricare nel PLC, moltiplicando semplicemente l’uscita del PI per la costante di coppia.
La meccanica del sistema, invece, è rappresentata dalla seguente FdT:
P(s)=342/(0.135s+1)

Per quanto riguarda le prestazioni richieste, l’azienda per cui sto svolgendo questo progetto mi ha fornito i seguenti dati:
*con una velocità massima di 4000 giri/min, il nastro trasportatore deve realizzare uno spostamento di massimo
1500mm;
*i dati tecnici del motore su cui sto lavorando sono i seguenti:
-numero di poli (2p) = 6;
-momento d’inerzia = 0.68∙〖10〗^(-4) 〖Kgm〗^2;
-costante di coppia = 0.67 Nm/A;
-resistenza dell’avvolgimento = 5,7 Ohm;
-induttività del campo rotante = 13 mH.

g.schgor ha scritto:(perche' usi un derivatore assumendo la retroazione
della posizione?)


perché il segnale di retroazione è stato preso in uscita dall'encoder e non direttamente dal rotore; tolto l'encoder, la derivazione giustamente non serve più!! :)

Sperando di averle fornito tutti i valori che le occorrono, la ringrazio infinitamente per l’aiuto e il supporto che mi sta dando….

Avatar utente
Foto Utenteg.schgor
57,8k 9 12 13
G.Master EY
G.Master EY
Messaggi: 16971
Iscritto il: 25 ott 2005, 9:58
Località: MILANO
Contatta:
0
voti

[17] Re: Progetto regolazione motore brushless

Messaggioda Foto Utenteg.schgor » 23 set 2008, 10:25

z.deby ha scritto:I blocchi all’interno del quadrato verde rappresentano il PI, ove la FdT firstOrder risulta così strutturata:
firstOrder=K/(Ts+1)

Ma un regolatore PI ha una FdT = (KTs+1)/Ts
(ti consiglierei di rileggere il capitolo del corso precedentemente citato, dove e' spiegato -Fig. 21.4-
proprio il caso di un anello con regolatore PI e sistema ad una CdT).

Avatar utente
Foto Utentez.deby
0 2
Messaggi: 18
Iscritto il: 12 set 2008, 17:23
0
voti

[18] Re: Progetto regolazione motore brushless

Messaggioda Foto Utentez.deby » 23 set 2008, 15:08

Ho riflettuto sui punti critici che mi hai fatto notare, ottenendo i seguenti risultati:
Struttura del PI
La struttura di una funzione di trasferimento del primo ordine (k/(s*T+1)) non è sicuramente quella di un PI, ma il blocco che identifica il PI (quello all’interno del rettangolo verde) può essere così rappresentato:
PI.GIF
PI.GIF (1.79 KiB) Visto 4039 volte

Se vado a sviluppare la Fdt di questo blocco, ottengo:
Fdt_PI.GIF
Fdt_PI.GIF (1.7 KiB) Visto 4036 volte

E non è forse questa la FdT del PI?? :oops:
Se così fosse…il mio blocco PI sarebbe corretto, giusto??
FdT del sistema
Al di là delle trasformazioni necessarie per simulare l’andamento delle correnti nel motore brushless, nel mio modello sono presenti i seguenti blocchi:
* RL3, così composto:
Resistori ed induttori.GIF
Resistori ed induttori.GIF (4.11 KiB) Visto 4035 volte

Al fine di simulare il circuito equivalente del motore
* Rotore, All’interno del quale vengono fissati i valori di momento di inerzia [0.68*10^-4 Kgm^2] e di coefficiente d’attrito [0.0016 s^-1]

Sono questi i parametri che intendevi??
Nella scheda tecnica fornitami dall’azienda, ho visto che ci sono anche altri dati tecnici, come ad esempio:
* costante di tempo elettrica;
* resistenza alla torsione dell’albero;
*costante di tempo meccanica;

in effetti queste non sono state prese in considerazione, né saprei come utilizzarle…

Ho letto, inoltre, con molta attenzione il capitolo che mi hai suggerito ed avrei da porti la seguente domanda:
“La Gdes(s) che devo considerare io, sarebbe la funzione che indica l’andamento della velocità? (ossia quel trapezio che ti ho mostrato prima)??”

Avatar utente
Foto Utenteg.schgor
57,8k 9 12 13
G.Master EY
G.Master EY
Messaggi: 16971
Iscritto il: 25 ott 2005, 9:58
Località: MILANO
Contatta:
0
voti

[19] Re: Progetto regolazione motore brushless

Messaggioda Foto Utenteg.schgor » 23 set 2008, 18:21

FdT del regolatore: per me e' insolita l'implementazione del regolatore PI in questo modo.
comunque la differenza rispetto a quanto viene adottato normalmente e' che K diventa un moltiplicatore
comune (il che complica la possibilita' di "forzamenti", cioe' di ridurre la costante "naturale" dell'anello).
Questo comporta che il "regolatore ottimo" dovrebbe avere K=1/342 e Ti=0.135 (in modo da
compensare i parametri del sistema).
Puoi provare la simulazione dell'anello di velocita' con questi dati?

CdT del sistema: come gia' detto, mi sembra che tu abbia considerato come "sistema"
il solo motore, mentre e' evidente che questo "muove" una parte meccanica che avra' sia
una "coppia resistente" (attriti o che altro) sia un suo "momento d'inerzia" (che si dovrebbe
aggiungere a quello del motore).
Penso che questi elementi possano essere ricavati dai dati di resistenza di torsione all'albero
e dalla costante meccanica. Ritengo invece trascurabile (almeno in prima battuta), la costante
elettrica del motore (perche' dovrebbe trovarsi, nel diagramma di Bode, nella zona di forte
attenuazione).

Avatar utente
Foto Utentez.deby
0 2
Messaggi: 18
Iscritto il: 12 set 2008, 17:23
0
voti

[20] Re: Progetto regolazione motore brushless

Messaggioda Foto Utentez.deby » 25 set 2008, 16:27

Ho provato a simulare con i dati da te suggeritimi ed ho ottenuto i seguenti risultati:
anello di velocità:
ImmagineImmagine
anello di posizione
avente K =2 e la componente derivativa caratterizzata da K=1 e T=0.001
ImmagineImmagine
L'andamento è sicuramente prossimo a quanto devo ottenere, ma ... come posso ridurre il tempo di assestamento?? :? :?

CdT del sistema: come gia' detto, mi sembra che tu abbia considerato come "sistema"
il solo motore, mentre e' evidente che questo "muove" una parte meccanica che avra' sia
una "coppia resistente" (attriti o che altro) sia un suo "momento d'inerzia" (che si dovrebbe
aggiungere a quello del motore).
Penso che questi elementi possano essere ricavati dai dati di resistenza di torsione all'albero
e dalla costante meccanica. Ritengo invece trascurabile (almeno in prima battuta), la costante
elettrica del motore (perche' dovrebbe trovarsi, nel diagramma di Bode, nella zona di forte
attenuazione).

Ho capito quello che intendi, ma durante l'analisi che avevamo fatto inzialmente del sistema, il mio proff. mi aveva detto (confermato poi anche dal tutor aziendale) che tali attriti possono considerarsi trascurabili...ora, non ho idea delle motivazioni che possano portare ad una strada piuttosto che all'altra e soprattutto non saprei assolutamente come considerare questi parametri.... :oops:

Considerando però che, dalla simulazione, si è riusciti ad ottenere un andamento quanto meno simile a quello finale, a questo punto forse mi conviene proseguire per la strada già intrappresa per non perdere ulteriore tempo, no? :roll:


Torna a “Automazione industriale ed azionamenti”