02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 19
2 2.1
Banco prova servoattuatore elettrico
Introduzione
Scopo di questa esercitazione è lo studio del sistema di controllo della posizione con attuazione elettrica mostrato in Figura 2.1. La posizione da controllare è quella del carrello di una comune stampante per computer. Il carrello viene movimentato tramite un motore elettrico in corrente continua che ingrana tramite una ruota dentata in una cinghia, uno dei due rami della quale è vincolato al carrello stesso. Il servoattuatore è dotato di un trasduttore di posizione, atto a rilevare in ogni istante la posizione del carrello. Il controllo di posizione è realizzato in modo analogico, e risiede in un rack nel quale sono presenti anche i moduli di generazione funzione, di condizionamento del trasduttore e di regolazione della tensione di armatura del motore elettrico a corrente continua.
2.2
Setup sperimentale
2.2.1
I componenti principali
©Giovanni Bracco e Massimo Sorli
Di seguito vengono descritti i principali componenti del sistema.
Figura 2.1
Il banco prova.
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 20
20
⦁
Capitolo 2
Il motore elettrico Il motore presente sul banco è a corrente continua (DC) a magneti permanenti. Il rotore del motore è solidale a una puleggia dentata (di diametro 14,5 mm) che attua il movimento della cinghia di trasmissione. Il carrello della stampante è solidale a uno dei due rami della cinghia, che è tenuta in tensione fra la puleggia motrice e quella folle di rimando. Pertanto, una rotazione del rotore del motore viene trasformata, per mezzo della cinghia, in una traslazione del carrello. Il circuito elettrico equivalente del motore elettrico è mostrato in Figura 2.2. Si tratta sostanzialmente di un circuito RL in cui è presente anche una forza controelettromotrice proporzionale alla velocità angolare del rotore. L’equazione elettrica del motore è data dalla (2.1). VA = R ⋅ i + L ⋅
di + ke ⋅ ω dt
(2.1)
Inoltre, in un motore elettrico DC la coppia erogata è proporzionale alla corrente i con una costante di proporzionalità kc (costante di coppia) che, a meno delle perdite joule di rotore, è uguale alla costante ke (costante di tensione) della forza controelettromotrice, come descritto dalla (2.2). C = kc ⋅ i = ke ⋅ i
(2.2)
I valori di R, L e ke possono essere forniti dal catalogo del motore, oppure potrebbero essere incogniti. In questo secondo caso i parametri possono essere valutati sfruttando le equazioni appena ricavate e da semplici prove sperimentali. Trasduttore di posizione Il trasduttore è di tipo potenziometrico a traccia ibrida prodotto dall’azienda Penny & Giles, modello HLP 190/200/8k2. Nella Tabella 2.1 sono riportati i principali dati tecnici del trasduttore di posizione. Il trasduttore è l’elemento di misura della posizione mediante il quale è possibile effettuare una retroazione analogica per poter effettuare un controllo analogico ad anello chiuso. Visivamente è costituito esternamente da un cilindro con una estremità fissa e una solidale al carrello della stampante. Come mostrato in Figura 2.3, si tratta di un dispositivo a tre terminali costituito da un elemento resistivo su cui è possibile far scorrere un contatto strisciante. Due terminali sono collegati dall’alimentatore che fornisce la tensione Vi, agli estremi dell’elemento resistivo di resistenza R, mentre il terzo terminale è collegato al contatto strisciante. Quest'ultimo è collegato meccanicamente dal carrello ed elettrii R VA
Figura 2.2 Schema del motore elettrico in DC.
L Keω
M
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 21
Banco prova servoattuatore elettrico
⦁
21
Tabella 2.1 Dati tecnici del trasduttore di posizione Marca
Penny & Giles
Modello
HLP 190/200/8k2
Lunghezza totale
310,5 mm
Corsa a comportamento lineare
±100 mm
Peso
0,231 kg
Guadagno
0,1 V/mm (±10 V F.S. lineare)
Alimentazione
±10 V
Resistenza
8 kW
Campo di temperatura di esercizio
-30 +100 C
Campo temperatura max esposizione
-65 200 F -55 95 C
Risoluzione
Virtualmente infinita
Isteresi
Minore di 0,01 mm
Massima tensione di alimentazione
74 V
Errore di linearità indipendente
0,15%
Massima velocità di esercizio
10 m/s
A
Vi X B
Vo
Figura 2.3 Schema elettrico del trasduttore.
camente al sistema di acquisizione. La resistenza tra il terzo terminale e il terminale di massa assume il valore Rx £ R, agendo come partitore di tensione rispetto alla tensione di alimentazione Vi e fornendo una tensione Vo proporzionale alla posizione del cursore. In questo modo, acquisendo la tensione Vo è possibile risalire alla posizione del carrello. Il carrello Come rappresentato in Figura 2.4, il sistema consiste in una cinghia che, messa in movimento dal motore, trasporta un carrello rappresentante la testina della stampante. Il trasduttore di posizione non viene rappresentato per semplicità, ma esso consiste in un’asta solidale con la testina ed è visibile in Figura 2.4. Il diagramma di corpo libero del carrello è rappresentato in Figura 2.5. La forza che agisce sul cursore è pari a C/r, dove C è la coppia generata dal motore (pari) e r è il raggio della puleggia.
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 22
22
⦁
Capitolo 2
Cursore m
x, ẋ, ẍ
Motore
Figura 2.4 carrello.
Schema di movimentazione del
V x, ẋ , ẍ cdsgn(x) + cẋ
m
mẍ
Figura 2.5 Diagramma di corpo libero del carrello.
F = C/r
L’equazione che descrive la dinamica del cursore è la seguente. C − Fad sin g ( x ) − cx r x= m
(2.3)
Il modello di attrito utilizzato prevede una componente viscosa e una di attrito radente. La caratteristica dell’attrito in funzione della velocità è mostrata in Figura 2.6. 6
4
Fa(N)
2
0
–2
–4
–6 –2
–1.5
–1
–0.5
0 ẋ (m/s)
0.5
Figura 2.6 Modello di attrito del carrello (Fad = 4 N, c = 1 N∙s/m).
1
1.5
2
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 23
Banco prova servoattuatore elettrico ⦁
2.2.2
23
Gruppo di controllo posizione
Descrizione generale L’apparecchiatura di controllo mostrata in Figura 2.7 è adibita alla movimentazione del motore elettrico e al controllo in anello chiuso di retroazione della posizione. Il segnale di comando può essere generato internamente all’apparecchiatura tramite un modulo generatore di funzione, oppure può essere ricevuto da un generatore esterno. Il controllo sull’anello chiuso di posizione è realizzato con scheda analogica, mediante una rete di compensazione PID (Proporzionale Integrativo Derivativo), di cui è possibile variare il guadagno di ogni singola componente. L’apparecchiatura dispone inoltre del driver del motore e della scheda di condizionamento del segnale del trasduttore di posizione potenziometrico. L’apparecchiatura di controllo è realizzata in rack standard 19", 3 unità di altezza. I moduli sono realizzati con schede plug-in da 19" tipo Eurocard a 32 + 32 + 32 connettori, ciascuno dei quali svolge le seguenti funzioni: • • • • •
modulo modulo modulo modulo modulo
di alimentazione elettronica; generatore di funzione; di controllo e compensazione PID; condizionatore trasduttore di posizione potenziometrico; driver del motore.
Modulo di alimentazione elettronica
©Giovanni Bracco e Massimo Sorli
Un alimentatore lineare provvede a fornire le alimentazioni ±15 V necessarie al funzionamento delle schede elettroniche. L’alimentazione di potenza a ±18 V per l’azionamento del motore elettrico è realizzata separatamente con l’impiego di un trasformatore 220/±18V con potenza 50 VA. I fusibili di protezione di questa alimentazione sono montati sulla scheda di potenza del controllo del motore elettrico. Un led sul pannello frontale segnala la corretta presenza della tensione. L’alimentazione di tutta l’apparecchiatura è fornita attraverso l’interruttore posteriore 220 V incorporato nella presa di alimentazione sul pannello posteriore. Tale presa comprende anche il cassettino portafusibili 220 V/1 A.
Figura 2.7 Foto del rack di controllo.
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 24
⦁
24
Capitolo 2
FILTRI SIN
GENERATORE DI RAMPA
1 10 100
FREQUENZA
SOGLIA TR INT
SIN TR SQ
INT
OUT
EXT IN
GENERATORE
SEL
SQ
1
SEL
10
DC
POT 100
SEL
FREQUENZA OUT EXT IN
Figura 2.8 Modulo generatore di funzione.
Modulo generatore di funzione Il modulo mostrato in Figura 2.8 genera una tensione variabile dinamicamente (campo -10/+10 V) che può essere usata come riferimento dinamico per il comando di posizione del carrello della stampante. Il generatore di funzione di tipo analogico produce tre segnali standard: onda sinusoidale, onda triangolare, e onda quadra. Essi sono ad ampiezza fissa ±10 V in tre gamme di frequenza: 0,11 Hz, 110 Hz, 10100 Hz. La regolazione della frequenza nel range selezionato è effettuata tramite il potenziometro multi-giri. Il segnale generato è disponibile sul BNC OUT per utilizzi esterni. Il commutatore INT/EXT permette, in posizione INT, di utilizzare come riferimento il segnale generato internamente dal generatore di funzione, e, in posizione EXT, di utilizzare un segnale di riferimento esterno (±10 V) collegato al BNC EXT IN. Modulo di controllo e compensazione PID In Figura 2.9 è riportato lo schema e la vista frontale del modulo di controllo e compensazione PID. Questo provvede alla generazione del segnale di riferimento SET, disponibile sul BNC SET, come somma di un segnale di comando statico e di
POSIZIONE POS/LOAD STATIC
OPERAZIONALI LOAD
SEL
DYNAMIC
TRIM PROP P GAIN
POT
DC
GENERATORE
TRIM
STATIC
I
POT
TRIM D
DYNAMIC
SET
Figura 2.9
COM
INTEGR
POSIZIONE
ERROR
POT
D
DERIV
I
LOAD
P
SET
COM
PUNTI DI MISURA PID
Modulo di controllo e compensazione PID.
GAIN
ERROR
ERROR
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 25
Banco prova servoattuatore elettrico ⦁
25
un segnale di ampiezza variabile dinamico, impostabili con i due potenziometri STATIC e DYNAMIC. Il modulo di comando e controllo PID provvede anche alla comparazione del SET con il segnale di posizione effettiva (feedback) generando il segnale di errore di posizione non compensato. Il segnale di errore non compensato è inviato in ingresso alla rete PID: esso viene ripartito su ciascun ramo della rete di compensazione e condizionato con una compensazione proporzionale, integrativa e derivativa a seconda del ramo del circuito. I segnali in uscita da ciascun ramo della rete di controllo vengono poi sommati tra loro e amplificati di un fattore pari al guadagno di anello. Questo è regolabile con il potenziometro GAIN in modo da ottenere la migliore risposta del sistema senza generare instabilità (campo 110). La regolazione del guadagno deve essere adattata a ogni tipo di prova. I tre singoli guadagni della rete di compensazione PID possono essere regolati dall’esterno (agendo con un cacciavite sui relativi trimmer) per ottimizzare la risposta dinamica del sistema controllato. In realtà il controllo è di tipo prevalentemente proporzionale con una piccola porzione integrativa. Il segnale compensato è quindi inviato come segnale di ingresso al modulo driver del motore amplificatore di potenza. Sono disponibili i seguenti comandi e controlli. •
•
•
•
• •
Potenziometro multi-giri STATIC per la generazione dei set di posizione statico nel campo ±10 V. L’indicazione 5,0 del potenziometro indica la posizione centrale del carrello = 0 V, e rappresenta un segnale di valore medio nullo. All’indicazione 10,00 corrisponde un valore medio +10 V e a quella 0,00 un valore medio -10 V. Potenziometro multi-giri DYNAMIC per la generazione dei set dinamico nel campo ±10 V attenuando il segnale dinamico del generatore di funzione. In posizione 0 il segnale dinamico è nullo. In posizione 10,0 il segnale dinamico è massimo. I due segnali di set STATIC e DYNAMIC vengono sommati e generano il segnale di riferimento di posizione SET. Se il potenziometro DYNAMIC è al fondoscala inferiore (tutto ruotato in senso antiorario) posizionato a 0, si ha un segnale che non oscilla attorno al valore medio avendo selezionato il fattore di riduzione massimo superiore (tutto ruotato in senso orario). Se invece il nottolino graduato indica 10,00, che significa attenuazione zero, si ottiene un segnale che oscilla attorno al valore medio con ampiezza ±10 V. Potenziometro multi-giri GAIN, consente di impostare il guadagno generale del modulo di controllo nel campo 1-10 V/V. Tale potenziometro agisce sul segnale di errore compensato PID. Trimmers PID accessibili attraverso i fori sul pannello attenuano il segnale di errore prima della compensazione e lo inviano alle tre reti parallele proporzionale, integrativa, derivativa. Le tre componenti sono successivamente sommate in un unico segnale di errore compensato. BNC SET per il monitoraggio del riferimento di posizione statico + dinamico (±10 nV = ±100 mm). BNC ERROR per il monitoraggio del segnale di errore compensato (segnale di ingresso all’amplificatore di potenza del motore).
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 26
26
⦁
Capitolo 2
P Guadagno proporzionale 1 e
Guadagno integrativo
D
Figura 2.10 Schema del regolatore PID.
1 s
I
Guadagno derivativo
+ + +
1 u
Δu Δt Derivatore ideale
La regolazione dei due potenziometri STATIC e DYNAMIC è sempre attiva anche se viene utilizzato un segnale di set esterno, tramite il BNC EXT del modulo generatore di funzione. In tal caso, per non modificare tale segnale di riferimento, il potenziometro STATIC deve essere posizionato a 5,0 e quello DYNAMIC al massimo, ossia a 10,0. La Figura 2.10 mostra l’implementazione matematica del PID, che non incorpora il potenziometro GAIN, dato che moltiplica tutti e tre i guadagni del regolatore PID e diventa un parametro superfluo e impossibile da stimare (si possono solo stimare i prodotti dei tre guadagni per il GAIN). Modulo driver del motore Il modulo di potenza provvede all’amplificazione in tensione e corrente del segnale di errore per comandare il motore elettrico del carrello nel campo di tensione ±20 VDC con corrente massima di circa 1 A. Il modulo è realizzato con un amplificatore lineare di potenza OPA544 che, dissipando notevole potenza (P diss. circa = [Valim - Vmot] imot) richiede il raffreddamento con ventilazione forzata per evitare il surriscaldamento. Il modulo è realizzato come amplificatore di tensione con guadagno fisso di 1,6 V/V rispetto al segnale di ingresso. Con un segnale di ingresso (errore compensato) di ±10 V massimo, il motore verrà alimentato con una tensione massima di ±16 V. Sono disponibili le seguenti uscite: • • •
led di controllo presenza tensione di alimentazione al motore; BNC TENSIONE MOT. Con uscita ±20 V; BNC CORRENTE MOT. Con uscita ±1 V = ±1 A (resistenza di shunt da 1 W).
Modulo condizionatore trasduttore di posizione potenziometrico Il modulo provvede alla generazione delle tensioni stabilizzate a ±10 V per l’alimentazione del trasduttore potenziometrico di posizione (P190/200mm/8K2), al filtraggio a 200 Hz e all’amplificazione del segnale di posizione. Sono disponibili i seguenti controlli:
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 27
Banco prova servoattuatore elettrico
Tabella 2.2
Onda sinusoidale Onda quadra Onda triangolare
• •
27
Descrizione prove sperimentali acquisite
Tipo
•
⦁
Ampiezza (V)
Frequenza (Hz)
Guadagno (V/V)
N di prove
1e2 2 2
da 0,5 a 9 0,5 0,5
1e5 1, 5 e 8 1, 5 e 8
14 5 4
trimmer POSITION OFFSET consente la taratura del valore di 0 con il carrello della stampante posizionato a metà corsa; trimmer POSITION GAIN consente la taratura al valore ±10 V con il carrello della stampante posizionato a ±100 mm di corsa; BNC POSITION consente il controllo del segnale di posizione del carrello (±10 V = ±100 mm) di corsa.
I dati sperimentali Le prove sperimentali sono acquisite per una durata di 10 s, alla frequenza di 1 kHz. I tipi di prova investigatori sono riassunti in Tabella 2.2.
2.3
Modellazione matematica
Nota: per la costruzione del modello e la sua validazione con i dati sperimentali riferirsi al video del capitolo (disponibile sulla piattaforma Connect). La modellazione matematica riguarda ogni sottosistema del servosistema e può essere concettualmente sintetizzata in Figura 2.11.
SET
V_set
Err. Comp
Errore
PID(s)
G
Ia
Amp Err. Comp
Va
Generatore del riferimento
Fb
Motore elettrico
Feedback
Potenziometro Trasmissione Carrello x
Figura 2.11 Schema concettuale del modello matematico.
teta
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 28
28
⦁
2.3.1
Capitolo 2
Il modello e i sottosistemi
Il modello matematico del servoattuatore elettrico controllo posizione riportato in Figura 2.12 è composto dai seguenti sottosistemi. 1. Loop di controllo PID: a. Input Set e feedback di posizione (V) b. Output Errore compensato (V) c. Parametri Kp, Ki, Kd (da identificare) 2. Interfaccia di potenza: a. Input Errore compensato (V) b. Output Tensione motore (V) c. Parametri AttGain (noto) 3. Motore elettrico: a. Input Tensione motore (V) b. Output Coppia motore (Nm) c. Parametri Kc (noto) – R, L (da identificare) 4. Dinamica del carrello: a. Input Coppia motore (Nm) b. Output Posizione del carrello (m) c. Parametri r, m (noti) – c, Cad (da identificare) 5. Trasduttore: a. Input Posizione del carrello (m) b. Output Feedback di posizione (V) c. Parametri Kt (noto)
2.3.2
I segnali acquisiti
I segnali disponibili sono campionati a 1 kHz e sono i seguenti, in ordine di colonna dei file di acquisizione. 1. 2. 3. 4.
Set (V). Feedback (V). Errore compensato (V). Corrente motore (V, guadagno 1 A/V).
2.3.3
Lo scopo dell’esercitazione
Lo scopo dell’esercitazione riguarda l’identificazione dei parametri incogniti di motore, carrello e regolatore PID. L’identificazione dei parametri di motore potrebbe essere fatta tramite multimetro da banco (resistenza e induttanza), tuttavia nell’ipotesi di non poter smontare il sistema e di conoscere i parametri di input e output della parte elettrica del motore è possibile stimarli tramite le acquisizioni temporali, come proposto in questo testo.
-KErr comp Saturazione PID Par.Model. AttGain
PID
Set/Fb
1 den(s)
i_sim
1/Par.Model.FBGain
-K-
-K-
-K-
-K-
iacq_isim
1/Par.Model.r
C (Nm)
Par.Model.FBGain
Par.Model.kw
-K-
RL Model 1/(Par.Model.L*s + Par.Model.R)
FB Sim (V)
Figura 2.12 Il modello matematico del servoattuatore elettrico.
SET (V)
[Par.Exp. Time Par.Exp.SET]
1/Par.Model.FBGain
FB (V) -K-
-K-
9
PIDacq_PIDsim
[Par.Exp. Time Par.Exp.FB]
I (A)
[Par.Exp. Time Par.Exp.I]
Errore Compensato (V)
[Par.Exp. Time Par.Exp.ErrComp]
xdot (m/s)
xdot (m/s)
Par.Model.Fad
-K-
RL Model 1/(Par.Model.m*s + Par.Model.c)
1 den(s)
1 s
x (m)
x (m)
Posizione
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 29
Banco prova servoattuatore elettrico ⦁ 29
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 30
30
⦁
Capitolo 2
Par.Model. AttGain [Par.Exp. Time Par.Exp.ErrComp]
1 0.0125s + 12.5
-K-
V
SET [Par.Exp. Time Par.Exp.FB] FB
-K1/Par.Model. FBGain
[Par.Exp. Time Par.Exp.I]
Δu Δt
-K1/Par. Model.r
-K-
w
i_sim
Transfer Fcn 1/(par.model.Ls + par.model.R)
Isim_iacq
Par.Model. kw
1
i_sp
I
Figura 2.13
Setup di modellazione del motore elettrico.
Modello del solo controllo [Par.Exp. Time Par.Exp.SET]
PID
SET [Par.Exp. Time Par.Exp.FB]
Saturation PID
Err comp sim PIDacq_PIDsim
FB
[Par.Exp. Time Par.Exp.ErrComp] Errore compensato
Figura 2.14
1 Err comp exp
Setup di modellazione del regolatore PID.
La stima dei parametri del motore elettrico è effettuata tramite un modello di motore dedicato, mostrato in Figura 2.13. Per quanto riguarda i parametri del regolatore PID, essendo il controllore implementato tramite componenti analogici, essi possono essere soggetti a deriva rispetto al tempo e a imprecisioni di regolazione tramite le manopole. Quindi si ritiene necessario stimare per ogni prova i coefficienti del regolatore PID, al fine di conoscere i valori che inseriti nel modello meglio rappresentino il sistema fisico. La stima dei parametri del regolatore PID è effettuata tramite un modello di regolatore dedicato, mostrato in Figura 2.14. I parametri di attrito in generale nei sistemi meccanici sono quelli meno noti e misurabili. Nella presente esercitazione si è ipotizzato un modello di attrito viscoso + radente, che stima in maniera semplificata la curva di Stribeck. La stima dei parametri di attrito è effettuata tramite il modello completo, dopo che i parametri di motore elettrico e regolatore PID sono stati stimati.
2.3.4
Motore elettrico
Per quanto riguarda l’armatura del motore elettrico si conoscono la tensione di alimentazione (input), la corrente (output) e il disturbo (velocità del motore, ricavabile dalla posizione del carrello).
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 31
Banco prova servoattuatore elettrico ⦁
2.3.5
31
Loop di controllo PID
Del regolatore PID si conoscono l’input (set-feedback) e l’output (errore compensato) e, noto il modello del PID con saturazione a ±10 V, è possibile stimare i parametri del regolatore. e c (t ) = kp e (t ) + ki ∫ e (t ) dt + kd
de (t ) dt
(2.4)
Il blocco PID rappresenta il prodotto dei tre guadagni PID impostabili con i trimmer e del guadagno totale di anello GAIN. Infatti, visto che il parametro GAIN moltiplica tutti i parametri del PID, è possibile stimare solamente il loro prodotto e non il valore reale.
2.4
Comparazione analitico-sperimentale
In questa esercitazione il modello matematico è descritto in ambiente Simulink e non semplicemente da una riga Matlab come in ###, per cui la funzione che rende l’errore quadratico medio deve essere più complessa e svolgere alcuni passaggi prima di rendere l’errore desiderato. Di seguito le operazioni principali. 1. Acquisire i parametri da identificare sottoforma di vettore. 2. Impostare i parametri nel set di variabili di modello e lanciare il modello. 3. Acquisire l’output del modello, valutare l’errore rispetto ai dati sperimentali e renderlo disponibile in output. 4. Opzionale: plot dell’evoluzione del sistema al variare dei parametri per poter valutare la bontà della convergenza a mano a mano che l’ottimizzazione procede.
2.4.1
Identificazione dei parametri elettrici del motore
Di seguito un esempio di funzione implementata in ambiente Matlab per la stima dei parametri L e R del motore elettrico. function err = FUNC_LR(Par,x) % Funzione per il lancio del modello simulink del motore DC % x = [L R] Par.Model.L = x(1); % induttanza (H) Par.Model.R = x(2); % resistenza del motore (Ohm) % Lancio il modello SimOut = sim('Model_DCMotor.slx','SrcWorkspace','current'); % Valuto l’errore err = sum((SimOut.yout(:,1)-SimOut.yout(:,2)).^2); % Plot and Display (opzionale) disp(['L R = ',num2str(x),' # Errore = ',num2str(err)]) % plot
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 32
32
⦁
Capitolo 2
fig_ = get(groot,'CurrentFigure'); if isempty(fig_) figure(1) plot(SimOut.tout,fliplr(SimOut.yout)) hold on grid on else plot(SimOut.tout,SimOut.yout(:,1)) end drawnow end
La funzione FUNC_LR può essere lanciata per l’ottimizzazione con l’istruzione riportata di seguito, a patto che nel workspace sia presente la variabile Par. Infatti l’istruzione sim presente dentro la funzione FUNC_LR, ha bisogno dell’intero set di variabili compreso dentro Par per poter funzionare. [XOpt, FOpt] = fminsearch(@(x)FUNC_LR(Par,x),[Par.Model.L Par.Model.R])
L’ottimizzatore implementato dall’algoritmo fminsearch procede a variare i parametri a partire da quelli di primo tentativo e cerca una convergenza minimizzando l’errore. È importante notare che fminsearch implementa un algoritmo di minimizzazione locale, quindi con il limite di trovare il minimo locale più vicino al punto di partenza impostato. L’algoritmo non è quindi in grado di identificare il minimo assoluto, per cui servirebbe un algoritmo di ricerca del minimo globale, che però per contro sarebbe molto più lento nell’esecuzione. In Figura 2.15 è mostrato l’andamento della corrente nel motore per la prova sinusoidale SIN_2,5Hz_A2_G5_dots.txt al variare del parametri L e R. Sono mostrate solo le prime iterazioni, in cui si vede che: • •
i parametri di primo tentativo sono molto buoni; si ha convergenza verso un set di parametri che sebbene non approssimino perfettamente l’andamento sperimentale ne ricalcano l’andamento medio e le dinamiche principali.
L’operazione può essere ripetuta per l’intero set di prove, e i parametri ottimi identificati per ogni prova possono essere sintetizzati in una tabella come mostrato in Tabella 2.3. L’obiettivo dell’identificazione svolta in questo testo riguarda la determinazione di un set di parametri, in questo caso L e R, che possano essere usati per qualunque tipo di prova. L’ottimizzazione, per ogni set di prove, darà dei parametri L e R diversi. Si può quindi procedere in due modi: 1. redigere un programma che per ogni set di parametri L e R esegua la simulazione di tutte le prove e che valuti un errore globale; 2. procedere come mostrato in precedenza e quindi ottimizzare ogni singola prova, ottenere un set di parametri L e R per ogni prova e poi mediarli e valutarne la bontà.
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 33
Banco prova servoattuatore elettrico
⦁
33
1,5 exp 1st try opt
Corrente motore (A)
1
0,5
0
–0,5
-1
–1,5 9,6
9,65
9,7
9,75
9,8
9,85
9,9
9,95
10
Tempo (s)
Figura 2.15
Ottimizzazione dei parametri L e R.
Tabella 2.3
Tabella per l’organizzazione dei dati
Prova
L (H)
R (W)
Errore
SIN_2,5Hz_A2_G5_dots.txt
0,0174
13,51
40,55
–
– – -
… … Media Deviazione Standard COV
Il metodo 1 è sicuramente quello maggiormente rigoroso, in quanto identifica automaticamente il set che garantisce il minimo errore, sebbene si perda l’indicazione di quanto il set di parametri identificato sia adatto alla singola prova. Il metodo 2, in cui si procede all’identificazione di tanti set uno per prova e poi se ne effettua la media, è molto utile in caso si desideri valutare quanto varino i set ottimi di prova in prova. Per esempio, a causa di una modellazione approssimata e non adatta al sistema reale in esame, per alcuni tipi di prova la modellazione può dare una buona approssimazione, mentre per altri tipi può essere insufficiente. In questo caso, analizzando sia la media sia la varianza della distribuzione dei parametri ottimi è possibile ottenere maggiori informazioni in merito alla bontà del set identificato. A titolo esemplificativo, un set di parametri omogeneo sulle prove sinusoidali può diventare altamente variabile su quelle a gradino, o viceversa. Se i parametri ottimi
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 34
34
⦁
Capitolo 2
identificati risultano simili per ogni prova, allora la deviazione standard sarà molto bassa, viceversa se le prove hanno un’elevata variabilità. COV =
σ μ
(2.5)
Il coefficiente di variazione (Coefficient Of Variation, COV), corrispondente al rapporto fra la deviazione standard s e il valore assoluto della media m, esprime un modo per valutare la dispersione delle prove attorno al valore medio. Un COV tendente a zero indica che ogni set di prove converge a un set di parametri simile, viceversa un COV elevato indica una grande dispersione dei set identificati. In questo caso si può affermare che il set medio è meno rappresentativo del comportamento del sistema reale, in quanto ogni prova, per essere approssimata, necessita di valori specifici. Si può anche affermare, a meno di errori nell’acquisizione delle prove sperimentali, che se il COV è elevato, il modello o la sua complessità non sono adatti a simulare il comportamento del sistema reale.
2.4.2
Identificazione dei parametri del regolatore PID
Si procede analogamente a quanto mostrato nel Paragrafo 2.4.1, metodo 2, e si ottengono i risultati mostrati nella prima riga di Tabella 2.4. Come si può notare, il parametro Kd è negativo. Questo non è accettabile in quanto, per definizione, i parametri del regolatore PID sono maggiori di zero. La conclusione a cui si arriva è che il modello matematico del PID ideale implementato potrebbe non essere adatto alla descrizione del sistema reale. Questa affermazione è corroborata dal fatto che il regolatore reale è implementato tramite componenti analogici, che non riescono ad approssimare perfettamente il modello matematico di riferimento, inoltre nel tempo possono avere una deriva rispetto al comportamento reale. Il regolatore reale, quindi, potrebbe avere un comportamento differente, di conseguenza il modello matematico del PID potrebbe essere aumentato in complessità per poter seguire il sistema reale. Ai fini di questa esercitazione, tuttavia, si ritiene di non procedere a identificazioni di sistemi a maggiore complessità, ma di usare l’algoritmo fmincon che offre maggiori possibilità di personalizzazione, fra cui l’impostazione del campo di variabilità dei parametri in ingresso. La sintassi risulta come segue.
Tabella 2.4
Risultati ottimizzazione PID (prova SIN_2,5Hz_A2_G5_dots.txt)
N
Algoritmo
Kp
Ki
Kd
Errore
1 2 3 4 5
fminsearch
14,85 11 715 523 7,38 7,38 7,37
0,124 0,0906 0,138 0,138 0,136
-0,1310 0,001 1,49e-8 1,49e-8 1,49e-8
1387 179 463 96 293 96 293 95 599
fmincon, limiti [0 0 0], [inf inf inf] fmincon, limiti [0 0 0], [30 1 1] fmincon, limiti [0 0 0], [100 100 100] fmincon, limiti [0 0 0], [100 100 100],
saturazioni impostate da valori reali
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 35
Banco prova servoattuatore elettrico
⦁
35
[XOpt, FOpt] = fmincon(@(x)FUNC_PID(Par,x),[Par.Model.kp Par.Model.ki Par.Model.kd],[],[],[],[],[0 0 0],[inf inf inf])
I risultati sono mostrati nella seconda riga della Tabella 2.4. Si nota un valore molto alto del guadagno proporzionale, incompatibile con quanto si conosce sul sistema reale, in cui i guadagni fisici sono dell’ordine delle decine. Si decide quindi di procedere con una terza ottimizzazione, in cui oltre al limite inferiore, si imposta anche un limite superiore, coerente con i parametri attesi, mostrata in riga 3. Si verifica che l’ottimizzazione non ha avuto convergenza verso i limiti impostati (a parte il guadagno derivativo, di cui ci si aspettava un valore tendente a zero), per cui si ritiene valida la simulazione. Un’ulteriore verifica è mostrata dalla riga 4, in cui i limiti superiori sono ulteriormente aumentati e l’ottimizzazione converge verso lo stesso punto. La comparazione grafica delle tre ottimizzazioni è mostrata in Figura 2.16. Dalla Figura 2.16 si nota che l’ottimizzazione migliore che si può avere per il regolatore non è la migliore possibile, in quanto, per esempio, le rampe di salita e discesa non sono quelle sperimentali e inoltre la simulazione ha un errore compensato saturato a pari a ±10 V esatti, mentre sperimentalmente si verifica che le saturazioni sono rispettivamente pari a -10,31 V e 10,38 V. Si lancia quindi l’ottimizzazione 5, in cui il risultato è molto simile alla precedente, con un errore leggermente minore. Par.Model.SatMax = max(Par.Exp.ErrComp),Par.Model.SatMin = min(Par.Exp.ErrComp)
Errore compensato (V)
10 5
exp opt 1 opt 2 opt 3 opt 4
0 -5 -10 9,6
9,65
9,7
9,75
9,8 Tempo (s)
9,85
9,9
9,95
10
2
Posizione (V)
SET FB 0
-2
-4 9,6
9,65
9,7
9,75
9,8 Tempo (s)
9,85
9,9
9,95
Figura 2.16 Ottimizzazione dei parametri del regolatore PID (SIN_2,5Hz_A2_G5_dots.txt).
10
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 36
⦁
36
Capitolo 2
La prova scelta è una prova sinusoidale molto veloce, in cui la dinamica di tutto il sistema si esprime al massimo e, con tutta probabilità, il modello mostra i limiti. Come si nota dalla Figura 2.16, l’errore è sempre in saturazione, per cui i tratti i cui campioni sono la reale espressione del regolatore sono pochi rispetto all’intero record temporale, pregiudicando la bontà dell’ottimizzazione. Si procede quindi con l’analisi di una prova che implichi minori velocità e accelerazioni del carrello (quale la SIN_1Hz_A1_G5_dots.txt) e di conseguenza minori correnti al motore e minori comandi in uscita dal PID, per osservare il comportamento del sistema quando il controllo non lavora gran parte del tempo in condizioni di saturazione. Dalla Figura 2.17 e dalla Tabella 2.5 si osserva che il modello matematico del PID ideale approssima meglio il sistema reale e la cifra di errore è inferiore di un ordine di grandezza rispetto alla prova precedente. Si ritiene accettabile il modello del PID identificato e si decide di non approfondire ulteriormente la sua dinamica. Essendo il regolatore PID adattato dal parametro GAIN, è necessario procedere all’identificazione del controllore PID per ogni famiglia che presenta lo stesso GAIN. Nota: è possibile che si verifichino alcuni problemi durante la simulazione.
Errore compensato (V)
10 5 0 -5
exp opt 1
-10 8
8,2
8,4
8,6
8,8
9 Tempo (s)
9,2
9,4
9,6
9,8
10
Posizione (V)
1 SET FB
0,5 0 -0,5 -1 8
8,2
8,4
8,6
8,8
9 Tempo (s)
9,2
9,4
9,6
9,8
Figura 2.17 Ottimizzazione dei parametri del regolatore PID (SIN_2,5Hz_A2_G5_dots.txt).
Tabella 2.5
Risultati ottimizzazione PID (prova SIN_2,5Hz_A2_G5_dots.txt)
N
Algoritmo
Kp
Ki
Kd
Errore
1
fmincon, limiti [0 0 0], [100 100 100],
15,56
0,722
2,47e-11
10 328
saturazioni impostate da valori reali
10
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 37
Banco prova servoattuatore elettrico ⦁
37
Simulink will stop the simulation of model “Model_PID” because the 1 zero crossing signal(s) identified below caused 1000 consecutive zero crossing events in time… Lo zero crossing è un algoritmo di Simulink che cerca di identificare le discontinuità dovute ai componenti che hanno comportamenti digitali o prevedono discontinuità di qualche tipo, quali la funzione segno o il blocco saturazione. Simulink usa lo zero crossing in modo da infittire il time step prima e dopo la discontinuità e garantire in ultima analisi una simulazione a maggiore fedeltà. In alcuni casi però l’algoritmo di zero crossing interferisce con il normale svolgimento della simulazione, non riuscendo ad avere convergenza e superando il massimo valore di tentativi. In questi casi ci sono diverse soluzioni, fra cui usare la funzione adaptive, oppure incrementare il numero massimo di iterazioni, oppure disabilitare il flag “Enable zero crossing” dai blocchi che generano la discontinuità.
2.4.3
Analisi in frequenza del sistema sperimentale
Dall’analisi delle figure al Paragrafo 2.4.2 (Figura 2.16 e Figura 2.17) si può notare che la frequenza dichiarata dal nome del file potrebbe non essere esattamente quella impostata nella prova. Dato che il sistema è di tipo analogico è possibile che il generatore di funzione sia impostato con un certo margine di errore. Inoltre, avendo una buona base di prove sinusoidali, si desidera analizzare il sistema rispetto alla frequenza. Si decide quindi di effettuare un’analisi di Fourier per verificare tali aspetti. La trasformata di Fourier L’uso principale della trasformata di Fourier nel campo dell’ingegneria risiede nel fatto che permette di scrivere una funzione dipendente dal tempo come combinazione lineare di funzioni armoniche (sinusoidi). La trasformata di Fourier associa a una funzione espressa nel tempo i valori dei coefficienti delle sinusoidi della base, dando quindi una rappresentazione nel dominio delle frequenze (spettro). La trasformata di Fourier discreta (Discrete Fourier Transform, DFT) associa a un vettore di campioni equispaziati nel tempo un vettore di coefficienti equispaziati nelle frequenze. Di seguito l’espressione della DFT di un vettore x, avente N componenti. N −1
Xk =
∑
xne
n =0
−
i 2π kn N
N −1
=
∑x n =0
n
⎡ ⎛ 2π ⎞ ⎛ 2π ⎞⎤ ⎢cos ⎜⎜ kn⎟⎟⎟ − i ⋅ sin ⎜⎜ kn⎟⎟⎟⎥ ⎝ N ⎠⎥⎦ ⎢⎣ ⎝ N ⎠
(2.6)
La parte destra della (2.6) si ottiene dall’identità di Eulero, che associa il dominio esponenziale a quello sinusoidale. Inoltre, una somma di seni e coseni aventi lo stesso argomento è sempre scrivibile come una funzione coseno (o seno) con una certa fase rispetto all’argomento. A cos ( x ) + B sin ( x ) = M cos ( x + θ)
(2.7)
Il generico campione Xk della trasformata è quindi un numero complesso che è esprimibile come parte reale e immaginaria (coordinate cartesiane), oppure come modulo (magnitude) e fase (phase) (coordinate polari). La (2.8) esprime la relazione fra coordinate cartesiane e reali.
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 38
38
⦁
Capitolo 2
⎧⎪ ⎪⎪mag ( X k ) = Re ( X k )2 + Im ( X k )2 ⎪⎪ ⎨ ⎪⎪phase ( X ) = atan ⎡⎢ Im ( X k ) ⎤⎥ k ⎪⎪ ⎢ Re ( X k ) ⎥ ⎦ ⎣ ⎪⎩
(2.8)
Il vettore delle frequenze è strettamente correlato al vettore temporale in ingresso alla DFT. • • •
•
La lunghezza del vettore delle frequenze è pari a quella del vettore nel tempo, N. La discretizzazione in frequenza dello spettro è pari all’inverso della lunghezza temporale (Δf = 1 / T ). Per avere una discretizzazione fine dello spettro è necessario avere un record temporale lungo. La frequenza di campionamento del vettore in ingresso influisce sulla massima frequenza dello spettro (teorema del campionamento, o di Nyquist o di Shannon), in quanto la massima frequenza dello spettro è pari a metà della frequenza di campionamento. Per avere un’ampia base di frequenze dello spettro è necessario avere un’elevata frequenza di campionamento. La base delle frequenze della DFT risulta quindi ⎡ F F F F ⎤ F = ⎢− s , − s + Δf , … , − s + (N − 2) Δf , s ⎥ ⎢⎣ 2 2 2 2 ⎥⎦
•
(2.9)
La DFT è simmetrica rispetto all’origine, per cui il valore della trasformata alla frequenza f * è identico a quella -f *.
Densità spettrale di potenza La densità spettrale di potenza (Power Spectral Density, PSD) esprime l’andamento della potenza del segnale rispetto alle frequenze. La potenza di un segnale è data dal quadrato dell’ampiezza della sinusoide del segnale; tale definizione deriva dalla descrizione della potenza elettrica. La PSD è un modo molto comune per analizzare e rappresentare un segnale. La PSD Sxx di un segnale nel tempo x è direttamente ricavabile dalla DFT, secondo la (2.10). 2 S xx [ k ] = ⎢⎣ X k ⎥⎦
(2.10)
Vista la simmetria della DFT, la PSD è espressa solo per frequenze positive. La PSD inoltre tiene conto solo dell’ampiezza, mentre perde l’informazione sulla fase. Risposta in frequenza del servosistema Uno degli utilizzi della DFT è quello di costruire la risposta in frequenza di un sistema. Infatti, se si fornisce un input sinusoidale al servosistema, in condizioni di linearità, la sua risposta sarà anch’essa sinusoidale. Effettuando la DFT sulle storie temporali di input (u) e output (y), si otterranno ampiezza e fase di input (U) e
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 39
Banco prova servoattuatore elettrico
⦁
39
Tabella 2.6 Risultati analisi in frequenza Nome prova SIN_05Hz_A1_G5_dots.txt SIN_1Hz_A1_G5_dots.txt SIN_2,5Hz_A1_G5_dots.txt SIN_5Hz_A1_G5_dots.txt SIN_9Hz_A1_G5_dots.txt
Frequenza attesa (Hz)
Frequenza riscontrata (Hz)
0,5 1 2,5 5 9
1,6 2,1 3,6 5,8 9,3
output (Y) del sistema. È quindi possibile ricostruire la risposta in frequenza (Frequency Response Function) come rapporto delle ampiezze e differenza delle fasi (il valore k è quello corrispondente, o più vicino, alla frequenza del SET). ⎪⎧⎪ mag (Yk ) ⎪⎪FRF = mag (U k ) ⎨ ⎪⎪ ⎪⎪ϕ (FRF) = ϕ (Yk ) − ϕ (U k ) ⎪⎩
(2.11)
In ambiente Matlab la DFT è implementata con il comando fft. Data la base di prove sinusoidali a disposizione, variabili in ampiezza e guadagno, è possibile ricostruire la risposta in frequenza del servosistema di controllo della posizione. Per prima cosa si procede alla ricostruzione delle PSD dei segnali di SET e FB e all’identificazione della frequenza della sinusoide di SET; i dati sono riassunti nella Tabella 2.6. I risultati dell’analisi in frequenza mostrano quindi che il contenuto in frequenza del segnale di set è diverso da quanto indica la manopola di regolazione della frequenza di set, da cui l’importanza della verifica dei segnali in ingresso prima di procedere con la modellazione numerica. Come è possibile vedere in Figura 2.18, l’andamento del segnale di feedback non è sinusoidale come richiesto dal segnale di set, mostrando asimmetrie e pendolamenti. I pendolamenti per la sinusoide a bassa frequenza sono dovuti all’attrito statico del carrello sulla guida, che creano un fenomeno di stick-slip. L’andamento ad alta frequenza mostra invece un’elevata attenuazione, come verrà successivamente analizzato. In Figura 2.19, sono mostrate le PSD di set e feedback: la PSD del set presenta un picco definito sulla frequenza della sinusoide, mentre il feedback, a causa delle non linearità, presenta altri picchi per frequenze diverse da quella del set. Per poter sintetizzare i risultati dei grafici della Figura 2.18 si procede alla creazione della risposta in frequenza. Si nota quindi che il sistema riesce a riprodurre l’ampiezza del segnale in ingresso fino a circa 6 Hz, mostrando poi un ramo di attenuazione per le frequenze maggiori. Osservando la Figura 2.20, la banda passante (frequenza per la quale si ha un’attenuazione di 3 dB) è stimabile a circa 7,5 Hz, sebbene per ottenere una maggiore precisione sarebbe opportuno avere ulteriori prove in quel range di frequenze. Se si ripete la stessa operazione selezionando le prove ad ampiezza maggiore (pari a 2 V) e si ricostruisce la risposta in frequenza, si può notare dalla Figura 2.21
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 40
⦁
Ampiezza (V)
Ampiezza (V)
Ampiezza (V)
40
Capitolo 2
SIN_05Hz_A1_G5_dots.txt
1
SET FB
0 -1 8
8,2
8,4
8,6
8
8,2
8,4
8,6
8
8,2
8,4
8,6
8,8
9 9,2 Tempo (s) SIN_2,5Hz_A1_G5_dots.txt
9,4
9,6
9,8
10
8,8
9,4
9,6
9,8
10
9,4
9,6
9,8
10
1 0 -1
1
9 9,2 Tempo (s) SIN_9Hz_A1_G5_dots.txt
0 -1 8,8
9 Tempo (s)
9,2
Figura 2.18 Andamento temporale di set e feedback per una selezione di 3 prove.
SIN_05Hz_A1_G5_dots.txt
P1 (f)
1 0,5 0 0
1
2
3
1
2
3
1
2
3
4
5 6 f (Hz) SIN_2,5Hz_A1_G5_dots.txt
7
8
9
10
4
7
8
9
10
7
8
9
10
P1 (f)
1 0,5 0 0
P1 (f)
1
5 6 f (Hz) SIN_9Hz_A1_G5_dots.txt
0,5 0 0
4
5 f (Hz)
6
Figura 2.19 Andamento della PSD di set e feedback per una selezione di 3 prove.
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 41
Banco prova servoattuatore elettrico ⦁
2
|TF| dB
0 –2 –4 –6 0 10
101 f (Hz)
ϕ(TF) (deg)
0
–50
–100 –150 100
101 f (Hz)
Figura 2.20
Risposta in frequenza (ampiezza 1, guadagno 5).
|TF| dB
0
–5 A1 G5 A2 G5
–10 100
101 f (Hz)
0
ϕ(TF) (deg)
–50
–100
–150 100
101 f (Hz)
Figura 2.21
Risposta in frequenza (ampiezza 1 e 3, guadagno 5).
41
02txtI.qxp_SORLI_2021 04/01/22 10:45 Pagina 42
42
⦁
Capitolo 2
come le prestazioni del servosistema decadano. La banda passante, infatti, scende a meno di 5 Hz e anche la fase inizia a ritardare a frequenze più basse. Questo è dovuto alla maggiore ampiezza del segnale di set, che impone velocità e accelerazioni maggiori al carrello, in ultima analisi saturando a frequenze più basse la corrente motore e quindi raggiungendo prima i limiti del sistema. Si ha quindi conferma della non linearità del sistema.
2.4.4
Identificazione dei parametri di attrito del carrello
In maniera analoga a quanto presentato nei Paragrafi 2.4.1 e 2.4.2 si può procedere all’identificazione dei parametri di attrito del carrello c e Fad. Per fare questo è prima necessario stimare i parametri del motore elettrico e del regolatore PID e poi usare il modello complessivo per stimare i due parametri di attrito.
RIASSUNTO • Sistema di controllo posizione lineare elettromeccanico con regolatore PID. • Sistema di generazione del riferimento e di controllo implementato con elettronica analogica. • Guida con presenza di attrito statico radente e attrito viscoso, che possono causare fenomeni di stick-slip.
Video Connect per Capitolo 2