Come eseguire l'analisi dei circuiti utilizzando Matlab?


14

Sento spesso di persone che usano Matlab per l'analisi dei circuiti, ma non ho mai capito come è fatto. Presumo che ci sia qualcosa di più oltre alla semplice impostazione delle equazioni a mano e alla loro risoluzione in Matlab.

Sto cercando un buon punto di partenza.


Stai chiedendo di utilizzare Matlab come "sostituzione SPICE" per simulare componenti RLC discreti o più lungo le linee di simulazione del sistema?
W5VO,

@ W5VO Entrambi, ma con maggiore attenzione a SPICE. So che la simulazione del sistema può essere eseguita con Simulink e che non è troppo difficile.
AndrejaKo

5
Risolvere i circuiti è solo risolvere equazioni differenziali non lineari, quindi è possibile in Matlab. OTOH I dato che SPICE non è altro che un risolutore di equazioni differenziali non lineari, utilizzerei Matlab solo se avessi un problema davvero strano o speciale.
jpc,

Risposte:


6

È possibile utilizzare la casella degli strumenti Matlab Simulink Simpowersystem per eseguire l'analisi dei circuiti. Include componenti RLC, interruttori, macchine elettriche, ecc. È possibile creare il proprio componente e modificare qualsiasi parametro dei componenti della libreria. Poiché puoi combinare i tuoi circuiti con qualsiasi blocco Simulink, qualsiasi risolutore Simulink o qualsiasi funzione Matlab, questo strumento è molto potente. Non è necessario risolvere prima le equazioni del circuito perché si lavora nell'ambiente Simulink. È originariamente orientato per i sistemi di alimentazione, ma penso che tu possa usarlo per qualsiasi circuito elettronico.


3
Le nostre risposte forse arriveranno un po 'in ritardo, ma c'è anche SimElectronics che è più specifica di Simpowersystem (ma che condivide con il problema di una costosa licenza di toolbox)
Clemente J.

Il fatto è che ho trovato Simulink anche con tutte le cassette degli strumenti aggiunte piuttosto ingombranti. Guarda cosa serve per simulare un circuito RLC . Molto più complicato rispetto a SPICE. Vale la pena utilizzare l'IMO solo in casi molto specifici in cui si hanno blocchi di codice comportamentale relativi al controller che non possono essere eseguiti in SPICE in modo ragionevole.
Fizz,

Inoltre, per ottenere una funzione di trasferimento simbolica qsapecng è gratuito e basta disegnare il circuito e fare clic su un pulsante ed è fatto.
Fizz,

14

Uso MATLAB abbastanza per l'analisi dei circuiti. A volte preferisco le spezie, altre volte preferisco le spezie, dipende dal mio umore e dalle mie esigenze.

Questi sono i seguenti passaggi:

  • 1: accetta la trasformata di Laplace del circuito
  • 2: ottenere la funzione di trasferimento
  • 3: tracciare / analizzare usando le funzioni MATLAB. bode, impulse, freqresp e così via.

La parte più difficile che trovo è prendere la trasformazione di Laplace e derivare l'equazione della funzione di trasferimento.

Ci sono molti esempi e libri di testo su come prendere un Laplace su Internet. In breve lo scopo qui è quello di ottenere l'equazione sotto forma di

H(s)=as2+bs+cds2+es+f

dove a c è il numeratore e d a f il denominatore nell'esempio presentato di seguito.acdf

Per fare ciò, converti tutti gli elementi passivi in ​​impedenze complesse. Questo è

  • C = 1 / sC
  • R = R
  • L = sL

Successivamente deriva un'equazione per il tuo circuito sotto forma di Vout / Vin.

Per un semplice filtro passa basso sotto forma di:

Vin -------R-------------- Vout
               |
               C
               |
------------------------------

questo produrrebbe:

VoutVin=sCR+sC

Scrivi l'equazione sopra sotto forma di num e den per MATLAB:

num = [C 0];
den = [C R];

