回路技術

トランジスタ(2SC1815)を2つ使った定電流回路のシミュレーションと電子工作・その結果

こんにちは。たぬしです。

会社では新しく電子回路学びつつ、帰ってから博士取得のため投稿論文を書くという絶望的な日常を謳歌しております。
電気回路を0から学び始めて1ヶ月半が経とうとしています

さて、今回は定電流回路なるものを工作し、実際に動かしてみることを目標とします。それに伴い、LTspiceを用いた解析もやろうかなという目論見です。
しかし、電気素人なので、定電流回路さえ初めて聞いた始末。そこで、よくよく考えてみると思い至った問いが、定電流回路ってなんや??ってことでした。

自分で設計して他の定電流回路も作ってみました。
関連記事: 定電流回路の設計:実験とシミュレーション(トランジスタとツェナーダイオード1つずつ)




そもそも定電流回路って何?

まず、これをやってみる際に、定電流回路の意味するところがわからなかったたぬし氏。とりあえず、

「くっ!どこがどう定電流なの?何か変えても電流値が一定なのだろうけど、、、」

ネット上で回路を見てもどこが定電流なのかさえわかりませんでした。
結論から先に書くと、入力電圧を様々な値に変えても、ある回路に流れる電流が一定である回路、ということでした。
このことで、結構悩み、本を読んでみたり、回路図をねめつけたりしていましたが、なかなかわかりません。
最初は、回路内の抵抗等を変えたりしても、どこかの電流が変わらないのかと考えたりしていました。
まず、そういうしょうもないことで躓くので、そのような微細な点についてもなるべく記述しておこうと思います。

2018年11月 追記中

記事を投稿してから、半年の時が経ち定電流回路についてやっと雰囲気分かってきたので、追記します。

定電流回路の概念に行き着くには、まず、電圧源・電流源の概念について知る必要があります。
これまで、何に必要なのかわけわからん、、、と飛ばしていたのですが、少しずつ理解するにつれて確かに必要かも、と感じております。
まずは、わかりやすい電圧源の説明からです。

電圧源の概念について

図1に電圧源の概念図を載せております。
図1左側は何でもいいから「何らかの回路」を表していて、その回路の出力A, Bを見ると、AB間を解放した時の電圧をV, AB間からこの電子回路を見た時の内部抵抗をRとします。
そうしますと、この電子回路がどのようなものであっても、図1右側の電圧源Vと抵抗Rが直列接続されているものとしてとらえる事が出来ます。
図1左の回路のボックス部分は「任意の回路」で良いので、右の回路と構成は異なりすますが、電気回路の動作は同じとみなすことが出来ます。
この二つは、回路動作的には等価になっていることから、等価回路と呼びます。

図1左の回路は電流源を使っても等価回路を作ることが出来ます
この電流源は、定電流そのものなので、定電流回路の性質に密接に関わってくるというわけです。

 

電圧源の概念図図1 電圧源の概念図

 

電流源の概念について

上述しましたように、何らかの回路(任意の電子回路)は、電流源と抵抗で表すことも出来ます。
電圧源は、電圧と抵抗という二つの要素から世界を眺めましたが、電流源の世界では、電流と抵抗と視点を変えて任意の回路を眺めております。

AB間を短絡した時の電流をIとし、端子A-B間から見た内部抵抗をRとしますと、図2右のような回路と等価になります。

 

電圧源の概念図2 電圧源の概念

僕はこの考え方を最初見たとき、何の意味があるんだろう?と疑問に思っておりましたが、この電流源と電圧源という概念が非常に重要性を持っているということを感じつつあります。

次に、これらの電流源と電圧源について定量的にその性質を調べると共に、「負荷」という概念について学んでいきましょう。

続く!

トランジスタを用いた定電流回路図

 

回路図図3 定電流回路(LTspiceで使用)

 

 

使用する部品および装置一覧

セット購入の部分ですが、よく使う部品がいっしょくたにまとめられて売っているセットがあるので、それを買った方が楽だと思います。
たぬし氏はOsoyooの電子工作部品セット(2080円)を使っています。
このセットには33Ωが入っていないので、10 Ω + 22 Ωの直列で32 Ωにして実験することもできます。
僕は手持ちで33 Ωがあったのでそれを使いました。

