ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 93
Скачиваний: 10
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Министерство науки и высшего образования Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра конструирования и производства радиоаппаратуры (КИПР)
Расчет переходных процессов в электрической цепи
Пояснительная записка к курсовому проекту по дисциплине «Информатика и технологии прикладного программирования радиоэлектронных средств»
Студент гр. 209
Д.А. Пичугин
20.01.2021
Руководитель
Доцент кафедры КИПР
И.Л. Артемов оценка
________ дата
Томск 2021
2
Министерство образования и науки Российской Федерации
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ
УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра конструирования и производства радиоаппаратуры (КИПР)
УТВЕРЖДАЮ
И. о. зав. каф. КИПР
Кривин Н.Н.________
___________________
ТЕХНИЧЕСКОЕ ЗАДАНИЕ
На курсовую работу «Расчёт переходных процессов в электрической цепи» по дисциплине «Информатика и технологии прикладного программирования радиоэлектронных средств»
Исполнитель: студент гр. Пичугин Данил Алексеевич
(фамилия имя отчество) обучающийся в университете по специальности 25.05.03 «Техническая
эксплуатация транспортного радиооборудования»
Дата выдачи технического задания____________15.09.2020_____________
Срок сдачи законченной работы на кафедру_________22.12.2020________
Руководитель курсовой работы: _доцент кафедры КИПР_______________
____________
Артемов Игорь Леонидович____________________________
(должность, место работы)
(фамилия, имя, отчество)
3
ЦЕЛЬ РАБОТЫ: Приобрести практические навыки в использовании вычислительных
алгоритмов для решения задач электротехники. Написать вычислительную
программу расчёта переходных процессов в электрической цепи.
СОДЕРЖАНИЕ РАБОТЫ:
1.
Определение геометрических элементов электрической цепи, представ- ленной на рисунке 1;
2.
Составление обыкновенных дифференциальных уравнений для описания переходных процессов в электрической цепи на основе уравнений Кирхгофа;
3.
Определение времени переходного процесса;
4.
Составление программы на языке C для решения системы дифференциа- льных уравнений численным методом Рунге – Кутты;
5.
Получение апериодического переходного процесса;
6.
Получение колебательного переходного процесса;
7.
Исследование переходных процессов (апериодического и колебательного) в виртуальной лаборатории ASIMEC и сравнение с результатами численных расчётов, полученных с помощью программы.
Рисунок 1 – Схема электрической цепи
4
Результаты работы предоставляются руководителю не позднее указанной
даты в виде пояснительной записки, оформленной в соответствии с
требованиями ОС ТУСУР 01-2013
Задание принято к исполнению ________________/ /
(подпись) (расшифровка)
Руководитель работы_______________________/ /
(подпись) (расшифровка)
5
Оглавление
1 Введение .............................................................................................................. 6 2 Основная часть .................................................................................................... 7 2.1 Постановка физико-математической задачи ............................................. 7 2.2 Вычислительная программа на языке Си ................................................ 10 2.3 Проведение тестирования полученной программы ............................... 16 3 Заключение ........................................................................................................ 26
Список использованных источников ................................................................. 27
6
1
Введение
Целью курсовой работы является приобретение практических навыков в использовании вычислительных алгоритмов для решения задач электротехники, а также в написании вычислительной программы на языке Си для расчета переходных процессов в электрической цепи.
7
2 Основная часть
2.1
Постановка физико-математической задачи
Схема замещения электрической цепи представлена на рисунке 2.1.1.
Значения параметров элементов: R1=100 Ом, R2=50 Ом, R3=50 Ом, R4 = 150 Ом,
E
=100 В, L=0.01 Гн, C=0.00001 Ф. Необходимо составить и решить систему обыкновенных дифференциальных уравнений, описывающих переходный процесс, начиная с
( )
( )
0 при
0 0 и 0
C
L
t
U
i
.
=
=
Рисунок 2.1.1 - Схема замещения электрической цепи
Определяем количество узлов
3
уз
N
=
, количество ветвей
5
в
N
=
, количество ветвей, содержащих только идеальные источники ЭДС
0
E
N
.
=
По первому закону Кирхгофа необходимо составить
1 2
уз
E
N
N
− −
=
. С учетом направлений токов уравнения записываются для двух узлов:
2 1
4 0 (
для узла А),
0 (
для узла B).
C
R
L
R
L
R
i
i
i
i
i
i
−
− =
+ −
=
Необходимое количество уравнений по второму закону Кирхгофа определяется
1 3
в
уз
N
N
.
−
+ =
8
С учетом положительных направлений обхода контуров и падений напряжения на элементах получается
4 3
2 1
4 1
(
для контура 1);
U
0 (
для контура 2);
(
)
0 (
для контура 3).
L
R
R
C
R
R
L
R
R
U
U
U
U
E
U
U
U
U
+
+
+
=
+
−
=
−
+
=
Компонентные соотношения для элементов схемы имеют вид:
1 1
1 2
2 2
3 3
4 4
4
,
R
R
R
R
R
C
R
R
L
C
L
C
U
R i
U
R i , U
R i , U
R i ,
di
dU
U
L
, i
C
.
dt
dt
=
⋅
=
⋅
=
⋅
=
⋅
=
=
Подставляя компонентные соотношения в уравнения, составленные по законам Кирхгофа, получим следующую систему из 5 уравнений:
2 1
4 4
4 3
2 2
1 1
4 4
1 1
0 0
0
(
)
0
C
R
L
R
L
R
C
L
R
C
L
R
R
R
R
dU
C
i
i
;
dt
i
i
i
;
dU
di
L
i
R
C
R
U
E;
dt
dt
di
i
R
i
R
L
;
dt
i
R
i
R
.
−
− =
+ −
=
+
⋅
+
⋅
+
=
⋅
+
⋅
−
=
−
⋅
+
⋅
=
Выразим производные
C
L
dU
di
L
,C
dt
dt
через переменные
L
i и
C
U
, используя блок Given-Find в программе MathCad.
9 2
2 3
2 3
2 3
1 2
2 4
1 2
1 3
2 4
3 4
1 2
3 1
2 4
1 3
4 2
3 4
1 2
1 3
2 4
3 4
1 2
2 4
1 2
1 3
2 4
3 4
1
+
C
C
L
L
C
L
dU
R
E
C
U
i
;
dt
R
R
R
R
R
R
di
R R
R R
L
U
dt
R R
R R
R R
R R
R R R
R R R
R R R
R R R
i
R R
R R
R R
R R
R R
R R
E
.
R R
R R
R R
R R
=
⋅ −
+ ⋅
+
+
+
+
+
=
⋅ −
+
+
+
+
+
+
+
+ ⋅ −
+
+
+
+
+
⋅
+
+
+
В результате, получаем искомый вид системы двух обыкновенных дифференциальных уравнений:
11 12 1
21 22 2
C
C
L
L
C
L
dU
U
A
i
A
B ;
dt
di
U
A
i
A
B .
dt
=
⋅
+ ⋅
+
=
⋅
+ ⋅
+
где
2 2
3 2
3 11 12 2
3 1
1 2
3 1
2 4
1 3
4 2
3 4
1 2
2 4
1 2
1 3
2 4
3 4
1 2
1 3
2 4
3 4
21 22 1
2 2
4 1
2 1
3 2
4 3
4 2
1
R
R
R
R
R
A
, A
,
C
C
E
R
R
B
,
C
R R R
R R R
R R R
R R R
R R
R R
R R
R R
R R
R R
R R
R R
R R
R R
A
, A
,
L
L
R R
R R
E
R R
R R
R R
R R
B
.
L
−
+
+
=
=
+
=
+
+
+
+
−
−
+
+
+
+
+
+
=
=
+
⋅
+
+
+
=
10
Для нахождения времени переходного процесса найдем собственные числа матрицы
(
) (
)
11 12 11 12 21 22 21 22 11 22 12 21
т.е.
0
или
0
A
A
A
A
A
,
A
A
A
A
A
A
A
A
− λ
=
=
− λ
− λ ⋅
− λ −
⋅
=
Решая квадратное уравнение, находим собственные числа
1 2
и
λ
λ матрицы
A.
Если собственные числа вещественные, то переходный процесс будет апериод- ическим и время переходного процесса определяется по формуле:
1 2
переход
1 2
1 2
1 1
5 max(
).
,
, t
,
τ =
τ =
= ⋅
τ τ
λ
λ
Если собственные числа комплексные, то переходный процесс будет колебательным и время переходного процесса определяется по формуле:
1 2
переход
1 2
1 2
1 1
5 max(
).
Re( )
Re(
)
,
, t
,
τ =
τ =
= ⋅
τ τ
λ
λ
По условию задачи, на начальный момент времени
( )
( )
0 0
0 0
C
L
U
, i
=
=
и, таким образом, решается следующая задача Коши:
( )
( )
11 22 1
21 22 2
0 0
0 0
+B
C
C
L
C
L
L
C
L
dU
U
A
i
A
B ,
dt
U
, i
,
di
U
A
i
A
,
dt
=
⋅
+ ⋅
+
=
=
=
⋅
+ ⋅
+
переход на интервале 0;t
.
2.2
Вычислительная программа на языке Си
В основе вычислительной программы на языке Си лежит метод Рунге-Кутты для решения системы двух обыкновенных дифференциальных уравнений первого порядка.
11
Рассмотрим систему двух обыкновенных дифференциальных уравнений первого порядка, которую мы получили при постановке физико-математической задачи:
(
)
(
)
( )
( )
1 2
0 0
0 0
C
C
L
C
L
L
C
L
dU
f U ,i ,t ,
dt
U
, i
,
di
f U ,i ,t ,
dt
=
=
=
=
переход на интервале 0;t
.
Формулы метода Рунге-Кутта 4-го порядка для системы двух дифферен- циальных уравнений первого порядка (для количества точек
1000
N
=
):
( )
( )
( )
( )
1 1
1 2
3 4
1 2
3 4
1
переход
2 2
6 2
2 6
m
m
m
m
C
C
L
L
m
m
k
k
k
k
U
U
,
l
l
l
l
i
i
,
t
t
h,
t
h
,
N
+
+
+
+
+
+
=
+
+
+
+
=
+
=
+
=
где
( )
( )
(
)
( )
( )
(
)
( )
( )
( )
( )
( )
( )
( )
( )
( )
( )
1 1
1 2
1 1
1 1
2 1
2 2
2 2
2 2
3 1
3 2
4 1
3 3
2 2
2 2
2 2
2 2
2 2
2 2
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
m
C
L
C
L
m
m
C
L
C
L
m
m
C
L
C
L
C
L
k
h f U
,i
,t
, l
h f U
,i
,t
,
k
l
k
l
h
h
k
h f U
,i
,t
, l
h f
U
,i
,t
,
k
l
k
l
h
h
k
h f U
,i
,t
, l
h f
U
,i
,t
,
k
h f U
k ,i
l ,
= ⋅
= ⋅
= ⋅
+
+
+
= ⋅
+
+
+
= ⋅
+
+
+
= ⋅
+
+
+
= ⋅
+
+
(
)
( )
( )
(
)
4 2
3 3
0 1 2 1
m
m
m
m
C
L
t
h , l
h f U
k ,i
l ,t
h ,
m
, , ,...,N
.
+
= ⋅
+
+
+
=
−
Сначала последовательно вычисляются на каждом шаге коэффициенты
1 1
4 4
k ,l ,...,k ,l , а затем значения функций в следующей точке
( )
( )
1 1
1
m
m
m
C
L
U
,i
,t
.
+
+
+
12
Текст вычислительной программы на языке Си, представляющей собой ре- шение численным путем полученной системы двух обыкновенных дифференци- альных уравнений методом Рунге – Кутта, представлен в листингах 2.2.1 и 2.2.2.
Листинг 2.2.1 содержит текст заголовочного файла functions.h, в котором содержится описание и объявление использующихся в программе функций, структур и макросов.
Листинг 2.2.1 - functions.h
1.
#ifndef _FUNCTIONS_H
2.
#define _FUNCTIONS_H
3.
#define buffer 1024 4.
#define sSize 7 // R1 R2 R3 R4 E C L
5.
// Find the max value
6.
double
max_value(
const
double
* tau1,
const
double
* tau2) {
7.
if
((tau1)>(tau2))
8.
return
*tau1;
9.
else
10.
return
*tau2;
11.
}
12.
// Structure for reading from file "data.txt"
13.
struct
data {
14.
char
ch[buffer];
15.
char
symbol[buffer];
16.
double
value;
17.
};
18.
typedef
struct
data m_Data;
19.
// Structure for convenient transfer of coefficients into functions double U() and double I()
20.
struct
factor {
21.
double
A11;
22.
double
A12;
23.
double
B1;
24.
double
A21;
25.
double
A22;
26.
double
B2;
27.
};
28.
typedef
struct
factor m_Factor;
29.
// dUc/dt=f1(U,iL)
30.
double
U(
double
y0,
double
y1,
const
m_Factor* temp)
31.
{
32.
return
temp->A11*y0+temp->A12*y1+temp->B1;
33.
}
34.
// diL/dt=f2(U,iL)
35.
double
I(
double
y0,
double
y1,
const
m_Factor* temp)
36.
{
37.
return
temp->A21*y0+temp->A22*y1+temp->B2;
38.
}
39.
#endif
40.
13
Листинг 2.2.2 содержит текст файла main.c, в котором содержится основное тело программы:
• реализация чтения исходных данных для параметров цепи из текстового файла data.txt (строки 12-33);
• решение поставленной физико-математической задачи для исходной цепи
(строки 35-91);
• реализация метода Рунге-Кутта для решения системы двух дифференциаль- ных уравнений первого порядка (строки 98-101, 109-126);
• запись результатов вычислений в два отдельных текстовых файла – для
( )
( )
и
C
L
U
t
i
t
– в каждом из которых содержится два столбца числовых данных: первый столбец – время, второй – значение искомой функции
(строки 94-97, 106-107, 131-132).
Листинг 2.2.2 – main.c
1.
#include
2.
#include
3.
#include
4.
#include "functions.h"
5.
6.
// A data file is in the path:
7.
// {Path_to_this_project}//RK4//Output//MingW//data.txt
8.
// There is the data for the current circuit
9.
// Program created to solve circuit of Variant 13 10.
11.
int
main() {
12.
FILE
*file;
// file which contains the parameters of circuit of Variant 13 13. file = fopen(
"data.txt"
,
"r"
);
14.
if
(file == NULL) {
15. printf(
"Error. Failed to open file 'data.txt'.\n"
);
16.
return
-1;
17.
}
else
{
18. printf(
"File successfully opened.\n"
);
19.
}
20.
21. m_Data storage[sSize];
22.
int
j=0;
// Read data from data.txt using fscanf()
23.
while
(fscanf(file,
"%s%s%lf"
, storage[j].ch, storage[j].symbol, &(storage[j].value)) !=
EOF) {
24. printf(
"%s %s %f\n"
, storage[j].ch, storage[j].symbol, storage[j].value);
25. j++;
26.
}
27.
double
R1 = storage[0].value;
28.
double
R2 = storage[1].value;
29.
double
R3 = storage[2].value;