La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

SOSPENSIONI AUTOBUS Esempio di controllo digitale utilizzando il metodo delle variabili di stato.

Presentazioni simili


Presentazione sul tema: "SOSPENSIONI AUTOBUS Esempio di controllo digitale utilizzando il metodo delle variabili di stato."— Transcript della presentazione:

1 SOSPENSIONI AUTOBUS Esempio di controllo digitale utilizzando il metodo delle variabili di stato

2 Descrizione del sistema L’obiettivo di questo esempio è quello di progettare un sistema di controllo automatico di una delle quattro sospensioni di un autobus. Lo schema del sistema è mostrato in figura: massa autobus(m1) = 2500 kg, massa sospensioni (m2) = 320 kg, costante elastica della sospensione(k1) = 80,000 N/m, costante elastica del pneumatico(k2) = 500,000 N/m, coefficiente di smorzamento della sospensione (b1) = 350 Ns/m. coefficiente di smorzamento del pneumatico(b2) = 15,020 Ns/m. Disturbo(w)= variazioni del manto stradale Forza di controllo(u) = forza fornita dal controllore che si vuole progettare.

3 Specifiche di progetto Quando l’autobus incontra variazioni del manto stradale, quali buche, avvallamenti, etc., non deve subire grosse oscillazioni e queste devono essere smorzate velocemente. Dal momento che la distanza X1-W è difficilmente misurabile e la deformazione del pneumatico (X2-W) è trascurabile, supporremo X1-W uguale a X1-X2 e questa sarà l’uscita del nostro problema. La variazione del manto stradale (W) verrà simulata con un ingresso a gradino; Progettare un controllore in retroazione con le seguenti caratteristiche: L’uscita deve avere una sovraelongazione minore del 5%; Il tempo di assestamento deve essere inferiore a 5 secondi.

4 Equazioni dinamiche Applicando le leggi di Newton al sistema otteniamo le seguenti equazioni dinamiche: che possono essere espresse in forma di variabili di stato sotto questa forma: Per vedere i passaggi intermedi cliccare qui…

5 Inserimento sistema in Matlab Inseriamo ora il nostro sistema in forma di variabili di stato in Matlab: >>m1=2500; >>m2=320; >>k1 = 80000; >>k2 = 500000; >>b1 = 350; >>b2 = 15020; >>A=[0 1 0 0; -(b1*b2)/(m1*m2) 0 ((b1/m1)*((b1/m1)+(b1/m2)+(b2/m2)))-(k1/m1) -(b1/m1); b2/m2 0 - ((b1/m1)+(b1/m2)+(b2/m2)) 1; k2/m2 0 -((k1/m1)+(k1/m2)+(k2/m2)) 0]; >>B=[0 0; 1/m1 (b1*b2)/(m1*m2); 0 -(b2/m2); (1/m1)+(1/m2) - (k2/m2)]; >>C=[0 0 1 0]; >>D=[0 0];

6 Analisi in anello aperto(1) La risposta al gradino unitario in anello aperto senza nessun controllo in retroazione, applicato all’ingresso di controllo u, si può ricavare con Matlab richiamando la seguente istruzione: >>step(A, B, C, D, 1) Il quinto argomento della funzione step permette di specificare l’ingresso al quale applicare il gradino. In questo caso si ha quindi:  u(t) = sca(t)  w(t) = 0

7 Analisi in anello aperto(2) La risposta al gradino di ampiezza 0.1 (10 cm, come richiesto dalle specifiche) in anello aperto senza nessun controllo in retroazione, applicato all’ingresso di disturbo w, si può ricavare con Matlab richiamando la seguente istruzione: >>step(A, 0.1*B, C, D, 2) In questo caso si ha invece:  u(t) = 0  w(t) = 0.1*sca(t)

8 Analisi in anello aperto(3) Entrambe le risposte hanno un tempo di assestamento troppo elevato. In particolare il grande contraccolpo in seguito all’impatto e le continue oscillazioni potrebbero danneggiare le sospensioni. E’ necessario quindi aggiungere al sistema un controllore in retroazione per migliorare le prestazioni.

9 Funzioni di trasferimento(1) Calcoliamo ora le funzioni di trasferimento dei singoli blocchi del sistema retroazionato, sfruttando la funzione del Matlab ss2tf, che riceve in ingresso le matrici del sistema in variabili di stato e restituisce numeratore e denominatore della FdT. Utilizziamo la seguente nomenclatura:

