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 |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.