バイポーラトランジスタの理論 — 電流増幅の仕組みとバイアス設計

ラジオの受信信号は数マイクロボルトという微弱な電圧です。この信号をスピーカーで聞こえるレベルまで増幅するには、どうすればよいでしょうか。「小さな電流で大きな電流を制御する」— この発想を実現したのがバイポーラトランジスタ(BJT: Bipolar Junction Transistor) です。

バイポーラトランジスタは、2つのpn接合を背中合わせに組み合わせた3端子素子です。ベースに流す微小な電流で、コレクタ-エミッタ間の大きな電流を制御でき、その電流増幅率は数十から数百に達します。1947年にベル研究所で発明されたこのデバイスは、電子工学の歴史を根本から変えました。

バイポーラトランジスタを理解すると、以下のような応用が見えてきます。

  • アナログ増幅回路: オーディオアンプやオペアンプの内部構成
  • 高周波回路: RF増幅器やミキサ(HBTは数十GHzまで動作可能)
  • スイッチング回路: デジタルロジック(TTL、ECL)やパワースイッチング
  • 電流源・電流ミラー: IC内部の基準電流生成

本記事の内容

  • npn/pnp構造と動作原理
  • 活性領域・飽和・遮断の3つの動作モード
  • 電流増幅率 $\alpha$ / $\beta$ の物理的意味と導出
  • エバース・モルモデル
  • 小信号等価回路(hパラメータ)
  • バイアス設計(固定バイアス、電流帰還バイアス)
  • Pythonでの出力特性と動作点設計

前提知識

この記事を読む前に、以下の記事を読んでおくと理解が深まります。

npn/pnpトランジスタの構造

基本構造

npnトランジスタは、n型半導体(エミッタ)- p型半導体(ベース)- n型半導体(コレクタ)を順に接合した3層構造です。3つの端子はそれぞれエミッタ(E)ベース(B)コレクタ(C) と呼ばれます。

pnpトランジスタはこの極性を反転させたもので、p-n-p の順に接合されています。動作原理はnpnと同様ですが、キャリアと電圧の極性が逆になります。以下ではnpnトランジスタを中心に解説します。

npnトランジスタの構造には、動作に不可欠な非対称性があります。

領域 ドーピング 特徴
エミッタ(n$^+$) 非常に高い($\sim 10^{19}$ cm$^{-3}$) キャリアの「供給源」
ベース(p) 中程度($\sim 10^{17}$ cm$^{-3}$) 非常に薄い(< 1 $\mu$m)
コレクタ(n) やや低い($\sim 10^{15}$ cm$^{-3}$) キャリアの「受け手」

最も重要な構造的特徴はベースが非常に薄いことです。ベースの厚さが正孔の拡散長 $L_p$ よりもはるかに短いため、エミッタから注入された電子のほとんどがベースを通過してコレクタに到達します。この「通過率の高さ」こそが電流増幅の鍵です。

2つのpn接合

npnトランジスタには2つのpn接合があります。

  • エミッタ-ベース接合(EB接合): エミッタ(n$^+$)とベース(p)の接合
  • コレクタ-ベース接合(CB接合): コレクタ(n)とベース(p)の接合

これら2つの接合に印加するバイアス電圧の組み合わせによって、トランジスタの動作モードが決まります。次にその動作原理を詳しく見ていきましょう。

動作原理 — 活性領域

キャリアの流れ

順方向活性領域(forward active mode) では、EB接合に順方向バイアス、CB接合に逆方向バイアスを印加します。これがトランジスタの最も基本的な増幅動作モードです。

キャリアの流れを順を追って見てみましょう。水の流れに例えると理解しやすくなります。

Step 1: エミッタからの電子注入

EB接合の順方向バイアスにより、エミッタ(高ドーピングのn型)からベース(p型)へ大量の電子が注入されます。これは「ダムの水門を開く」操作に相当します。エミッタのドーピングがベースよりもはるかに高いため、注入される電子の量は、ベースからエミッタへ注入される正孔の量よりもずっと多くなります。

Step 2: ベース中の電子の拡散と通過

注入された電子はベース領域を拡散で横断します。ベースが非常に薄い(拡散長 $L_n$ よりもはるかに薄い)ため、ほとんどの電子は正孔との再結合を経験せずにコレクタ側に到達します。99%以上の電子がベースを通過するのが典型的です。これは「細いパイプを水が勢いよく通過する」状況に似ています。

