1.1K Views
July 31, 24
スライド概要
1.はじめに
2. スケール変換と時定数
2.1 積分器の時定数
2.2 大きさ(強度)スケール因子
(1) 強度スケール因子と数式モデル
(2) 計算回路図
(3) 回路素子の記号
2.3 時間スケール(方法1)
(1) 時間スケール因子と数式モデル
(2) 計算回路図
2.4 時間スケール(方法2)
(1) 時間スケール変換
(2)検証実験
3. オペアンプの入力オフセット補正
3.1 入力オフセット補正回路
3.2 実験結果
4. 初期値の設定
4.1 積分定数付きの積分器をつくる
4.2 パルス給電方法(方法1)
(1) パルス給電回路
(2) 実験結果
4.3 差動増幅器付加方法(方法2)
(1) 差動増幅器付加回路
(2) 実験結果
5. 積分器と乗算器(Level_3)
5.1 積分器
5.2 乗算器
6.積分器と乗算器(Level_3)実行結果
7.計算精度に影響を与える主な要素
8.おわりに
これまでに主に,ロボティクス・メカトロニクス研究,特にロボットハンドと触覚センシングの研究を行ってきました。現在は、機械系の学部生向けのメカトロニクス講義資料、そしてロボティクス研究者向けの触覚技術のサーベイ資料の作成などをしております。最近自作センサの解説を動画で始めました。https://researchmap.jp/read0072509 電気通信大学 名誉教授
2024.7.31 Analog Computer –part2 下 条 誠 電気通信大学名誉教授 Analog Computer実現でのメモ 積分器の時定数(RC)と数式モデル 1. 大きさスケール因子と数式モデル 2. 時間スケール因子と数式モデル 3. 時間スケール変換 積分器の初期値の設定方法 1. 方法1:コンデンサCにパルス給電を行う 2. 方法2:積分器と差動増幅器の組合わせ The University of Electro-Communications など Department of Mechanical Engineering and Intelligent System
内 容 1.はじめに 4. 初期値の設定 4.1 積分定数付きの積分器をつくる 2. スケール変換と時定数 4.2 パルス給電方法(方法1) 2.1 積分器の時定数 (1) パルス給電回路 2.2 大きさ(強度)スケール因子 (2) 実験結果 (1) 強度スケール因子と数式モデル 4.3 差動増幅器付加方法(方法2) (2) 計算回路図 (1) 差動増幅器付加回路 (3) 回路素子の記号 (2) 実験結果 2.3 時間スケール(方法1) (1) 時間スケール因子と数式モデル 5. 積分器と乗算器(Level_3) (2) 計算回路図 5.1 積分器 2.4 時間スケール(方法2) 5.2 乗算器 (1) 時間スケール変換 (2)検証実験 3. オペアンプの入力オフセット補正 6.積分器と乗算器(Level_3)実行結果 7.計算精度に影響を与える主な要素 3.1 入力オフセット補正回路 3.2 実験結果 8.おわりに 2
はじめに 1. 今回テーマとしてアナログコンピュータを取り上げます。さしあたりの目的 は、微分方程式を解くためとします。このため、アナログの積分器、加減算 器、乗算器を作り、これらを組合せてアナログコンピュータを実現します。 2. part1では、関数表現を用いた素子を用いるなど理想的状態でアナログコン ピュータは何ができるかを説明しました。 3. 今回のpart2では、実際に実現する場合について解説します。例えば、ダイナ ミックレンジを拡大するためのscale変換(強度や時間)、それらに関係する 積分器の時定数、そして積分器の初期値設定回路、入力オフセットなどにつ いて解説します。 4. 当初は機械回路の記号解析を行う予定でしたが、まずアナログコンピュータ だけでも面白いと思いました。世の中にある数理モデルを電気回路で表現し て電気回路シミュレータを用いて解析できるのは興味深いです。 なお、内容に多くの誤りがあるかと思いますのでご注意ください 3
アナログコンピュータとは アナログコンピュータとは、電気回路である 電気回路により物理モデルをシミュレートする 数式モデル 電気回路モデル 物理モデル 実行 電気回路 (シミュレータ) Ltspiceを使います Ltspice:無償ソフト。電子回路分野で汎用的なアナログ動作解析ができます 4
2階の常微分方程式をアナログコンピュータで解く 積分器と加算器、増幅器があれば物理モデルの解が出力される 方程式 k f m b 初期条件: 𝑑𝑥(𝑡) 𝑖𝑐 物理モデル 𝑑 2 𝑥(𝑡) 𝑑𝑡 2 増幅器 2台 発振器 1台 方程式の解が 出力 𝑑𝑡 𝑑𝑥(𝑡) 𝑑𝑡 積分器 𝑖𝑐: 𝑣0 積分器 2台 加算器 1台 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 + 𝑏 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 = 𝑣0 , 𝑥(𝑡)ሿ𝑡=0 = 𝑥(0) 𝑡=0 𝑥(𝑡) 積分器 𝑖𝑐: 𝑥0 電気回路モデル −b/m 2 𝑑 𝑥(𝑡) = 𝑑𝑡 2 1 𝑑𝑥(𝑡) −𝑏 − 𝑘𝑥(𝑡) + 𝑓(𝑡) 𝑚 𝑑𝑡 + + + 加算器 −𝑘/𝑚 f/m 発振器 5
2.スケール因子と時定数 1. 物理量の対応付けとスケーリング 物理系モデルの物理量・時間と電気回路系の電圧値・時間 の関係を述べる 2. 積分器の時定数 この時重要なパラメータとなる積分器の時定数との関係を 述べる 参考文献: Jackson, Albert Smith , Analog Computation : McGRAW-HILL BOOK COMPANY, 1960 6
2. スケール変換と時定数 7 Analog Computerの独立変数は電圧(電流)と時間である これで物理モデルをどのようにして表現するか? 物理モデル 対応 付け モデル物理量 Analog Computer (電気回路) 電圧(電流) (距離、速度、圧力…) モデル時間 (t) 変換 回路時間 () (今回は電圧で) 1. 物理量と電圧値のスケール変換・対応付け 2. モデル系の時間(t)と回路系の時間()のスケール変換注) 物理量 物理量・時間 (t) 電圧 電圧・時間 () 注)2つの方法(考え方)がある
2.1 積分器の時定数 8 積分器の時定数(RC)はAnalog Computerで どのような作用をするのか? 初期値 R C 1Τ𝑇 𝑉𝑖 Vi Vo 𝑉𝑜 𝑅𝐶 = T 積分器の記号 1 𝑡 𝑉0 = − න 𝑉 𝑑𝑡 𝑅𝐶 0 𝑖 𝑅𝐶:時定数[s] 1/RC (1/T) は積分器のゲインを 決めるゲイン定数ともいえる (T=0.1とすれば、Gain=10ですね) この積分器の時定数は, Analog Computerにおいて重要なスケール因子 (”大きさ”と”時間”)に関係する
2.2 大きさ(強度)スケール因子 物理量の正規化 • 距離 x、電圧 e を例にとる • 距離の最大値を10m、電圧の最大値を100Voltsとすると 𝑥 𝑒 = 10 𝑚 100 𝑉𝑜𝑙𝑡𝑠 −1 ≤ 𝑥 ≤1 10 すると電気回路出力は±1の範囲に収まる ここでのスケール因子(k)は次となる スケール因子 𝑒 = 𝑘𝑥 𝑘: 𝑣𝑜𝑙𝑡𝑠Τ𝑚 𝑘: 𝑆𝑐𝑎𝑙𝑒 𝑓𝑎𝑐𝑡𝑜𝑟 𝑤𝑖𝑡ℎ 𝐷𝑖𝑚𝑒𝑛𝑠𝑖𝑜𝑛𝑎𝑙 𝑈𝑛𝑖𝑡 例)正規化した回路出力が0.2とは、 𝑥 = 0.2 → 𝑥 = 0.2 10 = 20𝑚 10 𝑘 = 10 𝑣𝑜𝑙𝑡𝑠Τ𝑚 e=20[volts] 9
(1) 大きさスケール因子と数式モデル 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) + 3 + 16𝑥(𝑡) = 0 𝑑𝑡 2 𝑑𝑡 例) 数式変形(電気回路への変換) 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) + 3 + 16𝑥(𝑡) = 0 𝑑𝑡 2 𝑑𝑡 初期値 𝑑𝑥(𝑡) = −0.64 𝑚Τ𝑠 , 𝑥 𝑡 ሿ𝑡=0 = 2𝑚 𝑑𝑡 𝑡=0 最大値を想定する(←User) 𝑑 2 𝑥(𝑡) = 32 𝑚Τ𝑠 2 2 𝑑𝑡 𝑚𝑎𝑥 𝑑𝑥(𝑡) = 8 𝑚 Τ𝑠 𝑑𝑡 𝑚𝑎𝑥 𝑥(𝑡) 𝑚𝑎𝑥 = 2𝑚 32 𝑥ሷ + 3 8 32 𝑥ሶ + 16 2 8 𝑥 =0 2 4 4 最大値を決める(積分器gain=4想定してる) 各々最大値で正規化している 初期値も最大値で正規化する 𝑥ሷ 32 + 0.75 𝑥ሶ 8 + 𝑥 =0 2 結果として元の数式を32で除した形 10 𝑥ሶ 0 −0.64 = = −0.08 8 8 𝑥(0) 2 = =1 2 2
(2) 計算回路図 −0.08 𝑥ሷ 32 4 𝑥ሶ − 8 11 −1 4 𝑥 2 0.75 𝑥ሷ 32 𝑥ሶ + 0.75 8 𝑥 + =0 2 𝑥ሶ 0 −0.64 = = −0.08 8 8 𝑥(0) 2 = =1 2 2 𝑥ሷ = 𝑚Τ𝑠 2 正規化された変数を使用した計算回路図 𝑥ሶ = 𝑚Τ𝑠 例)最初の積分器で解かれる方程式 𝑡 −𝑥ሶ = − න 𝑥ሷ 𝑑𝑡 + 𝑥(0) ሶ R 0 C 𝑜𝑢𝑡 in 初期値 T=0.25とするとGain=4 1Τ𝑇 in 正規化 𝑡 𝑥ሶ 𝑥ሷ 𝑥ሶ 0 −8 = − න 32 𝑑𝑡 − 8 8 32 8 0 𝑅𝐶 = 𝑇 𝑜𝑢𝑡 𝑥 =𝑚 𝑡 𝑥ሶ 𝑥ሷ 𝑥ሶ 0 − = −4 න 𝑑𝑡 − 8 8 0 32
(3) 回路素子の記号 (1)反転器 𝑒0 = −𝑒𝑖 𝑒𝑖 (2)加算器 𝑒 1 𝑎 𝑒2 𝑏 12 𝑒0 = − 𝑎𝑒1 + 𝑏𝑒2 −𝑒0 (0) (3)積分器 𝑒𝑖 1 𝑅𝐶 1 𝜏 𝑒0 = − න 𝑒 𝑑𝜏 + 𝑒0 (0) 𝑅𝐶 0 𝑖 演算増幅器で(1)-(3)回路を構成し ているため、出力にマイナスが付く https://www.docswell.com/s/m_shimojo/ZMYDWZ-2022-04-16-143031 例) 𝑥ሷ 32 −0.08 4 𝑥ሶ − 8 −1 4 𝑥 2 モデルの数式 𝑥ሷ 𝑥ሶ = − 0.75 32 8 − 𝑥 2 0.75 ① まず 𝑥ሷ 32 𝑥ሶ 0 −0.64 = = −0.08 8 8 𝑥(0) 2 = =1 2 2 を求める(図左側の加算器出力) ② 次に、積分器gainを掛け順次積分していく 回路素子出力が常に反転するので分かりにくい
2.3 時間スケール(方法1) 数学モデルの時間スケールを変更する方法 τ:回路系の時間 t:物理系の時間 𝜏 = 𝑛𝑡 Analog Computerは電気回路なので物理モデルを回路系へ変換したとき、 電気回路での時間(τ) (注)と物理モデル(方程式)での時間(t)は通常異なる。 1 𝑡= 𝜏 𝑛 𝑑𝑥 𝑑𝑥 =𝑛 𝑑𝑡 𝑑𝜏 2𝑥 𝑑2𝑥 𝑑 = 𝑛2 2 2 𝑑𝑡 𝑑𝜏 ⋯⋯ 𝑚𝑥 𝑑𝑚 𝑥 𝑑 = 𝑛𝑚 𝑚 𝑚 𝑑𝑡 𝑑𝜏 すると微分式は以下のようになる 例) 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) + 1.5 + 4𝑥 𝑡 = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 𝑑2 𝑥𝑐 𝜏 𝑑𝑥𝑐 𝜏 𝑛 + 1.5𝑛 + 4𝑥𝑐 𝜏 = 𝑓𝑐 (𝜏) 𝑑𝜏 2 𝑑𝜏 2 (注)計算の実行時間ではない。電気回路での時間軸スケールの話し 13
(1) 時間スケール因子と数式モデル(方法1) 例 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) + 1.5 + 4𝑥 𝑡 = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 最大値の想定: 𝑥(𝑡) 𝑚𝑎𝑥 = 15𝑚 時間スケール因子変換 𝑑𝑥(𝑡) = −3 𝑚Τ𝑠 𝑑𝑡 𝑡=0 𝑥 𝑡 ሿ𝑡=0 = 15𝑚, 𝑑2 𝑥(𝑡) = 60 𝑚Τ𝑠 2 2 𝑑𝑡 𝑚𝑎𝑥 𝑑𝑥(𝑡) = 30 𝑚Τ𝑠 𝑑𝑡 𝑚𝑎𝑥 𝑑𝑥 𝑑𝑥 =𝑛 𝑑𝑡 𝑑𝜏 1 𝑡= 𝜏 𝑛 14 𝑑2 𝑥 𝑑2 𝑥 2 =𝑛 𝑑𝑡 2 𝑑𝜏 2 𝑑2 𝑥(𝜏Τ𝑛) 𝑑𝑥(𝜏Τ𝑛) 𝑛 + 1.5𝑛 + 4𝑥 𝜏Τ𝑛 = 𝑓(𝜏Τ𝑛) 𝑑𝜏 2 𝑑𝜏 2 電気回路(analog computer)上での独立変数はτであるので書き換えると 𝑥𝑐 𝜏 ≡ 𝑥 𝜏Τ𝑛 = 𝑥(𝑡) 𝑥𝑐ሶ 𝜏 = 𝑑2 𝑥𝑐 𝜏 𝑑𝑥𝑐 𝜏 𝑛 + 1.5𝑛 + 4𝑥𝑐 𝜏 = 𝑓𝑐 (𝜏) 𝑑𝜏 2 𝑑𝜏 2 1 𝑑𝑥 𝑛 𝑑𝜏 𝑥𝑐ሷ 𝜏 = 1 𝑑𝑥 𝑛2 𝑑𝜏 𝑥𝑐 𝜏 ሿ𝑡=0 = 15𝑚, 𝑑𝑥𝑐 𝜏 ൩ 𝑑𝜏 𝑡=0 = 1 𝑑𝑥 3 = − 𝑚 Τ𝑠 𝑛 𝑑𝜏 𝑛
(1) 時間スケール因子と数式モデル(方法1) 15 n=0.2とすると 0.04𝑥𝑐ሷ 𝜏 + 0.3𝑥𝑐ሶ 𝜏 + 𝑥𝑐 𝜏 = 𝑓𝑐 (𝜏) 最大値: 𝑥𝑐 0 = 15 𝑚 𝑥ሷ 𝑐𝑚𝑎𝑥 𝜏 = 1500 𝑚Τ𝑠 2 𝑥ሶ 𝑐𝑚𝑎𝑥 𝜏 = 150 𝑚Τ𝑠 𝑥𝑐𝑚𝑎𝑥 𝜏 = 15 𝑚 𝑥𝑐ሶ 0 = −15 𝑚Τ𝑠 60 × 1Τ𝑛2 30 × 1Τ𝑛 強度のスケール因子を決める(最大電圧を100voltsとする) 案1 𝑘1 = 100 𝑣𝑜𝑙𝑡𝑠 100 𝑣𝑜𝑙𝑡𝑠 = 6.67 𝑣𝑜𝑙𝑡𝑠Τ𝑚 𝑘2 = = 0.667 𝑣𝑜𝑙𝑡𝑠Τ 𝑚Τ𝑠 15 𝑚 150 𝑚 𝑘3 = 100 𝑣𝑜𝑙𝑡𝑠 = 0.0667 𝑣𝑜𝑙𝑡𝑠Τ 𝑚Τ𝑠 2 1500 𝑚 簡単化 案2 𝑘1 = 6 𝑣𝑜𝑙𝑡𝑠Τ𝑚 𝑘2 = 0.6 𝑣𝑜𝑙𝑡𝑠Τ 𝑚Τ𝑠 𝑘3 = 0.06 𝑣𝑜𝑙𝑡𝑠Τ 𝑚Τ𝑠 2 (Userが決める) 式を変形 両辺× 3Τ2 𝑥𝑐 𝜏 ≡ 𝑥 𝜏Τ𝑛 = 𝑥(𝑡) 0.06𝑥𝑐ሷ 𝜏 + (0.75)(0.6)𝑥𝑐ሶ 𝜏 + 6𝑥𝑐 𝜏 = 3ൗ2 𝑓𝑐 (𝜏) 𝑥𝑐 0 = 15 𝑚 𝑥 0 = 90 𝑣𝑜𝑙𝑡𝑠 ← 𝑘1 𝑥𝑐 0 𝑥𝑐ሶ 0 = −15 𝑚Τ𝑠 𝑥ሶ 0 = −9 𝑣𝑜𝑙𝑡𝑠 ← 𝑘2 𝑥𝑐ሶ 0
(2) 計算回路図(方法1) 0.06𝑥𝑐ሷ 𝜏 + (0.75)(0.6)𝑥𝑐ሶ 𝜏 + 6𝑥𝑐 𝜏 = 3ൗ2 𝑓𝑐 (𝜏) 強度スケール因子: −100𝑉 −100𝑉 𝑒 = 𝑘𝑥 ×2 0.09 0.9 ① 𝑘1 = 6 𝑣𝑜𝑙𝑡𝑠 Τ𝑚 0.75 −𝑓𝑐 (𝜏) 16 2 0.06𝑥𝑐ሷ 𝜏 ③ 10 −0.6𝑥𝑐ሶ 𝜏 ② 10 6𝑥𝑐 𝜏 ② 𝑘2 = 0.6 𝑣𝑜𝑙𝑡𝑠Τ 𝑚Τ𝑠 ① ③ 𝑘3 = 0.06 𝑣𝑜𝑙𝑡𝑠 Τ 𝑚Τ𝑠 2 0.75 各点電圧に対応する 物理量への変換係数 𝑛 = 0.2 (Userが決める) 正規化された変数を使用した計算回路図 例)RC=0.1 [s]の積分器では、gainは”10”となる ②→① 1 = 10 𝑅𝐶 1 𝜏 6𝑥𝑐 𝜏 = − න −0.6𝑥𝑐ሶ 𝜏 𝑑𝑟 + 6𝑥𝑐 0 𝑅𝐶 0 1 𝜏 ③→② −0.6𝑥𝑐ሶ 𝜏 = − න 0.06𝑥𝑐ሷ 𝜏 𝑑𝑟 − 0.6𝑥𝑐ሶ 0 𝑅𝐶 0
2.4 時間スケール(方法2) 17 時間スケールを、元の方程式ではなく電気回路で 直接操作して時間変換を行う R 1 𝑡 𝑉0 𝑡 = − න 𝑉𝑖 𝑡 𝑑𝑡 𝑅𝐶 0 C Vi Vo 𝜏 = 𝑛𝑡 𝑅𝐶 :時定数[s] 1 𝑛= 𝑅𝐶 𝜏Τ𝑛 𝜏 Τ𝑛 𝜏 𝜏 𝜏 𝜏 𝑉0 = −𝑛 න 𝑉𝑖 𝑑 = − න 𝑉𝑖 𝑑𝜏 𝑛 𝑛 𝑛 𝑛 0 0 今回、私のメインテーマ 積分器gain=1 となる
(1) 時間スケール変換(方法2) 18 時間スケールを、元の方程式ではなく電気回路で直接操作して時間変換を行う 𝜏 = 𝑛𝑡 1 𝜏 𝑒2 𝜏 = − න 𝑒 𝜏 𝑑𝜏 + 𝑒2 (0) 𝑅𝐶 0 1 ⚫ コンピュータのコンポーネントの動作を記述 する方程式の独立変数をτからntに変更する 𝑛 𝑡 𝑒2 𝑛𝑡 = − න 𝑒 𝑛𝑡 𝑑𝑡 + 𝑒2 (0) 𝑅𝐶 0 1 ⚫ 積分器は、tに関した積分のn倍したものと みなすことができる 𝑥(𝑡) ≡ 𝑥𝑐 (𝑛𝑡) 元のモデル変数x(t)と, コンピュータ変数xc(nt)を関連付ける すると、 例) 𝑑𝑥(𝑡) 𝑑𝑥𝑐 (𝑛𝑡) = 𝑑𝑡 𝑑𝑡 𝑑2 𝑥(𝑡) 𝑑2 𝑥𝑐 (𝑛𝑡) = 𝑑𝑡 2 𝑑𝑡 2 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) + 1.5 + 4𝑥 𝑡 = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 ⋯⋯ 𝑑𝑚 𝑥(𝑡) 𝑑𝑚 𝑥𝑐 (𝑛𝑡) = 𝑑𝑡 𝑚 𝑑𝑡 𝑚 𝑑2 𝑥𝑐 𝑛𝑡 𝑑𝑥𝑐 𝑛𝑡 + 1.5 + 4𝑥𝑐 𝑛𝑡 = 𝑓𝑐 (𝑛𝑡) 𝑑𝑡 2 𝑑𝑡 1. この時間スケーリング法は、初期条件も最大値も変えない 2. 電気回路上での時間は、モデル系時間のn倍になる 注)n=10とすると、電気回路の時間は10倍速く進む。よって、電気回路の時間を10倍とし たものがモデル系の時間となる
(2) 検証実験(方法2) ばね‐質量‐ダンパー系 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 + 𝑐 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 𝑚 = 1𝑘𝑔, 𝑘 = 10 𝑁Τ𝑚 , 𝑐 = 0.1 𝑁𝑠Τ𝑚 𝑖𝑐: 𝑣0 = 0, 𝑥 0 = 3 RC=1.0とRC=0.25とのシミュレーション結果を比較する k f m c 19
方法2:ばね‐質量‐ダンパー系(RC=1.0) 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 +𝑐 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 20 𝑚 = 1𝑘𝑔, 𝑘 = 10 𝑁Τ𝑚 , 𝑐 = 0.1 𝑁𝑠Τ𝑚 𝑖𝑐: 𝑣0 = 0, 𝑥 0 = 3 10V RC=1.0 𝑑𝑥(𝑡) 𝑑𝑡 𝑥(𝑡) 120秒
方法2:ばね‐質量‐ダンパー系(RC=1.0) 𝑑2 𝑥(𝑡) 1 𝑑𝑥(𝑡) + + 10𝑥(𝑡) = 0 𝑑𝑡 2 10 𝑑𝑡 𝑖𝑐: 𝑣0 = 0 𝑚Τ𝑠 , 𝑥 0 = 3𝑚 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) + 2𝜁𝜔 + 𝜔02 𝑥(𝑡) = 0 0 2 𝑑𝑡 𝑑𝑡 𝑒 − 1 = 𝑒 20 10 ∗ 10∗1.988 𝑚 = 1𝑘𝑔, 𝑘 = 10 𝑁 Τ𝑚 , 𝑐 = 0.1 𝑁𝑠 Τ𝑚 𝜔0 = 𝑘 = 𝑚 10 = 10 1 臨界粘性減衰係数: 𝑐𝑐 = 2 𝑚𝑘 = 2 10 𝑐 1Τ10 1 𝜁 = = = 減衰比: 𝑐𝑐 2 10 20 10 𝑓 = 𝜔0 Τ2𝜋 = 0.5035𝐻𝑧 −𝜁𝜔0 Δ𝑡 固有角振動数: 21 = 0.905354903 Ltspiceよりの計測値 𝑑𝑥(𝑡) 𝑑𝑡 周期:0.5029Hz (T = 1.988) 振動peak比:0.9046 𝑒 −𝜁𝜔0 𝑇 = 0.905354903 𝑥(𝑡) 30秒
方法2:ばね‐質量‐ダンパー系(RC=0.25) 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 +𝑐 + 𝑘𝑥(𝑡) = 0 𝑑𝑡 2 𝑑𝑡 22 𝑚 = 1𝑘𝑔, 𝑘 = 10 𝑁Τ𝑚 , 𝑐 = 0.1 𝑁𝑠Τ𝑚 𝑖𝑐: 𝑣0 = 0, 𝑥 0 = 3 10V RC=0.25 𝑑𝑥(𝑡) 𝑑𝑡 f=0 𝑥(𝑡) 30秒
方法2:出力の比較 23 RCが1.0と0.25とを比較した。時間軸scaleが1/4 10V 10V RC=1.0 RC=0.25 120秒 30秒
方法2:ばね‐質量‐ダンパー系(外力あり) 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 +𝑐 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 24 𝑚 = 1𝑘𝑔, 𝑘 = 10 𝑁Τ𝑚 , 𝑐 = 0.1 𝑁𝑠Τ𝑚 𝑖𝑐: 𝑣0 = 0, 𝑥 0 = 0 0.6V RC=1.0 Pulse幅800ms 120s
方法2:ばね‐質量‐ダンパー系(外力あり) 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 +𝑐 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 25 𝑚 = 1𝑘𝑔, 𝑘 = 10 𝑁Τ𝑚 , 𝑐 = 0.1 𝑁𝑠Τ𝑚 𝑖𝑐: 𝑣0 = 0, 𝑥 0 = 0 0.6V RC=0.5 Pulse幅400ms 60s
方法2:ばね‐質量‐ダンパー系(外力あり) 26 RCが1.0と0.5とを比較した。時間軸scaleが1/2 外力パルス幅(時間)を1/2とした 0.6V 0.6V RC=1.0 RC=0.5 400ms 200ms 120s Impluse幅は1/2とする 60s
3. オペアンプの入力オフセットを補正 演算増幅器の入力オフセットを補正する ⚫ 実際のオペアンプでは、入力端子(Vin-,Vin+)間にはわずかに電圧のずれ があります。この電圧のずれを入力オフセット電圧と呼びます ⚫ この電圧のずれがあると、出力電圧もオフセット電圧に利得をかけた値 だけずれることになります ⚫ 特に積分回路では、このずれが加算されるため、オフセット電圧の補償 が必要になります R V+ Rc VR V- C Rs Rc>>Rs 入力オフセット電圧を補正する 電圧を加える回路 27
3.1 入力オフセット補正回路 28 積分器のオフセット入力補償 コンデンサC RESET 時定数CR=10ms 注)R4,R5抵抗を含めた抵抗回路で決まる電圧値 となる。potentiometerで設定した電圧値に近い が正確にその値となるわけではない
3.2 検証実験 29 積分器出力 Int_out 補正なし オペアンプ(op07)は 低入力オフセット特性 を利用した。この期間 程度では補正なしでも ずれは目立たない? 0V 1秒 積分器入力 Int_in 0V 10Hz, ±1V 正弦波 1秒 時定数CR=10ms
3.2 検証実験 30 積分器出力(Int_out) OP07 • 低入力オフセット電圧:75μV(max) • 低オフセットドリフト:1.3μV/℃ (max) • 超安定、対時間:1.5μV / 月(max) • 低ノイズ:0.6μV p-p(max) • 広い入力電圧範囲:±14V • 広い電源電圧範囲:±3~±18V 補正なし in_offset=-0.0 10秒 入力オフセット値は、オペアンプの種類 そして個体によって変わる 時間が長くなるにつれてオフ セットの影響が大きくなる 補正なしだと、一定のずれ が積分されているため、積 分器の出力が右肩下がりと なっている 補正あり in_offset=-0.27 10秒
オペアンプの入力オフセットを補正 ポテンショメータの回路図 ポテンショメータの両端に±Vの 電圧をかけたときに、端子2に 発生する電圧とR1,R2の抵抗比 Rc=100kΩ、Rs=100Ωとす ると、オペアンプ+入力端子 に加わる補正電圧は、volのほ ぼ1/1000となる potentiometer 注)ポテンショメータ端子2出力電圧 値(vol)は、端子が開放端で接続がない 場合の電圧値である。ここに外部回路 を接続すると、全体の抵抗回路で決ま る電圧値となる。通常ポテンショメー タで設定した電圧値に近いが、正確に その値となるわけではない 31
4. 初期値の設定(積分定数) 積分定数𝑉0 (0)付きの積分器をつくる 微分方程式を解くとき、積分器出力に積分定数 𝑉0 (0) を加える必要がある。 どのように実現するか? 32
4.初期値の設定(積分定数) 積分器について基本 Vc 電荷: 𝑄 𝑡 = 𝐶𝑉𝑐 𝑡 i R 33 i a C 1 𝑡 𝑉0 = − න 𝑉 𝑑𝑡 + 𝑉0 (0) 𝑅𝐶 0 𝑖 𝜀≅0 Vi 1. a点は0Vである 2. コンデンサCの電圧 Vo 𝑅𝐶:時定数T[s] 𝑉𝑖 𝑅 ⋯ 1 𝑉0 + 𝑉𝐶 = 0 ⋯ 2 𝑄(𝑡) 1 𝑡 𝑉𝐶 (𝑡) = = න 𝑖𝑑𝑡 𝐶 𝐶 0 ⋯ 3 𝑖= コンデンサCの電荷Q(t)と初期条件V0(0) 1 𝑡 𝑉0 = − න 𝑉 𝑑𝑡 𝑅𝐶 0 𝑖 𝑉0 0 = 𝑄(0) 𝐶
4.1 積分定数付きの積分器をつくる 積分器の初期条件V0(0) の設定方法として、この2つの方法について述べます 方法1:コンデンサCにパルス給電を行う 方法2:積分器と差動増幅器を組合わせ、初期値は 差動増幅器側で出力にoffsetを与える これは私が思いついたこ とだけなので、このほか 色々あるかも知れません いずれにしても、次の条件は必要であると考えます 1. 始めに、コンデンサCに溜まっている電荷をRESETすること 2. 初期設定時間が短時間であること これは、演算結果をオシロスコープで観測することを想定すると、 繰り返して表示することが必要になるためです 34
4.2 パルス給電方法(方法1) コンデンサCを放電した後に、パルス給電を行い、初期値を設定する 100k 積分入力 sw_a 初期値設定 電 圧 charge clear sw_b on R3 C 10k 設定入力 R2 Sw切替 連動SW 10k sw_b R1 1. 初期値設定時:sw_a→off, sw_b→on 2. するとR1がCに並列に挿入→Cの電荷が放電する Cを放電 3. 十分な放電時間後に、パルス状電圧をτ時間加える →コンデンサCに充電、電荷がたまる Cを充電 4. この時発生する電圧は、充電時間τによって制御できる 5. 充電終了後に、sw_a→on, sw_b→off 、R1は積分回路から 切り離され、Cは電荷保持する 6. 同時に積分入力となるので、積分値に初期設定値が加わる 35
(1) パルス給電回路 36 コンデンサCを放電した後に、パルス給電を行い、初期値を設定する 充電状態 10V 注1 V1 V2 tauで充電時間を制御する 注1:SWのoff抵抗が20MΩとしている。これが 低いと放電により初期値電圧の低下が早まる
(2) パルス給電回路実験結果 37 初期値設定回路出力 10V C初期値 充電パルス幅を 1msとした例 C放電 初期値 C充電 • R1,R2の値は、低いほ ど短時間で充放電が可 能。但し充電のパルス 幅制御が難しい • 充電のパルス幅制御な どはMPUなどで行わせ たほうが簡単でしょう sw切替 5ms • アナログコンピュータ の制御部はMPUで行っ た方が良いでしょう 0V 放電時間:時定数 の5倍とした パルス状充電電圧 1ms -10V 1ms 10ms • Cは始め10V充電され ているとした
(2) パルス給電回路実験結果 38 初期値設定回路出力 C初期値 10V 4ms .step param表示 2ms 1.5ms C放電 1ms 1.2ms パルス幅によって変 化する初期値電圧 800us 500us 300us C充電 100us 0V 5ms sw_off抵抗を20MΩとし ている。これが低いと放 電が起こり設定電圧が時 間と共に減少する sw切替 ① 5個の積分器があり、1 つ設定に10msかかると する:5×10ms=50ms 0V 放電時間:時定数 の5倍とした パルス状充電電圧 ② 初期設定この時間かかる 入力電圧(-10V)のパルス幅を 100us~4ms 変化させた ③ オシロスコープで結果繰 返し観測することに十分 か?(MemoryScopeで ないとする) -10V .step param tau list 0 100u 300u 500u 800u 1m 1.2m 1.5m 1.7m 2m 3m 4m 1ms 10ms 20ms 初期設定はMPUと組み合わ せたほうが簡単でしょう
4.3 差動増幅器付加方法(方法2) 39 コンデンサC放電回路付き積分器と差動増幅器を組合わせる 100k 積分入力 10k 0.1u C 10k sw_a コンデンサC の電荷を放電 R2 Reset sw 積分動作前に実行する sw_b R1 1k 10k オフセット電圧 𝑉𝑜𝑓𝑓𝑠𝑒𝑡 積分器 + 差動増幅器 𝑘:差動増幅器Gain 初期条件 𝑉0 = 1 𝑡 − න 𝑉 𝑑𝑡 ∗ −𝑘 + 𝑉𝑜𝑓𝑓𝑠𝑒𝑡 𝑅𝐶 0 𝑖 𝑘 𝑡 𝑉0 = න 𝑉 𝑑𝑡 + 𝑉𝑜𝑓𝑓𝑠𝑒𝑡 𝑅𝐶 0 𝑖 𝑉0 ሿ𝑡=0 = 𝑉𝑜𝑓𝑓𝑠𝑒𝑡 となる 10k この方式は思いついたものの実用性 があるかは分かりません オフセット電圧をポテンショメータ 使う方法がふつう 差動増幅器: 𝑣 = 𝑘(𝑉+ − 𝑉− ) 1. kは増幅率で抵抗比で決まる 2. V-端子に積分器出力を接続 3. V+端子にオフセットを加える (今回k=1)
(1) 差動増幅器付加方法回路 40 積分実行前にコンデンサCを放電する。差動増幅器で初期値を設定する 充電状態 10V ① ② ③
(2) 差動増幅器付加方法実験結果 41 初期値設定回路出力 積分入力開始時点で 初期値が設定されて いる 10V 積分入力 ③ ① 初期値1Vとした 初期値から積分入力した 結果で大した意味はない 初期値 1msで放電終了 2msで充電終了 Reset 放電抵抗を1kΩとした ため短い放電時間 0V C放電 ② 入力抵抗を100kΩと したため長い充電時間 C初期値 -10V 1ms 2ms 10ms
(2) 差動増幅器付加方法実験結果 42 初期値設定回路出力 .step param表示 C初期値 ③ 10V offset電圧を0~4v 変化させた 初期値(0~4v)から始 めて積分入力した結果 で大した意味はない 初期値 1msで放電終了 2msで充電終了 積分入力 Reset ① 積分入力値は一例で 大した意味はない 0V ② C放電 C初期値 .step param vol list 0 0.5 1 1.5 2 3 4 -10V 1ms 2ms 10ms
5.積分器と乗算器(Level_3) 1. 積分器(Level_3) 2. 乗算器(Level_3) 43
5.1 積分器(level_3) 今回用いたOPamp 特長 •低入力オフセット電圧:75μV(max) •低オフセットドリフト:1.3μV/℃(max) •超安定、対時間:1.5μV / 月(max) •低ノイズ:0.6μV p-p(max) 高速typeなどいろいろOPを試してみた がLtspiceでのシミュレーション時間が •広い入力電圧範囲:±14V が掛かるのが多い •広い電源電圧範囲:±3~±18V 44
(1) 積分器(int_lv3a)回路 今回用いた積分器回路 45 CR=0.01 C1をclear(一寸強引) オフセット補正 差動増幅器 初期値を与える 電源±15volts
5.2 乗算器(level_3) 乗算素子AD633を利用する 電圧を1/10とする→ ADD633 4象限 低価格 アナログ乗算器 X1 − X 2 ∗ 𝑌1 − 𝑌2 Τ10𝑉 + 𝑍 ADIのAD633は、8-PDIPまたは8-SOICパッケージの4象限アナログ乗算器です。このデバイスは、レー ザー較正されているため、フルスケールの2%の保証された精度で信頼性と安定性を実現します。10MΩの 高い入力抵抗により、信号源のローディングはごくわずかです。AD633は、変調/復調や電圧コントローラ の増幅など、高い信頼性と安定した性能を必要とするアプリケーションに最適です。(ANALOG DEVICES) 46
(1) 乗算器(level_3)回路 47 Ltspiceによる AD633回路 動作検証 w出力は1/10の ため10倍した Y X W ±の4象限 でアナログ 乗算可能
(2) 乗算器(level_3)実験結果 48 ADD633は出力を1/10とするため、差動増幅器をつけ10倍する Mul_out W X Y
(3) 乗算器(level_3)飽和問題 49 入力が大きくなるとADD633出力は飽和し難いが、10倍出力は飽和し易い まああたりまえだが・・ これは電源電圧が±15voltsのため、出力はその範囲内となるため 飽和 Mul_out W 飽和 X Y
6.積分器と乗算器(Level_3)実行結果 50
ばね‐質量‐ダンパー系(RC=0.01) 51 電気回路においてC容量を大きくすることは困難なため、時定数(RC)は1以下になることが 多い。これは物理モデルを電気回路でシミュレーションした場合には、時間変換して解釈す る必要がある。この例ではRC=0.01であり、積分器ゲインは100となる。よって時間軸を 100倍して解釈する(既述:時間スケール変換の方法2を使う ) R=100kΩ,C=0.1uF RC=0.01 電源±15volts 1.2秒
ばね‐質量‐ダンパー系(RC=0.01) 52 積分器ゲインは100、よって時間軸を100倍して解釈する インパルス荷重を30ms(3秒)後に加えたときの応答 PULSE(0 1 30m 10n 10n 10m 50) 初期電位0V、発生電圧1VでDelay 30ms、パルス幅は10ms、 立上り下がりは10ns、繰り返しは50秒毎 インパルス荷重 電源±15volts 1.0秒
van der pol方程式 53 OPAMP(OP07 )と乗算器(ADD633)を用いたシミュレーション回路 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 𝑑𝑡 2 + 𝜇 𝑥 2 − 1 𝑑𝑡 + 𝑥(𝑡) =0 𝜇 = 1.5, 𝑖𝑐: 𝑥ሶ 0 = 𝑥 0 ∗ 0.5, 𝑥 0 = 𝑥 0 電源±15volts 青:コメント .step param命令
van der pol方程式 54 位相面軌道(Phase Plane Trajectory) Limit cycle 𝑥 = 3.0, 𝑥ሶ = 1.5 𝑥 = 1.5, 𝑥ሶ = 0.75 𝑥 = 1.0, 𝑥ሶ = 0.5 𝑥 = 0.5, 𝑥ሶ = 0.25 速度 𝑥(𝑡) ሶ 変位 𝑥(𝑡)
van der pol方程式 55 OPAMP(OP07 )と乗算器(ADD633)を用いたシミュレーション回路 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 𝑑𝑡 2 + 𝜇 𝑥 2 − 1 𝑑𝑡 + 𝑥(𝑡) =0 𝜇 = 0, 0.5, ⋯ 7, 𝑖𝑐: 𝑥ሶ 0 = 0, 𝑥 0 = 0.5 0.5V offset 電源±15volts 5us以降 .step param命令
van der pol方程式 56 位相面軌道(Phase Plane Trajectory) 𝜇=0 速度 𝑥 0 = 0.5 𝜇=7 𝑥(𝑡) ሶ 変位 𝑥(𝑡)
7.計算精度に影響を与える主な要素1/3 57 CR時定数を用いたアナログコンピュータの計算精度は、使用する回路部品の 精度、温度安定性、信号ノイズの影響など、多くの要因に依存します。以下に、 計算精度に影響を与える主な要素とそれぞれの対策について説明します。 by chatGPT 無料版 1. 抵抗とコンデンサの精度 抵抗の精度 抵抗の値は、製造公差によって異なります。一般的な抵抗の公差は1%、5%、10%などです。高精 度な計算が求められる場合、1%以下の高精度抵抗を使用することが望ましいです。 •対策: • 高精度抵抗を選定する(例えば、0.1%以下の公差を持つ抵抗)。 • 温度係数が小さい抵抗を使用する。温度変化による抵抗値の変動を最小限に抑えることが できます。 コンデンサの精度 コンデンサの値も製造公差によって異なります。一般的なコンデンサの公差は5%、10%、20%な どです。精度の高い積分回路には、5%以下の公差を持つコンデンサが適しています。 •対策: • 高精度コンデンサを選定する(例えば、2%以下の公差を持つコンデンサ)。 • 温度特性が良好なコンデンサを使用する。温度変化に対して容量が安定しているタイプの コンデンサを選ぶことが重要です。
7.計算精度に影響を与える主な要素2/3 2. 温度安定性 抵抗やコンデンサは温度によって値が変化するため、温度安定性が計算精度に大きく影響します。温 度依存性を最小限に抑えるためには、温度係数の低い部品を使用することが重要です。 •対策: • 温度係数が低い抵抗(例えば、金属皮膜抵抗)やコンデンサ(例えば、ポリプロピレンコ ンデンサ)を使用する。 • 回路全体を一定温度に保つために温調機器を使用する。 3. ノイズと外乱 外部からの電気的なノイズや外乱も計算精度に影響を与えます。ノイズは、特に高周波成分が積分回 路に悪影響を及ぼす可能性があります。 •対策: • シールドやフィルタを使用して外部ノイズを遮断する。 • グランド配線を適切に設計し、ノイズの影響を最小限に抑える。 • 高周波ノイズフィルタ(例えば、フェライトビーズ)を使用してノイズを除去する。 4. 回路設計 回路設計自体も計算精度に影響を与えます。適切な設計により、精度を高めることができます。 •対策: • 適切なバイパスコンデンサを配置し、電源ラインの安定性を確保する。 • 配線のインピーダンスを最小限にするために、配線長を短く保つ。 58
7.計算精度に影響を与える主な要素3/3 59 5. 部品の経年変化 長期間使用することで、抵抗やコンデンサの値が経年変化することがあります。これも 計算精度に影響を与える要因の一つです。 •対策: • 定期的に回路のチェックを行い、劣化した部品を交換する。 • 高信頼性の部品を使用し、経年変化を最小限に抑える。 まとめ アナログコンピュータの積分回路における計算精度を向上させるためには、次のポイン トが重要です。 1. 高精度の抵抗とコンデンサを使用する。 2. 温度変化による影響を最小限に抑えるための対策を講じる。 3. 外部ノイズや外乱を遮断し、回路設計を最適化する。 4. 定期的なメンテナンスを行い、部品の経年変化に対応する。 これらの対策を講じることで、アナログコンピュータの計算精度を高めることがで きます by chatGPT 無料版
8.おわりに • この7月は暑くて仕事が進みませんでしたが今回は、アナログコンピュータを実現 するには避けて通れない問題について、すこし踏み込んでみました。例えばス ケーリング(強度と時間)は、アナログコンピュータのダイナミックレンジが狭い 欠点への対策です。また初期値を付与する回路も重要ですね。 • そして長年もやもやしていた問題、積分器の時定数を取り上げました。これで胸 のつかえが少し取れました。 • また計算精度に影響を与える主な要素では、ChatGPTの回答をそのまま載せまし た。非常に常識的な回答ですが大変良くまとまっています。感心致しました • 本テーマから外れますが、現在情報関係の学科が人気だそうです。但し近未来で は、要件定義、システームアーキテクトの設計、コードの作成などの実装などは 情報処理技術と相性が良いAI技術で出来てしまいそうですね。 • 「不易流行」。いくら世の中が変わっても変わらないもの変えてはいけないもの と、世の中の変化とともに変わっていくものを、しっかりと認識していくことが 重要ですね。 60