数学建模社区-数学中国

标题: 请高手看看,国赛B题第3问程序,以最长木条与高线夹角和钢筋位置为变量,有错吗 [打印本页]

作者: 消逝时光    时间: 2014-9-30 21:40
标题: 请高手看看,国赛B题第3问程序,以最长木条与高线夹角和钢筋位置为变量,有错吗
%clc,clear;
h=input('输入桌面高度h=');%桌面高度
syms x;
Y=input('输入桌面边缘线函数y=');
jiaYY=input('输入桌脚边缘线在xoy面投影函数y=');
YY=jiaYY;
jiaYZ=input('输入桌脚边缘线在zox面投影函数z=');
YZ=jiaYZ;
jiaodian=double(solve(Y));%求Y即桌面边缘线函数与y轴的交点
if size(jiaodian,1)==2
D=jiaodian(1)-jiaodian(2);%桌子宽度
r=D/2;
elseif  size(jiaodian,1)==1
    D=jiaodian;
    r=D;
end
d=2;%木条宽度
y=[r-d/2:-d:d/2];
for i=1:size(y,2)
bianyuandian=solve(Y-y(i));
x(i)=bianyuandian(1,1);
geidingzhuobiaox=solve(YY-y(i));
XXX(i)=geidingzhuobiaox(1,1);
geidingzhuobiaoz=solve(YZ-XXX(i));
ZZZ(i)=geidingzhuobiaoz(1,1);
end
h2=h;
u=0.3;%摩擦系数
for p=1:0.1:16.7
jiaodu=p ;       %即桌子稳定后木条1与垂线之间的夹角θ(度),u=0.3时θ<=arctan(u)=16.6992度
l1=h/cos(jiaodu/180*pi) ;            %最外面的那根是木条长度1
aa=x(1);%过最外面木条即木条1与桌面接点做与y轴平行的割线到y轴的距离
l=l1+aa-x; %每根木条长度   最外面的那根是木条1:l(1)
ll=l';
s=(2*aa+sin(jiaodu/180*pi)*2*l1)*2*r;%桌子支撑面积
jiaodu1=acos(h2/l(1))/pi*180 ;%桌子稳定前木条1与垂线之间的夹角θ(度)
jiaodu2=90-jiaodu1;             %即桌面与木条1的夹角(度)
w=(l1+aa)*2 ;%桌子总长度
%圆的外围点到木条1的割线的直线距离
for i=1:size(y,2)
l2(i)=l(1)-l(i);
end
ll2=l2';
syms X;
Q=double(solve(sqrt(l2(size(y,2)).^2+(l1-X)^2-2*l2(size(y,2))*(l1-X).*cos(jiaodu2/180*pi))-w/2+x(size(x,2))));
for i=1:1:l1-Q(2)
ganjinweiz=Q(2)+i;%钢筋位置
  L=l1-ganjinweiz;   
l3=sqrt( l2.^2+(L)^2-2*l2*(L).*cos(jiaodu2/180*pi));%余弦定理求l3即圆的外围点到钢筋的距离
jiaodu3=asin( (sin(jiaodu2/180*pi)).*l2./l3)/pi*180;%l3与l(1)平移面中线l(1)的夹角
chaochandu=ganjinweiz-l+l3;%每根木条开槽长度
zonkaichaochandu=sum(chaochandu);%开槽长度和

jiaodu4=jiaodu3+jiaodu2;%桌面与穏定后木条的夹角
%以桌面中心为坐标原点的坐标
x1=y;%x轴坐标
XXX1=y;%给定曲线的x轴坐标
x12=x1;
y1=l.*cos(jiaodu4./180*pi)+w/2-l;%y轴坐标
YYY1=XXX;%给定曲线的y轴坐标
y12=w/2-l;%y轴桌面桌标
z1=-l.*sin(jiaodu4./180*pi);%z轴坐标
ZZZ1=ZZZ;
z12=zeros(1,size(y,2));
%坐标对称变换
x2=-x1;
XXX2=-XXX1;
x22=x2;
y2=y1;
YYY2=YYY1;
y22=y12;
z2=z1;
ZZZ2=ZZZ1;
z22=z12;
%画出桌脚点
x3=[x1,x2];
y3=[double(y1),double(y2)];
z3=[double(z1),double(z2)];
XXX3=[XXX1,XXX2];
YYY3=[YYY1,YYY2];
ZZZ3=[ZZZ1,ZZZ2];
%桌脚点和桌面边缘点
ddd=sqrt((YYY3-y3).^2+(ZZZ3-z3).^2);
   for j=1:size(ddd,2)
if ddd(j)<=5
    ddd(j)
    i                 %输出参数
    ganjinweiz
    w
    p
    chaochandu
    l1


end
    end

end

end

x4=[x1,x2,x12,x22];
y4=[y1,y2,y12,y22];
z4=[z1,z2,z12,z22];
%所有点坐标
y44=-y4;
x5=[x4(1,1:2*size(y,2)),x4(1,1:2*size(y,2)),x4(1,2*size(y,2)+1:4*size(y,2)),x4(1,2*size(y,2)+1:4*size(y,2))];
y5=[y4(1,1:2*size(y,2)),y44(1,1:2*size(y,2)),y4(1,2*size(y,2)+1:4*size(y,2)),y44(1,2*size(y,2)+1:4*size(y,2))];
z5=[z4(1,1:2*size(y,2)),z4(1,1:2*size(y,2)),z4(1,2*size(y,2)+1:4*size(y,2)),z4(1,2*size(y,2)+1:4*size(y,2))];
x6=x5';
y6=y5';
z6=z5';
w7=[x6,y6,z6];






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5