курсачи / kyrs
.docxМИНОБРНАУКИ РОССИИ
Государственное образовательное учреждение
высшего профессионального образования
Санкт-Петербургский государственный электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
ФАКУЛЬТЕТ ЭЛЕКТРОНИКИ (ФЭЛ)
КАФЕДРА Радиотехнической электроники
КУРСОВАЯ РАБОТА (ПРОЕКТ)
По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ
На тему: Разработка модуля программы анализа электронного прибора
Вариант № 17
Выполнил |
|
|
Оценка |
|
студент гр. № |
5201
|
|
Проверил |
Синев А. Е. |
|
Малыгин Д. |
|
|
(ФИО) |
|
(ФИО) |
|
Дата |
|
САНКТ-ПЕТЕРБУРГ
2019 г.
ЗАДАНИЕ на курсовую работу
По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ
Вариант №17
Название курсовой работы: |
Модуль расчёта потенциала от линейного заряда методом интегральных уравнений. |
Содержание работы: |
Разработка алгоритма и С++ - программы расчёта потенциала внутри области с заданным линейным зарядом. |
Исходные данные: |
Замкнутая поверхность, заданная набором плоских треугольников, и распределение заряда внутри области, ограниченной этой поверхностью. |
Результаты работы: |
1. Программа расчёта потенциала от линейного заряда методом интегральных уравнений. 2. Методика тестирования и отладки программы. |
Литература: |
1. Internet. 2. Моделирование полупроводниковых приборов и технологических процессов. Последние достижения. Под ред. Д. Миллера, М.: Радио и связь, 1989. |
Общие сведения.
Расчёт потенциала в данной программе осуществлялся при помощи формулы:
Где – относительная диэлектрическая проницаемость, линейная плотность распределения заряда, – расстояние от точки до произвольного элемента . В данной формуле заменяется на формульное представление:
– элемент линейного заряда с поверхностной плотностью заряда τ.
Расчёт расстояния от точки до произвольного элемента был произведён следующим образом:
При расположении выбранной для расчёта точки на линейном заряде (следственно, , потенциал, как в программе, так и в теории принимает бесконечное значение). В данной программе есть возможность выбрать любые координаты x, y, z для точки , в которой будет рассчитан потенциал. Также можно задать любую длину линейного заряда. Само расположение линейного заряда выбрано на оси Х, при выбранной изометрии
Тестирование программы заключается в сравнении результатов вычисления потенциала при разном значении разбиения линейного заряда.
Рис. 2. – Расчёт потенциала произведён при разных значениях разбиения
Рис. 4. – Расчёт потенциала при R = 0
Проведем так же проверку аналитическим методом, для этого решим задачу нахождения потенциала в точке, удаленное от стержня на расстояние равное длине стержня. При этом, стержень можно разбить на элементарные отрезки dL и заряд, находящийся на них, можно принять как точечный.
Рис. 5. – Выбранный макет для решения задачи
В этом случае, используя формулу для точечного заряда, получаем:
Из рисунка:
Подставив это в предыдущую формулу получаем:
Проинтегрировав это выражение в пределах и получим потенциал, создаваемый всем зарядом, распределенным на стержне:
Так как по условию точка А была взята симметрично от концов стержня, то и равны, поэтому:
Получаем:
Так как:
Получаем:
В пределах от 0 до (так как треугольник равносторонний).
Подставив пределы интегрирования получаем:
Приведем пару примеров вычисления потенциалов в равностороннем треугольнике:
Рис. 6.– Расчет в Matchcad
Код программы в Visual studio
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <iomanip>
#include <istream>
using namespace std;
int main()
{
double I, pi, e0, Tau, fi, L, x, y, z;
I = 0;
pi = 3.14;//число пи
e0 = 8.85e-012;//диэлектрическая проницаемость вакуума
cout << "Hello there,it's a electric potential calculation program \n";
cout << "During the work isometrics YZX was choosed \n";
cout << "Your charge is on the X-axis \n";
cout << "Tau: ";//задаем значение тау
cin >> Tau;
cout << "Length of linear source: ";
cin >> L;
cout << "Point coordinate a(x,y,z)" << endl;//задаем координаты точки а, в которой будем рассчитывать потенциал
cout << "X: ";//координата х
cin >> x;
cout << "Y: ";//координата y
cin >> y;
cout << "Z: ";//координата z
cin >> z;
double R, a, b, c, dl, step, ln, R1, R2, R3;
char ans = 'Y';
step = L;//шаг равен длине линейного заряда
ln = 2;
while (ans == 'Y' || ans == 'y')
{
if (x < L && y == 0 && z == 0)
{
cout << "The infinity potential" << endl;
system("PAUSE");
return(0);
}
else {
ln = ln * 2;
I = 0;
step = step / 2;
dl = 4 * step*step;
for (int i = 1; i >= 0; i--)
{
if (i == 1)
c = L;
else
c = 0;
R3 = (c - z)*(c - z);
b = L - step;
while (b >= step)
{
R2 = (b - y)*(b - y);
a = L - step;
while (a >= step)
{
R1 = (a - x)*(a - x);
R = sqrt(R1 + R2 + R3);
I = I + Tau * dl / R;
a = a - 2 * step;
};
b = b - 2 * step;
};
}
fi = I/(4 * pi * e0);//расчёт потенциала
cout << "N line segments on which the surface is broken : " << ln << endl;
cout << "The potential of a linear charge at a point a: ";
cout << setprecision(5)<< fi << endl;
cout << endl << "Broke more? (Y)," << endl;
cout << "No (N)" << endl;
cin >> ans;
}
}
system("PAUSE");
return(0);
}
Вывод: Исходя из полученных результатов, можно прийти к тому, что при увеличении числа разбиений, потенциал стремится к определенному значению (Рис. 2, 3). При расстоянии R = 0 потенциал имеет бесконечное значение, связано это с тем, что выбранная для расчета точка попадает на линейный заряд.
Список литературы:
Internet.
Моделирование полупроводниковых приборов и технологических процессов. Последние достижения. Под ред. Д. Миллера, М.: Радио и связь, 1989.