查看单个帖子
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 使用MATLAB进行问题即时运动控制

我在matlab的运动控制中遇到问题,想象一下这样的四连杆机构。如您所知,在普通的四连杆机构中,我们有2个固定点,但在这里我们只有一个&第二个固定在小齿轮上(小齿轮比。因此我们有teta1&teta2 teta2 = 5 * teta1之间的关系(机构可以在第一个固定点旋转)

我曾经为运动控制编写此代码,但是当我运行它时,图形不正确(因为它们应该是链接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');

回答:

我不知道您要在这里解决什么,但是您可能想将for循环的end向下移动几行,因此绘制的向量不仅包含最后一个值,还包含所有值。



更多&回答...
poster 当前离线   回复时引用此帖