¿Cómo hago que un comparador opamp funcione en modo schmitt-trigger?

9

Control de ventilador con opamp de forma problemática

Quiero controlar un pequeño ventilador de caja de 12V. Estableceré valores de R 1 , R 2 y R 3 para que el ventilador funcione por encima de las temperaturas de 40 o C.

Entiendo que en este tipo de sistemas, habrá una región indecisa en la que la salida del comparador cambiará rápidamente entre alta y baja. En este caso práctico, cuando la temperatura esté cerca de 40 o C, habrá un comportamiento inestable.

¿Hay alguna manera de hacer que este circuito funcione en modo de disparo schmitt (por ejemplo, detenerse por debajo de 38 o C, comenzar por encima de 42 o C y mantener el estado anterior entre 38 o C y 42 o C) cambiándolo lo menos posible, y sin usar ninguna puerta lógica de disparo schmitt.

hkBattousai
fuente
Su solicitud se entiende PERO tiene una región muerta de 40 a 42 :-). || El principio básico es el Caso 1: agregar "retroalimentación positiva" para que cuando la salida sube, la entrada aparente sube aún más y cuando la entrada baja, la entrada aparente baja aún más. O Caso 2: agregue retroalimentación negativa a la referencia para que cuando la salida sea alta, el punto de disparo baje, de modo que el sistema tenga que enfriarse antes de alcanzar nuevamente el punto de disparo. || Caso 1: Resistencia de salida de Opamp a entrada no inv. O Caso 2: resistencia del drenaje M1 a la entrada inversora.
Russell McMahon
Tenga en cuenta que los comparadores de amplificadores operacionales tienen algunos inconvenientes en comparación con los comparadores
Scott Seidman, el

Respuestas:

11

Para crear un disparador Schmitt, debe proporcionar una retroalimentación positiva, desde la salida del opamp hasta la entrada no inversora. Por lo general, esta entrada será el voltaje de umbral, y tomará uno de dos valores (esa es la histéresis) dependiendo de la salida del opamp.

En su caso, tiene la señal en la entrada no inversora. También puede hacer que funcione de esta manera, pero sugeriría que cambie ambas entradas, y que también intercambie R1 y PTC todavía tengan el mismo comportamiento: una mayor resistencia de PTC disminuirá la entrada de inversión, y cuando alcance el umbral, el ventilador estará encendido. Así que hagamos eso y agreguemos un R5 de salida al nodo R2 / R3.

ingrese la descripción de la imagen aquí

Usted menciona la histéresis en ° C, pero necesitamos los voltajes. Hagamos un cálculo teórico con un y como umbrales, y supongamos un opamp de salida de riel a riel. Luego tenemos dos situaciones: el umbral alto y bajo, y tres variables: R2, R3 y el R5 agregado. Para que podamos elegir una de las resistencias, arreglemos R2.VHVL

Ahora, aplicando KCL (Ley actual de Kirchhoff) para el nodo R2 / R3 / R5:

12VVLR3+0VVLR5=VLR2

y

12VVHR3+12VVHR5=VHR2

Este es un conjunto de ecuaciones lineales en dos variables: R3 y R5, que es fácil de resolver si puede completar los voltajes reales para y y un R2 libremente elegido.VHVL

En aras de la discusión, supongamos que a 38 ° C tiene 6 V en la entrada inversora, y a 42 ° C tendrá 5 V. Elija un valor de 10 k para R2. Entonces las ecuaciones anteriores se convierten Ω

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

o

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

luego, después de reemplazar y barajar, encontramos

{R3=12kΩR5=60kΩ


Ya dije que es menos común, pero también puede usar el esquema actual, y los cálculos son similares. Nuevamente, agregue una resistencia de retroalimentación R5 entre la salida y la entrada no inversora. Ahora la entrada de referencia está fijada por la relación R2 / R3, y la histéresis desplazará su voltaje medido hacia arriba y hacia abajo, lo que, al menos para mí, necesita acostumbrarse.

ingrese la descripción de la imagen aquí

Supongamos que fijamos el voltaje de referencia a 6 V haciendo que R2 y R3 sean iguales. Una vez más calculamos las corrientes en el nodo de PTC / R1 / R5, donde PTC y PTC son los valores de PTC a 38 ° C y 42 ° C resp., Y R1 y R5 son nuestras incógnitas. Entonces LH

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

Nuevamente, resuelva para R1 y R5.

stevenvh
fuente
@Kortuk - ¡Oh, mierda! :-) Sí, tienes razón, los agregaré. Solo un minuto (o 2, 3 ...)
stevenvh
@Kortuk - Ahí, listo. ¿Contento? :-)
stevenvh
todavía un poco corto :) Probablemente notaste que en realidad no voté en contra.
Kortuk
1
@ Kortuk - Sí, sabía que no lo harías. Creo que ahora te conozco lo suficientemente bien como para saber que primero preguntas. ;-)
stevenvh
su respuesta fue lo suficientemente buena sin un esquema, solo pensé que era una mejora menor, su respuesta ya recibió un voto positivo de mi parte.
Kortuk
2

Debe agregar un par de resistencias de retroalimentación positiva para agregar histéresis a opamp.

ingrese la descripción de la imagen aquí

Fuente de imagen

miceuz
fuente
1

ingrese la descripción de la imagen aquí

Esta es la ecuación más general en el que proviene de la Ley Actual de Kirchhoff:Vin

VinVddR1+VinVssR2+VinVoutRf=0

Por características opamp, sabemos que:

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

Entonces podemos escribir dos ecuaciones separadas para estos dos estados.

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

Ejemplo:

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

ingrese la descripción de la imagen aquí

% 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;
hkBattousai
fuente
1

Como se comentó anteriormente, el uso de la retroalimentación es la clave para archivar la histéresis usando amplificadores operacionales.

Este artículo de Albert Lee muestra de manera práctica cómo hacerlo y cómo hacer las matemáticas para calcular los niveles de histéresis deseados en el sistema.

RHaguiuda
fuente