製造公差是你總是會碰到的東西,因此設計時沒有適當考量下很容易發生問題。
不談電子產業,光是我從網路買回來的DIY家具就常常有組不上去的問題,這很明顯就是公差太大。大東西尚且如此,小東西更是得斤斤計較了。
在計算公差堆疊的時候的基本邏輯是:
目標尺寸鏈 -> 決定計算方法 -> 設定公差或是設定設計尺寸
目標尺寸鏈
要分析,也得先決定分析對象,尺寸鏈是第一個需要定義的東西。
上圖是一個簡單的PCBA示意圖,有一個簡單的CPU頭上頂一個散熱片。
基本上我們可以很直覺的指出,Hchassis = Hgap+Hhs+Hcpu+Hpcb+Hst
但是為了完整性我們通常會定義方向然後取 ΣHi =0
決定計算方法 (以下忽略幾何公差以簡化說明)
方法的從直覺到統計分別是: Worst-case -> RSS-> 6 sigma
不管選用了哪一種我們都需要每個已知料件的:
1.Nominal Dimension
2.Tolerance 來決定剩下的那一個設計尺寸
如果以一個基本的決定Hgap的計算來說,步驟可能是:
1. 撈出各個料件的圖面 (如果有人是標單邊公差,自己調回雙邊公差來計算)
2. ΣHi+ Σ|tolerance|=0
3. 移項之後你可以得到你要的Hgap
而各種計算方法主要是差在 Σ|tolerance| 項次的計算方法。
最後通常我們會整成一個表格來計算,也有寫好的,GOOGLE可以找到一狗票。
Worst-case (WC)
使用最直覺的一種,就是各種最糟狀況的總和(單項涵蓋率100%)。
那麼 Σ|tolerance| = Σ|tol_chassis|+Σ|tol_hs|+ Σ|tol_cpu|+……
問題是,公差呈線性堆疊,料件越多會越顯誇張
RSS
納入了統計學原理,並"假設"製造的統計分布為常態分佈。在定義標準差為3σ底下(也就是單項涵蓋率99.72%的狀況),
Σ|tolerance| = sqrt(tol_chassis^2+tol_hs^2+tol_cpu^2+……)
這種算法下,公差堆疊的速度會隨著項次增加而平緩
舉例來說如果有5項公差0.5的料件堆疊,worst-case的結果是0.5×5=2.5,RSS則是sqrt(0.5^2 x 5)=1.12。
留1.12 mm gap還是2.5mm gap 可能就是還能接受或是Layout發飆的差別。
而實際上,目前主流也是這種作法居多,合理又好用
6 sigma
如果想把涵蓋率推進到6 σ這種變態的境界,那麼你得要另外再考量分布形狀的偏移,也就是納入Cpk值的影響。
這種算法下的Σ|tolerance| 項就不再是手能算的了。同時也很麻煩,因為不是所有廠商都有能力提供你Cpk資料。因此反而使用上限制高。
上述三種方法其實都有人用,差別在於成本的取捨
比如說你堆疊件數少,公差累積還能接受,大可直接使用WC取得寧可錯抓不可錯放的效果。當你料件多切去RSS也是完全合理,甚至供應商水準很夠,那麼也沒有理由不用升級版的6 sigma
設定公差/尺寸
其實這才是最後的目的,諸多限制下決定你的設計。
設定尺寸相對好理解,為什麼要設定公差?
雖然數學上我們可以算出任何的數字,但是在製造的世界永遠有極限,極限往前推一點點成本是巨大的差異
其中可能是製成工藝的限制,或是透過打掉來達成出貨標準,想當然爾成本都會轉嫁回料件單價
透過合理的"分配"公差,例如1mm的空間可以分成0.9+0.1也可以分成0.5+0.5,然而0.5mm可能對廠商不是難事,但是0.1mm可能是很貴或是根本沒辦法。
在機構料件本來就便宜的如今,這一點點差別佔成本比例可能就很高了。
順帶一提,像是上面的例子至少就被我忽略了錫高厚度,幾何公差,同樣的,在實際製程中,我們總是很有可能漏抓,所以加上一點點安全餘量,保護自己也是很合理的吧 ^ ^
附錄: 常見加工精度
(1條: 0.01mm(機械)/1mil(Layout) ):
0.1mm級 (同一個數量級都還是各有操作空間)
PCB Mass Lamination: 10% thickness
鋁擠: 0.5mm, 0.3mm
punch: 0.3mm
Die Cast: 0.3mm
0.01mm級 (同一個數量級都還是各有操作空間)
銑床: 0.05mm
射出成形: 0.05mm
SMT: 0.03mm
車床: 0.01mm
0.001mm級 (同一個數量級都還是各有操作空間)
EDM: 0.005mm
CNC: 0.005mm
磨床: 0.003mm