Скачиваний:
6
Добавлен:
28.04.2022
Размер:
362.7 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Государственное образовательное учреждение

высшего профессионального образования

Санкт-Петербургский государственный электротехнический университет

«ЛЭТИ» им. В.И. Ульянова ( Ленина)

ФАКУЛЬТЕТ ЭЛЕКТРОНИКИ (ФЭЛ)

КАФЕДРА Радиотехнической электроники

КУРСОВАЯ РАБОТА (ПРОЕКТ)

По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ

На тему: Разработка модуля программы анализа электронного прибора

(указывается обобщенная тема)

Вариант № 20

Выполнил

Оценка

студент гр. №

5201

Проверил

Синев А. Е.

Акимов Д.И.

(ФИО)

(ФИО)

Дата

САНКТ-ПЕТЕРБУРГ

2019 г.

ЗАДАНИЕ на курсовую работу

По дисциплине: ПРОГРАММНЫЕ СРЕДСТВА МОДЕЛИРОВАНИЯ ЭЛЕКТРОННОЙ КОМПОНЕНТНОЙ БАЗЫ

  1. .

Название курсовой работы:

Модуль численного расчёта траекторий методом Рунге-Кутты 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;

}

Результаты программы:

Соседние файлы в папке курсачи