
курсачи / Otchet_po_kurs
.docxМИНОБРНАУКИ РОССИИ
Государственное образовательное учреждение
высшего профессионального образования
Санкт-Петербургский государственный электротехнический университет
«ЛЭТИ» им. В.И. Ульянова ( Ленина)
ФАКУЛЬТЕТ ЭЛЕКТРОНИКИ (ФЭЛ)
КАФЕДРА Радиотехнической электроники
КУРСОВАЯ РАБОТА (ПРОЕКТ)
По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ
На тему: Разработка модуля программы анализа электронного прибора
(указывается обобщенная тема)
Вариант № 20
Выполнил |
|
|
Оценка |
|
студент гр. № |
5201 |
|
Проверил |
Синев А. Е. |
|
Акимов Д.И. |
|
|
(ФИО) |
|
(ФИО) |
|
Дата |
|
САНКТ-ПЕТЕРБУРГ
2019 г.
ЗАДАНИЕ на курсовую работу
По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ
.
Название курсовой работы: |
Модуль численного расчёта траекторий методом Рунге-Кутты 2-го порядка с определением времени пролёта через ячейку конечно-разностной сетки. |
Содержание работы: |
Разработка алгоритма и программы на С++ для численного расчёта траекторий методом Рунге-Кутты 2-го порядка с определением времени пролёта через параллелепипед. |
Исходные данные: |
1) Размеры ячейки-параллелепипеда. 2) Электрическое и магнитное поле, зависящие от координат. 3) Начальные параметры траектории (координаты точки старта и вектор начальной скорости) |
Результаты работы: |
1. Программа расчёта траекторий и времени пролёта через ячейку. 2. Методика тестирования и отладки программы. |
Литература: |
1. Internet. 2. В. М. Вержбицкий Основы численных методов. Учебник для вузов. – М.: Высш. Шк., 2002. |
Модуль численного расчёта траекторий методом Рунге-Кутты с определением времени пролёта через ячейку конечно-разностной сетки.
Цель работы: разработка программного кода в среде С++ для расчета траекторий методом Рунге-Кутты 2-го порядка с определением времени пролета через ячейку конечно-разностной сетки.
Теоретические данные:
Основной задачей работы является расчет траектории и времени пролета электрона в ячейке, в которой задано электрическое поле. Размеры ячейки параллелепипеда задаются пользователем, за точку страта принята точка с координатами (0;0;0), также пользователем задается начальный вектор скорости электрона. Схема метода Рунге-Кутты второго порядка описывается реккурентными формулами:
При начальном условии координаты (задача Коши) находятся координаты следующей точки, рассматриваемой данной формулой для функции отдельно для каждой оси по времени (введенная нами скорость).
Программный код в С++:
#include "stdafx.h"
#include <math.h>
#include <iostream>
#include <stdio.h>
using namespace std;
int main(void) {
int i;
double x, y, z, Vx, Vy, Vz, end, kx1, ky1, kz1, kx2, ky2, kz2, Vx1, Vy1, Vz1, dt, step, u, Ex, Ey, Ez, Bx, By, Bz, px, py, pz;
cout << "Vvedite razmeri parallelepipeda (x1,y1,y2)" << endl;
cin >> px >> py >> pz;
x = 0;
y = 0;
z = 0;
cout << "Vvedite vector nachalnoy skorosty(Vx,Vy,Vz)" << endl;
cin >> Vx >> Vy >> Vz;
cout << "Vvedite parametri E" << endl;
cin >> Ex >> Ey >> Ez;
cout << "Vvedite parametri B" << endl;
cin >> Bx >> By >> Bz;
cout << "Vvedite kolichestvo shagov" << endl;
cin >> step;
dt = 0.5*10e-17;
for (i = 1; i <= step; i++)
{
kx1 = 0.1758*10e12*(Ex - Vy*Bz + Vz*By)*dt;
ky1 = 0.1758*10e12*(Ey - Vz*Bx + Vx*Bz)*dt;
kz1 = 0.1758*10e12*(Ez - Vx*By + Vy*Bx)*dt;
Vx1 = Vx + kx1;
Vy1 = Vx + ky1;
Vz1 = Vx + kz1;
kx2 = 0.1758*10e12*(Ex - Vy1*Bz + Vz1*By)*dt;
ky2 = 0.1758*10e12*(Ey - Vz1*Bx + Vx1*Bz)*dt;
kz2 = 0.1758*10e12*(Ez - Vx1*By + Vy1*Bx)*dt;
Vx = Vx + (kx1 + kx2)/2;
x = x + Vx*dt;
Vy = Vy + (ky1 + ky2)/2;
y = y + Vy*dt;
Vz = Vz + (kz1 + kz2)/2;
z = z + Vz*dt;
cout << "x,y,z:(" << x << ", " << y << ", " << z << "); "<< endl;
}
cin >> u;
}
Результаты программы: