Преобразователь приращения напряжения в напряжение, страница 2

3. Погрешность для 3-го каскада:1.3365%.

4. Погрешность для всего прибора:1.4237%.

Листинг программы

% Файл созданный 21 марта 2006 года. В нем будет произведен расчет

% погрешностей для курсового проекта по схемотехнике "Преобразование

% приращения сопротивления в напряжение"

% Рассчитаю погрешность обусловленную температурным дрейфом резисторов

% Расчет погрешность обусловленную подключением двух резисторов во втором

% каскаде

% Расчет производится для двух пределов измерения приращения сопротивлений

% Источник опорного напряжения использованный мной ADR445

% Относительная погрешность этого источника 0.04

% ТКС для ADR445  1 ppm/C

% диапазон температур для ADR445 -55 +50

clc

disp(['Start program2']);

% Массив для сохранения значений погрешностей

% Первый элемент для первого значения сопротивлений

% Второй элемент для второго значения сопротивлений

Cask1=[0 0]; % Погрешность первого каскада

Cask2=[0 0]; % Погрешность второго каскада

Cask3=[0 0]; % Погрешность третьего каскада

TheMistake=[0 0]; % Погрешность всего прибора

%Ввожу значения сопротивлений:

%Выбираем тип расчета погрешности для второго каскада.

for CountType=1:2

%CountType=1 - расчет ведется для первого предела R0=100 Ом deltaR=20 Ом

%CountType=2 - расчет ведется для второго предела R0=1000 Ом deltaR=200 Ом

R1=50*10^3;

Run=2*10^3; %Расшифровывается как R усиления нижнее

% Из за технологических особенностей схемы, резистор обратной связи это два

% параллельно подключенных сопротивления.

%Первый предел измерений

if(2==CountType)

Ruv(1)=180*10^3; %Расшифровывается как R усиления верхнее

Ruv(2)=18*10^3;

Rx=120; %Сопротивление приращение которого мы измеряем, вместе с приращением

end

%Второй предел измерений

if(1==CountType)

  Ruv(1)=18*10^3;

  Ruv(2)=0;

  Rx=1200; %Сопротивление приращение которого мы измеряем, вместе с приращением

end

R2=1*10^3;

R3=25*10^3;

R4=5*10^3;

% Относительная погрешность (разброс) используемых мной прецизионных резисторов

SigmaRazb=0.001;

% Относительная погрешность (разброс) ADR445

SigmaRazbU=0.004;

% Согласно заданию у нас прибор функционирует при температуре от -30 до 50,

% для расчета погрешности от температуры нужно узнать максимальное

% отклонение от 25 градусов от температурного предела функционирование.

% Вывод deltaT=55 градусов такое отклонение температуры +25 градусов.

deltaT=55;

% В прецизионных резисторах используемой мной серии TKC <= 25 ppm/C

TKC=25*10^(-6);

% В ADR445 ТКС <=1 ppm/c

TKCU=1*10^(-6);

% Относительная погрешность обусловленная температурным дрейфом

SigmaTemp=deltaT*TKC;

% Относительная погрешность источника напряжения от температура

SigmaTempU=deltaT*TKCU;

% Относительная погрешность от опорного источника напряжения

SigmaU=sqrt(SigmaRazbU^2+SigmaTempU^2);

% Относительная погрешность от резисторов