10 Funzioni di trasferimento(2) Con semplici passaggi è possibile ottenere le funzioni di trasferimento dei singoli blocchi: >> [nump,denp]=ss2tf(A,0.1*B, C, D, 1); >> printsys(nump,denp) num/den = 0.0003525 s^2 + 0.0018775 s + 0.0625 ----------------------------------------------------- s^4 + 48.1713 s^3 + 1851.0712 s^2 + 1720.75 s + 50000 >> [num1,den1]=ss2tf(A,0.1*B,C,D,2); >> % Essendo denl=denp => FdTf=numl/nump >> numf=num1; >> denf=nump; >> printsys(numf,denf) num/den = -4.6938 s^3 - 156.25 s^2 - 1.5234e-011 s + 2.11e-010 ---------------------------------------------------- 0.0003525 s^2 + 0.0018775 s + 0.0625

11 Scelta del tempo di campionamento(1) Il primo passo nella progettazione del controllore digitale è quello di convertire il sistema tempo continuo nel suo equivalente discreto. Prima di tutto è necessario decidere un tempo di campionamento T appropriato. In questo esempio, la scelta del tempo di campionamento è molto importante, dato che un gradino nel manto stradale influenza molto velocemente l’uscita. Fisicamente, accade che il manto stradale solleva improvvisamente la ruota, comprimendo la molla e lo smorzatore. Dato che la massa della sospensione è relativamente bassa e la molla è sufficientemente rigida, la massa della sospensione si solleva velocemente, aumentando X2 quasi istantaneamente. Dato che il controllore può vedere l’effetto del disturbo solo dopo un periodo di campionamento completo, dobbiamo scegliere un tempo di campionamento piccolo abbastanza, così che l’output non superi il 5% richiesto, in un periodo di campionamento. Dobbiamo quindi analizzare accuratamente la fase iniziale della risposta al gradino. Come visto nei lucidi precedenti, questa diventa negativa velocemente e successivamente inizia ad oscillare. Simuleremo solo la fase iniziale della risposta, considerando come intervallo temporale di interesse il range [0,0.005].

12 Scelta del tempo di campionamento(2) Controlliamo quindi la risposta al gradino in w nell’intervallo [0,0.005]: >>step(A,0.1*B,C,D,2,0:0.0001:.005); Questo grafico mostra che la molla, K1, si comprime molto velocemente e eccede il requisito di progetto di 5 mm in risposta ad un gradino di ampiezza 10 cm dopo solo poco più di 0.001 sec. Setteremo quindi T=.0005s per dar modo al controllore di rispondere.

13 Conversione da tempo continuo a tempo discreto Scelto il tempo di campionamento, possiamo convertire l’impianto nel tempo discreto. L’istruzione del Matlab da utilizzare è c2dm, che consente di passare dal modello in variabili di stato A,B,C,D tempo continuo a quello tempo discreto Ad,Bd,Cd,Dd. Come circuito di mantenimento useremo lo Zero Order Hold. >>T=.0005; >>[Ad Bd Cd Dd]=c2dm(A,B,C,D,T,'zoh') Ad = 1 0.0005 -3.1263e-006 -1.8022e-008 -0.0034605 1 -0.012444 -7.3126e-005 0.02338 5.8525e-006 0.97598 0.00049399 0.77045 0.00019351 -0.91116 0.99977 Bd = 4.9989e-011 8.5058e-007 1.9994e-007 0.0034605 4.3748e-010 -0.02338 1.7624e-006 -0.77045 Cd = 0 0 1 0 Dd = 0 0

14 Aggiungere un integratore(1) Per portare la risposta a regime a zero aggiungiamo un integratore in serie all’impianto. Per fare ciò usiamo l’istruzione del Matlab series, che riceve in ingresso le matrici dei due sistemi e restituisce le matrici risultanti dal collegamento serie. Un integratore in tempo discreto può essere rappresentato come un’approssimazione dell’integrazione su ogni periodo di campionamento nel seguente modo:

