44
CAPITOLO 3:
DINAMICA SINGOLA VERTEBRA, CLOOSED LOOP E
ACCOPPIAMENTO MAGNETICO
Finora abbiamo studiato l’andamento della dinamica dei componenti della vertebra in open loop, infatti, la tensione ai motori veniva stabilita da noi a priori. Nel seguito, invece, inseriamo il controllo PWM del sistema motore più magneti. In particolare daremo un riferimento α*(t) dei magneti e controlleremo il motore (controllo PID) in modo che la posizione α(t) dei magneti segua α*(t). Considereremo anche il momento resistente, agente sui magneti, dovuto all’accoppiamento magnetico con una coppia di vertebre adiacenti.
3.1: CONTROLLO PWM
Il PWM (Pulse Width Modulation) è un tipo di modulazione analogica in cui l’informazione è codificata attraverso l’ampiezza temporale degli impulsi di segnale. Una tipica forma è quella di figura 36, dove il rapporto ton/T indica il duty cycle, cioè la percentuale di periodo (T) in cui il segnale è alto.
Figura 36: Esempio di segnale PWM. ton/T definisce il duty cycle, percentuale di periodo per cui il segnale è alto.
È usato anche, come nel nostro caso, per regolare la velocità dei motori in corrente continua. In ambiente hardware il segnale PWM è modulato in maniera
infatti, si divide il periodo in circa un migliaio di campionamenti e questi sono attivi, ovvero hanno un segnale alto.
La parte vista finora del modello rimane perfettamente valida, ciò che cambia è l’ingresso V(t) del sistema che adesso è determinato
attraverso il confronto fra l’uscita impostata dall’utente
Figura 37: Schema a blocchi del sistema con il controll
Il controllo PID (proporzionale integrativo derivativo) regola l’uscita in base a: valore dell’errore (proporzionale), valori passati dell’errore (integrativo), velocità di variazione dell’errore (derivativo), attraverso l’assegnazione di tre
Sono largamente i più usati nell’industria grazie alla loro semplicità ed efficienza nella maggior parte delle applicazioni. Risultano inefficaci in caso di cambiamento dei parametri del processo ai quali non sono in grado di adattarsi.
Nel modello in esame il controllo PID si presenta in questa forma:
MAGNETI
45
È usato anche, come nel nostro caso, per regolare la velocità dei motori in corrente continua. In ambiente hardware il segnale PWM è modulato in maniera
ide il periodo in circa un migliaio di campionamenti e questi sono attivi, ovvero hanno un segnale alto.
La parte vista finora del modello rimane perfettamente valida, ciò che cambia è del sistema che adesso è determinato dal blocco di controllo PID attraverso il confronto fra l’uscita del sistema, α(t), e la traiettoria sui magneti impostata dall’utente α*(t), confronto che genera la funzione errore
: Schema a blocchi del sistema con il controllore PID.
Il controllo PID (proporzionale integrativo derivativo) regola l’uscita in base a: valore dell’errore (proporzionale), valori passati dell’errore (integrativo), velocità di variazione dell’errore (derivativo), attraverso l’assegnazione di tre
Sono largamente i più usati nell’industria grazie alla loro semplicità ed efficienza nella maggior parte delle applicazioni. Risultano inefficaci in caso di cambiamento dei parametri del processo ai quali non sono in grado di adattarsi.
llo in esame il controllo PID si presenta in questa forma:
PID V(t) MOTORE CINEMATISMO MOTORE CINEMATISMO ESTERNO MAGNETI α(t) α*(t)
È usato anche, come nel nostro caso, per regolare la velocità dei motori in corrente continua. In ambiente hardware il segnale PWM è modulato in maniera discreta, ide il periodo in circa un migliaio di campionamenti e s’indica quanti di
La parte vista finora del modello rimane perfettamente valida, ciò che cambia è dal blocco di controllo PID e la traiettoria sui magneti che genera la funzione errore e(t).
Il controllo PID (proporzionale integrativo derivativo) regola l’uscita in base a: valore dell’errore (proporzionale), valori passati dell’errore (integrativo), velocità di variazione dell’errore (derivativo), attraverso l’assegnazione di tre parametri. Sono largamente i più usati nell’industria grazie alla loro semplicità ed efficienza nella maggior parte delle applicazioni. Risultano inefficaci in caso di cambiamento dei parametri del processo ai quali non sono in grado di adattarsi.
llo in esame il controllo PID si presenta in questa forma:
46 Dove:
• Kp, Kd e Ki sono i tre parametri di controllo.
• pwm è la quantità di campioni del segnale a tensione alta.
• e(t) è la funzione errore così definita:
α*(t) è la traiettoria di riferimento per il PID, nel nostro modello abbiamo usato una
funzione gradino, per debuggare il programma, e una funzione sinusoidale a frequenza 1 e ampiezza π/4. Poiché i parametri di controllo sono scalari positivi, la funzione errore è generalmente definita in maniera opposta a quella qui presentata, infatti, in questo caso, quando l’angolo formato dai magneti supera quello voluto, si ha un incremento della potenza in ingresso invece di una riduzione, come avviene di solito. La ragione deriva dal fatto che, mentre il confronto è fatto sulla posizione dei magneti, la tensione stabilita dal PID agisce sul motore che, ricorderemo, contro ruota rispetto ai magneti per via del cinematismo. L’uscita del blocco PID va da 0 a pwmmax (numero di sample di campionamento del
periodo del PWM, 100 nel nostro caso) e indica il tempo in cui il segnale PWM è diverso da zero (ton), il duty cycle è definito dal rapporto pwm/pwmmax. pwmmax è
un parametro molto importante, infatti, determina la fedeltà con cui viene riprodotta la condizione ideale e, più nello specifico, la capacità di modulazione del segnale PWM. Un numero di campioni troppo basso porterebbe a un controllo povero della velocità del motore, dovuto a una bassa quantità di valori distinti di accelerazione o decelerazione. Per esempio se pwmmax valesse 1, avremo tre
configurazione: massima accelerazione, accelerazione nulla, minima accelerazione. Il segno della tensione da dare al motore (±12 V) è determinato dal segno dell’errore (per come è stato qui definito). L’aggiornamento del duty cycle da parte del PID avviene all’inizio di ogni ciclo di PWM. La frequenza di PWM utilizzata è 10 kHz.
47
3.2: IMPLEMENTAZIONE CODICE CLOOSE LOOP
L’implementazione del modello a ciclo chiuso ha portato allo sviluppo di due programmi: il primo adotta un’integrazione a passo variabile (ode45), il secondo, invece, presenta un’integrazione a passo fisso, di semplice realizzazione, anche se meno accurato e meno stabile da un punto di vista numerico.
3.2.1: INTEGRAZIONE A PASSO VARIABILE
Una prima implementazione è stata basata sul metodo di integrazione ode45
descritto in precedenza. Tuttavia imporre la frequenza PWM con quest’approccio porta a un’implementazione relativamente laboriosa e, per tale motivo, la tecnica a passo fisso è stata preferita (vedi sezione 3.2.2). Impiega circa 6,5 min a girare su un notebook di ultima generazione.
In figura 39 è riportata la traiettoria sinusoidale a frequenza 1 e ampiezza 45° “inseguita” dai magneti. Sopra in figura 38 il segnale PWM corrispondente. Dove vediamo tutto blu in realtà, c’è un’elevata quantità di fronti in salita e in discesa a frequenza troppo alta perché siano apprezzati con questa risoluzione.
48
Figura 39: Traiettoria sinusoidale a frequenza 1 e ampiezza 45° (in rosso) “inseguita” dai magneti (in blu).
3.2.2: INTEGRAZIONE A PASSO FISSO
Per sopperire ai problemi precedentemente descritti abbiamo sviluppato un altro codice che non prevedesse l’uso di ode45 come metodo integrativo ma implementasse un’integrazione a passo fisso, deciso da noi a priori, che ci permettesse di controllare con precisione l’istante di aggiornamento del duty cycle. Inoltre è stata aggiunta la parte derivativa del controllo PID.
L’integrazione in questione si basa sul metodo di Eulero: Θ Θ Θ Θ Θ Θ
49
Per quel che riguarda il post-processing, abbiamo sviluppato una rootine che mette in evidenza il confronto fra la posizione di riferimento sia dei magneti (α*) sia del
motore (α*/τg) con quella attuale dei magneti a istanti successivi (vedi figura 40).
In particolare viene salvata una serie di immagini che poi può essere utilizzata facilmente per creare animazioni della dinamica in questione. Nello specifico è stato utilizzato il software (freeware) Virtual Dub a tale scopo.
Figura 40: Video che mostra: in alto la traiettoria del rotore inseguita dalla posizione attuale, in basso le corrispondenti posizioni del magnete di riferimento (traiettoria) e del magnete vero. La frequenza è ancora 1 Hz, l’ampiezza è ancora 45° (sui magneti). Gira in 1 minuto e 10 secondi in un notebook di ultima generazione.
3.3: CALIBRAZIONE COEFFICENTE D’ATTRITO
È stato sviluppato anche un programma che, a partire da dati sperimentali, trova per quale valore del coefficiente β la simulazione coincide con essi. Il codice è attualmente utilizzato per la calibrazione del modello.
50
In figura 41 i cerchi rappresentano i dati sperimentali, che indicano l’andamento dell’angolo della posizione angolare del rotore in risposta ad un gradino (a t=0,1 e di ampiezza 40°), e la linea continua rappresenta il trend finale del modello, regolabile tramite β per aderire ai dati sperimentali. Si vede come i dati ottenuti dalla simulazione con β ottimizzato seguano bene i dati sperimentali.
Figura 41: Grafico che mette in relazione il risultato ottenuto dalla simulazione con β ottimizzato e i dati sperimentali.
Gira in meno di 16 secondi su un notebook di ultima generazione.
3.4: ACCOPPIAMENTO MAGNETICO
Nella parte finale del capitolo 1 abbiamo spiegato il funzionamento dell’unità funzionale composta di una tripletta di vertebre, due passive e una attiva nel mezzo. Il moto di questo sistema è dovuto all’interazione magnetica fra i magneti affacciati di vertebre vicine e alla risposta elastica della struttura che le unisce, come vedremo meglio nel capitolo 4. Adesso, invece, analizziamo come
51
l’accoppiamento magnetico influenza la dinamica degli elementi della singola vertebra attiva.
Lo schema a blocchi del sistema è lo stesso di figura 37, quello che cambia è l’equazione di equilibrio delle forze che agiscono sul motore, che dovrà comprendere anche il momento resistente dovuto all’accoppiamento magnetico. Per una trattazione completa vedere l’Appendice A, qui riportiamo solo il risultato:
Γ Γγ ! "γ #$% ' #$% Γ 2 ) Γ
Dove MRES dx e MRES sx rappresentano il momento resistente magnetico dovuto alla
vertebra che sta rispettivamente alla destra e alla sinistra della vertebra attiva. γ è la posizione angolare del rotore (grandezza che nelle versioni precedenti veniva indicata con Θ). Definiamo anche l’orientazione (angolo 2D) delle vertebre nello spazio come in figura 42.
Figura 42: Definizione di Θ positivi. Orientazione (angolo 2D) delle vertebre nello spazio
Il valore di #$% ' #$% dipende dall’orientazione relativa fra le vertebre (indicato con ΔΘ) e dall’angolo assunto dai magneti (α) e, per determinarlo, sono state condotte simulazioni magnetiche.
52
3.4.1: SIMULAZIONE MAGNETICA
La simulazione magnetica in questione ha lo scopo di quantificare varie grandezze che hanno origine dall’accoppiamento magnetico fra le vertebre nella tripletta, tra cui, e sono quelle che ci interesseranno ai fini del presente lavoro, vi è il momento flettente che agisce sulla tripletta e il momento resistente che agisce sui magneti e si riflette sul motore.
Figura 43: Disegni delle simulazioni magnetiche in configurazione di equilibrio (a sinistra) e in flessione (a destra).
Durante la simulazione sono stati calcolati i due momenti, variando una volta l’angolo formato dai magneti (α), da 0 a 90°, in condizioni di flessione massima e di
53
equilibrio (ΔΘ nullo), e un’altra volta variando il raggio di curvatura del sistema, da 500 (vertebre quasi parallele, ΔΘ=2°) a 70 mm (massima flessione, ΔΘ=16°), per angoli dei magneti pari a 0 e 90°. Si è ottenuto così quattro curve che, per ragioni di simmetria, ci consentono di ottenere informazioni anche per quanto riguarda angoli dei magneti e flessioni negative. Le regole per costruire l’intero quadro sono le seguenti:
MOMENTO RESISTENTE MOMENTO FLETTENTE
DA α POSITIVI A
NEGATIVI Rimane invariato Cambia di segno
DA ΔΘ POSITIVI A
NEGATIVI Cambia di segno Rimane invariato
Tabella 1: Regole per ricavare il comportamento dell’accoppiamento magnetico in tutte le configurazioni.
I valori al variare di α per ΔΘ=0° li abbiamo aggiunti a posteriori in base a considerazioni fisiche, come mostrato in tabella 2, che risultano chiare visualizzando le forze magnetiche agenti nelle varie configurazioni partendo da quella di equilibrio di figura 44.
α -90° 0° 90°
MOMENTO
RESISTENTE ΔΘ=0
Mres=0
Nullo per qualsiasi Δθ ad α=-90
Mres=0
Configurazione di equilibrio, tutto nullo
Mres=0
Nullo per qualsiasi Δθ ad α=+90
MOMENTO
FLETTENTE ΔΘ=0
Mact≠0
Uguale al valore dei ΔΘ adiacenti
Mact=0
Sempre nullo per α uguale a zero
Mact≠0
Uguale al valore dei ΔΘ adiacenti Tabella 2: Specifica le motivazioni delle scelte fatte per assegnare i valori dei momenti a ΔΘ=0.
I dati così trattati sono stati poi interpolati con un apposito programma MATLAB e utilizzati per inserire nei modelli l’effetto dell’accoppiamento magnetico.
Figura 44: Rappresent
Prima di tutto carica i dati della simulazione magnetica registrati opportunamente in un file EXCEL, poi esegue l’interpolazione delle varie curve (usando la funzione
interp1) e infine adatta le matrici ottenute per sfruttarle successivi. I dati sono
studiati effettivamente nella simulazione magnetica, per durante le simulazioni dinamiche sviluppate in questa tesi. ripetizione dei valori di confine.
In figura 45-46 si vedono i risultati dell’interpolazione, cioè l’andamento del momento resistente e del momento
l’estensione del range
ci sia un aumento soprattutto all’aumentare di rispetto al piano passante per
avvenga all’aumentare di
gira in circa 10 secondi su un notebook di ultima generazione.
54
: Rappresentazione schematica della condizione di equilibrio
3.4.2: INTERPOLAZIONE
Prima di tutto carica i dati della simulazione magnetica registrati opportunamente in un file EXCEL, poi esegue l’interpolazione delle varie curve (usando la funzione
e infine adatta le matrici ottenute per sfruttarle con sucesso
successivi. I dati sono, infatti, estrapolati al di fuori del range in cui sono stati studiati effettivamente nella simulazione magnetica, per permetterne
simulazioni dinamiche sviluppate in questa tesi. ripetizione dei valori di confine.
si vedono i risultati dell’interpolazione, cioè l’andamento del momento resistente e del momento flettente in funzione di α
l’estensione del range. Si nota facilmente come nel primo caso (
ci sia un aumento soprattutto all’aumentare di α e sia presente una simmetria al piano passante per ΔΘ nullo, mentre nel secondo caso la stessa cosa avvenga all’aumentare di ΔΘ e rispetto al piano passante per α
gira in circa 10 secondi su un notebook di ultima generazione.
azione schematica della condizione di equilibrio: α=0 e Δθ=0.
Prima di tutto carica i dati della simulazione magnetica registrati opportunamente in un file EXCEL, poi esegue l’interpolazione delle varie curve (usando la funzione con sucesso nei modelli fuori del range in cui sono stati permetterne l’utilizzo La regola usata è la
si vedono i risultati dell’interpolazione, cioè l’andamento del α e ΔΘ, prima e dopo Si nota facilmente come nel primo caso (momento flettente) e sia presente una simmetria nullo, mentre nel secondo caso la stessa cosa α nullo. Il programma
55
Figura 45: Momento flettente (sopra) e momento resistente (sotto) in funzione di α e ΔΘ ottenuti dall’interpolazione.
56
Figura 46: Momento flettente (sopra) e momento resistente (sotto) in funzione di α e ΔΘ ottenuti dall’interpolazione con il range di valori esteso.
3.5:
A questo punto siamo in grado di esaurire la dinamica completa degli elementi della singola vertebra
resistente dovuto all’accoppiamento magnetico fra vertebre adiacenti Per far questo il codice, che implementa il
dell’interpolazione e ne ricava a ogni iterazione il valore del momento resistente corrispondente. Il sistema è composto dalla vertebra attiva e da una vertebra fittizia alla sua destra, fissata in una certa posizione,
non cambia durante la simulazione
Figura 47: Configurazione spaziale delle vertebre nel modello completo per la vertebra attiva. ΔΘ positivo.
Le equazioni del modello sono:
Ricordiamo che:
57
3.5: DINAMICA VERTEBRA COMPLETA
to siamo in grado di esaurire la dinamica completa degli elementi della singola vertebra, aggiungendo ai modelli MATLAB precedenti il momento resistente dovuto all’accoppiamento magnetico fra vertebre adiacenti
Per far questo il codice, che implementa il modello completo, carica i risultati dell’interpolazione e ne ricava a ogni iterazione il valore del momento resistente corrispondente. Il sistema è composto dalla vertebra attiva e da una vertebra fittizia alla sua destra, fissata in una certa posizione, che determina il
non cambia durante la simulazione (figura 47, ΔΘ positivo).
: Configurazione spaziale delle vertebre nel modello completo per la vertebra
Le equazioni del modello sono:
Ricordiamo che:
OMPLETA
to siamo in grado di esaurire la dinamica completa degli elementi aggiungendo ai modelli MATLAB precedenti il momento resistente dovuto all’accoppiamento magnetico fra vertebre adiacenti.
modello completo, carica i risultati dell’interpolazione e ne ricava a ogni iterazione il valore del momento resistente corrispondente. Il sistema è composto dalla vertebra attiva e da una vertebra che determina il ΔΘ, il quale
58
Poiché ΔΘ è fisso, si esegue un’interpolazione monodimensionale prima dei cicli di integrazione, che estrae i valori del momento al variare di α per quella determinata posizione fissata. Il vettore che si ricava viene poi nuovamente interpolato ad ogni passo di integrazione per ottenere il valore di momento resistente corrispondente alla posizione attuale dei magneti. Infine, secondo il modello, tale valore viene “riportato” sul rotore.
In post-processing viene calcolata la corrente media e la potenza media dissipata per ogni ciclo della traiettoria dei magneti. Anche per questo modello si crea un video, tipo quello di figura 40, riportato in figura 48. Si può vedere facilmente confrontandoli come stavolta il motore faccia più fatica a inseguire la traiettoria, a meno che il ΔΘ fissato non sia zero, per cui abbiamo un momento resistente magnetico nullo.
Figura 48: Video che rappresenta l’andamento del rotore e dei magneti mentre insegue la traiettoria (sinusoide a frequenza 1 e ampiezza 45° sui magneti). In basso è specificato il valore del ΔΘ: 8°.
La frequenza di PWM è 20 k
valori dei parametri di controllo sono coerenti con la nostra campionamento del segnale PWM.
campionamento che viene usata è 1000 punti per ciclo, mentre noi adottiamo una frequenza di 100 punti per ciclo per non rendere la simulazione eccessivamente lunga. Poiché tale frequenza è d
parametri di controllo
Dove pwm indica il numero di step per cui il segnale è alto in ambiente Hardware. Perciò se in hardware
uguale a 1, perché per avere la stessa potenza in ingresso al motore il numero di step di segnale alto sarà diviso per 10.
Se moltiplichiamo per 2 il valore del momento resistente simulazione del modello,
simulazione magnetica, il sistema composto dalle tre vertebre, di cui quelle passive sono poste a simmetria speculare rispetto a quella centrale
figura 49 (risultato figura 50).
Figura 49: Configurazione spaziale delle vertebre nel modello completo per la vertebra attiva con le due passive fisse. ΔΘ positivo
59
uenza di PWM è 20 kHz, come avviene nella realtà con il robot vero valori dei parametri di controllo sono coerenti con la nostra
campionamento del segnale PWM. In hardware, infatti, la frequenza di campionamento che viene usata è 1000 punti per ciclo, mentre noi adottiamo una frequenza di 100 punti per ciclo per non rendere la simulazione eccessivamente le frequenza è diminuita di un fattore 10, così dovrà essere per i parametri di controllo, in accordo con la seguente uguaglianza.
indica il numero di step per cui il segnale è alto in ambiente Hardware. Perciò se in hardware Kp è 100 e Kd è 10, noi utilizzeremo
uguale a 1, perché per avere la stessa potenza in ingresso al motore il numero di step di segnale alto sarà diviso per 10.
Se moltiplichiamo per 2 il valore del momento resistente,
simulazione del modello, stiamo simulando, per come sono stati salvati i dati della simulazione magnetica, il sistema composto dalle tre vertebre, di cui quelle passive sono poste a simmetria speculare rispetto a quella centrale
(risultato del moto del rotore rispetto al riferimento
Configurazione spaziale delle vertebre nel modello completo per la vertebra attiva con le due passive fisse. ΔΘ positivo
come avviene nella realtà con il robot vero, e i valori dei parametri di controllo sono coerenti con la nostra frequenza di In hardware, infatti, la frequenza di campionamento che viene usata è 1000 punti per ciclo, mentre noi adottiamo una frequenza di 100 punti per ciclo per non rendere la simulazione eccessivamente così dovrà essere per i in accordo con la seguente uguaglianza.
indica il numero di step per cui il segnale è alto in ambiente Hardware. è 10, noi utilizzeremo Kp uguale a 10 e Kd
uguale a 1, perché per avere la stessa potenza in ingresso al motore il numero di
, estratto durante la stiamo simulando, per come sono stati salvati i dati della simulazione magnetica, il sistema composto dalle tre vertebre, di cui quelle passive sono poste a simmetria speculare rispetto a quella centrale come mostrato in del moto del rotore rispetto al riferimento per ΔΘ pari a 8° in
60
In tutti e due i casi il motore non ha la potenza necessaria a contrastare adeguatamente l’accoppiamento magnetico, questo è consistente col fatto che stiamo impedendo alle vertebre passive di eseguire il loro moto naturale. Impedimento che porta a valori innaturali della coppia resistente, che, in realtà, non si presentano. La simulazione dura poco più di 10 minuti su un notebook di ultima generazione.
Figura 50: Grafico che mostra la traiettoria voluta (rosso) e quella ottenuta (nero) da una simulazione a tre vertebre e ΔΘ pari a 8°.