[Controlli Automatici] Evoluzione libera di un sistema con matlab/comando initial

ansawo
Salve, sto studiando per fondamenti di automatica/controlli automatici e mi servirebbe un piccolo ragguaglio su matlab

per non parlare in astratto espongo il mio problema.

http://www.centropiaggio.unipi.it/sites ... 0221_0.pdf

questo è l'esercizio intero. io sono al punto in cui chiede di far i grafici dell'evoluzione libera, cioè dei suoi modi propri, punto E

cercando un po sulla rete ho trovato che ciò si può fare agilmente con matlab con il comando initial, ma dalla documentazione data nell'help non capisco molto bene come funziona, e poi vorrei sapere come separare i due grafici dei due modi propri, cioè come fa il prof nella soluzione che è sotto.

ringrazio in anticipo per ogni aiuto

Risposte
D4lF4zZI0
Provo ad aiutarti. Avendo le quattro matrici A,B,C e D che definiscono il sistema in termini di modello isu, ricostruisci il sistema con il codice sys=ss(A,B,C,D).
Fatto questo, devi definire il vettore condizione iniziale ( ad esempio $x_0=[...]$; ) e devi definire l'intervallo di tempo di osservazione ( ad esempio $t=0:1e^(-3):t_f$ ).
Infine lanci il comando [y,t]=initial(sys,x_0,t), il quale ti salva l'uscita $y$ e l'intervallo di tempo $t$ in array e infine ne fai il plot

ansawo
è però così ottengo sempre la somma dei due modi propri. mi garberebbe avere invece avere le due sinusoidi in due grafici differenti. potrei mettermi a fare l'analisi modale con autovalori e autovettori...ma lo vedo un percorso lungo e tortuoso

D4lF4zZI0
giusto per curiosità ( visto che non mi va di scrivere le matrici in matlab ), potresti postare i grafici come vengono a te?

ansawo
voilà

D4lF4zZI0
Mmm..sei sicuro che faccia la somma dei modi proprio? In ogni caso, che dimensione ha la variabile y?

ansawo
bah vedendo la soluzione ho ipotizzato così in quanto che sia la somma di due sinusoidi mi pare certo. la y sono radianti

D4lF4zZI0
Non intendevo questo, lancia il comando size(y) e dimmi che fornisce matlab

ansawo
506 1

ho lanciato il comando initial senza specificare niente sui tempi, nel senso non ho dato un vettore dei tempi o dato un tempo di campionamento

D4lF4zZI0
Questo dimostra che il vettore in uscita è un vettore che ha 506 righe e 1 colonna.
Ti consiglio di ricontrollare le cose perchè così com'è ora risulta che il sistema abbia un unico modo

ansawo
strano però perchè le matrici A B C coincidono con la soluzione e A ha due autovalori distinti...bah...grazie dell'aiuto!!

ultima faccenda. se tutto fosse apposto, il comando initial mi darebbe quindi i due modi separati?

D4lF4zZI0
No. I modi vengono tutti salvati nell'array y ( in forma di colonna o di righe ). Per prenderne uno solo alla volta ( supponiamo che siano colonne ) è sufficiente prendere y1=y(:,1) per la prima colonna ( quindi primo modo ), y2=y(:,2) per il secondo modo e così via dicendo

ansawo
perfetto. comunque per lo meno ho imparato il comando initial. mal che vada faccio dei grafici approssimativi a mano prendendo la omega dagli autovalori e appoggiandomi a un esponenziale decrescente ;)

grazie davvero

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.