凸轮的matlab绘制

  • 格式:doc
  • 大小:97.50 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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