用matlab绘制凸轮教程(详细)

更新时间:2023-04-22 02:16:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

首先看一下理论轮廓线的方程式

X=(S0+S1)sinθ+ ecosθ

Y= (S0+S1) cosθ+ esinθ

式中,e为偏心距,S0=sqrt(r0^2-e^2),r0为偏心圆半径

%先设置凸轮的基本参数,偏心距离e,基圆半径rb,滚轮半径rr,角速度w,推杆上升的最大行程h。

h=30;w=12;rb=50;e=12;rr=10;s0=sqrt(rb*rb-e*e);% 偏心距e=12,基圆rb=50,滚轮半径rr=10,角速度w=12,最大上升h=30

q=120*pi/180;%这里我规定推程运动角为120度

qs=(120+30)*pi/180;%远休止角为150度

q1=(120+30+150)*pi/180;%回程运动角为300度

for i=1:1:120 %将120度按1度均分,从而得到各个度数上的轮廓坐标

qq(i)=i*pi/180.0;

s1=(h*qq(i)/q)-(h/(2*pi))*sin(2*pi*qq(i)/q);

v1=w*(h/q)-(w*h/q)*cos(2*pi*qq(i)/q);

x(i)=(s0+s1)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s1)*cos(qq(i))-e*sin(qq(i));%理论轮廓线的坐标

a(i)=(s0+s1)*cos(qq(i))-e*sin(qq(i)); %cos(i)

b(i)=(s0+s1)*sin(qq(i))-e*cos(qq(i)); %sin(i)

xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i));%实际工作轮廓线的坐标

end

for i=121:1:150

qq(i)=i*pi/180;

s2=h;v2=0;

x(i)=(s0+s2)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s2)*cos(qq(i))-e*sin(qq(i));

a(i)=(s0+s2)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+s2)*sin(qq(i))-e*cos(qq(i));

xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i)); end

for i=151:1:300

qq(i)=i*pi/180;qq1(i)=qq(i)-150*pi/180;

s3=h-h*qq1(i)/(q1-qs);v3=-w*h/(q1-qs);

x(i)=(s0+s3)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+s3)*cos(qq(i))-e*sin(qq(i));

a(i)=(s0+s3)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+s3)*sin(qq(i))-e*cos(qq(i));

xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i)); end

for i=301:1:360

qq(i)=i*pi/180;

x(i)=(s0+0)*sin(qq(i))+e*cos(qq(i));y(i)=(s0+0)*cos(qq(i))-e*sin(qq(i));

a(i)=(s0+0)*cos(qq(i))-e*sin(qq(i));b(i)=(s0+0)*sin(qq(i))-e*cos(qq(i));

xx(i)=x(i)+rr*b(i)/sqrt(a(i)*a(i)+b(i)*b(i));yy(i)=y(i)+rr*a(i)/sqrt(a(i)*a(i)+b(i)*b(i)); end

plot(x,y,'r',xx,yy,'g')%用plot函数绘制曲线

text(0,20,'理论轮廓线')%理论轮廓线的坐标位于为(0,20) text(65,40,'实际轮廓线')%实际轮廓线的坐标位于(65,40) hold on 附图:

本文来源:https://www.bwwdw.com/article/llfq.html

Top