主题:[讨论]求教
clear all;clc;
syms A1 A2 A3 A4
a=200;b=100;c=200;d=150;e=135;h=75; %杆0A长度为a,0B长度为b,CD长度为c,杆EQ=FK=d,杆MN=e,LN=h;
k=200;s=225;l=350; %动平台底边KQ=k,两腰PK=PQ=s,杆LP=l;
L10=200;L20=200;L30=400;L40=400; %四个输入移动副的初始位移分别为L10、L20、L30、L40;
w=0*pi/180; %动作标参考点P绕x轴旋转角α;
v=0*pi/180; %动作标参考点P绕x轴旋转角γ;
%*************************************************%
%第一步,找出满足杆长条件约束的点
%*************************************************%
for y=0:10:1200 %y循环次数
for z=-600:10:800 %z循环次数
S=sqrt(s^2-k^2/4);
B1=l^2-z^2;
B2=e^2-(h*z/l+b)^2;
B3=d^2-(z+a-s*cos(w))^2-(-(k*cos(v))/2-s*sin(v)*sin(w)+c/2)^2;
B4=d^2-(z+a-s*cos(w))^2-((k*cos(v))/2-s*sin(v)*sin(w)-c/2)^2;
if (B1>=0)&(B2>=0)&(B3>=0)&(B4>=0)
A1=y-L10-sqrt(B1);
A2=h*(y-L10-A1)/l-sqrt(B2)-L20+L10+A1;
A3=S*cos(v)*sin(w)+y-sqrt(B3)-L30;
A4=S*cos(v)*sin(w)+y-sqrt(B4)-L40;
else
continue;
end
P=[0;0;0];
A=[0;0;0];
B=[0;0;-b];
C=[-c/2;0;-a];
D=[c/2;0;-a];
E=[-c/2;L30+A3;-a]
F=[c/2;L40+A4;-a]
L=[0;L10+A1;0]
M=[0;L20+A2;-b]
N=[0;h*y+(l-h)*L10+(l-h)*A1/l;h*z/l]
K=[k*cos(v)/2-sqrt(s^2-k^2/4)*sin(v)*sin(w);y+sqrt(s^2-k^2/4)*cos(v)*sin(w);z-sqrt(s^2-k^2/4)*cos(w)]
Q=[-k*cos(v)/2-sqrt(s^2-k^2/4)*sin(v)*sin(w);y+sqrt(s^2-k^2/4)*cos(v)*sin(w);z-sqrt(s^2-k^2/4)*cos(w)]
a1=norm(L-A)
a2=norm(M-B)
c1=norm(P-L)
c2=norm(N-M)
d1=norm(E-C)
d2=norm(F-D)
e1=norm(Q-E)
e2=norm(K-F)
b1=acos(dot(a1,c1));
b2=acos(dot(a2,c2));
b3=acos(dot(d1,e1));
b4=acos(dot(d2,e2));
b1min=90*pi/180;
b2min=90*pi/180;b2max=135*pi/180;
b3min=0*pi/180;b3max=30*pi/180;
b4min=0*pi/180;b4max=30*pi/180;
if (abs(A1)<=200)&(abs(A2)<=200)&(abs(A3)<=200)&(abs(A4)<=200)&(b1>b1min)&(b2>b2min)&(b2<b2max)&(b3>=b3min)&(b3<=b3max)&(b4>=b4min)&(b4<=b4max)
plot(y,z,'.');hold on;
end
end
end
画不出图,提示:devide by zeros
找不出程序中哪里输出零参数了,寻求高手帮忙找一下,万分感谢!!
syms A1 A2 A3 A4
a=200;b=100;c=200;d=150;e=135;h=75; %杆0A长度为a,0B长度为b,CD长度为c,杆EQ=FK=d,杆MN=e,LN=h;
k=200;s=225;l=350; %动平台底边KQ=k,两腰PK=PQ=s,杆LP=l;
L10=200;L20=200;L30=400;L40=400; %四个输入移动副的初始位移分别为L10、L20、L30、L40;
w=0*pi/180; %动作标参考点P绕x轴旋转角α;
v=0*pi/180; %动作标参考点P绕x轴旋转角γ;
%*************************************************%
%第一步,找出满足杆长条件约束的点
%*************************************************%
for y=0:10:1200 %y循环次数
for z=-600:10:800 %z循环次数
S=sqrt(s^2-k^2/4);
B1=l^2-z^2;
B2=e^2-(h*z/l+b)^2;
B3=d^2-(z+a-s*cos(w))^2-(-(k*cos(v))/2-s*sin(v)*sin(w)+c/2)^2;
B4=d^2-(z+a-s*cos(w))^2-((k*cos(v))/2-s*sin(v)*sin(w)-c/2)^2;
if (B1>=0)&(B2>=0)&(B3>=0)&(B4>=0)
A1=y-L10-sqrt(B1);
A2=h*(y-L10-A1)/l-sqrt(B2)-L20+L10+A1;
A3=S*cos(v)*sin(w)+y-sqrt(B3)-L30;
A4=S*cos(v)*sin(w)+y-sqrt(B4)-L40;
else
continue;
end
P=[0;0;0];
A=[0;0;0];
B=[0;0;-b];
C=[-c/2;0;-a];
D=[c/2;0;-a];
E=[-c/2;L30+A3;-a]
F=[c/2;L40+A4;-a]
L=[0;L10+A1;0]
M=[0;L20+A2;-b]
N=[0;h*y+(l-h)*L10+(l-h)*A1/l;h*z/l]
K=[k*cos(v)/2-sqrt(s^2-k^2/4)*sin(v)*sin(w);y+sqrt(s^2-k^2/4)*cos(v)*sin(w);z-sqrt(s^2-k^2/4)*cos(w)]
Q=[-k*cos(v)/2-sqrt(s^2-k^2/4)*sin(v)*sin(w);y+sqrt(s^2-k^2/4)*cos(v)*sin(w);z-sqrt(s^2-k^2/4)*cos(w)]
a1=norm(L-A)
a2=norm(M-B)
c1=norm(P-L)
c2=norm(N-M)
d1=norm(E-C)
d2=norm(F-D)
e1=norm(Q-E)
e2=norm(K-F)
b1=acos(dot(a1,c1));
b2=acos(dot(a2,c2));
b3=acos(dot(d1,e1));
b4=acos(dot(d2,e2));
b1min=90*pi/180;
b2min=90*pi/180;b2max=135*pi/180;
b3min=0*pi/180;b3max=30*pi/180;
b4min=0*pi/180;b4max=30*pi/180;
if (abs(A1)<=200)&(abs(A2)<=200)&(abs(A3)<=200)&(abs(A4)<=200)&(b1>b1min)&(b2>b2min)&(b2<b2max)&(b3>=b3min)&(b3<=b3max)&(b4>=b4min)&(b4<=b4max)
plot(y,z,'.');hold on;
end
end
end
画不出图,提示:devide by zeros
找不出程序中哪里输出零参数了,寻求高手帮忙找一下,万分感谢!!