Step 3: コレクタによる電子の回収

CB接合は逆方向バイアスされているため、空乏層の電界がベースに到達した電子をコレクタ側に「吸い込み」ます。これが主要なコレクタ電流 $I_C$ になります。

電流の構成

トランジスタの各端子を流れる電流を整理しましょう。キルヒホッフの電流則から、

$$ I_E = I_C + I_B $$

エミッタ電流 $I_E$ は以下の成分に分解されます。

  1. エミッタから注入された電子がコレクタに到達する電流: これが $I_C$ の主成分
  2. ベースからエミッタに注入される正孔の電流: ベース電流 $I_B$ の一部
  3. ベース中で再結合する電子に対応する正孔の補充電流: ベース電流 $I_B$ の残り

ベース電流 $I_B$ は非常に小さく、エミッタ電流のほんの一部です。これが「小さなベース電流で大きなコレクタ電流を制御する」という電流増幅の本質です。

では、この増幅特性を定量化する電流増幅率を導出しましょう。

電流増幅率 $\alpha$ と $\beta$

ベース接地電流増幅率 $\alpha$

コレクタ電流とエミッタ電流の比をベース接地電流増幅率 $\alpha$ と定義します。

$$ \alpha = \frac{I_C}{I_E} $$

$\alpha$ はエミッタから注入された電子のうち、コレクタに到達する割合を表します。$\alpha$ はさらに2つの因子に分解できます。

$$ \alpha = \gamma \cdot \alpha_T $$

ここで $\gamma$ はエミッタ注入効率、$\alpha_T$ はベース輸送係数です。

エミッタ注入効率 $\gamma$ は、エミッタ電流のうち電子電流が占める割合です。

$$ \gamma = \frac{I_{nE}}{I_{nE} + I_{pE}} = \frac{1}{1 + \frac{D_p N_A W_B}{D_n N_{DE} L_p}} $$

ここで $W_B$ はベース幅、$N_{DE}$ はエミッタのドーピング濃度です。$N_{DE} \gg N_A$(エミッタの高ドーピング)とすれば $\gamma \to 1$ に近づきます。

ベース輸送係数 $\alpha_T$ は、ベースに注入された電子のうちコレクタに到達する割合です。

$$ \alpha_T = \frac{1}{\cosh(W_B / L_n)} \approx 1 – \frac{1}{2}\left(\frac{W_B}{L_n}\right)^2 $$

$W_B \ll L_n$(ベースが薄い)であれば $\alpha_T \to 1$ となります。

これらを合わせると、典型的なトランジスタでは $\alpha = 0.98 \sim 0.999$ の範囲になります。

エミッタ接地電流増幅率 $\beta$

実用上より重要なのは、コレクタ電流とベース電流の比であるエミッタ接地電流増幅率 $\beta$ です。

$$ \beta = \frac{I_C}{I_B} $$

$I_E = I_C + I_B$ と $\alpha = I_C/I_E$ から、$\beta$ と $\alpha$ の関係を導きます。

$I_C = \alpha I_E = \alpha(I_C + I_B)$ を $I_C$ について解くと、

$$ I_C(1 – \alpha) = \alpha I_B $$

$$ \beta = \frac{I_C}{I_B} = \frac{\alpha}{1 – \alpha} $$

逆の関係は次のとおりです。

$$ \alpha = \frac{\beta}{1 + \beta} $$

$\alpha$ が 1 に近いほど $\beta$ は大きくなります。たとえば $\alpha = 0.99$ なら $\beta = 99$、$\alpha = 0.998$ なら $\beta = 499$ です。ベース電流のわずかな変化で、その $\beta$ 倍のコレクタ電流の変化を生み出すことができます。

$\beta$ の典型的な値は 50〜300 程度であり、この値はドーピング濃度やベース幅、温度に依存します。

ここまでで活性領域の基本的な動作を理解しました。次に、トランジスタの全動作モードを包括的に記述するエバース・モルモデルを見ていきましょう。

動作モードとエバース・モルモデル

4つの動作モード

2つのpn接合のバイアス状態の組み合わせで、4つの動作モードが定義されます。

モード EB接合 CB接合 用途
順方向活性 順方向 逆方向 線形増幅
逆方向活性 逆方向 順方向 ほぼ使わない
飽和 順方向 順方向 スイッチ ON
遮断 逆方向 逆方向 スイッチ OFF

