本文核心词:创意平板折叠桌。
创意平板折叠桌设计
创意平板折叠桌设计
摘要
本文是关于某公司生产一种可折叠的桌子,建立相关的数学模型解决此折叠桌的设计加工参数,以及最优设计加工参数,以满足客户所期望的创意平板折叠桌。
问题一,给定长方形平板尺寸、每根木条宽度,以及连接桌腿木条的钢筋固定在桌腿最外侧木条的中心位置,首先建立空间坐标的方法,以桌面圆心为坐标原点(0,0),Y方向为桌脚中线钢筋固定线的平行线方向,X为地平面上垂直于钢筋线的方向,Z为过原点垂直于地平面的方向,描述折叠的动态设计过程,即折叠夹角? 的变换过程(0???900)。再根据不同?角度的折叠效果设计,由桌脚边缘线的空间几何关系,计算出不同桌腿木条开槽长度,最终通过Matlab拟合函数,求解出每条桌腿边缘线的空间曲线方程。
问题二,建立优化模型,桌子的稳定性可以表示为桌腿的在地平面上的投影面积。根据问题一的分析,定义第一条桌腿对应的外边区域的面积为S1,中心桌腿对应的面积为S2,
建立优化目标函数,选取最长桌脚与桌高度、开槽长度最大值、边缘第一个桌腿切口预留长度为约束条件,利用Lingo软件编写程序优化求解,得到折叠桌最优的长度L、钢筋位置、开槽
长度等参数数值。
问题三 ,在问题二的基础上,先给出一个比较简单的桌面形状,并给定一个高度,再通过合理的方法将将问题三转化到问题二上进行建模求解。在此之后我们再给出一般的数学模型,并给出了一些简单的设计草图。
关键词 直纹曲面 折叠桌 开槽的长度 加工参数 Lingo优化模型
– 1 –
一、 问题重述
某公司生产一种可折叠的桌子,桌面呈圆形,桌腿随着铰链的活动可以平摊成一张平板(如图1-2所示)。桌腿由若干根木条组成,分成两组,每组各用一根钢筋将木条连接,钢筋两端分别固定在桌腿各组最外侧的两根木条上,并且沿木条有空槽以保证滑动的自由度(见图3)。桌子外形由直纹曲面构成,造型美观。附件视频展示了折叠桌的动态变化过程。
试建立数学模型讨论下列问题:
1. 给定长方形平板尺寸为120 cm × 50 cm × 3 cm,每根木条宽2.5 cm,连接桌腿木条的钢筋固定在桌腿最外侧木条的中心位置,折叠后桌子的高度为53 cm。试建立模型描述此折叠桌的动态变化过程,在此基础上给出此折叠桌的设计加工参数(例如,桌腿木条开槽的长度等)和桌脚边缘线(图4中红色曲线)的数学描述。
2. 折叠桌的设计应做到产品稳固性好、加工方便、用材最少。对于任意给定的折叠桌高度和圆形桌面直径的设计要求,讨论长方形平板材料和折叠桌的最优设计加工参数,例如,平板尺寸、钢筋位置、开槽长度等。对于桌高70 cm,桌面直径80 cm的情形,确定最优设计加工参数。
3. 公司计划开发一种折叠桌设计软件,根据客户任意设定的折叠桌高度、桌面边缘线的形状大小和桌脚边缘线的大致形状,给出所需平板材料的形状尺寸和切实可行的最优设计加工参数,使得生产的折叠桌尽可能接近客户所期望的形状。你们团队的任务是帮助给出这一软件设计的数学模型,并根据所建立的模型给出几个你们自己设计的创意平板折叠桌。要求给出相应的设计加工参数,画出至少8张动态变化过程的示意图。
二、 变量说明
– 2 –
三、 约束条件
1.桌退的开槽以直角向园内切割,问题一和问题二中不考虑斜角切割的情况; 2.桌子的平衡稳定性不考虑不同材质的摩擦问题; 3.各个桌腿间的缝隙设定为常量;
4.假设桌子的平面是水平的,且折叠后桌子的高度一定,地面是水平光滑的。
四、问题一求解
4.1 设计要求
给定长方形平板尺寸为120 cm × 50 cm × 3 cm,每根木条宽2.5 cm,连接桌腿木条的钢筋固定在桌腿最外侧木条的中心位置,折叠后桌子的高度为53 cm。试建立模型描述此折叠桌的动态变化过程,在此基础上给出此折叠桌的设计加工参数(例如,桌腿木条开槽的长度等)和桌脚边缘线(图4中红色曲线)的数学描述。
4.2 已知条件
给定长方形平板尺寸为120 cm × 50 cm × 3 cm,每根木条宽2.5 cm,连接桌腿木条的钢筋固定在桌腿最外侧木条的中心位置,折叠后桌子的高度为53 cm。
长方形平板长L度:120cm;
桌面圆心半径R:25cm;(注:桌面直径是长方形平板的宽度) 材料厚度w:3cm; 每根木条宽d:2.5 cm; 桌高H:53cm
4.3 问题分析 4.3.1 桌脚直纹曲面
根据折叠桌的动态变化过程的视频材料分析,给定长方形平板尺寸、高度和钢筋位置时,当折叠角度变化的情况下,桌腿桌脚边缘线的变换规律,最外最长的桌脚作为支撑点着地,其余桌脚悬空,距离中心越近的桌脚悬空和旋转的角度越大;由于连接桌腿木条的钢筋固定在桌腿最外侧木条
– 3 –
的中心位置固定(30cm处),为了能够形成折叠角度,只要设计合适的桌腿木条开槽的长度,就能够实现不同角度的折叠效果。也就是说,桌子外形由直纹曲面构成,而且直纹曲面中间共线的点就是开槽的最低点,即桌脚钢筋位置。当不同折叠角度时,直纹曲面的对应的不同参数就是要求解的桌面设计参数。
4.3.2 空间坐标建立
折叠的动态设计过程可以表述为,求解不同折叠角度下的桌腿木条开槽的长度即可,而桌脚边缘线的空间参数方程也就是不同桌腿木条开槽长度的函数。为了表述清楚,下面给出相对位置关系的空间坐标表示,如图1所示。
其中,地平面为参考面,以桌面圆心为坐标原点(0,0),Y方向为桌脚中线钢筋固定线的平行线方向,X为地平面上垂直于钢筋线的方向,Z为过原点垂直于地平面的方向,具体见图2所示。
0,0):
地平面
图1 三维空间坐标平面
为了描述折叠的动态效果,将第一条桌腿与Z轴的夹角定义为? ,表示折叠的程度,?的变化范围为[90,0], 如图3所示。
– 4 –
Z轴夹角
地平面
图2 折叠夹角示意图
4.3.3 桌面边缘预留长度
因为圆桌是对称的,我们在这里仅仅分析一半桌腿设计参数的情况,另外一半相同。桌面边缘第一个桌腿切口要有一定的预留长度才能够支撑和固定,左右边缘的第一个桌腿是唯一的着地的,要承载桌面的多部分重量。因此,要在符合桌高固定的约束条件下,预留足够的长度使得桌面平衡。具体定义见图4所示。
留长度x
图3 桌面边缘预留长度
4.4 问题一模型建立
根据以上分析,当长方形平板尺寸、桌高度和钢筋位置是常量时,桌脚的折叠程度取决于桌面边缘长度的预留值x。桌高度H和长方形平板长宽一定时,折叠夹角?与长度存在固定几何关系。具体见图4。
– 5 –
L-x:
:桌子高度
图4 第一个桌脚长度与桌高的几何关系
其余桌脚的开口位置从圆上向内直切,依此可以计算出各个桌腿的长度。由于圆上对策的,在这里仅仅给出左边四分子一的圆桌桌脚切割设计,具体设如图5所示。
– 6 –
虚心为圆半径
向垂直
图5 桌脚长度裁剪设计图
根据勾股定理,可以计算出所有裁剪后的桌腿的长度为:
l1i?i?2,..,10
然后根据图4的几何关系,我们可以直接计算出折叠夹角?,然后给出转夹角增量??,就可以依此计算出每个桌腿的开槽长度:
l2i?l1i?
H
,i?2,..,10
cos(????)
4.5.问题一求解结果
– 7 –
4.5.1 每条桌腿的开槽长度
求桌脚的’长度公式为:
I?L.
求桌边缘的公式为:
d?
求各桌脚绕点的坐标的公式为:
w1?c(N?1)?m.
求最长桌腿与桌面夹角theta正玄值公式为:
sin?10?
H?h
. I10
求折叠后钢筋与各桌脚的交点q,即开槽末端公式为:
??
?q1?w1??q?d ?210?
?L10?q3?
2sin?10??
桌脚短点的坐标为:
?x?w1?
?y?cos?*L?d. ?z?|sin?*L|?d?
xyz?[x;y;z].
Matlab运行结果,如下表1所示:
– 8 –
图6 空间曲面
4.5.2 桌脚边缘线空间曲线方程
由上面所得的数据,在不同的视角下的MATLAB编程拟合曲线以及立体图形
– 9 –
图7 桌角边缘空间曲线
图8 桌角边缘空间曲线
4.5.3折叠桌的动态变化过程
– 10 –
图9 MATLAB动态过程示意图角边缘空间曲线
五、 问题二求解
5.1 设计要求
折叠桌的设计应做到产品稳固性好、加工方便、用材最少。对于任意给定的折叠桌高度和圆形桌面直径的设计要求,讨论长方形平板材料和折叠桌的最优设计加工参数,例如,平板尺寸、钢筋位置、开槽长度等。对于桌高70 cm,桌面直径80 cm的情形,确定最优设计加工参数。给定长方形平板尺寸、高度和钢筋位置的圆桌参数设计。
5.2 已知条件
已知桌高70 cm,桌面直径80 cm。
5.3. 问题分析
5.3.1 基本参数说明
(1)变量定义
H:桌子高度,初始值为70cm;
L:桌子长度的一半;
R:桌面半径,初始值为40cm;
d :木条宽度;
x:边缘第一个桌腿切口预留长度;
t:钢筋位置,以地面为参考点;
?1 :边缘第一个桌腿与地面垂线之间的夹角,cos?1?H; L?x
?
2:中心桌腿与地面垂线之间的夹角,cos?2?
(2)可计算相关参数
图10 桌脚长度裁剪设计图
(注:第一条桌腿对应的外边区域的面积为S1,中心桌腿对应的面积为S2)
桌面面积:
S=2R?2L
桌角在地平面上的投缘面积:
S1=[2
钢筋位置:
H?2x]?2R cos?1
L?t?L2
5.3 优化模型建立
在桌子高度和木条宽度一定的情况下,桌子的稳定性可以表示为桌腿的在地平面上的投影面积,根据第一个问题的分析可以知道,第一条桌腿的折叠角度一定时,中心桌腿的旋转角度最大。因此,定义第一条桌腿对应的外边区域的面积为S1,中心桌腿对应的面积为S2,如图6所示。
因此,建立优化目标函数:
Max ?=
约束条件为:
(1)最长桌脚与桌高度约束关系 S2 S1
L?x?d?H.
(2)开槽长度最大值约束关系
L
L?d2.
(3)边缘第一个桌腿切口预留长度约束
x??2d.
建立Lingo优化模型如下所示:
MODEL:
min=(R-@sqrt((L-x)^2+H^2))/(R+@sqrt((L-x)^2+H^2));
!面积比可以近似转换为内外侧半径长度的比值
L-x-d>H;
L-@sqrt(R^2-x^2)
x>=2*d;
data:
H=70;
R=40;
d=2.5;
enddata
END
5.4优化模型求解
(1)运行结果
Local optimal solution found.
Objective value: -2.215250
Infeasibilities: 0.000000
Extended solver steps: 2
Total solver iterations: 9
Variable Value Reduced Cost
R 40.00000 0.000000
L 84.37254 0.000000
X 5.000000 0.000000
H 70.00000 0.000000
D 2.500000 0.000000
Row Slack or Surplus Dual Price
1 -2.215250 1.000000
2 6.872539 0.000000
3 0.000000 0.2769063E-01
4 0.000000 -0.1733401E-01
(2) 敏感度分析
当d取不同的值时,我们可以进行敏感度分析:
d=3时
Local optimal solution found.
Objective value: -2.219104
Infeasibilities: 0.000000
Extended solver steps: 2
Total solver iterations: 8
Variable Value Reduced Cost
R 40.00000 0.000000
L 85.09488 0.000000
X 6.000000 0.000000
H 70.00000 0.000000
D 3.000000 0.000000
d=4时
Local optimal solution found.
Objective value: -2.229059
Infeasibilities: 0.000000
Extended solver steps: 2
Total solver iterations: 9
Variable Value Reduced Cost
R 40.00000 0.000000
L 86.38367 0.000000
X 8.000000 0.000000
H 70.00000 0.000000
D 4.000000 0.000000
d=5时
Local optimal solution found.
Objective value: -2.242177
Infeasibilities: 0.000000
Extended solver steps: 2
Total solver iterations: 8
Variable Value Reduced Cost
R 40.00000 0.000000
L 87.45967 0.000000
X 10.00000 0.000000
H 70.00000 0.000000
D 5.000000 0.000000
d=6时
Local optimal solution found.
Objective value: -2.258718
Infeasibilities: 0.000000
Extended solver steps: 2
Total solver iterations: 8
Variable Value Reduced Cost
R 40.00000 0.000000
L 88.31514 0.000000
X 12.00000 0.000000
H 70.00000 0.000000
D 6.000000 0.000000
d=7时,
为无效的解,既不满足高度约束条件。
5.5 求解结果分析
表2 优化参数
对于给定的桌子高和半径,我们每给一个,取不同的,都可以得到一个对应的桌腿与垂直方向高的夹角?,由此得出不同的面积。由于Max ?=
分别为: S2,根据上面运行的结果数据得到 的值,S1
0.7909 0.7988 0.8163 0.8376 0.8629
所以,当d=6, x=12时该折叠桌的设计达到了最优,此时的桌子长度为88.31514,所得到的桌面在地面的投影达到最大值1.2193*10^4,这样的设计使得桌子最稳定、加工方便、用材最少。根据此设计尺寸,绘出如图7、8、9所示的平面图:
图11 折叠桌平面图
图12折叠桌平面图
图13折叠桌平面图
由于影响桌子性能的因素不止一个,而是不计其数,甚至我们无法预料,所以我们所得的最优化尺寸可能仅仅是一个相对的值,但是我们建立的尺寸模型满足人们最基本的要求,即:用材最少、性能最高,稳定性最好且符合人们舒适的要求。
六、 问题三求解
6.1设计要求
根据用户要求的高度和桌面形状,在满足稳定性好、加工方便、用材最少的基础上讨论折叠桌的最优设计加工参数,例如,平板尺寸,开槽长度等。对于高70cm,桌面为正方形的情形,确定最优设计加工参数。
6.2模型建立
已知桌高70,桌面形状为正方形。
基本参数和问题二中一致,除了R未知。由于桌面为正方型,所以当以他的外接圆为桌面的设计达到优时也就是桌面为正方形的最优设计。此时我们就可以将此问题转化为问题二,根据问题二的建模思路及计算方法,我们可以先给R一个定值,让d的取值变化,用lingo编程就可以到一组数值。然后我们在给d一个定值,让R在变化,用同样的方法也可以的到一组数据。(数据如下表)(为了计算方便在此我们对R只取六个值)继续被利用模型二计算方法解出最优值。
6.3模型求解分析
用Matlab编程得到的结果如表3所示。
为:
H=70 R=50 L=109.773 ?=47.7337
用auto CAD做出该设计的平面图如图10所示:
图14
6.4模型推广
对于更一般的情形我们可以建立空间坐标给出如下模型
模型建立:
1.给定桌面和桌脚边缘曲线,桌子高度h
? 桌面边缘曲线方程:
?x??(t)??y??1(t)
?z?0?
? 桌脚边缘最终的曲线方程:
?x??(t) ?*?y??2(t,?)
?*?z??(t,?).
其中,?=59.037? *
2.点的坐标处理:
? 如图,A,B,E坐标如下:
E(?(t1),?1(t1),0) 其中?1(t1)?0;B(?(t2),?1(t2),0) 其中?(t1)??(t2)?w;A(?(t2),0,0)
? 最外侧桌腿最终状态桌脚点的坐标,
,求解l*. D(?(t2),?2(t2,?*),?(t2,?*)) ,其中(?=?*)
根据勾股定理可得: sin?*?nh?d厚? *ll*
则, l*?h?d厚
sin?*
并绘制出如写的一些设计图片如下图所示:
图15效果图
七、模型评价
对问题一和问题二中利用优化可以反应木板长度宽度和模板面积之间的相关性进行分析,处理;所建立的模型与实际紧密联系,利用MATLAB软件和lingo软件编程就能达到很好的效果,有很好的通用性和推广型且可信度高;对数处理用曲线拟合避免了一些特殊点(如:误差大的点)的丢失和因此而产生的误差。在建立模型时,由于我们考虑到的影响桌子性能的因素不是很全面,只是取其最重要的因素来建立模型,所以求得的最优解可能也只是一个相对最优解,但也符合人们的需求。总之我们的设计模型还是一个比较完美的设计。
参考文献
[1]陈国华,韦程东,将检出,付军.数学模型与数学建模方法.[M].天津:南开大学出版社.2012年6月.
[2]徐萃薇,孙绳武.计算方法引论.[M].北京:高等教育出版社.2007年4月.
[3]刘卫国.MATLAB程序设计与应用.[M].北京:高等教育出版社.2006年7月.
[4]王正林.精通MATLAB最优化计算.[M].北京:电子工业出版社.2011年12月.
[5]汪晓银,周保平.数学建模与数学实验.[M].北京:科学出版社.2010年2月.
[6]陈志杰.高等代数.[M].北京:高等教育出版社.2008年12月.
[7]中国知网.便携式家具研究(硕士论文).2013年6月.
附录
问题一源代码:
程序一(求解坐标)
clear all;
clc;
a=120; %桌长%
b=50; %桌宽%
h=3; %厚%
H=53; %桌高%
c=2.5; %木条宽%
m=2.2; %锯齿边缘调整参数%
n=b/c; %每排桌脚数%
N=1:(n/2); %从最短桌脚向侧边桌脚编号% L=a/2-sqrt((b/2).^2-(c*(N-1)+m).^2); %桌脚长度%
d=sqrt((b/2).^2-(c*(N-1)+m).^2); %桌边缘%
w1=c*(N-1)+m; %各桌脚绕点w坐标%
w2=d;
w3=zeros(1,n/2);
w=[w1;w2;w3];
sin_theta10=(H-h)/L(10); %最长桌腿与桌面夹角theta正玄值%
q1=w1; %折叠后钢筋与各桌脚的交点q,即开槽末端%
q2=d(10)+L(10)/2*abs(sqrt(1-sin_theta10^2));
q3=L(10)/2*sin_theta10;
q=[q1;ones(1,n/2)*q2;ones(1,n/2)*q3];
t=L-L(10)/2*ones(1,n/2); %各桌脚开槽的起点%
T=sqrt((q1-w1).^2+(q2-w2).^2+(q3-w3).^2); %各桌脚开槽的终点%
T_t=T-t; %各桌脚的开槽长度% z1=ones(1,n/2)*q3;
z2=w3;
y1=ones(1,n/2)*q2;
y2=d;
tan_theta=(z1-z2)./(y1-y2); %各桌脚的正切值%
sin_theta=sin(atan(tan_theta)); %各桌脚的正玄值%
cos_theta=cos(atan(tan_theta)); %各桌脚的余弦值%
x=w1;
y=cos_theta.*L+d;
z=abs(sin_theta).*L;
xyz=[x;y;z]’; %桌脚端点坐标%
display(‘各桌脚的开槽长度’);
T_t’
display(‘桌脚端点坐标’);
x_y_z=xyz
display(‘各桌脚的
数据一
程序二(数据拟合)
x=[-24.7,-22.2,-19.7,-17.2,-14.7,-12.2,-9.7,-7.2,-4.7,-2.2,2.2,4.7,7.2,9.7,12.2,14.7,17.2,19.7,22.2,24.7]
x =
Columns 1 through 9
-24.7000 -22.2000 -19.7000 -17.2000 -14.7000 -12.2000 -9.7000 -7.2000 -4.7000
Columns 10 through 18
-2.2000 2.2000 4.7000 7.2000 9.7000 12.2000 14.7000 17.2000 19.7000
Columns 19 through 20
22.2000 24.7000
>>y=[29.3868,21.2423,17.5878,20.6808,25.8872,29.5916,32.2307,34.0693,35.2716,35.9364,35.9364,35.2716,34.0693,32.2307,29.5916,25.8872,20.6808,17.5878,21.2423,29.3868]
y =
Columns 1 through 9
29.3868 21.2423 17.5878 20.6808 25.8872 29.5916 32.2307 34.0693 35.2716
Columns 10 through 18
35.9364 35.9364 35.2716 34.0693 32.2307 29.5916 25.8872 20.6808 17.5878
Columns 19 through 20
21.2423 29.3868
>>z=[50,47.5146,44.554,41.7802,39.3729,37.3798,35.7979,34.6075,33.7867,33.3176,33.3176,33.7867,34.6075,35.7979,37.3798,39.3729,4
1.7802,44.554,50]
z =
Columns 1 through 9
50.0000 47.5146 44.5540 41.7802 39.3729 37.3798 35.7979 34.6075 33.7867
Columns 10 through 18
33.3176 33.3176 33.7867 34.6075 35.7979 37.3798 39.3729 41.7802 44.5540
Column 19
50.0000
>>z=[50,47.5146,44.554,41.7802,39.3729,37.3798,35.7979,34.6075,33.7867,33.3176,33.3176,33.7867,34.6075,35.7979,37.3798,39.3729,4
1.7802,44.554,47.5146,50]
z =
Columns 1 through 9
50.0000 47.5146 44.5540 41.7802 39.3729 37.3798 35.7979 34.6075 33.7867
Columns 10 through 18
33.3176 33.3176 33.7867 34.6075 35.7979 37.3798 39.3729 41.7802 44.5540
Columns 19 through 20
47.5146 50.0000
>> cftool(x,y,z)
程序三(凹槽形状拟合)
a=[0.0000 ,4.7026 ,8.0531 ,10.7856 ,13.0448 ,14.8900 ,16.3540 ,17.4576 ,18.2146 ,18.6340 ,18.6340 ,18.2146 ,17.4576 ,16.3540 ,14.8900 ,13.0448 ,10.7856 ,8.0531 ,4.7026 ,0.0000 ];
>> plot(a)
程序四(三维曲线绘图)
> x=[-24.7000 ,-22.2000 ,-19.7000 ,-17.2000 ,-14.7000 ,-12.2000 ,-9.7000 ,-7.2000 -4.7000 ,-2.2000 ,2.2000 ,
4.7000 ,7.2000 ,9.7000 ,12.2000 ,14.7000 ,17.2000 ,19.7000 ,22.2000 ,24.7000 ];
>y=[29.3868 ,21.2423 ,17.5878 ,20.6808 ,25.8872 ,29.5916 ,32.2307 ,34.0693 ,35.2716 ,35.9364 ,35.9364 ,35.2716 ,34.0693 ,32.2307 ,29.5916 ,25.8872 ,20.6808 17.5878 ,21.2423 ,29.3868 ];
> z=[50.0000 ,47.5146 ,44.5540 ,41.7802 ,39.3729 ,37.3798 ,35.7979 ,34.6075 ,33.7867 ,33.3176 ,33.3176 ,33.7867 ,34.6075 ,35.7979 ,37.3798 ,39.3729 ,41.7802 44.5540 ,47.5146 ,50.0000 ];
>> plot3(x,y,z)
程序五(动态过程表示)
L=120;D=50;d=2.5;hL=L/2;R=D/2; %木板长;宽;腿木条宽;半长;圆桌面半径
ye=-R+d/2:d:R-d/2; xe=sqrt(R^2-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));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=[-R R];zhouz=[0;0]; %钢筋轴数据
yb=linspace(ye(1),ye(end),50);xb=sqrt(R^2-yb.^2);
Bx=hL*ones(size(xb)); By=yb; Bz=zeros(size(xb)); %腿尖曲线数据
figure(1),clf;hold on
h1=patch(Tx,Ty,Tz,’facecolor’,[1 0.5 0],’edgecolor’,[1 1 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]);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-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]-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);
问题二源代码:
程序五(方程拟合)
MODEL:
max=(R+@sqrt((L-x)^2+H^2))/(R-@sqrt((L-x)^2+H^2));
L-x-d>H;
L-@sqrt(R^2-x^2)
x>=2*d;
data:
H=70;
R=40;
d=2.5;
enddata
END
程序六(最优性检验)
d=i; %i表示一个变化的数,按照已经计算出的数据输入
R=40;
X=j; %j是一个代号,用已经得到的数据依次更换
H=70;
L=s; %是变化的数据,用前面的值代替
jiaodu1=acos(H./(L-X))
jiaodu2=acos(L-sqrt(R^2-d^2))./(H-(sqrt(R^2-d^2)-x)cos(jiaodu1)) S(touying)=[2H./cos(jiaodu1)+2x]*2R
S=2R*2L
t1=L./2
t2=L-sqrt(R^2-d^2)
t1