Modellizzazione, simulazione e controllo RealTime di un sistema meccanico non lineare instabile

N. Bucca, L. Daga, L. Onofri

Dipartimento di Informatica e Sistemistica

Università di Roma " La Sapienza"

Via Eudossiana 18 - 00184 ROMA

fax ++39 6 4458 5367

Email: leo@pcdeca1.ing.uniroma1.it

luca@pcdeca1.ing.uniroma1.it

 

Parole chiave: Modellizzazione, controllo robusto, osservatore dei disturbi e prototipazione rapida.

Sommario

Nella prima parte dell’articolo si presenta l’apparato meccanico preso in considerazione e due modelli del sistema. Un primo modello, di tipo lineare, sarà utilizzato per la progettazione della strategia di controllo lineare a parametri costanti. Un secondo invece, di tipo non lineare ed implementato in Simulink, sarà utilizzato per testare la strategia di controllo progettata e tiene conto delle non linearità statiche del sistema. Successivamente si presenta la strategia di controllo, la verifica di robustezza rispetto alla stabilità della strategia di controllo, i risultati della simulazione del sistema controllato ed infine i risultati sperimentali.

Introduzione

L’apparato meccanico preso in considerazione è comunemente chiamato Beam & Ball; tale sistema è instabile e presenta rilevanti fenomeni non lineari, tipici della movimentazione meccanica.

Con questo articolo si vuole indicare, attraverso la progettazione di una strategia di controllo per il sistema indicato, una metodologia di lavoro per tutte quelle applicazioni che rientrano nell'ambito della meccatronica e che sono caratterizzate da un sistema da controllare complesso in cui sono presenti rilevanti fenomeni di attrito, limitazioni strutturali e variazione dei parametri caratteristici durante il funzionamento. In tale situazione e con specifiche sul comportamento dinamico e statico del sistema controllato molto stringenti è importante disporre di un modello del sistema affidabile onde poter testare la strategia di controllo in simulazione. Inoltre è necessario avere a disposizione strumenti che permettono la prototipazione rapida del controllo alfine di ridurre il costo della sperimentazione.

In questo lavoro si analizzano soprattutto gli aspetti riguardanti l’implementazione del modello non lineare in Simulink e la prototipazione rapida utilizzando la toolbox workshop realtime. Si evidenzia altresì la potenzialità e la versatilità di MatLab e Simulink per la simulazione, il progetto della strategia di controllo e la prototipazione rapida del controllo.

Descrizione del sistema e modellizzazione

Il sistema è costituito da un’asta metallica libera di ruotare intorno al suo baricentro e da una sfera in grado di rotolare sopra l’asta. Per evitare che quest’ultima cada, la superficie superiore dell’asta è solcata in modo tale da formare un binario. Un motore in corrente continua tramite una cinghia dentata imprime la coppia necessaria per la movimentazione e il controllo dell’asta. Una telecamera, posta al disopra dell’asta, rileva la posizione della sfera con una precisione di 0.5 mm, mentre un encoder montato sul perno di rotazione dell’asta rileva la posizione angolare di quest’ultima con una precisione di 0.018 gradi.

La fig. 1 mostra la struttura del sistema con il valore dei relativi parametri. Tale sistema è non lineare, instabile e presenta rilevanti fenomeni di attrito statico e dinamico.

 

m

.025 - .27

kg

massa della sfera di gomma e di metallo

M

1.12

kg

massa dell’asta

lw

.5

m

raggio dell’asta

m

50

 

rapporto di riduzione motore-asta

b

1

Ns/m

coefficiente di attrito viscoso dell’asta

K

.001

N/m

coefficiente di elasticità della cinghia

 

Fig. 1 - Struttura del sistema meccanico e valore dei parametri meccanici

 

 

D

0.017

m

larghezza del binario

R

0.02

m

raggio della sfera

r

0.0181

m

raggio di rotolamento della sfera

l

0.49

m

braccio di applicazione della forza

{x,y}

   

sistema di riferimento relativo

{x,z}

   