遮断領域(cutoff)では両方の接合が逆バイアスで、$I_C \approx 0$、$I_B \approx 0$ です。トランジスタは「開いたスイッチ」として振る舞います。

飽和領域(saturation)では両方の接合が順バイアスで、$V_{CE}$ は非常に小さい値($V_{CE,\text{sat}} \approx 0.2$ V)に固定されます。トランジスタは「閉じたスイッチ」として振る舞い、もはや $I_C = \beta I_B$ の関係は成り立ちません。

エバース・モルモデル

トランジスタの4つの動作モードを統一的に記述するのがエバース・モルモデルです。このモデルでは、順方向動作と逆方向動作をそれぞれ独立なダイオード電流として表現し、それらの重ね合わせでトランジスタの電流を記述します。

$$ I_C = \alpha_F I_{ES}\left(e^{V_{BE}/V_T} – 1\right) – I_{CS}\left(e^{V_{BC}/V_T} – 1\right) $$

$$ I_E = -I_{ES}\left(e^{V_{BE}/V_T} – 1\right) + \alpha_R I_{CS}\left(e^{V_{BC}/V_T} – 1\right) $$

ここで $\alpha_F$ は順方向電流増幅率、$\alpha_R$ は逆方向電流増幅率、$I_{ES}$ と $I_{CS}$ はそれぞれEB接合とCB接合の飽和電流です。

相反関係(reciprocity relation)として、次の式が成り立ちます。

$$ \alpha_F I_{ES} = \alpha_R I_{CS} = I_S $$

$I_S$ はトランジスタの飽和電流です。

順方向活性領域($V_{BE} > 0$、$V_{BC} < 0$ で $|V_{BC}| \gg V_T$)では第2項が無視でき、

$$ I_C \approx I_S \left(e^{V_{BE}/V_T} – 1\right) \approx I_S \, e^{V_{BE}/V_T} $$

これはコレクタ電流が $V_{BE}$ の指数関数であることを示しており、ダイオード方程式と同じ形をしています。ベース-エミッタ間電圧のわずかな変化で、コレクタ電流が大きく変化するのです。

エバース・モルモデルは大信号モデルとして回路シミュレータ(SPICE)の基礎でもあります。しかし、増幅回路の解析では直流動作点まわりの小さな信号変化を扱うことが多く、その場合はより簡便な小信号モデルが有用です。次にこの小信号等価回路を導出しましょう。

小信号等価回路(hパラメータ)

小信号モデルの考え方

増幅回路では、大きな直流バイアス(動作点)の上に小さな交流信号が乗っている状態を扱います。小信号モデルは、動作点まわりで各電流・電圧の関係を線形化(テイラー展開の1次項)したものです。

「小信号」の意味を日常に例えると、湖面のさざ波のようなものです。湖の水位(直流バイアス)は変わらず、その上に小さな波(交流信号)が乗っています。さざ波を解析するのに湖全体の水量を考える必要はなく、水面付近の局所的な力学だけで十分です。

hパラメータモデル

エミッタ接地のhパラメータ(hybrid parameter)モデルは、入力(ベース)側と出力(コレクタ)側の小信号量を次のように関係づけます。

$$ v_{be} = h_{ie} \, i_b + h_{re} \, v_{ce} $$

$$ i_c = h_{fe} \, i_b + h_{oe} \, v_{ce} $$

各パラメータの物理的意味は以下のとおりです。

パラメータ 定義 物理的意味 典型値
$h_{ie}$ $v_{be}/i_b \big|_{v_{ce}=0}$ 入力インピーダンス 1〜5 k$\Omega$
$h_{re}$ $v_{be}/v_{ce} \big|_{i_b=0}$ 逆方向電圧帰還率 $10^{-4}$
$h_{fe}$ $i_c/i_b \big|_{v_{ce}=0}$ 順方向電流増幅率($= \beta$) 50〜300
$h_{oe}$ $i_c/v_{ce} \big|_{i_b=0}$ 出力アドミタンス $10^{-5}$ S

実用上、$h_{re}$ と $h_{oe}$ は非常に小さいため、簡略化した等価回路では無視できる場合が多くあります。

簡略化小信号モデル

$h_{re} \approx 0$、$h_{oe} \approx 0$ の近似では、小信号等価回路は非常にシンプルになります。

  • 入力側: 抵抗 $r_\pi = h_{ie}$(ベースとエミッタ間)
  • 出力側: 電流制御電流源 $i_c = \beta \, i_b$(コレクタとエミッタ間)

