應用與前沿

拓樸最佳化(topology optimization)

交給設計師一塊金屬、它必須承受的載荷,以及它被栓固的點,然後問:材料該放在哪裡,才能讓零件盡可能又硬又輕?人的直覺給出合理的形狀,但真正最佳的那個往往出人意表——充滿有機的孔洞與分岔的支柱,像骨頭一樣。拓樸最佳化就是讓數學決定材料該在何處、又可在何處被刨去,藉此找出這類形狀的計算方法。

訣竅在於把一個離散的「是或否」問題(這裡有材料還是空的?)變成一個連續最佳化器能咀嚼的東西。你用一張小元素的網格填滿設計區域,給每個指派一個介於 0(空)與 1(實)之間的密度變數。然後你設立一個最佳化:在總材料有預算的限制下,把像結構柔度(它在載荷下偏移多少)這樣的成本最小化。每次評估都需要一次有限元素模擬,以計算當前設計如何變形,而且關鍵地,還需要成本對每個元素密度的梯度,這由伴隨法高效供給(它是自動微分的表親,大約多解一次就能得到所有那些導數)。接著一個基於梯度的最佳化器把密度往下坡推,一個過濾步驟把模糊的中間密度推向乾淨的實或空,重複到布局穩定為止。

拓樸最佳化,常以生成式設計為名行銷,如今塑造輕量化的飛機托架、積層製造(3D 列印)零件、散熱片,甚至建築結構,動輒削減數十個百分點的重量。誠實的告誡:結果取決於所選的目標、限制與網格解析度,因此不同的問題陳述給出不同的「最佳」形狀;問題一般是非凸的,所以你找到的是一個好的局部最佳,而非有保證的全域最佳;而原始輸出通常需要清理才能製造。它是一個強大的構想產生器,而非自動吐出唯一真設計的神諭。

一位航太工程師想要最輕的托架,能撐住引擎座而不過度撓曲。拓樸最佳化從一塊實心方塊出發,每次疊代跑一次有限元素求解與伴隨梯度,逐漸把所有承載很少的部分挖空——收斂到一個有機的、像骨頭的晶格,比手工設計的零件輕 40%,且只有靠 3D 列印才得以實現。

從一塊實心方塊出發,最佳化器把低應力的材料刨成像骨頭的晶格。

那個「最佳」形狀只對你所選的目標、限制與網格才最佳;問題是非凸的,所以它是一個好的局部最佳,而非全域最佳。再者原始布局通常需要人工清理才能製造。

又稱
structural optimizationgenerative design結構最佳化拓撲優化