Pagina 1 di 1

Problema matlab

MessaggioInviato: 9 lug 2014, 11:28
da Filippo
Ciao a tutti..
Ho un problema in uno script di matlab. Il problema sembra banale ma non riesco a saltarcene fuori.
Ho creato uno script(.m), dove all'interno è presente un ciclo 'for' con una variabile t (tempo). Poi ho creato una variabile che sarebbe la mia tensione con la funzione sin.
A questo punto vorrei calcolarmi la corrente. Ho una induttanza. Quindi l'hodefinita come XL=j*omega*L X_L=\text{j}\omega L.
Di conseguenza ho fatto la divisione tra tensione e XL. E i risultati li ho salvato tutti in un vettore.

Ora, io so che dovrei vedere la corrente sfasata di -90 rispetto la tensione.

Non riesco a plottare i 2 grafici. perché il risultato è un numero complesso. ma io voglio vedere 2 sinusoidi in funzione di t. E come avessi una divisione tra un numero reale e un numero complesso. Devo fare qualche trasformazione che mi sfugge?

Re: Problema matlab

MessaggioInviato: 9 lug 2014, 11:36
da PietroBaima
Secondo me stai facendo un pasticcio tra tempo e fasori, più che avere un problema con matlab.

Hai seguito questa scaletta?

  1. scrivo le equazioni del circuito nel dominio della frequenza;
  2. calcolo la corrente nell'induttore;
  3. trasformo il fasore della corrente, ottenuto, nel dominio del tempo;
  4. apro matlab;
  5. faccio il disegno della forma d'onda nel tempo della tensione di ingresso e della corrente nell'induttore.

Ciao,
Pietro.

PS: in matlab è meglio non usare i cicli for quando si può.

Re: Problema matlab

MessaggioInviato: 10 lug 2014, 10:17
da Filippo
Grazie mille della risposta. Infatti avevo questo presentimento. Non posso dividere una v(t) per un fasore dell'induttore. Quando parli di passare nel dominio della frequenza, intendi in nel dominio dei fasori? o in s (Laplace)?? perché anche i fasori sono nel tempo se non erro.

Re: Problema matlab

MessaggioInviato: 10 lug 2014, 11:03
da dimaios
Il fasore è un vettore complesso che rappresenta una funzione sinusoidale ad una frequenza fissa.

Ad ogni sinusoide s(t)=A \cdot \cos( \omega t + \phi ) con pulsazione \omega fai corrispondere un vettore S definito come S = A e^{i \cdot \phi  }

A questo punto puoi mappare qualsiasi sinusoide dal dominio del tempo nello spazio dei fasori.

I calcoli li fai o tutti nel dominio del tempo o tutti nel dominio dei fasori non puoi mescolare elementi di due spazi diversi.

In genere si trasforma il problema dal dominio del tempo a quello dei fasori, si svolgono i calcoli in questo contesto e solo alla fine si riporta il risultato nel dominio del tempo ( se richiesto ).
Il fatto di svolgere i calcoli nel dominio dei fasori è dettato dal fatto che certe operazioni molto lunghe e complicate nel dominio del tempo risultano semplici operazioni algebriche nel dominio dei fasori.

Re: Problema matlab

MessaggioInviato: 10 lug 2014, 15:23
da DirtyDeeds
Volendo impostare un codice di esempio, supponiamo di denotare con V_L il fasore della tensione ai capi dell'induttore e con I_L il fasore della corrente (frequenza f):

I_L = \frac{V_L}{\mathrm{j}2\pi f L}

Tensione e corrente in funzione del tempo saranno rispettivamente:

v_L(t) = \mathrm{Re}[V_L\mathrm{e}^{\mathrm{j} 2\pi f t}]

e

i_L(t) = \mathrm{Re}[I_L\mathrm{e}^{\mathrm{j} 2\pi f t}]

Per esempio, supponiamo

V_L = (1+\mathrm{j})\,\text{V}, f = 1000\,\text{Hz} e L = 200\,\mu\text{H}; supponiamo, inoltre, di volere disegnare 5 periodi. Allora il codice diventa

Codice: Seleziona tutto
f = 1e3; % Frequenza
w = 2*pi*f; % Pulsazione
T = 1/f; % Periodo
np = 5; % Numero di periodi da visualizzare
n = 1000; % Numero di punti per grafico

L = 2e-4;

VL = 1+1i;
IL = 1/(1i*w*L)*VL;

t = linspace(0,np*T,n); % Campioni di tempo

% Passaggio da fasori a dominio del tempo:
% si applica direttamente la definizione
vL = real(VL*exp(1i*w*t));
iL = real(IL*exp(1i*w*t));

plot(t,vL,t,iL)


NB: Non ho utilizzato alcun ciclo for :!:

Re: Problema matlab

MessaggioInviato: 21 lug 2014, 16:29
da EcorMind
salve, da ignorate in materia e da quel poco di fisica che so, voglio chiederti , è normale che tu abbia valori immaginari e/o complessi?
mi sembra strano che se hai valori reali, trovi soluzioni complesse.

se mi passi le formule ed i vettori che hai in ingresso, posso provare a fare un codice, anche se sono un novello in programmazione.

P.s.: se vuoi avere due grafici sovrapposti devi usare i comandi "hold on" ed "hold off"

Re: Problema matlab

MessaggioInviato: 21 lug 2014, 18:10
da DirtyDeeds
EcorMind ha scritto:voglio chiederti , è normale che tu abbia valori immaginari e/o complessi?
mi sembra strano che se hai valori reali, trovi soluzioni complesse.


A chi vuoi chiederlo? Comunque leggi meglio la soluzione data in [5].

EcorMind ha scritto:P.s.: se vuoi avere due grafici sovrapposti devi usare i comandi "hold on" ed "hold off"


No, non necessariamente, v. [5].

Re: Problema matlab

MessaggioInviato: 22 lug 2014, 17:46
da EcorMind
DirtyDeeds ha scritto:
EcorMind ha scritto:voglio chiederti , è normale che tu abbia valori immaginari e/o complessi?
mi sembra strano che se hai valori reali, trovi soluzioni complesse.


A chi vuoi chiederlo? Comunque leggi meglio la soluzione data in [5].



ciao. volevo chiederlo a chi ha iniziato la discussione.