数学建模最终定稿_第1页
数学建模最终定稿_第2页
数学建模最终定稿_第3页
数学建模最终定稿_第4页
数学建模最终定稿_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、A题:铁皮罐下料问题一、问题分析:针对问题一,生产一定量的铁皮罐,且上下盖圆板和侧面矩形板都在规格为2 1的铁皮上冲压或切割出来(不在同一铁皮上混合下料),要使得用料最省,则要考虑如何分配用作圆料和长方形的铁皮数。针对问题二:大规模生产时,只考虑节省原料问题。(可以在同一张铁皮上混合下料)所以首先考虑在平均情况下使每张铁皮生产的铁罐个数达到尽可能多,或每张铁皮的损耗更少。针对问题三:实际生产中,零件与零件的连接大部分要考虑接口处的损耗,所以实际生产中要对大部分连接零件预留接口,这就使实际部件尺寸比理想的稍大哦,所以在建立模型时要考虑在某些参数不变的情况下刻意增大某些量。2、 模型假设: 1、在

2、封闭的环境下冲压或切割,忽略外界气压、温度等的影响。 2、忽略铁皮的厚度影响。(实际情况改进时再考虑) 3、下料时,图形互不重叠,即图形边界线不得相交。 4、理想切割或冲压,即不会产生裁剪毛边且相切图形可以沿切线准确裁剪,并且不会 出现造成铁皮损坏等工艺上的失误。 5、不考虑预留接口。(问题三另作考虑) 6、所有铁皮罐规格相同。 三、变量符号说明符号对象单位r圆柱形铁皮罐上盖和下底的半径md圆柱形铁皮罐上盖和下底的半径mh圆柱形铁皮罐的高mS圆柱形铁皮罐的表面积平方米V圆柱形铁皮罐的体积立方米a铁皮长度mb铁皮宽度mN一张铁皮可做出的圆板数正整数N44切圆时的圆板数正整数N66切圆时的圆板数正

3、整数Nm一张铁皮可做出的矩形板的数量正整数圆周率,取3.14164、 模型建立:4.1、问题(1): 分析:生产一定量的铁皮罐,且上下盖圆板和侧面矩形板都在规格为2X1的铁皮上冲压或切割出来(不在同一铁皮上混合下料),要使得用料最省,则要考虑如何分配用作圆板和矩形板的铁皮数。为此,需要先建立两个子模型(切割圆板最优模型和切割矩形板最优模型)并先利用铁皮罐表面积最小缩小半径r的取值范围。4.1.1、切割圆板模型的建立 1、假设: a、理想切割,即可使圆与圆彼此相切; b、每个圆(除在铁皮边缘的圆)之间接触的形式(每张铁皮上的圆只能有一种接触形式)为: (1)与4个圆相切。 (2)与6个圆相切。2

4、、 建立模型与数学求解: 每个圆与4个圆相切的形式 每个圆与6个圆相切的形式 每个圆与4个圆相切时:若a2nr可得到n列圆(n只能为正整数),所以列数n就是a/2r的整数部分a/2r。同理可知,行数为b/2r的整数部分b/2r。故一张铁皮可得圆板总数为N=a/2r*b/2r。 每个圆与6个圆相切时:当铁皮长度a是r的奇数倍(2n+1)r,则在a增大到(2n+2)r足以再容纳一个圆板前,每行可有n个圆板;a增大到(2n+2)r时,各行交替为n+1个和n个;a再增大到(2n+3)r不到(2n+4)r时每行就能包含n+1个圆板。若共有x行,则x必须满足2r+ (x-1)rb,因x只能是整数,所以x=

5、(b-2*r)/(3 *r)+1。在每行有n个圆板的情况下,圆板总数N=nx,由条件(2n+1)r=a(2n+2)r得n=(a/r-1)/2.因此, N=1/2(a/r-1)(b-2*r)/(3 *r)+1.当各行为n+1和n个圆板交替出现时,分开考虑行数为偶数和奇数情况。x为偶数时,有n+1个和n个圆板的行数各为x/2行;当x为奇数时有n+1个和n个圆板的行数分别为(x+1)/2行和(x-1)/2行,n也必须满足(2n+2)r=ah时和dh时 (1)(3) d=h时(2)(4)(2) 同类型分类排列方式(注意,中间线不是平分线也不是分界线,只是为了形象的表达模型的意思)矩形区圆形区 (1)

