凸轮设计matlab交互式程序及论文Word格式文档下载.docx
- 文档编号:20613120
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:12
- 大小:549.11KB
凸轮设计matlab交互式程序及论文Word格式文档下载.docx
《凸轮设计matlab交互式程序及论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《凸轮设计matlab交互式程序及论文Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
1.设计模型
本次设计,采用偏心(也可调成对心)轮为模型,从动件为滚子。
如下图:
2.设计背景
1.运动划分
设定凸轮的推程分为
,凸轮的回程为正弦运动。
远近,休止为常量。
2.参数设置及运动方程的推导
设凸轮运动的加速运动推程角为
,减速运动推程角为
,远休止角为
,回程运动角为
,近休止角为
,给定变量角
。
设运动方程为:
根据运动方程,可求出个阶段的速度V及加速度a。
其中
则求解后数据如下:
3.原理解释
设滚子半径为s0,基圆半径为r,偏心距为e,转过的角度为x,以加速度推程为例
则有
s1=160*x.^2/pi/pi;
v1=320*handles.w*x/pi/pi;
x1=(s1+s0).*cos(x)-e*sin(x);
y1=(s0+s1).*sin(x)+e*cos(x);
n1=-(s1+s0).*sin(x)+(s0+v1-e).*cos(x);
m1=(s0+s1).*cos(x)+(s0+v1-e).*sin(x);
xt1=x1+(r*m1)./(sqrt(n1.^2+m1.^2));
yt1=y1-(r*n1)./sqrt(m1.^2+n1.^2);
则坐标xt1,yt1即为转过x角度的加速度推程段的坐标,打点连线即可出该阶段的轮廓线。
同理,即可编出其余阶段的坐标。
3.程序设计
1.设计理念
将远近休止角,推程角,回程角以及基圆半径,偏心距,角速度,滚子从动件半径均设为可调变量
2.设计步骤
设计Matlab交互式界面,其中偏心距,基圆半径,角速度,滚子从动件半径均为连续变量,由于元近休止角,推程角,回程角之和应为360度,为保证这一条件,将其设为手动输入变量。
建立四个画图界面,分别载入,凸轮实际工作曲线,从动件位移,速度,及加速度曲线。
如图:
各按钮函数如下:
对于连续调节的滚动条:
(以第一个为例)
functionslider1_Callback(hObject,eventdata,handles)
handles.s0=get(handles.slider1,'
value'
);
set(handles.texta,'
string'
num2str(handles.s0))
对于手动输入的数据框:
(同样以第一个为例)
functionedit1_Callback(hObject,eventdata,handles)
handles.o1=str2double(get(handles.edit12,'
));
通过字符间的转化,便可读取外界输入变量
将可调节变量handles声明,函数如下:
handles.output=hObject;
handles.r=get(handles.slider2,'
handles.e=get(handles.slider3,'
handles.w=get(handles.slider4,'
handles.o1=get(handles.edit12,'
handles.o2=get(handles.edit13,'
handles.o3=get(handles.edit14,'
handles.o4=get(handles.edit15,'
handles.o5=get(handles.edit16,'
jiao=0:
0.05:
2*pi;
xjiyuan=handles.r*cos(jiao);
yjiyuan=handles.r*sin(jiao);
xpianxinyuan=handles.e*cos(jiao);
ypianxinyuan=handles.e*sin(jiao);
xx=handles.o1*pi/180;
yy=handles.o2*pi/180+xx;
zz=handles.o3*pi/180+yy;
cc=handles.o4*pi/180+zz;
x=0:
xx;
s1=160*x.^2/pi/pi;
v1=320*handles.w*x/pi/pi;
a1=360*handles.w.^2/pi/pi;
j1=sqrt(handles.r.^2-handles.e.^2)+s1+handles.s0;
x1=(s1+handles.s0).*cos(x)-handles.e*sin(x);
y1=(handles.s0+s1).*sin(x)+handles.e*cos(x);
n1=-(s1+handles.s0).*sin(x)+(handles.s0+v1-handles.e).*cos(x);
m1=(handles.s0+s1).*cos(x)+(handles.s0+v1-handles.e).*sin(x);
xt1=x1+(handles.r*m1)./(sqrt(n1.^2+m1.^2));
yt1=y1-(handles.r*n1)./sqrt(m1.^2+n1.^2);
y=xx:
yy;
s2=(yy-xx).^2*160/pi/pi+160*xx.^2-160/pi/pi*(yy-y).^2;
v2=320/pi/pi*handles.w*(yy-y);
a2=-320*handles.w.^2/pi/pi;
j2=sqrt(handles.r.^2-handles.e.^2)+s2+handles.s0;
x2=(s2+handles.s0).*cos(y)-handles.e*sin(y);
y2=(handles.s0+s2).*sin(y)+handles.e*cos(y);
n2=-(s2+handles.s0).*sin(y)+(handles.s0+v2-handles.e).*cos(y);
m2=(handles.s0+s2).*cos(y)+(handles.s0+v2-handles.e).*sin(y);
xt2=x2+(handles.r*m2)./sqrt(m2.^2+n2.^2);
yt2=y2-(handles.r*n2)./sqrt(m2.^2+n2.^2);
z=yy:
zz;
s3=(yy-xx).^2*160/pi/pi+160*xx.^2;
v3=0;
a3=0;
j3=sqrt(handles.r.^2-handles.e.^2)+s3+handles.s0;
x3=(s3+handles.s0).*cos(z)-handles.e*sin(z);
y3=(handles.s0+s3).*sin(z)+handles.e*cos(z);
n3=-(s3+handles.s0).*sin(z)+(handles.s0+v3-handles.e).*cos(z);
m3=(handles.s0+s3).*cos(z)+(handles.s0+v3-handles.e).*sin(z);
xt3=x3+(handles.r*m3)./sqrt(m3.^2+n3.^2);
yt3=y3-(handles.r*n3)./sqrt(m3.^2+n3.^2);
c=zz:
cc;
s4=s3/2*(1+cos(pi*(c-zz)/(c-cc)));
v4=0-s3*pi./(c-cc)*handles.w*sin(pi*(c-zz)/(c-cc))/2;
a4=0-s3*pi.^2./(c-cc).^2*handles.w.^2*cos(pi*(c-zz)/(c-cc))/2;
j4=sqrt(handles.r.^2-handles.e.^2)+s4+handles.s0;
x4=(s4+handles.s0).*cos(c)-handles.e*sin(c);
y4=(s4+handles.s0).*sin(c)+handles.e*cos(c);
n4=-(s4+handles.s0).*sin(c)+(handles.s0+v4-handles.e).*cos(c);
m4=(handles.s0+s4).*cos(c)+(handles.s0+v4-handles.e).*sin(c);
xt4=x4+(handles.r*m4)./sqrt(m4.^2+n4.^2);
yt4=y4-(handles.r*n4)./sqrt(m4.^2+n4.^2);
d=cc:
s5=0;
v5=0;
a5=0;
j5=sqrt(handles.r.^2-handles.e.^2)+s5+handles.s0;
x5=(s5+handles.s0).*cos(d)-handles.e*sin(d);
y5=(handles.s0+s5).*sin(d)+handles.e*cos(d);
n5=-(s5+handles.s0).*sin(d)+(handles.s0+v5-handles.e).*cos(d);
m5=(handles.s0+s5).*cos(d)+(handles.s0+v5-handles.e).*sin(d);
xt5=x5+(handles.r*m5)./sqrt(m5.^2+n5.^2);
yt5=y5-(handles.r*n5)./sqrt(m5.^2+n5.^2);
axes(handles.axes1);
handles.hh=plot(xt1,yt1,'
g'
xt2,yt2,'
xt3,yt3,'
xt4,yt4,'
xt5,yt5,'
axes(handles.axes2);
handles.qq=plot(x,j1,'
y,j2,'
z,j3,'
c,j4,'
d,j5,'
axes(handles.axes3);
handles.pp=plot(x,v1,'
y,v2,'
z,v3,'
c,v4,'
d,v5,'
axes(handles.axes4);
handles.dd=plot(x,a1,'
y,a2,'
z,a3,'
c,a4,'
d,a5,'
运行后如图:
但是,调节远近休止角与回程角时,如果不满足加和为360度,或者未等上面参数调节就进行角度调节,容易造成死机现象。
现将程序调为给定远近休止等角度,改变滚子半径,基圆半径,偏心距及角速度,绘制四种曲线。
并且,为保证程序可靠运行,将r的最小值大于等于e的最大值。
相比之下,改程序运行更为简洁。
附加主程序如下:
pi/4;
y=pi/4:
pi/2;
s2=20-160/pi/pi*(pi/2-y).^2;
v2=320/pi/pi*handles.w*(pi/2-y);
z=pi/2:
10*pi/9;
s3=20;
c=10*pi/9:
14*pi/9;
s4=10*(1+cos(9/4*(c-10*pi/9)));
v4=-40/9*handles.w*sin(9/4*(c-10/9*pi));
a4=-160/81*handles.w.^2*cos(9/4*(c-10/pi*9));
d=14*pi/9:
运行界面如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 凸轮 设计 matlab 交互式 程序 论文