量産・品質・認証

歩留まり

生産品のうち良品の割合。品質管理の指標。

概要

歩留まり(Yield Rate)とは、生産された全数のうち、品質基準を満足した良品の割合のことである。製造業における最も基本的な品質指標の一つであり、歩留まりが高いほど製造コストが低く、品質が安定していることを示す。

組み込み機器の量産においては、PCB(プリント基板)の製造歩留まり、SMT(表面実装)工程の歩留まり、機能検査(FCT)歩留まりなど、工程ごとに歩留まりを管理することが重要である。

歩留まり(%)= 良品数 ÷ 生産数 × 100

例えば、1000台を製造して960台が良品であれば歩留まりは96%となる。

工程別歩留まりの関係

複数の工程が連続する場合、各工程の歩留まりが乗算されて最終的な製品歩留まりとなる。

工程工程歩留まり
PCB製造99.5%
SMT実装99.0%
リフロー99.8%
AOI検査通過98.5%
FCT検査合格97.0%
総合歩留まり99.5 × 99.0 × 99.8 × 98.5 × 97.0 ≈ 93.9%

歴史・背景

歩留まりの概念は製造業一般に古くから存在するが、電子機器・半導体分野での歩留まり管理は1960〜70年代の集積回路(IC)製造において特に重要視されるようになった。

半導体ウェハ上に集積回路を製造する際、ウェハ上のすべてのチップが正常動作するわけではなく、製造プロセスの微細化が進むほど歩留まり管理が困難になる。TSMC・Samsungなどの半導体メーカーにとって歩留まりは企業の競争力に直結する重要指標である。

プリント基板(PCB)の実装工程においては、1980年代のSMT技術の確立とともに自動外観検査(AOI)が普及し、統計的工程管理(SPC:Statistical Process Control)が導入された。シックスシグマ(Six Sigma)の概念がMotorola社で1980年代に提唱され、歩留まり管理の数理的手法が体系化された。


技術仕様

歩留まりの統計的指標

シックスシグマでは、工程能力指数(Cp/Cpk)と歩留まりの関係が以下のように定義される。

シグマレベル工程能力指数 Cpk不良率 (DPMO)歩留まり
1.0066,807 ppm93.32%
1.336,210 ppm99.379%
1.67233 ppm99.977%
2.003.4 ppm99.99966%

DPMO = Defects Per Million Opportunities(百万機会あたりの不良数)

工程能力指数の計算

import numpy as np
from scipy import stats

def calculate_process_capability(measurements, usl, lsl):
    """
    工程能力指数 Cp および Cpk を計算する
    
    Parameters:
    - measurements: 測定値のリスト
    - usl: 上限規格値(Upper Spec Limit)
    - lsl: 下限規格値(Lower Spec Limit)
    
    Returns:
    - Cp: 工程精度指数
    - Cpk: 工程能力指数(偏り考慮)
    """
    mean = np.mean(measurements)
    std = np.std(measurements, ddof=1)  # 不偏標準偏差
    
    # Cp: 規格幅 ÷ 工程のバラつき(6σ)
    cp = (usl - lsl) / (6 * std)
    
    # Cpk: 規格中心からのずれを考慮
    cpu = (usl - mean) / (3 * std)  # 上限側
    cpl = (mean - lsl) / (3 * std)  # 下限側
    cpk = min(cpu, cpl)
    
    # 不良率推定(正規分布仮定)
    defect_rate = (stats.norm.cdf(lsl, mean, std) +
                   (1 - stats.norm.cdf(usl, mean, std)))
    yield_rate = 1 - defect_rate
    
    print(f"平均値: {mean:.4f}")
    print(f"標準偏差: {std:.4f}")
    print(f"Cp  = {cp:.3f}")
    print(f"Cpk = {cpk:.3f}")
    print(f"推定歩留まり: {yield_rate * 100:.4f}%")
    print(f"推定不良率: {defect_rate * 1e6:.1f} ppm")
    
    return cp, cpk, yield_rate

SMT実装の典型的な不良分類

不良分類(IPC-A-610基準):

はんだ不良:
- ブリッジ(Bridge): 隣接ランド間のはんだショート
- 不足はんだ(Insufficient Solder): はんだ量が少ない
- 過剰はんだ(Excess Solder): はんだ量が多すぎる
- 冷えはんだ(Cold Solder): 濡れ不良・強度不足
- 立ち半田(Tombstone): チップ部品の片側浮き

実装不良:
- 欠品(Missing): 部品が実装されていない
- 逆向き(Reversed): 部品の向きが逆
- ずれ(Misalignment): 実装位置がずれている
- 異品番(Wrong Value): 誤った部品が実装されている

動作原理

歩留まり管理のPDCAサイクル

歩留まり向上はPDCA(Plan-Do-Check-Act)サイクルで継続的に改善する。

Plan(計画):
- 目標歩留まりの設定(例:98.5%)
- 不良モードの仮説設定
- 測定計画の策定

Do(実施):
- 生産の実行
- 各工程での検査データ収集
- 不良品の隔離・識別

Check(確認):
- 歩留まりデータの集計・分析
- 不良パレート分析
- 管理図(コントロールチャート)による傾向把握

Act(改善):
- 不良原因の特定(なぜなぜ分析)
- 是正措置の実施(工程パラメータ調整)
- 予防措置の水平展開

不良分析(FA:Failure Analysis)

# 不良発生率の統計分析例
from collections import Counter
import matplotlib.pyplot as plt

