那根彈簧把扭矩問題換成了長度問題
有人問,固定 CPU 散熱器的那幾支螺絲為什麼上面套著彈簧。討論串給了兩個好答案和一句很漂亮的旁註。好答案是公差與熱膨脹,以及那幾支螺絲本來就是設計成「鎖到停為止」的。旁註是一則回覆,指出螺絲和螺栓本來就是彈簧,只是很硬的彈簧,而如果空間夠,用夠長的螺絲加墊套就能做出你要的彈簧常數。三句都對,合起來描述的是一次刻意的交換。
那句旁註是對的,而且它就是整個模型
螺栓是一個彈性件。鎖緊會把它拉長,而夾緊力就是那段伸長乘上它的剛性。 接合之後怎麼表現,決定它的不是螺栓本身, 而是螺栓剛性與被夾件剛性的比值,那件事見 螺栓是一根彈簧。
大家最先遇到的後果是:硬螺栓配硬接頭, 對長度的微小變化非常不耐。 幾個微米的嵌入、兩種熱膨脹係數不同的材料之間的一次溫度變化、 公差堆疊剛好落在不對的那一端。每一件都是很小的位移, 而在剛硬的組件裡,很小的位移就是很大的載荷變化。 單是溫度會做什麼,見溫度會移動預力。
在螺栓接合裡,常見的解法是增加夾持長度, 因為比較長的螺栓是比較軟的彈簧,會把同樣的位移攤到更多材料上, 那件事見螺絲長度與夾持長度。 散熱器沒有長度可以加。 整疊只有幾釐米,而底下的封裝有一個必須待在裡面的荷重窗口。 所以那份柔度改成用一個單獨的零件買回來。
「鎖到底」買到的是什麼
那則說「這種螺絲是鎖到停為止」的回覆講的正是真正的機制,值得直說一次。 螺絲一旦抵到硬止點, 之後的扭矩是進到止點裡,不是進到彈簧裡。 彈簧被壓縮的距離是幾何決定的固定值,而它給出的力就是那段距離乘上它的彈簧常數。
所以載荷不再是「誰把起子轉得多用力」的函數, 也不再是螺紋摩擦、螺紋有沒有上油、有沒有沾到濕氣的函數。 而那些正好就是讓一個扭矩值不可靠的變數; 一個扭矩規格對它們做了什麼沒說出口的假設, 見扭矩規格假設了一個摩擦狀態。
載荷控制從扭矩換成了位移。 那跟轉角控制與降伏點控制是同一族的決定,都是用一個轉動量取代一個力的量測。 差別在這裡是幾何在做這件事,而操作者完全不需要被訓練。
真正在做事的條件是:那個停點坐在夾緊路徑裡面。 把它移到路徑外面(封閉端螺帽頂在過長的柱上就是這樣),同一個機構會給出相反的結果: 扳手照樣往上爬、照樣跳,而什麼都沒有被夾住。
不確定度沒有消失,它換了供應商
這是最值得帶走的一段,因為那根彈簧很容易被讀成「免費的準確度」。它不是。 離散只是從一個地方搬到了另一個地方,而新的那個地方有價目表。
扭矩控制隨身帶著摩擦狀態。VDI 2230 對「在原始接頭上校正過的扭矩鎖付」給的是 ±17 到 23%;而比較常聽到的 ±25% 究竟從哪裡來, 在你的鎖緊方法把預力控制得多差裡追過一遍。 那些沒有一項在組裝者的控制之下,事後也沒有一項看得見。
壓縮彈簧帶的則是它自己的製造公差,而那個公差是一件被規定、可以分級的事。 EN 15800 規定冷捲壓縮彈簧的品質要求,定義了三個品質等級, 容許偏差涵蓋圈徑、自由長度、垂直度與平行度, 以及這裡最關鍵的一項:在指定長度下的彈簧力。 等級 1 公差帶最緊、價格最高;等級 3 最鬆。
這次交換用一句話講完。 扭矩控制的接頭,繼承的是一個沒有人看得見也調不動的物理過程帶來的不確定度。 位移控制的接頭,繼承的是一個零件的公差,而那個公差是採購單上的一行字。 兩個都不是免費的。只有其中一個是你可以決定的。
同一個想法在螺栓接合上的版本
散熱器螺絲是看得見的那個案例,但同樣的交換在一般螺栓接合裡也做得到, 行程小得多,形式是碟形彈簧墊圈。DIN 6796 管的就是螺栓接合用的這種墊圈, 而站上的墊圈那一頁把它列成型式表裡的一行: 它在熱循環與沉陷之下維持預力,處理的是預力流失而不是旋轉。 那張表的其餘各列、以及每一種墊圈實際上在做什麼, 見墊圈到底在做什麼。
在把它當成通用解法之前,有兩件事值得知道, 而這兩件都來自標準摘要而不是我們讀過的條文,所以請當成待查證的線索而不是引用的要求。 它們被描述為適用於靜態載荷, 而且尺寸設計使其最大力相當於 8.8 或 10.9 級螺栓夾緊力的一大部分。 第二點要仔細讀:一個在工作載荷下已經幾乎壓平的彈簧元件, 剩下的行程非常少,所以它提供的是一小段彈性餘裕, 而不是散熱器那根彈簧提供的那種柔度。
代價
- 高度與零件數。柔度得住在某個地方, 而在散熱器上,它是整疊扣件裡最高的那一段。
- 彈簧是一個會鬆弛的零件。 它在溫度下、在時間裡有自己的行為,而它現在永久待在載荷路徑上。
- 驗證方式變了。你不能再用扭力扳手確認載荷, 因為抵到底之後的扭矩告訴你的是止點的事。 剩下的檢查是尺寸的,或者是對你指定的那個彈簧等級的信任。
- 那個止點必須是真的止點。 上面每一句都預設螺絲會在一個受控的位置抵到硬肩。 如果它是抵在螺紋裡、或抵在一個會屈服的面上, 那個原本在設定載荷的幾何就已經移動了。
什麼時候該用這一招
- 底下的零件要的是一個荷重窗口,不是一個下限。 太小裝不貼合,太大就壓壞。用扭矩控制去落進一個窗口,本來就不是好辦法。
- 夾持長度短到當不了有用的彈簧。 幾釐米的堆疊攤不掉一次溫度變化。加一個軟元件是唯一拿得到的柔度。
- 實際組裝的人不是你寫規格時設想的那個人。 一支會停的螺絲,一隻趕時間的手鎖不過設計載荷。
- 不要用在靠摩擦傳遞橫向載荷的接頭上。 那種情況要的是零件容許範圍內最高的預力, 不是一個受控而且刻意保守的預力。
這一篇不屬於六步中的任何一步。它橫跨各步,或者發生在組裝之後。導致它的那些決定是在哪裡做的,見指定一顆螺絲,那篇寫的是順序,以及為什麼順序做反了是重工。
常見問題
散熱器的螺絲為什麼要套彈簧?
因為底下的封裝必須被夾在一個荷重窗口裡,而整疊太短,螺絲自己當不了有用的彈簧。串一個軟元件進去,組件就可以因為嵌入、熱膨脹或公差而稍微改變長度,而載荷不會跟著大幅變化。接著螺絲被設計成鎖到底,於是載荷由「彈簧被壓了多少」決定,不是由「誰把起子轉得多用力」決定。
彈簧比扭力扳手準嗎?
它不是免費的準確度,是換了一個不確定度的來源。扭矩控制隨身帶著螺紋與頭下的摩擦狀態,那是沒有人看得見、事後也調不動的;VDI 2230 對在原始接頭上校正過的扭矩鎖付給的是 ±17 到 23%。彈簧帶的是它自己的製造公差,而 EN 15800 把那件事變成可分級的量:它在三個品質等級底下規定了「在指定長度下的彈簧力」的容許偏差。不確定度從繼承來的變成買來的。
為什麼不乾脆用比較長的螺絲達到一樣的效果?
可以,而且來源討論串裡就有一則這樣講:螺栓本來就是彈簧,只是很硬的那種,夠長的螺絲加墊套就能給你想要的彈簧常數。障礙是體積。散熱器那一疊只有幾釐米,沒有地方放多出來的長度。空間真的存在的時候,增加夾持長度才是常規解,而且是比較好的解,因為它是拿掉一個零件而不是加一個。
一般螺栓上可以用碟形彈簧墊圈做同一件事嗎?
那是同一個想法、行程小得多的版本,也是比較小的介入。DIN 6796 管的是螺栓接合用的碟形彈簧墊圈,常見的描述是它適用於靜態載荷,而且尺寸設計使其最大力相當於 8.8 或 10.9 級螺栓夾緊力的一大部分。這些條文我們沒有讀過,所以請當成待查證的線索。實務上的讀法是:一個在工作載荷下已經幾乎壓平的墊圈,剩下的行程非常少,所以它提供的是對抗沉陷的彈性餘裕,不是散熱器彈簧提供的那種對長度的容忍。
這種接頭要怎麼檢查?
不能用扭力扳手。螺絲一旦頂到止點,你讀到的扭矩講的是止點而不是彈簧裡的載荷。剩下的是尺寸上的檢查,確認螺絲真的抵到了肩、彈簧被壓到了預期的高度;再不然就是對你指定的那個彈簧等級的信任。這就是這次交換隱藏的代價:載荷變得可重現,同時也變得更難在產線上確認。
參考資料
- EN 15800:2008 — 圓線冷捲壓縮彈簧的品質規範;三個品質等級與「指定長度下的彈簧力」容許偏差的出處
- DIN 6796 — 螺栓接合用碟形彈簧墊圈;M2 以上的尺寸表
- VDI 2230 第 1 部 — 鎖付係數,以及本篇所依據的剛性比模型
本頁的來源層級不一致,值得逐項說明。剛性比模型與鎖付係數的數字取自上面連到的站內頁面,那些數字當時已經對 VDI 2230 與 NASA RP-1228 查證過。EN 15800 的內容,也就是它定義三個品質等級、容許偏差包含指定長度下的彈簧力這兩點,來自標準摘要與目錄頁,不是我們讀過的條文;那裡對等級只有定性描述,所以本篇沒有引用任何百分比,因為根本沒有拿到。DIN 6796 關於靜態載荷與「最大力相當於螺栓夾緊力一大部分」的敘述屬於同一個摘要層級,內文已標示為待查證的線索。本頁沒有任何處理器封裝的荷重數值,因為我們找不到可引用的公開規格。EN 15800 是 CEN 標準不是 ISO 標準,所以連的是目錄頁而不是 iso.org;站上先前沒有引用過它,也就沒有既有的編號可以抄。
詢價
如果一個接頭要的是受控的載荷,而不是零件容許範圍內最高的預力, 請把那個窗口與可用的空間告訴我們。 這個決定往哪邊走會換掉螺絲,而且通常比牙的任何條件都更早換掉它。