Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema LtSpice

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

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

5
voti

[51] Re: Problema LtSpice

Messaggioda Foto UtenteRenzoDF » 28 dic 2013, 10:43

904 ha scritto:Allora ho risolto il circuito normalmente ... ma andando a controllare i grafici quelli fatti da me e quelli della simulazione non mi trovo dove sbaglio?

Se questo si chiama "normalmente", siamo proprio messi bene, ad ogni modo i dati da te forniti sono insufficienti per una risposta (BTW ... come dice sempre Foto UtenteTardoFreak occhio ai "micro" ;-) ).

Quello che posso fare io è semplicemente spiegarti come si potrebbe ragionare "idraulicamente", ovvero come valutare , prima di simulare.

Partirei ovviamente dall'analisi per t < 0, notando come quella serie di parametri circuitali porti, dopo aver ridisegnato la rete nel seguente modo,


alle seguenti considerazioni:

a) CCCS inunfluente,

b) reattanza induttiva trecento volte inferiore e reattanza capacitiva tremila volte superiore al valore resistivo di ramo e quindi la rete può essere risolta come semplice partitore resistivo

{{i}_{L}}(0)\approx {{i}_{g}}\approx \frac{{{v}_{g}}(0)}{2\frac{R}{3}}\approx 10.6\,\text{A}

{{v}_{C}}(0)\approx \frac{{{v}_{g}}(0)}{2}\approx 3.5\,\,\text{V}

entrambe praticamente in fase alla forzante con valori massimi dalle parti dei 15 ampere per la corrente nell'induttore e dei 5 volt per la tensione sul condensatore.

c) il rapporto fra periodo della forzante (intorno a 60 ms) e costanti di tempo della rete (dell'ordine di alcune decine di microsecondi) porta a poter considerare il transitorio della rete sostanzialmente "istantaneo" per il GIT,

d) ovvero a poter assumere il valore del generatore congelato intorno ai 7 volt e quindi, a poter valutare approssimativamente anche i valori di iL e di vC a fine transitorio, con topologia


in questa configurazione la reattanza induttiva rappresenta un sostanziale cortocircuito essendo mille volte inferiore alle resistenze dei due resistori che insistono sullo stesso nodo superiore, d'altra parte, quel povero condensatore carico con alcune decine di microculomb di sicuro non può "dir nulla" e quindi la corrente a fine transitorio , ipotizzando (per esempio) un k unitario, posso valutarla come

{{i}_{L}}+k{{i}_{L}}=2{{i}_{L}}\approx \frac{{{v}_{g}}(0)}{R}\quad \to \quad {{i}_{L}}\approx \frac{{{v}_{g}}(0)}{2R}\approx 3.5\,\text{A}

{{v}_{C}}\approx -Rk{{i}_{L}}\approx -\frac{{{v}_{g}}(0)}{2}\approx -3.5\,\,\text{V}

Notiamo come, mentre la corrente nell'induttore venga ora a ridursi da 15 a 5 ampere massimi rimanendo in fase con la tensione impressa, la tensione sul condensatore, a causa dell'entrata in campo del CCCS venga a invertirsi come segno (e nel nostro caso particolare con K=1 a mantenere immutato il valor massimo a 5 volt).

Ora, tanto per passare a qualcosa di meno idraulico e più H-demico, vediamo se la stoppa scusate :mrgreen: ... se la simulazione "tiene".
Visto che avevo già costruito la schema in Simulink via Simscape, aggiungiamo solo un blocco di scrittura su file (EY.mat)

2013-12-28_110036.png
2013-12-28_110036.png (62.2 KiB) Osservato 4901 volte

fissiamo lo "Step Time" dello Step a pi/25, ovvero a 2 periodi (non strettamente necessari, ma tanto per vedere un paio di oscillazioni nello scope), un tempo di simulazione quasi doppio (0.25 secondi) aggiungiamo un paio di righe nella sezione StopFcn del CallBacks nel Model Properties

2013-12-28_114228.png
2013-12-28_114228.png (35.13 KiB) Osservato 4900 volte


al fine di andare a rappresentare solo l'intervallo di interesse per il transitorio (ovviamente invisibile nello scope [0,0.25] secondi) e lanciamo la simulazione, ottenendo

2013-12-28_112146.png
2013-12-28_112146.png (75.65 KiB) Osservato 4900 volte


2013-12-28_114024.png
2013-12-28_114024.png (8.32 KiB) Osservato 4900 volte


NB I diversi segni per iL e vC sono dovuti alle diverse scelte fra "convenzioni idrauliche" ed "H-demiche" (usate in Matlab) ... come possiamo vedere, Matlab conferma le stime iniziali. :-)

... to be continued ....
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

0
voti

[52] Re: Problema LtSpice

Messaggioda Foto Utente904 » 28 dic 2013, 10:55

