Project_OKI’s diary

エンジニアの勉強ブログ

反転増幅回路と非反転増幅回路の自動計算(増幅度、ゲイン、出力電圧)

オペアンプ反転増幅回路、非反転増幅回路の自動計算

この記事では、反転増幅回路と非反転増幅回路の下記自動計算を行う。

 入力:

 ・抵抗R1(入力抵抗)

 ・抵抗R2(帰還抵抗)

 ・入力電圧[V]

 出力:

 ・増幅度[倍]

 ・電圧利得(Gv)[dB]

 ・出力電圧[V]

 

また、それぞれの計算方法について記載する。

 

1. 反転増幅回路と非反転回路の自動計算

・反転増幅回路

・非反転増幅回路

 

抵抗値R1,R2と、入力電圧を入力してください。

R1入力

R2入力

Vin入力

 

計算結果

反転増幅回路増幅度 [倍]= [dB]

出力電圧[V]

 

非反転増幅回路増幅度 [倍]= [dB]

出力電圧[V]

 

オペアンプは理想オペアンプを想定。

 オープンループゲインは∞としている。

 

2. 反転増幅回路と非反転回路の算出方法

反転増幅回路の計算

 ・増幅度 = R2の抵抗値[Ω]  / R1の抵抗値[Ω]

 ・電圧利得(Gv) = 20×log(増幅度)

 ・出力電圧 = - Vin × 増幅度

 

非反転増幅回路の計算

 ・増幅度 = 1 + R2の抵抗値[Ω]  / R1の抵抗値[Ω]

 ・電圧利得(Gv) = 20×log(増幅度)

 ・出力電圧 =  Vin × 増幅度

 

 

 

3. 算出プログラム

<!DOCTYPE html>
<!--
概要:反転増幅回路の計算ホームページ
・反転増幅回路の画像を表示
・抵抗及び、入力電圧記入欄を用意
・記入した抵抗と、入力電圧から、
 増幅度、出力電圧を出力
-->
<html lang="ja" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>増幅度計算ページ</title>
  </head>


  <body>
    <p>反転増幅回路、非反転増幅回路の計算ページです</p>
    <p>抵抗値R1,R2と、入力電圧を入力してください。</p>
    <!--<img src="画像の名前" width="横幅の値" height="縦幅の名前" alt="画像の読み上げの名前" title="画像の表示名"  -->
    <!--画像表示参考リンク:https://techacademy.jp/magazine/5827  -->
    <!--反転増幅回路と、非反転増幅回路の画像の表示  -->
    <img src="jpg/Invertingamplifier.PNG" width="400" height="200"alt="反転増幅回路" title="反転増幅回路">
    <img src="jpg/Noninvertingamplifier.PNG" width ="400" height ="200" alt = "非反転増幅回路" title="非反転増幅回路">

    <!--増幅回路の入力フォーム  -->
    <p> R1入力 <input type="text" size="15" id="R1" value="0"></p>
    <p> R2入力 <input type="text" size="15" id="R2" value="0"></p>
    <p> Vin入力<input type="text" size="15" id="Vin" value="0"></p>

    <p> 反転増幅回路増幅度 <input type="text" size="15"id="Invertingamplifier_times" value=0> [倍]=
         <input type="text" id="Invertingamplifier_log" size="15" value=0>[dB]</p>
    <p> 出力電圧<input type="text" id="Invertingamplifire_Vout" size="15" value=0>[V]</p>

    <p> 非反転増幅回路増幅度 <input type="text" id="Noninvertingamplifier_times" size="15" value=0>[倍]=
        <input type="text" id="Noninvertingamplifier_log" size="15" value=0>[dB]</p>
    <p> 出力電圧<input type="text" id="Noninvertingamplifier_Vout" size="15" value=0>[V]</p>
    <br>

    <script> 
    	       const GAIN = 20;
      	
		//R1とR2のidを取得
		let lr1id = document.getElementById("R1");
		let lr2id = document.getElementById("R2");
		let lvinid = document.getElementById("Vin");
		
		let livertingamplifier_timesid = document.getElementById("Invertingamplifier_times");
		let linvertingamplifier_logid = document.getElementById("Invertingamplifier_log");
		let linvertingamplifire_Voutid = document.getElementById("Invertingamplifire_Vout");
		
		let lnoninvertingamplifier_timesid = document.getElementById("Noninvertingamplifier_times");
		let lnoninvertingamplifier_logid = document.getElementById("Noninvertingamplifier_log");
		let lnoninvertingamplifier_Voutid = document.getElementById("Noninvertingamplifier_Vout");
	
		//R1とR2の数値を取得
		let lr1 = parseInt(lr1id.value);
		let lr2 = parseInt(lr2id.value);
		let lvin = parseInt(lvinid.value);
      	
      	lr1id.addEventListener("change",Calc);
      	lr2id.addEventListener("change",Calc);
      	lvinid.addEventListener("change",Calc);
      	
		function Calc(){
			console.log("関数実行");
			//R1,R2,Vinの値を再取得
			lr1 = parseFloat(lr1id.value);
			lr2 = parseFloat(lr2id.value);
			lvin = parseFloat(lvinid.value);
			//反転増幅回路計算
			//増幅度 = R1/R2
			livertingamplifier_timesid.value = (lr2/lr1).toPrecision(3);
			//GAIN = 20*log(増幅度)
			linvertingamplifier_logid.value = parseFloat(GAIN*Math.LOG10E * Math.log( parseFloat(livertingamplifier_timesid.value))).toPrecision(3);
			//出力電圧 = - Vin * 増幅度
			linvertingamplifire_Voutid.value = -lvin * parseFloat(livertingamplifier_timesid.value).toPrecision(3);
			
			//非反転増幅回路計算
			//増幅度 = 1+R1/R2
			lnoninvertingamplifier_timesid.value = (1+lr2/lr1).toPrecision(3);
			//GAIN = 20*log(増幅度)
			lnoninvertingamplifier_logid.value =parseFloat(GAIN*Math.LOG10E * Math.log(parseInt(lnoninvertingamplifier_timesid.value))).toPrecision(3);
			//出力電圧 = Vin * 増幅度
			lnoninvertingamplifier_Voutid.value = lvin * parseFloat(lnoninvertingamplifier_timesid.value).toPrecision(3);
		}
      </script>
  </body>
</html>

 

 

 HTMLの基本の参考:

 ・HTML の基本 - ウェブ開発を学ぶ | MDN

HTMLのidとは?使い方やclassとの違いについても解説 | 侍エンジニアブログ

【HTML】id属性とは? 使い方と特徴を解説 | ZeroPlus Media

 ・HTML Living Standardリファレンス

 javascript参考

 ・Document: querySelector() メソッド - Web API | MDN

 

関連記事

過去の記事: