Una sfida del genere non poteva essere lasciata cadere nel nulla...
In blu la ig
In rosso la ic
in verde la Vl
in fucsia la Vc
...Spice
Grazie per lo spunto è stato istruttivo e divertente!
...sperando di non aver fatto troppe stupidate...
Esercizio su transitorio
Moderatori: BrunoValente,
IsidoroKZ,
carloc,
g.schgor
40 messaggi
• Pagina 2 di 4 • 1, 2, 3, 4
1
voti
ì
MarcoD
finalmente hai riportato il programma.
I miei complimenti, anche se la procedura è difficile da interpretare.
Appena possibile invierò la mia soluzione in Mathcad Express .


I miei complimenti, anche se la procedura è difficile da interpretare.
Appena possibile invierò la mia soluzione in Mathcad Express .
4
voti
Per comprendere l'alternativa di calcolo di un transitorio
occorre chiarire alcuni concetti di base.
una variabile circuitale è continua nel tempo
ma in un computer può essere rappresentata
da una serie di valori relativi ad ogni istante
.
Questo è il campionamento (o digitalizzazione) delle variabili
che rende possibile l'applicazione del metodo delle differenze finite.
Ecco come:
Dall'elettrotecnica sappiamo che per un induttore L vale

che può essere approsimat a

da cui

Similmente per un con densatore C

quindi

da cui

Applicandoli al circuito in esame possiamo scrivere
un programma che calcoli i grafici richiesti.
Ecco il programma in Mathcad:
sono stati omessi i dati circuirali
e i valori iniziali per n=0 ed n=1
tutti =0 tranne
Ed ecco il risultato:
occorre chiarire alcuni concetti di base.
una variabile circuitale è continua nel tempo
ma in un computer può essere rappresentata
da una serie di valori relativi ad ogni istante

Questo è il campionamento (o digitalizzazione) delle variabili
che rende possibile l'applicazione del metodo delle differenze finite.
Ecco come:
Dall'elettrotecnica sappiamo che per un induttore L vale

che può essere approsimat a

da cui

Similmente per un con densatore C

quindi

da cui

Applicandoli al circuito in esame possiamo scrivere
un programma che calcoli i grafici richiesti.
Ecco il programma in Mathcad:
sono stati omessi i dati circuirali
e i valori iniziali per n=0 ed n=1
tutti =0 tranne

Ed ecco il risultato:
0
voti
Dall'elettrotecnica sappiamo che per un induttore L vale
che può essere approsimat a
da cui
@ g.schgor
Abbiamo usato le stesse formule partendo da considerazioni leggermente differenti.
Dalla formula della derivata tramite le differenze finite, hai ricavato la formula di integrazione numerica che adopero io.
Mi pare che l'ordine di esecuzione di calcolo delle varie formule sia differente. Ma, per Delta T piccolo dovrebbe essere irrilevante. Ci medito sopra.
Quanto ti viene il malore massimo della tensione sul condensatore?