si ma io lo devo risolvere col modello di stato non coi fasori. cioè non capisco come fai a fare certe osservazioni a me non mi sono state spiegate tutte queste cose
Avatar utente
Foto Utente904
59 2 6
Frequentatore
Frequentatore
 
Messaggi: 244
Iscritto il: 14 ago 2012, 19:32

0
voti

[53] Re: Problema LtSpice

Messaggioda Foto Utente904 » 28 dic 2013, 18:50

questo significa che mi trovo .
untitled.jpg
untitled.jpg (42.29 KiB) Osservato 4874 volte
Avatar utente
Foto Utente904
59 2 6
Frequentatore
Frequentatore
 
Messaggi: 244
Iscritto il: 14 ago 2012, 19:32

2
voti

[54] Re: Problema LtSpice

Messaggioda Foto UtenteRenzoDF » 28 dic 2013, 19:22

904 ha scritto:questo significa che mi trovo .
untitled.jpg

Da quale codice ottieni quel risultato? ... direi non da quello postato in precedenza.
"Il circuito ha sempre ragione" (Luigi Malesani)
Avatar utente
Foto UtenteRenzoDF
55,9k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 13189
Iscritto il: 4 ott 2008, 9:55

1
voti

[55] Re: Problema LtSpice

Messaggioda Foto Utente904 » 28 dic 2013, 19:26

da quello di prima un po' aggiustato

Codice: Seleziona tutto
close all
clear all
clc
digits(3);
syms iR1 iR2 iR3 iL vL vC iC v_Js v_Vs i_Vs isw vsw t K


R1=1; R2=1; R3=1; C=10e-6; L=10e-6;
V0=10; w=100; phi=pi/4; Js=K*iL;
Vs_t=V0*cos(w*t+phi); Vs_f=V0*exp(j*phi);
K=1;

lkc1=i_Vs+iR1+isw;
lkc2=-iR1-iL+iR3;
lkc3=iR2-iR3-iC;
lkc4=-K*iL-iR2-isw;
lkt1=-v_Vs+iR1*R1-vL;
lkt2=vL+iR3*R3-vC;
lkt3=vC+iR2*R2-v_Js;
lkt4=vsw-iR2*R2-iR3*R3-iR1*R1;

%% calcolo K ----k>1

% soluzione_pos=solve(lkc1,lkc2,lkc3,lkc4,lkt1,lkt2,lkt3,lkt4,'iR1,iR2,iR3,vsw,iC,vL,v_Js,i_Vs');
% dvC_dt_pos=subs(soluzione_pos.iC,isw,0)/C;
% diL_dt_pos=subs(soluzione_pos.vL,isw,0)/L;
% Apos11=subs(dvC_dt_pos,[vC iL v_Vs],[1 0 0]);
% Apos12=subs(dvC_dt_pos,[vC iL v_Vs],[0 1 0]);
% Apos21=subs(diL_dt_pos,[vC iL v_Vs],[1 0 0]);
% Apos22=subs(diL_dt_pos,[vC iL v_Vs],[0 1 0]);
% eig([Apos11 Apos12;Apos21 Apos22])
%
%  - 50000*(- 2*K - 1)^(1/2) - 50000
%    50000*(- 2*K - 1)^(1/2) - 50000



%% caso t <0, interruttore chiuso VSW=0;
soluzione_neg=solve(lkc1,lkc2,lkc3,lkc4,lkt1,lkt2,lkt3,lkt4,'iR1,iR2,iR3,isw,iC,vL,v_Js,i_Vs');
dvC_dt_neg=subs(soluzione_neg.iC,vsw,0)/C
diL_dt_neg=subs(soluzione_neg.vL,vsw,0)/L

Aneg=zeros(2);
Bneg=[0;0];
Aneg(1,1)=subs(dvC_dt_neg,[vC iL v_Vs],[1 0 0]);
Aneg(1,2)=subs(dvC_dt_neg,[vC iL v_Vs],[0 1 0]);
Aneg(2,1)=subs(diL_dt_neg,[vC iL v_Vs],[1 0 0]);
Aneg(2,2)=subs(diL_dt_neg,[vC iL v_Vs],[0 1 0]);
Bneg(1)=subs(dvC_dt_neg,[vC iL v_Vs],[0 0 1]);
Bneg(2)=subs(diL_dt_neg,[vC iL v_Vs],[0 0 1]);
Aneg
Bneg

Id=eye(2);
X_fas_neg=inv(j*w*Id-Aneg)*Bneg*Vs_f;
vC_neg=abs(X_fas_neg(1))*cos(w*t+angle(X_fas_neg(1)))
iL_neg=abs(X_fas_neg(2))*cos(w*t+angle(X_fas_neg(2)))
%% caso t >0, interruttore aperto ISW=0;
soluzione_pos=solve(lkc1,lkc2,lkc3,lkc4,lkt1,lkt2,lkt3,lkt4,'iR1,iR2,iR3,vsw,iC,vL,v_Js,i_Vs');
dvC_dt_pos=subs(soluzione_pos.iC,isw,0)/C
diL_dt_pos=subs(soluzione_pos.vL,isw,0)/L

