2段オペアンプ+MOSFETによるVCCS(電圧制御電流源)

<!-- markdown-mode-on --> [How to Design a Precision Current Pump with Op-Amps](https://www.allaboutcircuits.com/technical-articles/how-to-design-a-precision-current-pump-with-op-amps/?utm_source=chatgpt.com) を引用し、出力をパワートランジスタで補強しています。 <div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg383GuuQ9oXB18FCNAAXSa6l7_JBxf1Mqvb4VWDCz4-DdUo9DccYNK8GgNoD6zW3nVGdqCmyaU4RgRmu219-onhedhlV39_ZorYuOJGiCQ3toh9_8ZNxGikSylCl_fOLS5XsDXgaqMrxxDKW8Qy8Oi4pZibP4Xrdwqc0stcXfnkORdV3YvDGQ_pfXQBGg_/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202025-09-08%20195012.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="1032" data-original-width="960" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg383GuuQ9oXB18FCNAAXSa6l7_JBxf1Mqvb4VWDCz4-DdUo9DccYNK8GgNoD6zW3nVGdqCmyaU4RgRmu219-onhedhlV39_ZorYuOJGiCQ3toh9_8ZNxGikSylCl_fOLS5XsDXgaqMrxxDKW8Qy8Oi4pZibP4Xrdwqc0stcXfnkORdV3YvDGQ_pfXQBGg_/s1600/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202025-09-08%20195012.png" /></a></div> **入力電圧を基準にオペアンプで作った小さな制御電流を、BJT で電流増幅して負荷に流す構造**です。 <span><a name="more"></a></span> --- ## 回路の基本構造 ### 1. 入力段(電圧 → 電流変換) * **2つのオペアンプ + 抵抗ネットワーク**で「電圧制御電流源(VCCS)」を作っています。 * 入力電圧 `V(IN)` を、抵抗比によってスケーリングし、 **オペアンプの出力電流(I(V5))が V(IN) に比例**するようになっています。 * V2 はオペアンプの基準電位を決めるリファレンス電源です。 * V2=0V のとき:動作点は GND 基準。負方向(ベースを負に振る領域)は動作できない → 出力電流は片方向のみ。 * V2>V のとき:出力電流 I(RLOAD1) が 0 ではなく、常にある一定の直流値にバイアスされるDC オフセット付き電流源になるU2 の役割 * <b>U2 の役割はボルテージフォロワ(バッファ)</b>です。 * U1 と抵抗ネットワークで得られた「電流指令電圧」を直接トランジスタに渡すと、トランジスタや負荷の影響で誤差が生じる。 * そこで <b>U2 を入れて「低インピーダンス出力」</b>にし、トランジスタのベースをしっかり駆動する。 (特にパワートランジスタ 2SD1047 のベース電流は数十 mA 必要になるので、オペアンプをバッファとして強化している。) * また、U2 の入力は非常に高インピーダンスなので、U1 側の精度を損なわない。 ### 2. 出力段(電流ブースト) * 2つ目のオペアンプの出力電流は、そのまま大きな負荷を駆動できません。 * そこで **BJT(2SD1047)** を「電流バッファ」として追加。 * オペアンプ出力電流 = BJT のベース電流 * BJT のコレクタ-エミッタ電流(I(RLOAD1)) ≈ ベース電流 × β * つまり、前段で作った「Vin に比例した小電流」を、BJT によって「大電流」に拡大して負荷に供給します。 ### 3. 動作原理まとめ * **Vin をかける** → 抵抗比で決まる **オペアンプ出力電流**が発生する * その電流が **BJT のベース電流**になる * **出力電流(Ic) ≈ Vin ×(スケーリング係数 × β)** * よって「Vin に比例した出力電流源」が得られる --- ## ポイント * 前段の VCCS(オペアンプ + 抵抗)で「比例関係」が決まる * 後段の BJT は「電流を大きくするだけ」 * ただし実際には **β のばらつきや温度依存**で、完全な比例性や再現性は保証されない --- ## 1) 理論(関係式・考え方) 回路では 2 段目のオペアンプ(出力ノード `OUT` → ベースへ)は **BJT のベース電流を供給**して、BJT のコレクタ電流をフィードバックで作り出します。基本的に成り立つ式は: * トランジスタの動作が「アクティブ領域」なら $$ I_C \approx \beta \, I_B $$ ($\beta$ = DC current gain = h$_{FE}$) * オペアンプの出力がベース電流 $I_{op}$ を供給するので、ほぼ $$ I_B = I_{op} $$ (測定上はオペアンプ出力の一部が他の経路に流れることもあるが、あなたのネットリスト構成ではベースに直接つながっているので概ね同義) したがって簡単には $$ I_C \approx \beta \times I_{op} $$ 留意点(現実的な補正): * トランジスタが飽和すると $I_C$ と $I_B$ の比は単純な $\beta$ ではなくなり、飽和時は必要な $I_B$ が増える(飽和係数を考慮)。 * オペアンプには **出力電流の上限** がある(データシート参照)。それが直接ベース駆動の上限になる。 * 回路全体としては「電流ポンプ(記事の理論式)」が目標電流を作ろうとするが、**(1)op-amp の出力電流制限、(2)トランジスタの最大電流・熱、(3)負荷と電源のコンプライアンス(電圧・抵抗)** のいずれかで打ち切られる。 参照:AD8605 の出力電流仕様(後述)と 2SD1047 の電流仕様(後述)。([Analog Devices][1], [STMicroelectronics][2]) --- ## 2) あなたのネットリストでの期待値(数値例) あなたの回路パラメータを使って実際に「理論的に期待される値」を出します(ネットリストのパラメータを読み替えています)。 * 回路の設計式(あなたのコメント) $$ I_{OUT} = \frac{R4}{R1} \,/\, R2 \times V_{in} = \frac{100\text{k}}{100} \,/\, 100\text{k} \times V_{in} = \frac{V_{in}}{100} $$ よって、出力(負荷)電流 $I_C$ は理想的には $V_{in} / 100$ \[A](記事どおり)。 * あなたの V3 定義(ネットリスト): ``` .param Vr=300m Freq=1k V3 IN 0 SINE({Vr} {Vr} {Freq}) AC 1 ``` SPICE の SINE(VOFF VAMP FREQ) なら DC オフセット = 300 mV、振幅 = 300 mV(つまり 0 ~ 600 mV を往復)になります。 → 最大 $V_{in,peak} = 600\ \text{mV}$ * したがって **理想目標の負荷電流ピーク**: $$ I_{C,peak} = \frac{0.6\ \text{V}}{100\ \Omega} = 6\ \text{mA} $$ (※ネットリストでは負荷電流は `I(RLOAD1)` として取れる) * ベース電流の期待値(h$_{FE}$ を仮定): * 例えば $\beta = 100$ とすると $$ I_{B,peak} \approx \frac{6\ \mathrm{mA}}{100} = 60\ \mu\mathrm{A} $$ * $\beta = 60$(保守的)なら $$ I_{B,peak} \approx 100\ \mu\mathrm{A} $$ 結論:この動作点(数 mA)では **ベース電流は数十~数百 µA 程度** に留まり、AD8605 の出力余裕に対して非常に小さい値です(AD8605 は出力数十 mA まで出せるため)。([Analog Devices][1]) * 実測(LTspice)で見るべき点/コマンド: * コレクタ電流:プローブで `I(RLOAD1)`(あなたは .meas で取っている) * オペアンプ → ベースの出力電流:あなたは `V5`(0V の系列電源)を入れてあるので `I(V5)` が **オペアンプ出力からベースに流れる電流** を示します(そのままベース電流に等しいはず)。 * 比率(実験値): * プロット:`I(RLOAD1)` と `I(V5)` を同時にプロットして、瞬時比 `I(RLOAD1)/I(V5)` を見れば実効 h$_{FE}$(=Ic/Ib)を時間波形で確認できます。 * .meas を使えばピーク比なども取れます(あなたの .meas TRAN I\_PP PP I(RLOAD1) のように)。 --- ## 3) 「どこまで(何Aまで)流せるか」 — 制限要因と数値 ここでは主要制限要因ごとに評価します。 ### (A) オペアンプ(AD8605)の出力電流上限 * AD8605 のデータシートにある出力電流仕様(代表値/最大値)は **±30 mA(typ / guaranteed)** です(短時間の短絡駆動特性の注意あり)。つまりオペアンプ単体がベースへ直接供給できる電流は **約 30 mA** 程度(長時間の短絡は避けるべき)。([Analog Devices][1]) → 理論的に、オペアンプ出力電流がボトルネックなら: $$ I_{C,\max}^{(op)} \approx \beta \times I_{op,\max} $$ 例えば $\beta=60$ なら $I_C \approx 60 \times 30\ \mathrm{mA} = 1.8\ \mathrm{A}$。ただしこれは **ベース駆動だけ** の見積りで、他の制限(負荷・トランジスタ・電源)が先に来ます。 ### (B) 負荷と電源(RLOAD1 と VDD) * あなたのネットリスト:`RLOAD1 VDD N004 15`(RLOAD1 = 15 Ω、VDD = 15 V)→ 最大理論電流(トランジスタがほぼ飽和してゼロ電圧降下した場合の上限)は $$ I_{max}^{(load)} \approx \frac{V_{DD}}{R_{LOAD1}} = \frac{15\ \mathrm{V}}{15\ \Omega} = 1.0\ \mathrm{A} $$ 実際はトランジスタの飽和電圧 $V_{CE(sat)}$ が残るので若干小さくなる(例 VCEsat ≈ 0.7 V 等)。この値は **回路的にまず到達する上限** です(R=15Ω が非常に効いている)。(この 1 A はオーム法則ベースの簡単な上限) ### (C) トランジスタ(2SD1047)の定格 * 2SD1047 の絶対定格:**最大 DC collector current 12 A, Vce(max) ≈ 140 V, Pd ≈ 100 W**。ただし熱設計が必要。h$_{FE}$(DC gain)は条件によるがデータシートで **例:h$_{FE}$ ≥ 60 @ Ic=1 A, Vce=5 V** といった表記あり。([STMicroelectronics][2], [DigiKey][3]) → 意味:トランジスタ自体は理論上は数 A を扱える(定格 12 A)が、実際には: * 電力損失 $P = V_{CE} \times I_C$(熱)で制限される(放熱が無ければすぐに破壊する)。 * 飽和時の電圧降下や熱により回路としての実効最大はもっと下がる。 --- ### 統合的な結論(あなたのネットリストに対して) * 回路が要求する通常動作(例:Vin ≤ 0.6 V → Ic ≤ 6 mA)の範囲では **ベース電流は数十〜数百 µA** 程度で、AD8605(±30 mA)には十分余裕があります。したがって通常条件では op-amp の出力制限に達することはないし、トランジスタの hFE で問題になることもほとんどないはずです。 * 回路全体で最大に近い電流を出すとすると、**負荷(RLOAD1)による上限 1 A** が先に来る可能性が高い。1 A を流すには BJT に相応のベース電流(例えば h$_{FE\_at\_1A}$ を 60 と見れば Ib ≈ 16.7 mA)が必要で、その場合 AD8605 の ±30 mA 出力能力はまだぎりぎり間に合う(出力余裕あり)が、熱・飽和や長時間駆動を考えると安全マージンが足りなくなる。([Analog Devices][1], [DigiKey][3]) * まとめ(上限の順序:ネットリスト構成の場合): 1. **通常は RLOAD1 が 1 A 上限を作る**(15 V / 15 Ω)。 2. 次に来るのは **トランジスタの熱・飽和**(Pd, VCEsat)。トランジスタは定格上は 12 A だが放熱と VCE による損失で制限される。([STMicroelectronics][2]) 3. **op-amp の出力電流 ±30 mA** により、ベース駆動で作れる Ic は $ \approx \beta \times 30\ \mathrm{mA}$(β が十分高ければ数 A まで理論上可能)。しかし長時間での短絡や熱的な負荷は避けるべき。([Analog Devices][1]) --- ## 4) 実際に LTspice で確認する(手順) あなたの回路は既に必要な `.meas` を入れていますが、チェックポイントを整理します。 1. **ベース電流(オペアンプ出力)を計測** * あなたの `V5 OUT N005 0`(0V の電源)を通した電流 `I(V5)` が「オペアンプ→ベース」の流れです。プロット `I(V5)` を時間領域で見て下さい。 2. **コレクタ電流(負荷)を計測** * `I(RLOAD1)` を同時にプロット。 3. **比を取る** * プロット画面で `I(RLOAD1)/I(V5)` を表示すれば瞬時の h$_{FE}$(=Ic/Ib)が確認できます。LTspice のプローブ式入力ボックスに `I(RLOAD1)/I(V5)` と入力すれば可視化できます。 4. **DC/大振幅試験** * DC スイープで Vin を 0 → 1 V など掃く(.step param Vr list ...)して、最大電流と op-amp の出力電流を見る(op-amp がクリップ/電流制限に入る点を確認)。 5. **安全チェック** * 高電流条件(例えば Vin を上げて Ic を 0.5–1 A に近づける)で `V(N004)`(コレクタ電圧)とトランジスタの消費電力 `V(N004,0)*I(RLOAD1)` を確認して、Pd を超えないかチェックしてください(放熱が無ければすぐ破損します)。 --- ## 5) 最後に — 要約(短く) * 理論:$I_C \approx \beta \cdot I_{op}$(オペアンプ出力がベース電流を作る)。 * あなたの設定では目標 Ic は $V_{in}/100$ → Vr=300m の SINE ならピーク **6 mA**、それに対応する Ib は数十〜百 µA(h$_{FE}$ で変動)。 * 制限:AD8605 の出力は **約 ±30 mA**(データシート)、2SD1047 は **最大 Ic = 12 A**(データシート)だが、実際には **RLOAD1(15 Ω)による 1 A 上限** やトランジスタの放熱が最も現実的な制約になる。([Analog Devices][1], [STMicroelectronics][2]) --- もし良ければ、すぐに(このチャット内で)あなたの LTspice の **プローブ出力スクリーンショット**(波形ビュー)か、または `.raw` / `.log` の主要数値(`I(V5)` のピーク値、`I(RLOAD1)` のピーク値)を教えてください。そうすれば実シミュレーション結果と理論値を照合して、具体的に「実際の Ic/Ib の比」「op-amp がどの程度出力しているか」「どの段階で限界に達するか」を精査して報告します。 [1]: https://www.analog.com/media/en/technical-documentation/data-sheets/ad8605_8606_8608.pdf "AD8605/AD8606/AD8608 (Rev. O)" [2]: https://www.st.com/resource/en/datasheet/2sd1047.pdf?utm_source=chatgpt.com "High power NPN epitaxial planar bipolar transistor" [3]: https://www.digikey.com/en/products/detail/stmicroelectronics/2SD1047/2674471?utm_source=chatgpt.com "2SD1047 STMicroelectronics | Discrete Semiconductor ..." なるほど、ご質問の核心はこう整理できますね: * 前段(2オペアンプ構成)は「電圧制御電流源」になっていて、 **入力電圧 V(IN) → オペアンプ出力電流 I(V5) に比例**する。 * この I(V5) が後段 BJT のベースに流れる。 * すると BJT のコレクタ電流 I(Rload) はどうなるか? → **入力電圧 V(IN) に比例するのか?** → **もし比例するなら、その比例係数をトランジスタごとに理論的に決められるのか?** --- ## 1. 関係式の整理 BJT の基本式: $$ I_C = \beta \cdot I_B $$ ここで * $I_B = I(V5)$ (オペアンプ出力電流) * よって $$ I_C = \beta \cdot I(V5) $$ --- ## 2. 前段の関係と組み合わせる 前段では $$ I(V5) = k \cdot V_{IN} $$ (k はオペアンプ+抵抗で決まる比例定数) これを代入すると: $$ I_C = \beta \cdot k \cdot V_{IN} $$ つまり理論的には **コレクタ電流も入力電圧に比例**します。 --- ## 3. 重要な注意点 * **β(hFE)は定数ではない** * トランジスタの種類によって範囲が違う(例:2SD1047 → 60〜140、2SC5200 → 55〜160)。 * 同じデバイスでも温度・コレクタ電流値・VCEで変化する。 * データシートで典型値やグラフが示されているが、実用上は「範囲」としてしか扱えない。 * よって * 数式では「比例する」 * しかし比例係数 β は固定できず、実際には「ある範囲で比例する」としか言えない。 * 実験やシミュレーションで確認が必要。 --- ## 4. 理論的に数値化できるか? * 理論だけで「このトランジスタなら β=100 だから I\_C = 100·k·V(IN)」とは言えない。 * データシートを見て、その動作点(VCE, Ic, 温度)での hFE を読み取れば「近似値」は出せる。 * ただし、必ずばらつきがあるので「理論的に一意には決められない」。 --- ## 5. まとめ * **比例関係は成り立つ:** 入力電圧 → オペアンプ出力電流 → BJTベース電流 → コレクタ電流、すべて比例関係。 * **ただし比例係数(β)は固定できない:** トランジスタの種類・動作点・温度・個体差で変わる。 → 「理論的に一意に数値化」することはできず、データシートや実測で決めるしかない。 --- 👉 もし「シミュレーション上で β を固定して、比例関係を厳密に確認したい」なら、LTspice で **トランジスタモデルのパラメータ BF(直流電流増幅率)** を調べて、その値を使うと「理想化された比例」が見られます。 この点、シミュレーション上の **βの扱い**について解説した方が良いですか? ## 関連リンク
Next Post Previous Post