部品・装置 会社・型番 値段
直流安定化電源 CUSTOM DPS3003 14091 円
はんだごて 白光 FX510-01 944 円
テスター SANWA CD731a (廃番) 7980 円
トランジスタ × 2 TOSHIBA  2SC1815-Y セット価格(2080 円)
抵抗10 kΩ × 1   セット価格
抵抗33 Ω × 1 (セットにある10 Ω + 22 Ωの直列で代用可能)   (セット価格)
95 × 72 mm ユニバーサル基板 秋月電子 AE-B2-TH 170 円
LEDライト × 1  TLG114A セット価格
総計   25265 円

 

CD731aは絶版で売られていないので、もう一つは僕が使っていておすすめかつ2018年現在最強のテスターの一つである三和のPC7000を載せておきます。

さて、気を取り直して回路を俯瞰してみると、右上の電源による入力は5 Vです。
図中右上のD1はLEDダイオードを使っており、電圧が閾値より多く流れると光るようになっています。
ネットでこの手の回路をたくさん見つけ、なぜLEDが入っているのかよくわからなかったのだけど、光ると回路の動作確認になってよいということがわかりました。
工作で何度か失敗したけど、LEDでなくて、ツェナーダイオードとかだったら、もう少し悩んでいたかもしれません。

 

本定電流回路の挙動

2018年11月13日より追記
この定電流回路の回路動作の挙動を時系列で見てみようと思います。
その前提として、一つ抑えておく必要がある特性があります。それは、

  • \(V_{BE}\)が0.6 V以上になるとトランジスタがONになり、\(I_C\)が流れ始める
  • \(V_{BE}\)が減ると、流れる\(I_{C}\)が減る

というものです。
この概念を、回路の挙動を考える前提条件として使いますが、この事象の説明をしておきます。

トランジスタにおける\(V_{BE}\)と\(I_C\)の関係

2SC1815の静特性の\(V_{BE}\)と\(I_B\)の関係をデータシートから持ってきました。
\(I_C =h_{FE} I_{B}\)なので縦軸に定数をかけたら\(I_{C}\)のグラフになります。
y軸に定数をかけても、基本的にグラフの概形は変わりませんので、このグラフで\(V_{BE}\)と\(I_C\)の関係を議論することが出来ます。(もちろんy軸の値はずれます。)

現在、重要なのはx軸(\(V_{BE}\))の値です。
温度が25℃のグラフを見ますと、目分量ですが、0.55 Vあたりで急激にベース電流が流れ始めております。
すなわち、コレクタ電流が流れ始めるのも、ベース電流が流れ始めるのと同じ約0.6 Vあたりからということです。
\(V_{BE}\)が0.6 Vに達し、\(I_{C}\)が流れ始める状態をトランジスタがONになったと定義します。

また、流れ始めてから\(V_{BE}\)が上昇するに従い、流れる\(I_B\)も大きくなっております。そのため、\(I_C =h_{FE} I_{B}\)から、\(I_C\)も同時に上昇しているということがわかります

トランジスタはPNダイオードが接合して出来ているので、ダイオードとして捉えると、\(V_{BE}\)と\(I_B\)の関係式は

\begin{equation}
I_B = I_0\times (e^{\frac{qV_{BE}}{kT}} – 1)
\end{equation}

\(I_0\) : 逆方向飽和電流
\(q\) : 電荷
\(k\) : ボルツマン定数
\(T\) : 絶対温度

トランジスタの電流増幅の式から、
\begin{equation}
I_C = h_{FE}I_B = h_{FE} I_0\times (e^{\frac{qV_{BE}}{kT}} – 1)
\end{equation}
なので、定数がかけられただけで、グラフの概形は変わらないということが分かります。

2SC1815の静特性グラフ図4 2SC1815の静特性グラフ

 

定電流回路の振る舞い