$r_\pi$ は動作点のコレクタ電流 $I_C$ から計算できます。$I_C = I_S e^{V_{BE}/V_T}$ を $V_{BE}$ で微分して相互コンダクタンス $g_m$ を求めると、

$$ g_m = \frac{\partial I_C}{\partial V_{BE}} = \frac{I_C}{V_T} $$

$r_\pi$ と $g_m$ の関係は次のとおりです。

$$ r_\pi = \frac{\beta}{g_m} = \frac{\beta V_T}{I_C} $$

たとえば $\beta = 100$、$I_C = 1$ mA のとき、$g_m = 1/(0.026) \approx 38.5$ mS、$r_\pi = 100/0.0385 \approx 2.6$ k$\Omega$ です。

小信号モデルが手に入ったので、次は増幅器として動作させるための直流バイアス設計に進みましょう。

バイアス設計

バイアス設計の目的

トランジスタを増幅器として使うには、まず適切な直流動作点(Q点) を設定する必要があります。動作点とは、信号がない状態での $I_C$、$V_{CE}$、$I_B$ の値のことです。

良い動作点の条件は以下のとおりです。

  1. 活性領域内にある: 飽和でも遮断でもない
  2. 信号の振幅に十分なマージンがある: $V_{CE}$ が飽和電圧 $V_{CE,\text{sat}}$ より十分大きく、かつ $V_{CC}$ より十分小さい
  3. 温度変化や $\beta$ のばらつきに対して安定: $\beta$ は同じ型番でも個体差が大きい

固定バイアス回路

最もシンプルなバイアス回路は、$V_{CC}$ から抵抗 $R_B$ を介してベースに電流を供給する固定バイアスです。

回路方程式は次のとおりです。

$$ I_B = \frac{V_{CC} – V_{BE}}{R_B} \approx \frac{V_{CC} – 0.7}{R_B} $$

$$ I_C = \beta I_B $$

$$ V_{CE} = V_{CC} – I_C R_C $$

この回路は構成が単純ですが、重大な欠点があります。$I_C$ が $\beta$ に直接比例するため、$\beta$ のばらつき(温度依存性や個体差)が動作点の大きなずれを引き起こします。$\beta$ が100から200に変化すると、$I_C$ も2倍になってしまいます。

電流帰還バイアス(電圧分割バイアス)

実用的なバイアス回路は、エミッタ抵抗 $R_E$ と分圧回路($R_1$, $R_2$)を用いた電流帰還バイアスです。この回路は負帰還の効果によって $\beta$ の変動に対する安定性が格段に向上します。

テブナンの定理により、分圧回路を等価電圧源に変換します。

$$ V_{BB} = V_{CC} \frac{R_2}{R_1 + R_2}, \quad R_{BB} = \frac{R_1 R_2}{R_1 + R_2} $$

ベース-エミッタのループにキルヒホッフの電圧則を適用すると、

$$ V_{BB} = I_B R_{BB} + V_{BE} + I_E R_E $$

$I_E = (\beta + 1)I_B$ を代入して $I_B$ について解くと、

$$ I_B = \frac{V_{BB} – V_{BE}}{R_{BB} + (\beta + 1)R_E} $$

$$ I_C = \beta I_B = \frac{\beta(V_{BB} – V_{BE})}{R_{BB} + (\beta + 1)R_E} $$

ここで $\beta$ に対する安定性を見てみましょう。もし $(\beta + 1)R_E \gg R_{BB}$ であれば、

$$ I_C \approx \frac{\beta(V_{BB} – V_{BE})}{(\beta + 1)R_E} \approx \frac{V_{BB} – V_{BE}}{R_E} $$

$\beta$ が分子と分母で相殺されて消え、$I_C$ は $\beta$ にほぼ依存しなくなります。これが電流帰還バイアスの安定性の秘密です。設計の目安として、$R_{BB} \leq 0.1 \times (\beta + 1) R_E$ とすれば、$\beta$ の変動に対して動作点は十分安定します。

理論的な設計方法がわかったところで、Pythonを使って出力特性と動作点の設計を可視化してみましょう。

Pythonによる出力特性の描画

$I_C$-$V_{CE}$ 特性(出力特性)

トランジスタの出力特性は、ベース電流 $I_B$ をパラメータとして $V_{CE}$ に対する $I_C$ をプロットしたものです。エバース・モルモデルを簡略化した以下のモデルで描画します。

