Pagina 1 di 1

Verifica della specifica sul tempo di assestamento in matlab

MessaggioInviato: 2 dic 2014, 20:21
da Vibia
Buonasera,

Vi scrivo perché ero alle prese con la progettazione di un controllore per il processo
G(s)=\frac{5}{(s+1)(1+0.1s)}

che soddisfi le seguenti specifiche:
1)e_\infty=0 per l'ingresso di un gradino unitario
2)t_a_1 \leq 0.8
3)s% \leq 30%
4)attenuazione di almeno 10 volte delle componenti sinusoidali del rumore n(t) con pulsazione mag-
giore di\omega\geq 100 rad/sec.

Ho progettato questo controllore

R(s)=\frac{1+10s}{s(1+50s)}

Sono andato a calcolare F(s) e ho dato il comando step(F) su Matlab e penso di aver soddisfatto le specifiche, soltato che ho alcuni dubbi sulla seconda perché sul luogo delle radici di L(s) ho visto che il baricentro è un pelo più a destra di \sigma \geq 5.75 e quindi non so se la specifica l'ho soddisfatta perché non so come verificarla osservando i risultati di matlab.

Per ovviare questo problema avevo progettato un altro regolatore aggiuntivo a quello precedente del tipo


R'(s)=\frac{1+s/10}{1+s/15}


Tutto questo sproloquio per chiedervi come faccio dal plot del comando step(F) a vedere se questa specifica l'ho soddisfatta?






Grazie in anticipo per le risposte

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 4 dic 2014, 13:02
da dimaios
Per le caratteristiche della risposta al gradino utilizza questo.
Leggi anche questo.

Una alternativa più generale consiste nell'utilizzo del SISO design tool.

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 4 dic 2014, 18:39
da Vibia
Ok grazie mille...non ho pensato di andare a vedere l'help di step, la prossima volta andrò a consultare il sito perché dal matlab non riesco a capire bene digitando help e il comando che non mi è chiaro!

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 5 dic 2014, 12:17
da Vibia
Ciao volevo chiederti conferma di alcune cose perché ho una piccola incertezza

in un altro esercizio che stavo risolvendo ho avuto come specifiche

t_a_1\leq 0.8

s\% \leq 30\%


ho ottenuto dalla simulazione

Codice: Seleziona tutto
RiseTime: 0.1155
    SettlingTime: 3.5351
     SettlingMin: 0.6976
     SettlingMax: 1.2368
       Overshoot: 23.6805
      Undershoot: 0
            Peak: 1.2368
        PeakTime: 0.6332


ho soddisfatto la specifica sulla sovraelongazione perché ho circa il 20% mentre il tempo di assestamento non l'ho soddisfatto perché ho "settlingmax= 1.23682 e la specifica chiedeva che fosse inferiore a 0.8s

è giusta come analisi dei risultati ottenuti?

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 5 dic 2014, 12:40
da dimaios
Attenzione che SettlingTime è il tempo di assestamento mentre SettlingMin e SettlingMax sono i valori minimo e massimo all'interno dell'intervallo dopo il tempo di assestamento.


Per vedere velocementa la cosa esegui il seguente comando
Codice: Seleziona tutto
ltiview( sys )


Dove sys è il tuo sistema da analizzare.
Con il tasto destro scegli Characteristics -> Setting time.

Vedrai subito visualizzate le tre grandezze sul grafico.

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 5 dic 2014, 12:55
da Vibia
Ok adesso mi sono più chiari i paramentri, grazie mille!

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 5 dic 2014, 20:12
da Vibia
scusami, ma non riesco a capire perché certe volte mi visualizza i paramentri mentre altre volte non fa nulla...sbaglio io qualcosa?

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 6 dic 2014, 1:19
da dimaios
Dovrei vedere la funzione di trasferimento nello specifico. Pubblica un caso dove non viene visualizzato correttamente il risultato.

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 6 dic 2014, 15:08
da Vibia
Ok grazie mille, per risparmiarti tempo ti incollo il codice di matlab che ho sviluppato

Codice: Seleziona tutto
% % 1)Errore a regime nullo con ingresso un gradino
% % 2)t_a_1<=1.1
% % 3)s<=40%


s=tf('s')

G=5/((s+1)*(0.1*s+1))

G=zpk(G)
%Soddisfo la specifica sull'errore a regime
R1=1/s

L1=G*R1
%Studio l'andamento di L1 con un PI
margin(L1)

%Progetto Rete correttrice
%dalle specifiche su t.a e sovraelongazione ottengo w_c>8.36

tau=6/9
m=32

R2= (1+s*tau)/(1+s*tau/m)
L2=L1*R2
margin(L2)

%Fisso la pulsazione critica in 9
[ma,phi]=bode(L2,9)

L3=L2/ma

margin(L3)
%Valuto la risposta al gradino
F1=L3/(1+L3)

step(F1)
ltiview(F1)

%Progetto con LDR
L1=zpk(L1)

R3=(s+1)/(1+s/100)

L4=0.66*L1*R3

F2=L4/(1+L4)

step(F2,5)
ltiview(F2)



Comunque se non me li fa visualizzare sul plot posso sempre andare a vedere il settlingtime e vedere se soddisfo la specifica no?

Re: Verifica della specifica sul tempo di assestamento in ma

MessaggioInviato: 9 dic 2014, 12:40
da Vibia
ho risolto grazie lo stesso O_/