回路の動作としては、一瞬で定常状態へと遷移するのですが、理解を深めるため順を追って回路の振る舞いを追ってみましょう。
最初は、電流はどこにも流れていないとし、5 V電源を繋いだ瞬間、電源から電流が流れ始めるとします。

 1. Q3は最初OFF状態なため、ダイオードD1に電流は流れず、\(I_0\)はR1にのみ流れていきます。
 2. Q1はOFF状態なのでQ3のベースにのみ電流が流れます。R1で電圧降下しますが、\(V_{BE3}\)が0.6 V以上でかつベース電流が流れている場合、コレクタ電流として\(I_{C3}\)が勢い良く流れ始めます。
 3. \(I_{C3}\)が流れ始めると、エミッタ方向に\(I_{C3}\)が流れていきます。
 4. Q1のベース・エミッタ間電圧は\(R3I_{3}\)で決まりますので、\(R3I_{3} > 0.6\)になった時に、Q1のトランジスタもONになります。

以下2018/12/7追記

定電流回路の1.~4.までの振る舞い図5 定電流回路の1.~4.までの振る舞い

5. Q1がONになるので、コレクタ電流\(I_{C1}\)が流れ始め、\(I_{0}\)から電流を奪います。
 6. すると、\(I_{0}\)の総量が減りますので、Q3のベースに流れる電流が減ります。その結果、Q3のコレクタ電流\(I_{C3}\)が減ります。
 7. \(I_{C3}\)が減りますと、エミッタ方向に流れる電流も減りますので、R3に流れる電流も減ります。その結果、Q1のベース・エミッタ間電圧が下がります。

定電流回路の5.~7.までの振る舞い図6 定電流回路の5.~7.までの振る舞い

 8. そうすると、Q1のコレクタ電流が減りますので、\(I_{0}\)から奪う電流量が減ります。つまり\(I_{0}\)が増えます。
 9. その結果、Q3のベース電流\(I_{B3}\)が増えるので、\(I_{C3}\)が増えます。
 10. 3に戻ってループ

定電流回路の8.~9.までの振る舞い図7 定電流回路の8.~9.までの振る舞い

LTspiceによるシミュレーションの設定
(2SC1815モデルの追加)

さっそくLTspiceで定電流回路の挙動を確かめようとするも、トランジスタには無数の製品があり、それぞれ特性が異なります。
できるだけ自分が使ったトランジスタの特性を用いてシミュレーションしてみたいものです。 (今回で言うと、2SC1815)

そう思って調べてみると、Windowsなら
C:\Program Files\LTC\LTspiceXVII\lib\cmp
にある、standard.bjtの末尾に、追加したいモデルのデータシートをメモ帳で追記すれば、新たなトランジスタが追加され、使用できるようになるということがわかりました。
以下にある2SC1815-yのデータをstandard.bjtの最後の行にコピーして保存します。

.model 2SC1815-Y NPN(Is=2.04E-15 Xti=3 Eg=1.11 Vaf=100 Bf=200 Ne=1.5 Ise=0
+ Vceo=50 Icrating=150m mfg=TOSHIBA
+ Ikf=200m Xtb=1.5 Br=3.377 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=1p Mjc=.3333
+ Vjc=.75 Fc=.5 Cje=25p Mje=.3333 Vje=.75 Tr=450n Tf=20n Itf=0 Vtf=0 Xtf=0)

一応、↑が何を書いているのかわかる範囲で説明します。

  • .model :この命令のあとにデバイスのspiceモデルパラメータを入力する。
  • Vceo : コレクタ-エミッタ間電圧 (これ以上の電圧印加はできない)
  • Icrating : 最大コレクタ電流の値
  • mfg : 製造メーカ名

「簡単だな!やるかー!」
と思いたったものの、罠にハマり、長時間のロスを強いられたので、その旨書き留めておきます。

standard.bjtに追記して保存してもLTspiceに読み込まれない

この罠が、たぬし氏を苦しめました。
その後、いくらnotepadなるエディタ(Windowsにもともと入っているメモ帳とかで良い)で保存しても読み込まれません。
しかし、開いてみるとstandard.bjtに保存はされているという状況。
つまり、アプリの方から読み込まれていないということのようです。
調べると、いくらかの人が、様々な理由でこの罠にはまっているようでした。
フリーで使っている人は、standard.bjtにデータシートを追加する方法はオススメされていない模様。
しかして、わいには金がない、、、無い袖は振れないのであります。

