Программа для построения графиков АЧХ и ФЧХ и расчета зависимости продольной составляющей магнитного вектора от координат

Амплитудно-частотная и фазо-частотная характеристики отрезка волновода в заданном диапазоне длин волн. Картина силовых линий всех типов волн, которые участвуют в переносе активной энергии. Зависимость продольных составляющих волн от поперечных координат.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 15.08.2012
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Задание

1. Построить амплитудно-частотную (АЧХ) и фазо-частотную (ФЧХ) характеристики отрезка волновода длиной L в заданном диапазоне длин волн.

2. Изобразить картину силовых линий электромагнитного поля всех типов волн, которые в этом диапазоне длин волн могут участвовать в переносе активной энергии. Построить зависимости их продольных составляющих от поперечных координат. Привести картины распределения плотности поверхностного тока, соответствующего распределению поля этих типов волн на стенках волновода.

3. Во сколько раз изменяется длительность импульса прямоугольной формы на выходе волновода по сравнению со входом, если частота заполнения импульса равна центральной частоте рабочего диапазона волновода.

Исходные данные:

Длина отрезка L = 12 м;

Материал стенок - медь (у = 5.7107 См/м);

Амплитуда поля Еmax = 10 В/м;

Тип волновода - прямоугольный;

Характерные размеры волновода - 58х29 мм;

Рабочий диапазон min - max , 0.058-0.115 м;

Длительность импульса фи =1.2 нс.

Задание 1

Определим типы волн, участвующих в переносе энергии на заданном диапазоне длин волн:

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 1. Диаграмма типов волн в прямоугольном волноводе

Сопоставив диаграмму типов волн и заданный интервал длин волн видно, что в волноводе будет распространяться волна типа H10.

Т.к. стенки волновода имеют конечную проводимость, за счет этого образуются потери, т.е. продольная составляющая является комплексной:

h1 - коэффициент фазы

h2 - коэффициент затухания

Для прямоугольного волновода определено погонное затухание:

Амплитудно-частотная характеристика волновода:

Фазо-частотная характеристика:

ФЧХ с компенсацией повторных набегов, выраженная в градусах:

Задание 2

Запишем структуру волны данного типа:

Решив системы дифференциальных уравнений:

и используя уравнения Максвелла, а также учтя граничные условия, можно получить картины силовых линий электромагнитного поля в прямоугольном волноводе. Примерный вид их представлен на рисунке

Из записанной структуры волны типа H10 в прямоугольном волноводе видно, что продольная составляющая присутствует только у магнитного вектора, причем она не зависит от поперечной координаты y.

Построим графики зависимости в момент времени 0, в плоскости z=0, при длине волны равной 0,058 м.

Картины линий поверхностного тока на стенках волновода можно определить, используя равенство:

Задание 3

Анализируя спектр прямоугольного импульса, видно, что основная часть энергии сосредоточена в области от н до в. Ширина спектра связана с длительностью импульса:

Рисунок 4. Спектральная плотность прямоугольного импульса

Найдем данные частоты:

По условию:

При этом основная доля энергии сигнала заключена в пределах центрального лепестка спектральной диаграммы, т.е. между частотами

Низкочастотная часть спектра импульса образует группу, распространяющуюся со скоростью

Высокочастотная группа распространяется со скоростью:

Низкочастотная группа волн «отстанет» от высокочастотной на отрезок времени длительностью:

волна амплитудный частотный зависимость

Приложение 1

Исходный код и скриншоты программы расчета

Main.pas:

unit main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, math, unit2, unit3;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Label6: TLabel;

ComboBox1: TComboBox;

ComboBox3: TComboBox;

Button1: TButton;

Memo1: TMemo;

Button2: TButton;

Button3: TButton;

Button4: TButton;

SaveDialog1: TSaveDialog;

Label7: TLabel;

Label8: TLabel;

ComboBox5: TComboBox;

Edit7: TEdit;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Edit8: TEdit;

ComboBox8: TComboBox;

ComboBox6: TComboBox;

ComboBox2: TComboBox;

ComboBox4: TComboBox;

ComboBox9: TComboBox;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const c=3e8;

var

Form1: TForm1;

dt,vv,vn,fn,fv,a,b,fmin,fmax,L,ti,lmin,lmax, omega, e, e0,m0, sigma, Em: double;

eval: boolean;

implementation

{$R *.dfm}

procedure prepare();

begin

eval:=true;

m0:=4*pi/10000000;

case form1.ComboBox1.ItemIndex of

0 : sigma:=strtofloat(form1.Edit3.Text);

1 : sigma:=strtofloat(form1.Edit3.Text)*1000;

2 : sigma:=strtofloat(form1.Edit3.Text)*1000000;

end;

