《电机学》课程设计Word格式文档下载.doc

上传人:聆听****声音 文档编号:3718030 上传时间:2023-05-02 格式:DOC 页数:18 大小:6.53MB
下载 相关 举报
《电机学》课程设计Word格式文档下载.doc_第1页
第1页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第2页
第2页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第3页
第3页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第4页
第4页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第5页
第5页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第6页
第6页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第7页
第7页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第8页
第8页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第9页
第9页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第10页
第10页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第11页
第11页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第12页
第12页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第13页
第13页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第14页
第14页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第15页
第15页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第16页
第16页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第17页
第17页 / 共18页
《电机学》课程设计Word格式文档下载.doc_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《电机学》课程设计Word格式文档下载.doc

《《电机学》课程设计Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《《电机学》课程设计Word格式文档下载.doc(18页珍藏版)》请在冰点文库上搜索。

《电机学》课程设计Word格式文档下载.doc

假设任意两个不同的xj都互不相同,那么应用拉格朗日插值公式所得到的拉格朗日插值多项式为:

其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:

拉格朗日基本多项式的特点是在上取值为1,在其它的点上取值为0。

代码如下:

#include<

iostream>

cstdlib>

cmath>

iomanip>

stdlib.h>

usingnamespacestd;

doubledelta1=0.003,delta2=0.002,w=0.125,h=0.15,n1=100,n2=50,l=0.05,d=0.05;

doublepi=3.1415926535898;

doubleu0=4*pi*pow(10,-7);

doublei1,i2,f10,f20;

inti_diedai_root1=0,i_diedai_root2=0,i_ddjs=0;