同じ不具合の参考urlを貼っておきます。
http://motchy99.blog.fc2.com/blog-entry-52.html

色々調べた結果、spiceが入っているフォルダのアクセス権限が問題になっている可能性があることがわかりました。
standard.bjtが入っているフォルダがセキュリティソフトなどにより防御されていて、管理者権限を使わないと変更できないという理由のようです。

フォルダのアクセス権限の変更

以下に、アクセス権限の変更の方法を記しておきます。

1. LTspiceが入っているフォルダへ飛ぶ。
C:\Program Files\LTC\LTspiceXVII

2. libフォルダを右クリックして一番下のプロパティを開く

3. 左から3番目のセキュリティを選ぶ(下記図のようになるはずでし。)

アクセス権限の変更図8 アクセス権限の変更

4. 編集ボタンでフルコントロールに許可を入れる。

以上で終了です。おそらく、フルコントロールではなく、変更だけ許可にしたらいいのでしょうけど、一応変更しておきます。
変更したあとに元に戻しておけばセキュリティ上も大丈夫だと思います。

しかし、僕の場合、これだけでは、うまく変更できませんでした。><。。
徒労感に苛まれながら、ネットの海をうろついていたら、LTspiceからstandard.bjtファイルを開けることがわかりました。

5. LTspiceのFile→openからstandard.bjtファイルを選ぶ。

ここで注意が必要なのだけど、LTspiceを再起動して、何も開かない状態でstandard.bjtファイルを開くこと!
回路図を開いたあとに開こうとするとわけわからんエラーが出て、わいみたいに死にたくなってくるから気を付けるべし。

6. 上記で書いた、2SC1815のデータシートをコピーしてsaveで保存。

これでやっと読み込まれるようになりました。

2SC1815の追加確認と使用方法

次にLTspice内で作った2SC1815モデルを使う方法を述べていきます。

1. 回路図のトランジスタにカーソルを近づけ、右クリックすると、以下のようなポップが現れます。
2. 赤矢印で示したPick New Transistorをクリック。

モデルの追加1図9 2SC1815モデルの追加方法1

上手くいっていたら、下のように、最後の欄に新しく追加したトランジスタの欄ができています。
僕は三つ追加していたので、3つ出てきました。

モデルの追加2図10 2SC1815モデルの追加方法2

シミュレーションの結果と電子工作

まずは、LTspiceでのシミュレーションの結果から!

最初にシミュレーションの設定を載せておきます。
この設定が、最初はよくわからず、調べたりしました。
この回路が、本当に定電流回路なのかを調べるために、入力電圧の値を振って、回路図R3の電流値がどう変わるかを調べました。
さらに、回路図中のR1抵抗を1 KΩ, 10 KΩ, 100 KΩ, 1000 KΩ(1 M)と変化させています。

LTspiceのシミュレーションの設定方法

この設定に必要な命令は主に2つです。

  1. V1の入力電圧(直流)を0 ~ 7 (V)まで振る
  2. 1.の条件の元、R1抵抗を1 K, 10 K, 100 K, 1000 Kと振る

これらの命令をLTspice上でセットします。

1. 入力電圧を振る方法

  •  SimulateのEdit Simulation Cmdを選びます

すると以下のような、ポップが出てくる。赤矢印のところが設定部分です。

シミュレーションの設定方法図11 シミュレーションの設定方法
  • Name of 1 st source to sweep : 値を振る予定の電圧源の名前を選びます。何個もある場合はミスったら間違いのもとになるので注意。
  • Type of sweep :値をどのような関数で振っていくか?ということだと思います。ここはいじっていませんが、Linearなら等間隔に増えていくのだと思います。これはちょっと、要研究の必要あり。Lineaar以外の設定をいつ使うのかも今のところよくわかりません。。(偉い人教えてください。。)
  • Start value : 電圧の初期値です。今回は0 Vから。
  • Stop value : 名前のまんま、終わり値ですね。今回7 Vにしたので、これまでの設定で、スタート0 V ~ ストップ7 Vまでを線形の増やし方で振ります、という命令。
  • Increment : 刻み値です。0.02Vごとに、計算させます。刻み値が小さければ小さいほど、データ点は増えて、精密な解析になりますが、計算時間がかかるようになります。