case form1.ComboBox2.ItemIndex of

0 : L:=strtofloat(form1.Edit6.Text)*1e-3;

1 : L:=strtofloat(form1.Edit6.Text)*1e-2;

2 : L:=strtofloat(form1.Edit6.Text);

3 : L:=strtofloat(form1.Edit6.Text)*1e3;

end;

case form1.ComboBox3.ItemIndex of

0 : Em:=strtofloat(form1.Edit4.Text);

1 : Em:=strtofloat(form1.Edit4.Text)*100;

2 : Em:=strtofloat(form1.Edit4.Text)*1000;

3 : Em:=strtofloat(form1.Edit4.Text)*100000;

end;

case form1.ComboBox4.ItemIndex of

0 : a:=strtofloat(form1.Edit5.Text)*1e-9;

1 : a:=strtofloat(form1.Edit5.Text)*1e-6;

2 : a:=strtofloat(form1.Edit5.Text)*1e-3;

3 : a:=strtofloat(form1.Edit5.Text)*1e-2;

4 : a:=strtofloat(form1.Edit5.Text)*1e-1;

5 : a:=strtofloat(form1.Edit5.Text);

end;

case form1.ComboBox5.ItemIndex of

0 : lmin:=strtofloat(form1.Edit1.Text)*1e-9;

1 : lmin:=strtofloat(form1.Edit1.Text)*1e-6;

2 : lmin:=strtofloat(form1.Edit1.Text)*1e-3;

3 : lmin:=strtofloat(form1.Edit1.Text)*1e-2;

4 : lmin:=strtofloat(form1.Edit1.Text)*1e-1;

5 : lmin:=strtofloat(form1.Edit1.Text);

end;

case form1.ComboBox6.ItemIndex of

0 : lmax:=strtofloat(form1.Edit2.Text)*1e-9;

1 : lmax:=strtofloat(form1.Edit2.Text)*1e-6;

2 : lmax:=strtofloat(form1.Edit2.Text)*1e-3;

3 : lmax:=strtofloat(form1.Edit2.Text)*1e-2;

4 : lmax:=strtofloat(form1.Edit2.Text)*1e-1;

5 : lmax:=strtofloat(form1.Edit2.Text);

end;

case form1.ComboBox9.ItemIndex of

0 : b:=strtofloat(form1.Edit7.Text)*1e-9;

1 : b:=strtofloat(form1.Edit7.Text)*1e-6;

2 : b:=strtofloat(form1.Edit7.Text)*1e-3;

3 : b:=strtofloat(form1.Edit7.Text)*1e-2;

4 : b:=strtofloat(form1.Edit7.Text)*1e-1;

5 : b:=strtofloat(form1.Edit7.Text);

end;

case form1.ComboBox8.ItemIndex of

0 : ti:=strtofloat(form1.Edit8.Text)*1e-12;

1 : ti:=strtofloat(form1.Edit8.Text)*1e-9;

2 : ti:=strtofloat(form1.Edit8.Text)*1e-6;

3 : ti:=strtofloat(form1.Edit8.Text)*1e-3;

4 : ti:=strtofloat(form1.Edit8.Text);

end;

fmin:=c/lmax;

fmax:=c/lmin;

end;

function h2 (f : double): double;

begin

h2:=0.0913*(1+2*b/a*sqr(c/2/a/f))/b/sqrt(c/f*sigma*(1-sqr(c/2/a/f)));

end;

function h1 (f : double): double;

begin

h1:=2*pi*f*L/c*sqrt(1-sqr(c/f/2/a));

end;

function H (x : double): double;

begin

H:=1/2/fmax/m0/a*Em*cos(pi*x/a);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

prepare;

Form1.Memo1.Lines.Clear;

Form1.Memo1.Lines.Add(' Исходные данные:');

Form1.Memo1.Lines.Add('lamdamin = '+floattostrf(lmin,ffgeneral,5,6)+' м');

Form1.Memo1.Lines.Add('lamdamax = '+floattostrf(lmax,ffgeneral,5,6)+' м');

Form1.Memo1.Lines.Add('a = '+floattostrf(a,ffgeneral,5,6)+' м');

Form1.Memo1.Lines.Add('b = '+floattostrf(b,ffgeneral,5,6)+' м');

Form1.Memo1.Lines.Add('L = '+floattostrf(L,ffgeneral,5,6)+' м');

Form1.Memo1.Lines.Add('fmin = '+floattostrf(c/lmax,ffgeneral,5,6)+' Гц');

Form1.Memo1.Lines.Add('fmax = '+floattostrf(c/lmin,ffgeneral,5,6)+' Гц');

Form1.Memo1.Lines.Add('sigma = '+floattostrf(sigma,ffgeneral,5,6)+' См/м');

