Wie kann ich mit Matlab Schaltkreisanalysen durchführen?

14

Ich höre oft von Leuten, die Matlab für Schaltkreisanalysen verwenden, aber ich habe nie herausgefunden, wie das gemacht wird. Ich gehe davon aus, dass es mehr gibt, als nur Gleichungen von Hand aufzustellen und in Matlab zu lösen.

Ich suche einen guten Ausgangspunkt.

AndrejaKo
quelle
Fragen Sie nach Matlab als "SPICE-Ersatz" für die Simulation diskreter RLC-Komponenten oder nach mehr im Sinne der Systemsimulation?
W5VO
@ W5VO Beides, aber mit mehr Fokus auf SPICE. Ich weiß, dass die Systemsimulation mit Simulink durchgeführt werden kann und dass es nicht allzu schwierig ist.
AndrejaKo
5
Das Lösen von Schaltkreisen löst nur nichtlineare Differentialgleichungen, so dass es in Matlab möglich ist. OTOH Da SPICE wirklich nichts anderes als ein nichtlinearer Differentialgleichungslöser ist, würde ich Matlab nur verwenden, wenn ich ein wirklich seltsames oder spezielles Problem hätte.
JPC

Antworten:

6

Mit der Matlab Simulink Simpowersystem- Toolbox können Sie Schaltkreisanalysen durchführen. Es umfasst RLC-Komponenten, Schalter, elektrische Maschinen usw. Sie können Ihre eigene Komponente erstellen und alle Parameter der Bibliothekskomponenten ändern. Da Sie Ihre Schaltkreise mit jedem Simulink-Block, jedem Simulink-Solver oder jeder Matlab-Funktion kombinieren können, ist dieses Tool sehr leistungsstark. Die Schaltungsgleichungen müssen nicht zuerst gelöst werden, da Sie in der Simulink-Umgebung arbeiten. Es ist ursprünglich für Stromversorgungssysteme gedacht, aber ich denke, Sie können es für jeden elektronischen Schaltkreis verwenden.

ths1104
quelle
3
Unsere Antworten kommen vielleicht etwas spät, aber es gibt auch SimElectronics , das spezifischer ist als Simpowersystem (aber mit dem Problem einer teuren Toolbox-Lizenz)
Clement J.
Die Sache ist, ich fand Simulink trotz all der hinzugefügten Toolboxen ziemlich umständlich. Schauen Sie sich an, was erforderlich ist, um eine RLC-Schaltung zu simulieren . Weitaus komplizierter als bei SPICE. Nur in ganz bestimmten Fällen, in denen Sie Controller-bezogene Verhaltenscode-Blöcke haben, die in SPICE auf keine vernünftige Weise möglich sind, lohnt sich IMO.
Fizz
Um nur eine symbolische Übertragungsfunktion zu erhalten, ist qsapecng kostenlos. Zeichnen Sie einfach die Schaltung und klicken Sie auf eine Schaltfläche.
Fizz
14

Ich benutze MATLAB ziemlich oft für die Schaltungsanalyse. Manchmal bevorzuge ich es zu würzen, andere Male bevorzuge ich Würze, hängt von meiner Stimmung und Anforderungen ab.

Dies sind die folgenden Schritte:

  • 1: Nehmen Sie die Laplace-Transformation der Schaltung
  • 2: erhalten Sie die Übertragungsfunktion
  • 3: Zeichnen / Analysieren mit MATLAB-Funktionen. bode, impulse, freqresp und so weiter.

Der schwierigste Teil, den ich finde, besteht darin, die Laplace-Transformation durchzuführen und Ihre Übertragungsfunktionsgleichung abzuleiten.

Es gibt viele Beispiele und Lehrbücher zum Thema Laplace im Internet. Kurz gesagt ist das Ziel hier, die Gleichung in Form von zu bekommen

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

eincdf

Dazu wandeln Sie alle Ihre passiven Elemente in komplexe Impedanzen um. Das ist es

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

Leiten Sie als nächstes eine Gleichung für Ihre Schaltung in Form von Vout / Vin ab.

Für ein einfaches Tiefpassfilter in Form von:

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

das würde ergeben:

VoutVin=sCR+sC

Schreiben Sie die obige Gleichung in Form von num und den für MATLAB:

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