0
voti
A me viene 5,6806 V dalla simulazione alle differenze
Con LT Spice invece 5,6778 V
Per l'induttore rispettivamente 4,25 V e 4,252 V
Il minimo per l'induttore -0,4228
Ho dei dubbi sulle formule per VL e IC in quanto rappresentano una condizione istantanea e non alle differenze, quindi userei lo stesso indice a sinistra e destra dell'uguaglianza, ancorché non via DT di mezzo.
Con LT Spice invece 5,6778 V
Per l'induttore rispettivamente 4,25 V e 4,252 V
Il minimo per l'induttore -0,4228
Ho dei dubbi sulle formule per VL e IC in quanto rappresentano una condizione istantanea e non alle differenze, quindi userei lo stesso indice a sinistra e destra dell'uguaglianza, ancorché non via DT di mezzo.
0
voti
Come riportato nel post 8, trovavo il massimo di 5,77 V con delta tempo 0,2 ms
Ho ridotto il delta tempo a 0,05 ms ottenendo il massimo di 5,702
A pari deltatempo, ho riordinato le formule, spostando entrambe le integrazioni in fondo, ora ottengo 5,691 V a 13,2 ms dall'inizio.
Ho ridotto il delta tempo a 0,05 ms ottenendo il massimo di 5,702
A pari deltatempo, ho riordinato le formule, spostando entrambe le integrazioni in fondo, ora ottengo 5,691 V a 13,2 ms dall'inizio.
0
voti
Mi pare sia caduto l'interesse nella discussione.
Ritenendo possa essere di interesse/utilità, allego il programmino sviluppato per i calcoli.
Marco
Ritenendo possa essere di interesse/utilità, allego il programmino sviluppato per i calcoli.
Marco
- Codice: Seleziona tutto
// 11/9/2022 Processing 4 MarcoD simulazione transitorio circuito con R1,R2,L,C
int IMAX = 800;
void setup()
{
size(900, 800);
calcoli();
}
void draw()
{ // keep draw() here to continue looping while waiting for keys
}
void calcoli() //circuito risonante RLC serie; condensatore carico; induttanza L che satura
{
float k = 1.0; //coeff ascissa
strokeWeight(3); /*spessore linee 3 punti */ line(0,0,0,399);/*asse ordinata*/ line(0,199,IMAX,199);//asse ascissa
float dtempo = 0.00005; // 50 us secondi passo tempo di simulazione
float Vg = 10; //Tensione a gradino generatore
float Vc = 0 ; float VcP = Vc;// tensione iniziale condensatore
float Vcmax = 0; float iVcmax =0;
float VL = 0;// tensione ai capi induttanza
float VLP = VL;
float IC = 0; float ICP = IC; // corrente iniziale nel circuito nulla
float L= 0.01; float LP =L; //henry 10 millihenry induttanza base
float C = 0.01;// farad 10 millifarad capacità
float Ig =0; float IgP=0; //corrente generatore (precedente)
float IL =0;
float R1= 1;// ohm resistenza R1 connessa al generatore
float R2= 0.4;// ohm resistenza in serie all'induttanza
float W0= 1/sqrt(L*C);//pulsazione libera rad/s
float F0 = W0/6.28;//frequenza risonanza
float Z0 = sqrt(L/C); //impedenza caratteristica
float Q = (W0*L/R2);// coeff qualità risonanza
print ("L = "); print (L*1000);print(" mH ");print ("C = "); print (C*1000000);print(" uF"); print (" W0 = "); print (W0);print ( " rad/s "); print (" F0 = "); print (F0);print (" Hz");
print (" Z0 = "); print (Z0); println (" ohm"); print (" R2 = "); print (R2);print (" ohm tens iniz. condensatore = "); print (Vc);print (" V Q="); println (Q);
int iP=0;
IgP = (Vg - Vc)/ R1; //calcolo corrente iniziale dalla tensione ai capi di R1 per abbellire grafico
for ( int i= 0 ; i < IMAX; i++) //ciclo di simulazione
{
//modello del gruppo R1,R2,L,C
Ig = (Vg - Vc)/ R1; //calcolo corrente dalla tensione ai capi di R1
IC = Ig - IL; //corrente nel condensatore
VL = Vc -R2*IL;// tensione ai capi dell'induttore
Vc = Vc +IC*(dtempo/C);// tensione ai capi condensatore come integrale della corrente
IL = IL + VL*(dtempo/L); //corrente nell'inmduttore come integrale della tensione
if (Vc > Vcmax) {Vcmax = Vc;iVcmax = i;}
stroke(255,0,0);line(k*i, 200.-20*Ig, k*iP,200.-20*IgP ); IgP=Ig; //rosso corrente generatore
stroke(0,0,255);line(k*i, 200.-20.*Vc, k*iP,200.-20.*VcP);VcP=Vc;//blu tensione condensatore
stroke(0,255,255);line(k*i, 200.-20.*VL,k*iP,200.-20.*VLP);VLP=VL;//celeste tensione induttanza
iP = i;
// print (i);print( ");
}
textSize(40);fill(0);
text("Vgen = ", 200,400);text(Vg, 350,400);text(" V ", 480,400);
text("R1 = ", 200,450);text(R1, 350,450);text(" ohm ", 480,450);
text("R2 = ", 200,500);text(R2, 350,500);text(" ohm ", 480,500);
text("L = ", 200,550);text(L, 350,550);text(" H ", 480,550);
text("C = ", 200,600);text(C, 350,600);text(" F ", 480,600);
text("Vcmax ", 10,700);text(Vcmax, 180,700);text(" V ", 280,700); text(" tempo di Vcmax ", 370,700);text(1000*dtempo*iVcmax, 680,700);text(" ms ", 800,700);
stroke(0); circle(k*iVcmax,200-20*Vcmax,4);
text("Vc blu, VL celeste, 10 V f/s; Ig rosso, 10 A f/s", 10,300);
}
4
voti
Roswell1947 ha scritto:Magari qualcuno lo risolverà a mano tramite laplace...
Prego:

posto


sostituendo , trasformando (il gradino vale 1/s) e dividendo sopra e sotto per Zc

abbiamo un polo in 0 e quelli dalla soluzione della quadratica:
posto



abbiamo


che scomposta in fratti semplici da

Antitrasformando, ricordando che


otteniamo (per t>0)

La VL

seguendo lo stesso ragionamento di prima (considerato che


il cui grafico è (moltiplicate le ordinate per 0,01 perché non voleva cambiare la scala di visione... quindi moltiplicate i valori y per 100)
40 messaggi
• Pagina 2 di 4 • 1, 2, 3, 4
Chi c’è in linea
Visitano il forum: Nessuno e 32 ospiti