sistema di riferimento inerziale

y

 

rad

angolo della sfera rispetto all’asta

a

|a|<0.26

rad

angolo dell’asta rispetto all’orizzontale

Va

|Va|<10

volt

tensione di alimentazione del motore

u(t)

2.1Va

N

forza impressa dal meccanismo di guida

 

Fig. 2 - Schematizzazione del sistema per la modellizzazione

Il sistema, tenuto conto dei vincoli cinematici, ha due gradi di libertà, per cui sono necessarie due variabili indipendenti per la formulazione del modello. Le variabili utilizzate sono la posizione della sfera x nel sistema di riferimento { x,y} e la posizione angolare dell’asta a nel sistema di riferimento {x ,z }. Il modello del sistema, formulato attraverso le equazioni di Lagrange, tiene conto sia dell’elasticità della cinghia, attraverso una molla k e uno smorzatore b, sia del reale raggio di rotolamento della sfera. La fig. 2 mostra i due sistemi di riferimento e le variabili utilizzate per la modellizzazione.

Le equazioni dinamiche che descrivono il comportamento del sistema sono:

per la sfera:

per l’asta:

 

dove Ib è il momento d’inerzia della sfera e Iw è il momento d’inerzia dell’asta.

 

Il modello non lineare del sistema nello spazio di stato, utilizzando come variabili la posizione x1 e velocità x2 della sfera e la posizione angolare x3 e la velocità angolare x4 dell’asta, è dato da:

 

x1 posizione sfera:

x2 velocità sfera:

x3 posizione angolare asta:

 

x4 velocità angolare asta:

dove:

 

 

 

Il modello lineare del sistema, necessario per progettare la strategia di controllo, è ottenuto attraverso una linearizzazione del modello intorno al punto di lavoro e con una sfera di massa m=0.15 kg pari al valore medio tra la massa della sfera di gomma e quella di metallo.

Si è considerato come punto di lavoro quello in cui la sfera è al centro dell’asta e l’asta in posizione orizzontale con le rispettive velocità nulle.

 

Pertanto il modello linearizzato del sistema risulta:

 

Implementazione del modello non lineare in Simulink

Il modello non lineare del sistema, implementato in Simulink, tiene conto anche dell’attrito statico e dinamico, del fenomeno del backlash introdotto dal meccanismo di trasmissione del moto e delle saturazioni strutturali del sistema. Questo permette di disporre di un modello il cui comportamento dinamico è molto vicino al comportamento reale del sistema; questa è una condizione necessaria per testare la validità del controllore.

Per una maggiore chiarezza di esposizione, il modello sarà presentato utilizzando una metodologia up-down con particolare attenzione alla modellizzazione del fenomeno dell’attrito secco.

Macro-blocco ASTA-SFERA

La fig. 3 mostra il macro blocco di simulazione del sistema, in cui è possibile variare la massa della sfera direttamente dalla maschera del macro blocco. La variabile d’ingresso del modello è la tensione di alimentazione del motore mentre le variabili di uscita sono la posizione angolare dell’asta e la posizione della sfera sull’asta.

In tale macro blocco si calcola il vettore di stato successivo, per integrazione, a partire dal valore dell’accelerazione della sfera e dell’asta calcolati nel macro blocco Aggiornamento delle Accelerazioni. Il valore del nuovo stato dipende anche dal risultato dei test sul raggiungimento delle limitazioni strutturali dell’asta e della sfera; tali test sono effettuati rispettivamente dal macro blocco Saturazione Asta e dal macro blocco Saturazione Sfera.

Il blocco integratore utilizzato é il reset integrator in quanto esso offre la possibilità di azzerare, al verificarsi di particolari condizioni, il valore integrato. Nel caso specifico, il blocco reset integrator é necessario per annullare la velocità in condizioni di saturazione sia dell’asta che della sfera.

Il blocco indicato con backlash tiene conto dell’omonima non linearità.

Macro-blocco AGGIORNAMENTO DELLE ACCELERAZIONI