Verwenden Sie anschließend eine beliebige Matlab-Funktion, um die Übertragungsfunktion (Bode), das Pol-Null-Diagramm usw. zu analysieren.

Unten sehen Sie ein Beispiel für einen Filter, mit dem ich kürzlich gespielt und versucht habe, die Werte zu optimieren:

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
smashtastic
quelle
Haben Sie eine Chance auf ein Beispiel mit einer schönen Erklärung für jeden Schritt?
AndrejaKo
natürlich - ich werde über das Wochenende versuchen, ein Beispiel für Sie zu erstellen!
Smashtastic
Das ist vollkommen richtig, aber völlig sinnlos. Beurteilen Sie mich nicht, ich liebe Laplace- und Z-Transformationen ...:) .... Versuchen Sie einfach, diesen Ansatz für die Simulation eines Transistors und von Operationsverstärkern zu verwenden ... :)
Brethlosze
Ich denke, Sie haben einen Fehler gemacht, als Sie die Übertragungsfunktion für den Tiefpassfilter geschrieben haben. Ich denke, Sie meinten Vout / Vin = (1 / sC) / (R + (1 / sC))
Scott Lawson
6

Ich verwende manchmal scipy (ein numerisches Toolset für Python), um Schaltungsanalysen durchzuführen. Und ja, normalerweise müssen die Schaltungsgleichungen zuerst von Hand gelöst werden. Dies ist vor allem bei der Toleranz- und Empfindlichkeitsanalyse der Schaltung hilfreich.

Es gibt ein Buch zum Thema "Toleranzanalyse elektronischer Schaltungen mit MATLAB" , das einige Beispiele für die Durchführung der typischen Analyse einiger gängiger Schaltungen enthält. Es ist nicht wirklich ein Ersatz für etwas wie SPICE, aber es ist nützlich, wenn versucht wird, eine gute Produktionsausbeute über alle Komponententoleranzen hinweg zu erzielen oder die zeitliche und temperaturbedingte Abweichung der Komponenten zu berücksichtigen.

Clint Lawrence
quelle
3
SciPy ist im Gegensatz zu Matlab kostenlos und macht eine Menge der gleichen Sachen. scipy.org/NumPy_for_Matlab_Users Ich finde es ziemlich toll, mich.
Endolith
Einige SPICEs haben auch eine Monte-Carlo-Simulation und eine Sensitivitätsanalyse hinzugefügt. Insbesondere bei SIMetrix ist die erstere auch in der nicht abgelaufenen Demo / Intro-Version kostenlos, die letztere Funktion ist jedoch nicht kostenlos. Sowohl Intersil (iSim: PE) als auch Analog Devices (ADIsimPE) werden jetzt mit SIMetrix als SPICE ausgeliefert. Im Grunde handelt es sich jedoch um die Intro-Version mit ihren zusätzlichen Chipbibliotheken.
Fizz
Auch das Cover des Lehrbuchs hat MATLAB als MAT H LAB falsch geschrieben ... ziemlich amüsant und weckt nicht viel Selbstvertrauen.
Fizz
1

Für eine einfache RLC-Schaltung mit einer beliebigen Topologie (seriell und parallel) können wir "rlcdemo" verwenden. Es ist eine gute Benutzeroberfläche für Analysefilter (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.
Amir Alizadeh
quelle
0

Sie können ein in Matlab erstelltes Programm namens SCAM (Symbolic Circuit Analysis in Matlab) verwenden, das Sie hier finden: https://www.swarthmore.edu/NatSci/echeeve1/Ref/mna/MNA6.html

ARTURO CORONA NIEVA
quelle
Warum? Verwenden Sie einfach SimScape + SimElectronics, da es SPICE-Modelle verwenden kann ...
JonRB
SimElectronics gibt Ihnen keine analytischen Gleichungen, die manchmal sehr nützlich sind
JLo
-1

Das PDF-Buch mit Spice- und Matlab-Beispielen, http://www.elsevierdirect.com/companions/9780750659321/exercises/SpiceAndMatlab.pdf , ein Begleitbuch zur Einführung in die lineare Schaltungsanalyse und -modellierung von Moura & Darwazeh, ist eine gute Wahl für mich Zwecke.

justaguest
quelle
1
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.