Sigma=sqrt(SigmaRazb^2+SigmaTemp^2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Расчет погрешности от сопротивление для первого Инвертирующего Каскада

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

U0=5;% Входное напряжение равное 5 вольтам.

Uout1=-U0*(Rx/R1); %Значение напряжения без погрешности.

Uout1R1=-U0*Rx/(R1*(1+Sigma));%Значение напряжения с погрешностью созданной R1

%Приведенная относительная погрешность напряжения Uout1 от  R1

GamaUout1=abs((Uout1R1-Uout1)/Uout1);

%disp(['Приведенная относительная погрешность первого каскада:']);

%Сохраняю данные для вывода их в конце программы

Cask1(CountType)=GamaUout1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Расчет погрешности для второго усиливающего не инвертирующего каскада

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Рассчитаю погрешность двух параллельно подключенных сопротивлений

% Сначала рассчитаю относительную погрешность сопротивлений.

% после рассчитаю погрешность напряжений, вызванную погрешностью

% сопротивлений.

    GAMA1=Ruv(2)*Sigma/(Ruv(2)+Ruv(1));

    GAMA2=Ruv(1)*Sigma/(Ruv(2)+Ruv(1));

    GAMA=sqrt(GAMA1^2+GAMA2^2);%Относительная погрешность двух параллельно подключенных сопротивлений.

    Ruv1=Ruv(1)+Ruv(2);%Значение Двух параллельно подключенных сопротивлений

    Uout2=Uout1*(1+Ruv1/Run); %Значение выходного сопротивления сопротивлений без погрешности

    Uout2Ruv=Uout1*(1+Ruv1*(1+GAMA)/Run);%Значение выходного сопротивления с погрешностью от Ruv

    Uout2Run=Uout1*(1+Ruv1/(Run*(1+Sigma)));%Значение выходного сопротивление с погрешностью от Run

    GamaUout2Ruv=(Uout2Ruv-Uout2)/Uout2;%Приведенная относительная погрешность от Ruv

    GamaUout2Run=(Uout2Run-Uout2)/Uout2;%Приведенная  относительная погрешность от Run

    GamaUout2=sqrt(GamaUout2Ruv^2+GamaUout2Run^2);

    % disp(['Приведенная относительная погрешность второго каскада']);

    % Сохраняю данные для вывода их в конце программы

    Cask2(CountType)=GamaUout2;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Расчет погрешности для 3 каскада, Сумматора

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Uout3=-Uout2*R3/R2-U0*R3/R4;% значение выходного сопротивления без погрешностей

R=R2*(1+Sigma);

Uout3R2=-Uout2*R3/R-U0*R3/R4;%Значение выходного напряжение с погрешностью по R2

R=R3*(1+Sigma);

Uout3R3=-Uout2*R/R2-U0*R/R4;%Значение выходного напряжения с погрешность по R3

R=R4*(1+Sigma);

Uout3R4=-Uout2*R3/R2-U0*R3/R; %Значение выходного напряжения с погрешностью по R4

Up(1)=Uout3R2;

Up(2)=Uout3R3;

Up(3)=Uout3R4;

GamaUout3=0;%Приведенная Погрешность третьего каскада Сумматора

for k=1:3

    TheGama3(k)=(Up(k)-Uout3)/Uout3%Расчитываю погрешность Uout3 от каждого из сопротивлений

    GamaUout3=GamaUout3+TheGama3(k)^2;

end

GamaUout3=sqrt(GamaUout3);%Окончательный расчет погрешности

%disp(['Приведенная относительная погрешность третьего каскада']);

%Сохраняю данные для вывода их в конце программы

Cask3(CountType)=GamaUout3;

%Приведенная относительна погрешность всего прибора

GamaUout=sqrt(GamaUout1^2+GamaUout2^2+GamaUout3^2+SigmaU^2);

% Окончательная погрешность всего прибора

TheMistake(CountType)=GamaUout;

%Конец цикла расчета погрешностей для обоих пределов

end

disp('***Приведенные относительные погрешности прибора***');

for k=1:2

    disp(['Погрешности для ' num2str(k) '-го предела измерений']);

    disp(['1. Погрешность для 1-го каскада:' num2str(Cask1(k)*100) '%.']);

    disp(['2. Погрешность для 2-го каскада:' num2str(Cask2(k)*100) '%.']);

    disp(['3. Погрешность для 3-го каскада:' num2str(Cask3(k)*100) '%.']);

    disp(['4. Погрешность для всего прибора:' num2str(TheMistake(k)*100) '%.']);

end

Литература:

  1. "Искусство схемотехники" П. Хоровиц, У. Хилл
  2. У. Тице., К. Шенк "Полупроводниковая схемотехника" Москва "Мир" 1983 г
  3. www.analog.com
  4. www.chipinfo.ru