Analog Computer part-1

825 Views

June 17, 24

スライド概要

今回テーマとしてアナログコンピュータを取り上げます。さしあたりの目的は、微分方程式を解くためとします。このため、アナログの積分器、加減算器、乗算器を作り、これらを組合せてアナログコンピュータを実現します。
当初は機械回路の記号解析を行う予定でしたが、まずアナログコンピュータだけでも面白いと思いました。世の中にある数理モデルを電気回路で表現して電気回路シミュレータを用いて解析できるのは興味深いです。
また機械や電気分野で取り扱う様々な物理量の“量”に対する根本的な概念理解へと進んでいくための入り口としても良いかなと思います
アナログコンピュータとはアナログ素子で電気回路網を作り、電圧/電流など回路内を流通するアナログ量で演算処理ができる情報処理装置のことです。このため並列処理が可能になり、計算を高速化できる長所があります。
その実現には以下にようなレベル(私見)があります。 part1ではレベル1~2を、part2ではレベル2~3について解説する予定です。なお、レベル3から4の間には大きなギャップがあり今回は行いません。

profile-image

これまでに主に,ロボティクス・メカトロニクス研究,特にロボットハンドと触覚センシングの研究を行ってきました。現在は、機械系の学部生向けのメカトロニクス講義資料、そしてロボティクス研究者向けの触覚技術のサーベイ資料の作成などをしております。最近自作センサの解説を動画で始めました。https://researchmap.jp/read0072509 電気通信大学 名誉教授 

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

2024.6.17 Analog Computer -part1 下 条 誠 電気通信大学名誉教授 Burst and spike activity of Hibdmarsh-Rose neuron Hindmarsh-Rose neuron model 𝑑𝑥 =𝑦+𝜙 𝑥 −𝑧+𝑰 𝑑𝑡 𝑑𝑦 =𝜓 𝑥 −𝑦 𝑑𝑡 𝑑𝑧 = 𝑟 𝑠 𝑥 − 𝑥𝑅 − 𝑧 𝑑𝑡 𝜙 𝑥 = −𝑎𝑥 3 + 𝑏𝑥 2 𝜓 𝑥 = 𝑐 − 𝑑𝑥 2 The University of Electro-Communications Department of Mechanical Engineering and Intelligent System

2.

はじめに 1. 今回テーマとしてアナログコンピュータを取り上げます。さしあた りの目的は、微分方程式を解くためとします。このため、アナログ の積分器、加減算器、乗算器を作り、これらを組合せてアナログコ ンピュータを実現します。 2. 当初は機械回路の記号解析を行う予定でしたが、まずアナログコン ピュータだけでも面白いと思いました。世の中にある数理モデルを 電気回路で表現して電気回路シミュレータを用いて解析できるのは 興味深いです。 3. また機械や電気分野で取り扱う様々な物理量の“量”に対する根本的な 概念理解へと進んでいくための入り口としても良いかなと思います。 2

3.

アナログコンピュータとは 1. アナログコンピュータとは 2. アナログコンピュータの構成要素 2.1 積分器 2.2 加算器 2.3 乗算器 3. アナログコンピュータを用いた計算例 3.1 ばね‐質量‐ダンパー系 3.2 van der pol方程式 3.3 Lorenz方程式 3.4 Hindmarsh–Rose neuron mode 3

4.

Analog Computerの実現レベル アナログコンピュータとはアナログ素子で電気回路網を作り、電圧/電流など回路内を 流通するアナログ量で演算処理ができる情報処理装置のことです。このため並列処理 が可能になり、計算を高速化できる長所があります。 その実現には以下にようなレベル(私見)があります。 part1ではレベル1~2を、 part2ではレベル2~3について解説する予定です。なお、レベル3から4の間には大 きなギャップがあり今回は行いません。 演算器 出力 制限 入力 offset ドリ フト ノイズ 影響 関数表現 Behavioral Voltage Sources なし なし なし なし Ltspice、乗算など関数表現 level2 理想 OPamp opamp* なし なし なし なし Ltspice、理想素子、専用の乗算IC? level3 実際の OPamp 高性能OP あり あり ? ? Ltspice、←実環境でない 高性能OP あり あり あり あり 実際の電気回路での動作、部品のばらつ きなどあり レベル 内 level1 level4 容 Hardware での実現 あり:困難因子 備 考 Ltspice:無償ソフト。電子回路分野で汎用的なアナログ動作解析ができます opamp: Ltspiceで定義された理想opampモデル名 4

