凸轮与从动件机构分析
1. 引言
凸轮与从动件机构是机械系统中常见的组成部分,它能将凸轮的旋转运动转化为从动件的特定运动。本文将对一个平面凸轮机构进行运动学和力学分析,同时介绍等效连杆机构和微分方法的应用,并给出相关的MATLAB代码和数值结果。
2. 凸轮机构介绍
考虑的平面凸轮机构中,凸轮1为驱动件,具有特定轮廓,使从动件2产生特定运动。从动件在垂直于凸轮轴旋转轴的平面内运动,其接触端有半径为$R_f$的半圆形区域,可由滚子替代。凸轮轮廓为半径$R_c$、中心在$O$的圆,通过转动副与地面在$A$点相连。从动件2做垂直平移运动,与固定点$A$的垂直距离为$e$,当$e = 0$时为径向凸轮 - 从动件机构,否则为偏置凸轮 - 从动件机构。
已知数值数据如下:
|参数|数值|
| ---- | ---- |
|$OP = R_c$|$0.1 m$|
|$e$|$0.04 m$|
|$AO = RO$|$0.5R_c$|
|$R_f$|$0.0025 m$|
|$n$|$30 rpm$|
|$L_f$|$0.15 m$|
|$w$|$2R_f$|
|$d$|$0.01 m$|
|$\rho$|$8000 kg/m^3$|
分析在$\varphi = \pi/3 = 60^{\circ}$时进行,此时有大小为$F_e = 100 N$的外力作用于从动件,重力加速度$g = 9.807 m/s^2$。在点$C$处,凸轮轮廓有法向单位向量$n$和切向单位向量$t$,凸轮轮廓法线与从动件的夹角为压力角$\alpha$,推荐$\alpha < \pi/3$。
3. 运动学分析
3.1 位置分析
选取参考系$xy$的原点在关节$A$处。凸轮1中心$O$的位置计算如下:
$x_O = AO \cos \varphi = R_O \cos \varphi$
$y_O = AO \sin \varphi = R_O \sin \varphi$
线段$OC$与水平方向的夹角$\psi$为:
$\psi = \arccos \frac{e - x_O}{R}$,其中$R = R_c + R_f$
点$C$的位置为:
$x_C = e$
$y_C = y_O + R \sin \psi$,$r_C = x_C \mathbf{i} + y_C \mathbf{j}$
以下是计算机构位置的MATLAB代码:
% revolute joint at A = O1
Rc = 0.1; % (m) radius of the circle of the cam
e = 0.04; % (m) distance from follower to A
RO = 0.5*Rc; % AO = RO
Rf = 0.0025; % (m)
Lf = 0.15; % (m) length of the follower
w = 2*Rf; % width of the follower
d = 0.01; % (m) depth of the cam and follower
rho = 8000; % (kg/m^3) density of the material
g = 9.807; % (m/s^2) gravitational acceleration
Fe = 100; % (N) external force on follower
% radius OC
R = Rc + Rf;
phi = pi/3;
% position of O = Oc (rO_ = AO_)
xO = RO*cos(phi);
yO = RO*sin(phi);
rO_ = [xO, yO , 0];
psi = acos((e-xO)/R); % angle between OC and x-axis
% position of C (rC_ = AC_)
xC = e;
yC = yO+R*sin(psi) ;
rC_ = [xC, yC, 0];
% Graphic of the mechanism
axis manual
axis equal
hold on
grid on
ds = .25;
axis([-ds ds -ds ds])
xlabel('x (m)'),ylabel('y (m)')
plot([0,xO],[0,yO],'k-o',[xO,xC],[yO,yC],'b-o',...
[0,xC],[0,yC],'g-o',[xC,xC],[yC,yC+Lf],'r-')
hold on
ang = 0:0.01:2*pi;
xp = R*cos(ang);
yp = R*sin(ang);
ci = plot(xO+xp,yO+yp,'k--');
xm = Rc*cos(ang);
ym = Rc*sin(ang);
cm = plot(xO+xm,yO+ym,'k-');
pivot0_scale = 0.005;
plot_pivot0(0,0,pivot0_scale,0);
plot_wall(xC-.005,.2,.05,0);
plot_wall(xC+.005,.2,.05,pi);
text(0,0,' A')
text(xO,yO,' O')
text(xC,yC+.005,' C')
位置分析的数值结果为:
|参数|数值|
| ---- | ---- |
|$\varphi$|$60.000^{\circ}$|
|$r_O$|$[ 0.025, 0.043,0] (m)$|
|$\psi$|$81.585^{\circ}$|
|$r_C$|$[ 0.040, 0.145,0] (m)$|
3.2 速度和加速度分析
凸轮的角速度$\omega_1 = \omega_1 \mathbf{k} = \frac{\pi n}{30} \mathbf{k} \ rad/s$,角加速度$\alpha_1 = \frac{d \omega_1}{dt} = 0$。点$C_1$在凸轮上的速度和加速度分别为:
$v_{C1} = v_A + \omega_1 \times r_C$
$a_{C1} = a_A + \alpha_1 \times r_C - \omega_1^2 r_C$
以下是计算$C_1$速度和加速度的MATLAB代码:
n = 30; % (rpm) driver link
omega1_ = [0 0 pi*n/30];
alpha1_ = [0 0 0];
vA_ = [0 0 0];
aA_ = [0 0 0];
vC1_ = vA_ + cross(omega1_,rC_);
aC1_ = aA_ + cross(alpha1_,rC_) - dot(omega1_,omega1_)*rC_;
结果为:
|参数|数值|
| ---- | ---- |
|$v_{C1}$|$[-0.455, 0.126,0] (m/s)$|
|$a_{C1}$|$[-0.395,-1.428,0] (m/s^2)$|
从动件2上点$C_2$的速度平行于垂直滑动方向,即$v_{C2} = v_{C2} \mathbf{j}$,且$v_{C2} = v_{C1} + v_{C21}$,其中相对速度$v_{C21} = v_{C21} \mathbf{t}$,切向单位向量$\mathbf{t} = -\sin \psi \mathbf{i} + \cos \psi \mathbf{j}$,法向单位向量$\mathbf{n} = -\cos \psi \mathbf{i} - \sin \psi \mathbf{j}$。
通过向量方程$v_{C2} \mathbf{j} = v_{C1} + v_{C21} \mathbf{t}$投影到笛卡尔轴得到两个标量方程,求解未知量$v_{C2}$和$v_{C21}$。以下是计算$C_2$速度的MATLAB代码:
n_ = [-cos(psi), -sin(psi), 0];
t_ = [-sin(psi), cos(psi), 0];
vC2 = sym('vC2','real'); % vC2 unknown
vC21 = sym('vC21','real'); % vC21 unknown
vC2_ = [0, vC2, 0]; % parallel to the vertical sliding direction
vC21_ = vC21*t_; % parallel to the common tangent
eqvC = vC2_ - (vC1_ + vC21_);
eqvCx = eqvC(1); % equation component on x-axis
eqvCy = eqvC(2); % equation component on y-axis
solvC = solve(eqvCx,eqvCy);
vC2s = eval(solvC.vC2);
vC21s = eval(solvC.vC21);
vC2_ = [0, vC2s, 0];
vC21_ = vC21s*t_;
数值结果为:
|参数|数值|
| ---- | ---- |
|$v_{C2}$|$[0, 0.058, 0] (m/s)$|
|$v_{C21}$|$[0.455,-0.067, 0] (m/s)$|
从动件2上点$C_2$的加速度平行于垂直滑动方向,即$a_{C2} = a_{C2} \mathbf{j}$,且$a_{C2} = a_{C1} + a_{C21}^c + a_{C21}$,其中科里奥利加速度$a_{C21}^c = 2 \omega_1 \times v_{C21}$,相对加速度$a_{C21} = a_{C21}^n \mathbf{n} + a_{C21}^t \mathbf{t}$,相对法向加速度$a_{C21}^n = \frac{v_{C21}^2}{R}$。
通过相关方程求解未知量$a_{C2}$和$a_{C21}^t$。以下是计算加速度的MATLAB代码:
aC21cor_ = 2*cross(omega1_, vC21_);
aC21n_ = (dot(vC21_, vC21_)/R)*n_;
aC2 = sym('aC2','real'); % aC2 unknown
aC21t = sym('aC21t','real'); % aC21t unknown
aC2_ = [0, aC2, 0]; % aC2 parallel to sliding direction y axis
aC21t_ = aC21t*t_; % aC21t_ parallel to the common tangent
eqaC = aC2_ - (aC1_ + aC21n_ + aC21t_ + aC21cor_);
eqaCx = eqaC(1); % equation component on x-axis
eqaCy = eqaC(2); % equation component on y-axis
solaC = solve(eqaCx,eqaCy);
aC2s = eval(solaC.aC2);
aC21ts = eval(solaC.aC21t);
aC2_ = [0, aC2s, 0];
aC21t_ = aC21ts*t_;
数值结果为:
|参数|数值|
| ---- | ---- |
|$a_{C21}^c$|$[0.423, 2.856, 0] (m/s^2)$|
|$a_{C21}^n$|$[-0.301, -2.038, 0] (m/s^2)$|
|$a_{C2}$|$[0, -0.650, 0] (m/s^2)$|
|$a_{C21}^t$|$[0.274, -0.040, 0] (m/s^2)$|
4. 力学分析
作用在从动件上的外力$F_e = -F_e \mathbf{j}$,从动件的质量$m_2 = \rho L_f w d + \rho \frac{\pi R_f^2}{2} d$,重量$G_2 = -m_2 g \mathbf{j}$。连杆1对连杆2的反作用力$F_{12} = F_{12} \cos \psi \mathbf{i} + F_{12} \sin \psi \mathbf{j}$,地面0对连杆2的反作用力$F_{02} = F_{02} \mathbf{i}$。
从动件的牛顿运动方程为:
$m_2 a_{C2} = F_{02} + F_{12} + F_e + G_2$
以下是计算从动件相关力的MATLAB代码:
Fe_ = [0, -Fe, 0];
m2 = rho*Lf*w*d + rho*(pi*Rf^2/2)*d;
G2_ = [0, -m2*g, 0];
F02 = sym('F02','real');
F12 = sym('F12','real');
F02_ = [F02, 0, 0];
F12_ = [F12*cos(psi), F12*sin(psi),0];
% m2*aC2_ = F02_ + F12_ + G2_ + Fe_
eqF2 = F02_ + F12_ + G2_ + Fe_ - m2*aC2_;
solF2 = solve(eqF2(1),eqF2(2));
F02s = eval(solF2.F02);
F12s = eval(solF2.F12);
F12_ = [F12s*cos(psi), F12s*sin(psi),0];
结果为:
|参数|数值|
| ---- | ---- |
|$m_2$|$0.0608 kg$|
|$F_{02}$|$-14.876 N$|
|$F_{12}$|$101.651 N$|
|$F_{12}$|$[14.876, 100.557, 0] (N)$|
旋转凸轮1的运动方程为:
$I_A \alpha_1 = M_m + r_O \times G_1 + r_P \times F_{21}$
其中$I_A$是凸轮绕固定点$A$的质量惯性矩,$\alpha_1 = 0$,$F_{21} = -F_{12}$,$G_1 = -m_1 g \mathbf{j}$,$m_1 = \rho \pi R_c^2 d$是凸轮的质量,$r_P = r_{AP}$是接触点$P$的位置向量。动态平衡力矩$M_m = -r_O \times G_1 - r_P \times F_{21}$。
以下是计算凸轮相关力矩的MATLAB代码:
m1 = rho*pi*Rc^2*d;
G1_ = [0, -m1*g, 0];
% IA*alpha1_ = Mm_+rO_xG1_+rP_xF21_
% P contact point between the cam and follower
xP = e - Rf*cos(psi);
yP = yO + Rc*sin(psi);
rP_ = [xP, yP, 0];
Mm_ = -cross(rO_, G1_)-cross(rP_, -F12_);
结果为:
|参数|数值|
| ---- | ---- |
|$m_1$|$2.5133 kg$|
|$M_m$|$2.4860 (N m)$|
5. 等效连杆机构
从动件和凸轮之间的二自由度关节可运动学等效为两个单自由度关节和一个连杆。凸轮关节可由在$O$和$C$点的两个全关节(单自由度关节)和连杆3替代。
点$O$的速度和加速度为:
$v_O = v_A + \omega_1 \times r_O$
$a_O = a_A + \alpha_1 \times r_O - \omega_1^2 r_O$
点$C = C_3$的速度和加速度为:
$v_C = v_{C3} = v_O + \omega_3 \times r_{OC}$
$a_C = a_{C3} = a_O + \alpha_3 \times r_{OC} - \omega_3^2 r_{OC}$
以下是计算等效连杆机构相关参数的MATLAB代码:
n = 30; % (rpm) driver link
omega1_ = [ 0 0 pi*n/30 ];
alpha1_ = [0 0 0 ];
vA_ = [0 0 0 ];
aA_ = [0 0 0 ];
vO_ = vA_ + cross(omega1_,rO_);
aO_ = aA_ + cross(alpha1_,rO_) - dot(omega1_,omega1_)*rO_;
% or
aO_ = aA_ + cross(alpha1_,rO_) +...
cross(omega1_,cross(omega1_,rO_));
vC = sym('vC','real'); % vC2 unknown
omega3 = sym('omega3','real'); % omega3 unknown
% vC2 || yy
vC2_ = [0,vC,0];
omega3_ = [0,0,omega3];
% vC3_ = vO_ + omega3_ x OC_
vC3_ = vO_+cross(omega3_,rC_-rO_);
% vC_=vC2_=vC3_
eqvC = vC2_ - vC3_;
eqvCx = eqvC(1); % equation component on x-axis
eqvCy = eqvC(2); % equation component on y-axis
solvC = solve(eqvCx,eqvCy);
vCs = eval(solvC.vC);
omega3s = eval(solvC.omega3);
vC_ = [0,vCs,0];
omega3_ = [0,0,omega3s];
aC = sym('aC','real'); % aC2 unknown
alpha3 = sym('alpha3','real'); % alpha3 unknown
% vC2 || yy
aC2_ = [0,aC,0];
alpha3_ = [0,0,alpha3];
% aC3_ = aO_ + alpha3_ x OC_ - omega3^2 OC_
aC3_ = aO_+cross(alpha3_,rC_-rO_)-dot(omega3_,omega3_)*(rC_-rO_);
eqaC = aC2_ - aC3_;
eqaCx = eqaC(1); % equation component on x-axis
eqaCy = eqaC(2); % equation component on y-axis
solaC = solve(eqaCx,eqaCy);
aCs = eval(solaC.aC);
alpha3s = eval(solaC.alpha3);
aC_ = [0,aCs,0];
alpha3_ = [0,0,alpha3s];
结果为:
|参数|数值|
| ---- | ---- |
|$v_C$|$[0, 0.058,0] (m/s)$|
|$\omega_3$|$[0,0,-1.342] (rad/s)$|
|$a_C$|$[0,-0.650,0] (m/s^2)$|
|$\alpha_3$|$[0,0,-2.700] (rad/s^2)$|
6. 微分方法
中心$O$的位置为:
$x_O(t) = x_A + AO \cos \varphi(t) = AO \cos \varphi(t)$
$y_O(t) = y_A + AO \sin \varphi(t) = AO \sin \varphi(t)$
点$C$的位置为:
$x_C(t) = e$
$y_C(t) = y_O + R \sin \psi$,其中$\psi = \arccos \frac{e - x_O}{R}$
点$C = C_2$的线速度向量$v_C = v_{C2} = \dot{x} C \mathbf{i} + \dot{y}_C \mathbf{j}$,线加速度向量$a_C = a {C2} = \ddot{x}_C \mathbf{i} + \ddot{y}_C \mathbf{j}$。
以下是用微分方法计算从动件速度和加速度的MATLAB代码:
syms phi(t)
% position of O = Oc (rO_ = AO_)
xO = RO*cos(phi);
yO = RO*sin(phi);
rO_ = [xO, yO , 0];
% angle between OC and x-axis
psi = acos((e-xO)/R);
% position of C (rC_ = AC_)
xC = e;
yC = yO+R*sin(psi) ;
rC_ = [xC, yC, 0];
vC2_ = diff(rC_, t);
aC2_ = diff(vC2_,t);
n = 30; % (rpm) driver link
omega1 = pi*n/30;
alpha1 = 0;
phi1 = pi/3;
slist = {diff(phi(t),t,2), diff(phi(t),t), phi(t)};
nlist = {alpha1, omega1, phi1}; % numerical values for slist
vC2n_ = eval(subs(vC2_,slist,nlist));
aC2n_ = eval(subs(aC2_,slist,nlist));
数值结果为:
|参数|数值|
| ---- | ---- |
|$v_{C2}$|$[0, 0.058, 0] (m/s)$|
|$a_{C2}$|$[0, -0.650, 0] (m/s^2)$|
7. 问题求解
给出了几个相关问题,如不同机构中求点的速度、加速度、角速度和角加速度等,以下是问题描述:
1. 图中棱柱$ABC$为连杆1,$\angle BAC = \varphi$,棱柱1做平移运动,在时间$t$时速度为$u$,加速度为$a$。杆$ED$为连杆2,在$D$点靠在棱柱上,连杆2沿垂直于$AB$的方向运动。求时间$t$时点$D$在连杆2上的速度和加速度。数值应用:$\varphi = 45^{\circ}$,$u = 1 m/s$,$a = 2 m/s^2$。
2. 图中棱柱1做平移运动,在时间$t$时速度$v_1 = u$,加速度$a_1 = \frac{u^2}{l}$。已知$\angle ACB = \varphi$,$OD = l$,在时间$t$时连杆2的角度$\angle (OD, OE) = \varphi$,其中$OE || BC$。求时间$t$时连杆2的角速度和角加速度。数值应用:$\varphi = \frac{\pi}{6}$,$l = 0.1 m$,$u = 1 m/s$。
3. 对于某机构,已知$BC = l$,$OA = 2l$,$\angle BCD = 90^{\circ}$,在图中所示位置$\angle BOC = \varphi$,连杆1做平移运动,速度$v_1 = u$,加速度$a_1 = \frac{2u^2}{l}$。求给定位置时连杆2的角速度和角加速度。数值应用:$l = 20 cm$,$\varphi = 45^{\circ}$,$u = 40 cm/s$。
4. 图中曲线连杆3半径$R = 0.3 m$,在$\varphi = 30^{\circ}$时逆时针角速度为$2 rad/s$,顺时针角加速度为$6 rad/s^2$。用两种方法确定该构型下机构的速度和加速度。
5. 图中圆盘3半径$R = 0.4 m$,以恒定角速度$n = 20 rpm$顺时针转动。当$\varphi = 45^{\circ}$时,用两种方法计算机构的速度和加速度。
总结
本文详细介绍了凸轮 - 从动件机构的运动学和力学分析方法,包括位置、速度、加速度和力的计算,还介绍了等效连杆机构和微分方法的应用,并给出了相应的MATLAB代码和数值结果。通过这些分析和计算,可以深入了解凸轮 - 从动件机构的工作原理和性能,为机械设计和优化提供理论支持。
凸轮与从动件机构分析
8. 运动学与力学分析流程总结
为了更清晰地展示整个凸轮与从动件机构的分析过程,下面用 mermaid 流程图来呈现其主要步骤:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(定义已知参数):::process
B --> C(位置分析):::process
C --> D(速度和加速度分析):::process
D --> E(力学分析):::process
E --> F(等效连杆机构分析):::process
F --> G(微分方法分析):::process
G --> H(求解相关问题):::process
H --> I([结束]):::startend
从这个流程图可以看出,整个分析过程是一个逐步深入的过程,从基本的参数定义开始,依次进行位置、速度、加速度、力学等方面的分析,最后还涉及到等效机构和微分方法的应用以及相关问题的求解。
9. 关键技术点分析
- 位置分析 :通过三角函数和几何关系确定凸轮和从动件上关键位置点的坐标。如凸轮中心 $O$ 的位置由 $x_O = AO \cos \varphi$ 和 $y_O = AO \sin \varphi$ 计算得出,点 $C$ 的位置则基于 $O$ 点位置和线段 $OC$ 的角度 $\psi$ 来确定。
- 速度和加速度分析 :利用向量叉乘和微分的方法计算速度和加速度。例如,点 $C_1$ 在凸轮上的速度 $v_{C1} = v_A + \omega_1 \times r_C$,加速度 $a_{C1} = a_A + \alpha_1 \times r_C - \omega_1^2 r_C$。对于从动件上点 $C_2$ 的速度和加速度,需要考虑相对运动和科里奥利加速度。
- 力学分析 :根据牛顿运动定律建立方程,求解各杆件之间的作用力。对于从动件,其牛顿运动方程为 $m_2 a_{C2} = F_{02} + F_{12} + F_e + G_2$,通过求解该方程得到未知力 $F_{02}$ 和 $F_{12}$。
- 等效连杆机构 :将从动件和凸轮之间的二自由度关节等效为两个单自由度关节和一个连杆,从而简化分析过程。通过建立等效机构中各点的速度和加速度方程,求解未知的速度、角速度、加速度和角加速度。
-
微分方法
:通过对位置方程进行求导来计算速度和加速度。在 MATLAB 中,使用
diff函数对位置向量进行求导,然后代入具体数值求解。
10. 代码应用注意事项
在使用上述 MATLAB 代码进行分析时,需要注意以下几点:
1.
参数定义
:确保所有已知参数的单位统一,并且在代码中正确赋值。例如,长度单位为米(m),力的单位为牛顿(N),角速度单位为弧度每秒(rad/s)等。
2.
符号变量的使用
:在求解未知量时,使用
sym
函数定义符号变量,如
vC2 = sym('vC2','real')
。在求解完成后,使用
eval
函数将符号解转换为数值解。
3.
方程求解
:在建立方程并求解时,要确保方程的正确性和完整性。例如,在求解速度和加速度时,需要将向量方程投影到笛卡尔轴上得到标量方程,然后使用
solve
函数求解。
4.
图形绘制
:如果需要绘制机构的图形,要注意坐标轴的设置和图形元素的添加。例如,使用
axis
函数设置坐标轴范围,使用
plot
函数绘制线段和曲线。
11. 实际应用案例
凸轮与从动件机构在实际工程中有广泛的应用,以下是一些具体案例:
|应用场景|描述|
| ---- | ---- |
|内燃机配气机构|凸轮控制气门的开启和关闭时间,确保发动机的正常工作。通过精确设计凸轮的轮廓,可以实现不同的气门运动规律,提高发动机的性能。|
|自动机床|用于控制刀具的进给和退刀动作,实现自动化加工。凸轮的运动可以将旋转运动转化为直线运动,使刀具按照预定的轨迹进行加工。|
|纺织机械|在纺织过程中,凸轮机构用于控制纱线的张力和运动,保证织物的质量和生产效率。|
12. 总结与展望
通过对凸轮与从动件机构的运动学和力学分析,我们可以深入了解其工作原理和性能。利用 MATLAB 进行数值计算和分析,大大提高了分析的效率和准确性。在实际应用中,我们可以根据具体需求设计不同的凸轮轮廓和机构参数,以满足各种工程要求。
未来,随着科技的不断发展,凸轮与从动件机构的设计和分析方法也将不断改进。例如,结合计算机辅助设计(CAD)和计算机辅助工程(CAE)技术,可以实现更精确的机构设计和优化。同时,智能材料和传感器的应用也将为凸轮机构的性能监测和控制提供更多的可能性。
总之,凸轮与从动件机构作为一种重要的机械传动机构,在未来的工程领域中仍将发挥重要作用。我们需要不断学习和探索,以更好地应用和发展这一技术。
超级会员免费看

被折叠的 条评论
为什么被折叠?



