1、%delta 机械手运动学 正解 代码 syms x y z La=0.2; Lb=0.6; R=0.348; r= 0.1068; o1=input(请输入弧度制角 o1=); o2=input(请输入弧度制角 o1=); o3=input(请输入弧度制角 o3=); eq1=(R-r+La*cos(o1)-x)2+y2+(La*sin(o1)+z)2-Lb2; eq2=(-1/2*(R-r+La*cos(o2)-x)2+(1/2*sqrt(3)*(R-r+La*cos(o2)-y)2+(La*sin(o2)+z)2-Lb2; eq3=(-1/2*(R-r+La*cos(o3)-x)2+(-
2、1/2*sqrt(3)*(R-r+La*cos(o3)-y)2+(La*sin(o3)+z)2-Lb2; x,y,z=solve(eq1,eq2,eq3); x=vpa(x,5); y=vpa(y,5); z=vpa(z,5); for i=1:2 z(i); if z(i)=100000 disp(The program has not found solution!) else A1=(La-R+r)2+2*(x*cos(0)+y*sin(0)*(La-R+r)+(x2+y2+z2-Lb2); A2=(La-R+r)2+2*(x*cos(2*pi/3)+y*sin(2*pi/3)*(La-
3、R+r)+(x2+y2+z2-Lb2); A3=(La-R+r)2+2*(x*cos(4*pi/3)+y*sin(4*pi/3)*(La-R+r)+(x2+y2+z2-Lb2); B=4*La*z; C1=(La+R-r)2-2*(La+R-r)2*(x*cos(0)+y*sin(0)+(x2+y2+z2-Lb2); C2=(La+R-r)2-2*(La+R-r)2*(x*cos(2*pi/3)+y*sin(2*pi/3)+(x2+y2+z2-Lb2); C3=(La+R-r)2-2*(La+R-r)2*(x*cos(4*pi/3)+y*sin(4*pi/3)+(x2+y2+z2-Lb2);
4、t11=(-B-sqrt(B2-4*A1*C1); t11=(-B-sqrt(B2-4*A1*C1)/(2*A1); t12=(-B+sqrt(B2-4*A1*C1)/(2*A1); t21=(-B-sqrt(B2-4*A2*C2)/(2*A2); t22=(-B+sqrt(B2-4*A2*C2)/(2*A2); t31=(-B-sqrt(B2-4*A3*C3)/(2*A3); t32=(-B+sqrt(B2-4*A3*C3)/(2*A3); o11=2*atan(t11); o12=2*atan(t12); o21=2*atan(t21); o22=2*atan(t22); o31=2*at
5、an(t31); o32=2*atan(t32); end end a=o11 o12 ; b=o21 o22; c=o31 o32; for i=1:2 if abs(a(i)pi/2 x=o(i) else disp( ) end end for i=1:2 if abs(b(i)pi/2 y=o(i) else disp( ) end end for i=1:2 if abs(c(i)pi/2 z=o(i) else disp( ) end end %数值计算法求积分方程的特解 f(t) = e|sin(t)|和 s(x) = f(t)40 dt t=0.05; t=0:dt:4; Ft=exp(-abs(sin(t);%Ft 数组与自变量数组有相同数目的 元素 , Ft 数组的元素值就是 t 数组相应位置的函数值 f( t) Sx=dt*cumtrapz(Ft);% plot(t,Ft,*r,MarkerSize,4)%Sx 数组 与自变量有相同数目的元素, Sx 数组的元素给出与 t 数组采样点对应的积分值 hold on plot(t,Sx,.k,MarkerSize,6) hold off xlabel(x) legend(Ft,Sx)