5.

今回のテーマ(アナログコンピュータ) 電気回路による物理モデルの動作検証 変換 物理モデル 電気回路モデル 実行 電気回路 (シミュレータ) Ltspiceを使います Ltspice:無償ソフト。電子回路分野で汎用的なアナログ動作解析ができます 5

6.

アナログコンピュータ 6 ⚫ アナログコンピュータとは、数値のデジタル数値化(ビット化)を行なわず、 アナログ量のまま演算処理できるコンピュータのことである。 ⚫ 回路内を流通するアナログ信号が、例えば電圧の高低が数値の大小に対 応している。そのハードウェアにもアナログ素子が用いられる。アナログ素 子の組み合わせによって並列処理が可能であるので、計算が高速になる という長所がある。また、データの入出力にも直接アナログ信号を用いるこ とができるので、フィードバック制御に適しているなどの特性もある。 ⚫ アナログコンピュータが一般の用途に用いられることはないが、学術研究 用のニューロコンピュータや、家電製品に組み込まれるファジイコントロー ラなどに、デジタルコンピュータとの混合(ハイブリッド)の形式で用いられ ることが多い。 https://www.sophia-it.com/content/アナログコンピュータ

7.

例:2階の常微分方程式をアナログコンピュータで解く 積分器と加算器、増幅器があれば電気回路の解が出力される 方程式 k f m b 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 + 𝑏 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 初期条件: 𝑑𝑥(𝑡)቉ 𝑖𝑐 𝑑 2 𝑥(𝑡) 𝑑𝑡 2 積分器 2台 加算器 1台 増幅器 2台 方程式の解が 出力 𝑑𝑡 𝑑𝑥(𝑡) 𝑑𝑡 積分器 𝑖𝑐: 𝑣0 = 𝑣0 , 𝑥(𝑡)ሿ𝑡=0 = 𝑥(0) 𝑡=0 𝑥(𝑡) 積分器 𝑖𝑐: 𝑥0 発振器 1台 −b/m 2 𝑑 𝑥(𝑡) = 𝑑𝑡 2 1 𝑑𝑥(𝑡) −𝑏 − 𝑘𝑥(𝑡) + 𝑓(𝑡) 𝑚 𝑑𝑡 + + + 加算器 −𝑘/𝑚 f/m 発振器 7

8.

2階の常微分方程式をアナログコンピュータで解く 8 電気回路シミュレータLtspiceを使って解く 積分器 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) + 2 + 10𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 𝑚 = 1𝑘𝑔, 𝑘 = 10 𝑁Τ𝑚 , 𝑏 = 2 𝑁𝑠Τ𝑚 𝑖𝑐: 𝑣0 = −2 𝑚Τ𝑠 , 𝑥 0 = 3𝑚 OPamp 𝑥(𝑡) 前頁の回路をLtspiceでつくる 外力 f 1. 積分回路を電気回路で作れれば 問題は解ける! 2. 加算回路は上図のとおりオペア ンプ1個で作れる 積分器の回路は次 𝑑𝑥(𝑡) 𝑑𝑡 Ltspice出力

9.

2.アナログコンピュータの構成要素 1. アナログコンピュータとは 2. アナログコンピュータの構成要素 2.1 積分器 2.2 加算器 2.3 乗算器 3. アナログコンピュータを用いた計算例 3.1 ばね‐質量‐ダンパー系 3.2 van der pol方程式 3.3 Lorenz方程式 3.4 Hindmarsh–Rose neuron mode 9

10.