以上の設定で、これまでの設定で、スタート0 V ~ ストップ7 Vまでを線形の増やし方0.02Vの刻み値で振ります、という命令。これで、上記命令1の設定が終わりました。次はR1抵抗の値を変えたときに1の条件で、同じように計算させたらどうなるか?という命令の設定を行います。

2. 抵抗の値を振る方法

まず、回路上のR1の下の数字を入れていた部分を、{}でくくることで値を変数として設定できます。中身を適当に名前を決めます。今回はXR2にしました。

抵抗値を変数設定する方法図12 抵抗値を変数設定する方法

次に、LTspice上の右上の.opをクリックすると、以下のようなポップが現れます。

ここに、XR2を1 K, 10 K, 100 K, 1000 Kと振る命令を書き込みます。

  • .step param 変数名 list n1 n2 n3

という命令で変数名の値をn1, n2, n3…と振ることができます。paramはおそらくparameterの略。変数名は{}の中だけを書きます。今回はXR2ですね!
{XR2}と書くと、エラーが起きます。斜体の部分が自分で書き換える部分です。

命令の追加方法図13 命令の追加方法

今回の設定では、 .step param XR2 list 1k 10k 100k 1000k としています。
これで2の設定も終わりました。あとは、Simulate → Runでシミュレーションが動き始めます。

 

シミュレーション結果(R3電流の入力電圧依存性)

さて、R1 = 1 KΩ, 10 KΩ, 100 KΩ, 1000 KΩにおけるR3電流の入力電圧依存性のグラフを載せます。

R3電流の入力電圧依存性図14 R3電流の入力電圧依存性

抵抗が1 KΩ, 10 KΩの時は、2 Vあたりから傾きがフラットになってきて、入力電圧を上げても電流がそこそこ一定になっていることがわかります。
なかなか不思議なものですが、確かに定電流回路と言えるようです。R1抵抗を上げすぎるとR3に流れる電流がリニアに変わっているのは、おそらくトランジスタにバイアス電圧がかからないからなのかなーと思ってますが、まだ謎です。
現時点での考えは、R1の抵抗をあげまくると、ある値を超えたところで、R1に流れる電流が0になる。
すると、少なくともトランジスタQ3のベース電流が入らなくなるので、動かないのではないかと思います。
そのため、その影響がR3の方まできてるのかなと。詳しくは、数式解いて解析してみないとわからんすな。
それこそ、シミュレートもしてみるかー!それは次回の課題ですね!

 

 

実際の工作

電子工作もしたことがあまりないと、色々知らないことや忘れていることがあります。
まず、極性がある素子の確認から始めましょう。

トランジスタのエミッタ(E)、コレクタ(C)ベース(B)は写真に示した向きです。
エミッタはC1815表示の真下にありまして、その右がコレクタ、一番右がベースです。
僕はよく、教科書のバイポーラトランジスタ記号がEBCの順に並んでいるのを見ていたため、その通りの並びだと思い間違えて配線していました。
この罠に陥らないために、良い子は最初に素子の極性とかを確認しておく必要があります。

次に、LEDもダイオードなので極性があります。
長いほうがアノードで短いほうがカソードです。
長い方に電圧をかけると、光ります。

トランジスタと発光ダイオード図15 トランジスタと発光ダイオードの極性

実際の工作写真が図10にあります。
あまりの下手さに驚いた人も多いと思われますが、苦悩を重ねた挙句、一応あげる価値はあるかと思い、アップしました。
一応これでも、回路は動作しました。
今度はフレットボードにしようかなと、思うております。
簡単な回路ですが、はんだ付けも個人的には難しかったです。

 

実験に用いた回路基板図16 実験に用いた回路基板

