我在matlab中的运动控制有问题 想象一下像这样的四杆连杆机构。如你所知,在普通的4杆连杆中,我们有2个固定点,但这里我们只有一个和一个。第二个它固定在一个小齿轮(小齿轮)。我们有齿轮的比例所以我们有teta1和amp;之间的关系。 teta2 teta2 = 5 * teta1(机制可以在第一个固定点旋转)
我曾经为运动控制编写这段代码,但是当我运行它时图形不正确(因为它们应该是linke sin或cos图形)
d(n)是用于求解方程的辅助矢量 如果您还有其他问题,请询问
这是代码:
clc,
close all,
clear all,
ax=0;
ay=0;
r1=12;
r2=7;
r3=9;
r4=5;
n=0;
for teta1=0:pi/180:2*pi
n=n+1;
D = r1*exp(i*teta1)-r2*exp(i*5*teta1);
tetad(n) = angle(D);
d(n) = abs(D);
landa(n)=acos((d(n)^2+(r3)^2-(r4)^2)/(2*d(n)*r3));
alfa(n)=acos((d(n)^2+(r4)^2-(r3)^2)/(2*d(n)*r4));
teta3(n)=landa(n)+tetad(n);
teta4(n)=(+pi-alfa(n)+tetad(n));
end
aa(n)=teta1*180/pi;
hh(n)=tetad(n)*180/pi;
bb(n)=landa(n)*180/pi;
cc(n)=alfa(n)*180/pi;
nn(n)=teta3(n)*180/pi;
dd(n)=5*teta1*180/pi;
ee(n)=teta4(n)*180/pi;
figure(1),plot(aa,hh),xlabel('teta1'),ylabel('tetad');
figure(2),plot(aa,d),xlabel('teta1'),ylabel('d');
figure(3),plot(aa,bb),xlabel('teta1'),ylabel('landa');
figure(4),plot(aa,cc),xlabel('teta1'),ylabel('alfa');
figure(5),plot(aa,nn),xlabel('teta1'),ylabel('teta3');
figure(6),plot(aa,dd),xlabel('teta1'),ylabel('5*teta1');
figure(7),plot(aa,ee),xlabel('teta1'),ylabel('teta4');
答案 0 :(得分:0)
我不知道你在这里要解决的是什么,但是你可能想要将你的for循环的end
向下移动几行,所以你绘制的向量包含所有值而不仅仅是最后一行之一。