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

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

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

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

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

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

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

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

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

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

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

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

Вариант №

Выполнил

Оценка

студент гр. №

5201

Проверил

Синев А. Е.

(ФИО)

(ФИО)

Дата

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

2019 г.

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

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

  1. 9

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

Модуль численного расчёта траекторий усовершенствованным методом Эйлера с определением времени пролёта через ячейку конечно-разностной сетки.

Содержание работы:

Разработка алгоритма и программы на С++ для численного расчёта траекторий усовершенствованным методом Эйлера с определением времени пролёта через параллелепипед.

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

1) Размеры ячейки-параллелепипеда.

2) Электрическое и магнитное поле, зависящие от координат.

3) Начальные параметры траектории (координаты точки старта и вектор начальной скорости)

Результаты работы:

1. Программа расчёта траекторий и времени пролёта через ячейку. 2. Методика тестирования и отладки программы.

Литература:

1. Internet.

2. В. М. Вержбицкий Основы численных методов. Учебник для вузов. – М.: Высш. Шк., 2002.

Модуль численного расчёта траекторий усовершенствованным методом Эйлера с определением времени пролёта через ячейку конечно-разностной сетки.

1. Цель и задача выполнения курсового проекта

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

Задача выполнения курсового проекта: разработка алгоритма и С++ программы расчета технологической операции в соответствии с заданными темой работы и исходными данными.

2. Основные этапы разработки программ

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

  2. Составление алгоритма

  3. Программирование (кодирование) – перевод алгоритмически написанной модели на язык программирования

  4. Отладка – поиск и устранение ошибок.

  5. Тестирование – поиск и устранение несоответствий с начальной постановкой задачи и с алгоритмами, используемыми при решении. В случае необходимости, выбираются другие алгоритмы или вообще переделывается постановочная часть. После внесения всех изменений соответствующие пункты разработки проходятся заново.

  6. Создание документации, помощи.

ПОСТАНОВКА ЗАДАЧИ

  1. Задание

Модуль численного расчёта траекторий усовершенствованным методом Эйлера с определением времени пролёта через ячейку конечно-разностной сетки.

Усовершенствованный метод Эйлера:

, где 

Программный код:

// Obama.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#include <math.h>

#include <iostream>

using namespace std;

int main(void) {

int i;

double x, y, z, Vx, Vy, Vz, end, dVx, dVy, dVz, 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++)

{

dVx = 0.1758*10e12*(Ex - Vy*Bz + Vz*By)*dt;

dVy= 0.1758*10e12*(Ey - Vz*Bx + Vx*Bz)*dt;

dVz = 0.1758*10e12*(Ez - Vx*By + Vy*Bx)*dt;

Vx = Vx + dVx;

x = x + Vx*dt;

Vy = Vy + dVy;

y = y + Vy*dt;

Vz = Vz + dVz;

z = z + Vz*dt;

cout << "x,y,z:(" << x << ", " << y << ", " << z << "); "<< endl;

}

cin >> u;}

Тестовая задача:

Задача с начальными параметрами:

Шаг по времени: dt = 0.5*10^(-17);

Результат тестирования:

Были взяты, отмеченные красным, точки, нормированные по 10^(-17) по х и 10^(-16) по y.

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