Form1.Memo1.Lines.Add('Em = '+floattostrf(Em,ffgeneral,5,6)+' В/м');

Form1.Memo1.Lines.Add('ti = '+floattostrf(ti,ffgeneral,5,6)+' c');

Form1.Memo1.Lines.Add('');

Form1.Memo1.Lines.Add(' Расчет:');

Form1.Memo1.Lines.Add('f0 = '+floattostrf(0.5*(fmin+fmax),ffgeneral,5,6)+' Гц');

fn:=0.5*(fmin+fmax)-1/ti;

fv:=0.5*(fmin+fmax)+1/ti;

Form1.Memo1.Lines.Add('fн = '+floattostrf(fn,ffgeneral,5,6)+' Гц');

Form1.Memo1.Lines.Add('fв = '+floattostrf(fv,ffgeneral,5,6)+' Гц');

Vv:=c*sqrt(1-sqr(c/fv/2/a));

Vn:=c*sqrt(1-sqr(c/fn/2/a));

Form1.Memo1.Lines.Add('Vгрв = '+floattostrf(Vv,ffgeneral,5,6)+' м/с');

Form1.Memo1.Lines.Add('Vгрн = '+floattostrf(Vn,ffgeneral,5,6)+' м/с');

dt:=abs(L/Vv-L/Vn);

Form1.Memo1.Lines.Add('Dt = '+floattostrf(dt,ffgeneral,5,6)+' с');

Form1.Memo1.Lines.Add('N = '+floattostrf((dt+ ti)/ti,ffgeneral,5,6));

end;

procedure TForm1.Button2Click(Sender: TObject);

var f,df: double;

begin

form2.Series1.Clear;

form2.Series2.Clear;

if eval then

begin

df:= (fmax-fmin)/1000;

f:=fmin;

repeat

Form2.Series1.AddXY(f*1e-6,exp(-h2(f)*L),'',clred);

f:=f+df;

until f>fmax;

f:=fmin;

repeat

Form2.Series2.AddXY(f*1e-6,180/pi*(h1(f)*L-int(h1(f)*L/2/pi)*2*pi),'',clred);

f:=f+df;

until f>fmax;

form1.Hide;

form2.Show;

end

else showmessage('Необходимо сначала произвести расчет!');

end;

procedure TForm1.Button3Click(Sender: TObject);

var x,dx: double;

begin

if eval then

begin

form3.Series1.Clear;

x:=0;

dx:=2*a/1000;

repeat

Form3.Series1.AddXY(x*1000,1e3*H(x),'',clred);

x:=x+dx;

until x>a;

x:=0;

repeat

Form3.Series2.AddXY(x*1000,1e3*H(0),'',clred);

x:=x+dx;

until x>b;

form1.Hide;

form3.show;

end

else showmessage('Необходимо сначала произвести расчет!');

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

if eval then

begin

if form1.SaveDialog1.Execute then

form1.Memo1.Lines.SaveToFile(form1.SaveDialog1.FileName+'.txt');

end

else showmessage('Необходимо сначала произвести расчет!');

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

eval:=false;

end;

end.

Рисунок 5. Скриншот главной формы

Unit2.pas:

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, ExtDlgs,

ComCtrls;

type

TForm2 = class(TForm)

Button1: TButton;

Chart1: TChart;

Chart2: TChart;

Series1: TLineSeries;

Series2: TLineSeries;

Button2: TButton;

SavePictureDialog1: TSavePictureDialog;

TrackBar1: TTrackBar;

TrackBar2: TTrackBar;

TrackBar3: TTrackBar;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Button3: TButton;

Edit1: TEdit;

Edit2: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure TrackBar1Change(Sender: TObject);

procedure TrackBar2Change(Sender: TObject);

procedure Edit2Change(Sender: TObject);

procedure Edit1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

uses main;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);

begin

form2.Hide;

form1.show;

end;

procedure TForm2.Button2Click(Sender: TObject);

begin

if form2.SavePictureDialog1.Execute then

begin

form2.Chart1.SaveToMetafile(form2.SavePictureDialog1.FileName+'_АЧХ.wmf');

form2.Chart2.SaveToMetafile(form2.SavePictureDialog1.FileName+'_ФЧХ.wmf');

end;

end;

function h1 (f : double): double;

begin

h1:=2*pi*f*L/c*sqrt(1-sqr(c/f/2/a));

end;

procedure TForm2.Button3Click(Sender: TObject);

var df,f,fm:double;

begin

df:= (fmax-fmin)/(form2.TrackBar3.Position+1)/1000;

f:=fmin+(fmax-fmin)*form2.TrackBar1.Position/1000;

fm:=fmax-(fmax-fmin)*(1000-form2.TrackBar2.Position)/1000;