Apos=zeros(2);
Bpos=[0;0];
Apos(1,1)=subs(dvC_dt_pos,[vC iL v_Vs],[1 0 0]);
Apos(1,2)=subs(dvC_dt_pos,[vC iL v_Vs],[0 1 0]);
Apos(2,1)=subs(diL_dt_pos,[vC iL v_Vs],[1 0 0]);
Apos(2,2)=subs(diL_dt_pos,[vC iL v_Vs],[0 1 0]);
Bpos(1)=subs(dvC_dt_pos,[vC iL v_Vs],[0 0 1]);
Bpos(2)=subs(diL_dt_pos,[vC iL v_Vs],[0 0 1]);

Id=eye(2);
X_fas_pos=inv(j*w*Id-Apos)*Bpos*Vs_f;
vC_pos=abs(X_fas_pos(1))*cos(w*t+angle(X_fas_pos(1)))
iL_pos=abs(X_fas_pos(2))*cos(w*t+angle(X_fas_pos(2)))
%% transitorio
lam=eig(Apos)
Xo=subs([vC_neg;iL_neg],t,0);
Uo=subs(Vs_t,t,0);

d_Xo_dt=Apos*Xo+Bpos*Uo; %Uo pos

Xop=subs([vC_pos;iL_pos],t,0);
d_Xop=subs(diff([vC_pos;iL_pos],t),t,0);

syms KC1 KC2 KL1 KL2
eq1=KC1+KC2+Xop(1)-Xo(1);
eq2=KL1+KL2+Xop(2)-Xo(2);
eq3=KC1*lam(1)+KC2*lam(2)+d_Xop(1)-d_Xo_dt(1);
eq4=KL1*lam(1)+KL2*lam(2)+d_Xop(2)-d_Xo_dt(2);
solss=solve(eq1,eq2,eq3,eq4,'KC1,KC2,KL1,KL2');
KC1=solss.KC1;
KC2=solss.KC2;
KL1=solss.KL1;
KL2=solss.KL2;
vC_pos_t=KC1*exp(lam(1)*t)+KC2*exp(lam(2)*t)+vC_pos
iL_pos_t=KL1*exp(lam(1)*t)+KL2*exp(lam(2)*t)+iL_pos
%% Grafici Vc iL
T=5*2*pi/w;
t_lam=-5/real(lam(1))
figure(1)
subplot(2,1,1),ezplot(vC_neg,[-T,0]), hold on, ezplot(vC_pos_t,[0,T]), axis auto, grid on, title('vC_t')
subplot(2,1,2),ezplot(vC_neg,[-t_lam,0]), hold on, ezplot(vC_pos_t,[0,t_lam]), axis auto,grid on, title('Zoom vC')
figure(2)
subplot(2,1,1),ezplot(iL_neg,[-T,0]), hold on, ezplot(iL_pos_t,[0,T]), axis auto, grid on, title('iL_t')
subplot(2,1,2),ezplot(iL_neg,[-t_lam,0]), hold on, ezplot(iL_pos_t,[0,t_lam]), axis auto,grid on, title('Zoom iL')

Avatar utente
Foto Utente904
59 2 6
Frequentatore
Frequentatore
 
Messaggi: 244
Iscritto il: 14 ago 2012, 19:32

0
voti

[56] Re: Problema LtSpice

Messaggioda Foto Utente904 » 28 dic 2013, 19:38

intendi i grafici che mi escono per scope? comunque il k andava bene pure prima 1/10000 è maggiore di -1 i valori di k validi erano per k>-1 sta volta ho scelto 1 ma è lo stesso , il micro si l'ho corretto era un errore di distrazione ecco i grafici :
tenscond.jpg
tenscond.jpg (33.13 KiB) Osservato 4870 volte

currentinduct.jpg
currentinduct.jpg (33.44 KiB) Osservato 4870 volte

currentir3.jpg
currentir3.jpg (34.13 KiB) Osservato 4870 volte
Avatar utente
Foto Utente904
59 2 6
Frequentatore
Frequentatore
 
Messaggi: 244
Iscritto il: 14 ago 2012, 19:32

0
voti

[57] Re: Problema LtSpice

Messaggioda Foto Utente904 » 29 dic 2013, 14:00

scusate ma la pulsazione di risonanza vi trovate che è 100000? e si calcola sempre come 1 su radice di L per C?
Avatar utente
Foto Utente904
59 2 6
Frequentatore
Frequentatore
 
Messaggi: 244
Iscritto il: 14 ago 2012, 19:32

Precedente

Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti