如何在Matlab中模拟电容器的行为?

时间:2018-12-21 03:51:40

标签: matlab

根据hyperphysics.edu的说法,电容器上的电压可以表示为Vo(1-exp(-t/RC))

我想有一种将这种累积行为应用于信号的方法,但并不十分了解如何实现。

在matlab中,如果我做这样的事情:

t = 0:0.0001:0.05-0.0001;
tau = 0.005;
c = 1-exp(-t/tau);
s = zeros(1,1000);
s(201:600) = ones(1,400);

c看起来像我希望电容器充电的样子。理想情况下,s是打开和关闭电源时输入电压的样子。我想要的是能够应用该C模式。我不确定 这是什么数学方法。我认为这是您要使用卷积的一种想法,所以我尝试了

o = conv(s,c(500:-1:1));

但是,将上升动作显示为笔直的线性上升的图看起来并不正确,所以我认为我还需要做其他事情。

如果具有RC常数,需要采用哪种操作或方法来模拟电容器如何作用于某些输入电压信号?

2 个答案:

答案 0 :(得分:0)

问题是您需要绘制c与t的关系图。使用您的命令,您将在0处绘制201点的c,在1处绘制299点的。

尝试

    plot(t,c) 

您应该会看到指数衰减。

答案 1 :(得分:0)

电容器项应仅包含指数,并且卷积已经翻转了第二个向量,因此无需再次翻转它。

dt = 0.0001;

t = 0:dt:0.05-dt;

tau = 0.005;

c = dt / tau * exp(-t / tau);

s =零(1,1000);

s(201:800)= 1;

o =转化(s,c);

tt =(0 :(长度(o)-1))* dt;

图;图(tt,o)