Lappの覚え書き
過去ログ23
2022/12/5 11:14
▼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
▼Tessho動画youtubeをコピーする
https://i.imgur.com/vrl0XaF.jpghttps://i.imgur.com/Y7tbFH9.jpghttps://i.imgur.com/AMO6L7a.jpghttps://i.imgur.com/BFMK44E.jpg Up 12/3 15:25
▼Lappやっと分かった永年の疑問(解決編)寝ないで考えた?・・・そんなヒマはねえか。
さて,続きの「解決編」。
一晩じっくり寝て,翌朝,突然閃いたのが図1。トランジスターのベースに0.6Vより大きな電圧
を掛けると,トランジスターはon状態になり,コレクターエミッタ間の抵抗はほとんどゼロになる。
そうです,スイッチの役目をする。このトランジスターは増幅素子ではなくスイッチ素子なのだ。
(スイッチングはデジタルの基本)
図2の一連の状態が出力回路で入力パルスが入って来た時の振る舞い。番号@→A→B→Cの順番に
状態が変化して行く(C→@に戻る)。それぞれの状態を説明する。
−−−−−−−−−−−−−−−−−−
@パルスが入ってこないQ3がoffの状態
C2はR5およびR7を介して,電源電圧V1=9Vで充電されている。電流は流れていないので,PMout
側は0Vになっている(Cの電源側は9V)。
Aトリガーパルスが入って来て,Q3がonになった瞬間
トランジスタースイッチは閉じた状態なので,C2,R7は閉じた状態になる。当然,C2の電源側は0V
になる。コンデンサーの両端の電圧は急変しないので(電荷が溜まっているので),C2のR7側は-9V
になる(C2の端子電圧は9Vで変わらない)。電源はR5を介してマイナス側にショートされるが,
9/10k=0.9mAでほとんど電源の負荷とはならない。C2R7回路には影響しない。この瞬間,PMoutは
0V→-9Vの負パルスになる。
B入力パルスが入っている状態,C2R7回路は閉じたままの状態
C2R7閉回路に電流は流れ続けるので,C2の電荷は徐々に失われ,C2の両端電圧は下がっていく。
電源側は0Vに抑えられているので,R7側の電圧は-9V→-8Vと時定数C2R7(=5ms)で下がっていく
(上がっていくというべきかもしれないが)。入力パルスのonの時間だけ電圧は変化して行く。
ここでは,パルスの最後にPMout=-8Vになったとする。
C入力電圧がゼロになって,Q3がoffになった直後
C2に8Vが溜まった状態で,電源,R5,C2,R7が直列状態になり,電源から電流iが流れる状態に
なる。この時は,PMoutは+i・R7電圧になる。この電流iは減少しながら,C2の両端電圧が電源電圧
9Vになるまで流れ続ける。その後,@の状態に戻っていく。
−−−−−−−−−−−−−−−−−−
Q3スイッチoffの瞬間の電圧分布を,図3で説明する。
offになった瞬間は,上記に述べたように,図3右の状態(電源+R5+C2+R7が直列状態)になる
ので,C2両端電圧が8Vなので,R5+R7には9V-8V=1Vが掛かっていることになる。流れている
電流iはi=1V/(10kΩ+500Ω)=0.0952mAになるので,R5とR7の両端電圧V2,V1はV1=0.048V,
V2=0.952Vとなる。よって,PMout=48mVとごく小さいので,上に飛び出ることはない。
以上で,どうして,ペーシングパルスが,図3中央ような波形になる分けが分かったことになる。
この解析で「一番感激したこと」は,このペースメーカー回路の設計が素晴らしいということだ。
出力回路のコンデンサーC2が単なる直流阻止のためのコンデンサーではなく,刺激電流のエネルギー
源として,正しく「蓄電器(電気を溜めておく容器)」になっている(として使っている)ということだ。
C2にはゆっくり(パルスの休止時間)電荷をため,パルス入力時,一気に心筋に流すのである。
このペースメーカーの設計者に脱帽!
https://i.imgur.com/ZT2xwbi.jpghttps://i.imgur.com/BzVTeoo.jpghttps://i.imgur.com/r4G56ys.jpg