就是在谁都知道的RC 电路里的电容旁边并联一个放电电阻,计算它对时间常数的影响,参考下面的示意图:
电路的输入电压是电源电压V,在R0 和R1 之间连接着一个单片机引脚,所以想计算上电后单片机引脚上电压的变化,也就是输出电压Uo。电容C 通过R0 和R1 充电,R2 放电。
计算
以前电路上好像学了简化方法,叫三要素法,但是我忘光了,所以就从基础开始算。
电容两端的电压公式如下:
U
c
′
=
1
C
I
c
(1)
{U_c}' = \frac{1}{C} I_c \tag{1}
Uc?′=C1?Ic?(1)
即电压对时间的导数和电容量C 成反比,和电流正比。设,经过电容的电流是
I
c
I_c
Ic?,经过R2 的电流是
I
2
I_2
I2?,干路电流
I
1
I_1
I1? 是两支路之和。因为R2 两端电压和电容电压相等,则:
I
2
=
U
c
R
2
(2)
I_2 = \frac{U_c}{R_2} \tag{2}
I2?=R2?Uc??(2)
作用在干路电阻R0 + R1 上的电压又是输入电压V 和电容电压
U
c
U_c
Uc? 之差,于是干路电流就是:
I
1
=
V
?
U
c
R
0
+
R
1
(3)
I_1 = \frac{V - U_c}{R_0 + R_1} \tag{3}
I1?=R0?+R1?V?Uc??(3)
电容电压就可以表示成:
U
c
′
=
1
C
(
I
1
?
I
2
)
=
1
C
(
V
?
U
c
R
0
+
R
1
?
U
c
R
2
)
(4)
\begin{aligned} {U_c}' &= \frac{1}{C} ( I_1 - I_2) \\ &= \frac{1}{C} (\frac{V - U_c}{R_0 + R_1} - \frac{U_c}{R_2}) \end{aligned} \tag{4}
Uc?′?=C1?(I1??I2?)=C1?(R0?+R1?V?Uc???R2?Uc??)?(4)
微分方程的感觉已经有了? 整理一下,变成标准的一阶线性微分方程的形式:
U
c
′
+
K
U
c
=
D
(5)
{U_c}' + KU_c = D \tag{5}
Uc?′+KUc?=D(5)
其中,
{
K
=
R
0
+
R
1
+
R
2
C
R
2
(
R
0
+
R
1
)
D
=
V
C
(
R
0
+
R
1
)
(6)
\begin{aligned} \begin{cases} K &= \frac{R_0 + R_1 + R_2}{C R_2 (R_0 + R_1)} \\ D &= \frac{V}{C (R_0 + R_1)} \end{cases} \end{aligned} \tag{6}
{KD?=CR2?(R0?+R1?)R0?+R1?+R2??=C(R0?+R1?)V???(6)
可见K 和D 都是和时间无关的常数。高数里讲过,这种微分方程是比较简单的,有标准的解法。
解方程和时间常数
其实这一步已经能看出时间常数是什么了,和标准的一阶系统微分方程比较一下,能看出时间常数就是K 的倒数,电容量C 在分子上,C 越大时间常数越大,也符合常识。不过还是激情的解一遍方程吧。
按照标准方法,首先把方程两边同时处理一下:
e
K
t
(
U
c
′
+
K
U
c
)
=
e
K
t
D
(7)
e^{Kt}({U_c}' + K U_c) = e^{Kt}D \tag{7}
eKt(Uc?′+KUc?)=eKtD(7)
此时方程左边可以逆用导数乘法公式,变成:
(
e
K
t
?
U
c
)
′
=
e
K
t
D
(8)
(e^{Kt} \cdot U_c)' = e^{Kt} D \tag{8}
(eKt?Uc?)′=eKtD(8)
然后就是两边积分,
(
e
K
t
U
c
)
∣
0
t
=
D
∫
0
t
e
K
t
d
t
=
D
K
e
K
t
∣
0
t
e
K
t
U
c
(
t
)
?
U
c
(
0
)
=
D
K
(
e
K
t
?
1
)
(9)
\begin{aligned} ( e^{Kt} U_c ) \vert_0^t &= D \int_0^t e^{Kt} dt \\ &= \frac{D}{K} e^{Kt} \vert_0^t \\ e^{Kt} U_c(t) - U_c(0) &= \frac{D}{K}(e^{Kt} - 1) \end{aligned} \tag{9}
(eKtUc?)∣0t?eKtUc?(t)?Uc?(0)?=D∫0t?eKtdt=KD?eKt∣0t?=KD?(eKt?1)?(9)
初始状态电容电压设为0,所以
U
c
(
0
)
=
0
U_c(0) = 0
Uc?(0)=0,则上式变为:
e
K
t
U
c
(
t
)
=
D
K
?
(
e
K
t
?
1
)
U
c
(
t
)
=
D
K
?
(
1
?
e
?
K
t
)
=
D
K
?
(
1
?
e
?
t
K
?
1
)
(10)
\begin{aligned} e^{Kt} U_c(t) &= \frac{D}{K} \cdot (e^{Kt} - 1) \\ U_c(t) &= \frac{D}{K} \cdot (1 - e^{-Kt}) \\ &= \frac{D}{K} \cdot (1 - e^{\frac{-t}{K^{-1}}}) \end{aligned} \tag{10}
eKtUc?(t)Uc?(t)?=KD??(eKt?1)=KD??(1?e?Kt)=KD??(1?eK?1?t?)?(10)
标准的一阶系统阶跃响应是:
u
(
t
)
=
1
?
e
?
t
T
(11)
u(t) = 1 - e^{\frac{-t}{T}} \tag{11}
u(t)=1?eT?t?(11)
所以时间常数T 就是
K
?
1
K^{-1}
K?1,也就是K 的倒数,观察一下K 倒数的形式:
K
?
1
=
T
=
C
R
2
(
R
0
+
R
1
)
R
0
+
R
1
+
R
2
=
C
[
R
2
∥
(
R
0
+
R
1
)
]
(12)
\begin{aligned} K^{-1} = T &= \frac{C R_2 (R_0 + R_1)}{R_0 + R_1 + R_2} \\ &= C[R_2 \parallel (R_0 + R_1)] \end{aligned} \tag{12}
K?1=T?=R0?+R1?+R2?CR2?(R0?+R1?)?=C[R2?∥(R0?+R1?)]?(12)
发现时间常数是C 乘上R2和(R0 + R1)的并联。而式10 前面的系数
D
K
\frac{D}{K}
KD? 是:
D
K
=
R
2
V
R
0
+
R
1
+
R
2
(13)
\frac{D}{K} = \frac{R_2 V}{R_0 + R_1 + R_2} \tag{13}
KD?=R0?+R1?+R2?R2?V?(13)
也就是R2 和(R0 + R1)的串联分压。
结果
这下就可以考虑输出电压Uo 了,Uo 是电容电压加上R1 的压降:
U
o
=
U
c
(
t
)
+
I
1
R
1
=
U
c
(
t
)
+
[
V
?
U
c
(
t
)
]
R
1
R
0
+
R
1
=
R
0
R
0
+
R
1
?
U
c
(
t
)
+
R
1
V
R
0
+
R
1
(14)
\begin{aligned} U_o &= U_c(t) + I_1 R_1 \\ &= U_c(t) + \frac{[V - U_c(t)] R_1}{R_0 + R_1} \\ &= \frac{R_0}{R_0 + R_1} \cdot U_c(t) + \frac{R_1 V}{R_0 + R_1} \end{aligned} \tag{14}
Uo??=Uc?(t)+I1?R1?=Uc?(t)+R0?+R1?[V?Uc?(t)]R1??=R0?+R1?R0???Uc?(t)+R0?+R1?R1?V??(14)
可见,输出电压Uo 包含一个常数项,就是电源电压V 经过R0 和R1 的分压。也很好理解,在初始状态电容电压为0,就相当于V 经过R0 和R1 接地。
现在回到实际,假设输入电压V = 5V,芯片引脚输入高电平阈值是4V,要计算输出电压上升到4V 的所需时间。假设输出电压初始值低于4V,设那个常数项电压是
U
r
U_r
Ur?,也就是要算
U
c
(
t
)
U_c(t)
Uc?(t) 上升到4V -
U
r
U_r
Ur? 的时间。
U
c
(
t
)
=
4
?
U
r
R
2
R
0
V
(
R
0
+
R
1
+
R
2
)
(
R
0
+
R
1
)
?
(
1
?
exp
?
(
?
t
C
[
R
2
∥
(
R
0
+
R
1
)
]
)
)
=
4
?
R
1
V
R
0
+
R
1
(15)
\begin{aligned} U_c(t) &= 4 - U_r \\ \frac{R_2 R_0 V}{(R_0 + R_1 + R_2)(R_0 + R_1)} \cdot (1 - \exp(\frac{-t}{C[R_2 \parallel (R_0 + R_1)]})) &= 4 - \frac{R_1 V}{R_0 + R_1} \end{aligned} \tag{15}
Uc?(t)(R0?+R1?+R2?)(R0?+R1?)R2?R0?V??(1?exp(C[R2?∥(R0?+R1?)]?t?))?=4?Ur?=4?R0?+R1?R1?V??(15)
这个方程,emmm,头皮发麻[doge],不过忽略那些常数的话结构也不复杂。代换整理一下:
A
(
1
?
e
?
t
T
)
=
U
d
(16)
A(1 - e^{\frac{-t}{T}}) = U_d \tag{16}
A(1?eT?t?)=Ud?(16)
解得:
t
=
?
T
ln
?
(
1
?
U
d
A
)
(17)
t = -T \ln(1 - \frac{U_d}{A}) \tag{17}
t=?Tln(1?AUd??)(17)
再看一眼参数A 和T,令串联电阻
R
s
=
R
0
+
R
1
R_s = R_0 + R_1
Rs?=R0?+R1?,当放电电阻R2 很大时:
T
=
C
[
R
2
∥
R
s
]
≈
C
R
s
(18)
T = C[R_2 \parallel R_s] \approx C R_s \tag{18}
T=C[R2?∥Rs?]≈CRs?(18)
也就是当R2 很大时,时间常数主要和串联电阻有关。然后把A 分解回左右两部分:
A
=
R
2
R
2
+
R
s
?
R
0
V
R
s
≈
(
1
?
R
1
R
s
)
V
=
(
1
?
q
)
V
(19)
\begin{aligned} A = \frac{R_2}{R_2 + R_s} \cdot \frac{R_0 V}{R_s} &\approx (1 - \frac{R_1}{R_s}) V \\ &= (1 - q)V \end{aligned} \tag{19}
A=R2?+Rs?R2???Rs?R0?V??≈(1?Rs?R1??)V=(1?q)V?(19)
当R2 很大时,左侧因子约等于1,右边因子再换一下形式,把R1 和Rs 的比值记为q,0 < q < 1。于是式17 的解可以写成:
t
=
?
C
R
s
ln
?
(
1
?
4
?
q
V
V
?
q
V
)
=
?
C
R
s
ln
?
(
V
?
4
V
(
1
?
q
)
)
=
?
C
R
s
ln
?
(
1
5
(
1
?
q
)
)
=
C
R
s
ln
?
(
5
(
1
?
q
)
)
(20)
\begin{aligned} t &= -C R_s \ln(1 - \frac{4 - qV}{V - qV}) \\ &= -C R_s \ln(\frac{V - 4}{V(1 - q)}) \\ &= -C R_s \ln(\frac{1}{5(1 - q)}) \\ &= C R_s \ln(5(1 - q)) \end{aligned} \tag{20}
t?=?CRs?ln(1?V?qV4?qV?)=?CRs?ln(V(1?q)V?4?)=?CRs?ln(5(1?q)1?)=CRs?ln(5(1?q))?(20)
只看这个结果,当电容量C 和串联电阻R_s 固定,如果
(
1
?
q
)
=
1
5
(1 - q) = \frac{1}{5}
(1?q)=51?,那么
ln
?
(
1
)
=
0
\ln(1) = 0
ln(1)=0,上升时间就是0 了,说明此时初始电压就是4V,R0 和R1 可以取2k 和8k。
U
r
=
R
1
R
s
?
V
=
4
5
?
5
=
4
V
U_r = \frac{R_1}{R_s} \cdot V = \frac{4}{5} \cdot 5 = 4V
Ur?=Rs?R1???V=54??5=4V
总结
浪费时间瞎算了一顿[doge],一开始就拿煎蛋的分压公式算一下初始电压不就行了。
|