個人感想
設計一個電機真的是非常的難,盡管我們電機設計學習僅僅是設計電機的電磁部分,不考慮機械部分和實際制造時的情況,也是一個非常浩大的工程。做這個項目時,首先了解了很多電機的知識,然后還要學習很多計算機的知識,C語言是必不可少的。寫程序的時候一個語法錯誤就可能造成程序的崩潰,無法運行處正確的結果。理解每一個循環也是很重要的,如果理解錯了任何一個循環的含義,就會造成計算結果完全不對。還一定要細心,少打了一個變量或者任何一個公式里面有任何一點問題,就會造成對于的部分的所求值與正確值差很多。最好是每個公式都去檢查一遍。然后還要記得帶上單位。輸出結果的排版也非常的重要。第一次考試時,我運行的結果就和書上的結果有較大出入,然后我又核對了一遍公式以及修改了計算要求的精度,還是有較大偏差。可能是程序本身運行時就會有一定的偏差,始終沒有找到解決的辦法。但是通過這一步的學習,我更加清楚了程序的奧秘。
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
void main()
{
float PN=55,DW=400,D=260,G=0.8,DK=85;
float L=240,BK=4,HK=1,B=8,R=5.7,H=26.5,Y=0;
float DR=184.2,SR=14,PW=1100;
float BU,BL,HH,BV,HG,J,LD=25,TY,BB=1,BC,BD,BE,BF,CS,LS,LZ,ZF,E=0.25,KW=0.08;
float K,SC,XB,KQ,S,SD,SB,GE,CX,KK,LE,XA,XC,LA,LC,KL,LB,RS,KU,T,KP,KT;
float XD,XF,SG,SZ,SY,SJ,SX,SW,PS,F,BG,AG,BZ,AZ,BX,AX,BW,BY,AY,BJ,AJ,JM,XE,XS;
float XR,XX,PF,JX,JR,JP,PC,PA,JC,JN,KR,KS,A2,C2,N2,P2,Q2,U2,V2,Z2;
int Q1,X=3,A1=4,C1=1,U1=3,V1=0,N1=36,Z1=48,ZZ=44,P1=2;
float M,W=1.3;
if(X==1)
{
BU=3.5;
BL=7.3;
HH=11;
}
if(X>1)
{
BU=3.5;
BV=7;
BL=3;
HG=14;
HH=28;
}
if(DW>270)
M=11;
printf("輸出功率%-12.0f 極對數%-14d 轉子槽形%-12d 三相連接%-13d 并聯支路數%-11d",PN,P1,X,C1,A1);
//printf("")
if(DW>270)
printf(" 節距%-10.0f\n KW \n",M);
else
printf(" \n");
printf("定子外徑%-12.0f 定子內徑%-12.0f 氣隙長度%-12.1f 轉子內徑%-13.0f 鐵心長度%-14.0f 定子槽數%-6.0d\n mm mm mm mm mm \n",DW,D,G,DK,L,Z1);
//printf("")
printf("BK=%-17.0f HK=%-17.0f B=%-18.0f R=%-19.1f H=%-20.1f 每槽導體數%-4.1d\n",BK,HK,B,R,H,N1);
printf("第一種導線數%-8d 第二種導線數%-8d 第一種導線直徑%-6.1f 第二種導線直徑%-7.0f 環平均直徑%-12.1f 端環面積%-4.0f\n mm mm mm cm^2\n",U1,V1,W,Y,DR,SR);
//printf("")
if(X==1)
{
printf("轉子槽數%-12d BU=%-18.1f BL=%-22.0f HH=%-18.0f\n",ZZ,BU,BL,HH);
printf(" \n");
}
if(X>1)
{
printf("轉子槽數%-12d BU=%-17.1f BV=%-17.0f BL=%-18.0f HG=%-19.0f HH=%-.0f\n",ZZ,BU,BV,BL,HG,HH);
printf(" \n");
}
J=PN/1.14*sqrt(C1);
if(DW<390)
LD=20;
if(DW<270)
LD=15;
if(DW<125)
LD=10;
TY=PI/2/P1*(D+2*HK+2+H+R);
if(DW>270)
BB=2*M*P1/Z1;
BC=PI/Z1*(D+2*HK+(B-BK)/sqrt(3))-B;
BD=PI/Z1*(D+2*HK+2*H)-2*R;
if(X==1)
{
BE=PI/ZZ*(D-2*G-1-(BU-1)/sqrt(3))-BU;
BF=PI/ZZ*(D-2*G-1-2*HH)-BL;
}
if(X==2)
BE=PI/ZZ*(D-2*G-2*HG)-BU;
if(X==3)
BE=PI/ZZ*(D-2*G-1.6-2*HG)-BU;
if(X>1)
BF=PI/ZZ*(D-2*G-2*HG-4/3*HH)-2*BL/3-BV/3;
if(DW<=270)
{
LS=2*LD+TY;
if(P1==1)
LS=2*LD+2.9/3*TY;
if(P1>3)
LS=2*LD+25/24*TY;
}
else
{
M=(B+2*R)/(B+2*R+BC+BD);
CS=TY*BB/2/sqrt(1-M*M);
LS=2*(LD+CS);
}
LZ=L+LS;
ZF=N1*Z1/3/A1;
if(DW>200)
E=0.3;
if(DW>280)
E=0.35;
if(W<1)
KW=0.06;
K=(H-2)*(B/2+R)+PI/2*R*R-E*(2*H+B+PI*R);
if(DW>270)
K=K-E*(B+2*R);
K=(U1*(W+KW)*(W+KW)+V1*(Y+KW)*(Y+KW))*N1/K*100;
SC=PI/4*(U1*W*W+V1*Y*Y);
U2=ZF*LZ/A1/46/1000/SC;
V2=U2*J/380*sqrt(C1);
W=9.5/1000000*Z1*N1*LZ*SC;
printf("端部伸出鐵心長%-6.0f 線圈半匝長%-10.1f 定子相電阻%-10.3f 定子銅重%-12.2f 槽滿率%-4.1f\n mm mm 75℃/Ω Kg \n",LD,LZ,U2,W,K);
//printf("")
printf(" \n");
Q1=Z1/6/P1;
XB=Z1/2/P1*(1-BB);
KQ=0.5/Q1/sin(PI/6/Q1);
E=sin(BB*PI/2);
KW=KQ*E;
Q1=Z1/6/P1;
S=PI*PI/54/Q1/Q1*((5*Q1*Q1+1)+XB/4/Q1*(XB*XB-1)-3*XB*XB/2)-KW*KW;
K=3*ZF*ZF*KW*KW;
if(X==1)
SB=(BU*BU-1)/4/sqrt(3)+(BU+BL)/2*(HH-(BU-1)/2/sqrt(3));
if(X==2)
SD=(BV+BL)/2*HH;SB=(BU+1.5)/2*HG+SD;
if(X==3)
{
SD=(BV+BL)/2*HH;SB=(BU*BU-2.25)/4/sqrt(3)+BU*(HG-(BU-1.5)/2/sqrt(3))+SD;
}
Y=1.19/10000000*K*L/SB/ZZ*J*sqrt(C1);
KK=1.821/10000000000*K*DR/P1/P1/SR*J*sqrt(C1);
K=Y+KK;
LE=L+2*G;
U2=PI*D/Z1;
W=PI*(D-2*G)/ZZ;
CX=1+BK*BK/(U2*(4.4*G+0.75*BK)-BK*BK);
E=1+0.5*(int)(X/2);
E=1+E*E/(W*(4.4*G+0.75*E)-E*E);
GE=CX*E*G;
CX=4.5533/10000000000*PN*LE*ZF*ZF*KW*KW*C1/P1;
Q2=1.5/PI*D/P1/GE*CX;
RS=PI*PI/3*P1*P1/ZZ/ZZ*(1+ZZ*ZZ/Z1/Z1/2);
KU=(3*BB+1)/4;
KL=(9*BB+7)/16;
LB=HK/BK+(B-BK)/sqrt(3)/(B+BK);
LC=(H-(B-BK/sqrt(3)/2))/3/B+0.135/sqrt(B/2/R);
LA=KU*LB+KL*LC;
XA=6*P1*L*LA/LE/KW/KW/Z1*CX;
XC=(1.2*LD+0.6*CS*M)/LE*CX;
if(DW<=270)
XC=0.47*(LS-1.6/3*TY)/LE/KW/KW*CX;
if(X==1)
{
LD=0.5+(BU-1)/sqrt(3)/(BU+1)+(HH-(BU-1)/sqrt(3)/2)/3/BL/pow((BU+BL),(16/15));
}
if(X==3)
{
U2=HG-(BU-1.5)/2/sqrt(3);
T=BL/BV;
KT=0.009+0.324*T+0.053*(T-1)*(T-1);
LD=0.8/1.5+(BU-1.5)/sqrt(3)/(BU+1.5);
LD=LD+(BU*pow(U2,3)/3+SD*U2*U2+SD*SD*U2/BU+BV*pow(HH,3)*KT)/SB/SB;
}
else
{
U2=BU/1.5;
T=BL/BV;
KP=0.009+0.324*U2+0.053*(U2-1)*(U2-1);
KR=0.5+(U2/(1-U2))*(U2/(1-U2))*(1/U2-log(1/U2)-1);
KS=U2/(1-U2)*log(1/U2);
KT=0.009+0.423*T+0.053*(T-1)*(T-1);
LD=(1.5*pow(HG,3)*KP+SD*HG*HG*KR+SD*SD*HG/BU*KS+BV*pow(HH,3)*KT)/SB/SB;
}
XD=6*P1*L*LD/LE/ZZ*CX;
XF=0.3785/LE*DR/P1*CX;
SG=PI*D/2/P1*LE;
SZ=0.2375*(BC+BD)*L*Z1/P1;
SY=0.95*(DW-D-2*(HK+H)-4/3*R)*L;
M=1;
if(P1==1)
M=1/3;
if(X==1)
{
SX=0.15833*(BE+2*BF)*L*ZZ/P1;
SJ=0.95*(D-1-2*G-M*DK-2*HH)*L;
}
if(X>1)
{
SW=0.475*BE*L*ZZ/P1;
SX=0.475*BF*L*ZZ/P1;
}
if(X>1)
{
SJ=0.95*(D-2*G-M*DK-2*HG-2*HH)*L;
}
if(X==3)
{
SJ=SJ-1.52*L;
}
if(DW>280)
{
SZ=SZ*92/95;
SY=SY*92/95;
SX=SX*92/95;
SJ=SJ*92/95;
SW=SW*92/95;
}
T=PI/4/P1*(DW-SY/1.9/L);
if(DW>280)
T=PI/4/P1*(DW-SY/1.84/L);
L=PI/4/P1*(M*DK+SJ/1.9/L);
if(DW>280)
L=PI/4/P1*(M*DK+SJ/1.84/L);
LS=2*P1*SZ*(H+R/3);
LZ=2*P1*SY*T;
PW=PW/PN/1000;
PS=(3-P1/2)/100.0;
if(P1>3)
PS=0.015;
DK=0.931+0.011*log(PN)-0.013*P1;
if(P1==1)
DK=0.92+0.00866*log(PN);
F=DK*38*10000000/sqrt(C1)/111/ZF/KW;
M=1.46;
BG=M*F/SG;
AG=800*BG*GE;
BZ=M*F/SZ;
AZ=0.3472*BZ/(1.754-BZ)*(H+R/3);
if(X==1)
{
BX=M*F/SX;
AX=0.3472*BX/(1.754-BX)*HH;
}
if(X>1)
{
BW=M*F/SW;
BX=M*F/SX;
AX=0.3472*(BW/(1.754-BW)*HG+BX/(1.754-BX)*HH);
}
E=1+(AZ+AX)/AG;
W=1.971-0.4*E;
if(E>1.25)
W=W+0.42*(E-1.25)*(E-1.25);
while(fabs(W-M)>=0.0005)
{
M=W-(W-M)/3;
BG=M*F/SG;
AG=800*BG*GE;
BZ=M*F/SZ;
AZ=0.3472*BZ/(1.754-BZ)*(H+R/3);
if(X==1)
{
BX=M*F/SX;
AX=0.3472*BX/(1.754-BX)*HH;
}
if(X>1)
{
BW=M*F/SW;
BX=M*F/SX;
AX=0.3472*(BW/(1.754-BW)*HG+BX/(1.754-BX)*HH);
}
E=1+(AZ+AX)/AG;
W=1.971-0.4*E;
if(E>1.25)
W=W+0.42*(E-1.25)*(E-1.25);
}
BY=F/SY;
AY=0.3472*BY/(1.754-BY)*T*(1.1-0.5*BY);
BJ=F/SJ;
AJ=0.3472*BJ/(1.754-BJ)*L*(1.1-0.5*BJ);
JM=1.48*(AG+AZ+AX+AY+AJ)*P1/ZF/KW/J;
XB=Q2*S/KW/KW/E;
XE=Q2*RS/E;
XS=XA+XB+XC;
XR=XD+XE+XF;
XX=XS+XR;
E=1+JM*XS;
BE=(2-E)/DK*BZ;
BF=5/100000*(BE-0.7)*LS;
BC=(2-E)/DK*BY;
BD=0.00005*(BC-0.7)*LZ;
PF=(2.5*BF+2*BD)/PN/1000;
M=1/E/XX;
F=M*(V2+K)+2*JM*V2;
BB=1+PF+PW+PS+JM*JM*V2;
M=(M-2*F*BB)/2;
F=1+F*F;
JX=(M-sqrt(M*M-F*BB*BB))/F;
JR=JX+JM;
JP=sqrt((1/E/XX-JX)*JX);
DW=1-JP*V2-JR*XS;
while(fabs(DW-DK)>=0.0005)
{
DK=DW-(DW-DK)/8;
F=DK*38*10000000/sqrt(C1)/111/ZF/KW;
M=1.46;
BG=M*F/SG;
AG=800*BG*GE;
BZ=M*F/SZ;
AZ=0.3472*BZ/(1.754-BZ)*(H+R/3);
if(X==1)
{
BX=M*F/SX;
AX=0.3472*BX/(1.754-BX)*HH;
}
if(X>1)
{
BW=M*F/SW;
BX=M*F/SX;
AX=0.3472*(BW/(1.754-BW)*HG+BX/(1.754-BX)*HH);
}
E=1+(AZ+AX)/AG;
W=1.971-0.4*E;
if(E>1.25)
W=W+0.42*(E-1.25)*(E-1.25);
while(fabs(W-M)>=0.0005)
{
M=W-(W-M)/3;
BG=M*F/SG;
AG=800*BG*GE;
BZ=M*F/SZ;
AZ=0.3472*BZ/(1.754-BZ)*(H+R/3);
if(X==1)
{
BX=M*F/SX;
AX=0.3472*BX/(1.754-BX)*HH;
}
if(X>1)
{
BW=M*F/SW;
BX=M*F/SX;
AX=0.3472*(BW/(1.754-BW)*HG+BX/(1.754-BX)*HH);
}
E=1+(AZ+AX)/AG;
W=1.971-0.4*E;
if(E>1.25)
W=W+0.42*(E-1.25)*(E-1.25);
}
BY=F/SY;
AY=0.3472*BY/(1.754-BY)*T*(1.1-0.5*BY);
BJ=F/SJ;
AJ=0.3472*BJ/(1.754-BJ)*L*(1.1-0.5*BJ);
JM=1.48*(AG+AZ+AX+AY+AJ)*P1/ZF/KW/J;
XB=Q2*S/KW/KW/E;
XE=Q2*RS/E;
XS=XA+XB+XC;
XR=XD+XE+XF;
XX=XS+XR;
E=1+JM*XS;
BE=(2-E)/DK*BZ;
BF=0.00005*(BE-0.7)*LS;
BC=(2-E)/DK*BY;
BD=0.00005*(BC-0.7)*LZ;
PF=(2.5*BF+2*BD)/PN/1000;
M=1/E/XX;
F=M*(V2+K)+2*JM*V2;
BB=1+PF+PW+PS+JM*JM*V2;
M=(M-2*F*BB)/2;
F=1+F*F;
JX=(M-sqrt(M*M-F*BB*BB))/F;
JR=JX+JM;
JP=sqrt((1/E/XX-JX)*JX);
DW=1-JP*V2-JR*XS;
}
printf("氣隙磁密%-12.3f 定子齒磁密%-10.3f 定子軛磁密%-8.3f ",BG,BZ,BY);
//printf(" ")
if(X==1){
printf("BX=%.1f BJ=%.1f\n",BX,BJ);
}
if(X>1)
{
printf("轉子齒上部磁密%-7.3f 轉子齒下部磁密%-6.3f 轉子軛磁密%-8.3f\n T T T T T T \n\n",BW,BX,BJ);
}
//printf(" ")
PC=(JP*JP+JR*JR)*V2;
PA=(JP*JP+JX*JX)*K;
JC=sqrt(JP*JP+JR*JR);
JN=sqrt(3/C1)*JC*J;
S=30*ZF*JC*J/PI/D;
DW=JC*J/A1/SC;
DK=S*DW;
printf("額定線電流%-10.2f 線負荷%-14.0f 定子電密%-12.2f",JN,S,DW);
DR=3*sqrt(JP*JP+JX*JX)*J*ZF*KW/ZZ/SB;
SR=DR*SB*ZZ/PI/2/P1/SR/100;
printf(" 熱負載%-15.0f 轉子導條電密%-10.2f 端環電密%-4.2f\n A A*mm^-1 A*mm^-1 A*mm^-1 A*mm^-1 \n\n ",DK,DR,SR);
C2=1/JC*JP;
S=PA/(1+PA+PF+PS+PW-(BD+BF)/PN/1000);
printf("定子銅耗%-12.1f 轉子鋁耗%-12.1f 鐵耗%-17.1f",PC*PN*1000,PA*PN*1000,PF*PN*1000);
printf("風摩耗%-15.1f 雜散耗%-16.1f 效率%-4.2f\n W W W W W \n",PW*PN*1000,PS*PN*1000,100/JP);
printf(" \n");
T=(1-S)/2/(V2+sqrt(V2*V2+XX*XX));
printf("定子運行電抗%-8.3f 轉子運行電抗%-8.3f 總運行電抗%-10.3f",XS*100,XR*100,XX*100);
printf(" 功率因數%-11.3f 轉差率%-12.3f 最大轉矩倍數%-6.3f\n",C2*100,S*100,T);
U2=PI*D/Z1;
W=PI*(D-2*G)/ZZ;
M=0.707*sqrt(2-E)*N1/A1*(KU+KW*KQ*Z1/ZZ)/(0.64+0.25*sqrt(G/(U2+W)))/0.16/G;
Q2=(HK+(B-BK)/6)/BK;
if(X==1){
H=0.0675*HH;
R=V2+(1+0.4*(H-0.5)*(H-0.5)/sqrt(BU/BL))*Y+KK;
LE=(LD-0.5)*(1-0.11*(H-0.5)*(H-0.5)/pow((BU/BL),0.16));
}
else{
BB=1-0.06*(BV/BU-1)+0.012*(BV/BU-1)*(BV/BU-1);
B=BB/0.0675;
A2=1.5*B;
DR=BL+(BV-BL)*(HG+HH-B)/HH;
RS=B-HG;
R=V2+SB/(SB-SD+(DR+BV)/2*RS)*Y+KK;
DR=BL+(BV-BL)*(HG+HH-A2)/HH;
RS=A2-HG;
SB=SB-SD+(DR+BV)/2*RS;
if(X==3)
{
A2=HG-(BU-1.5)/2/sqrt(3);
H=DR/BV;
KT=0.009+0.324*H+0.053*(H-1)*(H-1);
SD=(BV+DR)/2*RS;
LE=(BU-1.5)/sqrt(3)/(BU+1.5)+(BU*pow(A2,3)/3+SD*A2*A2+SD*SD*A2/BU+BV*pow(RS,3)*KT)/SB/SB;
}
else
{
H=DR/BV;
KT=0.009+0.324*H+0.053*(H-1)*(H-1);
SD=(BV+DR)/2*RS;
LE=(1.5*pow(HG,3)*KP+SD*HG*HG*KR+SD*SD*HG/BU*KS+BV*pow(RS,3)*KT)/SB/SB;
}
}
P2=2.7*T*J;
K=0.234/pow((M*P2/100000),0.86);
if(K<0.85) K=0.85;
CS=(U2-BK)*(1-K);
C2=(W-1)*(1-K);
if(X>1) C2=(W-1.5)*(1-K);
L=KU*(LB-Q2*(CS/(CS+1.5*BK)))+KL*LC;
D=L/LA*XA;
H=K*XB;
XS=D+H+XC;
N2=LE+0.5/(C2+1);
if(X>1) N2=LE+1.5/0.8/(C2+1.5);
if(X==2) N2=LE;
F=N2/LD*XD;
G=K*XE;
XR=F+G+XF;
XX=XS+XR;
Z2=sqrt(R*R+XX*XX);
B=J/Z2;
while(fabs(B-P2)/B<=0.001)
{
P2=B+(B-P2)/8;
K=0.234/pow((M*P2/100000),0.86);
if(K<0.85) K=0.85;
CS=(U2-BK)*(1-K);
C2=(W-1)*(1-K);
if(X>1) C2=(W-1.5)*(1-K);
L=KU*(LB-Q2*(CS/(CS+1.5*BK)))+KL*LC;
D=L/LA*XA;
H=K*XB;
XS=D+H+XC;
N2=LE+0.5/(C2+1);
if(X>1) N2=LE+1.5/0.8/(C2+1.5);
if(X==2) N2=LE;
F=N2/LD*XD;
G=K*XE;
XR=F+G+XF;
XX=XS+XR;
Z2=sqrt(R*R+XX*XX);
B=J/Z2;
}
T=(R-V2)/Z2/Z2*(1-S);
printf("定子起動電抗%-8.3f 轉子起動電抗%-8.3f 總起動電抗%-10.3f 起動電流倍數%-9.3f 起動轉矩倍數%-.3f\n",XS*100,XR*100,XX*100,1/JC/Z2,T);
printf(" \n");
}
|