aa[13,0]:=7.50;aa[13,1]:=7.88;aa[13,2]:=8.26;aa[13,3]:=8.64;aa[13,4]:=9.02;
aa[13,5]:=9.40;aa[13,6]:=9.82;aa[13,7]:=10.2;aa[13,8]:=10.7;aa[13,9]:=11.1;
aa[14,0]:=11.5;aa[14,1]:=12.2;aa[14,2]:=12.9;aa[14,3]:=13.6;aa[14,4]:=14.3;
aa[14,5]:=15.0;aa[14,6]:=16.0;aa[14,7]:=17.0;aa[14,8]:=18.0;aa[14,9]:=19.0;
aa[15,0]:=20.0;aa[15,1]:=21.6;aa[15,2]:=23.2;aa[15,3]:=24.9;aa[15,4]:=26.5;
aa[15,5]:=28.1;aa[15,6]:=29.6;aa[15,7]:=31.1;aa[15,8]:=32.7;aa[15,9]:=34.2;
aa[16,0]:=35.7;aa[16,1]:=38.0;aa[16,2]:=40.3;aa[16,3]:=42.6;aa[16,4]:=44.9;
aa[16,5]:=47.2;aa[16,6]:=49.3;aa[16,7]:=51.4;aa[16,8]:=53.5;aa[16,9]:=55.6;
aa[17,0]:=57.7;aa[17,1]:=60.0;aa[17,2]:=63.0;aa[17,3]:=66.0;aa[17,4]:=70.0;
aa[17,5]:=74.0;aa[17,6]:=79.0;aa[17,7]:=84.0;aa[17,8]:=90.0;aa[17,9]:=97.0;
val(edit1.Text,d1_zovn,cod1);
val(edit2.Text,d1,cod2);
val(edit3.Text,d2_vn,cod3);
val(edit4.Text,d2,cod4);
val(edit5.Text,pov_zaz,cod5);
val(edit6.Text,z1,cod6);
val(edit7.Text,z2,cod7);
val(edit8.Text,l1,cod8);
val(edit9.Text,l2,cod9);
val(edit10.Text,mat_st,cod10);
val(edit11.Text,tov_l,cod11);
val(edit12.Text,hz1,cod12);
val(edit13.Text,bz1,cod13);
val(edit14.Text,bzq1,cod14);
val(edit15.Text,hz2,cod15);
val(edit16.Text,bz2,cod16);
val(edit17.Text,d_d,cod17);
val(edit18.Text,f_potic,cod18);
val(edit19.Text,kc1,cod19);
val(edit20.Text,p2,cod20);
val(edit21.Text,bq,cod21);
val(edit22.Text,ai,cod22);
val(edit23.Text,bp,cod23);
val(edit29.Text,bz_max,cod24);
val(edit30.Text,kz_min,cod25);
val(edit31.Text,hz_max,cod26);
val(edit32.Text,bz_min,cod27);
val(edit33.Text,kz_max,cod28);
val(edit34.Text,hz_min,cod29);
val(edit35.Text,bz_ser,cod30);
val(edit36.Text,kz_ser,cod31);
val(edit37.Text,Hz_ser,cod24);
Form7.show;
form2.Visible:=false;
form7.Memo1.Clear;
t1:=(pi*d1)/z1;
kq:=((10*pov_zaz)+t1)/((10*pov_zaz)+bzq1);
str(kq:8:4,tex1);
form7.Memo1.Lines.Add('Коефіцієнт повітряного зазору');
form7.Memo1.Lines.Add(tex1);
form7.Memo1.Lines.Add(line);
fq:=(0.8*1000)*bq*pov_zaz*kq;
str(fq:8:4,tex2);
form7.Memo1.Lines.Add('Магнітне напруження повітряного зазору - А');
form7.Memo1.Lines.Add(tex2);
form7.Memo1.Lines.Add(line);
Bzmax:=(bq*t1)/(kc1*bz1);
str(bzmax:8:4,tex3);
form7.Memo1.Lines.Add(' Максимальна магнітна індукція в зубці статора - Тл');
form7.Memo1.Lines.Add(tex3);
form7.Memo1.Lines.Add(line);
if bzmax>1.8 then
begin
form7.Memo1.Lines.Add('Велечина Bz1 > 1.8 Тл - Ведемо розрахунки мінімального та');
form7.Memo1.Lines.Add('середнього значення магнітної індукції в зубці статора');
form7.Memo1.Lines.Add(line);
bzmin:=abs((bq*t1)/(kc1*(t1-bp)));
str(bzmin:8:4,tex4);
form7.Memo1.Lines.Add(' Мінімальна магнітна індукція в зубці статора - Тл');
form7.Memo1.Lines.Add(tex4);
form7.Memo1.Lines.Add(line);
bzser:=0.5*(bzmax+bzmin);
str(bzser:8:4,tex5);
form7.Memo1.Lines.Add(' Середня магнітна індукція в зубці статора - Тл');
form7.Memo1.Lines.Add(tex5);
form7.Memo1.Lines.Add(line);
hz_1:=(hz_max+(4*Hz_ser)+Hz_min)/6;
str(hz_1:8:4,tex6);
form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');
form7.Memo1.Lines.Add(tex6);
form7.Memo1.Lines.Add(line);
end
else begin
form7.Memo1.Lines.Add('Велечина Bz1 < 1.8 Тл - Напруженість поля в зубці');
form7.Memo1.Lines.Add('статора Hz1 визначаємо по таблиці');
form7.Memo1.Lines.Add(line);
end;
b2:=2; a1:=4;
f1:=roundto(f_potic,a1);
ba1:=roundto(bzmax,b2);
ind1:=trunc(f1/0.01+1);
ind2:=trunc((ba1-0.3)/0.1);
Hz_1:=aa[ind2,ind1];
str(hz_1:8:4,tex6);
form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');
form7.Memo1.Lines.Add(tex6);
form7.Memo1.Lines.Add(line);
form7.Memo1.Lines.Add(' Продовження розранунків');
form7.Memo1.Lines.Add(line);
fz:=0.1*hz_1*hz1;
str(fz:8:4,tex7);
form7.Memo1.Lines.Add(' Магнітне напруження зубцевого шару статора - А');
form7.Memo1.Lines.Add(tex7);
form7.Memo1.Lines.Add(line);
t2:=(pi*d2)/z2;
bzmax2:=(bq*t2)/(kc1*bz2);
str(bzmax2:8:4,tex8);
form7.Memo1.Lines.Add(' Максимальна магнітна індукція в зубці ротора - Тл');
form7.Memo1.Lines.Add(tex8);
form7.Memo1.Lines.Add(line);
if bzmax2>1.8 then begin
form7.Memo1.Lines.Add('Велечина Bz2 > 1.8 Тл - Ведемо розрахунки мінімального та');
form7.Memo1.Lines.Add('середнього значення магнітної індукції в зубці ротора');
form7.Memo1.Lines.Add(line);
bzmin2:=(bq*t2)/(kc1*(t2-bp));
str(bzmin2:8:4,tex9);
form7.Memo1.Lines.Add(' Мінімальна магнітна індукція в зубці ротора - Тл');
form7.Memo1.Lines.Add(tex9);
form7.Memo1.Lines.Add(line);
bzser2:=0.5*(bzmax2+bzmin2);
str(bzser2:8:4,tex10);
form7.Memo1.Lines.Add(' Середня магнітна індукція в зубці ротора - Тл');
form7.Memo1.Lines.Add(tex10);
form7.Memo1.Lines.Add(line);
hz_2:=(hz_max+(4*hz_ser)+hz_min)/6;
str(hz_2:8:4,tex11);
form7.Memo1.Lines.Add(' Значення напруженості поля в зубці ротора - А/см');
form7.Memo1.Lines.Add(tex11);
form7.Memo1.Lines.Add(line);
end
else begin
form7.Memo1.Lines.Add('Велечина Bz2 < 1.8 Тл - Напруженість поля в зубці');
form7.Memo1.Lines.Add('ротора Hz2 визначаємо по таблиці');
form7.Memo1.Lines.Add(line);
end;
b3:=2; a2:=4;
f2:=roundto(f_potic,a2);
ba2:=roundto(bzmax2,b3);
ind3:=trunc(f2/0.01+1);
ind4:=trunc((ba2-0.3)/0.1);
Hz_2:=aa[ind4,ind3];
str(hz_2:8:4,tex12);
form7.Memo1.Lines.Add(' Значення напруженості поля в зубці ротора - А/см');
form7.Memo1.Lines.Add(tex12);
form7.Memo1.Lines.Add(line);
fz2:=0.1*(hz_2*(hz2-(0.4*d2)));
str(fz2:8:4,tex13);
form7.Memo1.Lines.Add(' Магнітне напруження зубцевого шару ротора - А');
form7.Memo1.Lines.Add(tex13);
form7.Memo1.Lines.Add(line);
hc1:=(d1_zovn-d1-(2*hz1))/2;
str(hc1:8:4,tex14);
form7.Memo1.Lines.Add(' Висота спинки статора - мм');
form7.Memo1.Lines.Add(tex14);
form7.Memo1.Lines.Add(line);
pol_dil:=(pi*d1)/p2;
bc1:=(0.5*ai*pol_dil*bq)/(kc1*hc1);
str(bc1:8:4,tex15);
form7.Memo1.Lines.Add(' Магнітна індукція в спинці статора - Тл');
form7.Memo1.Lines.Add(tex15);
form7.Memo1.Lines.Add(line);
if bc1<1.4 then begin
b4:=2; a3:=4;
f3:=roundto(f_potic,a3);
ba3:=roundto(bc1,b4);
ind5:=trunc(f3/0.01+1);
ind6:=trunc((ba3-0.3)/0.1);
Hc_1:=aa[ind6,ind5];
str(hc_1:8:4,tex16);
form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');
form7.Memo1.Lines.Add(tex16);
form7.Memo1.Lines.Add(line);
end
else begin
bc_1:=bc1*0.4;
b4:=2; a3:=4;
f3:=roundto(f_potic,a3);
ba3:=roundto(bc_1,b4);
ind5:=trunc(f3/0.01+1);
ind6:=trunc((ba3-0.3)/0.1);
Hc_1:=aa[ind6,ind5];
str(hc_1:8:4,tex16);
form7.Memo1.Lines.Add(' Значення напруженості поля в зубці статора - А/см');
form7.Memo1.Lines.Add(tex16);
form7.Memo1.Lines.Add(line);
end;
lc1:=(pi/p2)*(d1_zovn-hc1);
str(lc1:8:4,tex17);
form7.Memo1.Lines.Add(' Довжина силової лінії в спинці статора - мм');
form7.Memo1.Lines.Add(tex17);
form7.Memo1.Lines.Add(line);
fc1:=0.1*hc_1*lc1;
str(fc1:8:4,tex18);
form7.Memo1.Lines.Add(' Магнітне напруження спинки статора - А');
form7.Memo1.Lines.Add(tex18);
form7.Memo1.Lines.Add(line);
hc2:=abs((d2-d2_vn-(2*hz2))/2);
str(hc2:8:4,tex19);
form7.Memo1.Lines.Add(' Висота спинки ротора - мм');
form7.Memo1.Lines.Add(tex19);
form7.Memo1.Lines.Add(line);
bc2:=(0.5*ai*pol_dil*bq)/(kc1*hc2);
str(bc2:8:4,tex20);
form7.Memo1.Lines.Add(' Магнітна індукція в спинці ротора - Тл');
form7.Memo1.Lines.Add(tex20);
form7.Memo1.Lines.Add(line);
b5:=2; a4:=4;
f4:=roundto(f_potic,a4);
ba4:=roundto(bc2,b5);
ind7:=trunc(f4/0.01+1);
ind8:=trunc((ba4-0.3)/0.1);
Hc_2:=aa[ind8,ind7];
str(hc_2:8:4,tex21);
form7.Memo1.Lines.Add(' Значення напруженості поля в спинці ротора - А/см');
form7.Memo1.Lines.Add(tex21);
form7.Memo1.Lines.Add(line);
lc2:=(pi/p2)*(d2_vn-hz2-hc2);
str(lc2:8:4,tex22);
form7.Memo1.Lines.Add(' Довжина силової лінії в спинці ротора ротора - мм');
form7.Memo1.Lines.Add(tex22);
form7.Memo1.Lines.Add(line);
fc2:=0.1*hc_2*lc2;
str(fc2:8:4,tex23);
form7.Memo1.Lines.Add(' Магнітне напруження спинки ротора - А');
form7.Memo1.Lines.Add(tex23);
form7.Memo1.Lines.Add(line);
f_rush:=(2*fq)+(2*fz)+(2*fz2)+fc1+fc2;
str(f_rush:8:4,tex24);
form7.Memo1.Lines.Add(' Магнітно-рушійна сила на пару полюсів - А');
form7.Memo1.Lines.Add(tex24);
form7.Memo1.Lines.Add(line);
ku:=f_rush/(2*fq);
str(ku:8:4,tex25);
form7.Memo1.Lines.Add(' Коефіцієнт магнітного накопичення');
form7.Memo1.Lines.Add(tex25);
form7.Memo1.Lines.Add(line);
form7.Memo1.Lines.Add(' Розрахунок закінчено');
end;
procedure TForm2.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.
Текст модуля Unit3.pas
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ExtCtrls, Buttons;
type
TForm3 = class(TForm)
MainMenu1: TMainMenu;
Timer1: TTimer;
Label1: TLabel;
N3: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Label6: TLabel;
Edit5: TEdit;
Label7: TLabel;
Edit6: TEdit;
Label8: TLabel;
Edit7: TEdit;
Label9: TLabel;
Edit8: TEdit;
Label10: TLabel;
Edit9: TEdit;
Label11: TLabel;
Edit10: TEdit;
Label12: TLabel;
Edit11: TEdit;
Label13: TLabel;
Edit12: TEdit;
Label14: TLabel;
Edit13: TEdit;
GroupBox1: TGroupBox;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Label15: TLabel;
Edit14: TEdit;
Label16: TLabel;
Edit15: TEdit;
Label17: TLabel;
Edit16: TEdit;
Label18: TLabel;
Edit17: TEdit;
Label19: TLabel;
Edit18: TEdit;
Label20: TLabel;
Edit19: TEdit;
Label21: TLabel;
Edit20: TEdit;
Label22: TLabel;
Edit21: TEdit;
Label23: TLabel;
Edit22: TEdit;
Label24: TLabel;
Edit23: TEdit;
Label25: TLabel;
Edit24: TEdit;
Label26: TLabel;
Edit25: TEdit;
Label27: TLabel;
Edit26: TEdit;
Label28: TLabel;
Edit27: TEdit;
Label29: TLabel;
Edit28: TEdit;
BitBtn1: TBitBtn;
GroupBox2: TGroupBox;
Edit29: TEdit;
Label30: TLabel;
Label31: TLabel;
Edit30: TEdit;
Label32: TLabel;
Edit31: TEdit;
Label33: TLabel;
Edit32: TEdit;
Label34: TLabel;
Edit33: TEdit;
Label35: TLabel;
Edit34: TEdit;
Label36: TLabel;
Edit35: TEdit;
Label37: TLabel;
Edit36: TEdit;
Label38: TLabel;
Edit37: TEdit;
procedure N2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Digitkey(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
{-----------------------------------------------}
d_ja_zovn,d_ja_vn,da,dval,lja,n,la,nk,bk,z:real;
bp,hz,S,pov_zaz,Lt,bt,ai,p2,Ea,m_s_ja:real;
t_l,m_s_g_p,bpl,m_s,kc,wc,ht,hja:real;
bzmax1,kzmin1,hzmax1,bzmin2,kzmax2,hzmin2,bzser1,kzser1,hzser1:real;
{-----------------------------------------------}
coder1,coder2,coder3,coder4,coder5,coder6,coder7,coder8,coder9,coder10:integer;
coder11,coder12,coder13,coder14,coder15,coder16,coder17,coder18,coder19,coder20:integer;
coder21,coder22,coder23,coder24,coder25,coder26,coder27,coder28,coder29,coder30:integer;
coder31,coder32,coder33,coder34,coder35,coder36,coder37:integer;
{-----------------------------------------------}
Pol_dil,l,li,f,n_n,bq,ti,bz1,kq,fq:real;
bzmin,bzmax,B_Bzmin,bzser,kzmax,kzmin,kzser:real;
h_z,f_z,ha,sa,ba,h_a, l_a,F_a,q,Ft,st,bm:real;
h_tt,ftt,h_ja,sja,bja,l_ja,fja,fbo,ku:real;
{-----------------------------------------------}
ed1,ed2,ed3,ed4,ed5,ed6,ed7,ed8,ed9,ed10:string;
ed11,ed12,ed13,ed14,ed15,ed16,ed17,ed18,ed19,ed20:string;
ed21,ed22,ed23,ed24,ed25,ed26,ed27,ed28,ed29,ed30:string;
ed31,ed32,ed33,ed34,ed35,ed36,ed37,ed38,ed39,ed40:string;
ed41,ed42,ed43,ed44,ed45,ed46:string;
{-----------------------------------------------}
a,p,ind1,ind2:integer;
{-----------------------------------------------}
file1:textfile;
file2:textfile;
aa:array[1..17,0..9] of real;
f1,ba1:real;
n_n_n,a_a_a:byte;
const line='___________________________________________________';
{-----------------------------------------------}
implementation
uses Unit1, Unit4, Unit5;
{$R *.dfm}
function RoundTo(num:real; r:byte):real;
var
rt:longint;
i:byte;
begin
rt:=1;
for i:=1 to r do rt:=rt*10;
RoundTo:=round(num*rt)/rt;
end;
procedure TForm3.N2Click(Sender: TObject);
begin
form1.Show;
form3.Visible:=false;
end;
procedure TForm3.Timer1Timer(Sender: TObject);
begin
if label1.Visible=true then
label1.Visible:=false
else label1.Visible:=true;
end;
procedure TForm3.N5Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);
begin
form1.Show;
form3.visible:=false;
end;
procedure TForm3.BitBtn3Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
begin
aa[1,0]:=0.52;aa[1,1]:=0.53;aa[1,2]:=0.54;aa[1,3]:=0.55;aa[1,4]:=0.56;
aa[1,5]:=0.58;aa[1,6]:=0.59;aa[1,7]:=0.60;aa[1,8]:=0.61;aa[1,9]:=0.62;
aa[2,0]:=0.64;aa[2,1]:=0.65;aa[2,2]:=0.66;aa[2,3]:=0.67;aa[2,4]:=0.69;
aa[2,5]:=0.70;aa[2,6]:=0.71;aa[2,7]:=0.72;aa[2,8]:=0.74;aa[2,9]:=0.77;
aa[3,0]:=0.80;aa[3,1]:=0.81;aa[3,2]:=0.83;aa[3,3]:=0.85;aa[3,4]:=0.87;
aa[3,5]:=0.89;aa[3,6]:=0.91;aa[3,7]:=0.93;aa[3,8]:=0.95;aa[3,9]:=0.97;
aa[4,0]:=1.00;aa[4,1]:=1.02;aa[4,2]:=1.04;aa[4,3]:=1.06;aa[4,4]:=1.08;
aa[4,5]:=1.11;aa[4,6]:=1.13;aa[4,7]:=1.15;aa[4,8]:=1.18;aa[4,9]:=1.21;
aa[5,0]:=1.24;aa[5,1]:=1.26;aa[5,2]:=1.29;aa[5,3]:=1.32;aa[5,4]:=1.35;
aa[5,5]:=1.38;aa[5,6]:=1.40;aa[5,7]:=1.43;aa[5,8]:=1.46;aa[5,9]:=1.49;