在凸轮机构的设计中,凸轮轮廓的形状主要取决于从动件的输出运动规律。描述这种运动规律的曲线被称为凸轮曲线。选择不同的凸轮曲线会对机构的运动和动力特性产生较大影响。在凸轮机构从动件推动负载运动的过程中,为了满足运动时间短、平稳、顺滑、无振动、耗能少的要求,首先需要解决如何设计和选择合适的凸轮曲线这个问题。
通用简谐梯形组合凸轮曲线具有良好的性能和较强的通用性,通过选择不同的分值区间 $T_i$ 就能得到绝大多数的基本运动规律和常用运动规律。它是由简谐曲线和梯形曲线组合而成的,因此兼有简谐运动规律在两端连续及梯形运动规律最大加速度较小的优点,是目前工程上应用很广的一种凸轮曲线,能够满足大多数中高速凸轮机构的设计要求。
曲线的函数表达式
查阅文献,已知通用简谐梯形组合凸轮曲线的加速度函数($A$)为:
\[A = \left\{ \begin{array}{l} A_{mp}sinP_i & T\in[0,\ T_1]\\ A_{mp} & T\in(T_1,\ T_2]\\ A_{mp}cosP_i & T\in(T_2,\ T_3]\\ 0 & T\in(T_3,\ T_4]\\ -A_{mm}sinP_i & T\in(T_4,\ T_5]\\ -A_{mm} & T\in(T_5,\ T_6]\\ -A_{mm}cosP_i & T\in(T_6,\ 1] \end{array} \right.\]其中,
\[P_i = \Big[(T - T_{i-1})/F_i + (i - 1)\frac{\pi}{4}\Big]\] \[F_i = (T_i - T_{i - 1})\Big/\frac{\pi}{2}\] \[0 \leq T_1 \leq T_2 \leq T_3 \leq T_4 \leq T_5 \leq T_6 \leq 1\]根据
\[\left\{ \begin{array}{l} V = \frac{dS}{dT}\\ A = \frac{d^2S}{dT^2}\\ J = \frac{d^3S}{dT^3}\\ Q = AV\\ \end{array} \right.\]可分别计算出速度函数($V$)、位移函数($S$)、跃度函数($J$)、跳度函数($Q$)的函数表达式,计算过程如下:
首先,导入所使用的模块:
1 |
|
定义符号变量:
1 |
|
使用列表作为容器,放置各类函数表达式:
1 |
|
使用 sympy
对函数表达式进行计算,并将结果存储在已定义的列表中:
1 |
|
为了便于书写及调用,定义以 $i$ 值为自变量并返回对应表达式的函数:
1 |
|
计算完毕后,分别查看 V(1)
~ V(7)
的返回值,得到:
分别查看 S(1)
~ S(7)
的返回值,得到:
分别查看 J(1)
~ J(7)
的返回值,得到:
分别查看 Q(1)
~ Q(7)
的返回值,得到:
求解函数的未知常量
分别将上述 7 个区间的各函数命名为 $A_1$、$A_2$ …… $A_7$,$V_1$、$V_2$……$V_7$ 等。
在凸轮运动的推程阶段,速度和位移初始及末端的边界条件为:
\[\left\{ \begin{array}{l} V_1(0) = 0\\ V_7(1) = 0\\ S_1(0) = 0\\ S_7(1) = 1 \end{array} \right.\]据此,可建立 4 个方程:
1 |
|
又因为在 $T_1$ 、$T_2$ 、$T_3$ 、$T_4$ 、$T_5$ 、$T_6$ 处,速度和位移具有连续性,即:
\[\left\{ \begin{array}{l} V_1(T_1) = V_2(T_1)\\ V_2(T_2) = V_3(T_2)\\ V_3(T_3) = V_4(T_3)\\ V_4(T_4) = V_5(T_4)\\ V_5(T_5) = V_6(T_5)\\ V_6(T_6) = V_7(T_6)\\ S_1(T_1) = S_2(T_1)\\ S_2(T_2) = S_3(T_2)\\ S_3(T_3) = S_4(T_3)\\ S_4(T_4) = S_5(T_4)\\ S_5(T_5) = S_6(T_5)\\ S_6(T_6) = S_7(T_6) \end{array} \right.\]据此,可建立 12 个方程:
1 |
|
联立上述 16 个方程,使用 sympy
的 nonlinsolve
函数求解该十六元非线性方程组,得到 $C_1$ ~ $C_7$、$B_1$ ~ $B_7$ 以及 $A_{mp}$、$A_{mm}$ 的符号表达式:
1 |
|
在输出求解结果后,发现这些常量的表达式含有一个共同的因子,故先将其单独提出来以简化表达式:
\[D = - 16 T_{1}^{2} T_{4} + 2 \pi^{2} T_{1}^{2} T_{4} - 8 \pi T_{1}^{2} T_{5} - 2 \pi^{2} T_{1}^{2} T_{5} + 16 T_{1}^{2} T_{5} + \pi^{3} T_{1}^{2} T_{5} - \pi^{3} T_{1}^{2} T_{6} - \\ 16 T_{1}^{2} T_{6} + 2 \pi^{2} T_{1}^{2} T_{6} + 8 \pi T_{1}^{2} T_{6} - 2 \pi^{2} T_{1}^{2} + 16 T_{1}^{2} - 4 \pi^{2} T_{1} T_{4}^{2} - 16 T_{1} T_{4}^{2} + 16 \pi T_{1} T_{4}^{2} - \\ 24 \pi T_{1} T_{4} T_{5} + 32 T_{1} T_{4} T_{5} + 4 \pi^{2} T_{1} T_{4} T_{5} - \pi^{3} T_{1} T_{5}^{2} - 16 T_{1} T_{5}^{2} + 2 \pi^{2} T_{1} T_{5}^{2} + 8 \pi T_{1} T_{5}^{2} - \\ 8 \pi T_{1} T_{6}^{2} - 2 \pi^{2} T_{1} T_{6}^{2} + 16 T_{1} T_{6}^{2} + \pi^{3} T_{1} T_{6}^{2} - 4 \pi^{2} T_{1} T_{6} - 32 T_{1} T_{6} + 24 \pi T_{1} T_{6} - 16 \pi T_{1} + 16 T_{1} + \\ 4 \pi^{2} T_{1} - 2 \pi^{2} T_{2}^{2} T_{4} + 16 T_{2}^{2} T_{4} - \pi^{3} T_{2}^{2} T_{5} - 16 T_{2}^{2} T_{5} + 2 \pi^{2} T_{2}^{2} T_{5} + 8 \pi T_{2}^{2} T_{5} - 8 \pi T_{2}^{2} T_{6} - \\ 2 \pi^{2} T_{2}^{2} T_{6} + 16 T_{2}^{2} T_{6} + \pi^{3} T_{2}^{2} T_{6} - 16 T_{2}^{2} + 2 \pi^{2} T_{2}^{2} - 32 T_{2} T_{3} T_{4} + 8 \pi T_{2} T_{3} T_{4} - 24 \pi T_{2} T_{3} T_{5} + \\ 32 T_{2} T_{3} T_{5} + 4 \pi^{2} T_{2} T_{3} T_{5} - 4 \pi^{2} T_{2} T_{3} T_{6} - 32 T_{2} T_{3} T_{6} + 24 \pi T_{2} T_{3} T_{6} - 8 \pi T_{2} T_{3} + 32 T_{2} T_{3} - \\ 16 \pi T_{2} T_{4}^{2} + 16 T_{2} T_{4}^{2} + 4 \pi^{2} T_{2} T_{4}^{2} - 4 \pi^{2} T_{2} T_{4} T_{5} - 32 T_{2} T_{4} T_{5} + 24 \pi T_{2} T_{4} T_{5} - 8 \pi T_{2} T_{5}^{2} - \\ 2 \pi^{2} T_{2} T_{5}^{2} + 16 T_{2} T_{5}^{2} + \pi^{3} T_{2} T_{5}^{2} - \pi^{3} T_{2} T_{6}^{2} - 16 T_{2} T_{6}^{2} + 2 \pi^{2} T_{2} T_{6}^{2} + 8 \pi T_{2} T_{6}^{2} - 24 \pi T_{2} T_{6} + \\ 32 T_{2} T_{6} + 4 \pi^{2} T_{2} T_{6} - 4 \pi^{2} T_{2} - 16 T_{2} + 16 \pi T_{2} - 8 \pi T_{3}^{2} T_{4} + 16 T_{3}^{2} T_{4} - 4 \pi^{2} T_{3}^{2} T_{5} - 16 T_{3}^{2} T_{5} + \\ 16 \pi T_{3}^{2} T_{5} - 16 \pi T_{3}^{2} T_{6} + 16 T_{3}^{2} T_{6} + 4 \pi^{2} T_{3}^{2} T_{6} - 16 T_{3}^{2} + 8 \pi T_{3}^{2} - 16 T_{3} T_{4}^{2} + 8 \pi T_{3} T_{4}^{2} - 8 \pi T_{3} T_{4} T_{5} + \\ 32 T_{3} T_{4} T_{5} - 16 T_{3} T_{5}^{2} + 2 \pi^{2} T_{3} T_{5}^{2} - 2 \pi^{2} T_{3} T_{6}^{2} + 16 T_{3} T_{6}^{2} - 32 T_{3} T_{6} + 8 \pi T_{3} T_{6} - 8 \pi T_{3} + 16 T_{3}\]于是,可以得到方程组的解如下:
\[\left\{ \begin{array}{l} C_1 = \frac{4 \pi}{D} T_{1} \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right)\\ C_2 = - \frac{2 \pi}{D} T_{1} \left(-2 + \pi\right) \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right)\\ C_3 = - \frac{2 \pi}{D} \left(- 2 T_{1} + \pi T_{1} - \pi T_{2}\right) \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right)\\ C_4 = - \frac{2 \pi}{D} \left(- 2 T_{1} + \pi T_{1} - \pi T_{2} + 2 T_{2} - 2 T_{3}\right) \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right)\\ C_5 = - \frac{2 \pi}{D} \left(\pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right) \left(- 2 T_{1} + \pi T_{1} - \pi T_{2} + 2 T_{2} - 2 T_{3}\right)\\ C_6 = \frac{2 \pi}{D} \left(- 2 T_{6} + \pi T_{6} + 2\right) \left(- 2 T_{1} + \pi T_{1} - \pi T_{2} + 2 T_{2} - 2 T_{3}\right)\\ C_7 = - \frac{4 \pi}{D} \left(T_{6} - 1\right) \left(- 2 T_{1} + \pi T_{1} - \pi T_{2} + 2 T_{2} - 2 T_{3}\right)\\ B_1 = 0\\ B_2 = \frac{T_{1}^{2}}{D} \left(-8 + \pi^{2}\right) \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right)\\ B_3 = \frac{1}{D} \left(- 8 T_{1}^{2} + \pi^{2} T_{1}^{2} - \pi^{2} T_{2}^{2} + 8 T_{2}^{2} - 16 T_{2} T_{3} + 8 T_{3}^{2}\right) \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right)\\ B_4 = \frac{1}{D} \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right) \left(- 8 T_{1}^{2} + \pi^{2} T_{1}^{2} - \pi^{2} T_{2}^{2} + 8 T_{2}^{2} - 16 T_{2} T_{3} + 4 \pi T_{2} T_{3} - 4 \pi T_{3}^{2} + 8 T_{3}^{2}\right)\\ B_5 = \frac{1}{D} \left(- 16 T_{1}^{2} T_{4} + 2 \pi^{2} T_{1}^{2} T_{4} - 8 \pi T_{1}^{2} T_{5} - 2 \pi^{2} T_{1}^{2} T_{5} + 16 T_{1}^{2} T_{5} + \pi^{3} T_{1}^{2} T_{5} - \pi^{3} T_{1}^{2} T_{6} - 16 T_{1}^{2} T_{6} + 2 \pi^{2} T_{1}^{2} T_{6} + \\ \qquad 8 \pi T_{1}^{2} T_{6} - 2 \pi^{2} T_{1}^{2} + 16 T_{1}^{2} - 4 \pi^{2} T_{1} T_{4}^{2} + 8 \pi T_{1} T_{4}^{2} - 8 \pi T_{1} T_{4} T_{5} + 4 \pi^{2} T_{1} T_{4} T_{5} - 2 \pi^{2} T_{2}^{2} T_{4} + 16 T_{2}^{2} T_{4} - \\ \qquad \pi^{3} T_{2}^{2} T_{5} - 16 T_{2}^{2} T_{5} + 2 \pi^{2} T_{2}^{2} T_{5} + 8 \pi T_{2}^{2} T_{5} - 8 \pi T_{2}^{2} T_{6} - 2 \pi^{2} T_{2}^{2} T_{6} + 16 T_{2}^{2} T_{6} + \pi^{3} T_{2}^{2} T_{6} - 16 T_{2}^{2} + 2 \pi^{2} T_{2}^{2} - \\ \qquad 32 T_{2} T_{3} T_{4} + 8 \pi T_{2} T_{3} T_{4} - 24 \pi T_{2} T_{3} T_{5} + 32 T_{2} T_{3} T_{5} + 4 \pi^{2} T_{2} T_{3} T_{5} - 4 \pi^{2} T_{2} T_{3} T_{6} - 32 T_{2} T_{3} T_{6} + 24 \pi T_{2} T_{3} T_{6} - \\ \qquad 8 \pi T_{2} T_{3} + 32 T_{2} T_{3} - 8 \pi T_{2} T_{4}^{2} + 4 \pi^{2} T_{2} T_{4}^{2} - 4 \pi^{2} T_{2} T_{4} T_{5} + 8 \pi T_{2} T_{4} T_{5} - 8 \pi T_{3}^{2} T_{4} + 16 T_{3}^{2} T_{4} - 4 \pi^{2} T_{3}^{2} T_{5} - \\ \qquad 16 T_{3}^{2} T_{5} + 16 \pi T_{3}^{2} T_{5} - 16 \pi T_{3}^{2} T_{6} + 16 T_{3}^{2} T_{6} + 4 \pi^{2} T_{3}^{2} T_{6} - 16 T_{3}^{2} + 8 \pi T_{3}^{2} + 8 \pi T_{3} T_{4}^{2} - 8 \pi T_{3} T_{4} T_{5}\right)\\ B_6 = \frac{1}{D} \left(- 16 T_{1}^{2} T_{4} + 2 \pi^{2} T_{1}^{2} T_{4} - 8 \pi T_{1}^{2} T_{5} - 2 \pi^{2} T_{1}^{2} T_{5} + 16 T_{1}^{2} T_{5} + \pi^{3} T_{1}^{2} T_{5} - \pi^{3} T_{1}^{2} T_{6} - 16 T_{1}^{2} T_{6} + 2 \pi^{2} T_{1}^{2} T_{6} + \\ \qquad 8 \pi T_{1}^{2} T_{6} - 2 \pi^{2} T_{1}^{2} + 16 T_{1}^{2} - 4 \pi^{2} T_{1} T_{4}^{2} - 16 T_{1} T_{4}^{2} + 16 \pi T_{1} T_{4}^{2} - 24 \pi T_{1} T_{4} T_{5} + 32 T_{1} T_{4} T_{5} + 4 \pi^{2} T_{1} T_{4} T_{5} - \\ \qquad \pi^{3} T_{1} T_{5}^{2} - 16 T_{1} T_{5}^{2} + 2 \pi^{2} T_{1} T_{5}^{2} + 8 \pi T_{1} T_{5}^{2} - 2 \pi^{2} T_{2}^{2} T_{4} + 16 T_{2}^{2} T_{4} - \pi^{3} T_{2}^{2} T_{5} - 16 T_{2}^{2} T_{5} + 2 \pi^{2} T_{2}^{2} T_{5} + \\ \qquad 8 \pi T_{2}^{2} T_{5} - 8 \pi T_{2}^{2} T_{6} - 2 \pi^{2} T_{2}^{2} T_{6} + 16 T_{2}^{2} T_{6} + \pi^{3} T_{2}^{2} T_{6} - 16 T_{2}^{2} + 2 \pi^{2} T_{2}^{2} - 32 T_{2} T_{3} T_{4} + 8 \pi T_{2} T_{3} T_{4} - \\ \qquad 24 \pi T_{2} T_{3} T_{5} + 32 T_{2} T_{3} T_{5} + 4 \pi^{2} T_{2} T_{3} T_{5} - 4 \pi^{2} T_{2} T_{3} T_{6} - 32 T_{2} T_{3} T_{6} + 24 \pi T_{2} T_{3} T_{6} - 8 \pi T_{2} T_{3} + 32 T_{2} T_{3} - \\ \qquad 16 \pi T_{2} T_{4}^{2} + 16 T_{2} T_{4}^{2} + 4 \pi^{2} T_{2} T_{4}^{2} - 4 \pi^{2} T_{2} T_{4} T_{5} - 32 T_{2} T_{4} T_{5} + 24 \pi T_{2} T_{4} T_{5} - 8 \pi T_{2} T_{5}^{2} - 2 \pi^{2} T_{2} T_{5}^{2} + \\ \qquad 16 T_{2} T_{5}^{2} + \pi^{3} T_{2} T_{5}^{2} - 8 \pi T_{3}^{2} T_{4} + 16 T_{3}^{2} T_{4} - 4 \pi^{2} T_{3}^{2} T_{5} - 16 T_{3}^{2} T_{5} + 16 \pi T_{3}^{2} T_{5} - 16 \pi T_{3}^{2} T_{6} + 16 T_{3}^{2} T_{6} + \\ \qquad 4 \pi^{2} T_{3}^{2} T_{6} - 16 T_{3}^{2} + 8 \pi T_{3}^{2} - 16 T_{3} T_{4}^{2} + 8 \pi T_{3} T_{4}^{2} - 8 \pi T_{3} T_{4} T_{5} + 32 T_{3} T_{4} T_{5} - 16 T_{3} T_{5}^{2} + 2 \pi^{2} T_{3} T_{5}^{2}\right)\\ B_7 = \frac{1}{D} \left(- 16 T_{1}^{2} T_{4} + 2 \pi^{2} T_{1}^{2} T_{4} - 8 \pi T_{1}^{2} T_{5} - 2 \pi^{2} T_{1}^{2} T_{5} + 16 T_{1}^{2} T_{5} + \pi^{3} T_{1}^{2} T_{5} - \pi^{3} T_{1}^{2} T_{6} - 16 T_{1}^{2} T_{6} + 2 \pi^{2} T_{1}^{2} T_{6} + \\ \qquad 8 \pi T_{1}^{2} T_{6} - 2 \pi^{2} T_{1}^{2} + 16 T_{1}^{2} - 4 \pi^{2} T_{1} T_{4}^{2} - 16 T_{1} T_{4}^{2} + 16 \pi T_{1} T_{4}^{2} - 24 \pi T_{1} T_{4} T_{5} + 32 T_{1} T_{4} T_{5} + 4 \pi^{2} T_{1} T_{4} T_{5} - \\ \qquad \pi^{3} T_{1} T_{5}^{2} - 16 T_{1} T_{5}^{2} + 2 \pi^{2} T_{1} T_{5}^{2} + 8 \pi T_{1} T_{5}^{2} - 8 \pi T_{1} T_{6}^{2} - 2 \pi^{2} T_{1} T_{6}^{2} + 16 T_{1} T_{6}^{2} + \pi^{3} T_{1} T_{6}^{2} - 32 T_{1} T_{6} + \\ \qquad 16 \pi T_{1} T_{6} - 8 \pi T_{1} + 16 T_{1} - 2 \pi^{2} T_{2}^{2} T_{4} + 16 T_{2}^{2} T_{4} - \pi^{3} T_{2}^{2} T_{5} - 16 T_{2}^{2} T_{5} + 2 \pi^{2} T_{2}^{2} T_{5} + 8 \pi T_{2}^{2} T_{5} - 8 \pi T_{2}^{2} T_{6} - \\ \qquad 2 \pi^{2} T_{2}^{2} T_{6} + 16 T_{2}^{2} T_{6} + \pi^{3} T_{2}^{2} T_{6} - 16 T_{2}^{2} + 2 \pi^{2} T_{2}^{2} - 32 T_{2} T_{3} T_{4} + 8 \pi T_{2} T_{3} T_{4} - 24 \pi T_{2} T_{3} T_{5} + 32 T_{2} T_{3} T_{5} + \\ \qquad 4 \pi^{2} T_{2} T_{3} T_{5} - 4 \pi^{2} T_{2} T_{3} T_{6} - 32 T_{2} T_{3} T_{6} + 24 \pi T_{2} T_{3} T_{6} - 8 \pi T_{2} T_{3} + 32 T_{2} T_{3} - 16 \pi T_{2} T_{4}^{2} + 16 T_{2} T_{4}^{2} + \\ \qquad 4 \pi^{2} T_{2} T_{4}^{2} - 4 \pi^{2} T_{2} T_{4} T_{5} - 32 T_{2} T_{4} T_{5} + 24 \pi T_{2} T_{4} T_{5} - 8 \pi T_{2} T_{5}^{2} - 2 \pi^{2} T_{2} T_{5}^{2} + 16 T_{2} T_{5}^{2} + \pi^{3} T_{2} T_{5}^{2} - \\ \qquad \pi^{3} T_{2} T_{6}^{2} - 16 T_{2} T_{6}^{2} + 2 \pi^{2} T_{2} T_{6}^{2} + 8 \pi T_{2} T_{6}^{2} - 16 \pi T_{2} T_{6} + 32 T_{2} T_{6} - 16 T_{2} + 8 \pi T_{2} - 8 \pi T_{3}^{2} T_{4} + 16 T_{3}^{2} T_{4} - \\ \qquad 4 \pi^{2} T_{3}^{2} T_{5} - 16 T_{3}^{2} T_{5} + 16 \pi T_{3}^{2} T_{5} - 16 \pi T_{3}^{2} T_{6} + 16 T_{3}^{2} T_{6} + 4 \pi^{2} T_{3}^{2} T_{6} - 16 T_{3}^{2} + 8 \pi T_{3}^{2} - 16 T_{3} T_{4}^{2} + 8 \pi T_{3} T_{4}^{2} - \\ \qquad 8 \pi T_{3} T_{4} T_{5} + 32 T_{3} T_{4} T_{5} - 16 T_{3} T_{5}^{2} + 2 \pi^{2} T_{3} T_{5}^{2} - 2 \pi^{2} T_{3} T_{6}^{2} + 16 T_{3} T_{6}^{2} - 32 T_{3} T_{6} + 16 T_{3}\right)\\ A_{mp} = \frac{2 \pi^{2}}{D} \left(2 T_{4} - 2 T_{5} + \pi T_{5} - \pi T_{6} + 2 T_{6} - 2\right)\\ A_{mm} = \frac{2 \pi^{2}}{D} \left(- 2 T_{1} + \pi T_{1} - \pi T_{2} + 2 T_{2} - 2 T_{3}\right) \end{array} \right.\]完成这些常量未知数的求解后,给定任意的 $T_i$ 值,将其代入常量表达式中可以计算出常量的准确值,再将这些常量值代入到曲线函数中,即可得到在这些 $T_i$ 值条件下的准确曲线函数。
凸轮运动曲线设计
建立了一个常见凸轮运动曲线数据库,可供直接调用:
1 |
|
通过以下代码指定凸轮的推程运动角、远休止角、回程运动角和近休止角:
1 |
|
定义推程运动曲线:
1 |
|
例如选择修正正弦曲线作为凸轮的推程运动曲线,代入 $T_i$ 值,计算常量的数值:
1 |
|
代入常量值,得到准确的曲线函数:
1 |
|
生成用于绘制曲线图像的点阵:
1 |
|
绘制曲线图像:
1 |
|
输出曲线的特性值为:
1 |
|
将无量纲时间转换为凸轮的转角:
1 |
|
定义远休止阶段的运动曲线:
1 |
|
同理,定义回程和近休止阶段的运动曲线,此处过程略。
根据以上步骤得出的结果,最终可绘制出凸轮的位移循环图:
1 |
|
结果如下图所示:
输出 $S$ 值:
1 |
|
写在最后
这篇文章中的代码写于两年前,当时还开发了带有 UI 的通用简谐梯形组合凸轮曲线设计工具,可惜文件弄丢了。好在本文已覆盖了其背后逻辑运算的主要过程,希望对读者有所启发。
参考文献
[1]彭国勋,肖正杨.自动机械的凸轮机构设计[M].北京:机械工业出版社,1990.
[2]刘昌祺,刘庆立,蔡昌蔚.自动机械凸轮机构实用设计手册[M].北京:科学出版社,2013.