FONDAMENTI DI AUTOMATICA (01AYS, 03FTP) - A.A. 2003/2004
I esercitazione presso il LADISPE
Identificazione del modello di un levitatore magnetico
Il sistema fisico che sarà utilizzato in queste esercitazioni sperimentali è un levitatore magnetico
che, seppur costruito esclusivamente per scopi didattici, è rappresentativo di molti altri sistemi
più complessi che si basano sullo stesso principio (la levitazione magnetica) utilizzato in vari
campi della tecnologia moderna.
In questa esercitazione, dopo aver introdotto il modello matematico del sistema, sarà effettuata l’identificazione dei parametri.
In figura 1.1 è rappresentato lo schema a blocchi del sistema fisico.
Fvu
Attuatore
Ii
2.5V/A
Elettrom.
Z
Trasduttore
I vz
I vi
Figura 1.1. Schema a blocchi del levitatore magnetico
Si evidenziano 3 blocchi, e per ciascuno di essi sono state ricavate le equazioni che meglio ne
modellano il comportamento fisico:
• Attuatore
L’attuatore riceve in ingresso la tensione di comando vu e fornisce in uscita la corrente i.
La relazione fra le due grandezze è modellabile mediante la seguente caratteristica:
i = K a · v u + io
dove io è una corrente costante di offset.
• Elettromagnete
L’elettromagnete riceve in ingresso la corrente i fornita dall’attuatore e genera una forza
magnetica F che agisce sulla pallina. Tale sistema, rappresentato in figura 1.2, è descritto
dal seguente modello dinamico non lineare:
..
M z = Mg − F
K m i2 + K o
F =
z2
avendo indicato con M la massa della pallina (da considerarsi un corpo puntiforme) e con
z la sua distanza dall’elettromagnete.
• Trasduttore
Il trasduttore misura la posizione z della pallina mediante sensori ottici, e fornisce in
uscita una tensione vz il cui valore è legato alla posizione misurata da una relazione che,
entro un ampio intervallo, è data da:
v z = Kt · z + v o
1
I
F
Z
Mg
Figura 1.2. Schema dell’elettromagnete
1. Corrispondenze con l’impianto reale
Si riporta ora un elenco delle corrispondenze fra le variabili introdotte nelle precedenti equazioni
e le grandezze fisiche presenti nel levitatore:
• vu , misurata in [V], corrisponde alla somma tra il segnale “Command IN” e il comando
“Feedforward”;
• i, espressa in [A], è la corrente che passa attraverso l’avvolgimento dell’elettromagnete.
Per motivi tecnologici non è possibile misurare direttamente tale corrente. Il problema
è stato risolto rendendo disponibile la misura della tensione vi = Ki i con Ki = 2.5V /A.
Tale tensione vi , misurata in [V], è disponibile all’uscita “Current sense”;
• z, misurata in [m], è la posizione verticale della pallina, diretta verso il basso;
• vz , misurata in [V], è la tensione disponibile all’uscita “Position sense”.
Nei prossimi tre paragrafi sarà presentato un procedimento pratico per l’identificazione dei
parametri del modello dei tre blocchi visti precedentemente:
- parametri dell’attuatore: Ka , io
- parametri dell’elettromagnete: Km , Ko
- parametri del trasduttore: Kt , vo
2. Identificazione dei parametri dell’attuatore
• Tenendo la tensione di “Feedforward” a zero, imporre una serie di tensioni costanti vu nel
range [−1V, 8V ] collegando il morsetto “OUTPUT” del generatore di segnali all’ingresso
“Command IN” del levitatore.
ATTENZIONE: il valore effettivo della tensione vu applicata al levitatore è il doppio del
valore indicato sul display del generatore di segnali.
• Per ogni valore di tensione di ingresso vu misurare la tensione vi all’uscita “Current sense”
e ricavare la corrispondente corrente i.
ATTENZIONE: ricordarsi che l’uscita “Current sense” fornisce una tensione vi = 2.5·i da
convertire poi nella corrente i. Utilizzare quindi un voltmetro e NON un amperometro.
Si noti che l’attuatore dà uscita nulla per valori negativi del comando vu . Inoltre, per
motivi di sicurezza, un circuito di protezione azzera la corrente i quando essa supera i 3A.
Se il sistema va in protezione (si accende la spia rossa “protection”), occorre azzerare il
comando vu e premere il pulsante “reset”.
2
• Riportare i dati in MATLAB.
• Visualizzare i dati ed osservare l’intervallo di linearità. Entro tale intervallo, la relazione
tensione-corrente può essere descritta dalla caratteristica:
i = K a · v u + io
dove Ka e io sono i parametri da stimare.
• Considerare solo i dati compresi nell’intervallo di linearità.
• Per ogni j-esima acquisizione si può scrivere:
ij = Ka · vu,j + io
e quindi, riunendo tutti i dati acquisiti in forma matriciale, si ottiene:




