メインコンテンツに移動

Spice

あなたの専門が流体力学でも,実験しようとするとセンサーの面倒を見なければならず,すると電気回路が必要です.でも専門ではないので,電気回路を作っても動くやら?そんな時にはSPICEですね.LinearTechも吸収し,いまでは世界王者AnalogDevicesからダウンロード.うん?Texas Instrument のほうが2倍でかいのか・・・

そりゃ世界に冠たるNational Instrument (今ではTexasの一部門)の...なんだったっけ?MultiSimだ!買ってたけどなあ.あれはちょいと大げさすぎる.PCB基盤の発注までやらされそうな勢いだし

要は微分方程式を解くだけのソフトである...でも式立てるのも面倒だし,配線図書いたらRUNで電圧やら電流がわかった方が便利〜

無料だしな.Windows版と違って暴走しないみたいだし!


全ての始まり

ポテンシャルの根源であり全ての始まりである, GNDを定義しよう.まずは【New Schematic】で

GND- GND
F1
たくさん置くモードになるから【ESC】で終了.
plowmen
でんちも,ぽっちー
power
おまえだ!
wire
で, 【Wire】でつなぐ.いや,よほど勘が悪くない限り,できるだろう.
パーツを移動させたり回転させるには, まずは【Edit】【Move】
select
パーツを囲んで

まあ動かせるんだが

  • 【CTRL+R】回転

 

  • 抵抗器は【res】コンデンサー【cap】インダクタ【ind】
  • 電圧にせよ抵抗器にせよ,右クリックでスペックを定義する.
    • 素子類は,【いや普通に売ってあるやつ】から選ぶ.売ってない電子素子の使用を希望する場合,入力しても良い.

こんなのが書けました. わーい

f1.1

最も大切な注意:

  • LTSpiceは日本語パスを理解しません.パス名に日本語が含まれていると暴走します.
    • 【書類】とか別名の場合でも, 本名が【Document】であるとか英文ならOK

走らせよう

実行するには,実行タイプが必要なのです.

  • 過渡応答   時間の経過で何が起こるか調べる.初期値は適当に定められる.
  • 周波数解析   フィルター機能とか伝達関数とかそこいらへん
  • ステップ解析  突入電流で素子破壊とか,やりますよねー
  • ノイズ解析   ???よくしらん

解析するには, 

tran

【SPICE directive】を,そこらへんに,ぽこっと置いておきます.右クリックで中身を編集して解析を定義します.

過渡応答解析

ここでは過渡応答 .tran を 3msec 実行する.

tran

走らせてみると,

tran-run

この黒いやつが出力である.何も選択してねえから真っ黒だ.そこで選択する.

tran-F1

面白いからI(R1)を見てみると

tran-F2

おう.バリバリ流れてますねえ.で,ここで回路図にテスターピンが現れるので,そこの電圧も表示できるのだ.

tran-filter

緑の線がR1の手前(電源)の電圧-5 で乱れまくり.赤色がフィルター後 C1の+のとこ-4.5 であって,フィルター効いてるけど電圧落ちちゃった感が出てますよね.でも,インダクタンス邪魔じゃねえかこれ?まあええわ.

周波数応答解析

周波数応答を解析してみよう.入力電圧の【.AC】欄に1と書くのだ!

AC1

で,命令は .AC タイプ 点数 解析開始周波数 解析終了周波数

AC-SET 普通は .ac dec 100 1K 1M と書けば良い

  • dec   周波数10倍を1単位とする   oct 1オクターブ(周波数2倍)を1単位とする
  • 点数    1単位にどんだけ解析点を置くか,指定する

んでRUN! するとこげな感じ:

TRY1

www 二段構えになっちまってて,笑える.Lを取り除いちまえ.

TRY2

あらら・・・RCだけだと, 高周波の減衰率が大したことない,ってことがわかりますよね.んじゃ,R取ってしまえ.

TRY3

