子程序:
function F=myfun(x,theta1,l1,l3,l4,h,h1,h2)
F=[l4*cosd(x(2))+x(1)*cosd(x(3))-l1*cosd(theta1)-h2;
l4*sind(x(2))+x(1)*sind(x(3))-l1*sind(theta1)-h1;
l4*cosd(x(2))+l3*cosd(x(3))-x(4);
l4*sind(x(2))+l3*sind(x(3))-h];
主程序:
theta1=0:360;
s3=0:360;
theta3=0:360;
theta4=0:360;
sc=0:360;
v3=0:360;
omega3=0:360;
omega4=0:360;
vc=0:360;
a3=0:360;
alpha3=0:360;
alpha4=0:360;
ac=0:360;
m=[0.5;0;70;0.47];
l1=160;
l3=960;
l4=input('Please input Lde ');
h=900;
h1=460;
h2=120;
for i=1:1:361
x = fsolve(@(x)
myfun(x,theta1(i),l1,l3,l4,h,h1,h2),[m(1);m(2);m(3);m(4)]);
m=x;
s3(i)=x(1);
theta4(i)=x(2);
theta3(i)=x(3);
sc(i)=x(4);
end
for i=1:1:361
V1=[cosd(theta3(i)) -l4*sind(theta4(i)) -s3(i)*sind(theta3(i)) 0; sind(theta3(i)) l4*cosd(theta4(i)) s3(i)*cosd(theta3(i)) 0;
0 -l4*sind(theta4(i)) -l3*sind(theta3(i)) -1;
0 l4*cosd(theta4(i)) l3*cosd(theta3(i)) 0];
V2=[-l1*sind(theta1(i));l1*cosd(theta1(i));0;0];