Pagina 1 di 2

Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 16 mar 2012, 17:30
da johnny90
Ciao a tutti,devo svolgere un piccolo esercizio di elettrotecnica con Matlab in cui devo considerare un generatore di tensione ad onda quadra e plottare una corrente del circuito,a parte la risoluzione del circuito che ho già svolto,ora il problema è quello di definire l'onda quadra,il problema chiede che il generatore sia ad onda quadra con periodo,ampiezza e duty-cicle arbitrari,quindi a scelta dell'utente,devo inoltre definire quest'onda con le serie di Fourier,potreste gentilmente aiutarmi nella scrittura delle righe di codice??grazie..

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 16 mar 2012, 19:43
da DirtyDeeds
johnny90 ha scritto:devo inoltre definire quest'onda con le serie di Fourier


Cioè devi fare il contrario di quello che si farebbe normalmente?

Se dovessi implementare il segnale in matlab lo farei nel dominio del tempo, e poi farei calcolare a matlab la serie di Fourier (con la funzione fft).

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 16 mar 2012, 20:06
da johnny90
praticamente in ingresso al circuito c'è un generatore di tensione ad onda quadra di ampiezza,periodo e duty-cicle arbitrari,ho provato a creare la funzione con la funzione square ma poi inserendo questa funzione(che non è altro che una grande matrice) nelle equazioni del circuito matlab non riesce a risolvere il sistema di equazioni e quindi mi da errore,per questo cercavo un modo semplice di definire l'onda quadra come una funzione e per questo ho pensato di impostarla con una serie di fourier...

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 19 mar 2012, 12:14
da DADO91
Ecco la funzione, onda quadra, con la trasformata di fourier
Vq(t)=\frac{V}{2} + \frac{2V}{\pi} [cos(\omega t)+\frac{1}{3}cos(3\omega t)+\frac{1}{5}cos(5\omega t)+\frac{1}{7}cos(7\omega t)+...]
V = ampiezza della funzione in volt
Per ottenere una maggiore precisione basta che aumenti i termini dentro le parentesi quadre, usando solo indici dispari, in pratica diminuisci l'ampiezza e aumenti la frequenza di ogni successiva armonica.
Ricordo che :
\omega = 2\pi f
dove f = frequenza del segnale in Hz.

Non è possibile ottenere una rappresentazione perfetta, perché di per se l'onda quandra non è una funzione.

Spero ti sia utile! :ok:

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 19 mar 2012, 17:07
da DirtyDeeds
DADO91 ha scritto:perché di per se l'onda quandra non è una funzione.


Perbacco, eccome se lo è!

Problema: cosa capita troncando lo sviluppo ad un numero finito di termini? ;-)

johnny90 ha scritto:nelle equazioni del circuito matlab non riesce a risolvere il sistema di equazioni


Questo potrebbe dipendere da come tu hai impostato il sistema di equazioni, da cosa vuoi ottenere come soluzione ecc. ecc. Ma se non dici di più, difficile risponderti.

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 19 mar 2012, 18:19
da johnny90
ringrazio Foto UtenteDADO91 per la spiegazione,ora rispondo Foto UtenteDirtyDeeds:dato un circuito costituito da alcuni elementi resistivi e un induttore e un condensatore devo plottare la funzione iL(t) dell'induttore quando il generatore è appunto ad onda quadra...

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 19 mar 2012, 19:05
da johnny90
ciao,ho provato a scrivere in matlab la funzione scritta da Foto UtenteDADO91,ecco il testo:
Codice: Seleziona tutto
v=10
syms t

y=0
for i=1:2:101
    y=y+1/i*cos(i*2*pi*t)
end
x=v/2+(2*v/pi)*y



ezplot(x)


il risultato è il seguente:
ondaquadra.jpg
ondaquadra.jpg (32.59 KiB) Osservato 8542 volte


il risultato ,anche se non mi sembra corrispondere ad un onda quadra,è giusto?
inoltre,come posso utilizzare il duty cicle nella formula da te presentata?

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 19 mar 2012, 19:15
da DADO91
Prova a mettere qualche altra parentesi nella funzione dentro al for, e poi ai dimenticato la frequenza dentro al coseno (ti ho aggiunto f).
Codice: Seleziona tutto
y=y+(1/i)*cos(i*2*pi*t*f)

Non conosco MATLAB, ma sei sicuro che l'abbia disegnata in funzione di t?

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 19 mar 2012, 19:19
da DADO91
DirtyDeeds ha scritto:
DADO91 ha scritto:perché di per se l'onda quandra non è una funzione.

Perbacco, eccome se lo è!


Hai ragione... :oops: Ho confuso ascisse e ordinate, ho risposto mentre stavo studiando proprio analisi matematica e il cervello era un po' fuso... ?^!
Speriamo di non fare queste figure all'esame!!! #-o

Re: Funzione onda quadra con Fourier in Matlab

MessaggioInviato: 19 mar 2012, 19:24
da johnny90
DADO91 ha scritto:Prova a mettere qualche altra parentesi nella funzione dentro al for, e poi ai dimenticato la frequenza dentro al coseno (ti ho aggiunto f).
Codice: Seleziona tutto
y=y+(1/i)*cos(i*2*pi*t*f)

Non conosco MATLAB, ma sei sicuro che l'abbia disegnata in funzione di t?

si,per questo esempio avevo considerato frequenza proprio 1 e quindi l'avevo omesso...siccome la traccia mi da anche il duty cicle,come posso utilizzarlo nella funzione?