2.1 積分器(level_1) 関数表記 積分器(level_1) 関数表記 Ltspiceにはビヘービア電圧源(BVS: Behavioral Voltage Sources)という、 “数式関数”で表現できる電圧/電流源があります。 Behavioral Voltage Sources 上図は入力V(sig)を積分する関数を表します。またパラメータ として初期値(vol)を指定できます。 𝑡 𝑉0 = න 𝑉𝑠𝑖𝑔 𝑑𝑡 + 𝑉vol 0 𝑉0 ሿ𝑡=0 = 𝑉𝑣𝑜𝑙 10

11.

2.1 積分器(level_2) 理想OP 積分器回路 11 opamp1個から構成できる R C Vi Vo R=100k, C=0.1F, τ=10ms 時定数についてはpart2? 𝑡 𝑉0 = − 1 න 𝑉 𝑑𝑡 𝑅𝐶 0 𝑖 𝑅𝐶:時定数τ[s] 問題:初期条件icの設定方法は? 方法1:コンデンサCの電荷を設定する? ←回路切替、パルス給電?(注) 方法2:新たに設定回路が必要なため、 今回は次頁の方式を用いた (注)実機を作るなら、方法1がic設定など簡単になるためありか https://www.docswell.com/s/m_shimojo/ZMYDWZ-2022-04-16-143031 0V 𝑉𝑖 電圧 出力は反転 してしまう 𝑉0 時間 回路動作原理は左記を参照してください

12.

2.1 積分器(level_2) 初期条件付与 ic:1.5 ① 12 ③ ③ ② 差動増幅器 0V ② R=10k, C=10F, τ=1s 初期条件を加えた出力 積分器と差動増幅器を組合わせる 積分器 + 差動増幅器 𝑘:差動増幅器Gain 初期条件 𝑉0 = 1 𝑡 − න 𝑉 𝑑𝑡 ∗ −𝑘 + 𝑉𝑜𝑓𝑓𝑠𝑒𝑡 𝑅𝐶 0 𝑖 𝑘 𝑡 𝑉0 = න 𝑉 𝑑𝑡 + 𝑉𝑜𝑓𝑓𝑠𝑒𝑡 𝑅𝐶 0 𝑖 𝑉0 ሿ𝑡=0 = 𝑉𝑜𝑓𝑓𝑠𝑒𝑡 となる https://www.docswell.com/s/m_shimojo/ZMYDWZ-2022-04-16-143031 ① 差動増幅器: 𝑣 = 𝑘(𝑉+ − 𝑉− ) 1. kは増幅率で抵抗比で決まる 2. V-端子に積分器出力を接続 3. V+端子にオフセットを加える 今回k=1とした 差動増幅器の原理は左記を参照してください

13.

2.2 加算器(level_2) 理想OP 加算器の出力 𝑉1 𝑉2 𝑉𝑖 𝑉𝑛 R1 Rf 𝑉0 = − R2 𝑅𝑓 𝑅𝑓 𝑅𝑓 𝑉1 + 𝑉2 + ⋯ + 𝑉 𝑅1 𝑅2 𝑅𝑛 𝑛 Ri 1. オペアンプは出力制限がある ←電源電圧は超えない Rn Vo 2. 出力は反転する 3. 減算は負数を加算する 重みwi付き入力の加算が可能 𝑤𝑖 = 𝑅𝑓 Τ𝑅𝑖 例) 𝑅𝑓 = 12kΩ, 𝑅1 = 2kΩ, 𝑅2 = 3kΩ, 𝑅3 = 6kΩ 12𝑘 12𝑘 12𝑘 𝑉0 = − 𝑉 + 𝑉 + 𝑉 2𝑘 1 3𝑘 2 6𝑘 3 = − 6𝑉1 + 4𝑉2 + 2𝑉3 加算器はlevel_1でも 簡単に作れるが入力 数の増減が面倒なの でカットする 13

14.

