EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 lukeluck 于 2018-5-10 17:36 编辑 x0 X9 o! h4 E4 X7 p2 n$ c" j
1 }7 G! y: y* ]: X+ z
对于直流信号: 设 V0 为电容上的初始电压值; V1 为电容最终可充到或放到的电压值;Vt 为 t 时刻电容上的电压值。则: Vt=V0 +(V1-V0)× [1-exp(-t/RC)] 或 t = RC × Ln[(V1 - V0)/(V1 - Vt)] 例如,电压为 E 的电池通过 R 向初值为 0 的电容 C 充电,V0=0,V1=E,故充到 t 时刻电容 上的电压为: Vt=E × [1-exp(-t/RC)] 再如,初始电压为 E 的电容 C 通过 R 放电 , V0=E,V1=0,故放到 t 时刻电容上的电压为: Vt=E × exp(-t/RC) 又如,初值为 1/3Vcc 的电容 C 通过 R 充电,充电终值为 Vcc,问充到 2/3Vcc 需要的时间 是多少? V0=Vcc/3,V1=Vcc,Vt=2*Vcc/3,故 t=RC × Ln[(1-1/3)/(1-2/3)]=RC × Ln2 =0.693RC 注:以上 exp()表示以 e 为底的指数函数;Ln()是 e 为底的对数函数 电容t时刻的电流为: it = C *du/dt =C *E*1/RC*exp(-t/RC)=E/R*exp(-t/RC)
1 Y8 {2 p" H* Y" u% K
对于交流信号: 对于交流信号(电源),则理论计算稍微复杂一些。 假设电源电压为U0*sin(2*pi*f*t) 则,t时刻电容上的电压为:ut=U0*sin(2*pi*f*t)*[1-exp(-t/RC)] t时刻电容上的电流为:it =C *du/dt =U0*C*[(1-exp(-t/RC))cos(2*pi*f*t)*2*pi*f + sin(2*pi*f*t)/RC*exp(-t/RC)] 上述的电流从时域角度分析好像看不出来是超前电压90度,但是从频域应该可以很直观的知道。等我后续找到相关资料了再补充。 下面贴出一个其他资料推导的相位公式: 假设电容上t时刻积累的电荷为qt = Q0cos(wt) 则, it=dqt/dt = -Q0*w*sin(wt) =Q0*w*cos(wt+pi/2) = I0 *cos(wt+pi/2),即I0 =Q0*w ut=qt/C = Q0/C *cos(wt) = U0*cos(wt) ,即U0 =Q0/C 因此,可以说电容上的电流的相位超前电压90度 [参考文献附件2pdf文件]。
0 k& v4 I$ f3 b5 c另外,简单计算的话只需要知道电流有效值(因为相位关系是知道的),计算公式如下: I=U/Xc Xc=1/2πfC b. L4 T" l# d0 O `9 A3 K
I=2πfCU 电容的单位是F I电流为A从上面推导电容电流电压关系上也可验证为什么电容的容抗Xc=U0/I0=1/wC ) ?7 _1 x0 |" h# E9 @: B
实际在计算中,根据KVL:
. ?, C+ k, h6 W- }! p C9 Q 以高通滤波器接法为例:& k, G2 A' x- W6 l5 m) w3 r( z
假设电阻上的电压为V,电源电压最大值为U0- ?4 A$ `* X( \% z5 u( D5 A4 c6 Y
则(U0-V)/Xc =V/R V=U0/Xc /(Xc//R)1 ?# D+ ~- n/ c, D( l
可以调整电阻R的阻值观察电压V值。
( P. ^3 u" t( [1 X9 Q! L6 G; L1 H# Z; m$ A5 c- R/ C* y. c! a0 {& v
! r7 k0 N4 g$ J8 P+ Q
仿真验证: 图1仿真文件验证了高通与低通滤波器两种情况下的电容充电电流及电压,我们关注VF1 VF2的输出电压。 附件等Excel文件是根据上述理论公式计算的电容两端的电压电流,同样我们也关注VF1 VF2的输出电压。 图2是理论计算的结果绘制成的图表,从仿真和理论计算的对比来看结果是一致的。 & @5 Z" J: Q$ C* q
上述仿真及理论计算的文件也上传上来,感兴趣的同学可以看看。
0 p7 o! a" [' x, n # T. {9 A) ?4 k7 g* [
5 u4 X3 v! j* a/ h+ G! w
- L8 }/ h. A( ? T; c P& c6 Y% F' y {; g6 ~" Z! ]- p
4 z4 k2 Z( C' M5 O6 k. c: p$ d
4 V4 a7 e/ E7 ~6 N! z3 Q+ }8 [$ l% G u2 L
5 A; R7 Y' X8 ?0 u5 b
9 y- k, B* U9 ?$ `. d! f![]() ![]() ![]() |