Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Курсова робота
з курсу :"Моделювання процесів
та систем керування "
на тему: "Трифазний трансформатор"
Варіант 1,в,2
Виконав:
студент групи КС-43
Перевірив:
Самотий В.В.
Львів 2008Зміст
Завдання для курсової роботи…………………………………………...3
Навести принципову схему пристрою описати його роботу………….5
Метод Рунге-Кутта……………………………………………………….9
Екстраполяційний метод …………………………… …………………..9
Програма для розрахунку перехідного і усталеного режимів роботи пристрою………………………………………………………………...11
Результати роботи програми…………………………………………...21
Висновок …………………………………………………………………...25
Список використаної літератури………………………………………….26
Завдання для курсової роботи.
Завдання для курсової роботи дають з вказанням номеру теми роботи, варіанту навантаження, та варіанту чисельних значень. Наприклад, завдання 3-б-2 передбачає виконати аналіз перехідних і усталених режимів роботи магнетного підсилювача з тристержневим магнетопровідником (рис. 4), що працює на активно-ємнісне навантаження, а чисельні значення параметрів підсилювача і навантаження вказані у другому варіанті теми 3. Крива намагнечування задається двома точками, що відділяють лінійні зони від нелінійної (рис. 1). Координати цих точок позначені А(і1, 1), В(і2, 2). Для того, щоб виконати апроксимацію ділянки АВ кубічним сплайном необхідні ще значення похідних в точках А, В. Для першої точки (А) похідна визначається безпосередньо по координатах
m1 = i1/1, (1)
а для другої точки (В) похідна m2 задана. Тоді рівняння ділянки ОА визначається рівнянням прямої, що проходить через початок координат
i() = m1. (2)
Рівняння ділянки ВС також описується рівнянням прямої
i() = m2 + i0, (3)
де вільний член і0 визначаємо за формулою
i0 = i2 - m22 . (4)
Таким чином криву намагнечування апроксимуємо виразом
В завданні потрібно виконати наступні пункти.
1. Навести принципову схему пристрою і описати його роботу.
2. Записати рівняння стану електричного і магнетного кіл пристрою.
3. Звести отримані рівняння до нормальної форми Коші, записавши їх відносно робочих потокозчеплень, струмів і напруг на конденсаторах.
4. Описати метод Рунге-Кутта четвертого порядку точності з постійним кроком інтегрування.
5. Описати ітераційний метод аналізу усталених режимів: екстраполяційний -алгоритм, або метод Ньютона.
6. Скласти алгоритм розрахунку перехідних і усталених режимів роботи пристрою.
7. Скласти програму розрахунку перехідних і усталених режимів роботи пристрою на алгоритмічній мові Сі.
8. Виконати розрахунок 5 періодів перехідного процесу, привести чисельні і графічні результати.
9. Виконати розрахунок усталеного режиму, привести чисельні і графічні результати.
10. За отриманими результатами зробити висновки.
Тема 1. Трифазний трансформатор.
Варіант
, Гн-1
, Гн-1
, Гн-1
r1, Ом
r2, Ом
1
140
120
40
1,0
2,5
2
170
150
70
1,5
3,5
3
200
180
90
2,0
4,5
Варіант
i1, A
i2, A
1, Вб
2, Вб
m2, Гн-1
Um, В
1
0,2
20
0,4
1,2
42
311
2
0,25
17
0,5
1,4
40
353
3
0,15
27
0,3
1,3
44
537
Вхідна напруга фази А визначається співвідношенням U1A = Umsin(314,1593t) B .
Параметри навантаження:
Варіант
схема а), в)
схема б), г)
RHА, Ом
RHВ, Ом
RHС, Ом
RHА, Ом
СНА, мкФ
RHВ, Ом
LНВ, мГн
1
10
40
80
25
400
10
15
2
15
5
60
35
350
40
50
3
80
10
40
45
300
80
100
Позначення:
1, 2, 0, - обернені індуктивності розсіювання первинної (1), вторинної (2) сторін трансформатора та нульової (0) послідовності;
r1, r2 - активні опори обмоток цих сторін;
Um - амплітуда напруги живлення.
Трифазний трансформатор
Навести принципову схему пристрою описати його роботу.
Розглянемо рівняння трифазного трансформатора. Нехай первинна обмотка з'єднана трикутником, а вторинна – зіркою. Параметри вторинної обмотки будемо вважати приведеними за числом витків до первинної. При формуванні диференціальних рівнянь стану будемо вважати, що параметри всіх фаз відрізняються один від одного, а вторинна обмотка трансформатора ввімкнена на лінійне несиметричне R-навантаження.
На рис. 1 наведена розрахункова схема електричного кола первинної сторони, на рис. 2 – електричного кола вторинної сторони трансформатора, а рис. 3 – маґнетного кола трансформатора. Вхідною дією є напруга живлення,
яку вважаємо заданою функцією часу U1A = Umsin(314,1593t) B.
Рівняння обмоток первинної сторони трансформатора, згідно прийнятим додатним напрямкам електричних напруг і струмів (рис. 1), можна записати у матричній формі
(1)
де – матриці-стовпчики повних потокозчеплень, напруг і струмів обмоток трансформатора ; – діагональна матриця опорів. Тут індекси A, B, C вказують на причетність до відповідних фаз, 1 – до первинної сторони трансформатора.
Тоді згідно розрахункової схеми контурів навантаження рис. 2, рiвняння обмоток вторинної сторони трансформатора будуть
(2)
де – матриці-стовпчики повних потокозчеплень фаз вторинної сторони трансформатора; – матриці-стовпчики струмів фаз вторинної сторони трансформатора; – діагональна матриця опорів вторинних обмоток.
Згідно розрахункової схеми рис. 3 рівняння стану маґнетного кола можна записати у вигляді
(3)
де – спадок маґнетних напруг в осердях трансформатора, які є кривими намаґнечення фаз; 0 – величина, обернена індуктивності розсіяння нульової послідовності.
Проте задану схему доцільніше подати у матричному вигляді
, (4)
де – обернена індуктивність розсіяння нульової послідовності трансформатора; – квадратна матриця розмірністю 33 всі елементи якої дорівнюють одиниці; – матриця-стовпчик робочих потокозчеплень фаз; – діагональна матриця обернених статичних індуктивностей фаз, які визначаємо основними за кривими намаґнечення
. (5)
Згідно рис. 3 можна для контурів розсіяння записати рівняння струмів
(6)
де – діагональна матриця обернених індуктивностей розсіяння первинних обмоток трансформатора; – діагональна матриця обернених індуктивностей розсіяння вторинних обмоток трансформатора.
Підставимо (6) в (4)
. (7)
Продиференціюємо (4) за часом
, (8)
Звівши подібні члени, отримаємо
. (9)
Рівняння (4.121) запишемо в нормальній формі Коші
, (10)
де .
Струми первинної обмотки можна визначити аналітично згідно рівняння (4)
. (11)
Для струмів навантаження необхідно записати диференціальні рівняння. Для цього продиференціюємо за часом друге рівняння (6)
(12)
Підставивши (10) в (12), отримаємо рівняння струмів навантаження в нормальній формі Коші
, (13)
де ; – одинична матриця.
Рівняння обмоток (1), (2) запишемо одним матричним виразом
, (14)
де – матриця-стовпчик повних потокозчеплень обмоток; – матриця-стовпчик напруг; – діагональна матриця опорів; – матриця-стовпчик струмів обмоток.
Рівняння (10), (13) з врахуванням позначень (14) запишемо у вигляді
, (15)
, (16)
де ; .
Тоді рівняння (15), (16) можна записати одним матричним рівнянням
, (17)
де – вектор змінних стану; – матриця коефіцієнтів; – вектор часових функцій.
Струми первинної обмотки можна визначити аналітично згідно рівняння
(18).
а лiнiйнi (рис. 1) як рiзницю двох сумiжних фазних
(19)
Метод Рунге-Кутта.
Алгоритм реалізації методу Рунге-Кутта четвертого порядку точності полягає в циклічному обчисленні y на кожному кроці за формулами:
,
де
Похибка цього методу становить .
Її можна знайти за допомогою "подвійного перерахунку", описаного вище.
Екстраполяційний метод
Як було показано вище, прискорений пошук вимушених періодичних режимів зводиться до обчислення початкових умов, які дають можливість в процесі інтеґрування рівнянь стану системи отримати безпосередньо усталений режим в обхід перехідного. Застосування методу Ньютона для цієї цілі передбачає обчислення матриці монодромії.
Визначення початкових умов, що виключають перехідну реакцію системи, можна проводити екстраполяційним методом, який не залежить від природи диференціальних рівнянь кола і тому позбавлений процедури обчислення матриці монодромії.
Екстраполяційні методи цільову функцію використовують у вигляді Інтеґруючи на періодах, породжуємо послідовність значень
де – період вхідної дії. Для послідовності , починаючи з , застосовуємо екстраполяцйну формулу
,
де – початкові умови входження в усталений режим.
В якості функції EXTR доцільно використати – алґоритм, який виконує обчислення границі послідовності з експоненційними складовими. Формула для обчислення наступного значення має вигляд
де Результат екстраполяції, що відповідає EXTR в (17) рівний В (18) використовується процедура обертання Самельсона де – k-й елемент n-мірної колонки .
Для систем розмірності значення . У нашому прикладі =3. Початкові умови усталеного режиму для швидкозатухаючих перехідних реакцій компонент визначаємо інтеґруванням рівнянь стану системи на періодах. Як правило . На жаль, не існує строгого критерію вибору i , тому тут можливий лише еврістичний підхід. Основний недолік екстраполяційних методів полягає в необхідності інтеґрування рівнянь динаміки на значному інтервалі часу.
Алґоритм обчислень
1. Інтеґруємо рівняння, від заданих початкових умов на періодах і визначаємо початкові умови періодичного режиму швидкозатухаючих компонент .
2. Маючи на -й ітерації початкові умови змінних стану (на першій ітерації умови п.1), інтеґруємо рівняння на 6 періодах і породжуємо послідовність
.
3. Згідно (18) визначаємо уточнене значення початкових умов
4. Перевіряємо умову збіжності ітераційного процесу. Якщо вона не виконується, то процес повторюємо з п.2, в противному випадку зупиняємо ітераційний процес.
Програма для розрахунку перехідного
і усталеного режимів роботи пристрою
Форма
Текст програми
#include <vcl.h>
#include <math.h>
#include <dstring.h>
#include <stdio.h>
#include <windows.h>
#include <string.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double x1, x2,y1,y2,m2;
double Fai;
double Xy[6];
double Yx[6];
double B[6][6];
double alfa[3];
double RO[6][6];
double i1,m1;
double X_diy[6],Y_diy[6];
double B_diy[6][6];
double hX[6];
double k; // загальний поточний час
double kk; //Поточний час для синусоїди
double Um;
double tstsrt,delt, tn, del_t_fail;
double alfa1[3][3];
double alfa2[3][3];
double alfa0E[3][3];
double alfap[3][3];
double U[6];
double iperv[3];
void OBN(double t);
void Prurist(double Dx, double Dy);
//---------------------------------------------------------------------------
void Ober(double W[3][3],double INVERS[3][3])
{
double E[3][3],V[3][3],P[3],Y[3],C[3][3], X[3];
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
if (i==j) E[i][j]=1;
else E[i][j]=0;
for (int b=0;b<3; b++)
{
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
{ V[i][j]=W[i][j];
P[i]=E[i][b];}
for (int k=0;k<3;k++)
{Y[k]=P[k]/V[k][k];
for (int i=k+1; i<3; i++)
{P[i]=P[i]-V[i][k]*Y[k];
for (int j=k+1;j<3;j++)
{C[k][j]=V[k][j]/V[k][k];
V[i][j]=V[i][j]-V[i][k]*C[k][j];} }}
X[3-1]=Y[3-1];
for (int i=3-2; i>=0;i--)
{double w=0;
for (int j=i+1;j<3; j++)
w+=C[i][j]*X[j];
X[i]=Y[i]-w;}
for (int i=0; i<3; i++)
INVERS[i][b]=X[i];
}
}
//-----------------------------------------------------------------------------
double I_A(double si)
{ double b1,b2,b3,b4,Ia,h;
int i=1;
if (si<0) i=-1;
si=fabs(si);
m1=y1/x1;
if (si<=x1) return i*m1*si;
if(si>x2) return i*(m2*si+y2-m2*x2);
h=x2-x1;
b1=(2*(si-x1)+h)*pow(x2-si,2);
b2=(2*(x2-si)+h)*pow(si-x1,2);
b3=(si-x1)*pow(x2-si,2);
b4=(si-x2)*pow(si-x1,2);
Ia=(b1*y1+b2*y2)/pow(h,3)+(b3*m1+b4*m2)/pow(h,2);
return i*Ia;
}
double dA(double si)
{ double bd1,bd2,bd3,bd4,dIa,h;
m1=y1/x1;
h=x2-x1;
si=fabs(si);
if (si<=x1) return m1;
if(si>x2) return m2;
bd1=2*pow(x2,2)-8*si*x2+6*pow(si,2)+4*x1*x2-4*si*x1-2*x2*h+2*si*h;
bd2=4*x2*si-4*x1*x2-6*pow(si,2)+8*si*x1-2*pow(x1,2)+2*si*h-2*x1*h;
bd3=pow(x2,2)-4*x2*si+3*pow(si,2)+2*x1*x2-2*si*x1;
bd4=3*pow(si,2)-4*si*x1+pow(x1,2)-2*x2*si+2*x1*x2;
dIa=((bd1*y1+bd2*y2)/pow(h,3))+((bd3*m1+bd4*m2)/pow(h,2));
return dIa;
}
//---------------------------------------------------------------------------
void Obnov_Matrix(double fia, double fib, double fic)
{
double alf1[3][3];
double ii[6];
double G[3][3];
double oberG[3][3];
double D1[3][3];
double D2[3][3];
double D[3][6];
double A21[3][3];
double A22[3][3];
double A2[3][6];
int i,j,w;
//формування матриці альфа
for (i=0;i<3;i++)
for (j=0;j<3;j++)
{
alfap[i][j]=0;
D1[i][j]=0;
D2[i][j]=0;
A21[i][j]=0;
A22[i][j]=0;
}
alfap[0][0]=dA(fia);
alfap[1][1]=dA(fib);
alfap[2][2]=dA(fic);
for (i=0;i<3;i++)
for (j=0;j<3;j++)
G[i][j]=alfap[i][j]+alfa0E[i][j]+alfa1[i][j]+alfa2[i][j];
Ober(G,oberG);
// формування матриці D
for (w=0;w<3;w++)
for (i=0;i<3;i++)
for(j=0;j<3;j++)
{
D1[w][i]+=oberG[w][j]*alfa1[j][i];
D2[w][i]+=oberG[w][j]*alfa2[j][i];
}
for (i=0;i<3;i++)
for (j=0;j<3;j++)
D[i][j]=D1[i][j];
for (i=0;i<3;i++)
for (j=3;j<6;j++)
D[i][j]=D2[i][j-3];
// формування матриці A2
for (w=0;w<3;w++)
for (i=0;i<3;i++)
for(j=0;j<3;j++)
{
A21[w][i]+=-alfa2[w][j]*D1[j][i];
A22[w][i]+=alfa2[w][j]*(1-D2[j][i]);
}
for (i=0;i<3;i++)
for (j=0;j<3;j++)
A2[i][j]=A21[i][j];
for (i=0;i<3;i++)
for (j=3;j<6;j++)
A2[i][j]=A22[i][j-3];
//-------------------- B
for (i=0;i<3;i++)
for (j=0;j<6;j++)
B[i][j]=D[i][j];
for (i=3;i<6;i++)
for (j=0;j<6;j++)
B[i][j]=A2[i-3][j];
// формування матриці U
U[0]=Um*sin(314.1593*kk); U[1]=Um*sin(314.1593*kk+2*M_PI/3);
U[2]=Um*sin(314.1593*kk+4*M_PI/3);
U[3]=0; U[4]=0; U[5]=0;
// формування матриці i
for(i=3;i<6;i++)
ii[i]=Xy[i];
for (i=0;i<3;i++)
ii[i]=iperv[i];
// формування матриці Yx
for(w=0;w<6;w++)
{
Yx[w]=U[w];
for (i=0; i<6; i++)
Yx[w]-=RO[w][i]*ii[i];
}
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
double ys;
FILE *Fapro;
if ((Fapro = fopen("Апроксимація.txt","wt")) == NULL)
{
ShowMessage("помилка");
return;
}
x2=StrToFloat(Edit5->Text);
x1=StrToFloat(Edit1->Text);
y1=StrToFloat(Edit2->Text);
y2=StrToFloat(Edit4->Text);
m2=StrToFloat(Edit3->Text);
ys=0;
while (ys<1.56)
{
fprintf(Fapro,"%lf %lf %lf \n",ys,I_A(ys),dA(ys));
ys+=0.01;
}
fclose(Fapro);
}
//---------------------------------------------------------------------------
double Fh(int nn,double k ) // k поточний час
{
double K1,K2,K3,K4;
int i;
Prurist(k,0);
K1=0;
for (i=0;i<6;i++)
K1+=B[nn][i]*Yx[i];
OBN(k);
Prurist(k+delt/2,K1*delt/2);
K2=0;
for (i=0;i<6;i++)
K2+=B[nn][i]*Yx[i];
OBN(k);
Prurist(k+delt/2,K2*delt/2);
K3=0;
for (i=0;i<6;i++)
K3+=B[nn][i]*Yx[i];
OBN(k);
Prurist(k+delt,K3*delt);
K4=0;
for (i=0;i<6;i++)
K4+=B[nn][i]*Yx[i];
OBN(k);
return delt*(K1+2*K2+2*K3+K4)/6;
}
//---------------------------------------------------------------------------
void Prurist(double Dx, double Dy) // Dx - приріст t Dy - відносний
{
int i,j;
kk=Dx;
Obnov_Matrix(Xy[0],Xy[1],Xy[2]);
for (i=0;i<6;i++)
Yx[i]+= Dy;
}
//------------------------------------------------------------------------------
void OBN(double t)
{
int i,j;
for (i=0;i<6;i++)
{
Xy[i]=X_diy[i];
Yx[i]=Y_diy[i];
}
kk=t;
Obnov_Matrix(Xy[0],Xy[1],Xy[2]);
}
//------------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
FILE *Fa;
if ((Fa = fopen("Моделювання.txt","wt")) == NULL)
{
ShowMessage("Помилка");
return;
}
int i,j;
double k;
double RN[3];
double Alfa[3];
double rk[2];
double tumch[3];
// ñòâîðåííÿ ïî÷àòêîâèõ äàíèõ
x2=StrToFloat(Edit5->Text);
x1=StrToFloat(Edit1->Text);
y1=StrToFloat(Edit2->Text);
m2=StrToFloat(Edit3->Text);
Alfa[0]=StrToFloat(Edit15->Text);
Alfa[1]=StrToFloat(Edit13->Text);
Alfa[2]=StrToFloat(Edit14->Text);
RN[0]=StrToFloat(Edit21->Text);
RN[1]=StrToFloat(Edit22->Text);
RN[2]=StrToFloat(Edit20->Text);
rk[0]=StrToFloat(Edit18->Text);
rk[1]=StrToFloat(Edit19->Text);
// формування alf
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
alfa1[i][j]=0;
alfa2[i][j]=0;
alfa0E[i][j]=Alfa[0];
}
for(i=0;i<3;i++)
{
alfa1[i][i]=Alfa[1];
alfa2[i][i]=Alfa[2];
}
//------------------
for (i=0;i<6;i++)
for (j=0;j<6;j++)
RO[i][j]=0;
// створення матриці опорів
for (i=0;i<3;i++)
RO[i][i]=rk[0];
for (i=3;i<6;i++)
RO[i][i]=rk[1]+RN[i-3];
Um= StrToFloat(Edit25->Text);
// присвоєння початкових значень Xy(0) Yx(0)
for (i=0; i<6; i++)
{
for (j=0; j<6; j++)
B[i][j]=0;
Xy[i]=0;
Yx[i]=0;
hX[i]=0;
}
// межі інтегрування
tstsrt=StrToFloat(Edit23->Text);
delt=StrToFloat(Edit24->Text);
tn=StrToFloat(Edit26->Text);
del_t_fail=StrToFloat(Edit27->Text);
// Xdiy=Xy Ydiy=Yx
for (i=0;i<6;i++)
{
for (j=0;j<6;j++)
B_diy[i][j]=B[i][j];
X_diy[i]=Xy[i];
Y_diy[i]=Yx[i];
}
// запуск інтеграційного процесу
k=tstsrt;
Fai=0;
i1=0;
for(i=0;i<3;i++)
iperv[i]=0;
fprintf(Fa,"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf \n",k,X_diy[0],
X_diy[1],X_diy[2],iperv[0],iperv[1],iperv[2],X_diy[3],X_diy[3],X_diy[4]);
while(k<=tn)
{
for (i=0;i<6;i++)
hX[i]=Fh(i,k);
for (i=0;i<6;i++)
X_diy[i]+=hX[i];
// копіювання матриць
for (i=0;i<6;i++)
{
for (j=0;j<6;j++)
B_diy[i][j]=B[i][j];
Xy[i]=X_diy[i];
Yx[i]=Y_diy[i];
}
//обчислення матриці алфа"
for (i=0;i<3;i++)
for (j=0;j<3;j++)
alfap[i][j]=0;
alfap[0][0]=dA(X_diy[0]);
alfap[1][1]=dA(X_diy[1]);
alfap[2][2]=dA(X_diy[2]);
// обновлення матриці первинних струмів
for(i=0;i<3;i++)
{
tumch[i]=0;
iperv[i]=0;
}
for (i=0;i<3;i++)
for(j=0;j<3;j++)
{
tumch[i]+=alfap[i][j]*X_diy[j];
iperv[i]+=alfa0E[i][j]*X_diy[j];
}
for (i=0;i<3;i++)
iperv[i]+=tumch[i]-X_diy[i+3];
if (Fai>del_t_fail)
{
fprintf(Fa,"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf \n",k,X_diy[0],
X_diy[1],X_diy[2],iperv[0],iperv[1],iperv[2],X_diy[3],X_diy[3],X_diy[4]);
Fai=0;
}
k+=delt;
Fai+=delt;
}
fclose(Fa);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
int j,i,p,g,jj,kk;
g=6;
double Tper;
double pox,sum;
double VV[6];
double RN[3];
double Alfa[3];
double rk[2];
double tumch[3];
bool cond;
p=StrToFloat(Edit10->Text);
pox=StrToFloat(Edit9->Text);
FILE *Ffa;
if ((Ffa = fopen("Пришвид.txt","wt")) == NULL)
{
ShowMessage("Помилка");
return;
}
double k,z;
Tper=1/50.0;
fclose(Ffa);
x2=StrToFloat(Edit5->Text);
x1=StrToFloat(Edit1->Text);
y1=StrToFloat(Edit2->Text);
m2=StrToFloat(Edit3->Text);
Alfa[0]=StrToFloat(Edit15->Text);
Alfa[1]=StrToFloat(Edit13->Text);
Alfa[2]=StrToFloat(Edit14->Text);
RN[0]=StrToFloat(Edit21->Text);
RN[1]=StrToFloat(Edit22->Text);
RN[2]=StrToFloat(Edit20->Text);
rk[0]=StrToFloat(Edit18->Text);
rk[1]=StrToFloat(Edit19->Text);
// îáðàõóíîê ìàòðèöü alf
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
alfa1[i][j]=0;
alfa2[i][j]=0;
alfa0E[i][j]=Alfa[0];
}
for(i=0;i<3;i++)
{
alfa1[i][i]=Alfa[1];
alfa2[i][i]=Alfa[2];
}
//------------------
for (i=0;i<6;i++)
for (j=0;j<6;j++)
RO[i][j]=0;
for (i=0;i<3;i++)
RO[i][i]=rk[0];
for (i=3;i<6;i++)
RO[i][i]=rk[1]+RN[i-3];
Um= StrToFloat(Edit25->Text);
// обчислення Xy(0) Yx(0)
for (i=0; i<6; i++)
{
for (j=0; j<6; j++)
B[i][j]=0;
Xy[i]=0;
Yx[i]=0;
hX[i]=0;
}
// Xdiy=Xy Ydiy=Yx
for (i=0;i<6;i++)
{
for (j=0;j<6;j++)
B_diy[i][j]=B[i][j];
X_diy[i]=Xy[i];
Y_diy[i]=Yx[i];
}
// створення матриці е
double e[14][14][6];
for (j=0;j<12+1; j++)
for (i=0; i<6; i++)
e[j][0][i]=0;
do
{
cond=false;
for (j=1; j<p+1; j++)
k=0;
for (i=0;i<2;i++) // проходження р ітерацій
{
for (i=0;i<6;i++)
hX[i]=Fh(i,k);
for (i=0;i<6;i++)
X_diy[i]+=hX[i];
// êîï³þâàííÿ ìàòðèöü
for (i=0;i<6;i++)
{
for (j=0;j<6;j++)
B_diy[i][j]=B[i][j];
Xy[i]=X_diy[i];
Yx[i]=Y_diy[i];
}
for(i=0;i<3;i++)
{
tumch[i]=0;
iperv[i]=0;
}
for (i=0;i<3;i++)
for(j=0;j<3;j++)
{
tumch[i]+=alfap[i][j]*X_diy[j];
iperv[i]+=alfa0E[i][j]*X_diy[j];
}
for (i=0;i<3;i++)
iperv[i]+=tumch[i]-X_diy[i+3];
k+=delt;
}
for (i=0;i<6;i++)
e[0][1][i]=X_diy[i];
// генерування S послідовностей
k=0;
for (jj=0;jj<2*g;jj++)
{
// Рунге-кута
Ffa = fopen("Пришвидì.txt","wt");
k=0;
while(k<=Tper)
{
for (i=0;i<6;i++)
hX[i]=Fh(i,k);
for (i=0;i<6;i++)
X_diy[i]+=hX[i];
// êîï³þâàííÿ ìàòðèöü
for (i=0;i<6;i++)
{
for (j=0;j<6;j++)
B_diy[i][j]=B[i][j];
Xy[i]=X_diy[i];
Yx[i]=Y_diy[i];
}
for(i=0;i<3;i++)
{
tumch[i]=0;
iperv[i]=0;
}
for (i=0;i<3;i++)
for(j=0;j<3;j++)
{
tumch[i]+=alfap[i][j]*X_diy[j];
iperv[i]+=alfa0E[i][j]*X_diy[j];
}
for (i=0;i<3;i++)
iperv[i]+=tumch[i]-X_diy[i+3];
fprintf(Fa,"%lf %lf %lf %lf %lf %lf %lf %lf %lf %lf \n",k,X_diy[0],
X_diy[1],X_diy[2],iperv[0],iperv[1],iperv[2],X_diy[3],X_diy[3],X_diy[4])
k+=delt;
}
fclose(Ffa);
// ------------------------------------------
for (i=0;i<6;i++)
e[jj+1][1][i]=X_diy[i];
if(j=0)
{
for (i=0;i<6;i++)
cond=cond||(fabs((e[1][1][i]-e[0][1][i])/e[1][1][i])*100>pox);
if(!cond) break;
}
}
if(cond)
{
for(kk=0;kk<12;kk++)
for(jj=0;jj<11-kk; jj++)
{
for(i=0;i<6;i++)
VV[i]=e[jj+1][kk][i]-e[jj][kk][i];
sum=0;
for(i=0;i<6;i++)
sum+=VV[i]*VV[i];
for(i=0;i<6;i++)
VV[i]=VV[i]/sum;
for(i=0;i<6;i++)
e[jj][kk+1][i]= e[jj+1][kk-1][i]*VV[i];
}
for(i=0;i<6;i++)
X_diy[i]=e[0][13][i];
Xy[i]=X_diy[i];
Yx[i]=Y_diy[i];
}
} while(cond==true);
}
Результати виконання програми
Рис. 4 Вікно для виведення апроксимації, перехідного процесу та усталеного режиму.
Апроксимації функції
Похідна від апроксимованої функції
Перехідний процес ψA=f(t)
Перехідний процес ψB=f(t)
Перехідний процес ψC=f(t)
Перехідний процес i1A=f(t)
Перехідний процес i1B=f(t)
Перехідний процес i1C=f(t)
Перехідний процес i2A=f(t)
Перехідний процес i2B=f(t)
Перехідний процес i2C=f(t)
Усталений процес ψA=f(t)
Усталений процес ψB=f(t)
Усталений процес ψC=f(t)
Усталений процес i1А=f(t)
Усталений процес i1B=f(t)
Усталений процес i1C=f(t)
Усталений процес i2А=f(t)
Усталений процес i2B=f(t)
Усталений процес i2C=f(t)
Висновок
В даній курсовій роботі я розраховував роботу трьохфазного трансформатора з неоднорідним навантаженням фаз. І написав програму для розрахунку перехідного процесу та усталеного режиму. Результати вивів у вигляді графіків.
Список використаної літератури
1. Краскевич В.Е., Зеленский К.Х., Гречко В.И. Численные методы в инженерных исследованиях.- К.: Вища шк. Головное изд-во, 1986.- 263 c.
2. Прикладные программы и лабораторный практикум для персонального компьютера: Учебное пособие / Гаврилюк М.А., Галамай Т.Г., Коссак О.М.и др. - Киев: УМК ВО, 1988. - 205 c.
3. Дьяконов В.П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ: Справочник. - М.: Наука. Гл. ред. физ.-мат. лит., 1987. - 240 с.
Лященко М. Я., Головань М. С. Чисельні методи. - К.: Либідь, 1996.
5. Микрокалькуляторы в курсе высшей математики: Практикум / Барановская Г.Г., Любченко И.Н.- К. : Вища шк. Головное изд-во, 1987 - 288 с.
Алгоритмы и программы на Бейсике: Учеб. пособие для студентов пед. ин-тов по физ.-мат. спец. / Гринчишин Я.Т., Ефимов В.И., Ломакович А.Н. - М.: Просвещение, 1988. - 160 с.
Самохин А. Б., Самохина А. С. Численные методы и программирование на Фортране для персонального компьютера. - М.: Радио и связь, 1996.