オペアンプ一つで電圧電流変換回路 (吐き出し型)

#Qiitaで電子回路の記事書いていいの？
> Qiitaは、プログラマのための技術情報共有サービスです。 プログラミングに関するTips、ノウハウ、メモを簡単に記録 & 公開することができます。

任意の「入力があって出力があるような函」を作るのであれば今回の電子回路の設計も一つのプログラミングといえるのではと思い恐る恐る．

あとすでに電子回路のタグがあったのでいいのではないかなと．

[電気回路と電子回路の違い](https://www.google.com/search?sxsrf=ACYBGNTRnHDa_rrEJPcBCt8Idv5_6UUcuw%3A1580156090723&ei=ukQvXvjiK4a4tQbUzqtA&q=%E9%9B%BB%E6%B0%97%E5%9B%9E%E8%B7%AF+%E9%9B%BB%E5%AD%90%E5%9B%9E%E8%B7%AF+%E9%81%95%E3%81%84&oq=%E9%9B%BB%E6%B0%97%E5%9B%9E%E8%B7%AF+%E9%9B%BB%E5%AD%90%E5%9B%9E%E8%B7%AF+%E9%81%95%E3%81%84&gs_l=psy-ab.3..0i7i30.4269.6696..7022...0.0..0.163.622.1j4......0....1..gws-wiz.......35i39.6FGqdEkV-nM&ved=0ahUKEwj4p-iTzKTnAhUGXM0KHVTnCggQ4dUDCAs&uact=5)
電気回路はRCL等受動素子のみ，電子回路はRCLまたは[それ以外（能動素子）](https://ja.wikipedia.org/wiki/%E8%83%BD%E5%8B%95%E7%B4%A0%E5%AD%90)を含むものらしい．へえ．


# Background
できるだけ部品小さめの電流制御回路を作りたかった

# Abstract
入力電圧によって電流出力を制御する回路のうちオペアンプをもちいたもので
他に能動素子を使わず出力型にするための工夫をした回路の解説．

# 電圧電流変換回路
## （準備）オペアンプを用いた非反転増幅回路による電圧制御
[なるほどなるほど……](http://www.nahitech.com/nahitafu/mame/mame3/hihanten.html)


## （準備）片側が接地した抵抗にかかる電圧を一定にして定電流にする
![](http://www.nahitech.com/nahitafu/mame/mame3/teid1.gif)![](http://www.nahitech.com/nahitafu/mame/mame3/teid1c.gif)
[なひたふ](http://www.nahitech.com/nahitafu/mame/mame3/teid1.html)さんより．
トランジスタのない(出力電流もオペアンプのから持ってくるような)さらに概念的なの探したけど無かった．
一定値の抵抗$R_l$に既知の電圧$V_i$をかければそこに一定の電流$I_o$が流れるので，これに負荷を直列につなげばよい．
抵抗の精度が良くて，抵抗にかける電圧を精度よく一定にできれば，電流もきっと精度良い．
抵抗が発熱しなきゃもっといいかもしれない
ただし，この場合負荷を電圧電源とFET（トランジスタ，あるいは負帰還の点）との間に置くような構成（吸い込み型）となっている．


## （本命）抵抗の両端に係る電圧を一定にして定電流にする
![](https://toragi.cqpub.co.jp/Portals/0/trcalc/L/img/L13.jpg)
じっにーは[とらぎ](https://toragi.cqpub.co.jp/Portals/0/trcalc/L/trcalc.html?9)・[のーる](https://youtu.be/ECC-f5y63Z8?t=11)♪

さっきの基本構成を吐き出し型にするには
- カレントミラー回路を増設する
- ハイサイド型にする

など他にも方法はあるが今回は**抵抗両端の電位差**を作ることで実現したもの．
さっきは電流を作る抵抗の一端を接地していたが，今回はその端もフィードバックに加えることで電位差を作る．
すなわち以下の図で，$V_s = (V_1 - V_2) = A\cdot V_{in} (A \in \mathbb{R}) ... (\star)$であればうれしい．
結論から言うと$\frac{R_2}{R_1}=\frac{R_4}{R_3}$でかつ$I_p << I_{out}$となるようにすればよい．以下解説：
　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265603/05edc497-654d-2ccc-8476-674bf9f8fe00.png" height=300>

今，$V_1$は入力が$V_p$であるような非反転増幅回路の出力だから，バーチャルショートからすぐに
$$
V_1 = \frac{R_1+R_2}{R_1}V_p
$$
またオペアンプの入力抵抗が超でかいので，$R_{n}>0$の下で，$V_p$と同電位の点についてキルヒホッフの電流測から
$$
\frac{V_2-V_p}{R_4}=\frac{V_p-V_{in}}{R_3}$$ $$
\Leftrightarrow 
V_p=\frac{R_3 \cdot V_2 + R_4 \cdot V_{in}}{R_3+R_4}
$$
さっきの式の$V_p$に代入して
$$
V_1 = \frac{R_1+R_2}{R_1} \cdot \frac{R_3 \cdot V_2 + R_4 \cdot V_{in}}{R_3+R_4}$$$$
\Leftrightarrow 
V_1-kV_2 = k\frac{R_4}{R_3}V_{in}\ \ \ \ \left( k:=\frac{R_3(R_1+R_2)}{R_1(R_3+R_4)} \right)
$$
$k$が1になってくれればこの式は$(\star)$となり，
$$
(k=)\frac{R_3(R_1+R_2)}{R_1(R_3+R_4)}=1\\
\Leftrightarrow 
\frac{R_1}{R_2}=\frac{R_3}{R_4}
$$
となってあの条件式が出てくる．そしてこのとき，
$$V_s = (V_1 - V_2) = \frac{R_2}{R_1} \cdot V_{in}$$
以上から入力電圧が$V_{in}$のとき，抵抗$R_5$に電位差$\frac{R_2}{R_1}V_{in}$が生じて，出力電流$I_o$は
$$
I_o = \frac{R_2}{R_1 \cdot R_5}V_{in}
$$
となって電圧($V_{in}$)を電流($I_o$)に変換できている．

以下は[ざわざわウエアズ](https://zawa2.com/ZZsim/opamp_currentsource2.html)さんより．
正帰還っぽい方へ電流流れない方がうれしいので$R_4$の片側ではボルテージフォロアで$V_2$を参照．
$I_p$が超小さくなるような抵抗を選んでR4の右側をR5の右側（V2）に短絡させれば上のトラ技の構成と基本は同じ．
![](https://zawa2.com/ZZsim/images/doc_opamp_vi.gif)



# その他
## PMOSをハイサイドにおくことによる吐き出し型
## トランジスタまたはFETを用いた出力側の分離
http://www.nahitech.com/nahitafu/mame/mame3/teid1.html
## カレントミラー回路による吐き出し型の実現と電圧源の分離

---


[AnalogDilog]: https://www.analog.com/jp/analog-dialogue/articles/current-output-circuit-techniques-add-versatility.html
[zawazawa]: https://zawa2.com/ZZsim/opamp_currentsource2.html