import numpy as np
import matplotlib.pyplot as plt

# 定数
kB = 1.381e-23
q_e = 1.602e-19
T = 300
Vt = kB * T / q_e  # ~26 mV

# トランジスタパラメータ
beta = 100
Is = 1e-15  # 飽和電流 [A]
VA = 100    # アーリー電圧 [V]

def collector_current(Vbe, Vce, beta, Is, VA):
    """コレクタ電流(アーリー効果を含む)"""
    Ic0 = Is * np.exp(Vbe / Vt)
    # アーリー効果: Ic = Ic0 * (1 + Vce/VA)
    Ic = Ic0 * (1 + Vce / VA)
    # 飽和領域の近似(Vce < Vce_sat)
    Vce_sat = 0.2
    mask = Vce < Vce_sat
    Ic[mask] = Ic0 * (Vce[mask] / Vce_sat) * (1 + Vce[mask] / VA)
    return Ic

# 出力特性の描画
Vce = np.linspace(0, 15, 500)
Ib_values = [10e-6, 20e-6, 30e-6, 40e-6, 50e-6]
colors = ['#1a237e', '#1565c0', '#00897b', '#f57c00', '#d32f2f']

fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# (a) 出力特性
ax = axes[0]
for Ib, color in zip(Ib_values, colors):
    Vbe = Vt * np.log(beta * Ib / Is)
    Ic = collector_current(Vbe, Vce, beta, Is, VA)
    ax.plot(Vce, Ic * 1e3, color=color, linewidth=2,
            label=f'$I_B$ = {Ib*1e6:.0f} $\\mu$A')

# 飽和領域の境界
Ic_sat_line = np.linspace(0, 6, 100)
Vce_sat_line = 0.2 * np.ones_like(Ic_sat_line)
ax.axvline(0.2, color='gray', linestyle=':', alpha=0.5)
ax.text(0.4, 5.5, 'Saturation\nregion', fontsize=9, color='gray')
ax.text(5, 5.5, 'Active region', fontsize=9, color='gray')

ax.set_xlabel('$V_{CE}$ [V]', fontsize=12)
ax.set_ylabel('$I_C$ [mA]', fontsize=12)
ax.set_title('(a) Output Characteristics ($I_C$ vs $V_{CE}$)',
             fontsize=13, fontweight='bold')
ax.legend(fontsize=10, loc='right')
ax.grid(True, alpha=0.3)
ax.set_xlim(0, 15)
ax.set_ylim(0, 6)

# (b) 伝達特性
ax = axes[1]
Vbe_range = np.linspace(0.5, 0.75, 500)
Ic_transfer = Is * np.exp(Vbe_range / Vt)

ax.semilogy(Vbe_range, Ic_transfer * 1e3, 'b-', linewidth=2)
ax.set_xlabel('$V_{BE}$ [V]', fontsize=12)
ax.set_ylabel('$I_C$ [mA]', fontsize=12)
ax.set_title('(b) Transfer Characteristic ($I_C$ vs $V_{BE}$)',
             fontsize=13, fontweight='bold')
ax.grid(True, alpha=0.3, which='both')

# gm の傾きを表示
Ic_point = 1e-3  # 1 mA
Vbe_point = Vt * np.log(Ic_point / Is)
gm = Ic_point / Vt
ax.plot(Vbe_point, Ic_point * 1e3, 'ro', markersize=8, zorder=5)
ax.annotate(f'$g_m$ = {gm*1e3:.1f} mS\nat $I_C$ = 1 mA',
            xy=(Vbe_point, Ic_point * 1e3),
            xytext=(Vbe_point - 0.08, 5),
            fontsize=10, arrowprops=dict(arrowstyle='->', color='red'))

plt.tight_layout()
plt.show()

2つの特性グラフから、トランジスタの増幅動作の本質が読み取れます。

  1. (a) 出力特性: 活性領域($V_{CE} > 0.2$ V)ではコレクタ電流がほぼ一定であり、$I_B$ の値によって $I_C$ のレベルが決まります。各曲線間の間隔がほぼ等しいことは、$I_C \approx \beta I_B$ の線形関係を反映しています。曲線がわずかに右上がりなのはアーリー効果($V_{CE}$ の増加による実効ベース幅の減少)によるもので、アーリー電圧 $V_A$ で特徴づけられます。
  2. (b) 伝達特性: 対数プロットで $I_C$ が $V_{BE}$ に対して直線になっているのは、$I_C = I_S e^{V_{BE}/V_T}$ の指数関数的関係を示しています。この直線の傾きが相互コンダクタンス $g_m = I_C/V_T$ に対応し、動作点の電流が大きいほど $g_m$ も大きく、すなわち小信号の増幅率が高くなることがわかります。