電圧をかけすぎて一瞬でLED死亡

最初、何Vかけたらよいのかわからず、適当に10 V位かけたりしていましたが、ぴくりとも光りませんでした。
ファンクションジェネレータで電圧を印加したので、値に間違いはないはずだけど、高すぎだったのでしょうか。
ファンジェネの電流値をみてみると、60mAくらいになっており、電流が流れ過ぎた可能性があります。

そこで、LED(TLG114A)のデータシートを見てみますと、、
最大定格(T = 25°) 直流順電流 I\(_F\)= 25 mA!大幅に許容量をオーバーしていました。

LEDの生死を確認すべく、LEDを外してテスターのダイオードレンジ(ダイオードのマークがついている所)で測ってみました。
社長によりますと、ダイオードが死んでる場合、二つの端子をどちらから測っても0 Vしか出ないらしいです。
繋ぐ端子を逆にしても、0だったので死んでいることが判明しました。
初めてやる人は軽はずみに電圧をかけない方が良いです、、、、まじですぐ死にます。

新しいやつを用いて測ってみますと、片方は0ですが、逆側は1.779Vとでました。
なるほど、これでダイオードが生きてるかどうか確かめられるのかー。
これも、データシートに載っていて、順電圧V\(_F\) = 2.15 V(標準)とあります。
最大で2.8 Vのようです。基準よりだいぶ低いけどテスターに流れてる電流がごく微量だからかもしれません。
また、素子に大きく個体差があるということが示唆されております。(実際にそうらしい)

R3電流の測定結果

ファンクションジェネレータの電圧を0から徐々にあげながら、LEDが光る電位を探したところ、およそ1.7 Vでありました。
そこから徐々に電圧を上げて、R3に流れる電流値がどう変化するかを調べてみます。
テスターだと、直列に繋がないと電流を測れないことに気付いたので、R3の電流を測るため、端子間の電圧を測ることにしました。
これなら、R3の抵抗を挟むようにテスターの二本の端子をあてれば電位差を測定出来ます。
この後、オームの法則を用いて、I = V/RでR3に流れる電流を求めました。
先にシミュレーションで行った、R3電流の入力電圧依存性グラフの実測値版を図11に示します。

入力電圧の電流依存性(実験)図17 入力電圧の電流依存性(実験)

1.7 Vで測定を開始し、電圧を上げるに従い、電流は急速に立ち上がっています。
その後、2.7 V付近から傾きが緩やかになり、3 V以降は飽和するような振る舞いが観測されました。

ほほー!これは、確かに3 ~ 6 Vあたりで、そこそこの定電流を得られたと思われます。
初めて考えつつ作った回路なのもあり、はんだ付けが汚く、回路が合っているのか不明であったが、うまくいったようで良かったです。

シミュレーションでは、10 KΩの時、20 mA当たりで飽和しているので、今回の飽和値である18 mAは誤差にして10 %です。
素子の誤差が±10 %くらいだとすると、そこそこ似た振る舞いになっていることがわかります。
LTspiceのシミュレーション結果って、入力電圧とR3電流それぞれ、数字で取り出せないんですかね?
シミュレーション結果と実測値を重ね描きしたい時とかどうすればいいんや。。
というか、みなさんどうしてるんですかね><。
今のところネットでそういうグラフ見たことないなぁ。

4.8 V以降かくんと、下がっている振る舞いの原因は不明なのだけど、素子が温度依存して特性を変えたからかなーとか思っています。
詳しい人教えて頂ければ幸いです。

とりあえず、細かい解析とかはさておき、シミュレーションしてから、実際に作って測定するまで、を行いました。

使用した装置および部品のリンク

電子部品・備品

 

装置

 

他の定電流回路の実験

定電流回路の研究は今後も続けて行きたく思っていますので、実験が増えたらここに載せていきます!

関連記事: 定電流回路の設計:実験とシミュレーション(トランジスタとツェナーダイオード1つずつ)
今回とは異なり、自分で設計して定電流回路を動かすことを行いました。
また、定電流回路のより正確な定義についても説明しています。