In tale macro blocco a partire dalla posizione e velocità dell’asta, dalla posizione e velocità della sfera e dal valore della tensione di alimentazione del motore si calcolano le accelerazioni dell’asta e della sfera tenendo conto della presenza dell’attrito statico e dinamico nella movimentazione dell’asta e nel moto della sfera sull’asta. Le accelerazioni sono calcolate attraverso le equazioni di Lagrange mentre l’effetto dell’attrito rispettivamente attraverso il macro blocco Attrito Asta-Driver e Attrito Asta-Sfera.

I macro blocchi Attrito Asta-Driver e Asta-Sfera generano la coppia che deve essere sottratta al forzamento esterno agente rispettivamente sull’asta e sulla sfera in modo da simulare l’effetto dell’attrito secco. Inoltre, nel calcolo dell’accelerazione della sfera, la componente che regola l’interazione energetica dell’asta sulla sfera é posta a zero quando la posizione dell’asta é satura, poiché in tale situazione la sfera é soggetta solamente all’influenza della sua forza peso e della relativa forza di attrito.

Macro-blocco ATTRITO ASTA-DRIVER (ASTA-SFERA)

Quando l’asta é in situazione statica a causa dell’attrito statico, il macro blocco Attrito Asta-Driver genera in uscita una coppia pari a quella dovuta al forzamento esterno. In tale modo il forzamento complessivo agente sull’asta è nullo. In situazione dinamica invece, il macro blocco genera una coppia costante, corrispondente all’effetto dell’attrito dinamico, che si sottrae sempre a quella generata dal forzamento esterno. Il modello dell’attrito, mostrato nella fig. 5 come una macchina sequenziale, è stato implementato utilizzando la struttura della Sfunction. La fig. 5 mostra anche la caratteristica statica dell’attrito secco e il valore dell’attrito statico e dinamico identificato attraverso opportune prove sul sistema.

 

 

Cr

 

Coppia resistente

Cm

 

Coppia motrice

Fs-

.9 Nm

Attrito statico negativo

Fs+

1.2 Nm

Attrito statico positivo

Fd-

.6 Nm

Attrito dinamico negativo

Fd+

.8 Nm

Attrito dinamico positivo

ws

0.05 rad/sec

Velocità limite dell’attrito statico

 

Fig. 5 - Modello dell’attrito secco

 

Nella condizione iniziale lo schema di simulazione dell'attrito si trova nello stato a e rimane in tale stato fino a quando la coppia motrice non supera l'attrito statico. Se il segno della coppia motrice è positivo la macchina sequenziale transita nello stato b (se negativo nello stato e) e mantiene come coppia resistente la coppia di attrito statico fino alla velocità ws. Quando la velocità è uguale o superiore a ws la macchina transita nello stato g (d se si trovava nello stato e) e in uscita si ha la coppia resistente di attrito dinamico. Quando la velocità transita nello zero la macchina testa la coppia motrice; se questa ha un valore superiore alla coppia di attrito dinamico negativa transita nello stato d invertendo la coppia di attrito dinamico (o nello stato g se precedentemente era nello stato d). Se la coppia motrice durante il transito nella velocità zero è minore della coppia di attrito dinamico positiva e negativa allora la macchina transita nello stato iniziale a compensando la coppia motrice in ingresso all'integratore. Il test sulla velocità a zero non viene fatto sul valore zero ma su un campione della velocità negativo rispetto al segno della velocità di provenienza (questo per evidenti ragioni numeriche). Minore è il passo di calcolo, minore è l'errore generato nella commutazione della macchina dovuto al test sulla velocità.

Con la stessa tecnica è realizzato il macro blocco Attrito Asta-Driver. Sia il valore dell’attrito statico che quello dinamico è stato identificato attraverso opportune prove sul sistema. La tabella seguente mostra il valore dell’angolo limite dell’asta oltre il quale la sfera si mette in movimento con la relativa componente attiva della forza peso corrispondente al valore dell’attrito statico.

Massa sfera

Angolo limite

Fp= mgsin(a’) (forza attiva)