15 Aggiungere un integratore(2) Scriviamo il nuovo sistema in Matlab e calcoliamo il sistema serie: >>Ai=1; >>Bi=1; >>Ci=T; >>Di=T/2; >>[Ada,Bda,Cda,Dda]=series(Ad,Bd,Cd,Dd,Ai,Bi,Ci,Di) Ada = 1 0 0 1 0 0 1 0.0005 -3.1263e-006 -1.8022e-008 0 -0.0034605 1 -0.012444 -7.3126e-005 0 0.02338 5.8525e-006 0.97598 0.00049399 0 0.77045 0.00019351 -0.91116 0.99977 Bda = 0 0 4.9989e-011 8.5058e-007 1.9994e-007 0.0034605 4.3748e-010 -0.02338 1.7624e-006 -0.77045 Cda = 0.0005 0 0 0.00025 0 Dda = 0 0

16 Aggiungere un integratore(3) Dobbiamo ora riportare la matrice di uscita forma originale, dato che il Matlab l’ha trasformata nella sua forma integrata: >>Cda=[Cd 0] Cda = 0 0 1 0 0

17 Progettare il controllore(1) Dobbiamo prima di tutto decidere dove piazzare i poli in anello chiuso. Dato che vogliamo riuscire a piazzare tutti e 5 i poli in anello chiuso, dobbiamo essere molto selettivi su dove localizzarli. In particolare, possiamo piazzarli di modo da cancellare tutti gli zeri dell’impianto, di modo che produca la risposta desiderata. Per prima cosa dobbiamo trovare gli zeri dell’impianto calcolando le radici del numeratore della FdT: >>[num,den]=ss2tf(Ad,Bd,Cd,Dd,1); >>zeros=roots(num) zeros = -0.99288 0.99865 + 0.0064987i 0.99865 - 0.0064987i Selezioneremo questi zeri come poli ad anello chiuso; un altro lo sceglieremo a 0.9992, dato che con tale polo si stabilizza in approssimativamente 5 sec.. L’ultimo polo lo selezioneremo in 0.2, dato che è sufficientemente veloce da essere insignificante.

18 Progettare il controllore(2) Useremo il comando place per calcolare la matrice di guadagno, K, che ci darà, in retroazione, i poli ad anello chiuso desiderati. >> p1=zeros(1); >> p2=zeros(2); >> p3=zeros(3); >> p4=.9992; >> p5=.2; >> K=place(Ada,Bda*[1;0],[p1 p2 p3 p4 p5]) K = 9.1004e+005 4.7679e+007 2.2549e+005 1.0905e+009 1.1051e+006

19 Simulazione della risposta in anello chiuso Usiamo il comando dstep per simulare la risposta al gradino in anello chiuso. Dato che moltiplicare il vettore degli stati per K nel nostro controllore restituisce solo il segnale u, dobbiamo aggiungere una riga di zeri alla matrice K moltiplicandola per [1 0]’ : >>yout=dstep( Ada-Bda*[1 0]'*K,-.1*Bda,Cda,-.1*Dda,2,10001);dstep >>t=0:.0005:5; >>stairs(t,yout);

20 Conclusioni Come possiamo notare dalla figura precedente, viene rispettato il requisito riguardante il Settle-Time, mentre non viene raggiunto quello inerente la sovraelongazione, ciò è probabilmente dovuto al fatto che le cancellazioni polo-zero non avvengono. Per poter rispettare tale requisito è necessario affrontare il problema utilizzando altre tecniche, ad esempio utilizzando controllori non-lineari. Si lascia al lettore il compito di approfondire il problema. E’ stato comunque utile osservare la procedura da seguire per implementare un controllore digitale: Descrizione del sistema fisico; Individuazione dei requisiti richiesti all’impianto; Creazione di un modello matematico; Analisi in anella aperto; Discretizzazione del sistema con conseguente scelta del Tempo di campionamento; Progettazione del controllore; Verifica del raggiungimento dei requisiti.

21 Forma in variabili di stato Riportiamo qui i passaggi per ricavare la forma in variabili di stato a partire dalle equazioni della dinamica. Dividiamo il primo e il secondo termine per M1 e M2 rispettivamente Sostituiamo y1=x1-x2 nelle equazioni precedenti Sottraiamo la seconda equazione dalla prima Integriamo Chiamiamo l’integrale y2 Sostituiamo x2 = x1-y1 nell’equazione della derivata di y1 Infine sostituiamo la derivata di y1 nell’equazione della derivata di x1 Torna …


Scaricare ppt "SOSPENSIONI AUTOBUS Esempio di controllo digitale utilizzando il metodo delle variabili di stato."

Presentazioni simili


Annunci Google