如何使用Matlab进行电路分析?


14

我经常听到有人使用Matlab进行电路分析,但是我从来没有真正弄清楚它是如何完成的。我认为,除了手动建立方程式并在Matlab中求解方程式之外,还有更多的事情要做。

我正在寻找一个良好的起点。


您是否在询问使用Matlab作为“ SPICE替代品”来模拟离散的RLC组件,还是更多地用于系统模拟?
W5VO 2011年

@ W5VO两者,但更多关注SPICE。我确实知道可以使用Simulink进行系统仿真,而且并不难。
AndrejaKo 2011年

5
求解电路只是求解非线性微分方程,因此在Matlab中是可能的。OTOH我因为SPICE实际上只不过是一个非线性微分方程求解器,所以仅当我遇到一个非常奇怪或特殊的问题时,我才使用Matlab。
jpc 2011年

Answers:


6

您可以使用Matlab Simulink Simpowersystem工具箱进行电路分析。它包括RLC组件,开关,电机等。您可以创建自己的组件并修改库组件的任何参数。由于您可以将电路与任何Simulink块,任何Simulink求解器或任何Matlab功能结合在一起,因此该工具非常强大。由于您在Simulink环境中工作,因此无需首先求解电路方程式。它最初面向电力系统,但我认为您可以将其用于任何电子电路。


3
我们的答案可能会晚一点,但还有SimElectronics,它比Simpowersystem更为具体(但要分享昂贵的工具箱许可问题)
Clement

问题是,即使添加了所有工具箱,我也发现Simulink非常麻烦。看看如何模拟RLC电路就可以了。比SPICE中复杂得多。只有在非常特殊的情况下,如果您具有与控制器相关的行为代码块,而这些行为代码块无法以任何合理的方式在SPICE中完成,才值得使用IMO。
Fizz

另外,要获得一个符号传递函数,qsapecng是免费的,您只需绘制电路并单击一个按钮即可完成。
Fizz

14

我经常使用MATLAB进行电路分析。有时我更喜欢香料,有时我更喜欢香料,这取决于我的心情和要求。

这些是以下步骤:

  • 1:进行电路的拉普拉斯变换
  • 2:获取传递函数
  • 3:使用MATLAB函数进行绘图/分析。波特,冲动,频率等。

我发现最棘手的部分是进行Laplace变换并导出传递函数方程。

关于在互联网上使用拉普拉斯的例子和教科书有很多。简而言之,这里的目的是使方程式为

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

其中c是分子,dfacdf以下示例中是分母。

为此,将所有无源元件转换为复数阻抗。那是

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

接下来,以Vout / Vin的形式导出电路的方程式。

对于以下形式的简单低通滤波器:

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

这将产生:

VoutVin=sCR+sC

对于MATLAB,以num和den的形式编写上述方程式:

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

然后继续使用您喜欢的任何matlab函数来分析传递函数(波特),零极点图等。

以下是我最近使用并试图调整值的过滤器示例:

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

每个例子都有很好的解释机会吗?
AndrejaKo 2011年

当然-周末我将尽力为您举例说明!
smashtastic 2011年

这是完全正确的,但完全没有意义。不要判断我,我喜欢拉普拉斯(Laplace)和Z变换...:)....只需尝试使用这种方法来模拟晶体管和运算放大器... :)
Brethlosze

我认为您在编写低通滤波器的传递函数时犯了一个错误。我认为您的意思是Vout / Vin =(1 / sC)/(R +(1 / sC))
Scott Lawson

6

我一段时间使用scipy(Python的数字工具集)进行电路分析。是的,通常需要首先手动求解电路方程。在对电路进行公差分析和灵敏度分析时,这最有帮助。

关于“使用MATLAB的电子电路的公差分析”主题的书,其中提供了一些示例,说明了如何对一些常见电路进行典型分析。它并不是SPICE之类的产品的真正替代品,但在尝试在所有组件公差范围内设计出良好的成品率或考虑组件随时间和温度的漂移时很有用。


3
与Matlab不同,SciPy是免费的,并且做很多相同的事情。 scipy.org/NumPy_for_Matlab_Users 我个人认为这很棒。
endlith 2011年

一些SPICE还添加了蒙特卡洛模拟和灵敏度分析。SIMetrix特别是前者是免费的,即使在未到期的演示版/介绍版中也是如此,但后者功能不是免费的。现在,Intersil(iSim:PE)和Analog Devices(ADIsimPE)都将SIMetrix作为其公司SPICE发售,但基本上是带有额外芯片库的入门版本。
Fizz

同样,这本教科书的封面将MATLAB误拼为MAT H LAB。
Fizz

1

对于具有任何拓扑结构(串联和并联)的简单RLC电路,我们可以使用“ rlcdemo”。对于分析过滤器(LPF-HPF-BPF-BSF)来说是很好的GUI

 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

除了Matlab中的SCAM,CircuitNAV上还有一个漂亮的在线符号电路分析工具,该工具使用网表文件(来自LTspice,Micro-Cap,TINA-TI,PSpice等)作为输入,并为每个电路参数生成代数解决方案。

CircuitNAV还提供了一个演示教程


-1

Spice和Matlab示例的pdf书,http://www.elsevierdirect.com/companions/9780750659321/exercises/SpiceAndMatlab.pdf,是Moura&Darwazeh撰写的《线性电路分析和建模入门》的配套书,对我来说真的很不错目的。


1
尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.