.025 Kg

.0017 rad

.0042 N

.27 Kg

.0010 rad

.026 N

Macro-blocco SATURAZIONE ASTA (SFERA)

Il test sulla condizione di saturazione si basa sul confronto tra la posizione corrente e la posizione limite raggiungibile rispettivamente per l’asta e per la sfera.

Quando la posizione angolare dell’asta è in condizione di saturazione la sua velocità angolare viene annullata e deve rimanere nulla finché non si esce da questa condizione. Questo accade se e solo se il forzamento complessivo imprime all’asta un’accelerazione di verso contrario a quello dell’angolo di saturazione.

Il forzamento complessivo é dato dalla risultante tra il forzamento esterno, le forze dissipative in gioco (attrito del meccanismo di guida, ecc.) e la forza peso della sfera. Naturalmente, l’ingresso in saturazione in fase di decelerazione, se non opportunamente testato, potrebbe creare problemi; infatti in questa situazione l’accelerazione dell’asta ha segno contrario al verso di saturazione e dal test non risulterebbe l’ingresso in saturazione.

Lo schema del macro blocco Saturazione Asta, mostrato in fig. 6, risponde a tutte le possibili situazioni.

Le due uscite hanno le seguenti funzionalità:

 

uscita 1:

Segnala al macro blocco Aggiornamento delle Accelerazioni quando l’asta é in condizione di saturazione. In tale situazione il calcolo dell’accelerazione dell’asta e della sfera é comunque effettuato ma il contributo sull’accelerazione della sfera è annullato.

uscita 2:

Segnala al reset integrator la saturazione dell’asta. In tale situazione l’integratore é azzerato (reset).

 

Quanto é stato detto sulla saturazione dell’asta vale anche per la sfera, con il dovuto cambiamento delle variabili d’ingresso al macro blocco e dei parametri. La realizzazione del macro blocco Saturazione Sfera é analoga a quella del macro blocco Saturazione Asta.

Simulazione del sistema

La fig. 7 mostra l’andamento della posizione, della velocità e dell’accelerazione dell’asta e della sfera ottenuti dalla simulazione del modello utilizzando il metodo di integrazione rk5 ed un passo di simulazione Ts=0.001 s.

Quando la posizione della sfera e dell’asta é satura, le rispettive velocità si annullano mentre l’accelerazione continua ad essere calcolata.

Nella situazione in cui il contributo della sfera al forzamento complessivo sull’asta è opposto al forzamento esterno, il movimento angolare dell’asta viene frenato in misura proporzionale alla massa della sfera. Situazione analoga ma opposta si verifica se la forza peso della sfera ed il forzamento esterno sono concordi; in questo caso il forzamento complessivo sull’asta é maggiore del forzamento esterno. Quando la posizione angolare dell’asta è satura, l’unico forzamento sulla sfera è quello gravitazionale; in questa situazione l’accelerazione della sfera resta costante finché l’asta non esce dalla saturazione.

L’effetto prodotto dalla presenza di attrito statico e dinamico tra l’asta ed il meccanismo di guida si evidenzia sull’accelerazione angolare dell’asta. In situazione dinamica, si rileva una riduzione del forzamento complessivo mentre in situazione statica la differenza è ancora più marcata perché l’asta non varia il suo stato di quiete finché il forzamento complessivo non supera il valore dell’attrito statico.

Progetto della modalità di controllo

L’obiettivo da raggiungere con il controllo è quello di posizionare la sfera assicurando la robusta stabilità del sistema controllato al variare della massa della sfera, la qualità della risposta dinamica e la reiezione al disturbo di coppia.

Il sistema è stato controllato attraverso retroazione dallo stato come proposto in [1]; questo è possibile in quanto il sistema è controllabile. Il progetto del controllore equivale a determinare una matrice di controllo F tale da imporre al sistema a ciclo chiuso il comportamento dinamico desiderato. L’allocazione dei poli è stata fatta considerando la dinamica e i limiti di saturazione dell’attuatore; pertanto si sono scelti i seguenti autovalori: l1=-2, l2=-5, l3=-15, l4=-15.