def analyze_defects(defect_log):
    """
    不良データのパレート分析
    上位不良モードに注力するため、頻度順に並べる
    """
    defect_counts = Counter(defect_log)
    total = sum(defect_counts.values())
    
    sorted_defects = defect_counts.most_common()
    
    print("=== 不良パレート分析 ===")
    cumulative = 0
    for mode, count in sorted_defects:
        rate = count / total * 100
        cumulative += rate
        print(f"{mode:30s}: {count:4d}件 ({rate:5.1f}%) [累計: {cumulative:5.1f}%]")
    
    # 80%ルール: 上位20%の不良モードが全体の80%を占める
    print(f"\n総不良数: {total}件")
    
    return sorted_defects

# 使用例
defect_data = [
    "はんだブリッジ", "はんだブリッジ", "はんだブリッジ",
    "部品欠品", "部品欠品",
    "逆向き実装",
    "はんだ不足", "はんだ不足",
    "ずれ実装",
    "はんだブリッジ"
]
analyze_defects(defect_data)

用途・ユースケース

半導体ウェハの歩留まり管理

半導体チップ(MCUSoCFPGAなど)の製造では、ウェハ(シリコン円盤)上の全チップのうち、検査で合格したチップの割合が歩留まりとなる。

ウェハ歩留まり計算の概念:
ウェハ直径: 300mm
チップサイズ: 10mm × 10mm
ウェハあたりのチップ数: 約706個
検査合格チップ数: 634個
歩留まり: 634 ÷ 706 ≈ 89.8%

歩留まり改善1%の効果(10万ウェハ/月の場合):
- 増加チップ数: 10万 × 706 × 1% ≈ 70.6万個/月
- 付加価値: (単価 × 70.6万個)/月

IoT機器量産の歩留まり管理

IoT機器の量産では、無線モジュール(BLE/Wi-Fi)を含む機能検査の歩留まり管理が特に重要である。ESP32STM32を使った製品では、書き込み歩留まりと機能検査歩留まりを分けて管理する。

IoT機器FCT歩留まり管理項目:
1. 電源投入・起動確認(歩留まり目標: 99.9%)
2. ファームウェア書き込み確認(99.9%)
3. BLE/Wi-Fiアドバタイズ確認(99.5%)
4. センサ入力値の範囲確認(99.0%)
5. バッテリー充電確認(98.5%)
6. ボタン・LED動作確認(99.8%)

総合FCT歩留まり: 99.9 × 99.9 × 99.5 × 99.0 × 98.5 × 99.8 ≈ 96.6%

歩留まりと製造コストの関係

歩留まりが製造コストに与える影響は大きい。

歩留まり不良率1000台製造時の不良台数ロス原価(1台1万円の場合)
99%1%10台10万円
97%3%30台30万円
95%5%50台50万円
90%10%100台100万円

実装・開発のポイント

設計段階での歩留まり向上策

設計段階での工夫が量産歩留まりに大きく貢献する。

歩留まり向上のための設計工夫:

部品選定:
□ 実績のある量産部品を使用する(新規部品は試作で評価)
□ 部品のばらつき(公差)を考慮した回路設計
□ 温度ドリフトに対する余裕(マージン)確保

基板設計(DFM):
□ フットプリントをメーカー推奨に合わせる
□ ランドサイズを大きめに取る(小型化より歩留まり優先)
□ はんだ印刷に適したソルダーマスク設計
□ 向き・極性の明確な表示

ファームウェア:
□ 書き込みエラー時の自動リトライ実装
□ 書き込み完了の確実な検証
□ 校正データの書き込みと検証

テスト自動化による歩留まりデータ収集

class ProductionTestStation:
    """
    量産試験ステーションの歩留まりデータ収集クラス
    """
    def __init__(self, station_id):
        self.station_id = station_id
        self.pass_count = 0
        self.fail_count = 0
        self.fail_reasons = []
    
    def run_test(self, dut_serial):
        """
        DUT(被試験体)の機能試験を実行し結果を記録
        """
        results = {}
        
        # 各試験項目の実行
        results['power_on']    = self.test_power_on(dut_serial)
        results['firmware_ver'] = self.test_firmware_version(dut_serial)
        results['ble_rssi']    = self.test_ble_output(dut_serial)
        results['sensor_adc']  = self.test_sensor_input(dut_serial)
        
        # 判定
        all_pass = all(r['pass'] for r in results.values())
        
        if all_pass:
            self.pass_count += 1
            status = "PASS"
        else:
            self.fail_count += 1
            fail_items = [k for k, v in results.items() if not v['pass']]
            self.fail_reasons.extend(fail_items)
            status = "FAIL"
        
        # データベースに記録
        self.log_result(dut_serial, status, results)
        
        return all_pass
    
    @property
    def yield_rate(self):
        total = self.pass_count + self.fail_count
        return (self.pass_count / total * 100) if total > 0 else 0.0
    
    def print_summary(self):
        print(f"=== 試験ステーション {self.station_id} サマリー ===")
        print(f"良品: {self.pass_count}台")
        print(f"不良: {self.fail_count}台")
        print(f"歩留まり: {self.yield_rate:.2f}%")

他技術との比較

指標歩留まり(Yield)信頼性(Reliability)品質(Quality)
測定時期製造時使用中・経時変化製造時〜使用中
対象初期不良経時劣化・突発故障全ての欠陥
代表指標良品率(%)MTBF(平均故障間隔)ppm・Cpk
改善手段工程最適化設計マージン・加速試験QC・SPC

歩留まりは信頼性試験と密接に関連している。製造時の初期不良(早期故障)を歩留まり管理で削減し、使用中の経時故障を信頼性試験で検証・改善することで、製品の総合品質が確保される。またEMC(電磁両立性)問題は量産時に突然顕在化することがあり、EMC対策が不十分な場合は歩留まりの低下要因にもなる。

関連用語

参考リンク