6、矩形区圆形区 (2)矩形区圆形区 (3)圆形区矩形区 (4)4.2.3模型的求解:(1),当d=h时,因为圆周长为d=2r,所以,圆周长近似等于3倍个直径d,现假想问题一中建立的矩形板模型中一部分矩形被圆板代替,三个圆板可近似代替一个矩形,假设一块铁皮上有x个矩形被代替,我们认为同一块铁皮上圆板的数目比上矩形板的数约为2:1时,每块铁板生产的铁罐最多,所以可列方程: 3*x=2*(Nm-x),因x只能取整,故x=2Nm/5利用问题一已经解好的结果,当r=0.5420时,Nm最大取51,所以x最大为20。此时每张圆至少可切割出下限60个圆,31个矩形,组成30个铁罐。由于实际切割时切出的圆板数和

7、矩形数都比这个多,但矩形板最多不超过32个,所以与问题一生产10000个铁皮罐的最省下料方式用料299张相比,此种混合切割生产的最多铁皮罐数在区间(8970,9568)内,小于10000个,故,与分开下料相比,当dh时 ,如图(1)(3),因(1)(3)模型的排列形式相同,故只对图(1)模型进行求解分析。如图,因2r3d,所以把三个圆绑在一起。先将横行中一个矩形和三个圆形看成一个组元,竖行中也将一个矩形和三个圆形看成一个组元。则:当an(2r+6r),在a增大到足够再容纳一个组元之前,每行有完整组元n=a/(2r+6r)。剩余长度l=a-n(2r+6r)。剩余部分结果可以有以下几种:非组元矩形

8、数0111000000非组员圆板数0012123456要求每种情况固定,比如第一行剩余部分为一个矩形加两个圆形,那么后面各行都这样安排。当a=(n+1)(2r+6r)时,每行可容纳n+1个组元。同理分析宽方向的组元数可得到行数(竖方向组元数的两倍等于行数)。分析如下:当bm(h+2r),在b增大到足够再容纳一个组元之前,每竖行有完整组元数m=b/(h+2r)。剩余长度i=b-m(h+2r)。剩余部分结果如下表:非组元矩形数010非组员圆板数003要求如果剩余部分只可容纳一个矩形,那么后面的都是矩形,如果可以容纳圆的话,那么就按行的组元排列。 当b=(m+1)(h+2r)时,每竖行有m+1个组元

9、。如果设Xi,Yi分别表示,竖行部分的非组元矩形数和非组员圆板数(i为对应的组数),xi,yi分别表示横行的非组元矩形数和非组员圆板数(i为对应的组数),则可以看出Xi,Yi不能同时取值,即至少有一个为0。所以混合裁剪时每块铁皮中圆形(N)和矩形(Nm)的数目分别为:当m(h+2r)bm+1)(h+2r),n(2r+6r)a(n+1)(2r+6r), 时:Nm=2*a/(2r+6r)*b/(h+2r)+2*Xi*a/(2r+6r)+xi*b/(h+2r)+1(h=i2r);Nm=2*a/(2r+6r)*b/(h+2r)+Xi*a/(2r+6r)+xi*b/(h+2r)+1(2rih+2r);N

