Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema 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] Problema matlab

Messaggioda Foto UtenteFilippo » 9 lug 2014, 11:28

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?
Avatar utente
Foto UtenteFilippo
0 2
 
Messaggi: 10
Iscritto il: 27 feb 2013, 21:25

2
voti

[2] Re: Problema matlab

Messaggioda Foto UtentePietroBaima » 9 lug 2014, 11:36

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ò.
Generatore codice per articoli:
nomi
Sul forum:
[pigreco]=π
[ohm]=Ω
[quadrato]=²
[cubo]=³
Avatar utente
Foto UtentePietroBaima
90,7k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 12206
Iscritto il: 12 ago 2012, 1:20
Località: Londra

0
voti

[3] Re: Problema matlab

Messaggioda Foto UtenteFilippo » 10 lug 2014, 10:17

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.
Avatar utente
Foto UtenteFilippo
0 2
 
Messaggi: 10
Iscritto il: 27 feb 2013, 21:25

2
voti

[4] Re: Problema matlab

Messaggioda Foto Utentedimaios » 10 lug 2014, 11:03

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.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

3
voti

[5] Re: Problema matlab

Messaggioda Foto UtenteDirtyDeeds » 10 lug 2014, 15:23

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 :!:
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,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[6] Re: Problema matlab

Messaggioda Foto UtenteEcorMind » 21 lug 2014, 16:29

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"
qualcosa che ho realizzato e su ciò che mi incuriosisce ( lavori in corso quando riesco):http://tuttofareprofanoenon.blogspot.it/

se vi va di farvi quattro risate:https://www.youtube.com/watch?v=_Q8lePUuvVc
Avatar utente
Foto UtenteEcorMind
0 1 2
 
Messaggi: 24
Iscritto il: 21 apr 2014, 13:06
Località: mondo

3
voti

[7] Re: Problema matlab

Messaggioda Foto UtenteDirtyDeeds » 21 lug 2014, 18:10

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].
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,9k 7 11 13
G.Master EY
G.Master EY
 
Messaggi: 7012
Iscritto il: 13 apr 2010, 16:13
Località: Somewhere in nowhere

0
voti

[8] Re: Problema matlab

Messaggioda Foto UtenteEcorMind » 22 lug 2014, 17:46

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.
qualcosa che ho realizzato e su ciò che mi incuriosisce ( lavori in corso quando riesco):http://tuttofareprofanoenon.blogspot.it/

se vi va di farvi quattro risate:https://www.youtube.com/watch?v=_Q8lePUuvVc
Avatar utente
Foto UtenteEcorMind
0 1 2
 
Messaggi: 24
Iscritto il: 21 apr 2014, 13:06
Località: mondo


Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti