Рефераты. Разработка програмного обеспечения для расчёта дисперсионной характеристики планарного волновода

В программе решение данного уравнения реализавано методом дихотомии, схема которого приведена ниже.

Рисунок 3.1 - блок-схема метода дихотомии.

Далее, используя полученные значения направляющих углов, строится график, отображающий профили ТЕ-мод. График, отображающий правую часть уравнения (3.1), практической ценности для решения задачи не имеет и носит чисто иллюстративный характер.

4. ОПИСАНИЕ ПРОГРАММЫ.

Вид программы представлен на рисунке 4.1. По своей внешней форме она представляет собой 4 закладки, расположенные на 1 форме. На первой закладке осуществляется ввод исходных данных, на второй строится график дисперсионной характеристики волновода, на третьей выводятся значения направляющих углов, а на чётвертой строятся профили ТЕ-мод.

Рисунок 4.1 - Основной вид программы, закладка для ввода исходных данных.

Все вычисления и построения графиков производятся при смене закладки с первой на любую другую (событие объекта TPageControl «OnChange»). Перед сменой (событие «OnChanging») осуществляется проверка на полноту исходных данных: если хоть в одном из окон осталось стоящее по умолчанию число «0», то смены закладки не произойдёт, зато возникнет информационное окно, которое укажет пользователю на его ошибку. При повторном переходе с первой закладки на другую будет произведён перерасчёт.

Вычисление направляющих углов осуществляется с указанной в задании точностью - 0,001.

Полная схема и листинг программы находятся в приложении А и В соответственно.

5. Результаты решения, их интерпретация и выводы по проделанной работе.

5.1. результаты работы программы.

Расчёты проводились при следующих исходных данных:

Рисунок 5.1 - ввод исходных данных в программу.

При таких введённых параметрах программа рассчитала следующую дисперсионную характеристику:

Рисунок 5.2 - дисперсионная характеристика волновода.

Подсчитанные направляющие углы составили:

Рисунок 5.3 - направляющие углы ТЕ-мод.

И при этих углах программа построила вот такие профили ТЕ-мод:

Рисунок 5.4 - профили ТЕ-мод.

5.2. Результаты проверки в пакете «MathCAD».

При аналогичных исходных данных «MathCAD» выдал следующие результаты:

Рисунок 5.5 - график дисперсионной характеристики, полученный при помощи пакета «MathCAD».

Рисунок 5.6 - график с профилями ТЕ-мод, полученный при помощи пакета «MathCAD»

Полный листинг решения поставленной задачи в пакете «MathCAD» приведён в приложении С.

5.3. Интерпретация результатов и выводы по проделанной работе.

Проведя сравнительный анализ результатов, полученных при помощи написанной в «Delphi» программы и пакета «MathCAD», мы видим их полное совпадение в пределах заданной погрешности. Кроме того, конечные результаты, а именно профили ТЕ-мод, совпадают со справочными:

Рисунок 5.7 - три низшие ТЕ-моды асимметричного планарного волновода и соответствующие им зигзагообразные лучи.

Из этого можно сделать вывод, что поставленная задача была решена мною верно и в полном объёме. Я не только создал конечный програмный продукт, ограниченно пригодный для практического использования, но и получил практические навыки программирования в объектно ориентированной среде «Delphi».

6. Список используемой литературы:

1. «Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль». А.Е.Мудров - МП «Раско», Томск, 1992г, 270с.

2. «Оптические волны в кристаллах». А. Ярив, П. Юх - издательство «Мир», Москва, 1987г, 616с.

Приложение А.

Блок-схема тела основной программы.

Рисунок А.1 - блок-схема тела основной программы.

nn1,nn2,nn3 - показатели преломления, исходные данные, вводимые пользователем;

dd - толщина волновода, вводится пользователем;

wll - длина волны используемого света, вводится пользователем.

Блок-схема Процедуры «OnChanging».

Рисунок А.2 - блок-схема процедуры «OnChanging».

AllowChange - свойство объекта TPageControl, отвечающее за разрешение/неразрешение смены закладки;

mtInformation - информационное окно, уведомляющее пользователя о том, что он ввёл не все исходные данные.

Блок-схема Процедуры «OnChange».

Рисунок А.3 - блок-схема процедуры «OnChange».

i - переменная типа boolean, которая отвечает за то, будет ли при смене закладки осуществлён пересчёт;

chart1 - график, отображающий дисперсионную характеристику волновода;

chart2 - график, отображающий профили ТЕ-мод;

stringgrid1 - таблица, которая по ходу выполнения программы заполняется значениями направляющих углов;

n - переменная типа byte, соответствующая порядку моды;

a, b - переменные, задающие диапазон, на котором производится уточнение направляющих углов;

dwl - функция, задающая дисперсионную характеристику волновода (численно равна правой части уравнения (3.1));

dix - процедура, осуществляющая одну итерацию метода дихотомии;

k - вспомогательная переменнная типа integer, используемая для построения графика;

f(k), g(k) - функции от k, выступающие в роли аргумента для других функций;

e1, e2, e3 - функции, определяющие профиль моды в различных средах.

Блок-схема процедуры «dix».

Рисунок А.4 - блок схема процедуры «dix».

х1, х2, хm - крайние и среднее значения интервала, на котором производится уточнение корня;

y1, y2 ym - значения уточняемой функции от x1, x2 и xm соответственно;

xx1, xx2 , xxm - новые крайние и среднее значения интервала, полученные после его уменьшения вдвое.

Приложение В.

Модуль формы Form1.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, jpeg, ComCtrls, TeEngine, Series, TeeProcs,

Chart,math, Grids, Menus;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Image1: TImage;

Image2: TImage;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

TabSheet3: TTabSheet;

Chart1: TChart;

TabSheet4: TTabSheet;

Chart2: TChart;

StringGrid1: TStringGrid;

MainMenu1: TMainMenu;

File1: TMenuItem;

Exit1: TMenuItem;

Help1: TMenuItem;

About1: TMenuItem;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit4KeyPress(Sender: TObject; var Key: Char);

procedure Edit5KeyPress(Sender: TObject; var Key: Char);

procedure PageControl1Changing(Sender: TObject;

var AllowChange: Boolean);

procedure PageControl1Change(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure Exit1Click(Sender: TObject);

procedure About1Click(Sender: TObject);

Страницы: 1, 2, 3



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.