>100 Views
July 07, 25
スライド概要
回路モジュール化とサブサーキットについての補足説明です。また、Programをダウンロードできるようにしました
積分器の時定数は時間軸の伸縮のみに影響することを例示しました
1.階層化について
積分器のモジュール化
パラメータの受け渡し
回路シンボルとその編集
積分器モジュールを使ったアナログコンピュータ
2.サブサーキット(subcircuit)
乗算素子AD633を使いたい
ad633のダウンロードと設定
乗算器回路とテスト
非線形微分方程式で使ってみました
3.時定数による変化
積分器のCを可変とするモジュールの作成
ばね‐質量‐ダンパー系
Van_der_pol方程式
Lorenz方程式
Hindmarsh–Rose neuron model
これまでに主に,ロボティクス・メカトロニクス研究,特にロボットハンドと触覚センシングの研究を行ってきました。現在は、機械系の学部生向けのメカトロニクス講義資料、そしてロボティクス研究者向けの触覚技術のサーベイ資料の作成などをしております。最近自作センサの解説を動画で始めました。https://researchmap.jp/read0072509 電気通信大学 名誉教授
2025.7.7 Analog Computer –part3 ---補足の説明 --- ⚫ 回路モジュール化とサブサーキットについての補足説明です。また、 Programをダウンロードできるようにしました ⚫ 積分器の時定数は時間軸の伸縮のみに影響することを例示しました Programは下記よりダウンロードできます。 https://github.com/m4881shimojo/LTspice 下 条 誠 電気通信大学名誉教授 https://researchmap.jp/read0072509/ The University of Electro-Communications https://www.docswell.com/user/m_shimojo Department of Mechanical Engineering and Intelligent System
はじめに 1. 今回は、すでに公開した「 Analog Computer -part1 」について補 足説明を行います。 2. 補足説明は、part-1で説明不足であった、階層シートとサブサー キットについてです。 3. また、Programを一部DLできるようにしました。これによりLTspice を実際に動作させることで、より理解しやすいと思います。 4. なお、LTspiceについては、間違いや誤解があると思います。その点 ご注意ください。 Programは下記よりダウンロードできます。 https://github.com/m4881shimojo/LTspice 2
はじめに この資料は、 Analog Computer -part1 https://www.docswell.com/s/m_shimojo/5P9EN1-2024-06-17-094921 とあわせてご覧ください。 3
内 容 1.階層化について ✓ 積分器のモジュール化 ✓ パラメータの受け渡し ✓ 回路シンボルとその編集 ✓ 積分器モジュールを使ったアナログコンピュータ 2.サブサーキット(subcircuit) ✓ 乗算素子AD633を使いたい ✓ ad633のダウンロードと設定 ✓ 乗算器回路とテスト ✓ 非線形微分方程式で使ってみました 3.時定数による変化 ✓ 積分器のCを可変とするモジュールの作成 ✓ ばね‐質量‐ダンパー系 ✓ Van_der_pol方程式 ✓ Lorenz方程式 ✓ Hindmarsh–Rose neuron model 4
1.階層化について ⚫ LTspiceには「階層」があり、回路図を複数の階層構造(レベル)で 設計・管理できます。 ⚫ これにより、大規模・複雑な回路を小さなブロック(サブサーキッ ト)に分割して再利用や整理が可能になります。 例えば、参考資料を下記に示します https://www.youtube.com/watch?v=wvfyT-OCaCM https://spiceman.jp/ltspice-hierarchical-circuit-block/ 5
積分器のモジュール化 これは積分器回路モジュール を表しています 初期値 6 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 + 𝑏 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 𝑚 = 1, 𝑏 = 1Τ5, 𝑘 = 1Τ2 , 𝑖𝑐: 𝑣0 = 1, 𝑥 0 = 2 積分器モジュール この積分器モジュールの構造は次頁以降に説明します mass-spring_lv2_real.asc
積分器のモジュール化 モジュールは、 積分器回路と回路シンボルから構成されます Int_lv2.asc 前頁の積分器モジュールは、積分器回路 と回路シンボルから作ります 積分器回路 ←自分で作る Int_lv2.asy 積分器回路のモジュール化 自動でできるが 回路のシンボル 7 ←編集可能 例えば、参考ビデオを下記に示します https://www.youtube.com/watch?v=wvfyT-OCaCM
積分器回路モジュール 8 これが積分器回路です。この回路をモジュール化します 初期値 具体的手順は参考文献を見てください(難しくありません) INT_lv2 .asc
パラメータの受け渡し 9 モジュール化した積分器に初期値を受け渡す方法です。 Paramsの紐づけ 右クリック Int_lv2.asc 積分器の初期値(param)の 受け渡し方法 右図でvol=2とすると、その値が 積分器モジュールへ渡される mass-spring_lv2_real.asc
回路シンボルとその編集 右クリック 10 回路シンボルについての説明です ほぼ自動で作成されます このmodeで端子を移動 Int_lv2.asy このmodeで掴み図形を 拡大縮小 無記入状態 編集可能 INT_lv2 .asy
積分器モジュールと回路シンボル 11 Main回路から右クリックで呼び出せます 呼び出し方法例 Int_lv2.asy Open Symbol Int_lv2.asc Open Schematic 右クリック 実際の回路では回路 BLOCKを右クリックす ることで表示できます mass-spring_lv2_real.asc
積分器モジュールを使ったアナログコンピュータ それでは積分器モジュールを使って構成した アナログコンピュータの例を示します 12
ばね‐質量‐ダンパー系 𝑑 2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 +𝑏 + 𝑘𝑥(𝑡) = 𝑓(𝑡) 𝑑𝑡 2 𝑑𝑡 13 𝑚 = 1, 𝑏 = 1Τ5, 𝑘 = 1Τ2 , 𝑖𝑐: 𝑣0 = 1, 𝑥 0 = 3 出力の時間変化 f(t) 位相面軌道表現 今回行っていない mass-spring_lv2_real.asc
2.サブサーキット(subcircuit) ⚫ サブサーキット(subcircuit)とは、回路の一部を部品のよ うにまとめて再利用可能にしたものです。 ⚫ 複数の素子で構成された回路ブロックに名前と端子を定義し、 1つの部品のように扱うことができます。 .SUBCKT 名前 端子1 端子2 端子3 ... (中身:回路素子の定義) .ENDS 14
乗算素子AD633を使いたい まずAD633のLTspice用の回路(subckt)を製造元 からダウンロードする必要があります 電圧を1/10とする→ 乗算素子AD633を利用する ADD633 4象限 低価格 アナログ乗算器 X1 − X 2 ∗ 𝑌1 − 𝑌2 Τ10 + 𝑍 ADIのAD633は、8-PDIPまたは8-SOICパッケージの4象限アナログ乗算器です。このデバイスは、レー ザー較正されているため、フルスケールの2%の保証された精度で信頼性と安定性を実現します。10MΩの 高い入力抵抗により、信号源のローディングはごくわずかです。AD633は、変調/復調や電圧コントローラ の増幅など、高い信頼性と安定した性能を必要とするアプリケーションに最適です。(ANALOG DEVICES) 15
Subckt(ad633)のダウンロードから (1)ad633のLTspiceライブラリsubcktファイルをDLする analogDivice社よりDL “ad633.cir”をDLで入手→利用するフォルダに格納する .libなどの場合もある (2)LTspiceでad633.cirを開く(作成中の回路図(.asc)と同じフォルダにあること) .SUBCKTにカーソル を置き、右クリック 右クリック .SUBCKT ① CREATE SYMBOLを選ぶ ② 次のようのAD633.asyができる 番号でなくX1,X2,Y1,.. となっている場合が多い 自動的にできる 16
ad633の設定 17 (3)番号を回路図の記号に直す 右クリック 大きさ形、文字位置は 変更できる ① 1番□を右クリックする とウィンドウが現れる ② “X1”と入力 (4)Attributeを直す 始めから名前が付いていた場合、 ピン配列を好みで再配置するだ けでよい AttributeでEditorを選ぶ 右クリック Xとする ファイル名 • ”.SAUBCKT”の回路を記述してあるファイル名 を入れる。→ad633.cir • ただし、Defaultだと絶対番地となる C:¥Users¥shiXX¥Desktop¥LTSpiceXX¥anaCon_lv2¥ad633.cir • これだとフォルダ構造などを変えるとad633 かみつかりませんとERRORがでる • このため、相対番地とした→ ”ad633.cir” このためad633.cirは同じフォルダに入れておくこと!
乗算器回路 例)それでは使ってみましょう 18 Mul_out = 𝑋𝑖𝑛 ∗ 𝑌𝑖𝑛 − 𝑣𝑜𝑙 mul_lv2.asc mul_lv2.asc
乗算器のテスト 19 これは乗算器モジュールに正弦波入力を入力したときの出力結果です Mul_out = 𝑋𝑖𝑛 ∗ 𝑌𝑖𝑛 + 3 Vol=3とした Xin Yin Mul_lv2_test.asc
非線形微分方程式で使ってみました 作成した乗算器をVan_der_pol方程式の シミュレーションで使ってみました 20
Van_der_pol方程式 𝑑2 𝑥(𝑡) 𝑑𝑥(𝑡) 𝑚 𝑑𝑡 2 + 𝜇 𝑥 2 − 1 𝑑𝑡 + 𝑥(𝑡) =0 21 𝜇 = 1.5, 𝑖𝑐: 𝑥ሶ 0 = 𝑥 0 ∗ 0.5, 𝑥 0 = 𝑥 0 .step param x0 list 0,0.5….. 𝑥2 − 1 van_der_pol-lv2.asc
Van_der_pol方程式 4.0, 2.0 Limit cycle 3.0, 1.5 2.0, 1.0 1.0, 0.5 0.5, 0.25 速度 22 0, 0 𝑑𝑥(𝑡) 𝑑𝑡 変位 𝑥(𝑡)
3.時定数による変化 積分回路の時定数(τ=CR)と物理モデルの関係については既に説明注) しました。この関係を知っていれば、 “時定数は任意でかまいません“ 注) Analog Computer –part2 https://www.docswell.com/s/m_shimojo/K7RY2V-2024-07-31-095902 以下の例は時間軸の伸縮のみです。 これ以外は変化しません 23
積分器のCを可変とするモジュールの作成 時定数を変更可能にしたモジュールを作りました その積分器モジュール Cをパラメータとした積分器 ここを変更すればよい INT_lv2_u .asc C容量 Param設定(初めだけでよい) 24
ばね‐質量‐ダンパー系(RC=1) 25 𝑅𝐶 = 1.0 [𝑠] C=10uF
時定数による違い 𝑅𝐶 = 1.0 [𝑠] 26 𝑅𝐶 = 0.5 [𝑠]
Van_der_pol方程式 27
時定数による違い 𝑅𝐶 = 1.0 [𝑠] 28 𝑅𝐶 = 0.5 [𝑠]
Lorenz方程式 29 https://ja.wikipedia.org/wiki/ローレンツ方程式
時定数による違い 𝑅𝐶 = 1.0 [𝑠] 30 𝑅𝐶 = 0.5 [𝑠]
Hindmarsh–Rose neuron model hindmarsh_neuron_u .asc 31
時定数による違い 𝑅𝐶 = 1.0 [𝑠] 32 𝑅𝐶 = 0.5 [𝑠] z(t) 膜電位x(t) y(t) z(t)は適応電流に相当し、スパイクのたびに増加し、発火率の低下につながる https://en.wikipedia.org/wiki/Hindmarsh–Rose_model
おわりに • 退職後に購入したデスクトップPCのレスポンスが遅く感じられるようになった ため、新たにPCを購入しました。CPUはCORE ULTRA 5、Memory16GB、 1TB-SSDの今では普通の構成です。 • それに伴いソフトウェア環境の再構築を行いました。そして、LTspiceを動作さ せたところ、以前作成した一部のプログラムが動作しません。原因は、サブサー キットの絶対アドレス設定にありました。このため今回、これらを相対アドレス 設定に変更いたしました。そして、説明不足と指摘されたモジュール構造につい ての説明を行うことにしました。 • あわせて、一部LTspiceプログラムの公開を行うことにいたしました。いまだお かしな箇所もありますが参考になれば幸いです。 Programは下記よりダウンロードできます。 https://github.com/m4881shimojo/LTspice 33
34
35