Файл: Национальный технический университет украины киевский политехнический институт кафедра систем автоматизированного проектирования.doc
Добавлен: 06.12.2023
Просмотров: 74
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
10. Моделирование полученной схемы фильтра
с помощью пакета ALLTED
Моделирование схемы фильтра, полученной с помощью разработанной программы, проводилось с помощью пакета схемотехнического проектирования ALLTED. Файл задания на моделирование АЧХ полученной схемы фильтра был сгенерирован разработанной программой, его листинг представлен в приложении П5. График логарифмической АЧХ схемы фильтра, полученный в результате расчета с помощью пакета ALLTED, представлен в приложении П6.
11. Сравнение полученных результатов
В результате расчета схемы фильтра с помощью разработанной программы, реализующей изложенную выше методику расчета, были получены следующие параметры логарифмической АЧХ фильтра (см. приложения П3 и П5), представленные в Таблице 1.
Значение при f = 0 Гц | 0 дБ |
Максимальное значение в полосе пропускания | 0.00 дБ |
Минимальное значение в полосе пропускания | -2.00 дБ |
Значение при f = Fc = 500 Гц | -2.00 дБ |
Неравномерность в полосе пропускания | 2 дБ |
Значение при f = f1 = 800 Гц | -30.33 дБ |
Минимальное затухание в полосе задерживания | 30.33 дБ |
Таблица 1. Параметры АЧХ фильтра, полученные с помощью разработанной программы.
При последующем моделировании полученной схемы фильтра с помощью пакета ALLTED , по построенному графику были получены следующие параметры логарифмической АЧХ фильтра, приведенне в Таблице 2.
Значение при f = 0 Гц | 0.0 дБ |
Максимальное значение в полосе пропускания | 0.96 дБ |
Минимальное значение в полосе пропускания | -0.48 дБ |
Значение при f = Fc = 500 Гц | -0.48 дБ |
Неравномерность в полосе пропускания | 1.44 дБ |
Значение при f = f1 = 800 Гц | -29.81 дБ |
Минимальное затухание в полосе задерживания | 29.81 дБ |
Таблица 2. Параметры АЧХ фильтра, полученные с помощью пакета ALLTED.
Если представленные в Таблице 2 АЧХ схемы фильтра пронормировать по значению на частоте f = 0 Гц, т.е принять это значение за 0 дБ, то параметры АЧХ схемы фильтра будут иметь следующий вид (см. Таблица 3) :
Значение при f = 0 Гц | 0 дБ |
Максимальное значение в полосе пропускания | 0.48 дБ |
Минимальное значение в полосе пропускания | -0.96 дБ |
Значение при f = Fc = 500 Гц | -0.96 дБ |
Неравномерность в полосе пропускания | 1.44 дБ |
Значение при f = f1 = 800 Гц | -30.29 дБ |
Минимальное затухание в полосе задерживания | 30.29 дБ |
Таблица 3. Параметры АЧХ фильтра, полученные с помощью пакета ALLTED, после нормированния относительно значения на частоте f = 0 Гц.
При сравнении Таблицы 1 с Таблицей 3, видим, что рассчитанная схема обеспечивает требуемое минимальное затухание в полосе задерживания (30 дБ), причем значения, полученные с помощью разработанной программы и с помощью пакета ALLTED, совпадают с хорошей точностью. Что же касается неравномерности АЧХ в полосе пропускания, то значение, полученное при моделировании в ALLTED, оказалось меньше максимально допустимого (2 дБ). Однако следует отметить, что график АЧХ, полученный в пакете ALLTED, имеет некоторый подъем вблизи частоты среза ( максимальное значение 0.48 дБ), причиной чего очевидно является небольшая расстройка звеньев фильтра относительно необходимых центральных частот вследствие того, что выходное сопротивление реальных операционных усилителей имеет конечное значение, а также других причин, которые не учитывались при расчете схемы фильтра разработанной программой.
Выводы
В процессе выполнения курсовой работы была спроектирована схема фильтра нижних частот. Для расчета схемы фильтра была разработана программа, реализующая изложенную выше методику расчета схемы фильтра нижних частот с максимально плоской аппроксимацией АЧХ ( по Баттерворту ). В результате выполнения этой программы была получена схема фильтра нижних частот восьмого порядка, состоящая из четырех последовательно включенных звеньев второго порядка, построенных по схеме с многопетлевой обратной связью.
Далее было проведено моделирование АЧХ полученной схемы фильтра с помощью пакета ALLTED. В качестве задания на моделирования использовался файл, автоматически сгенерированный разработанной программой. Полученные результаты несколько отличаются от рассчитанных с помощью разработанной программы, однако, в целом требования к параметрам АЧХ были удовлетворены, что свидетельствует о правильности описанной выше методики. Отклонения предполагаемых результатов от полученных при моделировании вызваны очевидно тем, что методика расчета предполагает, использование идеального операционного усилителя, а при моделировании в пакете ALLTED используется модель, приближенная к реальному операционному усилителю. Учитывая это обстоятельство, а также неизбежный разброс номиналов емкостных и резистивных компонентов в реальном устройстве, можно сделать вывод о том, что полученная схема фильтра нижних частот восьмого порядка имеет недостаточный запас по минимальному затуханию в полосе задерживания (при моделировании запас = 30.29 дБ – 30 дБ = 0.29 дБ ; в теории запас = 30.33 дБ –30 дБ =0.33 дБ ).Таким образом, при построении реального устройства следует взять порядок фильтра равным 9 вместо 8, что обеспечит достаточный запас по минимальному затуханию в полосе задерживания ( порядка 4.4 дБ).
10>10>
Листов
2000
СОДЕРЖАНИЕ
П1. Листинг разработанной программы, реализующей методику расчета | |
П2. Результаты расчета фильтра с помощью разработанной программы | |
П3. График АЧХ фильтра, полученный с помощью разработанной программы | |
П4.Протокол расчета схемы фильтра с помощью разработанной программы | |
П5. Листинг задания на исследование в пакете ALLTED | |
П6. График АЧХ фильтра, полученный в пакете ALLTED | |
П7. Структурная схема ARC- фильтра | |
П1. Листинг разработанной программы,
реализующей методику расчета
{ Программа расчета активных RC-фильтров нижних частот }
{ с аппроксимацией частотных характеристик по Баттерворту }
{ ФЭЛ НТУУ "КПИ" - Киев 2000 }
Program ARC;
Uses Crt,Graph;
Const
R0 = 1e+5; { нормирующий коэффициент }
MAX_ORDER = 50; { максимальный порядок фильтра }
POINTS = 400; { количество точек для расчета АЧХ }
atd_file = 'filter.atd';
tab_file = 'filter.tab';
txt_file = 'filter.txt';
Type
complex = record { комплексное число }
im : double;
re : double;
end;
ShemType = (invert,MOS,bikvadrat); { тип схемной реализации звена }
section = record { описание звена }
shem : ShemType; { тип схемы }
R1,R2,R3,R4,C1,C2:double; { номиналы компонентов схемы }
Q : double; { добротность }
end;
Var
Fc : double; { частота среза }
F1 : double; { граничная частота полосы задерживания }
Af : double; { макс. неравномерность в полосе пропускания }
Bf : double; { мин. затухание в полосе задерживания }
F0 : double; { нормирующая частота }
N : integer; { порядок фильтра }
H : double; { числитель передаточной функции }
Hi : double; { числитель передаточной функции каждого звена }
sigma0:double; { радиус полуокружности на которой находятся полюса }
Poles : array[1..MAX_ORDER div 2 + 1] of complex; {массив полюсов}
Sections: array[1..MAX_ORDER div 2 + 1] of section; {массив звеньев}
AFC : array[1..POINTS] of double; {массив АЧХ}
sect : integer; {кол-во звеньев}
low_freq :double; { нижняя граница частоты для расчета АЧХ }
high_freq:double; { верхняя граница частоты для расчета АЧХ }
ch : char;
Function Lg(x:double):double; { десятичный логарифм }
var result:double;
begin
result:=Ln(x)/2.30258509299405E+0000; { Lg(x)=Ln(x)/Ln(10)}
Lg:=result;
end;
Function Pow10(x:double):double; { 10 в степени x }
var result:double;
begin
result:=exp(x*2.30258509299405E+0000);
pow10:=result;
end;
Function Pow(a:double;x:double):double; { pow(a,x)=a^x }
var result:double;
begin
if (a<=0) then Halt(1);
result:=exp(x*ln(a));
pow:=result;
end;
Procedure _Add(a:complex; b:complex; var c:complex);{комплексное сложение}
begin
c.re:= a.re + b.re;
c.im:= a.im + b.im;
end;
Procedure _Sub(a:complex; b:complex; var c:complex);{комплексное вычитание}
begin
c.re:= a.re - b.re;
c.im:= a.im - b.im;
end;
Procedure _Mult(a:complex; b:complex; var c:complex);{комплексное умножение}
begin
c.re:= a.re*b.re - a.im*b.im;
c.im:= a.re*b.im + a.im*b.re;
end;
Function _Abs(a:complex):double; { модуль комплексного числа }
var result:double;
begin
result:=sqrt(sqr(a.re)+sqr(a.im));
_Abs:=result;
end;
Procedure _Div(a:complex; b:complex; var c:complex);{комплексное деление}
begin
b.im:=-b.im;
_Mult(a,b,c);
c.re:= c.re/(sqr(b.re)+sqr(b.im));
c.im:= c.im/(sqr(b.re)+sqr(b.im));
end;
Procedure LowPassFilter_Parameters;{ ввод исходных данных для расчета }
var ch : char;
error : boolean;
begin
error:=true;
while error do
begin
ClrScr;
TextColor(LIGHTGREEN);
writeln('Ввод исходных данных для расчета ARC-ФНЧ');
writeln('----------------------------------------');
GoToXY(1,4);
write('Частота среза Fc, Гц : '); read(Fc); writeln;
writeln('Неравномерность коэф. передачи ');
write('в полосе пропускания Aф, дБ : '); read(Af); writeln;
writeln('Граничная частота полосы');
write('задерживания F1, Гц : '); read(F1); writeln;
writeln('Минимальное затухание ');
write('в полосе задерживания Bф, дБ : '); read(Bf); writeln;
TextColor(LIGHTRED);
if (Fc<=0) or (F1<=0) then
writeln ('Ошибка в исходных данных : Fc<=0 или F1<=0')
else
if (Af<=0) or (Bf<=0) then
writeln ('Ошибка в исходных данных : Aф <=0 или Bф <=0')
else
if Af>=Bf then
writeln ('Ошибка в исходных данных : Aф >= Bф !')
else
if Fc>F1 then
writeln ('Ошибка в исходных данных : Fc >= F1 !')
else
error:=false;
writeln('Нажмите Enter');ch:=#255;
while ch<>#13 do ch:=Readkey;
TextColor(LIGHTGREEN);
end;
end;
Procedure LowPassFilter_Norming;{ нормирование частот }