Lは高周波でバカに効くが,容量のせいで低周波に弱そう.DC-DCスイッチング電源の周波数って100kHzとかだから, それを綺麗にするにはこれで良い.であるが,AC-DCスイッチング電源だと60Hzも乗ってくるだろうから,イマイチだなー.

だいたい10Ωで5Vだと,突入電流が0.5Aになる・・・がLがいるから小さいかも.(←大学で習っただろう!なんてツッコミは無しだ.面倒だろうがあぁぁぁ.だいたい,目標は微分方程式ではちょいと無理なものだしな)

突入応答解析

突入電流の解析は, 過渡応答解析のオプションで実現できます. すにゃわち, .tran コマンドにstartupをつけると,時刻0に全ての電源がOFFからONになります.

sartup

RUNすると

no-R

おお・・・抵抗Rがないと, 1.6Aも流れてしまいます.これでは電源が壊れてしまう場合がありますね.

startup2

10Ω抵抗があると, 突入電流は0.4Aに減少しました.でもねえ・・・100mA利用すると, 定常時には1Vの電圧低下が起こるんだよね・・・だから5V電源嫌いなんだよ,作りにくいし.でもセンサー電源は5Vが多いのよね.

パラメータ解析

ほい

モンテカルロ解析

ほい

サブ回路

パーツの一部をサブ回路として,別の回路から呼び出します.

サブ回路の作成

んまあ,普通に回路(.ASCファイル)を作ります.注意するのは,外部にアクセスする端子に名前をつけとくこと,

subasc

そりゃ,名前がなかったら,アクセスしようがないですからねぇ・・・

モデルファイルの作成

回路だけではダメです.ほれ,あんたは画像を使って編集しているでしょ?画像作らないと.【File】【New Symbols】で作成します.ま〜あ,適当に暴れていればできるでしょう:

say

これは【Draw】【Rectangle】したものに【Draft】【Netname】したものです.重要な点は,

  • ASCで設定した入出力名を準備すること

です.そしてもう一つの重要なポイント:

  • ASCファイルと同じフォルダーにASYファイルを保存すること!
  • 現行バージョンではバグがあるので,保存後に修正する必要がある

です.2番目の件ですが,保存したASYファイルを開くと,こんな風になっています:

Version 0
SymbolType BLOCK
RECTANGLE Normal -33 -32 127 32 2
PIN -32 -16 LEFT 8
PINATTR PinName Vin
...

問題は最初の「Version 0」です.このままだと,この回路を開いた途端にLTSpiceがクラッシュします.エディターで

Version 4  ←  0 を4に変更!
SymbolType BLOCK
RECTANGLE Normal -33 -32 127 32 2
PIN -32 -16 LEFT 8
PINATTR PinName Vin
...

これで準備完了です.

メイン回路

サブ回路をメイン回路で利用するには,

  • メイン回路のASC
  • サブ回路のASC
  • サブ回路のASY

が全て, 日本語を含まないパスに存在する必要があります.さて, メイン回路で【Draft】【Components】で,そのパスを指定して回路を選びます:

main-sub

すると現れるわけね:

main-sub

もちろん普通にシミュレーションできます.突入電流と周波数特性:

sub-re

ノイズ解析

ノイズ源

ノイズの対策を考えるには,ノイズ源が必要である.これは【Draft】【Component】【bv】である:

bc

で,関数は  

  • V=RAND(time)  timeが1進むと値が0-1の範囲で変わる
  • V=RANDOM(time) timeが1進むまでに値が線形に0-1の範囲で変化する
  • V=WHITE(time)  timeが1進むと値が-0.5-0.5の範囲で変化する

random他にも, テキストファイルからのデータ取り込み,WAVEファイルからの音源取り込みも可能です.

過渡応答:フーリエ解析

ノイズを調べるには, ノイズに含まれる周波数成分が必要です.FFTを行いましょう. これは. 過渡応答解析結果で【View】【FFT】で行うことができます:

VIEW

conf

すると, 周波数分布が得られます

FFT

解析の時間ステップが有限なので, あまり高周波成分がないです.