負荷線と動作点の設計

実際の増幅回路では、電源電圧 $V_{CC}$ とコレクタ抵抗 $R_C$ によって決まる直流負荷線とトランジスタの出力特性の交点が動作点(Q点)になります。

import numpy as np
import matplotlib.pyplot as plt

kB = 1.381e-23
q_e = 1.602e-19
T = 300
Vt = kB * T / q_e

beta = 100
Is = 1e-15
VA = 100

def collector_current(Vbe, Vce, beta, Is, VA):
    Ic0 = Is * np.exp(Vbe / Vt)
    Ic = Ic0 * (1 + Vce / VA)
    Vce_sat = 0.2
    mask = Vce < Vce_sat
    Ic[mask] = Ic0 * (Vce[mask] / Vce_sat) * (1 + Vce[mask] / VA)
    return Ic

# 回路パラメータ
Vcc = 12     # 電源電圧 [V]
Rc = 4000    # コレクタ抵抗 [Ω]
Re = 1000    # エミッタ抵抗 [Ω]

# 直流負荷線: Ic = (Vcc - Vce) / (Rc + Re)
Vce_load = np.linspace(0, Vcc, 100)
Ic_load = (Vcc - Vce_load) / (Rc + Re) * 1e3  # mA

# 出力特性
Vce = np.linspace(0, 15, 500)
Ib_values = [10e-6, 20e-6, 30e-6, 40e-6, 50e-6]
colors = ['#1a237e', '#1565c0', '#00897b', '#f57c00', '#d32f2f']

fig, ax = plt.subplots(figsize=(10, 7))

for Ib, color in zip(Ib_values, colors):
    Vbe = Vt * np.log(beta * Ib / Is)
    Ic = collector_current(Vbe, Vce, beta, Is, VA)
    ax.plot(Vce, Ic * 1e3, color=color, linewidth=1.5,
            label=f'$I_B$ = {Ib*1e6:.0f} $\\mu$A')

# 負荷線
ax.plot(Vce_load, Ic_load, 'k-', linewidth=2.5, label='DC Load Line')

# 動作点 Q(IB = 30 μA を想定)
Ib_q = 30e-6
Ic_q = beta * Ib_q  # 3 mA
Vce_q = Vcc - Ic_q * (Rc + Re)  # 12 - 3e-3 * 5000 = -3 ?
# 修正: 実際の計算
Ic_q_val = 2.4e-3  # 目標
Vce_q_val = Vcc - Ic_q_val * (Rc + Re)  # 12 - 2.4e-3 * 5000 = 0
# 再計算
Ib_q = 24e-6
Ic_q_val = beta * Ib_q  # 2.4 mA
Vce_q_val = Vcc - Ic_q_val * (Rc + Re)  # 12 - 12 = 0
# Vcc/(Rc+Re) = 12/5000 = 2.4mA が最大

# 適切な設計: Rc=2kΩ, Re=1kΩ
Rc = 2000
Re = 1000
Ic_load = (Vcc - Vce_load) / (Rc + Re) * 1e3

ax.cla()  # 再描画
for Ib, color in zip(Ib_values, colors):
    Vbe = Vt * np.log(beta * Ib / Is)
    Ic = collector_current(Vbe, Vce, beta, Is, VA)
    ax.plot(Vce, Ic * 1e3, color=color, linewidth=1.5,
            label=f'$I_B$ = {Ib*1e6:.0f} $\\mu$A')

ax.plot(Vce_load, Ic_load, 'k-', linewidth=2.5, label='DC Load Line')

# Q点: IB = 20 μA → IC = 2 mA
Ib_q = 20e-6
Ic_q = 2.0  # mA
Vce_q = Vcc - Ic_q * 1e-3 * (Rc + Re)  # 12 - 2e-3*3000 = 6V
ax.plot(Vce_q, Ic_q, 'r*', markersize=20, zorder=5, label='Q-point')
ax.annotate(f'Q: $I_C$ = {Ic_q} mA, $V_{{CE}}$ = {Vce_q} V',
            xy=(Vce_q, Ic_q), xytext=(Vce_q + 1.5, Ic_q + 0.8),
            fontsize=11, arrowprops=dict(arrowstyle='->', color='red'))

