SPICEの小瓶(40) LTspiceのテキスト形式入出力、コマケー話なんだが

Joseph Halfmoon

LTspiceの結果を他のソフトに「輸出」して別角度からそっと味わいたい、とか他のソフトの結果や測定結果を「輸入」したいとか考えておる忘却力の老人です。以前ちょっとやってみた朧げな記憶があり。しかしながら具体手順、完全に忘れてます。そこで今回こそは調べたことを書き残して置こうと。。。また直ぐ忘れるのだけれども。

※「SPICEの小瓶」投稿順インデックスはこちら

※ Analog Devices, Inc. LTspice を使用させていただいて動作確認しております。今回使用のバージョンは以下です。

XVII(x64) (17.0.37.0)

だいたいLTspiceのテキスト出力、妙に間延びしてないか?

LTspiceはWindows 11機上での運用です。当方Windows上のエディタのデフォルトは

UTF-8、行末LF

と設定。「日本語」WindowsのデフォルトであるShift-JIS、行末CRLFであるとLinuxとの行き来が面倒なのでそうしてます。それに、このごろのWindowsのエディタは偉いので、Shift-JISなんだかUTF-8なんだかテキトーによきに計らってくれるので、文字コードは意識することもなし。

さて、そのような設定のエディタでLTspiceの .LOG(ログ・ファイル)とか、.PLT(プロット設定ファイル)を開いてみると、妙に間延びしてないかい?こんな感じっす。Editor

 

エディタが「お手盛りで自動設定」した設定を見てみると SJISで行末LFみたい。しかし、読みにくいです。ソフトで処理するのも不便そー。しかし気づきましたぞ。エンコードをUTF-16に変更してみたら、ほれこのように。EditorUTF16

ぐっと「締まり」ました。良かった。でもUTF-16、あまり使っているのを見ないな。アナデバ様ではそちらが標準なのか?

RAWファイル、UTF-16とバイナリの混合?

さてLTspiceでシミュレーションする度に .RAW なるフォーマットのファイルが生成され、そこにシミュレーションの結果が収められていることは「薄々」知っていましたぞ。さて、この度、改めて .RAWファイルの中身を覗いてみたところ以下のようでした。

    • 「ヘッダ」部分は上記のUTF-16で「人間可読」な形式
    • データ本体は、「Binary:」と書かれた行以降にバイナリデータで格納

どうもデータ圧縮などもかけられるみたいなので、このRAWファイルからデータを抽出するといったことはさっさと諦めました。どうする?

プロットウインドウからTXTファイルに出力可能

シミュレーション結果を .WAV 形式のバイナリファイルに落とせることは以前にやった気がしてます。でも.WAV形式だとサンプリング周波数は選択肢が狭いし、扱えるソフトも限られるしということで、今回はTXTファイルへの手動出力を行ってみました。TXTファイルへの入出力方法については御本家アナデバ様の以下のページに解説があります。

LTspice IV: データのインポートとエクスポート

シミュレーション結果のTXT出力はプロット上右クリックから以下のような感じっす。ExportDataAsText

上のメニューから走らせると以下のようなウインドウが現れるのでデータをセーブするノードをクリックしてファイルに書き込めます。プロット可能なノードであればプロットに見えていないノードもセーブできますな。SelectTracestoExport

上記でセーブしたファイルの冒頭部分が以下に。TextOutput

TAB区切りのテキストファイルで、冒頭1行目にカラムの名前がリストされている形式です。多くのソフトウエアでこの形式のままで読めるのでないかしら。なお、このファイルはUTF-16も何もありません。ベタなASCIIテキストファイルに見えました。

TXTファイルからLTspiceへの読み込み

LTspiceから書き出したファイルであれば、そのままLTspiceで読み込めるのでないかい?ということでやってみたところがダメでした。こんな感じ。PWLfileError

Voltageソースの中に、PWL fileから波形の定義値を読み込むオプションがあるので、それを使ってみたのだけれど上記のようなエラーに遭遇。そのエラーの時のファイルが以下です。ErrorFile

青く反転している冒頭行がマズイのではないか、ということで1行削除。シミュレーションしてみたらちゃんと読み込んでシミュレーション成功。

自分で出力したものを、そのまま読み込めないのね。。。残念。

SPICEの小瓶(39) waveGen.py スクリプトの改定。バグFIX+PWM信号対応 へ戻る