Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка (образец).doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
603.65 Кб
Скачать

Текст программы

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include<math.h>

#include "Unit5.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

#define e 1e-5

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

Button2->Enabled=false;

Button4->Enabled=false;

}

//---------------------------------------------------------------------------

double L,c,E,R1,R2,R3,idk1,idk2,idk3,ipr1,Ucdk,Ucpr,Ucp,dUc;

int i,k;

Boolean g_o=0,g_k=0;

double p [3];

double A [3];

//---------------------------------------------------------------------------

double znach1(double t)

{

return A[0]*exp(p[0]*t)+A[1]*exp(p[1]*t);

}

//---------------------------------------------------------------------------

void kv_korn(double a,double b,double c)

{

double D;

D=(b*b-(4.0*a*c));

if (D<0)

{

ShowMessage("Дискрименант меньше 0");

Abort();

}

else

{

p[0]=((-b+sqrt(D))/(2*a));

p[1]=((-b-sqrt(D))/(2*a));

}

}

//---------------------------------------------------------------------------

void klasik (zero)

{

ipr1=E/(R1+R3);

Ucpr=0;

dUc=ipr1/c ;

kv_korn(R2*c*L*(R1+R3),L*(R2+R1+R3),R2*(R1+R3));

A[1]=(ipr1/c)/(p[0]-p[1]);

A[0]=-A[1];

g_k=1;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::But_kalClick(TObject *Sender)

{

try

{

E=StrToFloat(Ed_E->Text);

L=StrToFloat(Ed_L->Text)/1000.0;

c=StrToFloat(Ed_C->Text)/1000000.0;

R1=StrToFloat(Ed_R1->Text);

R2=StrToFloat(Ed_R2->Text);

R3=StrToFloat(Ed_R3->Text);

}

catch (EConvertError &E)

{

int k=MessageBox(NULL,"Вернуть значения по умолчанию?",

"Входные данные должны быть числа!",MB_ICONQUESTION+MB_YESNO);

if (k==6)

{

Ed_E->Text="100";

Ed_L->Text="5";

Ed_C->Text="50";

Ed_R1->Text="3";

Ed_R2->Text="8";

Ed_R3->Text="5";

}

Abort();

}

if ((E<e) || (L<e) || (c<e) || (R1<e) || (R2<e) || (R3<e))

{

int k=MessageBox(NULL,"Вернуть значения по умолчанию?",

"Входные данные должны быть больше 0!",MB_ICONQUESTION+MB_YESNO);

if (k==6)

{

Ed_E->Text="100";

Ed_L->Text="5";

Ed_C->Text="50";

Ed_R1->Text="3";

Ed_R2->Text="8";

Ed_R3->Text="5";

}

Abort();

}

klasik();

SG_vihod->Cells[0][0]="Uc пр=";

SG_vihod->Cells[1][0]=FloatToStr(Ucpr);

SG_vihod->Cells[0][1]="B1=";

SG_vihod->Cells[1][1]=FloatToStr(A[0]);

SG_vihod->Cells[0][2]="B2=";

SG_vihod->Cells[1][2]=FloatToStr(A[1]);

SG_vihod->Cells[0][3]="p1=";

SG_vihod->Cells[1][3]=FloatToStr(p[0]);

SG_vihod->Cells[0][4]="p2=";

SG_vihod->Cells[1][4]=FloatToStr(p[1]);

But_graf->Enabled=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::But_grafClick(TObject *Sender)

{

Chart->Series[2]->Clear();

for(double t=0.0005;t<0.01;t+=0.00001)

{

Chart->Series[2]->AddXY(t,znach1(t));

} }

//Задание3

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

double M1,M2,M3,T1,T2,T3,to,N2,Ku,Mekv,PV,PVst,Pekv,Pr,mt;

//----------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

try

{

M1=StrToFloat(Edit1->Text);

M2=StrToFloat(Edit2->Text);

M3=StrToFloat(Edit3->Text);

T1=StrToFloat(Edit4->Text);

T2=StrToFloat(Edit5->Text);

T3=StrToFloat(Edit6->Text);

to=StrToFloat(Edit7->Text);

N2=StrToFloat(Edit8->Text);

//Ku=StrToFloat(Edit9->Text);

}

catch (EConvertError &E)

{

int k=MessageBox(NULL,"Вернуть значения по умолчанию?",

"Входные данные должны быть числа!",MB_ICONQUESTION+MB_YESNO);

if (k==6)

{

Edit1->Text="25";

Edit2->Text="15";

Edit3->Text="10";

Edit4->Text="15";

Edit5->Text="10";

Edit6->Text="20";

Edit7->Text="5";

Edit8->Text="950";

// Edit9->Text="0.95";

}

Abort();

}

if ((M1<e) || (M2<e) || (M3<e) || (T1<e) || (T2<e) || (T3<e) || (to<e) || (N2<e))

{

int k=MessageBox(NULL,"Вернуть значения по умолчанию?",

"Входные данные должны быть больше 0!",MB_ICONQUESTION+MB_YESNO);

if (k==6)

{

Edit1->Text="25";

Edit2->Text="15";

Edit3->Text="10";

Edit4->Text="15";

Edit5->Text="10";

Edit6->Text="20";

Edit7->Text="5";

Edit8->Text="950";

// Edit9->Text="0.95";

}

Abort();

}

mt=(M1*M1*T1+M2*M2*T2+M3*M3*T3)/(T1+T2+T3+2*to);

Mekv=exp(log(abs(mt))/2);

PVst=40;

PV=(T1+T2+T3)/(T1+T2+T3+2*to);

PV=PV*100;

Pekv=0.105*Mekv*N2;

Pr=Pekv*exp(log(abs(PV/PVst))/2);

SG_1->Cells[0][0]="Mэкв=";

SG_1->Cells[1][0]=FloatToStr(Mekv);

SG_1->Cells[0][1]="ПВ=";

SG_1->Cells[1][1]=FloatToStr(PV);

SG_1->Cells[0][2]="ПВст";

SG_1->Cells[1][2]=FloatToStr(PVst);

SG_1->Cells[0][3]="Pэкв";

SG_1->Cells[1][3]=FloatToStr(Pekv);

SG_1->Cells[0][4]="Pном=";

SG_1->Cells[1][4]=FloatToStr(Pr);

Button2->Enabled=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

DBChart1->Series[0]->Clear();

DBChart1->Series[0]->AddXY(0,M1+5);

DBChart1->Series[0]->AddXY(0,M1);

DBChart1->Series[0]->AddXY(T1,M1);

DBChart1->Series[0]->AddXY(T1,0);

DBChart1->Series[0]->AddXY((T1+to),0);

DBChart1->Series[0]->AddXY((T1+to),M2);

DBChart1->Series[0]->AddXY((T1+to+T2),M2);

DBChart1->Series[0]->AddXY((T1+to+T2),0);

DBChart1->Series[0]->AddXY((T1+to+T2+to),0);

DBChart1->Series[0]->AddXY((T1+to+T2+to),M3);

DBChart1->Series[0]->AddXY((T1+to+T2+to+T3),M3);

DBChart1->Series[0]->AddXY((T1+to+T2+to+T3),0);

DBChart1->Series[0]->AddXY((T1+to+T2+to+T3+to),0);

}

//---------------------------------------------------------------------------

//Задание3

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

StringGrid1->Cells[0][0]="U(t)=";

StringGrid1->Cells[1][0]="48.7sinwt";

StringGrid1->Cells[2][0]="-16.2sin3wt";

StringGrid1->Cells[3][0]="+1.9sin5wt";

StringGrid1->Cells[4][0]="-0.99sin7wt";

StringGrid1->Cells[0][1]="i(t)=";

StringGrid1->Cells[1][1]="0.12sin(wt+97)";

StringGrid1->Cells[2][1]="-0.0135sin(3wt+92.3)";

StringGrid1->Cells[3][1]="+0.00091sin(5wt+91.5)";

StringGrid1->Cells[4][1]="-0.00036sin(7wt+91)";

StringGrid1->Cells[0][2]="w=816.5";

Button4->Enabled=true;

StringGrid1->Enabled=true;

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

double w=816.5;

Chart1->Series[0]->Clear();

for(double tp=0;tp<0.7;tp+=0.043)

{

double i=0.12*sin(w*tp+97)-0.0135*sin(3*w*tp+92.3)+0.00091*sin(5*w*tp+91.5)-0.00036*sin(7*w*tp+91);

Chart1->Series[0]->AddXY(tp,i);

}

}

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

Label8->Caption=Time();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Label7Click(TObject *Sender)

{

Form1->Close();

Form2->Close();

Form3->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Label6Click(TObject *Sender)

{

Form2->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image2Click(TObject *Sender)

{

Form3->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image3Click(TObject *Sender)

{

Form1->Close();

Form2->Close();

Form3->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Label10Click(TObject *Sender)

{

Form3->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image1Click(TObject *Sender)

{

WinExec("hh help1.chm",SW_RESTORE);

}

//---------------------------------------------------------------------------

Приложение 2

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

Задание1. «Переходные процессы в линейных электрических цепях»

Задание2. «Периодические несинусоидальные токи в линейных электрических цепях»

Задание3. «Расчёт электродвигателей»

Приложение3

Инструкция по работе с программой представлена в виде справки:

1 Все периодические функции, с которыми имеют дело в электротехнике, условиям Дирихле удовлетворяют. Поэтому производить проверку на выполнение условий Дирихле не требуется.