La matrice F ed il prefiltro V corrispondenti risultano essere: F=[100 81 130 11] e V=107.

Non disponendo della misura diretta della velocità della sfera e dell’asta è stato necessario progettare un osservatore dello stato per ricostruire le due variabili di stato mancanti; questo è possibile in quanto il sistema è osservabile.

Con riferimento alla fig. 10, le matrici dell’osservatore ridotto dello stato risultano:

 

 

 

Dato il rilevante effetto dell’attrito sul comportamento del sistema è stato necessario effettuare una compensazione di tale non linearità; questo è stato ottenuto attraverso un osservatore della coppia di disturbo. Infatti, il comportamento dell’attrito può essere rappresentato attraverso un disturbo di coppia Ud con l’andamento mostrato nella fig. 9 in cui non sono noti sia il valore dell’ampiezza che gli istanti di tempo in cui cambia valore.

Fig. 9 - Andamento della coppia di disturbo considerata

 

In questo modo, il segnale di disturbo può essere interpretato come la soluzione dell’equazione differenziale omogenea: con condizione iniziale random. Le matrici del modello del disturbo diventano allora: ; ; . Il modello del sistema esteso formato dal modello del sistema e dal modello del disturbo è dato da:

 

 

Con riferimento alla fig. 10 le matrici dell’osservatore del disturbo risultano:

 

 

Analisi della robustezza

La necessità di regolare in posizione sfere di masse diverse impone al controllore, progettato in riferimento ad una sfera nominale, di essere robusto rispetto alle variazioni di questo parametro.

Le matrici di stato, calcolate rispetto alla sfera nominale, subiscono nel confronto con le matrici di stato calcolate rispetto alle diverse sfere le seguenti variazioni:

 

 

dove i segni superiori sono riferiti alle variazioni rispetto alla sfera di metallo mentre quelli inferiori rispetto a quella di gomma.

Si può notare che con una precisione degli elementi della matrice di stato alla quarta cifra decimale, il rango della matrice dinamica è unitario; dunque è possibile scrivere:

 

 

DA= ndDA(2,:)

 

Db= ndDb(2)

 

 

con:

 

 

Questa formulazione permette di ridurre ad uno il numero degli elementi della matrice delle incertezze. Lo studio della funzione di trasferimento ingresso uscita Q(s) conferma la stabilità robusta del controllore rispetto alla variazione della massa della sfera considerata. La fig. 11 mostra la verifica della robustezza nella stabilità del controllore.

Descrizione del controllo real-time

Per la prototipazione della strategia di controllo è stata usata la toolbox workshop realtime di Simulink. Tale toolbox permette di generare file eseguibili realtime in ambiente DOS per una qualsiasi scheda di interfaccia, a partire direttamente dallo schema di simulazione. In questo lavoro si è utilizzata una semplice scheda I/O per la quale si è sviluppato un apposito driver. Con questa toolbox è possibile inoltre generare codice realtime per applicazioni in ambiente WxWorks e dSPACE utilizzando opportuni crosscompilatori; si può tuttavia utilizzare la toolbox anche per ambienti di sviluppo differenti. In ambiente DOS l’interrupt di campionamento viene generato attraverso il contatore/timer 8254 presente nella motherboard; con tale timer il periodo di campionamento può andare da 0.056 a 2.510-6S. Esiste anche la possibilità di generare l’interrupt attraverso un contatore/timer esterno.

Il driver per la scheda I/0 è stato realizzato in linguaggio C utilizzando la struttura della Sfunction e le funzioni libreria fornite con la scheda di acquisizione. Successivamente è stato compilato in un file mex utilizzando il compilatore di WatCom ed in fine convertito in un blocco Simulink ed opportunamente mascherato come mostrato in fig. 12.

