如何使运算放大器比较器在施密特触发器模式下工作?


9

使用运算放大器进行风扇控制时出现问题

我想控制一个小型12V机箱风扇。我将设置R 1,R 2和R 3的值,以使风扇在40 o C 以上的温度下工作。

我知道,在这类系统中,会有一个不确定的区域,比较器的输出将在高电平和低电平之间快速变化。在这种实际情况下,当温度在40 o C 附近时,将出现不稳定的行为。

有什么办法可以通过尽可能少地改变使其在施密特触发模式下工作(例如,在38 o C以下停止,在42 o C 以上启动,并将先前的状态保持在38 o C和42 o C之间)的方式来实现;无需使用任何施密特触发器逻辑门。


您的要求可以理解,但您的死区范围是40到42 :-)。|| 基本原理是情况1:添加“正反馈”,以便当输出变高时,视在输入变得更高,而当输入变低时,视在输入变得更低。或情况2:向基准添加负反馈,以便当输出升高时触发点降低,从而系统必须在再次达到触发点之前先冷却。情况1:从运算放大器输出到非inv输入的电阻。或情况2:从M1漏极到反相输入的电阻。
拉塞尔·麦克马洪

请注意,运算放大器比较器与比较器相比有一些缺点
Scott Seidman 2014年

Answers:


11

要创建施密特触发器,您必须提供正反馈,从运算放大器的输出到同相输入。通常,此输入将是阈值电压,根据运算放大器的输出,它将采用两个值之一(即磁滞)。

在您的情况下,同相输入上有信号。您也可以通过这种方式使其工作,但是我建议您同时切换两个输入,并且交换R1和PTC仍然具有相同的行为:更高的PTC电阻会降低反相输入,并且当达到阈值时,风扇将切换到。因此,让我们这样做,然后将输出中的R5添加到R2 / R3节点。

在此处输入图片说明

VHVL

现在,对R2 / R3 / R5节点应用KCL(基尔霍夫现行定律):

12VVLR3+0VVLR5=VLR2

12VVHR3+12VVHR5=VHR2

VHVL

Ω

{12V5VR3+0V5VR5=5V10kΩ12V6VR3+12V6VR5=6V10kΩ

要么

{7VR35VR5=5V10kΩ6VR3+6VR5=6V10kΩ

然后经过一些替换和改组,我们发现

{R3=12kΩR5=60kΩ


我已经说过这种情况不太普遍,但是您也可以使用当前原理图,并且计算结果相似。同样,在输出和同相输入之间增加一个R5反馈电阻。现在,参考输入由比率R2 / R3固定,并且磁滞将使您测量的电压上下移动,这至少对我来说是需要习惯的。

在此处输入图片说明

LH

{6VPTCH=12V6VR1+0V6VR56VPTCL=12V6VR1+12V6VR5

同样,求解R1和R5。


@Kortuk-噢,胡扯!:-)是的,您是对的,我将其添加。仅一分钟(或2、3 ...)
stevenvh 2012年

@Kortuk-完成。快乐?:-)
stevenvh 2012年

仍然很短:)您可能注意到我实际上并没有投票。
Kortuk

1
@Kortuk-是的,我知道你不会。我想我现在已经足够了解您,知道您首先提出了要求。;-)
stevenvh 2012年

您的回答足够好,没有示意图,我只是认为这是一个小改进,您的回答已经得到我的支持。
Kortuk 2012年


1

在此处输入图片说明

Vin

VinVddR1+VinVssR2+VinVoutRf=0

根据运算放大器的特性,我们知道:

Vin <= VIL ==> Vout = VOL (Low  State)
Vin >= VIH ==> Vout = VOH (High State)

因此,我们可以针对这两种状态编写两个单独的方程式。

VILVddR1+VILVssR2+VILVOLRf=0VILR1//R2//Rf=VddR1+VssR2+VOLRfVIL=(R1//R2//Rf)[VddR1+VssR2+VOLRf]VIH=(R1//R2//Rf)[VddR1+VssR2+VOHRf]

例:

R1  = 100k
R2  = 100k
Vdd = +15V
Vss = -15V
VOH = +13V
VOL = -13V

在此处输入图片说明

% Matlab code for the plotting

R1              = 100000;
R2              = 100000;
Vdd             = +15;
Vss             = -15;
VOH             = +13;
VOL             = -13;

RMIN            = 10000;        % 10k
RMAX            = 10000000;     % 10M
VMIN            = -10.0;
VMAX            = +10.0;
POINTS          = (RMAX - RMIN) / 100;

Rf              = linspace(RMIN, RMAX, POINTS);
VIL             = zeros(1, POINTS);
VIH             = zeros(1, POINTS);

for i = 1 : 1 : POINTS
    VIL(i) = 1 / ((1/R1) + (1/R2) + (1/Rf(i))) * ((Vdd/R1) + (Vss/R2) + (VOL/Rf(i)));
    VIH(i) = 1 / ((1/R1) + (1/R2) + (1/Rf(i))) * ((Vdd/R1) + (Vss/R2) + (VOH/Rf(i)));
end;

close all;
hFig = figure;
hold on;
plot([0 10], [0 0], 'Color', [0.75 0.75 0.75]);
plot(Rf/1000000, VIL, 'Color', [0 0 1]);
plot(Rf/1000000, VIH, 'Color', [1 0 0]);
xlim([RMIN/1000000, RMAX/1000000]);
ylim([VMIN, VMAX]);
xlabel('R_f (M\Omega)');
ylabel('VIL & VIH (V)');
hold off;

1

如前所述,使用反馈是存档使用运算放大器滞后的关键。

阿尔伯特·李(Albert Lee)的这篇文章以实用的方式展示了如何做到这一点,以及如何进行数学运算以计算系统上所需的磁滞水平。

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.