Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Funzione di trasferimento con matlab

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

0
voti

[1] Funzione di trasferimento con matlab

Messaggioda Foto Utenteparolina » 29 set 2011, 17:10

Salve!!!
Dovrei riuscire ad ottenere con matlab il grafico del modulo e della fase della seguente funzione di trasferimento
T(s)=\frac{3.24*10^{10}}{s^2+s*254,6*10^3+ 3.24*10^{10}}
Qualcuno potrebbe aiutarmi col codice?? Purtroppo non l'ho quasi mai utilizzato.
Grazie mille
Avatar utente
Foto Utenteparolina
1.543 4 11
Expert EY
Expert EY
 
Messaggi: 404
Iscritto il: 27 giu 2009, 17:18

0
voti

[2] Re: Funzione di trasferimento con matlab

Messaggioda Foto Utenteparolina » 29 set 2011, 17:31

E' corretto cosi??

s = tf('s');
W = (3.24*10^-10)/(s^2+254.6*10^3*s+3.24*10^-10);

bode(W)
Avatar utente
Foto Utenteparolina
1.543 4 11
Expert EY
Expert EY
 
Messaggi: 404
Iscritto il: 27 giu 2009, 17:18

2
voti

[3] Re: Funzione di trasferimento con matlab

Messaggioda Foto UtenteIsidoroKZ » 29 set 2011, 17:49

Puoi anche definire separatamente numeratore e denominatore. Ma aspettiamo il tuo angelo custode Foto UtenteDirtyDeeds.

num=[quello che e`, solo i coefficienti];
den=[stessa roba, per te: 1 254600 3.24e-10];
sysP=tf(num,den);
w=logspace(1,5); %questo per indicare le frequenze, nell'esempio parte da 10^1 fino a 10^5
[mag,phase]=bode(sysP,w);
loglog(w,squeeze(mag)),grid
semilog(w,squeeze(phase)),grid
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
104,3k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 18517
Iscritto il: 17 ott 2009, 0:00

0
voti

[4] Re: Funzione di trasferimento con matlab

Messaggioda Foto Utenteparolina » 29 set 2011, 19:58

Grazie mille...ma col codice che mi hai passato cosa visualizzo?
Avatar utente
Foto Utenteparolina
1.543 4 11
Expert EY
Expert EY
 
Messaggi: 404
Iscritto il: 27 giu 2009, 17:18

0
voti

[5] Re: Funzione di trasferimento con matlab

Messaggioda Foto UtenteDirtyDeeds » 29 set 2011, 20:00

Eh, questa volta non posso essere d'aiuto: ormai da alcuni anni ho abbandonato Matlab per Scilab e la sintassi per i diagrammi di Bode è differente.

Voglio comunque dare un consiglio a Foto Utenteparolina: non scrivere le funzioni di trasferimento mettendo direttamente i numeri, usa dei parametri: se devi cambiare qualcosa è più semplice e sei meno soggetta ad errori. La tua funzione di trasferimento è una funzione del second'ordine che può essere scritta come

T(s)=\frac{\omega_0^2}{s^2+2\zeta\omega_0 s+\omega_0^2}

A questo punto, fatti uno script matlab che inizi con

Codice: Seleziona tutto
w0 = ....
z = ...


E, ancora meglio, normalizza s rispetto a \omega_0.
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,7k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[6] Re: Funzione di trasferimento con matlab

Messaggioda Foto Utenteparolina » 29 set 2011, 20:53

ehm..ci provo!!!!Grazie infinite!!
Avatar utente
Foto Utenteparolina
1.543 4 11
Expert EY
Expert EY
 
Messaggi: 404
Iscritto il: 27 giu 2009, 17:18

1
voti

[7] Re: Funzione di trasferimento con matlab

Messaggioda Foto UtenteDirtyDeeds » 29 set 2011, 21:12

Altra cosa: in matlab, se devi scrivere un numero come

3{,}24\times10^{-10}

non scrivere

Codice: Seleziona tutto
3.24*10^-10


ma

Codice: Seleziona tutto
3.24e-10



PS: +1 babà :mrgreen:
It's a sin to write sin instead of \sin (Anonimo).
...'cos you know that cos ain't \cos, right?
You won't get a sexy tan if you write tan in lieu of \tan.
Take a log for a fireplace, but don't take log for \logarithm.
Avatar utente
Foto UtenteDirtyDeeds
55,7k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7013
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

1
voti

[8] Re: Funzione di trasferimento con matlab

Messaggioda Foto UtenteIsidoroKZ » 29 set 2011, 21:16

C'era gia` nel mio esempio: una roba al cioccolato a me!
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
104,3k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 18517
Iscritto il: 17 ott 2009, 0:00

0
voti

[9] Re: Funzione di trasferimento con matlab

Messaggioda Foto UtenteRenzoDF » 2 ott 2011, 14:45

parolina ha scritto:E' corretto cosi??
s = tf('s');
W = (3.24*10^-10)/(s^2+254.6*10^3*s+3.24*10^-10);
bode(W)


Si, e' corretto, se hai il Control Toolbox.
Matlab "capisce" anche la tua scrittura, ma e' assolutamente preferibile usare la variante suggerita da Foto UtenteDirtyDeeds per la notazione esponenziale.

Io userei la notazione abbreviata con i soli coefficienti
>> H = tf([3.24e-10],[1 254.6e3 3.24e-10])

specificando poi il range con
>>bode(H,{1e2,1e7})

Se non disponi del Control Toolbox puoi usare dei metodi alternativi, vedi per esempio

http://www.csus.edu/indiv/t/tatror/EEE_ ... ctions.pdf

BTW ricordo che per una rappresentazione asintotica e' disponibile un Free Tool di Erik Cheever

http://www.mathworks.com/matlabcentral/ ... hange/2664
con tutorial su
http://lpsa.swarthmore.edu/Bode/BodePlotGui.html
ma anche
http://www.mathworks.com/matlabcentral/ ... root-locus

PS: per me niente baba' ... solo 1MK :mrgreen:
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
53,0k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 12499
Iscritto il: 4 ott 2008, 9:55

0
voti

[10] Re: Funzione di trasferimento con matlab

Messaggioda Foto Utenteparolina » 3 ott 2011, 14:48

Grazie!!!Come siete DOLCI!!
comunque il prof adesso mi ha detto di utilizzare la notazione VETTORIALE.Avete idea di come possa fare???
Questa che devo ricavare con Matlab è la funzione di trasferimento a ciclo chiuso del mio PLL che ha :
K=127.324*10^3
f_{LPF}=40.528*10^3
La funzione di trasferimento è T(s)=\frac{K 2\pi f_{LPF}}{ s^2 + s2\pi f_{LPF}+ K 2\pi f_{LPF}}
Mi ha detto al posto di s utilizzare j\omega...aiuto
Avatar utente
Foto Utenteparolina
1.543 4 11
Expert EY
Expert EY
 
Messaggi: 404
Iscritto il: 27 giu 2009, 17:18

Prossimo

Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti