これは、 VI N キルヒホッフの現行法に由来するノード:
VI N− VddR1+ VI N− Vs s sR2+ VI N− VO U TRf= 0
オペアンプの特性から、次のことがわかります。
Vin <= VIL ==> Vout = VOL (Low State)
Vin >= VIH ==> Vout = VOH (High State)
したがって、これら2つの状態に対して2つの別々の方程式を書くことができます。
V私L− VddR1+ V私L− Vs s sR2+ V私L− VO LRf= 0V私LR1/ / R2/ / Rf= VddR1+ Vs s sR2+ VO LRfV私L= (R1/ / R2/ / Rf)[ VddR1+ Vs s sR2+ VO LRf]V私H= (R1/ / R2/ / Rf)[ VddR1+ Vs s sR2+ VO HRf]
例:
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;