计算机仿真 浅谈计算机仿真
说到计算机模拟,可能会想到一堆物理公式和3D数据。然而,如何计算和模拟可能仍然模糊不清。今天让我们做一些科普。先从最基础最重要的模型说起,再来说说计算机仿真如何为车辆开发提供优化方案。
/什么是模型/
有一只玩具鲨鱼,它的大嘴压了几颗牙就突然闭上了。我想知道这个玩具是怎么工作的,但是我不能把它拆开。所以我只能按各种排列组合来压牙。被无数人“咬”过之后,我终于发现了鲨鱼“咬”的规律。
这个英勇就义的故事,其实就是一个建模的过程。该模型是通过观察未打开的黑盒的输入和输出而总结的一组规则。通过这组规则,我们可以通过控制输入来控制黑盒的输出。
当然,这是一个相对简单的模型。现实中有很多黑箱定律相当复杂,它们的输入是不可观测和不可控的变量。对于这种黑箱,需要依靠计算机技术,构建更大的模型,模拟真实场景的输入进行快速计算,然后与现实中的输出进行比较,再对模型进行修正,通过这样的反复迭代不断提高模型的精度。
在获得校准模型后,可以通过计算特定输入下模型的输出来进行预测。例如,在我们的汽车模拟中,输入是从各种法律法规中的试验条件中抽象出来的工况,输出是预测的试验结果。
随着市场竞争的日益激烈和项目时间的不断缩短,计算机模拟不再局限于将设计方案转化为模型后测试结果的“事后”预测模式,而是开始提供“事前”建议。前期尝试了各种设计方案的大量模型,以求找到更好的效果,从而确定整体方向,避免走弯路。在这个过程中,大量的算法被用来提供试错效率,如退火算法、遗传算法、禁忌搜索算法、蚁群算法等。我们以蚁群算法为例,看看如何快速找到最优设计方案。
/蚁群算法在车辆性能优化中的应用/
首先,我们将介绍什么是蚁群算法。蚁群没有中央控制和任务分配的领导者,不能通过语言进行交流。那大量的蚁群,在外界条件未知的情况下,每个工蚁如何知道自己应该去哪里执行任务呢?这就要提到化学信息素了。以觅食为例,一只蚂蚁在一个方向随机觅食,如果找到食物,它会把食物带回巢穴,并沿着巢穴释放信息素。这时候就会出现正反馈和负反馈。正反馈:如果其他蚂蚁发现信息素,它们会有一定的概率沿着轨迹觅食。信息素浓度越高,概率越大。同时,蚂蚁在返回巢穴的途中也会留下信息素,使得路径上的信息素浓度不断增加,蚂蚁也会不断增加。负反馈:如果这条路上的食物已经收集完毕,蚂蚁就不会沿路返回,释放信息素。随着时间的推移,信息素的浓度会随着挥发而逐渐降低,蚂蚁会越来越少。蚁群就是通过这种微观层面上的简单随机机制,在宏观层面上实现了一种非常微妙奇妙的动态资源分配策略:一旦在某个方向上发现食物,就会出动更多的蚂蚁进行搜索,同时也会留下一定的随机性,保证少数蚂蚁继续朝着收成不好的方向进行探测。
我们在做优化的时候,面临的问题和蚁群非常相似。最常见的场景是用来说明:改变零件某一区域的长度l和厚度t可以提高其刚度性能。在这里,食物成为硬度值。地面变成由l和t组成的曲面,蚂蚁在某一时刻的位置坐标变成LOT曲面上的坐标,蚂蚁的路径变成LOT曲面上的曲线。信息素浓度成为路径曲线方向的偏导数。因此,我们把蚂蚁的工作从寻找食物改为爬LOT表面的山峰。
在完成元素变换后,利用蚁群动态分配资源的方法,探索刚度的最优解。首先,蚁群生成并随机分散在LOT表面。然后在每一轮中,让每只蚂蚁根据当前LOT表面的信息素分布和一定的随机概率爬到下一个位置。然后根据蚂蚁的运动和信息素的挥发更新信息素的分布。经过这几轮循环,爬得最高的蚂蚁的位置就是最优解。整个过程如下图所示。
最后需要补充的是,虽然我们的目标是最优解,但能否实现还是要看一些约束条件。首先,LOT曲面本身需要连续可导。如果最优解在一个孤立的峰上,周围都是穷解或通解,很可能没有蚂蚁能找到这个峰。其次,周期数需要大,以保证蚂蚁能够探索地表的大部分位置。