首页 > 代码库 > 【数学建模】创意平板折叠桌的模型分析与优化设计
【数学建模】创意平板折叠桌的模型分析与优化设计
?
?
创意平板折叠桌的模型分析与优化设计
魏淙铭 陈星曼 田桃
?
摘要:
本题要求设计创意折叠桌,问题一给定了具体的长方形平板尺寸、桌高等设计参数求折叠桌的动态变化过程和桌脚边缘线的数学描述,问题二中任意给定桌高和桌面直径求折叠桌的最优设计参数,问题三则要求根据客户提供的桌面边缘线和桌脚边缘线的大致形状给出一款能够确定最优设计参数的软件的数学模型。
本题中,我们以折叠桌桌面中心为圆心,建立空间坐标系求解数学模型。
对于问题一,我们通过使用切片法降低维数来确定桌腿长度、开槽的长度等设计参数,并通过Matlab进行求解。通过折叠桌变化过程中桌腿与桌面的夹角以及桌脚的坐标来描述折叠桌的动态变化过程。对于桌脚边缘线的数学描述问题,我们构造了理想模型和现实模型。引入微元法求得理想状态的桌脚边缘线的参数方程,再通过Matlab对整个过程进行模拟,并进一步对现实模型中的点取数据进行拟合。
问题二属于多目标规划问题,我们采用线性加权法,对于影响产品设计要求的各个因素设定对应的权重系数,采用层次分析法求出权值。已知要设计的折叠桌高度和圆形桌面直径,通过目标函数及其约束,用Lingo软件求解来确定长方形平板材料和折叠桌的最优设计加工参数。
对于问题三,仿照问题一与问题二的解题思路。先假定桌高和钢筋在最外侧桌腿的固定位置已给定,建立类似于问题一的模型求解。再仿照问题二通过多目标规划和层次分析法来求解。
?
关键字:降维 切片法 多目标最优化 线性加权法 层次分析法
?
?
?
?
?
1 问题重述
创意平板折叠桌,桌面呈圆形,桌腿随着铰链的活动可以平摊成一张平板。桌腿由若干根木条组成,分成两组,每组各用一根钢筋将木条连接,钢筋两端分别固定在桌腿各组最外侧的两根木条上,并且沿木条有空槽以保证滑动的自由度。桌子外形由直纹曲面构成,造型美观。
要求建立数学模型讨论下列问题:
1.给定长方形平板尺寸为120 cm × 50 cm × 3 cm,每根木条宽2.5 cm,连接桌腿木条的钢筋固定在桌腿最外侧木条的中心位置,折叠后桌子的高度为53 cm。试建立模型描述此折叠桌的动态变化过程,在此基础上给出此折叠桌的设计加工参数(例如,桌腿木条开槽的长度等)和桌脚边缘线的数学描述。
2. 折叠桌的设计应做到产品稳固性好、加工方便、用材最少。对于任意给定的折叠桌高度和圆形桌面直径的设计要求,讨论长方形平板材料和折叠桌的最优设计加工参数,例如,平板尺寸、钢筋位置、开槽长度等。对于桌高70 cm,桌面直径80 cm的情形,确定最优设计加工参数。
3. 公司计划开发一种折叠桌设计软件,根据客户任意设定的折叠桌高度、桌面边缘线的形状大小和桌脚边缘线的大致形状,给出所需平板材料的形状尺寸和切实可行的最优设计加工参数,使得生产的折叠桌尽可能接近客户所期望的形状。我们要帮助给出这一软件设计的数学模型,并根据所建立的模型给出几个我们自己设计的创意平板折叠桌。要求给出相应的设计加工参数,画出至少8张动态变化过程的示意图。
?
2 问题分析
本题主要研究创意折叠桌的设计加工参数及其动态变化过程,涉及空间解析几何、结构力学、运筹学等相关知识。
2.1 问题一的分析
在本问题中,给定了长方形平板的尺寸、每根木条的固定宽度以及折叠后桌子的高度。为建立模型来描述折叠桌的动态变化过程,以桌面圆心为原点建立三维空间立体坐标系,确定每一根桌腿的长度、钢筋固定点的坐标和木条顶端的坐标。进一步通过切片法降低维度,求得二维平面上折叠桌在变化过程中木条与桌面的夹角。
对于桌脚边缘线的数学描述问题,我们将理想模型与现实模型相结合。通过微元法,在三维空间坐标系下确定钢筋固定点的坐标,进而确定理想模型的桌脚边缘线的数学描述。最后我们通过Matlab对理想模型进行模拟,并对现实模型进行拟合。
2.2 问题二的分析
问题二是问题一的拓展。在要求产品稳固性好、加工方便、用材最少的情况下,任意给定折叠桌高度和圆形桌面直径,讨论长方形平板材料和折叠桌的最优设计加工参数。可以采用多目标规划线性加权法,分析影响产品设计要求的各个因素,设定对应的权重系数并确定目标函数及其约束,采用层次分析法求出权重系数。当给定了要设计的折叠桌高度和圆形桌面直径,用Lingo软件求解,即可确定长方形平板材料和折叠桌的最优设计加工参数。
2.3 问题三的分析
问题三中,由客户确定折叠桌的桌面边缘线和桌脚边缘线,得到基础曲线方程。桌脚边缘线在实际的设计过程中可以进行平移。折叠桌高度已知,可确定接触地面的桌脚与位移的关系。仿照问题一与问题二的解题思路,先建立类似于问题一的模型。再仿照问题二通过多目标规划和层次分析法来求解。这样两步最终给出这一软件设计的数学模型。
?
3 模型假设
1、假设所有长方形平板均由质量均匀分布的材料构成。
2、假设长方形平板的每根木条宽度相同。
3、假设各木条之间的缝隙已经计算在木条的宽度之内,忽略不计。
4、分析木条的时候取其底面的沿着长度方向的中线作为分析的对象。
5、假设折叠桌的桌腿开槽的摩擦力对整个过程产生的影响相同,忽略不计。
4 符号说明
l | 长方形平板的长 |
w | 长方形平板的宽 |
h | 长方形平板的厚度 |
s | 木条的宽度 |
H | 桌面的上表面到地的高度 |
r | 圆形桌面的半径 |
由圆心开始至最外侧的某一根木条 | |
第根桌腿的长度 | |
d | 钢筋在最外侧木条的固定位置到桌脚的距离 |
第根木条的开槽长度,其中< | |
最外侧木条与桌面的夹角 | |
第根木条与桌面的夹角 | |
最外侧木条与桌面的最大夹角 | |
钢筋与第根木条的交点 | |
木条顶端点 | |
钢筋最终固定的点到木条顶端的距离 | |
第根木条的桌脚 | |
n | 折叠桌所有的桌腿总数 |
Sg | 支撑折叠桌的四条桌腿的桌脚所围成的四方形面积 |
桌面下底面到地面的距离 | |
实际设计出的折叠桌的桌脚曲线与客户最初定制的桌脚边缘曲线之间的误差允许范围 |
?
?
?
5 模型建立及求解
5.1 问题一
以折叠桌桌面的中心为圆心作一个半径为r的圆R,r=w/2。
过每根木条宽度的一半()处与圆R的交点作垂直于长方形平板的平面,以这个平面与长方形平板的相交面为切面进行折叠桌的切割。
在此模型中,以桌面圆心为原点,以桌面宽度方向朝外为x轴方向,以桌面长度方向朝外为y轴方向,以垂直桌面向下为z轴正半轴方向建立三维立体空间坐标系。
令,表示桌面下底面到地面的距离,。
?
5.1.1 折叠桌的设计加工参数
因为对于任意的长方形平板,它可能被分成奇数根木条,也可能被分成偶数k根木条。
①当折叠桌由偶数根木条组成时,。
第根桌腿的长度等于长方形平板长度的一半减去这第根木条在圆形桌面上对应的弦的长度。又有圆心到这根弦的距离为,所以由勾股定理,有
②当折叠桌由奇数根木条组成时,。
在这种情况下,圆心到第根木条对应的弦的距离为,那么,每根桌腿的长度 。
在坐标系中,记第k根木条的钢筋固定点的坐标为。
括号中为木条数为奇数情况下的x轴坐标表达式,相同。
因为钢筋在变化过程中,始终平行于x轴。所以的坐标与的相同。
括号中为木条数为奇数情况下的x轴坐标表达式,相同。
两种情况下,木条的顶端桌腿的开槽长度的表达式相同,只需分别代入其相对应的,。
木条的顶端。
?
对于求折叠桌的开槽长度,考虑降维的思想,采用切片法由三维降到二维,,由左右相对两根桌腿构成一个二维平面,如下图。
?
钢筋与第根木条的交点到木条顶端的距离,可由点的相应坐标确定。有。
当桌子处于最终的稳定状态时,钢筋处于每根木条开槽的最底端。此时,钢筋距离桌脚的距离为。而当时,钢筋处于桌腿最外侧木条的中心位置。所以这段变化距离即为要求的桌腿木条开槽的长度。即:
=
以上,确定了每一根桌腿的长度和每一根桌腿开槽的长度。
由问题一中给定的具体参数,长方形木板由2k根木条组成。
已知。代入给定的具体参数,通过Matlab求解其加工参数如下。
?
腿长数据:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
35.03 | 35.28 | 35.79 | 36.58 | 37.67 | 39.12 | 41.00 | 43.46 | 46.83 | 52.19 |
?
开槽长度数据:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
17.87 | 17.53 | 16.84 | 15.80 | 14.39 | 12.59 | 10.36 | 7.66 | 4.35 | 0 |
?
其中开槽起始点为距离木条短边边缘d==26.10cm。
5.1.2描述折叠桌的动态变化过程
因为在折叠桌的变化过程中,桌腿的顶端是不变的,所以,如果求出了,即求出了折叠桌变化过程中桌腿与桌面的夹角,并进一步确定在折叠桌变化过程中第根木条的桌脚的在空间坐标系中的位置,即描述出了折叠桌的动态变化过程。
而由1.1中求得的参数,得。
?
在确定了折叠桌变化过程中桌腿与桌面的夹角之后,当长方形平板由2k根木条组成时,求得第根木条的桌脚的坐标。当长方形平板由根木条组成时,求得第根木条的桌脚的坐标。
我们通过动画对其过程进行模拟,其中最后一帧如图所示。
?
5.1.3桌脚边缘线的数学描述
对于桌脚边缘线的数学描述问题,我们采用理想模型和现实模型进行讨论。通过微元法确定理想模型,设想将长方形平板切成无数条,设一个连续变量为圆心到某一根木条的沿x轴方向的距离。在相同的三维立体空间坐标系下,用表示桌腿长度随的变化,。用表示随着距离x的变化桌腿与桌面的夹角。当折叠桌处于最终的稳定状态时,达到最大,即有。因为在理想状态下,木条的厚度接近于0,所以,。
从而求得理想状态的桌脚边缘线的参数方程为:
?
通过Matlab对整个过程进行模拟。首先采用理想情况进行分析,即假设s趋向于0,厚度不考虑时,每根木条趋向于一条直线,取一半对其建模分析,结果如图。
?
现实模型中,我们取每根木条的底面中点的数据进行拟合,其中所取点的坐标由下式给出:
?
?
拟合的情况如图所示:
?
?
桌脚边缘线的数学描述:
其中。
?
5.2 问题二
在本问题中,要求能使折叠桌的设计做到产品稳固性好、加工方便、用材最少。而对于每一个设计要求,都有不止一个的因素约束它。在本题折叠桌的设计中,折叠桌的稳固性要受最外侧木条与桌面延长线的最大夹角,钢筋在最外侧木条的固定位置到桌脚的距离d,以及用于支撑折叠桌的四条桌腿的桌脚所围成的四方形面积的约束;而折叠桌是否加工方便要受折叠桌所有的桌腿总数n的约束;对于用材最少,因为在本问题中,某种情况下,折叠桌桌面直径是给定的,所以长方形平板的宽度是给定的,在此模型中,我们假定采用统一板材,所以长方形平板的厚度是一个恒定不变的值,所以用材仅受长方形平板长度l的约束。由此,我们采用多目标规划法,设定 五个的权重系数,通过层次分析法确定这五个权重系数,当给出折叠桌的桌高和桌面直径的设计要求后,通过非线性最优化方法,由下式,即可确定长方形平板材料和折叠桌的最优设计加工参数。
?
s.t.
我们采用层次分析法(AHP)来确定权重系数。将本问题中求最优参数的决策问题分为三个层次。如下图:
?
经查资料知,影响物体结构的稳定性的因素有物体的重心位置,支撑面积以及物体的结构形状。重心越低,支撑面积越大物体越稳定。对于我们要设计的这种折叠桌,钢筋在最外侧木条的固定位置到桌脚的距离d影响折叠桌的重心位置。d越小,重心越低,折叠桌越稳定。越大,折叠桌越稳定。对于,当越小,竖直向下的压力沿垂直桌腿方向的分力越大。而与最外侧桌腿相连的桌腿并未着地,且桌腿上有开槽。在受力增大的情况下,钢筋易沿开槽滑动发生形变,从而更不稳定。
本模型中,加工方便与否主要考虑刀具的移动。桌腿开槽长度的大小涉及的主要是加工的工作量的问题,忽略其对加工方便与否的影响。。而折叠桌总共的桌腿数n的多少则直接关系着加工方便与否。n越大,加工越不方便。
题中对于某一个要设计的折叠桌,其圆形桌面的直径已知,所以长方形平板的宽度不影响本设计中的用材最小的要求,其长度大小影响是否用材最小。
根据Satty9级标度方法得出一致性矩阵S,如下图。Satty9级标度是通过比较各层次因素之间的重要关系,通过每两种因素之间比较代替普通加权方法直接多因素比较的不准确性,具体我们将影响折叠桌的设计最优参数的三个因素作为矩阵的的行与列的标题,矩阵的每个元素代表两两因素的重要关系程度,该方法将行对应因素比列对应因素的重要关系分为:一样重要,稍重要,明显重要,重要很多,极端重要,稍不重要,明显不重要,不重要很多,极端不重要等级别,其在一致性矩阵S的元素分别对应为。而出现的元素值表示所示状态在以上情况之间。
最终得出一致性矩阵S如下:
利用求根法得出权向量为。
由于实际得到的判断向量不一定一致,我们进行了一致性检验,方法如下:我们用Matlab先求出了矩阵的最大特征值,得出一致性指标而随机一致性一致性比率指标,判断矩阵一致性可以接受。随机一致性指标RI表如下:
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
RI | 0 | 0 | 0.58 | 0.9 | 1.12 | 1.24 | 1.32 | 1.41 |
?
同理,将影响折叠桌的稳固性的三个因素作为矩阵的的行与列的标题,得如下矩阵:
利用求根法得出权向量为。
由于实际得到的判断向量不一定一致,我们进行了一致性检验,用与上面相同的方法,求得一致性指标CI=0,所以RI=0,一致性指标CR=0,判断矩阵一致性可以接受。
下面的问题是由各准则对目标的权向量和各方案对每一准则的权向量,计算各方案对目标的权向量,即组合权向量,记。对于,它在稳固性等3个准则中的权重为,而三个准则对于目标的权重为,所以在目标中的组合权重应为它们相应的两两乘积之和,即
同样,可以计算出在目标中的组合权重为。
可以求得组合权向量。
结果表明最外侧木条与桌面延长线的最大夹角和用于支撑折叠桌的四条桌腿的桌脚所围成的四方形面积在设计最优参数的折叠桌方案中所占的权重相同并且最大,所以在以最优参数设计折叠桌时,应优先考虑和,其次是长方形平板的长度l、桌腿的总数n,而钢筋在最外侧木条的固定位置到桌脚的距离d在这五个因素里所占权重最少。
在确定了 这五个权重系数之后,我们用Lingo软件编程求最优解,对于桌高70 cm,桌面直径80 cm的设计要求,由Lingo求解出,当桌高70cm,桌面直径80cm时,长方形平板长l为169.9796cm,宽w为80cm,厚度是模型中假定的3cm。钢筋在最外侧木条的固定位置到桌脚的距离d为 25.01540cm。对于每一根桌腿的开槽长度,由问题一中求得的关于的计算公式知,确定了的大小、每一根桌腿的长度即可确定。而确定了半径r和木条宽度s也即确定了。所以即确定了每一根桌腿的开槽长度。具体的最优参数数据如下。
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
45.00 | 45.27 | 46.12 | 47.57 | 49.70 | 52.65 | 56.66 | 62.30 | 71.48 | |
24.68 | 24.34 | 23.32 | 21.60 | 19.16 | 15.95 | 11.89 | 6.81 | 0 |
?
5.3 问题三
问题三要求给出软件设计的数学模型。经过分析,客户任意设定的折叠桌高度、桌面边缘线形状大小和桌角边缘线的大致形状在输入软件后,软件对其进行变换生成折叠桌的相关参数,然后进行设计和优化加工参数。输入过程只需要把上述描述以数学参数的形式表示出来,这里主要研究软件设计模型中的折叠桌设计和优化加工参数过程。
对于问题三,仿照问题一与问题二的解题思路。先假定桌高和钢筋在最外侧桌腿的固定位置已给定,建立类似于问题一的模型求解。再仿照问题二通过多目标规划和层次分析法来求最优解。
在本问题中,因为客户任意设定了折叠桌高度、桌面边缘线的形状大小和桌脚边缘线的大致形状,所以首先可以通过专业的软件大致确定桌面边缘线、桌脚边缘线在空间坐标系中的方程。并且在此模型中,我们假设所给的材料是无限长的。
模型描述如下。
桌面边缘线方程:
由题意,若有:,那么选取材料的宽度。
由专业软件最先确定的桌脚边缘线方程:
因为初步确定桌面边缘线方程和桌脚边缘线方程后,可以知道在x轴方向,桌腿不会再有变动。在这个通过我们建立的数学模型进行精确的过程中,桌脚边缘线只会沿着y轴和z轴方向发生变动。所以经过建立的数学模型后,由专业软件确定的平移后,得到最终确定的桌脚边缘线方程:。
记dis表示最外侧的木条上钢筋固定点到木条顶端的距离,。
记表示其中一边支撑折叠桌的那一根桌腿的长度,表示与桌面的夹角。
很显然由模型知,,,所以在做支撑的两条桌腿的二维平面内,有。
令,表示第根木条沿x轴方向到圆心的距离。这里分别考虑了折叠桌桌腿总数的奇偶。
记,=,代入桌面边缘线方程有。
记,有
钢筋固定点到木条顶端的距离。
第根桌腿的开槽长度。
在坐标系下,木条的方程为。
来确定第根木条与桌面延长线的夹角。
记第根木条的桌脚,=,所以:
,将代入,解出a,b的值,进而确定最终平移后的桌脚边缘线方程。
将代入方程,得到桌脚边缘线上的点,进一步求得点到第桌腿的距离,记为。所以,。
记为表示实际设计出的折叠桌的桌脚曲线与客户最初定制的桌脚边缘曲线之间的误差允许范围。
当时,不允许所以不考虑。当时,有
对于最优设计加工参数的确定,采用与问题二相同的方法,即多目标规划法。此时,有
s.t.
同问题二中使用层次分析法,同理得权重系数。
????软件设计的数学模型如上,我们根据所建立的模型设计了一个典型的折叠桌。在给出高度(H=3+67cm),边缘线形状(正方形)大小(w=80)和桌角边缘线(直线),通过设计得出多种方案,然后再通过优化得出最优设计参数。我们通过Matllab程序对折叠桌的参数生成以及动态过程进行了编程模拟,其动态变化过程示意图见附件,设计加工参数和示意图如下。
?
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
69.91 | 71.09 | 72.45 | 73.99 | 75.68 | 77.53 | 79.51 | 81.63 | 83.86 | 86.21 | 88.65 | |
109.91 | 107.28 | 104.83 | 102.56 | 100.44 | 98.48 | 96.66 | 94.96 | 93.39 | 91.92 | 90.56 | |
21.78 | 19.16 | 16.71 | 14.44 | 12.33 | 10.36 | 8.54 | 6.84 | 5.27 | 3.80 | 2.44 |
其中为美观设置k取10(即切成21条),i是指从木板切割方向对称中心向两边的序号。因为对称数据相同,不再赘述。
?
?
?
6 模型评价与优化
6.1 模型评价
模型一通过确定各个关键点的坐标来求取主要涉及参数,通过以静态来描述动态的方法来确定折叠桌的动态变化过程,并建立理想模型描述桌脚边缘线。此模型能够较为准确的给出折叠桌的设计加工参数并描述变化过程。但是,此模型是建立在每根木条宽度一样的情况下,而实际中,木条宽度不可能完全一致,所以此模型中求取的各个关键点的坐标与实际可能会有出入,从而使设计参数有偏差。实际中的长方形平板不可能分成无数多条,所以在理想模型下的桌脚边缘线描述亦可能有偏差。
模型二在模型一的基础上采用多目标规划法,通过层次分析法确定权重系数,用Lingo软件编程求最优解。较模型一能够更快捷的对任意给定的设计要求给出设计参数。但是此模型中的目标函数的确定以及层次分析法中的矩阵S的确定略显粗糙,可能使得最终的结果与实际的最理想状态有一定的差距。
模型三则是综合采用模型一和模型二的方法,更为全面。
6.2 模型优化
问题二的最优化模型中采用通用的无量纲化处理,精确度不高,现针对该缺陷进行优化。
给定折叠桌高度和圆形桌面直径,指标的最大值与最小值范围也随之变窄。对于桌高70 cm,桌面直径80 cm的情形,分别求出各指标的最大值与最小值。采用如下方法对指标进行无量纲化:
对于效益型指标,取 ,
对于成本型指标,取
此时,目标函数变为。
针对第二问优化的结果如下表所示。
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
45.00 | 45.27 | 46.12 | 47.57 | 49.70 | 52.65 | 56.66 | 62.30 | 71.48 | |
24.68 | 24.34 | 23.32 | 21.60 | 19.16 | 15.95 | 11.89 | 6.81 | 0 |
?
模型二中我们采用的层次分析法确定各权重系数,这是一种主观赋权法。它具有主观性和随意性。而客观赋权法是一种定量分析方法,它通过建立一定的数理推导计算出权重系数。客观赋权法较主观赋权法而言,可以更有效地传递评价指标的数据信息和差别。所以,对于模型二,我们可以采用客观赋权法,对于各个影响因素,通过其相互之间的制约关系进行一定的数理推导计算出更准确的权重系数,从而使得最终求得的设计参数更优化。
?
7 参考文献
http://wenku.baidu.com/link?url=EfHcAQWSNv7ue8z2bRPLQZvdL3VrEhgMlJbeYag2EwmWStaNYLZ0sFF2bV8QsqLD54Tue5DkpGVJ6yJNiOnk106qb9eqBNOSB5jSbv8M42a&qq-pf-to=pcqq.discussion 2014年9月13日。
姜启源,谢金星,叶俊,《数学模型》,北京:高等教育出版社,2011年。
于鹏飞,陈勇波,高原,2010年上海世博会对上海城市竞争力影响的评估模型,《工程数学学报》,2010第27卷增刊一,Vol.27Supp.1:108-109,2010年。
陈杰,《MATLAB》宝典,北京:电子工业出版社,2011年。
司守奎,孙玺菁,《数学建模算法与应用》,北京,国防工业出版社,2011年。
李亮,评价中权系数理论与方法比较,http://d.wanfangdata.com.cn/Thesis_D055599.aspx ,2014年9月14日。
?
8 附录
8.1 相关Matlab程序
***********************************curve1.m********************************
r=25;
w=120;
h=50;
x=-25:25;
denominator=sqrt(((1/2)*sqrt((w.^2)/4-h.^2)-sqrt(r.^2-x.^2)).^2+(h.^2)/4);
cosofa=(1/2*sqrt((w.^2)/4-h.^2)-sqrt(r.^2-x.^2))./denominator;
sinofa=(h/2)./denominator;
oxx=x;
oxy=sqrt(r.^2-x.^2)+(w/2-sqrt(r.^2-x.^2)).*cosofa;
oxz=(w/2-sqrt(r.^2-x.^2)).*sinofa;
?
alpha=0:pi/50:2*pi;
r=25;
xx=r*cos(alpha);
yy=r*sin(alpha);
zz=0*alpha;
?
bx=x;
by=sqrt(r.^2-x.^2);
bz=x*0;
?
plot3(oxx,oxy,oxz,‘r‘,xx,yy,zz,‘g‘);
hold on
?
?
lx(51,2)=0;
ly(51,2)=0;
lz(51,2)=0;
for i=1:51
lx(i,1)=bx(i);
lx(i,2)=oxx(i);
ly(i,1)=by(i);
ly(i,2)=oxy(i);
lz(i,1)=bz(i);
lz(i,2)=oxz(i);
plot3(lx(i,:),ly(i,:),lz(i,:),‘-‘);
hold on
end
?
?
?
xlabel(‘x‘);
ylabel(‘y‘);
zlabel(‘z‘);
grid(‘on‘);
axis square;
***********************************curve2.m********************************
for h=1:50
clf;
i=1:10;
s=2.5;
m=120;
r=25;
mkx(2)=0;
mky(2)=0;
mkz(2)=0;
ck=m/2-sqrt(r^2-(10*s-s/2)^2);
ci=m/2-sqrt(r^2-(i*s-s/2).^2);
sinfine=h/ck;
cosfine=sqrt(1-sinfine^2);
deno=sqrt((ci-ck.*(1-cosfine./2)).^2+(ck*sinfine/2).^2);
cosofa=(ci-ck.*(1-cosfine./2))./deno;
sinofa=sqrt(1-cosofa.^2);
mkx(1)=r;
mkx(2)=-r;
mky(1)=m/2-ck+ck*cosfine/2;
mky(2)=mky(1);
mkz(1)=ck*sinfine/2;
mkz(2)=mkz(1);
x=i*s-s/2;
y=m/2-ci+ci.*cosofa;
z=ci.*sinofa;
xx=[flipud(-x‘)‘ x];
yy=[flipud(y‘)‘ y];
zz=[flipud(z‘)‘ z];
xx2=xx;
yy2=-yy;
zz2=zz;
plot3(xx,yy,zz,‘r‘)
hold on;
plot3(xx2,yy2,zz2,‘r‘)
hold on;
xlabel(‘x‘);
ylabel(‘y‘);
zlabel(‘z‘);
grid on
alpha=0:pi/50:2*pi;
r=25;
cx=r*cos(alpha);
cy=r*sin(alpha);
cz=0*alpha;
plot3(cx,cy,cz,‘g‘);
hold on;
bx=xx;
by=sqrt(r.^2-xx.^2);
bz=xx*0;
bx2=xx;
by2=-sqrt(r.^2-xx.^2);
bz2=xx*0;
lx(20,2)=0;
ly(20,2)=0;
lz(20,2)=0;
for i=1:20
lx(i,1)=bx(i);
lx(i,2)=xx(i);
ly(i,1)=by(i);
ly(i,2)=yy(i);
lz(i,1)=bz(i);
lz(i,2)=zz(i);
plot3(lx(i,:),ly(i,:),lz(i,:),‘-‘);
hold on
end
lx2(20,2)=0;
ly2(20,2)=0;
lz2(20,2)=0;
for i=1:20
lx2(i,1)=bx2(i);
lx2(i,2)=xx2(i);
ly2(i,1)=by2(i);
ly2(i,2)=yy2(i);
lz2(i,1)=bz2(i);
lz2(i,2)=zz2(i);
plot3(lx2(i,:),ly2(i,:),lz2(i,:),‘-‘);
hold on
end
plot3(mkx,mky,mkz,‘r‘);
hold on
plot3(mkx,-mky,mkz,‘r‘);
grid(‘on‘);
axis square;
axis([-70 70 -70 70 0 70]);
%mov(h)=getframe;
drawnow
end
***********************************nihe.m********************************
x=1:25;
x1=x;
y1=0.003288.*x.^3 + -0.08107.*x.^2 + 0.5285.*x + 11.53;
z1=0.035.*x.^2 + -0.07097.*x + 32.75;
plot3(x1,y1,z1,‘r‘);
***********************************canshu.m********************************
clear;
clc;
i=1:10;
s=2.5;
m=120;
r=25;
h=50;
?
ck=m/2-sqrt(r^2-(10*s-s/2)^2)
ck/2
ci=m/2-sqrt(r^2-(i*s-s/2).^2)
?
sinfine=h/ck;
cosfine=sqrt(1-sinfine^2);
deno=sqrt((ci-ck.*(1-cosfine./2)).^2+(ck*sinfine/2).^2);
cosofa=(ci-ck.*(1-cosfine./2))./deno;
sinofa=sqrt(1-cosofa.^2);
ai=ck/2-ci+sqrt((ci-ck.*(1-cosfine./2)).^2+(ck.*sinfine./2).^2)
***********************************canshu2.m*******************************i=0:8;
h=67;
m=170;
r=40;
k=8;
d=24.5;
s=r/(k+1/2);
ck=m/2-sqrt(r^2-(8*s)^2);
ci=m/2-sqrt(r^2-(i*s).^2)
?
sinfine=h/ck;
cosfine=sqrt(1-sinfine^2);
ai=d-ci+sqrt((ci-ck+(ck-d).*cosfine).^2+((ck-d).*sinfine).^2)
?
?
***********************************sheji1.m*******************************
clear;clc;
w=80;
k=10;
s=w/(2*k+1);
h=67;
i=0:1:10;
t=i.*s;
xn=t;
yn=w/2-s.*i;
zn=i.*0;
xa=t;
minium=inf;
finalfine=0;
finaldis=0;
for fine=1/6*pi:1/180*pi:1/2*pi
for dis=max(yn)-yn(10):1:6*h;
ck=h/sin(fine);
xm=i.*s;
ym=yn(k)+dis*cos(fine)+i.*0;
zm=dis*sin(fine)+i.*0;
ya=yn(k)+ck*cos(fine)+i.*0;
za=ck*sin(fine)+i.*0;
dd=((ym-yn).^2+zm.^2).^(1/2);
derta=(abs(zm.*ya+(yn-ym).*za-yn.*zm))./(zm.^2+(yn-ym).^2).^(1/2);
?
power=0;
if sum(derta)<1
xo=xa;
fenzi=((yn-ym).^2.*ya-(yn-ym).*zm.*za+yn.*zm.^2);
fenmu=((yn-ym).^2+zm.^2);
fenzi2=((yn-ym).*zm.*ya-zm.^2.*za-(yn-ym).*yn.*zm);
yo=fenzi./fenmu;
zo=-fenzi2./fenmu;
c=((yo-yn).^2+zo.^2).^(1/2);
l=c+yn;
if min(dd)>min(c)
sg=w*(ck*cos(fine)+yn(k));
power=0.0418*dis/ck+0.0936*(k-5)/10+0.2797*(max(l)-2*h)/(2*h)-0.2925*fine*2/pi-0.2925*sg/(max(l)*w);
if power<minium
minium=power;
finalfine=fine;
finaldis=dis;
end
else
continue;
end
?
end
end
end
?
?
lx(11,2)=0;
ly(11,2)=0;
lz(11,2)=0;
?
fine=finalfine;
dis=finaldis;
ck=h/sin(fine);
xm=i.*s;
ym=yn(k)+dis*cos(fine)+i.*0;
zm=dis*sin(fine)+i.*0;
ya=yn(k)+ck*cos(fine)+i.*0;
za=ck*sin(fine)+i.*0;
xo=xa;
fenzi=((yn-ym).^2.*ya-(yn-ym).*zm.*za+yn.*zm.^2);
fenmu=((yn-ym).^2+zm.^2);
fenzi2=((yn-ym).*zm.*ya-zm.^2.*za-(yn-ym).*yn.*zm);
yo=fenzi./fenmu;
zo=-fenzi2./fenmu;
c=((yo-yn).^2+zo.^2).^(1/2)
l=c+yn
dd=((ym-yn).^2+zm.^2).^(1/2);
a=dd-(dis+yn(11)-yn)
?
?
?
?
for angle=pi/180:pi/180:fine
clf;
?
ym=yn(k)+dis*cos(angle);
zm=dis*sin(angle);
dd2=((ym-yn).^2+zm.^2).^(1/2);
cosofa=(ym-yn)./dd2;
yyo=yn+c.*cosofa;
zzo=c.*(1-cosofa.^2).^(1/2);
for i=1:11
lx(i,1)=xn(i);
lx(i,2)=xo(i);
ly(i,1)=yn(i);
ly(i,2)=yyo(i);
lz(i,1)=zn(i);
lz(i,2)=zzo(i);
plot3(lx(i,:),ly(i,:),lz(i,:),‘-‘);
hold on
plot3(-lx(i,:),ly(i,:),lz(i,:),‘-‘);
hold on
plot3(lx(i,:),-ly(i,:),lz(i,:),‘-‘);
hold on
plot3(-lx(i,:),-ly(i,:),lz(i,:),‘-‘);
hold on
end
xxm1=[-xm(11),xm(11)];
yym1=[ym,ym];
zzm1=[zm,zm];
plot3(xxm1,yym1,zzm1,‘g‘);
hold on
xxm2=[-xm(11),xm(11)];
yym2=[-ym,-ym];
zzm2=[zm,zm];
plot3(xxm2,yym2,zzm2,‘g‘);
hold on
plot3(xn,yn,zn,‘k‘);
hold on
plot3(-xn,yn,zn,‘k‘);
hold on
plot3(xn,-yn,zn,‘k‘);
hold on
plot3(-xn,-yn,zn,‘k‘);
hold on
plot3(xa,ya,za,‘r‘);
hold on
plot3(-xa,ya,za,‘r‘);
hold on
plot3(xa,-ya,za,‘r‘);
hold on
plot3(-xa,-ya,za,‘r‘);
hold on
xlabel(‘x‘);
ylabel(‘y‘);
zlabel(‘z‘);
drawnow
end
?
?
?
***********************************2.lg4***********************************
model:
min=0.0418*d/ck+0.0936*k/15+0.2797*(l-h*2)/(h*2)-0.2925*fine/@ASIN(1)-0.2925*sg/(l*w);
w=160;
h=67;
r=w/2;
k>=5;
k<=15;
@GIN(k);
s=r/k;
s>=2;
ck=l/2-(r^2-(r-s/2)^2)^(1/2);
fine=@ASIN(h/ck);
c1=l/2-(r^2-s^2/4)^(1/2);
a1=d-c1+((c1-ck+(ck-d)*@COS(fine))^2+((ck-d)*@SIN(fine))^2)^(1/2);
sg=2*w*(ck*@COS(fine)+l/2-ck);
a1<d;
d<c1;
h<=ck;
fine>@ASIN(1/2);
fine<@ASIN(1);
end
***********************************2j.lg4***********************************
model:
min=0.0418*d/ck+0.0936*k/15+0.2797*(l-h*2)/(h*2)-0.2925*fine/@ASIN(1)-0.2925*sg/(l*w);
w=160;
h=67;
r=w/2;
k>=5;
k<=15;
@GIN(k);
r=(k+1/2)*s;
s>=2;
ck=l/2-(r^2-(k*s)^2)^(1/2);
fine=@ASIN(h/ck);
c1=l/2-r;
a1=d-c1+((c1-ck+(ck-d)*@COS(fine))^2+((ck-d)*@SIN(fine))^2)^(1/2);
sg=2*w*(ck*@COS(fine)+l/2-ck);
?
?
a1<d;
d<c1;
h<=ck;
fine>@ASIN(1/2);
fine<@ASIN(1);
?
end
***********************************2jnew.lg4*********************************
model:
min=0.0418*(d-3.743283)/(110.6639-3.743283)+0.0936*(k-5)/10+0.2797*(l-156.4717)/(301.3278-156.4717)-0.2925*(fine-@ASIN(1/2))/(@ASIN(1)-@ASIN(1/2))-0.2925*(sg-2461.538)/(21233.81-2461.538);
min=d;
w=80;
h=67;
r=w/2;
k>=5;
k<=15;
@GIN(k);
r=(k+1/2)*s;
s>=2;
ck=l/2-(r^2-(k*s)^2)^(1/2);
fine=@ASIN(h/ck);
c1=l/2-r;
a1=d-c1+((c1-ck+(ck-d)*@COS(fine))^2+((ck-d)*@SIN(fine))^2)^(1/2);
sg=2*w*(ck*@COS(fine)+l/2-ck);
a1>0;
a1<d;
d<c1;
h<=ck;
fine>@ASIN(1/2);
fine<@ASIN(1);
end
?
8.3 问题三动态变化示意图
?
【数学建模】创意平板折叠桌的模型分析与优化设计