《全国数学建模获奖作品(创意折叠桌).doc》由会员分享,可在线阅读,更多相关《全国数学建模获奖作品(创意折叠桌).doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除创意平板桌摘 要本题目中提供了若干折叠桌的图片,需要利用数学软件进行创意设计。对本文中的三个问题,利用MATLAB软件(由美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分,详细介绍请见附录1),对图片进行灰度分析,转化为数据分析,并通过对matlab编程,在matlab中选出最优解,最后利用3dmax绘图,实现平板桌的设计。本文根据题目所给知识,利用运筹学基础理论、相关的数学建模知识以及相应的计算机软件,解决了如下问题:问题1
2、:由对每根木条长度的精确计算,建立折叠桌的动态模型,并计算出桌腿木条开槽的长度和桌脚边缘线等折叠桌的设计参数。针对图中创意折叠桌:利用MATLAB对图片进行处理,转变为具体的空间直角坐标系,其中蓝色代表木条,棕色代表桌面,红色代表桌角边缘线(详细介绍请见附录2),空间直角坐标系中由最后数字的确立,即为视频中最后一张图片的演示结果。利用勾股定理法,使用CAD语言程序统计出剩下第一张图片和最后一张图片的所有木条个数,使其折叠桌的设计原理更加鲜明。建立由MATLAB进行编辑的的数学模型,木条分别为L1,L2,L20,再重复利用上述算法,找出折叠桌的各项参数。问题2:先对桌子进行与问题1相同的参数计算
3、。但由于要在70 cm,桌面直径80 cm的情形,确定最优设计加工参数。在计算的时候应考虑更多的稳固性、加工方面、用材的信息。这里除了计算参数外,另外引用折叠结构设计基本几何参数这个概念进行再次验证,以减小误差。最后再对得到的桌子参数进行人工验证(人工干预),最大程度减小误差。问题3:在问题二的理论分析验证的基础上,已经建立起最优化的数学模型,为了满足客户任意设定的折叠桌高度、桌面边缘线的形状大小和桌脚边缘线的大致形状,应用MATLAB进行不断更新换算程序,得出八个时刻八张动态折叠桌折叠过程,(详细介绍请见附录3),使得生产的折叠桌尽可能接近客户所期望的形状。(详细介绍请见参考文献11)关键词
4、:MATLAB、CAD、运筹学、稳定性能、边缘线、归纳分析法一、 问题分析和基础知识介绍折叠式家具作为结束中国跪坐时代的代表作,从普通百姓到高贵的皇室无不出现它的影子。在现代,折叠式家具随时代的变化不断完善和更新,人们对于家具的要求不只是仅限于其原始的功能,逐步向多元化的方向发展,更注重家具的精神价值和时代精神本文以折叠式多功能创意平板桌为研究对象。然而,目前的结果很少给出具体的数学模型,针对性比较强,没有统一的算法,如何建立数学模型方法利用在稳固性好、加工方便、用材最少,使得生产的折叠桌尽可能接近客户所期望的形状是本文的主要工作。针对本题目给出的问题,给出了如下分析:问题1:要求对给定的创意
5、折叠桌的各项数据,建立相应的算法进行描述此折叠桌的动态数学模型。分析: a、 若要建立动态的数学模型,首先要对图片进行获取,所以要用相应的软件进行图片导入,我们这里利用MATLAB语言实现这一操作,并将图片数字化语言编辑成图形模式。之所以选择MATLAB语言进行,是因为MATLAB有特殊的统计技术、绘图功能,以及编程介面和数据输出/输入功能(详细介绍请见参考文献7)。它是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);而且还具有优秀的统计制图功能,编程语言简单而又强大。MATLAB还有强大的绘图功能,制图具有印刷的素质,
6、也可加入数学符号。(详细介绍请见参考文献4) b、木条和木槽数据差别:木条差别:首先找出第一张图片最右边木条的长度,即为折叠桌最长长度。再用剩下图片依次变化分别对每一根木条进行比较分析,分别统计每根木条之间的相同点与不同点,即中间木条最短,与第一张图片相似度较大大,但相邻的每根木条差异很小,并能计算出角度。木槽差别:由于钢筋与外侧木条的交点距离外侧木条的转动圆心相对靠外,所以这个长度差值应为60cm与最外侧木条长度的差值,就是在支撑态下,其他木条与钢筋的交点,而支撑态下,个木条与钢筋的交点和长方形态时,各不相同,针对这种情况,转动各根木条圆心,知道支撑态下与钢筋的交点,两点确定一条直线,并以此
7、进行比较,可知槽的理论长度。c、因为需要比较的数据比较多,利用比较分析法和归纳法求需要的最优解。 本文利用的CAD图:图1:木条长度汇总图问题2:要求对折叠桌的设计做到产品稳固性好、加工方便、用材最少。对于任意给定的折叠桌高度和圆形桌面直径的设计要求,讨论长方形平板材料和折叠桌的最优设计加工参数,例如,平板尺寸、钢筋位置、开槽长度等。对于桌高70 cm,桌面直径80 cm的情形,确定最优设计加工参数。a、我们先运用与问题1同样的方法,将桌子进行参数计算,得出基本设计加工参数。b、问题2在问题1基础上又增加了最优设计加工参数的问题。所以角度并不唯一,进行基本参数计算后,由于误差较大,得出的参数不
8、精确。我们引入平板折叠网架折展过程参数设计的结果,得出最优设计加工参数。c、为了增加桌子的使用舒适度,我们对桌子的槽长进行了计算,并用matlab进行了仿真,得到最后的最优设计加工参数。d、为了减小误差,需要在得出最优设计加工参数后,进行适当的人工干预。问题3:椅子的折叠设计是以功能的实现为主导思想的,是构筑椅子的用户界面的一部分。将以折叠的动因来分析其成因。a、折叠设计作为椅子设计的一部分也有它自身的定位,有形态定位和场所精神。b、折叠椅包含了三层意思 : “折”意味着可活动的构造;“叠”是叠放的空间关系;“折叠”是通过折和叠的动作完成叠放,分为水平和纵向垒放及叠放。c、辅助性垒放主要指用专
9、门的垒放车或垒放设备垒加放置,工具性叠放主要是使用垒放车或垒放架垒放。垒放架和叠放车的形式是多样的,主要根据椅子的特征而设计,放置架可能是叠放架也可能是悬挂架。在垒放时椅子通常会改变常态下的放置方式,采用这种叠放方式可以提高叠放空间效率,便于运输。 d、其次是对用户使用空间的视觉环境产生影响,形成有序整洁的空间。二、模型假设1、折叠桌的木条之间没有间隙,并且是光滑的。2、折叠桌桌面构造三角形满足勾股定理。3、问题2中,所求得最长木条与桌高构成三角形。4、折叠桌槽间距近似相等。5、横向左右木条完全相同。6、桌子是正长方体。7、只考虑折叠桌的四分之一部分进行讨论与分析(折叠桌为完全对称图形)。8、
10、折叠桌的厚度保值不变。三、符号说明1、:木条中轴到到桌子边缘底距离;2、:钢筋与外侧木条的交点距离外侧木条的转动圆心的长度;3、:钢筋到桌面圆心的距离;4、:人的大腿长度;5、:人的小腿长度;6、:人坐在椅子上,腹部到桌面的距离;7、:最外侧木条的长度;8、:木条横向间距;四、模型建立与求解问题1的建模和求解:这个问题中的桌面宽50cm,每根木条宽2.5cm,那么桌子两侧分别有二十根木条并排排列。图2:钢筋与桌面的平面图假设其中一根木条的中轴到桌子边缘底距离为(木条的宽度为2,5cm,所以木条两侧距离桌子边缘分别是+1.25cm和-1.25cm),那么这个木条的长度(设为R)就是:即:其中25
11、cm是桌面半径,60cm是长方形状态下,桌面圆心到桌腿的距离(长方形平板长度的一半) 而从左算起,前十根木条的值依次1.25cm,3.75cm,6.25cm23.75cm;从右侧算起的前十根木条的中轴到桌子边缘底距离也是这些数据。而知道了各根木条的长度,又知道了它们的水平位置,那么各根木条与桌面的交点就是它们在支撑起来的时候的转动圆心。当然,由于木条是有宽度的,所以实际数据与理论数据略有差异(本来桌面边缘就是阶梯状,不是圆形的):图3:桌面的边缘轮廓图不过实际做工中,这是可以微调的东西,如最外侧的木条,理论计算结果如下:比桌子高度小,因此最外侧的木条的实际长度比52.2cm大,但也大不了多少,
12、如果最外侧木条长度为54cm,那么在桌高53cm的情况下,桌角与垂点的距离将超过10.3cm,目测与视频中的桌角与垂点的距离相当。图4:木条与桌高解析图设长方形平板态时,钢筋到桌面圆心的距离为,构造立体直角坐标系,以桌面中心为原点,则长方形平板态时,两侧钢筋的位置分别在(-25cm,-,0)和(25cm,-,0)之间,在(-25cm,0)和(25cm,0)之间,在转动过程中,设转到最后时,第一根钢筋的位置在(-25cm,-y,z)和(25cm,-y,z)之间,第二根钢筋的位置在(-25,y,z)和(25cm,y,z)之间。如果钢筋笔直的话,靠中间的木条必须有一个比较长的开槽,因为外侧的木条(用
13、棕色表示)比内侧木条(用红色表示)的转动的半径大,如果钢筋与外侧木条的交点始终在一条直线上的话,钢筋与内侧木条的交点相对于内侧木条的位置肯定是变化的,当桌子支起来时,变化达到最大幅度,而变化的最大幅度就是槽的理论长度。图5:木条旋转示意图设钢筋与外侧木条的交点距离外侧木条的转动圆心的长度为(由于外侧木条的转动圆心比桌面圆心靠外,所以要略小于;且这个差值为60cm与外侧木条的长度的差值),设桌子从长方形态到支撑态,外形木条的转动角度为,那么,若最外侧木条的长度是,则:桌子两侧的最外侧木条的转动圆心分别位于(-23.75cm,-60cm,0),(23.75cm,-60cm,0)(-23.75cm,
14、60cm,0),(23.75cm,60cm-,0).转到最后时:第一根钢筋与最外侧木条的交点是(-23.75cm,-60cm-cos,sin)和(23.75cm,-60cm-cos,-sin)第二根钢筋与最外侧木条的交点是(-23.75cm,60cm-cos,-sin)和(23.75cm,60cm-cos,-sin)、把23.75依次替换成21.25cm,18.75cm,16.25cm也就是25cm减去各个木条与钢筋的交点和长方形态,各个木条与钢筋的交点的差值,就是槽的理论长度。知道了各根木条的转动圆心,又知道了它们在支撑态时与钢筋的交点,两点确定一条直线;这样各根木条位于哪条直线上就能确定了
15、;并且可以通过各根木条位于哪条直线上,以及各根木条的长度确定桌腿边缘线的位置。图六:空间坐标模拟图空间坐标模拟图源程序请见附录4。问题2的建模和求解:这个问题中的附件给出了关于合理设计加工参数的范围。最优设计加工参数设计方法和步骤如下:步骤1:由自锁式平板折叠网架折展过程参数设计(详细见参考文献6)可知,在支撑态下最长边应与地面成60 角为适合,且应满足三条约束条件,钢筋位置约束,开槽长度约束,还有桌子高度约束。可得最长边81cm,而木条间距(横向,设为)由勾股定理得17.5cm,所以木板长197cm。步骤2:钢筋位置a. 一般应当依据建筑要求确定,同时也应当考虑建筑材料长度的限制. 在基本几
16、何参数确定的情况下, 通过三角学和解析几何学的理论可以对折叠单体进行几何定位,所以我们假定钢筋位置在最长木条中间。步骤 3:利用问题1的算法,算出槽口范围,如表1:表1:槽口范围表序号项目12345678910桌腿长度(cm)81.5072.5667.0463.0360.0157.7356.0554.8954.2153.99开槽长度(cm)0.004.618.3811.6314.4016.6718.4519.7220.4920.74序号项目11121314151617181920桌腿长度(cm)53.9954.2154.8956.0557.7360.0163.0367.0472.5681.50
17、开槽长度(cm)20.7420.4919.7218.4516.6714.4011.638.384.610.00步骤4:为了增加桌子的使用舒适度,我们对桌子的槽长进行了修改,并用matlab进行了仿真(详细介绍请见附录5),得到最后的最优设计加工参数1、为了舒适度的考虑保证人坐着的时候,木条尽量不要阻挡人伸腿(由于人的大腿和小腿都是直的,木条也是直的,所以只要保证膝盖和腿不接触木条就可以)或者说,桌子支起来后,也就是木条必须离开膝盖和腿到达的区域。图6:桌子直观图2、(由于人的大腿和小腿都是直的,木条也是直的,所以只要保证膝盖和腿不接触木条就可以)或者说,桌子支起来后,也就是木条必须离开膝盖和腿
18、到达的区域。3、构建立体直角坐标系,以图(0,0,0)点(桌子边缘,中轴线正下方,地面上)为坐标原点,在人面对桌子坐着的时候,右侧为x轴正方向,右侧为y轴正方向,正上方为z轴正方向;再假设坐在椅子上时,腹部到桌面的距离为,那么人的腹部中心位于(0,-,)点;由于人有两条腿,假设大腿外侧距离大腿内侧距离为d,那么人的右大腿的大腿根外侧位于(d,-,),左大腿的大腿根外侧位于(-d,-,)。假设人的脚一直紧贴地面,那么可以假设右脚的坐标是(x,y,0),左脚的坐标是(-x,y,0),右膝盖的坐标是(x,y,z),左膝盖的坐标是(-x,y,z)。且可以根据大腿长度、小腿长度、人坐在椅子上时腹部到桌面
19、的距离算出(x,y,z)、(-x,y,z)、(x,y,0)、(-x,y,z)的外侧极限,从而得到桌子支起来后,木条必须离开的区域。如果技术满足不了,则放宽要求,只求人的腿紧闭或伸得不太开时腿不能接触木条的条件下(x,y,z)、(-x,y,z)、(x,y,0)、(-x,y,z)的外侧极限。问题3的建模和求解:步骤1:首先我们考虑如何刻画桌面边缘线的形状大小,当用户给定桌面边缘线的期望形状时,在桌子放平二维平面上,我们可以通过对边缘线上每一点距离桌面中心线的距离的计算,来近似描述用户需要的左面边缘线的轮廓。我们通过用户给定的折叠桌的高度H,和桌面边缘线的形状大小来来找到一组平板材料的形状尺寸和切实
20、可行的加工参数,去尽量满足用户需要的桌角边缘线的大致形状。步骤2:我们遵循第二问中的三条约束条件,钢筋位置约束,开槽长度约束,还有桌子高度约束。其次,关于对称性的约束,为了满足折叠桌能顺利展开和稳定摆放,我们必须考虑其对称性,即要求客户对桌面边缘的要求必须是关于桌子的中线是对称的,且还需要是左右对称的。为了尽量满足用户对桌角边缘线的要求,我们设计了第四个目标条件:步骤3:其中和代表了,其表示了在桌子立起来时的稳定状态下,用户需要的桌角边缘线中每一点i的y和z坐标值,和分别代表了我们进行优化选择的平板尺寸和加工参数之后的桌子立起来的稳定状态下的桌角边缘线的每一点i的y和z坐标值。当越趋近于0时,
21、我们可以说此时选取的平板尺寸和加工参数加工出来的桌子,在立起来稳定的时候所产生的桌角边缘线可以更好地满足客户对桌角边缘线的要求。相应地,目标条件变为:目标条件变为:目标条件不变。根据客户任意设定的折叠桌高度、桌面边缘线的形状大小和桌脚边缘线的大致形状,给出所需平板材料的形状尺寸和切实可行的最优设计加工参数的数学模型,如下图:图7.数学模型仿真图该模型源程序见附录5。五、 模型的评价与改进模型的优点:1.本题利用MALTAB编程,在软件的选择上,对于空间坐标的建立,更容易编程,此方法新颖可靠易行,极具参考价值。2.算法上,运用多种不同的算法,例如:比较法、分析法、空间几何等,不同迭代次数比较分析
22、以及同其他方法(如穷举法)的对比分析使误差更小,使设计更加合理。3.对原始数据拟合时,与实物进行对比和分析,使之愈来愈完善,具有很高的拟合精度和适度性在此基础上,对模型作进一步讨论便可得到一系列可靠而实用的信息并且所得结论与客观事实很好地吻合,从而进一步说明模型是合理的。模型的缺点:为了使问题误差更小,问题2进行了一定人工干预,费时费力,花费了过多的经历,增加了建模的时间。模型的推广: 本文中给出的评价标准总体比较合理,但判定指标有限,我们所设计的模型可以满足客户任意设定的稳固性好、加工方便、用材最少要求,使得生产的折叠桌尽可能接近客户所期望的形状。本文以折叠式多功能家具为研究对象,采用比较分
23、析法和归纳法分别就多功能家具和折叠家具进行了研究,并在此基础上对折叠与家具多功能的对应关系进行了分析,研究发现:“L”型和“卜”型折叠是实现家具多功能最为常见和有效折叠形式,家具空间和家具功能秩序是影响折叠能否实现家具多功能的两个重要因素。在对家具空间分析的基础上,明确了“折叠”的内涵与外延,并引申出家具构件的空间位置以及空间形态与家具空间的关系;提出了采用折叠方式改变家具空间实现多功能的原理和方法:拓展与收拢法,即将家具中的某些功能构件通过折叠结构向其上下、两侧或前后方向进行折叠,进而使家具实现多功能;化“整”为“零”法,即将家具中的整体功能形态进行重新划分,并通过折叠的方式进行折动,使之后
24、的功能形态区别于分解之前,继而实现全新的功能;化“零”为“整”法,即将原本不同的功能形态通过折叠的方式进行再次组织安排,使之后的功能形态区别于组合之前,继而实现多种功能复合。通过对家具功能秩序的分析,研究认为:合理的功能秩序能够满足人们在不同空间、不同阶段对不同功能的需求;并以人的需求和行为习惯为导向提出了采用折叠方式改变家具功能秩序以实现家具多功能的原理和方法:按“需”分配功能的方法,即在熟知了人们的多种功能需求之后,借由折叠结构将多种功能合理地分配在一件家具之上,从而使其实现多功能;创造功能“时差”的方法,即将具有不同使用时间的多种功能合理地设置在一件家具之中,并且通过折叠结构可以实现功能
25、之间的转换。以多功能柜和折叠休闲椅为案例,验证了上述方法的合理性与可行性。参考文献1 李乐山 : 工业设计思想基础 ,中国建筑工业出版社,北京.2 Francesca Picchi, “Santachair, a folding chair for Vitra” ,Domus,1999.4(814) .3 (美)亨利佩卓斯基 : 器具的进化 ,丁佩芝、陈月霞译,中国社会科学出版社,北京,1997. 4 孙兆林.MATLAB6.x图像处理M.北京:清华大学出版社,2002.5 何希平,张琼华.基于MATLAB的图像处理与分析6 哈尔滨工业大学学报(自然科学版),2003,20.7 黄剑玲.利用M
26、ATLAB进行数字图像的分析和处理.8 张鄂.现代设计理论与方法.北京:科学出版社,2007.9 Medioni G, Nevatia R. Matching images using linear featuresJ, IEEE Transactions on Pattern Analysis and Machine Intelligence, 1984 (6): 675-685.10 邬学军,周凯宋学军 编著.数学建模竞赛辅导教程.浙江大学出版社.2009.11 樊孟维,高金贵折叠椅设计的计算机仿真分析2003.附 录附录1:摘要中的matlab简介MATLAB是matrix&labora
27、tory两个词的组合,意为矩阵工厂(矩阵实验室)。图7:MATLAB程序图MATLAB工作界面是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。附录2:问题1中对折叠桌建模的动态描述图8:折叠桌的动态描述源程序运行如下:clear,clc
28、,close all;t=-2:0.1:2;x,y=meshgrid(t,t);z=-(x.2+y.2)+250;surf(x,y,z)xlabel(x);ylabel(y);zlabel(z);hold on;t1=-2:0.001:2;h=plot3(t1,zeros(1,length(t1),-t1.2+250,LineWidth,3);legend(h,要旋转的曲线);set(gcf,Units,Normalized,Position,0,0,1,1);附录3:问题3中折叠桌折叠的八个动态时刻图1-8:折叠桌折叠动态图问题3中折叠桌折叠的八个动态时刻源程序运行如下:clearL=120
29、;D=50;d=2.5;hL=L/2;R=D/2; %木板长;宽;腿木条宽;半长;圆桌面半径 ye=-R+d/2:d:R-d/2; xe=sqrt(R2-ye.2); %折叠点的y坐标,x坐标,各20个legL=hL-xe;hH=legL(1)/2;ddeg=2; %腿长度,20个;最长腿半长; 角度增量 Tx=xe -xe;xe -xe;Tx=Tx(:);Tz=zeros(size(Tx); %桌面数据Ty=ye-d/2 fliplr(ye)+d/2;ye+d/2 fliplr(ye)-d/2;Ty=Ty(:);legx=hL*ones(size(xe);hL*ones(size(xe);x
30、e;xe; %桌腿数据 legy=ye-d/2;ye+d/2;ye+d/2;ye-d/2;legz=zeros(size(legx); zhoux=hL-legL(1)/2;hL-legL(1)/2;zhouy=-R R;zhouz=0;0; %钢筋轴数据yb=linspace(ye(1),ye(end),50);xb=sqrt(R2-yb.2);Bx=hL*ones(size(xb); By=yb; Bz=zeros(size(xb); %腿尖曲线数据 figure(1),clf;hold onh1=patch(Tx,Ty,Tz,facecolor,1 0.5 0,edgecolor,1 1
31、 1);%画桌面h2=patch(legx,legy,legz,facecolor,1 0.5 0,edgecolor,1 1 1);%画桌腿h3=patch(-legx,legy,legz,facecolor,1 0.5 0,edgecolor,1 1 1);%画桌腿h4=plot3(zhoux,zhouy,zhouz,c);h5=plot3(-zhoux,zhouy,zhouz,c);%画钢筋轴h6=plot3(Bx,By,Bz,k);h7=plot3(-Bx,By,Bz,k);%腿尖曲线hold off;view(3);axis equal;axis(-hL hL -R R 0 2*hH
32、);axis off;for deg=0:ddeg:75 %最长桌腿相对桌面折叠角度zz=-hH*sind(deg);xz=xe(1)+hH*cosd(deg); %钢筋轴,z坐标和x坐标alldeg=atan2(-zz*ones(size(xe),xz-xe); %每个条腿折叠角度,20个allx=legL.*cos(alldeg)+xe; %每条腿末端x坐标,20个 allz=-legL.*sin(alldeg); %每条腿末端z坐标,20个alldeg2=atan2(-zz*ones(size(xb),xz-xb); Bx=(hL-xb).*cos(alldeg2)+xb;Bz=-(hL
33、-xb).*sin(alldeg2);%腿尖曲线x数据 minz=min(Bz); %最低腿z坐标,桌子当前高度legx=allx;allx;xe;xe; %桌腿数据 legz=allz;allz;zeros(size(allz);zeros(size(allz)-minz;set(h1,ZData,-minz*ones(size(Tz);set(h2,XData,legx,ZData,legz);set(h3,XData,-legx,ZData,legz);set(h4,XData,xz;xz,ZData,zz;zz-minz);set(h5,XData,-xz;xz,ZData,zz;zz
34、-minz);set(h6,XData,Bx,ZData,Bz-minz);set(h7,XData,-Bx,ZData,Bz-minz);pause(0.1);drawnow;endcaochang=sqrt(xe-xe(1).2+hH.2-2*hH.*(xe-xe(1).*cos(alldeg)-(legL-hH);附录4:空间坐标模拟图源程序:clearL=120;D=50;d=2.5;hL=L/2;R=D/2;%木板长;宽;腿木条宽;半长;圆桌面半径ye=-R+d/2:d:R-d/2;xe=sqrt(R2-ye.2);%折叠点的y坐标,x坐标,各20个legL=hL-xe;hH=leg
35、L(1)/2;ddeg=2;%腿长度,20个;最长腿半长;角度增量Tx=xe-xe;xe-xe;Tx=Tx(:);Tz=zeros(size(Tx);%桌面数据Ty=ye-d/2fliplr(ye)+d/2;ye+d/2fliplr(ye)-d/2;Ty=Ty(:);legx=hL*ones(size(xe);hL*ones(size(xe);xe;xe;%桌腿数据legy=ye-d/2;ye+d/2;ye+d/2;ye-d/2;legz=zeros(size(legx);zhoux=hL-legL(1)/2;hL-legL(1)/2;zhouy=-RR;zhouz=0;0;%钢筋轴数据yb=
36、linspace(ye(1),ye(end),50);xb=sqrt(R2-yb.2);Bx=hL*ones(size(xb);By=yb;Bz=zeros(size(xb);%腿尖曲线数据figure(1),clf;holdonh1=patch(Tx,Ty,Tz,facecolor,10.50,edgecolor,111);%画桌面h2=patch(legx,legy,legz,facecolor,10.50,edgecolor,111);%画桌腿h3=patch(-legx,legy,legz,facecolor,10.50,edgecolor,111);%画桌腿h4=plot3(zhou
37、x,zhouy,zhouz,c);h5=plot3(-zhoux,zhouy,zhouz,c);%画钢筋轴h6=plot3(Bx,By,Bz,k);h7=plot3(-Bx,By,Bz,k);%腿尖曲线holdoff;view(3);axisequal;axis(-hLhL-RR02*hH);axisoff;fordeg=0:ddeg:75%最长桌腿相对桌面折叠角度zz=-hH*sind(deg);xz=xe(1)+hH*cosd(deg);%钢筋轴,z坐标和x坐标alldeg=atan2(-zz*ones(size(xe),xz-xe);%每个条腿折叠角度,20个allx=legL.*cos
38、(alldeg)+xe;%每条腿末端x坐标,20个allz=-legL.*sin(alldeg);%每条腿末端z坐标,20个alldeg2=atan2(-zz*ones(size(xb),xz-xb);Bx=(hL-xb).*cos(alldeg2)+xb;Bz=-(hL-xb).*sin(alldeg2);%腿尖曲线x数据minz=min(Bz);%最低腿z坐标,桌子当前高度legx=allx;allx;xe;xe;%桌腿数据legz=allz;allz;zeros(size(allz);zeros(size(allz)-minz;set(h1,ZData,-minz*ones(size(T
39、z);set(h2,XData,legx,ZData,legz);set(h3,XData,-legx,ZData,legz);set(h4,XData,xz;xz,ZData,zz;zz-minz);set(h5,XData,-xz;xz,ZData,zz;zz-minz);set(h6,XData,Bx,ZData,Bz-minz);set(h7,XData,-Bx,ZData,Bz-minz);pause(0.1);drawnow; end caochang=sqrt(xe-xe(1).2+hH.2-2*hH.*(xe-xe(1).*cos(alldeg)-(legL-hH);附录5:第
40、三问中折叠桌数学模型#include#include#defineN16#defineR40.07804885voidmain()inti,D=80,H=70;floata=0;doublex=163.823802,M,CD,H0;doubleSON,S0Nx0N,LN,L0N;printf(n1/4圆上各点到直径的距离:n);for(i=0;iN;i+,a+=2.5)SOi=sqrt(pow(R,2)-pow(a-40,2);printf(ttSO%d=%fn,i+1,SOi);printf(n-nn);CD=(x-5)/2;M=CD/2;printf(钢筋到桌脚的距离:M=%lfnn,M);H0=(CD-M)*(H/CD);printf(1/4桌腿开槽长度:n);for(i=0;iN;i+)S0i=SOi-2.5-(CD-M)*sqrt(1-pow(H/CD,2);x0i=sqrt(pow(H0,2)+pow(S0i,2);Li=(x-2*SOi)/2;L0i=x0i-(Li-M);printf(ttL0%d=%lfn,i+1,L0i);printf(n+nn);printf(任一侧1/4桌腿每根桌腿的长 度:n);for(i=0;iN;i+)printf(ttL%d=%lfn,i+1,Li);【精品文档】第 11 页