Lappの覚え書き
過去ログ24
2022/12/13 11:54
▼Lapp12月12日言い忘れたが,昨日は12/12。高校のころから『「オイッチニ,オイッチニ」の日』として自らに
「努力」とか「元気」を思い起こす日と決めていた。
歳を取るにしたがって,だんだん,自分にいたわりを込めた「頑張ってね」という日になって来たな。
実は,この12/12は,日本蓄電池工業会が1985に「バッテリーの日」に制定したようだ。
(正確には「カーバッテリーの日」という名称で制定し,1991年に「バッテリーの日」と名称を変更した。)
この「バッテリーの日」の「由来」が『実に,ふざけている』。
「野球のバッテリーの守備位置が数字で1,2とあらわされることから。」なんだそうだ。
単なる語呂合わせで,電池と関係ねえじゃんか!と,私は怒っている。
▼Tessho以下のサイトを見つけた。これを先に読めば良かった。(だが,独力で辿り着いたことは,エライ!>自分)
https://www.denshi.club/ltspice/2019/11/ltspice-5adalm200090.html「初心者のためのLTspice入門 フィルタ回路の再確認(6)入出力波形をADALM2000で観測し90°の位相を確認する」
==============
●入力信号の開始点の経過時間の測定
経過時間の測定は .measコマンドで行います。CROSS=7を指定して0Vを7回クロスした時点で入力電圧を測定します。このコマンドはTRANを指定しているので、過渡解析のときのみ測定されます。revinは測定した経過時間を格納する変数となります。格納する経過時間はtimeで得られます。WHEN以下に、測定するタイミングが指定されています。入力信号電圧V(in)が0Vを7回交差した時点を指定しています。
.meas TRAN revin FIND time WHEN V(in)=0 CROSS=7
同様に、次の .measコマンドで経過時間を測定した入力電圧に対応する、出力電圧V(out)が0Vとクロスしたときの経過時間を測定します。経過時間はrevoutに格納されます。
.meas TRAN revout FIND time WHEN V(out)=0 CROSS=8
●周期の測定
今回、位相は次の方法で測定します。
(入出力波形のずれの時間/波形の周期)× 360°
周期の計算は、次の .measコマンドで行います。revinを測定したのは7回目のクロスですから、180°の1回目と360°の2回目を追加した9回目の0Vのクロス・ポイントの経過時間との差から周期を求めます。求めた結果は変数prdに格納されます。
.meas TRAN prd FIND time-revin WHEN V(in)=0 CROSS=9
周期は、入力信号として設定された正弦波の周波数からも求められます。
周期 = 1/周波数 = 1/15000 = 0.0666ms
●位相の測定
位相の測定は次のコマンドで行いました。
.meas TRAN ph FIND 360*A/prd WHEN V(in)=0 CROSS=9
==========
じっくり読んで復習しよう(>自分)。
▼TesshoLTspice・周期とパルス幅PUT pacemakerの解析をLTspiceでやっているんだが,ペーシング出力の周期やパルス幅
の自動計測(LTspice上で)はできなくて,パルス間の時間やパルス幅をグラフから測って
いたんだが,これは手間が大変で,なんとか自動化できないか悩んでいた。
今日,やっと,なんとか方法が見つかったので「覚え書き」として書いておく。
(たぶん,LTspiceに興味のない方には,まったく「訳が分かんない!」世界だがユルセ!
多少やってる人には「参考」になるかもしれない。)
LTspiceの命令の1つに「.meas(measureの意味)」と言うのがあって,波形のグラフから
平均値,実効値,ピーク値などを「自動計測」してくれるんだが,パルスの周期とか幅とか
を自動計測してくれる直接命令がない(ようだ・・・細部まで調べていないので分からないが)。
この命令の補助命令に,FINDというのがあった,ある条件にあった値を「見つける」という
命令がある。また,条件としてWHENというのがあって,電圧などを指定できるようだ。
そこで,パルス列を表示させ
.meas ono1 FIND time WHEN V(out)=-4
とすると,outという場所の電圧V(out)が−4Vになった時の時間timeをFIND(探す)
した結果を,ono1という名前でしまってくれ!という命令になる。
ここまでは,すんなり出来たんだが,これだと,一番最初に出てきたtimeしか見つけてくれない。
このあとにcross=2,cross=3などを付けると,その部分をクロスする時を指定したことに
なるので,corss=2でパルス幅,cross=3で周期を算出することができる。
crossなしで,1番初めの-4Vを超えた時間がono1に入り,
corss=2で,2番目の点の時間がono2に入り,
cross=3で,3番目の点の時間がono3に入る。
これより,パルス幅=(ono2-ono1),周期=(ono3-ono1)から求まるハズである。
図1が一例で,グラフから求めた周期Tと自動計算から得られた周期がほゞ一致するのがわかり,
図2の例では,グラフからも求めたパルス幅PWと自動計算から得られた周期が一致するのが分かる。
「うれしくなった!」ので,忘れないうちに,ここに書き込んでおくことにした。
(なお,きっと,もっとスマートな方法があるんだと思うが,今の私の実力では,ここまで
の発見が限界。良い方法があったら教えてください。)
特性が簡単にとれる!感激!
下の新PUT Pacemaker(Final) で,PUTのゲート電圧Vgをパラメータにして図1の設定
でLTspiceを動かした。計測点は図2のような,第1パルスが-4Vをクロスする点を下向きが
time1,上向きがtime2になり,第2パルスが-4Vをクロスする点がtime3になる。
(パルス幅=time1-time1,周期=time3-time1)
図3は結果の表示だが,挿入したツェナーダイオードのツェナー電圧{V}をパラメータに
して表示している。波形に重なっているのはError Logの表示で,Vg=Vcc-Vgと,周期T(s)(=time3-time1)と
パルス幅PW(s)(=time2-time1)を一覧表にしたのが図4左である。
これをグラフ化したのが図4右で,VgによるT(s)およびPW(s)の変化が一目でわかる。
こんなのが,いとも簡単に作れるので「感激」している。
(こういうのが「正しい」かどうかは分かないが,結果が今までの方法と同じということで
「正しいこと」にした。数学脳ではなく「なんとなく経験脳」なんだな。)
.OP point found by inspection.
.step v=1
.step v=2
.step v=3
.step v=4
.step v=5
Measurement: res1
steptimeat
10.2983340.298334
20.8146 0.8146
30.2605570.260557
40.02645530.0264553
50.2895810.289581
Measurement: res2
steptimeat
10.2992610.299261
20.8155490.815549
30.2615410.261541
40.02748850.0274885
50.2907060.290706
Measurement: res4
stepres2-res1
10.00092743
20.000949907
30.000983121
40.00103317
50.00112448
Measurement: res3
steptimeat
11.61263 1.61263
21.63945 1.63945
30.8405940.840594
40.4419970.441997
50.5812690.581269
Measurement: res5
stepres3-res1
11.3143
20.824848
30.580036
40.415542
50.291688
Up 12/5 11:17