Quindi continua a utilizzare qualsiasi funzione matlab che ti piace per analizzare la funzione di trasferimento (bode), il diagramma zero poli e così via.

Di seguito è riportato un esempio di filtro con cui stavo giocando di recente e cercando di ottimizzare i valori:

R1 = 20e3;
C1 = 235e-9;
R2 = 2e3;
C2 = 22e-9;
num = [2*R2*C1 0];
den = [C1*R1*C2*R2*2 (2*C1*R1 + C2*2*R2) 2];
g = tf(num,den);
P = bodeoptions; % Set phase visiblity to off and frequency units to Hz in options
P.FreqUnits = 'Hz'; % Create plot with the options specified by P
bode(g,P);
%[num,den] = eqtflength(num,den);      % Make lengths equal
%[z,p,k] = tf2zp(num,den)          % Obtain zero-pole-gain form

Qualche possibilità di un esempio con una bella spiegazione di ogni passaggio?
AndrejaKo

ovviamente - cercherò di dettagliarti un esempio per te durante il fine settimana!
smashtastic

Questo è perfettamente corretto, ma totalmente inutile. Non giudicarmi, adoro le trasformazioni di Laplace e Z ...:) .... Basta provare a usare questo approccio per simulare un transistor e amplificatori operazionali ... :)
Brethlosze,

Penso che tu abbia commesso un errore durante la scrittura della funzione di trasferimento per il filtro passa basso. Penso che intendevi Vout / Vin = (1 / sC) / (R + (1 / sC))
Scott Lawson,

6

Da tempo uso Scipy (un set di strumenti numerici per Python) per fare analisi di circuiti. E sì, ciò comporta in genere la risoluzione manuale delle equazioni del circuito. Ciò è particolarmente utile quando si eseguono analisi di tolleranza e analisi di sensibilità sul circuito.

Esiste un libro sull'argomento "Analisi di tolleranza dei circuiti elettronici mediante MATLAB" che fornisce alcuni esempi di come eseguire l'analisi tipica su alcuni circuiti comuni. Non è in realtà un sostituto di qualcosa come SPICE, ma è utile quando si cerca di progettare un buon rendimento di produzione su tutte le tolleranze dei componenti o per tenere conto della deriva dei componenti nel tempo e nella temperatura.


3
SciPy è gratuito, a differenza di Matlab, e fa molte delle stesse cose. scipy.org/NumPy_for_Matlab_Users Penso che sia abbastanza bello, me stesso.
endolito il

Alcuni SPICE hanno anche aggiunto la simulazione Monte Carlo e l'analisi della sensibilità. SIMetrix in particolare ha il primo gratuitamente anche nella versione demo / intro non scadente, ma quest'ultima funzione non è gratuita. Sia Intersil (iSim: PE) che Analog Devices (ADIsimPE) ora distribuiscono SIMetrix come SPICE della loro società, ma in pratica è la versione introduttiva con le loro librerie di chip extra.
Fizz,

Anche quella copertina del libro di testo ha scritto erroneamente MATLAB come MAT H LAB ... piuttosto divertente e non ispira molta fiducia.
Fizz,

1

per un semplice circuito RLC con qualsiasi topologia (serie e parallelo) possiamo usare "rlcdemo". È una buona interfaccia per i filtri di analisi (LPF-HPF-BPF-BSF)

 rlcdemo
 Analyzing the Response of an RLC Circuit
 This demo shows how to use the Control System Toolbox(TM) functions
 to analyze the time and frequency responses of common RLC circuits
 as a function of their physical parameters.


0

Oltre a SCAM in Matlab, c'è anche un semplice strumento di analisi dei circuiti simbolico online su CircuitNAV , che utilizza file netlist (da LTspice, Micro-Cap, TINA-TI, PSpice, ecc.) Come input e genera la soluzione algebrica per ciascun parametro del circuito .

CircuitNAV fornisce anche una demo e un tutorial .


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.