7.2.2第二种创意平板折叠桌的设计加工参数的求解
在给定长半轴为60cm,短半轴为40cm,高度为70cm时,通过MATLAB编程计算得到其相应的设计加工参数(详见附录5)。
表7.2 第二种创意平板折叠桌的主要设计加工参数表 平板长度(cm) 木条数 木条宽度(cm) 总用料(cm3) 平板尺寸(cm) 钢筋位置(cm) 支撑角(rad) 设计加工参数 257.12 32 2.5 39584 257.12?80.01?3.00 37.65 1.2 其他相关的设计加工参数见附录6。
第二种创意平板折叠桌的动态图如图7.5所示,由于版面限制,只给4张动态图,具体动态图见附件2。
图7.5 第二种创意平板折叠桌动态示意图
19
7.2.3 第三种创意平板折叠桌的设计加工参数的求解
在给定正六边形的边长为40cm,折叠高度为70cm时通过建立的数学模型,通过MATLAB编程计算得到其相应的设计加工参数(详见附录5)。
表7.3 第三种创意平板折叠桌的主要设计加工参数表 平板长度(cm) 木条数 木条宽度(cm) 总用料(cm3) 平板尺寸(cm) 钢筋位置(cm) 支撑角(rad) 设计加工参数 155.90 30 2.67 37532 155.90?80.25?3.00 43.57 1.153
其他相关的设计加工参数见附录6。
第三种创意平板折叠桌的动态图如图7.6所示,由于版面限制,只给4张动态图,具体动态图见附件中的问题2文件。
图7.6 第三种创意平板折叠桌动态示意图
20
八、模型的评价与推广
8.1 模型的优点
本文用解析几何的知识建立了描述折叠桌的动态变化过程的数学模型,简单易懂,适用性很强。在分析和建模时,最大可能地避开了折叠桌内部受力的复杂情况,单纯从数学方面以及基本的结构力学知识来考虑折叠桌的设计加工参数,这一定程度上降低了问题的求解难度。
对于问题一时,我们将离散型问题进行了连续化处理,这是一种大胆的试探与突破,大大降低了该模型的复杂性,用初等几何知识建立了描述折叠桌的动态变化过程,且给出了折叠桌的动态变化过程进行了模拟仿真。
对于问题二,我们根据结构力学知识,创新性地定义出了中心三角形法则,根据这一法则,精确建立了以用材最小为目标的优化模型,运用了枚举法和分支定界算法来进行求解,最终求出了较优的最优设计加工参数。
对于问题三,运用本文建立的数学模型,只需给定折叠桌高度、以及桌面边缘线的参数方程即可得到折叠桌面的一组满意的设计加工参数,具有很强的推广型,对于任意的多边形以及圆形、椭圆形等常见曲线,可以精确地描叙出这些折叠桌的动态变化过程。 8.2模型的缺点
对于问题一,我们所采用的离散问题连续化处理思想会导致求出的设计加工参数都存在一定范围的误差。
对于问题二,在建立的优化模型中,我们假定了木条的厚度为一个常数,忽略了木材的应许力以及折叠桌能承受的重力等对折叠桌质量起关键作用的约束条件。同时,采用枚举法和分支定界算法求出的设计加工参数只是一个满意解。
对于问题三,我们只是较为简单地提出了如何满足客户所期望的桌腿边缘线形状的方法,没有建立起具体的数学模型来进行具体的讨论,而且我们建立的数学模型需要客户给出精确的桌面边缘线形状大小,这一定程度上给客户带来了不便。 8.3 模型的推广
本文关于平板折叠桌的数学模型具有很强的适用性,而且求解设计加工参数的算法也有一定的优越性。总之,只需客户给定折叠桌高度、桌面边缘线精确的形状大小,即可给出较优的设计加工参数,并且可以用计算机模拟出折叠桌的动态变化过程。可给生产该平板折叠桌的公司减少一定的生产成本
九、参考文献
[1] Robert van Embricqs, Rising table size,
http://www.yankodesign.com/2012/02/29/fascinatingly-simple-part-deux/。 [2]肖勇刚、唐雪松,结构力学[M],人民教育出版社,2012。 [3]姜启源,数学模型(第三版),高等教育出版社,2003。 [4]王建伟,MATLAB7.X程序设计,中国水利水电出版社,2007。 [5]胡运泉,运筹学教程,清华出版社,1998。
[6]韩佳成,观点:平板折叠桌边桌 [J],设计2012 .08: 708-71
21
附录
附录1 问题一计算程序MATLAB代码 主程序: clear;clc
global R l w h; h=50; w=50;
R=sqrt(25^2-23.75^2+22.5^2); l = 120; c=2.5;
x = [(-w/2+c) : c : 0]; x = [x -x(end:-1:1)]; n=length(x);
y = -sqrt(R.^2-x.^2); len1=y(1)+l/2 cz=[]; cy=[]; z = x*0;
r=len1/2+y(1); times=20;
% out=[0.2 0.5 0.8 1.1 asin(h/len1)];
for cita=0:asin(h/len1)/times:asin(h/len1) % for k=1:5
% cita=out(k); %计算桌脚点坐标 for i=1:n
[yk(i) zk(i)]=f1(cita,y(i)); end
%判断桌脚点正负 for i=2:n
if ( yk(i) - yk(i-1) ) <0 &(i*2 if flag>0 for i=flag:n-flag+1 yk(i) =f2(cita,y(i)); end end %画桌脚曲线 drawnow; 22 axis([-50,50,-50,50,-60,0]); %axis square; hold on; cla; plot3 ( yk , x , zk ,'g'); % plot3 ( yk , x , zk ,'go'); xlabel('y'); ylabel('x'); zlabel('z'); title(sprintf('桌脚边缘线轨迹 θ=%.4f(单位: cm)',cita)); %画桌顶边缘线 plot3 ( y , x , z ,'b') ; for i = 1 : n/2; plot3 ( [ yk(i) y(i) ] , [ x(i) x(i) ] , [ zk(i) z(i) ] , 'r' ) ; plot3 ( [ yk(i) y(i) ] , [ x(i)-c x(i)-c ] , [ zk(i) z(i) ] , 'r' ); plot3 ( [ yk(i) yk(i) ] , [x(i)-c x(i) ] , [zk(i) zk(i)],'r' ); plot3 ( [ y(i) y(i) ] , [x(i)-c x(i) ] , [z(i) z(i)],'r' ); end for i = (n/2+1):n; plot3 ( [ yk(i) y(i) ] , [ x(i) x(i) ] , [ zk(i) z(i) ] , 'r' ) ; plot3 ( [ yk(i) y(i) ] , [ x(i)+c x(i)+c ] , [ zk(i) z(i) ] , 'r' ); plot3 ( [ yk(i) yk(i) ] , [x(i)+c x(i) ] , [zk(i) zk(i)],'r' ); plot3 ( [ y(i) y(i) ] , [x(i)+c x(i) ] , [z(i) z(i)],'r' ); end plot3 ( -yk , x , zk ,'g'); %画桌顶边缘线 plot3 (- y , x , z ,'b') ; %画条纹曲面 for i = 1 : n/2; plot3 ( [ -yk(i) -y(i) ] , [ x(i) x(i) ] , [ zk(i) z(i) ] , 'r' ) ; plot3 ( [ -yk(i) -y(i) ] , [ x(i)-c x(i)-c ] , [ zk(i) z(i) ] , 'r' ); plot3 ( [ -yk(i) -yk(i) ] , [x(i)-c x(i) ] , [zk(i) zk(i)],'r' ); plot3 ( [ -y(i) -y(i) ] , [x(i)-c x(i) ] , [z(i) z(i)],'r' ); plot3 ( [y(i) -y(i)] , [x(i) x(i) ] , [z(i) z(i)] ,'k'); if (i==1) plot3 ( [y(i) -y(i)] , [x(i)-c x(i)-c ] , [z(i) z(i)] ,'k'); end end for i = (n/2+1):n; plot3 ( [ -yk(i) -y(i) ] , [ x(i) x(i) ] , [ zk(i) z(i) ] , 'r' ) ; plot3 ( [ -yk(i) -y(i) ] , [ x(i)+c x(i)+c ] , [ zk(i) z(i) ] , 'r' ); plot3 ( [ -yk(i) -yk(i) ] , [x(i)+c x(i) ] , [zk(i) zk(i)],'r' ); plot3 ( [ -y(i) -y(i) ] , [x(i)+c x(i) ] , [z(i) z(i)],'r' ); plot3 ( [y(i) -y(i)] , [x(i)+c x(i)+c ] , [z(i) z(i)],'k' ); end 23