2.3 乗算器(level_1) Ltspiceにはビヘービア電圧源(BVS: Behavioral Voltage Sources)という、 “数式関数”で表現できる電圧/電流源があります。 Behavioral Voltage Sources 上図は入力sig1とsig2を乗算する関数を表します。 𝑉0 = 𝑉sig1 ∗ 𝑉sig2 14

15.

2.3 乗算器(level_3) このほか、乗算素子AD633を利用する 15 使用はPart2で行います 電圧を1/10とする→ ADD633 4象限 低価格 アナログ乗算器 X1 − X2 ∗ 𝑌1 − 𝑌2 Τ10𝑉 + 𝑍 ADIのAD633は、8-PDIPまたは8-SOICパッケージの4象限アナログ乗算器です。このデバイスは、レー ザー較正されているため、フルスケールの2%の保証された精度で信頼性と安定性を実現します。10MΩの 高い入力抵抗により、信号源のローディングはごくわずかです。AD633は、変調/復調や電圧コントローラ の増幅など、高い信頼性と安定した性能を必要とするアプリケーションに最適です。(ANALOG DEVICES)

16.

3.アナログコンピュータを用いた計算例 1. アナログコンピュータとは 2. アナログコンピュータの構成要素 2.1 積分器 2.2 加算器 2.3 乗算器 3. アナログコンピュータを用いた計算例 3.1 ばね‐質量‐ダンパー系 3.2 van der pol方程式 3.3 Lorenz方程式 3.4 Hindmarsh–Rose neuron mode 演算素子は、level_1,Level_2を用いた 16

17.

3.1 ばね‐質量‐ダンパー系 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 +𝑏 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 17 時間軸表現 𝑥(𝑡) 𝑚 = 1, 𝑏 = 1Τ5, 𝑘 = 1Τ2, 𝑓 = 0 𝑖𝑐: 𝑣0 = 0, 𝑥 0 = 2 ሶ 𝑥(𝑡) 積分器 level_1 初期値 2 ሶ 𝑥(𝑡) 位相面軌道表現 f=0 𝑥(𝑡)

18.

3.1 ばね‐質量‐ダンパー系 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 + 𝑏 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 𝑚 = 1, 𝑏 = 1Τ5, 𝑘 = 1Τ2 , 𝑖𝑐: 𝑣0 = 0, 𝑥 0 = 2 BVSで構成 理想OPAMP 18 ሶ 𝑥(𝑡) 𝑥(𝑡) 𝑓(𝑡) 外力 f(t)上下逆転してる

19.

3.1 位相面軌道(Phase Plane Trajectory) 速度 外力ON t=0 𝑑𝑥(𝑡) 𝑑𝑡 変位 𝑥(𝑡) 19

20.

3.1 位相面軌道 (積分器Lev_2) 20 積分器:Int_lv2 時定数τ=1秒 IC point 理想OPを利用 0V 1Nのstep荷重を加えた 速度v 積分器:Int_lv1 と動作は変わらない 1/20 1/7 変位x IC:1m/s IC:2m 外力により伸びたばねの 平衡点に収束する .step param spring list 1k 3k 7k 10k 15k 20k バネ定数k=1/1~1/20 [N/m]に変化した 24V! 実際のOPなら 上限over

21.

3.2 van der pol方程式 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 𝑑𝑡 2 + 𝜇 𝑥 2 − 1 𝑑𝑡 + 𝑥(𝑡) =0 𝜇 = 1.5, 𝑖𝑐: 𝑥ሶ 0 = 0, 𝑥 0 = 0.5 𝑥ሶ 𝑡 𝑥ሶ 𝑡 𝑥 𝑡 𝜇 𝑥2 − 1 𝑥 𝑡 21

22.

3.2 位相面軌道(Phase Plane Trajectory) Limit cycle IC: point 速度 𝑑𝑥(𝑡) 𝑑𝑡 変位 𝑥(𝑡) 22

23.