10、=3*2*a/(2r+6r)*b/(h+2r)+Yi*a/(2r+6r)+yi*b/(h+2r)+1当m(h+2r)bm+1)(h+2r),a=(n+1)(2r+6r)时Nm=2*(n+1)*b/(h+2r)+2Xi*(n+1) (h=i2r);Nm=2*(n+1)*b/(h+2r)+Xi*(n+1) (2rih+2r);圆形数:N=3*2*(n+1)*b/(h+2r)+1当b=(m+1)(h+2r),n(2r+6r)a(n+1)(2r+6r)时Nm=2*a/(2r+6r)+1*(m+1)N=3*2*a/(2r+6r)*(m+1)+yi*(m+1)当b=(m+1)(h+2r),a=(n+1)(

11、2r+6r时Nm=2*(n+1)*(m+1)N=3*2*(n+1)*(m+1)(求解过程较繁琐,可编程实现,时间不够编程略)同类型分类形式排列时求解:此种情况可利用问题(1)中的两个子模型求解。在这不多述了。4.2.4 评估分析:(1)建立的模型在生产生活中有一定的实际意义。(2)模型中编程的程序较为复杂。(3)模型中将圆形和矩形混合下料在实际生产中可以缩短工序。4.1.5 模型的改进(1) 改进模型,考虑多种规格铁皮罐的切割问题,可使产品多样化。4.3、问题(3)4.3.1分析:此题可看成是问题(1)和问题(2)在实际生产中的实际应用,所以可直接利用问题(1)和问题(2)中已经建立好的模型。

12、故此题只需分析问题(1)和问题(2)中的数据就可得出答案。在这里,我只对问题(1)中的数据(即圆形板和矩形板不在同一张铁皮上混合下料的情况)进行预留接口的分析。4.3.2以下是需要用到的问题(1)的求解数据表1r N4 N6 Nm ZhX4X6Y0.051171198493070.122371171022050.052171198503020.117711171022000.053162179513090.113311241121970.054162179503120.109151241122000.055162170503180.105221241182000.056136160513220

13、.10151481251970.057136160543110.097971481251860.058136152523250.094621481321930.059128143523330.09144157140193表2r N4 N6 Nm ZhX4X6Y0.0511171198493070.12191171022050.0512171198493070.121421171022050.0513171198493070.120951171022050.0514171198493070.120481171022050.0515171198493070.120011171022050.0516

14、171198503020.119551171022000.0517171198503020.119081171022000.0518171198503020.118621171022000.0519171198503020.118171171022000.052171198503020.117711171022000.0521171198512990.117261171021970.0522171189513030.116811171121970.0523171189513030.116371171121970.0524171189513030.115921171121970.05251711

15、89513030.115481171121970.0526171189513030.115041171121970.0527162179513090.114611241121970.0528162179513090.114171241121970.0529162179513090.113741241121974.3.3由分析数据可知,当工厂生产铁罐时切割精度只精确到毫米的话,我们就取铁罐底面半径r=0.052m,此时高h=0.118m,所用料Z为302张铁皮。所以我们就在r=0.052m的情况上预留接口4.3.4假设:预留接口为1mm由圆半径和矩形长预留,高不变。 此时r=0.053m 矩形长

16、为2r+0.001=0.33384m,h=0.118m 由于圆形和矩形是分开下料,所以可以按各自的优化模型求解。r=0.053m时,按圆形板的切割模型可得6切圆时最多,N6 =179。矩形长为0.33384m宽为0.118m时,利用问题(1)中的矩形切割模型结合附表中的C+程序可以解得此时每张铁皮可最多切割出50个小矩形板。按照问题(1)中的生产基数10000个。设x为分配用作加工圆板的铁皮数,y为分配用作加工矩形板的铁皮数。 则可列得方程: 179x=2*10000 50y=10000 (x,y均为真整数) 解得:x=112,y,=200即考虑到预留接口时,当预留1mm且不做精密加工时,可解

17、得生产10000个铁罐时的最省下料方案为:用112张铁皮加工圆板,200张铁皮加工矩形板,此时共用料312张。其他预留接口情况可同样分析。4.3.5 评估分析:(1)有以上分析计算可知,实际生产时,由于要预留接口,所以原料的损耗要比理论的多的多,所以此模型在生产生活中有一定的实际意义。(2)巧妙的利用已经建立好的模型进行分析,简化了设计的程序。(3)实际的预留接口应当视产品性质而定。参考文献:1、 C语言程序设计教程(第二版)2、 数学建模经典模型的优化程序3、 4、 北京理工大学珠海学院数学建模论文魏亮学号:1004050210022012 年 4 月 23 日附C+程序:#include#

18、includeint max,min;int maxblank,maxlayer,layer;int k=0;int xx,yy; int cut(int x,int y, int a,int b)/x,y初始材料大小,即长,宽,运行中表示剩余可切割的长宽区域;/a,b表示切割的最小单元长,宽; int z1,z2,x1,y1; if(xy) max=x; min=y; else max=y; min=x; if(maxa)|(minb) return 0; /确定是否继续分割,否则退出循环! else/继续分割下去 layer=layer+1;/计算当前的层数 x1=x-a;/计算横切块数

19、z1=cut(x1,y,a,b)+y/b; if(x10)z1=z1-y/b; y1=y-a;/计算竖切块数 z2=cut(x,y1,a,b)+x/b; if(y1z2) layer=layer-1; if(layermaxlayer) maxlayer=layer; return z1; else layer=layer-1; if(layermaxlayer) maxlayer=layer; return z2; int forword(int x,int y, int a,int b) int z1,z2,x1,y1,qk,qh; if(x=xx&y=yy) qh=qk=0; if(xy

20、) max=x; min=y; else max=y; min=x; if(maxa)|(minb) return 0; /确定是否继续分割,否则退出循环! else/继续分割下去 /layer=layer+1;/计算当前的切割的大块数目 qh+=y/b;/计算横切的次数 x1=x-a;/计算横切块数 z1=cut(x1,y,a,b)+y/b; if(x10) z1=z1-y/b; qh-=y/b; qk+=x/b;/计算竖切的次数 y1=y-a;/计算竖切块数 z2=cut(x,y1,a,b)+x/b; if(y1z2) cout横切的次数:竖切的次数:qh=qh#qk=qkendl; return z1; else cout横切的次数:竖切的次数:qh=qh#qk=qkendl; return z2; float circle(float l, float b, float r, int flag) int x=floor(1+(l/r-2)/sqrt(3); if(flag=4) float f=2*r; float t3=b/f; int t1=floor(t3); float t4=l/f; int t2=floor(t4); return t1*t2; else if(int)(floor(b/r)%2=0) if(x%2=0) return x/2.0*(floor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论