doublebh[2][150]={{0.4 ,

doubleLagrange(doublexx);

doubleb2h(doubleb);

doublef2(doubleb2,doubleb1);

doubleroot2(doublex1,doublex2,doubleb1);

doublelinearfit2(doublex);

doublelinearfit1(doublex);

intmain()

{

doubleb1,b2,b3,h1,h2,h3,f1,f2;

b1=2.4;

b2=root2(0,2.4,b1);

b3=b1-b2;

i1=(h1*(2*w+h+3*l-delta1)+b1*delta1/u0+h3*(h+l))/n1;

i2=(b2h(b2)*(2*w+h+3*l-delta2)+b2*delta2/u0-b2h(b3)*(h+l))/(-n2);

cout<

<

endl<

"

计算过程信息:

二分法计算B2次数:

i_diedai_root1<

endl;

磁密计算结果:

setprecision(16)<

B1="

b1<

B2="

b2<

B3="

b3<

endl;

磁通计算结果:

Φ1="

b1*l*d<

Φ2="

b2*l*d<

Φ3="

b3*l*d;

I1="

i1;

结果验算:

"

Φ1="

(b2+b3)*l*d<

I2="

i2;

system("

pause"

);

return0;

}

doubleb2h(doubleb)//计算磁场强度H,输入磁感应强度B,输出磁场强度H

{intt;

doubleh_t;

t=abs((int)(100*b))-40;

if(t>

134)

{

if(b>

=0)

returnlinearfit2(b);

elsereturn-linearfit2(-b);

}

if(t<

15)

{

if(b>

returnlinearfit1(b);

elsereturn-linearfit1(-b);

}

=0)returnLagrange(b);

elsereturn-Lagrange(-b);

doubleLagrange(doublexx)//拉格朗日插值,输入自变量,输出插值函数值

inti=0,j=0,n=150,z=0;

doublepai,sum;

double*x,*y;

x=bh[0];

y=bh[1];

z=((int)(100*xx))-45;

if(xx<

=0.45)z=0;

n=10+z;

if(xx>

1.84)n=6+z;

for(j=z,sum=0;

j<

n;

j++)

for(i=z,pai=1;

i<

i++)

if(i==j)continue;

pai=pai*(xx-*(x+i))/(*(x+j)-*(x+i));

sum=sum+*(y+j)*pai;

returnsum;

doublelinearfit2(doublex)

return(56450*x-89188);

doublelinearfit1(doublex)

return(202.21*x+57.015);

doublef2(doubleb2,doubleb1)

doubleb3,h2,h3;

h2=b2h(b2);

h3=b2h(b3);

returnh2*(2*w+h+3*l-delta2)+b2*delta2/u0-h3*(h+l)+n2*i2;

doubleroot2(doublex1,doublex2,doubleb1)

doublex,y,y1;

y1=f2(x1,b1);

do

cout<

'

!

;

i_diedai_root1++;

if(i_diedai_root1>

=1000000)break;

x=(x1+x2)/2;

y=f2(x,b1);

if(y*y1>

0)

x1=x;

y1=y;

else

x2=x;

}while(fabs(y)>

=2*pow(10,-13));

returnx;

计算结果(设定收敛精度10^-13):

计算结果:

B1=2.4T,B2=0.721749T,B3=1.67825T

Φ1=0.006Wb,Φ2=0.0018044Wb,Φ3=0.00419563Wb

I1=57.2958A

改变程序,使收敛精度降低为10^-10,则运算精度降低,但循环次数减小,时间开销减下。

Φ1=0.006Wb,Φ2=0.0018044Wb,Φ3=0.00419563Wb

I1=57.2958A

编程用迭代法实现,计算时先用铁芯磁导率为无穷大情况时近似计算B1,B2,B3的值,将B3的值作为定值计算出H3的值带入方程

(1)

(2),用弦截法计算出B1和B2的值并计算出B3的值,与之前的值比较,若在允许的误差范围以内则计算结束输出计算值,否则将B3的值带入进行下一次循环,直到B3的精度达到要求。

计算步骤如下:

① 近似情况下求得

② 代入方程

(1)

(2),通过弦截法求得,

③ 求得

④ 与比较,若精度达到要求,则,,即为所求

⑤ 若精度达不到要求,则重复2,3,4步骤,求得,直到精度足够即与之差足够小

⑥ 通过得到的求

用近似计算结果充当第零次迭代值,因精确值与近似值偏差不是很大,可加快收敛,减小迭代次数,并可避免因步长太大或太小而不能收敛。

程序执行时可选择是否进行拉格朗日插值法或曲线拟合法,提高磁场强度的精确度。

拉格朗日插值法计算量很大,时间消耗太大,故采用曲线拟合法。

因曲线变化范围较大,对整个曲线进行拟合比较困难,如使用6次多项式进行拟合,系数达到105数量级,R2为0.9995。

因此,对曲线进行分段拟合:

图像如图所示,其中蓝点为磁化曲线上的点,不同颜色的曲线为拟合曲线。

磁化曲线(B-H)

磁化曲线(H-B)

流程图如下:

charlag_in;

doublebh[2][150]={{0.4 , 【磁化曲线表】

doublecidongshi1(double,double);

doublecidongshi2(double,double);

doublediedai_root1(double,double,double);

doublediedai_root2(double,double,double);

doublecszl1(doubleb1,doubleh3);

doublecszl2(doubleb2,doubleh3);

doubletrendfit(doublex);

i1=10;

i2=20;

f10=n1*i1;

f20=-n2*i2;

表示弦截法计算B1一次"

@表示弦截法计算B2一次"

*表示迭代计算B3一次"

b1=n1*i1*u0/delta1;

b2=-n2*i2*u0/delta2;

//近似计算

近似结果:

"

b1="

b2="

b3="

//进行迭代计算

b1=diedai_root1(-1.89,1.89,h3);

b2=diedai_root2(-1.89,1.89,h3);

while(fabs(b1-b2-b3)>

pow(10,-16))//迭代计算循环,判断精度是否足够

{cout<

*'

b1="

b2="

b3="

b3;

i_ddjs++;

b3=b1-b2;

h3=b2h(b3);

b1=diedai_root1(-1.89,1.89,h3);

b2=diedai_root2(-1.89,1.89,h3);

b1-b2-b3="

b1-b2-b3<

f1=cidongshi1(b1,h3);

//验算

f2=cidongshi2(b2,h3);

弦截法计算B1次数:

弦截法计算B2次数:

i_diedai_root2<

迭代计算B3次数:

i_ddjs<

收敛误差B1-B2-B3="

endl;

b3*l*d<

收敛误差Φ1-Φ2-Φ3="

f1/n1<

I2="

<

-f2/n2<

结果误差:

ΔI1="

f1/n1-i1<

ΔI2="

-f2/n2-i2<

doublecidongshi1(doubleb1,doubleh3)//计算回路1磁路降落磁动势,输入B2、B3,输出降落磁动势

{doublef1,h1;

h1=b2h(b1);

f1=h1*(2*w+h+3*l-delta1)+b1*delta1/u0+h3*(h+l);

returnf1;

doublecidongshi2(doubleb2,doubleh3)//计算回路2磁路降落磁动势,输入B2、B3,输出降落磁动势

{doublef2,h2;

f2=h2*(2*w+h+3*l-delta2)+b2*delta2/u0-h3*(h+l);

returnf2;

doublecszl1(doubleb1,doubleh3)//计算方程1的一边剩值

{return(cidongshi1(b1,h3)-f10);

doublecszl2(doubleb2,doubleh3)//计算方程2的一边剩值

{return(cidongshi2(b2,h3)-f20);

doublediedai_root1(doublex1,doublex2,doubleh3)//用弦截法计算B1的值,输入区间[x1,x2]和H3,输出B1

{doublex,y,y1;

y1=cszl1(x1,h3);

x=(x1*cszl1(x2,h3)-x2*cszl1(x1,h3))/(cszl1(x2,h3)-cszl1(x1,h3));

y=cszl1(x,h3);

{y1=y;

=pow(10,-12));

doublediedai_root2(doublex1,doublex2,doubleh3)//用弦截法计算B2的值,输入区间[x1,x2]和H3,输出B2

y1=cszl2(x1,h3);

@'

i_diedai_root2++;

if(i_diedai_root2>

x=(x1*cszl2(x2,h3)-x2*cszl2(x1,h3))/(cszl2(x2,h3)-cszl2(x1,h3));

y=cszl2(x,h3);

doubletrendfit(doublex)

if(x<

=0.55)

return(202.21*x+57.015);

=1.2)

return1394.4*x*x*x-2534*x*x+1827.7*x-304.98;

=1.4)

return6220.1*x*x-13217*x+7561;

=1.7)

//return-3584200*pow(x,6)+30547000*pow(x,5)-108050000*x*x*x*x+203090000*x*x*x-214030000*x*x+119920000*x-27918000;

//return67219*pow(x,4)-296310*x*x*x+475470*x*x-32210*x+75104;

return0.2454*exp(6.0327*x);

return56450*x-89188;

doubleb2h(doubleb)//计算磁场强度H,输入磁感应强度B,输出磁场强度H

if(b>

=0)returntrendfit(b);

elsereturn-trendfit(-b);

计算结果(设定收敛精度10^-12):

中间过程略,最后结果为:

Φ1=0.000909140Wb,Φ2=-0.00133393Wb,Φ3=0.00224307Wb

由验算结果,与原给定结果相比,差别较小,小于10^-13,因而计算所得的结果很准确。

三、设计总结

课程设计任务分配:

求解题目1的

(1)、

(2)问:

邱天

画出题目的磁路图:

彭鸿昌

磁化曲线线性拟合:

李彦青

编写程序求解题目2的I1和Φ1:

彭永晶

编写程序求解题目3的Φ1和Φ2:

张丰伟

课设报告总编排:

彭永晶、张丰伟

课设心得:

彭鸿昌:

这次课程设计温习了原来学过的知识,并将它们和编程,画图结合了起来。

课程设计中的磁路图就是我用CAD画的。

一开始并不大会,但是通过琢磨和咨询,慢慢地熟悉了起来。

后来终于将它完整地画了出来。

在后续课设任务中,组员们都很认真地在做这次课设。

总的来说,这次课程设计不仅锻炼了自身的能力,还培养了我们的团队合作精神。

邱天:

通过这次电机课程设计,我不仅巩固了基础知识,还能学以致用,将其用在解决具体问题上。

这次课设从基础计算,资料搜集,程序汇编,无一不凝聚了我组组员的心血,我们不仅锻炼了团队合作,还锻炼了独立思考解决问题的能力,总而言之,这次课设全面地锻炼了我们的能力,令我们受益颇深。

李彦青:

题目是熟悉的磁路计算。

已知Φ求F可通过方程顺利求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2