Questo ha permesso di unire la fase di simulazione con la fase di sperimentazione. Infatti, sostituito nello schema di simulazione l’oggetto contenente il modello del sistema con l’oggetto contenente il driver della scheda di acquisizione, si è ottenuto il codice realtime semplicemente cliccando sul comando "Generate and building Real-time" presente nella finestra "Code" della barra comandi Simulink. Tale comando genera prima il codice C del controllore, visibile all’utente, e successivamente il codice realtime.

Utilizzando gli algoritmi di integrazione già presenti nel Simulink si può implementare la strategia di controllo direttamente nella variabile continua "s", svincolando cosi’ il controllore dalla discretizzazione nella fase di prototipazione,. Questa tecnica permette un rapido sviluppo del software realtime anche con strategie di controllo molto complesse di tipo lineare e non lineare. La grande versatilità della toolbox utilizzata è sicuramente un vero strumento innovativo di basso costo ed elevate prestazioni per la prototipazione veloce ed economica.

La fig. 12 mostra lo schema del controllore e la maschera del driver. Nell’implementazione del driver è stato lasciato parametrico il valore dell’indirizzo della porta e il tempo di campionamento.

Le fig. 13a e 13b mostrano la risposta indiciale sperimentale e di simulazione del sistema controllato al variare della massa della sfera. Sono visibili, nella risposta sperimentale, sporadiche letture errate della posizione della sfera, alle quali il controllo si mostra molto sensibile.

Conclusioni

I risultati sperimentali e di simulazione confermano la validità del modello non lineare anche se le risposte indiciali presentano delle differenze. Tali differenze sono dovute al fatto che l’attrito secco presente nella movimentazione dell’asta ha valori differenti a seconda della posizione di quest’ultima. Nel modello dell’attrito si considera invece un valore di attrito statico e dinamico costante al variare della posizione dell’asta e precisamente quello relativo alla posizione orizzontale. Un miglioramento può essere apportato mappando l’attrito secco rispetto alla posizione dell’asta e riportando tale mappa negli stati del modello dell’attrito. Il lavoro comunque mostra la validità della metodologia proposta per il progetto della strategia di controllo per un sistema complesso e la verifica di validità del controllore in simulazione; inoltre l’utilizzo della prototipazione rapida permette di ridurre notevolmente i tempi di implementazione del controllore e conseguentemente anche i costi.

Pertanto quando si deve progettare una strategia di controllo per un sistema complesso, come quello preso in considerazione in questo lavoro, è necessario:

  • definire un modello molto accurato del sistema complesso in Simulink ed in particolare dei fenomeni non lineari quali ad esempio: attrito secco, backlash, saturazioni, ecc.;
  • progettare un compensatore dei disturbi e dei fenomeni non lineari;
  • progettare la strategia di controllo sul modello lineare del sistema utilizzando le toolboxes del MatLab finalizzate a tale scopo e verificare la robustezza del controllore;
  • verificare la validità della strategia di controllo attraverso il modello non lineare;
  • implementare il controllore utilizzando la prototipazione rapida attraverso la toolbox RealTime Workshop.

Bibliografia

[ 1] Manuale del sistema Beam&Ball.

[ 2] MATLAB User’s Guide, The MathWorks, Inc.

[ 3] SIMULINK User’s Guide, The MathWorks, Inc.

[ 4] G. Cristadoro, A. De Carli, L. Onofri: "A robust control strategy for an unstable mechanical system" Japan, 4th Int. Workshop on Advanced Motion Control, 1996, pag. 488.

[ 5] A. De Carli, L. Onofri: "A benchmark example to qualify a control strategy for motion control" Eindhoven, 1996

[ 6] J.C. Doyle: "Analysis of Feedback System with Structured Uncertainties" IEEE, Nov. 1992

[ 7] R.Y. Chiang, M.G. Safonov: "Modern Robust Control Theory" USC,1988

[ 8] D.G. Luenberger: "Introduction to Dinamic System" John Wiley & Sons, New York, 1979

[ 9] L. Meirovith: "Methods of Analytical Dynamics" McGraw-Hill inc., New York 1970

[10] B. Kuo: "Automatic control system" Prentice Hall.