i1
vu,1 1



  i2 
 vu,2 1 
Ka
 . = .

..  · i
 . 
 .
o
 . 
 .
. 
vu,N 1
iN
• Ricavare la stima dei parametri Ka e io con il metodo dei minimi quadrati.
3. Identificazione dei parametri del trasduttore
• Porre a zero il comando vu .
• Agendo sulla ghiera di posizionamento, portare la pallina nella massima posizione superiore annotandone il valore qo (in metri) letto sulla scala graduata a fianco della vite di
posizionamento.
• Considerando diversi valori della posizione q (sempre misurata in metri e letta sulla scala
graduata), ricavare i corrispondenti valori della distanza z = q − qo e misurare la tensione
vz di uscita del trasduttore (misurata in volt all’uscita “Position sense”).
• Riportare i dati in MATLAB.
• Poiché l’errore più rilevante è quello commesso posizionando la pallina mediante la ghiera
di posizionamento (l’errore massimo di posizione è di circa 0.5 mm), è opportuno riscrivere
l’equazione del modello del trasduttore nella forma seguente:
z = p 1 · vz + p2
1
vo
dove p1 =
, p2 = −
sono i parametri da stimare.
Kt
Kt
• Considerare solo i dati compresi nell’intervallo di linearità.
• Per ogni j-esima acquisizione si può scrivere:
zj = p1 · vz,j + p2
e quindi, riunendo tutti i dati acquisiti in forma matriciale, si ottiene:




z1
vz,1 1



  z2 
 vz,2 1 
p
1
 . = .
.. 
 . 
 .
· p
2
 . 
 .
. 
vz,N 1
zN
1
p2
e vo = − , ricavare la stima di Kt e vo a partire dalle stime dei
p1
p1
parametri p ottenute col metodo dei minimi quadrati.
• Osservando che Kt =
3
4. Identificazione dei parametri dell’elettromagnete
Si consideri il modello dinamico del levitatore:
..
Mz
= Mg − F
K m i2 + K o
F =
z2
Si misuri il valore della massa M (per esempio, tramite pesata). Per stimare i parametri Km e
Ko , si consideri il levitatore in condizioni di equilibrio:
i = i,
2
..
=⇒ z = 0
z=z
Km i + Ko
Mg =
z2
=⇒
Le stime dei parametri Km e Ko possono essere ottenute dalle misure di z e i applicando la
seguente procedura.
• Collegare l’uscita “Command OUT” con l’ingresso “Command IN”. Tale collegamento permette di stabilizzare, tramite un controllore interno, il levitatore attorno ad una
2
posizione z =
Km i + K0
, assegnando la corrente i tramite la manopola “Feedforward”.
Mg
• Posizionare con delicatezza la sfera in prossimità della posizione di equilibrio agendo eventualmente ancora sulla manopola “Feedforward” per garantire una corrente i sufficiente
a sostenere la pallina.
• Considerare diversi valori di i.
ATTENZIONE: la corrente deve essere ricavata dalla tensione vi disponibile all’uscita “Current sense”, come descritto nella parte relativa all’identificazione dei parametri
dell’attuatore.
• Per ogni valore di i misurare il valore di vz (uscita “Position sense”) e calcolare il corrispondente valore di posizione in base alla caratteristica tensione-posizione:
z=
1
(vz − vo )
Kt
utilizzando i valori di Kt e vo precedentemente stimati.
• Riportare i dati in MATLAB.
• Per ogni j-esima acquisizione si può scrivere:
2
M gz 2j = Km ij + Ko
e quindi, riunendo tutti i dati acquisiti in forma matriciale, si ottiene:



Mg 


z 21
z 22
..
.
z 2N






=





2
i1
2
i2
..
.
2
1
1
..
.
iN 1

 
Km

·

Ko

• Ricavare la stima dei parametri Km e Ko con il metodo dei minimi quadrati.
4