半波整流电路仿真程序

二极管峰值检波

二极管整流
目 录
Contents
前言
仿真程序
总 结

 

01 极管整流


一、前言

  二极管检波电路,  对于输入交流电压进行包络检波。 下面通过简单的分析,  编写一个简单的Python 程序, 计算检波的结果。

GM1709396459_1600_900.MP4|_-4

二、仿真程序

  二极管整流电路, 实质上是一个条件开关。 下面通过一个比较器控制的开关来替代二极管。  中间的比较器, 只是为了说明开关闭合的条件,  它对比开关左右两边的电压, 确定开关是否闭合。  当开关左边的电压高于右边时,  开关闭合, 否则, 开关就打开。  开关前面的 电池和电阻分别替代二极管前向导通电压以及导通电阻。 不同的二极管, 这两个参数有所区别。 在低频信号处理时, 电路省略了二极管寄生电容。 这是通过软件来模拟上述电路, 对输入 50Hz, 峰值为 6V的信号进行半波整流之后所获得的整流信号。 可以看到与平时所观察到的实际波形非常接近。

GM1709560929_1600_900.MP4|_-9

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2024-03-02
#
# Note:
#============================================================

from headmm import *

ts = 0.1e-3                         # Sample period
T1 = 0.2                            # Total signal length
f1 = 50                             # Signal as 50Hz
Up = 6

Vd = 0.1                            # Diode forward voltage
Rd = 50                             # Diode forward resistance
R1 = 10e3
C1 = 20e-6
Uo = 0

Ns = int(T1/ts)
T = linspace(0, T1, Ns)
ft = sin(2*pi*f1*T) * Up

#------------------------------------------------------------
Uout = [0]*len(T)
for id,f in enumerate(ft):
    if f-Vd > Uo:
        i1 = (f-Vd-Uo)/Rd
    else:
        i1 = 0

    i2 = Uo/R1
    Q = (i1-i2)*ts
    dV = Q/C1
    Uo += dV

    Uout[id] = Uo

#------------------------------------------------------------


plt.plot(T, ft, lw=3, label='Origin')
plt.plot(T, Uout, lw=3, label='Rectified')

plt.xlabel("Time(s)")
plt.ylabel("Voltage(V)")
plt.grid(True)
plt.legend(loc='upper right')
plt.tight_layout()
plt.show()





#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

▲ 图1.2.1 仿真的结果

▲ 图1.2.1 仿真的结果

▲ 图1.2.2 对调幅波的峰值检波

▲ 图1.2.2 对调幅波的峰值检波

  在这里, 利用Python程序来实现上述电路,  中间这部分是通过带有条件判断的循环来将输入信号转换成输出信号。  下面, 将二极管的导通电压修改为 0.5V, 导通电阻设为 50欧姆,  滤波电阻和电容分别取 10k欧姆和 20微法。 通过软件产生一个调幅信号,  通过刚才程序, 获得峰值检波输出信号, 可以看到滤波之后的信号反应了输入信号调幅的包络线。  检波结果, 反应了充放电过程。  不同的信号, 影响了充放电的变化。  此时, 对应的 输出信号滤波时间常数相对比较合适,  如果修改R1,C1, 对于输出信号会有比较大的影响。

GM1709561628_1600_900.MP4|_-11

  取C1的容值为 100微法, 检波输出的信号出现了缓变的特征。 无法反映包络线的变化。 但如果将 C1改成5微法, 检波结果中出现了较大的波动。 因此对于不同的检波信号, 需要对输出RC滤波系数进行合理的设置。
GM1709561886_1600_900.MP4|_-3

▲ 图1.2.3 C1取100微法对应的输出结果

▲ 图1.2.3 C1取100微法对应的输出结果

▲ 图1.2.4 C1取5微法对应的输出结果
▲ 图1.2.4 C1取5微法对应的输出结果

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2024-03-02
#
# Note:
#============================================================

from headmm import *

ts = 0.1e-3                         # Sample period
T1 = 2                              # Total signal length
f1 = 50                             # Signal as 50Hz
Up = 6

Vd = 0.25                            # Diode forward voltage
Rd = 50                             # Diode forward resistance
R1 = 10e3
C1 = 5e-6
Uo = 0

Ns = int(T1/ts)
T = linspace(0, T1, Ns)

ft = sin(2*pi*f1*T) * Up * (cos(2*pi*f1/20*T) * 0.25 + 1)

#------------------------------------------------------------
Uout = [0]*len(T)
for id,f in enumerate(ft):
    if f-Vd > Uo:
        i1 = (f-Vd-Uo)/Rd
    else:
        i1 = 0

    i2 = Uo/R1
    Q = (i1-i2)*ts
    dV = Q/C1
    Uo += dV

    Uout[id] = Uo

#------------------------------------------------------------


plt.plot(T, ft, lw=3, label='Origin')
plt.plot(T, Uout, lw=3, label='Rectified')

plt.xlabel("Time(s)")
plt.ylabel("Voltage(V)")
plt.grid(True)
plt.legend(loc='upper right')
plt.tight_layout()
plt.show()





#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

 

  结 ※


  文实现了对于二极管峰值检波电路的仿真。 利用一个理想开关近似普通的二极管。 通过对调幅信号检波仿真, 可以知道输出信号的好坏与检波低通滤波RC的常数有很大关系。

GM1709562015_1600_900.MP4|_-2


● 相关图表链接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值