3.2 van der pol方程式 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 𝑑𝑡 2 + 𝜇 𝑥 2 − 1 𝑑𝑡 + 𝑥(𝑡) =0 𝜇 = 1.5, 𝑖𝑐: 𝑥ሶ 0 = 𝑥 0 ∗ 0.5, 𝑥 0 = 𝑥 0 .step param x0 list 0,0.5….. Ltspice回路図 23

24.

3.2 位相面軌道(Phase Plane Trajectory) ic:pointを変化させた Limit cycle 𝑥 = 3.0, 𝑥ሶ = 1.5 𝑥 = 1.5, 𝑥ሶ = 0.75 速度 𝑥 = 1.0, 𝑥ሶ = 0.5 𝑥 = 0.5, 𝑥ሶ = 0.25 𝑑𝑥(𝑡) 𝑑𝑡 変位 𝑥(𝑡) .step param x0 list 0 0.5 1.0 1.5 2.0 2.5 3.0 24

25.

3.2 位相面軌道(Phase Plane Trajectory) 25 μを変化させた μ=9 μ=0 速度 𝑑𝑥(𝑡) 𝑑𝑡 変位 𝑥(𝑡) μ: 0, 0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9 .step param myu list 0 0.5 1 2 3 4 5 6 7 8 9

26.

𝑑𝑥 =𝜎 𝑦−𝑥 𝑑𝑡 3.3 Lorenz 方程式 26 𝑑𝑧 = 𝑥𝑦 − 𝛽𝑧 𝑑𝑡 𝜎 = 10, 𝜌 = 28, 𝛽 = 8Τ3 𝑑𝑦 =𝑥 𝜌−𝑧 −𝑦 𝑑𝑡 𝑖𝑐: 𝑥 = 1, 𝑦 = 1, 𝑧 = 1 ←初期値 引き算器 積分器 乗算器 乗算器 引き算器 差動増幅器

27.

3.3 Lorenz Attractor x-y y-z z-x LtspiceからdataをExportして pythonで描いたもの 27

28.

3.4 Hindmarsh–Rose neuron model 𝑑𝑥 =𝑦+𝜙 𝑥 −𝑧+𝑰 𝑑𝑡 𝑑𝑦 𝑑𝑧 =𝜓 𝑥 −𝑦 = 𝑟 𝑠 𝑥 − 𝑥𝑅 − 𝑧 𝑑𝑡 𝑑𝑡 28 𝜙 𝑥 = −𝑎𝑥 3 + 𝑏𝑥 2 𝜓 𝑥 = 𝑐 − 𝑑𝑥 2 𝑎 = 1, 𝑏 = 3, 𝑐 = 1, 𝑑 = 5 𝑟 = 0.001 𝑠 = 4, 𝑥𝑅 = −8/5 乗算器 加算器 積分器

29.

3.4 Hindmarsh–Rose model of neuronal activity 29 z(t) 膜電位x(t) z(t)は適応電流に相当し、スパイクのたびに増加し、発火率の低下につながる https://en.wikipedia.org/wiki/Hindmarsh–Rose_model

30.

つづく • 先月まではディジタル制御を取り上げました。今回はアナログ関係をやりたいな と思い作りました。もともと私は真空管世代でアンプやラジオを設計試作してい ましたのでアナログは大好きです。もちろんディジタルも好きですが、アナログ の並列性、高速演算可能性にもっと注目しても良いのではと思っています • アナログコンピュータで難しいのはダイナミックレンジが狭いことです。実際の オペアンプでは出力電圧の範囲は電源電圧(ex:±15V)の制限を受けます。また 高精度の演算は、素子のばらつきやドリフトなどがあり出力結果にどの程度の信 頼性があるか分かりません。 • ただし、重み付き加算との相性が良く、並列性が高いなど、analog-chipが開発さ れればNN(Neural Network)への応用もあるかもしれません。 • Part1では、関数記述や理想オペアンプを利用して上記の問題点を無視してアナロ グコンピュータを作ってみました。 • Part2では、現実の素子を使い、出力レンジがあり素子の入力オフセットがある状 態で回路を作り、計算を行わせてみようかと思います。 30