学生的第一误区:优化是软件算出来的,不是改出来的
打开设计说明书,满页都是算法公式、适应度函数曲线,问他为什么优化完的中心距比轴承外圈直径还小,他瞪着眼睛说:软件输出的就是最优解啊。
说实话,我那时候头都大了。我们教了这么久,怎么教出来这个认知。
学生默认,机械优化就是打开MATLAB,输进去约束,点个运行,等结果出来直接抄。压根没想过,软件里的约束,是你输进去的,你漏了轴承安装的尺寸要求,结果当然错。
全错了。
机械优化从第一步开始,就是人的活儿。找对所有约束,排好约束的优先级,再给算法喂对参数,最后出来结果还要自己卡着生产要求筛一遍,哪里能扔给软件就不管。

之前我们把机械优化单独开成一门理论课,一学期都在讲凸规划、拉格朗日乘子、智能算法,学生考完试,连设计个扳手都不会用优化思维,这不叫教学,这叫背公式应付考试。
把优化思维拆进设计步骤,别放在课堂外
卡了三个月,我们改了教学大纲。不再单独讲优化理论,把优化的逻辑拆进每一次设计作业的环节里。
比如原来定齿轮模数,就是套强度公式,选个最接近的标准值,完事。现在呢,先给你整机的尺寸框:减速器总宽度不能超过180mm,现有箱体的安装位预留了100-108mm的中心距区间,目标是总重量降10%,齿面弯曲强度不低于设计要求。你自己调模数、齿数、齿宽的组合,一个个试,找符合要求最轻的那个。
这个过程,就是机械优化啊。哪里需要什么复杂的智能算法?对于本科生的设计题,十几轮试错试出来的结果,比瞎喂参数跑出来的算法结果靠谱太多。
不对,不是靠谱,是学生能懂每一步为什么改,为什么选这个不选那个。

不过话说回来,也不是不让学生用算法。我跟学生说,你试完基础组合,再用算法验证,没问题。但是你得先知道,哪些约束不能动,哪些是可以让步的,再开软件。别上来就让算法给你出答案,你连问题都没搞清楚,算法给什么错什么。
接受不完美,才是优化的核心

我见过最多的卡点,就是学生死磕全局最优解,卡个十天半个月出不来。
去年带学生做创新项目,做小型果树采摘机的升降悬臂,一个学生拿着有限元软件算了一个星期,得出理论最优壁厚1.2mm,强度刚好满足,重量最轻。结果跑遍铝材市场,找不到1.2mm壁厚的圆管,最接近的就是1.5mm。他跟我纠结了三天,说1.5mm重量超了40克,不是最优了,怎么办。
我问他,40克是什么概念?悬臂一共才一公斤多,超了不到4%,你把把手换成塑料的,一下子就减出来了,为什么非要死磕这个壁厚?
他愣了,说课本里的优化都是求全局最优啊。
课本里的优化是数学题,工程里的优化是应用题。
你要考虑能不能买到料,能不能加工,维修方便不方便,成本超不超,这么多约束摆在前面,哪来的全局最优?能满足所有硬约束,各项指标都合格,就是最合适的结果。接受这个不完美,才算是懂了什么是工程里的机械优化。
昨天翻学生的优化日志,看到一个学生写:原来优化不是找最好的那个,是找能用的那个里面最合适的。说的糙,在理。
我们教机械设计,教机械优化,教到最后,不就是教学生怎么在一堆限制里做出能用的东西吗?那些满页公式的理论,要是没教会学生这个,等于白教。