学问做得越深,越是欣赏“一般性”的技术、理论和方法。
1、数学模型
在去年校友活动中,励建书院士谈到微积分的意义:过去,算任何一条曲线下的面积时,需要复杂、独特的技巧;有了微积分,就有了一般性的简单算法。其实,有了计算机,可以得到更一般的计算办法:把曲线下面的面积划分成很多小份,每一份近似成矩形或梯形,加起来就得到了面积。
从这个角度看,计算机、互联网都是伟大的技术。仿真也是了不起的方法。因为它可以给出一种解决问题的一般性求解方法。
下面先从一个更大的视角看仿真:数学模型的应用。
工程问题往往能用数学问题描述。数学描述需要一个“模型”:根据一些影响因素(自变量取值),能够算出结果。模型求解问题是类反问题:给出人们希望的结果,寻找达到这个结果的自变量取值。方程求解和优化都是这样的。例如,所谓方程求解,就是寻找那些让结果等于零的自变量取值。
学校里学东西,总有办法把解直接找出来。但是,现实中可以直接求解的问题却是罕见的。很多人不知道这个道理。但牛顿知道。300年前,牛顿就找到了一般性的方程求解思路:先随便给个初始的自变量,再根据计算结果修订自变量,直到满为止。这类办法人算很麻烦、计算机却不怕麻烦。所以,这成了计算机求解的一般性思想。
这种方法的主要问题就是计算量太大。所以,数学家研究的算法几乎都是用来减少计算量的。如何减少呢?本质上是根据前面计算的“经验”指导后面的计算。“经验”可以是下降的梯度,也可以是上次计算的理想程度。还有一类算法,我戏称为“胡懵乱凑”法。这类方法的鼻祖叫做蒙特卡洛方法:到处去试,最后找个最好的来交差。后来,有人进行改进:在好的地方增加试验次数。典型的如基因算法、模拟退火等。
2、仿真是什么?
回到开头:仿真是什么?仿真其实就是建立数学模型。
有些建模是很容易,有些模型很难。有些难的模型建模就要花10多年,有些复杂模型计算一次就要花几天、几十天。人们往往只把复杂困难的模型称为仿真模型——就像只把力气大的人称为大力士一样。仿真模型有很多用途。比如训练人员、产品设计等。但是,很少有人想到用复杂模型进行生产控制。道理很简单:没办法实时计算。
但天无绝人之路。没有办法直接用,可以间接用。例如,十多年前我就做过一件事:用复杂模型计算出若干计算结果、再用这些计算结果得到简化的统计模型。简化模型不仅计算量小,人也容易理解,可以用来指导实时控制模型的开发。
随着计算机性能的增强,越来越多的仿真模型可以用在生产管控上了:试和凑就是通用的办法。去年我给人出了两个主意,都是用仿真模型解决实际问题。
现实中,很多人都想不到这种办法——因为这些办法很笨,聪明人反而不会去想。而且,聪明人更多想到的是“解方程”的巧办法,不会想到去凑和试。但在ICT技术高度发达的今天,笨办法往往能解决过去解决不了的问题——这就是创新的机会所在。
从大处说:大数据、云计算给我们带来了这样的优势。有了这个优势,CPS才能玩得转。总体上看,仿真模型的用途,未来不可限量。
不过,我可以断言:无论计算机如何强大,计算能力总是有限的。提高计算效率是个永恒的问题。掌握其中的技巧对创新是非常有利的。
3、仿真的弱点
下面再谈一下,仿真模型弱点。
一般来说:仿真模型总是要对边界条件进行假设。但现实中,这些边界条件不一定能得到。所以,即便仿真模型能够准确地描述自然规律,却不一定能对到具体对象上。打个比方,如果不知道摩擦系数,就无法计算给定作用力时物体的加速度。很多地方花了很多钱建立了仿真模型,却没有发挥作用,就是因为当初没考虑好落地的问题。
一般人的想法是:既然参数不清楚,就设法搞清吧!其实,这个思路在现实中不一定走得通:成本太大、困难太多,不值得。现实中的做法,往往是和具体实践相结合:先试试、再修正。这又回到了我说的创新原则“先做成、后做好”。
工业就是需要实践、不要总指望“毕其功于一役”。好在在大数据的前提下,这种试错的成本可能大大降低。同时,在互联网的背景下,还可以通过共享让知识价值倍增。这会使得“知识生产”的投入产出比发生巨大变化。
来源:世界先进制造技术论坛