val(edit7.Text,la,coder7);
val(edit8.Text,nk,coder8);
val(edit9.Text,bk,coder9);
val(edit10.Text,z,coder10);
val(edit11.Text,bp,coder11);
val(edit12.Text,hz,coder12);
val(edit13.Text,S,coder13);
val(edit14.Text,pov_zaz,coder14);
val(edit15.Text,lt,coder15);
val(edit16.Text,bt,coder16);
val(edit17.Text,ai,coder17);
val(edit18.Text,p2,coder18);
val(edit19.Text,ea,coder19);
val(edit20.Text,m_s_ja,coder20);
val(edit21.Text,t_l,coder21);
val(edit22.Text,m_s_g_p,coder22);
val(edit23.Text,bpl,coder23);
val(edit24.Text,m_s,coder24);
val(edit25.Text,kc,coder25);
val(edit26.Text,wc,coder26);
val(edit27.Text,ht,coder27);
val(edit28.Text,hja,coder28);
val(edit29.Text,bzmax1,coder29);
val(edit30.Text,kzmin1,coder30);
val(edit31.Text,hzmax1,coder31);
val(edit32.Text,bzmin2,coder32);
val(edit33.Text,kzmax2,coder33);
val(edit34.Text,hzmin2,coder34);
val(edit35.Text,bzser1,coder35);
val(edit36.Text,kzser1,coder36);
val(edit37.Text,hzser1,coder37);
form5.show;
form3.Visible:=false;
form5.Memo1.Clear;
pol_dil:=pi*da/p2;
str(pol_dil:8:4,ed1);
form5.Memo1.Lines.Add('Полюсне ділення - мм ');
form5.Memo1.Lines.Add(ed1);
form5.Memo1.Lines.Add(line);
l:=la-nk*bk;
str(l:8:4,ed2);
form5.Memo1.Lines.Add('Довжина якоря без вентиляційних каналів - мм');
form5.Memo1.Lines.Add(ed2);
form5.Memo1.Lines.Add(line);
li:=0.5*(lt+l);
str(li:8:4,ed3);
form5.Memo1.Lines.Add('Розрахункова довжина якоря - мм');
form5.Memo1.Lines.Add(ed3);
form5.Memo1.Lines.Add(line);
a:=1; p:=2;
n_n:=2*wc*s;
f:=(60*a*Ea)/(p*N_n*n);
str(f:8:4,ed4);
form5.Memo1.Lines.Add('Загальний магнітний потік - Вб ');
form5.Memo1.Lines.Add(ed4);
form5.Memo1.Lines.Add(line);
bq:=f/(ai*li*pol_dil*0.000001);
str(bq:8:4,ed5);
form5.Memo1.Lines.Add('Магнітна індукція в повітряному зазорі - Тл ');
form5.Memo1.Lines.Add(ed5);
form5.Memo1.Lines.Add(line);
ti:=(pi*da)/z;
str(ti:8:4,ed6);
form5.Memo1.Lines.Add('Зубцеве ділення якоря - мм ');
form5.Memo1.Lines.Add(ed6);
form5.Memo1.Lines.Add(line);
bz1:=ti-bp;
str(bz1:8:4,ed7);
form5.Memo1.Lines.Add('Ширина коронки зуба - мм ');
form5.Memo1.Lines.Add(ed7);
form5.Memo1.Lines.Add(line);
kq:=((10*pov_zaz)+ti)/(10*pov_zaz+bz1);
str(kq:8:4,ed8);
form5.Memo1.Lines.Add('Коефіцієнт повітряного зазору ');
form5.Memo1.Lines.Add(ed8);
form5.Memo1.Lines.Add(line);
fq:=(0.8*1000)*bq*pov_zaz*kq;
str(fq:8:4,ed9);
form5.Memo1.Lines.Add('Магнітне напруження повітряного зазору - А ');
form5.Memo1.Lines.Add(ed9);
form5.Memo1.Lines.Add(line);
bzmin:=((pi*(da-2*hz))/z)-bp;
str(bzmin:8:4,ed10);
form5.Memo1.Lines.Add('Ширина зубця в номінальному перерізі - мм ');
form5.Memo1.Lines.Add(ed10);
form5.Memo1.Lines.Add(line);
bzmax:=(bq*ti)/(kc*bzmin);
str(bzmax:8:4,ed11);
form5.Memo1.Lines.Add('Індукція в найменшому пеперізі зубця - Тл ');
form5.Memo1.Lines.Add(ed11);
form5.Memo1.Lines.Add(line);
if bzmax>1.8 then begin
MessageDlg('Велечина Bz max > 1.8 Тл - Беруться дані з графіків та розраховуються додаткові параметри Генератора.',
mtInformation,[mbOk], 0);
form5.Memo1.Lines.Add(' Результати розрахунку додаткових параметрів');
form5.Memo1.Lines.Add(line);
B_Bzmin:=(bq*ti)/(kc*(ti-bp));
str(B_Bzmin:8:4,ed12);
form5.Memo1.Lines.Add('Магнітна індукція в максимальному перерізі зубця - Тл');
form5.Memo1.Lines.Add(ed12);
form5.Memo1.Lines.Add(line);
bzser:=0.5*(bzmax+b_bzmin);
str(bzser:8:4,ed13);
form5.Memo1.Lines.Add('Магнітна індукція в середньому перерізі зубця - Тл');
form5.Memo1.Lines.Add(ed13);
form5.Memo1.Lines.Add(line);
form5.Memo1.Lines.Add(' Зубцеві коефіціенти');
form5.Memo1.Lines.Add(line);
kzmax:=ti/(bzmin*kc);
str(kzmax:8:4,ed14);
form5.Memo1.Lines.Add('Для максимального перерізу зубця');
form5.Memo1.Lines.Add(ed14);
form5.Memo1.Lines.Add(line);
kzmin:=(pi*(da-2*hz))/(bzmin*kc*z);
str(kzmin:8:4,ed15);
form5.Memo1.Lines.Add('Для мінімального перерізу зубця');
form5.Memo1.Lines.Add(ed15);
form5.Memo1.Lines.Add(line);
kzser:=0.5*(kzmax+kzmin);
str(kzser:8:4,ed16);
form5.Memo1.Lines.Add('Для середнього перерізу зубця');
form5.Memo1.Lines.Add(ed16);
form5.Memo1.Lines.Add(line);
form5.Memo1.Lines.Add(' Дані введені з графіка');
form5.Memo1.Lines.Add(line);
str(bzmax1:8:1,ed17);
str(kzmin1:8:1,ed18);
str(hzmax1:8:0,ed19);
str(bzmin2:8:1,ed20);
str(kzmax2:8:1,ed21);
str(hzmin2:8:0,ed22);
str(bzser1:8:1,ed23);
str(kzser1:8:1,ed24);
str(hzser1:8:0,ed25);
form5.Memo1.Lines.Add(' Напруженість поля в найменшому перерізі зубця');
form5.Memo1.Lines.Add('Bz max = '+ed17+' Тл ');
form5.Memo1.Lines.Add('kz min = '+ed18);
form5.Memo1.Lines.Add('Hz max = '+ed19+' А/см ');
form5.Memo1.Lines.Add(line);
form5.Memo1.Lines.Add(' Напруженість поля в максимальному перерізі зубця');
form5.Memo1.Lines.Add('Bz min = '+ed20+' Тл ');
form5.Memo1.Lines.Add('kz max = '+ed21);
form5.Memo1.Lines.Add('Hz min = '+ed22);
form5.Memo1.Lines.Add(line);
form5.Memo1.Lines.Add(' Напруженість поля в середньому перерізі зубця');
form5.Memo1.Lines.Add('Bz ser = '+ed23+' Тл ');
form5.Memo1.Lines.Add('kz ser = '+ed24);
form5.Memo1.Lines.Add('Hz ser = '+ed25+' А/см ');
form5.Memo1.Lines.Add(line);
end
else MessageDlg('Велечина Bz max < 1.8 Тл - Не розраховуються додаткові параметри Генератора.',
mtInformation,[mbOk], 0);
form5.Memo1.Lines.Add(' Продовження розрахунку основних параметрів');
form5.Memo1.Lines.Add(line);
h_z:=(hzmax1+4*ht+hzmin2)/6;
str(h_z:8:4,ed26);
form5.Memo1.Lines.Add('Значення напруженості поля в зубці якоря - А/см');
form5.Memo1.Lines.Add(ed26);
form5.Memo1.Lines.Add(line);
f_z:=0.1*h_z*hz;
str(f_z:8:4,ed27);
form5.Memo1.Lines.Add('Магнітне напруження зубцевого шару якоря - А');
form5.Memo1.Lines.Add(ed27);
form5.Memo1.Lines.Add(line);
ha:=(da/2)-(dval/2)-hz;
str(ha:8:4,ed28);
form5.Memo1.Lines.Add('Висота спинки якоря - мм');
form5.Memo1.Lines.Add(ed28);
form5.Memo1.Lines.Add(line);
sa:=((la-nk*bk)*ha*kc);
str(sa:8:4,ed29);
form5.Memo1.Lines.Add('Площа перерізу спинки якоря - мм.квад');
form5.Memo1.Lines.Add(ed29);
form5.Memo1.Lines.Add(line);
ba:=F/(2*(sa*0.000001));
str(ba:8:4,ed30);
form5.Memo1.Lines.Add('Магнітна індукція в спинці якоря - Тл');
form5.Memo1.Lines.Add(ed30);
form5.Memo1.Lines.Add(line);
n_n_n:=2; a_a_a:=4;
f1:=roundto(f,a_a_a);
ba1:=roundto(ba,n_n_n);
ind1:=trunc(f1/0.01+1);
ind2:=trunc((ba1-0.3)/0.1);
H_a:=aa[ind2,ind1];
str(h_a:8:4,ed31);
form5.Memo1.Lines.Add('Напруженість поля в спинці якоря - А/см');
form5.Memo1.Lines.Add(ed31);
form5.Memo1.Lines.Add(line);
l_a:=((pi)*(da-(2*hz)-ha))/p2;
str(l_a:8:4,ed32);
form5.Memo1.Lines.Add('Довжина середньої силової лінії в спинці якоря - мм');
form5.Memo1.Lines.Add(ed32);
form5.Memo1.Lines.Add(line);
f_a:=0.1*H_a*l_a;
str(f_a:8:4,ed33);
form5.Memo1.Lines.Add('Магнітна напруженість в спинці якоря - А');
form5.Memo1.Lines.Add(ed33);
form5.Memo1.Lines.Add(line);
q:=(10*pov_zaz)/pol_dil;
str(q:8:4,ed34);
form5.Memo1.Lines.Add('Коефіцієнт розсіювання');
form5.Memo1.Lines.Add(ed34);
form5.Memo1.Lines.Add(line);
ft:=f*(1+q);
str(ft:8:4,ed35);
form5.Memo1.Lines.Add('Магнітний потік полюса - Вб');
form5.Memo1.Lines.Add(ed35);
form5.Memo1.Lines.Add(line);
st:=(bt*lt*kc);
str(st:8:4,ed36);
form5.Memo1.Lines.Add('Поперечний переріз сердечника полюса - мм.квад');
form5.Memo1.Lines.Add(ed36);
form5.Memo1.Lines.Add(line);
bm:=ft/(st*0.000001);
str(bm:8:4,ed37);
form5.Memo1.Lines.Add('Магнітна індукція в сердечнику полюса - Тл');
form5.Memo1.Lines.Add(ed37);
form5.Memo1.Lines.Add(line);
h_tt:=(0.5*(d_ja_vn-da))-pov_zaz;
str(h_tt:8:4,ed38);
form5.Memo1.Lines.Add('Висота сердечника полюса - мм');
form5.Memo1.Lines.Add(ed38);
form5.Memo1.Lines.Add(line);
ftt:=0.1*ht*h_tt;
str(ftt:8:4,ed39);
form5.Memo1.Lines.Add('Магнітне напруження поля - А');
form5.Memo1.Lines.Add(ed39);
form5.Memo1.Lines.Add(line);
h_ja:=0.5*(d_ja_zovn-d_ja_vn);
str(h_ja:8:4,ed40);
form5.Memo1.Lines.Add('Висота спинки станини - мм');
form5.Memo1.Lines.Add(ed40);
form5.Memo1.Lines.Add(line);
sja:=(h_ja*lja);
str(sja:8:4,ed41);
form5.Memo1.Lines.Add('Поперечний переріз спинки станини - мм.квад');
form5.Memo1.Lines.Add(ed41);
form5.Memo1.Lines.Add(line);
bja:=ft/(2*(sja*0.000001));
str(bja:8:4,ed42);
form5.Memo1.Lines.Add('Магнітна індукція станини - Тл');
form5.Memo1.Lines.Add(ed42);
form5.Memo1.Lines.Add(line);
l_ja:=((pi*(d_ja_zovn-d_ja_vn))/(4*p))+h_ja;
str(l_ja:8:4,ed43);
form5.Memo1.Lines.Add('Магнітне напруження станини - мм');
form5.Memo1.Lines.Add(ed43);
form5.Memo1.Lines.Add(line);
fja:=hja*l_ja;
str(fja:8:4,ed44);
form5.Memo1.Lines.Add('Магнітна індукція станини - А');
form5.Memo1.Lines.Add(ed44);
form5.Memo1.Lines.Add(line);
fbo:=(2*fq)+(2*f_z)+(2*ft)+f_a+fja;
str(fbo:8:4,ed45);
form5.Memo1.Lines.Add('МРС обмотки якоря збудження на пару полюсів в режимі');
form5.Memo1.Lines.Add('холостого ходу - А');
form5.Memo1.Lines.Add(ed45);
form5.Memo1.Lines.Add(line);
ku:=fbo/(2*fq);
str(ku:8:4,ed46);
form5.Memo1.Lines.Add('Коефіцієнт магнітного накопичення');
form5.Memo1.Lines.Add(ed46);
form5.Memo1.Lines.Add(line);
form5.Memo1.Lines.Add(' Розрахунок закінчено');
end;
procedure TForm3.Digitkey(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9',#8,'.']) then begin
messagedlg('Помилка - Дозволено вводити тільки додатні цифри',mterror,[mbok],0);
key:=#0;
beep;
end;
end;
end.
Текст модуля Unit4.pas
unit Unit4;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, jpeg;
type
TAboutBox = class(TForm)
Panel1: TPanel;
ProgramIcon: TImage;
OKButton: TButton;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Timer1: TTimer;
Label1: TLabel;
GroupBox1: TGroupBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
procedure OKButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
uses Unit1;
{$R *.dfm}
procedure TAboutBox.OKButtonClick(Sender: TObject);
begin
close;
form1.visible:=true;
end;
procedure TAboutBox.FormCreate(Sender: TObject);
begin
label5.Caption:='';
end;
procedure TAboutBox.Timer1Timer(Sender: TObject);
begin
label5.Caption:=timetostr(time)
end;
end.
Текст модуля Unit5.pas
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Buttons, ExtCtrls;
type
TForm5 = class(TForm)
Memo1: TMemo;
GroupBox1: TGroupBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
MainMenu1: TMainMenu;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Label1: TLabel;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
uses Unit4, Unit1, Unit3, Unit6;
{$R *.dfm}
procedure TForm5.FormCreate(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm5.N6Click(Sender: TObject);
begin
form1.close;
end;
procedure TForm5.N3Click(Sender: TObject);
begin
form3.show;
form5.Visible:=false;
end;
procedure TForm5.Timer1Timer(Sender: TObject);
begin
if label1.Visible=true then
label1.Visible:=false
else label1.Visible:=true;
end;
procedure TForm5.BitBtn1Click(Sender: TObject);
begin
form3.show;
form5.Visible:=false;
end;
procedure TForm5.BitBtn3Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm5.BitBtn2Click(Sender: TObject);
begin
form6.show;
form3.Visible:=false;
form5.Visible:=false;
end;
procedure TForm5.N4Click(Sender: TObject);
begin
form6.Show;
form3.Visible:=false;
form5.Visible:=false;
end;
end.
Текст модуля Unit6.pas
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Menus,comobj, Buttons;
type
TForm6 = class(TForm)
Panel1: TPanel;
Label1: TLabel;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
GroupBox1: TGroupBox;
Timer1: TTimer;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
procedure Timer1Timer(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Unit4, Unit1, Unit5, Unit3;
{$R *.dfm}
procedure TForm6.Timer1Timer(Sender: TObject);
begin
if label1.Visible=true then
label1.Visible:=false
else label1.Visible:=true;
end;
procedure TForm6.N5Click(Sender: TObject);
begin