凸轮的matlab绘制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
附2:习题4-3解答
(1)凸轮的理论廓线方程:
000()sin cos ()cos sin x s s e y s s e s ϕϕϕϕ=++⎧⎨
=+-⎩=式中 (2)从动件在不同阶段的位移方程:
2sin()[0,120]230[120,150][150,300]'0
[300,360]
h h s h h πϕϕϕφπφϕϕϕφϕ⎧-∈︒︒⎪⎪∈︒︒⎪=⎨
⎪-∈︒︒⎪⎪∈︒︒⎩推程阶段远休止阶段回程阶段近休止阶段
(3)求解凸轮的实际廓线:
a r a r 00x =x-r cos y =y-r sin sin cos ()cos sin sin ()sin cos cos dx dy dx
ds s s e d d dy ds s s e d d θθ
θθϕϕϕϕϕϕϕϕϕϕ⎧⎨
⎩⎧
⎪=⎪⎪⎪⎪⎪
⎨
⎪-
⎪=⎪⎪
⎪
⎪⎩
⎧=++-⎪⎪
⎨
⎪=++-⎪⎩
式中而
同样,由于位移s 与从动件所处的运动阶段有关,所以有:
2cos()[0,120]0[120,150]s [150,300]'0
[300,360]
h h
d h
d πϕϕφφφϕϕϕφϕ⎧-∈︒︒⎪⎪∈︒︒⎪=⎨⎪∈︒︒⎪⎪∈︒︒⎩推程阶段远休止阶段回程阶段近休止阶段
(4)代入已知条件,并用Matlab 语言编程求解,编程代码如下: disp ' ******** 偏置直动滚子从动件盘形凸轮设计 ********' disp '已知条件:'
disp ' 凸轮作逆时针方向转动,从动件偏置在凸轮轴心的右边'
disp ' 从动件在推程作摆线运动规律运动,在回程作等速运动规律运动' ro = 50;rr = 10;e = 12;h = 30;ft = 120;fs = 30;fh = 150;
fprintf (1,' 基圆半径 ro = %3.4f mm \n',ro) fprintf (1,' 滚子半径 rr = %3.4f mm \n',rr) fprintf (1,' 推杆偏距 e = %3.4f mm \n',e) fprintf (1,' 推程行程 h = %3.4f mm \n',h) fprintf (1,' 推程运动角 ft = %3.4f 度 \n',ft) fprintf (1,' 远休止角 fs = %3.4f 度 \n',fs) fprintf (1,' 回程运动角 fh = %3.4f 度 \n',fh) hd = pi / 180;du = 180 / pi; so = sqrt( ro^2 - e^2 ); d1 = ft + fs;d2 = ft + fs + fh; disp ' '
disp '计算过程和输出结果:'
disp ' 1-1 推程(摆线运动规律运动)' s = zeros(ft);ds = zeros(ft);d2s = zeros(ft); for f = 1 : ft
s(f) = h * f / ft - h * sin(2 * pi * f / ft) / (2 * pi);s = s(f);
ds(f) = h / (ft * hd) - h / (ft * hd) * cos(2 * pi * f / ft);ds = ds(f); d2s(f) = 2 * pi * h / (ft * hd) ^ 2 * sin(2 * pi * f / ft);d2s = d2s(f); end
disp ' 1-2 回程(等速运动规律运动)' s = zeros(fh);ds = zeros(fh);d2s = zeros(fh); for f = d1 : d2
s(f) = h - h * (f-150) / fh; s = s(f); ds(f) = - h / (fh * hd);ds = ds(f); d2s(f) = 0;d2s = d2s(f); end
disp ' 2- 计算凸轮理论廓线与实际廓线的直角坐标'
n = 360;
s = zeros(n);ds = zeros(n);r = zeros(n);rp = zeros(n);
x = zeros(n);y = zeros(n);dx = zeros(n);dy = zeros(n);
xx = zeros(n);yy = zeros(n);xa = zeros(n);ya = zeros(n);
xxa = zeros(n);yya = zeros(n);
for f = 1 : n
if f <= ft
s(f) = h * f / ft - h * sin(2 * pi * f / ft) / (2 * pi);s = s(f);
ds(f) = h /(ft * hd) - h / (ft * hd) * cos(2 * pi * f / ft); ds = ds(f);
elseif f > ft & f <= d1
s = h;ds = 0;
elseif f > d1 & f <= d2
s(f) = h - h * (f-150) / fh; s = s(f);
ds(f) = - h / (fh * hd);ds = ds(f);
elseif f > d2 & f <= n
s = 0;ds = 0;
end
xx(f) = (so + s) * sin(f * hd) + e * cos(f * hd); x = xx(f);
yy(f) = (so + s) * cos(f * hd) - e * sin(f * hd); y = yy(f);
dx(f) = (ds - e) * sin(f * hd) + (so + s) * cos(f * hd); dx = dx(f);
dy(f) = (ds - e) * cos(f * hd) - (so + s) * sin(f * hd); dy = dy(f);
xxa(f) = x + rr * dy / sqrt(dx ^ 2 + dy ^ 2);xa = xxa(f);
yya(f) = y - rr * dx / sqrt(dx ^ 2 + dy ^ 2);ya = yya(f);
r(f) = sqrt (x ^2 + y ^2 );
rp(f) = sqrt (xa ^2 + ya ^2 );
end
disp ' 2-1 推程(摆线运动规律运动)'
disp ' 凸轮转角理论x 理论y 实际x 实际y' for f = 10 : 10 :ft
nu = [f xx(f) yy(f) xxa(f) yya(f)];
disp(nu)
end
disp ' 2-2 回程(等速运动规律运动)'
disp ' 凸轮转角理论x 理论y 实际x 实际y' for f = d1 : 10 : d2
nu = [f xx(f) yy(f) xxa(f) yya(f)];
disp(nu)
end
disp ' 2-3 凸轮轮廓向径'
disp ' 凸轮转角理论r 实际r'
for f = 10 : 10 : n
nu = [f r(f) rp(f)];
disp(nu)
end