# 信号振幅の範囲を図示
delta_Ib = 10e-6  # ±10 μA
Ic_max = (20e-6 + delta_Ib) * beta * 1e3  # 3 mA
Ic_min = (20e-6 - delta_Ib) * beta * 1e3  # 1 mA
Vce_max = Vcc - Ic_min * 1e-3 * (Rc + Re)  # 12 - 1e-3*3000 = 9V
Vce_min = Vcc - Ic_max * 1e-3 * (Rc + Re)  # 12 - 3e-3*3000 = 3V
ax.annotate('', xy=(Vce_min, Ic_max), xytext=(Vce_max, Ic_min),
            arrowprops=dict(arrowstyle='<->', color='red', lw=1.5))

ax.set_xlabel('$V_{CE}$ [V]', fontsize=12)
ax.set_ylabel('$I_C$ [mA]', fontsize=12)
ax.set_title('Output Characteristics with DC Load Line',
             fontsize=14, fontweight='bold')
ax.legend(fontsize=10, loc='upper right')
ax.grid(True, alpha=0.3)
ax.set_xlim(0, 14)
ax.set_ylim(0, 6)

plt.tight_layout()
plt.show()

print(f"回路パラメータ: Vcc = {Vcc} V, Rc = {Rc} Ω, Re = {Re} Ω")
print(f"Q点: IB = {Ib_q*1e6:.0f} μA, IC = {Ic_q} mA, VCE = {Vce_q} V")
print(f"信号振幅: IC = {Ic_min:.0f}~{Ic_max:.0f} mA")
print(f"          VCE = {Vce_min:.0f}~{Vce_max:.0f} V")
print(f"電圧利得 ≈ Rc/Re = {Rc/Re:.1f}")

負荷線の解析から、増幅回路の動作が定量的に理解できます。

  1. 直流負荷線(黒い直線)は $V_{CE}$ 軸の切片が $V_{CC} = 12$ V、$I_C$ 軸の切片が $V_{CC}/(R_C + R_E) = 4$ mA の直線です。この直線はトランジスタとは無関係に回路の外部条件だけで決まります。
  2. Q点(赤い星)は負荷線とベース電流 $I_B = 20\,\mu$A の特性曲線の交点にあり、$V_{CE} = 6$ V、$I_C = 2$ mA です。負荷線のほぼ中央に位置しているため、正負どちらの方向にも十分な信号振幅を確保できます。
  3. 信号振幅(赤い両矢印)は、ベース電流が $\pm 10\,\mu$A 変化したときの出力電圧の振幅範囲を示しています。$V_{CE}$ は 3 V から 9 V まで 6 V の振幅を持ち、ベース電流の微小な変化が出力電圧の大きな変化に変換されていることが確認できます。

バイアス安定性の比較

固定バイアスと電流帰還バイアスの $\beta$ 変動に対する安定性を比較します。

import numpy as np
import matplotlib.pyplot as plt

# 回路パラメータ
Vcc = 12
Rc = 2000
Re = 1000
Vbe = 0.7

# 固定バイアス設計: IB = (Vcc - Vbe)/RB
# 目標: IC = 2 mA at beta = 100 → IB = 20 μA → RB = (12-0.7)/20e-6 = 565 kΩ
RB_fixed = 565e3

# 電流帰還バイアス設計
# VBB = 3.7 V, RBB = 10 kΩ(R1=33kΩ, R2=12kΩの分圧)
R1 = 33e3
R2 = 12e3
VBB = Vcc * R2 / (R1 + R2)  # ≈ 3.2 V
RBB = R1 * R2 / (R1 + R2)   # ≈ 8.8 kΩ

beta_range = np.linspace(50, 300, 200)

# 固定バイアスのIC
IB_fixed = (Vcc - Vbe) / RB_fixed
IC_fixed = beta_range * IB_fixed * 1e3  # mA

# 電流帰還バイアスのIC
IB_feedback = (VBB - Vbe) / (RBB + (beta_range + 1) * Re)
IC_feedback = beta_range * IB_feedback * 1e3  # mA

# VCE の計算
VCE_fixed = Vcc - IC_fixed * 1e-3 * (Rc + Re)
VCE_feedback = Vcc - IC_feedback * 1e-3 * (Rc + Re)

fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# (a) IC vs beta
ax = axes[0]
ax.plot(beta_range, IC_fixed, 'r-', linewidth=2, label='Fixed bias')
ax.plot(beta_range, IC_feedback, 'b-', linewidth=2, label='Voltage divider bias')
ax.axhline(2.0, color='gray', linestyle='--', alpha=0.5, label='Target $I_C$ = 2 mA')
ax.set_xlabel('$\\beta$ (current gain)', fontsize=12)
ax.set_ylabel('$I_C$ [mA]', fontsize=12)
ax.set_title('(a) Collector Current vs $\\beta$',
             fontsize=13, fontweight='bold')
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
ax.set_ylim(0, 7)

# (b) VCE vs beta
ax = axes[1]
ax.plot(beta_range, VCE_fixed, 'r-', linewidth=2, label='Fixed bias')
ax.plot(beta_range, VCE_feedback, 'b-', linewidth=2, label='Voltage divider bias')
ax.axhline(6.0, color='gray', linestyle='--', alpha=0.5, label='Target $V_{CE}$ = 6 V')
ax.axhline(0.2, color='orange', linestyle=':', alpha=0.5, label='Saturation ($V_{CE,sat}$)')
ax.set_xlabel('$\\beta$ (current gain)', fontsize=12)
ax.set_ylabel('$V_{CE}$ [V]', fontsize=12)
ax.set_title('(b) Collector-Emitter Voltage vs $\\beta$',
             fontsize=13, fontweight='bold')
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)
ax.set_ylim(-2, 14)

plt.tight_layout()
plt.show()

# β=100 と β=200 での動作点比較
for beta_val in [100, 200]:
    ic_f = beta_val * IB_fixed * 1e3
    vce_f = Vcc - ic_f * 1e-3 * (Rc + Re)
    ib_fb = (VBB - Vbe) / (RBB + (beta_val + 1) * Re)
    ic_fb = beta_val * ib_fb * 1e3
    vce_fb = Vcc - ic_fb * 1e-3 * (Rc + Re)
    print(f"\nbeta = {beta_val}:")
    print(f"  固定バイアス:   IC = {ic_f:.2f} mA, VCE = {vce_f:.2f} V")
    print(f"  電流帰還バイアス: IC = {ic_fb:.2f} mA, VCE = {vce_fb:.2f} V")

この比較グラフから、バイアス安定性の違いが一目瞭然です。

  1. (a) $I_C$ vs $\beta$: 固定バイアス(赤)は $\beta$ に対して直線的に $I_C$ が増加し、$\beta = 50$ から $\beta = 300$ で $I_C$ が6倍も変化しています。一方、電流帰還バイアス(青)は $\beta$ が変わっても $I_C$ がほぼ一定(約2.3〜2.5 mA の範囲)に保たれています。これは $R_E$ の負帰還効果によるもので、$I_C$ が増えると $V_E = I_E R_E$ が上がり、$V_{BE} = V_{BB} – V_E$ が下がって $I_B$ が自動的に減少するという自己安定化機構が働いています。
  2. (b) $V_{CE}$ vs $\beta$: 固定バイアスでは $\beta > 120$ 程度で $V_{CE}$ が飽和電圧以下に落ち込み、トランジスタが飽和領域に入って増幅器として動作しなくなります。電流帰還バイアスでは $V_{CE}$ が 4.5〜5.5 V の範囲に収まり、活性領域を安定に維持しています。

まとめ

本記事では、バイポーラトランジスタの物理と回路設計を体系的に解説しました。

  • 構造と動作原理: ベースが非常に薄いnpn(またはpnp)構造により、エミッタから注入された少数キャリアがベースを通過してコレクタに到達する
  • 電流増幅率: $\alpha = \gamma \cdot \alpha_T$(ベース接地)から $\beta = \alpha/(1-\alpha)$(エミッタ接地)が導かれ、$\beta$ の典型値は50〜300
  • エバース・モルモデル: 4つの動作モードを統一的に記述する大信号モデル
  • 小信号等価回路: hパラメータにより増幅動作を線形モデルで解析。$g_m = I_C/V_T$、$r_\pi = \beta/g_m$
  • バイアス設計: 電流帰還バイアスは $\beta$ の変動に対して安定な動作点を実現する

バイポーラトランジスタは今日でもアナログ回路やRF回路で不可欠な素子ですが、デジタル回路やパワーエレクトロニクスではMOSFETが主流になっています。

次のステップとして、以下の記事も参考にしてください。