CycloidAI

NW 行星齿轮设计 · 变位、啮合校核与运动动画

太阳轮 a + 双联行星轮 c/d + 内齿圈 b(固定),行星架输出 —— 不只给"同心误差 0 ✓",把内啮合最容易出事的几项也一起校核

受限 Beta · 只做几何与啮合校核。齿根弯曲与齿面接触强度、行星间均载、效率都不算; 齿根过渡曲线在动画里按示意画(径向线 + 齿根圆弧),不是滚刀包络出来的真实过渡曲线。 全部计算在你的浏览器里完成,参数不上传。

① 模数与齿形参数

② 齿数

③ 变位与求解方式

绿色框是算出来的值。齿顶圆按「两对啮合都保持标准顶隙 c*·m」确定 (外啮合即常见的齿顶降低 Δy);内齿圈变位 x_b 正 = 齿槽加宽,与外齿轮同号约定。

结果

遗传算法自动选齿(GA)

给一个目标传动比,让算法在齿数与变位里找全部校核都通过、并且某一项最好的方案。 模数 m1/m2、压力角、ha*、c*、行星轮个数取左边当前值(固定不变);x_b 每次都按同心条件解出。 每个候选都由本页同一个内核算 —— 点「载入」后上面结果表里的数,就是 GA 看到的数。

约束:传动比误差、装配条件(整数)、邻接间隙 ≥ 0.5m、ε 下限、滑动率上限、Gs ≥ 0.05、齿顶厚 ≥ 0.4m、不根切、x_b 在范围内。

收敛曲线:每一代最好可行方案的目标值(还没有可行解时不画)。

当代种群:横轴传动比,纵轴目标值;蓝点 = 全部校核通过,灰叉 = 至少一项不通过(画在顶边);绿带 = 允许的传动比范围(带外的点贴边画)。鼠标移上去看齿数。

算法:实数 + 整数混合编码;Deb 可行性规则选择(可行胜不可行,不用罚系数); z_b 不当基因 —— 落在传动比误差带里的一两个 z_b 逐个算、取最好;变位用相对量(从不根切的最小变位起算); 每代对最好个体做齿数 ±2 的成组局部搜索;最后对前 10 名及其邻居逐个把变位单独优化(可行点是孤岛,要连跳几步)。
凭什么信(nw_opt_check.js,每次部署前跑):固定变位时与四个齿数全枚举比,三个目标 × 10 个种子 30/30 找到穷举最优;变位放开时与 0.1 步长网格穷举比,15/15 不差于网格最优;返回的每个方案用另写的判据 (传动比、装配条件自己算)重核;同种子可复现;让 GA 看不见装配条件的造错版本必须变红。 GA 不保证全局最优 —— 不同种子在「滑动率」目标上相差约 1%,重要的设计请换两三个种子再跑。

运动动画(内齿圈固定 · 太阳轮输入 · 行星架输出)

速度

为什么图里大行星轮 c 盖住了内齿圈?上面是沿轴向看的投影:c 只和太阳轮 a 在同一平面(a–c 层), d 只和内齿圈 b 在另一平面(d–b 层),c 与 b 轴向错开,不接触(见上方剖面示意)。 真正要校核的是同一平面里的东西 —— a 与 c、c 与 c、d 与 b、d 与 d —— 这几对都在结果表里。 c 的回转包络比齿圈齿根圆还大时,c 只能放在齿圈轴向外侧,壳体在 c 层要留出足够大的内孔(结果表「c 层壳体内孔」)。

所有齿按真实渐开线齿廓(含变位与齿顶降低)画在各自的啮合位置上,转速按传动比实时算。 啮合相位自检:每一帧都把每个行星轮的实际转角与"刚好啮合"所要求的转角比一次, 偏差以齿距计 —— 装配条件不满足时,这个数会明显大于零,动画里能看到齿对不上。

各轮几何尺寸 (mm)

凭什么信这些数

网友转来的第三方工具截图(m1=2.5、m2=3、z=15/39/21/66、x=0.33/0.1/0.21) a′=68.52、α′=22.22°、x_b=0.568、ε=1.450/1.723、滑动率 2.591/1.702/1.509/0.330、邻接 15.79 mm、i=9.171 逐位一致。只说明两边约定相同,不说明谁对
真实齿廓啮合仿真(齿廓多边形求重叠面积,与公式无关) 齿厚各减 0.01 mm 时全程零重叠、各加 0.01 mm 时必有重叠 —— 齿形与相位都对;内啮合重叠干涉 Gs 的正负与仿真 7 组全部一致(含 4 组干涉)
整机逐层叠合仿真(截图参数,行星架转一圈 90 个位置) a–c 层(a 与 3 个 c、c 与 c)、d–b 层(b 与 3 个 d、d 与 d)齿厚各减 1 µm 后全程零重叠(名义尺寸下只在接触线上有 1.6×10⁻⁵ mm² 的多边形离散误差)。若把 c 错放进 d–b 层,与齿圈重叠 776 mm² —— 这就是动画里看到的投影重叠,两层必须轴向错开
装配条件公式 vs 相位法 (z_a·z_d + z_b·z_c) / (n·gcd(z_c, z_d)) 为整数 ⟺ 均布行星轮能同时装入:随机 2994 组全部一致
浏览器内核 vs Python 参考实现 40 组工况 1380 项逐项对拍到 1e-10;每次部署前跑,造错样本必须变红