Form2.Series2.Clear;

repeat

Form2.Series2.AddXY(f*1e-6,180/pi*(h1(f)*L-int(h1(f)*L/2/pi)*2*pi),'',clred);

f:=f+df;

until f>fm;

end;

procedure TForm2.TrackBar1Change(Sender: TObject);

begin

form2.Edit2.Text:=inttostr(form2.TrackBar1.Position);

end;

procedure TForm2.TrackBar2Change(Sender: TObject);

begin

form2.Edit1.Text:=inttostr(form2.TrackBar2.Position);

end;

procedure TForm2.Edit2Change(Sender: TObject);

begin

form2.TrackBar1.Position:=strtoint(form2.Edit2.text);

end;

procedure TForm2.Edit1Change(Sender: TObject);

begin

form2.TrackBar2.Position:=strtoint(form2.Edit1.text);

end;

end.

Рисунок 6. Скриншот формы с графиками АЧХ и ФЧХ

Unit3.pas:

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type

TForm3 = class(TForm)

Chart1: TChart;

Series1: TLineSeries;

Button1: TButton;

Button2: TButton;

Chart2: TChart;

Series2: TLineSeries;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit2, main;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

if form2.SavePictureDialog1.Execute then

begin

form3.Chart1.SaveToMetafile(form2.SavePictureDialog1.FileName+'_H(x).wmf');

form3.Chart2.SaveToMetafile(form2.SavePictureDialog1.FileName+'_H(y).wmf');

end;

end;

procedure TForm3.Button2Click(Sender: TObject);

begin

form3.Hide;

form1.show;

end;

end.

Рисунок 7. Скриншот формы с зависимостями Нz от x и y

Размещено на Allbest.ru


Подобные документы

  • Амплитудно-частотная и фазо-частотная характеристика схемы. Построение графиков зависимостей. Временные характеристики на входе и выходе схемы. Реакция схемы на единичный скачок (функция Хэвисайда). Шестнадцатибитовое аналогово-цифровое преобразование.

    курсовая работа [1,3 M], добавлен 16.07.2012

  • Упругие волны, волновое уравнение, дифракция волн. Метод коллокаций, конечных и граничных элементов. Методы возбуждения ультразвуковых волн в объекте. Численный метод решения дифференциальных уравнений с частными производными. Уменьшение зоны смещения.

    дипломная работа [1,4 M], добавлен 14.10.2013

  • Изучение основных положений синтаксиса среды MathCAD, правил выполнения расчетов и построения графиков в ней. Построение графиков зависимостей группового времени запаздывания от частоты и амплитудно-частотных характеристик выбранных типов фильтров.

    курсовая работа [1,6 M], добавлен 03.01.2022

  • Исследование передаточной функции разомкнутой системы в виде произведения элементарных звеньев. Построение схемы переменных состояния замкнутой системы автоматического управления. Расчет логарифмической амплитудно-частотной характеристики данной системы.

    контрольная работа [547,4 K], добавлен 03.12.2012

  • Создание программы для обучения пользователя пониманию и нахождению координат точки на координатной плоскости. Обоснование этапов обработки информации, общая концепция программы "Декартовая система координат", определение ее состава и структуры.

    курсовая работа [1,3 M], добавлен 20.10.2022

  • Простейший способ построения 2D-графика. Способы проектирования двух графиков в одной системе координат. Закрепление графического окна. Дополнительные параметры команды plot. Axis: управление масштабом. Оформление графиков. Построение 3D-поверхности.

    презентация [962,5 K], добавлен 24.01.2014

  • Постановка задачи и ее математическая модель. Блок-схема алгоритма обработки массивов координат точек. Тестирование алгоритма сортировки. Используемые глобальные и локальные переменные. Листинг программы на языке Си. Анализ результатов. Пример работы.

    курсовая работа [1,8 M], добавлен 08.11.2012

  • Модифицированный метод Ньютона при заданных начальных условиях, где задаётся погрешность вычисления. Вычисления корня уравнения при помощи программы. Построения графика зависимости приближений двух координат, при котором задаются промежутки и константы.

    реферат [14,1 K], добавлен 29.01.2009

  • Динамические процессы в линейных и нелинейных системах регулирования. Амплитудно-частотная характеристика линейной цепи. Расчет передаточной функции по формуле Мезона. Определение степени затухания по переходной характеристике колебательного звена.

    контрольная работа [763,8 K], добавлен 15.07.2014

  • Система гиперболических дифференциальных уравнений в частных производных. Таблица идентификаторов для программы. Реализация программы на языке С++. Исходный код программы для вывода в среде MATLAB. Тестовые примеры для программы, реализующей явную схему.

    курсовая работа [1,2 M], добавлен 19.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.